From 3ef62a0570055da710328937e7f65dbb2c027c62 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 12 Aug 2002 06:17:09 +0000 Subject: import rt 2.0.14 --- rt/lib/MANIFEST | 57 + rt/lib/MANIFEST.SKIP | 1 + rt/lib/Makefile.PL | 49 + rt/lib/RT.pm | 155 ++ rt/lib/RT/ACE.pm | 774 +++++++++ rt/lib/RT/ACL.pm | 308 ++++ rt/lib/RT/Action/Autoreply.pm | 64 + rt/lib/RT/Action/Generic.pm | 155 ++ rt/lib/RT/Action/Notify.pm | 99 ++ rt/lib/RT/Action/NotifyAsComment.pm | 25 + rt/lib/RT/Action/OpenDependent.pm | 55 + rt/lib/RT/Action/ResolveMembers.pm | 57 + rt/lib/RT/Action/SendEmail.pm | 468 +++++ rt/lib/RT/Action/SendPasswordEmail.pm | 170 ++ rt/lib/RT/Action/StallDependent.pm | 68 + rt/lib/RT/Attachment.pm | 423 +++++ rt/lib/RT/Attachments.pm | 99 ++ rt/lib/RT/Condition/AnyTransaction.pm | 23 + rt/lib/RT/Condition/Generic.pm | 170 ++ rt/lib/RT/Condition/NewDependency.pm | 0 rt/lib/RT/Condition/StatusChange.pm | 30 + rt/lib/RT/CurrentUser.pm | 270 +++ rt/lib/RT/Date.pm | 436 +++++ rt/lib/RT/EasySearch.pm | 115 ++ rt/lib/RT/Group.pm | 364 ++++ rt/lib/RT/GroupMember.pm | 136 ++ rt/lib/RT/GroupMembers.pm | 73 + rt/lib/RT/Groups.pm | 100 ++ rt/lib/RT/Handle.pm | 53 + rt/lib/RT/Interface/CLI.pm | 224 +++ rt/lib/RT/Interface/Email.pm | 581 +++++++ rt/lib/RT/Interface/Web.pm | 1287 ++++++++++++++ rt/lib/RT/Keyword.pm | 446 +++++ rt/lib/RT/KeywordSelect.pm | 452 +++++ rt/lib/RT/KeywordSelects.pm | 143 ++ rt/lib/RT/Keywords.pm | 106 ++ rt/lib/RT/Link.pm | 373 ++++ rt/lib/RT/Links.pm | 90 + rt/lib/RT/ObjectKeyword.pm | 192 +++ rt/lib/RT/ObjectKeywords.pm | 234 +++ rt/lib/RT/Queue.pm | 944 +++++++++++ rt/lib/RT/Queues.pm | 123 ++ rt/lib/RT/Record.pm | 345 ++++ rt/lib/RT/Scrip.pm | 372 ++++ rt/lib/RT/ScripAction.pm | 200 +++ rt/lib/RT/ScripActions.pm | 70 + rt/lib/RT/ScripCondition.pm | 192 +++ rt/lib/RT/ScripConditions.pm | 69 + rt/lib/RT/Scrips.pm | 127 ++ rt/lib/RT/Template.pm | 395 +++++ rt/lib/RT/Templates.pm | 122 ++ rt/lib/RT/TestHarness.pm | 14 + rt/lib/RT/Ticket.pm | 3004 +++++++++++++++++++++++++++++++++ rt/lib/RT/Tickets.pm | 1789 ++++++++++++++++++++ rt/lib/RT/Transaction.pm | 783 +++++++++ rt/lib/RT/Transactions.pm | 78 + rt/lib/RT/User.pm | 1222 ++++++++++++++ rt/lib/RT/Users.pm | 281 +++ rt/lib/RT/Watcher.pm | 313 ++++ rt/lib/RT/Watchers.pm | 226 +++ rt/lib/test.pl | 52 + 61 files changed, 19646 insertions(+) create mode 100644 rt/lib/MANIFEST create mode 100644 rt/lib/MANIFEST.SKIP create mode 100644 rt/lib/Makefile.PL create mode 100644 rt/lib/RT.pm create mode 100755 rt/lib/RT/ACE.pm create mode 100755 rt/lib/RT/ACL.pm create mode 100755 rt/lib/RT/Action/Autoreply.pm create mode 100755 rt/lib/RT/Action/Generic.pm create mode 100755 rt/lib/RT/Action/Notify.pm create mode 100755 rt/lib/RT/Action/NotifyAsComment.pm create mode 100644 rt/lib/RT/Action/OpenDependent.pm create mode 100644 rt/lib/RT/Action/ResolveMembers.pm create mode 100755 rt/lib/RT/Action/SendEmail.pm create mode 100755 rt/lib/RT/Action/SendPasswordEmail.pm create mode 100644 rt/lib/RT/Action/StallDependent.pm create mode 100755 rt/lib/RT/Attachment.pm create mode 100755 rt/lib/RT/Attachments.pm create mode 100644 rt/lib/RT/Condition/AnyTransaction.pm create mode 100755 rt/lib/RT/Condition/Generic.pm create mode 100644 rt/lib/RT/Condition/NewDependency.pm create mode 100644 rt/lib/RT/Condition/StatusChange.pm create mode 100755 rt/lib/RT/CurrentUser.pm create mode 100644 rt/lib/RT/Date.pm create mode 100755 rt/lib/RT/EasySearch.pm create mode 100755 rt/lib/RT/Group.pm create mode 100755 rt/lib/RT/GroupMember.pm create mode 100755 rt/lib/RT/GroupMembers.pm create mode 100755 rt/lib/RT/Groups.pm create mode 100644 rt/lib/RT/Handle.pm create mode 100644 rt/lib/RT/Interface/CLI.pm create mode 100755 rt/lib/RT/Interface/Email.pm create mode 100644 rt/lib/RT/Interface/Web.pm create mode 100644 rt/lib/RT/Keyword.pm create mode 100644 rt/lib/RT/KeywordSelect.pm create mode 100644 rt/lib/RT/KeywordSelects.pm create mode 100644 rt/lib/RT/Keywords.pm create mode 100644 rt/lib/RT/Link.pm create mode 100644 rt/lib/RT/Links.pm create mode 100644 rt/lib/RT/ObjectKeyword.pm create mode 100644 rt/lib/RT/ObjectKeywords.pm create mode 100755 rt/lib/RT/Queue.pm create mode 100755 rt/lib/RT/Queues.pm create mode 100755 rt/lib/RT/Record.pm create mode 100755 rt/lib/RT/Scrip.pm create mode 100755 rt/lib/RT/ScripAction.pm create mode 100755 rt/lib/RT/ScripActions.pm create mode 100755 rt/lib/RT/ScripCondition.pm create mode 100755 rt/lib/RT/ScripConditions.pm create mode 100755 rt/lib/RT/Scrips.pm create mode 100755 rt/lib/RT/Template.pm create mode 100755 rt/lib/RT/Templates.pm create mode 100644 rt/lib/RT/TestHarness.pm create mode 100755 rt/lib/RT/Ticket.pm create mode 100755 rt/lib/RT/Tickets.pm create mode 100755 rt/lib/RT/Transaction.pm create mode 100755 rt/lib/RT/Transactions.pm create mode 100755 rt/lib/RT/User.pm create mode 100755 rt/lib/RT/Users.pm create mode 100755 rt/lib/RT/Watcher.pm create mode 100755 rt/lib/RT/Watchers.pm create mode 100644 rt/lib/test.pl (limited to 'rt/lib') diff --git a/rt/lib/MANIFEST b/rt/lib/MANIFEST new file mode 100644 index 000000000..cda386be5 --- /dev/null +++ b/rt/lib/MANIFEST @@ -0,0 +1,57 @@ +MANIFEST +MANIFEST.SKIP +Makefile.PL +RT.pm +test.pl +RT/ACE.pm +RT/ACL.pm +RT/Action/Generic.pm +RT/Action/NotifyAsComment.pm +RT/Action/OpenDependent.pm +RT/Action/SendEmail.pm +RT/Action/StallDependent.pm +RT/Action/Notify.pm +RT/Action/ResolveMembers.pm +RT/Attachment.pm +RT/Attachments.pm +RT/Condition/AnyTransaction.pm +RT/Condition/Generic.pm +RT/Condition/NewDependency.pm +RT/CurrentUser.pm +RT/Date.pm +RT/EasySearch.pm +RT/Group.pm +RT/GroupMember.pm +RT/GroupMembers.pm +RT/Groups.pm +RT/Handle.pm +RT/Interface/CLI.pm +RT/Interface/Email.pm +RT/Interface/Web.pm +RT/Keyword.pm +RT/Keywords.pm +RT/KeywordSelect.pm +RT/KeywordSelects.pm +RT/Link.pm +RT/Links.pm +RT/ObjectKeyword.pm +RT/ObjectKeywords.pm +RT/Queue.pm +RT/Queues.pm +RT/Record.pm +RT/Scrip.pm +RT/Scrips.pm +RT/ScripAction.pm +RT/ScripActions.pm +RT/ScripCondition.pm +RT/ScripConditions.pm +RT/Template.pm +RT/Templates.pm +RT/Ticket.pm +RT/Tickets.pm +RT/Transaction.pm +RT/Transactions.pm +RT/User.pm +RT/Users.pm +RT/Watcher.pm +RT/Watchers.pm diff --git a/rt/lib/MANIFEST.SKIP b/rt/lib/MANIFEST.SKIP new file mode 100644 index 000000000..ae335e78a --- /dev/null +++ b/rt/lib/MANIFEST.SKIP @@ -0,0 +1 @@ +CVS/ diff --git a/rt/lib/Makefile.PL b/rt/lib/Makefile.PL new file mode 100644 index 000000000..c0e1af28c --- /dev/null +++ b/rt/lib/Makefile.PL @@ -0,0 +1,49 @@ +use ExtUtils::MakeMaker; +# See lib/ExtUtils/MakeMaker.pm for details of how to influence +# the contents of the Makefile that is written. +WriteMakefile( + 'NAME' => 'RT', + 'VERSION_FROM' => 'RT.pm', # finds $VERSION + 'PREREQ_PM' => { + 'DBI' => 1.16, + 'DBIx::SearchBuilder' => '0.48', + 'Date::Parse' => 0, + 'Date::Format' => 0, + 'MIME::Entity' => 5.108, + 'Mail::Mailer' => '1.20', + 'Log::Dispatch' => 1.6, + 'HTML::Entities' => 0, + 'Text::Wrapper' => 0, + 'Text::Template' => 0, + 'Getopt::Long' => 2.24, + }, +); + + { + package MY; + sub top_targets { + my($self) = @_; + my $out = "POD2TEST_EXE = pod2test\n"; + + $out .= $self->SUPER::top_targets(@_); + # $out =~ s/^(pure_all\b.*)/$1 testifypods/m; + + $out .= "\n\ntestifypods : \n"; + + my @pods = (keys %{$self->{MAN1PODS}}, + keys %{$self->{MAN3PODS}}); + + foreach my $pod (@pods) { + (my $test = $pod) =~ s/\.(pm|pod)$//; + $test =~ s/^lib\W//; + $test =~ s/\W/-/; + $test =~ s/\//__/g; + $test = "autogen-$test.t"; + $out .= "\t$self->{NOECHO}\$(POD2TEST_EXE) ". + "$pod t/$test \n"; + } + + return $out; + } + } + diff --git a/rt/lib/RT.pm b/rt/lib/RT.pm new file mode 100644 index 000000000..1cfc428ee --- /dev/null +++ b/rt/lib/RT.pm @@ -0,0 +1,155 @@ +package RT; +use RT::Handle; +use RT::CurrentUser; +use strict; + +use vars qw($VERSION $SystemUser $Nobody $Handle $Logger); + +$VERSION = '!!RT_VERSION!!'; + +=head1 NAME + + RT - Request Tracker + +=head1 SYNOPSIS + + A fully featured request tracker package + + +=head1 DESCRIPTION + + +=cut + +sub Init { + #Get a database connection + $Handle = new RT::Handle($RT::DatabaseType); + $Handle->Connect(); + + + #RT's system user is a genuine database user. its id lives here + $SystemUser = new RT::CurrentUser(); + $SystemUser->LoadByName('RT_System'); + + #RT's "nobody user" is a genuine database user. its ID lives here. + $Nobody = new RT::CurrentUser(); + $Nobody->LoadByName('Nobody'); + + InitLogging(); +} + +=head2 InitLogging + +Create the RT::Logger object. + +=cut +sub InitLogging { + + # We have to set the record seperator ($, man perlvar) + # or Log::Dispatch starts getting + # really pissy, as some other module we use unsets it. + + $, = ''; + use Log::Dispatch 1.6; + use Log::Dispatch::File; + use Log::Dispatch::Screen; + + $Logger=Log::Dispatch->new(); + + if ($RT::LogToFile) { + my $filename = $RT::LogToFileNamed || "$RT::LogDir/rt.log"; + + $Logger->add(Log::Dispatch::File->new + ( name=>'rtlog', + min_level=> $RT::LogToFile, + filename=> $filename, + mode=>'append', + callbacks => sub {my %p=@_; return "[".gmtime(time)."] [".$p{level}."]: $p{message}\n"} + + )); + } + if ($RT::LogToScreen) { + $Logger->add(Log::Dispatch::Screen->new + ( name => 'screen', + min_level => $RT::LogToScreen, + stderr => 1 + )); + } +# {{{ Signal handlers + +## This is the default handling of warnings and die'ings in the code +## (including other used modules - maybe except for errors catched by +## Mason). It will log all problems through the standard logging +## mechanism (see above). + +$SIG{__WARN__} = sub {$RT::Logger->warning($_[0])}; + +#When we call die, trap it and log->crit with the value of the die. + +$SIG{__DIE__} = sub { + unless ($^S || !defined $^S ) { + $RT::Logger->crit("$_[0]"); + exit(-1); + } + else { + #Get out of here if we're in an eval + die $_[0]; + } +}; + +# }}} + +} + +# }}} + + +sub SystemUser { + return($SystemUser); +} + +sub Nobody { + return ($Nobody); +} + + +=head2 DropSetGIDPermissions + +Drops setgid permissions. + +=cut + +sub DropSetGIDPermissions { + # Now that we got the config read in, we have the database + # password and don't need to be setgid + # make the effective group the real group + $) = $(; +} + + +=head1 NAME + +RT - Request Tracker + +=head1 SYNOPSIS + +=head1 BUGS + +=head1 SEE ALSO + + +=begin testing + +ok (require RT::TestHarness); + +ok ($RT::Nobody->Name() eq 'Nobody', "Nobody is nobody"); +ok ($RT::Nobody->Name() ne 'root', "Nobody isn't named root"); +ok ($RT::SystemUser->Name() eq 'RT_System', "The system user is RT_System"); +ok ($RT::SystemUser->Name() ne 'noname', "The system user isn't noname"); + + +=end testing + +=cut + +1; diff --git a/rt/lib/RT/ACE.pm b/rt/lib/RT/ACE.pm new file mode 100755 index 000000000..d4681cf44 --- /dev/null +++ b/rt/lib/RT/ACE.pm @@ -0,0 +1,774 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ACE.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::ACE - RT\'s ACE object + +=head1 SYNOPSIS + + use RT::ACE; + my $ace = new RT::ACE($CurrentUser); + + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok(require RT::TestHarness); +ok(require RT::ACE); + +=end testing + +=cut + +package RT::ACE; +use RT::Record; +@ISA= qw(RT::Record); + +use vars qw (%SCOPES + %QUEUERIGHTS + %SYSTEMRIGHTS + %LOWERCASERIGHTNAMES + ); + +%SCOPES = ( + System => 'System-level right', + Queue => 'Queue-level right' + ); + +# {{{ Descriptions of rights + +# Queue rights are the sort of queue rights that can only be granted +# to real people or groups +%QUEUERIGHTS = ( + SeeQueue => 'Can this principal see this queue', + AdminQueue => 'Create, delete and modify queues', + ShowACL => 'Display Access Control List', + ModifyACL => 'Modify Access Control List', + ModifyQueueWatchers => 'Modify the queue watchers', + AdminKeywordSelects => 'Create, delete and modify keyword selections', + + + ModifyTemplate => 'Modify email templates for this queue', + ShowTemplate => 'Display email templates for this queue', + ModifyScrips => 'Modify Scrips for this queue', + ShowScrips => 'Display Scrips for this queue', + + ShowTicket => 'Show ticket summaries', + ShowTicketComments => 'Show ticket private commentary', + + Watch => 'Sign up as a ticket Requestor or ticket or queue Cc', + WatchAsAdminCc => 'Sign up as a ticket or queue AdminCc', + CreateTicket => 'Create tickets in this queue', + ReplyToTicket => 'Reply to tickets', + CommentOnTicket => 'Comment on tickets', + OwnTicket => 'Own tickets', + ModifyTicket => 'Modify tickets', + DeleteTicket => 'Delete tickets' + + ); + + +# System rights are rights granted to the whole system +%SYSTEMRIGHTS = ( + SuperUser => 'Do anything and everything', + AdminKeywords => 'Creatte, delete and modify keywords', + AdminGroups => 'Create, delete and modify groups', + AdminUsers => 'Create, Delete and Modify users', + ModifySelf => 'Modify one\'s own RT account', + + ); + +# }}} + +# {{{ Descriptions of principals + +%TICKET_METAPRINCIPALS = ( Owner => 'The owner of a ticket', + Requestor => 'The requestor of a ticket', + Cc => 'The CC of a ticket', + AdminCc => 'The administrative CC of a ticket', + ); + +# }}} + +# {{{ We need to build a hash of all rights, keyed by lower case names + +#since you can't do case insensitive hash lookups + +foreach $right (keys %QUEUERIGHTS) { + $LOWERCASERIGHTNAMES{lc $right}=$right; +} +foreach $right (keys %SYSTEMRIGHTS) { + $LOWERCASERIGHTNAMES{lc $right}=$right; +} + +# }}} + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "ACL"; + return($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub LoadByValues + +=head2 LoadByValues PARAMHASH + +Load an ACE by specifying a paramhash with the following fields: + + PrincipalId => undef, + PrincipalType => undef, + RightName => undef, + RightScope => undef, + RightAppliesTo => undef, + +=cut + +sub LoadByValues { + my $self = shift; + my %args = (PrincipalId => undef, + PrincipalType => undef, + RightName => undef, + RightScope => undef, + RightAppliesTo => undef, + @_); + + $self->LoadByCols (PrincipalId => $args{'PrincipalId'}, + PrincipalType => $args{'PrincipalType'}, + RightName => $args{'RightName'}, + RightScope => $args{'RightScope'}, + RightAppliesTo => $args{'RightAppliesTo'} + ); + + #If we couldn't load it. + unless ($self->Id) { + return (0, "ACE not found"); + } + # if we could + return ($self->Id, "ACE Loaded"); + +} + +# }}} + +# {{{ sub Create + +=head2 Create + +PARAMS is a parameter hash with the following elements: + + PrincipalType => "Queue"|"User" + PrincipalId => an intentifier you can use to ->Load a user or group + RightName => the name of a right. in any case + RightScope => "System" | "Queue" + RightAppliesTo => a queue id or undef + +=cut + +sub Create { + my $self = shift; + my %args = ( PrincipalId => undef, + PrincipalType => undef, + RightName => undef, + RightScope => undef, + RightAppliesTo => undef, + @_ + ); + + # {{{ Validate the principal + my ($princ_obj); + if ($args{'PrincipalType'} eq 'User') { + $princ_obj = new RT::User($RT::SystemUser); + + } + elsif ($args{'PrincipalType'} eq 'Group') { + require RT::Group; + $princ_obj = new RT::Group($RT::SystemUser); + } + else { + return (0, 'Principal type '.$args{'PrincipalType'} . ' is invalid.'); + } + + $princ_obj->Load($args{'PrincipalId'}); + my $princ_id = $princ_obj->Id(); + + unless ($princ_id) { + return (0, 'Principal '.$args{'PrincipalId'}.' not found.'); + } + + # }}} + + #TODO allow loading of queues by name. + + # {{{ Check the ACL + if ($args{'RightScope'} eq 'System') { + + unless ($self->CurrentUserHasSystemRight('ModifyACL')) { + $RT::Logger->error("Permission Denied."); + return(undef); + } + } + + elsif ($args{'RightScope'} eq 'Queue') { + unless ($self->CurrentUserHasQueueRight( Queue => $args{'RightAppliesTo'}, + Right => 'ModifyACL')) { + return (0, 'Permission Denied.'); + } + + + + + } + #If it's not a scope we recognise, something scary is happening. + else { + $RT::Logger->err("RT::ACE->Create got a scope it didn't recognize: ". + $args{'RightScope'}." Bailing. \n"); + return(0,"System error. Unable to grant rights."); + } + + # }}} + + # {{{ Canonicalize and check the right name + $args{'RightName'} = $self->CanonicalizeRightName($args{'RightName'}); + + #check if it's a valid RightName + if ($args{'RightScope'} eq 'Queue') { + unless (exists $QUEUERIGHTS{$args{'RightName'}}) { + return(0, 'Invalid right'); + } + } + elsif ($args{'RightScope' eq 'System'}) { + unless (exists $SYSTEMRIGHTS{$args{'RightName'}}) { + return(0, 'Invalid right'); + } + } + # }}} + + # Make sure the right doesn't already exist. + $self->LoadByCols (PrincipalId => $princ_id, + PrincipalType => $args{'PrincipalType'}, + RightName => $args{'RightName'}, + RightScope => $args {'RightScope'}, + RightAppliesTo => $args{'RightAppliesTo'} + ); + if ($self->Id) { + return (0, 'That user already has that right'); + } + + my $id = $self->SUPER::Create( PrincipalId => $princ_id, + PrincipalType => $args{'PrincipalType'}, + RightName => $args{'RightName'}, + RightScope => $args {'RightScope'}, + RightAppliesTo => $args{'RightAppliesTo'} + ); + + + if ($id > 0 ) { + return ($id, 'Right Granted'); + } + else { + $RT::Logger->err('System error. right not granted.'); + return(0, 'System Error. right not granted'); + } +} + +# }}} + + +# {{{ sub Delete + +=head2 Delete + +Delete this object. + +=cut + +sub Delete { + my $self = shift; + + unless ($self->CurrentUserHasRight('ModifyACL')) { + return (0, 'Permission Denied'); + } + + + my ($val,$msg) = $self->SUPER::Delete(@_); + if ($val) { + return ($val, 'ACE Deleted'); + } + else { + return (0, 'ACE could not be deleted'); + } +} + +# }}} + +# {{{ sub _BootstrapRight + +=head2 _BootstrapRight + +Grant a right with no error checking and no ACL. this is _only_ for +installation. If you use this routine without jesse@fsck.com's explicit +written approval, he will hunt you down and make you spend eternity +translating mozilla's code into FORTRAN or intercal. + +=cut + +sub _BootstrapRight { + my $self = shift; + my %args = @_; + + my $id = $self->SUPER::Create( PrincipalId => $args{'PrincipalId'}, + PrincipalType => $args{'PrincipalType'}, + RightName => $args{'RightName'}, + RightScope => $args {'RightScope'}, + RightAppliesTo => $args{'RightAppliesTo'} + ); + + if ($id > 0 ) { + return ($id); + } + else { + $RT::Logger->err('System error. right not granted.'); + return(undef); + } + +} + +# }}} + +# {{{ sub CanonicalizeRightName + +=head2 CanonicalizeRightName + +Takes a queue or system right name in any case and returns it in +the correct case. If it's not found, will return undef. + +=cut + +sub CanonicalizeRightName { + my $self = shift; + my $right = shift; + $right = lc $right; + if (exists $LOWERCASERIGHTNAMES{"$right"}) { + return ($LOWERCASERIGHTNAMES{"$right"}); + } + else { + return (undef); + } +} + +# }}} + +# {{{ sub QueueRights + +=head2 QueueRights + +Returns a hash of all the possible rights at the queue scope + +=cut + +sub QueueRights { + return (%QUEUERIGHTS); +} + +# }}} + +# {{{ sub SystemRights + +=head2 SystemRights + +Returns a hash of all the possible rights at the system scope + +=cut + +sub SystemRights { + return (%SYSTEMRIGHTS); +} + + +# }}} + +# {{{ sub _Accessible + +sub _Accessible { + my $self = shift; + my %Cols = ( + PrincipalId => 'read/write', + PrincipalType => 'read/write', + RightName => 'read/write', + RightScope => 'read/write', + RightAppliesTo => 'read/write' + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} +# }}} + +# {{{ sub AppliesToObj + +=head2 AppliesToObj + +If the AppliesTo is a queue, returns the queue object. If it's +the system object, returns undef. If the user has no rights, returns undef. + +=cut + +sub AppliesToObj { + my $self = shift; + if ($self->RightScope eq 'Queue') { + my $appliesto_obj = new RT::Queue($self->CurrentUser); + $appliesto_obj->Load($self->RightAppliesTo); + return($appliesto_obj); + } + elsif ($self->RightScope eq 'System') { + return (undef); + } + else { + $RT::Logger->warning("$self -> AppliesToObj called for an object ". + "of an unknown scope:" . $self->RightScope); + return(undef); + } +} + +# }}} + +# {{{ sub PrincipalObj + +=head2 PrincipalObj + +If the AppliesTo is a group, returns the group object. +If the AppliesTo is a user, returns the user object. +Otherwise, it logs a warning and returns undef. + +=cut + +sub PrincipalObj { + my $self = shift; + my ($princ_obj); + + if ($self->PrincipalType eq 'Group') { + use RT::Group; + $princ_obj = new RT::Group($self->CurrentUser); + } + elsif ($self->PrincipalType eq 'User') { + $princ_obj = new RT::User($self->CurrentUser); + } + else { + $RT::Logger->warning("$self -> PrincipalObj called for an object ". + "of an unknown principal type:" . + $self->PrincipalType ."\n"); + return(undef); + } + + $princ_obj->Load($self->PrincipalId); + return($princ_obj); + +} + +# }}} + +# {{{ ACL related methods + +# {{{ sub _Set + +sub _Set { + my $self = shift; + return (0, "ACEs can only be created and deleted."); +} + +# }}} + +# {{{ sub _Value + +sub _Value { + my $self = shift; + + unless ($self->CurrentUserHasRight('ShowACL')) { + return (undef); + } + + return ($self->__Value(@_)); +} + +# }}} + + +# {{{ sub CurrentUserHasQueueRight + +=head2 CurrentUserHasQueueRight ( Queue => QUEUEID, Right => RIGHTNANAME ) + +Check to see whether the current user has the specified right for the specified queue. + +=cut + +sub CurrentUserHasQueueRight { + my $self = shift; + my %args = (Queue => undef, + Right => undef, + @_ + ); + return ($self->HasRight( Right => $args{'Right'}, + Principal => $self->CurrentUser->UserObj, + Queue => $args{'Queue'})); +} + +# }}} + +# {{{ sub CurrentUserHasSystemRight +=head2 CurrentUserHasSystemRight RIGHTNAME + +Check to see whether the current user has the specified right for the 'system' scope. + +=cut + +sub CurrentUserHasSystemRight { + my $self = shift; + my $right = shift; + return ($self->HasRight( Right => $right, + Principal => $self->CurrentUser->UserObj, + System => 1 + )); +} + + +# }}} + +# {{{ sub CurrentUserHasRight + +=item CurrentUserHasRight RIGHT +Takes a rightname as a string. + +Helper menthod for HasRight. Presets Principal to CurrentUser then +calls HasRight. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + return ($self->HasRight( Principal => $self->CurrentUser->UserObj, + Right => $right, + )); +} + +# }}} + +# {{{ sub HasRight + +=item HasRight + +Takes a param-hash consisting of "Right" and "Principal" Principal is +an RT::User object or an RT::CurrentUser object. "Right" is a textual +Right string that applies to KeywordSelects + +=cut + +sub HasRight { + my $self = shift; + my %args = ( Right => undef, + Principal => undef, + Queue => undef, + System => undef, + @_ ); + + #If we're explicitly specifying a queue, as we need to do on create + if (defined $args{'Queue'}) { + return ($args{'Principal'}->HasQueueRight(Right => $args{'Right'}, + Queue => $args{'Queue'})); + } + #else if we're specifying to check a system right + elsif ((defined $args{'System'}) and (defined $args{'Right'})) { + return( $args{'Principal'}->HasSystemRight( $args{'Right'} )); + } + + elsif ($self->__Value('RightScope') eq 'System') { + return $args{'Principal'}->HasSystemRight($args{'Right'}); + } + elsif ($self->__Value('RightScope') eq 'Queue') { + return $args{'Principal'}->HasQueueRight( Queue => $self->__Value('RightAppliesTo'), + Right => $args{'Right'} ); + } + else { + $RT::Logger->warning("$self: Trying to check an acl for a scope we ". + "don't understand:" . $self->__Value('RightScope') ."\n"); + return undef; + } + + + +} +# }}} + +# }}} + +1; + +__DATA__ + +# {{{ POD + +=head1 Out of date docs + +=head2 Table Structure + +PrincipalType, PrincipalId, Right,Scope,AppliesTo + +=head1 The docs are out of date. so you know. + +=head1 Scopes + +Scope is the scope of the right granted, not the granularity of the grant. +For example, Queue and Ticket rights are both granted for a "queue." +Rights with a scope of 'System' don't have an AppliesTo. (They're global). +Rights with a scope of "Queue" are rights that act on a queue. +Rights with a scope of "System" are rights that act on some other aspect +of the system. + + +=item Queue +=item System + + +=head1 Rights + +=head2 Scope: Queue + +=head2 Queue rights that apply to a ticket within a queue + +Create Ticket in + + Name: Create + Principals: +Display Ticket Summary in + + Name: Show + Principals: Owner Requestor Cc AdminCc + +Display Ticket History + + Name: ShowHistory + Principals: Owner Requestor Cc AdminCc + +Display Ticket Private Comments + + Name: ShowComments + Principals: Owner Requestor Cc AdminCc + +Reply to Ticket in + + Name: Reply + Principals: Owner Requestor Cc AdminCc + +Comment on Ticket in + + Name: Comment + Principals: Owner Requestor Cc AdminCc + +Modify Ticket in + + Name: Modify + Principals: Owner Requestor Cc AdminCc + +Delete Tickets in + + Name: Delete + Principals: Owner Requestor Cc AdminCc + + +=head2 Queue Rights that apply to a whole queue + +These rights can only be granted to "real people" + +List Tickets in + + Name: ListQueue + Principals: + +Know that exists + + Name: See + Principals: + +Display queue settings + + Name: Explore + Principals: + +Modify Queue Watchers for + + Name: ModifyQueueWatchers + Principals: + +Modify Queue Attributes for + + Name: ModifyQueue + Principals: + +Modify Queue ACL for queue + + Name: ModifyACL + Principals: + + +=head2 Rights that apply to the System scope + +=head2 SystemRights + +Create Queue + + Name: CreateQueue + Principals: +Delete Queue + + Name: DeleteQueue + Principals: + +Create Users + + Name: CreateUser + Principals: + +Delete Users + + Name: DeleteUser + Principals: + +Modify Users + + Name: ModifyUser + Principals: + +Modify Self + Name: ModifySelf + Principals: + +Browse Users + + Name: BrowseUsers (NOT IMPLEMENTED in 2.0) + Principals: + +Modify Self + + Name: ModifySelf + Principals: + +Modify System ACL + + Name: ModifyACL + Principals: + +=head1 The Principal Side of the ACE + +=head2 PrincipalTypes,PrincipalIds in our Neighborhood + + User, + Group, + Everyone,NULL + +=cut + +# }}} diff --git a/rt/lib/RT/ACL.pm b/rt/lib/RT/ACL.pm new file mode 100755 index 000000000..444a4c2af --- /dev/null +++ b/rt/lib/RT/ACL.pm @@ -0,0 +1,308 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ACL.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# Distributed under the terms of the GNU GPL +# Copyright (c) 2000 Jesse Vincent + +=head1 NAME + + RT::ACL - collection of RT ACE objects + +=head1 SYNOPSIS + + use RT::ACL; +my $ACL = new RT::ACL($CurrentUser); + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok(require RT::TestHarness); +ok(require RT::ACL); + +=end testing + +=cut + +package RT::ACL; +use RT::EasySearch; +use RT::ACE; +@ISA= qw(RT::EasySearch); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "ACL"; + $self->{'primary_key'} = "id"; + return ( $self->SUPER::_Init(@_)); + +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + return(RT::ACE->new($self->CurrentUser)); +} +# }}} + +=head2 Next + +Hand out the next ACE that was found + +=cut + +# {{{ sub Next +sub Next { + my $self = shift; + + my $ACE = $self->SUPER::Next(); + if ((defined($ACE)) and (ref($ACE))) { + + if ( $ACE->CurrentUserHasRight('ShowACL') or + $ACE->CurrentUserHasRight('ModifyACL') + ) { + return($ACE); + } + + #If the user doesn't have the right to show this ACE + else { + return($self->Next()); + } + } + #if there never was any ACE + else { + return(undef); + } + +} + +# }}} + + +=head1 Limit the ACL to a specific scope + +There are two real scopes right now: + +=item Queue is for rights that apply to a single queue + +=item System is for rights that apply to the System (rights that aren't queue related) + + +=head2 LimitToQueue + +Takes a single queueid as its argument. + +Limit the ACL to just a given queue when supplied with an integer queue id. + +=cut + +sub LimitToQueue { + my $self = shift; + my $queue = shift; + + + + $self->Limit( FIELD =>'RightScope', + ENTRYAGGREGATOR => 'OR', + VALUE => 'Queue'); + $self->Limit( FIELD =>'RightScope', + ENTRYAGGREGATOR => 'OR', + VALUE => 'Ticket'); + + $self->Limit(ENTRYAGGREGATOR => 'OR', + FIELD => 'RightAppliesTo', + VALUE => $queue ); + +} + + +=head2 LimitToSystem() + +Limit the ACL to system rights + +=cut + +sub LimitToSystem { + my $self = shift; + + $self->Limit( FIELD =>'RightScope', + VALUE => 'System'); +} + + +=head2 LimitRightTo + +Takes a single RightName as its only argument. +Limits the search to the right $right. +$right is a right listed in perldoc RT::ACE + +=cut + +sub LimitRightTo { + my $self = shift; + my $right = shift; + + $self->Limit(ENTRYAGGREGATOR => 'OR', + FIELD => 'RightName', + VALUE => $right ); + +} + +=head1 Limit to a specifc set of principals + +=head2 LimitPrincipalToUser + +Takes a single userid as its only argument. +Limit the ACL to a just a specific user. + +=cut + +sub LimitPrincipalToUser { + my $self = shift; + my $user = shift; + + $self->Limit(ENTRYAGGREGATOR => 'OR', + FIELD => 'PrincipalType', + VALUE => 'User' ); + + $self->Limit(ENTRYAGGREGATOR => 'OR', + FIELD => 'PrincipalId', + VALUE => $user ); + +} + + +=head2 LimitPrincipalToGroup + +Takes a single group as its only argument. +Limit the ACL to just a specific group. + +=cut + +sub LimitPrincipalToGroup { + my $self = shift; + my $group = shift; + + $self->Limit(ENTRYAGGREGATOR => 'OR', + FIELD => 'PrincipalType', + VALUE => 'Group' ); + + $self->Limit(ENTRYAGGREGATOR => 'OR', + FIELD => 'PrincipalId', + VALUE => $group ); + +} + +=head2 LimitPrincipalToType($type) + +Takes a single argument, $type. +Limit the ACL to just a specific principal type + +$type is one of: + TicketOwner + TicketRequestor + TicketCc + TicketAdminCc + Everyone + User + Group + +=cut + +sub LimitPrincipalToType { + my $self=shift; + my $type=shift; + $self->Limit(ENTRYAGGREGATOR => 'OR', + FIELD => 'PrincipalType', + VALUE => $type ); +} + + +=head2 LimitPrincipalToId + +Takes a single argument, the numeric Id of the principal to limit this ACL to. Repeated calls to this +function will broaden the scope of the search to include all principals listed. + +=cut + +sub LimitPrincipalToId { + my $self = shift; + my $id = shift; + + if ($id =~ /^\d+$/) { + $self->Limit(ENTRYAGGREGATOR => 'OR', + FIELD => 'PrincipalId', + VALUE => $id ); + } + else { + $RT::Logger->warn($self."->LimitPrincipalToId called with '$id' as an id"); + return undef; + } +} + + +#wrap around _DoSearch so that we can build the hash of returned +#values +sub _DoSearch { + my $self = shift; + # $RT::Logger->debug("Now in ".$self."->_DoSearch"); + my $return = $self->SUPER::_DoSearch(@_); + # $RT::Logger->debug("In $self ->_DoSearch. return from SUPER::_DoSearch was $return\n"); + $self->_BuildHash(); + return ($return); +} + + +#Build a hash of this ACL's entries. +sub _BuildHash { + my $self = shift; + + while (my $entry = $self->Next) { + my $hashkey = $entry->RightScope . "-" . + $entry->RightAppliesTo . "-" . + $entry->RightName . "-" . + $entry->PrincipalId . "-" . + $entry->PrincipalType; + + $self->{'as_hash'}->{"$hashkey"} =1; + + } +} + + +# {{{ HasEntry + +=head2 HasEntry + +=cut + +sub HasEntry { + + my $self = shift; + my %args = ( RightScope => undef, + RightAppliesTo => undef, + RightName => undef, + PrincipalId => undef, + PrincipalType => undef, + @_ ); + + #if we haven't done the search yet, do it now. + $self->_DoSearch(); + + if ($self->{'as_hash'}->{ $args{'RightScope'} . "-" . + $args{'RightAppliesTo'} . "-" . + $args{'RightName'} . "-" . + $args{'PrincipalId'} . "-" . + $args{'PrincipalType'} + } == 1) { + return(1); + } + else { + return(undef); + } +} + +# }}} +1; diff --git a/rt/lib/RT/Action/Autoreply.pm b/rt/lib/RT/Action/Autoreply.pm new file mode 100755 index 000000000..624888e94 --- /dev/null +++ b/rt/lib/RT/Action/Autoreply.pm @@ -0,0 +1,64 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Autoreply.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +package RT::Action::Autoreply; +require RT::Action::SendEmail; +@ISA = qw(RT::Action::SendEmail); + + +# {{{ sub SetRecipients + +=head2 SetRecipients + +Sets the recipients of this message to this ticket's Requestor. + +=cut + + +sub SetRecipients { + my $self=shift; + + push(@{$self->{'To'}}, @{$self->TicketObj->Requestors->Emails}); + + return(1); +} + +# }}} + + +# {{{ sub SetReturnAddress + +=head2 SetReturnAddress + +Set this message\'s return address to the apropriate queue address + +=cut + +sub SetReturnAddress { + my $self = shift; + my %args = ( is_comment => 0, + @_ + ); + + 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->Name; + $self->SetHeader('From', "\"$friendly_name\" <$replyto>"); + } + + unless ($self->TemplateObj->MIMEObj->head->get('Reply-To')) { + $self->SetHeader('Reply-To', "$replyto"); + } + +} + +# }}} + +1; diff --git a/rt/lib/RT/Action/Generic.pm b/rt/lib/RT/Action/Generic.pm new file mode 100755 index 000000000..ecfd4ab1a --- /dev/null +++ b/rt/lib/RT/Action/Generic.pm @@ -0,0 +1,155 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Generic.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# (c) 1996-2000 Jesse Vincent +# This software is redistributable under the terms of the GNU GPL + +=head1 NAME + + RT::Action::Generic - a generic baseclass for RT Actions + +=head1 SYNOPSIS + + use RT::Action::Generic; + +=head1 DESCRIPTION + +=head1 METHODS + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Action::Generic); + +=end testing + +=cut + +package RT::Action::Generic; + +# {{{ 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, + 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 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,"Commit Stubbed"); +} +# }}} + + +#What does this type of Action does + +# {{{ sub Describe +sub Describe { + my $self = shift; + return ("No description for " . ref $self); +} +# }}} + + +#Parse the templates, get things ready to go. + +# {{{ sub Prepare +sub Prepare { + my $self = shift; + return (0,"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; + + + +} + +# }}} +1; diff --git a/rt/lib/RT/Action/Notify.pm b/rt/lib/RT/Action/Notify.pm new file mode 100755 index 000000000..6dca4fd41 --- /dev/null +++ b/rt/lib/RT/Action/Notify.pm @@ -0,0 +1,99 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Notify.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +package RT::Action::Notify; +require RT::Action::SendEmail; +@ISA = qw(RT::Action::SendEmail); + +# {{{ sub SetRecipients + +=head2 SetRecipients + +Sets the recipients of this meesage to Owner, Requestor, AdminCc, Cc or All. +Explicitly B notify the creator of the transaction. + +=cut + +sub SetRecipients { + my $self = shift; + + $arg = $self->Argument; + + $arg =~ s/\bAll\b/Owner,Requestor,AdminCc,Cc/; + + my ( @To, @PseudoTo, @Cc, @Bcc ); + + + if ($arg =~ /\bOtherRecipients\b/) { + if ($self->TransactionObj->Message->First) { + push (@Cc, $self->TransactionObj->Message->First->GetHeader('RT-Send-Cc')); + push (@Bcc, $self->TransactionObj->Message->First->GetHeader('RT-Send-Bcc')); + } + } + + if ( $arg =~ /\bRequestor\b/ ) { + push ( @To, @{ $self->TicketObj->Requestors->Emails } ); + } + + + + if ( $arg =~ /\bCc\b/ ) { + + #If we have a To, make the Ccs, Ccs, otherwise, promote them to To + if (@To) { + push ( @Cc, @{ $self->TicketObj->Cc->Emails } ); + push ( @Cc, @{ $self->TicketObj->QueueObj->Cc->Emails } ); + } + else { + push ( @Cc, @{ $self->TicketObj->Cc->Emails } ); + push ( @To, @{ $self->TicketObj->QueueObj->Cc->Emails } ); + } + } + + 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, $self->TicketObj->OwnerObj->EmailAddress ); + } + else { + push ( @To, $self->TicketObj->OwnerObj->EmailAddress ); + } + + } + + if ( $arg =~ /\bAdminCc\b/ ) { + push ( @Bcc, @{ $self->TicketObj->AdminCc->Emails } ); + push ( @Bcc, @{ $self->TicketObj->QueueObj->AdminCc->Emails } ); + } + + if ($RT::UseFriendlyToLine) { + unless (@To) { + push ( @PseudoTo, + "\"$arg of $RT::rtname Ticket #" + . $self->TicketObj->id . "\":;" ); + } + } + + 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. + + $RT::Logger->debug("$self: To is ".join(",",@To)); + $RT::Logger->debug("$self: Cc is ".join(",",@Cc)); + $RT::Logger->debug("$self: Bcc is ".join(",",@Bcc)); + + @{ $self->{'To'} } = grep ( !/^$creator$/, @To ); + @{ $self->{'Cc'} } = grep ( !/^$creator$/, @Cc ); + @{ $self->{'Bcc'} } = grep ( !/^$creator$/, @Bcc ); + @{ $self->{'PseudoTo'} } = @PseudoTo; + return (1); + +} + +# }}} + +1; diff --git a/rt/lib/RT/Action/NotifyAsComment.pm b/rt/lib/RT/Action/NotifyAsComment.pm new file mode 100755 index 000000000..c72bfff13 --- /dev/null +++ b/rt/lib/RT/Action/NotifyAsComment.pm @@ -0,0 +1,25 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/NotifyAsComment.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +package RT::Action::NotifyAsComment; +require RT::Action::Notify; +@ISA = qw(RT::Action::Notify); + + +=head2 SetReturnAddress + +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)); +} +1; + diff --git a/rt/lib/RT/Action/OpenDependent.pm b/rt/lib/RT/Action/OpenDependent.pm new file mode 100644 index 000000000..b271e4709 --- /dev/null +++ b/rt/lib/RT/Action/OpenDependent.pm @@ -0,0 +1,55 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Attic/OpenDependent.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# This Action will open the BASE if a dependent is resolved. + +package RT::Action::OpenDependent; +require RT::Action::Generic; +require RT::Links; +@ISA=qw(RT::Action::Generic); + +#Do what we need to do and send it out. + +#What does this type of Action does + +# {{{ sub Describe +sub Describe { + my $self = shift; + return (ref $self . " will stall a [local] BASE if it's open and a dependency link is created."); +} +# }}} + + +# {{{ sub Prepare +sub Prepare { + # nothing to prepare + return 1; +} +# }}} + +sub Commit { + my $self = shift; + + my $Links=RT::Links->new($RT::SystemUser); + $Links->Limit(FIELD => 'Type', VALUE => 'DependsOn'); + $Links->Limit(FIELD => 'Target', VALUE => $self->TicketObj->id); + + while (my $Link=$Links->Next()) { + next unless $Link->BaseIsLocal; + my $base=RT::Ticket->new($self->TicketObj->CurrentUser); + # Todo: Only work if Base is a plain ticket num: + $base->Load($Link->Base); + $base->Open if $base->Status eq 'stalled'; + } +} + + +# Applicability checked in Commit. + +# {{{ sub IsApplicable +sub IsApplicable { + my $self = shift; + 1; + return 1; +} +# }}} + +1; diff --git a/rt/lib/RT/Action/ResolveMembers.pm b/rt/lib/RT/Action/ResolveMembers.pm new file mode 100644 index 000000000..00547ebe8 --- /dev/null +++ b/rt/lib/RT/Action/ResolveMembers.pm @@ -0,0 +1,57 @@ +# This Action will resolve all members of a resolved group ticket + +package RT::Action::ResolveMembers; +require RT::Action::Generic; +require RT::Links; +@ISA=qw(RT::Action::Generic); + +#Do what we need to do and send it out. + +#What does this type of Action does + +# {{{ sub Describe +sub Describe { + my $self = shift; + return (ref $self . " will resolve all members of a resolved group ticket."); +} +# }}} + + +# {{{ sub Prepare +sub Prepare { + # nothing to prepare + return 1; +} +# }}} + +sub Commit { + my $self = shift; + + my $Links=RT::Links->new($RT::SystemUser); + $Links->Limit(FIELD => 'Type', VALUE => 'MemberOf'); + $Links->Limit(FIELD => 'Target', VALUE => $self->TicketObj->id); + + while (my $Link=$Links->Next()) { + # Todo: Try to deal with remote URIs as well + next unless $Link->BaseIsLocal; + my $base=RT::Ticket->new($self->TicketObj->CurrentUser); + # Todo: Only work if Base is a plain ticket num: + $base->Load($Link->Base); + # I'm afraid this might be a major bottleneck if ResolveGroupTicket is on. + $base->Resolve; + } +} + + +# Applicability checked in Commit. + +# {{{ sub IsApplicable +sub IsApplicable { + my $self = shift; + 1; + return 1; +} +# }}} + +1; + diff --git a/rt/lib/RT/Action/SendEmail.pm b/rt/lib/RT/Action/SendEmail.pm new file mode 100755 index 000000000..e3abb1154 --- /dev/null +++ b/rt/lib/RT/Action/SendEmail.pm @@ -0,0 +1,468 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/SendEmail.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# Copyright 1996-2002 Jesse Vincent +# Portions Copyright 2000 Tobias Brox +# Released under the terms of version 2 of the GNU Public License + +package RT::Action::SendEmail; +require RT::Action::Generic; + +@ISA = qw(RT::Action::Generic); + + +=head1 NAME + + RT::Action::SendEmail - An Action which users can use to send mail + or can subclassed for more specialized mail sending behavior. + RT::Action::AutoReply is a good example subclass. + + +=head1 SYNOPSIS + + require RT::Action::SendEmail; + @ISA = qw(RT::Action::SendEmail); + + +=head1 DESCRIPTION + +Basically, you create another module RT::Action::YourAction which ISA +RT::Action::SendEmail. + +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). + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Action::SendEmail); + +=end testing + + +=head1 AUTHOR + +Jesse Vincent and Tobias Brox + +=head1 SEE ALSO + +perl(1). + +=cut + +# {{{ Scrip methods (_Init, Commit, Prepare, IsApplicable) + +# {{{ sub _Init +# We use _Init from RT::Action +# }}} + +# {{{ sub Commit +#Do what we need to do and send it out. +sub Commit { + my $self = shift; + #send the email + + # 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 + + if (defined $self->TransactionObj->Message->First()) { + my $headers = $self->TransactionObj->Message->First->Headers(); + + if ($headers =~ /^RT-Squelch-Replies-To: (.*?)$/si) { + my @blacklist = split(/,/,$1); + + # Cycle through the people we're sending to and pull out anyone on the + # system blacklist + + 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. + + $self->SetHeader('To', join(',', @{$self->{'To'}})) + if (@{$self->{'To'}}); + $self->SetHeader('Cc', join(',' , @{$self->{'Cc'}})) + if (@{$self->{'Cc'}}); + $self->SetHeader('Bcc', join(',', @{$self->{'Bcc'}})) + if (@{$self->{'Bcc'}});; + + my $MIMEObj = $self->TemplateObj->MIMEObj; + + + $MIMEObj->make_singlepart; + + + #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->debug("$self: No recipients found. Not sending.\n"); + return(1); + } + + # 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. + + $self->SetHeader('To', join(',', @{$self->{'PseudoTo'}})) + if ( (@{$self->{'PseudoTo'}}) and (! $MIMEObj->head->get('To'))); + + if ($RT::MailCommand eq 'sendmailpipe') { + open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); + print MAIL $MIMEObj->as_string; + close(MAIL); + } + else { + unless ($MIMEObj->send($RT::MailCommand, $RT::MailParams)) { + $RT::Logger->crit("$self: Could not send mail for ". + $self->TransactionObj . "\n"); + return(0); + } + } + + return (1); + +} +# }}} + +# {{{ sub Prepare + +sub Prepare { + my $self = shift; + + # This actually populates the MIME::Entity fields in the Template Object + + unless ($self->TemplateObj) { + $RT::Logger->warning("No template object handed to $self\n"); + } + + unless ($self->TransactionObj) { + $RT::Logger->warning("No transaction object handed to $self\n"); + + } + + unless ($self->TicketObj) { + $RT::Logger->warning("No ticket object handed to $self\n"); + + } + + + $self->TemplateObj->Parse(Argument => $self->Argument, + TicketObj => $self->TicketObj, + TransactionObj => $self->TransactionObj); + + # Header + + $self->SetSubject(); + + $self->SetSubjectToken(); + + $self->SetRecipients(); + + $self->SetReturnAddress(); + + $self->SetRTSpecialHeaders(); + + return 1; + +} + +# }}} + +# }}} + +# {{{ Deal with message headers (Set* subs, designed for easy overriding) + +# {{{ sub SetRTSpecialHeaders + +# This routine adds all the random headers that RT wants in a mail message +# that don't matter much to anybody else. + +sub SetRTSpecialHeaders { + my $self = shift; + + $self->SetReferences(); + + $self->SetMessageID(); + + $self->SetPrecedence(); + + $self->SetHeader('X-RT-Loop-Prevention', $RT::rtname); + $self->SetHeader('RT-Ticket', $RT::rtname. " #".$self->TicketObj->id()); + $self->SetHeader + ('Managed-by',"RT $RT::VERSION (http://bestpractical.com/rt/)"); + + $self->SetHeader('RT-Originator', $self->TransactionObj->CreatorObj->EmailAddress); + return(); + +} + + + +# {{{ sub SetReferences + +=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 SetReferences { + my $self = shift; + + # 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. + + $self->SetHeader + ('In-Reply-To', "TicketObj->id(). + "\@".$RT::rtname.">"); + + + # TODO We should always add References headers for all message-ids + # of previous messages related to this ticket. +} + +# }}} + +# {{{ sub SetMessageID + +# 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. + +sub SetMessageID { + my $self = shift; + + # 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', "TicketObj->id(). + "-". + $self->TransactionObj->id()."." .rand(20) . "\@".$RT::Organization.">") + unless $self->TemplateObj->MIMEObj->head->get('Message-ID'); +} + + +# }}} + +# }}} + +# {{{ sub SetReturnAddress + +sub SetReturnAddress { + + my $self = shift; + my %args = ( is_comment => 0, + @_ ); + + # From and Reply-To + # $args{is_comment} should be set if the comment address is to be used. + 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->TransactionObj->CreatorObj->RealName; + + if ($friendly_name =~ /^\S+\@\S+$/) { # A "bare" mail address + $friendly_name =~ s/"/\\"/g; + $friendly_name = qq|"$friendly_name"|; + } + + + # TODO: this "via RT" should really be site-configurable. + $self->SetHeader('From', "\"$friendly_name via RT\" <$replyto>"); + } + + unless ($self->TemplateObj->MIMEObj->head->get('Reply-To')) { + $self->SetHeader('Reply-To', "$replyto"); + } + +} + +# }}} + +# {{{ sub SetHeader + +sub SetHeader { + my $self = shift; + my $field = shift; + my $val = shift; + + chomp $val; + chomp $field; + $self->TemplateObj->MIMEObj->head->fold_length($field,10000); + $self->TemplateObj->MIMEObj->head->add($field, $val); + return $self->TemplateObj->MIMEObj->head->get($field); +} + +# }}} + +# {{{ sub SetRecipients + +=head2 SetRecipients + +Dummy method to be overriden by subclasses which want to set the recipients. + +=cut + +sub SetRecipients { + my $self = shift; + return(); +} + +# }}} + +# {{{ sub SetTo + +sub SetTo { + my $self=shift; + my $addresses = shift; + return $self->SetHeader('To',$addresses); +} +# }}} + +# {{{ sub SetCc +=head2 SetCc + +Takes a string that is the addresses you want to Cc + +=cut + +sub SetCc { + my $self=shift; + my $addresses = shift; + + return $self->SetHeader('Cc', $addresses); +} +# }}} + +# {{{ sub SetBcc + +=head2 SetBcc + +Takes a string that is the addresses you want to Bcc + +=cut +sub SetBcc { + my $self=shift; + my $addresses = shift; + + return $self->SetHeader('Bcc', $addresses); +} + +# }}} + +# {{{ sub SetPrecedence + +sub SetPrecedence { + my $self = shift; + + unless ($self->TemplateObj->MIMEObj->head->get("Precedence")) { + $self->SetHeader('Precedence', "bulk"); + } +} + +# }}} + +# {{{ sub SetSubject + +=head2 SetSubject + +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. + +=cut + +sub SetSubject { + my $self = shift; + unless ($self->TemplateObj->MIMEObj->head->get('Subject')) { + my $message=$self->TransactionObj->Message; + my $ticket=$self->TicketObj->Id; + + my $subject; + + if ($self->{'Subject'}) { + $subject = $self->{'Subject'}; + } + elsif (($message->First()) && + ($message->First->Headers)) { + $header = $message->First->Headers(); + $header =~ s/\n\s+/ /g; + if ( $header =~ /^Subject: (.*?)$/m ) { + $subject = $1; + } + else { + $subject = $self->TicketObj->Subject(); + } + + } + else { + $subject = $self->TicketObj->Subject(); + } + + $subject =~ s/(\r\n|\n|\s)/ /gi; + + chomp $subject; + $self->SetHeader('Subject',$subject); + + } + return($subject); +} +# }}} + +# {{{ sub SetSubjectToken + +=head2 SetSubjectToken + + This routine fixes the RT tag in the subject. It's unlikely that you want to overwrite this. + +=cut + +sub SetSubjectToken { + my $self=shift; + 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"); + } +} + +# }}} + +# }}} + +__END__ + +# {{{ POD + +# }}} + +1; + diff --git a/rt/lib/RT/Action/SendPasswordEmail.pm b/rt/lib/RT/Action/SendPasswordEmail.pm new file mode 100755 index 000000000..91bb3c1cb --- /dev/null +++ b/rt/lib/RT/Action/SendPasswordEmail.pm @@ -0,0 +1,170 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Attic/SendPasswordEmail.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# Copyright 2001 Jesse Vincent +# Released under the terms of the GNU Public License + +package RT::Action::SendPasswordEmail; +require RT::Action::Generic; + +@ISA = qw(RT::Action::Generic); + + +=head1 NAME + + RT::Action::SendGenericEmail - An Action which users can use to send mail + or can subclassed for more specialized mail sending behavior. + + + +=head1 SYNOPSIS + + require RT::Action::SendPasswordEmail; + + +=head1 DESCRIPTION + +Basically, you create another module RT::Action::YourAction which ISA +RT::Action::SendEmail. + +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). + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Action::SendPasswordEmail); + +=end testing + + +=head1 AUTHOR + +Jesse Vincent + +=head1 SEE ALSO + +perl(1). + +=cut + +# {{{ Scrip methods (_Init, Commit, Prepare, IsApplicable) + +# {{{ sub Commit + +#Do what we need to do and send it out. + +sub Commit { + my $self = shift; + #send the email + + + + + + my $MIMEObj = $self->TemplateObj->MIMEObj; + + + $MIMEObj->make_singlepart; + + #If we don\'t have any recipients to send to, don\'t send a message; + unless ($MIMEObj->head->get('To')) { + $RT::Logger->debug("$self: No recipients found. Not sending.\n"); + return(1); + } + + if ($RT::MailCommand eq 'sendmailpipe') { + open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); + print MAIL $MIMEObj->as_string; + close(MAIL); + } + else { + unless ($MIMEObj->send($RT::MailCommand, $RT::MailParams)) { + $RT::Logger->crit("$self: Could not send mail for ". + $self->TransactionObj . "\n"); + return(0); + } + } + + return (1); + +} +# }}} + +# {{{ sub Prepare + +sub Prepare { + my $self = shift; + + # This actually populates the MIME::Entity fields in the Template Object + + unless ($self->TemplateObj) { + $RT::Logger->warning("No template object handed to $self\n"); + } + + + unless ($self->TemplateObj->MIMEObj->head->get('Reply-To')) { + $self->SetHeader('Reply-To',$RT::CorrespondAddress ); + } + + + $self->SetHeader('Precedence', "bulk"); + $self->SetHeader('X-RT-Loop-Prevention', $RT::rtname); + $self->SetHeader + ('Managed-by',"Request Tracker $RT::VERSION (http://www.fsck.com/projects/rt/)"); + + $self->TemplateObj->Parse(Argument => $self->Argument); + + + return 1; +} + +# }}} + +# }}} + + +# {{{ sub SetTo + +=head2 SetTo EMAIL + +Sets this message's "To" field to EMAIL + +=cut + +sub SetTo { + my $self = shift; + my $to = shift; + $self->SetHeader('To',$to); +} + +# }}} + +# {{{ sub SetHeader + +sub SetHeader { + my $self = shift; + my $field = shift; + my $val = shift; + + chomp $val; + chomp $field; + $self->TemplateObj->MIMEObj->head->fold_length($field,10000); + $self->TemplateObj->MIMEObj->head->add($field, $val); + return $self->TemplateObj->MIMEObj->head->get($field); +} + +# }}} + + + +__END__ + +# {{{ POD + +# }}} + +1; + diff --git a/rt/lib/RT/Action/StallDependent.pm b/rt/lib/RT/Action/StallDependent.pm new file mode 100644 index 000000000..09d3448a8 --- /dev/null +++ b/rt/lib/RT/Action/StallDependent.pm @@ -0,0 +1,68 @@ +# This Action will stall the BASE if a dependency or membership link +# (according to argument) is created and if BASE is open. + +# TODO: Rename this .pm + +package RT::Action::StallDependent; +require RT::Action::Generic; +@ISA=qw|RT::Action::Generic|; + +# {{{ sub Describe +sub Describe { + my $self = shift; + return (ref $self . " will stall a [local] BASE if it's dependent [or member] of a linked up request."); +} +# }}} + + +# {{{ sub Prepare +sub Prepare { + # nothing to prepare + return 1; +} +# }}} + +sub Commit { + my $self = shift; + # Find all Dependent + my $arg=$self->Argument || "DependsOn"; + unless ($self->TransactionObj->Data =~ /^([^ ]+) $arg /) { + warn; return 0; + } + my $base_id=$1; + my $base; + if ($1 eq "THIS") { + $base=$self->TicketObj; + } else { + $base_id=&RT::Link::_IsLocal(undef, $base_id) || return 0; + $base=RT::Ticket->new($self->TicketObj->CurrentUser); + $base->Load($base_id); + } + $base->Stall if $base->Status eq 'open'; + return 0; +} + + +# {{{ sub IsApplicable + +# Only applicable if: +# 1. the link action is a dependency +# 2. BASE is a local ticket + +sub IsApplicable { + my $self = shift; + + my $arg=$self->Argument || "DependsOn"; + + # 1: + $self->TransactionObj->Data =~ /^([^ ]*) $arg / || return 0; + + # 2: + # (dirty!) + &RT::Link::_IsLocal(undef,$1) || return 0; + + return 1; +} +# }}} + +1; diff --git a/rt/lib/RT/Attachment.pm b/rt/lib/RT/Attachment.pm new file mode 100755 index 000000000..916ac355e --- /dev/null +++ b/rt/lib/RT/Attachment.pm @@ -0,0 +1,423 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attachment.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# Copyright 2000 Jesse Vincent +# Released under the terms of the GNU Public License + +=head1 NAME + + RT::Attachment -- an RT attachment object + +=head1 SYNOPSIS + + use RT::Attachment; + + +=head1 DESCRIPTION + +This module should never be instantiated directly by client code. it's an internal +module which should only be instantiated through exported APIs in Ticket, Queue and other +similar objects. + + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Attachment); + +=end testing + +=cut + +package RT::Attachment; +use RT::Record; +use MIME::Base64; +use vars qw|@ISA|; +@ISA= qw(RT::Record); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Attachments"; + return($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _ClassAccessible +sub _ClassAccessible { + { + TransactionId => { 'read'=>1, 'public'=>1, }, + MessageId => { 'read'=>1, }, + Parent => { 'read'=>1, }, + ContentType => { 'read'=>1, }, + Subject => { 'read'=>1, }, + Content => { 'read'=>1, }, + ContentEncoding => { 'read'=>1, }, + Headers => { 'read'=>1, }, + Filename => { 'read'=>1, }, + Creator => { 'read'=>1, 'auto'=>1, }, + Created => { 'read'=>1, 'auto'=>1, }, + }; +} +# }}} + +# {{{ sub TransactionObj + +=head2 TransactionObj + +Returns the transaction object asscoiated with this attachment. + +=cut + +sub TransactionObj { + require RT::Transaction; + my $self=shift; + unless (exists $self->{_TransactionObj}) { + $self->{_TransactionObj}=RT::Transaction->new($self->CurrentUser); + $self->{_TransactionObj}->Load($self->TransactionId); + } + return $self->{_TransactionObj}; +} + +# }}} + +# {{{ sub Create + +=head2 Create + +Create a new attachment. Takes a paramhash: + + 'Attachment' Should be a single MIME body with optional subparts + 'Parent' is an optional Parent RT::Attachment object + 'TransactionId' is the mandatory id of the Transaction this attachment is associated with.; + +=cut + +sub Create { + my $self = shift; + my ($id); + my %args = ( id => 0, + TransactionId => 0, + Parent => 0, + Attachment => undef, + @_ + ); + + + #For ease of reference + my $Attachment = $args{'Attachment'}; + + #if we didn't specify a ticket, we need to bail + if ( $args{'TransactionId'} == 0) { + $RT::Logger->crit("RT::Attachment->Create couldn't, as you didn't specify a transaction\n"); + return (0); + + } + + #If we possibly can, collapse it to a singlepart + $Attachment->make_singlepart; + + #Get the subject + my $Subject = $Attachment->head->get('subject',0); + defined($Subject) or $Subject = ''; + chomp($Subject); + + #Get the filename + my $Filename = $Attachment->head->recommended_filename; + + if ($Attachment->parts) { + $id = $self->SUPER::Create(TransactionId => $args{'TransactionId'}, + Parent => 0, + ContentType => $Attachment->mime_type, + Headers => $Attachment->head->as_string, + Subject => $Subject, + + ); + foreach my $part ($Attachment->parts) { + my $SubAttachment = new RT::Attachment($self->CurrentUser); + $SubAttachment->Create(TransactionId => $args{'TransactionId'}, + Parent => $id, + Attachment => $part, + ContentType => $Attachment->mime_type, + Headers => $Attachment->head->as_string(), + + ); + } + return ($id); + } + + + #If it's not multipart + else { + + my $ContentEncoding = 'none'; + + my $Body = $Attachment->bodyhandle->as_string; + + #get the max attachment length from RT + my $MaxSize = $RT::MaxAttachmentSize; + + #if the current attachment contains nulls and the + #database doesn't support embedded nulls + + if ( (! $RT::Handle->BinarySafeBLOBs) && + ( $Body =~ /\x00/ ) ) { + # set a flag telling us to mimencode the attachment + $ContentEncoding = 'base64'; + + #cut the max attchment size by 25% (for mime-encoding overhead. + $RT::Logger->debug("Max size is $MaxSize\n"); + $MaxSize = $MaxSize * 3/4; + } + + #if the attachment is larger than the maximum size + if (($MaxSize) and ($MaxSize < length($Body))) { + # if we're supposed to truncate large attachments + if ($RT::TruncateLongAttachments) { + # truncate the attachment to that length. + $Body = substr ($Body, 0, $MaxSize); + + } + + # elsif we're supposed to drop large attachments on the floor, + elsif ($RT::DropLongAttachments) { + # drop the attachment on the floor + $RT::Logger->info("$self: Dropped an attachment of size ". length($Body). + "\n". "It started: ". substr($Body, 0, 60) . "\n"); + return(undef); + } + } + # if we need to mimencode the attachment + if ($ContentEncoding eq 'base64') { + # base64 encode the attachment + $Body = MIME::Base64::encode_base64($Body); + + } + + my $id = $self->SUPER::Create(TransactionId => $args{'TransactionId'}, + ContentType => $Attachment->mime_type, + ContentEncoding => $ContentEncoding, + Parent => $args{'Parent'}, + Content => $Body, + Headers => $Attachment->head->as_string, + Subject => $Subject, + Filename => $Filename, + ); + return ($id); + } +} + +# }}} + + +# {{{ sub Content + +=head2 Content + +Returns the attachment's content. if it's base64 encoded, decode it +before returning it. + +=cut + +sub Content { + my $self = shift; + if ( $self->ContentEncoding eq 'none' || ! $self->ContentEncoding ) { + return $self->_Value('Content'); + } elsif ( $self->ContentEncoding eq 'base64' ) { + return MIME::Base64::decode_base64($self->_Value('Content')); + } else { + return( "Unknown ContentEncoding ". $self->ContentEncoding); + } +} + + +# }}} + +# {{{ sub Children + +=head2 Children + + Returns an RT::Attachments object which is preloaded with all Attachments objects with this Attachment\'s Id as their 'Parent' + +=cut + +sub Children { + my $self = shift; + + my $kids = new RT::Attachments($self->CurrentUser); + $kids->ChildrenOf($self->Id); + return($kids); +} + +# }}} + +# {{{ UTILITIES + +# {{{ sub Quote + + + +sub Quote { + my $self=shift; + my %args=(Reply=>undef, # Prefilled reply (i.e. from the KB/FAQ system) + @_); + + my ($quoted_content, $body, $headers); + my $max=0; + + # TODO: Handle Multipart/Mixed (eventually fix the link in the + # ShowHistory web template?) + if ($self->ContentType =~ m{^(text/plain|message)}i) { + $body=$self->Content; + + # Do we need any preformatting (wrapping, that is) of the message? + + # Remove quoted signature. + $body =~ s/\n-- \n(.*)$//s; + + # What's the longest line like? + foreach (split (/\n/,$body)) { + $max=length if ( length > $max); + } + + if ($max>76) { + require Text::Wrapper; + my $wrapper=new Text::Wrapper + ( + columns => 70, + body_start => ($max > 70*3 ? ' ' : ''), + par_start => '' + ); + $body=$wrapper->wrap($body); + } + + $body =~ s/^/> /gm; + + $body = '[' . $self->TransactionObj->CreatorObj->Name() . ' - ' . $self->TransactionObj->CreatedAsString() + . "]:\n\n" + . $body . "\n\n"; + + } else { + $body = "[Non-text message not quoted]\n\n"; + } + + $max=60 if $max<60; + $max=70 if $max>78; + $max+=2; + + return (\$body, $max); +} +# }}} + +# {{{ sub NiceHeaders - pulls out only the most relevant headers + +=head2 NiceHeaders + +Returns the To, From, Cc, Date and Subject headers. + +It is a known issue that this breaks if any of these headers are not +properly unfolded. + +=cut + +sub NiceHeaders { + my $self=shift; + my $hdrs=""; + for (split(/\n/,$self->Headers)) { + $hdrs.="$_\n" if /^(To|From|RT-Send-Cc|Cc|Date|Subject): /i + } + return $hdrs; +} +# }}} + +# {{{ sub Headers + +=head2 Headers + +Returns this object's headers as a string. This method specifically +removes the RT-Send-Bcc: header, so as to never reveal to whom RT sent a Bcc. +We need to record the RT-Send-Cc and RT-Send-Bcc values so that we can actually send +out mail. (The mailing rules are seperated from the ticket update code by +an abstraction barrier that makes it impossible to pass this data directly + +=cut + +sub Headers { + my $self = shift; + my $hdrs=""; + for (split(/\n/,$self->SUPER::Headers)) { + $hdrs.="$_\n" unless /^(RT-Send-Bcc): /i + } + return $hdrs; +} + + +# }}} + +# {{{ sub GetHeader + +=head2 GetHeader ( 'Tag') + +Returns the value of the header Tag as a string. This bypasses the weeding out +done in Headers() above. + +=cut + +sub GetHeader { + my $self = shift; + my $tag = shift; + foreach my $line (split(/\n/,$self->SUPER::Headers)) { + $RT::Logger->debug( "Does $line match $tag\n"); + if ($line =~ /^$tag:\s+(.*)$/i) { #if we find the header, return its value + return ($1); + } + } + + # we found no header. return an empty string + return undef; +} +# }}} + +# {{{ sub _Value + +=head2 _Value + +Takes the name of a table column. +Returns its value as a string, if the user passes an ACL check + +=cut + +sub _Value { + + my $self = shift; + my $field = shift; + + + #if the field is public, return it. + if ($self->_Accessible($field, 'public')) { + #$RT::Logger->debug("Skipping ACL check for $field\n"); + return($self->__Value($field)); + + } + + #If it's a comment, we need to be extra special careful + elsif ( (($self->TransactionObj->CurrentUserHasRight('ShowTicketComments')) and + ($self->TransactionObj->Type eq 'Comment') ) or + ($self->TransactionObj->CurrentUserHasRight('ShowTicket'))) { + + return($self->__Value($field)); + } + #if they ain't got rights to see, don't let em + else { + return(undef); + } + + +} + +# }}} + +# }}} + +1; diff --git a/rt/lib/RT/Attachments.pm b/rt/lib/RT/Attachments.pm new file mode 100755 index 000000000..73cd350a4 --- /dev/null +++ b/rt/lib/RT/Attachments.pm @@ -0,0 +1,99 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attachments.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Attachments - a collection of RT::Attachment objects + +=head1 SYNOPSIS + + use RT::Attachments; + +=head1 DESCRIPTION + +This module should never be called directly by client code. it's an internal module which +should only be accessed through exported APIs in Ticket, Queue and other similar objects. + + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Attachments); + +=end testing + +=cut + +package RT::Attachments; + +use RT::EasySearch; + +@ISA= qw(RT::EasySearch); + +# {{{ sub _Init +sub _Init { + my $self = shift; + + $self->{'table'} = "Attachments"; + $self->{'primary_key'} = "id"; + return ( $self->SUPER::_Init(@_)); +} +# }}} + + +# {{{ sub ContentType + +=head2 ContentType (VALUE => 'text/plain', ENTRYAGGREGATOR => 'OR', OPERATOR => '=' ) + +Limit result set to attachments of ContentType 'TYPE'... + +=cut + + +sub ContentType { + my $self = shift; + my %args = ( VALUE => 'text/plain', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR', + @_); + + $self->Limit ( FIELD => 'ContentType', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + ENTRYAGGREGATOR => $args{'ENTRYAGGREGATOR'}); +} +# }}} + +# {{{ sub ChildrenOf + +=head2 ChildrenOf ID + +Limit result set to children of Attachment ID + +=cut + + +sub ChildrenOf { + my $self = shift; + my $attachment = shift; + $self->Limit ( FIELD => 'Parent', + VALUE => $attachment); +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + + use RT::Attachment; + my $item = new RT::Attachment($self->CurrentUser); + return($item); +} +# }}} + 1; + + + + diff --git a/rt/lib/RT/Condition/AnyTransaction.pm b/rt/lib/RT/Condition/AnyTransaction.pm new file mode 100644 index 000000000..83e5de6ce --- /dev/null +++ b/rt/lib/RT/Condition/AnyTransaction.pm @@ -0,0 +1,23 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Condition/AnyTransaction.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# Copyright 1996-2001 Jesse Vincent +# Released under the terms of the GNU General Public License + +package RT::Condition::AnyTransaction; +require RT::Condition::Generic; + +@ISA = qw(RT::Condition::Generic); + + +=head2 IsApplicable + +This happens on every transaction. it's always applicable + +=cut + +sub IsApplicable { + my $self = shift; + return(1); +} + +1; + diff --git a/rt/lib/RT/Condition/Generic.pm b/rt/lib/RT/Condition/Generic.pm new file mode 100755 index 000000000..393f4b786 --- /dev/null +++ b/rt/lib/RT/Condition/Generic.pm @@ -0,0 +1,170 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Condition/Generic.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# (c) 1996-2000 Jesse Vincent +# This software is redistributable under the terms of the GNU GPL + +=head1 NAME + + RT::Condition::Generic - ; + +=head1 SYNOPSIS + + 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 + + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Condition::Generic); + +=end testing + + +=cut + +package RT::Condition::Generic; + +# {{{ 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 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 ("No description for " . 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; + +} + +# }}} +1; diff --git a/rt/lib/RT/Condition/NewDependency.pm b/rt/lib/RT/Condition/NewDependency.pm new file mode 100644 index 000000000..e69de29bb diff --git a/rt/lib/RT/Condition/StatusChange.pm b/rt/lib/RT/Condition/StatusChange.pm new file mode 100644 index 000000000..56419b2c7 --- /dev/null +++ b/rt/lib/RT/Condition/StatusChange.pm @@ -0,0 +1,30 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Condition/StatusChange.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ +# Copyright 1996-2001 Jesse Vincent +# Released under the terms of the GNU General Public License + +package RT::Condition::StatusChange; +require RT::Condition::Generic; + +@ISA = qw(RT::Condition::Generic); + + +=head2 IsApplicable + +If the argument passed in is equivalent to the new value of +the Status Obj + +=cut + +sub IsApplicable { + my $self = shift; + if (($self->TransactionObj->Field eq 'Status') and + ($self->Argument eq $self->TransactionObj->NewValue())) { + return(1); + } + else { + return(undef); + } +} + +1; + diff --git a/rt/lib/RT/CurrentUser.pm b/rt/lib/RT/CurrentUser.pm new file mode 100755 index 000000000..6997ddbac --- /dev/null +++ b/rt/lib/RT/CurrentUser.pm @@ -0,0 +1,270 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/CurrentUser.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# (c) 1996-1999 Jesse Vincent +# This software is redistributable under the terms of the GNU GPL + +=head1 NAME + + RT::CurrentUser - an RT object representing the current user + +=head1 SYNOPSIS + + use RT::CurrentUser + + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::CurrentUser); + +=end testing + +=cut + + +package RT::CurrentUser; +use RT::Record; +@ISA= qw(RT::Record); + + +# {{{ 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 $Name = shift; + + $self->{'table'} = "Users"; + + if (defined($Name)) { + $self->Load($Name); + } + + $self->_MyCurrentUser($self); + +} +# }}} + +# {{{ sub Create + +sub Create { + return (0, 'Permission Denied'); +} + +# }}} + +# {{{ sub Delete + +sub Delete { + return (0, 'Permission Denied'); +} + +# }}} + +# {{{ sub UserObj + +=head2 UserObj + + Returns the RT::User object associated with this CurrentUser object. + +=cut + +sub UserObj { + my $self = shift; + + unless ($self->{'UserObj'}) { + use RT::User; + $self->{'UserObj'} = RT::User->new($self); + unless ($self->{'UserObj'}->Load($self->Id)) { + $RT::Logger->err("Couldn't load ".$self->Id. "from the users database.\n"); + } + + } + return ($self->{'UserObj'}); +} +# }}} + +# {{{ 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; + + $self->LoadByCol("EmailAddress",$identifier); + +} +# }}} + +# {{{ sub LoadByGecos + +=head2 LoadByGecos + +Loads a User into this CurrentUser object. +Takes a unix username as its only argument. + +=cut + +sub LoadByGecos { + my $self = 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; + my $identifier = shift; + $self->LoadByCol("Name",$identifier); + +} +# }}} + +# {{{ sub Load + +=head2 Load + +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. + +=cut + +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 IsPassword + +=head2 IsPassword + +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. + +Otherwise, returns undef. + +=cut + +sub IsPassword { + my $self = shift; + my $value = shift; + + return ($self->UserObj->IsPassword($value)); +} + +# }}} + +# {{{ sub Privileged + +=head2 Privileged + +Returns true if the current user can be granted rights and be +a member of groups. + +=cut + +sub Privileged { + my $self = shift; + return ($self->UserObj->Privileged()); +} + +# }}} + +# {{{ Convenient ACL methods + +=head2 HasQueueRight + +calls $self->UserObj->HasQueueRight with the arguments passed in + +=cut + +sub HasQueueRight { + my $self = shift; + return ($self->UserObj->HasQueueRight(@_)); +} + +=head2 HasSystemRight + +calls $self->UserObj->HasSystemRight with the arguments passed in + +=cut + + +sub HasSystemRight { + my $self = shift; + return ($self->UserObj->HasSystemRight(@_)); +} +# }}} + +# {{{ sub HasRight + +=head2 HasSystemRight + +calls $self->UserObj->HasRight with the arguments passed in + +=cut + +sub HasRight { + my $self = shift; + return ($self->UserObj->HasRight(@_)); +} + +# }}} + +1; + diff --git a/rt/lib/RT/Date.pm b/rt/lib/RT/Date.pm new file mode 100644 index 000000000..d56997174 --- /dev/null +++ b/rt/lib/RT/Date.pm @@ -0,0 +1,436 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Date.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# (c) 1996-2000 Jesse Vincent +# This software is redistributable under the terms of the GNU GPL + +=head1 NAME + + RT::Date - a simple Object Oriented date. + +=head1 SYNOPSIS + + use RT::Date + +=head1 DESCRIPTION + +RT Date is a simple Date Object designed to be speedy and easy for RT to use + +The fact that it assumes that a time of 0 means "never" is probably a bug. + +=begin testing + +ok (require RT::Date); + +=end testing + +=head1 METHODS + +=cut + + +package RT::Date; +use Time::Local; +use vars qw($MINUTE $HOUR $DAY $WEEK $MONTH $YEAR); + +$MINUTE = 60; +$HOUR = 60 * $MINUTE; +$DAY = 24 * $HOUR; +$WEEK = 7 * $DAY; +$MONTH = 4 * $WEEK; +$YEAR = 365 * $DAY; + +# {{{ sub new + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $self = {}; + bless ($self, $class); + $self->Unix(0); + return $self; +} + +# }}} + +# {{{ sub Set + +=head2 sub Set + +takes a param hash with the fields 'Format' and 'Value' + +if $args->{'Format'} is 'unix', takes the number of seconds since the epoch + +If $args->{'Format'} is ISO, tries to parse an ISO date. + +If $args->{'Format'} is 'unknown', require Date::Parse and make it figure things +out. This is a heavyweight operation that should never be called from within +RT's core. But it's really useful for something like the textbox date entry +where we let the user do whatever they want. + +If $args->{'Value'} is 0, assumes you mean never. + + +=cut + +sub Set { + my $self = shift; + my %args = ( Format => 'unix', + Value => time, + @_); + if (($args{'Value'} =~ /^\d*$/) and ($args{'Value'} == 0)) { + $self->Unix(-1); + return($self->Unix()); + } + + if ($args{'Format'} =~ /^unix$/i) { + $self->Unix($args{'Value'}); + } + + elsif ($args{'Format'} =~ /^(sql|datemanip|iso)$/i) { + + if (($args{'Value'} =~ /^(\d{4}?)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/) || + ($args{'Value'} =~ /^(\d{4}?)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)$/) || + ($args{'Value'} =~ /^(\d{4}?)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)\+00$/) || + ($args{'Value'} =~ /^(\d{4}?)(\d\d)(\d\d)(\d\d):(\d\d):(\d\d)$/)) { + + my $year = $1; + my $mon = $2; + my $mday = $3; + my $hours = $4; + my $min = $5; + my $sec = $6; + + #timegm expects month as 0->11 + $mon--; + + #now that we've parsed it, deal with the case where everything + #was 0 + if ($mon == -1) { + $self->Unix(-1); + } else { + + #Dateamnip strings aren't in GMT. + if ($args{'Format'} =~ /^datemanip$/i) { + $self->Unix(timelocal($sec,$min,$hours,$mday,$mon,$year)); + } + #ISO and SQL dates are in GMT + else { + $self->Unix(timegm($sec,$min,$hours,$mday,$mon,$year)); + } + + $self->Unix(-1) unless $self->Unix; + } + } + else { + use Carp; + Carp::cluck; + $RT::Logger->debug( "Couldn't parse date $args{'Value'} as a $args{'Format'}"); + + } + } + elsif ($args{'Format'} =~ /^unknown$/i) { + require Date::Parse; + #Convert it to an ISO format string + + my $date = Date::Parse::str2time($args{'Value'}); + + #This date has now been set to a date in the _local_ timezone. + #since ISO dates are known to be in GMT (for RT's purposes); + + $RT::Logger->debug("RT::Date used date::parse to make ".$args{'Value'} . " $date\n"); + + + return ($self->Set( Format => 'unix', Value => "$date")); + } + else { + die "Unknown Date format: ".$args{'Format'}."\n"; + } + + return($self->Unix()); +} + +# }}} + +# {{{ sub SetToMidnight + +=head2 SetToMidnight + +Sets the date to midnight (at the beginning of the day) GMT +Returns the unixtime at midnight. + +=cut + +sub SetToMidnight { + my $self = shift; + + use Time::Local; + my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = gmtime($self->Unix); + $self->Unix(timegm (0,0,0,$mday,$mon,$year,$wday,$yday)); + + return ($self->Unix); + + +} + + +# }}} + +# {{{ sub SetToNow +sub SetToNow { + my $self = shift; + return($self->Set(Format => 'unix', Value => time)) +} +# }}} + +# {{{ sub Diff + +=head2 Diff + +Takes either an RT::Date object or the date in unixtime format as a string + +Returns the differnce between $self and that time as a number of seconds + +=cut + +sub Diff { + my $self = shift; + my $other = shift; + + if (ref($other) eq 'RT::Date') { + $other=$other->Unix; + } + return ($self->Unix - $other); +} +# }}} + +# {{{ sub DiffAsString + +=head2 sub DiffAsString + +Takes either an RT::Date object or the date in unixtime format as a string + +Returns the differnce between $self and that time as a number of seconds as +as string fit for human consumption + +=cut + +sub DiffAsString { + my $self = shift; + my $other = shift; + + + if ($other < 1) { + return (""); + } + if ($self->Unix < 1) { + return(""); + } + my $diff = $self->Diff($other); + + return ($self->DurationAsString($diff)); +} +# }}} + +# {{{ sub DurationAsString + +=head2 DurationAsString + +Takes a number of seconds. returns a string describing that duration + +=cut + +sub DurationAsString{ + + my $self=shift; + my $duration = shift; + + my ($negative, $s); + + $negative = 'ago' if ($duration < 0); + + $duration = abs($duration); + + if($duration < $MINUTE) { + $s=$duration; + $string="sec"; + } elsif($duration < (2 * $HOUR)) { + $s = int($duration/$MINUTE); + $string="min"; + } elsif($duration < (2 * $DAY)) { + $s = int($duration/$HOUR); + $string="hours"; + } elsif($duration < (2 * $WEEK)) { + $s = int($duration/$DAY); + $string="days"; + } elsif($duration < (2 * $MONTH)) { + $s = int($duration/$WEEK); + $string="weeks"; + } elsif($duration < $YEAR) { + $s = int($duration/$MONTH); + $string="months"; + } else { + $s = int($duration/$YEAR); + $string="years"; + } + + return ("$s $string $negative"); +} + +# }}} + +# {{{ sub AgeAsString + +=head2 sub AgeAsString + +Takes nothing + +Returns a string that's the differnce between the time in the object and now + +=cut + +sub AgeAsString { + my $self = shift; + return ($self->DiffAsString(time)); + } +# }}} + +# {{{ sub AsString + +=head2 sub AsString + +Returns the object\'s time as a string with the current timezone. + +=cut + +sub AsString { + my $self = shift; + return ("Not set") if ($self->Unix <= 0); + + return (scalar(localtime($self->Unix))); +} +# }}} + +# {{{ sub AddSeconds + +=head2 sub AddSeconds + +Takes a number of seconds as a string + +Returns the new time + +=cut + +sub AddSeconds { + my $self = shift; + my $delta = shift; + + $self->Set(Format => 'unix', Value => ($self->Unix + $delta)); + + return ($self->Unix); + + +} + +# }}} + +# {{{ sub AddDays + +=head2 AddDays $DAYS + +Adds 24 hours * $DAYS to the current time + +=cut + +sub AddDays { + my $self = shift; + my $days = shift; + $self->AddSeconds($days * $DAY); + +} + +# }}} + +# {{{ sub AddDay + +=head2 AddDay + +Adds 24 hours to the current time + +=cut + +sub AddDay { + my $self = shift; + $self->AddSeconds($DAY); + +} + +# }}} + +# {{{ sub Unix + +=head2 sub Unix [unixtime] + +Optionally takes a date in unix seconds since the epoch format. +Returns the number of seconds since the epoch + +=cut + +sub Unix { + my $self = shift; + + $self->{'time'} = shift if (@_); + + return ($self->{'time'}); +} +# }}} + +# {{{ sub ISO + +=head2 ISO + +Takes nothing + +Returns the object's date in ISO format + +=cut + +sub ISO { + my $self=shift; + my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst, $date) ; + + return ('1970-01-01 00:00:00') if ($self->Unix == -1); + + # 0 1 2 3 4 5 6 7 8 + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($self->Unix); + #make the year YYYY + $year+=1900; + + #the month needs incrementing, as gmtime returns 0-11 + $mon++; + + $date = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year,$mon,$mday, $hour,$min,$sec); + + return ($date); +} + +# }}} + + +# {{{ sub LocalTimezone +=head2 LocalTimezone + + Returns the current timezone. For now, draws off a system timezone, RT::Timezone. Eventually, this may +pull from a 'Timezone' attribute of the CurrentUser + +=cut + +sub LocalTimezone { + my $self = shift; + + return ($RT::Timezone); +} + +# }}} + + + +1; diff --git a/rt/lib/RT/EasySearch.pm b/rt/lib/RT/EasySearch.pm new file mode 100755 index 000000000..bcbfa01b2 --- /dev/null +++ b/rt/lib/RT/EasySearch.pm @@ -0,0 +1,115 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/EasySearch.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::EasySearch - a baseclass for RT collection objects + +=head1 SYNOPSIS + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::EasySearch); + +=end testing + + +=cut + +package RT::EasySearch; +use DBIx::SearchBuilder; +@ISA= qw(DBIx::SearchBuilder); + +# {{{ sub _Init +sub _Init { + my $self = shift; + + $self->{'user'} = shift; + unless(defined($self->CurrentUser)) { + use Carp; + Carp::confess("$self was created without a CurrentUser"); + $RT::Logger->err("$self was created without a CurrentUser\n"); + return(0); + } + $self->SUPER::_Init( 'Handle' => $RT::Handle); +} +# }}} + +# {{{ sub LimitToEnabled + +=head2 LimitToEnabled + +Only find items that haven\'t been disabled + +=cut + +sub LimitToEnabled { + my $self = shift; + + $self->Limit( FIELD => 'Disabled', + VALUE => '0', + OPERATOR => '=' ); +} +# }}} + +# {{{ sub LimitToDisabled + +=head2 LimitToDeleted + +Only find items that have been deleted. + +=cut + +sub LimitToDeleted { + my $self = shift; + + $self->{'find_disabled_rows'} = 1; + $self->Limit( FIELD => 'Disabled', + OPERATOR => '=', + VALUE => '1' + ); +} +# }}} + + +# {{{ sub Limit + +=head2 Limit PARAMHASH + +This Limit sub calls SUPER::Limit, but defaults "CASESENSITIVE" to 1, thus +making sure that by default lots of things don't do extra work trying to +match lower(colname) agaist lc($val); + +=cut + +sub Limit { + my $self = shift; + my %args = ( CASESENSITIVE => 1, + @_ ); + + return $self->SUPER::Limit(%args); +} + +# {{{ sub CurrentUser + +=head2 CurrentUser + + Returns the current user as an RT::User object. + +=cut + +sub CurrentUser { + my $self = shift; + return ($self->{'user'}); +} +# }}} + + +1; + + diff --git a/rt/lib/RT/Group.pm b/rt/lib/RT/Group.pm new file mode 100755 index 000000000..005601f5e --- /dev/null +++ b/rt/lib/RT/Group.pm @@ -0,0 +1,364 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Group.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# Copyright 2000 Jesse Vincent +# Released under the terms of the GNU Public License +# +# + +=head1 NAME + + RT::Group - RT\'s group object + +=head1 SYNOPSIS + + use RT::Group; +my $group = new RT::Group($CurrentUser); + +=head1 DESCRIPTION + +An RT group object. + +=head1 AUTHOR + +Jesse Vincent, jesse@fsck.com + +=head1 SEE ALSO + +RT + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Group); + +=end testing + +=cut + + +package RT::Group; +use RT::Record; +use RT::GroupMember; +use RT::ACE; + +use vars qw|@ISA|; +@ISA= qw(RT::Record); + + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Groups"; + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _Accessible +sub _Accessible { + my $self = shift; + my %Cols = ( + Name => 'read/write', + Description => 'read/write', + Pseudo => 'read' + ); + return $self->SUPER::_Accessible(@_, %Cols); +} +# }}} + +# {{{ sub Load + +=head2 Load + +Load a group object from the database. Takes a single argument. +If the argument is numerical, load by the column 'id'. Otherwise, load by +the "Name" column which is the group's textual name + +=cut + +sub Load { + my $self = shift; + my $identifier = shift || return undef; + + #if it's an int, load by id. otherwise, load by name. + if ($identifier !~ /\D/) { + $self->SUPER::LoadById($identifier); + } + else { + $self->LoadByCol("Name",$identifier); + } +} + +# }}} + +# {{{ sub Create + +=head2 Create + +Takes a paramhash with three named arguments: Name, Description and Pseudo. +Pseudo is used internally by RT for certain special ACL decisions. + +=cut + +sub Create { + my $self = shift; + my %args = ( Name => undef, + Description => undef, + Pseudo => 0, + @_); + + unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { + $RT::Logger->warning($self->CurrentUser->Name ." Tried to create a group without permission."); + return(0, 'Permission Denied'); + } + + my $retval = $self->SUPER::Create(Name => $args{'Name'}, + Description => $args{'Description'}, + Pseudo => $args{'Pseudo'}); + + return ($retval); +} + +# }}} + +# {{{ sub Delete + +=head2 Delete + +Delete this object + +=cut + +sub Delete { + my $self = shift; + + unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { + return (0, 'Permission Denied'); + } + + return($self->SUPER::Delete(@_)); +} + +# }}} + +# {{{ MembersObj + +=head2 MembersObj + +Returns an RT::GroupMembers object of this group's members. + +=cut + +sub MembersObj { + my $self = shift; + unless (defined $self->{'members_obj'}) { + use RT::GroupMembers; + $self->{'members_obj'} = new RT::GroupMembers($self->CurrentUser); + + #If we don't have rights, don't include any results + $self->{'members_obj'}->LimitToGroup($self->id); + + } + return ($self->{'members_obj'}); + +} + +# }}} + +# {{{ AddMember + +=head2 AddMember + +AddMember adds a user to this group. It takes a user id. +Returns a two value array. the first value is true on successful +addition or 0 on failure. The second value is a textual status msg. + +=cut + +sub AddMember { + my $self = shift; + my $new_member = shift; + + my $new_member_obj = new RT::User($self->CurrentUser); + $new_member_obj->Load($new_member); + + unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { + #User has no permission to be doing this + return(0, "Permission Denied"); + } + + unless ($new_member_obj->Id) { + $RT::Logger->debug("Couldn't find user $new_member"); + return(0, "Couldn't find user"); + } + + if ($self->HasMember($new_member_obj->Id)) { + #User is already a member of this group. no need to add it + return(0, "Group already has member"); + } + + my $member_object = new RT::GroupMember($self->CurrentUser); + $member_object->Create( UserId => $new_member_obj->Id, + GroupId => $self->id ); + return(1, "Member added"); +} + +# }}} + +# {{{ HasMember + +=head2 HasMember + +Takes a user Id and returns a GroupMember Id if that user is a member of +this group. +Returns undef if the user isn't a member of the group or if the current +user doesn't have permission to find out. Arguably, it should differentiate +between ACL failure and non membership. + +=cut + +sub HasMember { + my $self = shift; + my $user_id = shift; + + #Try to cons up a member object using "LoadByCols" + + my $member_obj = new RT::GroupMember($self->CurrentUser); + $member_obj->LoadByCols( UserId => $user_id, GroupId => $self->id); + + #If we have a member object + if (defined $member_obj->id) { + return ($member_obj->id); + } + + #If Load returns no objects, we have an undef id. + else { + return(undef); + } +} + +# }}} + +# {{{ DeleteMember + +=head2 DeleteMember + +Takes the user id of a member. +If the current user has apropriate rights, +removes that GroupMember from this group. +Returns a two value array. the first value is true on successful +addition or 0 on failure. The second value is a textual status msg. + +=cut + +sub DeleteMember { + my $self = shift; + my $member = shift; + + unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { + #User has no permission to be doing this + return(0,"Permission Denied"); + } + + my $member_user_obj = new RT::User($self->CurrentUser); + $member_user_obj->Load($member); + + unless ($member_user_obj->Id) { + $RT::Logger->debug("Couldn't find user $member"); + return(0, "User not found"); + } + + my $member_obj = new RT::GroupMember($self->CurrentUser); + unless ($member_obj->LoadByCols ( UserId => $member_user_obj->Id, + GroupId => $self->Id )) { + return(0, "Couldn\'t load member"); #couldn\'t load member object + } + + #If we couldn't load it, return undef. + unless ($member_obj->Id()) { + return (0, "Group has no such member"); + } + + #Now that we've checked ACLs and sanity, delete the groupmember + my $val = $member_obj->Delete(); + if ($val) { + return ($val, "Member deleted"); + } + else { + return (0, "Member not deleted"); + } +} + +# }}} + +# {{{ ACL Related routines + +# {{{ GrantQueueRight + +=head2 GrantQueueRight + +Grant a queue right to this group. Takes a paramhash of which the elements +RightAppliesTo and RightName are important. + +=cut + +sub GrantQueueRight { + + my $self = shift; + my %args = ( RightScope => 'Queue', + RightName => undef, + RightAppliesTo => undef, + PrincipalType => 'Group', + PrincipalId => $self->Id, + @_); + + #ACLs get checked in ACE.pm + + my $ace = new RT::ACE($self->CurrentUser); + + return ($ace->Create(%args)); +} + +# }}} + +# {{{ GrantSystemRight + +=head2 GrantSystemRight + +Grant a system right to this group. +The only element that's important to set is RightName. + +=cut +sub GrantSystemRight { + + my $self = shift; + my %args = ( RightScope => 'System', + RightName => undef, + RightAppliesTo => 0, + PrincipalType => 'Group', + PrincipalId => $self->Id, + @_); + + # ACLS get checked in ACE.pm + + my $ace = new RT::ACE($self->CurrentUser); + return ($ace->Create(%args)); +} + + +# }}} + + +# {{{ sub _Set +sub _Set { + my $self = shift; + + unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { + return (0, 'Permission Denied'); + } + + return ($self->SUPER::_Set(@_)); + +} +# }}} diff --git a/rt/lib/RT/GroupMember.pm b/rt/lib/RT/GroupMember.pm new file mode 100755 index 000000000..69de50b42 --- /dev/null +++ b/rt/lib/RT/GroupMember.pm @@ -0,0 +1,136 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/GroupMember.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# Copyright 2000 Jesse Vincent +# Released under the terms of the GNU Public License + +=head1 NAME + + RT::GroupMember - a member of an RT Group + +=head1 SYNOPSIS + +RT::GroupMember should never be called directly. It should generally +only be accessed through the helper functions in RT::Group; + +=head1 DESCRIPTION + + + + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::GroupMember); + +=end testing + + +=cut + +package RT::GroupMember; +use RT::Record; +use vars qw|@ISA|; +@ISA= qw(RT::Record); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "GroupMembers"; + return($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _Accessible +sub _Accessible { + my $self = shift; + my %Cols = ( + GroupId => 'read', + UserId => 'read' + ); + + return $self->SUPER::_Accessible(@_, %Cols); +} +# }}} + +# {{{ sub Create + +# a helper method for Add + +sub Create { + my $self = shift; + my %args = ( GroupId => undef, + UserId => undef, + @_ + ); + + unless( $self->CurrentUser->HasSystemRight('AdminGroups')) { + return (0, 'Permission Denied'); + } + + return ($self->SUPER::Create(GroupId => $args{'GroupId'}, + UserId => $args{'UserId'})) +} +# }}} + +# {{{ sub Add + +=head2 Add + +Takes a paramhash of UserId and GroupId. makes that user a memeber +of that group + +=cut + +sub Add { + my $self = shift; + return ($self->Create(@_)); +} +# }}} + +# {{{ sub Delete + +=head2 Delete + +Takes no arguments. deletes the currently loaded member from the +group in question. + +=cut + +sub Delete { + my $self = shift; + unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { + return (0, 'Permission Denied'); + } + return($self->SUPER::Delete(@_)); +} + +# }}} + +# {{{ sub UserObj + +=head2 UserObj + +Returns an RT::User object for the user specified by $self->UserId + +=cut + +sub UserObj { + my $self = shift; + unless (defined ($self->{'user_obj'})) { + $self->{'user_obj'} = new RT::User($self->CurrentUser); + $self->{'user_obj'}->Load($self->UserId); + } + return($self->{'user_obj'}); +} + +# {{{ sub _Set +sub _Set { + my $self = shift; + unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { + return (0, 'Permission Denied'); + } + return($self->SUPER::_Set(@_)); +} +# }}} diff --git a/rt/lib/RT/GroupMembers.pm b/rt/lib/RT/GroupMembers.pm new file mode 100755 index 000000000..a90a2a899 --- /dev/null +++ b/rt/lib/RT/GroupMembers.pm @@ -0,0 +1,73 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/GroupMembers.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::GroupMembers - a collection of RT::GroupMember objects + +=head1 SYNOPSIS + + use RT::GroupMembers; + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::GroupMembers); + +=end testing + +=cut + +package RT::GroupMembers; +use RT::EasySearch; +use RT::GroupMember; + +@ISA= qw(RT::EasySearch); + + +# {{{ sub _Init +sub _Init { + my $self = shift; + + $self->{'table'} = "GroupMembers"; + $self->{'primary_key'} = "id"; + return ( $self->SUPER::_Init(@_) ); +} +# }}} + +# {{{ sub LimitToGroup + +=head2 LimitToGroup + +Takes a group id as its only argument. Limits the current search to that +group object + +=cut + +sub LimitToGroup { + my $self = shift; + my $group = shift; + + return ($self->Limit( + VALUE => "$group", + FIELD => 'GroupId', + ENTRYAGGREGATOR => 'OR', + )); + +} +# }}} + +# {{{ sub NewItem + +sub NewItem { + my $self = shift; + return(RT::GroupMember->new($self->CurrentUser)) +} + +# }}} +1; diff --git a/rt/lib/RT/Groups.pm b/rt/lib/RT/Groups.pm new file mode 100755 index 000000000..f44f1fdb3 --- /dev/null +++ b/rt/lib/RT/Groups.pm @@ -0,0 +1,100 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Groups.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Groups - a collection of RT::Group objects + +=head1 SYNOPSIS + + use RT::Groups; + my $groups = $RT::Groups->new($CurrentUser); + $groups->LimitToReal(); + while (my $group = $groups->Next()) { + print $group->Id ." is a group id\n"; + } + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Groups); + +=end testing + +=cut + +package RT::Groups; +use RT::EasySearch; +use RT::Groups; + +@ISA= qw(RT::EasySearch); + +# {{{ sub _Init + +sub _Init { + my $self = shift; + $self->{'table'} = "Groups"; + $self->{'primary_key'} = "id"; + + $self->OrderBy( ALIAS => 'main', + FIELD => 'Name', + ORDER => 'ASC'); + + + return ( $self->SUPER::_Init(@_)); +} +# }}} + +# {{{ LimitToReal + +=head2 LimitToReal + +Make this groups object return only "real" groups, which can be +granted rights and have members assigned to them + +=cut + +sub LimitToReal { + my $self = shift; + + return ($self->Limit( FIELD => 'Pseudo', + VALUE => '0', + OPERATOR => '=')); + +} +# }}} + +# {{{ sub LimitToPseudo + +=head2 LimitToPseudo + +Make this groups object return only "pseudo" groups, which can be +granted rights but whose membership lists are determined dynamically. + +=cut + + sub LimitToPseudo { + my $self = shift; + + return ($self->Limit( FIELD => 'Pseudo', + VALUE => '1', + OPERATOR => '=')); + +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + return (RT::Group->new($self->CurrentUser)); +} +# }}} + + +1; + diff --git a/rt/lib/RT/Handle.pm b/rt/lib/RT/Handle.pm new file mode 100644 index 000000000..6b74f361b --- /dev/null +++ b/rt/lib/RT/Handle.pm @@ -0,0 +1,53 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Handle.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Handle - RT's database handle + +=head1 SYNOPSIS + + use RT::Handle; + +=head1 DESCRIPTION + +=begin testing + +ok(require RT::Handle); + +=end testing + +=head1 METHODS + +=cut + +package RT::Handle; + +eval "use DBIx::SearchBuilder::Handle::$RT::DatabaseType; + +\@ISA= qw(DBIx::SearchBuilder::Handle::$RT::DatabaseType);"; + +#TODO check for errors here. + +=head2 Connect + +Takes nothing. Calls SUPER::Connect with the needed args + +=cut + +sub Connect { +my $self=shift; + +# Unless the database port is a positive integer, we really don't want to pass it. +$RT::DatabasePort = undef unless (defined $RT::DatabasePort && $RT::DatabasePort =~ /^(\d+)$/); + +$self->SUPER::Connect(Host => $RT::DatabaseHost, + Database => $RT::DatabaseName, + User => $RT::DatabaseUser, + Password => $RT::DatabasePassword, + Port => $RT::DatabasePort, + Driver => $RT::DatabaseType, + RequireSSL => $RT::DatabaseRequireSSL, + ); + +} +1; diff --git a/rt/lib/RT/Interface/CLI.pm b/rt/lib/RT/Interface/CLI.pm new file mode 100644 index 000000000..a3bf92d5f --- /dev/null +++ b/rt/lib/RT/Interface/CLI.pm @@ -0,0 +1,224 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Interface/CLI.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ +# RT is (c) 1996-2001 Jesse Vincent + +package RT::Interface::CLI; + +use strict; + + +BEGIN { + 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 $ =~ /\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 &LoadConfig &DBConnect + &GetCurrentUser &GetMessageContent &debug); +} + +=head1 NAME + + RT::Interface::CLI - helper functions for creating a commandline RT interface + +=head1 SYNOPSIS + + use lib "!!RT_LIB_PATH!!"; + use lib "!!RT_ETC_PATH!!"; + + use RT::Interface::CLI qw(CleanEnv LoadConfig DBConnect + GetCurrentUser GetMessageContent); + + #Clean out all the nasties from the environment + CleanEnv(); + + #Load etc/config.pm and drop privs + LoadConfig(); + + #Connect to the database and get RT::SystemUser and RT::Nobody loaded + DBConnect(); + + + #Get the current user all loaded + my $CurrentUser = GetCurrentUser(); + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok(require RT::TestHarness); +ok(require RT::Interface::CLI); + +=end testing + +=cut + + +=head2 CleanEnv + +Removes some of the nastiest nasties from the user\'s environment. + +=cut + +sub CleanEnv { + $ENV{'PATH'} = '/bin:/usr/bin'; # or whatever you need + $ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'}; + $ENV{'SHELL'} = '/bin/sh' if defined $ENV{'SHELL'}; + $ENV{'ENV'} = '' if defined $ENV{'ENV'}; + $ENV{'IFS'} = '' if defined $ENV{'IFS'}; +} + + + +=head2 LoadConfig + +Loads RT's config file and then drops setgid privileges. + +=cut + +sub LoadConfig { + + #This drags in RT's config.pm + use config; + +} + + + +=head2 DBConnect + + Calls RT::Init, which creates a database connection and then creates $RT::Nobody + and $RT::SystemUser + +=cut + + +sub DBConnect { + use RT; + RT::Init(); +} + + + +# {{{ sub GetCurrentUser + +=head2 GetCurrentUser + + Figures out the uid of the current user and returns an RT::CurrentUser object +loaded with that user. if the current user isn't found, returns a copy of RT::Nobody. + +=cut +sub GetCurrentUser { + + my ($Gecos, $CurrentUser); + + require RT::CurrentUser; + + #Instantiate a user object + + $Gecos=(getpwuid($<))[0]; + + #If the current user is 0, then RT will assume that the User object + #is that of the currentuser. + + $CurrentUser = new RT::CurrentUser(); + $CurrentUser->LoadByGecos($Gecos); + + unless ($CurrentUser->Id) { + $RT::Logger->debug("No user with a unix login of '$Gecos' was found. "); + } + return($CurrentUser); +} +# }}} + +# {{{ sub GetMessageContent + +=head2 GetMessageContent + +Takes two arguments a source file and a boolean "edit". If the source file +is undef or "", assumes an empty file. Returns an edited file as an +array of lines. + +=cut + +sub GetMessageContent { + my %args = ( Source => undef, + Content => undef, + Edit => undef, + CurrentUser => undef, + @_); + my $source = $args{'Source'}; + + my $edit = $args{'Edit'}; + + my $currentuser = $args{'CurrentUser'}; + my @lines; + + use File::Temp qw/ tempfile/; + + #Load the sourcefile, if it's been handed to us + if ($source) { + open (SOURCE, "<$source"); + @lines = (); + close (SOURCE); + } + elsif ($args{'Content'}) { + @lines = split('\n',$args{'Content'}); + } + #get us a tempfile. + my ($fh, $filename) = tempfile(); + + #write to a tmpfile + for (@lines) { + print $fh $_; + } + close ($fh); + + #Edit the file if we need to + if ($edit) { + + unless ($ENV{'EDITOR'}) { + $RT::Logger->crit('No $EDITOR variable defined'. "\n"); + return undef; + } + system ($ENV{'EDITOR'}, $filename); + } + + open (READ, "<$filename"); + my @newlines = (); + close (READ); + + unlink ($filename) unless (debug()); + return(\@newlines); + +} + +# }}} + +# {{{ sub debug + +sub debug { + my $val = shift; + my ($debug); + if ($val) { + $RT::Logger->debug($val."\n"); + if ($debug) { + print STDERR "$val\n"; + } + } + if ($debug) { + return(1); + } +} + +# }}} + + +1; diff --git a/rt/lib/RT/Interface/Email.pm b/rt/lib/RT/Interface/Email.pm new file mode 100755 index 000000000..e95436091 --- /dev/null +++ b/rt/lib/RT/Interface/Email.pm @@ -0,0 +1,581 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Interface/Email.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ +# RT is (c) 1996-2001 Jesse Vincent + +package RT::Interface::Email; + +use strict; +use Mail::Address; +use MIME::Entity; + +BEGIN { + 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 $ =~ /\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 + &LoadConfig + &DBConnect + &GetCurrentUser + &GetMessageContent + &CheckForLoops + &CheckForSuspiciousSender + &CheckForAutoGenerated + &ParseMIMEEntityFromSTDIN + &ParseTicketId + &MailError + &ParseCcAddressesFromHead + &ParseSenderAddressFromHead + &ParseErrorsToAddressFromHead + &ParseAddressFromHeader + + + &debug); +} + +=head1 NAME + + RT::Interface::CLI - helper functions for creating a commandline RT interface + +=head1 SYNOPSIS + + use lib "!!RT_LIB_PATH!!"; + use lib "!!RT_ETC_PATH!!"; + + use RT::Interface::Email qw(CleanEnv LoadConfig DBConnect + ); + + #Clean out all the nasties from the environment + CleanEnv(); + + #Load etc/config.pm and drop privs + LoadConfig(); + + #Connect to the database and get RT::SystemUser and RT::Nobody loaded + DBConnect(); + + + #Get the current user all loaded + my $CurrentUser = GetCurrentUser(); + +=head1 DESCRIPTION + + +=begin testing + +ok(require RT::TestHarness); +ok(require RT::Interface::Email); + +=end testing + + +=head1 METHODS + +=cut + + +=head2 CleanEnv + +Removes some of the nastiest nasties from the user\'s environment. + +=cut + +sub CleanEnv { + $ENV{'PATH'} = '/bin:/usr/bin'; # or whatever you need + $ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'}; + $ENV{'SHELL'} = '/bin/sh' if defined $ENV{'SHELL'}; + $ENV{'ENV'} = '' if defined $ENV{'ENV'}; + $ENV{'IFS'} = '' if defined $ENV{'IFS'}; +} + + + +=head2 LoadConfig + +Loads RT's config file and then drops setgid privileges. + +=cut + +sub LoadConfig { + + #This drags in RT's config.pm + use config; + +} + + + +=head2 DBConnect + + Calls RT::Init, which creates a database connection and then creates $RT::Nobody + and $RT::SystemUser + +=cut + + +sub DBConnect { + use RT; + RT::Init(); +} + + + +# {{{ sub debug + +sub debug { + my $val = shift; + my ($debug); + if ($val) { + $RT::Logger->debug($val."\n"); + if ($debug) { + print STDERR "$val\n"; + } + } + if ($debug) { + return(1); + } +} + +# }}} + + +# {{{ 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::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); +} + +# }}} + +# {{{ 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)){ + return (1); + + } + + return (undef); + +} + +# }}} + +# {{{ sub CheckForAutoGenerated +sub CheckForAutoGenerated { + my $head = shift; + + my $Precedence = $head->get("Precedence") || "" ; + if ($Precedence =~ /^(bulk|junk)/i) { + return (1); + } + else { + return (0); + } +} + +# }}} + +# {{{ sub ParseMIMEEntityFromSTDIN + +sub ParseMIMEEntityFromSTDIN { + + # Create a new parser object: + + my $parser = new MIME::Parser; + + # {{{ Config $parser to store large attacments in temp dir + + ## TODO: Does it make sense storing to disk at all? After all, we + ## need to put each msg as an in-core scalar before saving it to + ## the database, don't we? + + ## At the same time, we should make sure that we nuke attachments + ## Over max size and return them + + ## TODO: Remove the temp dir when we don't need it any more. + + my $AttachmentDir = File::Temp::tempdir (TMPDIR => 1, CLEANUP => 1); + + # Set up output directory for files: + $parser->output_dir("$AttachmentDir"); + + #If someone includes a message, don't extract it + $parser->extract_nested_messages(0); + + + # Set up the prefix for files with auto-generated names: + $parser->output_prefix("part"); + + # If content length is <= 20000 bytes, store each msg as in-core scalar; + # Else, write to a disk file (the default action): + + $parser->output_to_core(20000); + + # }}} (temporary directory) + + #Ok. now that we're set up, let's get the stdin. + my $entity; + unless ($entity = $parser->read(\*STDIN)) { + die "couldn't parse MIME stream"; + } + #Now we've got a parsed mime object. + + # Get the head, a MIME::Head: + my $head = $entity->head; + + + # Unfold headers that are have embedded newlines + $head->unfold; + + # TODO - information about the charset is lost here! + $head->decode; + + return ($entity, $head); + +} +# }}} + +# {{{ sub ParseTicketId + +sub ParseTicketId { + my $Subject = shift; + my ($Id); + + if ($Subject =~ s/\[$RT::rtname \#(\d+)\]//i) { + $Id = $1; + $RT::Logger->debug("Found a ticket ID. It's $Id"); + return($Id); + } + else { + return(undef); + } +} +# }}} + +# {{{ sub MailError +sub MailError { + 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"); + + my $mimeobj = $args{'MIMEObj'}; + if ($mimeobj) { + $mimeobj->sync_headers(); + $entity->add_part($mimeobj); + } + + if ($RT::MailCommand eq 'sendmailpipe') { + open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); + print MAIL $entity->as_string; + close(MAIL); + } + else { + $entity->send($RT::MailCommand, $RT::MailParams); + } +} + +# }}} + +# {{{ sub GetCurrentUser + +sub GetCurrentUser { + my $head = shift; + my $entity = shift; + my $ErrorsTo = shift; + + my %UserInfo = (); + + #Suck the address of the sender out of the header + my ($Address, $Name) = ParseSenderAddressFromHead($head); + + #This will apply local address canonicalization rules + $Address = RT::CanonicalizeAddress($Address); + + #If desired, synchronize with an external database + + my $UserFoundInExternalDatabase = 0; + + # Username is the 'Name' attribute of the user that RT uses for things + # like authentication + my $Username = undef; + if ($RT::LookupSenderInExternalDatabase) { + ($UserFoundInExternalDatabase, %UserInfo) = + RT::LookupExternalUserInfo($Address, $Name); + + $Address = $UserInfo{'EmailAddress'}; + $Username = $UserInfo{'Name'}; + } + + my $CurrentUser = RT::CurrentUser->new(); + + # First try looking up by a username, if we got one from the external + # db lookup. Next, try looking up by email address. Failing that, + # try looking up by users who have this user's email address as their + # username. + + if ($Username) { + $CurrentUser->LoadByName($Username); + } + + unless ($CurrentUser->Id) { + $CurrentUser->LoadByEmail($Address); + } + + #If we can't get it by email address, try by name. + unless ($CurrentUser->Id) { + $CurrentUser->LoadByName($Address); + } + + + unless ($CurrentUser->Id) { + #If we couldn't load a user, determine whether to create a user + + # {{{ If we require an incoming address to be found in the external + # user database, reject the incoming message appropriately + if ( $RT::LookupSenderInExternalDatabase && + $RT::SenderMustExistInExternalDatabase && + !$UserFoundInExternalDatabase) { + + my $Message = "Sender's email address was not found in the user database."; + + # {{{ This code useful only if you've defined an AutoRejectRequest template + + require RT::Template; + my $template = new RT::Template($RT::Nobody); + $template->Load('AutoRejectRequest'); + $Message = $template->Content || $Message; + + # }}} + + MailError( To => $ErrorsTo, + Subject => "Ticket Creation failed: user could not be created", + Explanation => $Message, + MIMEObj => $entity, + LogLevel => 'notice' + ); + + return($CurrentUser); + + } + # }}} + + else { + 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' + ); + + unless ($Val) { + + # Deal with the race condition of two account creations at once + # + if ($Username) { + $NewUser->LoadByName($Username); + } + + 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' + ); + } + } + } + + #Load the new user object + $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' + ); + + } + } + + return ($CurrentUser); + +} +# }}} + +# {{{ ParseCcAddressesFromHead + +=head2 ParseCcAddressesFromHead HASHREF + +Takes a hashref object containing QueueObj, Head and CurrentUser objects. +Returns a list of all email addresses in the To and Cc +headers b 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 (@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 = RT::CanonicalizeAddress($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::IsRTAddress($Address)); + + push (@Addresses, $Address); + } + return (@Addresses); +} + + +# }}} + +# {{{ ParseSenderAdddressFromHead + +=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. + my $From = $head->get('Reply-To') || + $head->get('From') || + $head->get('Sender'); + return (ParseAddressFromHeader($From)); +} +# }}} + +# {{{ ParseErrorsToAdddressFromHead + +=head2 ParseErrorsToAddressFromHead + +Takes a MIME::Header object. Return a single value : user@host +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); + } + } +} +# }}} + +# {{{ ParseAddressFromHeader + +=head2 ParseAddressFromHeader ADDRESS + +Takes an address from $head->get('Line') and returns a tuple: user@host, friendly name + +=cut + + +sub ParseAddressFromHeader{ + my $Addr = shift; + + my @Addresses = Mail::Address->parse($Addr); + + my $AddrObj = $Addresses[0]; + + unless (ref($AddrObj)) { + return(undef,undef); + } + + my $Name = ($AddrObj->phrase || $AddrObj->comment || $AddrObj->address); + + + #Lets take the from and load a user object. + my $Address = $AddrObj->address; + + return ($Address, $Name); +} +# }}} + + +1; diff --git a/rt/lib/RT/Interface/Web.pm b/rt/lib/RT/Interface/Web.pm new file mode 100644 index 000000000..6b5272848 --- /dev/null +++ b/rt/lib/RT/Interface/Web.pm @@ -0,0 +1,1287 @@ +## $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Interface/Web.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ + +## Portions Copyright 2000 Tobias Brox +## Copyright 1996-2002 Jesse Vincent + +## This is a library of static subs to be used by the Mason web +## interface to RT + +package RT::Interface::Web; + +# {{{ sub NewParser + +=head2 NewParser + + Returns a new Mason::Parser object. Takes a param hash of things + that get passed to HTML::Mason::Parser. Currently hard coded to only + take the parameter 'allow_globals'. + +=cut + +sub NewParser { + my %args = ( + allow_globals => undef, + @_ + ); + + my $parser = new HTML::Mason::Parser( + default_escape_flags => 'h', + allow_globals => $args{'allow_globals'} + ); + return ($parser); +} + +# }}} + +# {{{ sub NewInterp + +=head2 NewInterp + + Takes a paremeter hash. Needs a param called 'parser' which is a reference + to an HTML::Mason::Parser. + returns a new Mason::Interp object + +=cut + +sub NewInterp { + my %params = ( + comp_root => [ + [ local => $RT::MasonLocalComponentRoot ], + [ standard => $RT::MasonComponentRoot ] + ], + data_dir => "$RT::MasonDataDir", + @_ + ); + + #We allow recursive autohandlers to allow for RT auth. + + use HTML::Mason::Interp; + my $interp = new HTML::Mason::Interp(%params); + +} + +# }}} + +# {{{ sub NewApacheHandler + +=head2 NewApacheHandler + + Takes a Mason::Interp object + Returns a new Mason::ApacheHandler object + +=cut + +sub NewApacheHandler { + my $interp = shift; + my $ah = new HTML::Mason::ApacheHandler( interp => $interp ); + return ($ah); +} + +# }}} + + +# {{{ sub NewMason11ApacheHandler + +=head2 NewMason11ApacheHandler + + Returns a new Mason::ApacheHandler object + +=cut + +sub NewMason11ApacheHandler { + my %args = ( default_escape_flags => 'h', + allow_globals => [%session], + comp_root => [ + [ local => $RT::MasonLocalComponentRoot ], + [ standard => $RT::MasonComponentRoot ] + ], + data_dir => "$RT::MasonDataDir", + args_method => 'CGI' + ); + my $ah = new HTML::Mason::ApacheHandler(%args); + return ($ah); +} + +# }}} + + + + + +# }}} + +package HTML::Mason::Commands; + +# {{{ sub Abort +# Error - calls Error and aborts +sub Abort { + + if ( $session{'ErrorDocument'} && $session{'ErrorDocumentType'} ) { + SetContentType( $session{'ErrorDocumentType'} ); + $m->comp( $session{'ErrorDocument'}, Why => shift ); + $m->abort; + } + else { + SetContentType('text/html'); + $m->comp( "/Elements/Error", Why => shift ); + $m->abort; + } +} + +# }}} + +# {{{ sub CreateTicket + +=head2 CreateTicket ARGS + +Create a new ticket, using Mason's %ARGS. returns @results. +=cut + +sub CreateTicket { + my %ARGS = (@_); + + my (@Actions); + + my $Ticket = new RT::Ticket( $session{'CurrentUser'} ); + + my $Queue = new RT::Queue( $session{'CurrentUser'} ); + unless ( $Queue->Load( $ARGS{'Queue'} ) ) { + Abort('Queue not found'); + } + + unless ( $Queue->CurrentUserHasRight('CreateTicket') ) { + Abort('You have no permission to create tickets in that queue.'); + } + + my $due = new RT::Date( $session{'CurrentUser'} ); + $due->Set( Format => 'unknown', Value => $ARGS{'Due'} ); + my $starts = new RT::Date( $session{'CurrentUser'} ); + $starts->Set( Format => 'unknown', Value => $ARGS{'Starts'} ); + + my @Requestors = split ( /,/, $ARGS{'Requestors'} ); + my @Cc = split ( /,/, $ARGS{'Cc'} ); + my @AdminCc = split ( /,/, $ARGS{'AdminCc'} ); + + my $MIMEObj = MakeMIMEEntity( + Subject => $ARGS{'Subject'}, + From => $ARGS{'From'}, + Cc => $ARGS{'Cc'}, + Body => $ARGS{'Content'}, + AttachmentFieldName => 'Attach' + ); + + my %create_args = ( + Queue => $ARGS{Queue}, + Owner => $ARGS{Owner}, + InitialPriority => $ARGS{InitialPriority}, + FinalPriority => $ARGS{FinalPriority}, + TimeLeft => $ARGS{TimeLeft}, + TimeWorked => $ARGS{TimeWorked}, + Requestor => \@Requestors, + Cc => \@Cc, + AdminCc => \@AdminCc, + Subject => $ARGS{Subject}, + Status => $ARGS{Status}, + Due => $due->ISO, + Starts => $starts->ISO, + MIMEObj => $MIMEObj + ); + + # we need to get any KeywordSelect- fields into %create_args.. + grep { $_ =~ /^KeywordSelect-/ &&{ $create_args{$_} = $ARGS{$_} } } %ARGS; + + my ( $id, $Trans, $ErrMsg ) = $Ticket->Create(%create_args); + unless ( $id && $Trans ) { + Abort($ErrMsg); + } + my @linktypes = qw( DependsOn MemberOf RefersTo ); + + foreach my $linktype (@linktypes) { + foreach my $luri ( split ( / /, $ARGS{"new-$linktype"} ) ) { + $luri =~ s/\s*$//; # Strip trailing whitespace + my ( $val, $msg ) = $Ticket->AddLink( + Target => $luri, + Type => $linktype + ); + push ( @Actions, $msg ) unless ($val); + } + + foreach my $luri ( split ( / /, $ARGS{"$linktype-new"} ) ) { + my ( $val, $msg ) = $Ticket->AddLink( + Base => $luri, + Type => $linktype + ); + + push ( @Actions, $msg ) unless ($val); + } + } + + push ( @Actions, $ErrMsg ); + unless ( $Ticket->CurrentUserHasRight('ShowTicket') ) { + Abort( "No permission to view newly created ticket #" + . $Ticket->id . "." ); + } + return ( $Ticket, @Actions ); + +} + +# }}} + +# {{{ sub LoadTicket - loads a ticket + +=head2 LoadTicket id + +Takes a ticket id as its only variable. if it's handed an array, it takes +the first value. + +Returns an RT::Ticket object as the current user. + +=cut + +sub LoadTicket { + my $id = shift; + + if ( ref($id) eq "ARRAY" ) { + $id = $id->[0]; + } + + unless ($id) { + Abort("No ticket specified"); + } + + my $Ticket = RT::Ticket->new( $session{'CurrentUser'} ); + $Ticket->Load($id); + unless ( $Ticket->id ) { + Abort("Could not load ticket $id"); + } + return $Ticket; +} + +# }}} + +# {{{ sub ProcessUpdateMessage + +sub ProcessUpdateMessage { + + #TODO document what else this takes. + my %args = ( + ARGSRef => undef, + Actions => undef, + TicketObj => undef, + @_ + ); + + #Make the update content have no 'weird' newlines in it + if ( $args{ARGSRef}->{'UpdateContent'} ) { + + if ( + $args{ARGSRef}->{'UpdateSubject'} eq $args{'TicketObj'}->Subject() ) + { + $args{ARGSRef}->{'UpdateSubject'} = undef; + } + + my $Message = MakeMIMEEntity( + Subject => $args{ARGSRef}->{'UpdateSubject'}, + Body => $args{ARGSRef}->{'UpdateContent'}, + AttachmentFieldName => 'UpdateAttachment' + ); + + ## Check whether this was a refresh or not. + + # Match Correspondence or Comments. + my $trans_flag = -2; + my $trans_type = undef; + my $orig_trans = $args{ARGSRef}->{'UpdateType'}; + if ( $orig_trans =~ /^(private|public)$/ ) { + $trans_type = "Comment"; + }elsif ( $orig_trans eq 'response' ) { + $trans_type = "Correspond"; + } + + # Do we have a transaction that we need to update on? session + if( defined( $trans_type ) ){ + $trans_flag = 0; + + # Prepare a checksum. + # See perldoc -f unpack for example of this. + my $this_checksum = unpack("%32C*", $Message->body_as_string ) % 65535; + + # The above *could* generate duplicate checksums. Crosscheck with + # the length. + my $this_length = length( $Message->body_as_string ); + + # Don't forget the ticket id. + my $this_id = $args{TicketObj}->id; + + # Check whether the previous transaction in the + # ticket is the same as the current transaction. + if( defined( $session{'prev_trans_type'} ) && defined( $session{'prev_trans_chksum'} ) && defined( $session{'prev_trans_length'} ) && defined( $session{'prev_trans_tickid'} ) ){ + if( $session{'prev_trans_type'} eq $orig_trans && $session{'prev_trans_chksum'} == $this_checksum && $session{'prev_trans_length'} == $this_length && $session{'prev_trans_tickid'} == $this_id ){ + # Its the same as the previous transaction for this user. + $trans_flag = -1; + } + } + + # Store them for next time. + $session{'prev_trans_type'} = $orig_trans; + $session{'prev_trans_chksum'} = $this_checksum; + $session{'prev_trans_length'} = $this_length; + $session{'prev_trans_tickid'} = $this_id; + + if( $trans_flag == -1 ){ + push ( @{ $args{'Actions'} }, +"This appears to be a duplicate of your previous update (please do not refresh this page)" ); + } + + + if ( $trans_type eq 'Comment' && $trans_flag >= 0 ) { + my ( $Transaction, $Description ) = $args{TicketObj}->Comment( + CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, + BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, + MIMEObj => $Message, + TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} + ); + push ( @{ $args{Actions} }, $Description ); + } + elsif ( $trans_type eq 'Correspond' && $trans_flag >= 0 ) { + my ( $Transaction, $Description ) = $args{TicketObj}->Correspond( + CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, + BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, + MIMEObj => $Message, + TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} + ); + push ( @{ $args{Actions} }, $Description ); + } + } + else { + push ( @{ $args{'Actions'} }, + "Update type was neither correspondence nor comment. Update not recorded" + ); + } + } +} + +# }}} + +# {{{ sub MakeMIMEEntity + +=head2 MakeMIMEEntity PARAMHASH + +Takes a paramhash Subject, Body and AttachmentFieldName. + + Returns a MIME::Entity. + +=cut + +sub MakeMIMEEntity { + + #TODO document what else this takes. + my %args = ( + Subject => undef, + From => undef, + Cc => undef, + Body => undef, + AttachmentFieldName => undef, + @_ + ); + + #Make the update content have no 'weird' newlines in it + + $args{'Body'} =~ s/\r\n/\n/gs; + my $Message = MIME::Entity->build( + Subject => $args{'Subject'} || "", + From => $args{'From'}, + Cc => $args{'Cc'}, + Data => [ $args{'Body'} ] + ); + + my $cgi_object = CGIObject(); + if ( $cgi_object->param( $args{'AttachmentFieldName'} ) ) { + + my $cgi_filehandle = + $cgi_object->upload( $args{'AttachmentFieldName'} ); + + use File::Temp qw(tempfile tempdir); + + #foreach my $filehandle (@filenames) { + + # my ( $fh, $temp_file ) = tempfile(); + + #$binmode $fh; #thank you, windows + + # We're having trouble with tempfiles not getting created. Let's try it with + # a scalar instead + + my ( $buffer, @file ); + + while ( my $bytesread = read( $cgi_filehandle, $buffer, 4096 ) ) { + push ( @file, $buffer ); + } + + $RT::Logger->debug($file); + my $filename = "$cgi_filehandle"; + $filename =~ s#^(.*)/##; + $filename =~ s#^(.*)\\##; + my $uploadinfo = $cgi_object->uploadInfo($cgi_filehandle); + $Message->attach( + Data => \@file, + + #Path => $temp_file, + Filename => $filename, + Type => $uploadinfo->{'Content-Type'} + ); + + #close($fh); + #unlink($temp_file); + + # } + } + $Message->make_singlepart(); + return ($Message); + +} + +# }}} + +# {{{ sub ProcessSearchQuery + +=head2 ProcessSearchQuery + + Takes a form such as the one filled out in webrt/Search/Elements/PickRestriction and turns it into something that RT::Tickets can understand. + +TODO Doc exactly what comes in the paramhash + + +=cut + +sub ProcessSearchQuery { + my %args = @_; + + ## TODO: The only parameter here is %ARGS. Maybe it would be + ## cleaner to load this parameter as $ARGS, and use $ARGS->{...} + ## instead of $args{ARGS}->{...} ? :) + + #Searches are sticky. + if ( defined $session{'tickets'} ) { + + # Reset the old search + $session{'tickets'}->GotoFirstItem; + } + else { + + # Init a new search + $session{'tickets'} = RT::Tickets->new( $session{'CurrentUser'} ); + } + + #Import a bookmarked search if we have one + if ( defined $args{ARGS}->{'Bookmark'} ) { + $session{'tickets'}->ThawLimits( $args{ARGS}->{'Bookmark'} ); + } + + # {{{ Goto next/prev page + if ( $args{ARGS}->{'GotoPage'} eq 'Next' ) { + $session{'tickets'}->NextPage; + } + elsif ( $args{ARGS}->{'GotoPage'} eq 'Prev' ) { + $session{'tickets'}->PrevPage; + } + + # }}} + + # {{{ Deal with limiting the search + + if ( $args{ARGS}->{'RefreshSearchInterval'} ) { + $session{'tickets_refresh_interval'} = + $args{ARGS}->{'RefreshSearchInterval'}; + } + + if ( $args{ARGS}->{'TicketsSortBy'} ) { + $session{'tickets_sort_by'} = $args{ARGS}->{'TicketsSortBy'}; + $session{'tickets_sort_order'} = $args{ARGS}->{'TicketsSortOrder'}; + $session{'tickets'}->OrderBy( + FIELD => $args{ARGS}->{'TicketsSortBy'}, + ORDER => $args{ARGS}->{'TicketsSortOrder'} + ); + } + + # }}} + + # {{{ Set the query limit + if ( defined $args{ARGS}->{'RowsPerPage'} ) { + $RT::Logger->debug( + "limiting to " . $args{ARGS}->{'RowsPerPage'} . " rows" ); + + $session{'tickets_rows_per_page'} = $args{ARGS}->{'RowsPerPage'}; + $session{'tickets'}->RowsPerPage( $args{ARGS}->{'RowsPerPage'} ); + } + + # }}} + # {{{ Limit priority + if ( $args{ARGS}->{'ValueOfPriority'} ne '' ) { + $session{'tickets'}->LimitPriority( + VALUE => $args{ARGS}->{'ValueOfPriority'}, + OPERATOR => $args{ARGS}->{'PriorityOp'} + ); + } + + # }}} + # {{{ Limit owner + if ( $args{ARGS}->{'ValueOfOwner'} ne '' ) { + $session{'tickets'}->LimitOwner( + VALUE => $args{ARGS}->{'ValueOfOwner'}, + OPERATOR => $args{ARGS}->{'OwnerOp'} + ); + } + + # }}} + # {{{ Limit requestor email + + if ( $args{ARGS}->{'ValueOfRequestor'} ne '' ) { + my $alias = $session{'tickets'}->LimitRequestor( + VALUE => $args{ARGS}->{'ValueOfRequestor'}, + OPERATOR => $args{ARGS}->{'RequestorOp'}, + ); + + } + + # }}} + # {{{ Limit Queue + if ( $args{ARGS}->{'ValueOfQueue'} ne '' ) { + $session{'tickets'}->LimitQueue( + VALUE => $args{ARGS}->{'ValueOfQueue'}, + OPERATOR => $args{ARGS}->{'QueueOp'} + ); + } + + # }}} + # {{{ Limit Status + if ( $args{ARGS}->{'ValueOfStatus'} ne '' ) { + if ( ref( $args{ARGS}->{'ValueOfStatus'} ) ) { + foreach my $value ( @{ $args{ARGS}->{'ValueOfStatus'} } ) { + $session{'tickets'}->LimitStatus( + VALUE => $value, + OPERATOR => $args{ARGS}->{'StatusOp'}, + ); + } + } + else { + $session{'tickets'}->LimitStatus( + VALUE => $args{ARGS}->{'ValueOfStatus'}, + OPERATOR => $args{ARGS}->{'StatusOp'}, + ); + } + + } + + # }}} + # {{{ Limit Subject + if ( $args{ARGS}->{'ValueOfSubject'} ne '' ) { + $session{'tickets'}->LimitSubject( + VALUE => $args{ARGS}->{'ValueOfSubject'}, + OPERATOR => $args{ARGS}->{'SubjectOp'}, + ); + } + + # }}} + # {{{ Limit Dates + if ( $args{ARGS}->{'ValueOfDate'} ne '' ) { + + my $date = ParseDateToISO( $args{ARGS}->{'ValueOfDate'} ); + $args{ARGS}->{'DateType'} =~ s/_Date$//; + + $session{'tickets'}->LimitDate( + FIELD => $args{ARGS}->{'DateType'}, + VALUE => $date, + OPERATOR => $args{ARGS}->{'DateOp'}, + ); + } + + # }}} + # {{{ Limit Content + if ( $args{ARGS}->{'ValueOfContent'} ne '' ) { + $session{'tickets'}->LimitContent( + VALUE => $args{ARGS}->{'ValueOfContent'}, + OPERATOR => $args{ARGS}->{'ContentOp'}, + ); + } + + # }}} + # {{{ Limit KeywordSelects + + foreach my $KeywordSelectId ( + map { /^KeywordSelect(\d+)$/; $1 } + grep { /^KeywordSelect(\d+)$/; } keys %{ $args{ARGS} } + ) + { + my $form = $args{ARGS}->{"KeywordSelect$KeywordSelectId"}; + my $oper = $args{ARGS}->{"KeywordSelectOp$KeywordSelectId"}; + foreach my $KeywordId ( ref($form) ? @{$form} : ($form) ) { + next unless ($KeywordId); + my $quote = 1; + if ( $KeywordId =~ /^null$/i ) { + + #Don't quote the string 'null' + $quote = 0; + + # Convert the operator to something apropriate for nulls + $oper = 'IS' if ( $oper eq '=' ); + $oper = 'IS NOT' if ( $oper eq '!=' ); + } + $session{'tickets'}->LimitKeyword( + KEYWORDSELECT => $KeywordSelectId, + OPERATOR => $oper, + QUOTEVALUE => $quote, + KEYWORD => $KeywordId + ); + } + } + + # }}} + +} + +# }}} + +# {{{ sub ParseDateToISO + +=head2 ParseDateToISO + +Takes a date in an arbitrary format. +Returns an ISO date and time in GMT + +=cut + +sub ParseDateToISO { + my $date = shift; + + my $date_obj = new RT::Date($CurrentUser); + $date_obj->Set( + Format => 'unknown', + Value => $date + ); + return ( $date_obj->ISO ); +} + +# }}} + +# {{{ sub Config +# TODO: This might eventually read the cookies, user configuration +# information from the DB, queue configuration information from the +# DB, etc. + +sub Config { + my $args = shift; + my $key = shift; + return $args->{$key} || $RT::WebOptions{$key}; +} + +# }}} + +# {{{ sub ProcessACLChanges + +sub ProcessACLChanges { + my $ACLref = shift; + my $ARGSref = shift; + + my @CheckACL = @$ACLref; + my %ARGS = %$ARGSref; + + my ( $ACL, @results ); + + # {{{ Add rights + foreach $ACL (@CheckACL) { + my ($Principal); + + next unless ($ACL); + + # Parse out what we're really talking about. + if ( $ACL =~ /^(.*?)-(\d+)-(.*?)-(\d+)/ ) { + my $PrincipalType = $1; + my $PrincipalId = $2; + my $Scope = $3; + my $AppliesTo = $4; + + # {{{ Create an object called Principal + # so we can do rights operations + + if ( $PrincipalType eq 'User' ) { + $Principal = new RT::User( $session{'CurrentUser'} ); + } + elsif ( $PrincipalType eq 'Group' ) { + $Principal = new RT::Group( $session{'CurrentUser'} ); + } + else { + Abort("$PrincipalType unknown principal type"); + } + + $Principal->Load($PrincipalId) + || Abort("$PrincipalType $PrincipalId couldn't be loaded"); + + # }}} + + # {{{ load up an RT::ACL object with the same current vals of this ACL + + my $CurrentACL = new RT::ACL( $session{'CurrentUser'} ); + if ( $Scope eq 'Queue' ) { + $CurrentACL->LimitToQueue($AppliesTo); + } + elsif ( $Scope eq 'System' ) { + $CurrentACL->LimitToSystem(); + } + + $CurrentACL->LimitPrincipalToType($PrincipalType); + $CurrentACL->LimitPrincipalToId($PrincipalId); + + # }}} + + # {{{ Get the values of the select we're working with + # into an array. it will contain all the new rights that have + # been granted + #Hack to turn the ACL returned into an array + my @rights = + ref( $ARGS{"GrantACE-$ACL"} ) eq 'ARRAY' + ? @{ $ARGS{"GrantACE-$ACL"} } + : ( $ARGS{"GrantACE-$ACL"} ); + + # }}} + + # {{{ Add any rights we need. + + foreach my $right (@rights) { + next unless ($right); + + #if the right that's been selected wasn't there before, add it. + unless ( + $CurrentACL->HasEntry( + RightScope => "$Scope", + RightName => "$right", + RightAppliesTo => "$AppliesTo", + PrincipalType => $PrincipalType, + PrincipalId => $Principal->Id + ) + ) + { + + #Add new entry to list of rights. + if ( $Scope eq 'Queue' ) { + my $Queue = new RT::Queue( $session{'CurrentUser'} ); + $Queue->Load($AppliesTo); + unless ( $Queue->id ) { + Abort("Couldn't find a queue called $AppliesTo"); + } + + my ( $val, $msg ) = $Principal->GrantQueueRight( + RightAppliesTo => $Queue->id, + RightName => "$right" + ); + + if ($val) { + push ( @results, + "Granted right $right to " + . $Principal->Name + . " for queue " + . $Queue->Name ); + } + else { + push ( @results, $msg ); + } + } + elsif ( $Scope eq 'System' ) { + my ( $val, $msg ) = $Principal->GrantSystemRight( + RightAppliesTo => $AppliesTo, + RightName => "$right" + ); + if ($val) { + push ( @results, "Granted system right '$right' to " + . $Principal->Name ); + } + else { + push ( @results, $msg ); + } + } + } + } + + # }}} + } + } + + # }}} Add rights + + # {{{ remove any rights that have been deleted + + my @RevokeACE = + ref( $ARGS{"RevokeACE"} ) eq 'ARRAY' + ? @{ $ARGS{"RevokeACE"} } + : ( $ARGS{"RevokeACE"} ); + + foreach my $aceid (@RevokeACE) { + + my $right = new RT::ACE( $session{'CurrentUser'} ); + $right->Load($aceid); + next unless ( $right->id ); + + my $phrase = "Revoked " + . $right->PrincipalType . " " + . $right->PrincipalObj->Name + . "'s right to " + . $right->RightName; + + if ( $right->RightScope eq 'System' ) { + $phrase .= ' across all queues.'; + } + else { + $phrase .= ' for the queue ' . $right->AppliesToObj->Name . '.'; + } + my ( $val, $msg ) = $right->Delete(); + if ($val) { + push ( @results, $phrase ); + } + else { + push ( @results, $msg ); + } + } + + # }}} + + return (@results); +} + +# }}} + +# {{{ sub UpdateRecordObj + +=head2 UpdateRecordObj ( ARGSRef => \%ARGS, Object => RT::Record, AttributesRef => \@attribs) + +@attribs is a list of ticket fields to check and update if they differ from the B's current values. ARGSRef is a ref to HTML::Mason's %ARGS. + +Returns an array of success/failure messages + +=cut + +sub UpdateRecordObject { + my %args = ( + ARGSRef => undef, + AttributesRef => undef, + Object => undef, + @_ + ); + + my (@results); + + my $object = $args{'Object'}; + my $attributes = $args{'AttributesRef'}; + my $ARGSRef = $args{'ARGSRef'}; + + foreach $attribute (@$attributes) { + if ( ( defined $ARGSRef->{"$attribute"} ) + and ( $ARGSRef->{"$attribute"} ne $object->$attribute() ) ) + { + $ARGSRef->{"$attribute"} =~ s/\r\n/\n/gs; + + my $method = "Set$attribute"; + my ( $code, $msg ) = $object->$method( $ARGSRef->{"$attribute"} ); + push @results, "$attribute: $msg"; + } + } + return (@results); +} + +# }}} + +# {{{ sub ProcessTicketBasics + +=head2 ProcessTicketBasics ( TicketObj => $Ticket, ARGSRef => \%ARGS ); + +Returns an array of results messages. + +=cut + +sub ProcessTicketBasics { + + my %args = ( + TicketObj => undef, + ARGSRef => undef, + @_ + ); + + my $TicketObj = $args{'TicketObj'}; + my $ARGSRef = $args{'ARGSRef'}; + + # {{{ Set basic fields + my @attribs = qw( + Subject + FinalPriority + Priority + TimeWorked + TimeLeft + Status + Queue + ); + + if ( $ARGSRef->{'Queue'} and ( $ARGSRef->{'Queue'} !~ /^(\d+)$/ ) ) { + my $tempqueue = RT::Queue->new($RT::SystemUser); + $tempqueue->Load( $ARGSRef->{'Queue'} ); + if ( $tempqueue->id ) { + $ARGSRef->{'Queue'} = $tempqueue->Id(); + } + } + + my @results = UpdateRecordObject( + AttributesRef => \@attribs, + Object => $TicketObj, + ARGSRef => $ARGSRef + ); + + # We special case owner changing, so we can use ForceOwnerChange + if ( $ARGSRef->{'Owner'} && ( $TicketObj->Owner ne $ARGSRef->{'Owner'} ) ) { + my ($ChownType); + if ( $ARGSRef->{'ForceOwnerChange'} ) { + $ChownType = "Force"; + } + else { + $ChownType = "Give"; + } + + my ( $val, $msg ) = + $TicketObj->SetOwner( $ARGSRef->{'Owner'}, $ChownType ); + push ( @results, "$msg" ); + } + + # }}} + + return (@results); +} + +# }}} + +# {{{ sub ProcessTicketWatchers + +=head2 ProcessTicketWatchers ( TicketObj => $Ticket, ARGSRef => \%ARGS ); + +Returns an array of results messages. + +=cut + +sub ProcessTicketWatchers { + my %args = ( + TicketObj => undef, + ARGSRef => undef, + @_ + ); + my (@results); + + my $Ticket = $args{'TicketObj'}; + my $ARGSRef = $args{'ARGSRef'}; + + # {{{ Munge watchers + + foreach my $key ( keys %$ARGSRef ) { + + # Delete deletable watchers + if ( ( $key =~ /^DelWatcher(\d*)$/ ) and ( $ARGSRef->{$key} ) ) { + my ( $code, $msg ) = $Ticket->DeleteWatcher($1); + push @results, $msg; + } + + # Delete watchers in the simple style demanded by the bulk manipulator + elsif ( $key =~ /^Delete(Requestor|Cc|AdminCc)$/ ) { + my ( $code, $msg ) = $Ticket->DeleteWatcher( $ARGSRef->{$key}, $1 ); + push @results, $msg; + } + + # Add new wathchers by email address + elsif ( ( $ARGSRef->{$key} =~ /^(AdminCc|Cc|Requestor)$/ ) + and ( $key =~ /^WatcherTypeEmail(\d*)$/ ) ) + { + + #They're in this order because otherwise $1 gets clobbered :/ + my ( $code, $msg ) = $Ticket->AddWatcher( + Type => $ARGSRef->{$key}, + Email => $ARGSRef->{ "WatcherAddressEmail" . $1 } + ); + push @results, $msg; + } + + #Add requestors in the simple style demanded by the bulk manipulator + elsif ( $key =~ /^Add(Requestor|Cc|AdminCc)$/ ) { + my ( $code, $msg ) = $Ticket->AddWatcher( + Type => $1, + Email => $ARGSRef->{$key} + ); + push @results, $msg; + } + + # Add new watchers by owner + elsif ( ( $ARGSRef->{$key} =~ /^(AdminCc|Cc|Requestor)$/ ) + and ( $key =~ /^WatcherTypeUser(\d*)$/ ) ) + { + + #They're in this order because otherwise $1 gets clobbered :/ + my ( $code, $msg ) = + $Ticket->AddWatcher( Type => $ARGSRef->{$key}, Owner => $1 ); + push @results, $msg; + } + } + + # }}} + + return (@results); +} + +# }}} + +# {{{ sub ProcessTicketDates + +=head2 ProcessTicketDates ( TicketObj => $Ticket, ARGSRef => \%ARGS ); + +Returns an array of results messages. + +=cut + +sub ProcessTicketDates { + my %args = ( + TicketObj => undef, + ARGSRef => undef, + @_ + ); + + my $Ticket = $args{'TicketObj'}; + my $ARGSRef = $args{'ARGSRef'}; + + my (@results); + + # {{{ Set date fields + my @date_fields = qw( + Told + Resolved + Starts + Started + Due + ); + + #Run through each field in this list. update the value if apropriate + foreach $field (@date_fields) { + my ( $code, $msg ); + + my $DateObj = RT::Date->new( $session{'CurrentUser'} ); + + #If it's something other than just whitespace + if ( $ARGSRef->{ $field . '_Date' } ne '' ) { + $DateObj->Set( + Format => 'unknown', + Value => $ARGSRef->{ $field . '_Date' } + ); + my $obj = $field . "Obj"; + if ( ( defined $DateObj->Unix ) + and ( $DateObj->Unix ne $Ticket->$obj()->Unix() ) ) + { + my $method = "Set$field"; + my ( $code, $msg ) = $Ticket->$method( $DateObj->ISO ); + push @results, "$msg"; + } + } + } + + # }}} + return (@results); +} + +# }}} + +# {{{ sub ProcessTicketLinks + +=head2 ProcessTicketLinks ( TicketObj => $Ticket, ARGSRef => \%ARGS ); + +Returns an array of results messages. + +=cut + +sub ProcessTicketLinks { + my %args = ( + TicketObj => undef, + ARGSRef => undef, + @_ + ); + + my $Ticket = $args{'TicketObj'}; + my $ARGSRef = $args{'ARGSRef'}; + + my (@results); + + # 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; + + } + + } + + my @linktypes = qw( DependsOn MemberOf RefersTo ); + + foreach my $linktype (@linktypes) { + + for my $luri ( split ( / /, $ARGSRef->{ $Ticket->Id . "-$linktype" } ) ) + { + $luri =~ s/\s*$//; # Strip trailing whitespace + my ( $val, $msg ) = $Ticket->AddLink( + Target => $luri, + Type => $linktype + ); + push @results, $msg; + } + + for my $luri ( split ( / /, $ARGSRef->{ "$linktype-" . $Ticket->Id } ) ) + { + my ( $val, $msg ) = $Ticket->AddLink( + Base => $luri, + Type => $linktype + ); + + push @results, $msg; + } + } + + #Merge if we need to + if ( $ARGSRef->{ $Ticket->Id . "-MergeInto" } ) { + my ( $val, $msg ) = + $Ticket->MergeInto( $ARGSRef->{ $Ticket->Id . "-MergeInto" } ); + push @results, $msg; + } + + return (@results); +} + +# }}} + +# {{{ sub ProcessTicketObjectKeywords + +=head2 ProcessTicketObjectKeywords ( TicketObj => $Ticket, ARGSRef => \%ARGS ); + +Returns an array of results messages. + +=cut + +sub ProcessTicketObjectKeywords { + my %args = ( + TicketObj => undef, + ARGSRef => undef, + @_ + ); + + my $TicketObj = $args{'TicketObj'}; + my $ARGSRef = $args{'ARGSRef'}; + + my (@results); + + # {{{ set ObjectKeywords. + + my $KeywordSelects = $TicketObj->QueueObj->KeywordSelects; + + # iterate through all the keyword selects for this queue + while ( my $KeywordSelect = $KeywordSelects->Next ) { + + # {{{ do some setup + + # if we have KeywordSelectMagic for this keywordselect: + next + unless + defined $ARGSRef->{ 'KeywordSelectMagic' . $KeywordSelect->id }; + + # Lets get a hash of the possible values to work with + my $value = $ARGSRef->{ 'KeywordSelect' . $KeywordSelect->id } || []; + + #lets get all those values in a hash. regardless of # of entries + #we'll use this for adding and deleting keywords from this object. + my %values = map { $_ => 1 } ref($value) ? @{$value} : ($value); + + # Load up the ObjectKeywords for this KeywordSelect for this ticket + my $ObjectKeys = $TicketObj->KeywordsObj( $KeywordSelect->id ); + + # }}} + # {{{ add new keywords + + foreach my $key ( keys %values ) { + + #unless the ticket has that keyword for that keyword select, + unless ( $ObjectKeys->HasEntry($key) ) { + + #Add the keyword + my ( $result, $msg ) = $TicketObj->AddKeyword( + Keyword => $key, + KeywordSelect => $KeywordSelect->id + ); + push ( @results, $msg ); + } + } + + # }}} + # {{{ Delete unused keywords + + #redo this search, so we don't ask it to delete things that are already gone + # such as when a single keyword select gets its value changed. + $ObjectKeys = $TicketObj->KeywordsObj( $KeywordSelect->id ); + + while ( my $TicketKey = $ObjectKeys->Next ) { + + # if the hash defined above doesn\'t contain the keyword mentioned, + unless ( $values{ $TicketKey->Keyword } ) { + + #I'd really love to just call $keyword->Delete, but then + # we wouldn't get a transaction recorded + my ( $result, $msg ) = $TicketObj->DeleteKeyword( + Keyword => $TicketKey->Keyword, + KeywordSelect => $KeywordSelect->id + ); + push ( @results, $msg ); + } + } + + # }}} + } + + #Iterate through the keyword selects for BulkManipulator style access + while ( my $KeywordSelect = $KeywordSelects->Next ) { + if ( $ARGSRef->{ "AddToKeywordSelect" . $KeywordSelect->Id } ) { + + #Add the keyword + my ( $result, $msg ) = $TicketObj->AddKeyword( + Keyword => + $ARGSRef->{ "AddToKeywordSelect" . $KeywordSelect->Id }, + KeywordSelect => $KeywordSelect->id + ); + push ( @results, $msg ); + } + if ( $ARGSRef->{ "DeleteFromKeywordSelect" . $KeywordSelect->Id } ) { + + #Delete the keyword + my ( $result, $msg ) = $TicketObj->DeleteKeyword( + Keyword => + $ARGSRef->{ "DeleteFromKeywordSelect" . $KeywordSelect->Id }, + KeywordSelect => $KeywordSelect->id + ); + push ( @results, $msg ); + } + } + + # }}} + + return (@results); +} + +# }}} + +1; diff --git a/rt/lib/RT/Keyword.pm b/rt/lib/RT/Keyword.pm new file mode 100644 index 000000000..a41e0a585 --- /dev/null +++ b/rt/lib/RT/Keyword.pm @@ -0,0 +1,446 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Keyword.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Keyword - Manipulate an RT::Keyword record + +=head1 SYNOPSIS + + use RT::Keyword; + + my $keyword = RT::Keyword->new($CurrentUser); + $keyword->Create( Name => 'tofu', + Description => 'fermented soy beans', + ); + + + my $keyword2 = RT::Keyword->new($CurrentUser); + $keyword2->Create( Name => 'beast', + Description => 'a wild animal', + Parent => $keyword->id(), + ); + +=head1 DESCRIPTION + +An B object is an arbitrary string. + +=head1 METHODS + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Scrip); + +=end testing + + +=cut +package RT::Keyword; + +use strict; +use vars qw(@ISA); +use Tie::IxHash; +use RT::Record; +use RT::Keywords; + +@ISA = qw(RT::Record); + +# {{{ Core methods + +sub _Init { + my $self = shift; + $self->{'table'} = "Keywords"; + $self->SUPER::_Init(@_); +} + +sub _Accessible { + my $self = shift; + my %cols = ( + Name => 'read/write', #the keyword itself + Description => 'read/write', #a description of the keyword + Parent => 'read/write', #optional id of another B, allowing keywords to be arranged hierarchically + Disabled => 'read/write' + ); + return ($self->SUPER::_Accessible( @_, %cols)); + +} + +# }}} + + +=over 4 + +=item new CURRENT_USER + +Takes a single argument, an RT::CurrentUser object. Instantiates a new +(uncreated) RT::Keyword object. + +=cut + +# {{{ sub Create + +=item Create KEY => VALUE, ... + +Takes a list of key/value pairs and creates a the object. Returns the id of +the newly created record, or false if there was an error. + +Keys are: + +Name - the keyword itself +Description - (not yet used) +Parent - optional link to another B, allowing keyword to be arranged in a hierarchical fashion. Can be specified by id or Name. + +=cut + +sub Create { + my $self = shift; + my %args = (Name => undef, + Description => undef, + Parent => 0, + @_); + + unless ($self->CurrentUserHasRight('AdminKeywords')) { + return (0, 'Permission Denied'); + } + + if ( $args{'Parent'} && $args{'Parent'} !~ /^\d+$/ ) { + $RT::Logger->err( "can't yet specify parents by name, sorry: ". $args{'Parent'}); + return(0,'Parent must be specified by id'); + } + + my $val = $self->SUPER::Create(Name => $args{'Name'}, + Description => $args{'Description'}, + Parent => $args{'Parent'} + ); + if ($val) { + return ($val, 'Keyword created'); + } + else { + return(0,'Could not create keyword'); + } +} + +# }}} + +# {{{ sub Delete + +sub Delete { + my $self = shift; + + return (0, 'Deleting this object would break referential integrity.'); +} + +# }}} + +# {{{ sub LoadByPath + +=head2 LoadByPath STRING + +LoadByPath takes a string. Whatever character starts the string is assumed to be a delimter. The routine parses the keyword path description and tries to load the keyword +described by that path. It returns a numerical status and a textual message. +A non-zero status means 'Success'. + +=cut + +sub LoadByPath { + my $self = shift; + + my $path = shift; + + my $delimiter = substr($path,0,1); + my @path_elements = split($delimiter, $path); + + #throw awya the first bogus path element + shift @path_elements; + + my $parent = 0; + my ($tempkey); + #iterate through all the path elements loading up a + #keyword object. when we're done, this object becomes + #whatever the last tempkey object was. + while (my $name = shift @path_elements) { + + $tempkey = new RT::Keyword($self->CurrentUser); + + my $loaded = $tempkey->LoadByNameAndParentId($name, $parent); + + #Set the new parent for loading its child. + $parent = $tempkey->Id; + + #If the parent Id is 0, then we're not recursing through the tree + # time to bail + return (0, "Couldn't find keyword") unless ($tempkey->id()); + + } + #Now that we're through with the loop, the last keyword loaded + # is the the one we wanted. + # we shouldn't need to explicitly load it like this. but we do. Thanks SQL + + $self->Load($tempkey->Id); + + return (1, 'Keyword loaded'); +} + + +# }}} + +# {{{ sub LoadByNameAndParentId + +=head2 LoadByNameAndParentId NAME PARENT_ID + +Takes two arguments, a keyword name and a parent id. Loads a keyword into + the current object. + +=cut + +sub LoadByNameAndParentId { + my $self = shift; + my $name = shift; + my $parentid = shift; + + my $val = $self->LoadByCols( Name => $name, Parent => $parentid); + if ($self->Id) { + return ($self->Id, 'Keyword loaded'); + } + else { + return (0, 'Keyword could not be found'); + } + } + +# }}} + + +# {{{ sub Load + +=head2 Load KEYWORD + +Loads KEYWORD, either by id if it's an integer or by Path, otherwise + +=cut + +sub Load { + my $self = shift; + my $id = shift; + + if (!$id) { + return (0, 'No keyword defined'); + } + if ($id =~ /^(\d+)$/) { + return ($self->SUPER::Load($id)); + } + else { + return($self->LoadByPath($id)); + } +} + + +# }}} + +# {{{ sub Path + +=item Path + + Returns this Keyword's full path going back to the root. (eg /OS/Unix/Linux/Redhat if +this keyword is "Redhat" ) + +=cut + +sub Path { + my $self = shift; + + if ($self->Parent == 0) { + return ("/".$self->Name); + } + else { + return ( $self->ParentObj->Path . "/" . $self->Name); + } + +} + +# }}} + +# {{{ sub RelativePath + +=head2 RelativePath KEYWORD_OBJ + +Takes a keyword object. Returns this keyword's path relative to that +keyword. + +=item Bugs + +Currently assumes that the "other" keyword is a predecessor of this keyword + +=cut + +sub RelativePath { + my $self = shift; + my $OtherKey = shift; + + my $OtherPath = $OtherKey->Path(); + my $MyPath = $self->Path; + $MyPath =~ s/^$OtherPath\///g; + return ($MyPath); +} + + +# }}} + +# {{{ sub ParentObj + +=item ParentObj + + Returns an RT::Keyword object of this Keyword's 'parents' + +=cut + +sub ParentObj { + my $self = shift; + + my $ParentObj = new RT::Keyword($self->CurrentUser); + $ParentObj->Load($self->Parent); + return ($ParentObj); +} + +# }}} + +# {{{ sub Children + +=item Children + +Return an RT::Keywords object this Object's children. + +=cut + +sub Children { + my $self = shift; + + my $Children = new RT::Keywords($self->CurrentUser); + $Children->LimitToParent($self->id); + return ($Children); +} + +# }}} + +# {{{ sub Descendents + +=item Descendents [ NUM_GENERATIONS [ EXCLUDE_HASHREF ] ] + +Returns an ordered (see L) hash reference of the descendents of +this keyword, possibly limited to a given number of generations. The keys +are B Is, and the values are strings containing the Is +of those Bs. + +=cut + +sub Descendents { + my $self = shift; + my $generations = shift || 0; + my $exclude = shift || {}; + my %results; + + + tie %results, 'Tie::IxHash'; + my $Keywords = new RT::Keywords($self->CurrentUser); + $Keywords->LimitToParent($self->id || 0 ); #If we have no id, start at the top + + while ( my $Keyword = $Keywords->Next ) { + + next if defined $exclude->{ $Keyword->id }; + $results{ $Keyword->id } = $Keyword->Name; + + if ( $generations == 0 || $generations > 1 ) { + #if we're limiting to some number of generations, + # decrement the number of generations + + my $nextgen = $generations; + $nextgen-- if ( $nextgen > 1 ); + + my $kids = $Keyword->Descendents($nextgen, \%results); + + foreach my $kid ( keys %{$kids}) { + $results{"$kid"} = $Keyword->Name. "/". $kids->{"$kid"}; + } + } + } + return(\%results); +} + +# }}} + +# {{{ ACL related methods + +# {{{ sub _Set + +# does an acl check and then passes off the call +sub _Set { + my $self = shift; + + unless ($self->CurrentUserHasRight('AdminKeywords')) { + return (0,'Permission Denied'); + } + return $self->SUPER::_Set(@_); +} + +# }}} + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight + +Helper menthod for HasRight. Presets Principal to CurrentUser then +calls HasRight. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + return ($self->HasRight( Principal => $self->CurrentUser->UserObj, + Right => $right )); + +} + +# }}} + +# {{{ sub HasRight + +=head2 HasRight + +Takes a param-hash consisting of "Right" and "Principal" Principal is +an RT::User object or an RT::CurrentUser object. "Right" is a textual +Right string that applies to Keywords. + +=cut + +sub HasRight { + my $self = shift; + my %args = ( Right => undef, + Principal => undef, + @_ ); + + return( $args{'Principal'}->HasSystemRight( $args{'Right'}) ); + +} +# }}} + +# }}} + +=back + +=head1 AUTHOR + +Ivan Kohler + +=head1 BUGS + +Yes. + +=head1 SEE ALSO + +L, L, L, L, +L + +[A=cut + +1; + diff --git a/rt/lib/RT/KeywordSelect.pm b/rt/lib/RT/KeywordSelect.pm new file mode 100644 index 000000000..6865216fd --- /dev/null +++ b/rt/lib/RT/KeywordSelect.pm @@ -0,0 +1,452 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/KeywordSelect.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +package RT::KeywordSelect; + +use strict; +use vars qw(@ISA); +use RT::Record; +use RT::Keyword; + +@ISA = qw(RT::Record); + +# {{{ POD + +=head1 NAME + + RT::KeywordSelect - Manipulate an RT::KeywordSelect record + +=head1 SYNOPSIS + + use RT::KeywordSelect; + + my $keyword_select = RT::KeywordSelect->new($CurrentUser); + $keyword_select->Create( + Keyword => 20, + ObjectType => 'Ticket', + Name => 'Choices' + ); + + my $keyword_select = RT::KeywordSelect->new($CurrentUser); + $keyword_select->Create( + Name => 'Choices', + Keyword => 20, + ObjectType => 'Ticket', + ObjectField => 'Queue', + ObjectValue => 1, + Single => 1, + Depth => 4, + ); + +=head1 DESCRIPTION + +An B object is a link between a Keyword and a object +type (one of: Ticket), titled by the I field of the B such +that: + +=over 4 + +=item Object display will contain a field, titled with the I field and + showing any descendent keywords which are related to this object via the + B table. + +=item Object creation for this object will contain a field titled with the + I field and containing the descendents of the B as + choices. If the I field of this B is true, each + object must be associated (via an B record) to a single + descendent. If the I field is false, each object may be connect to + zero, one, or many descendents. + +=item Searches for this object type will contain a selection field titled with + the I field and containing the descendents of the B as + choices. + +=item If I is defined (one of: Queue), all of the above apply only + when the value of I (Queue) in B (Ticket) matches + I. + +=back + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::KeywordSelects); + +=end testing + + +=head1 METHODS + + +=cut + + +=over 4 + +=item new CURRENT_USER + +Takes a single argument, an RT::CurrentUser object. Instantiates a new +(uncreated) RT::KeywordSelect object. + +=cut +# }}} + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "KeywordSelects"; + $self->SUPER::_Init(@_); +} +# }}} + +# {{{ sub _Accessible +sub _Accessible { + my $self = shift; + my %Cols = ( + Name => 'read/write', + Keyword => 'read/write', # link to Keywords. Can be specified by id + Single => 'read/write', # bool (described below) + + Depth => 'read/write', #- If non-zero, limits the descendents to this number of levels deep. + ObjectType => 'read/write', # currently only C + ObjectField => 'read/write', #optional, currently only C + ObjectValue => 'read/write', #constrains KeywordSelect function to when B.I equals I + Disabled => 'read/write' + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} +# }}} + +# {{{ sub LoadByName + +=head2 LoadByName( Name => [NAME], Queue => [QUEUE_ID]) +. Takes a queue id and a keyword select name. + tries to load the keyword select for that queue. if that fails, it tries to load it + without a queue specified. + +=cut + + +sub LoadByName { + my $self = shift; + my %args = ( Name => undef, + Queue => undef, + @_ + ); + if ($args{'Queue'}) { + #Try to get the keyword select for this queue + $self->LoadByCols( Name => $args{'Name'}, + ObjectType => 'Ticket', + ObjectField => 'Queue', + ObjectValue => $args{'Queue'}); + } + unless ($self->Id) { #if that failed to load an object + #Try to get the keyword select of that name that's global + $self->LoadByCols( Name => $args{'Name'}, + ObjectType => 'Ticket', + ObjectField => 'Queue', + ObjectValue => '0'); + } + + return($self->Id); + +} + +# }}} + +# {{{ sub Create +=item Create KEY => VALUE, ... + +Takes a list of key/value pairs and creates a the object. Returns the id of +the newly created record, or false if there was an error. + +Keys are: + +Keyword - link to Keywords. Can be specified by id. +Name - A name for this KeywordSelect +Single - bool (described above) +Depth - If non-zero, limits the descendents to this number of levels deep. +ObjectType - currently only C +ObjectField - optional, currently only C +ObjectValue - constrains KeywordSelect function to when B.I equals I + +=cut + +sub Create { + my $self = shift; + my %args = ( Keyword => undef, + Single => 1, + Depth => 0, + Name => undef, + ObjectType => undef, + ObjectField => undef, + ObjectValue => undef, + @_); + + #If we're talking about a keyword select based on a ticket's 'Queue' field + if ( ($args{'ObjectField'} eq 'Queue') and + ($args{'ObjectType'} eq 'Ticket')) { + + #If we're talking about a keywordselect for all queues + if ($args{'ObjectValue'} == 0) { + unless( $self->CurrentUserHasSystemRight('AdminKeywordSelects')) { + return (0, 'Permission Denied'); + } + } + #otherwise, we're talking about a keywordselect for a specific queue + else { + unless ($self->CurrentUserHasQueueRight( Right => 'AdminKeywordSelects', + Queue => $args{'ObjectValue'})) { + return (0, 'Permission Denied'); + } + } + } + else { + return (0, "Can't create a KeywordSelect for that object/field combo"); + } + + my $Keyword = new RT::Keyword($self->CurrentUser); + + if ( $args{'Keyword'} && $args{'Keyword'} !~ /^\d+$/ ) { + $Keyword->LoadByPath($args{'Keyword'}); + } + else { + $Keyword->Load($args{'Keyword'}); + } + + unless ($Keyword->Id) { + $RT::Logger->debug("Keyword ".$args{'Keyword'} ." not found\n"); + return(0, 'Keyword not found'); + } + + $args{'Name'} = $Keyword->Name if (!$args{'Name'}); + + my $val = $self->SUPER::Create( Name => $args{'Name'}, + Keyword => $Keyword->Id, + Single => $args{'Single'}, + Depth => $args{'Depth'}, + ObjectType => $args{'ObjectType'}, + ObjectField => $args{'ObjectField'}, + ObjectValue => $args{'ObjectValue'}); + if ($val) { + return ($val, 'KeywordSelect Created'); + } + else { + return (0, 'System error. KeywordSelect not created'); + + } +} +# }}} + +# {{{ sub Delete + +sub Delete { + my $self = shift; + + return (0, 'Deleting this object would break referential integrity.'); +} + +# }}} + + +# {{{ sub SetDisabled + +=head2 Sub SetDisabled + +Toggles the KeywordSelect's disabled flag. + + +=cut + +sub SetDisabled { + my $self = shift; + my $value = shift; + + unless ($self->CurrentUserHasRight('AdminKeywordSelects')) { + return (0, "Permission Denied"); + } + return($self->_Set(Field => 'Disabled', Value => $value)); +} + +# }}} + +# {{{ sub KeywordObj + +=item KeywordObj + +Returns the B referenced by the I field. + +=cut + +sub KeywordObj { + my $self = shift; + + my $Keyword = new RT::Keyword($self->CurrentUser); + $Keyword->Load( $self->Keyword ); #or ? + return($Keyword); +} +# }}} + +# {{{ sub Object + +=item Object + +Returns the object (currently only RT::Queue) specified by ObjectField and ObjectValue. + +=cut + +sub Object { + my $self = shift; + if ( $self->ObjectField eq 'Queue' ) { + my $Queue = new RT::Queue($self->CurrentUser); + $Queue->Load( $self->ObjectValue ); + return ($Queue); + } else { + $RT::Logger->error("$self trying to load an object value for a non-queue object"); + return (undef); + } +} + +# }}} + +# {{{ sub _Set + +# does an acl check, then passes off the call +sub _Set { + my $self = shift; + + unless ($self->CurrentUserHasRight('AdminKeywordSelects')) { + return (0, "Permission Denied"); + } + + return ($self->SUPER::_Set(@_)); + +} + +# }}} + + +# {{{ sub CurrentUserHasQueueRight + +=head2 CurrentUserHasQueueRight ( Queue => QUEUEID, Right => RIGHTNANAME ) + +Check to see whether the current user has the specified right for the specified queue. + +=cut + +sub CurrentUserHasQueueRight { + my $self = shift; + my %args = (Queue => undef, + Right => undef, + @_ + ); + return ($self->HasRight( Right => $args{'Right'}, + Principal => $self->CurrentUser->UserObj, + Queue => $args{'Queue'})); +} + +# }}} + +# {{{ sub CurrentUserHasSystemRight + +=head2 CurrentUserHasSystemRight RIGHTNAME + +Check to see whether the current user has the specified right for the 'system' scope. + +=cut + +sub CurrentUserHasSystemRight { + my $self = shift; + my $right = shift; + $RT::Logger->debug("$self in hashsysright for right $right\n"); + return ($self->HasRight( Right => $right, + System => 1, + Principal => $self->CurrentUser->UserObj)); +} + +# }}} + +# {{{ sub CurrentUserHasRight + +=item CurrentUserHasRight RIGHT [QUEUEID] + +Takes a rightname as a string. Can take a queue id as a second +optional parameter, which can be useful to a routine like create. +Helper menthod for HasRight. Presets Principal to CurrentUser then +calls HasRight. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + return ($self->HasRight( Principal => $self->CurrentUser->UserObj, + Right => $right, + )); +} + +# }}} + +# {{{ sub HasRight + +=item HasRight + +Takes a param-hash consisting of "Right" and "Principal" Principal is +an RT::User object or an RT::CurrentUser object. "Right" is a textual +Right string that applies to KeywordSelects + +=cut + +sub HasRight { + my $self = shift; + my %args = ( Right => undef, + Principal => undef, + Queue => undef, + System => undef, + @_ ); + + #If we're explicitly specifying a queue, as we need to do on create + if ($args{'Queue'}) { + return ($args{'Principal'}->HasQueueRight(Right => $args{'Right'}, + Queue => $args{'Queue'})); + } + #else if we're specifying to check a system right + elsif ($args{'System'}) { + return( $args{'Principal'}->HasSystemRight( $args{'Right'} )); + } + + #else if we 're using the object's queue + elsif (($self->__Value('ObjectField') eq 'Queue') and + ($self->__Value('ObjectValue') > 0 )) { + return ($args{'Principal'}->HasQueueRight(Right => $args{'Right'}, + Queue => $self->__Value('ObjectValue') )); + } + + #If the object is system scoped. + else { + return( $args{'Principal'}->HasSystemRight( $args{'Right'} )); + } +} + +# }}} + +=back + +=head1 AUTHORS + +Ivan Kohler , Jesse Vincent + +=head1 BUGS + +The ACL system for this object is more byzantine than it should be. reworking it eventually +would be a good thing. + +=head1 SEE ALSO + +L, L, L, L, +L, L + +=cut + +1; + diff --git a/rt/lib/RT/KeywordSelects.pm b/rt/lib/RT/KeywordSelects.pm new file mode 100644 index 000000000..c220b39f9 --- /dev/null +++ b/rt/lib/RT/KeywordSelects.pm @@ -0,0 +1,143 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/KeywordSelects.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Scrip); + +=end testing + +=cut + + +package RT::KeywordSelects; + +use strict; +use vars qw( @ISA ); +use RT::EasySearch; +use RT::KeywordSelect; + +@ISA = qw( RT::EasySearch ); + +# {{{ _Init +sub _Init { + my $self = shift; + $self->{'table'} = 'KeywordSelects'; + $self->{'primary_key'} = 'id'; + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _DoSearch + +=head2 _DoSearch + + A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless +we're explicitly trying to see them. + +=cut + +sub _DoSearch { + my $self = shift; + + #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. + unless($self->{'find_disabled_rows'}) { + $self->LimitToEnabled(); + } + + return($self->SUPER::_DoSearch(@_)); + +} + +# }}} + +# {{{ sub LimitToQueue +=head2 LimitToQueue + +Takes a queue id. Limits the returned set to KeywordSelects for that queue. +Repeated calls will be OR'd together. + +=cut + +sub LimitToQueue { + my $self = shift; + my $queue = shift; + + $self->Limit( FIELD => 'ObjectValue', + VALUE => $queue, + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR' + ); + + $self->Limit( FIELD => 'ObjectType', + VALUE => 'Ticket', + OPERATOR => '='); + + $self->Limit( FIELD => 'ObjectField', + VALUE => 'Queue', + OPERATOR => '='); + + +} +# }}} + +# {{{ sub LimitToGlobals + +=head2 LimitToGlobals + +Limits the returned set to KeywordSelects for all queues. +Repeated calls will be OR'd together. + +=cut + +sub LimitToGlobals { + my $self = shift; + + $self->Limit( FIELD => 'ObjectType', + VALUE => 'Ticket', + OPERATOR => '='); + + $self->Limit( FIELD => 'ObjectField', + VALUE => 'Queue', + OPERATOR => '='); + + $self->Limit( FIELD => 'ObjectValue', + VALUE => '0', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR' + ); + +} +# }}} + +# {{{ sub IncludeGlobals +=head2 IncludeGlobals + +Include KeywordSelects which apply globally in the set of returned results + +=cut + + +sub IncludeGlobals { + my $self = shift; + $self->Limit( FIELD => 'ObjectValue', + VALUE => '0', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR' + ); + + +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + #my $Handle = shift; + return (new RT::KeywordSelect($self->CurrentUser)); +} +# }}} +1; + diff --git a/rt/lib/RT/Keywords.pm b/rt/lib/RT/Keywords.pm new file mode 100644 index 000000000..a9ecda2bc --- /dev/null +++ b/rt/lib/RT/Keywords.pm @@ -0,0 +1,106 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Keywords.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Keywords - a collection of RT::Keyword objects + +=head1 SYNOPSIS + + use RT::Keywords; + my $keywords = RT::Keywords->new($user); + $keywords->LimitToParent(0); + while my ($keyword = $keywords->Next()) { + print $keyword->Name ."\n"; + } + + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Keywords); + +=end testing + +=cut + +package RT::Keywords; + +use strict; +use vars qw( @ISA ); +use RT::EasySearch; +use RT::Keyword; + +@ISA = qw( RT::EasySearch ); + + +# {{{ sub _Init + +sub _Init { + my $self = shift; + $self->{'table'} = 'Keywords'; + $self->{'primary_key'} = 'id'; + + # By default, order by name + $self->OrderBy( ALIAS => 'main', + FIELD => 'Name', + ORDER => 'ASC'); + + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _DoSearch + +=head2 _DoSearch + + A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless +we're explicitly trying to see them. + +=cut + +sub _DoSearch { + my $self = shift; + + #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. + unless($self->{'find_disabled_rows'}) { + $self->LimitToEnabled(); + } + + return($self->SUPER::_DoSearch(@_)); + +} + +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + return (RT::Keyword->new($self->CurrentUser)); +} +# }}} + +# {{{ sub LimitToParent + +=head2 LimitToParent + +Takes a parent id and limits the returned keywords to children of that parent. + +=cut + +sub LimitToParent { + my $self = shift; + my $parent = shift; + $self->Limit( FIELD => 'Parent', + VALUE => $parent, + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR' ); +} +# }}} + +1; + diff --git a/rt/lib/RT/Link.pm b/rt/lib/RT/Link.pm new file mode 100644 index 000000000..885ffe3ed --- /dev/null +++ b/rt/lib/RT/Link.pm @@ -0,0 +1,373 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Link.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# (c) 1996-1999 Jesse Vincent +# This software is redistributable under the terms of the GNU GPL + +=head1 NAME + + RT::Link - an RT Link object + +=head1 SYNOPSIS + + use RT::Link; + +=head1 DESCRIPTION + +This module should never be called directly by client code. it's an internal module which +should only be accessed through exported APIs in Ticket other similar objects. + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Link); + +=end testing + +=cut + +package RT::Link; +use RT::Record; +use Carp; +@ISA= qw(RT::Record); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Links"; + return ($self->SUPER::_Init(@_)); +} + +# }}} + +# {{{ sub Create + +=head2 Create PARAMHASH + +Create a new link object. Takes 'Base', 'Target' and 'Type'. +Returns undef on failure or a Link Id on success. + +=cut + +sub Create { + my $self = shift; + my %args = ( Base => undef, + Target => undef, + Type => undef, + @_ # get the real argumentlist + ); + + my $BaseURI = $self->CanonicalizeURI($args{'Base'}); + my $TargetURI = $self->CanonicalizeURI($args{'Target'}); + + unless (defined $BaseURI) { + $RT::Logger->warning ("$self couldn't resolve base:'".$args{'Base'}. + "' into a URI\n"); + return (undef); + } + unless (defined $TargetURI) { + $RT::Logger->warning ("$self couldn't resolve target:'".$args{'Target'}. + "' into a URI\n"); + return(undef); + } + + my $LocalBase = $self->_IsLocal($BaseURI); + my $LocalTarget = $self->_IsLocal($TargetURI); + my $id = $self->SUPER::Create(Base => "$BaseURI", + Target => "$TargetURI", + LocalBase => $LocalBase, + LocalTarget => $LocalTarget, + Type => $args{'Type'}); + return ($id); +} + +# }}} + +# {{{ sub Load + +=head2 Load + + Load an RT::Link object from the database. Takes one parameter or three. + One parameter is the id of an entry in the links table. Three parameters are a tuple of (base, linktype, target); + + +=cut + +sub Load { + my $self = shift; + my $identifier = shift; + my $linktype = shift if (@_); + my $target = shift if (@_); + + if ($target) { + my $BaseURI = $self->CanonicalizeURI($identifier); + my $TargetURI = $self->CanonicalizeURI($target); + $self->LoadByCols( Base => $BaseURI, + Type => $linktype, + Target => $TargetURI + ) || return (0, "Couldn't load link"); + } + + elsif ($identifier =~ /^\d+$/) { + $self->LoadById($identifier) || + return (0, "Couldn't load link"); + } + else { + return (0, "That's not a numerical id"); + } +} + +# }}} + +# {{{ sub TargetObj + +=head2 TargetObj + +=cut + +sub TargetObj { + my $self = shift; + return $self->_TicketObj('base',$self->Target); +} +# }}} + +# {{{ sub BaseObj + +=head2 BaseObj + +=cut + +sub BaseObj { + my $self = shift; + return $self->_TicketObj('target',$self->Base); +} +# }}} + +# {{{ sub _TicketObj +sub _TicketObj { + my $self = shift; + my $name = shift; + my $ref = shift; + my $tag="$name\_obj"; + + unless (exists $self->{$tag}) { + + $self->{$tag}=RT::Ticket->new($self->CurrentUser); + + #If we can get an actual ticket, load it up. + if ($self->_IsLocal($ref)) { + $self->{$tag}->Load($ref); + } + } + return $self->{$tag}; +} +# }}} + +# {{{ sub _Accessible +sub _Accessible { + my $self = shift; + my %Cols = ( + LocalBase => 'read', + LocalTarget => 'read', + Base => 'read', + Target => 'read', + Type => 'read', + Creator => 'read/auto', + Created => 'read/auto', + LastUpdatedBy => 'read/auto', + LastUpdated => 'read/auto' + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} +# }}} + + +# Static methods: + +# {{{ sub BaseIsLocal + +=head2 BaseIsLocal + +Returns true if the base of this link is a local ticket + +=cut + +sub BaseIsLocal { + my $self = shift; + return $self->_IsLocal($self->Base); +} + +# }}} + +# {{{ sub TargetIsLocal + +=head2 TargetIsLocal + +Returns true if the target of this link is a local ticket + +=cut + +sub TargetIsLocal { + my $self = shift; + return $self->_IsLocal($self->Target); +} + +# }}} + +# {{{ sub _IsLocal + +=head2 _IsLocal URI + +When handed a URI returns the local ticket id if it\'s local. otherwise returns undef. + +=cut + +sub _IsLocal { + my $self = shift; + my $URI=shift; + unless ($URI) { + $RT::Logger->warning ("$self _IsLocal called without a URI\n"); + return (undef); + } + # TODO: More thorough check + if ($URI =~ /^$RT::TicketBaseURI(\d+)$/) { + return($1); + } + else { + return (undef); + } +} +# }}} + + +# {{{ sub BaseAsHREF + +=head2 BaseAsHREF + +Returns an HTTP url to access the base of this link + +=cut + +sub BaseAsHREF { + my $self = shift; + return $self->AsHREF($self->Base); +} +# }}} + +# {{{ sub TargetAsHREF + +=head2 TargetAsHREF + +return an HTTP url to access the target of this link + +=cut + +sub TargetAsHREF { + my $self = shift; + return $self->AsHREF($self->Target); +} +# }}} + +# {{{ sub AsHREF - Converts Link URIs to HTTP URLs +=head2 URI + +Takes a URI and returns an http: url to access that object. + +=cut +sub AsHREF { + my $self=shift; + my $URI=shift; + if ($self->_IsLocal($URI)) { + my $url=$RT::WebURL . "Ticket/Display.html?id=$URI"; + return($url); + } + else { + my ($protocol) = $URI =~ m|(.*?)://|; + unless (exists $RT::URI2HTTP{$protocol}) { + $RT::Logger->warning("Linking for protocol $protocol not defined in the config file!"); + return(""); + } + return $RT::URI2HTTP{$protocol}->($URI); + } +} + +# }}} + +# {{{ sub GetContent - gets the content from a link +sub GetContent { + my ($self, $URI)= @_; + if ($self->_IsLocal($URI)) { + die "stub"; + } else { + # Find protocol + if ($URI =~ m|^(.*?)://|) { + if (exists $RT::ContentFromURI{$1}) { + return $RT::ContentFromURI{$1}->($URI); + } else { + warn "No sub exists for fetching the content from a $1 in $URI"; + } + } else { + warn "No protocol specified in $URI"; + } + } +} +# }}} + +# {{{ sub CanonicalizeURI + +=head2 CanonicalizeURI + +Takes a single argument: some form of ticket identifier. +Returns its canonicalized URI. + +Bug: ticket aliases can't have :// in them. URIs must have :// in them. + +=cut + +sub CanonicalizeURI { + my $self = shift; + my $id = shift; + + + #If it's a local URI, load the ticket object and return its URI + if ($id =~ /^$RT::TicketBaseURI/) { + my $ticket = new RT::Ticket($self->CurrentUser); + $ticket->Load($id); + #If we couldn't find a ticket, return undef. + return undef unless (defined $ticket->Id); + #$RT::Logger->debug("$self -> CanonicalizeURI was passed $id and returned ".$ticket->URI ." (uri)\n"); + return ($ticket->URI); + } + #If it's a remote URI, we're going to punt for now + elsif ($id =~ '://' ) { + return ($id); + } + + #If the base is an integer, load it as a ticket + elsif ( $id =~ /^\d+$/ ) { + + #$RT::Logger->debug("$self -> CanonicalizeURI was passed $id. It's a ticket id.\n"); + my $ticket = new RT::Ticket($self->CurrentUser); + $ticket->Load($id); + #If we couldn't find a ticket, return undef. + return undef unless (defined $ticket->Id); + #$RT::Logger->debug("$self returned ".$ticket->URI ." (id #)\n"); + return ($ticket->URI); + } + + #It's not a URI. It's not a numerical ticket ID + else { + + #If we couldn't find a ticket, return undef. + return( undef); + + } + + +} + +# }}} + +1; + diff --git a/rt/lib/RT/Links.pm b/rt/lib/RT/Links.pm new file mode 100644 index 000000000..a8180caf0 --- /dev/null +++ b/rt/lib/RT/Links.pm @@ -0,0 +1,90 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Links.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Links - A collection of Link objects + +=head1 SYNOPSIS + + use RT::Links; + my $links = new RT::Links($CurrentUser); + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Links); + +=end testing + +=cut + +package RT::Links; +use RT::EasySearch; +use RT::Link; + +@ISA= qw(RT::EasySearch); + +# {{{ sub _Init +sub _Init { + my $self = shift; + + $self->{'table'} = "Links"; + $self->{'primary_key'} = "id"; + + + return ( $self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub Limit +sub Limit { + my $self = shift; + my %args = ( ENTRYAGGREGATOR => 'AND', + OPERATOR => '=', + @_); + + #if someone's trying to search for tickets, try to resolve the uris for searching. + + if ( ( $args{'OPERATOR'} eq '=') and + ( $args{'FIELD'} eq 'Base') or ($args{'FIELD'} eq 'Target') + ) { + my $dummy = $self->NewItem(); + $uri = $dummy->CanonicalizeURI($args{'VALUE'}); + } + + + # If we're limiting by target, order by base + # (Order by the thing that's changing) + + if ( ($args{'FIELD'} eq 'Target') or + ($args{'FIELD'} eq 'LocalTarget') ) { + $self->OrderBy (ALIAS => 'main', + FIELD => 'Base', + ORDER => 'ASC'); + } + elsif ( ($args{'FIELD'} eq 'Base') or + ($args{'FIELD'} eq 'LocalBase') ) { + $self->OrderBy (ALIAS => 'main', + FIELD => 'Target', + ORDER => 'ASC'); + } + + + $self->SUPER::Limit(%args); +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + return(RT::Link->new($self->CurrentUser)); +} +# }}} + 1; + diff --git a/rt/lib/RT/ObjectKeyword.pm b/rt/lib/RT/ObjectKeyword.pm new file mode 100644 index 000000000..287d41fab --- /dev/null +++ b/rt/lib/RT/ObjectKeyword.pm @@ -0,0 +1,192 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/ObjectKeyword.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# Released under the terms of the GNU Public License + +=head1 NAME + + RT::ObjectKeyword -- a keyword tied to an object in the database + +=head1 SYNOPSIS + + use RT::ObjectKeyword; + + +=head1 DESCRIPTION + +This module should never be called directly by client code. it's an internal module which +should only be accessed through exported APIs in Ticket, Queue and other similar objects. + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::ObjectKeyword); + +=end testing + +=head1 METHODS + +=cut + +package RT::ObjectKeyword; + +use strict; +use vars qw(@ISA); +use RT::Record; + +@ISA = qw(RT::Record); + +sub _Init { + my $self = shift; + $self->{'table'} = "ObjectKeywords"; + $self->SUPER::_Init(@_); +} + +sub _Accessible { + my $self = shift; + + my %cols = ( + Keyword => 'read/write', #link to the B + KeywordSelect => 'read/write', #link to the B + ObjectType => 'read/write', #currently only C + ObjectId => 'read/write', #link to the object specified in I + ); + return ($self->SUPER::_Accessible( @_, %cols)); +} + + + +# TODO - post 2.0. add in _Set and _Value, so we can ACL them. protected at another API level + + +=head1 NAME + + RT::ObjectKeyword - Manipulate an RT::ObjectKeyword record + +=head1 SYNOPSIS + + use RT::ObjectKeyword; + + my $keyword = RT::ObjectKeyword->new($CurrentUser); + $keyword->Create; + +=head1 DESCRIPTION + +An B object associates an B with another +object (currently only B. + +This module should B be called directly by client code. its API is entirely through RT ticket or other objects which can have keywords assigned. + + +=head1 METHODS + +=over 4 + +=item new CURRENT_USER + +Takes a single argument, an RT::CurrentUser object. Instantiates a new +(uncreated) RT::ObjectKeyword object. + +=cut + +# {{{ sub Create + +=item Create KEY => VALUE, ... + +Takes a list of key/value pairs and creates a the object. Returns the id of +the newly created record, or false if there was an error. + +Keys are: + +Keyword - link to the B +ObjectType - currently only C +ObjectId - link to the object specified in I + +=cut + + +sub Create { + my $self = shift; + my %args = (Keyword => undef, + KeywordSelect => undef, + ObjectType => undef, + ObjectId => undef, + @_); + + #TODO post 2.0 ACL check + + return ($self->SUPER::Create( Keyword => $args{'Keyword'}, + KeywordSelect => $args{'KeywordSelect'}, + ObjectType => $args{'ObjectType'}, + ObjectId => $args{'ObjectId'})) +} +# }}} + +# {{{ sub KeywordObj + +=item KeywordObj + +Returns an B object of the Keyword associated with this ObjectKeyword. + +=cut + +sub KeywordObj { + my $self = shift; + my $keyword = new RT::Keyword($self->CurrentUser); + $keyword->Load($self->Keyword); + return ($keyword); +} +# }}} + +# {{{ sub KeywordSelectObj + +=item KeywordSelectObj + +Returns an B object of the KeywordSelect associated with this ObjectKeyword. + +=cut + +sub KeywordSelectObj { + my $self = shift; + my $keyword_sel = new RT::KeywordSelect($self->CurrentUser); + $keyword_sel->Load($self->KeywordSelect); + return ($keyword_sel); +} +# }}} + +# {{{ sub KeywordRelativePath + +=item KeywordRelativePath + +Returns a string of the Keyword's path relative to this ObjectKeyword's KeywordSelect + + + +=cut + +sub KeywordRelativePath { + my $self = shift; + return($self->KeywordObj->RelativePath( + $self->KeywordSelectObj->KeywordObj->Path)); + +} +# }}} + +=back + +=head1 AUTHOR + +Ivan Kohler + +=head1 BUGS + +Yes. + +=head1 SEE ALSO + +L, L, L, L, +L + +=cut + +1; + diff --git a/rt/lib/RT/ObjectKeywords.pm b/rt/lib/RT/ObjectKeywords.pm new file mode 100644 index 000000000..5df996e37 --- /dev/null +++ b/rt/lib/RT/ObjectKeywords.pm @@ -0,0 +1,234 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/ObjectKeywords.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +package RT::ObjectKeywords; + +use strict; +use vars qw( @ISA ); + +=head1 NAME + + RT::ObjectKeywords - note warning + +=head1 WARNING + +This module should B be called directly by client code. its API is entirely through RT ticket or other objects which can have keywords assigned. + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::ObjectKeywords); + +=end testing + +=cut + +use RT::EasySearch; +use RT::ObjectKeyword; + +@ISA = qw( RT::EasySearch ); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = 'ObjectKeywords'; + $self->{'primary_key'} = 'id'; + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + return (new RT::ObjectKeyword($self->CurrentUser)); +} +# }}} + +# {{{ sub LimitToKeywordSelect + +=head2 LimitToKeywordSelect + + Takes a B id or Nameas its single argument. limits the returned set of ObjectKeywords +to ObjectKeywords which apply to that ticket + +=cut + + +sub LimitToKeywordSelect { + my $self = shift; + my $keywordselect = shift; + + if ($keywordselect =~ /^\d+$/) { + + $self->Limit(FIELD => 'KeywordSelect', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR', + VALUE => "$keywordselect"); + } + + #We're limiting by name. time to be klever + else { + my $ks = $self->NewAlias('KeywordSelects'); + $self->Join(ALIAS1 => $ks, FIELD1 => 'id', + ALIAS2 => 'main', FIELD2 => 'KeywordSelect'); + + $self->Limit( ALIAS => "$ks", + FIELD => 'Name', + VALUE => "$keywordselect", + OPERATOR => "=", + ENTRYAGGREGATOR => "OR"); + + $self->Limit ( ALIAS => "$ks", + FIELD => 'ObjectType', + VALUE => 'Ticket', + OPERATOR => '=', + ); + + $self->Limit ( ALIAS => "$ks", + FIELD => 'ObjectField', + VALUE => 'Queue', + OPERATOR => '=', + ); + + + # TODO +++ we need to be able to limit the returned + # keywordselects to ones that apply only to this queue + # $self->Limit( ALIAS => "$ks", + # FIELD => 'ObjectValue', + # VALUE => $self->QueueObj->Id, + # OPERATOR => "=", + # ENTRYAGGREGATOR => "OR"); + + } + + + +} + +# }}} + +# {{{ LimitToTicket + +=head2 LimitToTicket TICKET_ID + + Takes an B id as its single argument. limits the returned set of ObjectKeywords +to ObjectKeywords which apply to that ticket + +=cut + +sub LimitToTicket { + my $self = shift; + my $ticket = shift; + $self->Limit(FIELD => 'ObjectId', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR', + VALUE => "$ticket"); + + $self->Limit(FIELD => 'ObjectType', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR', + VALUE => "Ticket"); + +} + +# }}} + +# {{{ sub _DoSearch +#wrap around _DoSearch so that we can build the hash of returned +#values + +sub _DoSearch { + my $self = shift; + # $RT::Logger->debug("Now in ".$self."->_DoSearch"); + my $return = $self->SUPER::_DoSearch(@_); + # $RT::Logger->debug("In $self ->_DoSearch. return from SUPER::_DoSearch was $return\n"); + $self->_BuildHash(); + return ($return); +} +# }}} + +# {{{ sub _BuildHash +#Build a hash of this ACL's entries. +sub _BuildHash { + my $self = shift; + + while (my $entry = $self->Next) { + + my $hashkey = $entry->Keyword; + $self->{'as_hash'}->{"$hashkey"} =1; + } + +} +# }}} + +# {{{ HasEntry + +=head2 HasEntry KEYWORD_ID + + Takes a keyword id and returns true if this ObjectKeywords object has an entry for that +keyword. Returns undef otherwise. + +=cut + +sub HasEntry { + + my $self = shift; + my $keyword = shift; + + + #if we haven't done the search yet, do it now. + $self->_DoSearch(); + + # $RT::Logger->debug("Now in ".$self."->HasEntry\n"); + + + if ($self->{'as_hash'}->{ $keyword } == 1) { + return(1); + } + else { + return(undef); + } +} + +# }}} + +# {{{ sub RelativePaths + +=head2 RelativePaths + +# Return a (reference to a) list of KeywordRelativePaths + +=cut + +sub RelativePaths { + my $self = shift; + + my @list; + + # Here $key is a RT::ObjectKeyword + while (my $key=$self->Next()) { + push(@list, $key->KeywordRelativePath); + } + return(\@list); +} +# }}} + +# {{{ sub RelativePathsAsString + +=head2 RelativePathsAsString + +# Returns the RT::ObjectKeywords->RelativePaths as a comma seperated string + +=cut + +sub RelativePathsAsString { + my $self = shift; + return(join(", ",@{$self->KeywordRelativePaths})); +} +# }}} + +1; + diff --git a/rt/lib/RT/Queue.pm b/rt/lib/RT/Queue.pm new file mode 100755 index 000000000..1656903b3 --- /dev/null +++ b/rt/lib/RT/Queue.pm @@ -0,0 +1,944 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Queue.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Queue - an RT Queue object + +=head1 SYNOPSIS + + use RT::Queue; + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing +use RT::TestHarness; + +use RT::Queue; + +=end testing + +=cut + + + +package RT::Queue; +use RT::Record; + +@ISA= qw(RT::Record); + +use vars (@STATUS); + +@STATUS = qw(new open stalled resolved dead); + +=head2 StatusArray + +Returns an array of all statuses for this queue + +=cut + +sub StatusArray { + my $self = shift; + return (@STATUS); +} + + +=head2 IsValidStatus VALUE + +Returns true if VALUE is a valid status. Otherwise, returns 0 + +=for testing +my $q = new RT::Queue($RT::SystemUser); +ok($q->IsValidStatus('new')== 1, 'New is a valid status'); +ok($q->IsValidStatus('f00')== 0, 'f00 is not a valid status'); + +=cut + +sub IsValidStatus { + my $self = shift; + my $value = shift; + + my $retval = grep (/^$value$/, $self->StatusArray); + return ($retval); + +} + + + + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Queues"; + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _Accessible + +sub _Accessible { + my $self = shift; + my %Cols = ( Name => 'read/write', + CorrespondAddress => 'read/write', + Description => 'read/write', + CommentAddress => 'read/write', + InitialPriority => 'read/write', + FinalPriority => 'read/write', + DefaultDueIn => 'read/write', + Creator => 'read/auto', + Created => 'read/auto', + LastUpdatedBy => 'read/auto', + LastUpdated => 'read/auto', + Disabled => 'read/write', + + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} + +# }}} + +# {{{ sub Create + +=head2 Create + +Create takes the name of the new queue +If you pass the ACL check, it creates the queue and returns its queue id. + +=cut + +sub Create { + my $self = shift; + my %args = ( Name => undef, + CorrespondAddress => '', + Description => '', + CommentAddress => '', + InitialPriority => "0", + FinalPriority => "0", + DefaultDueIn => "0", + @_); + + unless ($self->CurrentUser->HasSystemRight('AdminQueue')) { #Check them ACLs + return (0, "No permission to create queues") + } + + unless ($self->ValidateName($args{'Name'})) { + return(0, 'Queue already exists'); + } + #TODO better input validation + + my $id = $self->SUPER::Create(%args); + unless ($id) { + return (0, 'Queue could not be created'); + } + + return ($id, "Queue $id created"); +} + +# }}} + +# {{{ sub Delete + +sub Delete { + my $self = shift; + return (0, 'Deleting this object would break referential integrity'); +} + +# }}} + +# {{{ sub SetDisabled + +=head2 SetDisabled + +Takes a boolean. +1 will cause this queue to no longer be avaialble for tickets. +0 will re-enable this queue + +=cut + +# }}} + +# {{{ sub Load + +=head2 Load + +Takes either a numerical id or a textual Name and loads the specified queue. + +=cut + +sub Load { + my $self = shift; + + my $identifier = shift; + if (!$identifier) { + return (undef); + } + + if ($identifier !~ /\D/) { + $self->SUPER::LoadById($identifier); + } + else { + $self->LoadByCol("Name", $identifier); + } + + return ($self->Id); + + +} +# }}} + +# {{{ sub ValidateName + +=head2 ValidateName NAME + +Takes a queue name. Returns true if it's an ok name for +a new queue. Returns undef if there's already a queue by that name. + +=cut + +sub ValidateName { + my $self = shift; + my $name = shift; + + my $tempqueue = new RT::Queue($RT::SystemUser); + $tempqueue->Load($name); + + #If we couldn't load it :) + unless ($tempqueue->id()) { + return(1); + } + + #If this queue exists, return undef + #Avoid the ACL check. + if ($tempqueue->Name()){ + return(undef); + } + + #If the queue doesn't exist, return 1 + else { + return(1); + } + +} + + +# }}} + +# {{{ sub Templates + +=head2 Templates + +Returns an RT::Templates object of all of this queue's templates. + +=cut + +sub Templates { + my $self = shift; + + + my $templates = RT::Templates->new($self->CurrentUser); + + if ($self->CurrentUserHasRight('ShowTemplate')) { + $templates->LimitToQueue($self->id); + } + + return ($templates); +} + +# }}} + +# {{{ Dealing with watchers + +# {{{ sub Watchers + +=head2 Watchers + +Watchers returns a Watchers object preloaded with this queue\'s watchers. + +=cut + +sub Watchers { + my $self = shift; + + require RT::Watchers; + my $watchers =RT::Watchers->new($self->CurrentUser); + + if ($self->CurrentUserHasRight('SeeQueue')) { + $watchers->LimitToQueue($self->id); + } + + return($watchers); +} + +# }}} + +# {{{ sub WatchersAsString +=head2 WatchersAsString + +Returns a string of all queue watchers email addresses concatenated with ','s. + +=cut + +sub WatchersAsString { + my $self=shift; + return($self->Watchers->EmailsAsString()); +} + +# }}} + +# {{{ sub AdminCcAsString + +=head2 AdminCcAsString + +Takes nothing. returns a string: All Ticket/Queue AdminCcs. + +=cut + + +sub AdminCcAsString { + my $self=shift; + + return($self->AdminCc->EmailsAsString()); + } + +# }}} + +# {{{ sub CcAsString + +=head2 CcAsString + +B String: All Queue Ccs as a comma delimited set of email addresses. + +=cut + +sub CcAsString { + my $self=shift; + + return ($self->Cc->EmailsAsString()); +} + +# }}} + +# {{{ sub Cc + +=head2 Cc + +Takes nothing. +Returns a watchers object which contains this queue\'s Cc watchers + +=cut + +sub Cc { + my $self = shift; + my $cc = $self->Watchers(); + if ($self->CurrentUserHasRight('SeeQueue')) { + $cc->LimitToCc(); + } + return ($cc); +} + +# A helper function for Cc, so that we can call it from the ACL checks +# without going through acl checks. + +sub _Cc { + my $self = shift; + my $cc = $self->Watchers(); + $cc->LimitToCc(); + return($cc); + +} + +# }}} + +# {{{ sub AdminCc + +=head2 AdminCc + +Takes nothing. +Returns this queue's administrative Ccs as an RT::Watchers object + +=cut + +sub AdminCc { + my $self = shift; + my $admin_cc = $self->Watchers(); + if ($self->CurrentUserHasRight('SeeQueue')) { + $admin_cc->LimitToAdminCc(); + } + return($admin_cc); +} + +#helper function for AdminCc so we can call it without ACLs +sub _AdminCc { + my $self = shift; + my $admin_cc = $self->Watchers(); + $admin_cc->LimitToAdminCc(); + return($admin_cc); +} + +# }}} + +# {{{ IsWatcher, IsCc, IsAdminCc + +# {{{ sub IsWatcher + +# a generic routine to be called by IsRequestor, IsCc and IsAdminCc + +=head2 IsWatcher + +Takes a param hash with the attributes Type and User. User is either a user object or string containing an email address. Returns true if that user or string +is a queue watcher. Returns undef otherwise + +=cut + +sub IsWatcher { + my $self = shift; + + my %args = ( Type => 'Requestor', + Id => undef, + Email => undef, + @_ + ); + #ACL check - can't do it. we need this method for ACL checks + # unless ($self->CurrentUserHasRight('SeeQueue')) { + # return(undef); + # } + + + my %cols = ('Type' => $args{'Type'}, + 'Scope' => 'Queue', + 'Value' => $self->Id + ); + if (defined ($args{'Id'})) { + if (ref($args{'Id'})){ #If it's a ref, assume it's an RT::User object; + #Dangerous but ok for now + $cols{'Owner'} = $args{'Id'}->Id; + } + elsif ($args{'Id'} =~ /^\d+$/) { # if it's an integer, it's an RT::User obj + $cols{'Owner'} = $args{'Id'}; + } + else { + $cols{'Email'} = $args{'Id'}; + } + } + + if (defined $args{'Email'}) { + $cols{'Email'} = $args{'Email'}; + } + + my ($description); + $description = join(":",%cols); + + #If we've cached a positive match... + if (defined $self->{'watchers_cache'}->{"$description"}) { + if ($self->{'watchers_cache'}->{"$description"} == 1) { + return(1); + } + #If we've cached a negative match... + else { + return(undef); + } + } + + require RT::Watcher; + my $watcher = new RT::Watcher($self->CurrentUser); + $watcher->LoadByCols(%cols); + + + if ($watcher->id) { + $self->{'watchers_cache'}->{"$description"} = 1; + return(1); + } + else { + $self->{'watchers_cache'}->{"$description"} = 0; + return(undef); + } + +} + +# }}} + +# {{{ sub IsCc + +=head2 IsCc + +Takes a string. Returns true if the string is a Cc watcher of the current queue + +=item Bugs + +Should also be able to handle an RT::User object + +=cut + + +sub IsCc { + my $self = shift; + my $cc = shift; + + return ($self->IsWatcher( Type => 'Cc', Id => $cc )); + +} + +# }}} + +# {{{ sub IsAdminCc + +=head2 IsAdminCc + +Takes a string. Returns true if the string is an AdminCc watcher of the current queue + +=item Bugs + +Should also be able to handle an RT::User object + +=cut + +sub IsAdminCc { + my $self = shift; + my $admincc = shift; + + return ($self->IsWatcher( Type => 'AdminCc', Id => $admincc )); + +} + +# }}} + +# }}} + +# {{{ sub AddWatcher + +=head2 AddWatcher + +Takes a paramhash of Email, Owner and Type. Type is one of 'Cc' or 'AdminCc', +We need either an Email Address in Email or a userid in Owner + +=cut + +sub AddWatcher { + my $self = shift; + my %args = ( Email => undef, + Type => undef, + Owner => 0, + @_ + ); + + # {{{ Check ACLS + #If the watcher we're trying to add is for the current user + if ( ( ( defined $args{'Email'}) && + ( $args{'Email'} eq $self->CurrentUser->EmailAddress) ) or + ($args{'Owner'} eq $self->CurrentUser->Id)) { + + # If it's an AdminCc and they don't have + # 'WatchAsAdminCc' or 'ModifyQueueWatchers', bail + if ($args{'Type'} eq 'AdminCc') { + unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or + $self->CurrentUserHasRight('WatchAsAdminCc')) { + return(0, 'Permission Denied'); + } + } + + # If it's a Requestor or Cc and they don't have + # 'Watch' or 'ModifyQueueWatchers', bail + elsif ($args{'Type'} eq 'Cc') { + unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or + $self->CurrentUserHasRight('Watch')) { + return(0, 'Permission Denied'); + } + } + else { + $RT::Logger->warn("$self -> AddWatcher hit code". + " it never should. We got passed ". + " a type of ". $args{'Type'}); + return (0,'Error in parameters to $self AddWatcher'); + } + } + # If the watcher isn't the current user + # and the current user doesn't have 'ModifyQueueWatchers' + # bail + else { + unless ($self->CurrentUserHasRight('ModifyQueueWatchers')) { + return (0, "Permission Denied"); + } + } + # }}} + + require RT::Watcher; + my $Watcher = new RT::Watcher ($self->CurrentUser); + return ($Watcher->Create(Scope => 'Queue', + Value => $self->Id, + Email => $args{'Email'}, + Type => $args{'Type'}, + Owner => $args{'Owner'} + )); +} + +# }}} + +# {{{ sub AddCc + +=head2 AddCc + +Add a Cc to this queue. +Takes a paramhash of Email and Owner. +We need either an Email Address in Email or a userid in Owner + +=cut + + +sub AddCc { + my $self = shift; + return ($self->AddWatcher( Type => 'Cc', @_)); +} +# }}} + +# {{{ sub AddAdminCc + +=head2 AddAdminCc + +Add an Administrative Cc to this queue. +Takes a paramhash of Email and Owner. +We need either an Email Address in Email or a userid in Owner + +=cut + +sub AddAdminCc { + my $self = shift; + return ($self->AddWatcher( Type => 'AdminCc', @_)); +} +# }}} + +# {{{ sub DeleteWatcher + +=head2 DeleteWatcher id [type] + +DeleteWatcher takes a single argument which is either an email address +or a watcher id. +If the first argument is an email address, you need to specify the watcher type you're talking +about as the second argument. Valid values are 'Cc' or 'AdminCc'. +It removes that watcher from this Queue\'s list of watchers. + + +=cut + + +sub DeleteWatcher { + my $self = shift; + my $id = shift; + + my $type; + + $type = shift if (@_); + + + require RT::Watcher; + my $Watcher = new RT::Watcher($self->CurrentUser); + + #If it\'s a numeric watcherid + if ($id =~ /^(\d*)$/) { + $Watcher->Load($id); + } + + #Otherwise, we'll assume it's an email address + elsif ($type) { + my ($result, $msg) = + $Watcher->LoadByValue( Email => $id, + Scope => 'Queue', + Value => $self->id, + Type => $type); + return (0,$msg) unless ($result); + } + + else { + return(0,"Can\'t delete a watcher by email address without specifying a type"); + } + + # {{{ Check ACLS + + #If the watcher we're trying to delete is for the current user + if ($Watcher->Email eq $self->CurrentUser->EmailAddress) { + + # If it's an AdminCc and they don't have + # 'WatchAsAdminCc' or 'ModifyQueueWatchers', bail + if ($Watcher->Type eq 'AdminCc') { + unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or + $self->CurrentUserHasRight('WatchAsAdminCc')) { + return(0, 'Permission Denied'); + } + } + + # If it's a Cc and they don't have + # 'Watch' or 'ModifyQueueWatchers', bail + elsif ($Watcher->Type eq 'Cc') { + unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or + $self->CurrentUserHasRight('Watch')) { + return(0, 'Permission Denied'); + } + } + else { + $RT::Logger->warn("$self -> DeleteWatcher hit code". + " it never should. We got passed ". + " a type of ". $args{'Type'}); + return (0,'Error in parameters to $self DeleteWatcher'); + } + } + # If the watcher isn't the current user + # and the current user doesn't have 'ModifyQueueWatchers' + # bail + else { + unless ($self->CurrentUserHasRight('ModifyQueueWatchers')) { + return (0, "Permission Denied"); + } + } + + # }}} + + unless (($Watcher->Scope eq 'Queue') and + ($Watcher->Value == $self->id) ) { + return (0, "Not a watcher for this queue"); + } + + + #Clear out the watchers hash. + $self->{'watchers'} = undef; + + my $retval = $Watcher->Delete(); + + unless ($retval) { + return(0,"Watcher could not be deleted."); + } + + return(1, "Watcher deleted"); +} + +# {{{ sub DeleteCc + +=head2 DeleteCc EMAIL + +Takes an email address. It calls DeleteWatcher with a preset +type of 'Cc' + + +=cut + +sub DeleteCc { + my $self = shift; + my $id = shift; + return ($self->DeleteWatcher ($id, 'Cc')) +} + +# }}} + +# {{{ sub DeleteAdminCc + +=head2 DeleteAdminCc EMAIL + +Takes an email address. It calls DeleteWatcher with a preset +type of 'AdminCc' + + +=cut + +sub DeleteAdminCc { + my $self = shift; + my $id = shift; + return ($self->DeleteWatcher ($id, 'AdminCc')) +} + +# }}} + + +# }}} + +# }}} + +# {{{ Dealing with keyword selects + +# {{{ sub AddKeywordSelect + +=head2 AddKeywordSelect + +Takes a paramhash of Name, Keyword, Depth and Single. Adds a new KeywordSelect for +this queue with those attributes. + +=cut + + +sub AddKeywordSelect { + my $self = shift; + my %args = ( Keyword => undef, + Depth => undef, + Single => undef, + Name => undef, + @_); + + #ACLS get handled in KeywordSelect + my $NewKeywordSelect = new RT::KeywordSelect($self->CurrentUser); + + return ($NewKeywordSelect->Create (Keyword => $args{'Keyword'}, + Depth => $args{'Depth'}, + Name => $args{'Name'}, + Single => $args{'Single'}, + ObjectType => 'Ticket', + ObjectField => 'Queue', + ObjectValue => $self->Id() + ) ); +} + +# }}} + +# {{{ sub KeywordSelect + +=head2 KeywordSelect([NAME]) + +Takes the name of a keyword select for this queue or that's global. +Returns the relevant KeywordSelect object. Prefers a keywordselect that's +specific to this queue over a global one. If it can't find the proper +Keword select or the user doesn't have permission, returns an empty +KeywordSelect object + +=cut + +sub KeywordSelect { + my $self = shift; + my $name = shift; + + require RT::KeywordSelect; + + my $select = RT::KeywordSelect->new($self->CurrentUser); + if ($self->CurrentUserHasRight('SeeQueue')) { + $select->LoadByName( Name => $name, Queue => $self->Id); + } + return ($select); +} + + +# }}} + +# {{{ sub KeywordSelects + +=head2 KeywordSelects + +Returns an B object containing the collection of +B objects which apply to this queue. (Both queue specific keyword selects +and global keyword selects. + +=cut + +sub KeywordSelects { + my $self = shift; + + + use RT::KeywordSelects; + my $KeywordSelects = new RT::KeywordSelects($self->CurrentUser); + + if ($self->CurrentUserHasRight('SeeQueue')) { + $KeywordSelects->LimitToQueue($self->id); + $KeywordSelects->IncludeGlobals(); + } + return ($KeywordSelects); +} +# }}} + +# }}} + +# {{{ ACCESS CONTROL + +# {{{ sub ACL + +=head2 ACL + +#Returns an RT::ACL object of ACEs everyone who has anything to do with this queue. + +=cut + +sub ACL { + my $self = shift; + + use RT::ACL; + my $acl = new RT::ACL($self->CurrentUser); + + if ($self->CurrentUserHasRight('ShowACL')) { + $acl->LimitToQueue($self->Id); + } + + return ($acl); +} + +# }}} + +# {{{ sub _Set +sub _Set { + my $self = shift; + + unless ($self->CurrentUserHasRight('AdminQueue')) { + return(0, 'Permission Denied'); + } + return ($self->SUPER::_Set(@_)); +} +# }}} + +# {{{ sub _Value + +sub _Value { + my $self = shift; + + unless ($self->CurrentUserHasRight('SeeQueue')) { + return (undef); + } + + return ($self->__Value(@_)); +} + +# }}} + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight + +Takes one argument. A textual string with the name of the right we want to check. +Returns true if the current user has that right for this queue. +Returns undef otherwise. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + + return ($self->HasRight( Principal=> $self->CurrentUser, + Right => "$right")); + +} + +# }}} + +# {{{ sub HasRight + +=head2 HasRight + +Takes a param hash with the fields 'Right' and 'Principal'. +Principal defaults to the current user. +Returns true if the principal has that right for this queue. +Returns undef otherwise. + +=cut + +# TAKES: Right and optional "Principal" which defaults to the current user +sub HasRight { + my $self = shift; + my %args = ( Right => undef, + Principal => $self->CurrentUser, + @_); + unless(defined $args{'Principal'}) { + $RT::Logger->debug("Principal undefined in Queue::HasRight"); + + } + return($args{'Principal'}->HasQueueRight(QueueObj => $self, + Right => $args{'Right'})); +} +# }}} + +# }}} + +1; diff --git a/rt/lib/RT/Queues.pm b/rt/lib/RT/Queues.pm new file mode 100755 index 000000000..ab58d8d6d --- /dev/null +++ b/rt/lib/RT/Queues.pm @@ -0,0 +1,123 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Queues.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Queues - a collection of RT::Queue objects + +=head1 SYNOPSIS + + use RT::Queues; + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Queues); + +=end testing + +=cut + +package RT::Queues; +use RT::EasySearch; +@ISA= qw(RT::EasySearch); + + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Queues"; + $self->{'primary_key'} = "id"; + + # By default, order by name + $self->OrderBy( ALIAS => 'main', + FIELD => 'Name', + ORDER => 'ASC'); + + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _DoSearch + +=head2 _DoSearch + + A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless +we're explicitly trying to see them. + +=cut + +sub _DoSearch { + my $self = shift; + + #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. + unless($self->{'find_disabled_rows'}) { + $self->LimitToEnabled(); + } + + return($self->SUPER::_DoSearch(@_)); + +} + +# }}} + + +# {{{ sub Limit +sub Limit { + my $self = shift; + my %args = ( ENTRYAGGREGATOR => 'AND', + @_); + $self->SUPER::Limit(%args); +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + my $item; + + use RT::Queue; + $item = new RT::Queue($self->CurrentUser); + return($item); +} +# }}} + +# {{{ sub Next + +=head2 Next + +Returns the next queue that this user can see. + +=cut + +sub Next { + my $self = shift; + + + my $Queue = $self->SUPER::Next(); + if ((defined($Queue)) and (ref($Queue))) { + + if ($Queue->CurrentUserHasRight('SeeQueue')) { + return($Queue); + } + + #If the user doesn't have the right to show this queue + else { + return($self->Next()); + } + } + #if there never was any queue + else { + return(undef); + } + +} +# }}} + +1; + diff --git a/rt/lib/RT/Record.pm b/rt/lib/RT/Record.pm new file mode 100755 index 000000000..5340f7de4 --- /dev/null +++ b/rt/lib/RT/Record.pm @@ -0,0 +1,345 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Record.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Record - Base class for RT record objects + +=head1 SYNOPSIS + + +=head1 DESCRIPTION + + +=begin testing + +ok (require RT::Record); + +=end testing + +=head1 METHODS + +=cut + + +package RT::Record; +use DBIx::SearchBuilder::Record::Cachable; +use RT::Date; +use RT::User; + +@ISA= qw(DBIx::SearchBuilder::Record::Cachable); + +# {{{ sub _Init + +sub _Init { + my $self = shift; + $self->_MyCurrentUser(@_); + +} + +# }}} + +# {{{ _PrimaryKeys + +=head2 _PrimaryKeys + +The primary keys for RT classes is 'id' + +=cut + +sub _PrimaryKeys { + my $self = shift; + return(['id']); +} + +# }}} + +# {{{ sub _MyCurrentUser + +sub _MyCurrentUser { + my $self = shift; + + $self->CurrentUser(@_); + if(!defined($self->CurrentUser)) { + use Carp; + Carp::cluck(); + $RT::Logger->err("$self was created without a CurrentUser\n"); + return(0); + } +} + +# }}} + +# {{{ sub _Handle +sub _Handle { + my $self = shift; + return($RT::Handle); +} +# }}} + +# {{{ sub Create + +sub Create { + my $self = shift; + my $now = new RT::Date($self->CurrentUser); + $now->Set(Format=> 'unix', Value => time); + push @_, 'Created', $now->ISO() + if ($self->_Accessible('Created', 'auto')); + + + push @_, 'Creator', $self->{'user'}->id + if $self->_Accessible('Creator', 'auto'); + + push @_, 'LastUpdated', $now->ISO() + if ($self->_Accessible('LastUpdated', 'auto')); + + push @_, 'LastUpdatedBy', $self->{'user'}->id + if $self->_Accessible('LastUpdatedBy', 'auto'); + + + + my $id = $self->SUPER::Create(@_); + + if ($id) { + $self->Load($id); + } + + return($id); + +} + +# }}} + + +# {{{ sub LoadByCols + +=head2 LoadByCols + +Override DBIx::SearchBuilder::LoadByCols to do case-insensitive loads if the +DB is case sensitive + +=cut + +sub LoadByCols { + my $self = shift; + my %hash = (@_); + + # If this database is case sensitive we need to uncase objects for + # explicit loading + if ($self->_Handle->CaseSensitive) { + my %newhash; + foreach my $key (keys %hash) { + # If we've been passed an empty value, we can't do the lookup. + # We don't need to explicitly downcase integers or an id. + if ($key =~ '^id$' || $hash{$key} =~/^\d+$/ || !defined ($hash{$key}) ) { + $newhash{$key} = $hash{$key}; + } + else { + $newhash{"lower(".$key.")"} = lc($hash{$key}); + } + } + $self->SUPER::LoadByCols(%newhash); + } + else { + $self->SUPER::LoadByCols(%hash); + } +} + +# }}} + + +# {{{ Datehandling + +# There is room for optimizations in most of those subs: + +# {{{ LastUpdatedObj + +sub LastUpdatedObj { + my $self=shift; + my $obj = new RT::Date($self->CurrentUser); + + $obj->Set(Format => 'sql', Value => $self->LastUpdated); + return $obj; +} + +# }}} + +# {{{ CreatedObj + +sub CreatedObj { + my $self=shift; + my $obj = new RT::Date($self->CurrentUser); + + $obj->Set(Format => 'sql', Value => $self->Created); + + + return $obj; +} + +# }}} + +# {{{ AgeAsString +# +# TODO: This should be deprecated +# +sub AgeAsString { + my $self=shift; + return($self->CreatedObj->AgeAsString()); +} +# }}} + +# {{{ LastUpdatedAsString + +# TODO this should be deprecated + +sub LastUpdatedAsString { + my $self=shift; + if ($self->LastUpdated) { + return ($self->LastUpdatedObj->AsString()); + + } else { + return "never"; + } +} + +# }}} + +# {{{ CreatedAsString +# +# TODO This should be deprecated +# +sub CreatedAsString { + my $self = shift; + return ($self->CreatedObj->AsString()); +} +# }}} + +# {{{ LongSinceUpdateAsString +# +# TODO This should be deprecated +# +sub LongSinceUpdateAsString { + my $self=shift; + if ($self->LastUpdated) { + + return ($self->LastUpdatedObj->AgeAsString()); + + } else { + return "never"; + } +} +# }}} + +# }}} Datehandling + + +# {{{ sub _Set +sub _Set { + my $self = shift; + + my %args = ( Field => undef, + Value => undef, + IsSQL => undef, + @_ ); + + + #if the user is trying to modify the record + if ((!defined ($args{'Field'})) || (!defined ($args{'Value'}))) { + $args{'Value'} = 0; + } + + $self->_SetLastUpdated(); + $self->SUPER::_Set(Field => $args{'Field'}, + Value => $args{'Value'}, + IsSQL => $args{'IsSQL'}); + + +} +# }}} + +# {{{ sub _SetLastUpdated + +=head2 _SetLastUpdated + +This routine updates the LastUpdated and LastUpdatedBy columns of the row in question +It takes no options. Arguably, this is a bug + +=cut + +sub _SetLastUpdated { + my $self = shift; + use RT::Date; + my $now = new RT::Date($self->CurrentUser); + $now->SetToNow(); + + if ($self->_Accessible('LastUpdated','auto')) { + my ($msg, $val) = $self->__Set( Field => 'LastUpdated', + Value => $now->ISO); + } + if ($self->_Accessible('LastUpdatedBy','auto')) { + my ($msg, $val) = $self->__Set( Field => 'LastUpdatedBy', + Value => $self->CurrentUser->id); + } +} + +# }}} + +# {{{ sub CreatorObj + +=head2 CreatorObj + +Returns an RT::User object with the RT account of the creator of this row + +=cut + +sub CreatorObj { + my $self = shift; + unless (exists $self->{'CreatorObj'}) { + + $self->{'CreatorObj'} = RT::User->new($self->CurrentUser); + $self->{'CreatorObj'}->Load($self->Creator); + } + return($self->{'CreatorObj'}); +} +# }}} + +# {{{ sub LastUpdatedByObj + +=head2 LastUpdatedByObj + + Returns an RT::User object of the last user to touch this object + +=cut + +sub LastUpdatedByObj { + my $self=shift; + unless (exists $self->{LastUpdatedByObj}) { + $self->{'LastUpdatedByObj'}=RT::User->new($self->CurrentUser); + $self->{'LastUpdatedByObj'}->Load($self->LastUpdatedBy); + } + return $self->{'LastUpdatedByObj'}; +} + +# }}} + +# {{{ sub CurrentUser + +=head2 CurrentUser + +If called with an argument, sets the current user to that user object. +This will affect ACL decisions, etc. +Returns the current user + +=cut + +sub CurrentUser { + my $self = shift; + + if (@_) { + $self->{'user'} = shift; + } + return ($self->{'user'}); +} +# }}} + + +1; diff --git a/rt/lib/RT/Scrip.pm b/rt/lib/RT/Scrip.pm new file mode 100755 index 000000000..aef011ca3 --- /dev/null +++ b/rt/lib/RT/Scrip.pm @@ -0,0 +1,372 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Scrip.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Scrip - an RT Scrip object + +=head1 SYNOPSIS + + use RT::Scrip; + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Scrip); + +=end testing + +=cut + +package RT::Scrip; +use RT::Record; +@ISA= qw(RT::Record); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Scrips"; + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _Accessible +sub _Accessible { + my $self = shift; + my %Cols = ( ScripAction => 'read/write', + ScripCondition => 'read/write', + Stage => 'read/write', + Queue => 'read/write', + Template => 'read/write', + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} +# }}} + +# {{{ sub Create + +=head2 Create + +Creates a new entry in the Scrips table. Takes a paramhash with the attributes: + + Queue A queue id or 0 for a global scrip + Template A template ID or name. + Behavior is undefined if you have multiple items with + the same name + ScripAction A ScripAction id or name + Behavior is undefined if you have multiple items with + the same name + ScripCondition A ScripCondition id or name + Behavior is undefined if you have multiple items with + the same name + +Returns (retval, msg); +retval is 0 for failure or scrip id. msg is a textual description of what happened. + +=cut + +sub Create { + my $self = shift; + my %args = ( Queue => undef, + Template => undef, + ScripAction => undef, + ScripCondition => undef, + Stage => 'TransactionCreate', + @_ + ); + + + if ($args{'Queue'} == 0 ) { + unless ($self->CurrentUser->HasSystemRight('ModifyScrips')) { + return (0, 'Permission Denied'); + } + } + else { + my $QueueObj = new RT::Queue($self->CurrentUser); + $QueueObj->Load($args{'Queue'}); + unless ($QueueObj->id()) { + return (0,'Invalid queue'); + } + unless ($QueueObj->CurrentUserHasRight('ModifyScrips')) { + return (0, 'Permssion Denied'); + } + } + + #TODO +++ validate input + + require RT::ScripAction; + my $action = new RT::ScripAction($self->CurrentUser); + $action->Load($args{'ScripAction'}); + return (0, "Action ".$args{'ScripAction'}." not found") unless $action->Id; + + require RT::Template; + my $template = new RT::Template($self->CurrentUser); + $template->Load($args{'Template'}); + return (0, 'Template not found') unless $template->Id; + + require RT::ScripCondition; + my $condition = new RT::ScripCondition($self->CurrentUser); + $condition->Load($args{'ScripCondition'}); + + unless ($condition->Id) { + return (0, 'Condition not found'); + } + + my $id = $self->SUPER::Create(Queue => $args{'Queue'}, + Template => $template->Id, + ScripCondition => $condition->id, + Stage => $args{'Stage'}, + ScripAction => $action->Id + ); + return ($id, 'Scrip Created'); +} + +# }}} + +# {{{ sub Delete + +=head2 Delete + +Delete this object + +=cut + +sub Delete { + my $self = shift; + + unless ($self->CurrentUserHasRight('ModifyScrips')) { + return (0, 'Permission Denied'); + } + + return ($self->SUPER::Delete(@_)); +} +# }}} + +# {{{ sub QueueObj + +=head2 QueueObj + +Retuns an RT::Queue object with this Scrip\'s queue + +=cut + +sub QueueObj { + my $self = shift; + + if (!$self->{'QueueObj'}) { + require RT::Queue; + $self->{'QueueObj'} = RT::Queue->new($self->CurrentUser); + $self->{'QueueObj'}->Load($self->Queue); + } + return ($self->{'QueueObj'}); +} + +# }}} + +# {{{ sub ActionObj + + +=head2 ActionObj + +Retuns an RT::Action object with this Scrip\'s Action + +=cut + +sub ActionObj { + my $self = shift; + + unless (defined $self->{'ScripActionObj'}) { + require RT::ScripAction; + + $self->{'ScripActionObj'} = RT::ScripAction->new($self->CurrentUser); + #TODO: why are we loading Actions with templates like this. + # two seperate methods might make more sense + $self->{'ScripActionObj'}->Load($self->ScripAction, $self->Template); + } + return ($self->{'ScripActionObj'}); +} + +# }}} + + +# {{{ sub TemplateObj +=head2 TemplateObj + +Retuns an RT::Template object with this Scrip\'s Template + +=cut + +sub TemplateObj { + my $self = shift; + + unless (defined $self->{'TemplateObj'}) { + require RT::Template; + $self->{'TemplateObj'} = RT::Template->new($self->CurrentUser); + $self->{'TemplateObj'}->Load($self->Template); + } + return ($self->{'TemplateObj'}); +} + +# }}} + +# {{{ sub Prepare +=head2 Prepare + +Calls the action object's prepare method + +=cut + +sub Prepare { + my $self = shift; + $self->ActionObj->Prepare(@_); +} + +# }}} + +# {{{ sub Commit +=head2 Commit + +Calls the action object's commit method + +=cut + +sub Commit { + my $self = shift; + $self->ActionObj->Commit(@_); +} + +# }}} + +# {{{ sub ConditionObj + +=head2 ConditionObj + +Retuns an RT::ScripCondition object with this Scrip's IsApplicable + +=cut + +sub ConditionObj { + my $self = shift; + + unless (defined $self->{'ScripConditionObj'}) { + require RT::ScripCondition; + $self->{'ScripConditionObj'} = RT::ScripCondition->new($self->CurrentUser); + $self->{'ScripConditionObj'}->Load($self->ScripCondition); + } + return ($self->{'ScripConditionObj'}); +} + +# }}} + +# {{{ sub IsApplicable + +=head2 IsApplicable + +Calls the Condition object\'s IsApplicable method + +=cut + +sub IsApplicable { + my $self = shift; + return ($self->ConditionObj->IsApplicable(@_)); +} + +# }}} + +# {{{ sub DESTROY +sub DESTROY { + my $self = shift; + $self->{'ActionObj'} = undef; +} +# }}} + +# {{{ ACL related methods + +# {{{ sub _Set + +# does an acl check and then passes off the call +sub _Set { + my $self = shift; + + unless ($self->CurrentUserHasRight('ModifyScrips')) { + $RT::Logger->debug("CurrentUser can't modify Scrips for ".$self->Queue."\n"); + return (0, 'Permission Denied'); + } + return $self->__Set(@_); +} + +# }}} + +# {{{ sub _Value +# does an acl check and then passes off the call +sub _Value { + my $self = shift; + + unless ($self->CurrentUserHasRight('ShowScrips')) { + $RT::Logger->debug("CurrentUser can't modify Scrips for ".$self->__Value('Queue')."\n"); + return (undef); + } + + return $self->__Value(@_); +} +# }}} + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight + +Helper menthod for HasRight. Presets Principal to CurrentUser then +calls HasRight. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + return ($self->HasRight( Principal => $self->CurrentUser->UserObj, + Right => $right )); + +} + +# }}} + +# {{{ sub HasRight + +=head2 HasRight + +Takes a param-hash consisting of "Right" and "Principal" Principal is +an RT::User object or an RT::CurrentUser object. "Right" is a textual +Right string that applies to Scrips. + +=cut + +sub HasRight { + my $self = shift; + my %args = ( Right => undef, + Principal => undef, + @_ ); + + if ((defined $self->SUPER::_Value('Queue')) and ($self->SUPER::_Value('Queue') != 0)) { + return ( $args{'Principal'}->HasQueueRight( + Right => $args{'Right'}, + Queue => $self->SUPER::_Value('Queue'), + Principal => $args{'Principal'} + ) + ); + + } + else { + return( $args{'Principal'}->HasSystemRight( $args{'Right'}) ); + } +} +# }}} + +# }}} + +1; + + diff --git a/rt/lib/RT/ScripAction.pm b/rt/lib/RT/ScripAction.pm new file mode 100755 index 000000000..471ad9191 --- /dev/null +++ b/rt/lib/RT/ScripAction.pm @@ -0,0 +1,200 @@ +# Copyright 1999-2000 Jesse Vincent +# Released under the terms of the GNU Public License +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripAction.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::ScripAction - RT Action object + +=head1 SYNOPSIS + + use RT::ScripAction; + + +=head1 DESCRIPTION + +This module should never be called directly by client code. it's an internal module which +should only be accessed through exported APIs in other modules. + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::ScripAction); + +=end testing + +=head1 METHODS + +=cut + +package RT::ScripAction; +use RT::Record; +@ISA= qw(RT::Record); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "ScripActions"; + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _Accessible +sub _Accessible { + my $self = shift; + my %Cols = ( Name => 'read', + Description => 'read', + ExecModule => 'read', + Argument => 'read', + Creator => 'read/auto', + Created => 'read/auto', + LastUpdatedBy => 'read/auto', + LastUpdated => 'read/auto' + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} +# }}} + +# {{{ sub Create +=head2 Create + + Takes a hash. Creates a new Action entry. + should be better documented. +=cut + +sub Create { + my $self = shift; + #TODO check these args and do smart things. + return($self->SUPER::Create(@_)); +} +# }}} + +# {{{ sub Delete +sub Delete { + my $self = shift; + + return (0, "ScripAction->Delete not implemented"); +} +# }}} + +# {{{ sub Load +sub Load { + my $self = shift; + my $identifier = shift; + + if (!$identifier) { + return (0, 'Input error'); + } + + if ($identifier !~ /\D/) { + $self->SUPER::LoadById($identifier); + } + else { + $self->LoadByCol('Name', $identifier); + + } + + if (@_) { + # Set the template Id to the passed in template + my $template = shift; + + $self->{'Template'} = $template; + } + return ($self->Id, 'ScripAction loaded'); +} +# }}} + +# {{{ sub LoadAction + +=head2 LoadAction HASH + + Takes a hash consisting of TicketObj and TransactionObj. Loads an RT::Action:: module. + +=cut + +sub LoadAction { + my $self = shift; + my %args = ( TransactionObj => undef, + TicketObj => undef, + @_ ); + + #TODO: Put this in an eval + $self->ExecModule =~ /^(\w+)$/; + my $module = $1; + my $type = "RT::Action::". $module; + + $RT::Logger->debug("now requiring $type\n"); + eval "require $type" || die "Require of $type failed.\n$@\n"; + + $self->{'Action'} = $type->new ( 'ScripActionObj' => $self, + 'TicketObj' => $args{'TicketObj'}, + 'TransactionObj' => $args{'TransactionObj'}, + 'TemplateObj' => $self->TemplateObj, + 'Argument' => $self->Argument, + ); +} +# }}} + +# {{{ sub TemplateObj + +=head2 TemplateObj + +Return this action\'s template object + +=cut + +sub TemplateObj { + my $self = shift; + return undef unless $self->{Template}; + if (!$self->{'TemplateObj'}) { + require RT::Template; + $self->{'TemplateObj'} = RT::Template->new($self->CurrentUser); + $self->{'TemplateObj'}->LoadById($self->{'Template'}); + + } + + return ($self->{'TemplateObj'}); +} +# }}} + +# The following methods call the action object + +# {{{ sub Prepare + +sub Prepare { + my $self = shift; + return ($self->{'Action'}->Prepare()); + +} +# }}} + +# {{{ sub Commit +sub Commit { + my $self = shift; + return($self->{'Action'}->Commit()); + + +} +# }}} + +# {{{ sub Describe +sub Describe { + my $self = shift; + return ($self->{'Action'}->Describe()); + +} +# }}} + +# {{{ sub DESTROY +sub DESTROY { + my $self=shift; + $self->{'Action'} = undef; + $self->{'TemplateObj'} = undef; +} +# }}} + + +1; + + diff --git a/rt/lib/RT/ScripActions.pm b/rt/lib/RT/ScripActions.pm new file mode 100755 index 000000000..ec6141559 --- /dev/null +++ b/rt/lib/RT/ScripActions.pm @@ -0,0 +1,70 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripActions.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::ScripActions - Collection of Action objects + +=head1 SYNOPSIS + + use RT::ScripActions; + + +=head1 DESCRIPTION + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::ScripActions); + +=end testing + +=head1 METHODS + +=cut + +package RT::ScripActions; +use RT::EasySearch; +use RT::ScripAction; + +@ISA= qw(RT::EasySearch); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "ScripActions"; + $self->{'primary_key'} = "id"; + return ( $self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub LimitToType +sub LimitToType { + my $self = shift; + my $type = shift; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => "$type") + if defined $type; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => "Correspond") + if $type eq "Create"; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => 'any'); + +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + return(RT::ScripAction->new($self->CurrentUser)); + +} +# }}} + + +1; + diff --git a/rt/lib/RT/ScripCondition.pm b/rt/lib/RT/ScripCondition.pm new file mode 100755 index 000000000..253502bd4 --- /dev/null +++ b/rt/lib/RT/ScripCondition.pm @@ -0,0 +1,192 @@ +# Copyright 1999-2000 Jesse Vincent +# Released under the terms of the GNU Public License +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripCondition.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::ScripCondition - RT scrip conditional + +=head1 SYNOPSIS + + use RT::ScripCondition; + + +=head1 DESCRIPTION + +This module should never be called directly by client code. it's an internal module which +should only be accessed through exported APIs in other modules. + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::ScripCondition); + +=end testing + +=head1 METHODS + +=cut + +package RT::ScripCondition; +use RT::Record; +@ISA= qw(RT::Record); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "ScripConditions"; + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _Accessible +sub _Accessible { + my $self = shift; + my %Cols = ( Name => 'read', + Description => 'read', + ApplicableTransTypes => 'read', + ExecModule => 'read', + Argument => 'read', + Creator => 'read/auto', + Created => 'read/auto', + LastUpdatedBy => 'read/auto', + LastUpdated => 'read/auto' + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} +# }}} + +# {{{ sub Create + +=head2 Create + + Takes a hash. Creates a new Condition entry. + should be better documented. + +=cut + +sub Create { + my $self = shift; + return($self->SUPER::Create(@_)); +} +# }}} + +# {{{ sub Delete + +=head2 Delete + +No API available for deleting things just yet. + +=cut + +sub Delete { + my $self = shift; + return(0,'Unimplemented'); +} +# }}} + +# {{{ sub Load + +=head2 Load IDENTIFIER + +Loads a condition takes a name or ScripCondition id. + +=cut + +sub Load { + my $self = shift; + my $identifier = shift; + + unless (defined $identifier) { + return (undef); + } + + if ($identifier !~ /\D/) { + return ($self->SUPER::LoadById($identifier)); + } + else { + return ($self->LoadByCol('Name', $identifier)); + } +} +# }}} + +# {{{ sub LoadCondition + +=head2 LoadCondition HASH + +takes a hash which has the following elements: TransactionObj and TicketObj. +Loads the Condition module in question. + +=cut + + +sub LoadCondition { + my $self = shift; + my %args = ( TransactionObj => undef, + TicketObj => undef, + @_ ); + + #TODO: Put this in an eval + $self->ExecModule =~ /^(\w+)$/; + my $module = $1; + my $type = "RT::Condition::". $module; + + $RT::Logger->debug("now requiring $type\n"); + eval "require $type" || die "Require of $type failed.\n$@\n"; + + $self->{'Condition'} = $type->new ( 'ScripConditionObj' => $self, + 'TicketObj' => $args{'TicketObj'}, + 'TransactionObj' => $args{'TransactionObj'}, + 'Argument' => $self->Argument, + 'ApplicableTransTypes' => $self->ApplicableTransTypes, + ); +} +# }}} + +# {{{ The following methods call the Condition object + + +# {{{ sub Describe + +=head2 Describe + +Helper method to call the condition module\'s Describe method. + +=cut + +sub Describe { + my $self = shift; + return ($self->{'Condition'}->Describe()); + +} +# }}} + +# {{{ sub IsApplicable + +=head2 IsApplicable + +Helper method to call the condition module\'s IsApplicable method. + +=cut + +sub IsApplicable { + my $self = shift; + return ($self->{'Condition'}->IsApplicable()); + +} +# }}} + +# }}} + +# {{{ sub DESTROY +sub DESTROY { + my $self=shift; + $self->{'Condition'} = undef; +} +# }}} + + +1; + + diff --git a/rt/lib/RT/ScripConditions.pm b/rt/lib/RT/ScripConditions.pm new file mode 100755 index 000000000..236e6718d --- /dev/null +++ b/rt/lib/RT/ScripConditions.pm @@ -0,0 +1,69 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripConditions.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::ScripConditions - Collection of Action objects + +=head1 SYNOPSIS + + use RT::ScripConditions; + + +=head1 DESCRIPTION + + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::ScripConditions); + +=end testing + +=head1 METHODS + +=cut + +package RT::ScripConditions; +use RT::EasySearch; +use RT::ScripCondition; +@ISA= qw(RT::EasySearch); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "ScripConditions"; + $self->{'primary_key'} = "id"; + return ( $self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub LimitToType +sub LimitToType { + my $self = shift; + my $type = shift; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => "$type") + if defined $type; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => "Correspond") + if $type eq "Create"; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => 'any'); + +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + return(RT::ScripCondition->new($self->CurrentUser)); +} +# }}} + + +1; + diff --git a/rt/lib/RT/Scrips.pm b/rt/lib/RT/Scrips.pm new file mode 100755 index 000000000..90be847d8 --- /dev/null +++ b/rt/lib/RT/Scrips.pm @@ -0,0 +1,127 @@ +# Copyright 1999-2001 Jesse Vincent +# Released under the terms of the GNU Public License +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Scrips.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Scrips - a collection of RT Scrip objects + +=head1 SYNOPSIS + + use RT::Scrips; + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Scrips); + +=end testing + +=cut + +package RT::Scrips; +use RT::EasySearch; +use RT::Scrip; +@ISA= qw(RT::EasySearch); + + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Scrips"; + $self->{'primary_key'} = "id"; + return ( $self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub LimitToQueue + +=head2 LimitToQueue + +Takes a queue id (numerical) as its only argument. Makes sure that +Scopes it pulls out apply to this queue (or another that you've selected with +another call to this method + +=cut + +sub LimitToQueue { + my $self = shift; + my $queue = shift; + + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Queue', + VALUE => "$queue") + if defined $queue; + +} +# }}} + +# {{{ sub LimitToGlobal + +=head2 LimitToGlobal + +Makes sure that +Scopes it pulls out apply to all queues (or another that you've selected with +another call to this method or LimitToQueue + +=cut + + +sub LimitToGlobal { + my $self = shift; + + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Queue', + VALUE => 0); + +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + + return(new RT::Scrip($self->CurrentUser)); +} +# }}} + +# {{{ sub Next + +=head2 Next + +Returns the next scrip that this user can see. + +=cut + +sub Next { + my $self = shift; + + + my $Scrip = $self->SUPER::Next(); + if ((defined($Scrip)) and (ref($Scrip))) { + + if ($Scrip->CurrentUserHasRight('ShowScrips')) { + return($Scrip); + } + + #If the user doesn't have the right to show this scrip + else { + return($self->Next()); + } + } + #if there never was any scrip + else { + return(undef); + } + +} +# }}} + +1; + diff --git a/rt/lib/RT/Template.pm b/rt/lib/RT/Template.pm new file mode 100755 index 000000000..3ef96c7df --- /dev/null +++ b/rt/lib/RT/Template.pm @@ -0,0 +1,395 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Template.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# Copyright 1996-2002 Jesse Vincent +# Portions Copyright 2000 Tobias Brox +# Released under the terms of the GNU General Public License + +=head1 NAME + + RT::Template - RT's template object + +=head1 SYNOPSIS + + use RT::Template; + + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok(require RT::TestHarness); +ok(require RT::Template); + +=end testing + +=cut + +package RT::Template; +use RT::Record; +use MIME::Entity; +use MIME::Parser; + +@ISA = qw(RT::Record); + +# {{{ sub _Init + +sub _Init { + my $self = shift; + $self->{'table'} = "Templates"; + return ( $self->SUPER::_Init(@_) ); +} + +# }}} + +# {{{ sub _Accessible + +sub _Accessible { + my $self = shift; + my %Cols = ( + id => 'read', + Name => 'read/write', + Description => 'read/write', + Type => 'read/write', #Type is one of Action or Message + Content => 'read/write', + Queue => 'read/write', + Creator => 'read/auto', + Created => 'read/auto', + LastUpdatedBy => 'read/auto', + LastUpdated => 'read/auto' + ); + return $self->SUPER::_Accessible( @_, %Cols ); +} + +# }}} + +# {{{ sub _Set + +sub _Set { + my $self = shift; + + # use super::value or we get acl blocked + if ( ( defined $self->SUPER::_Value('Queue') ) + && ( $self->SUPER::_Value('Queue') == 0 ) ) + { + unless ( $self->CurrentUser->HasSystemRight('ModifyTemplate') ) { + return ( 0, 'Permission Denied' ); + } + } + else { + + unless ( $self->CurrentUserHasQueueRight('ModifyTemplate') ) { + return ( 0, 'Permission Denied' ); + } + } + return ( $self->SUPER::_Set(@_) ); + +} + +# }}} + +# {{{ sub _Value + +=head2 _Value + +Takes the name of a table column. +Returns its value as a string, if the user passes an ACL check + +=cut + +sub _Value { + + my $self = shift; + my $field = shift; + + #If the current user doesn't have ACLs, don't let em at it. + #use super::value or we get acl blocked + if ( ( !defined $self->__Value('Queue') ) + || ( $self->__Value('Queue') == 0 ) ) + { + unless ( $self->CurrentUser->HasSystemRight('ShowTemplate') ) { + return (undef); + } + } + else { + unless ( $self->CurrentUserHasQueueRight('ShowTemplate') ) { + return (undef); + } + } + return ( $self->__Value($field) ); + +} + +# }}} + +# {{{ sub Load + +=head2 Load + +Load a template, either by number or by name + +=cut + +sub Load { + my $self = shift; + my $identifier = shift; + + if ( !$identifier ) { + return (undef); + } + + if ( $identifier !~ /\D/ ) { + $self->SUPER::LoadById($identifier); + } + else { + $self->LoadByCol( 'Name', $identifier ); + + } +} + +# }}} + +# {{{ sub LoadGlobalTemplate + +=head2 LoadGlobalTemplate NAME + +Load the global tempalte with the name NAME + +=cut + +sub LoadGlobalTemplate { + my $self = shift; + my $id = shift; + + return ( $self->LoadQueueTemplate( Queue => 0, Name => $id ) ); +} + +# }}} + +# {{{ sub LoadQueueTemplate + +=head2 LoadQueueTemplate (Queue => QUEUEID, Name => NAME) + +Loads the Queue template named NAME for Queue QUEUE. + +=cut + +sub LoadQueueTemplate { + my $self = shift; + my %args = ( + Queue => undef, + Name => undef + ); + + return ( $self->LoadByCols( Name => $args{'Name'}, Queue => {'Queue'} ) ); + +} + +# }}} + +# {{{ sub Create + +=head2 Create + +Takes a paramhash of Content, Queue, Name and Description. +Name should be a unique string identifying this Template. +Description and Content should be the template's title and content. +Queue should be 0 for a global template and the queue # for a queue-specific +template. + +Returns the Template's id # if the create was successful. Returns undef for +unknown database failure. + + +=cut + +sub Create { + my $self = shift; + my %args = ( + Content => undef, + Queue => 0, + Description => '[no description]', + Type => 'Action', #By default, template are 'Action' templates + Name => undef, + @_ + ); + + if ( $args{'Queue'} == 0 ) { + unless ( $self->CurrentUser->HasSystemRight('ModifyTemplate') ) { + return (undef); + } + } + else { + my $QueueObj = new RT::Queue( $self->CurrentUser ); + $QueueObj->Load( $args{'Queue'} ) || return ( 0, 'Invalid queue' ); + + unless ( $QueueObj->CurrentUserHasRight('ModifyTemplate') ) { + return (undef); + } + } + + my $result = $self->SUPER::Create( + Content => $args{'Content'}, + Queue => $args{'Queue'}, + , + Description => $args{'Description'}, + Name => $args{'Name'} + ); + + return ($result); + +} + +# }}} + +# {{{ sub Delete + +=head2 Delete + +Delete this template. + +=cut + +sub Delete { + my $self = shift; + + unless ( $self->CurrentUserHasRight('ModifyTemplate') ) { + return ( 0, 'Permission Denied' ); + } + + return ( $self->SUPER::Delete(@_) ); +} + +# }}} + +# {{{ sub MIMEObj +sub MIMEObj { + my $self = shift; + return ( $self->{'MIMEObj'} ); +} + +# }}} + +# {{{ sub Parse + +=item Parse + + This routine performs Text::Template parsing on thte template and then imports the + results into a MIME::Entity so we can really use it + It returns a tuple of (val, message) + If val is 0, the message contains an error message + +=cut + +sub Parse { + my $self = shift; + + #We're passing in whatever we were passed. it's destined for _ParseContent + my $content = $self->_ParseContent(@_); + + #Lets build our mime Entity + + my $parser = MIME::Parser->new(); + + # Do work on the parsed template in memory, rather than on disk + $parser->output_to_core(1); + + ### Should we forgive normally-fatal errors? + $parser->ignore_errors(1); + $self->{'MIMEObj'} = eval { $parser->parse_data($content) }; + $error = ( $@ || $parser->last_error ); + + if ($error) { + $RT::Logger->error("$error"); + return ( 0, $error ); + } + + # Unfold all headers + $self->{'MIMEObj'}->head->unfold(); + + return ( 1, "Template parsed" ); + + +} + +# }}} + +# {{{ sub _ParseContent + +# Perform Template substitutions on the template + +sub _ParseContent { + my $self = shift; + my %args = ( + Argument => undef, + TicketObj => undef, + TransactionObj => undef, + @_ + ); + + # Might be subject to change + use Text::Template; + + $T::Ticket = $args{'TicketObj'}; + $T::Transaction = $args{'TransactionObj'}; + $T::Argument = $args{'Argument'}; + $T::rtname = $RT::rtname; + + # We need to untaint the content of the template, since we'll be working + # with it + my $content = $self->Content(); + $content =~ s/^(.*)$/$1/; + $template = Text::Template->new( + TYPE => STRING, + SOURCE => $content + ); + + my $retval = $template->fill_in( PACKAGE => T ); + return ($retval); +} + +# }}} + +# {{{ sub QueueObj + +=head2 QueueObj + +Takes nothing. returns this ticket's queue object + +=cut + +sub QueueObj { + my $self = shift; + if ( !defined $self->{'queue'} ) { + require RT::Queue; + $self->{'queue'} = RT::Queue->new( $self->CurrentUser ); + + unless ( $self->{'queue'} ) { + $RT::Logger->crit( + "RT::Queue->new(" . $self->CurrentUser . ") returned false" ); + return (undef); + } + my ($result) = $self->{'queue'}->Load( $self->__Value('Queue') ); + + } + return ( $self->{'queue'} ); +} + +# }}} + +# {{{ sub CurrentUserHasQueueRight + +=head2 CurrentUserHasQueueRight + +Helper function to call the template's queue's CurrentUserHasQueueRight with the passed in args. + +=cut + +sub CurrentUserHasQueueRight { + my $self = shift; + return ( $self->QueueObj->CurrentUserHasRight(@_) ); +} + +# }}} +1; diff --git a/rt/lib/RT/Templates.pm b/rt/lib/RT/Templates.pm new file mode 100755 index 000000000..b5b483c96 --- /dev/null +++ b/rt/lib/RT/Templates.pm @@ -0,0 +1,122 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Templates.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Templates - a collection of RT Template objects + +=head1 SYNOPSIS + + use RT::Templates; + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Templates); + +=end testing + +=cut + +package RT::Templates; +use RT::EasySearch; +@ISA= qw(RT::EasySearch); + + +# {{{ sub _Init + +=head2 _Init + + Returns RT::Templates specific init info like table and primary key names + +=cut + +sub _Init { + + my $self = shift; + $self->{'table'} = "Templates"; + $self->{'primary_key'} = "id"; + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ LimitToNotInQueue + +=head2 LimitToNotInQueue + +Takes a queue id # and limits the returned set of templates to those which +aren't that queue's templates. + +=cut + +sub LimitToNotInQueue { + my $self = shift; + my $queue_id = shift; + $self->Limit(FIELD => 'Queue', + VALUE => "$queue_id", + OPERATOR => '!=' + ); +} +# }}} + +# {{{ LimitToGlobal + +=head2 LimitToGlobal + +Takes no arguments. Limits the returned set to "Global" templates +which can be used with any queue. + +=cut + +sub LimitToGlobal { + my $self = shift; + my $queue_id = shift; + $self->Limit(FIELD => 'Queue', + VALUE => "0", + OPERATOR => '=' + ); +} +# }}} + +# {{{ LimitToQueue + +=head2 LimitToQueue + +Takes a queue id # and limits the returned set of templates to that queue's +templates + +=cut + +sub LimitToQueue { + my $self = shift; + my $queue_id = shift; + $self->Limit(FIELD => 'Queue', + VALUE => "$queue_id", + OPERATOR => '=' + ); +} +# }}} + +# {{{ sub NewItem + +=head2 NewItem + +Returns a new empty Template object + +=cut + +sub NewItem { + my $self = shift; + + use RT::Template; + my $item = new RT::Template($self->CurrentUser); + return($item); +} +# }}} + +1; + diff --git a/rt/lib/RT/TestHarness.pm b/rt/lib/RT/TestHarness.pm new file mode 100644 index 000000000..160e9e636 --- /dev/null +++ b/rt/lib/RT/TestHarness.pm @@ -0,0 +1,14 @@ +use lib "/opt/rt2/etc/"; + +use RT::Interface::CLI qw(CleanEnv LoadConfig DBConnect + GetCurrentUser GetMessageContent); + +#Clean out all the nasties from the environment +CleanEnv(); + +#Load etc/config.pm and drop privs +LoadConfig(); + + +use RT; +RT::Init; diff --git a/rt/lib/RT/Ticket.pm b/rt/lib/RT/Ticket.pm new file mode 100755 index 000000000..f7275e4e3 --- /dev/null +++ b/rt/lib/RT/Ticket.pm @@ -0,0 +1,3004 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Ticket.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# (c) 1996-2001 Jesse Vincent +# This software is redistributable under the terms of the GNU GPL +# + +=head1 NAME + + RT::Ticket - RT ticket object + +=head1 SYNOPSIS + + use RT::Ticket; + my $ticket = new RT::Ticket($CurrentUser); + $ticket->Load($ticket_id); + +=head1 DESCRIPTION + +This module lets you manipulate RT\'s ticket object. + + +=head1 METHODS + +=cut + + + +package RT::Ticket; +use RT::Queue; +use RT::User; +use RT::Record; +use RT::Link; +use RT::Links; +use RT::Date; +use RT::Watcher; + + +@ISA= qw(RT::Record); + + +=begin testing + +use RT::TestHarness; + +ok(require RT::Ticket, "Loading the RT::Ticket library"); + +=end testing + +=cut + +# {{{ sub _Init + +sub _Init { + my $self = shift; + $self->{'table'} = "Tickets"; + return ($self->SUPER::_Init(@_)); +} + +# }}} + +# {{{ sub Load + +=head2 Load + +Takes a single argument. This can be a ticket id, ticket alias or +local ticket uri. If the ticket can't be loaded, returns undef. +Otherwise, returns the ticket id. + +=cut + +sub Load { + my $self = shift; + my $id = shift; + + #TODO modify this routine to look at EffectiveId and do the recursive load + # thing. be careful to cache all the interim tickets we try so we don't loop forever. + + #If it's a local URI, turn it into a ticket id + if ($id =~ /^$RT::TicketBaseURI(\d+)$/) { + $id = $1; + } + #If it's a remote URI, we're going to punt for now + elsif ($id =~ '://' ) { + return (undef); + } + + #If we have an integer URI, load the ticket + if ( $id =~ /^\d+$/ ) { + my $ticketid = $self->LoadById($id); + + unless ($ticketid) { + $RT::Logger->debug("$self tried to load a bogus ticket: $id\n"); + return(undef); + } + } + + #It's not a URI. It's not a numerical ticket ID. Punt! + else { + return(undef); + } + + #If we're merged, resolve the merge. + if (($self->EffectiveId) and + ($self->EffectiveId != $self->Id)) { + return ($self->Load($self->EffectiveId)); + } + + #Ok. we're loaded. lets get outa here. + return ($self->Id); + +} + +# }}} + +# {{{ sub LoadByURI + +=head2 LoadByURI + +Given a local ticket URI, loads the specified ticket. + +=cut + +sub LoadByURI { + my $self = shift; + my $uri = shift; + + if ($uri =~ /^$RT::TicketBaseURI(\d+)$/) { + my $id = $1; + return ($self->Load($id)); + } + else { + return(undef); + } +} + +# }}} + +# {{{ sub Create + +=head2 Create (ARGS) + +Arguments: ARGS is a hash of named parameters. Valid parameters are: + + Queue - Either a Queue object or a Queue Name + Requestor - A reference to a list of RT::User objects, email addresses or RT user Names + Cc - A reference to a list of RT::User objects, email addresses or Names + AdminCc - A reference to a list of RT::User objects, email addresses or Names + Type -- The ticket\'s type. ignore this for now + Owner -- This ticket\'s owner. either an RT::User object or this user\'s id + Subject -- A string describing the subject of the ticket + InitialPriority -- an integer from 0 to 99 + FinalPriority -- an integer from 0 to 99 + Status -- any valid status (Defined in RT::Queue) + TimeWorked -- an integer + TimeLeft -- an integer + Starts -- an ISO date describing the ticket\'s start date and time in GMT + Due -- an ISO date describing the ticket\'s due date and time in GMT + MIMEObj -- a MIME::Entity object with the content of the initial ticket request. + + KeywordSelect- -- an array of keyword ids for that keyword select + + +Returns: TICKETID, Transaction Object, Error Message + + +=begin testing + +my $t = RT::Ticket->new($RT::SystemUser); + +ok( $t->Create(Queue => 'General', Subject => 'This is a subject'), "Ticket Created"); + +ok ( my $id = $t->Id, "Got ticket id"); + +=end testing + +=cut + +sub Create { + my $self = shift; + + my %args = ( + Queue => undef, + Requestor => undef, + Cc => undef, + AdminCc => undef, + Type => 'ticket', + Owner => $RT::Nobody->UserObj, + Subject => '[no subject]', + InitialPriority => undef, + FinalPriority => undef, + Status => 'new', + TimeWorked => "0", + TimeLeft => 0, + Due => undef, + Starts => undef, + MIMEObj => undef, + @_); + + my ($ErrStr, $QueueObj, $Owner, $resolved); + my (@non_fatal_errors); + + my $now = RT::Date->new($self->CurrentUser); + $now->SetToNow(); + + if ( (defined($args{'Queue'})) && (!ref($args{'Queue'})) ) { + $QueueObj=RT::Queue->new($RT::SystemUser); + $QueueObj->Load($args{'Queue'}); + } + elsif (ref($args{'Queue'}) eq 'RT::Queue') { + $QueueObj=RT::Queue->new($RT::SystemUser); + $QueueObj->Load($args{'Queue'}->Id); + } + else { + $RT::Logger->debug("$self ". $args{'Queue'} . + " not a recognised queue object."); + } + + #Can't create a ticket without a queue. + unless (defined ($QueueObj)) { + $RT::Logger->debug( "$self No queue given for ticket creation."); + return (0, 0,'Could not create ticket. Queue not set'); + } + + #Now that we have a queue, Check the ACLS + unless ($self->CurrentUser->HasQueueRight(Right => 'CreateTicket', + QueueObj => $QueueObj )) { + return (0,0,"No permission to create tickets in the queue '". + $QueueObj->Name."'."); + } + + #Since we have a queue, we can set queue defaults + #Initial Priority + + # If there's no queue default initial priority and it's not set, set it to 0 + $args{'InitialPriority'} = ($QueueObj->InitialPriority || 0) + unless (defined $args{'InitialPriority'}); + + #Final priority + + # If there's no queue default final priority and it's not set, set it to 0 + $args{'FinalPriority'} = ($QueueObj->FinalPriority || 0) + unless (defined $args{'FinalPriority'}); + + + #TODO we should see what sort of due date we're getting, rather + + # than assuming it's in ISO format. + + #Set the due date. if we didn't get fed one, use the queue default due in + my $due = new RT::Date($self->CurrentUser); + if (defined $args{'Due'}) { + $due->Set (Format => 'ISO', + Value => $args{'Due'}); + } + elsif (defined ($QueueObj->DefaultDueIn)) { + $due->SetToNow; + $due->AddDays($QueueObj->DefaultDueIn); + } + + my $starts = new RT::Date($self->CurrentUser); + if (defined $args{'Starts'}) { + $starts->Set (Format => 'ISO', + Value => $args{'Starts'}); + } + + + # {{{ Deal with setting the owner + + if (ref($args{'Owner'}) eq 'RT::User') { + $Owner = $args{'Owner'}; + } + #If we've been handed something else, try to load the user. + elsif ($args{'Owner'}) { + $Owner = new RT::User($self->CurrentUser); + $Owner->Load($args{'Owner'}); + + } + #If we can't handle it, call it nobody + else { + if (ref($args{'Owner'})) { + $RT::Logger->warning("$ticket ->Create called with an Owner of ". + "type ".ref($args{'Owner'}) .". Defaulting to nobody.\n"); + + push @non_fatal_errors, "Invalid owner. Defaulting to 'nobody'."; + } + else { + $RT::Logger->warning("$self ->Create called with an ". + "unknown datatype for Owner: ".$args{'Owner'} . + ". Defaulting to Nobody.\n"); + } + } + + #If we have a proposed owner and they don't have the right + #to own a ticket, scream about it and make them not the owner + if ((defined ($Owner)) and + ($Owner->Id != $RT::Nobody->Id) and + (!$Owner->HasQueueRight( QueueObj => $QueueObj, + Right => 'OwnTicket'))) { + + $RT::Logger->warning("$self user ".$Owner->Name . "(".$Owner->id . + ") was proposed ". + "as a ticket owner but has no rights to own ". + "tickets in this queue\n"); + + push @non_fatal_errors, "Invalid owner. Defaulting to 'nobody'."; + + $Owner = undef; + } + + #If we haven't been handed a valid owner, make it nobody. + unless (defined ($Owner)) { + $Owner = new RT::User($self->CurrentUser); + $Owner->Load($RT::Nobody->UserObj->Id); + } + + # }}} + + unless ($self->ValidateStatus($args{'Status'})) { + return (0,0,'Invalid value for status'); + } + + if ($args{'Status'} eq 'resolved') { + $resolved = $now->ISO; + } else{ + $resolved = undef; + } + + my $id = $self->SUPER::Create( + Queue => $QueueObj->Id, + Owner => $Owner->Id, + Subject => $args{'Subject'}, + InitialPriority => $args{'InitialPriority'}, + FinalPriority => $args{'FinalPriority'}, + Priority => $args{'InitialPriority'}, + Status => $args{'Status'}, + TimeWorked => $args{'TimeWorked'}, + TimeLeft => $args{'TimeLeft'}, + Type => $args{'Type'}, + Starts => $starts->ISO, + Resolved => $resolved, + Due => $due->ISO + ); + #Set the ticket's effective ID now that we've created it. + my ($val, $msg) = $self->__Set(Field => 'EffectiveId', Value => $id); + + unless ($val) { + $RT::Logger->err("$self ->Create couldn't set EffectiveId: $msg\n"); + } + + + my $watcher; + foreach $watcher (@{$args{'Cc'}}) { + my ($wval, $wmsg) = + $self->_AddWatcher( Type => 'Cc', Person => $watcher, Silent => 1); + push @non_fatal_errors, $wmsg unless ($wval); + } + + foreach $watcher (@{$args{'Requestor'}}) { + my ($wval, $wmsg) = + $self->_AddWatcher( Type => 'Requestor', Person => $watcher, Silent => 1); + push @non_fatal_errors, $wmsg unless ($wval); + } + + foreach $watcher (@{$args{'AdminCc'}}) { + # Note that we're using AddWatcher, rather than _AddWatcher, as we + # actually _want_ that ACL check. Otherwise, random ticket creators + # could make themselves adminccs and maybe get ticket rights. that would + # be poor + my ($wval, $wmsg) = + $self->AddWatcher( Type => 'AdminCc', Person => $watcher, Silent => 1); + push @non_fatal_errors, $wmsg unless ($wval); + } + + # Iterate through all the KeywordSelect- params passed in, calling _AddKeyword + # for each of them + + + foreach my $key (keys %args) { + + next unless ($key =~ /^KeywordSelect-(.*)$/); + + my $ks = $1; + + + my @keywords = ref($args{$key}) eq 'ARRAY' ? + @{$args{$key}} : ($args{$key}); + + foreach my $keyword (@keywords) { + my ($kval, $kmsg) = $self->_AddKeyword(KeywordSelect => $ks, + Keyword => $keyword, + Silent => 1); + } + push @non_fatal_errors, $kmsg unless ($kval); + } + + + + #Add a transaction for the create + my ($Trans, $Msg, $TransObj) = + $self->_NewTransaction( Type => "Create", + TimeTaken => 0, + MIMEObj=>$args{'MIMEObj'}); + + # Logging + if ($self->Id && $Trans) { + $ErrStr = "Ticket ".$self->Id . " created in queue '". $QueueObj->Name. + "'.\n" . join("\n", @non_fatal_errors); + + $RT::Logger->info($ErrStr); + } + else { + # TODO where does this get errstr from? + $RT::Logger->warning("Ticket couldn't be created: $ErrStr"); + } + + return($self->Id, $TransObj->Id, $ErrStr); +} + +# }}} + +# {{{ sub Import + +=head2 Import PARAMHASH + +Import a ticket. +Doesn\'t create a transaction. +Doesn\'t supply queue defaults, etc. + +Arguments are identical to Create(), with the addition of + Id - Ticket Id + +Returns: TICKETID + +=cut + + +sub Import { + my $self = shift; + my ( $ErrStr, $QueueObj, $Owner); + + my %args = (id => undef, + EffectiveId => undef, + Queue => undef, + Requestor => undef, + Type => 'ticket', + Owner => $RT::Nobody->Id, + Subject => '[no subject]', + InitialPriority => undef, + FinalPriority => undef, + Status => 'new', + TimeWorked => "0", + Due => undef, + Created => undef, + Updated => undef, + Resolved => undef, + Told => undef, + @_); + + if ( (defined($args{'Queue'})) && (!ref($args{'Queue'})) ) { + $QueueObj=RT::Queue->new($RT::SystemUser); + $QueueObj->Load($args{'Queue'}); + #TODO error check this and return 0 if it\'s not loading properly +++ + } + elsif (ref($args{'Queue'}) eq 'RT::Queue') { + $QueueObj=RT::Queue->new($RT::SystemUser); + $QueueObj->Load($args{'Queue'}->Id); + } + else { + $RT::Logger->debug("$self ". $args{'Queue'} . + " not a recognised queue object."); + } + + #Can't create a ticket without a queue. + unless (defined ($QueueObj) and $QueueObj->Id) { + $RT::Logger->debug( "$self No queue given for ticket creation."); + return (0,'Could not create ticket. Queue not set'); + } + + #Now that we have a queue, Check the ACLS + unless ($self->CurrentUser->HasQueueRight(Right => 'CreateTicket', + QueueObj => $QueueObj )) { + return (0,"No permission to create tickets in the queue '". + $QueueObj->Name."'."); + } + + + + + # {{{ Deal with setting the owner + + # Attempt to take user object, user name or user id. + # Assign to nobody if lookup fails. + if (defined ($args{'Owner'})) { + if ( ref($args{'Owner'}) ) { + $Owner = $args{'Owner'}; + } + else { + $Owner = new RT::User($self->CurrentUser); + $Owner->Load($args{'Owner'}); + if ( ! defined($Owner->id) ) { + $Owner->Load($RT::Nobody->id); + } + } + } + + + #If we have a proposed owner and they don't have the right + #to own a ticket, scream about it and make them not the owner + if ((defined ($Owner)) and + ($Owner->Id != $RT::Nobody->Id) and + (!$Owner->HasQueueRight( QueueObj => $QueueObj, + Right => 'OwnTicket'))) { + + $RT::Logger->warning("$self user ".$Owner->Name . "(".$Owner->id . + ") was proposed ". + "as a ticket owner but has no rights to own ". + "tickets in '".$QueueObj->Name."'\n"); + + $Owner = undef; + } + + #If we haven't been handed a valid owner, make it nobody. + unless (defined ($Owner)) { + $Owner = new RT::User($self->CurrentUser); + $Owner->Load($RT::Nobody->UserObj->Id); + } + + # }}} + + unless ($self->ValidateStatus($args{'Status'})) { + return (0,"'$args{'Status'}' is an invalid value for status"); + } + + $self->{'_AccessibleCache'}{Created} = { 'read'=>1, 'write'=>1 }; + $self->{'_AccessibleCache'}{Creator} = { 'read'=>1, 'auto'=>1 }; + $self->{'_AccessibleCache'}{LastUpdated} = { 'read'=>1, 'write'=>1 }; + $self->{'_AccessibleCache'}{LastUpdatedBy} = { 'read'=>1, 'auto'=>1 }; + + + # If we're coming in with an id, set that now. + my $EffectiveId = undef; + if ($args{'id'}) { + $EffectiveId = $args{'id'}; + + } + + + my $id = $self->SUPER::Create( + id => $args{'id'}, + EffectiveId => $EffectiveId, + Queue => $QueueObj->Id, + Owner => $Owner->Id, + Subject => $args{'Subject'}, + InitialPriority => $args{'InitialPriority'}, + FinalPriority => $args{'FinalPriority'}, + Priority => $args{'InitialPriority'}, + Status => $args{'Status'}, + TimeWorked => $args{'TimeWorked'}, + Type => $args{'Type'}, + Created => $args{'Created'}, + Told => $args{'Told'}, + LastUpdated => $args{'Updated'}, + Resolved => $args{Resolved}, + Due => $args{'Due'}, + ); + + + + # If the ticket didn't have an id + # Set the ticket's effective ID now that we've created it. + if ($args{'id'} ) { + $self->Load($args{'id'}); + } + else { + my ($val, $msg) = $self->__Set(Field => 'EffectiveId', Value => $id); + + unless ($val) { + $RT::Logger->err($self."->Import couldn't set EffectiveId: $msg\n"); + } + } + + my $watcher; + foreach $watcher (@{$args{'Cc'}}) { + $self->_AddWatcher( Type => 'Cc', Person => $watcher, Silent => 1); + } + foreach $watcher (@{$args{'AdminCc'}}) { + $self->_AddWatcher( Type => 'AdminCc', Person => $watcher, Silent => 1); + } + foreach $watcher (@{$args{'Requestor'}}) { + $self->_AddWatcher( Type => 'Requestor', Person => $watcher, Silent => 1); + } + + return($self->Id, $ErrStr); +} + +# }}} + +# {{{ sub Delete + +sub Delete { + my $self = shift; + return (0, 'Deleting this object would violate referential integrity.'. + ' That\'s bad.'); +} +# }}} + +# {{{ Routines dealing with watchers. + +# {{{ Routines dealing with adding new watchers + +# {{{ sub AddWatcher + +=head2 AddWatcher + +AddWatcher takes a parameter hash. The keys are as follows: + +Email +Type +Owner + +If the watcher you\'re trying to set has an RT account, set the Owner paremeter to their User Id. Otherwise, set the Email parameter to their Email address. + +=cut + +sub AddWatcher { + my $self = shift; + my %args = ( Email => undef, + Type => undef, + Owner => undef, + @_ + ); + + # {{{ Check ACLS + #If the watcher we're trying to add is for the current user + if ( ( $self->CurrentUser->EmailAddress && + ($args{'Email'} eq $self->CurrentUser->EmailAddress) ) or + ($args{'Owner'} eq $self->CurrentUser->Id) + ) { + + + # If it's an AdminCc and they don't have + # 'WatchAsAdminCc' or 'ModifyTicket', bail + if ($args{'Type'} eq 'AdminCc') { + unless ($self->CurrentUserHasRight('ModifyTicket') or + $self->CurrentUserHasRight('WatchAsAdminCc')) { + return(0, 'Permission Denied'); + } + } + + # If it's a Requestor or Cc and they don't have + # 'Watch' or 'ModifyTicket', bail + elsif (($args{'Type'} eq 'Cc') or + ($args{'Type'} eq 'Requestor')) { + + unless ($self->CurrentUserHasRight('ModifyTicket') or + $self->CurrentUserHasRight('Watch')) { + return(0, 'Permission Denied'); + } + } + else { + $RT::Logger->warn("$self -> AddWatcher hit code". + " it never should. We got passed ". + " a type of ". $args{'Type'}); + return (0,'Error in parameters to TicketAddWatcher'); + } + } + # If the watcher isn't the current user + # and the current user doesn't have 'ModifyTicket' + # bail + else { + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, "Permission Denied"); + } + } + # }}} + + return ($self->_AddWatcher(%args)); +} + + +#This contains the meat of AddWatcher. but can be called from a routine like +# Create, which doesn't need the additional acl check +sub _AddWatcher { + my $self = shift; + my %args = ( + Type => undef, + Silent => undef, + Email => undef, + Owner => 0, + Person => undef, + @_ ); + + + + #clear the watchers cache + $self->{'watchers_cache'} = undef; + + if (defined $args{'Person'}) { + #if it's an RT::User object, pull out the id and shove it in Owner + if (ref ($args{'Person'}) =~ /RT::User/) { + $args{'Owner'} = $args{'Person'}->id; + } + #if it's an int, shove it in Owner + elsif ($args{'Person'} =~ /^\d+$/) { + $args{'Owner'} = $args{'Person'}; + } + #if it's an email address, shove it in Email + else { + $args{'Email'} = $args{'Person'}; + } + } + + # Turn an email address int a watcher if we possibly can. + if ($args{'Email'}) { + my $watcher = new RT::User($self->CurrentUser); + $watcher->LoadByEmail($args{'Email'}); + if ($watcher->Id) { + $args{'Owner'} = $watcher->Id; + delete $args{'Email'}; + } + } + + + # see if this user is already a watcher. if we have an owner, check it + # otherwise, we've got an email-address watcher. use that. + + if ($self->IsWatcher(Type => $args{'Type'}, + Id => ($args{'Owner'} || $args{'Email'}) ) ) { + + + return(0, 'That user is already that sort of watcher for this ticket'); + } + + + require RT::Watcher; + my $Watcher = new RT::Watcher ($self->CurrentUser); + my ($retval, $msg) = ($Watcher->Create( Value => $self->Id, + Scope => 'Ticket', + Email => $args{'Email'}, + Type => $args{'Type'}, + Owner => $args{'Owner'}, + )); + + unless ($args{'Silent'}) { + $self->_NewTransaction( Type => 'AddWatcher', + NewValue => $Watcher->Email, + Field => $Watcher->Type); + } + + return ($retval, $msg); +} + +# }}} + +# {{{ sub AddRequestor + +=head2 AddRequestor + +AddRequestor takes what AddWatcher does, except it presets +the "Type" parameter to \'Requestor\' + +=cut + +sub AddRequestor { + my $self = shift; + return ($self->AddWatcher ( Type => 'Requestor', @_)); +} + +# }}} + +# {{{ sub AddCc + +=head2 AddCc + +AddCc takes what AddWatcher does, except it presets +the "Type" parameter to \'Cc\' + +=cut + +sub AddCc { + my $self = shift; + return ($self->AddWatcher ( Type => 'Cc', @_)); +} +# }}} + +# {{{ sub AddAdminCc + +=head2 AddAdminCc + +AddAdminCc takes what AddWatcher does, except it presets +the "Type" parameter to \'AdminCc\' + +=cut + +sub AddAdminCc { + my $self = shift; + return ($self->AddWatcher ( Type => 'AdminCc', @_)); +} + +# }}} + +# }}} + +# {{{ sub DeleteWatcher + +=head2 DeleteWatcher id [type] + +DeleteWatcher takes a single argument which is either an email address +or a watcher id. +If the first argument is an email address, you need to specify the watcher type you're talking +about as the second argument. Valid values are 'Requestor', 'Cc' or 'AdminCc'. +It removes that watcher from this Ticket\'s list of watchers. + + +=cut + +#TODO It is lame that you can't call this the same way you can call AddWatcher + +sub DeleteWatcher { + my $self = shift; + my $id = shift; + + my $type; + + $type = shift if (@_); + + my $Watcher = new RT::Watcher($self->CurrentUser); + + #If it\'s a numeric watcherid + if ($id =~ /^(\d*)$/) { + $Watcher->Load($id); + } + + #Otherwise, we'll assume it's an email address + elsif ($type) { + my ($result, $msg) = + $Watcher->LoadByValue( Email => $id, + Scope => 'Ticket', + Value => $self->id, + Type => $type); + return (0,$msg) unless ($result); + } + + else { + return(0,"Can\'t delete a watcher by email address without specifying a type"); + } + + # {{{ Check ACLS + + #If the watcher we're trying to delete is for the current user + if ($Watcher->Email eq $self->CurrentUser->EmailAddress) { + + # If it's an AdminCc and they don't have + # 'WatchAsAdminCc' or 'ModifyTicket', bail + if ($Watcher->Type eq 'AdminCc') { + unless ($self->CurrentUserHasRight('ModifyTicket') or + $self->CurrentUserHasRight('WatchAsAdminCc')) { + return(0, 'Permission Denied'); + } + } + + # If it's a Requestor or Cc and they don't have + # 'Watch' or 'ModifyTicket', bail + elsif (($Watcher->Type eq 'Cc') or + ($Watcher->Type eq 'Requestor')) { + + unless ($self->CurrentUserHasRight('ModifyTicket') or + $self->CurrentUserHasRight('Watch')) { + return(0, 'Permission Denied'); + } + } + else { + $RT::Logger->warn("$self -> DeleteWatcher hit code". + " it never should. We got passed ". + " a type of ". $args{'Type'}); + return (0,'Error in parameters to $self DeleteWatcher'); + } + } + # If the watcher isn't the current user + # and the current user doesn't have 'ModifyTicket' + # bail + else { + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, "Permission Denied"); + } + } + + # }}} + + unless (($Watcher->Scope eq 'Ticket') and + ($Watcher->Value == $self->id) ) { + return (0, "Not a watcher for this ticket"); + } + + + #Clear out the watchers hash. + $self->{'watchers'} = undef; + + #If we\'ve validated that it is a watcher for this ticket + $self->_NewTransaction ( Type => 'DelWatcher', + OldValue => $Watcher->Email, + Field => $Watcher->Type, + ); + + my $retval = $Watcher->Delete(); + + unless ($retval) { + return(0,"Watcher could not be deleted. Database inconsistency possible."); + } + + return(1, "Watcher deleted"); +} + +# {{{ sub DeleteRequestor + +=head2 DeleteRequestor EMAIL + +Takes an email address. It calls DeleteWatcher with a preset +type of 'Requestor' + + +=cut + +sub DeleteRequestor { + my $self = shift; + my $id = shift; + return ($self->DeleteWatcher ($id, 'Requestor')) +} + +# }}} + +# {{{ sub DeleteCc + +=head2 DeleteCc EMAIL + +Takes an email address. It calls DeleteWatcher with a preset +type of 'Cc' + + +=cut + +sub DeleteCc { + my $self = shift; + my $id = shift; + return ($self->DeleteWatcher ($id, 'Cc')) +} + +# }}} + +# {{{ sub DeleteAdminCc + +=head2 DeleteAdminCc EMAIL + +Takes an email address. It calls DeleteWatcher with a preset +type of 'AdminCc' + + +=cut + +sub DeleteAdminCc { + my $self = shift; + my $id = shift; + return ($self->DeleteWatcher ($id, 'AdminCc')) +} + +# }}} + + +# }}} + +# {{{ sub Watchers + +=head2 Watchers + +Watchers returns a Watchers object preloaded with this ticket\'s watchers. + +# It should return only the ticket watchers. the actual FooAsString +# methods capture the queue watchers too. I don't feel thrilled about this, +# but we don't want the Cc Requestors and AdminCc objects to get filled up +# with all the queue watchers too. we've got seperate objects for that. + # should we rename these as s/(.*)AsString/$1Addresses/ or somesuch? + +=cut + +sub Watchers { + my $self = shift; + + require RT::Watchers; + my $watchers=RT::Watchers->new($self->CurrentUser); + if ($self->CurrentUserHasRight('ShowTicket')) { + $watchers->LimitToTicket($self->id); + } + + return($watchers); + +} + +# }}} + +# {{{ a set of [foo]AsString subs that will return the various sorts of watchers for a ticket/queue as a comma delineated string + +=head2 RequestorsAsString + + B String: All Ticket Requestor email addresses as a string. + +=cut + +sub RequestorsAsString { + my $self=shift; + + unless ($self->CurrentUserHasRight('ShowTicket')) { + return undef; + } + + return ($self->Requestors->EmailsAsString() ); +} + +=head2 WatchersAsString + +B String: All Ticket Watchers email addresses as a string + +=cut + +sub WatchersAsString { + my $self=shift; + + unless ($self->CurrentUserHasRight('ShowTicket')) { + return (0, "Permission Denied"); + } + + return ($self->Watchers->EmailsAsString()); + +} + +=head2 AdminCcAsString + +returns String: All Ticket AdminCc email addresses as a string + +=cut + + +sub AdminCcAsString { + my $self=shift; + + unless ($self->CurrentUserHasRight('ShowTicket')) { + return undef; + } + + return ($self->AdminCc->EmailsAsString()); + +} + +=head2 CcAsString + +returns String: All Ticket Ccs as a string of email addresses + +=cut + +sub CcAsString { + my $self=shift; + + unless ($self->CurrentUserHasRight('ShowTicket')) { + return undef; + } + + return ($self->Cc->EmailsAsString()); + +} + +# }}} + +# {{{ Routines that return RT::Watchers objects of Requestors, Ccs and AdminCcs + +# {{{ sub Requestors + +=head2 Requestors + +Takes nothing. +Returns this ticket's Requestors as an RT::Watchers object + +=cut + +sub Requestors { + my $self = shift; + + my $requestors = $self->Watchers(); + if ($self->CurrentUserHasRight('ShowTicket')) { + $requestors->LimitToRequestors(); + } + + return($requestors); + +} + +# }}} + +# {{{ sub Cc + +=head2 Cc + +Takes nothing. +Returns a watchers object which contains this ticket's Cc watchers + +=cut + +sub Cc { + my $self = shift; + + my $cc = $self->Watchers(); + + if ($self->CurrentUserHasRight('ShowTicket')) { + $cc->LimitToCc(); + } + + return($cc); + +} + +# }}} + +# {{{ sub AdminCc + +=head2 AdminCc + +Takes nothing. +Returns this ticket\'s administrative Ccs as an RT::Watchers object + +=cut + +sub AdminCc { + my $self = shift; + + my $admincc = $self->Watchers(); + if ($self->CurrentUserHasRight('ShowTicket')) { + $admincc->LimitToAdminCc(); + } + return($admincc); +} + +# }}} + +# }}} + +# {{{ IsWatcher,IsRequestor,IsCc, IsAdminCc + +# {{{ sub IsWatcher +# a generic routine to be called by IsRequestor, IsCc and IsAdminCc + +=head2 IsWatcher + +Takes a param hash with the attributes Type and User. User is either a user object or string containing an email address. Returns true if that user or string +is a ticket watcher. Returns undef otherwise + +=cut + +sub IsWatcher { + my $self = shift; + + my %args = ( Type => 'Requestor', + Email => undef, + Id => undef, + @_ + ); + + my %cols = ('Type' => $args{'Type'}, + 'Scope' => 'Ticket', + 'Value' => $self->Id, + 'Owner' => undef, + 'Email' => undef + ); + + if (ref($args{'Id'})){ + #If it's a ref, it's an RT::User object; + $cols{'Owner'} = $args{'Id'}->Id; + } + elsif ($args{'Id'} =~ /^\d+$/) { + # if it's an integer, it's a reference to an RT::User obj + $cols{'Owner'} = $args{'Id'}; + } + else { + $cols{'Email'} = $args{'Id'}; + } + + if ($args{'Email'}) { + $cols{'Email'} = $args{'Email'}; + } + + my $description = join(":",%cols); + + #If we've cached a positive match... + if (defined $self->{'watchers_cache'}->{"$description"}) { + if ($self->{'watchers_cache'}->{"$description"} == 1) { + return(1); + } + else { #If we've cached a negative match... + return(undef); + } + } + + + my $watcher = new RT::Watcher($self->CurrentUser); + $watcher->LoadByCols(%cols); + + + if ($watcher->id) { + $self->{'watchers_cache'}->{"$description"} = 1; + return(1); + } + else { + $self->{'watchers_cache'}->{"$description"} = 0; + return(undef); + } + +} +# }}} + +# {{{ sub IsRequestor + +=head2 IsRequestor + + Takes an email address, RT::User object or integer (RT user id) + Returns true if the string is a requestor of the current ticket. + + +=cut + +sub IsRequestor { + my $self = shift; + my $person = shift; + + return ($self->IsWatcher(Type => 'Requestor', Id => $person)); + +}; + +# }}} + +# {{{ sub IsCc + +=head2 IsCc + +Takes a string. Returns true if the string is a Cc watcher of the current ticket. + +=cut + +sub IsCc { + my $self = shift; + my $cc = shift; + + return ($self->IsWatcher( Type => 'Cc', Id => $cc )); + +} + +# }}} + +# {{{ sub IsAdminCc + +=head2 IsAdminCc + +Takes a string. Returns true if the string is an AdminCc watcher of the current ticket. + +=cut + +sub IsAdminCc { + my $self = shift; + my $person = shift; + + return ($self->IsWatcher( Type => 'AdminCc', Id => $person )); + +} + +# }}} + +# {{{ sub IsOwner + +=head2 IsOwner + + Takes an RT::User object. Returns true if that user is this ticket's owner. +returns undef otherwise + +=cut + +sub IsOwner { + my $self = shift; + my $person = shift; + + + # no ACL check since this is used in acl decisions + # unless ($self->CurrentUserHasRight('ShowTicket')) { + # return(undef); + # } + + + #Tickets won't yet have owners when they're being created. + unless ($self->OwnerObj->id) { + return(undef); + } + + if ($person->id == $self->OwnerObj->id) { + return(1); + } + else { + return(undef); + } +} + + +# }}} + +# }}} + +# }}} + +# {{{ Routines dealing with queues + +# {{{ sub ValidateQueue + +sub ValidateQueue { + my $self = shift; + my $Value = shift; + + #TODO I don't think this should be here. We shouldn't allow anything to have an undef queue, + if (!$Value) { + $RT::Logger->warning( " RT:::Queue::ValidateQueue called with a null value. this isn't ok."); + return (1); + } + + my $QueueObj = RT::Queue->new($self->CurrentUser); + my $id = $QueueObj->Load($Value); + + if ($id) { + return (1); + } + else { + return (undef); + } +} + +# }}} + +# {{{ sub SetQueue + +sub SetQueue { + my $self = shift; + my $NewQueue = shift; + + #Redundant. ACL gets checked in _Set; + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, "Permission Denied"); + } + + + my $NewQueueObj = RT::Queue->new($self->CurrentUser); + $NewQueueObj->Load($NewQueue); + + unless ($NewQueueObj->Id()) { + return (0, "That queue does not exist"); + } + + if ($NewQueueObj->Id == $self->QueueObj->Id) { + return (0, 'That is the same value'); + } + unless ($self->CurrentUser->HasQueueRight(Right =>'CreateTicket', + QueueObj => $NewQueueObj )) { + return (0, "You may not create requests in that queue."); + } + + unless ($self->OwnerObj->HasQueueRight(Right=> 'OwnTicket', + QueueObj => $NewQueueObj)) { + $self->Untake(); + } + + return($self->_Set(Field => 'Queue', Value => $NewQueueObj->Id())); + +} + +# }}} + +# {{{ sub QueueObj + +=head2 QueueObj + +Takes nothing. returns this ticket's queue object + +=cut + +sub QueueObj { + my $self = shift; + + my $queue_obj = RT::Queue->new($self->CurrentUser); + #We call __Value so that we can avoid the ACL decision and some deep recursion + my ($result) = $queue_obj->Load($self->__Value('Queue')); + return ($queue_obj); +} + + +# }}} + +# }}} + +# {{{ Date printing routines + +# {{{ sub DueObj + +=head2 DueObj + + Returns an RT::Date object containing this ticket's due date + +=cut +sub DueObj { + my $self = shift; + + my $time = new RT::Date($self->CurrentUser); + + # -1 is RT::Date slang for never + if ($self->Due) { + $time->Set(Format => 'sql', Value => $self->Due ); + } + else { + $time->Set(Format => 'unix', Value => -1); + } + + return $time; +} +# }}} + +# {{{ sub DueAsString + +=head2 DueAsString + +Returns this ticket's due date as a human readable string + +=cut + +sub DueAsString { + my $self = shift; + return $self->DueObj->AsString(); +} + +# }}} + +# {{{ sub GraceTimeAsString + +=head2 GraceTimeAsString + +Return the time until this ticket is due as a string + +=cut + +# TODO This should be deprecated + +sub GraceTimeAsString { + my $self=shift; + + if ($self->Due) { + return ($self->DueObj->AgeAsString()); + } else { + return ""; + } +} + +# }}} + + +# {{{ sub ResolvedObj + +=head2 ResolvedObj + + Returns an RT::Date object of this ticket's 'resolved' time. + +=cut + +sub ResolvedObj { + my $self = shift; + + my $time = new RT::Date($self->CurrentUser); + $time->Set(Format => 'sql', Value => $self->Resolved); + return $time; +} +# }}} + +# {{{ sub SetStarted + +=head2 SetStarted + +Takes a date in ISO format or undef +Returns a transaction id and a message +The client calls "Start" to note that the project was started on the date in $date. +A null date means "now" + +=cut + +sub SetStarted { + my $self = shift; + my $time = shift || 0; + + + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, "Permission Denied"); + } + + #We create a date object to catch date weirdness + my $time_obj = new RT::Date($self->CurrentUser()); + if ($time != 0) { + $time_obj->Set(Format => 'ISO', Value => $time); + } + else { + $time_obj->SetToNow(); + } + + #Now that we're starting, open this ticket + #TODO do we really want to force this as policy? it should be a scrip + + #We need $TicketAsSystem, in case the current user doesn't have + #ShowTicket + # + my $TicketAsSystem = new RT::Ticket($RT::SystemUser); + $TicketAsSystem->Load($self->Id); + if ($TicketAsSystem->Status eq 'new') { + $TicketAsSystem->Open(); + } + + return ($self->_Set(Field => 'Started', Value =>$time_obj->ISO)); + +} + +# }}} + +# {{{ sub StartedObj + +=head2 StartedObj + + Returns an RT::Date object which contains this ticket's +'Started' time. + +=cut + + +sub StartedObj { + my $self = shift; + + my $time = new RT::Date($self->CurrentUser); + $time->Set(Format => 'sql', Value => $self->Started); + return $time; +} +# }}} + +# {{{ sub StartsObj + +=head2 StartsObj + + Returns an RT::Date object which contains this ticket's +'Starts' time. + +=cut + +sub StartsObj { + my $self = shift; + + my $time = new RT::Date($self->CurrentUser); + $time->Set(Format => 'sql', Value => $self->Starts); + return $time; +} +# }}} + +# {{{ sub ToldObj + +=head2 ToldObj + + Returns an RT::Date object which contains this ticket's +'Told' time. + +=cut + + +sub ToldObj { + my $self = shift; + + my $time = new RT::Date($self->CurrentUser); + $time->Set(Format => 'sql', Value => $self->Told); + return $time; +} + +# }}} + +# {{{ sub LongSinceToldAsString + +# TODO this should be deprecated + + +sub LongSinceToldAsString { + my $self = shift; + + if ($self->Told) { + return $self->ToldObj->AgeAsString(); + } else { + return "Never"; + } +} +# }}} + +# {{{ sub ToldAsString + +=head2 ToldAsString + +A convenience method that returns ToldObj->AsString + +TODO: This should be deprecated + +=cut + + +sub ToldAsString { + my $self = shift; + if ($self->Told) { + return $self->ToldObj->AsString(); + } + else { + return("Never"); + } +} +# }}} + +# {{{ sub TimeWorkedAsString + +=head2 TimeWorkedAsString + +Returns the amount of time worked on this ticket as a Text String + +=cut + +sub TimeWorkedAsString { + my $self=shift; + return "0" unless $self->TimeWorked; + + #This is not really a date object, but if we diff a number of seconds + #vs the epoch, we'll get a nice description of time worked. + + my $worked = new RT::Date($self->CurrentUser); + #return the #of minutes worked turned into seconds and written as + # a simple text string + + return($worked->DurationAsString($self->TimeWorked*60)); +} + +# }}} + + +# }}} + +# {{{ Routines dealing with correspondence/comments + +# {{{ sub Comment + +=head2 Comment + +Comment on this ticket. +Takes a hashref with the follwoing attributes: + +MIMEObj, TimeTaken, CcMessageTo, BccMessageTo + +=cut + +sub Comment { + my $self = shift; + + my %args = ( + CcMessageTo => undef, + BccMessageTo => undef, + MIMEObj => undef, + TimeTaken => 0, + @_ ); + + unless (($self->CurrentUserHasRight('CommentOnTicket')) or + ($self->CurrentUserHasRight('ModifyTicket'))) { + return (0, "Permission Denied"); + } + + unless ($args{'MIMEObj'}) { + return(0,"No correspondence attached"); + } + + # If we've been passed in CcMessageTo and BccMessageTo fields, + # add them to the mime object for passing on to the transaction handler + # The "NotifyOtherRecipients" scripAction will look for RT--Send-Cc: and + # RT-Send-Bcc: headers + + $args{'MIMEObj'}->head->add('RT-Send-Cc', $args{'CcMessageTo'}); + $args{'MIMEObj'}->head->add('RT-Send-Bcc', $args{'BccMessageTo'}); + + #Record the correspondence (write the transaction) + my ($Trans, $Msg, $TransObj) = $self->_NewTransaction( Type => 'Comment', + Data =>($args{'MIMEObj'}->head->get('subject') || 'No Subject'), + TimeTaken => $args{'TimeTaken'}, + MIMEObj => $args{'MIMEObj'} + ); + + + return ($Trans, "The comment has been recorded"); +} + +# }}} + +# {{{ sub Correspond + +=head2 Correspond + +Correspond on this ticket. +Takes a hashref with the following attributes: + + +MIMEObj, TimeTaken, CcMessageTo, BccMessageTo + +=cut + +sub Correspond { + my $self = shift; + my %args = ( + CcMessageTo => undef, + BccMessageTo => undef, + MIMEObj => undef, + TimeTaken => 0, + @_ ); + + unless (($self->CurrentUserHasRight('ReplyToTicket')) or + ($self->CurrentUserHasRight('ModifyTicket'))) { + return (0, "Permission Denied"); + } + + unless ($args{'MIMEObj'}) { + return(0,"No correspondence attached"); + } + + # If we've been passed in CcMessageTo and BccMessageTo fields, + # add them to the mime object for passing on to the transaction handler + # The "NotifyOtherRecipients" scripAction will look for RT-Send-Cc: and RT-Send-Bcc: + # headers + + $args{'MIMEObj'}->head->add('RT-Send-Cc', $args{'CcMessageTo'}); + $args{'MIMEObj'}->head->add('RT-Send-Bcc', $args{'BccMessageTo'}); + + #Record the correspondence (write the transaction) + my ($Trans,$msg, $TransObj) = $self->_NewTransaction + (Type => 'Correspond', + Data => ($args{'MIMEObj'}->head->get('subject') || 'No Subject'), + TimeTaken => $args{'TimeTaken'}, + MIMEObj=> $args{'MIMEObj'} + ); + + # TODO this bit of logic should really become a scrip for 2.2 + my $TicketAsSystem = new RT::Ticket($RT::SystemUser); + $TicketAsSystem->Load($self->Id); + + if ( + ($TicketAsSystem->Status ne 'open') and + ($TicketAsSystem->Status ne 'new') + ) { + + my $oldstatus = $TicketAsSystem->Status(); + $TicketAsSystem->__Set(Field => 'Status', Value => 'open'); + $TicketAsSystem->_NewTransaction + ( Type => 'Set', + Field => 'Status', + OldValue => $oldstatus, + NewValue => 'open', + Data => 'Ticket auto-opened on incoming correspondence' + ); + } + + unless ($Trans) { + $RT::Logger->err("$self couldn't init a transaction ($msg)\n"); + return ($Trans, "correspondence (probably) not sent", $args{'MIMEObj'}); + } + + #Set the last told date to now if this isn't mail from the requestor. + #TODO: Note that this will wrongly ack mail from any non-requestor as a "told" + + unless ($TransObj->IsInbound) { + $self->_SetTold; + } + + return ($Trans, "correspondence sent"); +} + +# }}} + +# }}} + +# {{{ Routines dealing with Links and Relations between tickets + +# {{{ Link Collections + +# {{{ sub Members + +=head2 Members + + This returns an RT::Links object which references all the tickets +which are 'MembersOf' this ticket + +=cut + +sub Members { + my $self = shift; + return ($self->_Links('Target', 'MemberOf')); +} + +# }}} + +# {{{ sub MemberOf + +=head2 MemberOf + + This returns an RT::Links object which references all the tickets that this +ticket is a 'MemberOf' + +=cut + +sub MemberOf { + my $self = shift; + return ($self->_Links('Base', 'MemberOf')); +} + +# }}} + +# {{{ RefersTo + +=head2 RefersTo + + This returns an RT::Links object which shows all references for which this ticket is a base + +=cut + +sub RefersTo { + my $self = shift; + return ($self->_Links('Base', 'RefersTo')); +} + +# }}} + +# {{{ ReferredToBy + +=head2 ReferredToBy + + This returns an RT::Links object which shows all references for which this ticket is a target + +=cut + +sub ReferredToBy { + my $self = shift; + return ($self->_Links('Target', 'RefersTo')); +} + +# }}} + +# {{{ DependedOnBy + +=head2 DependedOnBy + + This returns an RT::Links object which references all the tickets that depend on this one + +=cut +sub DependedOnBy { + my $self = shift; + return ($self->_Links('Target','DependsOn')); +} + +# }}} + +# {{{ DependsOn + +=head2 DependsOn + + This returns an RT::Links object which references all the tickets that this ticket depends on + +=cut +sub DependsOn { + my $self = shift; + return ($self->_Links('Base','DependsOn')); +} + +# }}} + +# {{{ sub _Links + +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')) { + + $self->{"$field$type"}->Limit(FIELD=>$field, VALUE=>$self->URI); + $self->{"$field$type"}->Limit(FIELD=>'Type', + VALUE=>$type) if ($type); + } + } + return ($self->{"$field$type"}); +} + +# }}} + +# }}} + + +# {{{ sub DeleteLink + +=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, + @_ ); + + #check acls + unless ($self->CurrentUserHasRight('ModifyTicket')) { + $RT::Logger->debug("No permission to delete links\n"); + return (0, 'Permission Denied'); + + + } + + #we want one of base and target. we don't care which + #but we only want _one_ + + if ($args{'Base'} and $args{'Target'}) { + $RT::Logger->debug("$self ->_DeleteLink. got both Base and Target\n"); + return (0, 'Can\'t specifiy both base and target'); + } + elsif ($args{'Base'}) { + $args{'Target'} = $self->Id(); + } + elsif ($args{'Target'}) { + $args{'Base'} = $self->Id(); + } + else { + $RT::Logger->debug("$self: Base or Target must be specified\n"); + return (0, 'Either base or target must be specified'); + } + + my $link = new RT::Link($self->CurrentUser); + $RT::Logger->debug("Trying to load link: ". $args{'Base'}." ". $args{'Type'}. " ". $args{'Target'}. "\n"); + + $link->Load($args{'Base'}, $args{'Type'}, $args{'Target'}); + + + + #it's a real link. + if ($link->id) { + $RT::Logger->debug("We're going to delete link ".$link->id."\n"); + $link->Delete(); + + my $TransString= + "Ticket $args{'Base'} no longer $args{Type} ticket $args{'Target'}."; + my ($Trans, $Msg, $TransObj) = $self->_NewTransaction + (Type => 'DeleteLink', + Field => $args{'Type'}, + Data => $TransString, + TimeTaken => 0 + ); + + return ($linkid, "Link deleted ($TransString)", $transactionid); + } + #if it's not a link we can find + else { + $RT::Logger->debug("Couldn't find that link\n"); + return (0, "Link not found"); + } +} + +# }}} + +# {{{ sub AddLink + +=head2 AddLink + +Takes a paramhash of Type and one of Base or Target. Adds that link to this ticket. + + +=cut + +sub AddLink { + my $self = shift; + my %args = ( Target => '', + Base => '', + Type => '', + @_ ); + + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, "Permission Denied"); + } + + if ($args{'Base'} and $args{'Target'}) { + $RT::Logger->debug("$self tried to delete a link. both base and target were specified\n"); + return (0, 'Can\'t specifiy both base and target'); + } + elsif ($args{'Base'}) { + $args{'Target'} = $self->Id(); + } + elsif ($args{'Target'}) { + $args{'Base'} = $self->Id(); + } + else { + return (0, 'Either base or target must be specified'); + } + + # {{{ We don't want references to ourself + if ($args{Base} eq $args{Target}) { + return (0, "Can\'t link a ticket to itself"); + } + + # }}} + + # If the base isn't a URI, make it a URI. + # If the target isn't a URI, make it a URI. + + # {{{ Check if the link already exists - we don't want duplicates + my $old_link= new RT::Link ($self->CurrentUser); + $old_link->Load($args{'Base'}, $args{'Type'}, $args{'Target'}); + if ($old_link->Id) { + $RT::Logger->debug("$self Somebody tried to duplicate a link"); + return ($old_link->id, "Link already exists",0); + } + # }}} + + # Storing the link in the DB. + my $link = RT::Link->new($self->CurrentUser); + my ($linkid) = $link->Create(Target => $args{Target}, + Base => $args{Base}, + Type => $args{Type}); + + unless ($linkid) { + return (0,"Link could not be created"); + } + #Write the transaction + + my $TransString="Ticket $args{'Base'} $args{Type} ticket $args{'Target'}."; + + my ($Trans, $Msg, $TransObj) = $self->_NewTransaction + (Type => 'AddLink', + Field => $args{'Type'}, + Data => $TransString, + TimeTaken => 0 + ); + + return ($Trans, "Link created ($TransString)"); + + +} +# }}} + +# {{{ sub URI + +=head2 URI + +Returns this ticket's URI + +=cut + +sub URI { + my $self = shift; + return $RT::TicketBaseURI.$self->id; +} + +# }}} + +# {{{ sub MergeInto + +=head2 MergeInto +MergeInto take the id of the ticket to merge this ticket into. + +=cut + +sub MergeInto { + my $self = shift; + my $MergeInto = shift; + + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, "Permission Denied"); + } + + # Load up the new ticket. + my $NewTicket = RT::Ticket->new($RT::SystemUser); + $NewTicket->Load($MergeInto); + + # make sure it exists. + unless (defined $NewTicket->Id) { + return (0, 'New ticket doesn\'t exist'); + } + + + # Make sure the current user can modify the new ticket. + unless ($NewTicket->CurrentUserHasRight('ModifyTicket')) { + $RT::Logger->debug("failed..."); + return (0, "Permission Denied"); + } + + $RT::Logger->debug("checking if the new ticket has the same id and effective id..."); + unless ($NewTicket->id == $NewTicket->EffectiveId) { + $RT::Logger->err('$self trying to merge into '.$NewTicket->Id . + ' which is itself merged.\n'); + return (0, "Can't merge into a merged ticket. ". + "You should never get this error"); + } + + + # We use EffectiveId here even though it duplicates information from + # the links table becasue of the massive performance hit we'd take + # by trying to do a seperate database query for merge info everytime + # loaded a ticket. + + + #update this ticket's effective id to the new ticket's id. + my ($id_val, $id_msg) = $self->__Set(Field => 'EffectiveId', + Value => $NewTicket->Id()); + + unless ($id_val) { + $RT::Logger->error("Couldn't set effective ID for ".$self->Id. + ": $id_msg"); + return(0,"Merge failed. Couldn't set EffectiveId"); + } + + my ($status_val, $status_msg) = $self->__Set(Field => 'Status', + Value => 'resolved'); + + unless ($status_val) { + $RT::Logger->error("$self couldn't set status to resolved.". + "RT's Database may be inconsistent."); + } + + #make a new link: this ticket is merged into that other ticket. + $self->AddLink( Type =>'MergedInto', + Target => $NewTicket->Id() ); + + #add all of this ticket's watchers to that ticket. + my $watchers = $self->Watchers(); + + while (my $watcher = $watchers->Next()) { + unless ( + ($watcher->Owner && + $NewTicket->IsWatcher (Type => $watcher->Type, + Id => $watcher->Owner)) or + ($watcher->Email && + $NewTicket->IsWatcher (Type => $watcher->Type, + Id => $watcher->Email)) + ) { + + + + $NewTicket->_AddWatcher(Silent => 1, + Type => $watcher->Type, + Email => $watcher->Email, + Owner => $watcher->Owner); + } + } + + + #find all of the tickets that were merged into this ticket. + my $old_mergees = new RT::Tickets($self->CurrentUser); + $old_mergees->Limit( FIELD => 'EffectiveId', + OPERATOR => '=', + VALUE => $self->Id ); + + # update their EffectiveId fields to the new ticket's id + while (my $ticket = $old_mergees->Next()) { + my ($val, $msg) = $ticket->__Set(Field => 'EffectiveId', + Value => $NewTicket->Id()); + } + $NewTicket->_SetLastUpdated; + + return ($TransactionObj, "Merge Successful"); +} + +# }}} + +# }}} + +# {{{ Routines dealing with keywords + +# {{{ sub KeywordsObj + +=head2 KeywordsObj [KEYWORD_SELECT_ID] + + Returns an B object preloaded with this ticket's ObjectKeywords. +If the optional KEYWORD_SELECT_ID parameter is set, limit the keywords object to that keyword +select. + +=cut + +sub KeywordsObj { + my $self = shift; + my $keyword_select; + + $keyword_select = shift if (@_); + + use RT::ObjectKeywords; + my $Keywords = new RT::ObjectKeywords($self->CurrentUser); + + #ACL check + if ($self->CurrentUserHasRight('ShowTicket')) { + $Keywords->LimitToTicket($self->id); + if ($keyword_select) { + $Keywords->LimitToKeywordSelect($keyword_select); + } + } + return ($Keywords); +} +# }}} + +# {{{ sub AddKeyword + +=head2 AddKeyword + +Takes a paramhash of Keyword and KeywordSelect. If Keyword is a valid choice +for KeywordSelect, creates a KeywordObject. If the KeywordSelect says this should +be a single KeywordObject, automatically removes the old value. + + Issues: probably doesn't enforce the depth restrictions or make sure that keywords +are coming from the right part of the tree. really should. + +=cut + +sub AddKeyword { + my $self = shift; + #ACL check + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, 'Permission Denied'); + } + + return($self->_AddKeyword(@_)); + +} + + +# Helper version of AddKeyword without that pesky ACL check +sub _AddKeyword { + my $self = shift; + my %args = ( KeywordSelect => undef, # id of a keyword select record + Keyword => undef, #id of the keyword to add + Silent => 0, + @_ + ); + + my ($OldValue); + + #TODO make sure that $args{'Keyword'} is valid for $args{'KeywordSelect'} + + #TODO: make sure that $args{'KeywordSelect'} applies to this ticket's queue. + + my $Keyword = new RT::Keyword($self->CurrentUser); + unless ($Keyword->Load($args{'Keyword'}) ) { + $RT::Logger->err("$self Couldn't load Keyword ".$args{'Keyword'} ."\n"); + return(0, "Couldn't load keyword"); + } + + my $KeywordSelectObj = new RT::KeywordSelect($self->CurrentUser); + unless ($KeywordSelectObj->Load($args{'KeywordSelect'})) { + $RT::Logger->err("$self Couldn't load KeywordSelect ".$args{'KeywordSelect'}); + return(0, "Couldn't load keywordselect"); + } + + my $Keywords = $self->KeywordsObj($KeywordSelectObj->id); + + #If the ticket already has this keyword, just get out of here. + if ($Keywords->HasEntry($Keyword->id)) { + return(0, "That is already the current value"); + } + + #If the keywordselect wants this to be a singleton: + + if ($KeywordSelectObj->Single) { + + #Whack any old values...keep track of the last value that we get. + #we shouldn't need a loop ehre, but we do it anyway, to try to + # help keep the database clean. + while (my $OldKey = $Keywords->Next) { + $OldValue = $OldKey->KeywordObj->Name; + $OldKey->Delete(); + } + + + } + + # create the new objectkeyword + my $ObjectKeyword = new RT::ObjectKeyword($self->CurrentUser); + my $result = $ObjectKeyword->Create( Keyword => $Keyword->Id, + ObjectType => 'Ticket', + ObjectId => $self->Id, + KeywordSelect => $KeywordSelectObj->Id ); + + + # record a single transaction, unless we were told not to + unless ($args{'Silent'}) { + my ($TransactionId, $Msg, $TransactionObj) = + $self->_NewTransaction( Type => 'Keyword', + Field => $KeywordSelectObj->Id, + OldValue => $OldValue, + NewValue => $Keyword->Name ); + } + return ($TransactionId, "Keyword ".$ObjectKeyword->KeywordObj->Name ." added."); + +} + +# }}} + +# {{{ sub DeleteKeyword + +=head2 DeleteKeyword + + Takes a paramhash. Deletes the Keyword denoted by the I parameter from this + ticket's object keywords. + +=cut + +sub DeleteKeyword { + my $self = shift; + my %args = ( Keyword => undef, + KeywordSelect => undef, + @_ ); + + #ACL check + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, 'Permission Denied'); + } + + + #Load up the ObjectKeyword we\'re talking about + my $ObjectKeyword = new RT::ObjectKeyword($self->CurrentUser); + $ObjectKeyword->LoadByCols(Keyword => $args{'Keyword'}, + KeywordSelect => $args{'KeywordSelect'}, + ObjectType => 'Ticket', + ObjectId => $self->id() + ); + + #if we can\'t find it, bail + unless ($ObjectKeyword->id) { + $RT::Logger->err("Couldn't find the keyword ".$args{'Keyword'} . + " for keywordselect ". $args{'KeywordSelect'} . + "for ticket ".$self->id ); + return (undef, "Couldn't load keyword while trying to delete it."); + }; + + #record transaction here. + my ($TransactionId, $Msg, $TransObj) = + $self->_NewTransaction( Type => 'Keyword', + OldValue => $ObjectKeyword->KeywordObj->Name); + + $ObjectKeyword->Delete(); + + return ($TransactionId, "Keyword ".$ObjectKeyword->KeywordObj->Name ." deleted."); + +} + +# }}} + +# }}} + +# {{{ Routines dealing with ownership + +# {{{ sub OwnerObj + +=head2 OwnerObj + +Takes nothing and returns an RT::User object of +this ticket's owner + +=cut + +sub OwnerObj { + my $self = shift; + + #If this gets ACLed, we lose on a rights check in User.pm and + #get deep recursion. if we need ACLs here, we need + #an equiv without ACLs + + $owner = new RT::User ($self->CurrentUser); + $owner->Load($self->__Value('Owner')); + + #Return the owner object + return ($owner); +} + +# }}} + +# {{{ sub OwnerAsString + +=head2 OwnerAsString + +Returns the owner's email address + +=cut + +sub OwnerAsString { + my $self = shift; + return($self->OwnerObj->EmailAddress); + +} + +# }}} + +# {{{ sub SetOwner + +=head2 SetOwner + +Takes two arguments: + the Id or Name of the owner +and (optionally) the type of the SetOwner Transaction. It defaults +to 'Give'. 'Steal' is also a valid option. + +=cut + +sub SetOwner { + my $self = shift; + my $NewOwner = shift; + my $Type = shift || "Give"; + + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, "Permission Denied"); + } + + my $NewOwnerObj = RT::User->new($self->CurrentUser); + my $OldOwnerObj = $self->OwnerObj; + + $NewOwnerObj->Load($NewOwner); + if (!$NewOwnerObj->Id) { + return (0, "That user does not exist"); + } + + #If thie ticket has an owner and it's not the current user + + if (($Type ne 'Steal' ) and ($Type ne 'Force') and #If we're not stealing + ($self->OwnerObj->Id != $RT::Nobody->Id ) and #and the owner is set + ($self->CurrentUser->Id ne $self->OwnerObj->Id())) { #and it's not us + return(0, "You can only reassign tickets that you own or that are unowned"); + } + + #If we've specified a new owner and that user can't modify the ticket + elsif (($NewOwnerObj->Id) and + (!$NewOwnerObj->HasQueueRight(Right => 'OwnTicket', + QueueObj => $self->QueueObj, + TicketObj => $self)) + ) { + return (0, "That user may not own requests in that queue"); + } + + + #If the ticket has an owner and it's the new owner, we don't need + #To do anything + elsif (($self->OwnerObj) and ($NewOwnerObj->Id eq $self->OwnerObj->Id)) { + return(0, "That user already owns that request"); + } + + + my ($trans,$msg)=$self->_Set(Field => 'Owner', + Value => $NewOwnerObj->Id, + TimeTaken => 0, + TransactionType => $Type); + + if ($trans) { + $msg = "Owner changed from ".$OldOwnerObj->Name." to ".$NewOwnerObj->Name; + } + return ($trans, $msg); + +} + +# }}} + +# {{{ sub Take + +=head2 Take + +A convenince method to set the ticket's owner to the current user + +=cut + +sub Take { + my $self = shift; + return ($self->SetOwner($self->CurrentUser->Id, 'Take')); +} + +# }}} + +# {{{ sub Untake + +=head2 Untake + +Convenience method to set the owner to 'nobody' if the current user is the owner. + +=cut + +sub Untake { + my $self = shift; + return($self->SetOwner($RT::Nobody->UserObj->Id, 'Untake')); +} +# }}} + +# {{{ sub Steal + +=head2 Steal + +A convenience method to change the owner of the current ticket to the +current user. Even if it's owned by another user. + +=cut + +sub Steal { + my $self = shift; + + if ($self->IsOwner($self->CurrentUser)) { + return (0,"You already own this ticket"); + } else { + return($self->SetOwner($self->CurrentUser->Id, 'Steal')); + + } + +} + +# }}} + +# }}} + +# {{{ Routines dealing with status + +# {{{ sub ValidateStatus + +=head2 ValidateStatus STATUS + +Takes a string. Returns true if that status is a valid status for this ticket. +Returns false otherwise. + +=cut + +sub ValidateStatus { + my $self = shift; + my $status = shift; + + #Make sure the status passed in is valid + unless ($self->QueueObj->IsValidStatus($status)) { + return (undef); + } + + return (1); + +} + + +# }}} + +# {{{ sub SetStatus + +=head2 SetStatus STATUS + +Set this ticket\'s status. STATUS can be one of: new, open, stalled, resolved or dead. + +=cut + +sub SetStatus { + my $self = shift; + my $status = shift; + + #Check ACL + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, 'Permission Denied'); + } + + my $now = new RT::Date($self->CurrentUser); + $now->SetToNow(); + + #If we're changing the status from new, record that we've started + if (($self->Status =~ /new/) && ($status ne 'new')) { + #Set the Started time to "now" + $self->_Set(Field => 'Started', + Value => $now->ISO, + RecordTransaction => 0); + } + + + if ($status eq 'resolved') { + #When we resolve a ticket, set the 'Resolved' attribute to now. + $self->_Set(Field => 'Resolved', + Value => $now->ISO, + RecordTransaction => 0); + } + + + #Actually update the status + return($self->_Set(Field => 'Status', + Value => $status, + TimeTaken => 0, + TransactionType => 'Status')); +} + +# }}} + +# {{{ sub Kill + +=head2 Kill + +Takes no arguments. Marks this ticket for garbage collection + +=cut + +sub Kill { + my $self = shift; + return ($self->SetStatus('dead')); + # TODO: garbage collection +} + +# }}} + +# {{{ sub Stall + +=head2 Stall + +Sets this ticket's status to stalled + +=cut + +sub Stall { + my $self = shift; + return ($self->SetStatus('stalled')); +} + +# }}} + +# {{{ sub Open + +=head2 Open + +Sets this ticket\'s status to Open + +=cut + +sub Open { + my $self = shift; + return ($self->SetStatus('open')); +} + +# }}} + +# {{{ sub Resolve + +=head2 Resolve + +Sets this ticket\'s status to Resolved + +=cut + +sub Resolve { + my $self = shift; + return ($self->SetStatus('resolved')); +} + +# }}} + +# }}} + +# {{{ Actions + Routines dealing with transactions + +# {{{ sub SetTold and _SetTold + +=head2 SetTold ISO [TIMETAKEN] + +Updates the told and records a transaction + +=cut + +sub SetTold { + my $self=shift; + my $told; + $told = shift if (@_); + my $timetaken=shift || 0; + + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, "Permission Denied"); + } + + my $datetold = new RT::Date($self->CurrentUser); + if ($told) { + $datetold->Set( Format => 'iso', + Value => $told); + } + else { + $datetold->SetToNow(); + } + + return($self->_Set(Field => 'Told', + Value => $datetold->ISO, + TimeTaken => $timetaken, + TransactionType => 'Told')); +} + +=head2 _SetTold + +Updates the told without a transaction or acl check. Useful when we're sending replies. + +=cut + +sub _SetTold { + my $self=shift; + + my $now = new RT::Date($self->CurrentUser); + $now->SetToNow(); + #use __Set to get no ACLs ;) + return($self->__Set(Field => 'Told', + Value => $now->ISO)); +} + +# }}} + +# {{{ sub Transactions + +=head2 Transactions + + Returns an RT::Transactions object of all transactions on this ticket + +=cut + +sub Transactions { + my $self = shift; + + use RT::Transactions; + my $transactions = RT::Transactions->new($self->CurrentUser); + + #If the user has no rights, return an empty object + if ($self->CurrentUserHasRight('ShowTicket')) { + my $tickets = $transactions->NewAlias('Tickets'); + $transactions->Join( ALIAS1 => 'main', + FIELD1 => 'Ticket', + ALIAS2 => $tickets, + FIELD2 => 'id'); + $transactions->Limit( ALIAS => $tickets, + FIELD => 'EffectiveId', + VALUE => $self->id()); + # if the user may not see comments do not return them + unless ($self->CurrentUserHasRight('ShowTicketComments')) { + $transactions->Limit( FIELD => 'Type', + OPERATOR => '!=', + VALUE => "Comment"); + } + } + + return($transactions); +} + +# }}} + +# {{{ sub _NewTransaction + +sub _NewTransaction { + my $self = shift; + my %args = ( TimeTaken => 0, + Type => undef, + OldValue => undef, + NewValue => undef, + Data => undef, + Field => undef, + MIMEObj => undef, + @_ ); + + + require RT::Transaction; + my $trans = new RT::Transaction($self->CurrentUser); + my ($transaction, $msg) = + $trans->Create( Ticket => $self->Id, + TimeTaken => $args{'TimeTaken'}, + Type => $args{'Type'}, + Data => $args{'Data'}, + Field => $args{'Field'}, + NewValue => $args{'NewValue'}, + OldValue => $args{'OldValue'}, + MIMEObj => $args{'MIMEObj'} + ); + + $RT::Logger->warning($msg) unless $transaction; + + $self->_SetLastUpdated; + + if (defined $args{'TimeTaken'} ) { + $self->_UpdateTimeTaken($args{'TimeTaken'}); + } + return($transaction, $msg, $trans); +} + +# }}} + +# }}} + +# {{{ PRIVATE UTILITY METHODS. Mostly needed so Ticket can be a DBIx::Record + +# {{{ sub _ClassAccessible + +sub _ClassAccessible { + { + EffectiveId => { 'read' => 1, 'write' => 1, 'public' => 1 }, + Queue => { 'read' => 1, 'write' => 1 }, + Requestors => { 'read' => 1, 'write' => 1 }, + Owner => { 'read' => 1, 'write' => 1 }, + Subject => { 'read' => 1, 'write' => 1 }, + InitialPriority => { 'read' => 1, 'write' => 1 }, + FinalPriority => { 'read' => 1, 'write' => 1 }, + Priority => { 'read' => 1, 'write' => 1 }, + Status => { 'read' => 1, 'write' => 1 }, + TimeWorked => { 'read' => 1, 'write' => 1 }, + TimeLeft => { 'read' => 1, 'write' => 1 }, + Created => { 'read' => 1, 'auto' => 1 }, + Creator => { 'read' => 1, 'auto' => 1 }, + Told => { 'read' => 1, 'write' => 1 }, + Resolved => {'read' => 1}, + Starts => { 'read' => 1, 'write' => 1 }, + Started => { 'read' => 1, 'write' => 1 }, + Due => { 'read' => 1, 'write' => 1 }, + Creator => { 'read' => 1, 'auto' => 1 }, + Created => { 'read' => 1, 'auto' => 1 }, + LastUpdatedBy => { 'read' => 1, 'auto' => 1 }, + LastUpdated => { 'read' => 1, 'auto' => 1 } + }; + +} + +# }}} + +# {{{ sub _Set + +sub _Set { + my $self = shift; + + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return (0, "Permission Denied"); + } + + my %args = (Field => undef, + Value => undef, + TimeTaken => 0, + RecordTransaction => 1, + TransactionType => 'Set', + @_ + ); + #if the user is trying to modify the record + + #Take care of the old value we really don't want to get in an ACL loop. + # so ask the super::_Value + my $Old=$self->SUPER::_Value("$args{'Field'}"); + + #Set the new value + my ($ret, $msg)=$self->SUPER::_Set(Field => $args{'Field'}, + Value=> $args{'Value'}); + + #If we can't actually set the field to the value, don't record + # a transaction. instead, get out of here. + if ($ret==0) {return (0,$msg);} + + if ($args{'RecordTransaction'} == 1) { + + my ($Trans, $Msg, $TransObj) = + $self->_NewTransaction(Type => $args{'TransactionType'}, + Field => $args{'Field'}, + NewValue => $args{'Value'}, + OldValue => $Old, + TimeTaken => $args{'TimeTaken'}, + ); + return ($Trans,$TransObj->Description); + } + else { + return ($ret, $msg); + } +} + +# }}} + +# {{{ sub _Value + +=head2 _Value + +Takes the name of a table column. +Returns its value as a string, if the user passes an ACL check + +=cut + +sub _Value { + + my $self = shift; + my $field = shift; + + + #if the field is public, return it. + if ($self->_Accessible($field, 'public')) { + #$RT::Logger->debug("Skipping ACL check for $field\n"); + return($self->SUPER::_Value($field)); + + } + + #If the current user doesn't have ACLs, don't let em at it. + + unless ($self->CurrentUserHasRight('ShowTicket')) { + return (undef); + } + return($self->SUPER::_Value($field)); + +} + +# }}} + +# {{{ sub _UpdateTimeTaken + +=head2 _UpdateTimeTaken + +This routine will increment the timeworked counter. it should +only be called from _NewTransaction + +=cut + +sub _UpdateTimeTaken { + my $self = shift; + my $Minutes = shift; + my ($Total); + + $Total = $self->SUPER::_Value("TimeWorked"); + $Total = ($Total || 0) + ($Minutes || 0); + $self->SUPER::_Set(Field => "TimeWorked", + Value => $Total); + + return ($Total); +} + +# }}} + +# }}} + +# {{{ Routines dealing with ACCESS CONTROL + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight + + Takes the textual name of a Ticket scoped right (from RT::ACE) and returns +1 if the user has that right. It returns 0 if the user doesn't have that right. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + + return ($self->HasRight( Principal=> $self->CurrentUser->UserObj(), + Right => "$right")); + +} + +# }}} + +# {{{ sub HasRight + +=head2 HasRight + + Takes a paramhash with the attributes 'Right' and 'Principal' + 'Right' is a ticket-scoped textual right from RT::ACE + 'Principal' is an RT::User object + + Returns 1 if the principal has the right. Returns undef if not. + +=cut + +sub HasRight { + my $self = shift; + my %args = ( Right => undef, + Principal => undef, + @_); + + unless ((defined $args{'Principal'}) and (ref($args{'Principal'}))) { + $RT::Logger->warning("Principal attrib undefined for Ticket::HasRight"); + } + + return($args{'Principal'}->HasQueueRight(TicketObj => $self, + Right => $args{'Right'})); +} + +# }}} + +# }}} + + +1; + +=head1 AUTHOR + +Jesse Vincent, jesse@fsck.com + +=head1 SEE ALSO + +RT + +=cut + + diff --git a/rt/lib/RT/Tickets.pm b/rt/lib/RT/Tickets.pm new file mode 100755 index 000000000..dd91126c4 --- /dev/null +++ b/rt/lib/RT/Tickets.pm @@ -0,0 +1,1789 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Tickets.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Tickets - A collection of Ticket objects + + +=head1 SYNOPSIS + + use RT::Tickets; + my $tickets = new RT::Tickets($CurrentUser); + +=head1 DESCRIPTION + + A collection of RT::Tickets. + +=head1 METHODS + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Tickets); + +=end testing + +=cut + +package RT::Tickets; +use RT::EasySearch; +use RT::Ticket; +@ISA= qw(RT::EasySearch); + +use vars qw(%TYPES @SORTFIELDS); + +# {{{ TYPES + +%TYPES = ( Status => 'ENUM', + Queue => 'ENUM', + Type => 'ENUM', + Creator => 'ENUM', + LastUpdatedBy => 'ENUM', + Owner => 'ENUM', + EffectiveId => 'INT', + id => 'INT', + InitialPriority => 'INT', + FinalPriority => 'INT', + Priority => 'INT', + TimeLeft => 'INT', + TimeWorked => 'INT', + MemberOf => 'LINK', + DependsOn => 'LINK', + HasMember => 'LINK', + HasDepender => 'LINK', + RelatedTo => 'LINK', + Told => 'DATE', + StartsBy => 'DATE', + Started => 'DATE', + Due => 'DATE', + Resolved => 'DATE', + LastUpdated => 'DATE', + Created => 'DATE', + Subject => 'STRING', + Type => 'STRING', + Content => 'TRANSFIELD', + ContentType => 'TRANSFIELD', + TransactionDate => 'TRANSDATE', + Watcher => 'WATCHERFIELD', + LinkedTo => 'LINKFIELD', + Keyword => 'KEYWORDFIELD' + + ); + + +# }}} + +# {{{ sub SortFields + +@SORTFIELDS = qw(id Status Owner Created Due Starts Started + Queue Subject Told Started + Resolved LastUpdated Priority TimeWorked TimeLeft); + +=head2 SortFields + +Returns the list of fields that lists of tickets can easily be sorted by + +=cut + + +sub SortFields { + my $self = shift; + return(@SORTFIELDS); +} + + +# }}} + +# {{{ Limit the result set based on content + +# {{{ sub Limit + +=head2 Limit + +Takes a paramhash with the fields FIELD, OPERATOR, VALUE and DESCRIPTION +Generally best called from LimitFoo methods + +=cut +sub Limit { + my $self = shift; + my %args = ( FIELD => undef, + OPERATOR => '=', + VALUE => undef, + DESCRIPTION => undef, + @_ + ); + $args{'DESCRIPTION'} = "Autodescribed: ".$args{'FIELD'} . $args{'OPERATOR'} . $args{'VALUE'}, + if (!defined $args{'DESCRIPTION'}) ; + + my $index = $self->_NextIndex; + + #make the TicketRestrictions hash the equivalent of whatever we just passed in; + + %{$self->{'TicketRestrictions'}{$index}} = %args; + + $self->{'RecalcTicketLimits'} = 1; + + # If we're looking at the effective id, we don't want to append the other clause + # which limits us to tickets where id = effective id + if ($args{'FIELD'} eq 'EffectiveId') { + $self->{'looking_at_effective_id'} = 1; + } + + return ($index); +} + +# }}} + + + + +=head2 FreezeLimits + +Returns a frozen string suitable for handing back to ThawLimits. + +=cut +# {{{ sub FreezeLimits + +sub FreezeLimits { + my $self = shift; + require FreezeThaw; + return (FreezeThaw::freeze($self->{'TicketRestrictions'}, + $self->{'restriction_index'} + )); +} + +# }}} + +=head2 ThawLimits + +Take a frozen Limits string generated by FreezeLimits and make this tickets +object have that set of limits. + +=cut +# {{{ sub ThawLimits + +sub ThawLimits { + my $self = shift; + my $in = shift; + + #if we don't have $in, get outta here. + return undef unless ($in); + + $self->{'RecalcTicketLimits'} = 1; + + require FreezeThaw; + + #We don't need to die if the thaw fails. + + eval { + ($self->{'TicketRestrictions'}, + $self->{'restriction_index'} + ) = FreezeThaw::thaw($in); + } + +} + +# }}} + +# {{{ Limit by enum or foreign key + +# {{{ sub LimitQueue + +=head2 LimitQueue + +LimitQueue takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of = or !=. (It defaults to =). +VALUE is a queue id. + +=cut + +sub LimitQueue { + my $self = shift; + my %args = (VALUE => undef, + OPERATOR => '=', + @_); + + #TODO VALUE should also take queue names and queue objects + my $queue = new RT::Queue($self->CurrentUser); + $queue->Load($args{'VALUE'}); + + #TODO check for a valid queue here + + $self->Limit (FIELD => 'Queue', + VALUE => $queue->id(), + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Queue ' . $args{'OPERATOR'}. " ". $queue->Name + ); + +} +# }}} + +# {{{ sub LimitStatus + +=head2 LimitStatus + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of = or !=. +VALUE is a status. + +=cut + +sub LimitStatus { + my $self = shift; + my %args = ( OPERATOR => '=', + @_); + $self->Limit (FIELD => 'Status', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Status ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, + ); +} + +# }}} + +# {{{ sub LimitType + +=head2 LimitType + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of = or !=, it defaults to "=". +VALUE is a string to search for in the type of the ticket. + +=cut + +sub LimitType { + my $self = shift; + my %args = (OPERATOR => '=', + VALUE => undef, + @_); + $self->Limit (FIELD => 'Type', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Type ' . $args{'OPERATOR'}. " ". $args{'Limit'}, + ); +} + +# }}} + +# }}} + +# {{{ Limit by string field + +# {{{ sub LimitSubject + +=head2 LimitSubject + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of = or !=. +VALUE is a string to search for in the subject of the ticket. + +=cut + +sub LimitSubject { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'Subject', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Subject ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, + ); +} + +# }}} + +# }}} + +# {{{ Limit based on ticket numerical attributes +# Things that can be > < = != + +# {{{ sub LimitId + +=head2 LimitId + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a ticket Id to search for + +=cut + +sub LimitId { + my $self = shift; + my %args = (OPERATOR => '=', + @_); + + $self->Limit (FIELD => 'id', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Id ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, + ); +} + +# }}} + +# {{{ sub LimitPriority + +=head2 LimitPriority + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a value to match the ticket\'s priority against + +=cut + +sub LimitPriority { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'Priority', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Priority ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, + ); +} + +# }}} + +# {{{ sub LimitInitialPriority + +=head2 LimitInitialPriority + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a value to match the ticket\'s initial priority against + + +=cut + +sub LimitInitialPriority { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'InitialPriority', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Initial Priority ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, + ); +} + +# }}} + +# {{{ sub LimitFinalPriority + +=head2 LimitFinalPriority + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a value to match the ticket\'s final priority against + +=cut + +sub LimitFinalPriority { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'FinalPriority', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Final Priority ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, + ); +} + +# }}} + +# {{{ sub LimitTimeWorked + +=head2 LimitTimeWorked + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a value to match the ticket's TimeWorked attribute + +=cut + +sub LimitTimeWorked { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'TimeWorked', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Time worked ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, + ); +} + +# }}} + +# {{{ sub LimitTimeLeft + +=head2 LimitTimeLeft + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a value to match the ticket's TimeLeft attribute + +=cut + +sub LimitTimeLeft { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'TimeLeft', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Time left ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, + ); +} + +# }}} + +# }}} + +# {{{ Limiting based on attachment attributes + +# {{{ sub LimitContent + +=head2 LimitContent + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, LIKE, NOT LIKE or !=. +VALUE is a string to search for in the body of the ticket + +=cut +sub LimitContent { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'Content', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Ticket content ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, + ); +} + +# }}} +# {{{ sub LimitContentType + +=head2 LimitContentType + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, LIKE, NOT LIKE or !=. +VALUE is a content type to search ticket attachments for + +=cut + +sub LimitContentType { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'ContentType', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Ticket content type ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, + ); +} +# }}} + +# }}} + +# {{{ Limiting based on people + +# {{{ sub LimitOwner + +=head2 LimitOwner + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of = or !=. +VALUE is a user id. + +=cut + +sub LimitOwner { + my $self = shift; + my %args = ( OPERATOR => '=', + @_); + + my $owner = new RT::User($self->CurrentUser); + $owner->Load($args{'VALUE'}); + $self->Limit (FIELD => 'Owner', + VALUE => $owner->Id, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => 'Owner ' . $args{'OPERATOR'}. " ". $owner->Name() + ); + +} + +# }}} + +# {{{ Limiting watchers + +# {{{ sub LimitWatcher + + +=head2 LimitWatcher + + Takes a paramhash with the fields OPERATOR, TYPE and VALUE. + OPERATOR is one of =, LIKE, NOT LIKE or !=. + VALUE is a value to match the ticket\'s watcher email addresses against + TYPE is the sort of watchers you want to match against. Leave it undef if you want to search all of them + +=cut + +sub LimitWatcher { + my $self = shift; + my %args = ( OPERATOR => '=', + VALUE => undef, + TYPE => undef, + @_); + + + #build us up a description + my ($watcher_type, $desc); + if ($args{'TYPE'}) { + $watcher_type = $args{'TYPE'}; + } + else { + $watcher_type = "Watcher"; + } + $desc = "$watcher_type ".$args{'OPERATOR'}." ".$args{'VALUE'}; + + + $self->Limit (FIELD => 'Watcher', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + TYPE => $args{'TYPE'}, + DESCRIPTION => "$desc" + ); +} + +# }}} + +# {{{ sub LimitRequestor + +=head2 LimitRequestor + +It\'s like LimitWatcher, but it presets TYPE to Requestor + +=cut + + +sub LimitRequestor { + my $self = shift; + $self->LimitWatcher(TYPE=> 'Requestor', @_); +} + +# }}} + +# {{{ sub LimitCc + +=head2 LimitCC + +It\'s like LimitWatcher, but it presets TYPE to Cc + +=cut + +sub LimitCc { + my $self = shift; + $self->LimitWatcher(TYPE=> 'Cc', @_); +} + +# }}} + +# {{{ sub LimitAdminCc + +=head2 LimitAdminCc + +It\'s like LimitWatcher, but it presets TYPE to AdminCc + +=cut + +sub LimitAdminCc { + my $self = shift; + $self->LimitWatcher(TYPE=> 'AdminCc', @_); +} + +# }}} + +# }}} + +# }}} + +# {{{ Limiting based on links + +# {{{ LimitLinkedTo + +=head2 LimitLinkedTo + +LimitLinkedTo takes a paramhash with two fields: TYPE and TARGET +TYPE limits the sort of relationship we want to search on + +TARGET is the id or URI of the TARGET of the link +(TARGET used to be 'TICKET'. 'TICKET' is deprecated, but will be treated as TARGET + +=cut + +sub LimitLinkedTo { + my $self = shift; + my %args = ( + TICKET => undef, + TARGET => undef, + TYPE => undef, + @_); + + + $self->Limit( FIELD => 'LinkedTo', + BASE => undef, + TARGET => ($args{'TARGET'} || $args{'TICKET'}), + TYPE => $args{'TYPE'}, + DESCRIPTION => "Tickets ".$args{'TYPE'}." by ".($args{'TARGET'} || $args{'TICKET'}) + ); +} + + +# }}} + +# {{{ LimitLinkedFrom + +=head2 LimitLinkedFrom + +LimitLinkedFrom takes a paramhash with two fields: TYPE and BASE +TYPE limits the sort of relationship we want to search on + + +BASE is the id or URI of the BASE of the link +(BASE used to be 'TICKET'. 'TICKET' is deprecated, but will be treated as BASE + + +=cut + +sub LimitLinkedFrom { + my $self = shift; + my %args = ( BASE => undef, + TICKET => undef, + TYPE => undef, + @_); + + + $self->Limit( FIELD => 'LinkedTo', + TARGET => undef, + BASE => ($args{'BASE'} || $args{'TICKET'}), + TYPE => $args{'TYPE'}, + DESCRIPTION => "Tickets " .($args{'BASE'} || $args{'TICKET'}) ." ".$args{'TYPE'} + ); +} + + +# }}} + +# {{{ LimitMemberOf +sub LimitMemberOf { + my $self = shift; + my $ticket_id = shift; + $self->LimitLinkedTo ( TARGET=> "$ticket_id", + TYPE => 'MemberOf', + ); + +} +# }}} + +# {{{ LimitHasMember +sub LimitHasMember { + my $self = shift; + my $ticket_id =shift; + $self->LimitLinkedFrom ( BASE => "$ticket_id", + TYPE => 'MemberOf', + ); + +} +# }}} + +# {{{ LimitDependsOn + +sub LimitDependsOn { + my $self = shift; + my $ticket_id = shift; + $self->LimitLinkedTo ( TARGET => "$ticket_id", + TYPE => 'DependsOn', + ); + +} + +# }}} + +# {{{ LimitDependedOnBy + +sub LimitDependedOnBy { + my $self = shift; + my $ticket_id = shift; + $self->LimitLinkedFrom ( BASE => "$ticket_id", + TYPE => 'DependsOn', + ); + +} + +# }}} + + +# {{{ LimitRefersTo + +sub LimitRefersTo { + my $self = shift; + my $ticket_id = shift; + $self->LimitLinkedTo ( TARGET => "$ticket_id", + TYPE => 'RefersTo', + ); + +} + +# }}} + +# {{{ LimitReferredToBy + +sub LimitReferredToBy { + my $self = shift; + my $ticket_id = shift; + $self->LimitLinkedFrom ( BASE=> "$ticket_id", + TYPE => 'RefersTo', + ); + +} + +# }}} + +# }}} + +# {{{ limit based on ticket date attribtes + +# {{{ sub LimitDate + +=head2 LimitDate (FIELD => 'DateField', OPERATOR => $oper, VALUE => $ISODate) + +Takes a paramhash with the fields FIELD OPERATOR and VALUE. + +OPERATOR is one of > or < +VALUE is a date and time in ISO format in GMT +FIELD is one of Starts, Started, Told, Created, Resolved, LastUpdated + +There are also helper functions of the form LimitFIELD that eliminate +the need to pass in a FIELD argument. + +=cut + +sub LimitDate { + my $self = shift; + my %args = ( + FIELD => undef, + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + + @_); + + #Set the description if we didn't get handed it above + unless ($args{'DESCRIPTION'} ) { + $args{'DESCRIPTION'} = $args{'FIELD'} . " " .$args{'OPERATOR'}. " ". $args{'VALUE'} . " GMT" + } + + $self->Limit (%args); + +} + +# }}} + + + + +sub LimitCreated { + my $self = shift; + $self->LimitDate( FIELD => 'Created', @_); +} +sub LimitDue { + my $self = shift; + $self->LimitDate( FIELD => 'Due', @_); + +} +sub LimitStarts { + my $self = shift; + $self->LimitDate( FIELD => 'Starts', @_); + +} +sub LimitStarted { + my $self = shift; + $self->LimitDate( FIELD => 'Started', @_); +} +sub LimitResolved { + my $self = shift; + $self->LimitDate( FIELD => 'Resolved', @_); +} +sub LimitTold { + my $self = shift; + $self->LimitDate( FIELD => 'Told', @_); +} +sub LimitLastUpdated { + my $self = shift; + $self->LimitDate( FIELD => 'LastUpdated', @_); +} +# +# {{{ sub LimitTransactionDate + +=head2 LimitTransactionDate (OPERATOR => $oper, VALUE => $ISODate) + +Takes a paramhash with the fields FIELD OPERATOR and VALUE. + +OPERATOR is one of > or < +VALUE is a date and time in ISO format in GMT + + +=cut + +sub LimitTransactionDate { + my $self = shift; + my %args = ( + FIELD => 'TransactionDate', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + + @_); + + #Set the description if we didn't get handed it above + unless ($args{'DESCRIPTION'} ) { + $args{'DESCRIPTION'} = $args{'FIELD'} . " " .$args{'OPERATOR'}. " ". $args{'VALUE'} . " GMT" + } + + $self->Limit (%args); + +} + +# }}} + +# }}} + +# {{{ sub LimitKeyword + +=head2 LimitKeyword + +Takes a paramhash of key/value pairs with the following keys: + +=over 4 + +=item KEYWORDSELECT - KeywordSelect id + +=item OPERATOR - (for KEYWORD only - KEYWORDSELECT operator is always `=') + +=item KEYWORD - Keyword id + +=back + +=cut + +sub LimitKeyword { + my $self = shift; + my %args = ( KEYWORD => undef, + KEYWORDSELECT => undef, + OPERATOR => '=', + DESCRIPTION => undef, + FIELD => 'Keyword', + QUOTEVALUE => 1, + @_ + ); + + use RT::KeywordSelect; + my $KeywordSelect = RT::KeywordSelect->new($self->CurrentUser); + $KeywordSelect->Load($args{KEYWORDSELECT}); + + + # Below, We're checking to see whether the keyword we're searching for + # is null or not. + # This could probably be rewritten to be easier to read and understand + + + #If we are looking to compare with a null value. + if ($args{'OPERATOR'} =~ /is/i) { + if ($args{'OPERATOR'} =~ /^is$/i) { + $args{'DESCRIPTION'} ||= "Keyword Selection ". $KeywordSelect->Name . " has no value"; + } + elsif ($args{'OPERATOR'} =~ /^is not$/i) { + $args{'DESCRIPTION'} ||= "Keyword Selection ". $KeywordSelect->Name . " has a value"; + } + } + # if we're not looking to compare with a null value + else { + use RT::Keyword; + my $Keyword = RT::Keyword->new($self->CurrentUser); + $Keyword->Load($args{KEYWORD}); + $args{'DESCRIPTION'} ||= "Keyword Selection " . $KeywordSelect->Name. " $args{OPERATOR} ". $Keyword->Name; + } + + $args{SingleValued} = $KeywordSelect->Single(); + + + my $index = $self->_NextIndex; + %{$self->{'TicketRestrictions'}{$index}} = %args; + + $self->{'RecalcTicketLimits'} = 1; + return ($index); +} + +# }}} + +# {{{ sub _NextIndex + +=head2 _NextIndex + +Keep track of the counter for the array of restrictions + +=cut + +sub _NextIndex { + my $self = shift; + return ($self->{'restriction_index'}++); +} +# }}} + +# }}} + +# {{{ Core bits to make this a DBIx::SearchBuilder object + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Tickets"; + $self->{'RecalcTicketLimits'} = 1; + $self->{'looking_at_effective_id'} = 0; + $self->{'restriction_index'} =1; + $self->{'primary_key'} = "id"; + $self->SUPER::_Init(@_); + +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + return(RT::Ticket->new($self->CurrentUser)); + +} +# }}} + +# {{{ sub Count +sub Count { + my $self = shift; + $self->_ProcessRestrictions if ($self->{'RecalcTicketLimits'} == 1 ); + return($self->SUPER::Count()); +} +# }}} + +# {{{ sub ItemsArrayRef + +=head2 ItemsArrayRef + +Returns a reference to the set of all items found in this search + +=cut + +sub ItemsArrayRef { + my $self = shift; + my @items; + + my $placeholder = $self->_ItemsCounter; + $self->GotoFirstItem(); + while (my $item = $self->Next) { + push (@items, $item); + } + + $self->GotoItem($placeholder); + return(\@items); +} +# }}} + +# {{{ sub Next +sub Next { + my $self = shift; + + $self->_ProcessRestrictions if ($self->{'RecalcTicketLimits'} == 1 ); + + my $Ticket = $self->SUPER::Next(); + if ((defined($Ticket)) and (ref($Ticket))) { + + #Make sure we _never_ show dead tickets + #TODO we should be doing this in the where clause. + #but you can't do multiple clauses on the same field just yet :/ + + if ($Ticket->Status eq 'dead') { + return($self->Next()); + } + elsif ($Ticket->CurrentUserHasRight('ShowTicket')) { + return($Ticket); + } + + #If the user doesn't have the right to show this ticket + else { + return($self->Next()); + } + } + #if there never was any ticket + else { + return(undef); + } + +} +# }}} + +# }}} + +# {{{ Deal with storing and restoring restrictions + +# {{{ sub LoadRestrictions + +=head2 LoadRestrictions + +LoadRestrictions takes a string which can fully populate the TicketRestrictons hash. +TODO It is not yet implemented + +=cut + +# }}} + +# {{{ sub DescribeRestrictions + +=head2 DescribeRestrictions + +takes nothing. +Returns a hash keyed by restriction id. +Each element of the hash is currently a one element hash that contains DESCRIPTION which +is a description of the purpose of that TicketRestriction + +=cut + +sub DescribeRestrictions { + my $self = shift; + + my ($row, %listing); + + foreach $row (keys %{$self->{'TicketRestrictions'}}) { + $listing{$row} = $self->{'TicketRestrictions'}{$row}{'DESCRIPTION'}; + } + return (%listing); +} +# }}} + +# {{{ sub RestrictionValues + +=head2 RestrictionValues FIELD + +Takes a restriction field and returns a list of values this field is restricted +to. + +=cut + +sub RestrictionValues { + my $self = shift; + my $field = shift; + map $self->{'TicketRestrictions'}{$_}{'VALUE'}, + grep { + $self->{'TicketRestrictions'}{$_}{'FIELD'} eq $field + && $self->{'TicketRestrictions'}{$_}{'OPERATOR'} eq "=" + } + keys %{$self->{'TicketRestrictions'}}; +} + +# }}} + +# {{{ sub ClearRestrictions + +=head2 ClearRestrictions + +Removes all restrictions irretrievably + +=cut + +sub ClearRestrictions { + my $self = shift; + delete $self->{'TicketRestrictions'}; + $self->{'looking_at_effective_id'} = 0; + $self->{'RecalcTicketLimits'} =1; +} + +# }}} + +# {{{ sub DeleteRestriction + +=head2 DeleteRestriction + +Takes the row Id of a restriction (From DescribeRestrictions' output, for example. +Removes that restriction from the session's limits. + +=cut + + +sub DeleteRestriction { + my $self = shift; + my $row = shift; + delete $self->{'TicketRestrictions'}{$row}; + + $self->{'RecalcTicketLimits'} = 1; + #make the underlying easysearch object forget all its preconceptions +} + +# }}} + +# {{{ sub _ProcessRestrictions + +sub _ProcessRestrictions { + my $self = shift; + + #Need to clean the EasySearch slate because it makes things too sticky + $self->CleanSlate(); + + #Blow away ticket aliases since we'll need to regenerate them for a new search + delete $self->{'TicketAliases'}; + delete $self->{KeywordsAliases}; + + my $row; + + foreach $row (keys %{$self->{'TicketRestrictions'}}) { + my $restriction = $self->{'TicketRestrictions'}{$row}; + # {{{ if it's an int + + if ($TYPES{$restriction->{'FIELD'}} eq 'INT' ) { + if ($restriction->{'OPERATOR'} =~ /^(=|!=|>|<|>=|<=)$/) { + $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, + ENTRYAGGREGATOR => 'AND', + OPERATOR => $restriction->{'OPERATOR'}, + VALUE => $restriction->{'VALUE'}, + ); + } + } + # }}} + # {{{ if it's an enum + elsif ($TYPES{$restriction->{'FIELD'}} eq 'ENUM') { + + if ($restriction->{'OPERATOR'} eq '=') { + $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, + ENTRYAGGREGATOR => 'OR', + OPERATOR => '=', + VALUE => $restriction->{'VALUE'}, + ); + } + elsif ($restriction->{'OPERATOR'} eq '!=') { + $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, + ENTRYAGGREGATOR => 'AND', + OPERATOR => '!=', + VALUE => $restriction->{'VALUE'}, + ); + } + + } + # }}} + # {{{ if it's a date + + elsif ($TYPES{$restriction->{'FIELD'}} eq 'DATE') { + $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, + ENTRYAGGREGATOR => 'AND', + OPERATOR => $restriction->{'OPERATOR'}, + VALUE => $restriction->{'VALUE'}, + ); + } + # }}} + # {{{ if it's a string + + elsif ($TYPES{$restriction->{'FIELD'}} eq 'STRING') { + + if ($restriction->{'OPERATOR'} eq '=') { + $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, + ENTRYAGGREGATOR => 'OR', + OPERATOR => '=', + VALUE => $restriction->{'VALUE'}, + CASESENSITIVE => 0 + ); + } + elsif ($restriction->{'OPERATOR'} eq '!=') { + $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, + ENTRYAGGREGATOR => 'AND', + OPERATOR => '!=', + VALUE => $restriction->{'VALUE'}, + CASESENSITIVE => 0 + ); + } + elsif ($restriction->{'OPERATOR'} eq 'LIKE') { + $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, + ENTRYAGGREGATOR => 'AND', + OPERATOR => 'LIKE', + VALUE => $restriction->{'VALUE'}, + CASESENSITIVE => 0 + ); + } + elsif ($restriction->{'OPERATOR'} eq 'NOT LIKE') { + $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, + ENTRYAGGREGATOR => 'AND', + OPERATOR => 'NOT LIKE', + VALUE => $restriction->{'VALUE'}, + CASESENSITIVE => 0 + ); + } + } + + # }}} + # {{{ if it's Transaction content that we're hunting for + elsif ($TYPES{$restriction->{'FIELD'}} eq 'TRANSFIELD') { + + #Basically, we want to make sure that the limits apply to the same attachment, + #rather than just another attachment for the same ticket, no matter how many + #clauses we lump on. + #We put them in TicketAliases so that they get nuked when we redo the join. + + unless (defined $self->{'TicketAliases'}{'TransFieldAlias'}) { + $self->{'TicketAliases'}{'TransFieldAlias'} = $self->NewAlias ('Transactions'); + } + unless (defined $self->{'TicketAliases'}{'TransFieldAttachAlias'}){ + $self->{'TicketAliases'}{'TransFieldAttachAlias'} = $self->NewAlias('Attachments'); + + } + #Join transactions to attachments + $self->Join( ALIAS1 => $self->{'TicketAliases'}{'TransFieldAttachAlias'}, + FIELD1 => 'TransactionId', + ALIAS2 => $self->{'TicketAliases'}{'TransFieldAlias'}, FIELD2=> 'id'); + + #Join transactions to tickets + $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, + ALIAS2 =>$self->{'TicketAliases'}{'TransFieldAlias'}, FIELD2 => 'Ticket'); + + #Search for the right field + $self->SUPER::Limit(ALIAS => $self->{'TicketAliases'}{'TransFieldAttachAlias'}, + ENTRYAGGREGATOR => 'AND', + FIELD => $restriction->{'FIELD'}, + OPERATOR => $restriction->{'OPERATOR'} , + VALUE => $restriction->{'VALUE'}, + CASESENSITIVE => 0 + ); + + + } + + # }}} + # {{{ if it's a Transaction date that we're hunting for + elsif ($TYPES{$restriction->{'FIELD'}} eq 'TRANSDATE') { + + #Basically, we want to make sure that the limits apply to the same attachment, + #rather than just another attachment for the same ticket, no matter how many + #clauses we lump on. + #We put them in TicketAliases so that they get nuked when we redo the join. + + unless (defined $self->{'TicketAliases'}{'TransFieldAlias'}) { + $self->{'TicketAliases'}{'TransFieldAlias'} = $self->NewAlias ('Transactions'); + } + + #Join transactions to tickets + $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, + ALIAS2 =>$self->{'TicketAliases'}{'TransFieldAlias'}, FIELD2 => 'Ticket'); + + #Search for the right field + $self->SUPER::Limit(ALIAS => $self->{'TicketAliases'}{'TransFieldAlias'}, + ENTRYAGGREGATOR => 'AND', + FIELD => 'Created', + OPERATOR => $restriction->{'OPERATOR'} , + VALUE => $restriction->{'VALUE'} ); + } + + # }}} + # {{{ if it's a relationship that we're hunting for + + # Takes FIELD: which is something like "LinkedTo" + # takes TARGET or BASE which is the TARGET or BASE id that we're searching for + # takes TYPE which is the type of link we're looking for. + + elsif ($TYPES{$restriction->{'FIELD'}} eq 'LINKFIELD') { + + + my $LinkAlias = $self->NewAlias ('Links'); + + + #Make sure we get the right type of link, if we're restricting it + if ($restriction->{'TYPE'}) { + $self->SUPER::Limit(ALIAS => $LinkAlias, + ENTRYAGGREGATOR => 'AND', + FIELD => 'Type', + OPERATOR => '=', + VALUE => $restriction->{'TYPE'} ); + } + + #If we're trying to limit it to things that are target of + if ($restriction->{'TARGET'}) { + + + # If the TARGET is an integer that means that we want to look at the LocalTarget + # field. otherwise, we want to look at the "Target" field + + my ($matchfield); + if ($restriction->{'TARGET'} =~/^(\d+)$/) { + $matchfield = "LocalTarget"; + } + else { + $matchfield = "Target"; + } + + $self->SUPER::Limit(ALIAS => $LinkAlias, + ENTRYAGGREGATOR => 'AND', + FIELD => $matchfield, + OPERATOR => '=', + VALUE => $restriction->{'TARGET'} ); + + + #If we're searching on target, join the base to ticket.id + $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, + ALIAS2 => $LinkAlias, + FIELD2 => 'LocalBase'); + + + + + } + #If we're trying to limit it to things that are base of + elsif ($restriction->{'BASE'}) { + + + # If we're trying to match a numeric link, we want to look at LocalBase, + # otherwise we want to look at "Base" + + my ($matchfield); + if ($restriction->{'BASE'} =~/^(\d+)$/) { + $matchfield = "LocalBase"; + } + else { + $matchfield = "Base"; + } + + + $self->SUPER::Limit(ALIAS => $LinkAlias, + ENTRYAGGREGATOR => 'AND', + FIELD => $matchfield, + OPERATOR => '=', + VALUE => $restriction->{'BASE'} ); + + #If we're searching on base, join the target to ticket.id + $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, + ALIAS2 => $LinkAlias, + FIELD2 => 'LocalTarget'); + + } + + } + + # }}} + # {{{ if it's a watcher that we're hunting for + elsif ($TYPES{$restriction->{'FIELD'}} eq 'WATCHERFIELD') { + + my $Watch = $self->NewAlias('Watchers'); + + #Join watchers to users + my $User = $self->Join( TYPE => 'left', + ALIAS1 => $Watch, + FIELD1 => 'Owner', + TABLE2 => 'Users', + FIELD2 => 'id', + ); + + #Join Ticket to watchers + $self->Join( ALIAS1 => 'main', FIELD1 => 'id', + ALIAS2 => $Watch, FIELD2 => 'Value'); + + + #Make sure we're only talking about ticket watchers + $self->SUPER::Limit( ALIAS => $Watch, + FIELD => 'Scope', + VALUE => 'Ticket', + OPERATOR => '='); + + + # Find email address watchers + $self->SUPER::Limit( SUBCLAUSE => 'WatcherEmailAddress', + ALIAS => $Watch, + FIELD => 'Email', + ENTRYAGGREGATOR => 'OR', + VALUE => $restriction->{'VALUE'}, + OPERATOR => $restriction->{'OPERATOR'}, + CASESENSITIVE => 0 + ); + + + + #Find user watchers + $self->SUPER::Limit( + SUBCLAUSE => 'WatcherEmailAddress', + ALIAS => $User, + FIELD => 'EmailAddress', + ENTRYAGGREGATOR => 'OR', + VALUE => $restriction->{'VALUE'}, + OPERATOR => $restriction->{'OPERATOR'}, + CASESENSITIVE => 0 + ); + + + #If we only want a specific type of watchers, then limit it to that + if ($restriction->{'TYPE'}) { + $self->SUPER::Limit( ALIAS => $Watch, + FIELD => 'Type', + ENTRYAGGREGATOR => 'OR', + VALUE => $restriction->{'TYPE'}, + OPERATOR => '='); + } + } + + # }}} + # {{{ if it's a keyword + elsif ($TYPES{$restriction->{'FIELD'}} eq 'KEYWORDFIELD') { + + my $null_columns_ok; + + my $ObjKeywordsAlias; + $ObjKeywordsAlias = $self->{KeywordsAliases}{$restriction->{'KEYWORDSELECT'}} + if $restriction->{SingleValued}; + unless (defined $ObjKeywordsAlias) { + $ObjKeywordsAlias = $self->Join( + TYPE => 'left', + ALIAS1 => 'main', + FIELD1 => 'id', + TABLE2 => 'ObjectKeywords', + FIELD2 => 'ObjectId' + ); + if ($restriction->{'SingleValued'}) { + $self->{KeywordsAliases}{$restriction->{'KEYWORDSELECT'}} + = $ObjKeywordsAlias; + } + } + + + $self->SUPER::Limit( + ALIAS => $ObjKeywordsAlias, + FIELD => 'Keyword', + OPERATOR => $restriction->{'OPERATOR'}, + VALUE => $restriction->{'KEYWORD'}, + QUOTEVALUE => $restriction->{'QUOTEVALUE'}, + ENTRYAGGREGATOR => 'OR', + ); + + if ( ($restriction->{'OPERATOR'} =~ /^IS$/i) or + ($restriction->{'OPERATOR'} eq '!=') ) { + + $null_columns_ok=1; + + } + + #If we're trying to find tickets where the keyword isn't somethng, also check ones where it _IS_ null + if ( $restriction->{'OPERATOR'} eq '!=') { + $self->SUPER::Limit( + ALIAS => $ObjKeywordsAlias, + FIELD => 'Keyword', + OPERATOR => 'IS', + VALUE => 'NULL', + QUOTEVALUE => 0, + ENTRYAGGREGATOR => 'OR', + ); + } + + + $self->SUPER::Limit(LEFTJOIN => $ObjKeywordsAlias, + FIELD => 'KeywordSelect', + VALUE => $restriction->{'KEYWORDSELECT'}, + ENTRYAGGREGATOR => 'OR'); + + + + $self->SUPER::Limit( ALIAS => $ObjKeywordsAlias, + FIELD => 'ObjectType', + VALUE => 'Ticket', + ENTRYAGGREGATOR => 'AND'); + + if ($null_columns_ok) { + $self->SUPER::Limit(ALIAS => $ObjKeywordsAlias, + FIELD => 'ObjectType', + OPERATOR => 'IS', + VALUE => 'NULL', + QUOTEVALUE => 0, + ENTRYAGGREGATOR => 'OR'); + } + + } + # }}} + + + } + + + # here, we make sure we don't get any tickets that have been merged into other tickets + # (Ticket Id == Ticket EffectiveId + # note that we _really_ don't want to do this if we're already looking at the effectiveid + if ($self->_isLimited && (! $self->{'looking_at_effective_id'})) { + $self->SUPER::Limit( FIELD => 'EffectiveId', + OPERATOR => '=', + QUOTEVALUE => 0, + VALUE => 'main.id'); #TODO, we shouldn't be hard coding the tablename to main. + } + $self->{'RecalcTicketLimits'} = 0; +} + +# }}} + +# }}} + +# {{{ Deal with displaying rows of the listing + +# +# Everything in this section is stub code for 2.2 +# It's not part of the API. It's not for your use +# It's not for our use. +# + + +# {{{ sub SetListingFormat + +=head2 SetListingFormat + +Takes a single Format string as specified below. parses that format string and makes the various listing output +things DTRT. + +=item Format strings + +Format strings are made up of a chain of Elements delimited with vertical pipes (|). +Elements of a Format string + + +FormatString: Element[::FormatString] + +Element: AttributeName[;HREF=][;TITLE=] + +AttributeName Id | Subject | Status | Owner | Priority | InitialPriority | TimeWorked | TimeLeft | + + Keywords[;SELECT=<KeywordSelect>] | + + <Created|Starts|Started|Contacted|Due|Resolved>Date<AsString|AsISO|AsAge> + + +=cut + + + + +#accept a format string + + + +sub SetListingFormat { + my $self = shift; + my $listing_format = shift; + + my ($element, $attribs); + my $i = 0; + foreach $element (split (/::/,$listing_format)) { + if ($element =~ /^(.*?);(.*)$/) { + $element = $1; + $attribs = $2; + } + $self->{'format_string'}->[$i]->{'Element'} = $element; + foreach $attrib (split (/;/, $attribs)) { + my $value = ""; + if ($attrib =~ /^(.*?)=(.*)$/) { + $attrib = $1; + $value = $2; + } + $self->{'format_string'}->[$i]->{"$attrib"} = $val; + + } + + } + return(1); +} + +# }}} + +# {{{ sub HeaderAsHTML +sub HeaderAsHTML { + my $self = shift; + my $header = ""; + my $col; + foreach $col ( @{[ $self->{'format_string'} ]}) { + $header .= "<TH>" . $self->_ColumnTitle($self->{'format_string'}->[$col]) . "</TH>"; + + } + return ($header); +} +# }}} + +# {{{ sub HeaderAsText +#Print text header +sub HeaderAsText { + my $self = shift; + my ($header); + + return ($header); +} +# }}} + +# {{{ sub TicketAsHTMLRow +#Print HTML row +sub TicketAsHTMLRow { + my $self = shift; + my $Ticket = shift; + my ($row, $col); + foreach $col (@{[$self->{'format_string'}]}) { + $row .= "<TD>" . $self->_TicketColumnValue($ticket,$self->{'format_string'}->[$col]) . "</TD>"; + + } + return ($row); +} +# }}} + +# {{{ sub TicketAsTextRow +#Print text row +sub TicketAsTextRow { + my $self = shift; + my ($row); + + #TODO implement + + return ($row); +} +# }}} + +# {{{ _ColumnTitle { + +sub _ColumnTitle { + my $self = shift; + + # Attrib is a hash + my $attrib = shift; + + # return either attrib->{'TITLE'} or.. + if ($attrib->{'TITLE'}) { + return($attrib->{'TITLE'}); + } + # failing that, Look up the title in a hash + else { + #TODO create $self->{'ColumnTitles'}; + return ($self->{'ColumnTitles'}->{$attrib->{'Element'}}); + } + +} + +# }}} + +# {{{ _TicketColumnValue +sub _TicketColumnValue { + my $self = shift; + my $Ticket = shift; + my $attrib = shift; + + + my $out; + + SWITCH: { + /^id/i && do { + $out = $Ticket->id; + last SWITCH; + }; + /^subj/i && do { + last SWITCH; + $Ticket->Subject; + }; + /^status/i && do { + last SWITCH; + $Ticket->Status; + }; + /^prio/i && do { + last SWITCH; + $Ticket->Priority; + }; + /^finalprio/i && do { + + last SWITCH; + $Ticket->FinalPriority + }; + /^initialprio/i && do { + + last SWITCH; + $Ticket->InitialPriority; + }; + /^timel/i && do { + + last SWITCH; + $Ticket->TimeWorked; + }; + /^timew/i && do { + + last SWITCH; + $Ticket->TimeLeft; + }; + + /^(.*?)date(.*)$/i && do { + my $o = $1; + my $m = $2; + my ($obj); + #TODO: optimize + $obj = $Ticket->DueObj if $o =~ /due/i; + $obj = $Ticket->CreatedObj if $o =~ /created/i; + $obj = $Ticket->StartsObj if $o =~ /starts/i; + $obj = $Ticket->StartedObj if $o =~ /started/i; + $obj = $Ticket->ToldObj if $o =~ /told/i; + $obj = $Ticket->LastUpdatedObj if $o =~ /lastu/i; + + $method = 'ISO' if $m =~ /iso/i; + + $method = 'AsString' if $m =~ /asstring/i; + $method = 'AgeAsString' if $m =~ /age/i; + last SWITCH; + $obj->$method(); + + }; + + /^watcher/i && do { + last SWITCH; + $Ticket->WatchersAsString(); + }; + + /^requestor/i && do { + last SWITCH; + $Ticket->RequestorsAsString(); + }; + /^cc/i && do { + last SWITCH; + $Ticket->CCAsString(); + }; + + + /^admincc/i && do { + last SWITCH; + $Ticket->AdminCcAsString(); + }; + + /^keywords/i && do { + last SWITCH; + #Limit it to the keyword select we're talking about, if we've got one. + my $objkeys =$Ticket->KeywordsObj($attrib->{'SELECT'}); + $objkeys->KeywordRelativePathsAsString(); + }; + + } + +} + +# }}} + +# }}} + +# {{{ POD +=head2 notes +"Enum" Things that get Is, IsNot + + +"Int" Things that get Is LessThan and GreaterThan +id +InitialPriority +FinalPriority +Priority +TimeLeft +TimeWorked + +"Text" Things that get Is, Like +Subject +TransactionContent + + +"Link" OPERATORs + + +"Date" OPERATORs Is, Before, After + + =cut +# }}} +1; diff --git a/rt/lib/RT/Transaction.pm b/rt/lib/RT/Transaction.pm new file mode 100755 index 000000000..ee1f069b2 --- /dev/null +++ b/rt/lib/RT/Transaction.pm @@ -0,0 +1,783 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Transaction.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# Copyright 1999-2001 Jesse Vincent <jesse@fsck.com> +# Released under the terms of the GNU Public License + +=head1 NAME + + RT::Transaction - RT\'s transaction object + +=head1 SYNOPSIS + + use RT::Transaction; + + +=head1 DESCRIPTION + + +Each RT::Transaction describes an atomic change to a ticket object +or an update to an RT::Ticket object. +It can have arbitrary MIME attachments. + + +=head1 METHODS + +=begin testing + +ok(require RT::TestHarness); +ok(require RT::Transaction); + +=end testing + +=cut + +package RT::Transaction; + +use RT::Record; +@ISA= qw(RT::Record); + +use RT::Attachments; + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Transactions"; + return ($self->SUPER::_Init(@_)); + +} +# }}} + +# {{{ sub Create + +=head2 Create + +Create a new transaction. + +This routine should _never_ be called anything other Than RT::Ticket. It should not be called +from client code. Ever. Not ever. If you do this, we will hunt you down. and break your kneecaps. +Then the unpleasant stuff will start. + +TODO: Document what gets passed to this + +=cut + +sub Create { + my $self = shift; + my %args = ( id => undef, + TimeTaken => 0, + Ticket => 0 , + Type => 'undefined', + Data => '', + Field => undef, + OldValue => undef, + NewValue => undef, + MIMEObj => undef, + ActivateScrips => 1, + @_ + ); + + #if we didn't specify a ticket, we need to bail + unless ( $args{'Ticket'} ) { + return(0, "RT::Transaction->Create couldn't, as you didn't specify a ticket id"); + } + + #lets create our transaction + my $id = $self->SUPER::Create(Ticket => $args{'Ticket'}, + TimeTaken => $args{'TimeTaken'}, + Type => $args{'Type'}, + Data => $args{'Data'}, + Field => $args{'Field'}, + OldValue => $args{'OldValue'}, + NewValue => $args{'NewValue'}, + Created => $args{'Created'} + ); + $self->Load($id); + $self->_Attach($args{'MIMEObj'}) + if defined $args{'MIMEObj'}; + + #Provide a way to turn off scrips if we need to + if ($args{'ActivateScrips'}) { + + #We're really going to need a non-acled ticket for the scrips to work + my $TicketAsSystem = RT::Ticket->new($RT::SystemUser); + $TicketAsSystem->Load($args{'Ticket'}) || + $RT::Logger->err("$self couldn't load ticket $args{'Ticket'}\n"); + + my $TransAsSystem = RT::Transaction->new($RT::SystemUser); + $TransAsSystem->Load($self->id) || + $RT::Logger->err("$self couldn't load a copy of itself as superuser\n"); + + # {{{ Deal with Scrips + + #Load a scripscopes object + use RT::Scrips; + my $PossibleScrips = RT::Scrips->new($RT::SystemUser); + + $PossibleScrips->LimitToQueue($TicketAsSystem->QueueObj->Id); #Limit it to $Ticket->QueueObj->Id + $PossibleScrips->LimitToGlobal(); # or to "global" + my $ConditionsAlias = $PossibleScrips->NewAlias('ScripConditions'); + + $PossibleScrips->Join(ALIAS1 => 'main', FIELD1 => 'ScripCondition', + ALIAS2 => $ConditionsAlias, FIELD2=> 'id'); + + + #We only want things where the scrip applies to this sort of transaction + $PossibleScrips->Limit(ALIAS=> $ConditionsAlias, + FIELD=>'ApplicableTransTypes', + OPERATOR => 'LIKE', + VALUE => $args{'Type'}, + ENTRYAGGREGATOR => 'OR', + ); + + # Or where the scrip applies to any transaction + $PossibleScrips->Limit(ALIAS=> $ConditionsAlias, + FIELD=>'ApplicableTransTypes', + OPERATOR => 'LIKE', + VALUE => "Any", + ENTRYAGGREGATOR => 'OR', + ); + + #Iterate through each script and check it's applicability. + + while (my $Scrip = $PossibleScrips->Next()) { + + #TODO: properly deal with errors raised in this scrip loop + + #$RT::Logger->debug("$self now dealing with ".$Scrip->Id. "\n"); + eval { + local $SIG{__DIE__} = sub { $RT::Logger->error($_[0])}; + + + #Load the scrip's Condition object + $Scrip->ConditionObj->LoadCondition(TicketObj => $TicketAsSystem, + TransactionObj => $TransAsSystem); + + + #If it's applicable, prepare and commit it + + $RT::Logger->debug ("$self: Checking condition ".$Scrip->ConditionObj->Name. "...\n"); + + if ( $Scrip->IsApplicable() ) { + + $RT::Logger->debug ("$self: Matches condition ".$Scrip->ConditionObj->Name. "...\n"); + #TODO: handle some errors here + + $Scrip->ActionObj->LoadAction(TicketObj => $TicketAsSystem, + TransactionObj => $TransAsSystem); + + + if ($Scrip->Prepare()) { + $RT::Logger->debug("$self: Prepared " . + $Scrip->ActionObj->Name . "\n"); + if ($Scrip->Commit()) { + $RT::Logger->debug("$self: Committed " . + $Scrip->ActionObj->Name . "\n"); + } + else { + $RT::Logger->info("$self: Failed to commit ". + $Scrip->ActionObj->Name . "\n"); + } + } + else { + $RT::Logger->info("$self: Failed to prepare " . + $Scrip->ActionObj->Name . "\n"); + } + + #We're done with it. lets clean up. + #TODO: something else isn't letting these get garbage collected. check em out. + $Scrip->ActionObj->DESTROY(); + $Scrip->ConditionObj->DESTROY; + } + + + else { + $RT::Logger->debug ("$self: Doesn't match condition ".$Scrip->ConditionObj->Name. "...\n"); + + # TODO: why doesn't this catch all the ScripObjs we create. + # and why do we explictly need to destroy them? + $Scrip->ConditionObj->DESTROY; + } + } + } + + # }}} + + } + + return ($id, "Transaction Created"); +} + +# }}} + +# {{{ sub Delete + +sub Delete { + my $self = shift; + return (0, 'Deleting this object could break referential integrity'); +} + +# }}} + +# {{{ Routines dealing with Attachments + +# {{{ sub Message + +=head2 Message + + Returns the RT::Attachments Object which contains the "top-level" object + attachment for this transaction + +=cut + +sub Message { + + my $self = shift; + + if (!defined ($self->{'message'}) ){ + + $self->{'message'} = new RT::Attachments($self->CurrentUser); + $self->{'message'}->Limit(FIELD => 'TransactionId', + VALUE => $self->Id); + + $self->{'message'}->ChildrenOf(0); + } + return($self->{'message'}); +} +# }}} + +# {{{ sub Content + +=head2 Content PARAMHASH + +If this transaction has attached mime objects, returns the first text/ part. +Otherwise, returns undef. + +Takes a paramhash. If the $args{'Quote'} parameter is set, wraps this message +at $args{'Wrap'}. $args{'Wrap'} defaults to 70. + + +=cut + +sub Content { + my $self = shift; + my %args = ( Quote => 0, + Wrap => 70, + @_ ); + + my $content = undef; + + # If we don\'t have any content, return undef now. + unless ($self->Message->First) { + return (undef); + } + + # Get the set of toplevel attachments to this transaction. + my $MIMEObj = $self->Message->First(); + + # If it's a message or a plain part, just return the + # body. + if ($MIMEObj->ContentType() =~ '^(text|message)(/|$)') { + $content = $MIMEObj->Content(); + } + + # If it's a multipart object, first try returning the first + # text/plain part. + + elsif ($MIMEObj->ContentType() =~ '^multipart/') { + my $plain_parts = $MIMEObj->Children(); + $plain_parts->ContentType(VALUE => 'text/plain'); + + # If we actully found a part, return its content + if ($plain_parts->First && + $plain_parts->First->Content ne '') { + $content = $plain_parts->First->Content; + } + + # If that fails, return the first text/ or message/ part + # which has some content. + + else { + my $all_parts = $MIMEObj->Children(); + while (($content == undef) && + (my $part = $all_parts->Next)) { + if (($part->ContentType() =~ '^(text|message)(/|$)') and + ($part->Content())) { + $content = $part->Content; + } + } + } + + } + # If all else fails, return a message that we couldn't find + # any content + else { + $content = 'This transaction appears to have no content'; + } + + if ($args{'Quote'}) { + # Remove quoted signature. + $content =~ s/\n-- \n(.*)$//s; + + # What's the longest line like? + foreach (split (/\n/,$content)) { + $max=length if ( length > $max); + } + + if ($max>76) { + require Text::Wrapper; + my $wrapper=new Text::Wrapper + ( + columns => $args{'Wrap'}, + body_start => ($max > 70*3 ? ' ' : ''), + par_start => '' + ); + $content=$wrapper->wrap($content); + } + + $content =~ s/^/> /gm; + $content = '[' . $self->CreatorObj->Name() . ' - ' . $self->CreatedAsString() + . "]:\n\n" + . $content . "\n\n"; + + } + + return ($content); +} +# }}} + +# {{{ sub Subject + +=head2 Subject + +If this transaction has attached mime objects, returns the first one's subject +Otherwise, returns null + +=cut + +sub Subject { + my $self = shift; + if ($self->Message->First) { + return ($self->Message->First->Subject); + } + else { + return (undef); + } +} +# }}} + +# {{{ sub Attachments + +=head2 Attachments + + Returns all the RT::Attachment objects which are attached +to this transaction. Takes an optional parameter, which is +a ContentType that Attachments should be restricted to. + +=cut + + +sub Attachments { + my $self = shift; + my $Types = ''; + $Types = shift if (@_); + + my $Attachments = new RT::Attachments($self->CurrentUser); + + #If it's a comment, return an empty object if they don't have the right to see it + if ($self->Type eq 'Comment') { + unless ($self->CurrentUserHasRight('ShowTicketComments')) { + return ($Attachments); + } + } + #if they ain't got rights to see, return an empty object + else { + unless ($self->CurrentUserHasRight('ShowTicket')) { + return ($Attachments); + } + } + + $Attachments->Limit(FIELD => 'TransactionId', + VALUE => $self->Id); + + # Get the attachments in the order they're put into + # the database. Arguably, we should be returning a tree + # of attachments, not a set...but no current app seems to need + # it. + + $Attachments->OrderBy(ALIAS => 'main', + FIELD => 'Id', + ORDER => 'asc'); + + if ($Types) { + $Attachments->ContentType( VALUE => "$Types", + OPERATOR => "LIKE"); + } + + + return($Attachments); + +} + +# }}} + +# {{{ sub _Attach + +=head2 _Attach + +A private method used to attach a mime object to this transaction. + +=cut + +sub _Attach { + my $self = shift; + my $MIMEObject = shift; + + if (!defined($MIMEObject)) { + $RT::Logger->error("$self _Attach: We can't attach a mime object if you don't give us one.\n"); + return(0, "$self: no attachment specified"); + } + + + use RT::Attachment; + my $Attachment = new RT::Attachment ($self->CurrentUser); + $Attachment->Create(TransactionId => $self->Id, + Attachment => $MIMEObject); + return ($Attachment, "Attachment created"); + +} + +# }}} + +# }}} + +# {{{ Routines dealing with Transaction Attributes + +# {{{ sub TicketObj + +=head2 TicketObj + +Returns this transaction's ticket object. + +=cut + +sub TicketObj { + my $self = shift; + if (! exists $self->{'TicketObj'}) { + $self->{'TicketObj'} = new RT::Ticket($self->CurrentUser); + $self->{'TicketObj'}->Load($self->Ticket); + } + + return $self->{'TicketObj'}; +} +# }}} + +# {{{ sub Description + +=head2 Description + +Returns a text string which describes this transaction + +=cut + + +sub Description { + my $self = shift; + + #Check those ACLs + #If it's a comment, we need to be extra special careful + if ($self->__Value('Type') eq 'Comment') { + unless ($self->CurrentUserHasRight('ShowTicketComments')) { + return (0, "Permission Denied"); + } + } + + #if they ain't got rights to see, don't let em + else { + unless ($self->CurrentUserHasRight('ShowTicket')) { + return (0, "Permission Denied"); + } + } + + if (!defined($self->Type)) { + return("No transaction type specified"); + } + + return ($self->BriefDescription . " by " . $self->CreatorObj->Name); +} + +# }}} + +# {{{ sub BriefDescription + +=head2 BriefDescription + +Returns a text string which briefly describes this transaction + +=cut + + +sub BriefDescription { + my $self = shift; + + #Check those ACLs + #If it's a comment, we need to be extra special careful + if ($self->__Value('Type') eq 'Comment') { + unless ($self->CurrentUserHasRight('ShowTicketComments')) { + return (0, "Permission Denied"); + } + } + + #if they ain't got rights to see, don't let em + else { + unless ($self->CurrentUserHasRight('ShowTicket')) { + return (0, "Permission Denied"); + } + } + + if (!defined($self->Type)) { + return("No transaction type specified"); + } + + if ($self->Type eq 'Create'){ + return("Ticket created"); + } + elsif ($self->Type =~ /Status/) { + if ($self->Field eq 'Status') { + if ($self->NewValue eq 'dead') { + return ("Ticket killed"); + } + else { + return( "Status changed from ". $self->OldValue . + " to ". $self->NewValue); + + } + } + # Generic: + return ($self->Field." changed from ".($self->OldValue||"(empty value)"). + " to ".$self->NewValue ); + } + + if ($self->Type eq 'Correspond') { + return("Correspondence added"); + } + + elsif ($self->Type eq 'Comment') { + return( "Comments added"); + } + + elsif ($self->Type eq 'Keyword') { + + my $field = 'Keyword'; + + if ($self->Field) { + my $keywordsel = new RT::KeywordSelect ($self->CurrentUser); + $keywordsel->Load($self->Field); + $field = $keywordsel->Name(); + } + + if ($self->OldValue eq '') { + return ($field." ".$self->NewValue." added"); + } + elsif ($self->NewValue eq '') { + return ($field." ".$self->OldValue." deleted"); + + } + else { + return ($field." ".$self->OldValue . " changed to ". + $self->NewValue); + } + } + + elsif ($self->Type eq 'Untake'){ + return( "Untaken"); + } + + elsif ($self->Type eq "Take") { + return( "Taken"); + } + + elsif ($self->Type eq "Force") { + my $Old = RT::User->new($self->CurrentUser); + $Old->Load($self->OldValue); + my $New = RT::User->new($self->CurrentUser); + $New->Load($self->NewValue); + return "Owner forcibly changed from ".$Old->Name . " to ". $New->Name; + } + elsif ($self->Type eq "Steal") { + my $Old = RT::User->new($self->CurrentUser); + $Old->Load($self->OldValue); + return "Stolen from ".$Old->Name; + } + + elsif ($self->Type eq "Give") { + my $New = RT::User->new($self->CurrentUser); + $New->Load($self->NewValue); + return( "Given to ".$New->Name); + } + + elsif ($self->Type eq 'AddWatcher'){ + return( $self->Field." ". $self->NewValue ." added"); + } + + elsif ($self->Type eq 'DelWatcher'){ + return( $self->Field." ".$self->OldValue ." deleted"); + } + + elsif ($self->Type eq 'Subject') { + return( "Subject changed to ".$self->Data); + } + elsif ($self->Type eq 'Told') { + return( "User notified"); + } + + elsif ($self->Type eq 'AddLink') { + return ($self->Data); + } + elsif ($self->Type eq 'DeleteLink') { + return ($self->Data); + } + elsif ($self->Type eq 'Set') { + if ($self->Field eq 'Queue') { + my $q1 = new RT::Queue($self->CurrentUser); + $q1->Load($self->OldValue); + my $q2 = new RT::Queue($self->CurrentUser); + $q2->Load($self->NewValue); + return ($self->Field . " changed from " . $q1->Name . " to ". + $q2->Name); + } + + # Write the date/time change at local time: + elsif ($self->Field =~ /Due|Starts|Started|Told/) { + my $t1 = new RT::Date($self->CurrentUser); + $t1->Set(Format => 'ISO', Value => $self->NewValue); + my $t2 = new RT::Date($self->CurrentUser); + $t2->Set(Format => 'ISO', Value => $self->OldValue); + return ($self->Field . " changed from " . $t2->AsString . + " to ".$t1->AsString); + } + else { + return ($self->Field . " changed from " . $self->OldValue . + " to ".$self->NewValue); + } + } + elsif ($self->Type eq 'PurgeTransaction') { + return ("Transaction ".$self->Data. " purged"); + } + else { + return ("Default: ". $self->Type ."/". $self->Field . + " changed from " . $self->OldValue . + " to ".$self->NewValue); + + } +} + +# }}} + +# {{{ Utility methods + +# {{{ sub IsInbound + +=head2 IsInbound + +Returns true if the creator of the transaction is a requestor of the ticket. +Returns false otherwise + +=cut + +sub IsInbound { + my $self=shift; + return ($self->TicketObj->IsRequestor($self->CreatorObj)); +} + +# }}} + +# }}} + +# {{{ sub _Accessible + +sub _Accessible { + my $self = shift; + my %Cols = ( + TimeTaken => 'read', + Ticket => 'read/public', + Type=> 'read', + Field => 'read', + Data => 'read', + NewValue => 'read', + OldValue => 'read', + Creator => 'read/auto', + Created => 'read/auto', + ); + return $self->SUPER::_Accessible(@_, %Cols); +} + +# }}} + +# }}} + +# {{{ sub _Set + +sub _Set { + my $self = shift; + return(0, 'Transactions are immutable'); +} + +# }}} + +# {{{ sub _Value + +=head2 _Value + +Takes the name of a table column. +Returns its value as a string, if the user passes an ACL check + +=cut + +sub _Value { + + my $self = shift; + my $field = shift; + + + #if the field is public, return it. + if ($self->_Accessible($field, 'public')) { + return($self->__Value($field)); + + } + #If it's a comment, we need to be extra special careful + if ($self->__Value('Type') eq 'Comment') { + unless ($self->CurrentUserHasRight('ShowTicketComments')) { + return (undef); + } + } + #if they ain't got rights to see, don't let em + else { + unless ($self->CurrentUserHasRight('ShowTicket')) { + return (undef); + } + } + + return($self->__Value($field)); + +} + +# }}} + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight RIGHT + +Calls $self->CurrentUser->HasQueueRight for the right passed in here. +passed in here. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + return ($self->CurrentUser->HasQueueRight(Right => "$right", + TicketObj => $self->TicketObj)); +} + +# }}} + +1; diff --git a/rt/lib/RT/Transactions.pm b/rt/lib/RT/Transactions.pm new file mode 100755 index 000000000..2ae98f286 --- /dev/null +++ b/rt/lib/RT/Transactions.pm @@ -0,0 +1,78 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Transactions.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Transactions - a collection of RT Transaction objects + +=head1 SYNOPSIS + + use RT::Transactions; + + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Transactions); + +=end testing + +=cut + +package RT::Transactions; +use RT::EasySearch; + +@ISA= qw(RT::EasySearch); +use RT::Transaction; + +# {{{ sub _Init +sub _Init { + my $self = shift; + + $self->{'table'} = "Transactions"; + $self->{'primary_key'} = "id"; + + # By default, order by the date of the transaction, rather than ID. + $self->OrderBy( ALIAS => 'main', + FIELD => 'Created', + ORDER => 'ASC'); + + return ( $self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + + return(RT::Transaction->new($self->CurrentUser)); +} +# }}} + + +=head2 example methods + + Queue RT::Queue or Queue Id + Ticket RT::Ticket or Ticket Id + + +LimitDate + +Type TRANSTYPE +Field STRING +OldValue OLDVAL +NewValue NEWVAL +Data DATA +TimeTaken +Actor USEROBJ/USERID +ContentMatches STRING + +=cut + + +1; + diff --git a/rt/lib/RT/User.pm b/rt/lib/RT/User.pm new file mode 100755 index 000000000..4e8554030 --- /dev/null +++ b/rt/lib/RT/User.pm @@ -0,0 +1,1222 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/User.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> +# This software is redistributable under the terms of the GNU GPL + +=head1 NAME + + RT::User - RT User object + +=head1 SYNOPSIS + + use RT::User; + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok(require RT::TestHarness); +ok(require RT::User); + +=end testing + + +=cut + + +package RT::User; +use RT::Record; +@ISA= qw(RT::Record); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Users"; + return($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _Accessible + +sub _Accessible { + my $self = shift; + my %Cols = ( + # {{{ Core RT info + Name => 'public/read/write/admin', + Password => 'write', + Comments => 'read/write/admin', + Signature => 'read/write', + EmailAddress => 'public/read/write', + PagerEmailAddress => 'read/write', + FreeformContactInfo => 'read/write', + Organization => 'public/read/write/admin', + Disabled => 'public/read/write/admin', #To modify this attribute, we have helper + #methods + Privileged => 'read/write/admin', # 0=no 1=user 2=system + + # }}} + + # {{{ Names + + RealName => 'public/read/write', + NickName => 'public/read/write', + # }}} + + # {{{ Localization and Internationalization + Lang => 'public/read/write', + EmailEncoding => 'public/read/write', + WebEncoding => 'public/read/write', + # }}} + + # {{{ External ContactInfo Linkage + ExternalContactInfoId => 'public/read/write/admin', + ContactInfoSystem => 'public/read/write/admin', + # }}} + + # {{{ User Authentication identifier + ExternalAuthId => 'public/read/write/admin', + #Authentication system used for user + AuthSystem => 'public/read/write/admin', + Gecos => 'public/read/write/admin', #Gecos is the name of the fields in a + # unix passwd file. In this case, it refers to "Unix Username" + # }}} + + # {{{ Telephone numbers + HomePhone => 'read/write', + WorkPhone => 'read/write', + MobilePhone => 'read/write', + PagerPhone => 'read/write', + + # }}} + + # {{{ Paper Address + Address1 => 'read/write', + Address2 => 'read/write', + City => 'read/write', + State => 'read/write', + Zip => 'read/write', + Country => 'read/write', + # }}} + + # {{{ Core DBIx::Record Attributes + Creator => 'read/auto', + Created => 'read/auto', + LastUpdatedBy => 'read/auto', + LastUpdated => 'read/auto' + + # }}} + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} + +# }}} + +# {{{ sub Create + +sub Create { + my $self = shift; + my %args = (Privileged => 0, + @_ # get the real argumentlist + ); + + #Check the ACL + unless ($self->CurrentUserHasRight('AdminUsers')) { + return (0, 'No permission to create users'); + } + + if (! $args{'Password'}) { + $args{'Password'} = '*NO-PASSWORD*'; + } + elsif (length($args{'Password'}) < $RT::MinimumPasswordLength) { + return(0,"Password too short"); + } + else { + my $salt = join '', ('.','/',0..9,'A'..'Z','a'..'z')[rand 64, rand 64]; + $args{'Password'} = crypt($args{'Password'}, $salt); + } + + + #TODO Specify some sensible defaults. + + unless (defined ($args{'Name'})) { + return(0, "Must specify 'Name' attribute"); + } + + + #SANITY CHECK THE NAME AND ABORT IF IT'S TAKEN + if ($RT::SystemUser) { #This only works if RT::SystemUser has been defined + my $TempUser = RT::User->new($RT::SystemUser); + $TempUser->Load($args{'Name'}); + return (0, 'Name in use') if ($TempUser->Id); + + return(0, 'Email address in use') + unless ($self->ValidateEmailAddress($args{'EmailAddress'})); + } + else { + $RT::Logger->warning("$self couldn't check for pre-existing ". + " users on create. This will happen". + " on installation\n"); + } + + my $id = $self->SUPER::Create(%args); + + #If the create failed. + unless ($id) { + return (0, 'Could not create user'); + } + + + #TODO post 2.0 + #if ($args{'SendWelcomeMessage'}) { + # #TODO: Check if the email exists and looks valid + # #TODO: Send the user a "welcome message" + #} + + return ($id, 'User created'); +} + +# }}} + +# {{{ sub _BootstrapCreate + +#create a user without validating _any_ data. + +#To be used only on database init. + +sub _BootstrapCreate { + my $self = shift; + my %args = (@_); + + $args{'Password'} = "*NO-PASSWORD*"; + my $id = $self->SUPER::Create(%args); + + #If the create failed. + return (0, 'Could not create user') + unless ($id); + + return ($id, 'User created'); +} + +# }}} + +# {{{ sub Delete + +sub Delete { + my $self = shift; + + return(0, 'Deleting this object would violate referential integrity'); + +} + +# }}} + +# {{{ sub Load + +=head2 Load + +Load a user object from the database. Takes a single argument. +If the argument is numerical, load by the column 'id'. Otherwise, load by +the "Name" column which is the user's textual username. + +=cut + +sub Load { + my $self = shift; + my $identifier = shift || return undef; + + #if it's an int, load by id. otherwise, load by name. + if ($identifier !~ /\D/) { + $self->SUPER::LoadById($identifier); + } + else { + $self->LoadByCol("Name",$identifier); + } +} + +# }}} + + +# {{{ sub LoadByEmail + +=head2 LoadByEmail + +Tries to load this user object from the database by the user's email address. + + +=cut + +sub LoadByEmail { + my $self=shift; + my $address = shift; + + # Never load an empty address as an email address. + unless ($address) { + return(undef); + } + + $address = RT::CanonicalizeAddress($address); + #$RT::Logger->debug("Trying to load an email address: $address\n"); + return $self->LoadByCol("EmailAddress", $address); +} +# }}} + + +# {{{ sub ValidateEmailAddress + +=head2 ValidateEmailAddress ADDRESS + +Returns true if the email address entered is not in use by another user or is +undef or ''. Returns false if it's in use. + +=cut + +sub ValidateEmailAddress { + my $self = shift; + my $Value = shift; + + # if the email address is null, it's always valid + return (1) if(!$Value || $Value eq ""); + + my $TempUser = RT::User->new($RT::SystemUser); + $TempUser->LoadByEmail($Value); + + if( $TempUser->id && + ($TempUser->id != $self->id)) { # if we found a user with that address + # it's invalid to set this user's address to it + return(undef); + } + else { #it's a valid email address + return(1); + } +} + +# }}} + + + + +# {{{ sub SetRandomPassword + +=head2 SetRandomPassword + +Takes no arguments. Returns a status code and a new password or an error message. +If the status is 1, the second value returned is the new password. +If the status is anything else, the new value returned is the error code. + +=cut + +sub SetRandomPassword { + my $self = shift; + + + unless ($self->CurrentUserCanModify('Password')) { + return (0, "Permission Denied"); + } + + my $pass = $self->GenerateRandomPassword(6,8); + + # If we have "notify user on + + my ($val, $msg) = $self->SetPassword($pass); + + #If we got an error return the error. + return (0, $msg) unless ($val); + + #Otherwise, we changed the password, lets return it. + return (1, $pass); + +} + +# }}} + + +# {{{ sub ResetPassword + +=head2 ResetPassword + +Returns status, [ERROR or new password]. Resets this user\'s password to +a randomly generated pronouncable password and emails them, using a +global template called "RT_PasswordChange", which can be overridden +with global templates "RT_PasswordChange_Privileged" or "RT_PasswordChange_NonPrivileged" +for privileged and Non-privileged users respectively. + +=cut + +sub ResetPassword { + my $self = shift; + + unless ($self->CurrentUserCanModify('Password')) { + return (0, "Permission Denied"); + } + my ($status, $pass) = $self->SetRandomPassword(); + + unless ($status) { + return (0, "$pass"); + } + + my $template = RT::Template->new($self->CurrentUser); + + + if ($self->IsPrivileged) { + $template->LoadGlobalTemplate('RT_PasswordChange_Privileged'); + } + else { + $template->LoadGlobalTemplate('RT_PasswordChange_Privileged'); + } + + unless ($template->Id) { + $template->LoadGlobalTemplate('RT_PasswordChange'); + } + + unless ($template->Id) { + $RT::Logger->crit("$self tried to send ".$self->Name." a password reminder ". + "but couldn't find a password change template"); + } + + my $notification = RT::Action::SendPasswordEmail->new(TemplateObj => $template, + Argument => $pass); + + $notification->SetTo($self->EmailAddress); + + my ($ret); + $ret = $notification->Prepare(); + if ($ret) { + $ret = $notification->Commit(); + } + + if ($ret) { + return(1, 'New password notification sent'); + } else { + return (0, 'Notification could not be sent'); + } + +} + + +# }}} + +# {{{ sub GenerateRandomPassword + +=head2 GenerateRandomPassword MIN_LEN and MAX_LEN + +Returns a random password between MIN_LEN and MAX_LEN characters long. + +=cut + +sub GenerateRandomPassword { + my $self = shift; + my $min_length = shift; + my $max_length = shift; + + #This code derived from mpw.pl, a bit of code with a sordid history + # Its notes: + + # Perl cleaned up a bit by Jesse Vincent 1/14/2001. + # Converted to perl from C by Marc Horowitz, 1/20/2000. + # Converted to C from Multics PL/I by Bill Sommerfeld, 4/21/86. + # Original PL/I version provided by Jerry Saltzer. + + + my ($frequency, $start_freq, $total_sum, $row_sums); + + #When munging characters, we need to know where to start counting letters from + my $a = ord('a'); + + # frequency of English digraphs (from D Edwards 1/27/66) + $frequency = + [ [ 4, 20, 28, 52, 2, 11, 28, 4, 32, 4, 6, 62, 23, + 167, 2, 14, 0, 83, 76, 127, 7, 25, 8, 1, 9, 1 ], # aa - az + [ 13, 0, 0, 0, 55, 0, 0, 0, 8, 2, 0, 22, 0, + 0, 11, 0, 0, 15, 4, 2, 13, 0, 0, 0, 15, 0 ], # ba - bz + [ 32, 0, 7, 1, 69, 0, 0, 33, 17, 0, 10, 9, 1, + 0, 50, 3, 0, 10, 0, 28, 11, 0, 0, 0, 3, 0 ], # ca - cz + [ 40, 16, 9, 5, 65, 18, 3, 9, 56, 0, 1, 4, 15, + 6, 16, 4, 0, 21, 18, 53, 19, 5, 15, 0, 3, 0 ], # da - dz + [ 84, 20, 55, 125, 51, 40, 19, 16, 50, 1, 4, 55, 54, + 146, 35, 37, 6, 191, 149, 65, 9, 26, 21, 12, 5, 0 ], # ea - ez + [ 19, 3, 5, 1, 19, 21, 1, 3, 30, 2, 0, 11, 1, + 0, 51, 0, 0, 26, 8, 47, 6, 3, 3, 0, 2, 0 ], # fa - fz + [ 20, 4, 3, 2, 35, 1, 3, 15, 18, 0, 0, 5, 1, + 4, 21, 1, 1, 20, 9, 21, 9, 0, 5, 0, 1, 0 ], # ga - gz + [ 101, 1, 3, 0, 270, 5, 1, 6, 57, 0, 0, 0, 3, + 2, 44, 1, 0, 3, 10, 18, 6, 0, 5, 0, 3, 0 ], # ha - hz + [ 40, 7, 51, 23, 25, 9, 11, 3, 0, 0, 2, 38, 25, + 202, 56, 12, 1, 46, 79, 117, 1, 22, 0, 4, 0, 3 ], # ia - iz + [ 3, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, + 0, 4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0 ], # ja - jz + [ 1, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 6, 2, 1, 0, 2, 0, 1, 0 ], # ka - kz + [ 44, 2, 5, 12, 62, 7, 5, 2, 42, 1, 1, 53, 2, + 2, 25, 1, 1, 2, 16, 23, 9, 0, 1, 0, 33, 0 ], # la - lz + [ 52, 14, 1, 0, 64, 0, 0, 3, 37, 0, 0, 0, 7, + 1, 17, 18, 1, 2, 12, 3, 8, 0, 1, 0, 2, 0 ], # ma - mz + [ 42, 10, 47, 122, 63, 19, 106, 12, 30, 1, 6, 6, 9, + 7, 54, 7, 1, 7, 44, 124, 6, 1, 15, 0, 12, 0 ], # na - nz + [ 7, 12, 14, 17, 5, 95, 3, 5, 14, 0, 0, 19, 41, + 134, 13, 23, 0, 91, 23, 42, 55, 16, 28, 0, 4, 1 ], # oa - oz + [ 19, 1, 0, 0, 37, 0, 0, 4, 8, 0, 0, 15, 1, + 0, 27, 9, 0, 33, 14, 7, 6, 0, 0, 0, 0, 0 ], # pa - pz + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0 ], # qa - qz + [ 83, 8, 16, 23, 169, 4, 8, 8, 77, 1, 10, 5, 26, + 16, 60, 4, 0, 24, 37, 55, 6, 11, 4, 0, 28, 0 ], # ra - rz + [ 65, 9, 17, 9, 73, 13, 1, 47, 75, 3, 0, 7, 11, + 12, 56, 17, 6, 9, 48, 116, 35, 1, 28, 0, 4, 0 ], # sa - sz + [ 57, 22, 3, 1, 76, 5, 2, 330, 126, 1, 0, 14, 10, + 6, 79, 7, 0, 49, 50, 56, 21, 2, 27, 0, 24, 0 ], # ta - tz + [ 11, 5, 9, 6, 9, 1, 6, 0, 9, 0, 1, 19, 5, + 31, 1, 15, 0, 47, 39, 31, 0, 3, 0, 0, 0, 0 ], # ua - uz + [ 7, 0, 0, 0, 72, 0, 0, 0, 28, 0, 0, 0, 0, + 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0 ], # va - vz + [ 36, 1, 1, 0, 38, 0, 0, 33, 36, 0, 0, 4, 1, + 8, 15, 0, 0, 0, 4, 2, 0, 0, 1, 0, 0, 0 ], # wa - wz + [ 1, 0, 2, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, + 0, 1, 5, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0 ], # xa - xz + [ 14, 5, 4, 2, 7, 12, 12, 6, 10, 0, 0, 3, 7, + 5, 17, 3, 0, 4, 16, 30, 0, 0, 5, 0, 0, 0 ], # ya - yz + [ 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ]; # za - zz + + #We need to know the totals for each row + $row_sums = + [ map { my $sum = 0; map { $sum += $_ } @$_; $sum } @$frequency ]; + + + #Frequency with which a given letter starts a word. + $start_freq = + [ 1299, 425, 725, 271, 375, 470, 93, 223, 1009, 24, 20, 355, 379, + 319, 823, 618, 21, 317, 962, 1991, 271, 104, 516, 6, 16, 14 ]; + + $total_sum = 0; map { $total_sum += $_ } @$start_freq; + + + my $length = $min_length + int(rand($max_length-$min_length)); + + my $char = $self->GenerateRandomNextChar($total_sum, $start_freq); + my @word = ($char+$a); + for (2..$length) { + $char = $self->_GenerateRandomNextChar($row_sums->[$char], $frequency->[$char]); + push(@word, $char+$a); + } + + #Return the password + return pack("C*",@word); + +} + + +#A private helper function for RandomPassword +# Takes a row summary and a frequency chart for the next character to be searched +sub _GenerateRandomNextChar { + my $self = shift; + my($all, $freq) = @_; + my($pos, $i); + + for ($pos = int(rand($all)), $i=0; + $pos >= $freq->[$i]; + $pos -= $freq->[$i], $i++) {}; + + return($i); +} + +# }}} + +# {{{ sub SetPassword + +=head2 SetPassword + +Takes a string. Checks the string's length and sets this user's password +to that string. + +=cut + +sub SetPassword { + my $self = shift; + my $password = shift; + + unless ($self->CurrentUserCanModify('Password')) { + return(0, 'Permission Denied'); + } + + if (! $password) { + return(0, "No password set"); + } + elsif (length($password) < $RT::MinimumPasswordLength) { + return(0,"Password too short"); + } + else { + my $salt = join '', ('.','/',0..9,'A'..'Z','a'..'z')[rand 64, rand 64]; + return ( $self->SUPER::SetPassword(crypt($password, $salt)) ); + } + +} + +# }}} + +# {{{ sub IsPassword + +=head2 IsPassword + +Returns true if the passed in value is this user's password. +Returns undef otherwise. + +=cut + +sub IsPassword { + my $self = shift; + my $value = shift; + + #TODO there isn't any apparent way to legitimately ACL this + + # RT does not allow null passwords + if ((!defined ($value)) or ($value eq '')) { + return(undef); + } + if ($self->Disabled) { + $RT::Logger->info("Disabled user ".$self->Name." tried to log in"); + return(undef); + } + + if ( ($self->__Value('Password') eq '') || + ($self->__Value('Password') eq undef) ) { + return(undef); + } + if ($self->__Value('Password') eq crypt($value, $self->__Value('Password'))) { + return (1); + } + else { + return (undef); + } +} + +# }}} + +# {{{ sub SetDisabled + +=head2 Sub SetDisabled + +Toggles the user's disabled flag. +If this flag is +set, all password checks for this user will fail. All ACL checks for this +user will fail. The user will appear in no user listings. + +=cut + +# }}} + +# {{{ ACL Related routines + +# {{{ GrantQueueRight + +=head2 GrantQueueRight + +Grant a queue right to this user. Takes a paramhash of which the elements +RightAppliesTo and RightName are important. + +=cut + +sub GrantQueueRight { + + my $self = shift; + my %args = ( RightScope => 'Queue', + RightName => undef, + RightAppliesTo => undef, + PrincipalType => 'User', + PrincipalId => $self->Id, + @_); + + #ACL check handled in ACE.pm + + require RT::ACE; + +# $RT::Logger->debug("$self ->GrantQueueRight right:". $args{'RightName'} . +# " applies to queue ".$args{'RightAppliesTo'}."\n"); + + my $ace = new RT::ACE($self->CurrentUser); + + return ($ace->Create(%args)); +} + +# }}} + +# {{{ GrantSystemRight + +=head2 GrantSystemRight + +Grant a system right to this user. +The only element that's important to set is RightName. + +=cut +sub GrantSystemRight { + + my $self = shift; + my %args = ( RightScope => 'System', + RightName => undef, + RightAppliesTo => 0, + PrincipalType => 'User', + PrincipalId => $self->Id, + @_); + + + #ACL check handled in ACE.pm + + require RT::ACE; + my $ace = new RT::ACE($self->CurrentUser); + + return ($ace->Create(%args)); +} + + +# }}} + +# {{{ sub HasQueueRight + +=head2 HasQueueRight + +Takes a paramhash which can contain +these items: + TicketObj => RT::Ticket or QueueObj => RT::Queue or Queue => integer + IsRequestor => undef, (for bootstrapping create) + Right => 'Right' + + +Returns 1 if this user has the right specified in the paramhash. for the queue +passed in. + +Returns undef if they don't + +=cut + +sub HasQueueRight { + my $self = shift; + my %args = ( TicketObj => undef, + QueueObj => undef, + Queue => undef, + IsRequestor => undef, + Right => undef, + @_); + + my ($IsRequestor, $IsCc, $IsAdminCc, $IsOwner); + + if (defined $args{'Queue'}) { + $args{'QueueObj'} = new RT::Queue($self->CurrentUser); + $args{'QueueObj'}->Load($args{'Queue'}); + } + + if (defined $args{'TicketObj'}) { + $args{'QueueObj'} = $args{'TicketObj'}->QueueObj(); + } + + # {{{ Validate and load up the QueueId + unless ((defined $args{'QueueObj'}) and ($args{'QueueObj'}->Id)) { + require Carp; + $RT::Logger->debug(Carp::cluck ("$self->HasQueueRight Couldn't find a queue id")); + return undef; + } + + # }}} + + + # Figure out whether a user has the right we're asking about. + # first see if they have the right personally for the queue in question. + my $retval = $self->_HasRight(Scope => 'Queue', + AppliesTo => $args{'QueueObj'}->Id, + Right => $args{'Right'}, + IsOwner => $IsOwner); + + return ($retval) if (defined $retval); + + # then we see whether they have the right personally globally. + $retval = $self->HasSystemRight( $args{'Right'}); + + return ($retval) if (defined $retval); + + # now that we know they don't have the right personally, + + # {{{ Find out about whether the current user is a Requestor, Cc, AdminCc or Owner + + if (defined $args{'TicketObj'}) { + if ($args{'TicketObj'}->IsRequestor($self)) {#user is requestor + $IsRequestor = 1; + } + + if ($args{'TicketObj'}->IsCc($self)) { #If user is a cc + $IsCc = 1; + } + + if ($args{'TicketObj'}->IsAdminCc($self)) { #If user is an admin cc + $IsAdminCc = 1; + } + + if ($args{'TicketObj'}->IsOwner($self)) { #If user is an owner + $IsOwner = 1; + } + } + + if (defined $args{'QueueObj'}) { + if ($args{'QueueObj'}->IsCc($self)) { #If user is a cc + $IsCc = 1; + } + if ($args{'QueueObj'}->IsAdminCc($self)) { #If user is an admin cc + $IsAdminCc = 1; + } + + } + # }}} + + # then see whether they have the right for the queue as a member of a metagroup + + $retval = $self->_HasRight(Scope => 'Queue', + AppliesTo => $args{'QueueObj'}->Id, + Right => $args{'Right'}, + IsOwner => $IsOwner, + IsCc => $IsCc, + IsAdminCc => $IsAdminCc, + IsRequestor => $IsRequestor + ); + + return ($retval) if (defined $retval); + + # then we see whether they have the right globally as a member of a metagroup + $retval = $self->HasSystemRight( $args{'Right'}, + (IsOwner => $IsOwner, + IsCc => $IsCc, + IsAdminCc => $IsAdminCc, + IsRequestor => $IsRequestor + ) ); + + #If they haven't gotten it by now, they just lose. + return ($retval); + +} + +# }}} + +# {{{ sub HasSystemRight + +=head2 HasSystemRight + +takes an array of a single value and a paramhash. +The single argument is the right being passed in. +the param hash is some additional data. (IsCc, IsOwner, IsAdminCc and IsRequestor) + +Returns 1 if this user has the listed 'right'. Returns undef if this user doesn't. + +=cut + +sub HasSystemRight { + my $self = shift; + my $right = shift; + + my %args = ( IsOwner => undef, + IsCc => undef, + IsAdminCc => undef, + IsRequestor => undef, + @_); + + unless (defined $right) { + + $RT::Logger->debug("$self RT::User::HasSystemRight was passed in no right."); + return(undef); + } + return ( $self->_HasRight ( Scope => 'System', + AppliesTo => '0', + Right => $right, + IsOwner => $args{'IsOwner'}, + IsCc => $args{'IsCc'}, + IsAdminCc => $args{'IsAdminCc'}, + IsRequestor => $args{'IsRequestor'}, + + ) + ); + +} + +# }}} + +# {{{ sub _HasRight + +=head2 sub _HasRight (Right => 'right', Scope => 'scope', AppliesTo => int, ExtendedPrincipals => SQL) + +_HasRight is a private helper method for checking a user's rights. It takes +several options: + +=item Right is a textual right name + +=item Scope is a textual scope name. (As of July these were Queue, Ticket and System + +=item AppliesTo is the numerical Id of the object identified in the scope. For tickets, this is the queue #. for queues, this is the queue # + +=item ExtendedPrincipals is an SQL select clause which assumes that the only +table in play is ACL. It's used by HasQueueRight to pass in which +metaprincipals apply. Actually, it's probably obsolete. TODO: remove it. + +Returns 1 if a matching ACE was found. + +Returns undef if no ACE was found. + +=cut + + +sub _HasRight { + + my $self = shift; + my %args = ( Right => undef, + Scope => undef, + AppliesTo => undef, + IsRequestor => undef, + IsCc => undef, + IsAdminCc => undef, + IsOwner => undef, + ExtendedPrincipals => undef, + @_); + + if ($self->Disabled) { + $RT::Logger->debug ("Disabled User: ".$self->Name. + " failed access check for ".$args{'Right'}. + " to object ".$args{'Scope'}."/". + $args{'AppliesTo'}."\n"); + return (undef); + } + + if (!defined $args{'Right'}) { + $RT::Logger->debug("_HasRight called without a right\n"); + return(undef); + } + elsif (!defined $args{'Scope'}) { + $RT::Logger->debug("_HasRight called without a scope\n"); + return(undef); + } + elsif (!defined $args{'AppliesTo'}) { + $RT::Logger->debug("_HasRight called without an AppliesTo object\n"); + return(undef); + } + + #If we've cached a win or loss for this lookup say so + + #TODO Security +++ check to make sure this is complete and right + + #Construct a hashkey to cache decisions in + my ($hashkey); + { #it's ugly, but we need to turn off warning, cuz we're joining nulls. + local $^W=0; + $hashkey =$self->Id .":". join(':',%args); + } + + # $RT::Logger->debug($hashkey."\n"); + + #Anything older than 10 seconds needs to be rechecked + my $cache_timeout = (time - 10); + + + if ((defined $self->{'rights'}{"$hashkey"}) && + ($self->{'rights'}{"$hashkey"} == 1 ) && + (defined $self->{'rights'}{"$hashkey"}{'set'} ) && + ($self->{'rights'}{"$hashkey"}{'set'} > $cache_timeout)) { +# $RT::Logger->debug("Cached ACL win for ". +# $args{'Right'}.$args{'Scope'}. +# $args{'AppliesTo'}."\n"); + return ($self->{'rights'}{"$hashkey"}); + } + elsif ((defined $self->{'rights'}{"$hashkey"}) && + ($self->{'rights'}{"$hashkey"} == -1) && + (defined $self->{'rights'}{"$hashkey"}{'set'}) && + ($self->{'rights'}{"$hashkey"}{'set'} > $cache_timeout)) { + +# $RT::Logger->debug("Cached ACL loss decision for ". +# $args{'Right'}.$args{'Scope'}. +# $args{'AppliesTo'}."\n"); + + return(undef); + } + + + my $RightClause = "(RightName = '$args{'Right'}')"; + my $ScopeClause = "(RightScope = '$args{'Scope'}')"; + + #If an AppliesTo was passed in, we should pay attention to it. + #otherwise, none is needed + + $ScopeClause = "($ScopeClause AND (RightAppliesTo = $args{'AppliesTo'}))" + if ($args{'AppliesTo'}); + + + # The generic principals clause looks for users with my id + # and Rights that apply to _everyone_ + my $PrincipalsClause = "((PrincipalType = 'User') AND (PrincipalId = ".$self->Id."))"; + + + # If the user is the superuser, grant them the damn right ;) + my $SuperUserClause = + "(RightName = 'SuperUser') AND (RightScope = 'System') AND (RightAppliesTo = 0)"; + + # If we've been passed in an extended principals clause, we should lump it + # on to the existing principals clause. it'll make life easier + if ($args{'ExtendedPrincipals'}) { + $PrincipalsClause = "(($PrincipalsClause) OR ". + "($args{'ExtendedPrincipalsClause'}))"; + } + + my $GroupPrincipalsClause = "((ACL.PrincipalType = 'Group') ". + "AND (ACL.PrincipalId = Groups.Id) AND (GroupMembers.GroupId = Groups.Id) ". + " AND (GroupMembers.UserId = ".$self->Id."))"; + + + + + # {{{ A bunch of magic statements that make the metagroups listed + # work. basically, we if the user falls into the right group, + # we add the type of ACL check needed + my (@MetaPrincipalsSubClauses, $MetaPrincipalsClause); + + #The user is always part of the 'Everyone' Group + push (@MetaPrincipalsSubClauses, "((Groups.Name = 'Everyone') AND + (PrincipalType = 'Group') AND + (Groups.Id = PrincipalId))"); + + if ($args{'IsAdminCc'}) { + push (@MetaPrincipalsSubClauses, "((Groups.Name = 'AdminCc') AND + (PrincipalType = 'Group') AND + (Groups.Id = PrincipalId))"); + } + if ($args{'IsCc'}) { + push (@MetaPrincipalsSubClauses, " ((Groups.Name = 'Cc') AND + (PrincipalType = 'Group') AND + (Groups.Id = PrincipalId))"); + } + if ($args{'IsRequestor'}) { + push (@MetaPrincipalsSubClauses, " ((Groups.Name = 'Requestor') AND + (PrincipalType = 'Group') AND + (Groups.Id = PrincipalId))"); + } + if ($args{'IsOwner'}) { + + push (@MetaPrincipalsSubClauses, " ((Groups.Name = 'Owner') AND + (PrincipalType = 'Group') AND + (Groups.Id = PrincipalId))"); + } + + # }}} + + my ($GroupRightsQuery, $MetaGroupRightsQuery, $IndividualRightsQuery, $hitcount); + + # {{{ If there are any metaprincipals to be checked + if (@MetaPrincipalsSubClauses) { + #chop off the leading or + #TODO redo this with an array and a join + $MetaPrincipalsClause = join (" OR ", @MetaPrincipalsSubClauses); + + $MetaGroupRightsQuery = "SELECT COUNT(ACL.id) FROM ACL, Groups". + " WHERE " . + " ($ScopeClause) AND ($RightClause) AND ($MetaPrincipalsClause)"; + + # {{{ deal with checking if the user has a right as a member of a metagroup + +# $RT::Logger->debug("Now Trying $MetaGroupRightsQuery\n"); + $hitcount = $self->_Handle->FetchResult($MetaGroupRightsQuery); + + #if there's a match, the right is granted + if ($hitcount) { + $self->{'rights'}{"$hashkey"}{'set'} = time; + $self->{'rights'}{"$hashkey"} = 1; + return (1); + } + +# $RT::Logger->debug("No ACL matched MetaGroups query: $MetaGroupRightsQuery\n"); + + # }}} + + } + # }}} + + # {{{ deal with checking if the user has a right as a member of a group + # This query checks to se whether the user has the right as a member of a + # group + $GroupRightsQuery = "SELECT COUNT(ACL.id) FROM ACL, GroupMembers, Groups". + " WHERE " . + " (((($ScopeClause) AND ($RightClause)) OR ($SuperUserClause)) ". + " AND ($GroupPrincipalsClause))"; + + # $RT::Logger->debug("Now Trying $GroupRightsQuery\n"); + $hitcount = $self->_Handle->FetchResult($GroupRightsQuery); + + #if there's a match, the right is granted + if ($hitcount) { + $self->{'rights'}{"$hashkey"}{'set'} = time; + $self->{'rights'}{"$hashkey"} = 1; + return (1); + } + +# $RT::Logger->debug("No ACL matched $GroupRightsQuery\n"); + + # }}} + + # {{{ Check to see whether the user has a right as an individual + + # This query checks to see whether the current user has the right directly + $IndividualRightsQuery = "SELECT COUNT(ACL.id) FROM ACL WHERE ". + " ((($ScopeClause) AND ($RightClause)) OR ($SuperUserClause)) " . + " AND ($PrincipalsClause)"; + + + $hitcount = $self->_Handle->FetchResult($IndividualRightsQuery); + + if ($hitcount) { + $self->{'rights'}{"$hashkey"}{'set'} = time; + $self->{'rights'}{"$hashkey"} = 1; + return (1); + } + # }}} + + else { #If the user just doesn't have the right + +# $RT::Logger->debug("No ACL matched $IndividualRightsQuery\n"); + + #If nothing matched, return 0. + $self->{'rights'}{"$hashkey"}{'set'} = time; + $self->{'rights'}{"$hashkey"} = -1; + + + return (undef); + } +} + +# }}} + +# {{{ sub CurrentUserCanModify + +=head2 CurrentUserCanModify RIGHT + +If the user has rights for this object, either because +he has 'AdminUsers' or (if he\'s trying to edit himself and the right isn\'t an +admin right) 'ModifySelf', return 1. otherwise, return undef. + +=cut + +sub CurrentUserCanModify { + my $self = shift; + my $right = shift; + + if ($self->CurrentUserHasRight('AdminUsers')) { + return (1); + } + #If the field is marked as an "administrators only" field, + # don\'t let the user touch it. + elsif ($self->_Accessible($right, 'admin')) { + return(undef); + } + + #If the current user is trying to modify themselves + elsif ( ($self->id == $self->CurrentUser->id) and + ($self->CurrentUserHasRight('ModifySelf'))) { + return(1); + } + + #If we don\'t have a good reason to grant them rights to modify + # by now, they lose + else { + return(undef); + } + +} + +# }}} + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight + + Takes a single argument. returns 1 if $Self->CurrentUser + has the requested right. returns undef otherwise + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + + return ($self->CurrentUser->HasSystemRight($right)); +} + +# }}} + + +# {{{ sub _Set + +sub _Set { + my $self = shift; + + my %args = (Field => undef, + Value => undef, + @_ + ); + + # Nobody is allowed to futz with RT_System or Nobody unless they + # want to change an email address. For 2.2, neither should have an email address + + if ($self->Privileged == 2) { + return (0, "Can not modify system users"); + } + unless ($self->CurrentUserCanModify($args{'Field'})) { + return (0, "Permission Denied"); + } + + + + #Set the new value + my ($ret, $msg)=$self->SUPER::_Set(Field => $args{'Field'}, + Value=> $args{'Value'}); + + return ($ret, $msg); +} + +# }}} + +# {{{ sub _Value + +=head2 _Value + +Takes the name of a table column. +Returns its value as a string, if the user passes an ACL check + +=cut + +sub _Value { + + my $self = shift; + my $field = shift; + + #If the current user doesn't have ACLs, don't let em at it. + + my @PublicFields = qw( Name EmailAddress Organization Disabled + RealName NickName Gecos ExternalAuthId + AuthSystem ExternalContactInfoId + ContactInfoSystem ); + + #if the field is public, return it. + if ($self->_Accessible($field, 'public')) { + return($self->SUPER::_Value($field)); + + } + #If the user wants to see their own values, let them + elsif ($self->CurrentUser->Id == $self->Id) { + return($self->SUPER::_Value($field)); + } + #If the user has the admin users right, return the field + elsif ($self->CurrentUserHasRight('AdminUsers')) { + return($self->SUPER::_Value($field)); + } + else { + return(undef); + } + + +} + +# }}} + +# }}} +1; + diff --git a/rt/lib/RT/Users.pm b/rt/lib/RT/Users.pm new file mode 100755 index 000000000..f4a97268c --- /dev/null +++ b/rt/lib/RT/Users.pm @@ -0,0 +1,281 @@ + +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Users.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# (c) 1996-1999 Jesse Vincent <jesse@fsck.com> +# This software is redistributable under the terms of the GNU GPL + +=head1 NAME + + RT::Users - Collection of RT::User objects + +=head1 SYNOPSIS + + use RT::Users; + + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok(require RT::TestHarness); +ok(require RT::Users); + +=end testing + +=cut + +package RT::Users; +use RT::EasySearch; +@ISA = qw(RT::EasySearch); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Users"; + $self->{'primary_key'} = "id"; + + # By default, order by name + $self->OrderBy( ALIAS => 'main', + FIELD => 'Name', + ORDER => 'ASC'); + + return ($self->SUPER::_Init(@_)); + +} +# }}} + +# {{{ sub _DoSearch + +=head2 _DoSearch + + A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless +we're explicitly trying to see them. + +=cut + +sub _DoSearch { + my $self = shift; + + #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. + unless($self->{'find_disabled_rows'}) { + $self->LimitToEnabled(); + } + + return($self->SUPER::_DoSearch(@_)); + +} + +# }}} + +# {{{ sub NewItem + +sub NewItem { + my $self = shift; + + use RT::User; + my $item = new RT::User($self->CurrentUser); + return($item); +} +# }}} + +# {{{ LimitToEmail +=head2 LimitToEmail + +Takes one argument. an email address. limits the returned set to +that email address + +=cut + +sub LimitToEmail { + my $self = shift; + my $addr = shift; + $self->Limit(FIELD => 'EmailAddress', VALUE => "$addr"); +} + +# }}} + +# {{{ MemberOfGroup + +=head2 MemberOfGroup + +takes one argument, a group id number. Limits the returned set +to members of a given group + +=cut + +sub MemberOfGroup { + my $self = shift; + my $group = shift; + + return ("No group specified") if (!defined $group); + + my $groupalias = $self->NewAlias('GroupMembers'); + + $self->Join( ALIAS1 => 'main', FIELD1 => 'id', + ALIAS2 => "$groupalias", FIELD2 => 'Name'); + + $self->Limit (ALIAS => "$groupalias", + FIELD => 'GroupId', + VALUE => "$group", + OPERATOR => "=" + ); +} + +# }}} + +# {{{ LimitToPrivileged + +=head2 LimitToPrivileged + +Limits to users who can be made members of ACLs and groups + +=cut + +sub LimitToPrivileged { + my $self = shift; + $self->Limit( FIELD => 'Privileged', + OPERATOR => '=', + VALUE => '1'); +} + +# }}} + + + +# {{{ LimitToSystem + +=head2 LimitToSystem + +Limits to users who can be granted rights, but who should +never have their rights modified by a user or be made members of groups. + +=cut + +sub LimitToSystem { + my $self = shift; + $self->Limit( FIELD => 'Privileged', + OPERATOR => '=', + VALUE => '2'); +} + +# }}} + +# {{{ HasQueueRight + +=head2 HasQueueRight + +Takes a queue id as its first argument. Queue Id "0" is treated by RT as "applies to all queues" +Takes a specific right as an optional second argument + +Limits the returned set to users who have rights in the queue specified, personally. If the optional second argument is supplied, limits to users who have been explicitly granted that right. + + + +This should not be used as an ACL check, but only for obtaining lists of +users with explicit rights in a given queue. + +=cut + +sub HasQueueRight { + my $self = shift; + my $queue = shift; + my $right; + + $right = shift if (@_); + + + my $acl_alias = $self->NewAlias('ACL'); + $self->Join( ALIAS1 => 'main', FIELD1 => 'id', + ALIAS2 => $acl_alias, FIELD2 => 'PrincipalId'); + $self->Limit (ALIAS => $acl_alias, + FIELD => 'PrincipalType', + OPERATOR => '=', + VALUE => 'User'); + + + $self->Limit(ALIAS => $acl_alias, + FIELD => 'RightAppliesTo', + OPERATOR => '=', + VALUE => "$queue"); + + + $self->Limit(ALIAS => $acl_alias, + FIELD => 'RightScope', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR', + VALUE => 'Queue'); + + + $self->Limit(ALIAS => $acl_alias, + FIELD => 'RightScope', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR', + VALUE => 'Ticket'); + + + #TODO: is this being initialized properly if the right isn't there? + if (defined ($right)) { + + $self->Limit(ALIAS => $acl_alias, + FIELD => 'RightName', + OPERATOR => '=', + VALUE => "$right"); + + + }; + + +} + + + +# }}} + +# {{{ HasSystemRight + +=head2 HasSystemRight + +Takes one optional argument: + The name of a System level right. + +Limits the returned set to users who have been granted system rights, personally. If the optional argument is passed in, limits to users who have been granted the explicit right listed. Please see the note attached to LimitToQueueRights + +=cut + +sub HasSystemRight { + my $self = shift; + my $right = shift if (@_); + my $acl_alias = $self->NewAlias('ACL'); + + + $self->Join( ALIAS1 => 'main', FIELD1 => 'id', + ALIAS2 => $acl_alias, FIELD2 => 'PrincipalId'); + $self->Limit (ALIAS => $acl_alias, + FIELD => 'PrincipalType', + OPERATOR => '=', + VALUE => 'User'); + + $self->Limit(ALIAS => $acl_alias, + FIELD => 'RightScope', + OPERATOR => '=', + VALUE => 'System'); + + + #TODO: is this being initialized properly if the right isn't there? + if (defined ($right)) { + $self->Limit(ALIAS => $acl_alias, + FIELD => 'RightName', + OPERATOR => '=', + VALUE => "$right"); + + } + + +} + +# }}} + +1; + diff --git a/rt/lib/RT/Watcher.pm b/rt/lib/RT/Watcher.pm new file mode 100755 index 000000000..c7c6100cf --- /dev/null +++ b/rt/lib/RT/Watcher.pm @@ -0,0 +1,313 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Watcher.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# (c) 1996-2001 Jesse Vincent <jesse@fsck.com> +# This software is redistributable under the terms of the GNU GPL + +=head1 NAME + + RT::Watcher - RT Watcher object + +=head1 SYNOPSIS + + use RT::Watcher; + + +=head1 DESCRIPTION + +This module should never be called directly by client code. it\'s an internal module which +should only be accessed through exported APIs in Ticket, Queue and other similar objects. + +=head1 METHODS + +=begin testing + +ok(require RT::TestHarness); +ok(require RT::Watcher); + +=end testing + +=cut + +package RT::Watcher; +use RT::Record; +@ISA= qw(RT::Record); + + +# {{{ sub _Init + +sub _Init { + my $self = shift; + + $self->{'table'} = "Watchers"; + return ($self->SUPER::_Init(@_)); + +} +# }}} + +# {{{ sub Create + +=head2 Create PARAMHASH + +Create a new watcher object with the following Attributes: + +Scope: Ticket or Queue +Value: Ticket or queue id +Type: Requestor, Cc or AdminCc. Requestor is not supported for a scope of \'Queue\' +Email: The email address of the watcher. If the email address maps to an RT User, this is resolved +to an Owner object instead. +Owner: The RT user id of the \'owner\' of this watcher object. + +=cut + +sub Create { + my $self = shift; + my %args = ( + Owner => undef, + Email => undef, + Value => undef, + Scope => undef, + Type => undef, + Quiet => 0, + @_ # get the real argumentlist + ); + + #Do we have someone this applies to? + unless (($args{'Owner'} =~ /^(\d+)$/) || ($args{'Email'} =~ /\@/)) { + return (0, "No user or email address specified"); + } + + #if we only have an email address, try to resolve it to an owner + if ($args{'Owner'} == 0) { + my $User = new RT::User($RT::SystemUser); + $User->LoadByEmail($args{'Email'}); + if ($User->id) { + $args{'Owner'} = $User->id; + delete $args{'Email'}; + } + } + + + if ($args{'Type'} eq "Requestor" and $args{'Owner'} == 0) { + # Requestors *MUST* have an account + + my $Address = RT::CanonicalizeAddress($args{'Email'}); + + my $NewUser = RT::User->new($RT::SystemUser); + my ($Val, $Message) = + $NewUser->Create(Name => $Address, + EmailAddress => $Address, + RealName => $Address, + Password => undef, + Privileged => 0, + Comments => 'Autocreated on ticket submission' + ); + return (0, "Could not create watcher for requestor") + unless $Val; + if ($NewUser->id) { + $args{'Owner'} = $NewUser->id; + delete $args{'Email'}; + } + } + + + + + #Make sure we\'ve got a valid type + #TODO --- move this to ValidateType + return (0, "Invalid Type") + unless ($args{'Type'} =~ /^(Requestor|Cc|AdminCc)$/i); + + my $id = $self->SUPER::Create(%args); + if ($id) { + return (1,"Interest noted"); + } + else { + return (0, "Error adding watcher"); + } +} +# }}} + +# {{{ sub Load + +=head2 Load ID + + Loads a watcher by the primary key of the watchers table ($Watcher->id) + +=cut + +sub Load { + my $self = shift; + my $identifier = shift; + + if ($identifier !~ /\D/) { + $self->SUPER::LoadById($identifier); + } + else { + return (0, "That's not a numerical id"); + } +} + +# }}} + +# {{{ sub LoadByValue + +=head2 LoadByValue PARAMHASH + +LoadByValue takes a parameter hash with the following attributes: + + Email, Owner, Scope, Type, Value + +The same rules enforced at create are enforced by Load. + +Returns a tuple of (retval, msg). Retval is 1 on success and 0 on failure. +msg describes what happened in a human readable form. + +=cut + +sub LoadByValue { + my $self = shift; + my %args = ( Email => undef, + Owner => undef, + Scope => undef, + Type => undef, + Value => undef, + @_); + + #TODO: all this code is being copied from Create. that\'s silly + + #Do we have someone this applies to? + unless (($args{'Owner'} =~ /^(\d*)$/) || ($args{'Email'} =~ /\@/)) { + return (0, "No user or email address specified"); + } + + #if we only have an email address, try to resolve it to an owner + unless ($args{'Owner'}) { + my $User = new RT::User($RT::SystemUser); + $User->LoadByEmail($args{'Email'}); + if ($User->id > 0) { + $args{'Owner'} = $User->id; + delete $args{'Email'}; + } + } + + if ((defined ($args{'Type'})) and + ($args{'Type'} !~ /^(Requestor|Cc|AdminCc)$/i)) { + return (0, "Invalid Type"); + } + if ($args{'Owner'}) { + $self->LoadByCols( Type => $args{'Type'}, + Value => $args{'Value'}, + Owner => $args{'Owner'}, + Scope => $args{'Scope'}, + ); + } + else { + $self->LoadByCols( Type => $args{'Type'}, + Email => $args{'Email'}, + Value => $args{'Value'}, + Scope => $args{'Scope'}, + ); + } + unless ($self->Id) { + return(0, "Couldn\'t find that watcher"); + } + return (1, "Watcher loaded"); +} + +# }}} + +# {{{ sub OwnerObj + +=head2 OwnerObj + +Return an RT Owner Object for this Watcher, if we have one + +=cut + +sub OwnerObj { + my $self = shift; + if (!defined $self->{'OwnerObj'}) { + require RT::User; + $self->{'OwnerObj'} = RT::User->new($self->CurrentUser); + if ($self->Owner) { + $self->{'OwnerObj'}->Load($self->Owner); + } else { + return $RT::Nobody->UserObj; + } + } + return ($self->{'OwnerObj'}); +} +# }}} + +# {{{ sub Email + +=head2 Email + +This custom data accessor does the right thing and returns +the 'Email' attribute of this Watcher object. If that's undefined, +it returns the 'EmailAddress' attribute of its 'Owner' object, which is +an RT::User object. + +=cut + +sub Email { + my $self = shift; + + # IF Email is defined, return that. Otherwise, return the Owner's email address + if (defined($self->__Value('Email'))) { + return ($self->__Value('Email')); + } + elsif ($self->Owner) { + return ($self->OwnerObj->EmailAddress); + } + else { + return ("Data error"); + } +} +# }}} + +# {{{ sub IsUser + +=head2 IsUser + +Returns true if this watcher object is tied to a user object. (IE it +isn't sending to some other email address). +Otherwise, returns undef + +=cut + +sub IsUser { + my $self = shift; + # if this watcher has an email address glued onto it, + # return undef + + if (defined($self->__Value('Email'))) { + return undef; + } + else { + return 1; + } +} + +# }}} + +# {{{ sub _Accessible +sub _Accessible { + my $self = shift; + my %Cols = ( + Email => 'read/write', + Scope => 'read/write', + Value => 'read/write', + Type => 'read/write', + Quiet => 'read/write', + Owner => 'read/write', + Creator => 'read/auto', + Created => 'read/auto', + LastUpdatedBy => 'read/auto', + LastUpdated => 'read/auto' + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} +# }}} + +1; + diff --git a/rt/lib/RT/Watchers.pm b/rt/lib/RT/Watchers.pm new file mode 100755 index 000000000..c55adda3f --- /dev/null +++ b/rt/lib/RT/Watchers.pm @@ -0,0 +1,226 @@ +# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Watchers.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> +# This software is redistributable under the terms of the GNU GPL + +=head1 NAME + + RT::Watchers - Collection of RT Watcher objects + +=head1 SYNOPSIS + + use RT::Watchers; + my $watchers = new RT::Watchers($CurrentUser); + while (my $watcher = $watchers->Next()) { + print $watcher->Id . "is a watcher"; + } + +=head1 DESCRIPTION + +This module should never be called directly by client code. it's an internal module which +should only be accessed through exported APIs in Ticket, Queue and other similar objects. + + +=head1 METHODS + +=begin testing + +ok(require RT::TestHarness); +ok(require RT::Watchers); + +=end testing + +=cut + +package RT::Watchers; + +use strict; +use vars qw( @ISA ); + + +require RT::EasySearch; +require RT::Watcher; +@ISA= qw(RT::EasySearch); + + +# {{{ sub _Init +sub _Init { + my $self = shift; + + $self->{'table'} = "Watchers"; + $self->{'primary_key'} = "id"; + return($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub Limit + +=head2 Limit + + A wrapper around RT::EasySearch::Limit which sets +the default entry aggregator to 'AND' + +=cut + +sub Limit { + my $self = shift; + my %args = ( ENTRYAGGREGATOR => 'AND', + @_); + + $self->SUPER::Limit(%args); +} +# }}} + +# {{{ sub LimitToTicket + +=head2 LimitToTicket + +Takes a single arg which is a ticket id +Limits to watchers of that ticket + +=cut + +sub LimitToTicket { + my $self = shift; + my $ticket = shift; + $self->Limit( ENTRYAGGREGATOR => 'OR', + FIELD => 'Value', + VALUE => $ticket); + $self->Limit (ENTRYAGGREGATOR => 'AND', + FIELD => 'Scope', + VALUE => 'Ticket'); +} +# }}} + +# {{{ sub LimitToQueue + +=head2 LimitToQueue + +Takes a single arg, which is a queue id +Limits to watchers of that queue. + +=cut + +sub LimitToQueue { + my $self = shift; + my $queue = shift; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Value', + VALUE => $queue); + $self->Limit (ENTRYAGGREGATOR => 'AND', + FIELD => 'Scope', + VALUE => 'Queue'); +} +# }}} + +# {{{ sub LimitToType + +=head2 LimitToType + +Takes a single string as its argument. That string is a watcher type +which is one of 'Requestor', 'Cc' or 'AdminCc' +Limits to watchers of that type + +=cut + + +sub LimitToType { + my $self = shift; + my $type = shift; + $self->Limit(FIELD => 'Type', + VALUE => "$type"); +} +# }}} + +# {{{ sub LimitToRequestors + +=head2 LimitToRequestors + +Limits to watchers of type 'Requestor' + +=cut + +sub LimitToRequestors { + my $self = shift; + $self->LimitToType("Requestor"); +} +# }}} + +# {{{ sub LimitToCc + +=head2 LimitToCc + +Limits to watchers of type 'Cc' + +=cut + +sub LimitToCc { + my $self = shift; + $self->LimitToType("Cc"); +} +# }}} + +# {{{ sub LimitToAdminCc + +=head2 LimitToAdminCc + +Limits to watchers of type AdminCc + +=cut + +sub LimitToAdminCc { + my $self = shift; + $self->LimitToType("AdminCc"); +} +# }}} + +# {{{ sub Emails + +=head2 Emails + +# Return a (reference to a) list of emails + +=cut + +sub Emails { + my $self = shift; + my @list; # List is a list of watcher email addresses + + # $watcher is an RT::Watcher object + while (my $watcher=$self->Next()) { + push(@list, $watcher->Email); + } + return \@list; +} +# }}} + +# {{{ sub EmailsAsString + +=head2 EmailsAsString + +# Returns the RT::Watchers->Emails as a comma seperated string + +=cut + +sub EmailsAsString { + my $self = shift; + return(join(", ",@{$self->Emails})); +} +# }}} + +# {{{ sub NewItem + + + +sub NewItem { + my $self = shift; + + use RT::Watcher; + my $item = new RT::Watcher($self->CurrentUser); + return($item); +} +# }}} +1; + + + + diff --git a/rt/lib/test.pl b/rt/lib/test.pl new file mode 100644 index 000000000..f0da5df27 --- /dev/null +++ b/rt/lib/test.pl @@ -0,0 +1,52 @@ +# Before `make install' is performed this script should be runnable with +# `make test'. After `make install' it should work as `perl test.pl' + +######################### We start with some black magic to print on failure. + +# Change 1..1 below to 1..last_test_to_print . +# (It may become useful if the test is moved to ./t subdirectory.) + +BEGIN { $| = 1; print "1..1\n"; } +END {print "not ok 1\n" unless $loaded;} +use RT; +$loaded = 1; +print "ok 1\n"; + +######################### End of black magic. + +# Insert your test code below (better if it prints "ok 13" +# (correspondingly "not ok 13") depending on the success of chunk 13 +# of the test code): + +use RT::Record; +use RT::EasySearch; +use RT::Handle; +use RT::Ticket; +use RT::Tickets; +use RT::ACE; +use RT::ACL; +use RT::Watcher; +use RT::Watchers; +use RT::Scrip; +use RT::Scrips; +use RT::ScripAction; +use RT::ScripCondition; +use RT::ScripActions; +use RT::ScripConditions; +use RT::Transaction; +use RT::Transactions; +use RT::Group; +use RT::GroupMembers; +use RT::User; +use RT::Users; +use RT::CurrentUser; +use RT::Attachment; +use RT::Attachments; +use RT::Keyword; +use RT::Keywords; +use RT::KeywordSelect; +use RT::KeywordSelects; +use RT::ObjectKeyword; +use RT::ObjectKeywords; +use RT::Date; + -- cgit v1.2.1 From 160be29a0dc62e79a4fb95d2ab8c0c7e5996760e Mon Sep 17 00:00:00 2001 From: cvs2git <cvs2git> Date: Mon, 12 Aug 2002 06:17:10 +0000 Subject: This commit was manufactured by cvs2svn to create branch 'BESTPRACTICAL'. --- rt/lib/MANIFEST | 57 ----- rt/lib/MANIFEST.SKIP | 1 - rt/lib/Makefile.PL | 49 ---- rt/lib/RT/Action/OpenDependent.pm | 55 ----- rt/lib/RT/Action/SendPasswordEmail.pm | 170 ------------- rt/lib/RT/Action/StallDependent.pm | 68 ----- rt/lib/RT/Condition/NewDependency.pm | 0 rt/lib/RT/EasySearch.pm | 115 --------- rt/lib/RT/Keyword.pm | 446 --------------------------------- rt/lib/RT/KeywordSelect.pm | 452 ---------------------------------- rt/lib/RT/KeywordSelects.pm | 143 ----------- rt/lib/RT/Keywords.pm | 106 -------- rt/lib/RT/ObjectKeyword.pm | 192 --------------- rt/lib/RT/ObjectKeywords.pm | 234 ------------------ rt/lib/RT/TestHarness.pm | 14 -- rt/lib/RT/Watcher.pm | 313 ----------------------- rt/lib/RT/Watchers.pm | 226 ----------------- rt/lib/test.pl | 52 ---- 18 files changed, 2693 deletions(-) delete mode 100644 rt/lib/MANIFEST delete mode 100644 rt/lib/MANIFEST.SKIP delete mode 100644 rt/lib/Makefile.PL delete mode 100644 rt/lib/RT/Action/OpenDependent.pm delete mode 100755 rt/lib/RT/Action/SendPasswordEmail.pm delete mode 100644 rt/lib/RT/Action/StallDependent.pm delete mode 100644 rt/lib/RT/Condition/NewDependency.pm delete mode 100755 rt/lib/RT/EasySearch.pm delete mode 100644 rt/lib/RT/Keyword.pm delete mode 100644 rt/lib/RT/KeywordSelect.pm delete mode 100644 rt/lib/RT/KeywordSelects.pm delete mode 100644 rt/lib/RT/Keywords.pm delete mode 100644 rt/lib/RT/ObjectKeyword.pm delete mode 100644 rt/lib/RT/ObjectKeywords.pm delete mode 100644 rt/lib/RT/TestHarness.pm delete mode 100755 rt/lib/RT/Watcher.pm delete mode 100755 rt/lib/RT/Watchers.pm delete mode 100644 rt/lib/test.pl (limited to 'rt/lib') diff --git a/rt/lib/MANIFEST b/rt/lib/MANIFEST deleted file mode 100644 index cda386be5..000000000 --- a/rt/lib/MANIFEST +++ /dev/null @@ -1,57 +0,0 @@ -MANIFEST -MANIFEST.SKIP -Makefile.PL -RT.pm -test.pl -RT/ACE.pm -RT/ACL.pm -RT/Action/Generic.pm -RT/Action/NotifyAsComment.pm -RT/Action/OpenDependent.pm -RT/Action/SendEmail.pm -RT/Action/StallDependent.pm -RT/Action/Notify.pm -RT/Action/ResolveMembers.pm -RT/Attachment.pm -RT/Attachments.pm -RT/Condition/AnyTransaction.pm -RT/Condition/Generic.pm -RT/Condition/NewDependency.pm -RT/CurrentUser.pm -RT/Date.pm -RT/EasySearch.pm -RT/Group.pm -RT/GroupMember.pm -RT/GroupMembers.pm -RT/Groups.pm -RT/Handle.pm -RT/Interface/CLI.pm -RT/Interface/Email.pm -RT/Interface/Web.pm -RT/Keyword.pm -RT/Keywords.pm -RT/KeywordSelect.pm -RT/KeywordSelects.pm -RT/Link.pm -RT/Links.pm -RT/ObjectKeyword.pm -RT/ObjectKeywords.pm -RT/Queue.pm -RT/Queues.pm -RT/Record.pm -RT/Scrip.pm -RT/Scrips.pm -RT/ScripAction.pm -RT/ScripActions.pm -RT/ScripCondition.pm -RT/ScripConditions.pm -RT/Template.pm -RT/Templates.pm -RT/Ticket.pm -RT/Tickets.pm -RT/Transaction.pm -RT/Transactions.pm -RT/User.pm -RT/Users.pm -RT/Watcher.pm -RT/Watchers.pm diff --git a/rt/lib/MANIFEST.SKIP b/rt/lib/MANIFEST.SKIP deleted file mode 100644 index ae335e78a..000000000 --- a/rt/lib/MANIFEST.SKIP +++ /dev/null @@ -1 +0,0 @@ -CVS/ diff --git a/rt/lib/Makefile.PL b/rt/lib/Makefile.PL deleted file mode 100644 index c0e1af28c..000000000 --- a/rt/lib/Makefile.PL +++ /dev/null @@ -1,49 +0,0 @@ -use ExtUtils::MakeMaker; -# See lib/ExtUtils/MakeMaker.pm for details of how to influence -# the contents of the Makefile that is written. -WriteMakefile( - 'NAME' => 'RT', - 'VERSION_FROM' => 'RT.pm', # finds $VERSION - 'PREREQ_PM' => { - 'DBI' => 1.16, - 'DBIx::SearchBuilder' => '0.48', - 'Date::Parse' => 0, - 'Date::Format' => 0, - 'MIME::Entity' => 5.108, - 'Mail::Mailer' => '1.20', - 'Log::Dispatch' => 1.6, - 'HTML::Entities' => 0, - 'Text::Wrapper' => 0, - 'Text::Template' => 0, - 'Getopt::Long' => 2.24, - }, -); - - { - package MY; - sub top_targets { - my($self) = @_; - my $out = "POD2TEST_EXE = pod2test\n"; - - $out .= $self->SUPER::top_targets(@_); - # $out =~ s/^(pure_all\b.*)/$1 testifypods/m; - - $out .= "\n\ntestifypods : \n"; - - my @pods = (keys %{$self->{MAN1PODS}}, - keys %{$self->{MAN3PODS}}); - - foreach my $pod (@pods) { - (my $test = $pod) =~ s/\.(pm|pod)$//; - $test =~ s/^lib\W//; - $test =~ s/\W/-/; - $test =~ s/\//__/g; - $test = "autogen-$test.t"; - $out .= "\t$self->{NOECHO}\$(POD2TEST_EXE) ". - "$pod t/$test \n"; - } - - return $out; - } - } - diff --git a/rt/lib/RT/Action/OpenDependent.pm b/rt/lib/RT/Action/OpenDependent.pm deleted file mode 100644 index b271e4709..000000000 --- a/rt/lib/RT/Action/OpenDependent.pm +++ /dev/null @@ -1,55 +0,0 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Attic/OpenDependent.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# This Action will open the BASE if a dependent is resolved. - -package RT::Action::OpenDependent; -require RT::Action::Generic; -require RT::Links; -@ISA=qw(RT::Action::Generic); - -#Do what we need to do and send it out. - -#What does this type of Action does - -# {{{ sub Describe -sub Describe { - my $self = shift; - return (ref $self . " will stall a [local] BASE if it's open and a dependency link is created."); -} -# }}} - - -# {{{ sub Prepare -sub Prepare { - # nothing to prepare - return 1; -} -# }}} - -sub Commit { - my $self = shift; - - my $Links=RT::Links->new($RT::SystemUser); - $Links->Limit(FIELD => 'Type', VALUE => 'DependsOn'); - $Links->Limit(FIELD => 'Target', VALUE => $self->TicketObj->id); - - while (my $Link=$Links->Next()) { - next unless $Link->BaseIsLocal; - my $base=RT::Ticket->new($self->TicketObj->CurrentUser); - # Todo: Only work if Base is a plain ticket num: - $base->Load($Link->Base); - $base->Open if $base->Status eq 'stalled'; - } -} - - -# Applicability checked in Commit. - -# {{{ sub IsApplicable -sub IsApplicable { - my $self = shift; - 1; - return 1; -} -# }}} - -1; diff --git a/rt/lib/RT/Action/SendPasswordEmail.pm b/rt/lib/RT/Action/SendPasswordEmail.pm deleted file mode 100755 index 91bb3c1cb..000000000 --- a/rt/lib/RT/Action/SendPasswordEmail.pm +++ /dev/null @@ -1,170 +0,0 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Attic/SendPasswordEmail.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 2001 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public License - -package RT::Action::SendPasswordEmail; -require RT::Action::Generic; - -@ISA = qw(RT::Action::Generic); - - -=head1 NAME - - RT::Action::SendGenericEmail - An Action which users can use to send mail - or can subclassed for more specialized mail sending behavior. - - - -=head1 SYNOPSIS - - require RT::Action::SendPasswordEmail; - - -=head1 DESCRIPTION - -Basically, you create another module RT::Action::YourAction which ISA -RT::Action::SendEmail. - -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). - - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Action::SendPasswordEmail); - -=end testing - - -=head1 AUTHOR - -Jesse Vincent <jesse@bestpractical.com> - -=head1 SEE ALSO - -perl(1). - -=cut - -# {{{ Scrip methods (_Init, Commit, Prepare, IsApplicable) - -# {{{ sub Commit - -#Do what we need to do and send it out. - -sub Commit { - my $self = shift; - #send the email - - - - - - my $MIMEObj = $self->TemplateObj->MIMEObj; - - - $MIMEObj->make_singlepart; - - #If we don\'t have any recipients to send to, don\'t send a message; - unless ($MIMEObj->head->get('To')) { - $RT::Logger->debug("$self: No recipients found. Not sending.\n"); - return(1); - } - - if ($RT::MailCommand eq 'sendmailpipe') { - open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); - print MAIL $MIMEObj->as_string; - close(MAIL); - } - else { - unless ($MIMEObj->send($RT::MailCommand, $RT::MailParams)) { - $RT::Logger->crit("$self: Could not send mail for ". - $self->TransactionObj . "\n"); - return(0); - } - } - - return (1); - -} -# }}} - -# {{{ sub Prepare - -sub Prepare { - my $self = shift; - - # This actually populates the MIME::Entity fields in the Template Object - - unless ($self->TemplateObj) { - $RT::Logger->warning("No template object handed to $self\n"); - } - - - unless ($self->TemplateObj->MIMEObj->head->get('Reply-To')) { - $self->SetHeader('Reply-To',$RT::CorrespondAddress ); - } - - - $self->SetHeader('Precedence', "bulk"); - $self->SetHeader('X-RT-Loop-Prevention', $RT::rtname); - $self->SetHeader - ('Managed-by',"Request Tracker $RT::VERSION (http://www.fsck.com/projects/rt/)"); - - $self->TemplateObj->Parse(Argument => $self->Argument); - - - return 1; -} - -# }}} - -# }}} - - -# {{{ sub SetTo - -=head2 SetTo EMAIL - -Sets this message's "To" field to EMAIL - -=cut - -sub SetTo { - my $self = shift; - my $to = shift; - $self->SetHeader('To',$to); -} - -# }}} - -# {{{ sub SetHeader - -sub SetHeader { - my $self = shift; - my $field = shift; - my $val = shift; - - chomp $val; - chomp $field; - $self->TemplateObj->MIMEObj->head->fold_length($field,10000); - $self->TemplateObj->MIMEObj->head->add($field, $val); - return $self->TemplateObj->MIMEObj->head->get($field); -} - -# }}} - - - -__END__ - -# {{{ POD - -# }}} - -1; - diff --git a/rt/lib/RT/Action/StallDependent.pm b/rt/lib/RT/Action/StallDependent.pm deleted file mode 100644 index 09d3448a8..000000000 --- a/rt/lib/RT/Action/StallDependent.pm +++ /dev/null @@ -1,68 +0,0 @@ -# This Action will stall the BASE if a dependency or membership link -# (according to argument) is created and if BASE is open. - -# TODO: Rename this .pm - -package RT::Action::StallDependent; -require RT::Action::Generic; -@ISA=qw|RT::Action::Generic|; - -# {{{ sub Describe -sub Describe { - my $self = shift; - return (ref $self . " will stall a [local] BASE if it's dependent [or member] of a linked up request."); -} -# }}} - - -# {{{ sub Prepare -sub Prepare { - # nothing to prepare - return 1; -} -# }}} - -sub Commit { - my $self = shift; - # Find all Dependent - my $arg=$self->Argument || "DependsOn"; - unless ($self->TransactionObj->Data =~ /^([^ ]+) $arg /) { - warn; return 0; - } - my $base_id=$1; - my $base; - if ($1 eq "THIS") { - $base=$self->TicketObj; - } else { - $base_id=&RT::Link::_IsLocal(undef, $base_id) || return 0; - $base=RT::Ticket->new($self->TicketObj->CurrentUser); - $base->Load($base_id); - } - $base->Stall if $base->Status eq 'open'; - return 0; -} - - -# {{{ sub IsApplicable - -# Only applicable if: -# 1. the link action is a dependency -# 2. BASE is a local ticket - -sub IsApplicable { - my $self = shift; - - my $arg=$self->Argument || "DependsOn"; - - # 1: - $self->TransactionObj->Data =~ /^([^ ]*) $arg / || return 0; - - # 2: - # (dirty!) - &RT::Link::_IsLocal(undef,$1) || return 0; - - return 1; -} -# }}} - -1; diff --git a/rt/lib/RT/Condition/NewDependency.pm b/rt/lib/RT/Condition/NewDependency.pm deleted file mode 100644 index e69de29bb..000000000 diff --git a/rt/lib/RT/EasySearch.pm b/rt/lib/RT/EasySearch.pm deleted file mode 100755 index bcbfa01b2..000000000 --- a/rt/lib/RT/EasySearch.pm +++ /dev/null @@ -1,115 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/EasySearch.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - -=head1 NAME - - RT::EasySearch - a baseclass for RT collection objects - -=head1 SYNOPSIS - -=head1 DESCRIPTION - - -=head1 METHODS - - -=begin testing - -ok (require RT::EasySearch); - -=end testing - - -=cut - -package RT::EasySearch; -use DBIx::SearchBuilder; -@ISA= qw(DBIx::SearchBuilder); - -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'user'} = shift; - unless(defined($self->CurrentUser)) { - use Carp; - Carp::confess("$self was created without a CurrentUser"); - $RT::Logger->err("$self was created without a CurrentUser\n"); - return(0); - } - $self->SUPER::_Init( 'Handle' => $RT::Handle); -} -# }}} - -# {{{ sub LimitToEnabled - -=head2 LimitToEnabled - -Only find items that haven\'t been disabled - -=cut - -sub LimitToEnabled { - my $self = shift; - - $self->Limit( FIELD => 'Disabled', - VALUE => '0', - OPERATOR => '=' ); -} -# }}} - -# {{{ sub LimitToDisabled - -=head2 LimitToDeleted - -Only find items that have been deleted. - -=cut - -sub LimitToDeleted { - my $self = shift; - - $self->{'find_disabled_rows'} = 1; - $self->Limit( FIELD => 'Disabled', - OPERATOR => '=', - VALUE => '1' - ); -} -# }}} - - -# {{{ sub Limit - -=head2 Limit PARAMHASH - -This Limit sub calls SUPER::Limit, but defaults "CASESENSITIVE" to 1, thus -making sure that by default lots of things don't do extra work trying to -match lower(colname) agaist lc($val); - -=cut - -sub Limit { - my $self = shift; - my %args = ( CASESENSITIVE => 1, - @_ ); - - return $self->SUPER::Limit(%args); -} - -# {{{ sub CurrentUser - -=head2 CurrentUser - - Returns the current user as an RT::User object. - -=cut - -sub CurrentUser { - my $self = shift; - return ($self->{'user'}); -} -# }}} - - -1; - - diff --git a/rt/lib/RT/Keyword.pm b/rt/lib/RT/Keyword.pm deleted file mode 100644 index a41e0a585..000000000 --- a/rt/lib/RT/Keyword.pm +++ /dev/null @@ -1,446 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Keyword.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - -=head1 NAME - - RT::Keyword - Manipulate an RT::Keyword record - -=head1 SYNOPSIS - - use RT::Keyword; - - my $keyword = RT::Keyword->new($CurrentUser); - $keyword->Create( Name => 'tofu', - Description => 'fermented soy beans', - ); - - - my $keyword2 = RT::Keyword->new($CurrentUser); - $keyword2->Create( Name => 'beast', - Description => 'a wild animal', - Parent => $keyword->id(), - ); - -=head1 DESCRIPTION - -An B<RT::Keyword> object is an arbitrary string. - -=head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Scrip); - -=end testing - - -=cut -package RT::Keyword; - -use strict; -use vars qw(@ISA); -use Tie::IxHash; -use RT::Record; -use RT::Keywords; - -@ISA = qw(RT::Record); - -# {{{ Core methods - -sub _Init { - my $self = shift; - $self->{'table'} = "Keywords"; - $self->SUPER::_Init(@_); -} - -sub _Accessible { - my $self = shift; - my %cols = ( - Name => 'read/write', #the keyword itself - Description => 'read/write', #a description of the keyword - Parent => 'read/write', #optional id of another B<RT::Keyword>, allowing keywords to be arranged hierarchically - Disabled => 'read/write' - ); - return ($self->SUPER::_Accessible( @_, %cols)); - -} - -# }}} - - -=over 4 - -=item new CURRENT_USER - -Takes a single argument, an RT::CurrentUser object. Instantiates a new -(uncreated) RT::Keyword object. - -=cut - -# {{{ sub Create - -=item Create KEY => VALUE, ... - -Takes a list of key/value pairs and creates a the object. Returns the id of -the newly created record, or false if there was an error. - -Keys are: - -Name - the keyword itself -Description - (not yet used) -Parent - optional link to another B<RT::Keyword>, allowing keyword to be arranged in a hierarchical fashion. Can be specified by id or Name. - -=cut - -sub Create { - my $self = shift; - my %args = (Name => undef, - Description => undef, - Parent => 0, - @_); - - unless ($self->CurrentUserHasRight('AdminKeywords')) { - return (0, 'Permission Denied'); - } - - if ( $args{'Parent'} && $args{'Parent'} !~ /^\d+$/ ) { - $RT::Logger->err( "can't yet specify parents by name, sorry: ". $args{'Parent'}); - return(0,'Parent must be specified by id'); - } - - my $val = $self->SUPER::Create(Name => $args{'Name'}, - Description => $args{'Description'}, - Parent => $args{'Parent'} - ); - if ($val) { - return ($val, 'Keyword created'); - } - else { - return(0,'Could not create keyword'); - } -} - -# }}} - -# {{{ sub Delete - -sub Delete { - my $self = shift; - - return (0, 'Deleting this object would break referential integrity.'); -} - -# }}} - -# {{{ sub LoadByPath - -=head2 LoadByPath STRING - -LoadByPath takes a string. Whatever character starts the string is assumed to be a delimter. The routine parses the keyword path description and tries to load the keyword -described by that path. It returns a numerical status and a textual message. -A non-zero status means 'Success'. - -=cut - -sub LoadByPath { - my $self = shift; - - my $path = shift; - - my $delimiter = substr($path,0,1); - my @path_elements = split($delimiter, $path); - - #throw awya the first bogus path element - shift @path_elements; - - my $parent = 0; - my ($tempkey); - #iterate through all the path elements loading up a - #keyword object. when we're done, this object becomes - #whatever the last tempkey object was. - while (my $name = shift @path_elements) { - - $tempkey = new RT::Keyword($self->CurrentUser); - - my $loaded = $tempkey->LoadByNameAndParentId($name, $parent); - - #Set the new parent for loading its child. - $parent = $tempkey->Id; - - #If the parent Id is 0, then we're not recursing through the tree - # time to bail - return (0, "Couldn't find keyword") unless ($tempkey->id()); - - } - #Now that we're through with the loop, the last keyword loaded - # is the the one we wanted. - # we shouldn't need to explicitly load it like this. but we do. Thanks SQL - - $self->Load($tempkey->Id); - - return (1, 'Keyword loaded'); -} - - -# }}} - -# {{{ sub LoadByNameAndParentId - -=head2 LoadByNameAndParentId NAME PARENT_ID - -Takes two arguments, a keyword name and a parent id. Loads a keyword into - the current object. - -=cut - -sub LoadByNameAndParentId { - my $self = shift; - my $name = shift; - my $parentid = shift; - - my $val = $self->LoadByCols( Name => $name, Parent => $parentid); - if ($self->Id) { - return ($self->Id, 'Keyword loaded'); - } - else { - return (0, 'Keyword could not be found'); - } - } - -# }}} - - -# {{{ sub Load - -=head2 Load KEYWORD - -Loads KEYWORD, either by id if it's an integer or by Path, otherwise - -=cut - -sub Load { - my $self = shift; - my $id = shift; - - if (!$id) { - return (0, 'No keyword defined'); - } - if ($id =~ /^(\d+)$/) { - return ($self->SUPER::Load($id)); - } - else { - return($self->LoadByPath($id)); - } -} - - -# }}} - -# {{{ sub Path - -=item Path - - Returns this Keyword's full path going back to the root. (eg /OS/Unix/Linux/Redhat if -this keyword is "Redhat" ) - -=cut - -sub Path { - my $self = shift; - - if ($self->Parent == 0) { - return ("/".$self->Name); - } - else { - return ( $self->ParentObj->Path . "/" . $self->Name); - } - -} - -# }}} - -# {{{ sub RelativePath - -=head2 RelativePath KEYWORD_OBJ - -Takes a keyword object. Returns this keyword's path relative to that -keyword. - -=item Bugs - -Currently assumes that the "other" keyword is a predecessor of this keyword - -=cut - -sub RelativePath { - my $self = shift; - my $OtherKey = shift; - - my $OtherPath = $OtherKey->Path(); - my $MyPath = $self->Path; - $MyPath =~ s/^$OtherPath\///g; - return ($MyPath); -} - - -# }}} - -# {{{ sub ParentObj - -=item ParentObj - - Returns an RT::Keyword object of this Keyword's 'parents' - -=cut - -sub ParentObj { - my $self = shift; - - my $ParentObj = new RT::Keyword($self->CurrentUser); - $ParentObj->Load($self->Parent); - return ($ParentObj); -} - -# }}} - -# {{{ sub Children - -=item Children - -Return an RT::Keywords object this Object's children. - -=cut - -sub Children { - my $self = shift; - - my $Children = new RT::Keywords($self->CurrentUser); - $Children->LimitToParent($self->id); - return ($Children); -} - -# }}} - -# {{{ sub Descendents - -=item Descendents [ NUM_GENERATIONS [ EXCLUDE_HASHREF ] ] - -Returns an ordered (see L<Tie::IxHash>) hash reference of the descendents of -this keyword, possibly limited to a given number of generations. The keys -are B<RT::Keyword> I<id>s, and the values are strings containing the I<Name>s -of those B<RT::Keyword>s. - -=cut - -sub Descendents { - my $self = shift; - my $generations = shift || 0; - my $exclude = shift || {}; - my %results; - - - tie %results, 'Tie::IxHash'; - my $Keywords = new RT::Keywords($self->CurrentUser); - $Keywords->LimitToParent($self->id || 0 ); #If we have no id, start at the top - - while ( my $Keyword = $Keywords->Next ) { - - next if defined $exclude->{ $Keyword->id }; - $results{ $Keyword->id } = $Keyword->Name; - - if ( $generations == 0 || $generations > 1 ) { - #if we're limiting to some number of generations, - # decrement the number of generations - - my $nextgen = $generations; - $nextgen-- if ( $nextgen > 1 ); - - my $kids = $Keyword->Descendents($nextgen, \%results); - - foreach my $kid ( keys %{$kids}) { - $results{"$kid"} = $Keyword->Name. "/". $kids->{"$kid"}; - } - } - } - return(\%results); -} - -# }}} - -# {{{ ACL related methods - -# {{{ sub _Set - -# does an acl check and then passes off the call -sub _Set { - my $self = shift; - - unless ($self->CurrentUserHasRight('AdminKeywords')) { - return (0,'Permission Denied'); - } - return $self->SUPER::_Set(@_); -} - -# }}} - -# {{{ sub CurrentUserHasRight - -=head2 CurrentUserHasRight - -Helper menthod for HasRight. Presets Principal to CurrentUser then -calls HasRight. - -=cut - -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - return ($self->HasRight( Principal => $self->CurrentUser->UserObj, - Right => $right )); - -} - -# }}} - -# {{{ sub HasRight - -=head2 HasRight - -Takes a param-hash consisting of "Right" and "Principal" Principal is -an RT::User object or an RT::CurrentUser object. "Right" is a textual -Right string that applies to Keywords. - -=cut - -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => undef, - @_ ); - - return( $args{'Principal'}->HasSystemRight( $args{'Right'}) ); - -} -# }}} - -# }}} - -=back - -=head1 AUTHOR - -Ivan Kohler <ivan-rt@420.am> - -=head1 BUGS - -Yes. - -=head1 SEE ALSO - -L<RT::Keywords>, L<RT::ObjectKeyword>, L<RT::ObjectKeywords>, L<RT::Ticket>, -L<RT::Record> - -[A=cut - -1; - diff --git a/rt/lib/RT/KeywordSelect.pm b/rt/lib/RT/KeywordSelect.pm deleted file mode 100644 index 6865216fd..000000000 --- a/rt/lib/RT/KeywordSelect.pm +++ /dev/null @@ -1,452 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/KeywordSelect.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - -package RT::KeywordSelect; - -use strict; -use vars qw(@ISA); -use RT::Record; -use RT::Keyword; - -@ISA = qw(RT::Record); - -# {{{ POD - -=head1 NAME - - RT::KeywordSelect - Manipulate an RT::KeywordSelect record - -=head1 SYNOPSIS - - use RT::KeywordSelect; - - my $keyword_select = RT::KeywordSelect->new($CurrentUser); - $keyword_select->Create( - Keyword => 20, - ObjectType => 'Ticket', - Name => 'Choices' - ); - - my $keyword_select = RT::KeywordSelect->new($CurrentUser); - $keyword_select->Create( - Name => 'Choices', - Keyword => 20, - ObjectType => 'Ticket', - ObjectField => 'Queue', - ObjectValue => 1, - Single => 1, - Depth => 4, - ); - -=head1 DESCRIPTION - -An B<RT::KeywordSelect> object is a link between a Keyword and a object -type (one of: Ticket), titled by the I<Name> field of the B<RT::Keyword> such -that: - -=over 4 - -=item Object display will contain a field, titled with the I<Name> field and - showing any descendent keywords which are related to this object via the - B<RT::ObjectKeywords> table. - -=item Object creation for this object will contain a field titled with the - I<Name> field and containing the descendents of the B<RT::Keyword> as - choices. If the I<Single> field of this B<RT::KeywordSelect> is true, each - object must be associated (via an B<RT::ObjectKeywords> record) to a single - descendent. If the I<Single> field is false, each object may be connect to - zero, one, or many descendents. - -=item Searches for this object type will contain a selection field titled with - the I<Name> field and containing the descendents of the B<RT::Keyword> as - choices. - -=item If I<ObjectField> is defined (one of: Queue), all of the above apply only - when the value of I<ObjectField> (Queue) in B<ObjectType> (Ticket) matches - I<ObjectValue>. - -=back - - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::KeywordSelects); - -=end testing - - -=head1 METHODS - - -=cut - - -=over 4 - -=item new CURRENT_USER - -Takes a single argument, an RT::CurrentUser object. Instantiates a new -(uncreated) RT::KeywordSelect object. - -=cut -# }}} - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "KeywordSelects"; - $self->SUPER::_Init(@_); -} -# }}} - -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - Name => 'read/write', - Keyword => 'read/write', # link to Keywords. Can be specified by id - Single => 'read/write', # bool (described below) - - Depth => 'read/write', #- If non-zero, limits the descendents to this number of levels deep. - ObjectType => 'read/write', # currently only C<Ticket> - ObjectField => 'read/write', #optional, currently only C<Queue> - ObjectValue => 'read/write', #constrains KeywordSelect function to when B<ObjectType>.I<ObjectField> equals I<ObjectValue> - Disabled => 'read/write' - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} -# }}} - -# {{{ sub LoadByName - -=head2 LoadByName( Name => [NAME], Queue => [QUEUE_ID]) -. Takes a queue id and a keyword select name. - tries to load the keyword select for that queue. if that fails, it tries to load it - without a queue specified. - -=cut - - -sub LoadByName { - my $self = shift; - my %args = ( Name => undef, - Queue => undef, - @_ - ); - if ($args{'Queue'}) { - #Try to get the keyword select for this queue - $self->LoadByCols( Name => $args{'Name'}, - ObjectType => 'Ticket', - ObjectField => 'Queue', - ObjectValue => $args{'Queue'}); - } - unless ($self->Id) { #if that failed to load an object - #Try to get the keyword select of that name that's global - $self->LoadByCols( Name => $args{'Name'}, - ObjectType => 'Ticket', - ObjectField => 'Queue', - ObjectValue => '0'); - } - - return($self->Id); - -} - -# }}} - -# {{{ sub Create -=item Create KEY => VALUE, ... - -Takes a list of key/value pairs and creates a the object. Returns the id of -the newly created record, or false if there was an error. - -Keys are: - -Keyword - link to Keywords. Can be specified by id. -Name - A name for this KeywordSelect -Single - bool (described above) -Depth - If non-zero, limits the descendents to this number of levels deep. -ObjectType - currently only C<Ticket> -ObjectField - optional, currently only C<Queue> -ObjectValue - constrains KeywordSelect function to when B<ObjectType>.I<ObjectField> equals I<ObjectValue> - -=cut - -sub Create { - my $self = shift; - my %args = ( Keyword => undef, - Single => 1, - Depth => 0, - Name => undef, - ObjectType => undef, - ObjectField => undef, - ObjectValue => undef, - @_); - - #If we're talking about a keyword select based on a ticket's 'Queue' field - if ( ($args{'ObjectField'} eq 'Queue') and - ($args{'ObjectType'} eq 'Ticket')) { - - #If we're talking about a keywordselect for all queues - if ($args{'ObjectValue'} == 0) { - unless( $self->CurrentUserHasSystemRight('AdminKeywordSelects')) { - return (0, 'Permission Denied'); - } - } - #otherwise, we're talking about a keywordselect for a specific queue - else { - unless ($self->CurrentUserHasQueueRight( Right => 'AdminKeywordSelects', - Queue => $args{'ObjectValue'})) { - return (0, 'Permission Denied'); - } - } - } - else { - return (0, "Can't create a KeywordSelect for that object/field combo"); - } - - my $Keyword = new RT::Keyword($self->CurrentUser); - - if ( $args{'Keyword'} && $args{'Keyword'} !~ /^\d+$/ ) { - $Keyword->LoadByPath($args{'Keyword'}); - } - else { - $Keyword->Load($args{'Keyword'}); - } - - unless ($Keyword->Id) { - $RT::Logger->debug("Keyword ".$args{'Keyword'} ." not found\n"); - return(0, 'Keyword not found'); - } - - $args{'Name'} = $Keyword->Name if (!$args{'Name'}); - - my $val = $self->SUPER::Create( Name => $args{'Name'}, - Keyword => $Keyword->Id, - Single => $args{'Single'}, - Depth => $args{'Depth'}, - ObjectType => $args{'ObjectType'}, - ObjectField => $args{'ObjectField'}, - ObjectValue => $args{'ObjectValue'}); - if ($val) { - return ($val, 'KeywordSelect Created'); - } - else { - return (0, 'System error. KeywordSelect not created'); - - } -} -# }}} - -# {{{ sub Delete - -sub Delete { - my $self = shift; - - return (0, 'Deleting this object would break referential integrity.'); -} - -# }}} - - -# {{{ sub SetDisabled - -=head2 Sub SetDisabled - -Toggles the KeywordSelect's disabled flag. - - -=cut - -sub SetDisabled { - my $self = shift; - my $value = shift; - - unless ($self->CurrentUserHasRight('AdminKeywordSelects')) { - return (0, "Permission Denied"); - } - return($self->_Set(Field => 'Disabled', Value => $value)); -} - -# }}} - -# {{{ sub KeywordObj - -=item KeywordObj - -Returns the B<RT::Keyword> referenced by the I<Keyword> field. - -=cut - -sub KeywordObj { - my $self = shift; - - my $Keyword = new RT::Keyword($self->CurrentUser); - $Keyword->Load( $self->Keyword ); #or ? - return($Keyword); -} -# }}} - -# {{{ sub Object - -=item Object - -Returns the object (currently only RT::Queue) specified by ObjectField and ObjectValue. - -=cut - -sub Object { - my $self = shift; - if ( $self->ObjectField eq 'Queue' ) { - my $Queue = new RT::Queue($self->CurrentUser); - $Queue->Load( $self->ObjectValue ); - return ($Queue); - } else { - $RT::Logger->error("$self trying to load an object value for a non-queue object"); - return (undef); - } -} - -# }}} - -# {{{ sub _Set - -# does an acl check, then passes off the call -sub _Set { - my $self = shift; - - unless ($self->CurrentUserHasRight('AdminKeywordSelects')) { - return (0, "Permission Denied"); - } - - return ($self->SUPER::_Set(@_)); - -} - -# }}} - - -# {{{ sub CurrentUserHasQueueRight - -=head2 CurrentUserHasQueueRight ( Queue => QUEUEID, Right => RIGHTNANAME ) - -Check to see whether the current user has the specified right for the specified queue. - -=cut - -sub CurrentUserHasQueueRight { - my $self = shift; - my %args = (Queue => undef, - Right => undef, - @_ - ); - return ($self->HasRight( Right => $args{'Right'}, - Principal => $self->CurrentUser->UserObj, - Queue => $args{'Queue'})); -} - -# }}} - -# {{{ sub CurrentUserHasSystemRight - -=head2 CurrentUserHasSystemRight RIGHTNAME - -Check to see whether the current user has the specified right for the 'system' scope. - -=cut - -sub CurrentUserHasSystemRight { - my $self = shift; - my $right = shift; - $RT::Logger->debug("$self in hashsysright for right $right\n"); - return ($self->HasRight( Right => $right, - System => 1, - Principal => $self->CurrentUser->UserObj)); -} - -# }}} - -# {{{ sub CurrentUserHasRight - -=item CurrentUserHasRight RIGHT [QUEUEID] - -Takes a rightname as a string. Can take a queue id as a second -optional parameter, which can be useful to a routine like create. -Helper menthod for HasRight. Presets Principal to CurrentUser then -calls HasRight. - -=cut - -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - return ($self->HasRight( Principal => $self->CurrentUser->UserObj, - Right => $right, - )); -} - -# }}} - -# {{{ sub HasRight - -=item HasRight - -Takes a param-hash consisting of "Right" and "Principal" Principal is -an RT::User object or an RT::CurrentUser object. "Right" is a textual -Right string that applies to KeywordSelects - -=cut - -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => undef, - Queue => undef, - System => undef, - @_ ); - - #If we're explicitly specifying a queue, as we need to do on create - if ($args{'Queue'}) { - return ($args{'Principal'}->HasQueueRight(Right => $args{'Right'}, - Queue => $args{'Queue'})); - } - #else if we're specifying to check a system right - elsif ($args{'System'}) { - return( $args{'Principal'}->HasSystemRight( $args{'Right'} )); - } - - #else if we 're using the object's queue - elsif (($self->__Value('ObjectField') eq 'Queue') and - ($self->__Value('ObjectValue') > 0 )) { - return ($args{'Principal'}->HasQueueRight(Right => $args{'Right'}, - Queue => $self->__Value('ObjectValue') )); - } - - #If the object is system scoped. - else { - return( $args{'Principal'}->HasSystemRight( $args{'Right'} )); - } -} - -# }}} - -=back - -=head1 AUTHORS - -Ivan Kohler <ivan-rt@420.am>, Jesse Vincent <jesse@fsck.com> - -=head1 BUGS - -The ACL system for this object is more byzantine than it should be. reworking it eventually -would be a good thing. - -=head1 SEE ALSO - -L<RT::KeywordSelects>, L<RT::Keyword>, L<RT::Keywords>, L<RT::ObjectKeyword>, -L<RT::ObjectKeywords>, L<RT::Record> - -=cut - -1; - diff --git a/rt/lib/RT/KeywordSelects.pm b/rt/lib/RT/KeywordSelects.pm deleted file mode 100644 index c220b39f9..000000000 --- a/rt/lib/RT/KeywordSelects.pm +++ /dev/null @@ -1,143 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/KeywordSelects.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - - - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Scrip); - -=end testing - -=cut - - -package RT::KeywordSelects; - -use strict; -use vars qw( @ISA ); -use RT::EasySearch; -use RT::KeywordSelect; - -@ISA = qw( RT::EasySearch ); - -# {{{ _Init -sub _Init { - my $self = shift; - $self->{'table'} = 'KeywordSelects'; - $self->{'primary_key'} = 'id'; - return ($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub _DoSearch - -=head2 _DoSearch - - A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless -we're explicitly trying to see them. - -=cut - -sub _DoSearch { - my $self = shift; - - #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. - unless($self->{'find_disabled_rows'}) { - $self->LimitToEnabled(); - } - - return($self->SUPER::_DoSearch(@_)); - -} - -# }}} - -# {{{ sub LimitToQueue -=head2 LimitToQueue - -Takes a queue id. Limits the returned set to KeywordSelects for that queue. -Repeated calls will be OR'd together. - -=cut - -sub LimitToQueue { - my $self = shift; - my $queue = shift; - - $self->Limit( FIELD => 'ObjectValue', - VALUE => $queue, - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR' - ); - - $self->Limit( FIELD => 'ObjectType', - VALUE => 'Ticket', - OPERATOR => '='); - - $self->Limit( FIELD => 'ObjectField', - VALUE => 'Queue', - OPERATOR => '='); - - -} -# }}} - -# {{{ sub LimitToGlobals - -=head2 LimitToGlobals - -Limits the returned set to KeywordSelects for all queues. -Repeated calls will be OR'd together. - -=cut - -sub LimitToGlobals { - my $self = shift; - - $self->Limit( FIELD => 'ObjectType', - VALUE => 'Ticket', - OPERATOR => '='); - - $self->Limit( FIELD => 'ObjectField', - VALUE => 'Queue', - OPERATOR => '='); - - $self->Limit( FIELD => 'ObjectValue', - VALUE => '0', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR' - ); - -} -# }}} - -# {{{ sub IncludeGlobals -=head2 IncludeGlobals - -Include KeywordSelects which apply globally in the set of returned results - -=cut - - -sub IncludeGlobals { - my $self = shift; - $self->Limit( FIELD => 'ObjectValue', - VALUE => '0', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR' - ); - - -} -# }}} - -# {{{ sub NewItem -sub NewItem { - my $self = shift; - #my $Handle = shift; - return (new RT::KeywordSelect($self->CurrentUser)); -} -# }}} -1; - diff --git a/rt/lib/RT/Keywords.pm b/rt/lib/RT/Keywords.pm deleted file mode 100644 index a9ecda2bc..000000000 --- a/rt/lib/RT/Keywords.pm +++ /dev/null @@ -1,106 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Keywords.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - -=head1 NAME - - RT::Keywords - a collection of RT::Keyword objects - -=head1 SYNOPSIS - - use RT::Keywords; - my $keywords = RT::Keywords->new($user); - $keywords->LimitToParent(0); - while my ($keyword = $keywords->Next()) { - print $keyword->Name ."\n"; - } - - -=head1 DESCRIPTION - - -=head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Keywords); - -=end testing - -=cut - -package RT::Keywords; - -use strict; -use vars qw( @ISA ); -use RT::EasySearch; -use RT::Keyword; - -@ISA = qw( RT::EasySearch ); - - -# {{{ sub _Init - -sub _Init { - my $self = shift; - $self->{'table'} = 'Keywords'; - $self->{'primary_key'} = 'id'; - - # By default, order by name - $self->OrderBy( ALIAS => 'main', - FIELD => 'Name', - ORDER => 'ASC'); - - return ($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub _DoSearch - -=head2 _DoSearch - - A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless -we're explicitly trying to see them. - -=cut - -sub _DoSearch { - my $self = shift; - - #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. - unless($self->{'find_disabled_rows'}) { - $self->LimitToEnabled(); - } - - return($self->SUPER::_DoSearch(@_)); - -} - -# }}} - -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return (RT::Keyword->new($self->CurrentUser)); -} -# }}} - -# {{{ sub LimitToParent - -=head2 LimitToParent - -Takes a parent id and limits the returned keywords to children of that parent. - -=cut - -sub LimitToParent { - my $self = shift; - my $parent = shift; - $self->Limit( FIELD => 'Parent', - VALUE => $parent, - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR' ); -} -# }}} - -1; - diff --git a/rt/lib/RT/ObjectKeyword.pm b/rt/lib/RT/ObjectKeyword.pm deleted file mode 100644 index 287d41fab..000000000 --- a/rt/lib/RT/ObjectKeyword.pm +++ /dev/null @@ -1,192 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/ObjectKeyword.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Released under the terms of the GNU Public License - -=head1 NAME - - RT::ObjectKeyword -- a keyword tied to an object in the database - -=head1 SYNOPSIS - - use RT::ObjectKeyword; - - -=head1 DESCRIPTION - -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in Ticket, Queue and other similar objects. - - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::ObjectKeyword); - -=end testing - -=head1 METHODS - -=cut - -package RT::ObjectKeyword; - -use strict; -use vars qw(@ISA); -use RT::Record; - -@ISA = qw(RT::Record); - -sub _Init { - my $self = shift; - $self->{'table'} = "ObjectKeywords"; - $self->SUPER::_Init(@_); -} - -sub _Accessible { - my $self = shift; - - my %cols = ( - Keyword => 'read/write', #link to the B<RT::Keyword> - KeywordSelect => 'read/write', #link to the B<RT::KeywordSelect> - ObjectType => 'read/write', #currently only C<Ticket> - ObjectId => 'read/write', #link to the object specified in I<ObjectType> - ); - return ($self->SUPER::_Accessible( @_, %cols)); -} - - - -# TODO - post 2.0. add in _Set and _Value, so we can ACL them. protected at another API level - - -=head1 NAME - - RT::ObjectKeyword - Manipulate an RT::ObjectKeyword record - -=head1 SYNOPSIS - - use RT::ObjectKeyword; - - my $keyword = RT::ObjectKeyword->new($CurrentUser); - $keyword->Create; - -=head1 DESCRIPTION - -An B<RT::ObjectKeyword> object associates an B<RT::Keyword> with another -object (currently only B<RT::Ticket>. - -This module should B<NEVER> be called directly by client code. its API is entirely through RT ticket or other objects which can have keywords assigned. - - -=head1 METHODS - -=over 4 - -=item new CURRENT_USER - -Takes a single argument, an RT::CurrentUser object. Instantiates a new -(uncreated) RT::ObjectKeyword object. - -=cut - -# {{{ sub Create - -=item Create KEY => VALUE, ... - -Takes a list of key/value pairs and creates a the object. Returns the id of -the newly created record, or false if there was an error. - -Keys are: - -Keyword - link to the B<RT::Keyword> -ObjectType - currently only C<Ticket> -ObjectId - link to the object specified in I<ObjectType> - -=cut - - -sub Create { - my $self = shift; - my %args = (Keyword => undef, - KeywordSelect => undef, - ObjectType => undef, - ObjectId => undef, - @_); - - #TODO post 2.0 ACL check - - return ($self->SUPER::Create( Keyword => $args{'Keyword'}, - KeywordSelect => $args{'KeywordSelect'}, - ObjectType => $args{'ObjectType'}, - ObjectId => $args{'ObjectId'})) -} -# }}} - -# {{{ sub KeywordObj - -=item KeywordObj - -Returns an B<RT::Keyword> object of the Keyword associated with this ObjectKeyword. - -=cut - -sub KeywordObj { - my $self = shift; - my $keyword = new RT::Keyword($self->CurrentUser); - $keyword->Load($self->Keyword); - return ($keyword); -} -# }}} - -# {{{ sub KeywordSelectObj - -=item KeywordSelectObj - -Returns an B<RT::KeywordSelect> object of the KeywordSelect associated with this ObjectKeyword. - -=cut - -sub KeywordSelectObj { - my $self = shift; - my $keyword_sel = new RT::KeywordSelect($self->CurrentUser); - $keyword_sel->Load($self->KeywordSelect); - return ($keyword_sel); -} -# }}} - -# {{{ sub KeywordRelativePath - -=item KeywordRelativePath - -Returns a string of the Keyword's path relative to this ObjectKeyword's KeywordSelect - - - -=cut - -sub KeywordRelativePath { - my $self = shift; - return($self->KeywordObj->RelativePath( - $self->KeywordSelectObj->KeywordObj->Path)); - -} -# }}} - -=back - -=head1 AUTHOR - -Ivan Kohler <ivan-rt@420.am> - -=head1 BUGS - -Yes. - -=head1 SEE ALSO - -L<RT::ObjectKeywords>, L<RT::Keyword>, L<RT::Keywords>, L<RT::Ticket>, -L<RT::Record> - -=cut - -1; - diff --git a/rt/lib/RT/ObjectKeywords.pm b/rt/lib/RT/ObjectKeywords.pm deleted file mode 100644 index 5df996e37..000000000 --- a/rt/lib/RT/ObjectKeywords.pm +++ /dev/null @@ -1,234 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/ObjectKeywords.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - -package RT::ObjectKeywords; - -use strict; -use vars qw( @ISA ); - -=head1 NAME - - RT::ObjectKeywords - note warning - -=head1 WARNING - -This module should B<NEVER> be called directly by client code. its API is entirely through RT ticket or other objects which can have keywords assigned. - -=head1 SYNOPSIS - -=head1 DESCRIPTION - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::ObjectKeywords); - -=end testing - -=cut - -use RT::EasySearch; -use RT::ObjectKeyword; - -@ISA = qw( RT::EasySearch ); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = 'ObjectKeywords'; - $self->{'primary_key'} = 'id'; - return ($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return (new RT::ObjectKeyword($self->CurrentUser)); -} -# }}} - -# {{{ sub LimitToKeywordSelect - -=head2 LimitToKeywordSelect - - Takes a B<RT::KeywordSelect> id or Nameas its single argument. limits the returned set of ObjectKeywords -to ObjectKeywords which apply to that ticket - -=cut - - -sub LimitToKeywordSelect { - my $self = shift; - my $keywordselect = shift; - - if ($keywordselect =~ /^\d+$/) { - - $self->Limit(FIELD => 'KeywordSelect', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - VALUE => "$keywordselect"); - } - - #We're limiting by name. time to be klever - else { - my $ks = $self->NewAlias('KeywordSelects'); - $self->Join(ALIAS1 => $ks, FIELD1 => 'id', - ALIAS2 => 'main', FIELD2 => 'KeywordSelect'); - - $self->Limit( ALIAS => "$ks", - FIELD => 'Name', - VALUE => "$keywordselect", - OPERATOR => "=", - ENTRYAGGREGATOR => "OR"); - - $self->Limit ( ALIAS => "$ks", - FIELD => 'ObjectType', - VALUE => 'Ticket', - OPERATOR => '=', - ); - - $self->Limit ( ALIAS => "$ks", - FIELD => 'ObjectField', - VALUE => 'Queue', - OPERATOR => '=', - ); - - - # TODO +++ we need to be able to limit the returned - # keywordselects to ones that apply only to this queue - # $self->Limit( ALIAS => "$ks", - # FIELD => 'ObjectValue', - # VALUE => $self->QueueObj->Id, - # OPERATOR => "=", - # ENTRYAGGREGATOR => "OR"); - - } - - - -} - -# }}} - -# {{{ LimitToTicket - -=head2 LimitToTicket TICKET_ID - - Takes an B<RT::Ticket> id as its single argument. limits the returned set of ObjectKeywords -to ObjectKeywords which apply to that ticket - -=cut - -sub LimitToTicket { - my $self = shift; - my $ticket = shift; - $self->Limit(FIELD => 'ObjectId', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - VALUE => "$ticket"); - - $self->Limit(FIELD => 'ObjectType', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - VALUE => "Ticket"); - -} - -# }}} - -# {{{ sub _DoSearch -#wrap around _DoSearch so that we can build the hash of returned -#values - -sub _DoSearch { - my $self = shift; - # $RT::Logger->debug("Now in ".$self."->_DoSearch"); - my $return = $self->SUPER::_DoSearch(@_); - # $RT::Logger->debug("In $self ->_DoSearch. return from SUPER::_DoSearch was $return\n"); - $self->_BuildHash(); - return ($return); -} -# }}} - -# {{{ sub _BuildHash -#Build a hash of this ACL's entries. -sub _BuildHash { - my $self = shift; - - while (my $entry = $self->Next) { - - my $hashkey = $entry->Keyword; - $self->{'as_hash'}->{"$hashkey"} =1; - } - -} -# }}} - -# {{{ HasEntry - -=head2 HasEntry KEYWORD_ID - - Takes a keyword id and returns true if this ObjectKeywords object has an entry for that -keyword. Returns undef otherwise. - -=cut - -sub HasEntry { - - my $self = shift; - my $keyword = shift; - - - #if we haven't done the search yet, do it now. - $self->_DoSearch(); - - # $RT::Logger->debug("Now in ".$self."->HasEntry\n"); - - - if ($self->{'as_hash'}->{ $keyword } == 1) { - return(1); - } - else { - return(undef); - } -} - -# }}} - -# {{{ sub RelativePaths - -=head2 RelativePaths - -# Return a (reference to a) list of KeywordRelativePaths - -=cut - -sub RelativePaths { - my $self = shift; - - my @list; - - # Here $key is a RT::ObjectKeyword - while (my $key=$self->Next()) { - push(@list, $key->KeywordRelativePath); - } - return(\@list); -} -# }}} - -# {{{ sub RelativePathsAsString - -=head2 RelativePathsAsString - -# Returns the RT::ObjectKeywords->RelativePaths as a comma seperated string - -=cut - -sub RelativePathsAsString { - my $self = shift; - return(join(", ",@{$self->KeywordRelativePaths})); -} -# }}} - -1; - diff --git a/rt/lib/RT/TestHarness.pm b/rt/lib/RT/TestHarness.pm deleted file mode 100644 index 160e9e636..000000000 --- a/rt/lib/RT/TestHarness.pm +++ /dev/null @@ -1,14 +0,0 @@ -use lib "/opt/rt2/etc/"; - -use RT::Interface::CLI qw(CleanEnv LoadConfig DBConnect - GetCurrentUser GetMessageContent); - -#Clean out all the nasties from the environment -CleanEnv(); - -#Load etc/config.pm and drop privs -LoadConfig(); - - -use RT; -RT::Init; diff --git a/rt/lib/RT/Watcher.pm b/rt/lib/RT/Watcher.pm deleted file mode 100755 index c7c6100cf..000000000 --- a/rt/lib/RT/Watcher.pm +++ /dev/null @@ -1,313 +0,0 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Watcher.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2001 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - -=head1 NAME - - RT::Watcher - RT Watcher object - -=head1 SYNOPSIS - - use RT::Watcher; - - -=head1 DESCRIPTION - -This module should never be called directly by client code. it\'s an internal module which -should only be accessed through exported APIs in Ticket, Queue and other similar objects. - -=head1 METHODS - -=begin testing - -ok(require RT::TestHarness); -ok(require RT::Watcher); - -=end testing - -=cut - -package RT::Watcher; -use RT::Record; -@ISA= qw(RT::Record); - - -# {{{ sub _Init - -sub _Init { - my $self = shift; - - $self->{'table'} = "Watchers"; - return ($self->SUPER::_Init(@_)); - -} -# }}} - -# {{{ sub Create - -=head2 Create PARAMHASH - -Create a new watcher object with the following Attributes: - -Scope: Ticket or Queue -Value: Ticket or queue id -Type: Requestor, Cc or AdminCc. Requestor is not supported for a scope of \'Queue\' -Email: The email address of the watcher. If the email address maps to an RT User, this is resolved -to an Owner object instead. -Owner: The RT user id of the \'owner\' of this watcher object. - -=cut - -sub Create { - my $self = shift; - my %args = ( - Owner => undef, - Email => undef, - Value => undef, - Scope => undef, - Type => undef, - Quiet => 0, - @_ # get the real argumentlist - ); - - #Do we have someone this applies to? - unless (($args{'Owner'} =~ /^(\d+)$/) || ($args{'Email'} =~ /\@/)) { - return (0, "No user or email address specified"); - } - - #if we only have an email address, try to resolve it to an owner - if ($args{'Owner'} == 0) { - my $User = new RT::User($RT::SystemUser); - $User->LoadByEmail($args{'Email'}); - if ($User->id) { - $args{'Owner'} = $User->id; - delete $args{'Email'}; - } - } - - - if ($args{'Type'} eq "Requestor" and $args{'Owner'} == 0) { - # Requestors *MUST* have an account - - my $Address = RT::CanonicalizeAddress($args{'Email'}); - - my $NewUser = RT::User->new($RT::SystemUser); - my ($Val, $Message) = - $NewUser->Create(Name => $Address, - EmailAddress => $Address, - RealName => $Address, - Password => undef, - Privileged => 0, - Comments => 'Autocreated on ticket submission' - ); - return (0, "Could not create watcher for requestor") - unless $Val; - if ($NewUser->id) { - $args{'Owner'} = $NewUser->id; - delete $args{'Email'}; - } - } - - - - - #Make sure we\'ve got a valid type - #TODO --- move this to ValidateType - return (0, "Invalid Type") - unless ($args{'Type'} =~ /^(Requestor|Cc|AdminCc)$/i); - - my $id = $self->SUPER::Create(%args); - if ($id) { - return (1,"Interest noted"); - } - else { - return (0, "Error adding watcher"); - } -} -# }}} - -# {{{ sub Load - -=head2 Load ID - - Loads a watcher by the primary key of the watchers table ($Watcher->id) - -=cut - -sub Load { - my $self = shift; - my $identifier = shift; - - if ($identifier !~ /\D/) { - $self->SUPER::LoadById($identifier); - } - else { - return (0, "That's not a numerical id"); - } -} - -# }}} - -# {{{ sub LoadByValue - -=head2 LoadByValue PARAMHASH - -LoadByValue takes a parameter hash with the following attributes: - - Email, Owner, Scope, Type, Value - -The same rules enforced at create are enforced by Load. - -Returns a tuple of (retval, msg). Retval is 1 on success and 0 on failure. -msg describes what happened in a human readable form. - -=cut - -sub LoadByValue { - my $self = shift; - my %args = ( Email => undef, - Owner => undef, - Scope => undef, - Type => undef, - Value => undef, - @_); - - #TODO: all this code is being copied from Create. that\'s silly - - #Do we have someone this applies to? - unless (($args{'Owner'} =~ /^(\d*)$/) || ($args{'Email'} =~ /\@/)) { - return (0, "No user or email address specified"); - } - - #if we only have an email address, try to resolve it to an owner - unless ($args{'Owner'}) { - my $User = new RT::User($RT::SystemUser); - $User->LoadByEmail($args{'Email'}); - if ($User->id > 0) { - $args{'Owner'} = $User->id; - delete $args{'Email'}; - } - } - - if ((defined ($args{'Type'})) and - ($args{'Type'} !~ /^(Requestor|Cc|AdminCc)$/i)) { - return (0, "Invalid Type"); - } - if ($args{'Owner'}) { - $self->LoadByCols( Type => $args{'Type'}, - Value => $args{'Value'}, - Owner => $args{'Owner'}, - Scope => $args{'Scope'}, - ); - } - else { - $self->LoadByCols( Type => $args{'Type'}, - Email => $args{'Email'}, - Value => $args{'Value'}, - Scope => $args{'Scope'}, - ); - } - unless ($self->Id) { - return(0, "Couldn\'t find that watcher"); - } - return (1, "Watcher loaded"); -} - -# }}} - -# {{{ sub OwnerObj - -=head2 OwnerObj - -Return an RT Owner Object for this Watcher, if we have one - -=cut - -sub OwnerObj { - my $self = shift; - if (!defined $self->{'OwnerObj'}) { - require RT::User; - $self->{'OwnerObj'} = RT::User->new($self->CurrentUser); - if ($self->Owner) { - $self->{'OwnerObj'}->Load($self->Owner); - } else { - return $RT::Nobody->UserObj; - } - } - return ($self->{'OwnerObj'}); -} -# }}} - -# {{{ sub Email - -=head2 Email - -This custom data accessor does the right thing and returns -the 'Email' attribute of this Watcher object. If that's undefined, -it returns the 'EmailAddress' attribute of its 'Owner' object, which is -an RT::User object. - -=cut - -sub Email { - my $self = shift; - - # IF Email is defined, return that. Otherwise, return the Owner's email address - if (defined($self->__Value('Email'))) { - return ($self->__Value('Email')); - } - elsif ($self->Owner) { - return ($self->OwnerObj->EmailAddress); - } - else { - return ("Data error"); - } -} -# }}} - -# {{{ sub IsUser - -=head2 IsUser - -Returns true if this watcher object is tied to a user object. (IE it -isn't sending to some other email address). -Otherwise, returns undef - -=cut - -sub IsUser { - my $self = shift; - # if this watcher has an email address glued onto it, - # return undef - - if (defined($self->__Value('Email'))) { - return undef; - } - else { - return 1; - } -} - -# }}} - -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - Email => 'read/write', - Scope => 'read/write', - Value => 'read/write', - Type => 'read/write', - Quiet => 'read/write', - Owner => 'read/write', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} -# }}} - -1; - diff --git a/rt/lib/RT/Watchers.pm b/rt/lib/RT/Watchers.pm deleted file mode 100755 index c55adda3f..000000000 --- a/rt/lib/RT/Watchers.pm +++ /dev/null @@ -1,226 +0,0 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Watchers.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - -=head1 NAME - - RT::Watchers - Collection of RT Watcher objects - -=head1 SYNOPSIS - - use RT::Watchers; - my $watchers = new RT::Watchers($CurrentUser); - while (my $watcher = $watchers->Next()) { - print $watcher->Id . "is a watcher"; - } - -=head1 DESCRIPTION - -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in Ticket, Queue and other similar objects. - - -=head1 METHODS - -=begin testing - -ok(require RT::TestHarness); -ok(require RT::Watchers); - -=end testing - -=cut - -package RT::Watchers; - -use strict; -use vars qw( @ISA ); - - -require RT::EasySearch; -require RT::Watcher; -@ISA= qw(RT::EasySearch); - - -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'table'} = "Watchers"; - $self->{'primary_key'} = "id"; - return($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub Limit - -=head2 Limit - - A wrapper around RT::EasySearch::Limit which sets -the default entry aggregator to 'AND' - -=cut - -sub Limit { - my $self = shift; - my %args = ( ENTRYAGGREGATOR => 'AND', - @_); - - $self->SUPER::Limit(%args); -} -# }}} - -# {{{ sub LimitToTicket - -=head2 LimitToTicket - -Takes a single arg which is a ticket id -Limits to watchers of that ticket - -=cut - -sub LimitToTicket { - my $self = shift; - my $ticket = shift; - $self->Limit( ENTRYAGGREGATOR => 'OR', - FIELD => 'Value', - VALUE => $ticket); - $self->Limit (ENTRYAGGREGATOR => 'AND', - FIELD => 'Scope', - VALUE => 'Ticket'); -} -# }}} - -# {{{ sub LimitToQueue - -=head2 LimitToQueue - -Takes a single arg, which is a queue id -Limits to watchers of that queue. - -=cut - -sub LimitToQueue { - my $self = shift; - my $queue = shift; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Value', - VALUE => $queue); - $self->Limit (ENTRYAGGREGATOR => 'AND', - FIELD => 'Scope', - VALUE => 'Queue'); -} -# }}} - -# {{{ sub LimitToType - -=head2 LimitToType - -Takes a single string as its argument. That string is a watcher type -which is one of 'Requestor', 'Cc' or 'AdminCc' -Limits to watchers of that type - -=cut - - -sub LimitToType { - my $self = shift; - my $type = shift; - $self->Limit(FIELD => 'Type', - VALUE => "$type"); -} -# }}} - -# {{{ sub LimitToRequestors - -=head2 LimitToRequestors - -Limits to watchers of type 'Requestor' - -=cut - -sub LimitToRequestors { - my $self = shift; - $self->LimitToType("Requestor"); -} -# }}} - -# {{{ sub LimitToCc - -=head2 LimitToCc - -Limits to watchers of type 'Cc' - -=cut - -sub LimitToCc { - my $self = shift; - $self->LimitToType("Cc"); -} -# }}} - -# {{{ sub LimitToAdminCc - -=head2 LimitToAdminCc - -Limits to watchers of type AdminCc - -=cut - -sub LimitToAdminCc { - my $self = shift; - $self->LimitToType("AdminCc"); -} -# }}} - -# {{{ sub Emails - -=head2 Emails - -# Return a (reference to a) list of emails - -=cut - -sub Emails { - my $self = shift; - my @list; # List is a list of watcher email addresses - - # $watcher is an RT::Watcher object - while (my $watcher=$self->Next()) { - push(@list, $watcher->Email); - } - return \@list; -} -# }}} - -# {{{ sub EmailsAsString - -=head2 EmailsAsString - -# Returns the RT::Watchers->Emails as a comma seperated string - -=cut - -sub EmailsAsString { - my $self = shift; - return(join(", ",@{$self->Emails})); -} -# }}} - -# {{{ sub NewItem - - - -sub NewItem { - my $self = shift; - - use RT::Watcher; - my $item = new RT::Watcher($self->CurrentUser); - return($item); -} -# }}} -1; - - - - diff --git a/rt/lib/test.pl b/rt/lib/test.pl deleted file mode 100644 index f0da5df27..000000000 --- a/rt/lib/test.pl +++ /dev/null @@ -1,52 +0,0 @@ -# Before `make install' is performed this script should be runnable with -# `make test'. After `make install' it should work as `perl test.pl' - -######################### We start with some black magic to print on failure. - -# Change 1..1 below to 1..last_test_to_print . -# (It may become useful if the test is moved to ./t subdirectory.) - -BEGIN { $| = 1; print "1..1\n"; } -END {print "not ok 1\n" unless $loaded;} -use RT; -$loaded = 1; -print "ok 1\n"; - -######################### End of black magic. - -# Insert your test code below (better if it prints "ok 13" -# (correspondingly "not ok 13") depending on the success of chunk 13 -# of the test code): - -use RT::Record; -use RT::EasySearch; -use RT::Handle; -use RT::Ticket; -use RT::Tickets; -use RT::ACE; -use RT::ACL; -use RT::Watcher; -use RT::Watchers; -use RT::Scrip; -use RT::Scrips; -use RT::ScripAction; -use RT::ScripCondition; -use RT::ScripActions; -use RT::ScripConditions; -use RT::Transaction; -use RT::Transactions; -use RT::Group; -use RT::GroupMembers; -use RT::User; -use RT::Users; -use RT::CurrentUser; -use RT::Attachment; -use RT::Attachments; -use RT::Keyword; -use RT::Keywords; -use RT::KeywordSelect; -use RT::KeywordSelects; -use RT::ObjectKeyword; -use RT::ObjectKeywords; -use RT::Date; - -- cgit v1.2.1 From 945721f48f74d5cfffef7c7cf3a3d6bc2521f5dd Mon Sep 17 00:00:00 2001 From: ivan <ivan> Date: Tue, 15 Jul 2003 13:16:32 +0000 Subject: import of rt 3.0.4 --- rt/lib/RT.pm | 191 +- rt/lib/RT.pm.in | 304 + rt/lib/RT/ACE.pm | 806 +-- rt/lib/RT/ACE_Overlay.pm | 907 +++ rt/lib/RT/ACL.pm | 329 +- rt/lib/RT/ACL_Overlay.pm | 295 + rt/lib/RT/Action/AutoOpen.pm | 86 + rt/lib/RT/Action/Autoreply.pm | 40 +- rt/lib/RT/Action/CreateTickets.pm | 564 ++ rt/lib/RT/Action/EscalatePriority.pm | 142 + rt/lib/RT/Action/Generic.pm | 56 +- rt/lib/RT/Action/Notify.pm | 83 +- rt/lib/RT/Action/NotifyAsComment.pm | 34 +- rt/lib/RT/Action/ResolveMembers.pm | 35 +- rt/lib/RT/Action/SendEmail.pm | 699 ++- rt/lib/RT/Action/SetPriority.pm | 61 + rt/lib/RT/Action/UserDefined.pm | 71 + rt/lib/RT/Attachment.pm | 601 +- rt/lib/RT/Attachment_Overlay.pm | 571 ++ rt/lib/RT/Attachments.pm | 136 +- rt/lib/RT/Attachments_Overlay.pm | 116 + rt/lib/RT/Base.pm | 97 + rt/lib/RT/CachedGroupMember.pm | 258 + rt/lib/RT/CachedGroupMember_Overlay.pm | 323 ++ rt/lib/RT/CachedGroupMembers.pm | 115 + rt/lib/RT/CachedGroupMembers_Overlay.pm | 148 + rt/lib/RT/Condition/AnyTransaction.pm | 34 +- rt/lib/RT/Condition/BeforeDue.pm | 64 + rt/lib/RT/Condition/Generic.pm | 55 +- rt/lib/RT/Condition/Overdue.pm | 68 + rt/lib/RT/Condition/OwnerChange.pm | 102 + rt/lib/RT/Condition/PriorityExceeds.pm | 57 + rt/lib/RT/Condition/QueueChange.pm | 57 + rt/lib/RT/Condition/StatusChange.pm | 35 +- rt/lib/RT/Condition/UserDefined.pm | 57 + rt/lib/RT/CurrentUser.pm | 166 +- rt/lib/RT/CustomField.pm | 340 ++ rt/lib/RT/CustomFieldValue.pm | 294 + rt/lib/RT/CustomFieldValues.pm | 121 + rt/lib/RT/CustomFieldValues_Overlay.pm | 47 + rt/lib/RT/CustomField_Overlay.pm | 560 ++ rt/lib/RT/CustomFields.pm | 121 + rt/lib/RT/CustomFields_Overlay.pm | 135 + rt/lib/RT/Date.pm | 335 +- rt/lib/RT/EmailParser.pm | 784 +++ rt/lib/RT/Group.pm | 430 +- rt/lib/RT/GroupMember.pm | 231 +- rt/lib/RT/GroupMember_Overlay.pm | 351 ++ rt/lib/RT/GroupMembers.pm | 124 +- rt/lib/RT/GroupMembers_Overlay.pm | 126 + rt/lib/RT/Group_Overlay.pm | 1260 +++++ rt/lib/RT/Groups.pm | 135 +- rt/lib/RT/Groups_Overlay.pm | 298 + rt/lib/RT/Handle.pm | 62 +- rt/lib/RT/I18N.pm | 430 ++ rt/lib/RT/I18N/cs.pm | 68 + rt/lib/RT/I18N/cs.po | 4496 +++++++++++++++ rt/lib/RT/I18N/de.po | 4500 +++++++++++++++ rt/lib/RT/I18N/en.po | 88 + rt/lib/RT/I18N/es.po | 4749 ++++++++++++++++ rt/lib/RT/I18N/fi.po | 4750 ++++++++++++++++ rt/lib/RT/I18N/fr.po | 4959 +++++++++++++++++ rt/lib/RT/I18N/he.po | 4871 ++++++++++++++++ rt/lib/RT/I18N/i_default.pm | 86 + rt/lib/RT/I18N/ja.po | 4822 ++++++++++++++++ rt/lib/RT/I18N/nl.po | 4819 ++++++++++++++++ rt/lib/RT/I18N/no.po | 4879 ++++++++++++++++ rt/lib/RT/I18N/pt_br.po | 4829 ++++++++++++++++ rt/lib/RT/I18N/ru.po | 4826 ++++++++++++++++ rt/lib/RT/I18N/zh_cn.po | 6384 +++++++++++++++++++++ rt/lib/RT/I18N/zh_tw.po | 6416 ++++++++++++++++++++++ rt/lib/RT/Interface/CLI.pm | 112 +- rt/lib/RT/Interface/Email.pm | 683 +-- rt/lib/RT/Interface/Email/Auth/MailFrom.pm | 131 + rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm | 63 + rt/lib/RT/Interface/Web.pm | 1124 ++-- rt/lib/RT/Link.pm | 487 +- rt/lib/RT/Link_Overlay.pm | 360 ++ rt/lib/RT/Links.pm | 153 +- rt/lib/RT/Links_Overlay.pm | 125 + rt/lib/RT/Principal.pm | 212 + rt/lib/RT/Principal_Overlay.pm | 557 ++ rt/lib/RT/Principals.pm | 115 + rt/lib/RT/Principals_Overlay.pm | 52 + rt/lib/RT/Queue.pm | 961 +--- rt/lib/RT/Queue_Overlay.pm | 1012 ++++ rt/lib/RT/Queues.pm | 162 +- rt/lib/RT/Queues_Overlay.pm | 130 + rt/lib/RT/Record.pm | 400 +- rt/lib/RT/Scrip.pm | 654 ++- rt/lib/RT/ScripAction.pm | 385 +- rt/lib/RT/ScripAction_Overlay.pm | 217 + rt/lib/RT/ScripActions.pm | 137 +- rt/lib/RT/ScripActions_Overlay.pm | 87 + rt/lib/RT/ScripCondition.pm | 366 +- rt/lib/RT/ScripCondition_Overlay.pm | 210 + rt/lib/RT/ScripConditions.pm | 142 +- rt/lib/RT/ScripConditions_Overlay.pm | 87 + rt/lib/RT/Scrip_Overlay.pm | 507 ++ rt/lib/RT/Scrips.pm | 162 +- rt/lib/RT/Scrips_Overlay.pm | 133 + rt/lib/RT/Search/ActiveTicketsInQueue.pm | 78 + rt/lib/RT/Search/Generic.pm | 128 + rt/lib/RT/SearchBuilder.pm | 200 + rt/lib/RT/System.pm | 165 + rt/lib/RT/Template.pm | 512 +- rt/lib/RT/Template_Overlay.pm | 411 ++ rt/lib/RT/Templates.pm | 143 +- rt/lib/RT/Templates_Overlay.pm | 141 + rt/lib/RT/Ticket.pm | 3026 ++-------- rt/lib/RT/TicketCustomFieldValue.pm | 286 + rt/lib/RT/TicketCustomFieldValue_Overlay.pm | 52 + rt/lib/RT/TicketCustomFieldValues.pm | 115 + rt/lib/RT/TicketCustomFieldValues_Overlay.pm | 86 + rt/lib/RT/Ticket_Overlay.pm | 4040 ++++++++++++++ rt/lib/RT/Tickets.pm | 1806 +----- rt/lib/RT/Tickets_Overlay.pm | 2055 +++++++ rt/lib/RT/Tickets_Overlay_SQL.pm | 382 ++ rt/lib/RT/Transaction.pm | 895 +-- rt/lib/RT/Transaction_Overlay.pm | 817 +++ rt/lib/RT/Transactions.pm | 129 +- rt/lib/RT/Transactions_Overlay.pm | 86 + rt/lib/RT/URI.pm | 244 + rt/lib/RT/URI/base.pm | 129 + rt/lib/RT/URI/fsck_com_rt.pm | 247 + rt/lib/RT/User.pm | 1696 +++--- rt/lib/RT/User_Overlay.pm | 1589 ++++++ rt/lib/RT/Users.pm | 298 +- rt/lib/RT/Users_Overlay.pm | 290 + rt/lib/t/00smoke.t | 14 + rt/lib/t/00smoke.t.in | 14 + rt/lib/t/01harness.t | 12 + rt/lib/t/01harness.t.in | 12 + rt/lib/t/02regression.t | 44 + rt/lib/t/02regression.t.in | 44 + rt/lib/t/03web.pl | 62 + rt/lib/t/03web.pl.in | 62 + rt/lib/t/04_send_email.pl | 389 ++ rt/lib/t/04_send_email.pl.in | 389 ++ rt/lib/t/data/8859-15-message-series/dir | 356 ++ rt/lib/t/data/8859-15-message-series/msg1 | 36 + rt/lib/t/data/8859-15-message-series/msg2 | 36 + rt/lib/t/data/8859-15-message-series/msg3 | 35 + rt/lib/t/data/8859-15-message-series/msg4 | 35 + rt/lib/t/data/8859-15-message-series/msg5 | 35 + rt/lib/t/data/8859-15-message-series/msg6 | 35 + rt/lib/t/data/8859-15-message-series/msg7 | 36 + rt/lib/t/data/multipart-alternative-with-umlaut | 62 + rt/lib/t/data/nested-mime-sample | 396 ++ rt/lib/t/data/nested-rfc-822 | 253 + rt/lib/t/data/new-ticket-from-iso-8859-1 | 31 + rt/lib/t/data/new-ticket-from-iso-8859-1-full | 38 + rt/lib/t/data/russian-subject-no-content-type | 42 + rt/lib/t/data/text-html-in-russian | 87 + rt/lib/t/data/text-html-with-umlaut | 35 + rt/lib/t/regression/00placeholder | 1 + rt/lib/t/regression/mime_tests | 19 + 157 files changed, 100194 insertions(+), 11877 deletions(-) create mode 100644 rt/lib/RT.pm.in create mode 100644 rt/lib/RT/ACE_Overlay.pm create mode 100644 rt/lib/RT/ACL_Overlay.pm create mode 100644 rt/lib/RT/Action/AutoOpen.pm create mode 100644 rt/lib/RT/Action/CreateTickets.pm create mode 100644 rt/lib/RT/Action/EscalatePriority.pm create mode 100644 rt/lib/RT/Action/SetPriority.pm create mode 100644 rt/lib/RT/Action/UserDefined.pm create mode 100644 rt/lib/RT/Attachment_Overlay.pm create mode 100644 rt/lib/RT/Attachments_Overlay.pm create mode 100644 rt/lib/RT/Base.pm create mode 100644 rt/lib/RT/CachedGroupMember.pm create mode 100644 rt/lib/RT/CachedGroupMember_Overlay.pm create mode 100644 rt/lib/RT/CachedGroupMembers.pm create mode 100644 rt/lib/RT/CachedGroupMembers_Overlay.pm create mode 100644 rt/lib/RT/Condition/BeforeDue.pm create mode 100644 rt/lib/RT/Condition/Overdue.pm create mode 100644 rt/lib/RT/Condition/OwnerChange.pm create mode 100644 rt/lib/RT/Condition/PriorityExceeds.pm create mode 100644 rt/lib/RT/Condition/QueueChange.pm create mode 100644 rt/lib/RT/Condition/UserDefined.pm create mode 100644 rt/lib/RT/CustomField.pm create mode 100644 rt/lib/RT/CustomFieldValue.pm create mode 100644 rt/lib/RT/CustomFieldValues.pm create mode 100644 rt/lib/RT/CustomFieldValues_Overlay.pm create mode 100644 rt/lib/RT/CustomField_Overlay.pm create mode 100644 rt/lib/RT/CustomFields.pm create mode 100644 rt/lib/RT/CustomFields_Overlay.pm create mode 100644 rt/lib/RT/EmailParser.pm create mode 100644 rt/lib/RT/GroupMember_Overlay.pm create mode 100644 rt/lib/RT/GroupMembers_Overlay.pm create mode 100644 rt/lib/RT/Group_Overlay.pm create mode 100644 rt/lib/RT/Groups_Overlay.pm create mode 100644 rt/lib/RT/I18N.pm create mode 100644 rt/lib/RT/I18N/cs.pm create mode 100644 rt/lib/RT/I18N/cs.po create mode 100644 rt/lib/RT/I18N/de.po create mode 100644 rt/lib/RT/I18N/en.po create mode 100644 rt/lib/RT/I18N/es.po create mode 100644 rt/lib/RT/I18N/fi.po create mode 100644 rt/lib/RT/I18N/fr.po create mode 100644 rt/lib/RT/I18N/he.po create mode 100644 rt/lib/RT/I18N/i_default.pm create mode 100644 rt/lib/RT/I18N/ja.po create mode 100644 rt/lib/RT/I18N/nl.po create mode 100644 rt/lib/RT/I18N/no.po create mode 100644 rt/lib/RT/I18N/pt_br.po create mode 100644 rt/lib/RT/I18N/ru.po create mode 100644 rt/lib/RT/I18N/zh_cn.po create mode 100644 rt/lib/RT/I18N/zh_tw.po create mode 100644 rt/lib/RT/Interface/Email/Auth/MailFrom.pm create mode 100644 rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm create mode 100644 rt/lib/RT/Link_Overlay.pm create mode 100644 rt/lib/RT/Links_Overlay.pm create mode 100644 rt/lib/RT/Principal.pm create mode 100644 rt/lib/RT/Principal_Overlay.pm create mode 100644 rt/lib/RT/Principals.pm create mode 100644 rt/lib/RT/Principals_Overlay.pm create mode 100644 rt/lib/RT/Queue_Overlay.pm create mode 100644 rt/lib/RT/Queues_Overlay.pm create mode 100644 rt/lib/RT/ScripAction_Overlay.pm create mode 100644 rt/lib/RT/ScripActions_Overlay.pm create mode 100644 rt/lib/RT/ScripCondition_Overlay.pm create mode 100644 rt/lib/RT/ScripConditions_Overlay.pm create mode 100644 rt/lib/RT/Scrip_Overlay.pm create mode 100644 rt/lib/RT/Scrips_Overlay.pm create mode 100644 rt/lib/RT/Search/ActiveTicketsInQueue.pm create mode 100644 rt/lib/RT/Search/Generic.pm create mode 100644 rt/lib/RT/SearchBuilder.pm create mode 100644 rt/lib/RT/System.pm create mode 100644 rt/lib/RT/Template_Overlay.pm create mode 100644 rt/lib/RT/Templates_Overlay.pm create mode 100644 rt/lib/RT/TicketCustomFieldValue.pm create mode 100644 rt/lib/RT/TicketCustomFieldValue_Overlay.pm create mode 100644 rt/lib/RT/TicketCustomFieldValues.pm create mode 100644 rt/lib/RT/TicketCustomFieldValues_Overlay.pm create mode 100644 rt/lib/RT/Ticket_Overlay.pm create mode 100644 rt/lib/RT/Tickets_Overlay.pm create mode 100644 rt/lib/RT/Tickets_Overlay_SQL.pm create mode 100644 rt/lib/RT/Transaction_Overlay.pm create mode 100644 rt/lib/RT/Transactions_Overlay.pm create mode 100644 rt/lib/RT/URI.pm create mode 100644 rt/lib/RT/URI/base.pm create mode 100644 rt/lib/RT/URI/fsck_com_rt.pm create mode 100644 rt/lib/RT/User_Overlay.pm create mode 100644 rt/lib/RT/Users_Overlay.pm create mode 100644 rt/lib/t/00smoke.t create mode 100644 rt/lib/t/00smoke.t.in create mode 100644 rt/lib/t/01harness.t create mode 100644 rt/lib/t/01harness.t.in create mode 100644 rt/lib/t/02regression.t create mode 100644 rt/lib/t/02regression.t.in create mode 100644 rt/lib/t/03web.pl create mode 100644 rt/lib/t/03web.pl.in create mode 100644 rt/lib/t/04_send_email.pl create mode 100644 rt/lib/t/04_send_email.pl.in create mode 100644 rt/lib/t/data/8859-15-message-series/dir create mode 100644 rt/lib/t/data/8859-15-message-series/msg1 create mode 100644 rt/lib/t/data/8859-15-message-series/msg2 create mode 100644 rt/lib/t/data/8859-15-message-series/msg3 create mode 100644 rt/lib/t/data/8859-15-message-series/msg4 create mode 100644 rt/lib/t/data/8859-15-message-series/msg5 create mode 100644 rt/lib/t/data/8859-15-message-series/msg6 create mode 100644 rt/lib/t/data/8859-15-message-series/msg7 create mode 100644 rt/lib/t/data/multipart-alternative-with-umlaut create mode 100644 rt/lib/t/data/nested-mime-sample create mode 100644 rt/lib/t/data/nested-rfc-822 create mode 100644 rt/lib/t/data/new-ticket-from-iso-8859-1 create mode 100644 rt/lib/t/data/new-ticket-from-iso-8859-1-full create mode 100644 rt/lib/t/data/russian-subject-no-content-type create mode 100644 rt/lib/t/data/text-html-in-russian create mode 100644 rt/lib/t/data/text-html-with-umlaut create mode 100644 rt/lib/t/regression/00placeholder create mode 100644 rt/lib/t/regression/mime_tests (limited to 'rt/lib') diff --git a/rt/lib/RT.pm b/rt/lib/RT.pm index 1cfc428ee..90c332bc0 100644 --- a/rt/lib/RT.pm +++ b/rt/lib/RT.pm @@ -1,11 +1,82 @@ +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2002 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; -use RT::Handle; -use RT::CurrentUser; use strict; +use RT::I18N; +use RT::CurrentUser; +use RT::System; + +use vars qw($VERSION $System $SystemUser $Nobody $Handle $Logger + $CORE_CONFIG_FILE + $SITE_CONFIG_FILE + $VENDOR_CONFIG_FILE + $BasePath + $EtcPath + $VarPath + $LocalPath + $LocalEtcPath + $LocalLexiconPath + $LogDir + $MasonComponentRoot + $MasonLocalComponentRoot + $MasonDataDir + $MasonSessionDir +); + +$VERSION = '3.0.4'; +$CORE_CONFIG_FILE = "/opt/rt3/etc/RT_Config.pm"; +$SITE_CONFIG_FILE = "/opt/rt3/etc/RT_SiteConfig.pm"; + +$BasePath = '/opt/rt3'; + +$EtcPath = '/opt/rt3/etc'; +$VarPath = '/opt/rt3/var'; +$LocalPath = '/opt/rt3/local'; +$LocalEtcPath = '/opt/rt3/local/etc'; +$LocalLexiconPath = '/opt/rt3/local/po'; + +# $MasonComponentRoot is where your rt instance keeps its mason html files + +$MasonComponentRoot = '/opt/rt3/share/html'; + +# $MasonLocalComponentRoot is where your rt instance keeps its site-local +# mason html files. + +$MasonLocalComponentRoot = '/opt/rt3/local/html'; + +# $MasonDataDir Where mason keeps its datafiles + +$MasonDataDir = '/opt/rt3/var/mason_data'; + +# RT needs to put session data (for preserving state between connections +# via the web interface) +$MasonSessionDir = '/opt/rt3/var/session_data'; -use vars qw($VERSION $SystemUser $Nobody $Handle $Logger); -$VERSION = '!!RT_VERSION!!'; =head1 NAME @@ -14,19 +85,45 @@ $VERSION = '!!RT_VERSION!!'; =head1 SYNOPSIS A fully featured request tracker package - =head1 DESCRIPTION +=cut + +=item LoadConfig + +Load RT's config file. First, go after the core config file. +After that, try to load the vendor config. +After that, go after the site config. + +=cut + +sub LoadConfig { + local *Set = sub { $_[0] = $_[1] unless defined $_[0] }; + if ( -f "$SITE_CONFIG_FILE" ) { + require $SITE_CONFIG_FILE + || die ("Couldn't load RT config file '$SITE_CONFIG_FILE'\n$@"); + } + require $CORE_CONFIG_FILE + || die ("Couldn't load RT config file '$CORE_CONFIG_FILE'\n$@"); + RT::I18N->Init; +} + +=item Init + + Conenct to the database, set up logging. + =cut sub Init { + require RT::Handle; #Get a database connection - $Handle = new RT::Handle($RT::DatabaseType); + unless ($Handle && $Handle->dbh->ping) { + $Handle = RT::Handle->new(); + } $Handle->Connect(); - #RT's system user is a genuine database user. its id lives here $SystemUser = new RT::CurrentUser(); $SystemUser->LoadByName('RT_System'); @@ -34,7 +131,9 @@ sub Init { #RT's "nobody user" is a genuine database user. its ID lives here. $Nobody = new RT::CurrentUser(); $Nobody->LoadByName('Nobody'); - + + $System = RT::System->new(); + InitLogging(); } @@ -51,30 +150,81 @@ sub InitLogging { $, = ''; use Log::Dispatch 1.6; - use Log::Dispatch::File; - use Log::Dispatch::Screen; - $Logger=Log::Dispatch->new(); + unless ($RT::Logger) { + + $RT::Logger=Log::Dispatch->new(); if ($RT::LogToFile) { - my $filename = $RT::LogToFileNamed || "$RT::LogDir/rt.log"; - $Logger->add(Log::Dispatch::File->new + unless (-d $RT::LogDir && -w $RT::LogDir) { + # localizing here would be hard when we don't have a current user yet + # die $self->loc("Log directory [_1] not found or couldn't be written.\n RT can't run.", $RT::LogDir); + die ("Log directory $RT::LogDir not found or couldn't be written.\n RT can't run."); + } + + my $filename; + if ($RT::LogToFileNamed =~ m![/\\]!) { + # looks like an absolute path. + $filename = $RT::LogToFileNamed; + } + else { + $filename = "$RT::LogDir/$RT::LogToFileNamed"; + } + require Log::Dispatch::File; + + + $RT::Logger->add(Log::Dispatch::File->new ( name=>'rtlog', min_level=> $RT::LogToFile, filename=> $filename, mode=>'append', - callbacks => sub {my %p=@_; return "[".gmtime(time)."] [".$p{level}."]: $p{message}\n"} - + callbacks => sub { my %p = @_; + my ($package, $filename, $line) = caller(5); + return "[".gmtime(time)."] [".$p{level}."]: $p{message} ($filename:$line)\n"} + + + )); } if ($RT::LogToScreen) { - $Logger->add(Log::Dispatch::Screen->new + require Log::Dispatch::Screen; + $RT::Logger->add(Log::Dispatch::Screen->new ( name => 'screen', min_level => $RT::LogToScreen, + callbacks => sub { my %p = @_; + my ($package, $filename, $line) = caller(5); + return "[".gmtime(time)."] [".$p{level}."]: $p{message} ($filename:$line)\n" + }, + + stderr => 1 + )); + } + if ($RT::LogToSyslog) { + require Log::Dispatch::Syslog; + $RT::Logger->add(Log::Dispatch::Syslog->new + ( name => 'syslog', + ident => 'RT', + min_level => $RT::LogToSyslog, + callbacks => sub { my %p = @_; + my ($package, $filename, $line) = caller(5); + + # syswrite() cannot take utf8; turn it off here. + Encode::_utf8_off($p{message}); + + if ($p{level} eq 'debug') { + + return "$p{message}\n" } + else { + return "$p{message} ($filename:$line)\n"} + }, + stderr => 1 )); } + + } + # {{{ Signal handlers ## This is the default handling of warnings and die'ings in the code @@ -88,6 +238,7 @@ $SIG{__WARN__} = sub {$RT::Logger->warning($_[0])}; $SIG{__DIE__} = sub { unless ($^S || !defined $^S ) { + $RT::Handle->Rollback(); $RT::Logger->crit("$_[0]"); exit(-1); } @@ -127,10 +278,6 @@ sub DropSetGIDPermissions { } -=head1 NAME - -RT - Request Tracker - =head1 SYNOPSIS =head1 BUGS @@ -140,7 +287,6 @@ RT - Request Tracker =begin testing -ok (require RT::TestHarness); ok ($RT::Nobody->Name() eq 'Nobody', "Nobody is nobody"); ok ($RT::Nobody->Name() ne 'root', "Nobody isn't named root"); @@ -152,4 +298,7 @@ ok ($RT::SystemUser->Name() ne 'noname', "The system user isn't noname"); =cut +eval "require RT_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT_Local.pm}); + 1; diff --git a/rt/lib/RT.pm.in b/rt/lib/RT.pm.in new file mode 100644 index 000000000..065734e2f --- /dev/null +++ b/rt/lib/RT.pm.in @@ -0,0 +1,304 @@ +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2002 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; +use strict; +use RT::I18N; +use RT::CurrentUser; +use RT::System; + +use vars qw($VERSION $System $SystemUser $Nobody $Handle $Logger + $CORE_CONFIG_FILE + $SITE_CONFIG_FILE + $VENDOR_CONFIG_FILE + $BasePath + $EtcPath + $VarPath + $LocalPath + $LocalEtcPath + $LocalLexiconPath + $LogDir + $MasonComponentRoot + $MasonLocalComponentRoot + $MasonDataDir + $MasonSessionDir +); + +$VERSION = '@RT_VERSION_MAJOR@.@RT_VERSION_MINOR@.@RT_VERSION_PATCH@'; +$CORE_CONFIG_FILE = "@CONFIG_FILE_PATH@/RT_Config.pm"; +$SITE_CONFIG_FILE = "@CONFIG_FILE_PATH@/RT_SiteConfig.pm"; + +$BasePath = '@RT_PATH@'; + +$EtcPath = '@RT_ETC_PATH@'; +$VarPath = '@RT_VAR_PATH@'; +$LocalPath = '@RT_LOCAL_PATH@'; +$LocalEtcPath = '@LOCAL_ETC_PATH@'; +$LocalLexiconPath = '@LOCAL_LEXICON_PATH@'; + +# $MasonComponentRoot is where your rt instance keeps its mason html files + +$MasonComponentRoot = '@MASON_HTML_PATH@'; + +# $MasonLocalComponentRoot is where your rt instance keeps its site-local +# mason html files. + +$MasonLocalComponentRoot = '@MASON_LOCAL_HTML_PATH@'; + +# $MasonDataDir Where mason keeps its datafiles + +$MasonDataDir = '@MASON_DATA_PATH@'; + +# RT needs to put session data (for preserving state between connections +# via the web interface) +$MasonSessionDir = '@MASON_SESSION_PATH@'; + + + +=head1 NAME + + RT - Request Tracker + +=head1 SYNOPSIS + + A fully featured request tracker package + +=head1 DESCRIPTION + + +=cut + +=item LoadConfig + +Load RT's config file. First, go after the core config file. +After that, try to load the vendor config. +After that, go after the site config. + +=cut + +sub LoadConfig { + local *Set = sub { $_[0] = $_[1] unless defined $_[0] }; + if ( -f "$SITE_CONFIG_FILE" ) { + require $SITE_CONFIG_FILE + || die ("Couldn't load RT config file '$SITE_CONFIG_FILE'\n$@"); + } + require $CORE_CONFIG_FILE + || die ("Couldn't load RT config file '$CORE_CONFIG_FILE'\n$@"); + RT::I18N->Init; +} + +=item Init + + Conenct to the database, set up logging. + +=cut + +sub Init { + require RT::Handle; + #Get a database connection + unless ($Handle && $Handle->dbh->ping) { + $Handle = RT::Handle->new(); + } + $Handle->Connect(); + + #RT's system user is a genuine database user. its id lives here + $SystemUser = new RT::CurrentUser(); + $SystemUser->LoadByName('RT_System'); + + #RT's "nobody user" is a genuine database user. its ID lives here. + $Nobody = new RT::CurrentUser(); + $Nobody->LoadByName('Nobody'); + + $System = RT::System->new(); + + InitLogging(); +} + +=head2 InitLogging + +Create the RT::Logger object. + +=cut +sub InitLogging { + + # We have to set the record seperator ($, man perlvar) + # or Log::Dispatch starts getting + # really pissy, as some other module we use unsets it. + + $, = ''; + use Log::Dispatch 1.6; + + unless ($RT::Logger) { + + $RT::Logger=Log::Dispatch->new(); + + if ($RT::LogToFile) { + + unless (-d $RT::LogDir && -w $RT::LogDir) { + # localizing here would be hard when we don't have a current user yet + # die $self->loc("Log directory [_1] not found or couldn't be written.\n RT can't run.", $RT::LogDir); + die ("Log directory $RT::LogDir not found or couldn't be written.\n RT can't run."); + } + + my $filename; + if ($RT::LogToFileNamed =~ m![/\\]!) { + # looks like an absolute path. + $filename = $RT::LogToFileNamed; + } + else { + $filename = "$RT::LogDir/$RT::LogToFileNamed"; + } + require Log::Dispatch::File; + + + $RT::Logger->add(Log::Dispatch::File->new + ( name=>'rtlog', + min_level=> $RT::LogToFile, + filename=> $filename, + mode=>'append', + callbacks => sub { my %p = @_; + my ($package, $filename, $line) = caller(5); + return "[".gmtime(time)."] [".$p{level}."]: $p{message} ($filename:$line)\n"} + + + + )); + } + if ($RT::LogToScreen) { + require Log::Dispatch::Screen; + $RT::Logger->add(Log::Dispatch::Screen->new + ( name => 'screen', + min_level => $RT::LogToScreen, + callbacks => sub { my %p = @_; + my ($package, $filename, $line) = caller(5); + return "[".gmtime(time)."] [".$p{level}."]: $p{message} ($filename:$line)\n" + }, + + stderr => 1 + )); + } + if ($RT::LogToSyslog) { + require Log::Dispatch::Syslog; + $RT::Logger->add(Log::Dispatch::Syslog->new + ( name => 'syslog', + ident => 'RT', + min_level => $RT::LogToSyslog, + callbacks => sub { my %p = @_; + my ($package, $filename, $line) = caller(5); + + # syswrite() cannot take utf8; turn it off here. + Encode::_utf8_off($p{message}); + + if ($p{level} eq 'debug') { + + return "$p{message}\n" } + else { + return "$p{message} ($filename:$line)\n"} + }, + + stderr => 1 + )); + } + + } + +# {{{ Signal handlers + +## This is the default handling of warnings and die'ings in the code +## (including other used modules - maybe except for errors catched by +## Mason). It will log all problems through the standard logging +## mechanism (see above). + +$SIG{__WARN__} = sub {$RT::Logger->warning($_[0])}; + +#When we call die, trap it and log->crit with the value of the die. + +$SIG{__DIE__} = sub { + unless ($^S || !defined $^S ) { + $RT::Handle->Rollback(); + $RT::Logger->crit("$_[0]"); + exit(-1); + } + else { + #Get out of here if we're in an eval + die $_[0]; + } +}; + +# }}} + +} + +# }}} + + +sub SystemUser { + return($SystemUser); +} + +sub Nobody { + return ($Nobody); +} + + +=head2 DropSetGIDPermissions + +Drops setgid permissions. + +=cut + +sub DropSetGIDPermissions { + # Now that we got the config read in, we have the database + # password and don't need to be setgid + # make the effective group the real group + $) = $(; +} + + +=head1 SYNOPSIS + +=head1 BUGS + +=head1 SEE ALSO + + +=begin testing + + +ok ($RT::Nobody->Name() eq 'Nobody', "Nobody is nobody"); +ok ($RT::Nobody->Name() ne 'root', "Nobody isn't named root"); +ok ($RT::SystemUser->Name() eq 'RT_System', "The system user is RT_System"); +ok ($RT::SystemUser->Name() ne 'noname', "The system user isn't noname"); + + +=end testing + +=cut + +eval "require RT_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT_Local.pm}); + +1; diff --git a/rt/lib/RT/ACE.pm b/rt/lib/RT/ACE.pm index d4681cf44..1501a125e 100755 --- a/rt/lib/RT/ACE.pm +++ b/rt/lib/RT/ACE.pm @@ -1,774 +1,304 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ACE.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::ACE - RT\'s ACE object +=head1 NAME -=head1 SYNOPSIS +RT::ACE - use RT::ACE; - my $ace = new RT::ACE($CurrentUser); +=head1 SYNOPSIS =head1 DESCRIPTION - =head1 METHODS -=begin testing - -ok(require RT::TestHarness); -ok(require RT::ACE); - -=end testing - =cut package RT::ACE; -use RT::Record; -@ISA= qw(RT::Record); - -use vars qw (%SCOPES - %QUEUERIGHTS - %SYSTEMRIGHTS - %LOWERCASERIGHTNAMES - ); - -%SCOPES = ( - System => 'System-level right', - Queue => 'Queue-level right' - ); - -# {{{ Descriptions of rights - -# Queue rights are the sort of queue rights that can only be granted -# to real people or groups -%QUEUERIGHTS = ( - SeeQueue => 'Can this principal see this queue', - AdminQueue => 'Create, delete and modify queues', - ShowACL => 'Display Access Control List', - ModifyACL => 'Modify Access Control List', - ModifyQueueWatchers => 'Modify the queue watchers', - AdminKeywordSelects => 'Create, delete and modify keyword selections', - - - ModifyTemplate => 'Modify email templates for this queue', - ShowTemplate => 'Display email templates for this queue', - ModifyScrips => 'Modify Scrips for this queue', - ShowScrips => 'Display Scrips for this queue', - - ShowTicket => 'Show ticket summaries', - ShowTicketComments => 'Show ticket private commentary', +use RT::Record; - Watch => 'Sign up as a ticket Requestor or ticket or queue Cc', - WatchAsAdminCc => 'Sign up as a ticket or queue AdminCc', - CreateTicket => 'Create tickets in this queue', - ReplyToTicket => 'Reply to tickets', - CommentOnTicket => 'Comment on tickets', - OwnTicket => 'Own tickets', - ModifyTicket => 'Modify tickets', - DeleteTicket => 'Delete tickets' - ); +use vars qw( @ISA ); +@ISA= qw( RT::Record ); +sub _Init { + my $self = shift; -# System rights are rights granted to the whole system -%SYSTEMRIGHTS = ( - SuperUser => 'Do anything and everything', - AdminKeywords => 'Creatte, delete and modify keywords', - AdminGroups => 'Create, delete and modify groups', - AdminUsers => 'Create, Delete and Modify users', - ModifySelf => 'Modify one\'s own RT account', - - ); - -# }}} - -# {{{ Descriptions of principals - -%TICKET_METAPRINCIPALS = ( Owner => 'The owner of a ticket', - Requestor => 'The requestor of a ticket', - Cc => 'The CC of a ticket', - AdminCc => 'The administrative CC of a ticket', - ); - -# }}} - -# {{{ We need to build a hash of all rights, keyed by lower case names - -#since you can't do case insensitive hash lookups - -foreach $right (keys %QUEUERIGHTS) { - $LOWERCASERIGHTNAMES{lc $right}=$right; -} -foreach $right (keys %SYSTEMRIGHTS) { - $LOWERCASERIGHTNAMES{lc $right}=$right; + $self->Table('ACL'); + $self->SUPER::_Init(@_); } -# }}} - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ACL"; - return($self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub LoadByValues -=head2 LoadByValues PARAMHASH -Load an ACE by specifying a paramhash with the following fields: - PrincipalId => undef, - PrincipalType => undef, - RightName => undef, - RightScope => undef, - RightAppliesTo => undef, +=item Create PARAMHASH -=cut +Create takes a hash of values and creates a row in the database: -sub LoadByValues { - my $self = shift; - my %args = (PrincipalId => undef, - PrincipalType => undef, - RightName => undef, - RightScope => undef, - RightAppliesTo => undef, - @_); - - $self->LoadByCols (PrincipalId => $args{'PrincipalId'}, - PrincipalType => $args{'PrincipalType'}, - RightName => $args{'RightName'}, - RightScope => $args{'RightScope'}, - RightAppliesTo => $args{'RightAppliesTo'} - ); - - #If we couldn't load it. - unless ($self->Id) { - return (0, "ACE not found"); - } - # if we could - return ($self->Id, "ACE Loaded"); - -} + varchar(25) 'PrincipalType'. + int(11) 'PrincipalId'. + varchar(25) 'RightName'. + varchar(25) 'ObjectType'. + int(11) 'ObjectId'. + int(11) 'DelegatedBy'. + int(11) 'DelegatedFrom'. -# }}} - -# {{{ sub Create - -=head2 Create <PARAMS> +=cut -PARAMS is a parameter hash with the following elements: - PrincipalType => "Queue"|"User" - PrincipalId => an intentifier you can use to ->Load a user or group - RightName => the name of a right. in any case - RightScope => "System" | "Queue" - RightAppliesTo => a queue id or undef -=cut sub Create { my $self = shift; - my %args = ( PrincipalId => undef, - PrincipalType => undef, - RightName => undef, - RightScope => undef, - RightAppliesTo => undef, - @_ - ); - - # {{{ Validate the principal - my ($princ_obj); - if ($args{'PrincipalType'} eq 'User') { - $princ_obj = new RT::User($RT::SystemUser); - - } - elsif ($args{'PrincipalType'} eq 'Group') { - require RT::Group; - $princ_obj = new RT::Group($RT::SystemUser); - } - else { - return (0, 'Principal type '.$args{'PrincipalType'} . ' is invalid.'); - } - - $princ_obj->Load($args{'PrincipalId'}); - my $princ_id = $princ_obj->Id(); - - unless ($princ_id) { - return (0, 'Principal '.$args{'PrincipalId'}.' not found.'); - } - - # }}} - - #TODO allow loading of queues by name. - - # {{{ Check the ACL - if ($args{'RightScope'} eq 'System') { - - unless ($self->CurrentUserHasSystemRight('ModifyACL')) { - $RT::Logger->error("Permission Denied."); - return(undef); - } - } - - elsif ($args{'RightScope'} eq 'Queue') { - unless ($self->CurrentUserHasQueueRight( Queue => $args{'RightAppliesTo'}, - Right => 'ModifyACL')) { - return (0, 'Permission Denied.'); - } - - - - - } - #If it's not a scope we recognise, something scary is happening. - else { - $RT::Logger->err("RT::ACE->Create got a scope it didn't recognize: ". - $args{'RightScope'}." Bailing. \n"); - return(0,"System error. Unable to grant rights."); - } - - # }}} - - # {{{ Canonicalize and check the right name - $args{'RightName'} = $self->CanonicalizeRightName($args{'RightName'}); - - #check if it's a valid RightName - if ($args{'RightScope'} eq 'Queue') { - unless (exists $QUEUERIGHTS{$args{'RightName'}}) { - return(0, 'Invalid right'); - } - } - elsif ($args{'RightScope' eq 'System'}) { - unless (exists $SYSTEMRIGHTS{$args{'RightName'}}) { - return(0, 'Invalid right'); - } - } - # }}} - - # Make sure the right doesn't already exist. - $self->LoadByCols (PrincipalId => $princ_id, - PrincipalType => $args{'PrincipalType'}, - RightName => $args{'RightName'}, - RightScope => $args {'RightScope'}, - RightAppliesTo => $args{'RightAppliesTo'} - ); - if ($self->Id) { - return (0, 'That user already has that right'); - } - - my $id = $self->SUPER::Create( PrincipalId => $princ_id, - PrincipalType => $args{'PrincipalType'}, - RightName => $args{'RightName'}, - RightScope => $args {'RightScope'}, - RightAppliesTo => $args{'RightAppliesTo'} - ); - - - if ($id > 0 ) { - return ($id, 'Right Granted'); - } - else { - $RT::Logger->err('System error. right not granted.'); - return(0, 'System Error. right not granted'); - } -} - -# }}} - + my %args = ( + PrincipalType => '', + PrincipalId => '0', + RightName => '', + ObjectType => '', + ObjectId => '0', + DelegatedBy => '0', + DelegatedFrom => '0', + + @_); + $self->SUPER::Create( + PrincipalType => $args{'PrincipalType'}, + PrincipalId => $args{'PrincipalId'}, + RightName => $args{'RightName'}, + ObjectType => $args{'ObjectType'}, + ObjectId => $args{'ObjectId'}, + DelegatedBy => $args{'DelegatedBy'}, + DelegatedFrom => $args{'DelegatedFrom'}, +); -# {{{ sub Delete - -=head2 Delete - -Delete this object. - -=cut - -sub Delete { - my $self = shift; - - unless ($self->CurrentUserHasRight('ModifyACL')) { - return (0, 'Permission Denied'); - } - - - my ($val,$msg) = $self->SUPER::Delete(@_); - if ($val) { - return ($val, 'ACE Deleted'); - } - else { - return (0, 'ACE could not be deleted'); - } } -# }}} -# {{{ sub _BootstrapRight -=head2 _BootstrapRight +=item id -Grant a right with no error checking and no ACL. this is _only_ for -installation. If you use this routine without jesse@fsck.com's explicit -written approval, he will hunt you down and make you spend eternity -translating mozilla's code into FORTRAN or intercal. +Returns the current value of id. +(In the database, id is stored as int(11).) -=cut - -sub _BootstrapRight { - my $self = shift; - my %args = @_; - - my $id = $self->SUPER::Create( PrincipalId => $args{'PrincipalId'}, - PrincipalType => $args{'PrincipalType'}, - RightName => $args{'RightName'}, - RightScope => $args {'RightScope'}, - RightAppliesTo => $args{'RightAppliesTo'} - ); - - if ($id > 0 ) { - return ($id); - } - else { - $RT::Logger->err('System error. right not granted.'); - return(undef); - } - -} - -# }}} - -# {{{ sub CanonicalizeRightName - -=head2 CanonicalizeRightName <RIGHT> - -Takes a queue or system right name in any case and returns it in -the correct case. If it's not found, will return undef. =cut -sub CanonicalizeRightName { - my $self = shift; - my $right = shift; - $right = lc $right; - if (exists $LOWERCASERIGHTNAMES{"$right"}) { - return ($LOWERCASERIGHTNAMES{"$right"}); - } - else { - return (undef); - } -} - -# }}} -# {{{ sub QueueRights +=item PrincipalType -=head2 QueueRights +Returns the current value of PrincipalType. +(In the database, PrincipalType is stored as varchar(25).) -Returns a hash of all the possible rights at the queue scope -=cut -sub QueueRights { - return (%QUEUERIGHTS); -} +=item SetPrincipalType VALUE -# }}} -# {{{ sub SystemRights +Set PrincipalType to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, PrincipalType will be stored as a varchar(25).) -=head2 SystemRights - -Returns a hash of all the possible rights at the system scope =cut -sub SystemRights { - return (%SYSTEMRIGHTS); -} +=item PrincipalId -# }}} +Returns the current value of PrincipalId. +(In the database, PrincipalId is stored as int(11).) -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - PrincipalId => 'read/write', - PrincipalType => 'read/write', - RightName => 'read/write', - RightScope => 'read/write', - RightAppliesTo => 'read/write' - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} -# }}} -# {{{ sub AppliesToObj +=item SetPrincipalId VALUE -=head2 AppliesToObj -If the AppliesTo is a queue, returns the queue object. If it's -the system object, returns undef. If the user has no rights, returns undef. +Set PrincipalId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, PrincipalId will be stored as a int(11).) -=cut - -sub AppliesToObj { - my $self = shift; - if ($self->RightScope eq 'Queue') { - my $appliesto_obj = new RT::Queue($self->CurrentUser); - $appliesto_obj->Load($self->RightAppliesTo); - return($appliesto_obj); - } - elsif ($self->RightScope eq 'System') { - return (undef); - } - else { - $RT::Logger->warning("$self -> AppliesToObj called for an object ". - "of an unknown scope:" . $self->RightScope); - return(undef); - } -} - -# }}} - -# {{{ sub PrincipalObj - -=head2 PrincipalObj - -If the AppliesTo is a group, returns the group object. -If the AppliesTo is a user, returns the user object. -Otherwise, it logs a warning and returns undef. =cut -sub PrincipalObj { - my $self = shift; - my ($princ_obj); - - if ($self->PrincipalType eq 'Group') { - use RT::Group; - $princ_obj = new RT::Group($self->CurrentUser); - } - elsif ($self->PrincipalType eq 'User') { - $princ_obj = new RT::User($self->CurrentUser); - } - else { - $RT::Logger->warning("$self -> PrincipalObj called for an object ". - "of an unknown principal type:" . - $self->PrincipalType ."\n"); - return(undef); - } - - $princ_obj->Load($self->PrincipalId); - return($princ_obj); - -} - -# }}} - -# {{{ ACL related methods - -# {{{ sub _Set - -sub _Set { - my $self = shift; - return (0, "ACEs can only be created and deleted."); -} - -# }}} - -# {{{ sub _Value - -sub _Value { - my $self = shift; - - unless ($self->CurrentUserHasRight('ShowACL')) { - return (undef); - } - return ($self->__Value(@_)); -} - -# }}} +=item RightName +Returns the current value of RightName. +(In the database, RightName is stored as varchar(25).) -# {{{ sub CurrentUserHasQueueRight -=head2 CurrentUserHasQueueRight ( Queue => QUEUEID, Right => RIGHTNANAME ) -Check to see whether the current user has the specified right for the specified queue. - -=cut - -sub CurrentUserHasQueueRight { - my $self = shift; - my %args = (Queue => undef, - Right => undef, - @_ - ); - return ($self->HasRight( Right => $args{'Right'}, - Principal => $self->CurrentUser->UserObj, - Queue => $args{'Queue'})); -} +=item SetRightName VALUE -# }}} -# {{{ sub CurrentUserHasSystemRight -=head2 CurrentUserHasSystemRight RIGHTNAME +Set RightName to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, RightName will be stored as a varchar(25).) -Check to see whether the current user has the specified right for the 'system' scope. =cut -sub CurrentUserHasSystemRight { - my $self = shift; - my $right = shift; - return ($self->HasRight( Right => $right, - Principal => $self->CurrentUser->UserObj, - System => 1 - )); -} - -# }}} +=item ObjectType -# {{{ sub CurrentUserHasRight +Returns the current value of ObjectType. +(In the database, ObjectType is stored as varchar(25).) -=item CurrentUserHasRight RIGHT -Takes a rightname as a string. - -Helper menthod for HasRight. Presets Principal to CurrentUser then -calls HasRight. - -=cut -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - return ($self->HasRight( Principal => $self->CurrentUser->UserObj, - Right => $right, - )); -} -# }}} +=item SetObjectType VALUE -# {{{ sub HasRight -=item HasRight +Set ObjectType to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ObjectType will be stored as a varchar(25).) -Takes a param-hash consisting of "Right" and "Principal" Principal is -an RT::User object or an RT::CurrentUser object. "Right" is a textual -Right string that applies to KeywordSelects =cut -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => undef, - Queue => undef, - System => undef, - @_ ); - - #If we're explicitly specifying a queue, as we need to do on create - if (defined $args{'Queue'}) { - return ($args{'Principal'}->HasQueueRight(Right => $args{'Right'}, - Queue => $args{'Queue'})); - } - #else if we're specifying to check a system right - elsif ((defined $args{'System'}) and (defined $args{'Right'})) { - return( $args{'Principal'}->HasSystemRight( $args{'Right'} )); - } - - elsif ($self->__Value('RightScope') eq 'System') { - return $args{'Principal'}->HasSystemRight($args{'Right'}); - } - elsif ($self->__Value('RightScope') eq 'Queue') { - return $args{'Principal'}->HasQueueRight( Queue => $self->__Value('RightAppliesTo'), - Right => $args{'Right'} ); - } - else { - $RT::Logger->warning("$self: Trying to check an acl for a scope we ". - "don't understand:" . $self->__Value('RightScope') ."\n"); - return undef; - } - - - -} -# }}} - -# }}} - -1; - -__DATA__ - -# {{{ POD - -=head1 Out of date docs -=head2 Table Structure +=item ObjectId -PrincipalType, PrincipalId, Right,Scope,AppliesTo +Returns the current value of ObjectId. +(In the database, ObjectId is stored as int(11).) -=head1 The docs are out of date. so you know. -=head1 Scopes -Scope is the scope of the right granted, not the granularity of the grant. -For example, Queue and Ticket rights are both granted for a "queue." -Rights with a scope of 'System' don't have an AppliesTo. (They're global). -Rights with a scope of "Queue" are rights that act on a queue. -Rights with a scope of "System" are rights that act on some other aspect -of the system. +=item SetObjectId VALUE -=item Queue -=item System +Set ObjectId 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).) -=head1 Rights - -=head2 Scope: Queue - -=head2 Queue rights that apply to a ticket within a queue - -Create Ticket in <queue> - - Name: Create - Principals: <user> <group> -Display Ticket Summary in <queue> - - Name: Show - Principals: <user> <group> Owner Requestor Cc AdminCc - -Display Ticket History <queue> - - Name: ShowHistory - Principals: <user> <group> Owner Requestor Cc AdminCc - -Display Ticket Private Comments <queue> +=cut - Name: ShowComments - Principals: <user> <group> Owner Requestor Cc AdminCc -Reply to Ticket in <queue> +=item DelegatedBy - Name: Reply - Principals: <user> <group> Owner Requestor Cc AdminCc +Returns the current value of DelegatedBy. +(In the database, DelegatedBy is stored as int(11).) -Comment on Ticket in <queue> - Name: Comment - Principals: <user> <group> Owner Requestor Cc AdminCc -Modify Ticket in <queue> +=item SetDelegatedBy VALUE - Name: Modify - Principals: <user> <group> Owner Requestor Cc AdminCc -Delete Tickets in <queue> +Set DelegatedBy to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, DelegatedBy will be stored as a int(11).) - Name: Delete - Principals: <user> <group> Owner Requestor Cc AdminCc +=cut -=head2 Queue Rights that apply to a whole queue -These rights can only be granted to "real people" +=item DelegatedFrom -List Tickets in <queue> +Returns the current value of DelegatedFrom. +(In the database, DelegatedFrom is stored as int(11).) - Name: ListQueue - Principals: <user> <group> -Know that <queue> exists - - Name: See - Principals: <user> <group> -Display queue settings +=item SetDelegatedFrom VALUE - Name: Explore - Principals: <user> <group> -Modify Queue Watchers for <queue> +Set DelegatedFrom to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, DelegatedFrom will be stored as a int(11).) - Name: ModifyQueueWatchers - Principals: <user> <group> -Modify Queue Attributes for <queue> +=cut - Name: ModifyQueue - Principals: <user> <group> -Modify Queue ACL for queue <queue> - Name: ModifyACL - Principals: <user> <group> +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + PrincipalType => + {read => 1, write => 1, type => 'varchar(25)', default => ''}, + PrincipalId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + RightName => + {read => 1, write => 1, type => 'varchar(25)', default => ''}, + ObjectType => + {read => 1, write => 1, type => 'varchar(25)', default => ''}, + ObjectId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + DelegatedBy => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + DelegatedFrom => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + } +}; -=head2 Rights that apply to the System scope -=head2 SystemRights + eval "require RT::ACE_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ACE_Overlay.pm}) { + die $@; + }; -Create Queue - - Name: CreateQueue - Principals: <user> <group> -Delete Queue - - Name: DeleteQueue - Principals: <user> <group> + eval "require RT::ACE_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ACE_Vendor.pm}) { + die $@; + }; -Create Users - - Name: CreateUser - Principals: <user> <group> + eval "require RT::ACE_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ACE_Local.pm}) { + die $@; + }; -Delete Users - - Name: DeleteUser - Principals: <user> <group> - -Modify Users - - Name: ModifyUser - Principals: <user> <group> -Modify Self - Name: ModifySelf - Principals: <user> <group> -Browse Users - Name: BrowseUsers (NOT IMPLEMENTED in 2.0) - Principals: <user> <group> +=head1 SEE ALSO -Modify Self - - Name: ModifySelf - Principals: <user> <group> +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. -Modify System ACL +These overlay files can contain new subs or subs to replace existing subs in this module. - Name: ModifyACL - Principals: <user> <group> +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line -=head1 The Principal Side of the ACE + no warnings qw(redefine); -=head2 PrincipalTypes,PrincipalIds in our Neighborhood +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. - User,<userid> - Group,<groupip> - Everyone,NULL +RT::ACE_Overlay, RT::ACE_Vendor, RT::ACE_Local =cut -# }}} + +1; diff --git a/rt/lib/RT/ACE_Overlay.pm b/rt/lib/RT/ACE_Overlay.pm new file mode 100644 index 000000000..65e5a9c45 --- /dev/null +++ b/rt/lib/RT/ACE_Overlay.pm @@ -0,0 +1,907 @@ +# 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. +# +# 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 SYNOPSIS + + use RT::ACE; + my $ace = new RT::ACE($CurrentUser); + + +=head1 DESCRIPTION + + + +=head1 METHODS + +=begin testing + +ok(require RT::ACE); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); +use RT::Principals; +use RT::Queues; +use RT::Groups; + +use vars qw ( + %LOWERCASERIGHTNAMES + %OBJECT_TYPES + %TICKET_METAPRINCIPALS +); + + +# {{{ Descriptions of rights + +=head1 Rights + +# Queue rights are the sort of queue rights that can only be granted +# to real people or groups + + +=begin testing + +my $Queue = RT::Queue->new($RT::SystemUser); + +is ($Queue->AvailableRights->{'DeleteTicket'} , 'Delete tickets', "Found the delete ticket right"); +is ($RT::System->AvailableRights->{'SuperUser'}, 'Do anything and everything', "Found the superuser right"); + + +=end testing + +=cut + + + + +# }}} + +# {{{ Descriptions of principals + +%TICKET_METAPRINCIPALS = ( + Owner => 'The owner of a ticket', # loc_pair + Requestor => 'The requestor of a ticket', # loc_pair + Cc => 'The CC of a ticket', # loc_pair + AdminCc => 'The administrative CC of a ticket', # loc_pair +); + +# }}} + + +# {{{ sub LoadByValues + +=head2 LoadByValues PARAMHASH + +Load an ACE by specifying a paramhash with the following fields: + + PrincipalId => undef, + PrincipalType => undef, + RightName => undef, + + And either: + + Object => undef, + + OR + + ObjectType => undef, + ObjectId => undef + +=cut + +sub LoadByValues { + my $self = shift; + my %args = ( PrincipalId => undef, + PrincipalType => undef, + RightName => undef, + Object => undef, + ObjectId => undef, + ObjectType => undef, + @_ ); + + my $princ_obj; + ( $princ_obj, $args{'PrincipalType'} ) = + $self->_CanonicalizePrincipal( $args{'PrincipalId'}, + $args{'PrincipalType'} ); + + unless ( $princ_obj->id ) { + return ( 0, + $self->loc( 'Principal [_1] not found.', $args{'PrincipalId'} ) + ); + } + + my ($object_type, $object_id); + + if ($args{'Object'} && UNIVERSAL::can($args{'Object'},'id')) { + $object_type = ref($args{'Object'}); + $object_id = $args{'Object'}->id; + } elsif ($args{'ObjectId'} || $args{'ObjectType'}) { + $object_type = $args{'ObjectType'}; + $object_id = $args{'ObjectId'}; + } else { + return ( 0, $self->loc("System error. Right not granted.") ); + } + + $self->LoadByCols( PrincipalId => $princ_obj->Id, + PrincipalType => $args{'PrincipalType'}, + RightName => $args{'RightName'}, + ObjectType => $object_type, + ObjectId => $object_id); + + #If we couldn't load it. + unless ( $self->Id ) { + return ( 0, $self->loc("ACE not found") ); + } + + # if we could + return ( $self->Id, $self->loc("Right Loaded") ); + +} + +# }}} + +# {{{ sub Create + +=head2 Create <PARAMS> + +PARAMS is a parameter hash with the following elements: + + PrincipalId => The id of an RT::Principal object + PrincipalType => "User" "Group" or any Role type + RightName => the name of a right. in any case + DelegatedBy => The Principal->Id of the user delegating the right + DelegatedFrom => The id of the ACE which this new ACE is delegated from + + + Either: + + Object => An object to create rights for. ususally, an RT::Queue or RT::Group + This should always be a DBIx::SearchBuilder::Record subclass + + OR + + ObjectType => the type of the object in question (ref ($object)) + ObjectId => the id of the object in question $object->Id + +=cut + +sub Create { + my $self = shift; + my %args = ( PrincipalId => undef, + PrincipalType => undef, + RightName => undef, + Object => $RT::System, + @_ ); + + # {{{ Validate the principal + my $princ_obj; + ( $princ_obj, $args{'PrincipalType'} ) = + $self->_CanonicalizePrincipal( $args{'PrincipalId'}, + $args{'PrincipalType'} ); + + unless ( $princ_obj->id ) { + return ( 0, + $self->loc( 'Principal [_1] not found.', $args{'PrincipalId'} ) + ); + } + + # }}} + + + if ($args{'Object'} && ($args{'ObjectId'} || $args{'ObjectType'})) { + use Carp; + $RT::Logger->crit(Carp::cluck("ACE::Create called with an ObjectType or an ObjectId")); + } + + + + unless ($args{'Object'} && UNIVERSAL::can($args{'Object'},'id')) { + return ( 0, $self->loc("System error. Right not granted.") ); + } + # {{{ Check the ACL + + if (ref( $args{'Object'}) eq 'RT::Group' ) { + unless ( $self->CurrentUser->HasRight( Object => $args{'Object'}, + Right => 'AdminGroup' ) + ) { + return ( 0, $self->loc('Permission Denied') ); + } + } + + else { + unless ( $self->CurrentUser->HasRight( Object => $args{'Object'}, Right => 'ModifyACL' )) { + return ( 0, $self->loc('Permission Denied') ); + } + } + # }}} + + # {{{ Canonicalize and check the right name + unless ( $args{'RightName'} ) { + return ( 0, $self->loc('Invalid right') ); + } + + $args{'RightName'} = $self->CanonicalizeRightName( $args{'RightName'} ); + + #check if it's a valid RightName + if ( ref ($args{'Object'} eq 'RT::Queue' )) { + unless ( exists $args{'Object'}->AvailableRights->{ $args{'RightName'} } ) { + $RT::Logger->warning("Couldn't validate right name". $args{'RightName'}); + return ( 0, $self->loc('Invalid right') ); + } + } + elsif ( ref ($args{'Object'} eq 'RT::Group' )) { + unless ( exists $args{'Object'}->AvailableRights->{ $args{'RightName'} } ) { + $RT::Logger->warning("Couldn't validate group right name". $args{'RightName'}); + return ( 0, $self->loc('Invalid right') ); + } + } + elsif ( ref ($args{'Object'} eq 'RT::System' )) { + my $q = RT::Queue->new($self->CurrentUser); + my $g = RT::Group->new($self->CurrentUser); + + unless (( exists $g->AvailableRights->{ $args{'RightName'} } ) + || ( exists $g->AvailableRights->{ $args{'RightName'} } ) + || ( exists $RT::System->AvailableRights->{ $args{'RightName'} } ) ) { + $RT::Logger->warning("Couldn't validate system right name - ". $args{'RightName'}); + return ( 0, $self->loc('Invalid right') ); + } + } + + unless ( $args{'RightName'} ) { + return ( 0, $self->loc('Invalid right') ); + } + # }}} + + # Make sure the right doesn't already exist. + $self->LoadByCols( PrincipalId => $princ_obj->id, + PrincipalType => $args{'PrincipalType'}, + RightName => $args{'RightName'}, + ObjectType => ref($args{'Object'}), + ObjectId => $args{'Object'}->id, + DelegatedBy => 0, + DelegatedFrom => 0 ); + if ( $self->Id ) { + return ( 0, $self->loc('That principal already has that right') ); + } + + my $id = $self->SUPER::Create( PrincipalId => $princ_obj->id, + PrincipalType => $args{'PrincipalType'}, + RightName => $args{'RightName'}, + ObjectType => ref( $args{'Object'} ), + ObjectId => $args{'Object'}->id, + DelegatedBy => 0, + DelegatedFrom => 0 ); + + #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. + RT::Principal->_InvalidateACLCache(); + + if ( $id > 0 ) { + return ( $id, $self->loc('Right Granted') ); + } + else { + return ( 0, $self->loc('System error. Right not granted.') ); + } +} + +# }}} + +# {{{ sub Delegate + +=head2 Delegate <PARAMS> + +This routine delegates the current ACE to a principal specified by the +B<PrincipalId> parameter. + +Returns an error if the current user doesn't have the right to be delegated +or doesn't have the right to delegate rights. + +Always returns a tuple of (ReturnValue, Message) + +=begin testing + +use_ok(RT::User); +my $user_a = RT::User->new($RT::SystemUser); +$user_a->Create( Name => 'DelegationA', Privileged => 1); +ok ($user_a->Id, "Created delegation user a"); + +my $user_b = RT::User->new($RT::SystemUser); +$user_b->Create( Name => 'DelegationB', Privileged => 1); +ok ($user_b->Id, "Created delegation user b"); + + +use_ok(RT::Queue); +my $q = RT::Queue->new($RT::SystemUser); +$q->Create(Name =>'DelegationTest'); +ok ($q->Id, "Created a delegation test queue"); + + +#------ First, we test whether a user can delegate a right that's been granted to him personally +my ($val, $msg) = $user_a->PrincipalObj->GrantRight(Object => $RT::System, Right => 'AdminOwnPersonalGroups'); +ok($val, $msg); + +($val, $msg) = $user_a->PrincipalObj->GrantRight(Object =>$q, Right => 'OwnTicket'); +ok($val, $msg); + +ok($user_a->HasRight( Object => $RT::System, Right => 'AdminOwnPersonalGroups') ,"user a has the right 'AdminOwnPersonalGroups' directly"); + +my $a_delegates = RT::Group->new($user_a); +$a_delegates->CreatePersonalGroup(Name => 'Delegates'); +ok( $a_delegates->Id ,"user a creates a personal group 'Delegates'"); +ok( $a_delegates->AddMember($user_b->PrincipalId) ,"user a adds user b to personal group 'delegates'"); + +ok( !$user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b does not have the right to OwnTicket' in queue 'DelegationTest'"); +ok( $user_a->HasRight(Right => 'OwnTicket', Object => $q) ,"user a has the right to 'OwnTicket' in queue 'DelegationTest'"); +ok(!$user_a->HasRight( Object => $RT::System, Right => 'DelegateRights') ,"user a does not have the right 'delegate rights'"); + + +my $own_ticket_ace = RT::ACE->new($user_a); +my $user_a_equiv_group = RT::Group->new($user_a); +$user_a_equiv_group->LoadACLEquivalenceGroup($user_a->PrincipalObj); +ok ($user_a_equiv_group->Id, "Loaded the user A acl equivalence group"); +my $user_b_equiv_group = RT::Group->new($user_b); +$user_b_equiv_group->LoadACLEquivalenceGroup($user_b->PrincipalObj); +ok ($user_b_equiv_group->Id, "Loaded the user B acl equivalence group"); +$own_ticket_ace->LoadByValues( PrincipalType => 'Group', PrincipalId => $user_a_equiv_group->PrincipalId, Object=>$q, RightName => 'OwnTicket'); + +ok ($own_ticket_ace->Id, "Found the ACE we want to test with for now"); + + +($val, $msg) = $own_ticket_ace->Delegate(PrincipalId => $a_delegates->PrincipalId) ; +ok( !$val ,"user a tries and fails to delegate the right 'ownticket' in queue 'DelegationTest' to personal group 'delegates' - $msg"); + + +($val, $msg) = $user_a->PrincipalObj->GrantRight( Right => 'DelegateRights'); +ok($val, "user a is granted the right to 'delegate rights' - $msg"); + +ok($user_a->HasRight( Object => $RT::System, Right => 'DelegateRights') ,"user a has the right 'AdminOwnPersonalGroups' directly"); + +($val, $msg) = $own_ticket_ace->Delegate(PrincipalId => $a_delegates->PrincipalId) ; + +ok( $val ,"user a tries and succeeds to delegate the right 'ownticket' in queue 'DelegationTest' to personal group 'delegates' - $msg"); +ok( $user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b has the right to own tickets in queue 'DelegationTest'"); +my $delegated_ace = RT::ACE->new($user_a); +$delegated_ace->LoadByValues ( Object => $q, RightName => 'OwnTicket', PrincipalType => 'Group', +PrincipalId => $a_delegates->PrincipalId, DelegatedBy => $user_a->PrincipalId, DelegatedFrom => $own_ticket_ace->Id); +ok ($delegated_ace->Id, "Found the delegated ACE"); + +ok( $a_delegates->DeleteMember($user_b->PrincipalId) ,"user a removes b from pg 'delegates'"); +ok( !$user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b does not have the right to own tickets in queue 'DelegationTest'"); +ok( $a_delegates->AddMember($user_b->PrincipalId) ,"user a adds user b to personal group 'delegates'"); +ok( $user_b->HasRight(Right => 'OwnTicket', Object=> $q) ,"user b has the right to own tickets in queue 'DelegationTest'"); +ok( $delegated_ace->Delete ,"user a revokes pg 'delegates' right to 'OwnTickets' in queue 'DelegationTest'"); +ok( ! $user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b does not have the right to own tickets in queue 'DelegationTest'"); + +($val, $msg) = $own_ticket_ace->Delegate(PrincipalId => $a_delegates->PrincipalId) ; +ok( $val ,"user a delegates pg 'delegates' right to 'OwnTickets' in queue 'DelegationTest' - $msg"); + +ok( $user_a->HasRight(Right => 'OwnTicket', Object => $q) ,"user a does not have the right to own tickets in queue 'DelegationTest'"); + +($val, $msg) = $user_a->PrincipalObj->RevokeRight(Object=>$q, Right => 'OwnTicket'); +ok($val, "Revoked user a's right to own tickets in queue 'DelegationTest". $msg); + +ok( !$user_a->HasRight(Right => 'OwnTicket', Object => $q) ,"user a does not have the right to own tickets in queue 'DelegationTest'"); + + ok( !$user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b does not have the right to own tickets in queue 'DelegationTest'"); + +($val, $msg) = $user_a->PrincipalObj->GrantRight(Object=>$q, Right => 'OwnTicket'); +ok($val, $msg); + + ok( $user_a->HasRight(Right => 'OwnTicket', Object => $q) ,"user a has the right to own tickets in queue 'DelegationTest'"); + + ok( !$user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b does not have the right to own tickets in queue 'DelegationTest'"); + +# {{{ get back to a known clean state +($val, $msg) = $user_a->PrincipalObj->RevokeRight( Object => $q, Right => 'OwnTicket'); +ok($val, "Revoked user a's right to own tickets in queue 'DelegationTest -". $msg); +ok( !$user_a->HasRight(Right => 'OwnTicket', Object => $q) ,"make sure that user a can't own tickets in queue 'DelegationTest'"); +# }}} + + +# {{{ Set up some groups and membership +my $del1 = RT::Group->new($RT::SystemUser); +($val, $msg) = $del1->CreateUserDefinedGroup(Name => 'Del1'); +ok( $val ,"create a group del1 - $msg"); + +my $del2 = RT::Group->new($RT::SystemUser); +($val, $msg) = $del2->CreateUserDefinedGroup(Name => 'Del2'); +ok( $val ,"create a group del2 - $msg"); +($val, $msg) = $del1->AddMember($del2->PrincipalId); +ok( $val,"make del2 a member of del1 - $msg"); + +my $del2a = RT::Group->new($RT::SystemUser); +($val, $msg) = $del2a->CreateUserDefinedGroup(Name => 'Del2a'); +ok( $val ,"create a group del2a - $msg"); +($val, $msg) = $del2->AddMember($del2a->PrincipalId); +ok($val ,"make del2a a member of del2 - $msg"); + +my $del2b = RT::Group->new($RT::SystemUser); +($val, $msg) = $del2b->CreateUserDefinedGroup(Name => 'Del2b'); +ok( $val ,"create a group del2b - $msg"); +($val, $msg) = $del2->AddMember($del2b->PrincipalId); +ok($val ,"make del2b a member of del2 - $msg"); + +($val, $msg) = $del2->AddMember($user_a->PrincipalId) ; +ok($val,"make 'user a' a member of del2 - $msg"); + +($val, $msg) = $del2b->AddMember($user_a->PrincipalId) ; +ok($val,"make 'user a' a member of del2b - $msg"); + +# }}} + +# {{{ Grant a right to a group and make sure that a submember can delegate the right and that it does not get yanked +# when a user is removed as a submember, when they're a sumember through another path +($val, $msg) = $del1->PrincipalObj->GrantRight( Object=> $q, Right => 'OwnTicket'); +ok( $val ,"grant del1 the right to 'OwnTicket' in queue 'DelegationTest' - $msg"); + +ok( $user_a->HasRight(Right => 'OwnTicket', Object => $q) ,"make sure that user a can own tickets in queue 'DelegationTest'"); + +my $group_ace= RT::ACE->new($user_a); +$group_ace->LoadByValues( PrincipalType => 'Group', PrincipalId => $del1->PrincipalId, Object => $q, RightName => 'OwnTicket'); + +ok ($group_ace->Id, "Found the ACE we want to test with for now"); + +($val, $msg) = $group_ace->Delegate(PrincipalId => $a_delegates->PrincipalId); + +ok( $val ,"user a tries and succeeds to delegate the right 'ownticket' in queue 'DelegationTest' to personal group 'delegates' - $msg"); +ok( $user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b has the right to own tickets in queue 'DelegationTest'"); + + +($val, $msg) = $del2b->DeleteMember($user_a->PrincipalId); +ok( $val ,"remove user a from group del2b - $msg"); +ok( $user_a->HasRight(Right => 'OwnTicket', Object => $q) ,"user a has the right to own tickets in queue 'DelegationTest'"); +ok( $user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b has the right to own tickets in queue 'DelegationTest'"); + +# }}} + +# {{{ When a user is removed froom a group by the only path they're in there by, make sure the delegations go away +($val, $msg) = $del2->DeleteMember($user_a->PrincipalId); +ok( $val ,"remove user a from group del2 - $msg"); +ok( !$user_a->HasRight(Right => 'OwnTicket', Object => $q) ,"user a does not have the right to own tickets in queue 'DelegationTest' "); +ok( !$user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b does not have the right to own tickets in queue 'DelegationTest' "); +# }}} + +($val, $msg) = $del2->AddMember($user_a->PrincipalId); +ok( $val ,"make user a a member of group del2 - $msg"); + +($val, $msg) = $del2->PrincipalObj->GrantRight(Object=>$q, Right => 'OwnTicket'); +ok($val, "grant the right 'own tickets' in queue 'DelegationTest' to group del2 - $msg"); + +my $del2_right = RT::ACE->new($user_a); +$del2_right->LoadByValues( PrincipalId => $del2->PrincipalId, PrincipalType => 'Group', Object => $q, RightName => 'OwnTicket'); +ok ($del2_right->Id, "Found the right"); + +($val, $msg) = $del2_right->Delegate(PrincipalId => $a_delegates->PrincipalId); +ok( $val ,"user a tries and succeeds to delegate the right 'ownticket' in queue 'DelegationTest' gotten via del2 to personal group 'delegates' - $msg"); + +# They have it via del1 and del2 +ok( $user_a->HasRight(Right => 'OwnTicket', Object => $q) ,"user b has the right to own tickets in queue 'DelegationTest'"); + + +($val, $msg) = $del2->PrincipalObj->RevokeRight(Object=>$q, Right => 'OwnTicket'); +ok($val, "revoke the right 'own tickets' in queue 'DelegationTest' to group del2 - $msg"); +ok( $user_a->HasRight(Right => 'OwnTicket', Object => $q) ,"user a does has the right to own tickets in queue 'DelegationTest' via del1"); +ok( !$user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b does not have the right to own tickets in queue 'DelegationTest'"); + +($val, $msg) = $del2->PrincipalObj->GrantRight(Object=>$q, Right => 'OwnTicket'); +ok($val, "grant the right 'own tickets' in queue 'DelegationTest' to group del2 - $msg"); + + +$group_ace= RT::ACE->new($user_a); +$group_ace->LoadByValues( PrincipalType => 'Group', PrincipalId => $del1->PrincipalId, Object=>$q, RightName => 'OwnTicket'); + +ok ($group_ace->Id, "Found the ACE we want to test with for now"); + +($val, $msg) = $group_ace->Delegate(PrincipalId => $a_delegates->PrincipalId); + +ok( $val ,"user a tries and succeeds to delegate the right 'ownticket' in queue 'DelegationTest' to personal group 'delegates' - $msg"); + +ok( $user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b has the right to own tickets in queue 'DelegationTest'"); + +($val, $msg) = $del2->DeleteMember($user_a->PrincipalId); +ok( $val ,"remove user a from group del2 - $msg"); + +ok( !$user_a->HasRight(Right => 'OwnTicket', Object => $q) ,"user a does not have the right to own tickets in queue 'DelegationTest'"); + +ok( !$user_b->HasRight(Right => 'OwnTicket', Object => $q) ,"user b does not have the right to own tickets in queue 'DelegationTest'"); + + + +=end testing + +=cut + +sub Delegate { + my $self = shift; + my %args = ( PrincipalId => undef, + @_ ); + + unless ( $self->Id ) { + return ( 0, $self->loc("Right not loaded.") ); + } + my $princ_obj; + ( $princ_obj, $args{'PrincipalType'} ) = + $self->_CanonicalizePrincipal( $args{'PrincipalId'}, + $args{'PrincipalType'} ); + + unless ( $princ_obj->id ) { + return ( 0, + $self->loc( 'Principal [_1] not found.', $args{'PrincipalId'} ) + ); + } + + # }}} + + # {{{ Check the ACL + + # First, we check to se if the user is delegating rights and + # they have the permission to + unless ( $self->CurrentUser->HasRight(Right => 'DelegateRights', Object => $self->Object) ) { + return ( 0, $self->loc("Permission Denied") ); + } + + unless ( $self->PrincipalObj->IsGroup ) { + return ( 0, $self->loc("System Error") ); + } + unless ( $self->PrincipalObj->Object->HasMemberRecursively( + $self->CurrentUser->PrincipalObj + ) + ) { + return ( 0, $self->loc("Permission Denied") ); + } + + # }}} + + my $concurrency_check = RT::ACE->new($RT::SystemUser); + $concurrency_check->Load( $self->Id ); + unless ( $concurrency_check->Id ) { + $RT::Logger->crit( + "Trying to delegate a right which had already been deleted"); + return ( 0, $self->loc('Permission Denied') ); + } + + my $delegated_ace = RT::ACE->new( $self->CurrentUser ); + + # Make sure the right doesn't already exist. + $delegated_ace->LoadByCols( PrincipalId => $princ_obj->Id, + PrincipalType => 'Group', + RightName => $self->__Value('RightName'), + ObjectType => $self->__Value('ObjectType'), + ObjectId => $self->__Value('ObjectId'), + DelegatedBy => $self->CurrentUser->PrincipalId, + DelegatedFrom => $self->id ); + if ( $delegated_ace->Id ) { + return ( 0, $self->loc('That principal already has that right') ); + } + my $id = $delegated_ace->SUPER::Create( + PrincipalId => $princ_obj->Id, + PrincipalType => 'Group', # do we want to hardcode this? + RightName => $self->__Value('RightName'), + ObjectType => $self->__Value('ObjectType'), + ObjectId => $self->__Value('ObjectId'), + DelegatedBy => $self->CurrentUser->PrincipalId, + DelegatedFrom => $self->id ); + + #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. + # TODO what about the groups key cache? + RT::Principal->_InvalidateACLCache(); + + if ( $id > 0 ) { + return ( $id, $self->loc('Right Delegated') ); + } + else { + return ( 0, $self->loc('System error. Right not delegated.') ); + } +} + +# }}} + +# {{{ sub Delete + +=head2 Delete { InsideTransaction => undef} + +Delete this object. This method should ONLY ever be called from RT::User or RT::Group (or from itself) +If this is being called from within a transaction, specify a true value for the parameter InsideTransaction. +Really, DBIx::SearchBuilder should use and/or fake subtransactions + +This routine will also recurse and delete any delegations of this right + +=cut + +sub Delete { + my $self = shift; + + unless ( $self->Id ) { + return ( 0, $self->loc('Right not loaded.') ); + } + + # A user can delete an ACE if the current user has the right to modify it and it's not a delegated ACE + # or if it's a delegated ACE and it was delegated by the current user + unless ( + ( $self->CurrentUser->HasRight(Right => 'ModifyACL', Object => $self->Object) + && $self->__Value('DelegatedBy') == 0 ) + || ( $self->__Value('DelegatedBy') == $self->CurrentUser->PrincipalId ) + ) { + return ( 0, $self->loc('Permission Denied') ); + } + $self->_Delete(@_); +} + +# Helper for Delete with no ACL check +sub _Delete { + my $self = shift; + my %args = ( InsideTransaction => undef, + @_ ); + + my $InsideTransaction = $args{'InsideTransaction'}; + + $RT::Handle->BeginTransaction() unless $InsideTransaction; + + my $delegated_from_this = RT::ACL->new($RT::SystemUser); + $delegated_from_this->Limit( FIELD => 'DelegatedFrom', + OPERATOR => '=', + VALUE => $self->Id ); + + my $delete_succeeded = 1; + my $submsg; + while ( my $delegated_ace = $delegated_from_this->Next ) { + ( $delete_succeeded, $submsg ) = + $delegated_ace->_Delete( InsideTransaction => 1 ); + last if ($delete_succeeded); + } + + unless ($delete_succeeded) { + $RT::Handle->Rollback() unless $InsideTransaction; + return ( 0, $self->loc('Right could not be revoked') ); + } + + my ( $val, $msg ) = $self->SUPER::Delete(@_); + + #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. + # TODO what about the groups key cache? + RT::Principal->_InvalidateACLCache(); + + if ($val) { + $RT::Handle->Commit() unless $InsideTransaction; + return ( $val, $self->loc('Right revoked') ); + } + else { + $RT::Handle->Rollback() unless $InsideTransaction; + return ( 0, $self->loc('Right could not be revoked') ); + } +} + +# }}} + +# {{{ sub _BootstrapCreate + +=head2 _BootstrapCreate + +Grant a right with no error checking and no ACL. this is _only_ for +installation. If you use this routine without the author's explicit +written approval, he will hunt you down and make you spend eternity +translating mozilla's code into FORTRAN or intercal. + +If you think you need this routine, you've mistaken. + +=cut + +sub _BootstrapCreate { + my $self = shift; + my %args = (@_); + + # When bootstrapping, make sure we get the _right_ users + if ( $args{'UserId'} ) { + my $user = RT::User->new( $self->CurrentUser ); + $user->Load( $args{'UserId'} ); + delete $args{'UserId'}; + $args{'PrincipalId'} = $user->PrincipalId; + $args{'PrincipalType'} = 'User'; + } + + my $id = $self->SUPER::Create(%args); + + if ( $id > 0 ) { + return ($id); + } + else { + $RT::Logger->err('System error. right not granted.'); + return (undef); + } + +} + +# }}} + +# {{{ sub CanonicalizeRightName + +=head2 CanonicalizeRightName <RIGHT> + +Takes a queue or system right name in any case and returns it in +the correct case. If it's not found, will return undef. + +=cut + +sub CanonicalizeRightName { + my $self = shift; + my $right = shift; + $right = lc $right; + if ( exists $LOWERCASERIGHTNAMES{"$right"} ) { + return ( $LOWERCASERIGHTNAMES{"$right"} ); + } + else { + return (undef); + } +} + +# }}} + + +# {{{ sub Object + +=head2 Object + +If the object this ACE applies to is a queue, returns the queue object. +If the object this ACE applies to is a group, returns the group object. +If it's the system object, returns undef. + +If the user has no rights, returns undef. + +=cut + + + + +sub Object { + my $self = shift; + + my $appliesto_obj; + + if ($self->__Value('ObjectType') && $OBJECT_TYPES{$self->__Value('ObjectType')} ) { + $appliesto_obj = $self->__Value('ObjectType')->new($self->CurrentUser); + unless (ref( $appliesto_obj) eq $self->__Value('ObjectType')) { + return undef; + } + $appliesto_obj->Load( $self->__Value('ObjectId') ); + return ($appliesto_obj); + } + else { + $RT::Logger->warning( "$self -> Object called for an object " + . "of an unknown type:" + . $self->ObjectType ); + return (undef); + } +} + +# }}} + +# {{{ sub PrincipalObj + +=head2 PrincipalObj + +Returns the RT::Principal object for this ACE. + +=cut + +sub PrincipalObj { + my $self = shift; + + my $princ_obj = RT::Principal->new( $self->CurrentUser ); + $princ_obj->Load( $self->__Value('PrincipalId') ); + + unless ( $princ_obj->Id ) { + $RT::Logger->err( + "ACE " . $self->Id . " couldn't load its principal object" ); + } + return ($princ_obj); + +} + +# }}} + +# {{{ ACL related methods + +# {{{ sub _Set + +sub _Set { + my $self = shift; + return ( 0, $self->loc("ACEs can only be created and deleted.") ); +} + +# }}} + +# {{{ sub _Value + +sub _Value { + my $self = shift; + + if ( $self->__Value('DelegatedBy') eq $self->CurrentUser->PrincipalId ) { + return ( $self->__Value(@_) ); + } + elsif ( $self->PrincipalObj->IsGroup + && $self->PrincipalObj->Object->HasMemberRecursively( + $self->CurrentUser->PrincipalObj + ) + ) { + return ( $self->__Value(@_) ); + } + elsif ( $self->CurrentUser->HasRight(Right => 'ShowACL', Object => $self->Object) ) { + return ( $self->__Value(@_) ); + } + else { + return undef; + } +} + +# }}} + + +# }}} + +# {{{ _CanonicalizePrincipal + +=head2 _CanonicalizePrincipal (PrincipalId, PrincipalType) + +Takes a principal id and a principal type. + +If the principal is a user, resolves it to the proper acl equivalence group. +Returns a tuple of (RT::Principal, PrincipalType) for the principal we really want to work with + +=cut + +sub _CanonicalizePrincipal { + my $self = shift; + my $princ_id = shift; + my $princ_type = shift; + + my $princ_obj = RT::Principal->new($RT::SystemUser); + $princ_obj->Load($princ_id); + + unless ( $princ_obj->Id ) { + use Carp; + $RT::Logger->crit(Carp::cluck); + $RT::Logger->crit("Can't load a principal for id $princ_id"); + return ( $princ_obj, undef ); + } + + # Rights never get granted to users. they get granted to their + # ACL equivalence groups + if ( $princ_type eq 'User' ) { + my $equiv_group = RT::Group->new( $self->CurrentUser ); + $equiv_group->LoadACLEquivalenceGroup($princ_obj); + unless ( $equiv_group->Id ) { + $RT::Logger->crit( + "No ACL equiv group for princ " . $self->__Value('ObjectId') ); + return ( 0, $self->loc('System error. Right not granted.') ); + } + $princ_obj = $equiv_group->PrincipalObj(); + $princ_type = 'Group'; + + } + return ( $princ_obj, $princ_type ); +} + +# }}} +1; diff --git a/rt/lib/RT/ACL.pm b/rt/lib/RT/ACL.pm index 444a4c2af..81f59c6d0 100755 --- a/rt/lib/RT/ACL.pm +++ b/rt/lib/RT/ACL.pm @@ -1,308 +1,115 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ACL.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Distributed under the terms of the GNU GPL -# Copyright (c) 2000 Jesse Vincent <jesse@fsck.com> +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::ACL - collection of RT ACE objects +=head1 NAME + RT::ACL -- Class Description + =head1 SYNOPSIS - use RT::ACL; -my $ACL = new RT::ACL($CurrentUser); + use RT::ACL =head1 DESCRIPTION =head1 METHODS -=begin testing - -ok(require RT::TestHarness); -ok(require RT::ACL); - -=end testing - =cut package RT::ACL; -use RT::EasySearch; -use RT::ACE; -@ISA= qw(RT::EasySearch); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ACL"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_)); - -} -# }}} - -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return(RT::ACE->new($self->CurrentUser)); -} -# }}} - -=head2 Next - -Hand out the next ACE that was found - -=cut - -# {{{ sub Next -sub Next { - my $self = shift; - - my $ACE = $self->SUPER::Next(); - if ((defined($ACE)) and (ref($ACE))) { - - if ( $ACE->CurrentUserHasRight('ShowACL') or - $ACE->CurrentUserHasRight('ModifyACL') - ) { - return($ACE); - } - - #If the user doesn't have the right to show this ACE - else { - return($self->Next()); - } - } - #if there never was any ACE - else { - return(undef); - } - -} -# }}} - - -=head1 Limit the ACL to a specific scope - -There are two real scopes right now: - -=item Queue is for rights that apply to a single queue - -=item System is for rights that apply to the System (rights that aren't queue related) - - -=head2 LimitToQueue - -Takes a single queueid as its argument. +use RT::SearchBuilder; +use RT::ACE; -Limit the ACL to just a given queue when supplied with an integer queue id. +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -=cut -sub LimitToQueue { +sub _Init { my $self = shift; - my $queue = shift; - - - - $self->Limit( FIELD =>'RightScope', - ENTRYAGGREGATOR => 'OR', - VALUE => 'Queue'); - $self->Limit( FIELD =>'RightScope', - ENTRYAGGREGATOR => 'OR', - VALUE => 'Ticket'); - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'RightAppliesTo', - VALUE => $queue ); - -} - - -=head2 LimitToSystem() - -Limit the ACL to system rights - -=cut - -sub LimitToSystem { - my $self = shift; - - $self->Limit( FIELD =>'RightScope', - VALUE => 'System'); -} - - -=head2 LimitRightTo - -Takes a single RightName as its only argument. -Limits the search to the right $right. -$right is a right listed in perldoc RT::ACE - -=cut - -sub LimitRightTo { - my $self = shift; - my $right = shift; - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'RightName', - VALUE => $right ); - -} - -=head1 Limit to a specifc set of principals - -=head2 LimitPrincipalToUser - -Takes a single userid as its only argument. -Limit the ACL to a just a specific user. - -=cut - -sub LimitPrincipalToUser { - my $self = shift; - my $user = shift; - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalType', - VALUE => 'User' ); - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalId', - VALUE => $user ); - -} - + $self->{'table'} = 'ACL'; + $self->{'primary_key'} = 'id'; -=head2 LimitPrincipalToGroup - -Takes a single group as its only argument. -Limit the ACL to just a specific group. - -=cut - -sub LimitPrincipalToGroup { - my $self = shift; - my $group = shift; - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalType', - VALUE => 'Group' ); - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalId', - VALUE => $group ); + return ( $self->SUPER::_Init(@_) ); } -=head2 LimitPrincipalToType($type) -Takes a single argument, $type. -Limit the ACL to just a specific principal type +=item NewItem -$type is one of: - TicketOwner - TicketRequestor - TicketCc - TicketAdminCc - Everyone - User - Group +Returns an empty new RT::ACE item =cut -sub LimitPrincipalToType { - my $self=shift; - my $type=shift; - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalType', - VALUE => $type ); +sub NewItem { + my $self = shift; + return(RT::ACE->new($self->CurrentUser)); } + eval "require RT::ACL_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ACL_Overlay.pm}) { + die $@; + }; -=head2 LimitPrincipalToId + eval "require RT::ACL_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ACL_Vendor.pm}) { + die $@; + }; -Takes a single argument, the numeric Id of the principal to limit this ACL to. Repeated calls to this -function will broaden the scope of the search to include all principals listed. - -=cut - -sub LimitPrincipalToId { - my $self = shift; - my $id = shift; - - if ($id =~ /^\d+$/) { - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalId', - VALUE => $id ); - } - else { - $RT::Logger->warn($self."->LimitPrincipalToId called with '$id' as an id"); - return undef; - } -} + eval "require RT::ACL_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ACL_Local.pm}) { + die $@; + }; -#wrap around _DoSearch so that we can build the hash of returned -#values -sub _DoSearch { - my $self = shift; - # $RT::Logger->debug("Now in ".$self."->_DoSearch"); - my $return = $self->SUPER::_DoSearch(@_); - # $RT::Logger->debug("In $self ->_DoSearch. return from SUPER::_DoSearch was $return\n"); - $self->_BuildHash(); - return ($return); -} -#Build a hash of this ACL's entries. -sub _BuildHash { - my $self = shift; +=head1 SEE ALSO - while (my $entry = $self->Next) { - my $hashkey = $entry->RightScope . "-" . - $entry->RightAppliesTo . "-" . - $entry->RightName . "-" . - $entry->PrincipalId . "-" . - $entry->PrincipalType; +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. - $self->{'as_hash'}->{"$hashkey"} =1; +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); -# {{{ HasEntry +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. -=head2 HasEntry +RT::ACL_Overlay, RT::ACL_Vendor, RT::ACL_Local =cut -sub HasEntry { - - my $self = shift; - my %args = ( RightScope => undef, - RightAppliesTo => undef, - RightName => undef, - PrincipalId => undef, - PrincipalType => undef, - @_ ); - - #if we haven't done the search yet, do it now. - $self->_DoSearch(); - - if ($self->{'as_hash'}->{ $args{'RightScope'} . "-" . - $args{'RightAppliesTo'} . "-" . - $args{'RightName'} . "-" . - $args{'PrincipalId'} . "-" . - $args{'PrincipalType'} - } == 1) { - return(1); - } - else { - return(undef); - } -} -# }}} 1; diff --git a/rt/lib/RT/ACL_Overlay.pm b/rt/lib/RT/ACL_Overlay.pm new file mode 100644 index 000000000..977577697 --- /dev/null +++ b/rt/lib/RT/ACL_Overlay.pm @@ -0,0 +1,295 @@ +# 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. +# +# 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::ACL - collection of RT ACE objects + +=head1 SYNOPSIS + + use RT::ACL; +my $ACL = new RT::ACL($CurrentUser); + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok(require RT::ACL); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + + +=head2 Next + +Hand out the next ACE that was found + +=cut + + +# {{{ LimitToObject + +=head2 LimitToObject $object + +Limit the ACL to rights for the object $object. It needs to be an RT::Record class. + +=cut + +sub LimitToObject { + my $self = shift; + my $obj = shift; + unless (defined($obj) && ref($obj) && UNIVERSAL::can($obj, 'id')) { + return undef; + } + $self->Limit(FIELD => 'ObjectType', OPERATOR=> '=', VALUE => ref($obj), ENTRYAGGREGATOR => 'OR'); + $self->Limit(FIELD => 'ObjectId', OPERATOR=> '=', VALUE => $obj->id, ENTRYAGGREGATOR => 'OR', QUOTEVALUE => 0); + +} + +# }}} + +# {{{ LimitToPrincipal + +=head2 LimitToPrincipal { Type => undef, Id => undef, IncludeGroupMembership => undef } + +Limit the ACL to the principal with PrincipalId Id and PrincipalType Type + +Id is not optional. +Type is. + +if IncludeGroupMembership => 1 is specified, ACEs which apply to the principal due to group membership will be included in the resultset. + + +=cut + +sub LimitToPrincipal { + my $self = shift; + my %args = ( Type => undef, + Id => undef, + IncludeGroupMembership => undef, + @_ ); + if ( $args{'IncludeGroupMembership'} ) { + my $cgm = $self->NewAlias('CachedGroupMembers'); + $self->Join( ALIAS1 => 'main', + FIELD1 => 'PrincipalId', + ALIAS2 => $cgm, + FIELD2 => 'GroupId' ); + $self->Limit( ALIAS => $cgm, + FIELD => 'MemberId', + OPERATOR => '=', + VALUE => $args{'Id'}, + ENTRYAGGREGATOR => 'OR' ); + } + else { + if ( defined $args{'Type'} ) { + $self->Limit( FIELD => 'PrincipalType', + OPERATOR => '=', + VALUE => $args{'Type'}, + ENTRYAGGREGATOR => 'OR' ); + } + # if the principal id points to a user, we really want to point + # to their ACL equivalence group. The machinations we're going through + # lead me to start to suspect that we really want users and groups + # to just be the same table. or _maybe_ that we want an object db. + my $princ = RT::Principal->new($RT::SystemUser); + $princ->Load($args{'PrincipalId'}); + if ($princ->PrincipalType eq 'User') { + my $group = RT::Group->new($RT::SystemUser); + $group->LoadACLEquivalenceGroup($princ); + $args{'PrincipalId'} = $group->PrincipalId; + } + $self->Limit( FIELD => 'PrincipalId', + OPERATOR => '=', + VALUE => $args{'Id'}, + ENTRYAGGREGATOR => 'OR' ); + } +} + +# }}} + + + +# {{{ ExcludeDelegatedRights + +=head2 ExcludeDelegatedRights + +Don't list rights which have been delegated. + +=cut + +sub ExcludeDelegatedRights { + my $self = shift; + $self->DelegatedBy(Id => 0); + $self->DelegatedFrom(Id => 0); +} +# }}} + +# {{{ DelegatedBy + +=head2 DelegatedBy { Id => undef } + +Limit the ACL to rights delegated by the principal whose Principal Id is +B<Id> + +Id is not optional. + +=cut + +sub DelegatedBy { + my $self = shift; + my %args = ( + Id => undef, + @_ + ); + $self->Limit( + FIELD => 'DelegatedBy', + OPERATOR => '=', + VALUE => $args{'Id'}, + ENTRYAGGREGATOR => 'OR' + ); + +} + +# }}} + +# {{{ DelegatedFrom + +=head2 DelegatedFrom { Id => undef } + +Limit the ACL to rights delegate from the ACE which has the Id specified +by the Id parameter. + +Id is not optional. + +=cut + +sub DelegatedFrom { + my $self = shift; + my %args = ( + Id => undef, + @_); + $self->Limit(FIELD => 'DelegatedFrom', OPERATOR=> '=', VALUE => $args{'Id'}, ENTRYAGGREGATOR => 'OR'); + +} + +# }}} + + +# {{{ sub Next +sub Next { + my $self = shift; + + my $ACE = $self->SUPER::Next(); + if ( ( defined($ACE) ) and ( ref($ACE) ) ) { + + if ( $self->CurrentUser->HasRight( Right => 'ShowACL', + Object => $ACE->Object ) + or $self->CurrentUser->HasRight( Right => 'ModifyACL', + Object => $ACE->Object ) + ) { + return ($ACE); + } + + #If the user doesn't have the right to show this ACE + else { + return ( $self->Next() ); + } + } + + #if there never was any ACE + else { + return (undef); + } + +} + +# }}} + + + +#wrap around _DoSearch so that we can build the hash of returned +#values +sub _DoSearch { + my $self = shift; + # $RT::Logger->debug("Now in ".$self."->_DoSearch"); + my $return = $self->SUPER::_DoSearch(@_); + # $RT::Logger->debug("In $self ->_DoSearch. return from SUPER::_DoSearch was $return\n"); + $self->_BuildHash(); + return ($return); +} + + +#Build a hash of this ACL's entries. +sub _BuildHash { + my $self = shift; + + while (my $entry = $self->Next) { + my $hashkey = $entry->ObjectType . "-" . $entry->ObjectId . "-" . $entry->RightName . "-" . $entry->PrincipalId . "-" . $entry->PrincipalType; + + $self->{'as_hash'}->{"$hashkey"} =1; + + } +} + + +# {{{ HasEntry + +=head2 HasEntry + +=cut + +sub HasEntry { + + my $self = shift; + my %args = ( RightScope => undef, + RightAppliesTo => undef, + RightName => undef, + PrincipalId => undef, + PrincipalType => undef, + @_ ); + + #if we haven't done the search yet, do it now. + $self->_DoSearch(); + + if ($self->{'as_hash'}->{ $args{'RightScope'} . "-" . + $args{'RightAppliesTo'} . "-" . + $args{'RightName'} . "-" . + $args{'PrincipalId'} . "-" . + $args{'PrincipalType'} + } == 1) { + return(1); + } + else { + return(undef); + } +} + +# }}} +1; diff --git a/rt/lib/RT/Action/AutoOpen.pm b/rt/lib/RT/Action/AutoOpen.pm new file mode 100644 index 000000000..ea6da1952 --- /dev/null +++ b/rt/lib/RT/Action/AutoOpen.pm @@ -0,0 +1,86 @@ +# 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. +# +# 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 open the BASE if a dependent is resolved. + +package RT::Action::AutoOpen; +require RT::Action::Generic; + +use strict; +use vars qw/@ISA/; +@ISA=qw(RT::Action::Generic); + +#Do what we need to do and send it out. + +#What does this type of Action does + +# {{{ sub Describe +sub Describe { + my $self = shift; + return (ref $self ); +} +# }}} + + +# {{{ sub Prepare +sub Prepare { + my $self = shift; + + # if the ticket is already open or the ticket is new and the message is more mail from the + # requestor, don't reopen it. + + if ( ( $self->TicketObj->Status eq 'open' ) + || ( ( $self->TicketObj->Status eq 'new' ) + && $self->TransactionObj->IsInbound ) + ) { + + return undef; + } + else { + return (1); + } +} +# }}} + +sub Commit { + my $self = shift; + my $oldstatus = $self->TicketObj->Status(); + $self->TicketObj->__Set( Field => 'Status', Value => 'open' ); + $self->TicketObj->_NewTransaction( + Type => 'Set', + Field => 'Status', + OldValue => $oldstatus, + NewValue => 'open', + Data => 'Ticket auto-opened on incoming correspondence' + ); + + + return(1); +} + +eval "require RT::Action::AutoOpen_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/AutoOpen_Vendor.pm}); +eval "require RT::Action::AutoOpen_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/AutoOpen_Local.pm}); + +1; diff --git a/rt/lib/RT/Action/Autoreply.pm b/rt/lib/RT/Action/Autoreply.pm index 624888e94..81f7bddfa 100755 --- a/rt/lib/RT/Action/Autoreply.pm +++ b/rt/lib/RT/Action/Autoreply.pm @@ -1,7 +1,31 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Autoreply.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - +# 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. +# +# 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 vars qw/@ISA/; @ISA = qw(RT::Action::SendEmail); @@ -17,7 +41,7 @@ Sets the recipients of this message to this ticket's Requestor. sub SetRecipients { my $self=shift; - push(@{$self->{'To'}}, @{$self->TicketObj->Requestors->Emails}); + push(@{$self->{'To'}}, $self->TicketObj->Requestors->MemberEmailAddresses); return(1); } @@ -39,6 +63,7 @@ sub SetReturnAddress { @_ ); + my $replyto; if ($args{'is_comment'}) { $replyto = $self->TicketObj->QueueObj->CommentAddress || $RT::CommentAddress; @@ -49,7 +74,9 @@ sub SetReturnAddress { } unless ($self->TemplateObj->MIMEObj->head->get('From')) { - my $friendly_name=$self->TicketObj->QueueObj->Name; + my $friendly_name = $self->TicketObj->QueueObj->Description || + $self->TicketObj->QueueObj->Name; + $friendly_name =~ s/"/\\"/g; $self->SetHeader('From', "\"$friendly_name\" <$replyto>"); } @@ -61,4 +88,9 @@ sub SetReturnAddress { # }}} +eval "require RT::Action::Autoreply_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Autoreply_Vendor.pm}); +eval "require RT::Action::Autoreply_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Autoreply_Local.pm}); + 1; diff --git a/rt/lib/RT/Action/CreateTickets.pm b/rt/lib/RT/Action/CreateTickets.pm new file mode 100644 index 000000000..0ab206771 --- /dev/null +++ b/rt/lib/RT/Action/CreateTickets.pm @@ -0,0 +1,564 @@ +# 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. +# +# 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::CreateTickets; +require RT::Action::Generic; + +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Action::Generic); + +use MIME::Entity; + +=head1 NAME + + RT::Action::CreateTickets + +Create one or more tickets according to an externally supplied template. + + +=head1 SYNOPSIS + + ===Create-Ticket: codereview + Subject: Code review for {$Tickets{'TOP'}->Subject} + Depended-On-By: {$Tickets{'TOP'}->Id} + Content: Someone has created a ticket. you should review and approve it, + so they can finish their work + ENDOFCONTENT + +=head1 DESCRIPTION + + +Using the "CreateTickets" ScripAction and mandatory dependencies, RT now has +the ability to model complex workflow. When a ticket is created in a queue +that has a "CreateTickets" scripaction, that ScripAction parses its "Template" + + + +=head2 FORMAT + +CreateTickets uses the template as a template for an ordered set of tickets +to create. The basic format is as follows: + + + ===Create-Ticket: identifier + Param: Value + Param2: Value + Param3: Value + Content: Blah + blah + blah + ENDOFCONTENT + ===Create-Ticket: id2 + Param: Value + Content: Blah + ENDOFCONTENT + + +Each ===Create-Ticket: section is evaluated as its own +Text::Template object, which means that you can embed snippets +of perl inside the Text::Template using {} delimiters, but that +such sections absolutely can not span a ===Create-Ticket boundary. + +After each ticket is created, it's stuffed into a hash called %Tickets +so as to be available during the creation of other tickets during the same +ScripAction. The hash is prepopulated with the ticket which triggered the +ScripAction as $Tickets{'TOP'}; you can also access that ticket using the +shorthand $TOP. + +A simple example: + + ===Create-Ticket: codereview + Subject: Code review for {$Tickets{'TOP'}->Subject} + Depended-On-By: {$Tickets{'TOP'}->Id} + Content: Someone has created a ticket. you should review and approve it, + so they can finish their work + ENDOFCONTENT + + + +A convoluted example + + ===Create-Ticket: approval + { # Find out who the administrators of the group called "HR" + # of which the creator of this ticket is a member + my $name = "HR"; + + my $groups = RT::Groups->new($RT::SystemUser); + $groups->LimitToUserDefinedGroups(); + $groups->Limit(FIELD => "Name", OPERATOR => "=", VALUE => "$name"); + $groups->WithMember($TransactionObj->CreatorObj->Id); + + my $groupid = $groups->First->Id; + + my $adminccs = RT::Users->new($RT::SystemUser); + $adminccs->WhoHaveRight( + Right => "AdminGroup", + Object =>$groups->First, + IncludeSystemRights => undef, + IncludeSuperusers => 0, + IncludeSubgroupMembers => 0, + ); + + my @admins; + while (my $admin = $adminccs->Next) { + push (@admins, $admin->EmailAddress); + } + } + Queue: Approvals + Type: Approval + AdminCc: {join ("\nAdminCc: ",@admins) } + Depended-On-By: {$Tickets{"TOP"}->Id} + Refers-To: {$Tickets{"TOP"}->Id} + Subject: Approval for ticket: {$Tickets{"TOP"}->Id} - {$Tickets{"TOP"}->Subject} + Due: {time + 86400} + Content-Type: text/plain + Content: Your approval is requested for the ticket {$Tickets{"TOP"}->Id}: {$Tickets{"TOP"}->Subject} + Blah + Blah + ENDOFCONTENT + ===Create-Ticket: two + Subject: Manager approval + Depended-On-By: {$Tickets{"TOP"}->Id} + Refers-On: {$Tickets{"approval"}->Id} + Queue: Approvals + Content-Type: text/plain + Content: + Your approval is requred for this ticket, too. + ENDOFCONTENT + +=head2 Acceptable fields + +A complete list of acceptable fields for this beastie: + + + * Queue => Name or id# of a queue + Subject => A text string + ! Status => A valid status. defaults to 'new' + Due => Dates can be specified in seconds since the epoch + to be handled literally or in a semi-free textual + format which RT will attempt to parse. + + + + Starts => + Started => + Resolved => + Owner => Username or id of an RT user who can and should own + this ticket + + Requestor => Email address + + Cc => Email address + + AdminCc => Email address + TimeWorked => + TimeEstimated => + TimeLeft => + InitialPriority => + FinalPriority => + Type => + +! DependsOn => + +! DependedOnBy => + +! RefersTo => + +! ReferredToBy => + +! Members => + +! MemberOf => + Content => content. Can extend to multiple lines. Everything + within a template after a Content: header is treated + as content until we hit a line containing only + ENDOFCONTENT + ContentType => the content-type of the Content field + CustomField-<id#> => custom field value + +Fields marked with an * are required. + +Fields marked with a + man have multiple values, simply +by repeating the fieldname on a new line with an additional value. + +Fields marked with a ! are postponed to be processed after all +tickets in the same actions are created. Except for 'Status', those +field can also take a ticket name within the same action (i.e. +the identifiers after ==Create-Ticket), instead of raw Ticket ID +numbers. + +When parsed, field names are converted to lowercase and have -s stripped. +Refers-To, RefersTo, refersto, refers-to and r-e-f-er-s-tO will all +be treated as the same thing. + + +=begin testing + +ok (require RT::Action::CreateTickets); +use_ok(RT::Scrip); +use_ok(RT::Template); +use_ok(RT::ScripAction); +use_ok(RT::ScripCondition); +use_ok(RT::Ticket); + +my $approvalsq = RT::Queue->new($RT::SystemUser); +$approvalsq->Create(Name => 'Approvals'); +ok ($approvalsq->Id, "Created Approvals test queue"); + + +my $approvals = +'===Create-Ticket: approval +{ my $name = "HR"; + my $groups = RT::Groups->new($RT::SystemUser); + $groups->LimitToUserDefinedGroups(); + $groups->Limit(FIELD => "Name", OPERATOR => "=", VALUE => "$name"); + $groups->WithMember($Transaction->CreatorObj->Id); + + my $groupid = $groups->First->Id; + + my $adminccs = RT::Users->new($RT::SystemUser); + $adminccs->WhoHaveRight(Right => "AdminGroup", IncludeSystemRights => undef, IncludeSuperusers => 0, IncludeSubgroupMembers => 0, Object => $groups->First); + + my @admins; + while (my $admin = $adminccs->Next) { + push (@admins, $admin->EmailAddress); + } +} +Queue: Approvals +Type: Approval +AdminCc: {join ("\nAdminCc: ",@admins) } +Depended-On-By: {$Tickets{"TOP"}->Id} +Refers-To: {$Tickets{"TOP"}->Id} +Subject: Approval for ticket: {$Tickets{"TOP"}->Id} - {$Tickets{"TOP"}->Subject} +Due: {time + 86400} +Content-Type: text/plain +Content: Your approval is requested for the ticket {$Tickets{"TOP"}->Id}: {$Tickets{"TOP"}->Subject} +Blah +Blah +ENDOFCONTENT +===Create-Ticket: two +Subject: Manager approval. +Depends-On: {$Tickets{"approval"}->Id} +Queue: Approvals +Content-Type: text/plain +Content: +Your minion approved this ticket. you ok with that? +ENDOFCONTENT +'; + +ok ($approvals =~ /Content/, "Read in the approvals template"); + +my $apptemp = RT::Template->new($RT::SystemUser); +$apptemp->Create( Content => $approvals, Name => "Approvals", Queue => "0"); + +ok ($apptemp->Id); + +my $q = RT::Queue->new($RT::SystemUser); +$q->Create(Name => 'WorkflowTest'); +ok ($q->Id, "Created workflow test queue"); + +my $scrip = RT::Scrip->new($RT::SystemUser); +my ($sval, $smsg) =$scrip->Create( ScripCondition => 'On Transaction', + ScripAction => 'Create Tickets', + Template => 'Approvals', + Queue => $q->Id); +ok ($sval, $smsg); +ok ($scrip->Id, "Created the scrip"); +ok ($scrip->TemplateObj->Id, "Created the scrip template"); +ok ($scrip->ConditionObj->Id, "Created the scrip condition"); +ok ($scrip->ActionObj->Id, "Created the scrip action"); + +my $t = RT::Ticket->new($RT::SystemUser); +$t->Create(Subject => "Sample workflow test", + Owner => "root", + Queue => $q->Id); + + +=end testing + + +=head1 AUTHOR + +Jesse Vincent <jesse@bestpractical.com> + +=head1 SEE ALSO + +perl(1). + +=cut + +my %LINKTYPEMAP = ( + MemberOf => { Type => 'MemberOf', + Mode => 'Target', }, + Members => { Type => 'MemberOf', + Mode => 'Base', }, + HasMember => { Type => 'MemberOf', + Mode => 'Base', }, + RefersTo => { Type => 'RefersTo', + Mode => 'Target', }, + ReferredToBy => { Type => 'RefersTo', + Mode => 'Base', }, + DependsOn => { Type => 'DependsOn', + Mode => 'Target', }, + DependedOnBy => { Type => 'DependsOn', + Mode => 'Base', }, + +); + +# {{{ Scrip methods (Commit, Prepare) + +# {{{ sub Commit +#Do what we need to do and send it out. +sub Commit { + my $self = shift; + my (@links, @postponed); + + # XXX: cargo cult programming that works. i'll be back. + use bytes; + + # Create all the tickets we care about + return(1) unless $self->TicketObj->Type eq 'ticket'; + + %T::Tickets = (); + + foreach my $template_id ( @{ $self->{'template_order'} } ) { + $T::Tickets{'TOP'} = $T::TOP = $self->TicketObj; + $RT::Logger->debug("Workflow: processing $template_id of $T::TOP"); + + $T::ID = $template_id; + @T::AllID = @{ $self->{'template_order'} }; + + my $template = Text::Template->new( + TYPE => 'STRING', + SOURCE => $self->{'templates'}->{$template_id} + ); + + $RT::Logger->debug("Workflow: evaluating\n$self->{templates}{$template_id}"); + + my $err; + my $filled_in = $template->fill_in( PACKAGE => 'T', BROKEN => sub { + $err = { @_ }->{error}; + } ); + + $RT::Logger->debug("Workflow: yielding\n$filled_in"); + + if ($err) { + $RT::Logger->error("Ticket creation failed for ".$self->TicketObj->Id." ".$err); + while (my ($k, $v) = each %T::X) { + $RT::Logger->debug("Eliminating $template_id from ${k}'s parents."); + delete $v->{$template_id}; + } + next; + } + + my %args; + my @lines = ( split ( /\n/, $filled_in ) ); + while ( defined(my $line = shift @lines) ) { + if ( $line =~ /^(.*?):(?:\s+(.*))?$/ ) { + my $value = $2; + my $tag = lc ($1); + $tag =~ s/-//g; + + if (ref($args{$tag})) { #If it's an array, we want to push the value + push @{$args{$tag}}, $value; + } + elsif (defined ($args{$tag})) { #if we're about to get a second value, make it an array + $args{$tag} = [$args{$tag}, $value]; + } + else { #if there's nothing there, just set the value + $args{ $tag } = $value; + } + + if ( $tag eq 'content' ) { #just build up the content + # convert it to an array + $args{$tag} = defined($value) ? [ $value."\n" ] : []; + while ( defined(my $l = shift @lines) ) { + last if ($l =~ /^ENDOFCONTENT\s*$/) ; + push @{$args{'content'}}, $l."\n"; + } + } + } + } + + foreach my $date qw(due starts started resolved) { + my $dateobj = RT::Date->new($RT::SystemUser); + next unless $args{$date}; + if ($args{$date} =~ /^\d+$/) { + $dateobj->Set(Format => 'unix', Value => $args{$date}); + } else { + $dateobj->Set(Format => 'unknown', Value => $args{$date}); + } + $args{$date} = $dateobj->ISO; + } + my $mimeobj = MIME::Entity->new(); + $mimeobj->build(Type => $args{'contenttype'}, + Data => $args{'content'}); + # Now we have a %args to work with. + # Make sure we have at least the minimum set of + # reasonable data and do our thang + $T::Tickets{$template_id} ||= RT::Ticket->new($RT::SystemUser); + + # Deferred processing + push @links, ( + $T::Tickets{$template_id}, { + DependsOn => $args{'dependson'}, + DependedOnBy => $args{'dependedonby'}, + RefersTo => $args{'refersto'}, + ReferredToBy => $args{'referredtoby'}, + Members => $args{'members'}, + MemberOf => $args{'memberof'}, + } + ); + + push @postponed, ( + # Status is postponed so we don't violate dependencies + $T::Tickets{$template_id}, { + Status => $args{'status'}, + } + ); + + $args{'requestor'} ||= $self->TicketObj->Requestors->MemberEmailAddresses; + + my %ticketargs = ( Queue => $args{'queue'}, + Subject=> $args{'subject'}, + Status => 'new', + Due => $args{'due'}, + Starts => $args{'starts'}, + Started => $args{'started'}, + Resolved => $args{'resolved'}, + Owner => $args{'owner'}, + Requestor => $args{'requestor'}, + Cc => $args{'cc'}, + AdminCc=> $args{'admincc'}, + TimeWorked =>$args{'timeworked'}, + TimeEstimated =>$args{'timeestimated'}, + TimeLeft =>$args{'timeleft'}, + InitialPriority => $args{'initialpriority'}, + FinalPriority => $args{'finalpriority'}, + Type => $args{'type'}, + MIMEObj => $mimeobj); + + + foreach my $key (keys(%args)) { + $key =~ /^customfield-(\d+)$/ or next; + $ticketargs{ "CustomField-" . $1 } = $args{$key}; + } + + my ($id, $transid, $msg) = $T::Tickets{$template_id}->Create(%ticketargs); + if (!$id) { + $RT::Logger->error( + "Couldn't create related ticket $template_id for ". + $self->TicketObj->Id." ".$msg + ); + next; + } + + $RT::Logger->debug("Assigned $template_id with $id"); + $T::Tickets{$template_id}->SetOriginObj($self->TicketObj) + if $T::Tickets{$template_id}->can('SetOriginObj'); + } + + # postprocessing: add links + + while (my $ticket = shift(@links)) { + $RT::Logger->debug("Handling links for " . $ticket->Id); + my %args = %{shift(@links)}; + + foreach my $type ( keys %LINKTYPEMAP ) { + next unless (defined $args{$type}); + foreach my $link ( + ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) + { + if (!exists $T::Tickets{$link}) { + $RT::Logger->debug("Skipping $type link for $link (non-existent)"); + next; + } + $RT::Logger->debug("Building $type link for $link: " . $T::Tickets{$link}->Id); + $link = $T::Tickets{$link}->Id; + + my ( $wval, $wmsg ) = $ticket->AddLink( + Type => $LINKTYPEMAP{$type}->{'Type'}, + $LINKTYPEMAP{$type}->{'Mode'} => $link, + Silent => 1 + ); + + $RT::Logger->warning("AddLink thru $link failed: $wmsg") unless $wval; + # push @non_fatal_errors, $wmsg unless ($wval); + } + + } + } + + # postponed actions -- Status only, currently + while (my $ticket = shift(@postponed)) { + $RT::Logger->debug("Handling postponed actions for $ticket"); + my %args = %{shift(@postponed)}; + + $ticket->SetStatus($args{Status}) if defined $args{Status}; + } + + return(1); +} +# }}} + +# {{{ sub Prepare + +sub Prepare { + my $self = shift; + + unless ($self->TemplateObj) { + $RT::Logger->warning("No template object handed to $self\n"); + } + + unless ($self->TransactionObj) { + $RT::Logger->warning("No transaction object handed to $self\n"); + + } + + unless ($self->TicketObj) { + $RT::Logger->warning("No ticket object handed to $self\n"); + + } + + + + +my $template_id; +foreach my $line (split(/\n/,$self->TemplateObj->Content)) { + if ($line =~ /^===Create-Ticket: (.*)$/) { + $template_id = $1; + push @{$self->{'template_order'}},$template_id; + } else { + $self->{'templates'}->{$template_id} .= $line."\n"; + } + + +} + + return 1; + +} + +# }}} + +# }}} + +eval "require RT::Action::CreateTickets_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/CreateTickets_Vendor.pm}); +eval "require RT::Action::CreateTickets_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/CreateTickets_Local.pm}); + +1; + diff --git a/rt/lib/RT/Action/EscalatePriority.pm b/rt/lib/RT/Action/EscalatePriority.pm new file mode 100644 index 000000000..7ed63ae01 --- /dev/null +++ b/rt/lib/RT/Action/EscalatePriority.pm @@ -0,0 +1,142 @@ +# 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. +# +# 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::EscalatePriority + +=head1 DESCRIPTION + +EscalatePriority is a ScripAction which is NOT intended to be called per +transaction. It's intended to be called by an RT escalation daemon. +(The daemon is called escalator). + +EsclatePriority uses the following formula to change a ticket's priority: + + Priority = Priority + (( FinalPriority - Priority ) / ( DueDate-Today)) + +Unless the duedate is past, in which case priority gets bumped straight +to final priority. + +In this way, priority is either increased or decreased toward the final priority +as the ticket heads toward its due date. + + +=cut + + +package RT::Action::EscalatePriority; +require RT::Action::Generic; + +use strict; +use vars qw/@ISA/; +@ISA=qw(RT::Action::Generic); + +#Do what we need to do and send it out. + +#What does this type of Action does + +# {{{ sub Describe +sub Describe { + my $self = shift; + return (ref $self . " will move a ticket's priority toward its final priority."); +} +# }}} + + +# {{{ sub Prepare +sub Prepare { + my $self = shift; + + if ($self->TicketObj->Priority() == $self->TicketObj->FinalPriority()) { + # no update necessary. + return 0; + } + + #compute the number of days until the ticket is due + my $due = $self->TicketObj->DueObj(); + + + # If we don't have a due date, adjust the priority by one + # until we hit the final priority + if ($due->Unix() < 1) { + if ( $self->TicketObj->Priority > $self->TicketObj->FinalPriority ){ + $self->{'prio'} = ($self->TicketObj->Priority - 1); + return 1; + } + elsif ( $self->TicketObj->Priority < $self->TicketObj->FinalPriority ){ + $self->{'prio'} = ($self->TicketObj->Priority + 1); + return 1; + } + # otherwise the priority is at the final priority. we don't need to + # Continue + else { + return 0; + } + } + + # we've got a due date. now there are other things we should do + else { + my $diff_in_seconds = $due->Diff(time()); + my $diff_in_days = int( $diff_in_seconds / 86400); + + #if we haven't hit the due date yet + if ($diff_in_days > 0 ) { + + # compute the difference between the current priority and the + # final priority + + my $prio_delta = + $self->TicketObj->FinalPriority() - $self->TicketObj->Priority; + + my $inc_priority_by = int( $prio_delta / $diff_in_days ); + + #set the ticket's priority to that amount + $self->{'prio'} = $self->TicketObj->Priority + $inc_priority_by; + + } + #if $days is less than 1, set priority to final_priority + else { + $self->{'prio'} = $self->TicketObj->FinalPriority(); + } + + } + return 1; +} +# }}} + +sub Commit { + my $self = shift; + my ($val, $msg) = $self->TicketObj->SetPriority($self->{'prio'}); + + unless ($val) { + $RT::Logger->debug($self . " $msg\n"); + } +} + +eval "require RT::Action::EscalatePriority_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/EscalatePriority_Vendor.pm}); +eval "require RT::Action::EscalatePriority_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/EscalatePriority_Local.pm}); + +1; diff --git a/rt/lib/RT/Action/Generic.pm b/rt/lib/RT/Action/Generic.pm index ecfd4ab1a..007d299c7 100755 --- a/rt/lib/RT/Action/Generic.pm +++ b/rt/lib/RT/Action/Generic.pm @@ -1,7 +1,26 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Generic.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - +# 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. +# +# 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 - a generic baseclass for RT Actions @@ -16,7 +35,6 @@ =begin testing -ok (require RT::TestHarness); ok (require RT::Action::Generic); =end testing @@ -25,6 +43,8 @@ ok (require RT::Action::Generic); package RT::Action::Generic; +use strict; + # {{{ sub new sub new { my $proto = shift; @@ -36,6 +56,13 @@ sub new { } # }}} +# {{{ sub new +sub loc { + my $self = shift; + return $self->{'ScripObj'}->loc(@_); +} +# }}} + # {{{ sub _Init sub _Init { my $self = shift; @@ -87,6 +114,13 @@ sub TemplateObj { } # }}} +# {{{ sub ScripObj +sub ScripObj { + my $self = shift; + return($self->{'ScripObj'}); +} +# }}} + # {{{ sub Type sub Type { my $self = shift; @@ -102,7 +136,7 @@ sub Type { # {{{ sub Commit sub Commit { my $self = shift; - return(0,"Commit Stubbed"); + return(0, $self->loc("Commit Stubbed")); } # }}} @@ -112,7 +146,7 @@ sub Commit { # {{{ sub Describe sub Describe { my $self = shift; - return ("No description for " . ref $self); + return $self->loc("No description for [_1]", ref $self); } # }}} @@ -122,7 +156,7 @@ sub Describe { # {{{ sub Prepare sub Prepare { my $self = shift; - return (0,"Prepare Stubbed"); + return (0, $self->loc("Prepare Stubbed")); } # }}} @@ -152,4 +186,10 @@ sub DESTROY { } # }}} + +eval "require RT::Action::Generic_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Generic_Vendor.pm}); +eval "require RT::Action::Generic_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Generic_Local.pm}); + 1; diff --git a/rt/lib/RT/Action/Notify.pm b/rt/lib/RT/Action/Notify.pm index 6dca4fd41..1e4e4c073 100755 --- a/rt/lib/RT/Action/Notify.pm +++ b/rt/lib/RT/Action/Notify.pm @@ -1,7 +1,31 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Notify.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - +# 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. +# +# 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 vars qw/@ISA/; @ISA = qw(RT::Action::SendEmail); # {{{ sub SetRecipients @@ -9,14 +33,14 @@ require RT::Action::SendEmail; =head2 SetRecipients Sets the recipients of this meesage to Owner, Requestor, AdminCc, Cc or All. -Explicitly B<does not> notify the creator of the transaction. +Explicitly B<does not> notify the creator of the transaction by default =cut sub SetRecipients { my $self = shift; - $arg = $self->Argument; + my $arg = $self->Argument; $arg =~ s/\bAll\b/Owner,Requestor,AdminCc,Cc/; @@ -24,14 +48,14 @@ sub SetRecipients { if ($arg =~ /\bOtherRecipients\b/) { - if ($self->TransactionObj->Message->First) { - push (@Cc, $self->TransactionObj->Message->First->GetHeader('RT-Send-Cc')); - push (@Bcc, $self->TransactionObj->Message->First->GetHeader('RT-Send-Bcc')); + 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, @{ $self->TicketObj->Requestors->Emails } ); + push ( @To, $self->TicketObj->Requestors->MemberEmailAddresses ); } @@ -40,12 +64,12 @@ sub SetRecipients { #If we have a To, make the Ccs, Ccs, otherwise, promote them to To if (@To) { - push ( @Cc, @{ $self->TicketObj->Cc->Emails } ); - push ( @Cc, @{ $self->TicketObj->QueueObj->Cc->Emails } ); + push ( @Cc, $self->TicketObj->Cc->MemberEmailAddresses ); + push ( @Cc, $self->TicketObj->QueueObj->Cc->MemberEmailAddresses ); } else { - push ( @Cc, @{ $self->TicketObj->Cc->Emails } ); - push ( @To, @{ $self->TicketObj->QueueObj->Cc->Emails } ); + push ( @Cc, $self->TicketObj->Cc->MemberEmailAddresses ); + push ( @To, $self->TicketObj->QueueObj->Cc->MemberEmailAddresses ); } } @@ -65,15 +89,16 @@ sub SetRecipients { } if ( $arg =~ /\bAdminCc\b/ ) { - push ( @Bcc, @{ $self->TicketObj->AdminCc->Emails } ); - push ( @Bcc, @{ $self->TicketObj->QueueObj->AdminCc->Emails } ); + push ( @Bcc, $self->TicketObj->AdminCc->MemberEmailAddresses ); + push ( @Bcc, $self->TicketObj->QueueObj->AdminCc->MemberEmailAddresses ); } if ($RT::UseFriendlyToLine) { unless (@To) { - push ( @PseudoTo, - "\"$arg of $RT::rtname Ticket #" - . $self->TicketObj->id . "\":;" ); + push ( + @PseudoTo, + sprintf($RT::FriendlyToLineFormat, $arg, $self->TicketObj->id), + ); } } @@ -81,14 +106,17 @@ sub SetRecipients { #Strip the sender out of the To, Cc and AdminCc and set the # recipients fields used to build the message by the superclass. - - $RT::Logger->debug("$self: To is ".join(",",@To)); - $RT::Logger->debug("$self: Cc is ".join(",",@Cc)); - $RT::Logger->debug("$self: Bcc is ".join(",",@Bcc)); - - @{ $self->{'To'} } = grep ( !/^$creator$/, @To ); - @{ $self->{'Cc'} } = grep ( !/^$creator$/, @Cc ); - @{ $self->{'Bcc'} } = grep ( !/^$creator$/, @Bcc ); + # unless a flag is set + if ($RT::NotifyActor) { + @{ $self->{'To'} } = @To; + @{ $self->{'Cc'} } = @Cc; + @{ $self->{'Bcc'} } = @Bcc; + } + else { + @{ $self->{'To'} } = grep ( !/^$creator$/, @To ); + @{ $self->{'Cc'} } = grep ( !/^$creator$/, @Cc ); + @{ $self->{'Bcc'} } = grep ( !/^$creator$/, @Bcc ); + } @{ $self->{'PseudoTo'} } = @PseudoTo; return (1); @@ -96,4 +124,9 @@ sub SetRecipients { # }}} +eval "require RT::Action::Notify_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Notify_Vendor.pm}); +eval "require RT::Action::Notify_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Notify_Local.pm}); + 1; diff --git a/rt/lib/RT/Action/NotifyAsComment.pm b/rt/lib/RT/Action/NotifyAsComment.pm index c72bfff13..210e4ab15 100755 --- a/rt/lib/RT/Action/NotifyAsComment.pm +++ b/rt/lib/RT/Action/NotifyAsComment.pm @@ -1,7 +1,31 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/NotifyAsComment.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - +# 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. +# +# 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 vars qw/@ISA/; @ISA = qw(RT::Action::Notify); @@ -21,5 +45,11 @@ sub SetReturnAddress { return($self->SUPER::SetReturnAddress(is_comment => 1)); } + +eval "require RT::Action::NotifyAsComment_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/NotifyAsComment_Vendor.pm}); +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 00547ebe8..02ff3a58c 100644 --- a/rt/lib/RT/Action/ResolveMembers.pm +++ b/rt/lib/RT/Action/ResolveMembers.pm @@ -1,8 +1,34 @@ +# 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. +# +# 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; 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. @@ -12,7 +38,7 @@ require RT::Links; # {{{ sub Describe sub Describe { my $self = shift; - return (ref $self . " will resolve all members of a resolved group ticket."); + return $self->loc("[_1] will resolve all members of a resolved group ticket.", ref $self); } # }}} @@ -33,7 +59,7 @@ sub Commit { while (my $Link=$Links->Next()) { # Todo: Try to deal with remote URIs as well - next unless $Link->BaseIsLocal; + next unless $Link->BaseURI->IsLocal; my $base=RT::Ticket->new($self->TicketObj->CurrentUser); # Todo: Only work if Base is a plain ticket num: $base->Load($Link->Base); @@ -53,5 +79,10 @@ sub IsApplicable { } # }}} +eval "require RT::Action::ResolveMembers_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/ResolveMembers_Vendor.pm}); +eval "require RT::Action::ResolveMembers_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/ResolveMembers_Local.pm}); + 1; diff --git a/rt/lib/RT/Action/SendEmail.pm b/rt/lib/RT/Action/SendEmail.pm index e3abb1154..dac8fc8e7 100755 --- a/rt/lib/RT/Action/SendEmail.pm +++ b/rt/lib/RT/Action/SendEmail.pm @@ -1,20 +1,44 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/SendEmail.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com> +# 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. +# +# 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> -# Released under the terms of version 2 of the GNU Public License package RT::Action::SendEmail; require RT::Action::Generic; +use strict; +use vars qw/@ISA/; @ISA = qw(RT::Action::Generic); +use MIME::Words qw(encode_mimeword); -=head1 NAME +use RT::EmailParser; - RT::Action::SendEmail - An Action which users can use to send mail - or can subclassed for more specialized mail sending behavior. - RT::Action::AutoReply is a good example subclass. +=head1 NAME +RT::Action::SendEmail - An Action which users can use to send mail +or can subclassed for more specialized mail sending behavior. +RT::Action::AutoReply is a good example subclass. =head1 SYNOPSIS @@ -36,7 +60,6 @@ the comments for the SetRecipients sub). =begin testing -ok (require RT::TestHarness); ok (require RT::Action::SendEmail); =end testing @@ -54,158 +77,266 @@ perl(1). # {{{ Scrip methods (_Init, Commit, Prepare, IsApplicable) -# {{{ sub _Init +# {{{ sub _Init # We use _Init from RT::Action # }}} -# {{{ sub Commit +# {{{ sub Commit #Do what we need to do and send it out. -sub Commit { +sub Commit { my $self = shift; + + 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 - + + # 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 - - if (defined $self->TransactionObj->Message->First()) { - my $headers = $self->TransactionObj->Message->First->Headers(); - - if ($headers =~ /^RT-Squelch-Replies-To: (.*?)$/si) { - my @blacklist = split(/,/,$1); - - # Cycle through the people we're sending to and pull out anyone on the - # system blacklist - - 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'}}); - } - } + + if ( defined $self->TransactionObj->Attachments->First() ) { + + my $squelch = $self->TransactionObj->Attachments->First->GetHeader( 'RT-Squelch-Replies-To'); + + if ($squelch) { + my @blacklist = split ( /,/, $squelch ); + + # Cycle through the people we're sending to and pull out anyone on the + # system blacklist + + 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 + + # 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. - - $self->SetHeader('To', join(',', @{$self->{'To'}})) - if (@{$self->{'To'}}); - $self->SetHeader('Cc', join(',' , @{$self->{'Cc'}})) - if (@{$self->{'Cc'}}); - $self->SetHeader('Bcc', join(',', @{$self->{'Bcc'}})) - if (@{$self->{'Bcc'}});; - - my $MIMEObj = $self->TemplateObj->MIMEObj; - - $MIMEObj->make_singlepart; - - + $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'} } ); + + + $self->SetHeader('MIME-Version', '1.0'); + + # try to convert message body from utf-8 to $RT::EmailOutputEncoding + $self->SetHeader( 'Content-Type', 'text/plain; charset="utf-8"' ); + + RT::I18N::SetMIMEEntityToEncoding( $MIMEObj, $RT::EmailOutputEncoding, 'mime_words_ok' ); + $self->SetHeader( 'Content-Type', 'text/plain; charset="' . $RT::EmailOutputEncoding . '"' ); + + + # Build up a MIME::Entity that looks like the original message. + + my $do_attach = $self->TemplateObj->MIMEObj->head->get('RT-Attach-Message'); + + if ($do_attach) { + $self->TemplateObj->MIMEObj->head->delete('RT-Attach-Message'); + + my $attachments = RT::Attachments->new($RT::SystemUser); + $attachments->Limit( FIELD => 'TransactionId', + VALUE => $self->TransactionObj->Id ); + $attachments->OrderBy('id'); + + my $transaction_content_obj = $self->TransactionObj->ContentObj; + + # attach any of this transaction's attachments + while ( my $attach = $attachments->Next ) { + + # Don't attach anything blank + next unless ( $attach->ContentLength ); + + # 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'); + } + + } + + + my $retval = $self->SendMessage($MIMEObj); + + + return ($retval); +} + +# }}} + +# {{{ sub Prepare + +sub Prepare { + my $self = shift; + + # This actually populates the MIME::Entity fields in the Template Object + + unless ( $self->TemplateObj ) { + $RT::Logger->warning("No template object handed to $self\n"); + } + + unless ( $self->TransactionObj ) { + $RT::Logger->warning("No transaction object handed to $self\n"); + + } + + unless ( $self->TicketObj ) { + $RT::Logger->warning("No ticket object handed to $self\n"); + + } + + 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 ); + } + } + + return $result; + +} + +# }}} + +# }}} + +# {{{ SendMessage +=head2 SendMessage MIMEObj + +sends the message using RT's preferred API. +TODO: Break this out to a seperate module + +=cut + +sub SendMessage { + my $self = shift; + my $MIMEObj = shift; + + my $msgid = $MIMEObj->head->get('Message-Id'); + + #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->debug("$self: No recipients found. Not sending.\n"); - return(1); + 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); } # 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. - $self->SetHeader('To', join(',', @{$self->{'PseudoTo'}})) - if ( (@{$self->{'PseudoTo'}}) and (! $MIMEObj->head->get('To'))); - - if ($RT::MailCommand eq 'sendmailpipe') { - open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); - print MAIL $MIMEObj->as_string; - close(MAIL); + $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 { - unless ($MIMEObj->send($RT::MailCommand, $RT::MailParams)) { - $RT::Logger->crit("$self: Could not send mail for ". - $self->TransactionObj . "\n"); - return(0); + my @mailer_args = ($RT::MailCommand); + local $ENV{MAILADDRESS}; + + 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; } + + unless ( $MIMEObj->send( @mailer_args ) ) { + $RT::Logger->crit($msgid. "Could not send mail." ); + return (0); + } } - - return (1); - -} -# }}} -# {{{ sub Prepare -sub Prepare { - my $self = shift; - - # This actually populates the MIME::Entity fields in the Template Object - - unless ($self->TemplateObj) { - $RT::Logger->warning("No template object handed to $self\n"); - } - - unless ($self->TransactionObj) { - $RT::Logger->warning("No transaction object handed to $self\n"); - - } - - unless ($self->TicketObj) { - $RT::Logger->warning("No ticket object handed to $self\n"); - - } - - - $self->TemplateObj->Parse(Argument => $self->Argument, - TicketObj => $self->TicketObj, - TransactionObj => $self->TransactionObj); - - # Header - - $self->SetSubject(); - - $self->SetSubjectToken(); - - $self->SetRecipients(); - - $self->SetReturnAddress(); + 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); - $self->SetRTSpecialHeaders(); - - return 1; - + return (1); } # }}} -# }}} - # {{{ Deal with message headers (Set* subs, designed for easy overriding) # {{{ sub SetRTSpecialHeaders -# This routine adds all the random headers that RT wants in a mail message -# that don't matter much to anybody else. +=head2 SetRTSpecialHeaders + +This routine adds all the random headers that RT wants in a mail message +that don't matter much to anybody else. + +=cut sub SetRTSpecialHeaders { my $self = shift; - + $self->SetReferences(); $self->SetMessageID(); - + $self->SetPrecedence(); - $self->SetHeader('X-RT-Loop-Prevention', $RT::rtname); - $self->SetHeader('RT-Ticket', $RT::rtname. " #".$self->TicketObj->id()); - $self->SetHeader - ('Managed-by',"RT $RT::VERSION (http://bestpractical.com/rt/)"); - - $self->SetHeader('RT-Originator', $self->TransactionObj->CreatorObj->EmailAddress); - return(); - -} + $self->SetHeader( 'X-RT-Loop-Prevention', $RT::rtname ); + $self->SetHeader( 'RT-Ticket', + $RT::rtname . " #" . $self->TicketObj->id() ); + $self->SetHeader( 'Managed-by', + "RT $RT::VERSION (http://www.bestpractical.com/rt/)" ); + $self->SetHeader( 'RT-Originator', + $self->TransactionObj->CreatorObj->EmailAddress ); + return (); +} # {{{ sub SetReferences @@ -218,105 +349,126 @@ sub SetRTSpecialHeaders { =cut sub SetReferences { - my $self = shift; - - # 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 $self = shift; - $self->SetHeader - ('In-Reply-To', "<rt-".$self->TicketObj->id(). - "\@".$RT::rtname.">"); + # 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. + $self->SetHeader( 'In-Reply-To', + "<rt-" . $self->TicketObj->id() . "\@" . $RT::rtname . ">" ); - # TODO We should always add References headers for all message-ids - # of previous messages related to this ticket. + # TODO We should always add References headers for all message-ids + # of previous messages related to this ticket. } # }}} # {{{ sub SetMessageID -# 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. +=head2 SetMessageID -sub SetMessageID { - my $self = shift; +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. - # 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#" +=cut + +sub SetMessageID { + my $self = shift; - $self->SetHeader - ('Message-ID', "<rt-".$self->TicketObj->id(). - "-". - $self->TransactionObj->id()."." .rand(20) . "\@".$RT::Organization.">") + # 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'); } - # }}} # }}} -# {{{ sub SetReturnAddress +# {{{ sub SetReturnAddress + +=head2 SetReturnAddress is_comment => BOOLEAN + +Calculate and set From and Reply-To headers based on the is_comment flag. + +=cut sub SetReturnAddress { - my $self = shift; - my %args = ( is_comment => 0, - @_ ); - - # From and Reply-To - # $args{is_comment} should be set if the comment address is to be used. - 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->TransactionObj->CreatorObj->RealName; - - if ($friendly_name =~ /^\S+\@\S+$/) { # A "bare" mail address - $friendly_name =~ s/"/\\"/g; - $friendly_name = qq|"$friendly_name"|; - } - - - # TODO: this "via RT" should really be site-configurable. - $self->SetHeader('From', "\"$friendly_name via RT\" <$replyto>"); - } - - unless ($self->TemplateObj->MIMEObj->head->get('Reply-To')) { - $self->SetHeader('Reply-To', "$replyto"); - } - + my $self = shift; + my %args = ( is_comment => 0, + @_ ); + + # From and Reply-To + # $args{is_comment} should be set if the comment address is to be used. + 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') ) { + 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') ) { + $self->SetHeader( 'Reply-To', "$replyto" ); + } + } # }}} # {{{ sub SetHeader +=head2 SetHeader FIELD, VALUE + +Set the FIELD of the current MIME object into VALUE. + +=cut + sub SetHeader { - my $self = shift; - my $field = shift; - my $val = shift; - - chomp $val; - chomp $field; - $self->TemplateObj->MIMEObj->head->fold_length($field,10000); - $self->TemplateObj->MIMEObj->head->add($field, $val); - return $self->TemplateObj->MIMEObj->head->get($field); + my $self = shift; + my $field = shift; + my $val = shift; + + chomp $val; + chomp $field; + $self->TemplateObj->MIMEObj->head->fold_length( $field, 10000 ); + $self->TemplateObj->MIMEObj->head->replace( $field, $val ); + return $self->TemplateObj->MIMEObj->head->get($field); } # }}} @@ -331,21 +483,29 @@ Dummy method to be overriden by subclasses which want to set the recipients. sub SetRecipients { my $self = shift; - return(); + return (); } # }}} # {{{ sub SetTo +=head2 SetTo + +Takes a string that is the addresses you want to send mail to + +=cut + sub SetTo { - my $self=shift; + my $self = shift; my $addresses = shift; - return $self->SetHeader('To',$addresses); + return $self->SetHeader( 'To', $addresses ); } + # }}} # {{{ sub SetCc + =head2 SetCc Takes a string that is the addresses you want to Cc @@ -353,11 +513,12 @@ Takes a string that is the addresses you want to Cc =cut sub SetCc { - my $self=shift; + my $self = shift; my $addresses = shift; - return $self->SetHeader('Cc', $addresses); + return $self->SetHeader( 'Cc', $addresses ); } + # }}} # {{{ sub SetBcc @@ -367,23 +528,24 @@ sub SetCc { Takes a string that is the addresses you want to Bcc =cut + sub SetBcc { - my $self=shift; + my $self = shift; my $addresses = shift; - return $self->SetHeader('Bcc', $addresses); + return $self->SetHeader( 'Bcc', $addresses ); } # }}} -# {{{ sub SetPrecedence +# {{{ sub SetPrecedence sub SetPrecedence { - my $self = shift; + my $self = shift; - unless ($self->TemplateObj->MIMEObj->head->get("Precedence")) { - $self->SetHeader('Precedence', "bulk"); - } + unless ( $self->TemplateObj->MIMEObj->head->get("Precedence") ) { + $self->SetHeader( 'Precedence', "bulk" ); + } } # }}} @@ -399,70 +561,125 @@ the transaction's subject. =cut sub SetSubject { - my $self = shift; - unless ($self->TemplateObj->MIMEObj->head->get('Subject')) { - my $message=$self->TransactionObj->Message; - my $ticket=$self->TicketObj->Id; - + my $self = shift; my $subject; - - if ($self->{'Subject'}) { - $subject = $self->{'Subject'}; - } - elsif (($message->First()) && - ($message->First->Headers)) { - $header = $message->First->Headers(); - $header =~ s/\n\s+/ /g; - if ( $header =~ /^Subject: (.*?)$/m ) { - $subject = $1; - } - else { - $subject = $self->TicketObj->Subject(); - } - - } - else { - $subject = $self->TicketObj->Subject(); - } - - $subject =~ s/(\r\n|\n|\s)/ /gi; - chomp $subject; - $self->SetHeader('Subject',$subject); - + 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(); + } + + } + else { + $subject = $self->TicketObj->Subject(); + } + + $subject =~ s/(\r\n|\n|\s)/ /gi; + + chomp $subject; + $self->SetHeader( 'Subject', $subject ); + } - return($subject); + return ($subject); } + # }}} # {{{ sub SetSubjectToken =head2 SetSubjectToken - This routine fixes the RT tag in the subject. It's unlikely that you want to overwrite this. +This routine fixes the RT tag in the subject. It's unlikely that you want to overwrite this. =cut sub SetSubjectToken { - my $self=shift; - 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"); - } + my $self = shift; + 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" ); + } } # }}} # }}} -__END__ +# {{{ + +=head2 SetHeaderAsEncoding($field_name, $charset_encoding) + +This routine converts the field into specified charset encoding. + +=cut + +sub SetHeaderAsEncoding { + my $self = shift; + my ( $field, $enc ) = ( shift, shift ); + + if ($field eq 'From' and $RT::SMTPFrom) { + $self->TemplateObj->MIMEObj->head->replace( $field, $RT::SMTPFrom ); + return; + } + + 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' + + $value = $self->MIMEEncodeString($value, $enc); + + $self->TemplateObj->MIMEObj->head->replace( $field, $value ); + + +} +# }}} + +# {{{ 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; + my $value = shift; + my $enc = shift; -# {{{ POD + 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}); +eval "require RT::Action::SendEmail_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/SendEmail_Local.pm}); + 1; diff --git a/rt/lib/RT/Action/SetPriority.pm b/rt/lib/RT/Action/SetPriority.pm new file mode 100644 index 000000000..515eeb58c --- /dev/null +++ b/rt/lib/RT/Action/SetPriority.pm @@ -0,0 +1,61 @@ +# 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. +# +# 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::SetPriority; +require RT::Action::Generic; + +use strict; +use vars qw/@ISA/; +@ISA=qw(RT::Action::Generic); + +#Do what we need to do and send it out. + +#What does this type of Action does + +# {{{ sub Describe +sub Describe { + my $self = shift; + return (ref $self . " will set a ticket's priority to the argument provided."); +} +# }}} + + +# {{{ sub Prepare +sub Prepare { + # nothing to prepare + return 1; +} +# }}} + +sub Commit { + my $self = shift; + $self->TicketObj->SetPriority($self->Argument); + +} + +eval "require RT::Action::SetPriority_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/SetPriority_Vendor.pm}); +eval "require RT::Action::SetPriority_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/SetPriority_Local.pm}); + +1; diff --git a/rt/lib/RT/Action/UserDefined.pm b/rt/lib/RT/Action/UserDefined.pm new file mode 100644 index 000000000..e2e3d72ce --- /dev/null +++ b/rt/lib/RT/Action/UserDefined.pm @@ -0,0 +1,71 @@ +# 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. +# +# 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::UserDefined; +use RT::Action::Generic; + +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Action::Generic); + +=head2 Prepare + +This happens on every transaction. it's always applicable + +=cut + +sub Prepare { + my $self = shift; + my $retval = eval $self->ScripObj->CustomPrepareCode; + if ($@) { + $RT::Logger->error("Scrip ".$self->ScripObj->Id. " Prepare failed: ".$@); + return (undef); + } + return ($retval); +} + +=head2 Commit + +This happens on every transaction. it's always applicable + +=cut + +sub Commit { + my $self = shift; + my $retval = eval $self->ScripObj->CustomCommitCode; + if ($@) { + $RT::Logger->error("Scrip ".$self->ScripObj->Id. " Commit failed: ".$@); + return (undef); + } + return ($retval); +} + +eval "require RT::Action::UserDefined_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/UserDefined_Vendor.pm}); +eval "require RT::Action::UserDefined_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/UserDefined_Local.pm}); + +1; + diff --git a/rt/lib/RT/Attachment.pm b/rt/lib/RT/Attachment.pm index 916ac355e..2ed520162 100755 --- a/rt/lib/RT/Attachment.pm +++ b/rt/lib/RT/Attachment.pm @@ -1,423 +1,372 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attachment.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 2000 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Attachment -- an RT attachment object +RT::Attachment + =head1 SYNOPSIS - use RT::Attachment; +=head1 DESCRIPTION +=head1 METHODS -=head1 DESCRIPTION +=cut -This module should never be instantiated directly by client code. it's an internal -module which should only be instantiated through exported APIs in Ticket, Queue and other -similar objects. +package RT::Attachment; +use RT::Record; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('Attachments'); + $self->SUPER::_Init(@_); +} -=head1 METHODS -=begin testing -ok (require RT::TestHarness); -ok (require RT::Attachment); +=item Create PARAMHASH -=end testing +Create takes a hash of values and creates a row in the database: + + int(11) 'TransactionId'. + int(11) 'Parent'. + varchar(160) 'MessageId'. + varchar(255) 'Subject'. + varchar(255) 'Filename'. + varchar(80) 'ContentType'. + varchar(80) 'ContentEncoding'. + longtext 'Content'. + longtext 'Headers'. =cut -package RT::Attachment; -use RT::Record; -use MIME::Base64; -use vars qw|@ISA|; -@ISA= qw(RT::Record); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Attachments"; - return($self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub _ClassAccessible -sub _ClassAccessible { - { - TransactionId => { 'read'=>1, 'public'=>1, }, - MessageId => { 'read'=>1, }, - Parent => { 'read'=>1, }, - ContentType => { 'read'=>1, }, - Subject => { 'read'=>1, }, - Content => { 'read'=>1, }, - ContentEncoding => { 'read'=>1, }, - Headers => { 'read'=>1, }, - Filename => { 'read'=>1, }, - Creator => { 'read'=>1, 'auto'=>1, }, - Created => { 'read'=>1, 'auto'=>1, }, - }; + + +sub Create { + my $self = shift; + my %args = ( + TransactionId => '0', + Parent => '0', + MessageId => '', + Subject => '', + Filename => '', + ContentType => '', + ContentEncoding => '', + Content => '', + Headers => '', + + @_); + $self->SUPER::Create( + TransactionId => $args{'TransactionId'}, + Parent => $args{'Parent'}, + MessageId => $args{'MessageId'}, + Subject => $args{'Subject'}, + Filename => $args{'Filename'}, + ContentType => $args{'ContentType'}, + ContentEncoding => $args{'ContentEncoding'}, + Content => $args{'Content'}, + Headers => $args{'Headers'}, +); + } -# }}} -# {{{ sub TransactionObj -=head2 TransactionObj -Returns the transaction object asscoiated with this attachment. +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + =cut -sub TransactionObj { - require RT::Transaction; - my $self=shift; - unless (exists $self->{_TransactionObj}) { - $self->{_TransactionObj}=RT::Transaction->new($self->CurrentUser); - $self->{_TransactionObj}->Load($self->TransactionId); - } - return $self->{_TransactionObj}; -} -# }}} +=item TransactionId + +Returns the current value of TransactionId. +(In the database, TransactionId is stored as int(11).) -# {{{ sub Create -=head2 Create -Create a new attachment. Takes a paramhash: - - 'Attachment' Should be a single MIME body with optional subparts - 'Parent' is an optional Parent RT::Attachment object - 'TransactionId' is the mandatory id of the Transaction this attachment is associated with.; +=item SetTransactionId VALUE + + +Set TransactionId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TransactionId will be stored as a int(11).) + =cut -sub Create { - my $self = shift; - my ($id); - my %args = ( id => 0, - TransactionId => 0, - Parent => 0, - Attachment => undef, - @_ - ); - - - #For ease of reference - my $Attachment = $args{'Attachment'}; - - #if we didn't specify a ticket, we need to bail - if ( $args{'TransactionId'} == 0) { - $RT::Logger->crit("RT::Attachment->Create couldn't, as you didn't specify a transaction\n"); - return (0); - - } - - #If we possibly can, collapse it to a singlepart - $Attachment->make_singlepart; - - #Get the subject - my $Subject = $Attachment->head->get('subject',0); - defined($Subject) or $Subject = ''; - chomp($Subject); - - #Get the filename - my $Filename = $Attachment->head->recommended_filename; - - if ($Attachment->parts) { - $id = $self->SUPER::Create(TransactionId => $args{'TransactionId'}, - Parent => 0, - ContentType => $Attachment->mime_type, - Headers => $Attachment->head->as_string, - Subject => $Subject, - - ); - foreach my $part ($Attachment->parts) { - my $SubAttachment = new RT::Attachment($self->CurrentUser); - $SubAttachment->Create(TransactionId => $args{'TransactionId'}, - Parent => $id, - Attachment => $part, - ContentType => $Attachment->mime_type, - Headers => $Attachment->head->as_string(), - - ); - } - return ($id); - } - - - #If it's not multipart - else { - - my $ContentEncoding = 'none'; - - my $Body = $Attachment->bodyhandle->as_string; - - #get the max attachment length from RT - my $MaxSize = $RT::MaxAttachmentSize; - - #if the current attachment contains nulls and the - #database doesn't support embedded nulls - - if ( (! $RT::Handle->BinarySafeBLOBs) && - ( $Body =~ /\x00/ ) ) { - # set a flag telling us to mimencode the attachment - $ContentEncoding = 'base64'; - - #cut the max attchment size by 25% (for mime-encoding overhead. - $RT::Logger->debug("Max size is $MaxSize\n"); - $MaxSize = $MaxSize * 3/4; - } - - #if the attachment is larger than the maximum size - if (($MaxSize) and ($MaxSize < length($Body))) { - # if we're supposed to truncate large attachments - if ($RT::TruncateLongAttachments) { - # truncate the attachment to that length. - $Body = substr ($Body, 0, $MaxSize); - - } - - # elsif we're supposed to drop large attachments on the floor, - elsif ($RT::DropLongAttachments) { - # drop the attachment on the floor - $RT::Logger->info("$self: Dropped an attachment of size ". length($Body). - "\n". "It started: ". substr($Body, 0, 60) . "\n"); - return(undef); - } - } - # if we need to mimencode the attachment - if ($ContentEncoding eq 'base64') { - # base64 encode the attachment - $Body = MIME::Base64::encode_base64($Body); - - } - - my $id = $self->SUPER::Create(TransactionId => $args{'TransactionId'}, - ContentType => $Attachment->mime_type, - ContentEncoding => $ContentEncoding, - Parent => $args{'Parent'}, - Content => $Body, - Headers => $Attachment->head->as_string, - Subject => $Subject, - Filename => $Filename, - ); - return ($id); - } -} -# }}} +=item Parent + +Returns the current value of Parent. +(In the database, Parent is stored as int(11).) + -# {{{ sub Content +=item SetParent VALUE -=head2 Content -Returns the attachment's content. if it's base64 encoded, decode it -before returning it. +Set Parent to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Parent will be stored as a int(11).) + =cut -sub Content { - my $self = shift; - if ( $self->ContentEncoding eq 'none' || ! $self->ContentEncoding ) { - return $self->_Value('Content'); - } elsif ( $self->ContentEncoding eq 'base64' ) { - return MIME::Base64::decode_base64($self->_Value('Content')); - } else { - return( "Unknown ContentEncoding ". $self->ContentEncoding); - } -} +=item MessageId + +Returns the current value of MessageId. +(In the database, MessageId is stored as varchar(160).) -# }}} -# {{{ sub Children -=head2 Children +=item SetMessageId VALUE + + +Set MessageId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, MessageId will be stored as a varchar(160).) - Returns an RT::Attachments object which is preloaded with all Attachments objects with this Attachment\'s Id as their 'Parent' =cut -sub Children { - my $self = shift; - - my $kids = new RT::Attachments($self->CurrentUser); - $kids->ChildrenOf($self->Id); - return($kids); -} -# }}} +=item Subject -# {{{ UTILITIES +Returns the current value of Subject. +(In the database, Subject is stored as varchar(255).) -# {{{ sub Quote +=item SetSubject VALUE -sub Quote { - my $self=shift; - my %args=(Reply=>undef, # Prefilled reply (i.e. from the KB/FAQ system) - @_); - my ($quoted_content, $body, $headers); - my $max=0; +Set Subject to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Subject will be stored as a varchar(255).) - # TODO: Handle Multipart/Mixed (eventually fix the link in the - # ShowHistory web template?) - if ($self->ContentType =~ m{^(text/plain|message)}i) { - $body=$self->Content; - # Do we need any preformatting (wrapping, that is) of the message? +=cut - # Remove quoted signature. - $body =~ s/\n-- \n(.*)$//s; - # What's the longest line like? - foreach (split (/\n/,$body)) { - $max=length if ( length > $max); - } +=item Filename - if ($max>76) { - require Text::Wrapper; - my $wrapper=new Text::Wrapper - ( - columns => 70, - body_start => ($max > 70*3 ? ' ' : ''), - par_start => '' - ); - $body=$wrapper->wrap($body); - } +Returns the current value of Filename. +(In the database, Filename is stored as varchar(255).) - $body =~ s/^/> /gm; - $body = '[' . $self->TransactionObj->CreatorObj->Name() . ' - ' . $self->TransactionObj->CreatedAsString() - . "]:\n\n" - . $body . "\n\n"; - } else { - $body = "[Non-text message not quoted]\n\n"; - } - - $max=60 if $max<60; - $max=70 if $max>78; - $max+=2; +=item SetFilename VALUE + + +Set Filename to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Filename will be stored as a varchar(255).) + + +=cut + + +=item ContentType + +Returns the current value of ContentType. +(In the database, ContentType is stored as varchar(80).) + - return (\$body, $max); -} -# }}} -# {{{ sub NiceHeaders - pulls out only the most relevant headers +=item SetContentType VALUE -=head2 NiceHeaders -Returns the To, From, Cc, Date and Subject headers. +Set ContentType to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ContentType will be stored as a varchar(80).) -It is a known issue that this breaks if any of these headers are not -properly unfolded. =cut -sub NiceHeaders { - my $self=shift; - my $hdrs=""; - for (split(/\n/,$self->Headers)) { - $hdrs.="$_\n" if /^(To|From|RT-Send-Cc|Cc|Date|Subject): /i - } - return $hdrs; -} -# }}} -# {{{ sub Headers +=item ContentEncoding + +Returns the current value of ContentEncoding. +(In the database, ContentEncoding is stored as varchar(80).) + + -=head2 Headers +=item SetContentEncoding VALUE + + +Set ContentEncoding to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ContentEncoding will be stored as a varchar(80).) -Returns this object's headers as a string. This method specifically -removes the RT-Send-Bcc: header, so as to never reveal to whom RT sent a Bcc. -We need to record the RT-Send-Cc and RT-Send-Bcc values so that we can actually send -out mail. (The mailing rules are seperated from the ticket update code by -an abstraction barrier that makes it impossible to pass this data directly =cut -sub Headers { - my $self = shift; - my $hdrs=""; - for (split(/\n/,$self->SUPER::Headers)) { - $hdrs.="$_\n" unless /^(RT-Send-Bcc): /i - } - return $hdrs; -} + +=item Content + +Returns the current value of Content. +(In the database, Content is stored as longtext.) -# }}} -# {{{ sub GetHeader +=item SetContent VALUE -=head2 GetHeader ( 'Tag') -Returns the value of the header Tag as a string. This bypasses the weeding out -done in Headers() above. +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 longtext.) + =cut -sub GetHeader { - my $self = shift; - my $tag = shift; - foreach my $line (split(/\n/,$self->SUPER::Headers)) { - $RT::Logger->debug( "Does $line match $tag\n"); - if ($line =~ /^$tag:\s+(.*)$/i) { #if we find the header, return its value - return ($1); - } - } - - # we found no header. return an empty string - return undef; -} -# }}} -# {{{ sub _Value +=item Headers -=head2 _Value +Returns the current value of Headers. +(In the database, Headers is stored as longtext.) + + + +=item SetHeaders VALUE + + +Set Headers to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Headers will be stored as a longtext.) -Takes the name of a table column. -Returns its value as a string, if the user passes an ACL check =cut -sub _Value { - my $self = shift; - my $field = shift; - - - #if the field is public, return it. - if ($self->_Accessible($field, 'public')) { - #$RT::Logger->debug("Skipping ACL check for $field\n"); - return($self->__Value($field)); - - } - - #If it's a comment, we need to be extra special careful - elsif ( (($self->TransactionObj->CurrentUserHasRight('ShowTicketComments')) and - ($self->TransactionObj->Type eq 'Comment') ) or - ($self->TransactionObj->CurrentUserHasRight('ShowTicket'))) { - - return($self->__Value($field)); - } - #if they ain't got rights to see, don't let em - else { - return(undef); - } - - -} +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) + + +=cut + + +=item Created -# }}} +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + TransactionId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Parent => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + MessageId => + {read => 1, write => 1, type => 'varchar(160)', default => ''}, + Subject => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + Filename => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + ContentType => + {read => 1, write => 1, type => 'varchar(80)', default => ''}, + ContentEncoding => + {read => 1, write => 1, type => 'varchar(80)', default => ''}, + Content => + {read => 1, write => 1, type => 'longtext', default => ''}, + Headers => + {read => 1, write => 1, type => 'longtext', default => ''}, + Creator => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Created => + {read => 1, auto => 1, type => 'datetime', default => ''}, + + } +}; + + + eval "require RT::Attachment_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachment_Overlay.pm}) { + die $@; + }; + + eval "require RT::Attachment_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachment_Vendor.pm}) { + die $@; + }; + + eval "require RT::Attachment_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachment_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::Attachment_Overlay, RT::Attachment_Vendor, RT::Attachment_Local + +=cut -# }}} 1; diff --git a/rt/lib/RT/Attachment_Overlay.pm b/rt/lib/RT/Attachment_Overlay.pm new file mode 100644 index 000000000..d31aa75ad --- /dev/null +++ b/rt/lib/RT/Attachment_Overlay.pm @@ -0,0 +1,571 @@ +# 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. +# +# 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 SYNOPSIS + + use RT::Attachment; + + +=head1 DESCRIPTION + +This module should never be instantiated directly by client code. it's an internal +module which should only be instantiated through exported APIs in Ticket, Queue and other +similar objects. + + +=head1 METHODS + + +=begin testing + +ok (require RT::Attachment); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +use MIME::Base64; +use MIME::QuotedPrint; + +# {{{ sub _ClassAccessible +sub _ClassAccessible { + { + TransactionId => { 'read'=>1, 'public'=>1, }, + MessageId => { 'read'=>1, }, + Parent => { 'read'=>1, }, + ContentType => { 'read'=>1, }, + Subject => { 'read'=>1, }, + Content => { 'read'=>1, }, + ContentEncoding => { 'read'=>1, }, + Headers => { 'read'=>1, }, + Filename => { 'read'=>1, }, + Creator => { 'read'=>1, 'auto'=>1, }, + Created => { 'read'=>1, 'auto'=>1, }, + }; +} +# }}} + +# {{{ sub TransactionObj + +=head2 TransactionObj + +Returns the transaction object asscoiated with this attachment. + +=cut + +sub TransactionObj { + require RT::Transaction; + my $self=shift; + unless (exists $self->{_TransactionObj}) { + $self->{_TransactionObj}=RT::Transaction->new($self->CurrentUser); + $self->{_TransactionObj}->Load($self->TransactionId); + } + return $self->{_TransactionObj}; +} + +# }}} + +# {{{ sub Create + +=head2 Create + +Create a new attachment. Takes a paramhash: + + 'Attachment' Should be a single MIME body with optional subparts + 'Parent' is an optional Parent RT::Attachment object + 'TransactionId' is the mandatory id of the Transaction this attachment is associated with.; + +=cut + +sub Create { + my $self = shift; + my ($id); + my %args = ( id => 0, + TransactionId => 0, + Parent => 0, + Attachment => undef, + @_ ); + + #For ease of reference + my $Attachment = $args{'Attachment'}; + + #if we didn't specify a ticket, we need to bail + if ( $args{'TransactionId'} == 0 ) { + $RT::Logger->crit( "RT::Attachment->Create couldn't, as you didn't specify a transaction\n" ); + return (0); + + } + + #If we possibly can, collapse it to a singlepart + $Attachment->make_singlepart; + + #Get the subject + my $Subject = $Attachment->head->get( 'subject', 0 ); + defined($Subject) or $Subject = ''; + chomp($Subject); + + #Get the filename + my $Filename = $Attachment->head->recommended_filename || eval { + ${ $Attachment->head->{mail_hdr_hash}{'Content-Disposition'}[0] } + =~ /^.*\bfilename="(.*)"$/ ? $1 : '' + }; + + if ( $Attachment->parts ) { + $id = $self->SUPER::Create( + TransactionId => $args{'TransactionId'}, + Parent => 0, + ContentType => $Attachment->mime_type, + Headers => $Attachment->head->as_string, + Subject => $Subject); + + foreach my $part ( $Attachment->parts ) { + my $SubAttachment = new RT::Attachment( $self->CurrentUser ); + $SubAttachment->Create( + TransactionId => $args{'TransactionId'}, + Parent => $id, + Attachment => $part, + ContentType => $Attachment->mime_type, + Headers => $Attachment->head->as_string(), + + ); + } + return ($id); + } + + #If it's not multipart + else { + + my $ContentEncoding = 'none'; + + my $Body = $Attachment->bodyhandle->as_string; + + #get the max attachment length from RT + my $MaxSize = $RT::MaxAttachmentSize; + + #if the current attachment contains nulls and the + #database doesn't support embedded nulls + + if ( $RT::AlwaysUseBase64 or + ( !$RT::Handle->BinarySafeBLOBs ) && ( $Body =~ /\x00/ ) ) { + + # set a flag telling us to mimencode the attachment + $ContentEncoding = 'base64'; + + #cut the max attchment size by 25% (for mime-encoding overhead. + $RT::Logger->debug("Max size is $MaxSize\n"); + $MaxSize = $MaxSize * 3 / 4; + # Some databases (postgres) can't handle non-utf8 data + } elsif ( !$RT::Handle->BinarySafeBLOBs + && $Attachment->mime_type !~ /text\/plain/gi + && !Encode::is_utf8( $Body, 1 ) ) { + $ContentEncoding = 'quoted-printable'; + } + + #if the attachment is larger than the maximum size + if ( ($MaxSize) and ( $MaxSize < length($Body) ) ) { + + # if we're supposed to truncate large attachments + if ($RT::TruncateLongAttachments) { + + # truncate the attachment to that length. + $Body = substr( $Body, 0, $MaxSize ); + + } + + # elsif we're supposed to drop large attachments on the floor, + elsif ($RT::DropLongAttachments) { + + # drop the attachment on the floor + $RT::Logger->info( "$self: Dropped an attachment of size " . length($Body) . "\n" . "It started: " . substr( $Body, 0, 60 ) . "\n" ); + return (undef); + } + } + + # if we need to mimencode the attachment + if ( $ContentEncoding eq 'base64' ) { + + # base64 encode the attachment + Encode::_utf8_off($Body); + $Body = MIME::Base64::encode_base64($Body); + + } elsif ($ContentEncoding eq 'quoted-printable') { + Encode::_utf8_off($Body); + $Body = MIME::QuotedPrint::encode($Body); + } + + + my $id = $self->SUPER::Create( TransactionId => $args{'TransactionId'}, + ContentType => $Attachment->mime_type, + ContentEncoding => $ContentEncoding, + Parent => $args{'Parent'}, + Headers => $Attachment->head->as_string, + Subject => $Subject, + Content => $Body, + Filename => $Filename, ); + return ($id); + } +} + +# }}} + + +=head2 Import + +Create an attachment exactly as specified in the named parameters. + +=cut + + +sub Import { + my $self = shift; + return($self->SUPER::Create(@_)); +} + +# {{{ sub Content + +=head2 Content + +Returns the attachment's content. if it's base64 encoded, decode it +before returning it. + +=cut + +sub Content { + my $self = shift; + my $decode_utf8 = (($self->ContentType eq 'text/plain') ? 1 : 0); + + if ( $self->ContentEncoding eq 'none' || ! $self->ContentEncoding ) { + return $self->_Value( + 'Content', + decode_utf8 => $decode_utf8, + ); + } elsif ( $self->ContentEncoding eq 'base64' ) { + return ( $decode_utf8 + ? Encode::decode_utf8(MIME::Base64::decode_base64($self->_Value('Content'))) + : MIME::Base64::decode_base64($self->_Value('Content')) + ); + } elsif ( $self->ContentEncoding eq 'quoted-printable' ) { + return ( $decode_utf8 + ? Encode::decode_utf8(MIME::QuotedPrint::decode($self->_Value('Content'))) + : MIME::QuotedPrint::decode($self->_Value('Content')) + ); + } else { + return( $self->loc("Unknown ContentEncoding [_1]", $self->ContentEncoding)); + } +} + + +# }}} + + +# {{{ sub OriginalContent + +=head2 OriginalContent + +Returns the attachment's content as octets before RT's mangling. +Currently, this just means restoring text/plain content back to its +original encoding. + +=cut + +sub OriginalContent { + my $self = shift; + + return $self->Content unless $self->ContentType eq 'text/plain'; + my $enc = $self->OriginalEncoding; + + my $content; + if ( $self->ContentEncoding eq 'none' || ! $self->ContentEncoding ) { + $content = $self->_Value('Content', decode_utf8 => 0); + } elsif ( $self->ContentEncoding eq 'base64' ) { + $content = MIME::Base64::decode_base64($self->_Value('Content', decode_utf8 => 0)); + } elsif ( $self->ContentEncoding eq 'quoted-printable' ) { + return MIME::QuotedPrint::decode($self->_Value('Content', decode_utf8 => 0)); + } else { + return( $self->loc("Unknown ContentEncoding [_1]", $self->ContentEncoding)); + } + + # Encode::_utf8_on($content); + if (!$enc or $enc eq 'utf8' or $enc eq 'utf-8') { + # If we somehow fail to do the decode, at least push out the raw bits + eval {return( Encode::decode_utf8($content))} || return ($content); + } + Encode::from_to($content, 'utf8' => $enc); + return $content; +} + +# }}} + + +# {{{ sub OriginalEncoding + +=head2 OriginalEncoding + +Returns the attachment's original encoding. + +=cut + +sub OriginalEncoding { + my $self = shift; + return $self->GetHeader('X-RT-Original-Encoding'); +} + +# }}} + +# {{{ sub Children + +=head2 Children + + Returns an RT::Attachments object which is preloaded with all Attachments objects with this Attachment\'s Id as their 'Parent' + +=cut + +sub Children { + my $self = shift; + + my $kids = new RT::Attachments($self->CurrentUser); + $kids->ChildrenOf($self->Id); + return($kids); +} + +# }}} + +# {{{ UTILITIES + +# {{{ sub Quote + + + +sub Quote { + my $self=shift; + my %args=(Reply=>undef, # Prefilled reply (i.e. from the KB/FAQ system) + @_); + + my ($quoted_content, $body, $headers); + my $max=0; + + # TODO: Handle Multipart/Mixed (eventually fix the link in the + # ShowHistory web template?) + if ($self->ContentType =~ m{^(text/plain|message)}i) { + $body=$self->Content; + + # Do we need any preformatting (wrapping, that is) of the message? + + # Remove quoted signature. + $body =~ s/\n-- \n(.*)$//s; + + # What's the longest line like? + foreach (split (/\n/,$body)) { + $max=length if ( length > $max); + } + + if ($max>76) { + require Text::Wrapper; + my $wrapper=new Text::Wrapper + ( + columns => 70, + body_start => ($max > 70*3 ? ' ' : ''), + par_start => '' + ); + $body=$wrapper->wrap($body); + } + + $body =~ s/^/> /gm; + + $body = '[' . $self->TransactionObj->CreatorObj->Name() . ' - ' . $self->TransactionObj->CreatedAsString() + . "]:\n\n" + . $body . "\n\n"; + + } else { + $body = "[Non-text message not quoted]\n\n"; + } + + $max=60 if $max<60; + $max=70 if $max>78; + $max+=2; + + return (\$body, $max); +} +# }}} + +# {{{ sub NiceHeaders - pulls out only the most relevant headers + +=head2 NiceHeaders + +Returns the To, From, Cc, Date and Subject headers. + +It is a known issue that this breaks if any of these headers are not +properly unfolded. + +=cut + +sub NiceHeaders { + my $self=shift; + my $hdrs=""; + for (split(/\n/,$self->Headers)) { + $hdrs.="$_\n" if /^(To|From|RT-Send-Cc|Cc|Date|Subject): /i + } + return $hdrs; +} +# }}} + +# {{{ sub Headers + +=head2 Headers + +Returns this object's headers as a string. This method specifically +removes the RT-Send-Bcc: header, so as to never reveal to whom RT sent a Bcc. +We need to record the RT-Send-Cc and RT-Send-Bcc values so that we can actually send +out mail. (The mailing rules are seperated from the ticket update code by +an abstraction barrier that makes it impossible to pass this data directly + +=cut + +sub Headers { + my $self = shift; + my $hdrs=""; + for (split(/\n/,$self->SUPER::Headers)) { + $hdrs.="$_\n" unless /^(RT-Send-Bcc): /i + } + return $hdrs; +} + + +# }}} + +# {{{ sub GetHeader + +=head2 GetHeader ( 'Tag') + +Returns the value of the header Tag as a string. This bypasses the weeding out +done in Headers() above. + +=cut + +sub GetHeader { + my $self = shift; + my $tag = shift; + foreach my $line (split(/\n/,$self->SUPER::Headers)) { + if ($line =~ /^\Q$tag\E:\s+(.*)$/i) { #if we find the header, return its value + return ($1); + } + } + + # we found no header. return an empty string + return undef; +} +# }}} + +# {{{ sub SetHeader + +=head2 SetHeader ( 'Tag', 'Value' ) + +Replace or add a Header to the attachment's headers. + +=cut + +sub SetHeader { + my $self = shift; + my $tag = shift; + my $newheader = ''; + + foreach my $line (split(/\n/,$self->SUPER::Headers)) { + if (defined $tag and $line =~ /^\Q$tag\E:\s+(.*)$/i) { + $newheader .= "$tag: $_[0]\n"; + undef $tag; + } + else { + $newheader .= "$line\n"; + } + } + + $newheader .= "$tag: $_[0]\n" if defined $tag; + $self->__Set( Field => 'Headers', Value => $newheader); +} +# }}} + +# {{{ sub _Value + +=head2 _Value + +Takes the name of a table column. +Returns its value as a string, if the user passes an ACL check + +=cut + +sub _Value { + + my $self = shift; + my $field = shift; + + + #if the field is public, return it. + if ($self->_Accessible($field, 'public')) { + #$RT::Logger->debug("Skipping ACL check for $field\n"); + return($self->__Value($field, @_)); + + } + + #If it's a comment, we need to be extra special careful + elsif ( (($self->TransactionObj->CurrentUserHasRight('ShowTicketComments')) and + ($self->TransactionObj->Type eq 'Comment') ) or + ($self->TransactionObj->CurrentUserHasRight('ShowTicket'))) { + return($self->__Value($field, @_)); + } + #if they ain't got rights to see, don't let em + else { + return(undef); + } + + +} + +# }}} + +sub ContentLength { + my $self = shift; + + unless ( (($self->TransactionObj->CurrentUserHasRight('ShowTicketComments')) and + ($self->TransactionObj->Type eq 'Comment') ) or + ($self->TransactionObj->CurrentUserHasRight('ShowTicket'))) { + return undef; + } + + if (my $len = $self->GetHeader('Content-Length')) { + return $len; + } + + { + use bytes; + my $len = length($self->Content); + $self->SetHeader('Content-Length' => $len); + return $len; + } +} + +# }}} + +1; diff --git a/rt/lib/RT/Attachments.pm b/rt/lib/RT/Attachments.pm index 73cd350a4..177cdd094 100755 --- a/rt/lib/RT/Attachments.pm +++ b/rt/lib/RT/Attachments.pm @@ -1,99 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attachments.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Attachments - a collection of RT::Attachment objects +=head1 NAME + RT::Attachments -- Class Description + =head1 SYNOPSIS - use RT::Attachments; + use RT::Attachments =head1 DESCRIPTION -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in Ticket, Queue and other similar objects. - =head1 METHODS +=cut -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Attachments); +package RT::Attachments; -=end testing +use RT::SearchBuilder; +use RT::Attachment; -=cut +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -package RT::Attachments; -use RT::EasySearch; +sub _Init { + my $self = shift; + $self->{'table'} = 'Attachments'; + $self->{'primary_key'} = 'id'; -@ISA= qw(RT::EasySearch); -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'table'} = "Attachments"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_)); + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub ContentType +=item NewItem -=head2 ContentType (VALUE => 'text/plain', ENTRYAGGREGATOR => 'OR', OPERATOR => '=' ) - -Limit result set to attachments of ContentType 'TYPE'... +Returns an empty new RT::Attachment item =cut +sub NewItem { + my $self = shift; + return(RT::Attachment->new($self->CurrentUser)); +} -sub ContentType { - my $self = shift; - my %args = ( VALUE => 'text/plain', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - @_); + eval "require RT::Attachments_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachments_Overlay.pm}) { + die $@; + }; - $self->Limit ( FIELD => 'ContentType', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - ENTRYAGGREGATOR => $args{'ENTRYAGGREGATOR'}); -} -# }}} + eval "require RT::Attachments_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachments_Vendor.pm}) { + die $@; + }; -# {{{ sub ChildrenOf + eval "require RT::Attachments_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachments_Local.pm}) { + die $@; + }; -=head2 ChildrenOf ID -Limit result set to children of Attachment ID -=cut +=head1 SEE ALSO -sub ChildrenOf { - my $self = shift; - my $attachment = shift; - $self->Limit ( FIELD => 'Parent', - VALUE => $attachment); -} -# }}} +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. -# {{{ sub NewItem -sub NewItem { - my $self = shift; +These overlay files can contain new subs or subs to replace existing subs in this module. - use RT::Attachment; - my $item = new RT::Attachment($self->CurrentUser); - return($item); -} -# }}} - 1; +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::Attachments_Overlay, RT::Attachments_Vendor, RT::Attachments_Local + +=cut +1; diff --git a/rt/lib/RT/Attachments_Overlay.pm b/rt/lib/RT/Attachments_Overlay.pm new file mode 100644 index 000000000..ce94c9dfa --- /dev/null +++ b/rt/lib/RT/Attachments_Overlay.pm @@ -0,0 +1,116 @@ +# 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. +# +# 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::Attachments - a collection of RT::Attachment objects + +=head1 SYNOPSIS + + use RT::Attachments; + +=head1 DESCRIPTION + +This module should never be called directly by client code. it's an internal module which +should only be accessed through exported APIs in Ticket, Queue and other similar objects. + + +=head1 METHODS + + +=begin testing + +ok (require RT::Attachments); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +# {{{ sub _Init +sub _Init { + my $self = shift; + + $self->{'table'} = "Attachments"; + $self->{'primary_key'} = "id"; + return ( $self->SUPER::_Init(@_)); +} +# }}} + + +# {{{ sub ContentType + +=head2 ContentType (VALUE => 'text/plain', ENTRYAGGREGATOR => 'OR', OPERATOR => '=' ) + +Limit result set to attachments of ContentType 'TYPE'... + +=cut + + +sub ContentType { + my $self = shift; + my %args = ( VALUE => 'text/plain', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR', + @_); + + $self->Limit ( FIELD => 'ContentType', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + ENTRYAGGREGATOR => $args{'ENTRYAGGREGATOR'}); +} +# }}} + +# {{{ sub ChildrenOf + +=head2 ChildrenOf ID + +Limit result set to children of Attachment ID + +=cut + + +sub ChildrenOf { + my $self = shift; + my $attachment = shift; + $self->Limit ( FIELD => 'Parent', + VALUE => $attachment); +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + + use RT::Attachment; + my $item = new RT::Attachment($self->CurrentUser); + return($item); +} +# }}} + 1; + + + + diff --git a/rt/lib/RT/Base.pm b/rt/lib/RT/Base.pm new file mode 100644 index 000000000..3b2dcfd3d --- /dev/null +++ b/rt/lib/RT/Base.pm @@ -0,0 +1,97 @@ +# 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. +# +# 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::Base; +use Carp; + +use strict; +use vars qw(@EXPORT); + +@EXPORT=qw(loc CurrentUser); + +=head1 FUNCTIONS + + + +# {{{ sub CurrentUser + +=head2 CurrentUser + +If called with an argument, sets the current user to that user object. +This will affect ACL decisions, etc. +Returns the current user + +=cut + +sub CurrentUser { + my $self = shift; + + if (@_) { + $self->{'user'} = shift; + } + + unless ( $self->{'user'} ) { + $RT::Logger->err( + "$self was created without a CurrentUser\n" . Carp::cluck() ); + return (0); + die; + } + return ( $self->{'user'} ); +} + +# }}} + + + +=item loc LOC_STRING + +l is a method which takes a loc string +to this object's CurrentUser->LanguageHandle for localization. + +you call it like this: + + $self->loc("I have [quant,_1,concrete mixer].", 6); + +In english, this would return: + I have 6 concrete mixers. + + +=cut + +sub loc { + my $self = shift; + unless ($self->CurrentUser) { + use Carp; + Carp::confess("No currentuser"); + return ("Critical error:$self has no CurrentUser", $self); + } + return($self->CurrentUser->loc(@_)); +} + +eval "require RT::Base_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Base_Vendor.pm}); +eval "require RT::Base_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Base_Local.pm}); + + +1; diff --git a/rt/lib/RT/CachedGroupMember.pm b/rt/lib/RT/CachedGroupMember.pm new file mode 100644 index 000000000..fc3e1bf00 --- /dev/null +++ b/rt/lib/RT/CachedGroupMember.pm @@ -0,0 +1,258 @@ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + + +=head1 NAME + +RT::CachedGroupMember + + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=head1 METHODS + +=cut + +package RT::CachedGroupMember; +use RT::Record; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('CachedGroupMembers'); + $self->SUPER::_Init(@_); +} + + + + + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + int(11) 'GroupId'. + int(11) 'MemberId'. + int(11) 'Via'. + int(11) 'ImmediateParentId'. + smallint(6) 'Disabled'. + +=cut + + + + +sub Create { + my $self = shift; + my %args = ( + GroupId => '', + MemberId => '', + Via => '', + ImmediateParentId => '', + Disabled => '0', + + @_); + $self->SUPER::Create( + GroupId => $args{'GroupId'}, + MemberId => $args{'MemberId'}, + Via => $args{'Via'}, + ImmediateParentId => $args{'ImmediateParentId'}, + Disabled => $args{'Disabled'}, +); + +} + + + +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + + +=cut + + +=item GroupId + +Returns the current value of GroupId. +(In the database, GroupId is stored as int(11).) + + + +=item SetGroupId VALUE + + +Set GroupId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, GroupId will be stored as a int(11).) + + +=cut + + +=item MemberId + +Returns the current value of MemberId. +(In the database, MemberId is stored as int(11).) + + + +=item SetMemberId VALUE + + +Set MemberId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, MemberId will be stored as a int(11).) + + +=cut + + +=item Via + +Returns the current value of Via. +(In the database, Via is stored as int(11).) + + + +=item SetVia VALUE + + +Set Via to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Via will be stored as a int(11).) + + +=cut + + +=item ImmediateParentId + +Returns the current value of ImmediateParentId. +(In the database, ImmediateParentId is stored as int(11).) + + + +=item SetImmediateParentId VALUE + + +Set ImmediateParentId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ImmediateParentId will be stored as a int(11).) + + +=cut + + +=item Disabled + +Returns the current value of Disabled. +(In the database, Disabled is stored as smallint(6).) + + + +=item SetDisabled VALUE + + +Set Disabled to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Disabled will be stored as a smallint(6).) + + +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + GroupId => + {read => 1, write => 1, type => 'int(11)', default => ''}, + MemberId => + {read => 1, write => 1, type => 'int(11)', default => ''}, + Via => + {read => 1, write => 1, type => 'int(11)', default => ''}, + ImmediateParentId => + {read => 1, write => 1, type => 'int(11)', default => ''}, + Disabled => + {read => 1, write => 1, type => 'smallint(6)', default => '0'}, + + } +}; + + + eval "require RT::CachedGroupMember_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/CachedGroupMember_Overlay.pm}) { + die $@; + }; + + eval "require RT::CachedGroupMember_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/CachedGroupMember_Vendor.pm}) { + die $@; + }; + + eval "require RT::CachedGroupMember_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/CachedGroupMember_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::CachedGroupMember_Overlay, RT::CachedGroupMember_Vendor, RT::CachedGroupMember_Local + +=cut + + +1; diff --git a/rt/lib/RT/CachedGroupMember_Overlay.pm b/rt/lib/RT/CachedGroupMember_Overlay.pm new file mode 100644 index 000000000..f2dc86f0d --- /dev/null +++ b/rt/lib/RT/CachedGroupMember_Overlay.pm @@ -0,0 +1,323 @@ +# 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. +# +# 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); + +# {{{ Create + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + 'Group' is the "top level" group we're building the cache for. This is an + RT::Principal object + + 'Member' is the RT::Principal of the user or group we're adding + to the cache. + + 'ImmediateParent' is the RT::Principal of the group that this principal + belongs to to get here + + int(11) 'Via' is an internal reference to CachedGroupMembers->Id of + the "parent" record of this cached group member. It should be empty if this + member is a "direct" member of this group. (In that case, it will be set to this + cached group member's id after creation) + + This routine should _only_ be called by GroupMember->Create + +=cut + +sub Create { + my $self = shift; + my %args = ( Group => '', + Member => '', + ImmediateParent => '', + Via => '0', + Disabled => '0', + @_ ); + + unless ( $args{'Member'} + && UNIVERSAL::isa( $args{'Member'}, 'RT::Principal' ) + && $args{'Member'}->Id ) { + $RT::Logger->debug("$self->Create: bogus Member argument"); + } + + unless ( $args{'Group'} + && UNIVERSAL::isa( $args{'Group'}, 'RT::Principal' ) + && $args{'Group'}->Id ) { + $RT::Logger->debug("$self->Create: bogus Group argument"); + } + + unless ( $args{'ImmediateParent'} + && UNIVERSAL::isa( $args{'ImmediateParent'}, 'RT::Principal' ) + && $args{'ImmediateParent'}->Id ) { + $RT::Logger->debug("$self->Create: bogus ImmediateParent argument"); + } + + # If the parent group for this group member is disabled, it's disabled too, along with all its children + if ( $args{'ImmediateParent'}->Disabled ) { + $args{'Disabled'} = $args{'ImmediateParent'}->Disabled; + } + + my $id = $self->SUPER::Create( + GroupId => $args{'Group'}->Id, + MemberId => $args{'Member'}->Id, + ImmediateParentId => $args{'ImmediateParent'}->Id, + Disabled => $args{'Disabled'}, + Via => $args{'Via'}, ); + + unless ($id) { + $RT::Logger->warn( "Couldn't create " + . $args{'Member'} + . " as a cached member of " + . $args{'Group'}->Id . " via " + . $args{'Via'} ); + return (undef); #this will percolate up and bail out of the transaction + } + if ( $self->__Value('Via') == 0 ) { + my ( $vid, $vmsg ) = $self->__Set( Field => 'Via', Value => $id ); + unless ($vid) { + $RT::Logger->warn( "Due to a via error, couldn't create " + . $args{'Member'} + . " as a cached member of " + . $args{'Group'}->Id . " via " + . $args{'Via'} ); + return (undef) + ; #this will percolate up and bail out of the transaction + } + } + + if ( $args{'Member'}->IsGroup() ) { + my $GroupMembers = $args{'Member'}->Object->MembersObj(); + while ( my $member = $GroupMembers->Next() ) { + my $cached_member = + RT::CachedGroupMember->new( $self->CurrentUser ); + my $c_id = $cached_member->Create( + Group => $args{'Group'}, + Member => $member->MemberObj, + ImmediateParent => $args{'Member'}, + Disabled => $args{'Disabled'}, + Via => $id ); + unless ($c_id) { + return (undef); #percolate the error upwards. + # the caller will log an error and abort the transaction + } + + } + } + + return ($id); + +} + +# }}} + +# {{{ Delete + +=head2 Delete + +Deletes the current CachedGroupMember from the group it's in and cascades +the delete to all submembers. This routine could be completely excised if +mysql supported foreign keys with cascading deletes. + +=cut + +sub Delete { + my $self = shift; + + + my $member = $self->MemberObj(); + if ( $member->IsGroup ) { + my $deletable = RT::CachedGroupMembers->new( $self->CurrentUser ); + + $deletable->Limit( FIELD => 'id', + OPERATOR => '!=', + VALUE => $self->id ); + $deletable->Limit( FIELD => 'Via', + OPERATOR => '=', + VALUE => $self->id ); + + while ( my $kid = $deletable->Next ) { + my $kid_err = $kid->Delete(); + unless ($kid_err) { + $RT::Logger->error( + "Couldn't delete CachedGroupMember " . $kid->Id ); + return (undef); + } + } + } + my $err = $self->SUPER::Delete(); + unless ($err) { + $RT::Logger->error( "Couldn't delete CachedGroupMember " . $self->Id ); + return (undef); + } + + # Unless $self->GroupObj still has the member recursively $self->MemberObj + # (Since we deleted the database row above, $self no longer counts) + unless ( $self->GroupObj->Object->HasMemberRecursively( $self->MemberObj ) ) { + + + # Find all ACEs granted to $self->GroupId + my $acl = RT::ACL->new($RT::SystemUser); + $acl->LimitToPrincipal( Id => $self->GroupId ); + + + while ( my $this_ace = $acl->Next() ) { + # Find all ACEs which $self-MemberObj has delegated from $this_ace + my $delegations = RT::ACL->new($RT::SystemUser); + $delegations->DelegatedFrom( Id => $this_ace->Id ); + $delegations->DelegatedBy( Id => $self->MemberId ); + + # For each delegation + while ( my $delegation = $delegations->Next ) { + # WHACK IT + my $del_ret = $delegation->_Delete(InsideTransaction => 1); + unless ($del_ret) { + $RT::Logger->crit("Couldn't delete an ACL delegation that we know exists ". $delegation->Id); + return(undef); + } + } + } + } + return ($err); +} + +# }}} + +# {{{ SetDisabled + +=head2 SetDisabled + +SetDisableds the current CachedGroupMember from the group it's in and cascades +the SetDisabled to all submembers. This routine could be completely excised if +mysql supported foreign keys with cascading SetDisableds. + +=cut + +sub SetDisabled { + my $self = shift; + my $val = shift; + + my $err = $self->SUPER::SetDisabled($val); + unless ($err) { + $RT::Logger->error( "Couldn't SetDisabled CachedGroupMember " . $self->Id ); + return (undef); + } + + my $member = $self->MemberObj(); + if ( $member->IsGroup ) { + my $deletable = RT::CachedGroupMembers->new( $self->CurrentUser ); + + $deletable->Limit( FIELD => 'Via', OPERATOR => '=', VALUE => $self->id ); + $deletable->Limit( FIELD => 'id', OPERATOR => '!=', VALUE => $self->id ); + + while ( my $kid = $deletable->Next ) { + my $kid_err = $kid->SetDisabled($val ); + unless ($kid_err) { + $RT::Logger->error( "Couldn't SetDisabled CachedGroupMember " . $kid->Id ); + return (undef); + } + } + } + + # Unless $self->GroupObj still has the member recursively $self->MemberObj + # (Since we SetDisabledd the database row above, $self no longer counts) + unless ( $self->GroupObj->Object->HasMemberRecursively( $self->MemberObj ) ) { + # Find all ACEs granted to $self->GroupId + my $acl = RT::ACL->new($RT::SystemUser); + $acl->LimitToPrincipal( Id => $self->GroupId ); + + while ( my $this_ace = $acl->Next() ) { + # Find all ACEs which $self-MemberObj has delegated from $this_ace + my $delegations = RT::ACL->new($RT::SystemUser); + $delegations->DelegatedFrom( Id => $this_ace->Id ); + $delegations->DelegatedBy( Id => $self->MemberId ); + + # For each delegation, blow away the delegation + while ( my $delegation = $delegations->Next ) { + # WHACK IT + my $del_ret = $delegation->_Delete(InsideTransaction => 1); + unless ($del_ret) { + $RT::Logger->crit("Couldn't delete an ACL delegation that we know exists ". $delegation->Id); + return(undef); + } + } + } + } + return ($err); +} + +# }}} + +# {{{ GroupObj + +=head2 GroupObj + +Returns the RT::Principal object for this group Group + +=cut + +sub GroupObj { + my $self = shift; + my $principal = RT::Principal->new( $self->CurrentUser ); + $principal->Load( $self->GroupId ); + return ($principal); +} + +# }}} + +# {{{ ImmediateParentObj + +=head2 ImmediateParentObj + +Returns the RT::Principal object for this group ImmediateParent + +=cut + +sub ImmediateParentObj { + my $self = shift; + my $principal = RT::Principal->new( $self->CurrentUser ); + $principal->Load( $self->ImmediateParentId ); + return ($principal); +} + +# }}} + +# {{{ MemberObj + +=head2 MemberObj + +Returns the RT::Principal object for this group member + +=cut + +sub MemberObj { + my $self = shift; + my $principal = RT::Principal->new( $self->CurrentUser ); + $principal->Load( $self->MemberId ); + return ($principal); +} + +# }}} +1; diff --git a/rt/lib/RT/CachedGroupMembers.pm b/rt/lib/RT/CachedGroupMembers.pm new file mode 100644 index 000000000..b520f7b9c --- /dev/null +++ b/rt/lib/RT/CachedGroupMembers.pm @@ -0,0 +1,115 @@ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + + +=head1 NAME + + RT::CachedGroupMembers -- Class Description + +=head1 SYNOPSIS + + use RT::CachedGroupMembers + +=head1 DESCRIPTION + + +=head1 METHODS + +=cut + +package RT::CachedGroupMembers; + +use RT::SearchBuilder; +use RT::CachedGroupMember; + +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + + +sub _Init { + my $self = shift; + $self->{'table'} = 'CachedGroupMembers'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); +} + + +=item NewItem + +Returns an empty new RT::CachedGroupMember item + +=cut + +sub NewItem { + my $self = shift; + return(RT::CachedGroupMember->new($self->CurrentUser)); +} + + eval "require RT::CachedGroupMembers_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/CachedGroupMembers_Overlay.pm}) { + die $@; + }; + + eval "require RT::CachedGroupMembers_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/CachedGroupMembers_Vendor.pm}) { + die $@; + }; + + eval "require RT::CachedGroupMembers_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/CachedGroupMembers_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::CachedGroupMembers_Overlay, RT::CachedGroupMembers_Vendor, RT::CachedGroupMembers_Local + +=cut + + +1; diff --git a/rt/lib/RT/CachedGroupMembers_Overlay.pm b/rt/lib/RT/CachedGroupMembers_Overlay.pm new file mode 100644 index 000000000..fd0fd9055 --- /dev/null +++ b/rt/lib/RT/CachedGroupMembers_Overlay.pm @@ -0,0 +1,148 @@ +# 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. +# +# 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::CachedGroupMembers - a collection of RT::GroupMember objects + +=head1 SYNOPSIS + + use RT::CachedGroupMembers; + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::CachedGroupMembers); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +# {{{ LimitToUsers + +=head2 LimitToUsers + +Limits this search object to users who are members of this group +This is really useful when you want to haave your UI seperate out +groups from users for display purposes + +=cut + +sub LimitToUsers { + my $self = shift; + + my $principals = $self->NewAlias('Principals'); + $self->Join( ALIAS1 => 'main', FIELD1 => 'MemberId', + ALIAS2 => $principals, FIELD2 =>'id'); + + $self->Limit( ALIAS => $principals, + FIELD => 'PrincipalType', + VALUE => 'User', + ENTRYAGGREGATOR => 'OR', + ); +} + +# }}} + + +# {{{ LimitToGroups + +=head2 LimitToGroups + +Limits this search object to Groups who are members of this group +This is really useful when you want to haave your UI seperate out +groups from users for display purposes + +=cut + +sub LimitToGroups { + my $self = shift; + + my $principals = $self->NewAlias('Principals'); + $self->Join( ALIAS1 => 'main', FIELD1 => 'MemberId', + ALIAS2 => $principals, FIELD2 =>'id'); + + $self->Limit( ALIAS => $principals, + FIELD => 'PrincipalType', + VALUE => 'Group', + ENTRYAGGREGATOR => 'OR', + ); +} + +# }}} + +# {{{ sub LimitToMembersOfGroup + +=head2 LimitToMembersOfGroup PRINCIPAL_ID + +Takes a Principal Id as its only argument. +Limits the current search principals which are _directly_ members +of the group which has PRINCIPAL_ID as its principal id. + +=cut + +sub LimitToMembersOfGroup { + my $self = shift; + my $group = shift; + + return ($self->Limit( + VALUE => $group, + FIELD => 'GroupId', + ENTRYAGGREGATOR => 'OR', + )); + +} +# }}} + +# {{{ sub LimitToGroupsWithMember + +=head2 LimitToGroupsWithMember PRINCIPAL_ID + +Takes a Principal Id as its only argument. +Limits the current search to groups which contain PRINCIPAL_ID as a member or submember. +This function gets used by GroupMember->Create to populate subgroups + +=cut + +sub LimitToGroupsWithMember { + my $self = shift; + my $member = shift; + + return ($self->Limit( + VALUE => $member, + FIELD => 'MemberId', + ENTRYAGGREGATOR => 'OR', + QUOTEVALUE => 0 + )); + +} +# }}} +1; diff --git a/rt/lib/RT/Condition/AnyTransaction.pm b/rt/lib/RT/Condition/AnyTransaction.pm index 83e5de6ce..4519fcf5a 100644 --- a/rt/lib/RT/Condition/AnyTransaction.pm +++ b/rt/lib/RT/Condition/AnyTransaction.pm @@ -1,10 +1,33 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Condition/AnyTransaction.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 1996-2001 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU General Public 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. +# +# 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; require RT::Condition::Generic; +use strict; +use vars qw/@ISA/; @ISA = qw(RT::Condition::Generic); @@ -19,5 +42,10 @@ sub IsApplicable { return(1); } +eval "require RT::Condition::AnyTransaction_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/AnyTransaction_Vendor.pm}); +eval "require RT::Condition::AnyTransaction_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/AnyTransaction_Local.pm}); + 1; diff --git a/rt/lib/RT/Condition/BeforeDue.pm b/rt/lib/RT/Condition/BeforeDue.pm new file mode 100644 index 000000000..7911fd80a --- /dev/null +++ b/rt/lib/RT/Condition/BeforeDue.pm @@ -0,0 +1,64 @@ +# 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. +# +# 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::BeforeDue; +require RT::Condition::Generic; + +use RT::Date; + +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Condition::Generic); + + +sub IsApplicable { + my $self = shift; + + # Parse date string. Format is "1d2h3m4s" for 1 day and 2 hours + # and 3 minutes and 4 seconds. + my %e; + foreach (qw(d h m s)) { + my @vals = $self->Argument =~ m/(\d+)$_/; + $e{$_} = pop @vals || 0; + } + my $elapse = $e{'d'} * 24*60*60 + $e{'h'} * 60*60 + $e{'m'} * 60 + $e{'s'}; + + my $cur = new RT::Date( $RT::SystemUser ); + $cur->SetToNow(); + my $due = $self->TicketObj->DueObj; + return (undef) if $due->Unix <= 0; + + my $diff = $due->Diff($cur); + if ( $diff >= 0 and $diff <= $elapse ) { + return(1); + } else { + return(undef); + } +} + +eval "require RT::Condition::BeforeDue_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/BeforeDue_Vendor.pm}); +eval "require RT::Condition::BeforeDue_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/BeforeDue_Local.pm}); + +1; diff --git a/rt/lib/RT/Condition/Generic.pm b/rt/lib/RT/Condition/Generic.pm index 393f4b786..bd269315e 100755 --- a/rt/lib/RT/Condition/Generic.pm +++ b/rt/lib/RT/Condition/Generic.pm @@ -1,7 +1,26 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Condition/Generic.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - +# 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. +# +# 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 - ; @@ -29,7 +48,6 @@ =begin testing -ok (require RT::TestHarness); ok (require RT::Condition::Generic); =end testing @@ -39,6 +57,11 @@ ok (require RT::Condition::Generic); package RT::Condition::Generic; +use RT::Base; +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Base); + # {{{ sub new sub new { my $proto = shift; @@ -61,7 +84,6 @@ sub _Init { ApplicableTransTypes => undef, @_ ); - $self->{'Argument'} = $args{'Argument'}; $self->{'ScripObj'} = $args{'ScripObj'}; $self->{'TicketObj'} = $args{'TicketObj'}; @@ -100,6 +122,19 @@ sub 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 @@ -137,7 +172,7 @@ sub ApplicableTransTypes { # {{{ sub Describe sub Describe { my $self = shift; - return ("No description for " . ref $self); + return ($self->loc("No description for [_1]", ref $self)); } # }}} @@ -167,4 +202,10 @@ sub DESTROY { } # }}} + +eval "require RT::Condition::Generic_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/Generic_Vendor.pm}); +eval "require RT::Condition::Generic_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/Generic_Local.pm}); + 1; diff --git a/rt/lib/RT/Condition/Overdue.pm b/rt/lib/RT/Condition/Overdue.pm new file mode 100644 index 000000000..3a4efe77f --- /dev/null +++ b/rt/lib/RT/Condition/Overdue.pm @@ -0,0 +1,68 @@ +# 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. +# +# 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::Overdue + +=head1 DESCRIPTION + +Returns true if the ticket we're operating on is overdue + +=cut + +package RT::Condition::Overdue; +require RT::Condition::Generic; + +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Condition::Generic); + + +=head2 IsApplicable + +If the due date is before "now" return true + +=cut + +sub IsApplicable { + my $self = shift; + if ($self->TicketObj->DueObj->Unix > 0 and + $self->TicketObj->DueObj->Unix < time()) { + return(1); + } + else { + return(undef); + } +} + +eval "require RT::Condition::Overdue_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/Overdue_Vendor.pm}); +eval "require RT::Condition::Overdue_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/Overdue_Local.pm}); + +1; + diff --git a/rt/lib/RT/Condition/OwnerChange.pm b/rt/lib/RT/Condition/OwnerChange.pm new file mode 100644 index 000000000..e17f589e4 --- /dev/null +++ b/rt/lib/RT/Condition/OwnerChange.pm @@ -0,0 +1,102 @@ +# 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. +# +# 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::OwnerChange; +require RT::Condition::Generic; + +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Condition::Generic); + + +=head2 IsApplicable + +If we're changing the owner return true, otherwise return false + +=begin testing + +my $q = RT::Queue->new($RT::SystemUser); +$q->Create(Name =>'ownerChangeTest'); + +ok($q->Id, "Created a scriptest queue"); + +my $s1 = RT::Scrip->new($RT::SystemUser); +my ($val, $msg) =$s1->Create( Queue => $q->Id, + ScripAction => 'User Defined', + ScripCondition => 'On Owner Change', + CustomIsApplicableCode => '', + CustomPrepareCode => 'return 1', + CustomCommitCode => ' + $RT::Logger->crit("Before, prio is ".$self->TicketObj->Priority); + $self->TicketObj->SetPriority($self->TicketObj->Priority+1); + $RT::Logger->crit("After, prio is ".$self->TicketObj->Priority); + return(1); + ', + Template => 'Blank' + ); +ok($val,$msg); + +my $ticket = RT::Ticket->new($RT::SystemUser); +my ($tv,$ttv,$tm) = $ticket->Create(Queue => $q->Id, + Subject => "hair on fire", + InitialPriority => '20' + ); +ok($tv, $tm); +ok($ticket->SetOwner('root')); +is ($ticket->Priority , '21', "Ticket priority is set right"); +ok($ticket->Steal); +is ($ticket->Priority , '22', "Ticket priority is set right"); +ok($ticket->Untake); +is ($ticket->Priority , '23', "Ticket priority is set right"); +ok($ticket->Take); +is ($ticket->Priority , '24', "Ticket priority is set right"); + + + + + +=end testing + + +=cut + +sub IsApplicable { + my $self = shift; + if ($self->TransactionObj->Field eq 'Owner') { + return(1); + } + else { + return(undef); + } +} + +eval "require RT::Condition::OwnerChange_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/OwnerChange_Vendor.pm}); +eval "require RT::Condition::OwnerChange_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/OwnerChange_Local.pm}); + +1; + diff --git a/rt/lib/RT/Condition/PriorityExceeds.pm b/rt/lib/RT/Condition/PriorityExceeds.pm new file mode 100644 index 000000000..7737ca5a9 --- /dev/null +++ b/rt/lib/RT/Condition/PriorityExceeds.pm @@ -0,0 +1,57 @@ +# 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. +# +# 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::PriorityExceeds; +require RT::Condition::Generic; + +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Condition::Generic); + + +=head2 IsApplicable + +If the priority exceeds the argument value + +=cut + +sub IsApplicable { + my $self = shift; + if ($self->TicketObj->Priority > $self->Argument) { + return(1); + } + else { + return(undef); + } +} + +eval "require RT::Condition::PriorityExceeds_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/PriorityExceeds_Vendor.pm}); +eval "require RT::Condition::PriorityExceeds_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/PriorityExceeds_Local.pm}); + +1; + diff --git a/rt/lib/RT/Condition/QueueChange.pm b/rt/lib/RT/Condition/QueueChange.pm new file mode 100644 index 000000000..f3e646a00 --- /dev/null +++ b/rt/lib/RT/Condition/QueueChange.pm @@ -0,0 +1,57 @@ +# 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. +# +# 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::QueueChange; +require RT::Condition::Generic; + +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Condition::Generic); + + +=head2 IsApplicable + +If the queue has changed. + +=cut + +sub IsApplicable { + my $self = shift; + if ($self->TransactionObj->Field eq 'Queue') { + return(1); + } + else { + return(undef); + } +} + +eval "require RT::Condition::QueueChange_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/QueueChange_Vendor.pm}); +eval "require RT::Condition::QueueChange_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/QueueChange_Local.pm}); + +1; + diff --git a/rt/lib/RT/Condition/StatusChange.pm b/rt/lib/RT/Condition/StatusChange.pm index 56419b2c7..8afabcda0 100644 --- a/rt/lib/RT/Condition/StatusChange.pm +++ b/rt/lib/RT/Condition/StatusChange.pm @@ -1,10 +1,34 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Condition/StatusChange.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ -# Copyright 1996-2001 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU General Public 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. +# +# 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; require RT::Condition::Generic; +use strict; +use vars qw/@ISA/; @ISA = qw(RT::Condition::Generic); @@ -26,5 +50,10 @@ sub IsApplicable { } } +eval "require RT::Condition::StatusChange_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/StatusChange_Vendor.pm}); +eval "require RT::Condition::StatusChange_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/StatusChange_Local.pm}); + 1; diff --git a/rt/lib/RT/Condition/UserDefined.pm b/rt/lib/RT/Condition/UserDefined.pm new file mode 100644 index 000000000..eb829f0d1 --- /dev/null +++ b/rt/lib/RT/Condition/UserDefined.pm @@ -0,0 +1,57 @@ +# 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. +# +# 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::UserDefined; + +use RT::Condition::Generic; + +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Condition::Generic); + + +=head2 IsApplicable + +This happens on every transaction. it's always applicable + +=cut + +sub IsApplicable { + my $self = shift; + my $retval = eval $self->ScripObj->CustomIsApplicableCode; + if ($@) { + $RT::Logger->error("Scrip ".$self->ScripObj->Id. " IsApplicable failed: ".$@); + return (undef); + } + return ($retval); +} + +eval "require RT::Condition::UserDefined_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/UserDefined_Vendor.pm}); +eval "require RT::Condition::UserDefined_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/UserDefined_Local.pm}); + +1; + diff --git a/rt/lib/RT/CurrentUser.pm b/rt/lib/RT/CurrentUser.pm index 6997ddbac..4ca2f9891 100755 --- a/rt/lib/RT/CurrentUser.pm +++ b/rt/lib/RT/CurrentUser.pm @@ -1,7 +1,26 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/CurrentUser.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-1999 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - +# 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. +# +# 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 @@ -19,7 +38,6 @@ =begin testing -ok (require RT::TestHarness); ok (require RT::CurrentUser); =end testing @@ -28,9 +46,13 @@ ok (require RT::CurrentUser); package RT::CurrentUser; + use RT::Record; -@ISA= qw(RT::Record); +use RT::I18N; +use strict; +use vars qw/@ISA/; +@ISA= qw(RT::Record); # {{{ sub _Init @@ -48,7 +70,7 @@ sub _Init { $self->Load($Name); } - $self->_MyCurrentUser($self); + $self->CurrentUser($self); } # }}} @@ -56,7 +78,8 @@ sub _Init { # {{{ sub Create sub Create { - return (0, 'Permission Denied'); + my $self = shift; + return (0, $self->loc('Permission Denied')); } # }}} @@ -64,7 +87,8 @@ sub Create { # {{{ sub Delete sub Delete { - return (0, 'Permission Denied'); + my $self = shift; + return (0, $self->loc('Permission Denied')); } # }}} @@ -84,7 +108,7 @@ sub UserObj { use RT::User; $self->{'UserObj'} = RT::User->new($self); unless ($self->{'UserObj'}->Load($self->Id)) { - $RT::Logger->err("Couldn't load ".$self->Id. "from the users database.\n"); + $RT::Logger->err($self->loc("Couldn't load [_1] from the users database.\n", $self->Id)); } } @@ -92,6 +116,42 @@ sub UserObj { } # }}} +# {{{ 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; @@ -120,6 +180,8 @@ Takes the email address of the user to load. sub LoadByEmail { my $self = shift; my $identifier = shift; + + $identifier = RT::User::CanonicalizeEmailAddress(undef, $identifier); $self->LoadByCol("EmailAddress",$identifier); @@ -225,46 +287,88 @@ sub Privileged { # }}} -# {{{ Convenient ACL methods -=head2 HasQueueRight +# {{{ sub HasRight -calls $self->UserObj->HasQueueRight with the arguments passed in +=head2 HasRight + +calls $self->UserObj->HasRight with the arguments passed in =cut -sub HasQueueRight { - my $self = shift; - return ($self->UserObj->HasQueueRight(@_)); +sub HasRight { + my $self = shift; + return ($self->UserObj->HasRight(@_)); } -=head2 HasSystemRight +# }}} -calls $self->UserObj->HasSystemRight with the arguments passed in +# {{{ Localization -=cut +=head2 LanguageHandle +Returns this current user's langauge handle. Should take a language +specification. but currently doesn't -sub HasSystemRight { - my $self = shift; - return ($self->UserObj->HasSystemRight(@_)); -} -# }}} +=begin testing -# {{{ sub HasRight +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"); -=head2 HasSystemRight +=end testing -calls $self->UserObj->HasRight with the arguments passed in +=cut -=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 HasRight { - my $self = shift; - return ($self->UserObj->HasRight(@_)); +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($result); +} # }}} +eval "require RT::CurrentUser_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/CurrentUser_Vendor.pm}); +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 new file mode 100644 index 000000000..cd40a3a92 --- /dev/null +++ b/rt/lib/RT/CustomField.pm @@ -0,0 +1,340 @@ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + + +=head1 NAME + +RT::CustomField + + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=head1 METHODS + +=cut + +package RT::CustomField; +use RT::Record; +use RT::Queue; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('CustomFields'); + $self->SUPER::_Init(@_); +} + + + + + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(200) 'Name'. + varchar(200) 'Type'. + int(11) 'Queue'. + varchar(255) 'Description'. + int(11) 'SortOrder'. + smallint(6) 'Disabled'. + +=cut + + + + +sub Create { + my $self = shift; + my %args = ( + Name => '', + Type => '', + Queue => '0', + Description => '', + SortOrder => '0', + Disabled => '0', + + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Type => $args{'Type'}, + Queue => $args{'Queue'}, + Description => $args{'Description'}, + SortOrder => $args{'SortOrder'}, + Disabled => $args{'Disabled'}, +); + +} + + + +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + + +=cut + + +=item Name + +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) + + + +=item SetName VALUE + + +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) + + +=cut + + +=item Type + +Returns the current value of Type. +(In the database, Type is stored as varchar(200).) + + + +=item SetType VALUE + + +Set Type to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Type will be stored as a varchar(200).) + + +=cut + + +=item Queue + +Returns the current value of Queue. +(In the database, Queue is stored as int(11).) + + + +=item SetQueue VALUE + + +Set Queue to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Queue will be stored as a int(11).) + + +=cut + + +=item QueueObj + +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); +} + +=item Description + +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) + + + +=item SetDescription VALUE + + +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) + + +=cut + + +=item SortOrder + +Returns the current value of SortOrder. +(In the database, SortOrder is stored as int(11).) + + + +=item SetSortOrder VALUE + + +Set SortOrder to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, SortOrder will be stored as a int(11).) + + +=cut + + +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) + + +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + +=item LastUpdatedBy + +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) + + +=cut + + +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) + + +=cut + + +=item Disabled + +Returns the current value of Disabled. +(In the database, Disabled is stored as smallint(6).) + + + +=item SetDisabled VALUE + + +Set Disabled to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Disabled will be stored as a smallint(6).) + + +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Type => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Queue => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + SortOrder => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + 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 => ''}, + Disabled => + {read => 1, write => 1, type => 'smallint(6)', default => '0'}, + + } +}; + + + eval "require RT::CustomField_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomField_Overlay.pm}) { + die $@; + }; + + eval "require RT::CustomField_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomField_Vendor.pm}) { + die $@; + }; + + eval "require RT::CustomField_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomField_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::CustomField_Overlay, RT::CustomField_Vendor, RT::CustomField_Local + +=cut + + +1; diff --git a/rt/lib/RT/CustomFieldValue.pm b/rt/lib/RT/CustomFieldValue.pm new file mode 100644 index 000000000..f434b44fb --- /dev/null +++ b/rt/lib/RT/CustomFieldValue.pm @@ -0,0 +1,294 @@ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + + +=head1 NAME + +RT::CustomFieldValue + + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=head1 METHODS + +=cut + +package RT::CustomFieldValue; +use RT::Record; +use RT::CustomField; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('CustomFieldValues'); + $self->SUPER::_Init(@_); +} + + + + + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + int(11) 'CustomField'. + varchar(200) 'Name'. + varchar(255) 'Description'. + int(11) 'SortOrder'. + +=cut + + + + +sub Create { + my $self = shift; + my %args = ( + CustomField => '0', + Name => '', + Description => '', + SortOrder => '0', + + @_); + $self->SUPER::Create( + CustomField => $args{'CustomField'}, + Name => $args{'Name'}, + Description => $args{'Description'}, + SortOrder => $args{'SortOrder'}, +); + +} + + + +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + + +=cut + + +=item CustomField + +Returns the current value of CustomField. +(In the database, CustomField is stored as int(11).) + + + +=item 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 + + +=item 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); +} + +=item Name + +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) + + + +=item SetName VALUE + + +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) + + +=cut + + +=item Description + +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) + + + +=item SetDescription VALUE + + +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) + + +=cut + + +=item SortOrder + +Returns the current value of SortOrder. +(In the database, SortOrder is stored as int(11).) + + + +=item SetSortOrder VALUE + + +Set SortOrder to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, SortOrder will be stored as a int(11).) + + +=cut + + +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) + + +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + +=item LastUpdatedBy + +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) + + +=cut + + +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) + + +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + CustomField => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + SortOrder => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + 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::CustomFieldValue_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomFieldValue_Overlay.pm}) { + die $@; + }; + + eval "require RT::CustomFieldValue_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomFieldValue_Vendor.pm}) { + die $@; + }; + + eval "require RT::CustomFieldValue_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomFieldValue_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::CustomFieldValue_Overlay, RT::CustomFieldValue_Vendor, RT::CustomFieldValue_Local + +=cut + + +1; diff --git a/rt/lib/RT/CustomFieldValues.pm b/rt/lib/RT/CustomFieldValues.pm new file mode 100644 index 000000000..0e792b1a2 --- /dev/null +++ b/rt/lib/RT/CustomFieldValues.pm @@ -0,0 +1,121 @@ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + + +=head1 NAME + + RT::CustomFieldValues -- Class Description + +=head1 SYNOPSIS + + use RT::CustomFieldValues + +=head1 DESCRIPTION + + +=head1 METHODS + +=cut + +package RT::CustomFieldValues; + +use RT::SearchBuilder; +use RT::CustomFieldValue; + +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + + +sub _Init { + my $self = shift; + $self->{'table'} = 'CustomFieldValues'; + $self->{'primary_key'} = 'id'; + + + + # By default, order by name + $self->OrderBy( ALIAS => 'main', + FIELD => 'SortOrder', + ORDER => 'ASC'); + + return ( $self->SUPER::_Init(@_) ); +} + + +=item NewItem + +Returns an empty new RT::CustomFieldValue item + +=cut + +sub NewItem { + my $self = shift; + return(RT::CustomFieldValue->new($self->CurrentUser)); +} + + eval "require RT::CustomFieldValues_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomFieldValues_Overlay.pm}) { + die $@; + }; + + eval "require RT::CustomFieldValues_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomFieldValues_Vendor.pm}) { + die $@; + }; + + eval "require RT::CustomFieldValues_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomFieldValues_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::CustomFieldValues_Overlay, RT::CustomFieldValues_Vendor, RT::CustomFieldValues_Local + +=cut + + +1; diff --git a/rt/lib/RT/CustomFieldValues_Overlay.pm b/rt/lib/RT/CustomFieldValues_Overlay.pm new file mode 100644 index 000000000..0384db96c --- /dev/null +++ b/rt/lib/RT/CustomFieldValues_Overlay.pm @@ -0,0 +1,47 @@ +# 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. +# +# 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); + +# {{{ 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 => '=')); + +} + +# }}} + +1; + diff --git a/rt/lib/RT/CustomField_Overlay.pm b/rt/lib/RT/CustomField_Overlay.pm new file mode 100644 index 000000000..89ef88987 --- /dev/null +++ b/rt/lib/RT/CustomField_Overlay.pm @@ -0,0 +1,560 @@ +# 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. +# +# 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(@TYPES %TYPES); + +use RT::CustomFieldValues; +use RT::TicketCustomFieldValues; + +# Enumerate all valid types for this custom field +@TYPES = ( + 'SelectSingle', # loc + 'SelectMultiple', # loc + 'FreeformSingle', # loc + 'FreeformMultiple', # loc +); + +# Populate a hash of types of easier validation +for (@TYPES) { $TYPES{$_} = 1}; + + + + +=head1 NAME + + RT::CustomField_Overlay + +=head1 DESCRIPTION + +=head1 'CORE' METHODS + +=cut + + + +=head2 Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(200) 'Name'. + varchar(200) 'Type'. + int(11) 'Queue'. + varchar(255) 'Description'. + int(11) 'SortOrder'. + smallint(6) 'Disabled'. + +=cut + + + + +sub Create { + my $self = shift; + my %args = ( + Name => '', + Type => '', + Queue => '0', + Description => '', + SortOrder => '0', + Disabled => '0', + + @_); + + + + if ( ! $args{'Queue'} ) { + unless ( $self->CurrentUser->HasRight( Object => $RT::System, Right => 'AdminCustomFields') ) { + return ( 0, $self->loc('Permission Denied') ); + } + } + else { + my $queue = RT::Queue->new($self->CurrentUser); + $queue->Load($args{'Queue'}); + unless ($queue->Id) { + return (0, $self->loc("Queue not found")); + } + unless ( $queue->CurrentUserHasRight('AdminCustomFields') ) { + return ( 0, $self->loc('Permission Denied') ); + } + } + $self->SUPER::Create( + Name => $args{'Name'}, + Type => $args{'Type'}, + Queue => $args{'Queue'}, + Description => $args{'Description'}, + SortOrder => $args{'SortOrder'}, + Disabled => $args{'Disabled'}, +); + +} + + +# {{{ sub LoadByNameAndQueue + +=head2 LoadByNameAndQueue (Queue => QUEUEID, Name => NAME) + +Loads the Custom field named NAME for Queue QUEUE. If QUEUE is 0, +loads a global custom field + +=cut + +# Compatibility for API change after 3.0 beta 1 +*LoadNameAndQueue = \&LoadByNameAndQueue; + +sub LoadByNameAndQueue { + my $self = shift; + my %args = ( + Queue => undef, + Name => undef, + @_, + ); + + return ( $self->LoadByCols( Name => $args{'Name'}, Queue => $args{'Queue'} ) ); + +} + +# }}} + +# {{{ Dealing with custom field values + +=begin testing +use_ok(RT::CustomField); +ok(my $cf = RT::CustomField->new($RT::SystemUser)); +ok(my ($id, $msg)= $cf->Create( Name => 'TestingCF', + Queue => '0', + SortOrder => '1', + Description => 'A Testing custom field', + Type=> 'SelectSingle'), 'Created a global CustomField'); +ok($id != 0, 'Global custom field correctly created'); +ok ($cf->SingleValue); +ok($cf->Type eq 'SelectSingle'); + +ok($cf->SetType('SelectMultiple')); +ok($cf->Type eq 'SelectMultiple'); +ok(!$cf->SingleValue ); +ok(my ($bogus_val, $bogus_msg) = $cf->SetType('BogusType') , "Trying to set a custom field's type to a bogus type"); +ok($bogus_val == 0, "Unable to set a custom field's type to a bogus type"); + +ok(my $bad_cf = RT::CustomField->new($RT::SystemUser)); +ok(my ($bad_id, $bad_msg)= $cf->Create( Name => 'TestingCF-bad', + Queue => '0', + SortOrder => '1', + Description => 'A Testing custom field with a bogus Type', + Type=> 'SelectSingleton'), 'Created a global CustomField with a bogus type'); +ok($bad_id == 0, 'Global custom field correctly decided to not create a cf with a bogus type '); + +=end testing + +=cut + +# {{{ AddValue + +=head2 AddValue HASH + +Create a new value for this CustomField. Takes a paramhash containing the elements Name, Description and SortOrder + +=begin testing + +ok(my $cf = RT::CustomField->new($RT::SystemUser)); +$cf->Load(1); +ok($cf->Id == 1); +ok(my ($val,$msg) = $cf->AddValue(Name => 'foo' , Description => 'TestCFValue', SortOrder => '6')); +ok($val != 0); +ok (my ($delval, $delmsg) = $cf->DeleteValue($val)); +ok ($delval != 0); + +=end testing + +=cut + +sub AddValue { + my $self = shift; + my %args = ( Name => undef, + Description => undef, + SortOrder => undef, + @_ ); + + unless ($self->CurrentUserHasRight('AdminCustomFields')) { + return (0, $self->loc('Permission Denied')); + } + + unless ($args{'Name'}) { + return(0, $self->loc("Can't add a custom field value without a name")); + } + my $newval = RT::CustomFieldValue->new($self->CurrentUser); + return($newval->Create( + CustomField => $self->Id, + Name =>$args{'Name'}, + Description => ($args{'Description'} || ''), + SortOrder => ($args{'SortOrder'} || '0') + )); +} + + +# }}} + +# {{{ DeleteValue + +=head2 DeleteValue ID + +Deletes a value from this custom field by id. + +Does not remove this value for any article which has had it selected + +=cut + +sub DeleteValue { + my $self = shift; + my $id = shift; + unless ($self->CurrentUserHasRight('AdminCustomFields')) { + return (0, $self->loc('Permission Denied')); + } + + my $val_to_del = RT::CustomFieldValue->new($self->CurrentUser); + $val_to_del->Load($id); + unless ($val_to_del->Id) { + return (0, $self->loc("Couldn't find that value")); + } + unless ($val_to_del->CustomField == $self->Id) { + return (0, $self->loc("That is not a value for this custom field")); + } + + my $retval = $val_to_del->Delete(); + if ($retval) { + return ($retval, $self->loc("Custom field value deleted")); + } else { + return(0, $self->loc("Custom field value could not be deleted")); + } +} + +# }}} + +# {{{ Values + +=head2 Values FIELD + +Return a CustomFieldeValues object of all acceptable values for this Custom Field. + + +=cut + +sub Values { + my $self = shift; + + my $cf_values = RT::CustomFieldValues->new($self->CurrentUser); + if ( $self->__Value('Queue') == 0 || $self->CurrentUserHasRight( 'SeeQueue') ) { + $cf_values->LimitToCustomField($self->Id); + } + return ($cf_values); +} + +# }}} + +# }}} + +# {{{ Ticket related routines + +# {{{ ValuesForTicket + +=head2 ValuesForTicket TICKET + +Returns a RT::TicketCustomFieldValues object of this Field's values for TICKET. +TICKET is a ticket id. + + +=cut + +sub ValuesForTicket { + my $self = shift; + my $ticket_id = shift; + + my $values = new RT::TicketCustomFieldValues($self->CurrentUser); + $values->LimitToCustomField($self->Id); + $values->LimitToTicket($ticket_id); + + return ($values); +} + +# }}} + +# {{{ AddValueForTicket + +=head2 AddValueForTicket HASH + +Adds a custom field value for a ticket. Takes a param hash of Ticket and Content + +=cut + +sub AddValueForTicket { + my $self = shift; + my %args = ( Ticket => undef, + Content => undef, + @_ ); + + my $newval = RT::TicketCustomFieldValue->new($self->CurrentUser); + my $val = $newval->Create(Ticket => $args{'Ticket'}, + Content => $args{'Content'}, + CustomField => $self->Id); + + return($val); + +} + + +# }}} + +# {{{ DeleteValueForTicket + +=head2 DeleteValueForTicket HASH + +Adds a custom field value for a ticket. Takes a param hash of Ticket and Content + +=cut + +sub DeleteValueForTicket { + my $self = shift; + my %args = ( Ticket => undef, + Content => undef, + @_ ); + + my $oldval = RT::TicketCustomFieldValue->new($self->CurrentUser); + $oldval->LoadByTicketContentAndCustomField (Ticket => $args{'Ticket'}, + Content => $args{'Content'}, + CustomField => $self->Id ); + # check ot make sure we found it + unless ($oldval->Id) { + return(0, $self->loc("Custom field value [_1] could not be found for custom field [_2]", $args{'Content'}, $self->Name)); + } + # delete it + + my $ret = $oldval->Delete(); + unless ($ret) { + return(0, $self->loc("Custom field value could not be found")); + } + return(1, $self->loc("Custom field value deleted")); +} + + +# }}} +# }}} + + +=head2 ValidateQueue Queue + +Make sure that the queue specified is a valid queue name + +=cut + +sub ValidateQueue { + my $self = shift; + my $id = shift; + + if ($id eq '0') { # 0 means "Global" null would _not_ be ok. + return (1); + } + + my $q = RT::Queue->new($RT::SystemUser); + $q->Load($id); + unless ($q->id) { + return undef; + } + return (1); + + +} + + +# {{{ Types + +=head2 Types + +Retuns an array of the types of CustomField that are supported + +=cut + +sub Types { + return (@TYPES); +} + +# }}} + + +=head2 FriendlyType [TYPE] + +Returns a localized human-readable version of the custom field type. +If a custom field type is specified as the parameter, the friendly type for that type will be returned + +=cut + +sub FriendlyType { + my $self = shift; + + my $type = shift || $self->Type; + + if ( $type eq 'SelectSingle' ) { + return ( $self->loc('Select one value') ); + } + elsif ( $type eq 'SelectMultiple' ) { + return ( $self->loc('Select multiple values') ); + } + elsif ( $type eq 'FreeformSingle' ) { + return ( $self->loc('Enter one value') ); + } + elsif ( $type eq 'FreeformMultiple' ) { + return ( $self->loc('Enter multiple values') ); + } + else { + return ( $self->loc( $self->Type ) ); + } +} + + +=head2 ValidateType TYPE + +Takes a single string. returns true if that string is a value +type of custom field + +=begin testing + +ok(my $cf = RT::CustomField->new($RT::SystemUser)); +ok($cf->ValidateType('SelectSingle')); +ok($cf->ValidateType('SelectMultiple')); +ok(!$cf->ValidateType('SelectFooMultiple')); + +=end testing + +=cut + +sub ValidateType { + my $self = shift; + my $type = shift; + + if( $TYPES{$type}) { + return(1); + } + else { + return undef; + } +} + +# {{{ SingleValue + +=head2 SingleValue + +Returns true if this CustomField only accepts a single value. +Returns false if it accepts multiple values + +=cut + +sub SingleValue { + my $self = shift; + if ($self->Type =~ /Single$/) { + return 1; + } + else { + return undef; + } +} + +# }}} + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight RIGHT + +Helper function to call the custom field's queue's CurrentUserHasRight with the passed in args. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + # if there's no queue, we want to know about a global right + if ( ( !defined $self->__Value('Queue') ) || ( $self->__Value('Queue') == 0 ) ) { + return $self->CurrentUser->HasRight( Object => $RT::System, Right => $right); + } else { + return ( $self->QueueObj->CurrentUserHasRight($right) ); + } +} + +# }}} + +# {{{ sub _Set + +sub _Set { + my $self = shift; + + unless ( $self->CurrentUserHasRight('AdminCustomFields') ) { + return ( 0, $self->loc('Permission Denied') ); + } + return ( $self->SUPER::_Set(@_) ); + +} + +# }}} + +# {{{ sub _Value + +=head2 _Value + +Takes the name of a table column. +Returns its value as a string, if the user passes an ACL check + +=cut + +sub _Value { + + my $self = shift; + my $field = shift; + + # We need to expose the queue so that we can do things like ACL checks + if ( $field eq 'Queue') { + return ( $self->SUPER::_Value($field) ); + } + + + #Anybody can see global custom fields, otherwise we need to do the rights check + unless ( $self->__Value('Queue') == 0 || $self->CurrentUserHasRight( 'SeeQueue') ) { + return (undef); + } + return ( $self->__Value($field) ); + +} + +# }}} +# {{{ sub SetDisabled + +=head2 SetDisabled + +Takes a boolean. +1 will cause this custom field to no longer be avaialble for tickets. +0 will re-enable this queue + +=cut + +# }}} + +1; diff --git a/rt/lib/RT/CustomFields.pm b/rt/lib/RT/CustomFields.pm new file mode 100644 index 000000000..3e47765e6 --- /dev/null +++ b/rt/lib/RT/CustomFields.pm @@ -0,0 +1,121 @@ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + + +=head1 NAME + + RT::CustomFields -- Class Description + +=head1 SYNOPSIS + + use RT::CustomFields + +=head1 DESCRIPTION + + +=head1 METHODS + +=cut + +package RT::CustomFields; + +use RT::SearchBuilder; +use RT::CustomField; + +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + + +sub _Init { + my $self = shift; + $self->{'table'} = 'CustomFields'; + $self->{'primary_key'} = 'id'; + + + + # By default, order by name + $self->OrderBy( ALIAS => 'main', + FIELD => 'SortOrder', + ORDER => 'ASC'); + + return ( $self->SUPER::_Init(@_) ); +} + + +=item NewItem + +Returns an empty new RT::CustomField item + +=cut + +sub NewItem { + my $self = shift; + return(RT::CustomField->new($self->CurrentUser)); +} + + eval "require RT::CustomFields_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomFields_Overlay.pm}) { + die $@; + }; + + eval "require RT::CustomFields_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomFields_Vendor.pm}) { + die $@; + }; + + eval "require RT::CustomFields_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/CustomFields_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::CustomFields_Overlay, RT::CustomFields_Vendor, RT::CustomFields_Local + +=cut + + +1; diff --git a/rt/lib/RT/CustomFields_Overlay.pm b/rt/lib/RT/CustomFields_Overlay.pm new file mode 100644 index 000000000..97c7cb8df --- /dev/null +++ b/rt/lib/RT/CustomFields_Overlay.pm @@ -0,0 +1,135 @@ +# 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. +# +# 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::CustomFields - a collection of RT CustomField objects + +=head1 SYNOPSIS + + use RT::CustomFields; + +=head1 DESCRIPTION + +=head1 METHODS + + +=begin testing + +ok (require RT::CustomFields); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + + +# {{{ sub LimitToGlobalOrQueue + +=item LimitToGlobalOrQueue QUEUEID + +Limits the set of custom fields found to global custom fields or those tied to the queue with ID QUEUEID + +=cut + +sub LimitToGlobalOrQueue { + my $self = shift; + my $queue = shift; + $self->LimitToQueue($queue); + $self->LimitToGlobal(); +} + +# }}} + +# {{{ sub LimitToQueue + +=head2 LimitToQueue QUEUEID + +Takes a queue id (numerical) as its only argument. Makes sure that +Scopes it pulls out apply to this queue (or another that you've selected with +another call to this method + +=cut + +sub LimitToQueue { + my $self = shift; + my $queue = shift; + + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Queue', + VALUE => "$queue") + if defined $queue; + +} +# }}} + +# {{{ sub LimitToGlobal + +=head2 LimitToGlobal + +Makes sure that +Scopes it pulls out apply to all queues (or another that you've selected with +another call to this method or LimitToQueue + +=cut + + +sub LimitToGlobal { + my $self = shift; + + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Queue', + VALUE => 0); + +} +# }}} + + +# {{{ sub _DoSearch + +=head2 _DoSearch + + A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled ro +ws never get seen unless +we're explicitly trying to see them. + +=cut + +sub _DoSearch { + my $self = shift; + + #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. + unless($self->{'find_disabled_rows'}) { + $self->LimitToEnabled(); + } + + return($self->SUPER::_DoSearch(@_)); + +} + +# }}} + +1; + diff --git a/rt/lib/RT/Date.pm b/rt/lib/RT/Date.pm index d56997174..355370ada 100644 --- a/rt/lib/RT/Date.pm +++ b/rt/lib/RT/Date.pm @@ -1,7 +1,26 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Date.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - +# 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. +# +# 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::Date - a simple Object Oriented date. @@ -28,7 +47,15 @@ ok (require RT::Date); package RT::Date; + use Time::Local; + +use RT::Base; + +use strict; +use vars qw/@ISA/; +@ISA = qw/RT::Base/; + use vars qw($MINUTE $HOUR $DAY $WEEK $MONTH $YEAR); $MINUTE = 60; @@ -45,6 +72,7 @@ sub new { my $class = ref($proto) || $proto; my $self = {}; bless ($self, $class); + $self->CurrentUser(@_); $self->Unix(0); return $self; } @@ -61,91 +89,114 @@ if $args->{'Format'} is 'unix', takes the number of seconds since the epoch If $args->{'Format'} is ISO, tries to parse an ISO date. -If $args->{'Format'} is 'unknown', require Date::Parse and make it figure things -out. This is a heavyweight operation that should never be called from within -RT's core. But it's really useful for something like the textbox date entry -where we let the user do whatever they want. +If $args->{'Format'} is 'unknown', require Time::ParseDate and make it figure +things out. This is a heavyweight operation that should never be called from +within RT's core. But it's really useful for something like the textbox date +entry where we let the user do whatever they want. If $args->{'Value'} is 0, assumes you mean never. +=begin testing + +use_ok(RT::Date); +my $date = RT::Date->new($RT::SystemUser); +$date->Set(Format => 'unix', Value => '0'); +ok ($date->ISO eq '1970-01-01 00:00:00', "Set a date to midnight 1/1/1970 GMT"); + +=end testing =cut sub Set { my $self = shift; my %args = ( Format => 'unix', - Value => time, - @_); - if (($args{'Value'} =~ /^\d*$/) and ($args{'Value'} == 0)) { - $self->Unix(-1); - return($self->Unix()); + Value => time, + @_ ); + if ( !$args{'Value'} + || ( ( $args{'Value'} =~ /^\d*$/ ) and ( $args{'Value'} == 0 ) ) ) { + $self->Unix(-1); + return ( $self->Unix() ); } - if ($args{'Format'} =~ /^unix$/i) { - $self->Unix($args{'Value'}); + if ( $args{'Format'} =~ /^unix$/i ) { + $self->Unix( $args{'Value'} ); } - - elsif ($args{'Format'} =~ /^(sql|datemanip|iso)$/i) { - - if (($args{'Value'} =~ /^(\d{4}?)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/) || - ($args{'Value'} =~ /^(\d{4}?)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)$/) || - ($args{'Value'} =~ /^(\d{4}?)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)\+00$/) || - ($args{'Value'} =~ /^(\d{4}?)(\d\d)(\d\d)(\d\d):(\d\d):(\d\d)$/)) { - - my $year = $1; - my $mon = $2; - my $mday = $3; - my $hours = $4; - my $min = $5; - my $sec = $6; - - #timegm expects month as 0->11 - $mon--; - - #now that we've parsed it, deal with the case where everything - #was 0 - if ($mon == -1) { - $self->Unix(-1); - } else { - - #Dateamnip strings aren't in GMT. - if ($args{'Format'} =~ /^datemanip$/i) { - $self->Unix(timelocal($sec,$min,$hours,$mday,$mon,$year)); - } - #ISO and SQL dates are in GMT - else { - $self->Unix(timegm($sec,$min,$hours,$mday,$mon,$year)); - } - - $self->Unix(-1) unless $self->Unix; - } - } - else { - use Carp; - Carp::cluck; - $RT::Logger->debug( "Couldn't parse date $args{'Value'} as a $args{'Format'}"); - - } + + elsif ( $args{'Format'} =~ /^(sql|datemanip|iso)$/i ) { + $args{'Value'} =~ s!/!-!g; + + if (( $args{'Value'} =~ /^(\d{4}?)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/ ) + || ( $args{'Value'} =~ + /^(\d{4}?)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)$/ ) + || ( $args{'Value'} =~ + /^(\d{4}?)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)\+00$/ ) + || ($args{'Value'} =~ /^(\d{4}?)(\d\d)(\d\d)(\d\d):(\d\d):(\d\d)$/ ) + ) { + + my $year = $1; + my $mon = $2; + my $mday = $3; + my $hours = $4; + my $min = $5; + my $sec = $6; + + #timegm expects month as 0->11 + $mon--; + + #now that we've parsed it, deal with the case where everything + #was 0 + if ( $mon == -1 ) { + $self->Unix(-1); + } + else { + + #Dateamnip strings aren't in GMT. + if ( $args{'Format'} =~ /^datemanip$/i ) { + $self->Unix( + timelocal( $sec, $min, $hours, $mday, $mon, $year ) ); + } + + #ISO and SQL dates are in GMT + else { + $self->Unix( + timegm( $sec, $min, $hours, $mday, $mon, $year ) ); + } + + $self->Unix(-1) unless $self->Unix; + } + } + else { + use Carp; + Carp::cluck; + $RT::Logger->debug( + "Couldn't parse date $args{'Value'} as a $args{'Format'}"); + + } + } + elsif ( $args{'Format'} =~ /^unknown$/i ) { + require Time::ParseDate; + + #Convert it to an ISO format string + + my $date = Time::ParseDate::parsedate($args{'Value'}, + UK => $RT::DateDayBeforeMonth, + PREFER_PAST => $RT::AmbiguousDayInPast, + PREFER_FUTURE => !($RT::AmbiguousDayInPast)); + + #This date has now been set to a date in the _local_ timezone. + #since ISO dates are known to be in GMT (for RT's purposes); + + $RT::Logger->debug( "RT::Date used date::parse to make " + . $args{'Value'} + . " $date\n" ); + + return ( $self->Set( Format => 'unix', Value => "$date" ) ); } - elsif ($args{'Format'} =~ /^unknown$/i) { - require Date::Parse; - #Convert it to an ISO format string - - my $date = Date::Parse::str2time($args{'Value'}); - - #This date has now been set to a date in the _local_ timezone. - #since ISO dates are known to be in GMT (for RT's purposes); - - $RT::Logger->debug("RT::Date used date::parse to make ".$args{'Value'} . " $date\n"); - - - return ($self->Set( Format => 'unix', Value => "$date")); - } else { - die "Unknown Date format: ".$args{'Format'}."\n"; + die "Unknown Date format: " . $args{'Format'} . "\n"; } - - return($self->Unix()); + + return ( $self->Unix() ); } # }}} @@ -232,47 +283,59 @@ sub DiffAsString { # {{{ sub DurationAsString + =head2 DurationAsString Takes a number of seconds. returns a string describing that duration =cut -sub DurationAsString{ +sub DurationAsString { - my $self=shift; + my $self = shift; my $duration = shift; - - my ($negative, $s); - - $negative = 'ago' if ($duration < 0); + + my ( $negative, $s ); + + $negative = 1 if ( $duration < 0 ); $duration = abs($duration); - if($duration < $MINUTE) { - $s=$duration; - $string="sec"; - } elsif($duration < (2 * $HOUR)) { - $s = int($duration/$MINUTE); - $string="min"; - } elsif($duration < (2 * $DAY)) { - $s = int($duration/$HOUR); - $string="hours"; - } elsif($duration < (2 * $WEEK)) { - $s = int($duration/$DAY); - $string="days"; - } elsif($duration < (2 * $MONTH)) { - $s = int($duration/$WEEK); - $string="weeks"; - } elsif($duration < $YEAR) { - $s = int($duration/$MONTH); - $string="months"; - } else { - $s = int($duration/$YEAR); - $string="years"; + my $time_unit; + if ( $duration < $MINUTE ) { + $s = $duration; + $time_unit = $self->loc("sec"); + } + elsif ( $duration < ( 2 * $HOUR ) ) { + $s = int( $duration / $MINUTE ); + $time_unit = $self->loc("min"); + } + elsif ( $duration < ( 2 * $DAY ) ) { + $s = int( $duration / $HOUR ); + $time_unit = $self->loc("hours"); + } + elsif ( $duration < ( 2 * $WEEK ) ) { + $s = int( $duration / $DAY ); + $time_unit = $self->loc("days"); + } + elsif ( $duration < ( 2 * $MONTH ) ) { + $s = int( $duration / $WEEK ); + $time_unit = $self->loc("weeks"); + } + elsif ( $duration < $YEAR ) { + $s = int( $duration / $MONTH ); + $time_unit = $self->loc("months"); + } + else { + $s = int( $duration / $YEAR ); + $time_unit = $self->loc("years"); + } + if (0) { # For now, never display the "AGO" # $negative) { + return $self->loc( "[_1] [_2] ago", $s, $time_unit ); + } + else { + return $self->loc( "[_1] [_2]", $s, $time_unit ); } - - return ("$s $string $negative"); } # }}} @@ -303,12 +366,64 @@ Returns the object\'s time as a string with the current timezone. sub AsString { my $self = shift; - return ("Not set") if ($self->Unix <= 0); + return ($self->loc("Not set")) if ($self->Unix <= 0); + + my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($self->Unix); - return (scalar(localtime($self->Unix))); + return $self->loc("[_1] [_2] [_3] [_4]:[_5]:[_6] [_7]", $self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)); } # }}} +# {{{ GetWeekday +=head2 GetWeekday DAY + +Takes an integer day of week and returns a localized string for that day of week + +=cut + +sub GetWeekday { + my $self = shift; + my $dow = shift; + + return $self->loc('Mon.') if ($dow == 1); + return $self->loc('Tue.') if ($dow == 2); + return $self->loc('Wed.') if ($dow == 3); + return $self->loc('Thu.') if ($dow == 4); + return $self->loc('Fri.') if ($dow == 5); + return $self->loc('Sat.') if ($dow == 6); + return $self->loc('Sun.') if ($dow == 0); +} + +# }}} + +# {{{ GetMonth +=head2 GetMonth DAY + +Takes an integer month and returns a localized string for that month + +=cut + +sub GetMonth { + my $self = shift; + my $mon = shift; + + # We do this rather than an array so that we don't call localize 12x what we need to + return $self->loc('Jan.') if ($mon == 0); + return $self->loc('Feb.') if ($mon == 1); + return $self->loc('Mar.') if ($mon == 2); + return $self->loc('Apr.') if ($mon == 3); + return $self->loc('May.') if ($mon == 4); + return $self->loc('Jun.') if ($mon == 5); + return $self->loc('Jul.') if ($mon == 6); + return $self->loc('Aug.') if ($mon == 7); + return $self->loc('Sep.') if ($mon == 8); + return $self->loc('Oct.') if ($mon == 9); + return $self->loc('Nov.') if ($mon == 10); + return $self->loc('Dec.') if ($mon == 11); +} + +# }}} + # {{{ sub AddSeconds =head2 sub AddSeconds @@ -425,12 +540,18 @@ pull from a 'Timezone' attribute of the CurrentUser sub LocalTimezone { my $self = shift; - + + return $self->CurrentUser->Timezone + if $self->CurrentUser and $self->CurrentUser->can('Timezone'); + return ($RT::Timezone); } # }}} - +eval "require RT::Date_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Date_Vendor.pm}); +eval "require RT::Date_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Date_Local.pm}); 1; diff --git a/rt/lib/RT/EmailParser.pm b/rt/lib/RT/EmailParser.pm new file mode 100644 index 000000000..49f3d5518 --- /dev/null +++ b/rt/lib/RT/EmailParser.pm @@ -0,0 +1,784 @@ +# 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. +# +# 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::EmailParser; + + +use base qw/RT::Base/; + +use strict; +use Mail::Address; +use MIME::Entity; +use MIME::Head; +use MIME::Parser; +use File::Temp qw/tempdir/; + +=head1 NAME + + RT::Interface::CLI - helper functions for creating a commandline RT interface + +=head1 SYNOPSIS + + +=head1 DESCRIPTION + + +=begin testing + +ok(require RT::EmailParser); + +=end testing + + +=head1 METHODS + +=head2 new + + +=cut + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $self = {}; + bless ($self, $class); + return $self; +} + + + +# {{{ sub debug + +sub debug { + my $val = shift; + my ($debug); + if ($val) { + $RT::Logger->debug( $val . "\n" ); + if ($debug) { + print STDERR "$val\n"; + } + } + if ($debug) { + return (1); + } +} + +# }}} + +# {{{ sub CheckForLoops + +sub CheckForLoops { + my $self = shift; + + my $head = $self->Head; + + #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 =~ /^$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); +} + +# }}} + +# {{{ sub CheckForSuspiciousSender + +sub CheckForSuspiciousSender { + my $self = 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 ) = $self->ParseSenderAddressFromHead(); + + if ( ( $From =~ /^mailer-daemon/i ) or ( $From =~ /^postmaster/i ) ) { + return (1); + + } + + return (undef); + +} + +# }}} + +# {{{ sub CheckForAutoGenerated +sub CheckForAutoGenerated { + my $self = shift; + my $head = $self->Head; + + my $Precedence = $head->get("Precedence") || ""; + if ( $Precedence =~ /^(bulk|junk)/i ) { + return (1); + } + else { + return (undef); + } +} + +# }}} + +# {{{ sub ParseMIMEEntityFromSTDIN + +sub ParseMIMEEntityFromSTDIN { + my $self = shift; + return $self->ParseMIMEEntityFromFileHandle(\*STDIN); +} + +# }}} + + +sub ParseMIMEEntityFromScalar { + my $self = shift; + my $message = shift; + + # Create a new parser object: + + my $parser = MIME::Parser->new(); + $self->_SetupMIMEParser($parser); + + + # TODO: XXX 3.0 we really need to wrap this in an eval { } + unless ( $self->{'entity'} = $parser->parse_data($message) ) { + # Try again, this time without extracting nested messages + $parser->extract_nested_messages(0); + unless ( $self->{'entity'} = $parser->parse_data($message) ) { + $RT::Logger->crit("couldn't parse MIME stream"); + return ( undef); + } + } + $self->_PostProcessNewEntity(); + return (1); +} + +# {{{ ParseMIMEEntityFromFilehandle *FH + +=head2 ParseMIMEEntityFromFilehandle *FH + +Parses a mime entity from a filehandle passed in as an argument + +=cut + +sub ParseMIMEEntityFromFileHandle { + my $self = shift; + my $filehandle = shift; + + # Create a new parser object: + + my $parser = MIME::Parser->new(); + $self->_SetupMIMEParser($parser); + + + # TODO: XXX 3.0 we really need to wrap this in an eval { } + + unless ( $self->{'entity'} = $parser->parse($filehandle) ) { + + # Try again, this time without extracting nested messages + $parser->extract_nested_messages(0); + unless ( $self->{'entity'} = $parser->parse($filehandle) ) { + $RT::Logger->crit("couldn't parse MIME stream"); + return ( undef); + } + } + $self->_PostProcessNewEntity(); + return (1); +} + +# }}} + +# {{{ _PostProcessNewEntity + +=head2 _PostProcessNewEntity + +cleans up and postprocesses a newly parsed MIME Entity + +=cut + +sub _PostProcessNewEntity { + my $self = shift; + + #Now we've got a parsed mime object. + + # try to convert text parts into utf-8 charset + RT::I18N::SetMIMEEntityToEncoding($self->{'entity'}, 'utf-8'); + + + # Unfold headers that are have embedded newlines + $self->Head->unfold; + + +} + +# }}} + +# {{{ sub ParseTicketId + +sub ParseTicketId { + my $self = shift; + + my $Subject = shift; + + if ( $Subject =~ s/\[$RT::rtname \#(\d+)\s*\]//i ) { + my $id = $1; + $RT::Logger->debug("Found a ticket ID. It's $id"); + return ($id); + } + else { + return (undef); + } +} + +# }}} + +# {{{ sub MailError + +=head2 MailError { } + + +# TODO this doesn't belong here. +# TODO doc this + + +=cut + + +sub MailError { + my $self = shift; + + 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" ); + + my $mimeobj = $args{'MIMEObj'}; + $mimeobj->sync_headers(); + $entity->add_part($mimeobj); + + if ( $RT::MailCommand eq 'sendmailpipe' ) { + open( MAIL, "|$RT::SendmailPath $RT::SendmailArguments" ) || return (0); + print MAIL $entity->as_string; + close(MAIL); + } + else { + $entity->send( $RT::MailCommand, $RT::MailParams ); + } +} + +# }}} + + + +# {{{ sub GetCurrentUser + +sub GetCurrentUser { + my $self = shift; + my $ErrorsTo = shift; + + my %UserInfo = (); + + #Suck the address of the sender out of the header + my ( $Address, $Name ) = $self->ParseSenderAddressFromHead(); + + my $tempuser = RT::User->new($RT::SystemUser); + + #This will apply local address canonicalization rules + $Address = $tempuser->CanonicalizeEmailAddress($Address); + + #If desired, synchronize with an external database + my $UserFoundInExternalDatabase = 0; + + # Username is the 'Name' attribute of the user that RT uses for things + # like authentication + my $Username = undef; + ( $UserFoundInExternalDatabase, %UserInfo ) = + $self->LookupExternalUserInfo( $Address, $Name ); + + $Address = $UserInfo{'EmailAddress'}; + $Username = $UserInfo{'Name'}; + + #Get us a currentuser object to work with. + my $CurrentUser = RT::CurrentUser->new(); + + # First try looking up by a username, if we got one from the external + # db lookup. Next, try looking up by email address. Failing that, + # try looking up by users who have this user's email address as their + # username. + + if ($Username) { + $CurrentUser->LoadByName($Username); + } + + unless ( $CurrentUser->Id ) { + $CurrentUser->LoadByEmail($Address); + } + + #If we can't get it by email address, try by name. + unless ( $CurrentUser->Id ) { + $CurrentUser->LoadByName($Address); + } + + unless ( $CurrentUser->Id ) { + + #If we couldn't load a user, determine whether to create a user + + # {{{ If we require an incoming address to be found in the external + # user database, reject the incoming message appropriately + if ( $RT::SenderMustExistInExternalDatabase + && !$UserFoundInExternalDatabase ) { + + my $Message = + "Sender's email address was not found in the user database."; + + # {{{ This code useful only if you've defined an AutoRejectRequest template + + require RT::Template; + my $template = new RT::Template($RT::Nobody); + $template->Load('AutoRejectRequest'); + $Message = $template->Content || $Message; + + # }}} + + MailError( + To => $ErrorsTo, + Subject => "Ticket Creation failed: user could not be created", + Explanation => $Message, + MIMEObj => $self->Entity, + LogLevel => 'notice' ); + + return ($CurrentUser); + + } + + # }}} + + else { + 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' + ); + + unless ($Val) { + + # Deal with the race condition of two account creations at once + # + if ($Username) { + $NewUser->LoadByName($Username); + } + + 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 => $self->Entity, + LogLevel => 'crit' ); + } + } + } + + #Load the new user object + $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 => $self->Entity, + LogLevel => 'crit' ); + + } + } + + return ($CurrentUser); + +} + +# }}} + + +# {{{ ParseCcAddressesFromHead + +=head2 ParseCcAddressesFromHead HASHREF + +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 $RTAddressRegexp matches. + +=cut + +sub ParseCcAddressesFromHead { + + my $self = shift; + + my %args = ( + QueueObj => undef, + CurrentUser => undef, + @_ + ); + + my (@Addresses); + + my @ToObjs = Mail::Address->parse( $self->Head->get('To') ); + my @CcObjs = Mail::Address->parse( $self->Head->get('Cc') ); + + foreach my $AddrObj ( @ToObjs, @CcObjs ) { + my $Address = $AddrObj->address; + my $user = RT::User->new($RT::SystemUser); + $Address = $user->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 ( IsRTAddress($Address) ); + + push ( @Addresses, $Address ); + } + return (@Addresses); +} + +# }}} + +# {{{ ParseSenderAdddressFromHead + +=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 $self = shift; + + #Figure out who's sending this message. + my $From = $self->Head->get('Reply-To') + || $self->Head->get('From') + || $self->Head->get('Sender'); + return ( $self->ParseAddressFromHeader($From) ); +} + +# }}} + +# {{{ ParseErrorsToAdddressFromHead + +=head2 ParseErrorsToAddressFromHead + +Takes a MIME::Header object. Return a single value : user@host +of the From (evaluated in order of Errors-To:,Reply-To:, From:, Sender) + +=cut + +sub ParseErrorsToAddressFromHead { + my $self = 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 = $self->Head->get($header); + if ($headerobj) { + my ( $addr, $name ) = $self->ParseAddressFromHeader($headerobj); + + # If it's got actual useful content... + return ($addr) if ($addr); + } + } +} + +# }}} + +# {{{ ParseAddressFromHeader + +=head2 ParseAddressFromHeader ADDRESS + +Takes an address from $self->Head->get('Line') and returns a tuple: user@host, friendly name + +=cut + +sub ParseAddressFromHeader { + my $self = shift; + my $Addr = shift; + + my @Addresses = Mail::Address->parse($Addr); + + my $AddrObj = $Addresses[0]; + + unless ( ref($AddrObj) ) { + return ( undef, undef ); + } + + my $Name = ( $AddrObj->phrase || $AddrObj->comment || $AddrObj->address ); + + #Lets take the from and load a user object. + my $Address = $AddrObj->address; + + return ( $Address, $Name ); +} + +# }}} + +# {{{ IsRTAddress + +=item IsRTaddress ADDRESS + +Takes a single parameter, an email address. +Returns true if that address matches the $RTAddressRegexp. +Returns false, otherwise. + +=begin testing + +is(RT::EmailParser::IsRTAddress("","rt\@example.com"),1, "Regexp matched rt address" ); +is(RT::EmailParser::IsRTAddress("","frt\@example.com"),undef, "Regexp didn't match non-rt address" ); + +=end testing + +=cut + +sub IsRTAddress { + my $self = shift; + my $address = shift; + + # Example: the following rule would tell RT not to Cc + # "tickets@noc.example.com" + if ( defined($RT::RTAddressRegexp) && + $address =~ /$RT::RTAddressRegexp/ ) { + return(1); + } else { + return (undef); + } +} + +# }}} + + +# {{{ CullRTAddresses + +=item CullRTAddresses ARRAY + +Takes a single argument, an array of email addresses. +Returns the same array with any IsRTAddress()es weeded out. + +=begin testing + +@before = ("rt\@example.com", "frt\@example.com"); +@after = ("frt\@example.com"); +ok(eq_array(RT::EmailParser::CullRTAddresses("",@before),@after), "CullRTAddresses only culls RT addresses"); + +=end testing + +=cut + +sub CullRTAddresses { + my $self = shift; + my @addresses= (@_); + my @addrlist; + + foreach my $addr( @addresses ) { + push (@addrlist, $addr) unless IsRTAddress("", $addr); + } + return (@addrlist); +} + +# }}} + + +# {{{ LookupExternalUserInfo + + +# LookupExternalUserInfo is a site-definable method for synchronizing +# incoming users with an external data source. +# +# This routine takes a tuple of EmailAddress and FriendlyName +# EmailAddress is the user's email address, ususally taken from +# an email message's From: header. +# FriendlyName is a freeform string, ususally taken from the "comment" +# portion of an email message's From: header. +# +# If you define an AutoRejectRequest template, RT will use this +# template for the rejection message. + + +=item LookupExternalUserInfo + + LookupExternalUserInfo is a site-definable method for synchronizing + incoming users with an external data source. + + This routine takes a tuple of EmailAddress and FriendlyName + EmailAddress is the user's email address, ususally taken from + an email message's From: header. + FriendlyName is a freeform string, ususally taken from the "comment" + portion of an email message's From: header. + + It returns (FoundInExternalDatabase, ParamHash); + + FoundInExternalDatabase must be set to 1 before return if the user was + found in the external database. + + ParamHash is a Perl parameter hash which can contain at least the following + fields. These fields are used to populate RT's users database when the user + is created + + EmailAddress is the email address that RT should use for this user. + Name is the 'Name' attribute RT should use for this user. + 'Name' is used for things like access control and user lookups. + RealName is what RT should display as the user's name when displaying + 'friendly' names + +=cut + +sub LookupExternalUserInfo { + my $self = shift; + my $EmailAddress = shift; + my $RealName = shift; + + my $FoundInExternalDatabase = 1; + my %params; + + #Name is the RT username you want to use for this user. + $params{'Name'} = $EmailAddress; + $params{'EmailAddress'} = $EmailAddress; + $params{'RealName'} = $RealName; + + # See RT's contributed code for examples. + # http://www.fsck.com/pub/rt/contrib/ + return ($FoundInExternalDatabase, %params); +} + +# }}} + +# {{{ Accessor methods for parsed email messages + +=head2 Head + +Return the parsed head from this message + +=cut + +sub Head { + my $self = shift; + return $self->Entity->head; +} + +=head2 Entity + +Return the parsed Entity from this message + +=cut + +sub Entity { + my $self = shift; + return $self->{'entity'}; +} + +# }}} +# {{{ _SetupMIMEParser + +=head2 _SetupMIMEParser $parser + +A private instance method which sets up a mime parser to do its job + +=cut + + + ## TODO: Does it make sense storing to disk at all? After all, we + ## need to put each msg as an in-core scalar before saving it to + ## the database, don't we? + + ## At the same time, we should make sure that we nuke attachments + ## Over max size and return them + +sub _SetupMIMEParser { + my $self = shift; + my $parser = shift; + my $AttachmentDir = File::Temp::tempdir( TMPDIR => 1, CLEANUP => 1 ); + + # Set up output directory for files: + $parser->output_dir("$AttachmentDir"); + + #If someone includes a message, don't extract it + $parser->extract_nested_messages(1); + + # Set up the prefix for files with auto-generated names: + $parser->output_prefix("part"); + + # If content length is <= 50000 bytes, store each msg as in-core scalar; + # Else, write to a disk file (the default action): + + $parser->output_to_core(50000); +} +# }}} + +eval "require RT::EmailParser_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/EmailParser_Vendor.pm}); +eval "require RT::EmailParser_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/EmailParser_Local.pm}); + +1; diff --git a/rt/lib/RT/Group.pm b/rt/lib/RT/Group.pm index 005601f5e..4dcef3f07 100755 --- a/rt/lib/RT/Group.pm +++ b/rt/lib/RT/Group.pm @@ -1,364 +1,258 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Group.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 2000 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! # +use strict; + + =head1 NAME - RT::Group - RT\'s group object +RT::Group -=head1 SYNOPSIS - use RT::Group; -my $group = new RT::Group($CurrentUser); +=head1 SYNOPSIS =head1 DESCRIPTION -An RT group object. +=head1 METHODS -=head1 AUTHOR +=cut -Jesse Vincent, jesse@fsck.com +package RT::Group; +use RT::Record; -=head1 SEE ALSO -RT +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -=head1 METHODS +sub _Init { + my $self = shift; + $self->Table('Groups'); + $self->SUPER::_Init(@_); +} -=begin testing -ok (require RT::TestHarness); -ok (require RT::Group); -=end testing -=cut +=item Create PARAMHASH -package RT::Group; -use RT::Record; -use RT::GroupMember; -use RT::ACE; +Create takes a hash of values and creates a row in the database: -use vars qw|@ISA|; -@ISA= qw(RT::Record); + varchar(200) 'Name'. + varchar(255) 'Description'. + varchar(64) 'Domain'. + varchar(64) 'Type'. + varchar(64) 'Instance'. + +=cut -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Groups"; - return ($self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub _Accessible -sub _Accessible { + +sub Create { my $self = shift; - my %Cols = ( - Name => 'read/write', - Description => 'read/write', - Pseudo => 'read' - ); - return $self->SUPER::_Accessible(@_, %Cols); + my %args = ( + Name => '', + Description => '', + Domain => '', + Type => '', + Instance => '', + + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Description => $args{'Description'}, + Domain => $args{'Domain'}, + Type => $args{'Type'}, + Instance => $args{'Instance'}, +); + } -# }}} -# {{{ sub Load -=head2 Load -Load a group object from the database. Takes a single argument. -If the argument is numerical, load by the column 'id'. Otherwise, load by -the "Name" column which is the group's textual name +=item id -=cut +Returns the current value of id. +(In the database, id is stored as int(11).) -sub Load { - my $self = shift; - my $identifier = shift || return undef; - - #if it's an int, load by id. otherwise, load by name. - if ($identifier !~ /\D/) { - $self->SUPER::LoadById($identifier); - } - else { - $self->LoadByCol("Name",$identifier); - } -} -# }}} +=cut -# {{{ sub Create -=head2 Create +=item Name -Takes a paramhash with three named arguments: Name, Description and Pseudo. -Pseudo is used internally by RT for certain special ACL decisions. +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) -=cut -sub Create { - my $self = shift; - my %args = ( Name => undef, - Description => undef, - Pseudo => 0, - @_); - - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - $RT::Logger->warning($self->CurrentUser->Name ." Tried to create a group without permission."); - return(0, 'Permission Denied'); - } - - my $retval = $self->SUPER::Create(Name => $args{'Name'}, - Description => $args{'Description'}, - Pseudo => $args{'Pseudo'}); - - return ($retval); -} -# }}} +=item SetName VALUE -# {{{ sub Delete -=head2 Delete +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) -Delete this object =cut -sub Delete { - my $self = shift; - - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - return (0, 'Permission Denied'); - } - - return($self->SUPER::Delete(@_)); -} -# }}} +=item Description -# {{{ MembersObj +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) -=head2 MembersObj -Returns an RT::GroupMembers object of this group's members. + +=item SetDescription VALUE + + +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) + =cut -sub MembersObj { - my $self = shift; - unless (defined $self->{'members_obj'}) { - use RT::GroupMembers; - $self->{'members_obj'} = new RT::GroupMembers($self->CurrentUser); - - #If we don't have rights, don't include any results - $self->{'members_obj'}->LimitToGroup($self->id); - - } - return ($self->{'members_obj'}); - -} -# }}} +=item Domain + +Returns the current value of Domain. +(In the database, Domain is stored as varchar(64).) + -# {{{ AddMember -=head2 AddMember +=item SetDomain VALUE + + +Set Domain to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Domain will be stored as a varchar(64).) -AddMember adds a user to this group. It takes a user id. -Returns a two value array. the first value is true on successful -addition or 0 on failure. The second value is a textual status msg. =cut -sub AddMember { - my $self = shift; - my $new_member = shift; - - my $new_member_obj = new RT::User($self->CurrentUser); - $new_member_obj->Load($new_member); - - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - #User has no permission to be doing this - return(0, "Permission Denied"); - } - - unless ($new_member_obj->Id) { - $RT::Logger->debug("Couldn't find user $new_member"); - return(0, "Couldn't find user"); - } - - if ($self->HasMember($new_member_obj->Id)) { - #User is already a member of this group. no need to add it - return(0, "Group already has member"); - } - - my $member_object = new RT::GroupMember($self->CurrentUser); - $member_object->Create( UserId => $new_member_obj->Id, - GroupId => $self->id ); - return(1, "Member added"); -} -# }}} +=item Type + +Returns the current value of Type. +(In the database, Type is stored as varchar(64).) + + + +=item SetType VALUE -# {{{ HasMember -=head2 HasMember +Set Type to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Type will be stored as a varchar(64).) -Takes a user Id and returns a GroupMember Id if that user is a member of -this group. -Returns undef if the user isn't a member of the group or if the current -user doesn't have permission to find out. Arguably, it should differentiate -between ACL failure and non membership. =cut -sub HasMember { - my $self = shift; - my $user_id = shift; - #Try to cons up a member object using "LoadByCols" +=item Instance - my $member_obj = new RT::GroupMember($self->CurrentUser); - $member_obj->LoadByCols( UserId => $user_id, GroupId => $self->id); +Returns the current value of Instance. +(In the database, Instance is stored as varchar(64).) - #If we have a member object - if (defined $member_obj->id) { - return ($member_obj->id); - } - #If Load returns no objects, we have an undef id. - else { - return(undef); - } -} -# }}} +=item SetInstance VALUE -# {{{ DeleteMember -=head2 DeleteMember +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 varchar(64).) -Takes the user id of a member. -If the current user has apropriate rights, -removes that GroupMember from this group. -Returns a two value array. the first value is true on successful -addition or 0 on failure. The second value is a textual status msg. =cut -sub DeleteMember { - my $self = shift; - my $member = shift; - - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - #User has no permission to be doing this - return(0,"Permission Denied"); - } - - my $member_user_obj = new RT::User($self->CurrentUser); - $member_user_obj->Load($member); - - unless ($member_user_obj->Id) { - $RT::Logger->debug("Couldn't find user $member"); - return(0, "User not found"); - } - - my $member_obj = new RT::GroupMember($self->CurrentUser); - unless ($member_obj->LoadByCols ( UserId => $member_user_obj->Id, - GroupId => $self->Id )) { - return(0, "Couldn\'t load member"); #couldn\'t load member object - } - - #If we couldn't load it, return undef. - unless ($member_obj->Id()) { - return (0, "Group has no such member"); - } - - #Now that we've checked ACLs and sanity, delete the groupmember - my $val = $member_obj->Delete(); - if ($val) { - return ($val, "Member deleted"); - } - else { - return (0, "Member not deleted"); - } -} -# }}} -# {{{ ACL Related routines +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + Domain => + {read => 1, write => 1, type => 'varchar(64)', default => ''}, + Type => + {read => 1, write => 1, type => 'varchar(64)', default => ''}, + Instance => + {read => 1, write => 1, type => 'varchar(64)', default => ''}, -# {{{ GrantQueueRight + } +}; -=head2 GrantQueueRight -Grant a queue right to this group. Takes a paramhash of which the elements -RightAppliesTo and RightName are important. + eval "require RT::Group_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Group_Overlay.pm}) { + die $@; + }; -=cut + eval "require RT::Group_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Group_Vendor.pm}) { + die $@; + }; -sub GrantQueueRight { - - my $self = shift; - my %args = ( RightScope => 'Queue', - RightName => undef, - RightAppliesTo => undef, - PrincipalType => 'Group', - PrincipalId => $self->Id, - @_); - - #ACLs get checked in ACE.pm - - my $ace = new RT::ACE($self->CurrentUser); - - return ($ace->Create(%args)); -} + eval "require RT::Group_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Group_Local.pm}) { + die $@; + }; -# }}} -# {{{ GrantSystemRight -=head2 GrantSystemRight -Grant a system right to this group. -The only element that's important to set is RightName. +=head1 SEE ALSO -=cut -sub GrantSystemRight { - - my $self = shift; - my %args = ( RightScope => 'System', - RightName => undef, - RightAppliesTo => 0, - PrincipalType => 'Group', - PrincipalId => $self->Id, - @_); - - # ACLS get checked in ACE.pm - - my $ace = new RT::ACE($self->CurrentUser); - return ($ace->Create(%args)); -} +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); -# {{{ sub _Set -sub _Set { - my $self = shift; +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - return (0, 'Permission Denied'); - } +RT::Group_Overlay, RT::Group_Vendor, RT::Group_Local - return ($self->SUPER::_Set(@_)); +=cut -} -# }}} + +1; diff --git a/rt/lib/RT/GroupMember.pm b/rt/lib/RT/GroupMember.pm index 69de50b42..8de1a73fe 100755 --- a/rt/lib/RT/GroupMember.pm +++ b/rt/lib/RT/GroupMember.pm @@ -1,136 +1,189 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/GroupMember.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 2000 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::GroupMember - a member of an RT Group +RT::GroupMember -=head1 SYNOPSIS -RT::GroupMember should never be called directly. It should generally -only be accessed through the helper functions in RT::Group; +=head1 SYNOPSIS =head1 DESCRIPTION +=head1 METHODS +=cut +package RT::GroupMember; +use RT::Record; -=head1 METHODS +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -=begin testing +sub _Init { + my $self = shift; -ok (require RT::TestHarness); -ok (require RT::GroupMember); + $self->Table('GroupMembers'); + $self->SUPER::_Init(@_); +} -=end testing -=cut -package RT::GroupMember; -use RT::Record; -use vars qw|@ISA|; -@ISA= qw(RT::Record); -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "GroupMembers"; - return($self->SUPER::_Init(@_)); -} -# }}} +=item Create PARAMHASH -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - GroupId => 'read', - UserId => 'read' - ); +Create takes a hash of values and creates a row in the database: + + int(11) 'GroupId'. + int(11) 'MemberId'. + +=cut - return $self->SUPER::_Accessible(@_, %Cols); -} -# }}} -# {{{ sub Create -# a helper method for Add sub Create { my $self = shift; - my %args = ( GroupId => undef, - UserId => undef, - @_ - ); - - unless( $self->CurrentUser->HasSystemRight('AdminGroups')) { - return (0, 'Permission Denied'); - } - - return ($self->SUPER::Create(GroupId => $args{'GroupId'}, - UserId => $args{'UserId'})) + my %args = ( + GroupId => '0', + MemberId => '0', + + @_); + $self->SUPER::Create( + GroupId => $args{'GroupId'}, + MemberId => $args{'MemberId'}, +); + } -# }}} -# {{{ sub Add -=head2 Add -Takes a paramhash of UserId and GroupId. makes that user a memeber -of that group +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + =cut -sub Add { - my $self = shift; - return ($self->Create(@_)); -} -# }}} -# {{{ sub Delete +=item GroupId + +Returns the current value of GroupId. +(In the database, GroupId is stored as int(11).) + + + +=item SetGroupId VALUE + -=head2 Delete +Set GroupId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, GroupId will be stored as a int(11).) -Takes no arguments. deletes the currently loaded member from the -group in question. =cut -sub Delete { - my $self = shift; - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - return (0, 'Permission Denied'); - } - return($self->SUPER::Delete(@_)); -} -# }}} +=item MemberId + +Returns the current value of MemberId. +(In the database, MemberId is stored as int(11).) + -# {{{ sub UserObj -=head2 UserObj +=item SetMemberId VALUE + + +Set MemberId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, MemberId will be stored as a int(11).) -Returns an RT::User object for the user specified by $self->UserId =cut -sub UserObj { - my $self = shift; - unless (defined ($self->{'user_obj'})) { - $self->{'user_obj'} = new RT::User($self->CurrentUser); - $self->{'user_obj'}->Load($self->UserId); - } - return($self->{'user_obj'}); -} -# {{{ sub _Set -sub _Set { - my $self = shift; - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - return (0, 'Permission Denied'); - } - return($self->SUPER::_Set(@_)); -} -# }}} + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + GroupId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + MemberId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + + } +}; + + + eval "require RT::GroupMember_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMember_Overlay.pm}) { + die $@; + }; + + eval "require RT::GroupMember_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMember_Vendor.pm}) { + die $@; + }; + + eval "require RT::GroupMember_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMember_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::GroupMember_Overlay, RT::GroupMember_Vendor, RT::GroupMember_Local + +=cut + + +1; diff --git a/rt/lib/RT/GroupMember_Overlay.pm b/rt/lib/RT/GroupMember_Overlay.pm new file mode 100644 index 000000000..20949f017 --- /dev/null +++ b/rt/lib/RT/GroupMember_Overlay.pm @@ -0,0 +1,351 @@ +# 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. +# +# 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::GroupMember - a member of an RT Group + +=head1 SYNOPSIS + +RT::GroupMember should never be called directly. It should ONLY +only be accessed through the helper functions in RT::Group; + +If you're operating on an RT::GroupMember object yourself, you B<ARE> +doing something wrong. + +=head1 DESCRIPTION + + + + +=head1 METHODS + + +=begin testing + +ok (require RT::GroupMember); + +=end testing + + +=cut + +use strict; +no warnings qw(redefine); +use RT::CachedGroupMembers; + +# {{{ sub Create + +=head2 Create { Group => undef, Member => undef } + +Add a Principal to the group Group. +if the Principal is a group, automatically inserts all +members of the principal into the cached members table recursively down. + +Both Group and Member are expected to be RT::Principal objects + +=cut + +sub Create { + my $self = shift; + my %args = ( + Group => undef, + Member => undef, + InsideTransaction => undef, + @_ + ); + + unless ($args{'Group'} && + UNIVERSAL::isa($args{'Group'}, 'RT::Principal') && + $args{'Group'}->Id ) { + + $RT::Logger->warning("GroupMember::Create called with a bogus Group arg"); + return (undef); + } + + unless($args{'Group'}->IsGroup) { + $RT::Logger->warning("Someone tried to add a member to a user instead of a group"); + return (undef); + } + + unless ($args{'Member'} && + UNIVERSAL::isa($args{'Member'}, 'RT::Principal') && + $args{'Member'}->Id) { + $RT::Logger->warning("GroupMember::Create called with a bogus Principal arg"); + return (undef); + } + + + #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. + # TODO what about the groups key cache? + RT::Principal->_InvalidateACLCache(); + + $RT::Handle->BeginTransaction() unless ($args{'InsideTransaction'}); + + # We really need to make sure we don't add any members to this group + # that contain the group itself. that would, um, suck. + # (and recurse infinitely) Later, we can add code to check this in the + # cache and bail so we can support cycling directed graphs + + if ($args{'Member'}->IsGroup) { + my $member_object = $args{'Member'}->Object; + if ($member_object->HasMemberRecursively($args{'Group'})) { + $RT::Logger->debug("Adding that group would create a loop"); + return(undef); + } + elsif ( $args{'Member'}->Id == $args{'Group'}->Id) { + $RT::Logger->debug("Can't add a group to itself"); + return(undef); + } + } + + + my $id = $self->SUPER::Create( + GroupId => $args{'Group'}->Id, + MemberId => $args{'Member'}->Id + ); + + unless ($id) { + $RT::Handle->Rollback() unless ($args{'InsideTransaction'}); + return (undef); + } + + my $cached_member = RT::CachedGroupMember->new( $self->CurrentUser ); + my $cached_id = $cached_member->Create( + Member => $args{'Member'}, + Group => $args{'Group'}, + ImmediateParent => $args{'Group'}, + Via => '0' + ); + + + #When adding a member to a group, we need to go back + #and popuplate the CachedGroupMembers of all the groups that group is part of . + + my $cgm = RT::CachedGroupMembers->new( $self->CurrentUser ); + + # find things which have the current group as a member. + # $group is an RT::Principal for the group. + $cgm->LimitToGroupsWithMember( $args{'Group'}->Id ); + + while ( my $parent_member = $cgm->Next ) { + my $parent_id = $parent_member->MemberId; + my $via = $parent_member->Id; + my $group_id = $parent_member->GroupId; + + my $other_cached_member = + RT::CachedGroupMember->new( $self->CurrentUser ); + my $other_cached_id = $other_cached_member->Create( + Member => $args{'Member'}, + Group => $parent_member->GroupObj, + ImmediateParent => $parent_member->MemberObj, + Via => $parent_member->Id + ); + unless ($other_cached_id) { + $RT::Logger->err( "Couldn't add " . $args{'Member'} + . " as a submember of a supergroup" ); + $RT::Handle->Rollback() unless ($args{'InsideTransaction'}); + return (undef); + } + } + + unless ($cached_id) { + $RT::Handle->Rollback() unless ($args{'InsideTransaction'}); + return (undef); + } + + $RT::Handle->Commit() unless ($args{'InsideTransaction'}); + + return ($id); +} + +# }}} + +# {{{ sub _StashUser + +=head2 _StashUser PRINCIPAL + +Create { Group => undef, Member => undef } + +Creates an entry in the groupmembers table, which lists a user +as a member of himself. This makes ACL checks a whole bunch easier. +This happens once on user create and never ever gets yanked out. + +PRINCIPAL is expected to be an RT::Principal object for a user + +This routine expects to be called inside a transaction by RT::User->Create + +=cut + +sub _StashUser { + my $self = shift; + my %args = ( + Group => undef, + Member => undef, + @_ + ); + + #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. + # TODO what about the groups key cache? + RT::Principal->_InvalidateACLCache(); + + + # We really need to make sure we don't add any members to this group + # that contain the group itself. that would, um, suck. + # (and recurse infinitely) Later, we can add code to check this in the + # cache and bail so we can support cycling directed graphs + + my $id = $self->SUPER::Create( + GroupId => $args{'Group'}->Id, + MemberId => $args{'Member'}->Id, + ); + + unless ($id) { + return (undef); + } + + my $cached_member = RT::CachedGroupMember->new( $self->CurrentUser ); + my $cached_id = $cached_member->Create( + Member => $args{'Member'}, + Group => $args{'Group'}, + ImmediateParent => $args{'Group'}, + Via => '0' + ); + + unless ($cached_id) { + return (undef); + } + + return ($id); +} + +# }}} + +# {{{ sub Delete + +=head2 Delete + +Takes no arguments. deletes the currently loaded member from the +group in question. + +Expects to be called _outside_ a transaction + +=cut + +sub Delete { + my $self = shift; + + + $RT::Handle->BeginTransaction(); + + # Find all occurrences of this member as a member of this group + # in the cache and nuke them, recursively. + + # The following code will delete all Cached Group members + # where this member's group is _not_ the primary group + # (Ie if we're deleting C as a member of B, and B happens to be + # a member of A, will delete C as a member of A without touching + # C as a member of B + + my $cached_submembers = RT::CachedGroupMembers->new( $self->CurrentUser ); + + $cached_submembers->Limit( + FIELD => 'MemberId', + OPERATOR => '=', + VALUE => $self->MemberObj->Id + ); + + $cached_submembers->Limit( + FIELD => 'ImmediateParentId', + OPERATOR => '=', + VALUE => $self->GroupObj->Id + ); + + #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. + # TODO what about the groups key cache? + RT::Principal->_InvalidateACLCache(); + + + + + while ( my $item_to_del = $cached_submembers->Next() ) { + my $del_err = $item_to_del->Delete(); + unless ($del_err) { + $RT::Handle->Rollback(); + $RT::Logger->warning("Couldn't delete cached group submember ".$item_to_del->Id); + return (undef); + } + } + + my $err = $self->SUPER::Delete(); + unless ($err) { + $RT::Logger->warning("Couldn't delete cached group submember ".$self->Id); + $RT::Handle->Rollback(); + return (undef); + } + $RT::Handle->Commit(); + return ($err); + +} + +# }}} + +# {{{ sub MemberObj + +=head2 MemberObj + +Returns an RT::Principal object for the Principal specified by $self->PrincipalId + +=cut + +sub MemberObj { + my $self = shift; + unless ( defined( $self->{'Member_obj'} ) ) { + $self->{'Member_obj'} = RT::Principal->new( $self->CurrentUser ); + $self->{'Member_obj'}->Load( $self->MemberId ); + } + return ( $self->{'Member_obj'} ); +} + +# }}} + +# {{{ sub GroupObj + +=head2 GroupObj + +Returns an RT::Principal object for the Group specified in $self->GroupId + +=cut + +sub GroupObj { + my $self = shift; + unless ( defined( $self->{'Group_obj'} ) ) { + $self->{'Group_obj'} = RT::Principal->new( $self->CurrentUser ); + $self->{'Group_obj'}->Load( $self->GroupId ); + } + return ( $self->{'Group_obj'} ); +} + +# }}} + +1; diff --git a/rt/lib/RT/GroupMembers.pm b/rt/lib/RT/GroupMembers.pm index a90a2a899..31cb9536f 100755 --- a/rt/lib/RT/GroupMembers.pm +++ b/rt/lib/RT/GroupMembers.pm @@ -1,73 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/GroupMembers.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::GroupMembers - a collection of RT::GroupMember objects +=head1 NAME + RT::GroupMembers -- Class Description + =head1 SYNOPSIS - use RT::GroupMembers; + use RT::GroupMembers =head1 DESCRIPTION =head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::GroupMembers); - -=end testing - =cut package RT::GroupMembers; -use RT::EasySearch; + +use RT::SearchBuilder; use RT::GroupMember; -@ISA= qw(RT::EasySearch); +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'table'} = "GroupMembers"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_) ); +sub _Init { + my $self = shift; + $self->{'table'} = 'GroupMembers'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub LimitToGroup -=head2 LimitToGroup +=item NewItem -Takes a group id as its only argument. Limits the current search to that -group object +Returns an empty new RT::GroupMember item =cut -sub LimitToGroup { +sub NewItem { my $self = shift; - my $group = shift; + return(RT::GroupMember->new($self->CurrentUser)); +} - return ($self->Limit( - VALUE => "$group", - FIELD => 'GroupId', - ENTRYAGGREGATOR => 'OR', - )); + eval "require RT::GroupMembers_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMembers_Overlay.pm}) { + die $@; + }; -} -# }}} + eval "require RT::GroupMembers_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMembers_Vendor.pm}) { + die $@; + }; -# {{{ sub NewItem + eval "require RT::GroupMembers_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMembers_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::GroupMembers_Overlay, RT::GroupMembers_Vendor, RT::GroupMembers_Local + +=cut -sub NewItem { - my $self = shift; - return(RT::GroupMember->new($self->CurrentUser)) -} -# }}} 1; diff --git a/rt/lib/RT/GroupMembers_Overlay.pm b/rt/lib/RT/GroupMembers_Overlay.pm new file mode 100644 index 000000000..1259fd61a --- /dev/null +++ b/rt/lib/RT/GroupMembers_Overlay.pm @@ -0,0 +1,126 @@ +# 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. +# +# 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::GroupMembers - a collection of RT::GroupMember objects + +=head1 SYNOPSIS + + use RT::GroupMembers; + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::GroupMembers); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +# {{{ LimitToUsers + +=head2 LimitToUsers + +Limits this search object to users who are members of this group. +This is really useful when you want to haave your UI seperate out +groups from users for display purposes + +=cut + +sub LimitToUsers { + my $self = shift; + + my $principals = $self->NewAlias('Principals'); + $self->Join( ALIAS1 => 'main', FIELD1 => 'MemberId', + ALIAS2 => $principals, FIELD2 =>'id'); + + $self->Limit( ALIAS => $principals, + FIELD => 'PrincipalType', + VALUE => 'User', + ENTRYAGGREGATOR => 'OR', + ); +} + +# }}} + + +# {{{ LimitToGroups + +=head2 LimitToGroups + +Limits this search object to Groups who are members of this group. +This is really useful when you want to haave your UI seperate out +groups from users for display purposes + +=cut + +sub LimitToGroups { + my $self = shift; + + my $principals = $self->NewAlias('Principals'); + $self->Join( ALIAS1 => 'main', FIELD1 => 'MemberId', + ALIAS2 => $principals, FIELD2 =>'id'); + + $self->Limit( ALIAS => $principals, + FIELD => 'PrincipalType', + VALUE => 'Group', + ENTRYAGGREGATOR => 'OR', + ); +} + +# }}} + +# {{{ sub LimitToMembersOfGroup + +=head2 LimitToMembersOfGroup PRINCIPAL_ID + +Takes a Principal Id as its only argument. +Limits the current search principals which are _directly_ members +of the group which has PRINCIPAL_ID as its principal id. + +=cut + +sub LimitToMembersOfGroup { + my $self = shift; + my $group = shift; + + return ($self->Limit( + VALUE => $group, + FIELD => 'GroupId', + ENTRYAGGREGATOR => 'OR', + QUOTEVALUE => 0 + )); + +} +# }}} + +1; diff --git a/rt/lib/RT/Group_Overlay.pm b/rt/lib/RT/Group_Overlay.pm new file mode 100644 index 000000000..92150255f --- /dev/null +++ b/rt/lib/RT/Group_Overlay.pm @@ -0,0 +1,1260 @@ +# 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. +# +# 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 +# Released under the terms of version 2 of the GNU Public License + +=head1 NAME + + RT::Group - RT\'s group object + +=head1 SYNOPSIS + + use RT::Group; +my $group = new RT::Group($CurrentUser); + +=head1 DESCRIPTION + +An RT group object. + +=head1 AUTHOR + +Jesse Vincent, jesse@bestpractical.com + +=head1 SEE ALSO + +RT + +=head1 METHODS + + +=begin testing + +# {{{ Tests +ok (require RT::Group); + +ok (my $group = RT::Group->new($RT::SystemUser), "instantiated a group object"); +ok (my ($id, $msg) = $group->CreateUserDefinedGroup( Name => 'TestGroup', Description => 'A test group', + ), 'Created a new group'); +ok ($id != 0, "Group id is $id"); +ok ($group->Name eq 'TestGroup', "The group's name is 'TestGroup'"); +my $ng = RT::Group->new($RT::SystemUser); + +ok($ng->LoadUserDefinedGroup('TestGroup'), "Loaded testgroup"); +ok(($ng->id == $group->id), "Loaded the right group"); + + +ok (($id,$msg) = $ng->AddMember('1'), "Added a member to the group"); +ok($id, $msg); +ok (($id,$msg) = $ng->AddMember('2' ), "Added a member to the group"); +ok($id, $msg); +ok (($id,$msg) = $ng->AddMember('3' ), "Added a member to the group"); +ok($id, $msg); + +# Group 1 now has members 1, 2 ,3 + +my $group_2 = RT::Group->new($RT::SystemUser); +ok (my ($id_2, $msg_2) = $group_2->CreateUserDefinedGroup( Name => 'TestGroup2', Description => 'A second test group'), , 'Created a new group'); +ok ($id_2 != 0, "Created group 2 ok- $msg_2 "); +ok (($id,$msg) = $group_2->AddMember($ng->PrincipalId), "Made TestGroup a member of testgroup2"); +ok($id, $msg); +ok (($id,$msg) = $group_2->AddMember('1' ), "Added member RT_System to the group TestGroup2"); +ok($id, $msg); + +# Group 2 how has 1, g1->{1, 2,3} + +my $group_3 = RT::Group->new($RT::SystemUser); +ok (($id_3, $msg) = $group_3->CreateUserDefinedGroup( Name => 'TestGroup3', Description => 'A second test group'), 'Created a new group'); +ok ($id_3 != 0, "Created group 3 ok - $msg"); +ok (($id,$msg) =$group_3->AddMember($group_2->PrincipalId), "Made TestGroup a member of testgroup2"); +ok($id, $msg); + +# g3 now has g2->{1, g1->{1,2,3}} + +my $principal_1 = RT::Principal->new($RT::SystemUser); +$principal_1->Load('1'); + +my $principal_2 = RT::Principal->new($RT::SystemUser); +$principal_2->Load('2'); + +ok (($id,$msg) = $group_3->AddMember('1' ), "Added member RT_System to the group TestGroup2"); +ok($id, $msg); + +# g3 now has 1, g2->{1, g1->{1,2,3}} + +ok($group_3->HasMember($principal_2) == undef, "group 3 doesn't have member 2"); +ok($group_3->HasMemberRecursively($principal_2), "group 3 has member 2 recursively"); +ok($ng->HasMember($principal_2) , "group ".$ng->Id." has member 2"); +my ($delid , $delmsg) =$ng->DeleteMember($principal_2->Id); +ok ($delid !=0, "Sucessfully deleted it-".$delid."-".$delmsg); + +#Gotta reload the group objects, since we've been messing with various internals. +# we shouldn't need to do this. +#$ng->LoadUserDefinedGroup('TestGroup'); +#$group_2->LoadUserDefinedGroup('TestGroup2'); +#$group_3->LoadUserDefinedGroup('TestGroup'); + +# G1 now has 1, 3 +# Group 2 how has 1, g1->{1, 3} +# g3 now has 1, g2->{1, g1->{1, 3}} + +ok(!$ng->HasMember($principal_2) , "group ".$ng->Id." no longer has member 2"); +ok($group_3->HasMemberRecursively($principal_2) == undef, "group 3 doesn't have member 2"); +ok($group_2->HasMemberRecursively($principal_2) == undef, "group 2 doesn't have member 2"); +ok($ng->HasMember($principal_2) == undef, "group 1 doesn't have member 2");; +ok($group_3->HasMemberRecursively($principal_2) == undef, "group 3 has member 2 recursively"); + +# }}} + +=end testing + + + +=cut + +use strict; +no warnings qw(redefine); + +use RT::Users; +use RT::GroupMembers; +use RT::Principals; +use RT::ACL; + +use vars qw/$RIGHTS/; + +$RIGHTS = { + AdminGroup => 'Modify group metadata or delete group', # loc_pair + AdminGroupMembership => + 'Modify membership roster for this group', # loc_pair + ModifyOwnMembership => 'Join or leave this group' # loc_pair +}; + +# Tell RT::ACE that this sort of object can get acls granted +$RT::ACE::OBJECT_TYPES{'RT::Group'} = 1; + + +# + +# TODO: This should be refactored out into an RT::ACLedObject or something +# stuff the rights into a hash of rights that can exist. + +foreach my $right ( keys %{$RIGHTS} ) { + $RT::ACE::LOWERCASERIGHTNAMES{ lc $right } = $right; +} + + +=head2 AvailableRights + +Returns a hash of available rights for this object. The keys are the right names and the values are a description of what the rights do + +=cut + +sub AvailableRights { + my $self = shift; + return($RIGHTS); +} + + +# {{{ sub SelfDescription + +=head2 SelfDescription + +Returns a user-readable description of what this group is for and what it's named. + +=cut + +sub SelfDescription { + my $self = shift; + if ($self->Domain eq 'ACLEquivalence') { + my $user = RT::Principal->new($self->CurrentUser); + $user->Load($self->Instance); + return $self->loc("user [_1]",$user->Object->Name); + } + elsif ($self->Domain eq 'UserDefined') { + return $self->loc("group '[_1]'",$self->Name); + } + elsif ($self->Domain eq 'Personal') { + my $user = RT::User->new($self->CurrentUser); + $user->Load($self->Instance); + return $self->loc("personal group '[_1]' for user '[_2]'",$self->Name, $user->Name); + } + elsif ($self->Domain eq 'RT::System-Role') { + return $self->loc("system [_1]",$self->Type); + } + elsif ($self->Domain eq 'RT::Queue-Role') { + my $queue = RT::Queue->new($self->CurrentUser); + $queue->Load($self->Instance); + return $self->loc("queue [_1] [_2]",$queue->Name, $self->Type); + } + elsif ($self->Domain eq 'RT::Ticket-Role') { + return $self->loc("ticket #[_1] [_2]",$self->Instance, $self->Type); + } + elsif ($self->Domain eq 'SystemInternal') { + return $self->loc("system group '[_1]'",$self->Type); + } + else { + return $self->loc("undescribed group [_1]",$self->Id); + } +} + +# }}} + +# {{{ sub Load + +=head2 Load ID + +Load a group object from the database. Takes a single argument. +If the argument is numerical, load by the column 'id'. Otherwise, +complain and return. + +=cut + +sub Load { + my $self = shift; + my $identifier = shift || return undef; + + #if it's an int, load by id. otherwise, load by name. + if ( $identifier !~ /\D/ ) { + $self->SUPER::LoadById($identifier); + } + else { + $RT::Logger->crit("Group -> Load called with a bogus argument"); + return undef; + } +} + +# }}} + +# {{{ sub LoadUserDefinedGroup + +=head2 LoadUserDefinedGroup NAME + +Loads a system group from the database. The only argument is +the group's name. + + +=cut + +sub LoadUserDefinedGroup { + my $self = shift; + my $identifier = shift; + + $self->LoadByCols( "Domain" => 'UserDefined', + "Name" => $identifier ); +} + +# }}} + +# {{{ sub LoadACLEquivalenceGroup + +=head2 LoadACLEquivalenceGroup PRINCIPAL + +Loads a user's acl equivalence group. Takes a principal object. +ACL equivalnce groups are used to simplify the acl system. Each user +has one group that only he is a member of. Rights granted to the user +are actually granted to that group. This greatly simplifies ACL checks. +While this results in a somewhat more complex setup when creating users +and granting ACLs, it _greatly_ simplifies acl checks. + + + +=cut + +sub LoadACLEquivalenceGroup { + my $self = shift; + my $princ = shift; + + $self->LoadByCols( "Domain" => 'ACLEquivalence', + "Type" => 'UserEquiv', + "Instance" => $princ->Id); +} + +# }}} + +# {{{ sub LoadPersonalGroup + +=head2 LoadPersonalGroup {Name => NAME, User => USERID} + +Loads a personal group from the database. + +=cut + +sub LoadPersonalGroup { + my $self = shift; + my %args = ( Name => undef, + User => undef, + @_); + + $self->LoadByCols( "Domain" => 'Personal', + "Instance" => $args{'User'}, + "Type" => '', + "Name" => $args{'Name'} ); +} + +# }}} + +# {{{ sub LoadSystemInternalGroup + +=head2 LoadSystemInternalGroup NAME + +Loads a Pseudo group from the database. The only argument is +the group's name. + + +=cut + +sub LoadSystemInternalGroup { + my $self = shift; + my $identifier = shift; + + $self->LoadByCols( "Domain" => 'SystemInternal', + "Instance" => '', + "Name" => '', + "Type" => $identifier ); +} + +# }}} + +# {{{ sub LoadTicketRoleGroup + +=head2 LoadTicketRoleGroup { Ticket => TICKET_ID, Type => TYPE } + +Loads a ticket group from the database. + +Takes a param hash with 2 parameters: + + Ticket is the TicketId we're curious about + Type is the type of Group we're trying to load: + Requestor, Cc, AdminCc, Owner + +=cut + +sub LoadTicketRoleGroup { + my $self = shift; + my %args = (Ticket => undef, + Type => undef, + @_); + $self->LoadByCols( Domain => 'RT::Ticket-Role', + Instance =>$args{'Ticket'}, + Type => $args{'Type'} + ); +} + +# }}} + +# {{{ sub LoadQueueRoleGroup + +=head2 LoadQueueRoleGroup { Queue => Queue_ID, Type => TYPE } + +Loads a Queue group from the database. + +Takes a param hash with 2 parameters: + + Queue is the QueueId we're curious about + Type is the type of Group we're trying to load: + Requestor, Cc, AdminCc, Owner + +=cut + +sub LoadQueueRoleGroup { + my $self = shift; + my %args = (Queue => undef, + Type => undef, + @_); + $self->LoadByCols( Domain => 'RT::Queue-Role', + Instance =>$args{'Queue'}, + Type => $args{'Type'} + ); +} + +# }}} + +# {{{ sub LoadSystemRoleGroup + +=head2 LoadSystemRoleGroup Type + +Loads a System group from the database. + +Takes a single param: Type + + Type is the type of Group we're trying to load: + Requestor, Cc, AdminCc, Owner + +=cut + +sub LoadSystemRoleGroup { + my $self = shift; + my $type = shift; + $self->LoadByCols( Domain => 'RT::System-Role', + Type => $type + ); +} + +# }}} + +# {{{ sub Create +=head2 Create + +You need to specify what sort of group you're creating by calling one of the other +Create_____ routines. + +=cut + +sub Create { + my $self = shift; + $RT::Logger->crit("Someone called RT::Group->Create. this method does not exist. someone's being evil"); + return(0,$self->loc('Permission Denied')); +} + +# }}} + +# {{{ sub _Create + +=head2 _Create + +Takes a paramhash with named arguments: Name, Description. + +Returns a tuple of (Id, Message). If id is 0, the create failed + +=cut + +sub _Create { + my $self = shift; + my %args = ( + Name => undef, + Description => undef, + Domain => undef, + Type => undef, + Instance => undef, + InsideTransaction => undef, + @_ + ); + + $RT::Handle->BeginTransaction() unless ($args{'InsideTransaction'}); + # Groups deal with principal ids, rather than user ids. + # When creating this group, set up a principal Id for it. + my $principal = RT::Principal->new( $self->CurrentUser ); + my $principal_id = $principal->Create( + PrincipalType => 'Group', + ObjectId => '0' + ); + $principal->__Set(Field => 'ObjectId', Value => $principal_id); + + + $self->SUPER::Create( + id => $principal_id, + Name => $args{'Name'}, + Description => $args{'Description'}, + Type => $args{'Type'}, + Domain => $args{'Domain'}, + Instance => $args{'Instance'} + ); + my $id = $self->Id; + unless ($id) { + return ( 0, $self->loc('Could not create group') ); + } + + # If we couldn't create a principal Id, get the fuck out. + unless ($principal_id) { + $RT::Handle->Rollback() unless ($args{'InsideTransaction'}); + $self->crit( "Couldn't create a Principal on new user create. Strange things are afoot at the circle K" ); + return ( 0, $self->loc('Could not create group') ); + } + + # Now we make the group a member of itself as a cached group member + # this needs to exist so that group ACL checks don't fall over. + # you're checking CachedGroupMembers to see if the principal in question + # is a member of the principal the rights have been granted too + + # in the ordinary case, this would fail badly because it would recurse and add all the members of this group as + # cached members. thankfully, we're creating the group now...so it has no members. + my $cgm = RT::CachedGroupMember->new($self->CurrentUser); + $cgm->Create(Group =>$self->PrincipalObj, Member => $self->PrincipalObj, ImmediateParent => $self->PrincipalObj); + + + + $RT::Handle->Commit() unless ($args{'InsideTransaction'}); + return ( $id, $self->loc("Group created") ); +} + +# }}} + +# {{{ CreateUserDefinedGroup + +=head2 CreateUserDefinedGroup { Name => "name", Description => "Description"} + +A helper subroutine which creates a system group + +Returns a tuple of (Id, Message). If id is 0, the create failed + +=cut + +sub CreateUserDefinedGroup { + my $self = shift; + + unless ( $self->CurrentUserHasRight('AdminGroup') ) { + $RT::Logger->warning( $self->CurrentUser->Name + . " Tried to create a group without permission." ); + return ( 0, $self->loc('Permission Denied') ); + } + + return($self->_Create( Domain => 'UserDefined', Type => '', Instance => '', @_)); +} + +# }}} + +# {{{ _CreateACLEquivalenceGroup + +=head2 _CreateACLEquivalenceGroup { Principal } + +A helper subroutine which creates a group containing only +an individual user. This gets used by the ACL system to check rights. +Yes, it denormalizes the data, but that's ok, as we totally win on performance. + +Returns a tuple of (Id, Message). If id is 0, the create failed + +=cut + +sub _CreateACLEquivalenceGroup { + my $self = shift; + my $princ = shift; + + my $id = $self->_Create( Domain => 'ACLEquivalence', + Type => 'UserEquiv', + Name => 'User '. $princ->Object->Id, + Description => 'ACL equiv. for user '.$princ->Object->Id, + Instance => $princ->Id, + InsideTransaction => 1); + unless ($id) { + $RT::Logger->crit("Couldn't create ACL equivalence group"); + return undef; + } + + # We use stashuser so we don't get transactions inside transactions + # and so we bypass all sorts of cruft we don't need + my $aclstash = RT::GroupMember->new($self->CurrentUser); + my ($stash_id, $add_msg) = $aclstash->_StashUser(Group => $self->PrincipalObj, + Member => $princ); + + unless ($stash_id) { + $RT::Logger->crit("Couldn't add the user to his own acl equivalence group:".$add_msg); + # We call super delete so we don't get acl checked. + $self->SUPER::Delete(); + return(undef); + } + return ($id); +} + +# }}} + +# {{{ CreatePersonalGroup + +=head2 CreatePersonalGroup { PrincipalId => PRINCIPAL_ID, Name => "name", Description => "Description"} + +A helper subroutine which creates a personal group. Generally, +personal groups are used for ACL delegation and adding to ticket roles +PrincipalId defaults to the current user's principal id. + +Returns a tuple of (Id, Message). If id is 0, the create failed + +=cut + +sub CreatePersonalGroup { + my $self = shift; + my %args = ( + Name => undef, + Description => undef, + PrincipalId => $self->CurrentUser->PrincipalId, + @_ + ); + + if ( $self->CurrentUser->PrincipalId == $args{'PrincipalId'} ) { + + unless ( $self->CurrentUserHasRight('AdminOwnPersonalGroups') ) { + $RT::Logger->warning( $self->CurrentUser->Name + . " Tried to create a group without permission." ); + return ( 0, $self->loc('Permission Denied') ); + } + + } + else { + unless ( $self->CurrentUserHasRight('AdminAllPersonalGroups') ) { + $RT::Logger->warning( $self->CurrentUser->Name + . " Tried to create a group without permission." ); + return ( 0, $self->loc('Permission Denied') ); + } + + } + + return ( + $self->_Create( + Domain => 'Personal', + Type => '', + Instance => $args{'PrincipalId'}, + Name => $args{'Name'}, + Description => $args{'Description'} + ) + ); +} + +# }}} + +# {{{ CreateRoleGroup + +=head2 CreateRoleGroup { Domain => DOMAIN, Type => TYPE, Instance => ID } + +A helper subroutine which creates a ticket group. (What RT 2.0 called Ticket watchers) +Type is one of ( "Requestor" || "Cc" || "AdminCc" || "Owner") +Domain is one of (RT::Ticket-Role || RT::Queue-Role || RT::System-Role) +Instance is the id of the ticket or queue in question + +This routine expects to be called from {Ticket||Queue}->CreateTicketGroups _inside of a transaction_ + +Returns a tuple of (Id, Message). If id is 0, the create failed + +=cut + +sub CreateRoleGroup { + my $self = shift; + my %args = ( Instance => undef, + Type => undef, + Domain => undef, + @_ ); + unless ( $args{'Type'} =~ /^(?:Cc|AdminCc|Requestor|Owner)$/ ) { + return ( 0, $self->loc("Invalid Group Type") ); + } + + + return ( $self->_Create( Domain => $args{'Domain'}, + Instance => $args{'Instance'}, + Type => $args{'Type'}, + InsideTransaction => 1 ) ); +} + +# }}} + +# {{{ sub Delete + +=head2 Delete + +Delete this object + +=cut + +sub Delete { + my $self = shift; + + unless ( $self->CurrentUserHasRight('AdminGroup') ) { + return ( 0, 'Permission Denied' ); + } + + $RT::Logger->crit("Deleting groups violates referential integrity until we go through and fix this"); + # TODO XXX + + # Remove the principal object + # Remove this group from anything it's a member of. + # Remove all cached members of this group + # Remove any rights granted to this group + # remove any rights delegated by way of this group + + return ( $self->SUPER::Delete(@_) ); +} + +# }}} + +=head2 SetDisabled BOOL + +If passed a positive value, this group will be disabled. No rights it commutes or grants will be honored. +It will not appear in most group listings. + +This routine finds all the cached group members that are members of this group (recursively) and disables them. +=cut + + # }}} + + sub SetDisabled { + my $self = shift; + my $val = shift; + if ($self->Domain eq 'Personal') { + if ($self->CurrentUser->PrincipalId == $self->Instance) { + unless ( $self->CurrentUserHasRight('AdminOwnPersonalGroups')) { + return ( 0, $self->loc('Permission Denied') ); + } + } else { + unless ( $self->CurrentUserHasRight('AdminAllPersonalGroups') ) { + return ( 0, $self->loc('Permission Denied') ); + } + } + } + else { + unless ( $self->CurrentUserHasRight('AdminGroup') ) { + return (0, $self->loc('Permission Denied')); + } + } + $RT::Handle->BeginTransaction(); + $self->PrincipalObj->SetDisabled($val); + + + + + # Find all occurrences of this member as a member of this group + # in the cache and nuke them, recursively. + + # The following code will delete all Cached Group members + # where this member's group is _not_ the primary group + # (Ie if we're deleting C as a member of B, and B happens to be + # a member of A, will delete C as a member of A without touching + # C as a member of B + + my $cached_submembers = RT::CachedGroupMembers->new( $self->CurrentUser ); + + $cached_submembers->Limit( FIELD => 'ImmediateParentId', OPERATOR => '=', VALUE => $self->Id); + + #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. + # TODO what about the groups key cache? + RT::Principal->_InvalidateACLCache(); + + + + while ( my $item = $cached_submembers->Next() ) { + my $del_err = $item->SetDisabled($val); + unless ($del_err) { + $RT::Handle->Rollback(); + $RT::Logger->warning("Couldn't disable cached group submember ".$item->Id); + return (undef); + } + } + + $RT::Handle->Commit(); + return (1, $self->loc("Succeeded")); + +} + +# }}} + + + +sub Disabled { + my $self = shift; + $self->PrincipalObj->Disabled(@_); +} + + +# {{{ DeepMembersObj + +=head2 DeepMembersObj + +Returns an RT::CachedGroupMembers object of this group's members. + +=cut + +sub DeepMembersObj { + my $self = shift; + my $members_obj = RT::CachedGroupMembers->new( $self->CurrentUser ); + + #If we don't have rights, don't include any results + # TODO XXX WHY IS THERE NO ACL CHECK HERE? + $members_obj->LimitToMembersOfGroup( $self->PrincipalId ); + + return ( $members_obj ); + +} + +# }}} + +# {{{ UserMembersObj + +=head2 UserMembersObj + +Returns an RT::Users object of this group's members, including +all members of subgroups + +=cut + +sub UserMembersObj { + my $self = shift; + + my $users = RT::Users->new($self->CurrentUser); + + #If we don't have rights, don't include any results + # TODO XXX WHY IS THERE NO ACL CHECK HERE? + + my $principals = $users->NewAlias('Principals'); + + $users->Join(ALIAS1 => 'main', FIELD1 => 'id', + ALIAS2 => $principals, FIELD2 => 'ObjectId'); + $users->Limit(ALIAS =>$principals, + FIELD => 'PrincipalType', OPERATOR => '=', VALUE => 'User'); + + my $cached_members = $users->NewAlias('CachedGroupMembers'); + $users->Join(ALIAS1 => $cached_members, FIELD1 => 'MemberId', + ALIAS2 => $principals, FIELD2 => 'id'); + $users->Limit(ALIAS => $cached_members, + FIELD => 'GroupId', + OPERATOR => '=', + VALUE => $self->PrincipalId); + + + return ( $users); + +} + +# }}} + +# {{{ MembersObj + +=head2 MembersObj + +Returns an RT::CachedGroupMembers object of this group's members. + +=cut + +sub MembersObj { + my $self = shift; + my $members_obj = RT::GroupMembers->new( $self->CurrentUser ); + + #If we don't have rights, don't include any results + # TODO XXX WHY IS THERE NO ACL CHECK HERE? + $members_obj->LimitToMembersOfGroup( $self->PrincipalId ); + + return ( $members_obj ); + +} + +# }}} + +# {{{ MemberEmailAddresses + +=head2 MemberEmailAddresses + +Returns an array of the email addresses of all of this group's members + + +=cut + +sub MemberEmailAddresses { + my $self = shift; + + my %addresses; + my $members = $self->UserMembersObj(); + while (my $member = $members->Next) { + $addresses{$member->EmailAddress} = 1; + } + return(sort keys %addresses); +} + +# }}} + +# {{{ MemberEmailAddressesAsString + +=head2 MemberEmailAddressesAsString + +Returns a comma delimited string of the email addresses of all users +who are members of this group. + +=cut + + +sub MemberEmailAddressesAsString { + my $self = shift; + return (join(', ', $self->MemberEmailAddresses)); +} + +# }}} + +# {{{ AddMember + +=head2 AddMember PRINCIPAL_ID + +AddMember adds a principal to this group. It takes a single principal id. +Returns a two value array. the first value is true on successful +addition or 0 on failure. The second value is a textual status msg. + +=cut + +sub AddMember { + my $self = shift; + my $new_member = shift; + + + + if ($self->Domain eq 'Personal') { + if ($self->CurrentUser->PrincipalId == $self->Instance) { + unless ( $self->CurrentUserHasRight('AdminOwnPersonalGroups')) { + return ( 0, $self->loc('Permission Denied') ); + } + } else { + unless ( $self->CurrentUserHasRight('AdminAllPersonalGroups') ) { + return ( 0, $self->loc('Permission Denied') ); + } + } + } + + else { + # We should only allow membership changes if the user has the right + # to modify group membership or the user is the principal in question + # and the user has the right to modify his own membership + unless ( ($new_member == $self->CurrentUser->PrincipalId && + $self->CurrentUserHasRight('ModifyOwnMembership') ) || + $self->CurrentUserHasRight('AdminGroupMembership') ) { + #User has no permission to be doing this + return ( 0, $self->loc("Permission Denied") ); + } + + } + $self->_AddMember(PrincipalId => $new_member); +} + +# A helper subroutine for AddMember that bypasses the ACL checks +# this should _ONLY_ ever be called from Ticket/Queue AddWatcher +# when we want to deal with groups according to queue rights +# In the dim future, this will all get factored out and life +# will get better + +# takes a paramhash of { PrincipalId => undef, InsideTransaction } + +sub _AddMember { + my $self = shift; + my %args = ( PrincipalId => undef, + InsideTransaction => undef, + @_); + my $new_member = $args{'PrincipalId'}; + + unless ($self->Id) { + $RT::Logger->crit("Attempting to add a member to a group which wasn't loaded. 'oops'"); + return(0, $self->loc("Group not found")); + } + + unless ($new_member =~ /^\d+$/) { + $RT::Logger->crit("_AddMember called with a parameter that's not an integer."); + } + + + my $new_member_obj = RT::Principal->new( $self->CurrentUser ); + $new_member_obj->Load($new_member); + + + unless ( $new_member_obj->Id ) { + $RT::Logger->debug("Couldn't find that principal"); + return ( 0, $self->loc("Couldn't find that principal") ); + } + + if ( $self->HasMember( $new_member_obj ) ) { + + #User is already a member of this group. no need to add it + return ( 0, $self->loc("Group already has member") ); + } + if ( $new_member_obj->IsGroup && + $new_member_obj->Object->HasMemberRecursively($self->PrincipalObj) ) { + + #This group can't be made to be a member of itself + return ( 0, $self->loc("Groups can't be members of their members")); + } + + + my $member_object = RT::GroupMember->new( $self->CurrentUser ); + my $id = $member_object->Create( + Member => $new_member_obj, + Group => $self->PrincipalObj, + InsideTransaction => $args{'InsideTransaction'} + ); + if ($id) { + return ( 1, $self->loc("Member added") ); + } + else { + return(0, $self->loc("Couldn't add member to group")); + } +} +# }}} + +# {{{ HasMember + +=head2 HasMember RT::Principal + +Takes an RT::Principal object returns a GroupMember Id if that user is a +member of this group. +Returns undef if the user isn't a member of the group or if the current +user doesn't have permission to find out. Arguably, it should differentiate +between ACL failure and non membership. + +=cut + +sub HasMember { + my $self = shift; + my $principal = shift; + + + unless (UNIVERSAL::isa($principal,'RT::Principal')) { + $RT::Logger->crit("Group::HasMember was called with an argument that". + "isn't an RT::Principal. It's $principal"); + return(undef); + } + + my $member_obj = RT::GroupMember->new( $self->CurrentUser ); + $member_obj->LoadByCols( MemberId => $principal->id, + GroupId => $self->PrincipalId ); + + #If we have a member object + if ( defined $member_obj->id ) { + return ( $member_obj->id ); + } + + #If Load returns no objects, we have an undef id. + else { + #$RT::Logger->debug($self." does not contain principal ".$principal->id); + return (undef); + } +} + +# }}} + +# {{{ HasMemberRecursively + +=head2 HasMemberRecursively RT::Principal + +Takes an RT::Principal object and returns true if that user is a member of +this group. +Returns undef if the user isn't a member of the group or if the current +user doesn't have permission to find out. Arguably, it should differentiate +between ACL failure and non membership. + +=cut + +sub HasMemberRecursively { + my $self = shift; + my $principal = shift; + + unless (UNIVERSAL::isa($principal,'RT::Principal')) { + $RT::Logger->crit("Group::HasMemberRecursively was called with an argument that". + "isn't an RT::Principal. It's $principal"); + return(undef); + } + my $member_obj = RT::CachedGroupMember->new( $self->CurrentUser ); + $member_obj->LoadByCols( MemberId => $principal->Id, + GroupId => $self->PrincipalId , + Disabled => 0 + ); + + #If we have a member object + if ( defined $member_obj->id ) { + return ( 1); + } + + #If Load returns no objects, we have an undef id. + else { + return (undef); + } +} + +# }}} + +# {{{ DeleteMember + +=head2 DeleteMember PRINCIPAL_ID + +Takes the principal id of a current user or group. +If the current user has apropriate rights, +removes that GroupMember from this group. +Returns a two value array. the first value is true on successful +addition or 0 on failure. The second value is a textual status msg. + +=cut + +sub DeleteMember { + my $self = shift; + my $member_id = shift; + + + # We should only allow membership changes if the user has the right + # to modify group membership or the user is the principal in question + # and the user has the right to modify his own membership + + if ($self->Domain eq 'Personal') { + if ($self->CurrentUser->PrincipalId == $self->Instance) { + unless ( $self->CurrentUserHasRight('AdminOwnPersonalGroups')) { + return ( 0, $self->loc('Permission Denied') ); + } + } else { + unless ( $self->CurrentUserHasRight('AdminAllPersonalGroups') ) { + return ( 0, $self->loc('Permission Denied') ); + } + } + } + else { + unless ( (($member_id == $self->CurrentUser->PrincipalId) && + $self->CurrentUserHasRight('ModifyOwnMembership') ) || + $self->CurrentUserHasRight('AdminGroupMembership') ) { + #User has no permission to be doing this + return ( 0, $self->loc("Permission Denied") ); + } + } + $self->_DeleteMember($member_id); +} + +# A helper subroutine for DeleteMember that bypasses the ACL checks +# this should _ONLY_ ever be called from Ticket/Queue DeleteWatcher +# when we want to deal with groups according to queue rights +# In the dim future, this will all get factored out and life +# will get better + +sub _DeleteMember { + my $self = shift; + my $member_id = shift; + + my $member_obj = RT::GroupMember->new( $self->CurrentUser ); + + $member_obj->LoadByCols( MemberId => $member_id, + GroupId => $self->PrincipalId); + + + #If we couldn't load it, return undef. + unless ( $member_obj->Id() ) { + $RT::Logger->debug("Group has no member with that id"); + return ( 0,$self->loc( "Group has no such member" )); + } + + #Now that we've checked ACLs and sanity, delete the groupmember + my $val = $member_obj->Delete(); + + if ($val) { + return ( $val, $self->loc("Member deleted") ); + } + else { + $RT::Logger->debug("Failed to delete group ".$self->Id." member ". $member_id); + return ( 0, $self->loc("Member not deleted" )); + } +} + +# }}} + +# {{{ ACL Related routines + +# {{{ sub _Set +sub _Set { + my $self = shift; + + if ($self->Domain eq 'Personal') { + if ($self->CurrentUser->PrincipalId == $self->Instance) { + unless ( $self->CurrentUserHasRight('AdminOwnPersonalGroups')) { + return ( 0, $self->loc('Permission Denied') ); + } + } else { + unless ( $self->CurrentUserHasRight('AdminAllPersonalGroups') ) { + return ( 0, $self->loc('Permission Denied') ); + } + } + } + else { + unless ( $self->CurrentUserHasRight('AdminGroup') ) { + return ( 0, $self->loc('Permission Denied') ); + } + } + return ( $self->SUPER::_Set(@_) ); +} + +# }}} + + + + +=item CurrentUserHasRight RIGHTNAME + +Returns true if the current user has the specified right for this group. + + + TODO: we don't deal with membership visibility yet + +=cut + + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + + + + if ($self->Id && + $self->CurrentUser->HasRight( Object => $self, + Right => $right )) { + return(1); + } + elsif ( $self->CurrentUser->HasRight(Object => $RT::System, Right => $right )) { + return (1); + } else { + return(undef); + } + +} + +# }}} + + + + +# {{{ Principal related routines + +=head2 PrincipalObj + +Returns the principal object for this user. returns an empty RT::Principal +if there's no principal object matching this user. +The response is cached. PrincipalObj should never ever change. + +=begin testing + +ok(my $u = RT::Group->new($RT::SystemUser)); +ok($u->Load(4), "Loaded the first user"); +ok($u->PrincipalObj->ObjectId == 4, "user 4 is the fourth principal"); +ok($u->PrincipalObj->PrincipalType eq 'Group' , "Principal 4 is a group"); + +=end testing + +=cut + + +sub PrincipalObj { + my $self = shift; + unless ($self->{'PrincipalObj'} && + ($self->{'PrincipalObj'}->ObjectId == $self->Id) && + ($self->{'PrincipalObj'}->PrincipalType eq 'Group')) { + + $self->{'PrincipalObj'} = RT::Principal->new($self->CurrentUser); + $self->{'PrincipalObj'}->LoadByCols('ObjectId' => $self->Id, + 'PrincipalType' => 'Group') ; + } + return($self->{'PrincipalObj'}); +} + + +=head2 PrincipalId + +Returns this user's PrincipalId + +=cut + +sub PrincipalId { + my $self = shift; + return $self->Id; +} + +# }}} +1; + diff --git a/rt/lib/RT/Groups.pm b/rt/lib/RT/Groups.pm index f44f1fdb3..29f12a5a0 100755 --- a/rt/lib/RT/Groups.pm +++ b/rt/lib/RT/Groups.pm @@ -1,100 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Groups.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Groups - a collection of RT::Group objects +=head1 NAME + RT::Groups -- Class Description + =head1 SYNOPSIS - use RT::Groups; - my $groups = $RT::Groups->new($CurrentUser); - $groups->LimitToReal(); - while (my $group = $groups->Next()) { - print $group->Id ." is a group id\n"; - } + use RT::Groups =head1 DESCRIPTION =head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Groups); - -=end testing - =cut package RT::Groups; -use RT::EasySearch; -use RT::Groups; -@ISA= qw(RT::EasySearch); +use RT::SearchBuilder; +use RT::Group; -# {{{ sub _Init +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -sub _Init { - my $self = shift; - $self->{'table'} = "Groups"; - $self->{'primary_key'} = "id"; - $self->OrderBy( ALIAS => 'main', - FIELD => 'Name', - ORDER => 'ASC'); +sub _Init { + my $self = shift; + $self->{'table'} = 'Groups'; + $self->{'primary_key'} = 'id'; - return ( $self->SUPER::_Init(@_)); + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ LimitToReal -=head2 LimitToReal +=item NewItem -Make this groups object return only "real" groups, which can be -granted rights and have members assigned to them +Returns an empty new RT::Group item =cut -sub LimitToReal { +sub NewItem { my $self = shift; + return(RT::Group->new($self->CurrentUser)); +} - return ($self->Limit( FIELD => 'Pseudo', - VALUE => '0', - OPERATOR => '=')); + eval "require RT::Groups_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Groups_Overlay.pm}) { + die $@; + }; -} -# }}} + eval "require RT::Groups_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Groups_Vendor.pm}) { + die $@; + }; -# {{{ sub LimitToPseudo + eval "require RT::Groups_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Groups_Local.pm}) { + die $@; + }; -=head2 LimitToPseudo -Make this groups object return only "pseudo" groups, which can be -granted rights but whose membership lists are determined dynamically. -=cut - - sub LimitToPseudo { - my $self = shift; - return ($self->Limit( FIELD => 'Pseudo', - VALUE => '1', - OPERATOR => '=')); +=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. -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return (RT::Group->new($self->CurrentUser)); -} -# }}} +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 -1; + no warnings qw(redefine); + +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. +RT::Groups_Overlay, RT::Groups_Vendor, RT::Groups_Local + +=cut + + +1; diff --git a/rt/lib/RT/Groups_Overlay.pm b/rt/lib/RT/Groups_Overlay.pm new file mode 100644 index 000000000..3d2c660fe --- /dev/null +++ b/rt/lib/RT/Groups_Overlay.pm @@ -0,0 +1,298 @@ +# 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. +# +# 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::Groups - a collection of RT::Group objects + +=head1 SYNOPSIS + + use RT::Groups; + my $groups = $RT::Groups->new($CurrentUser); + $groups->LimitToReal(); + while (my $group = $groups->Next()) { + print $group->Id ." is a group id\n"; + } + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::Groups); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + + +# {{{ sub _Init + +sub _Init { + my $self = shift; + $self->{'table'} = "Groups"; + $self->{'primary_key'} = "id"; + + $self->OrderBy( ALIAS => 'main', + FIELD => 'Name', + ORDER => 'ASC'); + + + return ( $self->SUPER::_Init(@_)); +} +# }}} + +# {{{ LimiToSystemInternalGroups + +=head2 LimitToSystemInternalGroups + +Return only SystemInternal Groups, such as "privileged" "unprivileged" and "everyone" + +=cut + + +sub LimitToSystemInternalGroups { + my $self = shift; + $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'SystemInternal'); + $self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => ''); +} + + +# }}} + +# {{{ LimiToUserDefinedGroups + +=head2 LimitToUserDefined Groups + +Return only UserDefined Groups + +=cut + + +sub LimitToUserDefinedGroups { + my $self = shift; + $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'UserDefined'); + $self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => ''); +} + + +# }}} + +# {{{ LimiToPersonalGroups + +=head2 LimitToPersonalGroupsFor PRINCIPAL_ID + +Return only Personal Groups for the user whose principal id +is PRINCIPAL_ID + +=cut + + +sub LimitToPersonalGroupsFor { + my $self = shift; + my $princ = shift; + + $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'Personal'); + $self->Limit( FIELD => 'Instance', + OPERATOR => '=', + VALUE => $princ, + ENTRY_AGGREGATOR => 'OR'); +} + + +# }}} + +# {{{ LimitToRolesForQueue + +=item LimitToRolesForQueue QUEUE_ID + +Limits the set of groups found to role groups for queue QUEUE_ID + +=cut + +sub LimitToRolesForQueue { + my $self = shift; + my $queue = shift; + $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'RT::Queue-Role'); + $self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => $queue); +} + +# }}} + +# {{{ LimitToRolesForTicket + +=item LimitToRolesForTicket Ticket_ID + +Limits the set of groups found to role groups for Ticket Ticket_ID + +=cut + +sub LimitToRolesForTicket { + my $self = shift; + my $Ticket = shift; + $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'RT::Ticket-Role'); + $self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => '$Ticket'); +} + +# }}} + +# {{{ LimitToRolesForSystem + +=item LimitToRolesForSystem System_ID + +Limits the set of groups found to role groups for System System_ID + +=cut + +sub LimitToRolesForSystem { + my $self = shift; + $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'RT::System-Role'); +} + +# }}} + +=head2 WithMember {PrincipalId => PRINCIPAL_ID, Recursively => undef} + +Limits the set of groups returned to groups which have +Principal PRINCIPAL_ID as a member + +=begin testing + +my $u = RT::User->new($RT::SystemUser); +$u->Create(Name => 'Membertests'); +my $g = RT::Group->new($RT::SystemUser); +my ($id, $msg) = $g->CreateUserDefinedGroup(Name => 'Membertests'); +ok ($id,$msg); + +my ($aid, $amsg) =$g->AddMember($u->id); +ok ($aid, $amsg); +ok($g->HasMember($u->PrincipalObj),"G has member u"); + +my $groups = RT::Groups->new($RT::SystemUser); +$groups->LimitToUserDefinedGroups(); +$groups->WithMember(PrincipalId => $u->id); +ok ($groups->Count == 1,"found the 1 group - " . $groups->Count); +ok ($groups->First->Id == $g->Id, "it's the right one"); + + + + +=end testing + + +=cut + +sub WithMember { + my $self = shift; + my %args = ( PrincipalId => undef, + Recursively => undef, + @_); + my $members; + + if ($args{'Recursively'}) { + $members = $self->NewAlias('CachedGroupMembers'); + } else { + $members = $self->NewAlias('GroupMembers'); + } + $self->Join(ALIAS1 => 'main', FIELD1 => 'id', + ALIAS2 => $members, FIELD2 => 'GroupId'); + + $self->Limit(ALIAS => $members, FIELD => 'MemberId', OPERATOR => '=', VALUE => $args{'PrincipalId'}); +} + + +sub WithRight { + my $self = shift; + my %args = ( Right => undef, + Object => => undef, + IncludeSystemRights => undef, + IncludeSuperusers => undef, + @_ ); + + my $groupprinc = $self->NewAlias('Principals'); + my $acl = $self->NewAlias('ACL'); + + # {{{ Find only rows where the right granted is the one we're looking up or _possibly_ superuser + $self->Limit( ALIAS => $acl, + FIELD => 'RightName', + OPERATOR => '=', + VALUE => $args{Right}, + ENTRYAGGREGATOR => 'OR' ); + + if ( $args{'IncludeSuperusers'} ) { + $self->Limit( ALIAS => $acl, + FIELD => 'RightName', + OPERATOR => '=', + VALUE => 'SuperUser', + ENTRYAGGREGATOR => 'OR' ); + } + # }}} + + my ($or_check_ticket_roles, $or_check_roles, $or_look_at_object); + + if ( defined $args{'Object'} ) { + if ( ref($args{'Object'}) eq 'RT::Ticket' ) { + $or_check_ticket_roles = + " OR ( main.Domain = 'RT::Ticket-Role' AND main.Instance = " . $args{'Object'}->Id . ") "; + + # If we're looking at ticket rights, we also want to look at the associated queue rights. + # this is a little bit hacky, but basically, now that we've done the ticket roles magic, + # we load the queue object and ask all the rest of our questions about the queue. + $args{'Object'} = $args{'Object'}->QueueObj; + } + # TODO XXX This really wants some refactoring + if ( ref($args{'Object'}) eq 'RT::Queue' ) { + $or_check_roles = + " OR ( ( (main.Domain = 'RT::Queue-Role' AND main.Instance = " . + $args{'Object'}->Id . ") $or_check_ticket_roles ) " . + " AND main.Type = $acl.PrincipalType AND main.id = $groupprinc.id) "; + } + + $or_look_at_object = + " OR ($acl.ObjectType = '" . ref($args{'Object'}) . "'" . + " AND $acl.ObjectId = " . $args{'Object'}->Id . ") "; + } + + $self->_AddSubClause( "WhichObject", "($acl.ObjectType = 'RT::System' $or_look_at_object)" ); + + $self->_AddSubClause( "WhichGroup", + qq{ + ( ( $acl.PrincipalId = $groupprinc.id + AND $acl.PrincipalType = 'Group' + AND ( main.Domain = 'SystemInternal' + OR main.Domain = 'UserDefined' + OR main.Domain = 'ACLEquivalence') + AND main.id = $groupprinc.id) + $or_check_roles) + } + ); +} + +1; + diff --git a/rt/lib/RT/Handle.pm b/rt/lib/RT/Handle.pm index 6b74f361b..5cdb65e5b 100644 --- a/rt/lib/RT/Handle.pm +++ b/rt/lib/RT/Handle.pm @@ -1,5 +1,26 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Handle.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - +# 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. +# +# 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 @@ -22,14 +43,16 @@ ok(require RT::Handle); package RT::Handle; -eval "use DBIx::SearchBuilder::Handle::$RT::DatabaseType; +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 handle. Takes nothing. Calls SUPER::Connect with the needed args =cut @@ -38,16 +61,41 @@ sub Connect { my $self=shift; # Unless the database port is a positive integer, we really don't want to pass it. -$RT::DatabasePort = undef unless (defined $RT::DatabasePort && $RT::DatabasePort =~ /^(\d+)$/); -$self->SUPER::Connect(Host => $RT::DatabaseHost, - Database => $RT::DatabaseName, +$self->SUPER::Connect( User => $RT::DatabaseUser, Password => $RT::DatabasePassword, + ); + +} + +=item BuildDSN + +Build the DSN for the RT database. doesn't take any parameters, draws all that +from the config file. + +=cut + + +sub BuildDSN { + my $self = shift; +$RT::DatabasePort = undef unless (defined $RT::DatabasePort && $RT::DatabasePort =~ /^(\d+)$/); +$RT::DatabaseHost = undef unless (defined $RT::DatabaseHost && $RT::DatabaseHost ne ''); + + $self->SUPER::BuildDSN(Host => $RT::DatabaseHost, + Database => $RT::DatabaseName, Port => $RT::DatabasePort, Driver => $RT::DatabaseType, RequireSSL => $RT::DatabaseRequireSSL, + DisconnectHandleOnDestroy => 1 ); + } + +eval "require RT::Handle_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Handle_Vendor.pm}); +eval "require RT::Handle_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Handle_Local.pm}); + 1; diff --git a/rt/lib/RT/I18N.pm b/rt/lib/RT/I18N.pm new file mode 100644 index 000000000..c013c219e --- /dev/null +++ b/rt/lib/RT/I18N.pm @@ -0,0 +1,430 @@ +# 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. +# +# 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::I18N - a base class for localization of RT + +=cut + +package RT::I18N; + +use strict; +use Locale::Maketext 1.04; +use Locale::Maketext::Lexicon 0.25; +use base ('Locale::Maketext::Fuzzy'); +use vars qw( %Lexicon ); + +#If we're running on 5.6, we desperately need Encode::compat. But if we're on 5.8, we don't really need it. +BEGIN { if ($] < 5.007001) { +require Encode::compat; +} } +use Encode; + +use MIME::Entity; +use MIME::Head; + +# I decree that this project's first language is English. + +%Lexicon = ( + 'TEST_STRING' => 'Concrete Mixer', + + '__Content-Type' => 'text/plain; charset=utf-8', + + '_AUTO' => 1, + # That means that lookup failures can't happen -- if we get as far + # as looking for something in this lexicon, and we don't find it, + # then automagically set $Lexicon{$key} = $key, before possibly + # compiling it. + + # The exception is keys that start with "_" -- they aren't auto-makeable. + +); +# End of lexicon. + +=head2 Init + +Initializes the lexicons used for localization. + +=begin testing + +use_ok (RT::I18N); +ok(RT::I18N->Init); + +=end testing + +=cut + +sub Init { + # Load language-specific functions + foreach my $language ( glob(substr(__FILE__, 0, -3) . "/*.pm")) { + if ($language =~ /^([-\w.\/\\~:]+)$/) { + require $1; + } + else { + warn("$language is tainted. not loading"); + } + } + + my @lang = @RT::LexiconLanguages; + @lang = ('*') unless @lang; + + # Acquire all .po files and iterate them into lexicons + Locale::Maketext::Lexicon->import({ + _decode => 1, map { + $_ => [ + Gettext => (substr(__FILE__, 0, -3) . "/$_.po"), + Gettext => "$RT::LocalLexiconPath/*/$_.po", + ], + } @lang + }); + + return 1; +} + +=head2 encoding + +Returns the encoding of the current lexicon, as yanked out of __ContentType's "charset" field. +If it can't find anything, it returns 'ISO-8859-1' + +=begin testing + +ok(my $chinese = RT::I18N->get_handle('zh_tw')); +ok(UNIVERSAL::can($chinese, 'maketext')); +ok($chinese->maketext('__Content-Type') =~ /utf-8/i, "Found the utf-8 charset for traditional chinese in the string ".$chinese->maketext('__Content-Type')); +ok($chinese->encoding eq 'utf-8', "The encoding is 'utf-8' -".$chinese->encoding); + +ok(my $en = RT::I18N->get_handle('en')); +ok(UNIVERSAL::can($en, 'maketext')); +ok($en->encoding eq 'utf-8', "The encoding ".$en->encoding." is 'utf-8'"); + +=end testing + + +=cut + + +sub encoding { 'utf-8' } + +# {{{ SetMIMEEntityToUTF8 + +=head2 SetMIMEEntityToUTF8 $entity + +An utility method which will try to convert entity body into utf8. +It's now a wrap-up of SetMIMEEntityToEncoding($entity, 'utf-8'). + +=cut + +sub SetMIMEEntityToUTF8 { + RT::I18N::SetMIMEEntityToEncoding(shift, 'utf-8'); +} + +# }}} + +# {{{ SetMIMEEntityToEncoding + +=head2 SetMIMEEntityToEncoding $entity, $encoding + +An utility method which will try to convert entity body into specified +charset encoding (encoded as octets, *not* unicode-strings). It will +iterate all the entities in $entity, and try to convert each one into +specified charset if whose Content-Type is 'text/plain'. + +This method doesn't return anything meaningful. + +=cut + +sub SetMIMEEntityToEncoding { + my ( $entity, $enc, $preserve_words ) = ( shift, shift, shift ); + + #if ( $entity->is_multipart ) { + #$RT::Logger->crit("This entity is a multipart " . $entity->head->as_string); + SetMIMEEntityToEncoding( $_, $enc, $preserve_words ) foreach $entity->parts; + #} + + my $charset = _FindOrGuessCharset($entity) or return; + # one and only normalization + $charset = 'utf-8' if $charset eq 'utf8'; + $enc = 'utf-8' if $enc eq 'utf8'; + + SetMIMEHeadToEncoding($entity->head, $charset => $enc, $preserve_words); + + my $head = $entity->head; + + # convert at least MIME word encoded attachment filename + foreach my $attr (qw(content-type.name content-disposition.filename)) { + if ( my $name = $head->mime_attr($attr) and !$preserve_words ) { + $head->mime_attr( $attr => DecodeMIMEWordsToUTF8($name) ); + } + } + + # If this is a textual entity, we'd need to preserve its original encoding + $head->add( "X-RT-Original-Encoding" => $charset ) + if $head->mime_attr('content-type.charset') or $head->mime_type =~ /^text/; + + + return unless ( $head->mime_type =~ qr{^(text/plain|message/rfc822)$}i ); + + + my $body = $entity->bodyhandle; + + if ( $enc ne $charset && $body) { + my @lines = $body->as_lines or return; + + # {{{ Convert the body + eval { + $RT::Logger->debug("Converting '$charset' to '$enc' for ". $head->mime_type . " - ". $head->get('subject')); + + # NOTE:: see the comments at the end of the sub. + Encode::_utf8_off( $lines[$_] ) foreach ( 0 .. $#lines ); + Encode::from_to( $lines[$_], $charset => $enc ) for ( 0 .. $#lines ); + }; + + if ($@) { + $RT::Logger->error( "Encoding error: " . $@ . " defaulting to ISO-8859-1 -> UTF-8" ); + eval { + Encode::from_to( $lines[$_], 'iso-8859-1' => $enc ) foreach ( 0 .. $#lines ); + }; + if ($@) { + $RT::Logger->crit( "Totally failed to convert to utf-8: " . $@ . " I give up" ); + } + } + # }}} + + my $new_body = MIME::Body::InCore->new( \@lines ); + + # set up the new entity + $head->mime_attr( "content-type" => 'text/plain' ) + unless ( $head->mime_attr("content-type") ); + $head->mime_attr( "content-type.charset" => $enc ); + $entity->bodyhandle($new_body); + } +} + +# NOTES: Why Encode::_utf8_off before Encode::from_to +# +# All the strings in RT are utf-8 now. Quotes from Encode POD: +# +# [$length =] from_to($octets, FROM_ENC, TO_ENC [, CHECK]) +# ... The data in $octets must be encoded as octets and not as +# characters in Perl's internal format. ... +# +# Not turning off the UTF-8 flag in the string will prevent the string +# from conversion. + +# }}} + +# {{{ DecodeMIMEWordsToUTF8 + +=head2 DecodeMIMEWordsToUTF8 $raw + +An utility method which mimics MIME::Words::decode_mimewords, but only +limited functionality. This function returns an utf-8 string. + +It returns the decoded string, or the original string if it's not +encoded. Since the subroutine converts specified string into utf-8 +charset, it should not alter a subject written in English. + +Why not use MIME::Words directly? Because it fails in RT when I +tried. Maybe it's ok now. + +=cut + +sub DecodeMIMEWordsToUTF8 { + my $str = shift; + DecodeMIMEWordsToEncoding($str, 'utf-8'); +} + +sub DecodeMIMEWordsToEncoding { + my $str = shift; + my $enc = shift; + + + @_ = $str =~ m/([^=]*)=\?([^?]+)\?([QqBb])\?([^?]+)\?=([^=]*)/g; + + return ($str) unless (@_); + + $str = ""; + while (@_) { + my ($prefix, $charset, $encoding, $enc_str, $trailing) = + (shift, shift, shift, shift, shift); + + $trailing =~ s/\s?\t?$//; # Observed from Outlook Express + + if ($encoding eq 'Q' or $encoding eq 'q') { + use MIME::QuotedPrint; + $enc_str =~ tr/_/ /; # Observed from Outlook Express + $enc_str = decode_qp($enc_str); + } elsif ($encoding eq 'B' or $encoding eq 'b') { + use MIME::Base64; + $enc_str = decode_base64($enc_str); + } else { + $RT::Logger->warning("RT::I18N::DecodeMIMEWordsToCharset got a " . + "strange encoding: $encoding."); + } + + # now we have got a decoded subject, try to convert into the encoding + unless ($charset eq $enc) { + eval { Encode::from_to($enc_str, $charset, $enc) }; + if ($@) { + $charset = _GuessCharset( $enc_str ); + Encode::from_to($enc_str, $charset, $enc); + } + } + + $str .= $prefix . $enc_str . $trailing; + } + + return ($str) +} + +# }}} + +# {{{ _FindOrGuessCharset + +=head2 _FindOrGuessCharset MIME::Entity + +When handed a MIME::Entity will first attempt to read what charset the message is encoded in. Failing that, +will use Encode::Guess to try to figure it out + +=cut + +sub _FindOrGuessCharset { + my $entity = shift; + my $head = $entity->head; + + if ($head->mime_attr("content-type.charset")) { + return $head->mime_attr("content-type.charset"); + } + + if ( $head->mime_type =~ m{^text/}) { + my $body = $entity->bodyhandle or return; + return _GuessCharset( $head->as_string . $body->as_string ); + } + else { + # potentially binary data -- don't guess the body + return _GuessCharset( $head->as_string ); + } +} + +# }}} + + +# {{{ _GuessCharset + +=head2 _GuessCharset STRING + +use Encode::Guess to try to figure it out the string's encoding. + +=cut + +sub _GuessCharset { + my $fallback = 'iso-8859-1'; + my $charset; + + if ( @RT::EmailInputEncodings and eval { require Encode::Guess; 1 } ) { + Encode::Guess->set_suspects(@RT::EmailInputEncodings); + my $decoder = Encode::Guess->guess( $_[0] ); + + if ( ref $decoder ) { + $charset = $decoder->name; + $RT::Logger->debug("Guessed encoding: $charset"); + return $charset; + } + elsif ($decoder =~ /(\S+ or .+)/) { + my %matched = map { $_ => 1 } split(/ or /, $1); + return 'utf-8' if $matched{'utf8'}; # one and only normalization + + foreach my $suspect (@RT::EmailInputEncodings) { + next unless $matched{$suspect}; + $RT::Logger->debug("Encode::Guess ambiguous ($decoder); using $suspect"); + $charset = $suspect; + last; + } + } + else { + $RT::Logger->warning("Encode::Guess failed: $decoder; fallback to $fallback"); + } + } + else { + $RT::Logger->warning("Cannot Encode::Guess; fallback to $fallback"); + } + + return($charset || $fallback); +} + +# }}} + +# {{{ SetMIMEHeadToEncoding + +=head2 SetMIMEHeadToEncoding HEAD OLD_CHARSET NEW_CHARSET + +Converts a MIME Head from one encoding to another. This totally violates the RFC. +We should never need this. But, Surprise!, MUAs are badly broken and do this kind of stuff +all the time + + +=cut + +sub SetMIMEHeadToEncoding { + my ( $head, $charset, $enc, $preserve_words ) = ( shift, shift, shift, shift ); + + $charset = 'utf-8' if $charset eq 'utf8'; + $enc = 'utf-8' if $enc eq 'utf8'; + + return if $charset eq $enc and $preserve_words; + + foreach my $tag ( $head->tags ) { + my @values = $head->get_all($tag); + $head->delete($tag); + foreach my $value (@values) { + if ( $charset ne $enc ) { + + eval { + Encode::_utf8_off($value); + Encode::from_to( $value, $charset => $enc ); + }; + if ($@) { + $RT::Logger->error( "Encoding error: " . $@ + . " defaulting to ISO-8859-1 -> UTF-8" ); + eval { Encode::from_to( $value, 'iso-8859-1' => $enc ) }; + if ($@) { + $RT::Logger->crit( "Totally failed to convert to utf-8: " . $@ . " I give up" ); + } + } + } + $value = DecodeMIMEWordsToEncoding( $value, $enc ) unless $preserve_words; + $head->add( $tag, $value ); + } + } + +} +# }}} + +eval "require RT::I18N_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/I18N_Vendor.pm}); +eval "require RT::I18N_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/I18N_Local.pm}); + +1; # End of module. + diff --git a/rt/lib/RT/I18N/cs.pm b/rt/lib/RT/I18N/cs.pm new file mode 100644 index 000000000..36e2bc6af --- /dev/null +++ b/rt/lib/RT/I18N/cs.pm @@ -0,0 +1,68 @@ +package RT::I18N::cs; + +# # CZECH TRANSLATORS COMMENTS see Locale::Maketext::TPJ13 +# Obecne parametry musi byt docela slozite (v pripade Slavistickych jazyku) +# typu pocet, slovo, pad a rod +# +#pad 1., rod muzsky: +#0 krecku +#1 krecek +#2..4 krecci +#5.. krecku (nehodi se zde resit pravidlo mod 1,2,3,4 krom mod 11,12,13,14) +# +#0 kabatu +#1 kabat +#2..4 kabaty +#5 kabatu +# +# => Vyplati se udelat quant s parametry typu pocet, slovo1, slovo2..4, slovo5 a slovo0 +# + +sub quant { + my($handle, $num, @forms) = @_; + + return $num if @forms == 0; # what should this mean? + return $forms[3] if @forms > 3 and $num == 0; # special zeroth case + + # Normal case: + # Note that the formatting of $num is preserved. + #return( $handle->numf($num) . ' ' . $handle->numerate($num, @forms) ); + return( $handle->numerate($num, @forms) ); + # Most human languages put the number phrase before the qualified phrase. +} + + +sub numerate { + # return this lexical item in a form appropriate to this number + my($handle, $num, @forms) = @_; + my $s = ($num == 1); + + return '' unless @forms; + return + $s ? $forms[0] : + ( $num > 1 && $num < 5 ) ? $forms[1] : + $forms[2]; +} + +#-------------------------------------------------------------------------- + +sub numf { + my($handle, $num) = @_[0,1]; + if($num < 10_000_000_000 and $num > -10_000_000_000 and $num == int($num)) { + $num += 0; # Just use normal integer stringification. + # Specifically, don't let %G turn ten million into 1E+007 + } else { + $num = CORE::sprintf("%G", $num); + # "CORE::" is there to avoid confusion with the above sub sprintf. + } + while( $num =~ s/^([-+]?\d+)(\d{3})/$1,$2/s ) {1} # right from perlfaq5 + # The initial \d+ gobbles as many digits as it can, and then we + # backtrack so it un-eats the rightmost three, and then we + # insert the comma there. + + $num =~ tr<.,><,.> if ref($handle) and $handle->{'numf_comma'}; + # This is just a lame hack instead of using Number::Format + return $num; +} + +1; diff --git a/rt/lib/RT/I18N/cs.po b/rt/lib/RT/I18N/cs.po new file mode 100644 index 000000000..75f349595 --- /dev/null +++ b/rt/lib/RT/I18N/cs.po @@ -0,0 +1,4496 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: RT 3.0.0\n" +"POT-Creation-Date: 2002-05-02 11:36+0800\n" +"PO-Revision-Date: 2003-03-24 03:00+0800\n" +"Last-Translator: Jan Okrouhly <okrouhly@civ.zcu.cz>\n" +"Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +msgid "#" +msgstr "#" + +#: html/Admin/Queues/Scrip.html:55 +#. ($QueueObj->id) +msgid "#%1" +msgstr "#%1" + +#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 +#. ($Ticket->Id, $Ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "#%1: %2" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "%1 %2" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($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 %3.%2.%7 %4:%5:%6" + +#: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "%1 %2 pÅ™idáno" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "- %1 %2" + +#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 %2 zmÄ›nÄ›no na %3" + +#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "%1 %2 smazáno" + +#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 with template %3" +msgstr "%1 %2 se vzorem %3" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "%1 (%2) %3 tento požadavek\\n" + +#: html/Search/Listing.html:57 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "%1. až %2. zobrazený" + +#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "%1 - argument k pÅ™edání %2" + +#: bin/rt-crontool:185 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - Výstupní stav jde do STDOUT" + +#: bin/rt-crontool:179 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - Jaký akÄní modul chcete použít" + +#: bin/rt-crontool:173 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - Jaký podmínkový modul chcete použít" + +#: bin/rt-crontool:166 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - Jaký vyhledávací modul chcete použít" + +#: lib/RT/ScripAction_Overlay.pm:122 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "ScripAction %1 nahrána" + +#: lib/RT/Ticket_Overlay.pm:3471 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "%1 pÅ™idáno jako hodnota pro %2" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on" +msgstr "%1 aliasy vyžadují k Äinnosti TicketId" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on (from %2) %3" +msgstr "%1 aliasy vyžadují k Äinnosti TicketId (odesílatel %2) %3" + +#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#. ($args{'Base'}) +#. ($args{'Target'}) +msgid "%1 appears to be a local object, but can't be found in the database" +msgstr "%1 vypadá jako lokální objekt, ale není v databázi" + +#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 uživatelem %2" + +#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#. ($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 zmÄ›nÄ›no z %2 na %3" + +#: lib/RT/Interface/Web.pm:857 +msgid "%1 could not be set to %2." +msgstr "%1 nemůže být nastaveno na %2." + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "%1 nemůže zaÄít transakci (%2)\\n" + +#: lib/RT/Ticket_Overlay.pm:2813 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 nemůže nastavit stav na vyÅ™eÅ¡en. RT databáze může být nekonzistentní." + +#: html/Elements/MyTickets:25 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "%1 nejdůležitÄ›jších požadavků, které vlastním..." + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "%1 nejdůležitÄ›jších požadavků, které žádám..." + +#: bin/rt-crontool:161 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "%1 je nástroj zpracující požadavky z vnÄ›jšího plánovacího nástroje jako je cron" + +#: lib/RT/Queue_Overlay.pm:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 již není %2 této fronty." + +#: lib/RT/Ticket_Overlay.pm:1570 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 již není %2 tohoto požadavku." + +#: lib/RT/Ticket_Overlay.pm:3527 +#. ($args{'Value'}, $cf->Name) +msgid "%1 is no longer a value for custom field %2" +msgstr "%1 již není hodnotou uživatelské položky %2" + +#: NOT FOUND IN SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "%1 není platným identifikátorem fronty." + +#: html/Ticket/Elements/ShowBasics:36 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 %quant(%1,minuta,minuty,minut,minut)" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "%1 nezobrazeno" + +#: html/User/Elements/DelegateRights:76 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "práva %1" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "%1 provedeno\\n" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "typ %1 neznámý pro $MessageId" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "typ %1 neznámý pro %2" + +#: lib/RT/Action/ResolveMembers.pm:42 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 vyÅ™eší vÅ¡echny Äleny skupiny vyÅ™eÅ¡eného požadavku." + +#: NOT FOUND IN SOURCE +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "%1 odloží [místní] BÃZI, je-li závislá [Äi Älenem] na spjatém požadavku." + +#: lib/RT/Transaction_Overlay.pm:435 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: neudána příloha" + +#: html/Ticket/Elements/ShowTransaction:102 +#. ($size) +msgid "%1b" +msgstr "%1 B" + +#: html/Ticket/Elements/ShowTransaction:99 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "%1 kB" + +#: lib/RT/Ticket_Overlay.pm:1140 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "%1 je neplatnou hodnotou pro stav" + +#: NOT FOUND IN SOURCE +msgid "'%1' not a recognized action. " +msgstr "%1 je neznámá akce." + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete scrip)" +msgstr "(ZatrhnÄ›te pro smazání scripu)" + +#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +msgid "(Check box to delete)" +msgstr "(ZatrhnÄ›te pro smazání)" + +#: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Zadejte identifikátory Äi URL požadavku, oddÄ›lené mezerami)" + +#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#. ($RT::CorrespondAddress) +#. ($RT::CommentAddress) +msgid "(If left blank, will default to %1" +msgstr "(Pro prázdné pole se použije %1)" + +#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +msgid "(No custom fields)" +msgstr "(Žádné uživatelské položky)" + +#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +msgid "(No members)" +msgstr "(Žádní Älenové)" + +#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +msgid "(No scrips)" +msgstr "Žádné scripy" + +#: html/Admin/Elements/EditTemplates:31 +msgid "(No templates)" +msgstr "(Žádné vzory)" + +#: html/Ticket/Update.html:85 +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 "(ZaÅ¡le skrytou kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" + +#: 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 "(ZaÅ¡le skrytou kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" + +#: html/Ticket/Create.html:79 +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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. Tito lidé <b>budou</b> dostávat budoucí aktualizace.)" + +#: html/Ticket/Update.html:81 +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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>NemÄ›ní</b> příjemce budoucích aktualizací" + +#: 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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" + +#: html/Ticket/Create.html:69 +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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. Tito lidé <b>budou</b> dostávat budoucí aktualizace.)" + +#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +msgid "(empty)" +msgstr "(prázdná)" + +#: html/Admin/Users/index.html:39 +msgid "(no name listed)" +msgstr "žádné jméno nebylo vypsáno" + +#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +msgid "(no subject)" +msgstr "(bez pÅ™edmÄ›tu)" + +#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +msgid "(no value)" +msgstr "(bez hodnoty)" + +#: html/Ticket/Elements/EditLinks:116 +msgid "(only one ticket)" +msgstr "(jen jeden požadavek)" + +#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +msgid "(pending approval)" +msgstr "(oÄekávájící schválení)" + +#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +msgid "(pending other tickets)" +msgstr "(jiné oÄekávající požadavky)" + +#: html/Admin/Users/Modify.html:50 +msgid "(required)" +msgstr "(povinné)" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "(untitled)" +msgstr "(nepojmenováno)" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "25 mnou vlastnÄ›ných nejdůležitÄ›jších požadavků..." + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "25 mnou žádaných nejdůležitÄ›jších požadavků..." + +#: html/Ticket/Elements/ShowBasics:32 +msgid "<% $Ticket->Status%>" +msgstr "<% $Ticket->Status%>" + +#: html/Elements/SelectTicketTypes:27 +msgid "<% $_ %>" +msgstr "<% $_ %>" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"Nový požadavek v\"> %1" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "Prázdný vzor" + +#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +msgid "ACE not found" +msgstr "ACE nenalezeno" + +#: lib/RT/ACE_Overlay.pm:831 +msgid "ACEs can only be created and deleted." +msgstr "ACE mohou být jen vytvářeny nebo ruÅ¡eny." + +#: bin/rt-commit-handler:755 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "PÅ™eruÅ¡eno k zamezení nežádoucích zmÄ›n požadavku.\\n" + +#: html/User/Elements/Tabs:32 +msgid "About me" +msgstr "O mnÄ›" + +#: html/Admin/Users/Modify.html:80 +msgid "Access control" +msgstr "Řízení přístupu" + +#: html/Admin/Elements/EditScrip:57 +msgid "Action" +msgstr "Akce" + +#: lib/RT/Scrip_Overlay.pm:147 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "Akce %1 nenalezena" + +#: bin/rt-crontool:123 +msgid "Action committed." +msgstr "Akce provedena." + +#: bin/rt-crontool:119 +msgid "Action prepared..." +msgstr "Akce pÅ™ipravena..." + +#: html/Search/Bulk.html:92 +msgid "Add AdminCc" +msgstr "PÅ™idat AdminCc" + +#: html/Search/Bulk.html:90 +msgid "Add Cc" +msgstr "PÅ™idat Cc" + +#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +msgid "Add More Files" +msgstr "PÅ™idat další soubory" + +#: html/Search/Bulk.html:88 +msgid "Add Requestor" +msgstr "PÅ™idat Žadatele" + +#: NOT FOUND IN SOURCE +msgid "Add a new a global scrip" +msgstr "PÅ™idat nový globální scrip" + +#: NOT FOUND IN SOURCE +msgid "Add a scrip to this queue" +msgstr "PÅ™idat scrip k této frontÄ›" + +#: html/Admin/Global/Scrip.html:55 +msgid "Add a scrip which will apply to all queues" +msgstr "PÅ™idat scrip do vÅ¡ech front" + +#: html/Search/Bulk.html:118 +msgid "Add comments or replies to selected tickets" +msgstr "PÅ™idat komentáře Äi odpovÄ›di k vybraným požadavkům" + +#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +msgid "Add members" +msgstr "PÅ™idat Äleny" + +#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +msgid "Add new watchers" +msgstr "PÅ™idat nové pozorovatele" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "PÅ™idatDalšíStav" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "Uživatel pÅ™idán do této fronty jako %1" + +#: lib/RT/Ticket_Overlay.pm:1454 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "Uživatel pÅ™idán k tomuto požadavku jako %1" + +#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +msgid "Address1" +msgstr "Adresa1" + +#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +msgid "Address2" +msgstr "Adresa2" + +#: html/Ticket/Create.html:74 +msgid "Admin Cc" +msgstr "Admin Cc" + +#: etc/initialdata:274 +msgid "Admin Comment" +msgstr "Administrativní komentář" + +#: etc/initialdata:256 +msgid "Admin Correspondence" +msgstr "Administrativní korespondence" + +#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +msgid "Admin queues" +msgstr "Správa/Front" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "Správa/Uživatelů" + +#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +msgid "Admin/Global configuration" +msgstr "Správa/Globální konfigurace" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "Správa/Skupin" + +#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +msgid "Admin/Queue/Basics" +msgstr "Správa/Front/Základních údajů" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "Spravovat vÅ¡echny osobní skupiny" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +msgid "AdminCc" +msgstr "AdminCc" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "AdminComment" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "AdminCorrespondence" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "AdminCustomFields" +msgstr "Spravovat uživatelem definované položky" + +#: lib/RT/Group_Overlay.pm:146 +msgid "AdminGroup" +msgstr "Spravovat skupinu" + +#: lib/RT/Group_Overlay.pm:148 +msgid "AdminGroupMembership" +msgstr "Spravovat Älenství ve skupinách" + +#: lib/RT/System.pm:59 +msgid "AdminOwnPersonalGroups" +msgstr "Spravovat vlastní osobní skupiny" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "AdminQueue" +msgstr "Spravovat frontu" + +#: lib/RT/System.pm:60 +msgid "AdminUsers" +msgstr "Spravovat uživatele" + +#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +msgid "Administrative Cc" +msgstr "Administrativní Cc" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "PokroÄilé Vyhledávání" + +#: html/Elements/SelectDateRelation:36 +msgid "After" +msgstr "Po" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "Stáří" + +#: html/Admin/Elements/EditCustomFields:96 +msgid "All Custom Fields" +msgstr "VÅ¡echny uživatelské položky" + +#: html/Admin/Queues/index.html:53 +msgid "All Queues" +msgstr "VÅ¡echny Fronty" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "Vždy posílá zprávu žadatelům nezávisle na odesílateli" + +#: html/Elements/Tabs:58 +msgid "Approval" +msgstr "Schvalování" + +#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#. ($Ticket->Id, $Ticket->Subject) +#. ($ticket->id, $msg) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Approval #%1: %2" +msgstr "Schválení #%1: $2" + +#: html/Approvals/index.html:54 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "Schválení #$1: Poznámky neuloženy kvůli systémové chybÄ›" + +#: html/Approvals/index.html:52 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "Schválení #%1: Poznámky uloženy" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "Detaily schválení" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "Schvalovací diagram" + +#: html/Approvals/Elements/Approve:45 +msgid "Approve" +msgstr "Schválit" + +#: etc/initialdata:431 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "Poznámky schvalovatele: %1" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "dub" + +#: html/Elements/SelectSortOrder:35 +msgid "Ascending" +msgstr "VzestupnÄ›" + +#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +msgid "Attach" +msgstr "PÅ™iložit" + +#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +msgid "Attach file" +msgstr "PÅ™ipojit soubor" + +#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +msgid "Attached file" +msgstr "PÅ™ipojený soubor" + +#: html/SelfService/Attachment/dhandler:36 +msgid "Attachment '%1' could not be loaded" +msgstr "Příloha '%1' nemůže být nahrána" + +#: lib/RT/Transaction_Overlay.pm:443 +msgid "Attachment created" +msgstr "Příloha vytvoÅ™ena" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "Jméno souboru přílohy" + +#: html/Ticket/Elements/ShowAttachments:26 +msgid "Attachments" +msgstr "Přílohy" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "srp" + +#: html/Admin/Elements/ModifyUser:66 +msgid "AuthSystem" +msgstr "AuthSystem" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "Automatická odpovÄ›Ä" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "Automaticky odpovÄ›z žadatelům" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "Automatická odpovÄ›Ä Å¾adatelům" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "Chybná PGP signatura: %1\\n" + +#: html/SelfService/Attachment/dhandler:40 +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "Chybný identifikátor přílohy. Nelze nalézt přílohu'%1'\\n" + +#: bin/rt-commit-handler:827 +#. ($val) +msgid "Bad data in %1" +msgstr "Chybná data v %1" + +#: html/SelfService/Attachment/dhandler:43 +#. ($trans, $AttachmentObj->TransactionId()) +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "Chybné Äíslo transakce u přílohy. %1 má být %2\\n" + +#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +msgid "Basics" +msgstr "Základní údaje" + +#: html/Ticket/Update.html:83 +msgid "Bcc" +msgstr "Bcc" + +#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +msgid "Be sure to save your changes" +msgstr "Neopomeňte uložit vaÅ¡e zmÄ›ny" + +#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +msgid "Before" +msgstr "PÅ™ed" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "ZaÄátek schvalování" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "Prázdný" + +#: html/Search/Listing.html:79 +msgid "Bookmarkable URL for this search" +msgstr "Uložitelné URL pro toto hledání" + +#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +msgid "Brief headers" +msgstr "Zkrácené hlaviÄky" + +#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +msgid "Bulk ticket update" +msgstr "Hromadná úprava požadavků" + +#: lib/RT/User_Overlay.pm:1331 +msgid "Can not modify system users" +msgstr "Nelze mÄ›nit systémové uživatele" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Can this principal see this queue" +msgstr "Může tento uživatel vidÄ›t tuto frontu" + +#: lib/RT/CustomField_Overlay.pm:144 +msgid "Can't add a custom field value without a name" +msgstr "Uživatelské položce nelze pÅ™idat hodnotu beze jména" + +#: lib/RT/Link_Overlay.pm:132 +msgid "Can't link a ticket to itself" +msgstr "Požadavek nelze svázat se sebou samým" + +#: lib/RT/Ticket_Overlay.pm:2787 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "Nelze slouÄit do slouÄeného požadavku. To by se vám nemÄ›lo nikdy stát." + +#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +msgid "Can't specifiy both base and target" +msgstr "Nelze zadat zároveň zdroj i cíl" + +#: html/autohandler:112 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "Nelze vytvoÅ™it uživatele: %1" + +#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +msgid "Cc" +msgstr "Cc" + +#: html/SelfService/Prefs.html:31 +msgid "Change password" +msgstr "ZmÄ›na hesla" + +#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +msgid "Check box to delete" +msgstr "ZaÅ¡rtnutím odstraníte" + +#: html/Admin/Elements/SelectRights:31 +msgid "Check box to revoke right" +msgstr "ZatrhnÄ›te k odebrání práva" + +#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +msgid "Children" +msgstr "Potomci" + +#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +msgid "City" +msgstr "MÄ›sto" + +#: html/Ticket/Elements/ShowDates:47 +msgid "Closed" +msgstr "VyÅ™eÅ¡eno" + +#: html/SelfService/Elements/Tabs:60 +msgid "Closed requests" +msgstr "UzavÅ™ené požadavky" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "Neznámý příkaz!\\n" + +#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +msgid "Comment" +msgstr "Komentovat" + +#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +msgid "Comment Address" +msgstr "Adresa pro komentáře" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "Komentář nezaznamenán" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Comment on tickets" +msgstr "Komentovat požadavky" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "CommentOnTicket" +msgstr "Komentovat požadavky" + +#: html/Admin/Elements/ModifyUser:35 +msgid "Comments" +msgstr "Poznámky" + +#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +msgid "Comments (Not sent to requestors)" +msgstr "Komentář (Neposílá se žadatelům)" + +#: html/Search/Bulk.html:122 +msgid "Comments (not sent to requestors)" +msgstr "Komentář (nepoÅ¡le se žadatelům)" + +#: html/Elements/ViewUser:27 +#. ($name) +msgid "Comments about %1" +msgstr "Poznámky o %1" + +#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +msgid "Comments about this user" +msgstr "Poznámky o tomto uživateli" + +#: lib/RT/Transaction_Overlay.pm:545 +msgid "Comments added" +msgstr "Komentáře pÅ™idány" + +#: lib/RT/Action/Generic.pm:140 +msgid "Commit Stubbed" +msgstr "Commit v zárodku" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "Omezení pÅ™ekladu" + +#: html/Admin/Elements/EditScrip:41 +msgid "Condition" +msgstr "Podmínka" + +#: bin/rt-crontool:109 +msgid "Condition matches..." +msgstr "Podmínky splnÄ›ny..." + +#: lib/RT/Scrip_Overlay.pm:160 +msgid "Condition not found" +msgstr "Podmínka nenalezena" + +#: html/Elements/Tabs:52 +msgid "Configuration" +msgstr "Správa" + +#: html/SelfService/Prefs.html:33 +msgid "Confirm" +msgstr "Potvrzení" + +#: html/Admin/Elements/ModifyUser:60 +msgid "ContactInfoSystem" +msgstr "Kontaktní informaÄní systém" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "Datum kontaktu '%1' nemůže být rozpoznáno" + +#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +msgid "Content" +msgstr "Obsah" + +#: etc/initialdata:266 +msgid "Correspondence" +msgstr "Korespondence" + +#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +msgid "Correspondence Address" +msgstr "Adresa pro korespondenci" + +#: lib/RT/Transaction_Overlay.pm:541 +msgid "Correspondence added" +msgstr "Korespondence zaznamenána" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "Korespondence nebyla zaznamenána" + +#: lib/RT/Ticket_Overlay.pm:3458 +msgid "Could not add new custom field value for ticket. " +msgstr "Nelze pÅ™idat novou hodnotu uživatelské položky požadavku. " + +#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +msgid "Could not change owner. " +msgstr "Nelze zmÄ›nit vlastníka. " + +#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#. ($msg) +msgid "Could not create CustomField" +msgstr "Nelze vytvoÅ™it Uživatelskou položku" + +#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +msgid "Could not create group" +msgstr "Nelze vytvoÅ™it skupinu" + +#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#. ($msg) +msgid "Could not create template: %1" +msgstr "Nelze vytvoÅ™it vzor: %1" + +#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +msgid "Could not create ticket. Queue not set" +msgstr "Nelze vytvoÅ™it požadavek. Nenastavena fronta" + +#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +msgid "Could not create user" +msgstr "Nelze vytvoÅ™it uživatele" + +#: NOT FOUND IN SOURCE +msgid "Could not find a ticket with id %1" +msgstr "Nelze nalézt požadavek s identifikátorem %1" + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "Nelze nalézt skupinu %1." + +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +msgid "Could not find or create that user" +msgstr "Tohoto uživatele nelze nalézt nebo vytvoÅ™it" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +msgid "Could not find that principal" +msgstr "Nelze naléze tohoto uživatele" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "Nelze nalézt uživatele %1." + +#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +msgid "Could not load group" +msgstr "Nelze naÄíst skupinu" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "Tento uživatel nemůže být %1 této fronty" + +#: lib/RT/Ticket_Overlay.pm:1443 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "Tento uživatel nemůže být %1 tohoto požadavku" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "Tento uživatel nemůže být odstranÄ›n jako %1 této fronty" + +#: lib/RT/Ticket_Overlay.pm:1559 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "Tento uživatel nemůže být odstranÄ›n jako %1 tohoto požadavku" + +#: lib/RT/Group_Overlay.pm:985 +msgid "Couldn't add member to group" +msgstr "Do skupiny nelze pÅ™idat Älena" + +#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "Nelze vytvoÅ™it transakci: %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't figure out what to do from gpg's reply\\n" +msgstr "Nelze zjistit co dÄ›lat s gpg odpovÄ›dí\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find group\\n" +msgstr "Skupinu nelze nalézt\\n" + +#: lib/RT/Interface/Web.pm:866 +msgid "Couldn't find row" +msgstr "Nemohu nalézt sloupec" + +#: lib/RT/Group_Overlay.pm:959 +msgid "Couldn't find that principal" +msgstr "Tohoto uživatele nelze nalézt" + +#: lib/RT/CustomField_Overlay.pm:175 +msgid "Couldn't find that value" +msgstr "Tuto hodnotu nelze nalézt" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find user\\n" +msgstr "Uživatele nelze nalézt\\n" + +#: lib/RT/CurrentUser.pm:112 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Z uživatelské databáze nelze naÄíst %1.\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "KonfiguraÄní soubor RT '%1'nelze naÄíst %2" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Scrips." +msgstr "Scripy nelze naÄíst." + +#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#. ($id) +msgid "Couldn't load group %1" +msgstr "Skupinu %1 nelze naÄíst" + +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +msgid "Couldn't load link" +msgstr "Vazbu nelze naÄíst" + +#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#. ($id) +msgid "Couldn't load queue" +msgstr "Frontu nelze naÄíst" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "Frontu %1 nelze naÄíst" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "Scrip nelze naÄíst" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "Vzor nelze naÄíst" + +#: html/Admin/Users/Prefs.html:79 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "Uživatele (%1) nelze naÄíst" + +#: html/SelfService/Display.html:166 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Požadavek '%1' nelze naÄíst" + +#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +msgid "Country" +msgstr "ZemÄ›" + +#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +msgid "Create" +msgstr "VytvoÅ™it" + +#: etc/initialdata:128 +msgid "Create Tickets" +msgstr "VytvoÅ™it požadavky" + +#: html/Admin/Elements/EditCustomField:58 +msgid "Create a CustomField" +msgstr "VytvoÅ™it uživatelskou položku" + +#: html/Admin/Queues/CustomField.html:48 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "VytvoÅ™ení uživatelské položky pro frontu %1" + +#: html/Admin/Global/CustomField.html:48 +msgid "Create a CustomField which applies to all queues" +msgstr "VytvoÅ™ení uživatelské položky pro vÅ¡echny front" + +#: NOT FOUND IN SOURCE +msgid "Create a new Custom Field" +msgstr "VytvoÅ™it novou uživatelskou položku" + +#: NOT FOUND IN SOURCE +msgid "Create a new global scrip" +msgstr "VytvoÅ™it nový globální scrip" + +#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +msgid "Create a new group" +msgstr "VytvoÅ™it novou skupinu" + +#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +msgid "Create a new personal group" +msgstr "VytvoÅ™it novou vlastní skupinu" + +#: NOT FOUND IN SOURCE +msgid "Create a new queue" +msgstr "VytvoÅ™it novou frontu" + +#: NOT FOUND IN SOURCE +msgid "Create a new scrip" +msgstr "VytvoÅ™it nový scrip" + +#: NOT FOUND IN SOURCE +msgid "Create a new template" +msgstr "VytvoÅ™it nový vzor" + +#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +msgid "Create a new ticket" +msgstr "VytvoÅ™ení nového požadavku" + +#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +msgid "Create a new user" +msgstr "VytvoÅ™it nového uživatele" + +#: html/Admin/Queues/Modify.html:103 +msgid "Create a queue" +msgstr "VytvoÅ™it frontu" + +#: NOT FOUND IN SOURCE +msgid "Create a queue called" +msgstr "VytvoÅ™it frontu nazvanou" + +#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +msgid "Create a request" +msgstr "VytvoÅ™it požadavek" + +#: html/Admin/Queues/Scrip.html:59 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "VytvoÅ™it scrips pro frontu %1" + +#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +msgid "Create a template" +msgstr "VytvoÅ™it vzor" + +#: etc/initialdata:130 +msgid "Create new tickets based on this scrip's template" +msgstr "Vytvářet požadavky podle toho vzoru scripu" + +#: html/SelfService/Create.html:81 +msgid "Create ticket" +msgstr "VytvoÅ™it požadavek" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Create tickets in this queue" +msgstr "Vytvářet požadavky v této frontÄ›" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Create, delete and modify custom fields" +msgstr "Vytvářet, mazat a mÄ›nit uživatelen definované položky" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "Create, delete and modify queues" +msgstr "Vytvářet, mazat a mÄ›nit fronty" + +#: NOT FOUND IN SOURCE +msgid "Create, delete and modify the members of any user's personal groups" +msgstr "Vytvářet, mazat a mÄ›nit Äleny uživatelských osobních skupin" + +#: lib/RT/System.pm:59 +msgid "Create, delete and modify the members of personal groups" +msgstr "Vytvářet, mazat a mÄ›nit Äleny osobních skupin" + +#: lib/RT/System.pm:60 +msgid "Create, delete and modify users" +msgstr "Vytvářen, mazat a mÄ›nit uživatele" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "CreateTicket" +msgstr "VytvoÅ™it požadavek" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +msgid "Created" +msgstr "VytvoÅ™eno" + +#: html/Admin/Elements/EditCustomField:71 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "Uživatelská položka %1 vytvoÅ™ena" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "Vzor %1 vytvoÅ™en" + +#: html/Ticket/Elements/EditLinks:28 +msgid "Current Relationships" +msgstr "Aktuální relace" + +#: html/Admin/Elements/EditScrips:30 +msgid "Current Scrips" +msgstr "Aktuální scripy" + +#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +msgid "Current members" +msgstr "Aktuální Älenové" + +#: html/Admin/Elements/SelectRights:29 +msgid "Current rights" +msgstr "Aktuální práva" + +#: html/Search/Listing.html:71 +msgid "Current search criteria" +msgstr "Aktuální vyhledávací podmínky" + +#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +msgid "Current watchers" +msgstr "Aktuální pozorovatelé" + +#: html/Admin/Global/CustomField.html:55 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "Uživatelská položka #%1" + +#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +msgid "Custom Fields" +msgstr "Uživatelské položky" + +#: html/Admin/Elements/EditScrip:73 +msgid "Custom action cleanup code" +msgstr "ÄŒistící kód uživatelské akce" + +#: html/Admin/Elements/EditScrip:65 +msgid "Custom action preparation code" +msgstr "Přípravný kód uživatelské akce" + +#: html/Admin/Elements/EditScrip:49 +msgid "Custom condition" +msgstr "Uživatelská podmínka" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "Užitavelská položka %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "Uživatelská položka %1 má hodnotu." + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "Uživatelská položka %1 nemá hodnotu." + +#: lib/RT/Ticket_Overlay.pm:3360 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Uživatelská položka %1 nenalezena" + +#: html/Admin/Elements/EditCustomFields:197 +msgid "Custom field deleted" +msgstr "Uživatelská položka smazána" + +#: lib/RT/Ticket_Overlay.pm:3510 +msgid "Custom field not found" +msgstr "Uživatelská položka nenalezena" + +#: lib/RT/CustomField_Overlay.pm:283 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "Hodnota %1 nemůže být nalezena v uživatelské položce %2" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "Hodnota uživatelské položky zmÄ›nÄ›na z %1 na %2" + +#: lib/RT/CustomField_Overlay.pm:185 +msgid "Custom field value could not be deleted" +msgstr "Hodnota uživatelské položky nemůže být smazána" + +#: lib/RT/CustomField_Overlay.pm:289 +msgid "Custom field value could not be found" +msgstr "Hodnota uživatelské položky nemůže být nalezena" + +#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +msgid "Custom field value deleted" +msgstr "Hodnota uživatelské položky smazána" + +#: lib/RT/Transaction_Overlay.pm:550 +msgid "CustomField" +msgstr "Uživatelská položka" + +#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +msgid "Dates" +msgstr "Datumy" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "pro" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "Implicitní vzor automatické odpovÄ›di" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "Implicitní vzor automatické odpovÄ›di" + +#: etc/initialdata:275 +msgid "Default admin comment template" +msgstr "Implicitní vzor administrativního komentáře" + +#: etc/initialdata:257 +msgid "Default admin correspondence template" +msgstr "Implicitní vzor administrativní korespondence" + +#: etc/initialdata:267 +msgid "Default correspondence template" +msgstr "Implicitní korespondenÄní vzor" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "Implicitní transakÄní vzor" + +#: lib/RT/Transaction_Overlay.pm:645 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "Defaulní: %1/%2 zmÄ›nÄ›no z %3 na %4" + +#: html/User/Delegation.html:25 html/User/Delegation.html:28 +msgid "Delegate rights" +msgstr "Delegovat práva" + +#: lib/RT/System.pm:63 +msgid "Delegate specific rights which have been granted to you." +msgstr "Delegovat specifická práva, která vám byla poskytnuta." + +#: lib/RT/System.pm:63 +msgid "DelegateRights" +msgstr "Delegovat práva" + +#: html/User/Elements/Tabs:38 +msgid "Delegation" +msgstr "Pověření" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "Smazat" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "Delete tickets" +msgstr "Mazat požadavky" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "DeleteTicket" +msgstr "Smazat požadavek" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "Smazání tohoto objektu mohlo poruÅ¡it referenÄní integritu" + +#: lib/RT/Queue_Overlay.pm:292 +msgid "Deleting this object would break referential integrity" +msgstr "Smazání tohoto objektu by mohlo poruÅ¡it referenÄní integritu" + +#: lib/RT/User_Overlay.pm:430 +msgid "Deleting this object would violate referential integrity" +msgstr "Smazání tohoto objektu by mohlo naruÅ¡it referenÄní integritu" + +#: html/Approvals/Elements/Approve:46 +msgid "Deny" +msgstr "Zamítnout" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +msgid "Depended on by" +msgstr "Je rekvizitou pro" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "Závistlosti: \\n" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +msgid "Depends on" +msgstr "Závisející na" + +#: html/Elements/SelectSortOrder:35 +msgid "Descending" +msgstr "SestupnÄ›" + +#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +msgid "Describe the issue below" +msgstr "PopiÅ¡te případ níže" + +#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +msgid "Description" +msgstr "Popis" + +#: html/SelfService/Elements/MyRequests:44 +msgid "Details" +msgstr "Podrobnosti" + +#: html/Ticket/Elements/Tabs:85 +msgid "Display" +msgstr "Zobrazit" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Display Access Control List" +msgstr "Zobrazit přístupová práva" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Display Scrip templates for this queue" +msgstr "Zobrazovat scrips vzory pro tuto frontu" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Display Scrips for this queue" +msgstr "Zobrazovat scripy pro tuto frontu" + +#: html/Ticket/Elements/ShowHistory:35 +msgid "Display mode" +msgstr "Režim zobrazení" + +#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 +#. ($Ticket->id) +msgid "Display ticket #%1" +msgstr "Zobraz požadavek #%1" + +#: lib/RT/System.pm:54 +msgid "Do anything and everything" +msgstr "DÄ›lat cokoli a vÅ¡echno" + +#: html/Elements/Refresh:30 +msgid "Don't refresh this page." +msgstr "NeobÄerstvovat tuto stránku." + +#: html/Search/Elements/PickRestriction:114 +msgid "Don't show search results" +msgstr "Nezobrazit výsledky hledání" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "Download" +msgstr "Stáhnout" + +#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +msgid "Due" +msgstr "Termín dokonÄení" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "Datum termínu dokonÄení '%1' nemůže být rozpoznán" + +#: bin/rt-commit-handler:754 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "CHYBA: Nelze naÄíst požadavek '%1': %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "Upravit" + +#: html/Admin/Queues/CustomFields.html:45 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "Upravit uživatelské položky pro %1" + +#: html/Ticket/ModifyLinks.html:36 +msgid "Edit Relationships" +msgstr "Upravit relace" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "Upravit vzory pro frontu %1" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "Upravit scprips" + +#: html/Admin/Global/index.html:46 +msgid "Edit system templates" +msgstr "Úprava systémových vzorů" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "Upravit vzory pro %1" + +#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "Úprava konfigurace pro frontu %1" + +#: html/Admin/Elements/ModifyUser:25 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "Úprava konfigurace pro uživatele %1" + +#: html/Admin/Elements/EditCustomField:74 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Úprava uživatelské položky %1" + +#: html/Admin/Groups/Members.html:32 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Úprava Älenství ve skupinÄ› %1" + +#: html/User/Groups/Members.html:129 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "Úprava Älenství ve vlastní skupinÄ› %1" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "Úprava vzoru %1" + +#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +msgid "Either base or target must be specified" +msgstr "Zdroj Äi cíl musí být zadány" + +#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +msgid "Email" +msgstr "Email" + +#: lib/RT/User_Overlay.pm:188 +msgid "Email address in use" +msgstr "Email adresa je použita" + +#: html/Admin/Elements/ModifyUser:42 +msgid "EmailAddress" +msgstr "Email adresa" + +#: html/Admin/Elements/ModifyUser:54 +msgid "EmailEncoding" +msgstr "Kódování emailu" + +#: html/Admin/Elements/EditCustomField:36 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "Povolena (zruÅ¡ením zatrhnutí zablokujete tuto uživatelskou položky)" + +#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "Povolena (zruÅ¡ením zatrhnutí zablokujete tuto skupinu)" + +#: html/Admin/Queues/Modify.html:84 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Povoleno (zruÅ¡ení zatrhnutí zablokuje tuto frontu)" + +#: html/Admin/Elements/EditCustomFields:99 +msgid "Enabled Custom Fields" +msgstr "Povolené uživatelské položky" + +#: html/Admin/Queues/index.html:56 +msgid "Enabled Queues" +msgstr "Povolené fronty" + +#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "Povolen stav %1" + +#: lib/RT/CustomField_Overlay.pm:361 +msgid "Enter multiple values" +msgstr "Vyplnit více hodnot" + +#: lib/RT/CustomField_Overlay.pm:358 +msgid "Enter one value" +msgstr "Vyplnit jednu hodnotu" + +#: html/Ticket/Elements/EditLinks:112 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Zadejte požadavky Äi URI se nimiž požadavky svázat. OddÄ›lte více položek mezerami." + +#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +msgid "Error" +msgstr "Chyba" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Chyba v parametrech do Queue->AddWatcher" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Chyba v parametrech do Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1356 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Chyba v parametrech do Ticket->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1532 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Chyba v parametrech do Ticket->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "Kdokoli" + +#: bin/rt-crontool:194 +msgid "Example:" +msgstr "Příklad:" + +#: html/Admin/Elements/ModifyUser:64 +msgid "ExternalAuthId" +msgstr "Identifikátor externí autentizace" + +#: html/Admin/Elements/ModifyUser:58 +msgid "ExternalContactInfoId" +msgstr "Identifikátor externího kontaktu" + +#: html/Admin/Users/Modify.html:73 +msgid "Extra info" +msgstr "Doplňkové údaje" + +#: lib/RT/User_Overlay.pm:302 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Nepovedlo se nalézt uživatele 'Privilegované' pseudoskupiny." + +#: lib/RT/User_Overlay.pm:309 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Nepovedlo se nalézt uživatele 'Neprivilegované' pseudoskupiny" + +#: bin/rt-crontool:138 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "Nepovedlo se nahrát modul %1. (%2)" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "úno" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "Kon" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "Koncová priorita" + +#: lib/RT/Ticket_Overlay.pm:1162 +msgid "FinalPriority" +msgstr "Koncová priorita" + +#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +msgid "Find group whose" +msgstr "Najít skupiny které" + +#: html/Elements/Quicksearch:25 +msgid "Find new/open tickets" +msgstr "Najít nové/otevÅ™ené požadavky" + +#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +msgid "Find people whose" +msgstr "Najít ty, jejichž" + +#: html/Search/Listing.html:108 +msgid "Find tickets" +msgstr "Nalézt požadavky" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "ZávereÄné schválení" + +#: html/Ticket/Elements/Tabs:58 +msgid "First" +msgstr "První" + +#: html/Search/Listing.html:41 +msgid "First page" +msgstr "První stránka" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "Foo Bar Baz" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "Foo!" + +#: html/Search/Bulk.html:87 +msgid "Force change" +msgstr "Vynutit zmÄ›nu" + +#: html/Search/Listing.html:106 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "Nalezen%quant(%1,,y,o) %numf(%1) %quant(%1,požadavek,požadavky,požadavků)" + +#: lib/RT/Interface/Web.pm:868 +msgid "Found Object" +msgstr "Nalezen objekt" + +#: html/Admin/Elements/ModifyUser:44 +msgid "FreeformContactInfo" +msgstr "Kontaktní údaje ve volné podobÄ›" + +#: lib/RT/CustomField_Overlay.pm:38 +msgid "FreeformMultiple" +msgstr "Volná forma vícenásobnÄ›" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformSingle" +msgstr "Volná formu jedinkrát" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "pá" + +#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +msgid "Full headers" +msgstr "Celé hlaviÄky" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "Aktuální uživatel se získává z PGP podpisu\\n" + +#: lib/RT/Transaction_Overlay.pm:595 +#. ($New->Name) +msgid "Given to %1" +msgstr "Dán %1" + +#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +msgid "Global" +msgstr "Globální" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "Globální Scrips" + +#: html/Admin/Elements/SelectTemplate:38 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "Globální vzor: %1" + +#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +msgid "Go!" +msgstr "SpusÅ¥!" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "Správný PGP podpis od %1\\n" + +#: html/Search/Listing.html:50 +msgid "Goto page" +msgstr "PÅ™ejít na stránku" + +#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +msgid "Goto ticket" +msgstr "PÅ™ejít na požadavek" + +#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +msgid "Group" +msgstr "Skupina" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "Skupina %1 %2: %3" + +#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +msgid "Group Rights" +msgstr "Práva skupiny" + +#: lib/RT/Group_Overlay.pm:965 +msgid "Group already has member" +msgstr "Skupina již má Älena" + +#: html/Admin/Groups/Modify.html:77 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "Skupina nemůže být založena: %1" + +#: lib/RT/Group_Overlay.pm:497 +msgid "Group created" +msgstr "Skupina vytvoÅ™ena" + +#: lib/RT/Group_Overlay.pm:1133 +msgid "Group has no such member" +msgstr "Skupina nemá takového Älena" + +#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +msgid "Group not found" +msgstr "Skupina nenalezena" + +#: NOT FOUND IN SOURCE +msgid "Group not found.\\n" +msgstr "Skupina nenalezena.\\n" + +#: NOT FOUND IN SOURCE +msgid "Group not specified.\\n" +msgstr "Skupina neudána.\\n" + +#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +msgid "Groups" +msgstr "Skupiny" + +#: lib/RT/Group_Overlay.pm:971 +msgid "Groups can't be members of their members" +msgstr "Skupiny nemohou být svými Äleny" + +#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +msgid "Hello!" +msgstr "Ahoj!" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "Ahoj, %1" + +#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +msgid "History" +msgstr "Historie" + +#: html/Admin/Elements/ModifyUser:68 +msgid "HomePhone" +msgstr "Telefon domů" + +#: html/Elements/Tabs:46 +msgid "Homepage" +msgstr "Domovská stránka" + +#: lib/RT/Base.pm:74 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "Mám %quant(%1,míchaÄka,míchaÄky,míchaÄek)" + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "I have [quant,_1,concrete mixer]." + +#msgstr "Mám [quant,_1,MíchaÄku na beton,MíchaÄky na beton,MíchaÄek na beton]." +#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "Identifikátor" + +#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +msgid "Identity" +msgstr "Identita" + +#: etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "Odmítni původce a zruÅ¡ stávající schválení, bylo-li zamítnuto schválení" + +#: bin/rt-crontool:190 +msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." +msgstr "Byl-li tento nástroj setgid, místní uživatel jej mohl použit k získaní administrativního přístupu k RT" + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "If you've updated anything above, be sure to" +msgstr "Pokud jste zmÄ›nili cokoli nahoÅ™e, nezapomeňte" + +#: lib/RT/Interface/Web.pm:860 +msgid "Illegal value for %1" +msgstr "Neplatná hodnota pro %1" + +#: lib/RT/Interface/Web.pm:863 +msgid "Immutable field" +msgstr "NemÄ›nitelná položka" + +#: html/Admin/Elements/EditCustomFields:74 +msgid "Include disabled custom fields in listing." +msgstr "Zahrnout do výpisu blokované uživatelské položky" + +#: html/Admin/Queues/index.html:43 +msgid "Include disabled queues in listing." +msgstr "Zahrnout blokované fronty do výpisu." + +#: html/Admin/Users/index.html:47 +msgid "Include disabled users in search." +msgstr "Zahrnout blokované uživatele do vyhledávání." + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "PoÄáteÄní priorita" + +#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +msgid "InitialPriority" +msgstr "PoÄáteÄní priorita" + +#: lib/RT/ScripAction_Overlay.pm:105 +msgid "Input error" +msgstr "Chyba na vstupu" + +#: lib/RT/Ticket_Overlay.pm:3729 +msgid "Internal Error" +msgstr "VnitÅ™ní chyba" + +#: lib/RT/Record.pm:143 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "VnitÅ™ní chyba: %1" + +#: lib/RT/Group_Overlay.pm:644 +msgid "Invalid Group Type" +msgstr "Neplatný typ skupiny" + +#: lib/RT/Principal_Overlay.pm:128 +msgid "Invalid Right" +msgstr "Neplatné právo" + +#: lib/RT/Interface/Web.pm:865 +msgid "Invalid data" +msgstr "Neplatná data" + +#: lib/RT/Ticket_Overlay.pm:438 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "Neplatný vlastník. Použije se 'nobody'." + +#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "Neplatná fronta" + +#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +msgid "Invalid right" +msgstr "Neplatné právo" + +#: lib/RT/Record.pm:118 +#. ($key) +msgid "Invalid value for %1" +msgstr "Neplatná hodnota pro %1" + +#: lib/RT/Ticket_Overlay.pm:3367 +msgid "Invalid value for custom field" +msgstr "Neplatná hodnota pro uživatelskou položku" + +#: lib/RT/Ticket_Overlay.pm:345 +msgid "Invalid value for status" +msgstr "Neplatná hodnota pro stav" + +#: bin/rt-crontool:191 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "Je velmi důležité, aby neprivilegovaní uživatelé nemohli spustit tento nástroj." + +#: bin/rt-crontool:192 +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 "Pro spuÅ¡tÄ›ní tohoto nástroje se doporuÄuje založení neprivilegovaného UNIX uživatele se správným skupinovým Älenstvím a přístupem do RT." + +#: bin/rt-crontool:163 +msgid "It takes several arguments:" +msgstr "Používá nÄ›kolik parametrů:" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "VÄ›ci oÄekávající mé schválení" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "led" + +#: lib/RT/Group_Overlay.pm:149 +msgid "Join or leave this group" +msgstr "PÅ™idat se Äi odebrat z této skupiny" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "Äec" + +#: html/Ticket/Elements/Tabs:99 +msgid "Jumbo" +msgstr "Maxi" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "Äen" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "KlíÄové slovo" + +#: html/Admin/Elements/ModifyUser:52 +msgid "Lang" +msgstr "Jazyk" + +#: html/Ticket/Elements/Tabs:73 +msgid "Last" +msgstr "Poslední" + +#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +msgid "Last Contact" +msgstr "Poslední kontakt" + +#: html/Elements/SelectDateType:29 +msgid "Last Contacted" +msgstr "Naposled kontaktován" + +#: html/Search/Elements/TicketHeader:41 +msgid "Last Notified" +msgstr "Naposled upozornÄ›n" + +#: html/Elements/SelectDateType:30 +msgid "Last Updated" +msgstr "Naposled aktualizován" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "Zbývá" + +#: html/Admin/Users/Modify.html:83 +msgid "Let this user access RT" +msgstr "Umožnit tomuto uživateli přístup k RT" + +#: html/Admin/Users/Modify.html:87 +msgid "Let this user be granted rights" +msgstr "Umožnit dávat tomuto uživateli práva" + +#: NOT FOUND IN SOURCE +msgid "Limiting owner to %1 %2" +msgstr "Vlastník omezen na %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Limiting queue to %1 %2" +msgstr "Fronta omezena na %1 %2" + +#: lib/RT/Ticket_Overlay.pm:2697 +msgid "Link already exists" +msgstr "Vazba již existuje" + +#: lib/RT/Ticket_Overlay.pm:2709 +msgid "Link could not be created" +msgstr "Vazba nemůže být vytvoÅ™ena" + +#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#. ($TransString) +msgid "Link created (%1)" +msgstr "Vazba vytvoÅ™ena (%1)" + +#: lib/RT/Ticket_Overlay.pm:2638 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Vazba zruÅ¡ena (%1)" + +#: lib/RT/Ticket_Overlay.pm:2644 +msgid "Link not found" +msgstr "Vazba nenalezena" + +#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "Svázat požadavek #%1" + +#: html/Ticket/Elements/Tabs:97 +msgid "Links" +msgstr "Vazby" + +#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +msgid "Location" +msgstr "UmístÄ›ní" + +#: lib/RT.pm:158 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "Záznamový adresář %1 nenalezen nebo doň nemůže být zapisováno.\\ RT nemůže běžet." + +#: html/Elements/Header:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "PÅ™ihlášen jako %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +msgid "Login" +msgstr "PÅ™ihlásit" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "Odhlásit" + +#: html/Search/Bulk.html:86 +msgid "Make Owner" +msgstr "Nastavit vlastníka" + +#: html/Search/Bulk.html:102 +msgid "Make Status" +msgstr "Nastavit stav" + +#: html/Search/Bulk.html:109 +msgid "Make date Due" +msgstr "Nastavit datum termínu dokonÄení" + +#: html/Search/Bulk.html:110 +msgid "Make date Resolved" +msgstr "Nastavit datum vyÅ™eÅ¡ení" + +#: html/Search/Bulk.html:107 +msgid "Make date Started" +msgstr "Nastavit datum, kdy zaÄal" + +#: html/Search/Bulk.html:106 +msgid "Make date Starts" +msgstr "Nastavit datum, kdy zaÄne" + +#: html/Search/Bulk.html:108 +msgid "Make date Told" +msgstr "Nastavit datum posledního kontaktu" + +#: html/Search/Bulk.html:99 +msgid "Make priority" +msgstr "Nastavit prioritu" + +#: html/Search/Bulk.html:100 +msgid "Make queue" +msgstr "Nastavit frontu" + +#: html/Search/Bulk.html:98 +msgid "Make subject" +msgstr "Nastavit pÅ™edmÄ›t" + +#: html/Admin/index.html:33 +msgid "Manage groups and group membership" +msgstr "Správa skupin a Älenství v nich" + +#: html/Admin/index.html:39 +msgid "Manage properties and configuration which apply to all queues" +msgstr "Správa vlastností a konfigurací platných ve vÅ¡ech frontách" + +#: html/Admin/index.html:36 +msgid "Manage queues and queue-specific properties" +msgstr "Správa front a jim přísluÅ¡ných vlastností" + +#: html/Admin/index.html:30 +msgid "Manage users and passwords" +msgstr "Správa uživatelů a hesel" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "bÅ™e" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "kvÄ›" + +#: lib/RT/Group_Overlay.pm:982 +msgid "Member added" +msgstr "ÄŒlen pÅ™idán" + +#: lib/RT/Group_Overlay.pm:1140 +msgid "Member deleted" +msgstr "ÄŒlen odebrán" + +#: lib/RT/Group_Overlay.pm:1144 +msgid "Member not deleted" +msgstr "ÄŒlen neodebrán" + +#: html/Elements/SelectLinkType:26 +msgid "Member of" +msgstr "ÄŒlen" + +#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +msgid "Members" +msgstr "ÄŒlenové" + +#: lib/RT/Ticket_Overlay.pm:2843 +msgid "Merge Successful" +msgstr "SlouÄení úspěšné" + +#: lib/RT/Ticket_Overlay.pm:2804 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "SlouÄení se nepodaÅ™ilo. Nelze nastavit EffectiveId" + +#: html/Ticket/Elements/EditLinks:115 +msgid "Merge into" +msgstr "SlouÄit do" + +#: html/Ticket/Update.html:102 +msgid "Message" +msgstr "Zpráva" + +#: lib/RT/Interface/Web.pm:867 +msgid "Missing a primary key?: %1" +msgstr "Chybí primární klíÄ?: %1" + +#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +msgid "Mobile" +msgstr "Mobilní telefon" + +#: html/Admin/Elements/ModifyUser:72 +msgid "MobilePhone" +msgstr "Mobilní telefon" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify Access Control List" +msgstr "Upravovat seznam přístupových práv" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "Upravit uživatelskou položku %1" + +#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +msgid "Modify Custom Fields which apply to all queues" +msgstr "Úprava uživatelských položek pro vÅ¡echny fronty" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "Modify Scrip templates for this queue" +msgstr "Upravovat vzory scripů této fronty" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "Modify Scrips for this queue" +msgstr "Upravovat scripů této fronty" + +#: NOT FOUND IN SOURCE +msgid "Modify Template %1" +msgstr "Upravovat vzor %1" + +#: html/Admin/Queues/CustomField.html:45 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "Upravovat uživatelskou položku pro frontu %1" + +#: html/Admin/Global/CustomField.html:53 +msgid "Modify a CustomField which applies to all queues" +msgstr "Upravovat uživatelskou položku pro vÅ¡echny fronty" + +#: html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "Upravovat scrip pro frontu %1" + +#: html/Admin/Global/Scrip.html:48 +msgid "Modify a scrip which applies to all queues" +msgstr "Upravovat scrip platný ve vÅ¡ech frontách" + +#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Upravit datumy pro #%1" + +#: html/Ticket/ModifyDates.html:35 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Úprav datumů pro požadavek # %1" + +#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +msgid "Modify global group rights" +msgstr "Úprava globálních skupinových práv" + +#: html/Admin/Global/GroupRights.html:33 +msgid "Modify global group rights." +msgstr "Úprava globálních skupinových práv." + +#: NOT FOUND IN SOURCE +msgid "Modify global scrips" +msgstr "Úprava globálních scrips" + +#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +msgid "Modify global user rights" +msgstr "Úprava globálních uživatelských práv" + +#: html/Admin/Global/UserRights.html:33 +msgid "Modify global user rights." +msgstr "Úprava globálních uživatelských práv." + +#: lib/RT/Group_Overlay.pm:146 +msgid "Modify group metadata or delete group" +msgstr "Upravovat metadata skupiny nebo smazat skupinu" + +#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#. ($GroupObj->Name) +msgid "Modify group rights for group %1" +msgstr "Úprava skupinových práv pro %1" + +#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "Úprava skupinových práv pro frontu %1" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Modify membership roster for this group" +msgstr "Upravovat seznam Älenů pro tuto skupinu" + +#: lib/RT/System.pm:61 +msgid "Modify one's own RT account" +msgstr "Upravovat vlastní RT úÄet" + +#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Úprava uživatelů fronty %1" + +#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#. ($Ticket->id) +#. ($Ticket->Id) +msgid "Modify people related to ticket #%1" +msgstr "Úprava uživatelů souvisejících s požadavkem #%1" + +#: html/Admin/Queues/Scrips.html:44 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Úprava scrips pro frontu %1" + +#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +msgid "Modify scrips which apply to all queues" +msgstr "Upravovat scripy platné ve vÅ¡ech frontách" + +#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#. (loc($TemplateObj->Name())) +#. ($TemplateObj->id) +msgid "Modify template %1" +msgstr "Úprava vzoru %1" + +#: html/Admin/Global/Templates.html:44 +msgid "Modify templates which apply to all queues" +msgstr "Upravit vzory pro vÅ¡echny fronty" + +#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "Úprava skupiny %1" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Modify the queue watchers" +msgstr "Upravovat pozorovatele fronty" + +#: html/Admin/Users/Modify.html:236 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "Úprava uživatele %1" + +#: html/Ticket/ModifyAll.html:37 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Úprava požadavku # %1" + +#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Úprava požadavku #%1" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Modify tickets" +msgstr "Upravovat požadavky" + +#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#. ($GroupObj->Name) +msgid "Modify user rights for group %1" +msgstr "Úprava uživatelských práv pro skupinu %1" + +#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "Úprava skupinových práv pro frontu %1" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "Úprava pozorovatelů fronty '%1'" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyACL" +msgstr "Upravovat seznam přístupových práv" + +#: lib/RT/Group_Overlay.pm:149 +msgid "ModifyOwnMembership" +msgstr "Upravovat Älenství ve skupinÄ›" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "ModifyQueueWatchers" +msgstr "Upravovat pozorovale fronty" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "ModifyScrips" +msgstr "Upravovat scripy" + +#: lib/RT/System.pm:61 +msgid "ModifySelf" +msgstr "Upravovat sebe" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "ModifyTemplate" +msgstr "Upravovat vzor" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "ModifyTicket" +msgstr "Upravovat požadavek" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "po" + +#: html/Ticket/Elements/ShowRequestor:42 +#. ($name) +msgid "More about %1" +msgstr "Více o %1" + +#: html/Admin/Elements/EditCustomFields:61 +msgid "Move down" +msgstr "Dát níže" + +#: html/Admin/Elements/EditCustomFields:53 +msgid "Move up" +msgstr "Dát výše" + +#: html/Admin/Elements/SelectSingleOrMultiple:27 +msgid "Multiple" +msgstr "Vícenásobná" + +#: lib/RT/User_Overlay.pm:179 +msgid "Must specify 'Name' attribute" +msgstr "Nutno zadat atribut 'Jméno'" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "Mnou schválené" + +#: html/Approvals/index.html:25 html/Approvals/index.html:26 +msgid "My approvals" +msgstr "Mnou schválené" + +#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +msgid "Name" +msgstr "Jméno" + +#: lib/RT/User_Overlay.pm:186 +msgid "Name in use" +msgstr "Jméno je použito" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "Je tÅ™eba schválení systémového správce" + +#: html/Ticket/Elements/ShowDates:52 +msgid "Never" +msgstr "Nikdy" + +#: html/Elements/Quicksearch:30 +msgid "New" +msgstr "Nové" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +msgid "New Password" +msgstr "Nové heslo" + +#: etc/initialdata:311 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "Nová probíhající schválení" + +#: html/Ticket/Elements/EditLinks:111 +msgid "New Relationships" +msgstr "Nové relace" + +#: html/Ticket/Elements/Tabs:36 +msgid "New Search" +msgstr "Nové vyhledávání" + +#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +msgid "New custom field" +msgstr "VytvoÅ™it uživatelskou položku" + +#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +msgid "New group" +msgstr "Založit skupinu" + +#: html/SelfService/Prefs.html:32 +msgid "New password" +msgstr "Nové heslo" + +#: lib/RT/User_Overlay.pm:639 +msgid "New password notification sent" +msgstr "Oznámení nového hesla zasláno" + +#: html/Admin/Elements/QueueTabs:70 +msgid "New queue" +msgstr "VytvoÅ™ení fronty" + +#: html/SelfService/Elements/Tabs:63 +msgid "New request" +msgstr "Nový požadavek" + +#: html/Admin/Elements/SelectRights:42 +msgid "New rights" +msgstr "Nová práva" + +#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +msgid "New scrip" +msgstr "VytovÅ™ení scripu" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "Nové vyhledání" + +#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +msgid "New template" +msgstr "VytvoÅ™it vzor" + +#: lib/RT/Ticket_Overlay.pm:2771 +msgid "New ticket doesn't exist" +msgstr "Nový požadavek neexistuje" + +#: html/Admin/Elements/UserTabs:52 +msgid "New user" +msgstr "VytvoÅ™it uživatele" + +#: html/Admin/Elements/CreateUserCalled:26 +msgid "New user called" +msgstr "Nový uživatel jména" + +#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +msgid "New watchers" +msgstr "Nový pozorovatel" + +#: html/Admin/Users/Prefs.html:42 +msgid "New window setting" +msgstr "Nové nastavení okna" + +#: html/Ticket/Elements/Tabs:69 +msgid "Next" +msgstr "Další" + +#: html/Search/Listing.html:48 +msgid "Next page" +msgstr "Další stránka" + +#: html/Admin/Elements/ModifyUser:50 +msgid "NickName" +msgstr "PÅ™ezdívka" + +#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +msgid "Nickname" +msgstr "PÅ™ezdívka" + +#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +msgid "No CustomField" +msgstr "Žádná uživatelská položka" + +#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +msgid "No Group defined" +msgstr "Nedefinována žádná skupina" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +msgid "No Queue defined" +msgstr "Nedefinována žádná fronta" + +#: bin/rt-crontool:56 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "Žádný uživatel RT nenalezen. Prosím poraÄte se se správcem RT.\\n" + +#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +msgid "No Template" +msgstr "Žádný vzor" + +#: bin/rt-commit-handler:764 +msgid "No Ticket specified. Aborting ticket " +msgstr "Neudán požadavek. PÅ™eruÅ¡uje se požadavek " + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "Neudán požadavek. PÅ™eruÅ¡ují se úpravy požadavku\\n\\n" + +#: html/Approvals/Elements/Approve:47 +msgid "No action" +msgstr "bez akce" + +#: lib/RT/Interface/Web.pm:862 +msgid "No column specified" +msgstr "Neudán sloupec" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "Příkaz nenalezen\\n" + +#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +msgid "No comment entered about this user" +msgstr "Poznámky k tomuto uživateli neudány" + +#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +msgid "No correspondence attached" +msgstr "Žádná pÅ™ipojená korespondence" + +#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#. (ref $self) +msgid "No description for %1" +msgstr "Pro %1 není popis" + +#: lib/RT/Users_Overlay.pm:151 +msgid "No group specified" +msgstr "Neudána skupina" + +#: lib/RT/User_Overlay.pm:857 +msgid "No password set" +msgstr "Heslo nenastaveno" + +#: lib/RT/Queue_Overlay.pm:259 +msgid "No permission to create queues" +msgstr "Nedostatek práv k vytváření front" + +#: lib/RT/Ticket_Overlay.pm:341 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "Nedostatek práv k vytváření požadavků ve frontÄ› '%1'" + +#: lib/RT/User_Overlay.pm:151 +msgid "No permission to create users" +msgstr "Nedostatek práv k vytváření uživatelů" + +#: html/SelfService/Display.html:174 +msgid "No permission to display that ticket" +msgstr "Nedostatek práv k zobrazení tohoto požadavku" + +#: html/SelfService/Update.html:55 +msgid "No permission to view update ticket" +msgstr "Nedostatek práv k zobrazení aktualizace požadavku" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +msgid "No principal specified" +msgstr "Nezadán uživatel" + +#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +msgid "No principals selected." +msgstr "Nevybráni uživatelé." + +#: html/Admin/Queues/index.html:35 +msgid "No queues matching search criteria found." +msgstr "Nenalezeny žádné fronty odpovídající vyhledávací podmínce." + +#: html/Admin/Elements/SelectRights:81 +msgid "No rights found" +msgstr "Práva nenalezena" + +#: html/Admin/Elements/SelectRights:33 +msgid "No rights granted." +msgstr "NepÅ™idÄ›lena žádná práva." + +#: html/Search/Bulk.html:149 +msgid "No search to operate on." +msgstr "Bez vyhledání nelze pracovat." + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "Neudán identifikátor požadavku" + +#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +msgid "No transaction type specified" +msgstr "Neudán typ transakce" + +#: html/Admin/Users/index.html:36 +msgid "No users matching search criteria found." +msgstr "Nenalezeni uživatelé odpovídající vyhledávací podmínce" + +#: bin/rt-commit-handler:644 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "Nenalezen platný uživatel RT. OvladaÄ RT CVS uvolnÄ›n. Prosím poraÄte se se svým správcem RT.\\n" + +#: lib/RT/Interface/Web.pm:859 +msgid "No value sent to _Set!\\n" +msgstr "Žádná z hodnot nanastavena na _Set!\\n" + +#: html/Search/Elements/TicketRow:37 +msgid "Nobody" +msgstr "Nikdo" + +#: lib/RT/Interface/Web.pm:864 +msgid "Nonexistant field?" +msgstr "Neexistující položka" + +#: html/Elements/Login:99 +msgid "Not logged in" +msgstr "NepÅ™ihlášen" + +#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +msgid "Not logged in." +msgstr "NepÅ™ihlášen." + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "Nenastaven" + +#: html/NoAuth/Reminder.html:27 +msgid "Not yet implemented." +msgstr "Zatím neimplementováno." + +#: html/Admin/Groups/Rights.html:25 +msgid "Not yet implemented...." +msgstr "Zatím neimplementováno..." + +#: html/Approvals/Elements/Approve:50 +msgid "Notes" +msgstr "Poznámky" + +#: lib/RT/User_Overlay.pm:642 +msgid "Notification could not be sent" +msgstr "UpozornÄ›ní nemůže být zasláno" + +#: etc/initialdata:94 +msgid "Notify AdminCcs" +msgstr "Zaslat vÅ¡em AdminCc" + +#: etc/initialdata:90 +msgid "Notify AdminCcs as Comment" +msgstr "Zaslat vÅ¡em AdminCc jako komentář" + +#: etc/initialdata:121 +msgid "Notify Other Recipients" +msgstr "Zaslat ostatním příjemcům" + +#: etc/initialdata:117 +msgid "Notify Other Recipients as Comment" +msgstr "Zaslat ostatním příjemcům jako komentář" + +#: etc/initialdata:86 +msgid "Notify Owner" +msgstr "Zaslat vlastníkovi" + +#: etc/initialdata:82 +msgid "Notify Owner as Comment" +msgstr "Zaslat vlastníkovi jako komentář" + +#: etc/initialdata:313 etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "Zaslat vlastníkům a vÅ¡em AdminCc nové případy oÄekávající jejich schválení" + +#: etc/initialdata:78 +msgid "Notify Requestors" +msgstr "Zaslat žadatelům" + +#: etc/initialdata:104 +msgid "Notify Requestors and Ccs" +msgstr "Zaslat žadatelům a vÅ¡em Cc" + +#: etc/initialdata:99 +msgid "Notify Requestors and Ccs as Comment" +msgstr "Zaslat žadatelům a vÅ¡em Cc jako komentář" + +#: etc/initialdata:113 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "Zaslat žadatelům, vÅ¡em Cc a vÅ¡em AdminCc" + +#: etc/initialdata:109 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "Zaslat žadatelům, vÄem Cc a vÄem AdminCc jako komentář" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "lis" + +#: lib/RT/Record.pm:157 +msgid "Object could not be created" +msgstr "Objekt nemůže být vytvoÅ™en" + +#: lib/RT/Record.pm:176 +msgid "Object created" +msgstr "Objekt vytvoÅ™en" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "říj" + +#: html/Elements/SelectDateRelation:35 +msgid "On" +msgstr "Dne" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "PÅ™i komentáři" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "PÅ™i korespondenci" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "PÅ™i založení" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "PÅ™i zmÄ›nÄ› vlastníka" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "PÅ™i zmÄ›nÄ› fronty" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "PÅ™i vyÅ™eÅ¡ení" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "PÅ™i zmÄ›nÄ› stavu" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "PÅ™i transakci" + +#: html/Approvals/Elements/PendingMyApproval:50 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "Zobrazit jen schvalování pro požadavky založené po %1" + +#: html/Approvals/Elements/PendingMyApproval:48 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "Zobrazit jen schvalování pro požadavky založení pÅ™ed %quant(%1)" + +#: html/Elements/Quicksearch:31 +msgid "Open" +msgstr "OtevÅ™ené" + +#: html/Ticket/Elements/Tabs:136 +msgid "Open it" +msgstr "Otevřít" + +#: html/SelfService/Elements/Tabs:57 +msgid "Open requests" +msgstr "OtevÅ™ené požadavky" + +#: html/Admin/Users/Prefs.html:41 +msgid "Open tickets (from listing) in a new window" +msgstr "Otevřít požadavky (ze seznamu) v novém oknÄ›" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in another window" +msgstr "Otevřít požadavky (ze seznamu) v jiném oknÄ›" + +#: etc/initialdata:133 +msgid "Open tickets on correspondence" +msgstr "Otevřít požadavky pÅ™i korespondenci" + +#: html/Search/Elements/PickRestriction:101 +msgid "Ordering and sorting" +msgstr "Řazení a třídÄ›ní" + +#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +msgid "Organization" +msgstr "Organizace" + +#: html/Approvals/Elements/Approve:34 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "Původní požadavek: #%1" + +#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +msgid "Over time, priority moves toward" +msgstr "ÄŒasem se priorita posouvá k" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Own tickets" +msgstr "Vlastnit požadavky" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "OwnTicket" +msgstr "Vlastnit požadavek" + +#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "Vlastník" + +#: lib/RT/Ticket_Overlay.pm:3004 +#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +msgid "Owner changed from %1 to %2" +msgstr "Vlastník zmÄ›nÄ›n z %1 na %2" + +#: lib/RT/Transaction_Overlay.pm:584 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Vlastník nucenÄ› zmÄ›nÄ›n z %1 na %2" + +#: html/Search/Elements/PickRestriction:31 +msgid "Owner is" +msgstr "Vlastník" + +#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +msgid "Pager" +msgstr "Pager" + +#: html/Admin/Elements/ModifyUser:74 +msgid "PagerPhone" +msgstr "Číslo pageru" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +msgid "Parents" +msgstr "RodiÄe" + +#: html/Elements/Login:43 html/User/Prefs.html:61 +msgid "Password" +msgstr "Heslo" + +#: html/NoAuth/Reminder.html:25 +msgid "Password Reminder" +msgstr "PÅ™ipomínaÄ hesel" + +#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +msgid "Password too short" +msgstr "Heslo příliÅ¡ krátké" + +#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "Heslo: %1" + +#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +msgid "People" +msgstr "Uživatelé" + +#: etc/initialdata:126 +msgid "Perform a user-defined action" +msgstr "Provedení uživatelem definované akce" + +#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +msgid "Permission Denied" +msgstr "Přístup nepovolen" + +#: html/User/Elements/Tabs:35 +msgid "Personal Groups" +msgstr "Osobní skupiny" + +#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +msgid "Personal groups" +msgstr "Vlastní skupiny" + +#: html/User/Elements/DelegateRights:37 +msgid "Personal groups:" +msgstr "Vlastní skupiny:" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +msgid "Phone numbers" +msgstr "Čísla telefonů" + +#: html/Admin/Users/Rights.html:25 +msgid "Placeholder" +msgstr "Zábor místa" + +#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +msgid "Preferences" +msgstr "Nastavení" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "Nastavení" + +#: lib/RT/Action/Generic.pm:160 +msgid "Prepare Stubbed" +msgstr "Prepare v zárodku" + +#: html/Ticket/Elements/Tabs:61 +msgid "Prev" +msgstr "PÅ™edchozí" + +#: html/Search/Listing.html:44 +msgid "Previous page" +msgstr "PÅ™edchozí stránka" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "Pri" + +#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "Uživatel %1 nenalezen." + +#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "Priorita" + +#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +msgid "Priority starts at" +msgstr "Priorita zaÄíná na" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "Privilegovaný" + +#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "Privilegovaný stav: %1" + +#: html/Admin/Users/index.html:62 +msgid "Privileged users" +msgstr "Privilegovaní uživatelé" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "Pseudo skupina pro vnitÅ™ní použití" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "Fronta" + +#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#. ($Queue) +#. ($id) +msgid "Queue %1 not found" +msgstr "Fronta %1 nenalezena" + +#: NOT FOUND IN SOURCE +msgid "Queue '%1' not found\\n" +msgstr "Fronta '%1' nenalezena\\n" + +#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +msgid "Queue Name" +msgstr "Název fronty" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "Scripy fronty" + +#: lib/RT/Queue_Overlay.pm:263 +msgid "Queue already exists" +msgstr "Fronta již existuje" + +#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +msgid "Queue could not be created" +msgstr "Fronta nemůže být vytvoÅ™ena" + +#: html/Ticket/Create.html:209 +msgid "Queue could not be loaded." +msgstr "Fronta nemůže být naÄtena." + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +msgid "Queue created" +msgstr "Fronta vytvoÅ™ena" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "Není zadána fronta." + +#: html/SelfService/Display.html:129 +msgid "Queue not found" +msgstr "Fronta nenalezena" + +#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +msgid "Queues" +msgstr "Fronty" + +#: html/Elements/Login:34 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "RT %1" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "RT %1 pro %2" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "RT %1 od <a href=\"http://bestpractical.com\">Best Practival 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" + +#: html/Admin/index.html:25 html/Admin/index.html:26 +msgid "RT Administration" +msgstr "Správa RT" + +#: NOT FOUND IN SOURCE +msgid "RT Authentication error." +msgstr "AutentizaÄní chyba RT." + +#: NOT FOUND IN SOURCE +msgid "RT Bounce: %1" +msgstr "RT Bounce: %1" + +#: NOT FOUND IN SOURCE +msgid "RT Configuration error" +msgstr "KonfiguraÄní chyba RT" + +#: NOT FOUND IN SOURCE +msgid "RT Critical error. Message not recorded!" +msgstr "Kritická chyba RT. Zpráva nezaznamenána!" + +#: html/Elements/Error:41 html/SelfService/Error.html:41 +msgid "RT Error" +msgstr "Chyba RT" + +#: NOT FOUND IN SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "RT pÅ™ijal poÅ¡tu (%1) od sebe samého." + +#: html/SelfService/Closed.html:25 +msgid "RT Self Service / Closed Tickets" +msgstr "RT Samoobsluha / UzavÅ™ené požadavky" + +#: html/index.html:25 html/index.html:28 +msgid "RT at a glance" +msgstr "RT v celé své záři" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't authenticate you" +msgstr "RT vás nemůže autentizovat" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find requestor via its external database lookup" +msgstr "RT nemůže nalézt žadatele pÅ™es hledání v externí databázi" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find the queue: %1" +msgstr "RT nemůže nalézt frontu: %1" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RT nemůže ověřit tento PGP podpis. \\n" + +#: html/Elements/PageLayout:26 +#. ($RT::rtname) +msgid "RT for %1" +msgstr "RT pro %1" + +#: NOT FOUND IN SOURCE +msgid "RT for %1: %2" +msgstr "RT pro %1: %2" + +#: NOT FOUND IN SOURCE +msgid "RT has proccessed your commands" +msgstr "RT zpracoval vaÅ¡e příkazy" + +#: html/Elements/Login:83 +#. ('2003') +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 je © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Šířeno pod <a href=\"http://www.gnu.org/copyleft/gpl.html\">verzí 2 GNU General Public License.</a>" + +#: NOT FOUND IN SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "RT bere tuto zprávu jako bounce" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RT zpracuje tuto zprávu tak, jako by byla nepodepsaná.\\n" + +#: 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 "Emailový příkazový režim RT vyžaduje PGP autentizaci. Nepodepsal jste vaÅ¡i zprávu nebo váš podpis nemůže být ověřen." + +#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +msgid "Real Name" +msgstr "SkuteÄné jméno" + +#: html/Admin/Elements/ModifyUser:48 +msgid "RealName" +msgstr "SkuteÄné jméno" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +msgid "Referred to by" +msgstr "Je odkazem z" + +#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +msgid "Refers to" +msgstr "Odkazuje na" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "Zjemnit" + +#: html/Search/Elements/PickRestriction:27 +msgid "Refine search" +msgstr "Zjemnit vyhledání" + +#: html/Elements/Refresh:36 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "Obnovit tuto stránku %quant(%1,každou,každé,každých) %numf(%1) %quant(%1,minutu,minuty,minut)." + +#??? quant +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +msgid "Relationships" +msgstr "Vztahy" + +#: html/Search/Bulk.html:93 +msgid "Remove AdminCc" +msgstr "Odstranit AdminCc" + +#: html/Search/Bulk.html:91 +msgid "Remove Cc" +msgstr "Odstranit Cc" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "Odstranit žadatele" + +#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +msgid "Reply" +msgstr "OdpovÄ›dÄ›t" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Reply to tickets" +msgstr "OdpovÄ›dÄ›t na požadavky" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "ReplyToTicket" +msgstr "Odpovídat na požadavky" + +#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +msgid "Requestor" +msgstr "Žadatel" + +#: html/Search/Elements/PickRestriction:38 +msgid "Requestor email address" +msgstr "Emailová adresa žadatele" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "Žadatel(é)" + +#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +msgid "Requestors" +msgstr "Žadatelé" + +#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +msgid "Requests should be due in" +msgstr "Požadavky mají být vyÅ™eÅ¡eny do" + +#: html/Elements/Submit:62 +msgid "Reset" +msgstr "Vynulovat" + +#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +msgid "Residence" +msgstr "BydliÅ¡tÄ›" + +#: html/Ticket/Elements/Tabs:132 +msgid "Resolve" +msgstr "VyÅ™eÅ¡it" + +#: html/Ticket/Update.html:133 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "VyÅ™eÅ¡ení požadavku #%1 (%2)" + +#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +msgid "Resolved" +msgstr "VyÅ™eÅ¡en" + +#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +msgid "Response to requestors" +msgstr "OdpovÄ›Ä Å¾adatelům" + +#: html/Elements/ListActions:26 +msgid "Results" +msgstr "Výsledky" + +#: html/Search/Elements/PickRestriction:105 +msgid "Results per page" +msgstr "Výsledků na stránku" + +#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +msgid "Retype Password" +msgstr "Zopakujte heslo" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "Nenalezeno právo %1 pro %2 %3 v mezích %4 (%5)" + +#: lib/RT/ACE_Overlay.pm:613 +msgid "Right Delegated" +msgstr "Právo delegováno" + +#: lib/RT/ACE_Overlay.pm:303 +msgid "Right Granted" +msgstr "Práva pÅ™idána" + +#: lib/RT/ACE_Overlay.pm:161 +msgid "Right Loaded" +msgstr "Právo naÄteno" + +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +msgid "Right could not be revoked" +msgstr "Právo nemůže být odebráno" + +#: html/User/Delegation.html:64 +msgid "Right not found" +msgstr "Právo nenalezeno" + +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +msgid "Right not loaded." +msgstr "Právo nenaÄteno." + +#: lib/RT/ACE_Overlay.pm:689 +msgid "Right revoked" +msgstr "Právo odebráno" + +#: html/Admin/Elements/UserTabs:41 +msgid "Rights" +msgstr "Práva" + +#: lib/RT/Interface/Web.pm:758 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "Práva pro %1 nemohou být pÅ™idÄ›lena" + +#: lib/RT/Interface/Web.pm:791 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "Práva nemohou být %1 odebrána" + +#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "Pravidla" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "KoÅ™enový schvalovatel" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "so" + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "Save Changes" +msgstr "Uložit zmÄ›ny" + +#: html/Ticket/ModifyLinks.html:39 +msgid "Save changes" +msgstr "Nezapomeňte uložit zmÄ›ny - " + +#: html/Admin/Global/Scrip.html:49 +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "Scrip #%1" + +#: lib/RT/Scrip_Overlay.pm:176 +msgid "Scrip Created" +msgstr "Scrip vytvoÅ™en" + +#: html/Admin/Elements/EditScrips:84 +msgid "Scrip deleted" +msgstr "Scrip smazán" + +#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +msgid "Scrips" +msgstr "Scripy" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "Scripy fro %1\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "Scripy platné ve vÅ¡ech frontách" + +#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +msgid "Search" +msgstr "Vyhledávání" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "Podmínky vyhledávání" + +#: html/Approvals/Elements/PendingMyApproval:39 +msgid "Search for approvals" +msgstr "Vyhledávání schvalování" + +#: bin/rt-crontool:188 +msgid "Security:" +msgstr "ZabezpeÄní:" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "SeeQueue" +msgstr "VidÄ›t frontu" + +#: html/Admin/Groups/index.html:40 +msgid "Select a group" +msgstr "VýbÄ›r skupiny" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "VýbÄ›r fronty" + +#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +msgid "Select a user" +msgstr "VýbÄ›r uživatele" + +#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +msgid "Select custom field" +msgstr "Vybrat uživatelskou položku" + +#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +msgid "Select group" +msgstr "Vybrat skupinu" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Select multiple values" +msgstr "Vybrat více hodnot" + +#: lib/RT/CustomField_Overlay.pm:352 +msgid "Select one value" +msgstr "Vybrat jednu hodnotu" + +#: html/Admin/Elements/QueueTabs:67 +msgid "Select queue" +msgstr "VýbÄ›r fronty" + +#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +msgid "Select scrip" +msgstr "VýbÄ›r scripu" + +#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +msgid "Select template" +msgstr "Vybrat vzor" + +#: html/Admin/Elements/UserTabs:49 +msgid "Select user" +msgstr "VýbÄ›r uživatele" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "SelectMultiple" +msgstr "VýbÄ›r vícenásobný" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectSingle" +msgstr "VýbÄ›t jedineÄný" + +#: html/SelfService/index.html:25 +msgid "Self Service" +msgstr "Samoobsluha" + +#: etc/initialdata:114 +msgid "Send mail to all watchers" +msgstr "Zaslat e-mail vÅ¡em pozorovatelům" + +#: etc/initialdata:110 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "Zaslat e-mail vÅ¡em pozorovatelům jako \"komentář\"" + +#: etc/initialdata:105 +msgid "Send mail to requestors and Ccs" +msgstr "Zaslat e-mail žadatelům a vÅ¡em Cc" + +#: etc/initialdata:100 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "Zaslat e-mail žadatelům a vÅ¡em Ccs jako komentář" + +#: etc/initialdata:79 +msgid "Sends a message to the requestors" +msgstr "Posílá zprávu vÅ¡em žadatelům" + +#: etc/initialdata:118 etc/initialdata:122 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "Posílá e-mail vÅ¡em pÅ™esnÄ› vyjmenovaným Cc a Bcc" + +#: etc/initialdata:95 +msgid "Sends mail to the administrative Ccs" +msgstr "Posílá e-mail vÅ¡em administrativním Cc" + +#: etc/initialdata:91 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "Posílá e-mail vÅ¡em administrativním Cc jako komentář" + +#: etc/initialdata:83 etc/initialdata:87 +msgid "Sends mail to the owner" +msgstr "Posílá e-mail vlastníkovi" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "zář" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "Zobrazit výsledky" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show approved requests" +msgstr "Zobrazit schválené požadavky" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show basics" +msgstr "Zobrazit základní údaje" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show denied requests" +msgstr "Zobrazit odepÅ™ené požadavky" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show details" +msgstr "Zobrazit podrobnosti" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show pending requests" +msgstr "Zobrazit trvající požadavky" + +#: html/Approvals/Elements/PendingMyApproval:46 +msgid "Show requests awaiting other approvals" +msgstr "Zobrazit požadavky Äekající na jejich schválení" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Show ticket private commentary" +msgstr "Zobrazovat privátní komentáře požadavku" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "Show ticket summaries" +msgstr "Zobrazovat výsledky požadavku" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ShowACL" +msgstr "Zobrazovat seznam přístupových práv" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowScrips" +msgstr "Zobrazit scripy" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ShowTemplate" +msgstr "Zobrazit vzor" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "ShowTicket" +msgstr "Zobrazit požadavek" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "ShowTicketComments" +msgstr "Zobrazit komentáře požadavku" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "Být žadatelem Äi Cc požadavku Äi fronty" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "Být AdminCc požadavku nebo fronty" + +#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +msgid "Signature" +msgstr "Podpis" + +#: html/SelfService/Elements/Header:52 +#. ($session{'CurrentUser'}->Name) +msgid "Signed in as %1" +msgstr "Příhlášen jako %1" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Single" +msgstr "Jednoduchá" + +#: html/Elements/Header:51 +msgid "Skip Menu" +msgstr "PÅ™eskoÄit menu" + +#: html/Admin/Elements/EditCustomFieldValues:31 +msgid "Sort key" +msgstr "Třídící klíÄ" + +#: html/Search/Elements/PickRestriction:109 +msgid "Sort results by" +msgstr "Třídit výsledky dle" + +#: html/Admin/Elements/AddCustomFieldValue:25 +msgid "SortOrder" +msgstr "Třídící poÅ™adí" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "Odložené" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "Úvodní stránka" + +#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +msgid "Started" +msgstr "ZapoÄato" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "Datum zapoÄetí '%1' nemůže být rozpoznáno" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +msgid "Starts" +msgstr "ZaÄíná" + +#: NOT FOUND IN SOURCE +msgid "Starts By" +msgstr "ZaÄíná" + +#: NOT FOUND IN SOURCE +msgid "Starts date '%1' could not be parsed" +msgstr "Datum zaÄínání '%1' nemůže být rozpoznáno" + +#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +msgid "State" +msgstr "Stát" + +#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "Stav" + +#: etc/initialdata:288 +msgid "Status Change" +msgstr "ZmÄ›na Stavu" + +#: lib/RT/Transaction_Overlay.pm:530 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "Stav zmÄ›nÄ›n z %1 na %2" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "ZmÄ›na stavu" + +#: html/Ticket/Elements/Tabs:147 +msgid "Steal" +msgstr "Vzít" + +#: lib/RT/Transaction_Overlay.pm:589 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "Vzato %1 " + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "PÅ™edmÄ›t" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "PÅ™edmÄ›t zmÄ›nÄ›n na %1" + +#: html/Elements/Submit:59 +msgid "Submit" +msgstr "Odeslat" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "Potvrdit model zpracování" + +#: lib/RT/Group_Overlay.pm:749 +msgid "Succeeded" +msgstr "Úspěšné" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "ne" + +#: lib/RT/System.pm:54 +msgid "SuperUser" +msgstr "Super uživatel" + +#: html/User/Elements/DelegateRights:77 +msgid "System" +msgstr "Systém" + +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +msgid "System Error" +msgstr "Systémová chyba" + +#: lib/RT/ACE_Overlay.pm:616 +msgid "System error. Right not delegated." +msgstr "Systémová chyba. Právo nedelegováno." + +#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +msgid "System error. Right not granted." +msgstr "Systémová chyba. Právo nepÅ™idÄ›leno." + +#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +msgid "System groups" +msgstr "Systémové skupiny" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "Skupina systémovýh pravidel pro vnitÅ™ní použití" + +#: lib/RT/CurrentUser.pm:320 +msgid "TEST_STRING" +msgstr "MíchaÄka na beton" + +#: html/Ticket/Elements/Tabs:143 +msgid "Take" +msgstr "Vzít" + +#: lib/RT/Transaction_Overlay.pm:575 +msgid "Taken" +msgstr "Vzatý" + +#: html/Admin/Elements/EditScrip:81 +msgid "Template" +msgstr "Vzor" + +#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "Vzor #%!" + +#: html/Admin/Elements/EditTemplates:89 +msgid "Template deleted" +msgstr "Vzor smazán" + +#: lib/RT/Scrip_Overlay.pm:153 +msgid "Template not found" +msgstr "Vzor nenalezen" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "Vzor nenalezen\\n" + +#: lib/RT/Template_Overlay.pm:347 +msgid "Template parsed" +msgstr "Vzor rozpoznán" + +#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +msgid "Templates" +msgstr "Vzory" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "Vzory pro %1\\n" + +#: lib/RT/Interface/Web.pm:858 +msgid "That is already the current value" +msgstr "Toto je již aktuální hodnota" + +#: lib/RT/CustomField_Overlay.pm:178 +msgid "That is not a value for this custom field" +msgstr "Toto není hodnota pro tuto uživatelskou položku" + +#: lib/RT/Ticket_Overlay.pm:1886 +msgid "That is the same value" +msgstr "Toto je shodná hodnota" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "Tento uživatel je již v této frontÄ› %1" + +#: lib/RT/Ticket_Overlay.pm:1434 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "Tento uživatel je již u tohoto požadavku %1" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Tento uživatel není v této frontÄ› %1" + +#: lib/RT/Ticket_Overlay.pm:1551 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "Tento uživatel není u tohoto požadavku %1" + +#: lib/RT/Ticket_Overlay.pm:1882 +msgid "That queue does not exist" +msgstr "Tata fronta neexistuje" + +#: lib/RT/Ticket_Overlay.pm:3143 +msgid "That ticket has unresolved dependencies" +msgstr "Tento požadavek má nevyÅ™eÅ¡ené závislosti" + +#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +msgid "That user already has that right" +msgstr "Tento uživatel již má toto právo" + +#: lib/RT/Ticket_Overlay.pm:2952 +msgid "That user already owns that ticket" +msgstr "Tento uživatel již tento požadavek vlastní" + +#: lib/RT/Ticket_Overlay.pm:2918 +msgid "That user does not exist" +msgstr "Tento uživatel neexistuje" + +#: lib/RT/User_Overlay.pm:315 +msgid "That user is already privileged" +msgstr "Tento uživatel je již privilegován" + +#: lib/RT/User_Overlay.pm:332 +msgid "That user is already unprivileged" +msgstr "Tento uživatel je již neprivilegován" + +#: lib/RT/User_Overlay.pm:327 +msgid "That user is now privileged" +msgstr "Uživatel je nyní privilegován" + +#: lib/RT/User_Overlay.pm:344 +msgid "That user is now unprivileged" +msgstr "Uživatel je nyní neprivilegován" + +#: lib/RT/Ticket_Overlay.pm:2944 +msgid "That user may not own tickets in that queue" +msgstr "V této frontÄ› nemůže tento uživatel vlastnit požadavky" + +#: lib/RT/Link_Overlay.pm:206 +msgid "That's not a numerical id" +msgstr "Toto není Äíselný identifikátor" + +#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +msgid "The Basics" +msgstr "Základní údaje" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The CC of a ticket" +msgstr "Cc požadavku" + +#: lib/RT/ACE_Overlay.pm:89 +msgid "The administrative CC of a ticket" +msgstr "Administrativní Cc požadavku" + +#: lib/RT/Ticket_Overlay.pm:2213 +msgid "The comment has been recorded" +msgstr "Komentář byl zaznamenán" + +#: bin/rt-crontool:198 +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 "Následující příkaz najde vÅ¡echny aktivní požadavky ve frontÄ› 'general' a nastaví jejich priority na 99, pokud nebyly tknuty poslední 4 hodiny:" + +#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "Následující příkazy nebyly zpracovány\\n\\n" + +#: lib/RT/Interface/Web.pm:861 +msgid "The new value has been set." +msgstr "Nová hodnota nastavena." + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The owner of a ticket" +msgstr "Vlastník požadavku" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The requestor of a ticket" +msgstr "Žadatel požadavku" + +#: html/Admin/Elements/EditUserComments:26 +msgid "These comments aren't generally visible to the user" +msgstr "Tyto komentáře nejsou běžnÄ› viditelné uživateli" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "Tento požadavek %1 %2 (%3)\\n" + +#: bin/rt-crontool:189 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "Tento nástroj umožňuje uživateli spustit libovolné perl moduly z RT." + +#: lib/RT/Transaction_Overlay.pm:253 +msgid "This transaction appears to have no content" +msgstr "Tato transakce vypadá, že nemá obsah" + +#: html/Ticket/Elements/ShowRequestor:47 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "nejdůležitÄ›jší%quant(%1, požadavek,požadavky,ch požadavků) tohoto uživatele" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "25 nejdůležitÄ›jších požadavků tohoto uživatele" + +#: lib/RT/Date.pm:391 +msgid "Thu." +msgstr "Ät" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 %2" +msgstr "Požadavek # %1 %2" + +#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "Maxi aktualizace požadavku #%1: %2" + +#: html/Approvals/Elements/ShowDependency:46 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "Požadavek #%1: %2" + +#: lib/RT/Ticket_Overlay.pm:608 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "Požadavek %1 vytvoÅ™en ve frontÄ› '%2'" + +#: bin/rt-commit-handler:760 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "Požadavek %1 naÄten\\n" + +#: html/Search/Bulk.html:181 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "Požadavek %1: %2" + +#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "Historie požadavku # %1 %2" + +#: html/SelfService/Display.html:34 +msgid "Ticket Id" +msgstr "Identifikátor požadavku" + +#: etc/initialdata:303 +msgid "Ticket Resolved" +msgstr "Požadavek vyÅ™eÅ¡en" + +#: html/Search/Elements/PickRestriction:63 +msgid "Ticket attachment" +msgstr "Příloha požadavku" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "Obsah požadavku" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "Typ obsahu požadavku" + +#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +msgid "Ticket could not be created due to an internal error" +msgstr "Požadaven nemůže být vytvoÅ™en pro vnitÅ™ní chybu" + +#: lib/RT/Transaction_Overlay.pm:522 +msgid "Ticket created" +msgstr "Požadavek vytvoÅ™en" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "NezdaÅ™ilo se vytvoÅ™ení požadavku" + +#: lib/RT/Transaction_Overlay.pm:527 +msgid "Ticket deleted" +msgstr "Požadavek smazán" + +#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +msgid "Ticket id not found" +msgstr "Id požadavku nenalezeno" + +#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +msgid "Ticket not found" +msgstr "Požadavek nenalezen" + +#: etc/initialdata:289 +msgid "Ticket status changed" +msgstr "Stav požadavku zmÄ›nÄ›n" + +#: html/Ticket/Update.html:39 +msgid "Ticket watchers" +msgstr "Pozorovatelé požadavku" + +#: html/Elements/Tabs:49 +msgid "Tickets" +msgstr "Požadavky" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "Požadavky %1 %2" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "Požadavky %1 dle %2" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Tickets from %1" +msgstr "Požadavky z %1" + +#: html/Approvals/Elements/ShowDependency:27 +msgid "Tickets which depend on this approval:" +msgstr "Požadavky, které záleží na tomto schválení:" + +#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +msgid "Time Left" +msgstr "Zbývající Äas" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +msgid "Time Worked" +msgstr "ÄŒas práce" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "Zbývající Äas" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "ÄŒas k zobrazení" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "ÄŒas práce" + +#: lib/RT/Ticket_Overlay.pm:1165 +msgid "TimeWorked" +msgstr "ÄŒas práce" + +#: bin/rt-commit-handler:402 +msgid "To generate a diff of this commit:" +msgstr "VytvoÅ™it diff tohoto commitu:" + +#: bin/rt-commit-handler:391 +msgid "To generate a diff of this commit:\\n" +msgstr "VytvoÅ™it diff tohoto commitu:\\n" + +#: lib/RT/Ticket_Overlay.pm:1168 +msgid "Told" +msgstr "Poslední kontakt" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "Transakce" + +#: lib/RT/Transaction_Overlay.pm:642 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "Transakce %1 vymazána" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "Transakce vytvoÅ™ena" + +#: lib/RT/Transaction_Overlay.pm:89 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "Bez udání id požadavku nelze volat Transaction->Create" + +#: lib/RT/Transaction_Overlay.pm:701 +msgid "Transactions are immutable" +msgstr "Transakce jsou nemÄ›nné" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "Pokus o smazání práva: %1" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "út" + +#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "typ" + +#: lib/RT/ScripCondition_Overlay.pm:104 +msgid "Unimplemented" +msgstr "Neimplementováno" + +#: html/Admin/Users/Modify.html:68 +msgid "Unix login" +msgstr "Unixový login" + +#: html/Admin/Elements/ModifyUser:62 +msgid "UnixUsername" +msgstr "Unixové uživatelské jméno" + +#: lib/RT/Attachment_Overlay.pm:265 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "Neznámé kódování obsahu %1" + +#: html/Elements/SelectResultsPerPage:37 +msgid "Unlimited" +msgstr "NeomezenÄ›" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "Neprivilegovaný" + +#: lib/RT/Transaction_Overlay.pm:571 +msgid "Untaken" +msgstr "Vrácen" + +#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +msgid "Update" +msgstr "Aktualizace" + +#: html/Admin/Users/Prefs.html:62 +msgid "Update ID" +msgstr "Identifikátor aktualizace" + +#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +msgid "Update Type" +msgstr "Typ aktualizace" + +#: html/Search/Listing.html:61 +msgid "Update all these tickets at once" +msgstr "Aktualizovat spoleÄnÄ› vÅ¡echny tyty požadavky" + +#: html/Admin/Users/Prefs.html:49 +msgid "Update email" +msgstr "Aktualizovat email" + +#: html/Admin/Users/Prefs.html:55 +msgid "Update name" +msgstr "Aktualizovat jméno" + +#: lib/RT/Interface/Web.pm:375 +msgid "Update not recorded." +msgstr "Aktualizace nezaznamenána" + +#: html/Search/Bulk.html:81 +msgid "Update selected tickets" +msgstr "Aktualizovat vybrané požadavky" + +#: html/Admin/Users/Prefs.html:36 +msgid "Update signature" +msgstr "Aktualizace podpisu" + +#: html/Ticket/ModifyAll.html:63 +msgid "Update ticket" +msgstr "Aktualizace požadavku" + +#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 +#. ($Ticket->id) +msgid "Update ticket # %1" +msgstr "Aktualizace požadavku # %1" + +#: html/SelfService/Update.html:50 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Aktualizace požadavku #%1" + +#: html/Ticket/Update.html:135 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "Aktualizace požadavku #%1 (%2)" + +#: lib/RT/Interface/Web.pm:373 +msgid "Update type was neither correspondence nor comment." +msgstr "Typ aktualizace nebyl ani korespondence ani komentář." + +#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +msgid "Updated" +msgstr "Aktualizováno" + +#: NOT FOUND IN SOURCE +msgid "User %1 %2: %3\\n" +msgstr "Uživatel %1 %2: %3\\n" + +#: NOT FOUND IN SOURCE +msgid "User %1 Password: %2\\n" +msgstr "Heslo uživatele %1: %2\\n" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found" +msgstr "Uživatel '%1' nenalezen" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found\\n" +msgstr "Uživatel '%1' nenalezen\\n" + +#: etc/initialdata:125 etc/initialdata:191 +msgid "User Defined" +msgstr "Uživatelem definované" + +#: html/Admin/Users/Prefs.html:59 +msgid "User ID" +msgstr "Identifikátor uživatele" + +#: html/Elements/SelectUsers:26 +msgid "User Id" +msgstr "Identifikátor uživatele" + +#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +msgid "User Rights" +msgstr "Práva uživatele" + +#: html/Admin/Users/Modify.html:226 +#. ($msg) +msgid "User could not be created: %1" +msgstr "Uživatel nemůže být vytvoÅ™en: %1" + +#: lib/RT/User_Overlay.pm:262 +msgid "User created" +msgstr "Uživatel vytvoÅ™en" + +#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "Uživatelem definované skupiny" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "Uživatel upozornÄ›n" + +#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +msgid "User view" +msgstr "Uživatelský pohled" + +#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +msgid "Username" +msgstr "Uživatelské jméno" + +#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +msgid "Users" +msgstr "Uživatelé" + +#: html/Admin/Users/index.html:65 +msgid "Users matching search criteria" +msgstr "Uživatelé odpovídající podmínce vyhledání" + +#: html/Search/Elements/PickRestriction:51 +msgid "ValueOfQueue" +msgstr "Hodnota fronty" + +#: html/Admin/Elements/EditCustomField:40 +msgid "Values" +msgstr "Hodnoty" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Watch" +msgstr "Být pozorovatelem" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "WatchAsAdminCc" +msgstr "Být AdminCc pozorovatelem" + +#: html/Admin/Elements/QueueTabs:42 +msgid "Watchers" +msgstr "Pozorovatelé" + +#: html/Admin/Elements/ModifyUser:56 +msgid "WebEncoding" +msgstr "Kódování WWW" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "st" + +#: etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "PÅ™idat korespondenci k původnímu požadavku, pokud byl požadavek schválen vÅ¡emi" + +#: etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "PÅ™idat korespondenci k původnímu požadavku, pokud byl požadavek kýmkoli schválen" + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "Když je požadavek vytvoÅ™en" + +#: etc/upgrade/2.1.71:79 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "Upozornit vlastníka a vÅ¡echny AdminCc, jejichž schválení se oÄekává, pÅ™i vytvoÅ™ení schvalovaného požadavku" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "Stane-li se cokoli" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "Je-li vyÅ™eÅ¡en požadavek" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "ZmÄ›ní-li se vlastník požadavku" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "ZmÄ›ní-li se fronta požadavku" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "ZmÄ›ní-li se stav požadavku" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "Splní-li se uživatelská podmínka" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "PÅ™ijde-li komentář" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "PÅ™ijde-li korespondence" + +#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +msgid "Work" +msgstr "ZamÄ›stnání" + +#: html/Admin/Elements/ModifyUser:70 +msgid "WorkPhone" +msgstr "Telefon do zamÄ›stnání" + +#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +msgid "Worked" +msgstr "Odpracováno" + +#: lib/RT/Ticket_Overlay.pm:3056 +msgid "You already own this ticket" +msgstr "Požadavek již vlastníte" + +#: html/autohandler:121 +msgid "You are not an authorized user" +msgstr "Nejste autorizovaný uživatel" + +#: lib/RT/Ticket_Overlay.pm:2930 +msgid "You can only reassign tickets that you own or that are unowned" +msgstr "Můžete pÅ™idÄ›lit pouze požadavky, které jsou vaÅ¡e nebo nejsou vlastnÄ›ny" + +#: NOT FOUND IN SOURCE +msgid "You don't have permission to view that ticket.\\n" +msgstr "Nemáte právo k zobrazení tohoto požadavku.\\n" + +#: docs/design_docs/string-extraction-guide.txt:47 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "Nalezl jste %1 požadavků ve frontÄ› %2" + +#??? quant +#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +msgid "You have been logged out of RT." +msgstr "Byl jste odhlášen od RT." + +#: html/SelfService/Display.html:134 +msgid "You have no permission to create tickets in that queue." +msgstr "V této frontÄ› nemáte práva vytvářet požadavky." + +#: lib/RT/Ticket_Overlay.pm:1895 +msgid "You may not create requests in that queue." +msgstr "V této frontÄ› nemůžete vytvářet požadavky." + +#: html/NoAuth/Logout.html:36 +msgid "You're welcome to login again" +msgstr "Jste vítáni k dalšímu pÅ™ihlášení" + +#: html/SelfService/Elements/MyRequests:25 +#. ($friendly_status) +msgid "Your %1 requests" +msgstr "VaÅ¡ich %1 požadavků" + +#: NOT FOUND IN SOURCE +msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "Váš správce RT chybnÄ› nastavil poÅ¡tovní aliasy, které volají RT" + +#: etc/initialdata:429 etc/upgrade/2.1.71:146 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "Váš požadavek byl schválen uživatelem %1. Další schválení mohou být jeÅ¡tÄ› oÄekávána." + +#: etc/initialdata:463 etc/upgrade/2.1.71:180 +msgid "Your request has been approved." +msgstr "Váš požadavek byl schválen." + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "Váš požadavek byl odmítnut" + +#: etc/initialdata:384 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "Váš požadavek byl odmítnut." + +#: html/autohandler:136 html/autohandler:142 +msgid "Your username or password is incorrect" +msgstr "VaÅ¡e uživatelské jméno Äi heslo je nesprávné" + +#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +msgid "Zip" +msgstr "PSÄŒ" + +#: html/User/Elements/DelegateRights:59 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "jak je dovoleno %1" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +msgid "contains" +msgstr "obsahuje" + +#: html/Elements/SelectAttachmentField:26 +msgid "content" +msgstr "obsah" + +#: html/Elements/SelectAttachmentField:27 +msgid "content-type" +msgstr "typ obsahu" + +#: lib/RT/Ticket_Overlay.pm:2282 +msgid "correspondence (probably) not sent" +msgstr "korespondence (zÅ™ejmÄ›) neposlána" + +#: lib/RT/Ticket_Overlay.pm:2292 +msgid "correspondence sent" +msgstr "korespondence poslána" + +#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +msgid "days" +msgstr "dnů" + +#: html/Search/Listing.html:75 +msgid "delete" +msgstr "smazat" + +#: lib/RT/Queue_Overlay.pm:63 +msgid "deleted" +msgstr "smazán" + +#: html/Search/Elements/PickRestriction:68 +msgid "does not match" +msgstr "neodpovídá" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +msgid "doesn't contain" +msgstr "neobsahuje" + +#: html/Elements/SelectEqualityOperator:38 +msgid "equal to" +msgstr "je rovno" + +#: html/Elements/SelectAttachmentField:28 +msgid "filename" +msgstr "název souboru" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "greater than" +msgstr "vÄ›tší než" + +#: lib/RT/Group_Overlay.pm:194 +#. ($self->Name) +msgid "group '%1'" +msgstr "skupina '%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "hodin" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "Identifikátor" + +#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "is" +msgstr "je" + +#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +msgid "isn't" +msgstr "není" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "less than" +msgstr "menší než" + +#: html/Search/Elements/PickRestriction:67 +msgid "matches" +msgstr "odpovídá" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "min" + +#: html/Ticket/Update.html:66 +msgid "minutes" +msgstr "minut" + +#: bin/rt-commit-handler:765 +msgid "modifications\\n\\n" +msgstr "úpravy\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "mÄ›síců" + +#: lib/RT/Queue_Overlay.pm:58 +msgid "new" +msgstr "nový" + +#: html/Admin/Elements/EditScrips:43 +msgid "no value" +msgstr "znehodnotit" + +#: html/Ticket/Elements/EditWatchers:28 +msgid "none" +msgstr "žádný" + +#: html/Elements/SelectEqualityOperator:38 +msgid "not equal to" +msgstr "není rovno" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "open" +msgstr "otevÅ™ený" + +#: lib/RT/Group_Overlay.pm:199 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "vlastní skupina '%1' pro uživatele '%2'" + +#: lib/RT/Group_Overlay.pm:207 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "fronta %1 %2" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "rejected" +msgstr "zamítnutý" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "resolved" +msgstr "vyÅ™eÅ¡ený" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "sek" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "stalled" +msgstr "odložený" + +#: lib/RT/Group_Overlay.pm:202 +#. ($self->Type) +msgid "system %1" +msgstr "systém %1" + +#: lib/RT/Group_Overlay.pm:213 +#. ($self->Type) +msgid "system group '%1'" +msgstr "systémová skupina '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:42 +msgid "the calling component did not specify why" +msgstr "volající komponenta neudala důvod" + +#: lib/RT/Group_Overlay.pm:210 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "požadavek #%1 %2" + +#: lib/RT/Group_Overlay.pm:216 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "nepopsaná skupina %1" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "nepopsaná skupina %1" + +#: lib/RT/Group_Overlay.pm:191 +#. ($user->Object->Name) +msgid "user %1" +msgstr "uživatel %1" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "týdnů" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "se vzorem %1" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "roků" + diff --git a/rt/lib/RT/I18N/de.po b/rt/lib/RT/I18N/de.po new file mode 100644 index 000000000..3595aad47 --- /dev/null +++ b/rt/lib/RT/I18N/de.po @@ -0,0 +1,4500 @@ +# German localization catalog for Request Tracker (RT) +# FIRST AUTHOR: Florian Bischof <flo@fxb.de>, May 2002 +# +msgid "" +msgstr "" +"Project-Id-Version: RT 2.1.54\n" +"POT-Creation-Date: 2002-06-22 06:06+0200\n" +"PO-Revision-Date: 2003-02-20 04:47+0200\n" +"Last-Translator: Florian Bischof <flo@fxb.de>\n" +"Language-Team: RT German <rt@fxb.de>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +msgid "#" +msgstr "#" + +#: html/Admin/Queues/Scrip.html:55 +#. ($QueueObj->id) +msgid "#%1" +msgstr "" + +#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 +#. ($Ticket->Id, $Ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "#%1: %2" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "%1 %2" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($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 %3. %2 %7, %4:%5:%6" + +#: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "%1 %2 hinzugefügt" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "vor %1 %2" + +#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 %2 geändert in %3" + +#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "%1 %2 gelöscht" + +#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 with template %3" +msgstr "%1 %2 mit der Vorlage %3" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "%1 (%2) %3 dieses Ticket\\n" + +#: html/Search/Listing.html:57 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "%1 - %2 angezeigt" + +#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "%1 - ein Argument zur Übergabe an %2" + +#: bin/rt-crontool:185 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "" + +#msgstr "%1 - Schreibe Statusupdates nach STDOUT" +#: bin/rt-crontool:179 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - Gebe an, welches Action-Modul benutzt werden soll" + +#: bin/rt-crontool:173 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - Gebe an, welches Condition-Modul benutzt werden soll" + +#: bin/rt-crontool:166 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - Gebe an, welches Search-Modul benutzt werden soll" + +#: lib/RT/ScripAction_Overlay.pm:122 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "ScripAction %1 geladen" + +#: lib/RT/Ticket_Overlay.pm:3471 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "%1 als Wert für %2 hinzugefügt" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on (from %2) %3" +msgstr "" + +#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#. ($args{'Base'}) +#. ($args{'Target'}) +msgid "%1 appears to be a local object, but can't be found in the database" +msgstr "%1 konnte nicht in der Datenbank gefunden werden obwohl es ein lokales Objekt zu sein scheint" + +#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "am %1 von %2" + +#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#. ($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 von %2 in %3 geändert" + +#: lib/RT/Interface/Web.pm:857 +msgid "%1 could not be set to %2." +msgstr "%1 konnte nicht auf %2 gesetzt werden." + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 konnte den Status nicht auf erledigt setzen. Die RT-Datenbank könnte inkonsistent sein." + +#: html/Elements/MyTickets:25 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "%1 mir zugewiesene Anfragen mit höchster Priorität..." + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "Die %1 von mir ausgelösten Anfragen mit höchster Priorität" + +#: bin/rt-crontool:161 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "%1 ist ein Werkzeug um Anfragen über externe Terminierungstools wie \"cron\" zu verarbeiten" + +#: lib/RT/Queue_Overlay.pm:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 ist kein %2 dieses Stapels mehr." + +#: lib/RT/Ticket_Overlay.pm:1570 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 ist nicht mehr %2 dieser Anfrage." + +#: lib/RT/Ticket_Overlay.pm:3527 +#. ($args{'Value'}, $cf->Name) +msgid "%1 is no longer a value for custom field %2" +msgstr "%1 ist kein Wert des benutzerdefinierten Feldes %2 mehr" + +#: NOT FOUND IN SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "%1 ist keine gültige Stapel-Id." + +#: html/Ticket/Elements/ShowBasics:36 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 Min" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "" + +#: html/User/Elements/DelegateRights:76 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "%1 Rechte" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "" + +#: lib/RT/Action/ResolveMembers.pm:42 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 wird alle Mitglieder eines erledigten Gruppentickets erledigen." + +#: NOT FOUND IN SOURCE +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:435 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: kein Anhang angegeben" + +#: html/Ticket/Elements/ShowTransaction:102 +#. ($size) +msgid "%1b" +msgstr "%1b" + +#: html/Ticket/Elements/ShowTransaction:99 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "%1k" + +#: lib/RT/Ticket_Overlay.pm:1140 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "'%1' ist ein ungültiger Wert für Status" + +#: NOT FOUND IN SOURCE +msgid "'%1' not a recognized action. " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete scrip)" +msgstr "(Markieren um Scrip zu löschen)" + +#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +msgid "(Check box to delete)" +msgstr "(Markieren um zu löschen)" + +#: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Gib Anfragenummern oder URLs getrennt durch Leerzeichen ein)" + +#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#. ($RT::CorrespondAddress) +#. ($RT::CommentAddress) +msgid "(If left blank, will default to %1" +msgstr "(Bei Freilassen %1" + +#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +msgid "(No custom fields)" +msgstr "(Keine benutzerdefinierten Felder)" + +#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +msgid "(No members)" +msgstr "(Keine Mitglieder)" + +#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +msgid "(No scrips)" +msgstr "(Keine Scrips)" + +#: html/Admin/Elements/EditTemplates:31 +msgid "(No templates)" +msgstr "(Keine Vorlagen)" + +#: html/Ticket/Update.html:85 +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 "(Schickt eine Blindkopie dieser Aktualisierung an eine durch Komma getrennte Liste von E-Mail-Adressen. Ändert <b>nicht</b> wer künftig Aktualisierungen geschickt bekommt.)" + +#: 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 "" + +#: html/Ticket/Create.html:79 +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 "(Schickt eine Kopie dieser Aktualisierung an eine durch Komma getrennte Liste von administrativen E-Mail-Adressen. Diese <b>werden</b> künftig Aktualisierungen erhalten.)" + +#: html/Ticket/Update.html:81 +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 "(Schickt eine Kopie dieser Aktualisierung an eine durch Komma getrennte Liste von E-Mail-Adressen. Ändert <b>nicht</b> wer künftig Aktualisierungen geschickt bekommt.)" + +#: 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 "" + +#: html/Ticket/Create.html:69 +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 "(Schickt eine Kopie dieser Aktualisierung an eine durch Komma getrennte Liste von E-Mail-Adressen. Diese <b>werden</b> künftig Aktualisierungen erhalten.)" + +#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +msgid "(empty)" +msgstr "(leer)" + +#: html/Admin/Users/index.html:39 +msgid "(no name listed)" +msgstr "" + +#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +msgid "(no subject)" +msgstr "(kein Betreff)" + +#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +msgid "(no value)" +msgstr "(keine Angabe)" + +#: html/Ticket/Elements/EditLinks:116 +msgid "(only one ticket)" +msgstr "(nur eine Anfrage)" + +#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +msgid "(pending approval)" +msgstr "(wartet auf Freigabe)" + +#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +msgid "(pending other tickets)" +msgstr "(wartet auf andere Anfragen)" + +#: html/Admin/Users/Modify.html:50 +msgid "(required)" +msgstr "(notwendig)" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "(untitled)" +msgstr "(unbenannt)" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "" + +#: html/Ticket/Elements/ShowBasics:32 +msgid "<% $Ticket->Status%>" +msgstr "" + +#: html/Elements/SelectTicketTypes:27 +msgid "<% $_ %>" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"Neue Anfrage in\"> %1" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "Eine leere Vorlage" + +#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +msgid "ACE not found" +msgstr "ACE nicht gefunden" + +#: lib/RT/ACE_Overlay.pm:831 +msgid "ACEs can only be created and deleted." +msgstr "ACEs können nur erstellt und gelöscht werden." + +#: bin/rt-commit-handler:755 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Breche ab um ungewünschte Veränderungen an der Anfrage zu verhindern.\\n" + +#: html/User/Elements/Tabs:32 +msgid "About me" +msgstr "Über mich" + +#: html/Admin/Users/Modify.html:80 +msgid "Access control" +msgstr "Zugriffskontrolle" + +#: html/Admin/Elements/EditScrip:57 +msgid "Action" +msgstr "Aktion" + +#: lib/RT/Scrip_Overlay.pm:147 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "Aktion %1 nicht gefunden" + +#: bin/rt-crontool:123 +msgid "Action committed." +msgstr "Aktion durchgeführt." + +#: bin/rt-crontool:119 +msgid "Action prepared..." +msgstr "Aktion vorbereitet..." + +#: html/Search/Bulk.html:92 +msgid "Add AdminCc" +msgstr "AdminCC hinzufügen" + +#: html/Search/Bulk.html:90 +msgid "Add Cc" +msgstr "CC hinzufügen" + +#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +msgid "Add More Files" +msgstr "Mehr Dateien anhängen" +msgstr "Weitere Dateien anhängen" + +#: html/Search/Bulk.html:88 +msgid "Add Requestor" +msgstr "Klient hinzufügen" + +#: NOT FOUND IN SOURCE +msgid "Add a new a global scrip" +msgstr "Erstelle ein neues globales Scrip" + +#: NOT FOUND IN SOURCE +msgid "Add a scrip to this queue" +msgstr "Erstelle ein Scrip für diesen Stapel" + +#: html/Admin/Global/Scrip.html:55 +msgid "Add a scrip which will apply to all queues" +msgstr "Scrip erstellen, das auf alle Stapel angewendet wird" + +#: html/Search/Bulk.html:118 +msgid "Add comments or replies to selected tickets" +msgstr "Füge den ausgewählten Anfragen Kommentare oder Antworten hinzu" + +#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +msgid "Add members" +msgstr "Mitglieder hinzufügen" + +#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +msgid "Add new watchers" +msgstr "Neue Beobachter hinzufügen" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "Habe einen Hauptverantwortlichen als %1 für diesen Stapel hinzugefügt" + +#: lib/RT/Ticket_Overlay.pm:1454 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "Habe einen Hauptverantwortlichen als %1 für diese Anfrage hinzugefügt" + +#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +msgid "Address1" +msgstr "Adresse 1" + +#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +msgid "Address2" +msgstr "Adresse 2" + +#: html/Ticket/Create.html:74 +msgid "Admin Cc" +msgstr "Admin CC" + +#: etc/initialdata:274 +msgid "Admin Comment" +msgstr "Admin Kommentar" + +#: etc/initialdata:256 +msgid "Admin Correspondence" +msgstr "Admin Korrespondenz" + +#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +msgid "Admin queues" +msgstr "Admin Stapel" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "" + +#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +msgid "Admin/Global configuration" +msgstr "Admin/Globale Einstellungen" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "" + +#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +msgid "Admin/Queue/Basics" +msgstr "Admin/Stapel/Basics" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +msgid "AdminCc" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "AdminCustomFields" +msgstr "" + +#: lib/RT/Group_Overlay.pm:146 +msgid "AdminGroup" +msgstr "" + +#: lib/RT/Group_Overlay.pm:148 +msgid "AdminGroupMembership" +msgstr "" + +#: lib/RT/System.pm:59 +msgid "AdminOwnPersonalGroups" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "AdminQueue" +msgstr "" + +#: lib/RT/System.pm:60 +msgid "AdminUsers" +msgstr "" + +#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +msgid "Administrative Cc" +msgstr "Administrative CC" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "Erweiterte Suche" + +#: html/Elements/SelectDateRelation:36 +msgid "After" +msgstr "Nach dem" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "Alter" + +#: html/Admin/Elements/EditCustomFields:96 +msgid "All Custom Fields" +msgstr "Alle benutzerdefinierten Felder" + +#: html/Admin/Queues/index.html:53 +msgid "All Queues" +msgstr "Alle Stapel" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "" + +#: html/Elements/Tabs:58 +msgid "Approval" +msgstr "Freigabe" + +#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#. ($Ticket->Id, $Ticket->Subject) +#. ($ticket->id, $msg) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Approval #%1: %2" +msgstr "Freigabe #%1: %2" + +#: html/Approvals/index.html:54 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "Freigabe #%1: Notiz wurde aufgrund eines Systemfehlers nicht vermerkt" + +#: html/Approvals/index.html:52 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "Freigabe #%1: Notiz vermerkt" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "" + +#: html/Approvals/Elements/Approve:45 +msgid "Approve" +msgstr "Freigeben" + +#: etc/initialdata:431 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "Notizen des Freigebenden: %1" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "Apr" + +#: html/Elements/SelectSortOrder:35 +msgid "Ascending" +msgstr "aufsteigend" + +#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +msgid "Attach" +msgstr "Anhängen" + +#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +msgid "Attach file" +msgstr "Datei anhängen" + +#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +msgid "Attached file" +msgstr "Dateianhang" + +#: html/SelfService/Attachment/dhandler:36 +msgid "Attachment '%1' could not be loaded" +msgstr "Anhang '%1' konnte nicht geladen werden" + +#: lib/RT/Transaction_Overlay.pm:443 +msgid "Attachment created" +msgstr "Anhang erstellt" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "Dateiname des Anhangs" + +#: html/Ticket/Elements/ShowAttachments:26 +msgid "Attachments" +msgstr "Anhänge" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "Aug" + +#: html/Admin/Elements/ModifyUser:66 +msgid "AuthSystem" +msgstr "AuthSystem" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "Autoreply" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "Autoreply an Klienten" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "Fehlerhafte PGP-Signatur: %1\\n" + +#: html/SelfService/Attachment/dhandler:40 +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "Fehlerhafte Anhangs-Id. Konnte Anhang '%1' nicht finden\\n" + +#: bin/rt-commit-handler:827 +#. ($val) +msgid "Bad data in %1" +msgstr "Fehlerhafte Daten in %1" + +#: html/SelfService/Attachment/dhandler:43 +#. ($trans, $AttachmentObj->TransactionId()) +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "Fehlerhafte Transaktionsnummer für den Anhang. %1 solle %2 sein\\n" + +#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +msgid "Basics" +msgstr "Grundlagen" + +#: html/Ticket/Update.html:83 +msgid "Bcc" +msgstr "BCC" + +#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +msgid "Be sure to save your changes" +msgstr "Denke daran, Deine Änderungen zu speichern" + +### wieder - Duzen??? +#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +msgid "Before" +msgstr "vor dem" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "Leer" + +#: html/Search/Listing.html:79 +msgid "Bookmarkable URL for this search" +msgstr "Speicherbare URL für diese Suche" + +#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +msgid "Brief headers" +msgstr "Kurze Kopfzeilen" + +#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +msgid "Bulk ticket update" +msgstr "Massen Ticketupdate" + +#: lib/RT/User_Overlay.pm:1331 +msgid "Can not modify system users" +msgstr "Kann Systembenutzer nicht ändern" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Can this principal see this queue" +msgstr "Kann dieser Hauptverantwortliche diesen Stapel sehen" + +#: lib/RT/CustomField_Overlay.pm:144 +msgid "Can't add a custom field value without a name" +msgstr "Kann kein benutzerdefiniertes Feld ohne Namen hinzufügen" + +#: lib/RT/Link_Overlay.pm:132 +msgid "Can't link a ticket to itself" +msgstr "Kann kein Ticket auf sich selbst verweisen lassen!" + +#: lib/RT/Ticket_Overlay.pm:2787 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "Konnte das Ticket nicht in ein vereinigtes Ticket vereinigen. Diesen Fehler solltest du niemals sehen" + +#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +msgid "Can't specifiy both base and target" +msgstr "Du kannst nicht Basis und Ziel gleichzeitig angeben" + +#: html/autohandler:112 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "Kann Benutzer nicht anlegen: %1" + +#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +msgid "Cc" +msgstr "CC" + +#: html/SelfService/Prefs.html:31 +msgid "Change password" +msgstr "Passwort ändern" + +#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +msgid "Check box to delete" +msgstr "Zum Löschen ankreuzen" + +#: html/Admin/Elements/SelectRights:31 +msgid "Check box to revoke right" +msgstr "Zum Entziehen einer Berechtigung ankreuzen" + +#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +msgid "Children" +msgstr "Kinder" + +#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +msgid "City" +msgstr "Stadt" + +#: html/Ticket/Elements/ShowDates:47 +msgid "Closed" +msgstr "Geschlossen" + +#: html/SelfService/Elements/Tabs:60 +msgid "Closed requests" +msgstr "Geschossene Tickets" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +msgid "Comment" +msgstr "Kommentar" + +#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +msgid "Comment Address" +msgstr "Kommentaradresse" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Comment on tickets" +msgstr "Kommentiere Tickets" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "CommentOnTicket" +msgstr "" + +#: html/Admin/Elements/ModifyUser:35 +msgid "Comments" +msgstr "Kommantare" + +#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +msgid "Comments (Not sent to requestors)" +msgstr "Kommentar (wird nicht an Klienten geschickt)" + +#: html/Search/Bulk.html:122 +msgid "Comments (not sent to requestors)" +msgstr "Kommentar (wird nicht an Klienten geschickt)" + +#: html/Elements/ViewUser:27 +#. ($name) +msgid "Comments about %1" +msgstr "Kommentar über %1" + +#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +msgid "Comments about this user" +msgstr "Kommentar zu diesen Benutzer" + +#: lib/RT/Transaction_Overlay.pm:545 +msgid "Comments added" +msgstr "Kommentar hinzugefügt" + +#: lib/RT/Action/Generic.pm:140 +msgid "Commit Stubbed" +msgstr "Übergabe abgehakt" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "" + +#: html/Admin/Elements/EditScrip:41 +msgid "Condition" +msgstr "Bedingung" + +#: bin/rt-crontool:109 +msgid "Condition matches..." +msgstr "Condition trifft zu..." + +#: lib/RT/Scrip_Overlay.pm:160 +msgid "Condition not found" +msgstr "Bedingung nicht gefunden" + +#: html/Elements/Tabs:52 +msgid "Configuration" +msgstr "Konfiguration" + +#: html/SelfService/Prefs.html:33 +msgid "Confirm" +msgstr "Bestätigen" + +#: html/Admin/Elements/ModifyUser:60 +msgid "ContactInfoSystem" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "" + +#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +msgid "Content" +msgstr "Inhalt" + +#: etc/initialdata:266 +msgid "Correspondence" +msgstr "Korrespondenz" + +#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +msgid "Correspondence Address" +msgstr "Korrespondenzadresse" + +#: lib/RT/Transaction_Overlay.pm:541 +msgid "Correspondence added" +msgstr "Korrespondenz hinzugefügt" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3458 +msgid "Could not add new custom field value for ticket. " +msgstr "Konnte dem Ticket kein neues benutzerdefiniertes Feld hinzufügen. " + +#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +msgid "Could not change owner. " +msgstr "Konnte den Inhaber nicht ändern. " + +#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#. ($msg) +msgid "Could not create CustomField" +msgstr "Konnte benutzerdefiniertes Feld nicht anlegen" + +#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +msgid "Could not create group" +msgstr "Konnte Gruppe nicht anlegen" + +#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#. ($msg) +msgid "Could not create template: %1" +msgstr "Konnte Vorlage nicht anlegen: %1" + +#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +msgid "Could not create ticket. Queue not set" +msgstr "Konnte Ticket nicht anlegen. Stapel nicht bestimmt" + +#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +msgid "Could not create user" +msgstr "Konnte Benutzer nicht anlegen" + +#: NOT FOUND IN SOURCE +msgid "Could not find a ticket with id %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "" + +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +msgid "Could not find or create that user" +msgstr "Konnte diesen Benutzer nicht finden oder anlegen" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +msgid "Could not find that principal" +msgstr "Konnte diesen Hauptverantwortlichen nicht finden" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "" + +#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +msgid "Could not load group" +msgstr "Konnte die Gruppe nicht laden" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "Konnte den Hauptverantwortlichen nicht zu einen %1 dieses Stapels machen" + +#: lib/RT/Ticket_Overlay.pm:1443 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "Konnte diesen Hauptverantwortlichen nicht zu einem %1 dieses Tickets machen" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "Konnte diesen Hauptverantwortlichen nicht als %1 dieses Stapels entfernen" + +#: lib/RT/Ticket_Overlay.pm:1559 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "Konnte diesen Hauptverantwortlichen nicht als %1 dieses Tickets entfernen" + +#: lib/RT/Group_Overlay.pm:985 +msgid "Couldn't add member to group" +msgstr "Konnte Mitglied nicht der Gruppe hinzufügen" + +#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "Konnte die Transaktion nicht anlegen: %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't figure out what to do from gpg's reply\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find group\\n" +msgstr "" + +#: lib/RT/Interface/Web.pm:866 +msgid "Couldn't find row" +msgstr "Konne Zeile nicht finden" + +#: lib/RT/Group_Overlay.pm:959 +msgid "Couldn't find that principal" +msgstr "Konnte diesen Hauptverantwortlichen nicht finden" + +#: lib/RT/CustomField_Overlay.pm:175 +msgid "Couldn't find that value" +msgstr "Konnte diesen Wert nicht finden" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find user\\n" +msgstr "" + +#: lib/RT/CurrentUser.pm:112 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Konnte %1 nicht aus der Benutzerdatenbank laden.\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Scrips." +msgstr "" + +#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#. ($id) +msgid "Couldn't load group %1" +msgstr "Konnte Gruppe %1 nicht laden" + +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +msgid "Couldn't load link" +msgstr "Konnte den Verweis nicht laden" + +#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#. ($id) +msgid "Couldn't load queue" +msgstr "Konnte den Stapel nicht laden" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "Konnte den Stapel %1 nicht laden" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "" + +#: html/Admin/Users/Prefs.html:79 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "Konnte diesen Benutzer nicht laden (%1)" + +#: html/SelfService/Display.html:166 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Konnte das Ticket '%1' nicht laden" + +#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +msgid "Country" +msgstr "Land" + +#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +msgid "Create" +msgstr "Erstellen" + +#: etc/initialdata:128 +msgid "Create Tickets" +msgstr "Erstelle Tickets" + +#: html/Admin/Elements/EditCustomField:58 +msgid "Create a CustomField" +msgstr "Erstelle ein benutzerdefiniertes Feld" + +#: html/Admin/Queues/CustomField.html:48 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "Erstelle ein benutzerdef. Feld für Stapel %1" + +#: html/Admin/Global/CustomField.html:48 +msgid "Create a CustomField which applies to all queues" +msgstr "Erstelle ein benutzerdef. Feld für alle Stapel" + +#: NOT FOUND IN SOURCE +msgid "Create a new Custom Field" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create a new global scrip" +msgstr "" + +#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +msgid "Create a new group" +msgstr "Erstelle eine neue Gruppe" + +#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +msgid "Create a new personal group" +msgstr "Erstelle eine neue persönliche Gruppe" + +#: 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/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +msgid "Create a new ticket" +msgstr "Erstelle ein neues Ticket" + +#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +msgid "Create a new user" +msgstr "Erstelle einen neuen Benutzer" + +#: html/Admin/Queues/Modify.html:103 +msgid "Create a queue" +msgstr "Erstelle einen Stapel" + +#: NOT FOUND IN SOURCE +msgid "Create a queue called" +msgstr "" + +#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +msgid "Create a request" +msgstr "Erstelle ein Ticket" + +#: html/Admin/Queues/Scrip.html:59 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "Erstelle ein Scrip für den Stapel %1" + +#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +msgid "Create a template" +msgstr "Erstelle eine Vorlage" + +#: etc/initialdata:130 +msgid "Create new tickets based on this scrip's template" +msgstr "Erstelle neue Tickets basierend auf der Vorlage dieses Scrips" + +#: html/SelfService/Create.html:81 +msgid "Create ticket" +msgstr "Ticket erstellen" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Create tickets in this queue" +msgstr "Erstelle Tickets in diesem Stapel" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Create, delete and modify custom fields" +msgstr "Erstellen, löschen und modifizieren von benutzerdef. Felder" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "Create, delete and modify queues" +msgstr "Erstelle, lösche und modifiziere Stapel" + +#: NOT FOUND IN SOURCE +msgid "Create, delete and modify the members of any user's personal groups" +msgstr "" + +#: lib/RT/System.pm:59 +msgid "Create, delete and modify the members of personal groups" +msgstr "Erstellen, löschen und modifizieren von Mitgliedern persönlicher Gruppen" + +#: lib/RT/System.pm:60 +msgid "Create, delete and modify users" +msgstr "Erstellen, löschen und modifizieren von Benutzern" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "CreateTicket" +msgstr "" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +msgid "Created" +msgstr "Angelegt" + +#: html/Admin/Elements/EditCustomField:71 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "Erstelle ein benutzerdefiniertes Feld %1" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "" + +#: html/Ticket/Elements/EditLinks:28 +msgid "Current Relationships" +msgstr "Momentane Beziehungen" + +#: html/Admin/Elements/EditScrips:30 +msgid "Current Scrips" +msgstr "Aktuelle Scrips" + +#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +msgid "Current members" +msgstr "Aktuelle Mitglieder" + +#: html/Admin/Elements/SelectRights:29 +msgid "Current rights" +msgstr "Aktuelle Rechte" + +#: html/Search/Listing.html:71 +msgid "Current search criteria" +msgstr "Aktuelle Suchkriterien" + +#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +msgid "Current watchers" +msgstr "Aktuelle Beobachter" + +#: html/Admin/Global/CustomField.html:55 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "Benutzerdef. Feld #%1" + +#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +msgid "Custom Fields" +msgstr "Benutzerdef. Felder" + +#: html/Admin/Elements/EditScrip:73 +msgid "Custom action cleanup code" +msgstr "Benutzerdefinierter Action-Cleanup-Code" + +#: html/Admin/Elements/EditScrip:65 +msgid "Custom action preparation code" +msgstr "Benutzerdefinierter Aktions-Vorbereitungs-Code" + +#: html/Admin/Elements/EditScrip:49 +msgid "Custom condition" +msgstr "Benutzerdefinierte Bedingung" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "Benutzerdefiniertes Feld %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "Benutzerdefiniertes Feld %1 hat einen Wert." + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "Benutzerdefiniertes Feld %1 hat keinen Wert." + +#: lib/RT/Ticket_Overlay.pm:3360 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Benutzerdefiniertes Feld %1 nicht gefunden" + +#: html/Admin/Elements/EditCustomFields:197 +msgid "Custom field deleted" +msgstr "Benutzerdefiniertes Feld wurde gelöscht" + +#: lib/RT/Ticket_Overlay.pm:3510 +msgid "Custom field not found" +msgstr "Benutzerdefiniertes Feld nicht gefunden" + +#: lib/RT/CustomField_Overlay.pm:283 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "Wert %1 des benutzerdefinierten Feldes %2 konnte nicht gefunden werden" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:185 +msgid "Custom field value could not be deleted" +msgstr "Wert des benutzerdefinierten Felds konnte nicht gelöscht werden" + +#: lib/RT/CustomField_Overlay.pm:289 +msgid "Custom field value could not be found" +msgstr "Wert des benutzerdefinierten Feldes konnte nicht gefunden werden" + +#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +msgid "Custom field value deleted" +msgstr "Wert des benutzerdefinierten Feldes gelöscht" + +#: lib/RT/Transaction_Overlay.pm:550 +msgid "CustomField" +msgstr "" + +#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +msgid "Dates" +msgstr "Datumsangaben" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "Dez" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "Standard Autoresponse-Vorlage" + +#: etc/initialdata:275 +msgid "Default admin comment template" +msgstr "Standard Admin-Kommentar-Vorlage" + +#: etc/initialdata:257 +msgid "Default admin correspondence template" +msgstr "Standard Admin-Korrespondenz-Vorlage" + +#: etc/initialdata:267 +msgid "Default correspondence template" +msgstr "Standard Korrespondenz-Vorlage" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "Standard Transaktions-Vorlage" + +#: lib/RT/Transaction_Overlay.pm:645 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "Standard: %1/%2 von \"%3\" in \"%4\" geändert." + +#: html/User/Delegation.html:25 html/User/Delegation.html:28 +msgid "Delegate rights" +msgstr "Rechte weitergeben" + +#: lib/RT/System.pm:63 +msgid "Delegate specific rights which have been granted to you." +msgstr "Dir gewährte Rechte weitergeben" + +#: lib/RT/System.pm:63 +msgid "DelegateRights" +msgstr "" + +#: html/User/Elements/Tabs:38 +msgid "Delegation" +msgstr "Rechteweitergabe" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "Delete tickets" +msgstr "Lösche Tickets" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "DeleteTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "Löschen dieses Objektes kann die referenzielle Integrität gefährden" + +#: lib/RT/Queue_Overlay.pm:292 +msgid "Deleting this object would break referential integrity" +msgstr "Löschen dieses Objektes würde die referenzielle Integrität gefährden" + +#: lib/RT/User_Overlay.pm:430 +msgid "Deleting this object would violate referential integrity" +msgstr "Löschen dieses Objektes würde die referenzielle Integrität verletzen" + +#: html/Approvals/Elements/Approve:46 +msgid "Deny" +msgstr "Ablehnen" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +msgid "Depended on by" +msgstr "Abhängig gemacht von" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +msgid "Depends on" +msgstr "Abhängig von" + +#: html/Elements/SelectSortOrder:35 +msgid "Descending" +msgstr "absteigend" + +#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +msgid "Describe the issue below" +msgstr "Beschreibe hier das Problem" + +#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +msgid "Description" +msgstr "Beschreibung" + +#: html/SelfService/Elements/MyRequests:44 +msgid "Details" +msgstr "Details" + +#: html/Ticket/Elements/Tabs:85 +msgid "Display" +msgstr "Anzeigen" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Display Access Control List" +msgstr "Zeige Zugriffskontrollliste an" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Display Scrip templates for this queue" +msgstr "Zeige Scrip-Vorlagen für diesen Stapel" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Display Scrips for this queue" +msgstr "Zeige Scrips für diesen Stapel" + +#: html/Ticket/Elements/ShowHistory:35 +msgid "Display mode" +msgstr "Anzeigemodus" + +#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 +#. ($Ticket->id) +msgid "Display ticket #%1" +msgstr "Zeige Ticket #%1 an" + +#: lib/RT/System.pm:54 +msgid "Do anything and everything" +msgstr "Mache irgend etwas und alles" + +#: html/Elements/Refresh:30 +msgid "Don't refresh this page." +msgstr "Seite nicht aktualisieren." + +#: html/Search/Elements/PickRestriction:114 +msgid "Don't show search results" +msgstr "Suchergebnisse nicht anzeigen" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "Download" +msgstr "Download" + +#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +msgid "Due" +msgstr "Fällig" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "" + +#: bin/rt-commit-handler:754 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "FEHLER: Konnte Ticket '%1' nicht laden: %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "" + +#: html/Admin/Queues/CustomFields.html:45 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "Bearbeite benutzerdefinierte Felder für %1" + +#: html/Ticket/ModifyLinks.html:36 +msgid "Edit Relationships" +msgstr "Bearbeite Beziehungen" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "Bearbeite Vorlagen für Stapel %1" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "" + +#: html/Admin/Global/index.html:46 +msgid "Edit system templates" +msgstr "Bearbeite Systemvorlagen" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "Bearbeite Konfiguration für den Stapel %1" + +#: html/Admin/Elements/ModifyUser:25 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "Bearbeite Konfiguration für Benutzer %1" + +#: html/Admin/Elements/EditCustomField:74 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Bearbeite benutzerdefiniertes Feld %1" + +#: html/Admin/Groups/Members.html:32 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Bearbeite Mitgliedschaft für die Gruppe %1" + +#: html/User/Groups/Members.html:129 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "Bearbeite Mitgliedschaft der persönlichen Gruppe %1" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +msgid "Either base or target must be specified" +msgstr "Es muß entweder eine Basis oder ein Ziel angegeben werden" + +#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +msgid "Email" +msgstr "E-Mail" + +#: lib/RT/User_Overlay.pm:188 +msgid "Email address in use" +msgstr "E-Mail-Adresse bereits in Gebrauch" + +#: html/Admin/Elements/ModifyUser:42 +msgid "EmailAddress" +msgstr "E-Mail-Adresse" + +### muss das überhaupt übersetzt werden??? +#: html/Admin/Elements/ModifyUser:54 +msgid "EmailEncoding" +msgstr "E-Mail-Kodierung" + +### muss das überhaupt übersetzt werden??? +#: html/Admin/Elements/EditCustomField:36 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "Aktiviert (Abwählen deaktiviert dieses benutzerdef. Feld)" + +#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "Aktiviert (Abwählen deaktiviert diese Gruppe)" + +#: html/Admin/Queues/Modify.html:84 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Aktiviert (Abwählen deaktiviert diesen Stapel)" + +#: html/Admin/Elements/EditCustomFields:99 +msgid "Enabled Custom Fields" +msgstr "Aktivierte benutzerdefinierte Felder" + +#: html/Admin/Queues/index.html:56 +msgid "Enabled Queues" +msgstr "Aktivierte Stapel" + +#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "Status %1 aktiviert" + +#: lib/RT/CustomField_Overlay.pm:361 +msgid "Enter multiple values" +msgstr "Mehrere Werte eingeben" + +#: lib/RT/CustomField_Overlay.pm:358 +msgid "Enter one value" +msgstr "Einen Wert eingeben" + +#: html/Ticket/Elements/EditLinks:112 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Ticketnummern oder URIs getrennt durch Leerzeichen eingeben." + +#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +msgid "Error" +msgstr "Fehler" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Fehler in den Parameter für Queue-AddWatcher" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Fehler in den Paramter für Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1356 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Fehler in den Parameter für Ticket->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1532 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Fehler in den Parameter für Ticket->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "Everyone" + +#: bin/rt-crontool:194 +msgid "Example:" +msgstr "Beispiel:" + +#: html/Admin/Elements/ModifyUser:64 +msgid "ExternalAuthId" +msgstr "ExternalAuthId" + +#: html/Admin/Elements/ModifyUser:58 +msgid "ExternalContactInfoId" +msgstr "ExternalContactInfoId" + +#: html/Admin/Users/Modify.html:73 +msgid "Extra info" +msgstr "Zusatzinformationen" + +#: lib/RT/User_Overlay.pm:302 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Konnte die Pseudogruppe 'Privileged' nicht finden." + +#: lib/RT/User_Overlay.pm:309 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Failed to find 'Unprivileged' users pseudogroup" + +#: bin/rt-crontool:138 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "Konnte Modul %1 nicht laden. (%2)" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "Feb" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "Endpriorität" + +#: lib/RT/Ticket_Overlay.pm:1162 +msgid "FinalPriority" +msgstr "" + +#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +msgid "Find group whose" +msgstr "Finde Gruppe wessen" + +#: html/Elements/Quicksearch:25 +msgid "Find new/open tickets" +msgstr "Finde neue/offene Tickets" + +#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +msgid "Find people whose" +msgstr "Finde Leute deren" + +#: html/Search/Listing.html:108 +msgid "Find tickets" +msgstr "Anfragen suchen" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "" + +#: html/Ticket/Elements/Tabs:58 +msgid "First" +msgstr "Erste" + +#: html/Search/Listing.html:41 +msgid "First page" +msgstr "Erste Seite" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "Foo Bar Baz" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "Foo!" + +#: html/Search/Bulk.html:87 +msgid "Force change" +msgstr "erzwinge Änderung" + +#: html/Search/Listing.html:106 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "%quant(%1,ticket) gefunden" + +#: lib/RT/Interface/Web.pm:868 +msgid "Found Object" +msgstr "Objekt gefunden" + +#: html/Admin/Elements/ModifyUser:44 +msgid "FreeformContactInfo" +msgstr "FreeformContactInfo" + +#: lib/RT/CustomField_Overlay.pm:38 +msgid "FreeformMultiple" +msgstr "FreieMehrfachauswahl" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformSingle" +msgstr "FreieEinzelauswahl" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "Fr" + +#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +msgid "Full headers" +msgstr "Alle Kopfzeilen" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:595 +#. ($New->Name) +msgid "Given to %1" +msgstr "An %1 gegeben" + +#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +msgid "Global" +msgstr "Global" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:38 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "Globale Vorlage: %1" + +#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +msgid "Go!" +msgstr "Los!" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "" + +#: html/Search/Listing.html:50 +msgid "Goto page" +msgstr "Gehe zu Seite" + +#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +msgid "Goto ticket" +msgstr "Zeig' Ticket" + +#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +msgid "Group" +msgstr "Gruppe" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "" + +#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +msgid "Group Rights" +msgstr "Gruppenrechte" + +#: lib/RT/Group_Overlay.pm:965 +msgid "Group already has member" +msgstr "Gruppe hat bereits Mitglieder" + +#: html/Admin/Groups/Modify.html:77 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "Gruppe konnte nicht erstellt werden: %1" + +#: lib/RT/Group_Overlay.pm:497 +msgid "Group created" +msgstr "Gruppe angelegt" + +#: lib/RT/Group_Overlay.pm:1133 +msgid "Group has no such member" +msgstr "Gruppe hat kein solches Mitglied" + +#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +msgid "Group not found" +msgstr "Gruppe nicht gefunden" + +#: NOT FOUND IN SOURCE +msgid "Group not found.\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Group not specified.\\n" +msgstr "" + +#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +msgid "Groups" +msgstr "Gruppen" + +#: lib/RT/Group_Overlay.pm:971 +msgid "Groups can't be members of their members" +msgstr "Gruppen können nicht Mitglied eines ihrer Mitglieder sein" + +#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +msgid "Hello!" +msgstr "Hallo!" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "Hallo %1" + +#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +msgid "History" +msgstr "Historie" + +#: html/Admin/Elements/ModifyUser:68 +msgid "HomePhone" +msgstr "TelefonZuhause" + +#: html/Elements/Tabs:46 +msgid "Homepage" +msgstr "Start" + +#: lib/RT/Base.pm:74 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "" + +#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "Nr." + +#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +msgid "Identity" +msgstr "Identität" + +#: etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "Wenn eine Freigabe abgewiesen wird, weise das Original ab und lösche wartende Freigaben" + +#: bin/rt-crontool:190 +msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." +msgstr "Wenn dieses Werkzeug 'setgid' wäre könnte ein feindlicher lokaler Benutzer dadurch administrativen Zugriff auf RT erlangen." + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "If you've updated anything above, be sure to" +msgstr "Wenn du irgend etwas aktualisiert hast, denke daran hier zu klicken" + +#: lib/RT/Interface/Web.pm:860 +msgid "Illegal value for %1" +msgstr "Unerlaubter Wert für %1" + +#: lib/RT/Interface/Web.pm:863 +msgid "Immutable field" +msgstr "Unveränderbares Feld" + +#: html/Admin/Elements/EditCustomFields:74 +msgid "Include disabled custom fields in listing." +msgstr "Zeige auch deaktivierte benutzerdefinierte Felder an." + +#: html/Admin/Queues/index.html:43 +msgid "Include disabled queues in listing." +msgstr "Zeige auch deaktivierte Stapel an." + +#: html/Admin/Users/index.html:47 +msgid "Include disabled users in search." +msgstr "Zeige deaktivierte Benutzer auch in der Suche an." + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "Anfängliche Priorität" + +#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +msgid "InitialPriority" +msgstr "" + +#: lib/RT/ScripAction_Overlay.pm:105 +msgid "Input error" +msgstr "Eingabefehler" + +#: lib/RT/Ticket_Overlay.pm:3729 +msgid "Internal Error" +msgstr "Interner Fehler" + +#: lib/RT/Record.pm:143 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "Internet Fehler: %1" + +#: lib/RT/Group_Overlay.pm:644 +msgid "Invalid Group Type" +msgstr "Ungültige Gruppenart" + +#: lib/RT/Principal_Overlay.pm:128 +msgid "Invalid Right" +msgstr "Ungültiges Recht" + +#: lib/RT/Interface/Web.pm:865 +msgid "Invalid data" +msgstr "Ungültige Daten" + +#: lib/RT/Ticket_Overlay.pm:438 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "Ungültiger Inhaber. Zurücksetzung auf 'nobody'." + +#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "Ungültiger Stapel" + +#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +msgid "Invalid right" +msgstr "Ungültiges Recht" + +#: lib/RT/Record.pm:118 +#. ($key) +msgid "Invalid value for %1" +msgstr "Ungültiger Wert für %1" + +#: lib/RT/Ticket_Overlay.pm:3367 +msgid "Invalid value for custom field" +msgstr "Ungültiger Wert für das benutzerdefinierte Feld" + +#: lib/RT/Ticket_Overlay.pm:345 +msgid "Invalid value for status" +msgstr "Ungültiger Statuswert" + +#: bin/rt-crontool:191 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "Es ist sehr wichtig dass nichtprivilegierte Benutzer dieses Werkzeug nicht aufrufen können." + +#: bin/rt-crontool:192 +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 "Es wird empfohlen einen nichtprivilegierten Unix-User mit korrekter Gruppenzugehörigkeit zum Zugriff auf RT anzulegen um dieses Werkzeug aufzurufen." + +#: bin/rt-crontool:163 +msgid "It takes several arguments:" +msgstr "Es verarbeitet verschiedene Parameter:" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "Jan" + +#: lib/RT/Group_Overlay.pm:149 +msgid "Join or leave this group" +msgstr "Betrete oder verlasse diese Gruppe" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "Jul" + +#: html/Ticket/Elements/Tabs:99 +msgid "Jumbo" +msgstr "Alles" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "Jun" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "" + +#: html/Admin/Elements/ModifyUser:52 +msgid "Lang" +msgstr "Sprache" + +#: html/Ticket/Elements/Tabs:73 +msgid "Last" +msgstr "letzter Kontakt" + +#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +msgid "Last Contact" +msgstr "Letzter Kontakt" + +#: html/Elements/SelectDateType:29 +msgid "Last Contacted" +msgstr "Zuletzt Kontaktiert" + +#: html/Search/Elements/TicketHeader:41 +msgid "Last Notified" +msgstr "Letzte Änderung" + +#: html/Elements/SelectDateType:30 +msgid "Last Updated" +msgstr "Zuletzt Aktualisiert" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "" + +#: html/Admin/Users/Modify.html:83 +msgid "Let this user access RT" +msgstr "Diesen Benutzer RT-Zugriff gewähren" + +#: html/Admin/Users/Modify.html:87 +msgid "Let this user be granted rights" +msgstr "Diesen Benutzer mehr Rechte gewähren" + +#: NOT FOUND IN SOURCE +msgid "Limiting owner to %1 %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Limiting queue to %1 %2" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2697 +msgid "Link already exists" +msgstr "Beziehung existiert bereits" + +#: lib/RT/Ticket_Overlay.pm:2709 +msgid "Link could not be created" +msgstr "Beziehung konnte nicht erstellt werden" + +#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#. ($TransString) +msgid "Link created (%1)" +msgstr "Beziehung erstellt (%1)" + +#: lib/RT/Ticket_Overlay.pm:2638 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Beziehung gelöscht (%1)" + +#: lib/RT/Ticket_Overlay.pm:2644 +msgid "Link not found" +msgstr "Beziehung nicht gefunden" + +#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "Verweise auf Ticket #%1" + +#: html/Ticket/Elements/Tabs:97 +msgid "Links" +msgstr "Beziehungen" + +#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +msgid "Location" +msgstr "Adresse" + +#: lib/RT.pm:158 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "Log-Verzeichnis %1 nicht gefunden oder kein Schreibzugriff.\\n RT kann nicht starten." + +#: html/Elements/Header:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "Angemeldet als %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +msgid "Login" +msgstr "Anmelden" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "Abmelden" + +#: html/Search/Bulk.html:86 +msgid "Make Owner" +msgstr "Mach Inhaber" + +#: html/Search/Bulk.html:102 +msgid "Make Status" +msgstr "Mach Status" + +#: html/Search/Bulk.html:109 +msgid "Make date Due" +msgstr "Mach Fälligkeitsdatum" + +#: html/Search/Bulk.html:110 +msgid "Make date Resolved" +msgstr "Mach Erledigungsdatum" + +#: html/Search/Bulk.html:107 +msgid "Make date Started" +msgstr "Mach Datum gestartet" + +#: html/Search/Bulk.html:106 +msgid "Make date Starts" +msgstr "Mach Startdatum" + +#: html/Search/Bulk.html:108 +msgid "Make date Told" +msgstr "Mach Eingangsdatum" + +#: html/Search/Bulk.html:99 +msgid "Make priority" +msgstr "Mach Priorität" + +#: html/Search/Bulk.html:100 +msgid "Make queue" +msgstr "Mach Stapel" + +#: html/Search/Bulk.html:98 +msgid "Make subject" +msgstr "Betreff setzen" + +#: html/Admin/index.html:33 +msgid "Manage groups and group membership" +msgstr "Gruppen und Gruppenmitglieder verwalten" + +#: html/Admin/index.html:39 +msgid "Manage properties and configuration which apply to all queues" +msgstr "Eigenschaften und Einstellungen für alle Stapel verwalten" + +#: html/Admin/index.html:36 +msgid "Manage queues and queue-specific properties" +msgstr "Stapel und stapelspezifische Einstellungen verwalten" + +#: html/Admin/index.html:30 +msgid "Manage users and passwords" +msgstr "Benutzer und Passworte verwalten" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "Mär" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "Mai." + +#: lib/RT/Group_Overlay.pm:982 +msgid "Member added" +msgstr "Mitglied hinzugefügt" + +#: lib/RT/Group_Overlay.pm:1140 +msgid "Member deleted" +msgstr "Mitglied gelöscht" + +#: lib/RT/Group_Overlay.pm:1144 +msgid "Member not deleted" +msgstr "Mitglied nicht gelöscht" + +#: html/Elements/SelectLinkType:26 +msgid "Member of" +msgstr "Mitglied von" + +#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +msgid "Members" +msgstr "Mitglieder" + +#: lib/RT/Ticket_Overlay.pm:2843 +msgid "Merge Successful" +msgstr "Zusammenführung erfolgreich" + +#: lib/RT/Ticket_Overlay.pm:2804 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "Zusammenführung fehlgeschlagen. Konnte EffectiveId nicht setztn" + +#: html/Ticket/Elements/EditLinks:115 +msgid "Merge into" +msgstr "Zusammenführen in" + +#: html/Ticket/Update.html:102 +msgid "Message" +msgstr "Nachricht" + +#: lib/RT/Interface/Web.pm:867 +msgid "Missing a primary key?: %1" +msgstr "%1: Fehlt ein Primärschlüssel?" + +#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +msgid "Mobile" +msgstr "Mobil" + +#: html/Admin/Elements/ModifyUser:72 +msgid "MobilePhone" +msgstr "Mobiltelefon" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify Access Control List" +msgstr "Ändere Zugriffskontrollliste" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "" + +#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +msgid "Modify Custom Fields which apply to all queues" +msgstr "Ändere benutzdefinierte Felder für diesen Stapel" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "Modify Scrip templates for this queue" +msgstr "Ändere Scrip-Vorlagen für diesen Stapel" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "Modify Scrips for this queue" +msgstr "Ändere Scrips für diesen Stapel" + +#: NOT FOUND IN SOURCE +msgid "Modify Template %1" +msgstr "" + +#: html/Admin/Queues/CustomField.html:45 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "Ändere ein benutzerdefiniertes Feld für Stapel %1" + +#: html/Admin/Global/CustomField.html:53 +msgid "Modify a CustomField which applies to all queues" +msgstr "Ändere ein globales benutzerdefiniertes Feld" + +#: html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "Ändere ein Scrip für den Stapel %1" + +#: html/Admin/Global/Scrip.html:48 +msgid "Modify a scrip which applies to all queues" +msgstr "Ändere ein globales benutzerdefiniertes Feld" + +#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Ändere Datumsangaben für #%1" + +#: html/Ticket/ModifyDates.html:35 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Ändere Datumsangaben für Ticket #%1" + +#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +msgid "Modify global group rights" +msgstr "Ändere globale Gruppenrechte" + +#: html/Admin/Global/GroupRights.html:33 +msgid "Modify global group rights." +msgstr "Ändere globale Gruppenrechte." + +#: NOT FOUND IN SOURCE +msgid "Modify global scrips" +msgstr "" + +#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +msgid "Modify global user rights" +msgstr "Ändere globale Benutzerrechte" + +#: html/Admin/Global/UserRights.html:33 +msgid "Modify global user rights." +msgstr "Ändere globale Benutzerrechte." + +#: lib/RT/Group_Overlay.pm:146 +msgid "Modify group metadata or delete group" +msgstr "Ändere Gruppen-Metadaten oder lösche die Gruppe" + +#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#. ($GroupObj->Name) +msgid "Modify group rights for group %1" +msgstr "Ändere die Gruppenrechte der Gruppe %1" + +#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "Ändere Gruppenrechte für Stapel %1" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Modify membership roster for this group" +msgstr "Ändere Mitgliedsverzeichnis dieser Gruppe" + +#: lib/RT/System.pm:61 +msgid "Modify one's own RT account" +msgstr "Ändere jemandens eigenen RT-Zugang" + +#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Ändere Leute bezogen auf Stapel %1" + +#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#. ($Ticket->id) +#. ($Ticket->Id) +msgid "Modify people related to ticket #%1" +msgstr "Ändere Personen des Tickets #%1" + +#: html/Admin/Queues/Scrips.html:44 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Ändere Scrips für den Stapel %1" + +#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +msgid "Modify scrips which apply to all queues" +msgstr "Ändere auf alle Stapel angewandte Scrips" + +#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#. (loc($TemplateObj->Name())) +#. ($TemplateObj->id) +msgid "Modify template %1" +msgstr "Ändere Vorlage %1" + +#: html/Admin/Global/Templates.html:44 +msgid "Modify templates which apply to all queues" +msgstr "Ändere globale Templates" + +#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "Ändere Gruppe %1" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Modify the queue watchers" +msgstr "Ändere die Stapelbeobachter" + +#: html/Admin/Users/Modify.html:236 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "Ändere Benutzer %1" + +#: html/Ticket/ModifyAll.html:37 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Ändere Ticket #%1" + +#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Ändere Ticket #%1" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Modify tickets" +msgstr "Ändere Tickets" + +#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#. ($GroupObj->Name) +msgid "Modify user rights for group %1" +msgstr "Ändere Benutzerrechte für die Gruppe %1" + +#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "Ändere Benutzerrechte für Stapel %1" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyACL" +msgstr "" + +#: lib/RT/Group_Overlay.pm:149 +msgid "ModifyOwnMembership" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "ModifyQueueWatchers" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "ModifyScrips" +msgstr "" + +#: lib/RT/System.pm:61 +msgid "ModifySelf" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "ModifyTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "ModifyTicket" +msgstr "" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "Mo" + +#: html/Ticket/Elements/ShowRequestor:42 +#. ($name) +msgid "More about %1" +msgstr "Mehr über %1" + +#: html/Admin/Elements/EditCustomFields:61 +msgid "Move down" +msgstr "Runter verschieben" + +#: html/Admin/Elements/EditCustomFields:53 +msgid "Move up" +msgstr "Hoch verschieben" + +#: html/Admin/Elements/SelectSingleOrMultiple:27 +msgid "Multiple" +msgstr "Mehrere" + +#: lib/RT/User_Overlay.pm:179 +msgid "Must specify 'Name' attribute" +msgstr "Du musst eine Angabe bei 'Name' machen" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "" + +#: html/Approvals/index.html:25 html/Approvals/index.html:26 +msgid "My approvals" +msgstr "Meine Freigaben" + +#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +msgid "Name" +msgstr "Name" + +#: lib/RT/User_Overlay.pm:186 +msgid "Name in use" +msgstr "Benutzername ist bereits in Gebrauch" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "" + +#: html/Ticket/Elements/ShowDates:52 +msgid "Never" +msgstr "Niemals" + +#: html/Elements/Quicksearch:30 +msgid "New" +msgstr "Neu" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +msgid "New Password" +msgstr "Neues Passwort" + +#: etc/initialdata:311 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "Neue wartende Freigaben" + +#: html/Ticket/Elements/EditLinks:111 +msgid "New Relationships" +msgstr "Neue Beziehungen" + +#: html/Ticket/Elements/Tabs:36 +msgid "New Search" +msgstr "Neue Suche" + +#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +msgid "New custom field" +msgstr "Neues benutzerdef. Feld" + +#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +msgid "New group" +msgstr "Neue Gruppe" + +#: html/SelfService/Prefs.html:32 +msgid "New password" +msgstr "Neues Passwort" + +#: lib/RT/User_Overlay.pm:639 +msgid "New password notification sent" +msgstr "Neue Passworterinnerung wurde verschickt" + +#: html/Admin/Elements/QueueTabs:70 +msgid "New queue" +msgstr "Neuer Stapel" + +#: html/SelfService/Elements/Tabs:63 +msgid "New request" +msgstr "Neues Ticket" + +#: html/Admin/Elements/SelectRights:42 +msgid "New rights" +msgstr "Neue Rechte" + +#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +msgid "New scrip" +msgstr "Neues Scrip" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "" + +#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +msgid "New template" +msgstr "Neue Vorlage" + +#: lib/RT/Ticket_Overlay.pm:2771 +msgid "New ticket doesn't exist" +msgstr "Neues Ticket existiert nicht" + +#: html/Admin/Elements/UserTabs:52 +msgid "New user" +msgstr "Neuer Benutzer" + +#: html/Admin/Elements/CreateUserCalled:26 +msgid "New user called" +msgstr "Neues Benutzer aufgerufen" + +#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +msgid "New watchers" +msgstr "Neue Beobachter" + +#: html/Admin/Users/Prefs.html:42 +msgid "New window setting" +msgstr "Speichere Fenstereinstellungen" + +#: html/Ticket/Elements/Tabs:69 +msgid "Next" +msgstr "Nächste" + +#: html/Search/Listing.html:48 +msgid "Next page" +msgstr "Nächste Seite" + +#: html/Admin/Elements/ModifyUser:50 +msgid "NickName" +msgstr "Spitzname" + +#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +msgid "Nickname" +msgstr "Spitzname" + +#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +msgid "No CustomField" +msgstr "Kein benutzerdefiniertes Feld" + +#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +msgid "No Group defined" +msgstr "Keine Gruppe definiert" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +msgid "No Queue defined" +msgstr "Kein Stapel vorhanden" + +#: bin/rt-crontool:56 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "Kein RT-Benutzer gefunden. Bitte kontaktiere Deinen RT-Administrator.\\n" + +#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +msgid "No Template" +msgstr "Keine Vorlage" + +#: bin/rt-commit-handler:764 +msgid "No Ticket specified. Aborting ticket " +msgstr "Kein Ticket angegeben. Bereche Ticket ab " + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "" + +#: html/Approvals/Elements/Approve:47 +msgid "No action" +msgstr "Keine Aktion" + +#: lib/RT/Interface/Web.pm:862 +msgid "No column specified" +msgstr "Keine Spalte angegeben" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "" + +#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +msgid "No comment entered about this user" +msgstr "Kein Kommentar über diesen Benutzer angegeben" + +#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +msgid "No correspondence attached" +msgstr "Keine Korrespondenz aufgezeichnet" + +#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#. (ref $self) +msgid "No description for %1" +msgstr "Keine Beschreibung für %1 vorhanden" + +#: lib/RT/Users_Overlay.pm:151 +msgid "No group specified" +msgstr "Keine Gruppe angegeben" + +#: lib/RT/User_Overlay.pm:857 +msgid "No password set" +msgstr "Kein Passwort gesetzt" + +#: lib/RT/Queue_Overlay.pm:259 +msgid "No permission to create queues" +msgstr "Kein Recht Stapel anzulegen" + +#: lib/RT/Ticket_Overlay.pm:341 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "Kein Recht um Tickets im Stapel '%1' anzulegen" + +#: lib/RT/User_Overlay.pm:151 +msgid "No permission to create users" +msgstr "Kein Recht Benutzer anzulegen" + +#: html/SelfService/Display.html:174 +msgid "No permission to display that ticket" +msgstr "Kein Recht dieses Ticket anzuzeigen" + +#: html/SelfService/Update.html:55 +msgid "No permission to view update ticket" +msgstr "Kein Recht dieses Ticket zu aktualisieren" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +msgid "No principal specified" +msgstr "Kein Hauptverantwortlicher angegeben" + +#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +msgid "No principals selected." +msgstr "Keine Hauptverantwortliche ausgewählt." + +#: html/Admin/Queues/index.html:35 +msgid "No queues matching search criteria found." +msgstr "Keine den Suchkriterien entsprechenden Stapel gefunden" + +#: html/Admin/Elements/SelectRights:81 +msgid "No rights found" +msgstr "Keine Rechte gefunden" + +#: html/Admin/Elements/SelectRights:33 +msgid "No rights granted." +msgstr "Keine Rechte gewährt." + +#: html/Search/Bulk.html:149 +msgid "No search to operate on." +msgstr "Keine Suchliste zum bearbeiten." + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +msgid "No transaction type specified" +msgstr "Kein Transaktionstyp angegeben" + +#: html/Admin/Users/index.html:36 +msgid "No users matching search criteria found." +msgstr "Keine auf die Suchkriterien passende Benutzer gefunden" + +#: bin/rt-commit-handler:644 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "Kein gültiger RT-Benutzer gefunden. RT CVS-Handler weggefallen. Bitte kontaktiere Deinen RT-Administrator.\\n" + +#: lib/RT/Interface/Web.pm:859 +msgid "No value sent to _Set!\\n" +msgstr "Kein Wert an _Set geschickt!\\n" + +#: html/Search/Elements/TicketRow:37 +msgid "Nobody" +msgstr "Niemand" + +#: lib/RT/Interface/Web.pm:864 +msgid "Nonexistant field?" +msgstr "Nichtexistierendes Feld?" + +#: html/Elements/Login:99 +msgid "Not logged in" +msgstr "Nicht angemeldet" + +#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +msgid "Not logged in." +msgstr "Nicht angemeldet." + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "Nicht angegeben" + +#: html/NoAuth/Reminder.html:27 +msgid "Not yet implemented." +msgstr "Noch nicht implementiert." + +#: html/Admin/Groups/Rights.html:25 +msgid "Not yet implemented...." +msgstr "Noch nicht implementiert..." + +#: html/Approvals/Elements/Approve:50 +msgid "Notes" +msgstr "Bemerkungen" + +#: lib/RT/User_Overlay.pm:642 +msgid "Notification could not be sent" +msgstr "Benachrichtigung konnte nicht verschickt werden" + +#: etc/initialdata:94 +msgid "Notify AdminCcs" +msgstr "Benachrichtige AdminCCs" + +#: etc/initialdata:90 +msgid "Notify AdminCcs as Comment" +msgstr "Benachrichtige AdminCCs als Kommentar" + +#: etc/initialdata:121 +msgid "Notify Other Recipients" +msgstr "Benachrichtige andere Empfänger" + +#: etc/initialdata:117 +msgid "Notify Other Recipients as Comment" +msgstr "Benachrichtige andere Empfänger als Kommentar" + +#: etc/initialdata:86 +msgid "Notify Owner" +msgstr "Benachrichte Inhaber" + +#: etc/initialdata:82 +msgid "Notify Owner as Comment" +msgstr "Benachrichtige Inhaber als Kommentar" + +#: etc/initialdata:313 etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "Benachrichtige Inhaber und AdminCCs neuer auf Freigabe wartende Anfragen" + +#: etc/initialdata:78 +msgid "Notify Requestors" +msgstr "Benachrichtige die Klienten" + +#: etc/initialdata:104 +msgid "Notify Requestors and Ccs" +msgstr "Benachrichtige die Klienten und CCs" + +#: etc/initialdata:99 +msgid "Notify Requestors and Ccs as Comment" +msgstr "Benachrichtige die Klienten und CCs als Kommentar" + +#: etc/initialdata:113 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "Benachrichtige die Klienten, CCs und AdminCCs" + +#: etc/initialdata:109 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "Benachrichtige die Klienten, CCs und AdminCCs als Kommentar" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "Nov" + +#: lib/RT/Record.pm:157 +msgid "Object could not be created" +msgstr "Objekt konnte nicht erstellt werden" + +#: lib/RT/Record.pm:176 +msgid "Object created" +msgstr "Objekt erstellt" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "Okt" + +#: html/Elements/SelectDateRelation:35 +msgid "On" +msgstr "am" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "Bei Kommentar" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "Bei Korrespondenz" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "Bei Erstellen" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "Bei Eigentümerwechsel" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "Bei Stapelwechsel" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "Beim Erledigen" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "Bei Statuswechsel" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "Bei einer Transaktion" + +#: html/Approvals/Elements/PendingMyApproval:50 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "Zeige nur Freigaben für nach dem %1 erstelle Anfragen" + +#: html/Approvals/Elements/PendingMyApproval:48 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "Zeige nur Freigaben für vor dem %1 erstellte Anfragen" + +#: html/Elements/Quicksearch:31 +msgid "Open" +msgstr "Offen" + +#: html/Ticket/Elements/Tabs:136 +msgid "Open it" +msgstr "Öffnen" + +#: html/SelfService/Elements/Tabs:57 +msgid "Open requests" +msgstr "Offene Anfragen" + +#: html/Admin/Users/Prefs.html:41 +msgid "Open tickets (from listing) in a new window" +msgstr "Öffne Anfragen (aus der Liste) in neuem Fenster" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in another window" +msgstr "Öffne Anfragen (aus der Liste) in ein anderes Fenster" + +#: etc/initialdata:133 +msgid "Open tickets on correspondence" +msgstr "Öffne Anfragen bei Korrespondenz" + +#: html/Search/Elements/PickRestriction:101 +msgid "Ordering and sorting" +msgstr "Sortierung und Reihenfolge" + +#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +msgid "Organization" +msgstr "Organisation" + +#: html/Approvals/Elements/Approve:34 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "Ursprüngliche Anfrage: #%1" + +#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +msgid "Over time, priority moves toward" +msgstr "Mit der Zeit steigt die Priorität auf" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Own tickets" +msgstr "Eigene Anfrage" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "OwnTicket" +msgstr "" + +#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "Inhaber" + +#: lib/RT/Ticket_Overlay.pm:3004 +#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +msgid "Owner changed from %1 to %2" +msgstr "Inhaberwechsel von %1 zu %2" + +#: lib/RT/Transaction_Overlay.pm:584 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Inhaber mit Gewalt von %1 in %2 geändert" + +#: html/Search/Elements/PickRestriction:31 +msgid "Owner is" +msgstr "Inhaber ist" + +#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +msgid "Pager" +msgstr "Pager" + +#: html/Admin/Elements/ModifyUser:74 +msgid "PagerPhone" +msgstr "PagerTelefon" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +msgid "Parents" +msgstr "Eltern" + +#: html/Elements/Login:43 html/User/Prefs.html:61 +msgid "Password" +msgstr "Passwort" + +#: html/NoAuth/Reminder.html:25 +msgid "Password Reminder" +msgstr "Passworterinnerung" + +#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +msgid "Password too short" +msgstr "Passwort ist zu kurz" + +#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "Passwort: %1" + +#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +msgid "People" +msgstr "Personen" + +#: etc/initialdata:126 +msgid "Perform a user-defined action" +msgstr "Führe eine benutzerdefinierte Aktion aus" + +#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +msgid "Permission Denied" +msgstr "Zugriff verweigert" + +#: html/User/Elements/Tabs:35 +msgid "Personal Groups" +msgstr "Persönliche Gruppen" + +#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +msgid "Personal groups" +msgstr "Persönliche Gruppen" + +#: html/User/Elements/DelegateRights:37 +msgid "Personal groups:" +msgstr "Persönliche Gruppen:" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +msgid "Phone numbers" +msgstr "Telefonnummern" + +#: html/Admin/Users/Rights.html:25 +msgid "Placeholder" +msgstr "Platzhalter" + +#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +msgid "Preferences" +msgstr "Voreinstellungen" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "" + +#: lib/RT/Action/Generic.pm:160 +msgid "Prepare Stubbed" +msgstr "Vorbereitung abgehakt" + +#: html/Ticket/Elements/Tabs:61 +msgid "Prev" +msgstr "Vorherige" + +#: html/Search/Listing.html:44 +msgid "Previous page" +msgstr "Vorherige Seite" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "Hauptverantwortlichen %1 nicht gefunden." + +#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "Priorität" + +#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +msgid "Priority starts at" +msgstr "Priorität beginnt bei" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "Privilegiert" + +#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "Privilegierungsstatus: %1" + +#: html/Admin/Users/index.html:62 +msgid "Privileged users" +msgstr "Privilegierte Benutzer" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "Pseudogruppe für internen Gebrauch" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "Stapel" + +#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#. ($Queue) +#. ($id) +msgid "Queue %1 not found" +msgstr "Stapel %2 nicht gefunden" + +#: NOT FOUND IN SOURCE +msgid "Queue '%1' not found\\n" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +msgid "Queue Name" +msgstr "Name des Stapels" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:263 +msgid "Queue already exists" +msgstr "Stapel existiert bereits" + +#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +msgid "Queue could not be created" +msgstr "Stapel konne nicht angelegt werden" + +#: html/Ticket/Create.html:209 +msgid "Queue could not be loaded." +msgstr "Stapel konnte nicht geladen werden" + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +msgid "Queue created" +msgstr "Stapel angelegt" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "" + +#: html/SelfService/Display.html:129 +msgid "Queue not found" +msgstr "Stapel nicht gefunden" + +#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +msgid "Queues" +msgstr "Stapel" + +#: html/Elements/Login:34 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "RT %1" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "RT %1 für %2" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "RT %1 von <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 "" + +#: html/Admin/index.html:25 html/Admin/index.html:26 +msgid "RT Administration" +msgstr "RT Administration" + +#: NOT FOUND IN SOURCE +msgid "RT Authentication error." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Bounce: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Configuration error" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Critical error. Message not recorded!" +msgstr "" + +#: html/Elements/Error:41 html/SelfService/Error.html:41 +msgid "RT Error" +msgstr "RT Fehler" + +#: NOT FOUND IN SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "" + +#: html/SelfService/Closed.html:25 +msgid "RT Self Service / Closed Tickets" +msgstr "RT Selbstbedienung / Geschlossene Anfragen" + +#: html/index.html:25 html/index.html:28 +msgid "RT at a glance" +msgstr "RT auf einen Blick" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't authenticate you" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find requestor via its external database lookup" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find the queue: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "" + +#: html/Elements/PageLayout:26 +#. ($RT::rtname) +msgid "RT for %1" +msgstr "RT für %1" + +#: NOT FOUND IN SOURCE +msgid "RT for %1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT has proccessed your commands" +msgstr "RT hat Deine Befehle verarbeitet" + +#: html/Elements/Login:83 +#. ('2003') +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 © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Vertrieben unter der <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 "" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +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 "" + +#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +msgid "Real Name" +msgstr "Realer Name" + +#: html/Admin/Elements/ModifyUser:48 +msgid "RealName" +msgstr "RealerName" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +msgid "Referred to by" +msgstr "Bezogen von" + +#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +msgid "Refers to" +msgstr "Bezieht sich auf" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "" + +#: html/Search/Elements/PickRestriction:27 +msgid "Refine search" +msgstr "Suche Verfeinen" + +#: html/Elements/Refresh:36 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "Seite alle %1 Minuten aktualisieren." + +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +msgid "Relationships" +msgstr "Beziehungen" + +#: html/Search/Bulk.html:93 +msgid "Remove AdminCc" +msgstr "Entferne AdminCC" + +#: html/Search/Bulk.html:91 +msgid "Remove Cc" +msgstr "Entferne CC" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "Entferne Klient" + +#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +msgid "Reply" +msgstr "Antworten" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Reply to tickets" +msgstr "Antworte auf Anfragen" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "ReplyToTicket" +msgstr "" + +#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +msgid "Requestor" +msgstr "Klient" + +#: html/Search/Elements/PickRestriction:38 +msgid "Requestor email address" +msgstr "email-Adresse des Klienten" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "" + +#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +msgid "Requestors" +msgstr "Klienten" + +#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +msgid "Requests should be due in" +msgstr "Anfragen sollten erlegt werden in" + +#: html/Elements/Submit:62 +msgid "Reset" +msgstr "Zurücksetzen" + +#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +msgid "Residence" +msgstr "Zuhause" + +#: html/Ticket/Elements/Tabs:132 +msgid "Resolve" +msgstr "Erledigen" + +#: html/Ticket/Update.html:133 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "Erledige Anfrage Nr. %1 (%2)" + +#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +msgid "Resolved" +msgstr "Erledigt" + +#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +msgid "Response to requestors" +msgstr "Antwort an alle Klienten" + +#: html/Elements/ListActions:26 +msgid "Results" +msgstr "Ergebnisse" + +#: html/Search/Elements/PickRestriction:105 +msgid "Results per page" +msgstr "Ergebnisse pro Seite" + +#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +msgid "Retype Password" +msgstr "Passwort wiederholen" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:613 +msgid "Right Delegated" +msgstr "Recht delegiert" + +#: lib/RT/ACE_Overlay.pm:303 +msgid "Right Granted" +msgstr "Recht erteilt" + +#: lib/RT/ACE_Overlay.pm:161 +msgid "Right Loaded" +msgstr "Recht geladen" + +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +msgid "Right could not be revoked" +msgstr "Recht konnte nicht zurückgezogen werden" + +#: html/User/Delegation.html:64 +msgid "Right not found" +msgstr "Recht nicht gefunden" + +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +msgid "Right not loaded." +msgstr "Recht nicht gefunden." + +#: lib/RT/ACE_Overlay.pm:689 +msgid "Right revoked" +msgstr "Recht zurückgezogen" + +#: html/Admin/Elements/UserTabs:41 +msgid "Rights" +msgstr "Rechte" + +#: lib/RT/Interface/Web.pm:758 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "Rechte konnten für %1 nicht gewährt werden" + +#: lib/RT/Interface/Web.pm:791 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "Rechte konnten nicht für %1 entzogen werden" + +#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "Rollen" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "Sa" + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "Save Changes" +msgstr "Änderungen Sichern" + +#: html/Ticket/ModifyLinks.html:39 +msgid "Save changes" +msgstr "Änderungen Sichern" + +#: html/Admin/Global/Scrip.html:49 +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:176 +msgid "Scrip Created" +msgstr "Scrip angelegt" + +#: html/Admin/Elements/EditScrips:84 +msgid "Scrip deleted" +msgstr "Scrip gelöscht" + +#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +msgid "Scrips" +msgstr "Scrips" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "Scrips für %1\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "Auf alle Stapel angewande Scrips" + +#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +msgid "Search" +msgstr "Suchen" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:39 +msgid "Search for approvals" +msgstr "Suche nach Freigaben" + +#: bin/rt-crontool:188 +msgid "Security:" +msgstr "Sicherheit:" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "SeeQueue" +msgstr "" + +#: html/Admin/Groups/index.html:40 +msgid "Select a group" +msgstr "Wähle eine Gruppe aus" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "" + +#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +msgid "Select a user" +msgstr "Wähle einen Benutzer aus" + +#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +msgid "Select custom field" +msgstr "Wähle ein benutzerdef. Feld" + +#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +msgid "Select group" +msgstr "Wähle eine Gruppe" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Select multiple values" +msgstr "Wähle mehrere Werte" + +#: lib/RT/CustomField_Overlay.pm:352 +msgid "Select one value" +msgstr "Wähle einen Wert" + +#: html/Admin/Elements/QueueTabs:67 +msgid "Select queue" +msgstr "Wähle einen Stapel" + +#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +msgid "Select scrip" +msgstr "Wähle ein Scrip" + +#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +msgid "Select template" +msgstr "Wähle ein Template" + +#: html/Admin/Elements/UserTabs:49 +msgid "Select user" +msgstr "Wähle einen Benutzer" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "SelectMultiple" +msgstr "Mehrfachauswahlfeld" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectSingle" +msgstr "Einzelauswahlfeld" + +#: html/SelfService/index.html:25 +msgid "Self Service" +msgstr "Selbstbedienung" + +#: etc/initialdata:114 +msgid "Send mail to all watchers" +msgstr "Schicke eine Mail an alle Beobachter" + +#: etc/initialdata:110 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "Schicke eine Mail an alle Beobachter als \"Kommentar\"" + +#: etc/initialdata:105 +msgid "Send mail to requestors and Ccs" +msgstr "Schicke eine Mail an die Klienten und CCs" + +#: etc/initialdata:100 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "Schicke eine Mail an die Klienten und CCs als Kommentar" + +#: etc/initialdata:79 +msgid "Sends a message to the requestors" +msgstr "Schicke eine Mail an die Klienten" + +#: etc/initialdata:118 etc/initialdata:122 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "Schicke eine Mail an die direkt angegebenen CCs und BCCs" + +#: etc/initialdata:95 +msgid "Sends mail to the administrative Ccs" +msgstr "Schicke eine Mail an die administrativen CCs" + +#: etc/initialdata:91 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "Schicke eine Mail an die administrativen CCs als Kommentar" + +#: etc/initialdata:83 etc/initialdata:87 +msgid "Sends mail to the owner" +msgstr "Schicke eine Mail an den Inhaber" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "Sep" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show approved requests" +msgstr "Zeige freigegebene Anfragen" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show basics" +msgstr "Zeige Grundlagen" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show denied requests" +msgstr "Zeige abgelehnte Anfragen" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show details" +msgstr "Zeige Details" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show pending requests" +msgstr "Zeige schwebende Anfragen" + +#: html/Approvals/Elements/PendingMyApproval:46 +msgid "Show requests awaiting other approvals" +msgstr "Zeige auf andere Freigaben wartende Anfragen" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Show ticket private commentary" +msgstr "Zeige private Kommentare des Anfragen" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "Show ticket summaries" +msgstr "Zeige Kurzfassungen der Anfragen" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ShowACL" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowScrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ShowTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "ShowTicket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "ShowTicketComments" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "Als Klient einer Anfrage oder Anfrage- bzw. Stapel-CC eintragen" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "Als Anfrage- oder Stapel-AdminCC eintragen" + +#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +msgid "Signature" +msgstr "E-Mail-Signatur" + +#: html/SelfService/Elements/Header:52 +#. ($session{'CurrentUser'}->Name) +msgid "Signed in as %1" +msgstr "Angemeldet als %1" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Single" +msgstr "Einzel" + +#: html/Elements/Header:51 +msgid "Skip Menu" +msgstr "Überspringe Menü" + +#: html/Admin/Elements/EditCustomFieldValues:31 +msgid "Sort key" +msgstr "Sortierschlüssel" + +#: html/Search/Elements/PickRestriction:109 +msgid "Sort results by" +msgstr "Sortiere Ergebnisse nach" + +#: html/Admin/Elements/AddCustomFieldValue:25 +msgid "SortOrder" +msgstr "Sortierreihenfolge" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "" + +#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +msgid "Started" +msgstr "Begonnen" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +msgid "Starts" +msgstr "Beginnt" + +#: NOT FOUND IN SOURCE +msgid "Starts By" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Starts date '%1' could not be parsed" +msgstr "" + +#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +msgid "State" +msgstr "Staat" + +#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "Status" + +#: etc/initialdata:288 +msgid "Status Change" +msgstr "Ändere Status" + +#: lib/RT/Transaction_Overlay.pm:530 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "Status von %1 auf %2 geändert" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "" + +#: html/Ticket/Elements/Tabs:147 +msgid "Steal" +msgstr "Stehlen" + +#: lib/RT/Transaction_Overlay.pm:589 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "Gestohlen von %1 " + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "Betreff" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "Betreff wurde auf %1 geändert" + +#: html/Elements/Submit:59 +msgid "Submit" +msgstr "Übermitteln" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "" + +#: lib/RT/Group_Overlay.pm:749 +msgid "Succeeded" +msgstr "Geglückt" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "So" + +#: lib/RT/System.pm:54 +msgid "SuperUser" +msgstr "" + +#: html/User/Elements/DelegateRights:77 +msgid "System" +msgstr "System" + +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +msgid "System Error" +msgstr "Systemfehler" + +#: lib/RT/ACE_Overlay.pm:616 +msgid "System error. Right not delegated." +msgstr "Systemfehler. Recht nicht delegiert." + +#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +msgid "System error. Right not granted." +msgstr "Systemfehler. Recht nicht gewährt." + +#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +msgid "System groups" +msgstr "Systemgruppen" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "SystemRolegroup für internen Gebrauch" + +#: lib/RT/CurrentUser.pm:320 +msgid "TEST_STRING" +msgstr "TEST_STRING" + +#: html/Ticket/Elements/Tabs:143 +msgid "Take" +msgstr "Übernehmen" + +#: lib/RT/Transaction_Overlay.pm:575 +msgid "Taken" +msgstr "Übernommen" + +#: html/Admin/Elements/EditScrip:81 +msgid "Template" +msgstr "Vorlage" + +#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "Vorlage #%1" + +#: html/Admin/Elements/EditTemplates:89 +msgid "Template deleted" +msgstr "Vorlage gelöscht" + +#: lib/RT/Scrip_Overlay.pm:153 +msgid "Template not found" +msgstr "Vorlage nicht gefunden" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "" + +#: lib/RT/Template_Overlay.pm:347 +msgid "Template parsed" +msgstr "Vorlagen eingelesen" + +#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +msgid "Templates" +msgstr "Vorlagen" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "Vorlagen für %1\\n" + +#: lib/RT/Interface/Web.pm:858 +msgid "That is already the current value" +msgstr "Das ist bereits der aktuelle Wert" + +#: lib/RT/CustomField_Overlay.pm:178 +msgid "That is not a value for this custom field" +msgstr "Dies ist kein gültiger Wert für dieses benutzerdefinierte Feld" + +#: lib/RT/Ticket_Overlay.pm:1886 +msgid "That is the same value" +msgstr "Das ist der gleiche Wert" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "Dieser Hauptverantwortliche ist bereits ein %1 dieses Stapels" + +#: lib/RT/Ticket_Overlay.pm:1434 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "Dieser Hauptverantwortliche ist bereits ein %1 dieser Anfrage" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Dieser Hauptverantwortliche ist nicht ein %1 dieses Stapels" + +#: lib/RT/Ticket_Overlay.pm:1551 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "Dieser Hauptverantwortliche ist nicht ein %1 dieser Anfrage" + +#: lib/RT/Ticket_Overlay.pm:1882 +msgid "That queue does not exist" +msgstr "Dieser Stapel existiert nicht" + +#: lib/RT/Ticket_Overlay.pm:3143 +msgid "That ticket has unresolved dependencies" +msgstr "Diese Anfrage hat ungelöste Abhängigkeiten" + +#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +msgid "That user already has that right" +msgstr "Dieser Benutzer hat dieses Recht bereits" + +#: lib/RT/Ticket_Overlay.pm:2952 +msgid "That user already owns that ticket" +msgstr "Diesem Benutzer gehört diese Anfrage bereits" + +#: lib/RT/Ticket_Overlay.pm:2918 +msgid "That user does not exist" +msgstr "Dieser Benutzer existiert nicht" + +#: lib/RT/User_Overlay.pm:315 +msgid "That user is already privileged" +msgstr "Dieser Benutzer ist bereits privilegiert" + +#: lib/RT/User_Overlay.pm:332 +msgid "That user is already unprivileged" +msgstr "Dieser Benutzer ist bereits ungeprivilegiert" + +#: lib/RT/User_Overlay.pm:327 +msgid "That user is now privileged" +msgstr "Dieser Benutzer ist jetzt privilegiert" + +#: lib/RT/User_Overlay.pm:344 +msgid "That user is now unprivileged" +msgstr "Dieser Benutzer ist jetzt unprivelegiert" + +#: lib/RT/Ticket_Overlay.pm:2944 +msgid "That user may not own tickets in that queue" +msgstr "Diesem Benutzer dürfen keine Anfragen aus diesen Stapel gehören" + +#: lib/RT/Link_Overlay.pm:206 +msgid "That's not a numerical id" +msgstr "Dies ist keine numerische Id" + +#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +msgid "The Basics" +msgstr "Grundlagen" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The CC of a ticket" +msgstr "Der CC einer Anfrage" + +#: lib/RT/ACE_Overlay.pm:89 +msgid "The administrative CC of a ticket" +msgstr "Der administrative CC einer Anfrage" + +#: lib/RT/Ticket_Overlay.pm:2213 +msgid "The comment has been recorded" +msgstr "Der Kommentar wurde aufgezeichnet" + +#: bin/rt-crontool:198 +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 "Das folgende Kommando wird alle aktiven Anfragen des Stapels 'general' finden und ihre Priorität auf 99 setzen, wenn sie innerhalb der letzten 4 Stunden nicht angefasst wurden:" + +#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "Die folgenden Kommandos wurden nicht verarbeitet:\\n\\n" + +#: lib/RT/Interface/Web.pm:861 +msgid "The new value has been set." +msgstr "Der neue Wert wurde gesetzt." + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The owner of a ticket" +msgstr "Der Inhaber einer Anfrage" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The requestor of a ticket" +msgstr "Der Klient einer Anfrage" + +#: html/Admin/Elements/EditUserComments:26 +msgid "These comments aren't generally visible to the user" +msgstr "Diese Kommentare sind generell nicht für den Benutzer sichtbar" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "" + +#: bin/rt-crontool:189 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "Dieses Werkzeug erlaubt es Benutzern beliebige Perl-Module von RT aus aufzurufen." + +#: lib/RT/Transaction_Overlay.pm:253 +msgid "This transaction appears to have no content" +msgstr "Diese Transaktion scheint keinen Inhalt zu haben" + +#: html/Ticket/Elements/ShowRequestor:47 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "Die %1 höchstpriorisiertesten Anfragen dieses Benutzers" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "" + +#: lib/RT/Date.pm:391 +msgid "Thu." +msgstr "Do" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 %2" +msgstr "" + +#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "Anfrage Nr. %1 Alles aktualisieren: %2" + +#: html/Approvals/Elements/ShowDependency:46 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "Anfrage Nr. %1: %2" + +#: lib/RT/Ticket_Overlay.pm:608 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "Anfrage %1 wurde in Anfrage '%2' angelegt" + +#: bin/rt-commit-handler:760 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "Anfrage %1 geladen\\n" + +#: html/Search/Bulk.html:181 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "Anfrage %1: %2" + +#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "Verlauf von Anfrage Nr. %1 %2" + +#: html/SelfService/Display.html:34 +msgid "Ticket Id" +msgstr "Anfrage Nr." + +#: etc/initialdata:303 +msgid "Ticket Resolved" +msgstr "Anfrage erledigt" + +#: html/Search/Elements/PickRestriction:63 +msgid "Ticket attachment" +msgstr "Anhang der Anfrage" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "Inhalt der Anfrage" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "Art des Inhalts der Anfrage" + +#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +msgid "Ticket could not be created due to an internal error" +msgstr "Anfrage konnte aufgrund eines internen Fehlers nicht angelegt werden" + +#: lib/RT/Transaction_Overlay.pm:522 +msgid "Ticket created" +msgstr "Anfrage angelegt" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:527 +msgid "Ticket deleted" +msgstr "Anfrage gelöscht" + +#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +msgid "Ticket id not found" +msgstr "Anfragenummer nicht gefunden" + +#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +msgid "Ticket not found" +msgstr "Anfrage nicht gefunden" + +#: etc/initialdata:289 +msgid "Ticket status changed" +msgstr "Status der Anfrage geändert" + +#: html/Ticket/Update.html:39 +msgid "Ticket watchers" +msgstr "Beobachter der Anfrage" + +#: html/Elements/Tabs:49 +msgid "Tickets" +msgstr "Anfragen" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "Anfragen %1 %2" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "Anfragen %2 von %2" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Tickets from %1" +msgstr "Anfragen von %1" + +#: html/Approvals/Elements/ShowDependency:27 +msgid "Tickets which depend on this approval:" +msgstr "Anfragen, die von dieser Freigabe abhängen:" + +#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +msgid "Time Left" +msgstr "Übrige Zeit" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +msgid "Time Worked" +msgstr "Arbeitszeit" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "Übrige Zeit" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "Benötigte Zeit" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "Arbeitszeit" + +#: lib/RT/Ticket_Overlay.pm:1165 +msgid "TimeWorked" +msgstr "Gearbeitete Zeit" + +#: bin/rt-commit-handler:402 +msgid "To generate a diff of this commit:" +msgstr "Um ein 'diff' dieser Übergabe zu erstellen:" + +#: bin/rt-commit-handler:391 +msgid "To generate a diff of this commit:\\n" +msgstr "Um ein 'diff' dieser Übergabe zu erstellen:\\n" + +#: lib/RT/Ticket_Overlay.pm:1168 +msgid "Told" +msgstr "Eingegangen" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "Transaktion" + +#: lib/RT/Transaction_Overlay.pm:642 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "Transaktion %1 durchgeprügelt" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "Transaktion erstellt" + +#: lib/RT/Transaction_Overlay.pm:89 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "Transaction->Create konnte nicht ausgeführt werden da keine Ticketnummer angegeben wurde" + +#: lib/RT/Transaction_Overlay.pm:701 +msgid "Transactions are immutable" +msgstr "Transaktionen sind unveränderbar" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "Di" + +#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "Typ" + +#: lib/RT/ScripCondition_Overlay.pm:104 +msgid "Unimplemented" +msgstr "Nicht implementiert" + +#: html/Admin/Users/Modify.html:68 +msgid "Unix login" +msgstr "Unix Login" + +#: html/Admin/Elements/ModifyUser:62 +msgid "UnixUsername" +msgstr "UnixBenutzername" + +#: lib/RT/Attachment_Overlay.pm:265 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "Unbekannte Inhalts-Kodierung %1" + +#: html/Elements/SelectResultsPerPage:37 +msgid "Unlimited" +msgstr "unbegrenzt" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "Unprivilegiert" + +#: lib/RT/Transaction_Overlay.pm:571 +msgid "Untaken" +msgstr "Zurückgegeben" + +#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +msgid "Update" +msgstr "Aktualisieren" + +#: html/Admin/Users/Prefs.html:62 +msgid "Update ID" +msgstr "Aktualisierungs-ID" + +#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +msgid "Update Type" +msgstr "Aktualisierungtyp" + +#: html/Search/Listing.html:61 +msgid "Update all these tickets at once" +msgstr "Aktualisiere alle diese Anfragen auf einmal" + +#: html/Admin/Users/Prefs.html:49 +msgid "Update email" +msgstr "Aktualisiere E-Mail" + +#: html/Admin/Users/Prefs.html:55 +msgid "Update name" +msgstr "Aktualisiere Name" + +#: lib/RT/Interface/Web.pm:375 +msgid "Update not recorded." +msgstr "Aktualisierung nicht aufgezeichnet." + +#: html/Search/Bulk.html:81 +msgid "Update selected tickets" +msgstr "Aktualisiere ausgewählte Anfragen" + +#: html/Admin/Users/Prefs.html:36 +msgid "Update signature" +msgstr "Aktualisiere Unterschrift" + +#: html/Ticket/ModifyAll.html:63 +msgid "Update ticket" +msgstr "Aktualisiere Anfrage" + +#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 +#. ($Ticket->id) +msgid "Update ticket # %1" +msgstr "Aktualisiere Anfrage Nr. %1" + +#: html/SelfService/Update.html:50 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Aktualisiere Anfrage Nr. %1" + +#: html/Ticket/Update.html:135 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "Aktualisiere Anfrage Nr. %1 (%2)" + +#: lib/RT/Interface/Web.pm:373 +msgid "Update type was neither correspondence nor comment." +msgstr "Aktualisierungstyp war weder Korrespondenz noch Kommentar." + +#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +msgid "Updated" +msgstr "Aktualisiert" + +#: NOT FOUND IN SOURCE +msgid "User %1 %2: %3\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User %1 Password: %2\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found\\n" +msgstr "" + +#: etc/initialdata:125 etc/initialdata:191 +msgid "User Defined" +msgstr "Benutzerdefiniert" + +#: html/Admin/Users/Prefs.html:59 +msgid "User ID" +msgstr "Benutzer-ID" + +#: html/Elements/SelectUsers:26 +msgid "User Id" +msgstr "Benutzername" + +#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +msgid "User Rights" +msgstr "Benutzerrechte" + +#: html/Admin/Users/Modify.html:226 +#. ($msg) +msgid "User could not be created: %1" +msgstr "Benutzer konnte nicht angelegt werden: %1" + +#: lib/RT/User_Overlay.pm:262 +msgid "User created" +msgstr "Benutzer angelegt" + +#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "Benutzerdefinierte Gruppe" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "" + +#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +msgid "User view" +msgstr "Benutzeransicht" + +#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +msgid "Username" +msgstr "Benutzername" + +#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +msgid "Users" +msgstr "Benutzer" + +#: html/Admin/Users/index.html:65 +msgid "Users matching search criteria" +msgstr "Auf diese Kriterien zutreffenede Benutzer" + +#: html/Search/Elements/PickRestriction:51 +msgid "ValueOfQueue" +msgstr "ValueOfQueue" + +#: html/Admin/Elements/EditCustomField:40 +msgid "Values" +msgstr "Werte" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Watch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "WatchAsAdminCc" +msgstr "" + +#: html/Admin/Elements/QueueTabs:42 +msgid "Watchers" +msgstr "Beobachter" + +#: html/Admin/Elements/ModifyUser:56 +msgid "WebEncoding" +msgstr "Webkodierung" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "Mi" + +#: etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "Füge Korrespondenz zum Originalticket, wenn eine Anfrage von allen Freigebenden freigegeben wurde" + +#: etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "Füge Korrespondenz zum Originalticket wenn eine Anfrage von einem Freigebenden freigegeben wurde" + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "Wenn eine Afrage erstellt wird" + +#: etc/upgrade/2.1.71:79 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "Benachrichtige Inhaber und AdminCCs der auf Freigabe wartende Anfrage wenn ein Freigabeticket erstellt wurde" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "Wenn irgendetwas passiert" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "Immer wenn eine Anfrage erledigt wird" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "Immer wenn der Eigentümer einer Anfrage wechselt" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "Immer wenn eine Anfrage den Stapel wechselt" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "Immer wenn sich der Status einer Anfrage ändert" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "Immer wenn eine benutzerdefinierte Bedingung auftritt" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "Immer wenn ein neuer Kommentar eingeht" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "Immer wenn neue Korrespondenz eingeht" + +#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +msgid "Work" +msgstr "Arbeit" + +#: html/Admin/Elements/ModifyUser:70 +msgid "WorkPhone" +msgstr "Arbeitstelefon" + +#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +msgid "Worked" +msgstr "Arbeitszeit" + +#: lib/RT/Ticket_Overlay.pm:3056 +msgid "You already own this ticket" +msgstr "Du besitzt diese Anfrage bereits" + +#: html/autohandler:121 +msgid "You are not an authorized user" +msgstr "Du bist kein authorisierter Benutzer" + +#: lib/RT/Ticket_Overlay.pm:2930 +msgid "You can only reassign tickets that you own or that are unowned" +msgstr "Du kannst nur Anfragen ohne Inhaber zuweisen" + +#: NOT FOUND IN SOURCE +msgid "You don't have permission to view that ticket.\\n" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:47 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "Du hast %1 Anfragen in Stapel %2 gefunden" + +#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +msgid "You have been logged out of RT." +msgstr "Du wurdest von RT abgemeldet." + +#: html/SelfService/Display.html:134 +msgid "You have no permission to create tickets in that queue." +msgstr "Du hast kein Recht, Anfragen in diesen Stapel anzulegen." + +#: lib/RT/Ticket_Overlay.pm:1895 +msgid "You may not create requests in that queue." +msgstr "Du darfst in diesem Stapel keine Anfragen erstellen" + +#: html/NoAuth/Logout.html:36 +msgid "You're welcome to login again" +msgstr "Du kannst dich gerne wieder anmelden" + +#: html/SelfService/Elements/MyRequests:25 +#. ($friendly_status) +msgid "Your %1 requests" +msgstr "Meine %1 Anfragen" + +#: NOT FOUND IN SOURCE +msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "" + +#: etc/initialdata:429 etc/upgrade/2.1.71:146 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "Deine Anfrage wurde von %1 freigegeben. Andere Freigaben können noch ausstehen." + +#: etc/initialdata:463 etc/upgrade/2.1.71:180 +msgid "Your request has been approved." +msgstr "Deine Anfrage wurde freigegeben." + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "" + +#: etc/initialdata:384 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "Deine Anfrage wurde abgewiesen" + +#: html/autohandler:136 html/autohandler:142 +msgid "Your username or password is incorrect" +msgstr "Dein Benutzername oder Passwort ist falsch" + +#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +msgid "Zip" +msgstr "PLZ" + +#: html/User/Elements/DelegateRights:59 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "wie an %1 gewährt" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +msgid "contains" +msgstr "enthält" + +#: html/Elements/SelectAttachmentField:26 +msgid "content" +msgstr "Inhalt" + +#: html/Elements/SelectAttachmentField:27 +msgid "content-type" +msgstr "content-type" + +#: lib/RT/Ticket_Overlay.pm:2282 +msgid "correspondence (probably) not sent" +msgstr "Korrepsondenz (möglicherweise) nicht verschickt" + +#: lib/RT/Ticket_Overlay.pm:2292 +msgid "correspondence sent" +msgstr "Korrespondenz verschickt" + +#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +msgid "days" +msgstr "Tage" + +#: html/Search/Listing.html:75 +msgid "delete" +msgstr "löschen" + +#: lib/RT/Queue_Overlay.pm:63 +msgid "deleted" +msgstr "gelöscht" + +#: html/Search/Elements/PickRestriction:68 +msgid "does not match" +msgstr "entspricht nicht" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +msgid "doesn't contain" +msgstr "enthält nicht" + +#: html/Elements/SelectEqualityOperator:38 +msgid "equal to" +msgstr "entspricht" + +#: html/Elements/SelectAttachmentField:28 +msgid "filename" +msgstr "Dateiname" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "greater than" +msgstr "größer als" + +#: lib/RT/Group_Overlay.pm:194 +#. ($self->Name) +msgid "group '%1'" +msgstr "Gruppe '%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "Stunden" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "" + +#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "is" +msgstr "ist" + +#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +msgid "isn't" +msgstr "ist nicht" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "less than" +msgstr "kleiner als" + +#: html/Search/Elements/PickRestriction:67 +msgid "matches" +msgstr "entspricht" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "Min" + +#: html/Ticket/Update.html:66 +msgid "minutes" +msgstr "Minuten" + +#: bin/rt-commit-handler:765 +msgid "modifications\\n\\n" +msgstr "Änderungen\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "Monate" + +#: lib/RT/Queue_Overlay.pm:58 +msgid "new" +msgstr "neu" + +#: html/Admin/Elements/EditScrips:43 +msgid "no value" +msgstr "kein Wert" + +#: html/Ticket/Elements/EditWatchers:28 +msgid "none" +msgstr "keine" + +#: html/Elements/SelectEqualityOperator:38 +msgid "not equal to" +msgstr "entspricht nicht" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "open" +msgstr "offen" + +#: lib/RT/Group_Overlay.pm:199 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "persönliche Gruppe '%1' für Benutzer '%2'" + +#: lib/RT/Group_Overlay.pm:207 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "Stapel %1 %2" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "rejected" +msgstr "abgewiesen" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "resolved" +msgstr "erledigt" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "Sek" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "stalled" +msgstr "zurückgestellt" + +#: lib/RT/Group_Overlay.pm:202 +#. ($self->Type) +msgid "system %1" +msgstr "System %1" + +#: lib/RT/Group_Overlay.pm:213 +#. ($self->Type) +msgid "system group '%1'" +msgstr "Systemgruppe '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:42 +msgid "the calling component did not specify why" +msgstr "die aufrufende Komponente gab nicht an warum" + +#: lib/RT/Group_Overlay.pm:210 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "Ticket #%1 %2" + +#: lib/RT/Group_Overlay.pm:216 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "unbeschriebene Gruppe %1" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:191 +#. ($user->Object->Name) +msgid "user %1" +msgstr "Benutzer %1" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "Wochen" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "Jahre" + diff --git a/rt/lib/RT/I18N/en.po b/rt/lib/RT/I18N/en.po new file mode 100644 index 000000000..ffdc5cce6 --- /dev/null +++ b/rt/lib/RT/I18N/en.po @@ -0,0 +1,88 @@ +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "Apr" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "Aug" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "Dec" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "Feb" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "Fri" + +#: html/Elements/Tabs:46 +msgid "Homepage" +msgstr "Home" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "Jan" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "Jul" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "Jun" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "Mar" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "May" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "Mon" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "Nov" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "Oct" + +#: html/Ticket/Elements/Tabs:136 +msgid "Open it" +msgstr "Open" + +#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +msgid "Residence" +msgstr "Home" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "Sat" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "Sep" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "Sun" + +#: lib/RT/Date.pm:391 +msgid "Thu." +msgstr "Thu" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "Tue" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "Wed" + diff --git a/rt/lib/RT/I18N/es.po b/rt/lib/RT/I18N/es.po new file mode 100644 index 000000000..05006b12b --- /dev/null +++ b/rt/lib/RT/I18N/es.po @@ -0,0 +1,4749 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: RT 2.1.x\n" +"POT-Creation-Date: 2002-05-02 11:36+0800\n" +"PO-Revision-Date: 2003-03-23 12:38\n" +"Last-Translator: Tomàs Núñez Lirola <tomasnl@dsl.upc.es>\n" +"Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +msgid "#" +msgstr "#" + +#: html/Admin/Queues/Scrip.html:55 +#. ($QueueObj->id) +msgid "#%1" +msgstr "#%1" + +#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 +#. ($Ticket->Id, $Ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "#%1: %2" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "%1 %2" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($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:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "Añadido %1 %2" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "Hace %1 %2" + +#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 %2 ha cambiado a %3" + +#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "%1 %2 borrado" + +#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 with template %3" +msgstr "%1 %2 con la plantilla %3" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "%1 (%2) %3 este caso\\n" + +#: html/Search/Listing.html:57 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "%1 - %2 mostrados" + +#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "%1 - Un parametro para pasar a %2" + +#: bin/rt-crontool:185 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - El estado de la salida actualiza STDOUT" + +#: bin/rt-crontool:179 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - Especifica el modulo de accion que quieres usar" + +#: bin/rt-crontool:173 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - Especifica el modulo de condicion que quieres usar" + +#: bin/rt-crontool:166 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - Especifica el modulo de busqueda que quieres usar" + +#: lib/RT/ScripAction_Overlay.pm:122 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "%1 ScripAction cargado" + +#: lib/RT/Ticket_Overlay.pm:3471 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "$1 añadido como un valor de %2" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on" +msgstr "%1 alias requieren un TicketId en el que trabajar" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on " +msgstr "%1 alias requieren un TicketId en el que trabajar " + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on (from %2) %3" +msgstr "%1 alias requieren un TicketId en el que trabajar (de %2) %3" + +#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#. ($args{'Base'}) +#. ($args{'Target'}) +msgid "%1 appears to be a local object, but can't be found in the database" +msgstr "%1 parece ser un objeto local, pero no se encuentra en la base de datos" + +#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 por %2" + +#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#. ($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 ha cambiado de %2 a %3" + +#: lib/RT/Interface/Web.pm:857 +msgid "%1 could not be set to %2." +msgstr "%1 no se ha podido fijar a %2" + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "%1 no pudo iniciar una transacción (%2)\\n" + +#: lib/RT/Ticket_Overlay.pm:2813 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 no pudo fijar el estado a resuelto. La base de datos de RT podría ser inconsistente." + +#: html/Elements/MyTickets:25 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "Los %1 tickets de mayor prioridad que poseo... " + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "Los %1 tickets de mayor prioridad que he pedido" + +#: bin/rt-crontool:161 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "$1 es una herramienta para actuar sobre los tickets con una herramienta de planificacion externa, como crom" + +#: lib/RT/Queue_Overlay.pm:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 ha dejado de ser un %2 para esta cola." + +#: lib/RT/Ticket_Overlay.pm:1570 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 ha dejado de ser un %2 para este ticket." + +#: lib/RT/Ticket_Overlay.pm:3527 +#. ($args{'Value'}, $cf->Name) +msgid "%1 is no longer a value for custom field %2" +msgstr "%1 ha dejado de ser un valor para campo personalizable %2" + +#: NOT FOUND IN SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "%1 no es un identificador de Cola válido." + +#: html/Ticket/Elements/ShowBasics:36 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 min" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "%1 no mostrado" + +#: html/User/Elements/DelegateRights:76 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "%1 privilegios" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "%1 exitoso\\n" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "%1 tipo desconocido para $MessageId" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "%1 tipo desconocido para %2" + +#: NOT FOUND IN SOURCE +msgid "%1 was created without a CurrentUser\\n" +msgstr "%1 se creó sin CurrentUser\\n" + +#: lib/RT/Action/ResolveMembers.pm:42 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 resolverá todos los miembros de un grupo de tickets resueltos." + +#: NOT FOUND IN SOURCE +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "%1 pondrá como pendiente una BASE [local] si es dependiente [o miembro] de una solicitud ligada." + +#: lib/RT/Transaction_Overlay.pm:435 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: ningún archivo adjunto especificado" + +#: html/Ticket/Elements/ShowTransaction:102 +#. ($size) +msgid "%1b" +msgstr "%1b" + +#: html/Ticket/Elements/ShowTransaction:99 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "%1k" + +#: lib/RT/Ticket_Overlay.pm:1140 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "'%1' es un valor inválido para el estado" + +#: NOT FOUND IN SOURCE +msgid "'%1' not a recognized action. " +msgstr "'%1' no es una acción reconocida. " + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete group member)" +msgstr "(Marque la caja para borrar al miembro del grupo)" + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete scrip)" +msgstr "(Marque la caja para borrar el scrip)" + +#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +msgid "(Check box to delete)" +msgstr "(Marque la caja para borrar)" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "(Marque las cajas para borrar)" + +#: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Introduzca los identificadores de ticket o URLs, separados por espacios)" + +#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#. ($RT::CorrespondAddress) +#. ($RT::CommentAddress) +msgid "(If left blank, will default to %1" +msgstr "(Si se deja vacio, pasara por defecto a %1" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "(Sin Valor)" + +#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +msgid "(No custom fields)" +msgstr "(No hay campos custom)" + +#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +msgid "(No members)" +msgstr "(Sin miembros)" + +#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +msgid "(No scrips)" +msgstr "(Sin scrips)" + +#: html/Admin/Elements/EditTemplates:31 +msgid "(No templates)" +msgstr "(Sin plantillas)" + +#: html/Ticket/Update.html:85 +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 "(Envia una copia oculta de esta actualizacion a una lista delimitada por comas de direcciones de email. <b>NO</b> cambia quien recibirá futuras actualizaciones)" + +#: 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 "(Envía una copia oculta de esta actualización a una lista de direcciones de correo delimitada por comas. <b>No</b> cambia a quien recibirá futuras actualizaciones.)" + +#: html/Ticket/Create.html:79 +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 "(Envia una copia oculta de esta actualización a una lista delimitada por comas de direcciones de email administrativas. Estas personas <b>recibirán</b> las futuras actualizaciones.)" + +#: html/Ticket/Update.html:81 +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 "(Envia una copia oculta de esta actualización a una lista delimitada por comas de direcciones de email.<b>NO</b> cambia quien recibirá futuras actualizaciones." + +#: 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 "(Manda una copia de esta actualización a una lista de direcciones de correo delimitada por comas. <b>No</b> cambia a quien recibirá futuras actualizaciones.)" + +#: html/Ticket/Create.html:69 +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 "(Envia una copia de esta actualización a una lista de direcciones de correo delimitada por comas. Estas personas <b>recibirán</b> actualizaciones futuras." + +#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +msgid "(empty)" +msgstr "(vacío)" + +#: html/Admin/Users/index.html:39 +msgid "(no name listed)" +msgstr "(no hay nombres listados)" + +#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +msgid "(no subject)" +msgstr "(sin asunto)" + +#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +msgid "(no value)" +msgstr "(sin valor)" + +#: html/Ticket/Elements/EditLinks:116 +msgid "(only one ticket)" +msgstr "(solo un ticket)" + +#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +msgid "(pending approval)" +msgstr "(pendiente de aprobacion)" + +#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +msgid "(pending other tickets)" +msgstr "(pendiente de otros tickets)" + +#: html/Admin/Users/Modify.html:50 +msgid "(required)" +msgstr "(requerido)" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "(untitled)" +msgstr "(sin titulo)" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "Los 25 tickets de mayor prioridad que poseo..." + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "Los 25 tickets de mayor prioridad que he solicitado..." + +#: html/Ticket/Elements/ShowBasics:32 +msgid "<% $Ticket->Status%>" +msgstr "<% $Ticket->Status%>" + +#: html/Elements/SelectTicketTypes:27 +msgid "<% $_ %>" +msgstr "<% $_ %>" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"Nuevo ticket en\"> %1" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "Una plantilla en blanco" + +#: NOT FOUND IN SOURCE +msgid "ACE Deleted" +msgstr "ACE Borrado" + +#: NOT FOUND IN SOURCE +msgid "ACE Loaded" +msgstr "ACE Cargado" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be deleted" +msgstr "ACE no se pudo borrar" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be found" +msgstr "ACE no se encontró" + +#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +msgid "ACE not found" +msgstr "ACE no encontrado" + +#: lib/RT/ACE_Overlay.pm:831 +msgid "ACEs can only be created and deleted." +msgstr "ACEs solo pueden ser creadas o borradas." + +#: bin/rt-commit-handler:755 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Abortando para prevenir modificaciones no intencionadas al ticket\\n" + +#: html/User/Elements/Tabs:32 +msgid "About me" +msgstr "Sobre mi" + +#: html/Admin/Users/Modify.html:80 +msgid "Access control" +msgstr "Control de acceso" + +#: html/Admin/Elements/EditScrip:57 +msgid "Action" +msgstr "Acción" + +#: lib/RT/Scrip_Overlay.pm:147 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "Acción %1 no encontrada" + +#: bin/rt-crontool:123 +msgid "Action committed." +msgstr "Action committed." + +#: bin/rt-crontool:119 +msgid "Action prepared..." +msgstr "Acción preparada..." + +#: html/Search/Bulk.html:92 +msgid "Add AdminCc" +msgstr "Añadir AdminCc" + +#: html/Search/Bulk.html:90 +msgid "Add Cc" +msgstr "Añadir Cc" + +#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +msgid "Add More Files" +msgstr "Añadir más archivos" + +#: html/Search/Bulk.html:88 +msgid "Add Requestor" +msgstr "Añadir solicitante" + +#: NOT FOUND IN SOURCE +msgid "Add a keyword selection to this queue" +msgstr "Añadir una seleccion de palabra clave a esta cola" + +#: NOT FOUND IN SOURCE +msgid "Add a new a global scrip" +msgstr "Añadir un nuevo scrip global" + +#: NOT FOUND IN SOURCE +msgid "Add a scrip to this queue" +msgstr "Añadir un scrip a esta cola" + +#: html/Admin/Global/Scrip.html:55 +msgid "Add a scrip which will apply to all queues" +msgstr "Añadir un scrip que se aplicará a todas las colas" + +#: html/Search/Bulk.html:118 +msgid "Add comments or replies to selected tickets" +msgstr "Añadir comentarios o respuestas a los tickets seleccionados" + +#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +msgid "Add members" +msgstr "Añadir miembro" + +#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +msgid "Add new watchers" +msgstr "Añadir nuevos observadores" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "AddNextState" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "Principal ha sido añadido como %1 para esta cola" + +#: lib/RT/Ticket_Overlay.pm:1454 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "Principal ha sido añadido como %1 para este ticket" + +#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +msgid "Address1" +msgstr "Dirección 1" + +#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +msgid "Address2" +msgstr "Dirección 2" + +#: html/Ticket/Create.html:74 +msgid "Admin Cc" +msgstr "Admin Cc" + +#: etc/initialdata:274 +msgid "Admin Comment" +msgstr "Admin Comment" + +#: etc/initialdata:256 +msgid "Admin Correspondence" +msgstr "Admin Correspondence" + +#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +msgid "Admin queues" +msgstr "Administración de colas" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "Administración de usuarios" + +#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +msgid "Admin/Global configuration" +msgstr "Adminsitración de la configuración global" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "Administración de Grupos" + +#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +msgid "Admin/Queue/Basics" +msgstr "Administración de una cola" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "AdminAllPersonalGroups" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +msgid "AdminCc" +msgstr "AdminCc" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "AdminComment" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "AdminCorrespondence" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "AdminCustomFields" +msgstr "AdminCustomFields" + +#: lib/RT/Group_Overlay.pm:146 +msgid "AdminGroup" +msgstr "AdminGroup" + +#: lib/RT/Group_Overlay.pm:148 +msgid "AdminGroupMembership" +msgstr "AdminGroupMembership" + +#: lib/RT/System.pm:59 +msgid "AdminOwnPersonalGroups" +msgstr "AdminOwnPersonalGroups" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "AdminQueue" +msgstr "AdminQueue" + +#: lib/RT/System.pm:60 +msgid "AdminUsers" +msgstr "AdminUsers" + +#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +msgid "Administrative Cc" +msgstr "Cc Administrativa" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "Búsqueda avanzada" + +#: html/Elements/SelectDateRelation:36 +msgid "After" +msgstr "Después" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "Edad" + +#: html/Admin/Elements/EditCustomFields:96 +msgid "All Custom Fields" +msgstr "Todos los campos custom" + +#: html/Admin/Queues/index.html:53 +msgid "All Queues" +msgstr "Todas las colas" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "Siempre envia un mensaje a los solicitantes independientemente del remitente del mensaje" + +#: html/Elements/Tabs:58 +msgid "Approval" +msgstr "Aprobacion" + +#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#. ($Ticket->Id, $Ticket->Subject) +#. ($ticket->id, $msg) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Approval #%1: %2" +msgstr "Aprobacion #%1: %2" + +#: html/Approvals/index.html:54 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "Aprobación #%1: No se han guardado las notas debido a un error del sistema" + +#: html/Approvals/index.html:52 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "Aprobacion #%1: Notas guardadas" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "Detalles de la aprobación" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "Diagrama de la aprobación" + +#: html/Approvals/Elements/Approve:45 +msgid "Approve" +msgstr "Aprobar" + +#: etc/initialdata:431 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "Notas del aprobador: %1" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "Abr." + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "Abril" + +#: html/Elements/SelectSortOrder:35 +msgid "Ascending" +msgstr "Ascendente" + +#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +msgid "Attach" +msgstr "Adjunto" + +#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +msgid "Attach file" +msgstr "Adjuntar archivo" + +#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +msgid "Attached file" +msgstr "Archivo adjunto" + +#: html/SelfService/Attachment/dhandler:36 +msgid "Attachment '%1' could not be loaded" +msgstr "Archivo adjunto '%1' no pudo ser cargado" + +#: lib/RT/Transaction_Overlay.pm:443 +msgid "Attachment created" +msgstr "Archivo adjunto creado" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "Nombre del archivo adjunto" + +#: html/Ticket/Elements/ShowAttachments:26 +msgid "Attachments" +msgstr "Archivos adjuntos" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "Ago." + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "Agosto" + +#: html/Admin/Elements/ModifyUser:66 +msgid "AuthSystem" +msgstr "Sistema de autenticación" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "Autorespuesta" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "Autorespuesta a los solicitantes" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "AutoreplyToRequestors" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "Firma PGP incorrecta: %1\\n" + +#: html/SelfService/Attachment/dhandler:40 +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "Identificador de archivo adjunto erróneo. No se puede encontrar el archivo '%1'\\n" + +#: bin/rt-commit-handler:827 +#. ($val) +msgid "Bad data in %1" +msgstr "Datos incorrectos en %1" + +#: html/SelfService/Attachment/dhandler:43 +#. ($trans, $AttachmentObj->TransactionId()) +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "Número de transacción incorrecta para el archivo adjunto. %1 debe ser %2\\n" + +#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +msgid "Basics" +msgstr "Basicos" + +#: html/Ticket/Update.html:83 +msgid "Bcc" +msgstr "Bcc" + +#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +msgid "Be sure to save your changes" +msgstr "Asegúrese de salvar sus cambios" + +#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +msgid "Before" +msgstr "Antes" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "Begin Approval" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "Vacio" + +#: html/Search/Listing.html:79 +msgid "Bookmarkable URL for this search" +msgstr "URL para guardar esta búsqueda en sus marcadores" + +#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +msgid "Brief headers" +msgstr "Encabezados breves" + +#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +msgid "Bulk ticket update" +msgstr "Actualización de varios tickets a la vez" + +#: lib/RT/User_Overlay.pm:1331 +msgid "Can not modify system users" +msgstr "No se pueden modificar los usuarios del sistema" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Can this principal see this queue" +msgstr "Can this principal see this queue" + +#: lib/RT/CustomField_Overlay.pm:144 +msgid "Can't add a custom field value without a name" +msgstr "No se puede agregar un campo personalizable si no tiene un nombre" + +#: lib/RT/Link_Overlay.pm:132 +msgid "Can't link a ticket to itself" +msgstr "No se puede ligar un ticket a sí mismo" + +#: lib/RT/Ticket_Overlay.pm:2787 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "No se puede fusionar dentro de un caso ya fusionado. Nunca deberia recibir este error" + +#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +msgid "Can't specifiy both base and target" +msgstr "No se puede especificar origen y destino al mismo tiempo" + +#: html/autohandler:112 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "No se puede crear el usuario: %1" + +#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +msgid "Cc" +msgstr "Cc" + +#: html/SelfService/Prefs.html:31 +msgid "Change password" +msgstr "Cambiar contraseña" + +#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +msgid "Check box to delete" +msgstr "Check box to delete" + +#: html/Admin/Elements/SelectRights:31 +msgid "Check box to revoke right" +msgstr "Seleccione la caja para quitar el permiso" + +#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +msgid "Children" +msgstr "Hijo" + +#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +msgid "City" +msgstr "Ciudad" + +#: html/Ticket/Elements/ShowDates:47 +msgid "Closed" +msgstr "Cerrado" + +#: html/SelfService/Elements/Tabs:60 +msgid "Closed requests" +msgstr "Solicitudes cerradas" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "No se entendió el comando!\\n" + +#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +msgid "Comment" +msgstr "Comentario" + +#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +msgid "Comment Address" +msgstr "Dirección de comentario" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "Comentario no grabado" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Comment on tickets" +msgstr "Comentario sobre los tickets" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "CommentOnTicket" +msgstr "CommentOnTicket" + +#: html/Admin/Elements/ModifyUser:35 +msgid "Comments" +msgstr "Comentarios" + +#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +msgid "Comments (Not sent to requestors)" +msgstr "Comentarios (no se envían a los solicitantes)" + +#: html/Search/Bulk.html:122 +msgid "Comments (not sent to requestors)" +msgstr "Comentarios (no se envían a los solicitantes)" + +#: html/Elements/ViewUser:27 +#. ($name) +msgid "Comments about %1" +msgstr "Comentarios acerca de %1" + +#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +msgid "Comments about this user" +msgstr "Comentarios acerca de este usuario" + +#: lib/RT/Transaction_Overlay.pm:545 +msgid "Comments added" +msgstr "Comentarios añadidos" + +#: lib/RT/Action/Generic.pm:140 +msgid "Commit Stubbed" +msgstr "Acción realizada" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "Compilar restricciones" + +#: html/Admin/Elements/EditScrip:41 +msgid "Condition" +msgstr "Condición" + +#: bin/rt-crontool:109 +msgid "Condition matches..." +msgstr "La condicion coincide..." + +#: lib/RT/Scrip_Overlay.pm:160 +msgid "Condition not found" +msgstr "Condición no encontrada" + +#: html/Elements/Tabs:52 +msgid "Configuration" +msgstr "Configuración" + +#: html/SelfService/Prefs.html:33 +msgid "Confirm" +msgstr "Confirmar" + +#: html/Admin/Elements/ModifyUser:60 +msgid "ContactInfoSystem" +msgstr "Información de contacto" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "Fecha de contacto '%1' no pudo ser leida" + +#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +msgid "Content" +msgstr "Contenido" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "No se pudo crear grupo" + +#: etc/initialdata:266 +msgid "Correspondence" +msgstr "Correspondencia" + +#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +msgid "Correspondence Address" +msgstr "Dirección de corresponencia" + +#: lib/RT/Transaction_Overlay.pm:541 +msgid "Correspondence added" +msgstr "Correspondencia agregada" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "Correspondencia no guardada" + +#: lib/RT/Ticket_Overlay.pm:3458 +msgid "Could not add new custom field value for ticket. " +msgstr "No se pudo añadir un nuevo valor de campo personalizable para el ticket. " + +#: NOT FOUND IN SOURCE +msgid "Could not add new custom field value for ticket. %1 " +msgstr "No se pudo añadir un nuevo valor de campo personalizable para el ticket. %1 " + +#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +msgid "Could not change owner. " +msgstr "No se pudo cambiar el propietario. " + +#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#. ($msg) +msgid "Could not create CustomField" +msgstr "No se puede crear un CampoPersonalizable" + +#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +msgid "Could not create group" +msgstr "No se pudo crear el grupo" + +#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#. ($msg) +msgid "Could not create template: %1" +msgstr "No se pudo crear la plantilla: %1" + +#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +msgid "Could not create ticket. Queue not set" +msgstr "No se pudo crear el ticket. Cola no seleccionada" + +#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +msgid "Could not create user" +msgstr "No se pudo crear el usuario" + +#: NOT FOUND IN SOURCE +msgid "Could not create watcher for requestor" +msgstr "No se pudo crear un observador para el solicitante" + +#: NOT FOUND IN SOURCE +msgid "Could not find a ticket with id %1" +msgstr "No se pudo encontrar un ticket con identificador $1" + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "No se pudo encontrar el grupo %1." + +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +msgid "Could not find or create that user" +msgstr "No se pudo encontrar o crear el usuario" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +msgid "Could not find that principal" +msgstr "No se pudo encontrar ese principal" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "No se pudo encontrar el usuario %1." + +#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +msgid "Could not load group" +msgstr "No se puede cargar el grupo" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "No se pudo hacer ese principal un %1 para esta cola" + +#: lib/RT/Ticket_Overlay.pm:1443 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "No se pudo hacer ese principal un %1 para este ticket" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "No se pudo quitar ese principal como un %1 para esta cola" + +#: lib/RT/Ticket_Overlay.pm:1559 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "No se pudo quitar ese principal como un %1 para este ticket" + +#: lib/RT/Group_Overlay.pm:985 +msgid "Couldn't add member to group" +msgstr "No se pudo agregar el miembro al grupo" + +#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "No se pudo crear la transacción: %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't figure out what to do from gpg's reply\\n" +msgstr "No se pudo averiguar que hacer a partir de la firma gpg de la respuesta" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find group\\n" +msgstr "No se pudo encontrar el grupo\\n" + +#: lib/RT/Interface/Web.pm:866 +msgid "Couldn't find row" +msgstr "No se pudo encontrar la fila" + +#: lib/RT/Group_Overlay.pm:959 +msgid "Couldn't find that principal" +msgstr "No pudo enconcontrar ese principal" + +#: lib/RT/CustomField_Overlay.pm:175 +msgid "Couldn't find that value" +msgstr "No se pudo encontrar ese valor" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find that watcher" +msgstr "No se pudo encontrar ese observador" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find user\\n" +msgstr "No se pudo encontrar el usuario\\n" + +#: lib/RT/CurrentUser.pm:112 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "No se pudo cargar %1 desde la base de datos de usuarios.\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load KeywordSelects." +msgstr "No se pudo cargar KeywordSelects" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "No se pudo cargar el archivo de configuración de RT '%1' %2" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Scrips." +msgstr "No se pudieron cargar los Scrips." + +#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#. ($id) +msgid "Couldn't load group %1" +msgstr "No se pudo cargar el grupo %1" + +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +msgid "Couldn't load link" +msgstr "No se puedo cargar el enlace" + +#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#. ($id) +msgid "Couldn't load queue" +msgstr "No se pudo cargar la cola" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "No se pudo cargar la cola %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "No se pudo cargar el scrip" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "No se pudo cargar la plantilla" + +#: html/Admin/Users/Prefs.html:79 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "No se pudo cargar ese usuario (%1)" + +#: html/SelfService/Display.html:166 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "No se pudo cargar el ticket '%1'" + +#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +msgid "Country" +msgstr "País" + +#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +msgid "Create" +msgstr "Crear" + +#: etc/initialdata:128 +msgid "Create Tickets" +msgstr "Crear Tickets" + +#: html/Admin/Elements/EditCustomField:58 +msgid "Create a CustomField" +msgstr "Crear CampoPersonalizable" + +#: html/Admin/Queues/CustomField.html:48 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "Crear un campo personalizables para la cola %1" + +#: html/Admin/Global/CustomField.html:48 +msgid "Create a CustomField which applies to all queues" +msgstr "Crear un campo personalizable que se aplique a todas las colas" + +#: NOT FOUND IN SOURCE +msgid "Create a new Custom Field" +msgstr "Crear un nuevo campo personalizable" + +#: NOT FOUND IN SOURCE +msgid "Create a new global scrip" +msgstr "Crear un nuevo scrip global" + +#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +msgid "Create a new group" +msgstr "Creat un nuevo grupo" + +#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +msgid "Create a new personal group" +msgstr "Crear un nuevo grupo personal" + +#: NOT FOUND IN SOURCE +msgid "Create a new queue" +msgstr "Crear una nueva cola" + +#: NOT FOUND IN SOURCE +msgid "Create a new scrip" +msgstr "Crear un nuevo scrip" + +#: NOT FOUND IN SOURCE +msgid "Create a new template" +msgstr "Crear una nueva plantilla" + +#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +msgid "Create a new ticket" +msgstr "Crear un nuevo ticket" + +#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +msgid "Create a new user" +msgstr "Crear un nuevo usuario" + +#: html/Admin/Queues/Modify.html:103 +msgid "Create a queue" +msgstr "Crear una cola" + +#: NOT FOUND IN SOURCE +msgid "Create a queue called" +msgstr "Crear una cola llamada " + +#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +msgid "Create a request" +msgstr "Crear una solicitud" + +#: html/Admin/Queues/Scrip.html:59 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "Crear un scrip para la cola %1" + +#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +msgid "Create a template" +msgstr "Crear una plantilla" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1 / %2 / %3 " +msgstr "Creación fallida: %1 / %2 / %3 " + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1/%2/%3" +msgstr "Creación fallida: %1 / %2 / %3 " + +#: etc/initialdata:130 +msgid "Create new tickets based on this scrip's template" +msgstr "Crear nuevos tickets basados en esta plantilla de scrip" + +#: html/SelfService/Create.html:81 +msgid "Create ticket" +msgstr "Crear ticket" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Create tickets in this queue" +msgstr "Crear tickets en esta cola" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Create, delete and modify custom fields" +msgstr "Crear, borrar y modifical campos personalizables" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "Create, delete and modify queues" +msgstr "Crear, borrar y modificar colas" + +#: NOT FOUND IN SOURCE +msgid "Create, delete and modify the members of any user's personal groups" +msgstr "Crear, borrar y modificar los miembros de cualquier grupo personal de usuario" + +#: lib/RT/System.pm:59 +msgid "Create, delete and modify the members of personal groups" +msgstr "Crear, borrar y modificar los miembros de los grupos personales" + +#: lib/RT/System.pm:60 +msgid "Create, delete and modify users" +msgstr "Crear, borrar y modificar usuarios" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "CreateTicket" +msgstr "CreateTicket" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +msgid "Created" +msgstr "Creado" + +#: html/Admin/Elements/EditCustomField:71 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "CampoPersonalizable %1 creado" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "Plantilla %1 creada" + +#: html/Ticket/Elements/EditLinks:28 +msgid "Current Relationships" +msgstr "Relaciones actuales" + +#: html/Admin/Elements/EditScrips:30 +msgid "Current Scrips" +msgstr "Scrips actuales" + +#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +msgid "Current members" +msgstr "Miembros actuales" + +#: html/Admin/Elements/SelectRights:29 +msgid "Current rights" +msgstr "Permisos actuales" + +#: html/Search/Listing.html:71 +msgid "Current search criteria" +msgstr "Criterio de busqueda actual" + +#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +msgid "Current watchers" +msgstr "Observadores actuales" + +#: html/Admin/Global/CustomField.html:55 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "Campo personalizable #%1" + +#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +msgid "Custom Fields" +msgstr "Campos personalizables" + +#: html/Admin/Elements/EditScrip:73 +msgid "Custom action cleanup code" +msgstr "Codigo de limpieza de accion personalizable" + +#: html/Admin/Elements/EditScrip:65 +msgid "Custom action preparation code" +msgstr "Codigo de preparacion de accion personalizable" + +#: html/Admin/Elements/EditScrip:49 +msgid "Custom condition" +msgstr "Condicion personalizable" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "Campo personalizado %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "Campo personalizado %1 tiene un valor." + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "Campo personalizado %1 no tiene un valor." + +#: lib/RT/Ticket_Overlay.pm:3360 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Campo personalizado %1 no encontrado" + +#: html/Admin/Elements/EditCustomFields:197 +msgid "Custom field deleted" +msgstr "Campo personalizable borrado" + +#: lib/RT/Ticket_Overlay.pm:3510 +msgid "Custom field not found" +msgstr "Campo personalizado no encontrado" + +#: lib/RT/CustomField_Overlay.pm:283 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "El valor del campo %1 no pudo ser encontrado para el campo %2" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "Valor del campo cambiado de %1 a %2" + +#: lib/RT/CustomField_Overlay.pm:185 +msgid "Custom field value could not be deleted" +msgstr "El valor del campo no pudo ser borrado" + +#: lib/RT/CustomField_Overlay.pm:289 +msgid "Custom field value could not be found" +msgstr "El valor del campo no pudo se encontrado" + +#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +msgid "Custom field value deleted" +msgstr "Valor del campo borrado" + +#: lib/RT/Transaction_Overlay.pm:550 +msgid "CustomField" +msgstr "CustomField" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "Error de datos" + +#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +msgid "Dates" +msgstr "Fechas" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "Dic." + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "Diciembre" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "Plantilla de autorespuesta por defecto" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "Plantilla de autorespuesta por defect" + +#: etc/initialdata:275 +msgid "Default admin comment template" +msgstr "Plantilla de comentario de admin por defecto" + +#: etc/initialdata:257 +msgid "Default admin correspondence template" +msgstr "Plantilla de correspondencia de admin por defecto" + +#: etc/initialdata:267 +msgid "Default correspondence template" +msgstr "Plantilla de correspondencia por defecto" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "Plantilla de trasacciones por defecto" + +#: lib/RT/Transaction_Overlay.pm:645 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "Por defecto: %1/%2 ha cambiado de %3 a %4" + +#: html/User/Delegation.html:25 html/User/Delegation.html:28 +msgid "Delegate rights" +msgstr "Delegar derechos" + +#: lib/RT/System.pm:63 +msgid "Delegate specific rights which have been granted to you." +msgstr "Delegar derechos especificos que te han sido concedidos" + +#: lib/RT/System.pm:63 +msgid "DelegateRights" +msgstr "DelegateRights" + +#: html/User/Elements/Tabs:38 +msgid "Delegation" +msgstr "Delegar" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "Borrar" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "Delete tickets" +msgstr "Borrar tickets" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "DeleteTicket" +msgstr "DeleteTicket" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "Al borrar este objeto, se puede romper la integridad referencial" + +#: lib/RT/Queue_Overlay.pm:292 +msgid "Deleting this object would break referential integrity" +msgstr "Al borrar este objeto, se romperá la integridad referencial" + +#: lib/RT/User_Overlay.pm:430 +msgid "Deleting this object would violate referential integrity" +msgstr "Al borrar este objeto, se violará la integridad referencial" + +#: NOT FOUND IN SOURCE +msgid "Deleting this object would violate referential integrity." +msgstr "Al borrar este objeto, se violará la integridad referencial." + +#: NOT FOUND IN SOURCE +msgid "Deleting this object would violate referential integrity. That's bad." +msgstr "Al borrar este objeto, se violará la integridad referencial. Eso es malo." + +#: html/Approvals/Elements/Approve:46 +msgid "Deny" +msgstr "Denegar" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +msgid "Depended on by" +msgstr "Dependen de este ticket" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "Dependencias: \\n" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +msgid "Depends on" +msgstr "Depende de" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "DependsOn" + +#: html/Elements/SelectSortOrder:35 +msgid "Descending" +msgstr "Descendiente" + +#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +msgid "Describe the issue below" +msgstr "Describa el problema debajo" + +#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +msgid "Description" +msgstr "Descripción" + +#: html/SelfService/Elements/MyRequests:44 +msgid "Details" +msgstr "Detalles" + +#: html/Ticket/Elements/Tabs:85 +msgid "Display" +msgstr "Despliegue" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Display Access Control List" +msgstr "Mostrar Lista de Control de Acceso" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Display Scrip templates for this queue" +msgstr "Mostrar plantillas de scrip para esta cola" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Display Scrips for this queue" +msgstr "Mostrar scrips para esta cola" + +#: html/Ticket/Elements/ShowHistory:35 +msgid "Display mode" +msgstr "Modo de despliegue" + +#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 +#. ($Ticket->id) +msgid "Display ticket #%1" +msgstr "Despliega ticket #%1" + +#: lib/RT/System.pm:54 +msgid "Do anything and everything" +msgstr "Hacer cualquier cosa y todo" + +#: html/Elements/Refresh:30 +msgid "Don't refresh this page." +msgstr "No recargar esta página" + +#: html/Search/Elements/PickRestriction:114 +msgid "Don't show search results" +msgstr "No mostrar los resultados de la busqueda" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "Download" +msgstr "Descargar" + +#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +msgid "Due" +msgstr "Retraso" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "La fecha de retraso '%1' no pudo ser leida" + +#: bin/rt-commit-handler:754 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "ERROR: No se pudo cargar el ticket '%1': %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "Editar" + +#: html/Admin/Queues/CustomFields.html:45 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "Editar campos personalizados para %1" + +#: html/Ticket/ModifyLinks.html:36 +msgid "Edit Relationships" +msgstr "Editar relaciones" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "Editar plantillas para la cola %1" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "Editar palabras clave" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "Editar acciones" + +#: html/Admin/Global/index.html:46 +msgid "Edit system templates" +msgstr "Editar plantillas del sistema" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "Editar plantillas para %1" + +#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "Editando configuración para la cola %1" + +#: html/Admin/Elements/ModifyUser:25 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "Editando configuración para el usuario %1" + +#: html/Admin/Elements/EditCustomField:74 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Editando campo %1" + +#: html/Admin/Groups/Members.html:32 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Editando los miembros del grupo %1" + +#: html/User/Groups/Members.html:129 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "Editando los miembros para el grupo personal %1" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "Editando plantilla %1" + +#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +msgid "Either base or target must be specified" +msgstr "La base o el destinatario deben ser especificados" + +#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +msgid "Email" +msgstr "Correo" + +#: lib/RT/User_Overlay.pm:188 +msgid "Email address in use" +msgstr "La dirección de correo ya está en uso" + +#: html/Admin/Elements/ModifyUser:42 +msgid "EmailAddress" +msgstr "Correo Electrónico" + +#: html/Admin/Elements/ModifyUser:54 +msgid "EmailEncoding" +msgstr "Codificación para el correo" + +#: html/Admin/Elements/EditCustomField:36 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "Habilitado (Desmarcar esta caja deshabilita este campo personalizable)" + +#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "Habilitado (Desmarcar esta caja deshabilita este campo personalizable)" + +#: html/Admin/Queues/Modify.html:84 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Habilitado (Desmarcar esta caja, deshabilita esta cola)" + +#: html/Admin/Elements/EditCustomFields:99 +msgid "Enabled Custom Fields" +msgstr "Campos Personalizables Habilitados" + +#: html/Admin/Queues/index.html:56 +msgid "Enabled Queues" +msgstr "Colas habilitadas" + +#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "Estado %1 habilitado" + +#: lib/RT/CustomField_Overlay.pm:361 +msgid "Enter multiple values" +msgstr "Introducir multiples valores" + +#: lib/RT/CustomField_Overlay.pm:358 +msgid "Enter one value" +msgstr "Introducir un valor" + +#: html/Ticket/Elements/EditLinks:112 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Ingrese los números de ticket o las URL que llevan hacia el ticket. Separe multiples entradas con espacios" + +#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +msgid "Error" +msgstr "Error" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "Error añadiendo observador" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Error en los parámetros para Queue->AddWatcher" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Error en los parámetros para Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1356 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Error en los parámetros para Queue->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1532 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Error en los parámetros para Queue->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "Todos" + +#: bin/rt-crontool:194 +msgid "Example:" +msgstr "Ejemplo" + +#: html/Admin/Elements/ModifyUser:64 +msgid "ExternalAuthId" +msgstr "ExternalAuthId" + +#: html/Admin/Elements/ModifyUser:58 +msgid "ExternalContactInfoId" +msgstr "ExternalContactInfoId" + +#: html/Admin/Users/Modify.html:73 +msgid "Extra info" +msgstr "Información extra" + +#: lib/RT/User_Overlay.pm:302 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Problema para encontrar el pseudogrupo de usuarios 'Privileged'" + +#: lib/RT/User_Overlay.pm:309 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Problema para encontrar el pseudogrupo de usuarios 'Unprivileged'" + +#: bin/rt-crontool:138 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "Error al cargar el modulo %1. (%2)" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "Feb." + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "Febrero" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "Fin" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "Prioridad Final" + +#: lib/RT/Ticket_Overlay.pm:1162 +msgid "FinalPriority" +msgstr "FinalPriority" + +#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +msgid "Find group whose" +msgstr "Encontrar grupo que" + +#: html/Elements/Quicksearch:25 +msgid "Find new/open tickets" +msgstr "Encontrar tickets nuevos/abiertos" + +#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +msgid "Find people whose" +msgstr "Encontrar gente que" + +#: html/Search/Listing.html:108 +msgid "Find tickets" +msgstr "Encontrar tickets" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "Aprobacion final" + +#: html/Ticket/Elements/Tabs:58 +msgid "First" +msgstr "Primero" + +#: html/Search/Listing.html:41 +msgid "First page" +msgstr "Primera página" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "Foo Bar Baz" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "Foo!" + +#: html/Search/Bulk.html:87 +msgid "Force change" +msgstr "Forzar cambio" + +#: html/Search/Listing.html:106 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "Encontrado %quant(%1,ticket)" + +#: lib/RT/Interface/Web.pm:868 +msgid "Found Object" +msgstr "Objeto encontrado" + +#: html/Admin/Elements/ModifyUser:44 +msgid "FreeformContactInfo" +msgstr "FreeformContactInfo" + +#: lib/RT/CustomField_Overlay.pm:38 +msgid "FreeformMultiple" +msgstr "FreeformMultiple" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformSingle" +msgstr "FreeformSingle" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "Vie." + +#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +msgid "Full headers" +msgstr "Encabezados completos" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "Obteniendo el usuario de la firma pgp" + +#: lib/RT/Transaction_Overlay.pm:595 +#. ($New->Name) +msgid "Given to %1" +msgstr "Given to %1" + +#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +msgid "Global" +msgstr "Global" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "Seleccion de palabras clave globales" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "Acciones Globales" + +#: html/Admin/Elements/SelectTemplate:38 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "Plantilla global" + +#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +msgid "Go!" +msgstr " Ir " + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "Firma pgp correcta de %1\\n" + +#: html/Search/Listing.html:50 +msgid "Goto page" +msgstr "Ir a página" + +#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +msgid "Goto ticket" +msgstr "Ir a ticket" + +#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +msgid "Group" +msgstr "Grupo" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "Grupo %1 %2: %3" + +#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +msgid "Group Rights" +msgstr "Derechos del grupo" + +#: lib/RT/Group_Overlay.pm:965 +msgid "Group already has member" +msgstr "El grupo ya tiene miembros" + +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "El grupo no se pudo crear" + +#: html/Admin/Groups/Modify.html:77 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "El grupo no se pudo crear: %1" + +#: lib/RT/Group_Overlay.pm:497 +msgid "Group created" +msgstr "Grupo creado" + +#: lib/RT/Group_Overlay.pm:1133 +msgid "Group has no such member" +msgstr "El grupo no tiene este miembro" + +#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +msgid "Group not found" +msgstr "Grupo no encontrado" + +#: NOT FOUND IN SOURCE +msgid "Group not found.\\n" +msgstr "Grupo no entontrado\\n" + +#: NOT FOUND IN SOURCE +msgid "Group not specified.\\n" +msgstr "Grupo no especificado\\n" + +#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +msgid "Groups" +msgstr "Grupos" + +#: lib/RT/Group_Overlay.pm:971 +msgid "Groups can't be members of their members" +msgstr "Los grupos no pueden ser miembros de sus propios miembros" + +#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +msgid "Hello!" +msgstr "Hola!" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "Hola, %1" + +#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +msgid "History" +msgstr "Historial" + +#: html/Admin/Elements/ModifyUser:68 +msgid "HomePhone" +msgstr "Tel Casa" + +#: html/Elements/Tabs:46 +msgid "Homepage" +msgstr "Inicio" + +#: lib/RT/Base.pm:74 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "Tengo %quant(%1,concrete mixer)." + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "Tengo [quant,_1,concrete mixer]." + +#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "Id" + +#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +msgid "Identity" +msgstr "Identidad" + +#: etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "Si una aprobacion es rechazada, rechazar la original y borrar las aprobaciones pendientes" + +#: bin/rt-crontool:190 +msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." +msgstr "Si esta herramienta estaba setgid, un usuario hostil local podria usar esta herramienta para conseguir acceso administrativo a RT." + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "If you've updated anything above, be sure to" +msgstr "Si ha actualizado algo más arriba, no olvide" + +#: lib/RT/Interface/Web.pm:860 +msgid "Illegal value for %1" +msgstr "Valor ilegal para %1" + +#: lib/RT/Interface/Web.pm:863 +msgid "Immutable field" +msgstr "Campo inmutable" + +#: html/Admin/Elements/EditCustomFields:74 +msgid "Include disabled custom fields in listing." +msgstr "Incluir campos personalizables deshabilitados en el listado." + +#: html/Admin/Queues/index.html:43 +msgid "Include disabled queues in listing." +msgstr "Incluir colas deshabilitadas en el listado" + +#: html/Admin/Users/index.html:47 +msgid "Include disabled users in search." +msgstr "Incluir usuarios deshabilitados en la búsqueda" + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "Prioridad inicial" + +#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +msgid "InitialPriority" +msgstr "InitialPriority" + +#: lib/RT/ScripAction_Overlay.pm:105 +msgid "Input error" +msgstr "Error de entrada" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "Interest noted" + +#: lib/RT/Ticket_Overlay.pm:3729 +msgid "Internal Error" +msgstr "Error interno" + +#: lib/RT/Record.pm:143 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "Error interno: %1" + +#: lib/RT/Group_Overlay.pm:644 +msgid "Invalid Group Type" +msgstr "Tipo de grupo inválido" + +#: lib/RT/Principal_Overlay.pm:128 +msgid "Invalid Right" +msgstr "Derechos inválidos" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "Tipo inválido" + +#: lib/RT/Interface/Web.pm:865 +msgid "Invalid data" +msgstr "Datos no válidos" + +#: lib/RT/Ticket_Overlay.pm:438 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "Propietario inválido. Estableciéndolo a 'nobody'." + +#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "Ãrea inválida" + +#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +msgid "Invalid right" +msgstr "Permiso inválido" + +#: lib/RT/Record.pm:118 +#. ($key) +msgid "Invalid value for %1" +msgstr "Valor inválido para %1" + +#: lib/RT/Ticket_Overlay.pm:3367 +msgid "Invalid value for custom field" +msgstr "Valor inválido para el campo personalizable" + +#: lib/RT/Ticket_Overlay.pm:345 +msgid "Invalid value for status" +msgstr "Valor inválido para el estado" + +#: bin/rt-crontool:191 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "Es increiblemente importante que los usuarios sin privilegios no puedan ejecutar esta herramienta" + +#: bin/rt-crontool:192 +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 "Es recomendable crear un usuario unix sin privilegios que pertenezca al grupo correcto y que tenga aceso a ejecutar esta herramienta" + +#: bin/rt-crontool:163 +msgid "It takes several arguments:" +msgstr "Tiene varios parametros:" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "Items pendientes de mi aprobación" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "Ene." + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "Enero" + +#: lib/RT/Group_Overlay.pm:149 +msgid "Join or leave this group" +msgstr "Unirse o abandonar este grupo" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "Jul." + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "Julio" + +#: html/Ticket/Elements/Tabs:99 +msgid "Jumbo" +msgstr "Todo" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "Jun." + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "Junio" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "Palabras clave" + +#: html/Admin/Elements/ModifyUser:52 +msgid "Lang" +msgstr "Leng" + +#: html/Ticket/Elements/Tabs:73 +msgid "Last" +msgstr "Último" + +#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +msgid "Last Contact" +msgstr "Último contacto" + +#: html/Elements/SelectDateType:29 +msgid "Last Contacted" +msgstr "Último contactado" + +#: html/Search/Elements/TicketHeader:41 +msgid "Last Notified" +msgstr "Se le notifico por ultima vez" + +#: html/Elements/SelectDateType:30 +msgid "Last Updated" +msgstr "Actualizado por ultima vez" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "LastUpdated" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "Izquierda" + +#: html/Admin/Users/Modify.html:83 +msgid "Let this user access RT" +msgstr "Permitir a este usuario acceder al RT" + +#: html/Admin/Users/Modify.html:87 +msgid "Let this user be granted rights" +msgstr "Permitir que este usuario tenga privilegios adicionales" + +#: NOT FOUND IN SOURCE +msgid "Limiting owner to %1 %2" +msgstr "Limitando propietario a %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Limiting queue to %1 %2" +msgstr "Limitando cola a %1 %2" + +#: lib/RT/Ticket_Overlay.pm:2697 +msgid "Link already exists" +msgstr "El vínculo ya existe" + +#: lib/RT/Ticket_Overlay.pm:2709 +msgid "Link could not be created" +msgstr "El vínculo no pudo ser creado" + +#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#. ($TransString) +msgid "Link created (%1)" +msgstr "Vínculo creado (%2)" + +#: lib/RT/Ticket_Overlay.pm:2638 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Vínculo borrado (%1)" + +#: lib/RT/Ticket_Overlay.pm:2644 +msgid "Link not found" +msgstr "Vínculo no encontrado" + +#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "Vincular caso #%1" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "Enlazar ticket %1" + +#: html/Ticket/Elements/Tabs:97 +msgid "Links" +msgstr "Enlaces" + +#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +msgid "Location" +msgstr "Direccion" + +#: lib/RT.pm:158 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "El directorio del log %1 no pudo ser encontrado o no se pudo escribir en él.\\n RT no puede ejecutarse." + +#: html/Elements/Header:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "Autenticado como %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +msgid "Login" +msgstr "Entrar" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "Salir" + +#: html/Search/Bulk.html:86 +msgid "Make Owner" +msgstr "Hacer propietario a" + +#: html/Search/Bulk.html:102 +msgid "Make Status" +msgstr "Establecer estatus" + +#: html/Search/Bulk.html:109 +msgid "Make date Due" +msgstr "Establecer fecha de plazo" + +#: html/Search/Bulk.html:110 +msgid "Make date Resolved" +msgstr "Establecer fecha de resolución" + +#: html/Search/Bulk.html:107 +msgid "Make date Started" +msgstr "Establecer fecha de inicio" + +#: html/Search/Bulk.html:106 +msgid "Make date Starts" +msgstr "Establecer fecha de inicio" + +#: html/Search/Bulk.html:108 +msgid "Make date Told" +msgstr "Establecer fecha de último cambio" + +#: html/Search/Bulk.html:99 +msgid "Make priority" +msgstr "Establecer prioridad" + +#: html/Search/Bulk.html:100 +msgid "Make queue" +msgstr "Establecer cola" + +#: html/Search/Bulk.html:98 +msgid "Make subject" +msgstr "Establecer título" + +#: html/Admin/index.html:33 +msgid "Manage groups and group membership" +msgstr "Administrar grupos y miembros" + +#: html/Admin/index.html:39 +msgid "Manage properties and configuration which apply to all queues" +msgstr "Administrar propiedades y configuracion que se aplique a todas las colas" + +#: html/Admin/index.html:36 +msgid "Manage queues and queue-specific properties" +msgstr "Administrar colas y propiedades especificas" + +#: html/Admin/index.html:30 +msgid "Manage users and passwords" +msgstr "Administrar usuarios y contraseñas" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "Mar." + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "Marzo" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "Mayo" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "May." + +#: lib/RT/Group_Overlay.pm:982 +msgid "Member added" +msgstr "Miembro añadido" + +#: lib/RT/Group_Overlay.pm:1140 +msgid "Member deleted" +msgstr "Miembro borrado" + +#: lib/RT/Group_Overlay.pm:1144 +msgid "Member not deleted" +msgstr "Miembro no borrado" + +#: html/Elements/SelectLinkType:26 +msgid "Member of" +msgstr "Miembro de" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "MemberOf" + +#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +msgid "Members" +msgstr "Miembros" + +#: lib/RT/Ticket_Overlay.pm:2843 +msgid "Merge Successful" +msgstr "Fusión exitosa" + +#: lib/RT/Ticket_Overlay.pm:2804 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "Fusión fallida. No se pudo establecer el EffectiveId" + +#: html/Ticket/Elements/EditLinks:115 +msgid "Merge into" +msgstr "Fusionar dentro de" + +#: html/Ticket/Update.html:102 +msgid "Message" +msgstr "Mensaje" + +#: lib/RT/Interface/Web.pm:867 +msgid "Missing a primary key?: %1" +msgstr "Falta una clave primaria?: %1" + +#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +msgid "Mobile" +msgstr "Movil" + +#: html/Admin/Elements/ModifyUser:72 +msgid "MobilePhone" +msgstr "Telefono Movil" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify Access Control List" +msgstr "Modificar lista de control de acceso" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "Modificar el campo personalizable %1" + +#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +msgid "Modify Custom Fields which apply to all queues" +msgstr "Modificar los campos personalizables que se apliquen a todas las colas" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "Modify Scrip templates for this queue" +msgstr "Modificar plantillas Sript para esta cola" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "Modify Scrips for this queue" +msgstr "Modificar Scrips para esta cola" + +#: NOT FOUND IN SOURCE +msgid "Modify System ACLS" +msgstr "Modificar ACLs de sistema" + +#: NOT FOUND IN SOURCE +msgid "Modify Template %1" +msgstr "Modificar plantilla %1" + +#: html/Admin/Queues/CustomField.html:45 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "Modificar un campo personalizable para la cola %1" + +#: html/Admin/Global/CustomField.html:53 +msgid "Modify a CustomField which applies to all queues" +msgstr "Modificar un campo personalizable que se aplique a todas las colas" + +#: html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "Modificar un scrip para la cola %1" + +#: html/Admin/Global/Scrip.html:48 +msgid "Modify a scrip which applies to all queues" +msgstr "Modificar un scrip que se aplique a todas las colas" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "Modificar fechas para # %1" + +#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Modificar fechas para #%1" + +#: html/Ticket/ModifyDates.html:35 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Modificar fechas para ticket # %1" + +#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +msgid "Modify global group rights" +msgstr "Modificar privilegios globales de grupo" + +#: html/Admin/Global/GroupRights.html:33 +msgid "Modify global group rights." +msgstr "Modificar privilegios globales de grupo." + +#: NOT FOUND IN SOURCE +msgid "Modify global rights for groups" +msgstr "Modificar privilegios globales para grupos" + +#: NOT FOUND IN SOURCE +msgid "Modify global rights for users" +msgstr "Modificar privilegios globales para usuarios" + +#: NOT FOUND IN SOURCE +msgid "Modify global scrips" +msgstr "Modificar acciones globales" + +#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +msgid "Modify global user rights" +msgstr "Modificar derechos globales de usuario" + +#: html/Admin/Global/UserRights.html:33 +msgid "Modify global user rights." +msgstr "Modificar privilegios globales de usuario" + +#: lib/RT/Group_Overlay.pm:146 +msgid "Modify group metadata or delete group" +msgstr "Modificar metadatos del grupo o borrar grupo" + +#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#. ($GroupObj->Name) +msgid "Modify group rights for group %1" +msgstr "Modificar privilegios de grupo para %1" + +#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "Modificar privilegios de grupo para la cola %1" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Modify membership roster for this group" +msgstr "Modificar miembros de este grupo" + +#: lib/RT/System.pm:61 +msgid "Modify one's own RT account" +msgstr "Modificar la propia cuenta RT" + +#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Modificar personas relacionadas al cola %1" + +#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#. ($Ticket->id) +#. ($Ticket->Id) +msgid "Modify people related to ticket #%1" +msgstr "Modificar personas relacionadas al ticket #%1" + +#: html/Admin/Queues/Scrips.html:44 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Modificar acciones para la cola %1" + +#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +msgid "Modify scrips which apply to all queues" +msgstr "Modificar scrips que se aplican a todas las colas" + +#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#. (loc($TemplateObj->Name())) +#. ($TemplateObj->id) +msgid "Modify template %1" +msgstr "Modificar plantilla %1" + +#: html/Admin/Global/Templates.html:44 +msgid "Modify templates which apply to all queues" +msgstr "Modificar plantillas que se aplican a todas las colas" + +#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "Modificar el grupo %1" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Modify the queue watchers" +msgstr "Modificar los observadores de la cola" + +#: html/Admin/Users/Modify.html:236 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "Modificar el usuario %1" + +#: html/Ticket/ModifyAll.html:37 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Modificar el ticket # %1" + +#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Modificar el ticket #%1" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Modify tickets" +msgstr "Modificar tickets" + +#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#. ($GroupObj->Name) +msgid "Modify user rights for group %1" +msgstr "Modificar privilegios de usuario para el grupo %1" + +#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "Modificar derechos de usuario para la cola %1" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "Modificar observadores para la cola '%1'" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyACL" +msgstr "ModifyACL" + +#: lib/RT/Group_Overlay.pm:149 +msgid "ModifyOwnMembership" +msgstr "ModifyOwnMembership" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "ModifyQueueWatchers" +msgstr "ModifyQueueWatchers" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "ModifyScrips" +msgstr "ModifyScrips" + +#: lib/RT/System.pm:61 +msgid "ModifySelf" +msgstr "ModifySelf" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "ModifyTemplate" +msgstr "ModifyTemplate" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "ModifyTicket" +msgstr "ModifyTicket" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "Lun." + +#: html/Ticket/Elements/ShowRequestor:42 +#. ($name) +msgid "More about %1" +msgstr "Más acerca de %1" + +#: html/Admin/Elements/EditCustomFields:61 +msgid "Move down" +msgstr "Mover hacia abajo" + +#: html/Admin/Elements/EditCustomFields:53 +msgid "Move up" +msgstr "Move hacia arriba" + +#: html/Admin/Elements/SelectSingleOrMultiple:27 +msgid "Multiple" +msgstr "Múltiple" + +#: lib/RT/User_Overlay.pm:179 +msgid "Must specify 'Name' attribute" +msgstr "Se debe especificar un nombre" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "Mis aprobaciones" + +#: html/Approvals/index.html:25 html/Approvals/index.html:26 +msgid "My approvals" +msgstr "Mis aprobaciones" + +#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +msgid "Name" +msgstr "Nombre" + +#: lib/RT/User_Overlay.pm:186 +msgid "Name in use" +msgstr "Nombre en uso" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "Se necesita aprobacion del administrador del sistema" + +#: html/Ticket/Elements/ShowDates:52 +msgid "Never" +msgstr "Nunca" + +#: html/Elements/Quicksearch:30 +msgid "New" +msgstr "Nuevo" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +msgid "New Password" +msgstr "Nueva contraseñaa" + +#: etc/initialdata:311 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "Nueva pendiente de aprobación" + +#: html/Ticket/Elements/EditLinks:111 +msgid "New Relationships" +msgstr "Nuevas relaciones" + +#: html/Ticket/Elements/Tabs:36 +msgid "New Search" +msgstr "Nueva búsqueda" + +#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +msgid "New custom field" +msgstr "Nuevo campo personalizable" + +#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +msgid "New group" +msgstr "Nuevo grupo" + +#: html/SelfService/Prefs.html:32 +msgid "New password" +msgstr "Nueva contraseñaa" + +#: lib/RT/User_Overlay.pm:639 +msgid "New password notification sent" +msgstr "Notificación de nueva contraseña enviada" + +#: html/Admin/Elements/QueueTabs:70 +msgid "New queue" +msgstr "Nueva cola" + +#: html/SelfService/Elements/Tabs:63 +msgid "New request" +msgstr "Nueva solicitud" + +#: html/Admin/Elements/SelectRights:42 +msgid "New rights" +msgstr "Nuevos privilegios" + +#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +msgid "New scrip" +msgstr "Nuevo scrip" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "Nueva búsqueda" + +#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +msgid "New template" +msgstr "Nueva plantilla" + +#: lib/RT/Ticket_Overlay.pm:2771 +msgid "New ticket doesn't exist" +msgstr "El ticket nuevo no existe" + +#: html/Admin/Elements/UserTabs:52 +msgid "New user" +msgstr "Nuevo usuario" + +#: html/Admin/Elements/CreateUserCalled:26 +msgid "New user called" +msgstr "Nuevo usuario llamado" + +#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +msgid "New watchers" +msgstr "Nuevo observador" + +#: html/Admin/Users/Prefs.html:42 +msgid "New window setting" +msgstr "Establecer nueva ventana " + +#: html/Ticket/Elements/Tabs:69 +msgid "Next" +msgstr "Siguiente" + +#: html/Search/Listing.html:48 +msgid "Next page" +msgstr "Siguiente página" + +#: html/Admin/Elements/ModifyUser:50 +msgid "NickName" +msgstr "Alias" + +#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +msgid "Nickname" +msgstr "Alias" + +#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +msgid "No CustomField" +msgstr "No hay campo personalizable" + +#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +msgid "No Group defined" +msgstr "No hay grupo definido" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +msgid "No Queue defined" +msgstr "No hay cola definida" + +#: bin/rt-crontool:56 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "No se encontró el usuario. Por favor consulte al administrador.\\n" + +#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +msgid "No Template" +msgstr "No hay plantilla" + +#: bin/rt-commit-handler:764 +msgid "No Ticket specified. Aborting ticket " +msgstr "No se especificó el ticket. Abortada la transacción" + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "No se especificó ticket. Abortando las modificaciones al ticket\\n\\n" + +#: html/Approvals/Elements/Approve:47 +msgid "No action" +msgstr "No action" + +#: lib/RT/Interface/Web.pm:862 +msgid "No column specified" +msgstr "No se ha especificado ninguna columna" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "Comando no encontrado\\n" + +#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +msgid "No comment entered about this user" +msgstr "No hay comentarios sobre este usuario" + +#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +msgid "No correspondence attached" +msgstr "No hay ningún archivo adjunto" + +#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#. (ref $self) +msgid "No description for %1" +msgstr "No hay descripción para %1" + +#: lib/RT/Users_Overlay.pm:151 +msgid "No group specified" +msgstr "No hay grupo especificado" + +#: lib/RT/User_Overlay.pm:857 +msgid "No password set" +msgstr "No hay contraseña definida" + +#: lib/RT/Queue_Overlay.pm:259 +msgid "No permission to create queues" +msgstr "No tiene privilegios para crear colas" + +#: lib/RT/Ticket_Overlay.pm:341 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "No tiene privilegios para crear tickets en la cola '%1'" + +#: lib/RT/User_Overlay.pm:151 +msgid "No permission to create users" +msgstr "No tiene privilegios para crear usuarios" + +#: html/SelfService/Display.html:174 +msgid "No permission to display that ticket" +msgstr "No tiene privilegios para mostrar el ticket" + +#: html/SelfService/Update.html:55 +msgid "No permission to view update ticket" +msgstr "Sin permiso para ver la actualización del ticket" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +msgid "No principal specified" +msgstr "No hay un principal especificado" + +#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +msgid "No principals selected." +msgstr "No hay principales seleccionados" + +#: html/Admin/Queues/index.html:35 +msgid "No queues matching search criteria found." +msgstr "No hay colas que concuerden con los criterios de búsqueda" + +#: html/Admin/Elements/SelectRights:81 +msgid "No rights found" +msgstr "No se encontraron derechos" + +#: html/Admin/Elements/SelectRights:33 +msgid "No rights granted." +msgstr "Sin privilegios concedidos" + +#: html/Search/Bulk.html:149 +msgid "No search to operate on." +msgstr "No hay búsqueda sobre la que operar" + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "No se especificó el identificador del ticket" + +#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +msgid "No transaction type specified" +msgstr "No se especificó el tipo de transacción" + +#: NOT FOUND IN SOURCE +msgid "No user or email address specified" +msgstr "No se especificó email o usuario" + +#: html/Admin/Users/index.html:36 +msgid "No users matching search criteria found." +msgstr "No se encontraron usuarios que concuerden con los criterios de búsqueda" + +#: bin/rt-commit-handler:644 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "Usuario no encontrado. El manejador cvs está deshabilitado. Por favor consulte a su administrador.\\n" + +#: lib/RT/Interface/Web.pm:859 +msgid "No value sent to _Set!\\n" +msgstr "No se envió ningun valor a _Set!\\n" + +#: html/Search/Elements/TicketRow:37 +msgid "Nobody" +msgstr "Nadie" + +#: lib/RT/Interface/Web.pm:864 +msgid "Nonexistant field?" +msgstr "Campo no existente?" + +#: html/Elements/Login:99 +msgid "Not logged in" +msgstr "No autenticado" + +#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +msgid "Not logged in." +msgstr "No autenticado." + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "No establecido" + +#: html/NoAuth/Reminder.html:27 +msgid "Not yet implemented." +msgstr "No se ha implementado." + +#: html/Admin/Groups/Rights.html:25 +msgid "Not yet implemented...." +msgstr "No está implementado..." + +#: html/Approvals/Elements/Approve:50 +msgid "Notes" +msgstr "Notas" + +#: lib/RT/User_Overlay.pm:642 +msgid "Notification could not be sent" +msgstr "La notificación no se pudo enviar" + +#: etc/initialdata:94 +msgid "Notify AdminCcs" +msgstr "Notificar AdminCcs" + +#: etc/initialdata:90 +msgid "Notify AdminCcs as Comment" +msgstr "Notificar AdminCcs como comentario" + +#: etc/initialdata:121 +msgid "Notify Other Recipients" +msgstr "Notificar otros destinatarios" + +#: etc/initialdata:117 +msgid "Notify Other Recipients as Comment" +msgstr "Notificar otros destinatarios como comentario" + +#: etc/initialdata:86 +msgid "Notify Owner" +msgstr "Notificar al propietario" + +#: etc/initialdata:82 +msgid "Notify Owner as Comment" +msgstr "Notificar al propietario como comentario" + +#: etc/initialdata:313 etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "Notificar propietarios y AdminCcs de nuevos items pendientes de aprobación" + +#: etc/initialdata:78 +msgid "Notify Requestors" +msgstr "Notificar solicitantes" + +#: etc/initialdata:104 +msgid "Notify Requestors and Ccs" +msgstr "Notificar solicitantes y Ccs" + +#: etc/initialdata:99 +msgid "Notify Requestors and Ccs as Comment" +msgstr "Notificar solicitantes y Ccs como comentario" + +#: etc/initialdata:113 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "Notificar solicitantes, Ccs y AdminCcs" + +#: etc/initialdata:109 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "Notificar solicitantes, Ccs y AdminCcs como comentario" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "Nov." + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "Noviembre" + +#: lib/RT/Record.pm:157 +msgid "Object could not be created" +msgstr "No se pudo crear el objeto" + +#: lib/RT/Record.pm:176 +msgid "Object created" +msgstr "Objeto creado" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "Oct." + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "Octubre" + +#: html/Elements/SelectDateRelation:35 +msgid "On" +msgstr "en " + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "Al comentar" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "On Correspond" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "Al crear" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "Al cambiar de propietario" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "Al cambiar de cola" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "Al resolver" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "Al cambiar de status" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "Al hacer transaccion" + +#: html/Approvals/Elements/PendingMyApproval:50 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "Solo muestra aprobaciones para solicitudes creadas despues de %1" + +#: html/Approvals/Elements/PendingMyApproval:48 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "Solo muestra aprobaciones para solicitudes creadas antes de %1" + +#: html/Elements/Quicksearch:31 +msgid "Open" +msgstr "Abierto" + +#: html/Ticket/Elements/Tabs:136 +msgid "Open it" +msgstr "Abrirlo" + +#: html/SelfService/Elements/Tabs:57 +msgid "Open requests" +msgstr "Solicitudes abiertas" + +#: html/Admin/Users/Prefs.html:41 +msgid "Open tickets (from listing) in a new window" +msgstr "Tickets abiertos (del listado) en una nueva ventana" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in another window" +msgstr "Tickets abiertos (del listado) en otra ventana" + +#: etc/initialdata:133 +msgid "Open tickets on correspondence" +msgstr "Open tickets on correspondence" + +#: html/Search/Elements/PickRestriction:101 +msgid "Ordering and sorting" +msgstr "Ordenación y clasificación" + +#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +msgid "Organization" +msgstr "Organización" + +#: html/Approvals/Elements/Approve:34 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "Ticket originario: #%1" + +#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +msgid "Over time, priority moves toward" +msgstr "Pasada la fecha de gracia, la prioridad se mueve a" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Own tickets" +msgstr "Tickets poseidos" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "OwnTicket" +msgstr "OwnTicket" + +#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "Propietario" + +#: lib/RT/Ticket_Overlay.pm:3004 +#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +msgid "Owner changed from %1 to %2" +msgstr "Propietario cambiado de %1 a %2" + +#: lib/RT/Transaction_Overlay.pm:584 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Propietario cambiado forzosamente de %1 a %2" + +#: html/Search/Elements/PickRestriction:31 +msgid "Owner is" +msgstr "El propietario es" + +#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +msgid "Pager" +msgstr "Buscapersonas" + +#: html/Admin/Elements/ModifyUser:74 +msgid "PagerPhone" +msgstr "Buscapersonas Tel." + +#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +msgid "Parents" +msgstr "Padres" + +#: html/Elements/Login:43 html/User/Prefs.html:61 +msgid "Password" +msgstr "Contraseñaa" + +#: html/NoAuth/Reminder.html:25 +msgid "Password Reminder" +msgstr "Recordatorio de contraseña" + +#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +msgid "Password too short" +msgstr "Contraseña demasiado corta" + +#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "Contraseña: %1" + +#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +msgid "People" +msgstr "Personas" + +#: etc/initialdata:126 +msgid "Perform a user-defined action" +msgstr "Realizar una acion definida por el usuario" + +#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +msgid "Permission Denied" +msgstr "Permiso denegado" + +#: html/User/Elements/Tabs:35 +msgid "Personal Groups" +msgstr "Grupos personales" + +#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +msgid "Personal groups" +msgstr "Grupos personales" + +#: html/User/Elements/DelegateRights:37 +msgid "Personal groups:" +msgstr "Grupos personales:" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +msgid "Phone numbers" +msgstr "Números de teléfono" + +#: html/Admin/Users/Rights.html:25 +msgid "Placeholder" +msgstr "Placeholder" + +#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +msgid "Preferences" +msgstr "Preferencias" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "Prefs" + +#: lib/RT/Action/Generic.pm:160 +msgid "Prepare Stubbed" +msgstr "Preparación cortada" + +#: html/Ticket/Elements/Tabs:61 +msgid "Prev" +msgstr "Prev" + +#: html/Search/Listing.html:44 +msgid "Previous page" +msgstr "Página anterior" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "Pri" + +#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "No se encontró el principal %1" + +#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "Prioridad" + +#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +msgid "Priority starts at" +msgstr "La prioridad empieza en" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "Privilegiado" + +#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "Estado privilegiado: %1" + +#: html/Admin/Users/index.html:62 +msgid "Privileged users" +msgstr "Usuarios privilegiados:" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "Pseudogrupo para uso interno" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "Cola" + +#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#. ($Queue) +#. ($id) +msgid "Queue %1 not found" +msgstr "Cola %1 no encontrada" + +#: NOT FOUND IN SOURCE +msgid "Queue '%1' not found\\n" +msgstr "Cola '%1' no encontrada\\n" + +#: NOT FOUND IN SOURCE +msgid "Queue Keyword Selections" +msgstr "Selecciones de palabras clave de la cola" + +#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +msgid "Queue Name" +msgstr "Nombre de la cola" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "Acciones de la cola" + +#: lib/RT/Queue_Overlay.pm:263 +msgid "Queue already exists" +msgstr "La cola ya existe" + +#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +msgid "Queue could not be created" +msgstr "La cola no se pudo crear" + +#: html/Ticket/Create.html:209 +msgid "Queue could not be loaded." +msgstr "La cola no se pudo cargar" + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +msgid "Queue created" +msgstr "Cola creada" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "No se especifico ninguna cola" + +#: html/SelfService/Display.html:129 +msgid "Queue not found" +msgstr "Cola no encontrada" + +#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +msgid "Queues" +msgstr "Colas" + +#: html/Elements/Login:34 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "RT %1" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "RT %1 para %2" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "RT %1 de <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. Derechos reservados 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" + +#: html/Admin/index.html:25 html/Admin/index.html:26 +msgid "RT Administration" +msgstr "Administración del RT" + +#: NOT FOUND IN SOURCE +msgid "RT Authentication error." +msgstr "Error de autenticación en RT" + +#: NOT FOUND IN SOURCE +msgid "RT Bounce: %1" +msgstr "Rechazo del RT: %1" + +#: NOT FOUND IN SOURCE +msgid "RT Configuration error" +msgstr "Error de configuración del RT" + +#: NOT FOUND IN SOURCE +msgid "RT Critical error. Message not recorded!" +msgstr "Error crítico en RT. El mensaje no fue grabado!" + +#: html/Elements/Error:41 html/SelfService/Error.html:41 +msgid "RT Error" +msgstr "Error del RT" + +#: NOT FOUND IN SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "RT recibió correo (%1) de sí mismo." + +#: NOT FOUND IN SOURCE +msgid "RT Recieved mail (%1) from itself." +msgstr "RT recibió correo (%1) de sí mismo." + +#: html/SelfService/Closed.html:25 +msgid "RT Self Service / Closed Tickets" +msgstr "RT AutoServicio / Tickets cerrados" + +#: html/index.html:25 html/index.html:28 +msgid "RT at a glance" +msgstr "RT en un vistazo" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't authenticate you" +msgstr "RT no te pudo autenticar." + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find requestor via its external database lookup" +msgstr "RT no pudo encontrar el solicitante a través de una busqueda a la base de datos externa" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find the queue: %1" +msgstr "RT no pudo encontrar la cola: %1" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RT no pudo validar esta firma PGP. \\n" + +#: html/Elements/PageLayout:26 +#. ($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 "RT ha procesado tus comandos" + +#: html/Elements/Login:83 +#. ('2003') +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 es © Copyright 1996-%1 de Jesse Vincent <jesse@bestpractical.com>. Es distrbuido bajo <a href=\"http://www.gnu.org/copyleft/gpl.html\">la version 2 de la licencia GNU GPL (General Public License)</a>." + +#: NOT FOUND IN SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "RT cree que este mensaje puede ser un mensaje rebotado" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RT procesará este mensaje como si fuera uno no firmado\\n" + +#: 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 "El modo de comandos por correo de RT requiere autenticación PGP. Ya sea que no haya firmado su mensaje, o que su firma no pueda ser verificada." + +#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +msgid "Real Name" +msgstr "Nombre real" + +#: html/Admin/Elements/ModifyUser:48 +msgid "RealName" +msgstr "Nombre real" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +msgid "Referred to by" +msgstr "Referenciado por" + +#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +msgid "Refers to" +msgstr "Hace referencia a" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "RefersTo" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "Refinar" + +#: html/Search/Elements/PickRestriction:27 +msgid "Refine search" +msgstr "Refinar la búsqueda" + +#: html/Elements/Refresh:36 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "Refrescar esta página cada %1 minutos" + +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +msgid "Relationships" +msgstr "Relaciones" + +#: html/Search/Bulk.html:93 +msgid "Remove AdminCc" +msgstr "Quitar AdminCc" + +#: html/Search/Bulk.html:91 +msgid "Remove Cc" +msgstr "Quitar Cc" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "Quitar solicitante" + +#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +msgid "Reply" +msgstr "Responder" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Reply to tickets" +msgstr "Responder a los tickets" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "ReplyToTicket" +msgstr "ReplyToTicket" + +#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +msgid "Requestor" +msgstr "Solicitante" + +#: html/Search/Elements/PickRestriction:38 +msgid "Requestor email address" +msgstr "Dirección de correo del solicitante" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "Solicitante(s)" + +#: NOT FOUND IN SOURCE +msgid "RequestorAddresses" +msgstr "RequestorAddresses" + +#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +msgid "Requestors" +msgstr "Solicitantes" + +#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +msgid "Requests should be due in" +msgstr "Las solicitudes entran en vencimiento en" + +#: html/Elements/Submit:62 +msgid "Reset" +msgstr "Borrar" + +#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +msgid "Residence" +msgstr "Residencia" + +#: html/Ticket/Elements/Tabs:132 +msgid "Resolve" +msgstr "Resolver" + +#: html/Ticket/Update.html:133 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "Resolver ticket #%1 (%2)" + +#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +msgid "Resolved" +msgstr "Resuelto" + +#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +msgid "Response to requestors" +msgstr "Responder a los solicitantes" + +#: html/Elements/ListActions:26 +msgid "Results" +msgstr "Resultados" + +#: html/Search/Elements/PickRestriction:105 +msgid "Results per page" +msgstr "Resultados por página" + +#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +msgid "Retype Password" +msgstr "Confirmar contraseña" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "Privilegio %1 no encontrado para %2 %3 referente a %4 (%5)\\n" + +#: lib/RT/ACE_Overlay.pm:613 +msgid "Right Delegated" +msgstr "Privilegio delegado" + +#: lib/RT/ACE_Overlay.pm:303 +msgid "Right Granted" +msgstr "Privilegio otorgado" + +#: lib/RT/ACE_Overlay.pm:161 +msgid "Right Loaded" +msgstr "Privilegio cargado" + +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +msgid "Right could not be revoked" +msgstr "Privilegio no pudo ser revocado" + +#: html/User/Delegation.html:64 +msgid "Right not found" +msgstr "Privilegio no encontrado" + +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +msgid "Right not loaded." +msgstr "Privilegio no cargado" + +#: lib/RT/ACE_Overlay.pm:689 +msgid "Right revoked" +msgstr "Privilegio revocado" + +#: html/Admin/Elements/UserTabs:41 +msgid "Rights" +msgstr "Privilegios" + +#: lib/RT/Interface/Web.pm:758 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "No se pudieron conceder los privilegios a %1" + +#: lib/RT/Interface/Web.pm:791 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "No se pudieron revocar los privilegios de %1" + +#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "Roles" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "RootApproval" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "Sab." + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "Save Changes" +msgstr "Guardar Cambios" + +#: html/Ticket/ModifyLinks.html:39 +msgid "Save changes" +msgstr "Guardar cambios" + +#: html/Admin/Global/Scrip.html:49 +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "Scrip #%1" + +#: lib/RT/Scrip_Overlay.pm:176 +msgid "Scrip Created" +msgstr "Acción creada" + +#: html/Admin/Elements/EditScrips:84 +msgid "Scrip deleted" +msgstr "Acción borrada" + +#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +msgid "Scrips" +msgstr "Acciones" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "Acciones para %1\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "Acciones que se aplican a todas las colas" + +#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +msgid "Search" +msgstr "Búsqueda" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "Criterios de búsqueda" + +#: html/Approvals/Elements/PendingMyApproval:39 +msgid "Search for approvals" +msgstr "Buscar aprobaciones" + +#: bin/rt-crontool:188 +msgid "Security:" +msgstr "Seguridad:" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "SeeQueue" +msgstr "Ver cola" + +#: html/Admin/Groups/index.html:40 +msgid "Select a group" +msgstr "Seleccione un grupo" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "Seleccione una cola" + +#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +msgid "Select a user" +msgstr "Seleccione un usuario" + +#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +msgid "Select custom field" +msgstr "Seleccionar un campo personalizable" + +#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +msgid "Select group" +msgstr "Seleccionar grupo" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Select multiple values" +msgstr "Seleccionar valores múltiples" + +#: lib/RT/CustomField_Overlay.pm:352 +msgid "Select one value" +msgstr "Seleccionar un valor" + +#: html/Admin/Elements/QueueTabs:67 +msgid "Select queue" +msgstr "Seleccionar cola" + +#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +msgid "Select scrip" +msgstr "Seleccionar accion" + +#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +msgid "Select template" +msgstr "Selecionar plantilla" + +#: html/Admin/Elements/UserTabs:49 +msgid "Select user" +msgstr "Seleccionar usuario" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "SelectMultiple" +msgstr "SelectMultiple" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectSingle" +msgstr "SelectSingle" + +#: html/SelfService/index.html:25 +msgid "Self Service" +msgstr "Autoservicio" + +#: etc/initialdata:114 +msgid "Send mail to all watchers" +msgstr "Enviar mail a todos los observadores" + +#: etc/initialdata:110 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "Enviar mail a todos los observadores como comentario" + +#: etc/initialdata:105 +msgid "Send mail to requestors and Ccs" +msgstr "Enviar mail a los solicitantes y Ccs" + +#: etc/initialdata:100 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "Enviar mail a los solicitantes y Ccs como comentario" + +#: etc/initialdata:79 +msgid "Sends a message to the requestors" +msgstr "Envia un mesaje a los solicitantes" + +#: etc/initialdata:118 etc/initialdata:122 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "Enviar mail a los Ccs y Bccs listados explicitamente" + +#: etc/initialdata:95 +msgid "Sends mail to the administrative Ccs" +msgstr "Envia mail a los Ccs administrativos" + +#: etc/initialdata:91 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "Envia mail a los Ccs administrativos como comentario" + +#: etc/initialdata:83 etc/initialdata:87 +msgid "Sends mail to the owner" +msgstr "Enviar mail al propietario" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "Sep." + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "Septiembre" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "Mostrar resultados" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show approved requests" +msgstr "Mostrar peticiones aprobadas" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show basics" +msgstr "Mostrar lo básico" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show denied requests" +msgstr "Mostrar solicitudes denegadas" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show details" +msgstr "Mostrar detalles" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show pending requests" +msgstr "Mostrar solicitudes pendientes" + +#: html/Approvals/Elements/PendingMyApproval:46 +msgid "Show requests awaiting other approvals" +msgstr "Mostrar solicitudes esperando otras aprobaciones" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Show ticket private commentary" +msgstr "Mostrar ticket en un comentario privado" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "Show ticket summaries" +msgstr "Mostrar resumen del ticket" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ShowACL" +msgstr "ShowACL" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowScrips" +msgstr "ShowScrips" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ShowTemplate" +msgstr "ShowTemplate" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "ShowTicket" +msgstr "ShowTicket" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "ShowTicketComments" +msgstr "ShowTicketComments" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "Validarse como solicitante de ticket o ticket o cola Cc" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "Validarse como ticket o cola AdminCc" + +#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +msgid "Signature" +msgstr "Firma" + +#: html/SelfService/Elements/Header:52 +#. ($session{'CurrentUser'}->Name) +msgid "Signed in as %1" +msgstr "Validado como %1" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Single" +msgstr "Sencillo" + +#: html/Elements/Header:51 +msgid "Skip Menu" +msgstr "Saltar Menu" + +#: html/Admin/Elements/EditCustomFieldValues:31 +msgid "Sort key" +msgstr "Clave de ordenación" + +#: html/Search/Elements/PickRestriction:109 +msgid "Sort results by" +msgstr "Ordenar resultados por" + +#: html/Admin/Elements/AddCustomFieldValue:25 +msgid "SortOrder" +msgstr "Ordenamiento" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "Pendiente" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "Página de inicio" + +#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +msgid "Started" +msgstr "Empezado" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "La fecha de inicio '%1' no se pudo leer" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +msgid "Starts" +msgstr "Empieza" + +#: NOT FOUND IN SOURCE +msgid "Starts By" +msgstr "Empezado por" + +#: NOT FOUND IN SOURCE +msgid "Starts date '%1' could not be parsed" +msgstr "La fecha de inicio '%1' no se pudo ser leer" + +#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +msgid "State" +msgstr "Estado" + +#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "Estado" + +#: etc/initialdata:288 +msgid "Status Change" +msgstr "Cambio de status" + +#: lib/RT/Transaction_Overlay.pm:530 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "Estado cambiado de %1 a %2" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "StatusChange" + +#: html/Ticket/Elements/Tabs:147 +msgid "Steal" +msgstr "Robar" + +#: lib/RT/Transaction_Overlay.pm:589 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "Robado de %1" + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "Asunto" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "Asunto cambiado a %1" + +#: html/Elements/Submit:59 +msgid "Submit" +msgstr "Enviar" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "Submit Workflow" + +#: lib/RT/Group_Overlay.pm:749 +msgid "Succeeded" +msgstr "Completado" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "Dom." + +#: lib/RT/System.pm:54 +msgid "SuperUser" +msgstr "Superusuario" + +#: html/User/Elements/DelegateRights:77 +msgid "System" +msgstr "Sistema" + +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +msgid "System Error" +msgstr "Error del sistema" + +#: NOT FOUND IN SOURCE +msgid "System Error. Right not granted." +msgstr "Error de sistema. Derecho no concedido" + +#: NOT FOUND IN SOURCE +msgid "System Error. right not granted" +msgstr "Error de sistema. Derecho no concedido" + +#: lib/RT/ACE_Overlay.pm:616 +msgid "System error. Right not delegated." +msgstr "Error del sistema. Privilegio no delegado." + +#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +msgid "System error. Right not granted." +msgstr "Error del sistema. Privilegio no otorgado" + +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "Error de sistema. Incapaz de conceder permisos" + +#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +msgid "System groups" +msgstr "Grupos del sistema" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "SystemRolegroup for internal use" + +#: lib/RT/CurrentUser.pm:320 +msgid "TEST_STRING" +msgstr "TEST_STRING" + +#: html/Ticket/Elements/Tabs:143 +msgid "Take" +msgstr "Coger" + +#: lib/RT/Transaction_Overlay.pm:575 +msgid "Taken" +msgstr "Cogido" + +#: html/Admin/Elements/EditScrip:81 +msgid "Template" +msgstr "Plantilla" + +#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "Plantilla #%1" + +#: html/Admin/Elements/EditTemplates:89 +msgid "Template deleted" +msgstr "Plantilla borrada" + +#: lib/RT/Scrip_Overlay.pm:153 +msgid "Template not found" +msgstr "Plantilla no encontrada" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "Plantilla no encontrada\\n" + +#: lib/RT/Template_Overlay.pm:347 +msgid "Template parsed" +msgstr "Plantilla procesada" + +#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +msgid "Templates" +msgstr "Plantillas" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "Plantillas de %1\\n" + +#: lib/RT/Interface/Web.pm:858 +msgid "That is already the current value" +msgstr "Ese es el valor actual" + +#: lib/RT/CustomField_Overlay.pm:178 +msgid "That is not a value for this custom field" +msgstr "Ese no es un valor para este campo personalizable" + +#: lib/RT/Ticket_Overlay.pm:1886 +msgid "That is the same value" +msgstr "Este es el mismo valor" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "Ese principal ya es un %1 para esta cola" + +#: lib/RT/Ticket_Overlay.pm:1434 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "Ese principal ya es un %1 para este ticket" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Ese principal no es un %1 para esta cola" + +#: lib/RT/Ticket_Overlay.pm:1551 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "Ese principal no es un %1 para este ticket" + +#: lib/RT/Ticket_Overlay.pm:1882 +msgid "That queue does not exist" +msgstr "Esa cola no existe" + +#: lib/RT/Ticket_Overlay.pm:3143 +msgid "That ticket has unresolved dependencies" +msgstr "Ese ticket tiene dependencias sin resolver" + +#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +msgid "That user already has that right" +msgstr "Ese usuario ya tiene ese privilegio" + +#: lib/RT/Ticket_Overlay.pm:2952 +msgid "That user already owns that ticket" +msgstr "Ese usuario ya posee ese ticket" + +#: lib/RT/Ticket_Overlay.pm:2918 +msgid "That user does not exist" +msgstr "Ese usuario no existe" + +#: lib/RT/User_Overlay.pm:315 +msgid "That user is already privileged" +msgstr "Ese usuario ya tiene privilegios" + +#: lib/RT/User_Overlay.pm:332 +msgid "That user is already unprivileged" +msgstr "Ese usuario ya está sin privilegios" + +#: lib/RT/User_Overlay.pm:327 +msgid "That user is now privileged" +msgstr "Ese usuario ahora tiene privilegios" + +#: lib/RT/User_Overlay.pm:344 +msgid "That user is now unprivileged" +msgstr "Ese usuario ya no tiene privilegios" + +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "Este usuario ya no tiene privilegios" + +#: lib/RT/Ticket_Overlay.pm:2944 +msgid "That user may not own tickets in that queue" +msgstr "Ese usuario puede no poseer tickets en esa cola" + +#: lib/RT/Link_Overlay.pm:206 +msgid "That's not a numerical id" +msgstr "Ese no es un identificador numérico" + +#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +msgid "The Basics" +msgstr "Lo básico" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The CC of a ticket" +msgstr "El CC de un ticket" + +#: lib/RT/ACE_Overlay.pm:89 +msgid "The administrative CC of a ticket" +msgstr "El CC administrativo de un ticket" + +#: lib/RT/Ticket_Overlay.pm:2213 +msgid "The comment has been recorded" +msgstr "El comentario ha sido grabado" + +#: bin/rt-crontool:198 +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 "El siguiente comando encontrará todos los tickets activos en la cola 'general' y pondra su prioridad a 99 si no han sido tocados en 4 horas:" + +#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "Los siguientes comandos no han sido procesados:\\n\\n" + +#: lib/RT/Interface/Web.pm:861 +msgid "The new value has been set." +msgstr "Ha sido establecido el nuevo valor" + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The owner of a ticket" +msgstr "El propietario de un ticket" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The requestor of a ticket" +msgstr "El solicitante de un ticket" + +#: html/Admin/Elements/EditUserComments:26 +msgid "These comments aren't generally visible to the user" +msgstr "Estos comentarios generalmente no están visibles para el usuario" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "Este ticket %1 %2 (%3)" + +#: bin/rt-crontool:189 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "Esta herramiento permite al usuario ejectutar modulos perl arbitrarios desde dentro de RT" + +#: lib/RT/Transaction_Overlay.pm:253 +msgid "This transaction appears to have no content" +msgstr "Parece que esta transacción no tiene contenido" + +#: html/Ticket/Elements/ShowRequestor:47 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "Los %1 tickets de mayor prioridad de este usuario" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "Los 25 casos de mayor prioridad de este usuario" + +#: lib/RT/Date.pm:391 +msgid "Thu." +msgstr "Jue." + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 %2" +msgstr "Ticket # %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 Jumbo update: %2" +msgstr "Actualizacion Jumbo para el ticket # %1: %2" + +#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "Actualización Jumbo para el ticket #%1: %2" + +#: html/Approvals/Elements/ShowDependency:46 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "Ticket #%1: %2" + +#: lib/RT/Ticket_Overlay.pm:608 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "Ticket %1 creado en la cola '%2'" + +#: bin/rt-commit-handler:760 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "Ticket %1 cargado\\n" + +#: html/Search/Bulk.html:181 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "Ticket %1: %2" + +#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "Historial del ticket # %1 %2" + +#: html/SelfService/Display.html:34 +msgid "Ticket Id" +msgstr "Id del ticket:" + +#: etc/initialdata:303 +msgid "Ticket Resolved" +msgstr "Ticket resuelto" + +#: html/Search/Elements/PickRestriction:63 +msgid "Ticket attachment" +msgstr "Archivos adjuntos del ticket" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "Contenido del ticket" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "Tipo de contenido del ticket" + +#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +msgid "Ticket could not be created due to an internal error" +msgstr "No se pudo crear el ticket debido a un error interno" + +#: lib/RT/Transaction_Overlay.pm:522 +msgid "Ticket created" +msgstr "Ticket creado" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "Creación del ticket fallida" + +#: lib/RT/Transaction_Overlay.pm:527 +msgid "Ticket deleted" +msgstr "Ticket borrado" + +#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +msgid "Ticket id not found" +msgstr "Id de ticket no encontrada" + +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "Ticket matado" + +#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +msgid "Ticket not found" +msgstr "Ticket no encontrado" + +#: etc/initialdata:289 +msgid "Ticket status changed" +msgstr "Estado del ticket cambiado" + +#: html/Ticket/Update.html:39 +msgid "Ticket watchers" +msgstr "Observadores del ticket" + +#: html/Elements/Tabs:49 +msgid "Tickets" +msgstr "Tickets" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "Tickets %1 %2" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "Tickets %1 por %2" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Tickets from %1" +msgstr "Tickets de %1" + +#: html/Approvals/Elements/ShowDependency:27 +msgid "Tickets which depend on this approval:" +msgstr "Tickets que dependen de esta aprobación:" + +#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +msgid "Time Left" +msgstr "Tiempo Restante" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +msgid "Time Worked" +msgstr "Tiempo Trabajado" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "Tiempo restante" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "Tiempo para mostrar" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "Tiempo trabajado" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "TimeLeft" + +#: lib/RT/Ticket_Overlay.pm:1165 +msgid "TimeWorked" +msgstr "TimeWorked" + +#: bin/rt-commit-handler:402 +msgid "To generate a diff of this commit:" +msgstr "Para generar una comparación de este cometido:" + +#: bin/rt-commit-handler:391 +msgid "To generate a diff of this commit:\\n" +msgstr "Para generar una comparación de este cometido:\\n" + +#: lib/RT/Ticket_Overlay.pm:1168 +msgid "Told" +msgstr "Última actualización" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "Transacción" + +#: lib/RT/Transaction_Overlay.pm:642 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "Transacción %1 limpiada" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "Transacción creada" + +#: lib/RT/Transaction_Overlay.pm:89 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "Transaction->Create no pudo, ya no no especificó un ID de ticket" + +#: lib/RT/Transaction_Overlay.pm:701 +msgid "Transactions are immutable" +msgstr "Las transacciones son inmutables" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "Intentando borrar el privilegio: %1" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "Mar." + +#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "Tipo" + +#: lib/RT/ScripCondition_Overlay.pm:104 +msgid "Unimplemented" +msgstr "No implementado" + +#: html/Admin/Users/Modify.html:68 +msgid "Unix login" +msgstr "Usuario en Unix" + +#: html/Admin/Elements/ModifyUser:62 +msgid "UnixUsername" +msgstr "Usuario en Unix" + +#: lib/RT/Attachment_Overlay.pm:265 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "Codificación de contenido desconocida: %1" + +#: html/Elements/SelectResultsPerPage:37 +msgid "Unlimited" +msgstr "Ilimitado" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "No privilegiado" + +#: lib/RT/Transaction_Overlay.pm:571 +msgid "Untaken" +msgstr "No cogido" + +#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +msgid "Update" +msgstr "Actualizar" + +#: html/Admin/Users/Prefs.html:62 +msgid "Update ID" +msgstr "Id de actualización" + +#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +msgid "Update Type" +msgstr "Tipo de actualización" + +#: html/Search/Listing.html:61 +msgid "Update all these tickets at once" +msgstr "Actualizar todos estos casos al mismo tiempo" + +#: html/Admin/Users/Prefs.html:49 +msgid "Update email" +msgstr "Actualizar correo" + +#: html/Admin/Users/Prefs.html:55 +msgid "Update name" +msgstr "Actualizar nombre" + +#: lib/RT/Interface/Web.pm:375 +msgid "Update not recorded." +msgstr "Actualización no grabada." + +#: html/Search/Bulk.html:81 +msgid "Update selected tickets" +msgstr "Actualizar tickets seleccionados" + +#: html/Admin/Users/Prefs.html:36 +msgid "Update signature" +msgstr "Actualizar firma" + +#: html/Ticket/ModifyAll.html:63 +msgid "Update ticket" +msgstr "Actualizar ticket" + +#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 +#. ($Ticket->id) +msgid "Update ticket # %1" +msgstr "Actualización de ticket # %1" + +#: html/SelfService/Update.html:50 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Actualizar ticket #%1" + +#: html/Ticket/Update.html:135 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "Actualizar ticket #%1 (%2)" + +#: lib/RT/Interface/Web.pm:373 +msgid "Update type was neither correspondence nor comment." +msgstr "El tipo de actualización no fue ni respuesta ni comentario" + +#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +msgid "Updated" +msgstr "Actualizado" + +#: NOT FOUND IN SOURCE +msgid "User %1 %2: %3\\n" +msgstr "Usuario %1 %2: %3\\n" + +#: NOT FOUND IN SOURCE +msgid "User %1 Password: %2\\n" +msgstr "Usuario %1 Contraseña: %2\\n" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found" +msgstr "Usuario '%1' no encontrado" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found\\n" +msgstr "Usuario '%1' no encontrado\\n" + +#: etc/initialdata:125 etc/initialdata:191 +msgid "User Defined" +msgstr "Definido por el usuario" + +#: html/Admin/Users/Prefs.html:59 +msgid "User ID" +msgstr "ID de usuario" + +#: html/Elements/SelectUsers:26 +msgid "User Id" +msgstr "Id de usuario" + +#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +msgid "User Rights" +msgstr "Privilegios de usuario" + +#: html/Admin/Users/Modify.html:226 +#. ($msg) +msgid "User could not be created: %1" +msgstr "El usuario no pudo ser creado: %1" + +#: lib/RT/User_Overlay.pm:262 +msgid "User created" +msgstr "Usuario creado" + +#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "Grupos definidos por el usuario" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "Usuario notificado" + +#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +msgid "User view" +msgstr "Vista de usuario" + +#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +msgid "Username" +msgstr "Nombre de usuario" + +#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +msgid "Users" +msgstr "Usuarios" + +#: html/Admin/Users/index.html:65 +msgid "Users matching search criteria" +msgstr "Usuarios que concuerdan con los criterios de búsqueda" + +#: html/Search/Elements/PickRestriction:51 +msgid "ValueOfQueue" +msgstr "Valor de la cola" + +#: html/Admin/Elements/EditCustomField:40 +msgid "Values" +msgstr "Valores" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Watch" +msgstr "Observar" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "WatchAsAdminCc" +msgstr "WatchAsAdminCc" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "Observador cargado" + +#: html/Admin/Elements/QueueTabs:42 +msgid "Watchers" +msgstr "Observadores" + +#: html/Admin/Elements/ModifyUser:56 +msgid "WebEncoding" +msgstr "Codificación de Web" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "Mie." + +#: etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "Cuando un ticket ha sido aprobado por todos los aprobadores, añadir correspondencia al ticket original" + +#: etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "Cuando un ticket ha sido aprobado por cualquier aprobador, añadir correspondencia al ticket original" + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "Cuando un ticket se crea" + +#: etc/upgrade/2.1.71:79 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "Cuando una aprobacion de ticket se crea, notifica al propietario y AdminCC del item que espera su aprobación" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "Cuando pasa cualquier cosa" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "Siempre que un ticket este sin resolver" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "Siempre que el propietario de un ticket cambie" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "Siempre que la cola de un ticket cambie" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "Siempre que el estado de un ticket cambie" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "Siempre que ocurra una condicion definida por el usuario" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "Siempre que venga algun comentario" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "Siempre que venga correspondencia" + +#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +msgid "Work" +msgstr "Trabajo" + +#: html/Admin/Elements/ModifyUser:70 +msgid "WorkPhone" +msgstr "Tel Trabajo" + +#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +msgid "Worked" +msgstr "Trabajado" + +#: lib/RT/Ticket_Overlay.pm:3056 +msgid "You already own this ticket" +msgstr "Usted ya es propietario de este caso" + +#: html/autohandler:121 +msgid "You are not an authorized user" +msgstr "Usted no es un usuario autorizado" + +#: lib/RT/Ticket_Overlay.pm:2930 +msgid "You can only reassign tickets that you own or that are unowned" +msgstr "Usted solo puede reasignar casos que posee o que no posee nadie³" + +#: NOT FOUND IN SOURCE +msgid "You don't have permission to view that ticket.\\n" +msgstr "No tiene permiso para ver ese ticket.\\n" + +#: docs/design_docs/string-extraction-guide.txt:47 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "Usted encontró %1 casos en la cola %2" + +#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +msgid "You have been logged out of RT." +msgstr "Se ha desconectado del sistema RT" + +#: html/SelfService/Display.html:134 +msgid "You have no permission to create tickets in that queue." +msgstr "No tiene permiso para crear tickets en esa cola." + +#: lib/RT/Ticket_Overlay.pm:1895 +msgid "You may not create requests in that queue." +msgstr "No puede crear solicitudes en esa cola." + +#: html/NoAuth/Logout.html:36 +msgid "You're welcome to login again" +msgstr "Es bienvenido a regresar en cualquier momento." + +#: html/SelfService/Elements/MyRequests:25 +#. ($friendly_status) +msgid "Your %1 requests" +msgstr "Sus solicitudes %1" + +#: NOT FOUND IN SOURCE +msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "Su administrador del RT ha desconfigurado el alias de correo que invoca el RT" + +#: etc/initialdata:429 etc/upgrade/2.1.71:146 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "Su petición ha sido aprobada por %1. Otras aprobaciones pueden estar pendientes todavia" + +#: etc/initialdata:463 etc/upgrade/2.1.71:180 +msgid "Your request has been approved." +msgstr "Su peticion ha sido aprobada." + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "Su petición ha sido rechazada" + +#: etc/initialdata:384 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "Su petición ha sido rechazada" + +#: html/autohandler:136 html/autohandler:142 +msgid "Your username or password is incorrect" +msgstr "Nombre o contraseña de usuario incorrectos" + +#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +msgid "Zip" +msgstr "Zip" + +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "[sin asunto]" + +#: html/User/Elements/DelegateRights:59 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "como priviligiado para %1" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +msgid "contains" +msgstr "contiene" + +#: html/Elements/SelectAttachmentField:26 +msgid "content" +msgstr "contenido" + +#: html/Elements/SelectAttachmentField:27 +msgid "content-type" +msgstr "content-type" + +#: lib/RT/Ticket_Overlay.pm:2282 +msgid "correspondence (probably) not sent" +msgstr "Respuesta (probablemente) no enviada" + +#: lib/RT/Ticket_Overlay.pm:2292 +msgid "correspondence sent" +msgstr "Correspondencia enviada" + +#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +msgid "days" +msgstr "días" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "muerto" + +#: html/Search/Listing.html:75 +msgid "delete" +msgstr "borrar" + +#: lib/RT/Queue_Overlay.pm:63 +msgid "deleted" +msgstr "borrado" + +#: html/Search/Elements/PickRestriction:68 +msgid "does not match" +msgstr "no coincide" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +msgid "doesn't contain" +msgstr "no contiene" + +#: html/Elements/SelectEqualityOperator:38 +msgid "equal to" +msgstr "igual a" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "falso" + +#: html/Elements/SelectAttachmentField:28 +msgid "filename" +msgstr "nombre de archivo" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "greater than" +msgstr "mayor que" + +#: lib/RT/Group_Overlay.pm:194 +#. ($self->Name) +msgid "group '%1'" +msgstr "grupo '%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "horas" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "id" + +#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "is" +msgstr "es" + +#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +msgid "isn't" +msgstr "no es" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "less than" +msgstr "menor que" + +#: html/Search/Elements/PickRestriction:67 +msgid "matches" +msgstr "contiene" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "min" + +#: html/Ticket/Update.html:66 +msgid "minutes" +msgstr "minutos" + +#: bin/rt-commit-handler:765 +msgid "modifications\\n\\n" +msgstr "modificaciones\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "meses" + +#: lib/RT/Queue_Overlay.pm:58 +msgid "new" +msgstr "nuevo" + +#: html/Admin/Elements/EditScrips:43 +msgid "no value" +msgstr "sin valor" + +#: html/Ticket/Elements/EditWatchers:28 +msgid "none" +msgstr "ninguno" + +#: html/Elements/SelectEqualityOperator:38 +msgid "not equal to" +msgstr "no igual a" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "notlike" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "open" +msgstr "abierto" + +#: lib/RT/Group_Overlay.pm:199 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "grupo personal '%1' para usuario '%2'" + +#: lib/RT/Group_Overlay.pm:207 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "Cola %1 %2" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "rejected" +msgstr "rechazado" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "resolved" +msgstr "resuelto" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "sec" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "stalled" +msgstr "pendiente" + +#: lib/RT/Group_Overlay.pm:202 +#. ($self->Type) +msgid "system %1" +msgstr "sistema %1" + +#: lib/RT/Group_Overlay.pm:213 +#. ($self->Type) +msgid "system group '%1'" +msgstr "grupo del sistema '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:42 +msgid "the calling component did not specify why" +msgstr "el componente que llama no especifica por qué" + +#: lib/RT/Group_Overlay.pm:210 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "ticket #%1 %2" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "verdadero" + +#: lib/RT/Group_Overlay.pm:216 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "grupo sin descripción %1" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "grupo sin descripción %1" + +#: lib/RT/Group_Overlay.pm:191 +#. ($user->Object->Name) +msgid "user %1" +msgstr "usuario %1" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "semanas" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "con plantilla %1" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "años" + diff --git a/rt/lib/RT/I18N/fi.po b/rt/lib/RT/I18N/fi.po new file mode 100644 index 000000000..ee1ad71f9 --- /dev/null +++ b/rt/lib/RT/I18N/fi.po @@ -0,0 +1,4750 @@ +# Finnish localization catalog for Request Tracker (RT) +# First Author: Janne Pirkkanen <jp@oppipoika.net>, Jul 2002 +msgid "" +msgstr "" +"Project-Id-Version: RT 2.1.x\n" +"POT-Creation-Date: 2002-07-08 17:41+0200\n" +"PO-Revision-Date: 2002-07-09 18:09+0200\n" +"Last-Translator: Janne Pirkkanen <jp@oppipoika.net>\n" +"Language-Team: Finnish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +msgid "#" +msgstr "" + +#: html/Admin/Queues/Scrip.html:55 +#. ($QueueObj->id) +msgid "#%1" +msgstr "" + +#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 +#. ($Ticket->Id, $Ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +msgid "%1 %2 %3" +msgstr "" + +#: 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 %3.%2 %7 %4:%5:%6" + +#: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1: %2 muutettu arvoon %3" + +#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "" + +#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 with template %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "%1 (%2) %3 tässä työpyynnössä\\n" + +#: html/Search/Listing.html:57 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "" + +#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "" + +#: bin/rt-crontool:185 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "" + +#: bin/rt-crontool:179 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "" + +#: bin/rt-crontool:173 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "" + +#: bin/rt-crontool:166 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "" + +#: lib/RT/ScripAction_Overlay.pm:122 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "ScriptAction %1 ladattu" + +#: lib/RT/Ticket_Overlay.pm:3471 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "%1 lisätty arvoksi %2lle" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on" +msgstr "%1 aliakset vaativat työpyynnön id:n" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on " +msgstr "%1 aliakset vaativat työpyynnön id:n " + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on (from %2) %3" +msgstr "%1 aliakset vaativat työpyynnön id:n (osoite %2) %3" + +#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#. ($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:52 lib/RT/Transaction_Overlay.pm:483 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 - %2" + +#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#. ($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 muutettu arvosta %2 arvoon %3" + +#: lib/RT/Interface/Web.pm:857 +msgid "%1 could not be set to %2." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "%1 ei voinut suorittaa toimintoa (%2)\\n" + +#: lib/RT/Ticket_Overlay.pm:2813 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 ei voinut asettaa tilan arvoa päätetyksi. RT:n tietokanta saattaa olla vioittunut." + +#: html/Elements/MyTickets:25 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "" + +#: bin/rt-crontool:161 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "" + +#: lib/RT/Queue_Overlay.pm:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 ei ole enää %2 tälle työjonolle" + +#: lib/RT/Ticket_Overlay.pm:1570 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 ei ole enää %2 tälle työpyynnölle" + +#: lib/RT/Ticket_Overlay.pm:3527 +#. ($args{'Value'}, $cf->Name) +msgid "%1 is no longer a value for custom field %2" +msgstr "%1 ei ole enää kentän %2 arvo" + +#: NOT FOUND IN SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "%1 ei ole kelvollinen työjonon id" + +#: html/Ticket/Elements/ShowBasics:36 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 min" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "%1 ei näy" + +#: html/User/Elements/DelegateRights:76 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "%1 onnistui\\n" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "%1 tyyppi tuntematon viestille $MessageId" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "%1 tyyppi tuntematon viestille %2" + +#: NOT FOUND IN SOURCE +msgid "%1 was created without a CurrentUser\\n" +msgstr "" + +#: lib/RT/Action/ResolveMembers.pm:42 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 päättää kaikki päätetyt työpyynnöt -ryhmän työpyynnöt." + +#: NOT FOUND IN SOURCE +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "%1 jäädyttää [paikallisen] BASE jos se riippuu linkitetystä työpyynnöstä [tai on sen jäsen]." + +#: lib/RT/Transaction_Overlay.pm:435 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: liitetiedostoa ei ole määritelty" + +#: html/Ticket/Elements/ShowTransaction:102 +#. ($size) +msgid "%1b" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:99 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1140 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "'%1' ei kelpaa tilan arvoksi" + +#: NOT FOUND IN SOURCE +msgid "'%1' not a recognized action. " +msgstr "'%1' ei ole tunnettu tapahtuma." + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete group member)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete scrip)" +msgstr "(Rastita laatikko poistaaksesi skriptin)" + +#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +msgid "(Check box to delete)" +msgstr "(Rastita laatikko poistaaksesi)" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "" + +#: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Syötä työpyynnön numerot tai www-osoitteet, välilyönneillä erotettuina)" + +#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#. ($RT::CorrespondAddress) +#. ($RT::CommentAddress) +msgid "(If left blank, will default to %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +msgid "(No custom fields)" +msgstr "" + +#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +msgid "(No members)" +msgstr "(Ei jäseniä)" + +#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +msgid "(No scrips)" +msgstr "(Ei skriptejä)" + +#: html/Admin/Elements/EditTemplates:31 +msgid "(No templates)" +msgstr "" + +#: html/Ticket/Update.html:85 +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 "" + +#: 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 "(Lähettää piilokopion tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei muuta</b> jatkossa tehtävien lähetysten kohteita.)" + +#: html/Ticket/Create.html:79 +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 "" + +#: html/Ticket/Update.html:81 +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 "" + +#: 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 "(Lähettää kopion tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei muuta</b> jatkossa tehtävien lähetysten kohteita.)" + +#: html/Ticket/Create.html:69 +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 "" + +#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +msgid "(empty)" +msgstr "(tyhjä)" + +#: html/Admin/Users/index.html:39 +msgid "(no name listed)" +msgstr "" + +#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +msgid "(no subject)" +msgstr "(ei otsikkoa)" + +#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +msgid "(no value)" +msgstr "(ei arvoa)" + +#: html/Ticket/Elements/EditLinks:116 +msgid "(only one ticket)" +msgstr "(vain yksi työpyyntö)" + +#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +msgid "(pending approval)" +msgstr "" + +#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +msgid "(pending other tickets)" +msgstr "" + +#: html/Admin/Users/Modify.html:50 +msgid "(required)" +msgstr "(pakollinen)" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "(untitled)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "25 omistamaani korkeimpien prioriteettien työpyyntöä..." + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "25 tilaamaani korkeimman prioriteetin työpyyntöä..." + +#: html/Ticket/Elements/ShowBasics:32 +msgid "<% $Ticket->Status%>" +msgstr "" + +#: html/Elements/SelectTicketTypes:27 +msgid "<% $_ %>" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"Uusi työpyyntö\"> %1" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Loaded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be found" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +msgid "ACE not found" +msgstr "ACE ei löytynyt" + +#: lib/RT/ACE_Overlay.pm:831 +msgid "ACEs can only be created and deleted." +msgstr "ACE:ja voi vain luoda ja poistaa." + +#: bin/rt-commit-handler:755 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Poistuminen ei-tarkoitettujen työpyyntömuutosten välttämiseksi.\\n" + +#: html/User/Elements/Tabs:32 +msgid "About me" +msgstr "" + +#: html/Admin/Users/Modify.html:80 +msgid "Access control" +msgstr "Pääsynvalvonta" + +#: html/Admin/Elements/EditScrip:57 +msgid "Action" +msgstr "Tapahtuma" + +#: lib/RT/Scrip_Overlay.pm:147 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "Tapahtumaa %1 ei löydetty" + +#: bin/rt-crontool:123 +msgid "Action committed." +msgstr "" + +#: bin/rt-crontool:119 +msgid "Action prepared..." +msgstr "" + +#: html/Search/Bulk.html:92 +msgid "Add AdminCc" +msgstr "Lisää kopio ylläpidolle" + +#: html/Search/Bulk.html:90 +msgid "Add Cc" +msgstr "Lisää kopio" + +#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +msgid "Add More Files" +msgstr "" + +#: html/Search/Bulk.html:88 +msgid "Add Requestor" +msgstr "Lisää tilaaja" + +#: 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 "Lisää uusi globaali lappu" + +#: NOT FOUND IN SOURCE +msgid "Add a scrip to this queue" +msgstr "Lisää lappu tälle työjonolle" + +#: html/Admin/Global/Scrip.html:55 +msgid "Add a scrip which will apply to all queues" +msgstr "Lisää kaikille työjonoille yhteinen lappu" + +#: html/Search/Bulk.html:118 +msgid "Add comments or replies to selected tickets" +msgstr "Lisää kommentteja tai vastauksia valituille työpyynnöille" + +#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +msgid "Add members" +msgstr "Lisää jäsenä" + +#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +msgid "Add new watchers" +msgstr "Lisää uusia tarkkailijoita" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "Lisätty toimeksiantaja %1:ksi tähän työjonoon" + +#: lib/RT/Ticket_Overlay.pm:1454 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "Lisätty toimeksiantaja %1:ksi tälle työpyynnölle" + +#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +msgid "Address1" +msgstr "Osoite1" + +#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +msgid "Address2" +msgstr "Osoite2" + +#: html/Ticket/Create.html:74 +msgid "Admin Cc" +msgstr "Kopio ylläpidolle" + +#: etc/initialdata:274 +msgid "Admin Comment" +msgstr "" + +#: etc/initialdata:256 +msgid "Admin Correspondence" +msgstr "" + +#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +msgid "Admin queues" +msgstr "Työjonojen ylläpito" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "Käyttäjien ylläpito" + +#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +msgid "Admin/Global configuration" +msgstr "Ylläpito/Globaalit asetukset" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "Ylläpito/Ryhmät" + +#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +msgid "Admin/Queue/Basics" +msgstr "Ylläpito/Työjono/Perustiedot" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +msgid "AdminCc" +msgstr "Kopio ylläpidolle" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "AdminCustomFields" +msgstr "" + +#: lib/RT/Group_Overlay.pm:146 +msgid "AdminGroup" +msgstr "" + +#: lib/RT/Group_Overlay.pm:148 +msgid "AdminGroupMembership" +msgstr "" + +#: lib/RT/System.pm:59 +msgid "AdminOwnPersonalGroups" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "AdminQueue" +msgstr "" + +#: lib/RT/System.pm:60 +msgid "AdminUsers" +msgstr "" + +#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +msgid "Administrative Cc" +msgstr "Kopio ylläpidolle" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "Tarkennettu haku" + +#: html/Elements/SelectDateRelation:36 +msgid "After" +msgstr "Jälkeen" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:96 +msgid "All Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:53 +msgid "All Queues" +msgstr "Kaikki työjonot" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "" + +#: html/Elements/Tabs:58 +msgid "Approval" +msgstr "" + +#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#. ($Ticket->Id, $Ticket->Subject) +#. ($ticket->id, $msg) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Approval #%1: %2" +msgstr "" + +#: html/Approvals/index.html:54 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "" + +#: html/Approvals/index.html:52 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "" + +#: html/Approvals/Elements/Approve:45 +msgid "Approve" +msgstr "" + +#: etc/initialdata:431 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "Huhti" + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "" + +#: html/Elements/SelectSortOrder:35 +msgid "Ascending" +msgstr "Nouseva" + +#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +msgid "Attach" +msgstr "Liitä" + +#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +msgid "Attach file" +msgstr "Liitä tiedosto" + +#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +msgid "Attached file" +msgstr "" + +#: html/SelfService/Attachment/dhandler:36 +msgid "Attachment '%1' could not be loaded" +msgstr "Liitteen '%1' lataaminen ei onnistunut" + +#: lib/RT/Transaction_Overlay.pm:443 +msgid "Attachment created" +msgstr "Liitetiedosto luotu" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "Liitetiedoston nimi" + +#: html/Ticket/Elements/ShowAttachments:26 +msgid "Attachments" +msgstr "Liitetiedostot" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "Elo" + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "" + +#: html/Admin/Elements/ModifyUser:66 +msgid "AuthSystem" +msgstr "" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "Virheellinen PGP allekirjoitus: %1\\n" + +#: html/SelfService/Attachment/dhandler:40 +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "Virheellinen liitteen numero. Liitetiedostoa '%1' ei löytynyt\\n" + +#: bin/rt-commit-handler:827 +#. ($val) +msgid "Bad data in %1" +msgstr "Virheellistä dataa kentässä %1" + +#: html/SelfService/Attachment/dhandler:43 +#. ($trans, $AttachmentObj->TransactionId()) +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "Virheellinen toiminnon numero liitetiedostolle. %1 pitäisi olla %2\\n" + +#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +msgid "Basics" +msgstr "Perustiedot" + +#: html/Ticket/Update.html:83 +msgid "Bcc" +msgstr "Piilokopio" + +#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +msgid "Be sure to save your changes" +msgstr "Muista tallentaa muutokset" + +#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +msgid "Before" +msgstr "Ennen" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "" + +#: html/Search/Listing.html:79 +msgid "Bookmarkable URL for this search" +msgstr "Osoite tähän kyselyyn (selaimen kirjanmerkkeihin)" + +#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +msgid "Brief headers" +msgstr "Lyhyet otsikot" + +#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +msgid "Bulk ticket update" +msgstr "Työpyyntöjen ryhmäpäivitys" + +#: lib/RT/User_Overlay.pm:1331 +msgid "Can not modify system users" +msgstr "Systeemikäyttäjien muokkaus ei ole sallittua" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Can this principal see this queue" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:144 +msgid "Can't add a custom field value without a name" +msgstr "Kentän lisääminen ilman nimeä ei onnistu" + +#: lib/RT/Link_Overlay.pm:132 +msgid "Can't link a ticket to itself" +msgstr "Työpyyntöä ei voi linkittää itseensä" + +#: lib/RT/Ticket_Overlay.pm:2787 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "Et voi yhdistää jo yhdistettyyn työpyyntöön. Sinun ei pitäisi saada tätä virhettä koskaan." + +#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +msgid "Can't specifiy both base and target" +msgstr "Sekä basen ja kohteen määritteleminen samalla ei ole mahdollista" + +#: html/autohandler:112 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "Käyttäjää ei voitu luoda: %1" + +#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +msgid "Cc" +msgstr "Kopio" + +#: html/SelfService/Prefs.html:31 +msgid "Change password" +msgstr "Muuta salasana" + +#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +msgid "Check box to delete" +msgstr "" + +#: html/Admin/Elements/SelectRights:31 +msgid "Check box to revoke right" +msgstr "Valitse laatikko poistaaksesi oikeuden" + +#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +msgid "Children" +msgstr "Lapsi" + +#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +msgid "City" +msgstr "Kaupunki" + +#: html/Ticket/Elements/ShowDates:47 +msgid "Closed" +msgstr "" + +#: html/SelfService/Elements/Tabs:60 +msgid "Closed requests" +msgstr "Suljetut työpyynnöt" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "Komentoa ei ymmärretty!\\n" + +#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +msgid "Comment" +msgstr "Kommentoi" + +#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +msgid "Comment Address" +msgstr "Kommenttien osoite" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "Kommenttia ei tallennettu" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Comment on tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "CommentOnTicket" +msgstr "" + +#: html/Admin/Elements/ModifyUser:35 +msgid "Comments" +msgstr "Kommentit" + +#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +msgid "Comments (Not sent to requestors)" +msgstr "Kommentit (Ei lähetetä tilaajille)" + +#: html/Search/Bulk.html:122 +msgid "Comments (not sent to requestors)" +msgstr "Kommentit (Ei lähetetä tilaajille)" + +#: html/Elements/ViewUser:27 +#. ($name) +msgid "Comments about %1" +msgstr "Kommentit kohteesta %1" + +#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +msgid "Comments about this user" +msgstr "Kommentit tästä käyttäjästä" + +#: lib/RT/Transaction_Overlay.pm:545 +msgid "Comments added" +msgstr "Kommentit lisätty" + +#: lib/RT/Action/Generic.pm:140 +msgid "Commit Stubbed" +msgstr "Suorita tumppi" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "Kokoa rajoitukset" + +#: html/Admin/Elements/EditScrip:41 +msgid "Condition" +msgstr "Ehto" + +#: bin/rt-crontool:109 +msgid "Condition matches..." +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:160 +msgid "Condition not found" +msgstr "Ehtoa ei löydetty" + +#: html/Elements/Tabs:52 +msgid "Configuration" +msgstr "Ylläpito" + +#: html/SelfService/Prefs.html:33 +msgid "Confirm" +msgstr "Varmista" + +#: html/Admin/Elements/ModifyUser:60 +msgid "ContactInfoSystem" +msgstr "Kontaktitietojärjestelmä" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "Järjestelmä ei ymmärrä päivää '%1'" + +#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +msgid "Content" +msgstr "Sisältö" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "" + +#: etc/initialdata:266 +msgid "Correspondence" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +msgid "Correspondence Address" +msgstr "Kirjeenvaihdon osoite" + +#: lib/RT/Transaction_Overlay.pm:541 +msgid "Correspondence added" +msgstr "Kirjeenvaihto lisätty" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "Vastausta ei tallennettu" + +#: lib/RT/Ticket_Overlay.pm:3458 +msgid "Could not add new custom field value for ticket. " +msgstr "Uuden tiedon lisääminen kenttään ei onnistunut" + +#: NOT FOUND IN SOURCE +msgid "Could not add new custom field value for ticket. %1 " +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +msgid "Could not change owner. " +msgstr "Omistajaa ei voitu vaihtaa." + +#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#. ($msg) +msgid "Could not create CustomField" +msgstr "Uuden kentän lisääminen ei onnistunut" + +#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +msgid "Could not create group" +msgstr "Ryhmän luominen ei onnistunut" + +#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#. ($msg) +msgid "Could not create template: %1" +msgstr "Ei onnistuttu luomaan pohjaa: " + +#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +msgid "Could not create ticket. Queue not set" +msgstr "Työpyynön luominen ei onnistunut. Työjonoa ei ole asetettu" + +#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +msgid "Could not create user" +msgstr "Käyttäjän luominen ei onnistunut" + +#: NOT FOUND IN SOURCE +msgid "Could not create watcher for requestor" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Could not find a ticket with id %1" +msgstr "Työpyyntöä numero '%1' ei löytynyt." + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "Ryhmää '%1' ei löytynyt." + +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +msgid "Could not find or create that user" +msgstr "Käyttäjää ei löydetty eikä pystytty luomaan" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +msgid "Could not find that principal" +msgstr "Tätä toimeksiantajaa ei löytynyt" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "Käyttäjää '%1' ei löytynyt." + +#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +msgid "Could not load group" +msgstr "Ryhmän lataaminen ei onnistunut" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "Ei voinut tehdä toimeksiantajaa %1:ksi tälle työjonolle" + +#: lib/RT/Ticket_Overlay.pm:1443 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "Ei voinut tehdä toimeksiantajaa tälle työpyynnölle: %1" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "Ei voinut poistaa toimeksiantajaa tältä työjonolta: %1" + +#: lib/RT/Ticket_Overlay.pm:1559 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "Ei voinut poistaa toimeksiantajaa tältä työpyynnöltä: %1" + +#: lib/RT/Group_Overlay.pm:985 +msgid "Couldn't add member to group" +msgstr "Jäsenen lisääminen ryhmään ei onnistunut" + +#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "Toiminnon luominen ei onnistunut: %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't figure out what to do from gpg's reply\\n" +msgstr "Järjestelmä ei ymmärtänyt mitä tehdä pgp:n vastauksella\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find group\\n" +msgstr "Ryhmää ei löytynyt\\n" + +#: lib/RT/Interface/Web.pm:866 +msgid "Couldn't find row" +msgstr "" + +#: lib/RT/Group_Overlay.pm:959 +msgid "Couldn't find that principal" +msgstr "Tätä toimeksiantajaa ei löytynyt" + +#: lib/RT/CustomField_Overlay.pm:175 +msgid "Couldn't find that value" +msgstr "Tätä arvoa ei löytynyt" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find that watcher" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find user\\n" +msgstr "Käyttäjää ei löytynyt\\n" + +#: lib/RT/CurrentUser.pm:112 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Ei onnistuttu lataamaan käytäjää %1 tietokannasta.\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load KeywordSelects." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "RT asetustiedoston lataaminen ei onnistunut:'%1' %2" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Scrips." +msgstr "Lappujen lataaminen ei onnistunut." + +#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#. ($id) +msgid "Couldn't load group %1" +msgstr "Ryhmän %1 lataaminen ei onnistunut" + +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +msgid "Couldn't load link" +msgstr "Linkin lataaminen ei onnistunut" + +#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#. ($id) +msgid "Couldn't load queue" +msgstr "Työjonon lataaminen ei onnistunut" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "Työjonon %1 lataaminen ei onnistunut" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "Lapun lataaminen ei onnistunut" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "Pohjan lataaminen ei onnistunut" + +#: html/Admin/Users/Prefs.html:79 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "Tämän käyttäjän lataaminen ei onnistunut (%1)" + +#: html/SelfService/Display.html:166 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Työpyynnön '%1' lataaminen ei onnistunut" + +#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +msgid "Country" +msgstr "Maa" + +#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +msgid "Create" +msgstr "Luo" + +#: etc/initialdata:128 +msgid "Create Tickets" +msgstr "" + +#: html/Admin/Elements/EditCustomField:58 +msgid "Create a CustomField" +msgstr "Luo kenttä" + +#: html/Admin/Queues/CustomField.html:48 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:48 +msgid "Create a CustomField which applies to all queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create a new Custom Field" +msgstr "Luo uusi kenttä" + +#: NOT FOUND IN SOURCE +msgid "Create a new global scrip" +msgstr "Luo uusi globaali lappu" + +#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +msgid "Create a new group" +msgstr "Luo uusi ryhmä" + +#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +msgid "Create a new personal group" +msgstr "Luo uusi personaali ryhmä" + +#: NOT FOUND IN SOURCE +msgid "Create a new queue" +msgstr "Luo uusi työjono" + +#: NOT FOUND IN SOURCE +msgid "Create a new scrip" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create a new template" +msgstr "Luo uusi pohja" + +#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +msgid "Create a new ticket" +msgstr "Luo uusi työpyyntö" + +#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +msgid "Create a new user" +msgstr "Luo uusi käyttäjä" + +#: html/Admin/Queues/Modify.html:103 +msgid "Create a queue" +msgstr "Luo uusi työjono" + +#: NOT FOUND IN SOURCE +msgid "Create a queue called" +msgstr "Luo työjono nimeltään" + +#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +msgid "Create a request" +msgstr "Luo työpyyntö" + +#: html/Admin/Queues/Scrip.html:59 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "" + +#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +msgid "Create a template" +msgstr "Luo pohja" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1 / %2 / %3 " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1/%2/%3" +msgstr "" + +#: etc/initialdata:130 +msgid "Create new tickets based on this scrip's template" +msgstr "" + +#: html/SelfService/Create.html:81 +msgid "Create ticket" +msgstr "Luo työpyyntö" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Create tickets in this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Create, delete and modify custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 +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:59 +msgid "Create, delete and modify the members of personal groups" +msgstr "" + +#: lib/RT/System.pm:60 +msgid "Create, delete and modify users" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "CreateTicket" +msgstr "" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +msgid "Created" +msgstr "Luotu" + +#: html/Admin/Elements/EditCustomField:71 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "Luotu kenttä %1" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "Luotu pohja %1" + +#: html/Ticket/Elements/EditLinks:28 +msgid "Current Relationships" +msgstr "Tämänhetkiset suhteet" + +#: html/Admin/Elements/EditScrips:30 +msgid "Current Scrips" +msgstr "" + +#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +msgid "Current members" +msgstr "Tämänhetkiset jäsenet" + +#: html/Admin/Elements/SelectRights:29 +msgid "Current rights" +msgstr "Tämänhetkiset oikeudet" + +#: html/Search/Listing.html:71 +msgid "Current search criteria" +msgstr "" + +#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +msgid "Current watchers" +msgstr "Tämänhetkiset tarkkailijat" + +#: html/Admin/Global/CustomField.html:55 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "" + +#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +msgid "Custom Fields" +msgstr "Kentät" + +#: html/Admin/Elements/EditScrip:73 +msgid "Custom action cleanup code" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Custom action preparation code" +msgstr "" + +#: html/Admin/Elements/EditScrip:49 +msgid "Custom condition" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "Kenttä %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "Kentällä %1 on arvo" + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "Kentällä %1 ei ole arvoa" + +#: lib/RT/Ticket_Overlay.pm:3360 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Kenttää %1 ei löytynyt" + +#: html/Admin/Elements/EditCustomFields:197 +msgid "Custom field deleted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3510 +msgid "Custom field not found" +msgstr "Kenttää ei löytynyt" + +#: lib/RT/CustomField_Overlay.pm:283 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "Kenttän arvoa %1 ei löytynyt kentälle %2" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "Kenttän arvo muutettu arvosta %1 arvoon" + +#: lib/RT/CustomField_Overlay.pm:185 +msgid "Custom field value could not be deleted" +msgstr "Kenttän arvoa ei pystytty poistamaan" + +#: lib/RT/CustomField_Overlay.pm:289 +msgid "Custom field value could not be found" +msgstr "Kenttän arvoa ei löydetty" + +#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +msgid "Custom field value deleted" +msgstr "Kenttän arvo poistettu" + +#: lib/RT/Transaction_Overlay.pm:550 +msgid "CustomField" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "" + +#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +msgid "Dates" +msgstr "Päivät" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "Joulu" + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "" + +#: etc/initialdata:275 +msgid "Default admin comment template" +msgstr "" + +#: etc/initialdata:257 +msgid "Default admin correspondence template" +msgstr "" + +#: etc/initialdata:267 +msgid "Default correspondence template" +msgstr "" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:645 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "" + +#: html/User/Delegation.html:25 html/User/Delegation.html:28 +msgid "Delegate rights" +msgstr "Delegoi oikeuksia" + +#: lib/RT/System.pm:63 +msgid "Delegate specific rights which have been granted to you." +msgstr "" + +#: lib/RT/System.pm:63 +msgid "DelegateRights" +msgstr "" + +#: html/User/Elements/Tabs:38 +msgid "Delegation" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "Poista" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "Delete tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "DeleteTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "Tämän objektin poistaminen saattaa rikkoa tietokannan viitteet" + +#: lib/RT/Queue_Overlay.pm:292 +msgid "Deleting this object would break referential integrity" +msgstr "Tämän objektin poistaminen rikkoo tietokannan viitteet" + +#: lib/RT/User_Overlay.pm:430 +msgid "Deleting this object would violate referential integrity" +msgstr "Tämän objektin poistaminen rikkoo tietokannan viitteet" + +#: 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:46 +msgid "Deny" +msgstr "" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +msgid "Depended on by" +msgstr "Tästä pyynnöstä riippuu" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "Riippuvuudet: \\n" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +msgid "Depends on" +msgstr "Riippuu pyynnöstä" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "" + +#: html/Elements/SelectSortOrder:35 +msgid "Descending" +msgstr "Laskeva" + +#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +msgid "Describe the issue below" +msgstr "Työtilauksen kuvaus" + +#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +msgid "Description" +msgstr "Kuvaus" + +#: html/SelfService/Elements/MyRequests:44 +msgid "Details" +msgstr "Yksityiskohdat" + +#: html/Ticket/Elements/Tabs:85 +msgid "Display" +msgstr "Näytä" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Display Access Control List" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Display Scrip templates for this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Display Scrips for this queue" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:35 +msgid "Display mode" +msgstr "Näkymä" + +#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 +#. ($Ticket->id) +msgid "Display ticket #%1" +msgstr "Näytä työpyyntö #%1" + +#: lib/RT/System.pm:54 +msgid "Do anything and everything" +msgstr "" + +#: html/Elements/Refresh:30 +msgid "Don't refresh this page." +msgstr "Älä päivitä tätä sivua" + +#: html/Search/Elements/PickRestriction:114 +msgid "Don't show search results" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "Download" +msgstr "Lataa" + +#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +msgid "Due" +msgstr "Mennessä" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "Mennessä -päivää '%1' ei onnistuttu kääntämään järjestelmälle." + +#: bin/rt-commit-handler:754 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "VIRHE: Työpyynnön '%1' lataaminen ei onnistunut: %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "Muokkaa" + +#: html/Admin/Queues/CustomFields.html:45 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "Muokkaa kenttiä: työjono %1" + +#: html/Ticket/ModifyLinks.html:36 +msgid "Edit Relationships" +msgstr "Muokkaa suhteita" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "Muokkaa lappuja" + +#: html/Admin/Global/index.html:46 +msgid "Edit system templates" +msgstr "Muokkaa systeemipohjia" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "Muokkaa pohjia: työjono %1" + +#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "Asetusten muokkaus: työjono %1" + +#: html/Admin/Elements/ModifyUser:25 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "Asetusten muokkaus: käyttäjä %1" + +#: html/Admin/Elements/EditCustomField:74 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Kentän %1 muokkaus" + +#: html/Admin/Groups/Members.html:32 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Ryhmän %1 jäsenten muokkaus" + +#: html/User/Groups/Members.html:129 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "Henkilökohtaisen ryhmän %1 jäsenten muokkaus" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "Pohjan %1 muokkaus" + +#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +msgid "Either base or target must be specified" +msgstr "Joko juuri tai kohde täytyy olla määritelty" + +#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +msgid "Email" +msgstr "Sähköposti" + +#: lib/RT/User_Overlay.pm:188 +msgid "Email address in use" +msgstr "Sähköpostiosoite on jo käytössä" + +#: html/Admin/Elements/ModifyUser:42 +msgid "EmailAddress" +msgstr "Sähköpostiosoite" + +#: html/Admin/Elements/ModifyUser:54 +msgid "EmailEncoding" +msgstr "Sähköpostin koodaus" + +#: html/Admin/Elements/EditCustomField:36 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "" + +#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "" + +#: html/Admin/Queues/Modify.html:84 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Aktiivinen (Rastin poistaminen asettaa työjonon ei-aktiiviseksi)" + +#: html/Admin/Elements/EditCustomFields:99 +msgid "Enabled Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:56 +msgid "Enabled Queues" +msgstr "Aktiiviset työjonot" + +#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "Aktivoitu tila %1" + +#: lib/RT/CustomField_Overlay.pm:361 +msgid "Enter multiple values" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:358 +msgid "Enter one value" +msgstr "" + +#: html/Ticket/Elements/EditLinks:112 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Lisää työpyyntöjen numerot tai www-linkit. Käytä välilyöntiä erottimena syöttäessäsi useampaa numeroa tai linkkiä." + +#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +msgid "Error" +msgstr "Virhe" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Virhe parametreissa: Queue->AddWatcher" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Virhe parametreissa: Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1356 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Virhe parametreissa: Ticket->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1532 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Virhe parametreissa: Ticket->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "" + +#: bin/rt-crontool:194 +msgid "Example:" +msgstr "" + +#: html/Admin/Elements/ModifyUser:64 +msgid "ExternalAuthId" +msgstr "Ulkoinen autentikointitunnus" + +#: html/Admin/Elements/ModifyUser:58 +msgid "ExternalContactInfoId" +msgstr "Ulkoinen yhteystietotunnus" + +#: html/Admin/Users/Modify.html:73 +msgid "Extra info" +msgstr "Lisatieto" + +#: lib/RT/User_Overlay.pm:302 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "'Etuoikeutettu' -pseudoryhmää ei löytynyt" + +#: lib/RT/User_Overlay.pm:309 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Ei-etuoikeutettu' -pseudoryhmää ei löytynyt" + +#: bin/rt-crontool:138 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "Helmi" + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "Fin" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "Loppuprioriteetti" + +#: lib/RT/Ticket_Overlay.pm:1162 +msgid "FinalPriority" +msgstr "" + +#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +msgid "Find group whose" +msgstr "" + +#: html/Elements/Quicksearch:25 +msgid "Find new/open tickets" +msgstr "Etsi uudet/avoimet työpyynnöt" + +#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +msgid "Find people whose" +msgstr "Etsi käyttäjät joiden" + +#: html/Search/Listing.html:108 +msgid "Find tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "" + +#: html/Ticket/Elements/Tabs:58 +msgid "First" +msgstr "Ensimmäinen" + +#: html/Search/Listing.html:41 +msgid "First page" +msgstr "Viimeinen sivu" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "" + +#: html/Search/Bulk.html:87 +msgid "Force change" +msgstr "Pakota muutos" + +#: html/Search/Listing.html:106 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "" + +#: lib/RT/Interface/Web.pm:868 +msgid "Found Object" +msgstr "" + +#: html/Admin/Elements/ModifyUser:44 +msgid "FreeformContactInfo" +msgstr "Vapaamuotoiset yhteystiedot" + +#: lib/RT/CustomField_Overlay.pm:38 +msgid "FreeformMultiple" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformSingle" +msgstr "" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "Pe" + +#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +msgid "Full headers" +msgstr "Kokonaiset otsikot" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:595 +#. ($New->Name) +msgid "Given to %1" +msgstr "" + +#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +msgid "Global" +msgstr "Globaali" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "Globaalit laput" + +#: html/Admin/Elements/SelectTemplate:38 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +msgid "Go!" +msgstr "Ok!" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "Hyvä PGP allekirjoitus käyttäjältä %1\\n" + +#: html/Search/Listing.html:50 +msgid "Goto page" +msgstr "Siirry sivulle" + +#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +msgid "Goto ticket" +msgstr "Siirry työpyyntöön" + +#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +msgid "Group" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "Ryhmä %1 %2: %3" + +#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +msgid "Group Rights" +msgstr "Ryhmän oikeudet" + +#: lib/RT/Group_Overlay.pm:965 +msgid "Group already has member" +msgstr "Ryhmässä on jo jäsen" + +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "" + +#: html/Admin/Groups/Modify.html:77 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:497 +msgid "Group created" +msgstr "Ryhmä luotu" + +#: lib/RT/Group_Overlay.pm:1133 +msgid "Group has no such member" +msgstr "" + +#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +msgid "Group not found" +msgstr "Ryhmää ei löydetty" + +#: NOT FOUND IN SOURCE +msgid "Group not found.\\n" +msgstr "Ryhmää ei löydetty.\\n" + +#: NOT FOUND IN SOURCE +msgid "Group not specified.\\n" +msgstr "Ryhmää ei määritelty.\\n" + +#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +msgid "Groups" +msgstr "Ryhmät" + +#: lib/RT/Group_Overlay.pm:971 +msgid "Groups can't be members of their members" +msgstr "Ryhmät eivät voi olla jäsentensä jäseniä" + +#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +msgid "Hello!" +msgstr "Hei!" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "Hei, %1" + +#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +msgid "History" +msgstr "Historia" + +#: html/Admin/Elements/ModifyUser:68 +msgid "HomePhone" +msgstr "Kotipuhelin" + +#: html/Elements/Tabs:46 +msgid "Homepage" +msgstr "Kotisivu" + +#: lib/RT/Base.pm:74 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "" + +#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "Numero" + +#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +msgid "Identity" +msgstr "Identiteetti" + +#: etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "" + +#: bin/rt-crontool:190 +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:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "If you've updated anything above, be sure to" +msgstr "Jos olet muuttanut tietoja, muista tallentaa" + +#: lib/RT/Interface/Web.pm:860 +msgid "Illegal value for %1" +msgstr "" + +#: lib/RT/Interface/Web.pm:863 +msgid "Immutable field" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:74 +msgid "Include disabled custom fields in listing." +msgstr "" + +#: html/Admin/Queues/index.html:43 +msgid "Include disabled queues in listing." +msgstr "Sisällytä listaukseen myös ei-aktiiviset työjonot." + +#: html/Admin/Users/index.html:47 +msgid "Include disabled users in search." +msgstr "Sisällytä listaukseen myös ei-aktiiviset käyttäjät." + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "Alkuprioriteetti" + +#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +msgid "InitialPriority" +msgstr "" + +#: lib/RT/ScripAction_Overlay.pm:105 +msgid "Input error" +msgstr "Virhe syötteessä" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3729 +msgid "Internal Error" +msgstr "" + +#: lib/RT/Record.pm:143 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:644 +msgid "Invalid Group Type" +msgstr "Ryhmän tyyppi ei kelpaa" + +#: lib/RT/Principal_Overlay.pm:128 +msgid "Invalid Right" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "" + +#: lib/RT/Interface/Web.pm:865 +msgid "Invalid data" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:438 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "Omistaja ei kelpaa. Asetetaan oletusasetusten mukaan 'eikukaan'" + +#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "Kelpaamaton työjono" + +#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +msgid "Invalid right" +msgstr "Kelpaamaton oikeus" + +#: lib/RT/Record.pm:118 +#. ($key) +msgid "Invalid value for %1" +msgstr "Kelpaamaton arvo kohteelle %1" + +#: lib/RT/Ticket_Overlay.pm:3367 +msgid "Invalid value for custom field" +msgstr "Kelpaamaton arvo kentälle" + +#: lib/RT/Ticket_Overlay.pm:345 +msgid "Invalid value for status" +msgstr "Kelpaamaton arvo tilalle" + +#: bin/rt-crontool:191 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "" + +#: bin/rt-crontool:192 +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:163 +msgid "It takes several arguments:" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "Tammi" + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "" + +#: lib/RT/Group_Overlay.pm:149 +msgid "Join or leave this group" +msgstr "" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "Heinä" + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "" + +#: html/Ticket/Elements/Tabs:99 +msgid "Jumbo" +msgstr "Jumbo" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "Kesä" + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "Avainsana" + +#: html/Admin/Elements/ModifyUser:52 +msgid "Lang" +msgstr "Keili" + +#: html/Ticket/Elements/Tabs:73 +msgid "Last" +msgstr "Viimeinen" + +#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +msgid "Last Contact" +msgstr "Viimeinen yhteydenotto" + +#: html/Elements/SelectDateType:29 +msgid "Last Contacted" +msgstr "Viimeksi otettu yhteyttä" + +#: html/Search/Elements/TicketHeader:41 +msgid "Last Notified" +msgstr "" + +#: html/Elements/SelectDateType:30 +msgid "Last Updated" +msgstr "Viimeksi päivitetty" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "Vasen" + +#: html/Admin/Users/Modify.html:83 +msgid "Let this user access RT" +msgstr "Päästä tämä käyttäjä sisään RT:een" + +#: html/Admin/Users/Modify.html:87 +msgid "Let this user be granted rights" +msgstr "Tälle käyttäjälle voidaan antaa oikeuksia" + +#: NOT FOUND IN SOURCE +msgid "Limiting owner to %1 %2" +msgstr "Rajoitetaan omistajaa %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Limiting queue to %1 %2" +msgstr "Rajoitetaan työjonoa %1 %2" + +#: lib/RT/Ticket_Overlay.pm:2697 +msgid "Link already exists" +msgstr "Linkki on jo olemassa" + +#: lib/RT/Ticket_Overlay.pm:2709 +msgid "Link could not be created" +msgstr "Linkkiä ei voitu luoda" + +#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#. ($TransString) +msgid "Link created (%1)" +msgstr "Linkki luotu (%1)" + +#: lib/RT/Ticket_Overlay.pm:2638 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Linkki poistettu (%1)" + +#: lib/RT/Ticket_Overlay.pm:2644 +msgid "Link not found" +msgstr "Linkkiä ei löydetty" + +#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "Linkitä työpyyntö #%1" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "" + +#: html/Ticket/Elements/Tabs:97 +msgid "Links" +msgstr "Linkit" + +#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +msgid "Location" +msgstr "Sijainti" + +#: lib/RT.pm:158 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "Lokihakemistoa %1 ei löytynyt tai kirkoittaminen ei onnistunut.\\n RT ei voi toimia." + +#: html/Elements/Header:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "Kirjautunut sisään tunnuksella %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +msgid "Login" +msgstr "Kirjaudu sisään" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "Kirjaudu ulos" + +#: html/Search/Bulk.html:86 +msgid "Make Owner" +msgstr "Aseta omistaja" + +#: html/Search/Bulk.html:102 +msgid "Make Status" +msgstr "Aseta tila" + +#: html/Search/Bulk.html:109 +msgid "Make date Due" +msgstr "Aseta mennessä -aika" + +#: html/Search/Bulk.html:110 +msgid "Make date Resolved" +msgstr "Aseta päätetty -aika" + +#: html/Search/Bulk.html:107 +msgid "Make date Started" +msgstr "Aseta aloitettu -aika" + +#: html/Search/Bulk.html:106 +msgid "Make date Starts" +msgstr "Aseta alkaa -aika" + +#: html/Search/Bulk.html:108 +msgid "Make date Told" +msgstr "Aseta oltu yhteydessä -aika" + +#: html/Search/Bulk.html:99 +msgid "Make priority" +msgstr "Aseta prioriteetti" + +#: html/Search/Bulk.html:100 +msgid "Make queue" +msgstr "Aseta työjono" + +#: html/Search/Bulk.html:98 +msgid "Make subject" +msgstr "Aseta otsikko" + +#: html/Admin/index.html:33 +msgid "Manage groups and group membership" +msgstr "" + +#: html/Admin/index.html:39 +msgid "Manage properties and configuration which apply to all queues" +msgstr "" + +#: html/Admin/index.html:36 +msgid "Manage queues and queue-specific properties" +msgstr "" + +#: html/Admin/index.html:30 +msgid "Manage users and passwords" +msgstr "" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "Maasis" + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "Touko" + +#: lib/RT/Group_Overlay.pm:982 +msgid "Member added" +msgstr "Jäsen lisätty" + +#: lib/RT/Group_Overlay.pm:1140 +msgid "Member deleted" +msgstr "Jäsen poistettu" + +#: lib/RT/Group_Overlay.pm:1144 +msgid "Member not deleted" +msgstr "Jäsentä ei poistettu" + +#: html/Elements/SelectLinkType:26 +msgid "Member of" +msgstr "Jäsen:" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "" + +#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +msgid "Members" +msgstr "Jäsenet" + +#: lib/RT/Ticket_Overlay.pm:2843 +msgid "Merge Successful" +msgstr "Yhdistäminen onnistui" + +#: lib/RT/Ticket_Overlay.pm:2804 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "Yhdistäminen epäonnistui. EffectiveId:n arvoa ei pystytty asettamaan" + +#: html/Ticket/Elements/EditLinks:115 +msgid "Merge into" +msgstr "Yhdistä" + +#: html/Ticket/Update.html:102 +msgid "Message" +msgstr "" + +#: lib/RT/Interface/Web.pm:867 +msgid "Missing a primary key?: %1" +msgstr "" + +#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +msgid "Mobile" +msgstr "Käsipuhelin" + +#: html/Admin/Elements/ModifyUser:72 +msgid "MobilePhone" +msgstr "Käsipuhelin" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify Access Control List" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "Muokkaa kenttää %1" + +#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +msgid "Modify Custom Fields which apply to all queues" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "Modify Scrip templates for this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 +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 "" + +#: html/Admin/Queues/CustomField.html:45 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:53 +msgid "Modify a CustomField which applies to all queues" +msgstr "" + +#: html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 +msgid "Modify a scrip which applies to all queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "" + +#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Muokkaa työpyynnön #%1 päiviä" + +#: html/Ticket/ModifyDates.html:35 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Muokkaa työpyynnön #%1 päiviä" + +#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +msgid "Modify global group rights" +msgstr "Muokkaa ryhmien globaaleja oikeuksia" + +#: html/Admin/Global/GroupRights.html:33 +msgid "Modify global group rights." +msgstr "Muokkaa ryhmien globaaleja oikeuksia." + +#: 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 "Muokkaa globaaleja lappuja" + +#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +msgid "Modify global user rights" +msgstr "" + +#: html/Admin/Global/UserRights.html:33 +msgid "Modify global user rights." +msgstr "Muokkaa käyttäjien globaaleja oikeuksia." + +#: lib/RT/Group_Overlay.pm:146 +msgid "Modify group metadata or delete group" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#. ($GroupObj->Name) +msgid "Modify group rights for group %1" +msgstr "Muokkaa ryhmän %1 oikeuksia." + +#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "Muokkaa ryhmän oikeuksia työjonossa %1" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Modify membership roster for this group" +msgstr "" + +#: lib/RT/System.pm:61 +msgid "Modify one's own RT account" +msgstr "" + +#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Muokkaa työjonoon %1 liittyviä käyttäjiä" + +#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#. ($Ticket->id) +#. ($Ticket->Id) +msgid "Modify people related to ticket #%1" +msgstr "Muokkaa työpyyntöön %1 liittyviä käyttäjiä" + +#: html/Admin/Queues/Scrips.html:44 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Muokkaa työjonoon %1 liittyviä lappuja" + +#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +msgid "Modify scrips which apply to all queues" +msgstr "" + +#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#. (loc($TemplateObj->Name())) +#. ($TemplateObj->id) +msgid "Modify template %1" +msgstr "Muokkaa pohjaa %1" + +#: html/Admin/Global/Templates.html:44 +msgid "Modify templates which apply to all queues" +msgstr "" + +#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "Muokkaa työjonoa %1" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Modify the queue watchers" +msgstr "" + +#: html/Admin/Users/Modify.html:236 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "Muokkaa käyttäjää %1" + +#: html/Ticket/ModifyAll.html:37 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Muokkaa työpyyntöä #%1" + +#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Muokkaa työpyyntöä #%1" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Modify tickets" +msgstr "" + +#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#. ($GroupObj->Name) +msgid "Modify user rights for group %1" +msgstr "Muokkaa ryhmän %1 käyttäjien oikeuksia" + +#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "Muokkaa työjonoon %1 liittyviä käyttäjien oikeuksia" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "Muokkaa työpyynnön %1 katselijoita" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyACL" +msgstr "" + +#: lib/RT/Group_Overlay.pm:149 +msgid "ModifyOwnMembership" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "ModifyQueueWatchers" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "ModifyScrips" +msgstr "" + +#: lib/RT/System.pm:61 +msgid "ModifySelf" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "ModifyTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "ModifyTicket" +msgstr "" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "Ma" + +#: html/Ticket/Elements/ShowRequestor:42 +#. ($name) +msgid "More about %1" +msgstr "Lisätietoa: %1" + +#: html/Admin/Elements/EditCustomFields:61 +msgid "Move down" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:53 +msgid "Move up" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:27 +msgid "Multiple" +msgstr "Monta" + +#: lib/RT/User_Overlay.pm:179 +msgid "Must specify 'Name' attribute" +msgstr "'Nimi' täytyy määritellä" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "" + +#: html/Approvals/index.html:25 html/Approvals/index.html:26 +msgid "My approvals" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +msgid "Name" +msgstr "Nimi" + +#: lib/RT/User_Overlay.pm:186 +msgid "Name in use" +msgstr "Nimi on käytössä" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "" + +#: html/Ticket/Elements/ShowDates:52 +msgid "Never" +msgstr "" + +#: html/Elements/Quicksearch:30 +msgid "New" +msgstr "Uusi" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +msgid "New Password" +msgstr "Uusi salasana" + +#: etc/initialdata:311 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "" + +#: html/Ticket/Elements/EditLinks:111 +msgid "New Relationships" +msgstr "Uusi linkki" + +#: html/Ticket/Elements/Tabs:36 +msgid "New Search" +msgstr "" + +#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +msgid "New custom field" +msgstr "" + +#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +msgid "New group" +msgstr "" + +#: html/SelfService/Prefs.html:32 +msgid "New password" +msgstr "Uusi salasana" + +#: lib/RT/User_Overlay.pm:639 +msgid "New password notification sent" +msgstr "Uusi salasana" + +#: html/Admin/Elements/QueueTabs:70 +msgid "New queue" +msgstr "" + +#: html/SelfService/Elements/Tabs:63 +msgid "New request" +msgstr "Uusi työpyyntö" + +#: html/Admin/Elements/SelectRights:42 +msgid "New rights" +msgstr "Uudet oikeudet" + +#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +msgid "New scrip" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "Uusi haku" + +#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +msgid "New template" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2771 +msgid "New ticket doesn't exist" +msgstr "Uutta työpyyntöä ei löydy" + +#: html/Admin/Elements/UserTabs:52 +msgid "New user" +msgstr "" + +#: html/Admin/Elements/CreateUserCalled:26 +msgid "New user called" +msgstr "Uusi käyttäjä pyydetty" + +#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +msgid "New watchers" +msgstr "Uusi tarkkailija" + +#: html/Admin/Users/Prefs.html:42 +msgid "New window setting" +msgstr "Uusi ikkunan asetus" + +#: html/Ticket/Elements/Tabs:69 +msgid "Next" +msgstr "Seuraava" + +#: html/Search/Listing.html:48 +msgid "Next page" +msgstr "Seuraava sivu" + +#: html/Admin/Elements/ModifyUser:50 +msgid "NickName" +msgstr "Lempinimi" + +#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +msgid "Nickname" +msgstr "Lempinimi" + +#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +msgid "No CustomField" +msgstr "Ei kenttiä" + +#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +msgid "No Group defined" +msgstr "Ryhmää ei ole määritelty" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +msgid "No Queue defined" +msgstr "Työjonoa ei ole määritelty" + +#: bin/rt-crontool:56 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "Käyttäjää ei löydy. Ole hyvä ja ota yhteyttä RT:n ylläpitäjään.\\n" + +#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +msgid "No Template" +msgstr "Ei pohjaa" + +#: bin/rt-commit-handler:764 +msgid "No Ticket specified. Aborting ticket " +msgstr "Työpyyntöä ei määritelty. Poistutaan työpyynnöstä" + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "Työpyyntöä ei määritelty. Poistutaan työpyynnön muokkauksesta\\n\\n" + +#: html/Approvals/Elements/Approve:47 +msgid "No action" +msgstr "" + +#: lib/RT/Interface/Web.pm:862 +msgid "No column specified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "Komentoa ei löytynyt\\n" + +#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +msgid "No comment entered about this user" +msgstr "Tälle käyttäjälle ei ole annettu kommentteja" + +#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +msgid "No correspondence attached" +msgstr "Ei kirjeenvaihtoa liitettynä" + +#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#. (ref $self) +msgid "No description for %1" +msgstr "Ei kuvausta kohteelle %1" + +#: lib/RT/Users_Overlay.pm:151 +msgid "No group specified" +msgstr "Ryhmää ei ole määritelty" + +#: lib/RT/User_Overlay.pm:857 +msgid "No password set" +msgstr "Salasanaa ei ole asetettu" + +#: lib/RT/Queue_Overlay.pm:259 +msgid "No permission to create queues" +msgstr "Ei oikeutta luoda kyselyitä" + +#: lib/RT/Ticket_Overlay.pm:341 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "" + +#: lib/RT/User_Overlay.pm:151 +msgid "No permission to create users" +msgstr "Ei oikeutta luoda käyttäjiä" + +#: html/SelfService/Display.html:174 +msgid "No permission to display that ticket" +msgstr "Ei oikeutta tarkastella tätä työpyyntöä" + +#: html/SelfService/Update.html:55 +msgid "No permission to view update ticket" +msgstr "Ei oikeutta päivittää tätä työpyyntöä" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +msgid "No principal specified" +msgstr "Toimeksiantajaa ei ole määritelty" + +#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +msgid "No principals selected." +msgstr "Johtajia ei ole valittu." + +#: html/Admin/Queues/index.html:35 +msgid "No queues matching search criteria found." +msgstr "Yhtään hakukriteerit täyttävää työpyyntöä ei löytynyt." + +#: html/Admin/Elements/SelectRights:81 +msgid "No rights found" +msgstr "" + +#: html/Admin/Elements/SelectRights:33 +msgid "No rights granted." +msgstr "Ei oikeuksia" + +#: html/Search/Bulk.html:149 +msgid "No search to operate on." +msgstr "Ei hakua jonka kanssa työskennellä" + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "Työpyynnön numeroa ei ole määritelty" + +#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +msgid "No transaction type specified" +msgstr "Toiminnon tyyppiä ei ole määritelty" + +#: NOT FOUND IN SOURCE +msgid "No user or email address specified" +msgstr "" + +#: html/Admin/Users/index.html:36 +msgid "No users matching search criteria found." +msgstr "Yhtään hakukriteerit täyttävää käyttäjää ei löytynyt." + +#: bin/rt-commit-handler:644 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "Ei kelpaa RT käyttäjäksi. RT cvs käsittelijä irrottautuu. Ole hyvä ja ota yhteyttä RT:n ylläpitäjään.\\n" + +#: lib/RT/Interface/Web.pm:859 +msgid "No value sent to _Set!\\n" +msgstr "" + +#: html/Search/Elements/TicketRow:37 +msgid "Nobody" +msgstr "" + +#: lib/RT/Interface/Web.pm:864 +msgid "Nonexistant field?" +msgstr "" + +#: html/Elements/Login:99 +msgid "Not logged in" +msgstr "" + +#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +msgid "Not logged in." +msgstr "Et ole kirjautunut järjestelmään" + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "Ei asetettu" + +#: html/NoAuth/Reminder.html:27 +msgid "Not yet implemented." +msgstr "Ei vielä implementoitu." + +#: html/Admin/Groups/Rights.html:25 +msgid "Not yet implemented...." +msgstr "Ei vielä implementoitu..." + +#: html/Approvals/Elements/Approve:50 +msgid "Notes" +msgstr "" + +#: lib/RT/User_Overlay.pm:642 +msgid "Notification could not be sent" +msgstr "Ilmoitusta ei pystytty lähettämään" + +#: etc/initialdata:94 +msgid "Notify AdminCcs" +msgstr "" + +#: etc/initialdata:90 +msgid "Notify AdminCcs as Comment" +msgstr "" + +#: etc/initialdata:121 +msgid "Notify Other Recipients" +msgstr "" + +#: etc/initialdata:117 +msgid "Notify Other Recipients as Comment" +msgstr "" + +#: etc/initialdata:86 +msgid "Notify Owner" +msgstr "" + +#: etc/initialdata:82 +msgid "Notify Owner as Comment" +msgstr "" + +#: etc/initialdata:313 etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "" + +#: etc/initialdata:78 +msgid "Notify Requestors" +msgstr "" + +#: etc/initialdata:104 +msgid "Notify Requestors and Ccs" +msgstr "" + +#: etc/initialdata:99 +msgid "Notify Requestors and Ccs as Comment" +msgstr "" + +#: etc/initialdata:113 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "" + +#: etc/initialdata:109 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "Marras" + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "" + +#: lib/RT/Record.pm:157 +msgid "Object could not be created" +msgstr "" + +#: lib/RT/Record.pm:176 +msgid "Object created" +msgstr "" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "Loka" + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "" + +#: html/Elements/SelectDateRelation:35 +msgid "On" +msgstr "-" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:50 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:48 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "" + +#: html/Elements/Quicksearch:31 +msgid "Open" +msgstr "Avoin" + +#: html/Ticket/Elements/Tabs:136 +msgid "Open it" +msgstr "Avaa" + +#: html/SelfService/Elements/Tabs:57 +msgid "Open requests" +msgstr "Avoimet työpyynnöt" + +#: html/Admin/Users/Prefs.html:41 +msgid "Open tickets (from listing) in a new window" +msgstr "Avoimet työpyynnöt (listasta) uudessa ikkunassa" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in another window" +msgstr "Avoimet työpyynnöt (listasta) toisessa ikkunassa" + +#: etc/initialdata:133 +msgid "Open tickets on correspondence" +msgstr "" + +#: html/Search/Elements/PickRestriction:101 +msgid "Ordering and sorting" +msgstr "Järjestäminen" + +#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +msgid "Organization" +msgstr "Organisaatio" + +#: html/Approvals/Elements/Approve:34 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +msgid "Over time, priority moves toward" +msgstr "Ajan kuluessa prioriteetti muuttuu kohti" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Own tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "OwnTicket" +msgstr "" + +#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "Omistaja" + +#: lib/RT/Ticket_Overlay.pm:3004 +#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +msgid "Owner changed from %1 to %2" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:584 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Omistaja pakottamalla muutettu arvosta %1 arvoon %2" + +#: html/Search/Elements/PickRestriction:31 +msgid "Owner is" +msgstr "Omistaja on" + +#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +msgid "Pager" +msgstr "Hakulaite" + +#: html/Admin/Elements/ModifyUser:74 +msgid "PagerPhone" +msgstr "Hakulaite puhelin" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +msgid "Parents" +msgstr "Isät" + +#: html/Elements/Login:43 html/User/Prefs.html:61 +msgid "Password" +msgstr "Salasana" + +#: html/NoAuth/Reminder.html:25 +msgid "Password Reminder" +msgstr "Salasanan muistuttaja" + +#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +msgid "Password too short" +msgstr "Salasana liian lyhyt" + +#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "Salasana: %1" + +#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +msgid "People" +msgstr "Käyttäjät" + +#: etc/initialdata:126 +msgid "Perform a user-defined action" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +msgid "Permission Denied" +msgstr "Pääsy kielletty" + +#: html/User/Elements/Tabs:35 +msgid "Personal Groups" +msgstr "" + +#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +msgid "Personal groups" +msgstr "Omat ryhmät" + +#: html/User/Elements/DelegateRights:37 +msgid "Personal groups:" +msgstr "Omat ryhmät:" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +msgid "Phone numbers" +msgstr "Puhelinnumerot" + +#: html/Admin/Users/Rights.html:25 +msgid "Placeholder" +msgstr "Paikanpitäjä" + +#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +msgid "Preferences" +msgstr "Asetukset" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "Asetukset" + +#: lib/RT/Action/Generic.pm:160 +msgid "Prepare Stubbed" +msgstr "Valmistele tumppi" + +#: html/Ticket/Elements/Tabs:61 +msgid "Prev" +msgstr "Edellinen" + +#: html/Search/Listing.html:44 +msgid "Previous page" +msgstr "Edellinen sivu" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "Pri" + +#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "" + +#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "Prioriteetti" + +#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +msgid "Priority starts at" +msgstr "Prioriteetti alkaa arvosta" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "" + +#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "Etuoikeutuksen tila: &1" + +#: html/Admin/Users/index.html:62 +msgid "Privileged users" +msgstr "Etuoikeutetut käyttäjät" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "Työjono" + +#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#. ($Queue) +#. ($id) +msgid "Queue %1 not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Queue '%1' not found\\n" +msgstr "Työjonoa '%1' ei löytynyt" + +#: NOT FOUND IN SOURCE +msgid "Queue Keyword Selections" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +msgid "Queue Name" +msgstr "Työjonon nimi" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "Työjonon laput" + +#: lib/RT/Queue_Overlay.pm:263 +msgid "Queue already exists" +msgstr "Työjono on jo olemassa" + +#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +msgid "Queue could not be created" +msgstr "Työjonoa ei voitu luoda" + +#: html/Ticket/Create.html:209 +msgid "Queue could not be loaded." +msgstr "Työjonoa ei voitu ladata." + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +msgid "Queue created" +msgstr "Työjono luotu" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "" + +#: html/SelfService/Display.html:129 +msgid "Queue not found" +msgstr "Työjonoa ei löytynyt" + +#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +msgid "Queues" +msgstr "Työjonot" + +#: html/Elements/Login:34 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "RT %1 - %2" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "RT %1, tekijä <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" + +#: html/Admin/index.html:25 html/Admin/index.html:26 +msgid "RT Administration" +msgstr "RT Ylläpito" + +#: NOT FOUND IN SOURCE +msgid "RT Authentication error." +msgstr "RT Virhe tunnistamisessa" + +#: NOT FOUND IN SOURCE +msgid "RT Bounce: %1" +msgstr "RT palautus: %1" + +#: NOT FOUND IN SOURCE +msgid "RT Configuration error" +msgstr "RT Konfiguraatiovirhe" + +#: NOT FOUND IN SOURCE +msgid "RT Critical error. Message not recorded!" +msgstr "RT Kriittinen virhe. Viestiä ei tallennettu!" + +#: html/Elements/Error:41 html/SelfService/Error.html:41 +msgid "RT Error" +msgstr "RT Virhe" + +#: NOT FOUND IN SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "RT Sai sähköpostin (%1) itseltään." + +#: NOT FOUND IN SOURCE +msgid "RT Recieved mail (%1) from itself." +msgstr "" + +#: html/SelfService/Closed.html:25 +msgid "RT Self Service / Closed Tickets" +msgstr "RT Itsepalvelu / Suljetut työpyynnöt" + +#: html/index.html:25 html/index.html:28 +msgid "RT at a glance" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't authenticate you" +msgstr "RT Ei pystynyt tunnistamaan sinua" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find requestor via its external database lookup" +msgstr "RT ei löytänyt tilaajaa ulkopuolisesta tietokannasta" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find the queue: %1" +msgstr "RT ei löytänyt työjonoa: %1" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RT ei pystynyt tarkistamaan tätä PGP allekirjoitusta.\\n" + +#: html/Elements/PageLayout:26 +#. ($RT::rtname) +msgid "RT for %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT for %1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT has proccessed your commands" +msgstr "RT on prosessoinut antamasi komennot" + +#: html/Elements/Login:83 +#. ('2003') +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 on tekijänoikeuslain alainen, © 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Se on jakelussa seuraavalla lisenssillä: <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 luulee että tämä viesti on palautus" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RT prosessoi tämän viestin kuten se olisi allekirjoittamaton." + +#: 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:n sähköpostiohjaus moodi vaatii PGP tunnistamista. Et allekirjoittanut (PGP) viestiä tai allekirjoitustasi ei pystytty varmistamaan." + +#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +msgid "Real Name" +msgstr "Oikea nimi" + +#: html/Admin/Elements/ModifyUser:48 +msgid "RealName" +msgstr "Oikea nimi" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +msgid "Referred to by" +msgstr "Viitattu jostakin" + +#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +msgid "Refers to" +msgstr "Viittaus johonkin" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "Päivitä" + +#: html/Search/Elements/PickRestriction:27 +msgid "Refine search" +msgstr "Päivitä haku" + +#: html/Elements/Refresh:36 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "Päivitä tämä sivu %1 minuutin välein" + +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +msgid "Relationships" +msgstr "Linkit" + +#: html/Search/Bulk.html:93 +msgid "Remove AdminCc" +msgstr "Poista kopio ylläpidolle" + +#: html/Search/Bulk.html:91 +msgid "Remove Cc" +msgstr "Poista kopio" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "Poista tilaaja" + +#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +msgid "Reply" +msgstr "Vastaa" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Reply to tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "ReplyToTicket" +msgstr "" + +#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +msgid "Requestor" +msgstr "Tilaaja" + +#: html/Search/Elements/PickRestriction:38 +msgid "Requestor email address" +msgstr "Tilaajan sähköpostiosoite" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RequestorAddresses" +msgstr "" + +#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +msgid "Requestors" +msgstr "Tilaajat" + +#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +msgid "Requests should be due in" +msgstr "Työpyyntö tulisi suorittaa mennessä" + +#: html/Elements/Submit:62 +msgid "Reset" +msgstr "Palauta" + +#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +msgid "Residence" +msgstr "Asuinpaikka" + +#: html/Ticket/Elements/Tabs:132 +msgid "Resolve" +msgstr "Päätä" + +#: html/Ticket/Update.html:133 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "" + +#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +msgid "Resolved" +msgstr "Päätetty" + +#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +msgid "Response to requestors" +msgstr "Vastaus tilaajille" + +#: html/Elements/ListActions:26 +msgid "Results" +msgstr "Tulokset" + +#: html/Search/Elements/PickRestriction:105 +msgid "Results per page" +msgstr "Tulosta sivulle" + +#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +msgid "Retype Password" +msgstr "Varmista salasana" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "Oikeutta %1 ei löydetty %2 %3 laajuudessa %4 (%5)\\n" + +#: lib/RT/ACE_Overlay.pm:613 +msgid "Right Delegated" +msgstr "Oikeus delegoitu" + +#: lib/RT/ACE_Overlay.pm:303 +msgid "Right Granted" +msgstr "Oikeus delegoitu" + +#: lib/RT/ACE_Overlay.pm:161 +msgid "Right Loaded" +msgstr "Oikeus ladattu" + +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +msgid "Right could not be revoked" +msgstr "Oikeutta ei voitu peruuttaa" + +#: html/User/Delegation.html:64 +msgid "Right not found" +msgstr "Oikeutta ei löydetty" + +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +msgid "Right not loaded." +msgstr "Oikeutta ei ladattu" + +#: lib/RT/ACE_Overlay.pm:689 +msgid "Right revoked" +msgstr "Oikeus peruutettu" + +#: html/Admin/Elements/UserTabs:41 +msgid "Rights" +msgstr "Oikeudet" + +#: lib/RT/Interface/Web.pm:758 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "" + +#: lib/RT/Interface/Web.pm:791 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "" + +#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "Roolit" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "La" + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "Save Changes" +msgstr "Tallenna muutokset" + +#: html/Ticket/ModifyLinks.html:39 +msgid "Save changes" +msgstr "Tallenna muutokset" + +#: html/Admin/Global/Scrip.html:49 +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:176 +msgid "Scrip Created" +msgstr "Lappu luotu" + +#: html/Admin/Elements/EditScrips:84 +msgid "Scrip deleted" +msgstr "" + +#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +msgid "Scrips" +msgstr "Laput" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "Laput työjonolle %1\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "" + +#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +msgid "Search" +msgstr "Hae" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "Hakukriteerit" + +#: html/Approvals/Elements/PendingMyApproval:39 +msgid "Search for approvals" +msgstr "" + +#: bin/rt-crontool:188 +msgid "Security:" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "SeeQueue" +msgstr "" + +#: html/Admin/Groups/index.html:40 +msgid "Select a group" +msgstr "Valitse ryhmä" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "Valitse työjono" + +#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +msgid "Select a user" +msgstr "Valitse käyttäjä" + +#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +msgid "Select custom field" +msgstr "" + +#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +msgid "Select group" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Select multiple values" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:352 +msgid "Select one value" +msgstr "" + +#: html/Admin/Elements/QueueTabs:67 +msgid "Select queue" +msgstr "" + +#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +msgid "Select scrip" +msgstr "" + +#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +msgid "Select template" +msgstr "" + +#: html/Admin/Elements/UserTabs:49 +msgid "Select user" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "SelectMultiple" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectSingle" +msgstr "" + +#: html/SelfService/index.html:25 +msgid "Self Service" +msgstr "Itsepalvelu" + +#: etc/initialdata:114 +msgid "Send mail to all watchers" +msgstr "" + +#: etc/initialdata:110 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "" + +#: etc/initialdata:105 +msgid "Send mail to requestors and Ccs" +msgstr "" + +#: etc/initialdata:100 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "" + +#: etc/initialdata:79 +msgid "Sends a message to the requestors" +msgstr "" + +#: etc/initialdata:118 etc/initialdata:122 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "" + +#: etc/initialdata:95 +msgid "Sends mail to the administrative Ccs" +msgstr "" + +#: etc/initialdata:91 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "" + +#: etc/initialdata:83 etc/initialdata:87 +msgid "Sends mail to the owner" +msgstr "" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "Syys" + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "Näytä tulokset" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show approved requests" +msgstr "" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show basics" +msgstr "Näytä perustiedot" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show denied requests" +msgstr "" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show details" +msgstr "Näytä yksityiskohdat" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show pending requests" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:46 +msgid "Show requests awaiting other approvals" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Show ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "Show ticket summaries" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ShowACL" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowScrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ShowTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "ShowTicket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "ShowTicketComments" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "" + +#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +msgid "Signature" +msgstr "Allekirjoitus" + +#: html/SelfService/Elements/Header:52 +#. ($session{'CurrentUser'}->Name) +msgid "Signed in as %1" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Single" +msgstr "Yksittäinen" + +#: html/Elements/Header:51 +msgid "Skip Menu" +msgstr "" + +#: html/Admin/Elements/EditCustomFieldValues:31 +msgid "Sort key" +msgstr "Järjestys" + +#: html/Search/Elements/PickRestriction:109 +msgid "Sort results by" +msgstr "Järjestä tulokset" + +#: html/Admin/Elements/AddCustomFieldValue:25 +msgid "SortOrder" +msgstr "Lajittelujärjestyt" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "Jäädytetty" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "Etusivu" + +#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +msgid "Started" +msgstr "Aloitettu" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "Aloitettu -aikaa '%1' ei pystytty tulkitsemaan" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +msgid "Starts" +msgstr "Alkaa" + +#: NOT FOUND IN SOURCE +msgid "Starts By" +msgstr "Alkaa mennessä" + +#: NOT FOUND IN SOURCE +msgid "Starts date '%1' could not be parsed" +msgstr "Alkaa -aikaa '%1' ei pystytty tulkitsemaan" + +#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +msgid "State" +msgstr "Tila" + +#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "Tila" + +#: etc/initialdata:288 +msgid "Status Change" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:530 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "Tila muutettu arvosta %1 arvoon %2" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "" + +#: html/Ticket/Elements/Tabs:147 +msgid "Steal" +msgstr "Kaappaa" + +#: lib/RT/Transaction_Overlay.pm:589 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "Kaapattu käyttäjältä %1" + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "Otsikko" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "" + +#: html/Elements/Submit:59 +msgid "Submit" +msgstr "Lähetä" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "" + +#: lib/RT/Group_Overlay.pm:749 +msgid "Succeeded" +msgstr "" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "Su" + +#: lib/RT/System.pm:54 +msgid "SuperUser" +msgstr "" + +#: html/User/Elements/DelegateRights:77 +msgid "System" +msgstr "" + +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +msgid "System Error" +msgstr "Systeemivirhe" + +#: NOT FOUND IN SOURCE +msgid "System Error. Right not granted." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "System Error. right not granted" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:616 +msgid "System error. Right not delegated." +msgstr "Systeemivirhe. Oikeutta ei delegoitu." + +#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +msgid "System error. Right not granted." +msgstr "Systeemivirhe. Oikeutta ei luovutettu." + +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "" + +#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +msgid "System groups" +msgstr "Systeemiryhmät" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "" + +#: lib/RT/CurrentUser.pm:320 +msgid "TEST_STRING" +msgstr "TESTI_STRINGI" + +#: html/Ticket/Elements/Tabs:143 +msgid "Take" +msgstr "Ota itselle" + +#: lib/RT/Transaction_Overlay.pm:575 +msgid "Taken" +msgstr "Otettu" + +#: html/Admin/Elements/EditScrip:81 +msgid "Template" +msgstr "Pohja" + +#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "" + +#: html/Admin/Elements/EditTemplates:89 +msgid "Template deleted" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:153 +msgid "Template not found" +msgstr "Pohjaa ei löydetty" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "Pohjaa ei löydetty\\n" + +#: lib/RT/Template_Overlay.pm:347 +msgid "Template parsed" +msgstr "Pohja tulkittu" + +#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +msgid "Templates" +msgstr "Pohjat" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "Pohjat työjonolle %1\\n" + +#: lib/RT/Interface/Web.pm:858 +msgid "That is already the current value" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:178 +msgid "That is not a value for this custom field" +msgstr "Ei ole arvo tälle kentälle" + +#: lib/RT/Ticket_Overlay.pm:1886 +msgid "That is the same value" +msgstr "Tämä on sama arvo" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "Tämä toimeksiantaja on jo %1 tälle työjonolle" + +#: lib/RT/Ticket_Overlay.pm:1434 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "Tämä toimeksiantaja on jo %1 tälle työpyynnölle" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Tämä toimeksiantaja ei ole %1 tälle työjonolle" + +#: lib/RT/Ticket_Overlay.pm:1551 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "Tämä toimeksiantaja ei ole %1 tälle työpyynnölle" + +#: lib/RT/Ticket_Overlay.pm:1882 +msgid "That queue does not exist" +msgstr "Tätä työjonoa ei ole olemassa" + +#: lib/RT/Ticket_Overlay.pm:3143 +msgid "That ticket has unresolved dependencies" +msgstr "Tämä työpyyntö sisältää ei-päätettyjä riippuvuuksia" + +#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +msgid "That user already has that right" +msgstr "Käyttäjällä on jo tuo oikeus" + +#: lib/RT/Ticket_Overlay.pm:2952 +msgid "That user already owns that ticket" +msgstr "Käyttäjä omistaa jo tämän työpyynnön" + +#: lib/RT/Ticket_Overlay.pm:2918 +msgid "That user does not exist" +msgstr "Käyttäjää ei ole olemassa" + +#: lib/RT/User_Overlay.pm:315 +msgid "That user is already privileged" +msgstr "Tämä käyttäjä on jo etuoikeutettu" + +#: lib/RT/User_Overlay.pm:332 +msgid "That user is already unprivileged" +msgstr "Tämä käyttäjä on jo ei-etuoikeutettu" + +#: lib/RT/User_Overlay.pm:327 +msgid "That user is now privileged" +msgstr "Tämä käyttäjä on nyt etuoikeutettu" + +#: lib/RT/User_Overlay.pm:344 +msgid "That user is now unprivileged" +msgstr "Tämä käyttäjä on nyt ei-etuoikeutettu" + +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2944 +msgid "That user may not own tickets in that queue" +msgstr "Käyttäjä ei voi omistaa työpyyntöjä tuossa työjonossa" + +#: lib/RT/Link_Overlay.pm:206 +msgid "That's not a numerical id" +msgstr "Ei ole numero" + +#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +msgid "The Basics" +msgstr "Perustiedot" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The CC of a ticket" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:89 +msgid "The administrative CC of a ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2213 +msgid "The comment has been recorded" +msgstr "Kommentti on tallennettu" + +#: bin/rt-crontool:198 +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 "" + +#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "Seuraavia komentoja ei suoritettu:\\n\\n" + +#: lib/RT/Interface/Web.pm:861 +msgid "The new value has been set." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The owner of a ticket" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The requestor of a ticket" +msgstr "" + +#: html/Admin/Elements/EditUserComments:26 +msgid "These comments aren't generally visible to the user" +msgstr "Nämä kommentit eivät ole yleisesti näkyvillä käyttäjälle" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "Tämä työpyyntö %1 %2 (%3)\\n" + +#: bin/rt-crontool:189 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:253 +msgid "This transaction appears to have no content" +msgstr "Tämä toiminto ei näytä sisältävän mitään" + +#: html/Ticket/Elements/ShowRequestor:47 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "Tämän käyttäjän 25 korkeimman prioriteetin työpyyntöä" + +#: lib/RT/Date.pm:391 +msgid "Thu." +msgstr "To" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 %2" +msgstr "Työpyyntö # %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 Jumbo update: %2" +msgstr "" + +#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "Työpyyntö #%1 Jumbo päivitys: %2" + +#: html/Approvals/Elements/ShowDependency:46 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:608 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "Työpyyntö %1 luotu työjonoon '%2'" + +#: bin/rt-commit-handler:760 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "Työpyyntö %1 ladattu\\n" + +#: html/Search/Bulk.html:181 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "Työpyyntö %1: %2" + +#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "Työpyynnön historia # %1 %2" + +#: html/SelfService/Display.html:34 +msgid "Ticket Id" +msgstr "Työpyynnön numero" + +#: etc/initialdata:303 +msgid "Ticket Resolved" +msgstr "" + +#: html/Search/Elements/PickRestriction:63 +msgid "Ticket attachment" +msgstr "Työpyynnön liite" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "Työpyynnön sisältö" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "Työpyynnön sisällön tyyppi" + +#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +msgid "Ticket could not be created due to an internal error" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:522 +msgid "Ticket created" +msgstr "Työpyyntö luotu" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "Työpyynnön luonti epäonnistui" + +#: lib/RT/Transaction_Overlay.pm:527 +msgid "Ticket deleted" +msgstr "Työpyyntö poistettu" + +#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +msgid "Ticket id not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "" + +#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +msgid "Ticket not found" +msgstr "" + +#: etc/initialdata:289 +msgid "Ticket status changed" +msgstr "" + +#: html/Ticket/Update.html:39 +msgid "Ticket watchers" +msgstr "Työpyynnön tarkkailijat" + +#: html/Elements/Tabs:49 +msgid "Tickets" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Tickets from %1" +msgstr "Työpyynnöt %1" + +#: html/Approvals/Elements/ShowDependency:27 +msgid "Tickets which depend on this approval:" +msgstr "" + +#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +msgid "Time Left" +msgstr "Aikaa jäljellä" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +msgid "Time Worked" +msgstr "Aikaa käytetty" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "Aikaa jäljellä" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "Aika" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "Aikaa käytetty" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1165 +msgid "TimeWorked" +msgstr "" + +#: bin/rt-commit-handler:402 +msgid "To generate a diff of this commit:" +msgstr "Luodaksesi diffin tästä käskystä:" + +#: bin/rt-commit-handler:391 +msgid "To generate a diff of this commit:\\n" +msgstr "To generate a diff of this commit:\\n" + +#: lib/RT/Ticket_Overlay.pm:1168 +msgid "Told" +msgstr "Oltu yhteydessä" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:642 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "Toiminto %1 puhdistettu" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "Toiminto luotu" + +#: lib/RT/Transaction_Overlay.pm:89 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:701 +msgid "Transactions are immutable" +msgstr "Toiminnot ovat muuttumattomia" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "Yritetään poistaa oikeus: %1" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "Ti" + +#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "Tyyppi" + +#: lib/RT/ScripCondition_Overlay.pm:104 +msgid "Unimplemented" +msgstr "Toteuttamaton" + +#: html/Admin/Users/Modify.html:68 +msgid "Unix login" +msgstr "Unix login" + +#: html/Admin/Elements/ModifyUser:62 +msgid "UnixUsername" +msgstr "Käyttäjän Unix-tunnus" + +#: lib/RT/Attachment_Overlay.pm:265 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "Tuntematon sisällön enkoodaus %1" + +#: html/Elements/SelectResultsPerPage:37 +msgid "Unlimited" +msgstr "Rajoittamaton" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:571 +msgid "Untaken" +msgstr "Ottamaton" + +#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +msgid "Update" +msgstr "Päivitä" + +#: html/Admin/Users/Prefs.html:62 +msgid "Update ID" +msgstr "Päivitä numero" + +#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +msgid "Update Type" +msgstr "Päivitä tyyppi" + +#: html/Search/Listing.html:61 +msgid "Update all these tickets at once" +msgstr "Päivitä kaikki nämä työpyynnöt kerralla" + +#: html/Admin/Users/Prefs.html:49 +msgid "Update email" +msgstr "Päivitä sähköposti" + +#: html/Admin/Users/Prefs.html:55 +msgid "Update name" +msgstr "Päivitä nimi" + +#: lib/RT/Interface/Web.pm:375 +msgid "Update not recorded." +msgstr "Päivitystä ei tallennettu" + +#: html/Search/Bulk.html:81 +msgid "Update selected tickets" +msgstr "Päivitä valitut työpyynnöt" + +#: html/Admin/Users/Prefs.html:36 +msgid "Update signature" +msgstr "Päivitä allekirjoitus" + +#: html/Ticket/ModifyAll.html:63 +msgid "Update ticket" +msgstr "Päivitä työpyyntö" + +#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 +#. ($Ticket->id) +msgid "Update ticket # %1" +msgstr "Päivitä työpyyntö # %1" + +#: html/SelfService/Update.html:50 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Päivitä työpyyntö #%1" + +#: html/Ticket/Update.html:135 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "" + +#: lib/RT/Interface/Web.pm:373 +msgid "Update type was neither correspondence nor comment." +msgstr "Päivityksen tyyppi ei ollut kirjeenvaihto eikä kommentti." + +#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +msgid "Updated" +msgstr "Päivitetty" + +#: NOT FOUND IN SOURCE +msgid "User %1 %2: %3\\n" +msgstr "Käyttäjä %1 %2: %3\\n" + +#: NOT FOUND IN SOURCE +msgid "User %1 Password: %2\\n" +msgstr "Käyttäjä %1 Salasana: %2\\n" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found" +msgstr "Käyttäjää '%1' ei löydetty" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found\\n" +msgstr "Käyttäjää '%1' ei löydetty\\n" + +#: etc/initialdata:125 etc/initialdata:191 +msgid "User Defined" +msgstr "" + +#: html/Admin/Users/Prefs.html:59 +msgid "User ID" +msgstr "Käyttäjän tunnus" + +#: html/Elements/SelectUsers:26 +msgid "User Id" +msgstr "Käyttäjän tunnus" + +#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +msgid "User Rights" +msgstr "Käyttäjän oikeudet" + +#: html/Admin/Users/Modify.html:226 +#. ($msg) +msgid "User could not be created: %1" +msgstr "Käyttäjää ei voitu luoda: %1" + +#: lib/RT/User_Overlay.pm:262 +msgid "User created" +msgstr "Käyttäjä luotu" + +#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "Käyttäjän luomat ryhmät" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "Käyttäjää informoitu" + +#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +msgid "User view" +msgstr "Käyttäjän näkymä" + +#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +msgid "Username" +msgstr "Käyttäjätunnus" + +#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +msgid "Users" +msgstr "Käyttäjät" + +#: html/Admin/Users/index.html:65 +msgid "Users matching search criteria" +msgstr "Hakua vastaavat käyttäjät" + +#: html/Search/Elements/PickRestriction:51 +msgid "ValueOfQueue" +msgstr "Työpyynnon arvo" + +#: html/Admin/Elements/EditCustomField:40 +msgid "Values" +msgstr "Arvot" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Watch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "WatchAsAdminCc" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "" + +#: html/Admin/Elements/QueueTabs:42 +msgid "Watchers" +msgstr "Tarkkailijat" + +#: html/Admin/Elements/ModifyUser:56 +msgid "WebEncoding" +msgstr "Web Enkoodaus" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "Ke" + +#: etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "" + +#: etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "" + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "" + +#: etc/upgrade/2.1.71:79 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "" + +#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +msgid "Work" +msgstr "Työ" + +#: html/Admin/Elements/ModifyUser:70 +msgid "WorkPhone" +msgstr "Työpuhelin" + +#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +msgid "Worked" +msgstr "Tehty" + +#: lib/RT/Ticket_Overlay.pm:3056 +msgid "You already own this ticket" +msgstr "Omistat jo tämän työpyynnön" + +#: html/autohandler:121 +msgid "You are not an authorized user" +msgstr "Et ole autorisoitu käyttäjä" + +#: lib/RT/Ticket_Overlay.pm:2930 +msgid "You can only reassign tickets that you own or that are unowned" +msgstr "Voit palauttaa vain työpyyntöjä jotka omistat itse tai jotka ovat ilman omistajaa" + +#: NOT FOUND IN SOURCE +msgid "You don't have permission to view that ticket.\\n" +msgstr "Sinulla ei ole oikeutta tarkastella tätä työpyyntöä.\\n" + +#: docs/design_docs/string-extraction-guide.txt:47 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "Löysit %1 työpyyntöä työjonosta %2" + +#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +msgid "You have been logged out of RT." +msgstr "Olet kirjautunut ulos RT:stä" + +#: html/SelfService/Display.html:134 +msgid "You have no permission to create tickets in that queue." +msgstr "Sinulla ei ole oikeutta luoda työpyyntöjä tähän työjonoon." + +#: lib/RT/Ticket_Overlay.pm:1895 +msgid "You may not create requests in that queue." +msgstr "Et ehkä voi luoda työpyyntöjä tuohon työjonoon." + +#: html/NoAuth/Logout.html:36 +msgid "You're welcome to login again" +msgstr "Tervetuloa kirjautumaan järjestelmään uudelleen" + +#: html/SelfService/Elements/MyRequests:25 +#. ($friendly_status) +msgid "Your %1 requests" +msgstr "Sinun %1 työpyyntöäsi" + +#: NOT FOUND IN SOURCE +msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "RT:n ylläpitäjä on konfiguroinut RT:n käynnisävät sähköpostialiakset väärin." + +#: etc/initialdata:429 etc/upgrade/2.1.71:146 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "" + +#: etc/initialdata:463 etc/upgrade/2.1.71:180 +msgid "Your request has been approved." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "" + +#: etc/initialdata:384 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "" + +#: html/autohandler:136 html/autohandler:142 +msgid "Your username or password is incorrect" +msgstr "Käyttäjätunnuksesi tai salasanasi on väärä" + +#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +msgid "Zip" +msgstr "Postinumero" + +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "" + +#: html/User/Elements/DelegateRights:59 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "sallittu käyttäjälle %1" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +msgid "contains" +msgstr "sisältää" + +#: html/Elements/SelectAttachmentField:26 +msgid "content" +msgstr "" + +#: html/Elements/SelectAttachmentField:27 +msgid "content-type" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2282 +msgid "correspondence (probably) not sent" +msgstr "kirjeenvaihtoa (luultavasti) ei ole asetettu" + +#: lib/RT/Ticket_Overlay.pm:2292 +msgid "correspondence sent" +msgstr "kirjeenvaihto lähetetty" + +#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +msgid "days" +msgstr "päivää" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "" + +#: html/Search/Listing.html:75 +msgid "delete" +msgstr "poista" + +#: lib/RT/Queue_Overlay.pm:63 +msgid "deleted" +msgstr "poistettu" + +#: html/Search/Elements/PickRestriction:68 +msgid "does not match" +msgstr "ei täsmää" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +msgid "doesn't contain" +msgstr "ei sisällä" + +#: html/Elements/SelectEqualityOperator:38 +msgid "equal to" +msgstr "on yhtäsuuri" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "" + +#: html/Elements/SelectAttachmentField:28 +msgid "filename" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "greater than" +msgstr "suurempi kuin" + +#: lib/RT/Group_Overlay.pm:194 +#. ($self->Name) +msgid "group '%1'" +msgstr "ryhmä %1" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "tunnit" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "numero" + +#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "is" +msgstr "on" + +#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +msgid "isn't" +msgstr "ei ole" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "less than" +msgstr "vähemmän kuin" + +#: html/Search/Elements/PickRestriction:67 +msgid "matches" +msgstr "sisältää" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "min" + +#: html/Ticket/Update.html:66 +msgid "minutes" +msgstr "minuuttia" + +#: bin/rt-commit-handler:765 +msgid "modifications\\n\\n" +msgstr "muokkaukset\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "kuukausia" + +#: lib/RT/Queue_Overlay.pm:58 +msgid "new" +msgstr "uusi" + +#: html/Admin/Elements/EditScrips:43 +msgid "no value" +msgstr "" + +#: html/Ticket/Elements/EditWatchers:28 +msgid "none" +msgstr "ei mitään" + +#: html/Elements/SelectEqualityOperator:38 +msgid "not equal to" +msgstr "eri suuri kuin" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "open" +msgstr "avoin" + +#: lib/RT/Group_Overlay.pm:199 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "oma ryhmä '%1' käyttäjälle '%2'" + +#: lib/RT/Group_Overlay.pm:207 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "työjono %1 %2" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "rejected" +msgstr "hylätty" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "resolved" +msgstr "päätetty" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "sec" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "stalled" +msgstr "jäädytetty" + +#: lib/RT/Group_Overlay.pm:202 +#. ($self->Type) +msgid "system %1" +msgstr "systeemi %1" + +#: lib/RT/Group_Overlay.pm:213 +#. ($self->Type) +msgid "system group '%1'" +msgstr "systeemiryhmä '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:42 +msgid "the calling component did not specify why" +msgstr "kutsuva komponentti ei eritellyt syytä" + +#: lib/RT/Group_Overlay.pm:210 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "työpyyntö #%1 %2" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "" + +#: lib/RT/Group_Overlay.pm:216 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "kuvalematon ryhmä %1" + +#: lib/RT/Group_Overlay.pm:191 +#. ($user->Object->Name) +msgid "user %1" +msgstr "käyttäjä %1" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "viikkoa" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "pohjalla %1" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "vuosia" + diff --git a/rt/lib/RT/I18N/fr.po b/rt/lib/RT/I18N/fr.po new file mode 100644 index 000000000..4ef68fb3a --- /dev/null +++ b/rt/lib/RT/I18N/fr.po @@ -0,0 +1,4959 @@ +# Copyright (c) 2002 Jesse Vincent <jesse@bestpractical.com> +# +msgid "" +msgstr "" +"Project-Id-Version: RT 3.0.4pre1\n" +"POT-Creation-Date: 2002-05-02 11:36+0800\n" +"PO-Revision-Date: 2003-07-03 02:00+0800\n" +"Last-Translator: Blaise Thauvin <blaise@fdn.fr>\n" +"Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: html/Elements/MyRequests:27 html/Elements/MyTickets:27 +msgid "#" +msgstr "n°" + +#: NOT FOUND IN SOURCE +msgid "#%1" +msgstr "n°%1" + +#: 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 +#. ($Ticket->Id, $Ticket->Subject) +#. ($Ticket->id, $Ticket->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "n°%1: %2" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "%1 %2" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($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:3569 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "%1 %2 ajouté" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "il y a %1 %2" + +#: lib/RT/Ticket_Overlay.pm:3575 lib/RT/Transaction_Overlay.pm:564 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 %2 changé en %3" + +#: lib/RT/Ticket_Overlay.pm:3572 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "%1 %2 supprimé" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 of group %3" +msgstr "%1 %2 du groupe %3" + +#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 with template %3" +msgstr "%1 %2 avec modèle %3" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "%1 (%2) %3 ce ticket\\n" + +#: html/Search/Listing.html:56 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "Tickets %1 à %2" + +#: bin/rt-crontool:168 bin/rt-crontool:175 bin/rt-crontool:181 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "%1 - Un paramètre à passer à %2" + +#: bin/rt-crontool:184 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - Ecrit les mises à jour de statuts sur STDOUT" + +#: bin/rt-crontool:178 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - Précisez l'action que vous voulez utiliser" + +#: bin/rt-crontool:172 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - Précisez la condition que vous voulez utiliser" + +#: bin/rt-crontool:165 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - Précisez la recherche que vous voulez utiliser" + +#: lib/RT/ScripAction_Overlay.pm:121 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "%1 ScripAction chargée" + +#: lib/RT/Ticket_Overlay.pm:3602 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "%1 ajouté(e) comme valeur de %2" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on" +msgstr "les alias %1 nécessitent un TicketId sur lequel travailler" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on " +msgstr "les alias %1 nécessitent un TicketId sur lequel travailler " + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on (from %2) %3" +msgstr "les alias %1 nécessitent un TicketId pour fonctionner avec (depuis %2) %3" + +#: lib/RT/Link_Overlay.pm:116 lib/RT/Link_Overlay.pm:123 +#. ($args{'Base'}) +#. ($args{'Target'}) +msgid "%1 appears to be a local object, but can't be found in the database" +msgstr "%1 semble être un objet local, mais est introuvable dans la base de données" + +#: html/Ticket/Elements/ShowDates:51 lib/RT/Transaction_Overlay.pm:481 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 par %2" + +#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:675 lib/RT/Transaction_Overlay.pm:684 lib/RT/Transaction_Overlay.pm:687 +#. ($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 changé(e) de %2 à %3" + +#: lib/RT/Interface/Web.pm:893 +msgid "%1 could not be set to %2." +msgstr "%1 n'a pas pu être positionné à %2" + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "%1 n'a pas pu initialiser une transaction (%2)\\n" + +#: lib/RT/Ticket_Overlay.pm:2867 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 ne peut pas mettre le statut à résolu. La base de données RT est peut être incohérente." + +#: html/Elements/MyTickets:24 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "Mes %1 tickets à traiter en priorité..." + +#: html/Elements/MyRequests:24 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "Mes %1 demandes les plus prioritaires..." + +#: bin/rt-crontool:160 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "%1 est un outil agissant sur les tickets depuis un planificateur externe tel que cron" + +#: lib/RT/Queue_Overlay.pm:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 n'est plus un %2 pour cette queue." + +#: lib/RT/Ticket_Overlay.pm:1587 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 n'est plus un %2 pour ce ticket." + +#: lib/RT/Ticket_Overlay.pm:3658 +#. ($args{'Value'}, $cf->Name) +msgid "%1 is no longer a value for custom field %2" +msgstr "%1 n'est plus une valeur pour le champ personnalisé %2" + +#: NOT FOUND IN SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "%1 n'est pas un identifiant de queue valide" + +#: html/Ticket/Elements/ShowBasics:35 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 min" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "%1 non montré" + +#: html/User/Elements/DelegateRights:75 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "Droits de %1" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "%1 réussi\\n" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "Type %1 inconnu pour $MessageId" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "type %1 inconnu pour %2" + +#: NOT FOUND IN SOURCE +msgid "%1 was created without a CurrentUser\\n" +msgstr "%1 a été créé sans utilisateur courant\\n" + +#: lib/RT/Action/ResolveMembers.pm:41 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 résoudra tous les membres d'un ticket groupé résolu." + +#: NOT FOUND IN SOURCE +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "%1 va bloquer une base [locale] s'il dépend ou est membre d'une demande liée." + +#: lib/RT/Transaction_Overlay.pm:433 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: pas d'attachement spécifié" + +#: html/Ticket/Elements/ShowTransaction:88 +#. ($size) +msgid "%1b" +msgstr "%1b" + +#: html/Ticket/Elements/ShowTransaction:85 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "%1k" + +#: lib/RT/Ticket_Overlay.pm:1176 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "'%1' est un statut invalide" + +#: NOT FOUND IN SOURCE +msgid "'%1' not a recognized action. " +msgstr "'%1' n'est pas une action connue. " + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete group member)" +msgstr "(Cocher la case pour supprimer un membre du groupe)" + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete scrip)" +msgstr "(Cocher la case pour supprimer un scrip)" + +#: 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/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 +msgid "(Check box to delete)" +msgstr "(Cocher la case pour supprimer)" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "(Cocher la case pour supprimer)" + +#: html/Ticket/Create.html:177 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Entrer les numéros de tickets ou les URLs, séparés par des espaces)" + +#: 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 "Si laissé à blanc, valeur par défaut : %1" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "(Non renseigné)" + +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +msgid "(No custom fields)" +msgstr "Pas de champ personnalisé" + +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +msgid "(No members)" +msgstr "(Aucun membre)" + +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +msgid "(No scrips)" +msgstr "(Aucun Scrip)" + +#: html/Admin/Elements/EditTemplates:30 +msgid "(No templates)" +msgstr "Aucun modèle" + +#: html/Ticket/Update.html:83 +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 "(Envoie une copie cachée de cette mise à jour à une liste d'adresses email séparées par des virgules. Ceci <b>ne changera pas</b> les destinataires des mises à jour suivantes.)" + +#: 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 "(Envoie une copie cachée de cette mise à jour à une liste d'adresses email séparées par des virgules. Ceci <b>ne changera pas</b> les destinataires des mises à jour suivantes.)" + +#: 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 "(Envoie une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ces personnes <b>recevront</b> les mises à jour suivantes.)" + +#: html/Ticket/Update.html:79 +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 "(Envoie une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ceci <b>ne changera pas</b> les destinataires des mises à jour suivantes.)" + +#: 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 "Envoie une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ceci <b>ne changera pas</b> les destinataires des mises à jour suivantes.)" + +#: 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 "(Envoie une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ces personnes <b>recevront</b> les mises à jour suivantes.)" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +msgid "(empty)" +msgstr "(vide)" + +#: html/Admin/Users/index.html:38 +msgid "(no name listed)" +msgstr "(aucun nom)" + +#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 +msgid "(no subject)" +msgstr "(pas de sujet)" + +#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:60 html/Ticket/Elements/ShowCustomFields:35 lib/RT/Transaction_Overlay.pm:534 +msgid "(no value)" +msgstr "(non renseigné)" + +#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:115 +msgid "(only one ticket)" +msgstr "(un seul ticket)" + +#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 +msgid "(pending approval)" +msgstr "(en attente d'approbation)" + +#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 +msgid "(pending other tickets)" +msgstr "(en attente d'autres tickets)" + +#: NOT FOUND IN SOURCE +msgid "(requestor's group)" +msgstr "(groupe du demandeur)" + +#: html/Admin/Users/Modify.html:49 +msgid "(required)" +msgstr "(exigé)" + +#: html/Ticket/Elements/ShowTransaction:91 +msgid "(untitled)" +msgstr "(sans titre)" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "Mes 25 tickets à traiter en priorité..." + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "Mes 25 demandes les plus prioritaires..." + +#: html/Ticket/Elements/ShowBasics:31 +msgid "<% $Ticket->Status%>" +msgstr "<% $Ticket->Statut%>" + +#: html/Elements/SelectTicketTypes:26 +msgid "<% $_ %>" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"Créer un ticket dans\"> %1" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "Un modèle vide" + +#: NOT FOUND IN SOURCE +msgid "ACE Deleted" +msgstr "ACE Supprimé" + +#: NOT FOUND IN SOURCE +msgid "ACE Loaded" +msgstr "ACE Chargé" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be deleted" +msgstr "l'ACE n'a pu être supprimé" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be found" +msgstr "l'ACE n'a pu être trouvé" + +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +msgid "ACE not found" +msgstr "ACE non trouvé" + +#: lib/RT/ACE_Overlay.pm:830 +msgid "ACEs can only be created and deleted." +msgstr "Les ACE peuvent seulement être créés et effacés." + +#: bin/rt-commit-handler:754 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Interruption pour éviter des modifications de ticket involontaires" + +#: html/User/Elements/Tabs:31 +msgid "About me" +msgstr "A propos" + +#: html/Admin/Users/Modify.html:79 +msgid "Access control" +msgstr "contrôle d'accès" + +#: html/Admin/Elements/EditScrip:56 +msgid "Action" +msgstr "Action" + +#: lib/RT/Scrip_Overlay.pm:146 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "Action %1 non trouvée" + +#: bin/rt-crontool:122 +msgid "Action committed." +msgstr "Action validée" + +#: bin/rt-crontool:118 +msgid "Action prepared..." +msgstr "Action préparée..." + +#: html/Search/Bulk.html:95 +msgid "Add AdminCc" +msgstr "Ajouter AdminCC" + +#: html/Search/Bulk.html:91 +msgid "Add Cc" +msgstr "Ajouter CC" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 +msgid "Add More Files" +msgstr "Ajouter d'autres fichiers" + +#: NOT FOUND IN SOURCE +msgid "Add Next State" +msgstr "Ajouter étape suivant" + +#: html/Search/Bulk.html:87 +msgid "Add Requestor" +msgstr "Ajouter Demandeur" + +#: html/Admin/Elements/AddCustomFieldValue:24 +msgid "Add Value" +msgstr "Ajouter une valeur" + +#: NOT FOUND IN SOURCE +msgid "Add a keyword selection to this queue" +msgstr "Ajouter une sélection de mots clé à cette queue" + +#: NOT FOUND IN SOURCE +msgid "Add a new a global scrip" +msgstr "Ajouter un nouveau scrip global" + +#: NOT FOUND IN SOURCE +msgid "Add a scrip to this queue" +msgstr "Ajouter un scrip à cette queue" + +#: html/Admin/Global/Scrip.html:54 +msgid "Add a scrip which will apply to all queues" +msgstr "Ajouter un scrip qui s'ajoute à toutes les queues" + +#: html/Search/Bulk.html:127 +msgid "Add comments or replies to selected tickets" +msgstr "Ajouter des commentaires ou des réponses aux tickets sélectionnés" + +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +msgid "Add members" +msgstr "Ajouter des membres" + +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +msgid "Add new watchers" +msgstr "Ajouter de nouveaux observateurs" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "AjouterEtatSuivant" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "Ajout groupe/utilisateur comme %1 pour cette queue" + +#: lib/RT/Ticket_Overlay.pm:1471 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "Ajout groupe/utilisateur comme %1 pour ce ticket" + +#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:87 +msgid "Address1" +msgstr "Adresse1" + +#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:89 +msgid "Address2" +msgstr "Adresse2" + +#: html/Ticket/Create.html:73 +msgid "Admin Cc" +msgstr "Admin Cc" + +#: etc/initialdata:280 +msgid "Admin Comment" +msgstr "Commentaire Admin" + +#: etc/initialdata:259 +msgid "Admin Correspondence" +msgstr "Correspondance Admin " + +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +msgid "Admin queues" +msgstr "Administrateurs de queue" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "Gérer les Utilisateurs" + +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +msgid "Admin/Global configuration" +msgstr "configuration Gestion/Globale" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "Gestion/Groupes" + +#: html/Admin/Queues/Modify.html:24 html/Admin/Queues/Modify.html:28 +msgid "Admin/Queue/Basics" +msgstr "Gestion/Queues/Essentiel" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "GérerTousGroupesPersonnels" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 lib/RT/ACE_Overlay.pm:88 +msgid "AdminCc" +msgstr "AdminCc" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "CommentaireAdministrateur" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "CorrespondanceAdministrateur" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "AdminCustomFields" +msgstr "GérerChampsPersonnalisés" + +#: lib/RT/Group_Overlay.pm:145 +msgid "AdminGroup" +msgstr "GérerGroupes" + +#: lib/RT/Group_Overlay.pm:147 +msgid "AdminGroupMembership" +msgstr "GérerAppartenanceGroupes" + +#: lib/RT/System.pm:58 +msgid "AdminOwnPersonalGroups" +msgstr "GérerGroupesPersonnelsPropres" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "AdminQueue" +msgstr "GérerQueues" + +#: lib/RT/System.pm:59 +msgid "AdminUsers" +msgstr "GérerUtilisateurs" + +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +msgid "Administrative Cc" +msgstr "Cc Administratif" + +#: NOT FOUND IN SOURCE +msgid "Admins" +msgstr "Administrateurs" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "Recherche avancée" + +#: html/Elements/SelectDateRelation:35 +msgid "After" +msgstr "Après" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "Age" + +#: NOT FOUND IN SOURCE +msgid "Alias" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias for" +msgstr "Alias pour" + +#: etc/initialdata:348 +msgid "All Approvals Passed" +msgstr "Toutes les approbations obtenues" + +#: html/Admin/Elements/EditCustomFields:95 +msgid "All Custom Fields" +msgstr "Tous les champs personnalisés" + +#: html/Admin/Queues/index.html:52 +msgid "All Queues" +msgstr "Toutes les queues" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "Envoie toujours un message au demandeur indépendamment de l'expéditeur" + +#: html/Elements/Tabs:55 +msgid "Approval" +msgstr "Approbation" + +#: 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 "Approbation n°%1: %2" + +#: html/Approvals/index.html:53 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "Approbation n°%1: Notes non enregistrées en raison d'une erreur système" + +#: html/Approvals/index.html:51 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "Approbation n°%1: Notes non enregistrées" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "Détails de l'approbation" + +#: etc/initialdata:336 +msgid "Approval Passed" +msgstr "Approbations obtenues" + +#: etc/initialdata:359 +msgid "Approval Rejected" +msgstr "Approbations refusées" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "Diagramme d'approbation" + +#: html/Approvals/Elements/Approve:43 +msgid "Approve" +msgstr "Approuver" + +#: etc/initialdata:486 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "Notes de l'approbateur: %1" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "Avr." + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "Avril" + +#: html/Elements/SelectSortOrder:34 +msgid "Ascending" +msgstr "Croissant" + +#: html/Search/Bulk.html:136 html/SelfService/Update.html:32 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 +msgid "Attach" +msgstr "Attaché" + +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +msgid "Attach file" +msgstr "Attacher un ficher" + +#: html/Ticket/Create.html:97 html/Ticket/Update.html:87 +msgid "Attached file" +msgstr "Fichier attaché" + +#: NOT FOUND IN SOURCE +msgid "Attachment '%1' could not be loaded" +msgstr "Attachement '%1' ne peut pas être chargé" + +#: lib/RT/Transaction_Overlay.pm:441 +msgid "Attachment created" +msgstr "Attachement créé" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "Nom de fichier de l'attachement" + +#: html/Ticket/Elements/ShowAttachments:25 +msgid "Attachments" +msgstr "Attachements" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "Aoû." + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "Août" + +#: html/Admin/Elements/ModifyUser:65 +msgid "AuthSystem" +msgstr "AuthSystem" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "RéponseAuto" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "Réponse automatique aux demandeurs" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "RéponseAutomtiqueAuxDemandeurs" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "Signature PGP invalide: %1\\n" + +#: NOT FOUND IN SOURCE +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "Id d'attachement erroné. Impossible de trouver l'attachement '%1'\\n" + +#: bin/rt-commit-handler:826 +#. ($val) +msgid "Bad data in %1" +msgstr "Données incorrectes dans %1" + +#: NOT FOUND IN SOURCE +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "Numéro de transaction incorrect pour l'attachement. %1 doit être %2\\n" + +#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 +msgid "Basics" +msgstr "Essentiel" + +#: html/Ticket/Update.html:81 +msgid "Bcc" +msgstr "Bcc" + +#: html/Admin/Elements/EditScrip:87 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/User/Groups/Modify.html:55 +msgid "Be sure to save your changes" +msgstr "Assurez-vous de sauvegarder vos modifications" + +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:321 +msgid "Before" +msgstr "Avant" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "Débuter l'approbation" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "Vide" + +#: html/Search/Listing.html:78 +msgid "Bookmarkable URL for this search" +msgstr "URL prédéfinie pour cette recherche" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +msgid "Brief headers" +msgstr "En-têtes courts" + +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +msgid "Bulk ticket update" +msgstr "modification de tickets en masse" + +#: lib/RT/User_Overlay.pm:1524 +msgid "Can not modify system users" +msgstr "Les utilisateurs système ne peuvent être modifiés" + +#: lib/RT/Queue_Overlay.pm:66 +msgid "Can this principal see this queue" +msgstr "Le groupe/utilisateur peut-il voir cette queue" + +#: lib/RT/CustomField_Overlay.pm:205 +msgid "Can't add a custom field value without a name" +msgstr "Impossible d'ajouter une valeur de champ personnalisé sans un nom" + +#: lib/RT/Link_Overlay.pm:131 +msgid "Can't link a ticket to itself" +msgstr "Un ticket ne peut être lié à lui même" + +#: lib/RT/Ticket_Overlay.pm:2844 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "Impossible de fusionner un ticket à un ticket fusionné. Vous ne devriez jamais obtenir cette erreur" + +#: lib/RT/Ticket_Overlay.pm:2646 lib/RT/Ticket_Overlay.pm:2725 +msgid "Can't specifiy both base and target" +msgstr "Impossible de spécifier à la fois la base et la cible" + +#: html/autohandler:113 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "Impossible de créer l'utilisateur: %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:44 html/Ticket/Update.html:76 lib/RT/ACE_Overlay.pm:87 +msgid "Cc" +msgstr "Cc" + +#: html/SelfService/Prefs.html:30 +msgid "Change password" +msgstr "Changer le mot de passe" + +#: html/Ticket/Create.html:100 html/Ticket/Update.html:90 +msgid "Check box to delete" +msgstr "Cocher la case pour supprimer" + +#: html/Admin/Elements/SelectRights:30 +msgid "Check box to revoke right" +msgstr "Cocher la case pour retirer le droit" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:130 html/Ticket/Elements/EditLinks:68 html/Ticket/Elements/ShowLinks:56 +msgid "Children" +msgstr "Fils" + +#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:91 +msgid "City" +msgstr "Ville" + +#: html/Ticket/Elements/ShowDates:46 +msgid "Closed" +msgstr "Fermé" + +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "Tickets fermés" + +#: NOT FOUND IN SOURCE +msgid "Closed requests" +msgstr "Demandes closes" + +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "Tickets fermés" + +#: NOT FOUND IN SOURCE +msgid "Code" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "Commande incomprise! \\n" + +#: html/Ticket/Elements/ShowTransaction:165 html/Ticket/Elements/Tabs:152 +msgid "Comment" +msgstr "Commenter" + +#: html/Admin/Elements/ModifyQueue:44 html/Admin/Queues/Modify.html:57 +msgid "Comment Address" +msgstr "Adresse de commentaire" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "Commentaire non enregistré" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Comment on tickets" +msgstr "Commentaire sur le ticket" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "CommentOnTicket" +msgstr "CommenterTicket" + +#: html/Admin/Elements/ModifyUser:34 +msgid "Comments" +msgstr "Commentaires" + +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:68 +msgid "Comments (Not sent to requestors)" +msgstr "Commentaires (non envoyés aux demandeurs)" + +#: html/Search/Bulk.html:131 +msgid "Comments (not sent to requestors)" +msgstr "Commentaires (non envoyés aux demandeurs)" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Comments about %1" +msgstr "Commentaires sur %1" + +#: html/Admin/Users/Modify.html:184 html/Ticket/Elements/ShowRequestor:43 +msgid "Comments about this user" +msgstr "Commentaires sur cet utilisateur" + +#: lib/RT/Transaction_Overlay.pm:543 +msgid "Comments added" +msgstr "Commentaires ajoutés" + +#: lib/RT/Action/Generic.pm:139 +msgid "Commit Stubbed" +msgstr "tr(Commit Stubbed)" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "Restrictions de compilation" + +#: html/Admin/Elements/EditScrip:40 +msgid "Condition" +msgstr "Condition" + +#: bin/rt-crontool:108 +msgid "Condition matches..." +msgstr "La condition satisfait..." + +#: lib/RT/Scrip_Overlay.pm:159 +msgid "Condition not found" +msgstr "Condition non trouvée" + +#: html/Elements/Tabs:49 +msgid "Configuration" +msgstr "Configuration" + +#: html/SelfService/Prefs.html:32 +msgid "Confirm" +msgstr "Confirmer" + +#: html/Admin/Elements/ModifyUser:59 +msgid "ContactInfoSystem" +msgstr "ContactInfoSystem" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "Date de contact ne peut pas être analysée" + +#: html/Admin/Elements/ModifyTemplate:43 html/Ticket/ModifyAll.html:86 +msgid "Content" +msgstr "Contenu" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "Le groupe n'a pas pu être créé" + +#: etc/initialdata:271 +msgid "Correspondence" +msgstr "Courrier" + +#: html/Admin/Elements/ModifyQueue:38 html/Admin/Queues/Modify.html:50 +msgid "Correspondence Address" +msgstr "Adresse de correspondance" + +#: lib/RT/Transaction_Overlay.pm:539 +msgid "Correspondence added" +msgstr "Courrier ajouté" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "Courrier non enregistré" + +#: lib/RT/Ticket_Overlay.pm:3589 +msgid "Could not add new custom field value for ticket. " +msgstr "Impossible d'ajouter une nouvelle valeur de champ personnalisé pour ce ticket. " + +#: NOT FOUND IN SOURCE +msgid "Could not add new custom field value for ticket. %1 " +msgstr "La valeur de champ personnalisé n'a pas pu être ajoutée. %1" + +#: lib/RT/Ticket_Overlay.pm:3095 lib/RT/Ticket_Overlay.pm:3103 lib/RT/Ticket_Overlay.pm:3120 +msgid "Could not change owner. " +msgstr "Impossible de changer l'intervenant. " + +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:165 +#. ($msg) +msgid "Could not create CustomField" +msgstr "Impossible de créer un champ personnalisé CustomField" + +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 +msgid "Could not create group" +msgstr "Impossible de créer un groupe" + +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#. ($msg) +msgid "Could not create template: %1" +msgstr "Impossible de créer un modèle : %1" + +#: lib/RT/Ticket_Overlay.pm:1109 lib/RT/Ticket_Overlay.pm:352 +msgid "Could not create ticket. Queue not set" +msgstr "Impossible de créer un ticket. Queue non indiquée" + +#: lib/RT/User_Overlay.pm:267 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:483 +msgid "Could not create user" +msgstr "Impossible de créer un utilisateur" + +#: NOT FOUND IN SOURCE +msgid "Could not create watcher for requestor" +msgstr "L'observateur n'a pas pu être crée pour le demandeur" + +#: NOT FOUND IN SOURCE +msgid "Could not find a ticket with id %1" +msgstr "Impossible de trouver le ticket numéro %1" + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "Impossible de trouver le groupe %1." + +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1439 +msgid "Could not find or create that user" +msgstr "Impossible de trouver ou créer cet utilisateur" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1518 +msgid "Could not find that principal" +msgstr "Impossible de trouver ce groupe ou utilisateur" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "Impossible de trouver l'utilisateur %1." + +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +msgid "Could not load group" +msgstr "Impossible de charger ce groupe" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "Impossible de faire de ce groupe/utilisateur un %1 pour cette queue" + +#: lib/RT/Ticket_Overlay.pm:1460 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "Impossible de faire de ce groupe/utilisateur un %1 pour ce ticket" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "Impossible de supprimer ce groupe/utilisateur comme un %1 pour cette queue" + +#: lib/RT/Ticket_Overlay.pm:1576 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "Impossible de supprimer ce groupe/utilisateur comme un %1 pour ce ticket" + +#: lib/RT/Group_Overlay.pm:984 +msgid "Couldn't add member to group" +msgstr "Impossible d'ajouter un membre à ce groupe" + +#: lib/RT/Ticket_Overlay.pm:3599 lib/RT/Ticket_Overlay.pm:3655 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "Impossible de créer une transaction : %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't figure out what to do from gpg's reply\\n" +msgstr "Impossible de comprendre ce qu'il faut faire avec cette réponse gpg\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find group\\n" +msgstr "Groupe introuvable\\n" + +#: lib/RT/Interface/Web.pm:902 +msgid "Couldn't find row" +msgstr "Colonne introuvable" + +#: lib/RT/Group_Overlay.pm:958 +msgid "Couldn't find that principal" +msgstr "groupe/utilisateur introuvable" + +#: lib/RT/CustomField_Overlay.pm:239 +msgid "Couldn't find that value" +msgstr "Valeur introuvable" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find that watcher" +msgstr "L'observateur n'a pas pu être trouvé" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find user\\n" +msgstr "Utilisateur introuvable\\n" + +#: lib/RT/CurrentUser.pm:111 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Impossible de charger %1 depuis la base de données des utilisateurs.\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load KeywordSelects." +msgstr "KeywordSelects n'a pas pu être chargé" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "Impossible de charger le fichier de configuration RT '%1' %2" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Scrips." +msgstr "Les scrips n'ont pas pu être chargés" + +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#. ($id) +msgid "Couldn't load group %1" +msgstr "Impossible de charger le groupe %1" + +#: lib/RT/Link_Overlay.pm:174 lib/RT/Link_Overlay.pm:183 lib/RT/Link_Overlay.pm:210 +msgid "Couldn't load link" +msgstr "Impossible de charger le lien" + +#: html/Admin/Elements/EditCustomFields:146 html/Admin/Queues/People.html:120 +#. ($id) +msgid "Couldn't load queue" +msgstr "Impossible de charger la queue" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "Impossible de charger la queue %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "Impossible de charger le Scrip" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "Impossible de charger le modèle" + +#: html/Admin/Users/Prefs.html:78 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "Impossible de charger cet utilisateur (%1)" + +#: html/SelfService/Display.html:108 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Impossible de charger le ticket '%1'" + +#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:97 +msgid "Country" +msgstr "Pays" + +#: html/Admin/Elements/CreateUserCalled:25 html/Ticket/Create.html:134 html/Ticket/Create.html:194 +msgid "Create" +msgstr "Ajouter" + +#: etc/initialdata:127 +msgid "Create Tickets" +msgstr "Ajouter des tickets" + +#: html/Admin/Elements/EditCustomField:74 +msgid "Create a CustomField" +msgstr "Ajouter un Champ Personnalisé" + +#: html/Admin/Queues/CustomField.html:47 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "Ajouter un champ personnalisé à la queue %1" + +#: html/Admin/Global/CustomField.html:47 +msgid "Create a CustomField which applies to all queues" +msgstr "Ajouter un champ personnalisé à toutes les queues" + +#: NOT FOUND IN SOURCE +msgid "Create a new Custom Field" +msgstr "Ajouter un nouveaux champ personnalisé" + +#: NOT FOUND IN SOURCE +msgid "Create a new global scrip" +msgstr "Ajouter un nouveau scrip global" + +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +msgid "Create a new group" +msgstr "Ajouter un nouveau groupe" + +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +msgid "Create a new personal group" +msgstr "Ajouter un nouveau groupe personnel" + +#: NOT FOUND IN SOURCE +msgid "Create a new queue" +msgstr "Ajouter une nouvelle queue" + +#: NOT FOUND IN SOURCE +msgid "Create a new scrip" +msgstr "Ajouter un nouveau scrip" + +#: NOT FOUND IN SOURCE +msgid "Create a new template" +msgstr "Ajouter un nouveau modèle" + +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +msgid "Create a new ticket" +msgstr "Ajouter un nouveau ticket" + +#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:240 +msgid "Create a new user" +msgstr "Ajouter un nouvel utilisateur" + +#: html/Admin/Queues/Modify.html:103 +msgid "Create a queue" +msgstr "Ajouter une queue" + +#: NOT FOUND IN SOURCE +msgid "Create a queue called" +msgstr "Ajouter une nouvelle queue appelée" + +#: NOT FOUND IN SOURCE +msgid "Create a request" +msgstr "Ajouter une demande" + +#: html/Admin/Queues/Scrip.html:58 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "Ajouter un scrip pour la queue %1" + +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +msgid "Create a template" +msgstr "Ajouter un modèle" + +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "Ajouter un ticket" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1 / %2 / %3 " +msgstr "Echec à la création de: %1 / %2 / %3" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1/%2/%3" +msgstr "Echec à la création de: %1/%2/%3" + +#: etc/initialdata:129 +msgid "Create new tickets based on this scrip's template" +msgstr "Ajouter de nouveaux tickets basés sur le modèle de ce scrip" + +#: html/SelfService/Create.html:77 +msgid "Create ticket" +msgstr "Ajouter un ticket" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Create tickets in this queue" +msgstr "Ajouter des tickets dans cette queue" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Create, delete and modify custom fields" +msgstr "Ajouter, supprimer et modifier des champs personnalisés" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Create, delete and modify queues" +msgstr "Ajouter, supprimer et modifier les queues" + +#: NOT FOUND IN SOURCE +msgid "Create, delete and modify the members of any user's personal groups" +msgstr "Ajouter, supprime et modifie les membres des groupe spersonnels de n'importe quel utilisateur" + +#: lib/RT/System.pm:58 +msgid "Create, delete and modify the members of personal groups" +msgstr "Ajouter, supprimer et modifier les membres d'un groupe personnel" + +#: lib/RT/System.pm:59 +msgid "Create, delete and modify users" +msgstr "Ajouter, supprimer et modifier les utilisateurs" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "CreateTicket" +msgstr "CréerTicket" + +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:26 lib/RT/Ticket_Overlay.pm:1203 +msgid "Created" +msgstr "Créé" + +#: html/Admin/Elements/EditCustomField:87 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "Champ Personnalisé %1 ajouté" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "Modèle %1 créé" + +#: html/Ticket/Elements/EditLinks:27 +msgid "Current Relationships" +msgstr "Relations actuelles" + +#: html/Admin/Elements/EditScrips:29 +msgid "Current Scrips" +msgstr "Scrips actuels" + +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +msgid "Current members" +msgstr "Membres actuels" + +#: html/Admin/Elements/SelectRights:28 +msgid "Current rights" +msgstr "Droits actuels" + +#: html/Search/Listing.html:70 +msgid "Current search criteria" +msgstr "Critères de recherche courants" + +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +msgid "Current watchers" +msgstr "Observateurs actuels" + +#: html/Admin/Global/CustomField.html:54 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "Champ personnalisé n°%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 "Champs Personnalisés" + +#: html/Admin/Elements/EditScrip:72 +msgid "Custom action cleanup code" +msgstr "Programme de nettoyage d'action personnalisé" + +#: html/Admin/Elements/EditScrip:64 +msgid "Custom action preparation code" +msgstr "Programme de préparation d'action personnalisé " + +#: html/Admin/Elements/EditScrip:48 +msgid "Custom condition" +msgstr "Condition personnalisée" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "Champs personnalisés %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "Le champ personnalisé %1 a une valeur" + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "Le champ personnalisé %1 n'a pas de valeur" + +#: lib/RT/Ticket_Overlay.pm:3491 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Le champ personnalisé %1 est introuvable" + +#: html/Admin/Elements/EditCustomFields:196 +msgid "Custom field deleted" +msgstr "Champ personnalisé supprimé" + +#: lib/RT/Ticket_Overlay.pm:3641 +msgid "Custom field not found" +msgstr "Le champ personnalisé est introuvable" + +#: lib/RT/CustomField_Overlay.pm:349 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "La valeur du champ personnalisé %1 ne peut pas être trouvée pour le champ personnalisé %2" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "Valeur de champ personnalisé modifié de %1 à %2" + +#: lib/RT/CustomField_Overlay.pm:249 +msgid "Custom field value could not be deleted" +msgstr "La valeur du champ personnalisé ne peut pas être effacée" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Custom field value could not be found" +msgstr "La valeur du champ personnalisé ne peut par être trouvée" + +#: lib/RT/CustomField_Overlay.pm:247 lib/RT/CustomField_Overlay.pm:357 +msgid "Custom field value deleted" +msgstr "La valeur du champ personnalisé est effacée" + +#: lib/RT/Transaction_Overlay.pm:548 +msgid "CustomField" +msgstr "ChampPersonnalisé" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "Erreur de données" + +#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 +msgid "Dates" +msgstr "Dates" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "Déc." + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "Décembre" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "Modèle de réponse automatique par défaut" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "Modèle de réponse automatique par défaut" + +#: etc/initialdata:281 +msgid "Default admin comment template" +msgstr "Modèle de commentaire administrateur par défaut" + +#: etc/initialdata:260 +msgid "Default admin correspondence template" +msgstr "Modèle de courrier administrateur par défaut" + +#: etc/initialdata:272 +msgid "Default correspondence template" +msgstr "Modèle de courrier par défaut" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "Modèle de transaction par défaut" + +#: lib/RT/Transaction_Overlay.pm:694 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "Par défaut: %1/%2 modifié de %3 à %4" + +#: html/User/Delegation.html:24 html/User/Delegation.html:27 +msgid "Delegate rights" +msgstr "Déléguer les droits" + +#: lib/RT/System.pm:62 +msgid "Delegate specific rights which have been granted to you." +msgstr "Déléguer des droits spécifiques qui vous ont été accordés" + +#: lib/RT/System.pm:62 +msgid "DelegateRights" +msgstr "DéléguerDroits" + +#: html/User/Elements/Tabs:37 +msgid "Delegation" +msgstr "Délégation" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "Supprimer" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Delete tickets" +msgstr "Supprimer des tickets" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "DeleteTicket" +msgstr "SupprimerTicket" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "Effacer cet objet pourrait briser l'intégrité référentielle" + +#: lib/RT/Queue_Overlay.pm:293 +msgid "Deleting this object would break referential integrity" +msgstr "Effacer cet objet briserait l'intégrité référentielle" + +#: lib/RT/User_Overlay.pm:499 +msgid "Deleting this object would violate referential integrity" +msgstr "Effacer cet objet violerait l'intégrité référentielle" + +#: NOT FOUND IN SOURCE +msgid "Deleting this object would violate referential integrity." +msgstr "Effacer cet objet violerait l'intégrité référentielle" + +#: NOT FOUND IN SOURCE +msgid "Deleting this object would violate referential integrity. That's bad." +msgstr "Effacer cet objet violerait l'intégrité référentielle, c'est serait facheux!" + +#: html/Approvals/Elements/Approve:44 +msgid "Deny" +msgstr "Refuser" + +#: html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:122 html/Ticket/Elements/EditLinks:46 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 +msgid "Depended on by" +msgstr "En dépend" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "Dépendances : \\n" + +#: lib/RT/Transaction_Overlay.pm:626 +#. ($value) +msgid "Dependency by %1 added" +msgstr "Ajout de la dépendance par %1" + +#: lib/RT/Transaction_Overlay.pm:655 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "Suppression de la dépendance par %1" + +#: lib/RT/Transaction_Overlay.pm:624 +#. ($value) +msgid "Dependency on %1 added" +msgstr "Ajout de la dépendance de %1" + +#: lib/RT/Transaction_Overlay.pm:653 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "Suppression de la dépendance de %1" + +#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:179 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:118 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 +msgid "Depends on" +msgstr "Dépend de" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "DépendDe" + +#: html/Elements/SelectSortOrder:34 +msgid "Descending" +msgstr "Décroissant" + +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +msgid "Describe the issue below" +msgstr "Décrivez la situation ci-dessous" + +#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 +msgid "Description" +msgstr "Description" + +#: NOT FOUND IN SOURCE +msgid "Details" +msgstr "Détails" + +#: html/Ticket/Elements/Tabs:84 +msgid "Display" +msgstr "Afficher" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "Display Access Control List" +msgstr "Afficher la liste des droits" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "Display Scrip templates for this queue" +msgstr "Afficher les modèles de Scrips pour cette queue" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "Display Scrips for this queue" +msgstr "Afficher les Scrips pour cette queue" + +#: html/Ticket/Elements/ShowHistory:34 +msgid "Display mode" +msgstr "Mode d'affichage" + +#: NOT FOUND IN SOURCE +msgid "Display ticket #%1" +msgstr "Afficher le ticket n°%1" + +#: lib/RT/System.pm:53 +msgid "Do anything and everything" +msgstr "Faire tout et n'importe quoi" + +#: html/Elements/Refresh:29 +msgid "Don't refresh this page." +msgstr "Ne pas rafraîchir cette page." + +#: html/Search/Elements/PickRestriction:113 +msgid "Don't show search results" +msgstr "Ne pas afficher le résultat de la recherche" + +#: html/Ticket/Elements/ShowTransaction:91 +msgid "Download" +msgstr "Télécharger" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:42 lib/RT/Ticket_Overlay.pm:1207 +msgid "Due" +msgstr "Echéance" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "Date d'échéance '%1' n'est pas comprise" + +#: bin/rt-commit-handler:753 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "ERREUR: impossible de charger le ticket '%1' : %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "Modifier" + +#: NOT FOUND IN SOURCE +msgid "Edit Conditions" +msgstr "Modifier les conditions" + +#: html/Admin/Queues/CustomFields.html:44 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "Editer les champs personnalisés pour %1" + +#: html/Search/Bulk.html:143 html/Ticket/ModifyLinks.html:35 +msgid "Edit Relationships" +msgstr "Modifier les relations" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "Modifier les modèles pour la queue %1" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "Modifier les mots clé" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "Modifier les scrips" + +#: html/Admin/Global/index.html:45 +msgid "Edit system templates" +msgstr "Modifier les modèles système" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "Modifier les modèles pour %1" + +#: html/Admin/Elements/ModifyQueue:24 html/Admin/Queues/Modify.html:118 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "Modifier la configuration de la queue %1" + +#: html/Admin/Elements/ModifyUser:24 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "Modifier la configuration de l'utilisateur %1" + +#: html/Admin/Elements/EditCustomField:90 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Modifier le ChampPersonnalisé %1" + +#: html/Admin/Groups/Members.html:31 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Modifier les membres du groupe %1" + +#: html/User/Groups/Members.html:128 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "Modifier les membres du groupe personnel %1" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "Modifie le modèle %1" + +#: lib/RT/Ticket_Overlay.pm:2660 lib/RT/Ticket_Overlay.pm:2738 +msgid "Either base or target must be specified" +msgstr "La base ou la cible doivent être spécifiées" + +#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:41 +msgid "Email" +msgstr "Email" + +#: lib/RT/User_Overlay.pm:247 +msgid "Email address in use" +msgstr "Adresse email utilisée" + +#: html/Admin/Elements/ModifyUser:41 +msgid "EmailAddress" +msgstr "EmailAddress" + +#: html/Admin/Elements/ModifyUser:53 +msgid "EmailEncoding" +msgstr "EmailEncoding" + +#: html/Admin/Elements/EditCustomField:50 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "Activé (Décocher cette case désactive ce champ personnalisé)" + +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "Activé (Décocher cette case désactive ce groupe)" + +#: html/Admin/Queues/Modify.html:83 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Activé (Décocher cette case désactive cette queue)" + +#: html/Admin/Elements/EditCustomFields:98 +msgid "Enabled Custom Fields" +msgstr "Champs personnalisés actifs" + +#: html/Admin/Queues/index.html:55 +msgid "Enabled Queues" +msgstr "Queues actives" + +#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:282 html/User/Groups/Modify.html:116 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "Statut actif %1" + +#: lib/RT/CustomField_Overlay.pm:427 +msgid "Enter multiple values" +msgstr "Entrer plusieurs valeurs" + +#: lib/RT/CustomField_Overlay.pm:424 +msgid "Enter one value" +msgstr "Entrer une seule valeur" + +#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:111 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Saisir les tickets ou URIs pour y lier les tickets. Séparer les saisies par des espaces." + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +msgid "Error" +msgstr "Erreur" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "Erreur à l'ajout de l'observateur" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Erreur de paramètres pour Queue->AddWatcher" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Erreur de paramètres pour Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1392 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Erreur de paramètres pour Ticket->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1549 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Erreur de paramètres pour Ticket->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "Tout le monde" + +#: bin/rt-crontool:193 +msgid "Example:" +msgstr "Exemple:" + +#: html/Admin/Elements/ModifyUser:63 +msgid "ExternalAuthId" +msgstr "ExternalAuthId" + +#: html/Admin/Elements/ModifyUser:57 +msgid "ExternalContactInfoId" +msgstr "ExternalContactInfoId" + +#: html/Admin/Users/Modify.html:72 +msgid "Extra info" +msgstr "Info supplémentaire" + +#: lib/RT/User_Overlay.pm:363 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Recherche du pseudo groupe d'utilisateurs 'Priviligiés' infructueuse" + +#: lib/RT/User_Overlay.pm:370 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Recherche du pseudo groupe d'utilisateurs 'non-privilégiés' infructueuse" + +#: bin/rt-crontool:137 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "Echec de chargement du module %1. (%2)" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "Fév." + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "Février" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "Fin" + +#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "Priorité finale" + +#: lib/RT/Ticket_Overlay.pm:1198 +msgid "FinalPriority" +msgstr "PrioritéFinale" + +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +msgid "Find group whose" +msgstr "Trouver un groupe dont" + +#: NOT FOUND IN SOURCE +msgid "Find new/open tickets" +msgstr "Accéder aux tickets en cours" + +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +msgid "Find people whose" +msgstr "Trouver les gens dont" + +#: html/Search/Listing.html:107 +msgid "Find tickets" +msgstr "Rechercher des tickets" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "Terminer l'approbation" + +#: html/Ticket/Elements/Tabs:57 +msgid "First" +msgstr "Premier" + +#: html/Search/Listing.html:40 +msgid "First page" +msgstr "Première page" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "Foo Bar Baz" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "Foo!" + +#: html/Search/Bulk.html:86 +msgid "Force change" +msgstr "Forcer la modification" + +#: html/Search/Listing.html:105 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "%quant(%1,ticket) trouvés" + +#: lib/RT/Interface/Web.pm:904 +msgid "Found Object" +msgstr "Objet trouvé" + +#: html/Admin/Elements/ModifyUser:43 +msgid "FreeformContactInfo" +msgstr "SaisieLibreInfoContact" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformMultiple" +msgstr "SaisieLibreMultiple" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "FreeformSingle" +msgstr "SaisieLibreSimple" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "Ven." + +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +msgid "Full headers" +msgstr "En-têtes complets" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "Obtention de l'utilisateur courant depuis une signature pgp\\n" + +#: lib/RT/Transaction_Overlay.pm:593 +#. ($New->Name) +msgid "Given to %1" +msgstr "Donné à %1" + +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +msgid "Global" +msgstr "Global" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "Mots clé globaux" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "Scrips globaux" + +#: html/Admin/Elements/SelectTemplate:37 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "Modèle global: %1" + +#: html/Admin/Elements/EditCustomFields:74 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:40 +msgid "Go!" +msgstr "Go!" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "Signature pgp valide pour %1\\n" + +#: html/Search/Listing.html:49 +msgid "Goto page" +msgstr "Aller à la page" + +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +msgid "Goto ticket" +msgstr "Aller au ticket" + +#: NOT FOUND IN SOURCE +msgid "Grand" +msgstr "Accorder" + +#: html/Ticket/Elements/AddWatchers:45 html/User/Elements/DelegateRights:77 +msgid "Group" +msgstr "Groupe" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "Groupe %1 %2 : %3" + +#: 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 "Droits de groupe" + +#: lib/RT/Group_Overlay.pm:964 +msgid "Group already has member" +msgstr "Le groupe a déjà un membre" + +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "Le groupe n'a pas pu être créé" + +#: html/Admin/Groups/Modify.html:76 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "Le groupe %1 n'a pu être créé" + +#: lib/RT/Group_Overlay.pm:496 +msgid "Group created" +msgstr "Groupe ajouté" + +#: lib/RT/Group_Overlay.pm:1132 +msgid "Group has no such member" +msgstr "Un tel membre n'appartient pas au groupe" + +#: lib/RT/Group_Overlay.pm:944 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1446 lib/RT/Ticket_Overlay.pm:1524 +msgid "Group not found" +msgstr "Groupe introuvable" + +#: NOT FOUND IN SOURCE +msgid "Group not found.\\n" +msgstr "Groupe introuvable.\\n" + +#: NOT FOUND IN SOURCE +msgid "Group not specified.\\n" +msgstr "Groupe non spécifié.\\n" + +#: 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 "Groupes" + +#: lib/RT/Group_Overlay.pm:970 +msgid "Groups can't be members of their members" +msgstr "Les groupes ne peuvent pas être membres de leurs membres" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +msgid "Hello!" +msgstr "Bonjour!" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "Bonjour, %1" + +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:87 +msgid "History" +msgstr "Historique" + +#: html/Admin/Elements/ModifyUser:67 +msgid "HomePhone" +msgstr "Téléphone domicile" + +#: html/Elements/Tabs:43 +msgid "Homepage" +msgstr "Page d'accueil" + +#: lib/RT/Base.pm:73 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "J'ai %quant (%1, toupie à béton)" + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "J'ai %quant (%1, toupie à béton)" + +#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "Identifiant" + +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +msgid "Identity" +msgstr "Identité" + +#: etc/initialdata:411 etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "Si une approbation est refusée, rejette l'original et supprime les approbations en attente" + +#: bin/rt-crontool:189 +msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." +msgstr "Si cet outil était setgid, un utilisateur local mal intentionné pourrait l'utiliser pour obtenir un access administrateur à 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 "Si vous avez fait une modification, assurez vous de" + +#: lib/RT/Interface/Web.pm:896 +msgid "Illegal value for %1" +msgstr "Valeur incorrecte pour %1" + +#: lib/RT/Interface/Web.pm:899 +msgid "Immutable field" +msgstr "Champ non modifiable" + +#: html/Admin/Elements/EditCustomFields:73 +msgid "Include disabled custom fields in listing." +msgstr "Inclure les champs personnalisés désactivés dans la liste" + +#: html/Admin/Queues/index.html:42 +msgid "Include disabled queues in listing." +msgstr "Afficher les queues inactives." + +#: html/Admin/Users/index.html:46 +msgid "Include disabled users in search." +msgstr "Inclure les utilisateurs désactivés dans le résultat" + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "Priorité initiale" + +#: lib/RT/Ticket_Overlay.pm:1197 lib/RT/Ticket_Overlay.pm:1199 +msgid "InitialPriority" +msgstr "PrioritéInitiale" + +#: lib/RT/ScripAction_Overlay.pm:104 +msgid "Input error" +msgstr "Erreur à l'entrée" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "Votre intéret est noté" + +#: lib/RT/Ticket_Overlay.pm:3866 +msgid "Internal Error" +msgstr "Erreur interne" + +#: lib/RT/Record.pm:142 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "Erreur interne: %1" + +#: lib/RT/Group_Overlay.pm:643 +msgid "Invalid Group Type" +msgstr "Type de groupe invalide" + +#: lib/RT/Principal_Overlay.pm:127 +msgid "Invalid Right" +msgstr "Droit invalide" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "Type invalide" + +#: lib/RT/Interface/Web.pm:901 +msgid "Invalid data" +msgstr "Données invalides" + +#: lib/RT/Ticket_Overlay.pm:457 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "Intervenant invalide, affectation à 'personne'" + +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:250 +msgid "Invalid queue" +msgstr "Queue invalide" + +#: 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 "Droit invalide" + +#: lib/RT/Record.pm:117 +#. ($key) +msgid "Invalid value for %1" +msgstr "Queue invalide pour %1" + +#: lib/RT/Ticket_Overlay.pm:3498 +msgid "Invalid value for custom field" +msgstr "Valeur incorrecte pour le champ personnalisé" + +#: lib/RT/Ticket_Overlay.pm:364 +msgid "Invalid value for status" +msgstr "Valeur de statut invalide" + +#: bin/rt-crontool:190 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "Il est extrêmement important que les utilisateurs non authorisés n'aient pas accès à cet outil" + +#: bin/rt-crontool:191 +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 "Il est suggéré de créer un utilisateur unix non privilégié appartenant au bon groupe et ayant accès à RT pour utiliser cet outil" + +#: bin/rt-crontool:162 +msgid "It takes several arguments:" +msgstr "Il faut plusieurs paramètres:" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "Eléments attendant mon approbation" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "Jan." + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "Janvier" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Join or leave this group" +msgstr "Rejoignez ou quittez ce groupe" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "Jul." + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "Juillet" + +#: html/Ticket/Elements/Tabs:98 +msgid "Jumbo" +msgstr "Tout" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "Jun." + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "Juin" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "Mot Clé" + +#: html/Admin/Elements/ModifyUser:51 +msgid "Lang" +msgstr "Lang" + +#: html/Ticket/Elements/Tabs:72 +msgid "Last" +msgstr "Dernier" + +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:38 +msgid "Last Contact" +msgstr "Dernier contact" + +#: html/Elements/SelectDateType:28 +msgid "Last Contacted" +msgstr "Date dernier contact" + +#: html/Search/Elements/TicketHeader:40 +msgid "Last Notified" +msgstr "Dernière notification" + +#: html/Elements/SelectDateType:29 +msgid "Last Updated" +msgstr "Date dernière MAJ" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "DernièreMAJ" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "Restant" + +#: html/Admin/Users/Modify.html:82 +msgid "Let this user access RT" +msgstr "Donner accès à RT à cet utilisateur" + +#: html/Admin/Users/Modify.html:86 +msgid "Let this user be granted rights" +msgstr "Autoriser cet utilisateur à recevoir des droits" + +#: NOT FOUND IN SOURCE +msgid "Limiting owner to %1 %2" +msgstr "Limitation des intervenants à %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Limiting queue to %1 %2" +msgstr "Limitation de la queue à %1 %2" + +#: lib/RT/Ticket_Overlay.pm:2752 +msgid "Link already exists" +msgstr "Le lien existe déja" + +#: lib/RT/Ticket_Overlay.pm:2764 +msgid "Link could not be created" +msgstr "Le lien ne peut être ajouté" + +#: lib/RT/Ticket_Overlay.pm:2772 lib/RT/Ticket_Overlay.pm:2784 +#. ($TransString) +msgid "Link created (%1)" +msgstr "Le lien est ajouté (%1)" + +#: lib/RT/Ticket_Overlay.pm:2685 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Le lien est effacé (%1)" + +#: lib/RT/Ticket_Overlay.pm:2691 +msgid "Link not found" +msgstr "Lien introuvable" + +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "Lier le ticket n°%1" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "Lier au ticket %1" + +#: html/Ticket/Elements/Tabs:96 +msgid "Links" +msgstr "Relations" + +#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:84 +msgid "Location" +msgstr "Localisation" + +#: lib/RT.pm:162 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "Le répertoire de log %1 est introuvable ou en lecture seule. \\n RT ne peut pas démarrer" + +#: html/Elements/Header:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "Connecté en tant que %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +msgid "Login" +msgstr "Connexion" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "Déconnexion" + +#: html/Search/Bulk.html:85 +msgid "Make Owner" +msgstr "Attribuer" + +#: html/Search/Bulk.html:109 +msgid "Make Status" +msgstr "Appliquer Statut" + +#: html/Search/Bulk.html:117 +msgid "Make date Due" +msgstr "Appliquer date d'échéance" + +#: html/Search/Bulk.html:119 +msgid "Make date Resolved" +msgstr "Appliquer date de résolution" + +#: html/Search/Bulk.html:113 +msgid "Make date Started" +msgstr "Appliquer date de début" + +#: html/Search/Bulk.html:111 +msgid "Make date Starts" +msgstr "Appliquer date d'ouverture" + +#: html/Search/Bulk.html:115 +msgid "Make date Told" +msgstr "Appliquer Age" + +#: html/Search/Bulk.html:105 +msgid "Make priority" +msgstr "Appliquer priorité" + +#: html/Search/Bulk.html:107 +msgid "Make queue" +msgstr "Appliquer queue" + +#: html/Search/Bulk.html:103 +msgid "Make subject" +msgstr "Changer le sujet" + +#: html/Admin/index.html:32 +msgid "Manage groups and group membership" +msgstr "Gérer les groupes et leurs membres" + +#: html/Admin/index.html:38 +msgid "Manage properties and configuration which apply to all queues" +msgstr "Gérer les propriétés et configurations générales des queues" + +#: html/Admin/index.html:35 +msgid "Manage queues and queue-specific properties" +msgstr "Gérer les queues et leurs propriétés individuelles" + +#: html/Admin/index.html:29 +msgid "Manage users and passwords" +msgstr "Gérer les utilisateurs et mots de passe" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "Mar." + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "Mars" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "Mai" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "Mai." + +#: lib/RT/Transaction_Overlay.pm:635 +#. ($value) +msgid "Member %1 added" +msgstr "Membre %1 ajouté" + +#: lib/RT/Transaction_Overlay.pm:664 +#. ($value) +msgid "Member %1 deleted" +msgstr "Membre %1 supprimé" + +#: lib/RT/Group_Overlay.pm:981 +msgid "Member added" +msgstr "Membre ajouté" + +#: lib/RT/Group_Overlay.pm:1139 +msgid "Member deleted" +msgstr "Membre supprimé" + +#: lib/RT/Group_Overlay.pm:1143 +msgid "Member not deleted" +msgstr "Membre non supprimé" + +#: html/Elements/SelectLinkType:25 +msgid "Member of" +msgstr "Membre de" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "MembreDe" + +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +msgid "Members" +msgstr "Membres" + +#: lib/RT/Transaction_Overlay.pm:633 +#. ($value) +msgid "Membership in %1 added" +msgstr "Appartenance à %1 ajoutée" + +#: lib/RT/Transaction_Overlay.pm:662 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "Appartenance à %1 supprimée" + +#: lib/RT/Ticket_Overlay.pm:2941 +msgid "Merge Successful" +msgstr "Fusion réussie" + +#: lib/RT/Ticket_Overlay.pm:2861 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "Echec de fusion. Ne peut appliquer EffectiveId" + +#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:114 +msgid "Merge into" +msgstr "Fusionner dans" + +#: html/Search/Bulk.html:137 html/Ticket/Update.html:100 +msgid "Message" +msgstr "Message" + +#: lib/RT/Interface/Web.pm:903 +msgid "Missing a primary key?: %1" +msgstr "Clé primaire manquante? : %1" + +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:53 +msgid "Mobile" +msgstr "Mobile" + +#: html/Admin/Elements/ModifyUser:71 +msgid "MobilePhone" +msgstr "MobilePhone" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Modify Access Control List" +msgstr "Modifier la liste de droits" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "Modifier champ personnalisé %1" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +msgid "Modify Custom Fields which apply to all queues" +msgstr "Modifier les champs personnalisés globaux" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Modify Scrip templates for this queue" +msgstr "Modifier les modèles de Scrips pour cette queue" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Modify Scrips for this queue" +msgstr "Modifier les Scrips pour cette queue" + +#: NOT FOUND IN SOURCE +msgid "Modify System ACLS" +msgstr "Modifier ACLs système" + +#: NOT FOUND IN SOURCE +msgid "Modify Template %1" +msgstr "Modifier le modèle %1" + +#: html/Admin/Queues/CustomField.html:44 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "Modifier un champ personnalisé pour la queue %1" + +#: html/Admin/Global/CustomField.html:52 +msgid "Modify a CustomField which applies to all queues" +msgstr "Modifier un champ personnalisé global" + +#: html/Admin/Queues/Scrip.html:53 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "Modifier le scrip pour la queue %1" + +#: html/Admin/Global/Scrip.html:47 +msgid "Modify a scrip which applies to all queues" +msgstr "Modiier le scrip qui s'applique à toutes les queues" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "Modifier les dates pur n°%1" + +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Modifier les dates pour n°%1" + +#: html/Ticket/ModifyDates.html:34 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Modifier les dates du ticket n°%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 "Modifier les droits de groupe globaux" + +#: html/Admin/Global/GroupRights.html:32 +msgid "Modify global group rights." +msgstr "Modifier les droits de groupe globaux" + +#: NOT FOUND IN SOURCE +msgid "Modify global rights for groups" +msgstr "Modifier les droits globaux des groupes" + +#: NOT FOUND IN SOURCE +msgid "Modify global rights for users" +msgstr "Modifier les droits globaux des utilisateurs" + +#: NOT FOUND IN SOURCE +msgid "Modify global scrips" +msgstr "Modifier les scrips globaux" + +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +msgid "Modify global user rights" +msgstr "Modifier les droits utilisateurs globaux" + +#: html/Admin/Global/UserRights.html:32 +msgid "Modify global user rights." +msgstr "Modifier les droits utilisateurs globaux" + +#: lib/RT/Group_Overlay.pm:145 +msgid "Modify group metadata or delete group" +msgstr "Modifier les métadonnées ou supprimer le groupe" + +#: 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 "Modifier les droits du groupe %1" + +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "Modifier les droits de groupe pour la queue %1" + +#: lib/RT/Group_Overlay.pm:147 +msgid "Modify membership roster for this group" +msgstr "Modifier le membership roster pour ce groupe" + +#: lib/RT/System.pm:60 +msgid "Modify one's own RT account" +msgstr "Modifier son propre profile RT" + +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Modifier les utilisateurs de la queue %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 "Modifier les utilisateurs du ticket n°%1" + +#: html/Admin/Queues/Scrips.html:45 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Modifier les scrips de la queue %1" + +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +msgid "Modify scrips which apply to all queues" +msgstr "Modifier les scrips s'appliquant à toutes les queues" + +#: 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 "Modifier le modèle %1" + +#: html/Admin/Global/Templates.html:43 +msgid "Modify templates which apply to all queues" +msgstr "Modifier les modèles globaux" + +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "Modifier le groupe %1" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify the queue watchers" +msgstr "Modifier les observateurs de la queue" + +#: html/Admin/Users/Modify.html:235 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "Modifier l'utilisateur %1" + +#: html/Ticket/ModifyAll.html:36 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Modifier le ticket # %1" + +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Modifier le ticket n°%1" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Modify tickets" +msgstr "Modifier les tickets" + +#: 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 "Modifier les droits utilisateurs pour le groupe %1" + +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "Modifier les droits utilisateurs pour la queue %1" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "Modifier les observateurs dela queue '%1'" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ModifyACL" +msgstr "ModifierACL" + +#: lib/RT/Group_Overlay.pm:148 +msgid "ModifyOwnMembership" +msgstr "ModifierPropresAppartenances" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyQueueWatchers" +msgstr "ModifierObservateurs" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ModifyScrips" +msgstr "ModifierScrips" + +#: lib/RT/System.pm:60 +msgid "ModifySelf" +msgstr "ModifierDonnéesPerso" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "ModifyTemplate" +msgstr "ModifierModèle" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "ModifyTicket" +msgstr "ModifierTicket" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "Lun." + +#: html/Ticket/Elements/ShowRequestor:41 +#. ($name) +msgid "More about %1" +msgstr "Plus d'info sur %1" + +#: html/Admin/Elements/EditCustomFields:60 +msgid "Move down" +msgstr "Aller en bas" + +#: html/Admin/Elements/EditCustomFields:52 +msgid "Move up" +msgstr "Aller en haut" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Multiple" +msgstr "Multiple" + +#: lib/RT/User_Overlay.pm:238 +msgid "Must specify 'Name' attribute" +msgstr "Attribut 'Nom' obligatoire" + +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "Mes %1 tickets" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "Mes approbations" + +#: html/Approvals/index.html:24 html/Approvals/index.html:25 +msgid "My approvals" +msgstr "Mes approbations" + +#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 +msgid "Name" +msgstr "Nom" + +#: lib/RT/User_Overlay.pm:245 +msgid "Name in use" +msgstr "Nom utilisé" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "Approbation de l'administrateur système nécessaire" + +#: html/Ticket/Elements/ShowDates:51 +msgid "Never" +msgstr "Jamais" + +#: html/Elements/Quicksearch:29 +msgid "New" +msgstr "Nouveau" + +#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/User/Prefs.html:64 +msgid "New Password" +msgstr "Nouveau mot de passe" + +#: etc/initialdata:317 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "Nouvelles approbations en attente" + +#: html/Ticket/Elements/EditLinks:110 +msgid "New Relationships" +msgstr "Nouvelles relations" + +#: html/Ticket/Elements/Tabs:35 +msgid "New Search" +msgstr "Nouvelle recherche" + +#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:39 +msgid "New custom field" +msgstr "Nouveau champ personnalisé" + +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +msgid "New group" +msgstr "Nouveau groupe" + +#: html/SelfService/Prefs.html:31 +msgid "New password" +msgstr "Nouveau mot de passe" + +#: lib/RT/User_Overlay.pm:764 +msgid "New password notification sent" +msgstr "Notification de nouveau mot de passe envoyée" + +#: html/Admin/Elements/QueueTabs:69 +msgid "New queue" +msgstr "Nouvelle queue" + +#: NOT FOUND IN SOURCE +msgid "New request" +msgstr "Nouvelle demande" + +#: html/Admin/Elements/SelectRights:41 +msgid "New rights" +msgstr "Nouveaux droits" + +#: 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 "Nouveau scrip" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "Nouvelle recherche" + +#: 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 "Nouveau modèle" + +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "Nouveau ticket" + +#: lib/RT/Ticket_Overlay.pm:2828 +msgid "New ticket doesn't exist" +msgstr "Nouveau ticket inconnu" + +#: html/Admin/Elements/UserTabs:51 +msgid "New user" +msgstr "Nouvel utilisateur" + +#: html/Admin/Elements/CreateUserCalled:25 +msgid "New user called" +msgstr "Nouvel utilisateur appelé" + +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +msgid "New watchers" +msgstr "Nouveaux observateurs" + +#: html/Admin/Users/Prefs.html:41 +msgid "New window setting" +msgstr "Nouveaux paramètres d'affichage" + +#: html/Ticket/Elements/Tabs:68 +msgid "Next" +msgstr "Suivant" + +#: html/Search/Listing.html:47 +msgid "Next page" +msgstr "Page suivante" + +#: html/Admin/Elements/ModifyUser:49 +msgid "NickName" +msgstr "Surnom" + +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:45 +msgid "Nickname" +msgstr "Surnom" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:104 +msgid "No CustomField" +msgstr "Pas de CustomField" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +msgid "No Group defined" +msgstr "Aucun groupe défini" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +msgid "No Queue defined" +msgstr "Aucune queue définie" + +#: bin/rt-crontool:55 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "Aucun utilisateur RT trouvé. Merci de consulter votre administrateur RT" + +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +msgid "No Template" +msgstr "Pas de modèle" + +#: bin/rt-commit-handler:763 +msgid "No Ticket specified. Aborting ticket " +msgstr "Aucun ticket spécifié. Annulation de ticket" + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "Aucun ticket spécifié. Annulation des modifications de tickets\\n\\n" + +#: html/Approvals/Elements/Approve:45 +msgid "No action" +msgstr "Pas d'action" + +#: lib/RT/Interface/Web.pm:898 +msgid "No column specified" +msgstr "Aucune colonne spécifiée" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "Commande introuvable\\n" + +#: html/Elements/ViewUser:35 html/Ticket/Elements/ShowRequestor:44 +msgid "No comment entered about this user" +msgstr "Pas de commentaires concernant cet utilisateur" + +#: lib/RT/Ticket_Overlay.pm:2220 lib/RT/Ticket_Overlay.pm:2288 +msgid "No correspondence attached" +msgstr "Pas de texte dans le courrier" + +#: lib/RT/Action/Generic.pm:149 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 "Aucune description disponible pour %1" + +#: lib/RT/Users_Overlay.pm:150 +msgid "No group specified" +msgstr "Aucun groupe spécifié" + +#: lib/RT/User_Overlay.pm:982 +msgid "No password set" +msgstr "Pas de mot de passe configuré" + +#: lib/RT/Queue_Overlay.pm:260 +msgid "No permission to create queues" +msgstr "Permission refusée pour la création de queue" + +#: lib/RT/Ticket_Overlay.pm:360 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "Vous n'êtes pas autorisé à créer un ticket dans cette queue '%1'" + +#: lib/RT/User_Overlay.pm:211 +msgid "No permission to create users" +msgstr "Permission refusée pour la création d'utilisateurs" + +#: html/SelfService/Display.html:117 +msgid "No permission to display that ticket" +msgstr "Pas de permission pour afficher ce ticket" + +#: html/SelfService/Update.html:51 +msgid "No permission to view update ticket" +msgstr "Pas de permission pour afficher le ticket mis à jour" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1505 +msgid "No principal specified" +msgstr "Aucun groupe/utilisateur spécifié" + +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +msgid "No principals selected." +msgstr "Aucun groupe/utilisateur sélectionné" + +#: html/Admin/Queues/index.html:34 +msgid "No queues matching search criteria found." +msgstr "Pas de queue correspondant aux critères de recherche" + +#: html/Admin/Elements/SelectRights:80 +msgid "No rights found" +msgstr "Aucun droit trouvé" + +#: html/Admin/Elements/SelectRights:32 +msgid "No rights granted." +msgstr "Aucun droit accordé" + +#: html/Search/Bulk.html:160 +msgid "No search to operate on." +msgstr "Pas de critère de recherche." + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "Aucun numéro de ticket spécifié." + +#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +msgid "No transaction type specified" +msgstr "Aucun type de transaction spécifié." + +#: NOT FOUND IN SOURCE +msgid "No user or email address specified" +msgstr "Aucun utilisateur ou adresse email spécifié" + +#: html/Admin/Users/index.html:35 +msgid "No users matching search criteria found." +msgstr "Aucun utilisateur ne correspond aux critères de recherche." + +#: bin/rt-commit-handler:643 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "Aucun utilisateur RT valide trouvé. Gestionnaire de cvs RT inaccessible. Merci de contacter votre administrateur RT.\\n" + +#: lib/RT/Interface/Web.pm:895 +msgid "No value sent to _Set!\\n" +msgstr "Aucune valeur envoyée à _Set!\\n" + +#: html/Search/Elements/TicketRow:36 +msgid "Nobody" +msgstr "Personne" + +#: lib/RT/Interface/Web.pm:900 +msgid "Nonexistant field?" +msgstr "Champ inexistant?" + +#: NOT FOUND IN SOURCE +msgid "Not logged in" +msgstr "Non loggé" + +#: html/Elements/Header:59 +msgid "Not logged in." +msgstr "Non connecté" + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "Non renseigné" + +#: html/NoAuth/Reminder.html:26 +msgid "Not yet implemented." +msgstr "Fonction pas encore disponible" + +#: NOT FOUND IN SOURCE +msgid "Not yet implemented...." +msgstr "Fonction pas encore disponible..." + +#: html/Approvals/Elements/Approve:48 +msgid "Notes" +msgstr "Notes" + +#: lib/RT/User_Overlay.pm:767 +msgid "Notification could not be sent" +msgstr "Impossible d'envoyer la notification" + +#: etc/initialdata:93 +msgid "Notify AdminCcs" +msgstr "Avertir les AdminCCs" + +#: etc/initialdata:89 +msgid "Notify AdminCcs as Comment" +msgstr "Avertir les AdminCCs par un commentaire" + +#: etc/initialdata:120 +msgid "Notify Other Recipients" +msgstr "Avertir les autres destinataires" + +#: etc/initialdata:116 +msgid "Notify Other Recipients as Comment" +msgstr "Avertir les autres destinataires par un commentaire" + +#: etc/initialdata:85 +msgid "Notify Owner" +msgstr "Avertir l'intervenant" + +#: etc/initialdata:81 +msgid "Notify Owner as Comment" +msgstr "Avertir l'intervenant par un commentaire" + +#: etc/initialdata:361 +msgid "Notify Owner of their rejected ticket" +msgstr "Avertir l'Intervenant du rejet de son ticket" + +#: etc/initialdata:350 +msgid "Notify Owner of their ticket has been approved by all approvers" +msgstr "Avertir l'Intervenant de l'approbation de son ticket par tous les approbateurs" + +#: etc/initialdata:338 +msgid "Notify Owner of their ticket has been approved by some approver" +msgstr "Avertir l'Intervenant de l'approbation de son ticket par un des approbateurs" + +#: etc/initialdata:319 etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "Avertir les intervenants et les AdminCCs de nouveaux éléments attendant leur approbation" + +#: etc/initialdata:77 +msgid "Notify Requestors" +msgstr "Avertir les demandeurs" + +#: etc/initialdata:103 +msgid "Notify Requestors and Ccs" +msgstr "Avertir les demandeurs et les Ccs" + +#: etc/initialdata:98 +msgid "Notify Requestors and Ccs as Comment" +msgstr "Avertir les demandeurs et les CC par un commentaire" + +#: etc/initialdata:112 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "Avertir les demandeurs, CCs et AdminCCs" + +#: etc/initialdata:108 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "Avertir les demandeurs, CCs et AdminCCs par un commentaire" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "Nov." + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "Novembre" + +#: lib/RT/Record.pm:156 +msgid "Object could not be created" +msgstr "L'objet n'a pas pu être ajouté" + +#: lib/RT/Record.pm:175 +msgid "Object created" +msgstr "Objet ajouté" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "Oct." + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "Octobre" + +#: html/Elements/SelectDateRelation:34 +msgid "On" +msgstr "Le" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "Lors d'un commentaire" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "Lors d'un courrier" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "Lors d'une création" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "Lors d'un changement d'intervenant" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "Lors d'un changement de queue" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "Lors de la résolution/clôture" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "Lors d'un changement de statut" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "Lors d'une transaction" + +#: 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 "Ne montrer que les approbations pour les demandes créées après %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 "Ne montrer que les approbations pour les demandes créées avant %1" + +#: html/Elements/Quicksearch:30 +msgid "Open" +msgstr "Ouvert" + +#: html/Ticket/Elements/Tabs:135 +msgid "Open it" +msgstr "Ouvrir" + +#: NOT FOUND IN SOURCE +msgid "Open requests" +msgstr "Ouvrir les demandes" + +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "Ouvrir les tickets" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in a new window" +msgstr "Ouvrir les tickets (depuis une liste) dans une nouvelle fenêtre." + +#: html/Admin/Users/Prefs.html:39 +msgid "Open tickets (from listing) in another window" +msgstr "Ouvrir les tickets (depuis une liste) dans une autre fenêtre." + +#: etc/initialdata:132 +msgid "Open tickets on correspondence" +msgstr "Ouvrir les tickets lors d'une correspondance" + +#: html/Search/Elements/PickRestriction:100 +msgid "Ordering and sorting" +msgstr "Ranger et classer" + +#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Elements/SelectUsers:28 html/User/Prefs.html:85 +msgid "Organization" +msgstr "Organisation" + +#: html/Approvals/Elements/Approve:32 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "Ticket source: n°%1" + +#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 +msgid "Over time, priority moves toward" +msgstr "Temps dépassé, priorité déplacée" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Own tickets" +msgstr "Tickets propres" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "OwnTicket" +msgstr "PrendreTicket" + +#: etc/initialdata:38 html/Elements/MyRequests:31 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:62 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "Intervenant" + +#: NOT FOUND IN SOURCE +msgid "Owner changed from %1 to %2" +msgstr "Intervenant changé de %1 en %2" + +#: lib/RT/Transaction_Overlay.pm:582 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Intervenant forcé de %1 à %2" + +#: html/Search/Elements/PickRestriction:30 +msgid "Owner is" +msgstr "L'intervenant est" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:55 +msgid "Pager" +msgstr "Bipeur" + +#: html/Admin/Elements/ModifyUser:73 +msgid "PagerPhone" +msgstr "PagerPhone" + +#: NOT FOUND IN SOURCE +msgid "Parent" +msgstr "" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:126 html/Ticket/Elements/EditLinks:57 html/Ticket/Elements/ShowLinks:46 +msgid "Parents" +msgstr "Parents" + +#: html/Elements/Login:52 html/User/Prefs.html:60 +msgid "Password" +msgstr "Mot de passe" + +#: html/NoAuth/Reminder.html:24 +msgid "Password Reminder" +msgstr "Pense-bête pour votre mot de passe" + +#: lib/RT/User_Overlay.pm:228 lib/RT/User_Overlay.pm:985 +msgid "Password too short" +msgstr "Mot de passe trop court" + +#: html/Admin/Users/Modify.html:290 html/User/Prefs.html:171 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "Mot de passe: %1" + +#: html/Admin/Users/Modify.html:292 +msgid "Passwords do not match." +msgstr "Les mots de passes sont différents" + +#: html/User/Prefs.html:173 +msgid "Passwords do not match. Your password has not been changed" +msgstr "Les mots de passe sont différents. Votre mot de passe n'a pas été modifié" + +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:95 html/Ticket/ModifyAll.html:50 +msgid "People" +msgstr "Personnes" + +#: etc/initialdata:125 +msgid "Perform a user-defined action" +msgstr "Réaliser une action définie par l'utilisateur" + +#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1098 lib/RT/Group_Overlay.pm:1107 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1162 lib/RT/Group_Overlay.pm:1168 lib/RT/Group_Overlay.pm:425 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:903 lib/RT/Group_Overlay.pm:907 lib/RT/Group_Overlay.pm:920 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:196 lib/RT/Scrip_Overlay.pm:433 lib/RT/Template_Overlay.pm:283 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1377 lib/RT/Ticket_Overlay.pm:1387 lib/RT/Ticket_Overlay.pm:1401 lib/RT/Ticket_Overlay.pm:1535 lib/RT/Ticket_Overlay.pm:1544 lib/RT/Ticket_Overlay.pm:1557 lib/RT/Ticket_Overlay.pm:1906 lib/RT/Ticket_Overlay.pm:2044 lib/RT/Ticket_Overlay.pm:2208 lib/RT/Ticket_Overlay.pm:2275 lib/RT/Ticket_Overlay.pm:2634 lib/RT/Ticket_Overlay.pm:2715 lib/RT/Ticket_Overlay.pm:2819 lib/RT/Ticket_Overlay.pm:2834 lib/RT/Ticket_Overlay.pm:3033 lib/RT/Ticket_Overlay.pm:3043 lib/RT/Ticket_Overlay.pm:3048 lib/RT/Ticket_Overlay.pm:3270 lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3630 lib/RT/Ticket_Overlay.pm:3682 lib/RT/Ticket_Overlay.pm:3860 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1079 lib/RT/User_Overlay.pm:1527 lib/RT/User_Overlay.pm:687 lib/RT/User_Overlay.pm:722 lib/RT/User_Overlay.pm:978 +msgid "Permission Denied" +msgstr "Accès refusé" + +#: html/User/Elements/Tabs:34 +msgid "Personal Groups" +msgstr "Groupes personnels" + +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +msgid "Personal groups" +msgstr "Groupes personnels" + +#: html/User/Elements/DelegateRights:36 +msgid "Personal groups:" +msgstr "Groupes personnels:" + +#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:48 +msgid "Phone numbers" +msgstr "Numéros de téléphone" + +#: NOT FOUND IN SOURCE +msgid "Placeholder" +msgstr "Paramètre fictif" + +#: html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 +msgid "Preferences" +msgstr "Préférences" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "Préférences" + +#: lib/RT/Action/Generic.pm:159 +msgid "Prepare Stubbed" +msgstr "Préparation interrompue" + +#: html/Ticket/Elements/Tabs:60 +msgid "Prev" +msgstr "Précédent" + +#: html/Search/Listing.html:43 +msgid "Previous page" +msgstr "Page précédente" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "Pri." + +#: 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 "Principal %1 non trouvé" + +#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "Priorité" + +#: html/Admin/Elements/ModifyQueue:50 html/Admin/Queues/Modify.html:64 +msgid "Priority starts at" +msgstr "La priorité débute à " + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "Privilégié" + +#: html/Admin/Users/Modify.html:270 html/User/Prefs.html:162 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "Statuts privilégiés : %1" + +#: html/Admin/Users/index.html:61 +msgid "Privileged users" +msgstr "Utilisateurs privilégiés" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "Pseudo groupe pour usage interne" + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "Queue" + +#: 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 "Queue %1 non trouvée" + +#: NOT FOUND IN SOURCE +msgid "Queue '%1' not found\\n" +msgstr "Queue '%1' inconnue\\n" + +#: NOT FOUND IN SOURCE +msgid "Queue Keyword Selections" +msgstr "Sélection des mots clé de queue" + +#: html/Admin/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 +msgid "Queue Name" +msgstr "Nom de la queue" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "Scrips de queue" + +#: lib/RT/Queue_Overlay.pm:264 +msgid "Queue already exists" +msgstr "Queue déjà créée" + +#: lib/RT/Queue_Overlay.pm:273 lib/RT/Queue_Overlay.pm:279 +msgid "Queue could not be created" +msgstr "Impossible de créer la queue" + +#: html/Ticket/Create.html:204 +msgid "Queue could not be loaded." +msgstr "Queue ne pouvant être chargée" + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 +msgid "Queue created" +msgstr "Queue créée" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "Queue non spécifié" + +#: html/SelfService/Display.html:70 lib/RT/CustomField_Overlay.pm:97 +msgid "Queue not found" +msgstr "Queue inconnue" + +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +msgid "Queues" +msgstr "Queues" + +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "Recherche rapide" + +#: html/Elements/Login:44 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "RT %1" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "RT %1 pour %2" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "RT %1 from <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:24 html/Admin/index.html:25 +msgid "RT Administration" +msgstr "Administration RT" + +#: NOT FOUND IN SOURCE +msgid "RT Authentication error." +msgstr "Erreur d'authentification RT." + +#: NOT FOUND IN SOURCE +msgid "RT Bounce: %1" +msgstr "Avis de rejet RT: %1" + +#: NOT FOUND IN SOURCE +msgid "RT Configuration error" +msgstr "Erreur de configuration RT" + +#: NOT FOUND IN SOURCE +msgid "RT Critical error. Message not recorded!" +msgstr "Erreur critique RT. Courrier non enregistré !" + +#: html/Elements/Error:41 html/SelfService/Error.html:40 +msgid "RT Error" +msgstr "Erreur RT" + +#: NOT FOUND IN SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "RT a reçu un e-mail (%1) de lui-même." + +#: NOT FOUND IN SOURCE +msgid "RT Recieved mail (%1) from itself." +msgstr "RT a reçu du courrier (%1) de lui même" + +#: NOT FOUND IN SOURCE +msgid "RT Self Service / Closed Tickets" +msgstr "RT Self Service / Tickets résolus" + +#: html/index.html:24 html/index.html:27 +msgid "RT at a glance" +msgstr "RT en un coup d'oeil" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't authenticate you" +msgstr "RT n'a pas réussi à vous identifier" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find requestor via its external database lookup" +msgstr "RT n'a pas pu trouver de demandeur par sa recherche dans une base externe" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find the queue: %1" +msgstr "RT n'a pas trouvé la queue" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RT n'a pas réussi à valider cette signature PGP. \\n" + +#: html/Elements/PageLayout:85 +#. ($RT::rtname) +msgid "RT for %1" +msgstr "RT pour %1" + +#: NOT FOUND IN SOURCE +msgid "RT for %1: %2" +msgstr "RT pour %1: %2" + +#: NOT FOUND IN SOURCE +msgid "RT has proccessed your commands" +msgstr "RT a exécuté vos commandes" + +#: html/Elements/Login:94 +#. ('2003') +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 est © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. Distribué sous <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 de la licence générale GNU.</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 est © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. Distribué sous <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 de la licence générale GNU.</a>" + +#: NOT FOUND IN SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "RT pense que ce courrier peut être un avis de non-distribution" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RT va traiter ce courrier comme s'il n'était pas signé.\\n" + +#: 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 "L'interface d'utilisation de RT par email utilise une authentification PGP. Soit vous n'avez pas signé votre courrier, soit la signature est n'a pas pu être vérifiée" + +#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/User/Prefs.html:43 +msgid "Real Name" +msgstr "Nom" + +#: html/Admin/Elements/ModifyUser:47 +msgid "RealName" +msgstr "RealName" + +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Reference by %1 added" +msgstr "Ajout d'une référence par %1" + +#: lib/RT/Transaction_Overlay.pm:660 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "Suppression de la référence par %1" + +#: lib/RT/Transaction_Overlay.pm:629 +#. ($value) +msgid "Reference to %1 added" +msgstr "Ajout d'une reference à %1" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "Suppression d'une reference à %1" + +#: html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:138 html/Ticket/Elements/EditLinks:93 html/Ticket/Elements/ShowLinks:70 +msgid "Referred to by" +msgstr "Mentionné par" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:134 html/Ticket/Elements/EditLinks:79 html/Ticket/Elements/ShowLinks:60 +msgid "Refers to" +msgstr "Se rapporte à" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "SeRapporteA" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "Affiner" + +#: html/Search/Elements/PickRestriction:26 +msgid "Refine search" +msgstr "Affiner la recherche" + +#: html/Elements/Refresh:35 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "Rafraîchir cette page toutes les %1 minutes." + +#: html/Ticket/Create.html:173 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 +msgid "Relationships" +msgstr "Relations" + +#: html/Search/Bulk.html:97 +msgid "Remove AdminCc" +msgstr "Enlever AdminCc " + +#: html/Search/Bulk.html:93 +msgid "Remove Cc" +msgstr "Enlever Cc" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "Enlever Demandeur" + +#: html/Ticket/Elements/ShowTransaction:159 html/Ticket/Elements/Tabs:121 +msgid "Reply" +msgstr "Répondre" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Reply to tickets" +msgstr "Répondre aux tickets" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "ReplyToTicket" +msgstr "RépondreTicket" + +#: etc/initialdata:44 html/Ticket/Update.html:39 lib/RT/ACE_Overlay.pm:86 +msgid "Requestor" +msgstr "Demandeur" + +#: html/Search/Elements/PickRestriction:37 +msgid "Requestor email address" +msgstr "Adresse email du demandeur" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "Demandeur(s)" + +#: NOT FOUND IN SOURCE +msgid "RequestorAddresses" +msgstr "AdresseDuDemandeur" + +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +msgid "Requestors" +msgstr "Demandeurs" + +#: html/Admin/Elements/ModifyQueue:60 html/Admin/Queues/Modify.html:74 +msgid "Requests should be due in" +msgstr "Le demande doit être résolue dans" + +#: html/Elements/Submit:61 +msgid "Reset" +msgstr "Remise à zéro" + +#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:49 +msgid "Residence" +msgstr "Domicile" + +#: html/Ticket/Elements/Tabs:131 +msgid "Resolve" +msgstr "Résoudre" + +#: html/Ticket/Update.html:137 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "Résoudre ticket n°%1 (%2)" + +#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1206 +msgid "Resolved" +msgstr "Résolu" + +#: html/Search/Bulk.html:132 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:71 +msgid "Response to requestors" +msgstr "Réponse aux demandeurs" + +#: html/Elements/ListActions:25 +msgid "Results" +msgstr "Résultats" + +#: html/Search/Elements/PickRestriction:104 +msgid "Results per page" +msgstr "Nb tickets par page" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:71 +msgid "Retype Password" +msgstr "Saisissez à nouveau votre mot de passe" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "Le droit %1 introuvable pour %2 %3 dans le périmètre %4 (%5)\\n" + +#: lib/RT/ACE_Overlay.pm:612 +msgid "Right Delegated" +msgstr "Droit délégué" + +#: lib/RT/ACE_Overlay.pm:302 +msgid "Right Granted" +msgstr "Droit accordé" + +#: lib/RT/ACE_Overlay.pm:160 +msgid "Right Loaded" +msgstr "Droit activé" + +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +msgid "Right could not be revoked" +msgstr "Droit irrévocable" + +#: html/User/Delegation.html:63 +msgid "Right not found" +msgstr "Droit inconnu" + +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +msgid "Right not loaded." +msgstr "Droit non activé" + +#: lib/RT/ACE_Overlay.pm:688 +msgid "Right revoked" +msgstr "Droit révoqué" + +#: html/Admin/Elements/UserTabs:40 +msgid "Rights" +msgstr "Droits" + +#: lib/RT/Interface/Web.pm:794 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "Les droits n'on pas pu être attribués à %1" + +#: lib/RT/Interface/Web.pm:827 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "Les droits n'ont pas pu être révoqués pour %1" + +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "Rôles" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "ApprobationDeRoot" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "Sam." + +#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyLinks.html:38 html/Ticket/ModifyPeople.html:37 +msgid "Save Changes" +msgstr "Enregistrer les modifications" + +#: NOT FOUND IN SOURCE +msgid "Save changes" +msgstr "Enregistrer les modifications" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->id) +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "Scrip n°%1" + +#: lib/RT/Scrip_Overlay.pm:175 +msgid "Scrip Created" +msgstr "Scrip ajouté" + +#: html/Admin/Elements/EditScrips:83 +msgid "Scrip deleted" +msgstr "Scrip supprimé" + +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +msgid "Scrips" +msgstr "Scrips" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "Scrips pour %1\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "Scrips s'appliquant à toutes les queues" + +#: html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 +msgid "Search" +msgstr "Rechercher" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "Critère de recherche" + +#: html/Approvals/Elements/PendingMyApproval:38 +msgid "Search for approvals" +msgstr "Chercher des approbations" + +#: bin/rt-crontool:187 +msgid "Security:" +msgstr "Sécurité:" + +#: lib/RT/Queue_Overlay.pm:66 +msgid "SeeQueue" +msgstr "VoirQueue" + +#: html/Admin/Groups/index.html:39 +msgid "Select a group" +msgstr "Sélectionner un groupe" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "Choisir une queue" + +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +msgid "Select a user" +msgstr "Sélectionner un utilisateur" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +msgid "Select custom field" +msgstr "Selectionner le champ personnalisé" + +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +msgid "Select group" +msgstr "Sélectionner le groupe" + +#: lib/RT/CustomField_Overlay.pm:421 +msgid "Select multiple values" +msgstr "Choisir plusieurs valeurs" + +#: lib/RT/CustomField_Overlay.pm:418 +msgid "Select one value" +msgstr "Choisir une valeur" + +#: html/Admin/Elements/QueueTabs:66 +msgid "Select queue" +msgstr "Selectionner la queue" + +#: 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 "Selectionner le scrip" + +#: 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 "Selectionner le modèle" + +#: html/Admin/Elements/UserTabs:48 +msgid "Select user" +msgstr "Selectionner l'utilisateur" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectMultiple" +msgstr "ChoixMultiples" + +#: lib/RT/CustomField_Overlay.pm:34 +msgid "SelectSingle" +msgstr "ChoixSimple" + +#: NOT FOUND IN SOURCE +msgid "Self Service" +msgstr "Self Service" + +#: etc/initialdata:113 +msgid "Send mail to all watchers" +msgstr "Envoyer un courrier à tous les observateurs" + +#: etc/initialdata:109 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "Envoyer un courrier à tous les observateurs en tant que \"commentaire\"" + +#: etc/initialdata:104 +msgid "Send mail to requestors and Ccs" +msgstr "Envoyer un courrier aux demandeurs et aux CCs" + +#: etc/initialdata:99 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "Envoyer un courrier aux demandeurs et aux CCs en tant que commentaire" + +#: etc/initialdata:78 +msgid "Sends a message to the requestors" +msgstr "Envoyer un courrier aux demandeurs" + +#: etc/initialdata:117 etc/initialdata:121 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "Envoyer un courrier aux CCs et Bccs explicitement indiqués" + +#: etc/initialdata:94 +msgid "Sends mail to the administrative Ccs" +msgstr "Envoyer un mail aux AdminCCs" + +#: etc/initialdata:90 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "Envoyer un mail aux AdminCCs en tant que commentaire" + +#: etc/initialdata:82 etc/initialdata:86 +msgid "Sends mail to the owner" +msgstr "Envoyer un courrier à l'intervenant" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "Sep." + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "Septembre" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "Afficher les résultats" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show approved requests" +msgstr "Afficher les requêtes approuvées" + +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +msgid "Show basics" +msgstr "Affichage court" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show denied requests" +msgstr "Afficher les requêtes refusées" + +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +msgid "Show details" +msgstr "Affichage long" + +#: html/Approvals/Elements/PendingMyApproval:42 +msgid "Show pending requests" +msgstr "Afficher les requêtes en attente" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show requests awaiting other approvals" +msgstr "Afficher les requêtes attendant d'autres approbations" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "Show ticket private commentary" +msgstr "Afficher les commentaires privés du ticket" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Show ticket summaries" +msgstr "Afficher les résumés de tickets" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "ShowACL" +msgstr "AfficherACL" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "ShowScrips" +msgstr "AfficherScrips" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "ShowTemplate" +msgstr "AfficherModèle" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowTicket" +msgstr "AfficherTicket" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "ShowTicketComments" +msgstr "AfficherCommentairesTickets" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "S'identifier en tant que demandeur ou CC de queue ou de ticket" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "S'identifier en tant qu'AdminCC de ticket ou de queue" + +#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/User/Prefs.html:111 +msgid "Signature" +msgstr "Signature" + +#: NOT FOUND IN SOURCE +msgid "Signed in as %1" +msgstr "Connecté en tant que %1" + +#: html/Admin/Elements/SelectSingleOrMultiple:25 +msgid "Single" +msgstr "Unique" + +#: html/Elements/Header:50 +msgid "Skip Menu" +msgstr "Passer le menu" + +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "Trier" + +#: NOT FOUND IN SOURCE +msgid "Sort key" +msgstr "Ordre de tri" + +#: html/Search/Elements/PickRestriction:108 +msgid "Sort results by" +msgstr "Trier les résultats par" + +#: NOT FOUND IN SOURCE +msgid "SortOrder" +msgstr "SortOrder" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "Bloqué" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "Page de début" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:34 +msgid "Started" +msgstr "Ouvert le" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "La date de démarrage '%1' n'a pas pu être analysée" + +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:30 +msgid "Starts" +msgstr "Débute" + +#: NOT FOUND IN SOURCE +msgid "Starts By" +msgstr "Débute le" + +#: NOT FOUND IN SOURCE +msgid "Starts date '%1' could not be parsed" +msgstr "La date de début '%1' n'a pas pu être analysée" + +#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:93 +msgid "State" +msgstr "Etat" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1200 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "Statut" + +#: etc/initialdata:294 +msgid "Status Change" +msgstr "Changement de statut" + +#: lib/RT/Transaction_Overlay.pm:528 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "Statut modifié de %1 à %2 " + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "ChangementDeStatut" + +#: html/Ticket/Elements/Tabs:146 +msgid "Steal" +msgstr "Voler" + +#: lib/RT/Queue_Overlay.pm:91 +msgid "Steal tickets" +msgstr "Voler les tickets " + +#: lib/RT/Queue_Overlay.pm:91 +msgid "StealTicket" +msgstr "VolerTicket" + +#: lib/RT/Transaction_Overlay.pm:587 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "Volé à %1" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 lib/RT/Ticket_Overlay.pm:1196 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "Sujet" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "Sujet modifié en %1" + +#: html/Elements/Submit:58 +msgid "Submit" +msgstr "Valider" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "Soumettre flux de travail" + +#: lib/RT/Group_Overlay.pm:748 +msgid "Succeeded" +msgstr "Réussi" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "Dim." + +#: lib/RT/System.pm:53 +msgid "SuperUser" +msgstr "SuperUtilisateur" + +#: html/User/Elements/DelegateRights:76 +msgid "System" +msgstr "Système" + +#: html/Admin/Elements/SelectRights:80 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:793 lib/RT/Interface/Web.pm:826 +msgid "System Error" +msgstr "Erreur système" + +#: NOT FOUND IN SOURCE +msgid "System Error. Right not granted." +msgstr "Erreur Système. Droit non délégué." + +#: NOT FOUND IN SOURCE +msgid "System Error. right not granted" +msgstr "Erreur Système. Droit non délégué" + +#: lib/RT/ACE_Overlay.pm:615 +msgid "System error. Right not delegated." +msgstr "Erreur système. Droit non délégué." + +#: 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 "Erreur système. Droit non accordé" + +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "Erreur Système. Imposible de déléguer les droits" + +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +msgid "System groups" +msgstr "Groupes système" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "SystemRolegroup à usage interne" + +#: lib/RT/CurrentUser.pm:319 +msgid "TEST_STRING" +msgstr "Chaîne_de_test" + +#: html/Ticket/Elements/Tabs:142 +msgid "Take" +msgstr "Prendre" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "Take tickets" +msgstr "Prendre les tickets" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "TakeTicket" +msgstr "PrendreTicket" + +#: lib/RT/Transaction_Overlay.pm:573 +msgid "Taken" +msgstr "Pris" + +#: html/Admin/Elements/EditScrip:80 +msgid "Template" +msgstr "Modèle" + +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "Modèle n°%1" + +#: html/Admin/Elements/EditTemplates:88 +msgid "Template deleted" +msgstr "Modèle supprimé" + +#: lib/RT/Scrip_Overlay.pm:152 +msgid "Template not found" +msgstr "Modèle inconnu" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "Modèle inconnu\\n" + +#: lib/RT/Template_Overlay.pm:352 +msgid "Template parsed" +msgstr "Modèle analysé" + +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +msgid "Templates" +msgstr "Modèles" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "Modèles pour %1\\n " + +#: lib/RT/Interface/Web.pm:894 +msgid "That is already the current value" +msgstr "Ceci est déjà la valeur actuelle" + +#: lib/RT/CustomField_Overlay.pm:242 +msgid "That is not a value for this custom field" +msgstr "Valeur incorrecte pour ce champ personnalisé." + +#: lib/RT/Ticket_Overlay.pm:1917 +msgid "That is the same value" +msgstr "Valeur identique" + +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "Ce groupe/utilisateur dispose déjà de ce droit" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "Ce groupe/utilisateur est déjà un %1 pour cette queue" + +#: lib/RT/Ticket_Overlay.pm:1451 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "Ce groupe/utilisateur est déjà un %1 pour ce ticket" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Ce groupe/utilisateur n'est pas un %1 pour cette queue" + +#: lib/RT/Ticket_Overlay.pm:1568 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "Ce groupe/utilisateur n'est pas un %1 pour ce ticket" + +#: lib/RT/Ticket_Overlay.pm:1913 +msgid "That queue does not exist" +msgstr "Queue inconnue" + +#: lib/RT/Ticket_Overlay.pm:3274 +msgid "That ticket has unresolved dependencies" +msgstr "Ticket ayant des tickets fils ou dépendants non résolus" + +#: NOT FOUND IN SOURCE +msgid "That user already has that right" +msgstr "Cet utilisateur possède déjà ce droit." + +#: lib/RT/Ticket_Overlay.pm:3084 +msgid "That user already owns that ticket" +msgstr "Cet utilisateur possède déjà ce ticket." + +#: lib/RT/Ticket_Overlay.pm:3056 +msgid "That user does not exist" +msgstr "Utilisateur inconnu" + +#: lib/RT/User_Overlay.pm:376 +msgid "That user is already privileged" +msgstr "Utilisateur possédant déjà un statut privilégié." + +#: lib/RT/User_Overlay.pm:397 +msgid "That user is already unprivileged" +msgstr "Utilisateur déjà sans privilèges." + +#: lib/RT/User_Overlay.pm:389 +msgid "That user is now privileged" +msgstr "Utilisateur bénéficiant à présent du statut privilégié" + +#: lib/RT/User_Overlay.pm:410 +msgid "That user is now unprivileged" +msgstr "Utilisateur à présent sans statut privilégié " + +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "Cet utilisateur a perdu ses droits" + +#: lib/RT/Ticket_Overlay.pm:3077 +msgid "That user may not own tickets in that queue" +msgstr "Cet utilisateur peut ne pas avoir de ticket dans cette queue." + +#: lib/RT/Link_Overlay.pm:205 +msgid "That's not a numerical id" +msgstr "ID non numérique" + +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +msgid "The Basics" +msgstr "Eléments de base" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The CC of a ticket" +msgstr "Le CC d'un ticket" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The administrative CC of a ticket" +msgstr "L'AdminCC d'un ticket" + +#: lib/RT/Ticket_Overlay.pm:2244 +msgid "The comment has been recorded" +msgstr "Commentaire enregistré" + +#: bin/rt-crontool:197 +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 "Cette commande trouve tous les tickets actifs de la queue 'general' et positionne leur priorité à 99 s'ils n'ont pas été touchés depuis quatre heures:" + +#: bin/rt-commit-handler:755 bin/rt-commit-handler:765 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "Les commandes suivantes n'ont pas été traitées :\\n\\n" + +#: lib/RT/Interface/Web.pm:897 +msgid "The new value has been set." +msgstr "La nouvelle valeur est enregistrée" + +#: lib/RT/ACE_Overlay.pm:85 +msgid "The owner of a ticket" +msgstr "L'intervenant d'un ticket" + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The requestor of a ticket" +msgstr "Le demandeur d'un ticket" + +#: html/Admin/Elements/EditUserComments:25 +msgid "These comments aren't generally visible to the user" +msgstr "Ces commentaires ne sont généralement pas accessibles par l'utilisateur" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "Ce ticket %1 %2 (%3)\\n " + +#: bin/rt-crontool:188 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "Cet outil permet à l'utilisateur de lancer un module perl quelconque depuis RT" + +#: lib/RT/Transaction_Overlay.pm:251 +msgid "This transaction appears to have no content" +msgstr "Cette opération semble ne pas avoir de contenu" + +#: html/Ticket/Elements/ShowRequestor:46 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "Les %1 tickets de plus haute priorité de cet utilisateur" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "Les 25 tickets prioritaires de cet utilisateur" + +#: lib/RT/Date.pm:391 +msgid "Thu." +msgstr "Jeu." + +#: NOT FOUND IN SOURCE +msgid "Ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 %2" +msgstr "Ticket n°%1 %2" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 Jumbo update: %2" +msgstr "Ticket n°%1 Jumbo update: %2" + +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "Ticket n°%1 mise à jour globale: %2" + +#: html/Approvals/Elements/ShowDependency:45 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "Ticket n°%1: %2" + +#: lib/RT/Ticket_Overlay.pm:623 lib/RT/Ticket_Overlay.pm:644 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "Ticket %1 créé dans la queue '%2'" + +#: bin/rt-commit-handler:759 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "Ticket %1 chargé\\n " + +#: html/Search/Bulk.html:212 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "Ticket %1: %2" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "Historique ticket # %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Ticket Id" +msgstr "N° ticket" + +#: etc/initialdata:309 +msgid "Ticket Resolved" +msgstr "Ticket résolu/clos" + +#: html/Search/Elements/PickRestriction:62 +msgid "Ticket attachment" +msgstr "Pièce jointe au ticket" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "Contenu du ticket." + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "Type du contenu du ticket" + +#: lib/RT/Ticket_Overlay.pm:514 lib/RT/Ticket_Overlay.pm:523 lib/RT/Ticket_Overlay.pm:533 lib/RT/Ticket_Overlay.pm:633 +msgid "Ticket could not be created due to an internal error" +msgstr "Une erreur interne a empêché l'ajout du ticket" + +#: lib/RT/Transaction_Overlay.pm:520 +msgid "Ticket created" +msgstr "Ticket ajouté" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "Création de ticket échouée." + +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Ticket deleted" +msgstr "Ticket supprimé." + +#: NOT FOUND IN SOURCE +msgid "Ticket id not found" +msgstr "Id de ticket non trouvée" + +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "Ticket effacé" + +#: NOT FOUND IN SOURCE +msgid "Ticket not found" +msgstr "Ticket non trouvé" + +#: etc/initialdata:295 +msgid "Ticket status changed" +msgstr "Statut de ticket modifié" + +#: html/Ticket/Update.html:38 +msgid "Ticket watchers" +msgstr "Observateurs du ticket" + +#: html/Elements/Tabs:46 +msgid "Tickets" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "Tickets %1 par %2" + +#: html/Elements/ViewUser:25 +#. ($name) +msgid "Tickets from %1" +msgstr "Tickets depuis %2" + +#: html/Approvals/Elements/ShowDependency:26 +msgid "Tickets which depend on this approval:" +msgstr "Tickets dépendant de cette approbation:" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +msgid "Time Left" +msgstr "Temps restant" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 +msgid "Time Worked" +msgstr "Temps passé" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "Temps restant" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "Temps de calcul" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "Temps passé" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "TempsRestant" + +#: lib/RT/Ticket_Overlay.pm:1201 +msgid "TimeWorked" +msgstr "TempsPassé" + +#: bin/rt-commit-handler:401 +msgid "To generate a diff of this commit:" +msgstr "Pour conserver les modifications de cette transaction" + +#: bin/rt-commit-handler:390 +msgid "To generate a diff of this commit:\\n" +msgstr "Pour conserver les modifications de cette transaction :\\n" + +#: lib/RT/Ticket_Overlay.pm:1204 +msgid "Told" +msgstr "Annoncé" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "Transaction" + +#: lib/RT/Transaction_Overlay.pm:691 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "La transaction%1 est supprimée" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "Transaction ajoutée" + +#: lib/RT/Transaction_Overlay.pm:88 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "Transaction->Create n'a pas fonctionné car vous n'avez pas spécifié d'identifiant de ticket" + +#: lib/RT/Transaction_Overlay.pm:750 +msgid "Transactions are immutable" +msgstr "Les transactions ne peuvent être transférées" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "Tentative de délégation d'un droit : %1" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "Mar." + +#: 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:1202 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "Type" + +#: lib/RT/ScripCondition_Overlay.pm:103 +msgid "Unimplemented" +msgstr "Fonction non disponible" + +#: html/Admin/Users/Modify.html:67 +msgid "Unix login" +msgstr "Identifiant Unix" + +#: html/Admin/Elements/ModifyUser:61 +msgid "UnixUsername" +msgstr "UnixUsername" + +#: lib/RT/Attachment_Overlay.pm:266 lib/RT/Attachment_Overlay.pm:298 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "Type d'encodage de courrier inconnu: %1" + +#: html/Elements/SelectResultsPerPage:36 +msgid "Unlimited" +msgstr "Illimité" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "Non privilégié" + +#: lib/RT/Transaction_Overlay.pm:569 +msgid "Untaken" +msgstr "Non pris" + +#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 +msgid "Update" +msgstr "Mettre à jour" + +#: html/Admin/Users/Prefs.html:61 +msgid "Update ID" +msgstr "Mettre à jour l'ID" + +#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:65 +msgid "Update Type" +msgstr "Mettre à jour le type" + +#: html/Search/Listing.html:60 +msgid "Update all these tickets at once" +msgstr "Mise à jour des tickets en masse" + +#: html/Admin/Users/Prefs.html:48 +msgid "Update email" +msgstr "Mettre à jour l'email" + +#: html/Admin/Users/Prefs.html:54 +msgid "Update name" +msgstr "Mettre à jour le nom" + +#: lib/RT/Interface/Web.pm:409 +msgid "Update not recorded." +msgstr "Mise à jour non enregistrée" + +#: html/Search/Bulk.html:80 +msgid "Update selected tickets" +msgstr "Mettre à jour les tickets sélectionnés" + +#: html/Admin/Users/Prefs.html:35 +msgid "Update signature" +msgstr "Mettre à jour la signature" + +#: html/Ticket/ModifyAll.html:62 +msgid "Update ticket" +msgstr "Mettre à jour le ticket" + +#: NOT FOUND IN SOURCE +msgid "Update ticket # %1" +msgstr "Mettre à jour le ticket n°%1" + +#: html/SelfService/Update.html:24 html/SelfService/Update.html:46 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Mettre à jour le ticket n°%1" + +#: html/Ticket/Update.html:139 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "Mettre à jour le ticket n°%1 (%2)" + +#: lib/RT/Interface/Web.pm:407 +msgid "Update type was neither correspondence nor comment." +msgstr "Le type de mise à jour n'était ni un commentaire ni un courrier." + +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:50 lib/RT/Ticket_Overlay.pm:1205 +msgid "Updated" +msgstr "Mis(e) à jour" + +#: NOT FOUND IN SOURCE +msgid "User %1 %2: %3\\n" +msgstr "Utilisateur %1 %2: %3\\n" + +#: NOT FOUND IN SOURCE +msgid "User %1 Password: %2\\n" +msgstr "Mot de passe de l'utilisateur %1 : %2\\n" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found" +msgstr "Utilisateur '%1' non trouvé" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found\\n" +msgstr "Utilisateur '%1' non trouvé\\n" + +#: etc/initialdata:124 etc/initialdata:191 +msgid "User Defined" +msgstr "Utilisateur défini" + +#: html/Admin/Users/Prefs.html:58 +msgid "User ID" +msgstr "Id utilisateur" + +#: html/Elements/SelectUsers:25 +msgid "User Id" +msgstr "Id utilisateur" + +#: 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 "Droits utilisateurs" + +#: html/Admin/Users/Modify.html:225 +#. ($msg) +msgid "User could not be created: %1" +msgstr "Utilisateur ne peut pas être créé : %1" + +#: lib/RT/User_Overlay.pm:321 +msgid "User created" +msgstr "Utilisateur créé" + +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "Groupes utilisateur" + +#: lib/RT/User_Overlay.pm:575 lib/RT/User_Overlay.pm:592 +msgid "User loaded" +msgstr "Utilisateur chargé" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "Utilisateur informé" + +#: html/Admin/Users/Prefs.html:24 html/Admin/Users/Prefs.html:28 +msgid "User view" +msgstr "Vue utilisateur" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +msgid "Username" +msgstr "Nom d'utilisateur" + +#: 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 "Utilisateurs" + +#: html/Admin/Users/index.html:64 +msgid "Users matching search criteria" +msgstr "Utilisateurs correspondants aux critères de recherche" + +#: html/Search/Elements/PickRestriction:50 +msgid "ValueOfQueue" +msgstr "ValueOfQueue" + +#: html/Admin/Elements/EditCustomField:56 +msgid "Values" +msgstr "Valeurs" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Watch" +msgstr "Observer" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "WatchAsAdminCc" +msgstr "ObserverCommeAdminCC" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "Observateur chargé" + +#: html/Admin/Elements/QueueTabs:41 +msgid "Watchers" +msgstr "Observateurs" + +#: html/Admin/Elements/ModifyUser:55 +msgid "WebEncoding" +msgstr "WebEncoding" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "Mer." + +#: etc/initialdata:503 etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "Quand un ticket a été approuvé par tous les approbateurs, ajoute le courrier au ticket source" + +#: etc/initialdata:467 etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "Quand un ticket a été approuvé par au moins un approbateur, ajoute le courrier au ticket source " + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "Quand un ticket est créé" + +#: etc/initialdata:400 etc/upgrade/2.1.71:79 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "Quand un ticket d'approbation est créé, informer l'intervenant et l'AdminCC de l'élément attendant leur approbation" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "Quand quelque chose arrive" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "Lorsqu'un ticket quelconque est résolu/clos" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "Lorsqu'un ticket quelconque change d'intervenant" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "Lorsqu'un ticket quelconque change de queue" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "Lorsqu'un ticket quelconque change de statut" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "Lorsqu'une condition définie par l'utilisateur est satisfaite" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "Lorsque un commentaire arrive" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "Lorsque un courrier arrive" + +#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:51 +msgid "Work" +msgstr "Travail" + +#: html/Admin/Elements/ModifyUser:69 +msgid "WorkPhone" +msgstr "Tel. bureau" + +#: html/Ticket/Elements/ShowBasics:34 html/Ticket/Update.html:64 +msgid "Worked" +msgstr "Travaillé" + +#: lib/RT/Ticket_Overlay.pm:3187 +msgid "You already own this ticket" +msgstr "Vous êtes déjà intervenant de ce ticket" + +#: html/autohandler:122 +msgid "You are not an authorized user" +msgstr "Vous n'êtes pas un utilisateur autorisé" + +#: lib/RT/Ticket_Overlay.pm:3069 +msgid "You can only reassign tickets that you own or that are unowned" +msgstr "Vous pouvez seulement réaffecter vos ticket ou ceux qui ne sont pas affectés" + +#: NOT FOUND IN SOURCE +msgid "You don't have permission to view that ticket.\\n" +msgstr "Vous n'êtes pas autorisé à voir ce ticket.\\n" + +#: docs/design_docs/string-extraction-guide.txt:47 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "%1 tickets trouvés dans la queue %2" + +#: html/NoAuth/Logout.html:30 +msgid "You have been logged out of RT." +msgstr "Vous avez été déconnecté de RT." + +#: html/SelfService/Display.html:77 +msgid "You have no permission to create tickets in that queue." +msgstr "Vous n'avez pas l'autorisation de créer des tickets dans cette queue." + +#: lib/RT/Ticket_Overlay.pm:1926 +msgid "You may not create requests in that queue." +msgstr "Vous ne pouvez pas créer de demandes dans cette queue." + +#: html/NoAuth/Logout.html:34 +msgid "You're welcome to login again" +msgstr "Vous êtes invité à vous identifier à nouveau" + +#: NOT FOUND IN SOURCE +msgid "Your %1 requests" +msgstr "Vos %1 requêtes" + +#: NOT FOUND IN SOURCE +msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "Votre administrateur RT a mal configuré l'alias de mail qui appelle RT" + +#: etc/initialdata:484 etc/upgrade/2.1.71:146 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "Votre demande a été approuvée par %1. D'autres approbations sont peut être toujours en attente" + +#: etc/initialdata:522 etc/upgrade/2.1.71:180 +msgid "Your request has been approved." +msgstr "Votre demande a été approuvée" + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "Votre demande a été rejetée" + +#: etc/initialdata:427 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "Votre demande a été rejetée." + +#: html/autohandler:144 +msgid "Your username or password is incorrect" +msgstr "Votre nom d'utilisateur ou votre mot de passe est incorrect" + +#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:95 +msgid "Zip" +msgstr "Code Postal" + +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "[Pas de sujet]" + +#: html/User/Elements/DelegateRights:58 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "comme accordé à %1" + +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "fermé" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +msgid "contains" +msgstr "contient" + +#: html/Elements/SelectAttachmentField:25 +msgid "content" +msgstr "Contenu" + +#: html/Elements/SelectAttachmentField:26 +msgid "content-type" +msgstr "Type de contenu" + +#: lib/RT/Ticket_Overlay.pm:2313 +msgid "correspondence (probably) not sent" +msgstr "courrier (probablement) non envoyé" + +#: lib/RT/Ticket_Overlay.pm:2323 +msgid "correspondence sent" +msgstr "courrier envoyé" + +#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +msgid "days" +msgstr "jours" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "effacé" + +#: html/Search/Listing.html:74 +msgid "delete" +msgstr "effacer" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "deleted" +msgstr "effacé" + +#: html/Search/Elements/PickRestriction:67 +msgid "does not match" +msgstr "ne correspond pas" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +msgid "doesn't contain" +msgstr "ne contient pas" + +#: html/Elements/SelectEqualityOperator:37 +msgid "equal to" +msgstr "égal à" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "faux" + +#: html/Elements/SelectAttachmentField:27 +msgid "filename" +msgstr "Nom de fichier" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +msgid "greater than" +msgstr "supérieur à" + +#: lib/RT/Group_Overlay.pm:193 +#. ($self->Name) +msgid "group '%1'" +msgstr "groupe '%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "heures" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "n°" + +#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 +msgid "is" +msgstr "est" + +#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "isn't" +msgstr "n'est pas" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +msgid "less than" +msgstr "inférieur à" + +#: html/Search/Elements/PickRestriction:66 +msgid "matches" +msgstr "correspond" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "min" + +#: html/Ticket/Update.html:64 +msgid "minutes" +msgstr "minutes" + +#: bin/rt-commit-handler:764 +msgid "modifications\\n\\n" +msgstr "modifications\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "mois" + +#: lib/RT/Queue_Overlay.pm:57 +msgid "new" +msgstr "nouveau" + +#: html/Admin/Elements/EditScrips:42 +msgid "no value" +msgstr "Non renseigné" + +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +msgid "none" +msgstr "aucun" + +#: html/Elements/SelectEqualityOperator:37 +msgid "not equal to" +msgstr "différent de" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "necontientpas" + +#: html/SelfService/Elements/MyRequests:60 lib/RT/Queue_Overlay.pm:58 +msgid "open" +msgstr "ouvert" + +#: lib/RT/Group_Overlay.pm:198 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "groupe personnel '%1' pour l'utilisateur '%2'" + +#: lib/RT/Group_Overlay.pm:206 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "queue %1 %2" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "rejected" +msgstr "rejeté" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "resolved" +msgstr "résolu" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "sec" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "stalled" +msgstr "bloqué" + +#: lib/RT/Group_Overlay.pm:201 +#. ($self->Type) +msgid "system %1" +msgstr "système %1" + +#: lib/RT/Group_Overlay.pm:212 +#. ($self->Type) +msgid "system group '%1'" +msgstr "groupe système '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:41 +msgid "the calling component did not specify why" +msgstr "le composant appelant n'a pas spécifié pourquoi" + +#: lib/RT/URI/fsck_com_rt.pm:234 +#. ($self->Object->Id) +msgid "ticket #%1" +msgstr "ticket n°%1" + +#: lib/RT/Group_Overlay.pm:209 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "ticket n°%1 %2" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "vrai" + +#: lib/RT/Group_Overlay.pm:215 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "Groupe %1 non décrit" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "Groupe non décrit %1" + +#: lib/RT/Group_Overlay.pm:190 +#. ($user->Object->Name) +msgid "user %1" +msgstr "utilisateur %1" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "semaines" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "Avec modèle %1" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "années" + diff --git a/rt/lib/RT/I18N/he.po b/rt/lib/RT/I18N/he.po new file mode 100644 index 000000000..d3ef20e25 --- /dev/null +++ b/rt/lib/RT/I18N/he.po @@ -0,0 +1,4871 @@ +# Hebrew Translation of the RT interface by Shimi. +# Comments: shimi@shimi.net + +msgid "" +msgstr "" +"Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +msgid "#" +msgstr "" + +#: html/Admin/Queues/Scrip.html:55 +#. ($QueueObj->id) +msgid "#%1" +msgstr "" + +#: html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:50 html/SelfService/Display.html:25 html/Ticket/Display.html:26 html/Ticket/Display.html:30 +#. ($Ticket->Id, $Ticket->Subject) +#. ($Ticket->id, $Ticket->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +msgid "%1 %2 %3" +msgstr "" + +#: 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 "" + +#: lib/RT/Ticket_Overlay.pm:3505 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 הוסף" +msgstr "" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 לפני %2 ימי×" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3511 lib/RT/Transaction_Overlay.pm:564 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 שונה ל %3" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3508 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 נמחק" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 מקבוצה %3" +msgstr "" + +#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 פנייה זו\\n" +msgstr "" + +#: html/Search/Listing.html:57 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "%1 - %2 מוצגי×" + +#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - ×רגומנט להעביר ×ל %2" +msgstr "" + +#: bin/rt-crontool:185 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "" + +#: bin/rt-crontool:179 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "" + +#: bin/rt-crontool:173 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "" + +#: bin/rt-crontool:166 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "" + +#: lib/RT/ScripAction_Overlay.pm:122 +#. ($self->Id) +msgid "%1 פעולת-סקריפ נטענה" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3538 +#. ($args{'Value'}, $cf->Name) +msgid "%1 הוסף כערך עבור %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgstr "" + +#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#. ($args{'Base'}) +#. ($args{'Target'}) +msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgstr "" + +#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:481 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 על ידי %2" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:624 lib/RT/Transaction_Overlay.pm:633 lib/RT/Transaction_Overlay.pm:636 +#. ($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 שונה מ %2 ל %3" +msgstr "" + +#: lib/RT/Interface/Web.pm:891 +msgid "%1 could not be set to %2." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2817 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "" + +#: html/Elements/MyTickets:25 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "%1 הפניות ×¢× ×”×¢×“×™×¤×•×ª הגבוהה ביותר בטיפולי..." + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "%1 הפניות ×¢× ×”×¢×“×™×¤×•×ª הגבוהה ביותר ש×× ×™ פתחתי..." + +#: bin/rt-crontool:161 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "" + +#: lib/RT/Queue_Overlay.pm:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1570 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3594 +#. ($args{'Value'}, $cf->Name) +msgid "%1 is no longer a value for custom field %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "" + +#: html/Ticket/Elements/ShowBasics:36 +#. ($TimeWorked) +msgid "%1 min" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "" + +#: html/User/Elements/DelegateRights:76 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "זכויות" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 was created without a CurrentUser\\n" +msgstr "" + +#: lib/RT/Action/ResolveMembers.pm:42 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:433 +#. ($self) +msgid "%1: no attachment specified" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:102 +#. ($size) +msgid "%1b" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:99 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1140 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "'%1' not a recognized action. " +msgstr "" + +#: 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:25 html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +msgid "(Check box to delete)" +msgstr "(סמן תיבה כדי למחוק)" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "(סמן תיבות כדי למחוק)" + +#: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + +#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#. ($RT::CorrespondAddress) +#. ($RT::CommentAddress) +msgid "(If left blank, will default to %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +msgid "(No custom fields)" +msgstr "" + +#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +msgid "(No members)" +msgstr "" + +#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +msgid "(No scrips)" +msgstr "" + +#: html/Admin/Elements/EditTemplates:31 +msgid "(No templates)" +msgstr "" + +#: html/Ticket/Update.html:85 +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 "" + +#: 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 "" + +#: html/Ticket/Create.html:79 +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 "" + +#: html/Ticket/Update.html:81 +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 "" + +#: 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 "" + +#: html/Ticket/Create.html:69 +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 "" + +#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +msgid "(empty)" +msgstr "" + +#: html/Admin/Users/index.html:39 +msgid "(no name listed)" +msgstr "" + +#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +msgid "(no subject)" +msgstr "" + +#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:534 +msgid "(no value)" +msgstr "" + +#: html/Ticket/Elements/EditLinks:116 +msgid "(only one ticket)" +msgstr "(רק פנייה ×חת)" + +#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +msgid "(pending approval)" +msgstr "" + +#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +msgid "(pending other tickets)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(requestor's group)" +msgstr "" + +#: html/Admin/Users/Modify.html:50 +msgid "(required)" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "(untitled)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "" + +#: html/Ticket/Elements/ShowBasics:32 +msgid "<% $Ticket->Status%>" +msgstr "" + +#: html/Elements/SelectTicketTypes:27 +msgid "<% $_ %>" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"פנייה חדשה ב\"> %1" + +#: NOT FOUND IN SOURCE +msgid "??????" +msgstr "" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Loaded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be found" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +msgid "ACE not found" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:831 +msgid "ACEs can only be created and deleted." +msgstr "" + +#: bin/rt-commit-handler:755 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "" + +#: html/User/Elements/Tabs:32 +msgid "About me" +msgstr "מידע ×ודותי" + +#: html/Admin/Users/Modify.html:80 +msgid "Access control" +msgstr "" + +#: html/Admin/Elements/EditScrip:57 +msgid "Action" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:147 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "" + +#: bin/rt-crontool:123 +msgid "Action committed." +msgstr "" + +#: bin/rt-crontool:119 +msgid "Action prepared..." +msgstr "" + +#: html/Search/Bulk.html:92 +msgid "Add AdminCc" +msgstr "הוסף העתק ניהולי" + +#: html/Search/Bulk.html:90 +msgid "Add Cc" +msgstr "הוסף העתק" + +#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +msgid "Add More Files" +msgstr "הוסף עוד קבצי×" + +#: NOT FOUND IN SOURCE +msgid "Add Next State" +msgstr "" + +#: html/Search/Bulk.html:88 +msgid "Add Requestor" +msgstr "הוסף מבקש" + +#: html/Admin/Elements/AddCustomFieldValue:26 +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:55 +msgid "Add a scrip which will apply to all queues" +msgstr "" + +#: html/Search/Bulk.html:118 +msgid "Add comments or replies to selected tickets" +msgstr "הוסף הערות ×ו תגובות לפניות הנבחרות" + +#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +msgid "Add members" +msgstr "" + +#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +msgid "Add new watchers" +msgstr "הוסף ×¦×•×¤×™× ×—×“×©×™×" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1454 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "" + +#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +msgid "Address1" +msgstr "כתובת1" + +#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +msgid "Address2" +msgstr "כתובת2" + +#: html/Ticket/Create.html:74 +msgid "Admin Cc" +msgstr "" + +#: etc/initialdata:280 +msgid "Admin Comment" +msgstr "" + +#: etc/initialdata:259 +msgid "Admin Correspondence" +msgstr "" + +#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +msgid "Admin queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "" + +#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +msgid "Admin/Global configuration" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "" + +#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +msgid "Admin/Queue/Basics" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +msgid "AdminCc" +msgstr "העתק ניהולי" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "AdminCustomFields" +msgstr "" + +#: lib/RT/Group_Overlay.pm:146 +msgid "AdminGroup" +msgstr "" + +#: lib/RT/Group_Overlay.pm:148 +msgid "AdminGroupMembership" +msgstr "" + +#: lib/RT/System.pm:59 +msgid "AdminOwnPersonalGroups" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "AdminQueue" +msgstr "" + +#: lib/RT/System.pm:60 +msgid "AdminUsers" +msgstr "" + +#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +msgid "Administrative Cc" +msgstr "העתק ניהולי" + +#: NOT FOUND IN SOURCE +msgid "Admins" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "" + +#: html/Elements/SelectDateRelation:36 +msgid "After" +msgstr "×חרי" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias for" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:96 +msgid "All Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:53 +msgid "All Queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "" + +#: html/Elements/Tabs:56 +msgid "Approval" +msgstr "×ישור" + +#: html/Approvals/Display.html:46 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#. ($Ticket->Id, $Ticket->Subject) +#. ($ticket->id, $msg) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Approval #%1: %2" +msgstr "" + +#: html/Approvals/index.html:54 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "" + +#: html/Approvals/index.html:52 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "" + +#: html/Approvals/Elements/Approve:44 +msgid "Approve" +msgstr "" + +#: etc/initialdata:437 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "×פריל" + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "×פריל" + +#: html/Elements/SelectSortOrder:35 +msgid "Ascending" +msgstr "עולה" + +#: html/Search/Bulk.html:127 html/SelfService/Update.html:33 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +msgid "Attach" +msgstr "צרף" + +#: html/SelfService/Create.html:65 html/Ticket/Create.html:110 +msgid "Attach file" +msgstr "" + +#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +msgid "Attached file" +msgstr "קובץ מצורף" + +#: NOT FOUND IN SOURCE +msgid "Attachment '%1' could not be loaded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:441 +msgid "Attachment created" +msgstr "קובץ צורף" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "×©× ×§×•×‘×¥ מצורף" + +#: html/Ticket/Elements/ShowAttachments:26 +msgid "Attachments" +msgstr "×§×‘×¦×™× ×ž×¦×•×¨×¤×™×" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "×וגוסט" + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "×וגוסט" + +#: html/Admin/Elements/ModifyUser:66 +msgid "AuthSystem" +msgstr "" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "" + +#: bin/rt-commit-handler:827 +#. ($val) +msgid "Bad data in %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "" + +#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +msgid "Basics" +msgstr "בסיסי" + +#: html/Ticket/Update.html:83 +msgid "Bcc" +msgstr "" + +#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +msgid "Be sure to save your changes" +msgstr "×ל תשכח לשמור ×ת השינויי×" + +#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:320 +msgid "Before" +msgstr "לפני" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "" + +#: html/Search/Listing.html:79 +msgid "Bookmarkable URL for this search" +msgstr "הוסף כתובת זו לספר הכתובות כדי לחזור על ×ותו חיפוש" + +#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +msgid "Brief headers" +msgstr "תקציר כותרי×" + +#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +msgid "Bulk ticket update" +msgstr "עדכון פניות מרוכז" + +#: lib/RT/User_Overlay.pm:1352 +msgid "Can not modify system users" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Can this principal see this queue" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:206 +msgid "Can't add a custom field value without a name" +msgstr "" + +#: lib/RT/Link_Overlay.pm:132 +msgid "Can't link a ticket to itself" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2794 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2612 lib/RT/Ticket_Overlay.pm:2681 +msgid "Can't specifiy both base and target" +msgstr "" + +#: html/autohandler:99 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "" + +#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:49 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +msgid "Cc" +msgstr "העתק" + +#: html/SelfService/Prefs.html:31 +msgid "Change password" +msgstr "" + +#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +msgid "Check box to delete" +msgstr "סמן תיבה כדי למחוק" + +#: html/Admin/Elements/SelectRights:31 +msgid "Check box to revoke right" +msgstr "סמן תיבה כדי לבטל זכות" + +#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:57 +msgid "Children" +msgstr "ילדי×" + +#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +msgid "City" +msgstr "עיר" + +#: html/Ticket/Elements/ShowDates:47 +msgid "Closed" +msgstr "נסגר" + +#: html/SelfService/Closed.html:25 +msgid "Closed Tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Closed requests" +msgstr "" + +#: html/SelfService/Elements/Tabs:45 +msgid "Closed tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Code" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +msgid "Comment" +msgstr "הערה" + +#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +msgid "Comment Address" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Comment on tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "CommentOnTicket" +msgstr "" + +#: html/Admin/Elements/ModifyUser:35 +msgid "Comments" +msgstr "" + +#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +msgid "Comments (Not sent to requestors)" +msgstr "הערות (×œ× × ×©×œ×—×•×ª ×ל המבקשי×)" + +#: html/Search/Bulk.html:122 +msgid "Comments (not sent to requestors)" +msgstr "הערות (×œ× × ×©×œ×—×•×ª ×ל המבקשי×)" + +#: html/Elements/ViewUser:27 +#. ($name) +msgid "Comments about %1" +msgstr "הערות לגבי %1" + +#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +msgid "Comments about this user" +msgstr "הערות לגבי משתמש ×–×”" + +#: lib/RT/Transaction_Overlay.pm:543 +msgid "Comments added" +msgstr "הערות נוספו" + +#: lib/RT/Action/Generic.pm:140 +msgid "Commit Stubbed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "" + +#: html/Admin/Elements/EditScrip:41 +msgid "Condition" +msgstr "" + +#: bin/rt-crontool:109 +msgid "Condition matches..." +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:160 +msgid "Condition not found" +msgstr "" + +#: html/Elements/Tabs:50 +msgid "Configuration" +msgstr "הגדרות" + +#: html/SelfService/Prefs.html:33 +msgid "Confirm" +msgstr "" + +#: html/Admin/Elements/ModifyUser:60 +msgid "ContactInfoSystem" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "" + +#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +msgid "Content" +msgstr "תוכן" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "" + +#: etc/initialdata:271 +msgid "Correspondence" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +msgid "Correspondence Address" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:539 +msgid "Correspondence added" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3525 +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 "" + +#: lib/RT/Ticket_Overlay.pm:3031 lib/RT/Ticket_Overlay.pm:3039 lib/RT/Ticket_Overlay.pm:3055 +msgid "Could not change owner. " +msgstr "" + +#: html/Admin/Elements/EditCustomField:85 html/Admin/Elements/EditCustomFields:166 +#. ($msg) +msgid "Could not create CustomField" +msgstr "" + +#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +msgid "Could not create group" +msgstr "" + +#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#. ($msg) +msgid "Could not create template: %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:334 +msgid "Could not create ticket. Queue not set" +msgstr "" + +#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:422 +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 find a ticket with id %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "" + +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +msgid "Could not find or create that user" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +msgid "Could not find that principal" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "" + +#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +msgid "Could not load group" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1443 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1559 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "" + +#: lib/RT/Group_Overlay.pm:985 +msgid "Couldn't add member to group" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3535 lib/RT/Ticket_Overlay.pm:3591 +#. ($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 "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find group\\n" +msgstr "" + +#: lib/RT/Interface/Web.pm:900 +msgid "Couldn't find row" +msgstr "" + +#: lib/RT/Group_Overlay.pm:959 +msgid "Couldn't find that principal" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:240 +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 "" + +#: lib/RT/CurrentUser.pm:112 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load KeywordSelects." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Scrips." +msgstr "" + +#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#. ($id) +msgid "Couldn't load group %1" +msgstr "" + +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +msgid "Couldn't load link" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#. ($id) +msgid "Couldn't load queue" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "" + +#: html/Admin/Users/Prefs.html:79 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "" + +#: html/SelfService/Display.html:109 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "" + +#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +msgid "Country" +msgstr "×רץ" + +#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +msgid "Create" +msgstr "צור" + +#: etc/initialdata:128 +msgid "Create Tickets" +msgstr "צור פניות" + +#: html/Admin/Elements/EditCustomField:75 +msgid "Create a CustomField" +msgstr "" + +#: html/Admin/Queues/CustomField.html:48 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:48 +msgid "Create a CustomField which applies to all queues" +msgstr "" + +#: 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:67 html/Admin/Groups/Modify.html:93 +msgid "Create a new group" +msgstr "" + +#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +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:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +msgid "Create a new ticket" +msgstr "צור פנייה חדשה" + +#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +msgid "Create a new user" +msgstr "צור משתמש חדש" + +#: html/Admin/Queues/Modify.html:103 +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:59 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "" + +#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +msgid "Create a template" +msgstr "" + +#: html/SelfService/Create.html:25 +msgid "Create a ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1 / %2 / %3 " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1/%2/%3" +msgstr "" + +#: etc/initialdata:130 +msgid "Create new tickets based on this scrip's template" +msgstr "" + +#: html/SelfService/Create.html:78 +msgid "Create ticket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Create tickets in this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Create, delete and modify custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 +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:59 +msgid "Create, delete and modify the members of personal groups" +msgstr "" + +#: lib/RT/System.pm:60 +msgid "Create, delete and modify users" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "CreateTicket" +msgstr "" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +msgid "Created" +msgstr "נוצר" + +#: html/Admin/Elements/EditCustomField:88 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "" + +#: html/Ticket/Elements/EditLinks:28 +msgid "Current Relationships" +msgstr "×™×—×¡×™× × ×•×›×—×™×™×" + +#: html/Admin/Elements/EditScrips:30 +msgid "Current Scrips" +msgstr "" + +#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +msgid "Current members" +msgstr "" + +#: html/Admin/Elements/SelectRights:29 +msgid "Current rights" +msgstr "" + +#: html/Search/Listing.html:71 +msgid "Current search criteria" +msgstr "קריטריוני החיפוש הנוכחיי×" + +#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +msgid "Current watchers" +msgstr "×¦×•×¤×™× × ×•×›×—×™×™×" + +#: html/Admin/Global/CustomField.html:55 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "" + +#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:36 +msgid "Custom Fields" +msgstr "" + +#: html/Admin/Elements/EditScrip:73 +msgid "Custom action cleanup code" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Custom action preparation code" +msgstr "" + +#: html/Admin/Elements/EditScrip:49 +msgid "Custom condition" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3427 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:197 +msgid "Custom field deleted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3577 +msgid "Custom field not found" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:350 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:250 +msgid "Custom field value could not be deleted" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:356 +msgid "Custom field value could not be found" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:248 lib/RT/CustomField_Overlay.pm:358 +msgid "Custom field value deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:548 +msgid "CustomField" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "" + +#: html/SelfService/Display.html:39 html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:55 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +msgid "Dates" +msgstr "ת×ריכי×" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "דצמבר" + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "דצמבר" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "" + +#: etc/initialdata:281 +msgid "Default admin comment template" +msgstr "" + +#: etc/initialdata:260 +msgid "Default admin correspondence template" +msgstr "" + +#: etc/initialdata:272 +msgid "Default correspondence template" +msgstr "" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:643 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "" + +#: html/User/Delegation.html:25 html/User/Delegation.html:28 +msgid "Delegate rights" +msgstr "" + +#: lib/RT/System.pm:63 +msgid "Delegate specific rights which have been granted to you." +msgstr "" + +#: lib/RT/System.pm:63 +msgid "DelegateRights" +msgstr "" + +#: html/User/Elements/Tabs:38 +msgid "Delegation" +msgstr "דלגציות" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "מחק" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "Delete tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "DeleteTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:292 +msgid "Deleting this object would break referential integrity" +msgstr "" + +#: lib/RT/User_Overlay.pm:438 +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:45 +msgid "Deny" +msgstr "" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:37 +msgid "Depended on by" +msgstr "×ª×œ×•×™×™× ×‘×•" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +msgid "Depends on" +msgstr "תלוי ב" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "" + +#: html/Elements/SelectSortOrder:35 +msgid "Descending" +msgstr "יורד" + +#: html/SelfService/Create.html:73 html/Ticket/Create.html:119 +msgid "Describe the issue below" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:37 html/Admin/Elements/EditCustomField:39 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +msgid "Description" +msgstr "תי×ור" + +#: NOT FOUND IN SOURCE +msgid "Details" +msgstr "פרטי×" + +#: html/Ticket/Elements/Tabs:85 +msgid "Display" +msgstr "הצג" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Display Access Control List" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Display Scrip templates for this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Display Scrips for this queue" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:35 +msgid "Display mode" +msgstr "מצב תצוגה" + +#: NOT FOUND IN SOURCE +msgid "Display ticket #%1" +msgstr "הצג פנייה #%1" + +#: lib/RT/System.pm:54 +msgid "Do anything and everything" +msgstr "" + +#: html/Elements/Refresh:30 +msgid "Don't refresh this page." +msgstr "×ל תרענן דף ×–×”." + +#: html/Search/Elements/PickRestriction:114 +msgid "Don't show search results" +msgstr "×ל תר××” ×ת תוצ×ות החיפוש" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "Download" +msgstr "הורד" + +#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +msgid "Due" +msgstr "ת×ריך יעד" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "" + +#: bin/rt-commit-handler:754 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit Conditions" +msgstr "" + +#: html/Admin/Queues/CustomFields.html:45 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "" + +#: html/Ticket/ModifyLinks.html:36 +msgid "Edit Relationships" +msgstr "" + +#: html/Admin/Queues/Templates.html:42 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "" + +#: html/Admin/Global/index.html:46 +msgid "Edit system templates" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:118 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "" + +#: html/Admin/Elements/ModifyUser:25 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "" + +#: html/Admin/Elements/EditCustomField:91 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:32 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "" + +#: html/User/Groups/Members.html:129 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2622 lib/RT/Ticket_Overlay.pm:2690 +msgid "Either base or target must be specified" +msgstr "" + +#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +msgid "Email" +msgstr "××™-מייל" + +#: lib/RT/User_Overlay.pm:188 +msgid "Email address in use" +msgstr "" + +#: html/Admin/Elements/ModifyUser:42 +msgid "EmailAddress" +msgstr "" + +#: html/Admin/Elements/ModifyUser:54 +msgid "EmailEncoding" +msgstr "" + +#: html/Admin/Elements/EditCustomField:51 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "" + +#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "מופעל (מחיקת סימון תיבה זו מבטלת ×ת קבוצה זו)" + +#: html/Admin/Queues/Modify.html:84 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:99 +msgid "Enabled Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:56 +msgid "Enabled Queues" +msgstr "" + +#: html/Admin/Elements/EditCustomField:107 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:428 +msgid "Enter multiple values" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:425 +msgid "Enter one value" +msgstr "" + +#: html/Ticket/Elements/EditLinks:112 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "הכנס פניות ×ו כתובות כדי לקשר פניות ×ליהן. הפרד ×¢×¨×›×™× ×¨×‘×™× ×‘×מצעות רווחי×." + +#: html/Elements/Login:39 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +msgid "Error" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1356 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1532 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "" + +#: bin/rt-crontool:194 +msgid "Example:" +msgstr "" + +#: html/Admin/Elements/ModifyUser:64 +msgid "ExternalAuthId" +msgstr "" + +#: html/Admin/Elements/ModifyUser:58 +msgid "ExternalContactInfoId" +msgstr "" + +#: html/Admin/Users/Modify.html:73 +msgid "Extra info" +msgstr "" + +#: lib/RT/User_Overlay.pm:302 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "" + +#: lib/RT/User_Overlay.pm:309 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "" + +#: bin/rt-crontool:138 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "פברו×ר" + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "פברו×ר" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "עדיפות סופית" + +#: lib/RT/Ticket_Overlay.pm:1162 +msgid "FinalPriority" +msgstr "" + +#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +msgid "Find group whose" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Find new/open tickets" +msgstr "" + +#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +msgid "Find people whose" +msgstr "×ž×¦× ×× ×©×™× ×©" + +#: html/Search/Listing.html:108 +msgid "Find tickets" +msgstr "×ž×¦× ×¤× ×™×•×ª" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "" + +#: html/Ticket/Elements/Tabs:58 +msgid "First" +msgstr "" + +#: html/Search/Listing.html:41 +msgid "First page" +msgstr "עמוד ר×שון" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "" + +#: html/Search/Bulk.html:87 +msgid "Force change" +msgstr "הכרח שינוי" + +#: html/Search/Listing.html:106 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "נמצ×ו %1 פניות" + +#: lib/RT/Interface/Web.pm:902 +msgid "Found Object" +msgstr "" + +#: html/Admin/Elements/ModifyUser:44 +msgid "FreeformContactInfo" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:38 +msgid "FreeformMultiple" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformSingle" +msgstr "" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "שישי" + +#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +msgid "Full headers" +msgstr "×›×•×ª×¨×™× ×ž×œ××™×" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:593 +#. ($New->Name) +msgid "Given to %1" +msgstr "" + +#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +msgid "Global" +msgstr "גלוב×לי" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:38 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +msgid "Go!" +msgstr "חפש" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "" + +#: html/Search/Listing.html:50 +msgid "Goto page" +msgstr "" + +#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +msgid "Goto ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Grand" +msgstr "" + +#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +msgid "Group" +msgstr "קבוצה" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "קבוצה %1 %2: %3" + +#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +msgid "Group Rights" +msgstr "זכויות קבוצה" + +#: lib/RT/Group_Overlay.pm:965 +msgid "Group already has member" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "" + +#: html/Admin/Groups/Modify.html:77 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:497 +msgid "Group created" +msgstr "" + +#: lib/RT/Group_Overlay.pm:1133 +msgid "Group has no such member" +msgstr "" + +#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +msgid "Group not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Group not found.\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Group not specified.\\n" +msgstr "" + +#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +msgid "Groups" +msgstr "קבוצות" + +#: lib/RT/Group_Overlay.pm:971 +msgid "Groups can't be members of their members" +msgstr "" + +#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +msgid "Hello!" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +msgid "History" +msgstr "הסטוריה" + +#: html/Admin/Elements/ModifyUser:68 +msgid "HomePhone" +msgstr "" + +#: html/Elements/Tabs:44 +msgid "Homepage" +msgstr "דף הבית" + +#: lib/RT/Base.pm:74 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "" + +#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "" + +#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +msgid "Identity" +msgstr "זהות" + +#: etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "" + +#: bin/rt-crontool:190 +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:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "If you've updated anything above, be sure to" +msgstr "×× ×¢×“×›× ×ª משהו לעיל, ×ל תשכח ל" + +#: lib/RT/Interface/Web.pm:894 +msgid "Illegal value for %1" +msgstr "" + +#: lib/RT/Interface/Web.pm:897 +msgid "Immutable field" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:74 +msgid "Include disabled custom fields in listing." +msgstr "" + +#: html/Admin/Queues/index.html:43 +msgid "Include disabled queues in listing." +msgstr "" + +#: html/Admin/Users/index.html:47 +msgid "Include disabled users in search." +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +msgid "InitialPriority" +msgstr "" + +#: lib/RT/ScripAction_Overlay.pm:105 +msgid "Input error" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3796 +msgid "Internal Error" +msgstr "" + +#: lib/RT/Record.pm:143 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:644 +msgid "Invalid Group Type" +msgstr "" + +#: lib/RT/Principal_Overlay.pm:128 +msgid "Invalid Right" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "" + +#: lib/RT/Interface/Web.pm:899 +msgid "Invalid data" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:439 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +msgid "Invalid right" +msgstr "" + +#: lib/RT/Record.pm:118 +#. ($key) +msgid "Invalid value for %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3434 +msgid "Invalid value for custom field" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:346 +msgid "Invalid value for status" +msgstr "" + +#: bin/rt-crontool:191 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "" + +#: bin/rt-crontool:192 +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:163 +msgid "It takes several arguments:" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "ינו×ר" + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "ינו×ר" + +#: lib/RT/Group_Overlay.pm:149 +msgid "Join or leave this group" +msgstr "" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "יולי" + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "יולי" + +#: html/Ticket/Elements/Tabs:99 +msgid "Jumbo" +msgstr "×’'מבו" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "יוני" + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "יוני" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "" + +#: html/Admin/Elements/ModifyUser:52 +msgid "Lang" +msgstr "" + +#: html/Ticket/Elements/Tabs:73 +msgid "Last" +msgstr "" + +#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +msgid "Last Contact" +msgstr "מגע ×חרון" + +#: html/Elements/SelectDateType:29 +msgid "Last Contacted" +msgstr "קשר ×חרון" + +#: html/Search/Elements/TicketHeader:41 +msgid "Last Notified" +msgstr "נודע ל×חרונה" + +#: html/Elements/SelectDateType:30 +msgid "Last Updated" +msgstr "עדכון ×חרון" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "נותרה" + +#: html/Admin/Users/Modify.html:83 +msgid "Let this user access RT" +msgstr "תן למשתמש ×–×” לגשת ל R" + +#: html/Admin/Users/Modify.html:87 +msgid "Let this user be granted rights" +msgstr "תן ×פשרות להעניק זכויות למשתמש ×–×”" + +#: NOT FOUND IN SOURCE +msgid "Limiting owner to %1 %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Limiting queue to %1 %2" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2704 +msgid "Link already exists" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2716 +msgid "Link could not be created" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2724 lib/RT/Ticket_Overlay.pm:2734 +#. ($TransString) +msgid "Link created (%1)" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2645 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2651 +msgid "Link not found" +msgstr "" + +#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "" + +#: html/Ticket/Elements/Tabs:97 +msgid "Links" +msgstr "קישורי×" + +#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +msgid "Location" +msgstr "מיקו×" + +#: lib/RT.pm:159 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "" + +#: html/Elements/Header:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "מחובר ×› %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +msgid "Login" +msgstr "כניסה" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "יצי××”" + +#: html/Search/Bulk.html:86 +msgid "Make Owner" +msgstr "שנה בעלות ל" + +#: html/Search/Bulk.html:102 +msgid "Make Status" +msgstr "שנה סטטוס" + +#: html/Search/Bulk.html:109 +msgid "Make date Due" +msgstr "שנה ת×ריך יעד" + +#: html/Search/Bulk.html:110 +msgid "Make date Resolved" +msgstr "שנה ת×ריך פתרון" + +#: html/Search/Bulk.html:107 +msgid "Make date Started" +msgstr "שנה ת×ריך 'הותחל'" + +#: html/Search/Bulk.html:106 +msgid "Make date Starts" +msgstr "שנה ת×ריך התחלה" + +#: html/Search/Bulk.html:108 +msgid "Make date Told" +msgstr "שנע ת×ריך מגע ×חרון" + +#: html/Search/Bulk.html:99 +msgid "Make priority" +msgstr "שנה עדיפות" + +#: html/Search/Bulk.html:100 +msgid "Make queue" +msgstr "שנה תור" + +#: html/Search/Bulk.html:98 +msgid "Make subject" +msgstr "שנה נוש×" + +#: html/Admin/index.html:33 +msgid "Manage groups and group membership" +msgstr "נהל קבוצות וחברות בקבוצות" + +#: html/Admin/index.html:39 +msgid "Manage properties and configuration which apply to all queues" +msgstr "נהל מ××¤×™×™× ×™× ×•×”×’×“×¨×•×ª ×©×ª×§×¤×™× ×œ×›×œ התורות" + +#: html/Admin/index.html:36 +msgid "Manage queues and queue-specific properties" +msgstr "נהל תורות ומ××¤×™×™× ×™× ×¡×¤×¦×™×¤×™×™× ×œ×ª×•×¨×•×ª" + +#: html/Admin/index.html:30 +msgid "Manage users and passwords" +msgstr "נהל ×ž×©×ª×ž×©×™× ×•×¡×¤×¨×™×•×ª" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "מרץ" + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "מרץ" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "מ××™" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "מ××™" + +#: lib/RT/Group_Overlay.pm:982 +msgid "Member added" +msgstr "חבר הוסף" + +#: lib/RT/Group_Overlay.pm:1140 +msgid "Member deleted" +msgstr "חבר נמחק" + +#: lib/RT/Group_Overlay.pm:1144 +msgid "Member not deleted" +msgstr "חבר ×œ× × ×ž×—×§" + +#: html/Elements/SelectLinkType:26 +msgid "Member of" +msgstr "חבר ב" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "" + +#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +msgid "Members" +msgstr "חברי×" + +#: lib/RT/Ticket_Overlay.pm:2891 +msgid "Merge Successful" +msgstr "מיזוג הצליח" + +#: lib/RT/Ticket_Overlay.pm:2811 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "מיזוג נכשל. ×œ× ×™×›×•×œ×ª×™ להגדיר מזהה ×פקטיבי" + +#: html/Ticket/Elements/EditLinks:115 +msgid "Merge into" +msgstr "מזג לתוך" + +#: html/Ticket/Update.html:102 +msgid "Message" +msgstr "הודעה" + +#: lib/RT/Interface/Web.pm:901 +msgid "Missing a primary key?: %1" +msgstr "חסר מפתח ר×שי?: %1" + +#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +msgid "Mobile" +msgstr "נייד" + +#: html/Admin/Elements/ModifyUser:72 +msgid "MobilePhone" +msgstr "טלפון נייד" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify Access Control List" +msgstr "שנה רשימת בקרת גישה" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "" + +#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +msgid "Modify Custom Fields which apply to all queues" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "Modify Scrip templates for this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 +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 "" + +#: html/Admin/Queues/CustomField.html:45 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:53 +msgid "Modify a CustomField which applies to all queues" +msgstr "" + +#: html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 +msgid "Modify a scrip which applies to all queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "" + +#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "" + +#: html/Ticket/ModifyDates.html:35 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "" + +#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +msgid "Modify global group rights" +msgstr "" + +#: html/Admin/Global/GroupRights.html:33 +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:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +msgid "Modify global user rights" +msgstr "" + +#: html/Admin/Global/UserRights.html:33 +msgid "Modify global user rights." +msgstr "" + +#: lib/RT/Group_Overlay.pm:146 +msgid "Modify group metadata or delete group" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#. ($GroupObj->Name) +msgid "Modify group rights for group %1" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Modify membership roster for this group" +msgstr "" + +#: lib/RT/System.pm:61 +msgid "Modify one's own RT account" +msgstr "" + +#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "" + +#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#. ($Ticket->id) +#. ($Ticket->Id) +msgid "Modify people related to ticket #%1" +msgstr "" + +#: html/Admin/Queues/Scrips.html:44 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "" + +#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +msgid "Modify scrips which apply to all queues" +msgstr "" + +#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#. (loc($TemplateObj->Name())) +#. ($TemplateObj->id) +msgid "Modify template %1" +msgstr "" + +#: html/Admin/Global/Templates.html:44 +msgid "Modify templates which apply to all queues" +msgstr "" + +#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Modify the queue watchers" +msgstr "" + +#: html/Admin/Users/Modify.html:236 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "" + +#: html/Ticket/ModifyAll.html:37 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "שנה פנייה מספר %1" + +#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "שינוי פנוייה מספר %1" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Modify tickets" +msgstr "שינוי פניות" + +#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#. ($GroupObj->Name) +msgid "Modify user rights for group %1" +msgstr "" + +#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyACL" +msgstr "" + +#: lib/RT/Group_Overlay.pm:149 +msgid "ModifyOwnMembership" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "ModifyQueueWatchers" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "ModifyScrips" +msgstr "" + +#: lib/RT/System.pm:61 +msgid "ModifySelf" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "ModifyTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "ModifyTicket" +msgstr "" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "שני" + +#: html/Ticket/Elements/ShowRequestor:42 +#. ($name) +msgid "More about %1" +msgstr "עוד לגבי %1" + +#: html/Admin/Elements/EditCustomFields:61 +msgid "Move down" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:53 +msgid "Move up" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:27 +msgid "Multiple" +msgstr "" + +#: lib/RT/User_Overlay.pm:179 +msgid "Must specify 'Name' attribute" +msgstr "" + +#: html/SelfService/Elements/MyRequests:49 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "×”××™×©×•×¨×™× ×©×œ×™" + +#: html/Approvals/index.html:25 html/Approvals/index.html:26 +msgid "My approvals" +msgstr "×”××™×©×•×¨×™× ×©×œ×™" + +#: html/Admin/Elements/AddCustomFieldValue:33 html/Admin/Elements/EditCustomField:34 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +msgid "Name" +msgstr "ש×" + +#: lib/RT/User_Overlay.pm:186 +msgid "Name in use" +msgstr "×©× ×‘×©×™×ž×•×©" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "" + +#: html/Ticket/Elements/ShowDates:52 +msgid "Never" +msgstr "" + +#: html/Elements/Quicksearch:30 +msgid "New" +msgstr "חדש" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +msgid "New Password" +msgstr "×¡×™×¡×ž× ×—×“×©×”" + +#: etc/initialdata:317 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "" + +#: html/Ticket/Elements/EditLinks:111 +msgid "New Relationships" +msgstr "×™×—×¡×™× ×—×“×©×™×" + +#: html/Ticket/Elements/Tabs:36 +msgid "New Search" +msgstr "חיפוש חדש" + +#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +msgid "New custom field" +msgstr "" + +#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +msgid "New group" +msgstr "קבוצה חדשה" + +#: html/SelfService/Prefs.html:32 +msgid "New password" +msgstr "×¡×™×¡×ž× ×—×“×©×”" + +#: lib/RT/User_Overlay.pm:647 +msgid "New password notification sent" +msgstr "" + +#: html/Admin/Elements/QueueTabs:70 +msgid "New queue" +msgstr "תור חדש" + +#: NOT FOUND IN SOURCE +msgid "New request" +msgstr "בקשה חדשה" + +#: html/Admin/Elements/SelectRights:42 +msgid "New rights" +msgstr "זכויות חדשות" + +#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +msgid "New scrip" +msgstr "סקריפ חדש" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "חיפוש חדש" + +#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:50 +msgid "New template" +msgstr "תבנית חדשה" + +#: html/SelfService/Elements/Tabs:48 +msgid "New ticket" +msgstr "פנייה חדשה" + +#: lib/RT/Ticket_Overlay.pm:2778 +msgid "New ticket doesn't exist" +msgstr "פנייה חדשה ×œ× ×§×™×™×ž×ª" + +#: html/Admin/Elements/UserTabs:52 +msgid "New user" +msgstr "משתמש חדש" + +#: html/Admin/Elements/CreateUserCalled:26 +msgid "New user called" +msgstr "משתמש חדש שנקר×" + +#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +msgid "New watchers" +msgstr "×¦×•×¤×™× ×—×“×©×™×" + +#: html/Admin/Users/Prefs.html:42 +msgid "New window setting" +msgstr "" + +#: html/Ticket/Elements/Tabs:69 +msgid "Next" +msgstr "הב×" + +#: html/Search/Listing.html:48 +msgid "Next page" +msgstr "דף הב×" + +#: html/Admin/Elements/ModifyUser:50 +msgid "NickName" +msgstr "כינוי" + +#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +msgid "Nickname" +msgstr "כינוי" + +#: html/Admin/Elements/EditCustomField:90 html/Admin/Elements/EditCustomFields:105 +msgid "No CustomField" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +msgid "No Group defined" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +msgid "No Queue defined" +msgstr "" + +#: bin/rt-crontool:56 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "" + +#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +msgid "No Template" +msgstr "" + +#: bin/rt-commit-handler:764 +msgid "No Ticket specified. Aborting ticket " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "" + +#: html/Approvals/Elements/Approve:46 +msgid "No action" +msgstr "" + +#: lib/RT/Interface/Web.pm:896 +msgid "No column specified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "" + +#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +msgid "No comment entered about this user" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +msgid "No correspondence attached" +msgstr "" + +#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#. (ref $self) +msgid "No description for %1" +msgstr "" + +#: lib/RT/Users_Overlay.pm:145 +msgid "No group specified" +msgstr "" + +#: lib/RT/User_Overlay.pm:865 +msgid "No password set" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:259 +msgid "No permission to create queues" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:342 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "" + +#: lib/RT/User_Overlay.pm:152 +msgid "No permission to create users" +msgstr "" + +#: html/SelfService/Display.html:118 +msgid "No permission to display that ticket" +msgstr "" + +#: html/SelfService/Update.html:52 +msgid "No permission to view update ticket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +msgid "No principal specified" +msgstr "" + +#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +msgid "No principals selected." +msgstr "" + +#: html/Admin/Queues/index.html:35 +msgid "No queues matching search criteria found." +msgstr "" + +#: html/Admin/Elements/SelectRights:81 +msgid "No rights found" +msgstr "" + +#: html/Admin/Elements/SelectRights:33 +msgid "No rights granted." +msgstr "" + +#: html/Search/Bulk.html:149 +msgid "No search to operate on." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +msgid "No transaction type specified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No user or email address specified" +msgstr "" + +#: html/Admin/Users/index.html:36 +msgid "No users matching search criteria found." +msgstr "" + +#: bin/rt-commit-handler:644 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "" + +#: lib/RT/Interface/Web.pm:893 +msgid "No value sent to _Set!\\n" +msgstr "" + +#: html/Search/Elements/TicketRow:37 +msgid "Nobody" +msgstr "××£ ×חד" + +#: lib/RT/Interface/Web.pm:898 +msgid "Nonexistant field?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Not logged in" +msgstr "×œ× ×‘×ª×•×š המערכת" + +#: html/Elements/Header:59 +msgid "Not logged in." +msgstr "×œ× ×‘×ª×•×š המערכת." + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "×œ× ×”×•×–×Ÿ" + +#: html/NoAuth/Reminder.html:27 +msgid "Not yet implemented." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Not yet implemented...." +msgstr "" + +#: html/Approvals/Elements/Approve:49 +msgid "Notes" +msgstr "" + +#: lib/RT/User_Overlay.pm:650 +msgid "Notification could not be sent" +msgstr "" + +#: etc/initialdata:94 +msgid "Notify AdminCcs" +msgstr "" + +#: etc/initialdata:90 +msgid "Notify AdminCcs as Comment" +msgstr "" + +#: etc/initialdata:121 +msgid "Notify Other Recipients" +msgstr "" + +#: etc/initialdata:117 +msgid "Notify Other Recipients as Comment" +msgstr "" + +#: etc/initialdata:86 +msgid "Notify Owner" +msgstr "" + +#: etc/initialdata:82 +msgid "Notify Owner as Comment" +msgstr "" + +#: etc/initialdata:319 etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "" + +#: etc/initialdata:78 +msgid "Notify Requestors" +msgstr "" + +#: etc/initialdata:104 +msgid "Notify Requestors and Ccs" +msgstr "" + +#: etc/initialdata:99 +msgid "Notify Requestors and Ccs as Comment" +msgstr "" + +#: etc/initialdata:113 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "" + +#: etc/initialdata:109 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "נובמבר" + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "נובמבר" + +#: lib/RT/Record.pm:157 +msgid "Object could not be created" +msgstr "" + +#: lib/RT/Record.pm:176 +msgid "Object created" +msgstr "" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "×וקטובר" + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "×וקטובר" + +#: html/Elements/SelectDateRelation:35 +msgid "On" +msgstr "ב" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:50 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "הצג רק ××™×©×•×¨×™× ×¢×‘×•×¨ בקשות שנוצרו ×חרי %1" + +#: html/Approvals/Elements/PendingMyApproval:48 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "הצג רק ××™×©×•×¨×™× ×¢×‘×•×¨ בקשות שנוצרו לפני %1" + +#: html/Elements/Quicksearch:31 +msgid "Open" +msgstr "פתוח" + +#: html/Ticket/Elements/Tabs:136 +msgid "Open it" +msgstr "פתח" + +#: NOT FOUND IN SOURCE +msgid "Open requests" +msgstr "" + +#: html/SelfService/Elements/Tabs:42 +msgid "Open tickets" +msgstr "" + +#: html/Admin/Users/Prefs.html:41 +msgid "Open tickets (from listing) in a new window" +msgstr "" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in another window" +msgstr "" + +#: etc/initialdata:133 +msgid "Open tickets on correspondence" +msgstr "" + +#: html/Search/Elements/PickRestriction:101 +msgid "Ordering and sorting" +msgstr "סידור ומיון" + +#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +msgid "Organization" +msgstr "×רגון" + +#: html/Approvals/Elements/Approve:33 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +msgid "Over time, priority moves toward" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Own tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "OwnTicket" +msgstr "" + +#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "בעלי×" + +#: lib/RT/Ticket_Overlay.pm:3071 +#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +msgid "Owner changed from %1 to %2" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:582 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "" + +#: html/Search/Elements/PickRestriction:31 +msgid "Owner is" +msgstr "הבעלי×" + +#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +msgid "Pager" +msgstr "ביפר" + +#: html/Admin/Elements/ModifyUser:74 +msgid "PagerPhone" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Parent" +msgstr "" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:47 +msgid "Parents" +msgstr "הורי×" + +#: html/Elements/Login:52 html/User/Prefs.html:61 +msgid "Password" +msgstr "סיסמ×" + +#: html/NoAuth/Reminder.html:25 +msgid "Password Reminder" +msgstr "מזכיר סיסמ×" + +#: lib/RT/User_Overlay.pm:169 lib/RT/User_Overlay.pm:868 +msgid "Password too short" +msgstr "×¡×™×¡×ž× ×§×¦×¨×” מדי" + +#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "סיסמ×: %1" + +#: html/Admin/Users/Modify.html:293 +msgid "Passwords do not match." +msgstr "הסיסמ×ות ×ינן תו×מות" + +#: html/User/Prefs.html:174 +msgid "Passwords do not match. Your password has not been changed" +msgstr "" + +#: html/Ticket/Elements/ShowSummary:45 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +msgid "People" +msgstr "×נשי×" + +#: etc/initialdata:126 +msgid "Perform a user-defined action" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:101 lib/RT/CustomField_Overlay.pm:202 lib/RT/CustomField_Overlay.pm:234 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:91 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2603 lib/RT/Ticket_Overlay.pm:2675 lib/RT/Ticket_Overlay.pm:2769 lib/RT/Ticket_Overlay.pm:2784 lib/RT/Ticket_Overlay.pm:2978 lib/RT/Ticket_Overlay.pm:3206 lib/RT/Ticket_Overlay.pm:3404 lib/RT/Ticket_Overlay.pm:3566 lib/RT/Ticket_Overlay.pm:3618 lib/RT/Ticket_Overlay.pm:3783 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1355 lib/RT/User_Overlay.pm:570 lib/RT/User_Overlay.pm:605 lib/RT/User_Overlay.pm:861 lib/RT/User_Overlay.pm:962 +msgid "Permission Denied" +msgstr "" + +#: html/User/Elements/Tabs:35 +msgid "Personal Groups" +msgstr "קבוצות ×ישיות" + +#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +msgid "Personal groups" +msgstr "קבוצות ×ישיות" + +#: html/User/Elements/DelegateRights:37 +msgid "Personal groups:" +msgstr "קבוצות ×ישיות" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +msgid "Phone numbers" +msgstr "מספרי טלפון" + +#: NOT FOUND IN SOURCE +msgid "Placeholder" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Pref" +msgstr "" + +#: html/Elements/Header:52 html/Elements/Tabs:53 html/SelfService/Elements/Tabs:51 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +msgid "Preferences" +msgstr "מ×פייני×" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "" + +#: lib/RT/Action/Generic.pm:160 +msgid "Prepare Stubbed" +msgstr "" + +#: html/Ticket/Elements/Tabs:61 +msgid "Prev" +msgstr "הקוד×" + +#: html/Search/Listing.html:44 +msgid "Previous page" +msgstr "דף קוד×" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "" + +#: html/Search/Elements/PickRestriction:54 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "עדיפות" + +#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +msgid "Priority starts at" +msgstr "" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "" + +#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "" + +#: html/Admin/Users/index.html:62 +msgid "Privileged users" +msgstr "" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:33 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "תור" + +#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:44 +#. ($Queue) +#. ($id) +msgid "Queue %1 not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Queue '%1' not found\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Queue Keyword Selections" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +msgid "Queue Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:263 +msgid "Queue already exists" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +msgid "Queue could not be created" +msgstr "" + +#: html/Ticket/Create.html:205 +msgid "Queue could not be loaded." +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +msgid "Queue created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "" + +#: html/SelfService/Display.html:71 lib/RT/CustomField_Overlay.pm:98 +msgid "Queue not found" +msgstr "" + +#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +msgid "Queues" +msgstr "תורי×" + +#: html/Elements/Quicksearch:25 +msgid "Quick search" +msgstr "חיפוש מהיר" + +#: html/Elements/Login:44 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" +msgstr "" + +#: html/Admin/index.html:25 html/Admin/index.html:26 +msgid "RT Administration" +msgstr "ניהול RT" + +#: NOT FOUND IN SOURCE +msgid "RT Authentication error." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Bounce: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Configuration error" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Critical error. Message not recorded!" +msgstr "" + +#: html/Elements/Error:41 html/SelfService/Error.html:41 +msgid "RT Error" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Recieved mail (%1) from itself." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Self Service / Closed Tickets" +msgstr "" + +#: html/index.html:25 html/index.html:28 +msgid "RT at a glance" +msgstr "RT ממבט כולל" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't authenticate you" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find requestor via its external database lookup" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find the queue: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "" + +#: html/Elements/PageLayout:26 +#. ($RT::rtname) +msgid "RT for %1" +msgstr "RT / %1" + +#: NOT FOUND IN SOURCE +msgid "RT for %1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT has proccessed your commands" +msgstr "" + +#: html/Elements/Login:92 +#. ('2003') +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 "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +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 "" + +#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +msgid "Real Name" +msgstr "×©× ×מיתי" + +#: html/Admin/Elements/ModifyUser:48 +msgid "RealName" +msgstr "×©× ×מיתי" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:71 +msgid "Referred to by" +msgstr "×ž×ª×™×™×—×¡×™× ×ליו" + +#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:61 +msgid "Refers to" +msgstr "מתייחס ל" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "" + +#: html/Search/Elements/PickRestriction:27 +msgid "Refine search" +msgstr "חדד ×ת החיפוש" + +#: html/Elements/Refresh:36 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "רענן דף ×–×” כל %1 דקות." + +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:62 html/Ticket/ModifyAll.html:57 +msgid "Relationships" +msgstr "×™×—×¡×™× ×¢× ×¤× ×™×•×ª ×חרות" + +#: html/Search/Bulk.html:93 +msgid "Remove AdminCc" +msgstr "הסר העתק ניהולי" + +#: html/Search/Bulk.html:91 +msgid "Remove Cc" +msgstr "הסר העתק" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "הסר מבקש" + +#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +msgid "Reply" +msgstr "הגב" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Reply to tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "ReplyToTicket" +msgstr "מענה לפנייה" + +#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +msgid "Requestor" +msgstr "מבקש" + +#: html/Search/Elements/PickRestriction:38 +msgid "Requestor email address" +msgstr "כתובת ×”××™-מייל של המבקש" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "מבקש(×™×)" + +#: NOT FOUND IN SOURCE +msgid "RequestorAddresses" +msgstr "כתובת הפונה" + +#: html/SelfService/Create.html:41 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +msgid "Requestors" +msgstr "מבקשי×" + +#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +msgid "Requests should be due in" +msgstr "" + +#: html/Elements/Submit:62 +msgid "Reset" +msgstr "×פס נתוני×" + +#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +msgid "Residence" +msgstr "בית" + +#: html/Ticket/Elements/Tabs:132 +msgid "Resolve" +msgstr "פתור" + +#: html/Ticket/Update.html:133 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "פתור פנייה #%1 (%2)" + +#: etc/initialdata:308 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +msgid "Resolved" +msgstr "נפתר" + +#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +msgid "Response to requestors" +msgstr "תגובה למבקשי×" + +#: html/Elements/ListActions:26 +msgid "Results" +msgstr "תוצ×ות" + +#: html/Search/Elements/PickRestriction:105 +msgid "Results per page" +msgstr "תוצ×ות לעמוד" + +#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +msgid "Retype Password" +msgstr "הקלד שנית:" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:613 +msgid "Right Delegated" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:303 +msgid "Right Granted" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:161 +msgid "Right Loaded" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +msgid "Right could not be revoked" +msgstr "" + +#: html/User/Delegation.html:64 +msgid "Right not found" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +msgid "Right not loaded." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:689 +msgid "Right revoked" +msgstr "" + +#: html/Admin/Elements/UserTabs:41 +msgid "Rights" +msgstr "" + +#: lib/RT/Interface/Web.pm:792 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "" + +#: lib/RT/Interface/Web.pm:825 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "" + +#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "שבת" + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyLinks.html:39 html/Ticket/ModifyPeople.html:38 +msgid "Save Changes" +msgstr "שמור שינויי×" + +#: NOT FOUND IN SOURCE +msgid "Save changes" +msgstr "שמור שינויי×" + +#: html/Admin/Global/Scrip.html:49 +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:176 +msgid "Scrip Created" +msgstr "" + +#: html/Admin/Elements/EditScrips:84 +msgid "Scrip deleted" +msgstr "" + +#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +msgid "Scrips" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "" + +#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +msgid "Search" +msgstr "חיפוש" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:39 +msgid "Search for approvals" +msgstr "" + +#: bin/rt-crontool:188 +msgid "Security:" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "SeeQueue" +msgstr "" + +#: html/Admin/Groups/index.html:40 +msgid "Select a group" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "" + +#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +msgid "Select a user" +msgstr "" + +#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +msgid "Select custom field" +msgstr "" + +#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +msgid "Select group" +msgstr "בחר קבוצה" + +#: lib/RT/CustomField_Overlay.pm:422 +msgid "Select multiple values" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:419 +msgid "Select one value" +msgstr "" + +#: html/Admin/Elements/QueueTabs:67 +msgid "Select queue" +msgstr "" + +#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +msgid "Select scrip" +msgstr "" + +#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 html/Admin/Queues/Templates.html:47 +msgid "Select template" +msgstr "" + +#: html/Admin/Elements/UserTabs:49 +msgid "Select user" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "SelectMultiple" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectSingle" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Self Service" +msgstr "" + +#: etc/initialdata:114 +msgid "Send mail to all watchers" +msgstr "" + +#: etc/initialdata:110 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "" + +#: etc/initialdata:105 +msgid "Send mail to requestors and Ccs" +msgstr "" + +#: etc/initialdata:100 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "" + +#: etc/initialdata:79 +msgid "Sends a message to the requestors" +msgstr "" + +#: etc/initialdata:118 etc/initialdata:122 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "" + +#: etc/initialdata:95 +msgid "Sends mail to the administrative Ccs" +msgstr "" + +#: etc/initialdata:91 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "" + +#: etc/initialdata:83 etc/initialdata:87 +msgid "Sends mail to the owner" +msgstr "" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "ספטמבר" + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "ספטמבר" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show approved requests" +msgstr "הצג בקשות ש×ושרו" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show basics" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show denied requests" +msgstr "הצג בקשות שנדחו" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show details" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show pending requests" +msgstr "הצג בקשות ממתינות" + +#: html/Approvals/Elements/PendingMyApproval:46 +msgid "Show requests awaiting other approvals" +msgstr "הצג בקשות שממתינות ל××™×©×•×¨×™× ×חרי×" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Show ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "Show ticket summaries" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ShowACL" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowScrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ShowTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "ShowTicket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "ShowTicketComments" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "" + +#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/User/Prefs.html:112 +msgid "Signature" +msgstr "חתימה" + +#: NOT FOUND IN SOURCE +msgid "Signed in as %1" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Single" +msgstr "" + +#: html/Elements/Header:51 +msgid "Skip Menu" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:29 +msgid "Sort" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Sort key" +msgstr "" + +#: html/Search/Elements/PickRestriction:109 +msgid "Sort results by" +msgstr "סדר תוצ×ות על פי" + +#: NOT FOUND IN SOURCE +msgid "SortOrder" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "מושהה" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "" + +#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +msgid "Started" +msgstr "התחיל" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +msgid "Starts" +msgstr "מתחיל ב" + +#: NOT FOUND IN SOURCE +msgid "Starts By" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Starts date '%1' could not be parsed" +msgstr "" + +#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +msgid "State" +msgstr "מדינה" + +#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "מצב" + +#: etc/initialdata:294 +msgid "Status Change" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:528 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "" + +#: html/Ticket/Elements/Tabs:147 +msgid "Steal" +msgstr "גנוב" + +#: lib/RT/Transaction_Overlay.pm:587 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "נגנב מ %1" + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:57 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:32 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "נוש×" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "× ×•×©× ×©×•× ×” ל %1" + +#: html/Elements/Submit:59 +msgid "Submit" +msgstr "שלח" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "" + +#: lib/RT/Group_Overlay.pm:749 +msgid "Succeeded" +msgstr "הצליח" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "ר×שון" + +#: lib/RT/System.pm:54 +msgid "SuperUser" +msgstr "סופר-משתמש" + +#: html/User/Elements/DelegateRights:77 +msgid "System" +msgstr "מערכת" + +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:791 lib/RT/Interface/Web.pm:824 +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/ACE_Overlay.pm:616 +msgid "System error. Right not delegated." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +msgid "System error. Right not granted." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "" + +#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +msgid "System groups" +msgstr "" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "" + +#: lib/RT/CurrentUser.pm:318 +msgid "TEST_STRING" +msgstr "" + +#: html/Ticket/Elements/Tabs:143 +msgid "Take" +msgstr "×§×—" + +#: lib/RT/Transaction_Overlay.pm:573 +msgid "Taken" +msgstr "נלקחה" + +#: html/Admin/Elements/EditScrip:81 +msgid "Template" +msgstr "" + +#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "" + +#: html/Admin/Elements/EditTemplates:89 +msgid "Template deleted" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:153 +msgid "Template not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "" + +#: lib/RT/Template_Overlay.pm:347 +msgid "Template parsed" +msgstr "" + +#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +msgid "Templates" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "" + +#: lib/RT/Interface/Web.pm:892 +msgid "That is already the current value" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:243 +msgid "That is not a value for this custom field" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1886 +msgid "That is the same value" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +msgid "That principal already has that right" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1434 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1551 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1882 +msgid "That queue does not exist" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3210 +msgid "That ticket has unresolved dependencies" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "That user already has that right" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3020 +msgid "That user already owns that ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2986 +msgid "That user does not exist" +msgstr "" + +#: lib/RT/User_Overlay.pm:315 +msgid "That user is already privileged" +msgstr "" + +#: lib/RT/User_Overlay.pm:336 +msgid "That user is already unprivileged" +msgstr "" + +#: lib/RT/User_Overlay.pm:328 +msgid "That user is now privileged" +msgstr "" + +#: lib/RT/User_Overlay.pm:349 +msgid "That user is now unprivileged" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3012 +msgid "That user may not own tickets in that queue" +msgstr "" + +#: lib/RT/Link_Overlay.pm:206 +msgid "That's not a numerical id" +msgstr "" + +#: html/SelfService/Display.html:32 html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +msgid "The Basics" +msgstr "מידע בסיסי" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The CC of a ticket" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:89 +msgid "The administrative CC of a ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2213 +msgid "The comment has been recorded" +msgstr "" + +#: bin/rt-crontool:198 +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 "" + +#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "" + +#: lib/RT/Interface/Web.pm:895 +msgid "The new value has been set." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The owner of a ticket" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The requestor of a ticket" +msgstr "" + +#: html/Admin/Elements/EditUserComments:26 +msgid "These comments aren't generally visible to the user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "" + +#: bin/rt-crontool:189 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:251 +msgid "This transaction appears to have no content" +msgstr "" + +#: html/Ticket/Elements/ShowRequestor:47 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "" + +#: lib/RT/Date.pm:391 +msgid "Thu." +msgstr "חמישי" + +#: NOT FOUND IN SOURCE +msgid "Ticket" +msgstr "פנייה" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 Jumbo update: %2" +msgstr "פנייה מספר %1 עדכון ×’'מבו: %2" + +#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "פנייה מספר %1 עדכון ×’'מבו: %2" + +#: html/Approvals/Elements/ShowDependency:46 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:587 lib/RT/Ticket_Overlay.pm:608 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "" + +#: bin/rt-commit-handler:760 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "" + +#: html/Search/Bulk.html:181 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "" + +#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket Id" +msgstr "" + +#: etc/initialdata:309 +msgid "Ticket Resolved" +msgstr "" + +#: html/Search/Elements/PickRestriction:63 +msgid "Ticket attachment" +msgstr "מצורף לפנייה" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:496 lib/RT/Ticket_Overlay.pm:597 +msgid "Ticket could not be created due to an internal error" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:520 +msgid "Ticket created" +msgstr "פנייה נוצרה" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Ticket deleted" +msgstr "פנייה נמחקה" + +#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +msgid "Ticket id not found" +msgstr "מזהה פנייה ×œ× × ×ž×¦×" + +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "פנייה נמחקה" + +#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +msgid "Ticket not found" +msgstr "פנייה ×œ× × ×ž×¦××”" + +#: etc/initialdata:295 +msgid "Ticket status changed" +msgstr "סטטוס פנייה שונה" + +#: html/Ticket/Update.html:39 +msgid "Ticket watchers" +msgstr "צופי הפנייה" + +#: html/Elements/Tabs:47 +msgid "Tickets" +msgstr "פניות" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Tickets from %1" +msgstr "" + +#: html/Approvals/Elements/ShowDependency:27 +msgid "Tickets which depend on this approval:" +msgstr "" + +#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +msgid "Time Left" +msgstr "זמן נותר" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +msgid "Time Worked" +msgstr "זמן עבודה" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "זמן נותר" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "זמן להציג" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "זמן עבודה" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1165 +msgid "TimeWorked" +msgstr "" + +#: bin/rt-commit-handler:402 +msgid "To generate a diff of this commit:" +msgstr "" + +#: bin/rt-commit-handler:391 +msgid "To generate a diff of this commit:\\n" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1168 +msgid "Told" +msgstr "" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:640 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:89 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:699 +msgid "Transactions are immutable" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "שלישי" + +#: html/Admin/Elements/EditCustomField:44 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "סוג" + +#: lib/RT/ScripCondition_Overlay.pm:104 +msgid "Unimplemented" +msgstr "×œ× ×ž×™×™×•×©×" + +#: html/Admin/Users/Modify.html:68 +msgid "Unix login" +msgstr "" + +#: html/Admin/Elements/ModifyUser:62 +msgid "UnixUsername" +msgstr "" + +#: lib/RT/Attachment_Overlay.pm:265 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "" + +#: html/Elements/SelectResultsPerPage:37 +msgid "Unlimited" +msgstr "×œ× ×ž×•×’×‘×œ" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:569 +msgid "Untaken" +msgstr "" + +#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +msgid "Update" +msgstr "עדכן" + +#: html/Admin/Users/Prefs.html:62 +msgid "Update ID" +msgstr "" + +#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +msgid "Update Type" +msgstr "סוג עדכון" + +#: html/Search/Listing.html:61 +msgid "Update all these tickets at once" +msgstr "עדכן ×ת כל הפניות לעיל בבת ×חת" + +#: html/Admin/Users/Prefs.html:49 +msgid "Update email" +msgstr "עדכן ××™-מייל" + +#: html/Admin/Users/Prefs.html:55 +msgid "Update name" +msgstr "עדכן ש×" + +#: lib/RT/Interface/Web.pm:409 +msgid "Update not recorded." +msgstr "" + +#: html/Search/Bulk.html:81 +msgid "Update selected tickets" +msgstr "עדכן פניות נבחרות" + +#: html/Admin/Users/Prefs.html:36 +msgid "Update signature" +msgstr "עדכן חתימה" + +#: html/Ticket/ModifyAll.html:63 +msgid "Update ticket" +msgstr "עדכן פנייה" + +#: NOT FOUND IN SOURCE +msgid "Update ticket # %1" +msgstr "" + +#: html/SelfService/Update.html:25 html/SelfService/Update.html:47 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "" + +#: html/Ticket/Update.html:135 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "" + +#: lib/RT/Interface/Web.pm:407 +msgid "Update type was neither correspondence nor comment." +msgstr "" + +#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +msgid "Updated" +msgstr "עודכן" + +#: NOT FOUND IN SOURCE +msgid "User %1 %2: %3\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User %1 Password: %2\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found\\n" +msgstr "" + +#: etc/initialdata:125 etc/initialdata:191 +msgid "User Defined" +msgstr "" + +#: html/Admin/Users/Prefs.html:59 +msgid "User ID" +msgstr "מזהה המשתמש" + +#: html/Elements/SelectUsers:26 +msgid "User Id" +msgstr "מזהה המשתמש" + +#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +msgid "User Rights" +msgstr "זכויות המשתמש" + +#: html/Admin/Users/Modify.html:226 +#. ($msg) +msgid "User could not be created: %1" +msgstr "" + +#: lib/RT/User_Overlay.pm:262 +msgid "User created" +msgstr "" + +#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "" + +#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +msgid "User view" +msgstr "" + +#: html/Admin/Users/Modify.html:48 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:35 +msgid "Username" +msgstr "×©× ×ž×©×ª×ž×©" + +#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +msgid "Users" +msgstr "משתמשי×" + +#: html/Admin/Users/index.html:65 +msgid "Users matching search criteria" +msgstr "" + +#: html/Search/Elements/PickRestriction:51 +msgid "ValueOfQueue" +msgstr "" + +#: html/Admin/Elements/EditCustomField:57 +msgid "Values" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "VrijevormEnkele" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Watch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "WatchAsAdminCc" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "" + +#: html/Admin/Elements/QueueTabs:42 +msgid "Watchers" +msgstr "" + +#: html/Admin/Elements/ModifyUser:56 +msgid "WebEncoding" +msgstr "" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "רביעי" + +#: etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "" + +#: etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "" + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "" + +#: etc/upgrade/2.1.71:79 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "בכל ×¤×¢× ×©×“×‘×¨ ×›×œ×©×”×•× ×§×•×¨×”" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "בכל ×¤×¢× ×©×¤× ×™×™×” נסגרת" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "בכל ×¤×¢× ×©×‘×¢×œ×™ הפנייה משתנה" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "בכל מצב שתור הפנייה משתנה" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "בכל ×¤×¢× ×©×ž×¦×‘ הפנייה משתנה" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "בכל ×¤×¢× ×©×ž×¦×‘ מוגדר על ידי משתמש קורה" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "בכל ×¤×¢× ×©×”×¢×¨×” מגיעה ב" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "בכל ×¤×¢× ×©×ª×›×ª×•×‘×ª מגיעה ב" + +#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +msgid "Work" +msgstr "עבודה" + +#: html/Admin/Elements/ModifyUser:70 +msgid "WorkPhone" +msgstr "טלפון בעבודה" + +#: html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +msgid "Worked" +msgstr "זמן טיפול" + +#: lib/RT/Ticket_Overlay.pm:3123 +msgid "You already own this ticket" +msgstr "×תה כבר ×”×‘×¢×œ×™× ×©×œ פנייה זו" + +#: html/autohandler:108 +msgid "You are not an authorized user" +msgstr "×ינך משתמש מורשה" + +#: lib/RT/Ticket_Overlay.pm:2998 +msgid "You can only reassign tickets that you own or 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 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "מצ×ת %1 פניות בתור %2" + +#: html/NoAuth/Logout.html:31 +msgid "You have been logged out of RT." +msgstr "התנתקת מהמערכת." + +#: html/SelfService/Display.html:78 +msgid "You have no permission to create tickets in that queue." +msgstr "×ין לך הרש×ות ליצור פניות בתור ×–×”." + +#: lib/RT/Ticket_Overlay.pm:1895 +msgid "You may not create requests in that queue." +msgstr "×ינך מורשה ליצור פניות בתור ×–×”." + +#: html/NoAuth/Logout.html:36 +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 "מנהל המערכת ×œ× ×”×’×“×™×¨ ×ת כתובות הדו×ר שמפעילות ×ת התוכנה כמו שצריך" + +#: etc/initialdata:435 etc/upgrade/2.1.71:146 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "בקשתך ×ושרה על ידי %1. ייתכן ש××™×©×•×¨×™× × ×•×¡×¤×™× ×¢×“×™×™×Ÿ ממתיני×." + +#: etc/initialdata:469 etc/upgrade/2.1.71:180 +msgid "Your request has been approved." +msgstr "בקשתך ×ושרה." + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "בקשתך נדחתה" + +#: etc/initialdata:390 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "בקשתך נדחתה." + +#: html/autohandler:127 +msgid "Your username or password is incorrect" +msgstr "×©× ×”×ž×©×ª×ž×© ו/×ו ×”×¡×™×¡×ž× ××™× × × ×›×•× ×™×" + +#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +msgid "Zip" +msgstr "מיקוד" + +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "[×œ×œ× × ×•×©×]" + +#: html/User/Elements/DelegateRights:59 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "שהוענק ל%1" + +#: html/SelfService/Closed.html:28 +msgid "closed" +msgstr "סגור" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +msgid "contains" +msgstr "מכיל" + +#: html/Elements/SelectAttachmentField:26 +msgid "content" +msgstr "תוכן" + +#: html/Elements/SelectAttachmentField:27 +msgid "content-type" +msgstr "סוג התוכן" + +#: lib/RT/Ticket_Overlay.pm:2282 +msgid "correspondence (probably) not sent" +msgstr "התכתבות (כנר××”) ×œ× × ×©×œ×—×”" + +#: lib/RT/Ticket_Overlay.pm:2292 +msgid "correspondence sent" +msgstr "התכתבות נשלחה" + +#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +msgid "days" +msgstr "ימי×" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "" + +#: html/Search/Listing.html:75 +msgid "delete" +msgstr "מחק" + +#: lib/RT/Queue_Overlay.pm:63 +msgid "deleted" +msgstr "מחוק" + +#: html/Search/Elements/PickRestriction:68 +msgid "does not match" +msgstr "×œ× ×ž×›×™×œ" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +msgid "doesn't contain" +msgstr "×œ× ×ž×›×™×œ" + +#: html/Elements/SelectEqualityOperator:38 +msgid "equal to" +msgstr "שווה ל" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "" + +#: html/Elements/SelectAttachmentField:28 +msgid "filename" +msgstr "×©× ×§×•×‘×¥" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "greater than" +msgstr "גדול מ" + +#: lib/RT/Group_Overlay.pm:194 +#. ($self->Name) +msgid "group '%1'" +msgstr "קבוצה %1" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "שעות" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "מזהה" + +#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "is" +msgstr "הו×" + +#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +msgid "isn't" +msgstr "×”×•× ×œ×" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "less than" +msgstr "פחות מ" + +#: html/Search/Elements/PickRestriction:67 +msgid "matches" +msgstr "מכיל" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "דקות" + +#: html/Ticket/Update.html:66 +msgid "minutes" +msgstr "דקות" + +#: bin/rt-commit-handler:765 +msgid "modifications\\n\\n" +msgstr "" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "חודשי×" + +#: lib/RT/Queue_Overlay.pm:58 +msgid "new" +msgstr "חדש" + +#: html/Admin/Elements/EditScrips:43 +msgid "no value" +msgstr "×ין ערך" + +#: html/Ticket/Elements/EditWatchers:28 +msgid "none" +msgstr "×ין" + +#: html/Elements/SelectEqualityOperator:38 +msgid "not equal to" +msgstr "×œ× ×©×•×•×” ל" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "" + +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:59 +msgid "open" +msgstr "פתוח" + +#: lib/RT/Group_Overlay.pm:199 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "" + +#: lib/RT/Group_Overlay.pm:207 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "rejected" +msgstr "נדחה" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "resolved" +msgstr "פתור" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "stalled" +msgstr "מושהה" + +#: lib/RT/Group_Overlay.pm:202 +#. ($self->Type) +msgid "system %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:213 +#. ($self->Type) +msgid "system group '%1'" +msgstr "" + +#: html/Elements/Error:42 html/SelfService/Error.html:42 +msgid "the calling component did not specify why" +msgstr "" + +#: lib/RT/Group_Overlay.pm:210 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "" + +#: lib/RT/Group_Overlay.pm:216 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:191 +#. ($user->Object->Name) +msgid "user %1" +msgstr "" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "" diff --git a/rt/lib/RT/I18N/i_default.pm b/rt/lib/RT/I18N/i_default.pm new file mode 100644 index 000000000..154702656 --- /dev/null +++ b/rt/lib/RT/I18N/i_default.pm @@ -0,0 +1,86 @@ +# 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. +# +# 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::I18N::i_default; + +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::I18N); + +eval "require RT::I18N::i_default_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/I18N/i_default_Vendor.pm}); +eval "require RT::I18N::i_default_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/I18N/i_default_Local.pm}); + +1; + +__END__ + +This class just zero-derives from the project base class, which +is English for this project. i-default is "English at least". It +wouldn't be a bad idea to make our i-default messages be English +plus, say, French -- i-default is meant to /contain/ English, not +be /just/ English. If you have all your English messages in +Whatever::en and all your French messages in Whatever::fr, it +would be straightforward to define Whatever::i_default's as a subclass +of Whatever::en, but for every case where a key gets you a string +(as opposed to a coderef) from %Whatever::en::Lexicon and +%Whatever::fr::Lexicon, you could make %Whatever::i_default::Lexicon +be the concatenation of them both. So: "file '[_1]' not found.\n" and +"fichier '[_1]' non trouve\n" could make for an +%Whatever::i_default::Lexicon entry of +"file '[_1]' not found\nfichier '[_1]' non trouve.\n". + +There may be entries, however, where that is undesirable. +And in any case, it's not feasable once you have an _AUTO lexicon +in the mix, as wo do here. + + + +RFC 2277 says: + +4.5. Default Language + + When human-readable text must be presented in a context where the + sender has no knowledge of the recipient's language preferences (such + as login failures or E-mailed warnings, or prior to language + negotiation), text SHOULD be presented in Default Language. + + Default Language is assigned the tag "i-default" according to the + procedures of RFC 1766. It is not a specific language, but rather + identifies the condition where the language preferences of the user + cannot be established. + + Messages in Default Language MUST be understandable by an English- + speaking person, since English is the language which, worldwide, the + greatest number of people will be able to get adequate help in + interpreting when working with computers. + + Note that negotiating English is NOT the same as Default Language; + Default Language is an emergency measure in otherwise unmanageable + situations. + + In many cases, using only English text is reasonable; in some cases, + the English text may be augumented by text in other languages. + + diff --git a/rt/lib/RT/I18N/ja.po b/rt/lib/RT/I18N/ja.po new file mode 100644 index 000000000..c0401f869 --- /dev/null +++ b/rt/lib/RT/I18N/ja.po @@ -0,0 +1,4822 @@ +# Japanese translation by Interactive Artists LLC +# 0.1 2002 08 15 +msgid "" +msgstr "" +"Project-Id-Version: RT 2.1.x\n" +"POT-Creation-Date: 2002-05-02 11:36+0800\n" +"PO-Revision-Date: 2002-05-13 02:00+0800\n" +"Last-Translator: Jesse Vincent <jesse@bestpractical.com>\n" +"Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +msgid "#" +msgstr "#" + +#: html/Admin/Queues/Scrip.html:55 +#. ($QueueObj->id) +msgid "#%1" +msgstr "" + +#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 +#. ($Ticket->Id, $Ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +msgid "%1 %2 %3" +msgstr "" + +#: 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:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%3ã«å¤‰æ›´ã•れãŸ%1 %2 " + +#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 of group %3" +msgstr "" + +#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 with template %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "%1 (%2) %3 ã“ã®ãƒã‚±ãƒƒãƒˆ\\n" + +#: html/Search/Listing.html:57 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "" + +#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "" + +#: bin/rt-crontool:185 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "" + +#: bin/rt-crontool:179 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "" + +#: bin/rt-crontool:173 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "" + +#: bin/rt-crontool:166 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "" + +#: lib/RT/ScripAction_Overlay.pm:122 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "%1スクリプトアクションロードã—ã¾ã—ãŸ" + +#: lib/RT/Ticket_Overlay.pm:3471 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "%2ã¨åŒã˜ãƒãƒªãƒ¥ãƒ¼ã®%1ãŒè¿½åŠ ã•れã¾ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on" +msgstr "%1aliasesã‚’å‹•ã‹ã™ãŸã‚ã«ãƒã‚±ãƒƒãƒˆIDãŒå¿…è¦ã§ã™" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on " +msgstr "%1aliasesã‚’å‹•ã‹ã™ãŸã‚ã«ãƒã‚±ãƒƒãƒˆIDãŒå¿…è¦ã§ã™ " + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on (from %2) %3" +msgstr "%1aliasesã‚’å‹•ã‹ã™ãŸã‚ã«ãƒã‚±ãƒƒãƒˆIDãŒå¿…è¦ã§ã™(%2ã‹ã‚‰) %3" + +#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#. ($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:52 lib/RT/Transaction_Overlay.pm:483 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%2ã«ã‚ˆã‚‹%1" + +#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#. ($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ã¯%2ã‹ã‚‰%3ã«å¤‰æ›´ã•れã¾ã—ãŸ" + +#: lib/RT/Interface/Web.pm:857 +msgid "%1 could not be set to %2." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "%1ã¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’ã¯ã˜ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ(%2)\\n" + +#: lib/RT/Ticket_Overlay.pm:2813 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1ã¯åˆ†è§£ã™ã‚‹ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚RTã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«ä¸€è²«æ€§ãŒãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚" + +#: html/Elements/MyTickets:25 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "" + +#: bin/rt-crontool:161 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "" + +#: lib/RT/Queue_Overlay.pm:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1ã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ã¯%2ã§ã¯ã‚りã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:1570 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1ã¯ã“ã®ãƒã‚±ãƒƒãƒˆã§ã¯%2ã§ã¯ã‚りã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:3527 +#. ($args{'Value'}, $cf->Name) +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ã¯æœ‰åйãªã‚­ãƒ¥ãƒ¼IDã§ã¯ã‚りã¾ã›ã‚“。" + +#: html/Ticket/Elements/ShowBasics:36 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1分" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "%1表示ã•れã¾ã›ã‚“" + +#: html/User/Elements/DelegateRights:76 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "%1 æˆåŠŸã—ã¾ã—ãŸ\\n" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "%1タイプã¯$MessageIdIDã§ã¯ä¸æ˜Žã§ã™" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "%1タイプã¯%2ã§ã¯ä¸æ˜Žã§ã™" + +#: NOT FOUND IN SOURCE +msgid "%1 was created without a CurrentUser\\n" +msgstr "" + +#: lib/RT/Action/ResolveMembers.pm:42 +#. (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/Transaction_Overlay.pm:435 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1:アタッãƒãƒ¡ãƒ³ãƒˆãŒç‰¹å®šã§ãã¾ã›ã‚“" + +#: html/Ticket/Elements/ShowTransaction:102 +#. ($size) +msgid "%1b" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:99 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1140 +#. ($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/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +msgid "(Check box to delete)" +msgstr "(削除ã®ãŸã‚ã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ï¼‰" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "" + +#: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(ãƒã‚±ãƒƒãƒˆIDã¾ãŸã¯URLsを空欄ã§åŒºåˆ‡ã£ã¦å…¥åŠ›ã—ã¦ãã ã•ã„)" + +#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#. ($RT::CorrespondAddress) +#. ($RT::CommentAddress) +msgid "(If left blank, will default to %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +msgid "(No custom fields)" +msgstr "" + +#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +msgid "(No members)" +msgstr "(メンãƒãƒ¼ãªã—)" + +#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +msgid "(No scrips)" +msgstr "(スクリプトãªã—)" + +#: html/Admin/Elements/EditTemplates:31 +msgid "(No templates)" +msgstr "" + +#: html/Ticket/Update.html:85 +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 "" + +#: 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 "(Eメールアドレスã«ãŠã‘るカンマã§åŒºåˆ‡ã‚‰ã‚ŒãŸãƒªã‚¹ãƒˆã¸ã®æ­£ç¢ºãªã‚¢ãƒƒãƒ—デートã®ãƒ–ラインドコピーをé€ã‚‹ã€‚今後ã®ã‚¢ãƒƒãƒ—デートを誰ãŒå—ä¿¡ã™ã‚‹ã‹ã¯<b>変更ã§ãã¾ã›ã‚“</b>)" + +#: html/Ticket/Create.html:79 +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 "" + +#: html/Ticket/Update.html:81 +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 "" + +#: 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 "(Eメールアドレスã«ãŠã‘るカンマã§åŒºåˆ‡ã‚‰ã‚ŒãŸãƒªã‚¹ãƒˆã¸ã®æ­£ç¢ºãªã‚¢ãƒƒãƒ—デートã®ã‚³ãƒ”ーをé€ã‚‹ã€‚今後ã®ã‚¢ãƒƒãƒ—デートを誰ãŒå—ä¿¡ã™ã‚‹ã‹ã¯<b>変更ã§ãã¾ã›ã‚“</b>)" + +#: html/Ticket/Create.html:69 +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 "" + +#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +msgid "(empty)" +msgstr "(空)" + +#: html/Admin/Users/index.html:39 +msgid "(no name listed)" +msgstr "" + +#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +msgid "(no subject)" +msgstr "(サブジェクトãªã—)" + +#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +msgid "(no value)" +msgstr "(ãƒãƒªãƒ¥ãƒ¼ãªã—)" + +#: html/Ticket/Elements/EditLinks:116 +msgid "(only one ticket)" +msgstr "(ã²ã¨ã¤ã®ãƒã‚±ãƒƒãƒˆã®ã¿ï¼‰" + +#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +msgid "(pending approval)" +msgstr "" + +#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +msgid "(pending other tickets)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(requestor's group)" +msgstr "" + +#: html/Admin/Users/Modify.html:50 +msgid "(required)" +msgstr "(必è¦ã§ã™ï¼‰" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "(untitled)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "ç§ãŒæ‰€æœ‰ã—ã¦ã„ã‚‹25ã®æœ€ã‚‚é‡è¦ãªå„ªå…ˆæ¨©" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "ç§ãŒãƒªã‚¯ã‚¨ã‚¹ãƒˆã—ãŸ25ã®æœ€ã‚‚é‡è¦ãªå„ªå…ˆæ¨©" + +#: html/Ticket/Elements/ShowBasics:32 +msgid "<% $Ticket->Status%>" +msgstr "" + +#: html/Elements/SelectTicketTypes:27 +msgid "<% $_ %>" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"æ–°ã—ã„ãƒã‚±ãƒƒãƒˆ\"> %1" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Loaded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be found" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +msgid "ACE not found" +msgstr "エースã¯ã¿ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: lib/RT/ACE_Overlay.pm:831 +msgid "ACEs can only be created and deleted." +msgstr "エースã¯ä½œæˆã€å‰Šé™¤ã®ã¿ã§ã™ã€‚" + +#: bin/rt-commit-handler:755 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "æ„図的ã§ãªã„ãƒã‚±ãƒƒãƒˆã®ä¿®æ­£ã‚’防ããŸã‚ã«å¼·åˆ¶çµ‚了ã—ã¾ã™ã€‚\\n" + +#: html/User/Elements/Tabs:32 +msgid "About me" +msgstr "" + +#: html/Admin/Users/Modify.html:80 +msgid "Access control" +msgstr "アクセスコントロール" + +#: html/Admin/Elements/EditScrip:57 +msgid "Action" +msgstr "アクション" + +#: lib/RT/Scrip_Overlay.pm:147 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "アクション%1ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: bin/rt-crontool:123 +msgid "Action committed." +msgstr "" + +#: bin/rt-crontool:119 +msgid "Action prepared..." +msgstr "" + +#: html/Search/Bulk.html:92 +msgid "Add AdminCc" +msgstr "管ç†Ccを追加ã™ã‚‹" + +#: html/Search/Bulk.html:90 +msgid "Add Cc" +msgstr "Ccを追加ã™ã‚‹" + +#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +msgid "Add More Files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Add Next State" +msgstr "" + +#: html/Search/Bulk.html:88 +msgid "Add Requestor" +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:55 +msgid "Add a scrip which will apply to all queues" +msgstr "ã™ã¹ã¦ã®ã‚­ãƒ¥ãƒ¼ã«é©å¿œã™ã‚‹ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹" + +#: html/Search/Bulk.html:118 +msgid "Add comments or replies to selected tickets" +msgstr "é¸æŠžã•れãŸãƒã‚±ãƒƒãƒˆã¸ã®ã‚³ãƒ¡ãƒ³ãƒˆã¾ãŸã¯è¿”事を追加ã™ã‚‹" + +#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +msgid "Add members" +msgstr "メンãƒãƒ¼ã‚’追加ã™ã‚‹" + +#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +msgid "Add new watchers" +msgstr "æ–°ã—ã„ウォッãƒãƒ£ãƒ¼ã‚’追加ã™ã‚‹" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã«%1ã®è²¬ä»»è€…を追加ã—ã¾ã—ãŸ" + +#: lib/RT/Ticket_Overlay.pm:1454 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "ã“ã®ãƒã‚±ãƒƒãƒˆã«%1ã®è²¬ä»»è€…を追加ã—ã¾ã—ãŸ" + +#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +msgid "Address1" +msgstr "使‰€1" + +#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +msgid "Address2" +msgstr "使‰€2" + +#: html/Ticket/Create.html:74 +msgid "Admin Cc" +msgstr "管ç†Cc" + +#: etc/initialdata:274 +msgid "Admin Comment" +msgstr "" + +#: etc/initialdata:256 +msgid "Admin Correspondence" +msgstr "" + +#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +msgid "Admin queues" +msgstr "管ç†ã‚­ãƒ¥ãƒ¼" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "管ç†ãƒ¦ãƒ¼ã‚¶ãƒ¼" + +#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +msgid "Admin/Global configuration" +msgstr "管ç†/グローãƒãƒ«è¨­å®š" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "管ç†/グループ" + +#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +msgid "Admin/Queue/Basics" +msgstr "管ç†/キュー/基本" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +msgid "AdminCc" +msgstr "管ç†Cc" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "AdminCustomFields" +msgstr "" + +#: lib/RT/Group_Overlay.pm:146 +msgid "AdminGroup" +msgstr "" + +#: lib/RT/Group_Overlay.pm:148 +msgid "AdminGroupMembership" +msgstr "" + +#: lib/RT/System.pm:59 +msgid "AdminOwnPersonalGroups" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "AdminQueue" +msgstr "" + +#: lib/RT/System.pm:60 +msgid "AdminUsers" +msgstr "" + +#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +msgid "Administrative Cc" +msgstr "管ç†è€…Cc" + +#: NOT FOUND IN SOURCE +msgid "Admins" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "çµžè¾¼ã¿æ¤œç´¢" + +#: html/Elements/SelectDateRelation:36 +msgid "After" +msgstr "後" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias for" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:96 +msgid "All Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:53 +msgid "All Queues" +msgstr "ã™ã¹ã¦ã®ã‚­ãƒ¥ãƒ¼" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "" + +#: html/Elements/Tabs:58 +msgid "Approval" +msgstr "" + +#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#. ($Ticket->Id, $Ticket->Subject) +#. ($ticket->id, $msg) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Approval #%1: %2" +msgstr "" + +#: html/Approvals/index.html:54 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "" + +#: html/Approvals/index.html:52 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "" + +#: html/Approvals/Elements/Approve:45 +msgid "Approve" +msgstr "" + +#: etc/initialdata:431 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "四月" + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "" + +#: html/Elements/SelectSortOrder:35 +msgid "Ascending" +msgstr "昇順" + +#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +msgid "Attach" +msgstr "添付" + +#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +msgid "Attach file" +msgstr "添付ファイル" + +#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +msgid "Attached file" +msgstr "" + +#: html/SelfService/Attachment/dhandler:36 +msgid "Attachment '%1' could not be loaded" +msgstr "添付ファイル%1ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: lib/RT/Transaction_Overlay.pm:443 +msgid "Attachment created" +msgstr "添付ファイルãŒä½œæˆã•れã¾ã—ãŸ" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "添付ファイルå" + +#: html/Ticket/Elements/ShowAttachments:26 +msgid "Attachments" +msgstr "添付ファイル" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "八月" + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "" + +#: html/Admin/Elements/ModifyUser:66 +msgid "AuthSystem" +msgstr "自動システム" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "悪ã„PGPç½²å: %1\\n" + +#: html/SelfService/Attachment/dhandler:40 +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "æ‚ªã„æ·»ä»˜IDã§ã™ã€‚添付ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“'%1'\\n" + +#: bin/rt-commit-handler:827 +#. ($val) +msgid "Bad data in %1" +msgstr "%1ã®æ‚ªã„データã§ã™" + +#: html/SelfService/Attachment/dhandler:43 +#. ($trans, $AttachmentObj->TransactionId()) +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "添付ファイルã«ã¨ã£ã¦æ‚ªã„トランザクションナンãƒãƒ¼ã§ã™ã€‚%1ã¯%2\\nã®ã¯ãšã§ã™" + +#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +msgid "Basics" +msgstr "基本" + +#: html/Ticket/Update.html:83 +msgid "Bcc" +msgstr "Bcc" + +#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +msgid "Be sure to save your changes" +msgstr "本当ã«å¤‰æ›´ã‚’ä¿å­˜ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹" + +#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +msgid "Before" +msgstr "å‰" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "" + +#: html/Search/Listing.html:79 +msgid "Bookmarkable URL for this search" +msgstr "ã“ã®æ¤œç´¢ã«ãƒ–ックマークã®ã§ãã‚‹URLã§ã™" + +#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +msgid "Brief headers" +msgstr "短ã„ヘッダー" + +#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +msgid "Bulk ticket update" +msgstr "ãƒã‚±ãƒƒãƒˆã®ä¸€æ‹¬ã‚¢ãƒƒãƒ—デート" + +#: lib/RT/User_Overlay.pm:1331 +msgid "Can not modify system users" +msgstr "システムユーザーを修正ã§ãã¾ã›ã‚“" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Can this principal see this queue" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:144 +msgid "Can't add a custom field value without a name" +msgstr "æ°åãªã—ã«ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドãƒãƒªãƒ¥ãƒ¼ã®è¿½åŠ ã¯ã§ãã¾ã›ã‚“" + +#: lib/RT/Link_Overlay.pm:132 +msgid "Can't link a ticket to itself" +msgstr "ãƒã‚±ãƒƒãƒˆè‡ªä½“ã«ã¯ãƒªãƒ³ã‚¯ã§ãã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:2787 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "ã™ã§ã«çµåˆã—ãŸãƒã‚±ãƒƒãƒˆã«ã¯çµåˆã§ãã¾ã›ã‚“。ã“ã®ã‚¨ãƒ©ãƒ¼ã¯æ±ºã—ã¦å‡ºã•ãªã„ã§ãã ã•ã„" + +#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +msgid "Can't specifiy both base and target" +msgstr "ベースã¨ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã‚’特定ã§ãã¾ã›ã‚“" + +#: html/autohandler:112 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "ユーザー: %1を作æˆã§ãã¾ã›ã‚“" + +#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +msgid "Cc" +msgstr "Cc" + +#: html/SelfService/Prefs.html:31 +msgid "Change password" +msgstr "パスワードを変更ã™ã‚‹" + +#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +msgid "Check box to delete" +msgstr "" + +#: html/Admin/Elements/SelectRights:31 +msgid "Check box to revoke right" +msgstr "権利を無効ã«ã™ã‚‹ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹" + +#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +msgid "Children" +msgstr "å­ä¾›" + +#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +msgid "City" +msgstr "町" + +#: html/Ticket/Elements/ShowDates:47 +msgid "Closed" +msgstr "" + +#: html/SelfService/Elements/Tabs:60 +msgid "Closed requests" +msgstr "終了ã—ãŸãƒªã‚¯ã‚¨ã‚¹ãƒˆã§ã™" + +#: NOT FOUND IN SOURCE +msgid "Code" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "ç†è§£ã—ã¦ã„ãªã„コマンド!\\n" + +#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +msgid "Comment" +msgstr "コメント" + +#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +msgid "Comment Address" +msgstr "コメントアドレス" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "記録ã•れã¦ã„ãªã„コメント" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Comment on tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "CommentOnTicket" +msgstr "" + +#: html/Admin/Elements/ModifyUser:35 +msgid "Comments" +msgstr "コメント" + +#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +msgid "Comments (Not sent to requestors)" +msgstr "コメント(リクエスã¨ã—ãŸäººã«ã¯é€ä¿¡ã•れã¾ã›ã‚“)" + +#: html/Search/Bulk.html:122 +msgid "Comments (not sent to requestors)" +msgstr "コメント(リクエスã¨ã—ãŸäººã«ã¯é€ä¿¡ã•れã¾ã›ã‚“)" + +#: html/Elements/ViewUser:27 +#. ($name) +msgid "Comments about %1" +msgstr "%1ã«ã¤ã„ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆ" + +#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +msgid "Comments about this user" +msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¤ã„ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆ" + +#: lib/RT/Transaction_Overlay.pm:545 +msgid "Comments added" +msgstr "コメントãŒè¿½åŠ ã•れã¾ã—ãŸ" + +#: lib/RT/Action/Generic.pm:140 +msgid "Commit Stubbed" +msgstr "コメントãŒçŸ­ãã•れã¾ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "コンパイルè¦åˆ¶" + +#: html/Admin/Elements/EditScrip:41 +msgid "Condition" +msgstr "コンディション" + +#: bin/rt-crontool:109 +msgid "Condition matches..." +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:160 +msgid "Condition not found" +msgstr "コンディションãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: html/Elements/Tabs:52 +msgid "Configuration" +msgstr "設定" + +#: html/SelfService/Prefs.html:33 +msgid "Confirm" +msgstr "確èª" + +#: html/Admin/Elements/ModifyUser:60 +msgid "ContactInfoSystem" +msgstr "コンタクト情報" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "コンタクトã•ã‚ŒãŸæ—¥ã«ã¡'%1'ã‚’è§£æžã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +msgid "Content" +msgstr "情報" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "" + +#: etc/initialdata:266 +msgid "Correspondence" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +msgid "Correspondence Address" +msgstr "メールアドレス" + +#: lib/RT/Transaction_Overlay.pm:541 +msgid "Correspondence added" +msgstr "通信ãŒè¿½åŠ ã•れã¾ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "記録ã•れã¦ã„ãªã„通信" + +#: lib/RT/Ticket_Overlay.pm:3458 +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 "" + +#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +msgid "Could not change owner. " +msgstr "オーナー変更ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#. ($msg) +msgid "Could not create CustomField" +msgstr "カスタムフィールドã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +msgid "Could not create group" +msgstr "グループã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#. ($msg) +msgid "Could not create template: %1" +msgstr "テンプレート: %1ã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +msgid "Could not create ticket. Queue not set" +msgstr "ãƒã‚±ãƒƒãƒˆã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚キューãŒã‚»ãƒƒãƒˆã•れã¦ã„ã¾ã›ã‚“" + +#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +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 find a ticket with id %1" +msgstr "ãƒã‚±ãƒƒãƒˆã¨ãã®ID%1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "グループ %1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +msgid "Could not find or create that user" +msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’作æˆã¾ãŸã¯è¦‹ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +msgid "Could not find that principal" +msgstr "ãã®è²¬ä»»è€…を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "ユーザー%1を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +msgid "Could not load group" +msgstr "グループをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãã®è²¬ä»»è€…ã‚’%1ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Ticket_Overlay.pm:1443 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "ã“ã®ãƒã‚±ãƒƒãƒˆã§ãã®è²¬ä»»è€…ã‚’%1ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãã®è²¬ä»»è€…ã‚’%1ã¨ã—ã¦å‰Šé™¤ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Ticket_Overlay.pm:1559 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "ã“ã®ãƒã‚±ãƒƒãƒˆã§ãã®è²¬ä»»è€…ã‚’%1ã¨ã—ã¦å‰Šé™¤ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Group_Overlay.pm:985 +msgid "Couldn't add member to group" +msgstr "グループã«ãƒ¡ãƒ³ãƒãƒ¼ã®è¿½åŠ ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "トランザクション: %1ã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: 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/Interface/Web.pm:866 +msgid "Couldn't find row" +msgstr "" + +#: lib/RT/Group_Overlay.pm:959 +msgid "Couldn't find that principal" +msgstr "責任者ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/CustomField_Overlay.pm:175 +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:112 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "ユーザーデータベース\\nã‹ã‚‰%1をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load KeywordSelects." +msgstr "" + +#: 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 "スクリプトをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#. ($id) +msgid "Couldn't load group %1" +msgstr "グループ%1をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +msgid "Couldn't load link" +msgstr "リンクをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#. ($id) +msgid "Couldn't load queue" +msgstr "キューをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "キュー%1をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "スクリプトをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "テンプレートをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Admin/Users/Prefs.html:79 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ï¼ˆ%1)をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/SelfService/Display.html:166 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "ãƒã‚±ãƒƒãƒˆ'%1'をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +msgid "Country" +msgstr "国" + +#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +msgid "Create" +msgstr "作æˆ" + +#: etc/initialdata:128 +msgid "Create Tickets" +msgstr "" + +#: html/Admin/Elements/EditCustomField:58 +msgid "Create a CustomField" +msgstr "カスタムフィールドã®ä½œæˆ" + +#: html/Admin/Queues/CustomField.html:48 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:48 +msgid "Create a CustomField which applies to all queues" +msgstr "" + +#: 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:67 html/Admin/Groups/Modify.html:93 +msgid "Create a new group" +msgstr "æ–°ã—ã„グループã®ä½œæˆ" + +#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +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/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +msgid "Create a new ticket" +msgstr "æ–°ã—ã„ãƒã‚±ãƒƒãƒˆã®ä½œæˆ" + +#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +msgid "Create a new user" +msgstr "æ–°ã—ã„ユーザーã®ä½œæˆ" + +#: html/Admin/Queues/Modify.html:103 +msgid "Create a queue" +msgstr "キューã®ä½œæˆ" + +#: NOT FOUND IN SOURCE +msgid "Create a queue called" +msgstr "呼ã³å‡ºã•れãŸã‚­ãƒ¥ãƒ¼ã®ä½œæˆ" + +#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +msgid "Create a request" +msgstr "リクエストã®ä½œæˆ" + +#: html/Admin/Queues/Scrip.html:59 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "" + +#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +msgid "Create a template" +msgstr "テンプレートã®ä½œæˆ" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1 / %2 / %3 " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1/%2/%3" +msgstr "" + +#: etc/initialdata:130 +msgid "Create new tickets based on this scrip's template" +msgstr "" + +#: html/SelfService/Create.html:81 +msgid "Create ticket" +msgstr "ãƒã‚±ãƒƒãƒˆã®ä½œæˆ" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Create tickets in this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Create, delete and modify custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 +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:59 +msgid "Create, delete and modify the members of personal groups" +msgstr "" + +#: lib/RT/System.pm:60 +msgid "Create, delete and modify users" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "CreateTicket" +msgstr "" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +msgid "Created" +msgstr "作æˆã—ã¾ã—ãŸ" + +#: html/Admin/Elements/EditCustomField:71 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "カスタムフィールド%1を作æˆã—ã¾ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "テンプレート%1を作æˆã—ã¾ã—ãŸ" + +#: html/Ticket/Elements/EditLinks:28 +msgid "Current Relationships" +msgstr "ç¾åœ¨ã®é–¢ä¿‚" + +#: html/Admin/Elements/EditScrips:30 +msgid "Current Scrips" +msgstr "" + +#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +msgid "Current members" +msgstr "ç¾åœ¨ã®ãƒ¡ãƒ³ãƒãƒ¼" + +#: html/Admin/Elements/SelectRights:29 +msgid "Current rights" +msgstr "ç¾åœ¨ã®æ¨©åˆ©" + +#: html/Search/Listing.html:71 +msgid "Current search criteria" +msgstr "" + +#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +msgid "Current watchers" +msgstr "ç¾åœ¨ã®ã‚¦ã‚©ãƒƒãƒãƒ£ãƒ¼" + +#: html/Admin/Global/CustomField.html:55 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "" + +#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +msgid "Custom Fields" +msgstr "カスタムフィールド" + +#: html/Admin/Elements/EditScrip:73 +msgid "Custom action cleanup code" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Custom action preparation code" +msgstr "" + +#: html/Admin/Elements/EditScrip:49 +msgid "Custom condition" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "カスタムフィールド%1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "カスタムフィールド%1ã¯ãƒãƒªãƒ¥ãƒ¼ãŒã‚りã¾ã™" + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "カスタムフィールド%1ã¯ãƒãƒªãƒ¥ãƒ¼ãŒã‚りã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:3360 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "カスタムフィールド%1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: html/Admin/Elements/EditCustomFields:197 +msgid "Custom field deleted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3510 +msgid "Custom field not found" +msgstr "カスタムフィールドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: lib/RT/CustomField_Overlay.pm:283 +#. ($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:185 +msgid "Custom field value could not be deleted" +msgstr "カスタムフィールドãƒãƒªãƒ¥ãƒ¼ã¯å‰Šé™¤ã•れã¾ã›ã‚“" + +#: lib/RT/CustomField_Overlay.pm:289 +msgid "Custom field value could not be found" +msgstr "カスタムフィールドãƒãƒªãƒ¥ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +msgid "Custom field value deleted" +msgstr "カスタムフィールドãƒãƒªãƒ¥ãƒ¼ãŒå‰Šé™¤ã•れã¾ã—ãŸ" + +#: lib/RT/Transaction_Overlay.pm:550 +msgid "CustomField" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "" + +#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +msgid "Dates" +msgstr "日付" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "å二月" + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "" + +#: etc/initialdata:275 +msgid "Default admin comment template" +msgstr "" + +#: etc/initialdata:257 +msgid "Default admin correspondence template" +msgstr "" + +#: etc/initialdata:267 +msgid "Default correspondence template" +msgstr "" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:645 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "" + +#: html/User/Delegation.html:25 html/User/Delegation.html:28 +msgid "Delegate rights" +msgstr "ä»£è¡¨è€…ã®æ¨©åˆ©" + +#: lib/RT/System.pm:63 +msgid "Delegate specific rights which have been granted to you." +msgstr "" + +#: lib/RT/System.pm:63 +msgid "DelegateRights" +msgstr "" + +#: html/User/Elements/Tabs:38 +msgid "Delegation" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "削除" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "Delete tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "DeleteTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "ã“ã®ã‚ªãƒ–ジェクトを削除ã™ã‚‹ã¨æŒ‡ç¤ºã®å®Œå…¨æ€§ãŒããšã•れるå¯èƒ½æ€§ãŒã‚りã¾ã™" + +#: lib/RT/Queue_Overlay.pm:292 +msgid "Deleting this object would break referential integrity" +msgstr "ã“ã®ã‚ªãƒ–ジェクトを削除ã™ã‚‹ã¨æŒ‡ç¤ºã®å®Œå…¨æ€§ãŒããšã•れã¾ã™" + +#: lib/RT/User_Overlay.pm:430 +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:46 +msgid "Deny" +msgstr "" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +msgid "Depended on by" +msgstr "次ã®ã‚‚ã®æ¬¡ç¬¬ã§ã‚ã‚‹" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "従属ãƒã‚±ãƒƒãƒˆ: \\n" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +msgid "Depends on" +msgstr "ã«ã‚ˆã‚‹" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "" + +#: html/Elements/SelectSortOrder:35 +msgid "Descending" +msgstr "é™é †ã™ã‚‹" + +#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +msgid "Describe the issue below" +msgstr "下ã®å•題点を表ã™" + +#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +msgid "Description" +msgstr "記述" + +#: html/SelfService/Elements/MyRequests:44 +msgid "Details" +msgstr "詳細" + +#: html/Ticket/Elements/Tabs:85 +msgid "Display" +msgstr "表ã™" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Display Access Control List" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Display Scrip templates for this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Display Scrips for this queue" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:35 +msgid "Display mode" +msgstr "モードを表ã™" + +#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 +#. ($Ticket->id) +msgid "Display ticket #%1" +msgstr "ãƒã‚±ãƒƒãƒˆ#%1を表ã™" + +#: lib/RT/System.pm:54 +msgid "Do anything and everything" +msgstr "" + +#: html/Elements/Refresh:30 +msgid "Don't refresh this page." +msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã‚’æ›´æ–°ã—ãªã„ã§ãã ã•ã„" + +#: html/Search/Elements/PickRestriction:114 +msgid "Don't show search results" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "Download" +msgstr "ダウンロード" + +#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +msgid "Due" +msgstr "期é™åˆ‡ã‚Œ" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "期é™ãŒåˆ‡ã‚Œã‚‹æ—¥'%1'ã¯è§£æžã•れã¾ã›ã‚“" + +#: bin/rt-commit-handler:754 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "ERROR: ã¯ãƒã‚±ãƒƒãƒˆ '%1': %2.\\nをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "編集" + +#: NOT FOUND IN SOURCE +msgid "Edit Conditions" +msgstr "" + +#: html/Admin/Queues/CustomFields.html:45 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "%1ã®ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドを編集ã™ã‚‹" + +#: html/Ticket/ModifyLinks.html:36 +msgid "Edit Relationships" +msgstr "関係を編集ã™ã‚‹" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "スクリプトを編集ã™ã‚‹" + +#: html/Admin/Global/index.html:46 +msgid "Edit system templates" +msgstr "システムテンプレートを編集ã™ã‚‹" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "%1ã®ãƒ†ãƒ³ãƒ—レートを編集ã™ã‚‹" + +#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "キュー%1ã®è¨­å®šã‚’編集ã™ã‚‹" + +#: html/Admin/Elements/ModifyUser:25 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "ユーザー%1ã®è¨­å®šã‚’編集ã™ã‚‹" + +#: html/Admin/Elements/EditCustomField:74 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "カスタムフィールド%1を編集ã™ã‚‹" + +#: html/Admin/Groups/Members.html:32 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "グループ%1ã®ä¼šå“¡ã‚’編集ã™ã‚‹" + +#: html/User/Groups/Members.html:129 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "個人グループ%1ã®ä¼šå“¡ã‚’編集ã™ã‚‹" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "テンプレート%1を編集ã™ã‚‹" + +#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +msgid "Either base or target must be specified" +msgstr "ベースもã—ãã¯ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã‚’特定ã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“" + +#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +msgid "Email" +msgstr "Eメール" + +#: lib/RT/User_Overlay.pm:188 +msgid "Email address in use" +msgstr "ãŠä½¿ã„ã®Eメールアドレス" + +#: html/Admin/Elements/ModifyUser:42 +msgid "EmailAddress" +msgstr "Eメールアドレス" + +#: html/Admin/Elements/ModifyUser:54 +msgid "EmailEncoding" +msgstr "Eメールエンコーディング" + +#: html/Admin/Elements/EditCustomField:36 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "" + +#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "" + +#: html/Admin/Queues/Modify.html:84 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "有効ã«ãªã‚Šã¾ã—ãŸï¼ˆã‚‚ã†ä¸€åº¦ã“ã®ãƒœãƒƒã‚¯ã‚¹ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã“ã®ã‚­ãƒ¥ãƒ¼ã¯æœ‰åйã§ãªããªã‚Šã¾ã™ï¼‰" + +#: html/Admin/Elements/EditCustomFields:99 +msgid "Enabled Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:56 +msgid "Enabled Queues" +msgstr "有効ãªã‚­ãƒ¥ãƒ¼" + +#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "有効ãªã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹%1" + +#: lib/RT/CustomField_Overlay.pm:361 +msgid "Enter multiple values" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:358 +msgid "Enter one value" +msgstr "" + +#: html/Ticket/Elements/EditLinks:112 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "ãƒã‚±ãƒƒãƒˆã‚’リンクã™ã‚‹ãƒã‚±ãƒƒãƒˆã¾ãŸã¯URLsを入力ã—ã¦ãã ã•ã„。入力ã™ã‚‹é …ç›®ãŒã„ãã¤ã‹ã‚ã‚‹å ´åˆã«ã¯ã‚¹ãƒšãƒ¼ã‚¹ã§åŒºåˆ‡ã£ã¦ãã ã•ã„。" + +#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +msgid "Error" +msgstr "エラー" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Queue->AddWatcher" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1356 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Ticket->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1532 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Ticket->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "" + +#: bin/rt-crontool:194 +msgid "Example:" +msgstr "" + +#: html/Admin/Elements/ModifyUser:64 +msgid "ExternalAuthId" +msgstr "外部ã®èªè¨¼ID" + +#: html/Admin/Elements/ModifyUser:58 +msgid "ExternalContactInfoId" +msgstr "外部ã®ã‚³ãƒ³ã‚¿ã‚¯ãƒˆæƒ…å ±ID" + +#: html/Admin/Users/Modify.html:73 +msgid "Extra info" +msgstr "ãã®ä»–ã®æƒ…å ±" + +#: lib/RT/User_Overlay.pm:302 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "'特権ã®ã‚ã‚‹'ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ“¬ä¼¼ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¤œç´¢ãŒå¤±æ•—ã—ã¾ã—ãŸ" + +#: lib/RT/User_Overlay.pm:309 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "'特権ã®ãªã„'ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ“¬ä¼¼ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¤œç´¢ãŒå¤±æ•—ã—ã¾ã—ãŸ" + +#: bin/rt-crontool:138 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "二月" + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "終了" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "最終優先順ä½" + +#: lib/RT/Ticket_Overlay.pm:1162 +msgid "FinalPriority" +msgstr "" + +#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +msgid "Find group whose" +msgstr "" + +#: html/Elements/Quicksearch:25 +msgid "Find new/open tickets" +msgstr "æ–°ã—ã„/é–‹ããƒã‚±ãƒƒãƒˆã‚’見ã¤ã‘ã‚‹" + +#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +msgid "Find people whose" +msgstr "人々を見ã¤ã‘ã‚‹" + +#: html/Search/Listing.html:108 +msgid "Find tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "" + +#: html/Ticket/Elements/Tabs:58 +msgid "First" +msgstr "最åˆã®" + +#: html/Search/Listing.html:41 +msgid "First page" +msgstr "最åˆã®ãƒšãƒ¼ã‚¸" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "Foo Bar Baz" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "ã°ã‹ï¼" + +#: html/Search/Bulk.html:87 +msgid "Force change" +msgstr "変更を強制ã—ã¾ã™" + +#: html/Search/Listing.html:106 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "" + +#: lib/RT/Interface/Web.pm:868 +msgid "Found Object" +msgstr "" + +#: html/Admin/Elements/ModifyUser:44 +msgid "FreeformContactInfo" +msgstr "フリーフォームコンタクト情報" + +#: lib/RT/CustomField_Overlay.pm:38 +msgid "FreeformMultiple" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformSingle" +msgstr "" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "金曜日" + +#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +msgid "Full headers" +msgstr "フルヘッダー" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "pgp sig\\nã‹ã‚‰ç¾åœ¨ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’å¾—ã‚‹" + +#: lib/RT/Transaction_Overlay.pm:595 +#. ($New->Name) +msgid "Given to %1" +msgstr "" + +#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +msgid "Global" +msgstr "グローãƒãƒ«" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "グローãƒãƒ«ã‚¹ã‚¯ãƒªãƒ—ト" + +#: html/Admin/Elements/SelectTemplate:38 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +msgid "Go!" +msgstr "行ãï¼" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "%1\\nã‹ã‚‰ã®è‰¯ã„pgp sig" + +#: html/Search/Listing.html:50 +msgid "Goto page" +msgstr "ページã¸è¡Œã" + +#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +msgid "Goto ticket" +msgstr "ãƒã‚±ãƒƒãƒˆã«è¡Œã" + +#: NOT FOUND IN SOURCE +msgid "Grand" +msgstr "" + +#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +msgid "Group" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "グループ%1 %2: %3" + +#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +msgid "Group Rights" +msgstr "グループ権利" + +#: lib/RT/Group_Overlay.pm:965 +msgid "Group already has member" +msgstr "グループã«ã¯ã™ã§ã«ãƒ¡ãƒ³ãƒãƒ¼ãŒã„ã¾ã™" + +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "" + +#: html/Admin/Groups/Modify.html:77 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:497 +msgid "Group created" +msgstr "グループãŒä½œæˆã•れã¾ã—ãŸ" + +#: lib/RT/Group_Overlay.pm:1133 +msgid "Group has no such member" +msgstr "" + +#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +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" + +#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +msgid "Groups" +msgstr "グループ" + +#: lib/RT/Group_Overlay.pm:971 +msgid "Groups can't be members of their members" +msgstr "グループã¯å½¼ã‚‰ã®ãƒ¡ãƒ³ãƒãƒ¼ã«ã¯ãªã‚Œã¾ã›ã‚“" + +#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +msgid "Hello!" +msgstr "ã“ã‚“ã«ã¡ã¯ï¼" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "ã“ã‚“ã«ã¡ã¯ã€%1" + +#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +msgid "History" +msgstr "ヒストリー" + +#: html/Admin/Elements/ModifyUser:68 +msgid "HomePhone" +msgstr "自宅ã®é›»è©±" + +#: html/Elements/Tabs:46 +msgid "Homepage" +msgstr "ホームページ" + +#: lib/RT/Base.pm:74 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "ç§ã¯[quant,_1,concrete mixer]ãŒã‚りã¾ã™ã€‚" + +#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "ID" + +#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +msgid "Identity" +msgstr "身分証明書" + +#: etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "" + +#: bin/rt-crontool:190 +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:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "If you've updated anything above, be sure to" +msgstr "上ã®ä½•ã‹ã‚’アップデートã—ãŸãªã‚‰ã€æ¬¡ã®ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„" + +#: lib/RT/Interface/Web.pm:860 +msgid "Illegal value for %1" +msgstr "" + +#: lib/RT/Interface/Web.pm:863 +msgid "Immutable field" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:74 +msgid "Include disabled custom fields in listing." +msgstr "" + +#: html/Admin/Queues/index.html:43 +msgid "Include disabled queues in listing." +msgstr "リストã®ç„¡åйãªã‚­ãƒ¥ãƒ¼ã‚’å«ã‚€" + +#: html/Admin/Users/index.html:47 +msgid "Include disabled users in search." +msgstr "検索ã®ç„¡åйãªãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’å«ã‚€" + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "最åˆã®å„ªå…ˆæ¨©" + +#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +msgid "InitialPriority" +msgstr "" + +#: lib/RT/ScripAction_Overlay.pm:105 +msgid "Input error" +msgstr "入力エラー" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3729 +msgid "Internal Error" +msgstr "" + +#: lib/RT/Record.pm:143 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:644 +msgid "Invalid Group Type" +msgstr "無効ãªã‚°ãƒ«ãƒ¼ãƒ—タイプã§ã™" + +#: lib/RT/Principal_Overlay.pm:128 +msgid "Invalid Right" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "" + +#: lib/RT/Interface/Web.pm:865 +msgid "Invalid data" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:438 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "無効ãªã‚ªãƒ¼ãƒŠãƒ¼ã§ã™ã€‚ '誰ã§ã‚‚ãªã„'ã«åˆæœŸè¨­å®šã—ã¾ã™." + +#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "無効ãªã‚­ãƒ¥ãƒ¼ã§ã™" + +#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +msgid "Invalid right" +msgstr "ç„¡åŠ¹ãªæ¨©åˆ©ã§ã™" + +#: lib/RT/Record.pm:118 +#. ($key) +msgid "Invalid value for %1" +msgstr "%1ã«ã¯ç„¡åйãªãƒãƒªãƒ¥ãƒ¼ã§ã™" + +#: lib/RT/Ticket_Overlay.pm:3367 +msgid "Invalid value for custom field" +msgstr "カスタムフィールドã«ã¯ç„¡åйãªãƒãƒªãƒ¥ãƒ¼ã§ã™" + +#: lib/RT/Ticket_Overlay.pm:345 +msgid "Invalid value for status" +msgstr "ステータスã«ã¯ç„¡åйãªãƒãƒªãƒ¥ãƒ¼ã§ã™" + +#: bin/rt-crontool:191 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "" + +#: bin/rt-crontool:192 +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:163 +msgid "It takes several arguments:" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "一月" + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "" + +#: lib/RT/Group_Overlay.pm:149 +msgid "Join or leave this group" +msgstr "" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "七月" + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "" + +#: html/Ticket/Elements/Tabs:99 +msgid "Jumbo" +msgstr "大ãã„" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "六月" + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "キーワード" + +#: html/Admin/Elements/ModifyUser:52 +msgid "Lang" +msgstr "é•·ã„" + +#: html/Ticket/Elements/Tabs:73 +msgid "Last" +msgstr "最後ã®" + +#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +msgid "Last Contact" +msgstr "最後ã®ã‚³ãƒ³ã‚¿ã‚¯ãƒˆ" + +#: html/Elements/SelectDateType:29 +msgid "Last Contacted" +msgstr "最後ã«ã‚³ãƒ³ã‚¿ã‚¯ãƒˆã—ãŸ" + +#: html/Search/Elements/TicketHeader:41 +msgid "Last Notified" +msgstr "" + +#: html/Elements/SelectDateType:30 +msgid "Last Updated" +msgstr "最後ã«ã‚¢ãƒƒãƒ—デートã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "残ã£ãŸ" + +#: html/Admin/Users/Modify.html:83 +msgid "Let this user access RT" +msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’RTã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¾ã™" + +#: html/Admin/Users/Modify.html:87 +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ã«åˆ¶é™ã—ã¾ã™" + +#: lib/RT/Ticket_Overlay.pm:2697 +msgid "Link already exists" +msgstr "リンクã¯ã™ã§ã«å­˜åœ¨ã—ã¦ã„ã¾ã™" + +#: lib/RT/Ticket_Overlay.pm:2709 +msgid "Link could not be created" +msgstr "リンクãŒä½œæˆã•れã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#. ($TransString) +msgid "Link created (%1)" +msgstr "リンクãŒä½œæˆã•れã¾ã—ãŸï¼ˆ%1)" + +#: lib/RT/Ticket_Overlay.pm:2638 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "リンクãŒå‰Šé™¤ã•れã¾ã—ãŸï¼ˆ%1)" + +#: lib/RT/Ticket_Overlay.pm:2644 +msgid "Link not found" +msgstr "リンクãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "リンクãƒã‚±ãƒƒãƒˆ#%1" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "" + +#: html/Ticket/Elements/Tabs:97 +msgid "Links" +msgstr "リンク" + +#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +msgid "Location" +msgstr "場所" + +#: lib/RT.pm:158 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "ログディレクトリー%1ãŒè¦‹ã¤ã‹ã‚‰ãªã„ã€ã¾ãŸã¯æ›¸ã出ã›ã¾ã›ã‚“。\\n RTãŒå‹•ãã¾ã›ã‚“" + +#: html/Elements/Header:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "%1ã¨ã—ã¦ã‚µã‚¤ãƒ³ã™ã‚‹" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +msgid "Login" +msgstr "ログイン" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "ログアウト" + +#: html/Search/Bulk.html:86 +msgid "Make Owner" +msgstr "オーナーを決ã‚ã‚‹" + +#: html/Search/Bulk.html:102 +msgid "Make Status" +msgstr "ステータスを決ã‚ã‚‹" + +#: html/Search/Bulk.html:109 +msgid "Make date Due" +msgstr "æœŸé™æœŸæ—¥ã‚’決ã‚ã‚‹" + +#: html/Search/Bulk.html:110 +msgid "Make date Resolved" +msgstr "è§£æžæœŸæ—¥ã‚’決ã‚ã‚‹" + +#: html/Search/Bulk.html:107 +msgid "Make date Started" +msgstr "é–‹å§‹ã—ãŸæ—¥ã‚’決ã‚ã‚‹" + +#: html/Search/Bulk.html:106 +msgid "Make date Starts" +msgstr "開始日を決ã‚ã‚‹" + +#: html/Search/Bulk.html:108 +msgid "Make date Told" +msgstr "ã„ã‚ã‚ŒãŸæ—¥ã‚’決ã‚ã‚‹" + +#: html/Search/Bulk.html:99 +msgid "Make priority" +msgstr "優先順ä½ã‚’決ã‚ã‚‹" + +#: html/Search/Bulk.html:100 +msgid "Make queue" +msgstr "キューを決ã‚ã‚‹" + +#: html/Search/Bulk.html:98 +msgid "Make subject" +msgstr "サブジェクトを決ã‚ã‚‹" + +#: html/Admin/index.html:33 +msgid "Manage groups and group membership" +msgstr "" + +#: html/Admin/index.html:39 +msgid "Manage properties and configuration which apply to all queues" +msgstr "" + +#: html/Admin/index.html:36 +msgid "Manage queues and queue-specific properties" +msgstr "" + +#: html/Admin/index.html:30 +msgid "Manage users and passwords" +msgstr "" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "三月" + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "五月" + +#: lib/RT/Group_Overlay.pm:982 +msgid "Member added" +msgstr "メンãƒãƒ¼ãŒè¿½åŠ ã•れã¾ã—ãŸ" + +#: lib/RT/Group_Overlay.pm:1140 +msgid "Member deleted" +msgstr "メンãƒãƒ¼ãŒå‰Šé™¤ã•れã¾ã—ãŸ" + +#: lib/RT/Group_Overlay.pm:1144 +msgid "Member not deleted" +msgstr "メンãƒãƒ¼ãŒå‰Šé™¤ã•れã¦ã„ã¾ã›ã‚“" + +#: html/Elements/SelectLinkType:26 +msgid "Member of" +msgstr "ã®ãƒ¡ãƒ³ãƒãƒ¼" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "" + +#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +msgid "Members" +msgstr "メンãƒãƒ¼" + +#: lib/RT/Ticket_Overlay.pm:2843 +msgid "Merge Successful" +msgstr "çµåˆãŒæˆåŠŸã—ã¾ã—ãŸ" + +#: lib/RT/Ticket_Overlay.pm:2804 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "çµåˆãŒå¤±æ•—ã—ã¾ã—ãŸã€‚有効ãªIDãŒè¨­å®šã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Ticket/Elements/EditLinks:115 +msgid "Merge into" +msgstr "ã«çµåˆ" + +#: html/Ticket/Update.html:102 +msgid "Message" +msgstr "" + +#: lib/RT/Interface/Web.pm:867 +msgid "Missing a primary key?: %1" +msgstr "" + +#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +msgid "Mobile" +msgstr "æºå¸¯" + +#: html/Admin/Elements/ModifyUser:72 +msgid "MobilePhone" +msgstr "æºå¸¯é›»è©±" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify Access Control List" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "カスタムフィールド%1を修正ã™ã‚‹" + +#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +msgid "Modify Custom Fields which apply to all queues" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "Modify Scrip templates for this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 +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 "" + +#: html/Admin/Queues/CustomField.html:45 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:53 +msgid "Modify a CustomField which applies to all queues" +msgstr "" + +#: html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 +msgid "Modify a scrip which applies to all queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "" + +#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "#%1ã®æœŸæ—¥ã‚’修正ã™ã‚‹" + +#: html/Ticket/ModifyDates.html:35 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "ãƒã‚±ãƒƒãƒˆ#%1ã®æœŸæ—¥ã‚’修正ã™ã‚‹" + +#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +msgid "Modify global group rights" +msgstr "グローãƒãƒ«ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¨©åˆ©ã‚’修正ã™ã‚‹" + +#: html/Admin/Global/GroupRights.html:33 +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:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +msgid "Modify global user rights" +msgstr "" + +#: html/Admin/Global/UserRights.html:33 +msgid "Modify global user rights." +msgstr "グローãƒãƒ«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ¨©åˆ©ã‚’修正ã™ã‚‹" + +#: lib/RT/Group_Overlay.pm:146 +msgid "Modify group metadata or delete group" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#. ($GroupObj->Name) +msgid "Modify group rights for group %1" +msgstr "%1ã®ã‚°ãƒ«ãƒ¼ãƒ—権利を修正ã™ã‚‹" + +#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "キュー%1ã®ã‚°ãƒ«ãƒ¼ãƒ—権利を修正ã™ã‚‹" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Modify membership roster for this group" +msgstr "" + +#: lib/RT/System.pm:61 +msgid "Modify one's own RT account" +msgstr "" + +#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "キュー%1ã«é–¢ä¿‚ã®ã‚る人々を修正ã™ã‚‹" + +#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#. ($Ticket->id) +#. ($Ticket->Id) +msgid "Modify people related to ticket #%1" +msgstr "ãƒã‚±ãƒƒãƒˆ#%1ã«é–¢ä¿‚ã®ã‚る人々を修正ã™ã‚‹" + +#: html/Admin/Queues/Scrips.html:44 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "キュー%1ã®ã‚¹ã‚¯ãƒªãƒ—トを修正ã™ã‚‹" + +#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +msgid "Modify scrips which apply to all queues" +msgstr "" + +#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#. (loc($TemplateObj->Name())) +#. ($TemplateObj->id) +msgid "Modify template %1" +msgstr "テンプレート%1を修正ã™ã‚‹" + +#: html/Admin/Global/Templates.html:44 +msgid "Modify templates which apply to all queues" +msgstr "" + +#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "グループ%1を修正ã™ã‚‹" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Modify the queue watchers" +msgstr "" + +#: html/Admin/Users/Modify.html:236 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "ユーザー%1を修正ã™ã‚‹" + +#: html/Ticket/ModifyAll.html:37 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "ãƒã‚±ãƒƒãƒˆ# %1を修正ã™ã‚‹" + +#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "ãƒã‚±ãƒƒãƒˆ#%1を修正ã™ã‚‹" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Modify tickets" +msgstr "" + +#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#. ($GroupObj->Name) +msgid "Modify user rights for group %1" +msgstr "グループ%1ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼æ¨©åˆ©ã‚’修正ã™ã‚‹" + +#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "キュー%1ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼æ¨©åˆ©ã‚’修正ã™ã‚‹" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "キュー'%1'ã®ã‚¦ã‚©ãƒƒãƒãƒ£ãƒ¼ã‚’修正ã™ã‚‹" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyACL" +msgstr "" + +#: lib/RT/Group_Overlay.pm:149 +msgid "ModifyOwnMembership" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "ModifyQueueWatchers" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "ModifyScrips" +msgstr "" + +#: lib/RT/System.pm:61 +msgid "ModifySelf" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "ModifyTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "ModifyTicket" +msgstr "" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "月曜日" + +#: html/Ticket/Elements/ShowRequestor:42 +#. ($name) +msgid "More about %1" +msgstr "ã•らã«%1ã«ã¤ã„ã¦" + +#: html/Admin/Elements/EditCustomFields:61 +msgid "Move down" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:53 +msgid "Move up" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:27 +msgid "Multiple" +msgstr "多ãã®" + +#: lib/RT/User_Overlay.pm:179 +msgid "Must specify 'Name' attribute" +msgstr "'åå‰'ã®å±žæ€§ã‚’特定ã—ã¦ãã ã•ã„" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "" + +#: html/Approvals/index.html:25 html/Approvals/index.html:26 +msgid "My approvals" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +msgid "Name" +msgstr "åå‰" + +#: lib/RT/User_Overlay.pm:186 +msgid "Name in use" +msgstr "ç¾åœ¨ãŠä½¿ã„ã®åå‰" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "" + +#: html/Ticket/Elements/ShowDates:52 +msgid "Never" +msgstr "" + +#: html/Elements/Quicksearch:30 +msgid "New" +msgstr "æ–°ã—ã„" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +msgid "New Password" +msgstr "æ–°ã—ã„パスワード" + +#: etc/initialdata:311 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "" + +#: html/Ticket/Elements/EditLinks:111 +msgid "New Relationships" +msgstr "æ–°ã—ã„関係" + +#: html/Ticket/Elements/Tabs:36 +msgid "New Search" +msgstr "" + +#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +msgid "New custom field" +msgstr "" + +#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +msgid "New group" +msgstr "" + +#: html/SelfService/Prefs.html:32 +msgid "New password" +msgstr "æ–°ã—ã„パスワード" + +#: lib/RT/User_Overlay.pm:639 +msgid "New password notification sent" +msgstr "æ–°ã—ã„パスワード情報ãŒé€ã‚‰ã‚Œã¾ã—ãŸ" + +#: html/Admin/Elements/QueueTabs:70 +msgid "New queue" +msgstr "" + +#: html/SelfService/Elements/Tabs:63 +msgid "New request" +msgstr "æ–°ã—ã„リクエスト" + +#: html/Admin/Elements/SelectRights:42 +msgid "New rights" +msgstr "æ–°ã—ã„æ¨©åˆ©" + +#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +msgid "New scrip" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "æ–°ã—ã„æ¤œç´¢" + +#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +msgid "New template" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2771 +msgid "New ticket doesn't exist" +msgstr "æ–°ã—ã„ãƒã‚±ãƒƒãƒˆã¯ã‚りã¾ã›ã‚“" + +#: html/Admin/Elements/UserTabs:52 +msgid "New user" +msgstr "" + +#: html/Admin/Elements/CreateUserCalled:26 +msgid "New user called" +msgstr "æ–°ã—ã„ユーザーãŒå‘¼ã°ã‚Œã¾ã—ãŸ" + +#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +msgid "New watchers" +msgstr "æ–°ã—ã„ウォッãƒãƒ£ãƒ¼" + +#: html/Admin/Users/Prefs.html:42 +msgid "New window setting" +msgstr "æ–°ã—ã„ウインドウ設定" + +#: html/Ticket/Elements/Tabs:69 +msgid "Next" +msgstr "次ã¸" + +#: html/Search/Listing.html:48 +msgid "Next page" +msgstr "次ã®ãƒšãƒ¼ã‚¸" + +#: html/Admin/Elements/ModifyUser:50 +msgid "NickName" +msgstr "" + +#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +msgid "Nickname" +msgstr "ニックãƒãƒ¼ãƒ " + +#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +msgid "No CustomField" +msgstr "カスタムフィールドãŒã‚りã¾ã›ã‚“" + +#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +msgid "No Group defined" +msgstr "グループãŒå®šç¾©ã•れã¾ã›ã‚“" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +msgid "No Queue defined" +msgstr "キューãŒå®šç¾©ã•れã¾ã›ã‚“" + +#: bin/rt-crontool:56 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "RTユーザーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。RT管ç†è€…ã«ç›¸è«‡ã—ã¦ãã ã•ã„。\\n" + +#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +msgid "No Template" +msgstr "テンプレートãŒã‚りã¾ã›ã‚“" + +#: bin/rt-commit-handler:764 +msgid "No Ticket specified. Aborting ticket " +msgstr "ãƒã‚±ãƒƒãƒˆãŒç‰¹å®šã§ãã¾ã›ã‚“。ãƒã‚±ãƒƒãƒˆã‚’終了ã—ã¾ã™" + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "ãƒã‚±ãƒƒãƒˆãŒç‰¹å®šã§ãã¾ã›ã‚“。ãƒã‚±ãƒƒãƒˆã®ä¿®æ­£ã‚’終了ã—ã¾ã™\\n\\n" + +#: html/Approvals/Elements/Approve:47 +msgid "No action" +msgstr "" + +#: lib/RT/Interface/Web.pm:862 +msgid "No column specified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "コマンドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\\n" + +#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +msgid "No comment entered about this user" +msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«é–¢ã—ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆã¯å…¥åŠ›ã•れã¦ã„ã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +msgid "No correspondence attached" +msgstr "é€šä¿¡æ–‡æ›¸ã®æ·»ä»˜ã¯ã‚りã¾ã›ã‚“" + +#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#. (ref $self) +msgid "No description for %1" +msgstr "%1記述ã¯ã‚りã¾ã›ã‚“" + +#: lib/RT/Users_Overlay.pm:151 +msgid "No group specified" +msgstr "グループãŒç‰¹å®šã§ãã¾ã›ã‚“" + +#: lib/RT/User_Overlay.pm:857 +msgid "No password set" +msgstr "パスワードãŒè¨­å®šã•れã¾ã›ã‚“" + +#: lib/RT/Queue_Overlay.pm:259 +msgid "No permission to create queues" +msgstr "キューを作æˆã™ã‚‹è¨±å¯ãŒã•れã¦ã„ã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:341 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "" + +#: lib/RT/User_Overlay.pm:151 +msgid "No permission to create users" +msgstr "ユーザーを作æˆã™ã‚‹è¨±å¯ãŒã•れã¦ã„ã¾ã›ã‚“" + +#: html/SelfService/Display.html:174 +msgid "No permission to display that ticket" +msgstr "ãã®ãƒã‚±ãƒƒãƒˆã‚’表示ã™ã‚‹è¨±å¯ãŒã‚りã¾ã›ã‚“" + +#: html/SelfService/Update.html:55 +msgid "No permission to view update ticket" +msgstr "アップデートãƒã‚±ãƒƒãƒˆã‚’見る許å¯ãŒã•ã‚りã¾ã›ã‚“" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +msgid "No principal specified" +msgstr "責任者ãŒç‰¹å®šã§ãã¾ã›ã‚“" + +#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +msgid "No principals selected." +msgstr "責任者ãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“" + +#: html/Admin/Queues/index.html:35 +msgid "No queues matching search criteria found." +msgstr "検索基準ã«ã‚ã£ãŸã‚­ãƒ¥ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: html/Admin/Elements/SelectRights:81 +msgid "No rights found" +msgstr "" + +#: html/Admin/Elements/SelectRights:33 +msgid "No rights granted." +msgstr "権利ãŒè¨±å¯ã•れã¦ã„ã¾ã›ã‚“" + +#: html/Search/Bulk.html:149 +msgid "No search to operate on." +msgstr "æ“作ã®ãŸã‚ã®æ¤œç´¢ãŒã§ãã¾ã›ã‚“" + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "ãƒã‚±ãƒƒãƒˆIDãŒç‰¹å®šã§ãã¾ã›ã‚“" + +#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +msgid "No transaction type specified" +msgstr "トランザクションタイプãŒç‰¹å®šã§ãã¾ã›ã‚“" + +#: NOT FOUND IN SOURCE +msgid "No user or email address specified" +msgstr "" + +#: html/Admin/Users/index.html:36 +msgid "No users matching search criteria found." +msgstr "検索基準ã«ã‚ã£ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: bin/rt-commit-handler:644 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "有効ãªRTユーザーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。RT cvcãƒãƒ³ãƒ‰ãƒ©ãŒåˆ†é›¢ã—ã¦ã„ã¾ã™ã€‚RT管ç†è€…ã«ç›¸è«‡ã—ã¦ãã ã•ã„。\\n" + +#: lib/RT/Interface/Web.pm:859 +msgid "No value sent to _Set!\\n" +msgstr "" + +#: html/Search/Elements/TicketRow:37 +msgid "Nobody" +msgstr "" + +#: lib/RT/Interface/Web.pm:864 +msgid "Nonexistant field?" +msgstr "" + +#: html/Elements/Login:99 +msgid "Not logged in" +msgstr "" + +#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +msgid "Not logged in." +msgstr "ログインã§ãã¾ã›ã‚“" + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "セットã§ãã¾ã›ã‚“" + +#: html/NoAuth/Reminder.html:27 +msgid "Not yet implemented." +msgstr "ã¾ã å®Ÿè¡Œã§ãã¾ã›ã‚“" + +#: html/Admin/Groups/Rights.html:25 +msgid "Not yet implemented...." +msgstr "ã¾ã å®Ÿè¡Œã§ãã¾ã›ã‚“。。。" + +#: html/Approvals/Elements/Approve:50 +msgid "Notes" +msgstr "" + +#: lib/RT/User_Overlay.pm:642 +msgid "Notification could not be sent" +msgstr "ãŠçŸ¥ã‚‰ã›ã‚’é€ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: etc/initialdata:94 +msgid "Notify AdminCcs" +msgstr "" + +#: etc/initialdata:90 +msgid "Notify AdminCcs as Comment" +msgstr "" + +#: etc/initialdata:121 +msgid "Notify Other Recipients" +msgstr "" + +#: etc/initialdata:117 +msgid "Notify Other Recipients as Comment" +msgstr "" + +#: etc/initialdata:86 +msgid "Notify Owner" +msgstr "" + +#: etc/initialdata:82 +msgid "Notify Owner as Comment" +msgstr "" + +#: etc/initialdata:313 etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "" + +#: etc/initialdata:78 +msgid "Notify Requestors" +msgstr "" + +#: etc/initialdata:104 +msgid "Notify Requestors and Ccs" +msgstr "" + +#: etc/initialdata:99 +msgid "Notify Requestors and Ccs as Comment" +msgstr "" + +#: etc/initialdata:113 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "" + +#: etc/initialdata:109 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "å一月" + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "" + +#: lib/RT/Record.pm:157 +msgid "Object could not be created" +msgstr "" + +#: lib/RT/Record.pm:176 +msgid "Object created" +msgstr "" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "åæœˆ" + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "" + +#: html/Elements/SelectDateRelation:35 +msgid "On" +msgstr "ã«" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:50 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:48 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "" + +#: html/Elements/Quicksearch:31 +msgid "Open" +msgstr "é–‹ã" + +#: html/Ticket/Elements/Tabs:136 +msgid "Open it" +msgstr "ãれを開ã" + +#: html/SelfService/Elements/Tabs:57 +msgid "Open requests" +msgstr "リクエストを開ã" + +#: html/Admin/Users/Prefs.html:41 +msgid "Open tickets (from listing) in a new window" +msgstr "ãƒã‚±ãƒƒãƒˆã‚’(リストã‹ã‚‰ï¼‰æ–°ã—ã„ウインドウã‹ã‚‰é–‹ã" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in another window" +msgstr "ãƒã‚±ãƒƒãƒˆã‚’(リストã‹ã‚‰ï¼‰ã»ã‹ã®ã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦ã‹ã‚‰é–‹ã" + +#: etc/initialdata:133 +msgid "Open tickets on correspondence" +msgstr "" + +#: html/Search/Elements/PickRestriction:101 +msgid "Ordering and sorting" +msgstr "整列ã¨ä¸¦ã³æ›¿ãˆ" + +#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +msgid "Organization" +msgstr "組織" + +#: html/Approvals/Elements/Approve:34 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +msgid "Over time, priority moves toward" +msgstr "時間切れã§ã™ã€å„ªå…ˆé †ä½ãŒã†ã¤ã‚Šã¾ã—ãŸ" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Own tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "OwnTicket" +msgstr "" + +#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "オーナー" + +#: lib/RT/Ticket_Overlay.pm:3004 +#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +msgid "Owner changed from %1 to %2" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:584 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "オーナーã¯å¼·åˆ¶çš„ã«%1ã‹ã‚‰%2を変更ã—ã¾ã—ãŸ" + +#: html/Search/Elements/PickRestriction:31 +msgid "Owner is" +msgstr "オーナーã¯" + +#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +msgid "Pager" +msgstr "ãƒã‚±ãƒƒãƒˆãƒ™ãƒ«" + +#: html/Admin/Elements/ModifyUser:74 +msgid "PagerPhone" +msgstr "ãƒã‚±ãƒƒãƒˆãƒ™ãƒ«é›»è©±" + +#: NOT FOUND IN SOURCE +msgid "Parent" +msgstr "" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +msgid "Parents" +msgstr "両親" + +#: html/Elements/Login:43 html/User/Prefs.html:61 +msgid "Password" +msgstr "パスワード" + +#: html/NoAuth/Reminder.html:25 +msgid "Password Reminder" +msgstr "パスワードã®ãŠçŸ¥ã‚‰ã›" + +#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +msgid "Password too short" +msgstr "パスワードãŒçŸ­ã™ãŽã¾ã™" + +#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "パスワード: %1" + +#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +msgid "People" +msgstr "人々" + +#: etc/initialdata:126 +msgid "Perform a user-defined action" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +msgid "Permission Denied" +msgstr "許å¯ãŒä¸‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" + +#: html/User/Elements/Tabs:35 +msgid "Personal Groups" +msgstr "" + +#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +msgid "Personal groups" +msgstr "個人グループ" + +#: html/User/Elements/DelegateRights:37 +msgid "Personal groups:" +msgstr "個人グループ:" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +msgid "Phone numbers" +msgstr "電話番å·" + +#: html/Admin/Users/Rights.html:25 +msgid "Placeholder" +msgstr "代替物" + +#: NOT FOUND IN SOURCE +msgid "Pref" +msgstr "ãŠæ°—ã«å…¥ã‚Š" + +#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +msgid "Preferences" +msgstr "ãŠæ°—ã«å…¥ã‚Š" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "" + +#: lib/RT/Action/Generic.pm:160 +msgid "Prepare Stubbed" +msgstr "Prepare Stubbed" + +#: html/Ticket/Elements/Tabs:61 +msgid "Prev" +msgstr "å‰ã®" + +#: html/Search/Listing.html:44 +msgid "Previous page" +msgstr "å‰ã®ãƒšãƒ¼ã‚¸" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "優先権" + +#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "" + +#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "優先権" + +#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +msgid "Priority starts at" +msgstr "優先順ä½ã¯æ¬¡ã®ã‚ˆã†ã«å§‹ã¾ã‚Šã¾ã™" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "" + +#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "特権ステータス: %1" + +#: html/Admin/Users/index.html:62 +msgid "Privileged users" +msgstr "特権ã®ã‚るユーザー" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "キュー" + +#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#. ($Queue) +#. ($id) +msgid "Queue %1 not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Queue '%1' not found\\n" +msgstr "キュー'%1'ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ\\n" + +#: NOT FOUND IN SOURCE +msgid "Queue Keyword Selections" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +msgid "Queue Name" +msgstr "キューã®åå‰" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "キュースクリプト" + +#: lib/RT/Queue_Overlay.pm:263 +msgid "Queue already exists" +msgstr "キューã¯ã™ã§ã«å­˜åœ¨ã—ã¦ã„ã¾ã™" + +#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +msgid "Queue could not be created" +msgstr "キューã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Ticket/Create.html:209 +msgid "Queue could not be loaded." +msgstr "キューã®ãƒ­ãƒ¼ãƒ‰ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +msgid "Queue created" +msgstr "キューãŒä½œæˆã•れã¾ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "" + +#: html/SelfService/Display.html:129 +msgid "Queue not found" +msgstr "キューãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +msgid "Queues" +msgstr "キュー" + +#: html/Elements/Login:34 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "%2ã®RT %1" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "<a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>ã‹ã‚‰ã®RT%1。" + +#: 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 "" + +#: html/Admin/index.html:25 html/Admin/index.html:26 +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:41 html/SelfService/Error.html:41 +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 "" + +#: html/SelfService/Closed.html:25 +msgid "RT Self Service / Closed Tickets" +msgstr "RTセルフサービス/クローズã•れãŸãƒã‚±ãƒƒãƒˆ" + +#: html/index.html:25 html/index.html:28 +msgid "RT at a glance" +msgstr "" + +#: 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を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RTã¯ã“ã®PGPサインを有効ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚\\n" + +#: html/Elements/PageLayout:26 +#. ($RT::rtname) +msgid "RT for %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT for %1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT has proccessed your commands" +msgstr "RTã¯ã‚ãªãŸã®ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’処ç†ã—ã¾ã—ãŸ" + +#: html/Elements/Login:83 +#. ('2003') +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ã¯&コピー; Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>。ã“れã¯<a href=\"http://www.gnu.org/copyleft/gpl.html\">GNUジェãƒãƒ©ãƒ«ãƒ‘ブリックライセンスã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³2ã§é…ä¿¡ã•れã¦ã„ã¾ã™ã€‚</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 "" + +#: NOT FOUND IN SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "RTã«ã‚ˆã‚‹ã¨ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ãƒã‚¦ãƒ³ã‚¹ã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RTã¯ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒã¾ã‚‹ã§ã‚µã‚¤ãƒ³ã•れã¦ã„ãªã„よã†ã«å‡¦ç†ã—ã¾ã™ã€‚\\n" + +#: 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ã®Eメールコマンドモードã§ã¯PGPèªè¨¼ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚è²´æ–¹ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«ã‚µã‚¤ãƒ³ã—ãªã‹ã£ãŸã€ã‚‚ã—ãã¯ã¯ã‚µã‚¤ãƒ³ãŒæœ‰åйã§ã‚りã¾ã›ã‚“" + +#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +msgid "Real Name" +msgstr "本å" + +#: html/Admin/Elements/ModifyUser:48 +msgid "RealName" +msgstr "本å" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +msgid "Referred to by" +msgstr "次ã®ã‚‚ã®ã«ã‚ˆã£ã¦å‚ç…§ã—ãŸ" + +#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +msgid "Refers to" +msgstr "å‚ç…§ã™ã‚‹" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "絞り込む" + +#: html/Search/Elements/PickRestriction:27 +msgid "Refine search" +msgstr "çµžè¾¼ã¿æ¤œç´¢" + +#: html/Elements/Refresh:36 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã‚’%1分ãŠãã«æ›´æ–°ã—ã¦ãã ã•ã„" + +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +msgid "Relationships" +msgstr "関係" + +#: html/Search/Bulk.html:93 +msgid "Remove AdminCc" +msgstr "管ç†Ccを削除ã™ã‚‹" + +#: html/Search/Bulk.html:91 +msgid "Remove Cc" +msgstr "Ccを削除ã™ã‚‹" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "リクエストã™ã‚‹äººã‚’削除ã™ã‚‹" + +#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +msgid "Reply" +msgstr "返信" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Reply to tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "ReplyToTicket" +msgstr "" + +#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +msgid "Requestor" +msgstr "リクエストã™ã‚‹äºº" + +#: html/Search/Elements/PickRestriction:38 +msgid "Requestor email address" +msgstr "リクエストã™ã‚‹äººã®Eメールアドレス" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RequestorAddresses" +msgstr "" + +#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +msgid "Requestors" +msgstr "リクエストã™ã‚‹äºº" + +#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +msgid "Requests should be due in" +msgstr "ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯æ¬¡ã®æ—¥ã¾ã§ã«è¡Œã‚れãªã‘れã°ãªã‚Šã¾ã›ã‚“" + +#: html/Elements/Submit:62 +msgid "Reset" +msgstr "リセット" + +#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +msgid "Residence" +msgstr "使‰€" + +#: html/Ticket/Elements/Tabs:132 +msgid "Resolve" +msgstr "分解ã™ã‚‹" + +#: html/Ticket/Update.html:133 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "" + +#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +msgid "Resolved" +msgstr "分解ã—ãŸ" + +#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +msgid "Response to requestors" +msgstr "リクエストã™ã‚‹äººã«è¿”ç­”ã™ã‚‹" + +#: html/Elements/ListActions:26 +msgid "Results" +msgstr "çµæžœ" + +#: html/Search/Elements/PickRestriction:105 +msgid "Results per page" +msgstr "ページã”ã¨ã®çµæžœ" + +#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +msgid "Retype Password" +msgstr "パスワードã®å†å…¥åŠ›" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "%2 %3ã®æ¨©åˆ©%1ãŒé ˜åŸŸ%4 %5\\nã§è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/ACE_Overlay.pm:613 +msgid "Right Delegated" +msgstr "権利ãŒå§”託ã•れã¾ã—ãŸ" + +#: lib/RT/ACE_Overlay.pm:303 +msgid "Right Granted" +msgstr "権利ãŒè¨±å¯ã•れã¾ã—ãŸ" + +#: lib/RT/ACE_Overlay.pm:161 +msgid "Right Loaded" +msgstr "権利ãŒãƒ­ãƒ¼ãƒ‰ã•れã¾ã—ãŸ" + +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +msgid "Right could not be revoked" +msgstr "権利を無効ã«ã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: html/User/Delegation.html:64 +msgid "Right not found" +msgstr "権利ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +msgid "Right not loaded." +msgstr "権利ãŒãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/ACE_Overlay.pm:689 +msgid "Right revoked" +msgstr "権利ãŒç„¡åйã«ãªã‚Šã¾ã—ãŸ" + +#: html/Admin/Elements/UserTabs:41 +msgid "Rights" +msgstr "権利" + +#: lib/RT/Interface/Web.pm:758 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "" + +#: lib/RT/Interface/Web.pm:791 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "" + +#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "役割" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "土曜日" + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "Save Changes" +msgstr "変更をä¿å­˜ã™ã‚‹" + +#: html/Ticket/ModifyLinks.html:39 +msgid "Save changes" +msgstr "変更をä¿å­˜ã™ã‚‹" + +#: html/Admin/Global/Scrip.html:49 +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:176 +msgid "Scrip Created" +msgstr "スクリプトãŒä½œæˆã•れã¾ã—ãŸ" + +#: html/Admin/Elements/EditScrips:84 +msgid "Scrip deleted" +msgstr "" + +#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +msgid "Scrips" +msgstr "スクリプト" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "%1\\nã®ã‚¹ã‚¯ãƒªãƒ—ト" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "" + +#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +msgid "Search" +msgstr "検索" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "検索基準" + +#: html/Approvals/Elements/PendingMyApproval:39 +msgid "Search for approvals" +msgstr "" + +#: bin/rt-crontool:188 +msgid "Security:" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "SeeQueue" +msgstr "" + +#: html/Admin/Groups/index.html:40 +msgid "Select a group" +msgstr "グループã®é¸æŠž" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "キューã®é¸æŠž" + +#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +msgid "Select a user" +msgstr "ユーザーã®é¸æŠž" + +#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +msgid "Select custom field" +msgstr "" + +#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +msgid "Select group" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Select multiple values" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:352 +msgid "Select one value" +msgstr "" + +#: html/Admin/Elements/QueueTabs:67 +msgid "Select queue" +msgstr "" + +#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +msgid "Select scrip" +msgstr "" + +#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +msgid "Select template" +msgstr "" + +#: html/Admin/Elements/UserTabs:49 +msgid "Select user" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "SelectMultiple" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectSingle" +msgstr "" + +#: html/SelfService/index.html:25 +msgid "Self Service" +msgstr "セルフサービス" + +#: etc/initialdata:114 +msgid "Send mail to all watchers" +msgstr "" + +#: etc/initialdata:110 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "" + +#: etc/initialdata:105 +msgid "Send mail to requestors and Ccs" +msgstr "" + +#: etc/initialdata:100 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "" + +#: etc/initialdata:79 +msgid "Sends a message to the requestors" +msgstr "" + +#: etc/initialdata:118 etc/initialdata:122 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "" + +#: etc/initialdata:95 +msgid "Sends mail to the administrative Ccs" +msgstr "" + +#: etc/initialdata:91 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "" + +#: etc/initialdata:83 etc/initialdata:87 +msgid "Sends mail to the owner" +msgstr "" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "乿œˆ" + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "çµæžœã‚’見る" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show approved requests" +msgstr "" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show basics" +msgstr "基本を見る" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show denied requests" +msgstr "" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show details" +msgstr "詳細を見る" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show pending requests" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:46 +msgid "Show requests awaiting other approvals" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Show ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "Show ticket summaries" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ShowACL" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowScrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ShowTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "ShowTicket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "ShowTicketComments" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "" + +#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +msgid "Signature" +msgstr "サイン" + +#: html/SelfService/Elements/Header:52 +#. ($session{'CurrentUser'}->Name) +msgid "Signed in as %1" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Single" +msgstr "ã²ã¨ã¤ã®" + +#: html/Elements/Header:51 +msgid "Skip Menu" +msgstr "" + +#: html/Admin/Elements/EditCustomFieldValues:31 +msgid "Sort key" +msgstr "ä¸¦ã¹æ›¿ãˆã®ã‚­ãƒ¼" + +#: html/Search/Elements/PickRestriction:109 +msgid "Sort results by" +msgstr "次ã®é …ç›®ã”ã¨ã®ä¸¦ã³æ›¿ãˆ" + +#: html/Admin/Elements/AddCustomFieldValue:25 +msgid "SortOrder" +msgstr "並ã³é †" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "åœæ­¢ã—ã¦ã„ã¾ã™" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "開始ページ" + +#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +msgid "Started" +msgstr "é–‹å§‹ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "é–‹å§‹æ—¥'%1'ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +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/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +msgid "State" +msgstr "状態" + +#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "ステータス" + +#: etc/initialdata:288 +msgid "Status Change" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:530 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "ステータスãŒ%1ã‹ã‚‰%2ã«å¤‰æ›´ã•れã¾ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "" + +#: html/Ticket/Elements/Tabs:147 +msgid "Steal" +msgstr "盗用ã™ã‚‹" + +#: lib/RT/Transaction_Overlay.pm:589 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "%1ã‹ã‚‰ç›—用ã—ãŸ" + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "サブジェクト" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "" + +#: html/Elements/Submit:59 +msgid "Submit" +msgstr "æå‡º" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "" + +#: lib/RT/Group_Overlay.pm:749 +msgid "Succeeded" +msgstr "" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "日曜日" + +#: lib/RT/System.pm:54 +msgid "SuperUser" +msgstr "" + +#: html/User/Elements/DelegateRights:77 +msgid "System" +msgstr "" + +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +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/ACE_Overlay.pm:616 +msgid "System error. Right not delegated." +msgstr "システムエラー。権利ãŒå§”ä»»ã•れã¦ã„ã¾ã›ã‚“" + +#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +msgid "System error. Right not granted." +msgstr "システムエラー。権利ãŒèªå¯ã•れã¦ã„ã¾ã›ã‚“" + +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "" + +#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +msgid "System groups" +msgstr "システムグループ" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "" + +#: lib/RT/CurrentUser.pm:320 +msgid "TEST_STRING" +msgstr "テスト_ストリング" + +#: html/Ticket/Elements/Tabs:143 +msgid "Take" +msgstr "ã¨ã‚‹" + +#: lib/RT/Transaction_Overlay.pm:575 +msgid "Taken" +msgstr "ã¨ã‚‰ã‚ŒãŸ" + +#: html/Admin/Elements/EditScrip:81 +msgid "Template" +msgstr "テンプレート" + +#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "" + +#: html/Admin/Elements/EditTemplates:89 +msgid "Template deleted" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:153 +msgid "Template not found" +msgstr "テンプレートãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "テンプレートãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\\n" + +#: lib/RT/Template_Overlay.pm:347 +msgid "Template parsed" +msgstr "テンプレートãŒè§£æžã•れã¾ã—ãŸ" + +#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +msgid "Templates" +msgstr "テンプレート" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "%1\\nã®ãƒ†ãƒ³ãƒ—レート" + +#: lib/RT/Interface/Web.pm:858 +msgid "That is already the current value" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:178 +msgid "That is not a value for this custom field" +msgstr "ãれã¯ã“ã®ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドã®ãƒãƒªãƒ¥ãƒ¼ã§ã¯ã‚りã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:1886 +msgid "That is the same value" +msgstr "ãれã¯åŒã˜ãƒãƒªãƒ¥ãƒ¼ã§ã™" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "ãã®è²¬ä»»è€…ã¯ã™ã§ã«ã“ã®ã‚­ãƒ¥ãƒ¼ã®%1ã§ã™" + +#: lib/RT/Ticket_Overlay.pm:1434 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "ãã®è²¬ä»»è€…ã¯ã™ã§ã«ã“ã®ãƒã‚±ãƒƒãƒˆã®%1ã§ã™" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "ãã®è²¬ä»»è€…ã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã®%1ã§ã¯ã‚りã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:1551 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "ãã®è²¬ä»»è€…ã¯ã“ã®ãƒã‚±ãƒƒãƒˆã®%1ã§ã¯ã‚りã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:1882 +msgid "That queue does not exist" +msgstr "ãã®ã‚­ãƒ¥ãƒ¼ã¯ã‚りã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:3143 +msgid "That ticket has unresolved dependencies" +msgstr "ãã®ãƒã‚±ãƒƒãƒˆã¯å¾“属物をã™ã§ã«åˆ†è§£ã—ã¾ã—ãŸ" + +#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +msgid "That user already has that right" +msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã™ã§ã«æ¨©åˆ©ãŒã‚りã¾ã™" + +#: lib/RT/Ticket_Overlay.pm:2952 +msgid "That user already owns that ticket" +msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã™ã§ã«ãƒã‚±ãƒƒãƒˆã‚’所有ã—ã¦ã„ã¾ã™" + +#: lib/RT/Ticket_Overlay.pm:2918 +msgid "That user does not exist" +msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯å­˜åœ¨ã—ã¾ã›ã‚“" + +#: lib/RT/User_Overlay.pm:315 +msgid "That user is already privileged" +msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã™ã§ã«ç‰¹æ¨©ãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã™" + +#: lib/RT/User_Overlay.pm:332 +msgid "That user is already unprivileged" +msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¯ã™ã§ã«ç‰¹æ¨©ãŒã‚りã¾ã›ã‚“" + +#: lib/RT/User_Overlay.pm:327 +msgid "That user is now privileged" +msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ä»Šç‰¹æ¨©ã‚’与ãˆã‚‰ã‚Œã¾ã—ãŸ" + +#: lib/RT/User_Overlay.pm:344 +msgid "That user is now unprivileged" +msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ä»Šç‰¹æ¨©ã‚’失ã„ã¾ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2944 +msgid "That user may not own tickets in that queue" +msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ã¯ãƒã‚±ãƒƒãƒˆã‚’所有ã—ã¦ã„ãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™" + +#: lib/RT/Link_Overlay.pm:206 +msgid "That's not a numerical id" +msgstr "ãã‚Œã¯æ•°å­—ã®IDã§ã¯ã‚りã¾ã›ã‚“" + +#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +msgid "The Basics" +msgstr "基本" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The CC of a ticket" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:89 +msgid "The administrative CC of a ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2213 +msgid "The comment has been recorded" +msgstr "コメントã¯è¨˜éŒ²ã•れã¾ã—ãŸ" + +#: bin/rt-crontool:198 +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 "" + +#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "次ã®ã‚³ãƒžãƒ³ãƒ‰ã¯å‡¦ç†ã•れã¾ã›ã‚“ã§ã—ãŸ:\\n\\n" + +#: lib/RT/Interface/Web.pm:861 +msgid "The new value has been set." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The owner of a ticket" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The requestor of a ticket" +msgstr "" + +#: html/Admin/Elements/EditUserComments:26 +msgid "These comments aren't generally visible to the user" +msgstr "ãれらã®ã‚³ãƒ¡ãƒ³ãƒˆã¯å®Ÿéš›ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¯è¦‹ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "ã“ã®ãƒã‚±ãƒƒãƒˆ%1 %2 (%3)\\n" + +#: bin/rt-crontool:189 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:253 +msgid "This transaction appears to have no content" +msgstr "ã“ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã«ã¯ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ãŒã‚りã¾ã›ã‚“" + +#: html/Ticket/Elements/ShowRequestor:47 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®25ã®ã‚‚ã£ã¨ã‚‚高ã„優先ãƒã‚±ãƒƒãƒˆ" + +#: lib/RT/Date.pm:391 +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 "" + +#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "ãƒã‚±ãƒƒãƒˆã€€#%1 大ãã„アップデート: %2" + +#: html/Approvals/Elements/ShowDependency:46 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:608 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "ãƒã‚±ãƒƒãƒˆ %1ãŒã‚­ãƒ¥ãƒ¼ '%2'ã§ä½œæˆã•れã¾ã—ãŸ" + +#: bin/rt-commit-handler:760 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "ãƒã‚±ãƒƒãƒˆ%1ãŒãƒ­ãƒ¼ãƒ‰ã•れã¾ã—ãŸ\\n" + +#: html/Search/Bulk.html:181 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "ãƒã‚±ãƒƒãƒˆã€€%1: %2" + +#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "ãƒã‚±ãƒƒãƒˆãƒ’ストリー # %1 %2" + +#: html/SelfService/Display.html:34 +msgid "Ticket Id" +msgstr "ãƒã‚±ãƒƒãƒˆID" + +#: etc/initialdata:303 +msgid "Ticket Resolved" +msgstr "" + +#: html/Search/Elements/PickRestriction:63 +msgid "Ticket attachment" +msgstr "ãƒã‚±ãƒƒãƒˆæ·»ä»˜" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "ãƒã‚±ãƒƒãƒˆã‚³ãƒ³ãƒ†ãƒ³ãƒ„" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "ãƒã‚±ãƒƒãƒˆã‚³ãƒ³ãƒ†ãƒ³ãƒ„タイプ" + +#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +msgid "Ticket could not be created due to an internal error" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:522 +msgid "Ticket created" +msgstr "ãƒã‚±ãƒƒãƒˆãŒä½œæˆã•れã¾ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "ãƒã‚±ãƒƒãƒˆã®ä½œæˆãŒå¤±æ•—ã—ã¾ã—ãŸ" + +#: lib/RT/Transaction_Overlay.pm:527 +msgid "Ticket deleted" +msgstr "ãƒã‚±ãƒƒãƒˆãŒå‰Šé™¤ã•れã¾ã—ãŸ" + +#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +msgid "Ticket id not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "" + +#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +msgid "Ticket not found" +msgstr "" + +#: etc/initialdata:289 +msgid "Ticket status changed" +msgstr "" + +#: html/Ticket/Update.html:39 +msgid "Ticket watchers" +msgstr "ãƒã‚±ãƒƒãƒˆã‚¦ã‚©ãƒƒãƒãƒ£ãƒ¼" + +#: html/Elements/Tabs:49 +msgid "Tickets" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Tickets from %1" +msgstr "%1ã‹ã‚‰ã®ãƒã‚±ãƒƒãƒˆ" + +#: html/Approvals/Elements/ShowDependency:27 +msgid "Tickets which depend on this approval:" +msgstr "" + +#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +msgid "Time Left" +msgstr "æ™‚é–“ãŒæ®‹ã£ã¦ã„ã¾ã™" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +msgid "Time Worked" +msgstr "使ã£ãŸæ™‚é–“" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "残ã£ã¦ã„る時間" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "表示ã™ã‚‹æ™‚é–“" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "使ã£ãŸæ™‚é–“" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1165 +msgid "TimeWorked" +msgstr "" + +#: bin/rt-commit-handler:402 +msgid "To generate a diff of this commit:" +msgstr "ã“ã®ã‚³ãƒŸãƒƒãƒˆã®ãƒ‡ã‚£ãƒ•ã‚’ã¤ãã‚‹ãŸã‚ã«:" + +#: bin/rt-commit-handler:391 +msgid "To generate a diff of this commit:\\n" +msgstr "ã“ã®ã‚³ãƒŸãƒƒãƒˆã®ãƒ‡ã‚£ãƒ•ã‚’ã¤ãã‚‹ãŸã‚ã«:\\n" + +#: lib/RT/Ticket_Overlay.pm:1168 +msgid "Told" +msgstr "言ã£ãŸ" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:642 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "トランザクション%1ãŒæ¶ˆåŽ»ã•れã¾ã—ãŸ" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "トランザクションãŒä½œæˆã•れã¾ã—ãŸ" + +#: lib/RT/Transaction_Overlay.pm:89 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:701 +msgid "Transactions are immutable" +msgstr "トランザクションã¯å¤‰æ›´ã•れるã“ã¨ã¯ã‚りã¾ã›ã‚“" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "権利: %1を削除ã—ã¦ã„ã¾ã™" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "ç«æ›œæ—¥" + +#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "タイプ" + +#: lib/RT/ScripCondition_Overlay.pm:104 +msgid "Unimplemented" +msgstr "å°Žå…¥ã•れã¦ã„ãªã„" + +#: html/Admin/Users/Modify.html:68 +msgid "Unix login" +msgstr "Unixログイン" + +#: html/Admin/Elements/ModifyUser:62 +msgid "UnixUsername" +msgstr "Unixユーザーãƒãƒ¼ãƒ " + +#: lib/RT/Attachment_Overlay.pm:265 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "䏿˜Žãªã‚³ãƒ³ãƒ†ãƒ³ãƒ„エンコーディング%1" + +#: html/Elements/SelectResultsPerPage:37 +msgid "Unlimited" +msgstr "制é™ã•れã¦ã„ãªã„" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:571 +msgid "Untaken" +msgstr "ã¨ã‚‰ã‚Œã¦ã„ãªã„" + +#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +msgid "Update" +msgstr "アップデート" + +#: html/Admin/Users/Prefs.html:62 +msgid "Update ID" +msgstr "アップデートID" + +#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +msgid "Update Type" +msgstr "アップデートタイプ" + +#: html/Search/Listing.html:61 +msgid "Update all these tickets at once" +msgstr "ã™ã¹ã¦ã®ãƒã‚±ãƒƒãƒˆã‚’一度ã«ã‚¢ãƒƒãƒ—デートã™ã‚‹" + +#: html/Admin/Users/Prefs.html:49 +msgid "Update email" +msgstr "アップデートEメール" + +#: html/Admin/Users/Prefs.html:55 +msgid "Update name" +msgstr "アップデートãƒãƒ¼ãƒ " + +#: lib/RT/Interface/Web.pm:375 +msgid "Update not recorded." +msgstr "アップデートã¯è¨˜éŒ²ã•れã¾ã›ã‚“ã§ã—ãŸ" + +#: html/Search/Bulk.html:81 +msgid "Update selected tickets" +msgstr "é¸æŠžã•れãŸãƒã‚±ãƒƒãƒˆã‚’アップデートã™ã‚‹" + +#: html/Admin/Users/Prefs.html:36 +msgid "Update signature" +msgstr "サインをアップデートã™ã‚‹" + +#: html/Ticket/ModifyAll.html:63 +msgid "Update ticket" +msgstr "ãƒã‚±ãƒƒãƒˆã‚’アップデートã™ã‚‹" + +#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 +#. ($Ticket->id) +msgid "Update ticket # %1" +msgstr "アップデートãƒã‚±ãƒƒãƒˆ # %1" + +#: html/SelfService/Update.html:50 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "アップデートãƒã‚±ãƒƒãƒˆ #%1" + +#: html/Ticket/Update.html:135 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "" + +#: lib/RT/Interface/Web.pm:373 +msgid "Update type was neither correspondence nor comment." +msgstr "アップデートタイプã¯é€šçŸ¥ã§ã‚‚コメントã§ã‚‚ã‚りã¾ã›ã‚“" + +#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +msgid "Updated" +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" + +#: 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:125 etc/initialdata:191 +msgid "User Defined" +msgstr "" + +#: html/Admin/Users/Prefs.html:59 +msgid "User ID" +msgstr "ユーザーID" + +#: html/Elements/SelectUsers:26 +msgid "User Id" +msgstr "ユーザーID" + +#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +msgid "User Rights" +msgstr "ユーザー権利" + +#: html/Admin/Users/Modify.html:226 +#. ($msg) +msgid "User could not be created: %1" +msgstr "ユーザーを作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ: %1" + +#: lib/RT/User_Overlay.pm:262 +msgid "User created" +msgstr "ユーザーãŒä½œæˆã•れã¾ã—ãŸ" + +#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "ユーザーãŒã‚°ãƒ«ãƒ¼ãƒ—を決定ã—ã¾ã—ãŸ" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "ユーザーã«é€šå‘Šã•れã¾ã—ãŸ" + +#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +msgid "User view" +msgstr "ユーザービュー" + +#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +msgid "Username" +msgstr "ユーザーãƒãƒ¼ãƒ " + +#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +msgid "Users" +msgstr "ユーザー" + +#: html/Admin/Users/index.html:65 +msgid "Users matching search criteria" +msgstr "ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ¤œç´¢åŸºæº–ã«ã‚ã£ã¦ã„ã¾ã™" + +#: html/Search/Elements/PickRestriction:51 +msgid "ValueOfQueue" +msgstr "キューã®ãƒãƒªãƒ¥ãƒ¼" + +#: html/Admin/Elements/EditCustomField:40 +msgid "Values" +msgstr "ãƒãƒªãƒ¥ãƒ¼" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Watch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "WatchAsAdminCc" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "" + +#: html/Admin/Elements/QueueTabs:42 +msgid "Watchers" +msgstr "ウォッãƒãƒ£ãƒ¼" + +#: html/Admin/Elements/ModifyUser:56 +msgid "WebEncoding" +msgstr "ウェブエンコーディング" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "水曜日" + +#: etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "" + +#: etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "" + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "" + +#: etc/upgrade/2.1.71:79 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "" + +#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +msgid "Work" +msgstr "仕事" + +#: html/Admin/Elements/ModifyUser:70 +msgid "WorkPhone" +msgstr "仕事先ã®é›»è©±" + +#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +msgid "Worked" +msgstr "Worked" + +#: lib/RT/Ticket_Overlay.pm:3056 +msgid "You already own this ticket" +msgstr "ã‚ãªãŸã¯ã™ã§ã«ã“ã®ãƒã‚±ãƒƒãƒˆã‚’所有ã—ã¦ã„ã¾ã™" + +#: html/autohandler:121 +msgid "You are not an authorized user" +msgstr "ã‚ãªãŸã¯èªè¨¼ã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã§ã¯ã‚りã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:2930 +msgid "You can only reassign tickets that you own or 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 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "ã‚ãªãŸã¯%2ã§ãƒã‚±ãƒƒãƒˆ%1を見ã¤ã‘ã¾ã—ãŸ" + +#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +msgid "You have been logged out of RT." +msgstr "ã‚ãªãŸã¯RTã‹ã‚‰ãƒ­ã‚°ã‚¢ã‚¦ãƒˆã—ãŸã¾ã¾ã§ã™" + +#: html/SelfService/Display.html:134 +msgid "You have no permission to create tickets in that queue." +msgstr "ã‚ãªãŸã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãƒã‚±ãƒƒãƒˆä½œæˆã®è¨±å¯ãŒã‚りã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:1895 +msgid "You may not create requests in that queue." +msgstr "ã‚ãªãŸã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®ä½œæˆãŒã§ãã‚‹ã§ã—ょã†" + +#: html/NoAuth/Logout.html:36 +msgid "You're welcome to login again" +msgstr "ãœã²ã¾ãŸãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãã ã•ã„" + +#: html/SelfService/Elements/MyRequests:25 +#. ($friendly_status) +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を呼ã³å‡ºã™ãƒ¡ãƒ¼ãƒ«aliasesを設定ã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: etc/initialdata:429 etc/upgrade/2.1.71:146 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "" + +#: etc/initialdata:463 etc/upgrade/2.1.71:180 +msgid "Your request has been approved." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "" + +#: etc/initialdata:384 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "" + +#: html/autohandler:136 html/autohandler:142 +msgid "Your username or password is incorrect" +msgstr "ã‚ãªãŸã®ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒãƒ¼ãƒ ã¨ãƒ‘スワードãŒé–“é•ã£ã¦ã„ã¾ã™" + +#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +msgid "Zip" +msgstr "ジップ" + +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "" + +#: html/User/Elements/DelegateRights:59 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "%1ã¸ã®è¨±å¯" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +msgid "contains" +msgstr "å«ã‚€" + +#: html/Elements/SelectAttachmentField:26 +msgid "content" +msgstr "" + +#: html/Elements/SelectAttachmentField:27 +msgid "content-type" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2282 +msgid "correspondence (probably) not sent" +msgstr "通知ã¯ï¼ˆãŠãらã)é€ä¿¡ã•れã¦ã„ã¾ã›ã‚“" + +#: lib/RT/Ticket_Overlay.pm:2292 +msgid "correspondence sent" +msgstr "通知ãŒé€ä¿¡ã•れã¾ã—ãŸ" + +#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +msgid "days" +msgstr "æ—¥" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "" + +#: html/Search/Listing.html:75 +msgid "delete" +msgstr "削除" + +#: lib/RT/Queue_Overlay.pm:63 +msgid "deleted" +msgstr "削除ã•れãŸ" + +#: html/Search/Elements/PickRestriction:68 +msgid "does not match" +msgstr "ã‚ã„ã¾ã›ã‚“" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +msgid "doesn't contain" +msgstr "å«ã¿ã¾ã›ã‚“" + +#: html/Elements/SelectEqualityOperator:38 +msgid "equal to" +msgstr "ç­‰ã—ã„" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "" + +#: html/Elements/SelectAttachmentField:28 +msgid "filename" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "greater than" +msgstr "より大ãã„" + +#: lib/RT/Group_Overlay.pm:194 +#. ($self->Name) +msgid "group '%1'" +msgstr "グループ'%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "時間" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "ID" + +#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "is" +msgstr "ã§ã™" + +#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +msgid "isn't" +msgstr "ã§ãªã„" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "less than" +msgstr "より少ãªã„" + +#: html/Search/Elements/PickRestriction:67 +msgid "matches" +msgstr "åˆã†" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "最低" + +#: html/Ticket/Update.html:66 +msgid "minutes" +msgstr "分" + +#: bin/rt-commit-handler:765 +msgid "modifications\\n\\n" +msgstr "修正\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "月" + +#: lib/RT/Queue_Overlay.pm:58 +msgid "new" +msgstr "æ–°ã—ã„" + +#: html/Admin/Elements/EditScrips:43 +msgid "no value" +msgstr "" + +#: html/Ticket/Elements/EditWatchers:28 +msgid "none" +msgstr "ãªã—" + +#: html/Elements/SelectEqualityOperator:38 +msgid "not equal to" +msgstr "ç­‰ã—ããªã„" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "open" +msgstr "é–‹ã" + +#: lib/RT/Group_Overlay.pm:199 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "ユーザー '%2' ã®ãƒ‘ーソナルグループ '%1' " + +#: lib/RT/Group_Overlay.pm:207 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "キュー %1 %2" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "rejected" +msgstr "æ‹’å¦ã•れã¾ã—ãŸ" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "resolved" +msgstr "分解ã•れã¾ã—ãŸ" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "ç§’" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "stalled" +msgstr "æ­¢ã¾ã‚Šã¾ã—ãŸ" + +#: lib/RT/Group_Overlay.pm:202 +#. ($self->Type) +msgid "system %1" +msgstr "システム %1" + +#: lib/RT/Group_Overlay.pm:213 +#. ($self->Type) +msgid "system group '%1'" +msgstr "システムグループ '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:42 +msgid "the calling component did not specify why" +msgstr "呼ã³å‡ºã—ã¦ã„るコンãƒãƒ¼ãƒãƒ³ãƒˆãŒãªãœæ¬¡ã®ã‚ˆã†ãªã“ã¨ãŒèµ·ã“ã‚‹ã®ã‹ç‰¹å®šã§ãã¾ã›ã‚“ã§ã—ãŸ" + +#: lib/RT/Group_Overlay.pm:210 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "ãƒã‚±ãƒƒãƒˆã€€#%1 %2" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "" + +#: lib/RT/Group_Overlay.pm:216 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "表示ã•れãªã„グループ %1" + +#: lib/RT/Group_Overlay.pm:191 +#. ($user->Object->Name) +msgid "user %1" +msgstr "ユーザー %1" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "週" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "テンプレート %1ã¨" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "å¹´" + +#: NOT FOUND IN SOURCE +msgid "ニックãƒãƒ¼ãƒ " +msgstr "" + diff --git a/rt/lib/RT/I18N/nl.po b/rt/lib/RT/I18N/nl.po new file mode 100644 index 000000000..0c3549914 --- /dev/null +++ b/rt/lib/RT/I18N/nl.po @@ -0,0 +1,4819 @@ +msgid "" +msgstr "" +"Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +msgid "#" +msgstr "#" + +#: html/Admin/Queues/Scrip.html:55 +#. ($QueueObj->id) +msgid "#%1" +msgstr "" +#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 +#. ($Ticket->Id, $Ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "#%1: %2" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "%1 %2" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($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:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "%1 %2 toegevoegd" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "%1 %2 geleden" + +#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 %2 veranderd naar %3" + +#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "%1 %2 verwijderd" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 of group %3" +msgstr "" + +#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 with template %3" +msgstr "%1 %2 met sjabloon %3" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "%1 (%2) %3 dit ticket\\n" + +#: html/Search/Listing.html:57 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "" + +#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "%1 - Een argument om door te geven aan %2" + +#: bin/rt-crontool:185 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - Uitvoer status herzieningen naar STDOUT" + +#: bin/rt-crontool:179 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - Specificeer de actie module die u wenst te gebruiken" + +#: bin/rt-crontool:173 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - Specificeer de conditie module die u wenst te gebruiken" + +#: bin/rt-crontool:166 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - Specificeer de zoek module die u wenst te gebruiken" + +#: lib/RT/ScripAction_Overlay.pm:122 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "%1 ScripAction geladen" + +#: lib/RT/Ticket_Overlay.pm:3471 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "%1 toegevoegd als waarde voor %2" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on" +msgstr "%1 aliassen hebben een TicketId nodig om mee te werken" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on " +msgstr "%1 aliassen hebben een TicketId nodig om mee te werken" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on (from %2) %3" +msgstr "%1 aliassen hebben een TicketId nodig om mee te werken (van %2) %3" + +#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#. ($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:52 lib/RT/Transaction_Overlay.pm:483 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 door %2" + +#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#. ($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 veranderd van %2 naar %3" + +#: lib/RT/Interface/Web.pm:857 +msgid "%1 could not be set to %2." +msgstr "%1 kon niet veranderd worden naar %2" + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "%1 kon geen transactie initiëren (%2)" + +#: lib/RT/Ticket_Overlay.pm:2813 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 kon status niet veranderen naar opgelost. RT's Database zou inconsistent kunnen zijn" + +#: html/Elements/MyTickets:25 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "De %1 hoogste prioriteit tickets die ik bezit..." + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "De %1 hoogste prioriteit tickets waarom ik verzocht heb..." + +#: bin/rt-crontool:161 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "%1 is een gereedschap om te reageren op tickets van een extern rooster programma, zoals cron" + +#: lib/RT/Queue_Overlay.pm:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 is niet langer een %2 voor deze rij" + +#: lib/RT/Ticket_Overlay.pm:1570 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 is niet langer een %2 voor dit ticket" + +#: lib/RT/Ticket_Overlay.pm:3527 +#. ($args{'Value'}, $cf->Name) +msgid "%1 is no longer a value for custom field %2" +msgstr "%1 is niet langer een waarde voor specifiek veld %2" + +#: NOT FOUND IN SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "%1 is niet een geldig Rij id" + +#: html/Ticket/Elements/ShowBasics:36 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 min" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "%1 niet afgebeeld" + +#: html/User/Elements/DelegateRights:76 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "%1 rechten" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "%1 gelukt\\n" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "%1 type onbekend voor $MessageId" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "%1 type onbekend voor %2" + +#: NOT FOUND IN SOURCE +msgid "%1 was created without a CurrentUser\\n" +msgstr "" + +#: lib/RT/Action/ResolveMembers.pm:42 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 zal alle leden van een opgelost groep ticket omzetten." + +#: NOT FOUND IN SOURCE +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:435 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: geen aanhechting gespecificeerd" + +#: html/Ticket/Elements/ShowTransaction:102 +#. ($size) +msgid "%1b" +msgstr "%1b" + +#: html/Ticket/Elements/ShowTransaction:99 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "%1k" + +#: lib/RT/Ticket_Overlay.pm:1140 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "'%1 is een ongeldige waarde voor status" + +#: NOT FOUND IN SOURCE +msgid "'%1' not a recognized action. " +msgstr "'%1' onherkende actie. " + +#: 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/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +msgid "(Check box to delete)" +msgstr "(Vink hokje af om te verwijderen)" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "" + +#: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Vul ticket ids of URLs in, gescheiden door spaties)" + +#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#. ($RT::CorrespondAddress) +#. ($RT::CommentAddress) +msgid "(If left blank, will default to %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "(Geen Waarde)" + +#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +msgid "(No custom fields)" +msgstr "" + +#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +msgid "(No members)" +msgstr "(Geen Leden)" + +#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +msgid "(No scrips)" +msgstr "(Geen scrips)" + +#: html/Admin/Elements/EditTemplates:31 +msgid "(No templates)" +msgstr "" + +#: html/Ticket/Update.html:85 +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 "" + +#: 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 "(Stuurt een blinde carbon copy van deze herziening naar een comma gescheiden lijst van email adressen. Wie er toekomstige herzieningen zal ontvangen, zal <b>niet</b> veranderen.)" + +#: html/Ticket/Create.html:79 +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 "" + +#: html/Ticket/Update.html:81 +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 "" + +#: 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 "(Stuurt een carbon copy van deze herziening naar een comma gescheiden lijst van email adressen. Wie er toekomstige herzieningen zal ontvangen, zal <b>niet</b> veranderen.)" + +#: html/Ticket/Create.html:69 +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 "" + +#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +msgid "(empty)" +msgstr "(leeg)" + +#: html/Admin/Users/index.html:39 +msgid "(no name listed)" +msgstr "" + +#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +msgid "(no subject)" +msgstr "(geen onderwerp)" + +#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +msgid "(no value)" +msgstr "(geen waarde)" + +#: html/Ticket/Elements/EditLinks:116 +msgid "(only one ticket)" +msgstr "(slechts één ticket)" + +#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +msgid "(pending approval)" +msgstr "(wacht op goedkeuring)" + +#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +msgid "(pending other tickets)" +msgstr "(wacht op andere tickets)" + +#: NOT FOUND IN SOURCE +msgid "(requestor's group)" +msgstr "" + +#: html/Admin/Users/Modify.html:50 +msgid "(required)" +msgstr "(verplicht)" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "(untitled)" +msgstr "(zonder titel)" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "" + +#: html/Ticket/Elements/ShowBasics:32 +msgid "<% $Ticket->Status%>" +msgstr "<% $Ticket->Status%>" + +#: html/Elements/SelectTicketTypes:27 +msgid "<% $_ %>" +msgstr "<% $_ %>" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"Nieuw ticket in\"> %1" + +#: NOT FOUND IN SOURCE +msgid "??????" +msgstr "" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "Een leeg sjabloon" + +#: NOT FOUND IN SOURCE +msgid "ACE Deleted" +msgstr "ACE Verwijderd" + +#: NOT FOUND IN SOURCE +msgid "ACE Loaded" +msgstr "ACE Geladen" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be found" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +msgid "ACE not found" +msgstr "ACE niet gevonden" + +#: lib/RT/ACE_Overlay.pm:831 +msgid "ACEs can only be created and deleted." +msgstr "ACEs kunnen allen gecreëerd of verwijderd worden." + +#: bin/rt-commit-handler:755 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Afbraak om ongewenste ticket aanpassing te voorkomen.\\n" + +#: html/User/Elements/Tabs:32 +msgid "About me" +msgstr "" + +#: html/Admin/Users/Modify.html:80 +msgid "Access control" +msgstr "Toegangscontrole" + +#: html/Admin/Elements/EditScrip:57 +msgid "Action" +msgstr "Actie" + +#: lib/RT/Scrip_Overlay.pm:147 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "Actie %1 niet gevonden" + +#: bin/rt-crontool:123 +msgid "Action committed." +msgstr "Actie uitgevoerd." + +#: bin/rt-crontool:119 +msgid "Action prepared..." +msgstr "Actie voorbereid..." + +#: html/Search/Bulk.html:92 +msgid "Add AdminCc" +msgstr "Voeg AdminCc toe" + +#: html/Search/Bulk.html:90 +msgid "Add Cc" +msgstr "Voeg Cc toe" + +#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +msgid "Add More Files" +msgstr "Voeg Meer Bestanden Toe" + +#: NOT FOUND IN SOURCE +msgid "Add Next State" +msgstr "" + +#: html/Search/Bulk.html:88 +msgid "Add Requestor" +msgstr "Voeg Verzoeker Toe" + +#: NOT FOUND IN SOURCE +msgid "Add a Scrip to this queue" +msgstr "Voeg een Scrip toe aan deze rij" + +#: 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:55 +msgid "Add a scrip which will apply to all queues" +msgstr "Voeg een scrip toe welke voor alle rijen zal gelden" + +#: html/Search/Bulk.html:118 +msgid "Add comments or replies to selected tickets" +msgstr "Voeg commentaar of reacties toe aan geselecteerde tickets" + +#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +msgid "Add members" +msgstr "Voeg leden toe" + +#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +msgid "Add new watchers" +msgstr "Voeg nieuwe toeschouwers toe" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "VoegVolgendeStaatToe" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "Hoofd toegevoegd als %1 voor deze rij" + +#: lib/RT/Ticket_Overlay.pm:1454 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "Hoofd toegevoegd als %1 voor dit ticket" + +#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +msgid "Address1" +msgstr "Adres1" + +#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +msgid "Address2" +msgstr "Adres2" + +#: html/Ticket/Create.html:74 +msgid "Admin Cc" +msgstr "Beheerder Cc" + +#: etc/initialdata:274 +msgid "Admin Comment" +msgstr "" + +#: etc/initialdata:256 +msgid "Admin Correspondence" +msgstr "" + +#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +msgid "Admin queues" +msgstr "Beheerder rijen" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "Beheerder gebruikers" + +#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +msgid "Admin/Global configuration" +msgstr "Beheerder/Globale configuratie" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "Beheerder/Groepen" + +#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +msgid "Admin/Queue/Basics" +msgstr "Beheerder/Rij/Basis" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +msgid "AdminCc" +msgstr "BeheerderCc" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "BeheerderCommentaar" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "BeheerderCorrespondentie" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "AdminCustomFields" +msgstr "BeheerderSpecifiekeVelden" + +#: lib/RT/Group_Overlay.pm:146 +msgid "AdminGroup" +msgstr "BeheerderGroep" + +#: lib/RT/Group_Overlay.pm:148 +msgid "AdminGroupMembership" +msgstr "BeheerderGroepLidmaatschap" + +#: lib/RT/System.pm:59 +msgid "AdminOwnPersonalGroups" +msgstr "BeheerderBezitPersoonlijkeGroepen" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "AdminQueue" +msgstr "BeheerderRij" + +#: lib/RT/System.pm:60 +msgid "AdminUsers" +msgstr "BeheerderGebruikers" + +#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +msgid "Administrative Cc" +msgstr "Administratieve Cc" + +#: NOT FOUND IN SOURCE +msgid "Admins" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "Uitgebreid Zoeken" + +#: html/Elements/SelectDateRelation:36 +msgid "After" +msgstr "Nadat" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "Leeftijd" + +#: NOT FOUND IN SOURCE +msgid "Alias" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias for" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:96 +msgid "All Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:53 +msgid "All Queues" +msgstr "Alle Rijen" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "Stuurt altijd een bericht naar de verzoekers ongeacht de verzender van het bericht" + +#: html/Elements/Tabs:58 +msgid "Approval" +msgstr "Goedkeuring" + +#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#. ($Ticket->Id, $Ticket->Subject) +#. ($ticket->id, $msg) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Approval #%1: %2" +msgstr "Goedkeuring #%1: %2" + +#: html/Approvals/index.html:54 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "Goedkeuring #%1: Notities niet bewaard vanwege een systeem fout" + +#: html/Approvals/index.html:52 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "Goedkeuring #%1: Notities bewaard" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "Goedkeuring Details" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "Goedkeuring diagram" + +#: html/Approvals/Elements/Approve:45 +msgid "Approve" +msgstr "Goedkeuring" + +#: etc/initialdata:431 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "Notities van de goedkeurer: %1" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "Ggk." + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "april" + +#: html/Elements/SelectSortOrder:35 +msgid "Ascending" +msgstr "Oplopend" + +#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +msgid "Attach" +msgstr "Aanhechten" + +#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +msgid "Attach file" +msgstr "Hecht bestand aan" + +#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +msgid "Attached file" +msgstr "Aangehecht bestand" + +#: html/SelfService/Attachment/dhandler:36 +msgid "Attachment '%1' could not be loaded" +msgstr "Aanhechting '%1' kon niet geladen worden" + +#: lib/RT/Transaction_Overlay.pm:443 +msgid "Attachment created" +msgstr "Aanhechting gecreëerd" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "Aanhechting bestandsnaam" + +#: html/Ticket/Elements/ShowAttachments:26 +msgid "Attachments" +msgstr "Aanhechtingen" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "aug." + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "augustus" + +#: html/Admin/Elements/ModifyUser:66 +msgid "AuthSystem" +msgstr "AuthenticatieSysteem" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "Automatisch-antwoord" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "Automatisch-antwoordAanVerzoekers" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "Ongeldige PGP Signatuur: %1\\n" + +#: html/SelfService/Attachment/dhandler:40 +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "Ongeldig aanhechtings id. Kon aanhechting '%1' niet vinden\\n" + +#: bin/rt-commit-handler:827 +#. ($val) +msgid "Bad data in %1" +msgstr "Ongeldige data in %1" + +#: html/SelfService/Attachment/dhandler:43 +#. ($trans, $AttachmentObj->TransactionId()) +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "Ongeldig transactienummer voor aanhechting. %1 zou %2 moeten zijn\\n" + +#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +msgid "Basics" +msgstr "Basis" + +#: html/Ticket/Update.html:83 +msgid "Bcc" +msgstr "Bcc" + +#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +msgid "Be sure to save your changes" +msgstr "Zorg ervoor dat u uw veranderingen bewaard" + +#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +msgid "Before" +msgstr "Voorheen" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "Begin Goedkeuring" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "Blanco" + +#: html/Search/Listing.html:79 +msgid "Bookmarkable URL for this search" +msgstr "XXX URL voor deze zoekopdracht" + +#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +msgid "Brief headers" +msgstr "Korte koppen" + +#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +msgid "Bulk ticket update" +msgstr "Bulk ticketherziening" + +#: lib/RT/User_Overlay.pm:1331 +msgid "Can not modify system users" +msgstr "Kan systeemgebruikers niet wijzigen" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Can this principal see this queue" +msgstr "Kan dit hoofd deze rij zien" + +#: lib/RT/CustomFieLd_Overlay.pm:144 +msgid "Can't add a custom field value without a name" +msgstr "Kan geen specifiek veld toevoegen zonder een naam" + +#: lib/RT/Link_Overlay.pm:132 +msgid "Can't link a ticket to itself" +msgstr "Kan een ticket niet koppelen aan zichzelf" + +#: lib/RT/Ticket_Overlay.pm:2787 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "Kan niet samenvoegen met een reeds samengevoegd ticket. U zou deze boodschap nooit mogen krijgen" + +#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +msgid "Can't specifiy both base and target" +msgstr "Kan niet zowel basis als doel specificeren" + +#: html/autohandler:112 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "Kan gebruiker %1 niet aanmaken" + +#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +msgid "Cc" +msgstr "Cc" + +#: html/SelfService/Prefs.html:31 +msgid "Change password" +msgstr "Wijzig wachtwoord" + +#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +msgid "Check box to delete" +msgstr "Vink hokje af om te verwijderen" + +#: html/Admin/Elements/SelectRights:31 +msgid "Check box to revoke right" +msgstr "Vink hokje af om recht te verwijderen" + +#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +msgid "Children" +msgstr "Kinderen" + +#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +msgid "City" +msgstr "Stad" + +#: html/Ticket/Elements/ShowDates:47 +msgid "Closed" +msgstr "" + +#: html/SelfService/Elements/Tabs:60 +msgid "Closed requests" +msgstr "Gesloten verzoeken" + +#: NOT FOUND IN SOURCE +msgid "Code" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "Commando niet begrepen!\\n" + +#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +msgid "Comment" +msgstr "Commentaar" + +#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +msgid "Comment Address" +msgstr "Commentaar Adres" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "Commentaar niet bewaard" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Comment on tickets" +msgstr "Commentaar op tickets" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "CommentOnTicket" +msgstr "CommentaarOpTicket" + +#: html/Admin/Elements/ModifyUser:35 +msgid "Comments" +msgstr "Commentaar" + +#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +msgid "Comments (Not sent to requestors)" +msgstr "Commentaar (Wordt niet verstuurd aan verzoekers)" + +#: html/Search/Bulk.html:122 +msgid "Comments (not sent to requestors)" +msgstr "Commentaar (Wordt niet verstuurd aan verzoekers)" + +#: html/Elements/ViewUser:27 +#. ($name) +msgid "Comments about %1" +msgstr "Commentaar over %1" + +#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +msgid "Comments about this user" +msgstr "Commentaar over deze gebruiker" + +#: lib/RT/Transaction_Overlay.pm:545 +msgid "Comments added" +msgstr "Commentaar toegevoegd" + +#: lib/RT/Action/Generic.pm:140 +msgid "Commit Stubbed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "Compilatie Restricties" + +#: html/Admin/Elements/EditScrip:41 +msgid "Condition" +msgstr "Voorwaarde" + +#: bin/rt-crontool:109 +msgid "Condition matches..." +msgstr "Voorwaarde komt overeen..." + +#: lib/RT/Scrip_Overlay.pm:160 +msgid "Condition not found" +msgstr "Voorwaarde niet gevonden" + +#: html/Elements/Tabs:52 +msgid "Configuration" +msgstr "Configuratie" + +#: html/SelfService/Prefs.html:33 +msgid "Confirm" +msgstr "Bevestig" + +#: html/Admin/Elements/ModifyUser:60 +msgid "ContactInfoSystem" +msgstr "ContactInfoSysteem" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "Contact datum '%1' kon niet ontleed worden" + +#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +msgid "Content" +msgstr "Inhoud" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "" + +#: etc/initialdata:266 +msgid "Correspondence" +msgstr "Correspondentie" + +#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +msgid "Correspondence Address" +msgstr "Correspondentieadres" + +#: lib/RT/Transaction_Overlay.pm:541 +msgid "Correspondence added" +msgstr "Correspondentie toegevoegd" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "Correspondentie niet bewaard" + +#: lib/RT/Ticket_Overlay.pm:3458 +msgid "Could not add new custom field value for ticket. " +msgstr "Kon nieuw specifiek veld niet toevoegen voor dit ticket. " + +#: NOT FOUND IN SOURCE +msgid "Could not add new custom field value for ticket. %1 " +msgstr "Kon nieuw specifiek veld niet toevoegen voor dit ticket. %1" + +#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +msgid "Could not change owner. " +msgstr "Kon eigenaar niet wijzigen. " + +#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#. ($msg) +msgid "Could not create CustomField" +msgstr "Kon SpecifiekVeld niet creëren" + +#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +msgid "Could not create group" +msgstr "Kon groep niet creëren" + +#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#. ($msg) +msgid "Could not create template: %1" +msgstr "Kon sjabloon niet creëren: %1" + +#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +msgid "Could not create ticket. Queue not set" +msgstr "Kon ticket niet creëren. Rij niet ingesteld" + +#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +msgid "Could not create user" +msgstr "Kon gebruiker niet creëren" + +#: NOT FOUND IN SOURCE +msgid "Could not create watcher for requestor" +msgstr "Kon toeschouwer niet creëren voor verzoeker" + +#: NOT FOUND IN SOURCE +msgid "Could not find a ticket with id %1" +msgstr "Kon geen ticket vinden met id %1" + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "Kon groep %1 niet vinden. " + +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +msgid "Could not find or create that user" +msgstr "Kon deze gebruiker niet vinden of creëren" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +msgid "Could not find that principal" +msgstr "Kon dat hoofd niet vinden" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "Kon gebruiker %1 niet vinden." + +#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +msgid "Could not load group" +msgstr "Kon groep niet laden" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "Kon dat hoofd geen %1 maken voor deze rij" + +#: lib/RT/Ticket_Overlay.pm:1443 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "Kon dat hoofd geen %1 maken voor dit ticket" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "Kon dat hoofd niet verwijderen als %1 voor deze rij" + +#: lib/RT/Ticket_Overlay.pm:1559 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "Kon dat hoofd niet verwijderen als %1 voor dit ticket" + +#: lib/RT/Group_Overlay.pm:985 +msgid "Couldn't add member to group" +msgstr "Kon lid niet toevoegen aan groep" + +#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "Kon geen transactie creëren: %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't figure out what to do from gpg's reply\\n" +msgstr "Kon niet bepalen welke actie te ondernemen aan de hand van gpg's antwoord\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find group\\n" +msgstr "Kon groep niet vinden\\n" + +#: lib/RT/Interface/Web.pm:866 +msgid "Couldn't find row" +msgstr "Kon rij niet vinden" + +#: lib/RT/Group_Overlay.pm:959 +msgid "Couldn't find that principal" +msgstr "Kon dat hoofd niet vinden" + +#: lib/RT/CustomField_Overlay.pm:175 +msgid "Couldn't find that value" +msgstr "Kon die waarde niet vinden" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find that watcher" +msgstr "Kon die toeschouwer niet vinden" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find user\\n" +msgstr "Kon gebruiker niet vinden\\n" + +#: lib/RT/CurrentUser.pm:112 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Kon %1 niet laden uit de gebruikersdatabase.\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load KeywordSelects." +msgstr "Kon KeywordSelects niet laden." + +#: NOT FOUND IN SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "Kon RT configuratie bestand niet laden '%1' %2" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Scrips." +msgstr "Kon Scrips niet laden" + +#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#. ($id) +msgid "Couldn't load group %1" +msgstr "Kon groep %1 niet laden" + +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +msgid "Couldn't load link" +msgstr "Kon link niet laden" + +#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#. ($id) +msgid "Couldn't load queue" +msgstr "Kon rij niet laden" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "Kon rij %1 niet laden " + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "Kon scrip niet laden" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "Kon sjabloon niet laden" + +#: html/Admin/Users/Prefs.html:79 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "Kon die gebruiker (%1) niet laden" + +#: html/SelfService/Display.html:166 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Kon ticket '%1' niet laden" + +#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +msgid "Country" +msgstr "Land" + +#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +msgid "Create" +msgstr "Creëer" + +#: etc/initialdata:128 +msgid "Create Tickets" +msgstr "Creëer Tickets" + +#: html/Admin/Elements/EditCustomField:58 +msgid "Create a CustomField" +msgstr "Creëer een SpecifiekVeld" + +#: html/Admin/Queues/CustomField.html:48 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:48 +msgid "Create a CustomField which applies to all queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create a new Custom Field" +msgstr "Creëer een niuew Specifiek Veld" + +#: NOT FOUND IN SOURCE +msgid "Create a new global Scrip" +msgstr "Creëer een nieuw globaal Scrip" + +#: NOT FOUND IN SOURCE +msgid "Create a new global scrip" +msgstr "" + +#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +msgid "Create a new group" +msgstr "Creëer een nieuwe groep" + +#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +msgid "Create a new personal group" +msgstr "Creëer een nieuwe persoonlijke groep" + +#: NOT FOUND IN SOURCE +msgid "Create a new queue" +msgstr "Creëer een nieuwe rij" + +#: NOT FOUND IN SOURCE +msgid "Create a new scrip" +msgstr "Creëer een nieuw scrip" + +#: NOT FOUND IN SOURCE +msgid "Create a new template" +msgstr "Creëer een nieuw template" + +#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +msgid "Create a new ticket" +msgstr "Creëer een nieuw ticket" + +#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +msgid "Create a new user" +msgstr "Creëer een nieuwe gebruiker" + +#: html/Admin/Queues/Modify.html:103 +msgid "Create a queue" +msgstr "Creëer een rij" + +#: NOT FOUND IN SOURCE +msgid "Create a queue called" +msgstr "Creëer een rij genaamd" + +#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +msgid "Create a request" +msgstr "Creëer een verzoek" + +#: html/Admin/Queues/Scrip.html:59 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "Creëer een scrip voor rij %1" + +#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +msgid "Create a template" +msgstr "Creëer een sjabloon" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1 / %2 / %3 " +msgstr "Creatie mislukt: %1 / %2 / %3 " + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1/%2/%3" +msgstr "" + +#: etc/initialdata:130 +msgid "Create new tickets based on this scrip's template" +msgstr "Creëer nieuwe tickets gebaseerd op het sjabloon van dit scrip" + +#: html/SelfService/Create.html:81 +msgid "Create ticket" +msgstr "Creëer ticket" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Create tickets in this queue" +msgstr "Creëer tickets in deze rij" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Create, delete and modify custom fields" +msgstr "Creëer, verwijder en wijzig specifieke velden" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "Create, delete and modify queues" +msgstr "Creëer, verwijder en wijzig rijen" + +#: NOT FOUND IN SOURCE +msgid "Create, delete and modify the members of any user's personal groups" +msgstr "" + +#: lib/RT/System.pm:59 +msgid "Create, delete and modify the members of personal groups" +msgstr "Creëer, verwijder en wijzig de leden van persoonlijke groepen" + +#: lib/RT/System.pm:60 +msgid "Create, delete and modify users" +msgstr "Creëer, verwijder en wijzig gebruikers" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "CreateTicket" +msgstr "CreëerTicket" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +msgid "Created" +msgstr "Gecreëerd" + +#: html/Admin/Elements/EditCustomField:71 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "SpecifiekVeld %1 gecreëerd" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "Sjabloon %1 Gecreëerd" + +#: html/Ticket/Elements/EditLinks:28 +msgid "Current Relationships" +msgstr "Huidige Relaties" + +#: html/Admin/Elements/EditScrips:30 +msgid "Current Scrips" +msgstr "Huidige Scrips" + +#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +msgid "Current members" +msgstr "Huidige leden" + +#: html/Admin/Elements/SelectRights:29 +msgid "Current rights" +msgstr "Huidige rechten" + +#: html/Search/Listing.html:71 +msgid "Current search criteria" +msgstr "" + +#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +msgid "Current watchers" +msgstr "Huidige toeschouwers" + +#: html/Admin/Global/CustomField.html:55 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "" + +#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +msgid "Custom Fields" +msgstr "Specifieke Velden" + +#: html/Admin/Elements/EditScrip:73 +msgid "Custom action cleanup code" +msgstr "Specifieke actie opruim code" + +#: html/Admin/Elements/EditScrip:65 +msgid "Custom action preparation code" +msgstr "Specifieke actie voorbereidings code" + +#: html/Admin/Elements/EditScrip:49 +msgid "Custom condition" +msgstr "Specifieke voorwaarde" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "Specifiek veld %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "Specifiek veld %1 heeft een waarde." + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "Specifiek veld %1 heeft geen waarde." + +#: lib/RT/Ticket_Overlay.pm:3360 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Specifiek veld %1 niet gevonden" + +#: html/Admin/Elements/EditCustomFields:197 +msgid "Custom field deleted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3510 +msgid "Custom field not found" +msgstr "Specifiek veld niet gevonden" + +#: lib/RT/CustomField_Overlay.pm:283 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "Specifiek veld waarde %1 kon niet gevonden worden voor specifiek veld %2" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "Specifiek veld waarde veranderd van %1 naar %2" + +#: lib/RT/CustomField_Overlay.pm:185 +msgid "Custom field value could not be deleted" +msgstr "Specifiek veld waarde kon niet verwijderd worden" + +#: lib/RT/CustomField_Overlay.pm:289 +msgid "Custom field value could not be found" +msgstr "Specifiek veld waarde kon niet gevonden worden" + +#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +msgid "Custom field value deleted" +msgstr "Specifiek veld waarde verwijderd" + +#: lib/RT/Transaction_Overlay.pm:550 +msgid "CustomField" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "Data fout" + +#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +msgid "Dates" +msgstr "Data" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "dec." + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "december" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "Standaard Auto-antwoord Sjabloon" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "" + +#: etc/initialdata:275 +msgid "Default admin comment template" +msgstr "Standaard admin commentaar sjabloon" + +#: etc/initialdata:257 +msgid "Default admin correspondence template" +msgstr "Standaard admin correspondentie sjabloon" + +#: etc/initialdata:267 +msgid "Default correspondence template" +msgstr "Standaard correspondentie sjabloon" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "Standaard transactie sjabloon" + +#: lib/RT/Transaction_Overlay.pm:645 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "Standaard: %1/%2 verandered van %3 naar %4" + +#: html/User/Delegation.html:25 html/User/Delegation.html:28 +msgid "Delegate rights" +msgstr "Delegeer rechten" + +#: lib/RT/System.pm:63 +msgid "Delegate specific rights which have been granted to you." +msgstr "Delegeer specifieke rechten die aan u verleend zijn." + +#: lib/RT/System.pm:63 +msgid "DelegateRights" +msgstr "DelegeerRechten" + +#: html/User/Elements/Tabs:38 +msgid "Delegation" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "Delete tickets" +msgstr "Verwijder tickets" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "DeleteTicket" +msgstr "VerwijderTicket" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "Het verwijderen van dit object zou de referentiële integriteit kunnen ondermijnen" + +#: lib/RT/Queue_Overlay.pm:292 +msgid "Deleting this object would break referential integrity" +msgstr "Het verwijderen van dit object zou de referentiële integriteit ondermijnen" + +#: lib/RT/User_Overlay.pm:430 +msgid "Deleting this object would violate referential integrity" +msgstr "Het verwijderen van dit object zou de referentiële integriteit ondermijnen" + +#: NOT FOUND IN SOURCE +msgid "Deleting this object would violate referential integrity." +msgstr "Het verwijderen van dit object zou de referentiële integriteit ondermijnen" + +#: NOT FOUND IN SOURCE +msgid "Deleting this object would violate referential integrity. That's bad." +msgstr "" + +#: html/Approvals/Elements/Approve:46 +msgid "Deny" +msgstr "Wijs af" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +msgid "Depended on by" +msgstr "Afhankelijkheid van" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "Afhankelijkheden: \\n" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +msgid "Depends on" +msgstr "Is afhankelijk van" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "" + +#: html/Elements/SelectSortOrder:35 +msgid "Descending" +msgstr "Aflopend" + +#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +msgid "Describe the issue below" +msgstr "Omschrijf onderstaande kwestie" + +#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +msgid "Description" +msgstr "Omschrijving" + +#: html/SelfService/Elements/MyRequests:44 +msgid "Details" +msgstr "Details" + +#: html/Ticket/Elements/Tabs:85 +msgid "Display" +msgstr "Toon" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Display Access Control List" +msgstr "Toon Toegangs Controle Lijst" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Display Scrip templates for this queue" +msgstr "Toon Scrip sjablonen voor deze rij" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Display Scrips for this queue" +msgstr "Toon Scrips voor deze rij" + +#: html/Ticket/Elements/ShowHistory:35 +msgid "Display mode" +msgstr "Toon modus" + +#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 +#. ($Ticket->id) +msgid "Display ticket #%1" +msgstr "Toon ticket #%1" + +#: lib/RT/System.pm:54 +msgid "Do anything and everything" +msgstr "Doe iets en alles" + +#: html/Elements/Refresh:30 +msgid "Don't refresh this page." +msgstr "Ververs deze pagina niet" + +#: html/Search/Elements/PickRestriction:114 +msgid "Don't show search results" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "Download" +msgstr "Download" + +#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +msgid "Due" +msgstr "Verwacht" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "Verwachte datum '%1' kon niet ontleed worden" + +#: bin/rt-commit-handler:754 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "FOUT: Kon ticket '%1' niet laden: %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "Wijzig" + +#: NOT FOUND IN SOURCE +msgid "Edit Conditions" +msgstr "" + +#: html/Admin/Queues/CustomFields.html:45 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "Wijzig Specifieke Velden voor %1" + +#: html/Ticket/ModifyLinks.html:36 +msgid "Edit Relationships" +msgstr "Wijzig Relaties" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "" + +#: html/Admin/Global/index.html:46 +msgid "Edit system templates" +msgstr "Wijzig systeem sjablonen" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "Wijzig sjablonen voor %1" + +#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "Bezig met wijzigen van de configuratie voor rij %1" + +#: html/Admin/Elements/ModifyUser:25 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "Bezit met het wijzigen van de configuratie voor gebruiker %1" + +#: html/Admin/Elements/EditCustomField:74 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Bezit met het wijzigen van SpecifiekVeld %1" + +#: html/Admin/Groups/Members.html:32 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Bezit met het wijzigen van lidmaatschap voor groep %1" + +#: html/User/Groups/Members.html:129 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "Bezit met het wijzigen van lidmaatschap voor persoonlijke groep %1" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "Bezit met het wijzigen van sjabloon %1" + +#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +msgid "Either base or target must be specified" +msgstr "Of basis of doel moeten gespecificeerd zijn" + +#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +msgid "Email" +msgstr "E-mail" + +#: lib/RT/User_Overlay.pm:188 +msgid "Email address in use" +msgstr "E-mailadres in gebruik" + +#: html/Admin/Elements/ModifyUser:42 +msgid "EmailAddress" +msgstr "E-mailAdres" + +#: html/Admin/Elements/ModifyUser:54 +msgid "EmailEncoding" +msgstr "E-mailCodering" + +#: html/Admin/Elements/EditCustomField:36 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "" + +#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "" + +#: html/Admin/Queues/Modify.html:84 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Actief (Het uitvinken van dit hokje zal deze rij deactiveren)" + +#: html/Admin/Elements/EditCustomFields:99 +msgid "Enabled Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:56 +msgid "Enabled Queues" +msgstr "Actieve Rijen" + +#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "Actieve status %1" + +#: lib/RT/CustomField_Overlay.pm:361 +msgid "Enter multiple values" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:358 +msgid "Enter one value" +msgstr "" + +#: html/Ticket/Elements/EditLinks:112 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Vul tickets of URIs in om deze tickets aan te koppelen. Scheidt meerdere elementen met spaties." + +#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +msgid "Error" +msgstr "Fout" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Fout in paramaters naar Queue->AddWatcher" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Fout in paramaters naar Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1356 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Fout in paramaters naar Ticket->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1532 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Fout in paramaters naar Ticket->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "Iedereen" + +#: bin/rt-crontool:194 +msgid "Example:" +msgstr "Voorbeeld:" + +#: html/Admin/Elements/ModifyUser:64 +msgid "ExternalAuthId" +msgstr "ExternAuteurId" + +#: html/Admin/Elements/ModifyUser:58 +msgid "ExternalContactInfoId" +msgstr "ExternContactInfoId" + +#: html/Admin/Users/Modify.html:73 +msgid "Extra info" +msgstr "Extra informatie" + +#: lib/RT/User_Overlay.pm:302 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Kon de gebruikers pseudogroep 'Privileged' niet vinden." + +#: lib/RT/User_Overlay.pm:309 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Kon de gebruikers pseudogroep 'Unprivileged' niet vinden." + +#: bin/rt-crontool:138 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "Kon module %1 niet laden. (%2)" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "feb." + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "Uiteindelijke Prioriteit" + +#: lib/RT/Ticket_Overlay.pm:1162 +msgid "FinalPriority" +msgstr "UiteindelijkePrioriteit" + +#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +msgid "Find group whose" +msgstr "" + +#: html/Elements/Quicksearch:25 +msgid "Find new/open tickets" +msgstr "Zoek nieuwe/open tickets" + +#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +msgid "Find people whose" +msgstr "Zoek mensen wier" + +#: html/Search/Listing.html:108 +msgid "Find tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "Beëindig Goedkeuring" + +#: html/Ticket/Elements/Tabs:58 +msgid "First" +msgstr "Eerste" + +#: html/Search/Listing.html:41 +msgid "First page" +msgstr "Eerste pagina" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "Aap Noot Mies" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "Aap!" + +#: html/Search/Bulk.html:87 +msgid "Force change" +msgstr "" + +#: html/Search/Listing.html:106 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "" + +#: lib/RT/Interface/Web.pm:868 +msgid "Found Object" +msgstr "Gevonden Object" + +#: html/Admin/Elements/ModifyUser:44 +msgid "FreeformContactInfo" +msgstr "VrijevormContactInfo" + +#: lib/RT/CustomField_Overlay.pm:38 +msgid "FreeformMultiple" +msgstr "VrijevormMeerdere" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformSingle" +msgstr "" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "Vr." + +#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +msgid "Full headers" +msgstr "Volledige Kop" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "Bezig met het ophalen van de huidige gebruiker middels een pgp handtekening" + +#: lib/RT/Transaction_Overlay.pm:595 +#. ($New->Name) +msgid "Given to %1" +msgstr "Aan %1 gegeven" + +#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +msgid "Global" +msgstr "Globaal" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:38 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "Globaal sjabloon: %1" + +#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +msgid "Go!" +msgstr "Ga!" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "Goede pgp handtekening van %1\\n" + +#: html/Search/Listing.html:50 +msgid "Goto page" +msgstr "Ga naar pagina" + +#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +msgid "Goto ticket" +msgstr "Ga naar ticket" + +#: NOT FOUND IN SOURCE +msgid "Grand" +msgstr "" + +#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +msgid "Group" +msgstr "Groep" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "Groep %1 %2: %3" + +#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +msgid "Group Rights" +msgstr "Groeps rechten" + +#: lib/RT/Group_Overlay.pm:965 +msgid "Group already has member" +msgstr "Groep heeft al een lid" + +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "" + +#: html/Admin/Groups/Modify.html:77 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "Groep kon niet gecreërd worden: %1" + +#: lib/RT/Group_Overlay.pm:497 +msgid "Group created" +msgstr "Groep gecreërd" + +#: lib/RT/Group_Overlay.pm:1133 +msgid "Group has no such member" +msgstr "Groep heeft geen lid onder die naam" + +#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +msgid "Group not found" +msgstr "Groep niet gevonden" + +#: NOT FOUND IN SOURCE +msgid "Group not found.\\n" +msgstr "Groep niet gevonden.\\n" + +#: NOT FOUND IN SOURCE +msgid "Group not specified.\\n" +msgstr "Groep niet gespecificeerd.\\n" + +#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +msgid "Groups" +msgstr "Groepen" + +#: lib/RT/Group_Overlay.pm:971 +msgid "Groups can't be members of their members" +msgstr "Groepen kunnen geen leden zijn van hun leden" + +#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +msgid "Hello!" +msgstr "Hallo!" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "Hallo, %1" + +#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +msgid "History" +msgstr "Geschiedenis" + +#: html/Admin/Elements/ModifyUser:68 +msgid "HomePhone" +msgstr "ThuisNummer" + +#: html/Elements/Tabs:46 +msgid "Homepage" +msgstr "Homepage" + +#: lib/RT/Base.pm:74 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "" + +#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "Id" + +#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +msgid "Identity" +msgstr "Identiteit" + +#: etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "Als een goedkeuring afgewezen is, wijs het origineel af en verwijder hangende goedkeuringen" + +#: bin/rt-crontool:190 +msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." +msgstr "Als dit gereedschap setgid zou zijn, zou een kwaadwillende lokale gebruiker dit gereedschap kunnen gebruiken om administratieve toegang te verkrijgen tot RT" + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "If you've updated anything above, be sure to" +msgstr "Als u een van de bovenstaande elemented ververst heeft, zorg dan dat u" + +#: lib/RT/Interface/Web.pm:860 +msgid "Illegal value for %1" +msgstr "Illegale waarde voor %1" + +#: lib/RT/Interface/Web.pm:863 +msgid "Immutable field" +msgstr "Niet-wijzigbaar veld" + +#: html/Admin/Elements/EditCustomFields:74 +msgid "Include disabled custom fields in listing." +msgstr "" + +#: html/Admin/Queues/index.html:43 +msgid "Include disabled queues in listing." +msgstr "Neem inactieve rijen op in de weergave" + +#: html/Admin/Users/index.html:47 +msgid "Include disabled users in search." +msgstr "Neem inactieve gebruiker op in de zoek opdracht" + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "Initiële Prioriteit" + +#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +msgid "InitialPriority" +msgstr "InitiëlePrioriteit" + +#: lib/RT/ScripAction_Overlay.pm:105 +msgid "Input error" +msgstr "Invoer fout" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3729 +msgid "Internal Error" +msgstr "Interne Fout" + +#: lib/RT/Record.pm:143 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "Interne Fout: %1" + +#: lib/RT/Group_Overlay.pm:644 +msgid "Invalid Group Type" +msgstr "Ongeldig Groep Type" + +#: lib/RT/Principal_Overlay.pm:128 +msgid "Invalid Right" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "Ongeldig Type" + +#: lib/RT/Interface/Web.pm:865 +msgid "Invalid data" +msgstr "Ongeldige data" + +#: lib/RT/Ticket_Overlay.pm:438 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "Ongeldige eigenaar. Val terug op 'nobody'." + +#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "Ongeldige rij" + +#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +msgid "Invalid right" +msgstr "Ongeldige recht" + +#: lib/RT/Record.pm:118 +#. ($key) +msgid "Invalid value for %1" +msgstr "Ongeldige waarde voor %1" + +#: lib/RT/Ticket_Overlay.pm:3367 +msgid "Invalid value for custom field" +msgstr "Ongeldige waarde voor specifiek veld" + +#: lib/RT/Ticket_Overlay.pm:345 +msgid "Invalid value for status" +msgstr "Ongeldige waarde voor status" + +#: bin/rt-crontool:191 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "Het is ontzettend belangrijk dat onbevoorrechtigde gebruikers geen toestemming hebben om dit gereedschap te gebruiken." + +#: bin/rt-crontool:192 +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 "We stellen voor dat u een onbevoorrechtigde unix gebruiker aanmaakt met het juiste groep lidmaatschap en RT toegang om dit gereedschap te gebruiken." + +#: bin/rt-crontool:163 +msgid "It takes several arguments:" +msgstr "Het accepteerd meerdere argumenten:" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "Zaken die wachten op mijn goedkeuring" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "jan." + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "januari" + +#: lib/RT/Group_Overlay.pm:149 +msgid "Join or leave this group" +msgstr "Sluit u aan of verlaat deze groep" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "jul." + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "" + +#: html/Ticket/Elements/Tabs:99 +msgid "Jumbo" +msgstr "Jumbo" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "jun." + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "Sleutelwoord" + +#: html/Admin/Elements/ModifyUser:52 +msgid "Lang" +msgstr "Taal" + +#: html/Ticket/Elements/Tabs:73 +msgid "Last" +msgstr "Laatste" + +#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +msgid "Last Contact" +msgstr "Laatste Contact" + +#: html/Elements/SelectDateType:29 +msgid "Last Contacted" +msgstr "Laatst Gecontacteerd" + +#: html/Search/Elements/TicketHeader:41 +msgid "Last Notified" +msgstr "" + +#: html/Elements/SelectDateType:30 +msgid "Last Updated" +msgstr "Laatst Ververst" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "Over" + +#: html/Admin/Users/Modify.html:83 +msgid "Let this user access RT" +msgstr "Geef deze gebruiker toegang tot RT" + +#: html/Admin/Users/Modify.html:87 +msgid "Let this user be granted rights" +msgstr "Geef deze gebruiker rechten" + +#: NOT FOUND IN SOURCE +msgid "Limiting owner to %1 %2" +msgstr "Eigenaar wordt gelimieteerd tot %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Limiting queue to %1 %2" +msgstr "Rij wordt gelimiteerd tot %1 %2" + +#: lib/RT/Ticket_Overlay.pm:2697 +msgid "Link already exists" +msgstr "Koppeling bestaat al" + +#: lib/RT/Ticket_Overlay.pm:2709 +msgid "Link could not be created" +msgstr "Koppeling kon niet gecreëerd worden" + +#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#. ($TransString) +msgid "Link created (%1)" +msgstr "Koppeling gecreëerd (%1)" + +#: lib/RT/Ticket_Overlay.pm:2638 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Koppelink verwijderd (%1)" + +#: lib/RT/Ticket_Overlay.pm:2644 +msgid "Link not found" +msgstr "Koppeling niet gevonden" + +#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "Koppel ticket #%1" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "" + +#: html/Ticket/Elements/Tabs:97 +msgid "Links" +msgstr "Koppelingen" + +#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +msgid "Location" +msgstr "Locatie" + +#: lib/RT.pm:158 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "Log folder %1 niet gevonden of niet toegankelijk.\\n RT kan niet starten." + +#: html/Elements/Header:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "Aangemeld als %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +msgid "Login" +msgstr "Aanmelden" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "Afmelden" + +#: html/Search/Bulk.html:86 +msgid "Make Owner" +msgstr "Maak Eigenaar" + +#: html/Search/Bulk.html:102 +msgid "Make Status" +msgstr "Maak Status" + +#: html/Search/Bulk.html:109 +msgid "Make date Due" +msgstr "Maak verwachtingsdatum" + +#: html/Search/Bulk.html:110 +msgid "Make date Resolved" +msgstr "Make oplossingsdatum" + +#: html/Search/Bulk.html:107 +msgid "Make date Started" +msgstr "Maak startdatum" + +#: html/Search/Bulk.html:106 +msgid "Make date Starts" +msgstr "Maak datum gestart" + +#: html/Search/Bulk.html:108 +msgid "Make date Told" +msgstr "Maak datum gemeld" + +#: html/Search/Bulk.html:99 +msgid "Make priority" +msgstr "Maak prioriteit" + +#: html/Search/Bulk.html:100 +msgid "Make queue" +msgstr "Maak rij" + +#: html/Search/Bulk.html:98 +msgid "Make subject" +msgstr "Maak onderwerp" + +#: html/Admin/index.html:33 +msgid "Manage groups and group membership" +msgstr "Beheer groepen en groeplidmaatschap" + +#: html/Admin/index.html:39 +msgid "Manage properties and configuration which apply to all queues" +msgstr "Beheer eigenschappen en configuraties welke betrekking hebben op alle rijen" + +#: html/Admin/index.html:36 +msgid "Manage queues and queue-specific properties" +msgstr "Beheer rijen en rij-specifieke eigenschappen" + +#: html/Admin/index.html:30 +msgid "Manage users and passwords" +msgstr "Beheer gebruikers en wachtwoorden" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "maa." + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "maart" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "mei" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "mei." + +#: lib/RT/Group_Overlay.pm:982 +msgid "Member added" +msgstr "Lid toegevoegd" + +#: lib/RT/Group_Overlay.pm:1140 +msgid "Member deleted" +msgstr "Lid verwijderd" + +#: lib/RT/Group_Overlay.pm:1144 +msgid "Member not deleted" +msgstr "Lid niet verwijderd" + +#: html/Elements/SelectLinkType:26 +msgid "Member of" +msgstr "Lid van" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "LidVan" + +#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +msgid "Members" +msgstr "Leden" + +#: lib/RT/Ticket_Overlay.pm:2843 +msgid "Merge Successful" +msgstr "Samenvoeging Succesvol" + +#: lib/RT/Ticket_Overlay.pm:2804 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "Samenvoeging mislukt. Kon EffectiefId niet instellen" + +#: html/Ticket/Elements/EditLinks:115 +msgid "Merge into" +msgstr "Voeg samen in" + +#: html/Ticket/Update.html:102 +msgid "Message" +msgstr "Bericht" + +#: lib/RT/Interface/Web.pm:867 +msgid "Missing a primary key?: %1" +msgstr "Mist primaire sleutel?: %1" + +#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +msgid "Mobile" +msgstr "Mobiel" + +#: html/Admin/Elements/ModifyUser:72 +msgid "MobilePhone" +msgstr "MobieleTelefoon" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify Access Control List" +msgstr "Wijzig Toegangs Controle Lijst" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "Wijzig Specifiek Veld %1" + +#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +msgid "Modify Custom Fields which apply to all queues" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "Modify Scrip templates for this queue" +msgstr "Wijzit Scrip sjabloon voor deze rij" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "Modify Scrips for this queue" +msgstr "Wijzig Scrips voor deze rij" + +#: NOT FOUND IN SOURCE +msgid "Modify System ACLS" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify Template %1" +msgstr "Wijzig Sjabloon %1" + +#: html/Admin/Queues/CustomField.html:45 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:53 +msgid "Modify a CustomField which applies to all queues" +msgstr "" + +#: html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "Wijzig een scrip voor deze rij %1" + +#: html/Admin/Global/Scrip.html:48 +msgid "Modify a scrip which applies to all queues" +msgstr "Wijzig een scrip welke betrekking heeft op alle rijen" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "Wijzig data voor # %1" + +#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Wijzig data voor #%1" + +#: html/Ticket/ModifyDates.html:35 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Wijzig data voor ticket # %1" + +#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +msgid "Modify global group rights" +msgstr "Wijzig globale groepsrechten" + +#: html/Admin/Global/GroupRights.html:33 +msgid "Modify global group rights." +msgstr "Wijzig globale groepsrechten" + +#: 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:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +msgid "Modify global user rights" +msgstr "" + +#: html/Admin/Global/UserRights.html:33 +msgid "Modify global user rights." +msgstr "Wijzig globale gebruikersrechten" + +#: lib/RT/Group_Overlay.pm:146 +msgid "Modify group metadata or delete group" +msgstr "Wijzig groepsmetadata of verwijder groep" + +#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#. ($GroupObj->Name) +msgid "Modify group rights for group %1" +msgstr "Wijzig groepsrechten voor groep %1" + +#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "Wijzig groepsrechten voor rij %1" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Modify membership roster for this group" +msgstr "Wijzig lidmaatschap rooster voor dze groep" + +#: lib/RT/System.pm:61 +msgid "Modify one's own RT account" +msgstr "Wijzig uw eigen RT " + +#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Wijzig mensen gekoppeld aan rij %1" + +#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#. ($Ticket->id) +#. ($Ticket->Id) +msgid "Modify people related to ticket #%1" +msgstr "Wijzig mensen gekoppeld aan ticket #%1" + +#: html/Admin/Queues/Scrips.html:44 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Wijzig scrips voor rij %1" + +#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +msgid "Modify scrips which apply to all queues" +msgstr "Wijzig scrips welke betrekking hebben op alle rijen" + +#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#. (loc($TemplateObj->Name())) +#. ($TemplateObj->id) +msgid "Modify template %1" +msgstr "Wijzig sjabloon %1" + +#: html/Admin/Global/Templates.html:44 +msgid "Modify templates which apply to all queues" +msgstr "" + +#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "Wijzig de groep %1" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Modify the queue watchers" +msgstr "Wijzig de toeschouwers van de rij" + +#: html/Admin/Users/Modify.html:236 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "Wijzig de gebruiker %1" + +#: html/Ticket/ModifyAll.html:37 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Wijzig ticket # %1" + +#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Wijzig ticket #%1" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Modify tickets" +msgstr "Wijzig tickets" + +#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#. ($GroupObj->Name) +msgid "Modify user rights for group %1" +msgstr "Wijzig gebruikersrechten voor groep %1" + +#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "Wijzig gebruikersrechten voor rij %1" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "Wijzig toeschouwers voor rij '%1'" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyACL" +msgstr "WijzigACL" + +#: lib/RT/Group_Overlay.pm:149 +msgid "ModifyOwnMembership" +msgstr "WijzigEigenLidmaatschap" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "ModifyQueueWatchers" +msgstr "WijzigRijToeschouwers" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "ModifyScrips" +msgstr "WijzigScrips" + +#: lib/RT/System.pm:61 +msgid "ModifySelf" +msgstr "WijzigZelf" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "ModifyTemplate" +msgstr "WijzigSjabloon" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "ModifyTicket" +msgstr "WijzigTicket" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "Ma." + +#: html/Ticket/Elements/ShowRequestor:42 +#. ($name) +msgid "More about %1" +msgstr "Meer over %1" + +#: html/Admin/Elements/EditCustomFields:61 +msgid "Move down" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:53 +msgid "Move up" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:27 +msgid "Multiple" +msgstr "Meerdere" + +#: lib/RT/User_Overlay.pm:179 +msgid "Must specify 'Name' attribute" +msgstr "Specificeren van 'Naam' attribuut verplicht" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "Mijn Goedkeuringen" + +#: html/Approvals/index.html:25 html/Approvals/index.html:26 +msgid "My approvals" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +msgid "Name" +msgstr "Naam" + +#: lib/RT/User_Overlay.pm:186 +msgid "Name in use" +msgstr "Naam in gebruik" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "Goedkeuring benodigd van de systeem beheerder" + +#: html/Ticket/Elements/ShowDates:52 +msgid "Never" +msgstr "Nooit" + +#: html/Elements/Quicksearch:30 +msgid "New" +msgstr "Nieuw" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +msgid "New Password" +msgstr "Nieuw Wachtwoord" + +#: etc/initialdata:311 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "Nieuwe Hangende Goedkeuring" + +#: html/Ticket/Elements/EditLinks:111 +msgid "New Relationships" +msgstr "Nieuwe Relaties" + +#: html/Ticket/Elements/Tabs:36 +msgid "New Search" +msgstr "" + +#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +msgid "New custom field" +msgstr "" + +#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +msgid "New group" +msgstr "" + +#: html/SelfService/Prefs.html:32 +msgid "New password" +msgstr "Nieuw wachtwoord" + +#: lib/RT/User_Overlay.pm:639 +msgid "New password notification sent" +msgstr "Bericht voor nieuw wachtwoord verzonden" + +#: html/Admin/Elements/QueueTabs:70 +msgid "New queue" +msgstr "" + +#: html/SelfService/Elements/Tabs:63 +msgid "New request" +msgstr "Nieuw verzoek" + +#: html/Admin/Elements/SelectRights:42 +msgid "New rights" +msgstr "Nieuwe rechten" + +#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +msgid "New scrip" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "Nieuwe zoekopdracht" + +#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +msgid "New template" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2771 +msgid "New ticket doesn't exist" +msgstr "Nieuw ticket bestaat niet" + +#: html/Admin/Elements/UserTabs:52 +msgid "New user" +msgstr "" + +#: html/Admin/Elements/CreateUserCalled:26 +msgid "New user called" +msgstr "Nieuwe gebruiker genaamd" + +#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +msgid "New watchers" +msgstr "Nieuwe toeschouwers" + +#: html/Admin/Users/Prefs.html:42 +msgid "New window setting" +msgstr "Nieuwe venster instelling" + +#: html/Ticket/Elements/Tabs:69 +msgid "Next" +msgstr "Volgende" + +#: html/Search/Listing.html:48 +msgid "Next page" +msgstr "Volgende pagina" + +#: html/Admin/Elements/ModifyUser:50 +msgid "NickName" +msgstr "Bijnaam" + +#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +msgid "Nickname" +msgstr "Bijnaam" + +#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +msgid "No CustomField" +msgstr "Geen SpecifiekVeld" + +#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +msgid "No Group defined" +msgstr "Geen Groep gedefinieerd" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +msgid "No Queue defined" +msgstr "Geen Rij gedefinieerd" + +#: bin/rt-crontool:56 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "Geen RT gebruiker gevonden. Raadpleeg uw RT beheerder.\\n" + +#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +msgid "No Template" +msgstr "Geen Sjabloon" + +#: bin/rt-commit-handler:764 +msgid "No Ticket specified. Aborting ticket " +msgstr "Geen ticket gespecificeerd. Ticket afgebroken " + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "Geen ticket gespecificeerd. Ticket wijzigingen afgebroken\\n\\n" + +#: html/Approvals/Elements/Approve:47 +msgid "No action" +msgstr "Geen actie" + +#: lib/RT/Interface/Web.pm:862 +msgid "No column specified" +msgstr "Geen kolom gespecificeerd" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "Geen commando gevonden\\n" + +#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +msgid "No comment entered about this user" +msgstr "Geen commentaar ingevuld over deze gebruiker" + +#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +msgid "No correspondence attached" +msgstr "Geen correspondentie aangehecht" + +#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#. (ref $self) +msgid "No description for %1" +msgstr "Geen omschrijving voor %1" + +#: lib/RT/Users_Overlay.pm:151 +msgid "No group specified" +msgstr "Geen groep gespecificeerd" + +#: lib/RT/User_Overlay.pm:857 +msgid "No password set" +msgstr "Geen wachtwoord ingesteld" + +#: lib/RT/Queue_Overlay.pm:259 +msgid "No permission to create queues" +msgstr "Geen rechten om rijen te creëren" + +#: lib/RT/Ticket_Overlay.pm:341 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "Geen rechten om tickets te creëren in de rij '%1'" + +#: lib/RT/User_Overlay.pm:151 +msgid "No permission to create users" +msgstr "Geen rechten om gebruikers te creëren" + +#: html/SelfService/Display.html:174 +msgid "No permission to display that ticket" +msgstr "Geen rechten om dat ticket te tonen" + +#: html/SelfService/Update.html:55 +msgid "No permission to view update ticket" +msgstr "Geen rechten om verversing ticket te bekijken" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +msgid "No principal specified" +msgstr "Geen hoofd gespecificeerd" + +#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +msgid "No principals selected." +msgstr "Geen hoofden geselecteerd" + +#: html/Admin/Queues/index.html:35 +msgid "No queues matching search criteria found." +msgstr "Geen rijen gevonden die aan de zoekcriteria voldoen" + +#: html/Admin/Elements/SelectRights:81 +msgid "No rights found" +msgstr "" + +#: html/Admin/Elements/SelectRights:33 +msgid "No rights granted." +msgstr "Geen rechten toegekend" + +#: html/Search/Bulk.html:149 +msgid "No search to operate on." +msgstr "Geen zoek opdracht om uit te voeren." + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "Geen ticket id gespecificeerd" + +#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +msgid "No transaction type specified" +msgstr "Geen transactie type gespecificeerd" + +#: NOT FOUND IN SOURCE +msgid "No user or email address specified" +msgstr "Geen gebruiker of email-adres gespecificeerd" + +#: html/Admin/Users/index.html:36 +msgid "No users matching search criteria found." +msgstr "Geen gebruikers gevonden die aan de zoekcriteria voldoen" + +#: bin/rt-commit-handler:644 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "Geen geldige RT gebruiker gevonden. RT cvs behandelaar losgemaakt. Neemt u alstublieft contact op met uw RT beheerder.\\n" + +#: lib/RT/Interface/Web.pm:859 +msgid "No value sent to _Set!\\n" +msgstr "Geen waarde gestuurd naar _Set!\\n" + +#: html/Search/Elements/TicketRow:37 +msgid "Nobody" +msgstr "" + +#: lib/RT/Interface/Web.pm:864 +msgid "Nonexistant field?" +msgstr "Nietbestaand veld?" + +#: html/Elements/Login:99 +msgid "Not logged in" +msgstr "" + +#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +msgid "Not logged in." +msgstr "Niet aangemeld." + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "Niet gezet" + +#: html/NoAuth/Reminder.html:27 +msgid "Not yet implemented." +msgstr "Nog niet geïmplementeerd." + +#: html/Admin/Groups/Rights.html:25 +msgid "Not yet implemented...." +msgstr "Nog niet geïmplementeerd...." + +#: html/Approvals/Elements/Approve:50 +msgid "Notes" +msgstr "Notities" + +#: lib/RT/User_Overlay.pm:642 +msgid "Notification could not be sent" +msgstr "Bericht kon niet verstuurd worden" + +#: etc/initialdata:94 +msgid "Notify AdminCcs" +msgstr "Bericht AdminCcs" + +#: etc/initialdata:90 +msgid "Notify AdminCcs as Comment" +msgstr "Bericht AdminCcs als Commentaar" + +#: etc/initialdata:121 +msgid "Notify Other Recipients" +msgstr "Bericht Andere Ontvangers" + +#: etc/initialdata:117 +msgid "Notify Other Recipients as Comment" +msgstr "Bericht Andere Ontvangers als Commentaar" + +#: etc/initialdata:86 +msgid "Notify Owner" +msgstr "Bericht Eigenaar" + +#: etc/initialdata:82 +msgid "Notify Owner as Comment" +msgstr "Bericht Eigenaar als Commentaar" + +#: etc/initialdata:313 etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "Bericht Eigenaars en AdminCcs van nieuwe zaken welke hangende hun goedkeuring zijn" + +#: etc/initialdata:78 +msgid "Notify Requestors" +msgstr "Bericht Aanvragers" + +#: etc/initialdata:104 +msgid "Notify Requestors and Ccs" +msgstr "Bericht Aanvragers en Ccs" + +#: etc/initialdata:99 +msgid "Notify Requestors and Ccs as Comment" +msgstr "Bericht Aanvragers en Ccs als Commentaar" + +#: etc/initialdata:113 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "Bericht Aanvragers, Ccs en AdminCcs" + +#: etc/initialdata:109 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "Bericht Aanvragers, Ccs en AdminCcs als Commentaar" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "nov." + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "" + +#: lib/RT/Record.pm:157 +msgid "Object could not be created" +msgstr "Object kon niet gecreëerd worden" + +#: lib/RT/Record.pm:176 +msgid "Object created" +msgstr "Object gecreëerd" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "oct." + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "" + +#: html/Elements/SelectDateRelation:35 +msgid "On" +msgstr "Bij" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "Bij Commentaar" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "Bij Overeenkomst" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "Bij Creatie" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "Bij Eigenaarwijziging" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "Bij Rijwijziging" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "Bij Oplossing" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "Bij Statuswijziging" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "Bij Transactie" + +#: html/Approvals/Elements/PendingMyApproval:50 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "Toon alleen goedkeuringen voor verzoeken gecreëerd na %1" + +#: html/Approvals/Elements/PendingMyApproval:48 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "Toon alleen goedkeuringen voor verzoeken gecreëerd voor %1" + +#: html/Elements/Quicksearch:31 +msgid "Open" +msgstr "Open" + +#: html/Ticket/Elements/Tabs:136 +msgid "Open it" +msgstr "Open" + +#: html/SelfService/Elements/Tabs:57 +msgid "Open requests" +msgstr "Open verzoeken" + +#: html/Admin/Users/Prefs.html:41 +msgid "Open tickets (from listing) in a new window" +msgstr "Open tickets (van lijst) in een nieuw venster" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in another window" +msgstr "Open tickets (van lijst) in een ander venster" + +#: etc/initialdata:133 +msgid "Open tickets on correspondence" +msgstr "" + +#: html/Search/Elements/PickRestriction:101 +msgid "Ordering and sorting" +msgstr "Ordening en sortering" + +#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +msgid "Organization" +msgstr "Organisatie" + +#: html/Approvals/Elements/Approve:34 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "Voortgekomen uit ticket: #%1" + +#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +msgid "Over time, priority moves toward" +msgstr "Naar mate de tijd vordert, verschuift de prioriteit richting" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Own tickets" +msgstr "Eigen tickets" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "OwnTicket" +msgstr "EigenTicket" + +#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "Eigenaar" + +#: lib/RT/Ticket_Overlay.pm:3004 +#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +msgid "Owner changed from %1 to %2" +msgstr "Eigenaar veranderd van %1 naar %2" + +#: lib/RT/Transaction_Overlay.pm:584 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Eigenaar gedwongen veranderd van %1 naar %2" + +#: html/Search/Elements/PickRestriction:31 +msgid "Owner is" +msgstr "Eigenaar is" + +#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +msgid "Pager" +msgstr "Pieper" + +#: html/Admin/Elements/ModifyUser:74 +msgid "PagerPhone" +msgstr "Pieper" + +#: NOT FOUND IN SOURCE +msgid "Parent" +msgstr "" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +msgid "Parents" +msgstr "Ouders" + +#: html/Elements/Login:43 html/User/Prefs.html:61 +msgid "Password" +msgstr "Wachtwoord" + +#: html/NoAuth/Reminder.html:25 +msgid "Password Reminder" +msgstr "Wachtwoord Herinerring" + +#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +msgid "Password too short" +msgstr "Wachtwoord te kort" + +#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "Wachtwoord: %1" + +#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +msgid "People" +msgstr "Mensen" + +#: etc/initialdata:126 +msgid "Perform a user-defined action" +msgstr "Verricht een gebruiker gedefiniëerde actie" + +#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +msgid "Permission Denied" +msgstr "Toestemming Geweigerd" + +#: html/User/Elements/Tabs:35 +msgid "Personal Groups" +msgstr "" + +#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +msgid "Personal groups" +msgstr "Persoonlijke groepen" + +#: html/User/Elements/DelegateRights:37 +msgid "Personal groups:" +msgstr "Persoonlijke groepen:" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +msgid "Phone numbers" +msgstr "Telefoonnummers" + +#: html/Admin/Users/Rights.html:25 +msgid "Placeholder" +msgstr "Plaatshouder" + +#: NOT FOUND IN SOURCE +msgid "Pref" +msgstr "" + +#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +msgid "Preferences" +msgstr "Voorkeuren" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "Voorkeuren" + +#: lib/RT/Action/Generic.pm:160 +msgid "Prepare Stubbed" +msgstr "Bereid Plaatshouder Voor" + +#: html/Ticket/Elements/Tabs:61 +msgid "Prev" +msgstr "Vorige" + +#: html/Search/Listing.html:44 +msgid "Previous page" +msgstr "Vorige pagina" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "Pri" + +#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "Hoofd %1 niet gevonden." + +#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "Prioriteit" + +#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +msgid "Priority starts at" +msgstr "Prioriteit begint bij" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "Gerechtigd" + +#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "Gerechtigde status: %1" + +#: html/Admin/Users/index.html:62 +msgid "Privileged users" +msgstr "Gerechtigde gebruikers" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "Pseudogroep voor intern gebruik" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "Rij" + +#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#. ($Queue) +#. ($id) +msgid "Queue %1 not found" +msgstr "Rij %1 niet gevonden" + +#: NOT FOUND IN SOURCE +msgid "Queue '%1' not found\\n" +msgstr "Rij '%1' niet gevonden\\n" + +#: NOT FOUND IN SOURCE +msgid "Queue Keyword Selections" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +msgid "Queue Name" +msgstr "Rij Naam" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "Rij Scrips" + +#: lib/RT/Queue_Overlay.pm:263 +msgid "Queue already exists" +msgstr "Rij bestaat al" + +#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +msgid "Queue could not be created" +msgstr "Rij kon niet aangemaakt worden" + +#: html/Ticket/Create.html:209 +msgid "Queue could not be loaded." +msgstr "Rij kon niet geladen worden." + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +msgid "Queue created" +msgstr "Rij aangemaakt" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "Rij is niet gespecificeerd" + +#: html/SelfService/Display.html:129 +msgid "Queue not found" +msgstr "Rij niet gevonden" + +#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +msgid "Queues" +msgstr "Rijen" + +#: html/Elements/Login:34 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "RT %1" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "RT %1 voor %2" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "RT %1 van <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 "" + +#: html/Admin/index.html:25 html/Admin/index.html:26 +msgid "RT Administration" +msgstr "RT Beheer" + +#: NOT FOUND IN SOURCE +msgid "RT Authentication error." +msgstr "RT Authenticatie fout" + +#: NOT FOUND IN SOURCE +msgid "RT Bounce: %1" +msgstr "RT Doorgestuurd: %1" + +#: NOT FOUND IN SOURCE +msgid "RT Configuration error" +msgstr "RT Configuratie fout" + +#: NOT FOUND IN SOURCE +msgid "RT Critical error. Message not recorded!" +msgstr "RT Kritieke fout: Bericht niet bewaard!" + +#: html/Elements/Error:41 html/SelfService/Error.html:41 +msgid "RT Error" +msgstr "RT Fout" + +#: NOT FOUND IN SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "RT Ontving mail (%1) van zichzelf." + +#: NOT FOUND IN SOURCE +msgid "RT Recieved mail (%1) from itself." +msgstr "" + +#: html/SelfService/Closed.html:25 +msgid "RT Self Service / Closed Tickets" +msgstr "RT Zelfbediening / Afgesloten Tickets" + +#: html/index.html:25 html/index.html:28 +msgid "RT at a glance" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't authenticate you" +msgstr "RT kon u niet authenticeren" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find requestor via its external database lookup" +msgstr "RT kon de verzoeker niet vinden in zijn interne database" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find the queue: %1" +msgstr "RT kon de rij %1 niet vinden" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RT kon deze PGP signatuur niet valideren. \\n" + +#: html/Elements/PageLayout:26 +#. ($RT::rtname) +msgid "RT for %1" +msgstr "RT voor %1" + +#: NOT FOUND IN SOURCE +msgid "RT for %1: %2" +msgstr "RT voor %1: %2" + +#: NOT FOUND IN SOURCE +msgid "RT has proccessed your commands" +msgstr "RT heeft uw commando's verwerkt" + +#: html/Elements/Login:83 +#. ('2003') +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 © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Het is gedistribueerd onder <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versie 2 van de 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 "" + +#: NOT FOUND IN SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "RT denkt dat dit bericht onbestelbaar zou kunnen zijn" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RT zal dit bericht verwerken als of het ongesigneerd is.\\n" + +#: 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 email commando modus vereist PGP authenticatie. Of u heeft uw bericht niet gesigneerd, of uw signatuur kon niet geverifieerd worden." + +#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +msgid "Real Name" +msgstr "Echte Naam" + +#: html/Admin/Elements/ModifyUser:48 +msgid "RealName" +msgstr "EchteNaam" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +msgid "Referred to by" +msgstr "Naar gerefeerd door" + +#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +msgid "Refers to" +msgstr "Refereert aan" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "Verfijn" + +#: html/Search/Elements/PickRestriction:27 +msgid "Refine search" +msgstr "Verfijn Zoekopdracht" + +#: html/Elements/Refresh:36 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "Ververs deze pagina elke %1 minuten." + +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +msgid "Relationships" +msgstr "Relaties" + +#: html/Search/Bulk.html:93 +msgid "Remove AdminCc" +msgstr "Verwijder AdminCc" + +#: html/Search/Bulk.html:91 +msgid "Remove Cc" +msgstr "Verwijder Cc" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "Verwijder Verzoeker" + +#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +msgid "Reply" +msgstr "Antwoord" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Reply to tickets" +msgstr "Antwoord op tickets" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "ReplyToTicket" +msgstr "AntwoordOpTicket" + +#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +msgid "Requestor" +msgstr "Verzoeker" + +#: html/Search/Elements/PickRestriction:38 +msgid "Requestor email address" +msgstr "Verzoeker email adres" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "Verzoeker(s)" + +#: NOT FOUND IN SOURCE +msgid "RequestorAddresses" +msgstr "" + +#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +msgid "Requestors" +msgstr "Verzoekers" + +#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +msgid "Requests should be due in" +msgstr "Verzoek is terug verwacht" + +#: html/Elements/Submit:62 +msgid "Reset" +msgstr "Herstel" + +#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +msgid "Residence" +msgstr "Woonplaats" + +#: html/Ticket/Elements/Tabs:132 +msgid "Resolve" +msgstr "Los op" + +#: html/Ticket/Update.html:133 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "Los ticket #%1 (%2) op" + +#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +msgid "Resolved" +msgstr "Opgelost" + +#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +msgid "Response to requestors" +msgstr "Antwoord aan verzoekers" + +#: html/Elements/ListActions:26 +msgid "Results" +msgstr "Resultaten" + +#: html/Search/Elements/PickRestriction:105 +msgid "Results per page" +msgstr "Resultaten per pagina" + +#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +msgid "Retype Password" +msgstr "Type wachtwoord opnieuw" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "Recht %1 niet gevonden voor %2 %3 in bereik %4 (%5)\\n" + +#: lib/RT/ACE_Overlay.pm:613 +msgid "Right Delegated" +msgstr "Recht Gedelegeerd" + +#: lib/RT/ACE_Overlay.pm:303 +msgid "Right Granted" +msgstr "Recht Toegekend" + +#: lib/RT/ACE_Overlay.pm:161 +msgid "Right Loaded" +msgstr "Recht Geladen" + +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +msgid "Right could not be revoked" +msgstr "Recht kon niet afgenomen worden" + +#: html/User/Delegation.html:64 +msgid "Right not found" +msgstr "Recht niet gevonden" + +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +msgid "Right not loaded." +msgstr "Recht niet geladen" + +#: lib/RT/ACE_Overlay.pm:689 +msgid "Right revoked" +msgstr "" + +#: html/Admin/Elements/UserTabs:41 +msgid "Rights" +msgstr "Rechten" + +#: lib/RT/Interface/Web.pm:758 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "" + +#: lib/RT/Interface/Web.pm:791 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "" + +#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "Rollen" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "RootGoedkeuring" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "Za." + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "Save Changes" +msgstr "Bewaarwijzigingen" + +#: html/Ticket/ModifyLinks.html:39 +msgid "Save changes" +msgstr "Bewaarwijzigingen" + +#: html/Admin/Global/Scrip.html:49 +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:176 +msgid "Scrip Created" +msgstr "Scrip aangemaakt" + +#: html/Admin/Elements/EditScrips:84 +msgid "Scrip deleted" +msgstr "Script verwijderd" + +#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +msgid "Scrips" +msgstr "Scrips" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "Scrips voor %1\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "Scrips welke betrekking hebben op alle rijen" + +#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +msgid "Search" +msgstr "Zoek" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "Zoek Criteria" + +#: html/Approvals/Elements/PendingMyApproval:39 +msgid "Search for approvals" +msgstr "" + +#: bin/rt-crontool:188 +msgid "Security:" +msgstr "Veiligheid" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "SeeQueue" +msgstr "ZieRij" + +#: html/Admin/Groups/index.html:40 +msgid "Select a group" +msgstr "Selecteer een groep" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "Selecteer een rij" + +#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +msgid "Select a user" +msgstr "Selecteer een gebruiker" + +#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +msgid "Select custom field" +msgstr "" + +#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +msgid "Select group" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Select multiple values" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:352 +msgid "Select one value" +msgstr "" + +#: html/Admin/Elements/QueueTabs:67 +msgid "Select queue" +msgstr "" + +#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +msgid "Select scrip" +msgstr "" + +#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +msgid "Select template" +msgstr "" + +#: html/Admin/Elements/UserTabs:49 +msgid "Select user" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "SelectMultiple" +msgstr "SelecteerMeerdere" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectSingle" +msgstr "SelecteerEnkele" + +#: html/SelfService/index.html:25 +msgid "Self Service" +msgstr "Zelfbediening" + +#: etc/initialdata:114 +msgid "Send mail to all watchers" +msgstr "Stuurt mail naar alle toeschouwers" + +#: etc/initialdata:110 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "Stuurt mail naar alle toeschouwers als een \"commentaar\"" + +#: etc/initialdata:105 +msgid "Send mail to requestors and Ccs" +msgstr "Stuurt mail naar alle verzoekers en Ccs" + +#: etc/initialdata:100 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "Stuurt mail naar alle verzoekers en Ccs als een \"commentaar\"" + +#: etc/initialdata:79 +msgid "Sends a message to the requestors" +msgstr "Stuurt een bericht aan de verzoekers" + +#: etc/initialdata:118 etc/initialdata:122 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "Stuurt mail aan expliciet genoemde Ccs en Bccs" + +#: etc/initialdata:95 +msgid "Sends mail to the administrative Ccs" +msgstr "Stuurt mail aan de administratieve Ccs" + +#: etc/initialdata:91 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "Stuurt mail aan de administratieve Ccs als een \"commentaar\"" + +#: etc/initialdata:83 etc/initialdata:87 +msgid "Sends mail to the owner" +msgstr "Stuurt mail aan de eigenaar" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "Sep." + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "Toon Resultaten" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show approved requests" +msgstr "Toon goedgekeurde verzoeken" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show basics" +msgstr "Toon beginselen" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show denied requests" +msgstr "Toon afgewezen verzoeken" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show details" +msgstr "Toon details" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show pending requests" +msgstr "Toon hangende verzoeken" + +#: html/Approvals/Elements/PendingMyApproval:46 +msgid "Show requests awaiting other approvals" +msgstr "Toon verzoeken die wachten op andere goedkeuringen" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Show ticket private commentary" +msgstr "Toon ticket privé commentaar" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "Show ticket summaries" +msgstr "Toon ticket samenvattingen" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ShowACL" +msgstr "ToonACL" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowScrips" +msgstr "ToonScrips" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ShowTemplate" +msgstr "ToonSjabloon" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "ShowTicket" +msgstr "ToonTicket" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "ShowTicketComments" +msgstr "ToonTicketCommentaar" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "Schrijf in als een ticket Verzoeker of ticket of rij Cc" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "Schrijf in als een ticket of rij AdminCc" + +#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +msgid "Signature" +msgstr "Signatuur" + +#: html/SelfService/Elements/Header:52 +#. ($session{'CurrentUser'}->Name) +msgid "Signed in as %1" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Single" +msgstr "Enkel" + +#: html/Elements/Header:51 +msgid "Skip Menu" +msgstr "" + +#: html/Admin/Elements/EditCustomFieldValues:31 +msgid "Sort key" +msgstr "Sorteer sleutel" + +#: html/Search/Elements/PickRestriction:109 +msgid "Sort results by" +msgstr "Sorteer resultaten op" + +#: html/Admin/Elements/AddCustomFieldValue:25 +msgid "SortOrder" +msgstr "SorteerVolgorde" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "Blijft Steken" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "Start pagina" + +#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +msgid "Started" +msgstr "Gestart" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "Startum '%1' kon niet ontleed worden" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +msgid "Starts" +msgstr "Begint" + +#: NOT FOUND IN SOURCE +msgid "Starts By" +msgstr "Begint op" + +#: NOT FOUND IN SOURCE +msgid "Starts date '%1' could not be parsed" +msgstr "Begindatum '%1' kon niet ontleed worden" + +#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +msgid "State" +msgstr "Staat" + +#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "Status" + +#: etc/initialdata:288 +msgid "Status Change" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:530 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "Status veranderd van %1 naar %2" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "StatusVerandering" + +#: html/Ticket/Elements/Tabs:147 +msgid "Steal" +msgstr "Steel" + +#: lib/RT/Transaction_Overlay.pm:589 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "Gestolen van %1" + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "Onderwerp" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "Onderwerp veranderd naar %1" + +#: html/Elements/Submit:59 +msgid "Submit" +msgstr "Registreer" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "Registreer Workflow" + +#: lib/RT/Group_Overlay.pm:749 +msgid "Succeeded" +msgstr "Gelukt" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "Zo." + +#: lib/RT/System.pm:54 +msgid "SuperUser" +msgstr "SuperGebruiker" + +#: html/User/Elements/DelegateRights:77 +msgid "System" +msgstr "Systeem" + +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +msgid "System Error" +msgstr "Systeem Fout" + +#: NOT FOUND IN SOURCE +msgid "System Error. Right not granted." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "System Error. right not granted" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:616 +msgid "System error. Right not delegated." +msgstr "Systeem fout. Recht niet gedelegeerd." + +#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +msgid "System error. Right not granted." +msgstr "Systeem fout. Recht niet toegekend." + +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "Systeem fout. Niet mogelijk om rechten toe te kennen" + +#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +msgid "System groups" +msgstr "Systeem groepen" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "SysteemRolgroep voor intern gebruik" + +#: lib/RT/CurrentUser.pm:320 +msgid "TEST_STRING" +msgstr "TEST_STRING" + +#: html/Ticket/Elements/Tabs:143 +msgid "Take" +msgstr "Neem" + +#: lib/RT/Transaction_Overlay.pm:575 +msgid "Taken" +msgstr "Genomen" + +#: html/Admin/Elements/EditScrip:81 +msgid "Template" +msgstr "Sjabloon" + +#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "" + +#: html/Admin/Elements/EditTemplates:89 +msgid "Template deleted" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:153 +msgid "Template not found" +msgstr "Sjabloon niet gevonden" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "Sjabloon niet gevonden\\n" + +#: lib/RT/Template_Overlay.pm:347 +msgid "Template parsed" +msgstr "Sjabloon ontleed" + +#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +msgid "Templates" +msgstr "Sjablonen" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "Sjablonen voor %1\\n" + +#: lib/RT/Interface/Web.pm:858 +msgid "That is already the current value" +msgstr "Dat is al de huidige waarde" + +#: lib/RT/CustomField_Overlay.pm:178 +msgid "That is not a value for this custom field" +msgstr "Dat is geen waarde voor dit specifieke veld" + +#: lib/RT/Ticket_Overlay.pm:1886 +msgid "That is the same value" +msgstr "Dat is de zelfde waarde" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "Dat hoofd is reeds een %1 voor deze rij" + +#: lib/RT/Ticket_Overlay.pm:1434 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "Dat hoofd is reeds een %1 voor dit ticket" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Dat hoofd is geen %1 voor deze rij" + +#: lib/RT/Ticket_Overlay.pm:1551 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "Dat hoofd is geen %1 voor dit ticket" + +#: lib/RT/Ticket_Overlay.pm:1882 +msgid "That queue does not exist" +msgstr "Die rij bestaat niet" + +#: lib/RT/Ticket_Overlay.pm:3143 +msgid "That ticket has unresolved dependencies" +msgstr "Dat ticket heeft onopgeloste afhankelijkheden" + +#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +msgid "That user already has that right" +msgstr "Die gebruiker heeft dat recht reeds" + +#: lib/RT/Ticket_Overlay.pm:2952 +msgid "That user already owns that ticket" +msgstr "Die gebruiker is al eigenaar van dat ticket" + +#: lib/RT/Ticket_Overlay.pm:2918 +msgid "That user does not exist" +msgstr "Die gebruiker bestaat niet" + +#: lib/RT/User_Overlay.pm:315 +msgid "That user is already privileged" +msgstr "Die gebruiker is al gerechtigd" + +#: lib/RT/User_Overlay.pm:332 +msgid "That user is already unprivileged" +msgstr "Die gebruiker is reeds ontrechtigd" + +#: lib/RT/User_Overlay.pm:327 +msgid "That user is now privileged" +msgstr "Die gebruiker is nu gerechtigd" + +#: lib/RT/User_Overlay.pm:344 +msgid "That user is now unprivileged" +msgstr "Die gebruiker is nu ontrechtigd" + +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2944 +msgid "That user may not own tickets in that queue" +msgstr "Die gebruiker mag geen eigenaar zijn van tickets in die rij" + +#: lib/RT/Link_Overlay.pm:206 +msgid "That's not a numerical id" +msgstr "Dat is niet een numeriek ID" + +#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +msgid "The Basics" +msgstr "De Beginselen" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The CC of a ticket" +msgstr "De CC van een ticket" + +#: lib/RT/ACE_Overlay.pm:89 +msgid "The administrative CC of a ticket" +msgstr "De administratieve CC van een ticket" + +#: lib/RT/Ticket_Overlay.pm:2213 +msgid "The comment has been recorded" +msgstr "Het commentaar is bewaard" + +#: bin/rt-crontool:198 +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 "Het volgende commando zal alle actieve tickets in de rij 'general' vinden en hun prioriteit op 99 zetten als ze meer dan 4 uur niet aangeraakt zijn:" + +#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "De volgende commando's zijn niet verwerkt:\\n\\n" + +#: lib/RT/Interface/Web.pm:861 +msgid "The new value has been set." +msgstr "De waarde is gezet." + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The owner of a ticket" +msgstr "De eigenaar van een ticket" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The requestor of a ticket" +msgstr "De verzoeker van een ticket" + +#: html/Admin/Elements/EditUserComments:26 +msgid "These comments aren't generally visible to the user" +msgstr "Dit commentaar is gewoonlijk niet zichtbaar voor de gebruiker" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "Dit ticket %1 %2 (%3)\\n" + +#: bin/rt-crontool:189 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "Dit gereedschap stelt de gebruiker in staat arbitraire perl modules te gebruiken vanuit RT" + +#: lib/RT/Transaction_Overlay.pm:253 +msgid "This transaction appears to have no content" +msgstr "Het lijkt erop alsof deze transactie geen inhoud heeft" + +#: html/Ticket/Elements/ShowRequestor:47 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "De 25 hoogste prioriteit tickets van deze gebruiker" + +#: lib/RT/Date.pm:391 +msgid "Thu." +msgstr "Do." + +#: NOT FOUND IN SOURCE +msgid "Ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 Jumbo update: %2" +msgstr "" + +#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "Ticket #%1 Jumbo actualisering: %2" + +#: html/Approvals/Elements/ShowDependency:46 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "Ticket #%1: %2" + +#: lib/RT/Ticket_Overlay.pm:608 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "Ticket %1 aangemaakt in rij '%2'" + +#: bin/rt-commit-handler:760 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "Toclet %1 geladen\\n" + +#: html/Search/Bulk.html:181 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "Ticket %1: %2" + +#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "Ticket Historie # %1 %2" + +#: html/SelfService/Display.html:34 +msgid "Ticket Id" +msgstr "Ticket Id" + +#: etc/initialdata:303 +msgid "Ticket Resolved" +msgstr "Ticket Opgelost" + +#: html/Search/Elements/PickRestriction:63 +msgid "Ticket attachment" +msgstr "Ticket aanhechting" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "Ticket inhoud" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "Ticket inhoud type" + +#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +msgid "Ticket could not be created due to an internal error" +msgstr "Ticket kong niet aangemaakt worden vanwege een interne fout" + +#: lib/RT/Transaction_Overlay.pm:522 +msgid "Ticket created" +msgstr "Ticket aangemaakt" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "Ticket aanmaken gefaald" + +#: lib/RT/Transaction_Overlay.pm:527 +msgid "Ticket deleted" +msgstr "Ticket verwijderd" + +#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +msgid "Ticket id not found" +msgstr "Ticket id niet gevonden" + +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "" + +#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +msgid "Ticket not found" +msgstr "Ticket niet gevonden" + +#: etc/initialdata:289 +msgid "Ticket status changed" +msgstr "Ticket status gewijzigd" + +#: html/Ticket/Update.html:39 +msgid "Ticket watchers" +msgstr "Ticket toeschouwers" + +#: html/Elements/Tabs:49 +msgid "Tickets" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "Tickets %1 %2" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "Tickets %1 door %2" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Tickets from %1" +msgstr "Tickets van %1" + +#: html/Approvals/Elements/ShowDependency:27 +msgid "Tickets which depend on this approval:" +msgstr "Tickets welke afhankelijk zijn van deze goedkeuring" + +#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +msgid "Time Left" +msgstr "Tijd Over" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +msgid "Time Worked" +msgstr "Tijd Gewerkt" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "Tijd over" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "Tijd om te tonen" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "Tijd gewerkt" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "TijdOver" + +#: lib/RT/Ticket_Overlay.pm:1165 +msgid "TimeWorked" +msgstr "TijdGewerkt" + +#: bin/rt-commit-handler:402 +msgid "To generate a diff of this commit:" +msgstr "Om een diff van deze uitvoering te genereren:" + +#: bin/rt-commit-handler:391 +msgid "To generate a diff of this commit:\\n" +msgstr "Om een diff van deze uitvoering te genereren:\\n" + +#: lib/RT/Ticket_Overlay.pm:1168 +msgid "Told" +msgstr "Verteld" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "Transactie" + +#: lib/RT/Transaction_Overlay.pm:642 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "Transactie %1 gezuiverd" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "Transactie Gecreëerd" + +#: lib/RT/Transaction_Overlay.pm:89 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "Transactie->Creëer kon niet, aangezien u geen ticket id gespecificeerd heeft" + +#: lib/RT/Transaction_Overlay.pm:701 +msgid "Transactions are immutable" +msgstr "Transacties zijn onwijzigbaar" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "Tracht een recht te verwijderen: %1" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "Di." + +#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "Type" + +#: lib/RT/ScripCondition_Overlay.pm:104 +msgid "Unimplemented" +msgstr "Niet geïmplementeerd" + +#: html/Admin/Users/Modify.html:68 +msgid "Unix login" +msgstr "Unix aanmelden" + +#: html/Admin/Elements/ModifyUser:62 +msgid "UnixUsername" +msgstr "UnixGebruikersnaam" + +#: lib/RT/Attachment_Overlay.pm:265 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "Onbekende InhoudCodering %1" + +#: html/Elements/SelectResultsPerPage:37 +msgid "Unlimited" +msgstr "Ongelimiteerd" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "Ongerechtigd" + +#: lib/RT/Transaction_Overlay.pm:571 +msgid "Untaken" +msgstr "Vrij" + +#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +msgid "Update" +msgstr "Ververs" + +#: html/Admin/Users/Prefs.html:62 +msgid "Update ID" +msgstr "Ververs ID" + +#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +msgid "Update Type" +msgstr "Ververs Type" + +#: html/Search/Listing.html:61 +msgid "Update all these tickets at once" +msgstr "Ververs al deze tickets in eens" + +#: html/Admin/Users/Prefs.html:49 +msgid "Update email" +msgstr "Ververs email" + +#: html/Admin/Users/Prefs.html:55 +msgid "Update name" +msgstr "Ververs naam" + +#: lib/RT/Interface/Web.pm:375 +msgid "Update not recorded." +msgstr "Verversing niet opgeslagen." + +#: html/Search/Bulk.html:81 +msgid "Update selected tickets" +msgstr "Ververs geselecteerde tickets" + +#: html/Admin/Users/Prefs.html:36 +msgid "Update signature" +msgstr "Ververs signatuur" + +#: html/Ticket/ModifyAll.html:63 +msgid "Update ticket" +msgstr "Ververs ticket" + +#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 +#. ($Ticket->id) +msgid "Update ticket # %1" +msgstr "Ververs ticket # %1" + +#: html/SelfService/Update.html:50 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Ververs ticket #%1" + +#: html/Ticket/Update.html:135 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "Ververs ticket #%1 (%2)" + +#: lib/RT/Interface/Web.pm:373 +msgid "Update type was neither correspondence nor comment." +msgstr "Verversingstype was noch correspondentie, noch commentaar" + +#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +msgid "Updated" +msgstr "Ververst" + +#: NOT FOUND IN SOURCE +msgid "User %1 %2: %3\\n" +msgstr "Gebruiker %1 %2: %3\\n" + +#: NOT FOUND IN SOURCE +msgid "User %1 Password: %2\\n" +msgstr "Gebruiker %1 Wachtwoord: %2\\n" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found" +msgstr "Gebruiker '%1' niet gevonden" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found\\n" +msgstr "Gebruiker '%1' niet gevonden\\n" + +#: etc/initialdata:125 etc/initialdata:191 +msgid "User Defined" +msgstr "Gebruiker Gedifiniëerd" + +#: html/Admin/Users/Prefs.html:59 +msgid "User ID" +msgstr "GebruikersID" + +#: html/Elements/SelectUsers:26 +msgid "User Id" +msgstr "Gebruiker Id" + +#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +msgid "User Rights" +msgstr "Gebruikersrechten" + +#: html/Admin/Users/Modify.html:226 +#. ($msg) +msgid "User could not be created: %1" +msgstr "Gebruiker kon niet aangemaakt worden: %1" + +#: lib/RT/User_Overlay.pm:262 +msgid "User created" +msgstr "Gebruiker aangemaakt" + +#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "Door gebruiker gedefiniëerde groepen" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "Gebruiker verwittigd" + +#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +msgid "User view" +msgstr "Gebruikers aanzicht" + +#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +msgid "Username" +msgstr "Gebruikersnaam" + +#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +msgid "Users" +msgstr "Gebruikers" + +#: html/Admin/Users/index.html:65 +msgid "Users matching search criteria" +msgstr "Gebruikers die voldoen aan de zoek criteria" + +#: html/Search/Elements/PickRestriction:51 +msgid "ValueOfQueue" +msgstr "WaardeVanRij" + +#: html/Admin/Elements/EditCustomField:40 +msgid "Values" +msgstr "Waarden" + +#: NOT FOUND IN SOURCE +msgid "VrijevormEnkele" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Watch" +msgstr "Schouw toe" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "WatchAsAdminCc" +msgstr "SchouwToeAlsAdminCc" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "Toeschouwer geladen" + +#: html/Admin/Elements/QueueTabs:42 +msgid "Watchers" +msgstr "Toeschouwers" + +#: html/Admin/Elements/ModifyUser:56 +msgid "WebEncoding" +msgstr "WebCodering" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "Wo." + +#: etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "Wanneer een ticket goedgekeurd is door alle goedkeurders, voeg correspondentie toe aan het orginele ticket" + +#: etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "Wanneer een ticket goedgekeurd is door een goedkeurder, voeg correspondentie toe aan het orginele ticket" + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "Wanneer een ticket is aangemaakt" + +#: etc/upgrade/2.1.71:79 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "Wanneer een goedkeuringsticket is aangemaakts, verwittig de Eigenaar en de AdminCc van het onderwerp dat op hun goedkeuring wacht" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "Wanneer iets gebeurt" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "Wanneer een ticket is opgelost" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "Wanneer de eigenaar van een ticket verandert" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "Wanneer de rij van een ticket verandert" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "Wanneer de status van een ticket verandert" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "Wanneer een door de gebruiker gedifiniëerde voorwaarde gebeurt" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "Wanneer commentaar binnenkomt" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "Wanneer correspondentie binnenkomt" + +#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +msgid "Work" +msgstr "Werk" + +#: html/Admin/Elements/ModifyUser:70 +msgid "WorkPhone" +msgstr "WerkTelefoon" + +#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +msgid "Worked" +msgstr "Gewerkt" + +#: lib/RT/Ticket_Overlay.pm:3056 +msgid "You already own this ticket" +msgstr "U bent al eigenaar van dit ticket" + +#: html/autohandler:121 +msgid "You are not an authorized user" +msgstr "U bent geen geauthorizeerde gebruiker" + +#: lib/RT/Ticket_Overlay.pm:2930 +msgid "You can only reassign tickets that you own or that are unowned" +msgstr "U kunt alleen tickets opnieuw toe bedelen die van u zijn, of van niemand" + +#: NOT FOUND IN SOURCE +msgid "You don't have permission to view that ticket.\\n" +msgstr "U heeft geen toestemming om dat ticket te bekijken" + +#: docs/design_docs/string-extraction-guide.txt:47 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "U vond %1 tickets in rij %2" + +#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +msgid "You have been logged out of RT." +msgstr "U bent afgemeld bij RT" + +#: html/SelfService/Display.html:134 +msgid "You have no permission to create tickets in that queue." +msgstr "U heeft geen toestemming om tickets aan te maken in die rij." + +#: lib/RT/Ticket_Overlay.pm:1895 +msgid "You may not create requests in that queue." +msgstr "U mag geen verzoeken aanmaken in die rij" + +#: html/NoAuth/Logout.html:36 +msgid "You're welcome to login again" +msgstr "U mag zich weer aanmelden" + +#: html/SelfService/Elements/MyRequests:25 +#. ($friendly_status) +msgid "Your %1 requests" +msgstr "Uw %1 verzoeken" + +#: NOT FOUND IN SOURCE +msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "Uw RT beheerder heeft de mail-aliasses welke RT aanroepen verkeerd geconfigureerd" + +#: etc/initialdata:429 etc/upgrade/2.1.71:146 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "Uw verzoek is goedgekeurd door %1. Er zijn wellicht nog andere hangende goedkeuringen." + +#: etc/initialdata:463 etc/upgrade/2.1.71:180 +msgid "Your request has been approved." +msgstr "Uw verzoek is goedgekeurd." + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "" + +#: etc/initialdata:384 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "Uw verzoek was geweigerd." + +#: html/autohandler:136 html/autohandler:142 +msgid "Your username or password is incorrect" +msgstr "Uw gebruikersnaam of wachtwoord zijn onjuist" + +#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +msgid "Zip" +msgstr "Postcode" + +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "" + +#: html/User/Elements/DelegateRights:59 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "zoals gegeven aan %1" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +msgid "contains" +msgstr "bevat" + +#: html/Elements/SelectAttachmentField:26 +msgid "content" +msgstr "inhoud" + +#: html/Elements/SelectAttachmentField:27 +msgid "content-type" +msgstr "inhoud-type" + +#: lib/RT/Ticket_Overlay.pm:2282 +msgid "correspondence (probably) not sent" +msgstr "correspondentie (waarschijnlijk) niet verstuurd" + +#: lib/RT/Ticket_Overlay.pm:2292 +msgid "correspondence sent" +msgstr "correspondentie verstuurd" + +#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +msgid "days" +msgstr "dagen" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "dood" + +#: html/Search/Listing.html:75 +msgid "delete" +msgstr "verwijder" + +#: lib/RT/Queue_Overlay.pm:63 +msgid "deleted" +msgstr "verwijderd" + +#: html/Search/Elements/PickRestriction:68 +msgid "does not match" +msgstr "voldoet niet aan" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +msgid "doesn't contain" +msgstr "bevat niet" + +#: html/Elements/SelectEqualityOperator:38 +msgid "equal to" +msgstr "gelijk aan" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "" + +#: html/Elements/SelectAttachmentField:28 +msgid "filename" +msgstr "bestandsnaam" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "greater than" +msgstr "groter dan" + +#: lib/RT/Group_Overlay.pm:194 +#. ($self->Name) +msgid "group '%1'" +msgstr "groep '%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "uren" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "id" + +#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "is" +msgstr "is" + +#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +msgid "isn't" +msgstr "is niet" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "less than" +msgstr "minder dan" + +#: html/Search/Elements/PickRestriction:67 +msgid "matches" +msgstr "voldoet aan" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "min" + +#: html/Ticket/Update.html:66 +msgid "minutes" +msgstr "minuten" + +#: bin/rt-commit-handler:765 +msgid "modifications\\n\\n" +msgstr "wijzigingen\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "maanden" + +#: lib/RT/Queue_Overlay.pm:58 +msgid "new" +msgstr "nieuw" + +#: html/Admin/Elements/EditScrips:43 +msgid "no value" +msgstr "" + +#: html/Ticket/Elements/EditWatchers:28 +msgid "none" +msgstr "geen" + +#: html/Elements/SelectEqualityOperator:38 +msgid "not equal to" +msgstr "niet gelijk aan" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "open" +msgstr "open" + +#: lib/RT/Group_Overlay.pm:199 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "persoonlijke groep '%1' voor gebruiker '%2'" + +#: lib/RT/Group_Overlay.pm:207 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "rij %1 %2" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "rejected" +msgstr "geweigerd" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "resolved" +msgstr "opgelost" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "sec" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "stalled" +msgstr "bleef steken" + +#: lib/RT/Group_Overlay.pm:202 +#. ($self->Type) +msgid "system %1" +msgstr "systeem %1" + +#: lib/RT/Group_Overlay.pm:213 +#. ($self->Type) +msgid "system group '%1'" +msgstr "systeem groep '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:42 +msgid "the calling component did not specify why" +msgstr "het aanroepende component specificeerde niet waarom" + +#: lib/RT/Group_Overlay.pm:210 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "ticket #%1 %2" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "" + +#: lib/RT/Group_Overlay.pm:216 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "onbeschreven groep %1" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:191 +#. ($user->Object->Name) +msgid "user %1" +msgstr "gebruiker %1" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "weken" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "met sjabloon %1" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "jaren" + diff --git a/rt/lib/RT/I18N/no.po b/rt/lib/RT/I18N/no.po new file mode 100644 index 000000000..5b1ab05cb --- /dev/null +++ b/rt/lib/RT/I18N/no.po @@ -0,0 +1,4879 @@ +msgid "" +msgstr "" +"Project-Id-Version: RT 3.0.1\n" +"POT-Creation-Date: 2003-04-01 06:06+0200\n" +"PO-Revision-Date: 2003-05-01 04:47+0200\n" +"Last-Translator: Marcus Ramberg <marcus@thefeed.no>\n" +"Language-Team: RT Norwegian <rt@thefeed.no>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + + + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +msgid "#" +msgstr "#" + +#: html/Admin/Queues/Scrip.html:55 +#. ($QueueObj->id) +msgid "#%1" +msgstr "#%1" + +#: html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:50 html/SelfService/Display.html:25 html/Ticket/Display.html:26 html/Ticket/Display.html:30 +#. ($Ticket->Id, $Ticket->Subject) +#. ($Ticket->id, $Ticket->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "#%1: %2" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "%1 %2" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($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 %3. %2 %7 %4:%5:%6" + +#: lib/RT/Ticket_Overlay.pm:3505 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#. ($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:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "%1 %2 siden" + +#: lib/RT/Ticket_Overlay.pm:3511 lib/RT/Transaction_Overlay.pm:564 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 %2 ble endret til %3" + +#: lib/RT/Ticket_Overlay.pm:3508 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#. ($cf->Name, $old_value) +#. ($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:44 html/Admin/Elements/ListGlobalScrips:28 +#. (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 biletten\\n"" + +#: html/Search/Listing.html:57 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "%1 - %2 vist" + +#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#. ("--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:185 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - Viser statusoppdateringer til STDOUT" + +#: bin/rt-crontool:179 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - Oppgi kommandomodulen du ønsker  bruke" + +#: bin/rt-crontool:173 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - Oppgiv betingelsesmodulen du ønsker  bruke" + +#: bin/rt-crontool:166 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - Oppgi søkemodulen du ønsker  bruke" + +#: lib/RT/ScripAction_Overlay.pm:122 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "%1 KommandoScript lastet" + +#: lib/RT/Ticket_Overlay.pm:3538 +#. ($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:117 lib/RT/Link_Overlay.pm:124 +#. ($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:52 lib/RT/Transaction_Overlay.pm:481 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 av %2" + +#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:624 lib/RT/Transaction_Overlay.pm:633 lib/RT/Transaction_Overlay.pm:636 +#. ($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 ble endret fra %2 til %3" + +#: lib/RT/Interface/Web.pm:891 +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:2817 +#. ($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." + +#: html/Elements/MyTickets:25 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "Mine %1 høyst prioriterte saker..." + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "Mine %1 høyst prioriterte forespørsler..." + +#: bin/rt-crontool:161 +#. ($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:743 +#. ($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." + +#: lib/RT/Ticket_Overlay.pm:1570 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 er ikke lenger en %2 for denne saken." + +#: lib/RT/Ticket_Overlay.pm:3594 +#. ($args{'Value'}, $cf->Name) +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/ShowBasics:36 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 min" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "%1 vises ikke" + +#: html/User/Elements/DelegateRights:76 +#. (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:42 +#. (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/Transaction_Overlay.pm:433 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: ingen vedlegg oppgitt" + +#: html/Ticket/Elements/ShowTransaction:102 +#. ($size) +msgid "%1b" +msgstr "%1b" + +#: html/Ticket/Elements/ShowTransaction:99 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "%1k" + +#: lib/RT/Ticket_Overlay.pm:1140 +#. ($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:25 html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +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/Create.html:178 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Skriv inn referansenummer eller URler, separert med mellomrom)" + +#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#. ($RT::CorrespondAddress) +#. ($RT::CommentAddress) +msgid "(If left blank, will default to %1" +msgstr "(Standard er %1);H + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "(Ingen Verdi)" + +#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +msgid "(No custom fields)" +msgstr "(Ingen fleksifelt)" + +#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +msgid "(No members)" +msgstr "(Ingen medlemmer)" + +#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +msgid "(No scrips)" +msgstr "(Ingen scrips)" + +#: html/Admin/Elements/EditTemplates:31 +msgid "(No templates)" +msgstr "(Ingen maler)" + +#: html/Ticket/Update.html:85 +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/Create.html:79 +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/Update.html:81 +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/Create.html:69 +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/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +msgid "(empty)" +msgstr "(tom)" + +#: html/Admin/Users/index.html:39 +msgid "(no name listed)" +msgstr "(navn ikke oppgitt)" + +#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +msgid "(no subject)" +msgstr "(ingen overskrift)" + +#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:534 +msgid "(no value)" +msgstr "(ingen verdi)" + +#: html/Ticket/Elements/EditLinks:116 +msgid "(only one ticket)" +msgstr "(bare en sak)" + +#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +msgid "(pending approval)" +msgstr "(Venter pÃ¥ godkjenning)" + +#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +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:50 +msgid "(required)" +msgstr "(nødvendig)" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "(untitled)" +msgstr "(ingen tittel)" + +#: 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:32 +msgid "<% $Ticket->Status%>" +msgstr "<% $Ticket-:Status%>" + +#: html/Elements/SelectTicketTypes:27 +msgid "<% $_ %>" +msgstr "<% $_ %>" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#. ($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:203 +msgid "A blank template" +msgstr "En tom mal" + +#: 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:157 lib/RT/Principal_Overlay.pm:181 +msgid "ACE not found" +msgstr "ACE ikke funnet" + +#: lib/RT/ACE_Overlay.pm:831 +msgid "ACEs can only be created and deleted." +msgstr "ACEr kan bare opprettes og slettes." + +#: bin/rt-commit-handler:755 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Avbryter for  ung uønsket saksendring" + +#: html/User/Elements/Tabs:32 +msgid "About me" +msgstr "Om meg" + +#: html/Admin/Users/Modify.html:80 +msgid "Access control" +msgstr "Aksesskontroll" + +#: html/Admin/Elements/EditScrip:57 +msgid "Action" +msgstr "Handling" + +#: lib/RT/Scrip_Overlay.pm:147 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "Handling %1 finnes ikke" + +#: bin/rt-crontool:123 +msgid "Action committed." +msgstr "Handling skrevet." + +#: bin/rt-crontool:119 +msgid "Action prepared..." +msgstr "Handling forberedt" + +#: html/Search/Bulk.html:92 +msgid "Add AdminCc" +msgstr "Legg til AdminCc" + +#: html/Search/Bulk.html:90 +msgid "Add Cc" +msgstr "Legg til Cc" + +#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +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:88 +msgid "Add Requestor" +msgstr "Legg til kunde" + +#: html/Admin/Elements/AddCustomFieldValue:26 +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:55 +msgid "Add a scrip which will apply to all queues" +msgstr "Legg til et Scrip som vil gjelde for alle køer" + +#: html/Search/Bulk.html:118 +msgid "Add comments or replies to selected tickets" +msgstr "Legg til kommentarer eller svar til denne saken" + +#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +msgid "Add members" +msgstr "Legg til medlemmer" + +#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +msgid "Add new watchers" +msgstr "Legg til overvÃ¥kere" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "AddNextState" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($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:1454 +#. ($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/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +msgid "Address1" +msgstr "Adresse1" + +#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +msgid "Address2" +msgstr "Adresse2" + +#: html/Ticket/Create.html:74 +msgid "Admin Cc" +msgstr "Admin Cc" + +#: etc/initialdata:280 +msgid "Admin Comment" +msgstr "Admin Kommentar" + +#: etc/initialdata:259 +msgid "Admin Correspondence" +msgstr "Admin-korrespondanse" + +#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +msgid "Admin queues" +msgstr "Adminkøer" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "Adminbrukere" + +#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +msgid "Admin/Global configuration" +msgstr "Admin/Global konfigurasjon" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "Admin/Grupper" + +#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +msgid "Admin/Queue/Basics" +msgstr "Admin/Køer/Grunnleggende" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "AdminAllePersonalGrupper" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +msgid "AdminCc" +msgstr "AdminCc" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "AdminKommentar" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "AdminKorrespondanse" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "AdminCustomFields" +msgstr "AdminFleksifelt" + +#: lib/RT/Group_Overlay.pm:146 +msgid "AdminGroup" +msgstr "AdminGruppe" + +#: lib/RT/Group_Overlay.pm:148 +msgid "AdminGroupMembership" +msgstr "AdminGruppeMedlemskap" + +#: lib/RT/System.pm:59 +msgid "AdminOwnPersonalGroups" +msgstr "AdminEgnePersonligeGrupper" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "AdminQueue" +msgstr "AdminKø" + +#: lib/RT/System.pm:60 +msgid "AdminUsers" +msgstr "AdminBrukere" + +#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +msgid "Administrative Cc" +msgstr "Administrativ Cc" + +#: NOT FOUND IN SOURCE +msgid "Admins" +msgstr "Admin" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "Avansert Søk" + +#: html/Elements/SelectDateRelation:36 +msgid "After" +msgstr "Etter" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "Alder" + +#: NOT FOUND IN SOURCE +msgid "Alias" +msgstr "Alias" + +#: NOT FOUND IN SOURCE +msgid "Alias for" +msgstr "Alias for" + +#: html/Admin/Elements/EditCustomFields:96 +msgid "All Custom Fields" +msgstr "Alle Fleksifelt" + +#: html/Admin/Queues/index.html:53 +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/Elements/Tabs:56 +msgid "Approval" +msgstr "Godkjennelse" + +#: html/Approvals/Display.html:46 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#. ($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:54 +#. ($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:52 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "Godkjenning #%1: Notater lagret" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "Godkjenning - Detaljer" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "Godkjenningsdiagram" + +#: html/Approvals/Elements/Approve:44 +msgid "Approve" +msgstr "Godkjenn" + +#: etc/initialdata:437 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "Godkjenners notater: %1" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "Apr." + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "April" + +#: html/Elements/SelectSortOrder:35 +msgid "Ascending" +msgstr "Stigende" + +#: html/Search/Bulk.html:127 html/SelfService/Update.html:33 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +msgid "Attach" +msgstr "Legg Ved" + +#: html/SelfService/Create.html:65 html/Ticket/Create.html:110 +msgid "Attach file" +msgstr "Legg ved fil" + +#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +msgid "Attached file" +msgstr "Vedlagt fil" + +#: NOT FOUND IN SOURCE +msgid "Attachment '%1' could not be loaded" +msgstr "Vedlegg '%1' kunne ikke lastes" + +#: lib/RT/Transaction_Overlay.pm:441 +msgid "Attachment created" +msgstr "Vedlegg opprettet" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "Vedleggsnavn" + +#: html/Ticket/Elements/ShowAttachments:26 +msgid "Attachments" +msgstr "Vedlegg" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "Aug." + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "August" + +#: html/Admin/Elements/ModifyUser:66 +msgid "AuthSystem" +msgstr "AutSystem" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "Autosvar" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "Autosvar Til Kunde" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "AutosvarTilKunde" + +#: 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" + +#: bin/rt-commit-handler:827 +#. ($val) +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/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +msgid "Basics" +msgstr "Detaljer" + +#: html/Ticket/Update.html:83 +msgid "Bcc" +msgstr "Bcc" + +#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +msgid "Be sure to save your changes" +msgstr "Sørg for  lagre endringene dine" + +#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:320 +msgid "Before" +msgstr "Før" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "Begynn Godkjenning" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "Blank" + +#: html/Search/Listing.html:79 +msgid "Bookmarkable URL for this search" +msgstr "URL som kan brukes som bokmerke for dette søket" + +#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +msgid "Brief headers" +msgstr "Begrens headere" + +#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +msgid "Bulk ticket update" +msgstr "Masseoppdatering av saker" + +#: lib/RT/User_Overlay.pm:1352 +msgid "Can not modify system users" +msgstr "Kan ikke endre systembrukere" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Can this principal see this queue" +msgstr "Kan denne primæren se denne køen" + +#: lib/RT/CustomField_Overlay.pm:206 +msgid "Can't add a custom field value without a name" +msgstr "Kan ikke legge til en verdi for et fleksifelt uten navn" + +#: lib/RT/Link_Overlay.pm:132 +msgid "Can't link a ticket to itself" +msgstr "Kan ikke koble en sak til seg selv" + +#: lib/RT/Ticket_Overlay.pm:2794 +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" + +#: lib/RT/Ticket_Overlay.pm:2612 lib/RT/Ticket_Overlay.pm:2681 +msgid "Can't specifiy both base and target" +msgstr "Kan ikke spesifisere bÃ¥de base og mÃ¥l." + +#: html/autohandler:99 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "Kunne ikke oprette bruker: %1" + +#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:49 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +msgid "Cc" +msgstr "Cc" + +#: html/SelfService/Prefs.html:31 +msgid "Change password" +msgstr "Endre passord" + +#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +msgid "Check box to delete" +msgstr "Merk for Ã¥ slette" + +#: html/Admin/Elements/SelectRights:31 +msgid "Check box to revoke right" +msgstr "Merk for Ã¥ trekke tilbake rettighet" + +#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:57 +msgid "Children" +msgstr "Barn" + +#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +msgid "City" +msgstr "By" + +#: html/Ticket/Elements/ShowDates:47 +msgid "Closed" +msgstr "Lukket" + +#: html/SelfService/Closed.html:25 +msgid "Closed Tickets" +msgstr "Lukkede Saker" + +#: NOT FOUND IN SOURCE +msgid "Closed requests" +msgstr "Lukkede forespørsler" + +#: html/SelfService/Elements/Tabs:45 +msgid "Closed tickets" +msgstr "Lukkede saker" + +#: NOT FOUND IN SOURCE +msgid "Code" +msgstr "Kode" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "Kunne ikke tolke kommando!\\n" + +#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +msgid "Comment" +msgstr "Kommenter" + +#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +msgid "Comment Address" +msgstr "Kommentaraddresse" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "Kommentaren ble ikke lagret" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Comment on tickets" +msgstr "Kommenter saker" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "CommentOnTicket" +msgstr "KommenterSak" + +#: html/Admin/Elements/ModifyUser:35 +msgid "Comments" +msgstr "Kommentarer" + +#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +msgid "Comments (Not sent to requestors)" +msgstr "Kommentarer (Ikke send til kunder)" + +#: html/Search/Bulk.html:122 +msgid "Comments (not sent to requestors)" +msgstr "Kommentarer (ikke sendt til kunder)" + +#: html/Elements/ViewUser:27 +#. ($name) +msgid "Comments about %1" +msgstr "Kommentarer til %1" + +#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +msgid "Comments about this user" +msgstr "Kommentarer om denne brukeren" + +#: lib/RT/Transaction_Overlay.pm:543 +msgid "Comments added" +msgstr "La til kommentarer " + +#: lib/RT/Action/Generic.pm:140 +msgid "Commit Stubbed" +msgstr "Lagring forkortet" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "Kompilatorrestriksjoner" + +#: html/Admin/Elements/EditScrip:41 +msgid "Condition" +msgstr "Forutsetning" + +#: bin/rt-crontool:109 +msgid "Condition matches..." +msgstr "Forutsetning gjelder..." + +#: lib/RT/Scrip_Overlay.pm:160 +msgid "Condition not found" +msgstr "Forutsetning ikke funnet" + +#: html/Elements/Tabs:50 +msgid "Configuration" +msgstr "Konfigurasjon" + +#: html/SelfService/Prefs.html:33 +msgid "Confirm" +msgstr "Bekreft" + +#: html/Admin/Elements/ModifyUser:60 +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:44 html/Ticket/ModifyAll.html:87 +msgid "Content" +msgstr "Innhold" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "Kunne ikke opprette gruppen" + +#: etc/initialdata:271 +msgid "Correspondence" +msgstr "Korrespondanse" + +#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +msgid "Correspondence Address" +msgstr "Korrespondanseaddresse" + +#: lib/RT/Transaction_Overlay.pm:539 +msgid "Correspondence added" +msgstr "Korrespondanse lagt til" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "Korrespondansen ble ikke lagret" + +#: lib/RT/Ticket_Overlay.pm:3525 +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/Ticket_Overlay.pm:3031 lib/RT/Ticket_Overlay.pm:3039 lib/RT/Ticket_Overlay.pm:3055 +msgid "Could not change owner. " +msgstr "Kunne ikke endre eier. " + +#: html/Admin/Elements/EditCustomField:85 html/Admin/Elements/EditCustomFields:166 +#. ($msg) +msgid "Could not create CustomField" +msgstr "Kunne ikke opprette fleksifelt" + +#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +msgid "Could not create group" +msgstr "Kunne ikke opprette gruppe" + +#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#. ($msg) +msgid "Could not create template: %1" +msgstr "Kunne ikke opprette mal: %1" + +#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:334 +msgid "Could not create ticket. Queue not set" +msgstr "Kunne ikke opprette sak. Kø ikke satt" + +#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:422 +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:621 lib/RT/Ticket_Overlay.pm:1422 +msgid "Could not find or create that user" +msgstr "Kunne ikke finne eller lage den brukeren" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +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/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +msgid "Could not load group" +msgstr "Kunne ikke hente gruppen" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($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:1443 +#. ($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:740 +#. ($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" + +#: lib/RT/Ticket_Overlay.pm:1559 +#. ($args{'Type'}) +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/Group_Overlay.pm:985 +msgid "Couldn't add member to group" +msgstr "Kunne ikke legge til medlemmmer i gruppen" + +#: lib/RT/Ticket_Overlay.pm:3535 lib/RT/Ticket_Overlay.pm:3591 +#. ($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/Interface/Web.pm:900 +msgid "Couldn't find row" +msgstr "Kunne ikke finne raden" + +#: lib/RT/Group_Overlay.pm:959 +msgid "Couldn't find that principal" +msgstr "Kunne ikke finne primæren" + +#: lib/RT/CustomField_Overlay.pm:240 +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:112 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Kunne ikke laste %1 fra brukerdatabasen.\\n" + +#: 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." + +#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#. ($id) +msgid "Couldn't load group %1" +msgstr "Kunne ikke laste gruppen %1" + +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +msgid "Couldn't load link" +msgstr "Kunne ikke laste linken" + +#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#. ($id) +msgid "Couldn't load queue" +msgstr "Kunne ikke laste køen" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#. ($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" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "Kunne ikke finne mal" + +#: html/Admin/Users/Prefs.html:79 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "Kunne ikke laste den brukeren (%1)" + +#: html/SelfService/Display.html:109 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Kunne ikke laste saken '%1'" + +#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +msgid "Country" +msgstr "Land" + +#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +msgid "Create" +msgstr "Opprett" + +#: etc/initialdata:128 +msgid "Create Tickets" +msgstr "Opprett Saker" + +#: html/Admin/Elements/EditCustomField:75 +msgid "Create a CustomField" +msgstr "Oprett et fleksifelt" + +#: html/Admin/Queues/CustomField.html:48 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "Opprett et fleksifelt for køen %1" + +#: html/Admin/Global/CustomField.html:48 +msgid "Create a CustomField which 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:67 html/Admin/Groups/Modify.html:93 +msgid "Create a new group" +msgstr "Opprett en ny gruppe" + +#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +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:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +msgid "Create a new ticket" +msgstr "Opprett en ny sak" + +#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +msgid "Create a new user" +msgstr "Opprett en ny bruker" + +#: html/Admin/Queues/Modify.html:103 +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:59 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "Opprett et scrip for køen %1" + +#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +msgid "Create a template" +msgstr "Opprett en mal" + +#: html/SelfService/Create.html:25 +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:130 +msgid "Create new tickets based on this scrip's template" +msgstr "Opprett nye saker basert pÃ¥ dette scripets mal" + +#: html/SelfService/Create.html:78 +msgid "Create ticket" +msgstr "Opprett sak" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Create tickets in this queue" +msgstr "Opprett saker i denne køen" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Create, delete and modify custom fields" +msgstr "Opprett, slett og modifiser fleksifelt" + +#: lib/RT/Queue_Overlay.pm:68 +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:59 +msgid "Create, delete and modify the members of personal groups" +msgstr "Opprett, slett og modifiser medlemmene av personlige grupper" + +#: lib/RT/System.pm:60 +msgid "Create, delete and modify users" +msgstr "Opprett, slett og modifiser brukere" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "CreateTicket" +msgstr "OpprettSak" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +msgid "Created" +msgstr "Opprettet" + +#: html/Admin/Elements/EditCustomField:88 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "Opprettet Fleksifelt %1" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "Opprettet malen %1" + +#: html/Ticket/Elements/EditLinks:28 +msgid "Current Relationships" +msgstr "Eksisterende Forhold" + +#: html/Admin/Elements/EditScrips:30 +msgid "Current Scrips" +msgstr "Eksisterende Scrips" + +#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +msgid "Current members" +msgstr "Eksisterende medlemmer" + +#: html/Admin/Elements/SelectRights:29 +msgid "Current rights" +msgstr "Eksisterende rettigheter" + +#: html/Search/Listing.html:71 +msgid "Current search criteria" +msgstr "Eksisterende søkekriterier" + +#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +msgid "Current watchers" +msgstr "Eksisterende overvÃ¥kere" + +#: html/Admin/Global/CustomField.html:55 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "Fleksifeltet #%1" + +#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:36 +msgid "Custom Fields" +msgstr "Fleksifelt" + +#: html/Admin/Elements/EditScrip:73 +msgid "Custom action cleanup code" +msgstr "Avsluttningskode" + +#: html/Admin/Elements/EditScrip:65 +msgid "Custom action preparation code" +msgstr "Forberedelseskode" + +#: html/Admin/Elements/EditScrip:49 +msgid "Custom condition" +msgstr "Forutsetning" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "Fleksifeltet %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "Fleksifeltet %1 har en verdi." + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "Fleksifeltet %1 har ingen verdi." + +#: lib/RT/Ticket_Overlay.pm:3427 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Fleksifeltet %1 kunne ikke finnes" + +#: html/Admin/Elements/EditCustomFields:197 +msgid "Custom field deleted" +msgstr "Fleksifeltet slettet" + +#: lib/RT/Ticket_Overlay.pm:3577 +msgid "Custom field not found" +msgstr "Fleksifeltet kunne ikke finnes" + +#: lib/RT/CustomField_Overlay.pm:350 +#. ($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:250 +msgid "Custom field value could not be deleted" +msgstr "Fleksifeltets verdi kunne ikke slettes" + +#: lib/RT/CustomField_Overlay.pm:356 +msgid "Custom field value could not be found" +msgstr "Fleksifeltets verdi kunne ikke finnes" + +#: lib/RT/CustomField_Overlay.pm:248 lib/RT/CustomField_Overlay.pm:358 +msgid "Custom field value deleted" +msgstr "Fleksifeltverdi slettet" + +#: lib/RT/Transaction_Overlay.pm:548 +msgid "CustomField" +msgstr "FleksiFelt" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "Datafeil" + +#: html/SelfService/Display.html:39 html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:55 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +msgid "Dates" +msgstr "Datoer" + +#: lib/RT/Date.pm:422 +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:207 +msgid "Default Autoresponse template" +msgstr "Standard Autosvarmal" + +#: etc/initialdata:281 +msgid "Default admin comment template" +msgstr "Standard Adminkommentarmal" + +#: etc/initialdata:260 +msgid "Default admin correspondence template" +msgstr "Standard Adminkorrespondensemal" + +#: etc/initialdata:272 +msgid "Default correspondence template" +msgstr "Standard korrespondensemal" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "Standard transaksjonsmal" + +#: lib/RT/Transaction_Overlay.pm:643 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "Standard: %1/%2 endret seg fra %3 til %4" + +#: html/User/Delegation.html:25 html/User/Delegation.html:28 +msgid "Delegate rights" +msgstr "Deleger rettigheter" + +#: lib/RT/System.pm:63 +msgid "Delegate specific rights which have been granted to you." +msgstr "Deleger spesifikke rettigheter som har blitt gitt til deg." + +#: lib/RT/System.pm:63 +msgid "DelegateRights" +msgstr "DelegerRettigheter" + +#: html/User/Elements/Tabs:38 +msgid "Delegation" +msgstr "Delegering" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "Slett" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "Delete tickets" +msgstr "Slett saker" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "DeleteTicket" +msgstr "SlettSak" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "Sletting av dette objektet kan føre til inkonsistens" + +#: lib/RT/Queue_Overlay.pm:292 +msgid "Deleting this object would break referential integrity" +msgstr "Sletting av dette objektet vil føre til inkonsistens" + +#: lib/RT/User_Overlay.pm:438 +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:45 +msgid "Deny" +msgstr "Nekt" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:37 +msgid "Depended on by" +msgstr "Avhengighet fra" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "Avhengigheter: \\n" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +msgid "Depends on" +msgstr "Avhengig av" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "AvhengigAv" + +#: html/Elements/SelectSortOrder:35 +msgid "Descending" +msgstr "Synkende" + +#: html/SelfService/Create.html:73 html/Ticket/Create.html:119 +msgid "Describe the issue below" +msgstr "Beskriv problemet under" + +#: html/Admin/Elements/AddCustomFieldValue:37 html/Admin/Elements/EditCustomField:39 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +msgid "Description" +msgstr "Beskrivelse" + +#: NOT FOUND IN SOURCE +msgid "Details" +msgstr "Detaljer" + +#: html/Ticket/Elements/Tabs:85 +msgid "Display" +msgstr "Vis" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Display Access Control List" +msgstr "Vis Rettigheter" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Display Scrip templates for this queue" +msgstr "Vis Scrip-maler for denne køen" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Display Scrips for this queue" +msgstr "Vis Scrip-maler for denne køen" + +#: html/Ticket/Elements/ShowHistory:35 +msgid "Display mode" +msgstr "Visningsmodus" + +#: NOT FOUND IN SOURCE +msgid "Display ticket #%1" +msgstr "Vis saken #%1" + +#: lib/RT/System.pm:54 +msgid "Do anything and everything" +msgstr "Gjør hva som helst" + +#: html/Elements/Refresh:30 +msgid "Don't refresh this page." +msgstr "Ikke last denne siden p nytt" + +#: html/Search/Elements/PickRestriction:114 +msgid "Don't show search results" +msgstr "Ikke vis søkeresultat" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "Download" +msgstr "Last ned" + +#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +msgid "Due" +msgstr "Innen" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "Innendato '%1' kunne ikke tolkes"" + +#: bin/rt-commit-handler:754 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "FEIL: Kunne ikke laste sak '%1': %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "Rediger" + +#: NOT FOUND IN SOURCE +msgid "Edit Conditions" +msgstr "Rediger Forhold" + +#: html/Admin/Queues/CustomFields.html:45 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "Rediger fleksifelt for %1" + +#: html/Ticket/ModifyLinks.html:36 +msgid "Edit Relationships" +msgstr "Rediger Forhold" + +#: html/Admin/Queues/Templates.html:42 +#. ($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" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "Rediger scrips" + +#: html/Admin/Global/index.html:46 +msgid "Edit system templates" +msgstr "Rediger systemmal" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "Rediger maler for %1" + +#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:118 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "Rediger Konfigurasjon for køen %1" + +#: html/Admin/Elements/ModifyUser:25 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "Redigerer Konfigurasjonen av brukern %1" + +#: html/Admin/Elements/EditCustomField:91 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Redigerer Fleksifeltet %1" + +#: html/Admin/Groups/Members.html:32 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Redigerer medlemsskap for gruppen %1"" + +#: html/User/Groups/Members.html:129 +#. ($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/Ticket_Overlay.pm:2622 lib/RT/Ticket_Overlay.pm:2690 +msgid "Either base or target must be specified" +msgstr "Enten base eller mÃ¥l mÃ¥ oppgis" + +#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +msgid "Email" +msgstr "Epost" + +#: lib/RT/User_Overlay.pm:188 +msgid "Email address in use" +msgstr "Epostaddresse i bruk" + +#: html/Admin/Elements/ModifyUser:42 +msgid "EmailAddress" +msgstr "EpostAddresse" + +#: html/Admin/Elements/ModifyUser:54 +msgid "EmailEncoding" +msgstr "EpostFormat" + +#: html/Admin/Elements/EditCustomField:51 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "Aktivt (Fjern merkingen for  deaktivere dette fleksifeltet)" + +#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "Aktiv (Fjern merkingen for  deaktivere denne gruppen)" + +#: html/Admin/Queues/Modify.html:84 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Aktiv (Fjern merkingen for  deaktivere denne køen)" + +#: html/Admin/Elements/EditCustomFields:99 +msgid "Enabled Custom Fields" +msgstr "Aktive Fleksifelt" + +#: html/Admin/Queues/index.html:56 +msgid "Enabled Queues" +msgstr "Aktive Køer" + +#: html/Admin/Elements/EditCustomField:107 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "Aktiv status %1" + +#: lib/RT/CustomField_Overlay.pm:428 +msgid "Enter multiple values" +msgstr "Skriv multiple verdier" + +#: lib/RT/CustomField_Overlay.pm:425 +msgid "Enter one value" +msgstr "Skriv en verdi" + +#: html/Ticket/Elements/EditLinks:112 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Skriv saker og/eller URIer som det skal linkes til. Separer dem med mellomrom" + +#: html/Elements/Login:39 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +msgid "Error" +msgstr "Feil" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "Feilet ved opprettelse av OvervÃ¥ker" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Feil i parameterne til Queue->AddWatcher" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Feil i parameterne til Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1356 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Feil i parameterne til Ticket->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1532 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Feil i parameterne til Ticket->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "Alle" + +#: bin/rt-crontool:194 +msgid "Example:" +msgstr "Eksempel:" + +#: html/Admin/Elements/ModifyUser:64 +msgid "ExternalAuthId" +msgstr "EksternAutId" + +#: html/Admin/Elements/ModifyUser:58 +msgid "ExternalContactInfoId" +msgstr "EksternKontaktInfoId" + +#: html/Admin/Users/Modify.html:73 +msgid "Extra info" +msgstr "Ekstra info" + +#: lib/RT/User_Overlay.pm:302 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Kunne ikke finne pseudogruppen 'Privilgerte' brukere." + +#: lib/RT/User_Overlay.pm:309 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Kunne ikke finne 'pseudogruppen 'Upriviligerte' brukere" + +#: bin/rt-crontool:138 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "Kunne ikke laste modulen %1. (%2)" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "Feb." + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "Februar" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "End" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "Endelig Prioritet" + +#: lib/RT/Ticket_Overlay.pm:1162 +msgid "FinalPriority" +msgstr "EndeligPrioritet" + +#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +msgid "Find group whose" +msgstr "Finn grupper hvor" + +#: NOT FOUND IN SOURCE +msgid "Find new/open tickets" +msgstr "Finn nye/Âpne saker" + +#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +msgid "Find people whose" +msgstr "Finn folk hvor" + +#: html/Search/Listing.html:108 +msgid "Find tickets" +msgstr "Finn saker" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "Fullfør godkjennelse" + +#: html/Ticket/Elements/Tabs:58 +msgid "First" +msgstr "Først" + +#: html/Search/Listing.html:41 +msgid "First page" +msgstr "Første side" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "Foo Bar Baz" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "Foo!" + +#: html/Search/Bulk.html:87 +msgid "Force change" +msgstr "Tving gjennom endring" + +#: html/Search/Listing.html:106 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "Fant %quant(%1,sak)" + +#: lib/RT/Interface/Web.pm:902 +msgid "Found Object" +msgstr "Fant Objektet" + +#: html/Admin/Elements/ModifyUser:44 +msgid "FreeformContactInfo" +msgstr "FriforkKontaktInfo" + +#: lib/RT/CustomField_Overlay.pm:38 +msgid "FreeformMultiple" +msgstr "FriformMultipel" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformSingle" +msgstr "FriformSingel" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "Fre." + +#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +msgid "Full headers" +msgstr "Fulle headere" + +#: 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:593 +#. ($New->Name) +msgid "Given to %1" +msgstr "Gitt til %1" + +#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +msgid "Global" +msgstr "Global" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "Globale Nøkkelordvalg" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "Globale Scrip" + +#: html/Admin/Elements/SelectTemplate:38 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "Globale maler: %1" + +#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +msgid "Go!" +msgstr "Start!" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "Gyldig pgp sig fra %1\\n" + +#: html/Search/Listing.html:50 +msgid "Goto page" +msgstr "GÃ¥ til siden" + +#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +msgid "Goto ticket" +msgstr "GÃ¥ til saken" + +#: NOT FOUND IN SOURCE +msgid "Grand" +msgstr "Stor" + +#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +msgid "Group" +msgstr "Gruppe" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "Gruppen %1 %2: %3" + +#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +msgid "Group Rights" +msgstr "Grupperettigheter" + +#: lib/RT/Group_Overlay.pm:965 +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:77 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "Gruppen kunne ikke opprettes: %1" + +#: lib/RT/Group_Overlay.pm:497 +msgid "Group created" +msgstr "Gruppen opprettet" + +#: lib/RT/Group_Overlay.pm:1133 +msgid "Group has no such member" +msgstr "Gruppen har ikke det medlemmet" + +#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +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/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +msgid "Groups" +msgstr "Grupper" + +#: lib/RT/Group_Overlay.pm:971 +msgid "Groups can't be members of their members" +msgstr "Grupper kan ikke være medlemmer av sine medlemmer" + +#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +msgid "Hello!" +msgstr "Hallo!" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "Hallo, %1" + +#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +msgid "History" +msgstr "Historikk" + +#: html/Admin/Elements/ModifyUser:68 +msgid "HomePhone" +msgstr "HjemmeTelefon" + +#: html/Elements/Tabs:44 +msgid "Homepage" +msgstr "Hjemmeside" + +#: lib/RT/Base.pm:74 +#. (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/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "Id" + +#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +msgid "Identity" +msgstr "Identitet" + +#: etc/upgrade/2.1.71:86 +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" + +#: bin/rt-crontool:190 +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:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "If you've updated anything above, be sure to" +msgstr "Hvis du har oppdatert noe over, sørg for at" + +#: lib/RT/Interface/Web.pm:894 +msgid "Illegal value for %1" +msgstr "Ugyldig verdig for %1" + +#: lib/RT/Interface/Web.pm:897 +msgid "Immutable field" +msgstr "LÃ¥st felt" + +#: html/Admin/Elements/EditCustomFields:74 +msgid "Include disabled custom fields in listing." +msgstr "Inkluder deaktiverte fleksifelt i listen." + +#: html/Admin/Queues/index.html:43 +msgid "Include disabled queues in listing." +msgstr "Inkluder deaktiverte køer i listen." + +#: html/Admin/Users/index.html:47 +msgid "Include disabled users in search." +msgstr "Inkluder deaktiverte brukere i søket." + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "Startprioritet" + +#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +msgid "InitialPriority" +msgstr "StartPrioritet" + +#: lib/RT/ScripAction_Overlay.pm:105 +msgid "Input error" +msgstr "Feil i inntasting" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "Interesse registrert" + +#: lib/RT/Ticket_Overlay.pm:3796 +msgid "Internal Error" +msgstr "Intern Feil" + +#: lib/RT/Record.pm:143 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "Intern Feil: %1" + +#: lib/RT/Group_Overlay.pm:644 +msgid "Invalid Group Type" +msgstr "Ugyldig gruppetype" + +#: lib/RT/Principal_Overlay.pm:128 +msgid "Invalid Right" +msgstr "Ugyldige rettigheter" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "Ugyldig Type" + +#: lib/RT/Interface/Web.pm:899 +msgid "Invalid data" +msgstr "Ugyldig data" + +#: lib/RT/Ticket_Overlay.pm:439 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "Ugydlig eier. Setter til 'nobody'." + +#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "Ugyldig kø" + +#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +msgid "Invalid right" +msgstr "Ugyldige rettigheter" + +#: lib/RT/Record.pm:118 +#. ($key) +msgid "Invalid value for %1" +msgstr "Ugyldig verdi for %1" + +#: lib/RT/Ticket_Overlay.pm:3434 +msgid "Invalid value for custom field" +msgstr "Ugyldig verdi for fleksifeltet." + +#: lib/RT/Ticket_Overlay.pm:346 +msgid "Invalid value for status" +msgstr "Ugyldig verdi for status" + +#: bin/rt-crontool:191 +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:192 +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:163 +msgid "It takes several arguments:" +msgstr "Det tar flere parametere:" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "Ting som venter p min godkjenning" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "Jan." + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "Januar" + +#: lib/RT/Group_Overlay.pm:149 +msgid "Join or leave this group" +msgstr "Bli med i eller forlat denne gruppen" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "Jul." + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "Juli" + +#: html/Ticket/Elements/Tabs:99 +msgid "Jumbo" +msgstr "Total" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "Jun." + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "Juni" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "Nøkkelord" + +#: html/Admin/Elements/ModifyUser:52 +msgid "Lang" +msgstr "SprÃ¥k" + +#: html/Ticket/Elements/Tabs:73 +msgid "Last" +msgstr "Siste" + +#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +msgid "Last Contact" +msgstr "Siste Kontakt" + +#: html/Elements/SelectDateType:29 +msgid "Last Contacted" +msgstr "Sist kontaktet" + +#: html/Search/Elements/TicketHeader:41 +msgid "Last Notified" +msgstr "Sist Informert" + +#: html/Elements/SelectDateType:30 +msgid "Last Updated" +msgstr "Sist Oppdatert" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "SistOppdatert" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "Igjen" + +#: html/Admin/Users/Modify.html:83 +msgid "Let this user access RT" +msgstr "La denne brukeren fÃ¥ tilgang til RT" + +#: html/Admin/Users/Modify.html:87 +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" + +#: lib/RT/Ticket_Overlay.pm:2704 +msgid "Link already exists" +msgstr "Lenke finnes alt" + +#: lib/RT/Ticket_Overlay.pm:2716 +msgid "Link could not be created" +msgstr "Lenke kunne ikke opprettes" + +#: lib/RT/Ticket_Overlay.pm:2724 lib/RT/Ticket_Overlay.pm:2734 +#. ($TransString) +msgid "Link created (%1)" +msgstr "Lenke opprettet (%1)" + +#: lib/RT/Ticket_Overlay.pm:2645 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Lenke slettet (%1)" + +#: lib/RT/Ticket_Overlay.pm:2651 +msgid "Link not found" +msgstr "Lenke ble ikke funnet" + +#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "Knytt sak #%1" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "Knytt sak %1" + +#: html/Ticket/Elements/Tabs:97 +msgid "Links" +msgstr "Lenker" + +#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +msgid "Location" +msgstr "Lokasjon" + +#: lib/RT.pm:159 +#. ($RT::LogDir) +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:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "Logget inn som %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +msgid "Login" +msgstr "Innlogging" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "Logg av" + +#: html/Search/Bulk.html:86 +msgid "Make Owner" +msgstr "Sett Eier" + +#: html/Search/Bulk.html:102 +msgid "Make Status" +msgstr "Sett Status" + +#: html/Search/Bulk.html:109 +msgid "Make date Due" +msgstr "Sett tidsfrist" + +#: html/Search/Bulk.html:110 +msgid "Make date Resolved" +msgstr "Sett løsningsdato" + +#: html/Search/Bulk.html:107 +msgid "Make date Started" +msgstr "Sett startdato" + +#: html/Search/Bulk.html:106 +msgid "Make date Starts" +msgstr "Sett startdato" + +#: html/Search/Bulk.html:108 +msgid "Make date Told" +msgstr "Sett informert dato" + +#: html/Search/Bulk.html:99 +msgid "Make priority" +msgstr "Sett prioritet" + +#: html/Search/Bulk.html:100 +msgid "Make queue" +msgstr "Sett Kø" + +#: html/Search/Bulk.html:98 +msgid "Make subject" +msgstr "Sett Emne" + +#: html/Admin/index.html:33 +msgid "Manage groups and group membership" +msgstr "Sett grupper og gruppemedlemsskap" + +#: html/Admin/index.html:39 +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:36 +msgid "Manage queues and queue-specific properties" +msgstr "Rediger køer og kø-spesifike egenskaper" + +#: html/Admin/index.html:30 +msgid "Manage users and passwords" +msgstr "Rediger brukere og passord" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "Mar." + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "Mars" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "Mai" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "Mai." + +#: lib/RT/Group_Overlay.pm:982 +msgid "Member added" +msgstr "Medlem lagt til" + +#: lib/RT/Group_Overlay.pm:1140 +msgid "Member deleted" +msgstr "Medlem slettet" + +#: lib/RT/Group_Overlay.pm:1144 +msgid "Member not deleted" +msgstr "Medlem ikke slettet" + +#: html/Elements/SelectLinkType:26 +msgid "Member of" +msgstr "Medlem av" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "MedlemAv" + +#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +msgid "Members" +msgstr "Medlemmer" + +#: lib/RT/Ticket_Overlay.pm:2891 +msgid "Merge Successful" +msgstr "Fletting vellykket" + +#: lib/RT/Ticket_Overlay.pm:2811 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "Fletting feilet. Kunne ikke sette EffektivId" + +#: html/Ticket/Elements/EditLinks:115 +msgid "Merge into" +msgstr "Flett inn i" + +#: html/Ticket/Update.html:102 +msgid "Message" +msgstr "Melding" + +#: lib/RT/Interface/Web.pm:901 +msgid "Missing a primary key?: %1" +msgstr "Mangler en primærnøkkel?: %1" + +#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +msgid "Mobile" +msgstr "Mobil" + +#: html/Admin/Elements/ModifyUser:72 +msgid "MobilePhone" +msgstr "MobilTelefon" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify Access Control List" +msgstr "Endre Tilgangslister" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "Endre Fleksifeltet %1" + +#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +msgid "Modify Custom Fields which apply to all queues" +msgstr "Endre Fleksifelt som gjelder for alle køer" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "Modify Scrip templates for this queue" +msgstr "Endre Scripmaler for denne køen" + +#: lib/RT/Queue_Overlay.pm:76 +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/Queues/CustomField.html:45 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "Endre et fleksifelt for køen %1" + +#: html/Admin/Global/CustomField.html:53 +msgid "Modify a CustomField which applies to all queues" +msgstr "Endre et fleksifelt som gjelder for alle køer" + +#: html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "Endre et scrip for køen %1" + +#: html/Admin/Global/Scrip.html:48 +msgid "Modify a scrip which applies to all queues" +msgstr "Endre et scrip som gjelder for alle køer" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "Endre datoer for # %1" + +#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Endre datoer for #%1" + +#: html/Ticket/ModifyDates.html:35 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Endre datoer for sak # %1" + +#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +msgid "Modify global group rights" +msgstr "Endre globale grupperettigheter" + +#: html/Admin/Global/GroupRights.html:33 +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:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +msgid "Modify global user rights" +msgstr "Endre globale brukerrettigheter" + +#: html/Admin/Global/UserRights.html:33 +msgid "Modify global user rights." +msgstr "Endre globale brukerrettigheter" + +#: lib/RT/Group_Overlay.pm:146 +msgid "Modify group metadata or delete group" +msgstr "Endre gruppens metadata eller slette gruppen" + +#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#. ($GroupObj->Name) +msgid "Modify group rights for group %1" +msgstr "Endre grupperettigheter for %1 gruppen" + +#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "Endre grupperettigheter %1 køen" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Modify membership roster for this group" +msgstr "Endre medlemsliste for denne gruppen" + +#: lib/RT/System.pm:61 +msgid "Modify one's own RT account" +msgstr "Endre sin egen RT konto" + +#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Endre hvem som er relatert til %1 køen" + +#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#. ($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:44 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Endre scrips for %1 køen" + +#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +msgid "Modify scrips which apply to all queues" +msgstr "Endre scrips som gjelder alle køer" + +#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#. (loc($TemplateObj->Name())) +#. ($TemplateObj->id) +msgid "Modify template %1" +msgstr "Endre mal %1" + +#: html/Admin/Global/Templates.html:44 +msgid "Modify templates which apply to all queues" +msgstr "Endre maler som gjelder for alle køer" + +#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "Endre gruppen %1" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Modify the queue watchers" +msgstr "Endre overvÃ¥kere for køen" + +#: html/Admin/Users/Modify.html:236 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "Endre brukeren %1" + +#: html/Ticket/ModifyAll.html:37 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Endre sak # %1" + +#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Endre sak #%1" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Modify tickets" +msgstr "Endre saker" + +#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#. ($GroupObj->Name) +msgid "Modify user rights for group %1" +msgstr "Endre brukerrettigheter for %1 gruppen" + +#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#. ($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:70 +msgid "ModifyACL" +msgstr "EndreACL" + +#: lib/RT/Group_Overlay.pm:149 +msgid "ModifyOwnMembership" +msgstr "EndreEgetMedlemskap" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "ModifyQueueWatchers" +msgstr "EndreKøOvervÃ¥kere" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "ModifyScrips" +msgstr "EndreScrips" + +#: lib/RT/System.pm:61 +msgid "ModifySelf" +msgstr "EndreSegSelv" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "ModifyTemplate" +msgstr "EndreMal" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "ModifyTicket" +msgstr "EndreSak" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "Man." + +#: html/Ticket/Elements/ShowRequestor:42 +#. ($name) +msgid "More about %1" +msgstr "Mer om %1" + +#: html/Admin/Elements/EditCustomFields:61 +msgid "Move down" +msgstr "Flytt ned" + +#: html/Admin/Elements/EditCustomFields:53 +msgid "Move up" +msgstr "Flytt opp" + +#: html/Admin/Elements/SelectSingleOrMultiple:27 +msgid "Multiple" +msgstr "Flere" + +#: lib/RT/User_Overlay.pm:179 +msgid "Must specify 'Name' attribute" +msgstr "MÃ¥ spesifisere attributten 'Navn'" + +#: html/SelfService/Elements/MyRequests:49 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "Mine %1 saker" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "Mine saker til godkjenning" + +#: html/Approvals/index.html:25 html/Approvals/index.html:26 +msgid "My approvals" +msgstr "Mine saker til godkjenning" + +#: html/Admin/Elements/AddCustomFieldValue:33 html/Admin/Elements/EditCustomField:34 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +msgid "Name" +msgstr "Navn" + +#: lib/RT/User_Overlay.pm:186 +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:52 +msgid "Never" +msgstr "Aldri" + +#: html/Elements/Quicksearch:30 +msgid "New" +msgstr "Ny" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +msgid "New Password" +msgstr "Nytt Passord" + +#: etc/initialdata:317 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "Ny, Venter pÃ¥ Godkjennelse" + +#: html/Ticket/Elements/EditLinks:111 +msgid "New Relationships" +msgstr "Nye forhold" + +#: html/Ticket/Elements/Tabs:36 +msgid "New Search" +msgstr "Nytt Søk" + +#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +msgid "New custom field" +msgstr "Nytt fleksifelt" + +#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +msgid "New group" +msgstr "Ny gruppe" + +#: html/SelfService/Prefs.html:32 +msgid "New password" +msgstr "Nytt passord" + +#: lib/RT/User_Overlay.pm:647 +msgid "New password notification sent" +msgstr "Melding om nytt passord sendt" + +#: html/Admin/Elements/QueueTabs:70 +msgid "New queue" +msgstr "Ny kø" + +#: NOT FOUND IN SOURCE +msgid "New request" +msgstr "Ny forespørsel" + +#: html/Admin/Elements/SelectRights:42 +msgid "New rights" +msgstr "Nye rettigheter" + +#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +msgid "New scrip" +msgstr "Nytt scrip" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "Nytt søk" + +#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:50 +msgid "New template" +msgstr "Ny mal" + +#: html/SelfService/Elements/Tabs:48 +msgid "New ticket" +msgstr "Ny sak" + +#: lib/RT/Ticket_Overlay.pm:2778 +msgid "New ticket doesn't exist" +msgstr "Ny sak eksistere ikke" + +#: html/Admin/Elements/UserTabs:52 +msgid "New user" +msgstr "Ny bruker" + +#: html/Admin/Elements/CreateUserCalled:26 +msgid "New user called" +msgstr "Ny bruker kalt" + +#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +msgid "New watchers" +msgstr "Ny overvÃ¥ker" + +#: html/Admin/Users/Prefs.html:42 +msgid "New window setting" +msgstr "Instillinger for nytt vindu" + +#: html/Ticket/Elements/Tabs:69 +msgid "Next" +msgstr "Neste" + +#: html/Search/Listing.html:48 +msgid "Next page" +msgstr "Neste side" + +#: html/Admin/Elements/ModifyUser:50 +msgid "NickName" +msgstr "KalleNavn" + +#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +msgid "Nickname" +msgstr "Kallenavn" + +#: html/Admin/Elements/EditCustomField:90 html/Admin/Elements/EditCustomFields:105 +msgid "No CustomField" +msgstr "Ingen FleksiFelt" + +#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +msgid "No Group defined" +msgstr "Ingen grupper definert" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +msgid "No Queue defined" +msgstr "Ingen kø definert" + +#: bin/rt-crontool:56 +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:79 html/Admin/Queues/Template.html:76 +msgid "No Template" +msgstr "Ingen Mal" + +#: bin/rt-commit-handler:764 +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:46 +msgid "No action" +msgstr "Ingen handling" + +#: lib/RT/Interface/Web.pm:896 +msgid "No column specified" +msgstr "Ingen kolonne spesifisert" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "Ingen kommando funnet\\n" + +#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +msgid "No comment entered about this user" +msgstr "Ingen kommentar skrevet om denne brukeren" + +#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +msgid "No correspondence attached" +msgstr "Ingen korrespondanse vedlagt" + +#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#. (ref $self) +msgid "No description for %1" +msgstr "Ingen beskrivelse for %1" + +#: lib/RT/Users_Overlay.pm:145 +msgid "No group specified" +msgstr "Ingen gruppe spesifisert" + +#: lib/RT/User_Overlay.pm:865 +msgid "No password set" +msgstr "Passordet er ikke satt" + +#: lib/RT/Queue_Overlay.pm:259 +msgid "No permission to create queues" +msgstr "Ingen tilgang til Ã¥ opprette køer" + +#: lib/RT/Ticket_Overlay.pm:342 +#. ($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:152 +msgid "No permission to create users" +msgstr "Ikke tilgang til Ã¥ opprette brukere" + +#: html/SelfService/Display.html:118 +msgid "No permission to display that ticket" +msgstr "Ikke tilgang til Ã¥ vise den saken" + +#: html/SelfService/Update.html:52 +msgid "No permission to view update ticket" +msgstr "Ingen tilgang til Ã¥ se oppdatering av saken" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +msgid "No principal specified" +msgstr "Ingen primær spesifisert" + +#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +msgid "No principals selected." +msgstr "Ingen primære spesifisert" + +#: html/Admin/Queues/index.html:35 +msgid "No queues matching search criteria found." +msgstr "Det er ingen køer som matcher søkekriteriet" + +#: html/Admin/Elements/SelectRights:81 +msgid "No rights found" +msgstr "Ingen rettigheter funnet" + +#: html/Admin/Elements/SelectRights:33 +msgid "No rights granted." +msgstr "Ingen rettigheter tildelt" + +#: html/Search/Bulk.html:149 +msgid "No search to operate on." +msgstr "Ingen søk  behandle" + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "Ingen saksid oppgitt" + +#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +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:36 +msgid "No users matching search criteria found." +msgstr "Fant ingen brukere som treffer søkekriteriene." + +#: bin/rt-commit-handler:644 +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/Interface/Web.pm:893 +msgid "No value sent to _Set!\\n" +msgstr "Ingen verdi sendt til _Set!\\n" + +#: html/Search/Elements/TicketRow:37 +msgid "Nobody" +msgstr "Ingen" + +#: lib/RT/Interface/Web.pm:898 +msgid "Nonexistant field?" +msgstr "Ukjent felt?" + +#: NOT FOUND IN SOURCE +msgid "Not logged in" +msgstr "Ikke logget inn" + +#: html/Elements/Header:59 +msgid "Not logged in." +msgstr "Ikke logget inn." + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "Ikke satt" + +#: html/NoAuth/Reminder.html:27 +msgid "Not yet implemented." +msgstr "Ikke implementert enda." + +#: NOT FOUND IN SOURCE +msgid "Not yet implemented...." +msgstr "Ikke implementert enda...." + +#: html/Approvals/Elements/Approve:49 +msgid "Notes" +msgstr "Notater" + +#: lib/RT/User_Overlay.pm:650 +msgid "Notification could not be sent" +msgstr "Melding kunne ikke sendes" + +#: etc/initialdata:94 +msgid "Notify AdminCcs" +msgstr "Raporter til AdminCc" + +#: etc/initialdata:90 +msgid "Notify AdminCcs as Comment" +msgstr "Rapporter til AdminCc som kommentar" + +#: etc/initialdata:121 +msgid "Notify Other Recipients" +msgstr "Rapporter til andre mottakere" + +#: etc/initialdata:117 +msgid "Notify Other Recipients as Comment" +msgstr "Rapporter til andre mottakere som kommentar" + +#: etc/initialdata:86 +msgid "Notify Owner" +msgstr "Rapporter til eier" + +#: etc/initialdata:82 +msgid "Notify Owner as Comment" +msgstr "Rapportert til eier som kommentar" + +#: etc/initialdata:319 etc/upgrade/2.1.71:17 +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:78 +msgid "Notify Requestors" +msgstr "Rapporter til kunde" + +#: etc/initialdata:104 +msgid "Notify Requestors and Ccs" +msgstr "Rapporter til Kunder og Cc" + +#: etc/initialdata:99 +msgid "Notify Requestors and Ccs as Comment" +msgstr "Rapporter til Kunder og Cc som kommentar" + +#: etc/initialdata:113 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "Rapporter til Kunder Cc og AdminCc" + +#: etc/initialdata:109 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "Rapporter til Kunder Cc og AdminCc som Kommentar" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "Nov." + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "November" + +#: lib/RT/Record.pm:157 +msgid "Object could not be created" +msgstr "Objekter kunne ikke opprettes" + +#: lib/RT/Record.pm:176 +msgid "Object created" +msgstr "Objektet ble opprettet" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "Okt." + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "Oktober" + +#: html/Elements/SelectDateRelation:35 +msgid "On" +msgstr "Ved" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "Ved Kommentar" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "Ved Korrespondanse" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "Ved Opprettelse" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "Ved Eierskifte" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "Ved Køendring" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "Ved Løsning" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "Ved statusendring" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "Ved Transaksjon" + +#: html/Approvals/Elements/PendingMyApproval:50 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "Vis kun godkjennelse for saker opprettet etter %1" + +#: html/Approvals/Elements/PendingMyApproval:48 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "Bare vis godkjennelse for saker opprettet før %1" + +#: html/Elements/Quicksearch:31 +msgid "Open" +msgstr "Ã…pne" + +#: html/Ticket/Elements/Tabs:136 +msgid "Open it" +msgstr "Ã…pne den" + +#: NOT FOUND IN SOURCE +msgid "Open requests" +msgstr "Ã…pne forespørsler" + +#: html/SelfService/Elements/Tabs:42 +msgid "Open tickets" +msgstr "Ã…pne saker" + +#: html/Admin/Users/Prefs.html:41 +msgid "Open tickets (from listing) in a new window" +msgstr "Ã…pne saker (fra utlisting) i et nytt vindu" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in another window" +msgstr "Ã…pne saker (fra utlisting) it et annet vinud" + +#: etc/initialdata:133 +msgid "Open tickets on correspondence" +msgstr "Ã…pne saker ved korrespondanse" + +#: html/Search/Elements/PickRestriction:101 +msgid "Ordering and sorting" +msgstr "Rekkefølge og sortering" + +#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +msgid "Organization" +msgstr "Organisasjon" + +#: html/Approvals/Elements/Approve:33 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "Opprinnelig sak: #%1" + +#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +msgid "Over time, priority moves toward" +msgstr "Over tid beveger prioriteten seg mot" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Own tickets" +msgstr "Eie saker" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "OwnTicket" +msgstr "EieSak" + +#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "Eier" + +#: lib/RT/Ticket_Overlay.pm:3071 +#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +msgid "Owner changed from %1 to %2" +msgstr "Eier endret fra %1 til %2" + +#: lib/RT/Transaction_Overlay.pm:582 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Eier ble tvunget til Ã¥ endres fra %1 til %2" + +#: html/Search/Elements/PickRestriction:31 +msgid "Owner is" +msgstr "Eier er" + +#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +msgid "Pager" +msgstr "Personsøker" + +#: html/Admin/Elements/ModifyUser:74 +msgid "PagerPhone" +msgstr "PersonSøker" + +#: NOT FOUND IN SOURCE +msgid "Parent" +msgstr "Forelder" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:47 +msgid "Parents" +msgstr "Foreldre" + +#: html/Elements/Login:52 html/User/Prefs.html:61 +msgid "Password" +msgstr "Passord" + +#: html/NoAuth/Reminder.html:25 +msgid "Password Reminder" +msgstr "Passordhint" + +#: lib/RT/User_Overlay.pm:169 lib/RT/User_Overlay.pm:868 +msgid "Password too short" +msgstr "For kort passord" + +#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "Passord: %1" + +#: html/Admin/Users/Modify.html:293 +msgid "Passwords do not match." +msgstr "Passordene stemmer ikke overens." + +#: html/User/Prefs.html:174 +msgid "Passwords do not match. Your password has not been changed" +msgstr "Passordene stemmer ikke overrens. Passordet ble ikke endret" + +#: html/Ticket/Elements/ShowSummary:45 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +msgid "People" +msgstr "Folk" + +#: etc/initialdata:126 +msgid "Perform a user-defined action" +msgstr "Kjør en brukerdefinert handling" + +#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:101 lib/RT/CustomField_Overlay.pm:202 lib/RT/CustomField_Overlay.pm:234 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:91 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2603 lib/RT/Ticket_Overlay.pm:2675 lib/RT/Ticket_Overlay.pm:2769 lib/RT/Ticket_Overlay.pm:2784 lib/RT/Ticket_Overlay.pm:2978 lib/RT/Ticket_Overlay.pm:3206 lib/RT/Ticket_Overlay.pm:3404 lib/RT/Ticket_Overlay.pm:3566 lib/RT/Ticket_Overlay.pm:3618 lib/RT/Ticket_Overlay.pm:3783 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1355 lib/RT/User_Overlay.pm:570 lib/RT/User_Overlay.pm:605 lib/RT/User_Overlay.pm:861 lib/RT/User_Overlay.pm:962 +msgid "Permission Denied" +msgstr "Ingen Tilgang" + +#: html/User/Elements/Tabs:35 +msgid "Personal Groups" +msgstr "Personlige Grupper" + +#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +msgid "Personal groups" +msgstr "Personlige grupper" + +#: html/User/Elements/DelegateRights:37 +msgid "Personal groups:" +msgstr "Personlige grupper:" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +msgid "Phone numbers" +msgstr "Telefonnummer" + +#: NOT FOUND IN SOURCE +msgid "Placeholder" +msgstr "Stedholder" + +#: NOT FOUND IN SOURCE +msgid "Pref" +msgstr "Pref" + +#: html/Elements/Header:52 html/Elements/Tabs:53 html/SelfService/Elements/Tabs:51 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +msgid "Preferences" +msgstr "Instillinger" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "Pref" + +#: lib/RT/Action/Generic.pm:160 +msgid "Prepare Stubbed" +msgstr "Klargjør Forkortet" + +#: html/Ticket/Elements/Tabs:61 +msgid "Prev" +msgstr "Forrige" + +#: html/Search/Listing.html:44 +msgid "Previous page" +msgstr "Forrige side" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "Pri" + +#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "Primær %1 ikke funnet." + +#: html/Search/Elements/PickRestriction:54 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "Prioritet" + +#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +msgid "Priority starts at" +msgstr "Prioritet starter pÃ¥" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "Priviligert" + +#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "Priviligert status: %1" + +#: html/Admin/Users/index.html:62 +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/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:33 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "Kø" + +#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:44 +#. ($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/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +msgid "Queue Name" +msgstr "Kønavn" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "Køscrip" + +#: lib/RT/Queue_Overlay.pm:263 +msgid "Queue already exists" +msgstr "Køen eksisterer allerede" + +#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +msgid "Queue could not be created" +msgstr "Køen kunne ikke opprettes" + +#: html/Ticket/Create.html:205 +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:282 +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:71 lib/RT/CustomField_Overlay.pm:98 +msgid "Queue not found" +msgstr "Køen ikke funnet" + +#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +msgid "Queues" +msgstr "Køer" + +#: html/Elements/Quicksearch:25 +msgid "Quick search" +msgstr "Raskt søk" + +#: html/Elements/Login:44 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "RT %1" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "RT %1 for %2" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +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:25 html/Admin/index.html:26 +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:41 html/SelfService/Error.html:41 +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/index.html:25 html/index.html:28 +msgid "RT at a glance" +msgstr "RT oversikt" + +#: 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" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RT kunne ikke validere denne PGP signaturen. \\n" + +#: html/Elements/PageLayout:26 +#. ($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" + +#: html/Elements/Login:92 +#. ('2003') +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" + +#: 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" + +#: 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:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +msgid "Real Name" +msgstr "Ekte Navn" + +#: html/Admin/Elements/ModifyUser:48 +msgid "RealName" +msgstr "EkteNavn" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:71 +msgid "Referred to by" +msgstr "Referert til av" + +#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:61 +msgid "Refers to" +msgstr "Refererer til" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "RefererTil" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "Redefiner" + +#: html/Search/Elements/PickRestriction:27 +msgid "Refine search" +msgstr "Redefiner søket" + +#: html/Elements/Refresh:36 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "Last siden p nytt hvert %1 minutt." + +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:62 html/Ticket/ModifyAll.html:57 +msgid "Relationships" +msgstr "Forhold" + +#: html/Search/Bulk.html:93 +msgid "Remove AdminCc" +msgstr "Fjern AdminCc" + +#: html/Search/Bulk.html:91 +msgid "Remove Cc" +msgstr "Fjern Cc" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "Fjern Kunde" + +#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +msgid "Reply" +msgstr "Svar" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Reply to tickets" +msgstr "Svar p sak" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "ReplyToTicket" +msgstr "SvarPÂSak" + +#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +msgid "Requestor" +msgstr "Kunde" + +#: html/Search/Elements/PickRestriction:38 +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:41 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +msgid "Requestors" +msgstr "Kunder" + +#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +msgid "Requests should be due in" +msgstr "Forespørsler skal være behandlet innen" + +#: html/Elements/Submit:62 +msgid "Reset" +msgstr "Reset" + +#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +msgid "Residence" +msgstr "Hjemme" + +#: html/Ticket/Elements/Tabs:132 +msgid "Resolve" +msgstr "Løs" + +#: html/Ticket/Update.html:133 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "Løs saknr #%1 (%2)" + +#: etc/initialdata:308 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +msgid "Resolved" +msgstr "Løst" + +#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +msgid "Response to requestors" +msgstr "Svar til kunder" + +#: html/Elements/ListActions:26 +msgid "Results" +msgstr "Resultater" + +#: html/Search/Elements/PickRestriction:105 +msgid "Results per page" +msgstr "Resultater per side" + +#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +msgid "Retype Password" +msgstr "Skriv Passord igjen" + +#: 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:613 +msgid "Right Delegated" +msgstr "Rettighet Deligert" + +#: lib/RT/ACE_Overlay.pm:303 +msgid "Right Granted" +msgstr "Rettighet Tildelt" + +#: lib/RT/ACE_Overlay.pm:161 +msgid "Right Loaded" +msgstr "Rettighet lastet" + +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +msgid "Right could not be revoked" +msgstr "Rettigheten kunne ikke trekkes tilbake" + +#: html/User/Delegation.html:64 +msgid "Right not found" +msgstr "Rettighet ikke funnet" + +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +msgid "Right not loaded." +msgstr "Rettighet ikke lastet." + +#: lib/RT/ACE_Overlay.pm:689 +msgid "Right revoked" +msgstr "Rettighet fjernet" + +#: html/Admin/Elements/UserTabs:41 +msgid "Rights" +msgstr "Rettigheter" + +#: lib/RT/Interface/Web.pm:792 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "Rettigheter kunne ikke tildeles for %1" + +#: lib/RT/Interface/Web.pm:825 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "Rettigheter kunne ikke trekkes tilbake for %1" + +#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "Roller" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "RootGodkjenning" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "Lør." + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyLinks.html:39 html/Ticket/ModifyPeople.html:38 +msgid "Save Changes" +msgstr "Lagre Endringer" + +#: NOT FOUND IN SOURCE +msgid "Save changes" +msgstr "Lage endringer" + +#: html/Admin/Global/Scrip.html:49 +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "Scrip #%1" + +#: lib/RT/Scrip_Overlay.pm:176 +msgid "Scrip Created" +msgstr "Scrip Opprettet" + +#: html/Admin/Elements/EditScrips:84 +msgid "Scrip deleted" +msgstr "Scrip slettet" + +#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +msgid "Scrips" +msgstr "Scrip" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "Scrip for %1\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "Scrip som gjelder for alle køer" + +#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +msgid "Search" +msgstr "Søk" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "Søkekriteria" + +#: html/Approvals/Elements/PendingMyApproval:39 +msgid "Search for approvals" +msgstr "Søk etter godkjenninger" + +#: bin/rt-crontool:188 +msgid "Security:" +msgstr "Sikkerhet:" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "SeeQueue" +msgstr "SeKø" + +#: html/Admin/Groups/index.html:40 +msgid "Select a group" +msgstr "Velg en gruppe" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "Velg en kø" + +#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +msgid "Select a user" +msgstr "Velg en bruker" + +#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +msgid "Select custom field" +msgstr "Velg fleksifelt" + +#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +msgid "Select group" +msgstr "Velg gruppe" + +#: lib/RT/CustomField_Overlay.pm:422 +msgid "Select multiple values" +msgstr "Velg flere verdier" + +#: lib/RT/CustomField_Overlay.pm:419 +msgid "Select one value" +msgstr "Velg en verdi" + +#: html/Admin/Elements/QueueTabs:67 +msgid "Select queue" +msgstr "Velg kø" + +#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +msgid "Select scrip" +msgstr "Velg scrip" + +#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 html/Admin/Queues/Templates.html:47 +msgid "Select template" +msgstr "Velg mal" + +#: html/Admin/Elements/UserTabs:49 +msgid "Select user" +msgstr "Velg bruker" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "SelectMultiple" +msgstr "VelgFlere" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectSingle" +msgstr "VelgEnkelt" + +#: NOT FOUND IN SOURCE +msgid "Self Service" +msgstr "Selvbetjening" + +#: etc/initialdata:114 +msgid "Send mail to all watchers" +msgstr "Send epost til alle overvÃ¥kere" + +#: etc/initialdata:110 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "Send epost til alle overvÃ¥kere som \"kommentar\"" + +#: etc/initialdata:105 +msgid "Send mail to requestors and Ccs" +msgstr "Send epost til kunder og Cc" + +#: etc/initialdata:100 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "Send epost til kunder og Cc som kommentar" + +#: etc/initialdata:79 +msgid "Sends a message to the requestors" +msgstr "Sender en melding til kundene" + +#: etc/initialdata:118 etc/initialdata:122 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "Send epost til eksplisit oppgitte Ccer og Bccer" + +#: etc/initialdata:95 +msgid "Sends mail to the administrative Ccs" +msgstr "Send epost til Administrative Ccer" + +#: etc/initialdata:91 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "Sender epost til de administrative Ccene som kommentar" + +#: etc/initialdata:83 etc/initialdata:87 +msgid "Sends mail to the owner" +msgstr "Sender epost til eieren" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "Sep." + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "September" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "Vis Resultater" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show approved requests" +msgstr "Vis godkjente forespørsler" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show basics" +msgstr "Vis basisinfo" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show denied requests" +msgstr "Vis avviste forespørsler" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show details" +msgstr "Vis detaljer" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show pending requests" +msgstr "Vis ventende forespørsler" + +#: html/Approvals/Elements/PendingMyApproval:46 +msgid "Show requests awaiting other approvals" +msgstr "Vis forespørsler som venter pÃ¥ andre godkjenninger" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Show ticket private commentary" +msgstr "Vis sakens private kommentarer" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "Show ticket summaries" +msgstr "Vis sakssammendrag" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ShowACL" +msgstr "VisACL" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowScrips" +msgstr "VisScrip" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ShowTemplate" +msgstr "VisMal" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "ShowTicket" +msgstr "VisSak" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "ShowTicketComments" +msgstr "VisSaksKommentarer" + +#: lib/RT/Queue_Overlay.pm:82 +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:83 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "Meld deg pÃ¥ som sak/kø AdminCc" + +#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/User/Prefs.html:112 +msgid "Signature" +msgstr "Signatur" + +#: NOT FOUND IN SOURCE +msgid "Signed in as %1" +msgstr "Logget inn som %1" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Single" +msgstr "Enkel" + +#: html/Elements/Header:51 +msgid "Skip Menu" +msgstr "Dropp Meny" + +#: html/Admin/Elements/AddCustomFieldValue:29 +msgid "Sort" +msgstr "Sorter" + +#: NOT FOUND IN SOURCE +msgid "Sort key" +msgstr "Sorter nøkkel" + +#: html/Search/Elements/PickRestriction:109 +msgid "Sort results by" +msgstr "Sorter resultater etter" + +#: NOT FOUND IN SOURCE +msgid "SortOrder" +msgstr "SorteringsRekkefølge" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "Pauset" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "Startside" + +#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +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:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +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/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +msgid "State" +msgstr "Stat" + +#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "Status" + +#: etc/initialdata:294 +msgid "Status Change" +msgstr "Statusendring" + +#: lib/RT/Transaction_Overlay.pm:528 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +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:147 +msgid "Steal" +msgstr "Stjel" + +#: lib/RT/Transaction_Overlay.pm:587 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "StjÃ¥let fra %1 " + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:57 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:32 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "Emne" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "Endre emne til %1" + +#: html/Elements/Submit:59 +msgid "Submit" +msgstr "Oppdater" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "Send Arbeidsflyt" + +#: lib/RT/Group_Overlay.pm:749 +msgid "Succeeded" +msgstr "Lykkes" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "Søn." + +#: lib/RT/System.pm:54 +msgid "SuperUser" +msgstr "SuperBruker" + +#: html/User/Elements/DelegateRights:77 +msgid "System" +msgstr "System" + +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:791 lib/RT/Interface/Web.pm:824 +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/ACE_Overlay.pm:616 +msgid "System error. Right not delegated." +msgstr "Systemfeil. Rettighet ikke tildelt." + +#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +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/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +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:318 +msgid "TEST_STRING" +msgstr "TEST_STRENG" + +#: html/Ticket/Elements/Tabs:143 +msgid "Take" +msgstr "Ta" + +#: lib/RT/Transaction_Overlay.pm:573 +msgid "Taken" +msgstr "Tatt" + +#: html/Admin/Elements/EditScrip:81 +msgid "Template" +msgstr "Mal" + +#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "Mal #%1" + +#: html/Admin/Elements/EditTemplates:89 +msgid "Template deleted" +msgstr "Mal slettet" + +#: lib/RT/Scrip_Overlay.pm:153 +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:347 +msgid "Template parsed" +msgstr "Mal tolket" + +#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +msgid "Templates" +msgstr "Maler" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "Maler for %1\\n" + +#: lib/RT/Interface/Web.pm:892 +msgid "That is already the current value" +msgstr "Verdien er allerede satt" + +#: lib/RT/CustomField_Overlay.pm:243 +msgid "That is not a value for this custom field" +msgstr "Det er ikke en verdi for dette fleksifeltet" + +#: lib/RT/Ticket_Overlay.pm:1886 +msgid "That is the same value" +msgstr "Det er den samme verdien" + +#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +msgid "That principal already has that right" +msgstr "Den primæren har allerede den rettigheten" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($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:1434 +#. ($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:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Den primæren er ikke en %1 for denne køen" + +#: lib/RT/Ticket_Overlay.pm:1551 +#. ($args{'Type'}) +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:1882 +msgid "That queue does not exist" +msgstr "Den køen eksisterer ikke" + +#: lib/RT/Ticket_Overlay.pm:3210 +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/Ticket_Overlay.pm:3020 +msgid "That user already owns that ticket" +msgstr "Den brukeren eier allerede den saken" + +#: lib/RT/Ticket_Overlay.pm:2986 +msgid "That user does not exist" +msgstr "Den brukeren finnes ikke" + +#: lib/RT/User_Overlay.pm:315 +msgid "That user is already privileged" +msgstr "Den brukeren er allerede priviligert" + +#: lib/RT/User_Overlay.pm:336 +msgid "That user is already unprivileged" +msgstr "Den brukeren er allerede upriviligert" + +#: lib/RT/User_Overlay.pm:328 +msgid "That user is now privileged" +msgstr "Denne brukeren er nÃ¥ priviligert" + +#: lib/RT/User_Overlay.pm:349 +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:3012 +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:206 +msgid "That's not a numerical id" +msgstr "Dette er ikke en numerisk id" + +#: html/SelfService/Display.html:32 html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +msgid "The Basics" +msgstr "Detaljer" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The CC of a ticket" +msgstr "CCen til en sak" + +#: lib/RT/ACE_Overlay.pm:89 +msgid "The administrative CC of a ticket" +msgstr "Administrative CCer for en sak" + +#: lib/RT/Ticket_Overlay.pm:2213 +msgid "The comment has been recorded" +msgstr "Kommentarer er lagret" + +#: bin/rt-crontool:198 +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:" + +#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "De følgende kommandoene ble ikke behandlet:\\n\\n" + +#: lib/RT/Interface/Web.pm:895 +msgid "The new value has been set." +msgstr "Den nye verdien har blitt satt." + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The owner of a ticket" +msgstr "Eieren av en sak" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The requestor of a ticket" +msgstr "Forespørren av en sak" + +#: html/Admin/Elements/EditUserComments:26 +msgid "These comments aren't generally visible to the user" +msgstr "Disse kommentarene er generelt ikke synlig for brukeren" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "Denne saken %1 %2 (%3)\\n" + +#: bin/rt-crontool:189 +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:251 +msgid "This transaction appears to have no content" +msgstr "Denne transaksjonen ser ikke ut til Ã¥ ha noe innhold" + +#: html/Ticket/Elements/ShowRequestor:47 +#. ($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:391 +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:25 html/Ticket/ModifyAll.html:29 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "Sak #%1 Jumbo oppdatering: %2" + +#: html/Approvals/Elements/ShowDependency:46 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "Sak #%1: %2" + +#: lib/RT/Ticket_Overlay.pm:587 lib/RT/Ticket_Overlay.pm:608 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "Sak %1 opprettet i '%2' køen" + +#: bin/rt-commit-handler:760 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "Sak %1 lastet\\n" + +#: html/Search/Bulk.html:181 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "Sak %1: %2" + +#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "Sakshistorikk # %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Ticket Id" +msgstr "SaksId" + +#: etc/initialdata:309 +msgid "Ticket Resolved" +msgstr "Løst Sak" + +#: html/Search/Elements/PickRestriction:63 +msgid "Ticket attachment" +msgstr "Saks-vedlegg" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "Saks-innhold" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "Sakens innholdstype" + +#: lib/RT/Ticket_Overlay.pm:496 lib/RT/Ticket_Overlay.pm:597 +msgid "Ticket could not be created due to an internal error" +msgstr "Saken kunne ikke opprettes pÃ¥ grunn av en intern feil" + +#: lib/RT/Transaction_Overlay.pm:520 +msgid "Ticket created" +msgstr "Sak opprettet" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "Saksopprettelse feilet" + +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Ticket deleted" +msgstr "Sak slettet" + +#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +msgid "Ticket id not found" +msgstr "Saksid ikke funnet" + +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "Sak drept" + +#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +msgid "Ticket not found" +msgstr "Sak ikke funnet" + +#: etc/initialdata:295 +msgid "Ticket status changed" +msgstr "Saksstatus endret" + +#: html/Ticket/Update.html:39 +msgid "Ticket watchers" +msgstr "SaksovervÃ¥kere" + +#: html/Elements/Tabs:47 +msgid "Tickets" +msgstr "Saker" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "Saker %1 %2" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "Saker %1 av %2" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Tickets from %1" +msgstr "Saker fra %1" + +#: html/Approvals/Elements/ShowDependency:27 +msgid "Tickets which depend on this approval:" +msgstr "Saker som er avhengige av denne godkjennelsen:" + +#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +msgid "Time Left" +msgstr "Tid Igjen" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +msgid "Time Worked" +msgstr "Arbeidstid" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "Tid igjen" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "Tid Ã¥ vise" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "Arbeidstid" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "TidIgjen" + +#: lib/RT/Ticket_Overlay.pm:1165 +msgid "TimeWorked" +msgstr "ArbeidsTid" + +#: bin/rt-commit-handler:402 +msgid "To generate a diff of this commit:" +msgstr "For Ã¥ generere en diff av denne bekreftelsen:" + +#: bin/rt-commit-handler:391 +msgid "To generate a diff of this commit:\\n" +msgstr "For Ã¥ genere en diff av denne bekreftelsen" + +#: lib/RT/Ticket_Overlay.pm:1168 +msgid "Told" +msgstr "Fortalt" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "Transaksjon" + +#: lib/RT/Transaction_Overlay.pm:640 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "Transaksjon %1 slettet" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "Transaksjon Opprettet" + +#: lib/RT/Transaction_Overlay.pm:89 +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:699 +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:389 +msgid "Tue." +msgstr "Tir." + +#: html/Admin/Elements/EditCustomField:44 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "Type" + +#: lib/RT/ScripCondition_Overlay.pm:104 +msgid "Unimplemented" +msgstr "Uimplementert" + +#: html/Admin/Users/Modify.html:68 +msgid "Unix login" +msgstr "Unix login" + +#: html/Admin/Elements/ModifyUser:62 +msgid "UnixUsername" +msgstr "UnixBrukerNavn" + +#: lib/RT/Attachment_Overlay.pm:265 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "Ukjent InnholdsFormatering %1" + +#: html/Elements/SelectResultsPerPage:37 +msgid "Unlimited" +msgstr "Ubegrenset" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "Upriviligert" + +#: lib/RT/Transaction_Overlay.pm:569 +msgid "Untaken" +msgstr "Ikke tatt" + +#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +msgid "Update" +msgstr "Oppdater" + +#: html/Admin/Users/Prefs.html:62 +msgid "Update ID" +msgstr "Oppdater ID" + +#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +msgid "Update Type" +msgstr "Oppdater Type" + +#: html/Search/Listing.html:61 +msgid "Update all these tickets at once" +msgstr "Oppdater alle disse sakene samtidig" + +#: html/Admin/Users/Prefs.html:49 +msgid "Update email" +msgstr "Oppdater epost" + +#: html/Admin/Users/Prefs.html:55 +msgid "Update name" +msgstr "Oppdater navn" + +#: lib/RT/Interface/Web.pm:409 +msgid "Update not recorded." +msgstr "Oppdatering ikke lagret." + +#: html/Search/Bulk.html:81 +msgid "Update selected tickets" +msgstr "Oppdater valgte saker" + +#: html/Admin/Users/Prefs.html:36 +msgid "Update signature" +msgstr "Oppdater signatur" + +#: html/Ticket/ModifyAll.html:63 +msgid "Update ticket" +msgstr "Oppdater sak" + +#: NOT FOUND IN SOURCE +msgid "Update ticket # %1" +msgstr "Ooppdater sak # %1" + +#: html/SelfService/Update.html:25 html/SelfService/Update.html:47 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Oppdater sak #%1" + +#: html/Ticket/Update.html:135 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "Oppdater sak #%1 (%2)" + +#: lib/RT/Interface/Web.pm:407 +msgid "Update type was neither correspondence nor comment." +msgstr "Oppdateringstype var verken korrespondanse eller kommentar." + +#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +msgid "Updated" +msgstr "Oppdatert" + +#: 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" + +#: 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:125 etc/initialdata:191 +msgid "User Defined" +msgstr "Bruker Definert" + +#: html/Admin/Users/Prefs.html:59 +msgid "User ID" +msgstr "BrukerID" + +#: html/Elements/SelectUsers:26 +msgid "User Id" +msgstr "BrukerId" + +#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +msgid "User Rights" +msgstr "Brukerrettigheter" + +#: html/Admin/Users/Modify.html:226 +#. ($msg) +msgid "User could not be created: %1" +msgstr "Bruker kunne ikke opprettes: %1" + +#: lib/RT/User_Overlay.pm:262 +msgid "User created" +msgstr "Bruker opprettet" + +#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "Brukerdefinerte grupper" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "Bruker informert" + +#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +msgid "User view" +msgstr "Brukervisning" + +#: html/Admin/Users/Modify.html:48 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:35 +msgid "Username" +msgstr "Brukernavn" + +#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +msgid "Users" +msgstr "Brukere" + +#: html/Admin/Users/index.html:65 +msgid "Users matching search criteria" +msgstr "Brukere som treffer søkekriteria" + +#: html/Search/Elements/PickRestriction:51 +msgid "ValueOfQueue" +msgstr "KøVerdi" + +#: html/Admin/Elements/EditCustomField:57 +msgid "Values" +msgstr "Verdier" + +#: NOT FOUND IN SOURCE +msgid "VrijevormEnkele" +msgstr "VrijevormEnkele" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Watch" +msgstr "OvervÃ¥k" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "WatchAsAdminCc" +msgstr "OvervÃ¥kSomAdminCc" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "OvervÃ¥ker lastet" + +#: html/Admin/Elements/QueueTabs:42 +msgid "Watchers" +msgstr "OvervÃ¥kere" + +#: html/Admin/Elements/ModifyUser:56 +msgid "WebEncoding" +msgstr "WebFormatering" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "Ons." + +#: etc/upgrade/2.1.71:161 +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/upgrade/2.1.71:135 +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:138 +msgid "When a ticket is created" +msgstr "NÃ¥r er sak er opprettet" + +#: etc/upgrade/2.1.71:79 +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:143 +msgid "When anything happens" +msgstr "NÃ¥r noe skjer" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "NÃ¥r en sak er løst" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "NÃ¥r en sak fÃ¥r ny eier" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "NÃ¥r en sak flyttes til en ny kø" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "NÃ¥r en saks status endres" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "NÃ¥r brukerdefinerte forhold intreffer" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "NÃ¥r kommentarer kommer inn" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "NÃ¥r korrespondanse kommer inn" + +#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +msgid "Work" +msgstr "Arbeid" + +#: html/Admin/Elements/ModifyUser:70 +msgid "WorkPhone" +msgstr "ArbeidsTelefon" + +#: html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +msgid "Worked" +msgstr "Arbeidet" + +#: lib/RT/Ticket_Overlay.pm:3123 +msgid "You already own this ticket" +msgstr "Du eier allerede denne saken" + +#: html/autohandler:108 +msgid "You are not an authorized user" +msgstr "Du er ikke en autorisert bruker" + +#: lib/RT/Ticket_Overlay.pm:2998 +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" + +#: 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 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "Du fant %1 saker i %2 køen" + +#: html/NoAuth/Logout.html:31 +msgid "You have been logged out of RT." +msgstr "" + +#: html/SelfService/Display.html:78 +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:1895 +msgid "You may not create requests in that queue." +msgstr "Du kan ikke opprette forespørsler i den køen." + +#: html/NoAuth/Logout.html:36 +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:435 etc/upgrade/2.1.71:146 +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:469 etc/upgrade/2.1.71:180 +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:390 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "Din forespørsel ble avvist" + +#: html/autohandler:127 +msgid "Your username or password is incorrect" +msgstr "Ditt brukernavn/passord er ugyldig" + +#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +msgid "Zip" +msgstr "Zip" + +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "[ikke noe emne]" + +#: html/User/Elements/DelegateRights:59 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "som tildelt til %1" + +#: html/SelfService/Closed.html:28 +msgid "closed" +msgstr "lukket" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +msgid "contains" +msgstr "inneholder" + +#: html/Elements/SelectAttachmentField:26 +msgid "content" +msgstr "innhold" + +#: html/Elements/SelectAttachmentField:27 +msgid "content-type" +msgstr "innholdstype" + +#: lib/RT/Ticket_Overlay.pm:2282 +msgid "correspondence (probably) not sent" +msgstr "korrespondanse (sansynligvis) ikke sendt" + +#: lib/RT/Ticket_Overlay.pm:2292 +msgid "correspondence sent" +msgstr "korrespondanse sendt" + +#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +msgid "days" +msgstr "dager" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "død" + +#: html/Search/Listing.html:75 +msgid "delete" +msgstr "slett" + +#: lib/RT/Queue_Overlay.pm:63 +msgid "deleted" +msgstr "slettet" + +#: html/Search/Elements/PickRestriction:68 +msgid "does not match" +msgstr "treffer ikke" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +msgid "doesn't contain" +msgstr "inneholder ikke" + +#: html/Elements/SelectEqualityOperator:38 +msgid "equal to" +msgstr "lik som" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "usant" + +#: html/Elements/SelectAttachmentField:28 +msgid "filename" +msgstr "filnavn" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "greater than" +msgstr "større enn" + +#: lib/RT/Group_Overlay.pm:194 +#. ($self->Name) +msgid "group '%1'" +msgstr "gruppe '%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "timer" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "id" + +#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "is" +msgstr "er" + +#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +msgid "isn't" +msgstr "er ikke" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "less than" +msgstr "mindre enn" + +#: html/Search/Elements/PickRestriction:67 +msgid "matches" +msgstr "treffer" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "min" + +#: html/Ticket/Update.html:66 +msgid "minutes" +msgstr "minutter" + +#: bin/rt-commit-handler:765 +msgid "modifications\\n\\n" +msgstr "endringer\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "mÃ¥neder" + +#: lib/RT/Queue_Overlay.pm:58 +msgid "new" +msgstr "ny" + +#: html/Admin/Elements/EditScrips:43 +msgid "no value" +msgstr "ingen verdi" + +#: html/Ticket/Elements/EditWatchers:28 +msgid "none" +msgstr "ingen" + +#: html/Elements/SelectEqualityOperator:38 +msgid "not equal to" +msgstr "ikke lik som" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "ikkelik" + +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:59 +msgid "open" +msgstr "Ã¥pen" + +#: lib/RT/Group_Overlay.pm:199 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "personlig gruppe '%1' for bruker '%2'" + +#: lib/RT/Group_Overlay.pm:207 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "kø %1 %2" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "rejected" +msgstr "avvist" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "resolved" +msgstr "løst" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "sek" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "stalled" +msgstr "pauset" + +#: lib/RT/Group_Overlay.pm:202 +#. ($self->Type) +msgid "system %1" +msgstr "system %1" + +#: lib/RT/Group_Overlay.pm:213 +#. ($self->Type) +msgid "system group '%1'" +msgstr "systemgruppe '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:42 +msgid "the calling component did not specify why" +msgstr "den kallende komponenten oppga ikke hvorfor" + +#: lib/RT/Group_Overlay.pm:210 +#. ($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:216 +#. ($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:191 +#. ($user->Object->Name) +msgid "user %1" +msgstr "bruker %1" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "uker" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "med malen %1" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "Ã¥r" + +#: NOT FOUND IN SOURCE +msgid "ニックネーム" +msgstr "????" + diff --git a/rt/lib/RT/I18N/pt_br.po b/rt/lib/RT/I18N/pt_br.po new file mode 100644 index 000000000..6962ecbc8 --- /dev/null +++ b/rt/lib/RT/I18N/pt_br.po @@ -0,0 +1,4829 @@ +# $Id: pt_br.po,v 1.1 2003-07-15 13:16:28 ivan Exp $ +msgid "" +msgstr "" +"Project-Id-Version: RT 2.1.x\n" +"POT-Creation-Date: 2002-05-02 11:36+0800\n" +"PO-Revision-Date: 2002-12-07 23:20-02:00\n" +"Last-Translator: Gustavo Chaves <gustavo@cpqd.com.br>\n" +"Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +msgid "#" +msgstr "#" + +#: html/Admin/Queues/Scrip.html:55 +#. ($QueueObj->id) +msgid "#%1" +msgstr "" + +#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 +#. ($Ticket->Id, $Ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "#%1: %2" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "%1 %2" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($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:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#. ($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:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "%1 %2 atrás" + +#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 %2 alterado para %3" + +#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#. ($cf->Name, $old_value) +#. ($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:44 html/Admin/Elements/ListGlobalScrips:28 +#. (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/Search/Listing.html:57 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "%1 - %2 apresentados" + +#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#. ("--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:185 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - Mostra atualizações de estado no STDOUT" + +#: bin/rt-crontool:179 +#. ("--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:173 +#. ("--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:166 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - Especifica o módulo de busca que você quer usar" + +#: lib/RT/ScripAction_Overlay.pm:122 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "ScripAction %1 carregado" + +#: lib/RT/Ticket_Overlay.pm:3471 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "%1 usado 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:117 lib/RT/Link_Overlay.pm:124 +#. ($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:52 lib/RT/Transaction_Overlay.pm:483 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 por %2" + +#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#. ($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 alterado de %2 para %3" + +#: lib/RT/Interface/Web.pm:857 +msgid "%1 could not be set to %2." +msgstr "%1 não pôde ser alterado 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" + +#: lib/RT/Ticket_Overlay.pm:2813 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 não pôde alterar estado para resolvido. O banco de dados do RT pode estar inconsistente." + +#: html/Elements/MyTickets:25 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "%1 tíquetes de mais alta prioridade que eu possuo..." + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "%1 tíquetes de mais alta prioridade que eu requeri..." + +#: bin/rt-crontool:161 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "%1 é uma ferramenta para modificar tíquetes a partir de uma ferramenta de agenda externa, como o cron." + +#: lib/RT/Queue_Overlay.pm:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 não é mais um %2 para esta fila." + +#: lib/RT/Ticket_Overlay.pm:1570 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 não é mais um %2 para este tíquete." + +#: lib/RT/Ticket_Overlay.pm:3527 +#. ($args{'Value'}, $cf->Name) +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/ShowBasics:36 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 min" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "%1 não mostrado" + +#: html/User/Elements/DelegateRights:76 +#. (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:42 +#. (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." + +#: NOT FOUND IN SOURCE +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "%1 colocará como pendente uma BASE [local] se for dependente [ou membro] de uma requisição ligada." + +#: lib/RT/Transaction_Overlay.pm:435 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: nenhum arquivo anexo especificado" + +#: html/Ticket/Elements/ShowTransaction:102 +#. ($size) +msgid "%1b" +msgstr "%1b" + +#: html/Ticket/Elements/ShowTransaction:99 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "%1k" + +#: lib/RT/Ticket_Overlay.pm:1140 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "'%1' é um valor inválido para o 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 "(Assinale para remover o membro do grupo)" + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete scrip)" +msgstr "(Assinale para remover o scrip)" + +#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +msgid "(Check box to delete)" +msgstr "(Assinale para remover)" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "(Assinale para remover)" + +#: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Entre com identificadores de tíquetes ou URLs, separados por espaços)" + +#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#. ($RT::CorrespondAddress) +#. ($RT::CommentAddress) +msgid "(If left blank, will default to %1" +msgstr "(Se deixado em branco, será entendido como %1" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "(Sem Valor)" + +#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +msgid "(No custom fields)" +msgstr "(Nenhum campo personalizado)" + +#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +msgid "(No members)" +msgstr "(Sem membros)" + +#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +msgid "(No scrips)" +msgstr "(Sem scrips)" + +#: html/Admin/Elements/EditTemplates:31 +msgid "(No templates)" +msgstr "(Nenhum esquema)" + +#: html/Ticket/Update.html:85 +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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços de email separados por vírgula. <b>Não</b> altera quem vai receber atualizações futuras.)" + +#: 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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" + +#: html/Ticket/Create.html:79 +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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" + +#: html/Ticket/Update.html:81 +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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" + +#: 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 "(Envia uma cópia desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" + +#: html/Ticket/Create.html:69 +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 "(Envia uma cópia desta atualização para uma lista de endereços eletrônicos separados por vírgulas. Estas pessoas <b>receberão</b> as atualizações futuras.)" + +#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +msgid "(empty)" +msgstr "(vazio)" + +#: html/Admin/Users/index.html:39 +msgid "(no name listed)" +msgstr "(nenhum nome listado)" + +#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +msgid "(no subject)" +msgstr "(Sem assunto)" + +#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +msgid "(no value)" +msgstr "(sem valor)" + +#: html/Ticket/Elements/EditLinks:116 +msgid "(only one ticket)" +msgstr "(somente um tíquete)" + +#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +msgid "(pending approval)" +msgstr "(aguardando aprovação)" + +#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +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:50 +msgid "(required)" +msgstr "(requerido)" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "(untitled)" +msgstr "(sem título)" + +#: 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:32 +msgid "<% $Ticket->Status%>" +msgstr "<% $Ticket->Status%>" + +#: html/Elements/SelectTicketTypes:27 +msgid "<% $_ %>" +msgstr "<% $_ %>" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"Novo tíquete em\"> %1" + +#: NOT FOUND IN SOURCE +msgid "??????" +msgstr "" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "Um modelo vazio" + +#: 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:157 lib/RT/Principal_Overlay.pm:181 +msgid "ACE not found" +msgstr "ACE não encontrado" + +#: lib/RT/ACE_Overlay.pm:831 +msgid "ACEs can only be created and deleted." +msgstr "ACEs só podem ser criados e removidos." + +#: bin/rt-commit-handler:755 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Abortando para evitar modificações indesejadas no tíquete.\\n" + +#: html/User/Elements/Tabs:32 +msgid "About me" +msgstr "Sobre mim" + +#: html/Admin/Users/Modify.html:80 +msgid "Access control" +msgstr "Controle de acesso" + +#: html/Admin/Elements/EditScrip:57 +msgid "Action" +msgstr "Ação" + +#: lib/RT/Scrip_Overlay.pm:147 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "Ação %1 não encontrada" + +#: bin/rt-crontool:123 +msgid "Action committed." +msgstr "Ação confirmada." + +#: bin/rt-crontool:119 +msgid "Action prepared..." +msgstr "Ação preparada..." + +#: html/Search/Bulk.html:92 +msgid "Add AdminCc" +msgstr "Adicionar AdminCc" + +#: html/Search/Bulk.html:90 +msgid "Add Cc" +msgstr "Adicionar Cc" + +#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +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:88 +msgid "Add Requestor" +msgstr "Adicionar Requisitante" + +#: NOT FOUND IN SOURCE +msgid "Add a Scrip to this queue" +msgstr "Adicionar um Scrip nesta 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:55 +msgid "Add a scrip which will apply to all queues" +msgstr "Adicionar um scrip que se aplicará a todas as filas" + +#: html/Search/Bulk.html:118 +msgid "Add comments or replies to selected tickets" +msgstr "Adicionar comentários ou respostas aos tíquetes selecionados" + +#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +msgid "Add members" +msgstr "Adicionar membros" + +#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +msgid "Add new watchers" +msgstr "Adicionar novos observadores" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "AddNextState" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "Principal adicionado como um %1 para esta fila" + +#: lib/RT/Ticket_Overlay.pm:1454 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "Principal adicionado como um %1 para este tíquete" + +#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +msgid "Address1" +msgstr "Endereço 1" + +#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +msgid "Address2" +msgstr "Endereço 2" + +#: html/Ticket/Create.html:74 +msgid "Admin Cc" +msgstr "Admin Cc" + +#: etc/initialdata:274 +msgid "Admin Comment" +msgstr "Comentário do Administrador" + +#: etc/initialdata:256 +msgid "Admin Correspondence" +msgstr "Correspondência do Administrador" + +#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +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:26 html/Admin/Global/index.html:28 +msgid "Admin/Global configuration" +msgstr "Administração da configuração global" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "Administração de Grupos" + +#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +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:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +msgid "AdminCc" +msgstr "AdminCc" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "AdminComment" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "AdminCorrespondence" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "AdminCustomFields" +msgstr "AdminCustomFields" + +#: lib/RT/Group_Overlay.pm:146 +msgid "AdminGroup" +msgstr "AdminGroup" + +#: lib/RT/Group_Overlay.pm:148 +msgid "AdminGroupMembership" +msgstr "AdminGroupMembership" + +#: lib/RT/System.pm:59 +msgid "AdminOwnPersonalGroups" +msgstr "AdminOwnPersonalGroups" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "AdminQueue" +msgstr "AdminQueue" + +#: lib/RT/System.pm:60 +msgid "AdminUsers" +msgstr "AdminUsers" + +#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +msgid "Administrative Cc" +msgstr "Cc Administrativo" + +#: NOT FOUND IN SOURCE +msgid "Admins" +msgstr "Administradores" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "Busca avançada" + +#: html/Elements/SelectDateRelation:36 +msgid "After" +msgstr "Depois" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "Idade" + +#: NOT FOUND IN SOURCE +msgid "Alias" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias for" +msgstr "Alias para" + +#: html/Admin/Elements/EditCustomFields:96 +msgid "All Custom Fields" +msgstr "Todos os Campos Personalizados" + +#: html/Admin/Queues/index.html:53 +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/Elements/Tabs:58 +msgid "Approval" +msgstr "Aprovação" + +#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#. ($Ticket->Id, $Ticket->Subject) +#. ($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:54 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "Aprovação #%1: Notas não registradas devido a um erro de sistema" + +#: html/Approvals/index.html:52 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "Aprovação #%1: Notas registradas" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "Detalhes da Aprovação" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "Diagrama da aprovação" + +#: html/Approvals/Elements/Approve:45 +msgid "Approve" +msgstr "Aprove" + +#: etc/initialdata:431 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "Notas do aprovador: %1" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "Abr." + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "Abril" + +#: html/Elements/SelectSortOrder:35 +msgid "Ascending" +msgstr "Ascendente" + +#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +msgid "Attach" +msgstr "Anexar" + +#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +msgid "Attach file" +msgstr "Anexar arquivo" + +#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +msgid "Attached file" +msgstr "Arquivo anexado" + +#: html/SelfService/Attachment/dhandler:36 +msgid "Attachment '%1' could not be loaded" +msgstr "Arquivo anexo '%1' não pôde ser carregado" + +#: lib/RT/Transaction_Overlay.pm:443 +msgid "Attachment created" +msgstr "Arquivo anexo criado" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "Nome do arquivo anexo" + +#: html/Ticket/Elements/ShowAttachments:26 +msgid "Attachments" +msgstr "Arquivos anexos" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "Ago." + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "Agosto" + +#: html/Admin/Elements/ModifyUser:66 +msgid "AuthSystem" +msgstr "Sistema de autenticação" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "Autoreply" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "Autoreply para Requisitantes" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "AutoreplyToRequestors" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "Assinatura PGP inválida: %1\\n" + +#: html/SelfService/Attachment/dhandler:40 +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "Identificador de arquivo anexo inválido. Não pude encontrar o arquivo '%1'\\n" + +#: bin/rt-commit-handler:827 +#. ($val) +msgid "Bad data in %1" +msgstr "Dados inválidos em %1" + +#: html/SelfService/Attachment/dhandler:43 +#. ($trans, $AttachmentObj->TransactionId()) +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/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +msgid "Basics" +msgstr "Básicos" + +#: html/Ticket/Update.html:83 +msgid "Bcc" +msgstr "Bcc" + +#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +msgid "Be sure to save your changes" +msgstr "Não se esqueça de salvar suas alterações" + +#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +msgid "Before" +msgstr "Antes" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "Incício da Aprovação" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "Vazio" + +#: html/Search/Listing.html:79 +msgid "Bookmarkable URL for this search" +msgstr "URL para guardar esta busca em seus marcadores" + +#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +msgid "Brief headers" +msgstr "Cabeçalhos resumidos" + +#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +msgid "Bulk ticket update" +msgstr "Atualização de tíquetes em lote" + +#: lib/RT/User_Overlay.pm:1331 +msgid "Can not modify system users" +msgstr "Não posso modificar os usuários do sistema" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Can this principal see this queue" +msgstr "Este principal pode ver esta fila" + +#: lib/RT/CustomField_Overlay.pm:144 +msgid "Can't add a custom field value without a name" +msgstr "Não posso adicionar um valor de campo personalizado sem um nome" + +#: lib/RT/Link_Overlay.pm:132 +msgid "Can't link a ticket to itself" +msgstr "Não posso ligar um tíquete a ele mesmo" + +#: lib/RT/Ticket_Overlay.pm:2787 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "Não posso unir a um tíquete já unido. Você nunca deve obter este erro" + +#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +msgid "Can't specifiy both base and target" +msgstr "Não especifique origem e destino simultaneamente" + +#: html/autohandler:112 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "Não posso criar o usuário: %1" + +#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +msgid "Cc" +msgstr "Cc" + +#: html/SelfService/Prefs.html:31 +msgid "Change password" +msgstr "Mudar a senha" + +#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +msgid "Check box to delete" +msgstr "Assinale para remover" + +#: html/Admin/Elements/SelectRights:31 +msgid "Check box to revoke right" +msgstr "Assinalar para revogar o direito de acesso" + +#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +msgid "Children" +msgstr "Filhos" + +#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +msgid "City" +msgstr "Cidade" + +#: html/Ticket/Elements/ShowDates:47 +msgid "Closed" +msgstr "Fechado" + +#: html/SelfService/Elements/Tabs:60 +msgid "Closed requests" +msgstr "Requisições fechadas" + +#: NOT FOUND IN SOURCE +msgid "Code" +msgstr "Código" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "Comando não entendido!\\n" + +#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +msgid "Comment" +msgstr "Comentário" + +#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +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:86 +msgid "Comment on tickets" +msgstr "Comente sobre os tíquetes" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "CommentOnTicket" +msgstr "CommentOnTicket" + +#: html/Admin/Elements/ModifyUser:35 +msgid "Comments" +msgstr "Comentários" + +#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +msgid "Comments (Not sent to requestors)" +msgstr "Comentários (não enviados aos requisitantes)" + +#: html/Search/Bulk.html:122 +msgid "Comments (not sent to requestors)" +msgstr "Comentários (não enviados aos requisitantes)" + +#: html/Elements/ViewUser:27 +#. ($name) +msgid "Comments about %1" +msgstr "Comentários sobre %1" + +#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +msgid "Comments about this user" +msgstr "Comentários sobre este usuário" + +#: lib/RT/Transaction_Overlay.pm:545 +msgid "Comments added" +msgstr "Comentários adicionados" + +#: lib/RT/Action/Generic.pm:140 +msgid "Commit Stubbed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "Compilar restrições" + +#: html/Admin/Elements/EditScrip:41 +msgid "Condition" +msgstr "Condição" + +#: bin/rt-crontool:109 +msgid "Condition matches..." +msgstr "Condição satisfeita..." + +#: lib/RT/Scrip_Overlay.pm:160 +msgid "Condition not found" +msgstr "Condição não encontrada" + +#: html/Elements/Tabs:52 +msgid "Configuration" +msgstr "Configuração" + +#: html/SelfService/Prefs.html:33 +msgid "Confirm" +msgstr "Confirmar" + +#: html/Admin/Elements/ModifyUser:60 +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:44 html/Ticket/ModifyAll.html:87 +msgid "Content" +msgstr "Conteúdo" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "Não pude criar o grupo" + +#: etc/initialdata:266 +msgid "Correspondence" +msgstr "Correspondência" + +#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +msgid "Correspondence Address" +msgstr "Endereço de correspondência" + +#: lib/RT/Transaction_Overlay.pm:541 +msgid "Correspondence added" +msgstr "Correspondência adicionada" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "Correspondência não registrada" + +#: lib/RT/Ticket_Overlay.pm:3458 +msgid "Could not add new custom field value for ticket. " +msgstr "Não pude 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 pude adicionar novo valor de campo personalizado para o tíquete. %1" + +#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +msgid "Could not change owner. " +msgstr "Não pude alterar o proprietário. " + +#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#. ($msg) +msgid "Could not create CustomField" +msgstr "Não pude criar CampoPersonalizado" + +#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +msgid "Could not create group" +msgstr "Não pude criar o grupo" + +#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#. ($msg) +msgid "Could not create template: %1" +msgstr "Não pude criar o modelo: %1" + +#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +msgid "Could not create ticket. Queue not set" +msgstr "Não pude criar o tíquete. Fila não selecionada" + +#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +msgid "Could not create user" +msgstr "Não pude criar o usuário" + +#: NOT FOUND IN SOURCE +msgid "Could not create watcher for requestor" +msgstr "Não pude criar um observador para o requisitante" + +#: NOT FOUND IN SOURCE +msgid "Could not find a ticket with id %1" +msgstr "Não pude encontrar um tíquete com identificador %1" + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "Não pude encontrar o grupo %1." + +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +msgid "Could not find or create that user" +msgstr "Não pude encontrar ou criar o usuário" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +msgid "Could not find that principal" +msgstr "Não pude encontrar este principal" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "Não pude encontrar o usuário %1." + +#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +msgid "Could not load group" +msgstr "Não pude carregar o grupo" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "Não pude fazer este principal um %1 para esta fila" + +#: lib/RT/Ticket_Overlay.pm:1443 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "Não pude fazer este principal um %1 para este tíquete" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "Não pude remover este principal como um %1 para esta fila" + +#: lib/RT/Ticket_Overlay.pm:1559 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "Não pude remover este principal como um %1 para este tíquete" + +#: lib/RT/Group_Overlay.pm:985 +msgid "Couldn't add member to group" +msgstr "Não pude adicionar o membro no grupo" + +#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "Não pude 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/Interface/Web.pm:866 +msgid "Couldn't find row" +msgstr "Não pude encontrar o registro" + +#: lib/RT/Group_Overlay.pm:959 +msgid "Couldn't find that principal" +msgstr "Não encontrei este principal" + +#: lib/RT/CustomField_Overlay.pm:175 +msgid "Couldn't find that value" +msgstr "Não encontrei este valor" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find that watcher" +msgstr "Não pude encontrar este observador" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find user\\n" +msgstr "Não pude encontrar o usuário\\n" + +#: lib/RT/CurrentUser.pm:112 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Não pude carregar %1 do banco de dados de usuários.\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load KeywordSelects." +msgstr "Não pude carregar os KeywordSelects." + +#: NOT FOUND IN SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "Não pude carregar o arquivo de configuração do RT '%1' %2" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Scrips." +msgstr "Não pude carregar os Scrips." + +#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#. ($id) +msgid "Couldn't load group %1" +msgstr "Não pude carregar o grupo %1" + +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +msgid "Couldn't load link" +msgstr "Não pude carregar a ligação" + +#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#. ($id) +msgid "Couldn't load queue" +msgstr "Não pude carregar a fila" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "Não pude carregar a fila %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "Não pude carregar o scrip" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "Não pude carregar o modelo" + +#: html/Admin/Users/Prefs.html:79 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "Não pude carregar este usuário (%1)" + +#: html/SelfService/Display.html:166 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Não pude carregar o tíquete '%1'" + +#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +msgid "Country" +msgstr "País" + +#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +msgid "Create" +msgstr "Criar" + +#: etc/initialdata:128 +msgid "Create Tickets" +msgstr "Criar Tíquetes" + +#: html/Admin/Elements/EditCustomField:58 +msgid "Create a CustomField" +msgstr "Criar um CampoPersonalizado" + +#: html/Admin/Queues/CustomField.html:48 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "Criar um Campo Personalizado para a fila %1" + +#: html/Admin/Global/CustomField.html:48 +msgid "Create a CustomField which 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:67 html/Admin/Groups/Modify.html:93 +msgid "Create a new group" +msgstr "Criar um novo grupo" + +#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +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/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +msgid "Create a new ticket" +msgstr "Criar um novo tíquete" + +#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +msgid "Create a new user" +msgstr "Criar um novo usuário" + +#: html/Admin/Queues/Modify.html:103 +msgid "Create a queue" +msgstr "Criar uma fila" + +#: NOT FOUND IN SOURCE +msgid "Create a queue called" +msgstr "Criar uma fila chamada" + +#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +msgid "Create a request" +msgstr "Criar uma requisição" + +#: html/Admin/Queues/Scrip.html:59 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "Criar um scrip para a fila %1" + +#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +msgid "Create a template" +msgstr "Criar um modelo" + +#: 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:130 +msgid "Create new tickets based on this scrip's template" +msgstr "Criar novos tíquetes baseados no esquema deste scrip" + +#: html/SelfService/Create.html:81 +msgid "Create ticket" +msgstr "Criar um tíquete" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Create tickets in this queue" +msgstr "Criar tíquetes nesta fila" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Create, delete and modify custom fields" +msgstr "Criar, remover e modificar campos personalizados" + +#: lib/RT/Queue_Overlay.pm:68 +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:59 +msgid "Create, delete and modify the members of personal groups" +msgstr "Criar, remover e modificar os membros de grupos pessoais" + +#: lib/RT/System.pm:60 +msgid "Create, delete and modify users" +msgstr "Criar, remover e modificar usuários" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "CreateTicket" +msgstr "CreateTicket" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +msgid "Created" +msgstr "Criado" + +#: html/Admin/Elements/EditCustomField:71 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "CampoPersonalizado %1 criado" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "Modelo %1 criado" + +#: html/Ticket/Elements/EditLinks:28 +msgid "Current Relationships" +msgstr "Relações atuais" + +#: html/Admin/Elements/EditScrips:30 +msgid "Current Scrips" +msgstr "Scrips correntes" + +#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +msgid "Current members" +msgstr "Membros atuais" + +#: html/Admin/Elements/SelectRights:29 +msgid "Current rights" +msgstr "Direitos de acesso atuais" + +#: html/Search/Listing.html:71 +msgid "Current search criteria" +msgstr "Critério de busca atual" + +#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +msgid "Current watchers" +msgstr "Observadores atuais" + +#: html/Admin/Global/CustomField.html:55 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "Campo Personalizado #%1" + +#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +msgid "Custom Fields" +msgstr "Campos Personalizados" + +#: html/Admin/Elements/EditScrip:73 +msgid "Custom action cleanup code" +msgstr "Código de finalização da ação customizada" + +#: html/Admin/Elements/EditScrip:65 +msgid "Custom action preparation code" +msgstr "Código de preparação da ação customizada" + +#: html/Admin/Elements/EditScrip:49 +msgid "Custom condition" +msgstr "Condição customizada" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "Campo personalizado %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "O campo personalizado %1 tem um valor." + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "O campo personalizado %1 não tem valor." + +#: lib/RT/Ticket_Overlay.pm:3360 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Campo personalizado %1 não encontrado" + +#: html/Admin/Elements/EditCustomFields:197 +msgid "Custom field deleted" +msgstr "Campo personalizado removido" + +#: lib/RT/Ticket_Overlay.pm:3510 +msgid "Custom field not found" +msgstr "Campo personalizado não encontrado" + +#: lib/RT/CustomField_Overlay.pm:283 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "O valor de campo %1 não pôde ser encontrado para o campo personalizado %2" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "O valor do campo personalizado foi alterado de %1 para %2" + +#: lib/RT/CustomField_Overlay.pm:185 +msgid "Custom field value could not be deleted" +msgstr "O valor do campo personalizado não pôde ser removido" + +#: lib/RT/CustomField_Overlay.pm:289 +msgid "Custom field value could not be found" +msgstr "O valor de campo personalizado não pôde ser encontrado" + +#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +msgid "Custom field value deleted" +msgstr "Valor do campo personalizado removido" + +#: lib/RT/Transaction_Overlay.pm:550 +msgid "CustomField" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "Erro de dado" + +#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +msgid "Dates" +msgstr "Datas" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "Dez." + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "Dezembro" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "Esquema Padrão de Autoresposta" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "Esquema padrão de Autoresposta" + +#: etc/initialdata:275 +msgid "Default admin comment template" +msgstr "Esquema padrão de comentário administrativo" + +#: etc/initialdata:257 +msgid "Default admin correspondence template" +msgstr "Esquema padrão de correspondência administrativa" + +#: etc/initialdata:267 +msgid "Default correspondence template" +msgstr "Esquema padrão de correspondência" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "Esquema padrão de transação" + +#: lib/RT/Transaction_Overlay.pm:645 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "Padrão: %1/%2 mudou de %3 para %4" + +#: html/User/Delegation.html:25 html/User/Delegation.html:28 +msgid "Delegate rights" +msgstr "Delegar direitos de acesso" + +#: lib/RT/System.pm:63 +msgid "Delegate specific rights which have been granted to you." +msgstr "Delegar direitos específicos que foram outorgados a você." + +#: lib/RT/System.pm:63 +msgid "DelegateRights" +msgstr "DelegateRights" + +#: html/User/Elements/Tabs:38 +msgid "Delegation" +msgstr "Delegação" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "Remover" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "Delete tickets" +msgstr "Remover tíquetes" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "DeleteTicket" +msgstr "DeleteTicket" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "Ao remover este objeto você pode quebrar a integridade referencial" + +#: lib/RT/Queue_Overlay.pm:292 +msgid "Deleting this object would break referential integrity" +msgstr "Ao remover este objeto você quebra a integridade referencial" + +#: lib/RT/User_Overlay.pm:430 +msgid "Deleting this object would violate referential integrity" +msgstr "Ao remover este objeto você 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:46 +msgid "Deny" +msgstr "Negue" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +msgid "Depended on by" +msgstr "Dependem deste tíquete" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "Dependências: \\n" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +msgid "Depends on" +msgstr "Depende de" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "DependsOn" + +#: html/Elements/SelectSortOrder:35 +msgid "Descending" +msgstr "Descendente" + +#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +msgid "Describe the issue below" +msgstr "Descreva o problema abaixo" + +#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +msgid "Description" +msgstr "Descrição" + +#: html/SelfService/Elements/MyRequests:44 +msgid "Details" +msgstr "Detalhes" + +#: html/Ticket/Elements/Tabs:85 +msgid "Display" +msgstr "Apresentação" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Display Access Control List" +msgstr "Mostrar Lista de Controle de Acesso" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Display Scrip templates for this queue" +msgstr "Mostras os esquemas de Scrip para esta fila" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Display Scrips for this queue" +msgstr "Mostrar os Scrips para esta fila" + +#: html/Ticket/Elements/ShowHistory:35 +msgid "Display mode" +msgstr "Modo de apresentação" + +#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 +#. ($Ticket->id) +msgid "Display ticket #%1" +msgstr "Apresentar o tíquete #%1" + +#: lib/RT/System.pm:54 +msgid "Do anything and everything" +msgstr "Fazer qualquer coisa" + +#: html/Elements/Refresh:30 +msgid "Don't refresh this page." +msgstr "Não recarregar esta página." + +#: html/Search/Elements/PickRestriction:114 +msgid "Don't show search results" +msgstr "Não mostrar resultados da busca" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "Download" +msgstr "Baixar" + +#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +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" + +#: bin/rt-commit-handler:754 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "ERRO: Não pude carregar o tíquete '%1': %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "Editar" + +#: NOT FOUND IN SOURCE +msgid "Edit Conditions" +msgstr "Editar Condições" + +#: html/Admin/Queues/CustomFields.html:45 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "Editar Campos Personalizados para %1" + +#: html/Ticket/ModifyLinks.html:36 +msgid "Edit Relationships" +msgstr "Editar Relacionamentos" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "Editar Esquemas para a fila %1" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "Editar palavras chave" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "Editar scrips" + +#: html/Admin/Global/index.html:46 +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" + +#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "Editando a configuração para a fila %1" + +#: html/Admin/Elements/ModifyUser:25 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "Editando a configuração para o usuário %1" + +#: html/Admin/Elements/EditCustomField:74 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Editando o campo %1" + +#: html/Admin/Groups/Members.html:32 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Editando os membros do grupo %1" + +#: html/User/Groups/Members.html:129 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "Editando os membros do grupo pessoal %1" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "Editando o modelo %1" + +#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +msgid "Either base or target must be specified" +msgstr "Você deve especificar a origem ou o destinatário" + +#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +msgid "Email" +msgstr "Email" + +#: lib/RT/User_Overlay.pm:188 +msgid "Email address in use" +msgstr "O endereço de email já está em uso" + +#: html/Admin/Elements/ModifyUser:42 +msgid "EmailAddress" +msgstr "Correio Eletrônico" + +#: html/Admin/Elements/ModifyUser:54 +msgid "EmailEncoding" +msgstr "Codificação de Email" + +#: html/Admin/Elements/EditCustomField:36 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "Habilitado (Deselecionando este ítem desabilita este campo personalizado)" + +#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "Habilitado (Deselecionando este ítem desabilita este grupo)" + +#: html/Admin/Queues/Modify.html:84 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Habilitado (desassinalando desabilita esta fila)" + +#: html/Admin/Elements/EditCustomFields:99 +msgid "Enabled Custom Fields" +msgstr "Campos Personalizados Habilitados" + +#: html/Admin/Queues/index.html:56 +msgid "Enabled Queues" +msgstr "Filas Habilitadas" + +#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "Estado %1 habilitado" + +#: lib/RT/CustomField_Overlay.pm:361 +msgid "Enter multiple values" +msgstr "Entre com múltiplos valores" + +#: lib/RT/CustomField_Overlay.pm:358 +msgid "Enter one value" +msgstr "Entre com um valor" + +#: html/Ticket/Elements/EditLinks:112 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Entre com identificadores de tíquete ou URIs que levam ao tíquete. Separe entradas múltiplas com espaços." + +#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +msgid "Error" +msgstr "Erro" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "Erro ao adicionar um observador" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Erro nos parâmetros para Queue->AddWatcher" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Erro nos parâmetros para Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1356 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Erro nos parâmetros para Ticket->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1532 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Erro nos parâmetros para Ticket->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "Todos" + +#: bin/rt-crontool:194 +msgid "Example:" +msgstr "Exemplo:" + +#: html/Admin/Elements/ModifyUser:64 +msgid "ExternalAuthId" +msgstr "ExternalAuthId" + +#: html/Admin/Elements/ModifyUser:58 +msgid "ExternalContactInfoId" +msgstr "ExternalContactInfoId" + +#: html/Admin/Users/Modify.html:73 +msgid "Extra info" +msgstr "Informação adicional" + +#: lib/RT/User_Overlay.pm:302 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Não pude encontrar o pseudogrupo de usuários 'Privileged'." + +#: lib/RT/User_Overlay.pm:309 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Não pude encontrar o pseudogrupo de usuários 'Unprivileged'" + +#: bin/rt-crontool:138 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "Falhou ao carregar o módulo %1. (%2)" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "Fev." + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "Fevereiro" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "Fin" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "Prioridade Final" + +#: lib/RT/Ticket_Overlay.pm:1162 +msgid "FinalPriority" +msgstr "FinalPriority" + +#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +msgid "Find group whose" +msgstr "Encontrar o grupo cujo" + +#: html/Elements/Quicksearch:25 +msgid "Find new/open tickets" +msgstr "Encontrar tíquetes novos/abertos" + +#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +msgid "Find people whose" +msgstr "Encontrar pessoas que" + +#: html/Search/Listing.html:108 +msgid "Find tickets" +msgstr "Encontrar tíquetes" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "Terminar Aprovação" + +#: html/Ticket/Elements/Tabs:58 +msgid "First" +msgstr "Primeiro" + +#: html/Search/Listing.html:41 +msgid "First page" +msgstr "Primeira página" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "Foo Bar Baz" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "Foo!" + +#: html/Search/Bulk.html:87 +msgid "Force change" +msgstr "Force alteração" + +#: html/Search/Listing.html:106 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "Encontrado %quant(%1,tíquete)" + +#: lib/RT/Interface/Web.pm:868 +msgid "Found Object" +msgstr "Objeto Encontrado" + +#: html/Admin/Elements/ModifyUser:44 +msgid "FreeformContactInfo" +msgstr "FreeformContactInfo" + +#: lib/RT/CustomField_Overlay.pm:38 +msgid "FreeformMultiple" +msgstr "FreeformMultiple" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformSingle" +msgstr "FreeformSingle" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "Sex." + +#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +msgid "Full headers" +msgstr "Cabeçalhos completos" + +#: 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:595 +#. ($New->Name) +msgid "Given to %1" +msgstr "Dado a %1" + +#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +msgid "Global" +msgstr "Global" + +#: 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/Elements/SelectTemplate:38 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "Esquema global: %1" + +#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +msgid "Go!" +msgstr "Ir!" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "Assinatura pgp válida de %1\\n" + +#: html/Search/Listing.html:50 +msgid "Goto page" +msgstr "Ir para a página" + +#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +msgid "Goto ticket" +msgstr "Ir para o tíquete" + +#: NOT FOUND IN SOURCE +msgid "Grand" +msgstr "" + +#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +msgid "Group" +msgstr "Grupo" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "Grupo %1 %2: %3" + +#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +msgid "Group Rights" +msgstr "Direitos de Acesso do Grupo" + +#: lib/RT/Group_Overlay.pm:965 +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:77 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "O grupo não pôde ser criado: %1" + +#: lib/RT/Group_Overlay.pm:497 +msgid "Group created" +msgstr "Grupo criado" + +#: lib/RT/Group_Overlay.pm:1133 +msgid "Group has no such member" +msgstr "O grupo não contém este membro" + +#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +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/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +msgid "Groups" +msgstr "Grupos" + +#: lib/RT/Group_Overlay.pm:971 +msgid "Groups can't be members of their members" +msgstr "Grupos não podem ser membros de seus próprios membros" + +#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +msgid "Hello!" +msgstr "Olá!" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "Olá, %1" + +#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +msgid "History" +msgstr "Histórico" + +#: html/Admin/Elements/ModifyUser:68 +msgid "HomePhone" +msgstr "Telefone Residencial" + +#: html/Elements/Tabs:46 +msgid "Homepage" +msgstr "Homepage" + +#: lib/RT/Base.pm:74 +#. (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/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "Identificador" + +#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +msgid "Identity" +msgstr "Identidade" + +#: etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "Se uma aprovação é rejeitada, rejeite a original e remova as aprovações pendentes" + +#: bin/rt-crontool:190 +msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." +msgstr "Se esta ferramenta fosse setgid, um usuário local mal-intencionado poderia usá-la para obter acesso administrativo ao RT." + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +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/Interface/Web.pm:860 +msgid "Illegal value for %1" +msgstr "Valor ilegal para %1" + +#: lib/RT/Interface/Web.pm:863 +msgid "Immutable field" +msgstr "Campo imutável" + +#: html/Admin/Elements/EditCustomFields:74 +msgid "Include disabled custom fields in listing." +msgstr "Incluir campoas personalizados desabilitados na listagem." + +#: html/Admin/Queues/index.html:43 +msgid "Include disabled queues in listing." +msgstr "Incluir filas desabilitadas na listagem." + +#: html/Admin/Users/index.html:47 +msgid "Include disabled users in search." +msgstr "Incluir usuários desabilitados na busca." + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "Prioridade Inicial" + +#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +msgid "InitialPriority" +msgstr "InitialPriority" + +#: lib/RT/ScripAction_Overlay.pm:105 +msgid "Input error" +msgstr "Erro de entrada" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "Interesse notado" + +#: lib/RT/Ticket_Overlay.pm:3729 +msgid "Internal Error" +msgstr "Erro Interno" + +#: lib/RT/Record.pm:143 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "Erro Interno: %1" + +#: lib/RT/Group_Overlay.pm:644 +msgid "Invalid Group Type" +msgstr "Tipo Inválido de Grupo" + +#: lib/RT/Principal_Overlay.pm:128 +msgid "Invalid Right" +msgstr "Direito Inválido" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "Tipo Inválido" + +#: lib/RT/Interface/Web.pm:865 +msgid "Invalid data" +msgstr "Dado inválido" + +#: lib/RT/Ticket_Overlay.pm:438 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "Proprietário inválido. Usando 'nobody'." + +#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "Fila inválida" + +#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +msgid "Invalid right" +msgstr "Direito de acesso inválido" + +#: lib/RT/Record.pm:118 +#. ($key) +msgid "Invalid value for %1" +msgstr "Valor inválido para %1" + +#: lib/RT/Ticket_Overlay.pm:3367 +msgid "Invalid value for custom field" +msgstr "Valor inválido para o campo personalizado" + +#: lib/RT/Ticket_Overlay.pm:345 +msgid "Invalid value for status" +msgstr "Valor inválido para o estado" + +#: bin/rt-crontool:191 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "É extremamente importante que usuários não privilegiados não possam executar esta ferramenta." + +#: bin/rt-crontool:192 +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 que você crie um usuário UNIX não privilegiado com o grupo e acesso RT corretos para executar esta ferramenta." + +#: bin/rt-crontool:163 +msgid "It takes several arguments:" +msgstr "Requer vários argumentos:" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "Itens requerendo minha aprovação" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "Jan." + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "Janeiro" + +#: lib/RT/Group_Overlay.pm:149 +msgid "Join or leave this group" +msgstr "Entre ou deixe este grupo" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "Jul." + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "Julho" + +#: html/Ticket/Elements/Tabs:99 +msgid "Jumbo" +msgstr "Jumbo" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "Jun." + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "Junho" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "Palavra chave" + +#: html/Admin/Elements/ModifyUser:52 +msgid "Lang" +msgstr "Líng" + +#: html/Ticket/Elements/Tabs:73 +msgid "Last" +msgstr "Último" + +#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +msgid "Last Contact" +msgstr "Último Contato" + +#: html/Elements/SelectDateType:29 +msgid "Last Contacted" +msgstr "Contactado em" + +#: html/Search/Elements/TicketHeader:41 +msgid "Last Notified" +msgstr "Notificado em" + +#: html/Elements/SelectDateType:30 +msgid "Last Updated" +msgstr "Atualizado em" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "LastUpdated" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "Resta" + +#: html/Admin/Users/Modify.html:83 +msgid "Let this user access RT" +msgstr "Deixar este usuário acessar RT" + +#: html/Admin/Users/Modify.html:87 +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" + +#: lib/RT/Ticket_Overlay.pm:2697 +msgid "Link already exists" +msgstr "A ligação já existe" + +#: lib/RT/Ticket_Overlay.pm:2709 +msgid "Link could not be created" +msgstr "A ligação não pôde ser criada" + +#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#. ($TransString) +msgid "Link created (%1)" +msgstr "Ligação criada (%1)" + +#: lib/RT/Ticket_Overlay.pm:2638 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Ligação removida (%1)" + +#: lib/RT/Ticket_Overlay.pm:2644 +msgid "Link not found" +msgstr "Ligação não encontrada" + +#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "Ligar o tíquete #%1" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "Ligar o tíquete %1" + +#: html/Ticket/Elements/Tabs:97 +msgid "Links" +msgstr "Ligações" + +#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +msgid "Location" +msgstr "Localização" + +#: lib/RT.pm:158 +#. ($RT::LogDir) +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:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "Assinado como %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +msgid "Login" +msgstr "Entrar" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "Sair" + +#: html/Search/Bulk.html:86 +msgid "Make Owner" +msgstr "Definir como proprietário" + +#: html/Search/Bulk.html:102 +msgid "Make Status" +msgstr "Definir o estado" + +#: html/Search/Bulk.html:109 +msgid "Make date Due" +msgstr "Definir o prazo final" + +#: html/Search/Bulk.html:110 +msgid "Make date Resolved" +msgstr "Definir a data de resolução" + +#: html/Search/Bulk.html:107 +msgid "Make date Started" +msgstr "Definir a data de iniciado" + +#: html/Search/Bulk.html:106 +msgid "Make date Starts" +msgstr "Definir a data início" + +#: html/Search/Bulk.html:108 +msgid "Make date Told" +msgstr "Definir a data de última alteração" + +#: html/Search/Bulk.html:99 +msgid "Make priority" +msgstr "Definir a prioridade" + +#: html/Search/Bulk.html:100 +msgid "Make queue" +msgstr "Definir a fila" + +#: html/Search/Bulk.html:98 +msgid "Make subject" +msgstr "Definir o assunto" + +#: html/Admin/index.html:33 +msgid "Manage groups and group membership" +msgstr "Administrar grupos e seus membros" + +#: html/Admin/index.html:39 +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:36 +msgid "Manage queues and queue-specific properties" +msgstr "Administrar filas e suas propriedades específicas" + +#: html/Admin/index.html:30 +msgid "Manage users and passwords" +msgstr "Administrar usuários e senhas" + +#: lib/RT/Date.pm:413 +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:415 +msgid "May." +msgstr "Mai." + +#: lib/RT/Group_Overlay.pm:982 +msgid "Member added" +msgstr "Membro adicionado" + +#: lib/RT/Group_Overlay.pm:1140 +msgid "Member deleted" +msgstr "Membro removido" + +#: lib/RT/Group_Overlay.pm:1144 +msgid "Member not deleted" +msgstr "Membro não removido" + +#: html/Elements/SelectLinkType:26 +msgid "Member of" +msgstr "Membro de" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "MemberOf" + +#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +msgid "Members" +msgstr "Membros" + +#: lib/RT/Ticket_Overlay.pm:2843 +msgid "Merge Successful" +msgstr "União bem sucedida" + +#: lib/RT/Ticket_Overlay.pm:2804 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "União falhou. Não pude definir o EffectiveId" + +#: html/Ticket/Elements/EditLinks:115 +msgid "Merge into" +msgstr "Unir a" + +#: html/Ticket/Update.html:102 +msgid "Message" +msgstr "Mensagem" + +#: lib/RT/Interface/Web.pm:867 +msgid "Missing a primary key?: %1" +msgstr "Faltando uma chave primária?: %1" + +#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +msgid "Mobile" +msgstr "Móvel" + +#: html/Admin/Elements/ModifyUser:72 +msgid "MobilePhone" +msgstr "Celular" + +#: lib/RT/Queue_Overlay.pm:70 +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/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +msgid "Modify Custom Fields which apply to all queues" +msgstr "Modificar Campos Personalizados que se aplicam a todas as filas" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "Modify Scrip templates for this queue" +msgstr "Modificar esquemas de Scrip para esta fila" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "Modify Scrips for this queue" +msgstr "Modificar Scrips para esta 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/Queues/CustomField.html:45 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "Modificar um Campo Personalizado para a fila %1" + +#: html/Admin/Global/CustomField.html:53 +msgid "Modify a CustomField which applies to all queues" +msgstr "Modificar um Campo Personalizado que se aplica a todas as filas" + +#: html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "Modificar um scrip para a fila %1" + +#: html/Admin/Global/Scrip.html:48 +msgid "Modify a scrip which applies to all queues" +msgstr "Modificar um scrip aplicável a todas as filas" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "Modificar datas para # %1" + +#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Modificar as datas para #%1" + +#: html/Ticket/ModifyDates.html:35 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Modificar as datas para o tíquete # %1" + +#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +msgid "Modify global group rights" +msgstr "Modificar direitos de acesso globais de grupo" + +#: html/Admin/Global/GroupRights.html:33 +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:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +msgid "Modify global user rights" +msgstr "Modificar direitos de acesso globais de usuário" + +#: html/Admin/Global/UserRights.html:33 +msgid "Modify global user rights." +msgstr "Modificar direitos de acesso globais de usuário." + +#: lib/RT/Group_Overlay.pm:146 +msgid "Modify group metadata or delete group" +msgstr "Modificar metadados do grupo ou removê-lo" + +#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#. ($GroupObj->Name) +msgid "Modify group rights for group %1" +msgstr "Modificar os direitos de acesso do grupo %1" + +#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#. ($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:148 +msgid "Modify membership roster for this group" +msgstr "Modificar lista de membros deste grupo" + +#: lib/RT/System.pm:61 +msgid "Modify one's own RT account" +msgstr "Modificar sua própria conta RT" + +#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Modificar as pessoas relacionadas à fila %1" + +#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#. ($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:44 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Modificar os scrips da fila %1" + +#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +msgid "Modify scrips which apply to all queues" +msgstr "Modificar scrips aplicáveis a todas as filas" + +#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#. (loc($TemplateObj->Name())) +#. ($TemplateObj->id) +msgid "Modify template %1" +msgstr "Modificar o modelo %1" + +#: html/Admin/Global/Templates.html:44 +msgid "Modify templates which apply to all queues" +msgstr "Modificar esquemas que se aplicam a todas as filas" + +#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "Modificar o grupo %1" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Modify the queue watchers" +msgstr "Modificar os observadores da fila" + +#: html/Admin/Users/Modify.html:236 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "Modificar o usuário %1" + +#: html/Ticket/ModifyAll.html:37 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Modificar o tíquete # %1" + +#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Modificar o tíquete #%1" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Modify tickets" +msgstr "Modificar tíquetes" + +#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#. ($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:25 html/Admin/Queues/UserRights.html:29 +#. ($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:70 +msgid "ModifyACL" +msgstr "ModifyACL" + +#: lib/RT/Group_Overlay.pm:149 +msgid "ModifyOwnMembership" +msgstr "ModifyOwnMembership" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "ModifyQueueWatchers" +msgstr "ModifyQueueWatchers" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "ModifyScrips" +msgstr "ModifyScrips" + +#: lib/RT/System.pm:61 +msgid "ModifySelf" +msgstr "ModifySelf" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "ModifyTemplate" +msgstr "ModifyTemplate" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "ModifyTicket" +msgstr "ModifyTicket" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "Seg." + +#: html/Ticket/Elements/ShowRequestor:42 +#. ($name) +msgid "More about %1" +msgstr "Mais sobre %1" + +#: html/Admin/Elements/EditCustomFields:61 +msgid "Move down" +msgstr "Descer" + +#: html/Admin/Elements/EditCustomFields:53 +msgid "Move up" +msgstr "Subir" + +#: html/Admin/Elements/SelectSingleOrMultiple:27 +msgid "Multiple" +msgstr "Múltiplo" + +#: lib/RT/User_Overlay.pm:179 +msgid "Must specify 'Name' attribute" +msgstr "O atributo 'Name' deve ser especificado" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "Minhas Aprovações" + +#: html/Approvals/index.html:25 html/Approvals/index.html:26 +msgid "My approvals" +msgstr "Minhas aprovações" + +#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +msgid "Name" +msgstr "Nome" + +#: lib/RT/User_Overlay.pm:186 +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:52 +msgid "Never" +msgstr "Nunca" + +#: html/Elements/Quicksearch:30 +msgid "New" +msgstr "Novo" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +msgid "New Password" +msgstr "Nova Senha" + +#: etc/initialdata:311 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "Nova Aprovação Pendente" + +#: html/Ticket/Elements/EditLinks:111 +msgid "New Relationships" +msgstr "Novos Relacionamentos" + +#: html/Ticket/Elements/Tabs:36 +msgid "New Search" +msgstr "Nova busca" + +#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +msgid "New custom field" +msgstr "Novo campo personalizado" + +#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +msgid "New group" +msgstr "Novo grupo" + +#: html/SelfService/Prefs.html:32 +msgid "New password" +msgstr "Nova senha" + +#: lib/RT/User_Overlay.pm:639 +msgid "New password notification sent" +msgstr "Notificação de nova senha enviada" + +#: html/Admin/Elements/QueueTabs:70 +msgid "New queue" +msgstr "Nova fila" + +#: html/SelfService/Elements/Tabs:63 +msgid "New request" +msgstr "Nova requisição" + +#: html/Admin/Elements/SelectRights:42 +msgid "New rights" +msgstr "Novos direitos de acesso" + +#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +msgid "New scrip" +msgstr "Novo scrip" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "Nova busca" + +#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +msgid "New template" +msgstr "Novo esquema" + +#: lib/RT/Ticket_Overlay.pm:2771 +msgid "New ticket doesn't exist" +msgstr "O novo tíquete não existe" + +#: html/Admin/Elements/UserTabs:52 +msgid "New user" +msgstr "Novo usuário" + +#: html/Admin/Elements/CreateUserCalled:26 +msgid "New user called" +msgstr "Novo usuário chamado" + +#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +msgid "New watchers" +msgstr "Novos observadores" + +#: html/Admin/Users/Prefs.html:42 +msgid "New window setting" +msgstr "Abrir nova janela" + +#: html/Ticket/Elements/Tabs:69 +msgid "Next" +msgstr "Próximo" + +#: html/Search/Listing.html:48 +msgid "Next page" +msgstr "Próxima página" + +#: html/Admin/Elements/ModifyUser:50 +msgid "NickName" +msgstr "Apelido" + +#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +msgid "Nickname" +msgstr "Apelido" + +#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +msgid "No CustomField" +msgstr "Não há Campo Personalizado" + +#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +msgid "No Group defined" +msgstr "Não há Grupo definido" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +msgid "No Queue defined" +msgstr "Não há Fila definida" + +#: bin/rt-crontool:56 +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:79 html/Admin/Queues/Template.html:76 +msgid "No Template" +msgstr "Não há Modelo" + +#: bin/rt-commit-handler:764 +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:47 +msgid "No action" +msgstr "Não há ação" + +#: lib/RT/Interface/Web.pm:862 +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/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +msgid "No comment entered about this user" +msgstr "Não há comentário sobre este usuário" + +#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +msgid "No correspondence attached" +msgstr "Não há nenhum arquivo anexado" + +#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#. (ref $self) +msgid "No description for %1" +msgstr "Não há descrição para %1" + +#: lib/RT/Users_Overlay.pm:151 +msgid "No group specified" +msgstr "Não há grupo especificado" + +#: lib/RT/User_Overlay.pm:857 +msgid "No password set" +msgstr "Não há senha especificada" + +#: lib/RT/Queue_Overlay.pm:259 +msgid "No permission to create queues" +msgstr "Não há permissão para criar filas" + +#: lib/RT/Ticket_Overlay.pm:341 +#. ($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:151 +msgid "No permission to create users" +msgstr "Sem permissão para criar usuários" + +#: html/SelfService/Display.html:174 +msgid "No permission to display that ticket" +msgstr "Sem permissão para mostrar o tíquete" + +#: html/SelfService/Update.html:55 +msgid "No permission to view update ticket" +msgstr "sem permissão para ver modificar o tíquete" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +msgid "No principal specified" +msgstr "Não há principal especificado" + +#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +msgid "No principals selected." +msgstr "Não há principal selecionado." + +#: html/Admin/Queues/index.html:35 +msgid "No queues matching search criteria found." +msgstr "Não há fila satisfazendo o critério de busca." + +#: html/Admin/Elements/SelectRights:81 +msgid "No rights found" +msgstr "Nenhum direito encontrado" + +#: html/Admin/Elements/SelectRights:33 +msgid "No rights granted." +msgstr "Nenhum direito outorgado." + +#: html/Search/Bulk.html:149 +msgid "No search to operate on." +msgstr "Não há busca a realizar" + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "Não há identificador de tíquete especificado" + +#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +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 email especificado" + +#: html/Admin/Users/index.html:36 +msgid "No users matching search criteria found." +msgstr "Nenhum usuário satisfazendo o critério de busca foi encontrado." + +#: bin/rt-commit-handler:644 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "Nenhum usuário RT válido foi encontrado. O tratador de CVS do RT está desabilitado. Por favor, consulte o administrador do RT.\\n" + +#: lib/RT/Interface/Web.pm:859 +msgid "No value sent to _Set!\\n" +msgstr "Nenhum valor enviado a _Set!\\n" + +#: html/Search/Elements/TicketRow:37 +msgid "Nobody" +msgstr "Ninguém" + +#: lib/RT/Interface/Web.pm:864 +msgid "Nonexistant field?" +msgstr "Campo inexistente?" + +#: html/Elements/Login:99 +msgid "Not logged in" +msgstr "Não logado" + +#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +msgid "Not logged in." +msgstr "Não entrou." + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "Não definido" + +#: html/NoAuth/Reminder.html:27 +msgid "Not yet implemented." +msgstr "Ainda não implementado." + +#: html/Admin/Groups/Rights.html:25 +msgid "Not yet implemented...." +msgstr "Ainda não implementado..." + +#: html/Approvals/Elements/Approve:50 +msgid "Notes" +msgstr "Notas" + +#: lib/RT/User_Overlay.pm:642 +msgid "Notification could not be sent" +msgstr "A notificação não pôde ser enviada" + +#: etc/initialdata:94 +msgid "Notify AdminCcs" +msgstr "Notificar AdminCcs" + +#: etc/initialdata:90 +msgid "Notify AdminCcs as Comment" +msgstr "Notificar AdminCcs como Comentário" + +#: etc/initialdata:121 +msgid "Notify Other Recipients" +msgstr "Notificar Outros Destinatários" + +#: etc/initialdata:117 +msgid "Notify Other Recipients as Comment" +msgstr "Notificar Outros Destinatários como Comentário" + +#: etc/initialdata:86 +msgid "Notify Owner" +msgstr "Notificar Proprietário" + +#: etc/initialdata:82 +msgid "Notify Owner as Comment" +msgstr "Notificar Proprietário como Comentário" + +#: etc/initialdata:313 etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "Notificar Proprietários e AdminCcs sobre novos itens pendendo suas aprovações" + +#: etc/initialdata:78 +msgid "Notify Requestors" +msgstr "Notificar Requisitantes" + +#: etc/initialdata:104 +msgid "Notify Requestors and Ccs" +msgstr "Notificar Requisitantes e Ccs" + +#: etc/initialdata:99 +msgid "Notify Requestors and Ccs as Comment" +msgstr "Notificar Requisitantes e Ccs como Comentário" + +#: etc/initialdata:113 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "Notificar Requisitantes, Ccs e AdminCcs" + +#: etc/initialdata:109 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "Notificar Requisitantes, Ccs e AdminCcs como Comentário" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "Nov." + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "Novembro" + +#: lib/RT/Record.pm:157 +msgid "Object could not be created" +msgstr "Objeto não pôde ser criado" + +#: lib/RT/Record.pm:176 +msgid "Object created" +msgstr "Objeto criado" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "Out." + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "Outubro" + +#: html/Elements/SelectDateRelation:35 +msgid "On" +msgstr "Em" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "Sobre Comentário" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "Sobre Correspondência" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "Sobre Criação" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "Sobre Mudança de Propriedade" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "Sobre Mudança de Fila" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "Sobre Resolução" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "Sobre Mudança de Estado" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "Sobre Transação" + +#: html/Approvals/Elements/PendingMyApproval:50 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='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:48 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "Só mostrar aprovações para requisições criadas antes de %1" + +#: html/Elements/Quicksearch:31 +msgid "Open" +msgstr "Aberto" + +#: html/Ticket/Elements/Tabs:136 +msgid "Open it" +msgstr "Abrir" + +#: html/SelfService/Elements/Tabs:57 +msgid "Open requests" +msgstr "Requisições abertas" + +#: html/Admin/Users/Prefs.html:41 +msgid "Open tickets (from listing) in a new window" +msgstr "Abrir tíquetes (da listagem) em uma nova janela" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in another window" +msgstr "Abrir tíquetes (da listagem) em outra janela" + +#: etc/initialdata:133 +msgid "Open tickets on correspondence" +msgstr "Abrir tíquetes na correspondência" + +#: html/Search/Elements/PickRestriction:101 +msgid "Ordering and sorting" +msgstr "Requisitando e ordenando" + +#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +msgid "Organization" +msgstr "Organização" + +#: html/Approvals/Elements/Approve:34 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "Tíquete originador: #%1" + +#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +msgid "Over time, priority moves toward" +msgstr "Após a data, a prioridade tende a" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Own tickets" +msgstr "Próprios tíquetes" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "OwnTicket" +msgstr "OwnTicket" + +#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "Proprietário" + +#: lib/RT/Ticket_Overlay.pm:3004 +#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +msgid "Owner changed from %1 to %2" +msgstr "Proprietário mudou de %1 para %2" + +#: lib/RT/Transaction_Overlay.pm:584 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Proprietário alterado à força de %1 para %2" + +#: html/Search/Elements/PickRestriction:31 +msgid "Owner is" +msgstr "O proprietário é" + +#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +msgid "Pager" +msgstr "Pager" + +#: html/Admin/Elements/ModifyUser:74 +msgid "PagerPhone" +msgstr "Telefone do Pager" + +#: NOT FOUND IN SOURCE +msgid "Parent" +msgstr "Pai" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +msgid "Parents" +msgstr "Pais" + +#: html/Elements/Login:43 html/User/Prefs.html:61 +msgid "Password" +msgstr "Senha" + +#: html/NoAuth/Reminder.html:25 +msgid "Password Reminder" +msgstr "Lembrete de Senha" + +#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +msgid "Password too short" +msgstr "Senha muito curta" + +#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "Senha: %1" + +#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +msgid "People" +msgstr "Pessoas" + +#: etc/initialdata:126 +msgid "Perform a user-defined action" +msgstr "Realizar uma ação definida pelo usuário" + +#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +msgid "Permission Denied" +msgstr "Permissão Negada" + +#: html/User/Elements/Tabs:35 +msgid "Personal Groups" +msgstr "Grupoas Pessoais" + +#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +msgid "Personal groups" +msgstr "Grupos pessoais" + +#: html/User/Elements/DelegateRights:37 +msgid "Personal groups:" +msgstr "Grupos pessoais:" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +msgid "Phone numbers" +msgstr "Telefones" + +#: html/Admin/Users/Rights.html:25 +msgid "Placeholder" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Pref" +msgstr "" + +#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +msgid "Preferences" +msgstr "Preferências" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "Prefs" + +#: lib/RT/Action/Generic.pm:160 +msgid "Prepare Stubbed" +msgstr "" + +#: html/Ticket/Elements/Tabs:61 +msgid "Prev" +msgstr "Anterior" + +#: html/Search/Listing.html:44 +msgid "Previous page" +msgstr "Página anterior" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "Pri" + +#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "Principal %1 não encontrado." + +#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "Prioridade" + +#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +msgid "Priority starts at" +msgstr "A prioridade inicia em" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "Privilegiado" + +#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "Estado privilegiado: %1" + +#: html/Admin/Users/index.html:62 +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/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "Fila" + +#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#. ($Queue) +#. ($id) +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/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +msgid "Queue Name" +msgstr "Nome da Fila" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "Scrips da Fila" + +#: lib/RT/Queue_Overlay.pm:263 +msgid "Queue already exists" +msgstr "A fila já existe" + +#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +msgid "Queue could not be created" +msgstr "A fila não pôde ser criada" + +#: html/Ticket/Create.html:209 +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:282 +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:129 +msgid "Queue not found" +msgstr "Fila não encontrada" + +#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +msgid "Queues" +msgstr "Filas" + +#: html/Elements/Login:34 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "RT %1" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "RT %1 para %2" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "RT %1 por <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. 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:25 html/Admin/index.html:26 +msgid "RT Administration" +msgstr "Adiministraçã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 "Ricocheteio 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:41 html/SelfService/Error.html:41 +msgid "RT Error" +msgstr "Erro no RT" + +#: NOT FOUND IN SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "O RT recebeu email (%1) dele próprio." + +#: NOT FOUND IN SOURCE +msgid "RT Recieved mail (%1) from itself." +msgstr "O RT recebeu email (%1) de si próprio." + +#: html/SelfService/Closed.html:25 +msgid "RT Self Service / Closed Tickets" +msgstr "Auto-serviço do RT / Tíquetes Fechados" + +#: html/index.html:25 html/index.html:28 +msgid "RT at a glance" +msgstr "RT por alto" + +#: 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" + +#: 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/PageLayout:26 +#. ($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" + +#: html/Elements/Login:83 +#. ('2003') +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 tem © Direitos Reservados 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Ele é distribuído sob a <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versão 2 da Licença Pública Geral GNU (GPL).</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 tem © Direitos Reservados 1996-%1 por Jesse Vincent <jesse@bestpractical.com>. Ele é distribuído sob a <a href=\\\"http://www.gnu.org/copyleft/gpl.html\\\">Versão 2 da Licença Pública Geral GNU (GPL).</a>" + +#: NOT FOUND IN SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "O RT crê que esta mensagem seja um ricochete" + +#: 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" + +#: 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 "O modo de comandos por email do RT requer autenticação PGP. Ou você não assinou sua mensagem ou sua assinatura não pôde ser verificada." + +#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +msgid "Real Name" +msgstr "Nome real" + +#: html/Admin/Elements/ModifyUser:48 +msgid "RealName" +msgstr "Nome real" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +msgid "Referred to by" +msgstr "Referenciado por" + +#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +msgid "Refers to" +msgstr "Faz referência a" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "RefersTo" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "Refinar" + +#: html/Search/Elements/PickRestriction:27 +msgid "Refine search" +msgstr "Refinar a Busca" + +#: html/Elements/Refresh:36 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "Recarregar esta página a cada %1 minutos." + +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +msgid "Relationships" +msgstr "Relacionamentos" + +#: html/Search/Bulk.html:93 +msgid "Remove AdminCc" +msgstr "Remover AdminCc" + +#: html/Search/Bulk.html:91 +msgid "Remove Cc" +msgstr "Remover Cc" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "Remover Requisitante" + +#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +msgid "Reply" +msgstr "Responder" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Reply to tickets" +msgstr "Responder aos tíquetes" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "ReplyToTicket" +msgstr "ReplyToTicket" + +#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +msgid "Requestor" +msgstr "Requisitante" + +#: html/Search/Elements/PickRestriction:38 +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:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +msgid "Requestors" +msgstr "Requisitantes" + +#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +msgid "Requests should be due in" +msgstr "A requisições vencem em" + +#: html/Elements/Submit:62 +msgid "Reset" +msgstr "Restaurar" + +#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +msgid "Residence" +msgstr "Residência" + +#: html/Ticket/Elements/Tabs:132 +msgid "Resolve" +msgstr "Resolver" + +#: html/Ticket/Update.html:133 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "Resolver tíquete #%1 (%2)" + +#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +msgid "Resolved" +msgstr "Resolvido" + +#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +msgid "Response to requestors" +msgstr "Resposta aos requisitantes" + +#: html/Elements/ListActions:26 +msgid "Results" +msgstr "Resultados" + +#: html/Search/Elements/PickRestriction:105 +msgid "Results per page" +msgstr "Resultados por página" + +#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +msgid "Retype Password" +msgstr "Confirmar a Senha" + +#: 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:613 +msgid "Right Delegated" +msgstr "Direito de Acesso Delegado" + +#: lib/RT/ACE_Overlay.pm:303 +msgid "Right Granted" +msgstr "Direito de Acesso Outorgado" + +#: lib/RT/ACE_Overlay.pm:161 +msgid "Right Loaded" +msgstr "Direito de Acesso Carregado" + +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +msgid "Right could not be revoked" +msgstr "Direito de acesso não pôde ser revogado" + +#: html/User/Delegation.html:64 +msgid "Right not found" +msgstr "Direito de acesso não encontrado" + +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +msgid "Right not loaded." +msgstr "Direito de acesso não carregado." + +#: lib/RT/ACE_Overlay.pm:689 +msgid "Right revoked" +msgstr "Direito de acesso revogado" + +#: html/Admin/Elements/UserTabs:41 +msgid "Rights" +msgstr "Direitos de Acesso" + +#: lib/RT/Interface/Web.pm:758 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "Direitos de acesso não puderam ser outorgados a %1" + +#: lib/RT/Interface/Web.pm:791 +#. ($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:51 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "Papéis" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "RootApproval" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "Sáb." + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "Save Changes" +msgstr "Salvar as Alterações" + +#: html/Ticket/ModifyLinks.html:39 +msgid "Save changes" +msgstr "Salvar as alterações" + +#: html/Admin/Global/Scrip.html:49 +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "Scrip #%1" + +#: lib/RT/Scrip_Overlay.pm:176 +msgid "Scrip Created" +msgstr "Scrip Criado" + +#: html/Admin/Elements/EditScrips:84 +msgid "Scrip deleted" +msgstr "Scrip removido" + +#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +msgid "Scrips" +msgstr "Scrips" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "Scrips para %1\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "Scrips aplicáveis a todas as filas" + +#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +msgid "Search" +msgstr "Buscar" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "Critérios de Busca" + +#: html/Approvals/Elements/PendingMyApproval:39 +msgid "Search for approvals" +msgstr "Buscar por aprovações" + +#: bin/rt-crontool:188 +msgid "Security:" +msgstr "Segurança:" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "SeeQueue" +msgstr "SeeQueue" + +#: html/Admin/Groups/index.html:40 +msgid "Select a group" +msgstr "Selecionar um grupo" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "Selecionar uma fila" + +#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +msgid "Select a user" +msgstr "Selecionar um usuário" + +#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +msgid "Select custom field" +msgstr "Selecionar um campo personalizado" + +#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +msgid "Select group" +msgstr "Selecionar um grupo" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Select multiple values" +msgstr "Selecionar múltiplos valores" + +#: lib/RT/CustomField_Overlay.pm:352 +msgid "Select one value" +msgstr "Selecionar um valor" + +#: html/Admin/Elements/QueueTabs:67 +msgid "Select queue" +msgstr "Selecionar uma fila" + +#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +msgid "Select scrip" +msgstr "Selecionar um scrip" + +#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +msgid "Select template" +msgstr "Selecionar um esquema" + +#: html/Admin/Elements/UserTabs:49 +msgid "Select user" +msgstr "Selecionar um usuário" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "SelectMultiple" +msgstr "SelectMultiple" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectSingle" +msgstr "SelectSingle" + +#: html/SelfService/index.html:25 +msgid "Self Service" +msgstr "Auto-serviço" + +#: etc/initialdata:114 +msgid "Send mail to all watchers" +msgstr "Enviar mensagem a todos os observadores" + +#: etc/initialdata:110 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "Enviar mensagem a todos os observadores como um \"comentário\"" + +#: etc/initialdata:105 +msgid "Send mail to requestors and Ccs" +msgstr "Enviar mensagem aos requisitantes e Ccs" + +#: etc/initialdata:100 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "Enviar mensagem aos requisitantes e Ccs como um comentário" + +#: etc/initialdata:79 +msgid "Sends a message to the requestors" +msgstr "Envia uma mensagem aos requisitantes" + +#: etc/initialdata:118 etc/initialdata:122 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "Envia uma mensagem aos Ccs e Bccs explicitamente listados" + +#: etc/initialdata:95 +msgid "Sends mail to the administrative Ccs" +msgstr "Envia uma mensagem aos Ccs administrativos" + +#: etc/initialdata:91 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "Envia uma mensagem aos Ccs administrativos como um comentário" + +#: etc/initialdata:83 etc/initialdata:87 +msgid "Sends mail to the owner" +msgstr "Envia uma mensagem ao proprietário" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "Set." + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "Setembro" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "Mostrar os Resultados" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show approved requests" +msgstr "Mostrar requisições aprovadas" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show basics" +msgstr "Mostrar o sumário" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show denied requests" +msgstr "Mostrar requisições negadas" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show details" +msgstr "Mostrar os detalhes" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show pending requests" +msgstr "Mostrar requisições pendentes" + +#: html/Approvals/Elements/PendingMyApproval:46 +msgid "Show requests awaiting other approvals" +msgstr "Mostrar requisições aguardando outras aprovações" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Show ticket private commentary" +msgstr "Mostrar comentário privado do tíquete" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "Show ticket summaries" +msgstr "Mostrar sumários do tíquete" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ShowACL" +msgstr "ShowACL" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowScrips" +msgstr "ShowScrips" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ShowTemplate" +msgstr "ShowTemplate" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "ShowTicket" +msgstr "ShowTicket" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "ShowTicketComments" +msgstr "ShowTicketComments" + +#: lib/RT/Queue_Overlay.pm:82 +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:83 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "Cadastrar como um AdminCC de tíquete ou fila" + +#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +msgid "Signature" +msgstr "Assinatura" + +#: html/SelfService/Elements/Header:52 +#. ($session{'CurrentUser'}->Name) +msgid "Signed in as %1" +msgstr "Assinado como %1" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Single" +msgstr "Único" + +#: html/Elements/Header:51 +msgid "Skip Menu" +msgstr "Saltar Menu" + +#: html/Admin/Elements/EditCustomFieldValues:31 +msgid "Sort key" +msgstr "Chave de ordenação" + +#: html/Search/Elements/PickRestriction:109 +msgid "Sort results by" +msgstr "Ordenar os resultados por" + +#: html/Admin/Elements/AddCustomFieldValue:25 +msgid "SortOrder" +msgstr "Ordenação" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "Pendente" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "Página inicial" + +#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +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:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +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/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +msgid "State" +msgstr "Estado" + +#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "Estado" + +#: etc/initialdata:288 +msgid "Status Change" +msgstr "Mudança de Estado" + +#: lib/RT/Transaction_Overlay.pm:530 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "Estado alterado de %1 para %2" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "StatusChange" + +#: html/Ticket/Elements/Tabs:147 +msgid "Steal" +msgstr "Roubar" + +#: lib/RT/Transaction_Overlay.pm:589 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "Roubado de %1 " + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "Assunto" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "Assunto modou para %1" + +#: html/Elements/Submit:59 +msgid "Submit" +msgstr "Enviar" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "Enviar Workflow" + +#: lib/RT/Group_Overlay.pm:749 +msgid "Succeeded" +msgstr "Deu certo" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "Dom." + +#: lib/RT/System.pm:54 +msgid "SuperUser" +msgstr "SuperUser" + +#: html/User/Elements/DelegateRights:77 +msgid "System" +msgstr "Sistema" + +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +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/ACE_Overlay.pm:616 +msgid "System error. Right not delegated." +msgstr "Erro do sistema. Direito de acesso não delegado." + +#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +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 posso outorgar direitos de acesso." + +#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +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:320 +msgid "TEST_STRING" +msgstr "TEST_STRING" + +#: html/Ticket/Elements/Tabs:143 +msgid "Take" +msgstr "Tomar" + +#: lib/RT/Transaction_Overlay.pm:575 +msgid "Taken" +msgstr "Tomado" + +#: html/Admin/Elements/EditScrip:81 +msgid "Template" +msgstr "Modelo" + +#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "Esquema #%1" + +#: html/Admin/Elements/EditTemplates:89 +msgid "Template deleted" +msgstr "Esquema removido" + +#: lib/RT/Scrip_Overlay.pm:153 +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:347 +msgid "Template parsed" +msgstr "Modelo processado" + +#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +msgid "Templates" +msgstr "Modelos" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "Modelos de %1\\n" + +#: lib/RT/Interface/Web.pm:858 +msgid "That is already the current value" +msgstr "Este já é o valor atual" + +#: lib/RT/CustomField_Overlay.pm:178 +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:1886 +msgid "That is the same value" +msgstr "Este é o mesmo valor" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "Este principal já é um %1 para esta fila" + +#: lib/RT/Ticket_Overlay.pm:1434 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "Este principal já é um %1 para este tíquete" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Este principal não é um %1 para esta fila" + +#: lib/RT/Ticket_Overlay.pm:1551 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "Este principal não é um %1 para este tíquete" + +#: lib/RT/Ticket_Overlay.pm:1882 +msgid "That queue does not exist" +msgstr "Esta fila não existe" + +#: lib/RT/Ticket_Overlay.pm:3143 +msgid "That ticket has unresolved dependencies" +msgstr "Este tíquete tem dependências não resolvidas" + +#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +msgid "That user already has that right" +msgstr "Este usuário já tem este direito de acesso" + +#: lib/RT/Ticket_Overlay.pm:2952 +msgid "That user already owns that ticket" +msgstr "Este usuário já possui este tíquete" + +#: lib/RT/Ticket_Overlay.pm:2918 +msgid "That user does not exist" +msgstr "Este usuário não existe" + +#: lib/RT/User_Overlay.pm:315 +msgid "That user is already privileged" +msgstr "Este usuário já tem privilégios" + +#: lib/RT/User_Overlay.pm:332 +msgid "That user is already unprivileged" +msgstr "Este usuário já não tem privilégios" + +#: lib/RT/User_Overlay.pm:327 +msgid "That user is now privileged" +msgstr "Este usuário agora tem privilégios" + +#: lib/RT/User_Overlay.pm:344 +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:2944 +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:206 +msgid "That's not a numerical id" +msgstr "Este não é um identificador numérico" + +#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +msgid "The Basics" +msgstr "Sumário" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The CC of a ticket" +msgstr "O CC de um tíquete" + +#: lib/RT/ACE_Overlay.pm:89 +msgid "The administrative CC of a ticket" +msgstr "O CC administrativo de um tíquete" + +#: lib/RT/Ticket_Overlay.pm:2213 +msgid "The comment has been recorded" +msgstr "O comentário foi registrado" + +#: bin/rt-crontool:198 +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 em 4 horas:" + +#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "Os seguintes comandos não foram processados:\\n\\n" + +#: lib/RT/Interface/Web.pm:861 +msgid "The new value has been set." +msgstr "O novo valor foi atribuído." + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The owner of a ticket" +msgstr "O proprietário de um tíquete" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The requestor of a ticket" +msgstr "O requisitante de um tíquete" + +#: html/Admin/Elements/EditUserComments:26 +msgid "These comments aren't generally visible to the user" +msgstr "Estes comandos geralmente não estão visíveis para o usuário" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "Este tíquete %1 %2 (%3)\\n" + +#: bin/rt-crontool:189 +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:253 +msgid "This transaction appears to have no content" +msgstr "Parece que esta transação não tem conteúdo" + +#: html/Ticket/Elements/ShowRequestor:47 +#. ($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:391 +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:25 html/Ticket/ModifyAll.html:29 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "Tíquete #%1 Atualização jumbo: %2" + +#: html/Approvals/Elements/ShowDependency:46 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "Tíquete #%1: %2" + +#: lib/RT/Ticket_Overlay.pm:608 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "Tíquete %1 criado na fila '%2'" + +#: bin/rt-commit-handler:760 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "Tíquete %1 carregado\\n" + +#: html/Search/Bulk.html:181 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "Tíquete %1: %2" + +#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "Histórico do Tíquete # %1 %2" + +#: html/SelfService/Display.html:34 +msgid "Ticket Id" +msgstr "Identificador do tíquete" + +#: etc/initialdata:303 +msgid "Ticket Resolved" +msgstr "Tíquete Resolvido" + +#: html/Search/Elements/PickRestriction:63 +msgid "Ticket attachment" +msgstr "Arquivo anexo do tíquete" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "Conteúdo do tíquete" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "Tipo do conteúdo do tíquete" + +#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +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" + +#: lib/RT/Transaction_Overlay.pm:522 +msgid "Ticket created" +msgstr "Tíquete criado" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "A criação do tíquete falhou" + +#: lib/RT/Transaction_Overlay.pm:527 +msgid "Ticket deleted" +msgstr "Tíquete removido" + +#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +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/REST/1.0/modify:36 html/REST/1.0/update:41 +msgid "Ticket not found" +msgstr "Tíquete não encontrado" + +#: etc/initialdata:289 +msgid "Ticket status changed" +msgstr "O estado do tíquete mudou" + +#: html/Ticket/Update.html:39 +msgid "Ticket watchers" +msgstr "Observadores do tíquete" + +#: html/Elements/Tabs:49 +msgid "Tickets" +msgstr "Tíquetes" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "Tíquetes %1 %2" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "Tíquetes %1 por %2" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Tickets from %1" +msgstr "Tíquetes de %1" + +#: html/Approvals/Elements/ShowDependency:27 +msgid "Tickets which depend on this approval:" +msgstr "Tíquetes dependentes desta aprovação:" + +#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +msgid "Time Left" +msgstr "Tempo Restante" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +msgid "Time Worked" +msgstr "Tempo Trabalhado" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "Tempo restante" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "Tempo de apresentação" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "Tempo trabalhado" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "TimeLeft" + +#: lib/RT/Ticket_Overlay.pm:1165 +msgid "TimeWorked" +msgstr "TimeWorked" + +#: bin/rt-commit-handler:402 +msgid "To generate a diff of this commit:" +msgstr "Para gerar as diferenças desta transação" + +#: bin/rt-commit-handler:391 +msgid "To generate a diff of this commit:\\n" +msgstr "Para gerar as diferenças desta transação:\\n" + +#: lib/RT/Ticket_Overlay.pm:1168 +msgid "Told" +msgstr "Última atualização" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "Transação" + +#: lib/RT/Transaction_Overlay.pm:642 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "Transação %1 removida" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "Transação Criada" + +#: lib/RT/Transaction_Overlay.pm:89 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "Transaction->Create não pôde, já que você não especificou um id de tíquete" + +#: lib/RT/Transaction_Overlay.pm:701 +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:389 +msgid "Tue." +msgstr "Ter." + +#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "Tipo" + +#: lib/RT/ScripCondition_Overlay.pm:104 +msgid "Unimplemented" +msgstr "Não implementado" + +#: html/Admin/Users/Modify.html:68 +msgid "Unix login" +msgstr "Usuário Unix" + +#: html/Admin/Elements/ModifyUser:62 +msgid "UnixUsername" +msgstr "Usuário Unix" + +#: lib/RT/Attachment_Overlay.pm:265 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "Codificação de conteúdo desconhecida %1" + +#: html/Elements/SelectResultsPerPage:37 +msgid "Unlimited" +msgstr "Ilimitado" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "Não privilegiado" + +#: lib/RT/Transaction_Overlay.pm:571 +msgid "Untaken" +msgstr "Não tomado" + +#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +msgid "Update" +msgstr "Atualizar" + +#: html/Admin/Users/Prefs.html:62 +msgid "Update ID" +msgstr "Identificador de atualização" + +#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +msgid "Update Type" +msgstr "Tipo de atualização" + +#: html/Search/Listing.html:61 +msgid "Update all these tickets at once" +msgstr "Atualizar todos estes tíquetes de uma vez" + +#: html/Admin/Users/Prefs.html:49 +msgid "Update email" +msgstr "Atualizar email" + +#: html/Admin/Users/Prefs.html:55 +msgid "Update name" +msgstr "Atualizar nome" + +#: lib/RT/Interface/Web.pm:375 +msgid "Update not recorded." +msgstr "Atualização não registrada." + +#: html/Search/Bulk.html:81 +msgid "Update selected tickets" +msgstr "Atualizar os tíquetes selecionados" + +#: html/Admin/Users/Prefs.html:36 +msgid "Update signature" +msgstr "Atualizar assinatura" + +#: html/Ticket/ModifyAll.html:63 +msgid "Update ticket" +msgstr "Atualizar o tíquete" + +#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 +#. ($Ticket->id) +msgid "Update ticket # %1" +msgstr "Atualizar o tíquete # %1" + +#: html/SelfService/Update.html:50 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Atualizar o tíquete #%1" + +#: html/Ticket/Update.html:135 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "Atualizar tíquete #%1 (%2)" + +#: lib/RT/Interface/Web.pm:373 +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:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +msgid "Updated" +msgstr "Atualizado" + +#: 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" + +#: 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:125 etc/initialdata:191 +msgid "User Defined" +msgstr "Definido pelo Usuário" + +#: html/Admin/Users/Prefs.html:59 +msgid "User ID" +msgstr "Identificador de usuário" + +#: html/Elements/SelectUsers:26 +msgid "User Id" +msgstr "Identificador do usuário" + +#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +msgid "User Rights" +msgstr "Direitos de Acesso de Usuário" + +#: html/Admin/Users/Modify.html:226 +#. ($msg) +msgid "User could not be created: %1" +msgstr "O usuário não pôde ser criado: %1" + +#: lib/RT/User_Overlay.pm:262 +msgid "User created" +msgstr "Usuário criado" + +#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "Grupos definidos pelo usuário" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "Usuário notificado" + +#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +msgid "User view" +msgstr "Visualização de usuário" + +#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +msgid "Username" +msgstr "Nome de usuário" + +#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +msgid "Users" +msgstr "Usuários" + +#: html/Admin/Users/index.html:65 +msgid "Users matching search criteria" +msgstr "Usuários que satisfazem o critério de busca" + +#: html/Search/Elements/PickRestriction:51 +msgid "ValueOfQueue" +msgstr "Valor da fila" + +#: html/Admin/Elements/EditCustomField:40 +msgid "Values" +msgstr "Valores" + +#: NOT FOUND IN SOURCE +msgid "VrijevormEnkele" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Watch" +msgstr "Observar" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "WatchAsAdminCc" +msgstr "WatchAsAdminCc" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "Observador carregado" + +#: html/Admin/Elements/QueueTabs:42 +msgid "Watchers" +msgstr "Observadores" + +#: html/Admin/Elements/ModifyUser:56 +msgid "WebEncoding" +msgstr "Codificação de Web" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "Qua." + +#: etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "Quando um tíquete for aprovado por todos os aprovadores, adicione uma correspondência ao tíquete original" + +#: etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "Quando um tíquete for aprovado por qualquer aprovador, adicione uma correspondência ao tíquete original" + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "Quando um tíquete é criado" + +#: etc/upgrade/2.1.71:79 +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 item aguardando sua aprovação" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "Quando acontecer qualquer coisa" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "Sempre que um tíquete for resolvido" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "Sempre que mudar o proprietário de um tíquete" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "Sempre que um tíquete mudar de fila" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "Sempre que o estado de um tíquete mudar" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "Sempre que ocorrer uma condição definida por usuário" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "Sempre que um novo comentário é adicionado" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "Sempre que uma nova correspondência é adicionada" + +#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +msgid "Work" +msgstr "Trabalho" + +#: html/Admin/Elements/ModifyUser:70 +msgid "WorkPhone" +msgstr "Telefone de trabalho" + +#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +msgid "Worked" +msgstr "Trabalhado" + +#: lib/RT/Ticket_Overlay.pm:3056 +msgid "You already own this ticket" +msgstr "Você já é proprietário deste tíquete" + +#: html/autohandler:121 +msgid "You are not an authorized user" +msgstr "Você não é um usuário autorizado" + +#: lib/RT/Ticket_Overlay.pm:2930 +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" + +#: 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 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "Você encontrou %1 tíquetes na fila %2" + +#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +msgid "You have been logged out of RT." +msgstr "Você foi desconectado do RT." + +#: html/SelfService/Display.html:134 +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:1895 +msgid "You may not create requests in that queue." +msgstr "Você não pode criar requisições nesta fila." + +#: html/NoAuth/Logout.html:36 +msgid "You're welcome to login again" +msgstr "Volte sempre" + +#: html/SelfService/Elements/MyRequests:25 +#. ($friendly_status) +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:429 etc/upgrade/2.1.71:146 +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:463 etc/upgrade/2.1.71:180 +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:384 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "Sua requisição foi rejeitada." + +#: html/autohandler:136 html/autohandler:142 +msgid "Your username or password is incorrect" +msgstr "Nome de usuário ou senha incorretos" + +#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +msgid "Zip" +msgstr "CEP" + +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "[sem assunto]" + +#: html/User/Elements/DelegateRights:59 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "como outorgado a %1" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +msgid "contains" +msgstr "contém" + +#: html/Elements/SelectAttachmentField:26 +msgid "content" +msgstr "content" + +#: html/Elements/SelectAttachmentField:27 +msgid "content-type" +msgstr "content-type" + +#: lib/RT/Ticket_Overlay.pm:2282 +msgid "correspondence (probably) not sent" +msgstr "correspondência (provavelmente) não enviada" + +#: lib/RT/Ticket_Overlay.pm:2292 +msgid "correspondence sent" +msgstr "correspondência enviada" + +#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +msgid "days" +msgstr "dias" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "morto" + +#: html/Search/Listing.html:75 +msgid "delete" +msgstr "remover" + +#: lib/RT/Queue_Overlay.pm:63 +msgid "deleted" +msgstr "removido" + +#: html/Search/Elements/PickRestriction:68 +msgid "does not match" +msgstr "não satisfaz" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +msgid "doesn't contain" +msgstr "não contém" + +#: html/Elements/SelectEqualityOperator:38 +msgid "equal to" +msgstr "igual a" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "falso" + +#: html/Elements/SelectAttachmentField:28 +msgid "filename" +msgstr "filename" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "greater than" +msgstr "maior que" + +#: lib/RT/Group_Overlay.pm:194 +#. ($self->Name) +msgid "group '%1'" +msgstr "grupo '%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "horas" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "identificador" + +#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "is" +msgstr "é" + +#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +msgid "isn't" +msgstr "não é" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "less than" +msgstr "menor que" + +#: html/Search/Elements/PickRestriction:67 +msgid "matches" +msgstr "satisfaz" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "min" + +#: html/Ticket/Update.html:66 +msgid "minutes" +msgstr "minutos" + +#: bin/rt-commit-handler:765 +msgid "modifications\\n\\n" +msgstr "modificações\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "meses" + +#: lib/RT/Queue_Overlay.pm:58 +msgid "new" +msgstr "novo" + +#: html/Admin/Elements/EditScrips:43 +msgid "no value" +msgstr "sem valor" + +#: html/Ticket/Elements/EditWatchers:28 +msgid "none" +msgstr "nenhum" + +#: html/Elements/SelectEqualityOperator:38 +msgid "not equal to" +msgstr "diferente de" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "diferente" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "open" +msgstr "aberto" + +#: lib/RT/Group_Overlay.pm:199 +#. ($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:207 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "fila %1 %2" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "rejected" +msgstr "rejeitado" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "resolved" +msgstr "resolvido" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "seg" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "stalled" +msgstr "pendente" + +#: lib/RT/Group_Overlay.pm:202 +#. ($self->Type) +msgid "system %1" +msgstr "sistema %1" + +#: lib/RT/Group_Overlay.pm:213 +#. ($self->Type) +msgid "system group '%1'" +msgstr "grupo do sistema '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:42 +msgid "the calling component did not specify why" +msgstr "o componente chamador não especificou por que" + +#: lib/RT/Group_Overlay.pm:210 +#. ($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:216 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "grupo %1 não descrito" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "grupo sem descrição %1" + +#: lib/RT/Group_Overlay.pm:191 +#. ($user->Object->Name) +msgid "user %1" +msgstr "usuário %1" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "semanas" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "com modelo %1" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "anos" + +#: NOT FOUND IN SOURCE +msgid "ニックãƒãƒ¼ãƒ " +msgstr "" + diff --git a/rt/lib/RT/I18N/ru.po b/rt/lib/RT/I18N/ru.po new file mode 100644 index 000000000..eb1434606 --- /dev/null +++ b/rt/lib/RT/I18N/ru.po @@ -0,0 +1,4826 @@ +msgid "" +msgstr "" +"Last-Translator: Kirill Pushkin <kirill@mns.ru>\n" +"PO-Revision-Date: 2002-10-04 19:28+0400\n" +"Language-Team: Russian <ru@li.org>\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 0.9.6\n" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +msgid "#" +msgstr "№" + +#: html/Admin/Queues/Scrip.html:55 +#. ($QueueObj->id) +msgid "#%1" +msgstr "" + +#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 +#. ($Ticket->Id, $Ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +msgid "%1 %2 %3" +msgstr "" + +#: 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:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "%1 %2 назад" + +#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 %2 изменено на %3" + +#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 of group %3" +msgstr "" + +#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 with template %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "%1 (%2) %3 Ñтот тикет\\n" + +#: html/Search/Listing.html:57 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "" + +#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "" + +#: bin/rt-crontool:185 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "" + +#: bin/rt-crontool:179 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "" + +#: bin/rt-crontool:173 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "" + +#: bin/rt-crontool:166 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "" + +#: lib/RT/ScripAction_Overlay.pm:122 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "%1 Ñкрипт загружен" + +#: lib/RT/Ticket_Overlay.pm:3471 +#. ($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 алиаÑÑ‹ требуют идентификатор тикета Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ над (от %2) %3" + +#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#. ($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:52 lib/RT/Transaction_Overlay.pm:483 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 пользователем %2" + +#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#. ($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 изменилоÑÑŒ Ñ %2 на %3" + +#: lib/RT/Interface/Web.pm:857 +msgid "%1 could not be set to %2." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 не могу закрыть тикет. Возможно, база данных RT иÑпорчена." + +#: html/Elements/MyTickets:25 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "" + +#: bin/rt-crontool:161 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "" + +#: lib/RT/Queue_Overlay.pm:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 больше не ÑвлÑетÑÑ %2 Ð´Ð»Ñ Ñтой очереди." + +#: lib/RT/Ticket_Overlay.pm:1570 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 больше не ÑвлÑетÑÑ %2 Ð´Ð»Ñ Ñтого тикета." + +#: lib/RT/Ticket_Overlay.pm:3527 +#. ($args{'Value'}, $cf->Name) +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 "" + +#: html/Ticket/Elements/ShowBasics:36 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 мин" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "%1 не отображаетÑÑ" + +#: html/User/Elements/DelegateRights:76 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "%1 уÑпешно произведено\\n" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "%1 тип не извеÑтен Ð´Ð»Ñ $MessageId" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "%1 тип не извеÑтен Ð´Ð»Ñ %2" + +#: NOT FOUND IN SOURCE +msgid "%1 was created without a CurrentUser\\n" +msgstr "" + +#: lib/RT/Action/ResolveMembers.pm:42 +#. (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/Transaction_Overlay.pm:435 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: без вложений" + +#: html/Ticket/Elements/ShowTransaction:102 +#. ($size) +msgid "%1b" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:99 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1140 +#. ($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/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +msgid "(Check box to delete)" +msgstr "(Пометьте то, что хотите удалить)" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "" + +#: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Введите номера или ÑÑылки на тикеты. ÐеÑколько тикетов разделÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸.)" + +#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#. ($RT::CorrespondAddress) +#. ($RT::CommentAddress) +msgid "(If left blank, will default to %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +msgid "(No custom fields)" +msgstr "" + +#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +msgid "(No members)" +msgstr "(Ðет пользователей)" + +#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +msgid "(No scrips)" +msgstr "(Ðет Ñкриптов)" + +#: html/Admin/Elements/EditTemplates:31 +msgid "(No templates)" +msgstr "" + +#: html/Ticket/Update.html:85 +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 "" + +#: 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/Create.html:79 +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 "" + +#: html/Ticket/Update.html:81 +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 "" + +#: 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 "(Ðа Ñти адреÑа [разделенные запÑтой] отправлÑÑŽÑ‚ÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ ÑообщениÑ. ÐдреÑа не ÑохранÑÑŽÑ‚ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" + +#: html/Ticket/Create.html:69 +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 "" + +#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +msgid "(empty)" +msgstr "(пуÑто)" + +#: html/Admin/Users/index.html:39 +msgid "(no name listed)" +msgstr "" + +#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +msgid "(no subject)" +msgstr "(без темы)" + +#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +msgid "(no value)" +msgstr "(нет значениÑ)" + +#: html/Ticket/Elements/EditLinks:116 +msgid "(only one ticket)" +msgstr "(только один тикет)" + +#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +msgid "(pending approval)" +msgstr "" + +#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +msgid "(pending other tickets)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(requestor's group)" +msgstr "" + +#: html/Admin/Users/Modify.html:50 +msgid "(required)" +msgstr "(требуетÑÑ)" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "(untitled)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "25 важнейших моих тикетов..." + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "25 Ñамых важных моих запроÑов..." + +#: html/Ticket/Elements/ShowBasics:32 +msgid "<% $Ticket->Status%>" +msgstr "<% $Ticket->Status%>" + +#: html/Elements/SelectTicketTypes:27 +msgid "<% $_ %>" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"Создать тикет в очереди\"> %1" + +#: NOT FOUND IN SOURCE +msgid "??????" +msgstr "" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Loaded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be found" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +msgid "ACE not found" +msgstr "ACE не найден" + +#: lib/RT/ACE_Overlay.pm:831 +msgid "ACEs can only be created and deleted." +msgstr "ACEÑ‹ можно только Ñоздавать и удалÑть" + +#: bin/rt-commit-handler:755 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Прекращаем работу во избежание нежелательного Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð°.\\n" + +#: html/User/Elements/Tabs:32 +msgid "About me" +msgstr "" + +#: html/Admin/Users/Modify.html:80 +msgid "Access control" +msgstr "Права доÑтупа" + +#: html/Admin/Elements/EditScrip:57 +msgid "Action" +msgstr "ДейÑтвие" + +#: lib/RT/Scrip_Overlay.pm:147 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "" + +#: bin/rt-crontool:123 +msgid "Action committed." +msgstr "ДейÑтвие принÑто." + +#: bin/rt-crontool:119 +msgid "Action prepared..." +msgstr "ДейÑтвие подготовлено..." + +#: html/Search/Bulk.html:92 +msgid "Add AdminCc" +msgstr "Добавить админиÑтративную копию" + +#: html/Search/Bulk.html:90 +msgid "Add Cc" +msgstr "Добавить копию" + +#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +msgid "Add More Files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Add Next State" +msgstr "" + +#: html/Search/Bulk.html:88 +msgid "Add Requestor" +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:55 +msgid "Add a scrip which will apply to all queues" +msgstr "Добавить Ñкрипт, который будет дейÑтвовать на вÑе очереди" + +#: html/Search/Bulk.html:118 +msgid "Add comments or replies to selected tickets" +msgstr "Добавить комментарии или ответы на выбранные тикеты" + +#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +msgid "Add members" +msgstr "Добавить пользователей" + +#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +msgid "Add new watchers" +msgstr "Добавить наблюдателей" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "Добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 Ð´Ð»Ñ Ñтой очереди" + +#: lib/RT/Ticket_Overlay.pm:1454 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "Добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 Ð´Ð»Ñ Ñтого тикета" + +#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +msgid "Address1" +msgstr "ÐдреÑ1" + +#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +msgid "Address2" +msgstr "ÐдреÑ2" + +#: html/Ticket/Create.html:74 +msgid "Admin Cc" +msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" + +#: etc/initialdata:274 +msgid "Admin Comment" +msgstr "" + +#: etc/initialdata:256 +msgid "Admin Correspondence" +msgstr "" + +#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +msgid "Admin queues" +msgstr "Управление очередÑми" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "Управление пользователÑми" + +#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +msgid "Admin/Global configuration" +msgstr "Общие наÑтройки" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "Группы" + +#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +msgid "Admin/Queue/Basics" +msgstr "Параметры очереди" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +msgid "AdminCc" +msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "AdminCustomFields" +msgstr "" + +#: lib/RT/Group_Overlay.pm:146 +msgid "AdminGroup" +msgstr "" + +#: lib/RT/Group_Overlay.pm:148 +msgid "AdminGroupMembership" +msgstr "" + +#: lib/RT/System.pm:59 +msgid "AdminOwnPersonalGroups" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "AdminQueue" +msgstr "" + +#: lib/RT/System.pm:60 +msgid "AdminUsers" +msgstr "" + +#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +msgid "Administrative Cc" +msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" + +#: NOT FOUND IN SOURCE +msgid "Admins" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "" + +#: html/Elements/SelectDateRelation:36 +msgid "After" +msgstr "ПоÑле" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias for" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:96 +msgid "All Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:53 +msgid "All Queues" +msgstr "Ð’Ñе очереди" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "" + +#: html/Elements/Tabs:58 +msgid "Approval" +msgstr "" + +#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#. ($Ticket->Id, $Ticket->Subject) +#. ($ticket->id, $msg) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Approval #%1: %2" +msgstr "Виза #%1: %2" + +#: html/Approvals/index.html:54 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "Виза #%1: ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð½Ðµ Ñохранены из-за ошибки ÑиÑтемы" + +#: html/Approvals/index.html:52 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "Виза #%1: ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñаны" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "" + +#: html/Approvals/Elements/Approve:45 +msgid "Approve" +msgstr "Завизировать" + +#: etc/initialdata:431 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "Ðпр." + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "" + +#: html/Elements/SelectSortOrder:35 +msgid "Ascending" +msgstr "Ð’ порÑдке возраÑтаниÑ" + +#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +msgid "Attach" +msgstr "Вложение" + +#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +msgid "Attach file" +msgstr "Вложить файл" + +#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +msgid "Attached file" +msgstr "" + +#: html/SelfService/Attachment/dhandler:36 +msgid "Attachment '%1' could not be loaded" +msgstr "Вложение '%1' не может быть загружено" + +#: lib/RT/Transaction_Overlay.pm:443 +msgid "Attachment created" +msgstr "Создано вложение" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" + +#: html/Ticket/Elements/ShowAttachments:26 +msgid "Attachments" +msgstr "ВложениÑ" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "Ðвг." + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "" + +#: html/Admin/Elements/ModifyUser:66 +msgid "AuthSystem" +msgstr "Тип региÑтрации" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ PGP: %1\\n" + +#: html/SelfService/Attachment/dhandler:40 +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "Ðеверный идентификатор вложениÑ. ОтÑутÑтвует вложение '%1'\\n" + +#: bin/rt-commit-handler:827 +#. ($val) +msgid "Bad data in %1" +msgstr "ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð° в %1" + +#: html/SelfService/Attachment/dhandler:43 +#. ($trans, $AttachmentObj->TransactionId()) +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "Ðеправильный номер транзакции Ð´Ð»Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ. %1 должен быть %2\\n" + +#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +msgid "Basics" +msgstr "Главное" + +#: html/Ticket/Update.html:83 +msgid "Bcc" +msgstr "Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" + +#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +msgid "Be sure to save your changes" +msgstr "Ðе забудьте Ñохранить наÑтройки" + +#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +msgid "Before" +msgstr "До" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "" + +#: html/Search/Listing.html:79 +msgid "Bookmarkable URL for this search" +msgstr "Получить URL Ð´Ð»Ñ Ñтого поиÑка" + +#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +msgid "Brief headers" +msgstr "Сокращенный" + +#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +msgid "Bulk ticket update" +msgstr "Изменение одним махом" + +#: lib/RT/User_Overlay.pm:1331 +msgid "Can not modify system users" +msgstr "Ðе могу изменÑть ÑиÑтемных пользователей" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Can this principal see this queue" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:144 +msgid "Can't add a custom field value without a name" +msgstr "Ðе могу добавить значение Ð¿Ð¾Ð»Ñ Ð±ÐµÐ· имени" + +#: lib/RT/Link_Overlay.pm:132 +msgid "Can't link a ticket to itself" +msgstr "Тикет не может быть ÑвÑзан Ñ Ñамим Ñобой" + +#: lib/RT/Ticket_Overlay.pm:2787 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "Ðе могу Ñоединить Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð½Ñ‹Ð¼ тикетом (Ñта ошибка никогда не должна проиÑходить)." + +#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +msgid "Can't specifiy both base and target" +msgstr "Ðе могу указать одновременно и иÑточник, и Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ" + +#: html/autohandler:112 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "Ðе могу Ñоздать пользователÑ: %1" + +#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +msgid "Cc" +msgstr "КопиÑ" + +#: html/SelfService/Prefs.html:31 +msgid "Change password" +msgstr "Сменить пароль" + +#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +msgid "Check box to delete" +msgstr "" + +#: html/Admin/Elements/SelectRights:31 +msgid "Check box to revoke right" +msgstr "Выберите права, которые хотите отозвать" + +#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +msgid "Children" +msgstr "Потомки" + +#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +msgid "City" +msgstr "Город" + +#: html/Ticket/Elements/ShowDates:47 +msgid "Closed" +msgstr "" + +#: html/SelfService/Elements/Tabs:60 +msgid "Closed requests" +msgstr "Закрытые запроÑÑ‹" + +#: NOT FOUND IN SOURCE +msgid "Code" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "Чего-чего?\\n" + +#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +msgid "Comment" +msgstr "Комментировать" + +#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +msgid "Comment Address" +msgstr "ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ²" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "Комментарий не запиÑан" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Comment on tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "CommentOnTicket" +msgstr "" + +#: html/Admin/Elements/ModifyUser:35 +msgid "Comments" +msgstr "Комментарии" + +#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +msgid "Comments (Not sent to requestors)" +msgstr "Комментарии (Ðе отправлÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾ÑителÑм)" + +#: html/Search/Bulk.html:122 +msgid "Comments (not sent to requestors)" +msgstr "Комментарии (не отправлÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ñителю)" + +#: html/Elements/ViewUser:27 +#. ($name) +msgid "Comments about %1" +msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ %1" + +#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +msgid "Comments about this user" +msgstr "Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± Ñтом пользователе" + +#: lib/RT/Transaction_Overlay.pm:545 +msgid "Comments added" +msgstr "Добавлены комментарии" + +#: lib/RT/Action/Generic.pm:140 +msgid "Commit Stubbed" +msgstr "ДейÑтвие не реализовано" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "Применить ограничениÑ" + +#: html/Admin/Elements/EditScrip:41 +msgid "Condition" +msgstr "УÑловие" + +#: bin/rt-crontool:109 +msgid "Condition matches..." +msgstr "ПодходÑщее уÑловие..." + +#: lib/RT/Scrip_Overlay.pm:160 +msgid "Condition not found" +msgstr "УÑловие не найдено" + +#: html/Elements/Tabs:52 +msgid "Configuration" +msgstr "ÐаÑтройка" + +#: html/SelfService/Prefs.html:33 +msgid "Confirm" +msgstr "Подтвердить" + +#: html/Admin/Elements/ModifyUser:60 +msgid "ContactInfoSystem" +msgstr "ÐšÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "Ðе могу разобрать дату поÑледнего контакта '%1'" + +#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +msgid "Content" +msgstr "ТекÑÑ‚" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "" + +#: etc/initialdata:266 +msgid "Correspondence" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +msgid "Correspondence Address" +msgstr "ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ Ñообщений" + +#: lib/RT/Transaction_Overlay.pm:541 +msgid "Correspondence added" +msgstr "Добавлено Ñообщение" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "Сообщение не запиÑано" + +#: lib/RT/Ticket_Overlay.pm:3458 +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 "" + +#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +msgid "Could not change owner. " +msgstr "Ðе могу Ñменить владельца. " + +#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#. ($msg) +msgid "Could not create CustomField" +msgstr "Ðе могу добавить поле" + +#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +msgid "Could not create group" +msgstr "Ðе могу Ñоздать группу" + +#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#. ($msg) +msgid "Could not create template: %1" +msgstr "Ðе могу Ñоздать шаблон: %1" + +#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +msgid "Could not create ticket. Queue not set" +msgstr "Ðе могу Ñоздать тикет. Очередь не определена." + +#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +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 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:621 lib/RT/Ticket_Overlay.pm:1422 +msgid "Could not find or create that user" +msgstr "Ðе могу найти или Ñоздать Ñтого пользователÑ" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +msgid "Could not find that principal" +msgstr "Ðе могу найти Ñтого пользователÑ" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "Ðе найден пользователь %1." + +#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +msgid "Could not load group" +msgstr "Ðе могу загрузить группу" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "Ðе могу назначить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1 Ð´Ð»Ñ Ñтой очереди" + +#: lib/RT/Ticket_Overlay.pm:1443 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "Ðе могу назначить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1 Ð´Ð»Ñ Ñтого тикета" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "Ðе могу отобрать функции у Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 в Ñтой очереди" + +#: lib/RT/Ticket_Overlay.pm:1559 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "Ðе могу отобрать функции у Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 Ð´Ð»Ñ Ñтого тикета" + +#: lib/RT/Group_Overlay.pm:985 +msgid "Couldn't add member to group" +msgstr "Ðе могу добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² группу" + +#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "Ðе могу Ñоздать транзакцию: %1" + +#: 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/Interface/Web.pm:866 +msgid "Couldn't find row" +msgstr "" + +#: lib/RT/Group_Overlay.pm:959 +msgid "Couldn't find that principal" +msgstr "Ðе найти Ñтого пользователÑ" + +#: lib/RT/CustomField_Overlay.pm:175 +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:112 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Ðе загрузить %1 из базы пользователей.\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load KeywordSelects." +msgstr "" + +#: 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 "" + +#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#. ($id) +msgid "Couldn't load group %1" +msgstr "Ðе загрузить группу %1" + +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +msgid "Couldn't load link" +msgstr "Ðе загрузить ÑÑылку" + +#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#. ($id) +msgid "Couldn't load queue" +msgstr "Ðе загрузить очередь" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "Ðе загрузить очередь %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "Ðе загрузить Ñкрипт" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "Ðе загрузить шаблон" + +#: html/Admin/Users/Prefs.html:79 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "Ðе загрузить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (%1)" + +#: html/SelfService/Display.html:166 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Ðе загрузить тикет '%1'" + +#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +msgid "Country" +msgstr "Страна" + +#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +msgid "Create" +msgstr "Создать" + +#: etc/initialdata:128 +msgid "Create Tickets" +msgstr "" + +#: html/Admin/Elements/EditCustomField:58 +msgid "Create a CustomField" +msgstr "Добавить поле" + +#: html/Admin/Queues/CustomField.html:48 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:48 +msgid "Create a CustomField which applies to all queues" +msgstr "" + +#: 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:67 html/Admin/Groups/Modify.html:93 +msgid "Create a new group" +msgstr "Добавить новую группу" + +#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +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/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +msgid "Create a new ticket" +msgstr "Добавить новый тикет" + +#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +msgid "Create a new user" +msgstr "Добавить нового пользователÑ" + +#: html/Admin/Queues/Modify.html:103 +msgid "Create a queue" +msgstr "Создать очередь" + +#: NOT FOUND IN SOURCE +msgid "Create a queue called" +msgstr "Создать очередь Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼" + +#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +msgid "Create a request" +msgstr "Создать запроÑ" + +#: html/Admin/Queues/Scrip.html:59 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "Создать Ñкрипт Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" + +#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +msgid "Create a template" +msgstr "Создать запроÑ" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1 / %2 / %3 " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1/%2/%3" +msgstr "" + +#: etc/initialdata:130 +msgid "Create new tickets based on this scrip's template" +msgstr "" + +#: html/SelfService/Create.html:81 +msgid "Create ticket" +msgstr "Создать тикет" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Create tickets in this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Create, delete and modify custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 +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:59 +msgid "Create, delete and modify the members of personal groups" +msgstr "" + +#: lib/RT/System.pm:60 +msgid "Create, delete and modify users" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "CreateTicket" +msgstr "" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +msgid "Created" +msgstr "Создан" + +#: html/Admin/Elements/EditCustomField:71 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "Добавлено поле %1" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "Создан шаблон %1" + +#: html/Ticket/Elements/EditLinks:28 +msgid "Current Relationships" +msgstr "Текущие ÑвÑзи" + +#: html/Admin/Elements/EditScrips:30 +msgid "Current Scrips" +msgstr "Текущие Ñкрипты" + +#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +msgid "Current members" +msgstr "Текущие пользователи" + +#: html/Admin/Elements/SelectRights:29 +msgid "Current rights" +msgstr "Текущие права" + +#: html/Search/Listing.html:71 +msgid "Current search criteria" +msgstr "" + +#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +msgid "Current watchers" +msgstr "Текущие наблюдатели" + +#: html/Admin/Global/CustomField.html:55 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "" + +#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +msgid "Custom Fields" +msgstr "Дополнительные полÑ" + +#: html/Admin/Elements/EditScrip:73 +msgid "Custom action cleanup code" +msgstr "ПользовательÑкий код очиÑтки" + +#: html/Admin/Elements/EditScrip:65 +msgid "Custom action preparation code" +msgstr "ПользовательÑкий подготовительный код" + +#: html/Admin/Elements/EditScrip:49 +msgid "Custom condition" +msgstr "ПользовательÑкое уÑловие" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "Дополнительное поле %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "Дополнительное поле %1 имеет значение." + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "Дополнительное поле %1 не имеет значениÑ." + +#: lib/RT/Ticket_Overlay.pm:3360 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Дополнительное поле %1 не найдено" + +#: html/Admin/Elements/EditCustomFields:197 +msgid "Custom field deleted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3510 +msgid "Custom field not found" +msgstr "Дополнительное поле не найдено" + +#: lib/RT/CustomField_Overlay.pm:283 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "Значение %1 не может быть найдено Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ %2" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "Значение Ð¿Ð¾Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾ Ñ %1 на %2" + +#: lib/RT/CustomField_Overlay.pm:185 +msgid "Custom field value could not be deleted" +msgstr "Значение дополнительного Ð¿Ð¾Ð»Ñ Ð½Ðµ может быть удалено" + +#: lib/RT/CustomField_Overlay.pm:289 +msgid "Custom field value could not be found" +msgstr "Значение дополнительного Ð¿Ð¾Ð»Ñ Ð½Ðµ найдено" + +#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +msgid "Custom field value deleted" +msgstr "Значение дополнительного Ð¿Ð¾Ð»Ñ Ð±Ñ‹Ð»Ð¾ удалено" + +#: lib/RT/Transaction_Overlay.pm:550 +msgid "CustomField" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "" + +#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +msgid "Dates" +msgstr "Даты" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "Дек." + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "" + +#: etc/initialdata:275 +msgid "Default admin comment template" +msgstr "" + +#: etc/initialdata:257 +msgid "Default admin correspondence template" +msgstr "" + +#: etc/initialdata:267 +msgid "Default correspondence template" +msgstr "" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:645 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "" + +#: html/User/Delegation.html:25 html/User/Delegation.html:28 +msgid "Delegate rights" +msgstr "Передача прав" + +#: lib/RT/System.pm:63 +msgid "Delegate specific rights which have been granted to you." +msgstr "" + +#: lib/RT/System.pm:63 +msgid "DelegateRights" +msgstr "" + +#: html/User/Elements/Tabs:38 +msgid "Delegation" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "Delete tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "DeleteTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "Удаление Ñтого объекта может нарушить ÑÑылочную целоÑтноÑть" + +#: lib/RT/Queue_Overlay.pm:292 +msgid "Deleting this object would break referential integrity" +msgstr "Удаление Ñтого объекта нарушит ÑÑылочную целоÑтноÑть" + +#: lib/RT/User_Overlay.pm:430 +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:46 +msgid "Deny" +msgstr "Отказать" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +msgid "Depended on by" +msgstr "От него завиÑÑÑ‚" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "ЗавиÑимоÑти: \\n" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +msgid "Depends on" +msgstr "ЗавиÑит от" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "" + +#: html/Elements/SelectSortOrder:35 +msgid "Descending" +msgstr "Ð’ порÑдке убываниÑ" + +#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +msgid "Describe the issue below" +msgstr "Опишите проблему" + +#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +msgid "Description" +msgstr "ОпиÑание" + +#: html/SelfService/Elements/MyRequests:44 +msgid "Details" +msgstr "ПодробноÑти" + +#: html/Ticket/Elements/Tabs:85 +msgid "Display" +msgstr "Показать" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Display Access Control List" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Display Scrip templates for this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Display Scrips for this queue" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:35 +msgid "Display mode" +msgstr "Режим показа" + +#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 +#. ($Ticket->id) +msgid "Display ticket #%1" +msgstr "Показать тикет #%1" + +#: lib/RT/System.pm:54 +msgid "Do anything and everything" +msgstr "" + +#: html/Elements/Refresh:30 +msgid "Don't refresh this page." +msgstr "Ðе обновлÑть Ñту Ñтраницу" + +#: html/Search/Elements/PickRestriction:114 +msgid "Don't show search results" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:105 +msgid "Download" +msgstr "Скачать" + +#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +msgid "Due" +msgstr "Дан Ñрок" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "Ðе могу прочеÑть Ñрок Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ñ‹ '%1'" + +#: bin/rt-commit-handler:754 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "ОШИБКÐ: Ðе могу загрузить тикет '%1': %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "Изменить" + +#: NOT FOUND IN SOURCE +msgid "Edit Conditions" +msgstr "" + +#: html/Admin/Queues/CustomFields.html:45 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "Изменение дополнительных полей Ð´Ð»Ñ %1" + +#: html/Ticket/ModifyLinks.html:36 +msgid "Edit Relationships" +msgstr "Изменение ÑвÑзей" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "" + +#: html/Admin/Global/index.html:46 +msgid "Edit system templates" +msgstr "Изменение ÑиÑтемных шаблонов" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "Изменение шаблонов Ð´Ð»Ñ %1" + +#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "Изменение наÑтроек очереди %1" + +#: html/Admin/Elements/ModifyUser:25 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "Изменение наÑтроек Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1" + +#: html/Admin/Elements/EditCustomField:74 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Изменение Ð¿Ð¾Ð»Ñ %1" + +#: html/Admin/Groups/Members.html:32 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Пользователи в группе %1" + +#: html/User/Groups/Members.html:129 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "Пользователи в личной группе %1" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "Изменение шаблона %1" + +#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +msgid "Either base or target must be specified" +msgstr "Ðужно указать либо иÑточник, либо Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ" + +#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +msgid "Email" +msgstr "Email" + +#: lib/RT/User_Overlay.pm:188 +msgid "Email address in use" +msgstr "Email уже занÑÑ‚" + +#: html/Admin/Elements/ModifyUser:42 +msgid "EmailAddress" +msgstr "EmailAddress" + +#: html/Admin/Elements/ModifyUser:54 +msgid "EmailEncoding" +msgstr "EmailEncoding" + +#: html/Admin/Elements/EditCustomField:36 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "" + +#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "" + +#: html/Admin/Queues/Modify.html:84 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Включена (СнÑÑ‚Ð°Ñ Ð³Ð°Ð»Ð¾Ñ‡ÐºÐ° означает отключенную очередь)" + +#: html/Admin/Elements/EditCustomFields:99 +msgid "Enabled Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:56 +msgid "Enabled Queues" +msgstr "Включенные очереди" + +#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "Включен ÑÑ‚Ð°Ñ‚ÑƒÑ %1" + +#: lib/RT/CustomField_Overlay.pm:361 +msgid "Enter multiple values" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:358 +msgid "Enter one value" +msgstr "" + +#: html/Ticket/Elements/EditLinks:112 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Введите номера или ÑÑылки на тикеты. ÐеÑколько тикетов разделÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸." + +#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +msgid "Error" +msgstr "Ошибка" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Ошибка в параметрах Queue->AddWatcher" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Ошибка в параметрах Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1356 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Ошибка в параметрах Ticket->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1532 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Ошибка в параметрах Ticket->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "" + +#: bin/rt-crontool:194 +msgid "Example:" +msgstr "Пример:" + +#: html/Admin/Elements/ModifyUser:64 +msgid "ExternalAuthId" +msgstr "ExternalAuthId" + +#: html/Admin/Elements/ModifyUser:58 +msgid "ExternalContactInfoId" +msgstr "ExternalContactInfoId" + +#: html/Admin/Users/Modify.html:73 +msgid "Extra info" +msgstr "Доп. информациÑ" + +#: lib/RT/User_Overlay.pm:302 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Ðе могу найти пÑевдо-группу 'Полномочных' пользователей" + +#: lib/RT/User_Overlay.pm:309 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Ðе могу найти пÑевдо-группу 'Ðеполномочных' пользователей" + +#: bin/rt-crontool:138 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "Фев." + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "Конец" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "Конечный приоритет" + +#: lib/RT/Ticket_Overlay.pm:1162 +msgid "FinalPriority" +msgstr "" + +#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +msgid "Find group whose" +msgstr "" + +#: html/Elements/Quicksearch:25 +msgid "Find new/open tickets" +msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ тикетах" + +#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +msgid "Find people whose" +msgstr "Ðайти людей, у которых" + +#: html/Search/Listing.html:108 +msgid "Find tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "" + +#: html/Ticket/Elements/Tabs:58 +msgid "First" +msgstr "Ðачало" + +#: html/Search/Listing.html:41 +msgid "First page" +msgstr "ÐŸÐµÑ€Ð²Ð°Ñ Ñтраница" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "Foo Bar Baz" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "Foo!" + +#: html/Search/Bulk.html:87 +msgid "Force change" +msgstr "Изменить Ñилой" + +#: html/Search/Listing.html:106 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "" + +#: lib/RT/Interface/Web.pm:868 +msgid "Found Object" +msgstr "" + +#: html/Admin/Elements/ModifyUser:44 +msgid "FreeformContactInfo" +msgstr "FreeformContactInfo" + +#: lib/RT/CustomField_Overlay.pm:38 +msgid "FreeformMultiple" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformSingle" +msgstr "" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "Птн." + +#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +msgid "Full headers" +msgstr "Полный" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "Берем текущего Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð· pgp подпиÑи\\n" + +#: lib/RT/Transaction_Overlay.pm:595 +#. ($New->Name) +msgid "Given to %1" +msgstr "" + +#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +msgid "Global" +msgstr "Общие" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:38 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +msgid "Go!" +msgstr "Поехали!" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "Ð¥Ð¾Ñ€Ð¾ÑˆÐ°Ñ pgp подпиÑÑŒ от %1\\n" + +#: html/Search/Listing.html:50 +msgid "Goto page" +msgstr "Перейти на Ñтраницу" + +#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +msgid "Goto ticket" +msgstr "Показать тикет" + +#: NOT FOUND IN SOURCE +msgid "Grand" +msgstr "" + +#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +msgid "Group" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "Группа %1 %2: %3" + +#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +msgid "Group Rights" +msgstr "Права группы" + +#: lib/RT/Group_Overlay.pm:965 +msgid "Group already has member" +msgstr "Пользователь уже входит в группу" + +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "" + +#: html/Admin/Groups/Modify.html:77 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "Ðе могу Ñоздать группу: %1" + +#: lib/RT/Group_Overlay.pm:497 +msgid "Group created" +msgstr "Создана группа" + +#: lib/RT/Group_Overlay.pm:1133 +msgid "Group has no such member" +msgstr "" + +#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +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" + +#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +msgid "Groups" +msgstr "Группы" + +#: lib/RT/Group_Overlay.pm:971 +msgid "Groups can't be members of their members" +msgstr "Группы не могут быть членами входÑщих в них пользователей" + +#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +msgid "Hello!" +msgstr "ЗдравÑтвуйте!" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "Hello, %1" + +#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +msgid "History" +msgstr "ИÑториÑ" + +#: html/Admin/Elements/ModifyUser:68 +msgid "HomePhone" +msgstr "HomePhone" + +#: html/Elements/Tabs:46 +msgid "Homepage" +msgstr "Домой" + +#: lib/RT/Base.pm:74 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "I have [quant,_1,concrete mixer]." + +#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "Тикет" + +#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +msgid "Identity" +msgstr "ЛичноÑть" + +#: etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "" + +#: bin/rt-crontool:190 +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:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "If you've updated anything above, be sure to" +msgstr "ЕÑли вы что-либо изменили, то удоÑтоверьтеÑÑŒ, что" + +#: lib/RT/Interface/Web.pm:860 +msgid "Illegal value for %1" +msgstr "" + +#: lib/RT/Interface/Web.pm:863 +msgid "Immutable field" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:74 +msgid "Include disabled custom fields in listing." +msgstr "" + +#: html/Admin/Queues/index.html:43 +msgid "Include disabled queues in listing." +msgstr "Показывать отключенные очереди." + +#: html/Admin/Users/index.html:47 +msgid "Include disabled users in search." +msgstr "Показать отключенных пользователей." + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "Ðачальный приоритет" + +#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +msgid "InitialPriority" +msgstr "" + +#: lib/RT/ScripAction_Overlay.pm:105 +msgid "Input error" +msgstr "Ошибка ввода" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3729 +msgid "Internal Error" +msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°" + +#: lib/RT/Record.pm:143 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:644 +msgid "Invalid Group Type" +msgstr "Ðеправильный тип группы" + +#: lib/RT/Principal_Overlay.pm:128 +msgid "Invalid Right" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "" + +#: lib/RT/Interface/Web.pm:865 +msgid "Invalid data" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:438 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "Владелец отÑутÑтвует. ЗаменÑем его на 'nobody'." + +#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÑŒ" + +#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +msgid "Invalid right" +msgstr "Ðеверные права" + +#: lib/RT/Record.pm:118 +#. ($key) +msgid "Invalid value for %1" +msgstr "Ðеправильное значение Ð´Ð»Ñ %1" + +#: lib/RT/Ticket_Overlay.pm:3367 +msgid "Invalid value for custom field" +msgstr "Ðеправильное значение Ð´Ð»Ñ Ñтого полÑ" + +#: lib/RT/Ticket_Overlay.pm:345 +msgid "Invalid value for status" +msgstr "Такого ÑтатуÑа не бывает" + +#: bin/rt-crontool:191 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "Обратите внимание, что обычные пользователи не имеют права запуÑкать Ñту программу." + +#: bin/rt-crontool:192 +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 "ПредполагаетÑÑ, что Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Ñтой программы вы должны Ñоздать учетную запиÑÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Unix Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼Ð¸ уÑтановками групп и доÑтупом к RT." + +#: bin/rt-crontool:163 +msgid "It takes several arguments:" +msgstr "Она требует неÑколько параметров:" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "Тикеты, ожидающие моей визы" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "Янв." + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "" + +#: lib/RT/Group_Overlay.pm:149 +msgid "Join or leave this group" +msgstr "" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "Июл." + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "" + +#: html/Ticket/Elements/Tabs:99 +msgid "Jumbo" +msgstr "Ð’Ñе вмеÑте" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "Июн." + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "Ключевое Ñлово" + +#: html/Admin/Elements/ModifyUser:52 +msgid "Lang" +msgstr "Язык" + +#: html/Ticket/Elements/Tabs:73 +msgid "Last" +msgstr "Конец" + +#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +msgid "Last Contact" +msgstr "Контакт" + +#: html/Elements/SelectDateType:29 +msgid "Last Contacted" +msgstr "Контакт" + +#: html/Search/Elements/TicketHeader:41 +msgid "Last Notified" +msgstr "" + +#: html/Elements/SelectDateType:30 +msgid "Last Updated" +msgstr "Обновлен" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "ОÑталоÑÑŒ" + +#: html/Admin/Users/Modify.html:83 +msgid "Let this user access RT" +msgstr "Разрешить доÑтуп к RT" + +#: html/Admin/Users/Modify.html:87 +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" + +#: lib/RT/Ticket_Overlay.pm:2697 +msgid "Link already exists" +msgstr "СвÑзь уже ÑущеÑтвует" + +#: lib/RT/Ticket_Overlay.pm:2709 +msgid "Link could not be created" +msgstr "Ðе могу ÑвÑзать тикеты" + +#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#. ($TransString) +msgid "Link created (%1)" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2638 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Удалена ÑвÑзь (%1)" + +#: lib/RT/Ticket_Overlay.pm:2644 +msgid "Link not found" +msgstr "СвÑзь не найдена" + +#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "СвÑзываем тикет #%1" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "" + +#: html/Ticket/Elements/Tabs:97 +msgid "Links" +msgstr "СвÑзи" + +#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +msgid "Location" +msgstr "МеÑтонахождение" + +#: lib/RT.pm:158 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "Ðе найден каталог Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ %1 или не доÑтупен на запиÑÑŒ.\\n RT не может продолжить работу." + +#: html/Elements/Header:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "ЗарегиÑтрирован как %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +msgid "Login" +msgstr "Логин" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "Выйти" + +#: html/Search/Bulk.html:86 +msgid "Make Owner" +msgstr "Ðазначить владельцем" + +#: html/Search/Bulk.html:102 +msgid "Make Status" +msgstr "Ðазначить ÑтатуÑ" + +#: html/Search/Bulk.html:109 +msgid "Make date Due" +msgstr "Ðазначить Ñрок" + +#: html/Search/Bulk.html:110 +msgid "Make date Resolved" +msgstr "Изменить дату решениÑ" + +#: html/Search/Bulk.html:107 +msgid "Make date Started" +msgstr "Изменить дату 'ÐачалÑÑ'" + +#: html/Search/Bulk.html:106 +msgid "Make date Starts" +msgstr "Изменить дату 'ÐачинаетÑÑ'" + +#: html/Search/Bulk.html:108 +msgid "Make date Told" +msgstr "Изменить дату поÑледнего контакта" + +#: html/Search/Bulk.html:99 +msgid "Make priority" +msgstr "Ðазначить приоритет" + +#: html/Search/Bulk.html:100 +msgid "Make queue" +msgstr "Ðазначить очередь" + +#: html/Search/Bulk.html:98 +msgid "Make subject" +msgstr "Изменить тему" + +#: html/Admin/index.html:33 +msgid "Manage groups and group membership" +msgstr "ÐаÑтройка групп и их пользователей" + +#: html/Admin/index.html:39 +msgid "Manage properties and configuration which apply to all queues" +msgstr "ÐаÑтройки Ð´Ð»Ñ Ð²Ñех очередей" + +#: html/Admin/index.html:36 +msgid "Manage queues and queue-specific properties" +msgstr "ÐаÑтройка очередей и их параметров" + +#: html/Admin/index.html:30 +msgid "Manage users and passwords" +msgstr "ÐаÑтройка пользователей и их паролей" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "Мар." + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "Май" + +#: lib/RT/Group_Overlay.pm:982 +msgid "Member added" +msgstr "Пользователь добавлен в группу" + +#: lib/RT/Group_Overlay.pm:1140 +msgid "Member deleted" +msgstr "Пользователь удален из группы" + +#: lib/RT/Group_Overlay.pm:1144 +msgid "Member not deleted" +msgstr "Пользователь не удален из группы" + +#: html/Elements/SelectLinkType:26 +msgid "Member of" +msgstr "Входит в" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "" + +#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +msgid "Members" +msgstr "Пользователи" + +#: lib/RT/Ticket_Overlay.pm:2843 +msgid "Merge Successful" +msgstr "Тикеты уÑпешно Ñклеены" + +#: lib/RT/Ticket_Overlay.pm:2804 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "Склейка не удалаÑÑŒ. Ðе Ñмогла уÑтановить идентификатор тикета." + +#: html/Ticket/Elements/EditLinks:115 +msgid "Merge into" +msgstr "Приклеить к" + +#: html/Ticket/Update.html:102 +msgid "Message" +msgstr "ТекÑÑ‚" + +#: lib/RT/Interface/Web.pm:867 +msgid "Missing a primary key?: %1" +msgstr "" + +#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +msgid "Mobile" +msgstr "Мобильник" + +#: html/Admin/Elements/ModifyUser:72 +msgid "MobilePhone" +msgstr "MobilePhone" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify Access Control List" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "Изменение дополнительного Ð¿Ð¾Ð»Ñ %1" + +#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +msgid "Modify Custom Fields which apply to all queues" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "Modify Scrip templates for this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 +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 "" + +#: html/Admin/Queues/CustomField.html:45 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:53 +msgid "Modify a CustomField which applies to all queues" +msgstr "" + +#: html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "Изменить Ñкрипт Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" + +#: html/Admin/Global/Scrip.html:48 +msgid "Modify a scrip which applies to all queues" +msgstr "Изменение Ñкрипта, который дейÑтвует Ð´Ð»Ñ Ð²Ñех очередей" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "" + +#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Изменение дат в тикете #%1" + +#: html/Ticket/ModifyDates.html:35 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Изменение дат в тикете #%1" + +#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +msgid "Modify global group rights" +msgstr "Изменение глобальных прав группы" + +#: html/Admin/Global/GroupRights.html:33 +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:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +msgid "Modify global user rights" +msgstr "" + +#: html/Admin/Global/UserRights.html:33 +msgid "Modify global user rights." +msgstr "Изменение глобальных прав пользователÑ" + +#: lib/RT/Group_Overlay.pm:146 +msgid "Modify group metadata or delete group" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#. ($GroupObj->Name) +msgid "Modify group rights for group %1" +msgstr "Изменение прав групп Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ðµ %1" + +#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "Изменение прав групп Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Modify membership roster for this group" +msgstr "" + +#: lib/RT/System.pm:61 +msgid "Modify one's own RT account" +msgstr "" + +#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Изменение пользователей отноÑÑщихÑÑ Ðº очереди %1" + +#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#. ($Ticket->id) +#. ($Ticket->Id) +msgid "Modify people related to ticket #%1" +msgstr "Изменение пользователей отноÑÑщихÑÑ Ðº тикету #%1" + +#: html/Admin/Queues/Scrips.html:44 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Изменить Ñкрипты Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" + +#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +msgid "Modify scrips which apply to all queues" +msgstr "Изменение Ñкриптов, которые дейÑтвуют на вÑе очереди" + +#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#. (loc($TemplateObj->Name())) +#. ($TemplateObj->id) +msgid "Modify template %1" +msgstr "Изменение шаблона %1" + +#: html/Admin/Global/Templates.html:44 +msgid "Modify templates which apply to all queues" +msgstr "" + +#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "ÐаÑтройки Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ %1" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Modify the queue watchers" +msgstr "" + +#: html/Admin/Users/Modify.html:236 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "ÐаÑтройки Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1" + +#: html/Ticket/ModifyAll.html:37 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Изменение тикета # %1" + +#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Изменение тикета # %1" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Modify tickets" +msgstr "" + +#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#. ($GroupObj->Name) +msgid "Modify user rights for group %1" +msgstr "Изменение прав Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ %1" + +#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "Изменение прав Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "Изменение наблюдателей Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ '%1'" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyACL" +msgstr "" + +#: lib/RT/Group_Overlay.pm:149 +msgid "ModifyOwnMembership" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "ModifyQueueWatchers" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "ModifyScrips" +msgstr "" + +#: lib/RT/System.pm:61 +msgid "ModifySelf" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "ModifyTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "ModifyTicket" +msgstr "" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "Пнд." + +#: html/Ticket/Elements/ShowRequestor:42 +#. ($name) +msgid "More about %1" +msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ %1" + +#: html/Admin/Elements/EditCustomFields:61 +msgid "Move down" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:53 +msgid "Move up" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:27 +msgid "Multiple" +msgstr "ÐеÑколько значений" + +#: lib/RT/User_Overlay.pm:179 +msgid "Must specify 'Name' attribute" +msgstr "Ð’Ñ‹ должны указать ИмÑ" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "Мои визы" + +#: html/Approvals/index.html:25 html/Approvals/index.html:26 +msgid "My approvals" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +msgid "Name" +msgstr "ИмÑ" + +#: lib/RT/User_Overlay.pm:186 +msgid "Name in use" +msgstr "Ð˜Ð¼Ñ ÑƒÐ¶Ðµ иÑпользуетÑÑ" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "" + +#: html/Ticket/Elements/ShowDates:52 +msgid "Never" +msgstr "" + +#: html/Elements/Quicksearch:30 +msgid "New" +msgstr "Ðовых" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +msgid "New Password" +msgstr "Ðовый пароль" + +#: etc/initialdata:311 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "" + +#: html/Ticket/Elements/EditLinks:111 +msgid "New Relationships" +msgstr "Ðовые ÑвÑзи" + +#: html/Ticket/Elements/Tabs:36 +msgid "New Search" +msgstr "" + +#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +msgid "New custom field" +msgstr "" + +#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +msgid "New group" +msgstr "" + +#: html/SelfService/Prefs.html:32 +msgid "New password" +msgstr "Ðовый пароль" + +#: lib/RT/User_Overlay.pm:639 +msgid "New password notification sent" +msgstr "Отправлено Ñообщение Ñ Ð½Ð¾Ð²Ñ‹Ð¼ паролем" + +#: html/Admin/Elements/QueueTabs:70 +msgid "New queue" +msgstr "" + +#: html/SelfService/Elements/Tabs:63 +msgid "New request" +msgstr "Ðовый запроÑ" + +#: html/Admin/Elements/SelectRights:42 +msgid "New rights" +msgstr "Ðовые права" + +#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +msgid "New scrip" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "Ðовый поиÑк" + +#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +msgid "New template" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2771 +msgid "New ticket doesn't exist" +msgstr "Ðовый тикет не ÑущеÑтвует" + +#: html/Admin/Elements/UserTabs:52 +msgid "New user" +msgstr "" + +#: html/Admin/Elements/CreateUserCalled:26 +msgid "New user called" +msgstr "Добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼" + +#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +msgid "New watchers" +msgstr "Ðовые наблюдатели" + +#: html/Admin/Users/Prefs.html:42 +msgid "New window setting" +msgstr "Ðовые наÑтройки окна" + +#: html/Ticket/Elements/Tabs:69 +msgid "Next" +msgstr "Вперед" + +#: html/Search/Listing.html:48 +msgid "Next page" +msgstr "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница" + +#: html/Admin/Elements/ModifyUser:50 +msgid "NickName" +msgstr "ПÑевдоним" + +#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +msgid "Nickname" +msgstr "ПÑевдоним" + +#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +msgid "No CustomField" +msgstr "Ðет такого полÑ" + +#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +msgid "No Group defined" +msgstr "Ðет такой группы" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +msgid "No Queue defined" +msgstr "Ðет такой очереди" + +#: bin/rt-crontool:56 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "Пользователь RT не найден. ПожалуйÑта, обратитеÑÑŒ к вашему админиÑтратору RT.\\n" + +#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +msgid "No Template" +msgstr "Шаблон не определен" + +#: bin/rt-commit-handler:764 +msgid "No Ticket specified. Aborting ticket " +msgstr "Тикет не задан. Ðичего не делаем." + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "Тикет не задан. ОтменÑем Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð°\\n\\n" + +#: html/Approvals/Elements/Approve:47 +msgid "No action" +msgstr "Ðет дейÑтвиÑ" + +#: lib/RT/Interface/Web.pm:862 +msgid "No column specified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "Команда не найдена\\n" + +#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +msgid "No comment entered about this user" +msgstr "Без комментариев" + +#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +msgid "No correspondence attached" +msgstr "ПуÑтое Ñообщение" + +#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#. (ref $self) +msgid "No description for %1" +msgstr "Ðет опиÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ %1" + +#: lib/RT/Users_Overlay.pm:151 +msgid "No group specified" +msgstr "Ðе указана группа" + +#: lib/RT/User_Overlay.pm:857 +msgid "No password set" +msgstr "ОтÑутÑтвует пароль" + +#: lib/RT/Queue_Overlay.pm:259 +msgid "No permission to create queues" +msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ права на Ñоздание очереди" + +#: lib/RT/Ticket_Overlay.pm:341 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "" + +#: lib/RT/User_Overlay.pm:151 +msgid "No permission to create users" +msgstr "Ð’Ñ‹ не имеете права Ñоздавать пользователей" + +#: html/SelfService/Display.html:174 +msgid "No permission to display that ticket" +msgstr "Показ Ñтого тикета запрещен" + +#: html/SelfService/Update.html:55 +msgid "No permission to view update ticket" +msgstr "Запрещен показ изменений Ñтого тикета" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +msgid "No principal specified" +msgstr "Пользователь не указан" + +#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +msgid "No principals selected." +msgstr "Пользователи не выбраны." + +#: html/Admin/Queues/index.html:35 +msgid "No queues matching search criteria found." +msgstr "Ðичего подходÑщего не найдено." + +#: html/Admin/Elements/SelectRights:81 +msgid "No rights found" +msgstr "" + +#: html/Admin/Elements/SelectRights:33 +msgid "No rights granted." +msgstr "Ðет прав." + +#: html/Search/Bulk.html:149 +msgid "No search to operate on." +msgstr "Ðечего делать." + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "Ðе указан номер тикета" + +#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +msgid "No transaction type specified" +msgstr "Ðе указан тип транзакции" + +#: NOT FOUND IN SOURCE +msgid "No user or email address specified" +msgstr "" + +#: html/Admin/Users/index.html:36 +msgid "No users matching search criteria found." +msgstr "Ðи одного подходÑщего Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ найдено." + +#: bin/rt-commit-handler:644 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "Ðе найден пользователь RT. Обработчик CVS отключен. ОбратитеÑÑŒ к админиÑтратору RT.\\n" + +#: lib/RT/Interface/Web.pm:859 +msgid "No value sent to _Set!\\n" +msgstr "" + +#: html/Search/Elements/TicketRow:37 +msgid "Nobody" +msgstr "" + +#: lib/RT/Interface/Web.pm:864 +msgid "Nonexistant field?" +msgstr "" + +#: html/Elements/Login:99 +msgid "Not logged in" +msgstr "" + +#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +msgid "Not logged in." +msgstr "Ðе зарегиÑтрирован." + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "Ðе уÑтановлено" + +#: html/NoAuth/Reminder.html:27 +msgid "Not yet implemented." +msgstr "Еще не реализовано." + +#: html/Admin/Groups/Rights.html:25 +msgid "Not yet implemented...." +msgstr "Еще не реализовано..." + +#: html/Approvals/Elements/Approve:50 +msgid "Notes" +msgstr "Примечание" + +#: lib/RT/User_Overlay.pm:642 +msgid "Notification could not be sent" +msgstr "Ðе могу отоÑлать уведомление" + +#: etc/initialdata:94 +msgid "Notify AdminCcs" +msgstr "" + +#: etc/initialdata:90 +msgid "Notify AdminCcs as Comment" +msgstr "" + +#: etc/initialdata:121 +msgid "Notify Other Recipients" +msgstr "" + +#: etc/initialdata:117 +msgid "Notify Other Recipients as Comment" +msgstr "" + +#: etc/initialdata:86 +msgid "Notify Owner" +msgstr "" + +#: etc/initialdata:82 +msgid "Notify Owner as Comment" +msgstr "" + +#: etc/initialdata:313 etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "" + +#: etc/initialdata:78 +msgid "Notify Requestors" +msgstr "" + +#: etc/initialdata:104 +msgid "Notify Requestors and Ccs" +msgstr "" + +#: etc/initialdata:99 +msgid "Notify Requestors and Ccs as Comment" +msgstr "" + +#: etc/initialdata:113 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "" + +#: etc/initialdata:109 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "ÐоÑ." + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "" + +#: lib/RT/Record.pm:157 +msgid "Object could not be created" +msgstr "Ðе могу Ñоздать объект" + +#: lib/RT/Record.pm:176 +msgid "Object created" +msgstr "Создан объект" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "Окт." + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "" + +#: html/Elements/SelectDateRelation:35 +msgid "On" +msgstr "Ðа" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:50 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "Показывать визы только Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñов Ñозданных поÑле %1" + +#: html/Approvals/Elements/PendingMyApproval:48 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "Показывать визы только Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñов Ñозданных до %1" + +#: html/Elements/Quicksearch:31 +msgid "Open" +msgstr "Открытых" + +#: html/Ticket/Elements/Tabs:136 +msgid "Open it" +msgstr "Открыть" + +#: html/SelfService/Elements/Tabs:57 +msgid "Open requests" +msgstr "Открыть запроÑÑ‹" + +#: html/Admin/Users/Prefs.html:41 +msgid "Open tickets (from listing) in a new window" +msgstr "Открыть тикеты (из ÑпиÑка) в новом окне" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in another window" +msgstr "Открыть тикеты (из ÑпиÑка) в другом окне" + +#: etc/initialdata:133 +msgid "Open tickets on correspondence" +msgstr "" + +#: html/Search/Elements/PickRestriction:101 +msgid "Ordering and sorting" +msgstr "ПорÑдок и Ñортировка" + +#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +msgid "Organization" +msgstr "ОрганизациÑ" + +#: html/Approvals/Elements/Approve:34 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "" + +#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +msgid "Over time, priority moves toward" +msgstr "Со временем поднÑть приоритет до" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Own tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "OwnTicket" +msgstr "" + +#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "Владелец" + +#: lib/RT/Ticket_Overlay.pm:3004 +#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +msgid "Owner changed from %1 to %2" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:584 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Владелец Ñилой изменен Ñ %1 на %2" + +#: html/Search/Elements/PickRestriction:31 +msgid "Owner is" +msgstr "Владелец" + +#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +msgid "Pager" +msgstr "Пейджер" + +#: html/Admin/Elements/ModifyUser:74 +msgid "PagerPhone" +msgstr "Телефон пейджера" + +#: NOT FOUND IN SOURCE +msgid "Parent" +msgstr "" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +msgid "Parents" +msgstr "Предки" + +#: html/Elements/Login:43 html/User/Prefs.html:61 +msgid "Password" +msgstr "Пароль" + +#: html/NoAuth/Reminder.html:25 +msgid "Password Reminder" +msgstr "ПодÑказка к паролю" + +#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +msgid "Password too short" +msgstr "Пароль Ñлишком короткий" + +#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "Пароль: %1" + +#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +msgid "People" +msgstr "Люди" + +#: etc/initialdata:126 +msgid "Perform a user-defined action" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +msgid "Permission Denied" +msgstr "Ð’ доÑтупе отказано" + +#: html/User/Elements/Tabs:35 +msgid "Personal Groups" +msgstr "" + +#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +msgid "Personal groups" +msgstr "Личные группы" + +#: html/User/Elements/DelegateRights:37 +msgid "Personal groups:" +msgstr "Личные группы:" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +msgid "Phone numbers" +msgstr "Ðомера телефонов" + +#: html/Admin/Users/Rights.html:25 +msgid "Placeholder" +msgstr "Заполнитель" + +#: NOT FOUND IN SOURCE +msgid "Pref" +msgstr "" + +#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +msgid "Preferences" +msgstr "ПредпочтениÑ" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "ПредпочтениÑ" + +#: lib/RT/Action/Generic.pm:160 +msgid "Prepare Stubbed" +msgstr "Подготовка не реализована" + +#: html/Ticket/Elements/Tabs:61 +msgid "Prev" +msgstr "Ðазад" + +#: html/Search/Listing.html:44 +msgid "Previous page" +msgstr "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "Приоритет" + +#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "" + +#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "Приоритет" + +#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +msgid "Priority starts at" +msgstr "Приоритет начинаетÑÑ Ñ" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "" + +#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "СоÑтоÑние полномочий: %1" + +#: html/Admin/Users/index.html:62 +msgid "Privileged users" +msgstr "Полномочные пользователи" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "Очередь" + +#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#. ($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/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +msgid "Queue Name" +msgstr "Ð˜Ð¼Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:263 +msgid "Queue already exists" +msgstr "Очередь уже ÑущеÑтвует" + +#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +msgid "Queue could not be created" +msgstr "Ðе могу Ñоздать очередь" + +#: html/Ticket/Create.html:209 +msgid "Queue could not be loaded." +msgstr "Ðе могу загрузить очередь" + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +msgid "Queue created" +msgstr "Создана очередь" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "" + +#: html/SelfService/Display.html:129 +msgid "Queue not found" +msgstr "Ðет такой очереди" + +#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +msgid "Queues" +msgstr "Очереди" + +#: html/Elements/Login:34 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "RT %1" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "RT %1 Ð´Ð»Ñ %2" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +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, 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 "" + +#: html/Admin/index.html:25 html/Admin/index.html:26 +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:41 html/SelfService/Error.html:41 +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 "" + +#: html/SelfService/Closed.html:25 +msgid "RT Self Service / Closed Tickets" +msgstr "СамообÑлуживание RT / Закрытые тикеты" + +#: html/index.html:25 html/index.html:28 +msgid "RT at a glance" +msgstr "" + +#: 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" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RT не Ñмог проверить Ñту подпиÑÑŒ PGP. \\n" + +#: html/Elements/PageLayout:26 +#. ($RT::rtname) +msgid "RT for %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT for %1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT has proccessed your commands" +msgstr "RT выполнил ваши команды" + +#: html/Elements/Login:83 +#. ('2003') +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>. ПО раÑпроÑтранÑетÑÑ Ð¿Ð¾Ð´ <a href=\"http://www.gnu.org/copyleft/gpl.html\">Стандартной ОбщеÑтвенной Лицензией GNU ВерÑии 2.</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 "" + +#: NOT FOUND IN SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "RT Ñчитает, что Ñто Ñообщение может быть возвратом" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RT будет обрабатывать Ñто Ñообщение как неподпиÑанное.\\n" + +#: 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. Ð’Ñ‹ либо не подпиÑали Ñообщение, либо ваша подпиÑÑŒ не может быть проверена." + +#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +msgid "Real Name" +msgstr "ИмÑ" + +#: html/Admin/Elements/ModifyUser:48 +msgid "RealName" +msgstr "ИмÑ" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +msgid "Referred to by" +msgstr "Ðа него ÑÑылаютÑÑ" + +#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +msgid "Refers to" +msgstr "СÑылаетÑÑ Ð½Ð°" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "Улучшить" + +#: html/Search/Elements/PickRestriction:27 +msgid "Refine search" +msgstr "Улучшить поиÑк" + +#: html/Elements/Refresh:36 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "ОбновлÑть Ñту Ñтраницу каждые %1 минут." + +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +msgid "Relationships" +msgstr "СвÑзи" + +#: html/Search/Bulk.html:93 +msgid "Remove AdminCc" +msgstr "Удалить админиÑтративную копию" + +#: html/Search/Bulk.html:91 +msgid "Remove Cc" +msgstr "Удалить копию" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "Удалить проÑителÑ" + +#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +msgid "Reply" +msgstr "Ответить" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Reply to tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "ReplyToTicket" +msgstr "" + +#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +msgid "Requestor" +msgstr "ПроÑитель" + +#: html/Search/Elements/PickRestriction:38 +msgid "Requestor email address" +msgstr "Email проÑителÑ" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RequestorAddresses" +msgstr "" + +#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +msgid "Requestors" +msgstr "ПроÑители" + +#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +msgid "Requests should be due in" +msgstr "ЗапроÑÑ‹ должны быть обработаны за" + +#: html/Elements/Submit:62 +msgid "Reset" +msgstr "ОчиÑтить" + +#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +msgid "Residence" +msgstr "Домашний" + +#: html/Ticket/Elements/Tabs:132 +msgid "Resolve" +msgstr "Закрыть" + +#: html/Ticket/Update.html:133 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "" + +#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +msgid "Resolved" +msgstr "Закрыт" + +#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +msgid "Response to requestors" +msgstr "Ответ проÑителÑм" + +#: html/Elements/ListActions:26 +msgid "Results" +msgstr "Отчет" + +#: html/Search/Elements/PickRestriction:105 +msgid "Results per page" +msgstr "Тикетов на Ñтраницу" + +#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +msgid "Retype Password" +msgstr "Повторите пароль" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "Право %1 не найдено Ð´Ð»Ñ %2 %3 в рамках %4 (%5)\\n" + +#: lib/RT/ACE_Overlay.pm:613 +msgid "Right Delegated" +msgstr "Право делегировано" + +#: lib/RT/ACE_Overlay.pm:303 +msgid "Right Granted" +msgstr "Право выдано" + +#: lib/RT/ACE_Overlay.pm:161 +msgid "Right Loaded" +msgstr "Право загружено" + +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +msgid "Right could not be revoked" +msgstr "Право не может быть отобрано" + +#: html/User/Delegation.html:64 +msgid "Right not found" +msgstr "Право не найдено" + +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +msgid "Right not loaded." +msgstr "Право не загружено" + +#: lib/RT/ACE_Overlay.pm:689 +msgid "Right revoked" +msgstr "Право отобрано" + +#: html/Admin/Elements/UserTabs:41 +msgid "Rights" +msgstr "Права" + +#: lib/RT/Interface/Web.pm:758 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "" + +#: lib/RT/Interface/Web.pm:791 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "" + +#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "ПÑевдо-группы" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "Суб." + +#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +msgid "Save Changes" +msgstr "Сохранить изменениÑ" + +#: html/Ticket/ModifyLinks.html:39 +msgid "Save changes" +msgstr "Сохранить изменениÑ" + +#: html/Admin/Global/Scrip.html:49 +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:176 +msgid "Scrip Created" +msgstr "Создан Ñкрипт" + +#: html/Admin/Elements/EditScrips:84 +msgid "Scrip deleted" +msgstr "Удален Ñкрипт" + +#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +msgid "Scrips" +msgstr "Скрипты" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "Скрипты Ð´Ð»Ñ %1\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "Скрипты, которые дейÑтвуют Ð´Ð»Ñ Ð²Ñех очередей" + +#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +msgid "Search" +msgstr "ПоиÑк" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "Параметры поиÑка" + +#: html/Approvals/Elements/PendingMyApproval:39 +msgid "Search for approvals" +msgstr "ИÑкать визы" + +#: bin/rt-crontool:188 +msgid "Security:" +msgstr "БезопаÑноÑть:" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "SeeQueue" +msgstr "" + +#: html/Admin/Groups/index.html:40 +msgid "Select a group" +msgstr "Выбор группы" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "Выбор очереди" + +#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +msgid "Select a user" +msgstr "Выбор пользователÑ" + +#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +msgid "Select custom field" +msgstr "" + +#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +msgid "Select group" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Select multiple values" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:352 +msgid "Select one value" +msgstr "" + +#: html/Admin/Elements/QueueTabs:67 +msgid "Select queue" +msgstr "" + +#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +msgid "Select scrip" +msgstr "" + +#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +msgid "Select template" +msgstr "" + +#: html/Admin/Elements/UserTabs:49 +msgid "Select user" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "SelectMultiple" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectSingle" +msgstr "" + +#: html/SelfService/index.html:25 +msgid "Self Service" +msgstr "СамообÑлуживание" + +#: etc/initialdata:114 +msgid "Send mail to all watchers" +msgstr "" + +#: etc/initialdata:110 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "" + +#: etc/initialdata:105 +msgid "Send mail to requestors and Ccs" +msgstr "" + +#: etc/initialdata:100 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "" + +#: etc/initialdata:79 +msgid "Sends a message to the requestors" +msgstr "" + +#: etc/initialdata:118 etc/initialdata:122 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "" + +#: etc/initialdata:95 +msgid "Sends mail to the administrative Ccs" +msgstr "" + +#: etc/initialdata:91 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "" + +#: etc/initialdata:83 etc/initialdata:87 +msgid "Sends mail to the owner" +msgstr "" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "Сен." + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "ИÑкать" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show approved requests" +msgstr "Показать завизированные запроÑÑ‹" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show basics" +msgstr "Показать главное" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show denied requests" +msgstr "Показать отвергнутые запроÑÑ‹" + +#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +msgid "Show details" +msgstr "Показать вÑе" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show pending requests" +msgstr "Показать ожидающие запроÑÑ‹" + +#: html/Approvals/Elements/PendingMyApproval:46 +msgid "Show requests awaiting other approvals" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Show ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "Show ticket summaries" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ShowACL" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowScrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ShowTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "ShowTicket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "ShowTicketComments" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "" + +#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +msgid "Signature" +msgstr "ПодпиÑÑŒ" + +#: html/SelfService/Elements/Header:52 +#. ($session{'CurrentUser'}->Name) +msgid "Signed in as %1" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Single" +msgstr "Одно значение" + +#: html/Elements/Header:51 +msgid "Skip Menu" +msgstr "" + +#: html/Admin/Elements/EditCustomFieldValues:31 +msgid "Sort key" +msgstr "Ключ Ð´Ð»Ñ Ñортировки" + +#: html/Search/Elements/PickRestriction:109 +msgid "Sort results by" +msgstr "Сортировать по полю" + +#: html/Admin/Elements/AddCustomFieldValue:25 +msgid "SortOrder" +msgstr "ПорÑдок Ñортировки" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "Отложенных" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ñтраница" + +#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +msgid "Started" +msgstr "ÐачалÑÑ" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "Ðе могу разобрать дату 'ÐачалÑÑ': '%1'" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +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/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +msgid "State" +msgstr "СоÑтоÑние" + +#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "СтатуÑ" + +#: etc/initialdata:288 +msgid "Status Change" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:530 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½ Ñ %1 на %2" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "" + +#: html/Ticket/Elements/Tabs:147 +msgid "Steal" +msgstr "Отобрать" + +#: lib/RT/Transaction_Overlay.pm:589 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "Отобран у %1" + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "Тема" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "" + +#: html/Elements/Submit:59 +msgid "Submit" +msgstr "Готово" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "" + +#: lib/RT/Group_Overlay.pm:749 +msgid "Succeeded" +msgstr "" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "Ð’Ñк." + +#: lib/RT/System.pm:54 +msgid "SuperUser" +msgstr "" + +#: html/User/Elements/DelegateRights:77 +msgid "System" +msgstr "" + +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +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/ACE_Overlay.pm:616 +msgid "System error. Right not delegated." +msgstr "Ошибка ÑиÑтемы. Право не было делегировано." + +#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +msgid "System error. Right not granted." +msgstr "Ошибка ÑиÑтемы. Право не было выдано." + +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "" + +#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +msgid "System groups" +msgstr "СиÑтемные группы" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "" + +#: lib/RT/CurrentUser.pm:320 +msgid "TEST_STRING" +msgstr "TEST_STRING" + +#: html/Ticket/Elements/Tabs:143 +msgid "Take" +msgstr "ВзÑть" + +#: lib/RT/Transaction_Overlay.pm:575 +msgid "Taken" +msgstr "ВзÑÑ‚" + +#: html/Admin/Elements/EditScrip:81 +msgid "Template" +msgstr "Шаблон" + +#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "" + +#: html/Admin/Elements/EditTemplates:89 +msgid "Template deleted" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:153 +msgid "Template not found" +msgstr "Шаблон не найден" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "Шаблон не найден\\n" + +#: lib/RT/Template_Overlay.pm:347 +msgid "Template parsed" +msgstr "Шаблон обработан" + +#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +msgid "Templates" +msgstr "Шаблоны" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "Шаблоны Ð´Ð»Ñ %1\\n" + +#: lib/RT/Interface/Web.pm:858 +msgid "That is already the current value" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:178 +msgid "That is not a value for this custom field" +msgstr "Это поле не может иметь такого значениÑ" + +#: lib/RT/Ticket_Overlay.pm:1886 +msgid "That is the same value" +msgstr "Значение не изменилоÑÑŒ" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "Этот пользователь уже %1 Ð´Ð»Ñ Ñтой очереди" + +#: lib/RT/Ticket_Overlay.pm:1434 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "Этот пользователь уже %1 Ð´Ð»Ñ Ñтого тикета" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Этот пользователь не %1 Ñтой очереди" + +#: lib/RT/Ticket_Overlay.pm:1551 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "Этот пользователь не %1 Ñтому тикету" + +#: lib/RT/Ticket_Overlay.pm:1882 +msgid "That queue does not exist" +msgstr "Этой очереди не ÑущеÑтвует" + +#: lib/RT/Ticket_Overlay.pm:3143 +msgid "That ticket has unresolved dependencies" +msgstr "Этот тикет имеет неразрешенные завиÑимоÑти" + +#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +msgid "That user already has that right" +msgstr "Пользователь уже имеет Ñто право" + +#: lib/RT/Ticket_Overlay.pm:2952 +msgid "That user already owns that ticket" +msgstr "Пользователь уже владеет Ñтим тикетом" + +#: lib/RT/Ticket_Overlay.pm:2918 +msgid "That user does not exist" +msgstr "Пользователь не ÑущеÑтвует" + +#: lib/RT/User_Overlay.pm:315 +msgid "That user is already privileged" +msgstr "Этот пользователь уже имеет вÑе полномочиÑ" + +#: lib/RT/User_Overlay.pm:332 +msgid "That user is already unprivileged" +msgstr "Этот пользователь уже не имеет полномочий" + +#: lib/RT/User_Overlay.pm:327 +msgid "That user is now privileged" +msgstr "Этот пользователь теперь имеет вÑе полномочиÑ" + +#: lib/RT/User_Overlay.pm:344 +msgid "That user is now unprivileged" +msgstr "Этот пользователь теперь не имеет полномочий" + +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2944 +msgid "That user may not own tickets in that queue" +msgstr "Этот пользователь не может владеть тикетами из Ñтой очереди" + +#: lib/RT/Link_Overlay.pm:206 +msgid "That's not a numerical id" +msgstr "Это не чиÑловой идентификатор" + +#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +msgid "The Basics" +msgstr "Главное" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The CC of a ticket" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:89 +msgid "The administrative CC of a ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2213 +msgid "The comment has been recorded" +msgstr "ЗапиÑан комментарий" + +#: bin/rt-crontool:198 +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 "" + +#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "Эти команды не были иÑполнены:\\n\\n" + +#: lib/RT/Interface/Web.pm:861 +msgid "The new value has been set." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The owner of a ticket" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The requestor of a ticket" +msgstr "" + +#: html/Admin/Elements/EditUserComments:26 +msgid "These comments aren't generally visible to the user" +msgstr "Эти комментарии не показываютÑÑ Ð¾Ð±Ñ‹ÐºÐ½Ð¾Ð²ÐµÐ½Ð½Ð¾Ð¼Ñƒ пользователю" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "Этот тикет %1 %2 (%3)\\n" + +#: bin/rt-crontool:189 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "Этот инÑтрумент позволÑет пользователю запуÑкать некоторые модули Perl из RT." + +#: lib/RT/Transaction_Overlay.pm:253 +msgid "This transaction appears to have no content" +msgstr "Похоже, что Ñта Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð½Ðµ имеет информации" + +#: html/Ticket/Elements/ShowRequestor:47 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "25 важнейших тикетов пользователÑ..." + +#: lib/RT/Date.pm:391 +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 "" + +#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "Тикет #%1 Обновление вÑего: %2" + +#: html/Approvals/Elements/ShowDependency:46 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:608 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "Тикет %1 Ñоздан в очереди '%2'" + +#: bin/rt-commit-handler:760 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "Загружен тикет %1\\n" + +#: html/Search/Bulk.html:181 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "Тикет %1: %2" + +#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð° # %1 %2" + +#: html/SelfService/Display.html:34 +msgid "Ticket Id" +msgstr "Тикет #" + +#: etc/initialdata:303 +msgid "Ticket Resolved" +msgstr "" + +#: html/Search/Elements/PickRestriction:63 +msgid "Ticket attachment" +msgstr "Ð”Ð»Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "ТекÑÑ‚ тикета" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "Тип данных тикета" + +#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +msgid "Ticket could not be created due to an internal error" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:522 +msgid "Ticket created" +msgstr "Создан тикет" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "Ðе удалоÑÑŒ Ñоздать тикет" + +#: lib/RT/Transaction_Overlay.pm:527 +msgid "Ticket deleted" +msgstr "Тикет удален" + +#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +msgid "Ticket id not found" +msgstr "Идентификатор тикета не найден" + +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "" + +#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +msgid "Ticket not found" +msgstr "Тикет не найден" + +#: etc/initialdata:289 +msgid "Ticket status changed" +msgstr "" + +#: html/Ticket/Update.html:39 +msgid "Ticket watchers" +msgstr "Ðаблюдатели Ð´Ð»Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð°" + +#: html/Elements/Tabs:49 +msgid "Tickets" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Tickets from %1" +msgstr "Тикеты от %1" + +#: html/Approvals/Elements/ShowDependency:27 +msgid "Tickets which depend on this approval:" +msgstr "От Ñтой визы завиÑÑÑ‚ Ñледующие тикеты:" + +#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +msgid "Time Left" +msgstr "ОÑталоÑÑŒ" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +msgid "Time Worked" +msgstr "Ð’ работе" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "ОÑталоÑÑŒ" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "Ð’ работе" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1165 +msgid "TimeWorked" +msgstr "" + +#: bin/rt-commit-handler:402 +msgid "To generate a diff of this commit:" +msgstr "Ð”Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ дифа Ñтого коммита:" + +#: bin/rt-commit-handler:391 +msgid "To generate a diff of this commit:\\n" +msgstr "Ð”Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ дифа Ñтого коммита:\\n" + +#: lib/RT/Ticket_Overlay.pm:1168 +msgid "Told" +msgstr "Контакт" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:642 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ %1 удалена" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "Создана транзакциÑ" + +#: lib/RT/Transaction_Overlay.pm:89 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:701 +msgid "Transactions are immutable" +msgstr "Транзакции не изменены" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "ПытаемÑÑ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ право: %1" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "Втр." + +#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "Тип" + +#: lib/RT/ScripCondition_Overlay.pm:104 +msgid "Unimplemented" +msgstr "Ðе реализовано" + +#: html/Admin/Users/Modify.html:68 +msgid "Unix login" +msgstr "Логин UNIX" + +#: html/Admin/Elements/ModifyUser:62 +msgid "UnixUsername" +msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ UNIX" + +#: lib/RT/Attachment_Overlay.pm:265 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ° %1" + +#: html/Elements/SelectResultsPerPage:37 +msgid "Unlimited" +msgstr "Ðе ограничено" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:571 +msgid "Untaken" +msgstr "Ðичей" + +#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +msgid "Update" +msgstr "Обновить" + +#: html/Admin/Users/Prefs.html:62 +msgid "Update ID" +msgstr "Обновить идентификатор" + +#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +msgid "Update Type" +msgstr "Обновить тип" + +#: html/Search/Listing.html:61 +msgid "Update all these tickets at once" +msgstr "Изменить одним махом" + +#: html/Admin/Users/Prefs.html:49 +msgid "Update email" +msgstr "Обновить e-mail" + +#: html/Admin/Users/Prefs.html:55 +msgid "Update name" +msgstr "Обновить имÑ" + +#: lib/RT/Interface/Web.pm:375 +msgid "Update not recorded." +msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ Ñохранены." + +#: html/Search/Bulk.html:81 +msgid "Update selected tickets" +msgstr "Изменить выбранные тикеты" + +#: html/Admin/Users/Prefs.html:36 +msgid "Update signature" +msgstr "Обновить подпиÑÑŒ" + +#: html/Ticket/ModifyAll.html:63 +msgid "Update ticket" +msgstr "Обновить тикет" + +#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 +#. ($Ticket->id) +msgid "Update ticket # %1" +msgstr "Обновить тикет # %1" + +#: html/SelfService/Update.html:50 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Обновить тикет # %1" + +#: html/Ticket/Update.html:135 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "" + +#: lib/RT/Interface/Web.pm:373 +msgid "Update type was neither correspondence nor comment." +msgstr "Обновление не было ни Ñообщением, ни комментарием." + +#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +msgid "Updated" +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" + +#: 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:125 etc/initialdata:191 +msgid "User Defined" +msgstr "" + +#: html/Admin/Users/Prefs.html:59 +msgid "User ID" +msgstr "Логин" + +#: html/Elements/SelectUsers:26 +msgid "User Id" +msgstr "Логин" + +#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +msgid "User Rights" +msgstr "Права пользователÑ" + +#: html/Admin/Users/Modify.html:226 +#. ($msg) +msgid "User could not be created: %1" +msgstr "Ðе могу Ñоздать пользователÑ: %1" + +#: lib/RT/User_Overlay.pm:262 +msgid "User created" +msgstr "Создан пользователь" + +#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "Группы, определенные пользователем" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "Пользователю отоÑлано напоминание" + +#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +msgid "User view" +msgstr "ПользовательÑкие наÑтройки" + +#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +msgid "Username" +msgstr "Логин" + +#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +msgid "Users" +msgstr "Пользователи" + +#: html/Admin/Users/index.html:65 +msgid "Users matching search criteria" +msgstr "Ðайдены пользователи" + +#: html/Search/Elements/PickRestriction:51 +msgid "ValueOfQueue" +msgstr "ValueOfQueue" + +#: html/Admin/Elements/EditCustomField:40 +msgid "Values" +msgstr "ЗначениÑ" + +#: NOT FOUND IN SOURCE +msgid "VrijevormEnkele" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Watch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "WatchAsAdminCc" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "" + +#: html/Admin/Elements/QueueTabs:42 +msgid "Watchers" +msgstr "Ðаблюдатели" + +#: html/Admin/Elements/ModifyUser:56 +msgid "WebEncoding" +msgstr "WebEncoding" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "Срд." + +#: etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "" + +#: etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "" + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "" + +#: etc/upgrade/2.1.71:79 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "" + +#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +msgid "Work" +msgstr "Рабочий" + +#: html/Admin/Elements/ModifyUser:70 +msgid "WorkPhone" +msgstr "Рабочий" + +#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +msgid "Worked" +msgstr "Ð’ работе" + +#: lib/RT/Ticket_Overlay.pm:3056 +msgid "You already own this ticket" +msgstr "Ð’Ñ‹ уже владеете Ñтим тикетом" + +#: html/autohandler:121 +msgid "You are not an authorized user" +msgstr "Вам Ñюда запрещено" + +#: lib/RT/Ticket_Overlay.pm:2930 +msgid "You can only reassign tickets that you own or 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 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "You found %1 tickets in queue %2" + +#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +msgid "You have been logged out of RT." +msgstr "Ð’Ñ‹ вышли из RT." + +#: html/SelfService/Display.html:134 +msgid "You have no permission to create tickets in that queue." +msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ права Ñоздавать тикеты в Ñтой очереди." + +#: lib/RT/Ticket_Overlay.pm:1895 +msgid "You may not create requests in that queue." +msgstr "Ð’Ñ‹ не можете Ñоздавать запроÑÑ‹ в Ñтой очереди." + +#: html/NoAuth/Logout.html:36 +msgid "You're welcome to login again" +msgstr "Заходите еще" + +#: html/SelfService/Elements/MyRequests:25 +#. ($friendly_status) +msgid "Your %1 requests" +msgstr "Ваши запроÑÑ‹: %1" + +#: NOT FOUND IN SOURCE +msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "ÐдминиÑтратор RT неправильно наÑтроил почтовые алиаÑÑ‹" + +#: etc/initialdata:429 etc/upgrade/2.1.71:146 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "" + +#: etc/initialdata:463 etc/upgrade/2.1.71:180 +msgid "Your request has been approved." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "" + +#: etc/initialdata:384 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "" + +#: html/autohandler:136 html/autohandler:142 +msgid "Your username or password is incorrect" +msgstr "Ð’Ñ‹ ввели неверное Ð¸Ð¼Ñ Ð¸Ð»Ð¸ пароль" + +#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +msgid "Zip" +msgstr "ИндекÑ" + +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "" + +#: html/User/Elements/DelegateRights:59 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ %1" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +msgid "contains" +msgstr "Ñодержит" + +#: html/Elements/SelectAttachmentField:26 +msgid "content" +msgstr "данные" + +#: html/Elements/SelectAttachmentField:27 +msgid "content-type" +msgstr "тип данных" + +#: lib/RT/Ticket_Overlay.pm:2282 +msgid "correspondence (probably) not sent" +msgstr "Ñообщение (возможно) не отправлено" + +#: lib/RT/Ticket_Overlay.pm:2292 +msgid "correspondence sent" +msgstr "отправлено Ñообщение" + +#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +msgid "days" +msgstr "дней" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "" + +#: html/Search/Listing.html:75 +msgid "delete" +msgstr "удалить" + +#: lib/RT/Queue_Overlay.pm:63 +msgid "deleted" +msgstr "удален" + +#: html/Search/Elements/PickRestriction:68 +msgid "does not match" +msgstr "не Ñовпадает" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +msgid "doesn't contain" +msgstr "не Ñодержит" + +#: html/Elements/SelectEqualityOperator:38 +msgid "equal to" +msgstr "равнÑетÑÑ" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "" + +#: html/Elements/SelectAttachmentField:28 +msgid "filename" +msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "greater than" +msgstr "больше чем" + +#: lib/RT/Group_Overlay.pm:194 +#. ($self->Name) +msgid "group '%1'" +msgstr "группа '%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "чаÑов" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "идентификатор" + +#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "is" +msgstr "ÑвлÑетÑÑ" + +#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +msgid "isn't" +msgstr "не ÑвлÑетÑÑ" + +#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +msgid "less than" +msgstr "меньше чем" + +#: html/Search/Elements/PickRestriction:67 +msgid "matches" +msgstr "Ñовпадает" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "мин" + +#: html/Ticket/Update.html:66 +msgid "minutes" +msgstr "минут" + +#: bin/rt-commit-handler:765 +msgid "modifications\\n\\n" +msgstr "изменениÑ\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "меÑÑцев" + +#: lib/RT/Queue_Overlay.pm:58 +msgid "new" +msgstr "новый" + +#: html/Admin/Elements/EditScrips:43 +msgid "no value" +msgstr "" + +#: html/Ticket/Elements/EditWatchers:28 +msgid "none" +msgstr "нет" + +#: html/Elements/SelectEqualityOperator:38 +msgid "not equal to" +msgstr "не равен" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "open" +msgstr "открыт" + +#: lib/RT/Group_Overlay.pm:199 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° '%1' Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ '%2'" + +#: lib/RT/Group_Overlay.pm:207 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "очередь %1 %2" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "rejected" +msgstr "отклонен" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "resolved" +msgstr "решен" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "Ñек" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "stalled" +msgstr "отложен" + +#: lib/RT/Group_Overlay.pm:202 +#. ($self->Type) +msgid "system %1" +msgstr "ÑиÑтема %1" + +#: lib/RT/Group_Overlay.pm:213 +#. ($self->Type) +msgid "system group '%1'" +msgstr "ÑиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:42 +msgid "the calling component did not specify why" +msgstr "вызывающий компонент не указал причину" + +#: lib/RT/Group_Overlay.pm:210 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "тикет #%1 %2" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "" + +#: lib/RT/Group_Overlay.pm:216 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "неопиÑÐ°Ð½Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° %1" + +#: lib/RT/Group_Overlay.pm:191 +#. ($user->Object->Name) +msgid "user %1" +msgstr "пользователь %1" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "недель" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ %1" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "лет" + +#: NOT FOUND IN SOURCE +msgid "ニックãƒãƒ¼ãƒ " +msgstr "" + diff --git a/rt/lib/RT/I18N/zh_cn.po b/rt/lib/RT/I18N/zh_cn.po new file mode 100644 index 000000000..ededc1ac3 --- /dev/null +++ b/rt/lib/RT/I18N/zh_cn.po @@ -0,0 +1,6384 @@ +# Traditional Chinese localization catalog for Request Tracker (RT) +msgid "" +msgstr "" +"Last-Translator: Autrijus Tang <autrijus@autrijus.org>\n" +"Language-Team: Chinese <members@ourinet.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: html/Elements/MyRequests:27 html/Elements/MyTickets:27 html/Work/Elements/MyApprovals:8 html/Work/Elements/MyRequests:9 html/Work/Elements/MyTickets:9 +msgid "#" +msgstr "#" + +#: NOT FOUND IN SOURCE +msgid "#%1" +msgstr "#%1" + +#: 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 +#. ($Ticket->Id, $Ticket->Subject) +#. ($Ticket->id, $Ticket->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "#%1: %2" + +#: 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/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "%1 %2" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($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 "%7-%2-%3 %4:%5:%6 %1" + +#: lib/RT/Ticket_Overlay.pm:3541 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "%2 已新增为 %1" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "%1 %2 之å‰" + +#: lib/RT/Ticket_Overlay.pm:3547 lib/RT/Transaction_Overlay.pm:564 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 已从 %2 改为 %3" + +#: lib/RT/Ticket_Overlay.pm:3544 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "%2 已自 %1 删除" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:157 +#. ($depth_str, $role_str, $group_str) +msgid "%1 %2 of group %3" +msgstr "%3 群组的 %1 %2" + +#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 +#. (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/Search/Listing.html:56 html/Work/Search/index.html:28 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "显示第 %1 - %2 笔" + +#: bin/rt-crontool:168 bin/rt-crontool:175 bin/rt-crontool:181 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "%1 - 传递给 %2 çš„ä¸€ä¸ªå‚æ•°" + +#: bin/rt-crontool:184 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - 将更新状æ€è¾“出到 STDOUT" + +#: bin/rt-crontool:178 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - 指定欲使用的动作模å—" + +#: bin/rt-crontool:172 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - 指定欲使用的æ¡ä»¶æ¨¡å—" + +#: bin/rt-crontool:165 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - 指定欲使用的查询模å—" + +#: lib/RT/ScripAction_Overlay.pm:121 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "加载手续 %1" + +#: html/Edit/Elements/Page:48 +#. (scalar $count) +msgid "%1 Total" +msgstr "å…± %1 笔" + +#: lib/RT/Ticket_Overlay.pm:3574 +#. ($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:116 lib/RT/Link_Overlay.pm:123 +#. ($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:51 lib/RT/Transaction_Overlay.pm:481 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 (%2)" + +#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:624 lib/RT/Transaction_Overlay.pm:633 lib/RT/Transaction_Overlay.pm:636 +#. ($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 的值从 %2 改为 %3" + +#: lib/RT/Interface/Web.pm:893 +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:2839 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 无法将现况设æˆå·²è§£å†³ã€‚RT æ•°æ®åº“内容å¯èƒ½ä¸ä¸€è‡´ã€‚" + +#: html/Elements/MyTickets:24 html/Work/Elements/MyTickets:6 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "å‰ %1 份待处ç†ç”³è¯·å•..." + +#: html/Elements/MyRequests:24 html/Work/Elements/MyRequests:6 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "å‰ %1 份é€å‡ºçš„申请å•..." + +#: html/Work/Elements/MyApprovals:5 +#. ($rows) +msgid "%1 highest priority tickets pending my approval..." +msgstr "å‰ %1 份待签核申请å•..." + +#: bin/rt-crontool:160 +#. ($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:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å•çš„ %2。" + +#: lib/RT/Ticket_Overlay.pm:1578 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 å·²ä¸å†æ˜¯æ­¤ç”³è¯·å•çš„ %2。" + +#: lib/RT/Ticket_Overlay.pm:3630 +#. ($args{'Value'}, $cf->Name) +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/ShowBasics:35 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 分钟" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "没有显示 %1" + +#: NOT FOUND IN SOURCE +msgid "%1 result(s) found" +msgstr "找到 %1 项结果" + +#: html/User/Elements/DelegateRights:75 +#. (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:41 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 会解决在已解决群组里æˆå‘˜çš„申请å•。" + +#: lib/RT/Action/StallDependent.pm:40 +#. (ref $self) +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "如果 %1 起始申请å•ä¾èµ–于æŸä¸ªé“¾æŽ¥ï¼Œæˆ–是æŸä¸ªé“¾æŽ¥çš„æˆå‘˜ï¼Œå®ƒå°†ä¼šè¢«å»¶å®•ã€‚" + +#: lib/RT/Transaction_Overlay.pm:433 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1:未指定附件" + +#: html/Ticket/Elements/ShowTransaction:89 html/Work/Tickets/Elements/ShowTransaction:152 +#. ($size) +msgid "%1b" +msgstr "%1 字节" + +#: html/Ticket/Elements/ShowTransaction:86 html/Work/Tickets/Elements/ShowTransaction:149 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "%1k 字节" + +#: NOT FOUND IN SOURCE +msgid "%quant(%1,result) found" +msgstr "找到 %1 项结果" + +#: lib/RT/Ticket_Overlay.pm:1148 +#. ($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:24 html/Admin/Elements/EditQueueWatchers:28 html/Admin/Elements/EditScrips:34 html/Admin/Elements/EditTemplates:35 html/Admin/Elements/EditWorkflows:36 html/Admin/Groups/Members.html:51 html/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 +msgid "(Check box to delete)" +msgstr "(点选欲删除的项目)" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "(点选欲删除的项目)" + +#: html/Ticket/Create.html:177 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(键入申请å•ç¼–å·æˆ–网å€ï¼Œä»¥ç©ºç™½åˆ†éš”)" + +#: 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 "(如果留白, 则预设为 %1)" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "(没有值)" + +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +msgid "(No custom fields)" +msgstr "(没有自订字段)" + +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +msgid "(No members)" +msgstr "(没有æˆå‘˜)" + +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +msgid "(No scrips)" +msgstr "(没有手续)" + +#: html/Admin/Elements/EditTemplates:30 +msgid "(No templates)" +msgstr "没有模æ¿" + +#: html/Admin/Elements/EditWorkflows:31 +msgid "(No workflows)" +msgstr "没有æµç¨‹" + +#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:52 +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/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 "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本给åå•上以逗å·éš”开的管ç†å‘˜ç”µå­é‚®ä»¶åœ°å€ã€‚è¿™<b>将会</b>更改åŽç»­çš„æ”¶ä»¶è€…åå•。)" + +#: html/Ticket/Update.html:79 +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/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 "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本给åå•上以逗å·éš”开的电å­é‚®ä»¶åœ°å€ã€‚è¿™<b>将会</b>更改åŽç»­çš„æ”¶ä»¶è€…åå•。)" + +#: html/Ticket/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:33 html/Work/Tickets/Elements/ShowCustomFieldEntries:13 +msgid "(delete)" +msgstr "(删除)" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +msgid "(empty)" +msgstr "(空白)" + +#: html/Edit/Global/CustomField/index.html:113 html/Edit/Global/Scrip/index.html:111 html/Edit/Global/Template/index.html:106 +msgid "(new)" +msgstr "(新增)" + +#: html/Admin/Users/index.html:38 +msgid "(no name listed)" +msgstr "(没有列出姓å)" + +#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:36 html/Work/Elements/MyTickets:41 +msgid "(no subject)" +msgstr "(没有主题)" + +#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:60 html/Ticket/Elements/EditCustomFieldValues:52 html/Ticket/Elements/ShowCustomFields:35 html/Work/Elements/EditCustomFieldValues:50 html/Work/Elements/EditCustomFields:32 html/Work/Tickets/Elements/EditCustomFieldValues:33 lib/RT/Transaction_Overlay.pm:534 +msgid "(no value)" +msgstr "(æ— )" + +#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:115 html/Work/Search/BulkLinks:3 +msgid "(only one ticket)" +msgstr "(仅能指定一份申请å•)" + +#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:17 html/Work/Elements/MyRequests:46 html/Work/Elements/MyTickets:56 html/Work/Tickets/Elements/ShowBasics:44 +msgid "(pending approval)" +msgstr "(等待签核)" + +#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:48 html/Work/Elements/MyTickets:58 +msgid "(pending other tickets)" +msgstr "(等待其它申请å•)" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:246 +msgid "(requestor's group)" +msgstr "(申请人所属)" + +#: html/Admin/Users/Modify.html:49 +msgid "(required)" +msgstr "(å¿…å¡«)" + +#: html/Ticket/Elements/ShowTransaction:92 html/Work/Tickets/Elements/ShowTransaction:37 +msgid "(untitled)" +msgstr "(未命å)" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "å‰ 25 份待处ç†ç”³è¯·å•..." + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "å‰ 25 份é€å‡ºçš„申请å•..." + +#: 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 html/Work/Elements/104Header:43 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"æå‡ºç”³è¯·å•\"> %1" + +#: etc/initialdata:221 +msgid "A blank template" +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:156 lib/RT/Principal_Overlay.pm:179 +msgid "ACE not found" +msgstr "找ä¸åˆ° ACE 设定" + +#: lib/RT/ACE_Overlay.pm:830 +msgid "ACEs can only be created and deleted." +msgstr "祇能新增或删除 ACE 设定。" + +#: NOT FOUND IN SOURCE +msgid "ACLEquivalence" +msgstr "ACLEquivalence" + +#: bin/rt-commit-handler:754 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "离开以å…ä¸å°å¿ƒæ›´æ”¹åˆ°ç”³è¯·å•。\\n" + +#: html/User/Elements/Tabs:31 +msgid "About me" +msgstr "个人信æ¯" + +#: html/Edit/Users/System:12 +msgid "Access Right" +msgstr "系统使用登录æƒé™" + +#: html/Admin/Users/Modify.html:79 +msgid "Access control" +msgstr "å­˜å–æƒé™" + +#: html/Admin/Elements/EditScrip:56 html/Work/Tickets/Elements/ShowTransaction:18 +msgid "Action" +msgstr "动作" + +#: lib/RT/Scrip_Overlay.pm:146 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "动作 %1 找ä¸åˆ°" + +#: bin/rt-crontool:122 +msgid "Action committed." +msgstr "动作执行完毕" + +#: bin/rt-crontool:118 +msgid "Action prepared..." +msgstr "动作准备完毕..." + +#: html/Work/Elements/List:13 html/Work/Elements/SelectSearch:24 html/Work/Tickets/Create.html:26 html/Work/Tickets/Elements/ShowBasics:12 +msgid "Activated Date" +msgstr "申请激活时间" + +#: html/Edit/Elements/104Buttons:71 html/Edit/Elements/ListButtons:7 +msgid "Add" +msgstr "新增" + +#: html/Search/Bulk.html:95 html/Work/Search/Bulk.html:74 +msgid "Add AdminCc" +msgstr "新增管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" + +#: html/Search/Bulk.html:91 html/Work/Search/Bulk.html:68 +msgid "Add Cc" +msgstr "新增副本收件人" + +#: html/Ticket/Elements/EditCustomFieldEntries:71 html/Work/Tickets/Elements/ShowCustomFieldEntries:49 +msgid "Add Entry" +msgstr "新增列" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 html/Work/Tickets/Elements/AddAttachments:18 +msgid "Add More Files" +msgstr "新增更多附件" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:112 html/Admin/Elements/ModifyTemplateAsWorkflow:45 +msgid "Add Next State" +msgstr "新增下一项关å¡" + +#: html/Search/Bulk.html:87 html/Work/Search/Bulk.html:62 +msgid "Add Requestor" +msgstr "新增申请人" + +#: html/Admin/Elements/AddCustomFieldValue:24 +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:54 +msgid "Add a scrip which will apply to all queues" +msgstr "新增一é“用于所有表å•的手续" + +#: html/Search/Bulk.html:127 html/Work/Search/Bulk.html:80 +msgid "Add comments or replies to selected tickets" +msgstr "新增评论或回å¤åˆ°æŒ‡å®šçš„申请å•" + +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +msgid "Add members" +msgstr "新增æˆå‘˜" + +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +msgid "Add new watchers" +msgstr "新增视察员" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "新增下一项关å¡" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤è¡¨å•çš„ %1" + +#: lib/RT/Ticket_Overlay.pm:1462 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤ç”³è¯·å•çš„ %1" + +#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:87 html/Work/Preferences/Info:76 +msgid "Address1" +msgstr "ä½å€" + +#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:89 html/Work/Preferences/Info:78 +msgid "Address2" +msgstr "ä½å€(ç»­)" + +#: NOT FOUND IN SOURCE +msgid "Adjust Blinking Rate" +msgstr "调整闪çƒé€Ÿåº¦å¿«æ…¢" + +#: html/Edit/Groups/Admin:9 +msgid "Admin" +msgstr "管ç†å‘˜" + +#: html/Ticket/Create.html:73 +msgid "Admin Cc" +msgstr "管ç†å‘˜å‰¯æœ¬" + +#: etc/initialdata:303 +msgid "Admin Comment" +msgstr "管ç†å‘˜è¯„论" + +#: etc/initialdata:261 +msgid "Admin Correspondence" +msgstr "管ç†å‘˜å›žå¤" + +#: NOT FOUND IN SOURCE +msgid "Admin Rights" +msgstr "管ç†å‘˜æƒé™" + +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +msgid "Admin queues" +msgstr "表å•管ç†" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "使用者管ç†" + +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +msgid "Admin/Global configuration" +msgstr "管ç†/全域设定" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "管ç†/群组" + +#: html/Admin/Queues/Modify.html:24 html/Admin/Queues/Modify.html:28 +msgid "Admin/Queue/Basics" +msgstr "管ç†/表å•/基本信æ¯" + +#: html/Edit/Global/Basic/Top:60 +msgid "AdminAddress" +msgstr "管ç†å‘˜ Email" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "ç®¡ç†æ‰€æœ‰ä»£ç†äººç¾¤ç»„" + +#: etc/initialdata:74 html/Admin/Elements/ModifyTemplateAsWorkflow:155 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 lib/RT/ACE_Overlay.pm:88 +msgid "AdminCc" +msgstr "管ç†å‘˜å‰¯æœ¬" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "管ç†å‘˜è¯„论" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "管ç†å‘˜å›žå¤" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "AdminCustomFields" +msgstr "管ç†è‡ªè®¢å­—段" + +#: html/Edit/Groups/Admin:12 lib/RT/Group_Overlay.pm:145 +msgid "AdminGroup" +msgstr "管ç†ç¾¤ç»„" + +#: NOT FOUND IN SOURCE +msgid "AdminGroupDescription" +msgstr "管ç†ç¾¤ç»„æè¿°" + +#: lib/RT/Group_Overlay.pm:147 +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:58 +msgid "AdminOwnPersonalGroups" +msgstr "管ç†ä»£ç†äººç¾¤ç»„" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "AdminQueue" +msgstr "管ç†è¡¨å•" + +#: lib/RT/System.pm:59 +msgid "AdminUsers" +msgstr "管ç†ä½¿ç”¨è€…" + +#: NOT FOUND IN SOURCE +msgid "Administrative" +msgstr "行政类" + +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +msgid "Administrative Cc" +msgstr "管ç†å‘˜å‰¯æœ¬" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:233 +msgid "Admins" +msgstr "主管" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "进阶查询" + +#: html/Elements/SelectDateRelation:35 +msgid "After" +msgstr "晚于" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "ç»åŽ†æ—¶é—´" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:172 html/Edit/Global/Workflow/Action:39 +msgid "Alias" +msgstr "执行其它æµç¨‹" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:175 +msgid "Alias for" +msgstr "相当于" + +#: html/Edit/Queues/index.html:33 html/Work/Delegates/index.html:13 html/Work/Elements/SelectSearch:11 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:13 +msgid "All" +msgstr "全部" + +#: etc/initialdata:372 +msgid "All Approvals Passed" +msgstr "完æˆå…¨éƒ¨ç­¾æ ¸" + +#: html/Edit/Global/Workflow/Condition:16 +msgid "All Condition" +msgstr "所有æ¡ä»¶" + +#: html/Admin/Elements/EditCustomFields:95 +msgid "All Custom Fields" +msgstr "所有自订字段" + +#: html/Admin/Queues/index.html:52 +msgid "All Queues" +msgstr "所有表å•" + +#: NOT FOUND IN SOURCE +msgid "All Users" +msgstr "全体员工" + +#: 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/Edit/Global/Workflow/Condition:13 +msgid "Any Condition" +msgstr "ä»»æ„æ¡ä»¶" + +#: html/Edit/Global/Scrip/List:10 html/Edit/Global/Scrip/Top:74 +msgid "Apply Template" +msgstr "引用模æ¿" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:138 html/Elements/Tabs:55 html/Work/Approvals/Elements/Approve:6 +msgid "Approval" +msgstr "签核" + +#: 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 "ç­¾æ ¸å• #%1:%2" + +#: html/Approvals/index.html:53 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "ç­¾æ ¸å• #%1:系统错误,记录失败" + +#: html/Approvals/index.html:51 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "ç­¾æ ¸å• #%1:记录完毕" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:123 +msgid "Approval Details" +msgstr "签核细节" + +#: NOT FOUND IN SOURCE +msgid "Approval Due" +msgstr "签核时é™" + +#: html/Work/Approvals/Elements/Approve:37 +msgid "Approval Notes" +msgstr "签核æ„è§" + +#: etc/initialdata:357 +msgid "Approval Passed" +msgstr "å®ŒæˆæŸé¡¹ç­¾æ ¸" + +#: etc/initialdata:383 +msgid "Approval Rejected" +msgstr "驳回æŸé¡¹ç­¾æ ¸" + +#: NOT FOUND IN SOURCE +msgid "Approval Result" +msgstr "签核结果" + +#: html/Work/Approvals/Elements/Approve:25 +msgid "Approval Status" +msgstr "核准结果" + +#: NOT FOUND IN SOURCE +msgid "Approval Type" +msgstr "签核ç§ç±»" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:25 +msgid "Approval diagram" +msgstr "签核æµç¨‹" + +#: html/Approvals/Elements/Approve:43 html/Work/Approvals/Elements/Approve:29 +msgid "Approve" +msgstr "核准" + +#: html/Work/Approvals/Elements/Approve:21 html/Work/Elements/List:9 +msgid "Approver" +msgstr "签核人" + +#: html/Edit/Global/Workflow/Action:29 html/Edit/Global/Workflow/Owner.html:10 +msgid "Approver Setting" +msgstr "执行签核人设定" + +#: etc/initialdata:516 etc/upgrade/2.1.71:148 html/Edit/Elements/CreateApprovalsQueue:122 +msgid "Approver's notes: %1" +msgstr "签核备注:%1" + +#: NOT FOUND IN SOURCE +msgid "Apr" +msgstr "四月" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "04" + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "四月" + +#: html/Edit/Elements/104Buttons:24 +msgid "Are you sure to delete checked items?" +msgstr "您确定è¦åˆ é™¤ï¼Ÿ" + +#: html/Elements/SelectSortOrder:34 +msgid "Ascending" +msgstr "递增" + +#: html/Search/Bulk.html:136 html/SelfService/Update.html:32 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 html/Work/Search/Bulk.html:88 +msgid "Attach" +msgstr "附件" + +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 html/Work/Tickets/Elements/AddAttachments:15 +msgid "Attach file" +msgstr "附加档案" + +#: html/Ticket/Create.html:97 html/Ticket/Update.html:87 html/Work/Tickets/Elements/AddAttachments:6 +msgid "Attached file" +msgstr "现有附件" + +#: NOT FOUND IN SOURCE +msgid "Attachment '%1' could not be loaded" +msgstr "无法加载附件 '%1'" + +#: lib/RT/Transaction_Overlay.pm:441 +msgid "Attachment created" +msgstr "附件新增完毕" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "附件档å" + +#: html/Ticket/Elements/ShowAttachments:25 html/Work/Tickets/Elements/ShowTransaction:32 +msgid "Attachments" +msgstr "附件" + +#: NOT FOUND IN SOURCE +msgid "Aug" +msgstr "八月" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "08" + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "八月" + +#: html/Admin/Elements/ModifyUser:65 +msgid "AuthSystem" +msgstr "è®¤è¯æ–¹å¼" + +#: NOT FOUND IN SOURCE +msgid "AutoReject" +msgstr "自动驳回表å•" + +#: NOT FOUND IN SOURCE +msgid "AutoResolve" +msgstr "自动完æˆè¡¨å•处ç†" + +#: etc/initialdata:224 +msgid "Autoreply" +msgstr "自动回å¤" + +#: etc/initialdata:90 +msgid "Autoreply To Requestors" +msgstr "自动对申请人回å¤" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "自动对申请人回å¤" + +#: html/Edit/Rights/index.html:16 +msgid "Available Rights:" +msgstr "æƒé™é¡¹ç›®åˆ—表:" + +#: NOT FOUND IN SOURCE +msgid "Back to Homepage" +msgstr "回到首页" + +#: html/Work/Elements/BackButton:2 html/Work/Search/Bulk.html:101 +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" + +#: bin/rt-commit-handler:826 +#. ($val) +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/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:17 html/Edit/Users/index.html:121 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 +msgid "Basics" +msgstr "基本信æ¯" + +#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:49 +msgid "Bcc" +msgstr "密件副本" + +#: html/Admin/Elements/EditScrip:87 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Global/Workflow.html:46 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/Admin/Queues/Workflow.html:44 html/User/Groups/Modify.html:55 +msgid "Be sure to save your changes" +msgstr "请别忘了储存修改。" + +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:321 +msgid "Before" +msgstr "早于" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:44 +msgid "Begin Approval" +msgstr "开始签核" + +#: NOT FOUND IN SOURCE +msgid "Begin From " +msgstr "èµ·å§‹æ—¥" + +#: html/Edit/Users/Info:25 +msgid "Birthday" +msgstr "生日" + +#: etc/initialdata:220 +msgid "Blank" +msgstr "空白模æ¿" + +#: html/Search/Listing.html:78 html/Work/Search/index.html:53 +msgid "Bookmarkable URL for this search" +msgstr "å°†æŸ¥è¯¢ç»“æžœè½¬ä¸ºå¯æ”¾å…¥ä¹¦ç­¾çš„网å€" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +msgid "Brief headers" +msgstr "精简标头档" + +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +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:1411 +msgid "Can not modify system users" +msgstr "无法更改系统使用者" + +#: lib/RT/Queue_Overlay.pm:66 +msgid "Can this principal see this queue" +msgstr "该å•使˜¯å¦èƒ½æŸ¥é˜…此表å•" + +#: lib/RT/CustomField_Overlay.pm:205 +msgid "Can't add a custom field value without a name" +msgstr "ä¸èƒ½æ–°å¢žæ²¡æœ‰å称的自订字段值" + +#: lib/RT/Link_Overlay.pm:131 +msgid "Can't link a ticket to itself" +msgstr "申请å•ä¸èƒ½é“¾æŽ¥è‡ªå·±ã€‚" + +#: lib/RT/Ticket_Overlay.pm:2816 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "ä¸èƒ½æ•´åˆè¿›å·²æ•´åˆè¿‡çš„申请å•。这个错误ä¸è¯¥å‘生。" + +#: lib/RT/Ticket_Overlay.pm:2634 lib/RT/Ticket_Overlay.pm:2703 +msgid "Can't specifiy both base and target" +msgstr "ä¸èƒ½åŒæ—¶æŒ‡å®šèµ·å§‹ç”³è¯·å•与目的申请å•" + +#: html/Edit/Elements/PopFooter:8 +msgid "Cancel" +msgstr "å–æ¶ˆ" + +#: html/autohandler:113 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "无法新增使用者:%1" + +#: NOT FOUND IN SOURCE +msgid "Card No." +msgstr "å¡å·" + +#: NOT FOUND IN SOURCE +msgid "Categories" +msgstr "分类管ç†" + +#: NOT FOUND IN SOURCE +msgid "Category" +msgstr "分类" + +#: etc/initialdata:68 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:44 html/Ticket/Update.html:76 html/Work/Tickets/Update.html:43 lib/RT/ACE_Overlay.pm:87 +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:30 +msgid "Change password" +msgstr "更改å£ä»¤" + +#: html/Edit/Global/Basic/Top:70 +msgid "ChangeOwnerUI" +msgstr "å¯å¦é€‰æ‹©è¡¨å•承办人" + +#: html/Ticket/Create.html:100 html/Ticket/Elements/EditCustomFieldEntries:35 html/Ticket/Update.html:90 html/Work/Tickets/Elements/ShowCustomFieldEntries:13 +msgid "Check box to delete" +msgstr "选择欲删除的项目" + +#: html/Admin/Elements/SelectRights:30 +msgid "Check box to revoke right" +msgstr "选择欲撤消的æƒåˆ©" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:130 html/Ticket/Elements/EditLinks:68 html/Ticket/Elements/ShowLinks:56 html/Work/Search/BulkLinks:18 +msgid "Children" +msgstr "å­ç”³è¯·å•" + +#: html/Edit/Elements/PickUsers:21 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 html/Edit/Users/List:6 html/Edit/Users/Top:18 +msgid "Chinese Name" +msgstr "中文姓å" + +#: NOT FOUND IN SOURCE +msgid "Chinese/English" +msgstr "中英文" + +#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:91 html/Work/Preferences/Info:80 +msgid "City" +msgstr "所在城市" + +#: html/Ticket/Elements/ShowDates:46 +msgid "Closed" +msgstr "已解决" + +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "已解决的申请å•" + +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "已解决的申请å•" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:58 html/Edit/Global/Workflow/Condition:51 +msgid "Code" +msgstr "执行程åºç " + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "指令无法辨识ï¼\\n" + +#: html/Ticket/Elements/ShowTransaction:166 html/Ticket/Elements/Tabs:152 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:37 html/Work/Tickets/Elements/ShowTransaction:112 html/Work/Tickets/Elements/ShowTransaction:27 +msgid "Comment" +msgstr "评论" + +#: html/Admin/Elements/ModifyQueue:44 html/Admin/Queues/Modify.html:57 +msgid "Comment Address" +msgstr "评论电å­é‚®ä»¶åœ°å€" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "评论未被纪录" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Comment on tickets" +msgstr "å¯¹ç”³è¯·å•æå‡ºè¯„è®º" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "CommentOnTicket" +msgstr "评论申请å•" + +#: html/Admin/Elements/ModifyUser:34 html/Work/Tickets/Update.html:59 +msgid "Comments" +msgstr "评论" + +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:68 html/Work/Tickets/Update.html:35 +msgid "Comments (Not sent to requestors)" +msgstr "评论(ä¸é€ç»™ç”³è¯·äºº)" + +#: html/Search/Bulk.html:131 html/Work/Search/Bulk.html:83 +msgid "Comments (not sent to requestors)" +msgstr "评论(ä¸é€ç»™ç”³è¯·äºº)" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Comments about %1" +msgstr "对 %1 的评论" + +#: html/Admin/Users/Modify.html:184 html/Ticket/Elements/ShowRequestor:43 +msgid "Comments about this user" +msgstr "使用者æè¿°" + +#: lib/RT/Transaction_Overlay.pm:543 +msgid "Comments added" +msgstr "新增评论完毕" + +#: html/Edit/Elements/PopFooter:4 html/Edit/Elements/PopFooter:6 +msgid "Commit" +msgstr "确认" + +#: lib/RT/Action/Generic.pm:139 +msgid "Commit Stubbed" +msgstr "消除更动完毕" + +#: html/Edit/Users/Info:42 +msgid "Company Name" +msgstr "å…¬å¸åç§°" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "设定查询æ¡ä»¶" + +#: html/Admin/Elements/EditScrip:40 html/Admin/Elements/ModifyTemplateAsWorkflow:127 +msgid "Condition" +msgstr "æ¡ä»¶" + +#: bin/rt-crontool:108 +msgid "Condition matches..." +msgstr "ç¬¦åˆæ¡ä»¶..." + +#: lib/RT/Scrip_Overlay.pm:159 +msgid "Condition not found" +msgstr "未找到符åˆçš„现况" + +#: html/Edit/Global/GroupRight/Top:26 html/Edit/Global/UserRight/Top:45 html/Edit/Groups/Member:57 html/Elements/Tabs:49 +msgid "Configuration" +msgstr "设定" + +#: html/SelfService/Prefs.html:32 +msgid "Confirm" +msgstr "确认å£ä»¤" + +#: NOT FOUND IN SOURCE +msgid "Confirm Password" +msgstr "å£ä»¤ç¡®è®¤" + +#: html/Work/Approvals/Display.html:25 html/Work/Tickets/Create.html:153 html/Work/Tickets/Create.html:165 html/Work/Tickets/Update.html:81 +msgid "Confirm Submit" +msgstr "确定é€å‡º" + +#: NOT FOUND IN SOURCE +msgid "Contact System Administrator" +msgstr "连络系统管ç†å‘˜" + +#: html/Admin/Elements/ModifyUser:59 +msgid "ContactInfoSystem" +msgstr "连络信æ¯ç³»ç»Ÿ" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "无法解读è”络日期 '%1'" + +#: html/Admin/Elements/ModifyTemplate:43 html/Admin/Elements/ModifyTemplateAsWorkflow:200 html/Ticket/ModifyAll.html:86 +msgid "Content" +msgstr "内容" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "无法新增群组" + +#: html/Edit/Elements/104Buttons:74 +msgid "Copy" +msgstr "å¤åˆ¶" + +#: NOT FOUND IN SOURCE +msgid "Copy Field From:" +msgstr "欲å¤åˆ¶å­—段:" + +#: etc/initialdata:282 +msgid "Correspondence" +msgstr "回å¤" + +#: html/Admin/Elements/ModifyQueue:38 html/Admin/Queues/Modify.html:50 +msgid "Correspondence Address" +msgstr "申请å•回å¤åœ°å€" + +#: lib/RT/Transaction_Overlay.pm:539 +msgid "Correspondence added" +msgstr "新增申请å•回å¤" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "未纪录申请å•回å¤" + +#: lib/RT/Ticket_Overlay.pm:3561 +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/Ticket_Overlay.pm:3067 lib/RT/Ticket_Overlay.pm:3075 lib/RT/Ticket_Overlay.pm:3092 +msgid "Could not change owner. " +msgstr "ä¸èƒ½æ›´æ”¹æ‰¿åŠžäººã€‚ " + +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:165 html/Edit/Global/CustomField/index.html:117 +#. ($msg) +msgid "Could not create CustomField" +msgstr "无法新增自订字段" + +#: html/Edit/Global/Workflow/index.html:126 +#. ($msg) +msgid "Could not create Scrip" +msgstr "无法建立讯æ¯é€šçŸ¥" + +#: html/Edit/Global/Template/index.html:110 +#. ($msg) +msgid "Could not create Template" +msgstr "无法建立通知模æ¿" + +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 +msgid "Could not create group" +msgstr "无法新增群组" + +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#. ($msg) +msgid "Could not create template: %1" +msgstr "无法新增模æ¿ï¼š%1" + +#: lib/RT/Ticket_Overlay.pm:1081 lib/RT/Ticket_Overlay.pm:334 +msgid "Could not create ticket. Queue not set" +msgstr "无法新增申请å•。尚未指定表å•。" + +#: lib/RT/User_Overlay.pm:267 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:481 +msgid "Could not create user" +msgstr "无法新增使用者" + +#: NOT FOUND IN SOURCE +msgid "Could not create watcher for requestor" +msgstr "无法为申请人新增视察员" + +#: html/Admin/Elements/ModifyWorkflow:219 html/Admin/Global/Workflow.html:75 html/Admin/Queues/Workflow.html:71 +#. ($msg) +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:621 lib/RT/Ticket_Overlay.pm:1430 +msgid "Could not find or create that user" +msgstr "找ä¸åˆ°æˆ–无法新增该å使用者" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1509 +msgid "Could not find that principal" +msgstr "找ä¸åˆ°è¯¥å•ä½" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "找ä¸åˆ°ä½¿ç”¨è€… %1。" + +#: html/Admin/Groups/Members.html:87 html/Edit/Users/index.html:83 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#. ( . $GroupId) +msgid "Could not load group" +msgstr "无法加载群组" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "无法将该å•ä½è®¾ä¸ºæ­¤è¡¨å•çš„ %1。" + +#: lib/RT/Ticket_Overlay.pm:1451 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "无法将该å•ä½è®¾ä¸ºæ­¤ç”³è¯·å•çš„ %1。" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "无法将å•ä½ %1 从表å•移除。" + +#: lib/RT/Ticket_Overlay.pm:1567 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "无法将å•ä½ %1 从申请å•移除。" + +#: lib/RT/Group_Overlay.pm:984 +msgid "Couldn't add member to group" +msgstr "无法新增æˆå‘˜è‡³ç¾¤ç»„" + +#: lib/RT/Ticket_Overlay.pm:3571 lib/RT/Ticket_Overlay.pm:3627 +#. ($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/Interface/Web.pm:902 +msgid "Couldn't find row" +msgstr "找ä¸åˆ°æ­¤åˆ—æ•°æ®" + +#: lib/RT/Group_Overlay.pm:958 +msgid "Couldn't find that principal" +msgstr "找ä¸åˆ°è¯¥å•ä½" + +#: lib/RT/CustomField_Overlay.pm:239 +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:111 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "无法从使用者数æ®åº“加载 %1。\\n" + +#: 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 "无法加载手续。" + +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:54 html/Edit/Global/UserRight/Add.html:23 html/Edit/Groups/Member:121 html/Edit/Groups/Members/Add.html:44 html/Edit/Rights/index.html:57 +#. ($Group) +#. ($ObjectGroup) +#. ($id) +msgid "Couldn't load group %1" +msgstr "无法加载手续 %1" + +#: lib/RT/Link_Overlay.pm:174 lib/RT/Link_Overlay.pm:183 lib/RT/Link_Overlay.pm:210 +msgid "Couldn't load link" +msgstr "无法加载链接。" + +#: html/Admin/Elements/EditCustomFields:146 html/Admin/Queues/People.html:120 +#. ($id) +msgid "Couldn't load queue" +msgstr "无法加载表å•" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 html/Edit/Global/GroupRight/Add.html:50 html/Edit/Global/GroupRight/index.html:81 html/Edit/Global/UserRight/Add.html:19 html/Edit/Global/UserRight/index.html:83 html/Edit/Rights/index.html:53 +#. ($Queue) +#. ($id) +msgid "Couldn't load queue %1" +msgstr "æ— æ³•åŠ è½½è¡¨å• %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "无法加载手续" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "无法加载模æ¿" + +#: html/Admin/Users/Prefs.html:78 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "无法加载该å使用者(%1)" + +#: html/SelfService/Display.html:108 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "æ— æ³•åŠ è½½ç”³è¯·å• '%1'" + +#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:97 html/Work/Preferences/Info:86 +msgid "Country" +msgstr "国家" + +#: html/Admin/Elements/CreateUserCalled:25 html/Edit/Elements/PopHeader:29 html/Edit/Global/GroupRight/Add.html:18 html/Ticket/Create.html:134 html/Ticket/Create.html:194 +msgid "Create" +msgstr "新增" + +#: html/Edit/Groups/MemberGroups/Add.html:17 +msgid "Create Subgroup:" +msgstr "新增å­ç¾¤ç»„:" + +#: etc/initialdata:145 +msgid "Create Tickets" +msgstr "新增申请å•" + +#: NOT FOUND IN SOURCE +msgid "Create User:" +msgstr "新增æˆå‘˜ï¼š" + +#: html/Admin/Elements/EditCustomField:74 +msgid "Create a CustomField" +msgstr "新增自订字段" + +#: html/Admin/Queues/CustomField.html:47 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "为 %1 è¡¨å•æ–°å¢žè‡ªè®¢å­—段" + +#: html/Admin/Global/CustomField.html:47 +msgid "Create a CustomField which 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:66 html/Admin/Groups/Modify.html:92 +msgid "Create a new group" +msgstr "新增群组" + +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +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:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +msgid "Create a new ticket" +msgstr "新增申请å•" + +#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:240 +msgid "Create a new user" +msgstr "新增使用者" + +#: NOT FOUND IN SOURCE +msgid "Create a new workflow" +msgstr "新增æµç¨‹" + +#: html/Admin/Queues/Modify.html:103 +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:58 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "为 %1 è¡¨å•æ–°å¢žæ‰‹ç»­" + +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +msgid "Create a template" +msgstr "新增模æ¿" + +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "æå‡ºç”³è¯·å•" + +#: html/Admin/Elements/ModifyWorkflow:206 html/Admin/Global/Workflow.html:69 html/Admin/Queues/Workflow.html:64 +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:147 +msgid "Create new tickets based on this scrip's template" +msgstr "便®æ­¤é¡¹æ‰‹ç»­å†…的模版,新增申请å•" + +#: html/SelfService/Create.html:77 +msgid "Create ticket" +msgstr "新增申请å•" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Create tickets in this queue" +msgstr "在此表å•中新增申请å•" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Create, delete and modify custom fields" +msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹è‡ªè®¢å­—段" + +#: lib/RT/Queue_Overlay.pm:67 +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:58 +msgid "Create, delete and modify the members of personal groups" +msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹ä»£ç†äººç¾¤ç»„" + +#: lib/RT/System.pm:59 +msgid "Create, delete and modify users" +msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹ä½¿ç”¨è€…" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "CreateTicket" +msgstr "新增申请å•" + +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:26 lib/RT/Ticket_Overlay.pm:1175 +msgid "Created" +msgstr "新增日" + +#: html/Admin/Elements/EditCustomField:87 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "自订字段 %1 新增æˆåŠŸ" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "æ¨¡æ¿ %1 新增æˆåŠŸ" + +#: html/Admin/Elements/ModifyWorkflow:221 +#. (loc( $WorkflowObj->Name() )) +msgid "Created workflow %1" +msgstr "æµç¨‹ %1 新增æˆåŠŸ" + +#: 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 "现有自订字段" + +#: html/Edit/Groups/MemberGroups/Add.html:14 +msgid "Current Groups:" +msgstr "现有群组列表:" + +#: html/Ticket/Elements/EditLinks:27 +msgid "Current Relationships" +msgstr "现有关系" + +#: html/Edit/Rights/index.html:19 +msgid "Current Rights:" +msgstr "现有æƒé™ï¼š" + +#: html/Admin/Elements/EditScrips:29 +msgid "Current Scrips" +msgstr "现有手续" + +#: html/Work/Tickets/Create.html:48 html/Work/Tickets/Elements/ShowBasics:39 +msgid "Current Status" +msgstr "ç›®å‰çжæ€" + +#: NOT FOUND IN SOURCE +msgid "Current Templates" +msgstr "现有模æ¿" + +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +msgid "Current members" +msgstr "现有æˆå‘˜" + +#: html/Admin/Elements/SelectRights:28 +msgid "Current rights" +msgstr "现有æƒé™" + +#: html/Search/Listing.html:70 html/Work/Search/index.html:42 +msgid "Current search criteria" +msgstr "现有查询æ¡ä»¶" + +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +msgid "Current watchers" +msgstr "现有视察员" + +#: html/Admin/Global/CustomField.html:54 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "自订字段 #%1" + +#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:18 html/Ticket/Elements/ShowSummary:35 +msgid "Custom Fields" +msgstr "自订字段" + +#: NOT FOUND IN SOURCE +msgid "Custom Fields which apply to all queues" +msgstr "适用于所有表å•的自订字段" + +#: html/Admin/Elements/EditScrip:72 html/Edit/Global/Scrip/Top:69 +msgid "Custom action cleanup code" +msgstr "åŠ¨ä½œåŽæ‰§è¡Œç¨‹åº" + +#: html/Admin/Elements/EditScrip:64 html/Edit/Global/Scrip/Top:62 +msgid "Custom action preparation code" +msgstr "åŠ¨ä½œå‰æ‰§è¡Œç¨‹åº" + +#: html/Admin/Elements/EditScrip:48 html/Edit/Global/Scrip/Top:35 html/Edit/Global/Scrip/Top:61 +msgid "Custom condition" +msgstr "自订æ¡ä»¶" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "自订字段 %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "自订字段 %1 已有值" + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "自订字段 %1 没有值" + +#: lib/RT/Ticket_Overlay.pm:3463 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "找ä¸åˆ°è‡ªè®¢å­—段 %1" + +#: html/Admin/Elements/EditCustomFields:196 +msgid "Custom field deleted" +msgstr "自订字段已删除" + +#: lib/RT/Ticket_Overlay.pm:3613 +msgid "Custom field not found" +msgstr "找ä¸åˆ°è‡ªè®¢å­—段" + +#: lib/RT/CustomField_Overlay.pm:349 +#. ($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:249 +msgid "Custom field value could not be deleted" +msgstr "无法删除自订字段值" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Custom field value could not be found" +msgstr "找ä¸åˆ°è‡ªè®¢å­—段值" + +#: lib/RT/CustomField_Overlay.pm:247 lib/RT/CustomField_Overlay.pm:357 +msgid "Custom field value deleted" +msgstr "自订字段值删除æˆåŠŸ" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:90 lib/RT/Transaction_Overlay.pm:548 +msgid "CustomField" +msgstr "自订字段" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "æ•°æ®é”™è¯¯" + +#: NOT FOUND IN SOURCE +msgid "Date of Departure" +msgstr "å‡ºå‘æ—¥æœŸ" + +#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:14 +msgid "Dates" +msgstr "日期" + +#: NOT FOUND IN SOURCE +msgid "Dec" +msgstr "å二月" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "12" + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "å二月" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "预设自动å“应模æ¿" + +#: etc/initialdata:225 +msgid "Default Autoresponse template" +msgstr "预设自动å“应模æ¿" + +#: etc/initialdata:304 +msgid "Default admin comment template" +msgstr "预设管ç†å‘˜è¯„论模æ¿" + +#: etc/initialdata:262 +msgid "Default admin correspondence template" +msgstr "预设管ç†å‘˜å›žå¤æ¨¡æ¿" + +#: etc/initialdata:283 +msgid "Default correspondence template" +msgstr "é¢„è®¾å›žå¤æ¨¡æ¿" + +#: etc/initialdata:240 +msgid "Default transaction template" +msgstr "预设更动模æ¿" + +#: lib/RT/Transaction_Overlay.pm:643 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "预设:%1/%2 已自 %3 改为 %4" + +#: html/User/Delegation.html:24 html/User/Delegation.html:27 +msgid "Delegate rights" +msgstr "代表团æƒé™" + +#: lib/RT/System.pm:62 +msgid "Delegate specific rights which have been granted to you." +msgstr "将拥有的æƒé™å§”托他人代ç†" + +#: lib/RT/System.pm:62 +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 "代ç†è¡¨å•ç§ç±»" + +#: html/Edit/Users/index.html:125 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:39 html/Work/Overview/Info:28 +msgid "Delegates" +msgstr "代ç†äºº" + +#: NOT FOUND IN SOURCE +msgid "Delegates Enabled Status" +msgstr "ä»£ç†æ¿€æ´»çжæ€" + +#: html/Work/Delegates/Info:18 html/Work/Overview/Info:18 +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 "代ç†äººè®¾å®š" + +#: html/Work/Delegates/Info:46 html/Work/Delegates/List:11 html/Work/Overview/Info:39 +msgid "Delegates Status" +msgstr "代ç†çжæ€" + +#: html/User/Elements/Tabs:37 +msgid "Delegation" +msgstr "代ç†äººæƒé™" + +#: NOT FOUND IN SOURCE +msgid "Delegation Groups" +msgstr "代ç†äººç¾¤ç»„" + +#: NOT FOUND IN SOURCE +msgid "Delegation Rights" +msgstr "代ç†äººæƒé™" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:113 html/Edit/Elements/104Buttons:73 html/Work/Search/index.html:48 html/Work/Search/index.html:48 +msgid "Delete" +msgstr "删除" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Delete tickets" +msgstr "删除申请å•" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "DeleteTicket" +msgstr "删除申请å•" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "删除此对象å¯èƒ½ç ´åå‚考完整性" + +#: lib/RT/Queue_Overlay.pm:293 +msgid "Deleting this object would break referential integrity" +msgstr "删除此对象å¯èƒ½ç ´åå‚考完整性" + +#: lib/RT/User_Overlay.pm:497 +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:44 html/Work/Approvals/Elements/Approve:32 +msgid "Deny" +msgstr "驳回" + +#: NOT FOUND IN SOURCE +msgid "Department" +msgstr "部门" + +#: html/Edit/Global/UserRight/List:12 html/Edit/Global/UserRight/Top:13 html/Edit/Users/List:10 html/Edit/Users/Top:12 +msgid "Department ID" +msgstr "部门代ç " + +#: html/Edit/Global/UserRight/List:11 html/Edit/Global/UserRight/Top:49 html/Edit/Users/List:9 html/Edit/Users/Top:48 html/Work/Delegates/Info:78 html/Work/Overview/Info:60 +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/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:122 html/Ticket/Elements/EditLinks:46 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 html/Work/Search/BulkLinks:10 +msgid "Depended on by" +msgstr "å¯æŽ¥ç»­å¤„ç†çš„申请å•" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "附属性:\\n" + +#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:179 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:118 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 html/Work/Search/BulkLinks:6 +msgid "Depends on" +msgstr "需先处ç†" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "需先处ç†" + +#: html/Elements/SelectSortOrder:34 +msgid "Descending" +msgstr "递å‡" + +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +msgid "Describe the issue below" +msgstr "在以下字段æè¿°ä¸»é¢˜" + +#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Elements/ModifyTemplateAsWorkflow:192 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Edit/Global/Workflow/Action:14 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 html/Work/Preferences/Info:98 +msgid "Description" +msgstr "æè¿°" + +#: NOT FOUND IN SOURCE +msgid "Description of Responsibility" +msgstr "ç»åŠžä¸šåŠ¡è¯´æ˜Ž" + +#: NOT FOUND IN SOURCE +msgid "Description:" +msgstr "æè¿°ï¼š" + +#: html/Work/Tickets/Create.html:108 html/Work/Tickets/Elements/EditCustomFields:39 html/Work/Tickets/Elements/ShowCustomFields:41 +msgid "Details" +msgstr "细节" + +#: NOT FOUND IN SOURCE +msgid "Direct" +msgstr "直接" + +#: html/Edit/Users/Info:31 +msgid "Disability" +msgstr "残障身分" + +#: html/Edit/Users/Info:29 +msgid "Disability Type" +msgstr "残障类别" + +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:70 html/Edit/Queues/List:13 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 +msgid "Disabled" +msgstr "åœç”¨" + +#: html/Ticket/Elements/Tabs:84 +msgid "Display" +msgstr "显示内容" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "Display Access Control List" +msgstr "显示æƒé™æŽ§åˆ¶æ¸…å•" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "Display Scrip templates for this queue" +msgstr "显示此表å•的模æ¿" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "Display Scrips for this queue" +msgstr "显示此表å•的手续" + +#: html/Ticket/Elements/ShowHistory:34 +msgid "Display mode" +msgstr "显示模å¼" + +#: NOT FOUND IN SOURCE +msgid "Display ticket #%1" +msgstr "显示第%1å·ç”³è¯·å•" + +#: lib/RT/System.pm:53 +msgid "Do anything and everything" +msgstr "å…许一切æ“作" + +#: html/Elements/Refresh:29 +msgid "Don't refresh this page." +msgstr "䏿›´æ–°æ­¤é¡µé¢ã€‚" + +#: html/Search/Elements/PickRestriction:113 html/Work/Search/PickRestriction:95 +msgid "Don't show search results" +msgstr "䏿˜¾ç¤ºæŸ¥è¯¢ç»“æžœ" + +#: html/Edit/Elements/Page:19 html/Edit/Elements/Page:21 +msgid "Down" +msgstr "下一页" + +#: html/Ticket/Elements/ShowTransaction:92 +msgid "Download" +msgstr "下载" + +#: NOT FOUND IN SOURCE +msgid "Dr." +msgstr "åšå£«" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:42 lib/RT/Ticket_Overlay.pm:1179 +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'" + +#: bin/rt-commit-handler:753 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "æ— æ³•åŠ è½½ç”³è¯·å• '%1':%2.\\n" + +#: html/Work/Tickets/Update.html:46 +msgid "Edit" +msgstr "编辑" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:132 +msgid "Edit Conditions" +msgstr "编辑å‰ç½®æ¡ä»¶" + +#: html/Admin/Queues/CustomFields.html:44 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "编辑 %1 的自订字段" + +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for queue %1" +msgstr "ç¼–è¾‘è¡¨å• %1 的自订字段" + +#: html/Search/Bulk.html:143 html/Ticket/ModifyLinks.html:35 html/Work/Search/Bulk.html:93 +msgid "Edit Relationships" +msgstr "编辑申请å•关系" + +#: html/Edit/Groups/MemberGroups/Add.html:3 html/Edit/Groups/MemberGroups/index.html:22 +msgid "Edit Subgroups" +msgstr "新增/维护å­ç¾¤ç»„" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "ç¼–è¾‘è¡¨å• %1 的模æ¿" + +#: html/Admin/Queues/Workflows.html:42 +#. ($QueueObj->Name) +msgid "Edit Workflows for queue %1" +msgstr "ç¼–è¾‘è¡¨å• %1 çš„æµç¨‹" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "编辑关键è¯" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "编辑手续" + +#: html/Admin/Global/index.html:45 +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 çš„æµç¨‹" + +#: html/Admin/Elements/ModifyQueue:24 html/Admin/Queues/Modify.html:118 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "ç¼–è¾‘è¡¨å• %1 的设定" + +#: html/Admin/Elements/ModifyUser:24 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "编辑使用者 %1 的设定" + +#: html/Admin/Elements/EditCustomField:90 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "编辑自订字段 %1" + +#: html/Admin/Groups/Members.html:31 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "编辑群组 %1 çš„æˆå‘˜ä¿¡æ¯" + +#: html/User/Groups/Members.html:128 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "编辑代ç†äººç¾¤ç»„ %1 çš„æˆå‘˜ä¿¡æ¯" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "ç¼–è¾‘æ¨¡æ¿ %1" + +#: html/Admin/Elements/ModifyWorkflow:238 +#. (loc( $WorkflowObj->Name() )) +msgid "Editing workflow %1" +msgstr "编辑æµç¨‹ %1" + +#: NOT FOUND IN SOURCE +msgid "Education" +msgstr "最高学历" + +#: NOT FOUND IN SOURCE +msgid "EffectiveId" +msgstr "有效编å·" + +#: lib/RT/Ticket_Overlay.pm:2644 lib/RT/Ticket_Overlay.pm:2712 +msgid "Either base or target must be specified" +msgstr "éœ€è¦æŒ‡å®šèµ·å§‹ç”³è¯·å•或目的申请å•" + +#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:41 html/Work/Delegates/Info:96 html/Work/Overview/Info:78 html/Work/Preferences/Info:16 +msgid "Email" +msgstr "电å­é‚®ä»¶ä¿¡ç®±" + +#: lib/RT/User_Overlay.pm:247 +msgid "Email address in use" +msgstr "此电å­é‚®ä»¶ä¿¡ç®±å·²è¢«ä½¿ç”¨" + +#: html/Admin/Elements/ModifyUser:41 +msgid "EmailAddress" +msgstr "电å­é‚®ä»¶ä¿¡ç®±åœ°å€" + +#: html/Admin/Elements/ModifyUser:53 +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/Elements/EditCustomField:50 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "å¯ç”¨(å–æ¶ˆå‹¾é€‰å°†åœç”¨æ­¤è‡ªè®¢å­—段)" + +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "å¯ç”¨(å–æ¶ˆå‹¾é€‰å°†åœç”¨æ­¤ç¾¤ç»„)" + +#: html/Admin/Queues/Modify.html:83 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "å¯ç”¨(å–æ¶ˆå‹¾é€‰å°†åœç”¨æ­¤è¡¨å•)" + +#: html/Admin/Elements/EditCustomFields:98 +msgid "Enabled Custom Fields" +msgstr "å·²å¯ç”¨çš„自订字段" + +#: html/Edit/Queues/Basic/Top:75 html/Edit/Queues/List:15 +msgid "Enabled Date" +msgstr "å¯ç”¨æ—¥æœŸ" + +#: NOT FOUND IN SOURCE +msgid "Enabled Date:" +msgstr "激活日期:" + +#: html/Admin/Queues/index.html:55 +msgid "Enabled Queues" +msgstr "å·²å¯ç”¨çš„表å•" + +#: html/Edit/Queues/Basic/Top:66 html/Edit/Queues/List:11 +msgid "Enabled Status" +msgstr "å¯ç”¨çжæ€" + +#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:282 html/User/Groups/Modify.html:116 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "å¯ç”¨çŠ¶æ€ %1" + +#: html/Edit/Users/Info:35 +msgid "End of Trial" +msgstr "试用期满日" + +#: NOT FOUND IN SOURCE +msgid "English Name" +msgstr "英文姓å" + +#: lib/RT/CustomField_Overlay.pm:427 +msgid "Enter multiple values" +msgstr "键入多é‡é¡¹ç›®" + +#: html/Edit/Users/Search.html:15 +msgid "Enter one or more conditions below to search for users" +msgstr "输入下列å•一或å¤å¼æ¡ä»¶ï¼ŒæŸ¥è¯¢ç”¨æˆ·æ•°æ®" + +#: lib/RT/CustomField_Overlay.pm:424 +msgid "Enter one value" +msgstr "键入å•一项目" + +#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:111 html/Work/Search/Bulk.html:95 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "输入申请å•å¯é“¾æŽ¥åˆ°çš„申请å•ç¼–å·æˆ–网å€ã€‚以空白隔开。" + +#: lib/RT/CustomField_Vendor.pm:20 +msgid "EntryBoolean" +msgstr "是éžå¡«è¡¨" + +#: lib/RT/CustomField_Vendor.pm:17 +msgid "EntryDate" +msgstr "日期填表" + +#: NOT FOUND IN SOURCE +msgid "EntryExternal" +msgstr "系统填表" + +#: lib/RT/CustomField_Vendor.pm:16 +msgid "EntryFreeform" +msgstr "输入填表" + +#: NOT FOUND IN SOURCE +msgid "EntryMultiple" +msgstr "多选填表" + +#: lib/RT/CustomField_Vendor.pm:19 +msgid "EntryNumber" +msgstr "数值填表" + +#: lib/RT/CustomField_Vendor.pm:15 +msgid "EntrySelect" +msgstr "å•选填表" + +#: lib/RT/CustomField_Vendor.pm:18 +msgid "EntryTime" +msgstr "时间填表" + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +msgid "Error" +msgstr "错误" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "新增视察员失败" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "表å•->æ–°å¢žè§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "表å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" + +#: lib/RT/Ticket_Overlay.pm:1364 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "申请å•->æ–°å¢žè§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" + +#: lib/RT/Ticket_Overlay.pm:1540 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "申请å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" + +#: etc/initialdata:38 +msgid "Everyone" +msgstr "所有人" + +#: bin/rt-crontool:193 +msgid "Example:" +msgstr "范例:" + +#: html/Edit/Elements/104Buttons:77 +msgid "Export" +msgstr "汇出" + +#: html/Admin/Elements/ModifyUser:63 +msgid "ExternalAuthId" +msgstr "外部认è¯å¸å·" + +#: html/Admin/Elements/ModifyUser:57 +msgid "ExternalContactInfoId" +msgstr "外部è”络方å¼å¸å·" + +#: html/Edit/Global/Basic/Top:64 +msgid "ExternalDatabaseDSN" +msgstr "外部数æ®åº“连结字符串" + +#: html/Edit/Global/Basic/Top:68 +msgid "ExternalDatabasePass" +msgstr "外部数æ®åº“å£ä»¤" + +#: html/Edit/Global/Basic/Top:66 +msgid "ExternalDatabaseUser" +msgstr "外部数æ®åº“用户" + +#: html/Edit/Global/Basic/Top:62 +msgid "ExternalURL" +msgstr "外部接å£ç½‘å€" + +#: html/Admin/Users/Modify.html:72 +msgid "Extra info" +msgstr "备注" + +#: lib/RT/User_Overlay.pm:361 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "找ä¸åˆ°ã€Œå†…部æˆå‘˜ã€è™šæ‹Ÿç¾¤ç»„的使用者。" + +#: lib/RT/User_Overlay.pm:368 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "找ä¸åˆ°ã€Œéžå†…部æˆå‘˜ã€è™šæ‹Ÿç¾¤ç»„的使用者。" + +#: bin/rt-crontool:137 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "æ— æ³•åŠ è½½æ¨¡å— %1. (%2)" + +#: NOT FOUND IN SOURCE +msgid "Feb" +msgstr "二月" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "02" + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "二月" + +#: NOT FOUND IN SOURCE +msgid "Female" +msgstr "女" + +#: html/Edit/Global/CustomField/List:5 html/Edit/Global/CustomField/Top:9 +msgid "Field Attribute" +msgstr "字段属性" + +#: html/Edit/Global/CustomField/Info:14 +msgid "Field Content:" +msgstr "字段内容:" + +#: html/Edit/Global/CustomField/List:7 html/Edit/Global/CustomField/Top:21 +msgid "Field Description" +msgstr "字段æè¿°" + +#: html/Edit/Global/CustomField/List:6 html/Edit/Global/CustomField/Top:15 +msgid "Field Name" +msgstr "字段åç§°" + +#: html/Edit/Elements/PickUsers:52 html/Edit/Users/Add.html:47 +msgid "Filter" +msgstr "筛选" + +#: html/Edit/Elements/PickUsers:6 html/Edit/Users/Add.html:7 html/Work/Tickets/Cc:4 +msgid "Filter people" +msgstr "对象筛选" + +#: html/Edit/Elements/PickUsers:68 html/Edit/Users/Add.html:63 html/Work/Tickets/Cc:42 +msgid "Filtered list:" +msgstr "筛选列表:" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "最终" + +#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "最低顺ä½" + +#: lib/RT/Ticket_Overlay.pm:1170 +msgid "FinalPriority" +msgstr "最低顺ä½" + +#: NOT FOUND IN SOURCE +msgid "Financial Department:" +msgstr "财务部:" + +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +msgid "Find group whose" +msgstr "寻找群组的" + +#: NOT FOUND IN SOURCE +msgid "Find new/open tickets" +msgstr "寻找/å¼€å¯ç”³è¯·å•" + +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +msgid "Find people whose" +msgstr "寻找人员的" + +#: html/Search/Listing.html:107 html/Work/Search/index.html:88 +msgid "Find tickets" +msgstr "寻找申请å•" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:118 +msgid "Finish Approval" +msgstr "签核完毕" + +#: html/Ticket/Elements/Tabs:57 +msgid "First" +msgstr "第一项" + +#: html/Search/Listing.html:40 html/Work/Search/index.html:17 +msgid "First page" +msgstr "第一页" + +#: html/Edit/Global/Workflow/Owner.html:30 +msgid "First-" +msgstr "一" + +#: NOT FOUND IN SOURCE +msgid "First-level Admins" +msgstr "一阶主管" + +#: html/Edit/Users/Info:40 +msgid "First-level Users" +msgstr "一阶主管员工" + +#: NOT FOUND IN SOURCE +msgid "Fixed shift" +msgstr "固定ç­" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "甲 ä¹™ 丙" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "甲ï¼" + +#: html/Search/Bulk.html:86 html/Work/Search/Bulk.html:55 +msgid "Force change" +msgstr "强制更新" + +#: html/Work/Elements/104Header:89 +msgid "Form Processing" +msgstr "电å­è¡¨å•作业区" + +#: html/Search/Listing.html:105 html/Work/Search/index.html:86 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "找到 %1 张申请å•" + +#: lib/RT/Interface/Web.pm:904 +msgid "Found Object" +msgstr "已找到对象" + +#: html/Edit/Global/Workflow/Owner.html:33 +msgid "Fourth-" +msgstr "å››" + +#: html/Admin/Elements/ModifyUser:43 +msgid "FreeformContactInfo" +msgstr "è”络方å¼" + +#: lib/RT/CustomField_Vendor.pm:11 +msgid "FreeformDate" +msgstr "日期输入" + +#: NOT FOUND IN SOURCE +msgid "FreeformExternal" +msgstr "系统字段" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformMultiple" +msgstr "多é‡è¾“å…¥" + +#: lib/RT/CustomField_Vendor.pm:13 +msgid "FreeformNumber" +msgstr "数值输入" + +#: lib/RT/CustomField_Vendor.pm:14 +msgid "FreeformPassword" +msgstr "å£ä»¤è¾“å…¥" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "FreeformSingle" +msgstr "å•一输入" + +#: lib/RT/CustomField_Vendor.pm:12 +msgid "FreeformTime" +msgstr "时间输入" + +#: NOT FOUND IN SOURCE +msgid "Fri" +msgstr "星期五" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "星期五" + +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +msgid "Full headers" +msgstr "完整标头档" + +#: NOT FOUND IN SOURCE +msgid "Gecos" +msgstr "登入å¸å·" + +#: html/Edit/Users/Info:26 +msgid "Gender" +msgstr "性别" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "å–å¾—ç›®å‰ä½¿ç”¨è€…çš„ pgp 签章\\n" + +#: lib/RT/Transaction_Overlay.pm:593 +#. ($New->Name) +msgid "Given to %1" +msgstr "交予 %1" + +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +msgid "Global" +msgstr "全域设定" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "全域关键è¯é€‰å–" + +#: html/Edit/Users/System:24 +msgid "Global Rights:" +msgstr "拥有全域æƒé™åˆ—表:" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "全域手续" + +#: html/Edit/Elements/Tab:38 +msgid "Global Setup" +msgstr "全域设定" + +#: html/Admin/Elements/SelectTemplate:37 html/Edit/Elements/SelectTemplate:11 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "全域模æ¿ï¼š%1" + +#: html/Admin/Elements/EditCustomFields:74 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:40 +msgid "Go!" +msgstr "执行" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "%1 çš„ pgp 签章是正确的\\n" + +#: html/Search/Listing.html:49 +msgid "Goto page" +msgstr "到页é¢" + +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 html/Work/Elements/104Header:49 +msgid "Goto ticket" +msgstr "跳到申请å•" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:224 +msgid "Grand" +msgstr "上" + +#: html/Ticket/Elements/AddWatchers:45 html/User/Elements/DelegateRights:77 +msgid "Group" +msgstr "群组" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "群组 %1 %2:%3" + +#: html/Edit/Global/GroupRight/List:5 html/Edit/Global/GroupRight/Top:20 html/Edit/Groups/List:7 +msgid "Group Description" +msgstr "群组æè¿°" + +#: NOT FOUND IN SOURCE +msgid "Group Management" +msgstr "群组管ç†" + +#: NOT FOUND IN SOURCE +msgid "Group Members" +msgstr "群组æˆå‘˜" + +#: html/Edit/Elements/PickUsers:28 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Delegates/Add.html:15 html/Work/Tickets/Cc:24 +msgid "Group Name" +msgstr "群组åç§°" + +#: NOT FOUND IN SOURCE +msgid "Group Name:" +msgstr "群组å称:" + +#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:23 html/Edit/Users/Group:11 html/Edit/Users/index.html:123 +msgid "Group Rights" +msgstr "群组æƒé™" + +#: NOT FOUND IN SOURCE +msgid "Group Rights:" +msgstr "拥有群组æƒé™åˆ—表:" + +#: html/Edit/Elements/Tab:34 +msgid "Group Setup" +msgstr "群组设定" + +#: html/Edit/Global/GroupRight/List:8 html/Edit/Global/GroupRight/Top:14 html/Edit/Groups/List:10 html/Edit/Groups/Top:15 +msgid "Group Status" +msgstr "群组状æ€" + +#: lib/RT/Group_Overlay.pm:964 +msgid "Group already has member" +msgstr "群组内已有此æˆå‘˜" + +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "无法新增群组" + +#: html/Admin/Groups/Modify.html:76 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "无法新增群组:%1" + +#: lib/RT/Group_Overlay.pm:496 +msgid "Group created" +msgstr "群组新增完毕" + +#: lib/RT/Group_Overlay.pm:1132 +msgid "Group has no such member" +msgstr "群组没有这个æˆå‘˜" + +#: lib/RT/Group_Overlay.pm:944 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1437 lib/RT/Ticket_Overlay.pm:1515 +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 with Queue Rights" +msgstr "æ‹¥æœ‰è¡¨å•æƒé™ç¾¤ç»„" + +#: html/Edit/Global/Workflow/Owner.html:70 +msgid "Group's" +msgstr "群组之" + +#: NOT FOUND IN SOURCE +msgid "Group:" +msgstr "群组:" + +#: 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/Edit/Global/GroupRight/Add.html:15 html/User/Groups/Members.html:66 +msgid "Groups" +msgstr "群组" + +#: lib/RT/Group_Overlay.pm:970 +msgid "Groups can't be members of their members" +msgstr "ä¸èƒ½å°†ç¾¤ç»„设为群组内æˆå‘˜" + +#: NOT FOUND IN SOURCE +msgid "Groups with Global Rights" +msgstr "拥有全域æƒé™ç¾¤ç»„" + +#: html/Edit/Global/GroupRight/List:6 html/Edit/Global/GroupRight/Top:22 html/Edit/Groups/List:8 +msgid "HRMSDefined" +msgstr "组织架构" + +#: html/Edit/Users/Info:32 +msgid "Health Insurance" +msgstr "å¥ä¿è¡¥åŠ©èº«ä»½" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +msgid "Hello!" +msgstr "å—¨ï¼" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "嗨,%1" + +#: html/Edit/Elements/104Top:27 +msgid "Help" +msgstr "辅助说明" + +#: NOT FOUND IN SOURCE +msgid "Help Desks" +msgstr "å„项业务窗å£" + +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:87 html/Work/Tickets/Elements/ShowHistory:8 +msgid "History" +msgstr "纪录" + +#: html/Admin/Elements/ModifyUser:67 +msgid "HomePhone" +msgstr "ä½å¤„电è¯" + +#: html/Edit/Elements/104Top:15 html/Edit/Elements/104Top:23 html/Edit/Elements/EDOMHeader:9 html/Elements/Tabs:43 +msgid "Homepage" +msgstr "主页" + +#: NOT FOUND IN SOURCE +msgid "Hotel Expense" +msgstr "ä½å®¿è´¹" + +#: lib/RT/Base.pm:73 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "我有 %quant(%1,ä»½å›ºä½“æ…æ‹Œå™¨)。" + +#: NOT FOUND IN SOURCE +msgid "ID Number" +msgstr "身分è¯å·" + +#: NOT FOUND IN SOURCE +msgid "ID Type" +msgstr "身分类别" + +#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "ç¼–å·" + +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 html/Work/Preferences/Info:14 +msgid "Identity" +msgstr "身份" + +#: etc/initialdata:439 etc/upgrade/2.1.71:86 html/Edit/Elements/CreateApprovalsQueue:58 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "若签核å•é­åˆ°é©³å›žï¼Œåˆ™è¿žå¸¦é©³å›žåŽŸç”³è¯·å•,并删除其它相关的待签核事项" + +#: bin/rt-crontool:189 +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: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 "若您已更新以上数æ®ï¼Œè¯·è®°å¾—按一下" + +#: lib/RT/Interface/Web.pm:896 +msgid "Illegal value for %1" +msgstr "%1 的值错误" + +#: lib/RT/Interface/Web.pm:899 +msgid "Immutable field" +msgstr "此字段值ä¸å¯æ›´åЍ" + +#: html/Edit/Elements/104Buttons:76 html/Edit/Global/Workflow/Import.html:2 +msgid "Import" +msgstr "汇入" + +#: html/Admin/Elements/EditCustomFields:73 +msgid "Include disabled custom fields in listing." +msgstr "列出åœç”¨çš„自订字段" + +#: html/Admin/Queues/index.html:42 html/Edit/Queues/index.html:38 +msgid "Include disabled queues in listing." +msgstr "列出åœç”¨çš„表å•" + +#: html/Admin/Users/index.html:46 html/Edit/Users/Search.html:62 +msgid "Include disabled users in search." +msgstr "列出åœç”¨çš„使用者" + +#: html/Edit/Users/Info:37 +msgid "Indirect Employee" +msgstr "直接/间接员工" + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "åˆå§‹ä¼˜å…ˆæƒ" + +#: lib/RT/Ticket_Overlay.pm:1169 lib/RT/Ticket_Overlay.pm:1171 +msgid "InitialPriority" +msgstr "åˆå§‹ä¼˜å…ˆæƒ" + +#: lib/RT/ScripAction_Overlay.pm:104 +msgid "Input error" +msgstr "输入错误" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "登记æˆåŠŸ" + +#: lib/RT/Ticket_Overlay.pm:3835 +msgid "Internal Error" +msgstr "内部错误" + +#: lib/RT/Record.pm:142 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "内部错误:%1" + +#: lib/RT/Group_Overlay.pm:643 +msgid "Invalid Group Type" +msgstr "错误的群组类别" + +#: lib/RT/Principal_Overlay.pm:126 +msgid "Invalid Right" +msgstr "错误的æƒé™" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "错误的类型" + +#: lib/RT/Interface/Web.pm:901 +msgid "Invalid data" +msgstr "错误的数æ®" + +#: lib/RT/Ticket_Overlay.pm:439 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "错误的承办人。改为预设承办人「nobodyã€ã€‚" + +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:250 +msgid "Invalid queue" +msgstr "错误的表å•" + +#: 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 "错误的æƒé™" + +#: lib/RT/Record.pm:117 +#. ($key) +msgid "Invalid value for %1" +msgstr "%1 的值错误" + +#: lib/RT/Ticket_Overlay.pm:3470 +msgid "Invalid value for custom field" +msgstr "错误的自订字段值" + +#: lib/RT/Ticket_Overlay.pm:346 +msgid "Invalid value for status" +msgstr "错误的状æ€å€¼" + +#: NOT FOUND IN SOURCE +msgid "IssueStatement" +msgstr "é€å‡ºé™ˆè¿°" + +#: bin/rt-crontool:190 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "请ç»å¯¹ä¸è¦è®©æœªå…·æƒé™çš„使用者执行此工具程åºã€‚" + +#: bin/rt-crontool:191 +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:162 +msgid "It takes several arguments:" +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:411 +msgid "Jan." +msgstr "01" + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "一月" + +#: NOT FOUND IN SOURCE +msgid "Job" +msgstr "èŒç§°" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Join or leave this group" +msgstr "加入或离开此群组" + +#: NOT FOUND IN SOURCE +msgid "Jul" +msgstr "七月" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "01" + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "七月" + +#: html/Ticket/Elements/Tabs:98 +msgid "Jumbo" +msgstr "全部信æ¯" + +#: NOT FOUND IN SOURCE +msgid "Jun" +msgstr "六月" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "06." + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "六月" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "关键è¯" + +#: lib/RT/CustomField_Vendor.pm:21 +msgid "LabelURL" +msgstr "é“¾æŽ¥å·æ ‡" + +#: html/Admin/Elements/ModifyUser:51 +msgid "Lang" +msgstr "使用语言" + +#: html/Ticket/Elements/Tabs:72 +msgid "Last" +msgstr "上次更新" + +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:38 +msgid "Last Contact" +msgstr "上次è”络" + +#: html/Elements/SelectDateType:28 +msgid "Last Contacted" +msgstr "上次è”络日期" + +#: html/Search/Elements/TicketHeader:40 html/Work/Search/TicketHeader:19 +msgid "Last Notified" +msgstr "上次通知" + +#: html/Elements/SelectDateType:29 +msgid "Last Updated" +msgstr "上次更新" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "上次更新" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "剩馀时间" + +#: html/Admin/Users/Modify.html:82 +msgid "Let this user access RT" +msgstr "å…许这å使用者登入" + +#: html/Admin/Users/Modify.html:86 +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/Work/Queues/Select.html:4 +msgid "Link a Queue" +msgstr "申请表å•连结" + +#: lib/RT/Ticket_Overlay.pm:2726 +msgid "Link already exists" +msgstr "此链接已存在" + +#: lib/RT/Ticket_Overlay.pm:2738 +msgid "Link could not be created" +msgstr "无法新增链接" + +#: lib/RT/Ticket_Overlay.pm:2746 lib/RT/Ticket_Overlay.pm:2756 +#. ($TransString) +msgid "Link created (%1)" +msgstr "链接(%1)新增完毕" + +#: lib/RT/Ticket_Overlay.pm:2667 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "链接(%1)删除完毕" + +#: lib/RT/Ticket_Overlay.pm:2673 +msgid "Link not found" +msgstr "找ä¸åˆ°é“¾æŽ¥" + +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "é“¾æŽ¥ç”³è¯·å• #%1" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "é“¾æŽ¥ç”³è¯·å• %1" + +#: html/Ticket/Elements/Tabs:96 +msgid "Links" +msgstr "链接" + +#: html/Edit/Users/Search.html:11 +msgid "List All Users" +msgstr "列出所有用户数æ®" + +#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:84 html/Work/Preferences/Info:72 +msgid "Location" +msgstr "ä½ç½®" + +#: lib/RT.pm:162 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "登入目录 %1 找ä¸åˆ°æˆ–无法写入\\n。无法执行 RT。" + +#: html/Edit/Global/Basic/Top:52 +msgid "LogToFile" +msgstr "纪录等级" + +#: html/Edit/Global/Basic/Top:54 +msgid "LogToFileNamed" +msgstr "纪录档å" + +#: html/Elements/Header:56 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "使用者:%1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +msgid "Login" +msgstr "登入" + +#: html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:29 html/Elements/Header:53 +msgid "Logout" +msgstr "注销" + +#: NOT FOUND IN SOURCE +msgid "Long-term contractor" +msgstr "长期契约员工" + +#: html/Search/Bulk.html:85 html/Work/Search/Bulk.html:54 +msgid "Make Owner" +msgstr "新增承办人" + +#: html/Search/Bulk.html:109 html/Work/Search/Bulk.html:63 +msgid "Make Status" +msgstr "新增现况" + +#: html/Search/Bulk.html:117 html/Work/Search/Bulk.html:75 +msgid "Make date Due" +msgstr "新增到期日" + +#: html/Search/Bulk.html:119 html/Work/Search/Bulk.html:78 +msgid "Make date Resolved" +msgstr "新增解决日期" + +#: html/Search/Bulk.html:113 html/Work/Search/Bulk.html:69 +msgid "Make date Started" +msgstr "新增实际起始日期" + +#: html/Search/Bulk.html:111 html/Work/Search/Bulk.html:66 +msgid "Make date Starts" +msgstr "新增应起始日期" + +#: html/Search/Bulk.html:115 html/Work/Search/Bulk.html:72 +msgid "Make date Told" +msgstr "新增报告日期" + +#: html/Search/Bulk.html:105 html/Work/Search/Bulk.html:57 +msgid "Make priority" +msgstr "新增优先顺ä½" + +#: html/Search/Bulk.html:107 html/Work/Search/Bulk.html:60 +msgid "Make queue" +msgstr "新增表å•" + +#: html/Search/Bulk.html:103 html/Work/Search/Bulk.html:59 +msgid "Make subject" +msgstr "新增主题" + +#: NOT FOUND IN SOURCE +msgid "Male" +msgstr "ç”·" + +#: html/Admin/index.html:32 +msgid "Manage groups and group membership" +msgstr "管ç†ç¾¤ç»„åŠæ‰€å±žæˆå‘˜" + +#: html/Admin/index.html:38 +msgid "Manage properties and configuration which apply to all queues" +msgstr "管ç†é€‚用于所有表å•的属性与设定" + +#: html/Admin/index.html:35 +msgid "Manage queues and queue-specific properties" +msgstr "管ç†å„表å•åŠç›¸å…³å±žæ€§" + +#: html/Admin/index.html:29 +msgid "Manage users and passwords" +msgstr "管ç†ä½¿ç”¨è€…与å£ä»¤" + +#: NOT FOUND IN SOURCE +msgid "Manager" +msgstr "ç»ç†" + +#: NOT FOUND IN SOURCE +msgid "Mar" +msgstr "三月" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "03" + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "三月" + +#: NOT FOUND IN SOURCE +msgid "Marketing Department" +msgstr "行销部" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "五月" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "05" + +#: lib/RT/Group_Overlay.pm:981 +msgid "Member added" +msgstr "新增æˆå‘˜å®Œæ¯•" + +#: lib/RT/Group_Overlay.pm:1139 +msgid "Member deleted" +msgstr "æˆå‘˜å·²åˆ é™¤" + +#: lib/RT/Group_Overlay.pm:1143 +msgid "Member not deleted" +msgstr "æˆå‘˜æœªè¢«åˆ é™¤" + +#: html/Elements/SelectLinkType:25 +msgid "Member of" +msgstr "隶属于" + +#: html/Work/Preferences/index.html:20 +msgid "Member since" +msgstr "注册日期" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "隶属于" + +#: html/Admin/Elements/GroupTabs:41 html/Admin/Elements/ModifyTemplateAsWorkflow:232 html/User/Elements/GroupTabs:41 +msgid "Members" +msgstr "æˆå‘˜" + +#: lib/RT/Ticket_Overlay.pm:2913 +msgid "Merge Successful" +msgstr "æ•´åˆå®Œæ¯•" + +#: lib/RT/Ticket_Overlay.pm:2833 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "æ•´åˆå¤±è´¥ã€‚无法设定 EffectiveId" + +#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:114 html/Work/Search/BulkLinks:2 +msgid "Merge into" +msgstr "æ•´åˆè¿›" + +#: html/Search/Bulk.html:137 html/Ticket/Update.html:100 +msgid "Message" +msgstr "讯æ¯" + +#: NOT FOUND IN SOURCE +msgid "Misc. Expense" +msgstr "æ‚è´¹" + +#: lib/RT/Interface/Web.pm:903 +msgid "Missing a primary key?: %1" +msgstr "缺少主键值?(%1)" + +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:53 html/Work/Preferences/Info:33 +msgid "Mobile" +msgstr "行动电è¯" + +#: html/Admin/Elements/ModifyUser:71 +msgid "MobilePhone" +msgstr "行动电è¯" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Modify Access Control List" +msgstr "更改æƒé™æŽ§åˆ¶æ¸…å•" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +msgid "Modify Custom Fields which apply to all queues" +msgstr "更改适用于所有表å•的自订字段" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Modify Scrip templates for this queue" +msgstr "更改此表å•的模æ¿" + +#: lib/RT/Queue_Overlay.pm:75 +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" + +#: NOT FOUND IN SOURCE +msgid "Modify Workflow" +msgstr "更改æµç¨‹" + +#: html/Admin/Queues/CustomField.html:44 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "更改 %1 表å•内的自订字段" + +#: html/Admin/Global/CustomField.html:52 +msgid "Modify a CustomField which applies to all queues" +msgstr "更改适用于所有表å•的自订字段" + +#: html/Admin/Queues/Scrip.html:53 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "更改 %1 表å•内的手续" + +#: html/Admin/Global/Scrip.html:47 +msgid "Modify a scrip which applies to all queues" +msgstr "更改适用于所有表å•的手续" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "更改 # %1 的日期" + +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "更改 #%1 的日期" + +#: html/Ticket/ModifyDates.html:34 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "æ›´æ”¹ç”³è¯·å• # %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 "更改全域设定的群组æƒé™" + +#: html/Admin/Global/GroupRights.html:32 +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:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +msgid "Modify global user rights" +msgstr "更改全域设定的使用者æƒé™" + +#: html/Admin/Global/UserRights.html:32 +msgid "Modify global user rights." +msgstr "更改全域设定的使用者æƒé™ã€‚" + +#: lib/RT/Group_Overlay.pm:145 +msgid "Modify group metadata or delete group" +msgstr "更改群组数æ®åŠåˆ é™¤ç¾¤ç»„" + +#: 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 "更改 %1 的群组æƒé™" + +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "æ›´æ”¹è¡¨å• %1 的群组æƒé™" + +#: lib/RT/Group_Overlay.pm:147 +msgid "Modify membership roster for this group" +msgstr "更改此群组的æˆå‘˜åå•" + +#: lib/RT/System.pm:60 +msgid "Modify one's own RT account" +msgstr "更改个人的å¸å·ä¿¡æ¯" + +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "æ›´æ”¹é“¾æŽ¥åˆ°è¡¨å• %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 "æ›´æ”¹ç”³è¯·å• #%1 链接到的人员" + +#: html/Admin/Queues/Scrips.html:45 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "æ›´æ”¹è¡¨å• %1 的手续" + +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +msgid "Modify scrips which apply to all queues" +msgstr "更改适用于所有表å•的手续" + +#: 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 "æ›´æ”¹æ¨¡æ¿ %1" + +#: html/Admin/Global/Templates.html:43 +msgid "Modify templates which apply to all queues" +msgstr "更改适用于所有表å•的模æ¿" + +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "更改群组 %1" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify the queue watchers" +msgstr "更改表å•视察员" + +#: html/Admin/Users/Modify.html:235 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "更改使用者 %1" + +#: html/Ticket/ModifyAll.html:36 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "æ›´æ”¹ç”³è¯·å• # %1" + +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "æ›´æ”¹ç”³è¯·å• # %1" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Modify tickets" +msgstr "更改申请å•" + +#: 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 "更改群组 %1 的使用者æƒé™" + +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "æ›´æ”¹è¡¨å• %1 的使用者æƒé™" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "更改 '%1' 的视察员" + +#: html/Admin/Global/Workflow.html:25 html/Admin/Global/Workflow.html:30 html/Admin/Global/Workflow.html:81 html/Admin/Queues/Workflow.html:77 +#. (loc($WorkflowObj->Name())) +#. ($WorkflowObj->id) +msgid "Modify workflow %1" +msgstr "更改æµç¨‹ %1" + +#: html/Admin/Global/Workflows.html:44 +msgid "Modify workflows which apply to all queues" +msgstr "更改适用于所有表å•çš„æµç¨‹" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ModifyACL" +msgstr "更改æƒé™æ¸…å•" + +#: lib/RT/Group_Overlay.pm:148 +msgid "ModifyOwnMembership" +msgstr "更改自己是å¦å±žäºŽæŸç¾¤ç»„" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyQueueWatchers" +msgstr "更改表å•视察员" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ModifyScrips" +msgstr "更改手续" + +#: lib/RT/System.pm:60 +msgid "ModifySelf" +msgstr "更改个人å¸å·" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "ModifyTemplate" +msgstr "更改模æ¿" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "ModifyTicket" +msgstr "更改申请å•" + +#: NOT FOUND IN SOURCE +msgid "Mon" +msgstr "星期一" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "星期一" + +#: html/Ticket/Elements/ShowRequestor:41 +#. ($name) +msgid "More about %1" +msgstr "关于 %1 的进一步信æ¯" + +#: NOT FOUND IN SOURCE +msgid "Morning Shift" +msgstr "æ—©ç­" + +#: html/Edit/Elements/ListButtons:16 +msgid "Move All" +msgstr "全移" + +#: html/Admin/Elements/EditCustomFields:60 +msgid "Move down" +msgstr "下移" + +#: html/Admin/Elements/EditCustomFields:52 +msgid "Move up" +msgstr "上移" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Multiple" +msgstr "多é‡" + +#: lib/RT/User_Overlay.pm:238 +msgid "Must specify 'Name' attribute" +msgstr "必须指定 'Name' 的属性" + +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "我的 %1 申请å•" + +#: html/Work/Elements/Tab:35 +msgid "My Approvals" +msgstr "表å•签核" + +#: html/Work/Elements/Tab:33 +msgid "My Requests" +msgstr "表å•申请追踪" + +#: html/Work/Elements/Tab:37 +msgid "My Tickets" +msgstr "表å•处ç†" + +#: html/Approvals/index.html:24 html/Approvals/index.html:25 +msgid "My approvals" +msgstr "表å•签核" + +#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyTemplateAsWorkflow:185 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Edit/Users/Add.html:22 html/Edit/Users/Search.html:31 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 html/Work/Tickets/Cc:18 +msgid "Name" +msgstr "åç§°" + +#: lib/RT/User_Overlay.pm:245 +msgid "Name in use" +msgstr "å¸å·å·²æœ‰äººä½¿ç”¨" + +#: html/Edit/Users/Info:27 +msgid "Nationality" +msgstr "国ç±" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "需先由系统管ç†å‘˜è¿›è¡Œæ‰¹å‡†" + +#: html/Ticket/Elements/ShowDates:51 +msgid "Never" +msgstr "从未更动" + +#: html/Elements/Quicksearch:29 html/Work/Elements/Quicksearch:15 html/Work/Tickets/Create.html:52 +msgid "New" +msgstr "新建立" + +#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/User/Prefs.html:64 html/Work/Preferences/Info:44 +msgid "New Password" +msgstr "æ–°çš„å£ä»¤" + +#: etc/initialdata:341 etc/upgrade/2.1.71:16 html/Edit/Elements/CreateApprovalsQueue:21 +msgid "New Pending Approval" +msgstr "新的待签核事项" + +#: html/Ticket/Elements/EditLinks:110 +msgid "New Relationships" +msgstr "新增关系" + +#: html/Work/Elements/Tab:31 +msgid "New Request" +msgstr "表å•申请" + +#: html/Ticket/Elements/Tabs:35 +msgid "New Search" +msgstr "新增查询" + +#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:39 +msgid "New custom field" +msgstr "新增自订字段" + +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +msgid "New group" +msgstr "新增群组" + +#: html/SelfService/Prefs.html:31 +msgid "New password" +msgstr "æ–°çš„å£ä»¤" + +#: lib/RT/User_Overlay.pm:706 +msgid "New password notification sent" +msgstr "é€å‡ºæ–°å£ä»¤é€šçŸ¥" + +#: html/Admin/Elements/QueueTabs:69 +msgid "New queue" +msgstr "新增表å•" + +#: NOT FOUND IN SOURCE +msgid "New request" +msgstr "æå‡ºç”³è¯·å•" + +#: html/Admin/Elements/SelectRights:41 +msgid "New rights" +msgstr "新增æƒé™" + +#: 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 "新增手续" + +#: html/Work/Search/index.html:62 +msgid "New search" +msgstr "釿–°æŸ¥è¯¢" + +#: 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 "新增模æ¿" + +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "æå‡ºç”³è¯·å•" + +#: lib/RT/Ticket_Overlay.pm:2800 +msgid "New ticket doesn't exist" +msgstr "没有新申请å•" + +#: html/Admin/Elements/UserTabs:51 +msgid "New user" +msgstr "新增使用者" + +#: html/Admin/Elements/CreateUserCalled:25 +msgid "New user called" +msgstr "新使用者åå­—" + +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +msgid "New watchers" +msgstr "新视察员" + +#: html/Admin/Users/Prefs.html:41 +msgid "New window setting" +msgstr "更新窗å£è®¾å®š" + +#: html/Admin/Global/Workflow.html:60 html/Admin/Global/Workflows.html:39 html/Admin/Queues/Workflow.html:57 html/Admin/Queues/Workflows.html:50 +msgid "New workflow" +msgstr "新增æµç¨‹" + +#: html/Ticket/Elements/Tabs:68 +msgid "Next" +msgstr "下一项" + +#: html/Search/Listing.html:47 html/Work/Search/index.html:24 +msgid "Next page" +msgstr "下一页" + +#: html/Admin/Elements/ModifyUser:49 +msgid "NickName" +msgstr "昵称" + +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:45 html/Work/Preferences/Info:23 +msgid "Nickname" +msgstr "昵称" + +#: NOT FOUND IN SOURCE +msgid "Night Shift" +msgstr "å°å¤œç­" + +#: html/Edit/Global/Basic/Top:27 +msgid "No" +msgstr "å¦" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:104 +msgid "No CustomField" +msgstr "无自订字段" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +msgid "No Group defined" +msgstr "尚未定义群组" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +msgid "No Queue defined" +msgstr "没有定义好的表å•" + +#: bin/rt-crontool:55 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "找ä¸åˆ° RT ä½¿ç”¨è€…ã€‚è¯·å‘ RT 管ç†å‘˜æŸ¥è¯¢ã€‚\\n" + +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +msgid "No Template" +msgstr "没有模æ¿" + +#: bin/rt-commit-handler:763 +msgid "No Ticket specified. Aborting ticket " +msgstr "未指定申请å•ã€‚é€€å‡ºç”³è¯·å• " + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "未指定申请å•ã€‚é€€å‡ºç”³è¯·å•æ›´æ”¹\\n\\n" + +#: html/Admin/Elements/ModifyWorkflow:237 html/Admin/Global/Workflow.html:79 html/Admin/Queues/Workflow.html:75 +msgid "No Workflow" +msgstr "没有æµç¨‹" + +#: html/Approvals/Elements/Approve:45 html/Work/Approvals/Elements/Approve:35 +msgid "No action" +msgstr "æš‚ä¸å¤„ç†" + +#: lib/RT/Interface/Web.pm:898 +msgid "No column specified" +msgstr "未指定字段" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "找ä¸åˆ°å‘½ä»¤" + +#: html/Elements/ViewUser:35 html/Ticket/Elements/ShowRequestor:44 +msgid "No comment entered about this user" +msgstr "没有对这å使用者的评论" + +#: lib/RT/Ticket_Overlay.pm:2211 lib/RT/Ticket_Overlay.pm:2279 +msgid "No correspondence attached" +msgstr "没有附上申请å•回å¤" + +#: lib/RT/Action/Generic.pm:149 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 "没有对 %1 çš„æè¿°" + +#: lib/RT/Users_Overlay.pm:150 +msgid "No group specified" +msgstr "未指定群组" + +#: lib/RT/User_Overlay.pm:924 +msgid "No password set" +msgstr "没有设定å£ä»¤" + +#: lib/RT/Queue_Overlay.pm:260 +msgid "No permission to create queues" +msgstr "没有新增表å•çš„æƒé™" + +#: lib/RT/Ticket_Overlay.pm:342 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "æ²¡æœ‰åœ¨è¡¨å• '%1' 新增申请å•çš„æƒé™" + +#: lib/RT/User_Overlay.pm:211 +msgid "No permission to create users" +msgstr "没有新增使用者的æƒé™" + +#: html/SelfService/Display.html:117 +msgid "No permission to display that ticket" +msgstr "没有显示该申请å•çš„æƒé™" + +#: html/SelfService/Update.html:51 +msgid "No permission to view update ticket" +msgstr "æ²¡æœ‰æ£€è§†ç”³è¯·å•æ›´æ–°çš„æƒé™" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1496 +msgid "No principal specified" +msgstr "未指定å•ä½" + +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +msgid "No principals selected." +msgstr "未指定å•ä½ã€‚" + +#: NOT FOUND IN SOURCE +msgid "No protocol specified in %1" +msgstr "%1 内未指定åè®®" + +#: html/Admin/Queues/index.html:34 +msgid "No queues matching search criteria found." +msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„表å•。" + +#: html/Admin/Elements/SelectRights:80 +msgid "No rights found" +msgstr "找ä¸åˆ°æƒé™" + +#: html/Admin/Elements/SelectRights:32 +msgid "No rights granted." +msgstr "没有选定æƒé™" + +#: html/Search/Bulk.html:160 html/Work/Search/Bulk.html:117 +msgid "No search to operate on." +msgstr "没有è¦è¿›è¡Œçš„æŸ¥è¯¢" + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "未指定申请å•ç¼–å·" + +#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +msgid "No transaction type specified" +msgstr "未指定更动报告类别" + +#: NOT FOUND IN SOURCE +msgid "No user or email address specified" +msgstr "未指定使用者或电å­é‚®ä»¶åœ°å€" + +#: html/Admin/Users/index.html:35 +msgid "No users matching search criteria found." +msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„使用者。" + +#: bin/rt-commit-handler:643 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "找ä¸åˆ°åˆæ ¼çš„ RT 使用者。RT cvs 处ç†å™¨å·²åœç”¨ã€‚è¯·å‘ RT 管ç†è€…询问。\\n" + +#: lib/RT/Interface/Web.pm:895 +msgid "No value sent to _Set!\\n" +msgstr "_Set 没有收到任何值!\\n" + +#: html/Search/Elements/TicketRow:36 html/Work/Search/TicketRow:9 +msgid "Nobody" +msgstr "没有人" + +#: lib/RT/Interface/Web.pm:900 +msgid "Nonexistant field?" +msgstr "字段ä¸å­˜åœ¨ï¼Ÿ" + +#: NOT FOUND IN SOURCE +msgid "Normal Users" +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:58 +msgid "Not logged in." +msgstr "尚未登入" + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "尚未设定" + +#: html/NoAuth/Reminder.html:26 +msgid "Not yet implemented." +msgstr "尚未完工。" + +#: NOT FOUND IN SOURCE +msgid "Not yet implemented...." +msgstr "尚未完工..." + +#: html/Approvals/Elements/Approve:48 html/Work/Tickets/Create.html:134 +msgid "Notes" +msgstr "备注" + +#: NOT FOUND IN SOURCE +msgid "Notes:" +msgstr "备注:" + +#: lib/RT/User_Overlay.pm:709 +msgid "Notification could not be sent" +msgstr "无法é€å‡ºé€šçŸ¥" + +#: etc/initialdata:111 +msgid "Notify AdminCcs" +msgstr "通知管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:107 +msgid "Notify AdminCcs as Comment" +msgstr "以评论方å¼é€šçŸ¥ç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:138 +msgid "Notify Other Recipients" +msgstr "通知其它收件人" + +#: etc/initialdata:134 +msgid "Notify Other Recipients as Comment" +msgstr "以评论方å¼é€šçŸ¥å…¶å®ƒæ”¶ä»¶äºº" + +#: etc/initialdata:103 +msgid "Notify Owner" +msgstr "通知承办人" + +#: etc/initialdata:99 +msgid "Notify Owner as Comment" +msgstr "以评论方å¼é€šçŸ¥æ‰¿åŠžäºº" + +#: etc/initialdata:385 +msgid "Notify Owner of their rejected ticket" +msgstr "通知承办人申请å•已驳回" + +#: etc/initialdata:374 +msgid "Notify Owner of their ticket has been approved by all approvers" +msgstr "通知承办人申请å•已完æˆå…¨éƒ¨ç­¾æ ¸" + +#: etc/initialdata:359 +msgid "Notify Owner of their ticket has been approved by some approver" +msgstr "通知承办人申请å•å·²å®ŒæˆæŸé¡¹ç­¾æ ¸" + +#: etc/initialdata:343 etc/upgrade/2.1.71:17 html/Edit/Elements/CreateApprovalsQueue:22 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "æ•´ç†å¾…签核事项,通知承办人åŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:95 +msgid "Notify Requestors" +msgstr "通知申请人" + +#: etc/initialdata:121 +msgid "Notify Requestors and Ccs" +msgstr "通知申请人åŠå‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:116 +msgid "Notify Requestors and Ccs as Comment" +msgstr "以评论方å¼é€šçŸ¥ç”³è¯·äººåŠå‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:130 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "通知申请人ã€å‰¯æœ¬åŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:126 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "以评论方å¼é€šçŸ¥ç”³è¯·äººã€å‰¯æœ¬åŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" + +#: html/Work/Tickets/Cc:55 +msgid "Notify people:" +msgstr "通知对象" + +#: NOT FOUND IN SOURCE +msgid "Nov" +msgstr "å一月" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "11" + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "å一月" + +#: html/Edit/Global/Basic/Top:74 +msgid "OIN104" +msgstr "é…åˆ 104eHRMS 接å£" + +#: html/Edit/Global/Workflow/Export.html:30 html/Work/Copyright.html:23 +msgid "OK" +msgstr "确定" + +#: lib/RT/Record.pm:156 +msgid "Object could not be created" +msgstr "无法新增对象" + +#: lib/RT/Record.pm:175 +msgid "Object created" +msgstr "对象新增完毕" + +#: html/Edit/Users/Info:36 +msgid "Occupation Status" +msgstr "在èŒçжæ€" + +#: NOT FOUND IN SOURCE +msgid "Oct" +msgstr "åæœˆ" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "10" + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "åæœˆ" + +#: html/Edit/Users/Info:33 +msgid "Office Phone" +msgstr "办公室电è¯" + +#: html/Elements/SelectDateRelation:34 +msgid "On" +msgstr "等于" + +#: etc/initialdata:173 +msgid "On Comment" +msgstr "评论时" + +#: etc/initialdata:166 +msgid "On Correspond" +msgstr "回å¤ç”³è¯·å•æ—¶" + +#: etc/initialdata:155 +msgid "On Create" +msgstr "æ–°å¢žç”³è¯·å•æ—¶" + +#: etc/initialdata:187 +msgid "On Owner Change" +msgstr "æ‰¿åŠžäººæ”¹å˜æ—¶" + +#: etc/initialdata:195 +msgid "On Queue Change" +msgstr "è¡¨å•æ”¹å˜æ—¶" + +#: etc/initialdata:201 +msgid "On Resolve" +msgstr "è§£å†³ç”³è¯·å•æ—¶" + +#: etc/initialdata:179 +msgid "On Status Change" +msgstr "çŽ°å†µæ”¹å˜æ—¶" + +#: etc/initialdata:160 +msgid "On Transaction" +msgstr "å‘生更动时" + +#: 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 "仅显示 %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 "仅显示 %1 之剿–°å¢žçš„申请å•" + +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:13 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:28 +msgid "Open" +msgstr "å¼€å¯" + +#: html/Ticket/Elements/Tabs:135 +msgid "Open it" +msgstr "å¼€å¯" + +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "å¼€å¯çš„申请å•" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in a new window" +msgstr "在新窗å£å¼€å¯(列表的)申请å•" + +#: html/Admin/Users/Prefs.html:39 +msgid "Open tickets (from listing) in another window" +msgstr "在å¦ä¸€ä¸ªçª—å£å¼€å¯(列表的)申请å•" + +#: etc/initialdata:150 +msgid "Open tickets on correspondence" +msgstr "æ”¶åˆ°å›žå¤æ—¶å³å¼€å¯ç”³è¯·å•" + +#: NOT FOUND IN SOURCE +msgid "Opened Tickets" +msgstr "已申请è¿è¡Œä¸­è¡¨å•" + +#: NOT FOUND IN SOURCE +msgid "Opinion" +msgstr "æ„è§" + +#: html/Edit/Global/CustomField/Info:35 +msgid "Option Description" +msgstr "选项æè¿°" + +#: html/Edit/Global/CustomField/Info:29 +msgid "Option Name" +msgstr "选项åç§°" + +#: html/Search/Elements/PickRestriction:100 html/Work/Search/PickRestriction:81 +msgid "Ordering and sorting" +msgstr "顺åºä¸ŽæŽ’åºæ–¹å¼" + +#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Global/Basic/Top:50 html/Elements/SelectUsers:28 html/User/Prefs.html:85 html/Work/Preferences/Info:74 +msgid "Organization" +msgstr "组织åç§°" + +#: NOT FOUND IN SOURCE +msgid "Organization:" +msgstr "组织:" + +#: html/Approvals/Elements/Approve:32 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "原申请å•:#%1" + +#: html/Edit/Elements/PickUsers:109 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 +msgid "Other comma-delimited email addresses" +msgstr "其它e-mailå¸å· (ä»…e-mail通知;多笔å¸å·è¯·ç”¨é€—å·','区隔)" + +#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 html/Edit/Queues/Basic/Top:41 +msgid "Over time, priority moves toward" +msgstr "优先顺ä½éšæ—¶é—´å¢žåŠ è°ƒæ•´ä¸º" + +#: NOT FOUND IN SOURCE +msgid "Override current custom fields with fields from %1" +msgstr "以 %1 表å•的自订字段å–代现有字段" + +#: html/Admin/Elements/CheckOverrideGlobalACL:25 +msgid "Override global rights" +msgstr "å–代全域æƒé™" + +#: html/Admin/Elements/CheckOverrideGlobalACL:34 +#. (loc_fuzzy($msg)) +msgid "OverrideGlobalACL status %1" +msgstr "å–代全域æƒé™ %1" + +#: html/Work/Elements/Tab:29 +msgid "Overview" +msgstr "总览" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Own tickets" +msgstr "承办申请å•" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "OwnTicket" +msgstr "承办申请å•" + +#: etc/initialdata:56 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:47 html/Edit/Queues/Basic/Top:58 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:13 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "承办人" + +#: NOT FOUND IN SOURCE +msgid "Owner changed from %1 to %2" +msgstr "承办人已从 %1 改为 %2" + +#: lib/RT/Transaction_Overlay.pm:582 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "强制将承办人从 %1 改为 %2" + +#: html/Search/Elements/PickRestriction:30 html/Work/Search/PickRestriction:10 +msgid "Owner is" +msgstr "承办人" + +#: html/Work/Elements/List:27 html/Work/Queues/List:8 html/Work/Tickets/Create.html:54 html/Work/Tickets/Elements/ShowBasics:52 +msgid "Owner's Phone" +msgstr "承办人电è¯" + +#: html/Edit/Elements/Page:39 +msgid "Page" +msgstr " " + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:55 html/Work/Preferences/Info:35 +msgid "Pager" +msgstr "呼å«å™¨" + +#: html/Admin/Elements/ModifyUser:73 +msgid "PagerPhone" +msgstr "呼å«å™¨å·ç " + +#: html/Edit/Global/Workflow/Action:81 html/Edit/Global/Workflow/Condition:66 +msgid "Parameter" +msgstr "呼å«å‚æ•°" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:225 +msgid "Parent" +msgstr "上级" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:126 html/Ticket/Elements/EditLinks:57 html/Ticket/Elements/ShowLinks:46 html/Work/Search/BulkLinks:14 +msgid "Parents" +msgstr "æ¯ç”³è¯·å•" + +#: NOT FOUND IN SOURCE +msgid "Park Space" +msgstr "åœè½¦ä½ç”³è¯·" + +#: html/Elements/Login:52 html/User/Prefs.html:60 html/Work/Preferences/Info:41 +msgid "Password" +msgstr "å£ä»¤" + +#: html/NoAuth/Reminder.html:24 +msgid "Password Reminder" +msgstr "å£ä»¤æç¤º" + +#: lib/RT/User_Overlay.pm:228 lib/RT/User_Overlay.pm:927 +msgid "Password too short" +msgstr "å£ä»¤å¤ªçŸ­" + +#: html/Admin/Users/Modify.html:290 html/User/Prefs.html:171 html/Work/Preferences/Info:162 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "å£ä»¤ï¼š%1" + +#: html/Admin/Users/Modify.html:292 +msgid "Passwords do not match." +msgstr "å£ä»¤ç¡®è®¤å¤±è´¥ã€‚" + +#: html/User/Prefs.html:173 html/Work/Preferences/Info:164 +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:44 html/Ticket/Elements/Tabs:95 html/Ticket/ModifyAll.html:50 +msgid "People" +msgstr "人员" + +#: NOT FOUND IN SOURCE +msgid "People with Queue Rights" +msgstr "æ‹¥æœ‰è¡¨å•æƒé™äººå‘˜" + +#: etc/initialdata:143 +msgid "Perform a user-defined action" +msgstr "执行使用者自订的动作" + +#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:510 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1098 lib/RT/Group_Overlay.pm:1107 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1162 lib/RT/Group_Overlay.pm:1168 lib/RT/Group_Overlay.pm:425 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:903 lib/RT/Group_Overlay.pm:907 lib/RT/Group_Overlay.pm:920 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:196 lib/RT/Scrip_Overlay.pm:429 lib/RT/Template_Overlay.pm:283 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1349 lib/RT/Ticket_Overlay.pm:1359 lib/RT/Ticket_Overlay.pm:1373 lib/RT/Ticket_Overlay.pm:1526 lib/RT/Ticket_Overlay.pm:1535 lib/RT/Ticket_Overlay.pm:1548 lib/RT/Ticket_Overlay.pm:1897 lib/RT/Ticket_Overlay.pm:2035 lib/RT/Ticket_Overlay.pm:2199 lib/RT/Ticket_Overlay.pm:2266 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2697 lib/RT/Ticket_Overlay.pm:2791 lib/RT/Ticket_Overlay.pm:2806 lib/RT/Ticket_Overlay.pm:3005 lib/RT/Ticket_Overlay.pm:3015 lib/RT/Ticket_Overlay.pm:3020 lib/RT/Ticket_Overlay.pm:3242 lib/RT/Ticket_Overlay.pm:3440 lib/RT/Ticket_Overlay.pm:3602 lib/RT/Ticket_Overlay.pm:3654 lib/RT/Ticket_Overlay.pm:3829 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1021 lib/RT/User_Overlay.pm:1414 lib/RT/User_Overlay.pm:629 lib/RT/User_Overlay.pm:664 lib/RT/User_Overlay.pm:920 +msgid "Permission Denied" +msgstr "æƒé™ä¸è¶³" + +#: html/Edit/Rights/index.html:3 +msgid "Permission Settings" +msgstr "æƒé™è®¾å®š" + +#: NOT FOUND IN SOURCE +msgid "Permitted Queues:" +msgstr "拥有æƒé™è¡¨å•列表:" + +#: NOT FOUND IN SOURCE +msgid "Personal" +msgstr "代ç†äººç¾¤ç»„" + +#: html/User/Elements/Tabs:34 +msgid "Personal Groups" +msgstr "代ç†äººç¾¤ç»„" + +#: NOT FOUND IN SOURCE +msgid "Personal Todo" +msgstr "ç§äººå¾…办事项" + +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +msgid "Personal groups" +msgstr "代ç†äººç¾¤ç»„" + +#: html/User/Elements/DelegateRights:36 +msgid "Personal groups:" +msgstr "代ç†äººç¾¤ç»„:" + +#: html/Work/Preferences/Info:21 +msgid "PersonalHomepage" +msgstr "个人首页" + +#: NOT FOUND IN SOURCE +msgid "Phone" +msgstr "电è¯" + +#: html/Work/Delegates/Info:90 html/Work/Overview/Info:72 +msgid "Phone number" +msgstr "电è¯å·ç " + +#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:48 html/Work/Preferences/Info:27 +msgid "Phone numbers" +msgstr "电è¯å·ç " + +#: html/Edit/Users/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 +msgid "Pick" +msgstr "挑选" + +#: NOT FOUND IN SOURCE +msgid "Place of Departure" +msgstr "出å‘地点" + +#: NOT FOUND IN SOURCE +msgid "Placeholder" +msgstr "尚未完工" + +#: html/Edit/Elements/PickUsers:31 html/Edit/Elements/PickUsers:44 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:104 html/Work/Tickets/Elements/EditCustomField:185 html/Work/Tickets/Elements/EditCustomField:75 html/Work/Tickets/Elements/EditCustomFieldEntries:66 html/Work/Tickets/Elements/EditCustomFieldEntries:73 +msgid "Please Select" +msgstr "请选择" + +#: html/Edit/Elements/104Buttons:30 +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 role" +msgstr "请选择角色" + +#: NOT FOUND IN SOURCE +msgid "Policy" +msgstr "ç»è¥è§„ç« " + +#: NOT FOUND IN SOURCE +msgid "Position" +msgstr "èŒåŠ¡" + +#: html/Edit/Users/Info:43 +msgid "Position Level" +msgstr "èŒç­‰" + +#: html/Edit/Elements/PickUsers:41 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Users/Add.html:41 html/Edit/Users/List:11 html/Edit/Users/Top:22 html/Work/Delegates/Add.html:26 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 +msgid "Position Name" +msgstr "èŒåŠ¡åç§°" + +#: html/Edit/Global/UserRight/List:14 html/Edit/Global/UserRight/Top:33 html/Edit/Users/List:12 html/Edit/Users/Top:32 +msgid "Position Number" +msgstr "èŒåС代ç " + +#: html/Edit/Users/Info:44 +msgid "Position Rank" +msgstr "èŒçº§" + +#: NOT FOUND IN SOURCE +msgid "Pref" +msgstr "å好" + +#: html/Edit/Elements/104Top:25 html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 html/Work/Elements/Tab:41 +msgid "Preferences" +msgstr "å好" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "个人信æ¯" + +#: lib/RT/Action/Generic.pm:159 +msgid "Prepare Stubbed" +msgstr "预备动作完毕" + +#: html/Ticket/Elements/Tabs:60 +msgid "Prev" +msgstr "上一项" + +#: html/Search/Listing.html:43 html/Work/Search/index.html:20 +msgid "Previous page" +msgstr "å‰ä¸€é¡µ" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "优先顺ä½" + +#: 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 "找ä¸åˆ°å•ä½ %1。" + +#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "优先顺ä½" + +#: html/Admin/Elements/ModifyQueue:50 html/Admin/Queues/Modify.html:64 +msgid "Priority starts at" +msgstr "优先顺ä½èµ·å§‹å€¼" + +#: etc/initialdata:43 +msgid "Privileged" +msgstr "内部æˆå‘˜" + +#: html/Admin/Users/Modify.html:270 html/User/Prefs.html:162 html/Work/Preferences/Info:153 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "内部æˆå‘˜çжæ€ï¼š%1" + +#: html/Admin/Users/index.html:61 +msgid "Privileged users" +msgstr "内部æˆå‘˜" + +#: html/Work/Elements/SelectSearch:16 +msgid "Process Status" +msgstr "处ç†çжæ€" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 etc/initialdata:77 +msgid "Pseudogroup for internal use" +msgstr "内部用的虚拟群组" + +#: html/Work/Preferences/Info:64 +msgid "Public Info" +msgstr "公开信æ¯" + +#: html/Work/Elements/104Header:88 +msgid "Public Service" +msgstr "公共事务区" + +#: html/Edit/Users/Search.html:4 +msgid "Query" +msgstr "查询" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:11 html/Work/Elements/MyTickets:11 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "表å•" + +#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 html/Admin/Queues/Workflows.html:44 +#. ($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/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 html/Edit/Queues/Basic/Top:12 html/Edit/Queues/Basic/index.html:36 html/Edit/Queues/Global:21 html/Edit/Queues/List:6 html/Edit/Users/Queue:10 html/Work/Delegates/List:6 html/Work/Elements/List:11 html/Work/Queues/List:5 html/Work/Tickets/Create.html:20 html/Work/Tickets/Elements/ShowBasics:6 +msgid "Queue Name" +msgstr "表å•åç§°" + +#: html/Edit/Queues/List:8 html/Work/Elements/List:25 html/Work/Queues/List:7 html/Work/Tickets/Create.html:33 html/Work/Tickets/Elements/ShowBasics:19 +msgid "Queue Owner" +msgstr "业务承办人" + +#: html/Edit/Queues/Basic/Top:35 +msgid "Queue Priority" +msgstr "优先等级" + +#: html/Edit/Global/GroupRight/Top:24 html/Edit/Global/UserRight/Top:43 html/Edit/Users/Queue:11 html/Edit/Users/index.html:124 +msgid "Queue Rights" +msgstr "è¡¨å•æƒé™" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "è¡¨å•æ‰‹ç»­" + +#: html/Edit/Elements/Tab:36 +msgid "Queue Setup" +msgstr "表å•设定" + +#: lib/RT/Queue_Overlay.pm:264 +msgid "Queue already exists" +msgstr "表å•已存在" + +#: lib/RT/Queue_Overlay.pm:273 lib/RT/Queue_Overlay.pm:279 +msgid "Queue could not be created" +msgstr "无法新增表å•" + +#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:204 html/Work/Tickets/Create.html:176 +msgid "Queue could not be loaded." +msgstr "无法加载表å•" + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 +msgid "Queue created" +msgstr "è¡¨å•æ–°å¢žå®Œæ¯•" + +#: html/Admin/Elements/ModifyWorkflow:32 +msgid "Queue is not specified." +msgstr "未指定表å•。" + +#: html/SelfService/Display.html:70 lib/RT/CustomField_Overlay.pm:97 +msgid "Queue not found" +msgstr "找ä¸åˆ°è¡¨å•" + +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +msgid "Queues" +msgstr "表å•" + +#: html/Work/Elements/Quicksearch:10 +msgid "Quick Search" +msgstr "表å•现况" + +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "表å•一览" + +#: html/Elements/Login:44 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "RT %1" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "%2:RT %1 版" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +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:24 html/Admin/index.html:25 +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:41 html/SelfService/Error.html:40 +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/index.html:24 html/index.html:27 +msgid "RT at a glance" +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" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RT 无法确认这个 PGP 签章。\\n" + +#: html/Edit/Elements/104Header:7 html/Edit/Elements/104Top:20 html/Elements/PageLayout:85 html/Work/Elements/104Header:7 +#. ($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 已执行您的命令" + +#: html/Elements/Login:94 +#. ('2003') +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 认为这å¯èƒ½æ˜¯é€€ä¿¡" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RT 以未签章方å¼å¤„ç†è¿™å°é‚®ä»¶ã€‚\\n" + +#: 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 "申请å•è¿è¡Œè§’色" + +#: html/Work/Tickets/Elements/ShowTransaction:11 +msgid "RT_System" +msgstr "系统讯æ¯" + +#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/User/Prefs.html:43 html/Work/Preferences/Info:18 +msgid "Real Name" +msgstr "真实姓å" + +#: html/Admin/Elements/ModifyUser:47 +msgid "RealName" +msgstr "真实姓å" + +#: html/Work/Approvals/Display.html:27 html/Work/Tickets/Update.html:85 +msgid "Really reject this ticket?" +msgstr "您确定è¦é©³å›žè¿™å¼ ç”³è¯·å•å—?" + +#: html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:138 html/Ticket/Elements/EditLinks:93 html/Ticket/Elements/ShowLinks:70 html/Work/Search/BulkLinks:26 +msgid "Referred to by" +msgstr "被å‚考" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:134 html/Ticket/Elements/EditLinks:79 html/Ticket/Elements/ShowLinks:60 html/Work/Search/BulkLinks:22 +msgid "Refers to" +msgstr "å‚考" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "å‚考" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "在结果范围内查询" + +#: html/Search/Elements/PickRestriction:26 html/Work/Search/PickRestriction:7 +msgid "Refine search" +msgstr "调整查询æ¡ä»¶" + +#: html/Work/Overview/index.html:12 +msgid "Refresh" +msgstr "æ›´æ–°" + +#: html/Elements/Refresh:35 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "æ¯ %1 分钟更新页é¢" + +#: html/Ticket/Create.html:173 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 +msgid "Relationships" +msgstr "关系" + +#: html/Edit/Elements/ListButtons:13 +msgid "Remove" +msgstr "移除" + +#: html/Search/Bulk.html:97 html/Work/Search/Bulk.html:77 +msgid "Remove AdminCc" +msgstr "移除管ç†å‘˜å‰¯æœ¬" + +#: html/Search/Bulk.html:93 html/Work/Search/Bulk.html:71 +msgid "Remove Cc" +msgstr "移除副本" + +#: html/Search/Bulk.html:89 html/Work/Search/Bulk.html:65 +msgid "Remove Requestor" +msgstr "移除申请人" + +#: html/Ticket/Elements/ShowTransaction:160 html/Ticket/Elements/Tabs:121 html/Work/Tickets/Display.html:31 html/Work/Tickets/Elements/ShowTransaction:106 +msgid "Reply" +msgstr "回å¤" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Reply to tickets" +msgstr "对申请å•进行回å¤" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "ReplyToTicket" +msgstr "回å¤ç”³è¯·å•" + +#: html/Edit/Users/Info:46 +msgid "Report to Duty" +msgstr "上下ç­åˆ·å¡" + +#: html/Edit/Users/Info:34 +msgid "Reported on" +msgstr "åˆ°èŒæ—¥æœŸ" + +#: etc/initialdata:62 html/Ticket/Update.html:39 html/Work/Elements/List:21 html/Work/Elements/MyApprovals:12 html/Work/Elements/SelectSearch:30 html/Work/Tickets/Elements/ShowBasics:54 lib/RT/ACE_Overlay.pm:86 +msgid "Requestor" +msgstr "申请人" + +#: html/Edit/Global/Workflow/Owner.html:44 +msgid "Requestor Group's" +msgstr "申请人所属群组之" + +#: html/Search/Elements/PickRestriction:37 html/Work/Search/PickRestriction:17 +msgid "Requestor email address" +msgstr "申请人电å­é‚®ä»¶ä¿¡ç®±åœ°å€" + +#: html/Edit/Global/Workflow/Owner.html:28 +msgid "Requestor's" +msgstr "申请人所属之第上" + +#: html/Work/Elements/List:23 +msgid "Requestor's Phone" +msgstr "申请人电è¯" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "申请人" + +#: NOT FOUND IN SOURCE +msgid "RequestorAddresses" +msgstr "申请人地å€" + +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +msgid "Requestors" +msgstr "申请人" + +#: html/Admin/Elements/ModifyQueue:60 html/Admin/Queues/Modify.html:74 +msgid "Requests should be due in" +msgstr "申请å•å¤„ç†æœŸé™" + +#: html/Elements/Submit:61 +msgid "Reset" +msgstr "é‡è®¾" + +#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:49 html/Work/Preferences/Info:29 +msgid "Residence" +msgstr "ä½å¤„" + +#: NOT FOUND IN SOURCE +msgid "Resolution" +msgstr "解决状æ€" + +#: html/Ticket/Elements/Tabs:131 html/Work/Tickets/Display.html:34 +msgid "Resolve" +msgstr "解决" + +#: html/Ticket/Update.html:136 html/Work/Tickets/Update.html:120 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "è§£å†³ç”³è¯·å• #%1 (%2)" + +#: etc/initialdata:331 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1178 +msgid "Resolved" +msgstr "已解决" + +#: html/Search/Bulk.html:132 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:71 html/Work/Search/Bulk.html:84 html/Work/Tickets/Update.html:38 +msgid "Response to requestors" +msgstr "回å¤ç”³è¯·äºº" + +#: html/Edit/Users/Info:45 +msgid "Responsibility Type" +msgstr "责任区分" + +#: html/Elements/ListActions:25 +msgid "Results" +msgstr "结果" + +#: html/Search/Elements/PickRestriction:104 html/Work/Search/PickRestriction:84 +msgid "Results per page" +msgstr "æ¯é¡µåˆ—出几笔结果" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:71 html/Work/Preferences/Info:51 +msgid "Retype Password" +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:612 +msgid "Right Delegated" +msgstr "æƒé™ä»£ç†å®Œæ¯•" + +#: lib/RT/ACE_Overlay.pm:302 +msgid "Right Granted" +msgstr "æƒé™è®¾å®šå®Œæ¯•" + +#: lib/RT/ACE_Overlay.pm:160 +msgid "Right Loaded" +msgstr "æƒé™åŠ è½½å®Œæ¯•" + +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +msgid "Right could not be revoked" +msgstr "无法撤消æƒé™" + +#: html/User/Delegation.html:63 +msgid "Right not found" +msgstr "找ä¸åˆ°æƒé™" + +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +msgid "Right not loaded." +msgstr "æƒé™å¹¶æœªåŠ è½½ã€‚" + +#: lib/RT/ACE_Overlay.pm:688 +msgid "Right revoked" +msgstr "æƒé™æ’¤æ¶ˆå®Œæ¯•" + +#: html/Admin/Elements/UserTabs:40 +msgid "Rights" +msgstr "æƒé™åŠä»£ç†äºº" + +#: lib/RT/Interface/Web.pm:794 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "无法将æƒé™èµ‹äºˆ %1" + +#: lib/RT/Interface/Web.pm:827 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "无法撤消 %1 çš„æƒé™" + +#: html/Edit/Groups/Member:55 html/Edit/Groups/Members/List:10 +msgid "Role Members" +msgstr "角色æˆå‘˜" + +#: html/Edit/Groups/Member:37 html/Edit/Groups/Members/Add.html:13 html/Edit/Groups/Members/List:7 html/Edit/Groups/Roles/List:4 html/Edit/Groups/Roles/Top:7 +msgid "Role Name" +msgstr "角色åç§°" + +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 html/Edit/Global/Workflow/Owner.html:55 html/Edit/Global/Workflow/Owner.html:81 html/Edit/Groups/Member:24 +msgid "Roles" +msgstr "角色" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "交由系统管ç†å‘˜ç­¾æ ¸" + +#: html/Edit/Global/Workflow/Action:27 +msgid "Run Approval" +msgstr "签核执行" + +#: html/Edit/Global/Basic/Top:72 +msgid "SMTPDebug" +msgstr "SMTP 侦错纪录" + +#: html/Edit/Global/Basic/Top:58 +msgid "SMTPFrom" +msgstr "SMTP 寄件地å€" + +#: html/Edit/Global/Basic/Top:56 +msgid "SMTPServer" +msgstr "SMTP æœåС噍" + +#: NOT FOUND IN SOURCE +msgid "Sat" +msgstr "星期六" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "星期六" + +#: html/Edit/Elements/104Buttons:72 html/Work/Preferences/index.html:35 +msgid "Save" +msgstr "储存" + +#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyLinks.html:38 html/Ticket/ModifyPeople.html:37 +msgid "Save Changes" +msgstr "储存更改" + +#: NOT FOUND IN SOURCE +msgid "Save changes" +msgstr "储存更改" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->id) +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "手续 #%1" + +#: html/Edit/Global/Scrip/List:9 html/Edit/Global/Scrip/Top:41 +msgid "Scrip Action" +msgstr "讯æ¯é€šçŸ¥åŠ¨ä½œ" + +#: html/Edit/Global/Scrip/List:8 html/Edit/Global/Scrip/Top:15 +msgid "Scrip Condition" +msgstr "讯æ¯é€šçŸ¥æ¡ä»¶" + +#: lib/RT/Scrip_Overlay.pm:175 +msgid "Scrip Created" +msgstr "手续新增完毕" + +#: html/Edit/Global/Scrip/List:7 html/Edit/Global/Scrip/Top:9 +msgid "Scrip Name" +msgstr "讯æ¯åç§°" + +#: html/Admin/Elements/EditScrips:83 +msgid "Scrip deleted" +msgstr "手续删除完毕" + +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +msgid "Scrips" +msgstr "手续" + +#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:20 +msgid "Scrips " +msgstr "讯æ¯é€šçŸ¥" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "%1 的手续\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "适用于所有表å•的手续" + +#: html/Edit/Elements/104Buttons:75 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 html/Work/Elements/Tab:43 html/Work/Search/PickRestriction:102 +msgid "Search" +msgstr "查询" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "查询æ¡ä»¶" + +#: html/Approvals/Elements/PendingMyApproval:38 +msgid "Search for approvals" +msgstr "ç­¾æ ¸å•æŸ¥è¯¢" + +#: html/Edit/Global/Workflow/Owner.html:31 +msgid "Second-" +msgstr "二" + +#: html/Edit/Users/Info:41 +msgid "Second-level Users" +msgstr "二阶主管员工" + +#: bin/rt-crontool:187 +msgid "Security:" +msgstr "安全性:" + +#: lib/RT/Queue_Overlay.pm:66 +msgid "SeeQueue" +msgstr "查阅表å•" + +#: html/Edit/Elements/ListButtons:10 +msgid "Select All" +msgstr "全选" + +#: html/Admin/Groups/index.html:39 +msgid "Select a group" +msgstr "选择群组" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "选择表å•" + +#: html/Work/Queues/Select.html:8 +msgid "Select a queue to link to" +msgstr "请选择欲连结表å•" + +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +msgid "Select a user" +msgstr "选择使用者" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +msgid "Select custom field" +msgstr "选择自订字段" + +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +msgid "Select group" +msgstr "选择群组" + +#: lib/RT/CustomField_Overlay.pm:421 +msgid "Select multiple values" +msgstr "选择多é‡é¡¹ç›®" + +#: lib/RT/CustomField_Overlay.pm:418 +msgid "Select one value" +msgstr "选择å•一项目" + +#: html/Admin/Elements/QueueTabs:66 +msgid "Select queue" +msgstr "选择表å•" + +#: 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 "选择手续" + +#: 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 "选择模æ¿" + +#: html/Admin/Elements/UserTabs:48 +msgid "Select user" +msgstr "选择使用者" + +#: html/Admin/Global/Workflow.html:57 html/Admin/Global/Workflows.html:36 html/Admin/Queues/Workflow.html:54 html/Admin/Queues/Workflows.html:47 +msgid "Select workflow" +msgstr "选择æµç¨‹" + +#: NOT FOUND IN SOURCE +msgid "SelectExternal" +msgstr "系统选项" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectMultiple" +msgstr "多é‡é€‰é¡¹" + +#: lib/RT/CustomField_Overlay.pm:34 +msgid "SelectSingle" +msgstr "å•一选项" + +#: html/Edit/Elements/PickUsers:85 html/Edit/Users/Add.html:78 +msgid "Selected users:" +msgstr "新增对象:" + +#: NOT FOUND IN SOURCE +msgid "Self Service" +msgstr "自助æœåŠ¡" + +#: etc/initialdata:131 +msgid "Send mail to all watchers" +msgstr "寄信给所有视察员" + +#: etc/initialdata:127 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "以评论方å¼å¯„信给所有视察员" + +#: etc/initialdata:122 +msgid "Send mail to requestors and Ccs" +msgstr "寄信给申请人åŠå‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:117 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "以评论方å¼å¯„信给申请人åŠå‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:96 +msgid "Sends a message to the requestors" +msgstr "寄信给申请人" + +#: etc/initialdata:135 etc/initialdata:139 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "寄信给特定的副本åŠå¯†ä»¶å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:112 +msgid "Sends mail to the administrative Ccs" +msgstr "寄信给管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:108 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "以评论寄信给管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:100 etc/initialdata:104 +msgid "Sends mail to the owner" +msgstr "寄信给申请人" + +#: NOT FOUND IN SOURCE +msgid "Sep" +msgstr "乿œˆ" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "09" + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "乿œˆ" + +#: html/Edit/Users/Info:39 +msgid "Shift Type" +msgstr "ç­åˆ«å±žæ€§" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "显示结果" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show approved requests" +msgstr "显示已批准的签核å•" + +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +msgid "Show basics" +msgstr "显示基本信æ¯" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show denied requests" +msgstr "显示已驳回的签核å•" + +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +msgid "Show details" +msgstr "显示细节" + +#: html/Approvals/Elements/PendingMyApproval:42 +msgid "Show pending requests" +msgstr "显示待处ç†çš„签核å•" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show requests awaiting other approvals" +msgstr "显示尚待他人批准的签核å•" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "Show ticket private commentary" +msgstr "显示申请å•内的ç§äººè¯„论" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Show ticket summaries" +msgstr "æ˜¾ç¤ºç”³è¯·å•æ‘˜è¦" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "ShowACL" +msgstr "显示æƒé™æ¸…å•" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "ShowScrips" +msgstr "显示手续" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "ShowTemplate" +msgstr "显示模æ¿" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowTicket" +msgstr "显示申请å•" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "ShowTicketComments" +msgstr "显示申请å•的评论" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "登记æˆä¸ºç”³è¯·äººæˆ–副本收件人" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "登记æˆä¸ºç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" + +#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/User/Prefs.html:111 html/Work/Preferences/Info:106 +msgid "Signature" +msgstr "ç­¾åæ¡£" + +#: NOT FOUND IN SOURCE +msgid "Signed in as %1" +msgstr "使用者:%1" + +#: html/Admin/Elements/SelectSingleOrMultiple:25 +msgid "Single" +msgstr "å•一" + +#: html/Elements/Header:50 +msgid "Skip Menu" +msgstr "略过选å•" + +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "顺åº" + +#: NOT FOUND IN SOURCE +msgid "Sort key" +msgstr "æŽ’åºæ–¹å¼" + +#: html/Search/Elements/PickRestriction:108 html/Work/Search/PickRestriction:89 +msgid "Sort results by" +msgstr "ç»“æžœæŽ’åºæ–¹å¼" + +#: NOT FOUND IN SOURCE +msgid "SortOrder" +msgstr "排åºé¡ºåº" + +#: html/Work/Elements/List:8 html/Work/Elements/MyApprovals:11 +msgid "Stage" +msgstr "å…³å¡" + +#: html/Edit/Global/Workflow/Top:8 +msgid "Stage Action" +msgstr "å…³å¡è¿è¡ŒåŠ¨ä½œ" + +#: html/Edit/Global/Workflow/Top:5 +msgid "Stage Condition" +msgstr "å…³å¡è¿è¡Œæ¡ä»¶" + +#: html/Work/Elements/Quicksearch:17 +msgid "Stalled" +msgstr "延宕" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "首页" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:34 +msgid "Started" +msgstr "实际起始日" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "无法解读起始日期 '%1" + +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:30 +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/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:93 html/Work/Preferences/Info:82 +msgid "State" +msgstr "å·ž" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:15 html/Work/Elements/MyRequests:12 html/Work/Elements/MyTickets:12 html/Work/Search/PickRestriction:54 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1172 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "现况" + +#: etc/initialdata:317 +msgid "Status Change" +msgstr "çŽ°å†µæ”¹å˜æ—¶" + +#: lib/RT/Transaction_Overlay.pm:528 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "现况从 %1 改为 %2" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "çŽ°å†µæ”¹å˜æ—¶" + +#: html/Ticket/Elements/Tabs:146 +msgid "Steal" +msgstr "å¼ºåˆ¶æ›´æ¢æ‰¿åŠžäºº" + +#: lib/RT/Queue_Overlay.pm:91 +msgid "Steal tickets" +msgstr "强制承办申请å•" + +#: lib/RT/Queue_Overlay.pm:91 +msgid "StealTicket" +msgstr "强制承办申请å•" + +#: lib/RT/Transaction_Overlay.pm:587 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "被 %1 å¼ºåˆ¶æ›´æ¢ " + +#: html/Edit/Groups/Member:69 +msgid "Subgroup" +msgstr "å­ç¾¤ç»„" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:10 html/Work/Elements/MyTickets:10 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Create.html:122 lib/RT/Ticket_Overlay.pm:1168 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "主题" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "标题已改为 %1" + +#: html/Elements/Submit:58 html/Work/Search/Bulk.html:103 +msgid "Submit" +msgstr "é€å‡º" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "é€å‡ºæµç¨‹" + +#: lib/RT/Group_Overlay.pm:748 +msgid "Succeeded" +msgstr "设定æˆåŠŸ" + +#: NOT FOUND IN SOURCE +msgid "Sun" +msgstr "星期日" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "星期日" + +#: html/Edit/Users/System:17 lib/RT/System.pm:53 +msgid "SuperUser" +msgstr "系统管ç†å‘˜" + +#: html/User/Elements/DelegateRights:76 +msgid "System" +msgstr "系统" + +#: html/Edit/Global/Scrip/Top:18 html/Edit/Global/Scrip/Top:44 +msgid "System Defined" +msgstr "系统定义" + +#: html/Admin/Elements/SelectRights:80 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:793 lib/RT/Interface/Web.pm:826 +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 "系统错误。设定æƒé™å¤±è´¥ã€‚" + +#: html/Edit/Users/index.html:122 +msgid "System Rights" +msgstr "系统æƒé™" + +#: lib/RT/ACE_Overlay.pm:615 +msgid "System error. Right not delegated." +msgstr "系统错误。æƒé™ä»£ç†å¤±è´¥ã€‚" + +#: 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 "系统错误。设定æƒé™å¤±è´¥ã€‚" + +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "系统错误。无法设定æƒé™ã€‚" + +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +msgid "System groups" +msgstr "系统群组" + +#: NOT FOUND IN SOURCE +msgid "SystemInternal" +msgstr "系统内部用" + +#: etc/initialdata:59 etc/initialdata:65 etc/initialdata:71 +msgid "SystemRolegroup for internal use" +msgstr "内部使用的系统角色群组" + +#: lib/RT/CurrentUser.pm:319 +msgid "TEST_STRING" +msgstr "TEST_STRING" + +#: html/Ticket/Elements/Tabs:142 +msgid "Take" +msgstr "å—ç†" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "Take tickets" +msgstr "自行承办申请å•" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "TakeTicket" +msgstr "自行承办申请å•" + +#: lib/RT/Transaction_Overlay.pm:573 +msgid "Taken" +msgstr "å·²å—ç†" + +#: html/Admin/Elements/EditScrip:80 +msgid "Template" +msgstr "模æ¿" + +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "æ¨¡æ¿ #%1" + +#: html/Edit/Global/Template/List:9 html/Edit/Global/Template/Top:17 +msgid "Template Content" +msgstr "通知模æ¿å†…容" + +#: html/Edit/Global/Template/List:8 html/Edit/Global/Template/Top:13 +msgid "Template Description" +msgstr "é€šçŸ¥æ¨¡æ¿æè¿°" + +#: html/Edit/Global/Template/List:7 html/Edit/Global/Template/Top:9 +msgid "Template Name" +msgstr "通知模æ¿åç§°" + +#: html/Admin/Elements/EditTemplates:88 +msgid "Template deleted" +msgstr "模æ¿å·²åˆ é™¤" + +#: lib/RT/Scrip_Overlay.pm:152 +msgid "Template not found" +msgstr "找ä¸åˆ°æ¨¡æ¿" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "找ä¸åˆ°æ¨¡æ¿\\n" + +#: lib/RT/Template_Overlay.pm:352 +msgid "Template parsed" +msgstr "模æ¿å‰–æžå®Œæ¯•" + +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +msgid "Templates" +msgstr "模æ¿" + +#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:19 +msgid "Templates " +msgstr "通知模æ¿" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "找ä¸åˆ° %1 的模æ¿\\n" + +#: lib/RT/Interface/Web.pm:894 +msgid "That is already the current value" +msgstr "å·²ç»æ˜¯ç›®å‰å­—段的值" + +#: lib/RT/CustomField_Overlay.pm:242 +msgid "That is not a value for this custom field" +msgstr "è¿™ä¸æ˜¯è¯¥è‡ªè®¢å­—段的值" + +#: lib/RT/Ticket_Overlay.pm:1908 +msgid "That is the same value" +msgstr "åŒæ ·çš„值" + +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "这项å•ä½å·²ç»æ‹¥æœ‰è¯¥æƒé™" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä¸ªè¡¨å•çš„ %1" + +#: lib/RT/Ticket_Overlay.pm:1442 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "这项å•ä½ä¸æ˜¯è¿™ä¸ªè¡¨å•çš„ %1" + +#: lib/RT/Ticket_Overlay.pm:1559 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "这项å•ä½ä¸æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" + +#: lib/RT/Ticket_Overlay.pm:1904 +msgid "That queue does not exist" +msgstr "此表å•ä¸å­˜åœ¨" + +#: lib/RT/Ticket_Overlay.pm:3246 +msgid "That ticket has unresolved dependencies" +msgstr "è¿™ä»½ç”³è¯·å•æœ‰å°šæœªè§£å†³çš„附属申请å•" + +#: NOT FOUND IN SOURCE +msgid "That user already has that right" +msgstr "使用者已具有该项æƒé™" + +#: lib/RT/Ticket_Overlay.pm:3056 +msgid "That user already owns that ticket" +msgstr "è¯¥ä½¿ç”¨è€…å·²ç»æ‰¿åŠžè¿™ä»½ç”³è¯·å•" + +#: lib/RT/Ticket_Overlay.pm:3028 +msgid "That user does not exist" +msgstr "使用者ä¸å­˜åœ¨" + +#: lib/RT/User_Overlay.pm:374 +msgid "That user is already privileged" +msgstr "è¿™åä½¿ç”¨è€…å·²ç»æ˜¯å†…部æˆå‘˜" + +#: lib/RT/User_Overlay.pm:395 +msgid "That user is already unprivileged" +msgstr "è¿™å使用者属于éžå†…部æˆå‘˜ç¾¤ç»„" + +#: lib/RT/User_Overlay.pm:387 +msgid "That user is now privileged" +msgstr "使用者加入内部æˆå‘˜ç¾¤ç»„完毕" + +#: lib/RT/User_Overlay.pm:408 +msgid "That user is now unprivileged" +msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" + +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" + +#: lib/RT/Ticket_Overlay.pm:3049 +msgid "That user may not own tickets in that queue" +msgstr "使用者å¯èƒ½æ²¡æœ‰æ‰¿åŠžè¡¨å•里的申请å•" + +#: lib/RT/Link_Overlay.pm:205 +msgid "That's not a numerical id" +msgstr "è¿™ä¸æ˜¯ä¸€ä¸ªæ•°å­—ç¼–å·" + +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +msgid "The Basics" +msgstr "基本信æ¯" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The CC of a ticket" +msgstr "申请å•的副本收件人" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The administrative CC of a ticket" +msgstr "申请å•的管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" + +#: lib/RT/Ticket_Overlay.pm:2235 +msgid "The comment has been recorded" +msgstr "评论已被纪录" + +#: bin/rt-crontool:197 +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:" + +#: bin/rt-commit-handler:755 bin/rt-commit-handler:765 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "以下命令未被执行:\\n\\n" + +#: lib/RT/Interface/Web.pm:897 +msgid "The new value has been set." +msgstr "新的字段值设定完æˆã€‚" + +#: lib/RT/ACE_Overlay.pm:85 +msgid "The owner of a ticket" +msgstr "申请å•的承办人" + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The requestor of a ticket" +msgstr "申请å•的申请人" + +#: html/Admin/Elements/EditUserComments:25 +msgid "These comments aren't generally visible to the user" +msgstr "该使用者ä¸ä¼šçœ‹è§è¿™äº›è¯„论" + +#: html/Edit/Global/Workflow/Owner.html:32 +msgid "Third-" +msgstr "三" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "ç”³è¯·å• %1 %2 (%3)\\n" + +#: bin/rt-crontool:188 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "此工具程åºä¼šè®©ä½¿ç”¨è€…ç»ç”± RT 执行任æ„命令。" + +#: lib/RT/Transaction_Overlay.pm:251 +msgid "This transaction appears to have no content" +msgstr "此项更动报告没有内容" + +#: html/Ticket/Elements/ShowRequestor:46 +#. ($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:391 +msgid "Thu." +msgstr "星期四" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:163 +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:24 html/Ticket/ModifyAll.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "æ›´æ–°ç”³è¯·å• #%1 的全部信æ¯ï¼š%2" + +#: html/Approvals/Elements/ShowDependency:45 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "ç”³è¯·å• #%1: %2" + +#: lib/RT/Ticket_Overlay.pm:595 lib/RT/Ticket_Overlay.pm:616 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "ç”³è¯·å• #%1 æˆåŠŸæ–°å¢žäºŽ '%2' 表å•" + +#: bin/rt-commit-handler:759 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "åŠ è½½ç”³è¯·å• %1\\n" + +#: html/Search/Bulk.html:212 html/Work/Search/Bulk.html:169 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "ç”³è¯·å• %1:%2" + +#: html/Edit/Queues/Basic/Top:28 html/Edit/Queues/List:16 html/Work/Queues/List:9 +msgid "Ticket Due" +msgstr "表å•å¤„ç†æœŸé™" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "申请å•处ç†çºªå½• # %1 %2" + +#: html/Work/Elements/List:6 +msgid "Ticket ID" +msgstr "å•å·" + +#: NOT FOUND IN SOURCE +msgid "Ticket Id" +msgstr "申请å•ç¼–å·" + +#: NOT FOUND IN SOURCE +msgid "Ticket Processing Due" +msgstr "表å•è¿è¡ŒæœŸé™" + +#: etc/initialdata:332 +msgid "Ticket Resolved" +msgstr "申请å•已解决" + +#: html/Edit/Queues/Basic/Top:18 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:7 html/Edit/Queues/index.html:31 html/Work/Delegates/List:7 html/Work/Delegates/index.html:11 html/Work/Elements/List:12 html/Work/Elements/SelectSearch:9 html/Work/Queues/List:6 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:11 html/Work/Tickets/Create.html:42 html/Work/Tickets/Elements/ShowBasics:33 +msgid "Ticket Type" +msgstr "表å•ç§ç±»" + +#: html/Search/Elements/PickRestriction:62 html/Work/Search/PickRestriction:43 +msgid "Ticket attachment" +msgstr "申请å•附件" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "申请å•内容" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "申请å•内容类别" + +#: lib/RT/Ticket_Overlay.pm:485 lib/RT/Ticket_Overlay.pm:494 lib/RT/Ticket_Overlay.pm:504 lib/RT/Ticket_Overlay.pm:605 +msgid "Ticket could not be created due to an internal error" +msgstr "内部错误,无法新增申请å•" + +#: lib/RT/Transaction_Overlay.pm:520 +msgid "Ticket created" +msgstr "ç”³è¯·å•æ–°å¢žå®Œæ¯•" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "ç”³è¯·å•æ–°å¢žå¤±è´¥" + +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Ticket deleted" +msgstr "申请å•删除完毕" + +#: NOT FOUND IN SOURCE +msgid "Ticket id not found" +msgstr "找ä¸åˆ°ç”³è¯·å•ç¼–å·" + +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "申请å•删除完毕" + +#: NOT FOUND IN SOURCE +msgid "Ticket not found" +msgstr "找ä¸åˆ°ç”³è¯·å•" + +#: etc/initialdata:318 +msgid "Ticket status changed" +msgstr "申请å•现况已改å˜" + +#: html/Ticket/Update.html:38 +msgid "Ticket watchers" +msgstr "申请å•视察员" + +#: html/Elements/Tabs:46 +msgid "Tickets" +msgstr "申请å•" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "ç”³è¯·å• %1 %2" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "ç”³è¯·å• %1 (%2)" + +#: html/Elements/ViewUser:25 +#. ($name) +msgid "Tickets from %1" +msgstr "%1 的申请å•" + +#: html/Approvals/Elements/ShowDependency:26 +msgid "Tickets which depend on this approval:" +msgstr "批准之åŽï¼Œå¯æŽ¥ç»­å¤„ç†ï¼š" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +msgid "Time Left" +msgstr "剩馀时间" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 +msgid "Time Worked" +msgstr "å¤„ç†æ—¶é—´" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "剩馀时间" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "显示时间" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "å·²å¤„ç†æ—¶é—´" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "剩馀时间" + +#: lib/RT/Ticket_Overlay.pm:1173 +msgid "TimeWorked" +msgstr "å·²å¤„ç†æ—¶é—´" + +#: bin/rt-commit-handler:401 +msgid "To generate a diff of this commit:" +msgstr "产生这次更动的差异档:" + +#: bin/rt-commit-handler:390 +msgid "To generate a diff of this commit:\\n" +msgstr "产生这次更动的差异档:\\n" + +#: lib/RT/Ticket_Overlay.pm:1176 +msgid "Told" +msgstr "告知日期" + +#: html/Edit/Elements/Page:46 +msgid "Total" +msgstr "页" + +#: etc/initialdata:239 +msgid "Transaction" +msgstr "更动" + +#: lib/RT/Transaction_Overlay.pm:640 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "清除更动报告 %1" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "更动报告已新增" + +#: lib/RT/Transaction_Overlay.pm:88 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "未指定申请å•ç¼–å·ï¼Œæ— æ³•新增更动" + +#: lib/RT/Transaction_Overlay.pm:699 +msgid "Transactions are immutable" +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:389 +msgid "Tue." +msgstr "星期二" + +#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1174 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "类别" + +#: lib/RT/ScripCondition_Overlay.pm:103 +msgid "Unimplemented" +msgstr "尚无实作" + +#: html/Admin/Users/Modify.html:67 +msgid "Unix login" +msgstr "外部系统登入å¸å·" + +#: html/Admin/Elements/ModifyUser:61 +msgid "UnixUsername" +msgstr "外部系统登入å¸å·" + +#: lib/RT/Attachment_Overlay.pm:273 lib/RT/Attachment_Overlay.pm:303 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "ä¸å¯è§£çš„å†…å®¹æ–‡å­—ç¼–ç æ–¹å¼ %1" + +#: html/Elements/SelectResultsPerPage:36 +msgid "Unlimited" +msgstr "全数显示" + +#: etc/initialdata:50 +msgid "Unprivileged" +msgstr "éžå†…部æˆå‘˜" + +#: lib/RT/Transaction_Overlay.pm:569 +msgid "Untaken" +msgstr "未被å—ç†" + +#: html/Edit/Elements/Page:13 html/Edit/Elements/Page:15 +msgid "Up" +msgstr "上一页" + +#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:72 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:82 +msgid "Update" +msgstr "处ç†" + +#: html/Admin/Users/Prefs.html:61 +msgid "Update ID" +msgstr "æ›´æ–°ç¼–å·" + +#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:65 html/Work/Search/Bulk.html:81 html/Work/Tickets/Update.html:32 +msgid "Update Type" +msgstr "更新类别" + +#: html/Search/Listing.html:60 html/Work/Search/index.html:32 +msgid "Update all these tickets at once" +msgstr "整批更新申请å•" + +#: html/Admin/Users/Prefs.html:48 +msgid "Update email" +msgstr "更新电å­é‚®ä»¶ä¿¡ç®±" + +#: html/Admin/Users/Prefs.html:54 +msgid "Update name" +msgstr "æ›´æ–°å¸å·" + +#: lib/RT/Interface/Web.pm:409 +msgid "Update not recorded." +msgstr "更新未被记录" + +#: html/Search/Bulk.html:80 html/Work/Search/Bulk.html:52 +msgid "Update selected tickets" +msgstr "更新选择的申请å•" + +#: html/Admin/Users/Prefs.html:35 +msgid "Update signature" +msgstr "更新签章" + +#: html/Ticket/ModifyAll.html:62 +msgid "Update ticket" +msgstr "更新申请å•" + +#: NOT FOUND IN SOURCE +msgid "Update ticket # %1" +msgstr "æ›´æ–°ç”³è¯·å• # %1" + +#: html/SelfService/Update.html:24 html/SelfService/Update.html:46 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "æ›´æ–°ç”³è¯·å• #%1" + +#: html/Ticket/Update.html:138 html/Work/Tickets/Update.html:122 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "æ›´æ–°ç”³è¯·å• #%1 (%2)" + +#: lib/RT/Interface/Web.pm:407 +msgid "Update type was neither correspondence nor comment." +msgstr "更新的内容并éžç”³è¯·å•回å¤ä¹Ÿä¸æ˜¯è¯„论" + +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:50 lib/RT/Ticket_Overlay.pm:1177 +msgid "Updated" +msgstr "剿¬¡æ›´æ–°" + +#: html/Work/Preferences/index.html:15 +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" + +#: 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:142 etc/initialdata:209 +msgid "User Defined" +msgstr "使用者自订" + +#: html/Admin/Users/Prefs.html:58 html/Edit/Users/List:13 html/Edit/Users/Top:42 +msgid "User ID" +msgstr "使用者 ID" + +#: html/Elements/SelectUsers:25 +msgid "User Id" +msgstr "使用者 ID" + +#: html/Edit/Elements/PickUsers:12 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/List:5 html/Edit/Users/Search.html:23 html/Edit/Users/Top:8 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 +msgid "User Number" +msgstr "员工编å·" + +#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:22 +msgid "User Rights" +msgstr "使用者æƒé™" + +#: html/Edit/Elements/Tab:32 +msgid "User Setup" +msgstr "使用者设定" + +#: html/Edit/Users/Info:38 +msgid "User Shift" +msgstr "员工ç­åˆ«" + +#: html/Admin/Users/Modify.html:225 +#. ($msg) +msgid "User could not be created: %1" +msgstr "无法新增使用者:%1" + +#: lib/RT/User_Overlay.pm:321 +msgid "User created" +msgstr "使用者新增完毕" + +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "使用者定义的群组" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "已通知使用者" + +#: html/Admin/Users/Prefs.html:24 html/Admin/Users/Prefs.html:28 +msgid "User view" +msgstr "使用者ç§äººæ•°æ®" + +#: NOT FOUND IN SOURCE +msgid "UserDefined" +msgstr "使用者自定" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +msgid "Username" +msgstr "å¸å·" + +#: 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 html/Work/Tickets/Elements/ShowTransaction:8 +msgid "Users" +msgstr "使用者" + +#: html/Admin/Users/index.html:64 +msgid "Users matching search criteria" +msgstr "ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„使用者" + +#: html/Search/Elements/PickRestriction:50 html/Work/Search/PickRestriction:31 +msgid "ValueOfQueue" +msgstr "选择表å•" + +#: html/Admin/Elements/EditCustomField:56 +msgid "Values" +msgstr "字段值" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Watch" +msgstr "视察" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "WatchAsAdminCc" +msgstr "以管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è§†å¯Ÿ" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "æˆåŠŸåŠ è½½è§†å¯Ÿå‘˜ä¿¡æ¯" + +#: html/Admin/Elements/QueueTabs:41 +msgid "Watchers" +msgstr "视察员" + +#: html/Admin/Elements/ModifyUser:55 +msgid "WebEncoding" +msgstr "ç½‘é¡µæ–‡å­—ç¼–ç æ–¹å¼" + +#: NOT FOUND IN SOURCE +msgid "Wed" +msgstr "星期三" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "星期三" + +#: etc/initialdata:533 etc/upgrade/2.1.71:161 html/Edit/Elements/CreateApprovalsQueue:135 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "当申请å•通过所有签核åŽï¼Œå°†æ­¤è®¯æ¯å›žå¤åˆ°åŽŸç”³è¯·å•" + +#: etc/initialdata:497 etc/upgrade/2.1.71:135 html/Edit/Elements/CreateApprovalsQueue:107 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "当申请å•通过æŸé¡¹ç­¾æ ¸åŽï¼Œå°†æ­¤è®¯æ¯å›žå¤åˆ°åŽŸç”³è¯·å•" + +#: etc/initialdata:156 +msgid "When a ticket is created" +msgstr "æ–°å¢žç”³è¯·å•æ—¶" + +#: etc/initialdata:428 etc/upgrade/2.1.71:79 html/Edit/Elements/CreateApprovalsQueue:51 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "ç­¾æ ¸å•æ–°å¢žä¹‹åŽï¼Œé€šçŸ¥åº”å—ç†çš„æ‰¿åŠžäººåŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata:161 +msgid "When anything happens" +msgstr "当任何事情å‘生时" + +#: etc/initialdata:202 +msgid "Whenever a ticket is resolved" +msgstr "当申请å•解决时" + +#: etc/initialdata:188 +msgid "Whenever a ticket's owner changes" +msgstr "å½“ç”³è¯·å•æ›´æ¢æ‰¿åŠžäººæ—¶" + +#: etc/initialdata:196 +msgid "Whenever a ticket's queue changes" +msgstr "å½“ç”³è¯·å•æ›´æ¢è¡¨å•æ—¶" + +#: etc/initialdata:180 +msgid "Whenever a ticket's status changes" +msgstr "å½“ç”³è¯·å•æ›´æ–°çŽ°å†µæ—¶" + +#: etc/initialdata:210 +msgid "Whenever a user-defined condition occurs" +msgstr "当使用者自订的情况å‘生时" + +#: etc/initialdata:174 +msgid "Whenever comments come in" +msgstr "当评论é€è¾¾æ—¶" + +#: etc/initialdata:167 +msgid "Whenever correspondence comes in" +msgstr "当回å¤é€è¾¾æ—¶" + +#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:51 html/Work/Preferences/Info:31 +msgid "Work" +msgstr "å…¬å¸" + +#: html/Admin/Elements/ModifyUser:69 +msgid "WorkPhone" +msgstr "å…¬å¸ç”µè¯" + +#: html/Ticket/Elements/ShowBasics:34 html/Ticket/Update.html:64 +msgid "Worked" +msgstr "å¤„ç†æ—¶é—´" + +#: html/Admin/Global/Workflow.html:91 html/Admin/Queues/Workflow.html:89 +#. ($WorkflowObj->Id()) +msgid "Workflow #%1" +msgstr "æµç¨‹ #%1" + +#: html/Edit/Global/Workflow/List:15 +msgid "Workflow Begin" +msgstr "æµç¨‹å¼€å§‹" + +#: html/Edit/Global/Workflow/List:20 +msgid "Workflow End" +msgstr "æµç¨‹ç»“æŸ" + +#: html/Admin/Elements/EditWorkflows:90 +msgid "Workflow deleted" +msgstr "æµç¨‹å·²åˆ é™¤" + +#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:21 +msgid "Workflows" +msgstr "æµç¨‹" + +#: html/Edit/Global/Basic/Top:25 +msgid "Yes" +msgstr "是" + +#: lib/RT/Ticket_Overlay.pm:3159 +msgid "You already own this ticket" +msgstr "您已是这份申请å•的承办人" + +#: html/autohandler:122 +msgid "You are not an authorized user" +msgstr "æ‚¨ä¸æ˜¯è¢«æŽˆæƒçš„使用者" + +#: lib/RT/Ticket_Overlay.pm:3041 +msgid "You can only reassign tickets that you own or 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 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "æ‚¨ä¼šåœ¨è¡¨å• %2 找到 %1 的申请å•" + +#: html/NoAuth/Logout.html:30 +msgid "You have been logged out of RT." +msgstr "您已注销 RT。" + +#: html/SelfService/Display.html:77 +msgid "You have no permission to create tickets in that queue." +msgstr "æ‚¨æ²¡æœ‰åœ¨è¯¥è¡¨å•æ–°å¢žç”³è¯·å•çš„æƒé™ã€‚" + +#: lib/RT/Ticket_Overlay.pm:1917 +msgid "You may not create requests in that queue." +msgstr "您ä¸èƒ½åœ¨è¯¥è¡¨å•中æå‡ºç”³è¯·ã€‚" + +#: html/Edit/Global/Basic/Top:38 +msgid "You need to restart the Request Tracker service for saved changes to take effect." +msgstr "æ‚¨å¿…é¡»é‡æ–°æ¿€æ´» Request Tracker æœåŠ¡ï¼Œå‚¨å­˜çš„æ›´åŠ¨æ‰ä¼šç”Ÿæ•ˆã€‚" + +#: html/NoAuth/Logout.html:34 +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:514 etc/upgrade/2.1.71:146 html/Edit/Elements/CreateApprovalsQueue:119 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "申请å•已由 %1 批准。å¯èƒ½è¿˜æœ‰å…¶å®ƒå¾…签核的步骤。" + +#: etc/initialdata:552 etc/upgrade/2.1.71:180 html/Edit/Elements/CreateApprovalsQueue:154 +msgid "Your request has been approved." +msgstr "您的申请å•已完æˆç­¾æ ¸ç¨‹åºã€‚" + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "您的申请å•已被驳回" + +#: etc/initialdata:455 +msgid "Your request was rejected by %1." +msgstr "您的申请å•已被 %1 驳回。" + +#: etc/upgrade/2.1.71:101 html/Edit/Elements/CreateApprovalsQueue:73 +msgid "Your request was rejected." +msgstr "您的申请å•已被驳回。" + +#: html/autohandler:144 +msgid "Your username or password is incorrect" +msgstr "您的å¸å·æˆ–å£ä»¤æœ‰è¯¯" + +#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:95 html/Work/Preferences/Info:84 +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 "急讯" + +#: html/User/Elements/DelegateRights:58 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "æƒé™åŒ %1" + +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "已解决" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +msgid "contains" +msgstr "包å«" + +#: html/Elements/SelectAttachmentField:25 +msgid "content" +msgstr "内容" + +#: html/Elements/SelectAttachmentField:26 +msgid "content-type" +msgstr "类型" + +#: lib/RT/Ticket_Overlay.pm:2304 +msgid "correspondence (probably) not sent" +msgstr "申请å•回å¤(å¯èƒ½)未é€å‡º" + +#: lib/RT/Ticket_Overlay.pm:2314 +msgid "correspondence sent" +msgstr "申请å•回å¤å·²é€å‡º" + +#: NOT FOUND IN SOURCE +msgid "critical" +msgstr "严é‡" + +#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:31 html/Edit/Queues/List:18 html/Work/Queues/List:11 lib/RT/Date.pm:319 +msgid "days" +msgstr "天" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "æ‹’ç»å¤„ç†" + +#: NOT FOUND IN SOURCE +msgid "debug" +msgstr "侦错" + +#: html/Search/Listing.html:74 +msgid "delete" +msgstr "删除" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "deleted" +msgstr "已删除" + +#: html/Search/Elements/PickRestriction:67 html/Work/Search/PickRestriction:47 +msgid "does not match" +msgstr "ä¸ç¬¦åˆ" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +msgid "doesn't contain" +msgstr "ä¸åŒ…å«" + +#: NOT FOUND IN SOURCE +msgid "emergency" +msgstr "å±éš¾" + +#: html/Elements/SelectEqualityOperator:37 +msgid "equal to" +msgstr "等于" + +#: NOT FOUND IN SOURCE +msgid "error" +msgstr "错误" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "å‡" + +#: html/Elements/SelectAttachmentField:27 +msgid "filename" +msgstr "æ¡£å" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +msgid "greater than" +msgstr "大于" + +#: lib/RT/Group_Overlay.pm:193 +#. ($self->Name) +msgid "group '%1'" +msgstr "群组 '%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "å°æ—¶" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "ç¼–å·" + +#: NOT FOUND IN SOURCE +msgid "info" +msgstr "ä¿¡æ¯" + +#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:69 +msgid "is" +msgstr "是" + +#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:70 +msgid "isn't" +msgstr "䏿˜¯" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +msgid "less than" +msgstr "å°äºŽ" + +#: html/Edit/Global/Workflow/Owner.html:35 +msgid "level Admins" +msgstr "层主管" + +#: html/Search/Elements/PickRestriction:66 html/Work/Search/PickRestriction:46 +msgid "matches" +msgstr "符åˆ" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "分" + +#: html/Ticket/Update.html:64 +msgid "minutes" +msgstr "分钟" + +#: bin/rt-commit-handler:764 +msgid "modifications\\n\\n" +msgstr "更改\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "月" + +#: lib/RT/Queue_Overlay.pm:57 +msgid "new" +msgstr "新建立" + +#: html/Admin/Elements/EditScrips:42 +msgid "no value" +msgstr "没有值" + +#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/Basic/Top:50 html/Edit/Queues/List:18 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:11 html/Work/Tickets/Elements/ShowBasics:27 +msgid "none" +msgstr "æ— " + +#: html/Elements/SelectEqualityOperator:37 +msgid "not equal to" +msgstr "ä¸ç­‰äºŽ" + +#: NOT FOUND IN SOURCE +msgid "notice" +msgstr "æç¤º" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "ä¸ç¬¦åˆ" + +#: html/Edit/Elements/PickUsers:17 html/Edit/Users/Add.html:18 html/Edit/Users/Search.html:28 html/Work/Tickets/Cc:15 +msgid "number" +msgstr "å·" + +#: html/SelfService/Elements/MyRequests:60 lib/RT/Queue_Overlay.pm:58 +msgid "open" +msgstr "å¼€å¯" + +#: NOT FOUND IN SOURCE +msgid "opened" +msgstr "已开å¯" + +#: lib/RT/Group_Overlay.pm:198 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "使用者「%2ã€çš„「%1ã€ä»£ç†äººç¾¤ç»„" + +#: lib/RT/Group_Overlay.pm:206 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "è¡¨å• %1 %2" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "rejected" +msgstr "已驳回" + +#: html/Work/Elements/SelectSearch:21 lib/RT/Queue_Overlay.pm:60 +msgid "resolved" +msgstr "已处ç†" + +#: html/Edit/Global/Basic/Top:48 +msgid "rtname" +msgstr "æœåС噍åç§°" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "ç§’" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "stalled" +msgstr "延宕" + +#: lib/RT/Group_Overlay.pm:201 +#. ($self->Type) +msgid "system %1" +msgstr "系统 %1" + +#: lib/RT/Group_Overlay.pm:212 +#. ($self->Type) +msgid "system group '%1'" +msgstr "系统群组 '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:41 +msgid "the calling component did not specify why" +msgstr "呼å«ç»„件未指明原因" + +#: lib/RT/Group_Overlay.pm:209 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "ç”³è¯·å• #%1 %2" + +#: html/Work/Elements/SelectSearch:27 +msgid "till" +msgstr "至" + +#: html/Edit/Elements/PickUsers:15 html/Edit/Global/Workflow/Condition:30 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 +msgid "to" +msgstr "到" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "真" + +#: lib/RT/Group_Overlay.pm:215 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "没有æè¿°çš„群组 %1" + +#: html/Work/Elements/SelectSearch:19 +msgid "unresolved" +msgstr "未处ç†" + +#: lib/RT/Group_Overlay.pm:190 +#. ($user->Object->Name) +msgid "user %1" +msgstr "使用者 %1" + +#: NOT FOUND IN SOURCE +msgid "warning" +msgstr "警告" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "周" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "模æ¿ï¼š%1" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "å¹´" + diff --git a/rt/lib/RT/I18N/zh_tw.po b/rt/lib/RT/I18N/zh_tw.po new file mode 100644 index 000000000..8c8c86e1f --- /dev/null +++ b/rt/lib/RT/I18N/zh_tw.po @@ -0,0 +1,6416 @@ +# Traditional Chinese localization catalog for Request Tracker (RT) +msgid "" +msgstr "" +"Last-Translator: Autrijus Tang <autrijus@autrijus.org>\n" +"Language-Team: Chinese <members@ourinet.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: html/Elements/MyRequests:27 html/Elements/MyTickets:27 html/Work/Elements/MyApprovals:8 html/Work/Elements/MyRequests:15 html/Work/Elements/MyTickets:15 +msgid "#" +msgstr "#" + +#: NOT FOUND IN SOURCE +msgid "#%1" +msgstr "#%1" + +#: 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 +#. ($Ticket->Id, $Ticket->Subject) +#. ($Ticket->id, $Ticket->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "#%1: %2" + +#: 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/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "%1 %2" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($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 "%7-%2-%3 %4:%5:%6 %1" + +#: lib/RT/Ticket_Overlay.pm:3532 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "%2 已新增為 %1" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "%1 %2 之å‰" + +#: lib/RT/Ticket_Overlay.pm:3538 lib/RT/Transaction_Overlay.pm:564 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 已從 %2 改為 %3" + +#: lib/RT/Ticket_Overlay.pm:3535 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "%2 已自 %1 刪除" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:157 +#. ($depth_str, $role_str, $group_str) +msgid "%1 %2 of group %3" +msgstr "%3 群組的 %1 %2" + +#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 +#. (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/Search/Listing.html:56 html/Work/Search/index.html:28 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "顯示第 %1 - %2 ç­†" + +#: bin/rt-crontool:168 bin/rt-crontool:175 bin/rt-crontool:181 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "%1 - 傳éžçµ¦ %2 çš„ä¸€å€‹åƒæ•¸" + +#: bin/rt-crontool:184 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - 將更新狀態輸出到 STDOUT" + +#: bin/rt-crontool:178 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - 指定欲使用的動作模組" + +#: bin/rt-crontool:172 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - 指定欲使用的æ¢ä»¶æ¨¡çµ„" + +#: bin/rt-crontool:165 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - 指定欲使用的查詢模組" + +#: lib/RT/ScripAction_Overlay.pm:121 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "載入手續 %1" + +#: html/Edit/Elements/Page:48 +#. (scalar $count) +msgid "%1 Total" +msgstr "å…± %1 ç­†" + +#: lib/RT/Ticket_Overlay.pm:3565 +#. ($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:116 lib/RT/Link_Overlay.pm:123 +#. ($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:51 lib/RT/Transaction_Overlay.pm:481 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 (%2)" + +#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:624 lib/RT/Transaction_Overlay.pm:633 lib/RT/Transaction_Overlay.pm:636 +#. ($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 的值從 %2 改為 %3" + +#: lib/RT/Interface/Web.pm:893 x:896 +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:2830 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 ç„¡æ³•å°‡ç¾æ³è¨­æˆå·²è§£æ±ºã€‚RT 資料庫內容å¯èƒ½ä¸ä¸€è‡´ã€‚" + +#: html/Elements/MyTickets:24 html/Work/Elements/MyTickets:9 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "å‰ %1 份待處ç†ç”³è«‹å–®..." + +#: html/Elements/MyRequests:24 html/Work/Elements/MyRequests:9 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "å‰ %1 份é€å‡ºçš„申請單..." + +#: html/Work/Elements/MyApprovals:5 +#. ($rows) +msgid "%1 highest priority tickets pending my approval..." +msgstr "å‰ %1 份待簽核申請單..." + +#: bin/rt-crontool:160 +#. ($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:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å–®çš„ %2。" + +#: lib/RT/Ticket_Overlay.pm:1569 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 å·²ä¸å†æ˜¯æ­¤ç”³è«‹å–®çš„ %2。" + +#: lib/RT/Ticket_Overlay.pm:3621 +#. ($args{'Value'}, $cf->Name) +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/ShowBasics:35 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 分é˜" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "沒有顯示 %1" + +#: NOT FOUND IN SOURCE +msgid "%1 result(s) found" +msgstr "找到 %1 é …çµæžœ" + +#: html/User/Elements/DelegateRights:75 +#. (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:41 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 會解決在已解決群組裡æˆå“¡çš„申請單。" + +#: lib/RT/Action/StallDependent.pm:40 +#. (ref $self) +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "如果 %1 起始申請單ä¾è³´æ–¼æŸå€‹éˆçµï¼Œæˆ–是æŸå€‹éˆçµçš„æˆå“¡ï¼Œå®ƒå°‡æœƒè¢«å»¶å®•ã€‚" + +#: lib/RT/Transaction_Overlay.pm:433 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1:未指定附件" + +#: html/Ticket/Elements/ShowTransaction:89 html/Work/Tickets/Elements/ShowTransaction:154 +#. ($size) +msgid "%1b" +msgstr "%1 ä½å…ƒçµ„" + +#: html/Ticket/Elements/ShowTransaction:86 html/Work/Tickets/Elements/ShowTransaction:151 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "%1k ä½å…ƒçµ„" + +#: NOT FOUND IN SOURCE +msgid "%quant(%1,result) found" +msgstr "找到 %1 é …çµæžœ" + +#: lib/RT/Ticket_Overlay.pm:1158 +#. ($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:24 html/Admin/Elements/EditQueueWatchers:28 html/Admin/Elements/EditScrips:34 html/Admin/Elements/EditTemplates:35 html/Admin/Elements/EditWorkflows:36 html/Admin/Groups/Members.html:51 html/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 +msgid "(Check box to delete)" +msgstr "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" + +#: html/Ticket/Create.html:177 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(éµå…¥ç”³è«‹å–®ç·¨è™Ÿæˆ–ç¶²å€ï¼Œä»¥ç©ºç™½åˆ†éš”)" + +#: 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 "(如果留白, 則é è¨­ç‚º %1)" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "(沒有值)" + +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +msgid "(No custom fields)" +msgstr "(沒有自訂欄ä½)" + +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +msgid "(No members)" +msgstr "(沒有æˆå“¡)" + +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +msgid "(No scrips)" +msgstr "(沒有手續)" + +#: html/Admin/Elements/EditTemplates:30 +msgid "(No templates)" +msgstr "沒有範本" + +#: html/Admin/Elements/EditWorkflows:31 +msgid "(No workflows)" +msgstr "沒有æµç¨‹" + +#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:52 +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/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 "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本給å單上以逗號隔開的管ç†å“¡é›»å­éƒµä»¶ä½å€ã€‚這<b>將會</b>更改後續的收件者å單。)" + +#: html/Ticket/Update.html:79 +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/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 "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本給å單上以逗號隔開的電å­éƒµä»¶ä½å€ã€‚這<b>將會</b>更改後續的收件者å單。)" + +#: html/Ticket/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:48 html/Work/Tickets/Elements/ShowCustomFieldEntries:13 +msgid "(delete)" +msgstr "(刪除)" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +msgid "(empty)" +msgstr "(空白)" + +#: html/Edit/Global/CustomField/index.html:113 html/Edit/Global/Scrip/index.html:111 html/Edit/Global/Template/index.html:106 +msgid "(new)" +msgstr "(新增)" + +#: html/Admin/Users/index.html:38 +msgid "(no name listed)" +msgstr "(沒有列出姓å)" + +#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:42 html/Work/Elements/MyTickets:51 +msgid "(no subject)" +msgstr "(沒有主題)" + +#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:60 html/Ticket/Elements/EditCustomFieldValues:52 html/Ticket/Elements/ShowCustomFields:35 html/Work/Elements/EditCustomFieldValues:50 html/Work/Elements/EditCustomFields:32 html/Work/Tickets/Elements/EditCustomFieldValues:33 lib/RT/Transaction_Overlay.pm:534 +msgid "(no value)" +msgstr "(ç„¡)" + +#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:115 html/Work/Search/BulkLinks:3 +msgid "(only one ticket)" +msgstr "(僅能指定一份申請單)" + +#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:17 html/Work/Elements/MyRequests:52 html/Work/Elements/MyTickets:66 html/Work/Tickets/Elements/ShowBasics:52 +msgid "(pending approval)" +msgstr "(等待簽核)" + +#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:54 html/Work/Elements/MyTickets:68 +msgid "(pending other tickets)" +msgstr "(等待其他申請單)" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:246 +msgid "(requestor's group)" +msgstr "(申請人所屬)" + +#: html/Admin/Users/Modify.html:49 +msgid "(required)" +msgstr "(å¿…å¡«)" + +#: html/Ticket/Elements/ShowTransaction:92 html/Work/Tickets/Elements/ShowTransaction:39 +msgid "(untitled)" +msgstr "(未命å)" + +#: 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 html/Work/Elements/104Header:43 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"æå‡ºç”³è«‹å–®\"> %1" + +#: etc/initialdata.zh:221 etc/initialdata:203 +msgid "A blank template" +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:156 lib/RT/Principal_Overlay.pm:180 +msgid "ACE not found" +msgstr "找ä¸åˆ° ACE 設定" + +#: lib/RT/ACE_Overlay.pm:830 +msgid "ACEs can only be created and deleted." +msgstr "祇能新增或刪除 ACE 設定。" + +#: NOT FOUND IN SOURCE +msgid "ACLEquivalence" +msgstr "ACLEquivalence" + +#: bin/rt-commit-handler:754 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "離開以å…ä¸å°å¿ƒæ›´æ”¹åˆ°ç”³è«‹å–®ã€‚\\n" + +#: html/User/Elements/Tabs:31 +msgid "About me" +msgstr "個人資訊" + +#: html/Edit/Users/System:12 +msgid "Access Right" +msgstr "系統使用登錄權é™" + +#: html/Admin/Users/Modify.html:79 +msgid "Access control" +msgstr "å­˜å–æ¬Šé™" + +#: html/Admin/Elements/EditScrip:56 html/Work/Tickets/Elements/ShowTransaction:18 +msgid "Action" +msgstr "動作" + +#: lib/RT/Scrip_Overlay.pm:146 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "動作 %1 找ä¸åˆ°" + +#: bin/rt-crontool:122 +msgid "Action committed." +msgstr "動作執行完畢" + +#: bin/rt-crontool:118 +msgid "Action prepared..." +msgstr "動作準備完畢..." + +#: html/Work/Elements/List:13 html/Work/Elements/SelectSearch:24 html/Work/Tickets/Create.html:28 html/Work/Tickets/Elements/ShowBasics:12 +msgid "Activated Date" +msgstr "申請啟動時間" + +#: html/Edit/Elements/104Buttons:71 html/Edit/Elements/ListButtons:7 +msgid "Add" +msgstr "新增" + +#: html/Search/Bulk.html:95 html/Work/Search/Bulk.html:74 +msgid "Add AdminCc" +msgstr "新增管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" + +#: html/Search/Bulk.html:91 html/Work/Search/Bulk.html:68 +msgid "Add Cc" +msgstr "新增副本收件人" + +#: html/Ticket/Elements/EditCustomFieldEntries:71 html/Work/Tickets/Elements/ShowCustomFieldEntries:49 +msgid "Add Entry" +msgstr "新增列" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 html/Work/Tickets/Elements/AddAttachments:18 +msgid "Add More Files" +msgstr "新增更多附件" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:112 html/Admin/Elements/ModifyTemplateAsWorkflow:45 +msgid "Add Next State" +msgstr "新增下一項關å¡" + +#: html/Search/Bulk.html:87 html/Work/Search/Bulk.html:62 +msgid "Add Requestor" +msgstr "新增申請人" + +#: html/Admin/Elements/AddCustomFieldValue:24 +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:54 +msgid "Add a scrip which will apply to all queues" +msgstr "新增一é“用於所有表單的手續" + +#: html/Search/Bulk.html:127 html/Work/Search/Bulk.html:80 +msgid "Add comments or replies to selected tickets" +msgstr "新增評論或回覆到指定的申請單" + +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +msgid "Add members" +msgstr "新增æˆå“¡" + +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +msgid "Add new watchers" +msgstr "新增視察員" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "新增下一項關å¡" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤è¡¨å–®çš„ %1" + +#: lib/RT/Ticket_Overlay.pm:1453 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤ç”³è«‹å–®çš„ %1" + +#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:87 html/Work/Preferences/Info:77 +msgid "Address1" +msgstr "ä½å€" + +#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:89 html/Work/Preferences/Info:79 +msgid "Address2" +msgstr "ä½å€(續)" + +#: NOT FOUND IN SOURCE +msgid "Adjust Blinking Rate" +msgstr "調整閃çˆé€Ÿåº¦å¿«æ…¢" + +#: html/Edit/Groups/Admin:9 +msgid "Admin" +msgstr "管ç†å“¡" + +#: html/Ticket/Create.html:73 +msgid "Admin Cc" +msgstr "管ç†å“¡å‰¯æœ¬" + +#: etc/initialdata.zh:303 etc/initialdata:280 +msgid "Admin Comment" +msgstr "管ç†å“¡è©•è«–" + +#: etc/initialdata.zh:261 etc/initialdata:259 +msgid "Admin Correspondence" +msgstr "管ç†å“¡å›žè¦†" + +#: NOT FOUND IN SOURCE +msgid "Admin Rights" +msgstr "管ç†å“¡æ¬Šé™" + +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +msgid "Admin queues" +msgstr "表單管ç†" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "使用者管ç†" + +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +msgid "Admin/Global configuration" +msgstr "管ç†/全域設定" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "管ç†/群組" + +#: html/Admin/Queues/Modify.html:24 html/Admin/Queues/Modify.html:28 +msgid "Admin/Queue/Basics" +msgstr "管ç†/表單/基本資訊" + +#: html/Edit/Global/Basic/Top:60 +msgid "AdminAddress" +msgstr "管ç†å“¡ Email" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "ç®¡ç†æ‰€æœ‰ä»£ç†äººç¾¤çµ„" + +#: etc/initialdata.zh:74 etc/initialdata:56 html/Admin/Elements/ModifyTemplateAsWorkflow:155 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 lib/RT/ACE_Overlay.pm:88 +msgid "AdminCc" +msgstr "管ç†å“¡å‰¯æœ¬" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "管ç†å“¡è©•è«–" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "管ç†å“¡å›žè¦†" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "AdminCustomFields" +msgstr "管ç†è‡ªè¨‚欄ä½" + +#: html/Edit/Groups/Admin:12 lib/RT/Group_Overlay.pm:145 +msgid "AdminGroup" +msgstr "管ç†ç¾¤çµ„" + +#: NOT FOUND IN SOURCE +msgid "AdminGroupDescription" +msgstr "管ç†ç¾¤çµ„æè¿°" + +#: lib/RT/Group_Overlay.pm:147 +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:58 +msgid "AdminOwnPersonalGroups" +msgstr "管ç†ä»£ç†äººç¾¤çµ„" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "AdminQueue" +msgstr "管ç†è¡¨å–®" + +#: lib/RT/System.pm:59 +msgid "AdminUsers" +msgstr "管ç†ä½¿ç”¨è€…" + +#: NOT FOUND IN SOURCE +msgid "Administrative" +msgstr "行政類" + +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +msgid "Administrative Cc" +msgstr "管ç†å“¡å‰¯æœ¬" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:233 +msgid "Admins" +msgstr "主管" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "進階查詢" + +#: html/Elements/SelectDateRelation:35 +msgid "After" +msgstr "晚於" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "經歷時間" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:172 html/Edit/Global/Workflow/Action:39 +msgid "Alias" +msgstr "執行其他æµç¨‹" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:175 +msgid "Alias for" +msgstr "相當於" + +#: html/Edit/Queues/index.html:33 html/Work/Delegates/index.html:13 html/Work/Elements/SelectSearch:11 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:13 +msgid "All" +msgstr "全部" + +#: etc/initialdata.zh:372 etc/initialdata:348 +msgid "All Approvals Passed" +msgstr "完æˆå…¨éƒ¨ç°½æ ¸" + +#: html/Edit/Global/Workflow/Condition:16 +msgid "All Condition" +msgstr "所有æ¢ä»¶" + +#: html/Admin/Elements/EditCustomFields:95 +msgid "All Custom Fields" +msgstr "所有自訂欄ä½" + +#: html/Admin/Queues/index.html:52 +msgid "All Queues" +msgstr "所有表單" + +#: NOT FOUND IN SOURCE +msgid "All Users" +msgstr "全體員工" + +#: 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/Edit/Global/Workflow/Condition:13 +msgid "Any Condition" +msgstr "ä»»æ„æ¢ä»¶" + +#: html/Edit/Global/Scrip/List:10 html/Edit/Global/Scrip/Top:74 +msgid "Apply Template" +msgstr "引用範本" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:138 html/Elements/Tabs:55 html/Work/Approvals/Elements/Approve:6 +msgid "Approval" +msgstr "簽核" + +#: 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 "簽核單 #%1:%2" + +#: html/Approvals/index.html:53 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "簽核單 #%1:系統錯誤,記錄失敗" + +#: html/Approvals/index.html:51 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "簽核單 #%1:記錄完畢" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:123 +msgid "Approval Details" +msgstr "簽核細節" + +#: NOT FOUND IN SOURCE +msgid "Approval Due" +msgstr "簽核時é™" + +#: html/Work/Approvals/Elements/Approve:37 +msgid "Approval Notes" +msgstr "簽核æ„見" + +#: etc/initialdata.zh:357 etc/initialdata:336 +msgid "Approval Passed" +msgstr "å®ŒæˆæŸé …簽核" + +#: etc/initialdata.zh:383 etc/initialdata:359 +msgid "Approval Rejected" +msgstr "é§å›žæŸé …簽核" + +#: NOT FOUND IN SOURCE +msgid "Approval Result" +msgstr "ç°½æ ¸çµæžœ" + +#: html/Work/Approvals/Elements/Approve:25 +msgid "Approval Status" +msgstr "æ ¸å‡†çµæžœ" + +#: NOT FOUND IN SOURCE +msgid "Approval Type" +msgstr "簽核種類" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:25 +msgid "Approval diagram" +msgstr "簽核æµç¨‹" + +#: html/Approvals/Elements/Approve:43 html/Work/Approvals/Elements/Approve:29 +msgid "Approve" +msgstr "核准" + +#: html/Work/Approvals/Elements/Approve:21 html/Work/Elements/List:9 +msgid "Approver" +msgstr "簽核人" + +#: html/Edit/Global/Workflow/Action:29 html/Edit/Global/Workflow/Owner.html:10 +msgid "Approver Setting" +msgstr "執行簽核人設定" + +#: etc/initialdata.zh:516 etc/initialdata:486 etc/upgrade/2.1.71:148 html/Edit/Elements/CreateApprovalsQueue:122 +msgid "Approver's notes: %1" +msgstr "簽核備註:%1" + +#: NOT FOUND IN SOURCE +msgid "Apr" +msgstr "四月" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "04" + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "四月" + +#: html/Edit/Elements/104Buttons:24 +msgid "Are you sure to delete checked items?" +msgstr "您確定è¦åˆªé™¤ï¼Ÿ" + +#: html/Elements/SelectSortOrder:34 +msgid "Ascending" +msgstr "éžå¢ž" + +#: html/Search/Bulk.html:136 html/SelfService/Update.html:32 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 html/Work/Search/Bulk.html:88 +msgid "Attach" +msgstr "附件" + +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 html/Work/Tickets/Elements/AddAttachments:15 +msgid "Attach file" +msgstr "附加檔案" + +#: html/Ticket/Create.html:97 html/Ticket/Update.html:87 html/Work/Tickets/Elements/AddAttachments:6 +msgid "Attached file" +msgstr "ç¾æœ‰é™„ä»¶" + +#: NOT FOUND IN SOURCE +msgid "Attachment '%1' could not be loaded" +msgstr "無法載入附件 '%1'" + +#: lib/RT/Transaction_Overlay.pm:441 +msgid "Attachment created" +msgstr "附件新增完畢" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "附件檔å" + +#: html/Ticket/Elements/ShowAttachments:25 html/Work/Tickets/Elements/ShowTransaction:32 +msgid "Attachments" +msgstr "附件" + +#: NOT FOUND IN SOURCE +msgid "Aug" +msgstr "八月" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "08" + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "八月" + +#: html/Admin/Elements/ModifyUser:65 +msgid "AuthSystem" +msgstr "èªè­‰æ–¹å¼" + +#: NOT FOUND IN SOURCE +msgid "AutoReject" +msgstr "自動é§å›žè¡¨å–®" + +#: NOT FOUND IN SOURCE +msgid "AutoResolve" +msgstr "自動完æˆè¡¨å–®è™•ç†" + +#: etc/initialdata.zh:224 etc/initialdata:206 +msgid "Autoreply" +msgstr "自動回覆" + +#: etc/initialdata.zh:90 etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "自動å°ç”³è«‹äººå›žè¦†" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "自動å°ç”³è«‹äººå›žè¦†" + +#: html/Edit/Rights/index.html:16 +msgid "Available Rights:" +msgstr "權é™é …目列表:" + +#: NOT FOUND IN SOURCE +msgid "Back to Homepage" +msgstr "回到首é " + +#: html/Work/Elements/BackButton:2 html/Work/Search/Bulk.html:101 +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" + +#: bin/rt-commit-handler:826 +#. ($val) +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/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:17 html/Edit/Users/index.html:121 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 +msgid "Basics" +msgstr "基本資訊" + +#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:49 +msgid "Bcc" +msgstr "密件副本" + +#: html/Admin/Elements/EditScrip:87 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Global/Workflow.html:46 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/Admin/Queues/Workflow.html:44 html/User/Groups/Modify.html:55 +msgid "Be sure to save your changes" +msgstr "請別忘了儲存修改。" + +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:321 +msgid "Before" +msgstr "æ—©æ–¼" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:44 +msgid "Begin Approval" +msgstr "開始簽核" + +#: NOT FOUND IN SOURCE +msgid "Begin From " +msgstr "èµ·å§‹æ—¥" + +#: html/Edit/Users/Info:25 +msgid "Birthday" +msgstr "生日" + +#: etc/initialdata.zh:220 etc/initialdata:202 +msgid "Blank" +msgstr "空白範本" + +#: html/Search/Listing.html:78 html/Work/Search/index.html:53 +msgid "Bookmarkable URL for this search" +msgstr "å°‡æŸ¥è©¢çµæžœè½‰ç‚ºå¯æ”¾å…¥æ›¸ç±¤çš„ç¶²å€" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +msgid "Brief headers" +msgstr "精簡標頭檔" + +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +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:1524 +msgid "Can not modify system users" +msgstr "無法更改系統使用者" + +#: lib/RT/Queue_Overlay.pm:66 +msgid "Can this principal see this queue" +msgstr "è©²å–®ä½æ˜¯å¦èƒ½æŸ¥é–±æ­¤è¡¨å–®" + +#: lib/RT/CustomField_Overlay.pm:205 +msgid "Can't add a custom field value without a name" +msgstr "ä¸èƒ½æ–°å¢žæ²’有å稱的自訂欄ä½å€¼" + +#: lib/RT/Link_Overlay.pm:131 +msgid "Can't link a ticket to itself" +msgstr "申請單ä¸èƒ½éˆçµè‡ªå·±ã€‚" + +#: lib/RT/Ticket_Overlay.pm:2807 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "ä¸èƒ½æ•´åˆé€²å·²æ•´åˆéŽçš„申請單。這個錯誤ä¸è©²ç™¼ç”Ÿã€‚" + +#: lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2694 +msgid "Can't specifiy both base and target" +msgstr "ä¸èƒ½åŒæ™‚指定起始申請單與目的申請單" + +#: html/Edit/Elements/PopFooter:8 +msgid "Cancel" +msgstr "å–æ¶ˆ" + +#: html/autohandler:113 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "無法新增使用者:%1" + +#: NOT FOUND IN SOURCE +msgid "Card No." +msgstr "å¡è™Ÿ" + +#: NOT FOUND IN SOURCE +msgid "Categories" +msgstr "分類管ç†" + +#: NOT FOUND IN SOURCE +msgid "Category" +msgstr "分類" + +#: etc/initialdata.zh:68 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:44 html/Ticket/Update.html:76 html/Work/Tickets/Update.html:43 lib/RT/ACE_Overlay.pm:87 +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:30 +msgid "Change password" +msgstr "更改密碼" + +#: html/Edit/Global/Basic/Top:70 +msgid "ChangeOwnerUI" +msgstr "å¯å¦é¸æ“‡è¡¨å–®æ‰¿è¾¦äºº" + +#: html/Ticket/Create.html:100 html/Ticket/Elements/EditCustomFieldEntries:35 html/Ticket/Update.html:90 html/Work/Tickets/Elements/ShowCustomFieldEntries:13 +msgid "Check box to delete" +msgstr "鏿“‡æ¬²åˆªé™¤çš„é …ç›®" + +#: html/Admin/Elements/SelectRights:30 +msgid "Check box to revoke right" +msgstr "鏿“‡æ¬²æ’¤æ¶ˆçš„æ¬Šåˆ©" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:130 html/Ticket/Elements/EditLinks:68 html/Ticket/Elements/ShowLinks:56 html/Work/Search/BulkLinks:18 +msgid "Children" +msgstr "å­ç”³è«‹å–®" + +#: html/Edit/Elements/PickUsers:21 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 html/Edit/Users/List:6 html/Edit/Users/Top:18 +msgid "Chinese Name" +msgstr "中文姓å" + +#: NOT FOUND IN SOURCE +msgid "Chinese/English" +msgstr "中英文" + +#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:91 html/Work/Preferences/Info:81 +msgid "City" +msgstr "所在城市" + +#: html/Edit/Elements/104Top:30 +msgid "ClassicUI" +msgstr "傳統介é¢" + +#: html/Ticket/Elements/ShowDates:46 +msgid "Closed" +msgstr "已解決" + +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "已解決的申請單" + +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "已解決的申請單" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:58 html/Edit/Global/Workflow/Condition:51 +msgid "Code" +msgstr "執行程å¼ç¢¼" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "指令無法辨識ï¼\\n" + +#: html/Ticket/Elements/ShowTransaction:166 html/Ticket/Elements/Tabs:152 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:37 html/Work/Tickets/Elements/ShowTransaction:114 html/Work/Tickets/Elements/ShowTransaction:27 +msgid "Comment" +msgstr "è©•è«–" + +#: html/Admin/Elements/ModifyQueue:44 html/Admin/Queues/Modify.html:57 +msgid "Comment Address" +msgstr "è©•è«–é›»å­éƒµä»¶åœ°å€" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "評論未被紀錄" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Comment on tickets" +msgstr "å°ç”³è«‹å–®æå‡ºè©•è«–" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "CommentOnTicket" +msgstr "評論申請單" + +#: html/Admin/Elements/ModifyUser:34 html/Work/Tickets/Update.html:59 +msgid "Comments" +msgstr "è©•è«–" + +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:68 html/Work/Tickets/Update.html:35 +msgid "Comments (Not sent to requestors)" +msgstr "è©•è«–(ä¸é€çµ¦ç”³è«‹äºº)" + +#: html/Search/Bulk.html:131 html/Work/Search/Bulk.html:83 +msgid "Comments (not sent to requestors)" +msgstr "è©•è«–(ä¸é€çµ¦ç”³è«‹äºº)" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Comments about %1" +msgstr "å° %1 的評論" + +#: html/Admin/Users/Modify.html:184 html/Ticket/Elements/ShowRequestor:43 +msgid "Comments about this user" +msgstr "使用者æè¿°" + +#: lib/RT/Transaction_Overlay.pm:543 +msgid "Comments added" +msgstr "新增評論完畢" + +#: html/Edit/Elements/PopFooter:4 html/Edit/Elements/PopFooter:6 +msgid "Commit" +msgstr "確èª" + +#: lib/RT/Action/Generic.pm:139 +msgid "Commit Stubbed" +msgstr "消除更動完畢" + +#: html/Edit/Users/Info:41 +msgid "Company Name" +msgstr "å…¬å¸å稱" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "設定查詢æ¢ä»¶" + +#: html/Admin/Elements/EditScrip:40 html/Admin/Elements/ModifyTemplateAsWorkflow:127 +msgid "Condition" +msgstr "æ¢ä»¶" + +#: bin/rt-crontool:108 +msgid "Condition matches..." +msgstr "ç¬¦åˆæ¢ä»¶..." + +#: lib/RT/Scrip_Overlay.pm:159 +msgid "Condition not found" +msgstr "未找到符åˆçš„ç¾æ³" + +#: html/Edit/Global/GroupRight/Top:26 html/Edit/Global/UserRight/Top:45 html/Edit/Groups/Member:57 html/Elements/Tabs:49 +msgid "Configuration" +msgstr "設定" + +#: html/SelfService/Prefs.html:32 +msgid "Confirm" +msgstr "確èªå¯†ç¢¼" + +#: NOT FOUND IN SOURCE +msgid "Confirm Password" +msgstr "密碼確èª" + +#: html/Work/Approvals/Display.html:25 html/Work/Tickets/Create.html:161 html/Work/Tickets/Create.html:174 html/Work/Tickets/Update.html:81 +msgid "Confirm Submit" +msgstr "確定é€å‡º" + +#: NOT FOUND IN SOURCE +msgid "Contact System Administrator" +msgstr "連絡系統管ç†å“¡" + +#: html/Admin/Elements/ModifyUser:59 +msgid "ContactInfoSystem" +msgstr "連絡資訊系統" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "無法解讀è¯çµ¡æ—¥æœŸ '%1'" + +#: html/Admin/Elements/ModifyTemplate:43 html/Admin/Elements/ModifyTemplateAsWorkflow:200 html/Ticket/ModifyAll.html:86 +msgid "Content" +msgstr "內容" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "無法新增群組" + +#: html/Edit/Elements/104Buttons:74 +msgid "Copy" +msgstr "複製" + +#: NOT FOUND IN SOURCE +msgid "Copy Field From:" +msgstr "欲複製欄ä½ï¼š" + +#: etc/initialdata.zh:282 etc/initialdata:271 +msgid "Correspondence" +msgstr "回覆" + +#: html/Admin/Elements/ModifyQueue:38 html/Admin/Queues/Modify.html:50 +msgid "Correspondence Address" +msgstr "申請單回覆地å€" + +#: lib/RT/Transaction_Overlay.pm:539 +msgid "Correspondence added" +msgstr "新增申請單回覆" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "未紀錄申請單回覆" + +#: lib/RT/Ticket_Overlay.pm:3552 +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/Ticket_Overlay.pm:3058 lib/RT/Ticket_Overlay.pm:3066 lib/RT/Ticket_Overlay.pm:3083 +msgid "Could not change owner. " +msgstr "ä¸èƒ½æ›´æ”¹æ‰¿è¾¦äººã€‚ " + +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:165 html/Edit/Global/CustomField/index.html:117 +#. ($msg) +msgid "Could not create CustomField" +msgstr "無法新增自訂欄ä½" + +#: html/Edit/Global/Workflow/index.html:126 +#. ($msg) +msgid "Could not create Scrip" +msgstr "無法建立訊æ¯é€šçŸ¥" + +#: html/Edit/Global/Template/index.html:110 +#. ($msg) +msgid "Could not create Template" +msgstr "無法建立通知範本" + +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 +msgid "Could not create group" +msgstr "無法新增群組" + +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#. ($msg) +msgid "Could not create template: %1" +msgstr "無法新增範本:%1" + +#: lib/RT/Ticket_Overlay.pm:1091 lib/RT/Ticket_Overlay.pm:334 +msgid "Could not create ticket. Queue not set" +msgstr "無法新增申請單。尚未指定表單。" + +#: lib/RT/User_Overlay.pm:267 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:483 +msgid "Could not create user" +msgstr "無法新增使用者" + +#: NOT FOUND IN SOURCE +msgid "Could not create watcher for requestor" +msgstr "無法為申請人新增視察員" + +#: html/Admin/Elements/ModifyWorkflow:219 html/Admin/Global/Workflow.html:75 html/Admin/Queues/Workflow.html:71 +#. ($msg) +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:621 lib/RT/Ticket_Overlay.pm:1421 +msgid "Could not find or create that user" +msgstr "找ä¸åˆ°æˆ–無法新增該å使用者" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1500 +msgid "Could not find that principal" +msgstr "找ä¸åˆ°è©²å–®ä½" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "找ä¸åˆ°ä½¿ç”¨è€… %1。" + +#: html/Admin/Groups/Members.html:87 html/Edit/Users/index.html:83 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#. ( . $GroupId) +msgid "Could not load group" +msgstr "無法載入群組" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "無法將該單ä½è¨­ç‚ºæ­¤è¡¨å–®çš„ %1。" + +#: lib/RT/Ticket_Overlay.pm:1442 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "無法將該單ä½è¨­ç‚ºæ­¤ç”³è«‹å–®çš„ %1。" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "ç„¡æ³•å°‡å–®ä½ %1 從表單移除。" + +#: lib/RT/Ticket_Overlay.pm:1558 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "ç„¡æ³•å°‡å–®ä½ %1 從申請單移除。" + +#: lib/RT/Group_Overlay.pm:984 +msgid "Couldn't add member to group" +msgstr "無法新增æˆå“¡è‡³ç¾¤çµ„" + +#: lib/RT/Ticket_Overlay.pm:3562 lib/RT/Ticket_Overlay.pm:3618 +#. ($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/Interface/Web.pm:902 x:905 +msgid "Couldn't find row" +msgstr "找ä¸åˆ°æ­¤åˆ—資料" + +#: lib/RT/Group_Overlay.pm:958 +msgid "Couldn't find that principal" +msgstr "找ä¸åˆ°è©²å–®ä½" + +#: lib/RT/CustomField_Overlay.pm:239 +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:111 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "無法從使用者資料庫載入 %1。\\n" + +#: 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 "無法載入手續。" + +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:54 html/Edit/Global/UserRight/Add.html:23 html/Edit/Groups/Member:121 html/Edit/Groups/Members/Add.html:44 html/Edit/Rights/index.html:57 +#. ($Group) +#. ($ObjectGroup) +#. ($id) +msgid "Couldn't load group %1" +msgstr "無法載入手續 %1" + +#: lib/RT/Link_Overlay.pm:174 lib/RT/Link_Overlay.pm:183 lib/RT/Link_Overlay.pm:210 +msgid "Couldn't load link" +msgstr "無法載入éˆçµã€‚" + +#: html/Admin/Elements/EditCustomFields:146 html/Admin/Queues/People.html:120 +#. ($id) +msgid "Couldn't load queue" +msgstr "無法載入表單" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 html/Edit/Global/GroupRight/Add.html:50 html/Edit/Global/GroupRight/index.html:81 html/Edit/Global/UserRight/Add.html:19 html/Edit/Global/UserRight/index.html:83 html/Edit/Rights/index.html:53 +#. ($Queue) +#. ($id) +msgid "Couldn't load queue %1" +msgstr "無法載入表單 %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "無法載入手續" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "無法載入範本" + +#: html/Admin/Users/Prefs.html:78 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "無法載入該å使用者(%1)" + +#: html/SelfService/Display.html:108 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "無法載入申請單 '%1'" + +#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:97 html/Work/Preferences/Info:87 +msgid "Country" +msgstr "國家" + +#: html/Admin/Elements/CreateUserCalled:25 html/Edit/Elements/PopHeader:29 html/Edit/Global/GroupRight/Add.html:18 html/Ticket/Create.html:134 html/Ticket/Create.html:194 +msgid "Create" +msgstr "新增" + +#: html/Edit/Groups/MemberGroups/Add.html:17 +msgid "Create Subgroup:" +msgstr "新增å­ç¾¤çµ„:" + +#: etc/initialdata.zh:145 etc/initialdata:127 +msgid "Create Tickets" +msgstr "新增申請單" + +#: NOT FOUND IN SOURCE +msgid "Create User:" +msgstr "新增æˆå“¡ï¼š" + +#: html/Admin/Elements/EditCustomField:74 +msgid "Create a CustomField" +msgstr "新增自訂欄ä½" + +#: html/Admin/Queues/CustomField.html:47 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "為 %1 表單新增自訂欄ä½" + +#: html/Admin/Global/CustomField.html:47 +msgid "Create a CustomField which 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:66 html/Admin/Groups/Modify.html:92 +msgid "Create a new group" +msgstr "新增群組" + +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +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:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +msgid "Create a new ticket" +msgstr "新增申請單" + +#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:240 +msgid "Create a new user" +msgstr "新增使用者" + +#: NOT FOUND IN SOURCE +msgid "Create a new workflow" +msgstr "新增æµç¨‹" + +#: html/Admin/Queues/Modify.html:103 +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:58 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "為 %1 表單新增手續" + +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +msgid "Create a template" +msgstr "新增範本" + +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "æå‡ºç”³è«‹å–®" + +#: html/Admin/Elements/ModifyWorkflow:206 html/Admin/Global/Workflow.html:69 html/Admin/Queues/Workflow.html:64 +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.zh:147 etc/initialdata:129 +msgid "Create new tickets based on this scrip's template" +msgstr "便“šæ­¤é …æ‰‹çºŒå…§çš„æ¨¡ç‰ˆï¼Œæ–°å¢žç”³è«‹å–®" + +#: html/SelfService/Create.html:77 +msgid "Create ticket" +msgstr "新增申請單" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Create tickets in this queue" +msgstr "在此表單中新增申請單" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Create, delete and modify custom fields" +msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹è‡ªè¨‚欄ä½" + +#: lib/RT/Queue_Overlay.pm:67 +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:58 +msgid "Create, delete and modify the members of personal groups" +msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹ä»£ç†äººç¾¤çµ„" + +#: lib/RT/System.pm:59 +msgid "Create, delete and modify users" +msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹ä½¿ç”¨è€…" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "CreateTicket" +msgstr "新增申請單" + +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:26 lib/RT/Ticket_Overlay.pm:1185 +msgid "Created" +msgstr "新增日" + +#: html/Admin/Elements/EditCustomField:87 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "è‡ªè¨‚æ¬„ä½ %1 新增æˆåŠŸ" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "範本 %1 新增æˆåŠŸ" + +#: html/Admin/Elements/ModifyWorkflow:221 +#. (loc( $WorkflowObj->Name() )) +msgid "Created workflow %1" +msgstr "æµç¨‹ %1 新增æˆåŠŸ" + +#: 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 "ç¾æœ‰è‡ªè¨‚欄ä½" + +#: html/Edit/Groups/MemberGroups/Add.html:14 +msgid "Current Groups:" +msgstr "ç¾æœ‰ç¾¤çµ„列表:" + +#: html/Ticket/Elements/EditLinks:27 +msgid "Current Relationships" +msgstr "ç¾æœ‰é—œä¿‚" + +#: html/Edit/Rights/index.html:19 +msgid "Current Rights:" +msgstr "ç¾æœ‰æ¬Šé™ï¼š" + +#: html/Admin/Elements/EditScrips:29 +msgid "Current Scrips" +msgstr "ç¾æœ‰æ‰‹çºŒ" + +#: html/Work/Tickets/Create.html:50 html/Work/Tickets/Elements/ShowBasics:47 +msgid "Current Status" +msgstr "ç›®å‰ç‹€æ…‹" + +#: NOT FOUND IN SOURCE +msgid "Current Templates" +msgstr "ç¾æœ‰ç¯„本" + +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +msgid "Current members" +msgstr "ç¾æœ‰æˆå“¡" + +#: html/Admin/Elements/SelectRights:28 +msgid "Current rights" +msgstr "ç¾æœ‰æ¬Šé™" + +#: html/Search/Listing.html:70 html/Work/Search/index.html:42 +msgid "Current search criteria" +msgstr "ç¾æœ‰æŸ¥è©¢æ¢ä»¶" + +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +msgid "Current watchers" +msgstr "ç¾æœ‰è¦–察員" + +#: html/Admin/Global/CustomField.html:54 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "è‡ªè¨‚æ¬„ä½ #%1" + +#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:18 html/Ticket/Elements/ShowSummary:35 +msgid "Custom Fields" +msgstr "自訂欄ä½" + +#: NOT FOUND IN SOURCE +msgid "Custom Fields which apply to all queues" +msgstr "é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„自訂欄ä½" + +#: html/Admin/Elements/EditScrip:72 html/Edit/Global/Scrip/Top:69 +msgid "Custom action cleanup code" +msgstr "動作後執行程å¼" + +#: html/Admin/Elements/EditScrip:64 html/Edit/Global/Scrip/Top:62 +msgid "Custom action preparation code" +msgstr "動作å‰åŸ·è¡Œç¨‹å¼" + +#: html/Admin/Elements/EditScrip:48 html/Edit/Global/Scrip/Top:35 html/Edit/Global/Scrip/Top:61 +msgid "Custom condition" +msgstr "自訂æ¢ä»¶" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "è‡ªè¨‚æ¬„ä½ %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "è‡ªè¨‚æ¬„ä½ %1 已有值" + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "è‡ªè¨‚æ¬„ä½ %1 沒有值" + +#: lib/RT/Ticket_Overlay.pm:3454 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "找ä¸åˆ°è‡ªè¨‚æ¬„ä½ %1" + +#: html/Admin/Elements/EditCustomFields:196 +msgid "Custom field deleted" +msgstr "自訂欄ä½å·²åˆªé™¤" + +#: lib/RT/Ticket_Overlay.pm:3604 +msgid "Custom field not found" +msgstr "找ä¸åˆ°è‡ªè¨‚欄ä½" + +#: lib/RT/CustomField_Overlay.pm:349 +#. ($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:249 +msgid "Custom field value could not be deleted" +msgstr "無法刪除自訂欄ä½å€¼" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Custom field value could not be found" +msgstr "找ä¸åˆ°è‡ªè¨‚欄ä½å€¼" + +#: lib/RT/CustomField_Overlay.pm:247 lib/RT/CustomField_Overlay.pm:357 +msgid "Custom field value deleted" +msgstr "自訂欄ä½å€¼åˆªé™¤æˆåŠŸ" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:90 lib/RT/Transaction_Overlay.pm:548 +msgid "CustomField" +msgstr "自訂欄ä½" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "資料錯誤" + +#: NOT FOUND IN SOURCE +msgid "Date of Departure" +msgstr "出發日期" + +#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:14 +msgid "Dates" +msgstr "日期" + +#: NOT FOUND IN SOURCE +msgid "Dec" +msgstr "å二月" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "12" + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "å二月" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "é è¨­è‡ªå‹•回應範本" + +#: etc/initialdata.zh:225 etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "é è¨­è‡ªå‹•回應範本" + +#: etc/initialdata.zh:304 etc/initialdata:281 +msgid "Default admin comment template" +msgstr "é è¨­ç®¡ç†å“¡è©•論範本" + +#: etc/initialdata.zh:262 etc/initialdata:260 +msgid "Default admin correspondence template" +msgstr "é è¨­ç®¡ç†å“¡å›žè¦†ç¯„本" + +#: etc/initialdata.zh:283 etc/initialdata:272 +msgid "Default correspondence template" +msgstr "é è¨­å›žè¦†ç¯„本" + +#: etc/initialdata.zh:240 etc/initialdata:238 +msgid "Default transaction template" +msgstr "é è¨­æ›´å‹•範本" + +#: lib/RT/Transaction_Overlay.pm:643 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "é è¨­ï¼š%1/%2 已自 %3 改為 %4" + +#: html/User/Delegation.html:24 html/User/Delegation.html:27 +msgid "Delegate rights" +msgstr "代表團權é™" + +#: lib/RT/System.pm:62 +msgid "Delegate specific rights which have been granted to you." +msgstr "å°‡æ“æœ‰çš„æ¬Šé™å§”託他人代ç†" + +#: lib/RT/System.pm:62 +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 "代ç†è¡¨å–®ç¨®é¡ž" + +#: html/Edit/Users/index.html:125 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:41 html/Work/Overview/Info:28 +msgid "Delegates" +msgstr "代ç†äºº" + +#: NOT FOUND IN SOURCE +msgid "Delegates Enabled Status" +msgstr "代ç†å•Ÿå‹•狀態" + +#: html/Work/Delegates/Info:18 html/Work/Overview/Info:18 +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 "代ç†äººè¨­å®š" + +#: html/Work/Delegates/Info:46 html/Work/Delegates/List:11 html/Work/Overview/Info:39 +msgid "Delegates Status" +msgstr "代ç†ç‹€æ…‹" + +#: html/User/Elements/Tabs:37 +msgid "Delegation" +msgstr "代ç†äººæ¬Šé™" + +#: NOT FOUND IN SOURCE +msgid "Delegation Groups" +msgstr "代ç†äººç¾¤çµ„" + +#: NOT FOUND IN SOURCE +msgid "Delegation Rights" +msgstr "代ç†äººæ¬Šé™" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:113 html/Edit/Elements/104Buttons:73 html/Work/Search/index.html:48 html/Work/Search/index.html:48 +msgid "Delete" +msgstr "刪除" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Delete tickets" +msgstr "刪除申請單" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "DeleteTicket" +msgstr "刪除申請單" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "刪除此物件å¯èƒ½ç ´å£žåƒè€ƒå®Œæ•´æ€§" + +#: lib/RT/Queue_Overlay.pm:293 +msgid "Deleting this object would break referential integrity" +msgstr "刪除此物件å¯èƒ½ç ´å£žåƒè€ƒå®Œæ•´æ€§" + +#: lib/RT/User_Overlay.pm:499 +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:44 html/Work/Approvals/Elements/Approve:32 +msgid "Deny" +msgstr "é§å›ž" + +#: NOT FOUND IN SOURCE +msgid "Department" +msgstr "部門" + +#: html/Edit/Global/UserRight/List:12 html/Edit/Global/UserRight/Top:13 html/Edit/Users/List:10 html/Edit/Users/Top:12 +msgid "Department ID" +msgstr "部門代碼" + +#: html/Edit/Global/UserRight/List:11 html/Edit/Global/UserRight/Top:49 html/Edit/Users/List:9 html/Edit/Users/Top:48 html/Work/Delegates/Info:78 html/Work/Overview/Info:60 +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/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:122 html/Ticket/Elements/EditLinks:46 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 html/Work/Search/BulkLinks:10 +msgid "Depended on by" +msgstr "å¯æŽ¥çºŒè™•ç†çš„申請單" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "附屬性:\\n" + +#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:179 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:118 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 html/Work/Search/BulkLinks:6 +msgid "Depends on" +msgstr "需先處ç†" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "需先處ç†" + +#: html/Elements/SelectSortOrder:34 +msgid "Descending" +msgstr "éžæ¸›" + +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +msgid "Describe the issue below" +msgstr "åœ¨ä»¥ä¸‹æ¬„ä½æè¿°ä¸»é¡Œ" + +#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Elements/ModifyTemplateAsWorkflow:192 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Edit/Global/Workflow/Action:14 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 html/Work/Preferences/Info:103 +msgid "Description" +msgstr "æè¿°" + +#: NOT FOUND IN SOURCE +msgid "Description of Responsibility" +msgstr "經辦業務說明" + +#: NOT FOUND IN SOURCE +msgid "Description:" +msgstr "æè¿°ï¼š" + +#: html/Work/Tickets/Create.html:117 html/Work/Tickets/Create.html:85 html/Work/Tickets/Elements/EditCustomFields:13 html/Work/Tickets/Elements/EditCustomFields:47 html/Work/Tickets/Elements/ShowCustomFields:15 html/Work/Tickets/Elements/ShowCustomFields:50 +msgid "Details" +msgstr "細節" + +#: NOT FOUND IN SOURCE +msgid "Direct" +msgstr "直接" + +#: html/Edit/Users/Info:31 +msgid "Disability" +msgstr "殘障身分" + +#: html/Edit/Users/Info:29 +msgid "Disability Type" +msgstr "殘障類別" + +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:70 html/Edit/Queues/List:13 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 +msgid "Disabled" +msgstr "åœç”¨" + +#: html/Ticket/Elements/Tabs:84 +msgid "Display" +msgstr "顯示內容" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "Display Access Control List" +msgstr "é¡¯ç¤ºæ¬Šé™æŽ§åˆ¶æ¸…å–®" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "Display Scrip templates for this queue" +msgstr "顯示此表單的範本" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "Display Scrips for this queue" +msgstr "顯示此表單的手續" + +#: html/Ticket/Elements/ShowHistory:34 +msgid "Display mode" +msgstr "顯示模å¼" + +#: NOT FOUND IN SOURCE +msgid "Display ticket #%1" +msgstr "顯示第%1號申請單" + +#: lib/RT/System.pm:53 +msgid "Do anything and everything" +msgstr "å…許一切æ“作" + +#: html/Elements/Refresh:29 +msgid "Don't refresh this page." +msgstr "䏿›´æ–°æ­¤é é¢ã€‚" + +#: html/Search/Elements/PickRestriction:113 html/Work/Search/PickRestriction:95 +msgid "Don't show search results" +msgstr "ä¸é¡¯ç¤ºæŸ¥è©¢çµæžœ" + +#: html/Edit/Elements/Page:19 html/Edit/Elements/Page:21 +msgid "Down" +msgstr "下一é " + +#: html/Ticket/Elements/ShowTransaction:92 +msgid "Download" +msgstr "下載" + +#: NOT FOUND IN SOURCE +msgid "Dr." +msgstr "åšå£«" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:42 lib/RT/Ticket_Overlay.pm:1189 +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'" + +#: bin/rt-commit-handler:753 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "無法載入申請單 '%1':%2.\\n" + +#: html/Work/Tickets/Update.html:46 +msgid "Edit" +msgstr "編輯" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:132 +msgid "Edit Conditions" +msgstr "編輯å‰ç½®æ¢ä»¶" + +#: html/Admin/Queues/CustomFields.html:44 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "編輯 %1 的自訂欄ä½" + +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for queue %1" +msgstr "編輯表單 %1 的自訂欄ä½" + +#: html/Search/Bulk.html:143 html/Ticket/ModifyLinks.html:35 html/Work/Search/Bulk.html:93 +msgid "Edit Relationships" +msgstr "編輯申請單關係" + +#: html/Edit/Groups/MemberGroups/Add.html:3 html/Edit/Groups/MemberGroups/index.html:22 +msgid "Edit Subgroups" +msgstr "新增/ç¶­è­·å­ç¾¤çµ„" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "編輯表單 %1 的範本" + +#: html/Admin/Queues/Workflows.html:42 +#. ($QueueObj->Name) +msgid "Edit Workflows for queue %1" +msgstr "編輯表單 %1 çš„æµç¨‹" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "編輯關éµå­—" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "編輯手續" + +#: html/Admin/Global/index.html:45 +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 çš„æµç¨‹" + +#: html/Admin/Elements/ModifyQueue:24 html/Admin/Queues/Modify.html:118 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "編輯表單 %1 的設定" + +#: html/Admin/Elements/ModifyUser:24 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "編輯使用者 %1 的設定" + +#: html/Admin/Elements/EditCustomField:90 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "ç·¨è¼¯è‡ªè¨‚æ¬„ä½ %1" + +#: html/Admin/Groups/Members.html:31 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "編輯群組 %1 çš„æˆå“¡è³‡è¨Š" + +#: html/User/Groups/Members.html:128 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "編輯代ç†äººç¾¤çµ„ %1 çš„æˆå“¡è³‡è¨Š" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "編輯範本 %1" + +#: html/Admin/Elements/ModifyWorkflow:238 +#. (loc( $WorkflowObj->Name() )) +msgid "Editing workflow %1" +msgstr "編輯æµç¨‹ %1" + +#: NOT FOUND IN SOURCE +msgid "Education" +msgstr "最高學歷" + +#: NOT FOUND IN SOURCE +msgid "EffectiveId" +msgstr "有效編號" + +#: lib/RT/Ticket_Overlay.pm:2635 lib/RT/Ticket_Overlay.pm:2703 +msgid "Either base or target must be specified" +msgstr "éœ€è¦æŒ‡å®šèµ·å§‹ç”³è«‹å–®æˆ–目的申請單" + +#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:41 html/Work/Delegates/Info:96 html/Work/Overview/Info:78 html/Work/Preferences/Info:16 +msgid "Email" +msgstr "é›»å­éƒµä»¶ä¿¡ç®±" + +#: lib/RT/User_Overlay.pm:247 +msgid "Email address in use" +msgstr "此電å­éƒµä»¶ä¿¡ç®±å·²è¢«ä½¿ç”¨" + +#: html/Admin/Elements/ModifyUser:41 +msgid "EmailAddress" +msgstr "é›»å­éƒµä»¶ä¿¡ç®±ä½å€" + +#: html/Admin/Elements/ModifyUser:53 +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/Elements/EditCustomField:50 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "啟用(å–æ¶ˆå‹¾é¸å°‡åœç”¨æ­¤è‡ªè¨‚欄ä½)" + +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "啟用(å–æ¶ˆå‹¾é¸å°‡åœç”¨æ­¤ç¾¤çµ„)" + +#: html/Admin/Queues/Modify.html:83 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "啟用(å–æ¶ˆå‹¾é¸å°‡åœç”¨æ­¤è¡¨å–®)" + +#: html/Admin/Elements/EditCustomFields:98 +msgid "Enabled Custom Fields" +msgstr "已啟用的自訂欄ä½" + +#: html/Edit/Queues/Basic/Top:75 html/Edit/Queues/List:15 +msgid "Enabled Date" +msgstr "啟用日期" + +#: NOT FOUND IN SOURCE +msgid "Enabled Date:" +msgstr "啟動日期:" + +#: html/Admin/Queues/index.html:55 +msgid "Enabled Queues" +msgstr "已啟用的表單" + +#: html/Edit/Queues/Basic/Top:66 html/Edit/Queues/List:11 +msgid "Enabled Status" +msgstr "啟用狀態" + +#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:282 html/User/Groups/Modify.html:116 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "啟用狀態 %1" + +#: html/Edit/Users/Info:34 +msgid "End of Trial" +msgstr "試用期滿日" + +#: NOT FOUND IN SOURCE +msgid "English Name" +msgstr "英文姓å" + +#: lib/RT/CustomField_Overlay.pm:427 +msgid "Enter multiple values" +msgstr "éµå…¥å¤šé‡é …ç›®" + +#: html/Edit/Users/Search.html:15 +msgid "Enter one or more conditions below to search for users" +msgstr "è¼¸å…¥ä¸‹åˆ—å–®ä¸€æˆ–è¤‡å¼æ¢ä»¶ï¼ŒæŸ¥è©¢ç”¨æˆ¶è³‡æ–™" + +#: lib/RT/CustomField_Overlay.pm:424 +msgid "Enter one value" +msgstr "éµå…¥å–®ä¸€é …ç›®" + +#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:111 html/Work/Search/Bulk.html:95 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "輸入申請單å¯éˆçµåˆ°çš„申請單編號或網å€ã€‚以空白隔開。" + +#: lib/RT/CustomField_Vendor.pm:20 +msgid "EntryBoolean" +msgstr "是éžå¡«è¡¨" + +#: lib/RT/CustomField_Vendor.pm:17 +msgid "EntryDate" +msgstr "日期填表" + +#: NOT FOUND IN SOURCE +msgid "EntryExternal" +msgstr "系統填表" + +#: lib/RT/CustomField_Vendor.pm:16 +msgid "EntryFreeform" +msgstr "輸入填表" + +#: NOT FOUND IN SOURCE +msgid "EntryMultiple" +msgstr "多é¸å¡«è¡¨" + +#: lib/RT/CustomField_Vendor.pm:19 +msgid "EntryNumber" +msgstr "數值填表" + +#: lib/RT/CustomField_Vendor.pm:15 +msgid "EntrySelect" +msgstr "å–®é¸å¡«è¡¨" + +#: lib/RT/CustomField_Vendor.pm:18 +msgid "EntryTime" +msgstr "時間填表" + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +msgid "Error" +msgstr "錯誤" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "新增視察員失敗" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "表單->æ–°å¢žè¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "表單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" + +#: lib/RT/Ticket_Overlay.pm:1374 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "申請單->æ–°å¢žè¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" + +#: lib/RT/Ticket_Overlay.pm:1531 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "申請單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" + +#: etc/initialdata.zh:38 etc/initialdata:20 +msgid "Everyone" +msgstr "所有人" + +#: bin/rt-crontool:193 +msgid "Example:" +msgstr "範例:" + +#: html/Edit/Elements/104Buttons:77 +msgid "Export" +msgstr "匯出" + +#: html/Admin/Elements/ModifyUser:63 +msgid "ExternalAuthId" +msgstr "外部èªè­‰å¸³è™Ÿ" + +#: html/Admin/Elements/ModifyUser:57 +msgid "ExternalContactInfoId" +msgstr "外部è¯çµ¡æ–¹å¼å¸³è™Ÿ" + +#: html/Edit/Global/Basic/Top:64 +msgid "ExternalDatabaseDSN" +msgstr "外部資料庫連çµå­—串" + +#: html/Edit/Global/Basic/Top:68 +msgid "ExternalDatabasePass" +msgstr "外部資料庫密碼" + +#: html/Edit/Global/Basic/Top:66 +msgid "ExternalDatabaseUser" +msgstr "外部資料庫用戶" + +#: html/Edit/Global/Basic/Top:62 +msgid "ExternalURL" +msgstr "外部介é¢ç¶²å€" + +#: html/Admin/Users/Modify.html:72 +msgid "Extra info" +msgstr "備註" + +#: lib/RT/User_Overlay.pm:363 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "找ä¸åˆ°ã€Œå…§éƒ¨æˆå“¡ã€è™›æ“¬ç¾¤çµ„的使用者。" + +#: lib/RT/User_Overlay.pm:370 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "找ä¸åˆ°ã€Œéžå…§éƒ¨æˆå“¡ã€è™›æ“¬ç¾¤çµ„的使用者。" + +#: bin/rt-crontool:137 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "無法載入模組 %1. (%2)" + +#: NOT FOUND IN SOURCE +msgid "Feb" +msgstr "二月" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "02" + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "二月" + +#: NOT FOUND IN SOURCE +msgid "Female" +msgstr "女" + +#: html/Edit/Global/CustomField/List:5 html/Edit/Global/CustomField/Top:9 +msgid "Field Attribute" +msgstr "欄ä½å±¬æ€§" + +#: html/Edit/Global/CustomField/Info:14 +msgid "Field Content:" +msgstr "欄ä½å…§å®¹ï¼š" + +#: html/Edit/Global/CustomField/List:7 html/Edit/Global/CustomField/Top:21 +msgid "Field Description" +msgstr "æ¬„ä½æè¿°" + +#: html/Edit/Global/CustomField/List:6 html/Edit/Global/CustomField/Top:15 +msgid "Field Name" +msgstr "欄ä½å稱" + +#: html/Edit/Elements/PickUsers:52 html/Edit/Users/Add.html:47 +msgid "Filter" +msgstr "篩é¸" + +#: html/Edit/Elements/PickUsers:6 html/Edit/Users/Add.html:7 html/Work/Tickets/Cc:4 +msgid "Filter people" +msgstr "å°è±¡ç¯©é¸" + +#: html/Edit/Elements/PickUsers:68 html/Edit/Users/Add.html:63 html/Work/Tickets/Cc:42 +msgid "Filtered list:" +msgstr "篩é¸åˆ—表:" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "最終" + +#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "最低順ä½" + +#: lib/RT/Ticket_Overlay.pm:1180 +msgid "FinalPriority" +msgstr "最低順ä½" + +#: NOT FOUND IN SOURCE +msgid "Financial Department:" +msgstr "財務部:" + +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +msgid "Find group whose" +msgstr "尋找群組的" + +#: NOT FOUND IN SOURCE +msgid "Find new/open tickets" +msgstr "尋找/開啟申請單" + +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +msgid "Find people whose" +msgstr "尋找人員的" + +#: html/Search/Listing.html:107 html/Work/Search/index.html:88 +msgid "Find tickets" +msgstr "尋找申請單" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:118 +msgid "Finish Approval" +msgstr "簽核完畢" + +#: html/Ticket/Elements/Tabs:57 +msgid "First" +msgstr "第一項" + +#: html/Search/Listing.html:40 html/Work/Search/index.html:17 +msgid "First page" +msgstr "第一é " + +#: html/Edit/Global/Workflow/Owner.html:30 +msgid "First-" +msgstr "一" + +#: NOT FOUND IN SOURCE +msgid "First-level Admins" +msgstr "一階主管" + +#: html/Edit/Users/Info:39 +msgid "First-level Users" +msgstr "一階主管員工" + +#: NOT FOUND IN SOURCE +msgid "Fixed shift" +msgstr "固定ç­" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "甲 ä¹™ 丙" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "甲ï¼" + +#: html/Search/Bulk.html:86 html/Work/Search/Bulk.html:55 +msgid "Force change" +msgstr "強制更新" + +#: html/Work/Elements/104Header:89 +msgid "Form Processing" +msgstr "é›»å­è¡¨å–®ä½œæ¥­å€" + +#: html/Search/Listing.html:105 html/Work/Search/index.html:86 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "找到 %1 張申請單" + +#: lib/RT/Interface/Web.pm:904 x:907 +msgid "Found Object" +msgstr "已找到物件" + +#: html/Edit/Global/Workflow/Owner.html:33 +msgid "Fourth-" +msgstr "å››" + +#: html/Admin/Elements/ModifyUser:43 +msgid "FreeformContactInfo" +msgstr "è¯çµ¡æ–¹å¼" + +#: lib/RT/CustomField_Vendor.pm:11 +msgid "FreeformDate" +msgstr "日期輸入" + +#: NOT FOUND IN SOURCE +msgid "FreeformExternal" +msgstr "系統欄ä½" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformMultiple" +msgstr "多é‡è¼¸å…¥" + +#: lib/RT/CustomField_Vendor.pm:13 +msgid "FreeformNumber" +msgstr "數值輸入" + +#: lib/RT/CustomField_Vendor.pm:14 +msgid "FreeformPassword" +msgstr "密碼輸入" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "FreeformSingle" +msgstr "單一輸入" + +#: lib/RT/CustomField_Vendor.pm:12 +msgid "FreeformTime" +msgstr "時間輸入" + +#: NOT FOUND IN SOURCE +msgid "Fri" +msgstr "星期五" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "星期五" + +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +msgid "Full headers" +msgstr "完整標頭檔" + +#: NOT FOUND IN SOURCE +msgid "Gecos" +msgstr "登入帳號" + +#: html/Edit/Users/Info:26 +msgid "Gender" +msgstr "性別" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "å–å¾—ç›®å‰ä½¿ç”¨è€…çš„ pgp 簽章\\n" + +#: lib/RT/Transaction_Overlay.pm:593 +#. ($New->Name) +msgid "Given to %1" +msgstr "交予 %1" + +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +msgid "Global" +msgstr "全域設定" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "全域關éµå­—é¸å–" + +#: html/Edit/Users/System:24 +msgid "Global Rights:" +msgstr "æ“æœ‰å…¨åŸŸæ¬Šé™åˆ—表:" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "全域手續" + +#: html/Edit/Elements/Tab:40 +msgid "Global Setup" +msgstr "全域設定" + +#: html/Admin/Elements/SelectTemplate:37 html/Edit/Elements/SelectTemplate:11 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "全域範本:%1" + +#: html/Admin/Elements/EditCustomFields:74 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:40 +msgid "Go!" +msgstr "執行" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "%1 çš„ pgp 簽章是正確的\\n" + +#: html/Search/Listing.html:49 +msgid "Goto page" +msgstr "到é é¢" + +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 html/Work/Elements/104Header:49 +msgid "Goto ticket" +msgstr "跳到申請單" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:224 +msgid "Grand" +msgstr "上" + +#: html/Ticket/Elements/AddWatchers:45 html/User/Elements/DelegateRights:77 +msgid "Group" +msgstr "群組" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "群組 %1 %2:%3" + +#: html/Edit/Global/GroupRight/List:5 html/Edit/Global/GroupRight/Top:20 html/Edit/Groups/List:7 +msgid "Group Description" +msgstr "群組æè¿°" + +#: NOT FOUND IN SOURCE +msgid "Group Management" +msgstr "群組管ç†" + +#: NOT FOUND IN SOURCE +msgid "Group Members" +msgstr "群組æˆå“¡" + +#: html/Edit/Elements/PickUsers:28 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Delegates/Add.html:15 html/Work/Tickets/Cc:24 +msgid "Group Name" +msgstr "群組å稱" + +#: NOT FOUND IN SOURCE +msgid "Group Name:" +msgstr "群組å稱:" + +#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:23 html/Edit/Users/Group:11 html/Edit/Users/index.html:123 +msgid "Group Rights" +msgstr "群組權é™" + +#: NOT FOUND IN SOURCE +msgid "Group Rights:" +msgstr "æ“æœ‰ç¾¤çµ„權é™åˆ—表:" + +#: html/Edit/Elements/Tab:36 +msgid "Group Setup" +msgstr "群組設定" + +#: html/Edit/Global/GroupRight/List:8 html/Edit/Global/GroupRight/Top:14 html/Edit/Groups/List:10 html/Edit/Groups/Top:15 +msgid "Group Status" +msgstr "群組狀態" + +#: lib/RT/Group_Overlay.pm:964 +msgid "Group already has member" +msgstr "群組內已有此æˆå“¡" + +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "無法新增群組" + +#: html/Admin/Groups/Modify.html:76 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "無法新增群組:%1" + +#: lib/RT/Group_Overlay.pm:496 +msgid "Group created" +msgstr "群組新增完畢" + +#: lib/RT/Group_Overlay.pm:1132 +msgid "Group has no such member" +msgstr "群組沒有這個æˆå“¡" + +#: lib/RT/Group_Overlay.pm:944 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1428 lib/RT/Ticket_Overlay.pm:1506 +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 with Queue Rights" +msgstr "æ“æœ‰è¡¨å–®æ¬Šé™ç¾¤çµ„" + +#: html/Edit/Global/Workflow/Owner.html:70 +msgid "Group's" +msgstr "群組之" + +#: NOT FOUND IN SOURCE +msgid "Group:" +msgstr "群組:" + +#: 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/Edit/Global/GroupRight/Add.html:15 html/User/Groups/Members.html:66 +msgid "Groups" +msgstr "群組" + +#: lib/RT/Group_Overlay.pm:970 +msgid "Groups can't be members of their members" +msgstr "ä¸èƒ½å°‡ç¾¤çµ„設為群組內æˆå“¡" + +#: NOT FOUND IN SOURCE +msgid "Groups with Global Rights" +msgstr "æ“æœ‰å…¨åŸŸæ¬Šé™ç¾¤çµ„" + +#: html/Edit/Global/GroupRight/List:6 html/Edit/Global/GroupRight/Top:22 html/Edit/Groups/List:8 +msgid "HRMSDefined" +msgstr "組織架構" + +#: NOT FOUND IN SOURCE +msgid "Health Insurance" +msgstr "å¥ä¿è£œåŠ©èº«ä»½" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +msgid "Hello!" +msgstr "å—¨ï¼" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "嗨,%1" + +#: html/Edit/Elements/104Top:28 +msgid "Help" +msgstr "輔助說明" + +#: NOT FOUND IN SOURCE +msgid "Help Desks" +msgstr "å„項業務窗å£" + +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:87 html/Work/Tickets/Elements/ShowHistory:8 +msgid "History" +msgstr "紀錄" + +#: html/Admin/Elements/ModifyUser:67 +msgid "HomePhone" +msgstr "ä½è™•電話" + +#: html/Edit/Elements/104Top:15 html/Edit/Elements/104Top:24 html/Edit/Elements/EDOMHeader:9 html/Elements/Tabs:43 +msgid "Homepage" +msgstr "主é " + +#: NOT FOUND IN SOURCE +msgid "Hotel Expense" +msgstr "ä½å®¿è²»" + +#: lib/RT/Base.pm:73 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "我有 %quant(%1,份固體攪拌器)。" + +#: NOT FOUND IN SOURCE +msgid "ID Number" +msgstr "身分證號" + +#: NOT FOUND IN SOURCE +msgid "ID Type" +msgstr "身分類別" + +#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "編號" + +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 html/Work/Preferences/Info:14 +msgid "Identity" +msgstr "身份" + +#: etc/initialdata.zh:439 etc/initialdata:411 etc/upgrade/2.1.71:86 html/Edit/Elements/CreateApprovalsQueue:58 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "若簽核單é­åˆ°é§å›žï¼Œå‰‡é€£å¸¶é§å›žåŽŸç”³è«‹å–®ï¼Œä¸¦åˆªé™¤å…¶ä»–ç›¸é—œçš„å¾…ç°½æ ¸äº‹é …" + +#: bin/rt-crontool:189 +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: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 "若您已更新以上資料,請記得按一下" + +#: lib/RT/Interface/Web.pm:896 x:899 +msgid "Illegal value for %1" +msgstr "%1 的值錯誤" + +#: lib/RT/Interface/Web.pm:899 x:902 +msgid "Immutable field" +msgstr "此欄ä½å€¼ä¸å¯æ›´å‹•" + +#: html/Edit/Elements/104Buttons:76 html/Edit/Global/Workflow/Import.html:2 +msgid "Import" +msgstr "匯入" + +#: html/Admin/Elements/EditCustomFields:73 +msgid "Include disabled custom fields in listing." +msgstr "列出åœç”¨çš„自訂欄ä½" + +#: html/Admin/Queues/index.html:42 html/Edit/Queues/index.html:38 +msgid "Include disabled queues in listing." +msgstr "列出åœç”¨çš„表單" + +#: html/Admin/Users/index.html:46 html/Edit/Users/Search.html:62 +msgid "Include disabled users in search." +msgstr "列出åœç”¨çš„使用者" + +#: html/Edit/Users/Info:36 +msgid "Indirect Employee" +msgstr "直接/間接員工" + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "åˆå§‹å„ªå…ˆæ¬Š" + +#: lib/RT/Ticket_Overlay.pm:1179 lib/RT/Ticket_Overlay.pm:1181 +msgid "InitialPriority" +msgstr "åˆå§‹å„ªå…ˆæ¬Š" + +#: lib/RT/ScripAction_Overlay.pm:104 +msgid "Input error" +msgstr "輸入錯誤" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "登記æˆåŠŸ" + +#: lib/RT/Ticket_Overlay.pm:3829 +msgid "Internal Error" +msgstr "內部錯誤" + +#: lib/RT/Record.pm:142 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "內部錯誤:%1" + +#: lib/RT/Group_Overlay.pm:643 +msgid "Invalid Group Type" +msgstr "錯誤的群組類別" + +#: lib/RT/Principal_Overlay.pm:127 +msgid "Invalid Right" +msgstr "錯誤的權é™" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "錯誤的類型" + +#: lib/RT/Interface/Web.pm:901 x:904 +msgid "Invalid data" +msgstr "錯誤的資料" + +#: lib/RT/Ticket_Overlay.pm:439 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "錯誤的承辦人。改為é è¨­æ‰¿è¾¦äººã€Œnobodyã€ã€‚" + +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:250 +msgid "Invalid queue" +msgstr "錯誤的表單" + +#: 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 "錯誤的權é™" + +#: lib/RT/Record.pm:117 +#. ($key) +msgid "Invalid value for %1" +msgstr "%1 的值錯誤" + +#: lib/RT/Ticket_Overlay.pm:3461 +msgid "Invalid value for custom field" +msgstr "錯誤的自訂欄ä½å€¼" + +#: lib/RT/Ticket_Overlay.pm:346 +msgid "Invalid value for status" +msgstr "錯誤的狀態值" + +#: NOT FOUND IN SOURCE +msgid "IssueStatement" +msgstr "é€å‡ºé™³è¿°" + +#: bin/rt-crontool:190 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "請絕å°ä¸è¦è®“未具權é™çš„使用者執行此工具程å¼ã€‚" + +#: bin/rt-crontool:191 +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:162 +msgid "It takes several arguments:" +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:411 +msgid "Jan." +msgstr "01" + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "一月" + +#: NOT FOUND IN SOURCE +msgid "Job" +msgstr "è·ç¨±" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Join or leave this group" +msgstr "加入或離開此群組" + +#: NOT FOUND IN SOURCE +msgid "Jul" +msgstr "七月" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "01" + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "七月" + +#: html/Ticket/Elements/Tabs:98 +msgid "Jumbo" +msgstr "全部資訊" + +#: NOT FOUND IN SOURCE +msgid "Jun" +msgstr "六月" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "06." + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "六月" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "é—œéµå­—" + +#: lib/RT/CustomField_Vendor.pm:23 +msgid "LabelAttachments" +msgstr "附件標籤" + +#: lib/RT/CustomField_Vendor.pm:24 +msgid "LabelContent" +msgstr "內容標籤" + +#: lib/RT/CustomField_Vendor.pm:22 +msgid "LabelSubject" +msgstr "主題標籤" + +#: lib/RT/CustomField_Vendor.pm:21 +msgid "LabelURL" +msgstr "éˆçµæ¨™ç±¤" + +#: html/Admin/Elements/ModifyUser:51 +msgid "Lang" +msgstr "使用語言" + +#: html/Ticket/Elements/Tabs:72 +msgid "Last" +msgstr "上次更新" + +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:38 +msgid "Last Contact" +msgstr "上次è¯çµ¡" + +#: html/Elements/SelectDateType:28 +msgid "Last Contacted" +msgstr "上次è¯çµ¡æ—¥æœŸ" + +#: html/Search/Elements/TicketHeader:40 html/Work/Search/TicketHeader:19 +msgid "Last Notified" +msgstr "上次通知" + +#: html/Elements/SelectDateType:29 +msgid "Last Updated" +msgstr "上次更新" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "上次更新" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "剩餘時間" + +#: html/Admin/Users/Modify.html:82 +msgid "Let this user access RT" +msgstr "å…許這å使用者登入" + +#: html/Admin/Users/Modify.html:86 +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/Work/Queues/Select.html:4 +msgid "Link a Queue" +msgstr "申請表單連çµ" + +#: lib/RT/Ticket_Overlay.pm:2717 +msgid "Link already exists" +msgstr "æ­¤éˆçµå·²å­˜åœ¨" + +#: lib/RT/Ticket_Overlay.pm:2729 +msgid "Link could not be created" +msgstr "無法新增éˆçµ" + +#: lib/RT/Ticket_Overlay.pm:2737 lib/RT/Ticket_Overlay.pm:2747 +#. ($TransString) +msgid "Link created (%1)" +msgstr "éˆçµ(%1)新增完畢" + +#: lib/RT/Ticket_Overlay.pm:2658 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "éˆçµ(%1)刪除完畢" + +#: lib/RT/Ticket_Overlay.pm:2664 +msgid "Link not found" +msgstr "找ä¸åˆ°éˆçµ" + +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "éˆçµç”³è«‹å–® #%1" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "éˆçµç”³è«‹å–® %1" + +#: html/Ticket/Elements/Tabs:96 +msgid "Links" +msgstr "éˆçµ" + +#: html/Edit/Users/Search.html:11 +msgid "List All Users" +msgstr "列出所有用戶資料" + +#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:84 html/Work/Preferences/Info:73 +msgid "Location" +msgstr "ä½ç½®" + +#: lib/RT.pm:162 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "登入目錄 %1 找ä¸åˆ°æˆ–無法寫入\\n。無法執行 RT。" + +#: html/Edit/Global/Basic/Top:52 +msgid "LogToFile" +msgstr "紀錄等級" + +#: html/Edit/Global/Basic/Top:54 +msgid "LogToFileNamed" +msgstr "紀錄檔å" + +#: html/Elements/Header:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "使用者:%1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +msgid "Login" +msgstr "登入" + +#: html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:32 html/Elements/Header:54 +msgid "Logout" +msgstr "登出" + +#: NOT FOUND IN SOURCE +msgid "Long-term contractor" +msgstr "長期契約員工" + +#: html/Search/Bulk.html:85 html/Work/Search/Bulk.html:54 +msgid "Make Owner" +msgstr "新增承辦人" + +#: html/Search/Bulk.html:109 html/Work/Search/Bulk.html:63 +msgid "Make Status" +msgstr "æ–°å¢žç¾æ³" + +#: html/Search/Bulk.html:117 html/Work/Search/Bulk.html:75 +msgid "Make date Due" +msgstr "新增到期日" + +#: html/Search/Bulk.html:119 html/Work/Search/Bulk.html:78 +msgid "Make date Resolved" +msgstr "新增解決日期" + +#: html/Search/Bulk.html:113 html/Work/Search/Bulk.html:69 +msgid "Make date Started" +msgstr "新增實際起始日期" + +#: html/Search/Bulk.html:111 html/Work/Search/Bulk.html:66 +msgid "Make date Starts" +msgstr "新增應起始日期" + +#: html/Search/Bulk.html:115 html/Work/Search/Bulk.html:72 +msgid "Make date Told" +msgstr "新增報告日期" + +#: html/Search/Bulk.html:105 html/Work/Search/Bulk.html:57 +msgid "Make priority" +msgstr "新增優先順ä½" + +#: html/Search/Bulk.html:107 html/Work/Search/Bulk.html:60 +msgid "Make queue" +msgstr "新增表單" + +#: html/Search/Bulk.html:103 html/Work/Search/Bulk.html:59 +msgid "Make subject" +msgstr "新增主題" + +#: NOT FOUND IN SOURCE +msgid "Male" +msgstr "ç”·" + +#: html/Admin/index.html:32 +msgid "Manage groups and group membership" +msgstr "管ç†ç¾¤çµ„åŠæ‰€å±¬æˆå“¡" + +#: html/Admin/index.html:38 +msgid "Manage properties and configuration which apply to all queues" +msgstr "管ç†é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„屬性與設定" + +#: html/Admin/index.html:35 +msgid "Manage queues and queue-specific properties" +msgstr "管ç†å„表單åŠç›¸é—œå±¬æ€§" + +#: html/Admin/index.html:29 +msgid "Manage users and passwords" +msgstr "管ç†ä½¿ç”¨è€…與密碼" + +#: NOT FOUND IN SOURCE +msgid "Manager" +msgstr "ç¶“ç†" + +#: NOT FOUND IN SOURCE +msgid "Mar" +msgstr "三月" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "03" + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "三月" + +#: NOT FOUND IN SOURCE +msgid "Marketing Department" +msgstr "行銷部" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "五月" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "05" + +#: lib/RT/Group_Overlay.pm:981 +msgid "Member added" +msgstr "新增æˆå“¡å®Œç•¢" + +#: lib/RT/Group_Overlay.pm:1139 +msgid "Member deleted" +msgstr "æˆå“¡å·²åˆªé™¤" + +#: lib/RT/Group_Overlay.pm:1143 +msgid "Member not deleted" +msgstr "æˆå“¡æœªè¢«åˆªé™¤" + +#: html/Elements/SelectLinkType:25 +msgid "Member of" +msgstr "隸屬於" + +#: html/Work/Preferences/index.html:20 +msgid "Member since" +msgstr "註冊日期" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "隸屬於" + +#: html/Admin/Elements/GroupTabs:41 html/Admin/Elements/ModifyTemplateAsWorkflow:232 html/User/Elements/GroupTabs:41 +msgid "Members" +msgstr "æˆå“¡" + +#: lib/RT/Ticket_Overlay.pm:2904 +msgid "Merge Successful" +msgstr "æ•´åˆå®Œç•¢" + +#: lib/RT/Ticket_Overlay.pm:2824 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "æ•´åˆå¤±æ•—。無法設定 EffectiveId" + +#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:114 html/Work/Search/BulkLinks:2 +msgid "Merge into" +msgstr "æ•´åˆé€²" + +#: html/Search/Bulk.html:137 html/Ticket/Update.html:100 +msgid "Message" +msgstr "訊æ¯" + +#: NOT FOUND IN SOURCE +msgid "Misc. Expense" +msgstr "雜費" + +#: lib/RT/Interface/Web.pm:903 x:906 +msgid "Missing a primary key?: %1" +msgstr "缺少主éµå€¼ï¼Ÿ(%1)" + +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:53 html/Work/Preferences/Info:36 +msgid "Mobile" +msgstr "行動電話" + +#: html/Admin/Elements/ModifyUser:71 +msgid "MobilePhone" +msgstr "行動電話" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Modify Access Control List" +msgstr "æ›´æ”¹æ¬Šé™æŽ§åˆ¶æ¸…å–®" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +msgid "Modify Custom Fields which apply to all queues" +msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„自訂欄ä½" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Modify Scrip templates for this queue" +msgstr "更改此表單的範本" + +#: lib/RT/Queue_Overlay.pm:75 +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" + +#: NOT FOUND IN SOURCE +msgid "Modify Workflow" +msgstr "更改æµç¨‹" + +#: html/Admin/Queues/CustomField.html:44 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "更改 %1 表單內的自訂欄ä½" + +#: html/Admin/Global/CustomField.html:52 +msgid "Modify a CustomField which applies to all queues" +msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„自訂欄ä½" + +#: html/Admin/Queues/Scrip.html:53 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "更改 %1 表單內的手續" + +#: html/Admin/Global/Scrip.html:47 +msgid "Modify a scrip which applies to all queues" +msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æ‰‹çºŒ" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "更改 # %1 的日期" + +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "更改 #%1 的日期" + +#: html/Ticket/ModifyDates.html:34 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "更改申請單 # %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 "更改全域設定的群組權é™" + +#: html/Admin/Global/GroupRights.html:32 +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:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +msgid "Modify global user rights" +msgstr "更改全域設定的使用者權é™" + +#: html/Admin/Global/UserRights.html:32 +msgid "Modify global user rights." +msgstr "更改全域設定的使用者權é™ã€‚" + +#: lib/RT/Group_Overlay.pm:145 +msgid "Modify group metadata or delete group" +msgstr "更改群組資料åŠåˆªé™¤ç¾¤çµ„" + +#: 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 "更改 %1 的群組權é™" + +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "更改表單 %1 的群組權é™" + +#: lib/RT/Group_Overlay.pm:147 +msgid "Modify membership roster for this group" +msgstr "更改此群組的æˆå“¡åå–®" + +#: lib/RT/System.pm:60 +msgid "Modify one's own RT account" +msgstr "更改個人的帳號資訊" + +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "更改éˆçµåˆ°è¡¨å–® %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 "更改申請單 #%1 éˆçµåˆ°çš„人員" + +#: html/Admin/Queues/Scrips.html:45 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "更改表單 %1 的手續" + +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +msgid "Modify scrips which apply to all queues" +msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æ‰‹çºŒ" + +#: 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 "更改範本 %1" + +#: html/Admin/Global/Templates.html:43 +msgid "Modify templates which apply to all queues" +msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„範本" + +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "更改群組 %1" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify the queue watchers" +msgstr "更改表單視察員" + +#: html/Admin/Users/Modify.html:235 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "更改使用者 %1" + +#: html/Ticket/ModifyAll.html:36 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "更改申請單 # %1" + +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "更改申請單 # %1" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Modify tickets" +msgstr "更改申請單" + +#: 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 "更改群組 %1 的使用者權é™" + +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "更改表單 %1 的使用者權é™" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "更改 '%1' 的視察員" + +#: html/Admin/Global/Workflow.html:25 html/Admin/Global/Workflow.html:30 html/Admin/Global/Workflow.html:81 html/Admin/Queues/Workflow.html:77 +#. (loc($WorkflowObj->Name())) +#. ($WorkflowObj->id) +msgid "Modify workflow %1" +msgstr "更改æµç¨‹ %1" + +#: html/Admin/Global/Workflows.html:44 +msgid "Modify workflows which apply to all queues" +msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æµç¨‹" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ModifyACL" +msgstr "æ›´æ”¹æ¬Šé™æ¸…å–®" + +#: lib/RT/Group_Overlay.pm:148 +msgid "ModifyOwnMembership" +msgstr "更改自己是å¦å±¬æ–¼æŸç¾¤çµ„" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyQueueWatchers" +msgstr "更改表單視察員" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ModifyScrips" +msgstr "更改手續" + +#: lib/RT/System.pm:60 +msgid "ModifySelf" +msgstr "更改個人帳號" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "ModifyTemplate" +msgstr "更改範本" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "ModifyTicket" +msgstr "更改申請單" + +#: NOT FOUND IN SOURCE +msgid "Mon" +msgstr "星期一" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "星期一" + +#: html/Work/Elements/MyRequests:11 html/Work/Elements/MyTickets:11 +msgid "More" +msgstr "更多" + +#: html/Ticket/Elements/ShowRequestor:41 +#. ($name) +msgid "More about %1" +msgstr "關於 %1 的進一步資訊" + +#: NOT FOUND IN SOURCE +msgid "Morning Shift" +msgstr "æ—©ç­" + +#: html/Edit/Elements/ListButtons:16 +msgid "Move All" +msgstr "全移" + +#: html/Admin/Elements/EditCustomFields:60 +msgid "Move down" +msgstr "下移" + +#: html/Admin/Elements/EditCustomFields:52 +msgid "Move up" +msgstr "上移" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Multiple" +msgstr "多é‡" + +#: lib/RT/User_Overlay.pm:238 +msgid "Must specify 'Name' attribute" +msgstr "必須指定 'Name' 的屬性" + +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "我的 %1 申請單" + +#: html/Work/Elements/Tab:37 +msgid "My Approvals" +msgstr "表單簽核" + +#: html/Work/Elements/Tab:35 +msgid "My Requests" +msgstr "表單申請追蹤" + +#: html/Work/Elements/Tab:39 +msgid "My Tickets" +msgstr "表單處ç†" + +#: html/Approvals/index.html:24 html/Approvals/index.html:25 +msgid "My approvals" +msgstr "表單簽核" + +#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyTemplateAsWorkflow:185 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Edit/Users/Add.html:22 html/Edit/Users/Search.html:31 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 html/Work/Tickets/Cc:18 +msgid "Name" +msgstr "å稱" + +#: lib/RT/User_Overlay.pm:245 +msgid "Name in use" +msgstr "帳號已有人使用" + +#: html/Edit/Users/Info:27 +msgid "Nationality" +msgstr "國ç±" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "需先由系統管ç†å“¡é€²è¡Œæ‰¹å‡†" + +#: html/Ticket/Elements/ShowDates:51 +msgid "Never" +msgstr "從未更動" + +#: html/Elements/Quicksearch:29 html/Work/Elements/Quicksearch:15 html/Work/Tickets/Create.html:54 +msgid "New" +msgstr "新建立" + +#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/User/Prefs.html:64 html/Work/Preferences/Info:47 +msgid "New Password" +msgstr "新的密碼" + +#: etc/initialdata.zh:341 etc/initialdata:317 etc/upgrade/2.1.71:16 html/Edit/Elements/CreateApprovalsQueue:21 +msgid "New Pending Approval" +msgstr "新的待簽核事項" + +#: html/Ticket/Elements/EditLinks:110 +msgid "New Relationships" +msgstr "新增關係" + +#: html/Work/Elements/Tab:33 +msgid "New Request" +msgstr "表單申請" + +#: html/Ticket/Elements/Tabs:35 +msgid "New Search" +msgstr "新增查詢" + +#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:39 +msgid "New custom field" +msgstr "新增自訂欄ä½" + +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +msgid "New group" +msgstr "新增群組" + +#: html/SelfService/Prefs.html:31 +msgid "New password" +msgstr "新的密碼" + +#: lib/RT/User_Overlay.pm:764 +msgid "New password notification sent" +msgstr "é€å‡ºæ–°å¯†ç¢¼é€šçŸ¥" + +#: html/Admin/Elements/QueueTabs:69 +msgid "New queue" +msgstr "新增表單" + +#: NOT FOUND IN SOURCE +msgid "New request" +msgstr "æå‡ºç”³è«‹å–®" + +#: html/Admin/Elements/SelectRights:41 +msgid "New rights" +msgstr "新增權é™" + +#: 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 "新增手續" + +#: html/Work/Search/index.html:62 +msgid "New search" +msgstr "釿–°æŸ¥è©¢" + +#: 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 "新增範本" + +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "æå‡ºç”³è«‹å–®" + +#: lib/RT/Ticket_Overlay.pm:2791 +msgid "New ticket doesn't exist" +msgstr "沒有新申請單" + +#: html/Admin/Elements/UserTabs:51 +msgid "New user" +msgstr "新增使用者" + +#: html/Admin/Elements/CreateUserCalled:25 +msgid "New user called" +msgstr "新使用者åå­—" + +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +msgid "New watchers" +msgstr "新視察員" + +#: html/Admin/Users/Prefs.html:41 +msgid "New window setting" +msgstr "更新視窗設定" + +#: html/Admin/Global/Workflow.html:60 html/Admin/Global/Workflows.html:39 html/Admin/Queues/Workflow.html:57 html/Admin/Queues/Workflows.html:50 +msgid "New workflow" +msgstr "新增æµç¨‹" + +#: html/Ticket/Elements/Tabs:68 +msgid "Next" +msgstr "下一項" + +#: html/Search/Listing.html:47 html/Work/Search/index.html:24 +msgid "Next page" +msgstr "下一é " + +#: html/Admin/Elements/ModifyUser:49 +msgid "NickName" +msgstr "暱稱" + +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:45 html/Work/Preferences/Info:26 +msgid "Nickname" +msgstr "暱稱" + +#: NOT FOUND IN SOURCE +msgid "Night Shift" +msgstr "å°å¤œç­" + +#: html/Edit/Global/Basic/Top:27 +msgid "No" +msgstr "å¦" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:104 +msgid "No CustomField" +msgstr "無自訂欄ä½" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +msgid "No Group defined" +msgstr "尚未定義群組" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +msgid "No Queue defined" +msgstr "沒有定義好的表單" + +#: bin/rt-crontool:55 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "找ä¸åˆ° RT ä½¿ç”¨è€…ã€‚è«‹å‘ RT 管ç†å“¡æŸ¥è©¢ã€‚\\n" + +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +msgid "No Template" +msgstr "沒有範本" + +#: bin/rt-commit-handler:763 +msgid "No Ticket specified. Aborting ticket " +msgstr "未指定申請單。退出申請單 " + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "未指定申請單。退出申請單更改\\n\\n" + +#: html/Admin/Elements/ModifyWorkflow:237 html/Admin/Global/Workflow.html:79 html/Admin/Queues/Workflow.html:75 +msgid "No Workflow" +msgstr "沒有æµç¨‹" + +#: html/Approvals/Elements/Approve:45 html/Work/Approvals/Elements/Approve:35 +msgid "No action" +msgstr "æš«ä¸è™•ç†" + +#: lib/RT/Interface/Web.pm:898 x:901 +msgid "No column specified" +msgstr "未指定欄ä½" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "找ä¸åˆ°å‘½ä»¤" + +#: html/Elements/ViewUser:35 html/Ticket/Elements/ShowRequestor:44 +msgid "No comment entered about this user" +msgstr "沒有å°é€™å使用者的評論" + +#: lib/RT/Ticket_Overlay.pm:2202 lib/RT/Ticket_Overlay.pm:2270 +msgid "No correspondence attached" +msgstr "沒有附上申請單回覆" + +#: lib/RT/Action/Generic.pm:149 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 "æ²’æœ‰å° %1 çš„æè¿°" + +#: lib/RT/Users_Overlay.pm:150 +msgid "No group specified" +msgstr "未指定群組" + +#: lib/RT/User_Overlay.pm:982 +msgid "No password set" +msgstr "沒有設定密碼" + +#: lib/RT/Queue_Overlay.pm:260 +msgid "No permission to create queues" +msgstr "沒有新增表單的權é™" + +#: lib/RT/Ticket_Overlay.pm:342 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "沒有在表單 '%1' 新增申請單的權é™" + +#: lib/RT/User_Overlay.pm:211 +msgid "No permission to create users" +msgstr "沒有新增使用者的權é™" + +#: html/SelfService/Display.html:117 +msgid "No permission to display that ticket" +msgstr "沒有顯示該申請單的權é™" + +#: html/SelfService/Update.html:51 +msgid "No permission to view update ticket" +msgstr "沒有檢視申請單更新的權é™" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1487 +msgid "No principal specified" +msgstr "未指定單ä½" + +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +msgid "No principals selected." +msgstr "未指定單ä½ã€‚" + +#: NOT FOUND IN SOURCE +msgid "No protocol specified in %1" +msgstr "%1 內未指定å”定" + +#: html/Admin/Queues/index.html:34 +msgid "No queues matching search criteria found." +msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„表單。" + +#: html/Admin/Elements/SelectRights:80 +msgid "No rights found" +msgstr "找ä¸åˆ°æ¬Šé™" + +#: html/Admin/Elements/SelectRights:32 +msgid "No rights granted." +msgstr "沒有é¸å®šæ¬Šé™" + +#: html/Search/Bulk.html:160 html/Work/Search/Bulk.html:117 +msgid "No search to operate on." +msgstr "沒有è¦é€²è¡Œçš„æŸ¥è©¢" + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "未指定申請單編號" + +#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +msgid "No transaction type specified" +msgstr "未指定更動報告類別" + +#: NOT FOUND IN SOURCE +msgid "No user or email address specified" +msgstr "未指定使用者或電å­éƒµä»¶åœ°å€" + +#: html/Admin/Users/index.html:35 +msgid "No users matching search criteria found." +msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„使用者。" + +#: bin/rt-commit-handler:643 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "找ä¸åˆ°åˆæ ¼çš„ RT 使用者。RT cvs 處ç†å™¨å·²åœç”¨ã€‚è«‹å‘ RT 管ç†è€…è©¢å•。\\n" + +#: lib/RT/Interface/Web.pm:895 x:898 +msgid "No value sent to _Set!\\n" +msgstr "_Set 沒有收到任何值!\\n" + +#: html/Search/Elements/TicketRow:36 html/Work/Search/TicketRow:9 +msgid "Nobody" +msgstr "沒有人" + +#: lib/RT/Interface/Web.pm:900 x:903 +msgid "Nonexistant field?" +msgstr "欄ä½ä¸å­˜åœ¨ï¼Ÿ" + +#: NOT FOUND IN SOURCE +msgid "Normal Users" +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:59 +msgid "Not logged in." +msgstr "尚未登入" + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "尚未設定" + +#: html/NoAuth/Reminder.html:26 +msgid "Not yet implemented." +msgstr "尚未完工。" + +#: NOT FOUND IN SOURCE +msgid "Not yet implemented...." +msgstr "尚未完工..." + +#: html/Approvals/Elements/Approve:48 html/Work/Tickets/Create.html:143 +msgid "Notes" +msgstr "備註" + +#: NOT FOUND IN SOURCE +msgid "Notes:" +msgstr "備註:" + +#: lib/RT/User_Overlay.pm:767 +msgid "Notification could not be sent" +msgstr "無法é€å‡ºé€šçŸ¥" + +#: etc/initialdata.zh:111 etc/initialdata:93 +msgid "Notify AdminCcs" +msgstr "通知管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:107 etc/initialdata:89 +msgid "Notify AdminCcs as Comment" +msgstr "以評論方å¼é€šçŸ¥ç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:138 etc/initialdata:120 +msgid "Notify Other Recipients" +msgstr "通知其他收件人" + +#: etc/initialdata.zh:134 etc/initialdata:116 +msgid "Notify Other Recipients as Comment" +msgstr "以評論方å¼é€šçŸ¥å…¶ä»–收件人" + +#: etc/initialdata.zh:103 etc/initialdata:85 +msgid "Notify Owner" +msgstr "通知承辦人" + +#: etc/initialdata.zh:99 etc/initialdata:81 +msgid "Notify Owner as Comment" +msgstr "以評論方å¼é€šçŸ¥æ‰¿è¾¦äºº" + +#: etc/initialdata.zh:385 etc/initialdata:361 +msgid "Notify Owner of their rejected ticket" +msgstr "通知承辦人申請單已é§å›ž" + +#: etc/initialdata.zh:374 etc/initialdata:350 +msgid "Notify Owner of their ticket has been approved by all approvers" +msgstr "通知承辦人申請單已完æˆå…¨éƒ¨ç°½æ ¸" + +#: etc/initialdata.zh:359 etc/initialdata:338 +msgid "Notify Owner of their ticket has been approved by some approver" +msgstr "é€šçŸ¥æ‰¿è¾¦äººç”³è«‹å–®å·²å®ŒæˆæŸé …簽核" + +#: etc/initialdata.zh:343 etc/initialdata:319 etc/upgrade/2.1.71:17 html/Edit/Elements/CreateApprovalsQueue:22 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "æ•´ç†å¾…簽核事項,通知承辦人åŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:95 etc/initialdata:77 +msgid "Notify Requestors" +msgstr "通知申請人" + +#: etc/initialdata.zh:121 etc/initialdata:103 +msgid "Notify Requestors and Ccs" +msgstr "通知申請人åŠå‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:116 etc/initialdata:98 +msgid "Notify Requestors and Ccs as Comment" +msgstr "以評論方å¼é€šçŸ¥ç”³è«‹äººåŠå‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:130 etc/initialdata:112 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "通知申請人ã€å‰¯æœ¬åŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:126 etc/initialdata:108 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "以評論方å¼é€šçŸ¥ç”³è«‹äººã€å‰¯æœ¬åŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" + +#: html/Work/Tickets/Cc:55 +msgid "Notify people:" +msgstr "通知å°è±¡" + +#: NOT FOUND IN SOURCE +msgid "Nov" +msgstr "å一月" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "11" + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "å一月" + +#: html/Edit/Global/Basic/Top:74 +msgid "OIN104" +msgstr "é…åˆ 104eHRMS 介é¢" + +#: html/Edit/Global/Workflow/Export.html:30 html/Work/Copyright.html:23 +msgid "OK" +msgstr "確定" + +#: lib/RT/Record.pm:156 +msgid "Object could not be created" +msgstr "無法新增物件" + +#: lib/RT/Record.pm:175 +msgid "Object created" +msgstr "物件新增完畢" + +#: html/Edit/Users/Info:35 +msgid "Occupation Status" +msgstr "在è·ç‹€æ…‹" + +#: NOT FOUND IN SOURCE +msgid "Oct" +msgstr "åæœˆ" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "10" + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "åæœˆ" + +#: html/Edit/Users/Info:32 +msgid "Office Phone" +msgstr "辦公室電話" + +#: html/Elements/SelectDateRelation:34 +msgid "On" +msgstr "等於" + +#: etc/initialdata.zh:173 etc/initialdata:155 +msgid "On Comment" +msgstr "評論時" + +#: etc/initialdata.zh:166 etc/initialdata:148 +msgid "On Correspond" +msgstr "回覆申請單時" + +#: etc/initialdata.zh:155 etc/initialdata:137 +msgid "On Create" +msgstr "新增申請單時" + +#: etc/initialdata.zh:187 etc/initialdata:169 +msgid "On Owner Change" +msgstr "承辦人改變時" + +#: etc/initialdata.zh:195 etc/initialdata:177 +msgid "On Queue Change" +msgstr "表單改變時" + +#: etc/initialdata.zh:201 etc/initialdata:183 +msgid "On Resolve" +msgstr "解決申請單時" + +#: etc/initialdata.zh:179 etc/initialdata:161 +msgid "On Status Change" +msgstr "ç¾æ³æ”¹è®Šæ™‚" + +#: etc/initialdata.zh:160 etc/initialdata:142 +msgid "On Transaction" +msgstr "發生更動時" + +#: 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 "僅顯示 %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 "僅顯示 %1 之剿–°å¢žçš„申請單" + +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:13 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:28 +msgid "Open" +msgstr "開啟" + +#: html/Ticket/Elements/Tabs:135 +msgid "Open it" +msgstr "開啟" + +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "開啟的申請單" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in a new window" +msgstr "在新視窗開啟(列表的)申請單" + +#: html/Admin/Users/Prefs.html:39 +msgid "Open tickets (from listing) in another window" +msgstr "在å¦ä¸€å€‹è¦–窗開啟(列表的)申請單" + +#: etc/initialdata.zh:150 etc/initialdata:132 +msgid "Open tickets on correspondence" +msgstr "收到回覆時å³é–‹å•Ÿç”³è«‹å–®" + +#: NOT FOUND IN SOURCE +msgid "Opened Tickets" +msgstr "已申請é‹è¡Œä¸­è¡¨å–®" + +#: NOT FOUND IN SOURCE +msgid "Opinion" +msgstr "æ„見" + +#: html/Edit/Global/CustomField/Info:35 +msgid "Option Description" +msgstr "é¸é …æè¿°" + +#: html/Edit/Global/CustomField/Info:29 +msgid "Option Name" +msgstr "é¸é …å稱" + +#: html/Search/Elements/PickRestriction:100 html/Work/Search/PickRestriction:81 +msgid "Ordering and sorting" +msgstr "é †åºèˆ‡æŽ’åºæ–¹å¼" + +#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Global/Basic/Top:50 html/Elements/SelectUsers:28 html/User/Prefs.html:85 html/Work/Preferences/Info:75 +msgid "Organization" +msgstr "組織å稱" + +#: NOT FOUND IN SOURCE +msgid "Organization:" +msgstr "組織:" + +#: html/Approvals/Elements/Approve:32 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "原申請單:#%1" + +#: html/Edit/Elements/PickUsers:109 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 +msgid "Other comma-delimited email addresses" +msgstr "å…¶ä»–e-mail帳號 (僅e-mail通知;多筆帳號請用逗號','å€éš”)" + +#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 html/Edit/Queues/Basic/Top:41 +msgid "Over time, priority moves toward" +msgstr "優先順ä½éš¨æ™‚間增加調整為" + +#: NOT FOUND IN SOURCE +msgid "Override current custom fields with fields from %1" +msgstr "以 %1 表單的自訂欄ä½å–ä»£ç¾æœ‰æ¬„ä½" + +#: html/Admin/Elements/CheckOverrideGlobalACL:25 +msgid "Override global rights" +msgstr "å–代全域權é™" + +#: html/Admin/Elements/CheckOverrideGlobalACL:34 +#. (loc_fuzzy($msg)) +msgid "OverrideGlobalACL status %1" +msgstr "å–ä»£å…¨åŸŸæ¬Šé™ %1" + +#: html/Work/Elements/Tab:31 +msgid "Overview" +msgstr "總覽" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Own tickets" +msgstr "承辦申請單" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "OwnTicket" +msgstr "承辦申請單" + +#: etc/initialdata.zh:56 etc/initialdata:38 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:47 html/Edit/Queues/Basic/Top:58 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:19 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "承辦人" + +#: NOT FOUND IN SOURCE +msgid "Owner changed from %1 to %2" +msgstr "承辦人已從 %1 改為 %2" + +#: lib/RT/Transaction_Overlay.pm:582 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "強制將承辦人從 %1 改為 %2" + +#: html/Search/Elements/PickRestriction:30 html/Work/Search/PickRestriction:10 +msgid "Owner is" +msgstr "承辦人" + +#: html/Work/Elements/List:27 html/Work/Queues/List:8 html/Work/Tickets/Create.html:56 html/Work/Tickets/Elements/ShowBasics:60 +msgid "Owner's Phone" +msgstr "承辦人電話" + +#: html/Edit/Elements/Page:39 +msgid "Page" +msgstr " " + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:55 html/Work/Preferences/Info:38 +msgid "Pager" +msgstr "呼å«å™¨" + +#: html/Admin/Elements/ModifyUser:73 +msgid "PagerPhone" +msgstr "呼å«å™¨è™Ÿç¢¼" + +#: html/Edit/Global/Workflow/Action:81 html/Edit/Global/Workflow/Condition:66 +msgid "Parameter" +msgstr "呼å«åƒæ•¸" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:225 +msgid "Parent" +msgstr "上級" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:126 html/Ticket/Elements/EditLinks:57 html/Ticket/Elements/ShowLinks:46 html/Work/Search/BulkLinks:14 +msgid "Parents" +msgstr "æ¯ç”³è«‹å–®" + +#: NOT FOUND IN SOURCE +msgid "Park Space" +msgstr "åœè»Šä½ç”³è«‹" + +#: html/Elements/Login:52 html/User/Prefs.html:60 html/Work/Preferences/Info:44 +msgid "Password" +msgstr "密碼" + +#: html/NoAuth/Reminder.html:24 +msgid "Password Reminder" +msgstr "密碼æç¤º" + +#: lib/RT/User_Overlay.pm:228 lib/RT/User_Overlay.pm:985 +msgid "Password too short" +msgstr "密碼太短" + +#: html/Admin/Users/Modify.html:290 html/User/Prefs.html:171 html/Work/Preferences/Info:167 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "密碼:%1" + +#: html/Admin/Users/Modify.html:292 +msgid "Passwords do not match." +msgstr "密碼確èªå¤±æ•—。" + +#: html/User/Prefs.html:173 html/Work/Preferences/Info:169 +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:44 html/Ticket/Elements/Tabs:95 html/Ticket/ModifyAll.html:50 +msgid "People" +msgstr "人員" + +#: NOT FOUND IN SOURCE +msgid "People with Queue Rights" +msgstr "æ“æœ‰è¡¨å–®æ¬Šé™äººå“¡" + +#: etc/initialdata.zh:143 etc/initialdata:125 +msgid "Perform a user-defined action" +msgstr "執行使用者自訂的動作" + +#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:510 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1098 lib/RT/Group_Overlay.pm:1107 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1162 lib/RT/Group_Overlay.pm:1168 lib/RT/Group_Overlay.pm:425 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:903 lib/RT/Group_Overlay.pm:907 lib/RT/Group_Overlay.pm:920 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:196 lib/RT/Scrip_Overlay.pm:433 lib/RT/Template_Overlay.pm:283 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1359 lib/RT/Ticket_Overlay.pm:1369 lib/RT/Ticket_Overlay.pm:1383 lib/RT/Ticket_Overlay.pm:1517 lib/RT/Ticket_Overlay.pm:1526 lib/RT/Ticket_Overlay.pm:1539 lib/RT/Ticket_Overlay.pm:1888 lib/RT/Ticket_Overlay.pm:2026 lib/RT/Ticket_Overlay.pm:2190 lib/RT/Ticket_Overlay.pm:2257 lib/RT/Ticket_Overlay.pm:2616 lib/RT/Ticket_Overlay.pm:2688 lib/RT/Ticket_Overlay.pm:2782 lib/RT/Ticket_Overlay.pm:2797 lib/RT/Ticket_Overlay.pm:2996 lib/RT/Ticket_Overlay.pm:3006 lib/RT/Ticket_Overlay.pm:3011 lib/RT/Ticket_Overlay.pm:3233 lib/RT/Ticket_Overlay.pm:3431 lib/RT/Ticket_Overlay.pm:3593 lib/RT/Ticket_Overlay.pm:3645 lib/RT/Ticket_Overlay.pm:3823 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1079 lib/RT/User_Overlay.pm:1527 lib/RT/User_Overlay.pm:687 lib/RT/User_Overlay.pm:722 lib/RT/User_Overlay.pm:978 +msgid "Permission Denied" +msgstr "權é™ä¸è¶³" + +#: html/Edit/Rights/index.html:3 +msgid "Permission Settings" +msgstr "權é™è¨­å®š" + +#: NOT FOUND IN SOURCE +msgid "Permitted Queues:" +msgstr "æ“æœ‰æ¬Šé™è¡¨å–®åˆ—表:" + +#: NOT FOUND IN SOURCE +msgid "Personal" +msgstr "代ç†äººç¾¤çµ„" + +#: html/User/Elements/Tabs:34 +msgid "Personal Groups" +msgstr "代ç†äººç¾¤çµ„" + +#: NOT FOUND IN SOURCE +msgid "Personal Todo" +msgstr "ç§äººå¾…辦事項" + +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +msgid "Personal groups" +msgstr "代ç†äººç¾¤çµ„" + +#: html/User/Elements/DelegateRights:36 +msgid "Personal groups:" +msgstr "代ç†äººç¾¤çµ„:" + +#: html/Work/Preferences/Info:24 +msgid "PersonalHomepage" +msgstr "個人首é " + +#: NOT FOUND IN SOURCE +msgid "Phone" +msgstr "電話" + +#: html/Work/Delegates/Info:90 html/Work/Overview/Info:72 +msgid "Phone number" +msgstr "電話號碼" + +#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:48 html/Work/Preferences/Info:30 +msgid "Phone numbers" +msgstr "電話號碼" + +#: html/Edit/Users/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 +msgid "Pick" +msgstr "挑é¸" + +#: NOT FOUND IN SOURCE +msgid "Place of Departure" +msgstr "出發地點" + +#: NOT FOUND IN SOURCE +msgid "Placeholder" +msgstr "尚未完工" + +#: html/Edit/Elements/PickUsers:31 html/Edit/Elements/PickUsers:44 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:183 html/Work/Tickets/Elements/EditCustomField:75 html/Work/Tickets/Elements/EditCustomFieldEntries:81 html/Work/Tickets/Elements/EditCustomFieldEntries:88 +msgid "Please Select" +msgstr "è«‹é¸æ“‡" + +#: html/Edit/Elements/104Buttons:30 +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 role" +msgstr "è«‹é¸æ“‡è§’色" + +#: NOT FOUND IN SOURCE +msgid "Policy" +msgstr "經營è¦ç« " + +#: NOT FOUND IN SOURCE +msgid "Position" +msgstr "è·å‹™" + +#: html/Edit/Users/Info:42 +msgid "Position Level" +msgstr "è·ç­‰" + +#: html/Edit/Elements/PickUsers:41 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Users/Add.html:41 html/Edit/Users/List:11 html/Edit/Users/Top:22 html/Work/Delegates/Add.html:26 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 +msgid "Position Name" +msgstr "è·å‹™å稱" + +#: html/Edit/Global/UserRight/List:14 html/Edit/Global/UserRight/Top:33 html/Edit/Users/List:12 html/Edit/Users/Top:32 +msgid "Position Number" +msgstr "è·å‹™ä»£ç¢¼" + +#: html/Edit/Users/Info:43 +msgid "Position Rank" +msgstr "è·ç´š" + +#: NOT FOUND IN SOURCE +msgid "Pref" +msgstr "å好" + +#: html/Edit/Elements/104Top:26 html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 html/Work/Elements/Tab:43 +msgid "Preferences" +msgstr "å好" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "個人資訊" + +#: lib/RT/Action/Generic.pm:159 +msgid "Prepare Stubbed" +msgstr "é å‚™å‹•作完畢" + +#: html/Ticket/Elements/Tabs:60 +msgid "Prev" +msgstr "上一項" + +#: html/Search/Listing.html:43 html/Work/Search/index.html:20 +msgid "Previous page" +msgstr "å‰ä¸€é " + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "優先順ä½" + +#: 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 "找ä¸åˆ°å–®ä½ %1。" + +#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "優先順ä½" + +#: html/Admin/Elements/ModifyQueue:50 html/Admin/Queues/Modify.html:64 +msgid "Priority starts at" +msgstr "優先順ä½èµ·å§‹å€¼" + +#: etc/initialdata.zh:43 etc/initialdata:25 +msgid "Privileged" +msgstr "內部æˆå“¡" + +#: html/Admin/Users/Modify.html:270 html/User/Prefs.html:162 html/Work/Preferences/Info:158 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "內部æˆå“¡ç‹€æ…‹ï¼š%1" + +#: html/Admin/Users/index.html:61 +msgid "Privileged users" +msgstr "內部æˆå“¡" + +#: html/Work/Elements/SelectSearch:16 +msgid "Process Status" +msgstr "處ç†ç‹€æ…‹" + +#: etc/initialdata.zh:41 etc/initialdata.zh:47 etc/initialdata.zh:53 etc/initialdata.zh:77 etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "內部用的虛擬群組" + +#: html/Work/Preferences/Info:68 +msgid "Public Info" +msgstr "公開資訊" + +#: html/Work/Elements/104Header:88 +msgid "Public Service" +msgstr "公共事務å€" + +#: html/Edit/Users/Search.html:4 +msgid "Query" +msgstr "查詢" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:17 html/Work/Elements/MyTickets:17 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "表單" + +#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 html/Admin/Queues/Workflows.html:44 +#. ($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/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 html/Edit/Queues/Basic/Top:12 html/Edit/Queues/Basic/index.html:36 html/Edit/Queues/Global:21 html/Edit/Queues/List:6 html/Edit/Users/Queue:10 html/Work/Delegates/List:6 html/Work/Elements/List:11 html/Work/Queues/List:5 html/Work/Tickets/Create.html:22 html/Work/Tickets/Elements/ShowBasics:6 +msgid "Queue Name" +msgstr "表單å稱" + +#: html/Edit/Queues/List:8 html/Work/Elements/List:25 html/Work/Queues/List:7 html/Work/Tickets/Create.html:35 html/Work/Tickets/Elements/ShowBasics:19 +msgid "Queue Owner" +msgstr "業務承辦人" + +#: html/Edit/Queues/Basic/Top:35 +msgid "Queue Priority" +msgstr "優先等級" + +#: html/Edit/Global/GroupRight/Top:24 html/Edit/Global/UserRight/Top:43 html/Edit/Users/Queue:11 html/Edit/Users/index.html:124 +msgid "Queue Rights" +msgstr "表單權é™" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "表單手續" + +#: html/Edit/Elements/Tab:38 +msgid "Queue Setup" +msgstr "表單設定" + +#: lib/RT/Queue_Overlay.pm:264 +msgid "Queue already exists" +msgstr "表單已存在" + +#: lib/RT/Queue_Overlay.pm:273 lib/RT/Queue_Overlay.pm:279 +msgid "Queue could not be created" +msgstr "無法新增表單" + +#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:204 html/Work/Tickets/Create.html:185 +msgid "Queue could not be loaded." +msgstr "無法載入表單" + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 +msgid "Queue created" +msgstr "表單新增完畢" + +#: html/Admin/Elements/ModifyWorkflow:32 +msgid "Queue is not specified." +msgstr "未指定表單。" + +#: html/SelfService/Display.html:70 lib/RT/CustomField_Overlay.pm:97 +msgid "Queue not found" +msgstr "找ä¸åˆ°è¡¨å–®" + +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +msgid "Queues" +msgstr "表單" + +#: html/Work/Elements/Quicksearch:10 +msgid "Quick Search" +msgstr "è¡¨å–®ç¾æ³" + +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "表單一覽" + +#: html/Elements/Login:44 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "RT %1" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "%2:RT %1 版" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +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:24 html/Admin/index.html:25 +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:41 html/SelfService/Error.html:40 +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/index.html:24 html/index.html:27 +msgid "RT at a glance" +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" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RT 無法確èªé€™å€‹ PGP 簽章。\\n" + +#: html/Edit/Elements/104Header:7 html/Edit/Elements/104Top:20 html/Elements/PageLayout:85 html/Work/Elements/104Header:7 +#. ($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 已執行您的命令" + +#: html/Elements/Login:94 +#. ('2003') +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 èªç‚ºé€™å¯èƒ½æ˜¯é€€ä¿¡" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RT 以未簽章方å¼è™•ç†é€™å°éƒµä»¶ã€‚\\n" + +#: 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 "申請單é‹è¡Œè§’色" + +#: html/Work/Tickets/Elements/ShowTransaction:11 +msgid "RT_System" +msgstr "系統訊æ¯" + +#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/User/Prefs.html:43 html/Work/Preferences/Info:18 +msgid "Real Name" +msgstr "真實姓å" + +#: html/Admin/Elements/ModifyUser:47 +msgid "RealName" +msgstr "真實姓å" + +#: html/Work/Approvals/Display.html:27 html/Work/Tickets/Update.html:85 +msgid "Really reject this ticket?" +msgstr "您確定è¦é§å›žé€™å¼µç”³è«‹å–®å—Žï¼Ÿ" + +#: html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:138 html/Ticket/Elements/EditLinks:93 html/Ticket/Elements/ShowLinks:70 html/Work/Search/BulkLinks:26 +msgid "Referred to by" +msgstr "被åƒè€ƒ" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:134 html/Ticket/Elements/EditLinks:79 html/Ticket/Elements/ShowLinks:60 html/Work/Search/BulkLinks:22 +msgid "Refers to" +msgstr "åƒè€ƒ" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "åƒè€ƒ" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "åœ¨çµæžœç¯„åœå…§æŸ¥è©¢" + +#: html/Search/Elements/PickRestriction:26 html/Work/Search/PickRestriction:7 +msgid "Refine search" +msgstr "調整查詢æ¢ä»¶" + +#: html/Work/Overview/index.html:12 +msgid "Refresh" +msgstr "æ›´æ–°" + +#: html/Elements/Refresh:35 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "æ¯ %1 åˆ†é˜æ›´æ–°é é¢" + +#: html/Ticket/Create.html:173 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 +msgid "Relationships" +msgstr "關係" + +#: html/Edit/Elements/ListButtons:13 +msgid "Remove" +msgstr "移除" + +#: html/Search/Bulk.html:97 html/Work/Search/Bulk.html:77 +msgid "Remove AdminCc" +msgstr "移除管ç†å“¡å‰¯æœ¬" + +#: html/Search/Bulk.html:93 html/Work/Search/Bulk.html:71 +msgid "Remove Cc" +msgstr "移除副本" + +#: html/Search/Bulk.html:89 html/Work/Search/Bulk.html:65 +msgid "Remove Requestor" +msgstr "移除申請人" + +#: html/Ticket/Elements/ShowTransaction:160 html/Ticket/Elements/Tabs:121 html/Work/Tickets/Display.html:31 html/Work/Tickets/Elements/ShowTransaction:108 +msgid "Reply" +msgstr "回覆" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Reply to tickets" +msgstr "å°ç”³è«‹å–®é€²è¡Œå›žè¦†" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "ReplyToTicket" +msgstr "回覆申請單" + +#: html/Edit/Users/Info:45 +msgid "Report to Duty" +msgstr "上下ç­åˆ·å¡" + +#: html/Edit/Users/Info:33 +msgid "Reported on" +msgstr "åˆ°è·æ—¥æœŸ" + +#: etc/initialdata.zh:62 etc/initialdata:44 html/Ticket/Update.html:39 html/Work/Elements/List:21 html/Work/Elements/MyApprovals:12 html/Work/Elements/MyTickets:20 html/Work/Elements/SelectSearch:30 html/Work/Tickets/Elements/ShowBasics:62 lib/RT/ACE_Overlay.pm:86 +msgid "Requestor" +msgstr "申請人" + +#: html/Edit/Global/Workflow/Owner.html:44 +msgid "Requestor Group's" +msgstr "申請人所屬群組之" + +#: html/Search/Elements/PickRestriction:37 html/Work/Search/PickRestriction:17 +msgid "Requestor email address" +msgstr "申請人電å­éƒµä»¶ä¿¡ç®±ä½å€" + +#: html/Edit/Global/Workflow/Owner.html:28 +msgid "Requestor's" +msgstr "申請人所屬之第上" + +#: html/Work/Elements/List:23 +msgid "Requestor's Phone" +msgstr "申請人電話" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "申請人" + +#: NOT FOUND IN SOURCE +msgid "RequestorAddresses" +msgstr "申請人地å€" + +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +msgid "Requestors" +msgstr "申請人" + +#: html/Admin/Elements/ModifyQueue:60 html/Admin/Queues/Modify.html:74 +msgid "Requests should be due in" +msgstr "ç”³è«‹å–®è™•ç†æœŸé™" + +#: html/Elements/Submit:61 +msgid "Reset" +msgstr "é‡è¨­" + +#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:49 html/Work/Preferences/Info:32 +msgid "Residence" +msgstr "ä½è™•" + +#: NOT FOUND IN SOURCE +msgid "Resolution" +msgstr "解決狀態" + +#: html/Ticket/Elements/Tabs:131 html/Work/Tickets/Display.html:34 +msgid "Resolve" +msgstr "解決" + +#: html/Ticket/Update.html:136 html/Work/Tickets/Update.html:120 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "解決申請單 #%1 (%2)" + +#: etc/initialdata.zh:331 etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1188 +msgid "Resolved" +msgstr "已解決" + +#: html/Search/Bulk.html:132 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:71 html/Work/Search/Bulk.html:84 html/Work/Tickets/Update.html:38 +msgid "Response to requestors" +msgstr "回覆申請人" + +#: html/Edit/Users/Info:44 +msgid "Responsibility Type" +msgstr "責任å€åˆ†" + +#: html/Elements/ListActions:25 +msgid "Results" +msgstr "çµæžœ" + +#: html/Search/Elements/PickRestriction:104 html/Work/Search/PickRestriction:84 +msgid "Results per page" +msgstr "æ¯é åˆ—å‡ºå¹¾ç­†çµæžœ" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:71 html/Work/Preferences/Info:54 +msgid "Retype Password" +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:612 +msgid "Right Delegated" +msgstr "權é™ä»£ç†å®Œç•¢" + +#: lib/RT/ACE_Overlay.pm:302 +msgid "Right Granted" +msgstr "權é™è¨­å®šå®Œç•¢" + +#: lib/RT/ACE_Overlay.pm:160 +msgid "Right Loaded" +msgstr "權é™è¼‰å…¥å®Œç•¢" + +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +msgid "Right could not be revoked" +msgstr "無法撤消權é™" + +#: html/User/Delegation.html:63 +msgid "Right not found" +msgstr "找ä¸åˆ°æ¬Šé™" + +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +msgid "Right not loaded." +msgstr "權é™ä¸¦æœªè¼‰å…¥ã€‚" + +#: lib/RT/ACE_Overlay.pm:688 +msgid "Right revoked" +msgstr "æ¬Šé™æ’¤æ¶ˆå®Œç•¢" + +#: html/Admin/Elements/UserTabs:40 +msgid "Rights" +msgstr "權é™åŠä»£ç†äºº" + +#: lib/RT/Interface/Web.pm:794 x:797 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "無法將權é™è³¦äºˆ %1" + +#: lib/RT/Interface/Web.pm:827 x:830 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "無法撤消 %1 的權é™" + +#: html/Edit/Groups/Member:55 html/Edit/Groups/Members/List:10 +msgid "Role Members" +msgstr "角色æˆå“¡" + +#: html/Edit/Groups/Member:37 html/Edit/Groups/Members/Add.html:13 html/Edit/Groups/Members/List:7 html/Edit/Groups/Roles/List:4 html/Edit/Groups/Roles/Top:7 +msgid "Role Name" +msgstr "角色å稱" + +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 html/Edit/Global/Workflow/Owner.html:55 html/Edit/Global/Workflow/Owner.html:81 html/Edit/Groups/Member:24 +msgid "Roles" +msgstr "角色" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "交由系統管ç†å“¡ç°½æ ¸" + +#: html/Edit/Global/Workflow/Action:27 +msgid "Run Approval" +msgstr "簽核執行" + +#: html/Edit/Global/Basic/Top:72 +msgid "SMTPDebug" +msgstr "SMTP åµéŒ¯ç´€éŒ„" + +#: html/Edit/Global/Basic/Top:58 +msgid "SMTPFrom" +msgstr "SMTP 寄件ä½å€" + +#: html/Edit/Global/Basic/Top:56 +msgid "SMTPServer" +msgstr "SMTP 伺æœå™¨" + +#: NOT FOUND IN SOURCE +msgid "Sat" +msgstr "星期六" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "星期六" + +#: html/Edit/Elements/104Buttons:72 html/Work/Preferences/index.html:35 +msgid "Save" +msgstr "儲存" + +#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyLinks.html:38 html/Ticket/ModifyPeople.html:37 +msgid "Save Changes" +msgstr "儲存更改" + +#: NOT FOUND IN SOURCE +msgid "Save changes" +msgstr "儲存更改" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->id) +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "手續 #%1" + +#: html/Edit/Global/Scrip/List:9 html/Edit/Global/Scrip/Top:41 +msgid "Scrip Action" +msgstr "訊æ¯é€šçŸ¥å‹•作" + +#: html/Edit/Global/Scrip/List:8 html/Edit/Global/Scrip/Top:15 +msgid "Scrip Condition" +msgstr "訊æ¯é€šçŸ¥æ¢ä»¶" + +#: lib/RT/Scrip_Overlay.pm:175 +msgid "Scrip Created" +msgstr "手續新增完畢" + +#: html/Edit/Global/Scrip/List:7 html/Edit/Global/Scrip/Top:9 +msgid "Scrip Name" +msgstr "訊æ¯å稱" + +#: html/Admin/Elements/EditScrips:83 +msgid "Scrip deleted" +msgstr "手續刪除完畢" + +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +msgid "Scrips" +msgstr "手續" + +#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:20 +msgid "Scrips " +msgstr "訊æ¯é€šçŸ¥" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "%1 的手續\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æ‰‹çºŒ" + +#: html/Edit/Elements/104Buttons:75 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 html/Work/Elements/Tab:45 html/Work/Search/PickRestriction:102 +msgid "Search" +msgstr "查詢" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "查詢æ¢ä»¶" + +#: html/Approvals/Elements/PendingMyApproval:38 +msgid "Search for approvals" +msgstr "簽核單查詢" + +#: html/Edit/Global/Workflow/Owner.html:31 +msgid "Second-" +msgstr "二" + +#: html/Edit/Users/Info:40 +msgid "Second-level Users" +msgstr "二階主管員工" + +#: bin/rt-crontool:187 +msgid "Security:" +msgstr "安全性:" + +#: lib/RT/Queue_Overlay.pm:66 +msgid "SeeQueue" +msgstr "查閱表單" + +#: html/Edit/Elements/ListButtons:10 +msgid "Select All" +msgstr "å…¨é¸" + +#: html/Admin/Groups/index.html:39 +msgid "Select a group" +msgstr "鏿“‡ç¾¤çµ„" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "鏿“‡è¡¨å–®" + +#: html/Work/Queues/Select.html:8 +msgid "Select a queue to link to" +msgstr "è«‹é¸æ“‡æ¬²é€£çµè¡¨å–®" + +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +msgid "Select a user" +msgstr "鏿“‡ä½¿ç”¨è€…" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +msgid "Select custom field" +msgstr "鏿“‡è‡ªè¨‚欄ä½" + +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +msgid "Select group" +msgstr "鏿“‡ç¾¤çµ„" + +#: lib/RT/CustomField_Overlay.pm:421 +msgid "Select multiple values" +msgstr "鏿“‡å¤šé‡é …ç›®" + +#: lib/RT/CustomField_Overlay.pm:418 +msgid "Select one value" +msgstr "鏿“‡å–®ä¸€é …ç›®" + +#: html/Admin/Elements/QueueTabs:66 +msgid "Select queue" +msgstr "鏿“‡è¡¨å–®" + +#: 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 "鏿“‡æ‰‹çºŒ" + +#: 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 "鏿“‡ç¯„本" + +#: html/Admin/Elements/UserTabs:48 +msgid "Select user" +msgstr "鏿“‡ä½¿ç”¨è€…" + +#: html/Admin/Global/Workflow.html:57 html/Admin/Global/Workflows.html:36 html/Admin/Queues/Workflow.html:54 html/Admin/Queues/Workflows.html:47 +msgid "Select workflow" +msgstr "鏿“‡æµç¨‹" + +#: NOT FOUND IN SOURCE +msgid "SelectExternal" +msgstr "系統é¸é …" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectMultiple" +msgstr "多é‡é¸é …" + +#: lib/RT/CustomField_Overlay.pm:34 +msgid "SelectSingle" +msgstr "單一é¸é …" + +#: html/Edit/Elements/PickUsers:85 html/Edit/Users/Add.html:78 +msgid "Selected users:" +msgstr "新增å°è±¡ï¼š" + +#: NOT FOUND IN SOURCE +msgid "Self Service" +msgstr "自助æœå‹™" + +#: etc/initialdata.zh:131 etc/initialdata:113 +msgid "Send mail to all watchers" +msgstr "寄信給所有視察員" + +#: etc/initialdata.zh:127 etc/initialdata:109 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "以評論方å¼å¯„信給所有視察員" + +#: etc/initialdata.zh:122 etc/initialdata:104 +msgid "Send mail to requestors and Ccs" +msgstr "寄信給申請人åŠå‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:117 etc/initialdata:99 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "以評論方å¼å¯„信給申請人åŠå‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:96 etc/initialdata:78 +msgid "Sends a message to the requestors" +msgstr "寄信給申請人" + +#: etc/initialdata.zh:135 etc/initialdata.zh:139 etc/initialdata:117 etc/initialdata:121 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "寄信給特定的副本åŠå¯†ä»¶å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:112 etc/initialdata:94 +msgid "Sends mail to the administrative Ccs" +msgstr "寄信給管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:108 etc/initialdata:90 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "以評論寄信給管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:100 etc/initialdata.zh:104 etc/initialdata:82 etc/initialdata:86 +msgid "Sends mail to the owner" +msgstr "寄信給申請人" + +#: NOT FOUND IN SOURCE +msgid "Sep" +msgstr "乿œˆ" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "09" + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "乿œˆ" + +#: html/Edit/Users/Info:38 +msgid "Shift Type" +msgstr "ç­åˆ¥å±¬æ€§" + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "é¡¯ç¤ºçµæžœ" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show approved requests" +msgstr "顯示已批准的簽核單" + +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +msgid "Show basics" +msgstr "顯示基本資訊" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show denied requests" +msgstr "顯示已é§å›žçš„簽核單" + +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +msgid "Show details" +msgstr "顯示細節" + +#: html/Approvals/Elements/PendingMyApproval:42 +msgid "Show pending requests" +msgstr "顯示待處ç†çš„簽核單" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show requests awaiting other approvals" +msgstr "顯示尚待他人批准的簽核單" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "Show ticket private commentary" +msgstr "顯示申請單內的ç§äººè©•è«–" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Show ticket summaries" +msgstr "顯示申請單摘è¦" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "ShowACL" +msgstr "é¡¯ç¤ºæ¬Šé™æ¸…å–®" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "ShowScrips" +msgstr "顯示手續" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "ShowTemplate" +msgstr "顯示範本" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowTicket" +msgstr "顯示申請單" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "ShowTicketComments" +msgstr "顯示申請單的評論" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "登記æˆç‚ºç”³è«‹äººæˆ–副本收件人" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "登記æˆç‚ºç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" + +#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/User/Prefs.html:111 html/Work/Preferences/Info:111 +msgid "Signature" +msgstr "ç°½åæª”" + +#: NOT FOUND IN SOURCE +msgid "Signed in as %1" +msgstr "使用者:%1" + +#: html/Admin/Elements/SelectSingleOrMultiple:25 +msgid "Single" +msgstr "單一" + +#: html/Edit/Elements/104Top:21 html/Elements/Header:50 +msgid "Skip Menu" +msgstr "ç•¥éŽé¸å–®" + +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "é †åº" + +#: NOT FOUND IN SOURCE +msgid "Sort key" +msgstr "æŽ’åºæ–¹å¼" + +#: html/Search/Elements/PickRestriction:108 html/Work/Search/PickRestriction:89 +msgid "Sort results by" +msgstr "çµæžœæŽ’åºæ–¹å¼" + +#: NOT FOUND IN SOURCE +msgid "SortOrder" +msgstr "排åºé †åº" + +#: html/Work/Elements/List:8 html/Work/Elements/MyApprovals:11 +msgid "Stage" +msgstr "é—œå¡" + +#: html/Edit/Global/Workflow/Top:8 +msgid "Stage Action" +msgstr "é—œå¡é‹è¡Œå‹•作" + +#: html/Edit/Global/Workflow/Top:5 +msgid "Stage Condition" +msgstr "é—œå¡é‹è¡Œæ¢ä»¶" + +#: html/Work/Elements/Quicksearch:17 +msgid "Stalled" +msgstr "延宕" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "首é " + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:34 +msgid "Started" +msgstr "實際起始日" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "無法解讀起始日期 '%1" + +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:30 +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/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:93 html/Work/Preferences/Info:83 +msgid "State" +msgstr "å·ž" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:15 html/Work/Elements/MyRequests:18 html/Work/Elements/MyTickets:18 html/Work/Search/PickRestriction:54 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1182 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "ç¾æ³" + +#: etc/initialdata.zh:317 etc/initialdata:294 +msgid "Status Change" +msgstr "ç¾æ³æ”¹è®Šæ™‚" + +#: lib/RT/Transaction_Overlay.pm:528 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "ç¾æ³å¾ž %1 改為 %2" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "ç¾æ³æ”¹è®Šæ™‚" + +#: html/Ticket/Elements/Tabs:146 +msgid "Steal" +msgstr "å¼·åˆ¶æ›´æ›æ‰¿è¾¦äºº" + +#: lib/RT/Queue_Overlay.pm:91 +msgid "Steal tickets" +msgstr "強制承辦申請單" + +#: lib/RT/Queue_Overlay.pm:91 +msgid "StealTicket" +msgstr "強制承辦申請單" + +#: lib/RT/Transaction_Overlay.pm:587 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "被 %1 å¼·åˆ¶æ›´æ› " + +#: html/Edit/Groups/Member:69 +msgid "Subgroup" +msgstr "å­ç¾¤çµ„" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:16 html/Work/Elements/MyTickets:16 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Create.html:131 html/Work/Tickets/Elements/ShowBasics:36 lib/RT/Ticket_Overlay.pm:1178 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "主題" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "標題已改為 %1" + +#: html/Elements/Submit:58 html/Work/Search/Bulk.html:103 +msgid "Submit" +msgstr "é€å‡º" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "é€å‡ºæµç¨‹" + +#: lib/RT/Group_Overlay.pm:748 +msgid "Succeeded" +msgstr "設定æˆåŠŸ" + +#: NOT FOUND IN SOURCE +msgid "Sun" +msgstr "星期日" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "星期日" + +#: html/Edit/Users/System:17 lib/RT/System.pm:53 +msgid "SuperUser" +msgstr "系統管ç†å“¡" + +#: html/User/Elements/DelegateRights:76 +msgid "System" +msgstr "系統" + +#: html/Edit/Global/Scrip/Top:18 html/Edit/Global/Scrip/Top:44 +msgid "System Defined" +msgstr "系統定義" + +#: html/Admin/Elements/SelectRights:80 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:793 lib/RT/Interface/Web.pm:826 x:796 x:829 +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 "系統錯誤。設定權é™å¤±æ•—。" + +#: html/Edit/Users/index.html:122 +msgid "System Rights" +msgstr "系統權é™" + +#: lib/RT/ACE_Overlay.pm:615 +msgid "System error. Right not delegated." +msgstr "系統錯誤。權é™ä»£ç†å¤±æ•—。" + +#: 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 "系統錯誤。設定權é™å¤±æ•—。" + +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "系統錯誤。無法設定權é™ã€‚" + +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +msgid "System groups" +msgstr "系統群組" + +#: NOT FOUND IN SOURCE +msgid "SystemInternal" +msgstr "系統內部用" + +#: etc/initialdata.zh:59 etc/initialdata.zh:65 etc/initialdata.zh:71 etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "內部使用的系統角色群組" + +#: lib/RT/CurrentUser.pm:319 +msgid "TEST_STRING" +msgstr "TEST_STRING" + +#: NOT FOUND IN SOURCE +msgid "TabbedUI" +msgstr "é ç±¤ä»‹é¢" + +#: html/Ticket/Elements/Tabs:142 +msgid "Take" +msgstr "å—ç†" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "Take tickets" +msgstr "自行承辦申請單" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "TakeTicket" +msgstr "自行承辦申請單" + +#: lib/RT/Transaction_Overlay.pm:573 +msgid "Taken" +msgstr "å·²å—ç†" + +#: html/Admin/Elements/EditScrip:80 +msgid "Template" +msgstr "範本" + +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "範本 #%1" + +#: html/Edit/Global/Template/List:9 html/Edit/Global/Template/Top:17 +msgid "Template Content" +msgstr "通知範本內容" + +#: html/Edit/Global/Template/List:8 html/Edit/Global/Template/Top:13 +msgid "Template Description" +msgstr "通知範本æè¿°" + +#: html/Edit/Global/Template/List:7 html/Edit/Global/Template/Top:9 +msgid "Template Name" +msgstr "通知範本å稱" + +#: html/Admin/Elements/EditTemplates:88 +msgid "Template deleted" +msgstr "範本已刪除" + +#: lib/RT/Scrip_Overlay.pm:152 +msgid "Template not found" +msgstr "找ä¸åˆ°ç¯„本" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "找ä¸åˆ°ç¯„本\\n" + +#: lib/RT/Template_Overlay.pm:352 +msgid "Template parsed" +msgstr "範本剖æžå®Œç•¢" + +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +msgid "Templates" +msgstr "範本" + +#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:19 +msgid "Templates " +msgstr "通知範本" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "找ä¸åˆ° %1 的範本\\n" + +#: lib/RT/Interface/Web.pm:894 x:897 +msgid "That is already the current value" +msgstr "å·²ç¶“æ˜¯ç›®å‰æ¬„ä½çš„值" + +#: lib/RT/CustomField_Overlay.pm:242 +msgid "That is not a value for this custom field" +msgstr "這䏿˜¯è©²è‡ªè¨‚欄ä½çš„值" + +#: lib/RT/Ticket_Overlay.pm:1899 +msgid "That is the same value" +msgstr "åŒæ¨£çš„值" + +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "這項單ä½å·²ç¶“æ“æœ‰è©²æ¬Šé™" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "這項單ä½å·²ç¶“是這個表單的 %1" + +#: lib/RT/Ticket_Overlay.pm:1433 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "這項單ä½å·²ç¶“是這份申請單的 %1" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "這項單ä½ä¸æ˜¯é€™å€‹è¡¨å–®çš„ %1" + +#: lib/RT/Ticket_Overlay.pm:1550 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "這項單ä½ä¸æ˜¯é€™ä»½ç”³è«‹å–®çš„ %1" + +#: lib/RT/Ticket_Overlay.pm:1895 +msgid "That queue does not exist" +msgstr "此表單ä¸å­˜åœ¨" + +#: lib/RT/Ticket_Overlay.pm:3237 +msgid "That ticket has unresolved dependencies" +msgstr "這份申請單有尚未解決的附屬申請單" + +#: NOT FOUND IN SOURCE +msgid "That user already has that right" +msgstr "使用者已具有該項權é™" + +#: lib/RT/Ticket_Overlay.pm:3047 +msgid "That user already owns that ticket" +msgstr "該使用者已經承辦這份申請單" + +#: lib/RT/Ticket_Overlay.pm:3019 +msgid "That user does not exist" +msgstr "使用者ä¸å­˜åœ¨" + +#: lib/RT/User_Overlay.pm:376 +msgid "That user is already privileged" +msgstr "這å使用者已經是內部æˆå“¡" + +#: lib/RT/User_Overlay.pm:397 +msgid "That user is already unprivileged" +msgstr "這å使用者屬於éžå…§éƒ¨æˆå“¡ç¾¤çµ„" + +#: lib/RT/User_Overlay.pm:389 +msgid "That user is now privileged" +msgstr "使用者加入內部æˆå“¡ç¾¤çµ„完畢" + +#: lib/RT/User_Overlay.pm:410 +msgid "That user is now unprivileged" +msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" + +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" + +#: lib/RT/Ticket_Overlay.pm:3040 +msgid "That user may not own tickets in that queue" +msgstr "使用者å¯èƒ½æ²’有承辦表單裡的申請單" + +#: lib/RT/Link_Overlay.pm:205 +msgid "That's not a numerical id" +msgstr "這䏿˜¯ä¸€å€‹æ•¸å­—編號" + +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +msgid "The Basics" +msgstr "基本資訊" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The CC of a ticket" +msgstr "申請單的副本收件人" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The administrative CC of a ticket" +msgstr "申請單的管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" + +#: lib/RT/Ticket_Overlay.pm:2226 +msgid "The comment has been recorded" +msgstr "評論已被紀錄" + +#: bin/rt-crontool:197 +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:" + +#: bin/rt-commit-handler:755 bin/rt-commit-handler:765 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "以下命令未被執行:\\n\\n" + +#: lib/RT/Interface/Web.pm:897 x:900 +msgid "The new value has been set." +msgstr "新的欄ä½å€¼è¨­å®šå®Œæˆã€‚" + +#: lib/RT/ACE_Overlay.pm:85 +msgid "The owner of a ticket" +msgstr "申請單的承辦人" + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The requestor of a ticket" +msgstr "申請單的申請人" + +#: html/Admin/Elements/EditUserComments:25 +msgid "These comments aren't generally visible to the user" +msgstr "è©²ä½¿ç”¨è€…ä¸æœƒçœ‹è¦‹é€™äº›è©•è«–" + +#: html/Edit/Global/Workflow/Owner.html:32 +msgid "Third-" +msgstr "三" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "申請單 %1 %2 (%3)\\n" + +#: bin/rt-crontool:188 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "æ­¤å·¥å…·ç¨‹å¼æœƒè®“使用者經由 RT 執行任æ„命令。" + +#: lib/RT/Transaction_Overlay.pm:251 +msgid "This transaction appears to have no content" +msgstr "此項更動報告沒有內容" + +#: html/Ticket/Elements/ShowRequestor:46 +#. ($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:391 +msgid "Thu." +msgstr "星期四" + +#: html/Admin/Elements/ModifyTemplateAsWorkflow:163 +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:24 html/Ticket/ModifyAll.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "更新申請單 #%1 的全部資訊:%2" + +#: html/Approvals/Elements/ShowDependency:45 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "申請單 #%1: %2" + +#: lib/RT/Ticket_Overlay.pm:605 lib/RT/Ticket_Overlay.pm:626 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "申請單 #%1 æˆåŠŸæ–°å¢žæ–¼ '%2' 表單" + +#: bin/rt-commit-handler:759 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "載入申請單 %1\\n" + +#: html/Search/Bulk.html:212 html/Work/Search/Bulk.html:169 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "申請單 %1:%2" + +#: html/Edit/Queues/Basic/Top:28 html/Edit/Queues/List:16 html/Work/Queues/List:9 +msgid "Ticket Due" +msgstr "è¡¨å–®è™•ç†æœŸé™" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "申請單處ç†ç´€éŒ„ # %1 %2" + +#: html/Work/Elements/List:6 +msgid "Ticket ID" +msgstr "單號" + +#: NOT FOUND IN SOURCE +msgid "Ticket Id" +msgstr "申請單編號" + +#: NOT FOUND IN SOURCE +msgid "Ticket Processing Due" +msgstr "表單é‹è¡ŒæœŸé™" + +#: etc/initialdata.zh:332 etc/initialdata:309 +msgid "Ticket Resolved" +msgstr "申請單已解決" + +#: html/Edit/Queues/Basic/Top:18 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:7 html/Edit/Queues/index.html:31 html/Work/Delegates/List:7 html/Work/Delegates/index.html:11 html/Work/Elements/List:12 html/Work/Elements/SelectSearch:9 html/Work/Queues/List:6 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:11 html/Work/Tickets/Create.html:44 html/Work/Tickets/Elements/ShowBasics:34 +msgid "Ticket Type" +msgstr "表單種類" + +#: html/Search/Elements/PickRestriction:62 html/Work/Search/PickRestriction:43 +msgid "Ticket attachment" +msgstr "申請單附件" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "申請單內容" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "申請單內容類別" + +#: lib/RT/Ticket_Overlay.pm:496 lib/RT/Ticket_Overlay.pm:505 lib/RT/Ticket_Overlay.pm:515 lib/RT/Ticket_Overlay.pm:615 +msgid "Ticket could not be created due to an internal error" +msgstr "內部錯誤,無法新增申請單" + +#: lib/RT/Transaction_Overlay.pm:520 +msgid "Ticket created" +msgstr "申請單新增完畢" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "申請單新增失敗" + +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Ticket deleted" +msgstr "申請單刪除完畢" + +#: NOT FOUND IN SOURCE +msgid "Ticket id not found" +msgstr "找ä¸åˆ°ç”³è«‹å–®ç·¨è™Ÿ" + +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "申請單刪除完畢" + +#: NOT FOUND IN SOURCE +msgid "Ticket not found" +msgstr "找ä¸åˆ°ç”³è«‹å–®" + +#: etc/initialdata.zh:318 etc/initialdata:295 +msgid "Ticket status changed" +msgstr "ç”³è«‹å–®ç¾æ³å·²æ”¹è®Š" + +#: html/Ticket/Update.html:38 +msgid "Ticket watchers" +msgstr "申請單視察員" + +#: html/Elements/Tabs:46 +msgid "Tickets" +msgstr "申請單" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "申請單 %1 %2" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +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/Elements/ViewUser:25 +#. ($name) +msgid "Tickets from %1" +msgstr "%1 的申請單" + +#: html/Approvals/Elements/ShowDependency:26 +msgid "Tickets which depend on this approval:" +msgstr "æ‰¹å‡†ä¹‹å¾Œï¼Œå¯æŽ¥çºŒè™•ç†ï¼š" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +msgid "Time Left" +msgstr "剩餘時間" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 +msgid "Time Worked" +msgstr "è™•ç†æ™‚é–“" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "剩餘時間" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "顯示時間" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "å·²è™•ç†æ™‚é–“" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "剩餘時間" + +#: lib/RT/Ticket_Overlay.pm:1183 +msgid "TimeWorked" +msgstr "å·²è™•ç†æ™‚é–“" + +#: bin/rt-commit-handler:401 +msgid "To generate a diff of this commit:" +msgstr "產生這次更動的差異檔:" + +#: bin/rt-commit-handler:390 +msgid "To generate a diff of this commit:\\n" +msgstr "產生這次更動的差異檔:\\n" + +#: lib/RT/Ticket_Overlay.pm:1186 +msgid "Told" +msgstr "告知日期" + +#: html/Edit/Elements/Page:46 +msgid "Total" +msgstr "é " + +#: etc/initialdata.zh:239 etc/initialdata:237 +msgid "Transaction" +msgstr "æ›´å‹•" + +#: lib/RT/Transaction_Overlay.pm:640 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "清除更動報告 %1" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "更動報告已新增" + +#: lib/RT/Transaction_Overlay.pm:88 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "未指定申請單編號,無法新增更動" + +#: lib/RT/Transaction_Overlay.pm:699 +msgid "Transactions are immutable" +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:389 +msgid "Tue." +msgstr "星期二" + +#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1184 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "類別" + +#: lib/RT/ScripCondition_Overlay.pm:103 +msgid "Unimplemented" +msgstr "尚無實作" + +#: html/Admin/Users/Modify.html:67 +msgid "Unix login" +msgstr "外部系統登入帳號" + +#: html/Admin/Elements/ModifyUser:61 +msgid "UnixUsername" +msgstr "外部系統登入帳號" + +#: lib/RT/Attachment_Overlay.pm:266 lib/RT/Attachment_Overlay.pm:298 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "ä¸å¯è§£çš„å…§å®¹æ–‡å­—ç·¨ç¢¼æ–¹å¼ %1" + +#: html/Elements/SelectResultsPerPage:36 +msgid "Unlimited" +msgstr "全數顯示" + +#: etc/initialdata.zh:50 etc/initialdata:32 +msgid "Unprivileged" +msgstr "éžå…§éƒ¨æˆå“¡" + +#: lib/RT/Transaction_Overlay.pm:569 +msgid "Untaken" +msgstr "未被å—ç†" + +#: html/Edit/Elements/Page:13 html/Edit/Elements/Page:15 +msgid "Up" +msgstr "上一é " + +#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:82 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:97 +msgid "Update" +msgstr "處ç†" + +#: html/Admin/Users/Prefs.html:61 +msgid "Update ID" +msgstr "更新編號" + +#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:65 html/Work/Search/Bulk.html:81 html/Work/Tickets/Update.html:32 +msgid "Update Type" +msgstr "更新類別" + +#: html/Search/Listing.html:60 html/Work/Search/index.html:32 +msgid "Update all these tickets at once" +msgstr "整批更新申請單" + +#: html/Admin/Users/Prefs.html:48 +msgid "Update email" +msgstr "æ›´æ–°é›»å­éƒµä»¶ä¿¡ç®±" + +#: html/Admin/Users/Prefs.html:54 +msgid "Update name" +msgstr "更新帳號" + +#: lib/RT/Interface/Web.pm:409 x:412 +msgid "Update not recorded." +msgstr "更新未被記錄" + +#: html/Search/Bulk.html:80 html/Work/Search/Bulk.html:52 +msgid "Update selected tickets" +msgstr "æ›´æ–°é¸æ“‡çš„申請單" + +#: html/Admin/Users/Prefs.html:35 +msgid "Update signature" +msgstr "更新簽章" + +#: html/Ticket/ModifyAll.html:62 +msgid "Update ticket" +msgstr "更新申請單" + +#: NOT FOUND IN SOURCE +msgid "Update ticket # %1" +msgstr "更新申請單 # %1" + +#: html/SelfService/Update.html:24 html/SelfService/Update.html:46 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "更新申請單 #%1" + +#: html/Ticket/Update.html:138 html/Work/Tickets/Update.html:122 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "更新申請單 #%1 (%2)" + +#: lib/RT/Interface/Web.pm:407 x:410 +msgid "Update type was neither correspondence nor comment." +msgstr "更新的內容並éžç”³è«‹å–®å›žè¦†ä¹Ÿä¸æ˜¯è©•è«–" + +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:50 lib/RT/Ticket_Overlay.pm:1187 +msgid "Updated" +msgstr "剿¬¡æ›´æ–°" + +#: html/Work/Preferences/index.html:15 +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" + +#: 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.zh:142 etc/initialdata.zh:209 etc/initialdata:124 etc/initialdata:191 +msgid "User Defined" +msgstr "使用者自訂" + +#: html/Admin/Users/Prefs.html:58 html/Edit/Users/List:13 html/Edit/Users/Top:42 +msgid "User ID" +msgstr "使用者 ID" + +#: html/Elements/SelectUsers:25 +msgid "User Id" +msgstr "使用者 ID" + +#: html/Edit/Elements/PickUsers:12 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/List:5 html/Edit/Users/Search.html:23 html/Edit/Users/Top:8 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 +msgid "User Number" +msgstr "員工編號" + +#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:22 +msgid "User Rights" +msgstr "使用者權é™" + +#: html/Edit/Elements/Tab:34 +msgid "User Setup" +msgstr "使用者設定" + +#: html/Edit/Users/Info:37 +msgid "User Shift" +msgstr "å“¡å·¥ç­åˆ¥" + +#: html/Admin/Users/Modify.html:225 +#. ($msg) +msgid "User could not be created: %1" +msgstr "無法新增使用者:%1" + +#: lib/RT/User_Overlay.pm:321 +msgid "User created" +msgstr "使用者新增完畢" + +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "使用者定義的群組" + +#: lib/RT/User_Overlay.pm:575 lib/RT/User_Overlay.pm:592 +msgid "User loaded" +msgstr "已載入使用者" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "已通知使用者" + +#: html/Admin/Users/Prefs.html:24 html/Admin/Users/Prefs.html:28 +msgid "User view" +msgstr "使用者ç§äººè³‡æ–™" + +#: NOT FOUND IN SOURCE +msgid "UserDefined" +msgstr "使用者自定" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +msgid "Username" +msgstr "帳號" + +#: 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 html/Work/Tickets/Elements/ShowTransaction:8 +msgid "Users" +msgstr "使用者" + +#: html/Admin/Users/index.html:64 +msgid "Users matching search criteria" +msgstr "ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„使用者" + +#: html/Search/Elements/PickRestriction:50 html/Work/Search/PickRestriction:31 +msgid "ValueOfQueue" +msgstr "鏿“‡è¡¨å–®" + +#: html/Admin/Elements/EditCustomField:56 +msgid "Values" +msgstr "欄ä½å€¼" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Watch" +msgstr "視察" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "WatchAsAdminCc" +msgstr "以管ç†å“¡å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è¦–察" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "æˆåŠŸè¼‰å…¥è¦–å¯Ÿå“¡è³‡è¨Š" + +#: html/Admin/Elements/QueueTabs:41 +msgid "Watchers" +msgstr "視察員" + +#: html/Admin/Elements/ModifyUser:55 +msgid "WebEncoding" +msgstr "ç¶²é æ–‡å­—編碼方å¼" + +#: NOT FOUND IN SOURCE +msgid "Wed" +msgstr "星期三" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "星期三" + +#: etc/initialdata.zh:533 etc/initialdata:503 etc/upgrade/2.1.71:161 html/Edit/Elements/CreateApprovalsQueue:135 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "ç•¶ç”³è«‹å–®é€šéŽæ‰€æœ‰ç°½æ ¸å¾Œï¼Œå°‡æ­¤è¨Šæ¯å›žè¦†åˆ°åŽŸç”³è«‹å–®" + +#: etc/initialdata.zh:497 etc/initialdata:467 etc/upgrade/2.1.71:135 html/Edit/Elements/CreateApprovalsQueue:107 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "ç•¶ç”³è«‹å–®é€šéŽæŸé …簽核後,將此訊æ¯å›žè¦†åˆ°åŽŸç”³è«‹å–®" + +#: etc/initialdata.zh:156 etc/initialdata:138 +msgid "When a ticket is created" +msgstr "新增申請單時" + +#: etc/initialdata.zh:428 etc/initialdata:400 etc/upgrade/2.1.71:79 html/Edit/Elements/CreateApprovalsQueue:51 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "簽核單新增之後,通知應å—ç†çš„æ‰¿è¾¦äººåŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" + +#: etc/initialdata.zh:161 etc/initialdata:143 +msgid "When anything happens" +msgstr "當任何事情發生時" + +#: etc/initialdata.zh:202 etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "當申請單解決時" + +#: etc/initialdata.zh:188 etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "ç•¶ç”³è«‹å–®æ›´æ›æ‰¿è¾¦äººæ™‚" + +#: etc/initialdata.zh:196 etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "當申請單更æ›è¡¨å–®æ™‚" + +#: etc/initialdata.zh:180 etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "ç•¶ç”³è«‹å–®æ›´æ–°ç¾æ³æ™‚" + +#: etc/initialdata.zh:210 etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "當使用者自訂的情æ³ç™¼ç”Ÿæ™‚" + +#: etc/initialdata.zh:174 etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "ç•¶è©•è«–é€é”時" + +#: etc/initialdata.zh:167 etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "當回覆é€é”時" + +#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:51 html/Work/Preferences/Info:34 +msgid "Work" +msgstr "å…¬å¸" + +#: html/Admin/Elements/ModifyUser:69 +msgid "WorkPhone" +msgstr "å…¬å¸é›»è©±" + +#: html/Ticket/Elements/ShowBasics:34 html/Ticket/Update.html:64 +msgid "Worked" +msgstr "è™•ç†æ™‚é–“" + +#: html/Admin/Global/Workflow.html:91 html/Admin/Queues/Workflow.html:89 +#. ($WorkflowObj->Id()) +msgid "Workflow #%1" +msgstr "æµç¨‹ #%1" + +#: html/Edit/Global/Workflow/List:15 +msgid "Workflow Begin" +msgstr "æµç¨‹é–‹å§‹" + +#: html/Edit/Global/Workflow/List:20 +msgid "Workflow End" +msgstr "æµç¨‹çµæŸ" + +#: html/Admin/Elements/EditWorkflows:90 +msgid "Workflow deleted" +msgstr "æµç¨‹å·²åˆªé™¤" + +#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:21 +msgid "Workflows" +msgstr "æµç¨‹" + +#: html/Edit/Global/Basic/Top:25 +msgid "Yes" +msgstr "是" + +#: lib/RT/Ticket_Overlay.pm:3150 +msgid "You already own this ticket" +msgstr "您已是這份申請單的承辦人" + +#: html/autohandler:122 +msgid "You are not an authorized user" +msgstr "æ‚¨ä¸æ˜¯è¢«æŽˆæ¬Šçš„使用者" + +#: lib/RT/Ticket_Overlay.pm:3032 +msgid "You can only reassign tickets that you own or 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 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "您會在表單 %2 找到 %1 的申請單" + +#: html/NoAuth/Logout.html:30 +msgid "You have been logged out of RT." +msgstr "您已登出 RT。" + +#: html/SelfService/Display.html:77 +msgid "You have no permission to create tickets in that queue." +msgstr "您沒有在該表單新增申請單的權é™ã€‚" + +#: lib/RT/Ticket_Overlay.pm:1908 +msgid "You may not create requests in that queue." +msgstr "您ä¸èƒ½åœ¨è©²è¡¨å–®ä¸­æå‡ºç”³è«‹ã€‚" + +#: html/Edit/Global/Basic/Top:38 +msgid "You need to restart the Request Tracker service for saved changes to take effect." +msgstr "æ‚¨å¿…é ˆé‡æ–°å•Ÿå‹• Request Tracker æœå‹™ï¼Œå„²å­˜çš„æ›´å‹•纔會生效。" + +#: html/NoAuth/Logout.html:34 +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.zh:514 etc/initialdata:484 etc/upgrade/2.1.71:146 html/Edit/Elements/CreateApprovalsQueue:119 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "申請單已由 %1 批准。å¯èƒ½é‚„有其他待簽核的步驟。" + +#: etc/initialdata.zh:552 etc/initialdata:522 etc/upgrade/2.1.71:180 html/Edit/Elements/CreateApprovalsQueue:154 +msgid "Your request has been approved." +msgstr "您的申請單已完æˆç°½æ ¸ç¨‹åºã€‚" + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "您的申請單已被é§å›ž" + +#: etc/initialdata.zh:455 +msgid "Your request was rejected by %1." +msgstr "您的申請單已被 %1 é§å›žã€‚" + +#: etc/initialdata:427 etc/upgrade/2.1.71:101 html/Edit/Elements/CreateApprovalsQueue:73 +msgid "Your request was rejected." +msgstr "您的申請單已被é§å›žã€‚" + +#: html/autohandler:144 +msgid "Your username or password is incorrect" +msgstr "您的帳號或密碼有誤" + +#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:95 html/Work/Preferences/Info:85 +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 "急訊" + +#: html/User/Elements/DelegateRights:58 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "權é™åŒ %1" + +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "已解決" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +msgid "contains" +msgstr "包å«" + +#: html/Elements/SelectAttachmentField:25 +msgid "content" +msgstr "內容" + +#: html/Elements/SelectAttachmentField:26 +msgid "content-type" +msgstr "類型" + +#: lib/RT/Ticket_Overlay.pm:2295 +msgid "correspondence (probably) not sent" +msgstr "申請單回覆(å¯èƒ½)未é€å‡º" + +#: lib/RT/Ticket_Overlay.pm:2305 +msgid "correspondence sent" +msgstr "申請單回覆已é€å‡º" + +#: NOT FOUND IN SOURCE +msgid "critical" +msgstr "åš´é‡" + +#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:31 html/Edit/Queues/List:18 html/Work/Queues/List:11 lib/RT/Date.pm:319 +msgid "days" +msgstr "天" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "拒絕處ç†" + +#: NOT FOUND IN SOURCE +msgid "debug" +msgstr "åµéŒ¯" + +#: html/Search/Listing.html:74 +msgid "delete" +msgstr "刪除" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "deleted" +msgstr "已刪除" + +#: html/Search/Elements/PickRestriction:67 html/Work/Search/PickRestriction:47 +msgid "does not match" +msgstr "ä¸ç¬¦åˆ" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +msgid "doesn't contain" +msgstr "ä¸åŒ…å«" + +#: NOT FOUND IN SOURCE +msgid "emergency" +msgstr "å±é›£" + +#: html/Elements/SelectEqualityOperator:37 +msgid "equal to" +msgstr "等於" + +#: NOT FOUND IN SOURCE +msgid "error" +msgstr "錯誤" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "å‡" + +#: html/Elements/SelectAttachmentField:27 +msgid "filename" +msgstr "檔å" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +msgid "greater than" +msgstr "大於" + +#: lib/RT/Group_Overlay.pm:193 +#. ($self->Name) +msgid "group '%1'" +msgstr "群組 '%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "å°æ™‚" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "編號" + +#: NOT FOUND IN SOURCE +msgid "info" +msgstr "資訊" + +#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:69 +msgid "is" +msgstr "是" + +#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:70 +msgid "isn't" +msgstr "䏿˜¯" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +msgid "less than" +msgstr "å°æ–¼" + +#: html/Edit/Global/Workflow/Owner.html:35 +msgid "level Admins" +msgstr "層主管" + +#: html/Search/Elements/PickRestriction:66 html/Work/Search/PickRestriction:46 +msgid "matches" +msgstr "符åˆ" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "分" + +#: html/Ticket/Update.html:64 +msgid "minutes" +msgstr "分é˜" + +#: bin/rt-commit-handler:764 +msgid "modifications\\n\\n" +msgstr "更改\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "月" + +#: lib/RT/Queue_Overlay.pm:57 +msgid "new" +msgstr "新建立" + +#: html/Admin/Elements/EditScrips:42 +msgid "no value" +msgstr "沒有值" + +#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/Basic/Top:50 html/Edit/Queues/List:18 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:11 html/Work/Tickets/Elements/ShowBasics:27 +msgid "none" +msgstr "ç„¡" + +#: html/Elements/SelectEqualityOperator:37 +msgid "not equal to" +msgstr "ä¸ç­‰æ–¼" + +#: NOT FOUND IN SOURCE +msgid "notice" +msgstr "æç¤º" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "ä¸ç¬¦åˆ" + +#: html/Edit/Elements/PickUsers:17 html/Edit/Users/Add.html:18 html/Edit/Users/Search.html:28 html/Work/Tickets/Cc:15 +msgid "number" +msgstr "號" + +#: html/SelfService/Elements/MyRequests:60 lib/RT/Queue_Overlay.pm:58 +msgid "open" +msgstr "開啟" + +#: NOT FOUND IN SOURCE +msgid "opened" +msgstr "已開啟" + +#: lib/RT/Group_Overlay.pm:198 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "使用者「%2ã€çš„「%1ã€ä»£ç†äººç¾¤çµ„" + +#: lib/RT/Group_Overlay.pm:206 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "表單 %1 %2" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "rejected" +msgstr "å·²é§å›ž" + +#: html/Work/Elements/SelectSearch:21 lib/RT/Queue_Overlay.pm:60 +msgid "resolved" +msgstr "已處ç†" + +#: html/Edit/Global/Basic/Top:48 +msgid "rtname" +msgstr "伺æœå™¨å稱" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "ç§’" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "stalled" +msgstr "延宕" + +#: lib/RT/Group_Overlay.pm:201 +#. ($self->Type) +msgid "system %1" +msgstr "系統 %1" + +#: lib/RT/Group_Overlay.pm:212 +#. ($self->Type) +msgid "system group '%1'" +msgstr "系統群組 '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:41 +msgid "the calling component did not specify why" +msgstr "呼å«å…ƒä»¶æœªæŒ‡æ˜ŽåŽŸå› " + +#: lib/RT/Group_Overlay.pm:209 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "申請單 #%1 %2" + +#: html/Work/Elements/SelectSearch:27 +msgid "till" +msgstr "至" + +#: html/Edit/Elements/PickUsers:15 html/Edit/Global/Workflow/Condition:30 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 +msgid "to" +msgstr "到" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "真" + +#: lib/RT/Group_Overlay.pm:215 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "沒有æè¿°çš„群組 %1" + +#: html/Work/Elements/SelectSearch:19 +msgid "unresolved" +msgstr "未處ç†" + +#: lib/RT/Group_Overlay.pm:190 +#. ($user->Object->Name) +msgid "user %1" +msgstr "使用者 %1" + +#: NOT FOUND IN SOURCE +msgid "warning" +msgstr "警告" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "週" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "範本:%1" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "å¹´" + +#: lib/RT/Date.pm:331 +msgid "approving" +msgstr "待簽核" + diff --git a/rt/lib/RT/Interface/CLI.pm b/rt/lib/RT/Interface/CLI.pm index a3bf92d5f..a3c840af5 100644 --- a/rt/lib/RT/Interface/CLI.pm +++ b/rt/lib/RT/Interface/CLI.pm @@ -1,9 +1,31 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Interface/CLI.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ -# RT is (c) 1996-2001 Jesse Vincent <jesse@fsck.com> +# 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. +# +# 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; package RT::Interface::CLI; -use strict; BEGIN { @@ -11,14 +33,14 @@ BEGIN { use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); # set the version for version checking - $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker + $VERSION = do { my @r = (q$Revision: 1.1.1.1 $ =~ /\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 &LoadConfig &DBConnect - &GetCurrentUser &GetMessageContent &debug); + @EXPORT_OK = qw(&CleanEnv + &GetCurrentUser &GetMessageContent &debug &loc); } =head1 NAME @@ -27,25 +49,28 @@ BEGIN { =head1 SYNOPSIS - use lib "!!RT_LIB_PATH!!"; - use lib "!!RT_ETC_PATH!!"; + use lib "/path/to/rt/libraries/"; - use RT::Interface::CLI qw(CleanEnv LoadConfig DBConnect - GetCurrentUser GetMessageContent); + use RT::Interface::CLI qw(CleanEnv + GetCurrentUser GetMessageContent loc); #Clean out all the nasties from the environment CleanEnv(); - #Load etc/config.pm and drop privs - LoadConfig(); + #let's talk to RT' + use RT; - #Connect to the database and get RT::SystemUser and RT::Nobody loaded - DBConnect(); + #Load RT's config file + RT::LoadConfig(); + # Connect to the database. set up loggign + RT::Init(); #Get the current user all loaded my $CurrentUser = GetCurrentUser(); + print loc('Hello!'); # Synonym of $CuurentUser->loc('Hello!'); + =head1 DESCRIPTION @@ -53,7 +78,6 @@ BEGIN { =begin testing -ok(require RT::TestHarness); ok(require RT::Interface::CLI); =end testing @@ -77,35 +101,10 @@ sub CleanEnv { -=head2 LoadConfig - -Loads RT's config file and then drops setgid privileges. - -=cut - -sub LoadConfig { - - #This drags in RT's config.pm - use config; - -} - - - -=head2 DBConnect - - Calls RT::Init, which creates a database connection and then creates $RT::Nobody - and $RT::SystemUser - -=cut - - -sub DBConnect { - use RT; - RT::Init(); -} +{ + my $CurrentUser; # shared betwen GetCurrentUser and loc # {{{ sub GetCurrentUser @@ -115,15 +114,14 @@ sub DBConnect { loaded with that user. if the current user isn't found, returns a copy of RT::Nobody. =cut + sub GetCurrentUser { - my ($Gecos, $CurrentUser); - require RT::CurrentUser; #Instantiate a user object - $Gecos=(getpwuid($<))[0]; + my $Gecos= ($^O eq 'MSWin32') ? Win32::LoginName() : (getpwuid($<))[0]; #If the current user is 0, then RT will assume that the User object #is that of the currentuser. @@ -134,10 +132,29 @@ sub GetCurrentUser { unless ($CurrentUser->Id) { $RT::Logger->debug("No user with a unix login of '$Gecos' was found. "); } + return($CurrentUser); } # }}} + +# {{{ sub loc + +=head2 loc + + Synonym of $CurrentUser->loc(). + +=cut + +sub loc { + die "No current user yet" unless $CurrentUser ||= RT::CurrentUser->new; + return $CurrentUser->loc(@_); +} +# }}} + +} + + # {{{ sub GetMessageContent =head2 GetMessageContent @@ -221,4 +238,9 @@ sub debug { # }}} +eval "require RT::Interface::CLI_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/CLI_Vendor.pm}); +eval "require RT::Interface::CLI_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/CLI_Local.pm}); + 1; diff --git a/rt/lib/RT/Interface/Email.pm b/rt/lib/RT/Interface/Email.pm index e95436091..bc1a55da2 100755 --- a/rt/lib/RT/Interface/Email.pm +++ b/rt/lib/RT/Interface/Email.pm @@ -1,41 +1,58 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Interface/Email.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ -# RT is (c) 1996-2001 Jesse Vincent <jesse@fsck.com> - +# 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. +# +# 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 Mail::Address; use MIME::Entity; +use RT::EmailParser; + BEGIN { 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 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker + $VERSION = do { my @r = (q$Revision: 1.1.1.1 $ =~ /\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 - &LoadConfig - &DBConnect - &GetCurrentUser + @EXPORT_OK = qw( + &CreateUser &GetMessageContent &CheckForLoops &CheckForSuspiciousSender &CheckForAutoGenerated - &ParseMIMEEntityFromSTDIN - &ParseTicketId &MailError &ParseCcAddressesFromHead &ParseSenderAddressFromHead - &ParseErrorsToAddressFromHead - &ParseAddressFromHeader - + &ParseErrorsToAddressFromHead + &ParseAddressFromHeader + &Gateway); - &debug); } =head1 NAME @@ -47,28 +64,13 @@ BEGIN { use lib "!!RT_LIB_PATH!!"; use lib "!!RT_ETC_PATH!!"; - use RT::Interface::Email qw(CleanEnv LoadConfig DBConnect - ); - - #Clean out all the nasties from the environment - CleanEnv(); - - #Load etc/config.pm and drop privs - LoadConfig(); - - #Connect to the database and get RT::SystemUser and RT::Nobody loaded - DBConnect(); - - - #Get the current user all loaded - my $CurrentUser = GetCurrentUser(); + use RT::Interface::Email qw(Gateway CreateUser); =head1 DESCRIPTION =begin testing -ok(require RT::TestHarness); ok(require RT::Interface::Email); =end testing @@ -79,71 +81,6 @@ ok(require RT::Interface::Email); =cut -=head2 CleanEnv - -Removes some of the nastiest nasties from the user\'s environment. - -=cut - -sub CleanEnv { - $ENV{'PATH'} = '/bin:/usr/bin'; # or whatever you need - $ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'}; - $ENV{'SHELL'} = '/bin/sh' if defined $ENV{'SHELL'}; - $ENV{'ENV'} = '' if defined $ENV{'ENV'}; - $ENV{'IFS'} = '' if defined $ENV{'IFS'}; -} - - - -=head2 LoadConfig - -Loads RT's config file and then drops setgid privileges. - -=cut - -sub LoadConfig { - - #This drags in RT's config.pm - use config; - -} - - - -=head2 DBConnect - - Calls RT::Init, which creates a database connection and then creates $RT::Nobody - and $RT::SystemUser - -=cut - - -sub DBConnect { - use RT; - RT::Init(); -} - - - -# {{{ sub debug - -sub debug { - my $val = shift; - my ($debug); - if ($val) { - $RT::Logger->debug($val."\n"); - if ($debug) { - print STDERR "$val\n"; - } - } - if ($debug) { - return(1); - } -} - -# }}} - - # {{{ sub CheckForLoops sub CheckForLoops { @@ -207,82 +144,6 @@ sub CheckForAutoGenerated { # }}} -# {{{ sub ParseMIMEEntityFromSTDIN - -sub ParseMIMEEntityFromSTDIN { - - # Create a new parser object: - - my $parser = new MIME::Parser; - - # {{{ Config $parser to store large attacments in temp dir - - ## TODO: Does it make sense storing to disk at all? After all, we - ## need to put each msg as an in-core scalar before saving it to - ## the database, don't we? - - ## At the same time, we should make sure that we nuke attachments - ## Over max size and return them - - ## TODO: Remove the temp dir when we don't need it any more. - - my $AttachmentDir = File::Temp::tempdir (TMPDIR => 1, CLEANUP => 1); - - # Set up output directory for files: - $parser->output_dir("$AttachmentDir"); - - #If someone includes a message, don't extract it - $parser->extract_nested_messages(0); - - - # Set up the prefix for files with auto-generated names: - $parser->output_prefix("part"); - - # If content length is <= 20000 bytes, store each msg as in-core scalar; - # Else, write to a disk file (the default action): - - $parser->output_to_core(20000); - - # }}} (temporary directory) - - #Ok. now that we're set up, let's get the stdin. - my $entity; - unless ($entity = $parser->read(\*STDIN)) { - die "couldn't parse MIME stream"; - } - #Now we've got a parsed mime object. - - # Get the head, a MIME::Head: - my $head = $entity->head; - - - # Unfold headers that are have embedded newlines - $head->unfold; - - # TODO - information about the charset is lost here! - $head->decode; - - return ($entity, $head); - -} -# }}} - -# {{{ sub ParseTicketId - -sub ParseTicketId { - my $Subject = shift; - my ($Id); - - if ($Subject =~ s/\[$RT::rtname \#(\d+)\]//i) { - $Id = $1; - $RT::Logger->debug("Found a ticket ID. It's $Id"); - return($Id); - } - else { - return(undef); - } -} -# }}} # {{{ sub MailError sub MailError { @@ -313,8 +174,8 @@ sub MailError { if ($mimeobj) { $mimeobj->sync_headers(); $entity->add_part($mimeobj); - } - + } + if ($RT::MailCommand eq 'sendmailpipe') { open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); print MAIL $entity->as_string; @@ -327,144 +188,66 @@ sub MailError { # }}} -# {{{ sub GetCurrentUser - -sub GetCurrentUser { - my $head = shift; - my $entity = shift; - my $ErrorsTo = shift; +# {{{ Create User - my %UserInfo = (); +sub CreateUser { + my ($Username, $Address, $Name, $ErrorsTo, $entity) = @_; + my $NewUser = RT::User->new($RT::SystemUser); - #Suck the address of the sender out of the header - my ($Address, $Name) = ParseSenderAddressFromHead($head); - - #This will apply local address canonicalization rules - $Address = RT::CanonicalizeAddress($Address); - - #If desired, synchronize with an external database - - my $UserFoundInExternalDatabase = 0; - - # Username is the 'Name' attribute of the user that RT uses for things - # like authentication - my $Username = undef; - if ($RT::LookupSenderInExternalDatabase) { - ($UserFoundInExternalDatabase, %UserInfo) = - RT::LookupExternalUserInfo($Address, $Name); - - $Address = $UserInfo{'EmailAddress'}; - $Username = $UserInfo{'Name'}; - } - - my $CurrentUser = RT::CurrentUser->new(); + # 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; - # First try looking up by a username, if we got one from the external - # db lookup. Next, try looking up by email address. Failing that, - # try looking up by users who have this user's email address as their - # username. - - if ($Username) { - $CurrentUser->LoadByName($Username); - } + my ($Val, $Message) = + $NewUser->Create(Name => ($Username || $Address), + EmailAddress => $Address, + RealName => $Name, + Password => undef, + Privileged => 0, + Comments => 'Autocreated on ticket submission' + ); - unless ($CurrentUser->Id) { - $CurrentUser->LoadByEmail($Address); - } - - #If we can't get it by email address, try by name. - unless ($CurrentUser->Id) { - $CurrentUser->LoadByName($Address); + unless ($Val) { + + # Deal with the race condition of two account creations at once + # + if ($Username) { + $NewUser->LoadByName($Username); + } + + 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 ($CurrentUser->Id) { - #If we couldn't load a user, determine whether to create a user - - # {{{ If we require an incoming address to be found in the external - # user database, reject the incoming message appropriately - if ( $RT::LookupSenderInExternalDatabase && - $RT::SenderMustExistInExternalDatabase && - !$UserFoundInExternalDatabase) { - - my $Message = "Sender's email address was not found in the user database."; - - # {{{ This code useful only if you've defined an AutoRejectRequest template - - require RT::Template; - my $template = new RT::Template($RT::Nobody); - $template->Load('AutoRejectRequest'); - $Message = $template->Content || $Message; - - # }}} - - MailError( To => $ErrorsTo, - Subject => "Ticket Creation failed: user could not be created", - Explanation => $Message, - MIMEObj => $entity, - LogLevel => 'notice' - ); - - return($CurrentUser); - - } - # }}} - - else { - 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' - ); - - unless ($Val) { - - # Deal with the race condition of two account creations at once - # - if ($Username) { - $NewUser->LoadByName($Username); - } - - 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' - ); - } - } - } - - #Load the new user object - $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' - ); - - } + + #Load the new user object + 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' + ); } - - return ($CurrentUser); - -} -# }}} + return $CurrentUser; +} +# }}} # {{{ ParseCcAddressesFromHead =head2 ParseCcAddressesFromHead HASHREF @@ -489,11 +272,11 @@ sub ParseCcAddressesFromHead { foreach my $AddrObj (@ToObjs, @CcObjs) { my $Address = $AddrObj->address; - $Address = RT::CanonicalizeAddress($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::IsRTAddress($Address)); + next if (RT::EmailParser::IsRTAddress(undef, $Address)); push (@Addresses, $Address); } @@ -568,8 +351,7 @@ sub ParseAddressFromHeader{ } my $Name = ($AddrObj->phrase || $AddrObj->comment || $AddrObj->address); - - + #Lets take the from and load a user object. my $Address = $AddrObj->address; @@ -578,4 +360,289 @@ sub ParseAddressFromHeader{ # }}} + +=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. + +=cut + +sub Gateway { + my %args = ( message => undef, + queue => 1, + action => 'correspond', + ticket => undef, + @_ ); + + # Validate the action + 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->ParseMIMEEntityFromScalar( $args{'message'} ); + + my $Message = $parser->Entity(); + my $head = $Message->head; + + my ( $CurrentUser, $AuthStat, $status, $error ); + + my $ErrorsTo = ParseErrorsToAddressFromHead($head); + + 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; + + + $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); + $SystemQueueObj->Load( $args{'queue'} ); + + + # We can safely have no queue of we have a known-good ticket + unless ( $args{'ticket'} || $SystemQueueObj->id ) { + MailError( + 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 ); + } + + # Authentication Level + # -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 + + push @RT::MailPlugins, "Auth::MailFrom" unless @RT::MailPlugins; + # Since this needs loading, no matter what + + for (@RT::MailPlugins) { + my $Code; + my $NewAuthStat; + if ( ref($_) eq "CODE" ) { + $Code = $_; + } + 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; + } + } + + ( $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; + } + + # {{{ If authentication fails and no new user was created, get out. + if ( !$CurrentUser or !$CurrentUser->Id or $AuthStat == -1 ) { + + # 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 => $Message, + LogLevel => 'error' ) + unless $AuthStat == -1; + return ( 0, "Could not load a valid user", undef ); + } + + # }}} + + # {{{ Lets check for mail loops of various sorts. + my $IsAutoGenerated = CheckForAutoGenerated($head); + + my $IsSuspiciousSender = CheckForSuspiciousSender($head); + + my $IsALoop = CheckForLoops($head); + + my $SquelchReplies = 0; + + #If the message is autogenerated, we need to know, so we can not + # send mail to the sender + if ( $IsSuspiciousSender || $IsAutoGenerated || $IsALoop ) { + $SquelchReplies = 1; + $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 Recieved mail ($MessageId) from itself."); + + #Should we mail it to RTOwner? + 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, "Message Bounced", undef ) unless ($RT::StoreLoops); + } + } + + # }}} + + # {{{ 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->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". + + my ( $Sender, $junk ) = ParseSenderAddressFromHead($head); + $head->add( 'RT-Squelch-Replies-To', $Sender ); + } + + # }}} + + my $Ticket = RT::Ticket->new($CurrentUser); + + # {{{ If we don't have a ticket Id, we're creating a new ticket + if ( !$args{'ticket'} ) { + + # {{{ Create a new ticket + + 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 ); + } + + # }}} + } + + # }}} + + # 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 { + + #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}); +eval "require RT::Interface::Email_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Email_Local.pm}); + 1; diff --git a/rt/lib/RT/Interface/Email/Auth/MailFrom.pm b/rt/lib/RT/Interface/Email/Auth/MailFrom.pm new file mode 100644 index 000000000..eb778ff30 --- /dev/null +++ b/rt/lib/RT/Interface/Email/Auth/MailFrom.pm @@ -0,0 +1,131 @@ +# 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. +# +# 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::Auth::MailFrom; +use RT::Interface::Email qw(ParseSenderAddressFromHead CreateUser); + +# This is what the ordinary, non-enhanced gateway does at the moment. + +sub GetCurrentUser { + my %args = ( Message => undef, + CurrentUser => undef, + AuthLevel => undef, + Ticket => undef, + Queue => undef, + Action => undef, + @_ ); + + # We don't need to do any external lookups + my ( $Address, $Name ) = ParseSenderAddressFromHead( $args{'Message'}->head ); + my $CurrentUser = RT::CurrentUser->new(); + $CurrentUser->LoadByEmail($Address); + + unless ( $CurrentUser->Id ) { + $CurrentUser->LoadByName($Address); + } + + if ( $CurrentUser->Id ) { + return ( $CurrentUser, 1 ); + } + + + + # If the user can't be loaded, we may need to create one. Figure out the acl situation. + my $unpriv = RT::Group->new($RT::SystemUser); + $unpriv->LoadSystemInternalGroup('Unprivileged'); + unless ( $unpriv->Id ) { + $RT::Logger->crit( "Auth::MailFrom couldn't find the 'Unprivileged' internal group" ); + return ( $args{'CurrentUser'}, -1 ); + } + + my $everyone = RT::Group->new($RT::SystemUser); + $everyone->LoadSystemInternalGroup('Everyone'); + unless ( $everyone->Id ) { + $RT::Logger->crit( "Auth::MailFrom couldn't find the 'Everyone' internal group"); + return ( $args{'CurrentUser'}, -1 ); + } + + # but before we do that, we need to make sure that the created user would have the right + # to do what we're doing. + if ( $args{'Ticket'} && $args{'Ticket'}->Id ) { + # We have a ticket. that means we're commenting or corresponding + if ( $args{'Action'} =~ /^comment$/i ) { + + # check to see whether "Everybody" or "Unprivileged users" can comment on tickets + unless ( $everyone->PrincipalObj->HasRight( + Object => $args{'Queue'}, + Right => 'CommentOnTicket' + ) + || $unpriv->PrincipalObj->HasRight( + Object => $args{'Queue'}, + Right => 'CommentOnTicket' + ) + ) { + return ( $args{'CurrentUser'}, 0 ); + } + } + elsif ( $args{'Action'} =~ /^correspond$/i ) { + + # check to see whether "Everybody" or "Unprivileged users" can correspond on tickets + unless ( $everyone->PrincipalObj->HasRight(Object => $args{'Queue'}, + Right => 'ReplyToTicket' + ) + || $unpriv->PrincipalObj->HasRight( + Object => $args{'Queue'}, + Right => 'ReplyToTicket' + ) + ) { + return ( $args{'CurrentUser'}, 0 ); + } + + } + else { + return ( $args{'CurrentUser'}, 0 ); + } + } + + # We're creating a ticket + elsif ( $args{'Queue'} && $args{'Queue'}->Id ) { + + # check to see whether "Everybody" or "Unprivileged users" can create tickets in this queue + unless ( $everyone->PrincipalObj->HasRight( Object => $args{'Queue'}, + Right => 'CreateTicket' ) + || $unpriv->PrincipalObj->HasRight( Object => $args{'Queue'}, + Right => 'CreateTicket' ) + ) { + return ( $args{'CurrentUser'}, 0 ); + } + + } + + $CurrentUser = CreateUser( undef, $Address, $Name, $args{'Message'} ); + + return ( $CurrentUser, 1 ); +} + +eval "require RT::Interface::Email::Auth::MailFrom_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Email/Auth/MailFrom_Vendor.pm}); +eval "require RT::Interface::Email::Auth::MailFrom_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Email/Auth/MailFrom_Local.pm}); + +1; diff --git a/rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm b/rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm new file mode 100644 index 000000000..f00e2d82b --- /dev/null +++ b/rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm @@ -0,0 +1,63 @@ +# 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. +# +# 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::Filter::SpamAssassin; + +use Mail::SpamAssassin; +my $spamtest = Mail::SpamAssassin->new(); + +sub GetCurrentUser { + my $item = shift; + my $status = $spamtest->check ($item); + return (undef, 0) unless $status->is_spam(); + eval { $status->rewrite_mail() }; + if ($status->get_hits > $status->get_required_hits()*1.5) { + # Spammy indeed + return (undef, -1); + } + return (undef, 0); +} + +=head1 NAME + +RT::Interface::Email::Filter::SpamAssassin - Spam filter for RT + +=head1 SYNOPSIS + + @RT::MailPlugins = ("Filter::SpamAssassin", ...); + +=head1 DESCRIPTION + +This plugin checks to see if an incoming mail is spam (using +C<spamassassin>) and if so, rewrites its headers. If the mail is very +definitely spam - 1.5x more hits than required - then it is dropped on +the floor; otherwise, it is passed on as normal. + +=cut + +eval "require RT::Interface::Email::Filter::SpamAssassin_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Email/Filter/SpamAssassin_Vendor.pm}); +eval "require RT::Interface::Email::Filter::SpamAssassin_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Email/Filter/SpamAssassin_Local.pm}); + +1; diff --git a/rt/lib/RT/Interface/Web.pm b/rt/lib/RT/Interface/Web.pm index 6b5272848..5097f54a4 100644 --- a/rt/lib/RT/Interface/Web.pm +++ b/rt/lib/RT/Interface/Web.pm @@ -1,129 +1,214 @@ -## $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Interface/Web.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ - +# 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. +# +# 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@fsck.com> -## Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com> ## This is a library of static subs to be used by the Mason web ## interface to RT + +=head1 NAME + +RT::Interface::Web + +=begin testing + +use_ok(RT::Interface::Web); + +=end testing + +=cut + + package RT::Interface::Web; +use strict; -# {{{ sub NewParser -=head2 NewParser - Returns a new Mason::Parser object. Takes a param hash of things - that get passed to HTML::Mason::Parser. Currently hard coded to only - take the parameter 'allow_globals'. + + +# {{{ sub NewApacheHandler + +=head2 NewApacheHandler + + Takes extra options to pass to HTML::Mason::ApacheHandler->new + Returns a new Mason::ApacheHandler object =cut -sub NewParser { - my %args = ( - allow_globals => undef, +sub NewApacheHandler { + require HTML::Mason::ApacheHandler; + my $ah = new HTML::Mason::ApacheHandler( + + comp_root => [ + [ local => $RT::MasonLocalComponentRoot ], + [ standard => $RT::MasonComponentRoot ] + ], + args_method => "CGI", + default_escape_flags => 'h', + allow_globals => [qw(%session)], + data_dir => "$RT::MasonDataDir", @_ ); - my $parser = new HTML::Mason::Parser( - default_escape_flags => 'h', - allow_globals => $args{'allow_globals'} - ); - return ($parser); + $ah->interp->set_escape( h => \&RT::Interface::Web::EscapeUTF8 ); + + return ($ah); } # }}} -# {{{ sub NewInterp +# {{{ sub NewCGIHandler -=head2 NewInterp +=head2 NewCGIHandler - Takes a paremeter hash. Needs a param called 'parser' which is a reference - to an HTML::Mason::Parser. - returns a new Mason::Interp object + Returns a new Mason::CGIHandler object =cut -sub NewInterp { - my %params = ( +sub NewCGIHandler { + my %args = ( + @_ + ); + + my $handler = HTML::Mason::CGIHandler->new( comp_root => [ [ local => $RT::MasonLocalComponentRoot ], [ standard => $RT::MasonComponentRoot ] ], data_dir => "$RT::MasonDataDir", - @_ + default_escape_flags => 'h', + allow_globals => [qw(%session)] ); + - #We allow recursive autohandlers to allow for RT auth. + $handler->interp->set_escape( h => \&RT::Interface::Web::EscapeUTF8 ); - use HTML::Mason::Interp; - my $interp = new HTML::Mason::Interp(%params); -} + return ($handler); +} # }}} -# {{{ sub NewApacheHandler -=head2 NewApacheHandler +# {{{ EscapeUTF8 - Takes a Mason::Interp object - Returns a new Mason::ApacheHandler object +=head2 EscapeUTF8 SCALARREF + +does a css-busting but minimalist escaping of whatever html you're passing in. =cut -sub NewApacheHandler { - my $interp = shift; - my $ah = new HTML::Mason::ApacheHandler( interp => $interp ); - return ($ah); +sub EscapeUTF8 { + my $ref = shift; + my $val = $$ref; + use bytes; + $val =~ s/&/&/g; + $val =~ s/</</g; + $val =~ s/>/>/g; + $val =~ s/\(/(/g; + $val =~ s/\)/)/g; + $val =~ s/"/"/g; + $val =~ s/'/'/g; + $$ref = $val; + Encode::_utf8_on($$ref); + } # }}} -# {{{ sub NewMason11ApacheHandler +package HTML::Mason::Commands; +use strict; +use vars qw/$r $m %session/; -=head2 NewMason11ApacheHandler - Returns a new Mason::ApacheHandler object +# {{{ loc + +=head2 loc ARRAY + +loc is a nice clean global routine which calls $session{'CurrentUser'}->loc() +with whatever it's called with. If there is no $session{'CurrentUser'}, +it creates a temporary user, so we have something to get a localisation handle +through =cut -sub NewMason11ApacheHandler { - my %args = ( default_escape_flags => 'h', - allow_globals => [%session], - comp_root => [ - [ local => $RT::MasonLocalComponentRoot ], - [ standard => $RT::MasonComponentRoot ] - ], - data_dir => "$RT::MasonDataDir", - args_method => 'CGI' - ); - my $ah = new HTML::Mason::ApacheHandler(%args); - return ($ah); +sub loc { + + if ($session{'CurrentUser'} && + UNIVERSAL::can($session{'CurrentUser'}, 'loc')){ + return($session{'CurrentUser'}->loc(@_)); + } + else { + my $u = RT::CurrentUser->new($RT::SystemUser); + return ($u->loc(@_)); + } } # }}} +# {{{ loc_fuzzy + +=head2 loc_fuzzy STRING +loc_fuzzy is for handling localizations of messages that may already +contain interpolated variables, typically returned from libraries +outside RT's control. It takes the message string and extracts the +variable array automatically by matching against the candidate entries +inside the lexicon file. + +=cut +sub loc_fuzzy { + my $msg = shift; + + if ($session{'CurrentUser'} && + UNIVERSAL::can($session{'CurrentUser'}, 'loc')){ + return($session{'CurrentUser'}->loc_fuzzy($msg)); + } + else { + my $u = RT::CurrentUser->new($RT::SystemUser); + return ($u->loc_fuzzy($msg)); + } +} # }}} -package HTML::Mason::Commands; # {{{ sub Abort # Error - calls Error and aborts sub Abort { - if ( $session{'ErrorDocument'} && $session{'ErrorDocumentType'} ) { - SetContentType( $session{'ErrorDocumentType'} ); - $m->comp( $session{'ErrorDocument'}, Why => shift ); + if ($session{'ErrorDocument'} && + $session{'ErrorDocumentType'}) { + $r->content_type($session{'ErrorDocumentType'}); + $m->comp($session{'ErrorDocument'} , Why => shift); $m->abort; - } - else { - SetContentType('text/html'); - $m->comp( "/Elements/Error", Why => shift ); + } + else { + $m->comp("/Elements/Error" , Why => shift); $m->abort; } } @@ -135,6 +220,7 @@ sub Abort { =head2 CreateTicket ARGS Create a new ticket, using Mason's %ARGS. returns @results. + =cut sub CreateTicket { @@ -158,38 +244,45 @@ sub CreateTicket { my $starts = new RT::Date( $session{'CurrentUser'} ); $starts->Set( Format => 'unknown', Value => $ARGS{'Starts'} ); - my @Requestors = split ( /,/, $ARGS{'Requestors'} ); - my @Cc = split ( /,/, $ARGS{'Cc'} ); - my @AdminCc = split ( /,/, $ARGS{'AdminCc'} ); + my @Requestors = split ( /\s*,\s*/, $ARGS{'Requestors'} ); + my @Cc = split ( /\s*,\s*/, $ARGS{'Cc'} ); + my @AdminCc = split ( /\s*,\s*/, $ARGS{'AdminCc'} ); my $MIMEObj = MakeMIMEEntity( Subject => $ARGS{'Subject'}, From => $ARGS{'From'}, Cc => $ARGS{'Cc'}, Body => $ARGS{'Content'}, - AttachmentFieldName => 'Attach' ); + if ($ARGS{'Attachments'}) { + $MIMEObj->make_multipart; + $MIMEObj->add_part($_) foreach values %{$ARGS{'Attachments'}}; + } + my %create_args = ( - Queue => $ARGS{Queue}, - Owner => $ARGS{Owner}, - InitialPriority => $ARGS{InitialPriority}, - FinalPriority => $ARGS{FinalPriority}, - TimeLeft => $ARGS{TimeLeft}, - TimeWorked => $ARGS{TimeWorked}, + Queue => $ARGS{'Queue'}, + Owner => $ARGS{'Owner'}, + InitialPriority => $ARGS{'InitialPriority'}, + FinalPriority => $ARGS{'FinalPriority'}, + TimeLeft => $ARGS{'TimeLeft'}, + TimeEstimated => $ARGS{'TimeEstimated'}, + TimeWorked => $ARGS{'TimeWorked'}, Requestor => \@Requestors, Cc => \@Cc, AdminCc => \@AdminCc, - Subject => $ARGS{Subject}, - Status => $ARGS{Status}, + Subject => $ARGS{'Subject'}, + Status => $ARGS{'Status'}, Due => $due->ISO, Starts => $starts->ISO, MIMEObj => $MIMEObj ); - - # we need to get any KeywordSelect-<integer> fields into %create_args.. - grep { $_ =~ /^KeywordSelect-/ &&{ $create_args{$_} = $ARGS{$_} } } %ARGS; - + foreach my $arg (%ARGS) { + if ($arg =~ /^CustomField-(\d+)(.*?)$/) { + next if ($arg =~ /-Magic$/); + $create_args{"CustomField-".$1} = $ARGS{"$arg"}; + } + } my ( $id, $Trans, $ErrMsg ) = $Ticket->Create(%create_args); unless ( $id && $Trans ) { Abort($ErrMsg); @@ -216,7 +309,7 @@ sub CreateTicket { } } - push ( @Actions, $ErrMsg ); + push ( @Actions, split("\n", $ErrMsg) ); unless ( $Ticket->CurrentUserHasRight('ShowTicket') ) { Abort( "No permission to view newly created ticket #" . $Ticket->id . "." ); @@ -283,80 +376,38 @@ sub ProcessUpdateMessage { my $Message = MakeMIMEEntity( Subject => $args{ARGSRef}->{'UpdateSubject'}, Body => $args{ARGSRef}->{'UpdateContent'}, - AttachmentFieldName => 'UpdateAttachment' ); - ## Check whether this was a refresh or not. - - # Match Correspondence or Comments. - my $trans_flag = -2; - my $trans_type = undef; - my $orig_trans = $args{ARGSRef}->{'UpdateType'}; - if ( $orig_trans =~ /^(private|public)$/ ) { - $trans_type = "Comment"; - }elsif ( $orig_trans eq 'response' ) { - $trans_type = "Correspond"; - } - - # Do we have a transaction that we need to update on? session - if( defined( $trans_type ) ){ - $trans_flag = 0; - - # Prepare a checksum. - # See perldoc -f unpack for example of this. - my $this_checksum = unpack("%32C*", $Message->body_as_string ) % 65535; - - # The above *could* generate duplicate checksums. Crosscheck with - # the length. - my $this_length = length( $Message->body_as_string ); - - # Don't forget the ticket id. - my $this_id = $args{TicketObj}->id; - - # Check whether the previous transaction in the - # ticket is the same as the current transaction. - if( defined( $session{'prev_trans_type'} ) && defined( $session{'prev_trans_chksum'} ) && defined( $session{'prev_trans_length'} ) && defined( $session{'prev_trans_tickid'} ) ){ - if( $session{'prev_trans_type'} eq $orig_trans && $session{'prev_trans_chksum'} == $this_checksum && $session{'prev_trans_length'} == $this_length && $session{'prev_trans_tickid'} == $this_id ){ - # Its the same as the previous transaction for this user. - $trans_flag = -1; - } - } - - # Store them for next time. - $session{'prev_trans_type'} = $orig_trans; - $session{'prev_trans_chksum'} = $this_checksum; - $session{'prev_trans_length'} = $this_length; - $session{'prev_trans_tickid'} = $this_id; - - if( $trans_flag == -1 ){ - push ( @{ $args{'Actions'} }, -"This appears to be a duplicate of your previous update (please do not refresh this page)" ); - } - - - if ( $trans_type eq 'Comment' && $trans_flag >= 0 ) { - my ( $Transaction, $Description ) = $args{TicketObj}->Comment( - CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, - BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, - MIMEObj => $Message, - TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} - ); - push ( @{ $args{Actions} }, $Description ); - } - elsif ( $trans_type eq 'Correspond' && $trans_flag >= 0 ) { - my ( $Transaction, $Description ) = $args{TicketObj}->Correspond( - CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, - BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, - MIMEObj => $Message, - TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} - ); - push ( @{ $args{Actions} }, $Description ); - } - } + if ($args{ARGSRef}->{'UpdateAttachments'}) { + $Message->make_multipart; + $Message->add_part($_) foreach values %{$args{ARGSRef}->{'UpdateAttachments'}}; + } + + ## TODO: Implement public comments + if ( $args{ARGSRef}->{'UpdateType'} =~ /^(private|public)$/ ) { + my ( $Transaction, $Description ) = $args{TicketObj}->Comment( + CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, + BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, + MIMEObj => $Message, + TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} + ); + push ( @{ $args{Actions} }, $Description ); + } + elsif ( $args{ARGSRef}->{'UpdateType'} eq 'response' ) { + my ( $Transaction, $Description ) = $args{TicketObj}->Correspond( + CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, + BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, + MIMEObj => $Message, + TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} + ); + push ( @{ $args{Actions} }, $Description ); + } else { push ( @{ $args{'Actions'} }, - "Update type was neither correspondence nor comment. Update not recorded" - ); + loc("Update type was neither correspondence nor comment."). + " ". + loc("Update not recorded.") + ); } } } @@ -382,61 +433,66 @@ sub MakeMIMEEntity { Cc => undef, Body => undef, AttachmentFieldName => undef, - @_ + map Encode::encode_utf8($_), @_, ); #Make the update content have no 'weird' newlines in it $args{'Body'} =~ s/\r\n/\n/gs; - my $Message = MIME::Entity->build( - Subject => $args{'Subject'} || "", - From => $args{'From'}, - Cc => $args{'Cc'}, - Data => [ $args{'Body'} ] - ); + my $Message; + { + # MIME::Head is not happy in utf-8 domain. This only happens + # when processing an incoming email (so far observed). + no utf8; + use bytes; + $Message = MIME::Entity->build( + Subject => $args{'Subject'} || "", + From => $args{'From'}, + Cc => $args{'Cc'}, + Data => [ $args{'Body'} ] + ); + } - my $cgi_object = CGIObject(); - if ( $cgi_object->param( $args{'AttachmentFieldName'} ) ) { + my $cgi_object = $m->cgi_object; - my $cgi_filehandle = - $cgi_object->upload( $args{'AttachmentFieldName'} ); + if (my $filehandle = $cgi_object->upload( $args{'AttachmentFieldName'} ) ) { - use File::Temp qw(tempfile tempdir); - #foreach my $filehandle (@filenames) { - # my ( $fh, $temp_file ) = tempfile(); + use File::Temp qw(tempfile tempdir); - #$binmode $fh; #thank you, windows + #foreach my $filehandle (@filenames) { - # We're having trouble with tempfiles not getting created. Let's try it with - # a scalar instead + my ( $fh, $temp_file ) = tempfile(); - my ( $buffer, @file ); + binmode $fh; #thank you, windows + my ($buffer); + while ( my $bytesread = read( $filehandle, $buffer, 4096 ) ) { + print $fh $buffer; + } - while ( my $bytesread = read( $cgi_filehandle, $buffer, 4096 ) ) { - push ( @file, $buffer ); - } + my $uploadinfo = $cgi_object->uploadInfo($filehandle); - $RT::Logger->debug($file); - my $filename = "$cgi_filehandle"; - $filename =~ s#^(.*)/##; - $filename =~ s#^(.*)\\##; - my $uploadinfo = $cgi_object->uploadInfo($cgi_filehandle); - $Message->attach( - Data => \@file, - - #Path => $temp_file, - Filename => $filename, - Type => $uploadinfo->{'Content-Type'} - ); + # Prefer the cached name first over CGI.pm stringification. + my $filename = $RT::Mason::CGI::Filename; + $filename = "$filehandle" unless defined($filename); + + $filename =~ s#^.*[\\/]##; + + $Message->attach( + Path => $temp_file, + Filename => $filename, + Type => $uploadinfo->{'Content-Type'}, + ); + close($fh); - #close($fh); - #unlink($temp_file); + # } - # } } + $Message->make_singlepart(); + RT::I18N::SetMIMEEntityToUTF8($Message); # convert text parts into utf-8 + return ($Message); } @@ -485,6 +541,9 @@ sub ProcessSearchQuery { elsif ( $args{ARGS}->{'GotoPage'} eq 'Prev' ) { $session{'tickets'}->PrevPage; } + elsif ( $args{ARGS}->{'GotoPage'} > 0 ) { + $session{'tickets'}->GotoPage( $args{ARGS}->{GotoPage} - 1 ); + } # }}} @@ -576,8 +635,12 @@ sub ProcessSearchQuery { # }}} # {{{ Limit Subject if ( $args{ARGS}->{'ValueOfSubject'} ne '' ) { + my $val = $args{ARGS}->{'ValueOfSubject'}; + if ($args{ARGS}->{'SubjectOp'} =~ /like/) { + $val = "%".$val."%"; + } $session{'tickets'}->LimitSubject( - VALUE => $args{ARGS}->{'ValueOfSubject'}, + VALUE => $val, OPERATOR => $args{ARGS}->{'SubjectOp'}, ); } @@ -585,40 +648,59 @@ sub ProcessSearchQuery { # }}} # {{{ Limit Dates if ( $args{ARGS}->{'ValueOfDate'} ne '' ) { - my $date = ParseDateToISO( $args{ARGS}->{'ValueOfDate'} ); $args{ARGS}->{'DateType'} =~ s/_Date$//; - $session{'tickets'}->LimitDate( - FIELD => $args{ARGS}->{'DateType'}, - VALUE => $date, - OPERATOR => $args{ARGS}->{'DateOp'}, - ); + if ( $args{ARGS}->{'DateType'} eq 'Updated' ) { + $session{'tickets'}->LimitTransactionDate( + VALUE => $date, + OPERATOR => $args{ARGS}->{'DateOp'}, + ); + } + else { + $session{'tickets'}->LimitDate( FIELD => $args{ARGS}->{'DateType'}, + VALUE => $date, + OPERATOR => $args{ARGS}->{'DateOp'}, + ); + } } # }}} # {{{ Limit Content - if ( $args{ARGS}->{'ValueOfContent'} ne '' ) { - $session{'tickets'}->LimitContent( - VALUE => $args{ARGS}->{'ValueOfContent'}, - OPERATOR => $args{ARGS}->{'ContentOp'}, + if ( $args{ARGS}->{'ValueOfAttachmentField'} ne '' ) { + my $val = $args{ARGS}->{'ValueOfAttachmentField'}; + if ($args{ARGS}->{'AttachmentFieldOp'} =~ /like/) { + $val = "%".$val."%"; + } + $session{'tickets'}->Limit( + FIELD => $args{ARGS}->{'AttachmentField'}, + VALUE => $val, + OPERATOR => $args{ARGS}->{'AttachmentFieldOp'}, ); } # }}} - # {{{ Limit KeywordSelects - foreach my $KeywordSelectId ( - map { /^KeywordSelect(\d+)$/; $1 } - grep { /^KeywordSelect(\d+)$/; } keys %{ $args{ARGS} } - ) - { - my $form = $args{ARGS}->{"KeywordSelect$KeywordSelectId"}; - my $oper = $args{ARGS}->{"KeywordSelectOp$KeywordSelectId"}; - foreach my $KeywordId ( ref($form) ? @{$form} : ($form) ) { - next unless ($KeywordId); + # {{{ Limit CustomFields + + foreach my $arg ( keys %{ $args{ARGS} } ) { + my $id; + if ( $arg =~ /^CustomField(\d+)$/ ) { + $id = $1; + } + else { + next; + } + next unless ( $args{ARGS}->{$arg} ); + + my $form = $args{ARGS}->{$arg}; + my $oper = $args{ARGS}->{ "CustomFieldOp" . $id }; + foreach my $value ( ref($form) ? @{$form} : ($form) ) { my $quote = 1; - if ( $KeywordId =~ /^null$/i ) { + if ($oper =~ /like/i) { + $value = "%".$value."%"; + } + if ( $value =~ /^null$/i ) { #Don't quote the string 'null' $quote = 0; @@ -627,17 +709,16 @@ sub ProcessSearchQuery { $oper = 'IS' if ( $oper eq '=' ); $oper = 'IS NOT' if ( $oper eq '!=' ); } - $session{'tickets'}->LimitKeyword( - KEYWORDSELECT => $KeywordSelectId, - OPERATOR => $oper, - QUOTEVALUE => $quote, - KEYWORD => $KeywordId - ); + $session{'tickets'}->LimitCustomField( CUSTOMFIELD => $id, + OPERATOR => $oper, + QUOTEVALUE => $quote, + VALUE => $value ); } } # }}} + } # }}} @@ -654,7 +735,7 @@ Returns an ISO date and time in GMT sub ParseDateToISO { my $date = shift; - my $date_obj = new RT::Date($CurrentUser); + my $date_obj = RT::Date->new($session{'CurrentUser'}); $date_obj->Set( Format => 'unknown', Value => $date @@ -680,172 +761,82 @@ sub Config { # {{{ sub ProcessACLChanges sub ProcessACLChanges { - my $ACLref = shift; my $ARGSref = shift; - my @CheckACL = @$ACLref; my %ARGS = %$ARGSref; my ( $ACL, @results ); - # {{{ Add rights - foreach $ACL (@CheckACL) { - my ($Principal); - next unless ($ACL); + foreach my $arg (keys %ARGS) { + if ($arg =~ /GrantRight-(\d+)-(.*?)-(\d+)$/) { + my $principal_id = $1; + my $object_type = $2; + my $object_id = $3; + my $rights = $ARGS{$arg}; - # Parse out what we're really talking about. - if ( $ACL =~ /^(.*?)-(\d+)-(.*?)-(\d+)/ ) { - my $PrincipalType = $1; - my $PrincipalId = $2; - my $Scope = $3; - my $AppliesTo = $4; + my $principal = RT::Principal->new($session{'CurrentUser'}); + $principal->Load($principal_id); - # {{{ Create an object called Principal - # so we can do rights operations + my $obj; - if ( $PrincipalType eq 'User' ) { - $Principal = new RT::User( $session{'CurrentUser'} ); - } - elsif ( $PrincipalType eq 'Group' ) { - $Principal = new RT::Group( $session{'CurrentUser'} ); - } - else { - Abort("$PrincipalType unknown principal type"); - } + if ($object_type eq 'RT::Queue') { + $obj = RT::Queue->new($session{'CurrentUser'}); + $obj->Load($object_id); + } elsif ($object_type eq 'RT::Group') { + $obj = RT::Group->new($session{'CurrentUser'}); + $obj->Load($object_id); - $Principal->Load($PrincipalId) - || Abort("$PrincipalType $PrincipalId couldn't be loaded"); - - # }}} - - # {{{ load up an RT::ACL object with the same current vals of this ACL - - my $CurrentACL = new RT::ACL( $session{'CurrentUser'} ); - if ( $Scope eq 'Queue' ) { - $CurrentACL->LimitToQueue($AppliesTo); + } elsif ($object_type eq 'RT::System') { + $obj = $RT::System; + } else { + push (@results, loc("System Error"). + loc("Rights could not be granted for [_1]", $object_type)); + next; } - elsif ( $Scope eq 'System' ) { - $CurrentACL->LimitToSystem(); - } - - $CurrentACL->LimitPrincipalToType($PrincipalType); - $CurrentACL->LimitPrincipalToId($PrincipalId); - - # }}} - - # {{{ Get the values of the select we're working with - # into an array. it will contain all the new rights that have - # been granted - #Hack to turn the ACL returned into an array - my @rights = - ref( $ARGS{"GrantACE-$ACL"} ) eq 'ARRAY' - ? @{ $ARGS{"GrantACE-$ACL"} } - : ( $ARGS{"GrantACE-$ACL"} ); - - # }}} - - # {{{ Add any rights we need. + my @rights = ref($ARGS{$arg}) eq 'ARRAY' ? @{$ARGS{$arg}} : ($ARGS{$arg}); foreach my $right (@rights) { next unless ($right); - - #if the right that's been selected wasn't there before, add it. - unless ( - $CurrentACL->HasEntry( - RightScope => "$Scope", - RightName => "$right", - RightAppliesTo => "$AppliesTo", - PrincipalType => $PrincipalType, - PrincipalId => $Principal->Id - ) - ) - { - - #Add new entry to list of rights. - if ( $Scope eq 'Queue' ) { - my $Queue = new RT::Queue( $session{'CurrentUser'} ); - $Queue->Load($AppliesTo); - unless ( $Queue->id ) { - Abort("Couldn't find a queue called $AppliesTo"); - } - - my ( $val, $msg ) = $Principal->GrantQueueRight( - RightAppliesTo => $Queue->id, - RightName => "$right" - ); - - if ($val) { - push ( @results, - "Granted right $right to " - . $Principal->Name - . " for queue " - . $Queue->Name ); - } - else { - push ( @results, $msg ); - } - } - elsif ( $Scope eq 'System' ) { - my ( $val, $msg ) = $Principal->GrantSystemRight( - RightAppliesTo => $AppliesTo, - RightName => "$right" - ); - if ($val) { - push ( @results, "Granted system right '$right' to " - . $Principal->Name ); - } - else { - push ( @results, $msg ); - } - } - } + my ($val, $msg) = $principal->GrantRight(Object => $obj, Right => $right); + push (@results, $msg); } - - # }}} } - } - - # }}} Add rights - - # {{{ remove any rights that have been deleted - - my @RevokeACE = - ref( $ARGS{"RevokeACE"} ) eq 'ARRAY' - ? @{ $ARGS{"RevokeACE"} } - : ( $ARGS{"RevokeACE"} ); - - foreach my $aceid (@RevokeACE) { - - my $right = new RT::ACE( $session{'CurrentUser'} ); - $right->Load($aceid); - next unless ( $right->id ); + elsif ($arg =~ /RevokeRight-(\d+)-(.*?)-(\d+)-(.*?)$/) { + my $principal_id = $1; + my $object_type = $2; + my $object_id = $3; + my $right = $4; + + my $principal = RT::Principal->new($session{'CurrentUser'}); + $principal->Load($principal_id); + next unless ($right); + my $obj; + + if ($object_type eq 'RT::Queue') { + $obj = RT::Queue->new($session{'CurrentUser'}); + $obj->Load($object_id); + } elsif ($object_type eq 'RT::Group') { + $obj = RT::Group->new($session{'CurrentUser'}); + $obj->Load($object_id); + + } elsif ($object_type eq 'RT::System') { + $obj = $RT::System; + } else { + push (@results, loc("System Error"). + loc("Rights could not be revoked for [_1]", $object_type)); + next; + } + my ($val, $msg) = $principal->RevokeRight(Object => $obj, Right => $right); + push (@results, $msg); + } - my $phrase = "Revoked " - . $right->PrincipalType . " " - . $right->PrincipalObj->Name - . "'s right to " - . $right->RightName; - if ( $right->RightScope eq 'System' ) { - $phrase .= ' across all queues.'; - } - else { - $phrase .= ' for the queue ' . $right->AppliesToObj->Name . '.'; - } - my ( $val, $msg ) = $right->Delete(); - if ($val) { - push ( @results, $phrase ); - } - else { - push ( @results, $msg ); - } } - # }}} - return (@results); -} + + } # }}} @@ -864,6 +855,7 @@ sub UpdateRecordObject { ARGSRef => undef, AttributesRef => undef, Object => undef, + AttributePrefix => undef, @_ ); @@ -872,17 +864,94 @@ sub UpdateRecordObject { my $object = $args{'Object'}; my $attributes = $args{'AttributesRef'}; my $ARGSRef = $args{'ARGSRef'}; + foreach my $attribute (@$attributes) { + my $value; + if ( defined $ARGSRef->{$attribute} ) { + $value = $ARGSRef->{$attribute}; + } + elsif ( + defined( $args{'AttributePrefix'} ) + && defined( + $ARGSRef->{ $args{'AttributePrefix'} . "-" . $attribute } + ) + ) { + $value = $ARGSRef->{ $args{'AttributePrefix'} . "-" . $attribute }; + + } else { + next; + } - foreach $attribute (@$attributes) { - if ( ( defined $ARGSRef->{"$attribute"} ) - and ( $ARGSRef->{"$attribute"} ne $object->$attribute() ) ) - { - $ARGSRef->{"$attribute"} =~ s/\r\n/\n/gs; + $value =~ s/\r\n/\n/gs; + + if ($value ne $object->$attribute()){ + + my $method = "Set$attribute"; + my ( $code, $msg ) = $object->$method($value); + + push @results, loc($attribute) . ': ' . loc_fuzzy($msg); +=for loc + "[_1] could not be set to [_2].", # loc + "That is already the current value", # loc + "No value sent to _Set!\n", # loc + "Illegal value for [_1]", # loc + "The new value has been set.", # loc + "No column specified", # loc + "Immutable field", # loc + "Nonexistant field?", # loc + "Invalid data", # loc + "Couldn't find row", # loc + "Missing a primary key?: [_1]", # loc + "Found Object", # loc +=cut + }; + } + return (@results); +} - my $method = "Set$attribute"; - my ( $code, $msg ) = $object->$method( $ARGSRef->{"$attribute"} ); - push @results, "$attribute: $msg"; - } +# }}} + +# {{{ Sub ProcessCustomFieldUpdates + +sub ProcessCustomFieldUpdates { + my %args = ( + CustomFieldObj => undef, + ARGSRef => undef, + @_ + ); + + my $Object = $args{'CustomFieldObj'}; + my $ARGSRef = $args{'ARGSRef'}; + + my @attribs = qw( Name Type Description Queue SortOrder); + my @results = UpdateRecordObject( + AttributesRef => \@attribs, + Object => $Object, + ARGSRef => $ARGSRef + ); + + if ( $ARGSRef->{ "CustomField-" . $Object->Id . "-AddValue-Name" } ) { + + my ( $addval, $addmsg ) = $Object->AddValue( + Name => + $ARGSRef->{ "CustomField-" . $Object->Id . "-AddValue-Name" }, + Description => $ARGSRef->{ "CustomField-" + . $Object->Id + . "-AddValue-Description" }, + SortOrder => $ARGSRef->{ "CustomField-" + . $Object->Id + . "-AddValue-SortOrder" }, + ); + push ( @results, $addmsg ); + } + my @delete_values = ( + ref $ARGSRef->{ 'CustomField-' . $Object->Id . '-DeleteValue' } eq + 'ARRAY' ) + ? @{ $ARGSRef->{ 'CustomField-' . $Object->Id . '-DeleteValue' } } + : ( $ARGSRef->{ 'CustomField-' . $Object->Id . '-DeleteValue' } ); + foreach my $id (@delete_values) { + next unless defined $id; + my ( $err, $msg ) = $Object->DeleteValue($id); + push ( @results, $msg ); } return (@results); } @@ -913,6 +982,7 @@ sub ProcessTicketBasics { Subject FinalPriority Priority + TimeEstimated TimeWorked TimeLeft Status @@ -934,7 +1004,7 @@ sub ProcessTicketBasics { ); # We special case owner changing, so we can use ForceOwnerChange - if ( $ARGSRef->{'Owner'} && ( $TicketObj->Owner ne $ARGSRef->{'Owner'} ) ) { + if ( $ARGSRef->{'Owner'} && ( $TicketObj->Owner != $ARGSRef->{'Owner'} ) ) { my ($ChownType); if ( $ARGSRef->{'ForceOwnerChange'} ) { $ChownType = "Force"; @@ -945,7 +1015,7 @@ sub ProcessTicketBasics { my ( $val, $msg ) = $TicketObj->SetOwner( $ARGSRef->{'Owner'}, $ChownType ); - push ( @results, "$msg" ); + push ( @results, $msg ); } # }}} @@ -955,6 +1025,142 @@ sub ProcessTicketBasics { # }}} +# {{{ Sub ProcessTicketCustomFieldUpdates + +sub ProcessTicketCustomFieldUpdates { + my %args = ( + ARGSRef => undef, + @_ + ); + + my @results; + + my $ARGSRef = $args{'ARGSRef'}; + + # Build up a list of tickets that we want to work with + my %tickets_to_mod; + my %custom_fields_to_mod; + foreach my $arg ( keys %{$ARGSRef} ) { + if ( $arg =~ /^Ticket-(\d+)-CustomField-(\d+)-/ ) { + + # For each of those tickets, find out what custom fields we want to work with. + $custom_fields_to_mod{$1}{$2} = 1; + } + } + + # For each of those tickets + foreach my $tick ( keys %custom_fields_to_mod ) { + my $Ticket = RT::Ticket->new( $session{'CurrentUser'} ); + $Ticket->Load($tick); + + # For each custom field + foreach my $cf ( keys %{ $custom_fields_to_mod{$tick} } ) { + + my $CustomFieldObj = RT::CustomField->new($session{'CurrentUser'}); + $CustomFieldObj->LoadById($cf); + + foreach my $arg ( keys %{$ARGSRef} ) { + # since http won't pass in a form element with a null value, we need + # to fake it + if ($arg =~ /^(.*?)-Values-Magic$/ ) { + # We don't care about the magic, if there's really a values element; + next if (exists $ARGSRef->{$1.'-Values'}) ; + + $arg = $1."-Values"; + $ARGSRef->{$1."-Values"} = undef; + + } + next unless ( $arg =~ /^Ticket-$tick-CustomField-$cf-/ ); + my @values = + ( ref( $ARGSRef->{$arg} ) eq 'ARRAY' ) + ? @{ $ARGSRef->{$arg} } + : ( $ARGSRef->{$arg} ); + if ( ( $arg =~ /-AddValue$/ ) || ( $arg =~ /-Value$/ ) ) { + foreach my $value (@values) { + next unless ($value); + my ( $val, $msg ) = $Ticket->AddCustomFieldValue( + Field => $cf, + Value => $value + ); + push ( @results, $msg ); + } + } + elsif ( $arg =~ /-DeleteValues$/ ) { + foreach my $value (@values) { + next unless ($value); + my ( $val, $msg ) = $Ticket->DeleteCustomFieldValue( + Field => $cf, + Value => $value + ); + push ( @results, $msg ); + } + } + elsif ( $arg =~ /-Values$/ and $CustomFieldObj->Type !~ /Entry/) { + my $cf_values = $Ticket->CustomFieldValues($cf); + + my %values_hash; + foreach my $value (@values) { + next unless ($value); + + # build up a hash of values that the new set has + $values_hash{$value} = 1; + + unless ( $cf_values->HasEntry($value) ) { + my ( $val, $msg ) = $Ticket->AddCustomFieldValue( + Field => $cf, + Value => $value + ); + push ( @results, $msg ); + } + + } + while ( my $cf_value = $cf_values->Next ) { + unless ( $values_hash{ $cf_value->Content } == 1 ) { + my ( $val, $msg ) = $Ticket->DeleteCustomFieldValue( + Field => $cf, + Value => $cf_value->Content + ); + push ( @results, $msg); + + } + + } + } + elsif ( $arg =~ /-Values$/ ) { + my $cf_values = $Ticket->CustomFieldValues($cf); + + # keep everything up to the point of difference, delete the rest + my $delete_flag; + foreach my $old_cf (@{$cf_values->ItemsArrayRef}) { + if (!$delete_flag and @values and $old_cf->Content eq $values[0]) { + shift @values; + next; + } + + $delete_flag ||= 1; + $old_cf->Delete; + } + + # now add/replace extra things, if any + foreach my $value (@values) { + my ( $val, $msg ) = $Ticket->AddCustomFieldValue( + Field => $cf, + Value => $value + ); + push ( @results, $msg ); + } + } + else { + push ( @results, "User asked for an unknown update type for custom field " . $cf->Name . " for ticket " . $Ticket->id ); + } + } + } + return (@results); + } +} + +# }}} + # {{{ sub ProcessTicketWatchers =head2 ProcessTicketWatchers ( TicketObj => $Ticket, ARGSRef => \%ARGS ); @@ -978,18 +1184,22 @@ sub ProcessTicketWatchers { foreach my $key ( keys %$ARGSRef ) { - # Delete deletable watchers - if ( ( $key =~ /^DelWatcher(\d*)$/ ) and ( $ARGSRef->{$key} ) ) { - my ( $code, $msg ) = $Ticket->DeleteWatcher($1); + # {{{ Delete deletable watchers + if ( ( $key =~ /^Ticket-DelWatcher-Type-(.*)-Principal-(\d+)$/ ) ) { + my ( $code, $msg ) = + $Ticket->DeleteWatcher(PrincipalId => $2, + Type => $1); push @results, $msg; } # Delete watchers in the simple style demanded by the bulk manipulator elsif ( $key =~ /^Delete(Requestor|Cc|AdminCc)$/ ) { - my ( $code, $msg ) = $Ticket->DeleteWatcher( $ARGSRef->{$key}, $1 ); + my ( $code, $msg ) = $Ticket->DeleteWatcher( Type => $ARGSRef->{$key}, PrincipalId => $1 ); push @results, $msg; } + # }}} + # Add new wathchers by email address elsif ( ( $ARGSRef->{$key} =~ /^(AdminCc|Cc|Requestor)$/ ) and ( $key =~ /^WatcherTypeEmail(\d*)$/ ) ) @@ -1014,12 +1224,11 @@ sub ProcessTicketWatchers { # Add new watchers by owner elsif ( ( $ARGSRef->{$key} =~ /^(AdminCc|Cc|Requestor)$/ ) - and ( $key =~ /^WatcherTypeUser(\d*)$/ ) ) - { + and ( $key =~ /^Ticket-AddWatcher-Principal-(\d*)$/ ) ) { #They're in this order because otherwise $1 gets clobbered :/ my ( $code, $msg ) = - $Ticket->AddWatcher( Type => $ARGSRef->{$key}, Owner => $1 ); + $Ticket->AddWatcher( Type => $ARGSRef->{$key}, PrincipalId => $1 ); push @results, $msg; } } @@ -1061,7 +1270,7 @@ sub ProcessTicketDates { ); #Run through each field in this list. update the value if apropriate - foreach $field (@date_fields) { + foreach my $field (@date_fields) { my ( $code, $msg ); my $DateObj = RT::Date->new( $session{'CurrentUser'} ); @@ -1098,11 +1307,9 @@ Returns an array of results messages. =cut sub ProcessTicketLinks { - my %args = ( - TicketObj => undef, - ARGSRef => undef, - @_ - ); + my %args = ( TicketObj => undef, + ARGSRef => undef, + @_ ); my $Ticket = $args{'TicketObj'}; my $ARGSRef = $args{'ARGSRef'}; @@ -1118,11 +1325,9 @@ sub ProcessTicketLinks { push @results, "Trying to delete: Base: $base Target: $target Type $type"; - my ( $val, $msg ) = $Ticket->DeleteLink( - Base => $base, - Type => $type, - Target => $target - ); + my ( $val, $msg ) = $Ticket->DeleteLink( Base => $base, + Type => $type, + Target => $target ); push @results, $msg; @@ -1133,26 +1338,23 @@ sub ProcessTicketLinks { my @linktypes = qw( DependsOn MemberOf RefersTo ); foreach my $linktype (@linktypes) { - - for my $luri ( split ( / /, $ARGSRef->{ $Ticket->Id . "-$linktype" } ) ) - { - $luri =~ s/\s*$//; # Strip trailing whitespace - my ( $val, $msg ) = $Ticket->AddLink( - Target => $luri, - Type => $linktype - ); - push @results, $msg; + if ( $ARGSRef->{ $Ticket->Id . "-$linktype" } ) { + for my $luri ( split ( / /, $ARGSRef->{ $Ticket->Id . "-$linktype" } ) ) { + $luri =~ s/\s*$//; # Strip trailing whitespace + my ( $val, $msg ) = $Ticket->AddLink( Target => $luri, + Type => $linktype ); + push @results, $msg; + } } + if ( $ARGSRef->{ "$linktype-" . $Ticket->Id } ) { - for my $luri ( split ( / /, $ARGSRef->{ "$linktype-" . $Ticket->Id } ) ) - { - my ( $val, $msg ) = $Ticket->AddLink( - Base => $luri, - Type => $linktype - ); + for my $luri ( split ( / /, $ARGSRef->{ "$linktype-" . $Ticket->Id } ) ) { + my ( $val, $msg ) = $Ticket->AddLink( Base => $luri, + Type => $linktype ); - push @results, $msg; - } + push @results, $msg; + } + } } #Merge if we need to @@ -1167,121 +1369,9 @@ sub ProcessTicketLinks { # }}} -# {{{ sub ProcessTicketObjectKeywords - -=head2 ProcessTicketObjectKeywords ( TicketObj => $Ticket, ARGSRef => \%ARGS ); - -Returns an array of results messages. - -=cut - -sub ProcessTicketObjectKeywords { - my %args = ( - TicketObj => undef, - ARGSRef => undef, - @_ - ); - - my $TicketObj = $args{'TicketObj'}; - my $ARGSRef = $args{'ARGSRef'}; - - my (@results); - - # {{{ set ObjectKeywords. - - my $KeywordSelects = $TicketObj->QueueObj->KeywordSelects; - - # iterate through all the keyword selects for this queue - while ( my $KeywordSelect = $KeywordSelects->Next ) { - - # {{{ do some setup - - # if we have KeywordSelectMagic for this keywordselect: - next - unless - defined $ARGSRef->{ 'KeywordSelectMagic' . $KeywordSelect->id }; - - # Lets get a hash of the possible values to work with - my $value = $ARGSRef->{ 'KeywordSelect' . $KeywordSelect->id } || []; - - #lets get all those values in a hash. regardless of # of entries - #we'll use this for adding and deleting keywords from this object. - my %values = map { $_ => 1 } ref($value) ? @{$value} : ($value); - - # Load up the ObjectKeywords for this KeywordSelect for this ticket - my $ObjectKeys = $TicketObj->KeywordsObj( $KeywordSelect->id ); - - # }}} - # {{{ add new keywords - - foreach my $key ( keys %values ) { - - #unless the ticket has that keyword for that keyword select, - unless ( $ObjectKeys->HasEntry($key) ) { - - #Add the keyword - my ( $result, $msg ) = $TicketObj->AddKeyword( - Keyword => $key, - KeywordSelect => $KeywordSelect->id - ); - push ( @results, $msg ); - } - } - - # }}} - # {{{ Delete unused keywords - - #redo this search, so we don't ask it to delete things that are already gone - # such as when a single keyword select gets its value changed. - $ObjectKeys = $TicketObj->KeywordsObj( $KeywordSelect->id ); - - while ( my $TicketKey = $ObjectKeys->Next ) { - - # if the hash defined above doesn\'t contain the keyword mentioned, - unless ( $values{ $TicketKey->Keyword } ) { - - #I'd really love to just call $keyword->Delete, but then - # we wouldn't get a transaction recorded - my ( $result, $msg ) = $TicketObj->DeleteKeyword( - Keyword => $TicketKey->Keyword, - KeywordSelect => $KeywordSelect->id - ); - push ( @results, $msg ); - } - } - - # }}} - } - - #Iterate through the keyword selects for BulkManipulator style access - while ( my $KeywordSelect = $KeywordSelects->Next ) { - if ( $ARGSRef->{ "AddToKeywordSelect" . $KeywordSelect->Id } ) { - - #Add the keyword - my ( $result, $msg ) = $TicketObj->AddKeyword( - Keyword => - $ARGSRef->{ "AddToKeywordSelect" . $KeywordSelect->Id }, - KeywordSelect => $KeywordSelect->id - ); - push ( @results, $msg ); - } - if ( $ARGSRef->{ "DeleteFromKeywordSelect" . $KeywordSelect->Id } ) { - - #Delete the keyword - my ( $result, $msg ) = $TicketObj->DeleteKeyword( - Keyword => - $ARGSRef->{ "DeleteFromKeywordSelect" . $KeywordSelect->Id }, - KeywordSelect => $KeywordSelect->id - ); - push ( @results, $msg ); - } - } - - # }}} - - return (@results); -} - -# }}} +eval "require RT::Interface::Web_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Web_Vendor.pm}); +eval "require RT::Interface::Web_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Web_Local.pm}); 1; diff --git a/rt/lib/RT/Link.pm b/rt/lib/RT/Link.pm index 885ffe3ed..962c378a8 100644 --- a/rt/lib/RT/Link.pm +++ b/rt/lib/RT/Link.pm @@ -1,373 +1,302 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Link.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-1999 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Link - an RT Link object +RT::Link -=head1 SYNOPSIS - use RT::Link; +=head1 SYNOPSIS =head1 DESCRIPTION -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in Ticket other similar objects. - =head1 METHODS +=cut -=begin testing +package RT::Link; +use RT::Record; -ok (require RT::TestHarness); -ok (require RT::Link); -=end testing +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -=cut +sub _Init { + my $self = shift; -package RT::Link; -use RT::Record; -use Carp; -@ISA= qw(RT::Record); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Links"; - return ($self->SUPER::_Init(@_)); + $self->Table('Links'); + $self->SUPER::_Init(@_); } -# }}} -# {{{ sub Create -=head2 Create PARAMHASH -Create a new link object. Takes 'Base', 'Target' and 'Type'. -Returns undef on failure or a Link Id on success. + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(240) 'Base'. + varchar(240) 'Target'. + varchar(20) 'Type'. + int(11) 'LocalTarget'. + int(11) 'LocalBase'. =cut -sub Create { + + + +sub Create { my $self = shift; - my %args = ( Base => undef, - Target => undef, - Type => undef, - @_ # get the real argumentlist - ); - - my $BaseURI = $self->CanonicalizeURI($args{'Base'}); - my $TargetURI = $self->CanonicalizeURI($args{'Target'}); - - unless (defined $BaseURI) { - $RT::Logger->warning ("$self couldn't resolve base:'".$args{'Base'}. - "' into a URI\n"); - return (undef); - } - unless (defined $TargetURI) { - $RT::Logger->warning ("$self couldn't resolve target:'".$args{'Target'}. - "' into a URI\n"); - return(undef); - } - - my $LocalBase = $self->_IsLocal($BaseURI); - my $LocalTarget = $self->_IsLocal($TargetURI); - my $id = $self->SUPER::Create(Base => "$BaseURI", - Target => "$TargetURI", - LocalBase => $LocalBase, - LocalTarget => $LocalTarget, - Type => $args{'Type'}); - return ($id); + my %args = ( + Base => '', + Target => '', + Type => '', + LocalTarget => '0', + LocalBase => '0', + + @_); + $self->SUPER::Create( + Base => $args{'Base'}, + Target => $args{'Target'}, + Type => $args{'Type'}, + LocalTarget => $args{'LocalTarget'}, + LocalBase => $args{'LocalBase'}, +); + } -# }}} - -# {{{ sub Load -=head2 Load - Load an RT::Link object from the database. Takes one parameter or three. - One parameter is the id of an entry in the links table. Three parameters are a tuple of (base, linktype, target); +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) =cut -sub Load { - my $self = shift; - my $identifier = shift; - my $linktype = shift if (@_); - my $target = shift if (@_); - - if ($target) { - my $BaseURI = $self->CanonicalizeURI($identifier); - my $TargetURI = $self->CanonicalizeURI($target); - $self->LoadByCols( Base => $BaseURI, - Type => $linktype, - Target => $TargetURI - ) || return (0, "Couldn't load link"); - } - - elsif ($identifier =~ /^\d+$/) { - $self->LoadById($identifier) || - return (0, "Couldn't load link"); - } - else { - return (0, "That's not a numerical id"); - } -} -# }}} +=item Base -# {{{ sub TargetObj +Returns the current value of Base. +(In the database, Base is stored as varchar(240).) -=head2 TargetObj -=cut -sub TargetObj { - my $self = shift; - return $self->_TicketObj('base',$self->Target); -} -# }}} +=item SetBase VALUE + -# {{{ sub BaseObj +Set Base to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Base will be stored as a varchar(240).) -=head2 BaseObj =cut -sub BaseObj { - my $self = shift; - return $self->_TicketObj('target',$self->Base); -} -# }}} - -# {{{ sub _TicketObj -sub _TicketObj { - my $self = shift; - my $name = shift; - my $ref = shift; - my $tag="$name\_obj"; - - unless (exists $self->{$tag}) { - - $self->{$tag}=RT::Ticket->new($self->CurrentUser); - - #If we can get an actual ticket, load it up. - if ($self->_IsLocal($ref)) { - $self->{$tag}->Load($ref); - } - } - return $self->{$tag}; -} -# }}} - -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - LocalBase => 'read', - LocalTarget => 'read', - Base => 'read', - Target => 'read', - Type => 'read', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} -# }}} +=item Target -# Static methods: +Returns the current value of Target. +(In the database, Target is stored as varchar(240).) -# {{{ sub BaseIsLocal -=head2 BaseIsLocal -Returns true if the base of this link is a local ticket +=item SetTarget VALUE + + +Set Target to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Target will be stored as a varchar(240).) + =cut -sub BaseIsLocal { - my $self = shift; - return $self->_IsLocal($self->Base); -} -# }}} +=item Type -# {{{ sub TargetIsLocal +Returns the current value of Type. +(In the database, Type is stored as varchar(20).) -=head2 TargetIsLocal -Returns true if the target of this link is a local ticket + +=item SetType VALUE + + +Set Type to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Type will be stored as a varchar(20).) + =cut -sub TargetIsLocal { - my $self = shift; - return $self->_IsLocal($self->Target); -} -# }}} +=item LocalTarget + +Returns the current value of LocalTarget. +(In the database, LocalTarget is stored as int(11).) + + + +=item SetLocalTarget VALUE -# {{{ sub _IsLocal -=head2 _IsLocal URI +Set LocalTarget to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, LocalTarget will be stored as a int(11).) -When handed a URI returns the local ticket id if it\'s local. otherwise returns undef. =cut -sub _IsLocal { - my $self = shift; - my $URI=shift; - unless ($URI) { - $RT::Logger->warning ("$self _IsLocal called without a URI\n"); - return (undef); - } - # TODO: More thorough check - if ($URI =~ /^$RT::TicketBaseURI(\d+)$/) { - return($1); - } - else { - return (undef); - } -} -# }}} + +=item LocalBase + +Returns the current value of LocalBase. +(In the database, LocalBase is stored as int(11).) + -# {{{ sub BaseAsHREF +=item SetLocalBase VALUE -=head2 BaseAsHREF -Returns an HTTP url to access the base of this link +Set LocalBase to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, LocalBase will be stored as a int(11).) + =cut -sub BaseAsHREF { - my $self = shift; - return $self->AsHREF($self->Base); -} -# }}} -# {{{ sub TargetAsHREF +=item LastUpdatedBy -=head2 TargetAsHREF +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) -return an HTTP url to access the target of this link =cut -sub TargetAsHREF { - my $self = shift; - return $self->AsHREF($self->Target); -} -# }}} -# {{{ sub AsHREF - Converts Link URIs to HTTP URLs -=head2 URI +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) -Takes a URI and returns an http: url to access that object. =cut -sub AsHREF { - my $self=shift; - my $URI=shift; - if ($self->_IsLocal($URI)) { - my $url=$RT::WebURL . "Ticket/Display.html?id=$URI"; - return($url); - } - else { - my ($protocol) = $URI =~ m|(.*?)://|; - unless (exists $RT::URI2HTTP{$protocol}) { - $RT::Logger->warning("Linking for protocol $protocol not defined in the config file!"); - return(""); - } - return $RT::URI2HTTP{$protocol}->($URI); - } -} -# }}} - -# {{{ sub GetContent - gets the content from a link -sub GetContent { - my ($self, $URI)= @_; - if ($self->_IsLocal($URI)) { - die "stub"; - } else { - # Find protocol - if ($URI =~ m|^(.*?)://|) { - if (exists $RT::ContentFromURI{$1}) { - return $RT::ContentFromURI{$1}->($URI); - } else { - warn "No sub exists for fetching the content from a $1 in $URI"; - } - } else { - warn "No protocol specified in $URI"; - } - } -} -# }}} -# {{{ sub CanonicalizeURI +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) -=head2 CanonicalizeURI -Takes a single argument: some form of ticket identifier. -Returns its canonicalized URI. +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) -Bug: ticket aliases can't have :// in them. URIs must have :// in them. =cut -sub CanonicalizeURI { - my $self = shift; - my $id = shift; - - - #If it's a local URI, load the ticket object and return its URI - if ($id =~ /^$RT::TicketBaseURI/) { - my $ticket = new RT::Ticket($self->CurrentUser); - $ticket->Load($id); - #If we couldn't find a ticket, return undef. - return undef unless (defined $ticket->Id); - #$RT::Logger->debug("$self -> CanonicalizeURI was passed $id and returned ".$ticket->URI ." (uri)\n"); - return ($ticket->URI); - } - #If it's a remote URI, we're going to punt for now - elsif ($id =~ '://' ) { - return ($id); - } - - #If the base is an integer, load it as a ticket - elsif ( $id =~ /^\d+$/ ) { - - #$RT::Logger->debug("$self -> CanonicalizeURI was passed $id. It's a ticket id.\n"); - my $ticket = new RT::Ticket($self->CurrentUser); - $ticket->Load($id); - #If we couldn't find a ticket, return undef. - return undef unless (defined $ticket->Id); - #$RT::Logger->debug("$self returned ".$ticket->URI ." (id #)\n"); - return ($ticket->URI); - } - - #It's not a URI. It's not a numerical ticket ID - else { + + +sub _ClassAccessible { + { - #If we couldn't find a ticket, return undef. - return( undef); - - } + id => + {read => 1, type => 'int(11)', default => ''}, + Base => + {read => 1, write => 1, type => 'varchar(240)', default => ''}, + Target => + {read => 1, write => 1, type => 'varchar(240)', default => ''}, + Type => + {read => 1, write => 1, type => 'varchar(20)', default => ''}, + LocalTarget => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + LocalBase => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + LastUpdatedBy => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + LastUpdated => + {read => 1, auto => 1, type => 'datetime', default => ''}, + Creator => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Created => + {read => 1, auto => 1, type => 'datetime', default => ''}, - -} + } +}; + + + eval "require RT::Link_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Link_Overlay.pm}) { + die $@; + }; + + eval "require RT::Link_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Link_Vendor.pm}) { + die $@; + }; + + eval "require RT::Link_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Link_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::Link_Overlay, RT::Link_Vendor, RT::Link_Local + +=cut -# }}} 1; - diff --git a/rt/lib/RT/Link_Overlay.pm b/rt/lib/RT/Link_Overlay.pm new file mode 100644 index 000000000..ac1bc370c --- /dev/null +++ b/rt/lib/RT/Link_Overlay.pm @@ -0,0 +1,360 @@ +# 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. +# +# 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::Link - an RT Link object + +=head1 SYNOPSIS + + use RT::Link; + +=head1 DESCRIPTION + +This module should never be called directly by client code. it's an internal module which +should only be accessed through exported APIs in Ticket other similar objects. + +=head1 METHODS + + +=begin testing + + +use RT::Link; +my $link = RT::Link->new($RT::SystemUser); + + +ok (ref $link); +ok (UNIVERSAL::isa($link, 'RT::Link')); +ok (UNIVERSAL::isa($link, 'RT::Base')); +ok (UNIVERSAL::isa($link, 'RT::Record')); +ok (UNIVERSAL::isa($link, 'DBIx::SearchBuilder::Record')); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + + +use Carp; +use RT::URI; + + +# {{{ sub Create + +=head2 Create PARAMHASH + +Create a new link object. Takes 'Base', 'Target' and 'Type'. +Returns undef on failure or a Link Id on success. + +=cut + +sub Create { + my $self = shift; + my %args = ( Base => undef, + Target => undef, + Type => undef, + @_ ); + + my $base = RT::URI->new( $self->CurrentUser ); + $base->FromURI( $args{'Base'} ); + + unless ( $base->Scheme ) { + $RT::Logger->warning( "$self couldn't resolve base:'" + . $args{'Base'} . " - " + . $base->Scheme + . "' into a URI\n" ); + + #use Data::Dumper; + #$RT::Logger->warning(scalar Dumper $base); + return (undef); + } + + my $target = RT::URI->new( $self->CurrentUser ); + $target->FromURI( $args{'Target'} ); + + unless ( $target->Resolver ) { + $RT::Logger->warning( "$self couldn't resolve target:'" + . $args{'Target'} . " - " + . "' into a URI\n" ); + + #use Data::Dumper; + #$RT::Logger->warning(scalar Dumper $target); + return (undef); + } + + my $base_id = 0; + my $target_id = 0; + + + + + if ( $base->IsLocal ) { + unless (UNIVERSAL::can($base->Object, 'Id')) { + return (undef, $self->loc("[_1] appears to be a local object, but can't be found in the database", $args{'Base'})); + + } + $base_id = $base->Object->Id; + } + if ( $target->IsLocal ) { + unless (UNIVERSAL::can($target->Object, 'Id')) { + return (undef, $self->loc("[_1] appears to be a local object, but can't be found in the database", $args{'Target'})); + + } + $target_id = $target->Object->Id; + } + + # {{{ We don't want references to ourself + if ( $base->URI eq $target->URI ) { + return ( 0, $self->loc("Can't link a ticket to itself") ); + } + + # }}} + + my ( $id, $msg ) = $self->SUPER::Create( Base => $base->URI, + Target => $target->URI, + LocalBase => $base_id, + LocalTarget => $target_id, + Type => $args{'Type'} ); + return ( $id, $msg ); +} + +# }}} + # {{{ sub LoadByParams + +=head2 LoadByParams + + Load an RT::Link object from the database. Takes three parameters + + Base => undef, + Target => undef, + Type =>undef + + Base and Target are expected to be integers which refer to Tickets or URIs + Type is the link type + +=cut + +sub LoadByParams { + my $self = shift; + my %args = ( Base => undef, + Target => undef, + Type => undef, + @_ ); + + my $base = RT::URI->new($self->CurrentUser); + $base->FromURI( $args{'Base'} ); + + my $target = RT::URI->new($self->CurrentUser); + $target->FromURI( $args{'Target'} ); + + unless ($base->Resolver && $target->Resolver) { + return ( 0, $self->loc("Couldn't load link") ); + } + + + my ( $id, $msg ) = $self->LoadByCols( Base => $base->URI, + Type => $args{'Type'}, + Target => $target->URI ); + + unless ($id) { + return ( 0, $self->loc("Couldn't load link") ); + } +} + +# }}} +# {{{ sub Load + +=head2 Load + + Load an RT::Link object from the database. Takes one parameter, the id of an entry in the links table. + + +=cut + +sub Load { + my $self = shift; + my $identifier = shift; + + + + + if ( $identifier !~ /^\d+$/ ) { + return ( 0, $self->loc("That's not a numerical id") ); + } + else { + my ( $id, $msg ) = $self->LoadById($identifier); + unless ( $self->Id ) { + return ( 0, $self->loc("Couldn't load link") ); + } + return ( $id, $msg ); + } +} + +# }}} + + +# {{{ TargetURI + +=head2 TargetURI + +returns an RT::URI object for the "Target" of this link. + +=cut + +sub TargetURI { + my $self = shift; + my $URI = RT::URI->new($self->CurrentUser); + $URI->FromURI($self->Target); + return ($URI); +} + +# }}} +# {{{ sub TargetObj + +=head2 TargetObj + +=cut + +sub TargetObj { + my $self = shift; + return $self->TargetURI->Object; +} +# }}} + +# {{{ BaseURI + +=head2 BaseURI + +returns an RT::URI object for the "Base" of this link. + +=cut + +sub BaseURI { + my $self = shift; + my $URI = RT::URI->new($self->CurrentUser); + $URI->FromURI($self->Base); + return ($URI); +} + +# }}} +# {{{ sub BaseObj + +=head2 BaseObj + +=cut + +sub BaseObj { + my $self = shift; + return $self->BaseURI->Object; +} +# }}} + + + +# Static methods: + +# {{{ sub BaseIsLocal + +=head2 BaseIsLocal + +Returns true if the base of this link is a local ticket + +=cut + +sub BaseIsLocal { + my $self = shift; + $RT::Logger->crit("Link::BaseIsLocal is deprecated in favor of Link->BaseURI->IsLocal"); + return $self->BaseURI->IsLocal; +} + +# }}} + +# {{{ sub TargetIsLocal + +=head2 TargetIsLocal + +Returns true if the target of this link is a local ticket + +=cut + +sub TargetIsLocal { + my $self = shift; + $RT::Logger->crit("Link::BaseIsLocal is deprecated in favor of Link->BaseURI->IsLocal"); + return $self->TargetURI->IsLocal; +} + +# }}} + + +# {{{ sub BaseAsHREF + +=head2 BaseAsHREF + +Returns an HTTP url to access the base of this link + +=cut + +sub BaseAsHREF { + my $self = shift; + $RT::Logger->crit("Link::BaseAsHREF deprecated in favor of ->BaseURI->AsHREF"); + return $self->BaseURI->HREF; +} +# }}} + +# {{{ sub TargetAsHREF + +=head2 TargetAsHREF + +return an HTTP url to access the target of this link + +=cut + +sub TargetAsHREF { + my $self = shift; + $RT::Logger->crit("Link::TargetAsHREF deprecated in favor of ->TargetURI->AsHREF"); + return $self->TargetURI->HREF; +} +# }}} + +# {{{ sub AsHREF - Converts Link URIs to HTTP URLs + +=head2 URI + +Takes a URI and returns an http: url to access that object. + +=cut + + +sub AsHREF { + my $self=shift; + + $RT::Logger->crit("AsHREF is gone. look at URI::HREF to figure out what to do with \$URI"); +} + +# }}} + +1; + diff --git a/rt/lib/RT/Links.pm b/rt/lib/RT/Links.pm index a8180caf0..7a1773af9 100644 --- a/rt/lib/RT/Links.pm +++ b/rt/lib/RT/Links.pm @@ -1,90 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Links.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Links - A collection of Link objects +=head1 NAME + RT::Links -- Class Description + =head1 SYNOPSIS - use RT::Links; - my $links = new RT::Links($CurrentUser); + use RT::Links =head1 DESCRIPTION =head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Links); - -=end testing - =cut package RT::Links; -use RT::EasySearch; + +use RT::SearchBuilder; use RT::Link; -@ISA= qw(RT::EasySearch); +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'table'} = "Links"; - $self->{'primary_key'} = "id"; +sub _Init { + my $self = shift; + $self->{'table'} = 'Links'; + $self->{'primary_key'} = 'id'; - return ( $self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub Limit -sub Limit { - my $self = shift; - my %args = ( ENTRYAGGREGATOR => 'AND', - OPERATOR => '=', - @_); - - #if someone's trying to search for tickets, try to resolve the uris for searching. - - if ( ( $args{'OPERATOR'} eq '=') and - ( $args{'FIELD'} eq 'Base') or ($args{'FIELD'} eq 'Target') - ) { - my $dummy = $self->NewItem(); - $uri = $dummy->CanonicalizeURI($args{'VALUE'}); - } - - - # If we're limiting by target, order by base - # (Order by the thing that's changing) - - if ( ($args{'FIELD'} eq 'Target') or - ($args{'FIELD'} eq 'LocalTarget') ) { - $self->OrderBy (ALIAS => 'main', - FIELD => 'Base', - ORDER => 'ASC'); - } - elsif ( ($args{'FIELD'} eq 'Base') or - ($args{'FIELD'} eq 'LocalBase') ) { - $self->OrderBy (ALIAS => 'main', - FIELD => 'Target', - ORDER => 'ASC'); - } - - - $self->SUPER::Limit(%args); + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub NewItem -sub NewItem { + +=item NewItem + +Returns an empty new RT::Link item + +=cut + +sub NewItem { my $self = shift; return(RT::Link->new($self->CurrentUser)); } -# }}} - 1; + eval "require RT::Links_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Links_Overlay.pm}) { + die $@; + }; + + eval "require RT::Links_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Links_Vendor.pm}) { + die $@; + }; + + eval "require RT::Links_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Links_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::Links_Overlay, RT::Links_Vendor, RT::Links_Local + +=cut + + +1; diff --git a/rt/lib/RT/Links_Overlay.pm b/rt/lib/RT/Links_Overlay.pm new file mode 100644 index 000000000..d788a4275 --- /dev/null +++ b/rt/lib/RT/Links_Overlay.pm @@ -0,0 +1,125 @@ +# 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. +# +# 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::Links - A collection of Link objects + +=head1 SYNOPSIS + + use RT::Links; + my $links = new RT::Links($CurrentUser); + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::Links); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); +use RT::URI; + +# {{{ sub Limit +sub Limit { + my $self = shift; + my %args = ( ENTRYAGGREGATOR => 'AND', + OPERATOR => '=', + @_); + + #if someone's trying to search for tickets, try to resolve the uris for searching. + + if ( ( $args{'OPERATOR'} eq '=') and + ( $args{'FIELD'} eq 'Base') or ($args{'FIELD'} eq 'Target') + ) { + my $dummy = RT::URI->new($self->CurrentUser); + $dummy->FromURI($args{'VALUE'}); + # $uri = $dummy->URI; + } + + + # If we're limiting by target, order by base + # (Order by the thing that's changing) + + if ( ($args{'FIELD'} eq 'Target') or + ($args{'FIELD'} eq 'LocalTarget') ) { + $self->OrderBy (ALIAS => 'main', + FIELD => 'Base', + ORDER => 'ASC'); + } + elsif ( ($args{'FIELD'} eq 'Base') or + ($args{'FIELD'} eq 'LocalBase') ) { + $self->OrderBy (ALIAS => 'main', + FIELD => 'Target', + ORDER => 'ASC'); + } + + + $self->SUPER::Limit(%args); +} +# }}} + +# {{{ LimitRefersTo + +=head2 LimitRefersTo URI + +find all things that refer to URI + +=cut + +sub LimitRefersTo { + my $self = shift; + my $URI = shift; + + $self->Limit(FIELD => 'Type', VALUE => 'RefersTo'); + $self->Limit(FIELD => 'Target', VALUE => $URI); +} + +# }}} +# {{{ LimitReferredToBy + +=head2 LimitReferredToBy URI + +find all things that URI refers to + +=cut + +sub LimitReferredToBy { + my $self = shift; + my $URI = shift; + + $self->Limit(FIELD => 'Type', VALUE => 'RefersTo'); + $self->Limit(FIELD => 'Base', VALUE => $URI); +} + +# }}} +1; + diff --git a/rt/lib/RT/Principal.pm b/rt/lib/RT/Principal.pm new file mode 100644 index 000000000..cffee4cb2 --- /dev/null +++ b/rt/lib/RT/Principal.pm @@ -0,0 +1,212 @@ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + + +=head1 NAME + +RT::Principal + + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=head1 METHODS + +=cut + +package RT::Principal; +use RT::Record; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('Principals'); + $self->SUPER::_Init(@_); +} + + + + + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(16) 'PrincipalType'. + int(11) 'ObjectId'. + smallint(6) 'Disabled'. + +=cut + + + + +sub Create { + my $self = shift; + my %args = ( + PrincipalType => '', + ObjectId => '', + Disabled => '0', + + @_); + $self->SUPER::Create( + PrincipalType => $args{'PrincipalType'}, + ObjectId => $args{'ObjectId'}, + Disabled => $args{'Disabled'}, +); + +} + + + +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + + +=cut + + +=item PrincipalType + +Returns the current value of PrincipalType. +(In the database, PrincipalType is stored as varchar(16).) + + + +=item SetPrincipalType VALUE + + +Set PrincipalType to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, PrincipalType will be stored as a varchar(16).) + + +=cut + + +=item ObjectId + +Returns the current value of ObjectId. +(In the database, ObjectId is stored as int(11).) + + + +=item SetObjectId VALUE + + +Set ObjectId 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).) + + +=cut + + +=item Disabled + +Returns the current value of Disabled. +(In the database, Disabled is stored as smallint(6).) + + + +=item SetDisabled VALUE + + +Set Disabled to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Disabled will be stored as a smallint(6).) + + +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + PrincipalType => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + ObjectId => + {read => 1, write => 1, type => 'int(11)', default => ''}, + Disabled => + {read => 1, write => 1, type => 'smallint(6)', default => '0'}, + + } +}; + + + eval "require RT::Principal_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Principal_Overlay.pm}) { + die $@; + }; + + eval "require RT::Principal_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Principal_Vendor.pm}) { + die $@; + }; + + eval "require RT::Principal_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Principal_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::Principal_Overlay, RT::Principal_Vendor, RT::Principal_Local + +=cut + + +1; diff --git a/rt/lib/RT/Principal_Overlay.pm b/rt/lib/RT/Principal_Overlay.pm new file mode 100644 index 000000000..d2782b730 --- /dev/null +++ b/rt/lib/RT/Principal_Overlay.pm @@ -0,0 +1,557 @@ +# 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. +# +# 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(%_ACL_KEY_CACHE); + +use RT::Group; +use RT::User; + +# {{{ IsGroup + +=head2 IsGroup + +Returns true if this principal is a group. +Returns undef, otherwise + +=cut + +sub IsGroup { + my $self = shift; + if ($self->PrincipalType eq 'Group') { + return(1); + } + else { + return undef; + } +} + +# }}} + +# {{{ IsUser + +=head2 IsUser + +Returns true if this principal is a User. +Returns undef, otherwise + +=cut + +sub IsUser { + my $self = shift; + if ($self->PrincipalType eq 'User') { + return(1); + } + else { + return undef; + } +} + +# }}} + +# {{{ Object + +=head2 Object + +Returns the user or group associated with this principal + +=cut + +sub Object { + my $self = shift; + + unless ($self->{'object'}) { + if ($self->IsUser) { + $self->{'object'} = RT::User->new($self->CurrentUser); + } + elsif ($self->IsGroup) { + $self->{'object'} = RT::Group->new($self->CurrentUser); + } + else { + $RT::Logger->crit("Found a principal (".$self->Id.") that was neither a user nor a group"); + return(undef); + } + $self->{'object'}->Load($self->ObjectId()); + } + return ($self->{'object'}); + + +} +# }}} + +# {{{ ACL Related routines + +# {{{ GrantRight + +=head2 GrantRight { Right => RIGHTNAME, Object => undef } + +A helper function which calls RT::ACE->Create + +=cut + +sub GrantRight { + my $self = shift; + my %args = ( Right => undef, + Object => undef, + @_); + + + #if we haven't specified any sort of right, we're talking about a global right + if (!defined $args{'Object'} && !defined $args{'ObjectId'} && !defined $args{'ObjectType'}) { + $args{'Object'} = $RT::System; + } + + unless ($args{'Right'}) { + return(0, $self->loc("Invalid Right")); + } + + + #ACL check handled in ACE.pm + my $ace = RT::ACE->new( $self->CurrentUser ); + + + my $type = $self->_GetPrincipalTypeForACL(); + + # If it's a user, we really want to grant the right to their + # user equivalence group + return ( $ace->Create(RightName => $args{'Right'}, + Object => $args{'Object'}, + PrincipalType => $type, + PrincipalId => $self->Id + ) ); +} +# }}} + +# {{{ RevokeRight + +=head2 RevokeRight { Right => "RightName", Object => "object" } + +Delete a right that a user has + +=cut + +sub RevokeRight { + + my $self = shift; + my %args = ( + Right => undef, + Object => undef, + @_ + ); + + #if we haven't specified any sort of right, we're talking about a global right + if (!defined $args{'Object'} && !defined $args{'ObjectId'} && !defined $args{'ObjectType'}) { + $args{'Object'} = $RT::System; + } + #ACL check handled in ACE.pm + my $type = $self->_GetPrincipalTypeForACL(); + + my $ace = RT::ACE->new( $self->CurrentUser ); + $ace->LoadByValues( + RightName => $args{'Right'}, + Object => $args{'Object'}, + PrincipalType => $type, + PrincipalId => $self->Id + ); + + unless ( $ace->Id ) { + return ( 0, $self->loc("ACE not found") ); + } + return ( $ace->Delete ); +} + +# }}} + + + +# {{{ sub HasRight + +=head2 sub HasRight (Right => 'right' Object => undef) + + +Checks to see whether this principal has the right "Right" for the Object +specified. If the Object parameter is omitted, checks to see whether the +user has the right globally. + +This still hard codes to check to see if a user has queue-level rights +if we ask about a specific ticket. + + +This takes the params: + + Right => name of a right + + And either: + + Object => an RT style object (->id will get its id) + + + + +Returns 1 if a matching ACE was found. + +Returns undef if no ACE was found. + +=cut + +sub HasRight { + + my $self = shift; + my %args = ( Right => undef, + Object => undef, + EquivObjects => undef, + @_ ); + + if ( $self->Disabled ) { + $RT::Logger->err( "Disabled User: " . $self->id . " failed access check for " . $args{'Right'} ); + return (undef); + } + + if ( !defined $args{'Right'} ) { + require Carp; + $RT::Logger->debug( Carp::cluck("HasRight called without a right") ); + return (undef); + } + + if ( defined( $args{'Object'} )) { + return (undef) unless (UNIVERSAL::can( $args{'Object'}, 'id' ) ); + push(@{$args{'EquivObjects'}}, $args{Object}); + } + elsif ( $args{'ObjectId'} && $args{'ObjectType'} ) { + $RT::Logger->crit(Carp::cluck("API not supprted")); + } + else { + $RT::Logger->crit("$self HasRight called with no valid object"); + return (undef); + } + + # If this object is a ticket, we care about ticket roles and queue roles + if ( (ref($args{'Object'}) eq 'RT::Ticket') && $args{'Object'}->Id) { + # this is a little bit hacky, but basically, now that we've done the ticket roles magic, we load the queue object + # and ask all the rest of our questions about the queue. + push (@{$args{'EquivObjects'}}, $args{'Object'}->QueueObj); + + } + + + # {{{ If we've cached a win or loss for this lookup say so + + # {{{ Construct a hashkey to cache decisions in + my $hashkey = do { + no warnings 'uninitialized'; + + # We don't worry about the hash ordering, as this is only + # temporarily used; also if the key changes it would be + # invalidated anyway. + join ( + ";:;", $self->Id, map { + $_, # the key of each arguments + ($_ eq 'EquivObjects') # for object arrayref... + ? map(_ReferenceId($_), @{$args{$_}}) # calculate each + : _ReferenceId( $args{$_} ) # otherwise just the value + } keys %args + ); + }; + # }}} + + #Anything older than 60 seconds needs to be rechecked + my $cache_timeout = ( time - 60 ); + + # {{{ if we've cached a positive result for this query, return 1 + if ( ( defined $self->_ACLCache->{"$hashkey"} ) + && ( $self->_ACLCache->{"$hashkey"}{'val'} == 1 ) + && ( defined $self->_ACLCache->{"$hashkey"}{'set'} ) + && ( $self->_ACLCache->{"$hashkey"}{'set'} > $cache_timeout ) ) { + + #$RT::Logger->debug("Cached ACL win for ". $args{'Right'}.$args{'Scope'}. $args{'AppliesTo'}."\n"); + return ( 1); + } + # }}} + + # {{{ if we've cached a negative result for this query return undef + elsif ( ( defined $self->_ACLCache->{"$hashkey"} ) + && ( $self->_ACLCache->{"$hashkey"}{'val'} == -1 ) + && ( defined $self->_ACLCache->{"$hashkey"}{'set'} ) + && ( $self->_ACLCache->{"$hashkey"}{'set'} > $cache_timeout ) ) { + + #$RT::Logger->debug("Cached ACL loss decision for ". $args{'Right'}.$args{'Scope'}. $args{'AppliesTo'}."\n"); + + return (undef); + } + # }}} + + # }}} + + + + # {{{ Out of date docs + + # We want to grant the right if: + + + # # The user has the right as a member of a system-internal or + # # user-defined group + # + # Find all records from the ACL where they're granted to a group + # of type "UserDefined" or "System" + # for the object "System or the object "Queue N" and the group we're looking + # at has the recursive member $self->Id + # + # # The user has the right based on a role + # + # Find all the records from ACL where they're granted to the role "foo" + # for the object "System" or the object "Queue N" and the group we're looking + # at is of domain ("RT::Queue-Role" and applies to the right queue) + # or ("RT::Ticket-Role" and applies to the right ticket) + # and the type is the same as the type of the ACL and the group has + # the recursive member $self->Id + # + + # }}} + + my ( $or_look_at_object_rights, $or_check_roles ); + my $right = $args{'Right'}; + + # {{{ Construct Right Match + + # If an object is defined, we want to look at rights for that object + + my @look_at_objects; + push (@look_at_objects, "ACL.ObjectType = 'RT::System'") + unless $self->can('_IsOverrideGlobalACL') and $self->_IsOverrideGlobalACL($args{Object}); + + + + foreach my $obj (@{$args{'EquivObjects'}}) { + next unless (UNIVERSAL::can($obj, 'id')); + my $type = ref($obj); + my $id = $obj->id; + push @look_at_objects, "(ACL.ObjectType = '$type' AND ACL.ObjectId = '$id')"; + } + + + # }}} + + # {{{ Build that honkin-big SQL query + + + + my $query_base = "SELECT ACL.id from ACL, Groups, Principals, CachedGroupMembers WHERE ". + # Only find superuser or rights with the name $right + "(ACL.RightName = 'SuperUser' OR ACL.RightName = '$right') ". + # Never find disabled groups. + "AND Principals.Disabled = 0 " . + "AND CachedGroupMembers.Disabled = 0 ". + "AND Principals.id = Groups.id " . # We always grant rights to Groups + + # See if the principal is a member of the group recursively or _is the rightholder_ + # never find recursively disabled group members + # also, check to see if the right is being granted _directly_ to this principal, + # as is the case when we want to look up group rights + "AND Principals.id = CachedGroupMembers.GroupId AND CachedGroupMembers.MemberId = '" . $self->Id . "' ". + + # Make sure the rights apply to the entire system or to the object in question + "AND ( ".join(' OR ', @look_at_objects).") "; + + + + # The groups query does the query based on group membership and individual user rights + + my $groups_query = $query_base . + + # limit the result set to groups of types ACLEquivalence (user) UserDefined, SystemInternal and Personal + "AND ( ( ACL.PrincipalId = Principals.id AND ACL.PrincipalType = 'Group' AND ". + "(Groups.Domain = 'SystemInternal' OR Groups.Domain = 'UserDefined' OR Groups.Domain = 'ACLEquivalence' OR Groups.Domain = 'Personal'))". + + " ) LIMIT 1"; + + my @roles; + foreach my $object (@{$args{'EquivObjects'}}) { + push (@roles, $self->_RolesForObject(ref($object), $object->id)); + } + + # The roles query does the query based on roles + my $roles_query; + if (@roles) { + $roles_query = $query_base . "AND ". + " ( (".join (' OR ', @roles)." ) ". + " AND Groups.Type = ACL.PrincipalType AND Groups.Id = Principals.id AND Principals.PrincipalType = 'Group') LIMIT 1"; + + } + + + + # }}} + + # {{{ Actually check the ACL by performing an SQL query + # $RT::Logger->debug("Now Trying $groups_query"); + my $hitcount = $self->_Handle->FetchResult($groups_query); + + # }}} + + # {{{ if there's a match, the right is granted + if ($hitcount) { + + # Cache a positive hit. + $self->_ACLCache->{"$hashkey"}{'set'} = time; + $self->_ACLCache->{"$hashkey"}{'val'} = 1; + return (1); + } + # }}} + # {{{ If there's no match on groups, try it on roles + else { + + $hitcount = $self->_Handle->FetchResult($roles_query); + + if ($hitcount) { + + # Cache a positive hit. + $self->_ACLCache->{"$hashkey"}{'set'} = time; + $self->_ACLCache->{"$hashkey"}{'val'} = 1; + return (1); + } + + else { + # cache a negative hit + $self->_ACLCache->{"$hashkey"}{'set'} = time; + $self->_ACLCache->{"$hashkey"}{'val'} = -1; + + return (undef); + } + } + # }}} +} + +# }}} + +# {{{ _RolesForObject + + + +=head2 _RolesForObject( $object_type, $object_id) + +Returns an SQL clause finding role groups for Objects + +=cut + + +sub _RolesForObject { + my $self = shift; + my $type = shift; + my $id = shift; + my $clause = "(Groups.Domain = '".$type."-Role' AND Groups.Instance = '" . $id. "') "; + + return($clause); +} + +# }}} + +# }}} + +# {{{ ACL caching + +# {{{ _ACLCache + +=head2 _ACLCache + +# Function: _ACLCache +# Type : private instance +# Args : none +# Lvalue : hash: ACLCache +# Desc : Returns a reference to the Key cache hash + +=cut + +sub _ACLCache { + return(\%_ACL_KEY_CACHE); +} + +# }}} + +# {{{ _InvalidateACLCache + +=head2 _InvalidateACLCache + +Cleans out and reinitializes the user rights key cache + +=cut + +sub _InvalidateACLCache { + %_ACL_KEY_CACHE = (); +} + +# }}} + +# }}} + + +# {{{ _GetPrincipalTypeForACL + +=head2 _GetPrincipalTypeForACL + +Gets the principal type. if it's a user, it's a user. if it's a role group and it has a Type, +return that. if it has no type, return group. + +=cut + +sub _GetPrincipalTypeForACL { + my $self = shift; + my $type; + if ($self->PrincipalType eq 'Group' && $self->Object->Domain =~ /Role$/) { + $type = $self->Object->Type; + } + else { + $type = $self->PrincipalType; + } + + return($type); +} + +# }}} + +# {{{ _ReferenceId + +=head2 _ReferenceId + +Returns a list uniquely representing an object or normal scalar. + +For scalars, its string value is returned; for objects that has an +id() method, its class name and Id are returned as a string seperated by a "-". + +=cut + +sub _ReferenceId { + my $scalar = shift; + + # just return the value for non-objects + return $scalar unless UNIVERSAL::can($scalar, 'id'); + + # an object -- return the class and id + return(ref($scalar)."-". $scalar->id); +} + +# }}} + +1; diff --git a/rt/lib/RT/Principals.pm b/rt/lib/RT/Principals.pm new file mode 100644 index 000000000..c45a4c734 --- /dev/null +++ b/rt/lib/RT/Principals.pm @@ -0,0 +1,115 @@ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + + +=head1 NAME + + RT::Principals -- Class Description + +=head1 SYNOPSIS + + use RT::Principals + +=head1 DESCRIPTION + + +=head1 METHODS + +=cut + +package RT::Principals; + +use RT::SearchBuilder; +use RT::Principal; + +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + + +sub _Init { + my $self = shift; + $self->{'table'} = 'Principals'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); +} + + +=item NewItem + +Returns an empty new RT::Principal item + +=cut + +sub NewItem { + my $self = shift; + return(RT::Principal->new($self->CurrentUser)); +} + + eval "require RT::Principals_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Principals_Overlay.pm}) { + die $@; + }; + + eval "require RT::Principals_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Principals_Vendor.pm}) { + die $@; + }; + + eval "require RT::Principals_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Principals_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::Principals_Overlay, RT::Principals_Vendor, RT::Principals_Local + +=cut + + +1; diff --git a/rt/lib/RT/Principals_Overlay.pm b/rt/lib/RT/Principals_Overlay.pm new file mode 100644 index 000000000..0d8c54c76 --- /dev/null +++ b/rt/lib/RT/Principals_Overlay.pm @@ -0,0 +1,52 @@ +# 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. +# +# 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::Principals - a collection of RT::Principal objects + +=head1 SYNOPSIS + + use RT::Principals; + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::Principals); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + + + + +1; diff --git a/rt/lib/RT/Queue.pm b/rt/lib/RT/Queue.pm index 1656903b3..b362c9f0d 100755 --- a/rt/lib/RT/Queue.pm +++ b/rt/lib/RT/Queue.pm @@ -1,944 +1,371 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Queue.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Queue - an RT Queue object +RT::Queue -=head1 SYNOPSIS - use RT::Queue; +=head1 SYNOPSIS =head1 DESCRIPTION - =head1 METHODS -=begin testing -use RT::TestHarness; - -use RT::Queue; - -=end testing - =cut - - package RT::Queue; -use RT::Record; - -@ISA= qw(RT::Record); - -use vars (@STATUS); - -@STATUS = qw(new open stalled resolved dead); - -=head2 StatusArray - -Returns an array of all statuses for this queue - -=cut - -sub StatusArray { - my $self = shift; - return (@STATUS); -} - - -=head2 IsValidStatus VALUE - -Returns true if VALUE is a valid status. Otherwise, returns 0 - -=for testing -my $q = new RT::Queue($RT::SystemUser); -ok($q->IsValidStatus('new')== 1, 'New is a valid status'); -ok($q->IsValidStatus('f00')== 0, 'f00 is not a valid status'); - -=cut - -sub IsValidStatus { - my $self = shift; - my $value = shift; - - my $retval = grep (/^$value$/, $self->StatusArray); - return ($retval); - -} - - - - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Queues"; - return ($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub _Accessible - -sub _Accessible { - my $self = shift; - my %Cols = ( Name => 'read/write', - CorrespondAddress => 'read/write', - Description => 'read/write', - CommentAddress => 'read/write', - InitialPriority => 'read/write', - FinalPriority => 'read/write', - DefaultDueIn => 'read/write', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto', - Disabled => 'read/write', - - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} - -# }}} +use RT::Record; -# {{{ sub Create -=head2 Create +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -Create takes the name of the new queue -If you pass the ACL check, it creates the queue and returns its queue id. +sub _Init { + my $self = shift; -=cut - -sub Create { - my $self = shift; - my %args = ( Name => undef, - CorrespondAddress => '', - Description => '', - CommentAddress => '', - InitialPriority => "0", - FinalPriority => "0", - DefaultDueIn => "0", - @_); - - unless ($self->CurrentUser->HasSystemRight('AdminQueue')) { #Check them ACLs - return (0, "No permission to create queues") - } - - unless ($self->ValidateName($args{'Name'})) { - return(0, 'Queue already exists'); - } - #TODO better input validation - - my $id = $self->SUPER::Create(%args); - unless ($id) { - return (0, 'Queue could not be created'); - } - - return ($id, "Queue $id created"); + $self->Table('Queues'); + $self->SUPER::_Init(@_); } -# }}} -# {{{ sub Delete -sub Delete { - my $self = shift; - return (0, 'Deleting this object would break referential integrity'); -} -# }}} -# {{{ sub SetDisabled +=item Create PARAMHASH -=head2 SetDisabled +Create takes a hash of values and creates a row in the database: -Takes a boolean. -1 will cause this queue to no longer be avaialble for tickets. -0 will re-enable this queue + varchar(200) 'Name'. + varchar(255) 'Description'. + varchar(120) 'CorrespondAddress'. + varchar(120) 'CommentAddress'. + int(11) 'InitialPriority'. + int(11) 'FinalPriority'. + int(11) 'DefaultDueIn'. + smallint(6) 'Disabled'. =cut -# }}} -# {{{ sub Load -=head2 Load -Takes either a numerical id or a textual Name and loads the specified queue. - -=cut - -sub Load { +sub Create { my $self = shift; - - my $identifier = shift; - if (!$identifier) { - return (undef); - } - - if ($identifier !~ /\D/) { - $self->SUPER::LoadById($identifier); - } - else { - $self->LoadByCol("Name", $identifier); - } - - return ($self->Id); + my %args = ( + Name => '', + Description => '', + CorrespondAddress => '', + CommentAddress => '', + InitialPriority => '0', + FinalPriority => '0', + DefaultDueIn => '0', + Disabled => '0', + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Description => $args{'Description'}, + CorrespondAddress => $args{'CorrespondAddress'}, + CommentAddress => $args{'CommentAddress'}, + InitialPriority => $args{'InitialPriority'}, + FinalPriority => $args{'FinalPriority'}, + DefaultDueIn => $args{'DefaultDueIn'}, + Disabled => $args{'Disabled'}, +); } -# }}} -# {{{ sub ValidateName -=head2 ValidateName NAME -Takes a queue name. Returns true if it's an ok name for -a new queue. Returns undef if there's already a queue by that name. +=item id -=cut +Returns the current value of id. +(In the database, id is stored as int(11).) -sub ValidateName { - my $self = shift; - my $name = shift; - - my $tempqueue = new RT::Queue($RT::SystemUser); - $tempqueue->Load($name); - - #If we couldn't load it :) - unless ($tempqueue->id()) { - return(1); - } - - #If this queue exists, return undef - #Avoid the ACL check. - if ($tempqueue->Name()){ - return(undef); - } - - #If the queue doesn't exist, return 1 - else { - return(1); - } - -} - - -# }}} - -# {{{ sub Templates - -=head2 Templates - -Returns an RT::Templates object of all of this queue's templates. =cut -sub Templates { - my $self = shift; - - my $templates = RT::Templates->new($self->CurrentUser); +=item Name - if ($self->CurrentUserHasRight('ShowTemplate')) { - $templates->LimitToQueue($self->id); - } - - return ($templates); -} - -# }}} +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) -# {{{ Dealing with watchers -# {{{ sub Watchers -=head2 Watchers +=item SetName VALUE -Watchers returns a Watchers object preloaded with this queue\'s watchers. -=cut +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) -sub Watchers { - my $self = shift; - - require RT::Watchers; - my $watchers =RT::Watchers->new($self->CurrentUser); - - if ($self->CurrentUserHasRight('SeeQueue')) { - $watchers->LimitToQueue($self->id); - } - - return($watchers); -} - -# }}} - -# {{{ sub WatchersAsString -=head2 WatchersAsString - -Returns a string of all queue watchers email addresses concatenated with ','s. =cut -sub WatchersAsString { - my $self=shift; - return($self->Watchers->EmailsAsString()); -} - -# }}} - -# {{{ sub AdminCcAsString -=head2 AdminCcAsString +=item Description -Takes nothing. returns a string: All Ticket/Queue AdminCcs. +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) -=cut -sub AdminCcAsString { - my $self=shift; - - return($self->AdminCc->EmailsAsString()); - } +=item SetDescription VALUE -# }}} -# {{{ sub CcAsString +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) -=head2 CcAsString - -B<Returns> String: All Queue Ccs as a comma delimited set of email addresses. =cut -sub CcAsString { - my $self=shift; - - return ($self->Cc->EmailsAsString()); -} - -# }}} - -# {{{ sub Cc - -=head2 Cc - -Takes nothing. -Returns a watchers object which contains this queue\'s Cc watchers -=cut +=item CorrespondAddress -sub Cc { - my $self = shift; - my $cc = $self->Watchers(); - if ($self->CurrentUserHasRight('SeeQueue')) { - $cc->LimitToCc(); - } - return ($cc); -} +Returns the current value of CorrespondAddress. +(In the database, CorrespondAddress is stored as varchar(120).) -# A helper function for Cc, so that we can call it from the ACL checks -# without going through acl checks. -sub _Cc { - my $self = shift; - my $cc = $self->Watchers(); - $cc->LimitToCc(); - return($cc); - -} -# }}} +=item SetCorrespondAddress VALUE -# {{{ sub AdminCc -=head2 AdminCc +Set CorrespondAddress to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, CorrespondAddress will be stored as a varchar(120).) -Takes nothing. -Returns this queue's administrative Ccs as an RT::Watchers object =cut -sub AdminCc { - my $self = shift; - my $admin_cc = $self->Watchers(); - if ($self->CurrentUserHasRight('SeeQueue')) { - $admin_cc->LimitToAdminCc(); - } - return($admin_cc); -} - -#helper function for AdminCc so we can call it without ACLs -sub _AdminCc { - my $self = shift; - my $admin_cc = $self->Watchers(); - $admin_cc->LimitToAdminCc(); - return($admin_cc); -} -# }}} +=item CommentAddress -# {{{ IsWatcher, IsCc, IsAdminCc - -# {{{ sub IsWatcher - -# a generic routine to be called by IsRequestor, IsCc and IsAdminCc - -=head2 IsWatcher - -Takes a param hash with the attributes Type and User. User is either a user object or string containing an email address. Returns true if that user or string -is a queue watcher. Returns undef otherwise - -=cut - -sub IsWatcher { - my $self = shift; - - my %args = ( Type => 'Requestor', - Id => undef, - Email => undef, - @_ - ); - #ACL check - can't do it. we need this method for ACL checks - # unless ($self->CurrentUserHasRight('SeeQueue')) { - # return(undef); - # } - - - my %cols = ('Type' => $args{'Type'}, - 'Scope' => 'Queue', - 'Value' => $self->Id - ); - if (defined ($args{'Id'})) { - if (ref($args{'Id'})){ #If it's a ref, assume it's an RT::User object; - #Dangerous but ok for now - $cols{'Owner'} = $args{'Id'}->Id; - } - elsif ($args{'Id'} =~ /^\d+$/) { # if it's an integer, it's an RT::User obj - $cols{'Owner'} = $args{'Id'}; - } - else { - $cols{'Email'} = $args{'Id'}; - } - } - - if (defined $args{'Email'}) { - $cols{'Email'} = $args{'Email'}; - } - - my ($description); - $description = join(":",%cols); - - #If we've cached a positive match... - if (defined $self->{'watchers_cache'}->{"$description"}) { - if ($self->{'watchers_cache'}->{"$description"} == 1) { - return(1); - } - #If we've cached a negative match... - else { - return(undef); - } - } - - require RT::Watcher; - my $watcher = new RT::Watcher($self->CurrentUser); - $watcher->LoadByCols(%cols); - - - if ($watcher->id) { - $self->{'watchers_cache'}->{"$description"} = 1; - return(1); - } - else { - $self->{'watchers_cache'}->{"$description"} = 0; - return(undef); - } - -} +Returns the current value of CommentAddress. +(In the database, CommentAddress is stored as varchar(120).) -# }}} -# {{{ sub IsCc -=head2 IsCc +=item SetCommentAddress VALUE -Takes a string. Returns true if the string is a Cc watcher of the current queue -=item Bugs +Set CommentAddress to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, CommentAddress will be stored as a varchar(120).) -Should also be able to handle an RT::User object =cut -sub IsCc { - my $self = shift; - my $cc = shift; - - return ($self->IsWatcher( Type => 'Cc', Id => $cc )); - -} - -# }}} - -# {{{ sub IsAdminCc - -=head2 IsAdminCc - -Takes a string. Returns true if the string is an AdminCc watcher of the current queue +=item InitialPriority -=item Bugs +Returns the current value of InitialPriority. +(In the database, InitialPriority is stored as int(11).) -Should also be able to handle an RT::User object - -=cut - -sub IsAdminCc { - my $self = shift; - my $admincc = shift; - - return ($self->IsWatcher( Type => 'AdminCc', Id => $admincc )); - -} -# }}} -# }}} +=item SetInitialPriority VALUE -# {{{ sub AddWatcher -=head2 AddWatcher +Set InitialPriority to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, InitialPriority will be stored as a int(11).) -Takes a paramhash of Email, Owner and Type. Type is one of 'Cc' or 'AdminCc', -We need either an Email Address in Email or a userid in Owner =cut -sub AddWatcher { - my $self = shift; - my %args = ( Email => undef, - Type => undef, - Owner => 0, - @_ - ); - - # {{{ Check ACLS - #If the watcher we're trying to add is for the current user - if ( ( ( defined $args{'Email'}) && - ( $args{'Email'} eq $self->CurrentUser->EmailAddress) ) or - ($args{'Owner'} eq $self->CurrentUser->Id)) { - - # If it's an AdminCc and they don't have - # 'WatchAsAdminCc' or 'ModifyQueueWatchers', bail - if ($args{'Type'} eq 'AdminCc') { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or - $self->CurrentUserHasRight('WatchAsAdminCc')) { - return(0, 'Permission Denied'); - } - } - - # If it's a Requestor or Cc and they don't have - # 'Watch' or 'ModifyQueueWatchers', bail - elsif ($args{'Type'} eq 'Cc') { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or - $self->CurrentUserHasRight('Watch')) { - return(0, 'Permission Denied'); - } - } - else { - $RT::Logger->warn("$self -> AddWatcher hit code". - " it never should. We got passed ". - " a type of ". $args{'Type'}); - return (0,'Error in parameters to $self AddWatcher'); - } - } - # If the watcher isn't the current user - # and the current user doesn't have 'ModifyQueueWatchers' - # bail - else { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers')) { - return (0, "Permission Denied"); - } - } - # }}} - - require RT::Watcher; - my $Watcher = new RT::Watcher ($self->CurrentUser); - return ($Watcher->Create(Scope => 'Queue', - Value => $self->Id, - Email => $args{'Email'}, - Type => $args{'Type'}, - Owner => $args{'Owner'} - )); -} -# }}} +=item FinalPriority -# {{{ sub AddCc +Returns the current value of FinalPriority. +(In the database, FinalPriority is stored as int(11).) -=head2 AddCc -Add a Cc to this queue. -Takes a paramhash of Email and Owner. -We need either an Email Address in Email or a userid in Owner -=cut +=item SetFinalPriority VALUE -sub AddCc { - my $self = shift; - return ($self->AddWatcher( Type => 'Cc', @_)); -} -# }}} +Set FinalPriority to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, FinalPriority will be stored as a int(11).) -# {{{ sub AddAdminCc - -=head2 AddAdminCc - -Add an Administrative Cc to this queue. -Takes a paramhash of Email and Owner. -We need either an Email Address in Email or a userid in Owner =cut -sub AddAdminCc { - my $self = shift; - return ($self->AddWatcher( Type => 'AdminCc', @_)); -} -# }}} - -# {{{ sub DeleteWatcher - -=head2 DeleteWatcher id [type] -DeleteWatcher takes a single argument which is either an email address -or a watcher id. -If the first argument is an email address, you need to specify the watcher type you're talking -about as the second argument. Valid values are 'Cc' or 'AdminCc'. -It removes that watcher from this Queue\'s list of watchers. +=item DefaultDueIn +Returns the current value of DefaultDueIn. +(In the database, DefaultDueIn is stored as int(11).) -=cut -sub DeleteWatcher { - my $self = shift; - my $id = shift; - - my $type; - - $type = shift if (@_); - - - require RT::Watcher; - my $Watcher = new RT::Watcher($self->CurrentUser); - - #If it\'s a numeric watcherid - if ($id =~ /^(\d*)$/) { - $Watcher->Load($id); - } - - #Otherwise, we'll assume it's an email address - elsif ($type) { - my ($result, $msg) = - $Watcher->LoadByValue( Email => $id, - Scope => 'Queue', - Value => $self->id, - Type => $type); - return (0,$msg) unless ($result); - } - - else { - return(0,"Can\'t delete a watcher by email address without specifying a type"); - } - - # {{{ Check ACLS - - #If the watcher we're trying to delete is for the current user - if ($Watcher->Email eq $self->CurrentUser->EmailAddress) { - - # If it's an AdminCc and they don't have - # 'WatchAsAdminCc' or 'ModifyQueueWatchers', bail - if ($Watcher->Type eq 'AdminCc') { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or - $self->CurrentUserHasRight('WatchAsAdminCc')) { - return(0, 'Permission Denied'); - } - } - - # If it's a Cc and they don't have - # 'Watch' or 'ModifyQueueWatchers', bail - elsif ($Watcher->Type eq 'Cc') { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or - $self->CurrentUserHasRight('Watch')) { - return(0, 'Permission Denied'); - } - } - else { - $RT::Logger->warn("$self -> DeleteWatcher hit code". - " it never should. We got passed ". - " a type of ". $args{'Type'}); - return (0,'Error in parameters to $self DeleteWatcher'); - } - } - # If the watcher isn't the current user - # and the current user doesn't have 'ModifyQueueWatchers' - # bail - else { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers')) { - return (0, "Permission Denied"); - } - } - - # }}} - - unless (($Watcher->Scope eq 'Queue') and - ($Watcher->Value == $self->id) ) { - return (0, "Not a watcher for this queue"); - } - - - #Clear out the watchers hash. - $self->{'watchers'} = undef; - - my $retval = $Watcher->Delete(); - - unless ($retval) { - return(0,"Watcher could not be deleted."); - } - - return(1, "Watcher deleted"); -} - -# {{{ sub DeleteCc +=item SetDefaultDueIn VALUE -=head2 DeleteCc EMAIL -Takes an email address. It calls DeleteWatcher with a preset -type of 'Cc' +Set DefaultDueIn to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, DefaultDueIn will be stored as a int(11).) =cut -sub DeleteCc { - my $self = shift; - my $id = shift; - return ($self->DeleteWatcher ($id, 'Cc')) -} - -# }}} -# {{{ sub DeleteAdminCc +=item Creator -=head2 DeleteAdminCc EMAIL - -Takes an email address. It calls DeleteWatcher with a preset -type of 'AdminCc' +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) =cut -sub DeleteAdminCc { - my $self = shift; - my $id = shift; - return ($self->DeleteWatcher ($id, 'AdminCc')) -} -# }}} +=item Created +Returns the current value of Created. +(In the database, Created is stored as datetime.) -# }}} - -# }}} - -# {{{ Dealing with keyword selects - -# {{{ sub AddKeywordSelect - -=head2 AddKeywordSelect - -Takes a paramhash of Name, Keyword, Depth and Single. Adds a new KeywordSelect for -this queue with those attributes. =cut -sub AddKeywordSelect { - my $self = shift; - my %args = ( Keyword => undef, - Depth => undef, - Single => undef, - Name => undef, - @_); - - #ACLS get handled in KeywordSelect - my $NewKeywordSelect = new RT::KeywordSelect($self->CurrentUser); - - return ($NewKeywordSelect->Create (Keyword => $args{'Keyword'}, - Depth => $args{'Depth'}, - Name => $args{'Name'}, - Single => $args{'Single'}, - ObjectType => 'Ticket', - ObjectField => 'Queue', - ObjectValue => $self->Id() - ) ); -} - -# }}} - -# {{{ sub KeywordSelect +=item LastUpdatedBy -=head2 KeywordSelect([NAME]) +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) -Takes the name of a keyword select for this queue or that's global. -Returns the relevant KeywordSelect object. Prefers a keywordselect that's -specific to this queue over a global one. If it can't find the proper -Keword select or the user doesn't have permission, returns an empty -KeywordSelect object =cut -sub KeywordSelect { - my $self = shift; - my $name = shift; - - require RT::KeywordSelect; - - my $select = RT::KeywordSelect->new($self->CurrentUser); - if ($self->CurrentUserHasRight('SeeQueue')) { - $select->LoadByName( Name => $name, Queue => $self->Id); - } - return ($select); -} - -# }}} +=item LastUpdated -# {{{ sub KeywordSelects +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) -=head2 KeywordSelects - -Returns an B<RT::KeywordSelects> object containing the collection of -B<RT::KeywordSelect> objects which apply to this queue. (Both queue specific keyword selects -and global keyword selects. =cut -sub KeywordSelects { - my $self = shift; +=item Disabled - use RT::KeywordSelects; - my $KeywordSelects = new RT::KeywordSelects($self->CurrentUser); +Returns the current value of Disabled. +(In the database, Disabled is stored as smallint(6).) - if ($self->CurrentUserHasRight('SeeQueue')) { - $KeywordSelects->LimitToQueue($self->id); - $KeywordSelects->IncludeGlobals(); - } - return ($KeywordSelects); -} -# }}} -# }}} -# {{{ ACCESS CONTROL +=item SetDisabled VALUE -# {{{ sub ACL -=head2 ACL +Set Disabled to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Disabled will be stored as a smallint(6).) -#Returns an RT::ACL object of ACEs everyone who has anything to do with this queue. =cut -sub ACL { - my $self = shift; - - use RT::ACL; - my $acl = new RT::ACL($self->CurrentUser); - - if ($self->CurrentUserHasRight('ShowACL')) { - $acl->LimitToQueue($self->Id); - } - - return ($acl); -} - -# }}} - -# {{{ sub _Set -sub _Set { - my $self = shift; - unless ($self->CurrentUserHasRight('AdminQueue')) { - return(0, 'Permission Denied'); - } - return ($self->SUPER::_Set(@_)); -} -# }}} -# {{{ sub _Value +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + CorrespondAddress => + {read => 1, write => 1, type => 'varchar(120)', default => ''}, + CommentAddress => + {read => 1, write => 1, type => 'varchar(120)', default => ''}, + InitialPriority => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + FinalPriority => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + DefaultDueIn => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + 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 => ''}, + Disabled => + {read => 1, write => 1, type => 'smallint(6)', default => '0'}, -sub _Value { - my $self = shift; + } +}; - unless ($self->CurrentUserHasRight('SeeQueue')) { - return (undef); - } - return ($self->__Value(@_)); -} + eval "require RT::Queue_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Queue_Overlay.pm}) { + die $@; + }; -# }}} + eval "require RT::Queue_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Queue_Vendor.pm}) { + die $@; + }; -# {{{ sub CurrentUserHasRight + eval "require RT::Queue_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Queue_Local.pm}) { + die $@; + }; -=head2 CurrentUserHasRight -Takes one argument. A textual string with the name of the right we want to check. -Returns true if the current user has that right for this queue. -Returns undef otherwise. -=cut -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; +=head1 SEE ALSO - return ($self->HasRight( Principal=> $self->CurrentUser, - Right => "$right")); +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 -# {{{ sub HasRight + no warnings qw(redefine); -=head2 HasRight +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. -Takes a param hash with the fields 'Right' and 'Principal'. -Principal defaults to the current user. -Returns true if the principal has that right for this queue. -Returns undef otherwise. +RT::Queue_Overlay, RT::Queue_Vendor, RT::Queue_Local =cut -# TAKES: Right and optional "Principal" which defaults to the current user -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => $self->CurrentUser, - @_); - unless(defined $args{'Principal'}) { - $RT::Logger->debug("Principal undefined in Queue::HasRight"); - - } - return($args{'Principal'}->HasQueueRight(QueueObj => $self, - Right => $args{'Right'})); -} -# }}} - -# }}} 1; diff --git a/rt/lib/RT/Queue_Overlay.pm b/rt/lib/RT/Queue_Overlay.pm new file mode 100644 index 000000000..4eb265f2a --- /dev/null +++ b/rt/lib/RT/Queue_Overlay.pm @@ -0,0 +1,1012 @@ +# 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. +# +# 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::Queue - an RT Queue object + +=head1 SYNOPSIS + + use RT::Queue; + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +use RT::Queue; + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +use vars qw(@STATUS @ACTIVE_STATUS @INACTIVE_STATUS $RIGHTS); +use RT::Groups; +use RT::ACL; + + +@ACTIVE_STATUS = qw(new open stalled); +@INACTIVE_STATUS = qw(resolved rejected deleted); +@STATUS = (@ACTIVE_STATUS, @INACTIVE_STATUS); + +# $self->loc('new'); # For the string extractor to get a string to localize +# $self->loc('open'); # For the string extractor to get a string to localize +# $self->loc('stalled'); # For the string extractor to get a string to localize +# $self->loc('resolved'); # For the string extractor to get a string to localize +# $self->loc('rejected'); # For the string extractor to get a string to localize +# $self->loc('deleted'); # For the string extractor to get a string to localize + + +$RIGHTS = { + SeeQueue => 'Can this principal see this queue', # loc_pair + AdminQueue => 'Create, delete and modify queues', # loc_pair + ShowACL => 'Display Access Control List', # loc_pair + ModifyACL => 'Modify Access Control List', # loc_pair + ModifyQueueWatchers => 'Modify the queue watchers', # loc_pair + AdminCustomFields => 'Create, delete and modify custom fields', # loc_pair + ModifyTemplate => 'Modify Scrip templates for this queue', # loc_pair + ShowTemplate => 'Display Scrip templates for this queue', # loc_pair + + ModifyScrips => 'Modify Scrips for this queue', # loc_pair + ShowScrips => 'Display Scrips for this queue', # loc_pair + + ShowTicket => 'Show ticket summaries', # loc_pair + ShowTicketComments => 'Show ticket private commentary', # loc_pair + + Watch => 'Sign up as a ticket Requestor or ticket or queue Cc', # loc_pair + WatchAsAdminCc => 'Sign up as a ticket or queue AdminCc', # loc_pair + CreateTicket => 'Create tickets in this queue', # loc_pair + ReplyToTicket => 'Reply to tickets', # loc_pair + CommentOnTicket => 'Comment on tickets', # loc_pair + OwnTicket => 'Own tickets', # loc_pair + ModifyTicket => 'Modify tickets', # loc_pair + DeleteTicket => 'Delete tickets', # loc_pair + TakeTicket => 'Take tickets', # loc_pair + StealTicket => 'Steal tickets', # loc_pair + +}; + +# Tell RT::ACE that this sort of object can get acls granted +$RT::ACE::OBJECT_TYPES{'RT::Queue'} = 1; + +# TODO: This should be refactored out into an RT::ACLedObject or something +# stuff the rights into a hash of rights that can exist. + +foreach my $right ( keys %{$RIGHTS} ) { + $RT::ACE::LOWERCASERIGHTNAMES{ lc $right } = $right; +} + + +=head2 AvailableRights + +Returns a hash of available rights for this object. The keys are the right names and the values are a description of what the rights do + +=cut + +sub AvailableRights { + my $self = shift; + return($RIGHTS); +} + +# {{{ ActiveStatusArray + +=head2 ActiveStatusArray + +Returns an array of all ActiveStatuses for this queue + +=cut + +sub ActiveStatusArray { + my $self = shift; + return (@ACTIVE_STATUS); +} + +# }}} + +# {{{ InactiveStatusArray + +=head2 InactiveStatusArray + +Returns an array of all InactiveStatuses for this queue + +=cut + +sub InactiveStatusArray { + my $self = shift; + return (@INACTIVE_STATUS); +} + +# }}} + +# {{{ StatusArray + +=head2 StatusArray + +Returns an array of all statuses for this queue + +=cut + +sub StatusArray { + my $self = shift; + return (@STATUS); +} + +# }}} + +# {{{ IsValidStatus + +=head2 IsValidStatus VALUE + +Returns true if VALUE is a valid status. Otherwise, returns 0 + +=for testing +my $q = RT::Queue->new($RT::SystemUser); +ok($q->IsValidStatus('new')== 1, 'New is a valid status'); +ok($q->IsValidStatus('f00')== 0, 'f00 is not a valid status'); + +=cut + +sub IsValidStatus { + my $self = shift; + my $value = shift; + + my $retval = grep ( /^$value$/, $self->StatusArray ); + return ($retval); + +} + +# }}} + +# {{{ IsActiveStatus + +=head2 IsActiveStatus VALUE + +Returns true if VALUE is a Active status. Otherwise, returns 0 + +=for testing +my $q = RT::Queue->new($RT::SystemUser); +ok($q->IsActiveStatus('new')== 1, 'New is a Active status'); +ok($q->IsActiveStatus('rejected')== 0, 'Rejected is an inactive status'); +ok($q->IsActiveStatus('f00')== 0, 'f00 is not a Active status'); + +=cut + +sub IsActiveStatus { + my $self = shift; + my $value = shift; + + my $retval = grep ( /^$value$/, $self->ActiveStatusArray ); + return ($retval); + +} + +# }}} + +# {{{ IsInactiveStatus + +=head2 IsInactiveStatus VALUE + +Returns true if VALUE is a Inactive status. Otherwise, returns 0 + +=for testing +my $q = RT::Queue->new($RT::SystemUser); +ok($q->IsInactiveStatus('new')== 0, 'New is a Active status'); +ok($q->IsInactiveStatus('rejected')== 1, 'rejeected is an Inactive status'); +ok($q->IsInactiveStatus('f00')== 0, 'f00 is not a Active status'); + +=cut + +sub IsInactiveStatus { + my $self = shift; + my $value = shift; + + my $retval = grep ( /^$value$/, $self->InactiveStatusArray ); + return ($retval); + +} + +# }}} + + +# {{{ sub Create + +=head2 Create + +Create takes the name of the new queue +If you pass the ACL check, it creates the queue and returns its queue id. + +=cut + +sub Create { + my $self = shift; + my %args = ( + Name => undef, + CorrespondAddress => '', + Description => '', + CommentAddress => '', + InitialPriority => "0", + FinalPriority => "0", + DefaultDueIn => "0", + @_ + ); + + unless ( $self->CurrentUser->HasRight(Right => 'AdminQueue', Object => $RT::System) ) + { #Check them ACLs + return ( 0, $self->loc("No permission to create queues") ); + } + + unless ( $self->ValidateName( $args{'Name'} ) ) { + return ( 0, $self->loc('Queue already exists') ); + } + + #TODO better input validation + $RT::Handle->BeginTransaction(); + + my $id = $self->SUPER::Create(%args); + unless ($id) { + $RT::Handle->Rollback(); + return ( 0, $self->loc('Queue could not be created') ); + } + + my $create_ret = $self->_CreateQueueGroups(); + unless ($create_ret) { + $RT::Handle->Rollback(); + return ( 0, $self->loc('Queue could not be created') ); + } + + $RT::Handle->Commit(); + return ( $id, $self->loc("Queue created") ); +} + +# }}} + +# {{{ sub Delete + +sub Delete { + my $self = shift; + return ( 0, + $self->loc('Deleting this object would break referential integrity') ); +} + +# }}} + +# {{{ sub SetDisabled + +=head2 SetDisabled + +Takes a boolean. +1 will cause this queue to no longer be avaialble for tickets. +0 will re-enable this queue + +=cut + +# }}} + +# {{{ sub Load + +=head2 Load + +Takes either a numerical id or a textual Name and loads the specified queue. + +=cut + +sub Load { + my $self = shift; + + my $identifier = shift; + if ( !$identifier ) { + return (undef); + } + + if ( $identifier =~ /^(\d+)$/ ) { + $self->SUPER::LoadById($identifier); + } + else { + $self->LoadByCol( "Name", $identifier ); + } + + return ( $self->Id ); + +} + +# }}} + +# {{{ sub ValidateName + +=head2 ValidateName NAME + +Takes a queue name. Returns true if it's an ok name for +a new queue. Returns undef if there's already a queue by that name. + +=cut + +sub ValidateName { + my $self = shift; + my $name = shift; + + my $tempqueue = new RT::Queue($RT::SystemUser); + $tempqueue->Load($name); + + #If we couldn't load it :) + unless ( $tempqueue->id() ) { + return (1); + } + + #If this queue exists, return undef + #Avoid the ACL check. + if ( $tempqueue->Name() ) { + return (undef); + } + + #If the queue doesn't exist, return 1 + else { + return (1); + } + +} + +# }}} + +# {{{ sub Templates + +=head2 Templates + +Returns an RT::Templates object of all of this queue's templates. + +=cut + +sub Templates { + my $self = shift; + + my $templates = RT::Templates->new( $self->CurrentUser ); + + if ( $self->CurrentUserHasRight('ShowTemplate') ) { + $templates->LimitToQueue( $self->id ); + } + + return ($templates); +} + +# }}} + +# {{{ Dealing with custom fields + +# {{{ CustomField + +=item CustomField NAME + +Load the queue-specific custom field named NAME + +=cut + +sub CustomField { + my $self = shift; + my $name = shift; + my $cf = RT::CustomField->new($self->CurrentUser); + $cf->LoadByNameAndQueue(Name => $name, Queue => $self->Id); + return ($cf); +} + + +# {{{ CustomFields + +=item CustomFields + +Returns an RT::CustomFields object containing all global custom fields, as well as those tied to this queue + +=cut + +sub CustomFields { + my $self = shift; + + my $cfs = RT::CustomFields->new( $self->CurrentUser ); + if ( $self->CurrentUserHasRight('SeeQueue') ) { + $cfs->LimitToGlobalOrQueue( $self->Id ); + } + return ($cfs); +} + +# }}} + +# }}} + + +# {{{ Routines dealing with watchers. + +# {{{ _CreateQueueGroups + +=head2 _CreateQueueGroups + +Create the ticket groups and relationships for this ticket. +This routine expects to be called from Ticket->Create _inside of a transaction_ + +It will create four groups for this ticket: Requestor, Cc, AdminCc and Owner. + +It will return true on success and undef on failure. + +=begin testing + +my $Queue = RT::Queue->new($RT::SystemUser); my ($id, $msg) = $Queue->Create(Name => "Foo", + ); +ok ($id, "Foo $id was created"); +ok(my $group = RT::Group->new($RT::SystemUser)); +ok($group->LoadQueueRoleGroup(Queue => $id, Type=> 'Cc')); +ok ($group->Id, "Found the requestors object for this Queue"); + + +ok ((my $add_id, $add_msg) = $Queue->AddWatcher(Type => 'Cc', Email => 'bob@fsck.com'), "Added bob at fsck.com as a requestor"); +ok ($add_id, "Add succeeded: ($add_msg)"); +ok(my $bob = RT::User->new($RT::SystemUser), "Creating a bob rt::user"); +$bob->LoadByEmail('bob@fsck.com'); +ok($bob->Id, "Found the bob rt user"); +ok ($Queue->IsWatcher(Type => 'Cc', PrincipalId => $bob->PrincipalId), "The Queue actually has bob at fsck.com as a requestor");; +ok ((my $add_id, $add_msg) = $Queue->DeleteWatcher(Type =>'Cc', Email => 'bob@fsck.com'), "Added bob at fsck.com as a requestor"); +ok (!$Queue->IsWatcher(Type => 'Cc', Principal => $bob->PrincipalId), "The Queue no longer has bob at fsck.com as a requestor");; + + +$group = RT::Group->new($RT::SystemUser); +ok($group->LoadQueueRoleGroup(Queue => $id, Type=> 'Cc')); +ok ($group->Id, "Found the cc object for this Queue"); +$group = RT::Group->new($RT::SystemUser); +ok($group->LoadQueueRoleGroup(Queue => $id, Type=> 'AdminCc')); +ok ($group->Id, "Found the AdminCc object for this Queue"); + +=end testing + +=cut + + +sub _CreateQueueGroups { + my $self = shift; + + my @types = qw(Cc AdminCc Requestor Owner); + + foreach my $type (@types) { + my $type_obj = RT::Group->new($self->CurrentUser); + my ($id, $msg) = $type_obj->CreateRoleGroup(Instance => $self->Id, + Type => $type, + Domain => 'RT::Queue-Role'); + unless ($id) { + $RT::Logger->error("Couldn't create a Queue group of type '$type' for ticket ". + $self->Id.": ".$msg); + return(undef); + } + } + return(1); + +} + + +# }}} + +# {{{ sub AddWatcher + +=head2 AddWatcher + +AddWatcher takes a parameter hash. The keys are as follows: + +Type One of Requestor, Cc, AdminCc + +PrinicpalId The RT::Principal id of the user or group that's being added as a watcher +Email The email address of the new watcher. If a user with this + email address can't be found, a new nonprivileged user will be created. + +If the watcher you\'re trying to set has an RT account, set the Owner paremeter to their User Id. Otherwise, set the Email parameter to their Email address. + +=cut + +sub AddWatcher { + my $self = shift; + my %args = ( + Type => undef, + PrincipalId => undef, + Email => undef, + @_ + ); + + # {{{ Check ACLS + #If the watcher we're trying to add is for the current user + if ( $self->CurrentUser->PrincipalId eq $args{'PrincipalId'}) { + # If it's an AdminCc and they don't have + # 'WatchAsAdminCc' or 'ModifyTicket', bail + if ( $args{'Type'} eq 'AdminCc' ) { + unless ( $self->CurrentUserHasRight('ModifyQueueWatchers') + or $self->CurrentUserHasRight('WatchAsAdminCc') ) { + return ( 0, $self->loc('Permission Denied')) + } + } + + # If it's a Requestor or Cc and they don't have + # 'Watch' or 'ModifyTicket', bail + elsif ( ( $args{'Type'} eq 'Cc' ) or ( $args{'Type'} eq 'Requestor' ) ) { + + unless ( $self->CurrentUserHasRight('ModifyQueueWatchers') + or $self->CurrentUserHasRight('Watch') ) { + return ( 0, $self->loc('Permission Denied')) + } + } + else { + $RT::Logger->warn( "$self -> AddWatcher got passed a bogus type"); + return ( 0, $self->loc('Error in parameters to Queue->AddWatcher') ); + } + } + + # If the watcher isn't the current user + # and the current user doesn't have 'ModifyQueueWatcher' + # bail + else { + unless ( $self->CurrentUserHasRight('ModifyQueueWatchers') ) { + return ( 0, $self->loc("Permission Denied") ); + } + } + + # }}} + + return ( $self->_AddWatcher(%args) ); +} + +#This contains the meat of AddWatcher. but can be called from a routine like +# Create, which doesn't need the additional acl check +sub _AddWatcher { + my $self = shift; + my %args = ( + Type => undef, + Silent => undef, + PrincipalId => undef, + Email => undef, + @_ + ); + + + my $principal = RT::Principal->new($self->CurrentUser); + if ($args{'PrincipalId'}) { + $principal->Load($args{'PrincipalId'}); + } + elsif ($args{'Email'}) { + + my $user = RT::User->new($self->CurrentUser); + $user->LoadByEmail($args{'Email'}); + + unless ($user->Id) { + $user->Load($args{'Email'}); + } + if ($user->Id) { # If the user exists + $principal->Load($user->PrincipalId); + } else { + + # if the user doesn't exist, we need to create a new user + my $new_user = RT::User->new($RT::SystemUser); + + my ( $Val, $Message ) = $new_user->Create( + Name => $args{'Email'}, + EmailAddress => $args{'Email'}, + RealName => $args{'Email'}, + Privileged => 0, + Comments => 'Autocreated when added as a watcher'); + unless ($Val) { + $RT::Logger->error("Failed to create user ".$args{'Email'} .": " .$Message); + # Deal with the race condition of two account creations at once + $new_user->LoadByEmail($args{'Email'}); + } + $principal->Load($new_user->PrincipalId); + } + } + # If we can't find this watcher, we need to bail. + unless ($principal->Id) { + return(0, $self->loc("Could not find or create that user")); + } + + + my $group = RT::Group->new($self->CurrentUser); + $group->LoadQueueRoleGroup(Type => $args{'Type'}, Queue => $self->Id); + unless ($group->id) { + return(0,$self->loc("Group not found")); + } + + if ( $group->HasMember( $principal)) { + + return ( 0, $self->loc('That principal is already a [_1] for this queue', $args{'Type'}) ); + } + + + my ($m_id, $m_msg) = $group->_AddMember(PrincipalId => $principal->Id); + unless ($m_id) { + $RT::Logger->error("Failed to add ".$principal->Id." as a member of group ".$group->Id."\n".$m_msg); + + return ( 0, $self->loc('Could not make that principal a [_1] for this queue', $args{'Type'}) ); + } + return ( 1, $self->loc('Added principal as a [_1] for this queue', $args{'Type'}) ); +} + +# }}} + +# {{{ sub DeleteWatcher + +=head2 DeleteWatcher { Type => TYPE, PrincipalId => PRINCIPAL_ID, Email => EMAIL_ADDRESS } + + +Deletes a queue watcher. Takes two arguments: + +Type (one of Requestor,Cc,AdminCc) + +and one of + +PrincipalId (an RT::Principal Id of the watcher you want to remove) + OR +Email (the email address of an existing wathcer) + + +=cut + + +sub DeleteWatcher { + my $self = shift; + + my %args = ( Type => undef, + PrincipalId => undef, + @_ ); + + unless ($args{'PrincipalId'} ) { + return(0, $self->loc("No principal specified")); + } + my $principal = RT::Principal->new($self->CurrentUser); + $principal->Load($args{'PrincipalId'}); + + # If we can't find this watcher, we need to bail. + unless ($principal->Id) { + return(0, $self->loc("Could not find that principal")); + } + + my $group = RT::Group->new($self->CurrentUser); + $group->LoadQueueRoleGroup(Type => $args{'Type'}, Queue => $self->Id); + unless ($group->id) { + return(0,$self->loc("Group not found")); + } + + # {{{ Check ACLS + #If the watcher we're trying to add is for the current user + if ( $self->CurrentUser->PrincipalId eq $args{'PrincipalId'}) { + # If it's an AdminCc and they don't have + # 'WatchAsAdminCc' or 'ModifyQueue', bail + if ( $args{'Type'} eq 'AdminCc' ) { + unless ( $self->CurrentUserHasRight('ModifyQueueWatchers') + or $self->CurrentUserHasRight('WatchAsAdminCc') ) { + return ( 0, $self->loc('Permission Denied')) + } + } + + # If it's a Requestor or Cc and they don't have + # 'Watch' or 'ModifyQueue', bail + elsif ( ( $args{'Type'} eq 'Cc' ) or ( $args{'Type'} eq 'Requestor' ) ) { + unless ( $self->CurrentUserHasRight('ModifyQueueWatchers') + or $self->CurrentUserHasRight('Watch') ) { + return ( 0, $self->loc('Permission Denied')) + } + } + else { + $RT::Logger->warn( "$self -> DelWatcher got passed a bogus type"); + return ( 0, $self->loc('Error in parameters to Queue->DelWatcher') ); + } + } + + # If the watcher isn't the current user + # and the current user doesn't have 'ModifyQueueWathcers' bail + else { + unless ( $self->CurrentUserHasRight('ModifyQueueWatchers') ) { + return ( 0, $self->loc("Permission Denied") ); + } + } + + # }}} + + + # see if this user is already a watcher. + + unless ( $group->HasMember($principal)) { + return ( 0, + $self->loc('That principal is not a [_1] for this queue', $args{'Type'}) ); + } + + my ($m_id, $m_msg) = $group->_DeleteMember($principal->Id); + unless ($m_id) { + $RT::Logger->error("Failed to delete ".$principal->Id. + " as a member of group ".$group->Id."\n".$m_msg); + + return ( 0, $self->loc('Could not remove that principal as a [_1] for this queue', $args{'Type'}) ); + } + + return ( 1, $self->loc("[_1] is no longer a [_2] for this queue.", $principal->Object->Name, $args{'Type'} )); +} + +# }}} + +# {{{ AdminCcAddresses + +=head2 AdminCcAddresses + +returns String: All queue AdminCc email addresses as a string + +=cut + +sub AdminCcAddresses { + my $self = shift; + + unless ( $self->CurrentUserHasRight('SeeQueue') ) { + return undef; + } + + return ( $self->AdminCc->MemberEmailAddressesAsString ) + +} + +# }}} + +# {{{ CcAddresses + +=head2 CcAddresses + +returns String: All queue Ccs as a string of email addresses + +=cut + +sub CcAddresses { + my $self = shift; + + unless ( $self->CurrentUserHasRight('SeeQueue') ) { + return undef; + } + + return ( $self->Cc->MemberEmailAddressesAsString); + +} +# }}} + + +# {{{ sub Cc + +=head2 Cc + +Takes nothing. +Returns an RT::Group object which contains this Queue's Ccs. +If the user doesn't have "ShowQueue" permission, returns an empty group + +=cut + +sub Cc { + my $self = shift; + + my $group = RT::Group->new($self->CurrentUser); + if ( $self->CurrentUserHasRight('SeeQueue') ) { + $group->LoadQueueRoleGroup(Type => 'Cc', Queue => $self->Id); + } + return ($group); + +} + +# }}} + +# {{{ sub AdminCc + +=head2 AdminCc + +Takes nothing. +Returns an RT::Group object which contains this Queue's AdminCcs. +If the user doesn't have "ShowQueue" permission, returns an empty group + +=cut + +sub AdminCc { + my $self = shift; + + my $group = RT::Group->new($self->CurrentUser); + if ( $self->CurrentUserHasRight('SeeQueue') ) { + $group->LoadQueueRoleGroup(Type => 'AdminCc', Queue => $self->Id); + } + return ($group); + +} + +# }}} + +# {{{ IsWatcher, IsCc, IsAdminCc + +# {{{ sub IsWatcher +# a generic routine to be called by IsRequestor, IsCc and IsAdminCc + +=head2 IsWatcher { Type => TYPE, PrincipalId => PRINCIPAL_ID } + +Takes a param hash with the attributes Type and PrincipalId + +Type is one of Requestor, Cc, AdminCc and Owner + +PrincipalId is an RT::Principal id + +Returns true if that principal is a member of the group Type for this queue + + +=cut + +sub IsWatcher { + my $self = shift; + + my %args = ( Type => 'Cc', + PrincipalId => undef, + @_ + ); + + # Load the relevant group. + my $group = RT::Group->new($self->CurrentUser); + $group->LoadQueueRoleGroup(Type => $args{'Type'}, Queue => $self->id); + # Ask if it has the member in question + + my $principal = RT::Principal->new($self->CurrentUser); + $principal->Load($args{'PrincipalId'}); + + return ($group->HasMember($principal)); +} + +# }}} + + +# {{{ sub IsCc + +=head2 IsCc PRINCIPAL_ID + + Takes an RT::Principal id. + Returns true if the principal is a requestor of the current queue. + + +=cut + +sub IsCc { + my $self = shift; + my $cc = shift; + + return ( $self->IsWatcher( Type => 'Cc', PrincipalId => $cc ) ); + +} + +# }}} + +# {{{ sub IsAdminCc + +=head2 IsAdminCc PRINCIPAL_ID + + Takes an RT::Principal id. + Returns true if the principal is a requestor of the current queue. + +=cut + +sub IsAdminCc { + my $self = shift; + my $person = shift; + + return ( $self->IsWatcher( Type => 'AdminCc', PrincipalId => $person ) ); + +} + +# }}} + + +# }}} + + + + + +# }}} + +# {{{ ACCESS CONTROL + +# {{{ sub _Set +sub _Set { + my $self = shift; + + unless ( $self->CurrentUserHasRight('AdminQueue') ) { + return ( 0, $self->loc('Permission Denied') ); + } + return ( $self->SUPER::_Set(@_) ); +} + +# }}} + +# {{{ sub _Value + +sub _Value { + my $self = shift; + + unless ( $self->CurrentUserHasRight('SeeQueue') ) { + return (undef); + } + + return ( $self->__Value(@_) ); +} + +# }}} + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight + +Takes one argument. A textual string with the name of the right we want to check. +Returns true if the current user has that right for this queue. +Returns undef otherwise. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + + return ( + $self->HasRight( + Principal => $self->CurrentUser, + Right => "$right" + ) + ); + +} + +# }}} + +# {{{ sub HasRight + +=head2 HasRight + +Takes a param hash with the fields 'Right' and 'Principal'. +Principal defaults to the current user. +Returns true if the principal has that right for this queue. +Returns undef otherwise. + +=cut + +# TAKES: Right and optional "Principal" which defaults to the current user +sub HasRight { + my $self = shift; + my %args = ( + Right => undef, + Principal => $self->CurrentUser, + @_ + ); + unless ( defined $args{'Principal'} ) { + $RT::Logger->debug("Principal undefined in Queue::HasRight"); + + } + return ( + $args{'Principal'}->HasRight( + Object => $self, + Right => $args{'Right'} + ) + ); +} + +# }}} + +# }}} + +1; diff --git a/rt/lib/RT/Queues.pm b/rt/lib/RT/Queues.pm index ab58d8d6d..60aec9086 100755 --- a/rt/lib/RT/Queues.pm +++ b/rt/lib/RT/Queues.pm @@ -1,123 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Queues.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Queues - a collection of RT::Queue objects +=head1 NAME + RT::Queues -- Class Description + =head1 SYNOPSIS - use RT::Queues; + use RT::Queues =head1 DESCRIPTION =head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Queues); - -=end testing - =cut package RT::Queues; -use RT::EasySearch; -@ISA= qw(RT::EasySearch); +use RT::SearchBuilder; +use RT::Queue; -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Queues"; - $self->{'primary_key'} = "id"; +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); - # By default, order by name - $self->OrderBy( ALIAS => 'main', - FIELD => 'Name', - ORDER => 'ASC'); - return ($self->SUPER::_Init(@_)); +sub _Init { + my $self = shift; + $self->{'table'} = 'Queues'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub _DoSearch -=head2 _DoSearch +=item NewItem - A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless -we're explicitly trying to see them. +Returns an empty new RT::Queue item =cut -sub _DoSearch { +sub NewItem { my $self = shift; - - #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. - unless($self->{'find_disabled_rows'}) { - $self->LimitToEnabled(); - } - - return($self->SUPER::_DoSearch(@_)); - + return(RT::Queue->new($self->CurrentUser)); } -# }}} - + eval "require RT::Queues_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Queues_Overlay.pm}) { + die $@; + }; -# {{{ sub Limit -sub Limit { - my $self = shift; - my %args = ( ENTRYAGGREGATOR => 'AND', - @_); - $self->SUPER::Limit(%args); -} -# }}} + eval "require RT::Queues_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Queues_Vendor.pm}) { + die $@; + }; -# {{{ sub NewItem -sub NewItem { - my $self = shift; - my $item; + eval "require RT::Queues_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Queues_Local.pm}) { + die $@; + }; - use RT::Queue; - $item = new RT::Queue($self->CurrentUser); - return($item); -} -# }}} -# {{{ sub Next -=head2 Next -Returns the next queue that this user can see. +=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::Queues_Overlay, RT::Queues_Vendor, RT::Queues_Local =cut - -sub Next { - my $self = shift; - - - my $Queue = $self->SUPER::Next(); - if ((defined($Queue)) and (ref($Queue))) { - - if ($Queue->CurrentUserHasRight('SeeQueue')) { - return($Queue); - } - - #If the user doesn't have the right to show this queue - else { - return($self->Next()); - } - } - #if there never was any queue - else { - return(undef); - } - -} -# }}} -1; +1; diff --git a/rt/lib/RT/Queues_Overlay.pm b/rt/lib/RT/Queues_Overlay.pm new file mode 100644 index 000000000..b85144b52 --- /dev/null +++ b/rt/lib/RT/Queues_Overlay.pm @@ -0,0 +1,130 @@ +# 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. +# +# 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::Queues - a collection of RT::Queue objects + +=head1 SYNOPSIS + + use RT::Queues; + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::Queues); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Queues"; + $self->{'primary_key'} = "id"; + + # By default, order by name + $self->OrderBy( ALIAS => 'main', + FIELD => 'Name', + ORDER => 'ASC'); + + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _DoSearch + +=head2 _DoSearch + + A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless +we're explicitly trying to see them. + +=cut + +sub _DoSearch { + my $self = shift; + + #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. + unless($self->{'find_disabled_rows'}) { + $self->LimitToEnabled(); + } + + return($self->SUPER::_DoSearch(@_)); + +} + +# }}} + + +# {{{ sub Limit +sub Limit { + my $self = shift; + my %args = ( ENTRYAGGREGATOR => 'AND', + @_); + $self->SUPER::Limit(%args); +} +# }}} + +# {{{ sub Next + +=head2 Next + +Returns the next queue that this user can see. + +=cut + +sub Next { + my $self = shift; + + + my $Queue = $self->SUPER::Next(); + if ((defined($Queue)) and (ref($Queue))) { + + if ($Queue->CurrentUserHasRight('SeeQueue')) { + return($Queue); + } + + #If the user doesn't have the right to show this queue + else { + return($self->Next()); + } + } + #if there never was any queue + else { + return(undef); + } + +} +# }}} + +1; + diff --git a/rt/lib/RT/Record.pm b/rt/lib/RT/Record.pm index 5340f7de4..6962221ea 100755 --- a/rt/lib/RT/Record.pm +++ b/rt/lib/RT/Record.pm @@ -1,5 +1,26 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Record.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - +# 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. +# +# 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::Record - Base class for RT record objects @@ -20,20 +41,31 @@ ok (require RT::Record); =cut - package RT::Record; -use DBIx::SearchBuilder::Record::Cachable; use RT::Date; use RT::User; -@ISA= qw(DBIx::SearchBuilder::Record::Cachable); +use RT::Base; +use DBIx::SearchBuilder::Record::Cachable; + +use strict; +use vars qw/@ISA/; + +@ISA = qw(RT::Base); + +if ($RT::DontCacheSearchBuilderRecords ) { + push (@ISA, 'DBIx::SearchBuilder::Record'); +} else { + push (@ISA, 'DBIx::SearchBuilder::Record::Cachable'); + +} # {{{ sub _Init -sub _Init { - my $self = shift; - $self->_MyCurrentUser(@_); - +sub _Init { + my $self = shift; + $self->CurrentUser(@_); + } # }}} @@ -48,68 +80,108 @@ The primary keys for RT classes is 'id' sub _PrimaryKeys { my $self = shift; - return(['id']); + return ( ['id'] ); } # }}} -# {{{ sub _MyCurrentUser - -sub _MyCurrentUser { +# {{{ sub _Handle +sub _Handle { my $self = shift; - - $self->CurrentUser(@_); - if(!defined($self->CurrentUser)) { - use Carp; - Carp::cluck(); - $RT::Logger->err("$self was created without a CurrentUser\n"); - return(0); - } + return ($RT::Handle); } # }}} -# {{{ sub _Handle -sub _Handle { - my $self = shift; - return($RT::Handle); -} -# }}} - # {{{ sub Create -sub Create { - my $self = shift; - my $now = new RT::Date($self->CurrentUser); - $now->Set(Format=> 'unix', Value => time); - push @_, 'Created', $now->ISO() - if ($self->_Accessible('Created', 'auto')); - - - push @_, 'Creator', $self->{'user'}->id - if $self->_Accessible('Creator', 'auto'); - - push @_, 'LastUpdated', $now->ISO() - if ($self->_Accessible('LastUpdated', 'auto')); - - push @_, 'LastUpdatedBy', $self->{'user'}->id - if $self->_Accessible('LastUpdatedBy', 'auto'); - - - - my $id = $self->SUPER::Create(@_); - - if ($id) { - $self->Load($id); +=item Create PARAMHASH + +Takes a PARAMHASH of Column -> Value pairs. +If any Column has a Validate$PARAMNAME subroutine defined and the +value provided doesn't pass validation, this routine returns +an error. + +If this object's table has any of the following atetributes defined as +'Auto', this routine will automatically fill in their values. + +=cut + +sub Create { + my $self = shift; + my %attribs = (@_); + foreach my $key ( keys %attribs ) { + my $method = "Validate$key"; + unless ( $self->$method( $attribs{$key} ) ) { + if (wantarray) { + return ( 0, $self->loc('Invalid value for [_1]', $key) ); + } + else { + return (0); + } + } + } + my $now = RT::Date->new( $self->CurrentUser ); + $now->Set( Format => 'unix', Value => time ); + $attribs{'Created'} = $now->ISO() if ( $self->_Accessible( 'Created', 'auto' ) && !$attribs{'Created'}); + + if ($self->_Accessible( 'Creator', 'auto' ) && !$attribs{'Creator'}) { + $attribs{'Creator'} = $self->CurrentUser->id || '0'; + } + $attribs{'LastUpdated'} = $now->ISO() + if ( $self->_Accessible( 'LastUpdated', 'auto' ) && !$attribs{'LastUpdated'}); + + $attribs{'LastUpdatedBy'} = $self->CurrentUser->id || '0' + if ( $self->_Accessible( 'LastUpdatedBy', 'auto' ) && !$attribs{'LastUpdatedBy'}); + + my $id = $self->SUPER::Create(%attribs); + if ( UNIVERSAL::isa( $id, 'Class::ReturnValue' ) ) { + if ( $id->errno ) { + if (wantarray) { + return ( 0, + $self->loc( "Internal Error: [_1]", $id->{error_message} ) ); + } + else { + return (0); + } + } + } + # If the object was created in the database, + # load it up now, so we're sure we get what the database + # has. Arguably, this should not be necessary, but there + # isn't much we can do about it. + + unless ($id) { + if (wantarray) { + return ( $id, $self->loc('Object could not be created') ); + } + else { + return ($id); + } + + } + + if (UNIVERSAL::isa('errno',$id)) { + exit(0); + warn "It's here!"; + return(undef); + } + + $self->Load($id) if ($id); + + + + if (wantarray) { + return ( $id, $self->loc('Object created') ); + } + else { + return ($id); } - - return($id); - + } # }}} - # {{{ sub LoadByCols =head2 LoadByCols @@ -125,28 +197,33 @@ sub LoadByCols { # If this database is case sensitive we need to uncase objects for # explicit loading - if ($self->_Handle->CaseSensitive) { - my %newhash; - foreach my $key (keys %hash) { - # If we've been passed an empty value, we can't do the lookup. - # We don't need to explicitly downcase integers or an id. - if ($key =~ '^id$' || $hash{$key} =~/^\d+$/ || !defined ($hash{$key}) ) { - $newhash{$key} = $hash{$key}; - } - else { - $newhash{"lower(".$key.")"} = lc($hash{$key}); - } - } - $self->SUPER::LoadByCols(%newhash); - } - else { - $self->SUPER::LoadByCols(%hash); + if ( $self->_Handle->CaseSensitive ) { + my %newhash; + foreach my $key ( keys %hash ) { + + # If we've been passed an empty value, we can't do the lookup. + # We don't need to explicitly downcase integers or an id. + if ( $key =~ '^id$' + || !defined( $hash{$key} ) + || $hash{$key} =~ /^\d+$/ + ) + { + $newhash{$key} = $hash{$key}; + } + else { + $newhash{ "lower(" . $key . ")" } = lc( $hash{$key} ); + } + } + + # We've clobbered everything we care about. bash the old hash + # and replace it with the new hash + %hash = %newhash; } + $self->SUPER::LoadByCols(%hash); } # }}} - # {{{ Datehandling # There is room for optimizations in most of those subs: @@ -154,10 +231,10 @@ sub LoadByCols { # {{{ LastUpdatedObj sub LastUpdatedObj { - my $self=shift; - my $obj = new RT::Date($self->CurrentUser); - - $obj->Set(Format => 'sql', Value => $self->LastUpdated); + my $self = shift; + my $obj = new RT::Date( $self->CurrentUser ); + + $obj->Set( Format => 'sql', Value => $self->LastUpdated ); return $obj; } @@ -166,12 +243,11 @@ sub LastUpdatedObj { # {{{ CreatedObj sub CreatedObj { - my $self=shift; - my $obj = new RT::Date($self->CurrentUser); - - $obj->Set(Format => 'sql', Value => $self->Created); + my $self = shift; + my $obj = new RT::Date( $self->CurrentUser ); + + $obj->Set( Format => 'sql', Value => $self->Created ); - return $obj; } @@ -182,9 +258,10 @@ sub CreatedObj { # TODO: This should be deprecated # sub AgeAsString { - my $self=shift; - return($self->CreatedObj->AgeAsString()); + my $self = shift; + return ( $self->CreatedObj->AgeAsString() ); } + # }}} # {{{ LastUpdatedAsString @@ -192,12 +269,13 @@ sub AgeAsString { # TODO this should be deprecated sub LastUpdatedAsString { - my $self=shift; - if ($self->LastUpdated) { - return ($self->LastUpdatedObj->AsString()); - - } else { - return "never"; + my $self = shift; + if ( $self->LastUpdated ) { + return ( $self->LastUpdatedObj->AsString() ); + + } + else { + return "never"; } } @@ -209,8 +287,9 @@ sub LastUpdatedAsString { # sub CreatedAsString { my $self = shift; - return ($self->CreatedObj->AsString()); + return ( $self->CreatedObj->AsString() ); } + # }}} # {{{ LongSinceUpdateAsString @@ -218,42 +297,47 @@ sub CreatedAsString { # TODO This should be deprecated # sub LongSinceUpdateAsString { - my $self=shift; - if ($self->LastUpdated) { - - return ($self->LastUpdatedObj->AgeAsString()); - - } else { - return "never"; + my $self = shift; + if ( $self->LastUpdated ) { + + return ( $self->LastUpdatedObj->AgeAsString() ); + + } + else { + return "never"; } } + # }}} # }}} Datehandling - # {{{ sub _Set -sub _Set { - my $self = shift; +sub _Set { + my $self = shift; - my %args = ( Field => undef, - Value => undef, - IsSQL => undef, - @_ ); + my %args = ( + Field => undef, + Value => undef, + IsSQL => undef, + @_ + ); + #if the user is trying to modify the record + # TODO: document _why_ this code is here - #if the user is trying to modify the record - if ((!defined ($args{'Field'})) || (!defined ($args{'Value'}))) { - $args{'Value'} = 0; - } + if ( ( !defined( $args{'Field'} ) ) || ( !defined( $args{'Value'} ) ) ) { + $args{'Value'} = 0; + } - $self->_SetLastUpdated(); - $self->SUPER::_Set(Field => $args{'Field'}, - Value => $args{'Value'}, - IsSQL => $args{'IsSQL'}); - - + $self->_SetLastUpdated(); + my ( $val, $msg ) = $self->SUPER::_Set( + Field => $args{'Field'}, + Value => $args{'Value'}, + IsSQL => $args{'IsSQL'} + ); } + # }}} # {{{ sub _SetLastUpdated @@ -268,16 +352,20 @@ It takes no options. Arguably, this is a bug sub _SetLastUpdated { my $self = shift; use RT::Date; - my $now = new RT::Date($self->CurrentUser); + my $now = new RT::Date( $self->CurrentUser ); $now->SetToNow(); - if ($self->_Accessible('LastUpdated','auto')) { - my ($msg, $val) = $self->__Set( Field => 'LastUpdated', - Value => $now->ISO); + if ( $self->_Accessible( 'LastUpdated', 'auto' ) ) { + my ( $msg, $val ) = $self->__Set( + Field => 'LastUpdated', + Value => $now->ISO + ); } - if ($self->_Accessible('LastUpdatedBy','auto')) { - my ($msg, $val) = $self->__Set( Field => 'LastUpdatedBy', - Value => $self->CurrentUser->id); + if ( $self->_Accessible( 'LastUpdatedBy', 'auto' ) ) { + my ( $msg, $val ) = $self->__Set( + Field => 'LastUpdatedBy', + Value => $self->CurrentUser->id + ); } } @@ -291,15 +379,16 @@ Returns an RT::User object with the RT account of the creator of this row =cut -sub CreatorObj { - my $self = shift; - unless (exists $self->{'CreatorObj'}) { - - $self->{'CreatorObj'} = RT::User->new($self->CurrentUser); - $self->{'CreatorObj'}->Load($self->Creator); - } - return($self->{'CreatorObj'}); +sub CreatorObj { + my $self = shift; + unless ( exists $self->{'CreatorObj'} ) { + + $self->{'CreatorObj'} = RT::User->new( $self->CurrentUser ); + $self->{'CreatorObj'}->Load( $self->Creator ); + } + return ( $self->{'CreatorObj'} ); } + # }}} # {{{ sub LastUpdatedByObj @@ -311,35 +400,56 @@ sub CreatorObj { =cut sub LastUpdatedByObj { - my $self=shift; - unless (exists $self->{LastUpdatedByObj}) { - $self->{'LastUpdatedByObj'}=RT::User->new($self->CurrentUser); - $self->{'LastUpdatedByObj'}->Load($self->LastUpdatedBy); + my $self = shift; + unless ( exists $self->{LastUpdatedByObj} ) { + $self->{'LastUpdatedByObj'} = RT::User->new( $self->CurrentUser ); + $self->{'LastUpdatedByObj'}->Load( $self->LastUpdatedBy ); } return $self->{'LastUpdatedByObj'}; } # }}} -# {{{ sub CurrentUser -=head2 CurrentUser +require Encode::compat if $] < 5.007001; +require Encode; -If called with an argument, sets the current user to that user object. -This will affect ACL decisions, etc. -Returns the current user +sub __Value { + my $self = shift; + my $field = shift; + my %args = ( decode_utf8 => 1, + @_ ); -=cut + unless (defined $field && $field) { + $RT::Logger->error("$self __Value called with undef field"); + } + my $value = $self->SUPER::__Value($field); + + return('') if ( !defined($value) || $value eq ''); + + return Encode::decode_utf8($value) || $value if $args{'decode_utf8'}; + return $value; +} -sub CurrentUser { - my $self = shift; +# Set up defaults for DBIx::SearchBuilder::Record::Cachable - if (@_) { - $self->{'user'} = shift; +sub _CacheConfig { + { + 'cache_p' => 1, + 'fast_update_p' => 1, + 'cache_for_sec' => 30, } - return ($self->{'user'}); } -# }}} +=head2 _DecodeUTF8 + + When passed a string will "decode" it int a proper UTF-8 string + +=cut + +eval "require RT::Record_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Record_Vendor.pm}); +eval "require RT::Record_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Record_Local.pm}); 1; diff --git a/rt/lib/RT/Scrip.pm b/rt/lib/RT/Scrip.pm index aef011ca3..a69dde04e 100755 --- a/rt/lib/RT/Scrip.pm +++ b/rt/lib/RT/Scrip.pm @@ -1,372 +1,500 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Scrip.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Scrip - an RT Scrip object +RT::Scrip -=head1 SYNOPSIS - use RT::Scrip; +=head1 SYNOPSIS =head1 DESCRIPTION - =head1 METHODS -=begin testing +=cut -ok (require RT::TestHarness); -ok (require RT::Scrip); +package RT::Scrip; +use RT::Record; +use RT::Queue; +use RT::Template; +use RT::ScripCondition; +use RT::ScripAction; -=end testing -=cut +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -package RT::Scrip; -use RT::Record; -@ISA= qw(RT::Record); +sub _Init { + my $self = shift; -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Scrips"; - return ($self->SUPER::_Init(@_)); + $self->Table('Scrips'); + $self->SUPER::_Init(@_); } -# }}} -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( ScripAction => 'read/write', - ScripCondition => 'read/write', - Stage => 'read/write', - Queue => 'read/write', - Template => 'read/write', - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} -# }}} -# {{{ sub Create -=head2 Create -Creates a new entry in the Scrips table. Takes a paramhash with the attributes: - Queue A queue id or 0 for a global scrip - Template A template ID or name. - Behavior is undefined if you have multiple items with - the same name - ScripAction A ScripAction id or name - Behavior is undefined if you have multiple items with - the same name - ScripCondition A ScripCondition id or name - Behavior is undefined if you have multiple items with - the same name +=item Create PARAMHASH -Returns (retval, msg); -retval is 0 for failure or scrip id. msg is a textual description of what happened. +Create takes a hash of values and creates a row in the database: + + varchar(255) 'Description'. + int(11) 'ScripCondition'. + int(11) 'ScripAction'. + text 'ConditionRules'. + text 'ActionRules'. + text 'CustomIsApplicableCode'. + text 'CustomPrepareCode'. + text 'CustomCommitCode'. + varchar(32) 'Stage'. + int(11) 'Queue'. + int(11) 'Template'. =cut -sub Create { + + + +sub Create { my $self = shift; - my %args = ( Queue => undef, - Template => undef, - ScripAction => undef, - ScripCondition => undef, - Stage => 'TransactionCreate', - @_ - ); - - - if ($args{'Queue'} == 0 ) { - unless ($self->CurrentUser->HasSystemRight('ModifyScrips')) { - return (0, 'Permission Denied'); - } - } - else { - my $QueueObj = new RT::Queue($self->CurrentUser); - $QueueObj->Load($args{'Queue'}); - unless ($QueueObj->id()) { - return (0,'Invalid queue'); - } - unless ($QueueObj->CurrentUserHasRight('ModifyScrips')) { - return (0, 'Permssion Denied'); - } - } - - #TODO +++ validate input - - require RT::ScripAction; - my $action = new RT::ScripAction($self->CurrentUser); - $action->Load($args{'ScripAction'}); - return (0, "Action ".$args{'ScripAction'}." not found") unless $action->Id; - - require RT::Template; - my $template = new RT::Template($self->CurrentUser); - $template->Load($args{'Template'}); - return (0, 'Template not found') unless $template->Id; - - require RT::ScripCondition; - my $condition = new RT::ScripCondition($self->CurrentUser); - $condition->Load($args{'ScripCondition'}); - - unless ($condition->Id) { - return (0, 'Condition not found'); - } - - my $id = $self->SUPER::Create(Queue => $args{'Queue'}, - Template => $template->Id, - ScripCondition => $condition->id, - Stage => $args{'Stage'}, - ScripAction => $action->Id - ); - return ($id, 'Scrip Created'); + my %args = ( + Description => '', + ScripCondition => '0', + ScripAction => '0', + ConditionRules => '', + ActionRules => '', + CustomIsApplicableCode => '', + CustomPrepareCode => '', + CustomCommitCode => '', + Stage => '', + Queue => '0', + Template => '0', + + @_); + $self->SUPER::Create( + Description => $args{'Description'}, + ScripCondition => $args{'ScripCondition'}, + ScripAction => $args{'ScripAction'}, + ConditionRules => $args{'ConditionRules'}, + ActionRules => $args{'ActionRules'}, + CustomIsApplicableCode => $args{'CustomIsApplicableCode'}, + CustomPrepareCode => $args{'CustomPrepareCode'}, + CustomCommitCode => $args{'CustomCommitCode'}, + Stage => $args{'Stage'}, + Queue => $args{'Queue'}, + Template => $args{'Template'}, +); + } -# }}} -# {{{ sub Delete -=head2 Delete +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) -Delete this object =cut -sub Delete { - my $self = shift; - - unless ($self->CurrentUserHasRight('ModifyScrips')) { - return (0, 'Permission Denied'); - } - - return ($self->SUPER::Delete(@_)); -} -# }}} -# {{{ sub QueueObj +=item Description + +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) + -=head2 QueueObj -Retuns an RT::Queue object with this Scrip\'s queue +=item SetDescription VALUE + + +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) + =cut -sub QueueObj { - my $self = shift; - - if (!$self->{'QueueObj'}) { - require RT::Queue; - $self->{'QueueObj'} = RT::Queue->new($self->CurrentUser); - $self->{'QueueObj'}->Load($self->Queue); - } - return ($self->{'QueueObj'}); -} -# }}} +=item ScripCondition + +Returns the current value of ScripCondition. +(In the database, ScripCondition is stored as int(11).) + -# {{{ sub ActionObj +=item SetScripCondition VALUE -=head2 ActionObj -Retuns an RT::Action object with this Scrip\'s Action +Set ScripCondition to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ScripCondition will be stored as a int(11).) + =cut -sub ActionObj { - my $self = shift; - - unless (defined $self->{'ScripActionObj'}) { - require RT::ScripAction; - - $self->{'ScripActionObj'} = RT::ScripAction->new($self->CurrentUser); - #TODO: why are we loading Actions with templates like this. - # two seperate methods might make more sense - $self->{'ScripActionObj'}->Load($self->ScripAction, $self->Template); - } - return ($self->{'ScripActionObj'}); + +=item ScripConditionObj + +Returns the ScripCondition Object which has the id returned by ScripCondition + + +=cut + +sub ScripConditionObj { + my $self = shift; + my $ScripCondition = RT::ScripCondition->new($self->CurrentUser); + $ScripCondition->Load($self->__Value('ScripCondition')); + return($ScripCondition); } -# }}} +=item ScripAction + +Returns the current value of ScripAction. +(In the database, ScripAction is stored as int(11).) + + + +=item SetScripAction VALUE -# {{{ sub TemplateObj -=head2 TemplateObj +Set ScripAction to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ScripAction will be stored as a int(11).) -Retuns an RT::Template object with this Scrip\'s Template =cut -sub TemplateObj { - my $self = shift; - - unless (defined $self->{'TemplateObj'}) { - require RT::Template; - $self->{'TemplateObj'} = RT::Template->new($self->CurrentUser); - $self->{'TemplateObj'}->Load($self->Template); - } - return ($self->{'TemplateObj'}); -} -# }}} +=item ScripActionObj -# {{{ sub Prepare -=head2 Prepare +Returns the ScripAction Object which has the id returned by ScripAction -Calls the action object's prepare method =cut -sub Prepare { - my $self = shift; - $self->ActionObj->Prepare(@_); +sub ScripActionObj { + my $self = shift; + my $ScripAction = RT::ScripAction->new($self->CurrentUser); + $ScripAction->Load($self->__Value('ScripAction')); + return($ScripAction); } -# }}} +=item ConditionRules + +Returns the current value of ConditionRules. +(In the database, ConditionRules is stored as text.) + -# {{{ sub Commit -=head2 Commit -Calls the action object's commit method +=item SetConditionRules VALUE + + +Set ConditionRules to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ConditionRules will be stored as a text.) + =cut -sub Commit { - my $self = shift; - $self->ActionObj->Commit(@_); -} -# }}} +=item ActionRules -# {{{ sub ConditionObj +Returns the current value of ActionRules. +(In the database, ActionRules is stored as text.) -=head2 ConditionObj -Retuns an RT::ScripCondition object with this Scrip's IsApplicable + +=item SetActionRules VALUE + + +Set ActionRules to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ActionRules will be stored as a text.) + =cut -sub ConditionObj { - my $self = shift; - - unless (defined $self->{'ScripConditionObj'}) { - require RT::ScripCondition; - $self->{'ScripConditionObj'} = RT::ScripCondition->new($self->CurrentUser); - $self->{'ScripConditionObj'}->Load($self->ScripCondition); - } - return ($self->{'ScripConditionObj'}); -} -# }}} +=item CustomIsApplicableCode + +Returns the current value of CustomIsApplicableCode. +(In the database, CustomIsApplicableCode is stored as text.) + + + +=item SetCustomIsApplicableCode VALUE -# {{{ sub IsApplicable -=head2 IsApplicable +Set CustomIsApplicableCode to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, CustomIsApplicableCode will be stored as a text.) -Calls the Condition object\'s IsApplicable method =cut -sub IsApplicable { - my $self = shift; - return ($self->ConditionObj->IsApplicable(@_)); -} -# }}} +=item CustomPrepareCode -# {{{ sub DESTROY -sub DESTROY { - my $self = shift; - $self->{'ActionObj'} = undef; -} -# }}} +Returns the current value of CustomPrepareCode. +(In the database, CustomPrepareCode is stored as text.) -# {{{ ACL related methods -# {{{ sub _Set -# does an acl check and then passes off the call -sub _Set { - my $self = shift; - - unless ($self->CurrentUserHasRight('ModifyScrips')) { - $RT::Logger->debug("CurrentUser can't modify Scrips for ".$self->Queue."\n"); - return (0, 'Permission Denied'); - } - return $self->__Set(@_); -} +=item SetCustomPrepareCode VALUE -# }}} -# {{{ sub _Value -# does an acl check and then passes off the call -sub _Value { - my $self = shift; - - unless ($self->CurrentUserHasRight('ShowScrips')) { - $RT::Logger->debug("CurrentUser can't modify Scrips for ".$self->__Value('Queue')."\n"); - return (undef); - } - - return $self->__Value(@_); -} -# }}} +Set CustomPrepareCode to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, CustomPrepareCode will be stored as a text.) + + +=cut + + +=item CustomCommitCode + +Returns the current value of CustomCommitCode. +(In the database, CustomCommitCode is stored as text.) + -# {{{ sub CurrentUserHasRight -=head2 CurrentUserHasRight +=item SetCustomCommitCode VALUE + + +Set CustomCommitCode to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, CustomCommitCode will be stored as a text.) -Helper menthod for HasRight. Presets Principal to CurrentUser then -calls HasRight. =cut -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - return ($self->HasRight( Principal => $self->CurrentUser->UserObj, - Right => $right )); - + +=item Stage + +Returns the current value of Stage. +(In the database, Stage is stored as varchar(32).) + + + +=item SetStage VALUE + + +Set Stage to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Stage will be stored as a varchar(32).) + + +=cut + + +=item Queue + +Returns the current value of Queue. +(In the database, Queue is stored as int(11).) + + + +=item SetQueue VALUE + + +Set Queue to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Queue will be stored as a int(11).) + + +=cut + + +=item QueueObj + +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); } -# }}} +=item Template + +Returns the current value of Template. +(In the database, Template is stored as int(11).) + + + +=item SetTemplate VALUE -# {{{ sub HasRight -=head2 HasRight +Set Template to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Template will be stored as a int(11).) -Takes a param-hash consisting of "Right" and "Principal" Principal is -an RT::User object or an RT::CurrentUser object. "Right" is a textual -Right string that applies to Scrips. =cut -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => undef, - @_ ); - - if ((defined $self->SUPER::_Value('Queue')) and ($self->SUPER::_Value('Queue') != 0)) { - return ( $args{'Principal'}->HasQueueRight( - Right => $args{'Right'}, - Queue => $self->SUPER::_Value('Queue'), - Principal => $args{'Principal'} - ) - ); - - } - else { - return( $args{'Principal'}->HasSystemRight( $args{'Right'}) ); - } + +=item TemplateObj + +Returns the Template Object which has the id returned by Template + + +=cut + +sub TemplateObj { + my $self = shift; + my $Template = RT::Template->new($self->CurrentUser); + $Template->Load($self->__Value('Template')); + return($Template); } -# }}} -# }}} +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) + + +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + +=item LastUpdatedBy + +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) + + +=cut + + +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) + + +=cut -1; +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + ScripCondition => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + ScripAction => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + ConditionRules => + {read => 1, write => 1, type => 'text', default => ''}, + ActionRules => + {read => 1, write => 1, type => 'text', default => ''}, + CustomIsApplicableCode => + {read => 1, write => 1, type => 'text', default => ''}, + CustomPrepareCode => + {read => 1, write => 1, type => 'text', default => ''}, + CustomCommitCode => + {read => 1, write => 1, type => 'text', default => ''}, + Stage => + {read => 1, write => 1, type => 'varchar(32)', default => ''}, + Queue => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Template => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + 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::Scrip_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrip_Overlay.pm}) { + die $@; + }; + + eval "require RT::Scrip_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrip_Vendor.pm}) { + die $@; + }; + + eval "require RT::Scrip_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrip_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::Scrip_Overlay, RT::Scrip_Vendor, RT::Scrip_Local + +=cut + + +1; diff --git a/rt/lib/RT/ScripAction.pm b/rt/lib/RT/ScripAction.pm index 471ad9191..26824df5d 100755 --- a/rt/lib/RT/ScripAction.pm +++ b/rt/lib/RT/ScripAction.pm @@ -1,200 +1,279 @@ -# Copyright 1999-2000 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public License -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripAction.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::ScripAction - RT Action object +RT::ScripAction + =head1 SYNOPSIS - use RT::ScripAction; +=head1 DESCRIPTION +=head1 METHODS + +=cut + +package RT::ScripAction; +use RT::Record; -=head1 DESCRIPTION -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in other modules. +use vars qw( @ISA ); +@ISA= qw( RT::Record ); +sub _Init { + my $self = shift; -=begin testing + $self->Table('ScripActions'); + $self->SUPER::_Init(@_); +} -ok (require RT::TestHarness); -ok (require RT::ScripAction); -=end testing -=head1 METHODS + + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(200) 'Name'. + varchar(255) 'Description'. + varchar(60) 'ExecModule'. + varchar(255) 'Argument'. =cut -package RT::ScripAction; -use RT::Record; -@ISA= qw(RT::Record); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ScripActions"; - return ($self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub _Accessible -sub _Accessible { + + +sub Create { my $self = shift; - my %Cols = ( Name => 'read', - Description => 'read', - ExecModule => 'read', - Argument => 'read', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - ); - return($self->SUPER::_Accessible(@_, %Cols)); + my %args = ( + Name => '', + Description => '', + ExecModule => '', + Argument => '', + + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Description => $args{'Description'}, + ExecModule => $args{'ExecModule'}, + Argument => $args{'Argument'}, +); + } -# }}} -# {{{ sub Create -=head2 Create - - Takes a hash. Creates a new Action entry. - should be better documented. + + +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + + =cut -sub Create { - my $self = shift; - #TODO check these args and do smart things. - return($self->SUPER::Create(@_)); -} -# }}} -# {{{ sub Delete -sub Delete { - my $self = shift; - - return (0, "ScripAction->Delete not implemented"); -} -# }}} +=item Name + +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) -# {{{ sub Load -sub Load { - my $self = shift; - my $identifier = shift; - - if (!$identifier) { - return (0, 'Input error'); - } - - if ($identifier !~ /\D/) { - $self->SUPER::LoadById($identifier); - } - else { - $self->LoadByCol('Name', $identifier); - - } - - if (@_) { - # Set the template Id to the passed in template - my $template = shift; - - $self->{'Template'} = $template; - } - return ($self->Id, 'ScripAction loaded'); -} -# }}} -# {{{ sub LoadAction -=head2 LoadAction HASH +=item SetName VALUE + + +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) - Takes a hash consisting of TicketObj and TransactionObj. Loads an RT::Action:: module. =cut -sub LoadAction { - my $self = shift; - my %args = ( TransactionObj => undef, - TicketObj => undef, - @_ ); - - #TODO: Put this in an eval - $self->ExecModule =~ /^(\w+)$/; - my $module = $1; - my $type = "RT::Action::". $module; - - $RT::Logger->debug("now requiring $type\n"); - eval "require $type" || die "Require of $type failed.\n$@\n"; - - $self->{'Action'} = $type->new ( 'ScripActionObj' => $self, - 'TicketObj' => $args{'TicketObj'}, - 'TransactionObj' => $args{'TransactionObj'}, - 'TemplateObj' => $self->TemplateObj, - 'Argument' => $self->Argument, - ); -} -# }}} -# {{{ sub TemplateObj +=item Description + +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) + + -=head2 TemplateObj +=item SetDescription VALUE + + +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) -Return this action\'s template object =cut -sub TemplateObj { - my $self = shift; - return undef unless $self->{Template}; - if (!$self->{'TemplateObj'}) { - require RT::Template; - $self->{'TemplateObj'} = RT::Template->new($self->CurrentUser); - $self->{'TemplateObj'}->LoadById($self->{'Template'}); - - } - - return ($self->{'TemplateObj'}); -} -# }}} -# The following methods call the action object +=item ExecModule -# {{{ sub Prepare +Returns the current value of ExecModule. +(In the database, ExecModule is stored as varchar(60).) -sub Prepare { - my $self = shift; - return ($self->{'Action'}->Prepare()); - -} -# }}} -# {{{ sub Commit -sub Commit { - my $self = shift; - return($self->{'Action'}->Commit()); - - -} -# }}} -# {{{ sub Describe -sub Describe { - my $self = shift; - return ($self->{'Action'}->Describe()); - -} -# }}} +=item SetExecModule VALUE -# {{{ sub DESTROY -sub DESTROY { - my $self=shift; - $self->{'Action'} = undef; - $self->{'TemplateObj'} = undef; -} -# }}} +Set ExecModule to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ExecModule will be stored as a varchar(60).) -1; +=cut + + +=item Argument + +Returns the current value of Argument. +(In the database, Argument is stored as varchar(255).) + + +=item SetArgument VALUE + + +Set Argument to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Argument will be stored as a varchar(255).) + + +=cut + + +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) + + +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + +=item LastUpdatedBy + +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) + + +=cut + + +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) + + +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + ExecModule => + {read => 1, write => 1, type => 'varchar(60)', default => ''}, + Argument => + {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::ScripAction_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripAction_Overlay.pm}) { + die $@; + }; + + eval "require RT::ScripAction_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripAction_Vendor.pm}) { + die $@; + }; + + eval "require RT::ScripAction_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripAction_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::ScripAction_Overlay, RT::ScripAction_Vendor, RT::ScripAction_Local + +=cut + + +1; diff --git a/rt/lib/RT/ScripAction_Overlay.pm b/rt/lib/RT/ScripAction_Overlay.pm new file mode 100644 index 000000000..e2b018aaf --- /dev/null +++ b/rt/lib/RT/ScripAction_Overlay.pm @@ -0,0 +1,217 @@ +# 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. +# +# 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::ScripAction - RT Action object + +=head1 SYNOPSIS + + use RT::ScripAction; + + +=head1 DESCRIPTION + +This module should never be called directly by client code. it's an internal module which +should only be accessed through exported APIs in other modules. + + +=begin testing + +ok (require RT::ScripAction); + +=end testing + +=head1 METHODS + +=cut + +use strict; +no warnings qw(redefine); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "ScripActions"; + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _Accessible +sub _Accessible { + my $self = shift; + my %Cols = ( Name => 'read', + Description => 'read', + ExecModule => 'read', + Argument => 'read', + Creator => 'read/auto', + Created => 'read/auto', + LastUpdatedBy => 'read/auto', + LastUpdated => 'read/auto' + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} +# }}} + +# {{{ sub Create +=head2 Create + + Takes a hash. Creates a new Action entry. + should be better documented. +=cut + +sub Create { + my $self = shift; + #TODO check these args and do smart things. + return($self->SUPER::Create(@_)); +} +# }}} + +# {{{ sub Delete +sub Delete { + my $self = shift; + + return (0, "ScripAction->Delete not implemented"); +} +# }}} + +# {{{ sub Load +sub Load { + my $self = shift; + my $identifier = shift; + + if (!$identifier) { + return (0, $self->loc('Input error')); + } + + if ($identifier !~ /\D/) { + $self->SUPER::Load($identifier); + } + else { + $self->LoadByCol('Name', $identifier); + + } + + if (@_) { + # Set the template Id to the passed in template + my $template = shift; + + $self->{'Template'} = $template; + } + return ($self->loc('[_1] ScripAction loaded', $self->Id)); +} +# }}} + +# {{{ sub LoadAction + +=head2 LoadAction HASH + + Takes a hash consisting of TicketObj and TransactionObj. Loads an RT::Action:: module. + +=cut + +sub LoadAction { + my $self = shift; + my %args = ( TransactionObj => undef, + TicketObj => undef, + @_ ); + + #TODO: Put this in an eval + $self->ExecModule =~ /^(\w+)$/; + my $module = $1; + my $type = "RT::Action::". $module; + + eval "require $type" || die "Require of $type failed.\n$@\n"; + + $self->{'Action'} = $type->new ( 'ScripActionObj' => $self, + 'TicketObj' => $args{'TicketObj'}, + 'ScripObj' => $args{'ScripObj'}, + 'TransactionObj' => $args{'TransactionObj'}, + 'TemplateObj' => $self->TemplateObj, + 'Argument' => $self->Argument, + ); +} +# }}} + +# {{{ sub TemplateObj + +=head2 TemplateObj + +Return this action\'s template object + +=cut + +sub TemplateObj { + my $self = shift; + return undef unless $self->{Template}; + if (!$self->{'TemplateObj'}) { + require RT::Template; + $self->{'TemplateObj'} = RT::Template->new($self->CurrentUser); + $self->{'TemplateObj'}->LoadById($self->{'Template'}); + + } + + return ($self->{'TemplateObj'}); +} +# }}} + +# The following methods call the action object + +# {{{ sub Prepare + +sub Prepare { + my $self = shift; + return ($self->{'Action'}->Prepare()); + +} +# }}} + +# {{{ sub Commit +sub Commit { + my $self = shift; + return($self->{'Action'}->Commit()); + + +} +# }}} + +# {{{ sub Describe +sub Describe { + my $self = shift; + return ($self->{'Action'}->Describe()); + +} +# }}} + +# {{{ sub DESTROY +sub DESTROY { + my $self=shift; + $self->{'Action'} = undef; + $self->{'TemplateObj'} = undef; +} +# }}} + + +1; + + diff --git a/rt/lib/RT/ScripActions.pm b/rt/lib/RT/ScripActions.pm index ec6141559..614ff374f 100755 --- a/rt/lib/RT/ScripActions.pm +++ b/rt/lib/RT/ScripActions.pm @@ -1,70 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripActions.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::ScripActions - Collection of Action objects +=head1 NAME + RT::ScripActions -- Class Description + =head1 SYNOPSIS - use RT::ScripActions; - + use RT::ScripActions =head1 DESCRIPTION -=begin testing - -ok (require RT::TestHarness); -ok (require RT::ScripActions); - -=end testing - =head1 METHODS =cut package RT::ScripActions; -use RT::EasySearch; + +use RT::SearchBuilder; use RT::ScripAction; -@ISA= qw(RT::EasySearch); +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ScripActions"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub LimitToType -sub LimitToType { - my $self = shift; - my $type = shift; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => "$type") - if defined $type; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => "Correspond") - if $type eq "Create"; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => 'any'); - + +sub _Init { + my $self = shift; + $self->{'table'} = 'ScripActions'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return(RT::ScripAction->new($self->CurrentUser)); +=item NewItem + +Returns an empty new RT::ScripAction item + +=cut + +sub NewItem { + my $self = shift; + return(RT::ScripAction->new($self->CurrentUser)); } -# }}} + eval "require RT::ScripActions_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripActions_Overlay.pm}) { + die $@; + }; -1; + eval "require RT::ScripActions_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripActions_Vendor.pm}) { + die $@; + }; + eval "require RT::ScripActions_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripActions_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::ScripActions_Overlay, RT::ScripActions_Vendor, RT::ScripActions_Local + +=cut + + +1; diff --git a/rt/lib/RT/ScripActions_Overlay.pm b/rt/lib/RT/ScripActions_Overlay.pm new file mode 100644 index 000000000..83cd646ef --- /dev/null +++ b/rt/lib/RT/ScripActions_Overlay.pm @@ -0,0 +1,87 @@ +# 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. +# +# 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::ScripActions - Collection of Action objects + +=head1 SYNOPSIS + + use RT::ScripActions; + + +=head1 DESCRIPTION + + +=begin testing + +ok (require RT::ScripActions); + +=end testing + +=head1 METHODS + +=cut + +use strict; +no warnings qw(redefine); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "ScripActions"; + $self->{'primary_key'} = "id"; + return ( $self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub LimitToType +sub LimitToType { + my $self = shift; + my $type = shift; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => "$type") + if defined $type; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => "Correspond") + if $type eq "Create"; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => 'any'); + +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + return(RT::ScripAction->new($self->CurrentUser)); + +} +# }}} + + +1; + diff --git a/rt/lib/RT/ScripCondition.pm b/rt/lib/RT/ScripCondition.pm index 253502bd4..fe0aa2d5a 100755 --- a/rt/lib/RT/ScripCondition.pm +++ b/rt/lib/RT/ScripCondition.pm @@ -1,192 +1,302 @@ -# Copyright 1999-2000 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public License -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripCondition.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::ScripCondition - RT scrip conditional +RT::ScripCondition + =head1 SYNOPSIS - use RT::ScripCondition; +=head1 DESCRIPTION +=head1 METHODS -=head1 DESCRIPTION +=cut -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in other modules. +package RT::ScripCondition; +use RT::Record; -=begin testing +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -ok (require RT::TestHarness); -ok (require RT::ScripCondition); +sub _Init { + my $self = shift; -=end testing + $self->Table('ScripConditions'); + $self->SUPER::_Init(@_); +} -=head1 METHODS + + + + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(200) 'Name'. + varchar(255) 'Description'. + varchar(60) 'ExecModule'. + varchar(255) 'Argument'. + varchar(60) 'ApplicableTransTypes'. =cut -package RT::ScripCondition; -use RT::Record; -@ISA= qw(RT::Record); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ScripConditions"; - return ($self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub _Accessible -sub _Accessible { + + +sub Create { my $self = shift; - my %Cols = ( Name => 'read', - Description => 'read', - ApplicableTransTypes => 'read', - ExecModule => 'read', - Argument => 'read', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - ); - return($self->SUPER::_Accessible(@_, %Cols)); + my %args = ( + Name => '', + Description => '', + ExecModule => '', + Argument => '', + ApplicableTransTypes => '', + + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Description => $args{'Description'}, + ExecModule => $args{'ExecModule'}, + Argument => $args{'Argument'}, + ApplicableTransTypes => $args{'ApplicableTransTypes'}, +); + } -# }}} -# {{{ sub Create -=head2 Create - - Takes a hash. Creates a new Condition entry. - should be better documented. + +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + =cut -sub Create { - my $self = shift; - return($self->SUPER::Create(@_)); -} -# }}} -# {{{ sub Delete +=item Name -=head2 Delete +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) + + + +=item SetName VALUE + + +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) -No API available for deleting things just yet. =cut -sub Delete { - my $self = shift; - return(0,'Unimplemented'); -} -# }}} -# {{{ sub Load +=item Description -=head2 Load IDENTIFIER +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) + + + +=item SetDescription VALUE + + +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) -Loads a condition takes a name or ScripCondition id. =cut -sub Load { - my $self = shift; - my $identifier = shift; - - unless (defined $identifier) { - return (undef); - } - - if ($identifier !~ /\D/) { - return ($self->SUPER::LoadById($identifier)); - } - else { - return ($self->LoadByCol('Name', $identifier)); - } -} -# }}} -# {{{ sub LoadCondition +=item ExecModule + +Returns the current value of ExecModule. +(In the database, ExecModule is stored as varchar(60).) + + + +=item SetExecModule VALUE + -=head2 LoadCondition HASH +Set ExecModule to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ExecModule will be stored as a varchar(60).) -takes a hash which has the following elements: TransactionObj and TicketObj. -Loads the Condition module in question. =cut -sub LoadCondition { - my $self = shift; - my %args = ( TransactionObj => undef, - TicketObj => undef, - @_ ); - - #TODO: Put this in an eval - $self->ExecModule =~ /^(\w+)$/; - my $module = $1; - my $type = "RT::Condition::". $module; - - $RT::Logger->debug("now requiring $type\n"); - eval "require $type" || die "Require of $type failed.\n$@\n"; - - $self->{'Condition'} = $type->new ( 'ScripConditionObj' => $self, - 'TicketObj' => $args{'TicketObj'}, - 'TransactionObj' => $args{'TransactionObj'}, - 'Argument' => $self->Argument, - 'ApplicableTransTypes' => $self->ApplicableTransTypes, - ); -} -# }}} +=item Argument + +Returns the current value of Argument. +(In the database, Argument is stored as varchar(255).) -# {{{ The following methods call the Condition object -# {{{ sub Describe +=item SetArgument VALUE -=head2 Describe -Helper method to call the condition module\'s Describe method. +Set Argument to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Argument will be stored as a varchar(255).) + =cut -sub Describe { - my $self = shift; - return ($self->{'Condition'}->Describe()); - -} -# }}} -# {{{ sub IsApplicable +=item ApplicableTransTypes -=head2 IsApplicable +Returns the current value of ApplicableTransTypes. +(In the database, ApplicableTransTypes is stored as varchar(60).) + + + +=item SetApplicableTransTypes VALUE + + +Set ApplicableTransTypes to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ApplicableTransTypes will be stored as a varchar(60).) -Helper method to call the condition module\'s IsApplicable method. =cut -sub IsApplicable { - my $self = shift; - return ($self->{'Condition'}->IsApplicable()); - -} -# }}} -# }}} +=item Creator -# {{{ sub DESTROY -sub DESTROY { - my $self=shift; - $self->{'Condition'} = undef; -} -# }}} +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) -1; +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + +=item LastUpdatedBy + +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) + + +=cut + + +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + ExecModule => + {read => 1, write => 1, type => 'varchar(60)', default => ''}, + Argument => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + ApplicableTransTypes => + {read => 1, write => 1, type => 'varchar(60)', 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::ScripCondition_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripCondition_Overlay.pm}) { + die $@; + }; + + eval "require RT::ScripCondition_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripCondition_Vendor.pm}) { + die $@; + }; + + eval "require RT::ScripCondition_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripCondition_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::ScripCondition_Overlay, RT::ScripCondition_Vendor, RT::ScripCondition_Local + +=cut + + +1; diff --git a/rt/lib/RT/ScripCondition_Overlay.pm b/rt/lib/RT/ScripCondition_Overlay.pm new file mode 100644 index 000000000..158bc5771 --- /dev/null +++ b/rt/lib/RT/ScripCondition_Overlay.pm @@ -0,0 +1,210 @@ +# 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. +# +# 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::ScripCondition - RT scrip conditional + +=head1 SYNOPSIS + + use RT::ScripCondition; + + +=head1 DESCRIPTION + +This module should never be called directly by client code. it's an internal module which +should only be accessed through exported APIs in other modules. + + +=begin testing + +ok (require RT::ScripCondition); + +=end testing + +=head1 METHODS + +=cut + +use strict; +no warnings qw(redefine); + + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "ScripConditions"; + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _Accessible +sub _Accessible { + my $self = shift; + my %Cols = ( Name => 'read', + Description => 'read', + ApplicableTransTypes => 'read', + ExecModule => 'read', + Argument => 'read', + Creator => 'read/auto', + Created => 'read/auto', + LastUpdatedBy => 'read/auto', + LastUpdated => 'read/auto' + ); + return($self->SUPER::_Accessible(@_, %Cols)); +} +# }}} + +# {{{ sub Create + +=head2 Create + + Takes a hash. Creates a new Condition entry. + should be better documented. + +=cut + +sub Create { + my $self = shift; + return($self->SUPER::Create(@_)); +} +# }}} + +# {{{ sub Delete + +=head2 Delete + +No API available for deleting things just yet. + +=cut + +sub Delete { + my $self = shift; + return(0, $self->loc('Unimplemented')); +} +# }}} + +# {{{ sub Load + +=head2 Load IDENTIFIER + +Loads a condition takes a name or ScripCondition id. + +=cut + +sub Load { + my $self = shift; + my $identifier = shift; + + unless (defined $identifier) { + return (undef); + } + + if ($identifier !~ /\D/) { + return ($self->SUPER::LoadById($identifier)); + } + else { + return ($self->LoadByCol('Name', $identifier)); + } +} +# }}} + +# {{{ sub LoadCondition + +=head2 LoadCondition HASH + +takes a hash which has the following elements: TransactionObj and TicketObj. +Loads the Condition module in question. + +=cut + + +sub LoadCondition { + my $self = shift; + my %args = ( TransactionObj => undef, + TicketObj => undef, + @_ ); + + #TODO: Put this in an eval + $self->ExecModule =~ /^(\w+)$/; + my $module = $1; + my $type = "RT::Condition::". $module; + + eval "require $type" || die "Require of $type failed.\n$@\n"; + + $self->{'Condition'} = $type->new ( 'ScripConditionObj' => $self, + 'TicketObj' => $args{'TicketObj'}, + 'ScripObj' => $args{'ScripObj'}, + 'TransactionObj' => $args{'TransactionObj'}, + 'Argument' => $self->Argument, + 'ApplicableTransTypes' => $self->ApplicableTransTypes, + ); +} +# }}} + +# {{{ The following methods call the Condition object + + +# {{{ sub Describe + +=head2 Describe + +Helper method to call the condition module\'s Describe method. + +=cut + +sub Describe { + my $self = shift; + return ($self->{'Condition'}->Describe()); + +} +# }}} + +# {{{ sub IsApplicable + +=head2 IsApplicable + +Helper method to call the condition module\'s IsApplicable method. + +=cut + +sub IsApplicable { + my $self = shift; + return ($self->{'Condition'}->IsApplicable()); + +} +# }}} + +# }}} + +# {{{ sub DESTROY +sub DESTROY { + my $self=shift; + $self->{'Condition'} = undef; +} +# }}} + + +1; + + diff --git a/rt/lib/RT/ScripConditions.pm b/rt/lib/RT/ScripConditions.pm index 236e6718d..34f788d9c 100755 --- a/rt/lib/RT/ScripConditions.pm +++ b/rt/lib/RT/ScripConditions.pm @@ -1,69 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripConditions.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::ScripConditions - Collection of Action objects +=head1 NAME + RT::ScripConditions -- Class Description + =head1 SYNOPSIS - use RT::ScripConditions; - + use RT::ScripConditions =head1 DESCRIPTION - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::ScripConditions); - -=end testing - =head1 METHODS =cut package RT::ScripConditions; -use RT::EasySearch; + +use RT::SearchBuilder; use RT::ScripCondition; -@ISA= qw(RT::EasySearch); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ScripConditions"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub LimitToType -sub LimitToType { - my $self = shift; - my $type = shift; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => "$type") - if defined $type; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => "Correspond") - if $type eq "Create"; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => 'any'); - + +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + + +sub _Init { + my $self = shift; + $self->{'table'} = 'ScripConditions'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return(RT::ScripCondition->new($self->CurrentUser)); + +=item NewItem + +Returns an empty new RT::ScripCondition item + +=cut + +sub NewItem { + my $self = shift; + return(RT::ScripCondition->new($self->CurrentUser)); } -# }}} + eval "require RT::ScripConditions_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripConditions_Overlay.pm}) { + die $@; + }; -1; + eval "require RT::ScripConditions_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripConditions_Vendor.pm}) { + die $@; + }; + + eval "require RT::ScripConditions_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripConditions_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::ScripConditions_Overlay, RT::ScripConditions_Vendor, RT::ScripConditions_Local + +=cut + + +1; diff --git a/rt/lib/RT/ScripConditions_Overlay.pm b/rt/lib/RT/ScripConditions_Overlay.pm new file mode 100644 index 000000000..8bef90801 --- /dev/null +++ b/rt/lib/RT/ScripConditions_Overlay.pm @@ -0,0 +1,87 @@ +# 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. +# +# 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::ScripConditions - Collection of Action objects + +=head1 SYNOPSIS + + use RT::ScripConditions; + + +=head1 DESCRIPTION + + + +=begin testing + +ok (require RT::ScripConditions); + +=end testing + +=head1 METHODS + +=cut + +use strict; +no warnings qw(redefine); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "ScripConditions"; + $self->{'primary_key'} = "id"; + return ( $self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub LimitToType +sub LimitToType { + my $self = shift; + my $type = shift; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => "$type") + if defined $type; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => "Correspond") + if $type eq "Create"; + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Type', + VALUE => 'any'); + +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + return(RT::ScripCondition->new($self->CurrentUser)); +} +# }}} + + +1; + diff --git a/rt/lib/RT/Scrip_Overlay.pm b/rt/lib/RT/Scrip_Overlay.pm new file mode 100644 index 000000000..06462a9ac --- /dev/null +++ b/rt/lib/RT/Scrip_Overlay.pm @@ -0,0 +1,507 @@ +# 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. +# +# 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::Scrip - an RT Scrip object + +=head1 SYNOPSIS + + use RT::Scrip; + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok (require RT::Scrip); + + +my $q = RT::Queue->new($RT::SystemUser); +$q->Create(Name => 'ScripTest'); +ok($q->Id, "Created a scriptest queue"); + +my $s1 = RT::Scrip->new($RT::SystemUser); +my ($val, $msg) =$s1->Create( Queue => $q->Id, + ScripAction => 'User Defined', + ScripCondition => 'User Defined', + CustomIsApplicableCode => 'if ($self->TicketObj->Subject =~ /fire/) { return (1);} else { return(0)}', + CustomPrepareCode => 'return 1', + CustomCommitCode => '$self->TicketObj->SetPriority("87");', + Template => 'Blank' + ); +ok($val,$msg); + +my $ticket = RT::Ticket->new($RT::SystemUser); +my ($tv,$ttv,$tm) = $ticket->Create(Queue => $q->Id, + Subject => "hair on fire", + ); +ok($tv, $tm); + +ok ($ticket->Priority == '87', "Ticket priority is set right"); + + +my $ticket2 = RT::Ticket->new($RT::SystemUser); +my ($t2v,$t2tv,$t2m) = $ticket2->Create(Queue => $q->Id, + Subject => "hair in water", + ); +ok($t2v, $t2m); + +ok ($ticket2->Priority != '87', "Ticket priority is set right"); + + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + + +# {{{ sub Create + +=head2 Create + +Creates a new entry in the Scrips table. Takes a paramhash with: + + Queue => 0, + Description => undef, + Template => undef, + ScripAction => undef, + ScripCondition => undef, + CustomPrepareCode => undef, + CustomCommitCode => undef, + CustomIsApplicableCode => undef, + + + + +Returns (retval, msg); +retval is 0 for failure or scrip id. msg is a textual description of what happened. + +=cut + +sub Create { + my $self = shift; + my %args = ( + Queue => 0, + Template => 0, # name or id + ScripAction => 0, # name or id + ScripCondition => 0, # name or id + Stage => 'TransactionCreate', + Description => undef, + CustomPrepareCode => undef, + CustomCommitCode => undef, + CustomIsApplicableCode => undef, + + @_ + ); + + + if (! $args{'Queue'} ) { + unless ( $self->CurrentUser->HasRight( Object => $RT::System, Right => 'ModifyScrips') ) { + return ( 0, $self->loc('Permission Denied') ); + } + $args{'Queue'} = 0; # avoid undef sneaking in + } + else { + my $QueueObj = new RT::Queue( $self->CurrentUser ); + $QueueObj->Load( $args{'Queue'} ); + unless ( $QueueObj->id() ) { + return ( 0, $self->loc('Invalid queue') ); + } + unless ( $QueueObj->CurrentUserHasRight('ModifyScrips') ) { + return ( 0, $self->loc('Permission Denied') ); + } + $args{'Queue'} = $QueueObj->id(); + } + + #TODO +++ validate input + + require RT::ScripAction; + my $action = new RT::ScripAction( $self->CurrentUser ); + $action->Load( $args{'ScripAction'} || '0' ); + return ( 0, $self->loc( "Action [_1] not found", $args{'ScripAction'} ) ) + unless $action->Id; + + require RT::Template; + my $template = new RT::Template( $self->CurrentUser ); + $template->Load( $args{'Template'}||'0' ); + return ( 0, $self->loc('Template not found') ) unless $template->Id; + + require RT::ScripCondition; + my $condition = new RT::ScripCondition( $self->CurrentUser ); + $condition->Load( $args{'ScripCondition'}||'0' ); + + unless ( $condition->Id ) { + return ( 0, $self->loc('Condition not found') ); + } + + my ($id,$msg) = $self->SUPER::Create( + Queue => $args{'Queue'}, + Template => $template->Id, + ScripCondition => $condition->id, + Stage => $args{'Stage'}, + ScripAction => $action->Id, + Description => $args{'Description'}, + CustomPrepareCode => $args{'CustomPrepareCode'}, + CustomCommitCode => $args{'CustomCommitCode'}, + CustomIsApplicableCode => $args{'CustomIsApplicableCode'}, + + ); + if ($id) { + return ( $id, $self->loc('Scrip Created') ); + } + else { + return($id,$msg); + } +} + +# }}} + +# {{{ sub Delete + +=head2 Delete + +Delete this object + +=cut + +sub Delete { + my $self = shift; + + unless ($self->CurrentUserHasRight('ModifyScrips')) { + return (0, $self->loc('Permission Denied')); + } + + return ($self->SUPER::Delete(@_)); +} +# }}} + +# {{{ sub QueueObj + +=head2 QueueObj + +Retuns an RT::Queue object with this Scrip\'s queue + +=cut + +sub QueueObj { + my $self = shift; + + if (!$self->{'QueueObj'}) { + require RT::Queue; + $self->{'QueueObj'} = RT::Queue->new($self->CurrentUser); + $self->{'QueueObj'}->Load($self->__Value('Queue')); + } + return ($self->{'QueueObj'}); +} + +# }}} + +# {{{ sub ActionObj + + +=head2 ActionObj + +Retuns an RT::Action object with this Scrip\'s Action + +=cut + +sub ActionObj { + my $self = shift; + + unless (defined $self->{'ScripActionObj'}) { + require RT::ScripAction; + + $self->{'ScripActionObj'} = RT::ScripAction->new($self->CurrentUser); + #TODO: why are we loading Actions with templates like this. + # two seperate methods might make more sense + $self->{'ScripActionObj'}->Load($self->ScripAction, $self->Template); + } + return ($self->{'ScripActionObj'}); +} + +# }}} + +# {{{ sub ConditionObj + +=head2 ConditionObj + +Retuns an RT::ScripCondition object with this Scrip's IsApplicable + +=cut + +sub ConditionObj { + my $self = shift; + + unless (defined $self->{'ScripConditionObj'}) { + require RT::ScripCondition; + $self->{'ScripConditionObj'} = RT::ScripCondition->new($self->CurrentUser); + $self->{'ScripConditionObj'}->Load($self->ScripCondition); + } + return ($self->{'ScripConditionObj'}); +} + +# }}} + +# {{{ sub TemplateObj +=head2 TemplateObj + +Retuns an RT::Template object with this Scrip\'s Template + +=cut + +sub TemplateObj { + my $self = shift; + + unless (defined $self->{'TemplateObj'}) { + require RT::Template; + $self->{'TemplateObj'} = RT::Template->new($self->CurrentUser); + $self->{'TemplateObj'}->Load($self->Template); + } + return ($self->{'TemplateObj'}); +} + +# }}} + + +# {{{ Dealing with this instance of a scrip + +=head2 Apply { TicketObj => undef, TransactionObj => undef} + +This method instantiates the ScripCondition and ScripAction objects for a +single execution of this scrip. it then calls the IsApplicable method of the +ScripCondition. +If that succeeds, it calls the Prepare method of the +ScripAction. If that succeeds, it calls the Commit method of the ScripAction. + +Usually, the ticket and transaction objects passed to this method +should be loaded by the SuperUser role + +=cut + + +# {{{ sub Apply + +sub Apply { + my $self = shift; + my %args = ( TicketObj => undef, + TransactionObj => undef, + @_ ); + + # We want to make sure that if a scrip dies, we don't get + # hurt + eval { + + #Load the scrip's Condition object + $self->ConditionObj->LoadCondition( + ScripObj => $self, + TicketObj => $args{'TicketObj'}, + TransactionObj => $args{'TransactionObj'}, + ); + + unless ( $self->IsApplicable() ) { + $self->ConditionObj->DESTROY; + return (undef); + } + + #If it's applicable, prepare and commit it + $self->ActionObj->LoadAction( ScripObj => $self, + TicketObj => $args{'TicketObj'}, + TransactionObj => $args{'TransactionObj'}, + ); + + unless ( $self->Prepare() ) { + $RT::Logger->info( + "$self: Couldn't prepare " . $self->ActionObj->Name ); + $self->ActionObj->DESTROY(); + $self->ConditionObj->DESTROY(); + return (undef); + } + unless ( $self->Commit() ) { + $RT::Logger->info( + "$self: Couldn't commit " . $self->ActionObj->Name ); + $self->ActionObj->DESTROY(); + $self->ConditionObj->DESTROY(); + return (undef); + } + + #Searchbuilder caching isn't perfectly coherent. got to reload the ticket object, since it + # may have changed + $args{'TicketObj'}->Load($args{'TicketObj'}->Id); + + #We're done with it. lets clean up. + #TODO: something else isn't letting these get garbage collected. check em out. + $self->ActionObj->DESTROY(); + $self->ConditionObj->DESTROY(); + return (1); + }; + if ($@) { + $RT::Logger->error( "Scrip " . $self->Id . " died. - " . $@ ); + } + +} +# }}} + +# {{{ sub IsApplicable + +=head2 IsApplicable + +Calls the Condition object\'s IsApplicable method + +=cut + +sub IsApplicable { + my $self = shift; + return ($self->ConditionObj->IsApplicable(@_)); +} + +# }}} + +# {{{ sub Prepare + +=head2 Prepare + +Calls the action object's prepare method + +=cut + +sub Prepare { + my $self = shift; + $self->ActionObj->Prepare(@_); +} + +# }}} + +# {{{ sub Commit + +=head2 Commit + +Calls the action object's commit method + +=cut + +sub Commit { + my $self = shift; + $self->ActionObj->Commit(@_); +} + +# }}} + +# }}} + +# {{{ sub DESTROY +sub DESTROY { + my $self = shift; + $self->{'ActionObj'} = undef; +} +# }}} + +# {{{ ACL related methods + +# {{{ sub _Set + +# does an acl check and then passes off the call +sub _Set { + my $self = shift; + + unless ($self->CurrentUserHasRight('ModifyScrips')) { + $RT::Logger->debug("CurrentUser can't modify Scrips for ".$self->Queue."\n"); + return (0, $self->loc('Permission Denied')); + } + return $self->__Set(@_); +} + +# }}} + +# {{{ sub _Value +# does an acl check and then passes off the call +sub _Value { + my $self = shift; + + unless ($self->CurrentUserHasRight('ShowScrips')) { + $RT::Logger->debug("CurrentUser can't modify Scrips for ".$self->__Value('Queue')."\n"); + return (undef); + } + + return $self->__Value(@_); +} +# }}} + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight + +Helper menthod for HasRight. Presets Principal to CurrentUser then +calls HasRight. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + return ($self->HasRight( Principal => $self->CurrentUser->UserObj, + Right => $right )); + +} + +# }}} + +# {{{ sub HasRight + +=head2 HasRight + +Takes a param-hash consisting of "Right" and "Principal" Principal is +an RT::User object or an RT::CurrentUser object. "Right" is a textual +Right string that applies to Scrips. + +=cut + +sub HasRight { + my $self = shift; + my %args = ( Right => undef, + Principal => undef, + @_ ); + + if ((defined $self->SUPER::_Value('Queue')) and ($self->SUPER::_Value('Queue') != 0)) { + return ( $args{'Principal'}->HasRight( + Right => $args{'Right'}, + Object => $self->QueueObj + ) + ); + + } + else { + return( $args{'Principal'}->HasRight( Object => $RT::System, Right => $args{'Right'}) ); + } +} +# }}} + +# }}} + +1; + + diff --git a/rt/lib/RT/Scrips.pm b/rt/lib/RT/Scrips.pm index 90be847d8..a39443136 100755 --- a/rt/lib/RT/Scrips.pm +++ b/rt/lib/RT/Scrips.pm @@ -1,127 +1,115 @@ -# Copyright 1999-2001 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public License -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Scrips.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Scrips - a collection of RT Scrip objects +=head1 NAME + RT::Scrips -- Class Description + =head1 SYNOPSIS - use RT::Scrips; + use RT::Scrips =head1 DESCRIPTION =head1 METHODS +=cut -=begin testing +package RT::Scrips; -ok (require RT::TestHarness); -ok (require RT::Scrips); +use RT::SearchBuilder; +use RT::Scrip; -=end testing +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -=cut -package RT::Scrips; -use RT::EasySearch; -use RT::Scrip; -@ISA= qw(RT::EasySearch); +sub _Init { + my $self = shift; + $self->{'table'} = 'Scrips'; + $self->{'primary_key'} = 'id'; -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Scrips"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_)); + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub LimitToQueue -=head2 LimitToQueue +=item NewItem -Takes a queue id (numerical) as its only argument. Makes sure that -Scopes it pulls out apply to this queue (or another that you've selected with -another call to this method +Returns an empty new RT::Scrip item =cut -sub LimitToQueue { - my $self = shift; - my $queue = shift; - - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Queue', - VALUE => "$queue") - if defined $queue; - +sub NewItem { + my $self = shift; + return(RT::Scrip->new($self->CurrentUser)); } -# }}} -# {{{ sub LimitToGlobal + eval "require RT::Scrips_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrips_Overlay.pm}) { + die $@; + }; -=head2 LimitToGlobal + eval "require RT::Scrips_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrips_Vendor.pm}) { + die $@; + }; -Makes sure that -Scopes it pulls out apply to all queues (or another that you've selected with -another call to this method or LimitToQueue + eval "require RT::Scrips_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrips_Local.pm}) { + die $@; + }; -=cut -sub LimitToGlobal { - my $self = shift; - - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Queue', - VALUE => 0); - -} -# }}} -# {{{ sub NewItem -sub NewItem { - my $self = shift; - - return(new RT::Scrip($self->CurrentUser)); -} -# }}} +=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. -# {{{ sub Next +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line -=head2 Next + no warnings qw(redefine); -Returns the next scrip that this user can see. +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. + +RT::Scrips_Overlay, RT::Scrips_Vendor, RT::Scrips_Local =cut - -sub Next { - my $self = shift; - - - my $Scrip = $self->SUPER::Next(); - if ((defined($Scrip)) and (ref($Scrip))) { - - if ($Scrip->CurrentUserHasRight('ShowScrips')) { - return($Scrip); - } - - #If the user doesn't have the right to show this scrip - else { - return($self->Next()); - } - } - #if there never was any scrip - else { - return(undef); - } - -} -# }}} -1; +1; diff --git a/rt/lib/RT/Scrips_Overlay.pm b/rt/lib/RT/Scrips_Overlay.pm new file mode 100644 index 000000000..46e31c2a8 --- /dev/null +++ b/rt/lib/RT/Scrips_Overlay.pm @@ -0,0 +1,133 @@ +# 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. +# +# 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::Scrips - a collection of RT Scrip objects + +=head1 SYNOPSIS + + use RT::Scrips; + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::Scrips); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +# {{{ sub LimitToQueue + +=head2 LimitToQueue + +Takes a queue id (numerical) as its only argument. Makes sure that +Scopes it pulls out apply to this queue (or another that you've selected with +another call to this method + +=cut + +sub LimitToQueue { + my $self = shift; + my $queue = shift; + + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Queue', + VALUE => "$queue") + if defined $queue; + +} +# }}} + +# {{{ sub LimitToGlobal + +=head2 LimitToGlobal + +Makes sure that +Scopes it pulls out apply to all queues (or another that you've selected with +another call to this method or LimitToQueue + +=cut + + +sub LimitToGlobal { + my $self = shift; + + $self->Limit (ENTRYAGGREGATOR => 'OR', + FIELD => 'Queue', + VALUE => 0); + +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + + return(new RT::Scrip($self->CurrentUser)); +} +# }}} + +# {{{ sub Next + +=head2 Next + +Returns the next scrip that this user can see. + +=cut + +sub Next { + my $self = shift; + + + my $Scrip = $self->SUPER::Next(); + if ((defined($Scrip)) and (ref($Scrip))) { + + if ($Scrip->CurrentUserHasRight('ShowScrips')) { + return($Scrip); + } + + #If the user doesn't have the right to show this scrip + else { + return($self->Next()); + } + } + #if there never was any scrip + else { + return(undef); + } + +} +# }}} + +1; + diff --git a/rt/lib/RT/Search/ActiveTicketsInQueue.pm b/rt/lib/RT/Search/ActiveTicketsInQueue.pm new file mode 100644 index 000000000..766e42e47 --- /dev/null +++ b/rt/lib/RT/Search/ActiveTicketsInQueue.pm @@ -0,0 +1,78 @@ +# 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. +# +# 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::Search::ActiveTicketsInQueue + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +Find all active tickets in the queue named in the argument passed in + +=head1 METHODS + + +=begin testing + +ok (require RT::Search::Generic); + +=end testing + + +=cut + +package RT::Search::ActiveTicketsInQueue; + +use strict; +use base qw(RT::Search::Generic); + + +# {{{ sub Describe +sub Describe { + my $self = shift; + return ($self->loc("No description for [_1]", ref $self)); +} +# }}} + +# {{{ sub Prepare +sub Prepare { + my $self = shift; + + $self->TicketsObj->LimitQueue(VALUE => $self->Argument); + + foreach my $status (RT::Queue->ActiveStatusArray()) { + $self->TicketsObj->LimitStatus(VALUE => $status); + } + + return(1); +} +# }}} + +eval "require RT::Search::ActiveTicketsInQueue_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Search/ActiveTicketsInQueue_Vendor.pm}); +eval "require RT::Search::ActiveTicketsInQueue_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Search/ActiveTicketsInQueue_Local.pm}); + +1; diff --git a/rt/lib/RT/Search/Generic.pm b/rt/lib/RT/Search/Generic.pm new file mode 100644 index 000000000..f872c2a3f --- /dev/null +++ b/rt/lib/RT/Search/Generic.pm @@ -0,0 +1,128 @@ +# 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. +# +# 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::Search::Generic - ; + +=head1 SYNOPSIS + + use RT::Search::Generic; + my $tickets = RT::Tickets->new($CurrentUser); + my $foo = RT::Search::Generic->new(Argument => $arg, + TicketsObj => $tickets); + $foo->Prepare(); + while ( my $ticket = $foo->Next ) { + # Do something with each ticket we've found + } + + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::Search::Generic); + +=end testing + + +=cut + +package RT::Search::Generic; + +use strict; + +# {{{ 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 = ( + TicketsObj => undef, + Argument => undef, + @_ ); + + $self->{'TicketsObj'} = $args{'TicketsObj'}; + $self->{'Argument'} = $args{'Argument'}; +} +# }}} + +# {{{ sub Argument + +=head2 Argument + +Return the optional argument associated with this Search + +=cut + +sub Argument { + my $self = shift; + return($self->{'Argument'}); +} +# }}} + + +=head2 TicketsObj + +Return the Tickets object passed into this search + +=cut + +sub TicketsObj { + my $self = shift; + return($self->{'TicketsObj'}); +} + +# {{{ sub Describe +sub Describe { + my $self = shift; + return ($self->loc("No description for [_1]", ref $self)); +} +# }}} + +# {{{ sub Prepare +sub Prepare { + my $self = shift; + return(1); +} +# }}} + +eval "require RT::Search::Generic_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Search/Generic_Vendor.pm}); +eval "require RT::Search::Generic_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Search/Generic_Local.pm}); + +1; diff --git a/rt/lib/RT/SearchBuilder.pm b/rt/lib/RT/SearchBuilder.pm new file mode 100644 index 000000000..22c9aff8c --- /dev/null +++ b/rt/lib/RT/SearchBuilder.pm @@ -0,0 +1,200 @@ +# 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. +# +# 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::SearchBuilder - a baseclass for RT collection objects + +=head1 SYNOPSIS + +=head1 DESCRIPTION + + +=head1 METHODS + + +=begin testing + +ok (require RT::SearchBuilder); + +=end testing + + +=cut + +package RT::SearchBuilder; + +use RT::Base; +use DBIx::SearchBuilder; + +use strict; +use vars qw(@ISA); +@ISA = qw(DBIx::SearchBuilder RT::Base); + +# {{{ sub _Init +sub _Init { + my $self = shift; + + $self->{'user'} = shift; + unless(defined($self->CurrentUser)) { + use Carp; + Carp::confess("$self was created without a CurrentUser"); + $RT::Logger->err("$self was created without a CurrentUser"); + return(0); + } + $self->SUPER::_Init( 'Handle' => $RT::Handle); +} +# }}} + +# {{{ sub LimitToEnabled + +=head2 LimitToEnabled + +Only find items that haven\'t been disabled + +=cut + +sub LimitToEnabled { + my $self = shift; + + $self->Limit( FIELD => 'Disabled', + VALUE => '0', + OPERATOR => '=' ); +} +# }}} + +# {{{ sub LimitToDisabled + +=head2 LimitToDeleted + +Only find items that have been deleted. + +=cut + +sub LimitToDeleted { + my $self = shift; + + $self->{'find_disabled_rows'} = 1; + $self->Limit( FIELD => 'Disabled', + OPERATOR => '=', + VALUE => '1' + ); +} +# }}} + +# {{{ sub FindAllRows + +=head2 FindAllRows + +Find all matching rows, regardless of whether they are disabled or not + +=cut + +sub FindAllRows { + shift->{'find_disabled_rows'} = 1; +} + +# {{{ sub Limit + +=head2 Limit PARAMHASH + +This Limit sub calls SUPER::Limit, but defaults "CASESENSITIVE" to 1, thus +making sure that by default lots of things don't do extra work trying to +match lower(colname) agaist lc($val); + +=cut + +sub Limit { + my $self = shift; + my %args = ( CASESENSITIVE => 1, + @_ ); + + return $self->SUPER::Limit(%args); +} + +# }}} + +# {{{ sub ItemsArrayRef + +=item ItemsArrayRef + +Return this object's ItemsArray. +If it has a SortOrder attribute, sort the array by SortOrder. +Otherwise, if it has a "Name" attribute, sort alphabetically by Name +Otherwise, just give up and return it in the order it came from the db. + + +=begin testing + +use_ok(RT::Queues); +ok(my $queues = RT::Queues->new($RT::SystemUser), 'Created a queues object'); +ok( $queues->UnLimit(),'Unlimited the result set of the queues object'); +my $items = $queues->ItemsArrayRef(); +my @items = @{$items}; + +ok($queues->NewItem->_Accessible('Name','read')); +my @sorted = sort {lc($a->Name) cmp lc($b->Name)} @items; +ok (@sorted, "We have an array of queues, sorted". join(',',map {$_->Name} @sorted)); + +ok (@items, "We have an array of queues, raw". join(',',map {$_->Name} @items)); +my @sorted_ids = map {$_->id } @sorted; +my @items_ids = map {$_->id } @items; + +is ($#sorted, $#items); +is ($sorted[0]->Name, $items[0]->Name); +is ($sorted[-1]->Name, $items[-1]->Name); +is_deeply(\@items_ids, \@sorted_ids, "ItemsArrayRef sorts alphabetically by name");; + + +=end testing + +=cut + +sub ItemsArrayRef { + my $self = shift; + my @items; + + if ($self->NewItem()->_Accessible('SortOrder','read')) { + @items = sort { $a->SortOrder <=> $b->SortOrder } @{$self->SUPER::ItemsArrayRef()}; + } + elsif ($self->NewItem()->_Accessible('Name','read')) { + @items = sort { lc($a->Name) cmp lc($b->Name) } @{$self->SUPER::ItemsArrayRef()}; + } + else { + @items = @{$self->SUPER::ItemsArrayRef()}; + } + + return(\@items); + +} + +# }}} + +eval "require RT::SearchBuilder_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/SearchBuilder_Vendor.pm}); +eval "require RT::SearchBuilder_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/SearchBuilder_Local.pm}); + +1; + + diff --git a/rt/lib/RT/System.pm b/rt/lib/RT/System.pm new file mode 100644 index 000000000..bfa5a4eb2 --- /dev/null +++ b/rt/lib/RT/System.pm @@ -0,0 +1,165 @@ +# 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. +# +# 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::System + +=head1 DESCRIPTION + +RT::System is a simple global object used as a focal point for things +that are system-wide. + +It works sort of like an RT::Record, except it's really a single object that has +an id of "1" when instantiated. + +This gets used by the ACL system so that you can have rights for the scope "RT::System" + +In the future, there will probably be other API goodness encapsulated here. + +=cut + + +package RT::System; +use base qw /RT::Base/; +use strict; + +use RT::ACL; +use vars qw/ $RIGHTS/; + +# System rights are rights granted to the whole system +# XXX TODO Can't localize these outside of having an object around. +$RIGHTS = { + SuperUser => 'Do anything and everything', # loc_pair + AdminAllPersonalGroups => + "Create, delete and modify the members of any user's personal groups" + , # loc_pair + AdminOwnPersonalGroups => + 'Create, delete and modify the members of personal groups', # loc_pair + AdminUsers => 'Create, delete and modify users', # loc_pair + ModifySelf => "Modify one's own RT account", # loc_pair + DelegateRights => + "Delegate specific rights which have been granted to you." # loc_pair +}; + +# Tell RT::ACE that this sort of object can get acls granted +$RT::ACE::OBJECT_TYPES{'RT::System'} = 1; + +foreach my $right ( keys %{$RIGHTS} ) { + $RT::ACE::LOWERCASERIGHTNAMES{ lc $right } = $right; +} + + +=head2 AvailableRights + +Returns a hash of available rights for this object. The keys are the right names and the values are a description of what the rights do + +=begin testing + +my $s = RT::System->new($RT::SystemUser); +my $rights = $s->AvailableRights; +ok ($rights, "Rights defined"); +ok ($rights->{'AdminUsers'},"AdminUsers right found"); +ok ($rights->{'CreateTicket'},"CreateTicket right found"); +ok ($rights->{'AdminGroupMembership'},"ModifyGroupMembers right found"); +ok (!$rights->{'CasdasdsreateTicket'},"bogus right not found"); + + + +=end testing + + +=cut + +sub AvailableRights { + my $self = shift; + + my $queue = RT::Queue->new($RT::SystemUser); + my $group = RT::Group->new($RT::SystemUser); + + my $qr =$queue->AvailableRights(); + my $gr = $group->AvailableRights(); + + # Build a merged list of all system wide rights, queue rights and group rights. + my %rights = (%{$RIGHTS}, %{$gr}, %{$qr}); + return(\%rights); +} + + +=head2 new + +Create a new RT::System object. Really, you should be using $RT::System + +=cut + + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $self = {}; + bless( $self, $class ); + + + return ($self); +} + +=head2 id + +Returns RT::System's id. It's 1. + + +=begin testing + +use RT::System; +my $sys = RT::System->new(); +is( $sys->Id, 1); +is ($sys->id, 1); + +=end testing + + +=cut + +*Id = \&id; + +sub id { + return (1); +} + +=head2 Load + +Since this object is pretending to be an RT::Record, we need a load method. +It does nothing + +=cut + +sub Load { + return (1); +} + +eval "require RT::System_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/System_Vendor.pm}); +eval "require RT::System_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/System_Local.pm}); + +1; diff --git a/rt/lib/RT/Template.pm b/rt/lib/RT/Template.pm index 3ef96c7df..f73ea3ed6 100755 --- a/rt/lib/RT/Template.pm +++ b/rt/lib/RT/Template.pm @@ -1,395 +1,363 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Template.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com> -# Portions Copyright 2000 Tobias Brox <tobix@cpan.org> -# Released under the terms of the GNU General Public 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Template - RT's template object +RT::Template + =head1 SYNOPSIS - use RT::Template; +=head1 DESCRIPTION +=head1 METHODS -=head1 DESCRIPTION +=cut +package RT::Template; +use RT::Record; +use RT::Queue; -=head1 METHODS -=begin testing +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('Templates'); + $self->SUPER::_Init(@_); +} + + + + + +=item Create PARAMHASH -ok(require RT::TestHarness); -ok(require RT::Template); +Create takes a hash of values and creates a row in the database: -=end testing + int(11) 'Queue'. + varchar(200) 'Name'. + varchar(255) 'Description'. + varchar(16) 'Type'. + varchar(16) 'Language'. + int(11) 'TranslationOf'. + blob 'Content'. =cut -package RT::Template; -use RT::Record; -use MIME::Entity; -use MIME::Parser; -@ISA = qw(RT::Record); -# {{{ sub _Init -sub _Init { +sub Create { my $self = shift; - $self->{'table'} = "Templates"; - return ( $self->SUPER::_Init(@_) ); + my %args = ( + Queue => '0', + Name => '', + Description => '', + Type => '', + Language => '', + TranslationOf => '0', + Content => '', + + @_); + $self->SUPER::Create( + Queue => $args{'Queue'}, + Name => $args{'Name'}, + Description => $args{'Description'}, + Type => $args{'Type'}, + Language => $args{'Language'}, + TranslationOf => $args{'TranslationOf'}, + Content => $args{'Content'}, +); + } -# }}} -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - id => 'read', - Name => 'read/write', - Description => 'read/write', - Type => 'read/write', #Type is one of Action or Message - Content => 'read/write', - Queue => 'read/write', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - ); - return $self->SUPER::_Accessible( @_, %Cols ); -} +=item id -# }}} +Returns the current value of id. +(In the database, id is stored as int(11).) -# {{{ sub _Set -sub _Set { - my $self = shift; +=cut - # use super::value or we get acl blocked - if ( ( defined $self->SUPER::_Value('Queue') ) - && ( $self->SUPER::_Value('Queue') == 0 ) ) - { - unless ( $self->CurrentUser->HasSystemRight('ModifyTemplate') ) { - return ( 0, 'Permission Denied' ); - } - } - else { - - unless ( $self->CurrentUserHasQueueRight('ModifyTemplate') ) { - return ( 0, 'Permission Denied' ); - } - } - return ( $self->SUPER::_Set(@_) ); -} +=item Queue + +Returns the current value of Queue. +(In the database, Queue is stored as int(11).) -# }}} -# {{{ sub _Value -=head2 _Value +=item SetQueue VALUE + + +Set Queue to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Queue will be stored as a int(11).) -Takes the name of a table column. -Returns its value as a string, if the user passes an ACL check =cut -sub _Value { - my $self = shift; - my $field = shift; +=item QueueObj - #If the current user doesn't have ACLs, don't let em at it. - #use super::value or we get acl blocked - if ( ( !defined $self->__Value('Queue') ) - || ( $self->__Value('Queue') == 0 ) ) - { - unless ( $self->CurrentUser->HasSystemRight('ShowTemplate') ) { - return (undef); - } - } - else { - unless ( $self->CurrentUserHasQueueRight('ShowTemplate') ) { - return (undef); - } - } - return ( $self->__Value($field) ); +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); } -# }}} +=item Name + +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) + + -# {{{ sub Load +=item SetName VALUE -=head2 Load <identifer> -Load a template, either by number or by name +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) + =cut -sub Load { - my $self = shift; - my $identifier = shift; - if ( !$identifier ) { - return (undef); - } +=item Description + +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) - if ( $identifier !~ /\D/ ) { - $self->SUPER::LoadById($identifier); - } - else { - $self->LoadByCol( 'Name', $identifier ); - } -} -# }}} +=item SetDescription VALUE -# {{{ sub LoadGlobalTemplate -=head2 LoadGlobalTemplate NAME +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) -Load the global tempalte with the name NAME =cut -sub LoadGlobalTemplate { - my $self = shift; - my $id = shift; - return ( $self->LoadQueueTemplate( Queue => 0, Name => $id ) ); -} +=item Type -# }}} +Returns the current value of Type. +(In the database, Type is stored as varchar(16).) -# {{{ sub LoadQueueTemplate -=head2 LoadQueueTemplate (Queue => QUEUEID, Name => NAME) -Loads the Queue template named NAME for Queue QUEUE. +=item SetType VALUE + + +Set Type to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Type will be stored as a varchar(16).) + =cut -sub LoadQueueTemplate { - my $self = shift; - my %args = ( - Queue => undef, - Name => undef - ); - return ( $self->LoadByCols( Name => $args{'Name'}, Queue => {'Queue'} ) ); +=item Language -} +Returns the current value of Language. +(In the database, Language is stored as varchar(16).) -# }}} -# {{{ sub Create -=head2 Create +=item SetLanguage VALUE -Takes a paramhash of Content, Queue, Name and Description. -Name should be a unique string identifying this Template. -Description and Content should be the template's title and content. -Queue should be 0 for a global template and the queue # for a queue-specific -template. -Returns the Template's id # if the create was successful. Returns undef for -unknown database failure. +Set Language to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Language will be stored as a varchar(16).) =cut -sub Create { - my $self = shift; - my %args = ( - Content => undef, - Queue => 0, - Description => '[no description]', - Type => 'Action', #By default, template are 'Action' templates - Name => undef, - @_ - ); - - if ( $args{'Queue'} == 0 ) { - unless ( $self->CurrentUser->HasSystemRight('ModifyTemplate') ) { - return (undef); - } - } - else { - my $QueueObj = new RT::Queue( $self->CurrentUser ); - $QueueObj->Load( $args{'Queue'} ) || return ( 0, 'Invalid queue' ); - - unless ( $QueueObj->CurrentUserHasRight('ModifyTemplate') ) { - return (undef); - } - } - - my $result = $self->SUPER::Create( - Content => $args{'Content'}, - Queue => $args{'Queue'}, - , - Description => $args{'Description'}, - Name => $args{'Name'} - ); - - return ($result); -} +=item TranslationOf + +Returns the current value of TranslationOf. +(In the database, TranslationOf is stored as int(11).) + + -# }}} +=item SetTranslationOf VALUE -# {{{ sub Delete -=head2 Delete +Set TranslationOf to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TranslationOf will be stored as a int(11).) -Delete this template. =cut -sub Delete { - my $self = shift; - unless ( $self->CurrentUserHasRight('ModifyTemplate') ) { - return ( 0, 'Permission Denied' ); - } +=item Content - return ( $self->SUPER::Delete(@_) ); -} +Returns the current value of Content. +(In the database, Content is stored as blob.) -# }}} -# {{{ sub MIMEObj -sub MIMEObj { - my $self = shift; - return ( $self->{'MIMEObj'} ); -} -# }}} +=item SetContent VALUE -# {{{ sub Parse -=item Parse +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 blob.) - This routine performs Text::Template parsing on thte template and then imports the - results into a MIME::Entity so we can really use it - It returns a tuple of (val, message) - If val is 0, the message contains an error message =cut -sub Parse { - my $self = shift; - #We're passing in whatever we were passed. it's destined for _ParseContent - my $content = $self->_ParseContent(@_); +=item LastUpdated - #Lets build our mime Entity +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) - my $parser = MIME::Parser->new(); - - # Do work on the parsed template in memory, rather than on disk - $parser->output_to_core(1); - ### Should we forgive normally-fatal errors? - $parser->ignore_errors(1); - $self->{'MIMEObj'} = eval { $parser->parse_data($content) }; - $error = ( $@ || $parser->last_error ); +=cut - if ($error) { - $RT::Logger->error("$error"); - return ( 0, $error ); - } - # Unfold all headers - $self->{'MIMEObj'}->head->unfold(); +=item LastUpdatedBy - return ( 1, "Template parsed" ); - +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) -} -# }}} +=cut -# {{{ sub _ParseContent -# Perform Template substitutions on the template +=item Creator -sub _ParseContent { - my $self = shift; - my %args = ( - Argument => undef, - TicketObj => undef, - TransactionObj => undef, - @_ - ); - - # Might be subject to change - use Text::Template; - - $T::Ticket = $args{'TicketObj'}; - $T::Transaction = $args{'TransactionObj'}; - $T::Argument = $args{'Argument'}; - $T::rtname = $RT::rtname; - - # We need to untaint the content of the template, since we'll be working - # with it - my $content = $self->Content(); - $content =~ s/^(.*)$/$1/; - $template = Text::Template->new( - TYPE => STRING, - SOURCE => $content - ); - - my $retval = $template->fill_in( PACKAGE => T ); - return ($retval); -} +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) -# }}} -# {{{ sub QueueObj +=cut -=head2 QueueObj -Takes nothing. returns this ticket's queue object +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + =cut -sub QueueObj { - my $self = shift; - if ( !defined $self->{'queue'} ) { - require RT::Queue; - $self->{'queue'} = RT::Queue->new( $self->CurrentUser ); - - unless ( $self->{'queue'} ) { - $RT::Logger->crit( - "RT::Queue->new(" . $self->CurrentUser . ") returned false" ); - return (undef); - } - my ($result) = $self->{'queue'}->Load( $self->__Value('Queue') ); - - } - return ( $self->{'queue'} ); -} -# }}} -# {{{ sub CurrentUserHasQueueRight +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Queue => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + Type => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + Language => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + TranslationOf => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Content => + {read => 1, write => 1, type => 'blob', default => ''}, + LastUpdated => + {read => 1, auto => 1, type => 'datetime', default => ''}, + LastUpdatedBy => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Creator => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Created => + {read => 1, auto => 1, type => 'datetime', default => ''}, + + } +}; + + + eval "require RT::Template_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Template_Overlay.pm}) { + die $@; + }; + + eval "require RT::Template_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Template_Vendor.pm}) { + die $@; + }; + + eval "require RT::Template_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Template_Local.pm}) { + die $@; + }; -=head2 CurrentUserHasQueueRight -Helper function to call the template's queue's CurrentUserHasQueueRight with the passed in args. + + +=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::Template_Overlay, RT::Template_Vendor, RT::Template_Local =cut -sub CurrentUserHasQueueRight { - my $self = shift; - return ( $self->QueueObj->CurrentUserHasRight(@_) ); -} -# }}} 1; diff --git a/rt/lib/RT/Template_Overlay.pm b/rt/lib/RT/Template_Overlay.pm new file mode 100644 index 000000000..0b5e67d0f --- /dev/null +++ b/rt/lib/RT/Template_Overlay.pm @@ -0,0 +1,411 @@ +# 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. +# +# 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> + +=head1 NAME + + RT::Template - RT's template object + +=head1 SYNOPSIS + + use RT::Template; + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok(require RT::Template); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +use Text::Template; +use MIME::Entity; +use MIME::Parser; +use File::Temp qw /tempdir/; + + +# {{{ sub _Accessible + +sub _Accessible { + my $self = shift; + my %Cols = ( + id => 'read', + Name => 'read/write', + Description => 'read/write', + Type => 'read/write', #Type is one of Action or Message + Content => 'read/write', + Queue => 'read/write', + Creator => 'read/auto', + Created => 'read/auto', + LastUpdatedBy => 'read/auto', + LastUpdated => 'read/auto' + ); + return $self->SUPER::_Accessible( @_, %Cols ); +} + +# }}} + +# {{{ sub _Set + +sub _Set { + my $self = shift; + + # use super::value or we get acl blocked + if ( ( defined $self->SUPER::_Value('Queue') ) + && ( $self->SUPER::_Value('Queue') == 0 ) ) + { + unless ( $self->CurrentUser->HasRight( Object => $RT::System, Right => 'ModifyTemplate') ) { + return ( 0, $self->loc('Permission Denied') ); + } + } + else { + + unless ( $self->CurrentUserHasQueueRight('ModifyTemplate') ) { + return ( 0, $self->loc('Permission Denied') ); + } + } + return ( $self->SUPER::_Set(@_) ); + +} + +# }}} + +# {{{ sub _Value + +=head2 _Value + +Takes the name of a table column. +Returns its value as a string, if the user passes an ACL check + + +=begin testing + +my $t = RT::Template->new($RT::SystemUser); +$t->Create(Name => "Foo", Queue => 1); +my $t2 = RT::Template->new($RT::Nobody); +$t2->Load($t->Id); +ok($t2->QueueObj->id, "Got the template's queue objet"); + +=end testing + + + +=cut + +sub _Value { + + my $self = shift; + my $field = shift; + + + #If the current user doesn't have ACLs, don't let em at it. + #use super::value or we get acl blocked + if ( ( !defined $self->__Value('Queue') ) + || ( $self->__Value('Queue') == 0 ) ) + { + unless ( $self->CurrentUser->HasRight( Object => $RT::System, Right => 'ShowTemplate') ) { + return (undef); + } + } + else { + unless ( $self->CurrentUserHasQueueRight('ShowTemplate') ) { + return (undef); + } + } + return ( $self->__Value($field) ); + +} + +# }}} + +# {{{ sub Load + +=head2 Load <identifer> + +Load a template, either by number or by name + +=cut + +sub Load { + my $self = shift; + my $identifier = shift; + + if ( !$identifier ) { + return (undef); + } + + if ( $identifier !~ /\D/ ) { + $self->SUPER::LoadById($identifier); + } + else { + $self->LoadByCol( 'Name', $identifier ); + + } +} + +# }}} + +# {{{ sub LoadGlobalTemplate + +=head2 LoadGlobalTemplate NAME + +Load the global tempalte with the name NAME + +=cut + +sub LoadGlobalTemplate { + my $self = shift; + my $id = shift; + + return ( $self->LoadQueueTemplate( Queue => 0, Name => $id ) ); +} + +# }}} + +# {{{ sub LoadQueueTemplate + +=head2 LoadQueueTemplate (Queue => QUEUEID, Name => NAME) + +Loads the Queue template named NAME for Queue QUEUE. + +=cut + +sub LoadQueueTemplate { + my $self = shift; + my %args = ( + Queue => undef, + Name => undef + ); + + return ( $self->LoadByCols( Name => $args{'Name'}, Queue => {'Queue'} ) ); + +} + +# }}} + +# {{{ sub Create + +=head2 Create + +Takes a paramhash of Content, Queue, Name and Description. +Name should be a unique string identifying this Template. +Description and Content should be the template's title and content. +Queue should be 0 for a global template and the queue # for a queue-specific +template. + +Returns the Template's id # if the create was successful. Returns undef for +unknown database failure. + + +=cut + +sub Create { + my $self = shift; + my %args = ( + Content => undef, + Queue => 0, + Description => '[no description]', + Type => 'Action', #By default, template are 'Action' templates + Name => undef, + @_ + ); + + if ( !$args{'Queue'} ) { + unless ( $self->CurrentUser->HasRight(Right =>'ModifyTemplate', Object => $RT::System) ) { + return (undef); + } + $args{'Queue'} = 0; + } + else { + my $QueueObj = new RT::Queue( $self->CurrentUser ); + $QueueObj->Load( $args{'Queue'} ) || return ( 0, $self->loc('Invalid queue') ); + + unless ( $QueueObj->CurrentUserHasRight('ModifyTemplate') ) { + return (undef); + } + $args{'Queue'} = $QueueObj->Id; + } + + my $result = $self->SUPER::Create( + Content => $args{'Content'}, + Queue => $args{'Queue'}, + Description => $args{'Description'}, + Name => $args{'Name'} + ); + + return ($result); + +} + +# }}} + +# {{{ sub Delete + +=head2 Delete + +Delete this template. + +=cut + +sub Delete { + my $self = shift; + + unless ( $self->CurrentUserHasQueueRight('ModifyTemplate') ) { + return ( 0, $self->loc('Permission Denied') ); + } + + return ( $self->SUPER::Delete(@_) ); +} + +# }}} + +# {{{ sub MIMEObj +sub MIMEObj { + my $self = shift; + return ( $self->{'MIMEObj'} ); +} + +# }}} + +# {{{ sub Parse + +=item Parse + + This routine performs Text::Template parsing on the template and then + imports the results into a MIME::Entity so we can really use it + It returns a tuple of (val, message) + If val is 0, the message contains an error message + +=cut + +sub Parse { + my $self = shift; + + #We're passing in whatever we were passed. it's destined for _ParseContent + my $content = $self->_ParseContent(@_); + + #Lets build our mime Entity + + my $parser = MIME::Parser->new(); + + # Setup output directory for files. from RT::EmailParser::_SetupMIMEParser + if (my $AttachmentDir = eval { File::Temp::tempdir( TMPDIR => 1, CLEANUP => 1 ) }) { + # Set up output directory for files: + $parser->output_dir("$AttachmentDir"); + } + else { + # On some situations TMPDIR is non-writable. sad but true. + $parser->output_to_core(1); + $parser->tmp_to_core(1); + } + #If someone includes a message, don't extract it + $parser->extract_nested_messages(1); + # Set up the prefix for files with auto-generated names: + $parser->output_prefix("part"); + # If content length is <= 50000 bytes, store each msg as in-core scalar; + # Else, write to a disk file (the default action): + $parser->output_to_core(50000); + + + ### Should we forgive normally-fatal errors? + $parser->ignore_errors(1); + $self->{'MIMEObj'} = eval { $parser->parse_data($content) }; + my $error = ( $@ || $parser->last_error ); + + if ($error) { + $RT::Logger->error("$error"); + return ( 0, $error ); + } + + # Unfold all headers + $self->{'MIMEObj'}->head->unfold(); + + return ( 1, $self->loc("Template parsed") ); + + +} + +# }}} + +# {{{ sub _ParseContent + +# Perform Template substitutions on the template + +sub _ParseContent { + my $self = shift; + my %args = ( + Argument => undef, + TicketObj => undef, + TransactionObj => undef, + @_ + ); + + + $T::Ticket = $args{'TicketObj'}; + $T::Transaction = $args{'TransactionObj'}; + $T::Argument = $args{'Argument'}; + $T::Requestor = eval { $T::Ticket->Requestors->UserMembersObj->First->Name }; + $T::rtname = $RT::rtname; + + # We need to untaint the content of the template, since we'll be working + # with it + my $content = $self->Content(); + $content =~ s/^(.*)$/$1/; + my $template = Text::Template->new( + TYPE => 'STRING', + SOURCE => $content + ); + + my $retval = $template->fill_in( PACKAGE => 'T' ); + + # MIME::Parser has problems dealing with high-bit utf8 data. + Encode::_utf8_off($retval); + return ($retval); +} + +# }}} + +# {{{ sub CurrentUserHasQueueRight + +=head2 CurrentUserHasQueueRight + +Helper function to call the template's queue's CurrentUserHasQueueRight with the passed in args. + +=cut + +sub CurrentUserHasQueueRight { + my $self = shift; + return ( $self->QueueObj->CurrentUserHasRight(@_) ); +} + +# }}} +1; diff --git a/rt/lib/RT/Templates.pm b/rt/lib/RT/Templates.pm index b5b483c96..37db84086 100755 --- a/rt/lib/RT/Templates.pm +++ b/rt/lib/RT/Templates.pm @@ -1,122 +1,115 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Templates.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Templates - a collection of RT Template objects +=head1 NAME + RT::Templates -- Class Description + =head1 SYNOPSIS - use RT::Templates; + use RT::Templates =head1 DESCRIPTION =head1 METHODS -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Templates); - -=end testing - =cut package RT::Templates; -use RT::EasySearch; -@ISA= qw(RT::EasySearch); +use RT::SearchBuilder; +use RT::Template; -# {{{ sub _Init +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -=head2 _Init - - Returns RT::Templates specific init info like table and primary key names - -=cut sub _Init { - my $self = shift; - $self->{'table'} = "Templates"; - $self->{'primary_key'} = "id"; - return ($self->SUPER::_Init(@_)); + $self->{'table'} = 'Templates'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ LimitToNotInQueue -=head2 LimitToNotInQueue +=item NewItem -Takes a queue id # and limits the returned set of templates to those which -aren't that queue's templates. +Returns an empty new RT::Template item =cut -sub LimitToNotInQueue { +sub NewItem { my $self = shift; - my $queue_id = shift; - $self->Limit(FIELD => 'Queue', - VALUE => "$queue_id", - OPERATOR => '!=' - ); + return(RT::Template->new($self->CurrentUser)); } -# }}} -# {{{ LimitToGlobal + eval "require RT::Templates_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Templates_Overlay.pm}) { + die $@; + }; -=head2 LimitToGlobal + eval "require RT::Templates_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Templates_Vendor.pm}) { + die $@; + }; -Takes no arguments. Limits the returned set to "Global" templates -which can be used with any queue. + eval "require RT::Templates_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Templates_Local.pm}) { + die $@; + }; -=cut -sub LimitToGlobal { - my $self = shift; - my $queue_id = shift; - $self->Limit(FIELD => 'Queue', - VALUE => "0", - OPERATOR => '=' - ); -} -# }}} -# {{{ LimitToQueue -=head2 LimitToQueue +=head1 SEE ALSO -Takes a queue id # and limits the returned set of templates to that queue's -templates +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. -=cut +These overlay files can contain new subs or subs to replace existing subs in this module. -sub LimitToQueue { - my $self = shift; - my $queue_id = shift; - $self->Limit(FIELD => 'Queue', - VALUE => "$queue_id", - OPERATOR => '=' - ); -} -# }}} +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line -# {{{ sub NewItem + no warnings qw(redefine); -=head2 NewItem +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. -Returns a new empty Template object +RT::Templates_Overlay, RT::Templates_Vendor, RT::Templates_Local =cut -sub NewItem { - my $self = shift; - - use RT::Template; - my $item = new RT::Template($self->CurrentUser); - return($item); -} -# }}} 1; - diff --git a/rt/lib/RT/Templates_Overlay.pm b/rt/lib/RT/Templates_Overlay.pm new file mode 100644 index 000000000..6bc992e05 --- /dev/null +++ b/rt/lib/RT/Templates_Overlay.pm @@ -0,0 +1,141 @@ +# 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. +# +# 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::Templates - a collection of RT Template objects + +=head1 SYNOPSIS + + use RT::Templates; + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok (require RT::Templates); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + + +# {{{ sub _Init + +=head2 _Init + + Returns RT::Templates specific init info like table and primary key names + +=cut + +sub _Init { + + my $self = shift; + $self->{'table'} = "Templates"; + $self->{'primary_key'} = "id"; + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ LimitToNotInQueue + +=head2 LimitToNotInQueue + +Takes a queue id # and limits the returned set of templates to those which +aren't that queue's templates. + +=cut + +sub LimitToNotInQueue { + my $self = shift; + my $queue_id = shift; + $self->Limit(FIELD => 'Queue', + VALUE => "$queue_id", + OPERATOR => '!=' + ); +} +# }}} + +# {{{ LimitToGlobal + +=head2 LimitToGlobal + +Takes no arguments. Limits the returned set to "Global" templates +which can be used with any queue. + +=cut + +sub LimitToGlobal { + my $self = shift; + my $queue_id = shift; + $self->Limit(FIELD => 'Queue', + VALUE => "0", + OPERATOR => '=' + ); +} +# }}} + +# {{{ LimitToQueue + +=head2 LimitToQueue + +Takes a queue id # and limits the returned set of templates to that queue's +templates + +=cut + +sub LimitToQueue { + my $self = shift; + my $queue_id = shift; + $self->Limit(FIELD => 'Queue', + VALUE => "$queue_id", + OPERATOR => '=' + ); +} +# }}} + +# {{{ sub NewItem + +=head2 NewItem + +Returns a new empty Template object + +=cut + +sub NewItem { + my $self = shift; + + use RT::Template; + my $item = new RT::Template($self->CurrentUser); + return($item); +} +# }}} + +1; + diff --git a/rt/lib/RT/Ticket.pm b/rt/lib/RT/Ticket.pm index f7275e4e3..2f075a20c 100755 --- a/rt/lib/RT/Ticket.pm +++ b/rt/lib/RT/Ticket.pm @@ -1,3004 +1,662 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Ticket.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2001 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! # -=head1 NAME +use strict; - RT::Ticket - RT ticket object -=head1 SYNOPSIS +=head1 NAME - use RT::Ticket; - my $ticket = new RT::Ticket($CurrentUser); - $ticket->Load($ticket_id); +RT::Ticket -=head1 DESCRIPTION -This module lets you manipulate RT\'s ticket object. +=head1 SYNOPSIS +=head1 DESCRIPTION =head1 METHODS =cut - - package RT::Ticket; +use RT::Record; use RT::Queue; -use RT::User; -use RT::Record; -use RT::Link; -use RT::Links; -use RT::Date; -use RT::Watcher; - - -@ISA= qw(RT::Record); - -=begin testing -use RT::TestHarness; - -ok(require RT::Ticket, "Loading the RT::Ticket library"); - -=end testing - -=cut - -# {{{ sub _Init +use vars qw( @ISA ); +@ISA= qw( RT::Record ); sub _Init { - my $self = shift; - $self->{'table'} = "Tickets"; - return ($self->SUPER::_Init(@_)); -} - -# }}} - -# {{{ sub Load - -=head2 Load - -Takes a single argument. This can be a ticket id, ticket alias or -local ticket uri. If the ticket can't be loaded, returns undef. -Otherwise, returns the ticket id. - -=cut - -sub Load { - my $self = shift; - my $id = shift; - - #TODO modify this routine to look at EffectiveId and do the recursive load - # thing. be careful to cache all the interim tickets we try so we don't loop forever. - - #If it's a local URI, turn it into a ticket id - if ($id =~ /^$RT::TicketBaseURI(\d+)$/) { - $id = $1; - } - #If it's a remote URI, we're going to punt for now - elsif ($id =~ '://' ) { - return (undef); - } - - #If we have an integer URI, load the ticket - if ( $id =~ /^\d+$/ ) { - my $ticketid = $self->LoadById($id); - - unless ($ticketid) { - $RT::Logger->debug("$self tried to load a bogus ticket: $id\n"); - return(undef); - } - } - - #It's not a URI. It's not a numerical ticket ID. Punt! - else { - return(undef); - } - - #If we're merged, resolve the merge. - if (($self->EffectiveId) and - ($self->EffectiveId != $self->Id)) { - return ($self->Load($self->EffectiveId)); - } - - #Ok. we're loaded. lets get outa here. - return ($self->Id); - -} - -# }}} + my $self = shift; -# {{{ sub LoadByURI - -=head2 LoadByURI - -Given a local ticket URI, loads the specified ticket. - -=cut - -sub LoadByURI { - my $self = shift; - my $uri = shift; - - if ($uri =~ /^$RT::TicketBaseURI(\d+)$/) { - my $id = $1; - return ($self->Load($id)); - } - else { - return(undef); - } + $self->Table('Tickets'); + $self->SUPER::_Init(@_); } -# }}} - -# {{{ sub Create - -=head2 Create (ARGS) - -Arguments: ARGS is a hash of named parameters. Valid parameters are: - - Queue - Either a Queue object or a Queue Name - Requestor - A reference to a list of RT::User objects, email addresses or RT user Names - Cc - A reference to a list of RT::User objects, email addresses or Names - AdminCc - A reference to a list of RT::User objects, email addresses or Names - Type -- The ticket\'s type. ignore this for now - Owner -- This ticket\'s owner. either an RT::User object or this user\'s id - Subject -- A string describing the subject of the ticket - InitialPriority -- an integer from 0 to 99 - FinalPriority -- an integer from 0 to 99 - Status -- any valid status (Defined in RT::Queue) - TimeWorked -- an integer - TimeLeft -- an integer - Starts -- an ISO date describing the ticket\'s start date and time in GMT - Due -- an ISO date describing the ticket\'s due date and time in GMT - MIMEObj -- a MIME::Entity object with the content of the initial ticket request. - - KeywordSelect-<id> -- an array of keyword ids for that keyword select - - -Returns: TICKETID, Transaction Object, Error Message - - -=begin testing - -my $t = RT::Ticket->new($RT::SystemUser); - -ok( $t->Create(Queue => 'General', Subject => 'This is a subject'), "Ticket Created"); - -ok ( my $id = $t->Id, "Got ticket id"); - -=end testing - -=cut - -sub Create { - my $self = shift; - - my %args = ( - Queue => undef, - Requestor => undef, - Cc => undef, - AdminCc => undef, - Type => 'ticket', - Owner => $RT::Nobody->UserObj, - Subject => '[no subject]', - InitialPriority => undef, - FinalPriority => undef, - Status => 'new', - TimeWorked => "0", - TimeLeft => 0, - Due => undef, - Starts => undef, - MIMEObj => undef, - @_); - - my ($ErrStr, $QueueObj, $Owner, $resolved); - my (@non_fatal_errors); - - my $now = RT::Date->new($self->CurrentUser); - $now->SetToNow(); - - if ( (defined($args{'Queue'})) && (!ref($args{'Queue'})) ) { - $QueueObj=RT::Queue->new($RT::SystemUser); - $QueueObj->Load($args{'Queue'}); - } - elsif (ref($args{'Queue'}) eq 'RT::Queue') { - $QueueObj=RT::Queue->new($RT::SystemUser); - $QueueObj->Load($args{'Queue'}->Id); - } - else { - $RT::Logger->debug("$self ". $args{'Queue'} . - " not a recognised queue object."); - } - - #Can't create a ticket without a queue. - unless (defined ($QueueObj)) { - $RT::Logger->debug( "$self No queue given for ticket creation."); - return (0, 0,'Could not create ticket. Queue not set'); - } - - #Now that we have a queue, Check the ACLS - unless ($self->CurrentUser->HasQueueRight(Right => 'CreateTicket', - QueueObj => $QueueObj )) { - return (0,0,"No permission to create tickets in the queue '". - $QueueObj->Name."'."); - } - - #Since we have a queue, we can set queue defaults - #Initial Priority - - # If there's no queue default initial priority and it's not set, set it to 0 - $args{'InitialPriority'} = ($QueueObj->InitialPriority || 0) - unless (defined $args{'InitialPriority'}); - - #Final priority - - # If there's no queue default final priority and it's not set, set it to 0 - $args{'FinalPriority'} = ($QueueObj->FinalPriority || 0) - unless (defined $args{'FinalPriority'}); - - - #TODO we should see what sort of due date we're getting, rather + - # than assuming it's in ISO format. - - #Set the due date. if we didn't get fed one, use the queue default due in - my $due = new RT::Date($self->CurrentUser); - if (defined $args{'Due'}) { - $due->Set (Format => 'ISO', - Value => $args{'Due'}); - } - elsif (defined ($QueueObj->DefaultDueIn)) { - $due->SetToNow; - $due->AddDays($QueueObj->DefaultDueIn); - } - - my $starts = new RT::Date($self->CurrentUser); - if (defined $args{'Starts'}) { - $starts->Set (Format => 'ISO', - Value => $args{'Starts'}); - } - - - # {{{ Deal with setting the owner - - if (ref($args{'Owner'}) eq 'RT::User') { - $Owner = $args{'Owner'}; - } - #If we've been handed something else, try to load the user. - elsif ($args{'Owner'}) { - $Owner = new RT::User($self->CurrentUser); - $Owner->Load($args{'Owner'}); - - } - #If we can't handle it, call it nobody - else { - if (ref($args{'Owner'})) { - $RT::Logger->warning("$ticket ->Create called with an Owner of ". - "type ".ref($args{'Owner'}) .". Defaulting to nobody.\n"); - - push @non_fatal_errors, "Invalid owner. Defaulting to 'nobody'."; - } - else { - $RT::Logger->warning("$self ->Create called with an ". - "unknown datatype for Owner: ".$args{'Owner'} . - ". Defaulting to Nobody.\n"); - } - } - - #If we have a proposed owner and they don't have the right - #to own a ticket, scream about it and make them not the owner - if ((defined ($Owner)) and - ($Owner->Id != $RT::Nobody->Id) and - (!$Owner->HasQueueRight( QueueObj => $QueueObj, - Right => 'OwnTicket'))) { - - $RT::Logger->warning("$self user ".$Owner->Name . "(".$Owner->id . - ") was proposed ". - "as a ticket owner but has no rights to own ". - "tickets in this queue\n"); - - push @non_fatal_errors, "Invalid owner. Defaulting to 'nobody'."; - - $Owner = undef; - } - - #If we haven't been handed a valid owner, make it nobody. - unless (defined ($Owner)) { - $Owner = new RT::User($self->CurrentUser); - $Owner->Load($RT::Nobody->UserObj->Id); - } - - # }}} - - unless ($self->ValidateStatus($args{'Status'})) { - return (0,0,'Invalid value for status'); - } - - if ($args{'Status'} eq 'resolved') { - $resolved = $now->ISO; - } else{ - $resolved = undef; - } - - my $id = $self->SUPER::Create( - Queue => $QueueObj->Id, - Owner => $Owner->Id, - Subject => $args{'Subject'}, - InitialPriority => $args{'InitialPriority'}, - FinalPriority => $args{'FinalPriority'}, - Priority => $args{'InitialPriority'}, - Status => $args{'Status'}, - TimeWorked => $args{'TimeWorked'}, - TimeLeft => $args{'TimeLeft'}, - Type => $args{'Type'}, - Starts => $starts->ISO, - Resolved => $resolved, - Due => $due->ISO - ); - #Set the ticket's effective ID now that we've created it. - my ($val, $msg) = $self->__Set(Field => 'EffectiveId', Value => $id); - - unless ($val) { - $RT::Logger->err("$self ->Create couldn't set EffectiveId: $msg\n"); - } - - - my $watcher; - foreach $watcher (@{$args{'Cc'}}) { - my ($wval, $wmsg) = - $self->_AddWatcher( Type => 'Cc', Person => $watcher, Silent => 1); - push @non_fatal_errors, $wmsg unless ($wval); - } - - foreach $watcher (@{$args{'Requestor'}}) { - my ($wval, $wmsg) = - $self->_AddWatcher( Type => 'Requestor', Person => $watcher, Silent => 1); - push @non_fatal_errors, $wmsg unless ($wval); - } - - foreach $watcher (@{$args{'AdminCc'}}) { - # Note that we're using AddWatcher, rather than _AddWatcher, as we - # actually _want_ that ACL check. Otherwise, random ticket creators - # could make themselves adminccs and maybe get ticket rights. that would - # be poor - my ($wval, $wmsg) = - $self->AddWatcher( Type => 'AdminCc', Person => $watcher, Silent => 1); - push @non_fatal_errors, $wmsg unless ($wval); - } - - # Iterate through all the KeywordSelect-<int> params passed in, calling _AddKeyword - # for each of them - - - foreach my $key (keys %args) { - - next unless ($key =~ /^KeywordSelect-(.*)$/); - - my $ks = $1; - - - my @keywords = ref($args{$key}) eq 'ARRAY' ? - @{$args{$key}} : ($args{$key}); - - foreach my $keyword (@keywords) { - my ($kval, $kmsg) = $self->_AddKeyword(KeywordSelect => $ks, - Keyword => $keyword, - Silent => 1); - } - push @non_fatal_errors, $kmsg unless ($kval); - } - - - - #Add a transaction for the create - my ($Trans, $Msg, $TransObj) = - $self->_NewTransaction( Type => "Create", - TimeTaken => 0, - MIMEObj=>$args{'MIMEObj'}); - - # Logging - if ($self->Id && $Trans) { - $ErrStr = "Ticket ".$self->Id . " created in queue '". $QueueObj->Name. - "'.\n" . join("\n", @non_fatal_errors); - - $RT::Logger->info($ErrStr); - } - else { - # TODO where does this get errstr from? - $RT::Logger->warning("Ticket couldn't be created: $ErrStr"); - } - - return($self->Id, $TransObj->Id, $ErrStr); -} -# }}} -# {{{ sub Import -=head2 Import PARAMHASH -Import a ticket. -Doesn\'t create a transaction. -Doesn\'t supply queue defaults, etc. +=item Create PARAMHASH -Arguments are identical to Create(), with the addition of - Id - Ticket Id +Create takes a hash of values and creates a row in the database: -Returns: TICKETID + int(11) 'EffectiveId'. + int(11) 'Queue'. + varchar(16) 'Type'. + int(11) 'IssueStatement'. + int(11) 'Resolution'. + int(11) 'Owner'. + varchar(200) 'Subject' defaults to '[no subject]'. + int(11) 'InitialPriority'. + int(11) 'FinalPriority'. + int(11) 'Priority'. + int(11) 'TimeEstimated'. + int(11) 'TimeWorked'. + varchar(10) 'Status'. + int(11) 'TimeLeft'. + datetime 'Told'. + datetime 'Starts'. + datetime 'Started'. + datetime 'Due'. + datetime 'Resolved'. + smallint(6) 'Disabled'. =cut -sub Import { - my $self = shift; - my ( $ErrStr, $QueueObj, $Owner); - - my %args = (id => undef, - EffectiveId => undef, - Queue => undef, - Requestor => undef, - Type => 'ticket', - Owner => $RT::Nobody->Id, - Subject => '[no subject]', - InitialPriority => undef, - FinalPriority => undef, - Status => 'new', - TimeWorked => "0", - Due => undef, - Created => undef, - Updated => undef, - Resolved => undef, - Told => undef, - @_); - - if ( (defined($args{'Queue'})) && (!ref($args{'Queue'})) ) { - $QueueObj=RT::Queue->new($RT::SystemUser); - $QueueObj->Load($args{'Queue'}); - #TODO error check this and return 0 if it\'s not loading properly +++ - } - elsif (ref($args{'Queue'}) eq 'RT::Queue') { - $QueueObj=RT::Queue->new($RT::SystemUser); - $QueueObj->Load($args{'Queue'}->Id); - } - else { - $RT::Logger->debug("$self ". $args{'Queue'} . - " not a recognised queue object."); - } - - #Can't create a ticket without a queue. - unless (defined ($QueueObj) and $QueueObj->Id) { - $RT::Logger->debug( "$self No queue given for ticket creation."); - return (0,'Could not create ticket. Queue not set'); - } - - #Now that we have a queue, Check the ACLS - unless ($self->CurrentUser->HasQueueRight(Right => 'CreateTicket', - QueueObj => $QueueObj )) { - return (0,"No permission to create tickets in the queue '". - $QueueObj->Name."'."); - } - - - - - # {{{ Deal with setting the owner - - # Attempt to take user object, user name or user id. - # Assign to nobody if lookup fails. - if (defined ($args{'Owner'})) { - if ( ref($args{'Owner'}) ) { - $Owner = $args{'Owner'}; - } - else { - $Owner = new RT::User($self->CurrentUser); - $Owner->Load($args{'Owner'}); - if ( ! defined($Owner->id) ) { - $Owner->Load($RT::Nobody->id); - } - } - } - - - #If we have a proposed owner and they don't have the right - #to own a ticket, scream about it and make them not the owner - if ((defined ($Owner)) and - ($Owner->Id != $RT::Nobody->Id) and - (!$Owner->HasQueueRight( QueueObj => $QueueObj, - Right => 'OwnTicket'))) { - - $RT::Logger->warning("$self user ".$Owner->Name . "(".$Owner->id . - ") was proposed ". - "as a ticket owner but has no rights to own ". - "tickets in '".$QueueObj->Name."'\n"); - - $Owner = undef; - } - - #If we haven't been handed a valid owner, make it nobody. - unless (defined ($Owner)) { - $Owner = new RT::User($self->CurrentUser); - $Owner->Load($RT::Nobody->UserObj->Id); - } - - # }}} - - unless ($self->ValidateStatus($args{'Status'})) { - return (0,"'$args{'Status'}' is an invalid value for status"); - } - - $self->{'_AccessibleCache'}{Created} = { 'read'=>1, 'write'=>1 }; - $self->{'_AccessibleCache'}{Creator} = { 'read'=>1, 'auto'=>1 }; - $self->{'_AccessibleCache'}{LastUpdated} = { 'read'=>1, 'write'=>1 }; - $self->{'_AccessibleCache'}{LastUpdatedBy} = { 'read'=>1, 'auto'=>1 }; - - - # If we're coming in with an id, set that now. - my $EffectiveId = undef; - if ($args{'id'}) { - $EffectiveId = $args{'id'}; - - } - - - my $id = $self->SUPER::Create( - id => $args{'id'}, - EffectiveId => $EffectiveId, - Queue => $QueueObj->Id, - Owner => $Owner->Id, - Subject => $args{'Subject'}, - InitialPriority => $args{'InitialPriority'}, - FinalPriority => $args{'FinalPriority'}, - Priority => $args{'InitialPriority'}, - Status => $args{'Status'}, - TimeWorked => $args{'TimeWorked'}, - Type => $args{'Type'}, - Created => $args{'Created'}, - Told => $args{'Told'}, - LastUpdated => $args{'Updated'}, - Resolved => $args{Resolved}, - Due => $args{'Due'}, - ); - - - - # If the ticket didn't have an id - # Set the ticket's effective ID now that we've created it. - if ($args{'id'} ) { - $self->Load($args{'id'}); - } - else { - my ($val, $msg) = $self->__Set(Field => 'EffectiveId', Value => $id); - - unless ($val) { - $RT::Logger->err($self."->Import couldn't set EffectiveId: $msg\n"); - } - } - - my $watcher; - foreach $watcher (@{$args{'Cc'}}) { - $self->_AddWatcher( Type => 'Cc', Person => $watcher, Silent => 1); - } - foreach $watcher (@{$args{'AdminCc'}}) { - $self->_AddWatcher( Type => 'AdminCc', Person => $watcher, Silent => 1); - } - foreach $watcher (@{$args{'Requestor'}}) { - $self->_AddWatcher( Type => 'Requestor', Person => $watcher, Silent => 1); - } - - return($self->Id, $ErrStr); -} - -# }}} - -# {{{ sub Delete - -sub Delete { - my $self = shift; - return (0, 'Deleting this object would violate referential integrity.'. - ' That\'s bad.'); -} -# }}} - -# {{{ Routines dealing with watchers. - -# {{{ Routines dealing with adding new watchers - -# {{{ sub AddWatcher - -=head2 AddWatcher - -AddWatcher takes a parameter hash. The keys are as follows: - -Email -Type -Owner - -If the watcher you\'re trying to set has an RT account, set the Owner paremeter to their User Id. Otherwise, set the Email parameter to their Email address. - -=cut - -sub AddWatcher { - my $self = shift; - my %args = ( Email => undef, - Type => undef, - Owner => undef, - @_ - ); - - # {{{ Check ACLS - #If the watcher we're trying to add is for the current user - if ( ( $self->CurrentUser->EmailAddress && - ($args{'Email'} eq $self->CurrentUser->EmailAddress) ) or - ($args{'Owner'} eq $self->CurrentUser->Id) - ) { - - - # If it's an AdminCc and they don't have - # 'WatchAsAdminCc' or 'ModifyTicket', bail - if ($args{'Type'} eq 'AdminCc') { - unless ($self->CurrentUserHasRight('ModifyTicket') or - $self->CurrentUserHasRight('WatchAsAdminCc')) { - return(0, 'Permission Denied'); - } - } - - # If it's a Requestor or Cc and they don't have - # 'Watch' or 'ModifyTicket', bail - elsif (($args{'Type'} eq 'Cc') or - ($args{'Type'} eq 'Requestor')) { - - unless ($self->CurrentUserHasRight('ModifyTicket') or - $self->CurrentUserHasRight('Watch')) { - return(0, 'Permission Denied'); - } - } - else { - $RT::Logger->warn("$self -> AddWatcher hit code". - " it never should. We got passed ". - " a type of ". $args{'Type'}); - return (0,'Error in parameters to TicketAddWatcher'); - } - } - # If the watcher isn't the current user - # and the current user doesn't have 'ModifyTicket' - # bail - else { - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - } - # }}} - - return ($self->_AddWatcher(%args)); -} - - -#This contains the meat of AddWatcher. but can be called from a routine like -# Create, which doesn't need the additional acl check -sub _AddWatcher { - my $self = shift; - my %args = ( - Type => undef, - Silent => undef, - Email => undef, - Owner => 0, - Person => undef, - @_ ); - - - - #clear the watchers cache - $self->{'watchers_cache'} = undef; - - if (defined $args{'Person'}) { - #if it's an RT::User object, pull out the id and shove it in Owner - if (ref ($args{'Person'}) =~ /RT::User/) { - $args{'Owner'} = $args{'Person'}->id; - } - #if it's an int, shove it in Owner - elsif ($args{'Person'} =~ /^\d+$/) { - $args{'Owner'} = $args{'Person'}; - } - #if it's an email address, shove it in Email - else { - $args{'Email'} = $args{'Person'}; - } - } - - # Turn an email address int a watcher if we possibly can. - if ($args{'Email'}) { - my $watcher = new RT::User($self->CurrentUser); - $watcher->LoadByEmail($args{'Email'}); - if ($watcher->Id) { - $args{'Owner'} = $watcher->Id; - delete $args{'Email'}; - } - } - - - # see if this user is already a watcher. if we have an owner, check it - # otherwise, we've got an email-address watcher. use that. - - if ($self->IsWatcher(Type => $args{'Type'}, - Id => ($args{'Owner'} || $args{'Email'}) ) ) { - - - return(0, 'That user is already that sort of watcher for this ticket'); - } - - - require RT::Watcher; - my $Watcher = new RT::Watcher ($self->CurrentUser); - my ($retval, $msg) = ($Watcher->Create( Value => $self->Id, - Scope => 'Ticket', - Email => $args{'Email'}, - Type => $args{'Type'}, - Owner => $args{'Owner'}, - )); - - unless ($args{'Silent'}) { - $self->_NewTransaction( Type => 'AddWatcher', - NewValue => $Watcher->Email, - Field => $Watcher->Type); - } - - return ($retval, $msg); -} - -# }}} - -# {{{ sub AddRequestor - -=head2 AddRequestor - -AddRequestor takes what AddWatcher does, except it presets -the "Type" parameter to \'Requestor\' - -=cut - -sub AddRequestor { - my $self = shift; - return ($self->AddWatcher ( Type => 'Requestor', @_)); -} - -# }}} - -# {{{ sub AddCc - -=head2 AddCc - -AddCc takes what AddWatcher does, except it presets -the "Type" parameter to \'Cc\' - -=cut - -sub AddCc { - my $self = shift; - return ($self->AddWatcher ( Type => 'Cc', @_)); -} -# }}} - -# {{{ sub AddAdminCc - -=head2 AddAdminCc - -AddAdminCc takes what AddWatcher does, except it presets -the "Type" parameter to \'AdminCc\' - -=cut - -sub AddAdminCc { - my $self = shift; - return ($self->AddWatcher ( Type => 'AdminCc', @_)); -} - -# }}} - -# }}} - -# {{{ sub DeleteWatcher - -=head2 DeleteWatcher id [type] - -DeleteWatcher takes a single argument which is either an email address -or a watcher id. -If the first argument is an email address, you need to specify the watcher type you're talking -about as the second argument. Valid values are 'Requestor', 'Cc' or 'AdminCc'. -It removes that watcher from this Ticket\'s list of watchers. - - -=cut -#TODO It is lame that you can't call this the same way you can call AddWatcher -sub DeleteWatcher { +sub Create { my $self = shift; - my $id = shift; - - my $type; - - $type = shift if (@_); - - my $Watcher = new RT::Watcher($self->CurrentUser); - - #If it\'s a numeric watcherid - if ($id =~ /^(\d*)$/) { - $Watcher->Load($id); - } - - #Otherwise, we'll assume it's an email address - elsif ($type) { - my ($result, $msg) = - $Watcher->LoadByValue( Email => $id, - Scope => 'Ticket', - Value => $self->id, - Type => $type); - return (0,$msg) unless ($result); - } - - else { - return(0,"Can\'t delete a watcher by email address without specifying a type"); - } - - # {{{ Check ACLS - - #If the watcher we're trying to delete is for the current user - if ($Watcher->Email eq $self->CurrentUser->EmailAddress) { - - # If it's an AdminCc and they don't have - # 'WatchAsAdminCc' or 'ModifyTicket', bail - if ($Watcher->Type eq 'AdminCc') { - unless ($self->CurrentUserHasRight('ModifyTicket') or - $self->CurrentUserHasRight('WatchAsAdminCc')) { - return(0, 'Permission Denied'); - } - } - - # If it's a Requestor or Cc and they don't have - # 'Watch' or 'ModifyTicket', bail - elsif (($Watcher->Type eq 'Cc') or - ($Watcher->Type eq 'Requestor')) { - - unless ($self->CurrentUserHasRight('ModifyTicket') or - $self->CurrentUserHasRight('Watch')) { - return(0, 'Permission Denied'); - } - } - else { - $RT::Logger->warn("$self -> DeleteWatcher hit code". - " it never should. We got passed ". - " a type of ". $args{'Type'}); - return (0,'Error in parameters to $self DeleteWatcher'); - } - } - # If the watcher isn't the current user - # and the current user doesn't have 'ModifyTicket' - # bail - else { - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - } - - # }}} - - unless (($Watcher->Scope eq 'Ticket') and - ($Watcher->Value == $self->id) ) { - return (0, "Not a watcher for this ticket"); - } - - - #Clear out the watchers hash. - $self->{'watchers'} = undef; - - #If we\'ve validated that it is a watcher for this ticket - $self->_NewTransaction ( Type => 'DelWatcher', - OldValue => $Watcher->Email, - Field => $Watcher->Type, - ); - - my $retval = $Watcher->Delete(); - - unless ($retval) { - return(0,"Watcher could not be deleted. Database inconsistency possible."); - } - - return(1, "Watcher deleted"); -} - -# {{{ sub DeleteRequestor - -=head2 DeleteRequestor EMAIL + my %args = ( + EffectiveId => '0', + Queue => '0', + Type => '', + IssueStatement => '0', + Resolution => '0', + Owner => '0', + Subject => '[no subject]', + InitialPriority => '0', + FinalPriority => '0', + Priority => '0', + TimeEstimated => '0', + TimeWorked => '0', + Status => '', + TimeLeft => '0', + Told => '', + Starts => '', + Started => '', + Due => '', + Resolved => '', + Disabled => '0', -Takes an email address. It calls DeleteWatcher with a preset -type of 'Requestor' - - -=cut + @_); + $self->SUPER::Create( + EffectiveId => $args{'EffectiveId'}, + Queue => $args{'Queue'}, + Type => $args{'Type'}, + IssueStatement => $args{'IssueStatement'}, + Resolution => $args{'Resolution'}, + Owner => $args{'Owner'}, + Subject => $args{'Subject'}, + InitialPriority => $args{'InitialPriority'}, + FinalPriority => $args{'FinalPriority'}, + Priority => $args{'Priority'}, + TimeEstimated => $args{'TimeEstimated'}, + TimeWorked => $args{'TimeWorked'}, + Status => $args{'Status'}, + TimeLeft => $args{'TimeLeft'}, + Told => $args{'Told'}, + Starts => $args{'Starts'}, + Started => $args{'Started'}, + Due => $args{'Due'}, + Resolved => $args{'Resolved'}, + Disabled => $args{'Disabled'}, +); -sub DeleteRequestor { - my $self = shift; - my $id = shift; - return ($self->DeleteWatcher ($id, 'Requestor')) } -# }}} - -# {{{ sub DeleteCc - -=head2 DeleteCc EMAIL - -Takes an email address. It calls DeleteWatcher with a preset -type of 'Cc' - - -=cut - -sub DeleteCc { - my $self = shift; - my $id = shift; - return ($self->DeleteWatcher ($id, 'Cc')) -} - -# }}} - -# {{{ sub DeleteAdminCc - -=head2 DeleteAdminCc EMAIL - -Takes an email address. It calls DeleteWatcher with a preset -type of 'AdminCc' - - -=cut - -sub DeleteAdminCc { - my $self = shift; - my $id = shift; - return ($self->DeleteWatcher ($id, 'AdminCc')) -} - -# }}} - - -# }}} -# {{{ sub Watchers -=head2 Watchers +=item id -Watchers returns a Watchers object preloaded with this ticket\'s watchers. +Returns the current value of id. +(In the database, id is stored as int(11).) -# It should return only the ticket watchers. the actual FooAsString -# methods capture the queue watchers too. I don't feel thrilled about this, -# but we don't want the Cc Requestors and AdminCc objects to get filled up -# with all the queue watchers too. we've got seperate objects for that. - # should we rename these as s/(.*)AsString/$1Addresses/ or somesuch? =cut -sub Watchers { - my $self = shift; - - require RT::Watchers; - my $watchers=RT::Watchers->new($self->CurrentUser); - if ($self->CurrentUserHasRight('ShowTicket')) { - $watchers->LimitToTicket($self->id); - } - - return($watchers); - -} - -# }}} -# {{{ a set of [foo]AsString subs that will return the various sorts of watchers for a ticket/queue as a comma delineated string +=item EffectiveId -=head2 RequestorsAsString +Returns the current value of EffectiveId. +(In the database, EffectiveId is stored as int(11).) - B<Returns> String: All Ticket Requestor email addresses as a string. -=cut -sub RequestorsAsString { - my $self=shift; +=item SetEffectiveId VALUE - unless ($self->CurrentUserHasRight('ShowTicket')) { - return undef; - } - - return ($self->Requestors->EmailsAsString() ); -} -=head2 WatchersAsString +Set EffectiveId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, EffectiveId will be stored as a int(11).) -B<Returns> String: All Ticket Watchers email addresses as a string =cut -sub WatchersAsString { - my $self=shift; - - unless ($self->CurrentUserHasRight('ShowTicket')) { - return (0, "Permission Denied"); - } - - return ($self->Watchers->EmailsAsString()); - -} -=head2 AdminCcAsString +=item Queue -returns String: All Ticket AdminCc email addresses as a string +Returns the current value of Queue. +(In the database, Queue is stored as int(11).) -=cut -sub AdminCcAsString { - my $self=shift; +=item SetQueue VALUE - unless ($self->CurrentUserHasRight('ShowTicket')) { - return undef; - } - - return ($self->AdminCc->EmailsAsString()); - -} -=head2 CcAsString +Set Queue to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Queue will be stored as a int(11).) -returns String: All Ticket Ccs as a string of email addresses =cut -sub CcAsString { - my $self=shift; - - unless ($self->CurrentUserHasRight('ShowTicket')) { - return undef; - } - - return ($self->Cc->EmailsAsString()); - -} - -# }}} - -# {{{ Routines that return RT::Watchers objects of Requestors, Ccs and AdminCcs -# {{{ sub Requestors +=item QueueObj -=head2 Requestors +Returns the Queue Object which has the id returned by Queue -Takes nothing. -Returns this ticket's Requestors as an RT::Watchers object - -=cut - -sub Requestors { - my $self = shift; - - my $requestors = $self->Watchers(); - if ($self->CurrentUserHasRight('ShowTicket')) { - $requestors->LimitToRequestors(); - } - - return($requestors); - -} - -# }}} - -# {{{ sub Cc - -=head2 Cc - -Takes nothing. -Returns a watchers object which contains this ticket's Cc watchers - -=cut - -sub Cc { - my $self = shift; - - my $cc = $self->Watchers(); - - if ($self->CurrentUserHasRight('ShowTicket')) { - $cc->LimitToCc(); - } - - return($cc); - -} - -# }}} - -# {{{ sub AdminCc - -=head2 AdminCc - -Takes nothing. -Returns this ticket\'s administrative Ccs as an RT::Watchers object - -=cut - -sub AdminCc { - my $self = shift; - - my $admincc = $self->Watchers(); - if ($self->CurrentUserHasRight('ShowTicket')) { - $admincc->LimitToAdminCc(); - } - return($admincc); -} - -# }}} - -# }}} - -# {{{ IsWatcher,IsRequestor,IsCc, IsAdminCc - -# {{{ sub IsWatcher -# a generic routine to be called by IsRequestor, IsCc and IsAdminCc - -=head2 IsWatcher - -Takes a param hash with the attributes Type and User. User is either a user object or string containing an email address. Returns true if that user or string -is a ticket watcher. Returns undef otherwise - -=cut - -sub IsWatcher { - my $self = shift; - - my %args = ( Type => 'Requestor', - Email => undef, - Id => undef, - @_ - ); - - my %cols = ('Type' => $args{'Type'}, - 'Scope' => 'Ticket', - 'Value' => $self->Id, - 'Owner' => undef, - 'Email' => undef - ); - - if (ref($args{'Id'})){ - #If it's a ref, it's an RT::User object; - $cols{'Owner'} = $args{'Id'}->Id; - } - elsif ($args{'Id'} =~ /^\d+$/) { - # if it's an integer, it's a reference to an RT::User obj - $cols{'Owner'} = $args{'Id'}; - } - else { - $cols{'Email'} = $args{'Id'}; - } - - if ($args{'Email'}) { - $cols{'Email'} = $args{'Email'}; - } - - my $description = join(":",%cols); - - #If we've cached a positive match... - if (defined $self->{'watchers_cache'}->{"$description"}) { - if ($self->{'watchers_cache'}->{"$description"} == 1) { - return(1); - } - else { #If we've cached a negative match... - return(undef); - } - } - - - my $watcher = new RT::Watcher($self->CurrentUser); - $watcher->LoadByCols(%cols); - - - if ($watcher->id) { - $self->{'watchers_cache'}->{"$description"} = 1; - return(1); - } - else { - $self->{'watchers_cache'}->{"$description"} = 0; - return(undef); - } - -} -# }}} - -# {{{ sub IsRequestor - -=head2 IsRequestor - - Takes an email address, RT::User object or integer (RT user id) - Returns true if the string is a requestor of the current ticket. - - -=cut - -sub IsRequestor { - my $self = shift; - my $person = shift; - - return ($self->IsWatcher(Type => 'Requestor', Id => $person)); - -}; - -# }}} - -# {{{ sub IsCc - -=head2 IsCc - -Takes a string. Returns true if the string is a Cc watcher of the current ticket. - -=cut - -sub IsCc { - my $self = shift; - my $cc = shift; - - return ($self->IsWatcher( Type => 'Cc', Id => $cc )); - -} - -# }}} - -# {{{ sub IsAdminCc - -=head2 IsAdminCc - -Takes a string. Returns true if the string is an AdminCc watcher of the current ticket. - -=cut - -sub IsAdminCc { - my $self = shift; - my $person = shift; - - return ($self->IsWatcher( Type => 'AdminCc', Id => $person )); - -} - -# }}} - -# {{{ sub IsOwner - -=head2 IsOwner - - Takes an RT::User object. Returns true if that user is this ticket's owner. -returns undef otherwise - -=cut - -sub IsOwner { - my $self = shift; - my $person = shift; - - - # no ACL check since this is used in acl decisions - # unless ($self->CurrentUserHasRight('ShowTicket')) { - # return(undef); - # } - - - #Tickets won't yet have owners when they're being created. - unless ($self->OwnerObj->id) { - return(undef); - } - - if ($person->id == $self->OwnerObj->id) { - return(1); - } - else { - return(undef); - } -} - - -# }}} - -# }}} - -# }}} - -# {{{ Routines dealing with queues - -# {{{ sub ValidateQueue - -sub ValidateQueue { - my $self = shift; - my $Value = shift; - - #TODO I don't think this should be here. We shouldn't allow anything to have an undef queue, - if (!$Value) { - $RT::Logger->warning( " RT:::Queue::ValidateQueue called with a null value. this isn't ok."); - return (1); - } - - my $QueueObj = RT::Queue->new($self->CurrentUser); - my $id = $QueueObj->Load($Value); - - if ($id) { - return (1); - } - else { - return (undef); - } -} - -# }}} - -# {{{ sub SetQueue - -sub SetQueue { - my $self = shift; - my $NewQueue = shift; - - #Redundant. ACL gets checked in _Set; - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - - my $NewQueueObj = RT::Queue->new($self->CurrentUser); - $NewQueueObj->Load($NewQueue); - - unless ($NewQueueObj->Id()) { - return (0, "That queue does not exist"); - } - - if ($NewQueueObj->Id == $self->QueueObj->Id) { - return (0, 'That is the same value'); - } - unless ($self->CurrentUser->HasQueueRight(Right =>'CreateTicket', - QueueObj => $NewQueueObj )) { - return (0, "You may not create requests in that queue."); - } - - unless ($self->OwnerObj->HasQueueRight(Right=> 'OwnTicket', - QueueObj => $NewQueueObj)) { - $self->Untake(); - } - - return($self->_Set(Field => 'Queue', Value => $NewQueueObj->Id())); - -} - -# }}} - -# {{{ sub QueueObj - -=head2 QueueObj - -Takes nothing. returns this ticket's queue object =cut sub QueueObj { - my $self = shift; - - my $queue_obj = RT::Queue->new($self->CurrentUser); - #We call __Value so that we can avoid the ACL decision and some deep recursion - my ($result) = $queue_obj->Load($self->__Value('Queue')); - return ($queue_obj); + my $self = shift; + my $Queue = RT::Queue->new($self->CurrentUser); + $Queue->Load($self->__Value('Queue')); + return($Queue); } +=item Type -# }}} +Returns the current value of Type. +(In the database, Type is stored as varchar(16).) -# }}} -# {{{ Date printing routines -# {{{ sub DueObj - -=head2 DueObj - - Returns an RT::Date object containing this ticket's due date - -=cut -sub DueObj { - my $self = shift; - - my $time = new RT::Date($self->CurrentUser); - - # -1 is RT::Date slang for never - if ($self->Due) { - $time->Set(Format => 'sql', Value => $self->Due ); - } - else { - $time->Set(Format => 'unix', Value => -1); - } - - return $time; -} -# }}} +=item SetType VALUE -# {{{ sub DueAsString -=head2 DueAsString +Set Type to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Type will be stored as a varchar(16).) -Returns this ticket's due date as a human readable string =cut -sub DueAsString { - my $self = shift; - return $self->DueObj->AsString(); -} - -# }}} -# {{{ sub GraceTimeAsString +=item IssueStatement -=head2 GraceTimeAsString +Returns the current value of IssueStatement. +(In the database, IssueStatement is stored as int(11).) -Return the time until this ticket is due as a string - -=cut - -# TODO This should be deprecated - -sub GraceTimeAsString { - my $self=shift; - - if ($self->Due) { - return ($self->DueObj->AgeAsString()); - } else { - return ""; - } -} -# }}} +=item SetIssueStatement VALUE -# {{{ sub ResolvedObj -=head2 ResolvedObj +Set IssueStatement to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, IssueStatement will be stored as a int(11).) - Returns an RT::Date object of this ticket's 'resolved' time. =cut -sub ResolvedObj { - my $self = shift; - my $time = new RT::Date($self->CurrentUser); - $time->Set(Format => 'sql', Value => $self->Resolved); - return $time; -} -# }}} +=item Resolution -# {{{ sub SetStarted +Returns the current value of Resolution. +(In the database, Resolution is stored as int(11).) -=head2 SetStarted -Takes a date in ISO format or undef -Returns a transaction id and a message -The client calls "Start" to note that the project was started on the date in $date. -A null date means "now" -=cut - -sub SetStarted { - my $self = shift; - my $time = shift || 0; - - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - #We create a date object to catch date weirdness - my $time_obj = new RT::Date($self->CurrentUser()); - if ($time != 0) { - $time_obj->Set(Format => 'ISO', Value => $time); - } - else { - $time_obj->SetToNow(); - } - - #Now that we're starting, open this ticket - #TODO do we really want to force this as policy? it should be a scrip - - #We need $TicketAsSystem, in case the current user doesn't have - #ShowTicket - # - my $TicketAsSystem = new RT::Ticket($RT::SystemUser); - $TicketAsSystem->Load($self->Id); - if ($TicketAsSystem->Status eq 'new') { - $TicketAsSystem->Open(); - } - - return ($self->_Set(Field => 'Started', Value =>$time_obj->ISO)); - -} +=item SetResolution VALUE -# }}} -# {{{ sub StartedObj +Set Resolution to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Resolution will be stored as a int(11).) -=head2 StartedObj - - Returns an RT::Date object which contains this ticket's -'Started' time. =cut -sub StartedObj { - my $self = shift; - - my $time = new RT::Date($self->CurrentUser); - $time->Set(Format => 'sql', Value => $self->Started); - return $time; -} -# }}} +=item Owner -# {{{ sub StartsObj +Returns the current value of Owner. +(In the database, Owner is stored as int(11).) -=head2 StartsObj - Returns an RT::Date object which contains this ticket's -'Starts' time. -=cut - -sub StartsObj { - my $self = shift; - - my $time = new RT::Date($self->CurrentUser); - $time->Set(Format => 'sql', Value => $self->Starts); - return $time; -} -# }}} +=item SetOwner VALUE -# {{{ sub ToldObj -=head2 ToldObj +Set Owner to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Owner will be stored as a int(11).) - Returns an RT::Date object which contains this ticket's -'Told' time. =cut -sub ToldObj { - my $self = shift; - - my $time = new RT::Date($self->CurrentUser); - $time->Set(Format => 'sql', Value => $self->Told); - return $time; -} +=item Subject -# }}} +Returns the current value of Subject. +(In the database, Subject is stored as varchar(200).) -# {{{ sub LongSinceToldAsString -# TODO this should be deprecated +=item SetSubject VALUE -sub LongSinceToldAsString { - my $self = shift; - - if ($self->Told) { - return $self->ToldObj->AgeAsString(); - } else { - return "Never"; - } -} -# }}} - -# {{{ sub ToldAsString -=head2 ToldAsString +Set Subject to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Subject will be stored as a varchar(200).) -A convenience method that returns ToldObj->AsString - -TODO: This should be deprecated =cut -sub ToldAsString { - my $self = shift; - if ($self->Told) { - return $self->ToldObj->AsString(); - } - else { - return("Never"); - } -} -# }}} - -# {{{ sub TimeWorkedAsString +=item InitialPriority -=head2 TimeWorkedAsString +Returns the current value of InitialPriority. +(In the database, InitialPriority is stored as int(11).) -Returns the amount of time worked on this ticket as a Text String -=cut -sub TimeWorkedAsString { - my $self=shift; - return "0" unless $self->TimeWorked; - - #This is not really a date object, but if we diff a number of seconds - #vs the epoch, we'll get a nice description of time worked. - - my $worked = new RT::Date($self->CurrentUser); - #return the #of minutes worked turned into seconds and written as - # a simple text string - - return($worked->DurationAsString($self->TimeWorked*60)); -} +=item SetInitialPriority VALUE -# }}} +Set InitialPriority to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, InitialPriority will be stored as a int(11).) -# }}} - -# {{{ Routines dealing with correspondence/comments - -# {{{ sub Comment - -=head2 Comment - -Comment on this ticket. -Takes a hashref with the follwoing attributes: - -MIMEObj, TimeTaken, CcMessageTo, BccMessageTo =cut -sub Comment { - my $self = shift; - - my %args = ( - CcMessageTo => undef, - BccMessageTo => undef, - MIMEObj => undef, - TimeTaken => 0, - @_ ); - - unless (($self->CurrentUserHasRight('CommentOnTicket')) or - ($self->CurrentUserHasRight('ModifyTicket'))) { - return (0, "Permission Denied"); - } - - unless ($args{'MIMEObj'}) { - return(0,"No correspondence attached"); - } - - # If we've been passed in CcMessageTo and BccMessageTo fields, - # add them to the mime object for passing on to the transaction handler - # The "NotifyOtherRecipients" scripAction will look for RT--Send-Cc: and - # RT-Send-Bcc: headers - - $args{'MIMEObj'}->head->add('RT-Send-Cc', $args{'CcMessageTo'}); - $args{'MIMEObj'}->head->add('RT-Send-Bcc', $args{'BccMessageTo'}); - - #Record the correspondence (write the transaction) - my ($Trans, $Msg, $TransObj) = $self->_NewTransaction( Type => 'Comment', - Data =>($args{'MIMEObj'}->head->get('subject') || 'No Subject'), - TimeTaken => $args{'TimeTaken'}, - MIMEObj => $args{'MIMEObj'} - ); - - - return ($Trans, "The comment has been recorded"); -} - -# }}} -# {{{ sub Correspond +=item FinalPriority -=head2 Correspond +Returns the current value of FinalPriority. +(In the database, FinalPriority is stored as int(11).) -Correspond on this ticket. -Takes a hashref with the following attributes: - - -MIMEObj, TimeTaken, CcMessageTo, BccMessageTo - -=cut - -sub Correspond { - my $self = shift; - my %args = ( - CcMessageTo => undef, - BccMessageTo => undef, - MIMEObj => undef, - TimeTaken => 0, - @_ ); - - unless (($self->CurrentUserHasRight('ReplyToTicket')) or - ($self->CurrentUserHasRight('ModifyTicket'))) { - return (0, "Permission Denied"); - } - - unless ($args{'MIMEObj'}) { - return(0,"No correspondence attached"); - } - - # If we've been passed in CcMessageTo and BccMessageTo fields, - # add them to the mime object for passing on to the transaction handler - # The "NotifyOtherRecipients" scripAction will look for RT-Send-Cc: and RT-Send-Bcc: - # headers - - $args{'MIMEObj'}->head->add('RT-Send-Cc', $args{'CcMessageTo'}); - $args{'MIMEObj'}->head->add('RT-Send-Bcc', $args{'BccMessageTo'}); - - #Record the correspondence (write the transaction) - my ($Trans,$msg, $TransObj) = $self->_NewTransaction - (Type => 'Correspond', - Data => ($args{'MIMEObj'}->head->get('subject') || 'No Subject'), - TimeTaken => $args{'TimeTaken'}, - MIMEObj=> $args{'MIMEObj'} - ); - - # TODO this bit of logic should really become a scrip for 2.2 - my $TicketAsSystem = new RT::Ticket($RT::SystemUser); - $TicketAsSystem->Load($self->Id); - - if ( - ($TicketAsSystem->Status ne 'open') and - ($TicketAsSystem->Status ne 'new') - ) { - - my $oldstatus = $TicketAsSystem->Status(); - $TicketAsSystem->__Set(Field => 'Status', Value => 'open'); - $TicketAsSystem->_NewTransaction - ( Type => 'Set', - Field => 'Status', - OldValue => $oldstatus, - NewValue => 'open', - Data => 'Ticket auto-opened on incoming correspondence' - ); - } - - unless ($Trans) { - $RT::Logger->err("$self couldn't init a transaction ($msg)\n"); - return ($Trans, "correspondence (probably) not sent", $args{'MIMEObj'}); - } - - #Set the last told date to now if this isn't mail from the requestor. - #TODO: Note that this will wrongly ack mail from any non-requestor as a "told" - - unless ($TransObj->IsInbound) { - $self->_SetTold; - } - - return ($Trans, "correspondence sent"); -} -# }}} -# }}} +=item SetFinalPriority VALUE -# {{{ Routines dealing with Links and Relations between tickets -# {{{ Link Collections +Set FinalPriority to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, FinalPriority will be stored as a int(11).) -# {{{ sub Members - -=head2 Members - - This returns an RT::Links object which references all the tickets -which are 'MembersOf' this ticket =cut -sub Members { - my $self = shift; - return ($self->_Links('Target', 'MemberOf')); -} - -# }}} -# {{{ sub MemberOf +=item Priority -=head2 MemberOf +Returns the current value of Priority. +(In the database, Priority is stored as int(11).) - This returns an RT::Links object which references all the tickets that this -ticket is a 'MemberOf' -=cut - -sub MemberOf { - my $self = shift; - return ($self->_Links('Base', 'MemberOf')); -} -# }}} +=item SetPriority VALUE -# {{{ RefersTo -=head2 RefersTo +Set Priority to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Priority will be stored as a int(11).) - This returns an RT::Links object which shows all references for which this ticket is a base =cut -sub RefersTo { - my $self = shift; - return ($self->_Links('Base', 'RefersTo')); -} - -# }}} -# {{{ ReferredToBy +=item TimeEstimated -=head2 ReferredToBy +Returns the current value of TimeEstimated. +(In the database, TimeEstimated is stored as int(11).) - This returns an RT::Links object which shows all references for which this ticket is a target -=cut -sub ReferredToBy { - my $self = shift; - return ($self->_Links('Target', 'RefersTo')); -} +=item SetTimeEstimated VALUE -# }}} -# {{{ DependedOnBy +Set TimeEstimated to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TimeEstimated will be stored as a int(11).) -=head2 DependedOnBy - - This returns an RT::Links object which references all the tickets that depend on this one =cut -sub DependedOnBy { - my $self = shift; - return ($self->_Links('Target','DependsOn')); -} - -# }}} - -# {{{ DependsOn - -=head2 DependsOn - - This returns an RT::Links object which references all the tickets that this ticket depends on - -=cut -sub DependsOn { - my $self = shift; - return ($self->_Links('Base','DependsOn')); -} - -# }}} - -# {{{ sub _Links - -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')) { - - $self->{"$field$type"}->Limit(FIELD=>$field, VALUE=>$self->URI); - $self->{"$field$type"}->Limit(FIELD=>'Type', - VALUE=>$type) if ($type); - } - } - return ($self->{"$field$type"}); -} - -# }}} - -# }}} -# {{{ sub DeleteLink +=item TimeWorked -=head2 DeleteLink +Returns the current value of TimeWorked. +(In the database, TimeWorked is stored as int(11).) -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, - @_ ); - - #check acls - unless ($self->CurrentUserHasRight('ModifyTicket')) { - $RT::Logger->debug("No permission to delete links\n"); - return (0, 'Permission Denied'); - - - } - - #we want one of base and target. we don't care which - #but we only want _one_ - - if ($args{'Base'} and $args{'Target'}) { - $RT::Logger->debug("$self ->_DeleteLink. got both Base and Target\n"); - return (0, 'Can\'t specifiy both base and target'); - } - elsif ($args{'Base'}) { - $args{'Target'} = $self->Id(); - } - elsif ($args{'Target'}) { - $args{'Base'} = $self->Id(); - } - else { - $RT::Logger->debug("$self: Base or Target must be specified\n"); - return (0, 'Either base or target must be specified'); - } - - my $link = new RT::Link($self->CurrentUser); - $RT::Logger->debug("Trying to load link: ". $args{'Base'}." ". $args{'Type'}. " ". $args{'Target'}. "\n"); - - $link->Load($args{'Base'}, $args{'Type'}, $args{'Target'}); - - - - #it's a real link. - if ($link->id) { - $RT::Logger->debug("We're going to delete link ".$link->id."\n"); - $link->Delete(); - - my $TransString= - "Ticket $args{'Base'} no longer $args{Type} ticket $args{'Target'}."; - my ($Trans, $Msg, $TransObj) = $self->_NewTransaction - (Type => 'DeleteLink', - Field => $args{'Type'}, - Data => $TransString, - TimeTaken => 0 - ); - - return ($linkid, "Link deleted ($TransString)", $transactionid); - } - #if it's not a link we can find - else { - $RT::Logger->debug("Couldn't find that link\n"); - return (0, "Link not found"); - } -} +=item SetTimeWorked VALUE -# }}} -# {{{ sub AddLink - -=head2 AddLink - -Takes a paramhash of Type and one of Base or Target. Adds that link to this ticket. +Set TimeWorked to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TimeWorked will be stored as a int(11).) =cut -sub AddLink { - my $self = shift; - my %args = ( Target => '', - Base => '', - Type => '', - @_ ); - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - if ($args{'Base'} and $args{'Target'}) { - $RT::Logger->debug("$self tried to delete a link. both base and target were specified\n"); - return (0, 'Can\'t specifiy both base and target'); - } - elsif ($args{'Base'}) { - $args{'Target'} = $self->Id(); - } - elsif ($args{'Target'}) { - $args{'Base'} = $self->Id(); - } - else { - return (0, 'Either base or target must be specified'); - } - - # {{{ We don't want references to ourself - if ($args{Base} eq $args{Target}) { - return (0, "Can\'t link a ticket to itself"); - } - - # }}} - - # If the base isn't a URI, make it a URI. - # If the target isn't a URI, make it a URI. - - # {{{ Check if the link already exists - we don't want duplicates - my $old_link= new RT::Link ($self->CurrentUser); - $old_link->Load($args{'Base'}, $args{'Type'}, $args{'Target'}); - if ($old_link->Id) { - $RT::Logger->debug("$self Somebody tried to duplicate a link"); - return ($old_link->id, "Link already exists",0); - } - # }}} - - # Storing the link in the DB. - my $link = RT::Link->new($self->CurrentUser); - my ($linkid) = $link->Create(Target => $args{Target}, - Base => $args{Base}, - Type => $args{Type}); - - unless ($linkid) { - return (0,"Link could not be created"); - } - #Write the transaction - - my $TransString="Ticket $args{'Base'} $args{Type} ticket $args{'Target'}."; - - my ($Trans, $Msg, $TransObj) = $self->_NewTransaction - (Type => 'AddLink', - Field => $args{'Type'}, - Data => $TransString, - TimeTaken => 0 - ); - - return ($Trans, "Link created ($TransString)"); - - -} -# }}} -# {{{ sub URI +=item Status -=head2 URI +Returns the current value of Status. +(In the database, Status is stored as varchar(10).) -Returns this ticket's URI -=cut -sub URI { - my $self = shift; - return $RT::TicketBaseURI.$self->id; -} +=item SetStatus VALUE -# }}} -# {{{ sub MergeInto +Set Status to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Status will be stored as a varchar(10).) -=head2 MergeInto -MergeInto take the id of the ticket to merge this ticket into. =cut -sub MergeInto { - my $self = shift; - my $MergeInto = shift; - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - # Load up the new ticket. - my $NewTicket = RT::Ticket->new($RT::SystemUser); - $NewTicket->Load($MergeInto); - - # make sure it exists. - unless (defined $NewTicket->Id) { - return (0, 'New ticket doesn\'t exist'); - } - - - # Make sure the current user can modify the new ticket. - unless ($NewTicket->CurrentUserHasRight('ModifyTicket')) { - $RT::Logger->debug("failed..."); - return (0, "Permission Denied"); - } - - $RT::Logger->debug("checking if the new ticket has the same id and effective id..."); - unless ($NewTicket->id == $NewTicket->EffectiveId) { - $RT::Logger->err('$self trying to merge into '.$NewTicket->Id . - ' which is itself merged.\n'); - return (0, "Can't merge into a merged ticket. ". - "You should never get this error"); - } - - - # We use EffectiveId here even though it duplicates information from - # the links table becasue of the massive performance hit we'd take - # by trying to do a seperate database query for merge info everytime - # loaded a ticket. - - - #update this ticket's effective id to the new ticket's id. - my ($id_val, $id_msg) = $self->__Set(Field => 'EffectiveId', - Value => $NewTicket->Id()); - - unless ($id_val) { - $RT::Logger->error("Couldn't set effective ID for ".$self->Id. - ": $id_msg"); - return(0,"Merge failed. Couldn't set EffectiveId"); - } - - my ($status_val, $status_msg) = $self->__Set(Field => 'Status', - Value => 'resolved'); - - unless ($status_val) { - $RT::Logger->error("$self couldn't set status to resolved.". - "RT's Database may be inconsistent."); - } - - #make a new link: this ticket is merged into that other ticket. - $self->AddLink( Type =>'MergedInto', - Target => $NewTicket->Id() ); - - #add all of this ticket's watchers to that ticket. - my $watchers = $self->Watchers(); - - while (my $watcher = $watchers->Next()) { - unless ( - ($watcher->Owner && - $NewTicket->IsWatcher (Type => $watcher->Type, - Id => $watcher->Owner)) or - ($watcher->Email && - $NewTicket->IsWatcher (Type => $watcher->Type, - Id => $watcher->Email)) - ) { - - - - $NewTicket->_AddWatcher(Silent => 1, - Type => $watcher->Type, - Email => $watcher->Email, - Owner => $watcher->Owner); - } - } - - - #find all of the tickets that were merged into this ticket. - my $old_mergees = new RT::Tickets($self->CurrentUser); - $old_mergees->Limit( FIELD => 'EffectiveId', - OPERATOR => '=', - VALUE => $self->Id ); - - # update their EffectiveId fields to the new ticket's id - while (my $ticket = $old_mergees->Next()) { - my ($val, $msg) = $ticket->__Set(Field => 'EffectiveId', - Value => $NewTicket->Id()); - } - $NewTicket->_SetLastUpdated; - - return ($TransactionObj, "Merge Successful"); -} - -# }}} - -# }}} - -# {{{ Routines dealing with keywords - -# {{{ sub KeywordsObj - -=head2 KeywordsObj [KEYWORD_SELECT_ID] - - Returns an B<RT::ObjectKeywords> object preloaded with this ticket's ObjectKeywords. -If the optional KEYWORD_SELECT_ID parameter is set, limit the keywords object to that keyword -select. - -=cut - -sub KeywordsObj { - my $self = shift; - my $keyword_select; - - $keyword_select = shift if (@_); - - use RT::ObjectKeywords; - my $Keywords = new RT::ObjectKeywords($self->CurrentUser); - - #ACL check - if ($self->CurrentUserHasRight('ShowTicket')) { - $Keywords->LimitToTicket($self->id); - if ($keyword_select) { - $Keywords->LimitToKeywordSelect($keyword_select); - } - } - return ($Keywords); -} -# }}} -# {{{ sub AddKeyword +=item TimeLeft -=head2 AddKeyword +Returns the current value of TimeLeft. +(In the database, TimeLeft is stored as int(11).) -Takes a paramhash of Keyword and KeywordSelect. If Keyword is a valid choice -for KeywordSelect, creates a KeywordObject. If the KeywordSelect says this should -be a single KeywordObject, automatically removes the old value. - Issues: probably doesn't enforce the depth restrictions or make sure that keywords -are coming from the right part of the tree. really should. -=cut +=item SetTimeLeft VALUE -sub AddKeyword { - my $self = shift; - #ACL check - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, 'Permission Denied'); - } - - return($self->_AddKeyword(@_)); - -} +Set TimeLeft to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TimeLeft will be stored as a int(11).) -# Helper version of AddKeyword without that pesky ACL check -sub _AddKeyword { - my $self = shift; - my %args = ( KeywordSelect => undef, # id of a keyword select record - Keyword => undef, #id of the keyword to add - Silent => 0, - @_ - ); - - my ($OldValue); - - #TODO make sure that $args{'Keyword'} is valid for $args{'KeywordSelect'} - - #TODO: make sure that $args{'KeywordSelect'} applies to this ticket's queue. - - my $Keyword = new RT::Keyword($self->CurrentUser); - unless ($Keyword->Load($args{'Keyword'}) ) { - $RT::Logger->err("$self Couldn't load Keyword ".$args{'Keyword'} ."\n"); - return(0, "Couldn't load keyword"); - } - - my $KeywordSelectObj = new RT::KeywordSelect($self->CurrentUser); - unless ($KeywordSelectObj->Load($args{'KeywordSelect'})) { - $RT::Logger->err("$self Couldn't load KeywordSelect ".$args{'KeywordSelect'}); - return(0, "Couldn't load keywordselect"); - } - - my $Keywords = $self->KeywordsObj($KeywordSelectObj->id); - - #If the ticket already has this keyword, just get out of here. - if ($Keywords->HasEntry($Keyword->id)) { - return(0, "That is already the current value"); - } - - #If the keywordselect wants this to be a singleton: - - if ($KeywordSelectObj->Single) { - - #Whack any old values...keep track of the last value that we get. - #we shouldn't need a loop ehre, but we do it anyway, to try to - # help keep the database clean. - while (my $OldKey = $Keywords->Next) { - $OldValue = $OldKey->KeywordObj->Name; - $OldKey->Delete(); - } - - - } - - # create the new objectkeyword - my $ObjectKeyword = new RT::ObjectKeyword($self->CurrentUser); - my $result = $ObjectKeyword->Create( Keyword => $Keyword->Id, - ObjectType => 'Ticket', - ObjectId => $self->Id, - KeywordSelect => $KeywordSelectObj->Id ); - - - # record a single transaction, unless we were told not to - unless ($args{'Silent'}) { - my ($TransactionId, $Msg, $TransactionObj) = - $self->_NewTransaction( Type => 'Keyword', - Field => $KeywordSelectObj->Id, - OldValue => $OldValue, - NewValue => $Keyword->Name ); - } - return ($TransactionId, "Keyword ".$ObjectKeyword->KeywordObj->Name ." added."); - -} - -# }}} - -# {{{ sub DeleteKeyword - -=head2 DeleteKeyword - - Takes a paramhash. Deletes the Keyword denoted by the I<Keyword> parameter from this - ticket's object keywords. =cut -sub DeleteKeyword { - my $self = shift; - my %args = ( Keyword => undef, - KeywordSelect => undef, - @_ ); - - #ACL check - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, 'Permission Denied'); - } - - - #Load up the ObjectKeyword we\'re talking about - my $ObjectKeyword = new RT::ObjectKeyword($self->CurrentUser); - $ObjectKeyword->LoadByCols(Keyword => $args{'Keyword'}, - KeywordSelect => $args{'KeywordSelect'}, - ObjectType => 'Ticket', - ObjectId => $self->id() - ); - - #if we can\'t find it, bail - unless ($ObjectKeyword->id) { - $RT::Logger->err("Couldn't find the keyword ".$args{'Keyword'} . - " for keywordselect ". $args{'KeywordSelect'} . - "for ticket ".$self->id ); - return (undef, "Couldn't load keyword while trying to delete it."); - }; - - #record transaction here. - my ($TransactionId, $Msg, $TransObj) = - $self->_NewTransaction( Type => 'Keyword', - OldValue => $ObjectKeyword->KeywordObj->Name); - - $ObjectKeyword->Delete(); - - return ($TransactionId, "Keyword ".$ObjectKeyword->KeywordObj->Name ." deleted."); - -} -# }}} +=item Told -# }}} +Returns the current value of Told. +(In the database, Told is stored as datetime.) -# {{{ Routines dealing with ownership -# {{{ sub OwnerObj -=head2 OwnerObj +=item SetTold VALUE -Takes nothing and returns an RT::User object of -this ticket's owner -=cut +Set Told to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Told will be stored as a datetime.) -sub OwnerObj { - my $self = shift; - - #If this gets ACLed, we lose on a rights check in User.pm and - #get deep recursion. if we need ACLs here, we need - #an equiv without ACLs - - $owner = new RT::User ($self->CurrentUser); - $owner->Load($self->__Value('Owner')); - - #Return the owner object - return ($owner); -} - -# }}} - -# {{{ sub OwnerAsString - -=head2 OwnerAsString - -Returns the owner's email address =cut -sub OwnerAsString { - my $self = shift; - return($self->OwnerObj->EmailAddress); -} +=item Starts -# }}} +Returns the current value of Starts. +(In the database, Starts is stored as datetime.) -# {{{ sub SetOwner -=head2 SetOwner - -Takes two arguments: - the Id or Name of the owner -and (optionally) the type of the SetOwner Transaction. It defaults -to 'Give'. 'Steal' is also a valid option. - -=cut - -sub SetOwner { - my $self = shift; - my $NewOwner = shift; - my $Type = shift || "Give"; - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - my $NewOwnerObj = RT::User->new($self->CurrentUser); - my $OldOwnerObj = $self->OwnerObj; - - $NewOwnerObj->Load($NewOwner); - if (!$NewOwnerObj->Id) { - return (0, "That user does not exist"); - } - - #If thie ticket has an owner and it's not the current user - - if (($Type ne 'Steal' ) and ($Type ne 'Force') and #If we're not stealing - ($self->OwnerObj->Id != $RT::Nobody->Id ) and #and the owner is set - ($self->CurrentUser->Id ne $self->OwnerObj->Id())) { #and it's not us - return(0, "You can only reassign tickets that you own or that are unowned"); - } - - #If we've specified a new owner and that user can't modify the ticket - elsif (($NewOwnerObj->Id) and - (!$NewOwnerObj->HasQueueRight(Right => 'OwnTicket', - QueueObj => $self->QueueObj, - TicketObj => $self)) - ) { - return (0, "That user may not own requests in that queue"); - } - - - #If the ticket has an owner and it's the new owner, we don't need - #To do anything - elsif (($self->OwnerObj) and ($NewOwnerObj->Id eq $self->OwnerObj->Id)) { - return(0, "That user already owns that request"); - } - - - my ($trans,$msg)=$self->_Set(Field => 'Owner', - Value => $NewOwnerObj->Id, - TimeTaken => 0, - TransactionType => $Type); - - if ($trans) { - $msg = "Owner changed from ".$OldOwnerObj->Name." to ".$NewOwnerObj->Name; - } - return ($trans, $msg); - -} -# }}} +=item SetStarts VALUE -# {{{ sub Take -=head2 Take +Set Starts to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Starts will be stored as a datetime.) -A convenince method to set the ticket's owner to the current user =cut -sub Take { - my $self = shift; - return ($self->SetOwner($self->CurrentUser->Id, 'Take')); -} -# }}} +=item Started -# {{{ sub Untake +Returns the current value of Started. +(In the database, Started is stored as datetime.) -=head2 Untake -Convenience method to set the owner to 'nobody' if the current user is the owner. -=cut +=item SetStarted VALUE -sub Untake { - my $self = shift; - return($self->SetOwner($RT::Nobody->UserObj->Id, 'Untake')); -} -# }}} - -# {{{ sub Steal -=head2 Steal +Set Started to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Started will be stored as a datetime.) -A convenience method to change the owner of the current ticket to the -current user. Even if it's owned by another user. =cut -sub Steal { - my $self = shift; - - if ($self->IsOwner($self->CurrentUser)) { - return (0,"You already own this ticket"); - } else { - return($self->SetOwner($self->CurrentUser->Id, 'Steal')); - - } - -} - -# }}} - -# }}} -# {{{ Routines dealing with status +=item Due -# {{{ sub ValidateStatus +Returns the current value of Due. +(In the database, Due is stored as datetime.) -=head2 ValidateStatus STATUS -Takes a string. Returns true if that status is a valid status for this ticket. -Returns false otherwise. -=cut - -sub ValidateStatus { - my $self = shift; - my $status = shift; +=item SetDue VALUE - #Make sure the status passed in is valid - unless ($self->QueueObj->IsValidStatus($status)) { - return (undef); - } - - return (1); -} +Set Due to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Due will be stored as a datetime.) -# }}} +=cut -# {{{ sub SetStatus -=head2 SetStatus STATUS +=item Resolved -Set this ticket\'s status. STATUS can be one of: new, open, stalled, resolved or dead. +Returns the current value of Resolved. +(In the database, Resolved is stored as datetime.) -=cut -sub SetStatus { - my $self = shift; - my $status = shift; - - #Check ACL - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, 'Permission Denied'); - } - - my $now = new RT::Date($self->CurrentUser); - $now->SetToNow(); - - #If we're changing the status from new, record that we've started - if (($self->Status =~ /new/) && ($status ne 'new')) { - #Set the Started time to "now" - $self->_Set(Field => 'Started', - Value => $now->ISO, - RecordTransaction => 0); - } - - - if ($status eq 'resolved') { - #When we resolve a ticket, set the 'Resolved' attribute to now. - $self->_Set(Field => 'Resolved', - Value => $now->ISO, - RecordTransaction => 0); - } - - - #Actually update the status - return($self->_Set(Field => 'Status', - Value => $status, - TimeTaken => 0, - TransactionType => 'Status')); -} -# }}} +=item SetResolved VALUE -# {{{ sub Kill -=head2 Kill +Set Resolved to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Resolved will be stored as a datetime.) -Takes no arguments. Marks this ticket for garbage collection =cut -sub Kill { - my $self = shift; - return ($self->SetStatus('dead')); - # TODO: garbage collection -} - -# }}} -# {{{ sub Stall +=item LastUpdatedBy -=head2 Stall +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) -Sets this ticket's status to stalled =cut -sub Stall { - my $self = shift; - return ($self->SetStatus('stalled')); -} - -# }}} -# {{{ sub Open +=item LastUpdated -=head2 Open +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) -Sets this ticket\'s status to Open =cut -sub Open { - my $self = shift; - return ($self->SetStatus('open')); -} - -# }}} -# {{{ sub Resolve +=item Creator -=head2 Resolve +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) -Sets this ticket\'s status to Resolved =cut -sub Resolve { - my $self = shift; - return ($self->SetStatus('resolved')); -} - -# }}} - -# }}} - -# {{{ Actions + Routines dealing with transactions -# {{{ sub SetTold and _SetTold +=item Created -=head2 SetTold ISO [TIMETAKEN] +Returns the current value of Created. +(In the database, Created is stored as datetime.) -Updates the told and records a transaction =cut -sub SetTold { - my $self=shift; - my $told; - $told = shift if (@_); - my $timetaken=shift || 0; - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - my $datetold = new RT::Date($self->CurrentUser); - if ($told) { - $datetold->Set( Format => 'iso', - Value => $told); - } - else { - $datetold->SetToNow(); - } - - return($self->_Set(Field => 'Told', - Value => $datetold->ISO, - TimeTaken => $timetaken, - TransactionType => 'Told')); -} -=head2 _SetTold +=item Disabled -Updates the told without a transaction or acl check. Useful when we're sending replies. +Returns the current value of Disabled. +(In the database, Disabled is stored as smallint(6).) -=cut -sub _SetTold { - my $self=shift; - - my $now = new RT::Date($self->CurrentUser); - $now->SetToNow(); - #use __Set to get no ACLs ;) - return($self->__Set(Field => 'Told', - Value => $now->ISO)); -} -# }}} +=item SetDisabled VALUE -# {{{ sub Transactions -=head2 Transactions +Set Disabled to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Disabled will be stored as a smallint(6).) - Returns an RT::Transactions object of all transactions on this ticket =cut - -sub Transactions { - my $self = shift; - - use RT::Transactions; - my $transactions = RT::Transactions->new($self->CurrentUser); - - #If the user has no rights, return an empty object - if ($self->CurrentUserHasRight('ShowTicket')) { - my $tickets = $transactions->NewAlias('Tickets'); - $transactions->Join( ALIAS1 => 'main', - FIELD1 => 'Ticket', - ALIAS2 => $tickets, - FIELD2 => 'id'); - $transactions->Limit( ALIAS => $tickets, - FIELD => 'EffectiveId', - VALUE => $self->id()); - # if the user may not see comments do not return them - unless ($self->CurrentUserHasRight('ShowTicketComments')) { - $transactions->Limit( FIELD => 'Type', - OPERATOR => '!=', - VALUE => "Comment"); - } - } - - return($transactions); -} - -# }}} - -# {{{ sub _NewTransaction - -sub _NewTransaction { - my $self = shift; - my %args = ( TimeTaken => 0, - Type => undef, - OldValue => undef, - NewValue => undef, - Data => undef, - Field => undef, - MIMEObj => undef, - @_ ); - - - require RT::Transaction; - my $trans = new RT::Transaction($self->CurrentUser); - my ($transaction, $msg) = - $trans->Create( Ticket => $self->Id, - TimeTaken => $args{'TimeTaken'}, - Type => $args{'Type'}, - Data => $args{'Data'}, - Field => $args{'Field'}, - NewValue => $args{'NewValue'}, - OldValue => $args{'OldValue'}, - MIMEObj => $args{'MIMEObj'} - ); - - $RT::Logger->warning($msg) unless $transaction; - - $self->_SetLastUpdated; - - if (defined $args{'TimeTaken'} ) { - $self->_UpdateTimeTaken($args{'TimeTaken'}); - } - return($transaction, $msg, $trans); -} -# }}} -# }}} - -# {{{ PRIVATE UTILITY METHODS. Mostly needed so Ticket can be a DBIx::Record - -# {{{ sub _ClassAccessible sub _ClassAccessible { { - EffectiveId => { 'read' => 1, 'write' => 1, 'public' => 1 }, - Queue => { 'read' => 1, 'write' => 1 }, - Requestors => { 'read' => 1, 'write' => 1 }, - Owner => { 'read' => 1, 'write' => 1 }, - Subject => { 'read' => 1, 'write' => 1 }, - InitialPriority => { 'read' => 1, 'write' => 1 }, - FinalPriority => { 'read' => 1, 'write' => 1 }, - Priority => { 'read' => 1, 'write' => 1 }, - Status => { 'read' => 1, 'write' => 1 }, - TimeWorked => { 'read' => 1, 'write' => 1 }, - TimeLeft => { 'read' => 1, 'write' => 1 }, - Created => { 'read' => 1, 'auto' => 1 }, - Creator => { 'read' => 1, 'auto' => 1 }, - Told => { 'read' => 1, 'write' => 1 }, - Resolved => {'read' => 1}, - Starts => { 'read' => 1, 'write' => 1 }, - Started => { 'read' => 1, 'write' => 1 }, - Due => { 'read' => 1, 'write' => 1 }, - Creator => { 'read' => 1, 'auto' => 1 }, - Created => { 'read' => 1, 'auto' => 1 }, - LastUpdatedBy => { 'read' => 1, 'auto' => 1 }, - LastUpdated => { 'read' => 1, 'auto' => 1 } - }; - -} - -# }}} - -# {{{ sub _Set - -sub _Set { - my $self = shift; - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - my %args = (Field => undef, - Value => undef, - TimeTaken => 0, - RecordTransaction => 1, - TransactionType => 'Set', - @_ - ); - #if the user is trying to modify the record - - #Take care of the old value we really don't want to get in an ACL loop. - # so ask the super::_Value - my $Old=$self->SUPER::_Value("$args{'Field'}"); - - #Set the new value - my ($ret, $msg)=$self->SUPER::_Set(Field => $args{'Field'}, - Value=> $args{'Value'}); - - #If we can't actually set the field to the value, don't record - # a transaction. instead, get out of here. - if ($ret==0) {return (0,$msg);} - - if ($args{'RecordTransaction'} == 1) { - - my ($Trans, $Msg, $TransObj) = - $self->_NewTransaction(Type => $args{'TransactionType'}, - Field => $args{'Field'}, - NewValue => $args{'Value'}, - OldValue => $Old, - TimeTaken => $args{'TimeTaken'}, - ); - return ($Trans,$TransObj->Description); - } - else { - return ($ret, $msg); - } -} - -# }}} - -# {{{ sub _Value - -=head2 _Value - -Takes the name of a table column. -Returns its value as a string, if the user passes an ACL check - -=cut - -sub _Value { - - my $self = shift; - my $field = shift; - - - #if the field is public, return it. - if ($self->_Accessible($field, 'public')) { - #$RT::Logger->debug("Skipping ACL check for $field\n"); - return($self->SUPER::_Value($field)); - - } - - #If the current user doesn't have ACLs, don't let em at it. - - unless ($self->CurrentUserHasRight('ShowTicket')) { - return (undef); - } - return($self->SUPER::_Value($field)); - -} - -# }}} - -# {{{ sub _UpdateTimeTaken - -=head2 _UpdateTimeTaken - -This routine will increment the timeworked counter. it should -only be called from _NewTransaction - -=cut - -sub _UpdateTimeTaken { - my $self = shift; - my $Minutes = shift; - my ($Total); - - $Total = $self->SUPER::_Value("TimeWorked"); - $Total = ($Total || 0) + ($Minutes || 0); - $self->SUPER::_Set(Field => "TimeWorked", - Value => $Total); - - return ($Total); -} + + id => + {read => 1, type => 'int(11)', default => ''}, + EffectiveId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Queue => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Type => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + IssueStatement => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Resolution => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Owner => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Subject => + {read => 1, write => 1, type => 'varchar(200)', default => '[no subject]'}, + InitialPriority => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + FinalPriority => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Priority => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + TimeEstimated => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + TimeWorked => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Status => + {read => 1, write => 1, type => 'varchar(10)', default => ''}, + TimeLeft => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Told => + {read => 1, write => 1, type => 'datetime', default => ''}, + Starts => + {read => 1, write => 1, type => 'datetime', default => ''}, + Started => + {read => 1, write => 1, type => 'datetime', default => ''}, + Due => + {read => 1, write => 1, type => 'datetime', default => ''}, + Resolved => + {read => 1, write => 1, type => 'datetime', default => ''}, + LastUpdatedBy => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + LastUpdated => + {read => 1, auto => 1, type => 'datetime', default => ''}, + Creator => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Created => + {read => 1, auto => 1, type => 'datetime', default => ''}, + Disabled => + {read => 1, write => 1, type => 'smallint(6)', default => '0'}, + + } +}; -# }}} -# }}} + eval "require RT::Ticket_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Ticket_Overlay.pm}) { + die $@; + }; -# {{{ Routines dealing with ACCESS CONTROL + eval "require RT::Ticket_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Ticket_Vendor.pm}) { + die $@; + }; -# {{{ sub CurrentUserHasRight + eval "require RT::Ticket_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Ticket_Local.pm}) { + die $@; + }; -=head2 CurrentUserHasRight - Takes the textual name of a Ticket scoped right (from RT::ACE) and returns -1 if the user has that right. It returns 0 if the user doesn't have that right. -=cut -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - - return ($self->HasRight( Principal=> $self->CurrentUser->UserObj(), - Right => "$right")); +=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. -# {{{ sub HasRight +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line -=head2 HasRight + no warnings qw(redefine); - Takes a paramhash with the attributes 'Right' and 'Principal' - 'Right' is a ticket-scoped textual right from RT::ACE - 'Principal' is an RT::User object +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. - Returns 1 if the principal has the right. Returns undef if not. +RT::Ticket_Overlay, RT::Ticket_Vendor, RT::Ticket_Local =cut -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => undef, - @_); - - unless ((defined $args{'Principal'}) and (ref($args{'Principal'}))) { - $RT::Logger->warning("Principal attrib undefined for Ticket::HasRight"); - } - - return($args{'Principal'}->HasQueueRight(TicketObj => $self, - Right => $args{'Right'})); -} - -# }}} - -# }}} - 1; - -=head1 AUTHOR - -Jesse Vincent, jesse@fsck.com - -=head1 SEE ALSO - -RT - -=cut - - diff --git a/rt/lib/RT/TicketCustomFieldValue.pm b/rt/lib/RT/TicketCustomFieldValue.pm new file mode 100644 index 000000000..862a5dc13 --- /dev/null +++ b/rt/lib/RT/TicketCustomFieldValue.pm @@ -0,0 +1,286 @@ +# 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. +# +# 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. +# +# !! 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(@_); +} + + + + + +=item 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'}, +); + +} + + + +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + + +=cut + + +=item Ticket + +Returns the current value of Ticket. +(In the database, Ticket is stored as int(11).) + + + +=item 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 + + +=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); +} + +=item CustomField + +Returns the current value of CustomField. +(In the database, CustomField is stored as int(11).) + + + +=item 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 + + +=item 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); +} + +=item Content + +Returns the current value of Content. +(In the database, Content is stored as varchar(255).) + + + +=item 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 + + +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) + + +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + +=item LastUpdatedBy + +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) + + +=cut + + +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) + + +=cut + + + +sub _ClassAccessible { + { + + 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 new file mode 100644 index 000000000..c395ecac4 --- /dev/null +++ b/rt/lib/RT/TicketCustomFieldValue_Overlay.pm @@ -0,0 +1,52 @@ +# 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. +# +# 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); + + + +=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 new file mode 100644 index 000000000..f137f5375 --- /dev/null +++ b/rt/lib/RT/TicketCustomFieldValues.pm @@ -0,0 +1,115 @@ +# 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. +# +# 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. +# +# !! 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(@_) ); +} + + +=item 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 new file mode 100644 index 000000000..5777c37e3 --- /dev/null +++ b/rt/lib/RT/TicketCustomFieldValues_Overlay.pm @@ -0,0 +1,86 @@ +# 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. +# +# 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); + +# {{{ 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 new file mode 100644 index 000000000..c88bbc90f --- /dev/null +++ b/rt/lib/RT/Ticket_Overlay.pm @@ -0,0 +1,4040 @@ +# 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. +# +# 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 +# {{{ Front Material + +=head1 SYNOPSIS + + use RT::Ticket; + my $ticket = new RT::Ticket($CurrentUser); + $ticket->Load($ticket_id); + +=head1 DESCRIPTION + +This module lets you manipulate RT\'s ticket object. + + +=head1 METHODS + +=begin testing + +use_ok ( RT::Queue); +ok(my $testqueue = RT::Queue->new($RT::SystemUser)); +ok($testqueue->Create( Name => 'ticket tests')); +ok($testqueue->Id != 0); +use_ok(RT::CustomField); +ok(my $testcf = RT::CustomField->new($RT::SystemUser)); +ok($testcf->Create( Name => 'selectmulti', + Queue => $testqueue->id, + Type => 'SelectMultiple')); +ok($testcf->AddValue ( Name => 'Value1', + SortOrder => '1', + Description => 'A testing value')); +ok($testcf->AddValue ( Name => 'Value2', + SortOrder => '2', + Description => 'Another testing value')); +ok($testcf->AddValue ( Name => 'Value3', + SortOrder => '3', + Description => 'Yet Another testing value')); + +ok($testcf->Values->Count == 3); + +use_ok(RT::Ticket); + +my $u = RT::User->new($RT::SystemUser); +$u->Load("root"); +ok ($u->Id, "Found the root user"); +ok(my $t = RT::Ticket->new($RT::SystemUser)); +ok(my ($id, $msg) = $t->Create( Queue => $testqueue->Id, + Subject => 'Testing', + Owner => $u->Id + )); +ok($id != 0); +ok ($t->OwnerObj->Id == $u->Id, "Root is the ticket owner"); +ok(my ($cfv, $cfm) =$t->AddCustomFieldValue(Field => $testcf->Id, + Value => 'Value1')); +ok($cfv != 0, "Custom field creation didn't return an error: $cfm"); +ok($t->CustomFieldValues($testcf->Id)->Count == 1); +ok($t->CustomFieldValues($testcf->Id)->First && + $t->CustomFieldValues($testcf->Id)->First->Content eq 'Value1');; + +ok(my ($cfdv, $cfdm) = $t->DeleteCustomFieldValue(Field => $testcf->Id, + Value => 'Value1')); +ok ($cfdv != 0, "Deleted a custom field value: $cfdm"); +ok($t->CustomFieldValues($testcf->Id)->Count == 0); + +ok(my $t2 = RT::Ticket->new($RT::SystemUser)); +ok($t2->Load($id)); +ok($t2->Subject eq 'Testing'); +ok($t2->QueueObj->Id eq $testqueue->id); +ok($t2->OwnerObj->Id == $u->Id); + +my $t3 = RT::Ticket->new($RT::SystemUser); +my ($id3, $msg3) = $t3->Create( Queue => $testqueue->Id, + Subject => 'Testing', + Owner => $u->Id); +my ($cfv1, $cfm1) = $t->AddCustomFieldValue(Field => $testcf->Id, + Value => 'Value1'); +ok($cfv1 != 0, "Adding a custom field to ticket 1 is successful: $cfm"); +my ($cfv2, $cfm2) = $t3->AddCustomFieldValue(Field => $testcf->Id, + Value => 'Value2'); +ok($cfv2 != 0, "Adding a custom field to ticket 2 is successful: $cfm"); +my ($cfv3, $cfm3) = $t->AddCustomFieldValue(Field => $testcf->Id, + Value => 'Value3'); +ok($cfv3 != 0, "Adding a custom field to ticket 1 is successful: $cfm"); +ok($t->CustomFieldValues($testcf->Id)->Count == 2, + "This ticket has 2 custom field values"); +ok($t3->CustomFieldValues($testcf->Id)->Count == 1, + "This ticket has 1 custom field value"); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +use RT::Queue; +use RT::User; +use RT::Record; +use RT::Links; +use RT::Date; +use RT::CustomFields; +use RT::TicketCustomFieldValues; +use RT::Tickets; +use RT::URI::fsck_com_rt; +use RT::URI; + +=begin testing + + +ok(require RT::Ticket, "Loading the RT::Ticket library"); + +=end testing + +=cut + +# }}} + +# {{{ LINKTYPEMAP +# A helper table for relationships mapping to make it easier +# to build and parse links between tickets + +use vars '%LINKTYPEMAP'; + +%LINKTYPEMAP = ( + MemberOf => { Type => 'MemberOf', + Mode => 'Target', }, + Members => { Type => 'MemberOf', + Mode => 'Base', }, + HasMember => { Type => 'MemberOf', + Mode => 'Base', }, + RefersTo => { Type => 'RefersTo', + Mode => 'Target', }, + ReferredToBy => { Type => 'RefersTo', + Mode => 'Base', }, + DependsOn => { Type => 'DependsOn', + Mode => 'Target', }, + DependedOnBy => { Type => 'DependsOn', + Mode => 'Base', }, + +); + +# }}} + +# {{{ LINKDIRMAP +# A helper table for relationships 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', }, + +); + +# }}} + +# {{{ sub Load + +=head2 Load + +Takes a single argument. This can be a ticket id, ticket alias or +local ticket uri. If the ticket can't be loaded, returns undef. +Otherwise, returns the ticket id. + +=cut + +sub Load { + my $self = shift; + my $id = shift; + + #TODO modify this routine to look at EffectiveId and do the recursive load + # thing. be careful to cache all the interim tickets we try so we don't loop forever. + + #If it's a local URI, turn it into a ticket id + if ( $id =~ /^$RT::TicketBaseURI(\d+)$/ ) { + $id = $1; + } + + #If it's a remote URI, we're going to punt for now + elsif ( $id =~ '://' ) { + return (undef); + } + + #If we have an integer URI, load the ticket + if ( $id =~ /^\d+$/ ) { + my $ticketid = $self->LoadById($id); + + unless ($ticketid) { + $RT::Logger->debug("$self tried to load a bogus ticket: $id\n"); + return (undef); + } + } + + #It's not a URI. It's not a numerical ticket ID. Punt! + else { + return (undef); + } + + #If we're merged, resolve the merge. + if ( ( $self->EffectiveId ) and ( $self->EffectiveId != $self->Id ) ) { + return ( $self->Load( $self->EffectiveId ) ); + } + + #Ok. we're loaded. lets get outa here. + return ( $self->Id ); + +} + +# }}} + +# {{{ sub LoadByURI + +=head2 LoadByURI + +Given a local ticket URI, loads the specified ticket. + +=cut + +sub LoadByURI { + my $self = shift; + my $uri = shift; + + if ( $uri =~ /^$RT::TicketBaseURI(\d+)$/ ) { + my $id = $1; + return ( $self->Load($id) ); + } + else { + return (undef); + } +} + +# }}} + +# {{{ sub Create + +=head2 Create (ARGS) + +Arguments: ARGS is a hash of named parameters. Valid parameters are: + + id + Queue - Either a Queue object or a Queue Name + Requestor - A reference to a list of RT::User objects, email addresses or RT user Names + Cc - A reference to a list of RT::User objects, email addresses or Names + AdminCc - A reference to a list of RT::User objects, email addresses or Names + Type -- The ticket\'s type. ignore this for now + Owner -- This ticket\'s owner. either an RT::User object or this user\'s id + Subject -- A string describing the subject of the ticket + InitialPriority -- an integer from 0 to 99 + FinalPriority -- an integer from 0 to 99 + Status -- any valid status (Defined in RT::Queue) + TimeEstimated -- an integer. estimated time for this task in minutes + TimeWorked -- an integer. time worked so far in minutes + TimeLeft -- an integer. time remaining in minutes + Starts -- an ISO date describing the ticket\'s start date and time in GMT + Due -- an ISO date describing the ticket\'s due date and time in GMT + MIMEObj -- a MIME::Entity object with the content of the initial ticket request. + CustomField-<n> -- a scalar or array of values for the customfield with the id <n> + + +Returns: TICKETID, Transaction Object, Error Message + + +=begin testing + +my $t = RT::Ticket->new($RT::SystemUser); + +ok( $t->Create(Queue => 'General', Due => '2002-05-21 00:00:00', ReferredToBy => 'http://www.cpan.org', RefersTo => 'http://fsck.com', Subject => 'This is a subject'), "Ticket Created"); + +ok ( my $id = $t->Id, "Got ticket id"); +ok ($t->RefersTo->First->Target =~ /fsck.com/, "Got refers to"); +ok ($t->ReferredToBy->First->Base =~ /cpan.org/, "Got referredtoby"); +ok ($t->ResolvedObj->Unix == -1, "It hasn't been resolved - ". $t->ResolvedObj->Unix); + +=end testing + +=cut + +sub Create { + my $self = shift; + + my %args = ( id => undef, + Queue => undef, + Requestor => undef, + Cc => undef, + AdminCc => undef, + Type => 'ticket', + Owner => undef, + Subject => '', + InitialPriority => undef, + FinalPriority => undef, + Status => 'new', + TimeWorked => "0", + TimeLeft => 0, + TimeEstimated => 0, + Due => undef, + Starts => undef, + Started => undef, + Resolved => undef, + MIMEObj => undef, + _RecordTransaction => 1, + + + + @_ ); + + my ( $ErrStr, $Owner, $resolved ); + my (@non_fatal_errors); + + my $QueueObj = RT::Queue->new($RT::SystemUser); + + + if ( ( defined( $args{'Queue'} ) ) && ( !ref( $args{'Queue'} ) ) ) { + $QueueObj->Load( $args{'Queue'} ); + } + elsif ( ref( $args{'Queue'} ) eq 'RT::Queue' ) { + $QueueObj->Load( $args{'Queue'}->Id ); + } + else { + $RT::Logger->debug( $args{'Queue'} . " not a recognised queue object."); + } +; + + #Can't create a ticket without a queue. + unless ( defined($QueueObj) && $QueueObj->Id ) { + $RT::Logger->debug("$self No queue given for ticket creation."); + return ( 0, 0, $self->loc('Could not create ticket. Queue not set') ); + } + + #Now that we have a queue, Check the ACLS + unless ( $self->CurrentUser->HasRight( Right => 'CreateTicket', + Object => $QueueObj ) + ) { + return ( 0, 0, + $self->loc( "No permission to create tickets in the queue '[_1]'", $QueueObj->Name ) ); + } + + unless ( $QueueObj->IsValidStatus( $args{'Status'} ) ) { + return ( 0, 0, $self->loc('Invalid value for status') ); + } + + + #Since we have a queue, we can set queue defaults + #Initial Priority + + # If there's no queue default initial priority and it's not set, set it to 0 + $args{'InitialPriority'} = ( $QueueObj->InitialPriority || 0 ) + unless ( defined $args{'InitialPriority'} ); + + #Final priority + + # If there's no queue default final priority and it's not set, set it to 0 + $args{'FinalPriority'} = ( $QueueObj->FinalPriority || 0 ) + unless ( defined $args{'FinalPriority'} ); + + # {{{ Dates + #TODO we should see what sort of due date we're getting, rather + + # than assuming it's in ISO format. + + #Set the due date. if we didn't get fed one, use the queue default due in + my $Due = new RT::Date( $self->CurrentUser ); + + if ( $args{'Due'} ) { + $Due->Set( Format => 'ISO', Value => $args{'Due'} ); + } + elsif ( $QueueObj->DefaultDueIn ) { + $Due->SetToNow; + $Due->AddDays( $QueueObj->DefaultDueIn ); + } + + my $Starts = new RT::Date( $self->CurrentUser ); + if ( defined $args{'Starts'} ) { + $Starts->Set( Format => 'ISO', Value => $args{'Starts'} ); + } + + my $Started = new RT::Date( $self->CurrentUser ); + if ( defined $args{'Started'} ) { + $Started->Set( Format => 'ISO', Value => $args{'Started'} ); + } + + my $Resolved = new RT::Date( $self->CurrentUser ); + if ( defined $args{'Resolved'} ) { + $Resolved->Set( Format => 'ISO', Value => $args{'Resolved'} ); + } + + + #If the status is an inactive status, set the resolved date + if ($QueueObj->IsInactiveStatus($args{'Status'}) && !$args{'Resolved'}) { + $RT::Logger->debug("Got a ".$args{'Status'} . "ticket with a resolved of ".$args{'Resolved'}); + $Resolved->SetToNow; + } + + # }}} + + # {{{ Dealing with time fields + + $args{'TimeEstimated'} = 0 unless defined $args{'TimeEstimated'}; + $args{'TimeWorked'} = 0 unless defined $args{'TimeWorked'}; + $args{'TimeLeft'} = 0 unless defined $args{'TimeLeft'}; + + # }}} + + # {{{ Deal with setting the owner + + if ( ref( $args{'Owner'} ) eq 'RT::User' ) { + $Owner = $args{'Owner'}; + } + + #If we've been handed something else, try to load the user. + elsif ( defined $args{'Owner'} ) { + $Owner = RT::User->new( $self->CurrentUser ); + $Owner->Load( $args{'Owner'} ); + + } + + #If we have a proposed owner and they don't have the right + #to own a ticket, scream about it and make them not the owner + if ( ( defined($Owner) ) + and ( $Owner->Id ) + and ( $Owner->Id != $RT::Nobody->Id ) + and ( !$Owner->HasRight( Object => $QueueObj, + Right => 'OwnTicket' ) ) + ) { + + $RT::Logger->warning( "User " + . $Owner->Name . "(" + . $Owner->id + . ") was proposed " + . "as a ticket owner but has no rights to own " + . "tickets in ".$QueueObj->Name ); + + push @non_fatal_errors, $self->loc("Invalid owner. Defaulting to 'nobody'."); + + $Owner = undef; + } + + #If we haven't been handed a valid owner, make it nobody. + unless ( defined($Owner) && $Owner->Id ) { + $Owner = new RT::User( $self->CurrentUser ); + $Owner->Load( $RT::Nobody->Id ); + } + + # }}} + + # We attempt to load or create each of the people who might have a role for this ticket + # _outside_ the transaction, so we don't get into ticket creation races + foreach my $type ( "Cc", "AdminCc", "Requestor" ) { + next unless (defined $args{$type}); + foreach my $watcher ( ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) { + my $user = RT::User->new($RT::SystemUser); + $user->LoadOrCreateByEmail($watcher) if ($watcher !~ /^\d+$/); + } + } + + + $RT::Handle->BeginTransaction(); + + my %params =( Queue => $QueueObj->Id, + Owner => $Owner->Id, + Subject => $args{'Subject'}, + InitialPriority => $args{'InitialPriority'}, + FinalPriority => $args{'FinalPriority'}, + Priority => $args{'InitialPriority'}, + Status => $args{'Status'}, + TimeWorked => $args{'TimeWorked'}, + TimeEstimated => $args{'TimeEstimated'}, + TimeLeft => $args{'TimeLeft'}, + Type => $args{'Type'}, + Starts => $Starts->ISO, + Started => $Started->ISO, + Resolved => $Resolved->ISO, + Due => $Due->ISO ); + + # Parameters passed in during an import that we probably don't want to touch, otherwise + foreach my $attr qw(id Creator Created LastUpdated LastUpdatedBy) { + $params{$attr} = $args{$attr} if ($args{$attr}); + } + + # Delete null integer parameters + foreach my $attr qw(TimeWorked TimeLeft TimeEstimated InitialPriority FinalPriority) { + delete $params{$attr} unless (exists $params{$attr} && $params{$attr}); + } + + + my $id = $self->SUPER::Create( %params); + unless ($id) { + $RT::Logger->crit( "Couldn't create a ticket"); + $RT::Handle->Rollback(); + return ( 0, 0, $self->loc( "Ticket could not be created due to an internal error") ); + } + + #Set the ticket's effective ID now that we've created it. + my ( $val, $msg ) = $self->__Set( Field => 'EffectiveId', Value => $id ); + + unless ($val) { + $RT::Logger->crit("$self ->Create couldn't set EffectiveId: $msg\n"); + $RT::Handle->Rollback(); + return ( 0, 0, $self->loc( "Ticket could not be created due to an internal error") ); + } + + my $create_groups_ret = $self->_CreateTicketGroups(); + unless ($create_groups_ret) { + $RT::Logger->crit( "Couldn't create ticket groups for ticket " + . $self->Id + . ". aborting Ticket creation." ); + $RT::Handle->Rollback(); + return ( 0, 0, + $self->loc( "Ticket could not be created due to an internal error") ); + } + + # Set the owner in the Groups table + # We denormalize it into the Ticket table too because doing otherwise would + # kill performance, bigtime. It gets kept in lockstep thanks to the magic of transactionalization + + $self->OwnerGroup->_AddMember( PrincipalId => $Owner->PrincipalId , InsideTransaction => 1); + + # {{{ Deal with setting up watchers + + + foreach my $type ( "Cc", "AdminCc", "Requestor" ) { + next unless (defined $args{$type}); + foreach my $watcher ( ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) { + + # we reason that all-digits number must be a principal id, not email + # this is the only way to can add + my $field = 'Email'; + $field = 'PrincipalId' if $watcher =~ /^\d+$/; + + my ( $wval, $wmsg ); + + if ( $type eq 'AdminCc' ) { + + # Note that we're using AddWatcher, rather than _AddWatcher, as we + # actually _want_ that ACL check. Otherwise, random ticket creators + # could make themselves adminccs and maybe get ticket rights. that would + # be poor + ( $wval, $wmsg ) = $self->AddWatcher( Type => $type, + $field => $watcher, + Silent => 1 ); + } + else { + ( $wval, $wmsg ) = $self->_AddWatcher( Type => $type, + $field => $watcher, + Silent => 1 ); + } + + push @non_fatal_errors, $wmsg unless ($wval); + } + } + + # }}} + # {{{ Deal with setting up links + + + foreach my $type ( keys %LINKTYPEMAP ) { + next unless (defined $args{$type}); + foreach my $link ( + ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) + { + my ( $wval, $wmsg ) = $self->AddLink( + Type => $LINKTYPEMAP{$type}->{'Type'}, + $LINKTYPEMAP{$type}->{'Mode'} => $link, + Silent => 1 + ); + + push @non_fatal_errors, $wmsg unless ($wval); + } + } + + # }}} + + # {{{ Add all the custom fields + + foreach my $arg ( keys %args ) { + next unless ( $arg =~ /^CustomField-(\d+)$/i ); + my $cfid = $1; + foreach + my $value ( ref( $args{$arg} ) ? @{ $args{$arg} } : ( $args{$arg} ) ) { + next unless ($value); + $self->_AddCustomFieldValue( Field => $cfid, + Value => $value, + RecordTransaction => 0 + ); + } + } + # }}} + + if ( $args{'_RecordTransaction'} ) { + # {{{ Add a transaction for the create + my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( + Type => "Create", + TimeTaken => 0, + MIMEObj => $args{'MIMEObj'} + ); + + + if ( $self->Id && $Trans ) { + $ErrStr = $self->loc( "Ticket [_1] created in queue '[_2]'", $self->Id, $QueueObj->Name ); + $ErrStr = join ( "\n", $ErrStr, @non_fatal_errors ); + + $RT::Logger->info("Ticket ".$self->Id. " created in queue '".$QueueObj->Name."' by ".$self->CurrentUser->Name); + } + else { + $RT::Handle->Rollback(); + + # TODO where does this get errstr from? + $RT::Logger->error("Ticket couldn't be created: $ErrStr"); + return ( 0, 0, $self->loc( "Ticket could not be created due to an internal error")); + } + + $RT::Handle->Commit(); + return ( $self->Id, $TransObj->Id, $ErrStr ); + # }}} + } + else { + + # Not going to record a transaction + $RT::Handle->Commit(); + $ErrStr = $self->loc( "Ticket [_1] created in queue '[_2]'", $self->Id, $QueueObj->Name ); + $ErrStr = join ( "\n", $ErrStr, @non_fatal_errors ); + return ( $self->Id, $0, $ErrStr ); + + } +} + + +# }}} + +# {{{ sub CreateFromEmailMessage + + +=head2 CreateFromEmailMessage { Message, Queue, ExtractActorFromHeaders } + +This code replaces what was once a large part of the email gateway. +It takes an email message as a parameter, parses out the sender, subject +and a MIME object. It then creates a ticket based on those attributes + +=cut + +sub CreateFromEmailMessage { + my $self = shift; + my %args = ( Message => undef, + Queue => undef, + ExtractActorFromSender => undef, + @_ ); + + + # Pull out requestor + + # Pull out Cc? + + # + + +} + +# }}} + + +# {{{ CreateFrom822 + +=head2 FORMAT + +CreateTickets uses the template as a template for an ordered set of tickets +to create. The basic format is as follows: + + + ===Create-Ticket: identifier + Param: Value + Param2: Value + Param3: Value + Content: Blah + blah + blah + ENDOFCONTENT +=head2 Acceptable fields + +A complete list of acceptable fields for this beastie: + + + * Queue => Name or id# of a queue + Subject => A text string + Status => A valid status. defaults to 'new' + + Due => Dates can be specified in seconds since the epoch + to be handled literally or in a semi-free textual + format which RT will attempt to parse. + Starts => + Started => + Resolved => + Owner => Username or id of an RT user who can and should own + this ticket + + Requestor => Email address + + Cc => Email address + + AdminCc => Email address + TimeWorked => + TimeEstimated => + TimeLeft => + InitialPriority => + FinalPriority => + Type => + + DependsOn => + + DependedOnBy => + + RefersTo => + + ReferredToBy => + + Members => + + MemberOf => + Content => content. Can extend to multiple lines. Everything + within a template after a Content: header is treated + as content until we hit a line containing only + ENDOFCONTENT + ContentType => the content-type of the Content field + CustomField-<id#> => custom field value + +Fields marked with an * are required. + +Fields marked with a + man have multiple values, simply +by repeating the fieldname on a new line with an additional value. + + +When parsed, field names are converted to lowercase and have -s stripped. +Refers-To, RefersTo, refersto, refers-to and r-e-f-er-s-tO will all +be treated as the same thing. + + +=begin testing + +use_ok(RT::Ticket); + +=end testing + + +=cut + +sub CreateFrom822 { + my $self = shift; + my $content = shift; + + + + my %args = $self->_Parse822HeadersForAttributes($content); + + # Now we have a %args to work with. + # Make sure we have at least the minimum set of + # reasonable data and do our thang + my $ticket = RT::Ticket->new($RT::SystemUser); + + my %ticketargs = ( + Queue => $args{'queue'}, + Subject => $args{'subject'}, + Status => $args{'status'}, + Due => $args{'due'}, + Starts => $args{'starts'}, + Started => $args{'started'}, + Resolved => $args{'resolved'}, + Owner => $args{'owner'}, + Requestor => $args{'requestor'}, + Cc => $args{'cc'}, + AdminCc => $args{'admincc'}, + TimeWorked => $args{'timeworked'}, + TimeEstimated => $args{'timeestimated'}, + TimeLeft => $args{'timeleft'}, + InitialPriority => $args{'initialpriority'}, + FinalPriority => $args{'finalpriority'}, + Type => $args{'type'}, + DependsOn => $args{'dependson'}, + DependedOnBy => $args{'dependedonby'}, + RefersTo => $args{'refersto'}, + ReferredToBy => $args{'referredtoby'}, + Members => $args{'members'}, + MemberOf => $args{'memberof'}, + MIMEObj => $args{'mimeobj'} + ); + + # Add custom field entries to %ticketargs. + # TODO: allow named custom fields + map { + /^customfield-(\d+)$/ + && ( $ticketargs{ "CustomField-" . $1 } = $args{$_} ); + } keys(%args); + + my ( $id, $transid, $msg ) = $ticket->Create(%ticketargs); + unless ($id) { + $RT::Logger->error( "Couldn't create a related ticket for " + . $self->TicketObj->Id . " " + . $msg ); + } + + return (1); +} + +# }}} + +# {{{ UpdateFrom822 + +=head2 UpdateFrom822 $MESSAGE + +Takes an RFC822 format message as a string and uses it to make a bunch of changes to a ticket. +Returns an um. ask me again when the code exists + + +=begin testing + +my $simple_update = <<EOF; +Subject: target +AddRequestor: jesse\@example.com +EOF + +my $ticket = RT::Ticket->new($RT::SystemUser); +$ticket->Create(Subject => 'first', Queue => 'general'); +ok($ticket->Id, "Created the test ticket"); +$ticket->UpdateFrom822($simple_update); +is($ticket->Subject, 'target', "changed the subject"); +my $jesse = RT::User->new($RT::SystemUser); +$jesse->LoadByEmail('jesse@example.com'); +ok ($jesse->Id, "There's a user for jesse"); +ok($ticket->Requestors->HasMember( $jesse->PrincipalObj), "It has the jesse principal object as a requestor "); + +=end testing + + +=cut + +sub UpdateFrom822 { + my $self = shift; + my $content = shift; + my %args = $self->_Parse822HeadersForAttributes($content); + + + my %ticketargs = ( + Queue => $args{'queue'}, + Subject => $args{'subject'}, + Status => $args{'status'}, + Due => $args{'due'}, + Starts => $args{'starts'}, + Started => $args{'started'}, + Resolved => $args{'resolved'}, + Owner => $args{'owner'}, + Requestor => $args{'requestor'}, + Cc => $args{'cc'}, + AdminCc => $args{'admincc'}, + TimeWorked => $args{'timeworked'}, + TimeEstimated => $args{'timeestimated'}, + TimeLeft => $args{'timeleft'}, + InitialPriority => $args{'initialpriority'}, + Priority => $args{'priority'}, + FinalPriority => $args{'finalpriority'}, + Type => $args{'type'}, + DependsOn => $args{'dependson'}, + DependedOnBy => $args{'dependedonby'}, + RefersTo => $args{'refersto'}, + ReferredToBy => $args{'referredtoby'}, + Members => $args{'members'}, + MemberOf => $args{'memberof'}, + MIMEObj => $args{'mimeobj'} + ); + + foreach my $type qw(Requestor Cc Admincc) { + + foreach my $action ( 'Add', 'Del', '' ) { + + my $lctag = lc($action) . lc($type); + foreach my $list ( $args{$lctag}, $args{ $lctag . 's' } ) { + + foreach my $entry ( ref($list) ? @{$list} : ($list) ) { + push @{$ticketargs{ $action . $type }} , split ( /\s*,\s*/, $entry ); + } + + } + + # Todo: if we're given an explicit list, transmute it into a list of adds/deletes + + } + } + + # Add custom field entries to %ticketargs. + # TODO: allow named custom fields + map { + /^customfield-(\d+)$/ + && ( $ticketargs{ "CustomField-" . $1 } = $args{$_} ); + } keys(%args); + +# for each ticket we've been told to update, iterate through the set of +# rfc822 headers and perform that update to the ticket. + + + # {{{ Set basic fields + my @attribs = qw( + Subject + FinalPriority + Priority + TimeEstimated + TimeWorked + TimeLeft + Status + Queue + Type + ); + + + # Resolve the queue from a name to a numeric id. + if ( $ticketargs{'Queue'} and ( $ticketargs{'Queue'} !~ /^(\d+)$/ ) ) { + my $tempqueue = RT::Queue->new($RT::SystemUser); + $tempqueue->Load( $ticketargs{'Queue'} ); + $ticketargs{'Queue'} = $tempqueue->Id() if ( $tempqueue->id ); + } + + # die "updaterecordobject is a webui thingy"; + my @results; + + foreach my $attribute (@attribs) { + my $value = $ticketargs{$attribute}; + + if ( $value ne $self->$attribute() ) { + + my $method = "Set$attribute"; + my ( $code, $msg ) = $self->$method($value); + + push @results, $self->loc($attribute) . ': ' . $msg; + + } + } + + # We special case owner changing, so we can use ForceOwnerChange + if ( $ticketargs{'Owner'} && ( $self->Owner != $ticketargs{'Owner'} ) ) { + my $ChownType = "Give"; + $ChownType = "Force" if ( $ticketargs{'ForceOwnerChange'} ); + + my ( $val, $msg ) = $self->SetOwner( $ticketargs{'Owner'}, $ChownType ); + push ( @results, $msg ); + } + + # }}} +# Deal with setting watchers + + +# Acceptable arguments: +# Requestor +# Requestors +# AddRequestor +# AddRequestors +# DelRequestor + + foreach my $type qw(Requestor Cc AdminCc) { + + # If we've been given a number of delresses to del, do it. + foreach my $address (@{$ticketargs{'Del'.$type}}) { + my ($id, $msg) = $self->DelWatcher( Type => $type, Email => $address); + push (@results, $msg) ; + } + + # If we've been given a number of addresses to add, do it. + foreach my $address (@{$ticketargs{'Add'.$type}}) { + $RT::Logger->debug("Adding $address as a $type"); + my ($id, $msg) = $self->AddWatcher( Type => $type, Email => $address); + push (@results, $msg) ; + + } + + +} + + +} +# }}} + +# {{{ _Parse822HeadersForAttributes Content + +=head2 _Parse822HeadersForAttributes Content + +Takes an RFC822 style message and parses its attributes into a hash. + +=cut + +sub _Parse822HeadersForAttributes { + my $self = shift; + my $content = shift; + my %args; + + my @lines = ( split ( /\n/, $content ) ); + while ( defined( my $line = shift @lines ) ) { + if ( $line =~ /^(.*?):(?:\s+(.*))?$/ ) { + my $value = $2; + my $tag = lc($1); + + $tag =~ s/-//g; + if ( defined( $args{$tag} ) ) + { #if we're about to get a second value, make it an array + $args{$tag} = [ $args{$tag} ]; + } + if ( ref( $args{$tag} ) ) + { #If it's an array, we want to push the value + push @{ $args{$tag} }, $value; + } + else { #if there's nothing there, just set the value + $args{$tag} = $value; + } + } elsif ($line =~ /^$/) { + + #TODO: this won't work, since "" isn't of the form "foo:value" + + while ( defined( my $l = shift @lines ) ) { + push @{ $args{'content'} }, $l; + } + } + + } + + foreach my $date qw(due starts started resolved) { + my $dateobj = RT::Date->new($RT::SystemUser); + if ( $args{$date} =~ /^\d+$/ ) { + $dateobj->Set( Format => 'unix', Value => $args{$date} ); + } + else { + $dateobj->Set( Format => 'unknown', Value => $args{$date} ); + } + $args{$date} = $dateobj->ISO; + } + $args{'mimeobj'} = MIME::Entity->new(); + $args{'mimeobj'}->build( + Type => ( $args{'contenttype'} || 'text/plain' ), + Data => ($args{'content'} || '') + ); + + return (%args); +} + +# }}} + +# {{{ sub Import + +=head2 Import PARAMHASH + +Import a ticket. +Doesn\'t create a transaction. +Doesn\'t supply queue defaults, etc. + +Returns: TICKETID + +=cut + +sub Import { + my $self = shift; + my ( $ErrStr, $QueueObj, $Owner ); + + my %args = ( + id => undef, + EffectiveId => undef, + Queue => undef, + Requestor => undef, + Type => 'ticket', + Owner => $RT::Nobody->Id, + Subject => '[no subject]', + InitialPriority => undef, + FinalPriority => undef, + Status => 'new', + TimeWorked => "0", + Due => undef, + Created => undef, + Updated => undef, + Resolved => undef, + Told => undef, + @_ + ); + + if ( ( defined( $args{'Queue'} ) ) && ( !ref( $args{'Queue'} ) ) ) { + $QueueObj = RT::Queue->new($RT::SystemUser); + $QueueObj->Load( $args{'Queue'} ); + + #TODO error check this and return 0 if it\'s not loading properly +++ + } + elsif ( ref( $args{'Queue'} ) eq 'RT::Queue' ) { + $QueueObj = RT::Queue->new($RT::SystemUser); + $QueueObj->Load( $args{'Queue'}->Id ); + } + else { + $RT::Logger->debug( + "$self " . $args{'Queue'} . " not a recognised queue object." ); + } + + #Can't create a ticket without a queue. + unless ( defined($QueueObj) and $QueueObj->Id ) { + $RT::Logger->debug("$self No queue given for ticket creation."); + return ( 0, $self->loc('Could not create ticket. Queue not set') ); + } + + #Now that we have a queue, Check the ACLS + unless ( + $self->CurrentUser->HasRight( + Right => 'CreateTicket', + Object => $QueueObj + ) + ) + { + return ( 0, + $self->loc("No permission to create tickets in the queue '[_1]'" + , $QueueObj->Name)); + } + + # {{{ Deal with setting the owner + + # Attempt to take user object, user name or user id. + # Assign to nobody if lookup fails. + if ( defined( $args{'Owner'} ) ) { + if ( ref( $args{'Owner'} ) ) { + $Owner = $args{'Owner'}; + } + else { + $Owner = new RT::User( $self->CurrentUser ); + $Owner->Load( $args{'Owner'} ); + if ( !defined( $Owner->id ) ) { + $Owner->Load( $RT::Nobody->id ); + } + } + } + + #If we have a proposed owner and they don't have the right + #to own a ticket, scream about it and make them not the owner + if ( + ( defined($Owner) ) + and ( $Owner->Id != $RT::Nobody->Id ) + and ( + !$Owner->HasRight( + Object => $QueueObj, + Right => 'OwnTicket' + ) + ) + ) + { + + $RT::Logger->warning( "$self user " + . $Owner->Name . "(" + . $Owner->id + . ") was proposed " + . "as a ticket owner but has no rights to own " + . "tickets in '" + . $QueueObj->Name . "'\n" ); + + $Owner = undef; + } + + #If we haven't been handed a valid owner, make it nobody. + unless ( defined($Owner) ) { + $Owner = new RT::User( $self->CurrentUser ); + $Owner->Load( $RT::Nobody->UserObj->Id ); + } + + # }}} + + unless ( $self->ValidateStatus( $args{'Status'} ) ) { + return ( 0, $self->loc("'[_1]' is an invalid value for status", $args{'Status'}) ); + } + + $self->{'_AccessibleCache'}{Created} = { 'read' => 1, 'write' => 1 }; + $self->{'_AccessibleCache'}{Creator} = { 'read' => 1, 'auto' => 1 }; + $self->{'_AccessibleCache'}{LastUpdated} = { 'read' => 1, 'write' => 1 }; + $self->{'_AccessibleCache'}{LastUpdatedBy} = { 'read' => 1, 'auto' => 1 }; + + # If we're coming in with an id, set that now. + my $EffectiveId = undef; + if ( $args{'id'} ) { + $EffectiveId = $args{'id'}; + + } + + my $id = $self->SUPER::Create( + id => $args{'id'}, + EffectiveId => $EffectiveId, + Queue => $QueueObj->Id, + Owner => $Owner->Id, + Subject => $args{'Subject'}, # loc + InitialPriority => $args{'InitialPriority'}, # loc + FinalPriority => $args{'FinalPriority'}, # loc + Priority => $args{'InitialPriority'}, # loc + Status => $args{'Status'}, # loc + TimeWorked => $args{'TimeWorked'}, # loc + Type => $args{'Type'}, # loc + Created => $args{'Created'}, # loc + Told => $args{'Told'}, # loc + LastUpdated => $args{'Updated'}, # loc + Resolved => $args{'Resolved'}, # loc + Due => $args{'Due'}, # loc + ); + + # If the ticket didn't have an id + # Set the ticket's effective ID now that we've created it. + if ( $args{'id'} ) { + $self->Load( $args{'id'} ); + } + else { + my ( $val, $msg ) = + $self->__Set( Field => 'EffectiveId', Value => $id ); + + unless ($val) { + $RT::Logger->err( + $self . "->Import couldn't set EffectiveId: $msg\n" ); + } + } + + my $watcher; + foreach $watcher ( @{ $args{'Cc'} } ) { + $self->_AddWatcher( Type => 'Cc', Person => $watcher, Silent => 1 ); + } + foreach $watcher ( @{ $args{'AdminCc'} } ) { + $self->_AddWatcher( Type => 'AdminCc', Person => $watcher, + Silent => 1 ); + } + foreach $watcher ( @{ $args{'Requestor'} } ) { + $self->_AddWatcher( Type => 'Requestor', Person => $watcher, + Silent => 1 ); + } + + return ( $self->Id, $ErrStr ); +} + +# }}} + + +# {{{ Routines dealing with watchers. + +# {{{ _CreateTicketGroups + +=head2 _CreateTicketGroups + +Create the ticket groups and relationships for this ticket. +This routine expects to be called from Ticket->Create _inside of a transaction_ + +It will create four groups for this ticket: Requestor, Cc, AdminCc and Owner. + +It will return true on success and undef on failure. + +=begin testing + +my $ticket = RT::Ticket->new($RT::SystemUser); +my ($id, $msg) = $ticket->Create(Subject => "Foo", + Owner => $RT::SystemUser->Id, + Status => 'open', + Requestor => ['jesse@example.com'], + Queue => '1' + ); +ok ($id, "Ticket $id was created"); +ok(my $group = RT::Group->new($RT::SystemUser)); +ok($group->LoadTicketRoleGroup(Ticket => $id, Type=> 'Requestor')); +ok ($group->Id, "Found the requestors object for this ticket"); + +ok(my $jesse = RT::User->new($RT::SystemUser), "Creating a jesse rt::user"); +$jesse->LoadByEmail('jesse@example.com'); +ok($jesse->Id, "Found the jesse rt user"); + + +ok ($ticket->IsWatcher(Type => 'Requestor', PrincipalId => $jesse->PrincipalId), "The ticket actually has jesse at fsck.com as a requestor"); +ok ((my $add_id, $add_msg) = $ticket->AddWatcher(Type => 'Requestor', Email => 'bob@fsck.com'), "Added bob at fsck.com as a requestor"); +ok ($add_id, "Add succeeded: ($add_msg)"); +ok(my $bob = RT::User->new($RT::SystemUser), "Creating a bob rt::user"); +$bob->LoadByEmail('bob@fsck.com'); +ok($bob->Id, "Found the bob rt user"); +ok ($ticket->IsWatcher(Type => 'Requestor', PrincipalId => $bob->PrincipalId), "The ticket actually has bob at fsck.com as a requestor");; +ok ((my $add_id, $add_msg) = $ticket->DeleteWatcher(Type =>'Requestor', Email => 'bob@fsck.com'), "Added bob at fsck.com as a requestor"); +ok (!$ticket->IsWatcher(Type => 'Requestor', Principal => $bob->PrincipalId), "The ticket no longer has bob at fsck.com as a requestor");; + + +$group = RT::Group->new($RT::SystemUser); +ok($group->LoadTicketRoleGroup(Ticket => $id, Type=> 'Cc')); +ok ($group->Id, "Found the cc object for this ticket"); +$group = RT::Group->new($RT::SystemUser); +ok($group->LoadTicketRoleGroup(Ticket => $id, Type=> 'AdminCc')); +ok ($group->Id, "Found the AdminCc object for this ticket"); +$group = RT::Group->new($RT::SystemUser); +ok($group->LoadTicketRoleGroup(Ticket => $id, Type=> 'Owner')); +ok ($group->Id, "Found the Owner object for this ticket"); +ok($group->HasMember($RT::SystemUser->UserObj->PrincipalObj), "the owner group has the member 'RT_System'"); + +=end testing + +=cut + + +sub _CreateTicketGroups { + my $self = shift; + + my @types = qw(Requestor Owner Cc AdminCc); + + foreach my $type (@types) { + my $type_obj = RT::Group->new($self->CurrentUser); + my ($id, $msg) = $type_obj->CreateRoleGroup(Domain => 'RT::Ticket-Role', + Instance => $self->Id, + Type => $type); + unless ($id) { + $RT::Logger->error("Couldn't create a ticket group of type '$type' for ticket ". + $self->Id.": ".$msg); + return(undef); + } + } + return(1); + +} + +# }}} + +# {{{ sub OwnerGroup + +=head2 OwnerGroup + +A constructor which returns an RT::Group object containing the owner of this ticket. + +=cut + +sub OwnerGroup { + my $self = shift; + my $owner_obj = RT::Group->new($self->CurrentUser); + $owner_obj->LoadTicketRoleGroup( Ticket => $self->Id, Type => 'Owner'); + return ($owner_obj); +} + +# }}} + + +# {{{ sub AddWatcher + +=head2 AddWatcher + +AddWatcher takes a parameter hash. The keys are as follows: + +Type One of Requestor, Cc, AdminCc + +PrinicpalId The RT::Principal id of the user or group that's being added as a watcher + +Email The email address of the new watcher. If a user with this + email address can't be found, a new nonprivileged user will be created. + +If the watcher you\'re trying to set has an RT account, set the Owner paremeter to their User Id. Otherwise, set the Email parameter to their Email address. + +=cut + +sub AddWatcher { + my $self = shift; + my %args = ( + Type => undef, + PrincipalId => undef, + Email => undef, + @_ + ); + + # {{{ Check ACLS + #If the watcher we're trying to add is for the current user + if ( $self->CurrentUser->PrincipalId eq $args{'PrincipalId'}) { + # If it's an AdminCc and they don't have + # 'WatchAsAdminCc' or 'ModifyTicket', bail + if ( $args{'Type'} eq 'AdminCc' ) { + unless ( $self->CurrentUserHasRight('ModifyTicket') + or $self->CurrentUserHasRight('WatchAsAdminCc') ) { + return ( 0, $self->loc('Permission Denied')) + } + } + + # If it's a Requestor or Cc and they don't have + # 'Watch' or 'ModifyTicket', bail + elsif ( ( $args{'Type'} eq 'Cc' ) or ( $args{'Type'} eq 'Requestor' ) ) { + + unless ( $self->CurrentUserHasRight('ModifyTicket') + or $self->CurrentUserHasRight('Watch') ) { + return ( 0, $self->loc('Permission Denied')) + } + } + else { + $RT::Logger->warn( "$self -> AddWatcher got passed a bogus type"); + return ( 0, $self->loc('Error in parameters to Ticket->AddWatcher') ); + } + } + + # If the watcher isn't the current user + # and the current user doesn't have 'ModifyTicket' + # bail + else { + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + } + + # }}} + + return ( $self->_AddWatcher(%args) ); +} + +#This contains the meat of AddWatcher. but can be called from a routine like +# Create, which doesn't need the additional acl check +sub _AddWatcher { + my $self = shift; + my %args = ( + Type => undef, + Silent => undef, + PrincipalId => undef, + Email => undef, + @_ + ); + + + my $principal = RT::Principal->new($self->CurrentUser); + if ($args{'Email'}) { + my $user = RT::User->new($RT::SystemUser); + my ($pid, $msg) = $user->LoadOrCreateByEmail($args{'Email'}); + if ($pid) { + $args{'PrincipalId'} = $pid; + } + } + if ($args{'PrincipalId'}) { + $principal->Load($args{'PrincipalId'}); + } + + + # If we can't find this watcher, we need to bail. + unless ($principal->Id) { + $RT::Logger->error("Could not load create a user with the email address '".$args{'Email'}. "' to add as a watcher for ticket ".$self->Id); + return(0, $self->loc("Could not find or create that user")); + } + + + my $group = RT::Group->new($self->CurrentUser); + $group->LoadTicketRoleGroup(Type => $args{'Type'}, Ticket => $self->Id); + unless ($group->id) { + return(0,$self->loc("Group not found")); + } + + if ( $group->HasMember( $principal)) { + + return ( 0, $self->loc('That principal is already a [_1] for this ticket', $self->loc($args{'Type'})) ); + } + + + my ( $m_id, $m_msg ) = $group->_AddMember( PrincipalId => $principal->Id, + InsideTransaction => 1 ); + unless ($m_id) { + $RT::Logger->error("Failed to add ".$principal->Id." as a member of group ".$group->Id."\n".$m_msg); + + return ( 0, $self->loc('Could not make that principal a [_1] for this ticket', $self->loc($args{'Type'})) ); + } + + unless ( $args{'Silent'} ) { + $self->_NewTransaction( + Type => 'AddWatcher', + NewValue => $principal->Id, + Field => $args{'Type'} + ); + } + + return ( 1, $self->loc('Added principal as a [_1] for this ticket', $self->loc($args{'Type'})) ); +} + +# }}} + + +# {{{ sub DeleteWatcher + +=head2 DeleteWatcher { Type => TYPE, PrincipalId => PRINCIPAL_ID, Email => EMAIL_ADDRESS } + + +Deletes a Ticket watcher. Takes two arguments: + +Type (one of Requestor,Cc,AdminCc) + +and one of + +PrincipalId (an RT::Principal Id of the watcher you want to remove) + OR +Email (the email address of an existing wathcer) + + +=cut + + +sub DeleteWatcher { + my $self = shift; + + my %args = ( Type => undef, + PrincipalId => undef, + Email => undef, + @_ ); + + unless ($args{'PrincipalId'} || $args{'Email'} ) { + return(0, $self->loc("No principal specified")); + } + my $principal = RT::Principal->new($self->CurrentUser); + if ($args{'PrincipalId'} ) { + + $principal->Load($args{'PrincipalId'}); + } else { + my $user = RT::User->new($self->CurrentUser); + $user->LoadByEmail($args{'Email'}); + $principal->Load($user->Id); + } + # If we can't find this watcher, we need to bail. + unless ($principal->Id) { + return(0, $self->loc("Could not find that principal")); + } + + my $group = RT::Group->new($self->CurrentUser); + $group->LoadTicketRoleGroup(Type => $args{'Type'}, Ticket => $self->Id); + unless ($group->id) { + return(0,$self->loc("Group not found")); + } + + # {{{ Check ACLS + #If the watcher we're trying to add is for the current user + if ( $self->CurrentUser->PrincipalId eq $args{'PrincipalId'}) { + # If it's an AdminCc and they don't have + # 'WatchAsAdminCc' or 'ModifyTicket', bail + if ( $args{'Type'} eq 'AdminCc' ) { + unless ( $self->CurrentUserHasRight('ModifyTicket') + or $self->CurrentUserHasRight('WatchAsAdminCc') ) { + return ( 0, $self->loc('Permission Denied')) + } + } + + # If it's a Requestor or Cc and they don't have + # 'Watch' or 'ModifyTicket', bail + elsif ( ( $args{'Type'} eq 'Cc' ) or ( $args{'Type'} eq 'Requestor' ) ) { + unless ( $self->CurrentUserHasRight('ModifyTicket') + or $self->CurrentUserHasRight('Watch') ) { + return ( 0, $self->loc('Permission Denied')) + } + } + else { + $RT::Logger->warn( "$self -> DeleteWatcher got passed a bogus type"); + return ( 0, $self->loc('Error in parameters to Ticket->DelWatcher') ); + } + } + + # If the watcher isn't the current user + # and the current user doesn't have 'ModifyTicket' bail + else { + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + } + + # }}} + + + # see if this user is already a watcher. + + unless ( $group->HasMember($principal)) { + return ( 0, + $self->loc('That principal is not a [_1] for this ticket', $args{'Type'}) ); + } + + my ($m_id, $m_msg) = $group->_DeleteMember($principal->Id); + unless ($m_id) { + $RT::Logger->error("Failed to delete ".$principal->Id. + " as a member of group ".$group->Id."\n".$m_msg); + + return ( 0, $self->loc('Could not remove that principal as a [_1] for this ticket', $args{'Type'}) ); + } + + unless ( $args{'Silent'} ) { + $self->_NewTransaction( + Type => 'DelWatcher', + OldValue => $principal->Id, + Field => $args{'Type'} + ); + } + + return ( 1, $self->loc("[_1] is no longer a [_2] for this ticket.", $principal->Object->Name, $args{'Type'} )); +} + + + + +# }}} + + +# {{{ a set of [foo]AsString subs that will return the various sorts of watchers for a ticket/queue as a comma delineated string + +=head2 RequestorAddresses + + B<Returns> String: All Ticket Requestor email addresses as a string. + +=cut + +sub RequestorAddresses { + my $self = shift; + + unless ( $self->CurrentUserHasRight('ShowTicket') ) { + return undef; + } + + return ( $self->Requestors->MemberEmailAddressesAsString ); +} + + +=head2 AdminCcAddresses + +returns String: All Ticket AdminCc email addresses as a string + +=cut + +sub AdminCcAddresses { + my $self = shift; + + unless ( $self->CurrentUserHasRight('ShowTicket') ) { + return undef; + } + + return ( $self->AdminCc->MemberEmailAddressesAsString ) + +} + +=head2 CcAddresses + +returns String: All Ticket Ccs as a string of email addresses + +=cut + +sub CcAddresses { + my $self = shift; + + unless ( $self->CurrentUserHasRight('ShowTicket') ) { + return undef; + } + + return ( $self->Cc->MemberEmailAddressesAsString); + +} + +# }}} + +# {{{ Routines that return RT::Watchers objects of Requestors, Ccs and AdminCcs + +# {{{ sub Requestors + +=head2 Requestors + +Takes nothing. +Returns this ticket's Requestors as an RT::Group object + +=cut + +sub Requestors { + my $self = shift; + + my $group = RT::Group->new($self->CurrentUser); + if ( $self->CurrentUserHasRight('ShowTicket') ) { + $group->LoadTicketRoleGroup(Type => 'Requestor', Ticket => $self->Id); + } + return ($group); + +} + +# }}} + +# {{{ sub Cc + +=head2 Cc + +Takes nothing. +Returns an RT::Group object which contains this ticket's Ccs. +If the user doesn't have "ShowTicket" permission, returns an empty group + +=cut + +sub Cc { + my $self = shift; + + my $group = RT::Group->new($self->CurrentUser); + if ( $self->CurrentUserHasRight('ShowTicket') ) { + $group->LoadTicketRoleGroup(Type => 'Cc', Ticket => $self->Id); + } + return ($group); + +} + +# }}} + +# {{{ sub AdminCc + +=head2 AdminCc + +Takes nothing. +Returns an RT::Group object which contains this ticket's AdminCcs. +If the user doesn't have "ShowTicket" permission, returns an empty group + +=cut + +sub AdminCc { + my $self = shift; + + my $group = RT::Group->new($self->CurrentUser); + if ( $self->CurrentUserHasRight('ShowTicket') ) { + $group->LoadTicketRoleGroup(Type => 'AdminCc', Ticket => $self->Id); + } + return ($group); + +} + +# }}} + +# }}} + +# {{{ IsWatcher,IsRequestor,IsCc, IsAdminCc + +# {{{ sub IsWatcher +# a generic routine to be called by IsRequestor, IsCc and IsAdminCc + +=head2 IsWatcher { Type => TYPE, PrincipalId => PRINCIPAL_ID, Email => EMAIL } + +Takes a param hash with the attributes Type and either PrincipalId or Email + +Type is one of Requestor, Cc, AdminCc and Owner + +PrincipalId is an RT::Principal id, and Email is an email address. + +Returns true if the specified principal (or the one corresponding to the +specified address) is a member of the group Type for this ticket. + +=cut + +sub IsWatcher { + my $self = shift; + + my %args = ( Type => 'Requestor', + PrincipalId => undef, + Email => undef, + @_ + ); + + # Load the relevant group. + my $group = RT::Group->new($self->CurrentUser); + $group->LoadTicketRoleGroup(Type => $args{'Type'}, Ticket => $self->id); + + # Find the relevant principal. + my $principal = RT::Principal->new($self->CurrentUser); + if (!$args{PrincipalId} && $args{Email}) { + # Look up the specified user. + my $user = RT::User->new($self->CurrentUser); + $user->LoadByEmail($args{Email}); + if ($user->Id) { + $args{PrincipalId} = $user->PrincipalId; + } + else { + # A non-existent user can't be a group member. + return 0; + } + } + $principal->Load($args{'PrincipalId'}); + + # Ask if it has the member in question + return ($group->HasMember($principal)); +} + +# }}} + +# {{{ sub IsRequestor + +=head2 IsRequestor PRINCIPAL_ID + + Takes an RT::Principal id + Returns true if the principal is a requestor of the current ticket. + + +=cut + +sub IsRequestor { + my $self = shift; + my $person = shift; + + return ( $self->IsWatcher( Type => 'Requestor', PrincipalId => $person ) ); + +}; + +# }}} + +# {{{ sub IsCc + +=head2 IsCc PRINCIPAL_ID + + Takes an RT::Principal id. + Returns true if the principal is a requestor of the current ticket. + + +=cut + +sub IsCc { + my $self = shift; + my $cc = shift; + + return ( $self->IsWatcher( Type => 'Cc', PrincipalId => $cc ) ); + +} + +# }}} + +# {{{ sub IsAdminCc + +=head2 IsAdminCc PRINCIPAL_ID + + Takes an RT::Principal id. + Returns true if the principal is a requestor of the current ticket. + +=cut + +sub IsAdminCc { + my $self = shift; + my $person = shift; + + return ( $self->IsWatcher( Type => 'AdminCc', PrincipalId => $person ) ); + +} + +# }}} + +# {{{ sub IsOwner + +=head2 IsOwner + + Takes an RT::User object. Returns true if that user is this ticket's owner. +returns undef otherwise + +=cut + +sub IsOwner { + my $self = shift; + my $person = shift; + + # no ACL check since this is used in acl decisions + # unless ($self->CurrentUserHasRight('ShowTicket')) { + # return(undef); + # } + + #Tickets won't yet have owners when they're being created. + unless ( $self->OwnerObj->id ) { + return (undef); + } + + if ( $person->id == $self->OwnerObj->id ) { + return (1); + } + else { + return (undef); + } +} + +# }}} + +# }}} + +# }}} + +# {{{ Routines dealing with queues + +# {{{ sub ValidateQueue + +sub ValidateQueue { + my $self = shift; + my $Value = shift; + + if ( !$Value ) { + $RT::Logger->warning( " RT:::Queue::ValidateQueue called with a null value. this isn't ok."); + return (1); + } + + my $QueueObj = RT::Queue->new( $self->CurrentUser ); + my $id = $QueueObj->Load($Value); + + if ($id) { + return (1); + } + else { + return (undef); + } +} + +# }}} + +# {{{ sub SetQueue + +sub SetQueue { + my $self = shift; + my $NewQueue = shift; + + #Redundant. ACL gets checked in _Set; + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + + my $NewQueueObj = RT::Queue->new( $self->CurrentUser ); + $NewQueueObj->Load($NewQueue); + + unless ( $NewQueueObj->Id() ) { + return ( 0, $self->loc("That queue does not exist") ); + } + + if ( $NewQueueObj->Id == $self->QueueObj->Id ) { + return ( 0, $self->loc('That is the same value') ); + } + unless ( + $self->CurrentUser->HasRight( + Right => 'CreateTicket', + Object => $NewQueueObj + ) + ) + { + return ( 0, $self->loc("You may not create requests in that queue.") ); + } + + unless ( + $self->OwnerObj->HasRight( + Right => 'OwnTicket', + Object => $NewQueueObj + ) + ) + { + $self->Untake(); + } + + return ( $self->_Set( Field => 'Queue', Value => $NewQueueObj->Id() ) ); + +} + +# }}} + +# {{{ sub QueueObj + +=head2 QueueObj + +Takes nothing. returns this ticket's queue object + +=cut + +sub QueueObj { + my $self = shift; + + my $queue_obj = RT::Queue->new( $self->CurrentUser ); + + #We call __Value so that we can avoid the ACL decision and some deep recursion + my ($result) = $queue_obj->Load( $self->__Value('Queue') ); + return ($queue_obj); +} + +# }}} + +# }}} + +# {{{ Date printing routines + +# {{{ sub DueObj + +=head2 DueObj + + Returns an RT::Date object containing this ticket's due date + +=cut + +sub DueObj { + my $self = shift; + + my $time = new RT::Date( $self->CurrentUser ); + + # -1 is RT::Date slang for never + if ( $self->Due ) { + $time->Set( Format => 'sql', Value => $self->Due ); + } + else { + $time->Set( Format => 'unix', Value => -1 ); + } + + return $time; +} + +# }}} + +# {{{ sub DueAsString + +=head2 DueAsString + +Returns this ticket's due date as a human readable string + +=cut + +sub DueAsString { + my $self = shift; + return $self->DueObj->AsString(); +} + +# }}} + +# {{{ sub ResolvedObj + +=head2 ResolvedObj + + Returns an RT::Date object of this ticket's 'resolved' time. + +=cut + +sub ResolvedObj { + my $self = shift; + + my $time = new RT::Date( $self->CurrentUser ); + $time->Set( Format => 'sql', Value => $self->Resolved ); + return $time; +} + +# }}} + +# {{{ sub SetStarted + +=head2 SetStarted + +Takes a date in ISO format or undef +Returns a transaction id and a message +The client calls "Start" to note that the project was started on the date in $date. +A null date means "now" + +=cut + +sub SetStarted { + my $self = shift; + my $time = shift || 0; + + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, self->loc("Permission Denied") ); + } + + #We create a date object to catch date weirdness + my $time_obj = new RT::Date( $self->CurrentUser() ); + if ( $time != 0 ) { + $time_obj->Set( Format => 'ISO', Value => $time ); + } + else { + $time_obj->SetToNow(); + } + + #Now that we're starting, open this ticket + #TODO do we really want to force this as policy? it should be a scrip + + #We need $TicketAsSystem, in case the current user doesn't have + #ShowTicket + # + my $TicketAsSystem = new RT::Ticket($RT::SystemUser); + $TicketAsSystem->Load( $self->Id ); + if ( $TicketAsSystem->Status eq 'new' ) { + $TicketAsSystem->Open(); + } + + return ( $self->_Set( Field => 'Started', Value => $time_obj->ISO ) ); + +} + +# }}} + +# {{{ sub StartedObj + +=head2 StartedObj + + Returns an RT::Date object which contains this ticket's +'Started' time. + +=cut + +sub StartedObj { + my $self = shift; + + my $time = new RT::Date( $self->CurrentUser ); + $time->Set( Format => 'sql', Value => $self->Started ); + return $time; +} + +# }}} + +# {{{ sub StartsObj + +=head2 StartsObj + + Returns an RT::Date object which contains this ticket's +'Starts' time. + +=cut + +sub StartsObj { + my $self = shift; + + my $time = new RT::Date( $self->CurrentUser ); + $time->Set( Format => 'sql', Value => $self->Starts ); + return $time; +} + +# }}} + +# {{{ sub ToldObj + +=head2 ToldObj + + Returns an RT::Date object which contains this ticket's +'Told' time. + +=cut + +sub ToldObj { + my $self = shift; + + my $time = new RT::Date( $self->CurrentUser ); + $time->Set( Format => 'sql', Value => $self->Told ); + return $time; +} + +# }}} + +# {{{ sub ToldAsString + +=head2 ToldAsString + +A convenience method that returns ToldObj->AsString + +TODO: This should be deprecated + +=cut + +sub ToldAsString { + my $self = shift; + if ( $self->Told ) { + return $self->ToldObj->AsString(); + } + else { + return ("Never"); + } +} + +# }}} + +# {{{ sub TimeWorkedAsString + +=head2 TimeWorkedAsString + +Returns the amount of time worked on this ticket as a Text String + +=cut + +sub TimeWorkedAsString { + my $self = shift; + return "0" unless $self->TimeWorked; + + #This is not really a date object, but if we diff a number of seconds + #vs the epoch, we'll get a nice description of time worked. + + my $worked = new RT::Date( $self->CurrentUser ); + + #return the #of minutes worked turned into seconds and written as + # a simple text string + + return ( $worked->DurationAsString( $self->TimeWorked * 60 ) ); +} + +# }}} + +# }}} + +# {{{ Routines dealing with correspondence/comments + +# {{{ sub Comment + +=head2 Comment + +Comment on this ticket. +Takes a hashref with the following attributes: +If MIMEObj is undefined, Content will be used to build a MIME::Entity for this +commentl + +MIMEObj, TimeTaken, CcMessageTo, BccMessageTo, Content. + +=cut + +## Please see file perltidy.ERR +sub Comment { + my $self = shift; + + my %args = ( CcMessageTo => undef, + BccMessageTo => undef, + MIMEObj => undef, + Content => undef, + TimeTaken => 0, + @_ ); + + unless ( ( $self->CurrentUserHasRight('CommentOnTicket') ) + or ( $self->CurrentUserHasRight('ModifyTicket') ) ) { + return ( 0, $self->loc("Permission Denied") ); + } + + unless ( $args{'MIMEObj'} ) { + if ( $args{'Content'} ) { + use MIME::Entity; + $args{'MIMEObj'} = MIME::Entity->build( + Data => ( ref $args{'Content'} ? $args{'Content'} : [ $args{'Content'} ] ) + ); + } + else { + + return ( 0, $self->loc("No correspondence attached") ); + } + } + + RT::I18N::SetMIMEEntityToUTF8($args{'MIMEObj'}); # convert text parts into utf-8 + + # If we've been passed in CcMessageTo and BccMessageTo fields, + # add them to the mime object for passing on to the transaction handler + # The "NotifyOtherRecipients" scripAction will look for RT--Send-Cc: and + # RT-Send-Bcc: headers + + $args{'MIMEObj'}->head->add( 'RT-Send-Cc', $args{'CcMessageTo'} ) + if defined $args{'CcMessageTo'}; + $args{'MIMEObj'}->head->add( 'RT-Send-Bcc', $args{'BccMessageTo'} ) + if defined $args{'BccMessageTo'}; + + #Record the correspondence (write the transaction) + my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( + Type => 'Comment', + Data => ( $args{'MIMEObj'}->head->get('subject') || 'No Subject' ), + TimeTaken => $args{'TimeTaken'}, + MIMEObj => $args{'MIMEObj'} + ); + + return ( $Trans, $self->loc("The comment has been recorded") ); +} + +# }}} + +# {{{ sub Correspond + +=head2 Correspond + +Correspond on this ticket. +Takes a hashref with the following attributes: + + +MIMEObj, TimeTaken, CcMessageTo, BccMessageTo, Content + +if there's no MIMEObj, Content is used to build a MIME::Entity object + + +=cut + +sub Correspond { + my $self = shift; + my %args = ( CcMessageTo => undef, + BccMessageTo => undef, + MIMEObj => undef, + Content => undef, + TimeTaken => 0, + @_ ); + + unless ( ( $self->CurrentUserHasRight('ReplyToTicket') ) + or ( $self->CurrentUserHasRight('ModifyTicket') ) ) { + return ( 0, $self->loc("Permission Denied") ); + } + + unless ( $args{'MIMEObj'} ) { + if ( $args{'Content'} ) { + use MIME::Entity; + $args{'MIMEObj'} = MIME::Entity->build( + Data => ( ref $args{'Content'} ? $args{'Content'} : [ $args{'Content'} ] ) + ); + + } + else { + + return ( 0, $self->loc("No correspondence attached") ); + } + } + + RT::I18N::SetMIMEEntityToUTF8($args{'MIMEObj'}); # convert text parts into utf-8 + + # If we've been passed in CcMessageTo and BccMessageTo fields, + # add them to the mime object for passing on to the transaction handler + # The "NotifyOtherRecipients" scripAction will look for RT-Send-Cc: and RT-Send-Bcc: + # headers + + $args{'MIMEObj'}->head->add( 'RT-Send-Cc', $args{'CcMessageTo'} ) + if defined $args{'CcMessageTo'}; + $args{'MIMEObj'}->head->add( 'RT-Send-Bcc', $args{'BccMessageTo'} ) + if defined $args{'BccMessageTo'}; + + #Record the correspondence (write the transaction) + my ( $Trans, $msg, $TransObj ) = $self->_NewTransaction( + Type => 'Correspond', + Data => ( $args{'MIMEObj'}->head->get('subject') || 'No Subject' ), + TimeTaken => $args{'TimeTaken'}, + MIMEObj => $args{'MIMEObj'} ); + + unless ($Trans) { + $RT::Logger->err( "$self couldn't init a transaction $msg"); + return ( $Trans, $self->loc("correspondence (probably) not sent"), $args{'MIMEObj'} ); + } + + #Set the last told date to now if this isn't mail from the requestor. + #TODO: Note that this will wrongly ack mail from any non-requestor as a "told" + + unless ( $TransObj->IsInbound ) { + $self->_SetTold; + } + + return ( $Trans, $self->loc("correspondence sent") ); +} + +# }}} + +# }}} + +# {{{ Routines dealing with Links and Relations between tickets + +# {{{ Link Collections + +# {{{ sub Members + +=head2 Members + + This returns an RT::Links object which references all the tickets +which are 'MembersOf' this ticket + +=cut + +sub Members { + my $self = shift; + return ( $self->_Links( 'Target', 'MemberOf' ) ); +} + +# }}} + +# {{{ sub MemberOf + +=head2 MemberOf + + This returns an RT::Links object which references all the tickets that this +ticket is a 'MemberOf' + +=cut + +sub MemberOf { + my $self = shift; + return ( $self->_Links( 'Base', 'MemberOf' ) ); +} + +# }}} + +# {{{ RefersTo + +=head2 RefersTo + + This returns an RT::Links object which shows all references for which this ticket is a base + +=cut + +sub RefersTo { + my $self = shift; + return ( $self->_Links( 'Base', 'RefersTo' ) ); +} + +# }}} + +# {{{ ReferredToBy + +=head2 ReferredToBy + + This returns an RT::Links object which shows all references for which this ticket is a target + +=cut + +sub ReferredToBy { + my $self = shift; + return ( $self->_Links( 'Target', 'RefersTo' ) ); +} + +# }}} + +# {{{ DependedOnBy + +=head2 DependedOnBy + + This returns an RT::Links object which references all the tickets that depend on this one + +=cut + +sub DependedOnBy { + my $self = shift; + return ( $self->_Links( 'Target', 'DependsOn' ) ); +} + +# }}} + + + +=head2 HasUnresolvedDependencies + + Takes a paramhash of Type (default to '__any'). Returns true if +$self->UnresolvedDependencies returns an object with one or more members +of that type. Returns false otherwise + + +=begin testing + +my $t1 = RT::Ticket->new($RT::SystemUser); +my ($id, $trans, $msg) = $t1->Create(Subject => 'DepTest1', Queue => 'general'); +ok($id, "Created dep test 1 - $msg"); + +my $t2 = RT::Ticket->new($RT::SystemUser); +my ($id2, $trans, $msg2) = $t2->Create(Subject => 'DepTest2', Queue => 'general'); +ok($id2, "Created dep test 2 - $msg2"); +my $t3 = RT::Ticket->new($RT::SystemUser); +my ($id3, $trans, $msg3) = $t3->Create(Subject => 'DepTest3', Queue => 'general', Type => 'approval'); +ok($id3, "Created dep test 3 - $msg3"); + +ok ($t1->AddLink( Type => 'DependsOn', Target => $t2->id)); +ok ($t1->AddLink( Type => 'DependsOn', Target => $t3->id)); + +ok ($t1->HasUnresolvedDependencies, "Ticket ".$t1->Id." has unresolved deps"); +ok (!$t1->HasUnresolvedDependencies( Type => 'blah' ), "Ticket ".$t1->Id." has no unresolved blahs"); +ok ($t1->HasUnresolvedDependencies( Type => 'approval' ), "Ticket ".$t1->Id." has unresolved approvals"); +ok (!$t2->HasUnresolvedDependencies, "Ticket ".$t2->Id." has no unresolved deps"); +my ($rid, $rmsg)= $t1->Resolve(); +ok(!$rid, $rmsg); +ok($t2->Resolve); +($rid, $rmsg)= $t1->Resolve(); +ok(!$rid, $rmsg); +ok($t3->Resolve); +($rid, $rmsg)= $t1->Resolve(); +ok($rid, $rmsg); + + +=end testing + +=cut + +sub HasUnresolvedDependencies { + my $self = shift; + my %args = ( + Type => undef, + @_ + ); + + my $deps = $self->UnresolvedDependencies; + + if ($args{Type}) { + $deps->Limit( FIELD => 'Type', + OPERATOR => '=', + VALUE => $args{Type}); + } + else { + $deps->IgnoreType; + } + + if ($deps->Count > 0) { + return 1; + } + else { + return (undef); + } +} + + +# {{{ UnresolvedDependencies + +=head2 UnresolvedDependencies + +Returns an RT::Tickets object of tickets which this ticket depends on +and which have a status of new, open or stalled. (That list comes from +RT::Queue->ActiveStatusArray + +=cut + + +sub UnresolvedDependencies { + my $self = shift; + my $deps = RT::Tickets->new($self->CurrentUser); + + my @live_statuses = RT::Queue->ActiveStatusArray(); + foreach my $status (@live_statuses) { + $deps->LimitStatus(VALUE => $status); + } + $deps->LimitDependedOnBy($self->Id); + + return($deps); + +} + +# }}} + +# {{{ AllDependedOnBy + +=head2 AllDependedOnBy + +Returns an array of RT::Ticket objects which (directly or indirectly) +depends on this ticket; takes an optional 'Type' argument in the param +hash, which will limit returned tickets to that type, as well as cause +tickets with that type to serve as 'leaf' nodes that stops the recursive +dependency search. + +=cut + +sub AllDependedOnBy { + my $self = shift; + my $dep = $self->DependedOnBy; + my %args = ( + Type => undef, + _found => {}, + _top => 1, + @_ + ); + + while (my $link = $dep->Next()) { + next unless ($link->BaseURI->IsLocal()); + next if $args{_found}{$link->BaseObj->Id}; + + if (!$args{Type}) { + $args{_found}{$link->BaseObj->Id} = $link->BaseObj; + $link->BaseObj->AllDependedOnBy( %args, _top => 0 ); + } + elsif ($link->BaseObj->Type eq $args{Type}) { + $args{_found}{$link->BaseObj->Id} = $link->BaseObj; + } + else { + $link->BaseObj->AllDependedOnBy( %args, _top => 0 ); + } + } + + if ($args{_top}) { + return map { $args{_found}{$_} } sort keys %{$args{_found}}; + } + else { + return 1; + } +} + +# }}} + +# {{{ DependsOn + +=head2 DependsOn + + This returns an RT::Links object which references all the tickets that this ticket depends on + +=cut + +sub DependsOn { + my $self = shift; + return ( $self->_Links( 'Base', 'DependsOn' ) ); +} + +# }}} + + + + +# {{{ sub _Links + +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"} ); +} + +# }}} + +# }}} + +# {{{ sub DeleteLink + +=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, + @_ + ); + + #check acls + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + $RT::Logger->debug("No permission to delete links\n"); + return ( 0, $self->loc('Permission Denied')) + + } + + #we want one of base and target. we don't care which + #but we only want _one_ + + my $direction; + my $remote_link; + + if ( $args{'Base'} and $args{'Target'} ) { + $RT::Logger->debug("$self ->_DeleteLink. got both Base and Target\n"); + return ( 0, $self->loc("Can't specifiy both base and target") ); + } + elsif ( $args{'Base'} ) { + $args{'Target'} = $self->URI(); + $remote_link = $args{'Base'}; + $direction = 'Target'; + } + elsif ( $args{'Target'} ) { + $args{'Base'} = $self->URI(); + $remote_link = $args{'Target'}; + $direction='Base'; + } + else { + $RT::Logger->debug("$self: Base or Target must be specified\n"); + return ( 0, $self->loc('Either base or target must be specified') ); + } + + my $link = new RT::Link( $self->CurrentUser ); + $RT::Logger->debug( "Trying to load link: " . $args{'Base'} . " " . $args{'Type'} . " " . $args{'Target'} . "\n" ); + + + $link->LoadByParams( Base=> $args{'Base'}, Type=> $args{'Type'}, Target=> $args{'Target'} ); + #it's a real link. + if ( $link->id ) { + + my $linkid = $link->id; + $link->Delete(); + + my $TransString = "Ticket $args{'Base'} no longer $args{Type} ticket $args{'Target'}."; + my $remote_uri = RT::URI->new( $RT::SystemUser ); + $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 + ); + + return ( $Trans, $self->loc("Link deleted ([_1])", $TransString)); + } + + #if it's not a link we can find + else { + $RT::Logger->debug("Couldn't find that link\n"); + return ( 0, $self->loc("Link not found") ); + } +} + +# }}} + +# {{{ sub AddLink + +=head2 AddLink + +Takes a paramhash of Type and one of Base or Target. Adds that link to this ticket. + + +=cut + +sub AddLink { + my $self = shift; + my %args = ( Target => '', + Base => '', + Type => '', + Silent => undef, + @_ ); + + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + + # Remote_link is the URI of the object that is not this ticket + my $remote_link; + my $direction; + + if ( $args{'Base'} and $args{'Target'} ) { + $RT::Logger->debug( +"$self tried to delete a link. both base and target were specified\n" ); + return ( 0, $self->loc("Can't specifiy both base and target") ); + } + elsif ( $args{'Base'} ) { + $args{'Target'} = $self->URI(); + $remote_link = $args{'Base'}; + $direction = 'Target'; + } + elsif ( $args{'Target'} ) { + $args{'Base'} = $self->URI(); + $remote_link = $args{'Target'}; + $direction='Base'; + } + else { + return ( 0, $self->loc('Either base or target must be specified') ); + } + + # If the base isn't a URI, make it a URI. + # If the target isn't a URI, make it a URI. + + # {{{ Check if the link already exists - we don't want duplicates + use RT::Link; + my $old_link = RT::Link->new( $self->CurrentUser ); + $old_link->LoadByParams( Base => $args{'Base'}, + Type => $args{'Type'}, + Target => $args{'Target'} ); + if ( $old_link->Id ) { + $RT::Logger->debug("$self Somebody tried to duplicate a link"); + return ( $old_link->id, $self->loc("Link already exists"), 0 ); + } + + # }}} + + # Storing the link in the DB. + my $link = RT::Link->new( $self->CurrentUser ); + my ($linkid) = $link->Create( Target => $args{Target}, + Base => $args{Base}, + Type => $args{Type} ); + + unless ($linkid) { + return ( 0, $self->loc("Link could not be created") ); + } + + my $TransString = + "Ticket $args{'Base'} $args{Type} ticket $args{'Target'}."; + + # Don't write the transaction if we're doing this on create + if ( $args{'Silent'} ) { + return ( 1, $self->loc( "Link created ([_1])", $TransString ) ); + } + else { + my $remote_uri = RT::URI->new( $RT::SystemUser ); + $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 ); + return ( $Trans, $self->loc( "Link created ([_1])", $TransString ) ); + } + +} + +# }}} + +# {{{ sub URI + +=head2 URI + +Returns this ticket's URI + +=cut + +sub URI { + my $self = shift; + my $uri = RT::URI::fsck_com_rt->new($self->CurrentUser); + return($uri->URIForObject($self)); +} + +# }}} + +# {{{ sub MergeInto + +=head2 MergeInto +MergeInto take the id of the ticket to merge this ticket into. + +=cut + +sub MergeInto { + my $self = shift; + my $MergeInto = shift; + + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + + # Load up the new ticket. + my $NewTicket = RT::Ticket->new($RT::SystemUser); + $NewTicket->Load($MergeInto); + + # make sure it exists. + unless ( defined $NewTicket->Id ) { + return ( 0, $self->loc("New ticket doesn't exist") ); + } + + # Make sure the current user can modify the new ticket. + unless ( $NewTicket->CurrentUserHasRight('ModifyTicket') ) { + $RT::Logger->debug("failed..."); + return ( 0, $self->loc("Permission Denied") ); + } + + $RT::Logger->debug( + "checking if the new ticket has the same id and effective id..."); + unless ( $NewTicket->id == $NewTicket->EffectiveId ) { + $RT::Logger->err( "$self trying to merge into " + . $NewTicket->Id + . " which is itself merged.\n" ); + return ( 0, + $self->loc("Can't merge into a merged ticket. You should never get this error") ); + } + + # We use EffectiveId here even though it duplicates information from + # the links table becasue of the massive performance hit we'd take + # by trying to do a seperate database query for merge info everytime + # loaded a ticket. + + #update this ticket's effective id to the new ticket's id. + my ( $id_val, $id_msg ) = $self->__Set( + Field => 'EffectiveId', + Value => $NewTicket->Id() + ); + + unless ($id_val) { + $RT::Logger->error( + "Couldn't set effective ID for " . $self->Id . ": $id_msg" ); + return ( 0, $self->loc("Merge failed. Couldn't set EffectiveId") ); + } + + my ( $status_val, $status_msg ) = $self->__Set( Field => 'Status', Value => 'resolved'); + + unless ($status_val) { + $RT::Logger->error( $self->loc("[_1] couldn't set status to resolved. RT's Database may be inconsistent.", $self) ); + } + + + # update all the links that point to that old ticket + my $old_links_to = RT::Links->new($self->CurrentUser); + $old_links_to->Limit(FIELD => 'Target', VALUE => $self->URI); + + while (my $link = $old_links_to->Next) { + if ($link->Base eq $NewTicket->URI) { + $link->Delete; + } else { + $link->SetTarget($NewTicket->URI); + } + + } + + my $old_links_from = RT::Links->new($self->CurrentUser); + $old_links_from->Limit(FIELD => 'Base', VALUE => $self->URI); + + while (my $link = $old_links_from->Next) { + if ($link->Target eq $NewTicket->URI) { + $link->Delete; + } else { + $link->SetBase($NewTicket->URI); + } + + } + + + #make a new link: this ticket is merged into that other ticket. + $self->AddLink( Type => 'MergedInto', Target => $NewTicket->Id()); + + #add all of this ticket's watchers to that ticket. + my $requestors = $self->Requestors->MembersObj; + while (my $watcher = $requestors->Next) { + $NewTicket->_AddWatcher( Type => 'Requestor', + Silent => 1, + PrincipalId => $watcher->MemberId); + } + + my $Ccs = $self->Cc->MembersObj; + while (my $watcher = $Ccs->Next) { + $NewTicket->_AddWatcher( Type => 'Cc', + Silent => 1, + PrincipalId => $watcher->MemberId); + } + + my $AdminCcs = $self->AdminCc->MembersObj; + while (my $watcher = $AdminCcs->Next) { + $NewTicket->_AddWatcher( Type => 'AdminCc', + Silent => 1, + PrincipalId => $watcher->MemberId); + } + + + #find all of the tickets that were merged into this ticket. + my $old_mergees = new RT::Tickets( $self->CurrentUser ); + $old_mergees->Limit( + FIELD => 'EffectiveId', + OPERATOR => '=', + VALUE => $self->Id + ); + + # update their EffectiveId fields to the new ticket's id + while ( my $ticket = $old_mergees->Next() ) { + my ( $val, $msg ) = $ticket->__Set( + Field => 'EffectiveId', + Value => $NewTicket->Id() + ); + } + + $NewTicket->_SetLastUpdated; + + return ( 1, $self->loc("Merge Successful") ); +} + +# }}} + +# }}} + +# {{{ Routines dealing with ownership + +# {{{ sub OwnerObj + +=head2 OwnerObj + +Takes nothing and returns an RT::User object of +this ticket's owner + +=cut + +sub OwnerObj { + my $self = shift; + + #If this gets ACLed, we lose on a rights check in User.pm and + #get deep recursion. if we need ACLs here, we need + #an equiv without ACLs + + my $owner = new RT::User( $self->CurrentUser ); + $owner->Load( $self->__Value('Owner') ); + + #Return the owner object + return ($owner); +} + +# }}} + +# {{{ sub OwnerAsString + +=head2 OwnerAsString + +Returns the owner's email address + +=cut + +sub OwnerAsString { + my $self = shift; + return ( $self->OwnerObj->EmailAddress ); + +} + +# }}} + +# {{{ sub SetOwner + +=head2 SetOwner + +Takes two arguments: + the Id or Name of the owner +and (optionally) the type of the SetOwner Transaction. It defaults +to 'Give'. 'Steal' is also a valid option. + +=begin testing + +my $root = RT::User->new($RT::SystemUser); +$root->Load('root'); +ok ($root->Id, "Loaded the root user"); +my $t = RT::Ticket->new($RT::SystemUser); +$t->Load(1); +$t->SetOwner('root'); +ok ($t->OwnerObj->Name eq 'root' , "Root owns the ticket"); +$t->Steal(); +ok ($t->OwnerObj->id eq $RT::SystemUser->id , "SystemUser owns the ticket"); +my $txns = RT::Transactions->new($RT::SystemUser); +$txns->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$txns->Limit(FIELD => 'Ticket', VALUE => '1'); +my $steal = $txns->First; +ok($steal->OldValue == $root->Id , "Stolen from root"); +ok($steal->NewValue == $RT::SystemUser->Id , "Stolen by the systemuser"); + +=end testing + +=cut + +sub SetOwner { + my $self = shift; + my $NewOwner = shift; + my $Type = shift || "Give"; + + # must have ModifyTicket rights + # or TakeTicket/StealTicket and $NewOwner is self + # see if it's a take + if ( $self->OwnerObj->Id == $RT::Nobody->Id ) { + unless ( $self->CurrentUserHasRight('ModifyTicket') + || $self->CurrentUserHasRight('TakeTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + } + + # see if it's a steal + elsif ( $self->OwnerObj->Id != $RT::Nobody->Id + && $self->OwnerObj->Id != $self->CurrentUser->id ) { + + unless ( $self->CurrentUserHasRight('ModifyTicket') + || $self->CurrentUserHasRight('StealTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + } + else { + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + } + my $NewOwnerObj = RT::User->new( $self->CurrentUser ); + my $OldOwnerObj = $self->OwnerObj; + + $NewOwnerObj->Load($NewOwner); + if ( !$NewOwnerObj->Id ) { + return ( 0, $self->loc("That user does not exist") ); + } + + #If thie ticket has an owner and it's not the current user + + if ( ( $Type ne 'Steal' ) + and ( $Type ne 'Force' ) + and #If we're not stealing + ( $self->OwnerObj->Id != $RT::Nobody->Id ) and #and the owner is set + ( $self->CurrentUser->Id ne $self->OwnerObj->Id() ) + ) { #and it's not us + return ( 0, + $self->loc( +"You can only reassign tickets that you own or that are unowned" ) ); + } + + #If we've specified a new owner and that user can't modify the ticket + elsif ( ( $NewOwnerObj->Id ) + and ( !$NewOwnerObj->HasRight( Right => 'OwnTicket', + Object => $self ) ) + ) { + return ( 0, $self->loc("That user may not own tickets in that queue") ); + } + + #If the ticket has an owner and it's the new owner, we don't need + #To do anything + elsif ( ( $self->OwnerObj ) + and ( $NewOwnerObj->Id eq $self->OwnerObj->Id ) ) { + return ( 0, $self->loc("That user already owns that ticket") ); + } + + $RT::Handle->BeginTransaction(); + + # Delete the owner in the owner group, then add a new one + # TODO: is this safe? it's not how we really want the API to work + # for most things, but it's fast. + my ( $del_id, $del_msg ) = $self->OwnerGroup->MembersObj->First->Delete(); + unless ($del_id) { + $RT::Handle->Rollback(); + return ( 0, $self->loc("Could not change owner. ") . $del_msg ); + } + + my ( $add_id, $add_msg ) = $self->OwnerGroup->_AddMember( + PrincipalId => $NewOwnerObj->PrincipalId, + InsideTransaction => 1 ); + unless ($add_id) { + $RT::Handle->Rollback(); + return ( 0, $self->loc("Could not change owner. ") . $add_msg ); + } + + # We call set twice with slightly different arguments, so + # as to not have an SQL transaction span two RT transactions + + my ( $val, $msg ) = $self->_Set( + Field => 'Owner', + RecordTransaction => 0, + Value => $NewOwnerObj->Id, + TimeTaken => 0, + TransactionType => $Type, + CheckACL => 0, # don't check acl + ); + + unless ($val) { + $RT::Handle->Rollback; + return ( 0, $self->loc("Could not change owner. ") . $msg ); + } + + $RT::Handle->Commit(); + + my ( $trans, $msg, undef ) = $self->_NewTransaction( + Type => $Type, + Field => 'Owner', + NewValue => $NewOwnerObj->Id, + OldValue => $OldOwnerObj->Id, + TimeTaken => 0 ); + + if ($trans) { + $msg = $self->loc( "Owner changed from [_1] to [_2]", + $OldOwnerObj->Name, $NewOwnerObj->Name ); + + # TODO: make sure the trans committed properly + } + return ( $trans, $msg ); + +} + +# }}} + +# {{{ sub Take + +=head2 Take + +A convenince method to set the ticket's owner to the current user + +=cut + +sub Take { + my $self = shift; + return ( $self->SetOwner( $self->CurrentUser->Id, 'Take' ) ); +} + +# }}} + +# {{{ sub Untake + +=head2 Untake + +Convenience method to set the owner to 'nobody' if the current user is the owner. + +=cut + +sub Untake { + my $self = shift; + return ( $self->SetOwner( $RT::Nobody->UserObj->Id, 'Untake' ) ); +} + +# }}} + +# {{{ sub Steal + +=head2 Steal + +A convenience method to change the owner of the current ticket to the +current user. Even if it's owned by another user. + +=cut + +sub Steal { + my $self = shift; + + if ( $self->IsOwner( $self->CurrentUser ) ) { + return ( 0, $self->loc("You already own this ticket") ); + } + else { + return ( $self->SetOwner( $self->CurrentUser->Id, 'Steal' ) ); + + } + +} + +# }}} + +# }}} + +# {{{ Routines dealing with status + +# {{{ sub ValidateStatus + +=head2 ValidateStatus STATUS + +Takes a string. Returns true if that status is a valid status for this ticket. +Returns false otherwise. + +=cut + +sub ValidateStatus { + my $self = shift; + my $status = shift; + + #Make sure the status passed in is valid + unless ( $self->QueueObj->IsValidStatus($status) ) { + return (undef); + } + + return (1); + +} + +# }}} + +# {{{ sub SetStatus + +=head2 SetStatus STATUS + +Set this ticket\'s status. STATUS can be one of: new, open, stalled, resolved, rejected or deleted. + +Alternatively, you can pass in a list of named parameters (Status => STATUS, Force => FORCE). If FORCE is true, ignore unresolved dependencies and force a status change. + +=begin testing + +my $tt = RT::Ticket->new($RT::SystemUser); +my ($id, $tid, $msg)= $tt->Create(Queue => 'general', + Subject => 'test'); +ok($id, $msg); +ok($tt->Status eq 'new', "New ticket is created as new"); + +($id, $msg) = $tt->SetStatus('open'); +ok($id, $msg); +ok ($msg =~ /open/i, "Status message is correct"); +($id, $msg) = $tt->SetStatus('resolved'); +ok($id, $msg); +ok ($msg =~ /resolved/i, "Status message is correct"); +($id, $msg) = $tt->SetStatus('resolved'); +ok(!$id,$msg); + + +=end testing + + +=cut + +sub SetStatus { + my $self = shift; + my %args; + + if (@_ == 1) { + $args{Status} = shift; + } + else { + %args = (@_); + } + + #Check ACL + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, $self->loc('Permission Denied') ); + } + + if (!$args{Force} && ($args{'Status'} eq 'resolved') && $self->HasUnresolvedDependencies) { + return (0, $self->loc('That ticket has unresolved dependencies')); + } + + my $now = RT::Date->new( $self->CurrentUser ); + $now->SetToNow(); + + #If we're changing the status from new, record that we've started + if ( ( $self->Status =~ /new/ ) && ( $args{Status} ne 'new' ) ) { + + #Set the Started time to "now" + $self->_Set( Field => 'Started', + Value => $now->ISO, + RecordTransaction => 0 ); + } + + if ( $args{Status} =~ /^(resolved|rejected|dead)$/ ) { + + #When we resolve a ticket, set the 'Resolved' attribute to now. + $self->_Set( Field => 'Resolved', + Value => $now->ISO, + RecordTransaction => 0 ); + } + + #Actually update the status + my ($val, $msg)= $self->_Set( Field => 'Status', + Value => $args{Status}, + TimeTaken => 0, + TransactionType => 'Status' ); + + return($val,$msg); +} + +# }}} + +# {{{ sub Kill + +=head2 Kill + +Takes no arguments. Marks this ticket for garbage collection + +=cut + +sub Kill { + my $self = shift; + $RT::Logger->crit("'Kill' is deprecated. use 'Delete' instead."); + return $self->Delete; +} + +sub Delete { + my $self = shift; + return ( $self->SetStatus('deleted') ); + + # TODO: garbage collection +} + +# }}} + +# {{{ sub Stall + +=head2 Stall + +Sets this ticket's status to stalled + +=cut + +sub Stall { + my $self = shift; + return ( $self->SetStatus('stalled') ); +} + +# }}} + +# {{{ sub Reject + +=head2 Reject + +Sets this ticket's status to rejected + +=cut + +sub Reject { + my $self = shift; + return ( $self->SetStatus('rejected') ); +} + +# }}} + +# {{{ sub Open + +=head2 Open + +Sets this ticket\'s status to Open + +=cut + +sub Open { + my $self = shift; + return ( $self->SetStatus('open') ); +} + +# }}} + +# {{{ sub Resolve + +=head2 Resolve + +Sets this ticket\'s status to Resolved + +=cut + +sub Resolve { + my $self = shift; + return ( $self->SetStatus('resolved') ); +} + +# }}} + +# }}} + +# {{{ Routines dealing with custom fields + + +# {{{ FirstCustomFieldValue + +=item FirstCustomFieldValue FIELD + +Return the content of the first value of CustomField FIELD for this ticket +Takes a field id or name + +=cut + +sub FirstCustomFieldValue { + my $self = shift; + my $field = shift; + my $values = $self->CustomFieldValues($field); + if ($values->First) { + return $values->First->Content; + } else { + return undef; + } + +} + + + +# {{{ CustomFieldValues + +=item CustomFieldValues FIELD + +Return a TicketCustomFieldValues object of all values of CustomField FIELD for this ticket. +Takes a field id or name. + + +=cut + +sub CustomFieldValues { + my $self = shift; + my $field = shift; + + my $cf = RT::CustomField->new($self->CurrentUser); + + if ($field =~ /^\d+$/) { + $cf->LoadById($field); + } else { + $cf->LoadByNameAndQueue(Name => $field, Queue => $self->QueueObj->Id); + } + my $cf_values = RT::TicketCustomFieldValues->new( $self->CurrentUser ); + $cf_values->LimitToCustomField($cf->id); + $cf_values->LimitToTicket($self->Id()); + + # @values is a CustomFieldValues object; + return ($cf_values); +} + +# }}} + +# {{{ AddCustomFieldValue + +=item AddCustomFieldValue { Field => FIELD, Value => VALUE } + +VALUE can either be a CustomFieldValue object or a string. +FIELD can be a CustomField object OR a CustomField ID. + + +Adds VALUE as a value of CustomField FIELD. If this is a single-value custom field, +deletes the old value. +If VALUE isn't a valid value for the custom field, returns +(0, 'Error message' ) otherwise, returns (1, 'Success Message') + +=cut + +sub AddCustomFieldValue { + my $self = shift; + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + $self->_AddCustomFieldValue(@_); +} + +sub _AddCustomFieldValue { + my $self = shift; + my %args = ( + Field => undef, + Value => undef, + RecordTransaction => 1, + @_ + ); + + my $cf = RT::CustomField->new( $self->CurrentUser ); + if ( UNIVERSAL::isa( $args{'Field'}, "RT::CustomField" ) ) { + $cf->Load( $args{'Field'}->id ); + } + else { + $cf->Load( $args{'Field'} ); + } + + unless ( $cf->Id ) { + return ( 0, $self->loc("Custom field [_1] not found", $args{'Field'}) ); + } + + # Load up a TicketCustomFieldValues object for this custom field and this ticket + my $values = $cf->ValuesForTicket( $self->id ); + + unless ( $cf->ValidateValue( $args{'Value'} ) ) { + return ( 0, $self->loc("Invalid value for custom field") ); + } + + # If the custom field only accepts a single value, delete the existing + # value and record a "changed from foo to bar" transaction + if ( $cf->SingleValue ) { + + # We need to whack any old values here. In most cases, the custom field should + # only have one value to delete. In the pathalogical case, this custom field + # used to be a multiple and we have many values to whack.... + my $cf_values = $values->Count; + + if ( $cf_values > 1 ) { + my $i = 0; #We want to delete all but the last one, so we can then + # execute the same code to "change" the value from old to new + while ( my $value = $values->Next ) { + $i++; + if ( $i < $cf_values ) { + my $old_value = $value->Content; + my ($val, $msg) = $cf->DeleteValueForTicket(Ticket => $self->Id, Content => $value->Content); + unless ($val) { + return (0,$msg); + } + my ( $TransactionId, $Msg, $TransactionObj ) = + $self->_NewTransaction( + Type => 'CustomField', + Field => $cf->Id, + OldValue => $old_value + ); + } + } + } + + my $old_value; + if (my $value = $cf->ValuesForTicket( $self->Id )->First) { + $old_value = $value->Content(); + return (1) if $old_value eq $args{'Value'}; + } + + my ( $new_value_id, $value_msg ) = $cf->AddValueForTicket( + Ticket => $self->Id, + Content => $args{'Value'} + ); + + unless ($new_value_id) { + return ( 0, + $self->loc("Could not add new custom field value for ticket. [_1] ", + ,$value_msg) ); + } + + my $new_value = RT::TicketCustomFieldValue->new( $self->CurrentUser ); + $new_value->Load($new_value_id); + + # now that adding the new value was successful, delete the old one + if ($old_value) { + my ($val, $msg) = $cf->DeleteValueForTicket(Ticket => $self->Id, Content => $old_value); + unless ($val) { + return (0,$msg); + } + } + + if ($args{'RecordTransaction'}) { + my ( $TransactionId, $Msg, $TransactionObj ) = $self->_NewTransaction( + Type => 'CustomField', + Field => $cf->Id, + OldValue => $old_value, + NewValue => $new_value->Content + ); + } + + if ( $old_value eq '' ) { + return ( 1, $self->loc("[_1] [_2] added", $cf->Name, $new_value->Content) ); + } + elsif ( $new_value->Content eq '' ) { + return ( 1, $self->loc("[_1] [_2] deleted", $cf->Name, $old_value) ); + } + else { + return ( 1, $self->loc("[_1] [_2] changed to [_3]", $cf->Name, $old_value, $new_value->Content ) ); + } + + } + + # otherwise, just add a new value and record "new value added" + else { + my ( $new_value_id ) = $cf->AddValueForTicket( + Ticket => $self->Id, + Content => $args{'Value'} + ); + + unless ($new_value_id) { + return ( 0, + $self->loc("Could not add new custom field value for ticket. ")); + } + if ( $args{'RecordTransaction'} ) { + my ( $TransactionId, $Msg, $TransactionObj ) = $self->_NewTransaction( + Type => 'CustomField', + Field => $cf->Id, + NewValue => $args{'Value'} + ); + unless ($TransactionId) { + return ( 0, + $self->loc( "Couldn't create a transaction: [_1]", $Msg ) ); + } + } + return ( 1, $self->loc("[_1] added as a value for [_2]",$args{'Value'}, $cf->Name)); + } + +} + +# }}} + +# {{{ DeleteCustomFieldValue + +=item DeleteCustomFieldValue { Field => FIELD, Value => VALUE } + +Deletes VALUE as a value of CustomField FIELD. + +VALUE can be a string, a CustomFieldValue or a TicketCustomFieldValue. + +If VALUE isn't a valid value for the custom field, returns +(0, 'Error message' ) otherwise, returns (1, 'Success Message') + +=cut + +sub DeleteCustomFieldValue { + my $self = shift; + my %args = ( + Field => undef, + Value => undef, + @_); + + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + my $cf = RT::CustomField->new( $self->CurrentUser ); + if ( UNIVERSAL::isa( $args{'Field'}, "RT::CustomField" ) ) { + $cf->LoadById( $args{'Field'}->id ); + } + else { + $cf->LoadById( $args{'Field'} ); + } + + unless ( $cf->Id ) { + return ( 0, $self->loc("Custom field not found") ); + } + + + my ($val, $msg) = $cf->DeleteValueForTicket(Ticket => $self->Id, Content => $args{'Value'}); + unless ($val) { + return (0,$msg); + } + my ( $TransactionId, $Msg, $TransactionObj ) = $self->_NewTransaction( + Type => 'CustomField', + Field => $cf->Id, + OldValue => $args{'Value'} + ); + unless($TransactionId) { + return(0, $self->loc("Couldn't create a transaction: [_1]", $Msg)); + } + + return($TransactionId, $self->loc("[_1] is no longer a value for custom field [_2]", $args{'Value'}, $cf->Name)); +} + +# }}} + +# }}} + +# {{{ Actions + Routines dealing with transactions + +# {{{ sub SetTold and _SetTold + +=head2 SetTold ISO [TIMETAKEN] + +Updates the told and records a transaction + +=cut + +sub SetTold { + my $self = shift; + my $told; + $told = shift if (@_); + my $timetaken = shift || 0; + + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + + my $datetold = new RT::Date( $self->CurrentUser ); + if ($told) { + $datetold->Set( Format => 'iso', + Value => $told ); + } + else { + $datetold->SetToNow(); + } + + return ( $self->_Set( Field => 'Told', + Value => $datetold->ISO, + TimeTaken => $timetaken, + TransactionType => 'Told' ) ); +} + +=head2 _SetTold + +Updates the told without a transaction or acl check. Useful when we're sending replies. + +=cut + +sub _SetTold { + my $self = shift; + + my $now = new RT::Date( $self->CurrentUser ); + $now->SetToNow(); + + #use __Set to get no ACLs ;) + return ( $self->__Set( Field => 'Told', + Value => $now->ISO ) ); +} + +# }}} + +# {{{ sub Transactions + +=head2 Transactions + + Returns an RT::Transactions object of all transactions on this ticket + +=cut + +sub Transactions { + my $self = shift; + + use RT::Transactions; + my $transactions = RT::Transactions->new( $self->CurrentUser ); + + #If the user has no rights, return an empty object + if ( $self->CurrentUserHasRight('ShowTicket') ) { + my $tickets = $transactions->NewAlias('Tickets'); + $transactions->Join( + ALIAS1 => 'main', + FIELD1 => 'Ticket', + ALIAS2 => $tickets, + FIELD2 => 'id' + ); + $transactions->Limit( + ALIAS => $tickets, + FIELD => 'EffectiveId', + VALUE => $self->id() + ); + + # if the user may not see comments do not return them + unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { + $transactions->Limit( + FIELD => 'Type', + OPERATOR => '!=', + VALUE => "Comment" + ); + } + } + + return ($transactions); +} + +# }}} + +# {{{ sub _NewTransaction + +sub _NewTransaction { + my $self = shift; + my %args = ( + TimeTaken => 0, + Type => undef, + OldValue => undef, + NewValue => undef, + Data => undef, + Field => undef, + MIMEObj => undef, + @_ + ); + + require RT::Transaction; + my $trans = new RT::Transaction( $self->CurrentUser ); + my ( $transaction, $msg ) = $trans->Create( + Ticket => $self->Id, + TimeTaken => $args{'TimeTaken'}, + Type => $args{'Type'}, + Data => $args{'Data'}, + Field => $args{'Field'}, + NewValue => $args{'NewValue'}, + OldValue => $args{'OldValue'}, + MIMEObj => $args{'MIMEObj'} + ); + + + $self->Load($self->Id); + + $RT::Logger->warning($msg) unless $transaction; + + $self->_SetLastUpdated; + + if ( defined $args{'TimeTaken'} ) { + $self->_UpdateTimeTaken( $args{'TimeTaken'} ); + } + return ( $transaction, $msg, $trans ); +} + +# }}} + +# }}} + +# {{{ PRIVATE UTILITY METHODS. Mostly needed so Ticket can be a DBIx::Record + +# {{{ sub _ClassAccessible + +sub _ClassAccessible { + { + EffectiveId => { 'read' => 1, 'write' => 1, 'public' => 1 }, + Queue => { 'read' => 1, 'write' => 1 }, + Requestors => { 'read' => 1, 'write' => 1 }, + Owner => { 'read' => 1, 'write' => 1 }, + Subject => { 'read' => 1, 'write' => 1 }, + InitialPriority => { 'read' => 1, 'write' => 1 }, + FinalPriority => { 'read' => 1, 'write' => 1 }, + Priority => { 'read' => 1, 'write' => 1 }, + Status => { 'read' => 1, 'write' => 1 }, + TimeEstimated => { 'read' => 1, 'write' => 1 }, + TimeWorked => { 'read' => 1, 'write' => 1 }, + TimeLeft => { 'read' => 1, 'write' => 1 }, + Created => { 'read' => 1, 'auto' => 1 }, + Creator => { 'read' => 1, 'auto' => 1 }, + Told => { 'read' => 1, 'write' => 1 }, + Resolved => { 'read' => 1 }, + Type => { 'read' => 1 }, + Starts => { 'read' => 1, 'write' => 1 }, + Started => { 'read' => 1, 'write' => 1 }, + Due => { 'read' => 1, 'write' => 1 }, + Creator => { 'read' => 1, 'auto' => 1 }, + Created => { 'read' => 1, 'auto' => 1 }, + LastUpdatedBy => { 'read' => 1, 'auto' => 1 }, + LastUpdated => { 'read' => 1, 'auto' => 1 } + }; + +} + +# }}} + +# {{{ sub _Set + +sub _Set { + my $self = shift; + + my %args = ( Field => undef, + Value => undef, + TimeTaken => 0, + RecordTransaction => 1, + UpdateTicket => 1, + CheckACL => 1, + TransactionType => 'Set', + @_ ); + + if ($args{'CheckACL'}) { + unless ( $self->CurrentUserHasRight('ModifyTicket')) { + return ( 0, $self->loc("Permission Denied")); + } + } + + unless ($args{'UpdateTicket'} || $args{'RecordTransaction'}) { + $RT::Logger->error("Ticket->_Set called without a mandate to record an update or update the ticket"); + return(0, $self->loc("Internal Error")); + } + + #if the user is trying to modify the record + + #Take care of the old value we really don't want to get in an ACL loop. + # so ask the super::_Value + my $Old = $self->SUPER::_Value("$args{'Field'}"); + + my ($ret, $msg); + if ( $args{'UpdateTicket'} ) { + + #Set the new value + ( $ret, $msg ) = $self->SUPER::_Set( Field => $args{'Field'}, + Value => $args{'Value'} ); + + #If we can't actually set the field to the value, don't record + # a transaction. instead, get out of here. + if ( $ret == 0 ) { return ( 0, $msg ); } + } + + if ( $args{'RecordTransaction'} == 1 ) { + + my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( + Type => $args{'TransactionType'}, + Field => $args{'Field'}, + NewValue => $args{'Value'}, + OldValue => $Old, + TimeTaken => $args{'TimeTaken'}, + ); + return ( $Trans, scalar $TransObj->Description ); + } + else { + return ( $ret, $msg ); + } +} + +# }}} + +# {{{ sub _Value + +=head2 _Value + +Takes the name of a table column. +Returns its value as a string, if the user passes an ACL check + +=cut + +sub _Value { + + my $self = shift; + my $field = shift; + + #if the field is public, return it. + if ( $self->_Accessible( $field, 'public' ) ) { + + #$RT::Logger->debug("Skipping ACL check for $field\n"); + return ( $self->SUPER::_Value($field) ); + + } + + #If the current user doesn't have ACLs, don't let em at it. + + unless ( $self->CurrentUserHasRight('ShowTicket') ) { + return (undef); + } + return ( $self->SUPER::_Value($field) ); + +} + +# }}} + +# {{{ sub _UpdateTimeTaken + +=head2 _UpdateTimeTaken + +This routine will increment the timeworked counter. it should +only be called from _NewTransaction + +=cut + +sub _UpdateTimeTaken { + my $self = shift; + my $Minutes = shift; + my ($Total); + + $Total = $self->SUPER::_Value("TimeWorked"); + $Total = ( $Total || 0 ) + ( $Minutes || 0 ); + $self->SUPER::_Set( + Field => "TimeWorked", + Value => $Total + ); + + return ($Total); +} + +# }}} + +# }}} + +# {{{ Routines dealing with ACCESS CONTROL + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight + + Takes the textual name of a Ticket scoped right (from RT::ACE) and returns +1 if the user has that right. It returns 0 if the user doesn't have that right. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + + return ( + $self->HasRight( + Principal => $self->CurrentUser->UserObj(), + Right => "$right" + ) + ); + +} + +# }}} + +# {{{ sub HasRight + +=head2 HasRight + + Takes a paramhash with the attributes 'Right' and 'Principal' + 'Right' is a ticket-scoped textual right from RT::ACE + 'Principal' is an RT::User object + + Returns 1 if the principal has the right. Returns undef if not. + +=cut + +sub HasRight { + my $self = shift; + my %args = ( + Right => undef, + Principal => undef, + @_ + ); + + unless ( ( defined $args{'Principal'} ) and ( ref( $args{'Principal'} ) ) ) + { + $RT::Logger->warning("Principal attrib undefined for Ticket::HasRight"); + } + + return ( + $args{'Principal'}->HasRight( + Object => $self, + Right => $args{'Right'} + ) + ); +} + +# }}} + +# }}} + +1; + +=head1 AUTHOR + +Jesse Vincent, jesse@bestpractical.com + +=head1 SEE ALSO + +RT + +=cut + diff --git a/rt/lib/RT/Tickets.pm b/rt/lib/RT/Tickets.pm index dd91126c4..b6b349144 100755 --- a/rt/lib/RT/Tickets.pm +++ b/rt/lib/RT/Tickets.pm @@ -1,1789 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Tickets.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# -=head1 NAME +use strict; - RT::Tickets - A collection of Ticket objects +=head1 NAME + RT::Tickets -- Class Description + =head1 SYNOPSIS - use RT::Tickets; - my $tickets = new RT::Tickets($CurrentUser); + use RT::Tickets =head1 DESCRIPTION - A collection of RT::Tickets. =head1 METHODS -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Tickets); - -=end testing - =cut package RT::Tickets; -use RT::EasySearch; -use RT::Ticket; -@ISA= qw(RT::EasySearch); - -use vars qw(%TYPES @SORTFIELDS); - -# {{{ TYPES - -%TYPES = ( Status => 'ENUM', - Queue => 'ENUM', - Type => 'ENUM', - Creator => 'ENUM', - LastUpdatedBy => 'ENUM', - Owner => 'ENUM', - EffectiveId => 'INT', - id => 'INT', - InitialPriority => 'INT', - FinalPriority => 'INT', - Priority => 'INT', - TimeLeft => 'INT', - TimeWorked => 'INT', - MemberOf => 'LINK', - DependsOn => 'LINK', - HasMember => 'LINK', - HasDepender => 'LINK', - RelatedTo => 'LINK', - Told => 'DATE', - StartsBy => 'DATE', - Started => 'DATE', - Due => 'DATE', - Resolved => 'DATE', - LastUpdated => 'DATE', - Created => 'DATE', - Subject => 'STRING', - Type => 'STRING', - Content => 'TRANSFIELD', - ContentType => 'TRANSFIELD', - TransactionDate => 'TRANSDATE', - Watcher => 'WATCHERFIELD', - LinkedTo => 'LINKFIELD', - Keyword => 'KEYWORDFIELD' - - ); - - -# }}} - -# {{{ sub SortFields - -@SORTFIELDS = qw(id Status Owner Created Due Starts Started - Queue Subject Told Started - Resolved LastUpdated Priority TimeWorked TimeLeft); - -=head2 SortFields - -Returns the list of fields that lists of tickets can easily be sorted by - -=cut - - -sub SortFields { - my $self = shift; - return(@SORTFIELDS); -} - - -# }}} - -# {{{ Limit the result set based on content - -# {{{ sub Limit - -=head2 Limit - -Takes a paramhash with the fields FIELD, OPERATOR, VALUE and DESCRIPTION -Generally best called from LimitFoo methods - -=cut -sub Limit { - my $self = shift; - my %args = ( FIELD => undef, - OPERATOR => '=', - VALUE => undef, - DESCRIPTION => undef, - @_ - ); - $args{'DESCRIPTION'} = "Autodescribed: ".$args{'FIELD'} . $args{'OPERATOR'} . $args{'VALUE'}, - if (!defined $args{'DESCRIPTION'}) ; - - my $index = $self->_NextIndex; - - #make the TicketRestrictions hash the equivalent of whatever we just passed in; - - %{$self->{'TicketRestrictions'}{$index}} = %args; - - $self->{'RecalcTicketLimits'} = 1; - - # If we're looking at the effective id, we don't want to append the other clause - # which limits us to tickets where id = effective id - if ($args{'FIELD'} eq 'EffectiveId') { - $self->{'looking_at_effective_id'} = 1; - } - - return ($index); -} - -# }}} - - - - -=head2 FreezeLimits - -Returns a frozen string suitable for handing back to ThawLimits. - -=cut -# {{{ sub FreezeLimits - -sub FreezeLimits { - my $self = shift; - require FreezeThaw; - return (FreezeThaw::freeze($self->{'TicketRestrictions'}, - $self->{'restriction_index'} - )); -} - -# }}} - -=head2 ThawLimits - -Take a frozen Limits string generated by FreezeLimits and make this tickets -object have that set of limits. - -=cut -# {{{ sub ThawLimits - -sub ThawLimits { - my $self = shift; - my $in = shift; - - #if we don't have $in, get outta here. - return undef unless ($in); - - $self->{'RecalcTicketLimits'} = 1; - - require FreezeThaw; - - #We don't need to die if the thaw fails. - - eval { - ($self->{'TicketRestrictions'}, - $self->{'restriction_index'} - ) = FreezeThaw::thaw($in); - } - -} - -# }}} - -# {{{ Limit by enum or foreign key - -# {{{ sub LimitQueue - -=head2 LimitQueue - -LimitQueue takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of = or !=. (It defaults to =). -VALUE is a queue id. - -=cut - -sub LimitQueue { - my $self = shift; - my %args = (VALUE => undef, - OPERATOR => '=', - @_); - - #TODO VALUE should also take queue names and queue objects - my $queue = new RT::Queue($self->CurrentUser); - $queue->Load($args{'VALUE'}); - - #TODO check for a valid queue here - - $self->Limit (FIELD => 'Queue', - VALUE => $queue->id(), - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Queue ' . $args{'OPERATOR'}. " ". $queue->Name - ); - -} -# }}} - -# {{{ sub LimitStatus - -=head2 LimitStatus - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of = or !=. -VALUE is a status. - -=cut - -sub LimitStatus { - my $self = shift; - my %args = ( OPERATOR => '=', - @_); - $self->Limit (FIELD => 'Status', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Status ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# {{{ sub LimitType - -=head2 LimitType - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of = or !=, it defaults to "=". -VALUE is a string to search for in the type of the ticket. - -=cut - -sub LimitType { - my $self = shift; - my %args = (OPERATOR => '=', - VALUE => undef, - @_); - $self->Limit (FIELD => 'Type', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Type ' . $args{'OPERATOR'}. " ". $args{'Limit'}, - ); -} - -# }}} - -# }}} - -# {{{ Limit by string field - -# {{{ sub LimitSubject - -=head2 LimitSubject - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of = or !=. -VALUE is a string to search for in the subject of the ticket. - -=cut - -sub LimitSubject { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'Subject', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Subject ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# }}} - -# {{{ Limit based on ticket numerical attributes -# Things that can be > < = != - -# {{{ sub LimitId - -=head2 LimitId - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a ticket Id to search for - -=cut - -sub LimitId { - my $self = shift; - my %args = (OPERATOR => '=', - @_); - - $self->Limit (FIELD => 'id', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Id ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# {{{ sub LimitPriority - -=head2 LimitPriority - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a value to match the ticket\'s priority against - -=cut - -sub LimitPriority { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'Priority', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Priority ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# {{{ sub LimitInitialPriority - -=head2 LimitInitialPriority - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a value to match the ticket\'s initial priority against - - -=cut - -sub LimitInitialPriority { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'InitialPriority', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Initial Priority ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} -# {{{ sub LimitFinalPriority - -=head2 LimitFinalPriority - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a value to match the ticket\'s final priority against - -=cut - -sub LimitFinalPriority { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'FinalPriority', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Final Priority ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# {{{ sub LimitTimeWorked - -=head2 LimitTimeWorked - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a value to match the ticket's TimeWorked attribute - -=cut - -sub LimitTimeWorked { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'TimeWorked', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Time worked ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# {{{ sub LimitTimeLeft - -=head2 LimitTimeLeft - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a value to match the ticket's TimeLeft attribute - -=cut - -sub LimitTimeLeft { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'TimeLeft', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Time left ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# }}} - -# {{{ Limiting based on attachment attributes - -# {{{ sub LimitContent - -=head2 LimitContent - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, LIKE, NOT LIKE or !=. -VALUE is a string to search for in the body of the ticket - -=cut -sub LimitContent { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'Content', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Ticket content ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} -# {{{ sub LimitContentType - -=head2 LimitContentType - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, LIKE, NOT LIKE or !=. -VALUE is a content type to search ticket attachments for - -=cut - -sub LimitContentType { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'ContentType', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Ticket content type ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} -# }}} - -# }}} - -# {{{ Limiting based on people - -# {{{ sub LimitOwner - -=head2 LimitOwner - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of = or !=. -VALUE is a user id. - -=cut - -sub LimitOwner { - my $self = shift; - my %args = ( OPERATOR => '=', - @_); - - my $owner = new RT::User($self->CurrentUser); - $owner->Load($args{'VALUE'}); - $self->Limit (FIELD => 'Owner', - VALUE => $owner->Id, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Owner ' . $args{'OPERATOR'}. " ". $owner->Name() - ); - -} - -# }}} - -# {{{ Limiting watchers - -# {{{ sub LimitWatcher +use RT::SearchBuilder; +use RT::Ticket; +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -=head2 LimitWatcher - - Takes a paramhash with the fields OPERATOR, TYPE and VALUE. - OPERATOR is one of =, LIKE, NOT LIKE or !=. - VALUE is a value to match the ticket\'s watcher email addresses against - TYPE is the sort of watchers you want to match against. Leave it undef if you want to search all of them -=cut - -sub LimitWatcher { +sub _Init { my $self = shift; - my %args = ( OPERATOR => '=', - VALUE => undef, - TYPE => undef, - @_); - - - #build us up a description - my ($watcher_type, $desc); - if ($args{'TYPE'}) { - $watcher_type = $args{'TYPE'}; - } - else { - $watcher_type = "Watcher"; - } - $desc = "$watcher_type ".$args{'OPERATOR'}." ".$args{'VALUE'}; - - - $self->Limit (FIELD => 'Watcher', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - TYPE => $args{'TYPE'}, - DESCRIPTION => "$desc" - ); -} - -# }}} - -# {{{ sub LimitRequestor + $self->{'table'} = 'Tickets'; + $self->{'primary_key'} = 'id'; -=head2 LimitRequestor -It\'s like LimitWatcher, but it presets TYPE to Requestor - -=cut - - -sub LimitRequestor { - my $self = shift; - $self->LimitWatcher(TYPE=> 'Requestor', @_); + return ( $self->SUPER::_Init(@_) ); } -# }}} - -# {{{ sub LimitCc -=head2 LimitCC +=item NewItem -It\'s like LimitWatcher, but it presets TYPE to Cc +Returns an empty new RT::Ticket item =cut -sub LimitCc { - my $self = shift; - $self->LimitWatcher(TYPE=> 'Cc', @_); -} - -# }}} - -# {{{ sub LimitAdminCc - -=head2 LimitAdminCc - -It\'s like LimitWatcher, but it presets TYPE to AdminCc - -=cut - -sub LimitAdminCc { +sub NewItem { my $self = shift; - $self->LimitWatcher(TYPE=> 'AdminCc', @_); + return(RT::Ticket->new($self->CurrentUser)); } -# }}} - -# }}} - -# }}} + eval "require RT::Tickets_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Tickets_Overlay.pm}) { + die $@; + }; -# {{{ Limiting based on links + eval "require RT::Tickets_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Tickets_Vendor.pm}) { + die $@; + }; -# {{{ LimitLinkedTo + eval "require RT::Tickets_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Tickets_Local.pm}) { + die $@; + }; -=head2 LimitLinkedTo -LimitLinkedTo takes a paramhash with two fields: TYPE and TARGET -TYPE limits the sort of relationship we want to search on -TARGET is the id or URI of the TARGET of the link -(TARGET used to be 'TICKET'. 'TICKET' is deprecated, but will be treated as TARGET -=cut - -sub LimitLinkedTo { - my $self = shift; - my %args = ( - TICKET => undef, - TARGET => undef, - TYPE => undef, - @_); - - - $self->Limit( FIELD => 'LinkedTo', - BASE => undef, - TARGET => ($args{'TARGET'} || $args{'TICKET'}), - TYPE => $args{'TYPE'}, - DESCRIPTION => "Tickets ".$args{'TYPE'}." by ".($args{'TARGET'} || $args{'TICKET'}) - ); -} - - -# }}} +=head1 SEE ALSO -# {{{ LimitLinkedFrom +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. -=head2 LimitLinkedFrom +These overlay files can contain new subs or subs to replace existing subs in this module. -LimitLinkedFrom takes a paramhash with two fields: TYPE and BASE -TYPE limits the sort of relationship we want to search on +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); -BASE is the id or URI of the BASE of the link -(BASE used to be 'TICKET'. 'TICKET' is deprecated, but will be treated as BASE +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. +RT::Tickets_Overlay, RT::Tickets_Vendor, RT::Tickets_Local =cut -sub LimitLinkedFrom { - my $self = shift; - my %args = ( BASE => undef, - TICKET => undef, - TYPE => undef, - @_); - - - $self->Limit( FIELD => 'LinkedTo', - TARGET => undef, - BASE => ($args{'BASE'} || $args{'TICKET'}), - TYPE => $args{'TYPE'}, - DESCRIPTION => "Tickets " .($args{'BASE'} || $args{'TICKET'}) ." ".$args{'TYPE'} - ); -} - - -# }}} - -# {{{ LimitMemberOf -sub LimitMemberOf { - my $self = shift; - my $ticket_id = shift; - $self->LimitLinkedTo ( TARGET=> "$ticket_id", - TYPE => 'MemberOf', - ); - -} -# }}} - -# {{{ LimitHasMember -sub LimitHasMember { - my $self = shift; - my $ticket_id =shift; - $self->LimitLinkedFrom ( BASE => "$ticket_id", - TYPE => 'MemberOf', - ); - -} -# }}} - -# {{{ LimitDependsOn - -sub LimitDependsOn { - my $self = shift; - my $ticket_id = shift; - $self->LimitLinkedTo ( TARGET => "$ticket_id", - TYPE => 'DependsOn', - ); - -} - -# }}} - -# {{{ LimitDependedOnBy - -sub LimitDependedOnBy { - my $self = shift; - my $ticket_id = shift; - $self->LimitLinkedFrom ( BASE => "$ticket_id", - TYPE => 'DependsOn', - ); - -} - -# }}} - - -# {{{ LimitRefersTo - -sub LimitRefersTo { - my $self = shift; - my $ticket_id = shift; - $self->LimitLinkedTo ( TARGET => "$ticket_id", - TYPE => 'RefersTo', - ); - -} - -# }}} - -# {{{ LimitReferredToBy - -sub LimitReferredToBy { - my $self = shift; - my $ticket_id = shift; - $self->LimitLinkedFrom ( BASE=> "$ticket_id", - TYPE => 'RefersTo', - ); - -} - -# }}} - -# }}} - -# {{{ limit based on ticket date attribtes - -# {{{ sub LimitDate - -=head2 LimitDate (FIELD => 'DateField', OPERATOR => $oper, VALUE => $ISODate) - -Takes a paramhash with the fields FIELD OPERATOR and VALUE. - -OPERATOR is one of > or < -VALUE is a date and time in ISO format in GMT -FIELD is one of Starts, Started, Told, Created, Resolved, LastUpdated - -There are also helper functions of the form LimitFIELD that eliminate -the need to pass in a FIELD argument. - -=cut - -sub LimitDate { - my $self = shift; - my %args = ( - FIELD => undef, - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - - @_); - - #Set the description if we didn't get handed it above - unless ($args{'DESCRIPTION'} ) { - $args{'DESCRIPTION'} = $args{'FIELD'} . " " .$args{'OPERATOR'}. " ". $args{'VALUE'} . " GMT" - } - - $self->Limit (%args); - -} - -# }}} - - - - -sub LimitCreated { - my $self = shift; - $self->LimitDate( FIELD => 'Created', @_); -} -sub LimitDue { - my $self = shift; - $self->LimitDate( FIELD => 'Due', @_); - -} -sub LimitStarts { - my $self = shift; - $self->LimitDate( FIELD => 'Starts', @_); - -} -sub LimitStarted { - my $self = shift; - $self->LimitDate( FIELD => 'Started', @_); -} -sub LimitResolved { - my $self = shift; - $self->LimitDate( FIELD => 'Resolved', @_); -} -sub LimitTold { - my $self = shift; - $self->LimitDate( FIELD => 'Told', @_); -} -sub LimitLastUpdated { - my $self = shift; - $self->LimitDate( FIELD => 'LastUpdated', @_); -} -# -# {{{ sub LimitTransactionDate - -=head2 LimitTransactionDate (OPERATOR => $oper, VALUE => $ISODate) - -Takes a paramhash with the fields FIELD OPERATOR and VALUE. - -OPERATOR is one of > or < -VALUE is a date and time in ISO format in GMT - - -=cut - -sub LimitTransactionDate { - my $self = shift; - my %args = ( - FIELD => 'TransactionDate', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - - @_); - - #Set the description if we didn't get handed it above - unless ($args{'DESCRIPTION'} ) { - $args{'DESCRIPTION'} = $args{'FIELD'} . " " .$args{'OPERATOR'}. " ". $args{'VALUE'} . " GMT" - } - - $self->Limit (%args); - -} - -# }}} - -# }}} - -# {{{ sub LimitKeyword - -=head2 LimitKeyword - -Takes a paramhash of key/value pairs with the following keys: - -=over 4 - -=item KEYWORDSELECT - KeywordSelect id - -=item OPERATOR - (for KEYWORD only - KEYWORDSELECT operator is always `=') - -=item KEYWORD - Keyword id - -=back - -=cut - -sub LimitKeyword { - my $self = shift; - my %args = ( KEYWORD => undef, - KEYWORDSELECT => undef, - OPERATOR => '=', - DESCRIPTION => undef, - FIELD => 'Keyword', - QUOTEVALUE => 1, - @_ - ); - - use RT::KeywordSelect; - my $KeywordSelect = RT::KeywordSelect->new($self->CurrentUser); - $KeywordSelect->Load($args{KEYWORDSELECT}); - - - # Below, We're checking to see whether the keyword we're searching for - # is null or not. - # This could probably be rewritten to be easier to read and understand - - - #If we are looking to compare with a null value. - if ($args{'OPERATOR'} =~ /is/i) { - if ($args{'OPERATOR'} =~ /^is$/i) { - $args{'DESCRIPTION'} ||= "Keyword Selection ". $KeywordSelect->Name . " has no value"; - } - elsif ($args{'OPERATOR'} =~ /^is not$/i) { - $args{'DESCRIPTION'} ||= "Keyword Selection ". $KeywordSelect->Name . " has a value"; - } - } - # if we're not looking to compare with a null value - else { - use RT::Keyword; - my $Keyword = RT::Keyword->new($self->CurrentUser); - $Keyword->Load($args{KEYWORD}); - $args{'DESCRIPTION'} ||= "Keyword Selection " . $KeywordSelect->Name. " $args{OPERATOR} ". $Keyword->Name; - } - - $args{SingleValued} = $KeywordSelect->Single(); - - - my $index = $self->_NextIndex; - %{$self->{'TicketRestrictions'}{$index}} = %args; - - $self->{'RecalcTicketLimits'} = 1; - return ($index); -} - -# }}} - -# {{{ sub _NextIndex - -=head2 _NextIndex - -Keep track of the counter for the array of restrictions - -=cut - -sub _NextIndex { - my $self = shift; - return ($self->{'restriction_index'}++); -} -# }}} - -# }}} - -# {{{ Core bits to make this a DBIx::SearchBuilder object - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Tickets"; - $self->{'RecalcTicketLimits'} = 1; - $self->{'looking_at_effective_id'} = 0; - $self->{'restriction_index'} =1; - $self->{'primary_key'} = "id"; - $self->SUPER::_Init(@_); - -} -# }}} - -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return(RT::Ticket->new($self->CurrentUser)); - -} -# }}} - -# {{{ sub Count -sub Count { - my $self = shift; - $self->_ProcessRestrictions if ($self->{'RecalcTicketLimits'} == 1 ); - return($self->SUPER::Count()); -} -# }}} - -# {{{ sub ItemsArrayRef - -=head2 ItemsArrayRef - -Returns a reference to the set of all items found in this search - -=cut - -sub ItemsArrayRef { - my $self = shift; - my @items; - - my $placeholder = $self->_ItemsCounter; - $self->GotoFirstItem(); - while (my $item = $self->Next) { - push (@items, $item); - } - - $self->GotoItem($placeholder); - return(\@items); -} -# }}} - -# {{{ sub Next -sub Next { - my $self = shift; - - $self->_ProcessRestrictions if ($self->{'RecalcTicketLimits'} == 1 ); - - my $Ticket = $self->SUPER::Next(); - if ((defined($Ticket)) and (ref($Ticket))) { - - #Make sure we _never_ show dead tickets - #TODO we should be doing this in the where clause. - #but you can't do multiple clauses on the same field just yet :/ - - if ($Ticket->Status eq 'dead') { - return($self->Next()); - } - elsif ($Ticket->CurrentUserHasRight('ShowTicket')) { - return($Ticket); - } - - #If the user doesn't have the right to show this ticket - else { - return($self->Next()); - } - } - #if there never was any ticket - else { - return(undef); - } - -} -# }}} - -# }}} - -# {{{ Deal with storing and restoring restrictions - -# {{{ sub LoadRestrictions - -=head2 LoadRestrictions - -LoadRestrictions takes a string which can fully populate the TicketRestrictons hash. -TODO It is not yet implemented - -=cut - -# }}} - -# {{{ sub DescribeRestrictions - -=head2 DescribeRestrictions - -takes nothing. -Returns a hash keyed by restriction id. -Each element of the hash is currently a one element hash that contains DESCRIPTION which -is a description of the purpose of that TicketRestriction - -=cut - -sub DescribeRestrictions { - my $self = shift; - - my ($row, %listing); - - foreach $row (keys %{$self->{'TicketRestrictions'}}) { - $listing{$row} = $self->{'TicketRestrictions'}{$row}{'DESCRIPTION'}; - } - return (%listing); -} -# }}} - -# {{{ sub RestrictionValues - -=head2 RestrictionValues FIELD - -Takes a restriction field and returns a list of values this field is restricted -to. - -=cut - -sub RestrictionValues { - my $self = shift; - my $field = shift; - map $self->{'TicketRestrictions'}{$_}{'VALUE'}, - grep { - $self->{'TicketRestrictions'}{$_}{'FIELD'} eq $field - && $self->{'TicketRestrictions'}{$_}{'OPERATOR'} eq "=" - } - keys %{$self->{'TicketRestrictions'}}; -} - -# }}} - -# {{{ sub ClearRestrictions - -=head2 ClearRestrictions - -Removes all restrictions irretrievably - -=cut - -sub ClearRestrictions { - my $self = shift; - delete $self->{'TicketRestrictions'}; - $self->{'looking_at_effective_id'} = 0; - $self->{'RecalcTicketLimits'} =1; -} - -# }}} - -# {{{ sub DeleteRestriction - -=head2 DeleteRestriction - -Takes the row Id of a restriction (From DescribeRestrictions' output, for example. -Removes that restriction from the session's limits. - -=cut - - -sub DeleteRestriction { - my $self = shift; - my $row = shift; - delete $self->{'TicketRestrictions'}{$row}; - - $self->{'RecalcTicketLimits'} = 1; - #make the underlying easysearch object forget all its preconceptions -} - -# }}} - -# {{{ sub _ProcessRestrictions - -sub _ProcessRestrictions { - my $self = shift; - - #Need to clean the EasySearch slate because it makes things too sticky - $self->CleanSlate(); - - #Blow away ticket aliases since we'll need to regenerate them for a new search - delete $self->{'TicketAliases'}; - delete $self->{KeywordsAliases}; - - my $row; - - foreach $row (keys %{$self->{'TicketRestrictions'}}) { - my $restriction = $self->{'TicketRestrictions'}{$row}; - # {{{ if it's an int - - if ($TYPES{$restriction->{'FIELD'}} eq 'INT' ) { - if ($restriction->{'OPERATOR'} =~ /^(=|!=|>|<|>=|<=)$/) { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => $restriction->{'OPERATOR'}, - VALUE => $restriction->{'VALUE'}, - ); - } - } - # }}} - # {{{ if it's an enum - elsif ($TYPES{$restriction->{'FIELD'}} eq 'ENUM') { - - if ($restriction->{'OPERATOR'} eq '=') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'OR', - OPERATOR => '=', - VALUE => $restriction->{'VALUE'}, - ); - } - elsif ($restriction->{'OPERATOR'} eq '!=') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => '!=', - VALUE => $restriction->{'VALUE'}, - ); - } - - } - # }}} - # {{{ if it's a date - - elsif ($TYPES{$restriction->{'FIELD'}} eq 'DATE') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => $restriction->{'OPERATOR'}, - VALUE => $restriction->{'VALUE'}, - ); - } - # }}} - # {{{ if it's a string - - elsif ($TYPES{$restriction->{'FIELD'}} eq 'STRING') { - - if ($restriction->{'OPERATOR'} eq '=') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'OR', - OPERATOR => '=', - VALUE => $restriction->{'VALUE'}, - CASESENSITIVE => 0 - ); - } - elsif ($restriction->{'OPERATOR'} eq '!=') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => '!=', - VALUE => $restriction->{'VALUE'}, - CASESENSITIVE => 0 - ); - } - elsif ($restriction->{'OPERATOR'} eq 'LIKE') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => 'LIKE', - VALUE => $restriction->{'VALUE'}, - CASESENSITIVE => 0 - ); - } - elsif ($restriction->{'OPERATOR'} eq 'NOT LIKE') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => 'NOT LIKE', - VALUE => $restriction->{'VALUE'}, - CASESENSITIVE => 0 - ); - } - } - - # }}} - # {{{ if it's Transaction content that we're hunting for - elsif ($TYPES{$restriction->{'FIELD'}} eq 'TRANSFIELD') { - - #Basically, we want to make sure that the limits apply to the same attachment, - #rather than just another attachment for the same ticket, no matter how many - #clauses we lump on. - #We put them in TicketAliases so that they get nuked when we redo the join. - - unless (defined $self->{'TicketAliases'}{'TransFieldAlias'}) { - $self->{'TicketAliases'}{'TransFieldAlias'} = $self->NewAlias ('Transactions'); - } - unless (defined $self->{'TicketAliases'}{'TransFieldAttachAlias'}){ - $self->{'TicketAliases'}{'TransFieldAttachAlias'} = $self->NewAlias('Attachments'); - - } - #Join transactions to attachments - $self->Join( ALIAS1 => $self->{'TicketAliases'}{'TransFieldAttachAlias'}, - FIELD1 => 'TransactionId', - ALIAS2 => $self->{'TicketAliases'}{'TransFieldAlias'}, FIELD2=> 'id'); - - #Join transactions to tickets - $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, - ALIAS2 =>$self->{'TicketAliases'}{'TransFieldAlias'}, FIELD2 => 'Ticket'); - - #Search for the right field - $self->SUPER::Limit(ALIAS => $self->{'TicketAliases'}{'TransFieldAttachAlias'}, - ENTRYAGGREGATOR => 'AND', - FIELD => $restriction->{'FIELD'}, - OPERATOR => $restriction->{'OPERATOR'} , - VALUE => $restriction->{'VALUE'}, - CASESENSITIVE => 0 - ); - - - } - - # }}} - # {{{ if it's a Transaction date that we're hunting for - elsif ($TYPES{$restriction->{'FIELD'}} eq 'TRANSDATE') { - - #Basically, we want to make sure that the limits apply to the same attachment, - #rather than just another attachment for the same ticket, no matter how many - #clauses we lump on. - #We put them in TicketAliases so that they get nuked when we redo the join. - - unless (defined $self->{'TicketAliases'}{'TransFieldAlias'}) { - $self->{'TicketAliases'}{'TransFieldAlias'} = $self->NewAlias ('Transactions'); - } - - #Join transactions to tickets - $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, - ALIAS2 =>$self->{'TicketAliases'}{'TransFieldAlias'}, FIELD2 => 'Ticket'); - - #Search for the right field - $self->SUPER::Limit(ALIAS => $self->{'TicketAliases'}{'TransFieldAlias'}, - ENTRYAGGREGATOR => 'AND', - FIELD => 'Created', - OPERATOR => $restriction->{'OPERATOR'} , - VALUE => $restriction->{'VALUE'} ); - } - - # }}} - # {{{ if it's a relationship that we're hunting for - - # Takes FIELD: which is something like "LinkedTo" - # takes TARGET or BASE which is the TARGET or BASE id that we're searching for - # takes TYPE which is the type of link we're looking for. - - elsif ($TYPES{$restriction->{'FIELD'}} eq 'LINKFIELD') { - - - my $LinkAlias = $self->NewAlias ('Links'); - - - #Make sure we get the right type of link, if we're restricting it - if ($restriction->{'TYPE'}) { - $self->SUPER::Limit(ALIAS => $LinkAlias, - ENTRYAGGREGATOR => 'AND', - FIELD => 'Type', - OPERATOR => '=', - VALUE => $restriction->{'TYPE'} ); - } - - #If we're trying to limit it to things that are target of - if ($restriction->{'TARGET'}) { - - - # If the TARGET is an integer that means that we want to look at the LocalTarget - # field. otherwise, we want to look at the "Target" field - - my ($matchfield); - if ($restriction->{'TARGET'} =~/^(\d+)$/) { - $matchfield = "LocalTarget"; - } - else { - $matchfield = "Target"; - } - - $self->SUPER::Limit(ALIAS => $LinkAlias, - ENTRYAGGREGATOR => 'AND', - FIELD => $matchfield, - OPERATOR => '=', - VALUE => $restriction->{'TARGET'} ); - - - #If we're searching on target, join the base to ticket.id - $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, - ALIAS2 => $LinkAlias, - FIELD2 => 'LocalBase'); - - - - - } - #If we're trying to limit it to things that are base of - elsif ($restriction->{'BASE'}) { - - - # If we're trying to match a numeric link, we want to look at LocalBase, - # otherwise we want to look at "Base" - - my ($matchfield); - if ($restriction->{'BASE'} =~/^(\d+)$/) { - $matchfield = "LocalBase"; - } - else { - $matchfield = "Base"; - } - - - $self->SUPER::Limit(ALIAS => $LinkAlias, - ENTRYAGGREGATOR => 'AND', - FIELD => $matchfield, - OPERATOR => '=', - VALUE => $restriction->{'BASE'} ); - - #If we're searching on base, join the target to ticket.id - $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, - ALIAS2 => $LinkAlias, - FIELD2 => 'LocalTarget'); - - } - - } - - # }}} - # {{{ if it's a watcher that we're hunting for - elsif ($TYPES{$restriction->{'FIELD'}} eq 'WATCHERFIELD') { - - my $Watch = $self->NewAlias('Watchers'); - - #Join watchers to users - my $User = $self->Join( TYPE => 'left', - ALIAS1 => $Watch, - FIELD1 => 'Owner', - TABLE2 => 'Users', - FIELD2 => 'id', - ); - - #Join Ticket to watchers - $self->Join( ALIAS1 => 'main', FIELD1 => 'id', - ALIAS2 => $Watch, FIELD2 => 'Value'); - - - #Make sure we're only talking about ticket watchers - $self->SUPER::Limit( ALIAS => $Watch, - FIELD => 'Scope', - VALUE => 'Ticket', - OPERATOR => '='); - - - # Find email address watchers - $self->SUPER::Limit( SUBCLAUSE => 'WatcherEmailAddress', - ALIAS => $Watch, - FIELD => 'Email', - ENTRYAGGREGATOR => 'OR', - VALUE => $restriction->{'VALUE'}, - OPERATOR => $restriction->{'OPERATOR'}, - CASESENSITIVE => 0 - ); - - - - #Find user watchers - $self->SUPER::Limit( - SUBCLAUSE => 'WatcherEmailAddress', - ALIAS => $User, - FIELD => 'EmailAddress', - ENTRYAGGREGATOR => 'OR', - VALUE => $restriction->{'VALUE'}, - OPERATOR => $restriction->{'OPERATOR'}, - CASESENSITIVE => 0 - ); - - - #If we only want a specific type of watchers, then limit it to that - if ($restriction->{'TYPE'}) { - $self->SUPER::Limit( ALIAS => $Watch, - FIELD => 'Type', - ENTRYAGGREGATOR => 'OR', - VALUE => $restriction->{'TYPE'}, - OPERATOR => '='); - } - } - - # }}} - # {{{ if it's a keyword - elsif ($TYPES{$restriction->{'FIELD'}} eq 'KEYWORDFIELD') { - - my $null_columns_ok; - - my $ObjKeywordsAlias; - $ObjKeywordsAlias = $self->{KeywordsAliases}{$restriction->{'KEYWORDSELECT'}} - if $restriction->{SingleValued}; - unless (defined $ObjKeywordsAlias) { - $ObjKeywordsAlias = $self->Join( - TYPE => 'left', - ALIAS1 => 'main', - FIELD1 => 'id', - TABLE2 => 'ObjectKeywords', - FIELD2 => 'ObjectId' - ); - if ($restriction->{'SingleValued'}) { - $self->{KeywordsAliases}{$restriction->{'KEYWORDSELECT'}} - = $ObjKeywordsAlias; - } - } - - - $self->SUPER::Limit( - ALIAS => $ObjKeywordsAlias, - FIELD => 'Keyword', - OPERATOR => $restriction->{'OPERATOR'}, - VALUE => $restriction->{'KEYWORD'}, - QUOTEVALUE => $restriction->{'QUOTEVALUE'}, - ENTRYAGGREGATOR => 'OR', - ); - - if ( ($restriction->{'OPERATOR'} =~ /^IS$/i) or - ($restriction->{'OPERATOR'} eq '!=') ) { - - $null_columns_ok=1; - - } - - #If we're trying to find tickets where the keyword isn't somethng, also check ones where it _IS_ null - if ( $restriction->{'OPERATOR'} eq '!=') { - $self->SUPER::Limit( - ALIAS => $ObjKeywordsAlias, - FIELD => 'Keyword', - OPERATOR => 'IS', - VALUE => 'NULL', - QUOTEVALUE => 0, - ENTRYAGGREGATOR => 'OR', - ); - } - - - $self->SUPER::Limit(LEFTJOIN => $ObjKeywordsAlias, - FIELD => 'KeywordSelect', - VALUE => $restriction->{'KEYWORDSELECT'}, - ENTRYAGGREGATOR => 'OR'); - - - - $self->SUPER::Limit( ALIAS => $ObjKeywordsAlias, - FIELD => 'ObjectType', - VALUE => 'Ticket', - ENTRYAGGREGATOR => 'AND'); - - if ($null_columns_ok) { - $self->SUPER::Limit(ALIAS => $ObjKeywordsAlias, - FIELD => 'ObjectType', - OPERATOR => 'IS', - VALUE => 'NULL', - QUOTEVALUE => 0, - ENTRYAGGREGATOR => 'OR'); - } - - } - # }}} - - - } - - - # here, we make sure we don't get any tickets that have been merged into other tickets - # (Ticket Id == Ticket EffectiveId - # note that we _really_ don't want to do this if we're already looking at the effectiveid - if ($self->_isLimited && (! $self->{'looking_at_effective_id'})) { - $self->SUPER::Limit( FIELD => 'EffectiveId', - OPERATOR => '=', - QUOTEVALUE => 0, - VALUE => 'main.id'); #TODO, we shouldn't be hard coding the tablename to main. - } - $self->{'RecalcTicketLimits'} = 0; -} - -# }}} - -# }}} - -# {{{ Deal with displaying rows of the listing - -# -# Everything in this section is stub code for 2.2 -# It's not part of the API. It's not for your use -# It's not for our use. -# - - -# {{{ sub SetListingFormat - -=head2 SetListingFormat - -Takes a single Format string as specified below. parses that format string and makes the various listing output -things DTRT. - -=item Format strings - -Format strings are made up of a chain of Elements delimited with vertical pipes (|). -Elements of a Format string - - -FormatString: Element[::FormatString] - -Element: AttributeName[;HREF=<URL>][;TITLE=<TITLE>] - -AttributeName Id | Subject | Status | Owner | Priority | InitialPriority | TimeWorked | TimeLeft | - - Keywords[;SELECT=<KeywordSelect>] | - - <Created|Starts|Started|Contacted|Due|Resolved>Date<AsString|AsISO|AsAge> - - -=cut - - - - -#accept a format string - - - -sub SetListingFormat { - my $self = shift; - my $listing_format = shift; - - my ($element, $attribs); - my $i = 0; - foreach $element (split (/::/,$listing_format)) { - if ($element =~ /^(.*?);(.*)$/) { - $element = $1; - $attribs = $2; - } - $self->{'format_string'}->[$i]->{'Element'} = $element; - foreach $attrib (split (/;/, $attribs)) { - my $value = ""; - if ($attrib =~ /^(.*?)=(.*)$/) { - $attrib = $1; - $value = $2; - } - $self->{'format_string'}->[$i]->{"$attrib"} = $val; - - } - - } - return(1); -} - -# }}} - -# {{{ sub HeaderAsHTML -sub HeaderAsHTML { - my $self = shift; - my $header = ""; - my $col; - foreach $col ( @{[ $self->{'format_string'} ]}) { - $header .= "<TH>" . $self->_ColumnTitle($self->{'format_string'}->[$col]) . "</TH>"; - - } - return ($header); -} -# }}} - -# {{{ sub HeaderAsText -#Print text header -sub HeaderAsText { - my $self = shift; - my ($header); - - return ($header); -} -# }}} - -# {{{ sub TicketAsHTMLRow -#Print HTML row -sub TicketAsHTMLRow { - my $self = shift; - my $Ticket = shift; - my ($row, $col); - foreach $col (@{[$self->{'format_string'}]}) { - $row .= "<TD>" . $self->_TicketColumnValue($ticket,$self->{'format_string'}->[$col]) . "</TD>"; - - } - return ($row); -} -# }}} - -# {{{ sub TicketAsTextRow -#Print text row -sub TicketAsTextRow { - my $self = shift; - my ($row); - - #TODO implement - - return ($row); -} -# }}} - -# {{{ _ColumnTitle { - -sub _ColumnTitle { - my $self = shift; - - # Attrib is a hash - my $attrib = shift; - - # return either attrib->{'TITLE'} or.. - if ($attrib->{'TITLE'}) { - return($attrib->{'TITLE'}); - } - # failing that, Look up the title in a hash - else { - #TODO create $self->{'ColumnTitles'}; - return ($self->{'ColumnTitles'}->{$attrib->{'Element'}}); - } - -} - -# }}} - -# {{{ _TicketColumnValue -sub _TicketColumnValue { - my $self = shift; - my $Ticket = shift; - my $attrib = shift; - - - my $out; - - SWITCH: { - /^id/i && do { - $out = $Ticket->id; - last SWITCH; - }; - /^subj/i && do { - last SWITCH; - $Ticket->Subject; - }; - /^status/i && do { - last SWITCH; - $Ticket->Status; - }; - /^prio/i && do { - last SWITCH; - $Ticket->Priority; - }; - /^finalprio/i && do { - - last SWITCH; - $Ticket->FinalPriority - }; - /^initialprio/i && do { - - last SWITCH; - $Ticket->InitialPriority; - }; - /^timel/i && do { - - last SWITCH; - $Ticket->TimeWorked; - }; - /^timew/i && do { - - last SWITCH; - $Ticket->TimeLeft; - }; - - /^(.*?)date(.*)$/i && do { - my $o = $1; - my $m = $2; - my ($obj); - #TODO: optimize - $obj = $Ticket->DueObj if $o =~ /due/i; - $obj = $Ticket->CreatedObj if $o =~ /created/i; - $obj = $Ticket->StartsObj if $o =~ /starts/i; - $obj = $Ticket->StartedObj if $o =~ /started/i; - $obj = $Ticket->ToldObj if $o =~ /told/i; - $obj = $Ticket->LastUpdatedObj if $o =~ /lastu/i; - - $method = 'ISO' if $m =~ /iso/i; - - $method = 'AsString' if $m =~ /asstring/i; - $method = 'AgeAsString' if $m =~ /age/i; - last SWITCH; - $obj->$method(); - - }; - - /^watcher/i && do { - last SWITCH; - $Ticket->WatchersAsString(); - }; - - /^requestor/i && do { - last SWITCH; - $Ticket->RequestorsAsString(); - }; - /^cc/i && do { - last SWITCH; - $Ticket->CCAsString(); - }; - - - /^admincc/i && do { - last SWITCH; - $Ticket->AdminCcAsString(); - }; - - /^keywords/i && do { - last SWITCH; - #Limit it to the keyword select we're talking about, if we've got one. - my $objkeys =$Ticket->KeywordsObj($attrib->{'SELECT'}); - $objkeys->KeywordRelativePathsAsString(); - }; - - } - -} - -# }}} - -# }}} - -# {{{ POD -=head2 notes -"Enum" Things that get Is, IsNot - - -"Int" Things that get Is LessThan and GreaterThan -id -InitialPriority -FinalPriority -Priority -TimeLeft -TimeWorked - -"Text" Things that get Is, Like -Subject -TransactionContent - - -"Link" OPERATORs - - -"Date" OPERATORs Is, Before, After - =cut -# }}} 1; diff --git a/rt/lib/RT/Tickets_Overlay.pm b/rt/lib/RT/Tickets_Overlay.pm new file mode 100644 index 000000000..d8a1ac803 --- /dev/null +++ b/rt/lib/RT/Tickets_Overlay.pm @@ -0,0 +1,2055 @@ +# 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. +# +# 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 +# Major Changes: + +# - Decimated ProcessRestrictions and broke it into multiple +# functions joined by a LUT +# - Semi-Generic SQL stuff moved to another file + +# Known Issues: FIXME! + +# - ClearRestrictions and Reinitialization is messy and unclear. The +# only good way to do it is to create a new RT::Tickets object. + +=head1 NAME + + RT::Tickets - A collection of Ticket objects + + +=head1 SYNOPSIS + + use RT::Tickets; + my $tickets = new RT::Tickets($CurrentUser); + +=head1 DESCRIPTION + + A collection of RT::Tickets. + +=head1 METHODS + +=begin testing + +ok (require RT::Tickets); + +=end testing + +=cut +use strict; +no warnings qw(redefine); +use vars qw(@SORTFIELDS); + + +# Configuration Tables: + +# FIELDS is a mapping of searchable Field name, to Type, and other +# metadata. + +my %FIELDS = + ( Status => ['ENUM'], + Queue => ['ENUM' => 'Queue',], + Type => ['ENUM',], + Creator => ['ENUM' => 'User',], + LastUpdatedBy => ['ENUM' => 'User',], + Owner => ['ENUM' => 'User',], + EffectiveId => ['INT',], + id => ['INT',], + InitialPriority => ['INT',], + FinalPriority => ['INT',], + Priority => ['INT',], + TimeLeft => ['INT',], + TimeWorked => ['INT',], + MemberOf => ['LINK' => To => 'MemberOf', ], + DependsOn => ['LINK' => To => 'DependsOn',], + RefersTo => ['LINK' => To => 'RefersTo',], + HasMember => ['LINK' => From => 'MemberOf',], + DependentOn => ['LINK' => From => 'DependsOn',], + ReferredTo => ['LINK' => From => 'RefersTo',], +# HasDepender => ['LINK',], +# RelatedTo => ['LINK',], + Told => ['DATE' => 'Told',], + Starts => ['DATE' => 'Starts',], + Started => ['DATE' => 'Started',], + Due => ['DATE' => 'Due',], + Resolved => ['DATE' => 'Resolved',], + LastUpdated => ['DATE' => 'LastUpdated',], + Created => ['DATE' => 'Created',], + Subject => ['STRING',], + Type => ['STRING',], + Content => ['TRANSFIELD',], + ContentType => ['TRANSFIELD',], + Filename => ['TRANSFIELD',], + TransactionDate => ['TRANSDATE',], + Requestor => ['WATCHERFIELD' => 'Requestor',], + CC => ['WATCHERFIELD' => 'Cc',], + AdminCC => ['WATCHERFIELD' => 'AdminCC',], + Watcher => ['WATCHERFIELD'], + LinkedTo => ['LINKFIELD',], + CustomFieldValue =>['CUSTOMFIELD',], + CF => ['CUSTOMFIELD',], + ); + +# Mapping of Field Type to Function +my %dispatch = + ( ENUM => \&_EnumLimit, + INT => \&_IntLimit, + LINK => \&_LinkLimit, + DATE => \&_DateLimit, + STRING => \&_StringLimit, + TRANSFIELD => \&_TransLimit, + TRANSDATE => \&_TransDateLimit, + WATCHERFIELD => \&_WatcherLimit, + LINKFIELD => \&_LinkFieldLimit, + CUSTOMFIELD => \&_CustomFieldLimit, + ); + +# Default EntryAggregator per type +my %DefaultEA = ( + INT => 'AND', + ENUM => { '=' => 'OR', + '!='=> 'AND' + }, + DATE => 'AND', + STRING => { '=' => 'OR', + '!='=> 'AND', + 'LIKE'=> 'AND', + 'NOT LIKE' => 'AND' + }, + TRANSFIELD => 'AND', + TRANSDATE => 'AND', + LINKFIELD => 'AND', + TARGET => 'AND', + BASE => 'AND', + WATCHERFIELD => { '=' => 'OR', + '!='=> 'AND', + 'LIKE'=> 'OR', + 'NOT LIKE' => 'AND' + }, + + CUSTOMFIELD => 'OR', + ); + + +# Helper functions for passing the above lexically scoped tables above +# into Tickets_Overlay_SQL. +sub FIELDS { return \%FIELDS } +sub dispatch { return \%dispatch } + +# Bring in the clowns. +require RT::Tickets_Overlay_SQL; + +# {{{ sub SortFields + +@SORTFIELDS = qw(id Status + Queue Subject + Owner Created Due Starts Started + Told + Resolved LastUpdated Priority TimeWorked TimeLeft); + +=head2 SortFields + +Returns the list of fields that lists of tickets can easily be sorted by + +=cut + +sub SortFields { + my $self = shift; + return(@SORTFIELDS); +} + + +# }}} + + +# BEGIN SQL STUFF ********************************* + +=head1 Limit Helper Routines + +These routines are the targets of a dispatch table depending on the +type of field. They all share the same signature: + + my ($self,$field,$op,$value,@rest) = @_; + +The values in @rest should be suitable for passing directly to +DBIx::SearchBuilder::Limit. + +Essentially they are an expanded/broken out (and much simplified) +version of what ProcessRestrictions used to do. They're also much +more clearly delineated by the TYPE of field being processed. + +=head2 _EnumLimit + +Handle Fields which are limited to certain values, and potentially +need to be looked up from another class. + +This subroutine actually handles two different kinds of fields. For +some the user is responsible for limiting the values. (i.e. Status, +Type). + +For others, the value specified by the user will be looked by via +specified class. + +Meta Data: + name of class to lookup in (Optional) + +=cut + +sub _EnumLimit { + my ($sb,$field,$op,$value,@rest) = @_; + + # SQL::Statement changes != to <>. (Can we remove this now?) + $op = "!=" if $op eq "<>"; + + die "Invalid Operation: $op for $field" + unless $op eq "=" or $op eq "!="; + + my $meta = $FIELDS{$field}; + if (defined $meta->[1]) { + my $class = "RT::" . $meta->[1]; + my $o = $class->new($sb->CurrentUser); + $o->Load( $value ); + $value = $o->Id; + } + $sb->_SQLLimit( FIELD => $field,, + VALUE => $value, + OPERATOR => $op, + @rest, + ); +} + +=head2 _IntLimit + +Handle fields where the values are limited to integers. (For example, +Priority, TimeWorked.) + +Meta Data: + None + +=cut + +sub _IntLimit { + my ($sb,$field,$op,$value,@rest) = @_; + + die "Invalid Operator $op for $field" + unless $op =~ /^(=|!=|>|<|>=|<=)$/; + + $sb->_SQLLimit( + FIELD => $field, + VALUE => $value, + OPERATOR => $op, + @rest, + ); +} + + +=head2 _LinkLimit + +Handle fields which deal with links between tickets. (MemberOf, DependsOn) + +Meta Data: + 1: Direction (From,To) + 2: Relationship Type (MemberOf, DependsOn,RefersTo) + +=cut + +sub _LinkLimit { + my ($sb,$field,$op,$value,@rest) = @_; + + die "Op must be =" + unless $op eq "="; + + my $meta = $FIELDS{$field}; + die "Incorrect Meta Data for $field" + unless (defined $meta->[1] and defined $meta->[2]); + + my $LinkAlias = $sb->NewAlias ('Links'); + + $sb->_OpenParen(); + + $sb->_SQLLimit( + ALIAS => $LinkAlias, + FIELD => 'Type', + OPERATOR => '=', + VALUE => $meta->[2], + @rest, + ); + + if ($meta->[1] eq "To") { + my $matchfield = ( $value =~ /^(\d+)$/ ? "LocalTarget" : "Target" ); + + $sb->_SQLLimit( + ALIAS => $LinkAlias, + ENTRYAGGREGATOR => 'AND', + FIELD => $matchfield, + OPERATOR => '=', + VALUE => $value , + ); + + #If we're searching on target, join the base to ticket.id + $sb->Join( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, + ALIAS2 => $LinkAlias, FIELD2 => 'LocalBase'); + + } elsif ( $meta->[1] eq "From" ) { + my $matchfield = ( $value =~ /^(\d+)$/ ? "LocalBase" : "Base" ); + + $sb->_SQLLimit( + ALIAS => $LinkAlias, + ENTRYAGGREGATOR => 'AND', + FIELD => $matchfield, + OPERATOR => '=', + VALUE => $value , + ); + + #If we're searching on base, join the target to ticket.id + $sb->Join( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, + ALIAS2 => $LinkAlias, FIELD2 => 'LocalTarget'); + + } else { + die "Invalid link direction '$meta->[1]' for $field\n"; + } + + $sb->_CloseParen(); + +} + +=head2 _DateLimit + +Handle date fields. (Created, LastTold..) + +Meta Data: + 1: type of relationship. (Probably not necessary.) + +=cut + +sub _DateLimit { + my ($sb,$field,$op,$value,@rest) = @_; + + die "Invalid Date Op: $op" + unless $op =~ /^(=|!=|>|<|>=|<=)$/; + + my $meta = $FIELDS{$field}; + die "Incorrect Meta Data for $field" + unless (defined $meta->[1]); + + require Time::ParseDate; + use POSIX 'strftime'; + + my $time = Time::ParseDate::parsedate( $value, + UK => $RT::DateDayBeforeMonth, + PREFER_PAST => $RT::AmbiguousDayInPast, + PREFER_FUTURE => !($RT::AmbiguousDayInPast)); + $value = strftime("%Y-%m-%d %H:%M",localtime($time)); + + $sb->_SQLLimit( + FIELD => $meta->[1], + OPERATOR => $op, + VALUE => $value, + @rest, + ); +} + +=head2 _StringLimit + +Handle simple fields which are just strings. (Subject,Type) + +Meta Data: + None + +=cut + +sub _StringLimit { + my ($sb,$field,$op,$value,@rest) = @_; + + # FIXME: + # Valid Operators: + # =, !=, LIKE, NOT LIKE + + $sb->_SQLLimit( + FIELD => $field, + OPERATOR => $op, + VALUE => $value, + CASESENSITIVE => 0, + @rest, + ); +} + +=head2 _TransDateLimit + +Handle fields limiting based on Transaction Date. + +The inpupt value must be in a format parseable by Time::ParseDate + +Meta Data: + None + +=cut + +sub _TransDateLimit { + my ($sb,$field,$op,$value,@rest) = @_; + + # See the comments for TransLimit, they apply here too + + $sb->{_sql_transalias} = $sb->NewAlias ('Transactions') + unless defined $sb->{_sql_transalias}; + $sb->{_sql_trattachalias} = $sb->NewAlias ('Attachments') + unless defined $sb->{_sql_trattachalias}; + + $sb->_OpenParen; + + # Join Transactions To Attachments + $sb->Join( ALIAS1 => $sb->{_sql_trattachalias}, FIELD1 => 'TransactionId', + ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'id'); + + # Join Transactions to Tickets + $sb->Join( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, # UGH! + ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'Ticket'); + + my $d = new RT::Date( $sb->CurrentUser ); + $d->Set($value); + $value = $d->ISO; + + #Search for the right field + $sb->_SQLLimit(ALIAS => $sb->{_sql_trattachalias}, + FIELD => 'Created', + OPERATOR => $op, + VALUE => $value, + CASESENSITIVE => 0, + @rest + ); + + $sb->_CloseParen; +} + +=head2 _TransLimit + +Limit based on the Content of a transaction or the ContentType. + +Meta Data: + none + +=cut + +sub _TransLimit { + # Content, ContentType, Filename + + # If only this was this simple. We've got to do something + # complicated here: + + #Basically, we want to make sure that the limits apply to + #the same attachment, rather than just another attachment + #for the same ticket, no matter how many clauses we lump + #on. We put them in TicketAliases so that they get nuked + #when we redo the join. + + # In the SQL, we might have + # (( Content = foo ) or ( Content = bar AND Content = baz )) + # The AND group should share the same Alias. + + # Actually, maybe it doesn't matter. We use the same alias and it + # works itself out? (er.. different.) + + # Steal more from _ProcessRestrictions + + # FIXME: Maybe look at the previous FooLimit call, and if it was a + # TransLimit and EntryAggregator == AND, reuse the Aliases? + + # Or better - store the aliases on a per subclause basis - since + # those are going to be the things we want to relate to each other, + # anyway. + + # maybe we should not allow certain kinds of aggregation of these + # clauses and do a psuedo regex instead? - the problem is getting + # them all into the same subclause when you have (A op B op C) - the + # way they get parsed in the tree they're in different subclauses. + + my ($sb,$field,$op,$value,@rest) = @_; + + $sb->{_sql_transalias} = $sb->NewAlias ('Transactions') + unless defined $sb->{_sql_transalias}; + $sb->{_sql_trattachalias} = $sb->NewAlias ('Attachments') + unless defined $sb->{_sql_trattachalias}; + + $sb->_OpenParen; + + # Join Transactions To Attachments + $sb->Join( ALIAS1 => $sb->{_sql_trattachalias}, FIELD1 => 'TransactionId', + ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'id'); + + # Join Transactions to Tickets + $sb->Join( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, # UGH! + ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'Ticket'); + + #Search for the right field + $sb->_SQLLimit(ALIAS => $sb->{_sql_trattachalias}, + FIELD => $field, + OPERATOR => $op, + VALUE => $value, + CASESENSITIVE => 0, + @rest + ); + + $sb->_CloseParen; + +} + +=head2 _WatcherLimit + +Handle watcher limits. (Requestor, CC, etc..) + +Meta Data: + 1: Field to query on + +=cut + +sub _WatcherLimit { + my ($self,$field,$op,$value,@rest) = @_; + my %rest = @rest; + + $self->_OpenParen; + + my $groups = $self->NewAlias('Groups'); + my $group_princs = $self->NewAlias('Principals'); + my $groupmembers = $self->NewAlias('CachedGroupMembers'); + my $member_princs = $self->NewAlias('Principals'); + my $users = $self->NewAlias('Users'); + + + #Find user watchers +# my $subclause = undef; +# my $aggregator = 'OR'; +# if ($restriction->{'OPERATOR'} =~ /!|NOT/i ){ +# $subclause = 'AndEmailIsNot'; +# $aggregator = 'AND'; +# } + + + $self->_SQLLimit(ALIAS => $users, + FIELD => $rest{SUBKEY} || 'EmailAddress', + VALUE => $value, + OPERATOR => $op, + CASESENSITIVE => 0, + @rest, + ); + + # {{{ Tie to groups for tickets we care about + $self->_SQLLimit(ALIAS => $groups, + FIELD => 'Domain', + VALUE => 'RT::Ticket-Role', + ENTRYAGGREGATOR => 'AND'); + + $self->Join(ALIAS1 => $groups, FIELD1 => 'Instance', + ALIAS2 => 'main', FIELD2 => 'id'); + # }}} + + # If we care about which sort of watcher + my $meta = $FIELDS{$field}; + my $type = ( defined $meta->[1] ? $meta->[1] : undef ); + + if ( $type ) { + $self->_SQLLimit(ALIAS => $groups, + FIELD => 'Type', + VALUE => $type, + ENTRYAGGREGATOR => 'AND'); + } + + $self->Join (ALIAS1 => $groups, FIELD1 => 'id', + ALIAS2 => $group_princs, FIELD2 => 'ObjectId'); + $self->_SQLLimit(ALIAS => $group_princs, + FIELD => 'PrincipalType', + VALUE => 'Group', + ENTRYAGGREGATOR => 'AND'); + $self->Join( ALIAS1 => $group_princs, FIELD1 => 'id', + ALIAS2 => $groupmembers, FIELD2 => 'GroupId'); + + $self->Join( ALIAS1 => $groupmembers, FIELD1 => 'MemberId', + ALIAS2 => $member_princs, FIELD2 => 'id'); + $self->Join (ALIAS1 => $member_princs, FIELD1 => 'ObjectId', + ALIAS2 => $users, FIELD2 => 'id'); + + $self->_CloseParen; + +} + +sub _LinkFieldLimit { + my $restriction; + my $self; + my $LinkAlias; + my %args; + if ($restriction->{'TYPE'}) { + $self->SUPER::Limit(ALIAS => $LinkAlias, + ENTRYAGGREGATOR => 'AND', + FIELD => 'Type', + OPERATOR => '=', + VALUE => $restriction->{'TYPE'} ); + } + + #If we're trying to limit it to things that are target of + if ($restriction->{'TARGET'}) { + # If the TARGET is an integer that means that we want to look at + # the LocalTarget field. otherwise, we want to look at the + # "Target" field + my ($matchfield); + if ($restriction->{'TARGET'} =~/^(\d+)$/) { + $matchfield = "LocalTarget"; + } else { + $matchfield = "Target"; + } + $self->SUPER::Limit(ALIAS => $LinkAlias, + ENTRYAGGREGATOR => 'AND', + FIELD => $matchfield, + OPERATOR => '=', + VALUE => $restriction->{'TARGET'} ); + #If we're searching on target, join the base to ticket.id + $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, + ALIAS2 => $LinkAlias, + FIELD2 => 'LocalBase'); + } + #If we're trying to limit it to things that are base of + elsif ($restriction->{'BASE'}) { + # If we're trying to match a numeric link, we want to look at + # LocalBase, otherwise we want to look at "Base" + my ($matchfield); + if ($restriction->{'BASE'} =~/^(\d+)$/) { + $matchfield = "LocalBase"; + } else { + $matchfield = "Base"; + } + + $self->SUPER::Limit(ALIAS => $LinkAlias, + ENTRYAGGREGATOR => 'AND', + FIELD => $matchfield, + OPERATOR => '=', + VALUE => $restriction->{'BASE'} ); + #If we're searching on base, join the target to ticket.id + $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, + ALIAS2 => $LinkAlias, + FIELD2 => 'LocalTarget') + } +} + + +=head2 KeywordLimit + +Limit based on Keywords + +Meta Data: + none + +=cut + +sub _CustomFieldLimit { + my ($self,$_field,$op,$value,@rest) = @_; + + my %rest = @rest; + my $field = $rest{SUBKEY} || die "No field specified"; + + # For our sanity, we can only limit on one queue at a time + my $queue = undef; + # Ugh. This will not do well for things with underscores in them + + use RT::CustomFields; + my $CF = RT::CustomFields->new( $self->CurrentUser ); + #$CF->Load( $cfid} ); + + my $q; + if ($field =~ /^(.+?)\.{(.+)}$/) { + my $q = RT::Queue->new($self->CurrentUser); + $q->Load($1); + $field = $2; + $CF->LimitToQueue( $q->Id ); + $queue = $q->Id; + } else { + $CF->LimitToGlobal; + } + $CF->FindAllRows; + + my $cfid = 0; + + while ( my $CustomField = $CF->Next ) { + if ($CustomField->Name eq $field) { + $cfid = $CustomField->Id; + last; + } + } + die "No custom field named $field found\n" + unless $cfid; + +# use RT::CustomFields; +# my $CF = RT::CustomField->new( $self->CurrentUser ); +# $CF->Load( $cfid ); + + + my $null_columns_ok; + my $TicketCFs = $self->Join( TYPE => 'left', + ALIAS1 => 'main', + FIELD1 => 'id', + TABLE2 => 'TicketCustomFieldValues', + FIELD2 => 'Ticket' ); + + $self->_OpenParen; + + $self->_SQLLimit( ALIAS => $TicketCFs, + FIELD => 'Content', + OPERATOR => $op, + VALUE => $value, + QUOTEVALUE => 1, + @rest ); + + if ( $op =~ /^IS$/i + or ( $op eq '!=' ) ) { + $null_columns_ok = 1; + } + + #If we're trying to find tickets where the keyword isn't somethng, + #also check ones where it _IS_ null + + if ( $op eq '!=' ) { + $self->_SQLLimit( ALIAS => $TicketCFs, + FIELD => 'Content', + OPERATOR => 'IS', + VALUE => 'NULL', + QUOTEVALUE => 0, + ENTRYAGGREGATOR => 'OR', ); + } + + $self->_SQLLimit( LEFTJOIN => $TicketCFs, + FIELD => 'CustomField', + VALUE => $cfid, + ENTRYAGGREGATOR => 'OR' ); + + + + $self->_CloseParen; + +} + + +# End Helper Functions + +# End of SQL Stuff ------------------------------------------------- + +# {{{ Limit the result set based on content + +# {{{ sub Limit + +=head2 Limit + +Takes a paramhash with the fields FIELD, OPERATOR, VALUE and DESCRIPTION +Generally best called from LimitFoo methods + +=cut +sub Limit { + my $self = shift; + my %args = ( FIELD => undef, + OPERATOR => '=', + VALUE => undef, + DESCRIPTION => undef, + @_ + ); + $args{'DESCRIPTION'} = $self->loc( + "[_1] [_2] [_3]", $args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'} + ) if (!defined $args{'DESCRIPTION'}) ; + + my $index = $self->_NextIndex; + + #make the TicketRestrictions hash the equivalent of whatever we just passed in; + + %{$self->{'TicketRestrictions'}{$index}} = %args; + + $self->{'RecalcTicketLimits'} = 1; + + # If we're looking at the effective id, we don't want to append the other clause + # which limits us to tickets where id = effective id + if ($args{'FIELD'} eq 'EffectiveId') { + $self->{'looking_at_effective_id'} = 1; + } + + if ($args{'FIELD'} eq 'Type') { + $self->{'looking_at_type'} = 1; + } + + return ($index); +} + +# }}} + + + + +=head2 FreezeLimits + +Returns a frozen string suitable for handing back to ThawLimits. + +=cut +# {{{ sub FreezeLimits + +sub FreezeLimits { + my $self = shift; + require FreezeThaw; + return (FreezeThaw::freeze($self->{'TicketRestrictions'}, + $self->{'restriction_index'} + )); +} + +# }}} + +=head2 ThawLimits + +Take a frozen Limits string generated by FreezeLimits and make this tickets +object have that set of limits. + +=cut +# {{{ sub ThawLimits + +sub ThawLimits { + my $self = shift; + my $in = shift; + + #if we don't have $in, get outta here. + return undef unless ($in); + + $self->{'RecalcTicketLimits'} = 1; + + require FreezeThaw; + + #We don't need to die if the thaw fails. + + eval { + ($self->{'TicketRestrictions'}, + $self->{'restriction_index'} + ) = FreezeThaw::thaw($in); + } + +} + +# }}} + +# {{{ Limit by enum or foreign key + +# {{{ sub LimitQueue + +=head2 LimitQueue + +LimitQueue takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of = or !=. (It defaults to =). +VALUE is a queue id or Name. + + +=cut + +sub LimitQueue { + my $self = shift; + my %args = (VALUE => undef, + OPERATOR => '=', + @_); + + #TODO VALUE should also take queue names and queue objects + #TODO FIXME why are we canonicalizing to name, not id, robrt? + if ($args{VALUE} =~ /^\d+$/) { + my $queue = new RT::Queue($self->CurrentUser); + $queue->Load($args{'VALUE'}); + $args{VALUE} = $queue->Name; + } + + # What if they pass in an Id? Check for isNum() and convert to + # string. + + #TODO check for a valid queue here + + $self->Limit (FIELD => 'Queue', + VALUE => $args{VALUE}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Queue'), $args{'OPERATOR'}, $args{VALUE}, + ), + ); + +} +# }}} + +# {{{ sub LimitStatus + +=head2 LimitStatus + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of = or !=. +VALUE is a status. + +=cut + +sub LimitStatus { + my $self = shift; + my %args = ( OPERATOR => '=', + @_); + $self->Limit (FIELD => 'Status', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Status'), $args{'OPERATOR'}, $self->loc($args{'VALUE'}) + ), + ); +} + +# }}} + +# {{{ sub IgnoreType + +=head2 IgnoreType + +If called, this search will not automatically limit the set of results found +to tickets of type "Ticket". Tickets of other types, such as "project" and +"approval" will be found. + +=cut + +sub IgnoreType { + my $self = shift; + + # Instead of faking a Limit that later gets ignored, fake up the + # fact that we're already looking at type, so that the check in + # Tickets_Overlay_SQL/FromSQL goes down the right branch + + # $self->LimitType(VALUE => '__any'); + $self->{looking_at_type} = 1; +} + +# }}} + +# {{{ sub LimitType + +=head2 LimitType + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of = or !=, it defaults to "=". +VALUE is a string to search for in the type of the ticket. + + + +=cut + +sub LimitType { + my $self = shift; + my %args = (OPERATOR => '=', + VALUE => undef, + @_); + $self->Limit (FIELD => 'Type', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Type'), $args{'OPERATOR'}, $args{'Limit'}, + ), + ); +} + +# }}} + +# }}} + +# {{{ Limit by string field + +# {{{ sub LimitSubject + +=head2 LimitSubject + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of = or !=. +VALUE is a string to search for in the subject of the ticket. + +=cut + +sub LimitSubject { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'Subject', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Subject'), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); +} + +# }}} + +# }}} + +# {{{ Limit based on ticket numerical attributes +# Things that can be > < = != + +# {{{ sub LimitId + +=head2 LimitId + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a ticket Id to search for + +=cut + +sub LimitId { + my $self = shift; + my %args = (OPERATOR => '=', + @_); + + $self->Limit (FIELD => 'id', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Id'), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); +} + +# }}} + +# {{{ sub LimitPriority + +=head2 LimitPriority + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a value to match the ticket\'s priority against + +=cut + +sub LimitPriority { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'Priority', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Priority'), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); +} + +# }}} + +# {{{ sub LimitInitialPriority + +=head2 LimitInitialPriority + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a value to match the ticket\'s initial priority against + + +=cut + +sub LimitInitialPriority { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'InitialPriority', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Initial Priority'), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); +} + +# }}} + +# {{{ sub LimitFinalPriority + +=head2 LimitFinalPriority + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a value to match the ticket\'s final priority against + +=cut + +sub LimitFinalPriority { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'FinalPriority', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Final Priority'), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); +} + +# }}} + +# {{{ sub LimitTimeWorked + +=head2 LimitTimeWorked + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a value to match the ticket's TimeWorked attribute + +=cut + +sub LimitTimeWorked { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'TimeWorked', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Time worked'), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); +} + +# }}} + +# {{{ sub LimitTimeLeft + +=head2 LimitTimeLeft + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, >, < or !=. +VALUE is a value to match the ticket's TimeLeft attribute + +=cut + +sub LimitTimeLeft { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'TimeLeft', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Time left'), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); +} + +# }}} + +# }}} + +# {{{ Limiting based on attachment attributes + +# {{{ sub LimitContent + +=head2 LimitContent + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, LIKE, NOT LIKE or !=. +VALUE is a string to search for in the body of the ticket + +=cut +sub LimitContent { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'Content', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Ticket content'), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); +} + +# }}} + +# {{{ sub LimitFilename + +=head2 LimitFilename + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, LIKE, NOT LIKE or !=. +VALUE is a string to search for in the body of the ticket + +=cut +sub LimitFilename { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'Filename', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Attachment filename'), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); +} + +# }}} +# {{{ sub LimitContentType + +=head2 LimitContentType + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of =, LIKE, NOT LIKE or !=. +VALUE is a content type to search ticket attachments for + +=cut + +sub LimitContentType { + my $self = shift; + my %args = (@_); + $self->Limit (FIELD => 'ContentType', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Ticket content type'), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); +} +# }}} + +# }}} + +# {{{ Limiting based on people + +# {{{ sub LimitOwner + +=head2 LimitOwner + +Takes a paramhash with the fields OPERATOR and VALUE. +OPERATOR is one of = or !=. +VALUE is a user id. + +=cut + +sub LimitOwner { + my $self = shift; + my %args = ( OPERATOR => '=', + @_); + + my $owner = new RT::User($self->CurrentUser); + $owner->Load($args{'VALUE'}); + # FIXME: check for a valid $owner + $self->Limit (FIELD => 'Owner', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Owner'), $args{'OPERATOR'}, $owner->Name(), + ), + ); + +} + +# }}} + +# {{{ Limiting watchers + +# {{{ sub LimitWatcher + + +=head2 LimitWatcher + + Takes a paramhash with the fields OPERATOR, TYPE and VALUE. + OPERATOR is one of =, LIKE, NOT LIKE or !=. + VALUE is a value to match the ticket\'s watcher email addresses against + TYPE is the sort of watchers you want to match against. Leave it undef if you want to search all of them + +=begin testing + +my $t1 = RT::Ticket->new($RT::SystemUser); +$t1->Create(Queue => 'general', Subject => "LimitWatchers test", Requestors => \['requestor1@example.com']); + +=end testing + +=cut + +sub LimitWatcher { + my $self = shift; + my %args = ( OPERATOR => '=', + VALUE => undef, + TYPE => undef, + @_); + + + #build us up a description + my ($watcher_type, $desc); + if ($args{'TYPE'}) { + $watcher_type = $args{'TYPE'}; + } + else { + $watcher_type = "Watcher"; + } + + $self->Limit (FIELD => $watcher_type, + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + TYPE => $args{'TYPE'}, + DESCRIPTION => join( + ' ', $self->loc($watcher_type), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); +} + + +sub LimitRequestor { + my $self = shift; + my %args = (@_); + my ($package, $filename, $line) = caller; + $RT::Logger->error("Tickets->LimitRequestor is deprecated. please rewrite call at $package - $filename: $line"); + $self->LimitWatcher(TYPE => 'Requestor', @_); + +} + +# }}} + + +# }}} + +# }}} + +# {{{ Limiting based on links + +# {{{ LimitLinkedTo + +=head2 LimitLinkedTo + +LimitLinkedTo takes a paramhash with two fields: TYPE and TARGET +TYPE limits the sort of relationship we want to search on + +TYPE = { RefersTo, MemberOf, DependsOn } + +TARGET is the id or URI of the TARGET of the link +(TARGET used to be 'TICKET'. 'TICKET' is deprecated, but will be treated as TARGET + +=cut + +sub LimitLinkedTo { + my $self = shift; + my %args = ( + TICKET => undef, + TARGET => undef, + TYPE => undef, + @_); + + $self->Limit( + FIELD => 'LinkedTo', + BASE => undef, + TARGET => ($args{'TARGET'} || $args{'TICKET'}), + TYPE => $args{'TYPE'}, + DESCRIPTION => $self->loc( + "Tickets [_1] by [_2]", $self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'}) + ), + ); +} + + +# }}} + +# {{{ LimitLinkedFrom + +=head2 LimitLinkedFrom + +LimitLinkedFrom takes a paramhash with two fields: TYPE and BASE +TYPE limits the sort of relationship we want to search on + + +BASE is the id or URI of the BASE of the link +(BASE used to be 'TICKET'. 'TICKET' is deprecated, but will be treated as BASE + + +=cut + +sub LimitLinkedFrom { + my $self = shift; + my %args = ( BASE => undef, + TICKET => undef, + TYPE => undef, + @_); + + + $self->Limit( FIELD => 'LinkedTo', + TARGET => undef, + BASE => ($args{'BASE'} || $args{'TICKET'}), + TYPE => $args{'TYPE'}, + DESCRIPTION => $self->loc( + "Tickets [_1] [_2]", $self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'}) + ), + ); +} + + +# }}} + +# {{{ LimitMemberOf +sub LimitMemberOf { + my $self = shift; + my $ticket_id = shift; + $self->LimitLinkedTo ( TARGET=> "$ticket_id", + TYPE => 'MemberOf', + ); + +} +# }}} + +# {{{ LimitHasMember +sub LimitHasMember { + my $self = shift; + my $ticket_id =shift; + $self->LimitLinkedFrom ( BASE => "$ticket_id", + TYPE => 'HasMember', + ); + +} +# }}} + +# {{{ LimitDependsOn + +sub LimitDependsOn { + my $self = shift; + my $ticket_id = shift; + $self->LimitLinkedTo ( TARGET => "$ticket_id", + TYPE => 'DependsOn', + ); + +} + +# }}} + +# {{{ LimitDependedOnBy + +sub LimitDependedOnBy { + my $self = shift; + my $ticket_id = shift; + $self->LimitLinkedFrom ( BASE => "$ticket_id", + TYPE => 'DependentOn', + ); + +} + +# }}} + + +# {{{ LimitRefersTo + +sub LimitRefersTo { + my $self = shift; + my $ticket_id = shift; + $self->LimitLinkedTo ( TARGET => "$ticket_id", + TYPE => 'RefersTo', + ); + +} + +# }}} + +# {{{ LimitReferredToBy + +sub LimitReferredToBy { + my $self = shift; + my $ticket_id = shift; + $self->LimitLinkedFrom ( BASE=> "$ticket_id", + TYPE => 'ReferredTo', + ); + +} + +# }}} + +# }}} + +# {{{ limit based on ticket date attribtes + +# {{{ sub LimitDate + +=head2 LimitDate (FIELD => 'DateField', OPERATOR => $oper, VALUE => $ISODate) + +Takes a paramhash with the fields FIELD OPERATOR and VALUE. + +OPERATOR is one of > or < +VALUE is a date and time in ISO format in GMT +FIELD is one of Starts, Started, Told, Created, Resolved, LastUpdated + +There are also helper functions of the form LimitFIELD that eliminate +the need to pass in a FIELD argument. + +=cut + +sub LimitDate { + my $self = shift; + my %args = ( + FIELD => undef, + VALUE => undef, + OPERATOR => undef, + + @_); + + #Set the description if we didn't get handed it above + unless ($args{'DESCRIPTION'} ) { + $args{'DESCRIPTION'} = $args{'FIELD'} . " " .$args{'OPERATOR'}. " ". $args{'VALUE'} . " GMT" + } + + $self->Limit (%args); + +} + +# }}} + + + + +sub LimitCreated { + my $self = shift; + $self->LimitDate( FIELD => 'Created', @_); +} +sub LimitDue { + my $self = shift; + $self->LimitDate( FIELD => 'Due', @_); + +} +sub LimitStarts { + my $self = shift; + $self->LimitDate( FIELD => 'Starts', @_); + +} +sub LimitStarted { + my $self = shift; + $self->LimitDate( FIELD => 'Started', @_); +} +sub LimitResolved { + my $self = shift; + $self->LimitDate( FIELD => 'Resolved', @_); +} +sub LimitTold { + my $self = shift; + $self->LimitDate( FIELD => 'Told', @_); +} +sub LimitLastUpdated { + my $self = shift; + $self->LimitDate( FIELD => 'LastUpdated', @_); +} +# +# {{{ sub LimitTransactionDate + +=head2 LimitTransactionDate (OPERATOR => $oper, VALUE => $ISODate) + +Takes a paramhash with the fields FIELD OPERATOR and VALUE. + +OPERATOR is one of > or < +VALUE is a date and time in ISO format in GMT + + +=cut + +sub LimitTransactionDate { + my $self = shift; + my %args = ( + FIELD => 'TransactionDate', + VALUE => undef, + OPERATOR => undef, + + @_); + + # <20021217042756.GK28744@pallas.fsck.com> + # "Kill It" - Jesse. + + #Set the description if we didn't get handed it above + unless ($args{'DESCRIPTION'} ) { + $args{'DESCRIPTION'} = $args{'FIELD'} . " " .$args{'OPERATOR'}. " ". $args{'VALUE'} . " GMT" + } + + $self->Limit (%args); + +} + +# }}} + +# }}} + +# {{{ Limit based on custom fields +# {{{ sub LimitCustomField + +=head2 LimitCustomField + +Takes a paramhash of key/value pairs with the following keys: + +=over 4 + +=item KEYWORDSELECT - KeywordSelect id + +=item OPERATOR - (for KEYWORD only - KEYWORDSELECT operator is always `=') + +=item KEYWORD - Keyword id + +=back + +=cut + +sub LimitCustomField { + my $self = shift; + my %args = ( VALUE => undef, + CUSTOMFIELD => undef, + OPERATOR => '=', + DESCRIPTION => undef, + FIELD => 'CustomFieldValue', + QUOTEVALUE => 1, + @_ ); + + use RT::CustomFields; + my $CF = RT::CustomField->new( $self->CurrentUser ); + $CF->Load( $args{CUSTOMFIELD} ); + + #If we are looking to compare with a null value. + if ( $args{'OPERATOR'} =~ /^is$/i ) { + $args{'DESCRIPTION'} ||= $self->loc("Custom field [_1] has no value.", $CF->Name); + } + elsif ( $args{'OPERATOR'} =~ /^is not$/i ) { + $args{'DESCRIPTION'} ||= $self->loc("Custom field [_1] has a value.", $CF->Name); + } + + # if we're not looking to compare with a null value + else { + $args{'DESCRIPTION'} ||= $self->loc("Custom field [_1] [_2] [_3]", $CF->Name , $args{OPERATOR} , $args{VALUE}); + } + +# my $index = $self->_NextIndex; +# %{ $self->{'TicketRestrictions'}{$index} } = %args; + + + my $q = ""; + if ($CF->Queue) { + my $qo = new RT::Queue( $self->CurrentUser ); + $qo->load( $CF->Queue ); + $q = $qo->Name; + } + + $self->Limit( VALUE => $args{VALUE}, + FIELD => "CF.".( $q + ? $q . ".{" . $CF->Name . "}" + : $CF->Name + ), + OPERATOR => $args{OPERATOR}, + CUSTOMFIELD => 1, + ); + + + $self->{'RecalcTicketLimits'} = 1; + # return ($index); +} + +# }}} +# }}} + + +# {{{ sub _NextIndex + +=head2 _NextIndex + +Keep track of the counter for the array of restrictions + +=cut + +sub _NextIndex { + my $self = shift; + return ($self->{'restriction_index'}++); +} +# }}} + +# }}} + +# {{{ Core bits to make this a DBIx::SearchBuilder object + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = "Tickets"; + $self->{'RecalcTicketLimits'} = 1; + $self->{'looking_at_effective_id'} = 0; + $self->{'looking_at_type'} = 0; + $self->{'restriction_index'} =1; + $self->{'primary_key'} = "id"; + delete $self->{'items_array'}; + delete $self->{'item_map'}; + $self->SUPER::_Init(@_); + + $self->_InitSQL; + +} +# }}} + +# {{{ sub Count +sub Count { + my $self = shift; + $self->_ProcessRestrictions() if ($self->{'RecalcTicketLimits'} == 1 ); + return($self->SUPER::Count()); +} +# }}} + +# {{{ sub CountAll +sub CountAll { + my $self = shift; + $self->_ProcessRestrictions() if ($self->{'RecalcTicketLimits'} == 1 ); + return($self->SUPER::CountAll()); +} +# }}} + + +# {{{ sub ItemsArrayRef + +=head2 ItemsArrayRef + +Returns a reference to the set of all items found in this search + +=cut + +sub ItemsArrayRef { + my $self = shift; + my @items; + + unless ( $self->{'items_array'} ) { + + my $placeholder = $self->_ItemsCounter; + $self->GotoFirstItem(); + while ( my $item = $self->Next ) { + push ( @{ $self->{'items_array'} }, $item ); + } + $self->GotoItem($placeholder); + } + return ( $self->{'items_array'} ); +} +# }}} + +# {{{ sub Next +sub Next { + my $self = shift; + + $self->_ProcessRestrictions() if ($self->{'RecalcTicketLimits'} == 1 ); + + my $Ticket = $self->SUPER::Next(); + if ((defined($Ticket)) and (ref($Ticket))) { + + #Make sure we _never_ show deleted tickets + #TODO we should be doing this in the where clause. + #but you can't do multiple clauses on the same field just yet :/ + + if ($Ticket->__Value('Status') eq 'deleted') { + return($self->Next()); + } + # Since Ticket could be granted with more rights instead + # of being revoked, it's ok if queue rights allow + # ShowTicket. It seems need another query, but we have + # rights cache in Principal::HasRight. + elsif ($Ticket->QueueObj->CurrentUserHasRight('ShowTicket') || + $Ticket->CurrentUserHasRight('ShowTicket')) { + return($Ticket); + } + + #If the user doesn't have the right to show this ticket + else { + return($self->Next()); + } + } + #if there never was any ticket + else { + return(undef); + } + +} +# }}} + +# }}} + +# {{{ Deal with storing and restoring restrictions + +# {{{ sub LoadRestrictions + +=head2 LoadRestrictions + +LoadRestrictions takes a string which can fully populate the TicketRestrictons hash. +TODO It is not yet implemented + +=cut + +# }}} + +# {{{ sub DescribeRestrictions + +=head2 DescribeRestrictions + +takes nothing. +Returns a hash keyed by restriction id. +Each element of the hash is currently a one element hash that contains DESCRIPTION which +is a description of the purpose of that TicketRestriction + +=cut + +sub DescribeRestrictions { + my $self = shift; + + my ($row, %listing); + + foreach $row (keys %{$self->{'TicketRestrictions'}}) { + $listing{$row} = $self->{'TicketRestrictions'}{$row}{'DESCRIPTION'}; + } + return (%listing); +} +# }}} + +# {{{ sub RestrictionValues + +=head2 RestrictionValues FIELD + +Takes a restriction field and returns a list of values this field is restricted +to. + +=cut + +sub RestrictionValues { + my $self = shift; + my $field = shift; + map $self->{'TicketRestrictions'}{$_}{'VALUE'}, + grep { + $self->{'TicketRestrictions'}{$_}{'FIELD'} eq $field + && $self->{'TicketRestrictions'}{$_}{'OPERATOR'} eq "=" + } + keys %{$self->{'TicketRestrictions'}}; +} + +# }}} + +# {{{ sub ClearRestrictions + +=head2 ClearRestrictions + +Removes all restrictions irretrievably + +=cut + +sub ClearRestrictions { + my $self = shift; + delete $self->{'TicketRestrictions'}; + $self->{'looking_at_effective_id'} = 0; + $self->{'looking_at_type'} = 0; + $self->{'RecalcTicketLimits'} =1; +} + +# }}} + +# {{{ sub DeleteRestriction + +=head2 DeleteRestriction + +Takes the row Id of a restriction (From DescribeRestrictions' output, for example. +Removes that restriction from the session's limits. + +=cut + + +sub DeleteRestriction { + my $self = shift; + my $row = shift; + delete $self->{'TicketRestrictions'}{$row}; + + $self->{'RecalcTicketLimits'} = 1; + #make the underlying easysearch object forget all its preconceptions +} + +# }}} + +# {{{ sub _RestrictionsToClauses + +# Convert a set of oldstyle SB Restrictions to Clauses for RQL + +sub _RestrictionsToClauses { + my $self = shift; + + my $row; + my %clause; + foreach $row (keys %{$self->{'TicketRestrictions'}}) { + my $restriction = $self->{'TicketRestrictions'}{$row}; + #use Data::Dumper; + #print Dumper($restriction),"\n"; + + # We need to reimplement the subclause aggregation that SearchBuilder does. + # Default Subclause is ALIAS.FIELD, and default ALIAS is 'main', + # Then SB AND's the different Subclauses together. + + # So, we want to group things into Subclauses, convert them to + # SQL, and then join them with the appropriate DefaultEA. + # Then join each subclause group with AND. + + my $field = $restriction->{'FIELD'}; + my $realfield = $field; # CustomFields fake up a fieldname, so + # we need to figure that out + + # One special case + # Rewrite LinkedTo meta field to the real field + if ($field =~ /LinkedTo/) { + $realfield = $field = $restriction->{'TYPE'}; + } + + # Two special case + # CustomFields have a different real field + if ($field =~ /^CF\./) { + $realfield = "CF" + } + + die "I don't know about $field yet" + unless (exists $FIELDS{$realfield} or $restriction->{CUSTOMFIELD}); + + my $type = $FIELDS{$realfield}->[0]; + my $op = $restriction->{'OPERATOR'}; + + my $value = ( grep { defined } + map { $restriction->{$_} } qw(VALUE TICKET BASE TARGET))[0]; + + # this performs the moral equivalent of defined or/dor/C<//>, + # without the short circuiting.You need to use a 'defined or' + # type thing instead of just checking for truth values, because + # VALUE could be 0.(i.e. "false") + + # You could also use this, but I find it less aesthetic: + # (although it does short circuit) + #( defined $restriction->{'VALUE'}? $restriction->{VALUE} : + # defined $restriction->{'TICKET'} ? + # $restriction->{TICKET} : + # defined $restriction->{'BASE'} ? + # $restriction->{BASE} : + # defined $restriction->{'TARGET'} ? + # $restriction->{TARGET} ) + + my $ea = $DefaultEA{$type}; + if ( ref $ea ) { + die "Invalid operator $op for $field ($type)" + unless exists $ea->{$op}; + $ea = $ea->{$op}; + } + exists $clause{$realfield} or $clause{$realfield} = []; + # Escape Quotes + $field =~ s!(['"])!\\$1!g; + $value =~ s!(['"])!\\$1!g; + my $data = [ $ea, $type, $field, $op, $value ]; + + # here is where we store extra data, say if it's a keyword or + # something. (I.e. "TYPE SPECIFIC STUFF") + + #print Dumper($data); + push @{$clause{$realfield}}, $data; + } + return \%clause; +} + +# }}} + +# {{{ sub _ProcessRestrictions + +=head2 _ProcessRestrictions PARAMHASH + +# The new _ProcessRestrictions is somewhat dependent on the SQL stuff, +# but isn't quite generic enough to move into Tickets_Overlay_SQL. + +=cut + +sub _ProcessRestrictions { + my $self = shift; + + #Blow away ticket aliases since we'll need to regenerate them for + #a new search + delete $self->{'TicketAliases'}; + delete $self->{'items_array'}; + my $sql = $self->{_sql_query}; # Violating the _SQL namespace + if (!$sql||$self->{'RecalcTicketLimits'}) { + # "Restrictions to Clauses Branch\n"; + my $clauseRef = eval { $self->_RestrictionsToClauses; }; + if ($@) { + $RT::Logger->error( "RestrictionsToClauses: " . $@ ); + $self->FromSQL(""); + } else { + $sql = $self->ClausesToSQL($clauseRef); + $self->FromSQL($sql); + } + } + + + $self->{'RecalcTicketLimits'} = 0; + +} + +=head2 _BuildItemMap + + # Build up a map of first/last/next/prev items, so that we can display search nav quickly + +=cut + +sub _BuildItemMap { + my $self = shift; + + my $items = $self->ItemsArrayRef; + my $prev = 0 ; + + delete $self->{'item_map'}; + if ($items->[0]) { + $self->{'item_map'}->{'first'} = $items->[0]->Id; + while (my $item = shift @$items ) { + my $id = $item->Id; + $self->{'item_map'}->{$id}->{'defined'} = 1; + $self->{'item_map'}->{$id}->{prev} = $prev; + $self->{'item_map'}->{$id}->{next} = $items->[0]->Id if ($items->[0]); + $prev = $id; + } + $self->{'item_map'}->{'last'} = $prev; + } +} + + +=head2 ItemMap + +Returns an a map of all items found by this search. The map is of the form + +$ItemMap->{'first'} = first ticketid found +$ItemMap->{'last'} = last ticketid found +$ItemMap->{$id}->{prev} = the tikcet id found before $id +$ItemMap->{$id}->{next} = the tikcet id found after $id + +=cut + +sub ItemMap { + my $self = shift; + $self->_BuildItemMap() unless ($self->{'item_map'}); + return ($self->{'item_map'}); +} + + + + +=cut + +} + + + +# }}} + +# }}} + +=head2 PrepForSerialization + +You don't want to serialize a big tickets object, as the {items} hash will be instantly invalid _and_ eat lots of space + +=cut + + +sub PrepForSerialization { + my $self = shift; + delete $self->{'items'}; + $self->RedoSearch(); +} + +1; + diff --git a/rt/lib/RT/Tickets_Overlay_SQL.pm b/rt/lib/RT/Tickets_Overlay_SQL.pm new file mode 100644 index 000000000..d78a56db3 --- /dev/null +++ b/rt/lib/RT/Tickets_Overlay_SQL.pm @@ -0,0 +1,382 @@ +# 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. +# +# 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 warnings; + +# Import configuration data from the lexcial scope of __PACKAGE__ (or +# at least where those two Subroutines are defined.) + +my %FIELDS = %{FIELDS()}; +my %dispatch = %{dispatch()}; + +sub _InitSQL { + my $self = shift; + + # How many of these do we actually still use? + + # Private Member Variales (which should get cleaned) + $self->{'_sql_linksc'} = 0; + $self->{'_sql_watchersc'} = 0; + $self->{'_sql_keywordsc'} = 0; + $self->{'_sql_subclause'} = "a"; + $self->{'_sql_first'} = 0; + $self->{'_sql_opstack'} = ['']; + $self->{'_sql_transalias'} = undef; + $self->{'_sql_trattachalias'} = undef; + $self->{'_sql_keywordalias'} = undef; + $self->{'_sql_depth'} = 0; + $self->{'_sql_localdepth'} = 0; + $self->{'_sql_query'} = ''; + $self->{'_sql_looking_at'} = {}; + +} + +sub _SQLLimit { + # All SQL stuff goes into one SB subclause so we can deal with all + # the aggregation + my $this = shift; + $this->SUPER::Limit(@_, + SUBCLAUSE => 'ticketsql'); +} + +# Helpers +sub _OpenParen { + $_[0]->SUPER::_OpenParen( 'ticketsql' ); +} +sub _CloseParen { + $_[0]->SUPER::_CloseParen( 'ticketsql' ); +} + +=head1 SQL Functions + +=cut + +sub _match { + # Case insensitive equality + my ($y,$x) = @_; + return 1 if $x =~ /^$y$/i; + # return 1 if ((lc $x) eq (lc $y)); # Why isnt this equiv? + return 0; +} + +=head2 Robert's Simple SQL Parser + +Documentation In Progress + +The Parser/Tokenizer is a relatively simple state machine that scans through a SQL WHERE clause type string extracting a token at a time (where a token is: + + VALUE -> quoted string or number + AGGREGator -> AND or OR + KEYWORD -> quoted string or single word + OPerator -> =,!=,LIKE,etc.. + PARENthesis -> open or close. + +And that stream of tokens is passed through the "machine" in order to build up a structure that looks like: + + KEY OP VALUE + AND KEY OP VALUE + OR KEY OP VALUE + +That also deals with parenthesis for nesting. (The parentheses are +just handed off the SearchBuilder) + +=cut + +use Regexp::Common qw /delimited/; + +# States +use constant VALUE => 1; +use constant AGGREG => 2; +use constant OP => 4; +use constant PAREN => 8; +use constant KEYWORD => 16; +my @tokens = qw[VALUE AGGREG OP PAREN KEYWORD]; + +my $re_aggreg = qr[(?i:AND|OR)]; +my $re_value = qr[$RE{delimited}{-delim=>qq{\'\"}}|\d+]; +my $re_keyword = qr[$RE{delimited}{-delim=>qq{\'\"}}|(?:\{|\}|\w|\.)+]; +my $re_op = qr[=|!=|>=|<=|>|<|(?i:IS NOT)|(?i:IS)|(?i:NOT LIKE)|(?i:LIKE)]; # long to short +my $re_paren = qr'\(|\)'; + +sub _parser { + my ($self,$string) = @_; + my $want = KEYWORD | PAREN; + my $last = undef; + + my $depth = 0; + + my ($ea,$key,$op,$value) = ("","","",""); + + while ($string =~ /( + $re_aggreg + |$re_keyword + |$re_value + |$re_op + |$re_paren + )/igx ) { + my $val = $1; + my $current = 0; + + # Highest priority is last + $current = OP if _match($re_op,$val); + $current = VALUE if _match($re_value,$val); + $current = KEYWORD if _match($re_keyword,$val) && ($want & KEYWORD); + $current = AGGREG if _match($re_aggreg,$val); + $current = PAREN if _match($re_paren,$val); + + unless ($current && $want & $current) { + # Error + # FIXME: I will only print out the highest $want value + die "Error near ->$val<- expecting a ", $tokens[((log $want)/(log 2))], " in $string\n"; + } + + # State Machine: + + # Parens are highest priority + if ($current & PAREN) { + if ($val eq "(") { + $depth++; + $self->_OpenParen; + + } else { + $depth--; + $self->_CloseParen; + } + + $want = KEYWORD | PAREN | AGGREG; + } + elsif ( $current & AGGREG ) { + $ea = $val; + $want = KEYWORD | PAREN; + } + elsif ( $current & KEYWORD ) { + $key = $val; + $want = OP; + } + elsif ( $current & OP ) { + $op = $val; + $want = VALUE; + } + elsif ( $current & VALUE ) { + $value = $val; + + # Remove surrounding quotes from $key, $val + # (in future, simplify as for($key,$val) { action on $_ }) + if ($key =~ /$RE{delimited}{-delim=>qq{\'\"}}/) { + substr($key,0,1) = ""; + substr($key,-1,1) = ""; + } + if ($val =~ /$RE{delimited}{-delim=>qq{\'\"}}/) { + substr($val,0,1) = ""; + substr($val,-1,1) = ""; + } + # Unescape escaped characters + $key =~ s!\\(.)!$1!g; + $val =~ s!\\(.)!$1!g; + # print "$ea Key=[$key] op=[$op] val=[$val]\n"; + + + my $subkey; + if ($key =~ /^(.+?)\.(.+)$/) { + $key = $1; + $subkey = $2; + } + + my $class; + my ($stdkey) = grep { /^$key$/i } (keys %FIELDS); + if ($stdkey && exists $FIELDS{$stdkey}) { + $class = $FIELDS{$key}->[0]; + $key = $stdkey; + } + # no longer have a default, since CF's are now a real class, not fallthrough + # fixme: "default class" is not Generic. + + + die "Unknown field: $key" unless $class; + + $self->{_sql_localdepth} = 0; + die "No such dispatch method: $class" + unless exists $dispatch{$class}; + my $sub = $dispatch{$class} || die;; + $sub->( + $self, + $key, + $op, + $val, + SUBCLAUSE => "", # don't need anymore + ENTRYAGGREGATOR => $ea || "", + SUBKEY => $subkey, + ); + + $self->{_sql_looking_at}{lc $key} = 1; + + ($ea,$key,$op,$value) = ("","","",""); + + $want = PAREN | AGGREG; + } else { + die "I'm lost"; + } + + $last = $current; + } # while + + die "Incomplete query" + unless (($want | PAREN) || ($want | KEYWORD)); + + die "Incomplete Query" + unless ($last && ($last | PAREN) || ($last || VALUE)); + + # This will never happen, because the parser will complain + die "Mismatched parentheses" + unless $depth == 0; + +} + + +=head2 ClausesToSQL + +=cut + +sub ClausesToSQL { + my $self = shift; + my $clauses = shift; + my @sql; + + for my $f (keys %{$clauses}) { + my $sql; + my $first = 1; + + # Build SQL from the data hash + for my $data ( @{ $clauses->{$f} } ) { + $sql .= $data->[0] unless $first; $first=0; + $sql .= " '". $data->[2] . "' "; + $sql .= $data->[3] . " "; + $sql .= "'". $data->[4] . "' "; + } + + push @sql, " ( " . $sql . " ) "; + } + + return join("AND",@sql); +} + +=head2 FromSQL + +Convert a RT-SQL string into a set of SearchBuilder restrictions. + +Returns (1, 'Status message') on success and (0, 'Error Message') on +failure. + +=cut + +sub FromSQL { + my ($self,$query) = @_; + + $self->CleanSlate; + $self->_InitSQL(); + return (1,"No Query") unless $query; + + $self->{_sql_query} = $query; + eval { $self->_parser( $query ); }; + $RT::Logger->error( $@ ) if $@; + return(0,$@) if $@; + + # We only want to look at EffectiveId's (mostly) for these searches. + unless (exists $self->{_sql_looking_at}{'effectiveid'}) { + $self->SUPER::Limit( FIELD => 'EffectiveId', + ENTRYAGGREGATOR => 'AND', + OPERATOR => '=', + QUOTEVALUE => 0, + VALUE => 'main.id' + ); #TODO, we shouldn't be hard #coding the tablename to main. + } + # FIXME: Need to bring this logic back in + + # if ($self->_isLimited && (! $self->{'looking_at_effective_id'})) { + # $self->SUPER::Limit( FIELD => 'EffectiveId', + # OPERATOR => '=', + # QUOTEVALUE => 0, + # VALUE => 'main.id'); #TODO, we shouldn't be hard coding the tablename to main. + # } + # --- This is hardcoded above. This comment block can probably go. + # Or, we need to reimplement the looking_at_effective_id toggle. + + # Unless we've explicitly asked to look at a specific Type, we need + # to limit to it. + unless ($self->{looking_at_type}) { + $self->SUPER::Limit( FIELD => 'Type', + OPERATOR => '=', + VALUE => 'ticket'); + } + + # set SB's dirty flag + $self->{'must_redo_search'} = 1; + $self->{'RecalcTicketLimits'} = 0; + + return (1,"Good Query"); + +} + + +1; + +=pod + +=head2 Exceptions + +Most of the RT code does not use Exceptions (die/eval) but it is used +in the TicketSQL code for simplicity and historical reasons. Lest you +be worried that the dies will trigger user visible errors, all are +trapped via evals. + +99% of the dies fall in subroutines called via FromSQL and then parse. +(This includes all of the _FooLimit routines in Tickets_Overlay.pm.) +The other 1% or so are via _ProcessRestrictions. + +All dies are trapped by eval {}s, and will be logged at the 'error' +log level. The general failure mode is to not display any tickets. + +=head2 General Flow + +Legacy Layer: + + Legacy LimitFoo routines build up a RestrictionsHash + + _ProcessRestrictions converts the Restrictions to Clauses + ([key,op,val,rest]). + + Clauses are converted to RT-SQL (TicketSQL) + +New RT-SQL Layer: + + FromSQL calls the parser + + The parser calls the _FooLimit routines to do DBIx::SearchBuilder + limits. + +And then the normal SearchBuilder/Ticket routines are used for +display/navigation. + +=cut + diff --git a/rt/lib/RT/Transaction.pm b/rt/lib/RT/Transaction.pm index ee1f069b2..ca491a6c7 100755 --- a/rt/lib/RT/Transaction.pm +++ b/rt/lib/RT/Transaction.pm @@ -1,783 +1,364 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Transaction.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 1999-2001 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Transaction - RT\'s transaction object +RT::Transaction + =head1 SYNOPSIS - use RT::Transaction; +=head1 DESCRIPTION +=head1 METHODS -=head1 DESCRIPTION +=cut +package RT::Transaction; +use RT::Record; +use RT::Ticket; -Each RT::Transaction describes an atomic change to a ticket object -or an update to an RT::Ticket object. -It can have arbitrary MIME attachments. +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('Transactions'); + $self->SUPER::_Init(@_); +} -=head1 METHODS -=begin testing -ok(require RT::TestHarness); -ok(require RT::Transaction); -=end testing + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + int(11) 'EffectiveTicket'. + int(11) 'Ticket'. + int(11) 'TimeTaken'. + varchar(20) 'Type'. + varchar(40) 'Field'. + varchar(255) 'OldValue'. + varchar(255) 'NewValue'. + varchar(100) 'Data'. =cut -package RT::Transaction; -use RT::Record; -@ISA= qw(RT::Record); - -use RT::Attachments; -# {{{ sub _Init -sub _Init { + +sub Create { my $self = shift; - $self->{'table'} = "Transactions"; - return ($self->SUPER::_Init(@_)); + my %args = ( + EffectiveTicket => '0', + Ticket => '0', + TimeTaken => '0', + Type => '', + Field => '', + OldValue => '', + NewValue => '', + Data => '', + + @_); + $self->SUPER::Create( + EffectiveTicket => $args{'EffectiveTicket'}, + Ticket => $args{'Ticket'}, + TimeTaken => $args{'TimeTaken'}, + Type => $args{'Type'}, + Field => $args{'Field'}, + OldValue => $args{'OldValue'}, + NewValue => $args{'NewValue'}, + Data => $args{'Data'}, +); } -# }}} -# {{{ sub Create -=head2 Create -Create a new transaction. +=item id -This routine should _never_ be called anything other Than RT::Ticket. It should not be called -from client code. Ever. Not ever. If you do this, we will hunt you down. and break your kneecaps. -Then the unpleasant stuff will start. +Returns the current value of id. +(In the database, id is stored as int(11).) -TODO: Document what gets passed to this =cut -sub Create { - my $self = shift; - my %args = ( id => undef, - TimeTaken => 0, - Ticket => 0 , - Type => 'undefined', - Data => '', - Field => undef, - OldValue => undef, - NewValue => undef, - MIMEObj => undef, - ActivateScrips => 1, - @_ - ); - - #if we didn't specify a ticket, we need to bail - unless ( $args{'Ticket'} ) { - return(0, "RT::Transaction->Create couldn't, as you didn't specify a ticket id"); - } - - #lets create our transaction - my $id = $self->SUPER::Create(Ticket => $args{'Ticket'}, - TimeTaken => $args{'TimeTaken'}, - Type => $args{'Type'}, - Data => $args{'Data'}, - Field => $args{'Field'}, - OldValue => $args{'OldValue'}, - NewValue => $args{'NewValue'}, - Created => $args{'Created'} - ); - $self->Load($id); - $self->_Attach($args{'MIMEObj'}) - if defined $args{'MIMEObj'}; - - #Provide a way to turn off scrips if we need to - if ($args{'ActivateScrips'}) { - - #We're really going to need a non-acled ticket for the scrips to work - my $TicketAsSystem = RT::Ticket->new($RT::SystemUser); - $TicketAsSystem->Load($args{'Ticket'}) || - $RT::Logger->err("$self couldn't load ticket $args{'Ticket'}\n"); - - my $TransAsSystem = RT::Transaction->new($RT::SystemUser); - $TransAsSystem->Load($self->id) || - $RT::Logger->err("$self couldn't load a copy of itself as superuser\n"); - - # {{{ Deal with Scrips - - #Load a scripscopes object - use RT::Scrips; - my $PossibleScrips = RT::Scrips->new($RT::SystemUser); - - $PossibleScrips->LimitToQueue($TicketAsSystem->QueueObj->Id); #Limit it to $Ticket->QueueObj->Id - $PossibleScrips->LimitToGlobal(); # or to "global" - my $ConditionsAlias = $PossibleScrips->NewAlias('ScripConditions'); - - $PossibleScrips->Join(ALIAS1 => 'main', FIELD1 => 'ScripCondition', - ALIAS2 => $ConditionsAlias, FIELD2=> 'id'); - - - #We only want things where the scrip applies to this sort of transaction - $PossibleScrips->Limit(ALIAS=> $ConditionsAlias, - FIELD=>'ApplicableTransTypes', - OPERATOR => 'LIKE', - VALUE => $args{'Type'}, - ENTRYAGGREGATOR => 'OR', - ); - - # Or where the scrip applies to any transaction - $PossibleScrips->Limit(ALIAS=> $ConditionsAlias, - FIELD=>'ApplicableTransTypes', - OPERATOR => 'LIKE', - VALUE => "Any", - ENTRYAGGREGATOR => 'OR', - ); - - #Iterate through each script and check it's applicability. - - while (my $Scrip = $PossibleScrips->Next()) { - - #TODO: properly deal with errors raised in this scrip loop - - #$RT::Logger->debug("$self now dealing with ".$Scrip->Id. "\n"); - eval { - local $SIG{__DIE__} = sub { $RT::Logger->error($_[0])}; - - - #Load the scrip's Condition object - $Scrip->ConditionObj->LoadCondition(TicketObj => $TicketAsSystem, - TransactionObj => $TransAsSystem); - - - #If it's applicable, prepare and commit it - - $RT::Logger->debug ("$self: Checking condition ".$Scrip->ConditionObj->Name. "...\n"); - - if ( $Scrip->IsApplicable() ) { - - $RT::Logger->debug ("$self: Matches condition ".$Scrip->ConditionObj->Name. "...\n"); - #TODO: handle some errors here - - $Scrip->ActionObj->LoadAction(TicketObj => $TicketAsSystem, - TransactionObj => $TransAsSystem); - - - if ($Scrip->Prepare()) { - $RT::Logger->debug("$self: Prepared " . - $Scrip->ActionObj->Name . "\n"); - if ($Scrip->Commit()) { - $RT::Logger->debug("$self: Committed " . - $Scrip->ActionObj->Name . "\n"); - } - else { - $RT::Logger->info("$self: Failed to commit ". - $Scrip->ActionObj->Name . "\n"); - } - } - else { - $RT::Logger->info("$self: Failed to prepare " . - $Scrip->ActionObj->Name . "\n"); - } - - #We're done with it. lets clean up. - #TODO: something else isn't letting these get garbage collected. check em out. - $Scrip->ActionObj->DESTROY(); - $Scrip->ConditionObj->DESTROY; - } - - - else { - $RT::Logger->debug ("$self: Doesn't match condition ".$Scrip->ConditionObj->Name. "...\n"); - - # TODO: why doesn't this catch all the ScripObjs we create. - # and why do we explictly need to destroy them? - $Scrip->ConditionObj->DESTROY; - } - } - } - - # }}} - - } - - return ($id, "Transaction Created"); -} -# }}} +=item EffectiveTicket -# {{{ sub Delete +Returns the current value of EffectiveTicket. +(In the database, EffectiveTicket is stored as int(11).) -sub Delete { - my $self = shift; - return (0, 'Deleting this object could break referential integrity'); -} -# }}} -# {{{ Routines dealing with Attachments +=item SetEffectiveTicket VALUE -# {{{ sub Message -=head2 Message +Set EffectiveTicket to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, EffectiveTicket will be stored as a int(11).) - Returns the RT::Attachments Object which contains the "top-level" object - attachment for this transaction =cut -sub Message { - my $self = shift; - - if (!defined ($self->{'message'}) ){ - - $self->{'message'} = new RT::Attachments($self->CurrentUser); - $self->{'message'}->Limit(FIELD => 'TransactionId', - VALUE => $self->Id); - - $self->{'message'}->ChildrenOf(0); - } - return($self->{'message'}); -} -# }}} +=item Ticket + +Returns the current value of Ticket. +(In the database, Ticket is stored as int(11).) + -# {{{ sub Content -=head2 Content PARAMHASH +=item SetTicket VALUE -If this transaction has attached mime objects, returns the first text/ part. -Otherwise, returns undef. -Takes a paramhash. If the $args{'Quote'} parameter is set, wraps this message -at $args{'Wrap'}. $args{'Wrap'} defaults to 70. +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 -sub Content { - my $self = shift; - my %args = ( Quote => 0, - Wrap => 70, - @_ ); - - my $content = undef; - - # If we don\'t have any content, return undef now. - unless ($self->Message->First) { - return (undef); - } - - # Get the set of toplevel attachments to this transaction. - my $MIMEObj = $self->Message->First(); - - # If it's a message or a plain part, just return the - # body. - if ($MIMEObj->ContentType() =~ '^(text|message)(/|$)') { - $content = $MIMEObj->Content(); - } - - # If it's a multipart object, first try returning the first - # text/plain part. - - elsif ($MIMEObj->ContentType() =~ '^multipart/') { - my $plain_parts = $MIMEObj->Children(); - $plain_parts->ContentType(VALUE => 'text/plain'); - - # If we actully found a part, return its content - if ($plain_parts->First && - $plain_parts->First->Content ne '') { - $content = $plain_parts->First->Content; - } - - # If that fails, return the first text/ or message/ part - # which has some content. - - else { - my $all_parts = $MIMEObj->Children(); - while (($content == undef) && - (my $part = $all_parts->Next)) { - if (($part->ContentType() =~ '^(text|message)(/|$)') and - ($part->Content())) { - $content = $part->Content; - } - } - } - - } - # If all else fails, return a message that we couldn't find - # any content - else { - $content = 'This transaction appears to have no content'; - } - - if ($args{'Quote'}) { - # Remove quoted signature. - $content =~ s/\n-- \n(.*)$//s; - - # What's the longest line like? - foreach (split (/\n/,$content)) { - $max=length if ( length > $max); - } - - if ($max>76) { - require Text::Wrapper; - my $wrapper=new Text::Wrapper - ( - columns => $args{'Wrap'}, - body_start => ($max > 70*3 ? ' ' : ''), - par_start => '' - ); - $content=$wrapper->wrap($content); - } - - $content =~ s/^/> /gm; - $content = '[' . $self->CreatorObj->Name() . ' - ' . $self->CreatedAsString() - . "]:\n\n" - . $content . "\n\n"; - - } - - return ($content); -} -# }}} -# {{{ sub Subject +=item TicketObj + +Returns the Ticket Object which has the id returned by Ticket -=head2 Subject -If this transaction has attached mime objects, returns the first one's subject -Otherwise, returns null - =cut -sub Subject { - my $self = shift; - if ($self->Message->First) { - return ($self->Message->First->Subject); - } - else { - return (undef); - } +sub TicketObj { + my $self = shift; + my $Ticket = RT::Ticket->new($self->CurrentUser); + $Ticket->Load($self->__Value('Ticket')); + return($Ticket); } -# }}} -# {{{ sub Attachments +=item TimeTaken + +Returns the current value of TimeTaken. +(In the database, TimeTaken is stored as int(11).) + -=head2 Attachments - Returns all the RT::Attachment objects which are attached -to this transaction. Takes an optional parameter, which is -a ContentType that Attachments should be restricted to. +=item SetTimeTaken VALUE + + +Set TimeTaken to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TimeTaken will be stored as a int(11).) + =cut -sub Attachments { - my $self = shift; - my $Types = ''; - $Types = shift if (@_); - - my $Attachments = new RT::Attachments($self->CurrentUser); - - #If it's a comment, return an empty object if they don't have the right to see it - if ($self->Type eq 'Comment') { - unless ($self->CurrentUserHasRight('ShowTicketComments')) { - return ($Attachments); - } - } - #if they ain't got rights to see, return an empty object - else { - unless ($self->CurrentUserHasRight('ShowTicket')) { - return ($Attachments); - } - } - - $Attachments->Limit(FIELD => 'TransactionId', - VALUE => $self->Id); - - # Get the attachments in the order they're put into - # the database. Arguably, we should be returning a tree - # of attachments, not a set...but no current app seems to need - # it. - - $Attachments->OrderBy(ALIAS => 'main', - FIELD => 'Id', - ORDER => 'asc'); - - if ($Types) { - $Attachments->ContentType( VALUE => "$Types", - OPERATOR => "LIKE"); - } - - - return($Attachments); - -} +=item Type -# }}} +Returns the current value of Type. +(In the database, Type is stored as varchar(20).) -# {{{ sub _Attach -=head2 _Attach -A private method used to attach a mime object to this transaction. +=item SetType VALUE + + +Set Type to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Type will be stored as a varchar(20).) + =cut -sub _Attach { - my $self = shift; - my $MIMEObject = shift; - - if (!defined($MIMEObject)) { - $RT::Logger->error("$self _Attach: We can't attach a mime object if you don't give us one.\n"); - return(0, "$self: no attachment specified"); - } - - - use RT::Attachment; - my $Attachment = new RT::Attachment ($self->CurrentUser); - $Attachment->Create(TransactionId => $self->Id, - Attachment => $MIMEObject); - return ($Attachment, "Attachment created"); - -} -# }}} +=item Field -# }}} +Returns the current value of Field. +(In the database, Field is stored as varchar(40).) -# {{{ Routines dealing with Transaction Attributes -# {{{ sub TicketObj -=head2 TicketObj +=item SetField VALUE + + +Set Field to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Field will be stored as a varchar(40).) -Returns this transaction's ticket object. =cut -sub TicketObj { - my $self = shift; - if (! exists $self->{'TicketObj'}) { - $self->{'TicketObj'} = new RT::Ticket($self->CurrentUser); - $self->{'TicketObj'}->Load($self->Ticket); - } - - return $self->{'TicketObj'}; -} -# }}} -# {{{ sub Description +=item OldValue + +Returns the current value of OldValue. +(In the database, OldValue is stored as varchar(255).) + + + +=item SetOldValue VALUE + -=head2 Description +Set OldValue to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, OldValue will be stored as a varchar(255).) -Returns a text string which describes this transaction =cut -sub Description { - my $self = shift; +=item NewValue + +Returns the current value of NewValue. +(In the database, NewValue is stored as varchar(255).) - #Check those ACLs - #If it's a comment, we need to be extra special careful - if ($self->__Value('Type') eq 'Comment') { - unless ($self->CurrentUserHasRight('ShowTicketComments')) { - return (0, "Permission Denied"); - } - } - - #if they ain't got rights to see, don't let em - else { - unless ($self->CurrentUserHasRight('ShowTicket')) { - return (0, "Permission Denied"); - } - } - - if (!defined($self->Type)) { - return("No transaction type specified"); - } - - return ($self->BriefDescription . " by " . $self->CreatorObj->Name); -} -# }}} -# {{{ sub BriefDescription +=item SetNewValue VALUE -=head2 BriefDescription -Returns a text string which briefly describes this transaction +Set NewValue to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, NewValue will be stored as a varchar(255).) + =cut -sub BriefDescription { - my $self = shift; +=item Data - #Check those ACLs - #If it's a comment, we need to be extra special careful - if ($self->__Value('Type') eq 'Comment') { - unless ($self->CurrentUserHasRight('ShowTicketComments')) { - return (0, "Permission Denied"); - } - } - - #if they ain't got rights to see, don't let em - else { - unless ($self->CurrentUserHasRight('ShowTicket')) { - return (0, "Permission Denied"); - } - } - - if (!defined($self->Type)) { - return("No transaction type specified"); - } - - if ($self->Type eq 'Create'){ - return("Ticket created"); - } - elsif ($self->Type =~ /Status/) { - if ($self->Field eq 'Status') { - if ($self->NewValue eq 'dead') { - return ("Ticket killed"); - } - else { - return( "Status changed from ". $self->OldValue . - " to ". $self->NewValue); - - } - } - # Generic: - return ($self->Field." changed from ".($self->OldValue||"(empty value)"). - " to ".$self->NewValue ); - } - - if ($self->Type eq 'Correspond') { - return("Correspondence added"); - } - - elsif ($self->Type eq 'Comment') { - return( "Comments added"); - } - - elsif ($self->Type eq 'Keyword') { - - my $field = 'Keyword'; - - if ($self->Field) { - my $keywordsel = new RT::KeywordSelect ($self->CurrentUser); - $keywordsel->Load($self->Field); - $field = $keywordsel->Name(); - } - - if ($self->OldValue eq '') { - return ($field." ".$self->NewValue." added"); - } - elsif ($self->NewValue eq '') { - return ($field." ".$self->OldValue." deleted"); - - } - else { - return ($field." ".$self->OldValue . " changed to ". - $self->NewValue); - } - } - - elsif ($self->Type eq 'Untake'){ - return( "Untaken"); - } - - elsif ($self->Type eq "Take") { - return( "Taken"); - } - - elsif ($self->Type eq "Force") { - my $Old = RT::User->new($self->CurrentUser); - $Old->Load($self->OldValue); - my $New = RT::User->new($self->CurrentUser); - $New->Load($self->NewValue); - return "Owner forcibly changed from ".$Old->Name . " to ". $New->Name; - } - elsif ($self->Type eq "Steal") { - my $Old = RT::User->new($self->CurrentUser); - $Old->Load($self->OldValue); - return "Stolen from ".$Old->Name; - } - - elsif ($self->Type eq "Give") { - my $New = RT::User->new($self->CurrentUser); - $New->Load($self->NewValue); - return( "Given to ".$New->Name); - } - - elsif ($self->Type eq 'AddWatcher'){ - return( $self->Field." ". $self->NewValue ." added"); - } - - elsif ($self->Type eq 'DelWatcher'){ - return( $self->Field." ".$self->OldValue ." deleted"); - } - - elsif ($self->Type eq 'Subject') { - return( "Subject changed to ".$self->Data); - } - elsif ($self->Type eq 'Told') { - return( "User notified"); - } - - elsif ($self->Type eq 'AddLink') { - return ($self->Data); - } - elsif ($self->Type eq 'DeleteLink') { - return ($self->Data); - } - elsif ($self->Type eq 'Set') { - if ($self->Field eq 'Queue') { - my $q1 = new RT::Queue($self->CurrentUser); - $q1->Load($self->OldValue); - my $q2 = new RT::Queue($self->CurrentUser); - $q2->Load($self->NewValue); - return ($self->Field . " changed from " . $q1->Name . " to ". - $q2->Name); - } - - # Write the date/time change at local time: - elsif ($self->Field =~ /Due|Starts|Started|Told/) { - my $t1 = new RT::Date($self->CurrentUser); - $t1->Set(Format => 'ISO', Value => $self->NewValue); - my $t2 = new RT::Date($self->CurrentUser); - $t2->Set(Format => 'ISO', Value => $self->OldValue); - return ($self->Field . " changed from " . $t2->AsString . - " to ".$t1->AsString); - } - else { - return ($self->Field . " changed from " . $self->OldValue . - " to ".$self->NewValue); - } - } - elsif ($self->Type eq 'PurgeTransaction') { - return ("Transaction ".$self->Data. " purged"); - } - else { - return ("Default: ". $self->Type ."/". $self->Field . - " changed from " . $self->OldValue . - " to ".$self->NewValue); - - } -} +Returns the current value of Data. +(In the database, Data is stored as varchar(100).) -# }}} -# {{{ Utility methods -# {{{ sub IsInbound +=item SetData VALUE -=head2 IsInbound -Returns true if the creator of the transaction is a requestor of the ticket. -Returns false otherwise +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(100).) -=cut -sub IsInbound { - my $self=shift; - return ($self->TicketObj->IsRequestor($self->CreatorObj)); -} +=cut -# }}} - -# }}} - -# {{{ sub _Accessible - -sub _Accessible { - my $self = shift; - my %Cols = ( - TimeTaken => 'read', - Ticket => 'read/public', - Type=> 'read', - Field => 'read', - Data => 'read', - NewValue => 'read', - OldValue => 'read', - Creator => 'read/auto', - Created => 'read/auto', - ); - return $self->SUPER::_Accessible(@_, %Cols); -} -# }}} +=item Creator -# }}} +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) -# {{{ sub _Set -sub _Set { - my $self = shift; - return(0, 'Transactions are immutable'); -} +=cut -# }}} -# {{{ sub _Value +=item Created -=head2 _Value +Returns the current value of Created. +(In the database, Created is stored as datetime.) -Takes the name of a table column. -Returns its value as a string, if the user passes an ACL check =cut -sub _Value { - my $self = shift; - my $field = shift; - - - #if the field is public, return it. - if ($self->_Accessible($field, 'public')) { - return($self->__Value($field)); - - } - #If it's a comment, we need to be extra special careful - if ($self->__Value('Type') eq 'Comment') { - unless ($self->CurrentUserHasRight('ShowTicketComments')) { - return (undef); - } - } - #if they ain't got rights to see, don't let em - else { - unless ($self->CurrentUserHasRight('ShowTicket')) { - return (undef); - } - } - - return($self->__Value($field)); - -} -# }}} +sub _ClassAccessible { + { + + id => + {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, type => 'int(11)', default => '0'}, + Type => + {read => 1, write => 1, type => 'varchar(20)', default => ''}, + Field => + {read => 1, write => 1, type => 'varchar(40)', default => ''}, + OldValue => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + NewValue => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + Data => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + Creator => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Created => + {read => 1, auto => 1, type => 'datetime', default => ''}, -# {{{ sub CurrentUserHasRight + } +}; -=head2 CurrentUserHasRight RIGHT -Calls $self->CurrentUser->HasQueueRight for the right passed in here. -passed in here. + eval "require RT::Transaction_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Transaction_Overlay.pm}) { + die $@; + }; -=cut + eval "require RT::Transaction_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Transaction_Vendor.pm}) { + die $@; + }; -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - return ($self->CurrentUser->HasQueueRight(Right => "$right", - TicketObj => $self->TicketObj)); -} + eval "require RT::Transaction_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Transaction_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::Transaction_Overlay, RT::Transaction_Vendor, RT::Transaction_Local + +=cut -# }}} 1; diff --git a/rt/lib/RT/Transaction_Overlay.pm b/rt/lib/RT/Transaction_Overlay.pm new file mode 100644 index 000000000..54bb326a9 --- /dev/null +++ b/rt/lib/RT/Transaction_Overlay.pm @@ -0,0 +1,817 @@ +# 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. +# +# 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::Transaction - RT\'s transaction object + +=head1 SYNOPSIS + + use RT::Transaction; + + +=head1 DESCRIPTION + + +Each RT::Transaction describes an atomic change to a ticket object +or an update to an RT::Ticket object. +It can have arbitrary MIME attachments. + + +=head1 METHODS + +=begin testing + +ok(require RT::Transaction); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +use RT::Attachments; + +# {{{ sub Create + +=head2 Create + +Create a new transaction. + +This routine should _never_ be called anything other Than RT::Ticket. It should not be called +from client code. Ever. Not ever. If you do this, we will hunt you down. and break your kneecaps. +Then the unpleasant stuff will start. + +TODO: Document what gets passed to this + +=cut + +sub Create { + my $self = shift; + my %args = ( + id => undef, + TimeTaken => 0, + Ticket => 0, + Type => 'undefined', + Data => '', + Field => undef, + OldValue => undef, + NewValue => undef, + MIMEObj => undef, + ActivateScrips => 1, + @_ + ); + + #if we didn't specify a ticket, we need to bail + unless ( $args{'Ticket'} ) { + return ( 0, $self->loc( "Transaction->Create couldn't, as you didn't specify a ticket id")); + } + + + + #lets create our transaction + my %params = (Ticket => $args{'Ticket'}, + Type => $args{'Type'}, + Data => $args{'Data'}, + Field => $args{'Field'}, + OldValue => $args{'OldValue'}, + NewValue => $args{'NewValue'}, + Created => $args{'Created'} + ); + + # Parameters passed in during an import that we probably don't want to touch, otherwise + foreach my $attr qw(id Creator Created LastUpdated TimeTaken LastUpdatedBy) { + $params{$attr} = $args{$attr} if ($args{$attr}); + } + + my $id = $self->SUPER::Create(%params); + $self->Load($id); + $self->_Attach( $args{'MIMEObj'} ) + if defined $args{'MIMEObj'}; + + #Provide a way to turn off scrips if we need to + if ( $args{'ActivateScrips'} ) { + + #We're really going to need a non-acled ticket for the scrips to work + my $TicketAsSystem = RT::Ticket->new($RT::SystemUser); + $TicketAsSystem->Load( $args{'Ticket'} ) + || $RT::Logger->err("$self couldn't load ticket $args{'Ticket'}\n"); + + my $TransAsSystem = RT::Transaction->new($RT::SystemUser); + $TransAsSystem->Load( $self->id ) + || $RT::Logger->err( + "$self couldn't load a copy of itself as superuser\n"); + # {{{ Deal with Scrips + + use RT::Scrips; + my $PossibleScrips = RT::Scrips->new($RT::SystemUser); + + $PossibleScrips->LimitToQueue( $TicketAsSystem->QueueObj->Id ) + ; #Limit it to $Ticket->QueueObj->Id + $PossibleScrips->LimitToGlobal() + unless $TicketAsSystem->QueueObj->Disabled; # or to "global" + + + $PossibleScrips->Limit(FIELD => "Stage", VALUE => "TransactionCreate"); + + + my $ConditionsAlias = $PossibleScrips->NewAlias('ScripConditions'); + + $PossibleScrips->Join( + ALIAS1 => 'main', + FIELD1 => 'ScripCondition', + ALIAS2 => $ConditionsAlias, + FIELD2 => 'id' + ); + + #We only want things where the scrip applies to this sort of transaction + $PossibleScrips->Limit( + ALIAS => $ConditionsAlias, + FIELD => 'ApplicableTransTypes', + OPERATOR => 'LIKE', + VALUE => $args{'Type'}, + ENTRYAGGREGATOR => 'OR', + ); + + # Or where the scrip applies to any transaction + $PossibleScrips->Limit( + ALIAS => $ConditionsAlias, + FIELD => 'ApplicableTransTypes', + OPERATOR => 'LIKE', + VALUE => "Any", + ENTRYAGGREGATOR => 'OR', + ); + + #Iterate through each script and check it's applicability. + + while ( my $Scrip = $PossibleScrips->Next() ) { + $Scrip->Apply (TicketObj => $TicketAsSystem, + TransactionObj => $TransAsSystem); + } + + # }}} + + } + + return ( $id, $self->loc("Transaction Created") ); +} + +# }}} + +# {{{ sub Delete + +sub Delete { + my $self = shift; + return ( 0, + $self->loc('Deleting this object could break referential integrity') ); +} + +# }}} + +# {{{ Routines dealing with Attachments + +# {{{ sub Message + +=head2 Message + + Returns the RT::Attachments Object which contains the "top-level"object + attachment for this transaction + +=cut + +sub Message { + + my $self = shift; + + if ( !defined( $self->{'message'} ) ) { + + $self->{'message'} = new RT::Attachments( $self->CurrentUser ); + $self->{'message'}->Limit( + FIELD => 'TransactionId', + VALUE => $self->Id + ); + + $self->{'message'}->ChildrenOf(0); + } + return ( $self->{'message'} ); +} + +# }}} + +# {{{ sub Content + +=head2 Content PARAMHASH + +If this transaction has attached mime objects, returns the first text/plain part. +Otherwise, returns undef. + +Takes a paramhash. If the $args{'Quote'} parameter is set, wraps this message +at $args{'Wrap'}. $args{'Wrap'} defaults to 70. + + +=cut + +sub Content { + my $self = shift; + my %args = ( + Quote => 0, + Wrap => 70, + @_ + ); + + my $content; + my $content_obj = $self->ContentObj; + if ($content_obj) { + $content = $content_obj->Content; + } + + # If all else fails, return a message that we couldn't find any content + else { + $content = $self->loc('This transaction appears to have no content'); + } + + if ( $args{'Quote'} ) { + + # Remove quoted signature. + $content =~ s/\n-- \n(.*)$//s; + + # What's the longest line like? + my $max = 0; + foreach ( split ( /\n/, $content ) ) { + $max = length if ( length > $max ); + } + + if ( $max > 76 ) { + require Text::Wrapper; + my $wrapper = new Text::Wrapper( + columns => $args{'Wrap'}, + body_start => ( $max > 70 * 3 ? ' ' : '' ), + par_start => '' + ); + $content = $wrapper->wrap($content); + } + + $content = '[' + . $self->CreatorObj->Name() . ' - ' + . $self->CreatedAsString() . "]:\n\n" . $content . "\n\n"; + $content =~ s/^/> /gm; + + } + + return ($content); +} + +# }}} + +# {{{ ContentObj + +=head2 ContentObj + +Returns the RT::Attachment object which contains the content for this Transaction + +=cut + + + +sub ContentObj { + + my $self = shift; + + # If we don\'t have any content, return undef now. + unless ( $self->Attachments->First ) { + return (undef); + } + + # Get the set of toplevel attachments to this transaction. + my $Attachment = $self->Attachments->First(); + + # If it's a message or a plain part, just return the + # body. + if ( $Attachment->ContentType() =~ '^(text/plain$|message/)' ) { + return ($Attachment); + } + + # If it's a multipart object, first try returning the first + # text/plain part. + + elsif ( $Attachment->ContentType() =~ '^multipart/' ) { + my $plain_parts = $Attachment->Children(); + $plain_parts->ContentType( VALUE => 'text/plain' ); + + # If we actully found a part, return its content + if ( $plain_parts->First && $plain_parts->First->Content ne '' ) { + return ( $plain_parts->First ); + } + + # If that fails, return the first text/plain or message/ part + # which has some content. + + else { + my $all_parts = $Attachment->Children(); + while ( my $part = $all_parts->Next ) { + if (( $part->ContentType() =~ '^(text/plain$|message/)' ) && $part->Content() ) { + return ($part); + } + } + } + + } + + # We found no content. suck + return (undef); +} + +# }}} + +# {{{ sub Subject + +=head2 Subject + +If this transaction has attached mime objects, returns the first one's subject +Otherwise, returns null + +=cut + +sub Subject { + my $self = shift; + if ( $self->Attachments->First ) { + return ( $self->Attachments->First->Subject ); + } + else { + return (undef); + } +} + +# }}} + +# {{{ sub Attachments + +=head2 Attachments + + Returns all the RT::Attachment objects which are attached +to this transaction. Takes an optional parameter, which is +a ContentType that Attachments should be restricted to. + +=cut + +sub Attachments { + my $self = shift; + + unless ( $self->{'attachments'} ) { + $self->{'attachments'} = RT::Attachments->new( $self->CurrentUser ); + + #If it's a comment, return an empty object if they don't have the right to see it + if ( $self->Type eq 'Comment' ) { + unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { + return ( $self->{'attachments'} ); + } + } + + #if they ain't got rights to see, return an empty object + else { + unless ( $self->CurrentUserHasRight('ShowTicket') ) { + return ( $self->{'attachments'} ); + } + } + + $self->{'attachments'}->Limit( FIELD => 'TransactionId', + VALUE => $self->Id ); + + # Get the self->{'attachments'} in the order they're put into + # the database. Arguably, we should be returning a tree + # of self->{'attachments'}, not a set...but no current app seems to need + # it. + + $self->{'attachments'}->OrderBy( ALIAS => 'main', + FIELD => 'id', + ORDER => 'asc' ); + + } + return ( $self->{'attachments'} ); + +} + +# }}} + +# {{{ sub _Attach + +=head2 _Attach + +A private method used to attach a mime object to this transaction. + +=cut + +sub _Attach { + my $self = shift; + my $MIMEObject = shift; + + if ( !defined($MIMEObject) ) { + $RT::Logger->error( +"$self _Attach: We can't attach a mime object if you don't give us one.\n" + ); + return ( 0, $self->loc("[_1]: no attachment specified", $self) ); + } + + my $Attachment = new RT::Attachment( $self->CurrentUser ); + $Attachment->Create( + TransactionId => $self->Id, + Attachment => $MIMEObject + ); + return ( $Attachment, $self->loc("Attachment created") ); + +} + +# }}} + +# }}} + +# {{{ Routines dealing with Transaction Attributes + +# {{{ sub Description + +=head2 Description + +Returns a text string which describes this transaction + +=cut + +sub Description { + my $self = shift; + + #Check those ACLs + #If it's a comment, we need to be extra special careful + if ( $self->__Value('Type') eq 'Comment' ) { + unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { + return ( $self->loc("Permission Denied") ); + } + } + + #if they ain't got rights to see, don't let em + else { + unless ( $self->CurrentUserHasRight('ShowTicket') ) { + return ($self->loc("Permission Denied") ); + } + } + + if ( !defined( $self->Type ) ) { + return ( $self->loc("No transaction type specified")); + } + + return ( $self->loc("[_1] by [_2]",$self->BriefDescription , $self->CreatorObj->Name )); +} + +# }}} + +# {{{ sub BriefDescription + +=head2 BriefDescription + +Returns a text string which briefly describes this transaction + +=cut + +sub BriefDescription { + my $self = shift; + + + #Check those ACLs + #If it's a comment, we need to be extra special careful + if ( $self->__Value('Type') eq 'Comment' ) { + unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { + return ( $self->loc("Permission Denied") ); + } + } + + #if they ain't got rights to see, don't let em + else { + unless ( $self->CurrentUserHasRight('ShowTicket') ) { + return ( $self->loc("Permission Denied") ); + } + } + + my $type = $self->Type; #cache this, rather than calling it 30 times + + if ( !defined( $type ) ) { + return $self->loc("No transaction type specified"); + } + + if ( $type eq 'Create' ) { + return ($self->loc("Ticket created")); + } + elsif ( $type =~ /Status/ ) { + if ( $self->Field eq 'Status' ) { + if ( $self->NewValue eq 'deleted' ) { + return ($self->loc("Ticket deleted")); + } + else { + return ( $self->loc("Status changed from [_1] to [_2]", $self->loc($self->OldValue), $self->loc($self->NewValue) )); + + } + } + + # Generic: + my $no_value = $self->loc("(no value)"); + return ( $self->loc( "[_1] changed from [_2] to [_3]", $self->Field , ( $self->OldValue || $no_value ) , $self->NewValue )); + } + + if ( $type eq 'Correspond' ) { + return $self->loc("Correspondence added"); + } + + elsif ( $type eq 'Comment' ) { + return $self->loc("Comments added"); + } + + elsif ( $type eq 'CustomField' ) { + + my $field = $self->loc('CustomField'); + + if ( $self->Field ) { + my $cf = RT::CustomField->new( $self->CurrentUser ); + $cf->Load( $self->Field ); + $field = $cf->Name(); + } + + if ( $self->OldValue eq '' ) { + return ( $self->loc("[_1] [_2] added", $field, $self->NewValue) ); + } + elsif ( $self->NewValue eq '' ) { + return ( $self->loc("[_1] [_2] deleted", $field, $self->OldValue) ); + + } + else { + return $self->loc("[_1] [_2] changed to [_3]", $field, $self->OldValue, $self->NewValue ); + } + } + + elsif ( $type eq 'Untake' ) { + return $self->loc("Untaken"); + } + + elsif ( $type eq "Take" ) { + return $self->loc("Taken"); + } + + elsif ( $type eq "Force" ) { + my $Old = RT::User->new( $self->CurrentUser ); + $Old->Load( $self->OldValue ); + my $New = RT::User->new( $self->CurrentUser ); + $New->Load( $self->NewValue ); + + return $self->loc("Owner forcibly changed from [_1] to [_2]" , $Old->Name , $New->Name); + } + elsif ( $type eq "Steal" ) { + my $Old = RT::User->new( $self->CurrentUser ); + $Old->Load( $self->OldValue ); + return $self->loc("Stolen from [_1] ", $Old->Name); + } + + elsif ( $type eq "Give" ) { + my $New = RT::User->new( $self->CurrentUser ); + $New->Load( $self->NewValue ); + return $self->loc( "Given to [_1]", $New->Name ); + } + + elsif ( $type eq 'AddWatcher' ) { + my $principal = RT::Principal->new($self->CurrentUser); + $principal->Load($self->NewValue); + return $self->loc( "[_1] [_2] added", $self->Field, $principal->Object->Name); + } + + elsif ( $type eq 'DelWatcher' ) { + my $principal = RT::Principal->new($self->CurrentUser); + $principal->Load($self->OldValue); + return $self->loc( "[_1] [_2] deleted", $self->Field, $principal->Object->Name); + } + + elsif ( $type eq 'Subject' ) { + return $self->loc( "Subject changed to [_1]", $self->Data ); + } + + elsif ( $type eq 'AddLink' ) { + my $value; + if ($self->NewValue) { + my $URI = RT::URI->new($self->CurrentUser); + $URI->FromURI($self->NewValue); + if ($URI->Resolver) { + $value = $URI->Resolver->AsString; + } else { + $value = $self->NewValue; + } + } + if ($self->Field eq 'DependsOn') { + return $self->loc("Dependency on [_1] added",$value); + } elsif ($self->Field eq 'DependedOnBy') { + return $self->loc("Dependency by [_1] added",$value); + + } elsif ($self->Field eq 'RefersTo') { + return $self->loc("Reference to [_1] added",$value); + } elsif ($self->Field eq 'ReferredToBy') { + return $self->loc("Reference by [_1] added",$value); + } elsif ($self->Field eq 'MemberOf') { + return $self->loc("Membership in [_1] added",$value); + } elsif ($self->Field eq 'HasMember') { + return $self->loc("Member [_1] added",$value); + } else { + return ( $self->Data ); + } + } + elsif ( $type eq 'DeleteLink' ) { + my $value; + if ($self->OldValue) { + my $URI = RT::URI->new($self->CurrentUser); + $URI->FromURI($self->OldValue); + if ($URI->Resolver) { + $value = $URI->Resolver->AsString; + } else { + $value = $self->OldValue; + } + } + + if ($self->Field eq 'DependsOn') { + return $self->loc("Dependency on [_1] deleted",$value); + } elsif ($self->Field eq 'DependedOnBy') { + return $self->loc("Dependency by [_1] deleted",$value); + + } elsif ($self->Field eq 'RefersTo') { + return $self->loc("Reference to [_1] deleted",$value); + } elsif ($self->Field eq 'ReferredToBy') { + return $self->loc("Reference by [_1] deleted",$value); + } elsif ($self->Field eq 'MemberOf') { + return $self->loc("Membership in [_1] deleted",$value); + } elsif ($self->Field eq 'HasMember') { + return $self->loc("Member [_1] deleted",$value); + } else { + return ( $self->Data ); + } + } + elsif ( $type eq 'Set' ) { + if ( $self->Field eq 'Queue' ) { + my $q1 = new RT::Queue( $self->CurrentUser ); + $q1->Load( $self->OldValue ); + my $q2 = new RT::Queue( $self->CurrentUser ); + $q2->Load( $self->NewValue ); + return $self->loc("[_1] changed from [_2] to [_3]", $self->Field , $q1->Name , $q2->Name); + } + + # Write the date/time change at local time: + elsif ($self->Field =~ /Due|Starts|Started|Told/) { + my $t1 = new RT::Date($self->CurrentUser); + $t1->Set(Format => 'ISO', Value => $self->NewValue); + my $t2 = new RT::Date($self->CurrentUser); + $t2->Set(Format => 'ISO', Value => $self->OldValue); + return $self->loc( "[_1] changed from [_2] to [_3]", $self->Field, $t2->AsString, $t1->AsString ); + } + else { + return $self->loc( "[_1] changed from [_2] to [_3]", $self->Field, $self->OldValue, $self->NewValue ); + } + } + elsif ( $type eq 'PurgeTransaction' ) { + return $self->loc("Transaction [_1] purged", $self->Data); + } + else { + return $self->loc( "Default: [_1]/[_2] changed from [_3] to [_4]", $type, $self->Field, $self->OldValue, $self->NewValue ); + + } +} + +# }}} + +# {{{ Utility methods + +# {{{ sub IsInbound + +=head2 IsInbound + +Returns true if the creator of the transaction is a requestor of the ticket. +Returns false otherwise + +=cut + +sub IsInbound { + my $self = shift; + return ( $self->TicketObj->IsRequestor( $self->CreatorObj->PrincipalId ) ); +} + +# }}} + +# }}} + +sub _ClassAccessible { + { + + id => { read => 1, type => 'int(11)', default => '' }, + EffectiveTicket => + { read => 1, write => 1, type => 'int(11)', default => '' }, + Ticket => + { read => 1, public => 1, type => 'int(11)', default => '' }, + TimeTaken => { read => 1, type => 'int(11)', default => '' }, + Type => { read => 1, type => 'varchar(20)', default => '' }, + Field => { read => 1, type => 'varchar(40)', default => '' }, + OldValue => { read => 1, type => 'varchar(255)', default => '' }, + NewValue => { read => 1, type => 'varchar(255)', default => '' }, + Data => { read => 1, type => 'varchar(100)', default => '' }, + Creator => { read => 1, auto => 1, type => 'int(11)', default => '' }, + Created => + { read => 1, auto => 1, type => 'datetime', default => '' }, + + } +}; + +# }}} + +# }}} + +# {{{ sub _Set + +sub _Set { + my $self = shift; + return ( 0, $self->loc('Transactions are immutable') ); +} + +# }}} + +# {{{ sub _Value + +=head2 _Value + +Takes the name of a table column. +Returns its value as a string, if the user passes an ACL check + +=cut + +sub _Value { + + my $self = shift; + my $field = shift; + + #if the field is public, return it. + if ( $self->_Accessible( $field, 'public' ) ) { + return ( $self->__Value($field) ); + + } + + #If it's a comment, we need to be extra special careful + if ( $self->__Value('Type') eq 'Comment' ) { + unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { + return (undef); + } + } + + #if they ain't got rights to see, don't let em + else { + unless ( $self->CurrentUserHasRight('ShowTicket') ) { + return (undef); + } + } + + return ( $self->__Value($field) ); + +} + +# }}} + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight RIGHT + +Calls $self->CurrentUser->HasQueueRight for the right passed in here. +passed in here. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + return ( + $self->CurrentUser->HasRight( + Right => "$right", + Object => $self->TicketObj + ) + ); +} + +# }}} + +1; diff --git a/rt/lib/RT/Transactions.pm b/rt/lib/RT/Transactions.pm index 2ae98f286..23a475ac6 100755 --- a/rt/lib/RT/Transactions.pm +++ b/rt/lib/RT/Transactions.pm @@ -1,78 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Transactions.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Transactions - a collection of RT Transaction objects +=head1 NAME + RT::Transactions -- Class Description + =head1 SYNOPSIS - use RT::Transactions; - + use RT::Transactions =head1 DESCRIPTION =head1 METHODS -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Transactions); - -=end testing - =cut package RT::Transactions; -use RT::EasySearch; -@ISA= qw(RT::EasySearch); +use RT::SearchBuilder; use RT::Transaction; -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'table'} = "Transactions"; - $self->{'primary_key'} = "id"; - - # By default, order by the date of the transaction, rather than ID. - $self->OrderBy( ALIAS => 'main', - FIELD => 'Created', - ORDER => 'ASC'); - - return ( $self->SUPER::_Init(@_)); +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + + +sub _Init { + my $self = shift; + $self->{'table'} = 'Transactions'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub NewItem -sub NewItem { + +=item NewItem + +Returns an empty new RT::Transaction item + +=cut + +sub NewItem { my $self = shift; - return(RT::Transaction->new($self->CurrentUser)); } -# }}} + + eval "require RT::Transactions_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Transactions_Overlay.pm}) { + die $@; + }; + + eval "require RT::Transactions_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Transactions_Vendor.pm}) { + die $@; + }; + + eval "require RT::Transactions_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Transactions_Local.pm}) { + die $@; + }; -=head2 example methods - Queue RT::Queue or Queue Id - Ticket RT::Ticket or Ticket Id +=head1 SEE ALSO -LimitDate - -Type TRANSTYPE -Field STRING -OldValue OLDVAL -NewValue NEWVAL -Data DATA -TimeTaken -Actor USEROBJ/USERID -ContentMatches STRING +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::Transactions_Overlay, RT::Transactions_Vendor, RT::Transactions_Local =cut 1; - diff --git a/rt/lib/RT/Transactions_Overlay.pm b/rt/lib/RT/Transactions_Overlay.pm new file mode 100644 index 000000000..3a7d4c14f --- /dev/null +++ b/rt/lib/RT/Transactions_Overlay.pm @@ -0,0 +1,86 @@ +# 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. +# +# 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::Transactions - a collection of RT Transaction objects + +=head1 SYNOPSIS + + use RT::Transactions; + + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok (require RT::Transactions); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +# {{{ sub _Init +sub _Init { + my $self = shift; + + $self->{'table'} = "Transactions"; + $self->{'primary_key'} = "id"; + + # By default, order by the date of the transaction, rather than ID. + $self->OrderBy( ALIAS => 'main', + FIELD => 'Created', + ORDER => 'ASC'); + + return ( $self->SUPER::_Init(@_)); +} +# }}} + +=head2 example methods + + Queue RT::Queue or Queue Id + Ticket RT::Ticket or Ticket Id + + +LimitDate + +Type TRANSTYPE +Field STRING +OldValue OLDVAL +NewValue NEWVAL +Data DATA +TimeTaken +Actor USEROBJ/USERID +ContentMatches STRING + +=cut + + +1; + diff --git a/rt/lib/RT/URI.pm b/rt/lib/RT/URI.pm new file mode 100644 index 000000000..7acc1dc98 --- /dev/null +++ b/rt/lib/RT/URI.pm @@ -0,0 +1,244 @@ +# 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. +# +# 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;; + +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Base); + +use RT::URI::base; +use Carp; + +=head1 NAME + +RT::URI + +=head1 DESCRIPTION + +This class provides a base class for URIs, such as those handled +by RT::Link objects. + +=head1 API + + + +=cut + + + + +=head2 new + +Create a new RT::URI object. + +=cut + + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $self = {}; + bless( $self, $class ); + + $self->CurrentUser(@_); + + return ($self); +} + + + +# {{{ FromObject + +=head2 FromObject <Object> + +Given a local object, such as an RT::Ticket or an RT::FM::Article, this routine will return a URI for +the local object + +=cut + +sub FromObject { + my $self = shift; + my $obj = shift; + + return undef unless $obj->can('URI'); + return $self->FromURI($obj->URI); +} + +# }}} + +# {{{ FromURI + +=head2 FromURI <URI> + +Returns a local object id for this content. You are expected to know what sort of object this is the Id +of + +=cut + +sub FromURI { + my $self = shift; + my $uri = shift; + + return undef unless ($uri); + + my $scheme; + # Special case: integers passed in as URIs must be ticket ids + if ($uri =~ /^(\d+)$/) { + $scheme = "fsck.com-rt"; + } elsif ($uri =~ /^((?:\w|\.|-)+?):/) { + $scheme = $1; + } + else { + $RT::Logger->warning("$self Could not determine a URI scheme for $uri"); + return (undef); + } + + # load up a resolver object for this scheme + $self->_GetResolver($scheme); + + unless ($self->Resolver->ParseURI($uri)) { + $RT::Logger->warning("Resolver ".ref($self->Resolver)." could not parse $uri"); + return (undef); + } + +} + +# }}} + +# {{{ _GetResolver + +=private _GetResolver <scheme> + +Gets an RT URI resolver for the scheme <scheme>. +Falls back to a null resolver. RT::URI::base. + +=cut + +sub _GetResolver { + my $self = shift; + my $scheme = shift; + + $scheme =~ s/(\.|-)/_/g; + my $resolver; + + + eval " + require RT::URI::$scheme; + \$resolver = RT::URI::$scheme->new(\$self->CurrentUser); + "; + + if ($resolver) { + $self->{'resolver'} = $resolver; + } else { + $self->{'resolver'} = RT::URI::base->new($self->CurrentUser); + } + +} + +# }}} + +# {{{ Scheme + +=head2 Scheme + +Returns a local object id for this content. You are expected to know what sort of object this is the Id +of + +=cut + +sub Scheme { + my $self = shift; + return ($self->Resolver->Scheme); + +} +# }}} +# {{{ URI + +=head2 URI + +Returns a local object id for this content. You are expected to know what sort of object this is the Id +of + +=cut + +sub URI { + my $self = shift; + return ($self->Resolver->URI); + +} +# }}} + +# {{{ Object + +=head2 Object + +Returns a local object for this content. This will usually be an RT::Ticket or somesuch + +=cut + + +sub Object { + my $self = shift; + return($self->Resolver->Object); + +} + + +# }}} + +# {{{ IsLocal + +=head2 IsLocal + +Returns a local object for this content. This will usually be an RT::Ticket or somesuch + +=cut + +sub IsLocal { + my $self = shift; + return $self->Resolver->IsLocal; +} + + +# }}} + + +=head Resolver + +Returns this URI's URI resolver object + +=cut + + +sub Resolver { + my $self =shift; + return ($self->{'resolver'}); +} + +eval "require RT::URI_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/URI_Vendor.pm}); +eval "require RT::URI_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/URI_Local.pm}); + +1; diff --git a/rt/lib/RT/URI/base.pm b/rt/lib/RT/URI/base.pm new file mode 100644 index 000000000..a599f3ad8 --- /dev/null +++ b/rt/lib/RT/URI/base.pm @@ -0,0 +1,129 @@ +# 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. +# +# 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::base; + +use strict; +use base qw(RT::Base); + +=head1 NAME + +RT::URI::base + +=head1 DESCRIPTION + +A baseclass (and fallback) RT::URI handler. Every URI handler needs to +handle the API presented here + +=cut + + +=head1 API + +=head2 new + +Create a new URI handler + +=cut + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $self = {}; + bless( $self, $class ); + $self->CurrentUser(@_); + return ($self); +} + +sub ParseObject { + my $self = shift; + my $obj = shift; + $self->{'uri'} = "unknown-object:".ref($obj); + + +} + + + +sub ParseURI { + my $self = shift; + my $uri = shift; + + if ($uri =~ /^(.*?):/) { + $self->{'scheme'} = $1; + } + $self->{'uri'} = $uri; + + +} + + +sub Object { + my $self = shift; + return undef; + +} + +sub URI { + my $self = shift; + return($self->{'uri'}); +} + +sub Scheme { + my $self = shift; + return($self->{'scheme'}); + +} + +sub HREF { + my $self = shift; + return($self->{'href'} || $self->{'uri'}); +} + +sub IsLocal { + my $self = shift; + return undef; +} + +=head2 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; + return $self->URI; +} + +eval "require RT::URI::base_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/URI/base_Vendor.pm}); +eval "require RT::URI::base_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/URI/base_Local.pm}); + +1; diff --git a/rt/lib/RT/URI/fsck_com_rt.pm b/rt/lib/RT/URI/fsck_com_rt.pm new file mode 100644 index 000000000..36e8f82fd --- /dev/null +++ b/rt/lib/RT/URI/fsck_com_rt.pm @@ -0,0 +1,247 @@ +# 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. +# +# 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::fsck_com_rt; + +use RT::Ticket; + +use RT::URI::base; + +use strict; +use vars qw(@ISA); +@ISA = qw/RT::URI::base/; + + + + +=head2 LocalURIPrefix + +Returns the prefix for a local ticket URI + +=begin testing + +use_ok("RT::URI::fsck_com_rt"); +my $uri = RT::URI::fsck_com_rt->new($RT::SystemUser); + +ok(ref($uri)); + +use Data::Dumper; + + +ok (UNIVERSAL::isa($uri,RT::URI::fsck_com_rt), "It's an RT::URI::fsck_com_rt"); + +ok ($uri->isa('RT::URI::base'), "It's an RT::URI::base"); +ok ($uri->isa('RT::Base'), "It's an RT::Base"); + +is ($uri->LocalURIPrefix , 'fsck.com-rt://example.com/ticket/'); + +=end testing + + + +=cut + +sub LocalURIPrefix { + my $self = shift; + my $prefix = $self->Scheme. "://$RT::Organization/ticket/"; + return ($prefix); +} + + + + + +=head2 URIForObject RT::Ticket + +Returns the RT URI for a local RT::Ticket object + +=begin testing + +my $ticket = RT::Ticket->new($RT::SystemUser); +$ticket->Load(1); +my $uri = RT::URI::fsck_com_rt->new($ticket->CurrentUser); +is($uri->LocalURIPrefix . "1" , $uri->URIForObject($ticket)); + +=end testing + +=cut + +sub URIForObject { + + my $self = shift; + + my $obj = shift; + return ($self->LocalURIPrefix. $obj->Id); +} + + +=head2 ParseObject $TicketObj + +When handed an RT::Ticekt object, figure out its URI + + +=cut + + + +=head2 ParseURI URI + +When handed an fsck.com-rt: URI, figures out things like whether its a local ticket +and what its ID is + +=cut + + +sub ParseURI { + my $self = shift; + my $uri = shift; + + my $ticket; + + if ($uri =~ /^(\d+)$/) { + $ticket = RT::Ticket->new($self->CurrentUser); + $ticket->Load($uri); + $self->{'uri'} = $ticket->URI; + } + else { + $self->{'uri'} = $uri; + } + + + + #If it's a local URI, load the ticket object and return its URI + if ( $self->IsLocal) { + + my $local_uri_prefix = $self->LocalURIPrefix; + if ($self->{'uri'} =~ /^$local_uri_prefix(\d+)$/) { + my $id = $1; + + + $ticket = RT::Ticket->new( $self->CurrentUser ); + $ticket->Load($id); + + #If we couldn't find a ticket, return undef. + unless ( defined $ticket->Id ) { + return undef; + } + } else { + return undef; + } + } + + $self->{'object'} = $ticket; + if ( UNIVERSAL::can( $ticket, 'Id' ) ) { + return ( $ticket->Id ); + } + else { + return undef; + } +} + +=head2 IsLocal + +Returns true if this URI is for a local ticket. +Returns undef otherwise. + + + +=cut + +sub IsLocal { + my $self = shift; + my $local_uri_prefix = $self->LocalURIPrefix; + if ($self->{'uri'} =~ /^$local_uri_prefix/) { + return 1; + } + else { + return undef; + } +} + + + +=head2 Object + +Returns the object for this URI, if it's local. Otherwise returns undef. + +=cut + +sub Object { + my $self = shift; + return ($self->{'object'}); + +} + +=head2 Scheme + +Return the URI scheme for RT tickets + +=cut + + +sub Scheme { + my $self = shift; + return "fsck.com-rt"; +} + +=head2 HREF + +If this is a local ticket, return an HTTP url to it. +Otherwise, return its URI + +=cut + + +sub HREF { + my $self = shift; + if ($self->IsLocal) { + return ( $RT::WebURL . "Ticket/Display.html?id=".$self->Object->Id); + } + else { + return ($self->URI); + } +} + +=head2 AsString + +Returns either a localized string 'ticket #23' or the full URI if the object is not local + +=cut + +sub AsString { + my $self = shift; + if ($self->IsLocal) { + return $self->loc("ticket #[_1]", $self->Object->Id); + + } + else { + return $self->Object->URI; + } +} + +eval "require RT::URI::fsck_com_rt_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/URI/fsck_com_rt_Vendor.pm}); +eval "require RT::URI::fsck_com_rt_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/URI/fsck_com_rt_Local.pm}); + +1; diff --git a/rt/lib/RT/User.pm b/rt/lib/RT/User.pm index 4e8554030..cbc10f5b4 100755 --- a/rt/lib/RT/User.pm +++ b/rt/lib/RT/User.pm @@ -1,1222 +1,854 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/User.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::User - RT User object +RT::User -=head1 SYNOPSIS - use RT::User; +=head1 SYNOPSIS =head1 DESCRIPTION - =head1 METHODS -=begin testing +=cut + +package RT::User; +use RT::Record; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('Users'); + $self->SUPER::_Init(@_); +} -ok(require RT::TestHarness); -ok(require RT::User); -=end testing + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(200) 'Name'. + varchar(40) 'Password'. + blob 'Comments'. + blob 'Signature'. + varchar(120) 'EmailAddress'. + blob 'FreeformContactInfo'. + varchar(200) 'Organization'. + varchar(120) 'RealName'. + varchar(16) 'NickName'. + varchar(16) 'Lang'. + varchar(16) 'EmailEncoding'. + varchar(16) 'WebEncoding'. + varchar(100) 'ExternalContactInfoId'. + varchar(30) 'ContactInfoSystem'. + varchar(100) 'ExternalAuthId'. + varchar(30) 'AuthSystem'. + varchar(16) 'Gecos'. + varchar(30) 'HomePhone'. + varchar(30) 'WorkPhone'. + varchar(30) 'MobilePhone'. + varchar(30) 'PagerPhone'. + varchar(200) 'Address1'. + varchar(200) 'Address2'. + varchar(100) 'City'. + varchar(100) 'State'. + varchar(16) 'Zip'. + varchar(50) 'Country'. + varchar(50) 'Timezone'. + text 'PGPKey'. + =cut -package RT::User; -use RT::Record; -@ISA= qw(RT::Record); -# {{{ sub _Init -sub _Init { + +sub Create { my $self = shift; - $self->{'table'} = "Users"; - return($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub _Accessible - -sub _Accessible { - my $self = shift; - my %Cols = ( - # {{{ Core RT info - Name => 'public/read/write/admin', - Password => 'write', - Comments => 'read/write/admin', - Signature => 'read/write', - EmailAddress => 'public/read/write', - PagerEmailAddress => 'read/write', - FreeformContactInfo => 'read/write', - Organization => 'public/read/write/admin', - Disabled => 'public/read/write/admin', #To modify this attribute, we have helper - #methods - Privileged => 'read/write/admin', # 0=no 1=user 2=system - - # }}} - - # {{{ Names - - RealName => 'public/read/write', - NickName => 'public/read/write', - # }}} - - # {{{ Localization and Internationalization - Lang => 'public/read/write', - EmailEncoding => 'public/read/write', - WebEncoding => 'public/read/write', - # }}} - - # {{{ External ContactInfo Linkage - ExternalContactInfoId => 'public/read/write/admin', - ContactInfoSystem => 'public/read/write/admin', - # }}} - - # {{{ User Authentication identifier - ExternalAuthId => 'public/read/write/admin', - #Authentication system used for user - AuthSystem => 'public/read/write/admin', - Gecos => 'public/read/write/admin', #Gecos is the name of the fields in a - # unix passwd file. In this case, it refers to "Unix Username" - # }}} - - # {{{ Telephone numbers - HomePhone => 'read/write', - WorkPhone => 'read/write', - MobilePhone => 'read/write', - PagerPhone => 'read/write', - - # }}} - - # {{{ Paper Address - Address1 => 'read/write', - Address2 => 'read/write', - City => 'read/write', - State => 'read/write', - Zip => 'read/write', - Country => 'read/write', - # }}} - - # {{{ Core DBIx::Record Attributes - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - - # }}} - ); - return($self->SUPER::_Accessible(@_, %Cols)); + my %args = ( + Name => '', + Password => '', + Comments => '', + Signature => '', + EmailAddress => '', + FreeformContactInfo => '', + Organization => '', + RealName => '', + NickName => '', + Lang => '', + EmailEncoding => '', + WebEncoding => '', + ExternalContactInfoId => '', + ContactInfoSystem => '', + ExternalAuthId => '', + AuthSystem => '', + Gecos => '', + HomePhone => '', + WorkPhone => '', + MobilePhone => '', + PagerPhone => '', + Address1 => '', + Address2 => '', + City => '', + State => '', + Zip => '', + Country => '', + Timezone => '', + PGPKey => '', + + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Password => $args{'Password'}, + Comments => $args{'Comments'}, + Signature => $args{'Signature'}, + EmailAddress => $args{'EmailAddress'}, + FreeformContactInfo => $args{'FreeformContactInfo'}, + Organization => $args{'Organization'}, + RealName => $args{'RealName'}, + NickName => $args{'NickName'}, + Lang => $args{'Lang'}, + EmailEncoding => $args{'EmailEncoding'}, + WebEncoding => $args{'WebEncoding'}, + ExternalContactInfoId => $args{'ExternalContactInfoId'}, + ContactInfoSystem => $args{'ContactInfoSystem'}, + ExternalAuthId => $args{'ExternalAuthId'}, + AuthSystem => $args{'AuthSystem'}, + Gecos => $args{'Gecos'}, + HomePhone => $args{'HomePhone'}, + WorkPhone => $args{'WorkPhone'}, + MobilePhone => $args{'MobilePhone'}, + PagerPhone => $args{'PagerPhone'}, + Address1 => $args{'Address1'}, + Address2 => $args{'Address2'}, + City => $args{'City'}, + State => $args{'State'}, + Zip => $args{'Zip'}, + Country => $args{'Country'}, + Timezone => $args{'Timezone'}, + PGPKey => $args{'PGPKey'}, +); + } -# }}} -# {{{ sub Create -sub Create { - my $self = shift; - my %args = (Privileged => 0, - @_ # get the real argumentlist - ); - - #Check the ACL - unless ($self->CurrentUserHasRight('AdminUsers')) { - return (0, 'No permission to create users'); - } - - if (! $args{'Password'}) { - $args{'Password'} = '*NO-PASSWORD*'; - } - elsif (length($args{'Password'}) < $RT::MinimumPasswordLength) { - return(0,"Password too short"); - } - else { - my $salt = join '', ('.','/',0..9,'A'..'Z','a'..'z')[rand 64, rand 64]; - $args{'Password'} = crypt($args{'Password'}, $salt); - } - - - #TODO Specify some sensible defaults. - - unless (defined ($args{'Name'})) { - return(0, "Must specify 'Name' attribute"); - } - - - #SANITY CHECK THE NAME AND ABORT IF IT'S TAKEN - if ($RT::SystemUser) { #This only works if RT::SystemUser has been defined - my $TempUser = RT::User->new($RT::SystemUser); - $TempUser->Load($args{'Name'}); - return (0, 'Name in use') if ($TempUser->Id); - - return(0, 'Email address in use') - unless ($self->ValidateEmailAddress($args{'EmailAddress'})); - } - else { - $RT::Logger->warning("$self couldn't check for pre-existing ". - " users on create. This will happen". - " on installation\n"); - } - - my $id = $self->SUPER::Create(%args); - - #If the create failed. - unless ($id) { - return (0, 'Could not create user'); - } - - - #TODO post 2.0 - #if ($args{'SendWelcomeMessage'}) { - # #TODO: Check if the email exists and looks valid - # #TODO: Send the user a "welcome message" - #} - - return ($id, 'User created'); -} +=item id -# }}} +Returns the current value of id. +(In the database, id is stored as int(11).) -# {{{ sub _BootstrapCreate -#create a user without validating _any_ data. +=cut -#To be used only on database init. -sub _BootstrapCreate { - my $self = shift; - my %args = (@_); +=item Name - $args{'Password'} = "*NO-PASSWORD*"; - my $id = $self->SUPER::Create(%args); - - #If the create failed. - return (0, 'Could not create user') - unless ($id); +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) - return ($id, 'User created'); -} -# }}} -# {{{ sub Delete +=item SetName VALUE -sub Delete { - my $self = shift; - - return(0, 'Deleting this object would violate referential integrity'); - -} -# }}} +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) + + +=cut + + +=item Password + +Returns the current value of Password. +(In the database, Password is stored as varchar(40).) -# {{{ sub Load -=head2 Load -Load a user object from the database. Takes a single argument. -If the argument is numerical, load by the column 'id'. Otherwise, load by -the "Name" column which is the user's textual username. +=item SetPassword VALUE + + +Set Password to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Password will be stored as a varchar(40).) + =cut -sub Load { - my $self = shift; - my $identifier = shift || return undef; - - #if it's an int, load by id. otherwise, load by name. - if ($identifier !~ /\D/) { - $self->SUPER::LoadById($identifier); - } - else { - $self->LoadByCol("Name",$identifier); - } -} -# }}} +=item Comments + +Returns the current value of Comments. +(In the database, Comments is stored as blob.) -# {{{ sub LoadByEmail -=head2 LoadByEmail +=item SetComments VALUE -Tries to load this user object from the database by the user's email address. + +Set Comments to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Comments will be stored as a blob.) =cut -sub LoadByEmail { - my $self=shift; - my $address = shift; - # Never load an empty address as an email address. - unless ($address) { - return(undef); - } +=item Signature - $address = RT::CanonicalizeAddress($address); - #$RT::Logger->debug("Trying to load an email address: $address\n"); - return $self->LoadByCol("EmailAddress", $address); -} -# }}} +Returns the current value of Signature. +(In the database, Signature is stored as blob.) -# {{{ sub ValidateEmailAddress -=head2 ValidateEmailAddress ADDRESS +=item SetSignature VALUE + + +Set Signature to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Signature will be stored as a blob.) -Returns true if the email address entered is not in use by another user or is -undef or ''. Returns false if it's in use. =cut -sub ValidateEmailAddress { - my $self = shift; - my $Value = shift; - # if the email address is null, it's always valid - return (1) if(!$Value || $Value eq ""); +=item EmailAddress - my $TempUser = RT::User->new($RT::SystemUser); - $TempUser->LoadByEmail($Value); +Returns the current value of EmailAddress. +(In the database, EmailAddress is stored as varchar(120).) - if( $TempUser->id && - ($TempUser->id != $self->id)) { # if we found a user with that address - # it's invalid to set this user's address to it - return(undef); - } - else { #it's a valid email address - return(1); - } -} -# }}} +=item SetEmailAddress VALUE + + +Set EmailAddress to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, EmailAddress will be stored as a varchar(120).) + + +=cut + + +=item FreeformContactInfo + +Returns the current value of FreeformContactInfo. +(In the database, FreeformContactInfo is stored as blob.) -# {{{ sub SetRandomPassword +=item SetFreeformContactInfo VALUE -=head2 SetRandomPassword -Takes no arguments. Returns a status code and a new password or an error message. -If the status is 1, the second value returned is the new password. -If the status is anything else, the new value returned is the error code. +Set FreeformContactInfo to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, FreeformContactInfo will be stored as a blob.) + =cut -sub SetRandomPassword { - my $self = shift; +=item Organization - unless ($self->CurrentUserCanModify('Password')) { - return (0, "Permission Denied"); - } - - my $pass = $self->GenerateRandomPassword(6,8); +Returns the current value of Organization. +(In the database, Organization is stored as varchar(200).) - # If we have "notify user on - my ($val, $msg) = $self->SetPassword($pass); - - #If we got an error return the error. - return (0, $msg) unless ($val); - - #Otherwise, we changed the password, lets return it. - return (1, $pass); - -} -# }}} +=item SetOrganization VALUE + + +Set Organization to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Organization will be stored as a varchar(200).) + + +=cut + + +=item RealName + +Returns the current value of RealName. +(In the database, RealName is stored as varchar(120).) -# {{{ sub ResetPassword -=head2 ResetPassword +=item SetRealName VALUE + + +Set RealName to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, RealName will be stored as a varchar(120).) -Returns status, [ERROR or new password]. Resets this user\'s password to -a randomly generated pronouncable password and emails them, using a -global template called "RT_PasswordChange", which can be overridden -with global templates "RT_PasswordChange_Privileged" or "RT_PasswordChange_NonPrivileged" -for privileged and Non-privileged users respectively. =cut -sub ResetPassword { - my $self = shift; - - unless ($self->CurrentUserCanModify('Password')) { - return (0, "Permission Denied"); - } - my ($status, $pass) = $self->SetRandomPassword(); - - unless ($status) { - return (0, "$pass"); - } - - my $template = RT::Template->new($self->CurrentUser); - - - if ($self->IsPrivileged) { - $template->LoadGlobalTemplate('RT_PasswordChange_Privileged'); - } - else { - $template->LoadGlobalTemplate('RT_PasswordChange_Privileged'); - } - - unless ($template->Id) { - $template->LoadGlobalTemplate('RT_PasswordChange'); - } - - unless ($template->Id) { - $RT::Logger->crit("$self tried to send ".$self->Name." a password reminder ". - "but couldn't find a password change template"); - } - - my $notification = RT::Action::SendPasswordEmail->new(TemplateObj => $template, - Argument => $pass); - - $notification->SetTo($self->EmailAddress); - - my ($ret); - $ret = $notification->Prepare(); - if ($ret) { - $ret = $notification->Commit(); - } - - if ($ret) { - return(1, 'New password notification sent'); - } else { - return (0, 'Notification could not be sent'); - } - -} +=item NickName -# }}} +Returns the current value of NickName. +(In the database, NickName is stored as varchar(16).) -# {{{ sub GenerateRandomPassword -=head2 GenerateRandomPassword MIN_LEN and MAX_LEN -Returns a random password between MIN_LEN and MAX_LEN characters long. +=item SetNickName VALUE + + +Set NickName to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, NickName will be stored as a varchar(16).) + =cut -sub GenerateRandomPassword { - my $self = shift; - my $min_length = shift; - my $max_length = shift; - - #This code derived from mpw.pl, a bit of code with a sordid history - # Its notes: - - # Perl cleaned up a bit by Jesse Vincent 1/14/2001. - # Converted to perl from C by Marc Horowitz, 1/20/2000. - # Converted to C from Multics PL/I by Bill Sommerfeld, 4/21/86. - # Original PL/I version provided by Jerry Saltzer. - - - my ($frequency, $start_freq, $total_sum, $row_sums); - - #When munging characters, we need to know where to start counting letters from - my $a = ord('a'); - - # frequency of English digraphs (from D Edwards 1/27/66) - $frequency = - [ [ 4, 20, 28, 52, 2, 11, 28, 4, 32, 4, 6, 62, 23, - 167, 2, 14, 0, 83, 76, 127, 7, 25, 8, 1, 9, 1 ], # aa - az - [ 13, 0, 0, 0, 55, 0, 0, 0, 8, 2, 0, 22, 0, - 0, 11, 0, 0, 15, 4, 2, 13, 0, 0, 0, 15, 0 ], # ba - bz - [ 32, 0, 7, 1, 69, 0, 0, 33, 17, 0, 10, 9, 1, - 0, 50, 3, 0, 10, 0, 28, 11, 0, 0, 0, 3, 0 ], # ca - cz - [ 40, 16, 9, 5, 65, 18, 3, 9, 56, 0, 1, 4, 15, - 6, 16, 4, 0, 21, 18, 53, 19, 5, 15, 0, 3, 0 ], # da - dz - [ 84, 20, 55, 125, 51, 40, 19, 16, 50, 1, 4, 55, 54, - 146, 35, 37, 6, 191, 149, 65, 9, 26, 21, 12, 5, 0 ], # ea - ez - [ 19, 3, 5, 1, 19, 21, 1, 3, 30, 2, 0, 11, 1, - 0, 51, 0, 0, 26, 8, 47, 6, 3, 3, 0, 2, 0 ], # fa - fz - [ 20, 4, 3, 2, 35, 1, 3, 15, 18, 0, 0, 5, 1, - 4, 21, 1, 1, 20, 9, 21, 9, 0, 5, 0, 1, 0 ], # ga - gz - [ 101, 1, 3, 0, 270, 5, 1, 6, 57, 0, 0, 0, 3, - 2, 44, 1, 0, 3, 10, 18, 6, 0, 5, 0, 3, 0 ], # ha - hz - [ 40, 7, 51, 23, 25, 9, 11, 3, 0, 0, 2, 38, 25, - 202, 56, 12, 1, 46, 79, 117, 1, 22, 0, 4, 0, 3 ], # ia - iz - [ 3, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0 ], # ja - jz - [ 1, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 6, 2, 1, 0, 2, 0, 1, 0 ], # ka - kz - [ 44, 2, 5, 12, 62, 7, 5, 2, 42, 1, 1, 53, 2, - 2, 25, 1, 1, 2, 16, 23, 9, 0, 1, 0, 33, 0 ], # la - lz - [ 52, 14, 1, 0, 64, 0, 0, 3, 37, 0, 0, 0, 7, - 1, 17, 18, 1, 2, 12, 3, 8, 0, 1, 0, 2, 0 ], # ma - mz - [ 42, 10, 47, 122, 63, 19, 106, 12, 30, 1, 6, 6, 9, - 7, 54, 7, 1, 7, 44, 124, 6, 1, 15, 0, 12, 0 ], # na - nz - [ 7, 12, 14, 17, 5, 95, 3, 5, 14, 0, 0, 19, 41, - 134, 13, 23, 0, 91, 23, 42, 55, 16, 28, 0, 4, 1 ], # oa - oz - [ 19, 1, 0, 0, 37, 0, 0, 4, 8, 0, 0, 15, 1, - 0, 27, 9, 0, 33, 14, 7, 6, 0, 0, 0, 0, 0 ], # pa - pz - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0 ], # qa - qz - [ 83, 8, 16, 23, 169, 4, 8, 8, 77, 1, 10, 5, 26, - 16, 60, 4, 0, 24, 37, 55, 6, 11, 4, 0, 28, 0 ], # ra - rz - [ 65, 9, 17, 9, 73, 13, 1, 47, 75, 3, 0, 7, 11, - 12, 56, 17, 6, 9, 48, 116, 35, 1, 28, 0, 4, 0 ], # sa - sz - [ 57, 22, 3, 1, 76, 5, 2, 330, 126, 1, 0, 14, 10, - 6, 79, 7, 0, 49, 50, 56, 21, 2, 27, 0, 24, 0 ], # ta - tz - [ 11, 5, 9, 6, 9, 1, 6, 0, 9, 0, 1, 19, 5, - 31, 1, 15, 0, 47, 39, 31, 0, 3, 0, 0, 0, 0 ], # ua - uz - [ 7, 0, 0, 0, 72, 0, 0, 0, 28, 0, 0, 0, 0, - 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0 ], # va - vz - [ 36, 1, 1, 0, 38, 0, 0, 33, 36, 0, 0, 4, 1, - 8, 15, 0, 0, 0, 4, 2, 0, 0, 1, 0, 0, 0 ], # wa - wz - [ 1, 0, 2, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, - 0, 1, 5, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0 ], # xa - xz - [ 14, 5, 4, 2, 7, 12, 12, 6, 10, 0, 0, 3, 7, - 5, 17, 3, 0, 4, 16, 30, 0, 0, 5, 0, 0, 0 ], # ya - yz - [ 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ]; # za - zz - - #We need to know the totals for each row - $row_sums = - [ map { my $sum = 0; map { $sum += $_ } @$_; $sum } @$frequency ]; - - - #Frequency with which a given letter starts a word. - $start_freq = - [ 1299, 425, 725, 271, 375, 470, 93, 223, 1009, 24, 20, 355, 379, - 319, 823, 618, 21, 317, 962, 1991, 271, 104, 516, 6, 16, 14 ]; - - $total_sum = 0; map { $total_sum += $_ } @$start_freq; - - - my $length = $min_length + int(rand($max_length-$min_length)); - - my $char = $self->GenerateRandomNextChar($total_sum, $start_freq); - my @word = ($char+$a); - for (2..$length) { - $char = $self->_GenerateRandomNextChar($row_sums->[$char], $frequency->[$char]); - push(@word, $char+$a); - } - - #Return the password - return pack("C*",@word); - -} +=item Lang + +Returns the current value of Lang. +(In the database, Lang is stored as varchar(16).) -#A private helper function for RandomPassword -# Takes a row summary and a frequency chart for the next character to be searched -sub _GenerateRandomNextChar { - my $self = shift; - my($all, $freq) = @_; - my($pos, $i); - - for ($pos = int(rand($all)), $i=0; - $pos >= $freq->[$i]; - $pos -= $freq->[$i], $i++) {}; - - return($i); -} -# }}} -# {{{ sub SetPassword +=item SetLang VALUE -=head2 SetPassword -Takes a string. Checks the string's length and sets this user's password -to that string. +Set Lang to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Lang will be stored as a varchar(16).) + =cut -sub SetPassword { - my $self = shift; - my $password = shift; - - unless ($self->CurrentUserCanModify('Password')) { - return(0, 'Permission Denied'); - } - - if (! $password) { - return(0, "No password set"); - } - elsif (length($password) < $RT::MinimumPasswordLength) { - return(0,"Password too short"); - } - else { - my $salt = join '', ('.','/',0..9,'A'..'Z','a'..'z')[rand 64, rand 64]; - return ( $self->SUPER::SetPassword(crypt($password, $salt)) ); - } - -} -# }}} +=item EmailEncoding + +Returns the current value of EmailEncoding. +(In the database, EmailEncoding is stored as varchar(16).) -# {{{ sub IsPassword -=head2 IsPassword -Returns true if the passed in value is this user's password. -Returns undef otherwise. +=item SetEmailEncoding VALUE + + +Set EmailEncoding to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, EmailEncoding will be stored as a varchar(16).) + =cut -sub IsPassword { - my $self = shift; - my $value = shift; - - #TODO there isn't any apparent way to legitimately ACL this - - # RT does not allow null passwords - if ((!defined ($value)) or ($value eq '')) { - return(undef); - } - if ($self->Disabled) { - $RT::Logger->info("Disabled user ".$self->Name." tried to log in"); - return(undef); - } - - if ( ($self->__Value('Password') eq '') || - ($self->__Value('Password') eq undef) ) { - return(undef); - } - if ($self->__Value('Password') eq crypt($value, $self->__Value('Password'))) { - return (1); - } - else { - return (undef); - } -} -# }}} +=item WebEncoding + +Returns the current value of WebEncoding. +(In the database, WebEncoding is stored as varchar(16).) -# {{{ sub SetDisabled -=head2 Sub SetDisabled -Toggles the user's disabled flag. -If this flag is -set, all password checks for this user will fail. All ACL checks for this -user will fail. The user will appear in no user listings. +=item SetWebEncoding VALUE -=cut -# }}} +Set WebEncoding to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, WebEncoding will be stored as a varchar(16).) -# {{{ ACL Related routines -# {{{ GrantQueueRight +=cut + -=head2 GrantQueueRight +=item ExternalContactInfoId + +Returns the current value of ExternalContactInfoId. +(In the database, ExternalContactInfoId is stored as varchar(100).) + + + +=item SetExternalContactInfoId VALUE + + +Set ExternalContactInfoId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ExternalContactInfoId will be stored as a varchar(100).) -Grant a queue right to this user. Takes a paramhash of which the elements -RightAppliesTo and RightName are important. =cut -sub GrantQueueRight { - - my $self = shift; - my %args = ( RightScope => 'Queue', - RightName => undef, - RightAppliesTo => undef, - PrincipalType => 'User', - PrincipalId => $self->Id, - @_); - - #ACL check handled in ACE.pm - - require RT::ACE; - -# $RT::Logger->debug("$self ->GrantQueueRight right:". $args{'RightName'} . -# " applies to queue ".$args{'RightAppliesTo'}."\n"); - - my $ace = new RT::ACE($self->CurrentUser); - - return ($ace->Create(%args)); -} -# }}} +=item ContactInfoSystem + +Returns the current value of ContactInfoSystem. +(In the database, ContactInfoSystem is stored as varchar(30).) + + -# {{{ GrantSystemRight +=item SetContactInfoSystem VALUE -=head2 GrantSystemRight -Grant a system right to this user. -The only element that's important to set is RightName. +Set ContactInfoSystem to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ContactInfoSystem will be stored as a varchar(30).) + =cut -sub GrantSystemRight { - - my $self = shift; - my %args = ( RightScope => 'System', - RightName => undef, - RightAppliesTo => 0, - PrincipalType => 'User', - PrincipalId => $self->Id, - @_); - - - #ACL check handled in ACE.pm - - require RT::ACE; - my $ace = new RT::ACE($self->CurrentUser); - - return ($ace->Create(%args)); -} -# }}} +=item ExternalAuthId + +Returns the current value of ExternalAuthId. +(In the database, ExternalAuthId is stored as varchar(100).) -# {{{ sub HasQueueRight -=head2 HasQueueRight -Takes a paramhash which can contain -these items: - TicketObj => RT::Ticket or QueueObj => RT::Queue or Queue => integer - IsRequestor => undef, (for bootstrapping create) - Right => 'Right' +=item SetExternalAuthId VALUE -Returns 1 if this user has the right specified in the paramhash. for the queue -passed in. +Set ExternalAuthId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ExternalAuthId will be stored as a varchar(100).) -Returns undef if they don't =cut -sub HasQueueRight { - my $self = shift; - my %args = ( TicketObj => undef, - QueueObj => undef, - Queue => undef, - IsRequestor => undef, - Right => undef, - @_); - - my ($IsRequestor, $IsCc, $IsAdminCc, $IsOwner); - - if (defined $args{'Queue'}) { - $args{'QueueObj'} = new RT::Queue($self->CurrentUser); - $args{'QueueObj'}->Load($args{'Queue'}); - } - - if (defined $args{'TicketObj'}) { - $args{'QueueObj'} = $args{'TicketObj'}->QueueObj(); - } - - # {{{ Validate and load up the QueueId - unless ((defined $args{'QueueObj'}) and ($args{'QueueObj'}->Id)) { - require Carp; - $RT::Logger->debug(Carp::cluck ("$self->HasQueueRight Couldn't find a queue id")); - return undef; - } - - # }}} - - - # Figure out whether a user has the right we're asking about. - # first see if they have the right personally for the queue in question. - my $retval = $self->_HasRight(Scope => 'Queue', - AppliesTo => $args{'QueueObj'}->Id, - Right => $args{'Right'}, - IsOwner => $IsOwner); - - return ($retval) if (defined $retval); - - # then we see whether they have the right personally globally. - $retval = $self->HasSystemRight( $args{'Right'}); - - return ($retval) if (defined $retval); - - # now that we know they don't have the right personally, - - # {{{ Find out about whether the current user is a Requestor, Cc, AdminCc or Owner - - if (defined $args{'TicketObj'}) { - if ($args{'TicketObj'}->IsRequestor($self)) {#user is requestor - $IsRequestor = 1; - } - - if ($args{'TicketObj'}->IsCc($self)) { #If user is a cc - $IsCc = 1; - } - - if ($args{'TicketObj'}->IsAdminCc($self)) { #If user is an admin cc - $IsAdminCc = 1; - } - - if ($args{'TicketObj'}->IsOwner($self)) { #If user is an owner - $IsOwner = 1; - } - } - - if (defined $args{'QueueObj'}) { - if ($args{'QueueObj'}->IsCc($self)) { #If user is a cc - $IsCc = 1; - } - if ($args{'QueueObj'}->IsAdminCc($self)) { #If user is an admin cc - $IsAdminCc = 1; - } - - } - # }}} - - # then see whether they have the right for the queue as a member of a metagroup - - $retval = $self->_HasRight(Scope => 'Queue', - AppliesTo => $args{'QueueObj'}->Id, - Right => $args{'Right'}, - IsOwner => $IsOwner, - IsCc => $IsCc, - IsAdminCc => $IsAdminCc, - IsRequestor => $IsRequestor - ); - - return ($retval) if (defined $retval); - - # then we see whether they have the right globally as a member of a metagroup - $retval = $self->HasSystemRight( $args{'Right'}, - (IsOwner => $IsOwner, - IsCc => $IsCc, - IsAdminCc => $IsAdminCc, - IsRequestor => $IsRequestor - ) ); - - #If they haven't gotten it by now, they just lose. - return ($retval); - -} -# }}} - -# {{{ sub HasSystemRight +=item AuthSystem + +Returns the current value of AuthSystem. +(In the database, AuthSystem is stored as varchar(30).) + -=head2 HasSystemRight -takes an array of a single value and a paramhash. -The single argument is the right being passed in. -the param hash is some additional data. (IsCc, IsOwner, IsAdminCc and IsRequestor) +=item SetAuthSystem VALUE + + +Set AuthSystem to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, AuthSystem will be stored as a varchar(30).) -Returns 1 if this user has the listed 'right'. Returns undef if this user doesn't. =cut -sub HasSystemRight { - my $self = shift; - my $right = shift; - - my %args = ( IsOwner => undef, - IsCc => undef, - IsAdminCc => undef, - IsRequestor => undef, - @_); - - unless (defined $right) { - - $RT::Logger->debug("$self RT::User::HasSystemRight was passed in no right."); - return(undef); - } - return ( $self->_HasRight ( Scope => 'System', - AppliesTo => '0', - Right => $right, - IsOwner => $args{'IsOwner'}, - IsCc => $args{'IsCc'}, - IsAdminCc => $args{'IsAdminCc'}, - IsRequestor => $args{'IsRequestor'}, - - ) - ); - -} -# }}} +=item Gecos + +Returns the current value of Gecos. +(In the database, Gecos is stored as varchar(16).) + + -# {{{ sub _HasRight +=item SetGecos VALUE -=head2 sub _HasRight (Right => 'right', Scope => 'scope', AppliesTo => int, ExtendedPrincipals => SQL) -_HasRight is a private helper method for checking a user's rights. It takes -several options: +Set Gecos to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Gecos will be stored as a varchar(16).) + + +=cut + -=item Right is a textual right name +=item HomePhone -=item Scope is a textual scope name. (As of July these were Queue, Ticket and System +Returns the current value of HomePhone. +(In the database, HomePhone is stored as varchar(30).) -=item AppliesTo is the numerical Id of the object identified in the scope. For tickets, this is the queue #. for queues, this is the queue # -=item ExtendedPrincipals is an SQL select clause which assumes that the only -table in play is ACL. It's used by HasQueueRight to pass in which -metaprincipals apply. Actually, it's probably obsolete. TODO: remove it. -Returns 1 if a matching ACE was found. +=item SetHomePhone VALUE + + +Set HomePhone to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, HomePhone will be stored as a varchar(30).) -Returns undef if no ACE was found. =cut -sub _HasRight { - - my $self = shift; - my %args = ( Right => undef, - Scope => undef, - AppliesTo => undef, - IsRequestor => undef, - IsCc => undef, - IsAdminCc => undef, - IsOwner => undef, - ExtendedPrincipals => undef, - @_); - - if ($self->Disabled) { - $RT::Logger->debug ("Disabled User: ".$self->Name. - " failed access check for ".$args{'Right'}. - " to object ".$args{'Scope'}."/". - $args{'AppliesTo'}."\n"); - return (undef); - } - - if (!defined $args{'Right'}) { - $RT::Logger->debug("_HasRight called without a right\n"); - return(undef); - } - elsif (!defined $args{'Scope'}) { - $RT::Logger->debug("_HasRight called without a scope\n"); - return(undef); - } - elsif (!defined $args{'AppliesTo'}) { - $RT::Logger->debug("_HasRight called without an AppliesTo object\n"); - return(undef); - } - - #If we've cached a win or loss for this lookup say so - - #TODO Security +++ check to make sure this is complete and right - - #Construct a hashkey to cache decisions in - my ($hashkey); - { #it's ugly, but we need to turn off warning, cuz we're joining nulls. - local $^W=0; - $hashkey =$self->Id .":". join(':',%args); - } - - # $RT::Logger->debug($hashkey."\n"); - - #Anything older than 10 seconds needs to be rechecked - my $cache_timeout = (time - 10); - - - if ((defined $self->{'rights'}{"$hashkey"}) && - ($self->{'rights'}{"$hashkey"} == 1 ) && - (defined $self->{'rights'}{"$hashkey"}{'set'} ) && - ($self->{'rights'}{"$hashkey"}{'set'} > $cache_timeout)) { -# $RT::Logger->debug("Cached ACL win for ". -# $args{'Right'}.$args{'Scope'}. -# $args{'AppliesTo'}."\n"); - return ($self->{'rights'}{"$hashkey"}); - } - elsif ((defined $self->{'rights'}{"$hashkey"}) && - ($self->{'rights'}{"$hashkey"} == -1) && - (defined $self->{'rights'}{"$hashkey"}{'set'}) && - ($self->{'rights'}{"$hashkey"}{'set'} > $cache_timeout)) { - -# $RT::Logger->debug("Cached ACL loss decision for ". -# $args{'Right'}.$args{'Scope'}. -# $args{'AppliesTo'}."\n"); - - return(undef); - } - - - my $RightClause = "(RightName = '$args{'Right'}')"; - my $ScopeClause = "(RightScope = '$args{'Scope'}')"; - - #If an AppliesTo was passed in, we should pay attention to it. - #otherwise, none is needed - - $ScopeClause = "($ScopeClause AND (RightAppliesTo = $args{'AppliesTo'}))" - if ($args{'AppliesTo'}); - - - # The generic principals clause looks for users with my id - # and Rights that apply to _everyone_ - my $PrincipalsClause = "((PrincipalType = 'User') AND (PrincipalId = ".$self->Id."))"; - - - # If the user is the superuser, grant them the damn right ;) - my $SuperUserClause = - "(RightName = 'SuperUser') AND (RightScope = 'System') AND (RightAppliesTo = 0)"; - - # If we've been passed in an extended principals clause, we should lump it - # on to the existing principals clause. it'll make life easier - if ($args{'ExtendedPrincipals'}) { - $PrincipalsClause = "(($PrincipalsClause) OR ". - "($args{'ExtendedPrincipalsClause'}))"; - } - - my $GroupPrincipalsClause = "((ACL.PrincipalType = 'Group') ". - "AND (ACL.PrincipalId = Groups.Id) AND (GroupMembers.GroupId = Groups.Id) ". - " AND (GroupMembers.UserId = ".$self->Id."))"; - - - - - # {{{ A bunch of magic statements that make the metagroups listed - # work. basically, we if the user falls into the right group, - # we add the type of ACL check needed - my (@MetaPrincipalsSubClauses, $MetaPrincipalsClause); - - #The user is always part of the 'Everyone' Group - push (@MetaPrincipalsSubClauses, "((Groups.Name = 'Everyone') AND - (PrincipalType = 'Group') AND - (Groups.Id = PrincipalId))"); - - if ($args{'IsAdminCc'}) { - push (@MetaPrincipalsSubClauses, "((Groups.Name = 'AdminCc') AND - (PrincipalType = 'Group') AND - (Groups.Id = PrincipalId))"); - } - if ($args{'IsCc'}) { - push (@MetaPrincipalsSubClauses, " ((Groups.Name = 'Cc') AND - (PrincipalType = 'Group') AND - (Groups.Id = PrincipalId))"); - } - if ($args{'IsRequestor'}) { - push (@MetaPrincipalsSubClauses, " ((Groups.Name = 'Requestor') AND - (PrincipalType = 'Group') AND - (Groups.Id = PrincipalId))"); - } - if ($args{'IsOwner'}) { - - push (@MetaPrincipalsSubClauses, " ((Groups.Name = 'Owner') AND - (PrincipalType = 'Group') AND - (Groups.Id = PrincipalId))"); - } - - # }}} - - my ($GroupRightsQuery, $MetaGroupRightsQuery, $IndividualRightsQuery, $hitcount); - - # {{{ If there are any metaprincipals to be checked - if (@MetaPrincipalsSubClauses) { - #chop off the leading or - #TODO redo this with an array and a join - $MetaPrincipalsClause = join (" OR ", @MetaPrincipalsSubClauses); - - $MetaGroupRightsQuery = "SELECT COUNT(ACL.id) FROM ACL, Groups". - " WHERE " . - " ($ScopeClause) AND ($RightClause) AND ($MetaPrincipalsClause)"; - - # {{{ deal with checking if the user has a right as a member of a metagroup - -# $RT::Logger->debug("Now Trying $MetaGroupRightsQuery\n"); - $hitcount = $self->_Handle->FetchResult($MetaGroupRightsQuery); - - #if there's a match, the right is granted - if ($hitcount) { - $self->{'rights'}{"$hashkey"}{'set'} = time; - $self->{'rights'}{"$hashkey"} = 1; - return (1); - } - -# $RT::Logger->debug("No ACL matched MetaGroups query: $MetaGroupRightsQuery\n"); - - # }}} - - } - # }}} - - # {{{ deal with checking if the user has a right as a member of a group - # This query checks to se whether the user has the right as a member of a - # group - $GroupRightsQuery = "SELECT COUNT(ACL.id) FROM ACL, GroupMembers, Groups". - " WHERE " . - " (((($ScopeClause) AND ($RightClause)) OR ($SuperUserClause)) ". - " AND ($GroupPrincipalsClause))"; - - # $RT::Logger->debug("Now Trying $GroupRightsQuery\n"); - $hitcount = $self->_Handle->FetchResult($GroupRightsQuery); - - #if there's a match, the right is granted - if ($hitcount) { - $self->{'rights'}{"$hashkey"}{'set'} = time; - $self->{'rights'}{"$hashkey"} = 1; - return (1); - } - -# $RT::Logger->debug("No ACL matched $GroupRightsQuery\n"); - - # }}} - - # {{{ Check to see whether the user has a right as an individual - - # This query checks to see whether the current user has the right directly - $IndividualRightsQuery = "SELECT COUNT(ACL.id) FROM ACL WHERE ". - " ((($ScopeClause) AND ($RightClause)) OR ($SuperUserClause)) " . - " AND ($PrincipalsClause)"; - - - $hitcount = $self->_Handle->FetchResult($IndividualRightsQuery); - - if ($hitcount) { - $self->{'rights'}{"$hashkey"}{'set'} = time; - $self->{'rights'}{"$hashkey"} = 1; - return (1); - } - # }}} - - else { #If the user just doesn't have the right - -# $RT::Logger->debug("No ACL matched $IndividualRightsQuery\n"); - - #If nothing matched, return 0. - $self->{'rights'}{"$hashkey"}{'set'} = time; - $self->{'rights'}{"$hashkey"} = -1; - - - return (undef); - } -} +=item WorkPhone + +Returns the current value of WorkPhone. +(In the database, WorkPhone is stored as varchar(30).) + + -# }}} +=item SetWorkPhone VALUE -# {{{ sub CurrentUserCanModify -=head2 CurrentUserCanModify RIGHT +Set WorkPhone to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, WorkPhone will be stored as a varchar(30).) -If the user has rights for this object, either because -he has 'AdminUsers' or (if he\'s trying to edit himself and the right isn\'t an -admin right) 'ModifySelf', return 1. otherwise, return undef. =cut -sub CurrentUserCanModify { - my $self = shift; - my $right = shift; - - if ($self->CurrentUserHasRight('AdminUsers')) { - return (1); - } - #If the field is marked as an "administrators only" field, - # don\'t let the user touch it. - elsif ($self->_Accessible($right, 'admin')) { - return(undef); - } - - #If the current user is trying to modify themselves - elsif ( ($self->id == $self->CurrentUser->id) and - ($self->CurrentUserHasRight('ModifySelf'))) { - return(1); - } - - #If we don\'t have a good reason to grant them rights to modify - # by now, they lose - else { - return(undef); - } - -} -# }}} +=item MobilePhone + +Returns the current value of MobilePhone. +(In the database, MobilePhone is stored as varchar(30).) + -# {{{ sub CurrentUserHasRight -=head2 CurrentUserHasRight - - Takes a single argument. returns 1 if $Self->CurrentUser - has the requested right. returns undef otherwise +=item SetMobilePhone VALUE + + +Set MobilePhone to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, MobilePhone will be stored as a varchar(30).) + =cut -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - - return ($self->CurrentUser->HasSystemRight($right)); -} -# }}} +=item PagerPhone +Returns the current value of PagerPhone. +(In the database, PagerPhone is stored as varchar(30).) -# {{{ sub _Set -sub _Set { - my $self = shift; - - my %args = (Field => undef, - Value => undef, - @_ - ); - # Nobody is allowed to futz with RT_System or Nobody unless they - # want to change an email address. For 2.2, neither should have an email address +=item SetPagerPhone VALUE - if ($self->Privileged == 2) { - return (0, "Can not modify system users"); - } - unless ($self->CurrentUserCanModify($args{'Field'})) { - return (0, "Permission Denied"); - } +Set PagerPhone to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, PagerPhone will be stored as a varchar(30).) + + +=cut + + +=item Address1 + +Returns the current value of Address1. +(In the database, Address1 is stored as varchar(200).) - - #Set the new value - my ($ret, $msg)=$self->SUPER::_Set(Field => $args{'Field'}, - Value=> $args{'Value'}); - - return ($ret, $msg); -} -# }}} -# {{{ sub _Value +=item SetAddress1 VALUE -=head2 _Value -Takes the name of a table column. -Returns its value as a string, if the user passes an ACL check +Set Address1 to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Address1 will be stored as a varchar(200).) + =cut -sub _Value { - - my $self = shift; - my $field = shift; - - #If the current user doesn't have ACLs, don't let em at it. - - my @PublicFields = qw( Name EmailAddress Organization Disabled - RealName NickName Gecos ExternalAuthId - AuthSystem ExternalContactInfoId - ContactInfoSystem ); - - #if the field is public, return it. - if ($self->_Accessible($field, 'public')) { - return($self->SUPER::_Value($field)); - - } - #If the user wants to see their own values, let them - elsif ($self->CurrentUser->Id == $self->Id) { - return($self->SUPER::_Value($field)); - } - #If the user has the admin users right, return the field - elsif ($self->CurrentUserHasRight('AdminUsers')) { - return($self->SUPER::_Value($field)); - } - else { - return(undef); - } - -} +=item Address2 + +Returns the current value of Address2. +(In the database, Address2 is stored as varchar(200).) + + + +=item SetAddress2 VALUE + + +Set Address2 to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Address2 will be stored as a varchar(200).) + + +=cut + + +=item City + +Returns the current value of City. +(In the database, City is stored as varchar(100).) + + + +=item SetCity VALUE + + +Set City to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, City will be stored as a varchar(100).) + + +=cut + + +=item State + +Returns the current value of State. +(In the database, State is stored as varchar(100).) + + + +=item SetState VALUE + + +Set State to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, State will be stored as a varchar(100).) + + +=cut + + +=item Zip + +Returns the current value of Zip. +(In the database, Zip is stored as varchar(16).) + + + +=item SetZip VALUE + + +Set Zip to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Zip will be stored as a varchar(16).) + + +=cut + + +=item Country + +Returns the current value of Country. +(In the database, Country is stored as varchar(50).) + + + +=item SetCountry VALUE + + +Set Country to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Country will be stored as a varchar(50).) + + +=cut + + +=item Timezone + +Returns the current value of Timezone. +(In the database, Timezone is stored as varchar(50).) + + + +=item SetTimezone VALUE + + +Set Timezone to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Timezone will be stored as a varchar(50).) + + +=cut + + +=item PGPKey + +Returns the current value of PGPKey. +(In the database, PGPKey is stored as text.) + + + +=item SetPGPKey VALUE + + +Set PGPKey to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, PGPKey will be stored as a text.) + + +=cut + + +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) + + +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + +=item LastUpdatedBy + +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) + + +=cut + + +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) + + +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Password => + {read => 1, write => 1, type => 'varchar(40)', default => ''}, + Comments => + {read => 1, write => 1, type => 'blob', default => ''}, + Signature => + {read => 1, write => 1, type => 'blob', default => ''}, + EmailAddress => + {read => 1, write => 1, type => 'varchar(120)', default => ''}, + FreeformContactInfo => + {read => 1, write => 1, type => 'blob', default => ''}, + Organization => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + RealName => + {read => 1, write => 1, type => 'varchar(120)', default => ''}, + NickName => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + Lang => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + EmailEncoding => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + WebEncoding => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + ExternalContactInfoId => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + ContactInfoSystem => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + ExternalAuthId => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + AuthSystem => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + Gecos => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + HomePhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + WorkPhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + MobilePhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + PagerPhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + Address1 => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Address2 => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + City => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + State => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + Zip => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + Country => + {read => 1, write => 1, type => 'varchar(50)', default => ''}, + Timezone => + {read => 1, write => 1, type => 'varchar(50)', default => ''}, + PGPKey => + {read => 1, write => 1, type => 'text', 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::User_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/User_Overlay.pm}) { + die $@; + }; + + eval "require RT::User_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/User_Vendor.pm}) { + die $@; + }; + + eval "require RT::User_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/User_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::User_Overlay, RT::User_Vendor, RT::User_Local + +=cut -# }}} -# }}} 1; - diff --git a/rt/lib/RT/User_Overlay.pm b/rt/lib/RT/User_Overlay.pm new file mode 100644 index 000000000..e828ebd71 --- /dev/null +++ b/rt/lib/RT/User_Overlay.pm @@ -0,0 +1,1589 @@ +# 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. +# +# 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::User - RT User object + +=head1 SYNOPSIS + + use RT::User; + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok(require RT::User); + +=end testing + + +=cut + +use strict; +no warnings qw(redefine); + +use vars qw(%_USERS_KEY_CACHE); + +%_USERS_KEY_CACHE = (); + +use Digest::MD5; +use RT::Principals; +use RT::ACE; + + +# {{{ sub _Accessible + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(120)', default => ''}, + Password => + { write => 1, type => 'varchar(40)', default => ''}, + Comments => + {read => 1, write => 1, admin => 1, type => 'blob', default => ''}, + Signature => + {read => 1, write => 1, type => 'blob', default => ''}, + EmailAddress => + {read => 1, write => 1, public => 1, type => 'varchar(120)', default => ''}, + FreeformContactInfo => + {read => 1, write => 1, type => 'blob', default => ''}, + Organization => + {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(200)', default => ''}, + RealName => + {read => 1, write => 1, public => 1, type => 'varchar(120)', default => ''}, + NickName => + {read => 1, write => 1, public => 1, type => 'varchar(16)', default => ''}, + Lang => + {read => 1, write => 1, public => 1, type => 'varchar(16)', default => ''}, + EmailEncoding => + {read => 1, write => 1, public => 1, type => 'varchar(16)', default => ''}, + WebEncoding => + {read => 1, write => 1, public => 1, type => 'varchar(16)', default => ''}, + ExternalContactInfoId => + {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(100)', default => ''}, + ContactInfoSystem => + {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(30)', default => ''}, + ExternalAuthId => + {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(100)', default => ''}, + AuthSystem => + {read => 1, write => 1, public => 1, admin => 1,type => 'varchar(30)', default => ''}, + Gecos => + {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(16)', default => ''}, + + PGPKey => { + {read => 1, write => 1, public => 1, admin => 1, type => 'text', default => ''}, + }, + HomePhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + WorkPhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + MobilePhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + PagerPhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + Address1 => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Address2 => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + City => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + State => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + Zip => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + Country => + {read => 1, write => 1, type => 'varchar(50)', default => ''}, + Creator => + {read => 1, auto => 1, type => 'int(11)', default => ''}, + Created => + {read => 1, auto => 1, type => 'datetime', default => ''}, + LastUpdatedBy => + {read => 1, auto => 1, type => 'int(11)', default => ''}, + LastUpdated => + {read => 1, auto => 1, type => 'datetime', default => ''}, + + } +}; + + +# }}} + +# {{{ sub Create + +=head2 Create { PARAMHASH } + + +=begin testing + +# Make sure we can create a user + +my $u1 = RT::User->new($RT::SystemUser); +is(ref($u1), 'RT::User'); +my ($id, $msg) = $u1->Create(Name => 'CreateTest1', EmailAddress => 'create-test-1@example.com'); +ok ($id, "Creating user CreateTest1 - " . $msg ); + +# Make sure we can't create a second user with the same name +my $u2 = RT::User->new($RT::SystemUser); +($id, $msg) = $u2->Create(Name => 'CreateTest1', EmailAddress => 'create-test-2@example.com'); +ok (!$id, $msg); + + +# Make sure we can't create a second user with the same EmailAddress address +my $u3 = RT::User->new($RT::SystemUser); +($id, $msg) = $u3->Create(Name => 'CreateTest2', EmailAddress => 'create-test-1@example.com'); +ok (!$id, $msg); + +# Make sure we can create a user with no EmailAddress address +my $u4 = RT::User->new($RT::SystemUser); +($id, $msg) = $u4->Create(Name => 'CreateTest3'); +ok ($id, $msg); + +# make sure we can create a second user with no EmailAddress address +my $u5 = RT::User->new($RT::SystemUser); +($id, $msg) = $u5->Create(Name => 'CreateTest4'); +ok ($id, $msg); + +# make sure we can create a user with a blank EmailAddress address +my $u6 = RT::User->new($RT::SystemUser); +($id, $msg) = $u6->Create(Name => 'CreateTest6', EmailAddress => ''); +ok ($id, $msg); +# make sure we can create a second user with a blankEmailAddress address +my $u7 = RT::User->new($RT::SystemUser); +($id, $msg) = $u7->Create(Name => 'CreateTest7', EmailAddress => ''); +ok ($id, $msg); + +# Can we change the email address away from from ""; +($id,$msg) = $u7->SetEmailAddress('foo@bar'); +ok ($id, $msg); +# can we change the address back to ""; +($id,$msg) = $u7->SetEmailAddress(''); +ok ($id, $msg); +is ($u7->EmailAddress, ''); + + +=end testing + +=cut + + +sub Create { + my $self = shift; + my %args = ( + Privileged => 0, + Disabled => 0, + EmailAddress => '', + @_ # get the real argumentlist + ); + + + $args{'EmailAddress'} = $self->CanonicalizeEmailAddress($args{'EmailAddress'}); + + #Check the ACL + unless ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { + return ( 0, $self->loc('No permission to create users') ); + } + + + # Privileged is no longer a column in users + my $privileged = $args{'Privileged'}; + delete $args{'Privileged'}; + + + if ($args{'CryptedPassword'} ) { + $args{'Password'} = $args{'CryptedPassword'}; + delete $args{'CryptedPassword'}; + } + elsif ( !$args{'Password'} ) { + $args{'Password'} = '*NO-PASSWORD*'; + } + elsif ( length( $args{'Password'} ) < $RT::MinimumPasswordLength ) { + return ( 0, $self->loc("Password too short") ); + } + + else { + $args{'Password'} = $self->_GeneratePassword($args{'Password'}); + } + + #TODO Specify some sensible defaults. + + unless ( defined( $args{'Name'} ) ) { + return ( 0, $self->loc("Must specify 'Name' attribute") ); + } + + #SANITY CHECK THE NAME AND ABORT IF IT'S TAKEN + if ($RT::SystemUser) { #This only works if RT::SystemUser has been defined + my $TempUser = RT::User->new($RT::SystemUser); + $TempUser->Load( $args{'Name'} ); + return ( 0, $self->loc('Name in use') ) if ( $TempUser->Id ); + + return ( 0, $self->loc('Email address in use') ) + unless ( $self->ValidateEmailAddress( $args{'EmailAddress'} ) ); + } + else { + $RT::Logger->warning( "$self couldn't check for pre-existing users"); + } + + + $RT::Handle->BeginTransaction(); + # Groups deal with principal ids, rather than user ids. + # When creating this user, set up a principal Id for it. + my $principal = RT::Principal->new($self->CurrentUser); + my $principal_id = $principal->Create(PrincipalType => 'User', + Disabled => $args{'Disabled'}, + ObjectId => '0'); + $principal->__Set(Field => 'ObjectId', Value => $principal_id); + # If we couldn't create a principal Id, get the fuck out. + unless ($principal_id) { + $RT::Handle->Rollback(); + $RT::Logger->crit("Couldn't create a Principal on new user create. Strange things are afoot at the circle K"); + return ( 0, $self->loc('Could not create user') ); + } + + delete $args{'Disabled'}; + + $self->SUPER::Create(id => $principal_id , %args); + my $id = $self->Id; + + #If the create failed. + unless ($id) { + $RT::Logger->error("Could not create a new user - " .join('-'. %args)); + + return ( 0, $self->loc('Could not create user') ); + } + + + #TODO post 2.0 + #if ($args{'SendWelcomeMessage'}) { + # #TODO: Check if the email exists and looks valid + # #TODO: Send the user a "welcome message" + #} + + + + my $aclstash = RT::Group->new($self->CurrentUser); + my $stash_id = $aclstash->_CreateACLEquivalenceGroup($principal); + + unless ($stash_id) { + $RT::Handle->Rollback(); + $RT::Logger->crit("Couldn't stash the user in groumembers"); + return ( 0, $self->loc('Could not create user') ); + } + + $RT::Handle->Commit; + + #$RT::Logger->debug("Adding the user as a member of everyone"); + my $everyone = RT::Group->new($self->CurrentUser); + $everyone->LoadSystemInternalGroup('Everyone'); + $everyone->AddMember($self->PrincipalId); + + if ($privileged) { + my $priv = RT::Group->new($self->CurrentUser); + #$RT::Logger->debug("Making ".$self->Id." a privileged user"); + $priv->LoadSystemInternalGroup('Privileged'); + $priv->AddMember($self->PrincipalId); + } else { + my $unpriv = RT::Group->new($self->CurrentUser); + #$RT::Logger->debug("Making ".$self->Id." an unprivileged user"); + $unpriv->LoadSystemInternalGroup('Unprivileged'); + $unpriv->AddMember($self->PrincipalId); + } + + + # $RT::Logger->debug("Finished creating the user"); + return ( $id, $self->loc('User created') ); +} + +# }}} + + + +# {{{ SetPrivileged + +=head2 SetPrivileged BOOL + +If passed a true value, makes this user a member of the "Privileged" PseudoGroup. +Otherwise, makes this user a member of the "Unprivileged" pseudogroup. + +Returns a standard RT tuple of (val, msg); + +=begin testing + + +ok(my $user = RT::User->new($RT::SystemUser)); +ok($user->Load('root'), "Loaded user 'root'"); +ok($user->Privileged, "User 'root' is privileged"); +ok(my ($v,$m) = $user->SetPrivileged(0)); +ok ($v ==1, "Set unprivileged suceeded ($m)"); +ok(!$user->Privileged, "User 'root' is no longer privileged"); +ok(my ($v2,$m2) = $user->SetPrivileged(1)); +ok ($v2 ==1, "Set privileged suceeded ($m2"); +ok($user->Privileged, "User 'root' is privileged again"); + +=end testing + +=cut + +sub SetPrivileged { + my $self = shift; + my $val = shift; + + my $priv = RT::Group->new($self->CurrentUser); + $priv->LoadSystemInternalGroup('Privileged'); + + unless ($priv->Id) { + $RT::Logger->crit("Could not find Privileged pseudogroup"); + return(0,$self->loc("Failed to find 'Privileged' users pseudogroup.")); + } + + my $unpriv = RT::Group->new($self->CurrentUser); + $unpriv->LoadSystemInternalGroup('Unprivileged'); + unless ($unpriv->Id) { + $RT::Logger->crit("Could not find unprivileged pseudogroup"); + return(0,$self->loc("Failed to find 'Unprivileged' users pseudogroup")); + } + + if ($val) { + if ($priv->HasMember($self->PrincipalObj)) { + #$RT::Logger->debug("That user is already privileged"); + return (0,$self->loc("That user is already privileged")); + } + if ($unpriv->HasMember($self->PrincipalObj)) { + $unpriv->DeleteMember($self->PrincipalId); + } else { + # if we had layered transactions, life would be good + # sadly, we have to just go ahead, even if something + # bogus happened + $RT::Logger->crit("User ".$self->Id." is neither privileged nor ". + "unprivileged. something is drastically wrong."); + } + my ($status, $msg) = $priv->AddMember($self->PrincipalId); + if ($status) { + return (1, $self->loc("That user is now privileged")); + } else { + return (0, $msg); + } + } + else { + if ($unpriv->HasMember($self->PrincipalObj)) { + #$RT::Logger->debug("That user is already unprivileged"); + return (0,$self->loc("That user is already unprivileged")); + } + if ($priv->HasMember($self->PrincipalObj)) { + $priv->DeleteMember($self->PrincipalId); + } else { + # if we had layered transactions, life would be good + # sadly, we have to just go ahead, even if something + # bogus happened + $RT::Logger->crit("User ".$self->Id." is neither privileged nor ". + "unprivileged. something is drastically wrong."); + } + my ($status, $msg) = $unpriv->AddMember($self->PrincipalId); + if ($status) { + return (1, $self->loc("That user is now unprivileged")); + } else { + return (0, $msg); + } + } +} + +# }}} + +# {{{ Privileged + +=head2 Privileged + +Returns true if this user is privileged. Returns undef otherwise. + +=cut + +sub Privileged { + my $self = shift; + my $priv = RT::Group->new($self->CurrentUser); + $priv->LoadSystemInternalGroup('Privileged'); + if ($priv->HasMember($self->PrincipalObj)) { + return(1); + } + else { + return(undef); + } +} + +# }}} + +# {{{ sub _BootstrapCreate + +#create a user without validating _any_ data. + +#To be used only on database init. +# We can't localize here because it's before we _have_ a loc framework + +sub _BootstrapCreate { + my $self = shift; + my %args = (@_); + + $args{'Password'} = '*NO-PASSWORD*'; + + + $RT::Handle->BeginTransaction(); + + # Groups deal with principal ids, rather than user ids. + # When creating this user, set up a principal Id for it. + my $principal = RT::Principal->new($self->CurrentUser); + my $principal_id = $principal->Create(PrincipalType => 'User', ObjectId => '0'); + $principal->__Set(Field => 'ObjectId', Value => $principal_id); + + # If we couldn't create a principal Id, get the fuck out. + unless ($principal_id) { + $RT::Handle->Rollback(); + $RT::Logger->crit("Couldn't create a Principal on new user create. Strange things are afoot at the circle K"); + return ( 0, 'Could not create user' ); + } + $self->SUPER::Create(id => $principal_id, %args); + my $id = $self->Id; + #If the create failed. + unless ($id) { + $RT::Handle->Rollback(); + return ( 0, 'Could not create user' ) ; #never loc this + } + + my $aclstash = RT::Group->new($self->CurrentUser); + my $stash_id = $aclstash->_CreateACLEquivalenceGroup($principal); + + unless ($stash_id) { + $RT::Handle->Rollback(); + $RT::Logger->crit("Couldn't stash the user in groupmembers"); + return ( 0, $self->loc('Could not create user') ); + } + + + $RT::Handle->Commit(); + + return ( $id, 'User created' ); +} + +# }}} + +# {{{ sub Delete + +sub Delete { + my $self = shift; + + return ( 0, $self->loc('Deleting this object would violate referential integrity') ); + +} + +# }}} + +# {{{ sub Load + +=head2 Load + +Load a user object from the database. Takes a single argument. +If the argument is numerical, load by the column 'id'. Otherwise, load by +the "Name" column which is the user's textual username. + +=cut + +sub Load { + my $self = shift; + my $identifier = shift || return undef; + + #if it's an int, load by id. otherwise, load by name. + if ( $identifier !~ /\D/ ) { + $self->SUPER::LoadById($identifier); + } + else { + $self->LoadByCol( "Name", $identifier ); + } +} + +# }}} + +# {{{ sub LoadByEmail + +=head2 LoadByEmail + +Tries to load this user object from the database by the user's email address. + + +=cut + +sub LoadByEmail { + my $self = shift; + my $address = shift; + + # Never load an empty address as an email address. + unless ($address) { + return (undef); + } + + $address = $self->CanonicalizeEmailAddress($address); + + #$RT::Logger->debug("Trying to load an email address: $address\n"); + return $self->LoadByCol( "EmailAddress", $address ); +} + +# }}} + +# {{{ LoadOrCreateByEmail + +=head2 LoadOrCreateByEmail ADDRESS + +Attempts to find a user who has the provided email address. If that fails, creates an unprivileged user with +the provided email address. and loads them. + +Returns a tuple of the user's id and a status message. +0 will be returned in place of the user's id in case of failure. + +=cut + +sub LoadOrCreateByEmail { + my $self = shift; + my $email = shift; + + my ($val, $message); + + $self->LoadByEmail($email); + $message = $self->loc('User loaded'); + unless ($self->Id) { + ( $val, $message ) = $self->Create( + Name => $email, + EmailAddress => $email, + RealName => $email, + Privileged => 0, + Comments => 'Autocreated when added as a watcher'); + unless ($val) { + # Deal with the race condition of two account creations at once + $self->LoadByEmail($email); + unless ($self->Id) { + sleep 5; + $self->LoadByEmail($email); + } + if ($self->Id) { + $RT::Logger->error("Recovered from creation failure due to race condition"); + $message = $self->loc("User loaded"); + } + else { + $RT::Logger->crit("Failed to create user ".$email .": " .$message); + } + } + } + + if ($self->Id) { + return($self->Id, $message); + } + else { + return(0, $message); + } + + + } + +# }}} + +# {{{ sub ValidateEmailAddress + +=head2 ValidateEmailAddress ADDRESS + +Returns true if the email address entered is not in use by another user or is +undef or ''. Returns false if it's in use. + +=cut + +sub ValidateEmailAddress { + my $self = shift; + my $Value = shift; + + # if the email address is null, it's always valid + return (1) if ( !$Value || $Value eq "" ); + + my $TempUser = RT::User->new($RT::SystemUser); + $TempUser->LoadByEmail($Value); + + if ( $TempUser->id && ( $TempUser->id != $self->id ) ) + { # if we found a user with that address + # it's invalid to set this user's address to it + return (undef); + } + else { #it's a valid email address + return (1); + } +} + +# }}} + +# {{{ sub CanonicalizeEmailAddress + + + +=item CanonicalizeEmailAddress ADDRESS + +# CanonicalizeEmailAddress converts email addresses into canonical form. +# it takes one email address in and returns the proper canonical +# form. You can dump whatever your proper local config is in here + +=cut + +sub CanonicalizeEmailAddress { + my $self = shift; + my $email = shift; + # Example: the following rule would treat all email + # coming from a subdomain as coming from second level domain + # foo.com + if ($RT::CanonicalizeEmailAddressMatch && $RT::CanonicalizeEmailAddressReplace ) { + $email =~ s/$RT::CanonicalizeEmailAddressMatch/$RT::CanonicalizeEmailAddressReplace/gi; + } + return ($email); +} + + +# }}} + + +# {{{ Password related functions + +# {{{ sub SetRandomPassword + +=head2 SetRandomPassword + +Takes no arguments. Returns a status code and a new password or an error message. +If the status is 1, the second value returned is the new password. +If the status is anything else, the new value returned is the error code. + +=cut + +sub SetRandomPassword { + my $self = shift; + + unless ( $self->CurrentUserCanModify('Password') ) { + return ( 0, $self->loc("Permission Denied") ); + } + + my $pass = $self->GenerateRandomPassword( 6, 8 ); + + # If we have "notify user on + + my ( $val, $msg ) = $self->SetPassword($pass); + + #If we got an error return the error. + return ( 0, $msg ) unless ($val); + + #Otherwise, we changed the password, lets return it. + return ( 1, $pass ); + +} + +# }}} + +# {{{ sub ResetPassword + +=head2 ResetPassword + +Returns status, [ERROR or new password]. Resets this user\'s password to +a randomly generated pronouncable password and emails them, using a +global template called "RT_PasswordChange", which can be overridden +with global templates "RT_PasswordChange_Privileged" or "RT_PasswordChange_NonPrivileged" +for privileged and Non-privileged users respectively. + +=cut + +sub ResetPassword { + my $self = shift; + + unless ( $self->CurrentUserCanModify('Password') ) { + return ( 0, $self->loc("Permission Denied") ); + } + my ( $status, $pass ) = $self->SetRandomPassword(); + + unless ($status) { + return ( 0, "$pass" ); + } + + my $template = RT::Template->new( $self->CurrentUser ); + + if ( $self->IsPrivileged ) { + $template->LoadGlobalTemplate('RT_PasswordChange_Privileged'); + } + else { + $template->LoadGlobalTemplate('RT_PasswordChange_Privileged'); + } + + unless ( $template->Id ) { + $template->LoadGlobalTemplate('RT_PasswordChange'); + } + + unless ( $template->Id ) { + $RT::Logger->crit( "$self tried to send " + . $self->Name + . " a password reminder " + . "but couldn't find a password change template" ); + } + + my $notification = RT::Action::SendPasswordEmail->new( + TemplateObj => $template, + Argument => $pass + ); + + $notification->SetTo( $self->EmailAddress ); + + my ($ret); + $ret = $notification->Prepare(); + if ($ret) { + $ret = $notification->Commit(); + } + + if ($ret) { + return ( 1, $self->loc('New password notification sent') ); + } + else { + return ( 0, $self->loc('Notification could not be sent') ); + } + +} + +# }}} + +# {{{ sub GenerateRandomPassword + +=head2 GenerateRandomPassword MIN_LEN and MAX_LEN + +Returns a random password between MIN_LEN and MAX_LEN characters long. + +=cut + +sub GenerateRandomPassword { + my $self = shift; + my $min_length = shift; + my $max_length = shift; + + #This code derived from mpw.pl, a bit of code with a sordid history + # Its notes: + + # Perl cleaned up a bit by Jesse Vincent 1/14/2001. + # Converted to perl from C by Marc Horowitz, 1/20/2000. + # Converted to C from Multics PL/I by Bill Sommerfeld, 4/21/86. + # Original PL/I version provided by Jerry Saltzer. + + my ( $frequency, $start_freq, $total_sum, $row_sums ); + + #When munging characters, we need to know where to start counting letters from + my $a = ord('a'); + + # frequency of English digraphs (from D Edwards 1/27/66) + $frequency = [ + [ + 4, 20, 28, 52, 2, 11, 28, 4, 32, 4, 6, 62, 23, 167, + 2, 14, 0, 83, 76, 127, 7, 25, 8, 1, 9, 1 + ], # aa - az + [ + 13, 0, 0, 0, 55, 0, 0, 0, 8, 2, 0, 22, 0, 0, + 11, 0, 0, 15, 4, 2, 13, 0, 0, 0, 15, 0 + ], # ba - bz + [ + 32, 0, 7, 1, 69, 0, 0, 33, 17, 0, 10, 9, 1, 0, + 50, 3, 0, 10, 0, 28, 11, 0, 0, 0, 3, 0 + ], # ca - cz + [ + 40, 16, 9, 5, 65, 18, 3, 9, 56, 0, 1, 4, 15, 6, + 16, 4, 0, 21, 18, 53, 19, 5, 15, 0, 3, 0 + ], # da - dz + [ + 84, 20, 55, 125, 51, 40, 19, 16, 50, 1, + 4, 55, 54, 146, 35, 37, 6, 191, 149, 65, + 9, 26, 21, 12, 5, 0 + ], # ea - ez + [ + 19, 3, 5, 1, 19, 21, 1, 3, 30, 2, 0, 11, 1, 0, + 51, 0, 0, 26, 8, 47, 6, 3, 3, 0, 2, 0 + ], # fa - fz + [ + 20, 4, 3, 2, 35, 1, 3, 15, 18, 0, 0, 5, 1, 4, + 21, 1, 1, 20, 9, 21, 9, 0, 5, 0, 1, 0 + ], # ga - gz + [ + 101, 1, 3, 0, 270, 5, 1, 6, 57, 0, 0, 0, 3, 2, + 44, 1, 0, 3, 10, 18, 6, 0, 5, 0, 3, 0 + ], # ha - hz + [ + 40, 7, 51, 23, 25, 9, 11, 3, 0, 0, 2, 38, 25, 202, + 56, 12, 1, 46, 79, 117, 1, 22, 0, 4, 0, 3 + ], # ia - iz + [ + 3, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0 + ], # ja - jz + [ + 1, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 6, 2, 1, 0, 2, 0, 1, 0 + ], # ka - kz + [ + 44, 2, 5, 12, 62, 7, 5, 2, 42, 1, 1, 53, 2, 2, + 25, 1, 1, 2, 16, 23, 9, 0, 1, 0, 33, 0 + ], # la - lz + [ + 52, 14, 1, 0, 64, 0, 0, 3, 37, 0, 0, 0, 7, 1, + 17, 18, 1, 2, 12, 3, 8, 0, 1, 0, 2, 0 + ], # ma - mz + [ + 42, 10, 47, 122, 63, 19, 106, 12, 30, 1, + 6, 6, 9, 7, 54, 7, 1, 7, 44, 124, + 6, 1, 15, 0, 12, 0 + ], # na - nz + [ + 7, 12, 14, 17, 5, 95, 3, 5, 14, 0, 0, 19, 41, 134, + 13, 23, 0, 91, 23, 42, 55, 16, 28, 0, 4, 1 + ], # oa - oz + [ + 19, 1, 0, 0, 37, 0, 0, 4, 8, 0, 0, 15, 1, 0, + 27, 9, 0, 33, 14, 7, 6, 0, 0, 0, 0, 0 + ], # pa - pz + [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0 + ], # qa - qz + [ + 83, 8, 16, 23, 169, 4, 8, 8, 77, 1, 10, 5, 26, 16, + 60, 4, 0, 24, 37, 55, 6, 11, 4, 0, 28, 0 + ], # ra - rz + [ + 65, 9, 17, 9, 73, 13, 1, 47, 75, 3, 0, 7, 11, 12, + 56, 17, 6, 9, 48, 116, 35, 1, 28, 0, 4, 0 + ], # sa - sz + [ + 57, 22, 3, 1, 76, 5, 2, 330, 126, 1, + 0, 14, 10, 6, 79, 7, 0, 49, 50, 56, + 21, 2, 27, 0, 24, 0 + ], # ta - tz + [ + 11, 5, 9, 6, 9, 1, 6, 0, 9, 0, 1, 19, 5, 31, + 1, 15, 0, 47, 39, 31, 0, 3, 0, 0, 0, 0 + ], # ua - uz + [ + 7, 0, 0, 0, 72, 0, 0, 0, 28, 0, 0, 0, 0, 0, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0 + ], # va - vz + [ + 36, 1, 1, 0, 38, 0, 0, 33, 36, 0, 0, 4, 1, 8, + 15, 0, 0, 0, 4, 2, 0, 0, 1, 0, 0, 0 + ], # wa - wz + [ + 1, 0, 2, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, + 1, 5, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0 + ], # xa - xz + [ + 14, 5, 4, 2, 7, 12, 12, 6, 10, 0, 0, 3, 7, 5, + 17, 3, 0, 4, 16, 30, 0, 0, 5, 0, 0, 0 + ], # ya - yz + [ + 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + ] + ]; # za - zz + + #We need to know the totals for each row + $row_sums = [ + map { + my $sum = 0; + map { $sum += $_ } @$_; + $sum; + } @$frequency + ]; + + #Frequency with which a given letter starts a word. + $start_freq = [ + 1299, 425, 725, 271, 375, 470, 93, 223, 1009, 24, + 20, 355, 379, 319, 823, 618, 21, 317, 962, 1991, + 271, 104, 516, 6, 16, 14 + ]; + + $total_sum = 0; + map { $total_sum += $_ } @$start_freq; + + my $length = $min_length + int( rand( $max_length - $min_length ) ); + + my $char = $self->GenerateRandomNextChar( $total_sum, $start_freq ); + my @word = ( $char + $a ); + for ( 2 .. $length ) { + $char = + $self->_GenerateRandomNextChar( $row_sums->[$char], + $frequency->[$char] ); + push ( @word, $char + $a ); + } + + #Return the password + return pack( "C*", @word ); + +} + +#A private helper function for RandomPassword +# Takes a row summary and a frequency chart for the next character to be searched +sub _GenerateRandomNextChar { + my $self = shift; + my ( $all, $freq ) = @_; + my ( $pos, $i ); + + for ( $pos = int( rand($all) ), $i = 0 ; + $pos >= $freq->[$i] ; + $pos -= $freq->[$i], $i++ ) + { + } + + return ($i); +} + +# }}} + +# {{{ sub SetPassword + +=head2 SetPassword + +Takes a string. Checks the string's length and sets this user's password +to that string. + +=cut + +sub SetPassword { + my $self = shift; + my $password = shift; + + unless ( $self->CurrentUserCanModify('Password') ) { + return ( 0, $self->loc('Permission Denied') ); + } + + if ( !$password ) { + return ( 0, $self->loc("No password set") ); + } + elsif ( length($password) < $RT::MinimumPasswordLength ) { + return ( 0, $self->loc("Password too short") ); + } + else { + $password = $self->_GeneratePassword($password); + return ( $self->SUPER::SetPassword( $password)); + } + +} + +=head2 _GeneratePassword PASSWORD + +returns an MD5 hash of the password passed in, in base64 encoding. + +=cut + +sub _GeneratePassword { + my $self = shift; + my $password = shift; + + my $md5 = Digest::MD5->new(); + $md5->add($password); + return ($md5->b64digest); + +} + +# }}} + +# {{{ sub IsPassword + +=head2 IsPassword + +Returns true if the passed in value is this user's password. +Returns undef otherwise. + +=cut + +sub IsPassword { + my $self = shift; + my $value = shift; + + #TODO there isn't any apparent way to legitimately ACL this + + # RT does not allow null passwords + if ( ( !defined($value) ) or ( $value eq '' ) ) { + return (undef); + } + + if ( $self->PrincipalObj->Disabled ) { + $RT::Logger->info( + "Disabled user " . $self->Name . " tried to log in" ); + return (undef); + } + + if ( ($self->__Value('Password') eq '') || + ($self->__Value('Password') eq undef) ) { + return(undef); + } + + # generate an md5 password + if ($self->_GeneratePassword($value) eq $self->__Value('Password')) { + return(1); + } + + # if it's a historical password we say ok. + + if ( $self->__Value('Password') eq crypt( $value, $self->__Value('Password') ) ) { + return (1); + } + + # no password check has succeeded. get out + + return (undef); +} + +# }}} + +# }}} + +# {{{ sub SetDisabled + +=head2 Sub SetDisabled + +Toggles the user's disabled flag. +If this flag is +set, all password checks for this user will fail. All ACL checks for this +user will fail. The user will appear in no user listings. + +=cut + +# }}} + +sub SetDisabled { + my $self = shift; + unless ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { + return (0, $self->loc('Permission Denied')); + } + return $self->PrincipalObj->SetDisabled(@_); +} + +sub Disabled { + my $self = shift; + return $self->PrincipalObj->Disabled(@_); +} + + +# {{{ Principal related routines + +=head2 PrincipalObj + +Returns the principal object for this user. returns an empty RT::Principal +if there's no principal object matching this user. +The response is cached. PrincipalObj should never ever change. + +=begin testing + +ok(my $u = RT::User->new($RT::SystemUser)); +ok($u->Load(1), "Loaded the first user"); +ok($u->PrincipalObj->ObjectId == 1, "user 1 is the first principal"); +ok($u->PrincipalObj->PrincipalType eq 'User' , "Principal 1 is a user, not a group"); + +=end testing + +=cut + + +sub PrincipalObj { + my $self = shift; + unless ($self->{'PrincipalObj'} && + ($self->{'PrincipalObj'}->ObjectId == $self->Id) && + ($self->{'PrincipalObj'}->PrincipalType eq 'User')) { + + $self->{'PrincipalObj'} = RT::Principal->new($self->CurrentUser); + $self->{'PrincipalObj'}->LoadByCols('ObjectId' => $self->Id, + 'PrincipalType' => 'User') ; + } + return($self->{'PrincipalObj'}); +} + + +=head2 PrincipalId + +Returns this user's PrincipalId + +=cut + +sub PrincipalId { + my $self = shift; + return $self->Id; +} + +# }}} + + + +# {{{ sub HasGroupRight + +=head2 HasGroupRight + +Takes a paramhash which can contain +these items: + GroupObj => RT::Group or Group => integer + Right => 'Right' + + +Returns 1 if this user has the right specified in the paramhash for the Group +passed in. + +Returns undef if they don't. + +=cut + +sub HasGroupRight { + my $self = shift; + my %args = ( + GroupObj => undef, + Group => undef, + Right => undef, + @_ + ); + + + if ( defined $args{'Group'} ) { + $args{'GroupObj'} = RT::Group->new( $self->CurrentUser ); + $args{'GroupObj'}->Load( $args{'Group'} ); + } + + # {{{ Validate and load up the GroupId + unless ( ( defined $args{'GroupObj'} ) and ( $args{'GroupObj'}->Id ) ) { + return undef; + } + + # }}} + + + # Figure out whether a user has the right we're asking about. + my $retval = $self->HasRight( + Object => $args{'GroupObj'}, + Right => $args{'Right'}, + ); + + return ($retval); + + +} + +# }}} + +# {{{ sub Rights testing + +=head2 Rights testing + + +=begin testing + +my $root = RT::User->new($RT::SystemUser); +$root->Load('root'); +ok($root->Id, "Found the root user"); +my $rootq = RT::Queue->new($root); +$rootq->Load(1); +ok($rootq->Id, "Loaded the first queue"); + +ok ($rootq->CurrentUser->HasRight(Right=> 'CreateTicket', Object => $rootq), "Root can create tickets"); + +my $new_user = RT::User->new($RT::SystemUser); +my ($id, $msg) = $new_user->Create(Name => 'ACLTest'); + +ok ($id, "Created a new user for acl test $msg"); + +my $q = RT::Queue->new($new_user); +$q->Load(1); +ok($q->Id, "Loaded the first queue"); + + +ok (!$q->CurrentUser->HasRight(Right => 'CreateTicket', Object => $q), "Some random user doesn't have the right to create tickets"); +ok (my ($gval, $gmsg) = $new_user->PrincipalObj->GrantRight( Right => 'CreateTicket', Object => $q), "Granted the random user the right to create tickets"); +ok ($gval, "Grant succeeded - $gmsg"); + + +ok ($q->CurrentUser->HasRight(Right => 'CreateTicket', Object => $q), "The user can create tickets after we grant him the right"); +ok (my ($gval, $gmsg) = $new_user->PrincipalObj->RevokeRight( Right => 'CreateTicket', Object => $q), "revoked the random user the right to create tickets"); +ok ($gval, "Revocation succeeded - $gmsg"); +ok (!$q->CurrentUser->HasRight(Right => 'CreateTicket', Object => $q), "The user can't create tickets anymore"); + + + + + +# Create a ticket in the queue +my $new_tick = RT::Ticket->new($RT::SystemUser); +my ($tickid, $tickmsg) = $new_tick->Create(Subject=> 'ACL Test', Queue => 'General'); +ok($tickid, "Created ticket: $tickid"); +# Make sure the user doesn't have the right to modify tickets in the queue +ok (!$new_user->HasRight( Object => $new_tick, Right => 'ModifyTicket'), "User can't modify the ticket without group membership"); +# Create a new group +my $group = RT::Group->new($RT::SystemUser); +$group->CreateUserDefinedGroup(Name => 'ACLTest'); +ok($group->Id, "Created a new group Ok"); +# Grant a group the right to modify tickets in a queue +ok(my ($gv,$gm) = $group->PrincipalObj->GrantRight( Object => $q, Right => 'ModifyTicket'),"Granted the group the right to modify tickets"); +ok($gv,"Grant succeeed - $gm"); +# Add the user to the group +ok( my ($aid, $amsg) = $group->AddMember($new_user->PrincipalId), "Added the member to the group"); +ok ($aid, "Member added to group: $amsg"); +# Make sure the user does have the right to modify tickets in the queue +ok ($new_user->HasRight( Object => $new_tick, Right => 'ModifyTicket'), "User can modify the ticket with group membership"); + + +# Remove the user from the group +ok( my ($did, $dmsg) = $group->DeleteMember($new_user->PrincipalId), "Deleted the member from the group"); +ok ($did,"Deleted the group member: $dmsg"); +# Make sure the user doesn't have the right to modify tickets in the queue +ok (!$new_user->HasRight( Object => $new_tick, Right => 'ModifyTicket'), "User can't modify the ticket without group membership"); + + +my $q_as_system = RT::Queue->new($RT::SystemUser); +$q_as_system->Load(1); +ok($q_as_system->Id, "Loaded the first queue"); + +# Create a ticket in the queue +my $new_tick2 = RT::Ticket->new($RT::SystemUser); +my ($tick2id, $tickmsg) = $new_tick2->Create(Subject=> 'ACL Test 2', Queue =>$q_as_system->Id); +ok($tick2id, "Created ticket: $tick2id"); +ok($new_tick2->QueueObj->id eq $q_as_system->Id, "Created a new ticket in queue 1"); + + +# make sure that the user can't do this without subgroup membership +ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can't modify the ticket without group membership"); + +# Create a subgroup +my $subgroup = RT::Group->new($RT::SystemUser); +$subgroup->CreateUserDefinedGroup(Name => 'Subgrouptest'); +ok($subgroup->Id, "Created a new group ".$subgroup->Id."Ok"); +#Add the subgroup as a subgroup of the group +my ($said, $samsg) = $group->AddMember($subgroup->PrincipalId); +ok ($said, "Added the subgroup as a member of the group"); +# Add the user to a subgroup of the group + +my ($usaid, $usamsg) = $subgroup->AddMember($new_user->PrincipalId); +ok($usaid,"Added the user ".$new_user->Id."to the subgroup"); +# Make sure the user does have the right to modify tickets in the queue +ok ($new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can modify the ticket with subgroup membership"); + +# {{{ Deal with making sure that members of subgroups of a disabled group don't have rights + +my ($id, $msg); + ($id, $msg) = $group->SetDisabled(1); + ok ($id,$msg); +ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can't modify the ticket when the group ".$group->Id. " is disabled"); + ($id, $msg) = $group->SetDisabled(0); +ok($id,$msg); +# Test what happens when we disable the group the user is a member of directly + +($id, $msg) = $subgroup->SetDisabled(1); + ok ($id,$msg); +ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can't modify the ticket when the group ".$subgroup->Id. " is disabled"); + ($id, $msg) = $subgroup->SetDisabled(0); + ok ($id,$msg); +ok ($new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can modify the ticket without group membership"); + +# }}} + + +my ($usrid, $usrmsg) = $subgroup->DeleteMember($new_user->PrincipalId); +ok($usrid,"removed the user from the group - $usrmsg"); +# Make sure the user doesn't have the right to modify tickets in the queue +ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can't modify the ticket without group membership"); + +#revoke the right to modify tickets in a queue +ok(($gv,$gm) = $group->PrincipalObj->RevokeRight( Object => $q, Right => 'ModifyTicket'),"Granted the group the right to modify tickets"); +ok($gv,"revoke succeeed - $gm"); + +# {{{ Test the user's right to modify a ticket as a _queue_ admincc for a right granted at the _queue_ level + +# Grant queue admin cc the right to modify ticket in the queue +ok(my ($qv,$qm) = $q_as_system->AdminCc->PrincipalObj->GrantRight( Object => $q_as_system, Right => 'ModifyTicket'),"Granted the queue adminccs the right to modify tickets"); +ok($qv, "Granted the right successfully - $qm"); + +# Add the user as a queue admincc +ok ((my $add_id, $add_msg) = $q_as_system->AddWatcher(Type => 'AdminCc', PrincipalId => $new_user->PrincipalId) , "Added the new user as a queue admincc"); +ok ($add_id, "the user is now a queue admincc - $add_msg"); + +# Make sure the user does have the right to modify tickets in the queue +ok ($new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can modify the ticket as an admincc"); +# Remove the user from the role group +ok ((my $del_id, $del_msg) = $q_as_system->DeleteWatcher(Type => 'AdminCc', PrincipalId => $new_user->PrincipalId) , "Deleted the new user as a queue admincc"); + +# Make sure the user doesn't have the right to modify tickets in the queue +ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can't modify the ticket without group membership"); + +# }}} + +# {{{ Test the user's right to modify a ticket as a _ticket_ admincc with the right granted at the _queue_ level + +# Add the user as a ticket admincc +ok ((my $uadd_id, $uadd_msg) = $new_tick2->AddWatcher(Type => 'AdminCc', PrincipalId => $new_user->PrincipalId) , "Added the new user as a queue admincc"); +ok ($add_id, "the user is now a queue admincc - $add_msg"); + +# Make sure the user does have the right to modify tickets in the queue +ok ($new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can modify the ticket as an admincc"); + +# Remove the user from the role group +ok ((my $del_id, $del_msg) = $new_tick2->DeleteWatcher(Type => 'AdminCc', PrincipalId => $new_user->PrincipalId) , "Deleted the new user as a queue admincc"); + +# Make sure the user doesn't have the right to modify tickets in the queue +ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can't modify the ticket without group membership"); + + +# Revoke the right to modify ticket in the queue +ok(my ($rqv,$rqm) = $q_as_system->AdminCc->PrincipalObj->RevokeRight( Object => $q_as_system, Right => 'ModifyTicket'),"Revokeed the queue adminccs the right to modify tickets"); +ok($rqv, "Revoked the right successfully - $rqm"); + +# }}} + + + +# {{{ Test the user's right to modify a ticket as a _queue_ admincc for a right granted at the _system_ level + +# Before we start Make sure the user does not have the right to modify tickets in the queue +ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can not modify the ticket without it being granted"); +ok (!$new_user->HasRight( Object => $new_tick2->QueueObj, Right => 'ModifyTicket'), "User can not modify tickets in the queue without it being granted"); + +# Grant queue admin cc the right to modify ticket in the queue +ok(my ($qv,$qm) = $q_as_system->AdminCc->PrincipalObj->GrantRight( Object => $RT::System, Right => 'ModifyTicket'),"Granted the queue adminccs the right to modify tickets"); +ok($qv, "Granted the right successfully - $qm"); + +# Make sure the user can't modify the ticket before they're added as a watcher +ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can not modify the ticket without being an admincc"); +ok (!$new_user->HasRight( Object => $new_tick2->QueueObj, Right => 'ModifyTicket'), "User can not modify tickets in the queue without being an admincc"); + +# Add the user as a queue admincc +ok ((my $add_id, $add_msg) = $q_as_system->AddWatcher(Type => 'AdminCc', PrincipalId => $new_user->PrincipalId) , "Added the new user as a queue admincc"); +ok ($add_id, "the user is now a queue admincc - $add_msg"); + +# Make sure the user does have the right to modify tickets in the queue +ok ($new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can modify the ticket as an admincc"); +ok ($new_user->HasRight( Object => $new_tick2->QueueObj, Right => 'ModifyTicket'), "User can modify tickets in the queue as an admincc"); +# Remove the user from the role group +ok ((my $del_id, $del_msg) = $q_as_system->DeleteWatcher(Type => 'AdminCc', PrincipalId => $new_user->PrincipalId) , "Deleted the new user as a queue admincc"); + +# Make sure the user doesn't have the right to modify tickets in the queue +ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can't modify the ticket without group membership"); +ok (!$new_user->HasRight( Object => $new_tick2->QueueObj, Right => 'ModifyTicket'), "User can't modify tickets in the queue without group membership"); + +# }}} + +# {{{ Test the user's right to modify a ticket as a _ticket_ admincc with the right granted at the _queue_ level + +ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can not modify the ticket without being an admincc"); +ok (!$new_user->HasRight( Object => $new_tick2->QueueObj, Right => 'ModifyTicket'), "User can not modify tickets in the queue obj without being an admincc"); + + +# Add the user as a ticket admincc +ok ((my $uadd_id, $uadd_msg) = $new_tick2->AddWatcher(Type => 'AdminCc', PrincipalId => $new_user->PrincipalId) , "Added the new user as a queue admincc"); +ok ($add_id, "the user is now a queue admincc - $add_msg"); + +# Make sure the user does have the right to modify tickets in the queue +ok ($new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can modify the ticket as an admincc"); +ok (!$new_user->HasRight( Object => $new_tick2->QueueObj, Right => 'ModifyTicket'), "User can not modify tickets in the queue obj being only a ticket admincc"); + +# Remove the user from the role group +ok ((my $del_id, $del_msg) = $new_tick2->DeleteWatcher(Type => 'AdminCc', PrincipalId => $new_user->PrincipalId) , "Deleted the new user as a queue admincc"); + +# Make sure the user doesn't have the right to modify tickets in the queue +ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can't modify the ticket without being an admincc"); +ok (!$new_user->HasRight( Object => $new_tick2->QueueObj, Right => 'ModifyTicket'), "User can not modify tickets in the queue obj without being an admincc"); + + +# Revoke the right to modify ticket in the queue +ok(my ($rqv,$rqm) = $q_as_system->AdminCc->PrincipalObj->RevokeRight( Object => $RT::System, Right => 'ModifyTicket'),"Revokeed the queue adminccs the right to modify tickets"); +ok($rqv, "Revoked the right successfully - $rqm"); + +# }}} + + + + +# Grant "privileged users" the system right to create users +# Create a privileged user. +# have that user create another user +# Revoke the right for privileged users to create users +# have the privileged user try to create another user and fail the ACL check + +=end testing + +=cut + +# }}} + + +# {{{ sub HasRight + +=head2 sub HasRight + +Shim around PrincipalObj->HasRight. See RT::Principal + +=cut + +sub HasRight { + + my $self = shift; + return $self->PrincipalObj->HasRight(@_); +} + +# }}} + +# {{{ sub CurrentUserCanModify + +=head2 CurrentUserCanModify RIGHT + +If the user has rights for this object, either because +he has 'AdminUsers' or (if he\'s trying to edit himself and the right isn\'t an +admin right) 'ModifySelf', return 1. otherwise, return undef. + +=cut + +sub CurrentUserCanModify { + my $self = shift; + my $right = shift; + + if ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { + return (1); + } + + #If the field is marked as an "administrators only" field, + # don\'t let the user touch it. + elsif ( $self->_Accessible( $right, 'admin' ) ) { + return (undef); + } + + #If the current user is trying to modify themselves + elsif ( ( $self->id == $self->CurrentUser->id ) + and ( $self->CurrentUser->HasRight(Right => 'ModifySelf', Object => $RT::System) ) ) + { + return (1); + } + + #If we don\'t have a good reason to grant them rights to modify + # by now, they lose + else { + return (undef); + } + +} + +# }}} + +# {{{ sub CurrentUserHasRight + +=head2 CurrentUserHasRight + + Takes a single argument. returns 1 if $Self->CurrentUser + has the requested right. returns undef otherwise + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + + return ( $self->CurrentUser->HasRight(Right => $right, Object => $RT::System) ); +} + +# }}} + +# {{{ sub _Set + +sub _Set { + my $self = shift; + + my %args = ( + Field => undef, + Value => undef, + @_ + ); + + # Nobody is allowed to futz with RT_System or Nobody + + if ( ($self->Id == $RT::SystemUser->Id ) || + ($self->Id == $RT::Nobody->Id)) { + return ( 0, $self->loc("Can not modify system users") ); + } + unless ( $self->CurrentUserCanModify( $args{'Field'} ) ) { + return ( 0, $self->loc("Permission Denied") ); + } + + #Set the new value + my ( $ret, $msg ) = $self->SUPER::_Set( + Field => $args{'Field'}, + Value => $args{'Value'} + ); + + return ( $ret, $msg ); +} + +# }}} + +# {{{ sub _Value + +=head2 _Value + +Takes the name of a table column. +Returns its value as a string, if the user passes an ACL check + +=cut + +sub _Value { + + my $self = shift; + my $field = shift; + + #If the current user doesn't have ACLs, don't let em at it. + + my @PublicFields = qw( Name EmailAddress Organization Disabled + RealName NickName Gecos ExternalAuthId + AuthSystem ExternalContactInfoId + ContactInfoSystem ); + + #if the field is public, return it. + if ( $self->_Accessible( $field, 'public' ) ) { + return ( $self->SUPER::_Value($field) ); + + } + + #If the user wants to see their own values, let them + # TODO figure ouyt a better way to deal with this + elsif ( $self->CurrentUser->Id == $self->Id ) { + return ( $self->SUPER::_Value($field) ); + } + + #If the user has the admin users right, return the field + elsif ( $self->CurrentUser->HasRight(Right =>'AdminUsers', Object => $RT::System) ) { + return ( $self->SUPER::_Value($field) ); + } + else { + return (undef); + } + +} + +# }}} + + +1; + + diff --git a/rt/lib/RT/Users.pm b/rt/lib/RT/Users.pm index f4a97268c..d58f69653 100755 --- a/rt/lib/RT/Users.pm +++ b/rt/lib/RT/Users.pm @@ -1,281 +1,115 @@ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Users.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-1999 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL =head1 NAME - RT::Users - Collection of RT::User objects - + RT::Users -- Class Description + =head1 SYNOPSIS - use RT::Users; - + use RT::Users =head1 DESCRIPTION =head1 METHODS -=begin testing - -ok(require RT::TestHarness); -ok(require RT::Users); - -=end testing - =cut package RT::Users; -use RT::EasySearch; -@ISA = qw(RT::EasySearch); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Users"; - $self->{'primary_key'} = "id"; - - # By default, order by name - $self->OrderBy( ALIAS => 'main', - FIELD => 'Name', - ORDER => 'ASC'); - - return ($self->SUPER::_Init(@_)); - -} -# }}} - -# {{{ sub _DoSearch - -=head2 _DoSearch - - A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless -we're explicitly trying to see them. - -=cut - -sub _DoSearch { - my $self = shift; - - #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. - unless($self->{'find_disabled_rows'}) { - $self->LimitToEnabled(); - } - - return($self->SUPER::_DoSearch(@_)); - -} - -# }}} - -# {{{ sub NewItem - -sub NewItem { - my $self = shift; - use RT::User; - my $item = new RT::User($self->CurrentUser); - return($item); -} -# }}} - -# {{{ LimitToEmail -=head2 LimitToEmail +use RT::SearchBuilder; +use RT::User; -Takes one argument. an email address. limits the returned set to -that email address +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -=cut -sub LimitToEmail { +sub _Init { my $self = shift; - my $addr = shift; - $self->Limit(FIELD => 'EmailAddress', VALUE => "$addr"); -} - -# }}} - -# {{{ MemberOfGroup - -=head2 MemberOfGroup - -takes one argument, a group id number. Limits the returned set -to members of a given group - -=cut - -sub MemberOfGroup { - my $self = shift; - my $group = shift; - - return ("No group specified") if (!defined $group); - - my $groupalias = $self->NewAlias('GroupMembers'); - - $self->Join( ALIAS1 => 'main', FIELD1 => 'id', - ALIAS2 => "$groupalias", FIELD2 => 'Name'); - - $self->Limit (ALIAS => "$groupalias", - FIELD => 'GroupId', - VALUE => "$group", - OPERATOR => "=" - ); -} - -# }}} - -# {{{ LimitToPrivileged - -=head2 LimitToPrivileged - -Limits to users who can be made members of ACLs and groups + $self->{'table'} = 'Users'; + $self->{'primary_key'} = 'id'; -=cut -sub LimitToPrivileged { - my $self = shift; - $self->Limit( FIELD => 'Privileged', - OPERATOR => '=', - VALUE => '1'); + return ( $self->SUPER::_Init(@_) ); } -# }}} - - - -# {{{ LimitToSystem -=head2 LimitToSystem +=item NewItem -Limits to users who can be granted rights, but who should -never have their rights modified by a user or be made members of groups. +Returns an empty new RT::User item =cut -sub LimitToSystem { +sub NewItem { my $self = shift; - $self->Limit( FIELD => 'Privileged', - OPERATOR => '=', - VALUE => '2'); + return(RT::User->new($self->CurrentUser)); } -# }}} - -# {{{ HasQueueRight - -=head2 HasQueueRight - -Takes a queue id as its first argument. Queue Id "0" is treated by RT as "applies to all queues" -Takes a specific right as an optional second argument - -Limits the returned set to users who have rights in the queue specified, personally. If the optional second argument is supplied, limits to users who have been explicitly granted that right. - - - -This should not be used as an ACL check, but only for obtaining lists of -users with explicit rights in a given queue. - -=cut - -sub HasQueueRight { - my $self = shift; - my $queue = shift; - my $right; - - $right = shift if (@_); - + eval "require RT::Users_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Users_Overlay.pm}) { + die $@; + }; - my $acl_alias = $self->NewAlias('ACL'); - $self->Join( ALIAS1 => 'main', FIELD1 => 'id', - ALIAS2 => $acl_alias, FIELD2 => 'PrincipalId'); - $self->Limit (ALIAS => $acl_alias, - FIELD => 'PrincipalType', - OPERATOR => '=', - VALUE => 'User'); + eval "require RT::Users_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Users_Vendor.pm}) { + die $@; + }; + eval "require RT::Users_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Users_Local.pm}) { + die $@; + }; - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightAppliesTo', - OPERATOR => '=', - VALUE => "$queue"); - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightScope', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - VALUE => 'Queue'); +=head1 SEE ALSO - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightScope', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - VALUE => 'Ticket'); +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. - #TODO: is this being initialized properly if the right isn't there? - if (defined ($right)) { - - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightName', - OPERATOR => '=', - VALUE => "$right"); - - - }; +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); -} - - - -# }}} - -# {{{ HasSystemRight +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. -=head2 HasSystemRight - -Takes one optional argument: - The name of a System level right. - -Limits the returned set to users who have been granted system rights, personally. If the optional argument is passed in, limits to users who have been granted the explicit right listed. Please see the note attached to LimitToQueueRights +RT::Users_Overlay, RT::Users_Vendor, RT::Users_Local =cut -sub HasSystemRight { - my $self = shift; - my $right = shift if (@_); - my $acl_alias = $self->NewAlias('ACL'); - - - $self->Join( ALIAS1 => 'main', FIELD1 => 'id', - ALIAS2 => $acl_alias, FIELD2 => 'PrincipalId'); - $self->Limit (ALIAS => $acl_alias, - FIELD => 'PrincipalType', - OPERATOR => '=', - VALUE => 'User'); - - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightScope', - OPERATOR => '=', - VALUE => 'System'); - - - #TODO: is this being initialized properly if the right isn't there? - if (defined ($right)) { - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightName', - OPERATOR => '=', - VALUE => "$right"); - - } - - -} - -# }}} 1; - diff --git a/rt/lib/RT/Users_Overlay.pm b/rt/lib/RT/Users_Overlay.pm new file mode 100644 index 000000000..b397c3bc4 --- /dev/null +++ b/rt/lib/RT/Users_Overlay.pm @@ -0,0 +1,290 @@ +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2002 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 +=head1 NAME + + RT::Users - Collection of RT::User objects + +=head1 SYNOPSIS + + use RT::Users; + + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok(require RT::Users); + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + +# {{{ sub _Init +sub _Init { + my $self = shift; + $self->{'table'} = 'Users'; + $self->{'primary_key'} = 'id'; + + + + my @result = $self->SUPER::_Init(@_); + # By default, order by name + $self->OrderBy( ALIAS => 'main', + FIELD => 'Name', + ORDER => 'ASC' ); + + $self->{'princalias'} = $self->NewAlias('Principals'); + + $self->Join( ALIAS1 => 'main', + FIELD1 => 'id', + ALIAS2 => $self->{'princalias'}, + FIELD2 => 'id' ); + + $self->Limit( ALIAS => $self->{'princalias'}, + FIELD => 'PrincipalType', + OPERATOR => '=', + VALUE => 'User' ); + return (@result); +} + +# }}} + +# {{{ sub _DoSearch + +=head2 _DoSearch + + A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless +we're explicitly trying to see them. + +=cut + +sub _DoSearch { + my $self = shift; + + #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. + unless ( $self->{'find_disabled_rows'} ) { + $self->LimitToEnabled(); + } + return ( $self->SUPER::_DoSearch(@_) ); + +} + +# }}} +# {{{ sub LimitToEnabled + +=head2 LimitToEnabled + +Only find items that haven\'t been disabled + +=cut + +sub LimitToEnabled { + my $self = shift; + + $self->Limit( ALIAS => $self->{'princalias'}, + FIELD => 'Disabled', + VALUE => '0', + OPERATOR => '=' ); +} + +# }}} + +# {{{ LimitToEmail + +=head2 LimitToEmail + +Takes one argument. an email address. limits the returned set to +that email address + +=cut + +sub LimitToEmail { + my $self = shift; + my $addr = shift; + $self->Limit( FIELD => 'EmailAddress', VALUE => "$addr" ); +} + +# }}} + +# {{{ MemberOfGroup + +=head2 MemberOfGroup PRINCIPAL_ID + +takes one argument, a group's principal id. Limits the returned set +to members of a given group + +=cut + +sub MemberOfGroup { + my $self = shift; + my $group = shift; + + return $self->loc("No group specified") if ( !defined $group ); + + my $groupalias = $self->NewAlias('CachedGroupMembers'); + + # Join the principal to the groups table + $self->Join( ALIAS1 => $self->{'princalias'}, + FIELD1 => 'id', + ALIAS2 => $groupalias, + FIELD2 => 'MemberId' ); + + $self->Limit( ALIAS => "$groupalias", + FIELD => 'GroupId', + VALUE => "$group", + OPERATOR => "=" ); +} + +# }}} + +# {{{ LimitToPrivileged + +=head2 LimitToPrivileged + +Limits to users who can be made members of ACLs and groups + +=cut + +sub LimitToPrivileged { + my $self = shift; + + my $priv = RT::Group->new( $self->CurrentUser ); + $priv->LoadSystemInternalGroup('Privileged'); + unless ( $priv->Id ) { + $RT::Logger->crit("Couldn't find a privileged users group"); + } + $self->MemberOfGroup( $priv->PrincipalId ); +} + +# }}} + +# {{{ WhoHaveRight + +=head2 WhoHaveRight { Right => 'name', Object => $rt_object , IncludeSuperusers => undef, IncludeSubgroupMembers => undef, IncludeSystemRights => undef } + +=begin testing + +ok(my $users = RT::Users->new($RT::SystemUser)); +$users->WhoHaveRight(Object =>$RT::System, Right =>'SuperUser'); +ok($users->Count == 1, "There is one privileged superuser - Found ". $users->Count ); +# TODO: this wants more testing + + +=end testing + + +find all users who the right Right for this group, either individually +or as members of groups + + + + + +=cut + +sub WhoHaveRight { + my $self = shift; + my %args = ( Right => undef, + Object => => undef, + IncludeSystemRights => undef, + IncludeSuperusers => undef, + IncludeSubgroupMembers => 1, + @_ ); + + if (defined $args{'ObjectType'} || defined $args{'ObjectId'}) { + $RT::Logger->crit("$self WhoHaveRight called with the Obsolete ObjectId/ObjectType API"); + return(undef); + } + my @privgroups; + my $Groups = RT::Groups->new($RT::SystemUser); + $Groups->WithRight(Right=> $args{'Right'}, + Object => $args{'Object'}, + IncludeSystemRights => $args{'IncludeSystemRights'}, + IncludeSuperusers => $args{'IncludeSuperusers'}); + while (my $Group = $Groups->Next()) { + push @privgroups, $Group->Id(); + } + + $self->WhoBelongToGroups(Groups => \@privgroups, + IncludeSubgroupMembers => $args{'IncludeSubgroupMembers'}); +} + +# }}} + +# {{{ WhoBelongToGroups + +=head2 WhoBelongToGroups { Groups => ARRAYREF, IncludeSubgroupMembers => 1 } + +=cut + +sub WhoBelongToGroups { + my $self = shift; + my %args = ( Groups => undef, + IncludeSubgroupMembers => 1, + @_ ); + + # Unprivileged users can't be granted real system rights. + # is this really the right thing to be saying? + $self->LimitToPrivileged(); + + my $userprinc = $self->{'princalias'}; + my $cgm; + + # The cachedgroupmembers table is used for unrolling group memberships to allow fast lookups + # if we bind to CachedGroupMembers, we'll find all members of groups recursively. + # if we don't we'll find only 'direct' members of the group in question + + if ( $args{'IncludeSubgroupMembers'} ) { + $cgm = $self->NewAlias('CachedGroupMembers'); + } + else { + $cgm = $self->NewAlias('GroupMembers'); + } + + # {{{ Tie the users we're returning ($userprinc) to the groups that have rights granted to them ($groupprinc) + $self->Join( ALIAS1 => $cgm, FIELD1 => 'MemberId', + ALIAS2 => $userprinc, FIELD2 => 'id' ); + # }}} + + # my $and_check_groups = "($cgm.GroupId = NULL"; + foreach my $groupid (@{$args{'Groups'}}) { + $self->Limit(ALIAS => $cgm, FIELD => 'GroupId', VALUE => $groupid, QUOTEVALUE => 0, ENTRYAGGREGATOR=> 'OR') + + #$and_check_groups .= " OR $cgm.GroupId = $groupid"; + } + #$and_check_groups .= ")"; + + #$self->_AddSubClause("WhichGroup", $and_check_groups); +} +# }}} + + +1; diff --git a/rt/lib/t/00smoke.t b/rt/lib/t/00smoke.t new file mode 100644 index 000000000..4f36bb346 --- /dev/null +++ b/rt/lib/t/00smoke.t @@ -0,0 +1,14 @@ +#!/usr/bin/perl + +use Test::More qw(no_plan); + +use lib "/opt/rt3/lib"; +use RT; +ok(RT::LoadConfig); +ok(RT::Init, "Basic initialization and DB connectivity"); + +use File::Find; +File::Find::find({wanted => \&wanted}, '.'); +sub wanted { /^*\.pm\z/s && ok(require $_, "Requiring '$_'"); } + + diff --git a/rt/lib/t/00smoke.t.in b/rt/lib/t/00smoke.t.in new file mode 100644 index 000000000..11f0a9c43 --- /dev/null +++ b/rt/lib/t/00smoke.t.in @@ -0,0 +1,14 @@ +#!@PERL@ + +use Test::More qw(no_plan); + +use lib "@RT_LIB_PATH@"; +use RT; +ok(RT::LoadConfig); +ok(RT::Init, "Basic initialization and DB connectivity"); + +use File::Find; +File::Find::find({wanted => \&wanted}, '.'); +sub wanted { /^*\.pm\z/s && ok(require $_, "Requiring '$_'"); } + + diff --git a/rt/lib/t/01harness.t b/rt/lib/t/01harness.t new file mode 100644 index 000000000..98c28d2ba --- /dev/null +++ b/rt/lib/t/01harness.t @@ -0,0 +1,12 @@ +#!/usr/bin/perl + +use Test::More qw(no_plan); + +use lib "/opt/rt3/lib"; +use RT; +ok(RT::LoadConfig); +ok(RT::Init, "Basic initialization and DB connectivity"); + +my $test = shift @ARGV; +require $test; + diff --git a/rt/lib/t/01harness.t.in b/rt/lib/t/01harness.t.in new file mode 100644 index 000000000..d132330c2 --- /dev/null +++ b/rt/lib/t/01harness.t.in @@ -0,0 +1,12 @@ +#!@PERL@ + +use Test::More qw(no_plan); + +use lib "@RT_LIB_PATH@"; +use RT; +ok(RT::LoadConfig); +ok(RT::Init, "Basic initialization and DB connectivity"); + +my $test = shift @ARGV; +require $test; + diff --git a/rt/lib/t/02regression.t b/rt/lib/t/02regression.t new file mode 100644 index 000000000..62b4e9a69 --- /dev/null +++ b/rt/lib/t/02regression.t @@ -0,0 +1,44 @@ +#!/usr/bin/perl + +use Test::More qw(no_plan); + +use lib "/opt/rt3/lib"; +use RT; +ok(RT::LoadConfig); +ok(RT::Init, "Basic initialization and DB connectivity"); + +# Create a new queue +use_ok(RT::Queue); +my $q = RT::Queue->new($RT::SystemUser); + +$q->Load('regression'); +if ($q->id != 0) { + die "Regression tests not starting with a clean DB. Bailing"; +} + +my ($id, $msg) = $q->Create( Name => 'Regression', + Description => 'A regression test queue', + CorrespondAddress => 'correspond@a', + CommentAddress => 'comment@a'); + +isnt($id, 0, "Queue was created sucessfully - $msg"); + +my $q2 = RT::Queue->new($RT::SystemUser); + +ok($q2->Load($id)); +is($q2->id, $id, "Sucessfully loaded the queue again"); +is($q2->Name, 'Regression'); +is($q2->Description, 'A regression test queue'); +is($q2->CorrespondAddress, 'correspond@a'); +is($q2->CommentAddress, 'comment@a'); + + +use File::Find; +File::Find::find({wanted => \&wanted_autogen}, 'lib/t/autogen'); +sub wanted_autogen { /^autogen.*\.t\z/s && require $_; } + +File::Find::find({wanted => \&wanted_regression}, 'lib/t/regression'); +sub wanted_regression { /^*\.t\z/s && require $_; } + +require "lib/t/03web.pl"; +require "lib/t/04_send_email.pl"; diff --git a/rt/lib/t/02regression.t.in b/rt/lib/t/02regression.t.in new file mode 100644 index 000000000..51cd7e378 --- /dev/null +++ b/rt/lib/t/02regression.t.in @@ -0,0 +1,44 @@ +#!@PERL@ + +use Test::More qw(no_plan); + +use lib "@RT_LIB_PATH@"; +use RT; +ok(RT::LoadConfig); +ok(RT::Init, "Basic initialization and DB connectivity"); + +# Create a new queue +use_ok(RT::Queue); +my $q = RT::Queue->new($RT::SystemUser); + +$q->Load('regression'); +if ($q->id != 0) { + die "Regression tests not starting with a clean DB. Bailing"; +} + +my ($id, $msg) = $q->Create( Name => 'Regression', + Description => 'A regression test queue', + CorrespondAddress => 'correspond@a', + CommentAddress => 'comment@a'); + +isnt($id, 0, "Queue was created sucessfully - $msg"); + +my $q2 = RT::Queue->new($RT::SystemUser); + +ok($q2->Load($id)); +is($q2->id, $id, "Sucessfully loaded the queue again"); +is($q2->Name, 'Regression'); +is($q2->Description, 'A regression test queue'); +is($q2->CorrespondAddress, 'correspond@a'); +is($q2->CommentAddress, 'comment@a'); + + +use File::Find; +File::Find::find({wanted => \&wanted_autogen}, 'lib/t/autogen'); +sub wanted_autogen { /^autogen.*\.t\z/s && require $_; } + +File::Find::find({wanted => \&wanted_regression}, 'lib/t/regression'); +sub wanted_regression { /^*\.t\z/s && require $_; } + +require "lib/t/03web.pl"; +require "lib/t/04_send_email.pl"; diff --git a/rt/lib/t/03web.pl b/rt/lib/t/03web.pl new file mode 100644 index 000000000..4500ff281 --- /dev/null +++ b/rt/lib/t/03web.pl @@ -0,0 +1,62 @@ +#!/usr/bin/perl + +use strict; +use WWW::Mechanize; +use HTTP::Request::Common; +use HTTP::Cookies; +use LWP; + +my $cookie_jar = HTTP::Cookies->new; +my $agent = WWW::Mechanize->new(); + +# give the agent a place to stash the cookies + +$agent->cookie_jar($cookie_jar); + + +# get the top page +my $url = "http://localhost/"; +$agent->get($url); + +is ($agent->{'status'}, 200, "Loaded a page"); + + +# {{{ test a login + +# follow the link marked "Login" + +ok($agent->{form}->find_input('user')); + +ok($agent->{form}->find_input('pass')); +ok ($agent->{'content'} =~ /username:/i); +$agent->field( 'user' => 'root' ); +$agent->field( 'pass' => 'password' ); +# the field isn't named, so we have to click link 0 +$agent->click(0); +is($agent->{'status'}, 200, "Fetched the page ok"); +ok( $agent->{'content'} =~ /Logout/i, "Found a logout link"); + + +use File::Find; +find ( \&wanted , 'html/'); + +sub wanted { + -f && /\.html$/ && $_ !~ /Logout.html$/ && test_get($File::Find::name); +} + +sub test_get { + my $file = shift; + + + $file =~ s#^html/##; + ok ($agent->get("$url/$file", "GET $url/$file")); + is ($agent->{'status'}, 200, "Loaded $file"); + ok( $agent->{'content'} =~ /Logout/i, "Found a logout link on $file "); + ok( $agent->{'content'} !~ /Not logged in/i, "Still logged in for $file"); + ok( $agent->{'content'} !~ /System error/i, "Didn't get a Mason compilation error on $file"); + +} + +# }}} + +1; diff --git a/rt/lib/t/03web.pl.in b/rt/lib/t/03web.pl.in new file mode 100644 index 000000000..abe446eeb --- /dev/null +++ b/rt/lib/t/03web.pl.in @@ -0,0 +1,62 @@ +#!@PERL@ + +use strict; +use WWW::Mechanize; +use HTTP::Request::Common; +use HTTP::Cookies; +use LWP; + +my $cookie_jar = HTTP::Cookies->new; +my $agent = WWW::Mechanize->new(); + +# give the agent a place to stash the cookies + +$agent->cookie_jar($cookie_jar); + + +# get the top page +my $url = "http://localhost/"; +$agent->get($url); + +is ($agent->{'status'}, 200, "Loaded a page"); + + +# {{{ test a login + +# follow the link marked "Login" + +ok($agent->{form}->find_input('user')); + +ok($agent->{form}->find_input('pass')); +ok ($agent->{'content'} =~ /username:/i); +$agent->field( 'user' => 'root' ); +$agent->field( 'pass' => 'password' ); +# the field isn't named, so we have to click link 0 +$agent->click(0); +is($agent->{'status'}, 200, "Fetched the page ok"); +ok( $agent->{'content'} =~ /Logout/i, "Found a logout link"); + + +use File::Find; +find ( \&wanted , 'html/'); + +sub wanted { + -f && /\.html$/ && $_ !~ /Logout.html$/ && test_get($File::Find::name); +} + +sub test_get { + my $file = shift; + + + $file =~ s#^html/##; + ok ($agent->get("$url/$file", "GET $url/$file")); + is ($agent->{'status'}, 200, "Loaded $file"); + ok( $agent->{'content'} =~ /Logout/i, "Found a logout link on $file "); + ok( $agent->{'content'} !~ /Not logged in/i, "Still logged in for $file"); + ok( $agent->{'content'} !~ /System error/i, "Didn't get a Mason compilation error on $file"); + +} + +# }}} + +1; diff --git a/rt/lib/t/04_send_email.pl b/rt/lib/t/04_send_email.pl new file mode 100644 index 000000000..46e3d7472 --- /dev/null +++ b/rt/lib/t/04_send_email.pl @@ -0,0 +1,389 @@ +#!/usr/bin/perl -w + +use strict; +use RT::EmailParser; +use RT::Tickets; +use RT::Action::SendEmail; + +my @_outgoing_messages; +my @scrips_fired; + +#We're not testing acls here. +my $everyone = RT::Group->new($RT::SystemUser); +$everyone->LoadSystemInternalGroup('Everyone'); +$everyone->PrincipalObj->GrantRight(Right =>'SuperUser'); + + +is (__PACKAGE__, 'main', "We're operating in the main package"); + + +{ +no warnings qw/redefine/; +sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + + main::_fired_scrip($self->ScripObj); + main::ok(ref($MIME) eq 'MIME::Entity', "hey, look. it's a mime entity"); +} + +} + +# instrument SendEmail to pass us what it's about to send. +# create a regular ticket + +my $parser = RT::EmailParser->new(); +$parser->ParseMIMEEntityFromScalar('From: root@localhost +To: rt@example.com +Subject: This is a test of new ticket creation as an unknown user + +Blah! +Foob!'); + + +use Data::Dumper; + +my $ticket = RT::Ticket->new($RT::SystemUser); +my ($id, $tid, $msg ) = $ticket->Create(Requestor => ['root@localhost'], Queue => 'general', Subject => 'I18NTest', MIMEObj => $parser->Entity); +ok ($id,$msg); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); +ok ($tick->Subject eq 'I18NTest', "failed to create the new ticket from an unprivileged account"); + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); +# make sure it sends an autoreply +# make sure it sends a notification to adminccs + + +# we need to swap out SendMessage to test the new things we care about; +&utf8_redef_sendmessage; + +# create an iso 8859-1 ticket +@scrips_fired = (); + +my $content = `cat ./lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; + + + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +use RT::Interface::Email; + + RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); + + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); +# make sure it sends an autoreply + + +# make sure it sends a notification to adminccs + +# If we correspond, does it do the right thing to the outbound messages? + +$parser->ParseMIMEEntityFromScalar($content); +my ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); +ok ($id, $msg); + +$parser->ParseMIMEEntityFromScalar($content); +($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); +ok ($id, $msg); + + +# we need to swap out SendMessage to test the new things we care about; +&iso8859_redef_sendmessage; +$RT::EmailOutputEncoding = 'iso-8859-1'; +# create an iso 8859-1 ticket +@scrips_fired = (); + +my $content = `cat ./lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; +# be as much like the mail gateway as possible. +use RT::Interface::Email; + + RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); + + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); +# make sure it sends an autoreply + + +# make sure it sends a notification to adminccs + + +# If we correspond, does it do the right thing to the outbound messages? + +$parser->ParseMIMEEntityFromScalar($content); +my ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); +ok ($id, $msg); + +$parser->ParseMIMEEntityFromScalar($content); +($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); +ok ($id, $msg); + + +sub _fired_scrip { + my $scrip = shift; + push @scrips_fired, $scrip; +} + +sub utf8_redef_sendmessage { + no warnings qw/redefine/; + eval ' + sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + + my $scrip = $self->ScripObj->id; + ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); + main::_fired_scrip($self->ScripObj); + $MIME->make_singlepart; + main::ok( ref($MIME) eq \'MIME::Entity\', + "hey, look. it\'s a mime entity" ); + main::ok( ref( $MIME->head ) eq \'MIME::Head\', + "its mime header is a mime header. yay" ); + main::ok( $MIME->head->get(\'Content-Type\') =~ /utf-8/, + "Its content type is utf-8" ); + my $message_as_string = $MIME->bodyhandle->as_string(); + use Encode; + $message_as_string = Encode::decode_utf8($message_as_string); + main::ok( + $message_as_string =~ /H\x{e5}vard/, +"The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); + + }'; +} + +sub iso8859_redef_sendmessage { + no warnings qw/redefine/; + eval ' + sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + + my $scrip = $self->ScripObj->id; + ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); + main::_fired_scrip($self->ScripObj); + $MIME->make_singlepart; + main::ok( ref($MIME) eq \'MIME::Entity\', + "hey, look. it\'s a mime entity" ); + main::ok( ref( $MIME->head ) eq \'MIME::Head\', + "its mime header is a mime header. yay" ); + main::ok( $MIME->head->get(\'Content-Type\') =~ /iso-8859-1/, + "Its content type is iso-8859-1 - " . $MIME->head->get("Content-Type") ); + my $message_as_string = $MIME->bodyhandle->as_string(); + use Encode; + $message_as_string = Encode::decode("iso-8859-1",$message_as_string); + main::ok( + $message_as_string =~ /H\x{e5}vard/, "The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); + + }'; +} + +# {{{ test a multipart alternative containing a text-html part with an umlaut + +my $content = `cat ./lib/t/data/multipart-alternative-with-umlaut` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +¨auts_redef_sendmessage; + +RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /causes Error/, "We recorded the content right as text-plain"); +is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments, presumably a text-plain, a text-html and a multipart alternative"); + +sub umlauts_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { }'; +} + +# }}} + +# {{{ test a text-html message with an umlaut + +my $content = `cat ./lib/t/data/text-html-with-umlaut` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_html_umlauts_redef_sendmessage; + +RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Attachments->First->Content =~ /causes Error/, "We recorded the content as containing 'causes error'"); +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content as text/html"); +ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); + +sub text_html_umlauts_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + use Data::Dumper; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); + is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); + is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); + is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); + }'; +} + +# }}} + +# {{{ test a text-html message with russian characters + +my $content = `cat ./lib/t/data/text-html-in-russian` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_html_russian_redef_sendmessage; + +RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content right as text-html"); +ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); + +sub text_html_russian_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + use Data::Dumper; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); + is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); + is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); + is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); + my $content_1251; + $content_1251 = $MIME->parts(1)->bodyhandle->as_string(); + ok ($content_1251 =~ qr{Ó÷eáíûé Öeíòp "ÊÀÄÐÛ ÄÅËÎÂÎÃÎ ÌÈÐÀ" ïpèãëaøaeò ía òpeíèíã:}, +"Content matches drugim in codepage 1251" ); + }'; +} + +# }}} + +# {{{ test a message containing a russian subject and NO content type + +unshift (@RT::EmailInputEncodings, 'koi8-r'); +$RT::EmailOutputEncoding = 'koi8-r'; +my $content = `cat ./lib/t/data/russian-subject-no-content-type` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_plain_russian_redef_sendmessage; +RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/plain/, "We recorded the content type right"); +ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-plain"); +is ($tick->Subject, "\x{442}\x{435}\x{441}\x{442} \x{442}\x{435}\x{441}\x{442}", "Recorded the subject right"); +sub text_plain_russian_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + is ($MIME->head->mime_type , "text/plain", "The only part is text/plain "); + my $subject = $MIME->head->get("subject"); + chomp($subject); + #is( $subject , /^=\?KOI8-R\?B\?W2V4YW1wbGUuY39tICM3XSDUxdPUINTF09Q=\?=/ , "The $subject is encoded correctly"); + }; + '; +} + +shift @RT::EmailInputEncodings; +$RT::EmailOutputEncoding = 'utf-8'; +# }}} + + +# {{{ test a message containing a nested RFC 822 message + +my $content = `cat ./lib/t/data/nested-rfc-822` || die "couldn't find new content"; +ok ($content, "Loaded nested-rfc-822 to test"); + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_plain_nested_redef_sendmessage; +RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); +is ($tick->Subject, "[Jonas Liljegren] Re: [Para] Niv\x{e5}er?"); +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /multipart\/mixed/, "We recorded the content type right"); +is ($tick->Transactions->First->Attachments->Count , 5 , "Has one attachment, presumably a text-plain and a message RFC 822 and another plain"); +sub text_plain_nested_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + is ($MIME->head->mime_type , "multipart/mixed", "It is a mixed multipart"); + my $subject = $MIME->head->get("subject"); + $subject = MIME::Base64::decode_base64( $subject); + chomp($subject); + # TODO, why does this test fail + #ok($subject =~ qr{Niv\x{e5}er}, "The subject matches the word - $subject"); + 1; + }'; +} + +# }}} + + + + +# Don't taint the environment +$everyone->PrincipalObj->RevokeRight(Right =>'SuperUser'); +1; diff --git a/rt/lib/t/04_send_email.pl.in b/rt/lib/t/04_send_email.pl.in new file mode 100644 index 000000000..e171cdc9b --- /dev/null +++ b/rt/lib/t/04_send_email.pl.in @@ -0,0 +1,389 @@ +#!@PERL@ -w + +use strict; +use RT::EmailParser; +use RT::Tickets; +use RT::Action::SendEmail; + +my @_outgoing_messages; +my @scrips_fired; + +#We're not testing acls here. +my $everyone = RT::Group->new($RT::SystemUser); +$everyone->LoadSystemInternalGroup('Everyone'); +$everyone->PrincipalObj->GrantRight(Right =>'SuperUser'); + + +is (__PACKAGE__, 'main', "We're operating in the main package"); + + +{ +no warnings qw/redefine/; +sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + + main::_fired_scrip($self->ScripObj); + main::ok(ref($MIME) eq 'MIME::Entity', "hey, look. it's a mime entity"); +} + +} + +# instrument SendEmail to pass us what it's about to send. +# create a regular ticket + +my $parser = RT::EmailParser->new(); +$parser->ParseMIMEEntityFromScalar('From: root@localhost +To: rt@example.com +Subject: This is a test of new ticket creation as an unknown user + +Blah! +Foob!'); + + +use Data::Dumper; + +my $ticket = RT::Ticket->new($RT::SystemUser); +my ($id, $tid, $msg ) = $ticket->Create(Requestor => ['root@localhost'], Queue => 'general', Subject => 'I18NTest', MIMEObj => $parser->Entity); +ok ($id,$msg); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); +ok ($tick->Subject eq 'I18NTest', "failed to create the new ticket from an unprivileged account"); + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); +# make sure it sends an autoreply +# make sure it sends a notification to adminccs + + +# we need to swap out SendMessage to test the new things we care about; +&utf8_redef_sendmessage; + +# create an iso 8859-1 ticket +@scrips_fired = (); + +my $content = `cat ./lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; + + + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +use RT::Interface::Email; + + RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); + + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); +# make sure it sends an autoreply + + +# make sure it sends a notification to adminccs + +# If we correspond, does it do the right thing to the outbound messages? + +$parser->ParseMIMEEntityFromScalar($content); +my ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); +ok ($id, $msg); + +$parser->ParseMIMEEntityFromScalar($content); +($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); +ok ($id, $msg); + + +# we need to swap out SendMessage to test the new things we care about; +&iso8859_redef_sendmessage; +$RT::EmailOutputEncoding = 'iso-8859-1'; +# create an iso 8859-1 ticket +@scrips_fired = (); + +my $content = `cat ./lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; +# be as much like the mail gateway as possible. +use RT::Interface::Email; + + RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); + + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); +# make sure it sends an autoreply + + +# make sure it sends a notification to adminccs + + +# If we correspond, does it do the right thing to the outbound messages? + +$parser->ParseMIMEEntityFromScalar($content); +my ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); +ok ($id, $msg); + +$parser->ParseMIMEEntityFromScalar($content); +($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); +ok ($id, $msg); + + +sub _fired_scrip { + my $scrip = shift; + push @scrips_fired, $scrip; +} + +sub utf8_redef_sendmessage { + no warnings qw/redefine/; + eval ' + sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + + my $scrip = $self->ScripObj->id; + ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); + main::_fired_scrip($self->ScripObj); + $MIME->make_singlepart; + main::ok( ref($MIME) eq \'MIME::Entity\', + "hey, look. it\'s a mime entity" ); + main::ok( ref( $MIME->head ) eq \'MIME::Head\', + "its mime header is a mime header. yay" ); + main::ok( $MIME->head->get(\'Content-Type\') =~ /utf-8/, + "Its content type is utf-8" ); + my $message_as_string = $MIME->bodyhandle->as_string(); + use Encode; + $message_as_string = Encode::decode_utf8($message_as_string); + main::ok( + $message_as_string =~ /H\x{e5}vard/, +"The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); + + }'; +} + +sub iso8859_redef_sendmessage { + no warnings qw/redefine/; + eval ' + sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + + my $scrip = $self->ScripObj->id; + ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); + main::_fired_scrip($self->ScripObj); + $MIME->make_singlepart; + main::ok( ref($MIME) eq \'MIME::Entity\', + "hey, look. it\'s a mime entity" ); + main::ok( ref( $MIME->head ) eq \'MIME::Head\', + "its mime header is a mime header. yay" ); + main::ok( $MIME->head->get(\'Content-Type\') =~ /iso-8859-1/, + "Its content type is iso-8859-1 - " . $MIME->head->get("Content-Type") ); + my $message_as_string = $MIME->bodyhandle->as_string(); + use Encode; + $message_as_string = Encode::decode("iso-8859-1",$message_as_string); + main::ok( + $message_as_string =~ /H\x{e5}vard/, "The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); + + }'; +} + +# {{{ test a multipart alternative containing a text-html part with an umlaut + +my $content = `cat ./lib/t/data/multipart-alternative-with-umlaut` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +¨auts_redef_sendmessage; + +RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /causes Error/, "We recorded the content right as text-plain"); +is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments, presumably a text-plain, a text-html and a multipart alternative"); + +sub umlauts_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { }'; +} + +# }}} + +# {{{ test a text-html message with an umlaut + +my $content = `cat ./lib/t/data/text-html-with-umlaut` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_html_umlauts_redef_sendmessage; + +RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Attachments->First->Content =~ /causes Error/, "We recorded the content as containing 'causes error'"); +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content as text/html"); +ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); + +sub text_html_umlauts_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + use Data::Dumper; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); + is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); + is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); + is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); + }'; +} + +# }}} + +# {{{ test a text-html message with russian characters + +my $content = `cat ./lib/t/data/text-html-in-russian` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_html_russian_redef_sendmessage; + +RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content right as text-html"); +ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); + +sub text_html_russian_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + use Data::Dumper; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); + is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); + is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); + is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); + my $content_1251; + $content_1251 = $MIME->parts(1)->bodyhandle->as_string(); + ok ($content_1251 =~ qr{Ó÷eáíûé Öeíòp "ÊÀÄÐÛ ÄÅËÎÂÎÃÎ ÌÈÐÀ" ïpèãëaøaeò ía òpeíèíã:}, +"Content matches drugim in codepage 1251" ); + }'; +} + +# }}} + +# {{{ test a message containing a russian subject and NO content type + +unshift (@RT::EmailInputEncodings, 'koi8-r'); +$RT::EmailOutputEncoding = 'koi8-r'; +my $content = `cat ./lib/t/data/russian-subject-no-content-type` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_plain_russian_redef_sendmessage; +RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/plain/, "We recorded the content type right"); +ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-plain"); +is ($tick->Subject, "\x{442}\x{435}\x{441}\x{442} \x{442}\x{435}\x{441}\x{442}", "Recorded the subject right"); +sub text_plain_russian_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + is ($MIME->head->mime_type , "text/plain", "The only part is text/plain "); + my $subject = $MIME->head->get("subject"); + chomp($subject); + #is( $subject , /^=\?KOI8-R\?B\?W2V4YW1wbGUuY39tICM3XSDUxdPUINTF09Q=\?=/ , "The $subject is encoded correctly"); + }; + '; +} + +shift @RT::EmailInputEncodings; +$RT::EmailOutputEncoding = 'utf-8'; +# }}} + + +# {{{ test a message containing a nested RFC 822 message + +my $content = `cat ./lib/t/data/nested-rfc-822` || die "couldn't find new content"; +ok ($content, "Loaded nested-rfc-822 to test"); + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_plain_nested_redef_sendmessage; +RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); +is ($tick->Subject, "[Jonas Liljegren] Re: [Para] Niv\x{e5}er?"); +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /multipart\/mixed/, "We recorded the content type right"); +is ($tick->Transactions->First->Attachments->Count , 5 , "Has one attachment, presumably a text-plain and a message RFC 822 and another plain"); +sub text_plain_nested_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + is ($MIME->head->mime_type , "multipart/mixed", "It is a mixed multipart"); + my $subject = $MIME->head->get("subject"); + $subject = MIME::Base64::decode_base64( $subject); + chomp($subject); + # TODO, why does this test fail + #ok($subject =~ qr{Niv\x{e5}er}, "The subject matches the word - $subject"); + 1; + }'; +} + +# }}} + + + + +# Don't taint the environment +$everyone->PrincipalObj->RevokeRight(Right =>'SuperUser'); +1; diff --git a/rt/lib/t/data/8859-15-message-series/dir b/rt/lib/t/data/8859-15-message-series/dir new file mode 100644 index 000000000..b9f8ec3ba --- /dev/null +++ b/rt/lib/t/data/8859-15-message-series/dir @@ -0,0 +1,356 @@ +Return-Path: <rt-users-admin@lists.fsck.com> +Delivered-To: j@pallas.eruditorum.org +Received: from pallas.eruditorum.org (localhost [127.0.0.1]) + by pallas.eruditorum.org (Postfix) with ESMTP + id 72E3A111B3; Mon, 26 May 2003 14:50:14 -0400 (EDT) +Delivered-To: rt-users@pallas.eruditorum.org +Received: from mail-in-02.arcor-online.net (mail-in-02.arcor-online.net [151.189.21.42]) + by pallas.eruditorum.org (Postfix) with ESMTP id 15E761118D + for <rt-users@lists.fsck.com>; Mon, 26 May 2003 14:49:56 -0400 (EDT) +Received: from otdial-212-144-012-186.arcor-ip.net (otdial-212-144-011-024.arcor-ip.net [212.144.11.24]) + by mail-in-02.arcor-online.net (Postfix) with ESMTP + id 745EE15E87; Mon, 26 May 2003 20:53:15 +0200 (CEST) +From: Dirk Pape <pape-rt@inf.fu-berlin.de> +To: Jesse Vincent <jesse@bestpractical.com>, + rt-users <rt-users@lists.fsck.com> +Subject: Re: [rt-users] [rt-announce] Development Snapshot 3.0.2++ +Message-ID: <2147483647.1053982235@otdial-212-144-011-024.arcor-ip.net> +In-Reply-To: <2147483647.1053974498@[10.0.255.35]> +References: <20030523202405.GF23719@fsck.com> + <2147483647.1053974498@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="==========2147500486==========" +Sender: rt-users-admin@lists.fsck.com +Errors-To: rt-users-admin@lists.fsck.com +X-BeenThere: rt-users@lists.fsck.com +X-Mailman-Version: 2.0.12 +Precedence: bulk +List-Help: <mailto:rt-users-request@lists.fsck.com?subject=help> +List-Post: <mailto:rt-users@lists.fsck.com> +List-Subscribe: <http://lists.fsck.com/mailman/listinfo/rt-users>, + <mailto:rt-users-request@lists.fsck.com?subject=subscribe> +List-Id: For users of RT: Request Tracker <rt-users.lists.fsck.com> +List-Unsubscribe: <http://lists.fsck.com/mailman/listinfo/rt-users>, + <mailto:rt-users-request@lists.fsck.com?subject=unsubscribe> +List-Archive: <http://lists.fsck.com/pipermail/rt-users/> +Date: Mon, 26 May 2003 20:50:36 +0200 +X-Spam-Status: No, hits=-2.5 required=5.0 + tests=AWL,IN_REP_TO,KNOWN_MAILING_LIST,QUOTED_EMAIL_TEXT, + REFERENCES,REPLY_WITH_QUOTES + autolearn=ham version=2.55 +X-Spam-Level: +X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) + +--==========2147500486========== +Content-Type: text/plain; charset=us-ascii; format=flowed +Content-Transfer-Encoding: 7bit +Content-Disposition: inline + +Hello, + +here is the digest I forgot to attach. And I also forgot to say, that these +were the only messages after a restart of apache. + +The messages in the digest are the copies which I - for testing purpose - +allways queue into a mailbox just befor it is queued via rt-mailgate into +the rt-system. + +--Am Montag, 26. Mai 2003 18:41 Uhr +0200 schrieb Dirk Pape +<pape-rt@inf.fu-berlin.de>: + +> I attach a digest with mails I send one after another to the rt-system +> and they get queued into one queue, each as a new ticket. + + + + +--==========2147500486========== +Content-Type: multipart/digest; boundary="==========2147489407==========" + +--==========2147489407========== +Content-Type: message/rfc822; name="test _________" + +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 27591 invoked by uid 9804); 26 May 2003 18:10:50 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:10:46 +0200 +Received: (Qmail 27575 invoked from network); 26 May 2003 18:10:46 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:10:46 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKYe-0000Yi-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:10:44 +0200 +Received: (qmail 27557 invoked by uid 9804); 26 May 2003 18:10:44 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:10:40 +0200 +Received: (Qmail 27540 invoked from network); 26 May 2003 18:10:40 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:10:40 +0200 +Date: Mon, 26 May 2003 18:11:00 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972660@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [27578] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 + +--==========2147489407========== +Content-Type: message/rfc822; name="test _________" + +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 27754 invoked by uid 9804); 26 May 2003 18:11:24 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:11:20 +0200 +Received: (Qmail 27704 invoked from network); 26 May 2003 18:11:19 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:11:19 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKZA-0000Yy-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:11:16 +0200 +Received: (qmail 27690 invoked by uid 9804); 26 May 2003 18:11:16 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:11:13 +0200 +Received: (Qmail 27677 invoked from network); 26 May 2003 18:11:13 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:11:13 +0200 +Date: Mon, 26 May 2003 18:11:32 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972692@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [27711] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 + +--==========2147489407========== +Content-Type: message/rfc822; name="test _________" + +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 27971 invoked by uid 9804); 26 May 2003 18:12:02 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:11:52 +0200 +Received: (Qmail 27908 invoked from network); 26 May 2003 18:11:52 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:11:52 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKZj-0000ZC-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:11:51 +0200 +Received: (qmail 27848 invoked by uid 9804); 26 May 2003 18:11:50 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:11:46 +0200 +Received: (Qmail 27809 invoked from network); 26 May 2003 18:11:45 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:11:45 +0200 +Date: Mon, 26 May 2003 18:12:05 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972725@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [27911] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 + +--==========2147489407========== +Content-Type: message/rfc822; name="test _________" + +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 28283 invoked by uid 9804); 26 May 2003 18:12:39 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:12:36 +0200 +Received: (Qmail 28256 invoked from network); 26 May 2003 18:12:35 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:12:35 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKaQ-0000ZQ-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:12:34 +0200 +Received: (qmail 28236 invoked by uid 9804); 26 May 2003 18:12:34 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:12:30 +0200 +Received: (Qmail 28224 invoked from network); 26 May 2003 18:12:30 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:12:30 +0200 +Date: Mon, 26 May 2003 18:12:50 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972770@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [28259] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 + +--==========2147489407========== +Content-Type: message/rfc822; name="test _________" + +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 28578 invoked by uid 9804); 26 May 2003 18:13:20 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:13:15 +0200 +Received: (Qmail 28534 invoked from network); 26 May 2003 18:13:14 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:13:14 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKb1-0000Ze-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:13:11 +0200 +Received: (qmail 28516 invoked by uid 9804); 26 May 2003 18:13:11 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:13:08 +0200 +Received: (Qmail 28479 invoked from network); 26 May 2003 18:13:07 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:13:07 +0200 +Date: Mon, 26 May 2003 18:13:27 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972807@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [28540] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 + + +--==========2147489407========== +Content-Type: message/rfc822; name="test _________" + +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 29108 invoked by uid 9804); 26 May 2003 18:14:15 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:14:10 +0200 +Received: (Qmail 29066 invoked from network); 26 May 2003 18:14:10 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:14:10 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKbw-0000Zr-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:14:08 +0200 +Received: (qmail 29054 invoked by uid 9804); 26 May 2003 18:14:08 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:14:04 +0200 +Received: (Qmail 29036 invoked from network); 26 May 2003 18:14:04 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:14:04 +0200 +Date: Mon, 26 May 2003 18:14:24 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972864@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [29069] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 + +--==========2147489407========== +Content-Type: message/rfc822; name="test _________" + +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 29551 invoked by uid 9804); 26 May 2003 18:15:16 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:15:12 +0200 +Received: (Qmail 29521 invoked from network); 26 May 2003 18:15:12 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:15:12 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKcx-0000a4-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:15:11 +0200 +Received: (qmail 29511 invoked by uid 9804); 26 May 2003 18:15:10 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:15:07 +0200 +Received: (Qmail 29465 invoked from network); 26 May 2003 18:15:06 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:15:06 +0200 +Date: Mon, 26 May 2003 18:15:26 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972926@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [29524] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 + + +--==========2147489407==========-- + +--==========2147500486==========-- + +_______________________________________________ +rt-users mailing list +rt-users@lists.fsck.com +http://lists.fsck.com/mailman/listinfo/rt-users + +Have you read the FAQ? The RT FAQ Manager lives at http://fsck.com/rtfm + diff --git a/rt/lib/t/data/8859-15-message-series/msg1 b/rt/lib/t/data/8859-15-message-series/msg1 new file mode 100644 index 000000000..cc99c406c --- /dev/null +++ b/rt/lib/t/data/8859-15-message-series/msg1 @@ -0,0 +1,36 @@ +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 27591 invoked by uid 9804); 26 May 2003 18:10:50 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:10:46 +0200 +Received: (Qmail 27575 invoked from network); 26 May 2003 18:10:46 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:10:46 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKYe-0000Yi-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:10:44 +0200 +Received: (qmail 27557 invoked by uid 9804); 26 May 2003 18:10:44 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:10:40 +0200 +Received: (Qmail 27540 invoked from network); 26 May 2003 18:10:40 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:10:40 +0200 +Date: Mon, 26 May 2003 18:11:00 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972660@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [27578] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 + diff --git a/rt/lib/t/data/8859-15-message-series/msg2 b/rt/lib/t/data/8859-15-message-series/msg2 new file mode 100644 index 000000000..dc442cfc3 --- /dev/null +++ b/rt/lib/t/data/8859-15-message-series/msg2 @@ -0,0 +1,36 @@ +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 27754 invoked by uid 9804); 26 May 2003 18:11:24 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:11:20 +0200 +Received: (Qmail 27704 invoked from network); 26 May 2003 18:11:19 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:11:19 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKZA-0000Yy-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:11:16 +0200 +Received: (qmail 27690 invoked by uid 9804); 26 May 2003 18:11:16 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:11:13 +0200 +Received: (Qmail 27677 invoked from network); 26 May 2003 18:11:13 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:11:13 +0200 +Date: Mon, 26 May 2003 18:11:32 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972692@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [27711] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 + diff --git a/rt/lib/t/data/8859-15-message-series/msg3 b/rt/lib/t/data/8859-15-message-series/msg3 new file mode 100644 index 000000000..e23866d5f --- /dev/null +++ b/rt/lib/t/data/8859-15-message-series/msg3 @@ -0,0 +1,35 @@ +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 27971 invoked by uid 9804); 26 May 2003 18:12:02 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:11:52 +0200 +Received: (Qmail 27908 invoked from network); 26 May 2003 18:11:52 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:11:52 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKZj-0000ZC-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:11:51 +0200 +Received: (qmail 27848 invoked by uid 9804); 26 May 2003 18:11:50 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:11:46 +0200 +Received: (Qmail 27809 invoked from network); 26 May 2003 18:11:45 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:11:45 +0200 +Date: Mon, 26 May 2003 18:12:05 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972725@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [27911] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 diff --git a/rt/lib/t/data/8859-15-message-series/msg4 b/rt/lib/t/data/8859-15-message-series/msg4 new file mode 100644 index 000000000..831695cc7 --- /dev/null +++ b/rt/lib/t/data/8859-15-message-series/msg4 @@ -0,0 +1,35 @@ +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 28283 invoked by uid 9804); 26 May 2003 18:12:39 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:12:36 +0200 +Received: (Qmail 28256 invoked from network); 26 May 2003 18:12:35 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:12:35 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKaQ-0000ZQ-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:12:34 +0200 +Received: (qmail 28236 invoked by uid 9804); 26 May 2003 18:12:34 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:12:30 +0200 +Received: (Qmail 28224 invoked from network); 26 May 2003 18:12:30 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:12:30 +0200 +Date: Mon, 26 May 2003 18:12:50 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972770@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [28259] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 diff --git a/rt/lib/t/data/8859-15-message-series/msg5 b/rt/lib/t/data/8859-15-message-series/msg5 new file mode 100644 index 000000000..272c93c4f --- /dev/null +++ b/rt/lib/t/data/8859-15-message-series/msg5 @@ -0,0 +1,35 @@ +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 28578 invoked by uid 9804); 26 May 2003 18:13:20 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:13:15 +0200 +Received: (Qmail 28534 invoked from network); 26 May 2003 18:13:14 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:13:14 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKb1-0000Ze-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:13:11 +0200 +Received: (qmail 28516 invoked by uid 9804); 26 May 2003 18:13:11 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:13:08 +0200 +Received: (Qmail 28479 invoked from network); 26 May 2003 18:13:07 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:13:07 +0200 +Date: Mon, 26 May 2003 18:13:27 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972807@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [28540] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 diff --git a/rt/lib/t/data/8859-15-message-series/msg6 b/rt/lib/t/data/8859-15-message-series/msg6 new file mode 100644 index 000000000..3ae9d3b69 --- /dev/null +++ b/rt/lib/t/data/8859-15-message-series/msg6 @@ -0,0 +1,35 @@ +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 29108 invoked by uid 9804); 26 May 2003 18:14:15 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:14:10 +0200 +Received: (Qmail 29066 invoked from network); 26 May 2003 18:14:10 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:14:10 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKbw-0000Zr-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:14:08 +0200 +Received: (qmail 29054 invoked by uid 9804); 26 May 2003 18:14:08 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:14:04 +0200 +Received: (Qmail 29036 invoked from network); 26 May 2003 18:14:04 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:14:04 +0200 +Date: Mon, 26 May 2003 18:14:24 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972864@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [29069] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 diff --git a/rt/lib/t/data/8859-15-message-series/msg7 b/rt/lib/t/data/8859-15-message-series/msg7 new file mode 100644 index 000000000..6149dd644 --- /dev/null +++ b/rt/lib/t/data/8859-15-message-series/msg7 @@ -0,0 +1,36 @@ +Return-Path: <pape@inf.fu-berlin.de> +Delivered-To: pape-rtdoublecheck@mi.fu-berlin.de +Received: (qmail 29551 invoked by uid 9804); 26 May 2003 18:15:16 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:15:12 +0200 +Received: (Qmail 29521 invoked from network); 26 May 2003 18:15:12 +0200 +Received: From es.inf.fu-berlin.de (160.45.110.22) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:15:12 +0200 +Received: from leibniz ([160.45.40.10] helo=math.fu-berlin.de) + by es.inf.fu-berlin.de with smtp (Exim 3.35 #1 (Debian)) + id 19KKcx-0000a4-00 + for <staff@tec.mi.fu-berlin.de>; Mon, 26 May 2003 18:15:11 +0200 +Received: (qmail 29511 invoked by uid 9804); 26 May 2003 18:15:10 +0200 +Received: from localhost (HELO math.fu-berlin.de) (127.0.0.1) + by localhost with SMTP; 26 May 2003 18:15:07 +0200 +Received: (Qmail 29465 invoked from network); 26 May 2003 18:15:06 +0200 +Received: From eremix.inf.fu-berlin.de (HELO eremix) (160.45.113.36) + by leibniz.math.fu-berlin.de with SMTP; 26 May 2003 18:15:06 +0200 +Date: Mon, 26 May 2003 18:15:26 +0200 +From: Dirk Pape <pape@inf.fu-berlin.de> +To: staff@tec.mi.fu-berlin.de +Subject: =?ISO-8859-15?Q?test_=E4=F6=FC=DF=C4=D6=DC=DF=A4?= +Message-ID: <2147483647.1053972926@[10.0.255.35]> +X-Mailer: Mulberry/3.0.3 (Mac OS X) +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Envelope-Sender: pape@inf.fu-berlin.de +X-Virus-Scanned: by AMaViS 0.3.12pre7-U23 [29524] (NAI-uvscan@math.fu-berlin.de) +X-Remote-IP: 160.45.110.22 +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-15; FORMAT=flowed +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +test nochmal in anderer Queue +test =E4=F6=FC=DF=C4=D6=DC=DF=A4 + diff --git a/rt/lib/t/data/multipart-alternative-with-umlaut b/rt/lib/t/data/multipart-alternative-with-umlaut new file mode 100644 index 000000000..1ad4fe323 --- /dev/null +++ b/rt/lib/t/data/multipart-alternative-with-umlaut @@ -0,0 +1,62 @@ +Return-Path: <gst@example.com> +Delivered-To: j@pallas.eruditorum.org +Received: from vis.example.com (vis.example.com [212.68.68.251]) + by pallas.eruditorum.org (Postfix) with SMTP id 59236111C3 + for <jesse@example.com>; Thu, 12 Jun 2003 02:14:44 -0400 (EDT) +Received: (qmail 29541 invoked by uid 502); 12 Jun 2003 06:14:42 -0000 +Received: from sivd.example.com (HELO example.com) (192.168.42.1) + by 192.168.42.42 with SMTP; 12 Jun 2003 06:14:42 -0000 +Received: received from 172.20.72.174 by odie.example.com; Thu, 12 Jun 2003 08:14:27 +0200 +Received: by mailserver.example.com with Internet Mail Service (5.5.2653.19) id <LJSB7T54>; Thu, 12 Jun 2003 08:14:39 +0200 +Message-ID: <50362EC956CBD411A339009027F6257E013DD495@mailserver.example.com> +Date: Thu, 12 Jun 2003 08:14:39 +0200 +From: "Stever, Gregor" <gst@example.com> +MIME-Version: 1.0 +X-Mailer: Internet Mail Service (5.5.2653.19) +To: "'jesse@example.com'" <jesse@example.com> +Subject: RE: [rt-users] HTML-encoded mails with umlaute +Date: Thu, 12 Jun 2003 08:14:39 +0200 +Content-Type: multipart/alternative; + boundary="----_=_NextPart_001_01C330A9.E7BDD590" +X-Spam-Status: No, hits=0.0 required=5.0 + tests=AWL,HTML_50_60,HTML_MESSAGE,INVALID_DATE + version=2.55 +X-Spam-Level: +X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) + +------_=_NextPart_001_01C330A9.E7BDD590 +Content-Type: text/plain; + charset="iso-8859-1" +Content-Transfer-Encoding: quoted-printable + +Hello, + +ist this kind of Messages, that causes rt to crash.=20 + +Mit freundlichen Gr=FC=DFen +Gregor Stever ^^causes Error!! + + +------_=_NextPart_001_01C330A9.E7BDD590 +Content-Type: text/html; + charset="iso-8859-1" +Content-Transfer-Encoding: quoted-printable + +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML><HEAD> +<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=3Diso-8859-= +1"> + + +<META content=3D"MSHTML 6.00.2800.1170" name=3DGENERATOR></HEAD> +<BODY> +<DIV><FONT face=3DArial><FONT size=3D2>Hello,<BR><BR>ist this kind of Messa= +ges, that=20 +causes rt to crash.<BR><BR>Mit freundlichen Gr=FC=DFen<BR>Gregor=20 +Stever      ^^causes Error<SPAN=20 +class=3D975501206-12062003>!!</SPAN></FONT></FONT></DIV></BODY></HTML> + + +------_=_NextPart_001_01C330A9.E7BDD590-- + + diff --git a/rt/lib/t/data/nested-mime-sample b/rt/lib/t/data/nested-mime-sample new file mode 100644 index 000000000..8b85d948c --- /dev/null +++ b/rt/lib/t/data/nested-mime-sample @@ -0,0 +1,396 @@ +Return-Path: <Xxxxxx_Yyyyyyy@some.net> +Delivered-To: jesse@pallas.eruditorum.org +Received: by pallas.eruditorum.org (Postfix) + id B5D3E1123A; Fri, 12 Jul 2002 11:35:27 -0400 (EDT) +Delivered-To: rt-2.0-bugs@pallas.eruditorum.org +Received: from postman.some.net (postman.some.net [193.0.0.199]) + by pallas.eruditorum.org (Postfix) with SMTP id 2736011234 + for <rt-2.0-bugs@fsck.com>; Fri, 12 Jul 2002 11:35:27 -0400 (EDT) +Received: (qmail 11615 invoked by uid 0); 12 Jul 2002 15:35:26 -0000 +Received: from x22.some.net (HELO x22.some.net.some.net) (193.0.1.22) + by postman.some.net with SMTP; 12 Jul 2002 15:35:26 -0000 +Date: Fri, 12 Jul 2002 17:35:26 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +To: rt-0.0-bugs@fsck.com +Subject: Example MIME within MIME within MIME message +Message-ID: <Pine.LNX.4.44.0207121734250.25020-120000@x22.some.net> +MIME-Version: 1.0 +Content-Type: MULTIPART/MIXED; BOUNDARY="12654081-192303556-1026488126=:25020" +X-Spam-Status: No, hits=4.0 required=7.0 + tests=DOUBLE_CAPSWORD,MIME_NULL_BLOCK,MIME_MISSING_BOUNDARY + version=2.31 +Content-Length: 11478 + + This message is in MIME format. The first part should be readable text, + while the remaining parts are likely unreadable without MIME-aware tools. + Send mail to mime@docserver.cac.washington.edu for more info. + +--12654081-192303556-1026488126=:25020 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + +MIME is fun at times. + + +-- + Xxxxxx Yyyyyyy SOME + Systems/Network Engineer NCC + www.some.net - PGP000C8B1B Operations/Security + +--12654081-192303556-1026488126=:25020 +Content-Type: MULTIPART/Digest; BOUNDARY="12654081-2102091261-1026488126=:25020" +Content-ID: <Pine.LNX.4.44.0207121734322.25020@x22.some.net> +Content-Description: Digest of 2 messages + + This message is in MIME format. The first part should be readable text, + while the remaining parts are likely unreadable without MIME-aware tools. + Send mail to mime@docserver.cac.washington.edu for more info. + +--12654081-2102091261-1026488126=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121734320.25020@x22.some.net> +Content-Description: first outer message (fwd) + +Date: Fri, 12 Jul 2002 17:32:37 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: first outer message +Message-ID: <Pine.LNX.4.44.0207121732180.25020-120000@x22.some.net> +MIME-Version: 1.0 +Content-Type: MULTIPART/MIXED; BOUNDARY="12654081-113777422-1026487957=:25020" + + +--12654081-113777422-1026487957=:25020 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + +first outer message + +--12654081-113777422-1026487957=:25020 +Content-Type: MULTIPART/Digest; BOUNDARY="12654081-387266385-1026487957=:25020" +Content-ID: <Pine.LNX.4.44.0207121732222.25020@x22.some.net> +Content-Description: Digest of 2 messages + +--12654081-387266385-1026487957=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121732220.25020@x22.some.net> +Content-Description: middle message (fwd) + +Date: Fri, 12 Jul 2002 17:31:45 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: middle message +Message-ID: <Pine.LNX.4.44.0207121731190.25020-120000@x22.some.net> +MIME-Version: 1.0 +Content-Type: MULTIPART/MIXED; BOUNDARY="12654081-1711788944-1026487905=:25020" + + +--12654081-1711788944-1026487905=:25020 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + +This is the first middle message + + +--12654081-1711788944-1026487905=:25020 +Content-Type: MULTIPART/Digest; BOUNDARY="12654081-1221085552-1026487905=:25020" +Content-ID: <Pine.LNX.4.44.0207121731262.25020@x22.some.net> +Content-Description: Digest of 2 messages + +--12654081-1221085552-1026487905=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121731260.25020@x22.some.net> +Content-Description: This is the inner-most message (fwd) + +Date: Fri, 12 Jul 2002 17:30:31 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: This is the inner-most message +Message-ID: <Pine.LNX.4.44.0207121730070.25020-100000@x22.some.net> +MIME-Version: 1.0 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + + +inner-msg + + + +--12654081-1221085552-1026487905=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121731261.25020@x22.some.net> +Content-Description: another inner message (need two before pine will do the mime-digest thing) (fwd) + +Date: Fri, 12 Jul 2002 17:31:12 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: another inner message (need two before pine will do the mime-digest + thing) +Message-ID: <Pine.LNX.4.44.0207121730480.25020-100000@x22.some.net> +MIME-Version: 1.0 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + + +again + + + +--12654081-1221085552-1026487905=:25020-- +--12654081-1711788944-1026487905=:25020-- + +--12654081-387266385-1026487957=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121732221.25020@x22.some.net> +Content-Description: middle message (fwd) + +Date: Fri, 12 Jul 2002 17:32:05 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: middle message +Message-ID: <Pine.LNX.4.44.0207121731470.25020-120000@x22.some.net> +MIME-Version: 1.0 +Content-Type: MULTIPART/MIXED; BOUNDARY="12654081-1731270459-1026487925=:25020" + + +--12654081-1731270459-1026487925=:25020 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + + +This is the second middle message + + +--12654081-1731270459-1026487925=:25020 +Content-Type: MULTIPART/Digest; BOUNDARY="12654081-128832654-1026487925=:25020" +Content-ID: <Pine.LNX.4.44.0207121731502.25020@x22.some.net> +Content-Description: Digest of 2 messages + +--12654081-128832654-1026487925=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121731500.25020@x22.some.net> +Content-Description: This is the inner-most message (fwd) + +Date: Fri, 12 Jul 2002 17:30:31 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: This is the inner-most message +Message-ID: <Pine.LNX.4.44.0207121730070.25020-100000@x22.some.net> +MIME-Version: 1.0 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + + +inner-msg + + + +--12654081-128832654-1026487925=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121731501.25020@x22.some.net> +Content-Description: another inner message (need two before pine will do the mime-digest thing) (fwd) + +Date: Fri, 12 Jul 2002 17:31:12 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: another inner message (need two before pine will do the mime-digest + thing) +Message-ID: <Pine.LNX.4.44.0207121730480.25020-100000@x22.some.net> +MIME-Version: 1.0 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + + +again + + + +--12654081-128832654-1026487925=:25020-- +--12654081-1731270459-1026487925=:25020-- + +--12654081-387266385-1026487957=:25020-- +--12654081-113777422-1026487957=:25020-- + +--12654081-2102091261-1026488126=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121734321.25020@x22.some.net> +Content-Description: 2nd outer message (fwd) + +Date: Fri, 12 Jul 2002 17:32:54 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: 2nd outer message +Message-ID: <Pine.LNX.4.44.0207121732380.25020-120000@x22.some.net> +MIME-Version: 1.0 +Content-Type: MULTIPART/MIXED; BOUNDARY="12654081-1955637437-1026487974=:25020" + + +--12654081-1955637437-1026487974=:25020 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + +2nd outer message + + +--12654081-1955637437-1026487974=:25020 +Content-Type: MULTIPART/Digest; BOUNDARY="12654081-362457126-1026487974=:25020" +Content-ID: <Pine.LNX.4.44.0207121732412.25020@x22.some.net> +Content-Description: Digest of 2 messages + +--12654081-362457126-1026487974=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121732410.25020@x22.some.net> +Content-Description: middle message (fwd) + +Date: Fri, 12 Jul 2002 17:31:45 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: middle message +Message-ID: <Pine.LNX.4.44.0207121731190.25020-120000@x22.some.net> +MIME-Version: 1.0 +Content-Type: MULTIPART/MIXED; BOUNDARY="12654081-1711788944-1026487905=:25020" + + +--12654081-1711788944-1026487905=:25020 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + +This is the first middle message + + +--12654081-1711788944-1026487905=:25020 +Content-Type: MULTIPART/Digest; BOUNDARY="12654081-1221085552-1026487905=:25020" +Content-ID: <Pine.LNX.4.44.0207121731262.25020@x22.some.net> +Content-Description: Digest of 2 messages + +--12654081-1221085552-1026487905=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121731260.25020@x22.some.net> +Content-Description: This is the inner-most message (fwd) + +Date: Fri, 12 Jul 2002 17:30:31 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: This is the inner-most message +Message-ID: <Pine.LNX.4.44.0207121730070.25020-100000@x22.some.net> +MIME-Version: 1.0 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + + +inner-msg + + + +--12654081-1221085552-1026487905=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121731261.25020@x22.some.net> +Content-Description: another inner message (need two before pine will do the mime-digest thing) (fwd) + +Date: Fri, 12 Jul 2002 17:31:12 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: another inner message (need two before pine will do the mime-digest + thing) +Message-ID: <Pine.LNX.4.44.0207121730480.25020-100000@x22.some.net> +MIME-Version: 1.0 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + + +again + + + +--12654081-1221085552-1026487905=:25020-- +--12654081-1711788944-1026487905=:25020-- + +--12654081-362457126-1026487974=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121732411.25020@x22.some.net> +Content-Description: middle message (fwd) + +Date: Fri, 12 Jul 2002 17:32:05 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: middle message +Message-ID: <Pine.LNX.4.44.0207121731470.25020-120000@x22.some.net> +MIME-Version: 1.0 +Content-Type: MULTIPART/MIXED; BOUNDARY="12654081-1731270459-1026487925=:25020" + + +--12654081-1731270459-1026487925=:25020 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + + +This is the second middle message + + +--12654081-1731270459-1026487925=:25020 +Content-Type: MULTIPART/Digest; BOUNDARY="12654081-128832654-1026487925=:25020" +Content-ID: <Pine.LNX.4.44.0207121731502.25020@x22.some.net> +Content-Description: Digest of 2 messages + +--12654081-128832654-1026487925=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121731500.25020@x22.some.net> +Content-Description: This is the inner-most message (fwd) + +Date: Fri, 12 Jul 2002 17:30:31 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: This is the inner-most message +Message-ID: <Pine.LNX.4.44.0207121730070.25020-100000@x22.some.net> +MIME-Version: 1.0 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + + +inner-msg + + + +--12654081-128832654-1026487925=:25020 +Content-Type: MESSAGE/RFC822; CHARSET=US-ASCII +Content-ID: <Pine.LNX.4.44.0207121731501.25020@x22.some.net> +Content-Description: another inner message (need two before pine will do the mime-digest thing) (fwd) + +Date: Fri, 12 Jul 2002 17:31:12 +0200 (CEST) +From: Xxxxxx Yyyyyyy <Xxxxxx_Yyyyyyy@some.net> +X-X-Sender: bc@x22.some.net +To: Xxxxxx_Yyyyyyy@some.net +Subject: another inner message (need two before pine will do the mime-digest + thing) +Message-ID: <Pine.LNX.4.44.0207121730480.25020-100000@x22.some.net> +MIME-Version: 1.0 +Content-Type: TEXT/PLAIN; charset=US-ASCII + + + +again + + + +--12654081-128832654-1026487925=:25020-- +--12654081-1731270459-1026487925=:25020-- + +--12654081-362457126-1026487974=:25020-- +--12654081-1955637437-1026487974=:25020-- + +--12654081-2102091261-1026488126=:25020-- +--12654081-192303556-1026488126=:25020-- + diff --git a/rt/lib/t/data/nested-rfc-822 b/rt/lib/t/data/nested-rfc-822 new file mode 100644 index 000000000..d4f118df2 --- /dev/null +++ b/rt/lib/t/data/nested-rfc-822 @@ -0,0 +1,253 @@ +Return-Path: <jonas@astral.example.com> +Delivered-To: j@pallas.eruditorum.org +Received: from example.com (example.com [213.88.137.35]) + by pallas.eruditorum.org (Postfix) with ESMTP id 869591115E + for <jesse@bestpractical.com>; Sun, 29 Jun 2003 18:04:04 -0400 (EDT) +Received: from jonas by example.com with local (Exim 4.20) + id 19WkLK-0004Vr-0I + for jesse@bestpractical.com; Mon, 30 Jun 2003 00:08:18 +0200 +Resent-To: jesse@bestpractical.com +Resent-From: Jonas Liljegren <jonas@example.com> +Resent-Date: Mon, 30 Jun 2003 00:08:17 +0200 +Received: from mail by example.com with spam-scanned (Exim 4.20) + id 19Wayz-00068j-KO + for jonas@astral.example.com; Sun, 29 Jun 2003 14:08:42 +0200 +Received: from jonas by example.com with local (Exim 4.20) + id 19Wayz-00068g-FY + for red@example.com; Sun, 29 Jun 2003 14:08:37 +0200 +To: Redaktionen <red@example.com> +Subject: [Jonas Liljegren] Re: [Para] =?iso-8859-1?q?Niv=E5er=3F?= +From: Jonas Liljegren <jonas@example.com> +Date: Sun, 29 Jun 2003 14:08:37 +0200 +Message-ID: <87d6gxt7ay.fsf@example.com> +User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.2 (gnu/linux) +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="=-=-=" +Sender: Jonas Liljegren <jonas@astral.example.com> +Resent-Message-Id: <E19WkLK-0004Vr-0I@example.com> +Resent-Sender: Jonas Liljegren <jonas@astral.example.com> +Resent-Date: Mon, 30 Jun 2003 00:08:18 +0200 +X-Spam-Status: No, hits=-5.7 required=5.0 + tests=AWL,BAYES_10,EMAIL_ATTRIBUTION,MAILTO_WITH_SUBJ, + QUOTED_EMAIL_TEXT,USER_AGENT_GNUS_UA + version=2.55 +X-Spam-Level: +X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) + +--=-=-= +Content-Type: text/plain; charset=iso-8859-1 +Content-Transfer-Encoding: quoted-printable + +Material f=F6r att uppdatera texten om niv=E5er. + +Denna text b=F6r dessutom ligga som ett uppslagsord och inte d=E4r den ligg= +er nu. + + +--=-=-= +Content-Type: message/rfc822 +Content-Disposition: inline + +Return-path: <list-bounces@example.com> +Received: from mail by example.com with spam-scanned (Exim 4.20) + id 19WFzq-0005i1-WE + for jonas@example.com; Sat, 28 Jun 2003 15:44:13 +0200 +Received: from localhost + ([127.0.0.1] helo=example.com ident=list) + by example.com with esmtp (Exim 4.20) + id 19WFzp-0005hf-Tz; Sat, 28 Jun 2003 15:44:05 +0200 +Received: from mail by example.com with spam-scanned (Exim 4.20) + id 19WFzh-0005hR-Bu + for list@example.com; Sat, 28 Jun 2003 15:44:03 +0200 +Received: from jonas by example.com with local (Exim 4.20) + id 19WFzh-0005hO-AO + for list@example.com; Sat, 28 Jun 2003 15:43:57 +0200 +To: list@example.com +Subject: Re: [Para] =?iso-8859-1?q?Niv=E5er=3F?= +References: <002701c33d62$170fb2e0$a33740d5@TELIA.COM> + <002301c33d66$bf6483e0$d97864d5@remotel2tu76c8> + <64753.217.210.4.156.1056801224.squirrel@example.com> +From: Jonas Liljegren <jonas@example.com> +Date: Sat, 28 Jun 2003 15:43:57 +0200 +In-Reply-To: <64753.217.210.4.156.1056801224.squirrel@example.com> (Jakob + Carlsson's message of "Sat, 28 Jun 2003 13:53:44 +0200 (CEST)") +Message-ID: <877k76uxk2.fsf@example.com> +User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.2 (gnu/linux) +X-BeenThere: list@example.com +X-Mailman-Version: 2.1.2 +Precedence: list +List-Id: Öppen lista för alla medlemmar <list.example.com> +List-Unsubscribe: <http://example.com/cgi-bin/mailman/listinfo/list>, + <mailto:list-request@example.com?subject=unsubscribe> +List-Archive: <http://example.com/pipermail/list> +List-Post: <mailto:list@example.com> +List-Help: <mailto:list-request@example.com?subject=help> +List-Subscribe: <http://example.com/cgi-bin/mailman/listinfo/list>, + <mailto:list-request@example.com?subject=subscribe> +Sender: list-bounces@example.com +Errors-To: list-bounces@example.com +X-Spam-Status: No, hits=-7.0 required=5.0 + tests=BAYES_00,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, + REFERENCES,REPLY_WITH_QUOTES,USER_AGENT_GNUS_UA + version=2.55 +X-Spam-Level: +X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) +MIME-Version: 1.0 +Content-Type: text/plain; charset=iso-8859-1 +Content-Transfer-Encoding: quoted-printable + +"Jakob Carlsson" <esrange@example.com> writes: + +>> Om du g=E5r in p=E5 Hemsidan och sen p=E5 Torget. +>> D=E4r ser du att det st=E5r ditt anv=E4ndarnamn och +>> bredvid det Niv=E5 5. +>> Klicka p=E5 niv=E5 5 s=E5 kommer du in p=E5 en sida som +>> f=F6rklarar allt om niv=E5systemet. +> +> Bra svar. Men jag k=E4nner f=F6r att ge en kort f=F6rklaring av niv=E5-sy= +stemet. + +Jag skulle kunna l=E4gga en massa tid p=E5 at skriva samma sak om och om +igen. Fliker in h=E4r f=F6r att s=E4ga detta =E4nnu en g=E5ng...: + + * Det =E4r jag som hittat p=E5 det h=E4r med niv=E5system + + * Det =E4r en stor skillnad p=E5 hur det =E4r t=E4nkt att vara och hur det= + =E4r + nu. Jag har stora planer och en massa id=E9er jag vill genomf=F6ra. + + * Niv=E5systemet =E4r en =E5terkoppling f=F6r vad man gjort f=F6r webbplat= +sen. + Som ett tack g=F6r hj=E4lpen. + + * Systemet finns som en inspiration f=F6r de som d=E5 k=E4nner f=F6r att g= +=F6ra + mer. Men jag vill inte att det ska ge en negativ influens f=F6r de + som inte gillar niv=E5er. Var och en ska kunna v=E4lja att ignorera + niv=E5n. Speciellt b=F6r de f=F6rst=E5 att det inte har att g=F6ra med + graden av andlig utveckling, esoteriska kunskaper eller n=E5got + s=E5dant. + + * Inspirationen till niv=E5erna kommer fr=E5n spel, hemliga ordenssystem, + kosmska hiearkier, skr=E5v=E4sen, akademier, politisk administration, + osv. Det =E4r ett element av rollspel. En lek. + + * Olika niv=E5er motsvarar olika roller p=E5 webbplatsen. Webbplatsen + webbmaster och ansvbariga har en viss niv=E5, bes=F6kare och g=E4ster har + en annan niv=E5. + + * Alla datorsystem har administrat=F6rssystem f=F6r dem som sk=F6ter + systemet. Jag har valt att arrangera dessa funktioner i en skala. + Niv=E5n anger hur mycket av systemet du har r=E4tt att administrera. + + * Att ha ett niv=E5system f=F6r access g=F6r att man kan g=F6ra som p=E5 f= +ilm; + att l=E5ta de med h=F6gre access komma =E5t mer information. De med + riktigt h=F6g niv=E5 kan n=E5 topphemlig information. P=E5 denna webbpl= +ats + kan varje anv=E4ndae v=E4lja att h=E5lla vissa personliga uppgifter. Har + du h=F6g niv=E5 har du rollen som anv=E4ndaradministrat=F6r och har + tillg=E5ng till dessa uppgifter. Just nu =E4r vi tre personer med + denna niv=E5n. + + * Niv=E5systemet =E4r ett m=E5tt p=E5 p=E5litlighet. Vi ger dig h=F6gre n= +iv=E5 n=E4r + vi litar p=E5 att du inte kommer att f=F6rst=F6ra f=F6r oss. F=F6r ju h= +=F6gre + niv=E5, desto l=E4ttare kan du sabbotera inneh=E5llet. + + * P=E5 en h=F6gre niv=E5 beh=F6vs det inte bara att vi litar p=E5 att du v= +ill + v=E4l. Du m=E5ste =E4ven ha ett gott omd=F6me, teknisk f=F6rst=E5else, + intresse och logiskt t=E4nkande. Utan detta =E4r det l=E4tt h=E4nt att = +du + f=F6rst=F6r saker av misstag. + + * Vi vill uppmuntra medlemmarna att g=F6ra det som =E4r bra f=F6r + webbplatsen. Tilldelandet av h=F6gre niv=E5 ska uppmuntra till att + g=F6ra det som =E4r bra. + + * F=F6r att minska missbruk av e-postadresser visar vi e-postadresser + bara f=F6r de med lite h=F6gre niv=E5. P=E5 s=E5 vis vill vi undvika att + n=E5gon g=E5r med som medlem bara f=F6r att samla e-postadresser f=F6r a= +tt + sedan g=F6ra reklamutskick. + + * Idag n=E5r du olika niv=E5er p=E5 detta vis: + + 0. Kom in p=E5 webbplatsen som g=E4st + + 1. V=E4lj anv=E4ndarnamn och ange e-postadress + + 2. Logga in med det l=F6senord som skickats till dig + + 3. Skrivit en presentation + + 5. Presentationen har godk=E4nts + + 6. Du har svarat p=E5 ett f=E5tal fr=E5gor om dina intressen + + 7. Du har svarat p=E5 en massa fr=E5gor om intressen och beskrivit dem + detaljerat + + 10. N=E5gon v=E4ktare tycker du f=F6rtj=E4nar h=F6gre niv=E5 f=F6r att du= + =E4r s=E5 + trevlig och engagerad i webbplatsen. + + 11. Du har gjort ett antal kopplingar mellan =E4mnen och =F6verv=E4gande + delan av dem har godk=E4nts av en v=E4ktare, och du accepterar att + b=F6rja som l=E4rling i v=E4ktarakademin (jobbet som + systemadministrat=F6r) + + 12-39. D=E5 och d=E5 tittar jag p=E5 vad du gjort i form av skrivande av + texter och arbetande med uppslagsverkets =E4mnen, och justerar din + niv=E5 i f=F6rh=E5llande till m=E4ngd och kvalit=E9 p=E5 arbetet + + 40. Du har full=E4ndat ett helt =E4mnesomr=E5de. En m=E4ngd sammanl=E4nk= +ade + =E4mnen med bra textinneh=E5ll. + + 41. F=F6rtroende att arbeta med adminstration av medlemsregistret. + + 42. Delaktig i utvecklandet av webbplatsens prgrammering. + + + * Allts=E5. Automatik tar dig till niv=E5 7. + + * Men som sagt. Jag har en massa andra planer d=E4r mycket mer kopplas + till niv=E5er och d=E4r det finns systemautomatik f=F6r hela v=E4gen till + niv=E5 40. + + * 41 och 42 ligger utanf=F6r niv=E5systemet i =F6vrigt. Den som har de + niv=E5erna har inte n=F6dv=E4ndigtvis tagit sig till niv=E5 40 innan. De + motsvaras av anv=E4ndaradministrat=F6r och systemadministrat=F6r och + niv=E5n speglar maktbefogenheterna snarare =E4n vad man i =F6vrigt gjort + f=F6r webbplatsen. + + * Alla texter. Allt inneh=E5ll =E4r =F6ppet f=F6r alla. =C4ven f=F6r bes= +=F6kare som + inte loggar in. Du kan till och med g=E5 in p=E5 + administrationssidorna utan att logga in. Vi g=F6mmer inte inneh=E5ll. + Det vi g=F6r =E4r att hindra dig fr=E5n att =E4ndra inneh=E5llet. Vi d= +=F6ljer + dock en del information om andra medlemmar i syfte att f=E5 s=E5 m=E5nga + som m=F6jligt att sj=E4lv skriva in sig och skriva en presentation. + +--=20 +/ Jonas - http://jonas.example.com/myself/en/index.html + +_______________________________________________ +List mailing list +List@example.com +http://example.com/cgi-bin/mailman/listinfo/list + + +--=-=-= + + + +-- +/ Jonas - http://jonas.example.com/myself/en/index.html + +--=-=-=-- + diff --git a/rt/lib/t/data/new-ticket-from-iso-8859-1 b/rt/lib/t/data/new-ticket-from-iso-8859-1 new file mode 100644 index 000000000..299392d26 --- /dev/null +++ b/rt/lib/t/data/new-ticket-from-iso-8859-1 @@ -0,0 +1,31 @@ +Return-Path: <hw@nordkapp.net> +Delivered-To: j@pallas.eruditorum.org +Received: from sm1.nordkapp.net (sm1.nordkapp.net [62.70.54.150]) + by pallas.eruditorum.org (Postfix) with ESMTP id 48F4E11112 + for <jesse@bestpractical.com>; Mon, 2 Jun 2003 14:58:37 -0400 (EDT) +Received: (qmail 3612 invoked by uid 1009); 2 Jun 2003 18:58:36 -0000 +Received: from unknown (HELO office.nordkapp.net) (213.161.186.83) + by 0 with SMTP; 2 Jun 2003 18:58:36 -0000 +Message-Id: <5.2.1.1.0.20030602205708.0314c5f8@mail.nordkapp.net> +X-Sender: hw@nordkapp.net@mail.nordkapp.net +X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 +Date: Mon, 02 Jun 2003 20:58:30 +0200 +To: Jesse Vincent <jesse@bestpractical.com> +From: Wilhelmsen Håvard <hw@nordkapp.net> +Subject: Re: rt-3.0.3pre1 +In-Reply-To: <20030602185607.GN10811@fsck.com> +References: <5.2.1.1.0.20030602204834.031406d8@mail.nordkapp.net> + <5.2.1.1.0.20030530194214.0371c988@mail.nordkapp.net> + <5.2.1.1.0.20030530194214.0371c988@mail.nordkapp.net> + <5.2.1.1.0.20030602204834.031406d8@mail.nordkapp.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset="iso-8859-1"; format=flowed +Content-Transfer-Encoding: 8bit +X-Spam-Status: No, hits=-1.9 required=5.0 + tests=AWL,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, + REFERENCES,REPLY_WITH_QUOTES + autolearn=ham version=2.55 +X-Spam-Level: +X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) + +Håvard diff --git a/rt/lib/t/data/new-ticket-from-iso-8859-1-full b/rt/lib/t/data/new-ticket-from-iso-8859-1-full new file mode 100644 index 000000000..493ca1591 --- /dev/null +++ b/rt/lib/t/data/new-ticket-from-iso-8859-1-full @@ -0,0 +1,38 @@ +X-Mailer: QUALCOMM Windows Eudora Version 5.2.1 +To: Jesse Vincent <jesse@bestpractical.com> +From: Wilhelmsen Håvard <hw@nordkapp.net> +Subject: Re: rt-3.0.3pre1 +X-Spam-Status: No, hits=-1.9 required=5.0 + tests=AWL,EMAIL_ATTRIBUTION,IN_REP_TO,QUOTED_EMAIL_TEXT, + REFERENCES,REPLY_WITH_QUOTES + autolearn=ham version=2.55 +X-Spam-Level: +X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) + +At 14:56 02.06.2003 -0400, you wrote: +>> This patch didn't help us out. +>> We still got problems with auto responding e-mails sent from the system +>> when a new ticket is created. +>> The same problem appears when one of the staff replays to an new ticket. +>> All Norwegian letters is converted to strange letters like ø +>> +>> We would love if this bug could be fixed. On our mail server we are +>running +>> perl 5.6.1 since we are using debian stabel packet lists. +> +>I'd love it too. I just can't find it. Can you send me +>(jesse@bestpractical.com) a couple of email messages containing +>characters that break your RT? + +Hello again, + +Thanks for your fast replay! + +I don't know how this looks at your end but it is letters like: ø æ Ã¥ +If your want to make this in html it will be ø å and &aerlig; + + +-- +HÃ¥vard + + diff --git a/rt/lib/t/data/russian-subject-no-content-type b/rt/lib/t/data/russian-subject-no-content-type new file mode 100644 index 000000000..03d95b8c4 --- /dev/null +++ b/rt/lib/t/data/russian-subject-no-content-type @@ -0,0 +1,42 @@ +Return-Path: <mitya@fling-wing.example.com> +X-Real-To: <mitya@second.example.com> +Received: from [194.87.5.31] (HELO sinbin.example.com) + by cgp.second.example.com (CommuniGate Pro SMTP 4.0.5/D) + with ESMTP-TLS id 69661026 for mitya@second.example.com; Wed, 18 Jun 2003 11:14:49 +0400 +Received: (from daemon@localhost) + by sinbin.example.com (8.12.8/8.11.6) id h5I7EfOj096595 + for mitya@second.example.com; Wed, 18 Jun 2003 11:14:41 +0400 (MSD) + (envelope-from mitya@fling-wing.example.com) +Received: from example.com by sinbin.example.com with ESMTP id h5I7Ee8K096580; + (8.12.9/D) Wed, 18 Jun 2003 11:14:40 +0400 (MSD) +X-Real-To: <mitya@second.example.com> +Received: from [194.87.0.31] (HELO mail.example.com) + by example.com (CommuniGate Pro SMTP 4.1b7/D) + with ESMTP id 76217696 for mitya@example.com; Wed, 18 Jun 2003 11:14:40 +0400 +Received: by mail.example.com (CommuniGate Pro PIPE 4.1b7/D) + with PIPE id 63920083; Wed, 18 Jun 2003 11:14:40 +0400 +Received: from [194.87.5.69] (HELO fling-wing.example.com) + by mail.example.com (CommuniGate Pro SMTP 4.1b7/D) + with ESMTP-TLS id 63920055 for mitya@example.com; Wed, 18 Jun 2003 11:14:38 +0400 +Received: from fling-wing.example.com (localhost [127.0.0.1]) + by fling-wing.example.com (8.12.9/8.12.6) with ESMTP id h5I7Ec5R000153 + for <mitya@example.com>; Wed, 18 Jun 2003 11:14:38 +0400 (MSD) + (envelope-from mitya@fling-wing.example.com) +Received: (from mitya@localhost) + by fling-wing.example.com (8.12.9/8.12.6/Submit) id h5I7Ec0J000152 + for mitya@example.com; Wed, 18 Jun 2003 11:14:38 +0400 (MSD) +Date: Wed, 18 Jun 2003 11:14:38 +0400 (MSD) +From: "Dmitry S. Sivachenko" <mitya@fling-wing.example.com> +Message-Id: <200306180714.h5I7Ec0J000152@fling-wing.example.com> +To: mitya@example.com +Subject: ÔÅÓÔ ÔÅÓÔ +X-Spam-Checker-Version: SpamAssassin 2.60-cvs-mail.demos (1.193-2003-06-13-exp) +X-Spam-Level: + +X-Spam-Status: No, hits=1.0 required=5.0 tests=SUBJ_ILLEGAL_CHARS autolearn=no + version=2.60-cvs-mail.demos +X-Spam-Report: * SUBJ_ILLEGAL_CHARS 1.0 (Subject contains too many raw illegal characters) + +Content-Length: 6 + +ôåóô + diff --git a/rt/lib/t/data/text-html-in-russian b/rt/lib/t/data/text-html-in-russian new file mode 100644 index 000000000..b965b1b59 --- /dev/null +++ b/rt/lib/t/data/text-html-in-russian @@ -0,0 +1,87 @@ +From rickt@other-example.com Tue Jun 17 20:39:13 2003 +Return-Path: <rickt@other-example.com> +X-Original-To: info +Delivered-To: mitya@vh.example.com +Received: from example.com (mx.example.com [194.87.0.32]) + by vh.example.com (Postfix) with ESMTP id 8D77B16E6BD + for <info>; Tue, 17 Jun 2003 20:39:05 +0400 (MSD) +Received: from hotline@example.com + by example.com (CommuniGate Pro GROUP 4.1b7/D) + with GROUP id 76033026; Tue, 17 Jun 2003 20:38:00 +0400 +Received: by example.com (CommuniGate Pro PIPE 4.1b7/D) + with PIPE id 76033052; Tue, 17 Jun 2003 20:38:00 +0400 +Received: from [217.132.49.75] (HELO compuserve.com) + by example.com (CommuniGate Pro SMTP 4.1b7/D) + with SMTP id 76032971 for info@example.com; Tue, 17 Jun 2003 20:37:41 +0400 +Date: Wed, 18 Jun 2003 01:41:01 +0000 +From: Ó÷åáíûé Öåíòð <rickt@other-example.com> +Subject: Ïðèãëàøàåì ðóêîâîäèòåëÿ, íà÷àëüíèêîâ ïîäðàçäåëåíèé íà òðåíèíã YXLWLJ3LPT9UHuLyGTzyuKQc06eIZ96Y6RVTCZFt +To: Info <info@example.com> +References: <0ID97EGL951H1907@example.com> +In-Reply-To: <0ID97EGL951H1907@example.com> +Message-ID: <HDE46LIK8GGJJ72I@other-example.com> +MIME-Version: 1.0 +Content-Type: text/html; charset=Windows-1251 +Content-Transfer-Encoding: 8bit +X-Spam-Flag: YES +X-Spam-Checker-Version: SpamAssassin 2.60-cvs-jumbo.demos (1.190-2003-06-01-exp) +X-Spam-Level: ++++++++++++++ +X-Spam-Status: Yes, hits=14.9 required=5.0 tests=BAYES_99,DATE_IN_FUTURE_06_12 + FROM_ILLEGAL_CHARS,HTML_10_20,HTML_FONTCOLOR_UNKNOWN,HTML_FONT_BIG + MIME_HTML_ONLY,RCVD_IN_NJABL,SUBJ_HAS_SPACES,SUBJ_HAS_UNIQ_ID + SUBJ_ILLEGAL_CHARS autolearn=no version=2.60-cvs-jumbo.demos +X-Spam-Report: 14.9 points, 5.0 required; + * 2.3 -- Subject contains lots of white space + * 1.0 -- BODY: HTML font color is unknown to us + * 0.3 -- BODY: FONT Size +2 and up or 3 and up + [score: 1.0000] + * 2.8 -- BODY: Bayesian classifier spam probability is 99 to 100% + * 1.0 -- BODY: Message is 10% to 20% HTML + * 1.0 -- From contains too many raw illegal characters + * 1.0 -- Subject contains a unique ID + * 1.0 -- Subject contains too many raw illegal characters + * 1.2 -- Date: is 6 to 12 hours after Received: date + [217.132.49.75 listed in dnsbl.njabl.org] + * 1.2 -- RBL: Received via a relay in dnsbl.njabl.org + * 2.0 -- Message only has text/html MIME parts +Status: RO +Content-Length: 2743 +Lines: 36 + +<html><body><basefont face="times new roman, times, serif" size="2"> +<center>Ó÷eáíûé Öeíòp "ÊÀÄÐÛ ÄÅËÎÂÎÃÎ ÌÈÐÀ" ïpèãëaøaeò ía òpeíèíã:<br> +<font size="5"><b>ÌÎÒÈÂÀÖÈß ÊÀÊ ÈÍÑÒÐÓÌÅÍÒ ÓÏÐÀÂËÅÍÈß ÏÅÐÑÎÍÀËÎÌ</b></font><br> +<font color="red"><b>19 èþíÿ 2003 ã.</b></font><br> +<b><i>Òpeíèíã ïpeäíaçía÷eí äëÿ âûcøeão è cpeäíeão óïpaâëeí÷ecêoão ïepcoíaëa.</i></b><br></center><br> +<p align="justify"><b>Òpeíep: Áopìoòoâ Ïaâeë.</b> Ïpaêòè÷ecêèé ïcèõoëoã, oïûò paáoòû áoëee 10 ëeò â oáëacòè ïcèõoëoãèè è áèçíec-òpeíèíãoâ. Àâòop pÿäa ïóáëèêaöèé è ìeòoäè÷ecêèõ ïocoáèé paçëè÷íûõ íaïpaâëeíèé ïcèõoëoãèè, â òoì ÷ècëe: “Òeõíoëoãèÿ äeëoâoão oáùeíèÿ”, “Òeõíèêè è ïpèeìû ýôôeêòèâíûõ ïepeãoâopoâ”, “Ñòpaòeãèè ôopìèpoâaíèÿ êopïopaòèâíoão èìèäæa” è äp. Çaêoí÷èë ËÃÓ ôaêóëüòeò coöèaëüíoé ïcèõoëoãèè, Ðoccèécêóþ Àêaäeìèþ ãocóäapcòâeííoé cëóæáû ïpè Ïpeçèäeíòe ÐÔ, êópcû MBA.<br><br> +<b><u>Öeëè òpeíèíãa:</u></b><br> +1. Îcâoèòü ïpèeìû óïpaâëeíèÿ ìoòèâaöèeé;<br> +2. Ïoëó÷èòü ïpaêòè÷ecêèe íaâûêè ìoòèâaöèè ïepcoíaëa ê paáoòe;<br> +3. Îcâoèòü ocíoâíûe íaâûêè êoìaíäooápaçoâaíèÿ;<br> +4. Îâëaäeòü ïpaêòè÷ecêèìè ìeòoäaìè coçäaíèÿ è ócèëeíèÿ paáo÷eé ìoòèâaöèè, êoìaíäooápaçoâaíèÿ.<br><br> +<b><u>Çaäa÷è òpeíèíãa:</u></b><br> + - Îcâoèòü ìeòoäû ïoáóæäeíèÿ äpóãèõ ëþäeé ê âûïoëíeíèþ oïpeäeëeííoé äeÿòeëüíocòè;<br> + - Íaó÷èòücÿ íaïpaâëÿòü ïoáóæäeíèÿ coòpóäíèêoâ â cooòâeòcòâèe c çaäa÷aìè opãaíèçaöèè.<br><br> +<b><u>Ñoäepæaíèe ïpoãpaììû:</u></b><br> +<b>I. Ìaòepèaëüíûe è íeìaòepèaëüíûe ôopìû ìoòèâaöèè:</b><br> +1. Ìecòo è poëü ìoòèâaöèè â óïpaâëeíèè ïepcoíaëoì;<br> +2. Ïpaêòèêa óïpaâëeíèÿ opãaíèçaöèÿìè.<br> +<b>II. Ïpaêòè÷ecêoe ïpèìeíeíèe ìoòèâaöèè â óïpaâëeíèè ïepcoíaëoì:</b><br> +1. Àíòèìoòèâèpóþùèe pacïopÿæeíèÿ;<br> +2. Ìoòèâaöèÿ è oöeíêa äeÿòeëüíocòè (poëü aòòecòaöèè coòpóäíèêoâ);<br> +3. Ìoòèâaöèÿ è ïpaêòèêa íaêaçaíèé.<br><br> +<b><u> çaâepøeíèè ïpoãpaììû ó÷acòíèêè cìoãóò:</u></b><br> +1. Îpèeíòèpoâaòü coòpóäíèêoâ ía äocòèæeíèe oïpeäeëeííoão peçóëüòaòa;<br> +2. Îâëaäeòü íeoáõoäèìûìè íaâûêaìè óïpaâëeíèÿ ìoòèâaöèeé ïepcoíaëa;<br> +3. Ïpèìeíÿòü ïoëó÷eííûe çíaíèÿ â ïpaêòèêe óïpaâëeíèÿ ïepcoíaëoì;<br> +4. Îïpeäeëÿòü èíäèâèäóaëüíûe ocoáeííocòè (ïpeäïo÷òeíèÿ) ìoòèâaöèè coòpóäíèêoâ â opãaíèçaöèè.<br> +<i> õoäe òpeíèíãa ècïoëüçóeòcÿ paáo÷èé è cïpaâo÷íûé ìaòepèaë ïo ìoòèâaöèè è còèìóëèpoâaíèþ ïepcoíaëa poccèécêèõ êoìïaíèé. Ïo oêoí÷aíèè âûäaeòcÿ cepòèôèêaò.</i><br><br> +<center>Ïpoäoëæèòeëüíocòü: 1 äeíü, 8 ÷acoâ (äâa ïepepûâa, oáeä)<br> +<b>Ñòoèìocòü ó÷acòèÿ: 4 700 póáëeé áeç ÍÄÑ.</b><br> +921-5862, 928-4156, 928-4200, 928-5321</center><br> +<font size=1> Åcëè èíôopìaöèÿ ïoäoáíoão poäa Âac íe èíòepecóeò è ïo äpóãèì âoïpocaì - ïèøèòe: <a href="mailto:motiv@mailje.nl">seminar</a></font> +<br><font size="1" color="#ffffff">3ZkRPb60QBbiHef1IRVl</font> +</body></html> + + + diff --git a/rt/lib/t/data/text-html-with-umlaut b/rt/lib/t/data/text-html-with-umlaut new file mode 100644 index 000000000..90e5d3fa9 --- /dev/null +++ b/rt/lib/t/data/text-html-with-umlaut @@ -0,0 +1,35 @@ +Return-Path: <gst@example.com> +Delivered-To: j@pallas.eruditorum.org +Received: from vis.example.com (vis.example.com [212.68.68.251]) + by pallas.eruditorum.org (Postfix) with SMTP id 59236111C3 + for <jesse@example.com>; Thu, 12 Jun 2003 02:14:44 -0400 (EDT) +Received: (qmail 29541 invoked by uid 502); 12 Jun 2003 06:14:42 -0000 +Received: from sivd.example.com (HELO example.com) (192.168.42.1) + by 192.168.42.42 with SMTP; 12 Jun 2003 06:14:42 -0000 +Received: received from 172.20.72.174 by odie.example.com; Thu, 12 Jun 2003 08:14:27 +0200 +Received: by mailserver.example.com with Internet Mail Service (5.5.2653.19) id <LJSB7T54>; Thu, 12 Jun 2003 08:14:39 +0200 +Message-ID: <50362EC956CBD411A339009027F6257E013DD495@mailserver.example.com> +Date: Thu, 12 Jun 2003 08:14:39 +0200 +From: "Stever, Gregor" <gst@example.com> +MIME-Version: 1.0 +X-Mailer: Internet Mail Service (5.5.2653.19) +To: "'jesse@example.com'" <jesse@example.com> +Subject: An example of mail containing text-html with an umlaut in the content +Date: Thu, 12 Jun 2003 08:14:39 +0200 +Content-Type: text/html; + charset="iso-8859-1" +Content-Transfer-Encoding: quoted-printable + +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<HTML><HEAD> +<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=3Diso-8859-= +1"> + + +<META content=3D"MSHTML 6.00.2800.1170" name=3DGENERATOR></HEAD> +<BODY> +<DIV><FONT face=3DArial><FONT size=3D2>Hello,<BR><BR>ist this kind of Messa= +ges, that=20 +causes rt to crash.<BR><BR>Mit freundlichen Gr=FC=DFen<BR>Gregor=20 +Stever      ^^causes Error<SPAN=20 +class=3D975501206-12062003>!!</SPAN></FONT></FONT></DIV></BODY></HTML> diff --git a/rt/lib/t/regression/00placeholder b/rt/lib/t/regression/00placeholder new file mode 100644 index 000000000..0afc6045c --- /dev/null +++ b/rt/lib/t/regression/00placeholder @@ -0,0 +1 @@ +1; diff --git a/rt/lib/t/regression/mime_tests b/rt/lib/t/regression/mime_tests new file mode 100644 index 000000000..26e4dbf84 --- /dev/null +++ b/rt/lib/t/regression/mime_tests @@ -0,0 +1,19 @@ +use RT::Ticket; +use RT::Queue; + +use MIME::Parser; +use File::Temp; +use RT::EmailParser; + +open (HANDLE, "data/nested-mime-sample"); +my $parser = RT::EmailParser->new() + $parser->ParseMIMEEntityFromFileHandle(\*HANDLE); +my $entity = $parser->Entity; + +my $q = RT::Queue->new($RT::SystemUser); +$q->Load('general'); +ok ($q->Id, "Queue is loaded"); +my $Ticket = RT::Ticket->new($RT::SystemUser); +my ($tid, $ttid, $msg) =$Ticket->Create( Queue => $q->Id, Subject => "Nested mime test", MIMEObj => $entity); +ok ($tid, $msg); +ok($Ticket->Id); -- cgit v1.2.1 From ded0451e9582df33cae6099a2fb72b4ea25076cf Mon Sep 17 00:00:00 2001 From: ivan <ivan> Date: Tue, 15 Jul 2003 13:30:43 +0000 Subject: reverting to vendor branch rt 3.0.4, hopefully --- rt/lib/MANIFEST | 57 - rt/lib/MANIFEST.SKIP | 1 - rt/lib/Makefile.PL | 49 - rt/lib/RT.pm | 191 ++- rt/lib/RT/ACE.pm | 806 ++------- rt/lib/RT/ACL.pm | 329 +--- rt/lib/RT/Action/Autoreply.pm | 40 +- rt/lib/RT/Action/Generic.pm | 56 +- rt/lib/RT/Action/Notify.pm | 83 +- rt/lib/RT/Action/NotifyAsComment.pm | 34 +- rt/lib/RT/Action/OpenDependent.pm | 55 - rt/lib/RT/Action/ResolveMembers.pm | 35 +- rt/lib/RT/Action/SendEmail.pm | 699 +++++--- rt/lib/RT/Action/SendPasswordEmail.pm | 170 -- rt/lib/RT/Action/StallDependent.pm | 68 - rt/lib/RT/Attachment.pm | 601 +++---- rt/lib/RT/Attachments.pm | 136 +- rt/lib/RT/Condition/AnyTransaction.pm | 34 +- rt/lib/RT/Condition/Generic.pm | 55 +- rt/lib/RT/Condition/NewDependency.pm | 0 rt/lib/RT/Condition/StatusChange.pm | 35 +- rt/lib/RT/CurrentUser.pm | 166 +- rt/lib/RT/Date.pm | 335 ++-- rt/lib/RT/EasySearch.pm | 115 -- rt/lib/RT/Group.pm | 430 ++--- rt/lib/RT/GroupMember.pm | 231 ++- rt/lib/RT/GroupMembers.pm | 124 +- rt/lib/RT/Groups.pm | 135 +- rt/lib/RT/Handle.pm | 62 +- rt/lib/RT/Interface/CLI.pm | 112 +- rt/lib/RT/Interface/Email.pm | 683 ++++---- rt/lib/RT/Interface/Web.pm | 1124 ++++++------ rt/lib/RT/Keyword.pm | 446 ----- rt/lib/RT/KeywordSelect.pm | 452 ----- rt/lib/RT/KeywordSelects.pm | 143 -- rt/lib/RT/Keywords.pm | 106 -- rt/lib/RT/Link.pm | 487 +++--- rt/lib/RT/Links.pm | 153 +- rt/lib/RT/ObjectKeyword.pm | 192 --- rt/lib/RT/ObjectKeywords.pm | 234 --- rt/lib/RT/Queue.pm | 961 +++-------- rt/lib/RT/Queues.pm | 162 +- rt/lib/RT/Record.pm | 400 +++-- rt/lib/RT/Scrip.pm | 654 ++++--- rt/lib/RT/ScripAction.pm | 385 +++-- rt/lib/RT/ScripActions.pm | 137 +- rt/lib/RT/ScripCondition.pm | 366 ++-- rt/lib/RT/ScripConditions.pm | 142 +- rt/lib/RT/Scrips.pm | 162 +- rt/lib/RT/Template.pm | 512 +++--- rt/lib/RT/Templates.pm | 143 +- rt/lib/RT/TestHarness.pm | 14 - rt/lib/RT/Ticket.pm | 3026 ++++----------------------------- rt/lib/RT/Tickets.pm | 1806 +------------------- rt/lib/RT/Transaction.pm | 895 +++------- rt/lib/RT/Transactions.pm | 129 +- rt/lib/RT/User.pm | 1696 ++++++++---------- rt/lib/RT/Users.pm | 298 +--- rt/lib/RT/Watcher.pm | 313 ---- rt/lib/RT/Watchers.pm | 226 --- rt/lib/test.pl | 52 - 61 files changed, 7173 insertions(+), 14570 deletions(-) delete mode 100644 rt/lib/MANIFEST delete mode 100644 rt/lib/MANIFEST.SKIP delete mode 100644 rt/lib/Makefile.PL delete mode 100644 rt/lib/RT/Action/OpenDependent.pm delete mode 100755 rt/lib/RT/Action/SendPasswordEmail.pm delete mode 100644 rt/lib/RT/Action/StallDependent.pm delete mode 100644 rt/lib/RT/Condition/NewDependency.pm delete mode 100755 rt/lib/RT/EasySearch.pm delete mode 100644 rt/lib/RT/Keyword.pm delete mode 100644 rt/lib/RT/KeywordSelect.pm delete mode 100644 rt/lib/RT/KeywordSelects.pm delete mode 100644 rt/lib/RT/Keywords.pm delete mode 100644 rt/lib/RT/ObjectKeyword.pm delete mode 100644 rt/lib/RT/ObjectKeywords.pm delete mode 100644 rt/lib/RT/TestHarness.pm delete mode 100755 rt/lib/RT/Watcher.pm delete mode 100755 rt/lib/RT/Watchers.pm delete mode 100644 rt/lib/test.pl (limited to 'rt/lib') diff --git a/rt/lib/MANIFEST b/rt/lib/MANIFEST deleted file mode 100644 index cda386be5..000000000 --- a/rt/lib/MANIFEST +++ /dev/null @@ -1,57 +0,0 @@ -MANIFEST -MANIFEST.SKIP -Makefile.PL -RT.pm -test.pl -RT/ACE.pm -RT/ACL.pm -RT/Action/Generic.pm -RT/Action/NotifyAsComment.pm -RT/Action/OpenDependent.pm -RT/Action/SendEmail.pm -RT/Action/StallDependent.pm -RT/Action/Notify.pm -RT/Action/ResolveMembers.pm -RT/Attachment.pm -RT/Attachments.pm -RT/Condition/AnyTransaction.pm -RT/Condition/Generic.pm -RT/Condition/NewDependency.pm -RT/CurrentUser.pm -RT/Date.pm -RT/EasySearch.pm -RT/Group.pm -RT/GroupMember.pm -RT/GroupMembers.pm -RT/Groups.pm -RT/Handle.pm -RT/Interface/CLI.pm -RT/Interface/Email.pm -RT/Interface/Web.pm -RT/Keyword.pm -RT/Keywords.pm -RT/KeywordSelect.pm -RT/KeywordSelects.pm -RT/Link.pm -RT/Links.pm -RT/ObjectKeyword.pm -RT/ObjectKeywords.pm -RT/Queue.pm -RT/Queues.pm -RT/Record.pm -RT/Scrip.pm -RT/Scrips.pm -RT/ScripAction.pm -RT/ScripActions.pm -RT/ScripCondition.pm -RT/ScripConditions.pm -RT/Template.pm -RT/Templates.pm -RT/Ticket.pm -RT/Tickets.pm -RT/Transaction.pm -RT/Transactions.pm -RT/User.pm -RT/Users.pm -RT/Watcher.pm -RT/Watchers.pm diff --git a/rt/lib/MANIFEST.SKIP b/rt/lib/MANIFEST.SKIP deleted file mode 100644 index ae335e78a..000000000 --- a/rt/lib/MANIFEST.SKIP +++ /dev/null @@ -1 +0,0 @@ -CVS/ diff --git a/rt/lib/Makefile.PL b/rt/lib/Makefile.PL deleted file mode 100644 index c0e1af28c..000000000 --- a/rt/lib/Makefile.PL +++ /dev/null @@ -1,49 +0,0 @@ -use ExtUtils::MakeMaker; -# See lib/ExtUtils/MakeMaker.pm for details of how to influence -# the contents of the Makefile that is written. -WriteMakefile( - 'NAME' => 'RT', - 'VERSION_FROM' => 'RT.pm', # finds $VERSION - 'PREREQ_PM' => { - 'DBI' => 1.16, - 'DBIx::SearchBuilder' => '0.48', - 'Date::Parse' => 0, - 'Date::Format' => 0, - 'MIME::Entity' => 5.108, - 'Mail::Mailer' => '1.20', - 'Log::Dispatch' => 1.6, - 'HTML::Entities' => 0, - 'Text::Wrapper' => 0, - 'Text::Template' => 0, - 'Getopt::Long' => 2.24, - }, -); - - { - package MY; - sub top_targets { - my($self) = @_; - my $out = "POD2TEST_EXE = pod2test\n"; - - $out .= $self->SUPER::top_targets(@_); - # $out =~ s/^(pure_all\b.*)/$1 testifypods/m; - - $out .= "\n\ntestifypods : \n"; - - my @pods = (keys %{$self->{MAN1PODS}}, - keys %{$self->{MAN3PODS}}); - - foreach my $pod (@pods) { - (my $test = $pod) =~ s/\.(pm|pod)$//; - $test =~ s/^lib\W//; - $test =~ s/\W/-/; - $test =~ s/\//__/g; - $test = "autogen-$test.t"; - $out .= "\t$self->{NOECHO}\$(POD2TEST_EXE) ". - "$pod t/$test \n"; - } - - return $out; - } - } - diff --git a/rt/lib/RT.pm b/rt/lib/RT.pm index 1cfc428ee..90c332bc0 100644 --- a/rt/lib/RT.pm +++ b/rt/lib/RT.pm @@ -1,11 +1,82 @@ +# BEGIN LICENSE BLOCK +# +# Copyright (c) 1996-2002 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; -use RT::Handle; -use RT::CurrentUser; use strict; +use RT::I18N; +use RT::CurrentUser; +use RT::System; + +use vars qw($VERSION $System $SystemUser $Nobody $Handle $Logger + $CORE_CONFIG_FILE + $SITE_CONFIG_FILE + $VENDOR_CONFIG_FILE + $BasePath + $EtcPath + $VarPath + $LocalPath + $LocalEtcPath + $LocalLexiconPath + $LogDir + $MasonComponentRoot + $MasonLocalComponentRoot + $MasonDataDir + $MasonSessionDir +); + +$VERSION = '3.0.4'; +$CORE_CONFIG_FILE = "/opt/rt3/etc/RT_Config.pm"; +$SITE_CONFIG_FILE = "/opt/rt3/etc/RT_SiteConfig.pm"; + +$BasePath = '/opt/rt3'; + +$EtcPath = '/opt/rt3/etc'; +$VarPath = '/opt/rt3/var'; +$LocalPath = '/opt/rt3/local'; +$LocalEtcPath = '/opt/rt3/local/etc'; +$LocalLexiconPath = '/opt/rt3/local/po'; + +# $MasonComponentRoot is where your rt instance keeps its mason html files + +$MasonComponentRoot = '/opt/rt3/share/html'; + +# $MasonLocalComponentRoot is where your rt instance keeps its site-local +# mason html files. + +$MasonLocalComponentRoot = '/opt/rt3/local/html'; + +# $MasonDataDir Where mason keeps its datafiles + +$MasonDataDir = '/opt/rt3/var/mason_data'; + +# RT needs to put session data (for preserving state between connections +# via the web interface) +$MasonSessionDir = '/opt/rt3/var/session_data'; -use vars qw($VERSION $SystemUser $Nobody $Handle $Logger); -$VERSION = '!!RT_VERSION!!'; =head1 NAME @@ -14,19 +85,45 @@ $VERSION = '!!RT_VERSION!!'; =head1 SYNOPSIS A fully featured request tracker package - =head1 DESCRIPTION +=cut + +=item LoadConfig + +Load RT's config file. First, go after the core config file. +After that, try to load the vendor config. +After that, go after the site config. + +=cut + +sub LoadConfig { + local *Set = sub { $_[0] = $_[1] unless defined $_[0] }; + if ( -f "$SITE_CONFIG_FILE" ) { + require $SITE_CONFIG_FILE + || die ("Couldn't load RT config file '$SITE_CONFIG_FILE'\n$@"); + } + require $CORE_CONFIG_FILE + || die ("Couldn't load RT config file '$CORE_CONFIG_FILE'\n$@"); + RT::I18N->Init; +} + +=item Init + + Conenct to the database, set up logging. + =cut sub Init { + require RT::Handle; #Get a database connection - $Handle = new RT::Handle($RT::DatabaseType); + unless ($Handle && $Handle->dbh->ping) { + $Handle = RT::Handle->new(); + } $Handle->Connect(); - #RT's system user is a genuine database user. its id lives here $SystemUser = new RT::CurrentUser(); $SystemUser->LoadByName('RT_System'); @@ -34,7 +131,9 @@ sub Init { #RT's "nobody user" is a genuine database user. its ID lives here. $Nobody = new RT::CurrentUser(); $Nobody->LoadByName('Nobody'); - + + $System = RT::System->new(); + InitLogging(); } @@ -51,30 +150,81 @@ sub InitLogging { $, = ''; use Log::Dispatch 1.6; - use Log::Dispatch::File; - use Log::Dispatch::Screen; - $Logger=Log::Dispatch->new(); + unless ($RT::Logger) { + + $RT::Logger=Log::Dispatch->new(); if ($RT::LogToFile) { - my $filename = $RT::LogToFileNamed || "$RT::LogDir/rt.log"; - $Logger->add(Log::Dispatch::File->new + unless (-d $RT::LogDir && -w $RT::LogDir) { + # localizing here would be hard when we don't have a current user yet + # die $self->loc("Log directory [_1] not found or couldn't be written.\n RT can't run.", $RT::LogDir); + die ("Log directory $RT::LogDir not found or couldn't be written.\n RT can't run."); + } + + my $filename; + if ($RT::LogToFileNamed =~ m![/\\]!) { + # looks like an absolute path. + $filename = $RT::LogToFileNamed; + } + else { + $filename = "$RT::LogDir/$RT::LogToFileNamed"; + } + require Log::Dispatch::File; + + + $RT::Logger->add(Log::Dispatch::File->new ( name=>'rtlog', min_level=> $RT::LogToFile, filename=> $filename, mode=>'append', - callbacks => sub {my %p=@_; return "[".gmtime(time)."] [".$p{level}."]: $p{message}\n"} - + callbacks => sub { my %p = @_; + my ($package, $filename, $line) = caller(5); + return "[".gmtime(time)."] [".$p{level}."]: $p{message} ($filename:$line)\n"} + + + )); } if ($RT::LogToScreen) { - $Logger->add(Log::Dispatch::Screen->new + require Log::Dispatch::Screen; + $RT::Logger->add(Log::Dispatch::Screen->new ( name => 'screen', min_level => $RT::LogToScreen, + callbacks => sub { my %p = @_; + my ($package, $filename, $line) = caller(5); + return "[".gmtime(time)."] [".$p{level}."]: $p{message} ($filename:$line)\n" + }, + + stderr => 1 + )); + } + if ($RT::LogToSyslog) { + require Log::Dispatch::Syslog; + $RT::Logger->add(Log::Dispatch::Syslog->new + ( name => 'syslog', + ident => 'RT', + min_level => $RT::LogToSyslog, + callbacks => sub { my %p = @_; + my ($package, $filename, $line) = caller(5); + + # syswrite() cannot take utf8; turn it off here. + Encode::_utf8_off($p{message}); + + if ($p{level} eq 'debug') { + + return "$p{message}\n" } + else { + return "$p{message} ($filename:$line)\n"} + }, + stderr => 1 )); } + + } + # {{{ Signal handlers ## This is the default handling of warnings and die'ings in the code @@ -88,6 +238,7 @@ $SIG{__WARN__} = sub {$RT::Logger->warning($_[0])}; $SIG{__DIE__} = sub { unless ($^S || !defined $^S ) { + $RT::Handle->Rollback(); $RT::Logger->crit("$_[0]"); exit(-1); } @@ -127,10 +278,6 @@ sub DropSetGIDPermissions { } -=head1 NAME - -RT - Request Tracker - =head1 SYNOPSIS =head1 BUGS @@ -140,7 +287,6 @@ RT - Request Tracker =begin testing -ok (require RT::TestHarness); ok ($RT::Nobody->Name() eq 'Nobody', "Nobody is nobody"); ok ($RT::Nobody->Name() ne 'root', "Nobody isn't named root"); @@ -152,4 +298,7 @@ ok ($RT::SystemUser->Name() ne 'noname', "The system user isn't noname"); =cut +eval "require RT_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT_Local.pm}); + 1; diff --git a/rt/lib/RT/ACE.pm b/rt/lib/RT/ACE.pm index d4681cf44..1501a125e 100755 --- a/rt/lib/RT/ACE.pm +++ b/rt/lib/RT/ACE.pm @@ -1,774 +1,304 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ACE.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::ACE - RT\'s ACE object +=head1 NAME -=head1 SYNOPSIS +RT::ACE - use RT::ACE; - my $ace = new RT::ACE($CurrentUser); +=head1 SYNOPSIS =head1 DESCRIPTION - =head1 METHODS -=begin testing - -ok(require RT::TestHarness); -ok(require RT::ACE); - -=end testing - =cut package RT::ACE; -use RT::Record; -@ISA= qw(RT::Record); - -use vars qw (%SCOPES - %QUEUERIGHTS - %SYSTEMRIGHTS - %LOWERCASERIGHTNAMES - ); - -%SCOPES = ( - System => 'System-level right', - Queue => 'Queue-level right' - ); - -# {{{ Descriptions of rights - -# Queue rights are the sort of queue rights that can only be granted -# to real people or groups -%QUEUERIGHTS = ( - SeeQueue => 'Can this principal see this queue', - AdminQueue => 'Create, delete and modify queues', - ShowACL => 'Display Access Control List', - ModifyACL => 'Modify Access Control List', - ModifyQueueWatchers => 'Modify the queue watchers', - AdminKeywordSelects => 'Create, delete and modify keyword selections', - - - ModifyTemplate => 'Modify email templates for this queue', - ShowTemplate => 'Display email templates for this queue', - ModifyScrips => 'Modify Scrips for this queue', - ShowScrips => 'Display Scrips for this queue', - - ShowTicket => 'Show ticket summaries', - ShowTicketComments => 'Show ticket private commentary', +use RT::Record; - Watch => 'Sign up as a ticket Requestor or ticket or queue Cc', - WatchAsAdminCc => 'Sign up as a ticket or queue AdminCc', - CreateTicket => 'Create tickets in this queue', - ReplyToTicket => 'Reply to tickets', - CommentOnTicket => 'Comment on tickets', - OwnTicket => 'Own tickets', - ModifyTicket => 'Modify tickets', - DeleteTicket => 'Delete tickets' - ); +use vars qw( @ISA ); +@ISA= qw( RT::Record ); +sub _Init { + my $self = shift; -# System rights are rights granted to the whole system -%SYSTEMRIGHTS = ( - SuperUser => 'Do anything and everything', - AdminKeywords => 'Creatte, delete and modify keywords', - AdminGroups => 'Create, delete and modify groups', - AdminUsers => 'Create, Delete and Modify users', - ModifySelf => 'Modify one\'s own RT account', - - ); - -# }}} - -# {{{ Descriptions of principals - -%TICKET_METAPRINCIPALS = ( Owner => 'The owner of a ticket', - Requestor => 'The requestor of a ticket', - Cc => 'The CC of a ticket', - AdminCc => 'The administrative CC of a ticket', - ); - -# }}} - -# {{{ We need to build a hash of all rights, keyed by lower case names - -#since you can't do case insensitive hash lookups - -foreach $right (keys %QUEUERIGHTS) { - $LOWERCASERIGHTNAMES{lc $right}=$right; -} -foreach $right (keys %SYSTEMRIGHTS) { - $LOWERCASERIGHTNAMES{lc $right}=$right; + $self->Table('ACL'); + $self->SUPER::_Init(@_); } -# }}} - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ACL"; - return($self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub LoadByValues -=head2 LoadByValues PARAMHASH -Load an ACE by specifying a paramhash with the following fields: - PrincipalId => undef, - PrincipalType => undef, - RightName => undef, - RightScope => undef, - RightAppliesTo => undef, +=item Create PARAMHASH -=cut +Create takes a hash of values and creates a row in the database: -sub LoadByValues { - my $self = shift; - my %args = (PrincipalId => undef, - PrincipalType => undef, - RightName => undef, - RightScope => undef, - RightAppliesTo => undef, - @_); - - $self->LoadByCols (PrincipalId => $args{'PrincipalId'}, - PrincipalType => $args{'PrincipalType'}, - RightName => $args{'RightName'}, - RightScope => $args{'RightScope'}, - RightAppliesTo => $args{'RightAppliesTo'} - ); - - #If we couldn't load it. - unless ($self->Id) { - return (0, "ACE not found"); - } - # if we could - return ($self->Id, "ACE Loaded"); - -} + varchar(25) 'PrincipalType'. + int(11) 'PrincipalId'. + varchar(25) 'RightName'. + varchar(25) 'ObjectType'. + int(11) 'ObjectId'. + int(11) 'DelegatedBy'. + int(11) 'DelegatedFrom'. -# }}} - -# {{{ sub Create - -=head2 Create <PARAMS> +=cut -PARAMS is a parameter hash with the following elements: - PrincipalType => "Queue"|"User" - PrincipalId => an intentifier you can use to ->Load a user or group - RightName => the name of a right. in any case - RightScope => "System" | "Queue" - RightAppliesTo => a queue id or undef -=cut sub Create { my $self = shift; - my %args = ( PrincipalId => undef, - PrincipalType => undef, - RightName => undef, - RightScope => undef, - RightAppliesTo => undef, - @_ - ); - - # {{{ Validate the principal - my ($princ_obj); - if ($args{'PrincipalType'} eq 'User') { - $princ_obj = new RT::User($RT::SystemUser); - - } - elsif ($args{'PrincipalType'} eq 'Group') { - require RT::Group; - $princ_obj = new RT::Group($RT::SystemUser); - } - else { - return (0, 'Principal type '.$args{'PrincipalType'} . ' is invalid.'); - } - - $princ_obj->Load($args{'PrincipalId'}); - my $princ_id = $princ_obj->Id(); - - unless ($princ_id) { - return (0, 'Principal '.$args{'PrincipalId'}.' not found.'); - } - - # }}} - - #TODO allow loading of queues by name. - - # {{{ Check the ACL - if ($args{'RightScope'} eq 'System') { - - unless ($self->CurrentUserHasSystemRight('ModifyACL')) { - $RT::Logger->error("Permission Denied."); - return(undef); - } - } - - elsif ($args{'RightScope'} eq 'Queue') { - unless ($self->CurrentUserHasQueueRight( Queue => $args{'RightAppliesTo'}, - Right => 'ModifyACL')) { - return (0, 'Permission Denied.'); - } - - - - - } - #If it's not a scope we recognise, something scary is happening. - else { - $RT::Logger->err("RT::ACE->Create got a scope it didn't recognize: ". - $args{'RightScope'}." Bailing. \n"); - return(0,"System error. Unable to grant rights."); - } - - # }}} - - # {{{ Canonicalize and check the right name - $args{'RightName'} = $self->CanonicalizeRightName($args{'RightName'}); - - #check if it's a valid RightName - if ($args{'RightScope'} eq 'Queue') { - unless (exists $QUEUERIGHTS{$args{'RightName'}}) { - return(0, 'Invalid right'); - } - } - elsif ($args{'RightScope' eq 'System'}) { - unless (exists $SYSTEMRIGHTS{$args{'RightName'}}) { - return(0, 'Invalid right'); - } - } - # }}} - - # Make sure the right doesn't already exist. - $self->LoadByCols (PrincipalId => $princ_id, - PrincipalType => $args{'PrincipalType'}, - RightName => $args{'RightName'}, - RightScope => $args {'RightScope'}, - RightAppliesTo => $args{'RightAppliesTo'} - ); - if ($self->Id) { - return (0, 'That user already has that right'); - } - - my $id = $self->SUPER::Create( PrincipalId => $princ_id, - PrincipalType => $args{'PrincipalType'}, - RightName => $args{'RightName'}, - RightScope => $args {'RightScope'}, - RightAppliesTo => $args{'RightAppliesTo'} - ); - - - if ($id > 0 ) { - return ($id, 'Right Granted'); - } - else { - $RT::Logger->err('System error. right not granted.'); - return(0, 'System Error. right not granted'); - } -} - -# }}} - + my %args = ( + PrincipalType => '', + PrincipalId => '0', + RightName => '', + ObjectType => '', + ObjectId => '0', + DelegatedBy => '0', + DelegatedFrom => '0', + + @_); + $self->SUPER::Create( + PrincipalType => $args{'PrincipalType'}, + PrincipalId => $args{'PrincipalId'}, + RightName => $args{'RightName'}, + ObjectType => $args{'ObjectType'}, + ObjectId => $args{'ObjectId'}, + DelegatedBy => $args{'DelegatedBy'}, + DelegatedFrom => $args{'DelegatedFrom'}, +); -# {{{ sub Delete - -=head2 Delete - -Delete this object. - -=cut - -sub Delete { - my $self = shift; - - unless ($self->CurrentUserHasRight('ModifyACL')) { - return (0, 'Permission Denied'); - } - - - my ($val,$msg) = $self->SUPER::Delete(@_); - if ($val) { - return ($val, 'ACE Deleted'); - } - else { - return (0, 'ACE could not be deleted'); - } } -# }}} -# {{{ sub _BootstrapRight -=head2 _BootstrapRight +=item id -Grant a right with no error checking and no ACL. this is _only_ for -installation. If you use this routine without jesse@fsck.com's explicit -written approval, he will hunt you down and make you spend eternity -translating mozilla's code into FORTRAN or intercal. +Returns the current value of id. +(In the database, id is stored as int(11).) -=cut - -sub _BootstrapRight { - my $self = shift; - my %args = @_; - - my $id = $self->SUPER::Create( PrincipalId => $args{'PrincipalId'}, - PrincipalType => $args{'PrincipalType'}, - RightName => $args{'RightName'}, - RightScope => $args {'RightScope'}, - RightAppliesTo => $args{'RightAppliesTo'} - ); - - if ($id > 0 ) { - return ($id); - } - else { - $RT::Logger->err('System error. right not granted.'); - return(undef); - } - -} - -# }}} - -# {{{ sub CanonicalizeRightName - -=head2 CanonicalizeRightName <RIGHT> - -Takes a queue or system right name in any case and returns it in -the correct case. If it's not found, will return undef. =cut -sub CanonicalizeRightName { - my $self = shift; - my $right = shift; - $right = lc $right; - if (exists $LOWERCASERIGHTNAMES{"$right"}) { - return ($LOWERCASERIGHTNAMES{"$right"}); - } - else { - return (undef); - } -} - -# }}} -# {{{ sub QueueRights +=item PrincipalType -=head2 QueueRights +Returns the current value of PrincipalType. +(In the database, PrincipalType is stored as varchar(25).) -Returns a hash of all the possible rights at the queue scope -=cut -sub QueueRights { - return (%QUEUERIGHTS); -} +=item SetPrincipalType VALUE -# }}} -# {{{ sub SystemRights +Set PrincipalType to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, PrincipalType will be stored as a varchar(25).) -=head2 SystemRights - -Returns a hash of all the possible rights at the system scope =cut -sub SystemRights { - return (%SYSTEMRIGHTS); -} +=item PrincipalId -# }}} +Returns the current value of PrincipalId. +(In the database, PrincipalId is stored as int(11).) -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - PrincipalId => 'read/write', - PrincipalType => 'read/write', - RightName => 'read/write', - RightScope => 'read/write', - RightAppliesTo => 'read/write' - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} -# }}} -# {{{ sub AppliesToObj +=item SetPrincipalId VALUE -=head2 AppliesToObj -If the AppliesTo is a queue, returns the queue object. If it's -the system object, returns undef. If the user has no rights, returns undef. +Set PrincipalId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, PrincipalId will be stored as a int(11).) -=cut - -sub AppliesToObj { - my $self = shift; - if ($self->RightScope eq 'Queue') { - my $appliesto_obj = new RT::Queue($self->CurrentUser); - $appliesto_obj->Load($self->RightAppliesTo); - return($appliesto_obj); - } - elsif ($self->RightScope eq 'System') { - return (undef); - } - else { - $RT::Logger->warning("$self -> AppliesToObj called for an object ". - "of an unknown scope:" . $self->RightScope); - return(undef); - } -} - -# }}} - -# {{{ sub PrincipalObj - -=head2 PrincipalObj - -If the AppliesTo is a group, returns the group object. -If the AppliesTo is a user, returns the user object. -Otherwise, it logs a warning and returns undef. =cut -sub PrincipalObj { - my $self = shift; - my ($princ_obj); - - if ($self->PrincipalType eq 'Group') { - use RT::Group; - $princ_obj = new RT::Group($self->CurrentUser); - } - elsif ($self->PrincipalType eq 'User') { - $princ_obj = new RT::User($self->CurrentUser); - } - else { - $RT::Logger->warning("$self -> PrincipalObj called for an object ". - "of an unknown principal type:" . - $self->PrincipalType ."\n"); - return(undef); - } - - $princ_obj->Load($self->PrincipalId); - return($princ_obj); - -} - -# }}} - -# {{{ ACL related methods - -# {{{ sub _Set - -sub _Set { - my $self = shift; - return (0, "ACEs can only be created and deleted."); -} - -# }}} - -# {{{ sub _Value - -sub _Value { - my $self = shift; - - unless ($self->CurrentUserHasRight('ShowACL')) { - return (undef); - } - return ($self->__Value(@_)); -} - -# }}} +=item RightName +Returns the current value of RightName. +(In the database, RightName is stored as varchar(25).) -# {{{ sub CurrentUserHasQueueRight -=head2 CurrentUserHasQueueRight ( Queue => QUEUEID, Right => RIGHTNANAME ) -Check to see whether the current user has the specified right for the specified queue. - -=cut - -sub CurrentUserHasQueueRight { - my $self = shift; - my %args = (Queue => undef, - Right => undef, - @_ - ); - return ($self->HasRight( Right => $args{'Right'}, - Principal => $self->CurrentUser->UserObj, - Queue => $args{'Queue'})); -} +=item SetRightName VALUE -# }}} -# {{{ sub CurrentUserHasSystemRight -=head2 CurrentUserHasSystemRight RIGHTNAME +Set RightName to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, RightName will be stored as a varchar(25).) -Check to see whether the current user has the specified right for the 'system' scope. =cut -sub CurrentUserHasSystemRight { - my $self = shift; - my $right = shift; - return ($self->HasRight( Right => $right, - Principal => $self->CurrentUser->UserObj, - System => 1 - )); -} - -# }}} +=item ObjectType -# {{{ sub CurrentUserHasRight +Returns the current value of ObjectType. +(In the database, ObjectType is stored as varchar(25).) -=item CurrentUserHasRight RIGHT -Takes a rightname as a string. - -Helper menthod for HasRight. Presets Principal to CurrentUser then -calls HasRight. - -=cut -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - return ($self->HasRight( Principal => $self->CurrentUser->UserObj, - Right => $right, - )); -} -# }}} +=item SetObjectType VALUE -# {{{ sub HasRight -=item HasRight +Set ObjectType to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ObjectType will be stored as a varchar(25).) -Takes a param-hash consisting of "Right" and "Principal" Principal is -an RT::User object or an RT::CurrentUser object. "Right" is a textual -Right string that applies to KeywordSelects =cut -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => undef, - Queue => undef, - System => undef, - @_ ); - - #If we're explicitly specifying a queue, as we need to do on create - if (defined $args{'Queue'}) { - return ($args{'Principal'}->HasQueueRight(Right => $args{'Right'}, - Queue => $args{'Queue'})); - } - #else if we're specifying to check a system right - elsif ((defined $args{'System'}) and (defined $args{'Right'})) { - return( $args{'Principal'}->HasSystemRight( $args{'Right'} )); - } - - elsif ($self->__Value('RightScope') eq 'System') { - return $args{'Principal'}->HasSystemRight($args{'Right'}); - } - elsif ($self->__Value('RightScope') eq 'Queue') { - return $args{'Principal'}->HasQueueRight( Queue => $self->__Value('RightAppliesTo'), - Right => $args{'Right'} ); - } - else { - $RT::Logger->warning("$self: Trying to check an acl for a scope we ". - "don't understand:" . $self->__Value('RightScope') ."\n"); - return undef; - } - - - -} -# }}} - -# }}} - -1; - -__DATA__ - -# {{{ POD - -=head1 Out of date docs -=head2 Table Structure +=item ObjectId -PrincipalType, PrincipalId, Right,Scope,AppliesTo +Returns the current value of ObjectId. +(In the database, ObjectId is stored as int(11).) -=head1 The docs are out of date. so you know. -=head1 Scopes -Scope is the scope of the right granted, not the granularity of the grant. -For example, Queue and Ticket rights are both granted for a "queue." -Rights with a scope of 'System' don't have an AppliesTo. (They're global). -Rights with a scope of "Queue" are rights that act on a queue. -Rights with a scope of "System" are rights that act on some other aspect -of the system. +=item SetObjectId VALUE -=item Queue -=item System +Set ObjectId 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).) -=head1 Rights - -=head2 Scope: Queue - -=head2 Queue rights that apply to a ticket within a queue - -Create Ticket in <queue> - - Name: Create - Principals: <user> <group> -Display Ticket Summary in <queue> - - Name: Show - Principals: <user> <group> Owner Requestor Cc AdminCc - -Display Ticket History <queue> - - Name: ShowHistory - Principals: <user> <group> Owner Requestor Cc AdminCc - -Display Ticket Private Comments <queue> +=cut - Name: ShowComments - Principals: <user> <group> Owner Requestor Cc AdminCc -Reply to Ticket in <queue> +=item DelegatedBy - Name: Reply - Principals: <user> <group> Owner Requestor Cc AdminCc +Returns the current value of DelegatedBy. +(In the database, DelegatedBy is stored as int(11).) -Comment on Ticket in <queue> - Name: Comment - Principals: <user> <group> Owner Requestor Cc AdminCc -Modify Ticket in <queue> +=item SetDelegatedBy VALUE - Name: Modify - Principals: <user> <group> Owner Requestor Cc AdminCc -Delete Tickets in <queue> +Set DelegatedBy to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, DelegatedBy will be stored as a int(11).) - Name: Delete - Principals: <user> <group> Owner Requestor Cc AdminCc +=cut -=head2 Queue Rights that apply to a whole queue -These rights can only be granted to "real people" +=item DelegatedFrom -List Tickets in <queue> +Returns the current value of DelegatedFrom. +(In the database, DelegatedFrom is stored as int(11).) - Name: ListQueue - Principals: <user> <group> -Know that <queue> exists - - Name: See - Principals: <user> <group> -Display queue settings +=item SetDelegatedFrom VALUE - Name: Explore - Principals: <user> <group> -Modify Queue Watchers for <queue> +Set DelegatedFrom to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, DelegatedFrom will be stored as a int(11).) - Name: ModifyQueueWatchers - Principals: <user> <group> -Modify Queue Attributes for <queue> +=cut - Name: ModifyQueue - Principals: <user> <group> -Modify Queue ACL for queue <queue> - Name: ModifyACL - Principals: <user> <group> +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + PrincipalType => + {read => 1, write => 1, type => 'varchar(25)', default => ''}, + PrincipalId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + RightName => + {read => 1, write => 1, type => 'varchar(25)', default => ''}, + ObjectType => + {read => 1, write => 1, type => 'varchar(25)', default => ''}, + ObjectId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + DelegatedBy => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + DelegatedFrom => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + } +}; -=head2 Rights that apply to the System scope -=head2 SystemRights + eval "require RT::ACE_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ACE_Overlay.pm}) { + die $@; + }; -Create Queue - - Name: CreateQueue - Principals: <user> <group> -Delete Queue - - Name: DeleteQueue - Principals: <user> <group> + eval "require RT::ACE_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ACE_Vendor.pm}) { + die $@; + }; -Create Users - - Name: CreateUser - Principals: <user> <group> + eval "require RT::ACE_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ACE_Local.pm}) { + die $@; + }; -Delete Users - - Name: DeleteUser - Principals: <user> <group> - -Modify Users - - Name: ModifyUser - Principals: <user> <group> -Modify Self - Name: ModifySelf - Principals: <user> <group> -Browse Users - Name: BrowseUsers (NOT IMPLEMENTED in 2.0) - Principals: <user> <group> +=head1 SEE ALSO -Modify Self - - Name: ModifySelf - Principals: <user> <group> +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. -Modify System ACL +These overlay files can contain new subs or subs to replace existing subs in this module. - Name: ModifyACL - Principals: <user> <group> +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line -=head1 The Principal Side of the ACE + no warnings qw(redefine); -=head2 PrincipalTypes,PrincipalIds in our Neighborhood +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. - User,<userid> - Group,<groupip> - Everyone,NULL +RT::ACE_Overlay, RT::ACE_Vendor, RT::ACE_Local =cut -# }}} + +1; diff --git a/rt/lib/RT/ACL.pm b/rt/lib/RT/ACL.pm index 444a4c2af..81f59c6d0 100755 --- a/rt/lib/RT/ACL.pm +++ b/rt/lib/RT/ACL.pm @@ -1,308 +1,115 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ACL.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Distributed under the terms of the GNU GPL -# Copyright (c) 2000 Jesse Vincent <jesse@fsck.com> +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::ACL - collection of RT ACE objects +=head1 NAME + RT::ACL -- Class Description + =head1 SYNOPSIS - use RT::ACL; -my $ACL = new RT::ACL($CurrentUser); + use RT::ACL =head1 DESCRIPTION =head1 METHODS -=begin testing - -ok(require RT::TestHarness); -ok(require RT::ACL); - -=end testing - =cut package RT::ACL; -use RT::EasySearch; -use RT::ACE; -@ISA= qw(RT::EasySearch); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ACL"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_)); - -} -# }}} - -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return(RT::ACE->new($self->CurrentUser)); -} -# }}} - -=head2 Next - -Hand out the next ACE that was found - -=cut - -# {{{ sub Next -sub Next { - my $self = shift; - - my $ACE = $self->SUPER::Next(); - if ((defined($ACE)) and (ref($ACE))) { - - if ( $ACE->CurrentUserHasRight('ShowACL') or - $ACE->CurrentUserHasRight('ModifyACL') - ) { - return($ACE); - } - - #If the user doesn't have the right to show this ACE - else { - return($self->Next()); - } - } - #if there never was any ACE - else { - return(undef); - } - -} -# }}} - - -=head1 Limit the ACL to a specific scope - -There are two real scopes right now: - -=item Queue is for rights that apply to a single queue - -=item System is for rights that apply to the System (rights that aren't queue related) - - -=head2 LimitToQueue - -Takes a single queueid as its argument. +use RT::SearchBuilder; +use RT::ACE; -Limit the ACL to just a given queue when supplied with an integer queue id. +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -=cut -sub LimitToQueue { +sub _Init { my $self = shift; - my $queue = shift; - - - - $self->Limit( FIELD =>'RightScope', - ENTRYAGGREGATOR => 'OR', - VALUE => 'Queue'); - $self->Limit( FIELD =>'RightScope', - ENTRYAGGREGATOR => 'OR', - VALUE => 'Ticket'); - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'RightAppliesTo', - VALUE => $queue ); - -} - - -=head2 LimitToSystem() - -Limit the ACL to system rights - -=cut - -sub LimitToSystem { - my $self = shift; - - $self->Limit( FIELD =>'RightScope', - VALUE => 'System'); -} - - -=head2 LimitRightTo - -Takes a single RightName as its only argument. -Limits the search to the right $right. -$right is a right listed in perldoc RT::ACE - -=cut - -sub LimitRightTo { - my $self = shift; - my $right = shift; - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'RightName', - VALUE => $right ); - -} - -=head1 Limit to a specifc set of principals - -=head2 LimitPrincipalToUser - -Takes a single userid as its only argument. -Limit the ACL to a just a specific user. - -=cut - -sub LimitPrincipalToUser { - my $self = shift; - my $user = shift; - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalType', - VALUE => 'User' ); - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalId', - VALUE => $user ); - -} - + $self->{'table'} = 'ACL'; + $self->{'primary_key'} = 'id'; -=head2 LimitPrincipalToGroup - -Takes a single group as its only argument. -Limit the ACL to just a specific group. - -=cut - -sub LimitPrincipalToGroup { - my $self = shift; - my $group = shift; - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalType', - VALUE => 'Group' ); - - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalId', - VALUE => $group ); + return ( $self->SUPER::_Init(@_) ); } -=head2 LimitPrincipalToType($type) -Takes a single argument, $type. -Limit the ACL to just a specific principal type +=item NewItem -$type is one of: - TicketOwner - TicketRequestor - TicketCc - TicketAdminCc - Everyone - User - Group +Returns an empty new RT::ACE item =cut -sub LimitPrincipalToType { - my $self=shift; - my $type=shift; - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalType', - VALUE => $type ); +sub NewItem { + my $self = shift; + return(RT::ACE->new($self->CurrentUser)); } + eval "require RT::ACL_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ACL_Overlay.pm}) { + die $@; + }; -=head2 LimitPrincipalToId + eval "require RT::ACL_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ACL_Vendor.pm}) { + die $@; + }; -Takes a single argument, the numeric Id of the principal to limit this ACL to. Repeated calls to this -function will broaden the scope of the search to include all principals listed. - -=cut - -sub LimitPrincipalToId { - my $self = shift; - my $id = shift; - - if ($id =~ /^\d+$/) { - $self->Limit(ENTRYAGGREGATOR => 'OR', - FIELD => 'PrincipalId', - VALUE => $id ); - } - else { - $RT::Logger->warn($self."->LimitPrincipalToId called with '$id' as an id"); - return undef; - } -} + eval "require RT::ACL_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ACL_Local.pm}) { + die $@; + }; -#wrap around _DoSearch so that we can build the hash of returned -#values -sub _DoSearch { - my $self = shift; - # $RT::Logger->debug("Now in ".$self."->_DoSearch"); - my $return = $self->SUPER::_DoSearch(@_); - # $RT::Logger->debug("In $self ->_DoSearch. return from SUPER::_DoSearch was $return\n"); - $self->_BuildHash(); - return ($return); -} -#Build a hash of this ACL's entries. -sub _BuildHash { - my $self = shift; +=head1 SEE ALSO - while (my $entry = $self->Next) { - my $hashkey = $entry->RightScope . "-" . - $entry->RightAppliesTo . "-" . - $entry->RightName . "-" . - $entry->PrincipalId . "-" . - $entry->PrincipalType; +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. - $self->{'as_hash'}->{"$hashkey"} =1; +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); -# {{{ HasEntry +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. -=head2 HasEntry +RT::ACL_Overlay, RT::ACL_Vendor, RT::ACL_Local =cut -sub HasEntry { - - my $self = shift; - my %args = ( RightScope => undef, - RightAppliesTo => undef, - RightName => undef, - PrincipalId => undef, - PrincipalType => undef, - @_ ); - - #if we haven't done the search yet, do it now. - $self->_DoSearch(); - - if ($self->{'as_hash'}->{ $args{'RightScope'} . "-" . - $args{'RightAppliesTo'} . "-" . - $args{'RightName'} . "-" . - $args{'PrincipalId'} . "-" . - $args{'PrincipalType'} - } == 1) { - return(1); - } - else { - return(undef); - } -} -# }}} 1; diff --git a/rt/lib/RT/Action/Autoreply.pm b/rt/lib/RT/Action/Autoreply.pm index 624888e94..81f7bddfa 100755 --- a/rt/lib/RT/Action/Autoreply.pm +++ b/rt/lib/RT/Action/Autoreply.pm @@ -1,7 +1,31 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Autoreply.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - +# 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. +# +# 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 vars qw/@ISA/; @ISA = qw(RT::Action::SendEmail); @@ -17,7 +41,7 @@ Sets the recipients of this message to this ticket's Requestor. sub SetRecipients { my $self=shift; - push(@{$self->{'To'}}, @{$self->TicketObj->Requestors->Emails}); + push(@{$self->{'To'}}, $self->TicketObj->Requestors->MemberEmailAddresses); return(1); } @@ -39,6 +63,7 @@ sub SetReturnAddress { @_ ); + my $replyto; if ($args{'is_comment'}) { $replyto = $self->TicketObj->QueueObj->CommentAddress || $RT::CommentAddress; @@ -49,7 +74,9 @@ sub SetReturnAddress { } unless ($self->TemplateObj->MIMEObj->head->get('From')) { - my $friendly_name=$self->TicketObj->QueueObj->Name; + my $friendly_name = $self->TicketObj->QueueObj->Description || + $self->TicketObj->QueueObj->Name; + $friendly_name =~ s/"/\\"/g; $self->SetHeader('From', "\"$friendly_name\" <$replyto>"); } @@ -61,4 +88,9 @@ sub SetReturnAddress { # }}} +eval "require RT::Action::Autoreply_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Autoreply_Vendor.pm}); +eval "require RT::Action::Autoreply_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Autoreply_Local.pm}); + 1; diff --git a/rt/lib/RT/Action/Generic.pm b/rt/lib/RT/Action/Generic.pm index ecfd4ab1a..007d299c7 100755 --- a/rt/lib/RT/Action/Generic.pm +++ b/rt/lib/RT/Action/Generic.pm @@ -1,7 +1,26 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Generic.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - +# 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. +# +# 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 - a generic baseclass for RT Actions @@ -16,7 +35,6 @@ =begin testing -ok (require RT::TestHarness); ok (require RT::Action::Generic); =end testing @@ -25,6 +43,8 @@ ok (require RT::Action::Generic); package RT::Action::Generic; +use strict; + # {{{ sub new sub new { my $proto = shift; @@ -36,6 +56,13 @@ sub new { } # }}} +# {{{ sub new +sub loc { + my $self = shift; + return $self->{'ScripObj'}->loc(@_); +} +# }}} + # {{{ sub _Init sub _Init { my $self = shift; @@ -87,6 +114,13 @@ sub TemplateObj { } # }}} +# {{{ sub ScripObj +sub ScripObj { + my $self = shift; + return($self->{'ScripObj'}); +} +# }}} + # {{{ sub Type sub Type { my $self = shift; @@ -102,7 +136,7 @@ sub Type { # {{{ sub Commit sub Commit { my $self = shift; - return(0,"Commit Stubbed"); + return(0, $self->loc("Commit Stubbed")); } # }}} @@ -112,7 +146,7 @@ sub Commit { # {{{ sub Describe sub Describe { my $self = shift; - return ("No description for " . ref $self); + return $self->loc("No description for [_1]", ref $self); } # }}} @@ -122,7 +156,7 @@ sub Describe { # {{{ sub Prepare sub Prepare { my $self = shift; - return (0,"Prepare Stubbed"); + return (0, $self->loc("Prepare Stubbed")); } # }}} @@ -152,4 +186,10 @@ sub DESTROY { } # }}} + +eval "require RT::Action::Generic_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Generic_Vendor.pm}); +eval "require RT::Action::Generic_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Generic_Local.pm}); + 1; diff --git a/rt/lib/RT/Action/Notify.pm b/rt/lib/RT/Action/Notify.pm index 6dca4fd41..1e4e4c073 100755 --- a/rt/lib/RT/Action/Notify.pm +++ b/rt/lib/RT/Action/Notify.pm @@ -1,7 +1,31 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Notify.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - +# 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. +# +# 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 vars qw/@ISA/; @ISA = qw(RT::Action::SendEmail); # {{{ sub SetRecipients @@ -9,14 +33,14 @@ require RT::Action::SendEmail; =head2 SetRecipients Sets the recipients of this meesage to Owner, Requestor, AdminCc, Cc or All. -Explicitly B<does not> notify the creator of the transaction. +Explicitly B<does not> notify the creator of the transaction by default =cut sub SetRecipients { my $self = shift; - $arg = $self->Argument; + my $arg = $self->Argument; $arg =~ s/\bAll\b/Owner,Requestor,AdminCc,Cc/; @@ -24,14 +48,14 @@ sub SetRecipients { if ($arg =~ /\bOtherRecipients\b/) { - if ($self->TransactionObj->Message->First) { - push (@Cc, $self->TransactionObj->Message->First->GetHeader('RT-Send-Cc')); - push (@Bcc, $self->TransactionObj->Message->First->GetHeader('RT-Send-Bcc')); + 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, @{ $self->TicketObj->Requestors->Emails } ); + push ( @To, $self->TicketObj->Requestors->MemberEmailAddresses ); } @@ -40,12 +64,12 @@ sub SetRecipients { #If we have a To, make the Ccs, Ccs, otherwise, promote them to To if (@To) { - push ( @Cc, @{ $self->TicketObj->Cc->Emails } ); - push ( @Cc, @{ $self->TicketObj->QueueObj->Cc->Emails } ); + push ( @Cc, $self->TicketObj->Cc->MemberEmailAddresses ); + push ( @Cc, $self->TicketObj->QueueObj->Cc->MemberEmailAddresses ); } else { - push ( @Cc, @{ $self->TicketObj->Cc->Emails } ); - push ( @To, @{ $self->TicketObj->QueueObj->Cc->Emails } ); + push ( @Cc, $self->TicketObj->Cc->MemberEmailAddresses ); + push ( @To, $self->TicketObj->QueueObj->Cc->MemberEmailAddresses ); } } @@ -65,15 +89,16 @@ sub SetRecipients { } if ( $arg =~ /\bAdminCc\b/ ) { - push ( @Bcc, @{ $self->TicketObj->AdminCc->Emails } ); - push ( @Bcc, @{ $self->TicketObj->QueueObj->AdminCc->Emails } ); + push ( @Bcc, $self->TicketObj->AdminCc->MemberEmailAddresses ); + push ( @Bcc, $self->TicketObj->QueueObj->AdminCc->MemberEmailAddresses ); } if ($RT::UseFriendlyToLine) { unless (@To) { - push ( @PseudoTo, - "\"$arg of $RT::rtname Ticket #" - . $self->TicketObj->id . "\":;" ); + push ( + @PseudoTo, + sprintf($RT::FriendlyToLineFormat, $arg, $self->TicketObj->id), + ); } } @@ -81,14 +106,17 @@ sub SetRecipients { #Strip the sender out of the To, Cc and AdminCc and set the # recipients fields used to build the message by the superclass. - - $RT::Logger->debug("$self: To is ".join(",",@To)); - $RT::Logger->debug("$self: Cc is ".join(",",@Cc)); - $RT::Logger->debug("$self: Bcc is ".join(",",@Bcc)); - - @{ $self->{'To'} } = grep ( !/^$creator$/, @To ); - @{ $self->{'Cc'} } = grep ( !/^$creator$/, @Cc ); - @{ $self->{'Bcc'} } = grep ( !/^$creator$/, @Bcc ); + # unless a flag is set + if ($RT::NotifyActor) { + @{ $self->{'To'} } = @To; + @{ $self->{'Cc'} } = @Cc; + @{ $self->{'Bcc'} } = @Bcc; + } + else { + @{ $self->{'To'} } = grep ( !/^$creator$/, @To ); + @{ $self->{'Cc'} } = grep ( !/^$creator$/, @Cc ); + @{ $self->{'Bcc'} } = grep ( !/^$creator$/, @Bcc ); + } @{ $self->{'PseudoTo'} } = @PseudoTo; return (1); @@ -96,4 +124,9 @@ sub SetRecipients { # }}} +eval "require RT::Action::Notify_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Notify_Vendor.pm}); +eval "require RT::Action::Notify_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/Notify_Local.pm}); + 1; diff --git a/rt/lib/RT/Action/NotifyAsComment.pm b/rt/lib/RT/Action/NotifyAsComment.pm index c72bfff13..210e4ab15 100755 --- a/rt/lib/RT/Action/NotifyAsComment.pm +++ b/rt/lib/RT/Action/NotifyAsComment.pm @@ -1,7 +1,31 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/NotifyAsComment.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - +# 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. +# +# 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 vars qw/@ISA/; @ISA = qw(RT::Action::Notify); @@ -21,5 +45,11 @@ sub SetReturnAddress { return($self->SUPER::SetReturnAddress(is_comment => 1)); } + +eval "require RT::Action::NotifyAsComment_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/NotifyAsComment_Vendor.pm}); +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/OpenDependent.pm b/rt/lib/RT/Action/OpenDependent.pm deleted file mode 100644 index b271e4709..000000000 --- a/rt/lib/RT/Action/OpenDependent.pm +++ /dev/null @@ -1,55 +0,0 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Attic/OpenDependent.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# This Action will open the BASE if a dependent is resolved. - -package RT::Action::OpenDependent; -require RT::Action::Generic; -require RT::Links; -@ISA=qw(RT::Action::Generic); - -#Do what we need to do and send it out. - -#What does this type of Action does - -# {{{ sub Describe -sub Describe { - my $self = shift; - return (ref $self . " will stall a [local] BASE if it's open and a dependency link is created."); -} -# }}} - - -# {{{ sub Prepare -sub Prepare { - # nothing to prepare - return 1; -} -# }}} - -sub Commit { - my $self = shift; - - my $Links=RT::Links->new($RT::SystemUser); - $Links->Limit(FIELD => 'Type', VALUE => 'DependsOn'); - $Links->Limit(FIELD => 'Target', VALUE => $self->TicketObj->id); - - while (my $Link=$Links->Next()) { - next unless $Link->BaseIsLocal; - my $base=RT::Ticket->new($self->TicketObj->CurrentUser); - # Todo: Only work if Base is a plain ticket num: - $base->Load($Link->Base); - $base->Open if $base->Status eq 'stalled'; - } -} - - -# Applicability checked in Commit. - -# {{{ sub IsApplicable -sub IsApplicable { - my $self = shift; - 1; - return 1; -} -# }}} - -1; diff --git a/rt/lib/RT/Action/ResolveMembers.pm b/rt/lib/RT/Action/ResolveMembers.pm index 00547ebe8..02ff3a58c 100644 --- a/rt/lib/RT/Action/ResolveMembers.pm +++ b/rt/lib/RT/Action/ResolveMembers.pm @@ -1,8 +1,34 @@ +# 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. +# +# 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; 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. @@ -12,7 +38,7 @@ require RT::Links; # {{{ sub Describe sub Describe { my $self = shift; - return (ref $self . " will resolve all members of a resolved group ticket."); + return $self->loc("[_1] will resolve all members of a resolved group ticket.", ref $self); } # }}} @@ -33,7 +59,7 @@ sub Commit { while (my $Link=$Links->Next()) { # Todo: Try to deal with remote URIs as well - next unless $Link->BaseIsLocal; + next unless $Link->BaseURI->IsLocal; my $base=RT::Ticket->new($self->TicketObj->CurrentUser); # Todo: Only work if Base is a plain ticket num: $base->Load($Link->Base); @@ -53,5 +79,10 @@ sub IsApplicable { } # }}} +eval "require RT::Action::ResolveMembers_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/ResolveMembers_Vendor.pm}); +eval "require RT::Action::ResolveMembers_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/ResolveMembers_Local.pm}); + 1; diff --git a/rt/lib/RT/Action/SendEmail.pm b/rt/lib/RT/Action/SendEmail.pm index e3abb1154..dac8fc8e7 100755 --- a/rt/lib/RT/Action/SendEmail.pm +++ b/rt/lib/RT/Action/SendEmail.pm @@ -1,20 +1,44 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/SendEmail.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com> +# 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. +# +# 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> -# Released under the terms of version 2 of the GNU Public License package RT::Action::SendEmail; require RT::Action::Generic; +use strict; +use vars qw/@ISA/; @ISA = qw(RT::Action::Generic); +use MIME::Words qw(encode_mimeword); -=head1 NAME +use RT::EmailParser; - RT::Action::SendEmail - An Action which users can use to send mail - or can subclassed for more specialized mail sending behavior. - RT::Action::AutoReply is a good example subclass. +=head1 NAME +RT::Action::SendEmail - An Action which users can use to send mail +or can subclassed for more specialized mail sending behavior. +RT::Action::AutoReply is a good example subclass. =head1 SYNOPSIS @@ -36,7 +60,6 @@ the comments for the SetRecipients sub). =begin testing -ok (require RT::TestHarness); ok (require RT::Action::SendEmail); =end testing @@ -54,158 +77,266 @@ perl(1). # {{{ Scrip methods (_Init, Commit, Prepare, IsApplicable) -# {{{ sub _Init +# {{{ sub _Init # We use _Init from RT::Action # }}} -# {{{ sub Commit +# {{{ sub Commit #Do what we need to do and send it out. -sub Commit { +sub Commit { my $self = shift; + + 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 - + + # 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 - - if (defined $self->TransactionObj->Message->First()) { - my $headers = $self->TransactionObj->Message->First->Headers(); - - if ($headers =~ /^RT-Squelch-Replies-To: (.*?)$/si) { - my @blacklist = split(/,/,$1); - - # Cycle through the people we're sending to and pull out anyone on the - # system blacklist - - 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'}}); - } - } + + if ( defined $self->TransactionObj->Attachments->First() ) { + + my $squelch = $self->TransactionObj->Attachments->First->GetHeader( 'RT-Squelch-Replies-To'); + + if ($squelch) { + my @blacklist = split ( /,/, $squelch ); + + # Cycle through the people we're sending to and pull out anyone on the + # system blacklist + + 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 + + # 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. - - $self->SetHeader('To', join(',', @{$self->{'To'}})) - if (@{$self->{'To'}}); - $self->SetHeader('Cc', join(',' , @{$self->{'Cc'}})) - if (@{$self->{'Cc'}}); - $self->SetHeader('Bcc', join(',', @{$self->{'Bcc'}})) - if (@{$self->{'Bcc'}});; - - my $MIMEObj = $self->TemplateObj->MIMEObj; - - $MIMEObj->make_singlepart; - - + $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'} } ); + + + $self->SetHeader('MIME-Version', '1.0'); + + # try to convert message body from utf-8 to $RT::EmailOutputEncoding + $self->SetHeader( 'Content-Type', 'text/plain; charset="utf-8"' ); + + RT::I18N::SetMIMEEntityToEncoding( $MIMEObj, $RT::EmailOutputEncoding, 'mime_words_ok' ); + $self->SetHeader( 'Content-Type', 'text/plain; charset="' . $RT::EmailOutputEncoding . '"' ); + + + # Build up a MIME::Entity that looks like the original message. + + my $do_attach = $self->TemplateObj->MIMEObj->head->get('RT-Attach-Message'); + + if ($do_attach) { + $self->TemplateObj->MIMEObj->head->delete('RT-Attach-Message'); + + my $attachments = RT::Attachments->new($RT::SystemUser); + $attachments->Limit( FIELD => 'TransactionId', + VALUE => $self->TransactionObj->Id ); + $attachments->OrderBy('id'); + + my $transaction_content_obj = $self->TransactionObj->ContentObj; + + # attach any of this transaction's attachments + while ( my $attach = $attachments->Next ) { + + # Don't attach anything blank + next unless ( $attach->ContentLength ); + + # 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'); + } + + } + + + my $retval = $self->SendMessage($MIMEObj); + + + return ($retval); +} + +# }}} + +# {{{ sub Prepare + +sub Prepare { + my $self = shift; + + # This actually populates the MIME::Entity fields in the Template Object + + unless ( $self->TemplateObj ) { + $RT::Logger->warning("No template object handed to $self\n"); + } + + unless ( $self->TransactionObj ) { + $RT::Logger->warning("No transaction object handed to $self\n"); + + } + + unless ( $self->TicketObj ) { + $RT::Logger->warning("No ticket object handed to $self\n"); + + } + + 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 ); + } + } + + return $result; + +} + +# }}} + +# }}} + +# {{{ SendMessage +=head2 SendMessage MIMEObj + +sends the message using RT's preferred API. +TODO: Break this out to a seperate module + +=cut + +sub SendMessage { + my $self = shift; + my $MIMEObj = shift; + + my $msgid = $MIMEObj->head->get('Message-Id'); + + #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->debug("$self: No recipients found. Not sending.\n"); - return(1); + 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); } # 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. - $self->SetHeader('To', join(',', @{$self->{'PseudoTo'}})) - if ( (@{$self->{'PseudoTo'}}) and (! $MIMEObj->head->get('To'))); - - if ($RT::MailCommand eq 'sendmailpipe') { - open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); - print MAIL $MIMEObj->as_string; - close(MAIL); + $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 { - unless ($MIMEObj->send($RT::MailCommand, $RT::MailParams)) { - $RT::Logger->crit("$self: Could not send mail for ". - $self->TransactionObj . "\n"); - return(0); + my @mailer_args = ($RT::MailCommand); + local $ENV{MAILADDRESS}; + + 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; } + + unless ( $MIMEObj->send( @mailer_args ) ) { + $RT::Logger->crit($msgid. "Could not send mail." ); + return (0); + } } - - return (1); - -} -# }}} -# {{{ sub Prepare -sub Prepare { - my $self = shift; - - # This actually populates the MIME::Entity fields in the Template Object - - unless ($self->TemplateObj) { - $RT::Logger->warning("No template object handed to $self\n"); - } - - unless ($self->TransactionObj) { - $RT::Logger->warning("No transaction object handed to $self\n"); - - } - - unless ($self->TicketObj) { - $RT::Logger->warning("No ticket object handed to $self\n"); - - } - - - $self->TemplateObj->Parse(Argument => $self->Argument, - TicketObj => $self->TicketObj, - TransactionObj => $self->TransactionObj); - - # Header - - $self->SetSubject(); - - $self->SetSubjectToken(); - - $self->SetRecipients(); - - $self->SetReturnAddress(); + 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); - $self->SetRTSpecialHeaders(); - - return 1; - + return (1); } # }}} -# }}} - # {{{ Deal with message headers (Set* subs, designed for easy overriding) # {{{ sub SetRTSpecialHeaders -# This routine adds all the random headers that RT wants in a mail message -# that don't matter much to anybody else. +=head2 SetRTSpecialHeaders + +This routine adds all the random headers that RT wants in a mail message +that don't matter much to anybody else. + +=cut sub SetRTSpecialHeaders { my $self = shift; - + $self->SetReferences(); $self->SetMessageID(); - + $self->SetPrecedence(); - $self->SetHeader('X-RT-Loop-Prevention', $RT::rtname); - $self->SetHeader('RT-Ticket', $RT::rtname. " #".$self->TicketObj->id()); - $self->SetHeader - ('Managed-by',"RT $RT::VERSION (http://bestpractical.com/rt/)"); - - $self->SetHeader('RT-Originator', $self->TransactionObj->CreatorObj->EmailAddress); - return(); - -} + $self->SetHeader( 'X-RT-Loop-Prevention', $RT::rtname ); + $self->SetHeader( 'RT-Ticket', + $RT::rtname . " #" . $self->TicketObj->id() ); + $self->SetHeader( 'Managed-by', + "RT $RT::VERSION (http://www.bestpractical.com/rt/)" ); + $self->SetHeader( 'RT-Originator', + $self->TransactionObj->CreatorObj->EmailAddress ); + return (); +} # {{{ sub SetReferences @@ -218,105 +349,126 @@ sub SetRTSpecialHeaders { =cut sub SetReferences { - my $self = shift; - - # 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 $self = shift; - $self->SetHeader - ('In-Reply-To', "<rt-".$self->TicketObj->id(). - "\@".$RT::rtname.">"); + # 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. + $self->SetHeader( 'In-Reply-To', + "<rt-" . $self->TicketObj->id() . "\@" . $RT::rtname . ">" ); - # TODO We should always add References headers for all message-ids - # of previous messages related to this ticket. + # TODO We should always add References headers for all message-ids + # of previous messages related to this ticket. } # }}} # {{{ sub SetMessageID -# 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. +=head2 SetMessageID -sub SetMessageID { - my $self = shift; +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. - # 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#" +=cut + +sub SetMessageID { + my $self = shift; - $self->SetHeader - ('Message-ID', "<rt-".$self->TicketObj->id(). - "-". - $self->TransactionObj->id()."." .rand(20) . "\@".$RT::Organization.">") + # 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'); } - # }}} # }}} -# {{{ sub SetReturnAddress +# {{{ sub SetReturnAddress + +=head2 SetReturnAddress is_comment => BOOLEAN + +Calculate and set From and Reply-To headers based on the is_comment flag. + +=cut sub SetReturnAddress { - my $self = shift; - my %args = ( is_comment => 0, - @_ ); - - # From and Reply-To - # $args{is_comment} should be set if the comment address is to be used. - 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->TransactionObj->CreatorObj->RealName; - - if ($friendly_name =~ /^\S+\@\S+$/) { # A "bare" mail address - $friendly_name =~ s/"/\\"/g; - $friendly_name = qq|"$friendly_name"|; - } - - - # TODO: this "via RT" should really be site-configurable. - $self->SetHeader('From', "\"$friendly_name via RT\" <$replyto>"); - } - - unless ($self->TemplateObj->MIMEObj->head->get('Reply-To')) { - $self->SetHeader('Reply-To', "$replyto"); - } - + my $self = shift; + my %args = ( is_comment => 0, + @_ ); + + # From and Reply-To + # $args{is_comment} should be set if the comment address is to be used. + 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') ) { + 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') ) { + $self->SetHeader( 'Reply-To', "$replyto" ); + } + } # }}} # {{{ sub SetHeader +=head2 SetHeader FIELD, VALUE + +Set the FIELD of the current MIME object into VALUE. + +=cut + sub SetHeader { - my $self = shift; - my $field = shift; - my $val = shift; - - chomp $val; - chomp $field; - $self->TemplateObj->MIMEObj->head->fold_length($field,10000); - $self->TemplateObj->MIMEObj->head->add($field, $val); - return $self->TemplateObj->MIMEObj->head->get($field); + my $self = shift; + my $field = shift; + my $val = shift; + + chomp $val; + chomp $field; + $self->TemplateObj->MIMEObj->head->fold_length( $field, 10000 ); + $self->TemplateObj->MIMEObj->head->replace( $field, $val ); + return $self->TemplateObj->MIMEObj->head->get($field); } # }}} @@ -331,21 +483,29 @@ Dummy method to be overriden by subclasses which want to set the recipients. sub SetRecipients { my $self = shift; - return(); + return (); } # }}} # {{{ sub SetTo +=head2 SetTo + +Takes a string that is the addresses you want to send mail to + +=cut + sub SetTo { - my $self=shift; + my $self = shift; my $addresses = shift; - return $self->SetHeader('To',$addresses); + return $self->SetHeader( 'To', $addresses ); } + # }}} # {{{ sub SetCc + =head2 SetCc Takes a string that is the addresses you want to Cc @@ -353,11 +513,12 @@ Takes a string that is the addresses you want to Cc =cut sub SetCc { - my $self=shift; + my $self = shift; my $addresses = shift; - return $self->SetHeader('Cc', $addresses); + return $self->SetHeader( 'Cc', $addresses ); } + # }}} # {{{ sub SetBcc @@ -367,23 +528,24 @@ sub SetCc { Takes a string that is the addresses you want to Bcc =cut + sub SetBcc { - my $self=shift; + my $self = shift; my $addresses = shift; - return $self->SetHeader('Bcc', $addresses); + return $self->SetHeader( 'Bcc', $addresses ); } # }}} -# {{{ sub SetPrecedence +# {{{ sub SetPrecedence sub SetPrecedence { - my $self = shift; + my $self = shift; - unless ($self->TemplateObj->MIMEObj->head->get("Precedence")) { - $self->SetHeader('Precedence', "bulk"); - } + unless ( $self->TemplateObj->MIMEObj->head->get("Precedence") ) { + $self->SetHeader( 'Precedence', "bulk" ); + } } # }}} @@ -399,70 +561,125 @@ the transaction's subject. =cut sub SetSubject { - my $self = shift; - unless ($self->TemplateObj->MIMEObj->head->get('Subject')) { - my $message=$self->TransactionObj->Message; - my $ticket=$self->TicketObj->Id; - + my $self = shift; my $subject; - - if ($self->{'Subject'}) { - $subject = $self->{'Subject'}; - } - elsif (($message->First()) && - ($message->First->Headers)) { - $header = $message->First->Headers(); - $header =~ s/\n\s+/ /g; - if ( $header =~ /^Subject: (.*?)$/m ) { - $subject = $1; - } - else { - $subject = $self->TicketObj->Subject(); - } - - } - else { - $subject = $self->TicketObj->Subject(); - } - - $subject =~ s/(\r\n|\n|\s)/ /gi; - chomp $subject; - $self->SetHeader('Subject',$subject); - + 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(); + } + + } + else { + $subject = $self->TicketObj->Subject(); + } + + $subject =~ s/(\r\n|\n|\s)/ /gi; + + chomp $subject; + $self->SetHeader( 'Subject', $subject ); + } - return($subject); + return ($subject); } + # }}} # {{{ sub SetSubjectToken =head2 SetSubjectToken - This routine fixes the RT tag in the subject. It's unlikely that you want to overwrite this. +This routine fixes the RT tag in the subject. It's unlikely that you want to overwrite this. =cut sub SetSubjectToken { - my $self=shift; - 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"); - } + my $self = shift; + 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" ); + } } # }}} # }}} -__END__ +# {{{ + +=head2 SetHeaderAsEncoding($field_name, $charset_encoding) + +This routine converts the field into specified charset encoding. + +=cut + +sub SetHeaderAsEncoding { + my $self = shift; + my ( $field, $enc ) = ( shift, shift ); + + if ($field eq 'From' and $RT::SMTPFrom) { + $self->TemplateObj->MIMEObj->head->replace( $field, $RT::SMTPFrom ); + return; + } + + 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' + + $value = $self->MIMEEncodeString($value, $enc); + + $self->TemplateObj->MIMEObj->head->replace( $field, $value ); + + +} +# }}} + +# {{{ 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; + my $value = shift; + my $enc = shift; -# {{{ POD + 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}); +eval "require RT::Action::SendEmail_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/SendEmail_Local.pm}); + 1; diff --git a/rt/lib/RT/Action/SendPasswordEmail.pm b/rt/lib/RT/Action/SendPasswordEmail.pm deleted file mode 100755 index 91bb3c1cb..000000000 --- a/rt/lib/RT/Action/SendPasswordEmail.pm +++ /dev/null @@ -1,170 +0,0 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Action/Attic/SendPasswordEmail.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 2001 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public License - -package RT::Action::SendPasswordEmail; -require RT::Action::Generic; - -@ISA = qw(RT::Action::Generic); - - -=head1 NAME - - RT::Action::SendGenericEmail - An Action which users can use to send mail - or can subclassed for more specialized mail sending behavior. - - - -=head1 SYNOPSIS - - require RT::Action::SendPasswordEmail; - - -=head1 DESCRIPTION - -Basically, you create another module RT::Action::YourAction which ISA -RT::Action::SendEmail. - -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). - - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Action::SendPasswordEmail); - -=end testing - - -=head1 AUTHOR - -Jesse Vincent <jesse@bestpractical.com> - -=head1 SEE ALSO - -perl(1). - -=cut - -# {{{ Scrip methods (_Init, Commit, Prepare, IsApplicable) - -# {{{ sub Commit - -#Do what we need to do and send it out. - -sub Commit { - my $self = shift; - #send the email - - - - - - my $MIMEObj = $self->TemplateObj->MIMEObj; - - - $MIMEObj->make_singlepart; - - #If we don\'t have any recipients to send to, don\'t send a message; - unless ($MIMEObj->head->get('To')) { - $RT::Logger->debug("$self: No recipients found. Not sending.\n"); - return(1); - } - - if ($RT::MailCommand eq 'sendmailpipe') { - open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); - print MAIL $MIMEObj->as_string; - close(MAIL); - } - else { - unless ($MIMEObj->send($RT::MailCommand, $RT::MailParams)) { - $RT::Logger->crit("$self: Could not send mail for ". - $self->TransactionObj . "\n"); - return(0); - } - } - - return (1); - -} -# }}} - -# {{{ sub Prepare - -sub Prepare { - my $self = shift; - - # This actually populates the MIME::Entity fields in the Template Object - - unless ($self->TemplateObj) { - $RT::Logger->warning("No template object handed to $self\n"); - } - - - unless ($self->TemplateObj->MIMEObj->head->get('Reply-To')) { - $self->SetHeader('Reply-To',$RT::CorrespondAddress ); - } - - - $self->SetHeader('Precedence', "bulk"); - $self->SetHeader('X-RT-Loop-Prevention', $RT::rtname); - $self->SetHeader - ('Managed-by',"Request Tracker $RT::VERSION (http://www.fsck.com/projects/rt/)"); - - $self->TemplateObj->Parse(Argument => $self->Argument); - - - return 1; -} - -# }}} - -# }}} - - -# {{{ sub SetTo - -=head2 SetTo EMAIL - -Sets this message's "To" field to EMAIL - -=cut - -sub SetTo { - my $self = shift; - my $to = shift; - $self->SetHeader('To',$to); -} - -# }}} - -# {{{ sub SetHeader - -sub SetHeader { - my $self = shift; - my $field = shift; - my $val = shift; - - chomp $val; - chomp $field; - $self->TemplateObj->MIMEObj->head->fold_length($field,10000); - $self->TemplateObj->MIMEObj->head->add($field, $val); - return $self->TemplateObj->MIMEObj->head->get($field); -} - -# }}} - - - -__END__ - -# {{{ POD - -# }}} - -1; - diff --git a/rt/lib/RT/Action/StallDependent.pm b/rt/lib/RT/Action/StallDependent.pm deleted file mode 100644 index 09d3448a8..000000000 --- a/rt/lib/RT/Action/StallDependent.pm +++ /dev/null @@ -1,68 +0,0 @@ -# This Action will stall the BASE if a dependency or membership link -# (according to argument) is created and if BASE is open. - -# TODO: Rename this .pm - -package RT::Action::StallDependent; -require RT::Action::Generic; -@ISA=qw|RT::Action::Generic|; - -# {{{ sub Describe -sub Describe { - my $self = shift; - return (ref $self . " will stall a [local] BASE if it's dependent [or member] of a linked up request."); -} -# }}} - - -# {{{ sub Prepare -sub Prepare { - # nothing to prepare - return 1; -} -# }}} - -sub Commit { - my $self = shift; - # Find all Dependent - my $arg=$self->Argument || "DependsOn"; - unless ($self->TransactionObj->Data =~ /^([^ ]+) $arg /) { - warn; return 0; - } - my $base_id=$1; - my $base; - if ($1 eq "THIS") { - $base=$self->TicketObj; - } else { - $base_id=&RT::Link::_IsLocal(undef, $base_id) || return 0; - $base=RT::Ticket->new($self->TicketObj->CurrentUser); - $base->Load($base_id); - } - $base->Stall if $base->Status eq 'open'; - return 0; -} - - -# {{{ sub IsApplicable - -# Only applicable if: -# 1. the link action is a dependency -# 2. BASE is a local ticket - -sub IsApplicable { - my $self = shift; - - my $arg=$self->Argument || "DependsOn"; - - # 1: - $self->TransactionObj->Data =~ /^([^ ]*) $arg / || return 0; - - # 2: - # (dirty!) - &RT::Link::_IsLocal(undef,$1) || return 0; - - return 1; -} -# }}} - -1; diff --git a/rt/lib/RT/Attachment.pm b/rt/lib/RT/Attachment.pm index 916ac355e..2ed520162 100755 --- a/rt/lib/RT/Attachment.pm +++ b/rt/lib/RT/Attachment.pm @@ -1,423 +1,372 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attachment.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 2000 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Attachment -- an RT attachment object +RT::Attachment + =head1 SYNOPSIS - use RT::Attachment; +=head1 DESCRIPTION +=head1 METHODS -=head1 DESCRIPTION +=cut -This module should never be instantiated directly by client code. it's an internal -module which should only be instantiated through exported APIs in Ticket, Queue and other -similar objects. +package RT::Attachment; +use RT::Record; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('Attachments'); + $self->SUPER::_Init(@_); +} -=head1 METHODS -=begin testing -ok (require RT::TestHarness); -ok (require RT::Attachment); +=item Create PARAMHASH -=end testing +Create takes a hash of values and creates a row in the database: + + int(11) 'TransactionId'. + int(11) 'Parent'. + varchar(160) 'MessageId'. + varchar(255) 'Subject'. + varchar(255) 'Filename'. + varchar(80) 'ContentType'. + varchar(80) 'ContentEncoding'. + longtext 'Content'. + longtext 'Headers'. =cut -package RT::Attachment; -use RT::Record; -use MIME::Base64; -use vars qw|@ISA|; -@ISA= qw(RT::Record); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Attachments"; - return($self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub _ClassAccessible -sub _ClassAccessible { - { - TransactionId => { 'read'=>1, 'public'=>1, }, - MessageId => { 'read'=>1, }, - Parent => { 'read'=>1, }, - ContentType => { 'read'=>1, }, - Subject => { 'read'=>1, }, - Content => { 'read'=>1, }, - ContentEncoding => { 'read'=>1, }, - Headers => { 'read'=>1, }, - Filename => { 'read'=>1, }, - Creator => { 'read'=>1, 'auto'=>1, }, - Created => { 'read'=>1, 'auto'=>1, }, - }; + + +sub Create { + my $self = shift; + my %args = ( + TransactionId => '0', + Parent => '0', + MessageId => '', + Subject => '', + Filename => '', + ContentType => '', + ContentEncoding => '', + Content => '', + Headers => '', + + @_); + $self->SUPER::Create( + TransactionId => $args{'TransactionId'}, + Parent => $args{'Parent'}, + MessageId => $args{'MessageId'}, + Subject => $args{'Subject'}, + Filename => $args{'Filename'}, + ContentType => $args{'ContentType'}, + ContentEncoding => $args{'ContentEncoding'}, + Content => $args{'Content'}, + Headers => $args{'Headers'}, +); + } -# }}} -# {{{ sub TransactionObj -=head2 TransactionObj -Returns the transaction object asscoiated with this attachment. +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + =cut -sub TransactionObj { - require RT::Transaction; - my $self=shift; - unless (exists $self->{_TransactionObj}) { - $self->{_TransactionObj}=RT::Transaction->new($self->CurrentUser); - $self->{_TransactionObj}->Load($self->TransactionId); - } - return $self->{_TransactionObj}; -} -# }}} +=item TransactionId + +Returns the current value of TransactionId. +(In the database, TransactionId is stored as int(11).) -# {{{ sub Create -=head2 Create -Create a new attachment. Takes a paramhash: - - 'Attachment' Should be a single MIME body with optional subparts - 'Parent' is an optional Parent RT::Attachment object - 'TransactionId' is the mandatory id of the Transaction this attachment is associated with.; +=item SetTransactionId VALUE + + +Set TransactionId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TransactionId will be stored as a int(11).) + =cut -sub Create { - my $self = shift; - my ($id); - my %args = ( id => 0, - TransactionId => 0, - Parent => 0, - Attachment => undef, - @_ - ); - - - #For ease of reference - my $Attachment = $args{'Attachment'}; - - #if we didn't specify a ticket, we need to bail - if ( $args{'TransactionId'} == 0) { - $RT::Logger->crit("RT::Attachment->Create couldn't, as you didn't specify a transaction\n"); - return (0); - - } - - #If we possibly can, collapse it to a singlepart - $Attachment->make_singlepart; - - #Get the subject - my $Subject = $Attachment->head->get('subject',0); - defined($Subject) or $Subject = ''; - chomp($Subject); - - #Get the filename - my $Filename = $Attachment->head->recommended_filename; - - if ($Attachment->parts) { - $id = $self->SUPER::Create(TransactionId => $args{'TransactionId'}, - Parent => 0, - ContentType => $Attachment->mime_type, - Headers => $Attachment->head->as_string, - Subject => $Subject, - - ); - foreach my $part ($Attachment->parts) { - my $SubAttachment = new RT::Attachment($self->CurrentUser); - $SubAttachment->Create(TransactionId => $args{'TransactionId'}, - Parent => $id, - Attachment => $part, - ContentType => $Attachment->mime_type, - Headers => $Attachment->head->as_string(), - - ); - } - return ($id); - } - - - #If it's not multipart - else { - - my $ContentEncoding = 'none'; - - my $Body = $Attachment->bodyhandle->as_string; - - #get the max attachment length from RT - my $MaxSize = $RT::MaxAttachmentSize; - - #if the current attachment contains nulls and the - #database doesn't support embedded nulls - - if ( (! $RT::Handle->BinarySafeBLOBs) && - ( $Body =~ /\x00/ ) ) { - # set a flag telling us to mimencode the attachment - $ContentEncoding = 'base64'; - - #cut the max attchment size by 25% (for mime-encoding overhead. - $RT::Logger->debug("Max size is $MaxSize\n"); - $MaxSize = $MaxSize * 3/4; - } - - #if the attachment is larger than the maximum size - if (($MaxSize) and ($MaxSize < length($Body))) { - # if we're supposed to truncate large attachments - if ($RT::TruncateLongAttachments) { - # truncate the attachment to that length. - $Body = substr ($Body, 0, $MaxSize); - - } - - # elsif we're supposed to drop large attachments on the floor, - elsif ($RT::DropLongAttachments) { - # drop the attachment on the floor - $RT::Logger->info("$self: Dropped an attachment of size ". length($Body). - "\n". "It started: ". substr($Body, 0, 60) . "\n"); - return(undef); - } - } - # if we need to mimencode the attachment - if ($ContentEncoding eq 'base64') { - # base64 encode the attachment - $Body = MIME::Base64::encode_base64($Body); - - } - - my $id = $self->SUPER::Create(TransactionId => $args{'TransactionId'}, - ContentType => $Attachment->mime_type, - ContentEncoding => $ContentEncoding, - Parent => $args{'Parent'}, - Content => $Body, - Headers => $Attachment->head->as_string, - Subject => $Subject, - Filename => $Filename, - ); - return ($id); - } -} -# }}} +=item Parent + +Returns the current value of Parent. +(In the database, Parent is stored as int(11).) + -# {{{ sub Content +=item SetParent VALUE -=head2 Content -Returns the attachment's content. if it's base64 encoded, decode it -before returning it. +Set Parent to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Parent will be stored as a int(11).) + =cut -sub Content { - my $self = shift; - if ( $self->ContentEncoding eq 'none' || ! $self->ContentEncoding ) { - return $self->_Value('Content'); - } elsif ( $self->ContentEncoding eq 'base64' ) { - return MIME::Base64::decode_base64($self->_Value('Content')); - } else { - return( "Unknown ContentEncoding ". $self->ContentEncoding); - } -} +=item MessageId + +Returns the current value of MessageId. +(In the database, MessageId is stored as varchar(160).) -# }}} -# {{{ sub Children -=head2 Children +=item SetMessageId VALUE + + +Set MessageId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, MessageId will be stored as a varchar(160).) - Returns an RT::Attachments object which is preloaded with all Attachments objects with this Attachment\'s Id as their 'Parent' =cut -sub Children { - my $self = shift; - - my $kids = new RT::Attachments($self->CurrentUser); - $kids->ChildrenOf($self->Id); - return($kids); -} -# }}} +=item Subject -# {{{ UTILITIES +Returns the current value of Subject. +(In the database, Subject is stored as varchar(255).) -# {{{ sub Quote +=item SetSubject VALUE -sub Quote { - my $self=shift; - my %args=(Reply=>undef, # Prefilled reply (i.e. from the KB/FAQ system) - @_); - my ($quoted_content, $body, $headers); - my $max=0; +Set Subject to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Subject will be stored as a varchar(255).) - # TODO: Handle Multipart/Mixed (eventually fix the link in the - # ShowHistory web template?) - if ($self->ContentType =~ m{^(text/plain|message)}i) { - $body=$self->Content; - # Do we need any preformatting (wrapping, that is) of the message? +=cut - # Remove quoted signature. - $body =~ s/\n-- \n(.*)$//s; - # What's the longest line like? - foreach (split (/\n/,$body)) { - $max=length if ( length > $max); - } +=item Filename - if ($max>76) { - require Text::Wrapper; - my $wrapper=new Text::Wrapper - ( - columns => 70, - body_start => ($max > 70*3 ? ' ' : ''), - par_start => '' - ); - $body=$wrapper->wrap($body); - } +Returns the current value of Filename. +(In the database, Filename is stored as varchar(255).) - $body =~ s/^/> /gm; - $body = '[' . $self->TransactionObj->CreatorObj->Name() . ' - ' . $self->TransactionObj->CreatedAsString() - . "]:\n\n" - . $body . "\n\n"; - } else { - $body = "[Non-text message not quoted]\n\n"; - } - - $max=60 if $max<60; - $max=70 if $max>78; - $max+=2; +=item SetFilename VALUE + + +Set Filename to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Filename will be stored as a varchar(255).) + + +=cut + + +=item ContentType + +Returns the current value of ContentType. +(In the database, ContentType is stored as varchar(80).) + - return (\$body, $max); -} -# }}} -# {{{ sub NiceHeaders - pulls out only the most relevant headers +=item SetContentType VALUE -=head2 NiceHeaders -Returns the To, From, Cc, Date and Subject headers. +Set ContentType to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ContentType will be stored as a varchar(80).) -It is a known issue that this breaks if any of these headers are not -properly unfolded. =cut -sub NiceHeaders { - my $self=shift; - my $hdrs=""; - for (split(/\n/,$self->Headers)) { - $hdrs.="$_\n" if /^(To|From|RT-Send-Cc|Cc|Date|Subject): /i - } - return $hdrs; -} -# }}} -# {{{ sub Headers +=item ContentEncoding + +Returns the current value of ContentEncoding. +(In the database, ContentEncoding is stored as varchar(80).) + + -=head2 Headers +=item SetContentEncoding VALUE + + +Set ContentEncoding to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ContentEncoding will be stored as a varchar(80).) -Returns this object's headers as a string. This method specifically -removes the RT-Send-Bcc: header, so as to never reveal to whom RT sent a Bcc. -We need to record the RT-Send-Cc and RT-Send-Bcc values so that we can actually send -out mail. (The mailing rules are seperated from the ticket update code by -an abstraction barrier that makes it impossible to pass this data directly =cut -sub Headers { - my $self = shift; - my $hdrs=""; - for (split(/\n/,$self->SUPER::Headers)) { - $hdrs.="$_\n" unless /^(RT-Send-Bcc): /i - } - return $hdrs; -} + +=item Content + +Returns the current value of Content. +(In the database, Content is stored as longtext.) -# }}} -# {{{ sub GetHeader +=item SetContent VALUE -=head2 GetHeader ( 'Tag') -Returns the value of the header Tag as a string. This bypasses the weeding out -done in Headers() above. +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 longtext.) + =cut -sub GetHeader { - my $self = shift; - my $tag = shift; - foreach my $line (split(/\n/,$self->SUPER::Headers)) { - $RT::Logger->debug( "Does $line match $tag\n"); - if ($line =~ /^$tag:\s+(.*)$/i) { #if we find the header, return its value - return ($1); - } - } - - # we found no header. return an empty string - return undef; -} -# }}} -# {{{ sub _Value +=item Headers -=head2 _Value +Returns the current value of Headers. +(In the database, Headers is stored as longtext.) + + + +=item SetHeaders VALUE + + +Set Headers to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Headers will be stored as a longtext.) -Takes the name of a table column. -Returns its value as a string, if the user passes an ACL check =cut -sub _Value { - my $self = shift; - my $field = shift; - - - #if the field is public, return it. - if ($self->_Accessible($field, 'public')) { - #$RT::Logger->debug("Skipping ACL check for $field\n"); - return($self->__Value($field)); - - } - - #If it's a comment, we need to be extra special careful - elsif ( (($self->TransactionObj->CurrentUserHasRight('ShowTicketComments')) and - ($self->TransactionObj->Type eq 'Comment') ) or - ($self->TransactionObj->CurrentUserHasRight('ShowTicket'))) { - - return($self->__Value($field)); - } - #if they ain't got rights to see, don't let em - else { - return(undef); - } - - -} +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) + + +=cut + + +=item Created -# }}} +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + TransactionId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Parent => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + MessageId => + {read => 1, write => 1, type => 'varchar(160)', default => ''}, + Subject => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + Filename => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + ContentType => + {read => 1, write => 1, type => 'varchar(80)', default => ''}, + ContentEncoding => + {read => 1, write => 1, type => 'varchar(80)', default => ''}, + Content => + {read => 1, write => 1, type => 'longtext', default => ''}, + Headers => + {read => 1, write => 1, type => 'longtext', default => ''}, + Creator => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Created => + {read => 1, auto => 1, type => 'datetime', default => ''}, + + } +}; + + + eval "require RT::Attachment_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachment_Overlay.pm}) { + die $@; + }; + + eval "require RT::Attachment_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachment_Vendor.pm}) { + die $@; + }; + + eval "require RT::Attachment_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachment_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::Attachment_Overlay, RT::Attachment_Vendor, RT::Attachment_Local + +=cut -# }}} 1; diff --git a/rt/lib/RT/Attachments.pm b/rt/lib/RT/Attachments.pm index 73cd350a4..177cdd094 100755 --- a/rt/lib/RT/Attachments.pm +++ b/rt/lib/RT/Attachments.pm @@ -1,99 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attachments.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Attachments - a collection of RT::Attachment objects +=head1 NAME + RT::Attachments -- Class Description + =head1 SYNOPSIS - use RT::Attachments; + use RT::Attachments =head1 DESCRIPTION -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in Ticket, Queue and other similar objects. - =head1 METHODS +=cut -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Attachments); +package RT::Attachments; -=end testing +use RT::SearchBuilder; +use RT::Attachment; -=cut +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -package RT::Attachments; -use RT::EasySearch; +sub _Init { + my $self = shift; + $self->{'table'} = 'Attachments'; + $self->{'primary_key'} = 'id'; -@ISA= qw(RT::EasySearch); -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'table'} = "Attachments"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_)); + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub ContentType +=item NewItem -=head2 ContentType (VALUE => 'text/plain', ENTRYAGGREGATOR => 'OR', OPERATOR => '=' ) - -Limit result set to attachments of ContentType 'TYPE'... +Returns an empty new RT::Attachment item =cut +sub NewItem { + my $self = shift; + return(RT::Attachment->new($self->CurrentUser)); +} -sub ContentType { - my $self = shift; - my %args = ( VALUE => 'text/plain', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - @_); + eval "require RT::Attachments_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachments_Overlay.pm}) { + die $@; + }; - $self->Limit ( FIELD => 'ContentType', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - ENTRYAGGREGATOR => $args{'ENTRYAGGREGATOR'}); -} -# }}} + eval "require RT::Attachments_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachments_Vendor.pm}) { + die $@; + }; -# {{{ sub ChildrenOf + eval "require RT::Attachments_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Attachments_Local.pm}) { + die $@; + }; -=head2 ChildrenOf ID -Limit result set to children of Attachment ID -=cut +=head1 SEE ALSO -sub ChildrenOf { - my $self = shift; - my $attachment = shift; - $self->Limit ( FIELD => 'Parent', - VALUE => $attachment); -} -# }}} +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. -# {{{ sub NewItem -sub NewItem { - my $self = shift; +These overlay files can contain new subs or subs to replace existing subs in this module. - use RT::Attachment; - my $item = new RT::Attachment($self->CurrentUser); - return($item); -} -# }}} - 1; +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::Attachments_Overlay, RT::Attachments_Vendor, RT::Attachments_Local + +=cut +1; diff --git a/rt/lib/RT/Condition/AnyTransaction.pm b/rt/lib/RT/Condition/AnyTransaction.pm index 83e5de6ce..4519fcf5a 100644 --- a/rt/lib/RT/Condition/AnyTransaction.pm +++ b/rt/lib/RT/Condition/AnyTransaction.pm @@ -1,10 +1,33 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Condition/AnyTransaction.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 1996-2001 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU General Public 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. +# +# 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; require RT::Condition::Generic; +use strict; +use vars qw/@ISA/; @ISA = qw(RT::Condition::Generic); @@ -19,5 +42,10 @@ sub IsApplicable { return(1); } +eval "require RT::Condition::AnyTransaction_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/AnyTransaction_Vendor.pm}); +eval "require RT::Condition::AnyTransaction_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/AnyTransaction_Local.pm}); + 1; diff --git a/rt/lib/RT/Condition/Generic.pm b/rt/lib/RT/Condition/Generic.pm index 393f4b786..bd269315e 100755 --- a/rt/lib/RT/Condition/Generic.pm +++ b/rt/lib/RT/Condition/Generic.pm @@ -1,7 +1,26 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Condition/Generic.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - +# 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. +# +# 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 - ; @@ -29,7 +48,6 @@ =begin testing -ok (require RT::TestHarness); ok (require RT::Condition::Generic); =end testing @@ -39,6 +57,11 @@ ok (require RT::Condition::Generic); package RT::Condition::Generic; +use RT::Base; +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Base); + # {{{ sub new sub new { my $proto = shift; @@ -61,7 +84,6 @@ sub _Init { ApplicableTransTypes => undef, @_ ); - $self->{'Argument'} = $args{'Argument'}; $self->{'ScripObj'} = $args{'ScripObj'}; $self->{'TicketObj'} = $args{'TicketObj'}; @@ -100,6 +122,19 @@ sub 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 @@ -137,7 +172,7 @@ sub ApplicableTransTypes { # {{{ sub Describe sub Describe { my $self = shift; - return ("No description for " . ref $self); + return ($self->loc("No description for [_1]", ref $self)); } # }}} @@ -167,4 +202,10 @@ sub DESTROY { } # }}} + +eval "require RT::Condition::Generic_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/Generic_Vendor.pm}); +eval "require RT::Condition::Generic_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/Generic_Local.pm}); + 1; diff --git a/rt/lib/RT/Condition/NewDependency.pm b/rt/lib/RT/Condition/NewDependency.pm deleted file mode 100644 index e69de29bb..000000000 diff --git a/rt/lib/RT/Condition/StatusChange.pm b/rt/lib/RT/Condition/StatusChange.pm index 56419b2c7..8afabcda0 100644 --- a/rt/lib/RT/Condition/StatusChange.pm +++ b/rt/lib/RT/Condition/StatusChange.pm @@ -1,10 +1,34 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Condition/StatusChange.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ -# Copyright 1996-2001 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU General Public 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. +# +# 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; require RT::Condition::Generic; +use strict; +use vars qw/@ISA/; @ISA = qw(RT::Condition::Generic); @@ -26,5 +50,10 @@ sub IsApplicable { } } +eval "require RT::Condition::StatusChange_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/StatusChange_Vendor.pm}); +eval "require RT::Condition::StatusChange_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/StatusChange_Local.pm}); + 1; diff --git a/rt/lib/RT/CurrentUser.pm b/rt/lib/RT/CurrentUser.pm index 6997ddbac..4ca2f9891 100755 --- a/rt/lib/RT/CurrentUser.pm +++ b/rt/lib/RT/CurrentUser.pm @@ -1,7 +1,26 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/CurrentUser.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-1999 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - +# 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. +# +# 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 @@ -19,7 +38,6 @@ =begin testing -ok (require RT::TestHarness); ok (require RT::CurrentUser); =end testing @@ -28,9 +46,13 @@ ok (require RT::CurrentUser); package RT::CurrentUser; + use RT::Record; -@ISA= qw(RT::Record); +use RT::I18N; +use strict; +use vars qw/@ISA/; +@ISA= qw(RT::Record); # {{{ sub _Init @@ -48,7 +70,7 @@ sub _Init { $self->Load($Name); } - $self->_MyCurrentUser($self); + $self->CurrentUser($self); } # }}} @@ -56,7 +78,8 @@ sub _Init { # {{{ sub Create sub Create { - return (0, 'Permission Denied'); + my $self = shift; + return (0, $self->loc('Permission Denied')); } # }}} @@ -64,7 +87,8 @@ sub Create { # {{{ sub Delete sub Delete { - return (0, 'Permission Denied'); + my $self = shift; + return (0, $self->loc('Permission Denied')); } # }}} @@ -84,7 +108,7 @@ sub UserObj { use RT::User; $self->{'UserObj'} = RT::User->new($self); unless ($self->{'UserObj'}->Load($self->Id)) { - $RT::Logger->err("Couldn't load ".$self->Id. "from the users database.\n"); + $RT::Logger->err($self->loc("Couldn't load [_1] from the users database.\n", $self->Id)); } } @@ -92,6 +116,42 @@ sub UserObj { } # }}} +# {{{ 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; @@ -120,6 +180,8 @@ Takes the email address of the user to load. sub LoadByEmail { my $self = shift; my $identifier = shift; + + $identifier = RT::User::CanonicalizeEmailAddress(undef, $identifier); $self->LoadByCol("EmailAddress",$identifier); @@ -225,46 +287,88 @@ sub Privileged { # }}} -# {{{ Convenient ACL methods -=head2 HasQueueRight +# {{{ sub HasRight -calls $self->UserObj->HasQueueRight with the arguments passed in +=head2 HasRight + +calls $self->UserObj->HasRight with the arguments passed in =cut -sub HasQueueRight { - my $self = shift; - return ($self->UserObj->HasQueueRight(@_)); +sub HasRight { + my $self = shift; + return ($self->UserObj->HasRight(@_)); } -=head2 HasSystemRight +# }}} -calls $self->UserObj->HasSystemRight with the arguments passed in +# {{{ Localization -=cut +=head2 LanguageHandle +Returns this current user's langauge handle. Should take a language +specification. but currently doesn't -sub HasSystemRight { - my $self = shift; - return ($self->UserObj->HasSystemRight(@_)); -} -# }}} +=begin testing -# {{{ sub HasRight +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"); -=head2 HasSystemRight +=end testing -calls $self->UserObj->HasRight with the arguments passed in +=cut -=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 HasRight { - my $self = shift; - return ($self->UserObj->HasRight(@_)); +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($result); +} # }}} +eval "require RT::CurrentUser_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/CurrentUser_Vendor.pm}); +eval "require RT::CurrentUser_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/CurrentUser_Local.pm}); + 1; diff --git a/rt/lib/RT/Date.pm b/rt/lib/RT/Date.pm index d56997174..355370ada 100644 --- a/rt/lib/RT/Date.pm +++ b/rt/lib/RT/Date.pm @@ -1,7 +1,26 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Date.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - +# 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. +# +# 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::Date - a simple Object Oriented date. @@ -28,7 +47,15 @@ ok (require RT::Date); package RT::Date; + use Time::Local; + +use RT::Base; + +use strict; +use vars qw/@ISA/; +@ISA = qw/RT::Base/; + use vars qw($MINUTE $HOUR $DAY $WEEK $MONTH $YEAR); $MINUTE = 60; @@ -45,6 +72,7 @@ sub new { my $class = ref($proto) || $proto; my $self = {}; bless ($self, $class); + $self->CurrentUser(@_); $self->Unix(0); return $self; } @@ -61,91 +89,114 @@ if $args->{'Format'} is 'unix', takes the number of seconds since the epoch If $args->{'Format'} is ISO, tries to parse an ISO date. -If $args->{'Format'} is 'unknown', require Date::Parse and make it figure things -out. This is a heavyweight operation that should never be called from within -RT's core. But it's really useful for something like the textbox date entry -where we let the user do whatever they want. +If $args->{'Format'} is 'unknown', require Time::ParseDate and make it figure +things out. This is a heavyweight operation that should never be called from +within RT's core. But it's really useful for something like the textbox date +entry where we let the user do whatever they want. If $args->{'Value'} is 0, assumes you mean never. +=begin testing + +use_ok(RT::Date); +my $date = RT::Date->new($RT::SystemUser); +$date->Set(Format => 'unix', Value => '0'); +ok ($date->ISO eq '1970-01-01 00:00:00', "Set a date to midnight 1/1/1970 GMT"); + +=end testing =cut sub Set { my $self = shift; my %args = ( Format => 'unix', - Value => time, - @_); - if (($args{'Value'} =~ /^\d*$/) and ($args{'Value'} == 0)) { - $self->Unix(-1); - return($self->Unix()); + Value => time, + @_ ); + if ( !$args{'Value'} + || ( ( $args{'Value'} =~ /^\d*$/ ) and ( $args{'Value'} == 0 ) ) ) { + $self->Unix(-1); + return ( $self->Unix() ); } - if ($args{'Format'} =~ /^unix$/i) { - $self->Unix($args{'Value'}); + if ( $args{'Format'} =~ /^unix$/i ) { + $self->Unix( $args{'Value'} ); } - - elsif ($args{'Format'} =~ /^(sql|datemanip|iso)$/i) { - - if (($args{'Value'} =~ /^(\d{4}?)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/) || - ($args{'Value'} =~ /^(\d{4}?)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)$/) || - ($args{'Value'} =~ /^(\d{4}?)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)\+00$/) || - ($args{'Value'} =~ /^(\d{4}?)(\d\d)(\d\d)(\d\d):(\d\d):(\d\d)$/)) { - - my $year = $1; - my $mon = $2; - my $mday = $3; - my $hours = $4; - my $min = $5; - my $sec = $6; - - #timegm expects month as 0->11 - $mon--; - - #now that we've parsed it, deal with the case where everything - #was 0 - if ($mon == -1) { - $self->Unix(-1); - } else { - - #Dateamnip strings aren't in GMT. - if ($args{'Format'} =~ /^datemanip$/i) { - $self->Unix(timelocal($sec,$min,$hours,$mday,$mon,$year)); - } - #ISO and SQL dates are in GMT - else { - $self->Unix(timegm($sec,$min,$hours,$mday,$mon,$year)); - } - - $self->Unix(-1) unless $self->Unix; - } - } - else { - use Carp; - Carp::cluck; - $RT::Logger->debug( "Couldn't parse date $args{'Value'} as a $args{'Format'}"); - - } + + elsif ( $args{'Format'} =~ /^(sql|datemanip|iso)$/i ) { + $args{'Value'} =~ s!/!-!g; + + if (( $args{'Value'} =~ /^(\d{4}?)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/ ) + || ( $args{'Value'} =~ + /^(\d{4}?)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)$/ ) + || ( $args{'Value'} =~ + /^(\d{4}?)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)\+00$/ ) + || ($args{'Value'} =~ /^(\d{4}?)(\d\d)(\d\d)(\d\d):(\d\d):(\d\d)$/ ) + ) { + + my $year = $1; + my $mon = $2; + my $mday = $3; + my $hours = $4; + my $min = $5; + my $sec = $6; + + #timegm expects month as 0->11 + $mon--; + + #now that we've parsed it, deal with the case where everything + #was 0 + if ( $mon == -1 ) { + $self->Unix(-1); + } + else { + + #Dateamnip strings aren't in GMT. + if ( $args{'Format'} =~ /^datemanip$/i ) { + $self->Unix( + timelocal( $sec, $min, $hours, $mday, $mon, $year ) ); + } + + #ISO and SQL dates are in GMT + else { + $self->Unix( + timegm( $sec, $min, $hours, $mday, $mon, $year ) ); + } + + $self->Unix(-1) unless $self->Unix; + } + } + else { + use Carp; + Carp::cluck; + $RT::Logger->debug( + "Couldn't parse date $args{'Value'} as a $args{'Format'}"); + + } + } + elsif ( $args{'Format'} =~ /^unknown$/i ) { + require Time::ParseDate; + + #Convert it to an ISO format string + + my $date = Time::ParseDate::parsedate($args{'Value'}, + UK => $RT::DateDayBeforeMonth, + PREFER_PAST => $RT::AmbiguousDayInPast, + PREFER_FUTURE => !($RT::AmbiguousDayInPast)); + + #This date has now been set to a date in the _local_ timezone. + #since ISO dates are known to be in GMT (for RT's purposes); + + $RT::Logger->debug( "RT::Date used date::parse to make " + . $args{'Value'} + . " $date\n" ); + + return ( $self->Set( Format => 'unix', Value => "$date" ) ); } - elsif ($args{'Format'} =~ /^unknown$/i) { - require Date::Parse; - #Convert it to an ISO format string - - my $date = Date::Parse::str2time($args{'Value'}); - - #This date has now been set to a date in the _local_ timezone. - #since ISO dates are known to be in GMT (for RT's purposes); - - $RT::Logger->debug("RT::Date used date::parse to make ".$args{'Value'} . " $date\n"); - - - return ($self->Set( Format => 'unix', Value => "$date")); - } else { - die "Unknown Date format: ".$args{'Format'}."\n"; + die "Unknown Date format: " . $args{'Format'} . "\n"; } - - return($self->Unix()); + + return ( $self->Unix() ); } # }}} @@ -232,47 +283,59 @@ sub DiffAsString { # {{{ sub DurationAsString + =head2 DurationAsString Takes a number of seconds. returns a string describing that duration =cut -sub DurationAsString{ +sub DurationAsString { - my $self=shift; + my $self = shift; my $duration = shift; - - my ($negative, $s); - - $negative = 'ago' if ($duration < 0); + + my ( $negative, $s ); + + $negative = 1 if ( $duration < 0 ); $duration = abs($duration); - if($duration < $MINUTE) { - $s=$duration; - $string="sec"; - } elsif($duration < (2 * $HOUR)) { - $s = int($duration/$MINUTE); - $string="min"; - } elsif($duration < (2 * $DAY)) { - $s = int($duration/$HOUR); - $string="hours"; - } elsif($duration < (2 * $WEEK)) { - $s = int($duration/$DAY); - $string="days"; - } elsif($duration < (2 * $MONTH)) { - $s = int($duration/$WEEK); - $string="weeks"; - } elsif($duration < $YEAR) { - $s = int($duration/$MONTH); - $string="months"; - } else { - $s = int($duration/$YEAR); - $string="years"; + my $time_unit; + if ( $duration < $MINUTE ) { + $s = $duration; + $time_unit = $self->loc("sec"); + } + elsif ( $duration < ( 2 * $HOUR ) ) { + $s = int( $duration / $MINUTE ); + $time_unit = $self->loc("min"); + } + elsif ( $duration < ( 2 * $DAY ) ) { + $s = int( $duration / $HOUR ); + $time_unit = $self->loc("hours"); + } + elsif ( $duration < ( 2 * $WEEK ) ) { + $s = int( $duration / $DAY ); + $time_unit = $self->loc("days"); + } + elsif ( $duration < ( 2 * $MONTH ) ) { + $s = int( $duration / $WEEK ); + $time_unit = $self->loc("weeks"); + } + elsif ( $duration < $YEAR ) { + $s = int( $duration / $MONTH ); + $time_unit = $self->loc("months"); + } + else { + $s = int( $duration / $YEAR ); + $time_unit = $self->loc("years"); + } + if (0) { # For now, never display the "AGO" # $negative) { + return $self->loc( "[_1] [_2] ago", $s, $time_unit ); + } + else { + return $self->loc( "[_1] [_2]", $s, $time_unit ); } - - return ("$s $string $negative"); } # }}} @@ -303,12 +366,64 @@ Returns the object\'s time as a string with the current timezone. sub AsString { my $self = shift; - return ("Not set") if ($self->Unix <= 0); + return ($self->loc("Not set")) if ($self->Unix <= 0); + + my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($self->Unix); - return (scalar(localtime($self->Unix))); + return $self->loc("[_1] [_2] [_3] [_4]:[_5]:[_6] [_7]", $self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)); } # }}} +# {{{ GetWeekday +=head2 GetWeekday DAY + +Takes an integer day of week and returns a localized string for that day of week + +=cut + +sub GetWeekday { + my $self = shift; + my $dow = shift; + + return $self->loc('Mon.') if ($dow == 1); + return $self->loc('Tue.') if ($dow == 2); + return $self->loc('Wed.') if ($dow == 3); + return $self->loc('Thu.') if ($dow == 4); + return $self->loc('Fri.') if ($dow == 5); + return $self->loc('Sat.') if ($dow == 6); + return $self->loc('Sun.') if ($dow == 0); +} + +# }}} + +# {{{ GetMonth +=head2 GetMonth DAY + +Takes an integer month and returns a localized string for that month + +=cut + +sub GetMonth { + my $self = shift; + my $mon = shift; + + # We do this rather than an array so that we don't call localize 12x what we need to + return $self->loc('Jan.') if ($mon == 0); + return $self->loc('Feb.') if ($mon == 1); + return $self->loc('Mar.') if ($mon == 2); + return $self->loc('Apr.') if ($mon == 3); + return $self->loc('May.') if ($mon == 4); + return $self->loc('Jun.') if ($mon == 5); + return $self->loc('Jul.') if ($mon == 6); + return $self->loc('Aug.') if ($mon == 7); + return $self->loc('Sep.') if ($mon == 8); + return $self->loc('Oct.') if ($mon == 9); + return $self->loc('Nov.') if ($mon == 10); + return $self->loc('Dec.') if ($mon == 11); +} + +# }}} + # {{{ sub AddSeconds =head2 sub AddSeconds @@ -425,12 +540,18 @@ pull from a 'Timezone' attribute of the CurrentUser sub LocalTimezone { my $self = shift; - + + return $self->CurrentUser->Timezone + if $self->CurrentUser and $self->CurrentUser->can('Timezone'); + return ($RT::Timezone); } # }}} - +eval "require RT::Date_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Date_Vendor.pm}); +eval "require RT::Date_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Date_Local.pm}); 1; diff --git a/rt/lib/RT/EasySearch.pm b/rt/lib/RT/EasySearch.pm deleted file mode 100755 index bcbfa01b2..000000000 --- a/rt/lib/RT/EasySearch.pm +++ /dev/null @@ -1,115 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/EasySearch.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - -=head1 NAME - - RT::EasySearch - a baseclass for RT collection objects - -=head1 SYNOPSIS - -=head1 DESCRIPTION - - -=head1 METHODS - - -=begin testing - -ok (require RT::EasySearch); - -=end testing - - -=cut - -package RT::EasySearch; -use DBIx::SearchBuilder; -@ISA= qw(DBIx::SearchBuilder); - -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'user'} = shift; - unless(defined($self->CurrentUser)) { - use Carp; - Carp::confess("$self was created without a CurrentUser"); - $RT::Logger->err("$self was created without a CurrentUser\n"); - return(0); - } - $self->SUPER::_Init( 'Handle' => $RT::Handle); -} -# }}} - -# {{{ sub LimitToEnabled - -=head2 LimitToEnabled - -Only find items that haven\'t been disabled - -=cut - -sub LimitToEnabled { - my $self = shift; - - $self->Limit( FIELD => 'Disabled', - VALUE => '0', - OPERATOR => '=' ); -} -# }}} - -# {{{ sub LimitToDisabled - -=head2 LimitToDeleted - -Only find items that have been deleted. - -=cut - -sub LimitToDeleted { - my $self = shift; - - $self->{'find_disabled_rows'} = 1; - $self->Limit( FIELD => 'Disabled', - OPERATOR => '=', - VALUE => '1' - ); -} -# }}} - - -# {{{ sub Limit - -=head2 Limit PARAMHASH - -This Limit sub calls SUPER::Limit, but defaults "CASESENSITIVE" to 1, thus -making sure that by default lots of things don't do extra work trying to -match lower(colname) agaist lc($val); - -=cut - -sub Limit { - my $self = shift; - my %args = ( CASESENSITIVE => 1, - @_ ); - - return $self->SUPER::Limit(%args); -} - -# {{{ sub CurrentUser - -=head2 CurrentUser - - Returns the current user as an RT::User object. - -=cut - -sub CurrentUser { - my $self = shift; - return ($self->{'user'}); -} -# }}} - - -1; - - diff --git a/rt/lib/RT/Group.pm b/rt/lib/RT/Group.pm index 005601f5e..4dcef3f07 100755 --- a/rt/lib/RT/Group.pm +++ b/rt/lib/RT/Group.pm @@ -1,364 +1,258 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Group.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 2000 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! # +use strict; + + =head1 NAME - RT::Group - RT\'s group object +RT::Group -=head1 SYNOPSIS - use RT::Group; -my $group = new RT::Group($CurrentUser); +=head1 SYNOPSIS =head1 DESCRIPTION -An RT group object. +=head1 METHODS -=head1 AUTHOR +=cut -Jesse Vincent, jesse@fsck.com +package RT::Group; +use RT::Record; -=head1 SEE ALSO -RT +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -=head1 METHODS +sub _Init { + my $self = shift; + $self->Table('Groups'); + $self->SUPER::_Init(@_); +} -=begin testing -ok (require RT::TestHarness); -ok (require RT::Group); -=end testing -=cut +=item Create PARAMHASH -package RT::Group; -use RT::Record; -use RT::GroupMember; -use RT::ACE; +Create takes a hash of values and creates a row in the database: -use vars qw|@ISA|; -@ISA= qw(RT::Record); + varchar(200) 'Name'. + varchar(255) 'Description'. + varchar(64) 'Domain'. + varchar(64) 'Type'. + varchar(64) 'Instance'. + +=cut -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Groups"; - return ($self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub _Accessible -sub _Accessible { + +sub Create { my $self = shift; - my %Cols = ( - Name => 'read/write', - Description => 'read/write', - Pseudo => 'read' - ); - return $self->SUPER::_Accessible(@_, %Cols); + my %args = ( + Name => '', + Description => '', + Domain => '', + Type => '', + Instance => '', + + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Description => $args{'Description'}, + Domain => $args{'Domain'}, + Type => $args{'Type'}, + Instance => $args{'Instance'}, +); + } -# }}} -# {{{ sub Load -=head2 Load -Load a group object from the database. Takes a single argument. -If the argument is numerical, load by the column 'id'. Otherwise, load by -the "Name" column which is the group's textual name +=item id -=cut +Returns the current value of id. +(In the database, id is stored as int(11).) -sub Load { - my $self = shift; - my $identifier = shift || return undef; - - #if it's an int, load by id. otherwise, load by name. - if ($identifier !~ /\D/) { - $self->SUPER::LoadById($identifier); - } - else { - $self->LoadByCol("Name",$identifier); - } -} -# }}} +=cut -# {{{ sub Create -=head2 Create +=item Name -Takes a paramhash with three named arguments: Name, Description and Pseudo. -Pseudo is used internally by RT for certain special ACL decisions. +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) -=cut -sub Create { - my $self = shift; - my %args = ( Name => undef, - Description => undef, - Pseudo => 0, - @_); - - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - $RT::Logger->warning($self->CurrentUser->Name ." Tried to create a group without permission."); - return(0, 'Permission Denied'); - } - - my $retval = $self->SUPER::Create(Name => $args{'Name'}, - Description => $args{'Description'}, - Pseudo => $args{'Pseudo'}); - - return ($retval); -} -# }}} +=item SetName VALUE -# {{{ sub Delete -=head2 Delete +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) -Delete this object =cut -sub Delete { - my $self = shift; - - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - return (0, 'Permission Denied'); - } - - return($self->SUPER::Delete(@_)); -} -# }}} +=item Description -# {{{ MembersObj +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) -=head2 MembersObj -Returns an RT::GroupMembers object of this group's members. + +=item SetDescription VALUE + + +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) + =cut -sub MembersObj { - my $self = shift; - unless (defined $self->{'members_obj'}) { - use RT::GroupMembers; - $self->{'members_obj'} = new RT::GroupMembers($self->CurrentUser); - - #If we don't have rights, don't include any results - $self->{'members_obj'}->LimitToGroup($self->id); - - } - return ($self->{'members_obj'}); - -} -# }}} +=item Domain + +Returns the current value of Domain. +(In the database, Domain is stored as varchar(64).) + -# {{{ AddMember -=head2 AddMember +=item SetDomain VALUE + + +Set Domain to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Domain will be stored as a varchar(64).) -AddMember adds a user to this group. It takes a user id. -Returns a two value array. the first value is true on successful -addition or 0 on failure. The second value is a textual status msg. =cut -sub AddMember { - my $self = shift; - my $new_member = shift; - - my $new_member_obj = new RT::User($self->CurrentUser); - $new_member_obj->Load($new_member); - - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - #User has no permission to be doing this - return(0, "Permission Denied"); - } - - unless ($new_member_obj->Id) { - $RT::Logger->debug("Couldn't find user $new_member"); - return(0, "Couldn't find user"); - } - - if ($self->HasMember($new_member_obj->Id)) { - #User is already a member of this group. no need to add it - return(0, "Group already has member"); - } - - my $member_object = new RT::GroupMember($self->CurrentUser); - $member_object->Create( UserId => $new_member_obj->Id, - GroupId => $self->id ); - return(1, "Member added"); -} -# }}} +=item Type + +Returns the current value of Type. +(In the database, Type is stored as varchar(64).) + + + +=item SetType VALUE -# {{{ HasMember -=head2 HasMember +Set Type to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Type will be stored as a varchar(64).) -Takes a user Id and returns a GroupMember Id if that user is a member of -this group. -Returns undef if the user isn't a member of the group or if the current -user doesn't have permission to find out. Arguably, it should differentiate -between ACL failure and non membership. =cut -sub HasMember { - my $self = shift; - my $user_id = shift; - #Try to cons up a member object using "LoadByCols" +=item Instance - my $member_obj = new RT::GroupMember($self->CurrentUser); - $member_obj->LoadByCols( UserId => $user_id, GroupId => $self->id); +Returns the current value of Instance. +(In the database, Instance is stored as varchar(64).) - #If we have a member object - if (defined $member_obj->id) { - return ($member_obj->id); - } - #If Load returns no objects, we have an undef id. - else { - return(undef); - } -} -# }}} +=item SetInstance VALUE -# {{{ DeleteMember -=head2 DeleteMember +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 varchar(64).) -Takes the user id of a member. -If the current user has apropriate rights, -removes that GroupMember from this group. -Returns a two value array. the first value is true on successful -addition or 0 on failure. The second value is a textual status msg. =cut -sub DeleteMember { - my $self = shift; - my $member = shift; - - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - #User has no permission to be doing this - return(0,"Permission Denied"); - } - - my $member_user_obj = new RT::User($self->CurrentUser); - $member_user_obj->Load($member); - - unless ($member_user_obj->Id) { - $RT::Logger->debug("Couldn't find user $member"); - return(0, "User not found"); - } - - my $member_obj = new RT::GroupMember($self->CurrentUser); - unless ($member_obj->LoadByCols ( UserId => $member_user_obj->Id, - GroupId => $self->Id )) { - return(0, "Couldn\'t load member"); #couldn\'t load member object - } - - #If we couldn't load it, return undef. - unless ($member_obj->Id()) { - return (0, "Group has no such member"); - } - - #Now that we've checked ACLs and sanity, delete the groupmember - my $val = $member_obj->Delete(); - if ($val) { - return ($val, "Member deleted"); - } - else { - return (0, "Member not deleted"); - } -} -# }}} -# {{{ ACL Related routines +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + Domain => + {read => 1, write => 1, type => 'varchar(64)', default => ''}, + Type => + {read => 1, write => 1, type => 'varchar(64)', default => ''}, + Instance => + {read => 1, write => 1, type => 'varchar(64)', default => ''}, -# {{{ GrantQueueRight + } +}; -=head2 GrantQueueRight -Grant a queue right to this group. Takes a paramhash of which the elements -RightAppliesTo and RightName are important. + eval "require RT::Group_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Group_Overlay.pm}) { + die $@; + }; -=cut + eval "require RT::Group_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Group_Vendor.pm}) { + die $@; + }; -sub GrantQueueRight { - - my $self = shift; - my %args = ( RightScope => 'Queue', - RightName => undef, - RightAppliesTo => undef, - PrincipalType => 'Group', - PrincipalId => $self->Id, - @_); - - #ACLs get checked in ACE.pm - - my $ace = new RT::ACE($self->CurrentUser); - - return ($ace->Create(%args)); -} + eval "require RT::Group_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Group_Local.pm}) { + die $@; + }; -# }}} -# {{{ GrantSystemRight -=head2 GrantSystemRight -Grant a system right to this group. -The only element that's important to set is RightName. +=head1 SEE ALSO -=cut -sub GrantSystemRight { - - my $self = shift; - my %args = ( RightScope => 'System', - RightName => undef, - RightAppliesTo => 0, - PrincipalType => 'Group', - PrincipalId => $self->Id, - @_); - - # ACLS get checked in ACE.pm - - my $ace = new RT::ACE($self->CurrentUser); - return ($ace->Create(%args)); -} +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); -# {{{ sub _Set -sub _Set { - my $self = shift; +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - return (0, 'Permission Denied'); - } +RT::Group_Overlay, RT::Group_Vendor, RT::Group_Local - return ($self->SUPER::_Set(@_)); +=cut -} -# }}} + +1; diff --git a/rt/lib/RT/GroupMember.pm b/rt/lib/RT/GroupMember.pm index 69de50b42..8de1a73fe 100755 --- a/rt/lib/RT/GroupMember.pm +++ b/rt/lib/RT/GroupMember.pm @@ -1,136 +1,189 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/GroupMember.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 2000 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::GroupMember - a member of an RT Group +RT::GroupMember -=head1 SYNOPSIS -RT::GroupMember should never be called directly. It should generally -only be accessed through the helper functions in RT::Group; +=head1 SYNOPSIS =head1 DESCRIPTION +=head1 METHODS +=cut +package RT::GroupMember; +use RT::Record; -=head1 METHODS +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -=begin testing +sub _Init { + my $self = shift; -ok (require RT::TestHarness); -ok (require RT::GroupMember); + $self->Table('GroupMembers'); + $self->SUPER::_Init(@_); +} -=end testing -=cut -package RT::GroupMember; -use RT::Record; -use vars qw|@ISA|; -@ISA= qw(RT::Record); -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "GroupMembers"; - return($self->SUPER::_Init(@_)); -} -# }}} +=item Create PARAMHASH -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - GroupId => 'read', - UserId => 'read' - ); +Create takes a hash of values and creates a row in the database: + + int(11) 'GroupId'. + int(11) 'MemberId'. + +=cut - return $self->SUPER::_Accessible(@_, %Cols); -} -# }}} -# {{{ sub Create -# a helper method for Add sub Create { my $self = shift; - my %args = ( GroupId => undef, - UserId => undef, - @_ - ); - - unless( $self->CurrentUser->HasSystemRight('AdminGroups')) { - return (0, 'Permission Denied'); - } - - return ($self->SUPER::Create(GroupId => $args{'GroupId'}, - UserId => $args{'UserId'})) + my %args = ( + GroupId => '0', + MemberId => '0', + + @_); + $self->SUPER::Create( + GroupId => $args{'GroupId'}, + MemberId => $args{'MemberId'}, +); + } -# }}} -# {{{ sub Add -=head2 Add -Takes a paramhash of UserId and GroupId. makes that user a memeber -of that group +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + =cut -sub Add { - my $self = shift; - return ($self->Create(@_)); -} -# }}} -# {{{ sub Delete +=item GroupId + +Returns the current value of GroupId. +(In the database, GroupId is stored as int(11).) + + + +=item SetGroupId VALUE + -=head2 Delete +Set GroupId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, GroupId will be stored as a int(11).) -Takes no arguments. deletes the currently loaded member from the -group in question. =cut -sub Delete { - my $self = shift; - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - return (0, 'Permission Denied'); - } - return($self->SUPER::Delete(@_)); -} -# }}} +=item MemberId + +Returns the current value of MemberId. +(In the database, MemberId is stored as int(11).) + -# {{{ sub UserObj -=head2 UserObj +=item SetMemberId VALUE + + +Set MemberId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, MemberId will be stored as a int(11).) -Returns an RT::User object for the user specified by $self->UserId =cut -sub UserObj { - my $self = shift; - unless (defined ($self->{'user_obj'})) { - $self->{'user_obj'} = new RT::User($self->CurrentUser); - $self->{'user_obj'}->Load($self->UserId); - } - return($self->{'user_obj'}); -} -# {{{ sub _Set -sub _Set { - my $self = shift; - unless ($self->CurrentUser->HasSystemRight('AdminGroups')) { - return (0, 'Permission Denied'); - } - return($self->SUPER::_Set(@_)); -} -# }}} + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + GroupId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + MemberId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + + } +}; + + + eval "require RT::GroupMember_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMember_Overlay.pm}) { + die $@; + }; + + eval "require RT::GroupMember_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMember_Vendor.pm}) { + die $@; + }; + + eval "require RT::GroupMember_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMember_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::GroupMember_Overlay, RT::GroupMember_Vendor, RT::GroupMember_Local + +=cut + + +1; diff --git a/rt/lib/RT/GroupMembers.pm b/rt/lib/RT/GroupMembers.pm index a90a2a899..31cb9536f 100755 --- a/rt/lib/RT/GroupMembers.pm +++ b/rt/lib/RT/GroupMembers.pm @@ -1,73 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/GroupMembers.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::GroupMembers - a collection of RT::GroupMember objects +=head1 NAME + RT::GroupMembers -- Class Description + =head1 SYNOPSIS - use RT::GroupMembers; + use RT::GroupMembers =head1 DESCRIPTION =head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::GroupMembers); - -=end testing - =cut package RT::GroupMembers; -use RT::EasySearch; + +use RT::SearchBuilder; use RT::GroupMember; -@ISA= qw(RT::EasySearch); +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'table'} = "GroupMembers"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_) ); +sub _Init { + my $self = shift; + $self->{'table'} = 'GroupMembers'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub LimitToGroup -=head2 LimitToGroup +=item NewItem -Takes a group id as its only argument. Limits the current search to that -group object +Returns an empty new RT::GroupMember item =cut -sub LimitToGroup { +sub NewItem { my $self = shift; - my $group = shift; + return(RT::GroupMember->new($self->CurrentUser)); +} - return ($self->Limit( - VALUE => "$group", - FIELD => 'GroupId', - ENTRYAGGREGATOR => 'OR', - )); + eval "require RT::GroupMembers_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMembers_Overlay.pm}) { + die $@; + }; -} -# }}} + eval "require RT::GroupMembers_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMembers_Vendor.pm}) { + die $@; + }; -# {{{ sub NewItem + eval "require RT::GroupMembers_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/GroupMembers_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::GroupMembers_Overlay, RT::GroupMembers_Vendor, RT::GroupMembers_Local + +=cut -sub NewItem { - my $self = shift; - return(RT::GroupMember->new($self->CurrentUser)) -} -# }}} 1; diff --git a/rt/lib/RT/Groups.pm b/rt/lib/RT/Groups.pm index f44f1fdb3..29f12a5a0 100755 --- a/rt/lib/RT/Groups.pm +++ b/rt/lib/RT/Groups.pm @@ -1,100 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Groups.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Groups - a collection of RT::Group objects +=head1 NAME + RT::Groups -- Class Description + =head1 SYNOPSIS - use RT::Groups; - my $groups = $RT::Groups->new($CurrentUser); - $groups->LimitToReal(); - while (my $group = $groups->Next()) { - print $group->Id ." is a group id\n"; - } + use RT::Groups =head1 DESCRIPTION =head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Groups); - -=end testing - =cut package RT::Groups; -use RT::EasySearch; -use RT::Groups; -@ISA= qw(RT::EasySearch); +use RT::SearchBuilder; +use RT::Group; -# {{{ sub _Init +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -sub _Init { - my $self = shift; - $self->{'table'} = "Groups"; - $self->{'primary_key'} = "id"; - $self->OrderBy( ALIAS => 'main', - FIELD => 'Name', - ORDER => 'ASC'); +sub _Init { + my $self = shift; + $self->{'table'} = 'Groups'; + $self->{'primary_key'} = 'id'; - return ( $self->SUPER::_Init(@_)); + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ LimitToReal -=head2 LimitToReal +=item NewItem -Make this groups object return only "real" groups, which can be -granted rights and have members assigned to them +Returns an empty new RT::Group item =cut -sub LimitToReal { +sub NewItem { my $self = shift; + return(RT::Group->new($self->CurrentUser)); +} - return ($self->Limit( FIELD => 'Pseudo', - VALUE => '0', - OPERATOR => '=')); + eval "require RT::Groups_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Groups_Overlay.pm}) { + die $@; + }; -} -# }}} + eval "require RT::Groups_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Groups_Vendor.pm}) { + die $@; + }; -# {{{ sub LimitToPseudo + eval "require RT::Groups_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Groups_Local.pm}) { + die $@; + }; -=head2 LimitToPseudo -Make this groups object return only "pseudo" groups, which can be -granted rights but whose membership lists are determined dynamically. -=cut - - sub LimitToPseudo { - my $self = shift; - return ($self->Limit( FIELD => 'Pseudo', - VALUE => '1', - OPERATOR => '=')); +=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. -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return (RT::Group->new($self->CurrentUser)); -} -# }}} +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 -1; + no warnings qw(redefine); + +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. +RT::Groups_Overlay, RT::Groups_Vendor, RT::Groups_Local + +=cut + + +1; diff --git a/rt/lib/RT/Handle.pm b/rt/lib/RT/Handle.pm index 6b74f361b..5cdb65e5b 100644 --- a/rt/lib/RT/Handle.pm +++ b/rt/lib/RT/Handle.pm @@ -1,5 +1,26 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Handle.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - +# 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. +# +# 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 @@ -22,14 +43,16 @@ ok(require RT::Handle); package RT::Handle; -eval "use DBIx::SearchBuilder::Handle::$RT::DatabaseType; +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 handle. Takes nothing. Calls SUPER::Connect with the needed args =cut @@ -38,16 +61,41 @@ sub Connect { my $self=shift; # Unless the database port is a positive integer, we really don't want to pass it. -$RT::DatabasePort = undef unless (defined $RT::DatabasePort && $RT::DatabasePort =~ /^(\d+)$/); -$self->SUPER::Connect(Host => $RT::DatabaseHost, - Database => $RT::DatabaseName, +$self->SUPER::Connect( User => $RT::DatabaseUser, Password => $RT::DatabasePassword, + ); + +} + +=item BuildDSN + +Build the DSN for the RT database. doesn't take any parameters, draws all that +from the config file. + +=cut + + +sub BuildDSN { + my $self = shift; +$RT::DatabasePort = undef unless (defined $RT::DatabasePort && $RT::DatabasePort =~ /^(\d+)$/); +$RT::DatabaseHost = undef unless (defined $RT::DatabaseHost && $RT::DatabaseHost ne ''); + + $self->SUPER::BuildDSN(Host => $RT::DatabaseHost, + Database => $RT::DatabaseName, Port => $RT::DatabasePort, Driver => $RT::DatabaseType, RequireSSL => $RT::DatabaseRequireSSL, + DisconnectHandleOnDestroy => 1 ); + } + +eval "require RT::Handle_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Handle_Vendor.pm}); +eval "require RT::Handle_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Handle_Local.pm}); + 1; diff --git a/rt/lib/RT/Interface/CLI.pm b/rt/lib/RT/Interface/CLI.pm index a3bf92d5f..ec0e877b4 100644 --- a/rt/lib/RT/Interface/CLI.pm +++ b/rt/lib/RT/Interface/CLI.pm @@ -1,9 +1,31 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Interface/CLI.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ -# RT is (c) 1996-2001 Jesse Vincent <jesse@fsck.com> +# 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. +# +# 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; package RT::Interface::CLI; -use strict; BEGIN { @@ -11,14 +33,14 @@ BEGIN { use vars qw ($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); # set the version for version checking - $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\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 &LoadConfig &DBConnect - &GetCurrentUser &GetMessageContent &debug); + @EXPORT_OK = qw(&CleanEnv + &GetCurrentUser &GetMessageContent &debug &loc); } =head1 NAME @@ -27,25 +49,28 @@ BEGIN { =head1 SYNOPSIS - use lib "!!RT_LIB_PATH!!"; - use lib "!!RT_ETC_PATH!!"; + use lib "/path/to/rt/libraries/"; - use RT::Interface::CLI qw(CleanEnv LoadConfig DBConnect - GetCurrentUser GetMessageContent); + use RT::Interface::CLI qw(CleanEnv + GetCurrentUser GetMessageContent loc); #Clean out all the nasties from the environment CleanEnv(); - #Load etc/config.pm and drop privs - LoadConfig(); + #let's talk to RT' + use RT; - #Connect to the database and get RT::SystemUser and RT::Nobody loaded - DBConnect(); + #Load RT's config file + RT::LoadConfig(); + # Connect to the database. set up loggign + RT::Init(); #Get the current user all loaded my $CurrentUser = GetCurrentUser(); + print loc('Hello!'); # Synonym of $CuurentUser->loc('Hello!'); + =head1 DESCRIPTION @@ -53,7 +78,6 @@ BEGIN { =begin testing -ok(require RT::TestHarness); ok(require RT::Interface::CLI); =end testing @@ -77,35 +101,10 @@ sub CleanEnv { -=head2 LoadConfig - -Loads RT's config file and then drops setgid privileges. - -=cut - -sub LoadConfig { - - #This drags in RT's config.pm - use config; - -} - - - -=head2 DBConnect - - Calls RT::Init, which creates a database connection and then creates $RT::Nobody - and $RT::SystemUser - -=cut - - -sub DBConnect { - use RT; - RT::Init(); -} +{ + my $CurrentUser; # shared betwen GetCurrentUser and loc # {{{ sub GetCurrentUser @@ -115,15 +114,14 @@ sub DBConnect { loaded with that user. if the current user isn't found, returns a copy of RT::Nobody. =cut + sub GetCurrentUser { - my ($Gecos, $CurrentUser); - require RT::CurrentUser; #Instantiate a user object - $Gecos=(getpwuid($<))[0]; + my $Gecos= ($^O eq 'MSWin32') ? Win32::LoginName() : (getpwuid($<))[0]; #If the current user is 0, then RT will assume that the User object #is that of the currentuser. @@ -134,10 +132,29 @@ sub GetCurrentUser { unless ($CurrentUser->Id) { $RT::Logger->debug("No user with a unix login of '$Gecos' was found. "); } + return($CurrentUser); } # }}} + +# {{{ sub loc + +=head2 loc + + Synonym of $CurrentUser->loc(). + +=cut + +sub loc { + die "No current user yet" unless $CurrentUser ||= RT::CurrentUser->new; + return $CurrentUser->loc(@_); +} +# }}} + +} + + # {{{ sub GetMessageContent =head2 GetMessageContent @@ -221,4 +238,9 @@ sub debug { # }}} +eval "require RT::Interface::CLI_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/CLI_Vendor.pm}); +eval "require RT::Interface::CLI_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/CLI_Local.pm}); + 1; diff --git a/rt/lib/RT/Interface/Email.pm b/rt/lib/RT/Interface/Email.pm index e95436091..7eec0502f 100755 --- a/rt/lib/RT/Interface/Email.pm +++ b/rt/lib/RT/Interface/Email.pm @@ -1,41 +1,58 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Interface/Email.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ -# RT is (c) 1996-2001 Jesse Vincent <jesse@fsck.com> - +# 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. +# +# 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 Mail::Address; use MIME::Entity; +use RT::EmailParser; + BEGIN { 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 $ =~ /\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 - &LoadConfig - &DBConnect - &GetCurrentUser + @EXPORT_OK = qw( + &CreateUser &GetMessageContent &CheckForLoops &CheckForSuspiciousSender &CheckForAutoGenerated - &ParseMIMEEntityFromSTDIN - &ParseTicketId &MailError &ParseCcAddressesFromHead &ParseSenderAddressFromHead - &ParseErrorsToAddressFromHead - &ParseAddressFromHeader - + &ParseErrorsToAddressFromHead + &ParseAddressFromHeader + &Gateway); - &debug); } =head1 NAME @@ -47,28 +64,13 @@ BEGIN { use lib "!!RT_LIB_PATH!!"; use lib "!!RT_ETC_PATH!!"; - use RT::Interface::Email qw(CleanEnv LoadConfig DBConnect - ); - - #Clean out all the nasties from the environment - CleanEnv(); - - #Load etc/config.pm and drop privs - LoadConfig(); - - #Connect to the database and get RT::SystemUser and RT::Nobody loaded - DBConnect(); - - - #Get the current user all loaded - my $CurrentUser = GetCurrentUser(); + use RT::Interface::Email qw(Gateway CreateUser); =head1 DESCRIPTION =begin testing -ok(require RT::TestHarness); ok(require RT::Interface::Email); =end testing @@ -79,71 +81,6 @@ ok(require RT::Interface::Email); =cut -=head2 CleanEnv - -Removes some of the nastiest nasties from the user\'s environment. - -=cut - -sub CleanEnv { - $ENV{'PATH'} = '/bin:/usr/bin'; # or whatever you need - $ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'}; - $ENV{'SHELL'} = '/bin/sh' if defined $ENV{'SHELL'}; - $ENV{'ENV'} = '' if defined $ENV{'ENV'}; - $ENV{'IFS'} = '' if defined $ENV{'IFS'}; -} - - - -=head2 LoadConfig - -Loads RT's config file and then drops setgid privileges. - -=cut - -sub LoadConfig { - - #This drags in RT's config.pm - use config; - -} - - - -=head2 DBConnect - - Calls RT::Init, which creates a database connection and then creates $RT::Nobody - and $RT::SystemUser - -=cut - - -sub DBConnect { - use RT; - RT::Init(); -} - - - -# {{{ sub debug - -sub debug { - my $val = shift; - my ($debug); - if ($val) { - $RT::Logger->debug($val."\n"); - if ($debug) { - print STDERR "$val\n"; - } - } - if ($debug) { - return(1); - } -} - -# }}} - - # {{{ sub CheckForLoops sub CheckForLoops { @@ -207,82 +144,6 @@ sub CheckForAutoGenerated { # }}} -# {{{ sub ParseMIMEEntityFromSTDIN - -sub ParseMIMEEntityFromSTDIN { - - # Create a new parser object: - - my $parser = new MIME::Parser; - - # {{{ Config $parser to store large attacments in temp dir - - ## TODO: Does it make sense storing to disk at all? After all, we - ## need to put each msg as an in-core scalar before saving it to - ## the database, don't we? - - ## At the same time, we should make sure that we nuke attachments - ## Over max size and return them - - ## TODO: Remove the temp dir when we don't need it any more. - - my $AttachmentDir = File::Temp::tempdir (TMPDIR => 1, CLEANUP => 1); - - # Set up output directory for files: - $parser->output_dir("$AttachmentDir"); - - #If someone includes a message, don't extract it - $parser->extract_nested_messages(0); - - - # Set up the prefix for files with auto-generated names: - $parser->output_prefix("part"); - - # If content length is <= 20000 bytes, store each msg as in-core scalar; - # Else, write to a disk file (the default action): - - $parser->output_to_core(20000); - - # }}} (temporary directory) - - #Ok. now that we're set up, let's get the stdin. - my $entity; - unless ($entity = $parser->read(\*STDIN)) { - die "couldn't parse MIME stream"; - } - #Now we've got a parsed mime object. - - # Get the head, a MIME::Head: - my $head = $entity->head; - - - # Unfold headers that are have embedded newlines - $head->unfold; - - # TODO - information about the charset is lost here! - $head->decode; - - return ($entity, $head); - -} -# }}} - -# {{{ sub ParseTicketId - -sub ParseTicketId { - my $Subject = shift; - my ($Id); - - if ($Subject =~ s/\[$RT::rtname \#(\d+)\]//i) { - $Id = $1; - $RT::Logger->debug("Found a ticket ID. It's $Id"); - return($Id); - } - else { - return(undef); - } -} -# }}} # {{{ sub MailError sub MailError { @@ -313,8 +174,8 @@ sub MailError { if ($mimeobj) { $mimeobj->sync_headers(); $entity->add_part($mimeobj); - } - + } + if ($RT::MailCommand eq 'sendmailpipe') { open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); print MAIL $entity->as_string; @@ -327,144 +188,66 @@ sub MailError { # }}} -# {{{ sub GetCurrentUser - -sub GetCurrentUser { - my $head = shift; - my $entity = shift; - my $ErrorsTo = shift; +# {{{ Create User - my %UserInfo = (); +sub CreateUser { + my ($Username, $Address, $Name, $ErrorsTo, $entity) = @_; + my $NewUser = RT::User->new($RT::SystemUser); - #Suck the address of the sender out of the header - my ($Address, $Name) = ParseSenderAddressFromHead($head); - - #This will apply local address canonicalization rules - $Address = RT::CanonicalizeAddress($Address); - - #If desired, synchronize with an external database - - my $UserFoundInExternalDatabase = 0; - - # Username is the 'Name' attribute of the user that RT uses for things - # like authentication - my $Username = undef; - if ($RT::LookupSenderInExternalDatabase) { - ($UserFoundInExternalDatabase, %UserInfo) = - RT::LookupExternalUserInfo($Address, $Name); - - $Address = $UserInfo{'EmailAddress'}; - $Username = $UserInfo{'Name'}; - } - - my $CurrentUser = RT::CurrentUser->new(); + # 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; - # First try looking up by a username, if we got one from the external - # db lookup. Next, try looking up by email address. Failing that, - # try looking up by users who have this user's email address as their - # username. - - if ($Username) { - $CurrentUser->LoadByName($Username); - } + my ($Val, $Message) = + $NewUser->Create(Name => ($Username || $Address), + EmailAddress => $Address, + RealName => $Name, + Password => undef, + Privileged => 0, + Comments => 'Autocreated on ticket submission' + ); - unless ($CurrentUser->Id) { - $CurrentUser->LoadByEmail($Address); - } - - #If we can't get it by email address, try by name. - unless ($CurrentUser->Id) { - $CurrentUser->LoadByName($Address); + unless ($Val) { + + # Deal with the race condition of two account creations at once + # + if ($Username) { + $NewUser->LoadByName($Username); + } + + 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 ($CurrentUser->Id) { - #If we couldn't load a user, determine whether to create a user - - # {{{ If we require an incoming address to be found in the external - # user database, reject the incoming message appropriately - if ( $RT::LookupSenderInExternalDatabase && - $RT::SenderMustExistInExternalDatabase && - !$UserFoundInExternalDatabase) { - - my $Message = "Sender's email address was not found in the user database."; - - # {{{ This code useful only if you've defined an AutoRejectRequest template - - require RT::Template; - my $template = new RT::Template($RT::Nobody); - $template->Load('AutoRejectRequest'); - $Message = $template->Content || $Message; - - # }}} - - MailError( To => $ErrorsTo, - Subject => "Ticket Creation failed: user could not be created", - Explanation => $Message, - MIMEObj => $entity, - LogLevel => 'notice' - ); - - return($CurrentUser); - - } - # }}} - - else { - 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' - ); - - unless ($Val) { - - # Deal with the race condition of two account creations at once - # - if ($Username) { - $NewUser->LoadByName($Username); - } - - 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' - ); - } - } - } - - #Load the new user object - $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' - ); - - } + + #Load the new user object + 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' + ); } - - return ($CurrentUser); - -} -# }}} + return $CurrentUser; +} +# }}} # {{{ ParseCcAddressesFromHead =head2 ParseCcAddressesFromHead HASHREF @@ -489,11 +272,11 @@ sub ParseCcAddressesFromHead { foreach my $AddrObj (@ToObjs, @CcObjs) { my $Address = $AddrObj->address; - $Address = RT::CanonicalizeAddress($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::IsRTAddress($Address)); + next if (RT::EmailParser::IsRTAddress(undef, $Address)); push (@Addresses, $Address); } @@ -568,8 +351,7 @@ sub ParseAddressFromHeader{ } my $Name = ($AddrObj->phrase || $AddrObj->comment || $AddrObj->address); - - + #Lets take the from and load a user object. my $Address = $AddrObj->address; @@ -578,4 +360,289 @@ sub ParseAddressFromHeader{ # }}} + +=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. + +=cut + +sub Gateway { + my %args = ( message => undef, + queue => 1, + action => 'correspond', + ticket => undef, + @_ ); + + # Validate the action + 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->ParseMIMEEntityFromScalar( $args{'message'} ); + + my $Message = $parser->Entity(); + my $head = $Message->head; + + my ( $CurrentUser, $AuthStat, $status, $error ); + + my $ErrorsTo = ParseErrorsToAddressFromHead($head); + + 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; + + + $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); + $SystemQueueObj->Load( $args{'queue'} ); + + + # We can safely have no queue of we have a known-good ticket + unless ( $args{'ticket'} || $SystemQueueObj->id ) { + MailError( + 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 ); + } + + # Authentication Level + # -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 + + push @RT::MailPlugins, "Auth::MailFrom" unless @RT::MailPlugins; + # Since this needs loading, no matter what + + for (@RT::MailPlugins) { + my $Code; + my $NewAuthStat; + if ( ref($_) eq "CODE" ) { + $Code = $_; + } + 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; + } + } + + ( $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; + } + + # {{{ If authentication fails and no new user was created, get out. + if ( !$CurrentUser or !$CurrentUser->Id or $AuthStat == -1 ) { + + # 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 => $Message, + LogLevel => 'error' ) + unless $AuthStat == -1; + return ( 0, "Could not load a valid user", undef ); + } + + # }}} + + # {{{ Lets check for mail loops of various sorts. + my $IsAutoGenerated = CheckForAutoGenerated($head); + + my $IsSuspiciousSender = CheckForSuspiciousSender($head); + + my $IsALoop = CheckForLoops($head); + + my $SquelchReplies = 0; + + #If the message is autogenerated, we need to know, so we can not + # send mail to the sender + if ( $IsSuspiciousSender || $IsAutoGenerated || $IsALoop ) { + $SquelchReplies = 1; + $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 Recieved mail ($MessageId) from itself."); + + #Should we mail it to RTOwner? + 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, "Message Bounced", undef ) unless ($RT::StoreLoops); + } + } + + # }}} + + # {{{ 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->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". + + my ( $Sender, $junk ) = ParseSenderAddressFromHead($head); + $head->add( 'RT-Squelch-Replies-To', $Sender ); + } + + # }}} + + my $Ticket = RT::Ticket->new($CurrentUser); + + # {{{ If we don't have a ticket Id, we're creating a new ticket + if ( !$args{'ticket'} ) { + + # {{{ Create a new ticket + + 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 ); + } + + # }}} + } + + # }}} + + # 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 { + + #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}); +eval "require RT::Interface::Email_Local"; +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 6b5272848..5097f54a4 100644 --- a/rt/lib/RT/Interface/Web.pm +++ b/rt/lib/RT/Interface/Web.pm @@ -1,129 +1,214 @@ -## $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Interface/Web.pm,v 1.1 2002-08-12 06:17:08 ivan Exp $ - +# 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. +# +# 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@fsck.com> -## Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com> ## This is a library of static subs to be used by the Mason web ## interface to RT + +=head1 NAME + +RT::Interface::Web + +=begin testing + +use_ok(RT::Interface::Web); + +=end testing + +=cut + + package RT::Interface::Web; +use strict; -# {{{ sub NewParser -=head2 NewParser - Returns a new Mason::Parser object. Takes a param hash of things - that get passed to HTML::Mason::Parser. Currently hard coded to only - take the parameter 'allow_globals'. + + +# {{{ sub NewApacheHandler + +=head2 NewApacheHandler + + Takes extra options to pass to HTML::Mason::ApacheHandler->new + Returns a new Mason::ApacheHandler object =cut -sub NewParser { - my %args = ( - allow_globals => undef, +sub NewApacheHandler { + require HTML::Mason::ApacheHandler; + my $ah = new HTML::Mason::ApacheHandler( + + comp_root => [ + [ local => $RT::MasonLocalComponentRoot ], + [ standard => $RT::MasonComponentRoot ] + ], + args_method => "CGI", + default_escape_flags => 'h', + allow_globals => [qw(%session)], + data_dir => "$RT::MasonDataDir", @_ ); - my $parser = new HTML::Mason::Parser( - default_escape_flags => 'h', - allow_globals => $args{'allow_globals'} - ); - return ($parser); + $ah->interp->set_escape( h => \&RT::Interface::Web::EscapeUTF8 ); + + return ($ah); } # }}} -# {{{ sub NewInterp +# {{{ sub NewCGIHandler -=head2 NewInterp +=head2 NewCGIHandler - Takes a paremeter hash. Needs a param called 'parser' which is a reference - to an HTML::Mason::Parser. - returns a new Mason::Interp object + Returns a new Mason::CGIHandler object =cut -sub NewInterp { - my %params = ( +sub NewCGIHandler { + my %args = ( + @_ + ); + + my $handler = HTML::Mason::CGIHandler->new( comp_root => [ [ local => $RT::MasonLocalComponentRoot ], [ standard => $RT::MasonComponentRoot ] ], data_dir => "$RT::MasonDataDir", - @_ + default_escape_flags => 'h', + allow_globals => [qw(%session)] ); + - #We allow recursive autohandlers to allow for RT auth. + $handler->interp->set_escape( h => \&RT::Interface::Web::EscapeUTF8 ); - use HTML::Mason::Interp; - my $interp = new HTML::Mason::Interp(%params); -} + return ($handler); +} # }}} -# {{{ sub NewApacheHandler -=head2 NewApacheHandler +# {{{ EscapeUTF8 - Takes a Mason::Interp object - Returns a new Mason::ApacheHandler object +=head2 EscapeUTF8 SCALARREF + +does a css-busting but minimalist escaping of whatever html you're passing in. =cut -sub NewApacheHandler { - my $interp = shift; - my $ah = new HTML::Mason::ApacheHandler( interp => $interp ); - return ($ah); +sub EscapeUTF8 { + my $ref = shift; + my $val = $$ref; + use bytes; + $val =~ s/&/&/g; + $val =~ s/</</g; + $val =~ s/>/>/g; + $val =~ s/\(/(/g; + $val =~ s/\)/)/g; + $val =~ s/"/"/g; + $val =~ s/'/'/g; + $$ref = $val; + Encode::_utf8_on($$ref); + } # }}} -# {{{ sub NewMason11ApacheHandler +package HTML::Mason::Commands; +use strict; +use vars qw/$r $m %session/; -=head2 NewMason11ApacheHandler - Returns a new Mason::ApacheHandler object +# {{{ loc + +=head2 loc ARRAY + +loc is a nice clean global routine which calls $session{'CurrentUser'}->loc() +with whatever it's called with. If there is no $session{'CurrentUser'}, +it creates a temporary user, so we have something to get a localisation handle +through =cut -sub NewMason11ApacheHandler { - my %args = ( default_escape_flags => 'h', - allow_globals => [%session], - comp_root => [ - [ local => $RT::MasonLocalComponentRoot ], - [ standard => $RT::MasonComponentRoot ] - ], - data_dir => "$RT::MasonDataDir", - args_method => 'CGI' - ); - my $ah = new HTML::Mason::ApacheHandler(%args); - return ($ah); +sub loc { + + if ($session{'CurrentUser'} && + UNIVERSAL::can($session{'CurrentUser'}, 'loc')){ + return($session{'CurrentUser'}->loc(@_)); + } + else { + my $u = RT::CurrentUser->new($RT::SystemUser); + return ($u->loc(@_)); + } } # }}} +# {{{ loc_fuzzy + +=head2 loc_fuzzy STRING +loc_fuzzy is for handling localizations of messages that may already +contain interpolated variables, typically returned from libraries +outside RT's control. It takes the message string and extracts the +variable array automatically by matching against the candidate entries +inside the lexicon file. + +=cut +sub loc_fuzzy { + my $msg = shift; + + if ($session{'CurrentUser'} && + UNIVERSAL::can($session{'CurrentUser'}, 'loc')){ + return($session{'CurrentUser'}->loc_fuzzy($msg)); + } + else { + my $u = RT::CurrentUser->new($RT::SystemUser); + return ($u->loc_fuzzy($msg)); + } +} # }}} -package HTML::Mason::Commands; # {{{ sub Abort # Error - calls Error and aborts sub Abort { - if ( $session{'ErrorDocument'} && $session{'ErrorDocumentType'} ) { - SetContentType( $session{'ErrorDocumentType'} ); - $m->comp( $session{'ErrorDocument'}, Why => shift ); + if ($session{'ErrorDocument'} && + $session{'ErrorDocumentType'}) { + $r->content_type($session{'ErrorDocumentType'}); + $m->comp($session{'ErrorDocument'} , Why => shift); $m->abort; - } - else { - SetContentType('text/html'); - $m->comp( "/Elements/Error", Why => shift ); + } + else { + $m->comp("/Elements/Error" , Why => shift); $m->abort; } } @@ -135,6 +220,7 @@ sub Abort { =head2 CreateTicket ARGS Create a new ticket, using Mason's %ARGS. returns @results. + =cut sub CreateTicket { @@ -158,38 +244,45 @@ sub CreateTicket { my $starts = new RT::Date( $session{'CurrentUser'} ); $starts->Set( Format => 'unknown', Value => $ARGS{'Starts'} ); - my @Requestors = split ( /,/, $ARGS{'Requestors'} ); - my @Cc = split ( /,/, $ARGS{'Cc'} ); - my @AdminCc = split ( /,/, $ARGS{'AdminCc'} ); + my @Requestors = split ( /\s*,\s*/, $ARGS{'Requestors'} ); + my @Cc = split ( /\s*,\s*/, $ARGS{'Cc'} ); + my @AdminCc = split ( /\s*,\s*/, $ARGS{'AdminCc'} ); my $MIMEObj = MakeMIMEEntity( Subject => $ARGS{'Subject'}, From => $ARGS{'From'}, Cc => $ARGS{'Cc'}, Body => $ARGS{'Content'}, - AttachmentFieldName => 'Attach' ); + if ($ARGS{'Attachments'}) { + $MIMEObj->make_multipart; + $MIMEObj->add_part($_) foreach values %{$ARGS{'Attachments'}}; + } + my %create_args = ( - Queue => $ARGS{Queue}, - Owner => $ARGS{Owner}, - InitialPriority => $ARGS{InitialPriority}, - FinalPriority => $ARGS{FinalPriority}, - TimeLeft => $ARGS{TimeLeft}, - TimeWorked => $ARGS{TimeWorked}, + Queue => $ARGS{'Queue'}, + Owner => $ARGS{'Owner'}, + InitialPriority => $ARGS{'InitialPriority'}, + FinalPriority => $ARGS{'FinalPriority'}, + TimeLeft => $ARGS{'TimeLeft'}, + TimeEstimated => $ARGS{'TimeEstimated'}, + TimeWorked => $ARGS{'TimeWorked'}, Requestor => \@Requestors, Cc => \@Cc, AdminCc => \@AdminCc, - Subject => $ARGS{Subject}, - Status => $ARGS{Status}, + Subject => $ARGS{'Subject'}, + Status => $ARGS{'Status'}, Due => $due->ISO, Starts => $starts->ISO, MIMEObj => $MIMEObj ); - - # we need to get any KeywordSelect-<integer> fields into %create_args.. - grep { $_ =~ /^KeywordSelect-/ &&{ $create_args{$_} = $ARGS{$_} } } %ARGS; - + foreach my $arg (%ARGS) { + if ($arg =~ /^CustomField-(\d+)(.*?)$/) { + next if ($arg =~ /-Magic$/); + $create_args{"CustomField-".$1} = $ARGS{"$arg"}; + } + } my ( $id, $Trans, $ErrMsg ) = $Ticket->Create(%create_args); unless ( $id && $Trans ) { Abort($ErrMsg); @@ -216,7 +309,7 @@ sub CreateTicket { } } - push ( @Actions, $ErrMsg ); + push ( @Actions, split("\n", $ErrMsg) ); unless ( $Ticket->CurrentUserHasRight('ShowTicket') ) { Abort( "No permission to view newly created ticket #" . $Ticket->id . "." ); @@ -283,80 +376,38 @@ sub ProcessUpdateMessage { my $Message = MakeMIMEEntity( Subject => $args{ARGSRef}->{'UpdateSubject'}, Body => $args{ARGSRef}->{'UpdateContent'}, - AttachmentFieldName => 'UpdateAttachment' ); - ## Check whether this was a refresh or not. - - # Match Correspondence or Comments. - my $trans_flag = -2; - my $trans_type = undef; - my $orig_trans = $args{ARGSRef}->{'UpdateType'}; - if ( $orig_trans =~ /^(private|public)$/ ) { - $trans_type = "Comment"; - }elsif ( $orig_trans eq 'response' ) { - $trans_type = "Correspond"; - } - - # Do we have a transaction that we need to update on? session - if( defined( $trans_type ) ){ - $trans_flag = 0; - - # Prepare a checksum. - # See perldoc -f unpack for example of this. - my $this_checksum = unpack("%32C*", $Message->body_as_string ) % 65535; - - # The above *could* generate duplicate checksums. Crosscheck with - # the length. - my $this_length = length( $Message->body_as_string ); - - # Don't forget the ticket id. - my $this_id = $args{TicketObj}->id; - - # Check whether the previous transaction in the - # ticket is the same as the current transaction. - if( defined( $session{'prev_trans_type'} ) && defined( $session{'prev_trans_chksum'} ) && defined( $session{'prev_trans_length'} ) && defined( $session{'prev_trans_tickid'} ) ){ - if( $session{'prev_trans_type'} eq $orig_trans && $session{'prev_trans_chksum'} == $this_checksum && $session{'prev_trans_length'} == $this_length && $session{'prev_trans_tickid'} == $this_id ){ - # Its the same as the previous transaction for this user. - $trans_flag = -1; - } - } - - # Store them for next time. - $session{'prev_trans_type'} = $orig_trans; - $session{'prev_trans_chksum'} = $this_checksum; - $session{'prev_trans_length'} = $this_length; - $session{'prev_trans_tickid'} = $this_id; - - if( $trans_flag == -1 ){ - push ( @{ $args{'Actions'} }, -"This appears to be a duplicate of your previous update (please do not refresh this page)" ); - } - - - if ( $trans_type eq 'Comment' && $trans_flag >= 0 ) { - my ( $Transaction, $Description ) = $args{TicketObj}->Comment( - CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, - BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, - MIMEObj => $Message, - TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} - ); - push ( @{ $args{Actions} }, $Description ); - } - elsif ( $trans_type eq 'Correspond' && $trans_flag >= 0 ) { - my ( $Transaction, $Description ) = $args{TicketObj}->Correspond( - CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, - BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, - MIMEObj => $Message, - TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} - ); - push ( @{ $args{Actions} }, $Description ); - } - } + if ($args{ARGSRef}->{'UpdateAttachments'}) { + $Message->make_multipart; + $Message->add_part($_) foreach values %{$args{ARGSRef}->{'UpdateAttachments'}}; + } + + ## TODO: Implement public comments + if ( $args{ARGSRef}->{'UpdateType'} =~ /^(private|public)$/ ) { + my ( $Transaction, $Description ) = $args{TicketObj}->Comment( + CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, + BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, + MIMEObj => $Message, + TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} + ); + push ( @{ $args{Actions} }, $Description ); + } + elsif ( $args{ARGSRef}->{'UpdateType'} eq 'response' ) { + my ( $Transaction, $Description ) = $args{TicketObj}->Correspond( + CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, + BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, + MIMEObj => $Message, + TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} + ); + push ( @{ $args{Actions} }, $Description ); + } else { push ( @{ $args{'Actions'} }, - "Update type was neither correspondence nor comment. Update not recorded" - ); + loc("Update type was neither correspondence nor comment."). + " ". + loc("Update not recorded.") + ); } } } @@ -382,61 +433,66 @@ sub MakeMIMEEntity { Cc => undef, Body => undef, AttachmentFieldName => undef, - @_ + map Encode::encode_utf8($_), @_, ); #Make the update content have no 'weird' newlines in it $args{'Body'} =~ s/\r\n/\n/gs; - my $Message = MIME::Entity->build( - Subject => $args{'Subject'} || "", - From => $args{'From'}, - Cc => $args{'Cc'}, - Data => [ $args{'Body'} ] - ); + my $Message; + { + # MIME::Head is not happy in utf-8 domain. This only happens + # when processing an incoming email (so far observed). + no utf8; + use bytes; + $Message = MIME::Entity->build( + Subject => $args{'Subject'} || "", + From => $args{'From'}, + Cc => $args{'Cc'}, + Data => [ $args{'Body'} ] + ); + } - my $cgi_object = CGIObject(); - if ( $cgi_object->param( $args{'AttachmentFieldName'} ) ) { + my $cgi_object = $m->cgi_object; - my $cgi_filehandle = - $cgi_object->upload( $args{'AttachmentFieldName'} ); + if (my $filehandle = $cgi_object->upload( $args{'AttachmentFieldName'} ) ) { - use File::Temp qw(tempfile tempdir); - #foreach my $filehandle (@filenames) { - # my ( $fh, $temp_file ) = tempfile(); + use File::Temp qw(tempfile tempdir); - #$binmode $fh; #thank you, windows + #foreach my $filehandle (@filenames) { - # We're having trouble with tempfiles not getting created. Let's try it with - # a scalar instead + my ( $fh, $temp_file ) = tempfile(); - my ( $buffer, @file ); + binmode $fh; #thank you, windows + my ($buffer); + while ( my $bytesread = read( $filehandle, $buffer, 4096 ) ) { + print $fh $buffer; + } - while ( my $bytesread = read( $cgi_filehandle, $buffer, 4096 ) ) { - push ( @file, $buffer ); - } + my $uploadinfo = $cgi_object->uploadInfo($filehandle); - $RT::Logger->debug($file); - my $filename = "$cgi_filehandle"; - $filename =~ s#^(.*)/##; - $filename =~ s#^(.*)\\##; - my $uploadinfo = $cgi_object->uploadInfo($cgi_filehandle); - $Message->attach( - Data => \@file, - - #Path => $temp_file, - Filename => $filename, - Type => $uploadinfo->{'Content-Type'} - ); + # Prefer the cached name first over CGI.pm stringification. + my $filename = $RT::Mason::CGI::Filename; + $filename = "$filehandle" unless defined($filename); + + $filename =~ s#^.*[\\/]##; + + $Message->attach( + Path => $temp_file, + Filename => $filename, + Type => $uploadinfo->{'Content-Type'}, + ); + close($fh); - #close($fh); - #unlink($temp_file); + # } - # } } + $Message->make_singlepart(); + RT::I18N::SetMIMEEntityToUTF8($Message); # convert text parts into utf-8 + return ($Message); } @@ -485,6 +541,9 @@ sub ProcessSearchQuery { elsif ( $args{ARGS}->{'GotoPage'} eq 'Prev' ) { $session{'tickets'}->PrevPage; } + elsif ( $args{ARGS}->{'GotoPage'} > 0 ) { + $session{'tickets'}->GotoPage( $args{ARGS}->{GotoPage} - 1 ); + } # }}} @@ -576,8 +635,12 @@ sub ProcessSearchQuery { # }}} # {{{ Limit Subject if ( $args{ARGS}->{'ValueOfSubject'} ne '' ) { + my $val = $args{ARGS}->{'ValueOfSubject'}; + if ($args{ARGS}->{'SubjectOp'} =~ /like/) { + $val = "%".$val."%"; + } $session{'tickets'}->LimitSubject( - VALUE => $args{ARGS}->{'ValueOfSubject'}, + VALUE => $val, OPERATOR => $args{ARGS}->{'SubjectOp'}, ); } @@ -585,40 +648,59 @@ sub ProcessSearchQuery { # }}} # {{{ Limit Dates if ( $args{ARGS}->{'ValueOfDate'} ne '' ) { - my $date = ParseDateToISO( $args{ARGS}->{'ValueOfDate'} ); $args{ARGS}->{'DateType'} =~ s/_Date$//; - $session{'tickets'}->LimitDate( - FIELD => $args{ARGS}->{'DateType'}, - VALUE => $date, - OPERATOR => $args{ARGS}->{'DateOp'}, - ); + if ( $args{ARGS}->{'DateType'} eq 'Updated' ) { + $session{'tickets'}->LimitTransactionDate( + VALUE => $date, + OPERATOR => $args{ARGS}->{'DateOp'}, + ); + } + else { + $session{'tickets'}->LimitDate( FIELD => $args{ARGS}->{'DateType'}, + VALUE => $date, + OPERATOR => $args{ARGS}->{'DateOp'}, + ); + } } # }}} # {{{ Limit Content - if ( $args{ARGS}->{'ValueOfContent'} ne '' ) { - $session{'tickets'}->LimitContent( - VALUE => $args{ARGS}->{'ValueOfContent'}, - OPERATOR => $args{ARGS}->{'ContentOp'}, + if ( $args{ARGS}->{'ValueOfAttachmentField'} ne '' ) { + my $val = $args{ARGS}->{'ValueOfAttachmentField'}; + if ($args{ARGS}->{'AttachmentFieldOp'} =~ /like/) { + $val = "%".$val."%"; + } + $session{'tickets'}->Limit( + FIELD => $args{ARGS}->{'AttachmentField'}, + VALUE => $val, + OPERATOR => $args{ARGS}->{'AttachmentFieldOp'}, ); } # }}} - # {{{ Limit KeywordSelects - foreach my $KeywordSelectId ( - map { /^KeywordSelect(\d+)$/; $1 } - grep { /^KeywordSelect(\d+)$/; } keys %{ $args{ARGS} } - ) - { - my $form = $args{ARGS}->{"KeywordSelect$KeywordSelectId"}; - my $oper = $args{ARGS}->{"KeywordSelectOp$KeywordSelectId"}; - foreach my $KeywordId ( ref($form) ? @{$form} : ($form) ) { - next unless ($KeywordId); + # {{{ Limit CustomFields + + foreach my $arg ( keys %{ $args{ARGS} } ) { + my $id; + if ( $arg =~ /^CustomField(\d+)$/ ) { + $id = $1; + } + else { + next; + } + next unless ( $args{ARGS}->{$arg} ); + + my $form = $args{ARGS}->{$arg}; + my $oper = $args{ARGS}->{ "CustomFieldOp" . $id }; + foreach my $value ( ref($form) ? @{$form} : ($form) ) { my $quote = 1; - if ( $KeywordId =~ /^null$/i ) { + if ($oper =~ /like/i) { + $value = "%".$value."%"; + } + if ( $value =~ /^null$/i ) { #Don't quote the string 'null' $quote = 0; @@ -627,17 +709,16 @@ sub ProcessSearchQuery { $oper = 'IS' if ( $oper eq '=' ); $oper = 'IS NOT' if ( $oper eq '!=' ); } - $session{'tickets'}->LimitKeyword( - KEYWORDSELECT => $KeywordSelectId, - OPERATOR => $oper, - QUOTEVALUE => $quote, - KEYWORD => $KeywordId - ); + $session{'tickets'}->LimitCustomField( CUSTOMFIELD => $id, + OPERATOR => $oper, + QUOTEVALUE => $quote, + VALUE => $value ); } } # }}} + } # }}} @@ -654,7 +735,7 @@ Returns an ISO date and time in GMT sub ParseDateToISO { my $date = shift; - my $date_obj = new RT::Date($CurrentUser); + my $date_obj = RT::Date->new($session{'CurrentUser'}); $date_obj->Set( Format => 'unknown', Value => $date @@ -680,172 +761,82 @@ sub Config { # {{{ sub ProcessACLChanges sub ProcessACLChanges { - my $ACLref = shift; my $ARGSref = shift; - my @CheckACL = @$ACLref; my %ARGS = %$ARGSref; my ( $ACL, @results ); - # {{{ Add rights - foreach $ACL (@CheckACL) { - my ($Principal); - next unless ($ACL); + foreach my $arg (keys %ARGS) { + if ($arg =~ /GrantRight-(\d+)-(.*?)-(\d+)$/) { + my $principal_id = $1; + my $object_type = $2; + my $object_id = $3; + my $rights = $ARGS{$arg}; - # Parse out what we're really talking about. - if ( $ACL =~ /^(.*?)-(\d+)-(.*?)-(\d+)/ ) { - my $PrincipalType = $1; - my $PrincipalId = $2; - my $Scope = $3; - my $AppliesTo = $4; + my $principal = RT::Principal->new($session{'CurrentUser'}); + $principal->Load($principal_id); - # {{{ Create an object called Principal - # so we can do rights operations + my $obj; - if ( $PrincipalType eq 'User' ) { - $Principal = new RT::User( $session{'CurrentUser'} ); - } - elsif ( $PrincipalType eq 'Group' ) { - $Principal = new RT::Group( $session{'CurrentUser'} ); - } - else { - Abort("$PrincipalType unknown principal type"); - } + if ($object_type eq 'RT::Queue') { + $obj = RT::Queue->new($session{'CurrentUser'}); + $obj->Load($object_id); + } elsif ($object_type eq 'RT::Group') { + $obj = RT::Group->new($session{'CurrentUser'}); + $obj->Load($object_id); - $Principal->Load($PrincipalId) - || Abort("$PrincipalType $PrincipalId couldn't be loaded"); - - # }}} - - # {{{ load up an RT::ACL object with the same current vals of this ACL - - my $CurrentACL = new RT::ACL( $session{'CurrentUser'} ); - if ( $Scope eq 'Queue' ) { - $CurrentACL->LimitToQueue($AppliesTo); + } elsif ($object_type eq 'RT::System') { + $obj = $RT::System; + } else { + push (@results, loc("System Error"). + loc("Rights could not be granted for [_1]", $object_type)); + next; } - elsif ( $Scope eq 'System' ) { - $CurrentACL->LimitToSystem(); - } - - $CurrentACL->LimitPrincipalToType($PrincipalType); - $CurrentACL->LimitPrincipalToId($PrincipalId); - - # }}} - - # {{{ Get the values of the select we're working with - # into an array. it will contain all the new rights that have - # been granted - #Hack to turn the ACL returned into an array - my @rights = - ref( $ARGS{"GrantACE-$ACL"} ) eq 'ARRAY' - ? @{ $ARGS{"GrantACE-$ACL"} } - : ( $ARGS{"GrantACE-$ACL"} ); - - # }}} - - # {{{ Add any rights we need. + my @rights = ref($ARGS{$arg}) eq 'ARRAY' ? @{$ARGS{$arg}} : ($ARGS{$arg}); foreach my $right (@rights) { next unless ($right); - - #if the right that's been selected wasn't there before, add it. - unless ( - $CurrentACL->HasEntry( - RightScope => "$Scope", - RightName => "$right", - RightAppliesTo => "$AppliesTo", - PrincipalType => $PrincipalType, - PrincipalId => $Principal->Id - ) - ) - { - - #Add new entry to list of rights. - if ( $Scope eq 'Queue' ) { - my $Queue = new RT::Queue( $session{'CurrentUser'} ); - $Queue->Load($AppliesTo); - unless ( $Queue->id ) { - Abort("Couldn't find a queue called $AppliesTo"); - } - - my ( $val, $msg ) = $Principal->GrantQueueRight( - RightAppliesTo => $Queue->id, - RightName => "$right" - ); - - if ($val) { - push ( @results, - "Granted right $right to " - . $Principal->Name - . " for queue " - . $Queue->Name ); - } - else { - push ( @results, $msg ); - } - } - elsif ( $Scope eq 'System' ) { - my ( $val, $msg ) = $Principal->GrantSystemRight( - RightAppliesTo => $AppliesTo, - RightName => "$right" - ); - if ($val) { - push ( @results, "Granted system right '$right' to " - . $Principal->Name ); - } - else { - push ( @results, $msg ); - } - } - } + my ($val, $msg) = $principal->GrantRight(Object => $obj, Right => $right); + push (@results, $msg); } - - # }}} } - } - - # }}} Add rights - - # {{{ remove any rights that have been deleted - - my @RevokeACE = - ref( $ARGS{"RevokeACE"} ) eq 'ARRAY' - ? @{ $ARGS{"RevokeACE"} } - : ( $ARGS{"RevokeACE"} ); - - foreach my $aceid (@RevokeACE) { - - my $right = new RT::ACE( $session{'CurrentUser'} ); - $right->Load($aceid); - next unless ( $right->id ); + elsif ($arg =~ /RevokeRight-(\d+)-(.*?)-(\d+)-(.*?)$/) { + my $principal_id = $1; + my $object_type = $2; + my $object_id = $3; + my $right = $4; + + my $principal = RT::Principal->new($session{'CurrentUser'}); + $principal->Load($principal_id); + next unless ($right); + my $obj; + + if ($object_type eq 'RT::Queue') { + $obj = RT::Queue->new($session{'CurrentUser'}); + $obj->Load($object_id); + } elsif ($object_type eq 'RT::Group') { + $obj = RT::Group->new($session{'CurrentUser'}); + $obj->Load($object_id); + + } elsif ($object_type eq 'RT::System') { + $obj = $RT::System; + } else { + push (@results, loc("System Error"). + loc("Rights could not be revoked for [_1]", $object_type)); + next; + } + my ($val, $msg) = $principal->RevokeRight(Object => $obj, Right => $right); + push (@results, $msg); + } - my $phrase = "Revoked " - . $right->PrincipalType . " " - . $right->PrincipalObj->Name - . "'s right to " - . $right->RightName; - if ( $right->RightScope eq 'System' ) { - $phrase .= ' across all queues.'; - } - else { - $phrase .= ' for the queue ' . $right->AppliesToObj->Name . '.'; - } - my ( $val, $msg ) = $right->Delete(); - if ($val) { - push ( @results, $phrase ); - } - else { - push ( @results, $msg ); - } } - # }}} - return (@results); -} + + } # }}} @@ -864,6 +855,7 @@ sub UpdateRecordObject { ARGSRef => undef, AttributesRef => undef, Object => undef, + AttributePrefix => undef, @_ ); @@ -872,17 +864,94 @@ sub UpdateRecordObject { my $object = $args{'Object'}; my $attributes = $args{'AttributesRef'}; my $ARGSRef = $args{'ARGSRef'}; + foreach my $attribute (@$attributes) { + my $value; + if ( defined $ARGSRef->{$attribute} ) { + $value = $ARGSRef->{$attribute}; + } + elsif ( + defined( $args{'AttributePrefix'} ) + && defined( + $ARGSRef->{ $args{'AttributePrefix'} . "-" . $attribute } + ) + ) { + $value = $ARGSRef->{ $args{'AttributePrefix'} . "-" . $attribute }; + + } else { + next; + } - foreach $attribute (@$attributes) { - if ( ( defined $ARGSRef->{"$attribute"} ) - and ( $ARGSRef->{"$attribute"} ne $object->$attribute() ) ) - { - $ARGSRef->{"$attribute"} =~ s/\r\n/\n/gs; + $value =~ s/\r\n/\n/gs; + + if ($value ne $object->$attribute()){ + + my $method = "Set$attribute"; + my ( $code, $msg ) = $object->$method($value); + + push @results, loc($attribute) . ': ' . loc_fuzzy($msg); +=for loc + "[_1] could not be set to [_2].", # loc + "That is already the current value", # loc + "No value sent to _Set!\n", # loc + "Illegal value for [_1]", # loc + "The new value has been set.", # loc + "No column specified", # loc + "Immutable field", # loc + "Nonexistant field?", # loc + "Invalid data", # loc + "Couldn't find row", # loc + "Missing a primary key?: [_1]", # loc + "Found Object", # loc +=cut + }; + } + return (@results); +} - my $method = "Set$attribute"; - my ( $code, $msg ) = $object->$method( $ARGSRef->{"$attribute"} ); - push @results, "$attribute: $msg"; - } +# }}} + +# {{{ Sub ProcessCustomFieldUpdates + +sub ProcessCustomFieldUpdates { + my %args = ( + CustomFieldObj => undef, + ARGSRef => undef, + @_ + ); + + my $Object = $args{'CustomFieldObj'}; + my $ARGSRef = $args{'ARGSRef'}; + + my @attribs = qw( Name Type Description Queue SortOrder); + my @results = UpdateRecordObject( + AttributesRef => \@attribs, + Object => $Object, + ARGSRef => $ARGSRef + ); + + if ( $ARGSRef->{ "CustomField-" . $Object->Id . "-AddValue-Name" } ) { + + my ( $addval, $addmsg ) = $Object->AddValue( + Name => + $ARGSRef->{ "CustomField-" . $Object->Id . "-AddValue-Name" }, + Description => $ARGSRef->{ "CustomField-" + . $Object->Id + . "-AddValue-Description" }, + SortOrder => $ARGSRef->{ "CustomField-" + . $Object->Id + . "-AddValue-SortOrder" }, + ); + push ( @results, $addmsg ); + } + my @delete_values = ( + ref $ARGSRef->{ 'CustomField-' . $Object->Id . '-DeleteValue' } eq + 'ARRAY' ) + ? @{ $ARGSRef->{ 'CustomField-' . $Object->Id . '-DeleteValue' } } + : ( $ARGSRef->{ 'CustomField-' . $Object->Id . '-DeleteValue' } ); + foreach my $id (@delete_values) { + next unless defined $id; + my ( $err, $msg ) = $Object->DeleteValue($id); + push ( @results, $msg ); } return (@results); } @@ -913,6 +982,7 @@ sub ProcessTicketBasics { Subject FinalPriority Priority + TimeEstimated TimeWorked TimeLeft Status @@ -934,7 +1004,7 @@ sub ProcessTicketBasics { ); # We special case owner changing, so we can use ForceOwnerChange - if ( $ARGSRef->{'Owner'} && ( $TicketObj->Owner ne $ARGSRef->{'Owner'} ) ) { + if ( $ARGSRef->{'Owner'} && ( $TicketObj->Owner != $ARGSRef->{'Owner'} ) ) { my ($ChownType); if ( $ARGSRef->{'ForceOwnerChange'} ) { $ChownType = "Force"; @@ -945,7 +1015,7 @@ sub ProcessTicketBasics { my ( $val, $msg ) = $TicketObj->SetOwner( $ARGSRef->{'Owner'}, $ChownType ); - push ( @results, "$msg" ); + push ( @results, $msg ); } # }}} @@ -955,6 +1025,142 @@ sub ProcessTicketBasics { # }}} +# {{{ Sub ProcessTicketCustomFieldUpdates + +sub ProcessTicketCustomFieldUpdates { + my %args = ( + ARGSRef => undef, + @_ + ); + + my @results; + + my $ARGSRef = $args{'ARGSRef'}; + + # Build up a list of tickets that we want to work with + my %tickets_to_mod; + my %custom_fields_to_mod; + foreach my $arg ( keys %{$ARGSRef} ) { + if ( $arg =~ /^Ticket-(\d+)-CustomField-(\d+)-/ ) { + + # For each of those tickets, find out what custom fields we want to work with. + $custom_fields_to_mod{$1}{$2} = 1; + } + } + + # For each of those tickets + foreach my $tick ( keys %custom_fields_to_mod ) { + my $Ticket = RT::Ticket->new( $session{'CurrentUser'} ); + $Ticket->Load($tick); + + # For each custom field + foreach my $cf ( keys %{ $custom_fields_to_mod{$tick} } ) { + + my $CustomFieldObj = RT::CustomField->new($session{'CurrentUser'}); + $CustomFieldObj->LoadById($cf); + + foreach my $arg ( keys %{$ARGSRef} ) { + # since http won't pass in a form element with a null value, we need + # to fake it + if ($arg =~ /^(.*?)-Values-Magic$/ ) { + # We don't care about the magic, if there's really a values element; + next if (exists $ARGSRef->{$1.'-Values'}) ; + + $arg = $1."-Values"; + $ARGSRef->{$1."-Values"} = undef; + + } + next unless ( $arg =~ /^Ticket-$tick-CustomField-$cf-/ ); + my @values = + ( ref( $ARGSRef->{$arg} ) eq 'ARRAY' ) + ? @{ $ARGSRef->{$arg} } + : ( $ARGSRef->{$arg} ); + if ( ( $arg =~ /-AddValue$/ ) || ( $arg =~ /-Value$/ ) ) { + foreach my $value (@values) { + next unless ($value); + my ( $val, $msg ) = $Ticket->AddCustomFieldValue( + Field => $cf, + Value => $value + ); + push ( @results, $msg ); + } + } + elsif ( $arg =~ /-DeleteValues$/ ) { + foreach my $value (@values) { + next unless ($value); + my ( $val, $msg ) = $Ticket->DeleteCustomFieldValue( + Field => $cf, + Value => $value + ); + push ( @results, $msg ); + } + } + elsif ( $arg =~ /-Values$/ and $CustomFieldObj->Type !~ /Entry/) { + my $cf_values = $Ticket->CustomFieldValues($cf); + + my %values_hash; + foreach my $value (@values) { + next unless ($value); + + # build up a hash of values that the new set has + $values_hash{$value} = 1; + + unless ( $cf_values->HasEntry($value) ) { + my ( $val, $msg ) = $Ticket->AddCustomFieldValue( + Field => $cf, + Value => $value + ); + push ( @results, $msg ); + } + + } + while ( my $cf_value = $cf_values->Next ) { + unless ( $values_hash{ $cf_value->Content } == 1 ) { + my ( $val, $msg ) = $Ticket->DeleteCustomFieldValue( + Field => $cf, + Value => $cf_value->Content + ); + push ( @results, $msg); + + } + + } + } + elsif ( $arg =~ /-Values$/ ) { + my $cf_values = $Ticket->CustomFieldValues($cf); + + # keep everything up to the point of difference, delete the rest + my $delete_flag; + foreach my $old_cf (@{$cf_values->ItemsArrayRef}) { + if (!$delete_flag and @values and $old_cf->Content eq $values[0]) { + shift @values; + next; + } + + $delete_flag ||= 1; + $old_cf->Delete; + } + + # now add/replace extra things, if any + foreach my $value (@values) { + my ( $val, $msg ) = $Ticket->AddCustomFieldValue( + Field => $cf, + Value => $value + ); + push ( @results, $msg ); + } + } + else { + push ( @results, "User asked for an unknown update type for custom field " . $cf->Name . " for ticket " . $Ticket->id ); + } + } + } + return (@results); + } +} + +# }}} + # {{{ sub ProcessTicketWatchers =head2 ProcessTicketWatchers ( TicketObj => $Ticket, ARGSRef => \%ARGS ); @@ -978,18 +1184,22 @@ sub ProcessTicketWatchers { foreach my $key ( keys %$ARGSRef ) { - # Delete deletable watchers - if ( ( $key =~ /^DelWatcher(\d*)$/ ) and ( $ARGSRef->{$key} ) ) { - my ( $code, $msg ) = $Ticket->DeleteWatcher($1); + # {{{ Delete deletable watchers + if ( ( $key =~ /^Ticket-DelWatcher-Type-(.*)-Principal-(\d+)$/ ) ) { + my ( $code, $msg ) = + $Ticket->DeleteWatcher(PrincipalId => $2, + Type => $1); push @results, $msg; } # Delete watchers in the simple style demanded by the bulk manipulator elsif ( $key =~ /^Delete(Requestor|Cc|AdminCc)$/ ) { - my ( $code, $msg ) = $Ticket->DeleteWatcher( $ARGSRef->{$key}, $1 ); + my ( $code, $msg ) = $Ticket->DeleteWatcher( Type => $ARGSRef->{$key}, PrincipalId => $1 ); push @results, $msg; } + # }}} + # Add new wathchers by email address elsif ( ( $ARGSRef->{$key} =~ /^(AdminCc|Cc|Requestor)$/ ) and ( $key =~ /^WatcherTypeEmail(\d*)$/ ) ) @@ -1014,12 +1224,11 @@ sub ProcessTicketWatchers { # Add new watchers by owner elsif ( ( $ARGSRef->{$key} =~ /^(AdminCc|Cc|Requestor)$/ ) - and ( $key =~ /^WatcherTypeUser(\d*)$/ ) ) - { + and ( $key =~ /^Ticket-AddWatcher-Principal-(\d*)$/ ) ) { #They're in this order because otherwise $1 gets clobbered :/ my ( $code, $msg ) = - $Ticket->AddWatcher( Type => $ARGSRef->{$key}, Owner => $1 ); + $Ticket->AddWatcher( Type => $ARGSRef->{$key}, PrincipalId => $1 ); push @results, $msg; } } @@ -1061,7 +1270,7 @@ sub ProcessTicketDates { ); #Run through each field in this list. update the value if apropriate - foreach $field (@date_fields) { + foreach my $field (@date_fields) { my ( $code, $msg ); my $DateObj = RT::Date->new( $session{'CurrentUser'} ); @@ -1098,11 +1307,9 @@ Returns an array of results messages. =cut sub ProcessTicketLinks { - my %args = ( - TicketObj => undef, - ARGSRef => undef, - @_ - ); + my %args = ( TicketObj => undef, + ARGSRef => undef, + @_ ); my $Ticket = $args{'TicketObj'}; my $ARGSRef = $args{'ARGSRef'}; @@ -1118,11 +1325,9 @@ sub ProcessTicketLinks { push @results, "Trying to delete: Base: $base Target: $target Type $type"; - my ( $val, $msg ) = $Ticket->DeleteLink( - Base => $base, - Type => $type, - Target => $target - ); + my ( $val, $msg ) = $Ticket->DeleteLink( Base => $base, + Type => $type, + Target => $target ); push @results, $msg; @@ -1133,26 +1338,23 @@ sub ProcessTicketLinks { my @linktypes = qw( DependsOn MemberOf RefersTo ); foreach my $linktype (@linktypes) { - - for my $luri ( split ( / /, $ARGSRef->{ $Ticket->Id . "-$linktype" } ) ) - { - $luri =~ s/\s*$//; # Strip trailing whitespace - my ( $val, $msg ) = $Ticket->AddLink( - Target => $luri, - Type => $linktype - ); - push @results, $msg; + if ( $ARGSRef->{ $Ticket->Id . "-$linktype" } ) { + for my $luri ( split ( / /, $ARGSRef->{ $Ticket->Id . "-$linktype" } ) ) { + $luri =~ s/\s*$//; # Strip trailing whitespace + my ( $val, $msg ) = $Ticket->AddLink( Target => $luri, + Type => $linktype ); + push @results, $msg; + } } + if ( $ARGSRef->{ "$linktype-" . $Ticket->Id } ) { - for my $luri ( split ( / /, $ARGSRef->{ "$linktype-" . $Ticket->Id } ) ) - { - my ( $val, $msg ) = $Ticket->AddLink( - Base => $luri, - Type => $linktype - ); + for my $luri ( split ( / /, $ARGSRef->{ "$linktype-" . $Ticket->Id } ) ) { + my ( $val, $msg ) = $Ticket->AddLink( Base => $luri, + Type => $linktype ); - push @results, $msg; - } + push @results, $msg; + } + } } #Merge if we need to @@ -1167,121 +1369,9 @@ sub ProcessTicketLinks { # }}} -# {{{ sub ProcessTicketObjectKeywords - -=head2 ProcessTicketObjectKeywords ( TicketObj => $Ticket, ARGSRef => \%ARGS ); - -Returns an array of results messages. - -=cut - -sub ProcessTicketObjectKeywords { - my %args = ( - TicketObj => undef, - ARGSRef => undef, - @_ - ); - - my $TicketObj = $args{'TicketObj'}; - my $ARGSRef = $args{'ARGSRef'}; - - my (@results); - - # {{{ set ObjectKeywords. - - my $KeywordSelects = $TicketObj->QueueObj->KeywordSelects; - - # iterate through all the keyword selects for this queue - while ( my $KeywordSelect = $KeywordSelects->Next ) { - - # {{{ do some setup - - # if we have KeywordSelectMagic for this keywordselect: - next - unless - defined $ARGSRef->{ 'KeywordSelectMagic' . $KeywordSelect->id }; - - # Lets get a hash of the possible values to work with - my $value = $ARGSRef->{ 'KeywordSelect' . $KeywordSelect->id } || []; - - #lets get all those values in a hash. regardless of # of entries - #we'll use this for adding and deleting keywords from this object. - my %values = map { $_ => 1 } ref($value) ? @{$value} : ($value); - - # Load up the ObjectKeywords for this KeywordSelect for this ticket - my $ObjectKeys = $TicketObj->KeywordsObj( $KeywordSelect->id ); - - # }}} - # {{{ add new keywords - - foreach my $key ( keys %values ) { - - #unless the ticket has that keyword for that keyword select, - unless ( $ObjectKeys->HasEntry($key) ) { - - #Add the keyword - my ( $result, $msg ) = $TicketObj->AddKeyword( - Keyword => $key, - KeywordSelect => $KeywordSelect->id - ); - push ( @results, $msg ); - } - } - - # }}} - # {{{ Delete unused keywords - - #redo this search, so we don't ask it to delete things that are already gone - # such as when a single keyword select gets its value changed. - $ObjectKeys = $TicketObj->KeywordsObj( $KeywordSelect->id ); - - while ( my $TicketKey = $ObjectKeys->Next ) { - - # if the hash defined above doesn\'t contain the keyword mentioned, - unless ( $values{ $TicketKey->Keyword } ) { - - #I'd really love to just call $keyword->Delete, but then - # we wouldn't get a transaction recorded - my ( $result, $msg ) = $TicketObj->DeleteKeyword( - Keyword => $TicketKey->Keyword, - KeywordSelect => $KeywordSelect->id - ); - push ( @results, $msg ); - } - } - - # }}} - } - - #Iterate through the keyword selects for BulkManipulator style access - while ( my $KeywordSelect = $KeywordSelects->Next ) { - if ( $ARGSRef->{ "AddToKeywordSelect" . $KeywordSelect->Id } ) { - - #Add the keyword - my ( $result, $msg ) = $TicketObj->AddKeyword( - Keyword => - $ARGSRef->{ "AddToKeywordSelect" . $KeywordSelect->Id }, - KeywordSelect => $KeywordSelect->id - ); - push ( @results, $msg ); - } - if ( $ARGSRef->{ "DeleteFromKeywordSelect" . $KeywordSelect->Id } ) { - - #Delete the keyword - my ( $result, $msg ) = $TicketObj->DeleteKeyword( - Keyword => - $ARGSRef->{ "DeleteFromKeywordSelect" . $KeywordSelect->Id }, - KeywordSelect => $KeywordSelect->id - ); - push ( @results, $msg ); - } - } - - # }}} - - return (@results); -} - -# }}} +eval "require RT::Interface::Web_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Web_Vendor.pm}); +eval "require RT::Interface::Web_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Web_Local.pm}); 1; diff --git a/rt/lib/RT/Keyword.pm b/rt/lib/RT/Keyword.pm deleted file mode 100644 index a41e0a585..000000000 --- a/rt/lib/RT/Keyword.pm +++ /dev/null @@ -1,446 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Keyword.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - -=head1 NAME - - RT::Keyword - Manipulate an RT::Keyword record - -=head1 SYNOPSIS - - use RT::Keyword; - - my $keyword = RT::Keyword->new($CurrentUser); - $keyword->Create( Name => 'tofu', - Description => 'fermented soy beans', - ); - - - my $keyword2 = RT::Keyword->new($CurrentUser); - $keyword2->Create( Name => 'beast', - Description => 'a wild animal', - Parent => $keyword->id(), - ); - -=head1 DESCRIPTION - -An B<RT::Keyword> object is an arbitrary string. - -=head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Scrip); - -=end testing - - -=cut -package RT::Keyword; - -use strict; -use vars qw(@ISA); -use Tie::IxHash; -use RT::Record; -use RT::Keywords; - -@ISA = qw(RT::Record); - -# {{{ Core methods - -sub _Init { - my $self = shift; - $self->{'table'} = "Keywords"; - $self->SUPER::_Init(@_); -} - -sub _Accessible { - my $self = shift; - my %cols = ( - Name => 'read/write', #the keyword itself - Description => 'read/write', #a description of the keyword - Parent => 'read/write', #optional id of another B<RT::Keyword>, allowing keywords to be arranged hierarchically - Disabled => 'read/write' - ); - return ($self->SUPER::_Accessible( @_, %cols)); - -} - -# }}} - - -=over 4 - -=item new CURRENT_USER - -Takes a single argument, an RT::CurrentUser object. Instantiates a new -(uncreated) RT::Keyword object. - -=cut - -# {{{ sub Create - -=item Create KEY => VALUE, ... - -Takes a list of key/value pairs and creates a the object. Returns the id of -the newly created record, or false if there was an error. - -Keys are: - -Name - the keyword itself -Description - (not yet used) -Parent - optional link to another B<RT::Keyword>, allowing keyword to be arranged in a hierarchical fashion. Can be specified by id or Name. - -=cut - -sub Create { - my $self = shift; - my %args = (Name => undef, - Description => undef, - Parent => 0, - @_); - - unless ($self->CurrentUserHasRight('AdminKeywords')) { - return (0, 'Permission Denied'); - } - - if ( $args{'Parent'} && $args{'Parent'} !~ /^\d+$/ ) { - $RT::Logger->err( "can't yet specify parents by name, sorry: ". $args{'Parent'}); - return(0,'Parent must be specified by id'); - } - - my $val = $self->SUPER::Create(Name => $args{'Name'}, - Description => $args{'Description'}, - Parent => $args{'Parent'} - ); - if ($val) { - return ($val, 'Keyword created'); - } - else { - return(0,'Could not create keyword'); - } -} - -# }}} - -# {{{ sub Delete - -sub Delete { - my $self = shift; - - return (0, 'Deleting this object would break referential integrity.'); -} - -# }}} - -# {{{ sub LoadByPath - -=head2 LoadByPath STRING - -LoadByPath takes a string. Whatever character starts the string is assumed to be a delimter. The routine parses the keyword path description and tries to load the keyword -described by that path. It returns a numerical status and a textual message. -A non-zero status means 'Success'. - -=cut - -sub LoadByPath { - my $self = shift; - - my $path = shift; - - my $delimiter = substr($path,0,1); - my @path_elements = split($delimiter, $path); - - #throw awya the first bogus path element - shift @path_elements; - - my $parent = 0; - my ($tempkey); - #iterate through all the path elements loading up a - #keyword object. when we're done, this object becomes - #whatever the last tempkey object was. - while (my $name = shift @path_elements) { - - $tempkey = new RT::Keyword($self->CurrentUser); - - my $loaded = $tempkey->LoadByNameAndParentId($name, $parent); - - #Set the new parent for loading its child. - $parent = $tempkey->Id; - - #If the parent Id is 0, then we're not recursing through the tree - # time to bail - return (0, "Couldn't find keyword") unless ($tempkey->id()); - - } - #Now that we're through with the loop, the last keyword loaded - # is the the one we wanted. - # we shouldn't need to explicitly load it like this. but we do. Thanks SQL - - $self->Load($tempkey->Id); - - return (1, 'Keyword loaded'); -} - - -# }}} - -# {{{ sub LoadByNameAndParentId - -=head2 LoadByNameAndParentId NAME PARENT_ID - -Takes two arguments, a keyword name and a parent id. Loads a keyword into - the current object. - -=cut - -sub LoadByNameAndParentId { - my $self = shift; - my $name = shift; - my $parentid = shift; - - my $val = $self->LoadByCols( Name => $name, Parent => $parentid); - if ($self->Id) { - return ($self->Id, 'Keyword loaded'); - } - else { - return (0, 'Keyword could not be found'); - } - } - -# }}} - - -# {{{ sub Load - -=head2 Load KEYWORD - -Loads KEYWORD, either by id if it's an integer or by Path, otherwise - -=cut - -sub Load { - my $self = shift; - my $id = shift; - - if (!$id) { - return (0, 'No keyword defined'); - } - if ($id =~ /^(\d+)$/) { - return ($self->SUPER::Load($id)); - } - else { - return($self->LoadByPath($id)); - } -} - - -# }}} - -# {{{ sub Path - -=item Path - - Returns this Keyword's full path going back to the root. (eg /OS/Unix/Linux/Redhat if -this keyword is "Redhat" ) - -=cut - -sub Path { - my $self = shift; - - if ($self->Parent == 0) { - return ("/".$self->Name); - } - else { - return ( $self->ParentObj->Path . "/" . $self->Name); - } - -} - -# }}} - -# {{{ sub RelativePath - -=head2 RelativePath KEYWORD_OBJ - -Takes a keyword object. Returns this keyword's path relative to that -keyword. - -=item Bugs - -Currently assumes that the "other" keyword is a predecessor of this keyword - -=cut - -sub RelativePath { - my $self = shift; - my $OtherKey = shift; - - my $OtherPath = $OtherKey->Path(); - my $MyPath = $self->Path; - $MyPath =~ s/^$OtherPath\///g; - return ($MyPath); -} - - -# }}} - -# {{{ sub ParentObj - -=item ParentObj - - Returns an RT::Keyword object of this Keyword's 'parents' - -=cut - -sub ParentObj { - my $self = shift; - - my $ParentObj = new RT::Keyword($self->CurrentUser); - $ParentObj->Load($self->Parent); - return ($ParentObj); -} - -# }}} - -# {{{ sub Children - -=item Children - -Return an RT::Keywords object this Object's children. - -=cut - -sub Children { - my $self = shift; - - my $Children = new RT::Keywords($self->CurrentUser); - $Children->LimitToParent($self->id); - return ($Children); -} - -# }}} - -# {{{ sub Descendents - -=item Descendents [ NUM_GENERATIONS [ EXCLUDE_HASHREF ] ] - -Returns an ordered (see L<Tie::IxHash>) hash reference of the descendents of -this keyword, possibly limited to a given number of generations. The keys -are B<RT::Keyword> I<id>s, and the values are strings containing the I<Name>s -of those B<RT::Keyword>s. - -=cut - -sub Descendents { - my $self = shift; - my $generations = shift || 0; - my $exclude = shift || {}; - my %results; - - - tie %results, 'Tie::IxHash'; - my $Keywords = new RT::Keywords($self->CurrentUser); - $Keywords->LimitToParent($self->id || 0 ); #If we have no id, start at the top - - while ( my $Keyword = $Keywords->Next ) { - - next if defined $exclude->{ $Keyword->id }; - $results{ $Keyword->id } = $Keyword->Name; - - if ( $generations == 0 || $generations > 1 ) { - #if we're limiting to some number of generations, - # decrement the number of generations - - my $nextgen = $generations; - $nextgen-- if ( $nextgen > 1 ); - - my $kids = $Keyword->Descendents($nextgen, \%results); - - foreach my $kid ( keys %{$kids}) { - $results{"$kid"} = $Keyword->Name. "/". $kids->{"$kid"}; - } - } - } - return(\%results); -} - -# }}} - -# {{{ ACL related methods - -# {{{ sub _Set - -# does an acl check and then passes off the call -sub _Set { - my $self = shift; - - unless ($self->CurrentUserHasRight('AdminKeywords')) { - return (0,'Permission Denied'); - } - return $self->SUPER::_Set(@_); -} - -# }}} - -# {{{ sub CurrentUserHasRight - -=head2 CurrentUserHasRight - -Helper menthod for HasRight. Presets Principal to CurrentUser then -calls HasRight. - -=cut - -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - return ($self->HasRight( Principal => $self->CurrentUser->UserObj, - Right => $right )); - -} - -# }}} - -# {{{ sub HasRight - -=head2 HasRight - -Takes a param-hash consisting of "Right" and "Principal" Principal is -an RT::User object or an RT::CurrentUser object. "Right" is a textual -Right string that applies to Keywords. - -=cut - -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => undef, - @_ ); - - return( $args{'Principal'}->HasSystemRight( $args{'Right'}) ); - -} -# }}} - -# }}} - -=back - -=head1 AUTHOR - -Ivan Kohler <ivan-rt@420.am> - -=head1 BUGS - -Yes. - -=head1 SEE ALSO - -L<RT::Keywords>, L<RT::ObjectKeyword>, L<RT::ObjectKeywords>, L<RT::Ticket>, -L<RT::Record> - -[A=cut - -1; - diff --git a/rt/lib/RT/KeywordSelect.pm b/rt/lib/RT/KeywordSelect.pm deleted file mode 100644 index 6865216fd..000000000 --- a/rt/lib/RT/KeywordSelect.pm +++ /dev/null @@ -1,452 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/KeywordSelect.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - -package RT::KeywordSelect; - -use strict; -use vars qw(@ISA); -use RT::Record; -use RT::Keyword; - -@ISA = qw(RT::Record); - -# {{{ POD - -=head1 NAME - - RT::KeywordSelect - Manipulate an RT::KeywordSelect record - -=head1 SYNOPSIS - - use RT::KeywordSelect; - - my $keyword_select = RT::KeywordSelect->new($CurrentUser); - $keyword_select->Create( - Keyword => 20, - ObjectType => 'Ticket', - Name => 'Choices' - ); - - my $keyword_select = RT::KeywordSelect->new($CurrentUser); - $keyword_select->Create( - Name => 'Choices', - Keyword => 20, - ObjectType => 'Ticket', - ObjectField => 'Queue', - ObjectValue => 1, - Single => 1, - Depth => 4, - ); - -=head1 DESCRIPTION - -An B<RT::KeywordSelect> object is a link between a Keyword and a object -type (one of: Ticket), titled by the I<Name> field of the B<RT::Keyword> such -that: - -=over 4 - -=item Object display will contain a field, titled with the I<Name> field and - showing any descendent keywords which are related to this object via the - B<RT::ObjectKeywords> table. - -=item Object creation for this object will contain a field titled with the - I<Name> field and containing the descendents of the B<RT::Keyword> as - choices. If the I<Single> field of this B<RT::KeywordSelect> is true, each - object must be associated (via an B<RT::ObjectKeywords> record) to a single - descendent. If the I<Single> field is false, each object may be connect to - zero, one, or many descendents. - -=item Searches for this object type will contain a selection field titled with - the I<Name> field and containing the descendents of the B<RT::Keyword> as - choices. - -=item If I<ObjectField> is defined (one of: Queue), all of the above apply only - when the value of I<ObjectField> (Queue) in B<ObjectType> (Ticket) matches - I<ObjectValue>. - -=back - - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::KeywordSelects); - -=end testing - - -=head1 METHODS - - -=cut - - -=over 4 - -=item new CURRENT_USER - -Takes a single argument, an RT::CurrentUser object. Instantiates a new -(uncreated) RT::KeywordSelect object. - -=cut -# }}} - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "KeywordSelects"; - $self->SUPER::_Init(@_); -} -# }}} - -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - Name => 'read/write', - Keyword => 'read/write', # link to Keywords. Can be specified by id - Single => 'read/write', # bool (described below) - - Depth => 'read/write', #- If non-zero, limits the descendents to this number of levels deep. - ObjectType => 'read/write', # currently only C<Ticket> - ObjectField => 'read/write', #optional, currently only C<Queue> - ObjectValue => 'read/write', #constrains KeywordSelect function to when B<ObjectType>.I<ObjectField> equals I<ObjectValue> - Disabled => 'read/write' - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} -# }}} - -# {{{ sub LoadByName - -=head2 LoadByName( Name => [NAME], Queue => [QUEUE_ID]) -. Takes a queue id and a keyword select name. - tries to load the keyword select for that queue. if that fails, it tries to load it - without a queue specified. - -=cut - - -sub LoadByName { - my $self = shift; - my %args = ( Name => undef, - Queue => undef, - @_ - ); - if ($args{'Queue'}) { - #Try to get the keyword select for this queue - $self->LoadByCols( Name => $args{'Name'}, - ObjectType => 'Ticket', - ObjectField => 'Queue', - ObjectValue => $args{'Queue'}); - } - unless ($self->Id) { #if that failed to load an object - #Try to get the keyword select of that name that's global - $self->LoadByCols( Name => $args{'Name'}, - ObjectType => 'Ticket', - ObjectField => 'Queue', - ObjectValue => '0'); - } - - return($self->Id); - -} - -# }}} - -# {{{ sub Create -=item Create KEY => VALUE, ... - -Takes a list of key/value pairs and creates a the object. Returns the id of -the newly created record, or false if there was an error. - -Keys are: - -Keyword - link to Keywords. Can be specified by id. -Name - A name for this KeywordSelect -Single - bool (described above) -Depth - If non-zero, limits the descendents to this number of levels deep. -ObjectType - currently only C<Ticket> -ObjectField - optional, currently only C<Queue> -ObjectValue - constrains KeywordSelect function to when B<ObjectType>.I<ObjectField> equals I<ObjectValue> - -=cut - -sub Create { - my $self = shift; - my %args = ( Keyword => undef, - Single => 1, - Depth => 0, - Name => undef, - ObjectType => undef, - ObjectField => undef, - ObjectValue => undef, - @_); - - #If we're talking about a keyword select based on a ticket's 'Queue' field - if ( ($args{'ObjectField'} eq 'Queue') and - ($args{'ObjectType'} eq 'Ticket')) { - - #If we're talking about a keywordselect for all queues - if ($args{'ObjectValue'} == 0) { - unless( $self->CurrentUserHasSystemRight('AdminKeywordSelects')) { - return (0, 'Permission Denied'); - } - } - #otherwise, we're talking about a keywordselect for a specific queue - else { - unless ($self->CurrentUserHasQueueRight( Right => 'AdminKeywordSelects', - Queue => $args{'ObjectValue'})) { - return (0, 'Permission Denied'); - } - } - } - else { - return (0, "Can't create a KeywordSelect for that object/field combo"); - } - - my $Keyword = new RT::Keyword($self->CurrentUser); - - if ( $args{'Keyword'} && $args{'Keyword'} !~ /^\d+$/ ) { - $Keyword->LoadByPath($args{'Keyword'}); - } - else { - $Keyword->Load($args{'Keyword'}); - } - - unless ($Keyword->Id) { - $RT::Logger->debug("Keyword ".$args{'Keyword'} ." not found\n"); - return(0, 'Keyword not found'); - } - - $args{'Name'} = $Keyword->Name if (!$args{'Name'}); - - my $val = $self->SUPER::Create( Name => $args{'Name'}, - Keyword => $Keyword->Id, - Single => $args{'Single'}, - Depth => $args{'Depth'}, - ObjectType => $args{'ObjectType'}, - ObjectField => $args{'ObjectField'}, - ObjectValue => $args{'ObjectValue'}); - if ($val) { - return ($val, 'KeywordSelect Created'); - } - else { - return (0, 'System error. KeywordSelect not created'); - - } -} -# }}} - -# {{{ sub Delete - -sub Delete { - my $self = shift; - - return (0, 'Deleting this object would break referential integrity.'); -} - -# }}} - - -# {{{ sub SetDisabled - -=head2 Sub SetDisabled - -Toggles the KeywordSelect's disabled flag. - - -=cut - -sub SetDisabled { - my $self = shift; - my $value = shift; - - unless ($self->CurrentUserHasRight('AdminKeywordSelects')) { - return (0, "Permission Denied"); - } - return($self->_Set(Field => 'Disabled', Value => $value)); -} - -# }}} - -# {{{ sub KeywordObj - -=item KeywordObj - -Returns the B<RT::Keyword> referenced by the I<Keyword> field. - -=cut - -sub KeywordObj { - my $self = shift; - - my $Keyword = new RT::Keyword($self->CurrentUser); - $Keyword->Load( $self->Keyword ); #or ? - return($Keyword); -} -# }}} - -# {{{ sub Object - -=item Object - -Returns the object (currently only RT::Queue) specified by ObjectField and ObjectValue. - -=cut - -sub Object { - my $self = shift; - if ( $self->ObjectField eq 'Queue' ) { - my $Queue = new RT::Queue($self->CurrentUser); - $Queue->Load( $self->ObjectValue ); - return ($Queue); - } else { - $RT::Logger->error("$self trying to load an object value for a non-queue object"); - return (undef); - } -} - -# }}} - -# {{{ sub _Set - -# does an acl check, then passes off the call -sub _Set { - my $self = shift; - - unless ($self->CurrentUserHasRight('AdminKeywordSelects')) { - return (0, "Permission Denied"); - } - - return ($self->SUPER::_Set(@_)); - -} - -# }}} - - -# {{{ sub CurrentUserHasQueueRight - -=head2 CurrentUserHasQueueRight ( Queue => QUEUEID, Right => RIGHTNANAME ) - -Check to see whether the current user has the specified right for the specified queue. - -=cut - -sub CurrentUserHasQueueRight { - my $self = shift; - my %args = (Queue => undef, - Right => undef, - @_ - ); - return ($self->HasRight( Right => $args{'Right'}, - Principal => $self->CurrentUser->UserObj, - Queue => $args{'Queue'})); -} - -# }}} - -# {{{ sub CurrentUserHasSystemRight - -=head2 CurrentUserHasSystemRight RIGHTNAME - -Check to see whether the current user has the specified right for the 'system' scope. - -=cut - -sub CurrentUserHasSystemRight { - my $self = shift; - my $right = shift; - $RT::Logger->debug("$self in hashsysright for right $right\n"); - return ($self->HasRight( Right => $right, - System => 1, - Principal => $self->CurrentUser->UserObj)); -} - -# }}} - -# {{{ sub CurrentUserHasRight - -=item CurrentUserHasRight RIGHT [QUEUEID] - -Takes a rightname as a string. Can take a queue id as a second -optional parameter, which can be useful to a routine like create. -Helper menthod for HasRight. Presets Principal to CurrentUser then -calls HasRight. - -=cut - -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - return ($self->HasRight( Principal => $self->CurrentUser->UserObj, - Right => $right, - )); -} - -# }}} - -# {{{ sub HasRight - -=item HasRight - -Takes a param-hash consisting of "Right" and "Principal" Principal is -an RT::User object or an RT::CurrentUser object. "Right" is a textual -Right string that applies to KeywordSelects - -=cut - -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => undef, - Queue => undef, - System => undef, - @_ ); - - #If we're explicitly specifying a queue, as we need to do on create - if ($args{'Queue'}) { - return ($args{'Principal'}->HasQueueRight(Right => $args{'Right'}, - Queue => $args{'Queue'})); - } - #else if we're specifying to check a system right - elsif ($args{'System'}) { - return( $args{'Principal'}->HasSystemRight( $args{'Right'} )); - } - - #else if we 're using the object's queue - elsif (($self->__Value('ObjectField') eq 'Queue') and - ($self->__Value('ObjectValue') > 0 )) { - return ($args{'Principal'}->HasQueueRight(Right => $args{'Right'}, - Queue => $self->__Value('ObjectValue') )); - } - - #If the object is system scoped. - else { - return( $args{'Principal'}->HasSystemRight( $args{'Right'} )); - } -} - -# }}} - -=back - -=head1 AUTHORS - -Ivan Kohler <ivan-rt@420.am>, Jesse Vincent <jesse@fsck.com> - -=head1 BUGS - -The ACL system for this object is more byzantine than it should be. reworking it eventually -would be a good thing. - -=head1 SEE ALSO - -L<RT::KeywordSelects>, L<RT::Keyword>, L<RT::Keywords>, L<RT::ObjectKeyword>, -L<RT::ObjectKeywords>, L<RT::Record> - -=cut - -1; - diff --git a/rt/lib/RT/KeywordSelects.pm b/rt/lib/RT/KeywordSelects.pm deleted file mode 100644 index c220b39f9..000000000 --- a/rt/lib/RT/KeywordSelects.pm +++ /dev/null @@ -1,143 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/KeywordSelects.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - - - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Scrip); - -=end testing - -=cut - - -package RT::KeywordSelects; - -use strict; -use vars qw( @ISA ); -use RT::EasySearch; -use RT::KeywordSelect; - -@ISA = qw( RT::EasySearch ); - -# {{{ _Init -sub _Init { - my $self = shift; - $self->{'table'} = 'KeywordSelects'; - $self->{'primary_key'} = 'id'; - return ($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub _DoSearch - -=head2 _DoSearch - - A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless -we're explicitly trying to see them. - -=cut - -sub _DoSearch { - my $self = shift; - - #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. - unless($self->{'find_disabled_rows'}) { - $self->LimitToEnabled(); - } - - return($self->SUPER::_DoSearch(@_)); - -} - -# }}} - -# {{{ sub LimitToQueue -=head2 LimitToQueue - -Takes a queue id. Limits the returned set to KeywordSelects for that queue. -Repeated calls will be OR'd together. - -=cut - -sub LimitToQueue { - my $self = shift; - my $queue = shift; - - $self->Limit( FIELD => 'ObjectValue', - VALUE => $queue, - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR' - ); - - $self->Limit( FIELD => 'ObjectType', - VALUE => 'Ticket', - OPERATOR => '='); - - $self->Limit( FIELD => 'ObjectField', - VALUE => 'Queue', - OPERATOR => '='); - - -} -# }}} - -# {{{ sub LimitToGlobals - -=head2 LimitToGlobals - -Limits the returned set to KeywordSelects for all queues. -Repeated calls will be OR'd together. - -=cut - -sub LimitToGlobals { - my $self = shift; - - $self->Limit( FIELD => 'ObjectType', - VALUE => 'Ticket', - OPERATOR => '='); - - $self->Limit( FIELD => 'ObjectField', - VALUE => 'Queue', - OPERATOR => '='); - - $self->Limit( FIELD => 'ObjectValue', - VALUE => '0', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR' - ); - -} -# }}} - -# {{{ sub IncludeGlobals -=head2 IncludeGlobals - -Include KeywordSelects which apply globally in the set of returned results - -=cut - - -sub IncludeGlobals { - my $self = shift; - $self->Limit( FIELD => 'ObjectValue', - VALUE => '0', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR' - ); - - -} -# }}} - -# {{{ sub NewItem -sub NewItem { - my $self = shift; - #my $Handle = shift; - return (new RT::KeywordSelect($self->CurrentUser)); -} -# }}} -1; - diff --git a/rt/lib/RT/Keywords.pm b/rt/lib/RT/Keywords.pm deleted file mode 100644 index a9ecda2bc..000000000 --- a/rt/lib/RT/Keywords.pm +++ /dev/null @@ -1,106 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Keywords.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - -=head1 NAME - - RT::Keywords - a collection of RT::Keyword objects - -=head1 SYNOPSIS - - use RT::Keywords; - my $keywords = RT::Keywords->new($user); - $keywords->LimitToParent(0); - while my ($keyword = $keywords->Next()) { - print $keyword->Name ."\n"; - } - - -=head1 DESCRIPTION - - -=head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Keywords); - -=end testing - -=cut - -package RT::Keywords; - -use strict; -use vars qw( @ISA ); -use RT::EasySearch; -use RT::Keyword; - -@ISA = qw( RT::EasySearch ); - - -# {{{ sub _Init - -sub _Init { - my $self = shift; - $self->{'table'} = 'Keywords'; - $self->{'primary_key'} = 'id'; - - # By default, order by name - $self->OrderBy( ALIAS => 'main', - FIELD => 'Name', - ORDER => 'ASC'); - - return ($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub _DoSearch - -=head2 _DoSearch - - A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless -we're explicitly trying to see them. - -=cut - -sub _DoSearch { - my $self = shift; - - #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. - unless($self->{'find_disabled_rows'}) { - $self->LimitToEnabled(); - } - - return($self->SUPER::_DoSearch(@_)); - -} - -# }}} - -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return (RT::Keyword->new($self->CurrentUser)); -} -# }}} - -# {{{ sub LimitToParent - -=head2 LimitToParent - -Takes a parent id and limits the returned keywords to children of that parent. - -=cut - -sub LimitToParent { - my $self = shift; - my $parent = shift; - $self->Limit( FIELD => 'Parent', - VALUE => $parent, - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR' ); -} -# }}} - -1; - diff --git a/rt/lib/RT/Link.pm b/rt/lib/RT/Link.pm index 885ffe3ed..962c378a8 100644 --- a/rt/lib/RT/Link.pm +++ b/rt/lib/RT/Link.pm @@ -1,373 +1,302 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Link.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-1999 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Link - an RT Link object +RT::Link -=head1 SYNOPSIS - use RT::Link; +=head1 SYNOPSIS =head1 DESCRIPTION -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in Ticket other similar objects. - =head1 METHODS +=cut -=begin testing +package RT::Link; +use RT::Record; -ok (require RT::TestHarness); -ok (require RT::Link); -=end testing +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -=cut +sub _Init { + my $self = shift; -package RT::Link; -use RT::Record; -use Carp; -@ISA= qw(RT::Record); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Links"; - return ($self->SUPER::_Init(@_)); + $self->Table('Links'); + $self->SUPER::_Init(@_); } -# }}} -# {{{ sub Create -=head2 Create PARAMHASH -Create a new link object. Takes 'Base', 'Target' and 'Type'. -Returns undef on failure or a Link Id on success. + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(240) 'Base'. + varchar(240) 'Target'. + varchar(20) 'Type'. + int(11) 'LocalTarget'. + int(11) 'LocalBase'. =cut -sub Create { + + + +sub Create { my $self = shift; - my %args = ( Base => undef, - Target => undef, - Type => undef, - @_ # get the real argumentlist - ); - - my $BaseURI = $self->CanonicalizeURI($args{'Base'}); - my $TargetURI = $self->CanonicalizeURI($args{'Target'}); - - unless (defined $BaseURI) { - $RT::Logger->warning ("$self couldn't resolve base:'".$args{'Base'}. - "' into a URI\n"); - return (undef); - } - unless (defined $TargetURI) { - $RT::Logger->warning ("$self couldn't resolve target:'".$args{'Target'}. - "' into a URI\n"); - return(undef); - } - - my $LocalBase = $self->_IsLocal($BaseURI); - my $LocalTarget = $self->_IsLocal($TargetURI); - my $id = $self->SUPER::Create(Base => "$BaseURI", - Target => "$TargetURI", - LocalBase => $LocalBase, - LocalTarget => $LocalTarget, - Type => $args{'Type'}); - return ($id); + my %args = ( + Base => '', + Target => '', + Type => '', + LocalTarget => '0', + LocalBase => '0', + + @_); + $self->SUPER::Create( + Base => $args{'Base'}, + Target => $args{'Target'}, + Type => $args{'Type'}, + LocalTarget => $args{'LocalTarget'}, + LocalBase => $args{'LocalBase'}, +); + } -# }}} - -# {{{ sub Load -=head2 Load - Load an RT::Link object from the database. Takes one parameter or three. - One parameter is the id of an entry in the links table. Three parameters are a tuple of (base, linktype, target); +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) =cut -sub Load { - my $self = shift; - my $identifier = shift; - my $linktype = shift if (@_); - my $target = shift if (@_); - - if ($target) { - my $BaseURI = $self->CanonicalizeURI($identifier); - my $TargetURI = $self->CanonicalizeURI($target); - $self->LoadByCols( Base => $BaseURI, - Type => $linktype, - Target => $TargetURI - ) || return (0, "Couldn't load link"); - } - - elsif ($identifier =~ /^\d+$/) { - $self->LoadById($identifier) || - return (0, "Couldn't load link"); - } - else { - return (0, "That's not a numerical id"); - } -} -# }}} +=item Base -# {{{ sub TargetObj +Returns the current value of Base. +(In the database, Base is stored as varchar(240).) -=head2 TargetObj -=cut -sub TargetObj { - my $self = shift; - return $self->_TicketObj('base',$self->Target); -} -# }}} +=item SetBase VALUE + -# {{{ sub BaseObj +Set Base to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Base will be stored as a varchar(240).) -=head2 BaseObj =cut -sub BaseObj { - my $self = shift; - return $self->_TicketObj('target',$self->Base); -} -# }}} - -# {{{ sub _TicketObj -sub _TicketObj { - my $self = shift; - my $name = shift; - my $ref = shift; - my $tag="$name\_obj"; - - unless (exists $self->{$tag}) { - - $self->{$tag}=RT::Ticket->new($self->CurrentUser); - - #If we can get an actual ticket, load it up. - if ($self->_IsLocal($ref)) { - $self->{$tag}->Load($ref); - } - } - return $self->{$tag}; -} -# }}} - -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - LocalBase => 'read', - LocalTarget => 'read', - Base => 'read', - Target => 'read', - Type => 'read', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} -# }}} +=item Target -# Static methods: +Returns the current value of Target. +(In the database, Target is stored as varchar(240).) -# {{{ sub BaseIsLocal -=head2 BaseIsLocal -Returns true if the base of this link is a local ticket +=item SetTarget VALUE + + +Set Target to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Target will be stored as a varchar(240).) + =cut -sub BaseIsLocal { - my $self = shift; - return $self->_IsLocal($self->Base); -} -# }}} +=item Type -# {{{ sub TargetIsLocal +Returns the current value of Type. +(In the database, Type is stored as varchar(20).) -=head2 TargetIsLocal -Returns true if the target of this link is a local ticket + +=item SetType VALUE + + +Set Type to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Type will be stored as a varchar(20).) + =cut -sub TargetIsLocal { - my $self = shift; - return $self->_IsLocal($self->Target); -} -# }}} +=item LocalTarget + +Returns the current value of LocalTarget. +(In the database, LocalTarget is stored as int(11).) + + + +=item SetLocalTarget VALUE -# {{{ sub _IsLocal -=head2 _IsLocal URI +Set LocalTarget to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, LocalTarget will be stored as a int(11).) -When handed a URI returns the local ticket id if it\'s local. otherwise returns undef. =cut -sub _IsLocal { - my $self = shift; - my $URI=shift; - unless ($URI) { - $RT::Logger->warning ("$self _IsLocal called without a URI\n"); - return (undef); - } - # TODO: More thorough check - if ($URI =~ /^$RT::TicketBaseURI(\d+)$/) { - return($1); - } - else { - return (undef); - } -} -# }}} + +=item LocalBase + +Returns the current value of LocalBase. +(In the database, LocalBase is stored as int(11).) + -# {{{ sub BaseAsHREF +=item SetLocalBase VALUE -=head2 BaseAsHREF -Returns an HTTP url to access the base of this link +Set LocalBase to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, LocalBase will be stored as a int(11).) + =cut -sub BaseAsHREF { - my $self = shift; - return $self->AsHREF($self->Base); -} -# }}} -# {{{ sub TargetAsHREF +=item LastUpdatedBy -=head2 TargetAsHREF +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) -return an HTTP url to access the target of this link =cut -sub TargetAsHREF { - my $self = shift; - return $self->AsHREF($self->Target); -} -# }}} -# {{{ sub AsHREF - Converts Link URIs to HTTP URLs -=head2 URI +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) -Takes a URI and returns an http: url to access that object. =cut -sub AsHREF { - my $self=shift; - my $URI=shift; - if ($self->_IsLocal($URI)) { - my $url=$RT::WebURL . "Ticket/Display.html?id=$URI"; - return($url); - } - else { - my ($protocol) = $URI =~ m|(.*?)://|; - unless (exists $RT::URI2HTTP{$protocol}) { - $RT::Logger->warning("Linking for protocol $protocol not defined in the config file!"); - return(""); - } - return $RT::URI2HTTP{$protocol}->($URI); - } -} -# }}} - -# {{{ sub GetContent - gets the content from a link -sub GetContent { - my ($self, $URI)= @_; - if ($self->_IsLocal($URI)) { - die "stub"; - } else { - # Find protocol - if ($URI =~ m|^(.*?)://|) { - if (exists $RT::ContentFromURI{$1}) { - return $RT::ContentFromURI{$1}->($URI); - } else { - warn "No sub exists for fetching the content from a $1 in $URI"; - } - } else { - warn "No protocol specified in $URI"; - } - } -} -# }}} -# {{{ sub CanonicalizeURI +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) -=head2 CanonicalizeURI -Takes a single argument: some form of ticket identifier. -Returns its canonicalized URI. +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) -Bug: ticket aliases can't have :// in them. URIs must have :// in them. =cut -sub CanonicalizeURI { - my $self = shift; - my $id = shift; - - - #If it's a local URI, load the ticket object and return its URI - if ($id =~ /^$RT::TicketBaseURI/) { - my $ticket = new RT::Ticket($self->CurrentUser); - $ticket->Load($id); - #If we couldn't find a ticket, return undef. - return undef unless (defined $ticket->Id); - #$RT::Logger->debug("$self -> CanonicalizeURI was passed $id and returned ".$ticket->URI ." (uri)\n"); - return ($ticket->URI); - } - #If it's a remote URI, we're going to punt for now - elsif ($id =~ '://' ) { - return ($id); - } - - #If the base is an integer, load it as a ticket - elsif ( $id =~ /^\d+$/ ) { - - #$RT::Logger->debug("$self -> CanonicalizeURI was passed $id. It's a ticket id.\n"); - my $ticket = new RT::Ticket($self->CurrentUser); - $ticket->Load($id); - #If we couldn't find a ticket, return undef. - return undef unless (defined $ticket->Id); - #$RT::Logger->debug("$self returned ".$ticket->URI ." (id #)\n"); - return ($ticket->URI); - } - - #It's not a URI. It's not a numerical ticket ID - else { + + +sub _ClassAccessible { + { - #If we couldn't find a ticket, return undef. - return( undef); - - } + id => + {read => 1, type => 'int(11)', default => ''}, + Base => + {read => 1, write => 1, type => 'varchar(240)', default => ''}, + Target => + {read => 1, write => 1, type => 'varchar(240)', default => ''}, + Type => + {read => 1, write => 1, type => 'varchar(20)', default => ''}, + LocalTarget => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + LocalBase => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + LastUpdatedBy => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + LastUpdated => + {read => 1, auto => 1, type => 'datetime', default => ''}, + Creator => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Created => + {read => 1, auto => 1, type => 'datetime', default => ''}, - -} + } +}; + + + eval "require RT::Link_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Link_Overlay.pm}) { + die $@; + }; + + eval "require RT::Link_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Link_Vendor.pm}) { + die $@; + }; + + eval "require RT::Link_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Link_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::Link_Overlay, RT::Link_Vendor, RT::Link_Local + +=cut -# }}} 1; - diff --git a/rt/lib/RT/Links.pm b/rt/lib/RT/Links.pm index a8180caf0..7a1773af9 100644 --- a/rt/lib/RT/Links.pm +++ b/rt/lib/RT/Links.pm @@ -1,90 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Links.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Links - A collection of Link objects +=head1 NAME + RT::Links -- Class Description + =head1 SYNOPSIS - use RT::Links; - my $links = new RT::Links($CurrentUser); + use RT::Links =head1 DESCRIPTION =head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Links); - -=end testing - =cut package RT::Links; -use RT::EasySearch; + +use RT::SearchBuilder; use RT::Link; -@ISA= qw(RT::EasySearch); +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'table'} = "Links"; - $self->{'primary_key'} = "id"; +sub _Init { + my $self = shift; + $self->{'table'} = 'Links'; + $self->{'primary_key'} = 'id'; - return ( $self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub Limit -sub Limit { - my $self = shift; - my %args = ( ENTRYAGGREGATOR => 'AND', - OPERATOR => '=', - @_); - - #if someone's trying to search for tickets, try to resolve the uris for searching. - - if ( ( $args{'OPERATOR'} eq '=') and - ( $args{'FIELD'} eq 'Base') or ($args{'FIELD'} eq 'Target') - ) { - my $dummy = $self->NewItem(); - $uri = $dummy->CanonicalizeURI($args{'VALUE'}); - } - - - # If we're limiting by target, order by base - # (Order by the thing that's changing) - - if ( ($args{'FIELD'} eq 'Target') or - ($args{'FIELD'} eq 'LocalTarget') ) { - $self->OrderBy (ALIAS => 'main', - FIELD => 'Base', - ORDER => 'ASC'); - } - elsif ( ($args{'FIELD'} eq 'Base') or - ($args{'FIELD'} eq 'LocalBase') ) { - $self->OrderBy (ALIAS => 'main', - FIELD => 'Target', - ORDER => 'ASC'); - } - - - $self->SUPER::Limit(%args); + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub NewItem -sub NewItem { + +=item NewItem + +Returns an empty new RT::Link item + +=cut + +sub NewItem { my $self = shift; return(RT::Link->new($self->CurrentUser)); } -# }}} - 1; + eval "require RT::Links_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Links_Overlay.pm}) { + die $@; + }; + + eval "require RT::Links_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Links_Vendor.pm}) { + die $@; + }; + + eval "require RT::Links_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Links_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::Links_Overlay, RT::Links_Vendor, RT::Links_Local + +=cut + + +1; diff --git a/rt/lib/RT/ObjectKeyword.pm b/rt/lib/RT/ObjectKeyword.pm deleted file mode 100644 index 287d41fab..000000000 --- a/rt/lib/RT/ObjectKeyword.pm +++ /dev/null @@ -1,192 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/ObjectKeyword.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Released under the terms of the GNU Public License - -=head1 NAME - - RT::ObjectKeyword -- a keyword tied to an object in the database - -=head1 SYNOPSIS - - use RT::ObjectKeyword; - - -=head1 DESCRIPTION - -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in Ticket, Queue and other similar objects. - - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::ObjectKeyword); - -=end testing - -=head1 METHODS - -=cut - -package RT::ObjectKeyword; - -use strict; -use vars qw(@ISA); -use RT::Record; - -@ISA = qw(RT::Record); - -sub _Init { - my $self = shift; - $self->{'table'} = "ObjectKeywords"; - $self->SUPER::_Init(@_); -} - -sub _Accessible { - my $self = shift; - - my %cols = ( - Keyword => 'read/write', #link to the B<RT::Keyword> - KeywordSelect => 'read/write', #link to the B<RT::KeywordSelect> - ObjectType => 'read/write', #currently only C<Ticket> - ObjectId => 'read/write', #link to the object specified in I<ObjectType> - ); - return ($self->SUPER::_Accessible( @_, %cols)); -} - - - -# TODO - post 2.0. add in _Set and _Value, so we can ACL them. protected at another API level - - -=head1 NAME - - RT::ObjectKeyword - Manipulate an RT::ObjectKeyword record - -=head1 SYNOPSIS - - use RT::ObjectKeyword; - - my $keyword = RT::ObjectKeyword->new($CurrentUser); - $keyword->Create; - -=head1 DESCRIPTION - -An B<RT::ObjectKeyword> object associates an B<RT::Keyword> with another -object (currently only B<RT::Ticket>. - -This module should B<NEVER> be called directly by client code. its API is entirely through RT ticket or other objects which can have keywords assigned. - - -=head1 METHODS - -=over 4 - -=item new CURRENT_USER - -Takes a single argument, an RT::CurrentUser object. Instantiates a new -(uncreated) RT::ObjectKeyword object. - -=cut - -# {{{ sub Create - -=item Create KEY => VALUE, ... - -Takes a list of key/value pairs and creates a the object. Returns the id of -the newly created record, or false if there was an error. - -Keys are: - -Keyword - link to the B<RT::Keyword> -ObjectType - currently only C<Ticket> -ObjectId - link to the object specified in I<ObjectType> - -=cut - - -sub Create { - my $self = shift; - my %args = (Keyword => undef, - KeywordSelect => undef, - ObjectType => undef, - ObjectId => undef, - @_); - - #TODO post 2.0 ACL check - - return ($self->SUPER::Create( Keyword => $args{'Keyword'}, - KeywordSelect => $args{'KeywordSelect'}, - ObjectType => $args{'ObjectType'}, - ObjectId => $args{'ObjectId'})) -} -# }}} - -# {{{ sub KeywordObj - -=item KeywordObj - -Returns an B<RT::Keyword> object of the Keyword associated with this ObjectKeyword. - -=cut - -sub KeywordObj { - my $self = shift; - my $keyword = new RT::Keyword($self->CurrentUser); - $keyword->Load($self->Keyword); - return ($keyword); -} -# }}} - -# {{{ sub KeywordSelectObj - -=item KeywordSelectObj - -Returns an B<RT::KeywordSelect> object of the KeywordSelect associated with this ObjectKeyword. - -=cut - -sub KeywordSelectObj { - my $self = shift; - my $keyword_sel = new RT::KeywordSelect($self->CurrentUser); - $keyword_sel->Load($self->KeywordSelect); - return ($keyword_sel); -} -# }}} - -# {{{ sub KeywordRelativePath - -=item KeywordRelativePath - -Returns a string of the Keyword's path relative to this ObjectKeyword's KeywordSelect - - - -=cut - -sub KeywordRelativePath { - my $self = shift; - return($self->KeywordObj->RelativePath( - $self->KeywordSelectObj->KeywordObj->Path)); - -} -# }}} - -=back - -=head1 AUTHOR - -Ivan Kohler <ivan-rt@420.am> - -=head1 BUGS - -Yes. - -=head1 SEE ALSO - -L<RT::ObjectKeywords>, L<RT::Keyword>, L<RT::Keywords>, L<RT::Ticket>, -L<RT::Record> - -=cut - -1; - diff --git a/rt/lib/RT/ObjectKeywords.pm b/rt/lib/RT/ObjectKeywords.pm deleted file mode 100644 index 5df996e37..000000000 --- a/rt/lib/RT/ObjectKeywords.pm +++ /dev/null @@ -1,234 +0,0 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/ObjectKeywords.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - -package RT::ObjectKeywords; - -use strict; -use vars qw( @ISA ); - -=head1 NAME - - RT::ObjectKeywords - note warning - -=head1 WARNING - -This module should B<NEVER> be called directly by client code. its API is entirely through RT ticket or other objects which can have keywords assigned. - -=head1 SYNOPSIS - -=head1 DESCRIPTION - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::ObjectKeywords); - -=end testing - -=cut - -use RT::EasySearch; -use RT::ObjectKeyword; - -@ISA = qw( RT::EasySearch ); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = 'ObjectKeywords'; - $self->{'primary_key'} = 'id'; - return ($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return (new RT::ObjectKeyword($self->CurrentUser)); -} -# }}} - -# {{{ sub LimitToKeywordSelect - -=head2 LimitToKeywordSelect - - Takes a B<RT::KeywordSelect> id or Nameas its single argument. limits the returned set of ObjectKeywords -to ObjectKeywords which apply to that ticket - -=cut - - -sub LimitToKeywordSelect { - my $self = shift; - my $keywordselect = shift; - - if ($keywordselect =~ /^\d+$/) { - - $self->Limit(FIELD => 'KeywordSelect', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - VALUE => "$keywordselect"); - } - - #We're limiting by name. time to be klever - else { - my $ks = $self->NewAlias('KeywordSelects'); - $self->Join(ALIAS1 => $ks, FIELD1 => 'id', - ALIAS2 => 'main', FIELD2 => 'KeywordSelect'); - - $self->Limit( ALIAS => "$ks", - FIELD => 'Name', - VALUE => "$keywordselect", - OPERATOR => "=", - ENTRYAGGREGATOR => "OR"); - - $self->Limit ( ALIAS => "$ks", - FIELD => 'ObjectType', - VALUE => 'Ticket', - OPERATOR => '=', - ); - - $self->Limit ( ALIAS => "$ks", - FIELD => 'ObjectField', - VALUE => 'Queue', - OPERATOR => '=', - ); - - - # TODO +++ we need to be able to limit the returned - # keywordselects to ones that apply only to this queue - # $self->Limit( ALIAS => "$ks", - # FIELD => 'ObjectValue', - # VALUE => $self->QueueObj->Id, - # OPERATOR => "=", - # ENTRYAGGREGATOR => "OR"); - - } - - - -} - -# }}} - -# {{{ LimitToTicket - -=head2 LimitToTicket TICKET_ID - - Takes an B<RT::Ticket> id as its single argument. limits the returned set of ObjectKeywords -to ObjectKeywords which apply to that ticket - -=cut - -sub LimitToTicket { - my $self = shift; - my $ticket = shift; - $self->Limit(FIELD => 'ObjectId', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - VALUE => "$ticket"); - - $self->Limit(FIELD => 'ObjectType', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - VALUE => "Ticket"); - -} - -# }}} - -# {{{ sub _DoSearch -#wrap around _DoSearch so that we can build the hash of returned -#values - -sub _DoSearch { - my $self = shift; - # $RT::Logger->debug("Now in ".$self."->_DoSearch"); - my $return = $self->SUPER::_DoSearch(@_); - # $RT::Logger->debug("In $self ->_DoSearch. return from SUPER::_DoSearch was $return\n"); - $self->_BuildHash(); - return ($return); -} -# }}} - -# {{{ sub _BuildHash -#Build a hash of this ACL's entries. -sub _BuildHash { - my $self = shift; - - while (my $entry = $self->Next) { - - my $hashkey = $entry->Keyword; - $self->{'as_hash'}->{"$hashkey"} =1; - } - -} -# }}} - -# {{{ HasEntry - -=head2 HasEntry KEYWORD_ID - - Takes a keyword id and returns true if this ObjectKeywords object has an entry for that -keyword. Returns undef otherwise. - -=cut - -sub HasEntry { - - my $self = shift; - my $keyword = shift; - - - #if we haven't done the search yet, do it now. - $self->_DoSearch(); - - # $RT::Logger->debug("Now in ".$self."->HasEntry\n"); - - - if ($self->{'as_hash'}->{ $keyword } == 1) { - return(1); - } - else { - return(undef); - } -} - -# }}} - -# {{{ sub RelativePaths - -=head2 RelativePaths - -# Return a (reference to a) list of KeywordRelativePaths - -=cut - -sub RelativePaths { - my $self = shift; - - my @list; - - # Here $key is a RT::ObjectKeyword - while (my $key=$self->Next()) { - push(@list, $key->KeywordRelativePath); - } - return(\@list); -} -# }}} - -# {{{ sub RelativePathsAsString - -=head2 RelativePathsAsString - -# Returns the RT::ObjectKeywords->RelativePaths as a comma seperated string - -=cut - -sub RelativePathsAsString { - my $self = shift; - return(join(", ",@{$self->KeywordRelativePaths})); -} -# }}} - -1; - diff --git a/rt/lib/RT/Queue.pm b/rt/lib/RT/Queue.pm index 1656903b3..b362c9f0d 100755 --- a/rt/lib/RT/Queue.pm +++ b/rt/lib/RT/Queue.pm @@ -1,944 +1,371 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Queue.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Queue - an RT Queue object +RT::Queue -=head1 SYNOPSIS - use RT::Queue; +=head1 SYNOPSIS =head1 DESCRIPTION - =head1 METHODS -=begin testing -use RT::TestHarness; - -use RT::Queue; - -=end testing - =cut - - package RT::Queue; -use RT::Record; - -@ISA= qw(RT::Record); - -use vars (@STATUS); - -@STATUS = qw(new open stalled resolved dead); - -=head2 StatusArray - -Returns an array of all statuses for this queue - -=cut - -sub StatusArray { - my $self = shift; - return (@STATUS); -} - - -=head2 IsValidStatus VALUE - -Returns true if VALUE is a valid status. Otherwise, returns 0 - -=for testing -my $q = new RT::Queue($RT::SystemUser); -ok($q->IsValidStatus('new')== 1, 'New is a valid status'); -ok($q->IsValidStatus('f00')== 0, 'f00 is not a valid status'); - -=cut - -sub IsValidStatus { - my $self = shift; - my $value = shift; - - my $retval = grep (/^$value$/, $self->StatusArray); - return ($retval); - -} - - - - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Queues"; - return ($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub _Accessible - -sub _Accessible { - my $self = shift; - my %Cols = ( Name => 'read/write', - CorrespondAddress => 'read/write', - Description => 'read/write', - CommentAddress => 'read/write', - InitialPriority => 'read/write', - FinalPriority => 'read/write', - DefaultDueIn => 'read/write', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto', - Disabled => 'read/write', - - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} - -# }}} +use RT::Record; -# {{{ sub Create -=head2 Create +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -Create takes the name of the new queue -If you pass the ACL check, it creates the queue and returns its queue id. +sub _Init { + my $self = shift; -=cut - -sub Create { - my $self = shift; - my %args = ( Name => undef, - CorrespondAddress => '', - Description => '', - CommentAddress => '', - InitialPriority => "0", - FinalPriority => "0", - DefaultDueIn => "0", - @_); - - unless ($self->CurrentUser->HasSystemRight('AdminQueue')) { #Check them ACLs - return (0, "No permission to create queues") - } - - unless ($self->ValidateName($args{'Name'})) { - return(0, 'Queue already exists'); - } - #TODO better input validation - - my $id = $self->SUPER::Create(%args); - unless ($id) { - return (0, 'Queue could not be created'); - } - - return ($id, "Queue $id created"); + $self->Table('Queues'); + $self->SUPER::_Init(@_); } -# }}} -# {{{ sub Delete -sub Delete { - my $self = shift; - return (0, 'Deleting this object would break referential integrity'); -} -# }}} -# {{{ sub SetDisabled +=item Create PARAMHASH -=head2 SetDisabled +Create takes a hash of values and creates a row in the database: -Takes a boolean. -1 will cause this queue to no longer be avaialble for tickets. -0 will re-enable this queue + varchar(200) 'Name'. + varchar(255) 'Description'. + varchar(120) 'CorrespondAddress'. + varchar(120) 'CommentAddress'. + int(11) 'InitialPriority'. + int(11) 'FinalPriority'. + int(11) 'DefaultDueIn'. + smallint(6) 'Disabled'. =cut -# }}} -# {{{ sub Load -=head2 Load -Takes either a numerical id or a textual Name and loads the specified queue. - -=cut - -sub Load { +sub Create { my $self = shift; - - my $identifier = shift; - if (!$identifier) { - return (undef); - } - - if ($identifier !~ /\D/) { - $self->SUPER::LoadById($identifier); - } - else { - $self->LoadByCol("Name", $identifier); - } - - return ($self->Id); + my %args = ( + Name => '', + Description => '', + CorrespondAddress => '', + CommentAddress => '', + InitialPriority => '0', + FinalPriority => '0', + DefaultDueIn => '0', + Disabled => '0', + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Description => $args{'Description'}, + CorrespondAddress => $args{'CorrespondAddress'}, + CommentAddress => $args{'CommentAddress'}, + InitialPriority => $args{'InitialPriority'}, + FinalPriority => $args{'FinalPriority'}, + DefaultDueIn => $args{'DefaultDueIn'}, + Disabled => $args{'Disabled'}, +); } -# }}} -# {{{ sub ValidateName -=head2 ValidateName NAME -Takes a queue name. Returns true if it's an ok name for -a new queue. Returns undef if there's already a queue by that name. +=item id -=cut +Returns the current value of id. +(In the database, id is stored as int(11).) -sub ValidateName { - my $self = shift; - my $name = shift; - - my $tempqueue = new RT::Queue($RT::SystemUser); - $tempqueue->Load($name); - - #If we couldn't load it :) - unless ($tempqueue->id()) { - return(1); - } - - #If this queue exists, return undef - #Avoid the ACL check. - if ($tempqueue->Name()){ - return(undef); - } - - #If the queue doesn't exist, return 1 - else { - return(1); - } - -} - - -# }}} - -# {{{ sub Templates - -=head2 Templates - -Returns an RT::Templates object of all of this queue's templates. =cut -sub Templates { - my $self = shift; - - my $templates = RT::Templates->new($self->CurrentUser); +=item Name - if ($self->CurrentUserHasRight('ShowTemplate')) { - $templates->LimitToQueue($self->id); - } - - return ($templates); -} - -# }}} +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) -# {{{ Dealing with watchers -# {{{ sub Watchers -=head2 Watchers +=item SetName VALUE -Watchers returns a Watchers object preloaded with this queue\'s watchers. -=cut +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) -sub Watchers { - my $self = shift; - - require RT::Watchers; - my $watchers =RT::Watchers->new($self->CurrentUser); - - if ($self->CurrentUserHasRight('SeeQueue')) { - $watchers->LimitToQueue($self->id); - } - - return($watchers); -} - -# }}} - -# {{{ sub WatchersAsString -=head2 WatchersAsString - -Returns a string of all queue watchers email addresses concatenated with ','s. =cut -sub WatchersAsString { - my $self=shift; - return($self->Watchers->EmailsAsString()); -} - -# }}} - -# {{{ sub AdminCcAsString -=head2 AdminCcAsString +=item Description -Takes nothing. returns a string: All Ticket/Queue AdminCcs. +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) -=cut -sub AdminCcAsString { - my $self=shift; - - return($self->AdminCc->EmailsAsString()); - } +=item SetDescription VALUE -# }}} -# {{{ sub CcAsString +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) -=head2 CcAsString - -B<Returns> String: All Queue Ccs as a comma delimited set of email addresses. =cut -sub CcAsString { - my $self=shift; - - return ($self->Cc->EmailsAsString()); -} - -# }}} - -# {{{ sub Cc - -=head2 Cc - -Takes nothing. -Returns a watchers object which contains this queue\'s Cc watchers -=cut +=item CorrespondAddress -sub Cc { - my $self = shift; - my $cc = $self->Watchers(); - if ($self->CurrentUserHasRight('SeeQueue')) { - $cc->LimitToCc(); - } - return ($cc); -} +Returns the current value of CorrespondAddress. +(In the database, CorrespondAddress is stored as varchar(120).) -# A helper function for Cc, so that we can call it from the ACL checks -# without going through acl checks. -sub _Cc { - my $self = shift; - my $cc = $self->Watchers(); - $cc->LimitToCc(); - return($cc); - -} -# }}} +=item SetCorrespondAddress VALUE -# {{{ sub AdminCc -=head2 AdminCc +Set CorrespondAddress to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, CorrespondAddress will be stored as a varchar(120).) -Takes nothing. -Returns this queue's administrative Ccs as an RT::Watchers object =cut -sub AdminCc { - my $self = shift; - my $admin_cc = $self->Watchers(); - if ($self->CurrentUserHasRight('SeeQueue')) { - $admin_cc->LimitToAdminCc(); - } - return($admin_cc); -} - -#helper function for AdminCc so we can call it without ACLs -sub _AdminCc { - my $self = shift; - my $admin_cc = $self->Watchers(); - $admin_cc->LimitToAdminCc(); - return($admin_cc); -} -# }}} +=item CommentAddress -# {{{ IsWatcher, IsCc, IsAdminCc - -# {{{ sub IsWatcher - -# a generic routine to be called by IsRequestor, IsCc and IsAdminCc - -=head2 IsWatcher - -Takes a param hash with the attributes Type and User. User is either a user object or string containing an email address. Returns true if that user or string -is a queue watcher. Returns undef otherwise - -=cut - -sub IsWatcher { - my $self = shift; - - my %args = ( Type => 'Requestor', - Id => undef, - Email => undef, - @_ - ); - #ACL check - can't do it. we need this method for ACL checks - # unless ($self->CurrentUserHasRight('SeeQueue')) { - # return(undef); - # } - - - my %cols = ('Type' => $args{'Type'}, - 'Scope' => 'Queue', - 'Value' => $self->Id - ); - if (defined ($args{'Id'})) { - if (ref($args{'Id'})){ #If it's a ref, assume it's an RT::User object; - #Dangerous but ok for now - $cols{'Owner'} = $args{'Id'}->Id; - } - elsif ($args{'Id'} =~ /^\d+$/) { # if it's an integer, it's an RT::User obj - $cols{'Owner'} = $args{'Id'}; - } - else { - $cols{'Email'} = $args{'Id'}; - } - } - - if (defined $args{'Email'}) { - $cols{'Email'} = $args{'Email'}; - } - - my ($description); - $description = join(":",%cols); - - #If we've cached a positive match... - if (defined $self->{'watchers_cache'}->{"$description"}) { - if ($self->{'watchers_cache'}->{"$description"} == 1) { - return(1); - } - #If we've cached a negative match... - else { - return(undef); - } - } - - require RT::Watcher; - my $watcher = new RT::Watcher($self->CurrentUser); - $watcher->LoadByCols(%cols); - - - if ($watcher->id) { - $self->{'watchers_cache'}->{"$description"} = 1; - return(1); - } - else { - $self->{'watchers_cache'}->{"$description"} = 0; - return(undef); - } - -} +Returns the current value of CommentAddress. +(In the database, CommentAddress is stored as varchar(120).) -# }}} -# {{{ sub IsCc -=head2 IsCc +=item SetCommentAddress VALUE -Takes a string. Returns true if the string is a Cc watcher of the current queue -=item Bugs +Set CommentAddress to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, CommentAddress will be stored as a varchar(120).) -Should also be able to handle an RT::User object =cut -sub IsCc { - my $self = shift; - my $cc = shift; - - return ($self->IsWatcher( Type => 'Cc', Id => $cc )); - -} - -# }}} - -# {{{ sub IsAdminCc - -=head2 IsAdminCc - -Takes a string. Returns true if the string is an AdminCc watcher of the current queue +=item InitialPriority -=item Bugs +Returns the current value of InitialPriority. +(In the database, InitialPriority is stored as int(11).) -Should also be able to handle an RT::User object - -=cut - -sub IsAdminCc { - my $self = shift; - my $admincc = shift; - - return ($self->IsWatcher( Type => 'AdminCc', Id => $admincc )); - -} -# }}} -# }}} +=item SetInitialPriority VALUE -# {{{ sub AddWatcher -=head2 AddWatcher +Set InitialPriority to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, InitialPriority will be stored as a int(11).) -Takes a paramhash of Email, Owner and Type. Type is one of 'Cc' or 'AdminCc', -We need either an Email Address in Email or a userid in Owner =cut -sub AddWatcher { - my $self = shift; - my %args = ( Email => undef, - Type => undef, - Owner => 0, - @_ - ); - - # {{{ Check ACLS - #If the watcher we're trying to add is for the current user - if ( ( ( defined $args{'Email'}) && - ( $args{'Email'} eq $self->CurrentUser->EmailAddress) ) or - ($args{'Owner'} eq $self->CurrentUser->Id)) { - - # If it's an AdminCc and they don't have - # 'WatchAsAdminCc' or 'ModifyQueueWatchers', bail - if ($args{'Type'} eq 'AdminCc') { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or - $self->CurrentUserHasRight('WatchAsAdminCc')) { - return(0, 'Permission Denied'); - } - } - - # If it's a Requestor or Cc and they don't have - # 'Watch' or 'ModifyQueueWatchers', bail - elsif ($args{'Type'} eq 'Cc') { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or - $self->CurrentUserHasRight('Watch')) { - return(0, 'Permission Denied'); - } - } - else { - $RT::Logger->warn("$self -> AddWatcher hit code". - " it never should. We got passed ". - " a type of ". $args{'Type'}); - return (0,'Error in parameters to $self AddWatcher'); - } - } - # If the watcher isn't the current user - # and the current user doesn't have 'ModifyQueueWatchers' - # bail - else { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers')) { - return (0, "Permission Denied"); - } - } - # }}} - - require RT::Watcher; - my $Watcher = new RT::Watcher ($self->CurrentUser); - return ($Watcher->Create(Scope => 'Queue', - Value => $self->Id, - Email => $args{'Email'}, - Type => $args{'Type'}, - Owner => $args{'Owner'} - )); -} -# }}} +=item FinalPriority -# {{{ sub AddCc +Returns the current value of FinalPriority. +(In the database, FinalPriority is stored as int(11).) -=head2 AddCc -Add a Cc to this queue. -Takes a paramhash of Email and Owner. -We need either an Email Address in Email or a userid in Owner -=cut +=item SetFinalPriority VALUE -sub AddCc { - my $self = shift; - return ($self->AddWatcher( Type => 'Cc', @_)); -} -# }}} +Set FinalPriority to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, FinalPriority will be stored as a int(11).) -# {{{ sub AddAdminCc - -=head2 AddAdminCc - -Add an Administrative Cc to this queue. -Takes a paramhash of Email and Owner. -We need either an Email Address in Email or a userid in Owner =cut -sub AddAdminCc { - my $self = shift; - return ($self->AddWatcher( Type => 'AdminCc', @_)); -} -# }}} - -# {{{ sub DeleteWatcher - -=head2 DeleteWatcher id [type] -DeleteWatcher takes a single argument which is either an email address -or a watcher id. -If the first argument is an email address, you need to specify the watcher type you're talking -about as the second argument. Valid values are 'Cc' or 'AdminCc'. -It removes that watcher from this Queue\'s list of watchers. +=item DefaultDueIn +Returns the current value of DefaultDueIn. +(In the database, DefaultDueIn is stored as int(11).) -=cut -sub DeleteWatcher { - my $self = shift; - my $id = shift; - - my $type; - - $type = shift if (@_); - - - require RT::Watcher; - my $Watcher = new RT::Watcher($self->CurrentUser); - - #If it\'s a numeric watcherid - if ($id =~ /^(\d*)$/) { - $Watcher->Load($id); - } - - #Otherwise, we'll assume it's an email address - elsif ($type) { - my ($result, $msg) = - $Watcher->LoadByValue( Email => $id, - Scope => 'Queue', - Value => $self->id, - Type => $type); - return (0,$msg) unless ($result); - } - - else { - return(0,"Can\'t delete a watcher by email address without specifying a type"); - } - - # {{{ Check ACLS - - #If the watcher we're trying to delete is for the current user - if ($Watcher->Email eq $self->CurrentUser->EmailAddress) { - - # If it's an AdminCc and they don't have - # 'WatchAsAdminCc' or 'ModifyQueueWatchers', bail - if ($Watcher->Type eq 'AdminCc') { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or - $self->CurrentUserHasRight('WatchAsAdminCc')) { - return(0, 'Permission Denied'); - } - } - - # If it's a Cc and they don't have - # 'Watch' or 'ModifyQueueWatchers', bail - elsif ($Watcher->Type eq 'Cc') { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers') or - $self->CurrentUserHasRight('Watch')) { - return(0, 'Permission Denied'); - } - } - else { - $RT::Logger->warn("$self -> DeleteWatcher hit code". - " it never should. We got passed ". - " a type of ". $args{'Type'}); - return (0,'Error in parameters to $self DeleteWatcher'); - } - } - # If the watcher isn't the current user - # and the current user doesn't have 'ModifyQueueWatchers' - # bail - else { - unless ($self->CurrentUserHasRight('ModifyQueueWatchers')) { - return (0, "Permission Denied"); - } - } - - # }}} - - unless (($Watcher->Scope eq 'Queue') and - ($Watcher->Value == $self->id) ) { - return (0, "Not a watcher for this queue"); - } - - - #Clear out the watchers hash. - $self->{'watchers'} = undef; - - my $retval = $Watcher->Delete(); - - unless ($retval) { - return(0,"Watcher could not be deleted."); - } - - return(1, "Watcher deleted"); -} - -# {{{ sub DeleteCc +=item SetDefaultDueIn VALUE -=head2 DeleteCc EMAIL -Takes an email address. It calls DeleteWatcher with a preset -type of 'Cc' +Set DefaultDueIn to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, DefaultDueIn will be stored as a int(11).) =cut -sub DeleteCc { - my $self = shift; - my $id = shift; - return ($self->DeleteWatcher ($id, 'Cc')) -} - -# }}} -# {{{ sub DeleteAdminCc +=item Creator -=head2 DeleteAdminCc EMAIL - -Takes an email address. It calls DeleteWatcher with a preset -type of 'AdminCc' +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) =cut -sub DeleteAdminCc { - my $self = shift; - my $id = shift; - return ($self->DeleteWatcher ($id, 'AdminCc')) -} -# }}} +=item Created +Returns the current value of Created. +(In the database, Created is stored as datetime.) -# }}} - -# }}} - -# {{{ Dealing with keyword selects - -# {{{ sub AddKeywordSelect - -=head2 AddKeywordSelect - -Takes a paramhash of Name, Keyword, Depth and Single. Adds a new KeywordSelect for -this queue with those attributes. =cut -sub AddKeywordSelect { - my $self = shift; - my %args = ( Keyword => undef, - Depth => undef, - Single => undef, - Name => undef, - @_); - - #ACLS get handled in KeywordSelect - my $NewKeywordSelect = new RT::KeywordSelect($self->CurrentUser); - - return ($NewKeywordSelect->Create (Keyword => $args{'Keyword'}, - Depth => $args{'Depth'}, - Name => $args{'Name'}, - Single => $args{'Single'}, - ObjectType => 'Ticket', - ObjectField => 'Queue', - ObjectValue => $self->Id() - ) ); -} - -# }}} - -# {{{ sub KeywordSelect +=item LastUpdatedBy -=head2 KeywordSelect([NAME]) +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) -Takes the name of a keyword select for this queue or that's global. -Returns the relevant KeywordSelect object. Prefers a keywordselect that's -specific to this queue over a global one. If it can't find the proper -Keword select or the user doesn't have permission, returns an empty -KeywordSelect object =cut -sub KeywordSelect { - my $self = shift; - my $name = shift; - - require RT::KeywordSelect; - - my $select = RT::KeywordSelect->new($self->CurrentUser); - if ($self->CurrentUserHasRight('SeeQueue')) { - $select->LoadByName( Name => $name, Queue => $self->Id); - } - return ($select); -} - -# }}} +=item LastUpdated -# {{{ sub KeywordSelects +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) -=head2 KeywordSelects - -Returns an B<RT::KeywordSelects> object containing the collection of -B<RT::KeywordSelect> objects which apply to this queue. (Both queue specific keyword selects -and global keyword selects. =cut -sub KeywordSelects { - my $self = shift; +=item Disabled - use RT::KeywordSelects; - my $KeywordSelects = new RT::KeywordSelects($self->CurrentUser); +Returns the current value of Disabled. +(In the database, Disabled is stored as smallint(6).) - if ($self->CurrentUserHasRight('SeeQueue')) { - $KeywordSelects->LimitToQueue($self->id); - $KeywordSelects->IncludeGlobals(); - } - return ($KeywordSelects); -} -# }}} -# }}} -# {{{ ACCESS CONTROL +=item SetDisabled VALUE -# {{{ sub ACL -=head2 ACL +Set Disabled to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Disabled will be stored as a smallint(6).) -#Returns an RT::ACL object of ACEs everyone who has anything to do with this queue. =cut -sub ACL { - my $self = shift; - - use RT::ACL; - my $acl = new RT::ACL($self->CurrentUser); - - if ($self->CurrentUserHasRight('ShowACL')) { - $acl->LimitToQueue($self->Id); - } - - return ($acl); -} - -# }}} - -# {{{ sub _Set -sub _Set { - my $self = shift; - unless ($self->CurrentUserHasRight('AdminQueue')) { - return(0, 'Permission Denied'); - } - return ($self->SUPER::_Set(@_)); -} -# }}} -# {{{ sub _Value +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + CorrespondAddress => + {read => 1, write => 1, type => 'varchar(120)', default => ''}, + CommentAddress => + {read => 1, write => 1, type => 'varchar(120)', default => ''}, + InitialPriority => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + FinalPriority => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + DefaultDueIn => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + 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 => ''}, + Disabled => + {read => 1, write => 1, type => 'smallint(6)', default => '0'}, -sub _Value { - my $self = shift; + } +}; - unless ($self->CurrentUserHasRight('SeeQueue')) { - return (undef); - } - return ($self->__Value(@_)); -} + eval "require RT::Queue_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Queue_Overlay.pm}) { + die $@; + }; -# }}} + eval "require RT::Queue_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Queue_Vendor.pm}) { + die $@; + }; -# {{{ sub CurrentUserHasRight + eval "require RT::Queue_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Queue_Local.pm}) { + die $@; + }; -=head2 CurrentUserHasRight -Takes one argument. A textual string with the name of the right we want to check. -Returns true if the current user has that right for this queue. -Returns undef otherwise. -=cut -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; +=head1 SEE ALSO - return ($self->HasRight( Principal=> $self->CurrentUser, - Right => "$right")); +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 -# {{{ sub HasRight + no warnings qw(redefine); -=head2 HasRight +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. -Takes a param hash with the fields 'Right' and 'Principal'. -Principal defaults to the current user. -Returns true if the principal has that right for this queue. -Returns undef otherwise. +RT::Queue_Overlay, RT::Queue_Vendor, RT::Queue_Local =cut -# TAKES: Right and optional "Principal" which defaults to the current user -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => $self->CurrentUser, - @_); - unless(defined $args{'Principal'}) { - $RT::Logger->debug("Principal undefined in Queue::HasRight"); - - } - return($args{'Principal'}->HasQueueRight(QueueObj => $self, - Right => $args{'Right'})); -} -# }}} - -# }}} 1; diff --git a/rt/lib/RT/Queues.pm b/rt/lib/RT/Queues.pm index ab58d8d6d..60aec9086 100755 --- a/rt/lib/RT/Queues.pm +++ b/rt/lib/RT/Queues.pm @@ -1,123 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Queues.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Queues - a collection of RT::Queue objects +=head1 NAME + RT::Queues -- Class Description + =head1 SYNOPSIS - use RT::Queues; + use RT::Queues =head1 DESCRIPTION =head1 METHODS - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Queues); - -=end testing - =cut package RT::Queues; -use RT::EasySearch; -@ISA= qw(RT::EasySearch); +use RT::SearchBuilder; +use RT::Queue; -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Queues"; - $self->{'primary_key'} = "id"; +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); - # By default, order by name - $self->OrderBy( ALIAS => 'main', - FIELD => 'Name', - ORDER => 'ASC'); - return ($self->SUPER::_Init(@_)); +sub _Init { + my $self = shift; + $self->{'table'} = 'Queues'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub _DoSearch -=head2 _DoSearch +=item NewItem - A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless -we're explicitly trying to see them. +Returns an empty new RT::Queue item =cut -sub _DoSearch { +sub NewItem { my $self = shift; - - #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. - unless($self->{'find_disabled_rows'}) { - $self->LimitToEnabled(); - } - - return($self->SUPER::_DoSearch(@_)); - + return(RT::Queue->new($self->CurrentUser)); } -# }}} - + eval "require RT::Queues_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Queues_Overlay.pm}) { + die $@; + }; -# {{{ sub Limit -sub Limit { - my $self = shift; - my %args = ( ENTRYAGGREGATOR => 'AND', - @_); - $self->SUPER::Limit(%args); -} -# }}} + eval "require RT::Queues_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Queues_Vendor.pm}) { + die $@; + }; -# {{{ sub NewItem -sub NewItem { - my $self = shift; - my $item; + eval "require RT::Queues_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Queues_Local.pm}) { + die $@; + }; - use RT::Queue; - $item = new RT::Queue($self->CurrentUser); - return($item); -} -# }}} -# {{{ sub Next -=head2 Next -Returns the next queue that this user can see. +=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::Queues_Overlay, RT::Queues_Vendor, RT::Queues_Local =cut - -sub Next { - my $self = shift; - - - my $Queue = $self->SUPER::Next(); - if ((defined($Queue)) and (ref($Queue))) { - - if ($Queue->CurrentUserHasRight('SeeQueue')) { - return($Queue); - } - - #If the user doesn't have the right to show this queue - else { - return($self->Next()); - } - } - #if there never was any queue - else { - return(undef); - } - -} -# }}} -1; +1; diff --git a/rt/lib/RT/Record.pm b/rt/lib/RT/Record.pm index 5340f7de4..6962221ea 100755 --- a/rt/lib/RT/Record.pm +++ b/rt/lib/RT/Record.pm @@ -1,5 +1,26 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Record.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ - +# 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. +# +# 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::Record - Base class for RT record objects @@ -20,20 +41,31 @@ ok (require RT::Record); =cut - package RT::Record; -use DBIx::SearchBuilder::Record::Cachable; use RT::Date; use RT::User; -@ISA= qw(DBIx::SearchBuilder::Record::Cachable); +use RT::Base; +use DBIx::SearchBuilder::Record::Cachable; + +use strict; +use vars qw/@ISA/; + +@ISA = qw(RT::Base); + +if ($RT::DontCacheSearchBuilderRecords ) { + push (@ISA, 'DBIx::SearchBuilder::Record'); +} else { + push (@ISA, 'DBIx::SearchBuilder::Record::Cachable'); + +} # {{{ sub _Init -sub _Init { - my $self = shift; - $self->_MyCurrentUser(@_); - +sub _Init { + my $self = shift; + $self->CurrentUser(@_); + } # }}} @@ -48,68 +80,108 @@ The primary keys for RT classes is 'id' sub _PrimaryKeys { my $self = shift; - return(['id']); + return ( ['id'] ); } # }}} -# {{{ sub _MyCurrentUser - -sub _MyCurrentUser { +# {{{ sub _Handle +sub _Handle { my $self = shift; - - $self->CurrentUser(@_); - if(!defined($self->CurrentUser)) { - use Carp; - Carp::cluck(); - $RT::Logger->err("$self was created without a CurrentUser\n"); - return(0); - } + return ($RT::Handle); } # }}} -# {{{ sub _Handle -sub _Handle { - my $self = shift; - return($RT::Handle); -} -# }}} - # {{{ sub Create -sub Create { - my $self = shift; - my $now = new RT::Date($self->CurrentUser); - $now->Set(Format=> 'unix', Value => time); - push @_, 'Created', $now->ISO() - if ($self->_Accessible('Created', 'auto')); - - - push @_, 'Creator', $self->{'user'}->id - if $self->_Accessible('Creator', 'auto'); - - push @_, 'LastUpdated', $now->ISO() - if ($self->_Accessible('LastUpdated', 'auto')); - - push @_, 'LastUpdatedBy', $self->{'user'}->id - if $self->_Accessible('LastUpdatedBy', 'auto'); - - - - my $id = $self->SUPER::Create(@_); - - if ($id) { - $self->Load($id); +=item Create PARAMHASH + +Takes a PARAMHASH of Column -> Value pairs. +If any Column has a Validate$PARAMNAME subroutine defined and the +value provided doesn't pass validation, this routine returns +an error. + +If this object's table has any of the following atetributes defined as +'Auto', this routine will automatically fill in their values. + +=cut + +sub Create { + my $self = shift; + my %attribs = (@_); + foreach my $key ( keys %attribs ) { + my $method = "Validate$key"; + unless ( $self->$method( $attribs{$key} ) ) { + if (wantarray) { + return ( 0, $self->loc('Invalid value for [_1]', $key) ); + } + else { + return (0); + } + } + } + my $now = RT::Date->new( $self->CurrentUser ); + $now->Set( Format => 'unix', Value => time ); + $attribs{'Created'} = $now->ISO() if ( $self->_Accessible( 'Created', 'auto' ) && !$attribs{'Created'}); + + if ($self->_Accessible( 'Creator', 'auto' ) && !$attribs{'Creator'}) { + $attribs{'Creator'} = $self->CurrentUser->id || '0'; + } + $attribs{'LastUpdated'} = $now->ISO() + if ( $self->_Accessible( 'LastUpdated', 'auto' ) && !$attribs{'LastUpdated'}); + + $attribs{'LastUpdatedBy'} = $self->CurrentUser->id || '0' + if ( $self->_Accessible( 'LastUpdatedBy', 'auto' ) && !$attribs{'LastUpdatedBy'}); + + my $id = $self->SUPER::Create(%attribs); + if ( UNIVERSAL::isa( $id, 'Class::ReturnValue' ) ) { + if ( $id->errno ) { + if (wantarray) { + return ( 0, + $self->loc( "Internal Error: [_1]", $id->{error_message} ) ); + } + else { + return (0); + } + } + } + # If the object was created in the database, + # load it up now, so we're sure we get what the database + # has. Arguably, this should not be necessary, but there + # isn't much we can do about it. + + unless ($id) { + if (wantarray) { + return ( $id, $self->loc('Object could not be created') ); + } + else { + return ($id); + } + + } + + if (UNIVERSAL::isa('errno',$id)) { + exit(0); + warn "It's here!"; + return(undef); + } + + $self->Load($id) if ($id); + + + + if (wantarray) { + return ( $id, $self->loc('Object created') ); + } + else { + return ($id); } - - return($id); - + } # }}} - # {{{ sub LoadByCols =head2 LoadByCols @@ -125,28 +197,33 @@ sub LoadByCols { # If this database is case sensitive we need to uncase objects for # explicit loading - if ($self->_Handle->CaseSensitive) { - my %newhash; - foreach my $key (keys %hash) { - # If we've been passed an empty value, we can't do the lookup. - # We don't need to explicitly downcase integers or an id. - if ($key =~ '^id$' || $hash{$key} =~/^\d+$/ || !defined ($hash{$key}) ) { - $newhash{$key} = $hash{$key}; - } - else { - $newhash{"lower(".$key.")"} = lc($hash{$key}); - } - } - $self->SUPER::LoadByCols(%newhash); - } - else { - $self->SUPER::LoadByCols(%hash); + if ( $self->_Handle->CaseSensitive ) { + my %newhash; + foreach my $key ( keys %hash ) { + + # If we've been passed an empty value, we can't do the lookup. + # We don't need to explicitly downcase integers or an id. + if ( $key =~ '^id$' + || !defined( $hash{$key} ) + || $hash{$key} =~ /^\d+$/ + ) + { + $newhash{$key} = $hash{$key}; + } + else { + $newhash{ "lower(" . $key . ")" } = lc( $hash{$key} ); + } + } + + # We've clobbered everything we care about. bash the old hash + # and replace it with the new hash + %hash = %newhash; } + $self->SUPER::LoadByCols(%hash); } # }}} - # {{{ Datehandling # There is room for optimizations in most of those subs: @@ -154,10 +231,10 @@ sub LoadByCols { # {{{ LastUpdatedObj sub LastUpdatedObj { - my $self=shift; - my $obj = new RT::Date($self->CurrentUser); - - $obj->Set(Format => 'sql', Value => $self->LastUpdated); + my $self = shift; + my $obj = new RT::Date( $self->CurrentUser ); + + $obj->Set( Format => 'sql', Value => $self->LastUpdated ); return $obj; } @@ -166,12 +243,11 @@ sub LastUpdatedObj { # {{{ CreatedObj sub CreatedObj { - my $self=shift; - my $obj = new RT::Date($self->CurrentUser); - - $obj->Set(Format => 'sql', Value => $self->Created); + my $self = shift; + my $obj = new RT::Date( $self->CurrentUser ); + + $obj->Set( Format => 'sql', Value => $self->Created ); - return $obj; } @@ -182,9 +258,10 @@ sub CreatedObj { # TODO: This should be deprecated # sub AgeAsString { - my $self=shift; - return($self->CreatedObj->AgeAsString()); + my $self = shift; + return ( $self->CreatedObj->AgeAsString() ); } + # }}} # {{{ LastUpdatedAsString @@ -192,12 +269,13 @@ sub AgeAsString { # TODO this should be deprecated sub LastUpdatedAsString { - my $self=shift; - if ($self->LastUpdated) { - return ($self->LastUpdatedObj->AsString()); - - } else { - return "never"; + my $self = shift; + if ( $self->LastUpdated ) { + return ( $self->LastUpdatedObj->AsString() ); + + } + else { + return "never"; } } @@ -209,8 +287,9 @@ sub LastUpdatedAsString { # sub CreatedAsString { my $self = shift; - return ($self->CreatedObj->AsString()); + return ( $self->CreatedObj->AsString() ); } + # }}} # {{{ LongSinceUpdateAsString @@ -218,42 +297,47 @@ sub CreatedAsString { # TODO This should be deprecated # sub LongSinceUpdateAsString { - my $self=shift; - if ($self->LastUpdated) { - - return ($self->LastUpdatedObj->AgeAsString()); - - } else { - return "never"; + my $self = shift; + if ( $self->LastUpdated ) { + + return ( $self->LastUpdatedObj->AgeAsString() ); + + } + else { + return "never"; } } + # }}} # }}} Datehandling - # {{{ sub _Set -sub _Set { - my $self = shift; +sub _Set { + my $self = shift; - my %args = ( Field => undef, - Value => undef, - IsSQL => undef, - @_ ); + my %args = ( + Field => undef, + Value => undef, + IsSQL => undef, + @_ + ); + #if the user is trying to modify the record + # TODO: document _why_ this code is here - #if the user is trying to modify the record - if ((!defined ($args{'Field'})) || (!defined ($args{'Value'}))) { - $args{'Value'} = 0; - } + if ( ( !defined( $args{'Field'} ) ) || ( !defined( $args{'Value'} ) ) ) { + $args{'Value'} = 0; + } - $self->_SetLastUpdated(); - $self->SUPER::_Set(Field => $args{'Field'}, - Value => $args{'Value'}, - IsSQL => $args{'IsSQL'}); - - + $self->_SetLastUpdated(); + my ( $val, $msg ) = $self->SUPER::_Set( + Field => $args{'Field'}, + Value => $args{'Value'}, + IsSQL => $args{'IsSQL'} + ); } + # }}} # {{{ sub _SetLastUpdated @@ -268,16 +352,20 @@ It takes no options. Arguably, this is a bug sub _SetLastUpdated { my $self = shift; use RT::Date; - my $now = new RT::Date($self->CurrentUser); + my $now = new RT::Date( $self->CurrentUser ); $now->SetToNow(); - if ($self->_Accessible('LastUpdated','auto')) { - my ($msg, $val) = $self->__Set( Field => 'LastUpdated', - Value => $now->ISO); + if ( $self->_Accessible( 'LastUpdated', 'auto' ) ) { + my ( $msg, $val ) = $self->__Set( + Field => 'LastUpdated', + Value => $now->ISO + ); } - if ($self->_Accessible('LastUpdatedBy','auto')) { - my ($msg, $val) = $self->__Set( Field => 'LastUpdatedBy', - Value => $self->CurrentUser->id); + if ( $self->_Accessible( 'LastUpdatedBy', 'auto' ) ) { + my ( $msg, $val ) = $self->__Set( + Field => 'LastUpdatedBy', + Value => $self->CurrentUser->id + ); } } @@ -291,15 +379,16 @@ Returns an RT::User object with the RT account of the creator of this row =cut -sub CreatorObj { - my $self = shift; - unless (exists $self->{'CreatorObj'}) { - - $self->{'CreatorObj'} = RT::User->new($self->CurrentUser); - $self->{'CreatorObj'}->Load($self->Creator); - } - return($self->{'CreatorObj'}); +sub CreatorObj { + my $self = shift; + unless ( exists $self->{'CreatorObj'} ) { + + $self->{'CreatorObj'} = RT::User->new( $self->CurrentUser ); + $self->{'CreatorObj'}->Load( $self->Creator ); + } + return ( $self->{'CreatorObj'} ); } + # }}} # {{{ sub LastUpdatedByObj @@ -311,35 +400,56 @@ sub CreatorObj { =cut sub LastUpdatedByObj { - my $self=shift; - unless (exists $self->{LastUpdatedByObj}) { - $self->{'LastUpdatedByObj'}=RT::User->new($self->CurrentUser); - $self->{'LastUpdatedByObj'}->Load($self->LastUpdatedBy); + my $self = shift; + unless ( exists $self->{LastUpdatedByObj} ) { + $self->{'LastUpdatedByObj'} = RT::User->new( $self->CurrentUser ); + $self->{'LastUpdatedByObj'}->Load( $self->LastUpdatedBy ); } return $self->{'LastUpdatedByObj'}; } # }}} -# {{{ sub CurrentUser -=head2 CurrentUser +require Encode::compat if $] < 5.007001; +require Encode; -If called with an argument, sets the current user to that user object. -This will affect ACL decisions, etc. -Returns the current user +sub __Value { + my $self = shift; + my $field = shift; + my %args = ( decode_utf8 => 1, + @_ ); -=cut + unless (defined $field && $field) { + $RT::Logger->error("$self __Value called with undef field"); + } + my $value = $self->SUPER::__Value($field); + + return('') if ( !defined($value) || $value eq ''); + + return Encode::decode_utf8($value) || $value if $args{'decode_utf8'}; + return $value; +} -sub CurrentUser { - my $self = shift; +# Set up defaults for DBIx::SearchBuilder::Record::Cachable - if (@_) { - $self->{'user'} = shift; +sub _CacheConfig { + { + 'cache_p' => 1, + 'fast_update_p' => 1, + 'cache_for_sec' => 30, } - return ($self->{'user'}); } -# }}} +=head2 _DecodeUTF8 + + When passed a string will "decode" it int a proper UTF-8 string + +=cut + +eval "require RT::Record_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Record_Vendor.pm}); +eval "require RT::Record_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Record_Local.pm}); 1; diff --git a/rt/lib/RT/Scrip.pm b/rt/lib/RT/Scrip.pm index aef011ca3..a69dde04e 100755 --- a/rt/lib/RT/Scrip.pm +++ b/rt/lib/RT/Scrip.pm @@ -1,372 +1,500 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Scrip.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Scrip - an RT Scrip object +RT::Scrip -=head1 SYNOPSIS - use RT::Scrip; +=head1 SYNOPSIS =head1 DESCRIPTION - =head1 METHODS -=begin testing +=cut -ok (require RT::TestHarness); -ok (require RT::Scrip); +package RT::Scrip; +use RT::Record; +use RT::Queue; +use RT::Template; +use RT::ScripCondition; +use RT::ScripAction; -=end testing -=cut +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -package RT::Scrip; -use RT::Record; -@ISA= qw(RT::Record); +sub _Init { + my $self = shift; -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Scrips"; - return ($self->SUPER::_Init(@_)); + $self->Table('Scrips'); + $self->SUPER::_Init(@_); } -# }}} -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( ScripAction => 'read/write', - ScripCondition => 'read/write', - Stage => 'read/write', - Queue => 'read/write', - Template => 'read/write', - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} -# }}} -# {{{ sub Create -=head2 Create -Creates a new entry in the Scrips table. Takes a paramhash with the attributes: - Queue A queue id or 0 for a global scrip - Template A template ID or name. - Behavior is undefined if you have multiple items with - the same name - ScripAction A ScripAction id or name - Behavior is undefined if you have multiple items with - the same name - ScripCondition A ScripCondition id or name - Behavior is undefined if you have multiple items with - the same name +=item Create PARAMHASH -Returns (retval, msg); -retval is 0 for failure or scrip id. msg is a textual description of what happened. +Create takes a hash of values and creates a row in the database: + + varchar(255) 'Description'. + int(11) 'ScripCondition'. + int(11) 'ScripAction'. + text 'ConditionRules'. + text 'ActionRules'. + text 'CustomIsApplicableCode'. + text 'CustomPrepareCode'. + text 'CustomCommitCode'. + varchar(32) 'Stage'. + int(11) 'Queue'. + int(11) 'Template'. =cut -sub Create { + + + +sub Create { my $self = shift; - my %args = ( Queue => undef, - Template => undef, - ScripAction => undef, - ScripCondition => undef, - Stage => 'TransactionCreate', - @_ - ); - - - if ($args{'Queue'} == 0 ) { - unless ($self->CurrentUser->HasSystemRight('ModifyScrips')) { - return (0, 'Permission Denied'); - } - } - else { - my $QueueObj = new RT::Queue($self->CurrentUser); - $QueueObj->Load($args{'Queue'}); - unless ($QueueObj->id()) { - return (0,'Invalid queue'); - } - unless ($QueueObj->CurrentUserHasRight('ModifyScrips')) { - return (0, 'Permssion Denied'); - } - } - - #TODO +++ validate input - - require RT::ScripAction; - my $action = new RT::ScripAction($self->CurrentUser); - $action->Load($args{'ScripAction'}); - return (0, "Action ".$args{'ScripAction'}." not found") unless $action->Id; - - require RT::Template; - my $template = new RT::Template($self->CurrentUser); - $template->Load($args{'Template'}); - return (0, 'Template not found') unless $template->Id; - - require RT::ScripCondition; - my $condition = new RT::ScripCondition($self->CurrentUser); - $condition->Load($args{'ScripCondition'}); - - unless ($condition->Id) { - return (0, 'Condition not found'); - } - - my $id = $self->SUPER::Create(Queue => $args{'Queue'}, - Template => $template->Id, - ScripCondition => $condition->id, - Stage => $args{'Stage'}, - ScripAction => $action->Id - ); - return ($id, 'Scrip Created'); + my %args = ( + Description => '', + ScripCondition => '0', + ScripAction => '0', + ConditionRules => '', + ActionRules => '', + CustomIsApplicableCode => '', + CustomPrepareCode => '', + CustomCommitCode => '', + Stage => '', + Queue => '0', + Template => '0', + + @_); + $self->SUPER::Create( + Description => $args{'Description'}, + ScripCondition => $args{'ScripCondition'}, + ScripAction => $args{'ScripAction'}, + ConditionRules => $args{'ConditionRules'}, + ActionRules => $args{'ActionRules'}, + CustomIsApplicableCode => $args{'CustomIsApplicableCode'}, + CustomPrepareCode => $args{'CustomPrepareCode'}, + CustomCommitCode => $args{'CustomCommitCode'}, + Stage => $args{'Stage'}, + Queue => $args{'Queue'}, + Template => $args{'Template'}, +); + } -# }}} -# {{{ sub Delete -=head2 Delete +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) -Delete this object =cut -sub Delete { - my $self = shift; - - unless ($self->CurrentUserHasRight('ModifyScrips')) { - return (0, 'Permission Denied'); - } - - return ($self->SUPER::Delete(@_)); -} -# }}} -# {{{ sub QueueObj +=item Description + +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) + -=head2 QueueObj -Retuns an RT::Queue object with this Scrip\'s queue +=item SetDescription VALUE + + +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) + =cut -sub QueueObj { - my $self = shift; - - if (!$self->{'QueueObj'}) { - require RT::Queue; - $self->{'QueueObj'} = RT::Queue->new($self->CurrentUser); - $self->{'QueueObj'}->Load($self->Queue); - } - return ($self->{'QueueObj'}); -} -# }}} +=item ScripCondition + +Returns the current value of ScripCondition. +(In the database, ScripCondition is stored as int(11).) + -# {{{ sub ActionObj +=item SetScripCondition VALUE -=head2 ActionObj -Retuns an RT::Action object with this Scrip\'s Action +Set ScripCondition to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ScripCondition will be stored as a int(11).) + =cut -sub ActionObj { - my $self = shift; - - unless (defined $self->{'ScripActionObj'}) { - require RT::ScripAction; - - $self->{'ScripActionObj'} = RT::ScripAction->new($self->CurrentUser); - #TODO: why are we loading Actions with templates like this. - # two seperate methods might make more sense - $self->{'ScripActionObj'}->Load($self->ScripAction, $self->Template); - } - return ($self->{'ScripActionObj'}); + +=item ScripConditionObj + +Returns the ScripCondition Object which has the id returned by ScripCondition + + +=cut + +sub ScripConditionObj { + my $self = shift; + my $ScripCondition = RT::ScripCondition->new($self->CurrentUser); + $ScripCondition->Load($self->__Value('ScripCondition')); + return($ScripCondition); } -# }}} +=item ScripAction + +Returns the current value of ScripAction. +(In the database, ScripAction is stored as int(11).) + + + +=item SetScripAction VALUE -# {{{ sub TemplateObj -=head2 TemplateObj +Set ScripAction to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ScripAction will be stored as a int(11).) -Retuns an RT::Template object with this Scrip\'s Template =cut -sub TemplateObj { - my $self = shift; - - unless (defined $self->{'TemplateObj'}) { - require RT::Template; - $self->{'TemplateObj'} = RT::Template->new($self->CurrentUser); - $self->{'TemplateObj'}->Load($self->Template); - } - return ($self->{'TemplateObj'}); -} -# }}} +=item ScripActionObj -# {{{ sub Prepare -=head2 Prepare +Returns the ScripAction Object which has the id returned by ScripAction -Calls the action object's prepare method =cut -sub Prepare { - my $self = shift; - $self->ActionObj->Prepare(@_); +sub ScripActionObj { + my $self = shift; + my $ScripAction = RT::ScripAction->new($self->CurrentUser); + $ScripAction->Load($self->__Value('ScripAction')); + return($ScripAction); } -# }}} +=item ConditionRules + +Returns the current value of ConditionRules. +(In the database, ConditionRules is stored as text.) + -# {{{ sub Commit -=head2 Commit -Calls the action object's commit method +=item SetConditionRules VALUE + + +Set ConditionRules to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ConditionRules will be stored as a text.) + =cut -sub Commit { - my $self = shift; - $self->ActionObj->Commit(@_); -} -# }}} +=item ActionRules -# {{{ sub ConditionObj +Returns the current value of ActionRules. +(In the database, ActionRules is stored as text.) -=head2 ConditionObj -Retuns an RT::ScripCondition object with this Scrip's IsApplicable + +=item SetActionRules VALUE + + +Set ActionRules to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ActionRules will be stored as a text.) + =cut -sub ConditionObj { - my $self = shift; - - unless (defined $self->{'ScripConditionObj'}) { - require RT::ScripCondition; - $self->{'ScripConditionObj'} = RT::ScripCondition->new($self->CurrentUser); - $self->{'ScripConditionObj'}->Load($self->ScripCondition); - } - return ($self->{'ScripConditionObj'}); -} -# }}} +=item CustomIsApplicableCode + +Returns the current value of CustomIsApplicableCode. +(In the database, CustomIsApplicableCode is stored as text.) + + + +=item SetCustomIsApplicableCode VALUE -# {{{ sub IsApplicable -=head2 IsApplicable +Set CustomIsApplicableCode to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, CustomIsApplicableCode will be stored as a text.) -Calls the Condition object\'s IsApplicable method =cut -sub IsApplicable { - my $self = shift; - return ($self->ConditionObj->IsApplicable(@_)); -} -# }}} +=item CustomPrepareCode -# {{{ sub DESTROY -sub DESTROY { - my $self = shift; - $self->{'ActionObj'} = undef; -} -# }}} +Returns the current value of CustomPrepareCode. +(In the database, CustomPrepareCode is stored as text.) -# {{{ ACL related methods -# {{{ sub _Set -# does an acl check and then passes off the call -sub _Set { - my $self = shift; - - unless ($self->CurrentUserHasRight('ModifyScrips')) { - $RT::Logger->debug("CurrentUser can't modify Scrips for ".$self->Queue."\n"); - return (0, 'Permission Denied'); - } - return $self->__Set(@_); -} +=item SetCustomPrepareCode VALUE -# }}} -# {{{ sub _Value -# does an acl check and then passes off the call -sub _Value { - my $self = shift; - - unless ($self->CurrentUserHasRight('ShowScrips')) { - $RT::Logger->debug("CurrentUser can't modify Scrips for ".$self->__Value('Queue')."\n"); - return (undef); - } - - return $self->__Value(@_); -} -# }}} +Set CustomPrepareCode to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, CustomPrepareCode will be stored as a text.) + + +=cut + + +=item CustomCommitCode + +Returns the current value of CustomCommitCode. +(In the database, CustomCommitCode is stored as text.) + -# {{{ sub CurrentUserHasRight -=head2 CurrentUserHasRight +=item SetCustomCommitCode VALUE + + +Set CustomCommitCode to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, CustomCommitCode will be stored as a text.) -Helper menthod for HasRight. Presets Principal to CurrentUser then -calls HasRight. =cut -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - return ($self->HasRight( Principal => $self->CurrentUser->UserObj, - Right => $right )); - + +=item Stage + +Returns the current value of Stage. +(In the database, Stage is stored as varchar(32).) + + + +=item SetStage VALUE + + +Set Stage to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Stage will be stored as a varchar(32).) + + +=cut + + +=item Queue + +Returns the current value of Queue. +(In the database, Queue is stored as int(11).) + + + +=item SetQueue VALUE + + +Set Queue to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Queue will be stored as a int(11).) + + +=cut + + +=item QueueObj + +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); } -# }}} +=item Template + +Returns the current value of Template. +(In the database, Template is stored as int(11).) + + + +=item SetTemplate VALUE -# {{{ sub HasRight -=head2 HasRight +Set Template to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Template will be stored as a int(11).) -Takes a param-hash consisting of "Right" and "Principal" Principal is -an RT::User object or an RT::CurrentUser object. "Right" is a textual -Right string that applies to Scrips. =cut -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => undef, - @_ ); - - if ((defined $self->SUPER::_Value('Queue')) and ($self->SUPER::_Value('Queue') != 0)) { - return ( $args{'Principal'}->HasQueueRight( - Right => $args{'Right'}, - Queue => $self->SUPER::_Value('Queue'), - Principal => $args{'Principal'} - ) - ); - - } - else { - return( $args{'Principal'}->HasSystemRight( $args{'Right'}) ); - } + +=item TemplateObj + +Returns the Template Object which has the id returned by Template + + +=cut + +sub TemplateObj { + my $self = shift; + my $Template = RT::Template->new($self->CurrentUser); + $Template->Load($self->__Value('Template')); + return($Template); } -# }}} -# }}} +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) + + +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + +=item LastUpdatedBy + +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) + + +=cut + + +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) + + +=cut -1; +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + ScripCondition => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + ScripAction => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + ConditionRules => + {read => 1, write => 1, type => 'text', default => ''}, + ActionRules => + {read => 1, write => 1, type => 'text', default => ''}, + CustomIsApplicableCode => + {read => 1, write => 1, type => 'text', default => ''}, + CustomPrepareCode => + {read => 1, write => 1, type => 'text', default => ''}, + CustomCommitCode => + {read => 1, write => 1, type => 'text', default => ''}, + Stage => + {read => 1, write => 1, type => 'varchar(32)', default => ''}, + Queue => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Template => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + 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::Scrip_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrip_Overlay.pm}) { + die $@; + }; + + eval "require RT::Scrip_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrip_Vendor.pm}) { + die $@; + }; + + eval "require RT::Scrip_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrip_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::Scrip_Overlay, RT::Scrip_Vendor, RT::Scrip_Local + +=cut + + +1; diff --git a/rt/lib/RT/ScripAction.pm b/rt/lib/RT/ScripAction.pm index 471ad9191..26824df5d 100755 --- a/rt/lib/RT/ScripAction.pm +++ b/rt/lib/RT/ScripAction.pm @@ -1,200 +1,279 @@ -# Copyright 1999-2000 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public License -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripAction.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::ScripAction - RT Action object +RT::ScripAction + =head1 SYNOPSIS - use RT::ScripAction; +=head1 DESCRIPTION +=head1 METHODS + +=cut + +package RT::ScripAction; +use RT::Record; -=head1 DESCRIPTION -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in other modules. +use vars qw( @ISA ); +@ISA= qw( RT::Record ); +sub _Init { + my $self = shift; -=begin testing + $self->Table('ScripActions'); + $self->SUPER::_Init(@_); +} -ok (require RT::TestHarness); -ok (require RT::ScripAction); -=end testing -=head1 METHODS + + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(200) 'Name'. + varchar(255) 'Description'. + varchar(60) 'ExecModule'. + varchar(255) 'Argument'. =cut -package RT::ScripAction; -use RT::Record; -@ISA= qw(RT::Record); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ScripActions"; - return ($self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub _Accessible -sub _Accessible { + + +sub Create { my $self = shift; - my %Cols = ( Name => 'read', - Description => 'read', - ExecModule => 'read', - Argument => 'read', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - ); - return($self->SUPER::_Accessible(@_, %Cols)); + my %args = ( + Name => '', + Description => '', + ExecModule => '', + Argument => '', + + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Description => $args{'Description'}, + ExecModule => $args{'ExecModule'}, + Argument => $args{'Argument'}, +); + } -# }}} -# {{{ sub Create -=head2 Create - - Takes a hash. Creates a new Action entry. - should be better documented. + + +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + + =cut -sub Create { - my $self = shift; - #TODO check these args and do smart things. - return($self->SUPER::Create(@_)); -} -# }}} -# {{{ sub Delete -sub Delete { - my $self = shift; - - return (0, "ScripAction->Delete not implemented"); -} -# }}} +=item Name + +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) -# {{{ sub Load -sub Load { - my $self = shift; - my $identifier = shift; - - if (!$identifier) { - return (0, 'Input error'); - } - - if ($identifier !~ /\D/) { - $self->SUPER::LoadById($identifier); - } - else { - $self->LoadByCol('Name', $identifier); - - } - - if (@_) { - # Set the template Id to the passed in template - my $template = shift; - - $self->{'Template'} = $template; - } - return ($self->Id, 'ScripAction loaded'); -} -# }}} -# {{{ sub LoadAction -=head2 LoadAction HASH +=item SetName VALUE + + +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) - Takes a hash consisting of TicketObj and TransactionObj. Loads an RT::Action:: module. =cut -sub LoadAction { - my $self = shift; - my %args = ( TransactionObj => undef, - TicketObj => undef, - @_ ); - - #TODO: Put this in an eval - $self->ExecModule =~ /^(\w+)$/; - my $module = $1; - my $type = "RT::Action::". $module; - - $RT::Logger->debug("now requiring $type\n"); - eval "require $type" || die "Require of $type failed.\n$@\n"; - - $self->{'Action'} = $type->new ( 'ScripActionObj' => $self, - 'TicketObj' => $args{'TicketObj'}, - 'TransactionObj' => $args{'TransactionObj'}, - 'TemplateObj' => $self->TemplateObj, - 'Argument' => $self->Argument, - ); -} -# }}} -# {{{ sub TemplateObj +=item Description + +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) + + -=head2 TemplateObj +=item SetDescription VALUE + + +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) -Return this action\'s template object =cut -sub TemplateObj { - my $self = shift; - return undef unless $self->{Template}; - if (!$self->{'TemplateObj'}) { - require RT::Template; - $self->{'TemplateObj'} = RT::Template->new($self->CurrentUser); - $self->{'TemplateObj'}->LoadById($self->{'Template'}); - - } - - return ($self->{'TemplateObj'}); -} -# }}} -# The following methods call the action object +=item ExecModule -# {{{ sub Prepare +Returns the current value of ExecModule. +(In the database, ExecModule is stored as varchar(60).) -sub Prepare { - my $self = shift; - return ($self->{'Action'}->Prepare()); - -} -# }}} -# {{{ sub Commit -sub Commit { - my $self = shift; - return($self->{'Action'}->Commit()); - - -} -# }}} -# {{{ sub Describe -sub Describe { - my $self = shift; - return ($self->{'Action'}->Describe()); - -} -# }}} +=item SetExecModule VALUE -# {{{ sub DESTROY -sub DESTROY { - my $self=shift; - $self->{'Action'} = undef; - $self->{'TemplateObj'} = undef; -} -# }}} +Set ExecModule to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ExecModule will be stored as a varchar(60).) -1; +=cut + + +=item Argument + +Returns the current value of Argument. +(In the database, Argument is stored as varchar(255).) + + +=item SetArgument VALUE + + +Set Argument to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Argument will be stored as a varchar(255).) + + +=cut + + +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) + + +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + +=item LastUpdatedBy + +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) + + +=cut + + +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) + + +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + ExecModule => + {read => 1, write => 1, type => 'varchar(60)', default => ''}, + Argument => + {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::ScripAction_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripAction_Overlay.pm}) { + die $@; + }; + + eval "require RT::ScripAction_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripAction_Vendor.pm}) { + die $@; + }; + + eval "require RT::ScripAction_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripAction_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::ScripAction_Overlay, RT::ScripAction_Vendor, RT::ScripAction_Local + +=cut + + +1; diff --git a/rt/lib/RT/ScripActions.pm b/rt/lib/RT/ScripActions.pm index ec6141559..614ff374f 100755 --- a/rt/lib/RT/ScripActions.pm +++ b/rt/lib/RT/ScripActions.pm @@ -1,70 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripActions.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::ScripActions - Collection of Action objects +=head1 NAME + RT::ScripActions -- Class Description + =head1 SYNOPSIS - use RT::ScripActions; - + use RT::ScripActions =head1 DESCRIPTION -=begin testing - -ok (require RT::TestHarness); -ok (require RT::ScripActions); - -=end testing - =head1 METHODS =cut package RT::ScripActions; -use RT::EasySearch; + +use RT::SearchBuilder; use RT::ScripAction; -@ISA= qw(RT::EasySearch); +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ScripActions"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub LimitToType -sub LimitToType { - my $self = shift; - my $type = shift; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => "$type") - if defined $type; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => "Correspond") - if $type eq "Create"; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => 'any'); - + +sub _Init { + my $self = shift; + $self->{'table'} = 'ScripActions'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return(RT::ScripAction->new($self->CurrentUser)); +=item NewItem + +Returns an empty new RT::ScripAction item + +=cut + +sub NewItem { + my $self = shift; + return(RT::ScripAction->new($self->CurrentUser)); } -# }}} + eval "require RT::ScripActions_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripActions_Overlay.pm}) { + die $@; + }; -1; + eval "require RT::ScripActions_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripActions_Vendor.pm}) { + die $@; + }; + eval "require RT::ScripActions_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripActions_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::ScripActions_Overlay, RT::ScripActions_Vendor, RT::ScripActions_Local + +=cut + + +1; diff --git a/rt/lib/RT/ScripCondition.pm b/rt/lib/RT/ScripCondition.pm index 253502bd4..fe0aa2d5a 100755 --- a/rt/lib/RT/ScripCondition.pm +++ b/rt/lib/RT/ScripCondition.pm @@ -1,192 +1,302 @@ -# Copyright 1999-2000 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public License -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripCondition.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::ScripCondition - RT scrip conditional +RT::ScripCondition + =head1 SYNOPSIS - use RT::ScripCondition; +=head1 DESCRIPTION +=head1 METHODS -=head1 DESCRIPTION +=cut -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in other modules. +package RT::ScripCondition; +use RT::Record; -=begin testing +use vars qw( @ISA ); +@ISA= qw( RT::Record ); -ok (require RT::TestHarness); -ok (require RT::ScripCondition); +sub _Init { + my $self = shift; -=end testing + $self->Table('ScripConditions'); + $self->SUPER::_Init(@_); +} -=head1 METHODS + + + + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(200) 'Name'. + varchar(255) 'Description'. + varchar(60) 'ExecModule'. + varchar(255) 'Argument'. + varchar(60) 'ApplicableTransTypes'. =cut -package RT::ScripCondition; -use RT::Record; -@ISA= qw(RT::Record); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ScripConditions"; - return ($self->SUPER::_Init(@_)); -} -# }}} -# {{{ sub _Accessible -sub _Accessible { + + +sub Create { my $self = shift; - my %Cols = ( Name => 'read', - Description => 'read', - ApplicableTransTypes => 'read', - ExecModule => 'read', - Argument => 'read', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - ); - return($self->SUPER::_Accessible(@_, %Cols)); + my %args = ( + Name => '', + Description => '', + ExecModule => '', + Argument => '', + ApplicableTransTypes => '', + + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Description => $args{'Description'}, + ExecModule => $args{'ExecModule'}, + Argument => $args{'Argument'}, + ApplicableTransTypes => $args{'ApplicableTransTypes'}, +); + } -# }}} -# {{{ sub Create -=head2 Create - - Takes a hash. Creates a new Condition entry. - should be better documented. + +=item id + +Returns the current value of id. +(In the database, id is stored as int(11).) + =cut -sub Create { - my $self = shift; - return($self->SUPER::Create(@_)); -} -# }}} -# {{{ sub Delete +=item Name -=head2 Delete +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) + + + +=item SetName VALUE + + +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) -No API available for deleting things just yet. =cut -sub Delete { - my $self = shift; - return(0,'Unimplemented'); -} -# }}} -# {{{ sub Load +=item Description -=head2 Load IDENTIFIER +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) + + + +=item SetDescription VALUE + + +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) -Loads a condition takes a name or ScripCondition id. =cut -sub Load { - my $self = shift; - my $identifier = shift; - - unless (defined $identifier) { - return (undef); - } - - if ($identifier !~ /\D/) { - return ($self->SUPER::LoadById($identifier)); - } - else { - return ($self->LoadByCol('Name', $identifier)); - } -} -# }}} -# {{{ sub LoadCondition +=item ExecModule + +Returns the current value of ExecModule. +(In the database, ExecModule is stored as varchar(60).) + + + +=item SetExecModule VALUE + -=head2 LoadCondition HASH +Set ExecModule to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ExecModule will be stored as a varchar(60).) -takes a hash which has the following elements: TransactionObj and TicketObj. -Loads the Condition module in question. =cut -sub LoadCondition { - my $self = shift; - my %args = ( TransactionObj => undef, - TicketObj => undef, - @_ ); - - #TODO: Put this in an eval - $self->ExecModule =~ /^(\w+)$/; - my $module = $1; - my $type = "RT::Condition::". $module; - - $RT::Logger->debug("now requiring $type\n"); - eval "require $type" || die "Require of $type failed.\n$@\n"; - - $self->{'Condition'} = $type->new ( 'ScripConditionObj' => $self, - 'TicketObj' => $args{'TicketObj'}, - 'TransactionObj' => $args{'TransactionObj'}, - 'Argument' => $self->Argument, - 'ApplicableTransTypes' => $self->ApplicableTransTypes, - ); -} -# }}} +=item Argument + +Returns the current value of Argument. +(In the database, Argument is stored as varchar(255).) -# {{{ The following methods call the Condition object -# {{{ sub Describe +=item SetArgument VALUE -=head2 Describe -Helper method to call the condition module\'s Describe method. +Set Argument to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Argument will be stored as a varchar(255).) + =cut -sub Describe { - my $self = shift; - return ($self->{'Condition'}->Describe()); - -} -# }}} -# {{{ sub IsApplicable +=item ApplicableTransTypes -=head2 IsApplicable +Returns the current value of ApplicableTransTypes. +(In the database, ApplicableTransTypes is stored as varchar(60).) + + + +=item SetApplicableTransTypes VALUE + + +Set ApplicableTransTypes to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ApplicableTransTypes will be stored as a varchar(60).) -Helper method to call the condition module\'s IsApplicable method. =cut -sub IsApplicable { - my $self = shift; - return ($self->{'Condition'}->IsApplicable()); - -} -# }}} -# }}} +=item Creator -# {{{ sub DESTROY -sub DESTROY { - my $self=shift; - $self->{'Condition'} = undef; -} -# }}} +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) -1; +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + +=item LastUpdatedBy + +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) + + +=cut + + +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + ExecModule => + {read => 1, write => 1, type => 'varchar(60)', default => ''}, + Argument => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + ApplicableTransTypes => + {read => 1, write => 1, type => 'varchar(60)', 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::ScripCondition_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripCondition_Overlay.pm}) { + die $@; + }; + + eval "require RT::ScripCondition_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripCondition_Vendor.pm}) { + die $@; + }; + + eval "require RT::ScripCondition_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripCondition_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::ScripCondition_Overlay, RT::ScripCondition_Vendor, RT::ScripCondition_Local + +=cut + + +1; diff --git a/rt/lib/RT/ScripConditions.pm b/rt/lib/RT/ScripConditions.pm index 236e6718d..34f788d9c 100755 --- a/rt/lib/RT/ScripConditions.pm +++ b/rt/lib/RT/ScripConditions.pm @@ -1,69 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/ScripConditions.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::ScripConditions - Collection of Action objects +=head1 NAME + RT::ScripConditions -- Class Description + =head1 SYNOPSIS - use RT::ScripConditions; - + use RT::ScripConditions =head1 DESCRIPTION - -=begin testing - -ok (require RT::TestHarness); -ok (require RT::ScripConditions); - -=end testing - =head1 METHODS =cut package RT::ScripConditions; -use RT::EasySearch; + +use RT::SearchBuilder; use RT::ScripCondition; -@ISA= qw(RT::EasySearch); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ScripConditions"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub LimitToType -sub LimitToType { - my $self = shift; - my $type = shift; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => "$type") - if defined $type; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => "Correspond") - if $type eq "Create"; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Type', - VALUE => 'any'); - + +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + + +sub _Init { + my $self = shift; + $self->{'table'} = 'ScripConditions'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return(RT::ScripCondition->new($self->CurrentUser)); + +=item NewItem + +Returns an empty new RT::ScripCondition item + +=cut + +sub NewItem { + my $self = shift; + return(RT::ScripCondition->new($self->CurrentUser)); } -# }}} + eval "require RT::ScripConditions_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripConditions_Overlay.pm}) { + die $@; + }; -1; + eval "require RT::ScripConditions_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripConditions_Vendor.pm}) { + die $@; + }; + + eval "require RT::ScripConditions_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ScripConditions_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::ScripConditions_Overlay, RT::ScripConditions_Vendor, RT::ScripConditions_Local + +=cut + + +1; diff --git a/rt/lib/RT/Scrips.pm b/rt/lib/RT/Scrips.pm index 90be847d8..a39443136 100755 --- a/rt/lib/RT/Scrips.pm +++ b/rt/lib/RT/Scrips.pm @@ -1,127 +1,115 @@ -# Copyright 1999-2001 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public License -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Scrips.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Scrips - a collection of RT Scrip objects +=head1 NAME + RT::Scrips -- Class Description + =head1 SYNOPSIS - use RT::Scrips; + use RT::Scrips =head1 DESCRIPTION =head1 METHODS +=cut -=begin testing +package RT::Scrips; -ok (require RT::TestHarness); -ok (require RT::Scrips); +use RT::SearchBuilder; +use RT::Scrip; -=end testing +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -=cut -package RT::Scrips; -use RT::EasySearch; -use RT::Scrip; -@ISA= qw(RT::EasySearch); +sub _Init { + my $self = shift; + $self->{'table'} = 'Scrips'; + $self->{'primary_key'} = 'id'; -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Scrips"; - $self->{'primary_key'} = "id"; - return ( $self->SUPER::_Init(@_)); + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub LimitToQueue -=head2 LimitToQueue +=item NewItem -Takes a queue id (numerical) as its only argument. Makes sure that -Scopes it pulls out apply to this queue (or another that you've selected with -another call to this method +Returns an empty new RT::Scrip item =cut -sub LimitToQueue { - my $self = shift; - my $queue = shift; - - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Queue', - VALUE => "$queue") - if defined $queue; - +sub NewItem { + my $self = shift; + return(RT::Scrip->new($self->CurrentUser)); } -# }}} -# {{{ sub LimitToGlobal + eval "require RT::Scrips_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrips_Overlay.pm}) { + die $@; + }; -=head2 LimitToGlobal + eval "require RT::Scrips_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrips_Vendor.pm}) { + die $@; + }; -Makes sure that -Scopes it pulls out apply to all queues (or another that you've selected with -another call to this method or LimitToQueue + eval "require RT::Scrips_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Scrips_Local.pm}) { + die $@; + }; -=cut -sub LimitToGlobal { - my $self = shift; - - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Queue', - VALUE => 0); - -} -# }}} -# {{{ sub NewItem -sub NewItem { - my $self = shift; - - return(new RT::Scrip($self->CurrentUser)); -} -# }}} +=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. -# {{{ sub Next +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line -=head2 Next + no warnings qw(redefine); -Returns the next scrip that this user can see. +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. + +RT::Scrips_Overlay, RT::Scrips_Vendor, RT::Scrips_Local =cut - -sub Next { - my $self = shift; - - - my $Scrip = $self->SUPER::Next(); - if ((defined($Scrip)) and (ref($Scrip))) { - - if ($Scrip->CurrentUserHasRight('ShowScrips')) { - return($Scrip); - } - - #If the user doesn't have the right to show this scrip - else { - return($self->Next()); - } - } - #if there never was any scrip - else { - return(undef); - } - -} -# }}} -1; +1; diff --git a/rt/lib/RT/Template.pm b/rt/lib/RT/Template.pm index 3ef96c7df..f73ea3ed6 100755 --- a/rt/lib/RT/Template.pm +++ b/rt/lib/RT/Template.pm @@ -1,395 +1,363 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Template.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com> -# Portions Copyright 2000 Tobias Brox <tobix@cpan.org> -# Released under the terms of the GNU General Public 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Template - RT's template object +RT::Template + =head1 SYNOPSIS - use RT::Template; +=head1 DESCRIPTION +=head1 METHODS -=head1 DESCRIPTION +=cut +package RT::Template; +use RT::Record; +use RT::Queue; -=head1 METHODS -=begin testing +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('Templates'); + $self->SUPER::_Init(@_); +} + + + + + +=item Create PARAMHASH -ok(require RT::TestHarness); -ok(require RT::Template); +Create takes a hash of values and creates a row in the database: -=end testing + int(11) 'Queue'. + varchar(200) 'Name'. + varchar(255) 'Description'. + varchar(16) 'Type'. + varchar(16) 'Language'. + int(11) 'TranslationOf'. + blob 'Content'. =cut -package RT::Template; -use RT::Record; -use MIME::Entity; -use MIME::Parser; -@ISA = qw(RT::Record); -# {{{ sub _Init -sub _Init { +sub Create { my $self = shift; - $self->{'table'} = "Templates"; - return ( $self->SUPER::_Init(@_) ); + my %args = ( + Queue => '0', + Name => '', + Description => '', + Type => '', + Language => '', + TranslationOf => '0', + Content => '', + + @_); + $self->SUPER::Create( + Queue => $args{'Queue'}, + Name => $args{'Name'}, + Description => $args{'Description'}, + Type => $args{'Type'}, + Language => $args{'Language'}, + TranslationOf => $args{'TranslationOf'}, + Content => $args{'Content'}, +); + } -# }}} -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - id => 'read', - Name => 'read/write', - Description => 'read/write', - Type => 'read/write', #Type is one of Action or Message - Content => 'read/write', - Queue => 'read/write', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - ); - return $self->SUPER::_Accessible( @_, %Cols ); -} +=item id -# }}} +Returns the current value of id. +(In the database, id is stored as int(11).) -# {{{ sub _Set -sub _Set { - my $self = shift; +=cut - # use super::value or we get acl blocked - if ( ( defined $self->SUPER::_Value('Queue') ) - && ( $self->SUPER::_Value('Queue') == 0 ) ) - { - unless ( $self->CurrentUser->HasSystemRight('ModifyTemplate') ) { - return ( 0, 'Permission Denied' ); - } - } - else { - - unless ( $self->CurrentUserHasQueueRight('ModifyTemplate') ) { - return ( 0, 'Permission Denied' ); - } - } - return ( $self->SUPER::_Set(@_) ); -} +=item Queue + +Returns the current value of Queue. +(In the database, Queue is stored as int(11).) -# }}} -# {{{ sub _Value -=head2 _Value +=item SetQueue VALUE + + +Set Queue to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Queue will be stored as a int(11).) -Takes the name of a table column. -Returns its value as a string, if the user passes an ACL check =cut -sub _Value { - my $self = shift; - my $field = shift; +=item QueueObj - #If the current user doesn't have ACLs, don't let em at it. - #use super::value or we get acl blocked - if ( ( !defined $self->__Value('Queue') ) - || ( $self->__Value('Queue') == 0 ) ) - { - unless ( $self->CurrentUser->HasSystemRight('ShowTemplate') ) { - return (undef); - } - } - else { - unless ( $self->CurrentUserHasQueueRight('ShowTemplate') ) { - return (undef); - } - } - return ( $self->__Value($field) ); +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); } -# }}} +=item Name + +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) + + -# {{{ sub Load +=item SetName VALUE -=head2 Load <identifer> -Load a template, either by number or by name +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) + =cut -sub Load { - my $self = shift; - my $identifier = shift; - if ( !$identifier ) { - return (undef); - } +=item Description + +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) - if ( $identifier !~ /\D/ ) { - $self->SUPER::LoadById($identifier); - } - else { - $self->LoadByCol( 'Name', $identifier ); - } -} -# }}} +=item SetDescription VALUE -# {{{ sub LoadGlobalTemplate -=head2 LoadGlobalTemplate NAME +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) -Load the global tempalte with the name NAME =cut -sub LoadGlobalTemplate { - my $self = shift; - my $id = shift; - return ( $self->LoadQueueTemplate( Queue => 0, Name => $id ) ); -} +=item Type -# }}} +Returns the current value of Type. +(In the database, Type is stored as varchar(16).) -# {{{ sub LoadQueueTemplate -=head2 LoadQueueTemplate (Queue => QUEUEID, Name => NAME) -Loads the Queue template named NAME for Queue QUEUE. +=item SetType VALUE + + +Set Type to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Type will be stored as a varchar(16).) + =cut -sub LoadQueueTemplate { - my $self = shift; - my %args = ( - Queue => undef, - Name => undef - ); - return ( $self->LoadByCols( Name => $args{'Name'}, Queue => {'Queue'} ) ); +=item Language -} +Returns the current value of Language. +(In the database, Language is stored as varchar(16).) -# }}} -# {{{ sub Create -=head2 Create +=item SetLanguage VALUE -Takes a paramhash of Content, Queue, Name and Description. -Name should be a unique string identifying this Template. -Description and Content should be the template's title and content. -Queue should be 0 for a global template and the queue # for a queue-specific -template. -Returns the Template's id # if the create was successful. Returns undef for -unknown database failure. +Set Language to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Language will be stored as a varchar(16).) =cut -sub Create { - my $self = shift; - my %args = ( - Content => undef, - Queue => 0, - Description => '[no description]', - Type => 'Action', #By default, template are 'Action' templates - Name => undef, - @_ - ); - - if ( $args{'Queue'} == 0 ) { - unless ( $self->CurrentUser->HasSystemRight('ModifyTemplate') ) { - return (undef); - } - } - else { - my $QueueObj = new RT::Queue( $self->CurrentUser ); - $QueueObj->Load( $args{'Queue'} ) || return ( 0, 'Invalid queue' ); - - unless ( $QueueObj->CurrentUserHasRight('ModifyTemplate') ) { - return (undef); - } - } - - my $result = $self->SUPER::Create( - Content => $args{'Content'}, - Queue => $args{'Queue'}, - , - Description => $args{'Description'}, - Name => $args{'Name'} - ); - - return ($result); -} +=item TranslationOf + +Returns the current value of TranslationOf. +(In the database, TranslationOf is stored as int(11).) + + -# }}} +=item SetTranslationOf VALUE -# {{{ sub Delete -=head2 Delete +Set TranslationOf to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TranslationOf will be stored as a int(11).) -Delete this template. =cut -sub Delete { - my $self = shift; - unless ( $self->CurrentUserHasRight('ModifyTemplate') ) { - return ( 0, 'Permission Denied' ); - } +=item Content - return ( $self->SUPER::Delete(@_) ); -} +Returns the current value of Content. +(In the database, Content is stored as blob.) -# }}} -# {{{ sub MIMEObj -sub MIMEObj { - my $self = shift; - return ( $self->{'MIMEObj'} ); -} -# }}} +=item SetContent VALUE -# {{{ sub Parse -=item Parse +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 blob.) - This routine performs Text::Template parsing on thte template and then imports the - results into a MIME::Entity so we can really use it - It returns a tuple of (val, message) - If val is 0, the message contains an error message =cut -sub Parse { - my $self = shift; - #We're passing in whatever we were passed. it's destined for _ParseContent - my $content = $self->_ParseContent(@_); +=item LastUpdated - #Lets build our mime Entity +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) - my $parser = MIME::Parser->new(); - - # Do work on the parsed template in memory, rather than on disk - $parser->output_to_core(1); - ### Should we forgive normally-fatal errors? - $parser->ignore_errors(1); - $self->{'MIMEObj'} = eval { $parser->parse_data($content) }; - $error = ( $@ || $parser->last_error ); +=cut - if ($error) { - $RT::Logger->error("$error"); - return ( 0, $error ); - } - # Unfold all headers - $self->{'MIMEObj'}->head->unfold(); +=item LastUpdatedBy - return ( 1, "Template parsed" ); - +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) -} -# }}} +=cut -# {{{ sub _ParseContent -# Perform Template substitutions on the template +=item Creator -sub _ParseContent { - my $self = shift; - my %args = ( - Argument => undef, - TicketObj => undef, - TransactionObj => undef, - @_ - ); - - # Might be subject to change - use Text::Template; - - $T::Ticket = $args{'TicketObj'}; - $T::Transaction = $args{'TransactionObj'}; - $T::Argument = $args{'Argument'}; - $T::rtname = $RT::rtname; - - # We need to untaint the content of the template, since we'll be working - # with it - my $content = $self->Content(); - $content =~ s/^(.*)$/$1/; - $template = Text::Template->new( - TYPE => STRING, - SOURCE => $content - ); - - my $retval = $template->fill_in( PACKAGE => T ); - return ($retval); -} +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) -# }}} -# {{{ sub QueueObj +=cut -=head2 QueueObj -Takes nothing. returns this ticket's queue object +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + =cut -sub QueueObj { - my $self = shift; - if ( !defined $self->{'queue'} ) { - require RT::Queue; - $self->{'queue'} = RT::Queue->new( $self->CurrentUser ); - - unless ( $self->{'queue'} ) { - $RT::Logger->crit( - "RT::Queue->new(" . $self->CurrentUser . ") returned false" ); - return (undef); - } - my ($result) = $self->{'queue'}->Load( $self->__Value('Queue') ); - - } - return ( $self->{'queue'} ); -} -# }}} -# {{{ sub CurrentUserHasQueueRight +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Queue => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + Type => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + Language => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + TranslationOf => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Content => + {read => 1, write => 1, type => 'blob', default => ''}, + LastUpdated => + {read => 1, auto => 1, type => 'datetime', default => ''}, + LastUpdatedBy => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Creator => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Created => + {read => 1, auto => 1, type => 'datetime', default => ''}, + + } +}; + + + eval "require RT::Template_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Template_Overlay.pm}) { + die $@; + }; + + eval "require RT::Template_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Template_Vendor.pm}) { + die $@; + }; + + eval "require RT::Template_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Template_Local.pm}) { + die $@; + }; -=head2 CurrentUserHasQueueRight -Helper function to call the template's queue's CurrentUserHasQueueRight with the passed in args. + + +=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::Template_Overlay, RT::Template_Vendor, RT::Template_Local =cut -sub CurrentUserHasQueueRight { - my $self = shift; - return ( $self->QueueObj->CurrentUserHasRight(@_) ); -} -# }}} 1; diff --git a/rt/lib/RT/Templates.pm b/rt/lib/RT/Templates.pm index b5b483c96..37db84086 100755 --- a/rt/lib/RT/Templates.pm +++ b/rt/lib/RT/Templates.pm @@ -1,122 +1,115 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Templates.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Templates - a collection of RT Template objects +=head1 NAME + RT::Templates -- Class Description + =head1 SYNOPSIS - use RT::Templates; + use RT::Templates =head1 DESCRIPTION =head1 METHODS -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Templates); - -=end testing - =cut package RT::Templates; -use RT::EasySearch; -@ISA= qw(RT::EasySearch); +use RT::SearchBuilder; +use RT::Template; -# {{{ sub _Init +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -=head2 _Init - - Returns RT::Templates specific init info like table and primary key names - -=cut sub _Init { - my $self = shift; - $self->{'table'} = "Templates"; - $self->{'primary_key'} = "id"; - return ($self->SUPER::_Init(@_)); + $self->{'table'} = 'Templates'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ LimitToNotInQueue -=head2 LimitToNotInQueue +=item NewItem -Takes a queue id # and limits the returned set of templates to those which -aren't that queue's templates. +Returns an empty new RT::Template item =cut -sub LimitToNotInQueue { +sub NewItem { my $self = shift; - my $queue_id = shift; - $self->Limit(FIELD => 'Queue', - VALUE => "$queue_id", - OPERATOR => '!=' - ); + return(RT::Template->new($self->CurrentUser)); } -# }}} -# {{{ LimitToGlobal + eval "require RT::Templates_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Templates_Overlay.pm}) { + die $@; + }; -=head2 LimitToGlobal + eval "require RT::Templates_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Templates_Vendor.pm}) { + die $@; + }; -Takes no arguments. Limits the returned set to "Global" templates -which can be used with any queue. + eval "require RT::Templates_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Templates_Local.pm}) { + die $@; + }; -=cut -sub LimitToGlobal { - my $self = shift; - my $queue_id = shift; - $self->Limit(FIELD => 'Queue', - VALUE => "0", - OPERATOR => '=' - ); -} -# }}} -# {{{ LimitToQueue -=head2 LimitToQueue +=head1 SEE ALSO -Takes a queue id # and limits the returned set of templates to that queue's -templates +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. -=cut +These overlay files can contain new subs or subs to replace existing subs in this module. -sub LimitToQueue { - my $self = shift; - my $queue_id = shift; - $self->Limit(FIELD => 'Queue', - VALUE => "$queue_id", - OPERATOR => '=' - ); -} -# }}} +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line -# {{{ sub NewItem + no warnings qw(redefine); -=head2 NewItem +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. -Returns a new empty Template object +RT::Templates_Overlay, RT::Templates_Vendor, RT::Templates_Local =cut -sub NewItem { - my $self = shift; - - use RT::Template; - my $item = new RT::Template($self->CurrentUser); - return($item); -} -# }}} 1; - diff --git a/rt/lib/RT/TestHarness.pm b/rt/lib/RT/TestHarness.pm deleted file mode 100644 index 160e9e636..000000000 --- a/rt/lib/RT/TestHarness.pm +++ /dev/null @@ -1,14 +0,0 @@ -use lib "/opt/rt2/etc/"; - -use RT::Interface::CLI qw(CleanEnv LoadConfig DBConnect - GetCurrentUser GetMessageContent); - -#Clean out all the nasties from the environment -CleanEnv(); - -#Load etc/config.pm and drop privs -LoadConfig(); - - -use RT; -RT::Init; diff --git a/rt/lib/RT/Ticket.pm b/rt/lib/RT/Ticket.pm index f7275e4e3..2f075a20c 100755 --- a/rt/lib/RT/Ticket.pm +++ b/rt/lib/RT/Ticket.pm @@ -1,3004 +1,662 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Ticket.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2001 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! # -=head1 NAME +use strict; - RT::Ticket - RT ticket object -=head1 SYNOPSIS +=head1 NAME - use RT::Ticket; - my $ticket = new RT::Ticket($CurrentUser); - $ticket->Load($ticket_id); +RT::Ticket -=head1 DESCRIPTION -This module lets you manipulate RT\'s ticket object. +=head1 SYNOPSIS +=head1 DESCRIPTION =head1 METHODS =cut - - package RT::Ticket; +use RT::Record; use RT::Queue; -use RT::User; -use RT::Record; -use RT::Link; -use RT::Links; -use RT::Date; -use RT::Watcher; - - -@ISA= qw(RT::Record); - -=begin testing -use RT::TestHarness; - -ok(require RT::Ticket, "Loading the RT::Ticket library"); - -=end testing - -=cut - -# {{{ sub _Init +use vars qw( @ISA ); +@ISA= qw( RT::Record ); sub _Init { - my $self = shift; - $self->{'table'} = "Tickets"; - return ($self->SUPER::_Init(@_)); -} - -# }}} - -# {{{ sub Load - -=head2 Load - -Takes a single argument. This can be a ticket id, ticket alias or -local ticket uri. If the ticket can't be loaded, returns undef. -Otherwise, returns the ticket id. - -=cut - -sub Load { - my $self = shift; - my $id = shift; - - #TODO modify this routine to look at EffectiveId and do the recursive load - # thing. be careful to cache all the interim tickets we try so we don't loop forever. - - #If it's a local URI, turn it into a ticket id - if ($id =~ /^$RT::TicketBaseURI(\d+)$/) { - $id = $1; - } - #If it's a remote URI, we're going to punt for now - elsif ($id =~ '://' ) { - return (undef); - } - - #If we have an integer URI, load the ticket - if ( $id =~ /^\d+$/ ) { - my $ticketid = $self->LoadById($id); - - unless ($ticketid) { - $RT::Logger->debug("$self tried to load a bogus ticket: $id\n"); - return(undef); - } - } - - #It's not a URI. It's not a numerical ticket ID. Punt! - else { - return(undef); - } - - #If we're merged, resolve the merge. - if (($self->EffectiveId) and - ($self->EffectiveId != $self->Id)) { - return ($self->Load($self->EffectiveId)); - } - - #Ok. we're loaded. lets get outa here. - return ($self->Id); - -} - -# }}} + my $self = shift; -# {{{ sub LoadByURI - -=head2 LoadByURI - -Given a local ticket URI, loads the specified ticket. - -=cut - -sub LoadByURI { - my $self = shift; - my $uri = shift; - - if ($uri =~ /^$RT::TicketBaseURI(\d+)$/) { - my $id = $1; - return ($self->Load($id)); - } - else { - return(undef); - } + $self->Table('Tickets'); + $self->SUPER::_Init(@_); } -# }}} - -# {{{ sub Create - -=head2 Create (ARGS) - -Arguments: ARGS is a hash of named parameters. Valid parameters are: - - Queue - Either a Queue object or a Queue Name - Requestor - A reference to a list of RT::User objects, email addresses or RT user Names - Cc - A reference to a list of RT::User objects, email addresses or Names - AdminCc - A reference to a list of RT::User objects, email addresses or Names - Type -- The ticket\'s type. ignore this for now - Owner -- This ticket\'s owner. either an RT::User object or this user\'s id - Subject -- A string describing the subject of the ticket - InitialPriority -- an integer from 0 to 99 - FinalPriority -- an integer from 0 to 99 - Status -- any valid status (Defined in RT::Queue) - TimeWorked -- an integer - TimeLeft -- an integer - Starts -- an ISO date describing the ticket\'s start date and time in GMT - Due -- an ISO date describing the ticket\'s due date and time in GMT - MIMEObj -- a MIME::Entity object with the content of the initial ticket request. - - KeywordSelect-<id> -- an array of keyword ids for that keyword select - - -Returns: TICKETID, Transaction Object, Error Message - - -=begin testing - -my $t = RT::Ticket->new($RT::SystemUser); - -ok( $t->Create(Queue => 'General', Subject => 'This is a subject'), "Ticket Created"); - -ok ( my $id = $t->Id, "Got ticket id"); - -=end testing - -=cut - -sub Create { - my $self = shift; - - my %args = ( - Queue => undef, - Requestor => undef, - Cc => undef, - AdminCc => undef, - Type => 'ticket', - Owner => $RT::Nobody->UserObj, - Subject => '[no subject]', - InitialPriority => undef, - FinalPriority => undef, - Status => 'new', - TimeWorked => "0", - TimeLeft => 0, - Due => undef, - Starts => undef, - MIMEObj => undef, - @_); - - my ($ErrStr, $QueueObj, $Owner, $resolved); - my (@non_fatal_errors); - - my $now = RT::Date->new($self->CurrentUser); - $now->SetToNow(); - - if ( (defined($args{'Queue'})) && (!ref($args{'Queue'})) ) { - $QueueObj=RT::Queue->new($RT::SystemUser); - $QueueObj->Load($args{'Queue'}); - } - elsif (ref($args{'Queue'}) eq 'RT::Queue') { - $QueueObj=RT::Queue->new($RT::SystemUser); - $QueueObj->Load($args{'Queue'}->Id); - } - else { - $RT::Logger->debug("$self ". $args{'Queue'} . - " not a recognised queue object."); - } - - #Can't create a ticket without a queue. - unless (defined ($QueueObj)) { - $RT::Logger->debug( "$self No queue given for ticket creation."); - return (0, 0,'Could not create ticket. Queue not set'); - } - - #Now that we have a queue, Check the ACLS - unless ($self->CurrentUser->HasQueueRight(Right => 'CreateTicket', - QueueObj => $QueueObj )) { - return (0,0,"No permission to create tickets in the queue '". - $QueueObj->Name."'."); - } - - #Since we have a queue, we can set queue defaults - #Initial Priority - - # If there's no queue default initial priority and it's not set, set it to 0 - $args{'InitialPriority'} = ($QueueObj->InitialPriority || 0) - unless (defined $args{'InitialPriority'}); - - #Final priority - - # If there's no queue default final priority and it's not set, set it to 0 - $args{'FinalPriority'} = ($QueueObj->FinalPriority || 0) - unless (defined $args{'FinalPriority'}); - - - #TODO we should see what sort of due date we're getting, rather + - # than assuming it's in ISO format. - - #Set the due date. if we didn't get fed one, use the queue default due in - my $due = new RT::Date($self->CurrentUser); - if (defined $args{'Due'}) { - $due->Set (Format => 'ISO', - Value => $args{'Due'}); - } - elsif (defined ($QueueObj->DefaultDueIn)) { - $due->SetToNow; - $due->AddDays($QueueObj->DefaultDueIn); - } - - my $starts = new RT::Date($self->CurrentUser); - if (defined $args{'Starts'}) { - $starts->Set (Format => 'ISO', - Value => $args{'Starts'}); - } - - - # {{{ Deal with setting the owner - - if (ref($args{'Owner'}) eq 'RT::User') { - $Owner = $args{'Owner'}; - } - #If we've been handed something else, try to load the user. - elsif ($args{'Owner'}) { - $Owner = new RT::User($self->CurrentUser); - $Owner->Load($args{'Owner'}); - - } - #If we can't handle it, call it nobody - else { - if (ref($args{'Owner'})) { - $RT::Logger->warning("$ticket ->Create called with an Owner of ". - "type ".ref($args{'Owner'}) .". Defaulting to nobody.\n"); - - push @non_fatal_errors, "Invalid owner. Defaulting to 'nobody'."; - } - else { - $RT::Logger->warning("$self ->Create called with an ". - "unknown datatype for Owner: ".$args{'Owner'} . - ". Defaulting to Nobody.\n"); - } - } - - #If we have a proposed owner and they don't have the right - #to own a ticket, scream about it and make them not the owner - if ((defined ($Owner)) and - ($Owner->Id != $RT::Nobody->Id) and - (!$Owner->HasQueueRight( QueueObj => $QueueObj, - Right => 'OwnTicket'))) { - - $RT::Logger->warning("$self user ".$Owner->Name . "(".$Owner->id . - ") was proposed ". - "as a ticket owner but has no rights to own ". - "tickets in this queue\n"); - - push @non_fatal_errors, "Invalid owner. Defaulting to 'nobody'."; - - $Owner = undef; - } - - #If we haven't been handed a valid owner, make it nobody. - unless (defined ($Owner)) { - $Owner = new RT::User($self->CurrentUser); - $Owner->Load($RT::Nobody->UserObj->Id); - } - - # }}} - - unless ($self->ValidateStatus($args{'Status'})) { - return (0,0,'Invalid value for status'); - } - - if ($args{'Status'} eq 'resolved') { - $resolved = $now->ISO; - } else{ - $resolved = undef; - } - - my $id = $self->SUPER::Create( - Queue => $QueueObj->Id, - Owner => $Owner->Id, - Subject => $args{'Subject'}, - InitialPriority => $args{'InitialPriority'}, - FinalPriority => $args{'FinalPriority'}, - Priority => $args{'InitialPriority'}, - Status => $args{'Status'}, - TimeWorked => $args{'TimeWorked'}, - TimeLeft => $args{'TimeLeft'}, - Type => $args{'Type'}, - Starts => $starts->ISO, - Resolved => $resolved, - Due => $due->ISO - ); - #Set the ticket's effective ID now that we've created it. - my ($val, $msg) = $self->__Set(Field => 'EffectiveId', Value => $id); - - unless ($val) { - $RT::Logger->err("$self ->Create couldn't set EffectiveId: $msg\n"); - } - - - my $watcher; - foreach $watcher (@{$args{'Cc'}}) { - my ($wval, $wmsg) = - $self->_AddWatcher( Type => 'Cc', Person => $watcher, Silent => 1); - push @non_fatal_errors, $wmsg unless ($wval); - } - - foreach $watcher (@{$args{'Requestor'}}) { - my ($wval, $wmsg) = - $self->_AddWatcher( Type => 'Requestor', Person => $watcher, Silent => 1); - push @non_fatal_errors, $wmsg unless ($wval); - } - - foreach $watcher (@{$args{'AdminCc'}}) { - # Note that we're using AddWatcher, rather than _AddWatcher, as we - # actually _want_ that ACL check. Otherwise, random ticket creators - # could make themselves adminccs and maybe get ticket rights. that would - # be poor - my ($wval, $wmsg) = - $self->AddWatcher( Type => 'AdminCc', Person => $watcher, Silent => 1); - push @non_fatal_errors, $wmsg unless ($wval); - } - - # Iterate through all the KeywordSelect-<int> params passed in, calling _AddKeyword - # for each of them - - - foreach my $key (keys %args) { - - next unless ($key =~ /^KeywordSelect-(.*)$/); - - my $ks = $1; - - - my @keywords = ref($args{$key}) eq 'ARRAY' ? - @{$args{$key}} : ($args{$key}); - - foreach my $keyword (@keywords) { - my ($kval, $kmsg) = $self->_AddKeyword(KeywordSelect => $ks, - Keyword => $keyword, - Silent => 1); - } - push @non_fatal_errors, $kmsg unless ($kval); - } - - - - #Add a transaction for the create - my ($Trans, $Msg, $TransObj) = - $self->_NewTransaction( Type => "Create", - TimeTaken => 0, - MIMEObj=>$args{'MIMEObj'}); - - # Logging - if ($self->Id && $Trans) { - $ErrStr = "Ticket ".$self->Id . " created in queue '". $QueueObj->Name. - "'.\n" . join("\n", @non_fatal_errors); - - $RT::Logger->info($ErrStr); - } - else { - # TODO where does this get errstr from? - $RT::Logger->warning("Ticket couldn't be created: $ErrStr"); - } - - return($self->Id, $TransObj->Id, $ErrStr); -} -# }}} -# {{{ sub Import -=head2 Import PARAMHASH -Import a ticket. -Doesn\'t create a transaction. -Doesn\'t supply queue defaults, etc. +=item Create PARAMHASH -Arguments are identical to Create(), with the addition of - Id - Ticket Id +Create takes a hash of values and creates a row in the database: -Returns: TICKETID + int(11) 'EffectiveId'. + int(11) 'Queue'. + varchar(16) 'Type'. + int(11) 'IssueStatement'. + int(11) 'Resolution'. + int(11) 'Owner'. + varchar(200) 'Subject' defaults to '[no subject]'. + int(11) 'InitialPriority'. + int(11) 'FinalPriority'. + int(11) 'Priority'. + int(11) 'TimeEstimated'. + int(11) 'TimeWorked'. + varchar(10) 'Status'. + int(11) 'TimeLeft'. + datetime 'Told'. + datetime 'Starts'. + datetime 'Started'. + datetime 'Due'. + datetime 'Resolved'. + smallint(6) 'Disabled'. =cut -sub Import { - my $self = shift; - my ( $ErrStr, $QueueObj, $Owner); - - my %args = (id => undef, - EffectiveId => undef, - Queue => undef, - Requestor => undef, - Type => 'ticket', - Owner => $RT::Nobody->Id, - Subject => '[no subject]', - InitialPriority => undef, - FinalPriority => undef, - Status => 'new', - TimeWorked => "0", - Due => undef, - Created => undef, - Updated => undef, - Resolved => undef, - Told => undef, - @_); - - if ( (defined($args{'Queue'})) && (!ref($args{'Queue'})) ) { - $QueueObj=RT::Queue->new($RT::SystemUser); - $QueueObj->Load($args{'Queue'}); - #TODO error check this and return 0 if it\'s not loading properly +++ - } - elsif (ref($args{'Queue'}) eq 'RT::Queue') { - $QueueObj=RT::Queue->new($RT::SystemUser); - $QueueObj->Load($args{'Queue'}->Id); - } - else { - $RT::Logger->debug("$self ". $args{'Queue'} . - " not a recognised queue object."); - } - - #Can't create a ticket without a queue. - unless (defined ($QueueObj) and $QueueObj->Id) { - $RT::Logger->debug( "$self No queue given for ticket creation."); - return (0,'Could not create ticket. Queue not set'); - } - - #Now that we have a queue, Check the ACLS - unless ($self->CurrentUser->HasQueueRight(Right => 'CreateTicket', - QueueObj => $QueueObj )) { - return (0,"No permission to create tickets in the queue '". - $QueueObj->Name."'."); - } - - - - - # {{{ Deal with setting the owner - - # Attempt to take user object, user name or user id. - # Assign to nobody if lookup fails. - if (defined ($args{'Owner'})) { - if ( ref($args{'Owner'}) ) { - $Owner = $args{'Owner'}; - } - else { - $Owner = new RT::User($self->CurrentUser); - $Owner->Load($args{'Owner'}); - if ( ! defined($Owner->id) ) { - $Owner->Load($RT::Nobody->id); - } - } - } - - - #If we have a proposed owner and they don't have the right - #to own a ticket, scream about it and make them not the owner - if ((defined ($Owner)) and - ($Owner->Id != $RT::Nobody->Id) and - (!$Owner->HasQueueRight( QueueObj => $QueueObj, - Right => 'OwnTicket'))) { - - $RT::Logger->warning("$self user ".$Owner->Name . "(".$Owner->id . - ") was proposed ". - "as a ticket owner but has no rights to own ". - "tickets in '".$QueueObj->Name."'\n"); - - $Owner = undef; - } - - #If we haven't been handed a valid owner, make it nobody. - unless (defined ($Owner)) { - $Owner = new RT::User($self->CurrentUser); - $Owner->Load($RT::Nobody->UserObj->Id); - } - - # }}} - - unless ($self->ValidateStatus($args{'Status'})) { - return (0,"'$args{'Status'}' is an invalid value for status"); - } - - $self->{'_AccessibleCache'}{Created} = { 'read'=>1, 'write'=>1 }; - $self->{'_AccessibleCache'}{Creator} = { 'read'=>1, 'auto'=>1 }; - $self->{'_AccessibleCache'}{LastUpdated} = { 'read'=>1, 'write'=>1 }; - $self->{'_AccessibleCache'}{LastUpdatedBy} = { 'read'=>1, 'auto'=>1 }; - - - # If we're coming in with an id, set that now. - my $EffectiveId = undef; - if ($args{'id'}) { - $EffectiveId = $args{'id'}; - - } - - - my $id = $self->SUPER::Create( - id => $args{'id'}, - EffectiveId => $EffectiveId, - Queue => $QueueObj->Id, - Owner => $Owner->Id, - Subject => $args{'Subject'}, - InitialPriority => $args{'InitialPriority'}, - FinalPriority => $args{'FinalPriority'}, - Priority => $args{'InitialPriority'}, - Status => $args{'Status'}, - TimeWorked => $args{'TimeWorked'}, - Type => $args{'Type'}, - Created => $args{'Created'}, - Told => $args{'Told'}, - LastUpdated => $args{'Updated'}, - Resolved => $args{Resolved}, - Due => $args{'Due'}, - ); - - - - # If the ticket didn't have an id - # Set the ticket's effective ID now that we've created it. - if ($args{'id'} ) { - $self->Load($args{'id'}); - } - else { - my ($val, $msg) = $self->__Set(Field => 'EffectiveId', Value => $id); - - unless ($val) { - $RT::Logger->err($self."->Import couldn't set EffectiveId: $msg\n"); - } - } - - my $watcher; - foreach $watcher (@{$args{'Cc'}}) { - $self->_AddWatcher( Type => 'Cc', Person => $watcher, Silent => 1); - } - foreach $watcher (@{$args{'AdminCc'}}) { - $self->_AddWatcher( Type => 'AdminCc', Person => $watcher, Silent => 1); - } - foreach $watcher (@{$args{'Requestor'}}) { - $self->_AddWatcher( Type => 'Requestor', Person => $watcher, Silent => 1); - } - - return($self->Id, $ErrStr); -} - -# }}} - -# {{{ sub Delete - -sub Delete { - my $self = shift; - return (0, 'Deleting this object would violate referential integrity.'. - ' That\'s bad.'); -} -# }}} - -# {{{ Routines dealing with watchers. - -# {{{ Routines dealing with adding new watchers - -# {{{ sub AddWatcher - -=head2 AddWatcher - -AddWatcher takes a parameter hash. The keys are as follows: - -Email -Type -Owner - -If the watcher you\'re trying to set has an RT account, set the Owner paremeter to their User Id. Otherwise, set the Email parameter to their Email address. - -=cut - -sub AddWatcher { - my $self = shift; - my %args = ( Email => undef, - Type => undef, - Owner => undef, - @_ - ); - - # {{{ Check ACLS - #If the watcher we're trying to add is for the current user - if ( ( $self->CurrentUser->EmailAddress && - ($args{'Email'} eq $self->CurrentUser->EmailAddress) ) or - ($args{'Owner'} eq $self->CurrentUser->Id) - ) { - - - # If it's an AdminCc and they don't have - # 'WatchAsAdminCc' or 'ModifyTicket', bail - if ($args{'Type'} eq 'AdminCc') { - unless ($self->CurrentUserHasRight('ModifyTicket') or - $self->CurrentUserHasRight('WatchAsAdminCc')) { - return(0, 'Permission Denied'); - } - } - - # If it's a Requestor or Cc and they don't have - # 'Watch' or 'ModifyTicket', bail - elsif (($args{'Type'} eq 'Cc') or - ($args{'Type'} eq 'Requestor')) { - - unless ($self->CurrentUserHasRight('ModifyTicket') or - $self->CurrentUserHasRight('Watch')) { - return(0, 'Permission Denied'); - } - } - else { - $RT::Logger->warn("$self -> AddWatcher hit code". - " it never should. We got passed ". - " a type of ". $args{'Type'}); - return (0,'Error in parameters to TicketAddWatcher'); - } - } - # If the watcher isn't the current user - # and the current user doesn't have 'ModifyTicket' - # bail - else { - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - } - # }}} - - return ($self->_AddWatcher(%args)); -} - - -#This contains the meat of AddWatcher. but can be called from a routine like -# Create, which doesn't need the additional acl check -sub _AddWatcher { - my $self = shift; - my %args = ( - Type => undef, - Silent => undef, - Email => undef, - Owner => 0, - Person => undef, - @_ ); - - - - #clear the watchers cache - $self->{'watchers_cache'} = undef; - - if (defined $args{'Person'}) { - #if it's an RT::User object, pull out the id and shove it in Owner - if (ref ($args{'Person'}) =~ /RT::User/) { - $args{'Owner'} = $args{'Person'}->id; - } - #if it's an int, shove it in Owner - elsif ($args{'Person'} =~ /^\d+$/) { - $args{'Owner'} = $args{'Person'}; - } - #if it's an email address, shove it in Email - else { - $args{'Email'} = $args{'Person'}; - } - } - - # Turn an email address int a watcher if we possibly can. - if ($args{'Email'}) { - my $watcher = new RT::User($self->CurrentUser); - $watcher->LoadByEmail($args{'Email'}); - if ($watcher->Id) { - $args{'Owner'} = $watcher->Id; - delete $args{'Email'}; - } - } - - - # see if this user is already a watcher. if we have an owner, check it - # otherwise, we've got an email-address watcher. use that. - - if ($self->IsWatcher(Type => $args{'Type'}, - Id => ($args{'Owner'} || $args{'Email'}) ) ) { - - - return(0, 'That user is already that sort of watcher for this ticket'); - } - - - require RT::Watcher; - my $Watcher = new RT::Watcher ($self->CurrentUser); - my ($retval, $msg) = ($Watcher->Create( Value => $self->Id, - Scope => 'Ticket', - Email => $args{'Email'}, - Type => $args{'Type'}, - Owner => $args{'Owner'}, - )); - - unless ($args{'Silent'}) { - $self->_NewTransaction( Type => 'AddWatcher', - NewValue => $Watcher->Email, - Field => $Watcher->Type); - } - - return ($retval, $msg); -} - -# }}} - -# {{{ sub AddRequestor - -=head2 AddRequestor - -AddRequestor takes what AddWatcher does, except it presets -the "Type" parameter to \'Requestor\' - -=cut - -sub AddRequestor { - my $self = shift; - return ($self->AddWatcher ( Type => 'Requestor', @_)); -} - -# }}} - -# {{{ sub AddCc - -=head2 AddCc - -AddCc takes what AddWatcher does, except it presets -the "Type" parameter to \'Cc\' - -=cut - -sub AddCc { - my $self = shift; - return ($self->AddWatcher ( Type => 'Cc', @_)); -} -# }}} - -# {{{ sub AddAdminCc - -=head2 AddAdminCc - -AddAdminCc takes what AddWatcher does, except it presets -the "Type" parameter to \'AdminCc\' - -=cut - -sub AddAdminCc { - my $self = shift; - return ($self->AddWatcher ( Type => 'AdminCc', @_)); -} - -# }}} - -# }}} - -# {{{ sub DeleteWatcher - -=head2 DeleteWatcher id [type] - -DeleteWatcher takes a single argument which is either an email address -or a watcher id. -If the first argument is an email address, you need to specify the watcher type you're talking -about as the second argument. Valid values are 'Requestor', 'Cc' or 'AdminCc'. -It removes that watcher from this Ticket\'s list of watchers. - - -=cut -#TODO It is lame that you can't call this the same way you can call AddWatcher -sub DeleteWatcher { +sub Create { my $self = shift; - my $id = shift; - - my $type; - - $type = shift if (@_); - - my $Watcher = new RT::Watcher($self->CurrentUser); - - #If it\'s a numeric watcherid - if ($id =~ /^(\d*)$/) { - $Watcher->Load($id); - } - - #Otherwise, we'll assume it's an email address - elsif ($type) { - my ($result, $msg) = - $Watcher->LoadByValue( Email => $id, - Scope => 'Ticket', - Value => $self->id, - Type => $type); - return (0,$msg) unless ($result); - } - - else { - return(0,"Can\'t delete a watcher by email address without specifying a type"); - } - - # {{{ Check ACLS - - #If the watcher we're trying to delete is for the current user - if ($Watcher->Email eq $self->CurrentUser->EmailAddress) { - - # If it's an AdminCc and they don't have - # 'WatchAsAdminCc' or 'ModifyTicket', bail - if ($Watcher->Type eq 'AdminCc') { - unless ($self->CurrentUserHasRight('ModifyTicket') or - $self->CurrentUserHasRight('WatchAsAdminCc')) { - return(0, 'Permission Denied'); - } - } - - # If it's a Requestor or Cc and they don't have - # 'Watch' or 'ModifyTicket', bail - elsif (($Watcher->Type eq 'Cc') or - ($Watcher->Type eq 'Requestor')) { - - unless ($self->CurrentUserHasRight('ModifyTicket') or - $self->CurrentUserHasRight('Watch')) { - return(0, 'Permission Denied'); - } - } - else { - $RT::Logger->warn("$self -> DeleteWatcher hit code". - " it never should. We got passed ". - " a type of ". $args{'Type'}); - return (0,'Error in parameters to $self DeleteWatcher'); - } - } - # If the watcher isn't the current user - # and the current user doesn't have 'ModifyTicket' - # bail - else { - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - } - - # }}} - - unless (($Watcher->Scope eq 'Ticket') and - ($Watcher->Value == $self->id) ) { - return (0, "Not a watcher for this ticket"); - } - - - #Clear out the watchers hash. - $self->{'watchers'} = undef; - - #If we\'ve validated that it is a watcher for this ticket - $self->_NewTransaction ( Type => 'DelWatcher', - OldValue => $Watcher->Email, - Field => $Watcher->Type, - ); - - my $retval = $Watcher->Delete(); - - unless ($retval) { - return(0,"Watcher could not be deleted. Database inconsistency possible."); - } - - return(1, "Watcher deleted"); -} - -# {{{ sub DeleteRequestor - -=head2 DeleteRequestor EMAIL + my %args = ( + EffectiveId => '0', + Queue => '0', + Type => '', + IssueStatement => '0', + Resolution => '0', + Owner => '0', + Subject => '[no subject]', + InitialPriority => '0', + FinalPriority => '0', + Priority => '0', + TimeEstimated => '0', + TimeWorked => '0', + Status => '', + TimeLeft => '0', + Told => '', + Starts => '', + Started => '', + Due => '', + Resolved => '', + Disabled => '0', -Takes an email address. It calls DeleteWatcher with a preset -type of 'Requestor' - - -=cut + @_); + $self->SUPER::Create( + EffectiveId => $args{'EffectiveId'}, + Queue => $args{'Queue'}, + Type => $args{'Type'}, + IssueStatement => $args{'IssueStatement'}, + Resolution => $args{'Resolution'}, + Owner => $args{'Owner'}, + Subject => $args{'Subject'}, + InitialPriority => $args{'InitialPriority'}, + FinalPriority => $args{'FinalPriority'}, + Priority => $args{'Priority'}, + TimeEstimated => $args{'TimeEstimated'}, + TimeWorked => $args{'TimeWorked'}, + Status => $args{'Status'}, + TimeLeft => $args{'TimeLeft'}, + Told => $args{'Told'}, + Starts => $args{'Starts'}, + Started => $args{'Started'}, + Due => $args{'Due'}, + Resolved => $args{'Resolved'}, + Disabled => $args{'Disabled'}, +); -sub DeleteRequestor { - my $self = shift; - my $id = shift; - return ($self->DeleteWatcher ($id, 'Requestor')) } -# }}} - -# {{{ sub DeleteCc - -=head2 DeleteCc EMAIL - -Takes an email address. It calls DeleteWatcher with a preset -type of 'Cc' - - -=cut - -sub DeleteCc { - my $self = shift; - my $id = shift; - return ($self->DeleteWatcher ($id, 'Cc')) -} - -# }}} - -# {{{ sub DeleteAdminCc - -=head2 DeleteAdminCc EMAIL - -Takes an email address. It calls DeleteWatcher with a preset -type of 'AdminCc' - - -=cut - -sub DeleteAdminCc { - my $self = shift; - my $id = shift; - return ($self->DeleteWatcher ($id, 'AdminCc')) -} - -# }}} - - -# }}} -# {{{ sub Watchers -=head2 Watchers +=item id -Watchers returns a Watchers object preloaded with this ticket\'s watchers. +Returns the current value of id. +(In the database, id is stored as int(11).) -# It should return only the ticket watchers. the actual FooAsString -# methods capture the queue watchers too. I don't feel thrilled about this, -# but we don't want the Cc Requestors and AdminCc objects to get filled up -# with all the queue watchers too. we've got seperate objects for that. - # should we rename these as s/(.*)AsString/$1Addresses/ or somesuch? =cut -sub Watchers { - my $self = shift; - - require RT::Watchers; - my $watchers=RT::Watchers->new($self->CurrentUser); - if ($self->CurrentUserHasRight('ShowTicket')) { - $watchers->LimitToTicket($self->id); - } - - return($watchers); - -} - -# }}} -# {{{ a set of [foo]AsString subs that will return the various sorts of watchers for a ticket/queue as a comma delineated string +=item EffectiveId -=head2 RequestorsAsString +Returns the current value of EffectiveId. +(In the database, EffectiveId is stored as int(11).) - B<Returns> String: All Ticket Requestor email addresses as a string. -=cut -sub RequestorsAsString { - my $self=shift; +=item SetEffectiveId VALUE - unless ($self->CurrentUserHasRight('ShowTicket')) { - return undef; - } - - return ($self->Requestors->EmailsAsString() ); -} -=head2 WatchersAsString +Set EffectiveId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, EffectiveId will be stored as a int(11).) -B<Returns> String: All Ticket Watchers email addresses as a string =cut -sub WatchersAsString { - my $self=shift; - - unless ($self->CurrentUserHasRight('ShowTicket')) { - return (0, "Permission Denied"); - } - - return ($self->Watchers->EmailsAsString()); - -} -=head2 AdminCcAsString +=item Queue -returns String: All Ticket AdminCc email addresses as a string +Returns the current value of Queue. +(In the database, Queue is stored as int(11).) -=cut -sub AdminCcAsString { - my $self=shift; +=item SetQueue VALUE - unless ($self->CurrentUserHasRight('ShowTicket')) { - return undef; - } - - return ($self->AdminCc->EmailsAsString()); - -} -=head2 CcAsString +Set Queue to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Queue will be stored as a int(11).) -returns String: All Ticket Ccs as a string of email addresses =cut -sub CcAsString { - my $self=shift; - - unless ($self->CurrentUserHasRight('ShowTicket')) { - return undef; - } - - return ($self->Cc->EmailsAsString()); - -} - -# }}} - -# {{{ Routines that return RT::Watchers objects of Requestors, Ccs and AdminCcs -# {{{ sub Requestors +=item QueueObj -=head2 Requestors +Returns the Queue Object which has the id returned by Queue -Takes nothing. -Returns this ticket's Requestors as an RT::Watchers object - -=cut - -sub Requestors { - my $self = shift; - - my $requestors = $self->Watchers(); - if ($self->CurrentUserHasRight('ShowTicket')) { - $requestors->LimitToRequestors(); - } - - return($requestors); - -} - -# }}} - -# {{{ sub Cc - -=head2 Cc - -Takes nothing. -Returns a watchers object which contains this ticket's Cc watchers - -=cut - -sub Cc { - my $self = shift; - - my $cc = $self->Watchers(); - - if ($self->CurrentUserHasRight('ShowTicket')) { - $cc->LimitToCc(); - } - - return($cc); - -} - -# }}} - -# {{{ sub AdminCc - -=head2 AdminCc - -Takes nothing. -Returns this ticket\'s administrative Ccs as an RT::Watchers object - -=cut - -sub AdminCc { - my $self = shift; - - my $admincc = $self->Watchers(); - if ($self->CurrentUserHasRight('ShowTicket')) { - $admincc->LimitToAdminCc(); - } - return($admincc); -} - -# }}} - -# }}} - -# {{{ IsWatcher,IsRequestor,IsCc, IsAdminCc - -# {{{ sub IsWatcher -# a generic routine to be called by IsRequestor, IsCc and IsAdminCc - -=head2 IsWatcher - -Takes a param hash with the attributes Type and User. User is either a user object or string containing an email address. Returns true if that user or string -is a ticket watcher. Returns undef otherwise - -=cut - -sub IsWatcher { - my $self = shift; - - my %args = ( Type => 'Requestor', - Email => undef, - Id => undef, - @_ - ); - - my %cols = ('Type' => $args{'Type'}, - 'Scope' => 'Ticket', - 'Value' => $self->Id, - 'Owner' => undef, - 'Email' => undef - ); - - if (ref($args{'Id'})){ - #If it's a ref, it's an RT::User object; - $cols{'Owner'} = $args{'Id'}->Id; - } - elsif ($args{'Id'} =~ /^\d+$/) { - # if it's an integer, it's a reference to an RT::User obj - $cols{'Owner'} = $args{'Id'}; - } - else { - $cols{'Email'} = $args{'Id'}; - } - - if ($args{'Email'}) { - $cols{'Email'} = $args{'Email'}; - } - - my $description = join(":",%cols); - - #If we've cached a positive match... - if (defined $self->{'watchers_cache'}->{"$description"}) { - if ($self->{'watchers_cache'}->{"$description"} == 1) { - return(1); - } - else { #If we've cached a negative match... - return(undef); - } - } - - - my $watcher = new RT::Watcher($self->CurrentUser); - $watcher->LoadByCols(%cols); - - - if ($watcher->id) { - $self->{'watchers_cache'}->{"$description"} = 1; - return(1); - } - else { - $self->{'watchers_cache'}->{"$description"} = 0; - return(undef); - } - -} -# }}} - -# {{{ sub IsRequestor - -=head2 IsRequestor - - Takes an email address, RT::User object or integer (RT user id) - Returns true if the string is a requestor of the current ticket. - - -=cut - -sub IsRequestor { - my $self = shift; - my $person = shift; - - return ($self->IsWatcher(Type => 'Requestor', Id => $person)); - -}; - -# }}} - -# {{{ sub IsCc - -=head2 IsCc - -Takes a string. Returns true if the string is a Cc watcher of the current ticket. - -=cut - -sub IsCc { - my $self = shift; - my $cc = shift; - - return ($self->IsWatcher( Type => 'Cc', Id => $cc )); - -} - -# }}} - -# {{{ sub IsAdminCc - -=head2 IsAdminCc - -Takes a string. Returns true if the string is an AdminCc watcher of the current ticket. - -=cut - -sub IsAdminCc { - my $self = shift; - my $person = shift; - - return ($self->IsWatcher( Type => 'AdminCc', Id => $person )); - -} - -# }}} - -# {{{ sub IsOwner - -=head2 IsOwner - - Takes an RT::User object. Returns true if that user is this ticket's owner. -returns undef otherwise - -=cut - -sub IsOwner { - my $self = shift; - my $person = shift; - - - # no ACL check since this is used in acl decisions - # unless ($self->CurrentUserHasRight('ShowTicket')) { - # return(undef); - # } - - - #Tickets won't yet have owners when they're being created. - unless ($self->OwnerObj->id) { - return(undef); - } - - if ($person->id == $self->OwnerObj->id) { - return(1); - } - else { - return(undef); - } -} - - -# }}} - -# }}} - -# }}} - -# {{{ Routines dealing with queues - -# {{{ sub ValidateQueue - -sub ValidateQueue { - my $self = shift; - my $Value = shift; - - #TODO I don't think this should be here. We shouldn't allow anything to have an undef queue, - if (!$Value) { - $RT::Logger->warning( " RT:::Queue::ValidateQueue called with a null value. this isn't ok."); - return (1); - } - - my $QueueObj = RT::Queue->new($self->CurrentUser); - my $id = $QueueObj->Load($Value); - - if ($id) { - return (1); - } - else { - return (undef); - } -} - -# }}} - -# {{{ sub SetQueue - -sub SetQueue { - my $self = shift; - my $NewQueue = shift; - - #Redundant. ACL gets checked in _Set; - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - - my $NewQueueObj = RT::Queue->new($self->CurrentUser); - $NewQueueObj->Load($NewQueue); - - unless ($NewQueueObj->Id()) { - return (0, "That queue does not exist"); - } - - if ($NewQueueObj->Id == $self->QueueObj->Id) { - return (0, 'That is the same value'); - } - unless ($self->CurrentUser->HasQueueRight(Right =>'CreateTicket', - QueueObj => $NewQueueObj )) { - return (0, "You may not create requests in that queue."); - } - - unless ($self->OwnerObj->HasQueueRight(Right=> 'OwnTicket', - QueueObj => $NewQueueObj)) { - $self->Untake(); - } - - return($self->_Set(Field => 'Queue', Value => $NewQueueObj->Id())); - -} - -# }}} - -# {{{ sub QueueObj - -=head2 QueueObj - -Takes nothing. returns this ticket's queue object =cut sub QueueObj { - my $self = shift; - - my $queue_obj = RT::Queue->new($self->CurrentUser); - #We call __Value so that we can avoid the ACL decision and some deep recursion - my ($result) = $queue_obj->Load($self->__Value('Queue')); - return ($queue_obj); + my $self = shift; + my $Queue = RT::Queue->new($self->CurrentUser); + $Queue->Load($self->__Value('Queue')); + return($Queue); } +=item Type -# }}} +Returns the current value of Type. +(In the database, Type is stored as varchar(16).) -# }}} -# {{{ Date printing routines -# {{{ sub DueObj - -=head2 DueObj - - Returns an RT::Date object containing this ticket's due date - -=cut -sub DueObj { - my $self = shift; - - my $time = new RT::Date($self->CurrentUser); - - # -1 is RT::Date slang for never - if ($self->Due) { - $time->Set(Format => 'sql', Value => $self->Due ); - } - else { - $time->Set(Format => 'unix', Value => -1); - } - - return $time; -} -# }}} +=item SetType VALUE -# {{{ sub DueAsString -=head2 DueAsString +Set Type to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Type will be stored as a varchar(16).) -Returns this ticket's due date as a human readable string =cut -sub DueAsString { - my $self = shift; - return $self->DueObj->AsString(); -} - -# }}} -# {{{ sub GraceTimeAsString +=item IssueStatement -=head2 GraceTimeAsString +Returns the current value of IssueStatement. +(In the database, IssueStatement is stored as int(11).) -Return the time until this ticket is due as a string - -=cut - -# TODO This should be deprecated - -sub GraceTimeAsString { - my $self=shift; - - if ($self->Due) { - return ($self->DueObj->AgeAsString()); - } else { - return ""; - } -} -# }}} +=item SetIssueStatement VALUE -# {{{ sub ResolvedObj -=head2 ResolvedObj +Set IssueStatement to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, IssueStatement will be stored as a int(11).) - Returns an RT::Date object of this ticket's 'resolved' time. =cut -sub ResolvedObj { - my $self = shift; - my $time = new RT::Date($self->CurrentUser); - $time->Set(Format => 'sql', Value => $self->Resolved); - return $time; -} -# }}} +=item Resolution -# {{{ sub SetStarted +Returns the current value of Resolution. +(In the database, Resolution is stored as int(11).) -=head2 SetStarted -Takes a date in ISO format or undef -Returns a transaction id and a message -The client calls "Start" to note that the project was started on the date in $date. -A null date means "now" -=cut - -sub SetStarted { - my $self = shift; - my $time = shift || 0; - - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - #We create a date object to catch date weirdness - my $time_obj = new RT::Date($self->CurrentUser()); - if ($time != 0) { - $time_obj->Set(Format => 'ISO', Value => $time); - } - else { - $time_obj->SetToNow(); - } - - #Now that we're starting, open this ticket - #TODO do we really want to force this as policy? it should be a scrip - - #We need $TicketAsSystem, in case the current user doesn't have - #ShowTicket - # - my $TicketAsSystem = new RT::Ticket($RT::SystemUser); - $TicketAsSystem->Load($self->Id); - if ($TicketAsSystem->Status eq 'new') { - $TicketAsSystem->Open(); - } - - return ($self->_Set(Field => 'Started', Value =>$time_obj->ISO)); - -} +=item SetResolution VALUE -# }}} -# {{{ sub StartedObj +Set Resolution to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Resolution will be stored as a int(11).) -=head2 StartedObj - - Returns an RT::Date object which contains this ticket's -'Started' time. =cut -sub StartedObj { - my $self = shift; - - my $time = new RT::Date($self->CurrentUser); - $time->Set(Format => 'sql', Value => $self->Started); - return $time; -} -# }}} +=item Owner -# {{{ sub StartsObj +Returns the current value of Owner. +(In the database, Owner is stored as int(11).) -=head2 StartsObj - Returns an RT::Date object which contains this ticket's -'Starts' time. -=cut - -sub StartsObj { - my $self = shift; - - my $time = new RT::Date($self->CurrentUser); - $time->Set(Format => 'sql', Value => $self->Starts); - return $time; -} -# }}} +=item SetOwner VALUE -# {{{ sub ToldObj -=head2 ToldObj +Set Owner to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Owner will be stored as a int(11).) - Returns an RT::Date object which contains this ticket's -'Told' time. =cut -sub ToldObj { - my $self = shift; - - my $time = new RT::Date($self->CurrentUser); - $time->Set(Format => 'sql', Value => $self->Told); - return $time; -} +=item Subject -# }}} +Returns the current value of Subject. +(In the database, Subject is stored as varchar(200).) -# {{{ sub LongSinceToldAsString -# TODO this should be deprecated +=item SetSubject VALUE -sub LongSinceToldAsString { - my $self = shift; - - if ($self->Told) { - return $self->ToldObj->AgeAsString(); - } else { - return "Never"; - } -} -# }}} - -# {{{ sub ToldAsString -=head2 ToldAsString +Set Subject to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Subject will be stored as a varchar(200).) -A convenience method that returns ToldObj->AsString - -TODO: This should be deprecated =cut -sub ToldAsString { - my $self = shift; - if ($self->Told) { - return $self->ToldObj->AsString(); - } - else { - return("Never"); - } -} -# }}} - -# {{{ sub TimeWorkedAsString +=item InitialPriority -=head2 TimeWorkedAsString +Returns the current value of InitialPriority. +(In the database, InitialPriority is stored as int(11).) -Returns the amount of time worked on this ticket as a Text String -=cut -sub TimeWorkedAsString { - my $self=shift; - return "0" unless $self->TimeWorked; - - #This is not really a date object, but if we diff a number of seconds - #vs the epoch, we'll get a nice description of time worked. - - my $worked = new RT::Date($self->CurrentUser); - #return the #of minutes worked turned into seconds and written as - # a simple text string - - return($worked->DurationAsString($self->TimeWorked*60)); -} +=item SetInitialPriority VALUE -# }}} +Set InitialPriority to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, InitialPriority will be stored as a int(11).) -# }}} - -# {{{ Routines dealing with correspondence/comments - -# {{{ sub Comment - -=head2 Comment - -Comment on this ticket. -Takes a hashref with the follwoing attributes: - -MIMEObj, TimeTaken, CcMessageTo, BccMessageTo =cut -sub Comment { - my $self = shift; - - my %args = ( - CcMessageTo => undef, - BccMessageTo => undef, - MIMEObj => undef, - TimeTaken => 0, - @_ ); - - unless (($self->CurrentUserHasRight('CommentOnTicket')) or - ($self->CurrentUserHasRight('ModifyTicket'))) { - return (0, "Permission Denied"); - } - - unless ($args{'MIMEObj'}) { - return(0,"No correspondence attached"); - } - - # If we've been passed in CcMessageTo and BccMessageTo fields, - # add them to the mime object for passing on to the transaction handler - # The "NotifyOtherRecipients" scripAction will look for RT--Send-Cc: and - # RT-Send-Bcc: headers - - $args{'MIMEObj'}->head->add('RT-Send-Cc', $args{'CcMessageTo'}); - $args{'MIMEObj'}->head->add('RT-Send-Bcc', $args{'BccMessageTo'}); - - #Record the correspondence (write the transaction) - my ($Trans, $Msg, $TransObj) = $self->_NewTransaction( Type => 'Comment', - Data =>($args{'MIMEObj'}->head->get('subject') || 'No Subject'), - TimeTaken => $args{'TimeTaken'}, - MIMEObj => $args{'MIMEObj'} - ); - - - return ($Trans, "The comment has been recorded"); -} - -# }}} -# {{{ sub Correspond +=item FinalPriority -=head2 Correspond +Returns the current value of FinalPriority. +(In the database, FinalPriority is stored as int(11).) -Correspond on this ticket. -Takes a hashref with the following attributes: - - -MIMEObj, TimeTaken, CcMessageTo, BccMessageTo - -=cut - -sub Correspond { - my $self = shift; - my %args = ( - CcMessageTo => undef, - BccMessageTo => undef, - MIMEObj => undef, - TimeTaken => 0, - @_ ); - - unless (($self->CurrentUserHasRight('ReplyToTicket')) or - ($self->CurrentUserHasRight('ModifyTicket'))) { - return (0, "Permission Denied"); - } - - unless ($args{'MIMEObj'}) { - return(0,"No correspondence attached"); - } - - # If we've been passed in CcMessageTo and BccMessageTo fields, - # add them to the mime object for passing on to the transaction handler - # The "NotifyOtherRecipients" scripAction will look for RT-Send-Cc: and RT-Send-Bcc: - # headers - - $args{'MIMEObj'}->head->add('RT-Send-Cc', $args{'CcMessageTo'}); - $args{'MIMEObj'}->head->add('RT-Send-Bcc', $args{'BccMessageTo'}); - - #Record the correspondence (write the transaction) - my ($Trans,$msg, $TransObj) = $self->_NewTransaction - (Type => 'Correspond', - Data => ($args{'MIMEObj'}->head->get('subject') || 'No Subject'), - TimeTaken => $args{'TimeTaken'}, - MIMEObj=> $args{'MIMEObj'} - ); - - # TODO this bit of logic should really become a scrip for 2.2 - my $TicketAsSystem = new RT::Ticket($RT::SystemUser); - $TicketAsSystem->Load($self->Id); - - if ( - ($TicketAsSystem->Status ne 'open') and - ($TicketAsSystem->Status ne 'new') - ) { - - my $oldstatus = $TicketAsSystem->Status(); - $TicketAsSystem->__Set(Field => 'Status', Value => 'open'); - $TicketAsSystem->_NewTransaction - ( Type => 'Set', - Field => 'Status', - OldValue => $oldstatus, - NewValue => 'open', - Data => 'Ticket auto-opened on incoming correspondence' - ); - } - - unless ($Trans) { - $RT::Logger->err("$self couldn't init a transaction ($msg)\n"); - return ($Trans, "correspondence (probably) not sent", $args{'MIMEObj'}); - } - - #Set the last told date to now if this isn't mail from the requestor. - #TODO: Note that this will wrongly ack mail from any non-requestor as a "told" - - unless ($TransObj->IsInbound) { - $self->_SetTold; - } - - return ($Trans, "correspondence sent"); -} -# }}} -# }}} +=item SetFinalPriority VALUE -# {{{ Routines dealing with Links and Relations between tickets -# {{{ Link Collections +Set FinalPriority to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, FinalPriority will be stored as a int(11).) -# {{{ sub Members - -=head2 Members - - This returns an RT::Links object which references all the tickets -which are 'MembersOf' this ticket =cut -sub Members { - my $self = shift; - return ($self->_Links('Target', 'MemberOf')); -} - -# }}} -# {{{ sub MemberOf +=item Priority -=head2 MemberOf +Returns the current value of Priority. +(In the database, Priority is stored as int(11).) - This returns an RT::Links object which references all the tickets that this -ticket is a 'MemberOf' -=cut - -sub MemberOf { - my $self = shift; - return ($self->_Links('Base', 'MemberOf')); -} -# }}} +=item SetPriority VALUE -# {{{ RefersTo -=head2 RefersTo +Set Priority to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Priority will be stored as a int(11).) - This returns an RT::Links object which shows all references for which this ticket is a base =cut -sub RefersTo { - my $self = shift; - return ($self->_Links('Base', 'RefersTo')); -} - -# }}} -# {{{ ReferredToBy +=item TimeEstimated -=head2 ReferredToBy +Returns the current value of TimeEstimated. +(In the database, TimeEstimated is stored as int(11).) - This returns an RT::Links object which shows all references for which this ticket is a target -=cut -sub ReferredToBy { - my $self = shift; - return ($self->_Links('Target', 'RefersTo')); -} +=item SetTimeEstimated VALUE -# }}} -# {{{ DependedOnBy +Set TimeEstimated to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TimeEstimated will be stored as a int(11).) -=head2 DependedOnBy - - This returns an RT::Links object which references all the tickets that depend on this one =cut -sub DependedOnBy { - my $self = shift; - return ($self->_Links('Target','DependsOn')); -} - -# }}} - -# {{{ DependsOn - -=head2 DependsOn - - This returns an RT::Links object which references all the tickets that this ticket depends on - -=cut -sub DependsOn { - my $self = shift; - return ($self->_Links('Base','DependsOn')); -} - -# }}} - -# {{{ sub _Links - -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')) { - - $self->{"$field$type"}->Limit(FIELD=>$field, VALUE=>$self->URI); - $self->{"$field$type"}->Limit(FIELD=>'Type', - VALUE=>$type) if ($type); - } - } - return ($self->{"$field$type"}); -} - -# }}} - -# }}} -# {{{ sub DeleteLink +=item TimeWorked -=head2 DeleteLink +Returns the current value of TimeWorked. +(In the database, TimeWorked is stored as int(11).) -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, - @_ ); - - #check acls - unless ($self->CurrentUserHasRight('ModifyTicket')) { - $RT::Logger->debug("No permission to delete links\n"); - return (0, 'Permission Denied'); - - - } - - #we want one of base and target. we don't care which - #but we only want _one_ - - if ($args{'Base'} and $args{'Target'}) { - $RT::Logger->debug("$self ->_DeleteLink. got both Base and Target\n"); - return (0, 'Can\'t specifiy both base and target'); - } - elsif ($args{'Base'}) { - $args{'Target'} = $self->Id(); - } - elsif ($args{'Target'}) { - $args{'Base'} = $self->Id(); - } - else { - $RT::Logger->debug("$self: Base or Target must be specified\n"); - return (0, 'Either base or target must be specified'); - } - - my $link = new RT::Link($self->CurrentUser); - $RT::Logger->debug("Trying to load link: ". $args{'Base'}." ". $args{'Type'}. " ". $args{'Target'}. "\n"); - - $link->Load($args{'Base'}, $args{'Type'}, $args{'Target'}); - - - - #it's a real link. - if ($link->id) { - $RT::Logger->debug("We're going to delete link ".$link->id."\n"); - $link->Delete(); - - my $TransString= - "Ticket $args{'Base'} no longer $args{Type} ticket $args{'Target'}."; - my ($Trans, $Msg, $TransObj) = $self->_NewTransaction - (Type => 'DeleteLink', - Field => $args{'Type'}, - Data => $TransString, - TimeTaken => 0 - ); - - return ($linkid, "Link deleted ($TransString)", $transactionid); - } - #if it's not a link we can find - else { - $RT::Logger->debug("Couldn't find that link\n"); - return (0, "Link not found"); - } -} +=item SetTimeWorked VALUE -# }}} -# {{{ sub AddLink - -=head2 AddLink - -Takes a paramhash of Type and one of Base or Target. Adds that link to this ticket. +Set TimeWorked to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TimeWorked will be stored as a int(11).) =cut -sub AddLink { - my $self = shift; - my %args = ( Target => '', - Base => '', - Type => '', - @_ ); - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - if ($args{'Base'} and $args{'Target'}) { - $RT::Logger->debug("$self tried to delete a link. both base and target were specified\n"); - return (0, 'Can\'t specifiy both base and target'); - } - elsif ($args{'Base'}) { - $args{'Target'} = $self->Id(); - } - elsif ($args{'Target'}) { - $args{'Base'} = $self->Id(); - } - else { - return (0, 'Either base or target must be specified'); - } - - # {{{ We don't want references to ourself - if ($args{Base} eq $args{Target}) { - return (0, "Can\'t link a ticket to itself"); - } - - # }}} - - # If the base isn't a URI, make it a URI. - # If the target isn't a URI, make it a URI. - - # {{{ Check if the link already exists - we don't want duplicates - my $old_link= new RT::Link ($self->CurrentUser); - $old_link->Load($args{'Base'}, $args{'Type'}, $args{'Target'}); - if ($old_link->Id) { - $RT::Logger->debug("$self Somebody tried to duplicate a link"); - return ($old_link->id, "Link already exists",0); - } - # }}} - - # Storing the link in the DB. - my $link = RT::Link->new($self->CurrentUser); - my ($linkid) = $link->Create(Target => $args{Target}, - Base => $args{Base}, - Type => $args{Type}); - - unless ($linkid) { - return (0,"Link could not be created"); - } - #Write the transaction - - my $TransString="Ticket $args{'Base'} $args{Type} ticket $args{'Target'}."; - - my ($Trans, $Msg, $TransObj) = $self->_NewTransaction - (Type => 'AddLink', - Field => $args{'Type'}, - Data => $TransString, - TimeTaken => 0 - ); - - return ($Trans, "Link created ($TransString)"); - - -} -# }}} -# {{{ sub URI +=item Status -=head2 URI +Returns the current value of Status. +(In the database, Status is stored as varchar(10).) -Returns this ticket's URI -=cut -sub URI { - my $self = shift; - return $RT::TicketBaseURI.$self->id; -} +=item SetStatus VALUE -# }}} -# {{{ sub MergeInto +Set Status to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Status will be stored as a varchar(10).) -=head2 MergeInto -MergeInto take the id of the ticket to merge this ticket into. =cut -sub MergeInto { - my $self = shift; - my $MergeInto = shift; - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - # Load up the new ticket. - my $NewTicket = RT::Ticket->new($RT::SystemUser); - $NewTicket->Load($MergeInto); - - # make sure it exists. - unless (defined $NewTicket->Id) { - return (0, 'New ticket doesn\'t exist'); - } - - - # Make sure the current user can modify the new ticket. - unless ($NewTicket->CurrentUserHasRight('ModifyTicket')) { - $RT::Logger->debug("failed..."); - return (0, "Permission Denied"); - } - - $RT::Logger->debug("checking if the new ticket has the same id and effective id..."); - unless ($NewTicket->id == $NewTicket->EffectiveId) { - $RT::Logger->err('$self trying to merge into '.$NewTicket->Id . - ' which is itself merged.\n'); - return (0, "Can't merge into a merged ticket. ". - "You should never get this error"); - } - - - # We use EffectiveId here even though it duplicates information from - # the links table becasue of the massive performance hit we'd take - # by trying to do a seperate database query for merge info everytime - # loaded a ticket. - - - #update this ticket's effective id to the new ticket's id. - my ($id_val, $id_msg) = $self->__Set(Field => 'EffectiveId', - Value => $NewTicket->Id()); - - unless ($id_val) { - $RT::Logger->error("Couldn't set effective ID for ".$self->Id. - ": $id_msg"); - return(0,"Merge failed. Couldn't set EffectiveId"); - } - - my ($status_val, $status_msg) = $self->__Set(Field => 'Status', - Value => 'resolved'); - - unless ($status_val) { - $RT::Logger->error("$self couldn't set status to resolved.". - "RT's Database may be inconsistent."); - } - - #make a new link: this ticket is merged into that other ticket. - $self->AddLink( Type =>'MergedInto', - Target => $NewTicket->Id() ); - - #add all of this ticket's watchers to that ticket. - my $watchers = $self->Watchers(); - - while (my $watcher = $watchers->Next()) { - unless ( - ($watcher->Owner && - $NewTicket->IsWatcher (Type => $watcher->Type, - Id => $watcher->Owner)) or - ($watcher->Email && - $NewTicket->IsWatcher (Type => $watcher->Type, - Id => $watcher->Email)) - ) { - - - - $NewTicket->_AddWatcher(Silent => 1, - Type => $watcher->Type, - Email => $watcher->Email, - Owner => $watcher->Owner); - } - } - - - #find all of the tickets that were merged into this ticket. - my $old_mergees = new RT::Tickets($self->CurrentUser); - $old_mergees->Limit( FIELD => 'EffectiveId', - OPERATOR => '=', - VALUE => $self->Id ); - - # update their EffectiveId fields to the new ticket's id - while (my $ticket = $old_mergees->Next()) { - my ($val, $msg) = $ticket->__Set(Field => 'EffectiveId', - Value => $NewTicket->Id()); - } - $NewTicket->_SetLastUpdated; - - return ($TransactionObj, "Merge Successful"); -} - -# }}} - -# }}} - -# {{{ Routines dealing with keywords - -# {{{ sub KeywordsObj - -=head2 KeywordsObj [KEYWORD_SELECT_ID] - - Returns an B<RT::ObjectKeywords> object preloaded with this ticket's ObjectKeywords. -If the optional KEYWORD_SELECT_ID parameter is set, limit the keywords object to that keyword -select. - -=cut - -sub KeywordsObj { - my $self = shift; - my $keyword_select; - - $keyword_select = shift if (@_); - - use RT::ObjectKeywords; - my $Keywords = new RT::ObjectKeywords($self->CurrentUser); - - #ACL check - if ($self->CurrentUserHasRight('ShowTicket')) { - $Keywords->LimitToTicket($self->id); - if ($keyword_select) { - $Keywords->LimitToKeywordSelect($keyword_select); - } - } - return ($Keywords); -} -# }}} -# {{{ sub AddKeyword +=item TimeLeft -=head2 AddKeyword +Returns the current value of TimeLeft. +(In the database, TimeLeft is stored as int(11).) -Takes a paramhash of Keyword and KeywordSelect. If Keyword is a valid choice -for KeywordSelect, creates a KeywordObject. If the KeywordSelect says this should -be a single KeywordObject, automatically removes the old value. - Issues: probably doesn't enforce the depth restrictions or make sure that keywords -are coming from the right part of the tree. really should. -=cut +=item SetTimeLeft VALUE -sub AddKeyword { - my $self = shift; - #ACL check - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, 'Permission Denied'); - } - - return($self->_AddKeyword(@_)); - -} +Set TimeLeft to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TimeLeft will be stored as a int(11).) -# Helper version of AddKeyword without that pesky ACL check -sub _AddKeyword { - my $self = shift; - my %args = ( KeywordSelect => undef, # id of a keyword select record - Keyword => undef, #id of the keyword to add - Silent => 0, - @_ - ); - - my ($OldValue); - - #TODO make sure that $args{'Keyword'} is valid for $args{'KeywordSelect'} - - #TODO: make sure that $args{'KeywordSelect'} applies to this ticket's queue. - - my $Keyword = new RT::Keyword($self->CurrentUser); - unless ($Keyword->Load($args{'Keyword'}) ) { - $RT::Logger->err("$self Couldn't load Keyword ".$args{'Keyword'} ."\n"); - return(0, "Couldn't load keyword"); - } - - my $KeywordSelectObj = new RT::KeywordSelect($self->CurrentUser); - unless ($KeywordSelectObj->Load($args{'KeywordSelect'})) { - $RT::Logger->err("$self Couldn't load KeywordSelect ".$args{'KeywordSelect'}); - return(0, "Couldn't load keywordselect"); - } - - my $Keywords = $self->KeywordsObj($KeywordSelectObj->id); - - #If the ticket already has this keyword, just get out of here. - if ($Keywords->HasEntry($Keyword->id)) { - return(0, "That is already the current value"); - } - - #If the keywordselect wants this to be a singleton: - - if ($KeywordSelectObj->Single) { - - #Whack any old values...keep track of the last value that we get. - #we shouldn't need a loop ehre, but we do it anyway, to try to - # help keep the database clean. - while (my $OldKey = $Keywords->Next) { - $OldValue = $OldKey->KeywordObj->Name; - $OldKey->Delete(); - } - - - } - - # create the new objectkeyword - my $ObjectKeyword = new RT::ObjectKeyword($self->CurrentUser); - my $result = $ObjectKeyword->Create( Keyword => $Keyword->Id, - ObjectType => 'Ticket', - ObjectId => $self->Id, - KeywordSelect => $KeywordSelectObj->Id ); - - - # record a single transaction, unless we were told not to - unless ($args{'Silent'}) { - my ($TransactionId, $Msg, $TransactionObj) = - $self->_NewTransaction( Type => 'Keyword', - Field => $KeywordSelectObj->Id, - OldValue => $OldValue, - NewValue => $Keyword->Name ); - } - return ($TransactionId, "Keyword ".$ObjectKeyword->KeywordObj->Name ." added."); - -} - -# }}} - -# {{{ sub DeleteKeyword - -=head2 DeleteKeyword - - Takes a paramhash. Deletes the Keyword denoted by the I<Keyword> parameter from this - ticket's object keywords. =cut -sub DeleteKeyword { - my $self = shift; - my %args = ( Keyword => undef, - KeywordSelect => undef, - @_ ); - - #ACL check - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, 'Permission Denied'); - } - - - #Load up the ObjectKeyword we\'re talking about - my $ObjectKeyword = new RT::ObjectKeyword($self->CurrentUser); - $ObjectKeyword->LoadByCols(Keyword => $args{'Keyword'}, - KeywordSelect => $args{'KeywordSelect'}, - ObjectType => 'Ticket', - ObjectId => $self->id() - ); - - #if we can\'t find it, bail - unless ($ObjectKeyword->id) { - $RT::Logger->err("Couldn't find the keyword ".$args{'Keyword'} . - " for keywordselect ". $args{'KeywordSelect'} . - "for ticket ".$self->id ); - return (undef, "Couldn't load keyword while trying to delete it."); - }; - - #record transaction here. - my ($TransactionId, $Msg, $TransObj) = - $self->_NewTransaction( Type => 'Keyword', - OldValue => $ObjectKeyword->KeywordObj->Name); - - $ObjectKeyword->Delete(); - - return ($TransactionId, "Keyword ".$ObjectKeyword->KeywordObj->Name ." deleted."); - -} -# }}} +=item Told -# }}} +Returns the current value of Told. +(In the database, Told is stored as datetime.) -# {{{ Routines dealing with ownership -# {{{ sub OwnerObj -=head2 OwnerObj +=item SetTold VALUE -Takes nothing and returns an RT::User object of -this ticket's owner -=cut +Set Told to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Told will be stored as a datetime.) -sub OwnerObj { - my $self = shift; - - #If this gets ACLed, we lose on a rights check in User.pm and - #get deep recursion. if we need ACLs here, we need - #an equiv without ACLs - - $owner = new RT::User ($self->CurrentUser); - $owner->Load($self->__Value('Owner')); - - #Return the owner object - return ($owner); -} - -# }}} - -# {{{ sub OwnerAsString - -=head2 OwnerAsString - -Returns the owner's email address =cut -sub OwnerAsString { - my $self = shift; - return($self->OwnerObj->EmailAddress); -} +=item Starts -# }}} +Returns the current value of Starts. +(In the database, Starts is stored as datetime.) -# {{{ sub SetOwner -=head2 SetOwner - -Takes two arguments: - the Id or Name of the owner -and (optionally) the type of the SetOwner Transaction. It defaults -to 'Give'. 'Steal' is also a valid option. - -=cut - -sub SetOwner { - my $self = shift; - my $NewOwner = shift; - my $Type = shift || "Give"; - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - my $NewOwnerObj = RT::User->new($self->CurrentUser); - my $OldOwnerObj = $self->OwnerObj; - - $NewOwnerObj->Load($NewOwner); - if (!$NewOwnerObj->Id) { - return (0, "That user does not exist"); - } - - #If thie ticket has an owner and it's not the current user - - if (($Type ne 'Steal' ) and ($Type ne 'Force') and #If we're not stealing - ($self->OwnerObj->Id != $RT::Nobody->Id ) and #and the owner is set - ($self->CurrentUser->Id ne $self->OwnerObj->Id())) { #and it's not us - return(0, "You can only reassign tickets that you own or that are unowned"); - } - - #If we've specified a new owner and that user can't modify the ticket - elsif (($NewOwnerObj->Id) and - (!$NewOwnerObj->HasQueueRight(Right => 'OwnTicket', - QueueObj => $self->QueueObj, - TicketObj => $self)) - ) { - return (0, "That user may not own requests in that queue"); - } - - - #If the ticket has an owner and it's the new owner, we don't need - #To do anything - elsif (($self->OwnerObj) and ($NewOwnerObj->Id eq $self->OwnerObj->Id)) { - return(0, "That user already owns that request"); - } - - - my ($trans,$msg)=$self->_Set(Field => 'Owner', - Value => $NewOwnerObj->Id, - TimeTaken => 0, - TransactionType => $Type); - - if ($trans) { - $msg = "Owner changed from ".$OldOwnerObj->Name." to ".$NewOwnerObj->Name; - } - return ($trans, $msg); - -} -# }}} +=item SetStarts VALUE -# {{{ sub Take -=head2 Take +Set Starts to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Starts will be stored as a datetime.) -A convenince method to set the ticket's owner to the current user =cut -sub Take { - my $self = shift; - return ($self->SetOwner($self->CurrentUser->Id, 'Take')); -} -# }}} +=item Started -# {{{ sub Untake +Returns the current value of Started. +(In the database, Started is stored as datetime.) -=head2 Untake -Convenience method to set the owner to 'nobody' if the current user is the owner. -=cut +=item SetStarted VALUE -sub Untake { - my $self = shift; - return($self->SetOwner($RT::Nobody->UserObj->Id, 'Untake')); -} -# }}} - -# {{{ sub Steal -=head2 Steal +Set Started to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Started will be stored as a datetime.) -A convenience method to change the owner of the current ticket to the -current user. Even if it's owned by another user. =cut -sub Steal { - my $self = shift; - - if ($self->IsOwner($self->CurrentUser)) { - return (0,"You already own this ticket"); - } else { - return($self->SetOwner($self->CurrentUser->Id, 'Steal')); - - } - -} - -# }}} - -# }}} -# {{{ Routines dealing with status +=item Due -# {{{ sub ValidateStatus +Returns the current value of Due. +(In the database, Due is stored as datetime.) -=head2 ValidateStatus STATUS -Takes a string. Returns true if that status is a valid status for this ticket. -Returns false otherwise. -=cut - -sub ValidateStatus { - my $self = shift; - my $status = shift; +=item SetDue VALUE - #Make sure the status passed in is valid - unless ($self->QueueObj->IsValidStatus($status)) { - return (undef); - } - - return (1); -} +Set Due to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Due will be stored as a datetime.) -# }}} +=cut -# {{{ sub SetStatus -=head2 SetStatus STATUS +=item Resolved -Set this ticket\'s status. STATUS can be one of: new, open, stalled, resolved or dead. +Returns the current value of Resolved. +(In the database, Resolved is stored as datetime.) -=cut -sub SetStatus { - my $self = shift; - my $status = shift; - - #Check ACL - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, 'Permission Denied'); - } - - my $now = new RT::Date($self->CurrentUser); - $now->SetToNow(); - - #If we're changing the status from new, record that we've started - if (($self->Status =~ /new/) && ($status ne 'new')) { - #Set the Started time to "now" - $self->_Set(Field => 'Started', - Value => $now->ISO, - RecordTransaction => 0); - } - - - if ($status eq 'resolved') { - #When we resolve a ticket, set the 'Resolved' attribute to now. - $self->_Set(Field => 'Resolved', - Value => $now->ISO, - RecordTransaction => 0); - } - - - #Actually update the status - return($self->_Set(Field => 'Status', - Value => $status, - TimeTaken => 0, - TransactionType => 'Status')); -} -# }}} +=item SetResolved VALUE -# {{{ sub Kill -=head2 Kill +Set Resolved to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Resolved will be stored as a datetime.) -Takes no arguments. Marks this ticket for garbage collection =cut -sub Kill { - my $self = shift; - return ($self->SetStatus('dead')); - # TODO: garbage collection -} - -# }}} -# {{{ sub Stall +=item LastUpdatedBy -=head2 Stall +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) -Sets this ticket's status to stalled =cut -sub Stall { - my $self = shift; - return ($self->SetStatus('stalled')); -} - -# }}} -# {{{ sub Open +=item LastUpdated -=head2 Open +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) -Sets this ticket\'s status to Open =cut -sub Open { - my $self = shift; - return ($self->SetStatus('open')); -} - -# }}} -# {{{ sub Resolve +=item Creator -=head2 Resolve +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) -Sets this ticket\'s status to Resolved =cut -sub Resolve { - my $self = shift; - return ($self->SetStatus('resolved')); -} - -# }}} - -# }}} - -# {{{ Actions + Routines dealing with transactions -# {{{ sub SetTold and _SetTold +=item Created -=head2 SetTold ISO [TIMETAKEN] +Returns the current value of Created. +(In the database, Created is stored as datetime.) -Updates the told and records a transaction =cut -sub SetTold { - my $self=shift; - my $told; - $told = shift if (@_); - my $timetaken=shift || 0; - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - my $datetold = new RT::Date($self->CurrentUser); - if ($told) { - $datetold->Set( Format => 'iso', - Value => $told); - } - else { - $datetold->SetToNow(); - } - - return($self->_Set(Field => 'Told', - Value => $datetold->ISO, - TimeTaken => $timetaken, - TransactionType => 'Told')); -} -=head2 _SetTold +=item Disabled -Updates the told without a transaction or acl check. Useful when we're sending replies. +Returns the current value of Disabled. +(In the database, Disabled is stored as smallint(6).) -=cut -sub _SetTold { - my $self=shift; - - my $now = new RT::Date($self->CurrentUser); - $now->SetToNow(); - #use __Set to get no ACLs ;) - return($self->__Set(Field => 'Told', - Value => $now->ISO)); -} -# }}} +=item SetDisabled VALUE -# {{{ sub Transactions -=head2 Transactions +Set Disabled to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Disabled will be stored as a smallint(6).) - Returns an RT::Transactions object of all transactions on this ticket =cut - -sub Transactions { - my $self = shift; - - use RT::Transactions; - my $transactions = RT::Transactions->new($self->CurrentUser); - - #If the user has no rights, return an empty object - if ($self->CurrentUserHasRight('ShowTicket')) { - my $tickets = $transactions->NewAlias('Tickets'); - $transactions->Join( ALIAS1 => 'main', - FIELD1 => 'Ticket', - ALIAS2 => $tickets, - FIELD2 => 'id'); - $transactions->Limit( ALIAS => $tickets, - FIELD => 'EffectiveId', - VALUE => $self->id()); - # if the user may not see comments do not return them - unless ($self->CurrentUserHasRight('ShowTicketComments')) { - $transactions->Limit( FIELD => 'Type', - OPERATOR => '!=', - VALUE => "Comment"); - } - } - - return($transactions); -} - -# }}} - -# {{{ sub _NewTransaction - -sub _NewTransaction { - my $self = shift; - my %args = ( TimeTaken => 0, - Type => undef, - OldValue => undef, - NewValue => undef, - Data => undef, - Field => undef, - MIMEObj => undef, - @_ ); - - - require RT::Transaction; - my $trans = new RT::Transaction($self->CurrentUser); - my ($transaction, $msg) = - $trans->Create( Ticket => $self->Id, - TimeTaken => $args{'TimeTaken'}, - Type => $args{'Type'}, - Data => $args{'Data'}, - Field => $args{'Field'}, - NewValue => $args{'NewValue'}, - OldValue => $args{'OldValue'}, - MIMEObj => $args{'MIMEObj'} - ); - - $RT::Logger->warning($msg) unless $transaction; - - $self->_SetLastUpdated; - - if (defined $args{'TimeTaken'} ) { - $self->_UpdateTimeTaken($args{'TimeTaken'}); - } - return($transaction, $msg, $trans); -} -# }}} -# }}} - -# {{{ PRIVATE UTILITY METHODS. Mostly needed so Ticket can be a DBIx::Record - -# {{{ sub _ClassAccessible sub _ClassAccessible { { - EffectiveId => { 'read' => 1, 'write' => 1, 'public' => 1 }, - Queue => { 'read' => 1, 'write' => 1 }, - Requestors => { 'read' => 1, 'write' => 1 }, - Owner => { 'read' => 1, 'write' => 1 }, - Subject => { 'read' => 1, 'write' => 1 }, - InitialPriority => { 'read' => 1, 'write' => 1 }, - FinalPriority => { 'read' => 1, 'write' => 1 }, - Priority => { 'read' => 1, 'write' => 1 }, - Status => { 'read' => 1, 'write' => 1 }, - TimeWorked => { 'read' => 1, 'write' => 1 }, - TimeLeft => { 'read' => 1, 'write' => 1 }, - Created => { 'read' => 1, 'auto' => 1 }, - Creator => { 'read' => 1, 'auto' => 1 }, - Told => { 'read' => 1, 'write' => 1 }, - Resolved => {'read' => 1}, - Starts => { 'read' => 1, 'write' => 1 }, - Started => { 'read' => 1, 'write' => 1 }, - Due => { 'read' => 1, 'write' => 1 }, - Creator => { 'read' => 1, 'auto' => 1 }, - Created => { 'read' => 1, 'auto' => 1 }, - LastUpdatedBy => { 'read' => 1, 'auto' => 1 }, - LastUpdated => { 'read' => 1, 'auto' => 1 } - }; - -} - -# }}} - -# {{{ sub _Set - -sub _Set { - my $self = shift; - - unless ($self->CurrentUserHasRight('ModifyTicket')) { - return (0, "Permission Denied"); - } - - my %args = (Field => undef, - Value => undef, - TimeTaken => 0, - RecordTransaction => 1, - TransactionType => 'Set', - @_ - ); - #if the user is trying to modify the record - - #Take care of the old value we really don't want to get in an ACL loop. - # so ask the super::_Value - my $Old=$self->SUPER::_Value("$args{'Field'}"); - - #Set the new value - my ($ret, $msg)=$self->SUPER::_Set(Field => $args{'Field'}, - Value=> $args{'Value'}); - - #If we can't actually set the field to the value, don't record - # a transaction. instead, get out of here. - if ($ret==0) {return (0,$msg);} - - if ($args{'RecordTransaction'} == 1) { - - my ($Trans, $Msg, $TransObj) = - $self->_NewTransaction(Type => $args{'TransactionType'}, - Field => $args{'Field'}, - NewValue => $args{'Value'}, - OldValue => $Old, - TimeTaken => $args{'TimeTaken'}, - ); - return ($Trans,$TransObj->Description); - } - else { - return ($ret, $msg); - } -} - -# }}} - -# {{{ sub _Value - -=head2 _Value - -Takes the name of a table column. -Returns its value as a string, if the user passes an ACL check - -=cut - -sub _Value { - - my $self = shift; - my $field = shift; - - - #if the field is public, return it. - if ($self->_Accessible($field, 'public')) { - #$RT::Logger->debug("Skipping ACL check for $field\n"); - return($self->SUPER::_Value($field)); - - } - - #If the current user doesn't have ACLs, don't let em at it. - - unless ($self->CurrentUserHasRight('ShowTicket')) { - return (undef); - } - return($self->SUPER::_Value($field)); - -} - -# }}} - -# {{{ sub _UpdateTimeTaken - -=head2 _UpdateTimeTaken - -This routine will increment the timeworked counter. it should -only be called from _NewTransaction - -=cut - -sub _UpdateTimeTaken { - my $self = shift; - my $Minutes = shift; - my ($Total); - - $Total = $self->SUPER::_Value("TimeWorked"); - $Total = ($Total || 0) + ($Minutes || 0); - $self->SUPER::_Set(Field => "TimeWorked", - Value => $Total); - - return ($Total); -} + + id => + {read => 1, type => 'int(11)', default => ''}, + EffectiveId => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Queue => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Type => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + IssueStatement => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Resolution => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Owner => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Subject => + {read => 1, write => 1, type => 'varchar(200)', default => '[no subject]'}, + InitialPriority => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + FinalPriority => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Priority => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + TimeEstimated => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + TimeWorked => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Status => + {read => 1, write => 1, type => 'varchar(10)', default => ''}, + TimeLeft => + {read => 1, write => 1, type => 'int(11)', default => '0'}, + Told => + {read => 1, write => 1, type => 'datetime', default => ''}, + Starts => + {read => 1, write => 1, type => 'datetime', default => ''}, + Started => + {read => 1, write => 1, type => 'datetime', default => ''}, + Due => + {read => 1, write => 1, type => 'datetime', default => ''}, + Resolved => + {read => 1, write => 1, type => 'datetime', default => ''}, + LastUpdatedBy => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + LastUpdated => + {read => 1, auto => 1, type => 'datetime', default => ''}, + Creator => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Created => + {read => 1, auto => 1, type => 'datetime', default => ''}, + Disabled => + {read => 1, write => 1, type => 'smallint(6)', default => '0'}, + + } +}; -# }}} -# }}} + eval "require RT::Ticket_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Ticket_Overlay.pm}) { + die $@; + }; -# {{{ Routines dealing with ACCESS CONTROL + eval "require RT::Ticket_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Ticket_Vendor.pm}) { + die $@; + }; -# {{{ sub CurrentUserHasRight + eval "require RT::Ticket_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Ticket_Local.pm}) { + die $@; + }; -=head2 CurrentUserHasRight - Takes the textual name of a Ticket scoped right (from RT::ACE) and returns -1 if the user has that right. It returns 0 if the user doesn't have that right. -=cut -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - - return ($self->HasRight( Principal=> $self->CurrentUser->UserObj(), - Right => "$right")); +=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. -# {{{ sub HasRight +If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line -=head2 HasRight + no warnings qw(redefine); - Takes a paramhash with the attributes 'Right' and 'Principal' - 'Right' is a ticket-scoped textual right from RT::ACE - 'Principal' is an RT::User object +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. - Returns 1 if the principal has the right. Returns undef if not. +RT::Ticket_Overlay, RT::Ticket_Vendor, RT::Ticket_Local =cut -sub HasRight { - my $self = shift; - my %args = ( Right => undef, - Principal => undef, - @_); - - unless ((defined $args{'Principal'}) and (ref($args{'Principal'}))) { - $RT::Logger->warning("Principal attrib undefined for Ticket::HasRight"); - } - - return($args{'Principal'}->HasQueueRight(TicketObj => $self, - Right => $args{'Right'})); -} - -# }}} - -# }}} - 1; - -=head1 AUTHOR - -Jesse Vincent, jesse@fsck.com - -=head1 SEE ALSO - -RT - -=cut - - diff --git a/rt/lib/RT/Tickets.pm b/rt/lib/RT/Tickets.pm index dd91126c4..b6b349144 100755 --- a/rt/lib/RT/Tickets.pm +++ b/rt/lib/RT/Tickets.pm @@ -1,1789 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Tickets.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# -=head1 NAME +use strict; - RT::Tickets - A collection of Ticket objects +=head1 NAME + RT::Tickets -- Class Description + =head1 SYNOPSIS - use RT::Tickets; - my $tickets = new RT::Tickets($CurrentUser); + use RT::Tickets =head1 DESCRIPTION - A collection of RT::Tickets. =head1 METHODS -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Tickets); - -=end testing - =cut package RT::Tickets; -use RT::EasySearch; -use RT::Ticket; -@ISA= qw(RT::EasySearch); - -use vars qw(%TYPES @SORTFIELDS); - -# {{{ TYPES - -%TYPES = ( Status => 'ENUM', - Queue => 'ENUM', - Type => 'ENUM', - Creator => 'ENUM', - LastUpdatedBy => 'ENUM', - Owner => 'ENUM', - EffectiveId => 'INT', - id => 'INT', - InitialPriority => 'INT', - FinalPriority => 'INT', - Priority => 'INT', - TimeLeft => 'INT', - TimeWorked => 'INT', - MemberOf => 'LINK', - DependsOn => 'LINK', - HasMember => 'LINK', - HasDepender => 'LINK', - RelatedTo => 'LINK', - Told => 'DATE', - StartsBy => 'DATE', - Started => 'DATE', - Due => 'DATE', - Resolved => 'DATE', - LastUpdated => 'DATE', - Created => 'DATE', - Subject => 'STRING', - Type => 'STRING', - Content => 'TRANSFIELD', - ContentType => 'TRANSFIELD', - TransactionDate => 'TRANSDATE', - Watcher => 'WATCHERFIELD', - LinkedTo => 'LINKFIELD', - Keyword => 'KEYWORDFIELD' - - ); - - -# }}} - -# {{{ sub SortFields - -@SORTFIELDS = qw(id Status Owner Created Due Starts Started - Queue Subject Told Started - Resolved LastUpdated Priority TimeWorked TimeLeft); - -=head2 SortFields - -Returns the list of fields that lists of tickets can easily be sorted by - -=cut - - -sub SortFields { - my $self = shift; - return(@SORTFIELDS); -} - - -# }}} - -# {{{ Limit the result set based on content - -# {{{ sub Limit - -=head2 Limit - -Takes a paramhash with the fields FIELD, OPERATOR, VALUE and DESCRIPTION -Generally best called from LimitFoo methods - -=cut -sub Limit { - my $self = shift; - my %args = ( FIELD => undef, - OPERATOR => '=', - VALUE => undef, - DESCRIPTION => undef, - @_ - ); - $args{'DESCRIPTION'} = "Autodescribed: ".$args{'FIELD'} . $args{'OPERATOR'} . $args{'VALUE'}, - if (!defined $args{'DESCRIPTION'}) ; - - my $index = $self->_NextIndex; - - #make the TicketRestrictions hash the equivalent of whatever we just passed in; - - %{$self->{'TicketRestrictions'}{$index}} = %args; - - $self->{'RecalcTicketLimits'} = 1; - - # If we're looking at the effective id, we don't want to append the other clause - # which limits us to tickets where id = effective id - if ($args{'FIELD'} eq 'EffectiveId') { - $self->{'looking_at_effective_id'} = 1; - } - - return ($index); -} - -# }}} - - - - -=head2 FreezeLimits - -Returns a frozen string suitable for handing back to ThawLimits. - -=cut -# {{{ sub FreezeLimits - -sub FreezeLimits { - my $self = shift; - require FreezeThaw; - return (FreezeThaw::freeze($self->{'TicketRestrictions'}, - $self->{'restriction_index'} - )); -} - -# }}} - -=head2 ThawLimits - -Take a frozen Limits string generated by FreezeLimits and make this tickets -object have that set of limits. - -=cut -# {{{ sub ThawLimits - -sub ThawLimits { - my $self = shift; - my $in = shift; - - #if we don't have $in, get outta here. - return undef unless ($in); - - $self->{'RecalcTicketLimits'} = 1; - - require FreezeThaw; - - #We don't need to die if the thaw fails. - - eval { - ($self->{'TicketRestrictions'}, - $self->{'restriction_index'} - ) = FreezeThaw::thaw($in); - } - -} - -# }}} - -# {{{ Limit by enum or foreign key - -# {{{ sub LimitQueue - -=head2 LimitQueue - -LimitQueue takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of = or !=. (It defaults to =). -VALUE is a queue id. - -=cut - -sub LimitQueue { - my $self = shift; - my %args = (VALUE => undef, - OPERATOR => '=', - @_); - - #TODO VALUE should also take queue names and queue objects - my $queue = new RT::Queue($self->CurrentUser); - $queue->Load($args{'VALUE'}); - - #TODO check for a valid queue here - - $self->Limit (FIELD => 'Queue', - VALUE => $queue->id(), - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Queue ' . $args{'OPERATOR'}. " ". $queue->Name - ); - -} -# }}} - -# {{{ sub LimitStatus - -=head2 LimitStatus - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of = or !=. -VALUE is a status. - -=cut - -sub LimitStatus { - my $self = shift; - my %args = ( OPERATOR => '=', - @_); - $self->Limit (FIELD => 'Status', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Status ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# {{{ sub LimitType - -=head2 LimitType - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of = or !=, it defaults to "=". -VALUE is a string to search for in the type of the ticket. - -=cut - -sub LimitType { - my $self = shift; - my %args = (OPERATOR => '=', - VALUE => undef, - @_); - $self->Limit (FIELD => 'Type', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Type ' . $args{'OPERATOR'}. " ". $args{'Limit'}, - ); -} - -# }}} - -# }}} - -# {{{ Limit by string field - -# {{{ sub LimitSubject - -=head2 LimitSubject - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of = or !=. -VALUE is a string to search for in the subject of the ticket. - -=cut - -sub LimitSubject { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'Subject', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Subject ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# }}} - -# {{{ Limit based on ticket numerical attributes -# Things that can be > < = != - -# {{{ sub LimitId - -=head2 LimitId - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a ticket Id to search for - -=cut - -sub LimitId { - my $self = shift; - my %args = (OPERATOR => '=', - @_); - - $self->Limit (FIELD => 'id', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Id ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# {{{ sub LimitPriority - -=head2 LimitPriority - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a value to match the ticket\'s priority against - -=cut - -sub LimitPriority { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'Priority', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Priority ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# {{{ sub LimitInitialPriority - -=head2 LimitInitialPriority - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a value to match the ticket\'s initial priority against - - -=cut - -sub LimitInitialPriority { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'InitialPriority', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Initial Priority ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} -# {{{ sub LimitFinalPriority - -=head2 LimitFinalPriority - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a value to match the ticket\'s final priority against - -=cut - -sub LimitFinalPriority { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'FinalPriority', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Final Priority ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# {{{ sub LimitTimeWorked - -=head2 LimitTimeWorked - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a value to match the ticket's TimeWorked attribute - -=cut - -sub LimitTimeWorked { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'TimeWorked', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Time worked ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# {{{ sub LimitTimeLeft - -=head2 LimitTimeLeft - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, >, < or !=. -VALUE is a value to match the ticket's TimeLeft attribute - -=cut - -sub LimitTimeLeft { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'TimeLeft', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Time left ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} - -# }}} - -# {{{ Limiting based on attachment attributes - -# {{{ sub LimitContent - -=head2 LimitContent - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, LIKE, NOT LIKE or !=. -VALUE is a string to search for in the body of the ticket - -=cut -sub LimitContent { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'Content', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Ticket content ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} - -# }}} -# {{{ sub LimitContentType - -=head2 LimitContentType - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of =, LIKE, NOT LIKE or !=. -VALUE is a content type to search ticket attachments for - -=cut - -sub LimitContentType { - my $self = shift; - my %args = (@_); - $self->Limit (FIELD => 'ContentType', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Ticket content type ' . $args{'OPERATOR'}. " ". $args{'VALUE'}, - ); -} -# }}} - -# }}} - -# {{{ Limiting based on people - -# {{{ sub LimitOwner - -=head2 LimitOwner - -Takes a paramhash with the fields OPERATOR and VALUE. -OPERATOR is one of = or !=. -VALUE is a user id. - -=cut - -sub LimitOwner { - my $self = shift; - my %args = ( OPERATOR => '=', - @_); - - my $owner = new RT::User($self->CurrentUser); - $owner->Load($args{'VALUE'}); - $self->Limit (FIELD => 'Owner', - VALUE => $owner->Id, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => 'Owner ' . $args{'OPERATOR'}. " ". $owner->Name() - ); - -} - -# }}} - -# {{{ Limiting watchers - -# {{{ sub LimitWatcher +use RT::SearchBuilder; +use RT::Ticket; +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -=head2 LimitWatcher - - Takes a paramhash with the fields OPERATOR, TYPE and VALUE. - OPERATOR is one of =, LIKE, NOT LIKE or !=. - VALUE is a value to match the ticket\'s watcher email addresses against - TYPE is the sort of watchers you want to match against. Leave it undef if you want to search all of them -=cut - -sub LimitWatcher { +sub _Init { my $self = shift; - my %args = ( OPERATOR => '=', - VALUE => undef, - TYPE => undef, - @_); - - - #build us up a description - my ($watcher_type, $desc); - if ($args{'TYPE'}) { - $watcher_type = $args{'TYPE'}; - } - else { - $watcher_type = "Watcher"; - } - $desc = "$watcher_type ".$args{'OPERATOR'}." ".$args{'VALUE'}; - - - $self->Limit (FIELD => 'Watcher', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - TYPE => $args{'TYPE'}, - DESCRIPTION => "$desc" - ); -} - -# }}} - -# {{{ sub LimitRequestor + $self->{'table'} = 'Tickets'; + $self->{'primary_key'} = 'id'; -=head2 LimitRequestor -It\'s like LimitWatcher, but it presets TYPE to Requestor - -=cut - - -sub LimitRequestor { - my $self = shift; - $self->LimitWatcher(TYPE=> 'Requestor', @_); + return ( $self->SUPER::_Init(@_) ); } -# }}} - -# {{{ sub LimitCc -=head2 LimitCC +=item NewItem -It\'s like LimitWatcher, but it presets TYPE to Cc +Returns an empty new RT::Ticket item =cut -sub LimitCc { - my $self = shift; - $self->LimitWatcher(TYPE=> 'Cc', @_); -} - -# }}} - -# {{{ sub LimitAdminCc - -=head2 LimitAdminCc - -It\'s like LimitWatcher, but it presets TYPE to AdminCc - -=cut - -sub LimitAdminCc { +sub NewItem { my $self = shift; - $self->LimitWatcher(TYPE=> 'AdminCc', @_); + return(RT::Ticket->new($self->CurrentUser)); } -# }}} - -# }}} - -# }}} + eval "require RT::Tickets_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Tickets_Overlay.pm}) { + die $@; + }; -# {{{ Limiting based on links + eval "require RT::Tickets_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Tickets_Vendor.pm}) { + die $@; + }; -# {{{ LimitLinkedTo + eval "require RT::Tickets_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Tickets_Local.pm}) { + die $@; + }; -=head2 LimitLinkedTo -LimitLinkedTo takes a paramhash with two fields: TYPE and TARGET -TYPE limits the sort of relationship we want to search on -TARGET is the id or URI of the TARGET of the link -(TARGET used to be 'TICKET'. 'TICKET' is deprecated, but will be treated as TARGET -=cut - -sub LimitLinkedTo { - my $self = shift; - my %args = ( - TICKET => undef, - TARGET => undef, - TYPE => undef, - @_); - - - $self->Limit( FIELD => 'LinkedTo', - BASE => undef, - TARGET => ($args{'TARGET'} || $args{'TICKET'}), - TYPE => $args{'TYPE'}, - DESCRIPTION => "Tickets ".$args{'TYPE'}." by ".($args{'TARGET'} || $args{'TICKET'}) - ); -} - - -# }}} +=head1 SEE ALSO -# {{{ LimitLinkedFrom +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. -=head2 LimitLinkedFrom +These overlay files can contain new subs or subs to replace existing subs in this module. -LimitLinkedFrom takes a paramhash with two fields: TYPE and BASE -TYPE limits the sort of relationship we want to search on +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); -BASE is the id or URI of the BASE of the link -(BASE used to be 'TICKET'. 'TICKET' is deprecated, but will be treated as BASE +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. +RT::Tickets_Overlay, RT::Tickets_Vendor, RT::Tickets_Local =cut -sub LimitLinkedFrom { - my $self = shift; - my %args = ( BASE => undef, - TICKET => undef, - TYPE => undef, - @_); - - - $self->Limit( FIELD => 'LinkedTo', - TARGET => undef, - BASE => ($args{'BASE'} || $args{'TICKET'}), - TYPE => $args{'TYPE'}, - DESCRIPTION => "Tickets " .($args{'BASE'} || $args{'TICKET'}) ." ".$args{'TYPE'} - ); -} - - -# }}} - -# {{{ LimitMemberOf -sub LimitMemberOf { - my $self = shift; - my $ticket_id = shift; - $self->LimitLinkedTo ( TARGET=> "$ticket_id", - TYPE => 'MemberOf', - ); - -} -# }}} - -# {{{ LimitHasMember -sub LimitHasMember { - my $self = shift; - my $ticket_id =shift; - $self->LimitLinkedFrom ( BASE => "$ticket_id", - TYPE => 'MemberOf', - ); - -} -# }}} - -# {{{ LimitDependsOn - -sub LimitDependsOn { - my $self = shift; - my $ticket_id = shift; - $self->LimitLinkedTo ( TARGET => "$ticket_id", - TYPE => 'DependsOn', - ); - -} - -# }}} - -# {{{ LimitDependedOnBy - -sub LimitDependedOnBy { - my $self = shift; - my $ticket_id = shift; - $self->LimitLinkedFrom ( BASE => "$ticket_id", - TYPE => 'DependsOn', - ); - -} - -# }}} - - -# {{{ LimitRefersTo - -sub LimitRefersTo { - my $self = shift; - my $ticket_id = shift; - $self->LimitLinkedTo ( TARGET => "$ticket_id", - TYPE => 'RefersTo', - ); - -} - -# }}} - -# {{{ LimitReferredToBy - -sub LimitReferredToBy { - my $self = shift; - my $ticket_id = shift; - $self->LimitLinkedFrom ( BASE=> "$ticket_id", - TYPE => 'RefersTo', - ); - -} - -# }}} - -# }}} - -# {{{ limit based on ticket date attribtes - -# {{{ sub LimitDate - -=head2 LimitDate (FIELD => 'DateField', OPERATOR => $oper, VALUE => $ISODate) - -Takes a paramhash with the fields FIELD OPERATOR and VALUE. - -OPERATOR is one of > or < -VALUE is a date and time in ISO format in GMT -FIELD is one of Starts, Started, Told, Created, Resolved, LastUpdated - -There are also helper functions of the form LimitFIELD that eliminate -the need to pass in a FIELD argument. - -=cut - -sub LimitDate { - my $self = shift; - my %args = ( - FIELD => undef, - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - - @_); - - #Set the description if we didn't get handed it above - unless ($args{'DESCRIPTION'} ) { - $args{'DESCRIPTION'} = $args{'FIELD'} . " " .$args{'OPERATOR'}. " ". $args{'VALUE'} . " GMT" - } - - $self->Limit (%args); - -} - -# }}} - - - - -sub LimitCreated { - my $self = shift; - $self->LimitDate( FIELD => 'Created', @_); -} -sub LimitDue { - my $self = shift; - $self->LimitDate( FIELD => 'Due', @_); - -} -sub LimitStarts { - my $self = shift; - $self->LimitDate( FIELD => 'Starts', @_); - -} -sub LimitStarted { - my $self = shift; - $self->LimitDate( FIELD => 'Started', @_); -} -sub LimitResolved { - my $self = shift; - $self->LimitDate( FIELD => 'Resolved', @_); -} -sub LimitTold { - my $self = shift; - $self->LimitDate( FIELD => 'Told', @_); -} -sub LimitLastUpdated { - my $self = shift; - $self->LimitDate( FIELD => 'LastUpdated', @_); -} -# -# {{{ sub LimitTransactionDate - -=head2 LimitTransactionDate (OPERATOR => $oper, VALUE => $ISODate) - -Takes a paramhash with the fields FIELD OPERATOR and VALUE. - -OPERATOR is one of > or < -VALUE is a date and time in ISO format in GMT - - -=cut - -sub LimitTransactionDate { - my $self = shift; - my %args = ( - FIELD => 'TransactionDate', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - - @_); - - #Set the description if we didn't get handed it above - unless ($args{'DESCRIPTION'} ) { - $args{'DESCRIPTION'} = $args{'FIELD'} . " " .$args{'OPERATOR'}. " ". $args{'VALUE'} . " GMT" - } - - $self->Limit (%args); - -} - -# }}} - -# }}} - -# {{{ sub LimitKeyword - -=head2 LimitKeyword - -Takes a paramhash of key/value pairs with the following keys: - -=over 4 - -=item KEYWORDSELECT - KeywordSelect id - -=item OPERATOR - (for KEYWORD only - KEYWORDSELECT operator is always `=') - -=item KEYWORD - Keyword id - -=back - -=cut - -sub LimitKeyword { - my $self = shift; - my %args = ( KEYWORD => undef, - KEYWORDSELECT => undef, - OPERATOR => '=', - DESCRIPTION => undef, - FIELD => 'Keyword', - QUOTEVALUE => 1, - @_ - ); - - use RT::KeywordSelect; - my $KeywordSelect = RT::KeywordSelect->new($self->CurrentUser); - $KeywordSelect->Load($args{KEYWORDSELECT}); - - - # Below, We're checking to see whether the keyword we're searching for - # is null or not. - # This could probably be rewritten to be easier to read and understand - - - #If we are looking to compare with a null value. - if ($args{'OPERATOR'} =~ /is/i) { - if ($args{'OPERATOR'} =~ /^is$/i) { - $args{'DESCRIPTION'} ||= "Keyword Selection ". $KeywordSelect->Name . " has no value"; - } - elsif ($args{'OPERATOR'} =~ /^is not$/i) { - $args{'DESCRIPTION'} ||= "Keyword Selection ". $KeywordSelect->Name . " has a value"; - } - } - # if we're not looking to compare with a null value - else { - use RT::Keyword; - my $Keyword = RT::Keyword->new($self->CurrentUser); - $Keyword->Load($args{KEYWORD}); - $args{'DESCRIPTION'} ||= "Keyword Selection " . $KeywordSelect->Name. " $args{OPERATOR} ". $Keyword->Name; - } - - $args{SingleValued} = $KeywordSelect->Single(); - - - my $index = $self->_NextIndex; - %{$self->{'TicketRestrictions'}{$index}} = %args; - - $self->{'RecalcTicketLimits'} = 1; - return ($index); -} - -# }}} - -# {{{ sub _NextIndex - -=head2 _NextIndex - -Keep track of the counter for the array of restrictions - -=cut - -sub _NextIndex { - my $self = shift; - return ($self->{'restriction_index'}++); -} -# }}} - -# }}} - -# {{{ Core bits to make this a DBIx::SearchBuilder object - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Tickets"; - $self->{'RecalcTicketLimits'} = 1; - $self->{'looking_at_effective_id'} = 0; - $self->{'restriction_index'} =1; - $self->{'primary_key'} = "id"; - $self->SUPER::_Init(@_); - -} -# }}} - -# {{{ sub NewItem -sub NewItem { - my $self = shift; - return(RT::Ticket->new($self->CurrentUser)); - -} -# }}} - -# {{{ sub Count -sub Count { - my $self = shift; - $self->_ProcessRestrictions if ($self->{'RecalcTicketLimits'} == 1 ); - return($self->SUPER::Count()); -} -# }}} - -# {{{ sub ItemsArrayRef - -=head2 ItemsArrayRef - -Returns a reference to the set of all items found in this search - -=cut - -sub ItemsArrayRef { - my $self = shift; - my @items; - - my $placeholder = $self->_ItemsCounter; - $self->GotoFirstItem(); - while (my $item = $self->Next) { - push (@items, $item); - } - - $self->GotoItem($placeholder); - return(\@items); -} -# }}} - -# {{{ sub Next -sub Next { - my $self = shift; - - $self->_ProcessRestrictions if ($self->{'RecalcTicketLimits'} == 1 ); - - my $Ticket = $self->SUPER::Next(); - if ((defined($Ticket)) and (ref($Ticket))) { - - #Make sure we _never_ show dead tickets - #TODO we should be doing this in the where clause. - #but you can't do multiple clauses on the same field just yet :/ - - if ($Ticket->Status eq 'dead') { - return($self->Next()); - } - elsif ($Ticket->CurrentUserHasRight('ShowTicket')) { - return($Ticket); - } - - #If the user doesn't have the right to show this ticket - else { - return($self->Next()); - } - } - #if there never was any ticket - else { - return(undef); - } - -} -# }}} - -# }}} - -# {{{ Deal with storing and restoring restrictions - -# {{{ sub LoadRestrictions - -=head2 LoadRestrictions - -LoadRestrictions takes a string which can fully populate the TicketRestrictons hash. -TODO It is not yet implemented - -=cut - -# }}} - -# {{{ sub DescribeRestrictions - -=head2 DescribeRestrictions - -takes nothing. -Returns a hash keyed by restriction id. -Each element of the hash is currently a one element hash that contains DESCRIPTION which -is a description of the purpose of that TicketRestriction - -=cut - -sub DescribeRestrictions { - my $self = shift; - - my ($row, %listing); - - foreach $row (keys %{$self->{'TicketRestrictions'}}) { - $listing{$row} = $self->{'TicketRestrictions'}{$row}{'DESCRIPTION'}; - } - return (%listing); -} -# }}} - -# {{{ sub RestrictionValues - -=head2 RestrictionValues FIELD - -Takes a restriction field and returns a list of values this field is restricted -to. - -=cut - -sub RestrictionValues { - my $self = shift; - my $field = shift; - map $self->{'TicketRestrictions'}{$_}{'VALUE'}, - grep { - $self->{'TicketRestrictions'}{$_}{'FIELD'} eq $field - && $self->{'TicketRestrictions'}{$_}{'OPERATOR'} eq "=" - } - keys %{$self->{'TicketRestrictions'}}; -} - -# }}} - -# {{{ sub ClearRestrictions - -=head2 ClearRestrictions - -Removes all restrictions irretrievably - -=cut - -sub ClearRestrictions { - my $self = shift; - delete $self->{'TicketRestrictions'}; - $self->{'looking_at_effective_id'} = 0; - $self->{'RecalcTicketLimits'} =1; -} - -# }}} - -# {{{ sub DeleteRestriction - -=head2 DeleteRestriction - -Takes the row Id of a restriction (From DescribeRestrictions' output, for example. -Removes that restriction from the session's limits. - -=cut - - -sub DeleteRestriction { - my $self = shift; - my $row = shift; - delete $self->{'TicketRestrictions'}{$row}; - - $self->{'RecalcTicketLimits'} = 1; - #make the underlying easysearch object forget all its preconceptions -} - -# }}} - -# {{{ sub _ProcessRestrictions - -sub _ProcessRestrictions { - my $self = shift; - - #Need to clean the EasySearch slate because it makes things too sticky - $self->CleanSlate(); - - #Blow away ticket aliases since we'll need to regenerate them for a new search - delete $self->{'TicketAliases'}; - delete $self->{KeywordsAliases}; - - my $row; - - foreach $row (keys %{$self->{'TicketRestrictions'}}) { - my $restriction = $self->{'TicketRestrictions'}{$row}; - # {{{ if it's an int - - if ($TYPES{$restriction->{'FIELD'}} eq 'INT' ) { - if ($restriction->{'OPERATOR'} =~ /^(=|!=|>|<|>=|<=)$/) { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => $restriction->{'OPERATOR'}, - VALUE => $restriction->{'VALUE'}, - ); - } - } - # }}} - # {{{ if it's an enum - elsif ($TYPES{$restriction->{'FIELD'}} eq 'ENUM') { - - if ($restriction->{'OPERATOR'} eq '=') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'OR', - OPERATOR => '=', - VALUE => $restriction->{'VALUE'}, - ); - } - elsif ($restriction->{'OPERATOR'} eq '!=') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => '!=', - VALUE => $restriction->{'VALUE'}, - ); - } - - } - # }}} - # {{{ if it's a date - - elsif ($TYPES{$restriction->{'FIELD'}} eq 'DATE') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => $restriction->{'OPERATOR'}, - VALUE => $restriction->{'VALUE'}, - ); - } - # }}} - # {{{ if it's a string - - elsif ($TYPES{$restriction->{'FIELD'}} eq 'STRING') { - - if ($restriction->{'OPERATOR'} eq '=') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'OR', - OPERATOR => '=', - VALUE => $restriction->{'VALUE'}, - CASESENSITIVE => 0 - ); - } - elsif ($restriction->{'OPERATOR'} eq '!=') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => '!=', - VALUE => $restriction->{'VALUE'}, - CASESENSITIVE => 0 - ); - } - elsif ($restriction->{'OPERATOR'} eq 'LIKE') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => 'LIKE', - VALUE => $restriction->{'VALUE'}, - CASESENSITIVE => 0 - ); - } - elsif ($restriction->{'OPERATOR'} eq 'NOT LIKE') { - $self->SUPER::Limit( FIELD => $restriction->{'FIELD'}, - ENTRYAGGREGATOR => 'AND', - OPERATOR => 'NOT LIKE', - VALUE => $restriction->{'VALUE'}, - CASESENSITIVE => 0 - ); - } - } - - # }}} - # {{{ if it's Transaction content that we're hunting for - elsif ($TYPES{$restriction->{'FIELD'}} eq 'TRANSFIELD') { - - #Basically, we want to make sure that the limits apply to the same attachment, - #rather than just another attachment for the same ticket, no matter how many - #clauses we lump on. - #We put them in TicketAliases so that they get nuked when we redo the join. - - unless (defined $self->{'TicketAliases'}{'TransFieldAlias'}) { - $self->{'TicketAliases'}{'TransFieldAlias'} = $self->NewAlias ('Transactions'); - } - unless (defined $self->{'TicketAliases'}{'TransFieldAttachAlias'}){ - $self->{'TicketAliases'}{'TransFieldAttachAlias'} = $self->NewAlias('Attachments'); - - } - #Join transactions to attachments - $self->Join( ALIAS1 => $self->{'TicketAliases'}{'TransFieldAttachAlias'}, - FIELD1 => 'TransactionId', - ALIAS2 => $self->{'TicketAliases'}{'TransFieldAlias'}, FIELD2=> 'id'); - - #Join transactions to tickets - $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, - ALIAS2 =>$self->{'TicketAliases'}{'TransFieldAlias'}, FIELD2 => 'Ticket'); - - #Search for the right field - $self->SUPER::Limit(ALIAS => $self->{'TicketAliases'}{'TransFieldAttachAlias'}, - ENTRYAGGREGATOR => 'AND', - FIELD => $restriction->{'FIELD'}, - OPERATOR => $restriction->{'OPERATOR'} , - VALUE => $restriction->{'VALUE'}, - CASESENSITIVE => 0 - ); - - - } - - # }}} - # {{{ if it's a Transaction date that we're hunting for - elsif ($TYPES{$restriction->{'FIELD'}} eq 'TRANSDATE') { - - #Basically, we want to make sure that the limits apply to the same attachment, - #rather than just another attachment for the same ticket, no matter how many - #clauses we lump on. - #We put them in TicketAliases so that they get nuked when we redo the join. - - unless (defined $self->{'TicketAliases'}{'TransFieldAlias'}) { - $self->{'TicketAliases'}{'TransFieldAlias'} = $self->NewAlias ('Transactions'); - } - - #Join transactions to tickets - $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, - ALIAS2 =>$self->{'TicketAliases'}{'TransFieldAlias'}, FIELD2 => 'Ticket'); - - #Search for the right field - $self->SUPER::Limit(ALIAS => $self->{'TicketAliases'}{'TransFieldAlias'}, - ENTRYAGGREGATOR => 'AND', - FIELD => 'Created', - OPERATOR => $restriction->{'OPERATOR'} , - VALUE => $restriction->{'VALUE'} ); - } - - # }}} - # {{{ if it's a relationship that we're hunting for - - # Takes FIELD: which is something like "LinkedTo" - # takes TARGET or BASE which is the TARGET or BASE id that we're searching for - # takes TYPE which is the type of link we're looking for. - - elsif ($TYPES{$restriction->{'FIELD'}} eq 'LINKFIELD') { - - - my $LinkAlias = $self->NewAlias ('Links'); - - - #Make sure we get the right type of link, if we're restricting it - if ($restriction->{'TYPE'}) { - $self->SUPER::Limit(ALIAS => $LinkAlias, - ENTRYAGGREGATOR => 'AND', - FIELD => 'Type', - OPERATOR => '=', - VALUE => $restriction->{'TYPE'} ); - } - - #If we're trying to limit it to things that are target of - if ($restriction->{'TARGET'}) { - - - # If the TARGET is an integer that means that we want to look at the LocalTarget - # field. otherwise, we want to look at the "Target" field - - my ($matchfield); - if ($restriction->{'TARGET'} =~/^(\d+)$/) { - $matchfield = "LocalTarget"; - } - else { - $matchfield = "Target"; - } - - $self->SUPER::Limit(ALIAS => $LinkAlias, - ENTRYAGGREGATOR => 'AND', - FIELD => $matchfield, - OPERATOR => '=', - VALUE => $restriction->{'TARGET'} ); - - - #If we're searching on target, join the base to ticket.id - $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, - ALIAS2 => $LinkAlias, - FIELD2 => 'LocalBase'); - - - - - } - #If we're trying to limit it to things that are base of - elsif ($restriction->{'BASE'}) { - - - # If we're trying to match a numeric link, we want to look at LocalBase, - # otherwise we want to look at "Base" - - my ($matchfield); - if ($restriction->{'BASE'} =~/^(\d+)$/) { - $matchfield = "LocalBase"; - } - else { - $matchfield = "Base"; - } - - - $self->SUPER::Limit(ALIAS => $LinkAlias, - ENTRYAGGREGATOR => 'AND', - FIELD => $matchfield, - OPERATOR => '=', - VALUE => $restriction->{'BASE'} ); - - #If we're searching on base, join the target to ticket.id - $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, - ALIAS2 => $LinkAlias, - FIELD2 => 'LocalTarget'); - - } - - } - - # }}} - # {{{ if it's a watcher that we're hunting for - elsif ($TYPES{$restriction->{'FIELD'}} eq 'WATCHERFIELD') { - - my $Watch = $self->NewAlias('Watchers'); - - #Join watchers to users - my $User = $self->Join( TYPE => 'left', - ALIAS1 => $Watch, - FIELD1 => 'Owner', - TABLE2 => 'Users', - FIELD2 => 'id', - ); - - #Join Ticket to watchers - $self->Join( ALIAS1 => 'main', FIELD1 => 'id', - ALIAS2 => $Watch, FIELD2 => 'Value'); - - - #Make sure we're only talking about ticket watchers - $self->SUPER::Limit( ALIAS => $Watch, - FIELD => 'Scope', - VALUE => 'Ticket', - OPERATOR => '='); - - - # Find email address watchers - $self->SUPER::Limit( SUBCLAUSE => 'WatcherEmailAddress', - ALIAS => $Watch, - FIELD => 'Email', - ENTRYAGGREGATOR => 'OR', - VALUE => $restriction->{'VALUE'}, - OPERATOR => $restriction->{'OPERATOR'}, - CASESENSITIVE => 0 - ); - - - - #Find user watchers - $self->SUPER::Limit( - SUBCLAUSE => 'WatcherEmailAddress', - ALIAS => $User, - FIELD => 'EmailAddress', - ENTRYAGGREGATOR => 'OR', - VALUE => $restriction->{'VALUE'}, - OPERATOR => $restriction->{'OPERATOR'}, - CASESENSITIVE => 0 - ); - - - #If we only want a specific type of watchers, then limit it to that - if ($restriction->{'TYPE'}) { - $self->SUPER::Limit( ALIAS => $Watch, - FIELD => 'Type', - ENTRYAGGREGATOR => 'OR', - VALUE => $restriction->{'TYPE'}, - OPERATOR => '='); - } - } - - # }}} - # {{{ if it's a keyword - elsif ($TYPES{$restriction->{'FIELD'}} eq 'KEYWORDFIELD') { - - my $null_columns_ok; - - my $ObjKeywordsAlias; - $ObjKeywordsAlias = $self->{KeywordsAliases}{$restriction->{'KEYWORDSELECT'}} - if $restriction->{SingleValued}; - unless (defined $ObjKeywordsAlias) { - $ObjKeywordsAlias = $self->Join( - TYPE => 'left', - ALIAS1 => 'main', - FIELD1 => 'id', - TABLE2 => 'ObjectKeywords', - FIELD2 => 'ObjectId' - ); - if ($restriction->{'SingleValued'}) { - $self->{KeywordsAliases}{$restriction->{'KEYWORDSELECT'}} - = $ObjKeywordsAlias; - } - } - - - $self->SUPER::Limit( - ALIAS => $ObjKeywordsAlias, - FIELD => 'Keyword', - OPERATOR => $restriction->{'OPERATOR'}, - VALUE => $restriction->{'KEYWORD'}, - QUOTEVALUE => $restriction->{'QUOTEVALUE'}, - ENTRYAGGREGATOR => 'OR', - ); - - if ( ($restriction->{'OPERATOR'} =~ /^IS$/i) or - ($restriction->{'OPERATOR'} eq '!=') ) { - - $null_columns_ok=1; - - } - - #If we're trying to find tickets where the keyword isn't somethng, also check ones where it _IS_ null - if ( $restriction->{'OPERATOR'} eq '!=') { - $self->SUPER::Limit( - ALIAS => $ObjKeywordsAlias, - FIELD => 'Keyword', - OPERATOR => 'IS', - VALUE => 'NULL', - QUOTEVALUE => 0, - ENTRYAGGREGATOR => 'OR', - ); - } - - - $self->SUPER::Limit(LEFTJOIN => $ObjKeywordsAlias, - FIELD => 'KeywordSelect', - VALUE => $restriction->{'KEYWORDSELECT'}, - ENTRYAGGREGATOR => 'OR'); - - - - $self->SUPER::Limit( ALIAS => $ObjKeywordsAlias, - FIELD => 'ObjectType', - VALUE => 'Ticket', - ENTRYAGGREGATOR => 'AND'); - - if ($null_columns_ok) { - $self->SUPER::Limit(ALIAS => $ObjKeywordsAlias, - FIELD => 'ObjectType', - OPERATOR => 'IS', - VALUE => 'NULL', - QUOTEVALUE => 0, - ENTRYAGGREGATOR => 'OR'); - } - - } - # }}} - - - } - - - # here, we make sure we don't get any tickets that have been merged into other tickets - # (Ticket Id == Ticket EffectiveId - # note that we _really_ don't want to do this if we're already looking at the effectiveid - if ($self->_isLimited && (! $self->{'looking_at_effective_id'})) { - $self->SUPER::Limit( FIELD => 'EffectiveId', - OPERATOR => '=', - QUOTEVALUE => 0, - VALUE => 'main.id'); #TODO, we shouldn't be hard coding the tablename to main. - } - $self->{'RecalcTicketLimits'} = 0; -} - -# }}} - -# }}} - -# {{{ Deal with displaying rows of the listing - -# -# Everything in this section is stub code for 2.2 -# It's not part of the API. It's not for your use -# It's not for our use. -# - - -# {{{ sub SetListingFormat - -=head2 SetListingFormat - -Takes a single Format string as specified below. parses that format string and makes the various listing output -things DTRT. - -=item Format strings - -Format strings are made up of a chain of Elements delimited with vertical pipes (|). -Elements of a Format string - - -FormatString: Element[::FormatString] - -Element: AttributeName[;HREF=<URL>][;TITLE=<TITLE>] - -AttributeName Id | Subject | Status | Owner | Priority | InitialPriority | TimeWorked | TimeLeft | - - Keywords[;SELECT=<KeywordSelect>] | - - <Created|Starts|Started|Contacted|Due|Resolved>Date<AsString|AsISO|AsAge> - - -=cut - - - - -#accept a format string - - - -sub SetListingFormat { - my $self = shift; - my $listing_format = shift; - - my ($element, $attribs); - my $i = 0; - foreach $element (split (/::/,$listing_format)) { - if ($element =~ /^(.*?);(.*)$/) { - $element = $1; - $attribs = $2; - } - $self->{'format_string'}->[$i]->{'Element'} = $element; - foreach $attrib (split (/;/, $attribs)) { - my $value = ""; - if ($attrib =~ /^(.*?)=(.*)$/) { - $attrib = $1; - $value = $2; - } - $self->{'format_string'}->[$i]->{"$attrib"} = $val; - - } - - } - return(1); -} - -# }}} - -# {{{ sub HeaderAsHTML -sub HeaderAsHTML { - my $self = shift; - my $header = ""; - my $col; - foreach $col ( @{[ $self->{'format_string'} ]}) { - $header .= "<TH>" . $self->_ColumnTitle($self->{'format_string'}->[$col]) . "</TH>"; - - } - return ($header); -} -# }}} - -# {{{ sub HeaderAsText -#Print text header -sub HeaderAsText { - my $self = shift; - my ($header); - - return ($header); -} -# }}} - -# {{{ sub TicketAsHTMLRow -#Print HTML row -sub TicketAsHTMLRow { - my $self = shift; - my $Ticket = shift; - my ($row, $col); - foreach $col (@{[$self->{'format_string'}]}) { - $row .= "<TD>" . $self->_TicketColumnValue($ticket,$self->{'format_string'}->[$col]) . "</TD>"; - - } - return ($row); -} -# }}} - -# {{{ sub TicketAsTextRow -#Print text row -sub TicketAsTextRow { - my $self = shift; - my ($row); - - #TODO implement - - return ($row); -} -# }}} - -# {{{ _ColumnTitle { - -sub _ColumnTitle { - my $self = shift; - - # Attrib is a hash - my $attrib = shift; - - # return either attrib->{'TITLE'} or.. - if ($attrib->{'TITLE'}) { - return($attrib->{'TITLE'}); - } - # failing that, Look up the title in a hash - else { - #TODO create $self->{'ColumnTitles'}; - return ($self->{'ColumnTitles'}->{$attrib->{'Element'}}); - } - -} - -# }}} - -# {{{ _TicketColumnValue -sub _TicketColumnValue { - my $self = shift; - my $Ticket = shift; - my $attrib = shift; - - - my $out; - - SWITCH: { - /^id/i && do { - $out = $Ticket->id; - last SWITCH; - }; - /^subj/i && do { - last SWITCH; - $Ticket->Subject; - }; - /^status/i && do { - last SWITCH; - $Ticket->Status; - }; - /^prio/i && do { - last SWITCH; - $Ticket->Priority; - }; - /^finalprio/i && do { - - last SWITCH; - $Ticket->FinalPriority - }; - /^initialprio/i && do { - - last SWITCH; - $Ticket->InitialPriority; - }; - /^timel/i && do { - - last SWITCH; - $Ticket->TimeWorked; - }; - /^timew/i && do { - - last SWITCH; - $Ticket->TimeLeft; - }; - - /^(.*?)date(.*)$/i && do { - my $o = $1; - my $m = $2; - my ($obj); - #TODO: optimize - $obj = $Ticket->DueObj if $o =~ /due/i; - $obj = $Ticket->CreatedObj if $o =~ /created/i; - $obj = $Ticket->StartsObj if $o =~ /starts/i; - $obj = $Ticket->StartedObj if $o =~ /started/i; - $obj = $Ticket->ToldObj if $o =~ /told/i; - $obj = $Ticket->LastUpdatedObj if $o =~ /lastu/i; - - $method = 'ISO' if $m =~ /iso/i; - - $method = 'AsString' if $m =~ /asstring/i; - $method = 'AgeAsString' if $m =~ /age/i; - last SWITCH; - $obj->$method(); - - }; - - /^watcher/i && do { - last SWITCH; - $Ticket->WatchersAsString(); - }; - - /^requestor/i && do { - last SWITCH; - $Ticket->RequestorsAsString(); - }; - /^cc/i && do { - last SWITCH; - $Ticket->CCAsString(); - }; - - - /^admincc/i && do { - last SWITCH; - $Ticket->AdminCcAsString(); - }; - - /^keywords/i && do { - last SWITCH; - #Limit it to the keyword select we're talking about, if we've got one. - my $objkeys =$Ticket->KeywordsObj($attrib->{'SELECT'}); - $objkeys->KeywordRelativePathsAsString(); - }; - - } - -} - -# }}} - -# }}} - -# {{{ POD -=head2 notes -"Enum" Things that get Is, IsNot - - -"Int" Things that get Is LessThan and GreaterThan -id -InitialPriority -FinalPriority -Priority -TimeLeft -TimeWorked - -"Text" Things that get Is, Like -Subject -TransactionContent - - -"Link" OPERATORs - - -"Date" OPERATORs Is, Before, After - =cut -# }}} 1; diff --git a/rt/lib/RT/Transaction.pm b/rt/lib/RT/Transaction.pm index ee1f069b2..ca491a6c7 100755 --- a/rt/lib/RT/Transaction.pm +++ b/rt/lib/RT/Transaction.pm @@ -1,783 +1,364 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Transaction.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# Copyright 1999-2001 Jesse Vincent <jesse@fsck.com> -# Released under the terms of the GNU Public 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::Transaction - RT\'s transaction object +RT::Transaction + =head1 SYNOPSIS - use RT::Transaction; +=head1 DESCRIPTION +=head1 METHODS -=head1 DESCRIPTION +=cut +package RT::Transaction; +use RT::Record; +use RT::Ticket; -Each RT::Transaction describes an atomic change to a ticket object -or an update to an RT::Ticket object. -It can have arbitrary MIME attachments. +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('Transactions'); + $self->SUPER::_Init(@_); +} -=head1 METHODS -=begin testing -ok(require RT::TestHarness); -ok(require RT::Transaction); -=end testing + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + int(11) 'EffectiveTicket'. + int(11) 'Ticket'. + int(11) 'TimeTaken'. + varchar(20) 'Type'. + varchar(40) 'Field'. + varchar(255) 'OldValue'. + varchar(255) 'NewValue'. + varchar(100) 'Data'. =cut -package RT::Transaction; -use RT::Record; -@ISA= qw(RT::Record); - -use RT::Attachments; -# {{{ sub _Init -sub _Init { + +sub Create { my $self = shift; - $self->{'table'} = "Transactions"; - return ($self->SUPER::_Init(@_)); + my %args = ( + EffectiveTicket => '0', + Ticket => '0', + TimeTaken => '0', + Type => '', + Field => '', + OldValue => '', + NewValue => '', + Data => '', + + @_); + $self->SUPER::Create( + EffectiveTicket => $args{'EffectiveTicket'}, + Ticket => $args{'Ticket'}, + TimeTaken => $args{'TimeTaken'}, + Type => $args{'Type'}, + Field => $args{'Field'}, + OldValue => $args{'OldValue'}, + NewValue => $args{'NewValue'}, + Data => $args{'Data'}, +); } -# }}} -# {{{ sub Create -=head2 Create -Create a new transaction. +=item id -This routine should _never_ be called anything other Than RT::Ticket. It should not be called -from client code. Ever. Not ever. If you do this, we will hunt you down. and break your kneecaps. -Then the unpleasant stuff will start. +Returns the current value of id. +(In the database, id is stored as int(11).) -TODO: Document what gets passed to this =cut -sub Create { - my $self = shift; - my %args = ( id => undef, - TimeTaken => 0, - Ticket => 0 , - Type => 'undefined', - Data => '', - Field => undef, - OldValue => undef, - NewValue => undef, - MIMEObj => undef, - ActivateScrips => 1, - @_ - ); - - #if we didn't specify a ticket, we need to bail - unless ( $args{'Ticket'} ) { - return(0, "RT::Transaction->Create couldn't, as you didn't specify a ticket id"); - } - - #lets create our transaction - my $id = $self->SUPER::Create(Ticket => $args{'Ticket'}, - TimeTaken => $args{'TimeTaken'}, - Type => $args{'Type'}, - Data => $args{'Data'}, - Field => $args{'Field'}, - OldValue => $args{'OldValue'}, - NewValue => $args{'NewValue'}, - Created => $args{'Created'} - ); - $self->Load($id); - $self->_Attach($args{'MIMEObj'}) - if defined $args{'MIMEObj'}; - - #Provide a way to turn off scrips if we need to - if ($args{'ActivateScrips'}) { - - #We're really going to need a non-acled ticket for the scrips to work - my $TicketAsSystem = RT::Ticket->new($RT::SystemUser); - $TicketAsSystem->Load($args{'Ticket'}) || - $RT::Logger->err("$self couldn't load ticket $args{'Ticket'}\n"); - - my $TransAsSystem = RT::Transaction->new($RT::SystemUser); - $TransAsSystem->Load($self->id) || - $RT::Logger->err("$self couldn't load a copy of itself as superuser\n"); - - # {{{ Deal with Scrips - - #Load a scripscopes object - use RT::Scrips; - my $PossibleScrips = RT::Scrips->new($RT::SystemUser); - - $PossibleScrips->LimitToQueue($TicketAsSystem->QueueObj->Id); #Limit it to $Ticket->QueueObj->Id - $PossibleScrips->LimitToGlobal(); # or to "global" - my $ConditionsAlias = $PossibleScrips->NewAlias('ScripConditions'); - - $PossibleScrips->Join(ALIAS1 => 'main', FIELD1 => 'ScripCondition', - ALIAS2 => $ConditionsAlias, FIELD2=> 'id'); - - - #We only want things where the scrip applies to this sort of transaction - $PossibleScrips->Limit(ALIAS=> $ConditionsAlias, - FIELD=>'ApplicableTransTypes', - OPERATOR => 'LIKE', - VALUE => $args{'Type'}, - ENTRYAGGREGATOR => 'OR', - ); - - # Or where the scrip applies to any transaction - $PossibleScrips->Limit(ALIAS=> $ConditionsAlias, - FIELD=>'ApplicableTransTypes', - OPERATOR => 'LIKE', - VALUE => "Any", - ENTRYAGGREGATOR => 'OR', - ); - - #Iterate through each script and check it's applicability. - - while (my $Scrip = $PossibleScrips->Next()) { - - #TODO: properly deal with errors raised in this scrip loop - - #$RT::Logger->debug("$self now dealing with ".$Scrip->Id. "\n"); - eval { - local $SIG{__DIE__} = sub { $RT::Logger->error($_[0])}; - - - #Load the scrip's Condition object - $Scrip->ConditionObj->LoadCondition(TicketObj => $TicketAsSystem, - TransactionObj => $TransAsSystem); - - - #If it's applicable, prepare and commit it - - $RT::Logger->debug ("$self: Checking condition ".$Scrip->ConditionObj->Name. "...\n"); - - if ( $Scrip->IsApplicable() ) { - - $RT::Logger->debug ("$self: Matches condition ".$Scrip->ConditionObj->Name. "...\n"); - #TODO: handle some errors here - - $Scrip->ActionObj->LoadAction(TicketObj => $TicketAsSystem, - TransactionObj => $TransAsSystem); - - - if ($Scrip->Prepare()) { - $RT::Logger->debug("$self: Prepared " . - $Scrip->ActionObj->Name . "\n"); - if ($Scrip->Commit()) { - $RT::Logger->debug("$self: Committed " . - $Scrip->ActionObj->Name . "\n"); - } - else { - $RT::Logger->info("$self: Failed to commit ". - $Scrip->ActionObj->Name . "\n"); - } - } - else { - $RT::Logger->info("$self: Failed to prepare " . - $Scrip->ActionObj->Name . "\n"); - } - - #We're done with it. lets clean up. - #TODO: something else isn't letting these get garbage collected. check em out. - $Scrip->ActionObj->DESTROY(); - $Scrip->ConditionObj->DESTROY; - } - - - else { - $RT::Logger->debug ("$self: Doesn't match condition ".$Scrip->ConditionObj->Name. "...\n"); - - # TODO: why doesn't this catch all the ScripObjs we create. - # and why do we explictly need to destroy them? - $Scrip->ConditionObj->DESTROY; - } - } - } - - # }}} - - } - - return ($id, "Transaction Created"); -} -# }}} +=item EffectiveTicket -# {{{ sub Delete +Returns the current value of EffectiveTicket. +(In the database, EffectiveTicket is stored as int(11).) -sub Delete { - my $self = shift; - return (0, 'Deleting this object could break referential integrity'); -} -# }}} -# {{{ Routines dealing with Attachments +=item SetEffectiveTicket VALUE -# {{{ sub Message -=head2 Message +Set EffectiveTicket to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, EffectiveTicket will be stored as a int(11).) - Returns the RT::Attachments Object which contains the "top-level" object - attachment for this transaction =cut -sub Message { - my $self = shift; - - if (!defined ($self->{'message'}) ){ - - $self->{'message'} = new RT::Attachments($self->CurrentUser); - $self->{'message'}->Limit(FIELD => 'TransactionId', - VALUE => $self->Id); - - $self->{'message'}->ChildrenOf(0); - } - return($self->{'message'}); -} -# }}} +=item Ticket + +Returns the current value of Ticket. +(In the database, Ticket is stored as int(11).) + -# {{{ sub Content -=head2 Content PARAMHASH +=item SetTicket VALUE -If this transaction has attached mime objects, returns the first text/ part. -Otherwise, returns undef. -Takes a paramhash. If the $args{'Quote'} parameter is set, wraps this message -at $args{'Wrap'}. $args{'Wrap'} defaults to 70. +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 -sub Content { - my $self = shift; - my %args = ( Quote => 0, - Wrap => 70, - @_ ); - - my $content = undef; - - # If we don\'t have any content, return undef now. - unless ($self->Message->First) { - return (undef); - } - - # Get the set of toplevel attachments to this transaction. - my $MIMEObj = $self->Message->First(); - - # If it's a message or a plain part, just return the - # body. - if ($MIMEObj->ContentType() =~ '^(text|message)(/|$)') { - $content = $MIMEObj->Content(); - } - - # If it's a multipart object, first try returning the first - # text/plain part. - - elsif ($MIMEObj->ContentType() =~ '^multipart/') { - my $plain_parts = $MIMEObj->Children(); - $plain_parts->ContentType(VALUE => 'text/plain'); - - # If we actully found a part, return its content - if ($plain_parts->First && - $plain_parts->First->Content ne '') { - $content = $plain_parts->First->Content; - } - - # If that fails, return the first text/ or message/ part - # which has some content. - - else { - my $all_parts = $MIMEObj->Children(); - while (($content == undef) && - (my $part = $all_parts->Next)) { - if (($part->ContentType() =~ '^(text|message)(/|$)') and - ($part->Content())) { - $content = $part->Content; - } - } - } - - } - # If all else fails, return a message that we couldn't find - # any content - else { - $content = 'This transaction appears to have no content'; - } - - if ($args{'Quote'}) { - # Remove quoted signature. - $content =~ s/\n-- \n(.*)$//s; - - # What's the longest line like? - foreach (split (/\n/,$content)) { - $max=length if ( length > $max); - } - - if ($max>76) { - require Text::Wrapper; - my $wrapper=new Text::Wrapper - ( - columns => $args{'Wrap'}, - body_start => ($max > 70*3 ? ' ' : ''), - par_start => '' - ); - $content=$wrapper->wrap($content); - } - - $content =~ s/^/> /gm; - $content = '[' . $self->CreatorObj->Name() . ' - ' . $self->CreatedAsString() - . "]:\n\n" - . $content . "\n\n"; - - } - - return ($content); -} -# }}} -# {{{ sub Subject +=item TicketObj + +Returns the Ticket Object which has the id returned by Ticket -=head2 Subject -If this transaction has attached mime objects, returns the first one's subject -Otherwise, returns null - =cut -sub Subject { - my $self = shift; - if ($self->Message->First) { - return ($self->Message->First->Subject); - } - else { - return (undef); - } +sub TicketObj { + my $self = shift; + my $Ticket = RT::Ticket->new($self->CurrentUser); + $Ticket->Load($self->__Value('Ticket')); + return($Ticket); } -# }}} -# {{{ sub Attachments +=item TimeTaken + +Returns the current value of TimeTaken. +(In the database, TimeTaken is stored as int(11).) + -=head2 Attachments - Returns all the RT::Attachment objects which are attached -to this transaction. Takes an optional parameter, which is -a ContentType that Attachments should be restricted to. +=item SetTimeTaken VALUE + + +Set TimeTaken to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, TimeTaken will be stored as a int(11).) + =cut -sub Attachments { - my $self = shift; - my $Types = ''; - $Types = shift if (@_); - - my $Attachments = new RT::Attachments($self->CurrentUser); - - #If it's a comment, return an empty object if they don't have the right to see it - if ($self->Type eq 'Comment') { - unless ($self->CurrentUserHasRight('ShowTicketComments')) { - return ($Attachments); - } - } - #if they ain't got rights to see, return an empty object - else { - unless ($self->CurrentUserHasRight('ShowTicket')) { - return ($Attachments); - } - } - - $Attachments->Limit(FIELD => 'TransactionId', - VALUE => $self->Id); - - # Get the attachments in the order they're put into - # the database. Arguably, we should be returning a tree - # of attachments, not a set...but no current app seems to need - # it. - - $Attachments->OrderBy(ALIAS => 'main', - FIELD => 'Id', - ORDER => 'asc'); - - if ($Types) { - $Attachments->ContentType( VALUE => "$Types", - OPERATOR => "LIKE"); - } - - - return($Attachments); - -} +=item Type -# }}} +Returns the current value of Type. +(In the database, Type is stored as varchar(20).) -# {{{ sub _Attach -=head2 _Attach -A private method used to attach a mime object to this transaction. +=item SetType VALUE + + +Set Type to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Type will be stored as a varchar(20).) + =cut -sub _Attach { - my $self = shift; - my $MIMEObject = shift; - - if (!defined($MIMEObject)) { - $RT::Logger->error("$self _Attach: We can't attach a mime object if you don't give us one.\n"); - return(0, "$self: no attachment specified"); - } - - - use RT::Attachment; - my $Attachment = new RT::Attachment ($self->CurrentUser); - $Attachment->Create(TransactionId => $self->Id, - Attachment => $MIMEObject); - return ($Attachment, "Attachment created"); - -} -# }}} +=item Field -# }}} +Returns the current value of Field. +(In the database, Field is stored as varchar(40).) -# {{{ Routines dealing with Transaction Attributes -# {{{ sub TicketObj -=head2 TicketObj +=item SetField VALUE + + +Set Field to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Field will be stored as a varchar(40).) -Returns this transaction's ticket object. =cut -sub TicketObj { - my $self = shift; - if (! exists $self->{'TicketObj'}) { - $self->{'TicketObj'} = new RT::Ticket($self->CurrentUser); - $self->{'TicketObj'}->Load($self->Ticket); - } - - return $self->{'TicketObj'}; -} -# }}} -# {{{ sub Description +=item OldValue + +Returns the current value of OldValue. +(In the database, OldValue is stored as varchar(255).) + + + +=item SetOldValue VALUE + -=head2 Description +Set OldValue to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, OldValue will be stored as a varchar(255).) -Returns a text string which describes this transaction =cut -sub Description { - my $self = shift; +=item NewValue + +Returns the current value of NewValue. +(In the database, NewValue is stored as varchar(255).) - #Check those ACLs - #If it's a comment, we need to be extra special careful - if ($self->__Value('Type') eq 'Comment') { - unless ($self->CurrentUserHasRight('ShowTicketComments')) { - return (0, "Permission Denied"); - } - } - - #if they ain't got rights to see, don't let em - else { - unless ($self->CurrentUserHasRight('ShowTicket')) { - return (0, "Permission Denied"); - } - } - - if (!defined($self->Type)) { - return("No transaction type specified"); - } - - return ($self->BriefDescription . " by " . $self->CreatorObj->Name); -} -# }}} -# {{{ sub BriefDescription +=item SetNewValue VALUE -=head2 BriefDescription -Returns a text string which briefly describes this transaction +Set NewValue to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, NewValue will be stored as a varchar(255).) + =cut -sub BriefDescription { - my $self = shift; +=item Data - #Check those ACLs - #If it's a comment, we need to be extra special careful - if ($self->__Value('Type') eq 'Comment') { - unless ($self->CurrentUserHasRight('ShowTicketComments')) { - return (0, "Permission Denied"); - } - } - - #if they ain't got rights to see, don't let em - else { - unless ($self->CurrentUserHasRight('ShowTicket')) { - return (0, "Permission Denied"); - } - } - - if (!defined($self->Type)) { - return("No transaction type specified"); - } - - if ($self->Type eq 'Create'){ - return("Ticket created"); - } - elsif ($self->Type =~ /Status/) { - if ($self->Field eq 'Status') { - if ($self->NewValue eq 'dead') { - return ("Ticket killed"); - } - else { - return( "Status changed from ". $self->OldValue . - " to ". $self->NewValue); - - } - } - # Generic: - return ($self->Field." changed from ".($self->OldValue||"(empty value)"). - " to ".$self->NewValue ); - } - - if ($self->Type eq 'Correspond') { - return("Correspondence added"); - } - - elsif ($self->Type eq 'Comment') { - return( "Comments added"); - } - - elsif ($self->Type eq 'Keyword') { - - my $field = 'Keyword'; - - if ($self->Field) { - my $keywordsel = new RT::KeywordSelect ($self->CurrentUser); - $keywordsel->Load($self->Field); - $field = $keywordsel->Name(); - } - - if ($self->OldValue eq '') { - return ($field." ".$self->NewValue." added"); - } - elsif ($self->NewValue eq '') { - return ($field." ".$self->OldValue." deleted"); - - } - else { - return ($field." ".$self->OldValue . " changed to ". - $self->NewValue); - } - } - - elsif ($self->Type eq 'Untake'){ - return( "Untaken"); - } - - elsif ($self->Type eq "Take") { - return( "Taken"); - } - - elsif ($self->Type eq "Force") { - my $Old = RT::User->new($self->CurrentUser); - $Old->Load($self->OldValue); - my $New = RT::User->new($self->CurrentUser); - $New->Load($self->NewValue); - return "Owner forcibly changed from ".$Old->Name . " to ". $New->Name; - } - elsif ($self->Type eq "Steal") { - my $Old = RT::User->new($self->CurrentUser); - $Old->Load($self->OldValue); - return "Stolen from ".$Old->Name; - } - - elsif ($self->Type eq "Give") { - my $New = RT::User->new($self->CurrentUser); - $New->Load($self->NewValue); - return( "Given to ".$New->Name); - } - - elsif ($self->Type eq 'AddWatcher'){ - return( $self->Field." ". $self->NewValue ." added"); - } - - elsif ($self->Type eq 'DelWatcher'){ - return( $self->Field." ".$self->OldValue ." deleted"); - } - - elsif ($self->Type eq 'Subject') { - return( "Subject changed to ".$self->Data); - } - elsif ($self->Type eq 'Told') { - return( "User notified"); - } - - elsif ($self->Type eq 'AddLink') { - return ($self->Data); - } - elsif ($self->Type eq 'DeleteLink') { - return ($self->Data); - } - elsif ($self->Type eq 'Set') { - if ($self->Field eq 'Queue') { - my $q1 = new RT::Queue($self->CurrentUser); - $q1->Load($self->OldValue); - my $q2 = new RT::Queue($self->CurrentUser); - $q2->Load($self->NewValue); - return ($self->Field . " changed from " . $q1->Name . " to ". - $q2->Name); - } - - # Write the date/time change at local time: - elsif ($self->Field =~ /Due|Starts|Started|Told/) { - my $t1 = new RT::Date($self->CurrentUser); - $t1->Set(Format => 'ISO', Value => $self->NewValue); - my $t2 = new RT::Date($self->CurrentUser); - $t2->Set(Format => 'ISO', Value => $self->OldValue); - return ($self->Field . " changed from " . $t2->AsString . - " to ".$t1->AsString); - } - else { - return ($self->Field . " changed from " . $self->OldValue . - " to ".$self->NewValue); - } - } - elsif ($self->Type eq 'PurgeTransaction') { - return ("Transaction ".$self->Data. " purged"); - } - else { - return ("Default: ". $self->Type ."/". $self->Field . - " changed from " . $self->OldValue . - " to ".$self->NewValue); - - } -} +Returns the current value of Data. +(In the database, Data is stored as varchar(100).) -# }}} -# {{{ Utility methods -# {{{ sub IsInbound +=item SetData VALUE -=head2 IsInbound -Returns true if the creator of the transaction is a requestor of the ticket. -Returns false otherwise +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(100).) -=cut -sub IsInbound { - my $self=shift; - return ($self->TicketObj->IsRequestor($self->CreatorObj)); -} +=cut -# }}} - -# }}} - -# {{{ sub _Accessible - -sub _Accessible { - my $self = shift; - my %Cols = ( - TimeTaken => 'read', - Ticket => 'read/public', - Type=> 'read', - Field => 'read', - Data => 'read', - NewValue => 'read', - OldValue => 'read', - Creator => 'read/auto', - Created => 'read/auto', - ); - return $self->SUPER::_Accessible(@_, %Cols); -} -# }}} +=item Creator -# }}} +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) -# {{{ sub _Set -sub _Set { - my $self = shift; - return(0, 'Transactions are immutable'); -} +=cut -# }}} -# {{{ sub _Value +=item Created -=head2 _Value +Returns the current value of Created. +(In the database, Created is stored as datetime.) -Takes the name of a table column. -Returns its value as a string, if the user passes an ACL check =cut -sub _Value { - my $self = shift; - my $field = shift; - - - #if the field is public, return it. - if ($self->_Accessible($field, 'public')) { - return($self->__Value($field)); - - } - #If it's a comment, we need to be extra special careful - if ($self->__Value('Type') eq 'Comment') { - unless ($self->CurrentUserHasRight('ShowTicketComments')) { - return (undef); - } - } - #if they ain't got rights to see, don't let em - else { - unless ($self->CurrentUserHasRight('ShowTicket')) { - return (undef); - } - } - - return($self->__Value($field)); - -} -# }}} +sub _ClassAccessible { + { + + id => + {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, type => 'int(11)', default => '0'}, + Type => + {read => 1, write => 1, type => 'varchar(20)', default => ''}, + Field => + {read => 1, write => 1, type => 'varchar(40)', default => ''}, + OldValue => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + NewValue => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + Data => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + Creator => + {read => 1, auto => 1, type => 'int(11)', default => '0'}, + Created => + {read => 1, auto => 1, type => 'datetime', default => ''}, -# {{{ sub CurrentUserHasRight + } +}; -=head2 CurrentUserHasRight RIGHT -Calls $self->CurrentUser->HasQueueRight for the right passed in here. -passed in here. + eval "require RT::Transaction_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Transaction_Overlay.pm}) { + die $@; + }; -=cut + eval "require RT::Transaction_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Transaction_Vendor.pm}) { + die $@; + }; -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - return ($self->CurrentUser->HasQueueRight(Right => "$right", - TicketObj => $self->TicketObj)); -} + eval "require RT::Transaction_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Transaction_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::Transaction_Overlay, RT::Transaction_Vendor, RT::Transaction_Local + +=cut -# }}} 1; diff --git a/rt/lib/RT/Transactions.pm b/rt/lib/RT/Transactions.pm index 2ae98f286..23a475ac6 100755 --- a/rt/lib/RT/Transactions.pm +++ b/rt/lib/RT/Transactions.pm @@ -1,78 +1,115 @@ -#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Transactions.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -=head1 NAME - RT::Transactions - a collection of RT Transaction objects +=head1 NAME + RT::Transactions -- Class Description + =head1 SYNOPSIS - use RT::Transactions; - + use RT::Transactions =head1 DESCRIPTION =head1 METHODS -=begin testing - -ok (require RT::TestHarness); -ok (require RT::Transactions); - -=end testing - =cut package RT::Transactions; -use RT::EasySearch; -@ISA= qw(RT::EasySearch); +use RT::SearchBuilder; use RT::Transaction; -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'table'} = "Transactions"; - $self->{'primary_key'} = "id"; - - # By default, order by the date of the transaction, rather than ID. - $self->OrderBy( ALIAS => 'main', - FIELD => 'Created', - ORDER => 'ASC'); - - return ( $self->SUPER::_Init(@_)); +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + + +sub _Init { + my $self = shift; + $self->{'table'} = 'Transactions'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); } -# }}} -# {{{ sub NewItem -sub NewItem { + +=item NewItem + +Returns an empty new RT::Transaction item + +=cut + +sub NewItem { my $self = shift; - return(RT::Transaction->new($self->CurrentUser)); } -# }}} + + eval "require RT::Transactions_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Transactions_Overlay.pm}) { + die $@; + }; + + eval "require RT::Transactions_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Transactions_Vendor.pm}) { + die $@; + }; + + eval "require RT::Transactions_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Transactions_Local.pm}) { + die $@; + }; -=head2 example methods - Queue RT::Queue or Queue Id - Ticket RT::Ticket or Ticket Id +=head1 SEE ALSO -LimitDate - -Type TRANSTYPE -Field STRING -OldValue OLDVAL -NewValue NEWVAL -Data DATA -TimeTaken -Actor USEROBJ/USERID -ContentMatches STRING +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::Transactions_Overlay, RT::Transactions_Vendor, RT::Transactions_Local =cut 1; - diff --git a/rt/lib/RT/User.pm b/rt/lib/RT/User.pm index 4e8554030..cbc10f5b4 100755 --- a/rt/lib/RT/User.pm +++ b/rt/lib/RT/User.pm @@ -1,1222 +1,854 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/User.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; + =head1 NAME - RT::User - RT User object +RT::User -=head1 SYNOPSIS - use RT::User; +=head1 SYNOPSIS =head1 DESCRIPTION - =head1 METHODS -=begin testing +=cut + +package RT::User; +use RT::Record; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('Users'); + $self->SUPER::_Init(@_); +} -ok(require RT::TestHarness); -ok(require RT::User); -=end testing + +=item Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(200) 'Name'. + varchar(40) 'Password'. + blob 'Comments'. + blob 'Signature'. + varchar(120) 'EmailAddress'. + blob 'FreeformContactInfo'. + varchar(200) 'Organization'. + varchar(120) 'RealName'. + varchar(16) 'NickName'. + varchar(16) 'Lang'. + varchar(16) 'EmailEncoding'. + varchar(16) 'WebEncoding'. + varchar(100) 'ExternalContactInfoId'. + varchar(30) 'ContactInfoSystem'. + varchar(100) 'ExternalAuthId'. + varchar(30) 'AuthSystem'. + varchar(16) 'Gecos'. + varchar(30) 'HomePhone'. + varchar(30) 'WorkPhone'. + varchar(30) 'MobilePhone'. + varchar(30) 'PagerPhone'. + varchar(200) 'Address1'. + varchar(200) 'Address2'. + varchar(100) 'City'. + varchar(100) 'State'. + varchar(16) 'Zip'. + varchar(50) 'Country'. + varchar(50) 'Timezone'. + text 'PGPKey'. + =cut -package RT::User; -use RT::Record; -@ISA= qw(RT::Record); -# {{{ sub _Init -sub _Init { + +sub Create { my $self = shift; - $self->{'table'} = "Users"; - return($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub _Accessible - -sub _Accessible { - my $self = shift; - my %Cols = ( - # {{{ Core RT info - Name => 'public/read/write/admin', - Password => 'write', - Comments => 'read/write/admin', - Signature => 'read/write', - EmailAddress => 'public/read/write', - PagerEmailAddress => 'read/write', - FreeformContactInfo => 'read/write', - Organization => 'public/read/write/admin', - Disabled => 'public/read/write/admin', #To modify this attribute, we have helper - #methods - Privileged => 'read/write/admin', # 0=no 1=user 2=system - - # }}} - - # {{{ Names - - RealName => 'public/read/write', - NickName => 'public/read/write', - # }}} - - # {{{ Localization and Internationalization - Lang => 'public/read/write', - EmailEncoding => 'public/read/write', - WebEncoding => 'public/read/write', - # }}} - - # {{{ External ContactInfo Linkage - ExternalContactInfoId => 'public/read/write/admin', - ContactInfoSystem => 'public/read/write/admin', - # }}} - - # {{{ User Authentication identifier - ExternalAuthId => 'public/read/write/admin', - #Authentication system used for user - AuthSystem => 'public/read/write/admin', - Gecos => 'public/read/write/admin', #Gecos is the name of the fields in a - # unix passwd file. In this case, it refers to "Unix Username" - # }}} - - # {{{ Telephone numbers - HomePhone => 'read/write', - WorkPhone => 'read/write', - MobilePhone => 'read/write', - PagerPhone => 'read/write', - - # }}} - - # {{{ Paper Address - Address1 => 'read/write', - Address2 => 'read/write', - City => 'read/write', - State => 'read/write', - Zip => 'read/write', - Country => 'read/write', - # }}} - - # {{{ Core DBIx::Record Attributes - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - - # }}} - ); - return($self->SUPER::_Accessible(@_, %Cols)); + my %args = ( + Name => '', + Password => '', + Comments => '', + Signature => '', + EmailAddress => '', + FreeformContactInfo => '', + Organization => '', + RealName => '', + NickName => '', + Lang => '', + EmailEncoding => '', + WebEncoding => '', + ExternalContactInfoId => '', + ContactInfoSystem => '', + ExternalAuthId => '', + AuthSystem => '', + Gecos => '', + HomePhone => '', + WorkPhone => '', + MobilePhone => '', + PagerPhone => '', + Address1 => '', + Address2 => '', + City => '', + State => '', + Zip => '', + Country => '', + Timezone => '', + PGPKey => '', + + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Password => $args{'Password'}, + Comments => $args{'Comments'}, + Signature => $args{'Signature'}, + EmailAddress => $args{'EmailAddress'}, + FreeformContactInfo => $args{'FreeformContactInfo'}, + Organization => $args{'Organization'}, + RealName => $args{'RealName'}, + NickName => $args{'NickName'}, + Lang => $args{'Lang'}, + EmailEncoding => $args{'EmailEncoding'}, + WebEncoding => $args{'WebEncoding'}, + ExternalContactInfoId => $args{'ExternalContactInfoId'}, + ContactInfoSystem => $args{'ContactInfoSystem'}, + ExternalAuthId => $args{'ExternalAuthId'}, + AuthSystem => $args{'AuthSystem'}, + Gecos => $args{'Gecos'}, + HomePhone => $args{'HomePhone'}, + WorkPhone => $args{'WorkPhone'}, + MobilePhone => $args{'MobilePhone'}, + PagerPhone => $args{'PagerPhone'}, + Address1 => $args{'Address1'}, + Address2 => $args{'Address2'}, + City => $args{'City'}, + State => $args{'State'}, + Zip => $args{'Zip'}, + Country => $args{'Country'}, + Timezone => $args{'Timezone'}, + PGPKey => $args{'PGPKey'}, +); + } -# }}} -# {{{ sub Create -sub Create { - my $self = shift; - my %args = (Privileged => 0, - @_ # get the real argumentlist - ); - - #Check the ACL - unless ($self->CurrentUserHasRight('AdminUsers')) { - return (0, 'No permission to create users'); - } - - if (! $args{'Password'}) { - $args{'Password'} = '*NO-PASSWORD*'; - } - elsif (length($args{'Password'}) < $RT::MinimumPasswordLength) { - return(0,"Password too short"); - } - else { - my $salt = join '', ('.','/',0..9,'A'..'Z','a'..'z')[rand 64, rand 64]; - $args{'Password'} = crypt($args{'Password'}, $salt); - } - - - #TODO Specify some sensible defaults. - - unless (defined ($args{'Name'})) { - return(0, "Must specify 'Name' attribute"); - } - - - #SANITY CHECK THE NAME AND ABORT IF IT'S TAKEN - if ($RT::SystemUser) { #This only works if RT::SystemUser has been defined - my $TempUser = RT::User->new($RT::SystemUser); - $TempUser->Load($args{'Name'}); - return (0, 'Name in use') if ($TempUser->Id); - - return(0, 'Email address in use') - unless ($self->ValidateEmailAddress($args{'EmailAddress'})); - } - else { - $RT::Logger->warning("$self couldn't check for pre-existing ". - " users on create. This will happen". - " on installation\n"); - } - - my $id = $self->SUPER::Create(%args); - - #If the create failed. - unless ($id) { - return (0, 'Could not create user'); - } - - - #TODO post 2.0 - #if ($args{'SendWelcomeMessage'}) { - # #TODO: Check if the email exists and looks valid - # #TODO: Send the user a "welcome message" - #} - - return ($id, 'User created'); -} +=item id -# }}} +Returns the current value of id. +(In the database, id is stored as int(11).) -# {{{ sub _BootstrapCreate -#create a user without validating _any_ data. +=cut -#To be used only on database init. -sub _BootstrapCreate { - my $self = shift; - my %args = (@_); +=item Name - $args{'Password'} = "*NO-PASSWORD*"; - my $id = $self->SUPER::Create(%args); - - #If the create failed. - return (0, 'Could not create user') - unless ($id); +Returns the current value of Name. +(In the database, Name is stored as varchar(200).) - return ($id, 'User created'); -} -# }}} -# {{{ sub Delete +=item SetName VALUE -sub Delete { - my $self = shift; - - return(0, 'Deleting this object would violate referential integrity'); - -} -# }}} +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(200).) + + +=cut + + +=item Password + +Returns the current value of Password. +(In the database, Password is stored as varchar(40).) -# {{{ sub Load -=head2 Load -Load a user object from the database. Takes a single argument. -If the argument is numerical, load by the column 'id'. Otherwise, load by -the "Name" column which is the user's textual username. +=item SetPassword VALUE + + +Set Password to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Password will be stored as a varchar(40).) + =cut -sub Load { - my $self = shift; - my $identifier = shift || return undef; - - #if it's an int, load by id. otherwise, load by name. - if ($identifier !~ /\D/) { - $self->SUPER::LoadById($identifier); - } - else { - $self->LoadByCol("Name",$identifier); - } -} -# }}} +=item Comments + +Returns the current value of Comments. +(In the database, Comments is stored as blob.) -# {{{ sub LoadByEmail -=head2 LoadByEmail +=item SetComments VALUE -Tries to load this user object from the database by the user's email address. + +Set Comments to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Comments will be stored as a blob.) =cut -sub LoadByEmail { - my $self=shift; - my $address = shift; - # Never load an empty address as an email address. - unless ($address) { - return(undef); - } +=item Signature - $address = RT::CanonicalizeAddress($address); - #$RT::Logger->debug("Trying to load an email address: $address\n"); - return $self->LoadByCol("EmailAddress", $address); -} -# }}} +Returns the current value of Signature. +(In the database, Signature is stored as blob.) -# {{{ sub ValidateEmailAddress -=head2 ValidateEmailAddress ADDRESS +=item SetSignature VALUE + + +Set Signature to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Signature will be stored as a blob.) -Returns true if the email address entered is not in use by another user or is -undef or ''. Returns false if it's in use. =cut -sub ValidateEmailAddress { - my $self = shift; - my $Value = shift; - # if the email address is null, it's always valid - return (1) if(!$Value || $Value eq ""); +=item EmailAddress - my $TempUser = RT::User->new($RT::SystemUser); - $TempUser->LoadByEmail($Value); +Returns the current value of EmailAddress. +(In the database, EmailAddress is stored as varchar(120).) - if( $TempUser->id && - ($TempUser->id != $self->id)) { # if we found a user with that address - # it's invalid to set this user's address to it - return(undef); - } - else { #it's a valid email address - return(1); - } -} -# }}} +=item SetEmailAddress VALUE + + +Set EmailAddress to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, EmailAddress will be stored as a varchar(120).) + + +=cut + + +=item FreeformContactInfo + +Returns the current value of FreeformContactInfo. +(In the database, FreeformContactInfo is stored as blob.) -# {{{ sub SetRandomPassword +=item SetFreeformContactInfo VALUE -=head2 SetRandomPassword -Takes no arguments. Returns a status code and a new password or an error message. -If the status is 1, the second value returned is the new password. -If the status is anything else, the new value returned is the error code. +Set FreeformContactInfo to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, FreeformContactInfo will be stored as a blob.) + =cut -sub SetRandomPassword { - my $self = shift; +=item Organization - unless ($self->CurrentUserCanModify('Password')) { - return (0, "Permission Denied"); - } - - my $pass = $self->GenerateRandomPassword(6,8); +Returns the current value of Organization. +(In the database, Organization is stored as varchar(200).) - # If we have "notify user on - my ($val, $msg) = $self->SetPassword($pass); - - #If we got an error return the error. - return (0, $msg) unless ($val); - - #Otherwise, we changed the password, lets return it. - return (1, $pass); - -} -# }}} +=item SetOrganization VALUE + + +Set Organization to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Organization will be stored as a varchar(200).) + + +=cut + + +=item RealName + +Returns the current value of RealName. +(In the database, RealName is stored as varchar(120).) -# {{{ sub ResetPassword -=head2 ResetPassword +=item SetRealName VALUE + + +Set RealName to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, RealName will be stored as a varchar(120).) -Returns status, [ERROR or new password]. Resets this user\'s password to -a randomly generated pronouncable password and emails them, using a -global template called "RT_PasswordChange", which can be overridden -with global templates "RT_PasswordChange_Privileged" or "RT_PasswordChange_NonPrivileged" -for privileged and Non-privileged users respectively. =cut -sub ResetPassword { - my $self = shift; - - unless ($self->CurrentUserCanModify('Password')) { - return (0, "Permission Denied"); - } - my ($status, $pass) = $self->SetRandomPassword(); - - unless ($status) { - return (0, "$pass"); - } - - my $template = RT::Template->new($self->CurrentUser); - - - if ($self->IsPrivileged) { - $template->LoadGlobalTemplate('RT_PasswordChange_Privileged'); - } - else { - $template->LoadGlobalTemplate('RT_PasswordChange_Privileged'); - } - - unless ($template->Id) { - $template->LoadGlobalTemplate('RT_PasswordChange'); - } - - unless ($template->Id) { - $RT::Logger->crit("$self tried to send ".$self->Name." a password reminder ". - "but couldn't find a password change template"); - } - - my $notification = RT::Action::SendPasswordEmail->new(TemplateObj => $template, - Argument => $pass); - - $notification->SetTo($self->EmailAddress); - - my ($ret); - $ret = $notification->Prepare(); - if ($ret) { - $ret = $notification->Commit(); - } - - if ($ret) { - return(1, 'New password notification sent'); - } else { - return (0, 'Notification could not be sent'); - } - -} +=item NickName -# }}} +Returns the current value of NickName. +(In the database, NickName is stored as varchar(16).) -# {{{ sub GenerateRandomPassword -=head2 GenerateRandomPassword MIN_LEN and MAX_LEN -Returns a random password between MIN_LEN and MAX_LEN characters long. +=item SetNickName VALUE + + +Set NickName to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, NickName will be stored as a varchar(16).) + =cut -sub GenerateRandomPassword { - my $self = shift; - my $min_length = shift; - my $max_length = shift; - - #This code derived from mpw.pl, a bit of code with a sordid history - # Its notes: - - # Perl cleaned up a bit by Jesse Vincent 1/14/2001. - # Converted to perl from C by Marc Horowitz, 1/20/2000. - # Converted to C from Multics PL/I by Bill Sommerfeld, 4/21/86. - # Original PL/I version provided by Jerry Saltzer. - - - my ($frequency, $start_freq, $total_sum, $row_sums); - - #When munging characters, we need to know where to start counting letters from - my $a = ord('a'); - - # frequency of English digraphs (from D Edwards 1/27/66) - $frequency = - [ [ 4, 20, 28, 52, 2, 11, 28, 4, 32, 4, 6, 62, 23, - 167, 2, 14, 0, 83, 76, 127, 7, 25, 8, 1, 9, 1 ], # aa - az - [ 13, 0, 0, 0, 55, 0, 0, 0, 8, 2, 0, 22, 0, - 0, 11, 0, 0, 15, 4, 2, 13, 0, 0, 0, 15, 0 ], # ba - bz - [ 32, 0, 7, 1, 69, 0, 0, 33, 17, 0, 10, 9, 1, - 0, 50, 3, 0, 10, 0, 28, 11, 0, 0, 0, 3, 0 ], # ca - cz - [ 40, 16, 9, 5, 65, 18, 3, 9, 56, 0, 1, 4, 15, - 6, 16, 4, 0, 21, 18, 53, 19, 5, 15, 0, 3, 0 ], # da - dz - [ 84, 20, 55, 125, 51, 40, 19, 16, 50, 1, 4, 55, 54, - 146, 35, 37, 6, 191, 149, 65, 9, 26, 21, 12, 5, 0 ], # ea - ez - [ 19, 3, 5, 1, 19, 21, 1, 3, 30, 2, 0, 11, 1, - 0, 51, 0, 0, 26, 8, 47, 6, 3, 3, 0, 2, 0 ], # fa - fz - [ 20, 4, 3, 2, 35, 1, 3, 15, 18, 0, 0, 5, 1, - 4, 21, 1, 1, 20, 9, 21, 9, 0, 5, 0, 1, 0 ], # ga - gz - [ 101, 1, 3, 0, 270, 5, 1, 6, 57, 0, 0, 0, 3, - 2, 44, 1, 0, 3, 10, 18, 6, 0, 5, 0, 3, 0 ], # ha - hz - [ 40, 7, 51, 23, 25, 9, 11, 3, 0, 0, 2, 38, 25, - 202, 56, 12, 1, 46, 79, 117, 1, 22, 0, 4, 0, 3 ], # ia - iz - [ 3, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0 ], # ja - jz - [ 1, 0, 0, 0, 11, 0, 0, 0, 13, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 6, 2, 1, 0, 2, 0, 1, 0 ], # ka - kz - [ 44, 2, 5, 12, 62, 7, 5, 2, 42, 1, 1, 53, 2, - 2, 25, 1, 1, 2, 16, 23, 9, 0, 1, 0, 33, 0 ], # la - lz - [ 52, 14, 1, 0, 64, 0, 0, 3, 37, 0, 0, 0, 7, - 1, 17, 18, 1, 2, 12, 3, 8, 0, 1, 0, 2, 0 ], # ma - mz - [ 42, 10, 47, 122, 63, 19, 106, 12, 30, 1, 6, 6, 9, - 7, 54, 7, 1, 7, 44, 124, 6, 1, 15, 0, 12, 0 ], # na - nz - [ 7, 12, 14, 17, 5, 95, 3, 5, 14, 0, 0, 19, 41, - 134, 13, 23, 0, 91, 23, 42, 55, 16, 28, 0, 4, 1 ], # oa - oz - [ 19, 1, 0, 0, 37, 0, 0, 4, 8, 0, 0, 15, 1, - 0, 27, 9, 0, 33, 14, 7, 6, 0, 0, 0, 0, 0 ], # pa - pz - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0 ], # qa - qz - [ 83, 8, 16, 23, 169, 4, 8, 8, 77, 1, 10, 5, 26, - 16, 60, 4, 0, 24, 37, 55, 6, 11, 4, 0, 28, 0 ], # ra - rz - [ 65, 9, 17, 9, 73, 13, 1, 47, 75, 3, 0, 7, 11, - 12, 56, 17, 6, 9, 48, 116, 35, 1, 28, 0, 4, 0 ], # sa - sz - [ 57, 22, 3, 1, 76, 5, 2, 330, 126, 1, 0, 14, 10, - 6, 79, 7, 0, 49, 50, 56, 21, 2, 27, 0, 24, 0 ], # ta - tz - [ 11, 5, 9, 6, 9, 1, 6, 0, 9, 0, 1, 19, 5, - 31, 1, 15, 0, 47, 39, 31, 0, 3, 0, 0, 0, 0 ], # ua - uz - [ 7, 0, 0, 0, 72, 0, 0, 0, 28, 0, 0, 0, 0, - 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0 ], # va - vz - [ 36, 1, 1, 0, 38, 0, 0, 33, 36, 0, 0, 4, 1, - 8, 15, 0, 0, 0, 4, 2, 0, 0, 1, 0, 0, 0 ], # wa - wz - [ 1, 0, 2, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, - 0, 1, 5, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0 ], # xa - xz - [ 14, 5, 4, 2, 7, 12, 12, 6, 10, 0, 0, 3, 7, - 5, 17, 3, 0, 4, 16, 30, 0, 0, 5, 0, 0, 0 ], # ya - yz - [ 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ]; # za - zz - - #We need to know the totals for each row - $row_sums = - [ map { my $sum = 0; map { $sum += $_ } @$_; $sum } @$frequency ]; - - - #Frequency with which a given letter starts a word. - $start_freq = - [ 1299, 425, 725, 271, 375, 470, 93, 223, 1009, 24, 20, 355, 379, - 319, 823, 618, 21, 317, 962, 1991, 271, 104, 516, 6, 16, 14 ]; - - $total_sum = 0; map { $total_sum += $_ } @$start_freq; - - - my $length = $min_length + int(rand($max_length-$min_length)); - - my $char = $self->GenerateRandomNextChar($total_sum, $start_freq); - my @word = ($char+$a); - for (2..$length) { - $char = $self->_GenerateRandomNextChar($row_sums->[$char], $frequency->[$char]); - push(@word, $char+$a); - } - - #Return the password - return pack("C*",@word); - -} +=item Lang + +Returns the current value of Lang. +(In the database, Lang is stored as varchar(16).) -#A private helper function for RandomPassword -# Takes a row summary and a frequency chart for the next character to be searched -sub _GenerateRandomNextChar { - my $self = shift; - my($all, $freq) = @_; - my($pos, $i); - - for ($pos = int(rand($all)), $i=0; - $pos >= $freq->[$i]; - $pos -= $freq->[$i], $i++) {}; - - return($i); -} -# }}} -# {{{ sub SetPassword +=item SetLang VALUE -=head2 SetPassword -Takes a string. Checks the string's length and sets this user's password -to that string. +Set Lang to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Lang will be stored as a varchar(16).) + =cut -sub SetPassword { - my $self = shift; - my $password = shift; - - unless ($self->CurrentUserCanModify('Password')) { - return(0, 'Permission Denied'); - } - - if (! $password) { - return(0, "No password set"); - } - elsif (length($password) < $RT::MinimumPasswordLength) { - return(0,"Password too short"); - } - else { - my $salt = join '', ('.','/',0..9,'A'..'Z','a'..'z')[rand 64, rand 64]; - return ( $self->SUPER::SetPassword(crypt($password, $salt)) ); - } - -} -# }}} +=item EmailEncoding + +Returns the current value of EmailEncoding. +(In the database, EmailEncoding is stored as varchar(16).) -# {{{ sub IsPassword -=head2 IsPassword -Returns true if the passed in value is this user's password. -Returns undef otherwise. +=item SetEmailEncoding VALUE + + +Set EmailEncoding to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, EmailEncoding will be stored as a varchar(16).) + =cut -sub IsPassword { - my $self = shift; - my $value = shift; - - #TODO there isn't any apparent way to legitimately ACL this - - # RT does not allow null passwords - if ((!defined ($value)) or ($value eq '')) { - return(undef); - } - if ($self->Disabled) { - $RT::Logger->info("Disabled user ".$self->Name." tried to log in"); - return(undef); - } - - if ( ($self->__Value('Password') eq '') || - ($self->__Value('Password') eq undef) ) { - return(undef); - } - if ($self->__Value('Password') eq crypt($value, $self->__Value('Password'))) { - return (1); - } - else { - return (undef); - } -} -# }}} +=item WebEncoding + +Returns the current value of WebEncoding. +(In the database, WebEncoding is stored as varchar(16).) -# {{{ sub SetDisabled -=head2 Sub SetDisabled -Toggles the user's disabled flag. -If this flag is -set, all password checks for this user will fail. All ACL checks for this -user will fail. The user will appear in no user listings. +=item SetWebEncoding VALUE -=cut -# }}} +Set WebEncoding to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, WebEncoding will be stored as a varchar(16).) -# {{{ ACL Related routines -# {{{ GrantQueueRight +=cut + -=head2 GrantQueueRight +=item ExternalContactInfoId + +Returns the current value of ExternalContactInfoId. +(In the database, ExternalContactInfoId is stored as varchar(100).) + + + +=item SetExternalContactInfoId VALUE + + +Set ExternalContactInfoId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ExternalContactInfoId will be stored as a varchar(100).) -Grant a queue right to this user. Takes a paramhash of which the elements -RightAppliesTo and RightName are important. =cut -sub GrantQueueRight { - - my $self = shift; - my %args = ( RightScope => 'Queue', - RightName => undef, - RightAppliesTo => undef, - PrincipalType => 'User', - PrincipalId => $self->Id, - @_); - - #ACL check handled in ACE.pm - - require RT::ACE; - -# $RT::Logger->debug("$self ->GrantQueueRight right:". $args{'RightName'} . -# " applies to queue ".$args{'RightAppliesTo'}."\n"); - - my $ace = new RT::ACE($self->CurrentUser); - - return ($ace->Create(%args)); -} -# }}} +=item ContactInfoSystem + +Returns the current value of ContactInfoSystem. +(In the database, ContactInfoSystem is stored as varchar(30).) + + -# {{{ GrantSystemRight +=item SetContactInfoSystem VALUE -=head2 GrantSystemRight -Grant a system right to this user. -The only element that's important to set is RightName. +Set ContactInfoSystem to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ContactInfoSystem will be stored as a varchar(30).) + =cut -sub GrantSystemRight { - - my $self = shift; - my %args = ( RightScope => 'System', - RightName => undef, - RightAppliesTo => 0, - PrincipalType => 'User', - PrincipalId => $self->Id, - @_); - - - #ACL check handled in ACE.pm - - require RT::ACE; - my $ace = new RT::ACE($self->CurrentUser); - - return ($ace->Create(%args)); -} -# }}} +=item ExternalAuthId + +Returns the current value of ExternalAuthId. +(In the database, ExternalAuthId is stored as varchar(100).) -# {{{ sub HasQueueRight -=head2 HasQueueRight -Takes a paramhash which can contain -these items: - TicketObj => RT::Ticket or QueueObj => RT::Queue or Queue => integer - IsRequestor => undef, (for bootstrapping create) - Right => 'Right' +=item SetExternalAuthId VALUE -Returns 1 if this user has the right specified in the paramhash. for the queue -passed in. +Set ExternalAuthId to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ExternalAuthId will be stored as a varchar(100).) -Returns undef if they don't =cut -sub HasQueueRight { - my $self = shift; - my %args = ( TicketObj => undef, - QueueObj => undef, - Queue => undef, - IsRequestor => undef, - Right => undef, - @_); - - my ($IsRequestor, $IsCc, $IsAdminCc, $IsOwner); - - if (defined $args{'Queue'}) { - $args{'QueueObj'} = new RT::Queue($self->CurrentUser); - $args{'QueueObj'}->Load($args{'Queue'}); - } - - if (defined $args{'TicketObj'}) { - $args{'QueueObj'} = $args{'TicketObj'}->QueueObj(); - } - - # {{{ Validate and load up the QueueId - unless ((defined $args{'QueueObj'}) and ($args{'QueueObj'}->Id)) { - require Carp; - $RT::Logger->debug(Carp::cluck ("$self->HasQueueRight Couldn't find a queue id")); - return undef; - } - - # }}} - - - # Figure out whether a user has the right we're asking about. - # first see if they have the right personally for the queue in question. - my $retval = $self->_HasRight(Scope => 'Queue', - AppliesTo => $args{'QueueObj'}->Id, - Right => $args{'Right'}, - IsOwner => $IsOwner); - - return ($retval) if (defined $retval); - - # then we see whether they have the right personally globally. - $retval = $self->HasSystemRight( $args{'Right'}); - - return ($retval) if (defined $retval); - - # now that we know they don't have the right personally, - - # {{{ Find out about whether the current user is a Requestor, Cc, AdminCc or Owner - - if (defined $args{'TicketObj'}) { - if ($args{'TicketObj'}->IsRequestor($self)) {#user is requestor - $IsRequestor = 1; - } - - if ($args{'TicketObj'}->IsCc($self)) { #If user is a cc - $IsCc = 1; - } - - if ($args{'TicketObj'}->IsAdminCc($self)) { #If user is an admin cc - $IsAdminCc = 1; - } - - if ($args{'TicketObj'}->IsOwner($self)) { #If user is an owner - $IsOwner = 1; - } - } - - if (defined $args{'QueueObj'}) { - if ($args{'QueueObj'}->IsCc($self)) { #If user is a cc - $IsCc = 1; - } - if ($args{'QueueObj'}->IsAdminCc($self)) { #If user is an admin cc - $IsAdminCc = 1; - } - - } - # }}} - - # then see whether they have the right for the queue as a member of a metagroup - - $retval = $self->_HasRight(Scope => 'Queue', - AppliesTo => $args{'QueueObj'}->Id, - Right => $args{'Right'}, - IsOwner => $IsOwner, - IsCc => $IsCc, - IsAdminCc => $IsAdminCc, - IsRequestor => $IsRequestor - ); - - return ($retval) if (defined $retval); - - # then we see whether they have the right globally as a member of a metagroup - $retval = $self->HasSystemRight( $args{'Right'}, - (IsOwner => $IsOwner, - IsCc => $IsCc, - IsAdminCc => $IsAdminCc, - IsRequestor => $IsRequestor - ) ); - - #If they haven't gotten it by now, they just lose. - return ($retval); - -} -# }}} - -# {{{ sub HasSystemRight +=item AuthSystem + +Returns the current value of AuthSystem. +(In the database, AuthSystem is stored as varchar(30).) + -=head2 HasSystemRight -takes an array of a single value and a paramhash. -The single argument is the right being passed in. -the param hash is some additional data. (IsCc, IsOwner, IsAdminCc and IsRequestor) +=item SetAuthSystem VALUE + + +Set AuthSystem to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, AuthSystem will be stored as a varchar(30).) -Returns 1 if this user has the listed 'right'. Returns undef if this user doesn't. =cut -sub HasSystemRight { - my $self = shift; - my $right = shift; - - my %args = ( IsOwner => undef, - IsCc => undef, - IsAdminCc => undef, - IsRequestor => undef, - @_); - - unless (defined $right) { - - $RT::Logger->debug("$self RT::User::HasSystemRight was passed in no right."); - return(undef); - } - return ( $self->_HasRight ( Scope => 'System', - AppliesTo => '0', - Right => $right, - IsOwner => $args{'IsOwner'}, - IsCc => $args{'IsCc'}, - IsAdminCc => $args{'IsAdminCc'}, - IsRequestor => $args{'IsRequestor'}, - - ) - ); - -} -# }}} +=item Gecos + +Returns the current value of Gecos. +(In the database, Gecos is stored as varchar(16).) + + -# {{{ sub _HasRight +=item SetGecos VALUE -=head2 sub _HasRight (Right => 'right', Scope => 'scope', AppliesTo => int, ExtendedPrincipals => SQL) -_HasRight is a private helper method for checking a user's rights. It takes -several options: +Set Gecos to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Gecos will be stored as a varchar(16).) + + +=cut + -=item Right is a textual right name +=item HomePhone -=item Scope is a textual scope name. (As of July these were Queue, Ticket and System +Returns the current value of HomePhone. +(In the database, HomePhone is stored as varchar(30).) -=item AppliesTo is the numerical Id of the object identified in the scope. For tickets, this is the queue #. for queues, this is the queue # -=item ExtendedPrincipals is an SQL select clause which assumes that the only -table in play is ACL. It's used by HasQueueRight to pass in which -metaprincipals apply. Actually, it's probably obsolete. TODO: remove it. -Returns 1 if a matching ACE was found. +=item SetHomePhone VALUE + + +Set HomePhone to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, HomePhone will be stored as a varchar(30).) -Returns undef if no ACE was found. =cut -sub _HasRight { - - my $self = shift; - my %args = ( Right => undef, - Scope => undef, - AppliesTo => undef, - IsRequestor => undef, - IsCc => undef, - IsAdminCc => undef, - IsOwner => undef, - ExtendedPrincipals => undef, - @_); - - if ($self->Disabled) { - $RT::Logger->debug ("Disabled User: ".$self->Name. - " failed access check for ".$args{'Right'}. - " to object ".$args{'Scope'}."/". - $args{'AppliesTo'}."\n"); - return (undef); - } - - if (!defined $args{'Right'}) { - $RT::Logger->debug("_HasRight called without a right\n"); - return(undef); - } - elsif (!defined $args{'Scope'}) { - $RT::Logger->debug("_HasRight called without a scope\n"); - return(undef); - } - elsif (!defined $args{'AppliesTo'}) { - $RT::Logger->debug("_HasRight called without an AppliesTo object\n"); - return(undef); - } - - #If we've cached a win or loss for this lookup say so - - #TODO Security +++ check to make sure this is complete and right - - #Construct a hashkey to cache decisions in - my ($hashkey); - { #it's ugly, but we need to turn off warning, cuz we're joining nulls. - local $^W=0; - $hashkey =$self->Id .":". join(':',%args); - } - - # $RT::Logger->debug($hashkey."\n"); - - #Anything older than 10 seconds needs to be rechecked - my $cache_timeout = (time - 10); - - - if ((defined $self->{'rights'}{"$hashkey"}) && - ($self->{'rights'}{"$hashkey"} == 1 ) && - (defined $self->{'rights'}{"$hashkey"}{'set'} ) && - ($self->{'rights'}{"$hashkey"}{'set'} > $cache_timeout)) { -# $RT::Logger->debug("Cached ACL win for ". -# $args{'Right'}.$args{'Scope'}. -# $args{'AppliesTo'}."\n"); - return ($self->{'rights'}{"$hashkey"}); - } - elsif ((defined $self->{'rights'}{"$hashkey"}) && - ($self->{'rights'}{"$hashkey"} == -1) && - (defined $self->{'rights'}{"$hashkey"}{'set'}) && - ($self->{'rights'}{"$hashkey"}{'set'} > $cache_timeout)) { - -# $RT::Logger->debug("Cached ACL loss decision for ". -# $args{'Right'}.$args{'Scope'}. -# $args{'AppliesTo'}."\n"); - - return(undef); - } - - - my $RightClause = "(RightName = '$args{'Right'}')"; - my $ScopeClause = "(RightScope = '$args{'Scope'}')"; - - #If an AppliesTo was passed in, we should pay attention to it. - #otherwise, none is needed - - $ScopeClause = "($ScopeClause AND (RightAppliesTo = $args{'AppliesTo'}))" - if ($args{'AppliesTo'}); - - - # The generic principals clause looks for users with my id - # and Rights that apply to _everyone_ - my $PrincipalsClause = "((PrincipalType = 'User') AND (PrincipalId = ".$self->Id."))"; - - - # If the user is the superuser, grant them the damn right ;) - my $SuperUserClause = - "(RightName = 'SuperUser') AND (RightScope = 'System') AND (RightAppliesTo = 0)"; - - # If we've been passed in an extended principals clause, we should lump it - # on to the existing principals clause. it'll make life easier - if ($args{'ExtendedPrincipals'}) { - $PrincipalsClause = "(($PrincipalsClause) OR ". - "($args{'ExtendedPrincipalsClause'}))"; - } - - my $GroupPrincipalsClause = "((ACL.PrincipalType = 'Group') ". - "AND (ACL.PrincipalId = Groups.Id) AND (GroupMembers.GroupId = Groups.Id) ". - " AND (GroupMembers.UserId = ".$self->Id."))"; - - - - - # {{{ A bunch of magic statements that make the metagroups listed - # work. basically, we if the user falls into the right group, - # we add the type of ACL check needed - my (@MetaPrincipalsSubClauses, $MetaPrincipalsClause); - - #The user is always part of the 'Everyone' Group - push (@MetaPrincipalsSubClauses, "((Groups.Name = 'Everyone') AND - (PrincipalType = 'Group') AND - (Groups.Id = PrincipalId))"); - - if ($args{'IsAdminCc'}) { - push (@MetaPrincipalsSubClauses, "((Groups.Name = 'AdminCc') AND - (PrincipalType = 'Group') AND - (Groups.Id = PrincipalId))"); - } - if ($args{'IsCc'}) { - push (@MetaPrincipalsSubClauses, " ((Groups.Name = 'Cc') AND - (PrincipalType = 'Group') AND - (Groups.Id = PrincipalId))"); - } - if ($args{'IsRequestor'}) { - push (@MetaPrincipalsSubClauses, " ((Groups.Name = 'Requestor') AND - (PrincipalType = 'Group') AND - (Groups.Id = PrincipalId))"); - } - if ($args{'IsOwner'}) { - - push (@MetaPrincipalsSubClauses, " ((Groups.Name = 'Owner') AND - (PrincipalType = 'Group') AND - (Groups.Id = PrincipalId))"); - } - - # }}} - - my ($GroupRightsQuery, $MetaGroupRightsQuery, $IndividualRightsQuery, $hitcount); - - # {{{ If there are any metaprincipals to be checked - if (@MetaPrincipalsSubClauses) { - #chop off the leading or - #TODO redo this with an array and a join - $MetaPrincipalsClause = join (" OR ", @MetaPrincipalsSubClauses); - - $MetaGroupRightsQuery = "SELECT COUNT(ACL.id) FROM ACL, Groups". - " WHERE " . - " ($ScopeClause) AND ($RightClause) AND ($MetaPrincipalsClause)"; - - # {{{ deal with checking if the user has a right as a member of a metagroup - -# $RT::Logger->debug("Now Trying $MetaGroupRightsQuery\n"); - $hitcount = $self->_Handle->FetchResult($MetaGroupRightsQuery); - - #if there's a match, the right is granted - if ($hitcount) { - $self->{'rights'}{"$hashkey"}{'set'} = time; - $self->{'rights'}{"$hashkey"} = 1; - return (1); - } - -# $RT::Logger->debug("No ACL matched MetaGroups query: $MetaGroupRightsQuery\n"); - - # }}} - - } - # }}} - - # {{{ deal with checking if the user has a right as a member of a group - # This query checks to se whether the user has the right as a member of a - # group - $GroupRightsQuery = "SELECT COUNT(ACL.id) FROM ACL, GroupMembers, Groups". - " WHERE " . - " (((($ScopeClause) AND ($RightClause)) OR ($SuperUserClause)) ". - " AND ($GroupPrincipalsClause))"; - - # $RT::Logger->debug("Now Trying $GroupRightsQuery\n"); - $hitcount = $self->_Handle->FetchResult($GroupRightsQuery); - - #if there's a match, the right is granted - if ($hitcount) { - $self->{'rights'}{"$hashkey"}{'set'} = time; - $self->{'rights'}{"$hashkey"} = 1; - return (1); - } - -# $RT::Logger->debug("No ACL matched $GroupRightsQuery\n"); - - # }}} - - # {{{ Check to see whether the user has a right as an individual - - # This query checks to see whether the current user has the right directly - $IndividualRightsQuery = "SELECT COUNT(ACL.id) FROM ACL WHERE ". - " ((($ScopeClause) AND ($RightClause)) OR ($SuperUserClause)) " . - " AND ($PrincipalsClause)"; - - - $hitcount = $self->_Handle->FetchResult($IndividualRightsQuery); - - if ($hitcount) { - $self->{'rights'}{"$hashkey"}{'set'} = time; - $self->{'rights'}{"$hashkey"} = 1; - return (1); - } - # }}} - - else { #If the user just doesn't have the right - -# $RT::Logger->debug("No ACL matched $IndividualRightsQuery\n"); - - #If nothing matched, return 0. - $self->{'rights'}{"$hashkey"}{'set'} = time; - $self->{'rights'}{"$hashkey"} = -1; - - - return (undef); - } -} +=item WorkPhone + +Returns the current value of WorkPhone. +(In the database, WorkPhone is stored as varchar(30).) + + -# }}} +=item SetWorkPhone VALUE -# {{{ sub CurrentUserCanModify -=head2 CurrentUserCanModify RIGHT +Set WorkPhone to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, WorkPhone will be stored as a varchar(30).) -If the user has rights for this object, either because -he has 'AdminUsers' or (if he\'s trying to edit himself and the right isn\'t an -admin right) 'ModifySelf', return 1. otherwise, return undef. =cut -sub CurrentUserCanModify { - my $self = shift; - my $right = shift; - - if ($self->CurrentUserHasRight('AdminUsers')) { - return (1); - } - #If the field is marked as an "administrators only" field, - # don\'t let the user touch it. - elsif ($self->_Accessible($right, 'admin')) { - return(undef); - } - - #If the current user is trying to modify themselves - elsif ( ($self->id == $self->CurrentUser->id) and - ($self->CurrentUserHasRight('ModifySelf'))) { - return(1); - } - - #If we don\'t have a good reason to grant them rights to modify - # by now, they lose - else { - return(undef); - } - -} -# }}} +=item MobilePhone + +Returns the current value of MobilePhone. +(In the database, MobilePhone is stored as varchar(30).) + -# {{{ sub CurrentUserHasRight -=head2 CurrentUserHasRight - - Takes a single argument. returns 1 if $Self->CurrentUser - has the requested right. returns undef otherwise +=item SetMobilePhone VALUE + + +Set MobilePhone to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, MobilePhone will be stored as a varchar(30).) + =cut -sub CurrentUserHasRight { - my $self = shift; - my $right = shift; - - return ($self->CurrentUser->HasSystemRight($right)); -} -# }}} +=item PagerPhone +Returns the current value of PagerPhone. +(In the database, PagerPhone is stored as varchar(30).) -# {{{ sub _Set -sub _Set { - my $self = shift; - - my %args = (Field => undef, - Value => undef, - @_ - ); - # Nobody is allowed to futz with RT_System or Nobody unless they - # want to change an email address. For 2.2, neither should have an email address +=item SetPagerPhone VALUE - if ($self->Privileged == 2) { - return (0, "Can not modify system users"); - } - unless ($self->CurrentUserCanModify($args{'Field'})) { - return (0, "Permission Denied"); - } +Set PagerPhone to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, PagerPhone will be stored as a varchar(30).) + + +=cut + + +=item Address1 + +Returns the current value of Address1. +(In the database, Address1 is stored as varchar(200).) - - #Set the new value - my ($ret, $msg)=$self->SUPER::_Set(Field => $args{'Field'}, - Value=> $args{'Value'}); - - return ($ret, $msg); -} -# }}} -# {{{ sub _Value +=item SetAddress1 VALUE -=head2 _Value -Takes the name of a table column. -Returns its value as a string, if the user passes an ACL check +Set Address1 to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Address1 will be stored as a varchar(200).) + =cut -sub _Value { - - my $self = shift; - my $field = shift; - - #If the current user doesn't have ACLs, don't let em at it. - - my @PublicFields = qw( Name EmailAddress Organization Disabled - RealName NickName Gecos ExternalAuthId - AuthSystem ExternalContactInfoId - ContactInfoSystem ); - - #if the field is public, return it. - if ($self->_Accessible($field, 'public')) { - return($self->SUPER::_Value($field)); - - } - #If the user wants to see their own values, let them - elsif ($self->CurrentUser->Id == $self->Id) { - return($self->SUPER::_Value($field)); - } - #If the user has the admin users right, return the field - elsif ($self->CurrentUserHasRight('AdminUsers')) { - return($self->SUPER::_Value($field)); - } - else { - return(undef); - } - -} +=item Address2 + +Returns the current value of Address2. +(In the database, Address2 is stored as varchar(200).) + + + +=item SetAddress2 VALUE + + +Set Address2 to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Address2 will be stored as a varchar(200).) + + +=cut + + +=item City + +Returns the current value of City. +(In the database, City is stored as varchar(100).) + + + +=item SetCity VALUE + + +Set City to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, City will be stored as a varchar(100).) + + +=cut + + +=item State + +Returns the current value of State. +(In the database, State is stored as varchar(100).) + + + +=item SetState VALUE + + +Set State to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, State will be stored as a varchar(100).) + + +=cut + + +=item Zip + +Returns the current value of Zip. +(In the database, Zip is stored as varchar(16).) + + + +=item SetZip VALUE + + +Set Zip to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Zip will be stored as a varchar(16).) + + +=cut + + +=item Country + +Returns the current value of Country. +(In the database, Country is stored as varchar(50).) + + + +=item SetCountry VALUE + + +Set Country to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Country will be stored as a varchar(50).) + + +=cut + + +=item Timezone + +Returns the current value of Timezone. +(In the database, Timezone is stored as varchar(50).) + + + +=item SetTimezone VALUE + + +Set Timezone to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Timezone will be stored as a varchar(50).) + + +=cut + + +=item PGPKey + +Returns the current value of PGPKey. +(In the database, PGPKey is stored as text.) + + + +=item SetPGPKey VALUE + + +Set PGPKey to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, PGPKey will be stored as a text.) + + +=cut + + +=item Creator + +Returns the current value of Creator. +(In the database, Creator is stored as int(11).) + + +=cut + + +=item Created + +Returns the current value of Created. +(In the database, Created is stored as datetime.) + + +=cut + + +=item LastUpdatedBy + +Returns the current value of LastUpdatedBy. +(In the database, LastUpdatedBy is stored as int(11).) + + +=cut + + +=item LastUpdated + +Returns the current value of LastUpdated. +(In the database, LastUpdated is stored as datetime.) + + +=cut + + + +sub _ClassAccessible { + { + + id => + {read => 1, type => 'int(11)', default => ''}, + Name => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Password => + {read => 1, write => 1, type => 'varchar(40)', default => ''}, + Comments => + {read => 1, write => 1, type => 'blob', default => ''}, + Signature => + {read => 1, write => 1, type => 'blob', default => ''}, + EmailAddress => + {read => 1, write => 1, type => 'varchar(120)', default => ''}, + FreeformContactInfo => + {read => 1, write => 1, type => 'blob', default => ''}, + Organization => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + RealName => + {read => 1, write => 1, type => 'varchar(120)', default => ''}, + NickName => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + Lang => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + EmailEncoding => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + WebEncoding => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + ExternalContactInfoId => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + ContactInfoSystem => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + ExternalAuthId => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + AuthSystem => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + Gecos => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + HomePhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + WorkPhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + MobilePhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + PagerPhone => + {read => 1, write => 1, type => 'varchar(30)', default => ''}, + Address1 => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + Address2 => + {read => 1, write => 1, type => 'varchar(200)', default => ''}, + City => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + State => + {read => 1, write => 1, type => 'varchar(100)', default => ''}, + Zip => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + Country => + {read => 1, write => 1, type => 'varchar(50)', default => ''}, + Timezone => + {read => 1, write => 1, type => 'varchar(50)', default => ''}, + PGPKey => + {read => 1, write => 1, type => 'text', 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::User_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/User_Overlay.pm}) { + die $@; + }; + + eval "require RT::User_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/User_Vendor.pm}) { + die $@; + }; + + eval "require RT::User_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/User_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::User_Overlay, RT::User_Vendor, RT::User_Local + +=cut -# }}} -# }}} 1; - diff --git a/rt/lib/RT/Users.pm b/rt/lib/RT/Users.pm index f4a97268c..d58f69653 100755 --- a/rt/lib/RT/Users.pm +++ b/rt/lib/RT/Users.pm @@ -1,281 +1,115 @@ +# 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. +# +# 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. +# +# !! DO NOT EDIT THIS FILE !! +# + +use strict; -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Users.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-1999 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL =head1 NAME - RT::Users - Collection of RT::User objects - + RT::Users -- Class Description + =head1 SYNOPSIS - use RT::Users; - + use RT::Users =head1 DESCRIPTION =head1 METHODS -=begin testing - -ok(require RT::TestHarness); -ok(require RT::Users); - -=end testing - =cut package RT::Users; -use RT::EasySearch; -@ISA = qw(RT::EasySearch); - -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "Users"; - $self->{'primary_key'} = "id"; - - # By default, order by name - $self->OrderBy( ALIAS => 'main', - FIELD => 'Name', - ORDER => 'ASC'); - - return ($self->SUPER::_Init(@_)); - -} -# }}} - -# {{{ sub _DoSearch - -=head2 _DoSearch - - A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless -we're explicitly trying to see them. - -=cut - -sub _DoSearch { - my $self = shift; - - #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. - unless($self->{'find_disabled_rows'}) { - $self->LimitToEnabled(); - } - - return($self->SUPER::_DoSearch(@_)); - -} - -# }}} - -# {{{ sub NewItem - -sub NewItem { - my $self = shift; - use RT::User; - my $item = new RT::User($self->CurrentUser); - return($item); -} -# }}} - -# {{{ LimitToEmail -=head2 LimitToEmail +use RT::SearchBuilder; +use RT::User; -Takes one argument. an email address. limits the returned set to -that email address +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); -=cut -sub LimitToEmail { +sub _Init { my $self = shift; - my $addr = shift; - $self->Limit(FIELD => 'EmailAddress', VALUE => "$addr"); -} - -# }}} - -# {{{ MemberOfGroup - -=head2 MemberOfGroup - -takes one argument, a group id number. Limits the returned set -to members of a given group - -=cut - -sub MemberOfGroup { - my $self = shift; - my $group = shift; - - return ("No group specified") if (!defined $group); - - my $groupalias = $self->NewAlias('GroupMembers'); - - $self->Join( ALIAS1 => 'main', FIELD1 => 'id', - ALIAS2 => "$groupalias", FIELD2 => 'Name'); - - $self->Limit (ALIAS => "$groupalias", - FIELD => 'GroupId', - VALUE => "$group", - OPERATOR => "=" - ); -} - -# }}} - -# {{{ LimitToPrivileged - -=head2 LimitToPrivileged - -Limits to users who can be made members of ACLs and groups + $self->{'table'} = 'Users'; + $self->{'primary_key'} = 'id'; -=cut -sub LimitToPrivileged { - my $self = shift; - $self->Limit( FIELD => 'Privileged', - OPERATOR => '=', - VALUE => '1'); + return ( $self->SUPER::_Init(@_) ); } -# }}} - - - -# {{{ LimitToSystem -=head2 LimitToSystem +=item NewItem -Limits to users who can be granted rights, but who should -never have their rights modified by a user or be made members of groups. +Returns an empty new RT::User item =cut -sub LimitToSystem { +sub NewItem { my $self = shift; - $self->Limit( FIELD => 'Privileged', - OPERATOR => '=', - VALUE => '2'); + return(RT::User->new($self->CurrentUser)); } -# }}} - -# {{{ HasQueueRight - -=head2 HasQueueRight - -Takes a queue id as its first argument. Queue Id "0" is treated by RT as "applies to all queues" -Takes a specific right as an optional second argument - -Limits the returned set to users who have rights in the queue specified, personally. If the optional second argument is supplied, limits to users who have been explicitly granted that right. - - - -This should not be used as an ACL check, but only for obtaining lists of -users with explicit rights in a given queue. - -=cut - -sub HasQueueRight { - my $self = shift; - my $queue = shift; - my $right; - - $right = shift if (@_); - + eval "require RT::Users_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Users_Overlay.pm}) { + die $@; + }; - my $acl_alias = $self->NewAlias('ACL'); - $self->Join( ALIAS1 => 'main', FIELD1 => 'id', - ALIAS2 => $acl_alias, FIELD2 => 'PrincipalId'); - $self->Limit (ALIAS => $acl_alias, - FIELD => 'PrincipalType', - OPERATOR => '=', - VALUE => 'User'); + eval "require RT::Users_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Users_Vendor.pm}) { + die $@; + }; + eval "require RT::Users_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Users_Local.pm}) { + die $@; + }; - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightAppliesTo', - OPERATOR => '=', - VALUE => "$queue"); - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightScope', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - VALUE => 'Queue'); +=head1 SEE ALSO - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightScope', - OPERATOR => '=', - ENTRYAGGREGATOR => 'OR', - VALUE => 'Ticket'); +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. - #TODO: is this being initialized properly if the right isn't there? - if (defined ($right)) { - - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightName', - OPERATOR => '=', - VALUE => "$right"); - - - }; +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); -} - - - -# }}} - -# {{{ HasSystemRight +so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. -=head2 HasSystemRight - -Takes one optional argument: - The name of a System level right. - -Limits the returned set to users who have been granted system rights, personally. If the optional argument is passed in, limits to users who have been granted the explicit right listed. Please see the note attached to LimitToQueueRights +RT::Users_Overlay, RT::Users_Vendor, RT::Users_Local =cut -sub HasSystemRight { - my $self = shift; - my $right = shift if (@_); - my $acl_alias = $self->NewAlias('ACL'); - - - $self->Join( ALIAS1 => 'main', FIELD1 => 'id', - ALIAS2 => $acl_alias, FIELD2 => 'PrincipalId'); - $self->Limit (ALIAS => $acl_alias, - FIELD => 'PrincipalType', - OPERATOR => '=', - VALUE => 'User'); - - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightScope', - OPERATOR => '=', - VALUE => 'System'); - - - #TODO: is this being initialized properly if the right isn't there? - if (defined ($right)) { - $self->Limit(ALIAS => $acl_alias, - FIELD => 'RightName', - OPERATOR => '=', - VALUE => "$right"); - - } - - -} - -# }}} 1; - diff --git a/rt/lib/RT/Watcher.pm b/rt/lib/RT/Watcher.pm deleted file mode 100755 index c7c6100cf..000000000 --- a/rt/lib/RT/Watcher.pm +++ /dev/null @@ -1,313 +0,0 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Watcher.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2001 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - -=head1 NAME - - RT::Watcher - RT Watcher object - -=head1 SYNOPSIS - - use RT::Watcher; - - -=head1 DESCRIPTION - -This module should never be called directly by client code. it\'s an internal module which -should only be accessed through exported APIs in Ticket, Queue and other similar objects. - -=head1 METHODS - -=begin testing - -ok(require RT::TestHarness); -ok(require RT::Watcher); - -=end testing - -=cut - -package RT::Watcher; -use RT::Record; -@ISA= qw(RT::Record); - - -# {{{ sub _Init - -sub _Init { - my $self = shift; - - $self->{'table'} = "Watchers"; - return ($self->SUPER::_Init(@_)); - -} -# }}} - -# {{{ sub Create - -=head2 Create PARAMHASH - -Create a new watcher object with the following Attributes: - -Scope: Ticket or Queue -Value: Ticket or queue id -Type: Requestor, Cc or AdminCc. Requestor is not supported for a scope of \'Queue\' -Email: The email address of the watcher. If the email address maps to an RT User, this is resolved -to an Owner object instead. -Owner: The RT user id of the \'owner\' of this watcher object. - -=cut - -sub Create { - my $self = shift; - my %args = ( - Owner => undef, - Email => undef, - Value => undef, - Scope => undef, - Type => undef, - Quiet => 0, - @_ # get the real argumentlist - ); - - #Do we have someone this applies to? - unless (($args{'Owner'} =~ /^(\d+)$/) || ($args{'Email'} =~ /\@/)) { - return (0, "No user or email address specified"); - } - - #if we only have an email address, try to resolve it to an owner - if ($args{'Owner'} == 0) { - my $User = new RT::User($RT::SystemUser); - $User->LoadByEmail($args{'Email'}); - if ($User->id) { - $args{'Owner'} = $User->id; - delete $args{'Email'}; - } - } - - - if ($args{'Type'} eq "Requestor" and $args{'Owner'} == 0) { - # Requestors *MUST* have an account - - my $Address = RT::CanonicalizeAddress($args{'Email'}); - - my $NewUser = RT::User->new($RT::SystemUser); - my ($Val, $Message) = - $NewUser->Create(Name => $Address, - EmailAddress => $Address, - RealName => $Address, - Password => undef, - Privileged => 0, - Comments => 'Autocreated on ticket submission' - ); - return (0, "Could not create watcher for requestor") - unless $Val; - if ($NewUser->id) { - $args{'Owner'} = $NewUser->id; - delete $args{'Email'}; - } - } - - - - - #Make sure we\'ve got a valid type - #TODO --- move this to ValidateType - return (0, "Invalid Type") - unless ($args{'Type'} =~ /^(Requestor|Cc|AdminCc)$/i); - - my $id = $self->SUPER::Create(%args); - if ($id) { - return (1,"Interest noted"); - } - else { - return (0, "Error adding watcher"); - } -} -# }}} - -# {{{ sub Load - -=head2 Load ID - - Loads a watcher by the primary key of the watchers table ($Watcher->id) - -=cut - -sub Load { - my $self = shift; - my $identifier = shift; - - if ($identifier !~ /\D/) { - $self->SUPER::LoadById($identifier); - } - else { - return (0, "That's not a numerical id"); - } -} - -# }}} - -# {{{ sub LoadByValue - -=head2 LoadByValue PARAMHASH - -LoadByValue takes a parameter hash with the following attributes: - - Email, Owner, Scope, Type, Value - -The same rules enforced at create are enforced by Load. - -Returns a tuple of (retval, msg). Retval is 1 on success and 0 on failure. -msg describes what happened in a human readable form. - -=cut - -sub LoadByValue { - my $self = shift; - my %args = ( Email => undef, - Owner => undef, - Scope => undef, - Type => undef, - Value => undef, - @_); - - #TODO: all this code is being copied from Create. that\'s silly - - #Do we have someone this applies to? - unless (($args{'Owner'} =~ /^(\d*)$/) || ($args{'Email'} =~ /\@/)) { - return (0, "No user or email address specified"); - } - - #if we only have an email address, try to resolve it to an owner - unless ($args{'Owner'}) { - my $User = new RT::User($RT::SystemUser); - $User->LoadByEmail($args{'Email'}); - if ($User->id > 0) { - $args{'Owner'} = $User->id; - delete $args{'Email'}; - } - } - - if ((defined ($args{'Type'})) and - ($args{'Type'} !~ /^(Requestor|Cc|AdminCc)$/i)) { - return (0, "Invalid Type"); - } - if ($args{'Owner'}) { - $self->LoadByCols( Type => $args{'Type'}, - Value => $args{'Value'}, - Owner => $args{'Owner'}, - Scope => $args{'Scope'}, - ); - } - else { - $self->LoadByCols( Type => $args{'Type'}, - Email => $args{'Email'}, - Value => $args{'Value'}, - Scope => $args{'Scope'}, - ); - } - unless ($self->Id) { - return(0, "Couldn\'t find that watcher"); - } - return (1, "Watcher loaded"); -} - -# }}} - -# {{{ sub OwnerObj - -=head2 OwnerObj - -Return an RT Owner Object for this Watcher, if we have one - -=cut - -sub OwnerObj { - my $self = shift; - if (!defined $self->{'OwnerObj'}) { - require RT::User; - $self->{'OwnerObj'} = RT::User->new($self->CurrentUser); - if ($self->Owner) { - $self->{'OwnerObj'}->Load($self->Owner); - } else { - return $RT::Nobody->UserObj; - } - } - return ($self->{'OwnerObj'}); -} -# }}} - -# {{{ sub Email - -=head2 Email - -This custom data accessor does the right thing and returns -the 'Email' attribute of this Watcher object. If that's undefined, -it returns the 'EmailAddress' attribute of its 'Owner' object, which is -an RT::User object. - -=cut - -sub Email { - my $self = shift; - - # IF Email is defined, return that. Otherwise, return the Owner's email address - if (defined($self->__Value('Email'))) { - return ($self->__Value('Email')); - } - elsif ($self->Owner) { - return ($self->OwnerObj->EmailAddress); - } - else { - return ("Data error"); - } -} -# }}} - -# {{{ sub IsUser - -=head2 IsUser - -Returns true if this watcher object is tied to a user object. (IE it -isn't sending to some other email address). -Otherwise, returns undef - -=cut - -sub IsUser { - my $self = shift; - # if this watcher has an email address glued onto it, - # return undef - - if (defined($self->__Value('Email'))) { - return undef; - } - else { - return 1; - } -} - -# }}} - -# {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - Email => 'read/write', - Scope => 'read/write', - Value => 'read/write', - Type => 'read/write', - Quiet => 'read/write', - Owner => 'read/write', - Creator => 'read/auto', - Created => 'read/auto', - LastUpdatedBy => 'read/auto', - LastUpdated => 'read/auto' - ); - return($self->SUPER::_Accessible(@_, %Cols)); -} -# }}} - -1; - diff --git a/rt/lib/RT/Watchers.pm b/rt/lib/RT/Watchers.pm deleted file mode 100755 index c55adda3f..000000000 --- a/rt/lib/RT/Watchers.pm +++ /dev/null @@ -1,226 +0,0 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Watchers.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - -=head1 NAME - - RT::Watchers - Collection of RT Watcher objects - -=head1 SYNOPSIS - - use RT::Watchers; - my $watchers = new RT::Watchers($CurrentUser); - while (my $watcher = $watchers->Next()) { - print $watcher->Id . "is a watcher"; - } - -=head1 DESCRIPTION - -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in Ticket, Queue and other similar objects. - - -=head1 METHODS - -=begin testing - -ok(require RT::TestHarness); -ok(require RT::Watchers); - -=end testing - -=cut - -package RT::Watchers; - -use strict; -use vars qw( @ISA ); - - -require RT::EasySearch; -require RT::Watcher; -@ISA= qw(RT::EasySearch); - - -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'table'} = "Watchers"; - $self->{'primary_key'} = "id"; - return($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub Limit - -=head2 Limit - - A wrapper around RT::EasySearch::Limit which sets -the default entry aggregator to 'AND' - -=cut - -sub Limit { - my $self = shift; - my %args = ( ENTRYAGGREGATOR => 'AND', - @_); - - $self->SUPER::Limit(%args); -} -# }}} - -# {{{ sub LimitToTicket - -=head2 LimitToTicket - -Takes a single arg which is a ticket id -Limits to watchers of that ticket - -=cut - -sub LimitToTicket { - my $self = shift; - my $ticket = shift; - $self->Limit( ENTRYAGGREGATOR => 'OR', - FIELD => 'Value', - VALUE => $ticket); - $self->Limit (ENTRYAGGREGATOR => 'AND', - FIELD => 'Scope', - VALUE => 'Ticket'); -} -# }}} - -# {{{ sub LimitToQueue - -=head2 LimitToQueue - -Takes a single arg, which is a queue id -Limits to watchers of that queue. - -=cut - -sub LimitToQueue { - my $self = shift; - my $queue = shift; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Value', - VALUE => $queue); - $self->Limit (ENTRYAGGREGATOR => 'AND', - FIELD => 'Scope', - VALUE => 'Queue'); -} -# }}} - -# {{{ sub LimitToType - -=head2 LimitToType - -Takes a single string as its argument. That string is a watcher type -which is one of 'Requestor', 'Cc' or 'AdminCc' -Limits to watchers of that type - -=cut - - -sub LimitToType { - my $self = shift; - my $type = shift; - $self->Limit(FIELD => 'Type', - VALUE => "$type"); -} -# }}} - -# {{{ sub LimitToRequestors - -=head2 LimitToRequestors - -Limits to watchers of type 'Requestor' - -=cut - -sub LimitToRequestors { - my $self = shift; - $self->LimitToType("Requestor"); -} -# }}} - -# {{{ sub LimitToCc - -=head2 LimitToCc - -Limits to watchers of type 'Cc' - -=cut - -sub LimitToCc { - my $self = shift; - $self->LimitToType("Cc"); -} -# }}} - -# {{{ sub LimitToAdminCc - -=head2 LimitToAdminCc - -Limits to watchers of type AdminCc - -=cut - -sub LimitToAdminCc { - my $self = shift; - $self->LimitToType("AdminCc"); -} -# }}} - -# {{{ sub Emails - -=head2 Emails - -# Return a (reference to a) list of emails - -=cut - -sub Emails { - my $self = shift; - my @list; # List is a list of watcher email addresses - - # $watcher is an RT::Watcher object - while (my $watcher=$self->Next()) { - push(@list, $watcher->Email); - } - return \@list; -} -# }}} - -# {{{ sub EmailsAsString - -=head2 EmailsAsString - -# Returns the RT::Watchers->Emails as a comma seperated string - -=cut - -sub EmailsAsString { - my $self = shift; - return(join(", ",@{$self->Emails})); -} -# }}} - -# {{{ sub NewItem - - - -sub NewItem { - my $self = shift; - - use RT::Watcher; - my $item = new RT::Watcher($self->CurrentUser); - return($item); -} -# }}} -1; - - - - diff --git a/rt/lib/test.pl b/rt/lib/test.pl deleted file mode 100644 index f0da5df27..000000000 --- a/rt/lib/test.pl +++ /dev/null @@ -1,52 +0,0 @@ -# Before `make install' is performed this script should be runnable with -# `make test'. After `make install' it should work as `perl test.pl' - -######################### We start with some black magic to print on failure. - -# Change 1..1 below to 1..last_test_to_print . -# (It may become useful if the test is moved to ./t subdirectory.) - -BEGIN { $| = 1; print "1..1\n"; } -END {print "not ok 1\n" unless $loaded;} -use RT; -$loaded = 1; -print "ok 1\n"; - -######################### End of black magic. - -# Insert your test code below (better if it prints "ok 13" -# (correspondingly "not ok 13") depending on the success of chunk 13 -# of the test code): - -use RT::Record; -use RT::EasySearch; -use RT::Handle; -use RT::Ticket; -use RT::Tickets; -use RT::ACE; -use RT::ACL; -use RT::Watcher; -use RT::Watchers; -use RT::Scrip; -use RT::Scrips; -use RT::ScripAction; -use RT::ScripCondition; -use RT::ScripActions; -use RT::ScripConditions; -use RT::Transaction; -use RT::Transactions; -use RT::Group; -use RT::GroupMembers; -use RT::User; -use RT::Users; -use RT::CurrentUser; -use RT::Attachment; -use RT::Attachments; -use RT::Keyword; -use RT::Keywords; -use RT::KeywordSelect; -use RT::KeywordSelects; -use RT::ObjectKeyword; -use RT::ObjectKeywords; -use RT::Date; - -- cgit v1.2.1 From 289340780927b5bac2c7604d7317c3063c6dd8cc Mon Sep 17 00:00:00 2001 From: ivan <ivan> Date: Thu, 11 Mar 2004 02:05:38 +0000 Subject: import of rt 3.0.9 --- rt/lib/RT.pm | 33 +- rt/lib/RT.pm.in | 31 +- rt/lib/RT/Action/AutoOpen.pm | 2 +- rt/lib/RT/Action/Autoreply.pm | 16 +- rt/lib/RT/Action/CreateTickets.pm | 20 +- rt/lib/RT/Action/SendEmail.pm | 4 +- rt/lib/RT/Attachment_Overlay.pm | 39 +- rt/lib/RT/Base.pm | 25 +- rt/lib/RT/CachedGroupMember_Overlay.pm | 4 +- rt/lib/RT/CachedGroupMembers_Overlay.pm | 4 +- rt/lib/RT/CurrentUser.pm | 34 +- rt/lib/RT/CustomField_Overlay.pm | 6 + rt/lib/RT/EmailParser.pm | 84 +- rt/lib/RT/GroupMember_Overlay.pm | 2 +- rt/lib/RT/Group_Overlay.pm | 23 +- rt/lib/RT/Groups_Overlay.pm | 82 +- rt/lib/RT/Handle.pm | 9 +- rt/lib/RT/I18N.pm | 22 +- rt/lib/RT/I18N/cs.pm | 23 + rt/lib/RT/I18N/de.po | 356 +- rt/lib/RT/I18N/it.po | 6175 +++++++++++++++++++++++++++++++ rt/lib/RT/I18N/ru.po | 520 +-- rt/lib/RT/I18N/zh_cn.po | 1401 ++++--- rt/lib/RT/I18N/zh_tw.po | 1315 ++++--- rt/lib/RT/Interface/Email.pm | 294 +- rt/lib/RT/Interface/REST.pm | 252 ++ rt/lib/RT/Interface/Web.pm | 150 +- rt/lib/RT/Principal_Overlay.pm | 25 +- rt/lib/RT/Queue_Overlay.pm | 7 +- rt/lib/RT/Record.pm | 5 +- rt/lib/RT/ScripAction_Overlay.pm | 30 +- rt/lib/RT/Scrip_Overlay.pm | 28 +- rt/lib/RT/Scrips_Overlay.pm | 75 + rt/lib/RT/StyleGuide.pod | 891 +++++ rt/lib/RT/Template_Overlay.pm | 29 +- rt/lib/RT/Ticket_Overlay.pm | 89 +- rt/lib/RT/Tickets_Overlay.pm | 185 +- rt/lib/RT/Tickets_Overlay_SQL.pm | 95 +- rt/lib/RT/Transaction_Overlay.pm | 303 +- rt/lib/RT/URI.pm | 9 +- rt/lib/RT/URI/fsck_com_rt.pm | 13 +- rt/lib/RT/User_Overlay.pm | 17 +- rt/lib/RT/Users_Overlay.pm | 26 +- rt/lib/t/02regression.t | 4 +- rt/lib/t/02regression.t.in | 4 +- rt/lib/t/03web.pl | 34 +- rt/lib/t/03web.pl.in | 34 +- rt/lib/t/04_send_email.pl | 122 +- rt/lib/t/04_send_email.pl.in | 122 +- rt/lib/t/data/crashes-file-based-parser | 193 + rt/lib/t/data/multipart-report | 66 + rt/lib/t/data/notes-uuencoded | 2368 ++++++++++++ 52 files changed, 13612 insertions(+), 2088 deletions(-) create mode 100644 rt/lib/RT/I18N/it.po create mode 100644 rt/lib/RT/Interface/REST.pm create mode 100644 rt/lib/RT/StyleGuide.pod create mode 100644 rt/lib/t/data/crashes-file-based-parser create mode 100644 rt/lib/t/data/multipart-report create mode 100644 rt/lib/t/data/notes-uuencoded (limited to 'rt/lib') diff --git a/rt/lib/RT.pm b/rt/lib/RT.pm index 90c332bc0..7e941a2b2 100644 --- a/rt/lib/RT.pm +++ b/rt/lib/RT.pm @@ -47,7 +47,7 @@ use vars qw($VERSION $System $SystemUser $Nobody $Handle $Logger $MasonSessionDir ); -$VERSION = '3.0.4'; +$VERSION = '3.0.9'; $CORE_CONFIG_FILE = "/opt/rt3/etc/RT_Config.pm"; $SITE_CONFIG_FILE = "/opt/rt3/etc/RT_SiteConfig.pm"; @@ -117,13 +117,10 @@ sub LoadConfig { =cut sub Init { - require RT::Handle; + #Get a database connection - unless ($Handle && $Handle->dbh->ping) { - $Handle = RT::Handle->new(); - } - $Handle->Connect(); - + ConnectToDatabase(); + #RT's system user is a genuine database user. its id lives here $SystemUser = new RT::CurrentUser(); $SystemUser->LoadByName('RT_System'); @@ -137,6 +134,21 @@ sub Init { InitLogging(); } + +=head2 ConnectToDatabase + +Get a database connection + +=cut + +sub ConnectToDatabase { + require RT::Handle; + unless ($Handle && $Handle->dbh && $Handle->dbh->ping) { + $Handle = RT::Handle->new(); + } + $Handle->Connect(); +} + =head2 InitLogging Create the RT::Logger object. @@ -282,8 +294,15 @@ sub DropSetGIDPermissions { =head1 BUGS +Please report them to rt-3.0-bugs@fsck.com, if you know what's broken and have at least some idea of what needs to be fixed. +If you're not sure what's going on, report them rt-devel@lists.fsck.com. + =head1 SEE ALSO +L<RT::StyleGuide> +L<DBIx::SearchBuilder> + + =begin testing diff --git a/rt/lib/RT.pm.in b/rt/lib/RT.pm.in index 065734e2f..14c0d47ca 100644 --- a/rt/lib/RT.pm.in +++ b/rt/lib/RT.pm.in @@ -117,13 +117,10 @@ sub LoadConfig { =cut sub Init { - require RT::Handle; + #Get a database connection - unless ($Handle && $Handle->dbh->ping) { - $Handle = RT::Handle->new(); - } - $Handle->Connect(); - + ConnectToDatabase(); + #RT's system user is a genuine database user. its id lives here $SystemUser = new RT::CurrentUser(); $SystemUser->LoadByName('RT_System'); @@ -137,6 +134,21 @@ sub Init { InitLogging(); } + +=head2 ConnectToDatabase + +Get a database connection + +=cut + +sub ConnectToDatabase { + require RT::Handle; + unless ($Handle && $Handle->dbh && $Handle->dbh->ping) { + $Handle = RT::Handle->new(); + } + $Handle->Connect(); +} + =head2 InitLogging Create the RT::Logger object. @@ -282,8 +294,15 @@ sub DropSetGIDPermissions { =head1 BUGS +Please report them to rt-3.0-bugs@fsck.com, if you know what's broken and have at least some idea of what needs to be fixed. +If you're not sure what's going on, report them rt-devel@lists.fsck.com. + =head1 SEE ALSO +L<RT::StyleGuide> +L<DBIx::SearchBuilder> + + =begin testing diff --git a/rt/lib/RT/Action/AutoOpen.pm b/rt/lib/RT/Action/AutoOpen.pm index ea6da1952..7c8c2b89d 100644 --- a/rt/lib/RT/Action/AutoOpen.pm +++ b/rt/lib/RT/Action/AutoOpen.pm @@ -67,7 +67,7 @@ sub Commit { my $oldstatus = $self->TicketObj->Status(); $self->TicketObj->__Set( Field => 'Status', Value => 'open' ); $self->TicketObj->_NewTransaction( - Type => 'Set', + Type => 'Status', Field => 'Status', OldValue => $oldstatus, NewValue => 'open', diff --git a/rt/lib/RT/Action/Autoreply.pm b/rt/lib/RT/Action/Autoreply.pm index 81f7bddfa..f58b8f284 100755 --- a/rt/lib/RT/Action/Autoreply.pm +++ b/rt/lib/RT/Action/Autoreply.pm @@ -74,10 +74,18 @@ sub SetReturnAddress { } 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>"); + if ($RT::UseFriendlyFromLine) { + my $friendly_name = $self->TicketObj->QueueObj->Description || + $self->TicketObj->QueueObj->Name; + $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')) { diff --git a/rt/lib/RT/Action/CreateTickets.pm b/rt/lib/RT/Action/CreateTickets.pm index 0ab206771..e1c6f4a9b 100644 --- a/rt/lib/RT/Action/CreateTickets.pm +++ b/rt/lib/RT/Action/CreateTickets.pm @@ -41,7 +41,7 @@ Create one or more tickets according to an externally supplied template. ===Create-Ticket: codereview Subject: Code review for {$Tickets{'TOP'}->Subject} - Depended-On-By: {$Tickets{'TOP'}->Id} + Depended-On-By: TOP Content: Someone has created a ticket. you should review and approve it, so they can finish their work ENDOFCONTENT @@ -84,13 +84,13 @@ After each ticket is created, it's stuffed into a hash called %Tickets so as to be available during the creation of other tickets during the same ScripAction. The hash is prepopulated with the ticket which triggered the ScripAction as $Tickets{'TOP'}; you can also access that ticket using the -shorthand $TOP. +shorthand TOP. A simple example: ===Create-Ticket: codereview Subject: Code review for {$Tickets{'TOP'}->Subject} - Depended-On-By: {$Tickets{'TOP'}->Id} + Depended-On-By: TOP Content: Someone has created a ticket. you should review and approve it, so they can finish their work ENDOFCONTENT @@ -128,8 +128,8 @@ A convoluted example Queue: Approvals Type: Approval AdminCc: {join ("\nAdminCc: ",@admins) } - Depended-On-By: {$Tickets{"TOP"}->Id} - Refers-To: {$Tickets{"TOP"}->Id} + Depended-On-By: TOP + Refers-To: TOP Subject: Approval for ticket: {$Tickets{"TOP"}->Id} - {$Tickets{"TOP"}->Subject} Due: {time + 86400} Content-Type: text/plain @@ -139,7 +139,7 @@ A convoluted example ENDOFCONTENT ===Create-Ticket: two Subject: Manager approval - Depended-On-By: {$Tickets{"TOP"}->Id} + Depended-On-By: TOP Refers-On: {$Tickets{"approval"}->Id} Queue: Approvals Content-Type: text/plain @@ -239,8 +239,8 @@ my $approvals = Queue: Approvals Type: Approval AdminCc: {join ("\nAdminCc: ",@admins) } -Depended-On-By: {$Tickets{"TOP"}->Id} -Refers-To: {$Tickets{"TOP"}->Id} +Depended-On-By: TOP +Refers-To: TOP Subject: Approval for ticket: {$Tickets{"TOP"}->Id} - {$Tickets{"TOP"}->Subject} Due: {time + 86400} Content-Type: text/plain @@ -431,6 +431,8 @@ sub Commit { $args{'requestor'} ||= $self->TicketObj->Requestors->MemberEmailAddresses; + $args{'type'} ||= 'ticket'; + my %ticketargs = ( Queue => $args{'queue'}, Subject=> $args{'subject'}, Status => 'new', @@ -452,7 +454,7 @@ sub Commit { foreach my $key (keys(%args)) { - $key =~ /^customfield-(\d+)$/ or next; + $key =~ /^customfield(\d+)$/ or next; $ticketargs{ "CustomField-" . $1 } = $args{$key}; } diff --git a/rt/lib/RT/Action/SendEmail.pm b/rt/lib/RT/Action/SendEmail.pm index dac8fc8e7..659238088 100755 --- a/rt/lib/RT/Action/SendEmail.pm +++ b/rt/lib/RT/Action/SendEmail.pm @@ -129,7 +129,7 @@ sub Commit { $self->SetHeader( 'Cc', join ( ',', @{ $self->{'Cc'} } ) ) if ( $self->{'Cc'} && @{ $self->{'Cc'} } ); $self->SetHeader( 'Bcc', join ( ',', @{ $self->{'Bcc'} } ) ) - if ( $self->{'Cc'} && @{ $self->{'Bcc'} } ); + if ( $self->{'Bcc'} && @{ $self->{'Bcc'} } ); $self->SetHeader('MIME-Version', '1.0'); @@ -266,7 +266,7 @@ sub SendMessage { and ( !$MIMEObj->head->get('To') ) ); if ( $RT::MailCommand eq 'sendmailpipe' ) { eval { - open( MAIL, "|$RT::SendmailPath $RT::SendmailArguments" ); + open( MAIL, "|$RT::SendmailPath $RT::SendmailArguments" ) || die $!; print MAIL $MIMEObj->as_string; close(MAIL); }; diff --git a/rt/lib/RT/Attachment_Overlay.pm b/rt/lib/RT/Attachment_Overlay.pm index d31aa75ad..9086c52f6 100644 --- a/rt/lib/RT/Attachment_Overlay.pm +++ b/rt/lib/RT/Attachment_Overlay.pm @@ -112,8 +112,8 @@ sub Create { #For ease of reference my $Attachment = $args{'Attachment'}; - #if we didn't specify a ticket, we need to bail - if ( $args{'TransactionId'} == 0 ) { + #if we didn't specify a ticket, we need to bail + if ( $args{'TransactionId'} == 0 ) { $RT::Logger->crit( "RT::Attachment->Create couldn't, as you didn't specify a transaction\n" ); return (0); @@ -133,7 +133,9 @@ sub Create { =~ /^.*\bfilename="(.*)"$/ ? $1 : '' }; - if ( $Attachment->parts ) { + # If a message has no bodyhandle, that means that it has subparts (or appears to) + # and we should act accordingly. + unless ( defined $Attachment->bodyhandle ) { $id = $self->SUPER::Create( TransactionId => $args{'TransactionId'}, Parent => 0, @@ -241,6 +243,9 @@ Create an attachment exactly as specified in the named parameters. sub Import { my $self = shift; + my %args = ( ContentEncoding => 'none', + + @_ ); return($self->SUPER::Create(@_)); } @@ -309,11 +314,15 @@ sub OriginalContent { } # Encode::_utf8_on($content); - if (!$enc or $enc eq 'utf8' or $enc eq 'utf-8') { + if (!$enc || $enc eq '' || $enc eq 'utf8' || $enc eq 'utf-8') { # If we somehow fail to do the decode, at least push out the raw bits eval {return( Encode::decode_utf8($content))} || return ($content); } - Encode::from_to($content, 'utf8' => $enc); + + eval { Encode::from_to($content, 'utf8' => $enc);}; + if ($@) { + $RT::Logger->error("Could not convert attachment from assumed utf8 to '$enc' :".$@); + } return $content; } @@ -423,10 +432,13 @@ properly unfolded. =cut sub NiceHeaders { - my $self=shift; - my $hdrs=""; - for (split(/\n/,$self->Headers)) { - $hdrs.="$_\n" if /^(To|From|RT-Send-Cc|Cc|Date|Subject): /i + my $self = shift; + my $hdrs = ""; + my @hdrs = split(/\n/,$self->Headers); + while (my $str = shift @hdrs) { + next unless $str =~ /^(To|From|RT-Send-Cc|Cc|Date|Subject): /i; + $hdrs .= $str . "\n"; + $hdrs .= shift( @hdrs ) . "\n" while ($hdrs[0] =~ /^[ \t]+/); } return $hdrs; } @@ -568,4 +580,13 @@ sub ContentLength { # }}} +# Transactions don't change. by adding this cache congif directiove, we don't lose pathalogically on long tickets. +sub _CacheConfig { + { + 'cache_p' => 1, + 'fast_update_p' => 1, + 'cache_for_sec' => 180, + } +} + 1; diff --git a/rt/lib/RT/Base.pm b/rt/lib/RT/Base.pm index 3b2dcfd3d..47742f8ac 100644 --- a/rt/lib/RT/Base.pm +++ b/rt/lib/RT/Base.pm @@ -23,6 +23,7 @@ # END LICENSE BLOCK package RT::Base; use Carp; +use Scalar::Util; use strict; use vars qw(@EXPORT); @@ -47,12 +48,14 @@ sub CurrentUser { my $self = shift; if (@_) { + $self->{'original_user'} = $self->{'user'}; $self->{'user'} = shift; + Scalar::Util::weaken($self->{'user'}) if (ref($self->{'user'}) && + $self->{'user'} == $self ); } - unless ( $self->{'user'} ) { - $RT::Logger->err( - "$self was created without a CurrentUser\n" . Carp::cluck() ); + unless ( ref( $self->{'user'}) ) { + $RT::Logger->err( "$self was created without a CurrentUser\n" . Carp::cluck() ); return (0); die; } @@ -61,6 +64,16 @@ sub CurrentUser { # }}} +sub OriginalUser { + my $self = shift; + + if (@_) { + $self->{'original_user'} = shift; + Scalar::Util::weaken($self->{'original_user'}) + if (ref($self->{'original_user'}) && $self->{'original_user'} == $self ); + } + return ( $self->{'original_user'} || $self->{'user'} ); +} =item loc LOC_STRING @@ -80,12 +93,14 @@ In english, this would return: sub loc { my $self = shift; - unless ($self->CurrentUser) { + if (my $user = $self->OriginalUser) { + return $user->loc(@_); + } + else { use Carp; Carp::confess("No currentuser"); return ("Critical error:$self has no CurrentUser", $self); } - return($self->CurrentUser->loc(@_)); } eval "require RT::Base_Vendor"; diff --git a/rt/lib/RT/CachedGroupMember_Overlay.pm b/rt/lib/RT/CachedGroupMember_Overlay.pm index f2dc86f0d..8ba7913fa 100644 --- a/rt/lib/RT/CachedGroupMember_Overlay.pm +++ b/rt/lib/RT/CachedGroupMember_Overlay.pm @@ -88,7 +88,7 @@ sub Create { Via => $args{'Via'}, ); unless ($id) { - $RT::Logger->warn( "Couldn't create " + $RT::Logger->warning( "Couldn't create " . $args{'Member'} . " as a cached member of " . $args{'Group'}->Id . " via " @@ -98,7 +98,7 @@ sub Create { if ( $self->__Value('Via') == 0 ) { my ( $vid, $vmsg ) = $self->__Set( Field => 'Via', Value => $id ); unless ($vid) { - $RT::Logger->warn( "Due to a via error, couldn't create " + $RT::Logger->warning( "Due to a via error, couldn't create " . $args{'Member'} . " as a cached member of " . $args{'Group'}->Id . " via " diff --git a/rt/lib/RT/CachedGroupMembers_Overlay.pm b/rt/lib/RT/CachedGroupMembers_Overlay.pm index fd0fd9055..500a54feb 100644 --- a/rt/lib/RT/CachedGroupMembers_Overlay.pm +++ b/rt/lib/RT/CachedGroupMembers_Overlay.pm @@ -136,8 +136,10 @@ sub LimitToGroupsWithMember { my $self = shift; my $member = shift; + + return ($self->Limit( - VALUE => $member, + VALUE => $member || '0', FIELD => 'MemberId', ENTRYAGGREGATOR => 'OR', QUOTEVALUE => 0 diff --git a/rt/lib/RT/CurrentUser.pm b/rt/lib/RT/CurrentUser.pm index 4ca2f9891..7fcc65ce3 100755 --- a/rt/lib/RT/CurrentUser.pm +++ b/rt/lib/RT/CurrentUser.pm @@ -70,7 +70,7 @@ sub _Init { $self->Load($Name); } - $self->CurrentUser($self); + # $self->CurrentUser($self); } # }}} @@ -104,15 +104,13 @@ sub Delete { sub UserObj { my $self = shift; - unless ($self->{'UserObj'}) { use RT::User; - $self->{'UserObj'} = RT::User->new($self); - unless ($self->{'UserObj'}->Load($self->Id)) { + my $user = RT::User->new($self); + + unless ($user->Load($self->Id)) { $RT::Logger->err($self->loc("Couldn't load [_1] from the users database.\n", $self->Id)); } - - } - return ($self->{'UserObj'}); + return ($user); } # }}} @@ -160,6 +158,7 @@ sub _Accessible { Gecos => 'read', RealName => 'read', Password => 'neither', + Lang => 'read', EmailAddress => 'read', Privileged => 'read', IsAdministrator => 'read' @@ -241,6 +240,11 @@ sub Load { if ($identifier !~ /\D/) { $self->SUPER::LoadById($identifier); } + + elsif (UNIVERSAL::isa($identifier,"RT::User")) { + # DWIM if they pass a user in + $self->SUPER::LoadById($identifier->Id); + } else { # This is a bit dangerous, we might get false authen if somebody # uses ambigous userids or real names: @@ -329,6 +333,9 @@ sub LanguageHandle { if ((!defined $self->{'LangHandle'}) || (!UNIVERSAL::can($self->{'LangHandle'}, 'maketext')) || (@_)) { + if ( $self->Lang) { + push @_, $self->Lang; + } $self->{'LangHandle'} = RT::I18N->get_handle(@_); } # Fall back to english. @@ -365,6 +372,19 @@ sub loc_fuzzy { } # }}} + +=head2 CurrentUser + +Return the current currentuser object + +=cut + +sub CurrentUser { + my $self = shift; + return($self); + +} + eval "require RT::CurrentUser_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/CurrentUser_Vendor.pm}); eval "require RT::CurrentUser_Local"; diff --git a/rt/lib/RT/CustomField_Overlay.pm b/rt/lib/RT/CustomField_Overlay.pm index 89ef88987..84902a02f 100644 --- a/rt/lib/RT/CustomField_Overlay.pm +++ b/rt/lib/RT/CustomField_Overlay.pm @@ -132,6 +132,12 @@ sub LoadByNameAndQueue { @_, ); + if ($args{'Queue'} =~ /\D/) { + my $QueueObj = RT::Queue->new($self->CurrentUser); + $QueueObj->Load($args{'Queue'}); + $args{'Queue'} = $QueueObj->Id; + } + return ( $self->LoadByCols( Name => $args{'Name'}, Queue => $args{'Queue'} ) ); } diff --git a/rt/lib/RT/EmailParser.pm b/rt/lib/RT/EmailParser.pm index 49f3d5518..bba4d7ec7 100644 --- a/rt/lib/RT/EmailParser.pm +++ b/rt/lib/RT/EmailParser.pm @@ -95,7 +95,7 @@ sub CheckForLoops { #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 =~ /^$RT::rtname/ ) { + if ( $RTLoop =~ /^\Q$RT::rtname\E/o ) { return (1); } @@ -159,28 +159,23 @@ sub ParseMIMEEntityFromSTDIN { # }}} +=head2 ParseMIMEEntityFromScalar $message + +Takes either a scalar or a reference to a scalr which contains a stringified MIME message. +Parses it. + +Returns true if it wins. +Returns false if it loses. + + +=cut sub ParseMIMEEntityFromScalar { my $self = shift; my $message = shift; - # Create a new parser object: - - my $parser = MIME::Parser->new(); - $self->_SetupMIMEParser($parser); - + $self->_DoParse('parse_data', $message); - # TODO: XXX 3.0 we really need to wrap this in an eval { } - unless ( $self->{'entity'} = $parser->parse_data($message) ) { - # Try again, this time without extracting nested messages - $parser->extract_nested_messages(0); - unless ( $self->{'entity'} = $parser->parse_data($message) ) { - $RT::Logger->crit("couldn't parse MIME stream"); - return ( undef); - } - } - $self->_PostProcessNewEntity(); - return (1); } # {{{ ParseMIMEEntityFromFilehandle *FH @@ -195,6 +190,43 @@ sub ParseMIMEEntityFromFileHandle { my $self = shift; my $filehandle = shift; + $self->_DoParse('parse', $filehandle); + +} + +# }}} + +# {{{ ParseMIMEEntityFromFile + +=head2 ParseMIMEEntityFromFile + +Parses a mime entity from a filename passed in as an argument + +=cut + +sub ParseMIMEEntityFromFile { + my $self = shift; + + my $file = shift; + $self->_DoParse('parse_open', $file); +} + +# }}} + +# {{{ _DoParse + +=head2 _DoParse PARSEMETHOD CONTENT + + +A helper for the various parsers to turn around and do the dispatch to the actual parser + +=cut + +sub _DoParse { + my $self = shift; + my $method = shift; + my $file = shift; + # Create a new parser object: my $parser = MIME::Parser->new(); @@ -203,11 +235,11 @@ sub ParseMIMEEntityFromFileHandle { # TODO: XXX 3.0 we really need to wrap this in an eval { } - unless ( $self->{'entity'} = $parser->parse($filehandle) ) { + unless ( $self->{'entity'} = $parser->$method($file) ) { # Try again, this time without extracting nested messages $parser->extract_nested_messages(0); - unless ( $self->{'entity'} = $parser->parse($filehandle) ) { + unless ( $self->{'entity'} = $parser->$method($file) ) { $RT::Logger->crit("couldn't parse MIME stream"); return ( undef); } @@ -218,6 +250,7 @@ sub ParseMIMEEntityFromFileHandle { # }}} + # {{{ _PostProcessNewEntity =head2 _PostProcessNewEntity @@ -250,7 +283,7 @@ sub ParseTicketId { my $Subject = shift; - if ( $Subject =~ s/\[$RT::rtname \#(\d+)\s*\]//i ) { + if ( $Subject =~ s/\[\Q$RT::rtname\E\s+\#(\d+)\s*\]//i ) { my $id = $1; $RT::Logger->debug("Found a ticket ID. It's $id"); return ($id); @@ -762,17 +795,20 @@ sub _SetupMIMEParser { # Set up output directory for files: $parser->output_dir("$AttachmentDir"); + $parser->filer->ignore_filename(1); - #If someone includes a message, don't extract it + + #If someone includes a message, extract it $parser->extract_nested_messages(1); + $parser->extract_uuencode(1); ### default is false + # Set up the prefix for files with auto-generated names: $parser->output_prefix("part"); - # If content length is <= 50000 bytes, store each msg as in-core scalar; - # Else, write to a disk file (the default action): + # do _not_ store each msg as in-core scalar; - $parser->output_to_core(50000); + $parser->output_to_core(0); } # }}} diff --git a/rt/lib/RT/GroupMember_Overlay.pm b/rt/lib/RT/GroupMember_Overlay.pm index 20949f017..9e5bf2189 100644 --- a/rt/lib/RT/GroupMember_Overlay.pm +++ b/rt/lib/RT/GroupMember_Overlay.pm @@ -322,7 +322,7 @@ sub MemberObj { my $self = shift; unless ( defined( $self->{'Member_obj'} ) ) { $self->{'Member_obj'} = RT::Principal->new( $self->CurrentUser ); - $self->{'Member_obj'}->Load( $self->MemberId ); + $self->{'Member_obj'}->Load( $self->MemberId ) if ($self->MemberId); } return ( $self->{'Member_obj'} ); } diff --git a/rt/lib/RT/Group_Overlay.pm b/rt/lib/RT/Group_Overlay.pm index 92150255f..f71fe7f7e 100644 --- a/rt/lib/RT/Group_Overlay.pm +++ b/rt/lib/RT/Group_Overlay.pm @@ -1,3 +1,4 @@ + # BEGIN LICENSE BLOCK # # Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> @@ -327,8 +328,6 @@ sub LoadSystemInternalGroup { my $identifier = shift; $self->LoadByCols( "Domain" => 'SystemInternal', - "Instance" => '', - "Name" => '', "Type" => $identifier ); } @@ -350,7 +349,7 @@ Takes a param hash with 2 parameters: sub LoadTicketRoleGroup { my $self = shift; - my %args = (Ticket => undef, + my %args = (Ticket => '0', Type => undef, @_); $self->LoadByCols( Domain => 'RT::Ticket-Role', @@ -444,7 +443,7 @@ sub _Create { Description => undef, Domain => undef, Type => undef, - Instance => undef, + Instance => '0', InsideTransaction => undef, @_ ); @@ -466,7 +465,7 @@ sub _Create { Description => $args{'Description'}, Type => $args{'Type'}, Domain => $args{'Domain'}, - Instance => $args{'Instance'} + Instance => ($args{'Instance'} || '0') ); my $id = $self->Id; unless ($id) { @@ -798,22 +797,14 @@ sub UserMembersObj { #If we don't have rights, don't include any results # TODO XXX WHY IS THERE NO ACL CHECK HERE? - my $principals = $users->NewAlias('Principals'); - - $users->Join(ALIAS1 => 'main', FIELD1 => 'id', - ALIAS2 => $principals, FIELD2 => 'ObjectId'); - $users->Limit(ALIAS =>$principals, - FIELD => 'PrincipalType', OPERATOR => '=', VALUE => 'User'); - my $cached_members = $users->NewAlias('CachedGroupMembers'); $users->Join(ALIAS1 => $cached_members, FIELD1 => 'MemberId', - ALIAS2 => $principals, FIELD2 => 'id'); + ALIAS2 => $users->PrincipalsAlias, FIELD2 => 'id'); $users->Limit(ALIAS => $cached_members, FIELD => 'GroupId', OPERATOR => '=', VALUE => $self->PrincipalId); - return ( $users); } @@ -1009,6 +1000,10 @@ sub HasMember { return(undef); } + unless ($principal->Id) { + return(undef); + } + my $member_obj = RT::GroupMember->new( $self->CurrentUser ); $member_obj->LoadByCols( MemberId => $principal->id, GroupId => $self->PrincipalId ); diff --git a/rt/lib/RT/Groups_Overlay.pm b/rt/lib/RT/Groups_Overlay.pm index 3d2c660fe..a9ca44c7d 100644 --- a/rt/lib/RT/Groups_Overlay.pm +++ b/rt/lib/RT/Groups_Overlay.pm @@ -80,7 +80,8 @@ Return only SystemInternal Groups, such as "privileged" "unprivileged" and "ever sub LimitToSystemInternalGroups { my $self = shift; $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'SystemInternal'); - $self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => ''); + # All system internal groups have the same instance. No reason to limit down further + #$self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => '0'); } @@ -98,7 +99,8 @@ Return only UserDefined Groups sub LimitToUserDefinedGroups { my $self = shift; $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'UserDefined'); - $self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => ''); + # All user-defined groups have the same instance. No reason to limit down further + #$self->Limit(FIELD => 'Instance', OPERATOR => '=', VALUE => ''); } @@ -231,7 +233,7 @@ sub WithRight { my $self = shift; my %args = ( Right => undef, Object => => undef, - IncludeSystemRights => undef, + IncludeSystemRights => 1, IncludeSuperusers => undef, @_ ); @@ -241,11 +243,11 @@ sub WithRight { # {{{ Find only rows where the right granted is the one we're looking up or _possibly_ superuser $self->Limit( ALIAS => $acl, FIELD => 'RightName', - OPERATOR => '=', - VALUE => $args{Right}, + OPERATOR => ($args{Right} ? '=' : 'IS NOT'), + VALUE => $args{Right} || 'NULL', ENTRYAGGREGATOR => 'OR' ); - if ( $args{'IncludeSuperusers'} ) { + if ( $args{'IncludeSuperusers'} and $args{'Right'} ) { $self->Limit( ALIAS => $acl, FIELD => 'RightName', OPERATOR => '=', @@ -254,7 +256,8 @@ sub WithRight { } # }}} - my ($or_check_ticket_roles, $or_check_roles, $or_look_at_object); + my ($or_check_ticket_roles, $or_check_roles); + my $which_object = "$acl.ObjectType = 'RT::System'"; if ( defined $args{'Object'} ) { if ( ref($args{'Object'}) eq 'RT::Ticket' ) { @@ -274,12 +277,18 @@ sub WithRight { " AND main.Type = $acl.PrincipalType AND main.id = $groupprinc.id) "; } - $or_look_at_object = - " OR ($acl.ObjectType = '" . ref($args{'Object'}) . "'" . + if ( $args{'IncludeSystemRights'} ) { + $which_object .= ' OR '; + } + else { + $which_object = ''; + } + $which_object .= + " ($acl.ObjectType = '" . ref($args{'Object'}) . "'" . " AND $acl.ObjectId = " . $args{'Object'}->Id . ") "; } - $self->_AddSubClause( "WhichObject", "($acl.ObjectType = 'RT::System' $or_look_at_object)" ); + $self->_AddSubClause( "WhichObject", "($which_object)" ); $self->_AddSubClause( "WhichGroup", qq{ @@ -294,5 +303,58 @@ sub WithRight { ); } +# {{{ sub LimitToEnabled + +=head2 LimitToEnabled + +Only find items that haven\'t been disabled + +=cut + +sub LimitToEnabled { + my $self = shift; + + my $alias = $self->Join( + TYPE => 'left', + ALIAS1 => 'main', + FIELD1 => 'id', + TABLE2 => 'Principals', + FIELD2 => 'ObjectId' + ); + + $self->Limit( ALIAS => $alias, + FIELD => 'Disabled', + VALUE => '0', + OPERATOR => '=' ); +} +# }}} + +# {{{ sub LimitToDisabled + +=head2 LimitToDeleted + +Only find items that have been deleted. + +=cut + +sub LimitToDeleted { + my $self = shift; + + my $alias = $self->Join( + TYPE => 'left', + ALIAS1 => 'main', + FIELD1 => 'id', + TABLE2 => 'Principals', + FIELD2 => 'ObjectId' + ); + + $self->{'find_disabled_rows'} = 1; + $self->Limit( ALIAS => $alias, + FIELD => 'Disabled', + OPERATOR => '=', + VALUE => '1' + ); +} +# }}} 1; diff --git a/rt/lib/RT/Handle.pm b/rt/lib/RT/Handle.pm index 5cdb65e5b..9b611b903 100644 --- a/rt/lib/RT/Handle.pm +++ b/rt/lib/RT/Handle.pm @@ -60,9 +60,12 @@ Takes nothing. Calls SUPER::Connect with the needed args sub Connect { my $self=shift; -# Unless the database port is a positive integer, we really don't want to pass it. -$self->SUPER::Connect( + if ($RT::DatabaseType eq 'Oracle') { + $ENV{'NLS_LANG'} = ".UTF8"; + } + + $self->SUPER::Connect( User => $RT::DatabaseUser, Password => $RT::DatabasePassword, ); @@ -79,9 +82,11 @@ from the config file. sub BuildDSN { my $self = shift; +# Unless the database port is a positive integer, we really don't want to pass it. $RT::DatabasePort = undef unless (defined $RT::DatabasePort && $RT::DatabasePort =~ /^(\d+)$/); $RT::DatabaseHost = undef unless (defined $RT::DatabaseHost && $RT::DatabaseHost ne ''); + $self->SUPER::BuildDSN(Host => $RT::DatabaseHost, Database => $RT::DatabaseName, Port => $RT::DatabasePort, diff --git a/rt/lib/RT/I18N.pm b/rt/lib/RT/I18N.pm index c013c219e..79c3e8a15 100644 --- a/rt/lib/RT/I18N.pm +++ b/rt/lib/RT/I18N.pm @@ -164,10 +164,14 @@ sub SetMIMEEntityToEncoding { my $charset = _FindOrGuessCharset($entity) or return; # one and only normalization - $charset = 'utf-8' if $charset eq 'utf8'; - $enc = 'utf-8' if $enc eq 'utf8'; + $charset = 'utf-8' if $charset =~ /^utf-?8$/i; + $enc = 'utf-8' if $enc =~ /^utf-?8$/i; - SetMIMEHeadToEncoding($entity->head, $charset => $enc, $preserve_words); + SetMIMEHeadToEncoding( + $entity->head, + _FindOrGuessCharset($entity, 1) => $enc, + $preserve_words + ); my $head = $entity->head; @@ -302,24 +306,26 @@ sub DecodeMIMEWordsToEncoding { # {{{ _FindOrGuessCharset -=head2 _FindOrGuessCharset MIME::Entity +=head2 _FindOrGuessCharset MIME::Entity, $head_only + +When handed a MIME::Entity will first attempt to read what charset the message is encoded in. Failing that, will use Encode::Guess to try to figure it out -When handed a MIME::Entity will first attempt to read what charset the message is encoded in. Failing that, -will use Encode::Guess to try to figure it out +If $head_only is true, only guesses charset for head parts. This is because header's encoding (e.g. filename="...") may be different from that of body's. =cut sub _FindOrGuessCharset { my $entity = shift; + my $head_only = shift; my $head = $entity->head; if ($head->mime_attr("content-type.charset")) { return $head->mime_attr("content-type.charset"); } - if ( $head->mime_type =~ m{^text/}) { + if ( !$head_only and $head->mime_type =~ m{^text/}) { my $body = $entity->bodyhandle or return; - return _GuessCharset( $head->as_string . $body->as_string ); + return _GuessCharset( $body->as_string ); } else { # potentially binary data -- don't guess the body diff --git a/rt/lib/RT/I18N/cs.pm b/rt/lib/RT/I18N/cs.pm index 36e2bc6af..132c3c287 100644 --- a/rt/lib/RT/I18N/cs.pm +++ b/rt/lib/RT/I18N/cs.pm @@ -1,3 +1,26 @@ +# 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. +# +# 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::I18N::cs; # # CZECH TRANSLATORS COMMENTS see Locale::Maketext::TPJ13 diff --git a/rt/lib/RT/I18N/de.po b/rt/lib/RT/I18N/de.po index 3595aad47..3ffc8fbac 100644 --- a/rt/lib/RT/I18N/de.po +++ b/rt/lib/RT/I18N/de.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: RT 2.1.54\n" "POT-Creation-Date: 2002-06-22 06:06+0200\n" "PO-Revision-Date: 2003-02-20 04:47+0200\n" -"Last-Translator: Florian Bischof <flo@fxb.de>\n" +"Last-Translator: Karsten Konrad <karsten.konrad@uni-graz.at>\n" "Language-Team: RT German <rt@fxb.de>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -183,7 +183,7 @@ msgstr "%1 ist kein %2 dieses Stapels mehr." #: lib/RT/Ticket_Overlay.pm:1570 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this ticket." -msgstr "%1 ist nicht mehr %2 dieser Anfrage." +msgstr "%1 ist nicht mehr %2 dieser Anfrage." #: lib/RT/Ticket_Overlay.pm:3527 #. ($args{'Value'}, $cf->Name) @@ -194,11 +194,24 @@ msgstr "%1 ist kein Wert des benutzerdefinierten Feldes %2 mehr" msgid "%1 isn't a valid Queue id." msgstr "%1 ist keine gültige Stapel-Id." +#: RTFM +msgid "%1 matches" +msgstr "%1 enthält" + + #: html/Ticket/Elements/ShowBasics:36 #. ($TimeWorked) msgid "%1 min" msgstr "%1 Min" +#: html/RTFM/UpdatedArticles:19 +msgid "%1 most recently updated articles" +msgstr "%1 zuletzt überarbeitete Artikel" + +#: RTFM +msgid "%1 newest articles" +msgstr "%1 neueste Artikel" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "" @@ -279,10 +292,18 @@ msgstr "(Keine benutzerdefinierten Felder)" msgid "(No members)" msgstr "(Keine Mitglieder)" +#: html/RTFM/NewestArticles:35 +msgid "(no name)" +msgstr "(kein Name)" + #: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 msgid "(No scrips)" msgstr "(Keine Scrips)" +#: html/RTFM/UpdatedArticles.html:36 +msgid "(no Summary)" +msgstr "keine Zusammenfassung" + #: html/Admin/Elements/EditTemplates:31 msgid "(No templates)" msgstr "(Keine Vorlagen)" @@ -552,6 +573,10 @@ msgstr "Administrative CC" msgid "Advanced Search" msgstr "Erweiterte Suche" +#: RTFM +msgid "Advanced Search Criteria" +msgstr "Erweiterte Suchkriterien" + #: html/Elements/SelectDateRelation:36 msgid "After" msgstr "Nach dem" @@ -564,6 +589,10 @@ msgstr "Alter" msgid "All Custom Fields" msgstr "Alle benutzerdefinierten Felder" +#: html/RTFM/Admin/Classes/index.html:57 +msgid "All Classes" +msgstr "Alle Klassen" + #: html/Admin/Queues/index.html:53 msgid "All Queues" msgstr "Alle Stapel" @@ -572,6 +601,14 @@ msgstr "Alle Stapel" msgid "Always sends a message to the requestors independent of message sender" msgstr "" +#: RTFM +msgid "and is not" +msgstr "und ist nicht" + +#: RTFM +msgid "and not" +msgstr "und nicht" + #: html/Elements/Tabs:58 msgid "Approval" msgstr "Freigabe" @@ -610,10 +647,42 @@ msgstr "Freigeben" msgid "Approver's notes: %1" msgstr "Notizen des Freigebenden: %1" +#: html/RTFM/Admin/CustomFields/UserRights.html:117 +msgid "No Class defined" +msgstr "Keine Klasse definiert" + +#: html/RTFM/Admin/CustomFields/Basics.html:69 +msgid "No CustomField" +msgstr "Kein benutzerdef. Feld" + +#: html/RTFM/Admin/CustomFields/GroupRights.html:73 +msgid "No CustomField defined" +msgstr "Kein benutzerdef. Feld definiert" + #: lib/RT/Date.pm:414 msgid "Apr." msgstr "Apr" +#: RTFM +msgid "Are you sure you want to delete this article?" +msgstr "Sind Sie sicher, dass sie diesen Artikel löschen wollen?" + +#: html/RTFM/Article/delete.html:69 +msgid "Article #%1 deleted" +msgstr "Artikel #%1 gelöscht" + +#: html/RTFM/Article/Display.html:46 +msgid "Article #%1: %2" +msgstr "Artikel #%1: %2" + +#: html/RTFM/Article/Display.html:35 +msgid "Article not found" +msgstr "Artikel wurde nicht gefunden" + +#: RTFM +msgid "Articles" +msgstr "Artikel" + #: html/Elements/SelectSortOrder:35 msgid "Ascending" msgstr "aufsteigend" @@ -739,11 +808,11 @@ msgstr "Kann kein Ticket auf sich selbst verweisen lassen!" #: lib/RT/Ticket_Overlay.pm:2787 msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "Konnte das Ticket nicht in ein vereinigtes Ticket vereinigen. Diesen Fehler solltest du niemals sehen" +msgstr "Konnte das Ticket nicht in ein vereinigtes Ticket vereinigen. Diesen Fehler sollten Sie niemals sehen" #: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 msgid "Can't specifiy both base and target" -msgstr "Du kannst nicht Basis und Ziel gleichzeitig angeben" +msgstr "Sie können Basis und Ziel nicht gleichzeitig angeben" #: html/autohandler:112 #. ($msg) @@ -774,13 +843,33 @@ msgstr "Kinder" msgid "City" msgstr "Stadt" +#: RTFM +msgid "Class" +msgstr "Klasse" + +#: RTFM +msgid "Class is" +msgstr "Klasse ist" + +#: RTFM +msgid "Class Name" +msgstr "Klassenname" + +#: RTFM +msgid "Classes" +msgstr "Klassen" + +#: share/html/SelfService/Closed.html:27 +msgid "closed" +msgstr "geschlossenen" + #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "Geschlossen" #: html/SelfService/Elements/Tabs:60 -msgid "Closed requests" -msgstr "Geschossene Tickets" +msgid "Closed tickets" +msgstr "Geschlossene Anfragen" #: NOT FOUND IN SOURCE msgid "Command not understood!\\n" @@ -999,6 +1088,14 @@ msgstr "" msgid "Couldn't load %1 from the users database.\\n" msgstr "Konnte %1 nicht aus der Benutzerdatenbank laden.\\n" +#: html/RTFM/Admin/CustomFields/UserRights.html:121 +msgid "Couldn't load Class %1" +msgstr "Konnte die Klasse %1 nicht laden" + +#: html/RTFM/Admin/CustomFields/GroupRights.html:77 +msgid "Couldn't load CustomField %1" +msgstr "Konnte das benutzerdefinierte Feld %1 nicht laden" + #: NOT FOUND IN SOURCE msgid "Couldn't load RT config file '%1' %2" msgstr "" @@ -1056,6 +1153,10 @@ msgstr "Erstellen" msgid "Create Tickets" msgstr "Erstelle Tickets" +#: RTFM +msgid "Create a Class" +msgstr "Erstelle eine Klasse" + #: html/Admin/Elements/EditCustomField:58 msgid "Create a CustomField" msgstr "Erstelle ein benutzerdefiniertes Feld" @@ -1069,6 +1170,10 @@ msgstr "Erstelle ein benutzerdef. Feld für Stapel %1" msgid "Create a CustomField which applies to all queues" msgstr "Erstelle ein benutzerdef. Feld für alle Stapel" +#: html/RTFM/Article/Create.html:19 +msgid "Create a new article" +msgstr "Erstelle einen neuen Artikel" + #: NOT FOUND IN SOURCE msgid "Create a new Custom Field" msgstr "" @@ -1126,13 +1231,25 @@ msgstr "Erstelle ein Scrip für den Stapel %1" msgid "Create a template" msgstr "Erstelle eine Vorlage" +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "Neue Anfrage" + +#: RTFM +msgid "Create an article" +msgstr "Erstelle einen Artikel" + +#: RTFM +msgid "Create an article in class..." +msgstr "Erstelle einen Artikel in der Klasse..." + #: etc/initialdata:130 msgid "Create new tickets based on this scrip's template" msgstr "Erstelle neue Tickets basierend auf der Vorlage dieses Scrips" #: html/SelfService/Create.html:81 msgid "Create ticket" -msgstr "Ticket erstellen" +msgstr "Übermitteln" #: lib/RT/Queue_Overlay.pm:84 msgid "Create tickets in this queue" @@ -1166,11 +1283,19 @@ msgstr "" msgid "Created" msgstr "Angelegt" +#: RTFM +msgid "Created by" +msgstr "Angelegt von" + #: html/Admin/Elements/EditCustomField:71 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Erstelle ein benutzerdefiniertes Feld %1" +#: RTFM +msgid "Created during" +msgstr "Erstellt zwischen" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "" @@ -1316,7 +1441,7 @@ msgstr "Rechte weitergeben" #: lib/RT/System.pm:63 msgid "Delegate specific rights which have been granted to you." -msgstr "Dir gewährte Rechte weitergeben" +msgstr "Ihnen gewährte Rechte weitergeben" #: lib/RT/System.pm:63 msgid "DelegateRights" @@ -1326,9 +1451,13 @@ msgstr "" msgid "Delegation" msgstr "Rechteweitergabe" -#: NOT FOUND IN SOURCE +#: RTFM msgid "Delete" -msgstr "" +msgstr "Löschen" + +#: html/RTFM/Article/delete.html:73 +msgid "Delete article #%1" +msgstr "Lösche Artikel #%1" #: lib/RT/Queue_Overlay.pm:90 msgid "Delete tickets" @@ -1445,6 +1574,10 @@ msgstr "" msgid "Edit Custom Fields for %1" msgstr "Bearbeite benutzerdefinierte Felder für %1" +#: html/RTFM/Admin/Classes/CustomFields.html:73 +msgid "Edit Custom Fields for Class %1" +msgstr "Bearbeite benutzerdefinierte Felder für Klasse %1" + #: html/Ticket/ModifyLinks.html:36 msgid "Edit Relationships" msgstr "Bearbeite Beziehungen" @@ -1466,6 +1599,10 @@ msgstr "Bearbeite Systemvorlagen" msgid "Edit templates for %1" msgstr "" +#: html/RTFM/Admin/Classes/Modify:79 +msgid "Editing Configuration for Class %1" +msgstr "Bearbeite Konfiguration für die Klasse %1" + #: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 #. ($QueueObj->Name) #. ($QueueObj->Id) @@ -1517,6 +1654,10 @@ msgstr "E-Mail-Adresse" msgid "EmailEncoding" msgstr "E-Mail-Kodierung" +#: RTFM +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "Aktiviert (Abwählen deaktiviert diese Klasse)" + ### muss das überhaupt übersetzt werden??? #: html/Admin/Elements/EditCustomField:36 msgid "Enabled (Unchecking this box disables this custom field)" @@ -1530,6 +1671,10 @@ msgstr "Aktiviert (Abwählen deaktiviert diese Gruppe)" msgid "Enabled (Unchecking this box disables this queue)" msgstr "Aktiviert (Abwählen deaktiviert diesen Stapel)" +#: RTFM +msgid "Enabled Classes" +msgstr "Aktivierte Klassen" + #: html/Admin/Elements/EditCustomFields:99 msgid "Enabled Custom Fields" msgstr "Aktivierte benutzerdefinierte Felder" @@ -1543,6 +1688,10 @@ msgstr "Aktivierte Stapel" msgid "Enabled status %1" msgstr "Status %1 aktiviert" +#: RTFM +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "Artikel oder URIs getrennt durch Leerzeichen eingeben." + #: lib/RT/CustomField_Overlay.pm:361 msgid "Enter multiple values" msgstr "Mehrere Werte eingeben" @@ -1595,6 +1744,14 @@ msgstr "ExternalContactInfoId" msgid "Extra info" msgstr "Zusatzinformationen" +#: html/RTFM/Article/ExtractIntoClass.html:19 +msgid "Extract article from ticket #%1" +msgstr "Extrahiere Artikel aus Anfrage #%1" + +#: html/RTFM/Article/ExtractFromTicket.html:19 +msgid "Extract article from ticket #%1 into class %2" +msgstr "Extrahiere Artikel aus Anfrage #%1 in die Klasse %2" + #: lib/RT/User_Overlay.pm:302 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Konnte die Pseudogruppe 'Privileged' nicht finden." @@ -1729,7 +1886,7 @@ msgstr "Gehe zu Seite" #: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 msgid "Goto ticket" -msgstr "Zeig' Ticket" +msgstr "Zeige Anfrage" #: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 msgid "Group" @@ -1793,6 +1950,10 @@ msgstr "Hallo %1" msgid "History" msgstr "Historie" +#: html/RTFM/Article/History.html:22 +msgid "History for article #%1" +msgstr "Historie für Artikel #%1" + #: html/Admin/Elements/ModifyUser:68 msgid "HomePhone" msgstr "TelefonZuhause" @@ -1828,7 +1989,7 @@ msgstr "Wenn dieses Werkzeug 'setgid' wäre könnte ein feindlicher lokaler Benu #: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 msgid "If you've updated anything above, be sure to" -msgstr "Wenn du irgend etwas aktualisiert hast, denke daran hier zu klicken" +msgstr "Wenn Sie irgend etwas aktualisiert haben, denken Sie daran hier zu klicken" #: lib/RT/Interface/Web.pm:860 msgid "Illegal value for %1" @@ -1838,6 +1999,14 @@ msgstr "Unerlaubter Wert für %1" msgid "Immutable field" msgstr "Unveränderbares Feld" +#: RTFM +msgid "in class %1" +msgstr "%1" + +#: RTFM +msgid "Include disabled classes in listing." +msgstr "Zeige auch deaktivierte Klassen an." + #: html/Admin/Elements/EditCustomFields:74 msgid "Include disabled custom fields in listing." msgstr "Zeige auch deaktivierte benutzerdefinierte Felder an." @@ -2157,6 +2326,19 @@ msgstr "Mobil" msgid "MobilePhone" msgstr "Mobiltelefon" +#: RTFM +msgid "Modified" +msgstr "Geändert" + +#: RTFM +msgid "Modify" +msgstr "Ändern" + +#: RTFM +msgid "Modify article #%1" +msgstr "Ändere Artikel #%1" + + #: lib/RT/Queue_Overlay.pm:70 msgid "Modify Access Control List" msgstr "Ändere Zugriffskontrollliste" @@ -2169,6 +2351,10 @@ msgstr "" msgid "Modify Custom Fields which apply to all queues" msgstr "Ändere benutzdefinierte Felder für diesen Stapel" +#: html/RTFM/Admin/CustomFields/GroupRights.html:21 +msgid "Modify group rights for custom field %1" +msgstr "Ändere Gruppenrechte für das benutzerdefinierte Feld %1" + #: lib/RT/Queue_Overlay.pm:73 msgid "Modify Scrip templates for this queue" msgstr "Ändere Scrip-Vorlagen für diesen Stapel" @@ -2374,7 +2560,11 @@ msgstr "Mehrere" #: lib/RT/User_Overlay.pm:179 msgid "Must specify 'Name' attribute" -msgstr "Du musst eine Angabe bei 'Name' machen" +msgstr "Sie müssen eine Angabe bei 'Name' machen" + +#: share/html/SelfService/Elements/MyRequests:32 +msgid "My %1 tickets" +msgstr "Meine %1 Anfragen" #: NOT FOUND IN SOURCE msgid "My Approvals" @@ -2392,6 +2582,10 @@ msgstr "Name" msgid "Name in use" msgstr "Benutzername ist bereits in Gebrauch" +#: RTFM +msgid "Name matches" +msgstr "Name enthält" + #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "" @@ -2404,6 +2598,15 @@ msgstr "Niemals" msgid "New" msgstr "Neu" +#: RTFM +msgid "New Article" +msgstr "Neuer Artikel" + +#: RTFM +msgid "New class" +msgstr "Neue Klasse" + + #: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 msgid "New Password" msgstr "Neues Passwort" @@ -2441,8 +2644,8 @@ msgid "New queue" msgstr "Neuer Stapel" #: html/SelfService/Elements/Tabs:63 -msgid "New request" -msgstr "Neues Ticket" +msgid "New ticket" +msgstr "Neue Anfrage" #: html/Admin/Elements/SelectRights:42 msgid "New rights" @@ -2496,10 +2699,18 @@ msgstr "Spitzname" msgid "Nickname" msgstr "Spitzname" +#: RTFM +msgid "No" +msgstr "Nein" + #: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 msgid "No CustomField" msgstr "Kein benutzerdefiniertes Feld" +#: html/RTFM/Admin/CustomFields/GrroupRights.html:73 +msgid "No CustomField defined" +msgstr "Kein benutzerdefiniertes Feld definiert" + #: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 msgid "No Group defined" msgstr "Keine Gruppe definiert" @@ -2777,7 +2988,7 @@ msgid "Open it" msgstr "Öffnen" #: html/SelfService/Elements/Tabs:57 -msgid "Open requests" +msgid "Open tickets" msgstr "Offene Anfragen" #: html/Admin/Users/Prefs.html:41 @@ -2809,6 +3020,10 @@ msgstr "Ursprüngliche Anfrage: #%1" msgid "Over time, priority moves toward" msgstr "Mit der Zeit steigt die Priorität auf" +#: html/RTFM/index.html:19 +msgid "Overview" +msgstr "Übersicht" + #: lib/RT/Queue_Overlay.pm:87 msgid "Own tickets" msgstr "Eigene Anfrage" @@ -3000,6 +3215,10 @@ msgstr "Stapel nicht gefunden" msgid "Queues" msgstr "Stapel" +#: RTFM +msgid "Quick search" +msgstr "Schnellsuche" + #: html/Elements/Login:34 #. ($RT::VERSION) msgid "RT %1" @@ -3047,9 +3266,13 @@ msgstr "RT Fehler" msgid "RT Received mail (%1) from itself." msgstr "" +#: html/RTFM/Error:36 +msgid "RTFM Error" +msgstr "RTFM Fehler" + #: html/SelfService/Closed.html:25 -msgid "RT Self Service / Closed Tickets" -msgstr "RT Selbstbedienung / Geschlossene Anfragen" +msgid "Closed Tickets" +msgstr "Geschlossene Anfragen" #: html/index.html:25 html/index.html:28 msgid "RT at a glance" @@ -3082,13 +3305,17 @@ msgstr "" #: NOT FOUND IN SOURCE msgid "RT has proccessed your commands" -msgstr "RT hat Deine Befehle verarbeitet" +msgstr "RT hat Ihre Befehle verarbeitet" #: html/Elements/Login:83 #. ('2003') 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 © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Vertrieben unter der <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 of the GNU General Public License.</a>" +#: share/html/SelfService/Elements/Tabs:35 +msgid "RT Self Service" +msgstr "RT Selbstbedienung" + #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "" @@ -3318,6 +3545,10 @@ msgstr "" msgid "Search for approvals" msgstr "Suche nach Freigaben" +#: html/RTFM/Article/Search.html:19 +msgid "Search for articles" +msgstr "Artikel suchen" + #: bin/rt-crontool:188 msgid "Security:" msgstr "Sicherheit:" @@ -3326,6 +3557,14 @@ msgstr "Sicherheit:" msgid "SeeQueue" msgstr "" +#: RTFM +msgid "Select a Class" +msgstr "Wähle eine Klasse aus" + +#: RTFM +msgid "Select a Custom Fields" +msgstr "Wähle ein benutzerdefiniertes Feld aus" + #: html/Admin/Groups/index.html:40 msgid "Select a group" msgstr "Wähle eine Gruppe aus" @@ -3338,6 +3577,10 @@ msgstr "" msgid "Select a user" msgstr "Wähle einen Benutzer aus" +#: RTFM +msgid "Select class" +msgstr "Wähle eine Klasse" + #: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 msgid "Select custom field" msgstr "Wähle ein benutzerdef. Feld" @@ -3364,7 +3607,7 @@ msgstr "Wähle ein Scrip" #: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 msgid "Select template" -msgstr "Wähle ein Template" +msgstr "Wähle eine Vorlage" #: html/Admin/Elements/UserTabs:49 msgid "Select user" @@ -3422,10 +3665,18 @@ msgstr "Schicke eine Mail an den Inhaber" msgid "Sep." msgstr "Sep" +#: RTFM +msgid "Seperate multiple URLs with spaces" +msgstr "Mehrere URLs getrennt durch Leerzeichen eingeben" + #: NOT FOUND IN SOURCE msgid "Show Results" msgstr "" +#: RTFM +msgid "Show advanced search options..." +msgstr "Zeige erweiterte Suchoptionen an..." + #: html/Approvals/Elements/PendingMyApproval:44 msgid "Show approved requests" msgstr "Zeige freigegebene Anfragen" @@ -3511,10 +3762,23 @@ msgstr "Sortierschlüssel" msgid "Sort results by" msgstr "Sortiere Ergebnisse nach" +#: RTFM +msgid "Sort Order" +msgstr "Sortierreihenfolge" + #: html/Admin/Elements/AddCustomFieldValue:25 msgid "SortOrder" msgstr "Sortierreihenfolge" +#: RTFM +msgid "Summary" +msgstr "Zusammenfassung" + +#: RTFM +msgid "Summary matches" +msgstr "Zusammenfassung enthält" + + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "" @@ -3586,6 +3850,10 @@ msgstr "Betreff wurde auf %1 geändert" msgid "Submit" msgstr "Übermitteln" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "Suchen" + #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "" @@ -3933,6 +4201,10 @@ msgstr "Arbeitszeit" msgid "Time left" msgstr "Übrige Zeit" +#: RTFM +msgid "till" +msgstr "und" + #: html/Elements/Footer:36 msgid "Time to display" msgstr "Benötigte Zeit" @@ -3990,6 +4262,10 @@ msgstr "Di" msgid "Type" msgstr "Typ" +#: html/RTFM/Article/delete.html:59 +msgid "Unable to load article" +msgstr "Artikel kann nicht geladen werden" + #: lib/RT/ScripCondition_Overlay.pm:104 msgid "Unimplemented" msgstr "Nicht implementiert" @@ -4082,6 +4358,10 @@ msgstr "Aktualisierungstyp war weder Korrespondenz noch Kommentar." msgid "Updated" msgstr "Aktualisiert" +#: html/RTFM/Article/ExtractFromTicket.html:26 +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "Über die Auswahllisten kann bestimmt werden welche Transaktionen in den neuen RTFM Artikel extrahiert werden" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "" @@ -4223,6 +4503,14 @@ msgstr "Immer wenn ein neuer Kommentar eingeht" msgid "Whenever correspondence comes in" msgstr "Immer wenn neue Korrespondenz eingeht" +#: html/RTFM/Article/Elements/ShowSearchCriteria:64 +msgid "Which refer to" +msgstr "Beziehen sich auf" + +#: html/RTFM/Article/Elements/ShowSearchCriteria:64 +msgid "Which are referred to by " +msgstr "Bezogen von" + #: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 msgid "Work" msgstr "Arbeit" @@ -4235,17 +4523,21 @@ msgstr "Arbeitstelefon" msgid "Worked" msgstr "Arbeitszeit" +#: RTFM +msgid "Yes" +msgstr "Ja" + #: lib/RT/Ticket_Overlay.pm:3056 msgid "You already own this ticket" -msgstr "Du besitzt diese Anfrage bereits" +msgstr "Sie besitzen diese Anfrage bereits" #: html/autohandler:121 msgid "You are not an authorized user" -msgstr "Du bist kein authorisierter Benutzer" +msgstr "Sie sind kein authorisierter Benutzer" #: lib/RT/Ticket_Overlay.pm:2930 msgid "You can only reassign tickets that you own or that are unowned" -msgstr "Du kannst nur Anfragen ohne Inhaber zuweisen" +msgstr "Sie können nur Anfragen ohne Inhaber zuweisen" #: NOT FOUND IN SOURCE msgid "You don't have permission to view that ticket.\\n" @@ -4254,23 +4546,23 @@ msgstr "" #: docs/design_docs/string-extraction-guide.txt:47 #. ($num, $queue) msgid "You found %1 tickets in queue %2" -msgstr "Du hast %1 Anfragen in Stapel %2 gefunden" +msgstr "Sie haben %1 Anfragen in Stapel %2 gefunden" #: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 msgid "You have been logged out of RT." -msgstr "Du wurdest von RT abgemeldet." +msgstr "Sie wurden von RT abgemeldet." #: html/SelfService/Display.html:134 msgid "You have no permission to create tickets in that queue." -msgstr "Du hast kein Recht, Anfragen in diesen Stapel anzulegen." +msgstr "Sie haben kein Recht, Anfragen in diesen Stapel anzulegen." #: lib/RT/Ticket_Overlay.pm:1895 msgid "You may not create requests in that queue." -msgstr "Du darfst in diesem Stapel keine Anfragen erstellen" +msgstr "Sie dürfen in diesem Stapel keine Anfragen erstellen" #: html/NoAuth/Logout.html:36 msgid "You're welcome to login again" -msgstr "Du kannst dich gerne wieder anmelden" +msgstr "Sie können sich gerne wieder anmelden" #: html/SelfService/Elements/MyRequests:25 #. ($friendly_status) @@ -4283,11 +4575,11 @@ msgstr "" #: etc/initialdata:429 etc/upgrade/2.1.71:146 msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "Deine Anfrage wurde von %1 freigegeben. Andere Freigaben können noch ausstehen." +msgstr "Ihre Anfrage wurde von %1 freigegeben. Andere Freigaben können noch ausstehen." #: etc/initialdata:463 etc/upgrade/2.1.71:180 msgid "Your request has been approved." -msgstr "Deine Anfrage wurde freigegeben." +msgstr "Ihre Anfrage wurde freigegeben." #: NOT FOUND IN SOURCE msgid "Your request was rejected" @@ -4295,11 +4587,11 @@ msgstr "" #: etc/initialdata:384 etc/upgrade/2.1.71:101 msgid "Your request was rejected." -msgstr "Deine Anfrage wurde abgewiesen" +msgstr "Ihre Anfrage wurde abgewiesen" #: html/autohandler:136 html/autohandler:142 msgid "Your username or password is incorrect" -msgstr "Dein Benutzername oder Passwort ist falsch" +msgstr "Ihr Benutzername oder Passwort ist falsch" #: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 msgid "Zip" diff --git a/rt/lib/RT/I18N/it.po b/rt/lib/RT/I18N/it.po new file mode 100644 index 000000000..55a478ba2 --- /dev/null +++ b/rt/lib/RT/I18N/it.po @@ -0,0 +1,6175 @@ +# translation of it.po to +# translation of it.po to +# translation of it.po to +# translation of it.po to +# translation of it.po to +# translation of it.po to +# Copyright (c) 2002 Jesse Vincent <jesse@bestpractical.com> +# root <root@delpreterh>, 2003 +# +msgid "" +msgstr "" +"Project-Id-Version: it\n" +"POT-Creation-Date: 2002-05-02 11:36+0800\n" +"PO-Revision-Date: 2003-07-21 22:20+0200\n" +"Last-Translator: root <root@delpreterh>\n" +"Language-Team: <en@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.0.1\n" + +#: html/Elements/MyRequests:27 +#: html/Elements/MyTickets:27 +msgid "#" +msgstr "n°" + +#. ($QueueObj->id) +#: html/Admin/Queues/Scrip.html:54 +msgid "#%1" +msgstr "n°%1" + +#. ($Ticket->Id, $Ticket->Subject) +#. ($Ticket->id, $Ticket->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +#: 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 +msgid "#%1: %2" +msgstr "n°%1: %2" + +#. ($s, $time_unit) +#: lib/RT/Date.pm:336 +msgid "%1 %2" +msgstr "%1 %2" + +#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +#: lib/RT/Tickets_Overlay.pm:770 +msgid "%1 %2 %3" +msgstr "%1 %2 %3" + +#. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) +#: lib/RT/Date.pm:372 +msgid "%1 %2 %3 %4:%5:%6 %7" +msgstr "%1 %2 %3 %4:%5:%6 %7" + +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +#: lib/RT/Ticket_Overlay.pm:3504 +#: lib/RT/Transaction_Overlay.pm:556 +#: lib/RT/Transaction_Overlay.pm:598 +msgid "%1 %2 added" +msgstr "%1 %2 aggiunto" + +#. ($s, $time_unit) +#: lib/RT/Date.pm:333 +msgid "%1 %2 ago" +msgstr "%1 %2 fa" + +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +#: lib/RT/Ticket_Overlay.pm:3510 +#: lib/RT/Transaction_Overlay.pm:563 +msgid "%1 %2 changed to %3" +msgstr "%1 %2 cambiato in %3" + +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +#: lib/RT/Ticket_Overlay.pm:3507 +#: lib/RT/Transaction_Overlay.pm:559 +#: lib/RT/Transaction_Overlay.pm:604 +msgid "%1 %2 deleted" +msgstr "%1 %2 eliminato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 %2 of group %3" +msgstr "%1 %2 del gruppo %3" + +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +#: html/Admin/Elements/EditScrips:43 +#: html/Admin/Elements/ListGlobalScrips:27 +msgid "%1 %2 with template %3" +msgstr "%1 %2 con il modello %3" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "%1 (%2) %3 questo ticket\\n" + +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: html/Search/Listing.html:56 +msgid "%1 - %2 shown" +msgstr "Tickets da %1 a %2" + +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +#: bin/rt-crontool:168 +#: bin/rt-crontool:175 +#: bin/rt-crontool:181 +msgid "%1 - An argument to pass to %2" +msgstr "%1 - Un parametro da passare a %2" + +#. ("--verbose") +#: bin/rt-crontool:184 +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - Lo stato dell'output è stato aggiornato su STDOUT" + +#. ("--action") +#: bin/rt-crontool:178 +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - Specificare l'azione che si vuole eseguire" + +#. ("--condition") +#: bin/rt-crontool:172 +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - Specificare la condizione che si vuole utilizzare" + +#. ("--search") +#: bin/rt-crontool:165 +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - Specificare la ricerca che si vuole utilizzare" + +#. ($self->Id) +#: lib/RT/ScripAction_Overlay.pm:121 +msgid "%1 ScripAction loaded" +msgstr "%1 ScripAction caricato" + +#. ($args{'Value'}, $cf->Name) +#: lib/RT/Ticket_Overlay.pm:3537 +msgid "%1 added as a value for %2" +msgstr "%1 aggiunto(i) come valore di %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 aliases require a TicketId to work on" +msgstr "gli alias %1 necessitano di un TicketId su cui lavorare" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 aliases require a TicketId to work on " +msgstr "gli alias %1 necessitano di un TicketId su cui lavorare" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 aliases require a TicketId to work on (from %2) %3" +msgstr "gli alias %1 necessitano di un TicketId per funzionare con (dopo %2) %3" + +#. ($args{'Base'}) +#. ($args{'Target'}) +#: lib/RT/Link_Overlay.pm:116 +#: lib/RT/Link_Overlay.pm:123 +msgid "%1 appears to be a local object, but can't be found in the database" +msgstr "%1 sembra essere un oggetto locale, ma è introvabile nel database" + +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +#: html/Ticket/Elements/ShowDates:51 +#: lib/RT/Transaction_Overlay.pm:480 +msgid "%1 by %2" +msgstr "%1 per %2" + +#. ($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) +#: lib/RT/Transaction_Overlay.pm:534 +#: lib/RT/Transaction_Overlay.pm:623 +#: lib/RT/Transaction_Overlay.pm:632 +#: lib/RT/Transaction_Overlay.pm:635 +msgid "%1 changed from %2 to %3" +msgstr "%1 cambiato(1) da %2 a %3" + +#: lib/RT/Interface/Web.pm:890 +msgid "%1 could not be set to %2." +msgstr "%1 non può essere impostato a %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "%1 non ha potuto iniziare una transazione (%2)\\n" + +#. ($self) +#: lib/RT/Ticket_Overlay.pm:2816 +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 non ho potuto mettere lo stato a risolto. Il database RT può essere inconsistente." + +#. ($rows) +#: html/Elements/MyTickets:24 +msgid "%1 highest priority tickets I own..." +msgstr "I miei %1 tickets a più alta priorità che possiedo..." + +#. ($rows) +#: html/Elements/MyRequests:24 +msgid "%1 highest priority tickets I requested..." +msgstr "I miei %1 tickets a più alta priorità che ho richiesto..." + +#. ($0) +#: bin/rt-crontool:160 +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "%1 è uno strumento per lavorare sui tickets da uno schedulatore esterno, come cron" + +#. ($principal->Object->Name, $args{'Type'}) +#: lib/RT/Queue_Overlay.pm:742 +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 non è più un %2 per questa coda." + +#. ($principal->Object->Name, $args{'Type'}) +#: lib/RT/Ticket_Overlay.pm:1569 +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 non è più un %2 per questo ticket." + +#. ($args{'Value'}, $cf->Name) +#: lib/RT/Ticket_Overlay.pm:3593 +msgid "%1 is no longer a value for custom field %2" +msgstr "%1 non è più un valore per il campo personalizzato %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "%1 non è un identificativo di coda valido" + +#. ($TimeWorked) +#: html/Ticket/Elements/ShowBasics:35 +msgid "%1 min" +msgstr "%1 min" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 not shown" +msgstr "%1 non mostrato" + +#. (loc($ObjectType =~ /^RT::(.*)$/)) +#: html/User/Elements/DelegateRights:75 +msgid "%1 rights" +msgstr "Diritti di %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 succeeded\\n" +msgstr "%1 riuscito\\n" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "Tipo %1 sconosciuto per $MessageId" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 type unknown for %2" +msgstr "Tipo %1 sconosciuto per %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 was created without a CurrentUser\\n" +msgstr "%1 è stato creato senza un CurrentUser\\n" + +#. (ref $self) +#: lib/RT/Action/ResolveMembers.pm:41 +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 risolverà tutti i membri di un gruppo di ticket risolto." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "%1 bloccherà una BASE [locale] se dipende o è membro di una richeista linkata." + +#. ($self) +#: lib/RT/Transaction_Overlay.pm:432 +msgid "%1: no attachment specified" +msgstr "%1: nessun allegato specificato" + +#. ($size) +#: html/Ticket/Elements/ShowTransaction:101 +msgid "%1b" +msgstr "%1b" + +#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransaction:98 +msgid "%1k" +msgstr "%1k" + +#. ($args{'Status'}) +#: lib/RT/Ticket_Overlay.pm:1139 +msgid "'%1' is an invalid value for status" +msgstr "'%1' è uno stato non valido" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "'%1' not a recognized action. " +msgstr "'%1' non è un'azione conosciuta. " + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "(Check box to delete group member)" +msgstr "(Spunta la casella per cancellare il membro di un gruppo)" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "(Check box to delete scrip)" +msgstr "(Spunta la casella per cancellare uno scrip)" + +#: 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/Ticket/Elements/EditLinks:32 +#: html/Ticket/Elements/EditPeople:45 +#: html/User/Groups/Members.html:54 +msgid "(Check box to delete)" +msgstr "(Spunta la casella per cancellare)" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "(Check boxes to delete)" +msgstr "(Spunta la casella per cancellare)" + +#: html/Ticket/Create.html:177 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Inserire il numero di tickets o gli URL, separati da spazi)" + +#. ($RT::CorrespondAddress) +#. ($RT::CommentAddress) +#: html/Admin/Queues/Modify.html:53 +#: html/Admin/Queues/Modify.html:59 +msgid "(If left blank, will default to %1" +msgstr "Se lasciato vuoto, valore di default : %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "(No Value)" +msgstr "(Nessun Valore)" + +#: html/Admin/Elements/EditCustomFields:32 +#: html/Admin/Elements/ListGlobalCustomFields:31 +msgid "(No custom fields)" +msgstr "Non ci sono campi personalizzati" + +#: html/Admin/Groups/Members.html:49 +#: html/User/Groups/Members.html:52 +msgid "(No members)" +msgstr "(Nessun membro)" + +#: html/Admin/Elements/EditScrips:31 +#: html/Admin/Elements/ListGlobalScrips:31 +msgid "(No scrips)" +msgstr "(Nessuno Scrip)" + +#: html/Admin/Elements/EditTemplates:30 +msgid "(No templates)" +msgstr "Nessun modello" + +#: html/Ticket/Update.html:84 +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 "(Invia per copia nascosta questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" + +#: 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 "(Invia per copia nascosta questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" + +#: 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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email amministrativi separati da virgole. Queste persone <b>riceveranno</b> i successivi aggiornamenti.)" + +#: html/Ticket/Update.html:80 +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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" + +#: 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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" + +#: 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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email separati da virgole. Queste persone <b>riceveranno</b> i successivi aggiornamenti.)" + +#: html/Admin/Groups/index.html:32 +#: html/User/Groups/index.html:32 +msgid "(empty)" +msgstr "(vuoto)" + +#: html/Admin/Users/index.html:38 +msgid "(no name listed)" +msgstr "(nessun nome)" + +#: html/Elements/MyRequests:42 +#: html/Elements/MyTickets:44 +msgid "(no subject)" +msgstr "(nessun oggetto)" + +#: html/Admin/Elements/SelectRights:47 +#: html/Elements/SelectCustomFieldValue:29 +#: html/Ticket/Elements/EditCustomField:58 +#: html/Ticket/Elements/ShowCustomFields:35 +#: lib/RT/Transaction_Overlay.pm:533 +msgid "(no value)" +msgstr "(nessun valore)" + +#: html/Ticket/Elements/EditLinks:115 +msgid "(only one ticket)" +msgstr "(solo un ticket)" + +#: html/Elements/MyRequests:51 +#: html/Elements/MyTickets:54 +msgid "(pending approval)" +msgstr "(in attesa di approvazione)" + +#: html/Elements/MyRequests:53 +#: html/Elements/MyTickets:56 +msgid "(pending other tickets)" +msgstr "(in attea di altri tickets)" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "(requestor's group)" +msgstr "(gruppo del richiedente)" + +#: html/Admin/Users/Modify.html:49 +msgid "(required)" +msgstr "(richiesto)" + +#: html/Ticket/Elements/ShowTransaction:104 +msgid "(untitled)" +msgstr "(senza titolo)" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "25 highest priority tickets I own..." +msgstr "I miei 25 tickets che devo trattare con priorità più alta..." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "I miei 25 tickets che hor ichiesto con priorità più alta..." + +#: html/Ticket/Elements/ShowBasics:31 +msgid "<% $Ticket->Status%>" +msgstr "<% $Ticket->Status%>" + +#: html/Elements/SelectTicketTypes:26 +msgid "<% $_ %>" +msgstr "" + +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +#: docs/design_docs/string-extraction-guide.txt:54 +#: html/Elements/CreateTicket:25 +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"Crea un ticket in\"> %1" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "Un modello vuoto" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "ACE Deleted" +msgstr "ACE Eliminata" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "ACE Loaded" +msgstr "ACE Caricata" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "ACE could not be deleted" +msgstr "l'ACE non è stato possibile elimanarla" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "ACE could not be found" +msgstr "l'ACE non è stato possibile trovarla" + +#: lib/RT/ACE_Overlay.pm:156 +#: lib/RT/Principal_Overlay.pm:180 +msgid "ACE not found" +msgstr "ACE non trovata" + +#: lib/RT/ACE_Overlay.pm:830 +msgid "ACEs can only be created and deleted." +msgstr "Le ACE possono essere solo create e cancellate." + +#: bin/rt-commit-handler:754 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Interruzione per evitare modifiche di ticket involontarie.\\n" + +#: html/User/Elements/Tabs:31 +msgid "About me" +msgstr "A proposito" + +#: html/Admin/Users/Modify.html:79 +msgid "Access control" +msgstr "Controllo di Accesso" + +#: html/Admin/Elements/EditScrip:56 +msgid "Action" +msgstr "Azione" + +#. ($args{'ScripAction'}) +#: lib/RT/Scrip_Overlay.pm:146 +msgid "Action %1 not found" +msgstr "Azione %1 non trovata" + +#: bin/rt-crontool:122 +msgid "Action committed." +msgstr "Azione eseguita." + +#: bin/rt-crontool:118 +msgid "Action prepared..." +msgstr "Azione preparata..." + +#: html/Search/Bulk.html:91 +msgid "Add AdminCc" +msgstr "Aggiungi AdminCC" + +#: html/Search/Bulk.html:89 +msgid "Add Cc" +msgstr "Aggiungi CC" + +#: html/Ticket/Create.html:113 +#: html/Ticket/Update.html:99 +msgid "Add More Files" +msgstr "Aggiungi Altri Files" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Add Next State" +msgstr "Aggiungi lo Stato Sucessivo" + +#: html/Search/Bulk.html:87 +msgid "Add Requestor" +msgstr "Aggiungi il Richiedente" + +#: html/Admin/Elements/AddCustomFieldValue:24 +msgid "Add Value" +msgstr "Aggiungi un Valore" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Add a keyword selection to this queue" +msgstr "Aggiungi una selezione di parole chiave a questa coda" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Add a new a global scrip" +msgstr "Aggiungi un nuovo scrip globale" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Add a scrip to this queue" +msgstr "Aggiungi uno scrip a questa coda" + +#: html/Admin/Global/Scrip.html:54 +msgid "Add a scrip which will apply to all queues" +msgstr "Aggiungi uno scrip da applicare a tutte le code" + +#: html/Search/Bulk.html:117 +msgid "Add comments or replies to selected tickets" +msgstr "Agiungere commenti o repliche ai tickets selezionati" + +#: html/Admin/Groups/Members.html:41 +#: html/User/Groups/Members.html:38 +msgid "Add members" +msgstr "Aggiungi membri" + +#: html/Admin/Queues/People.html:65 +#: html/Ticket/Elements/AddWatchers:27 +msgid "Add new watchers" +msgstr "Aggiungi nuovi osservatori" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "AddNextState" +msgstr "AggiungereStatoSuccessivo" + +#. ($args{'Type'}) +#: lib/RT/Queue_Overlay.pm:642 +msgid "Added principal as a %1 for this queue" +msgstr "Aggiunto gruppo/utente come %1 per questa coda" + +#. ($self->loc($args{'Type'})) +#: lib/RT/Ticket_Overlay.pm:1453 +msgid "Added principal as a %1 for this ticket" +msgstr "Aggiunto gruppo/utente come %1 per questo ticket" + +#: html/Admin/Elements/ModifyUser:75 +#: html/Admin/Users/Modify.html:121 +#: html/User/Prefs.html:87 +msgid "Address1" +msgstr "Inidirizzo1" + +#: html/Admin/Elements/ModifyUser:77 +#: html/Admin/Users/Modify.html:126 +#: html/User/Prefs.html:89 +msgid "Address2" +msgstr "Indirizzo2" + +#: html/Ticket/Create.html:73 +msgid "Admin Cc" +msgstr "Admin Cc" + +#: etc/initialdata:280 +msgid "Admin Comment" +msgstr "Commento Amministrativo" + +#: etc/initialdata:259 +msgid "Admin Correspondence" +msgstr "Corrispondenza Amministrativa " + +#: html/Admin/Queues/index.html:24 +#: html/Admin/Queues/index.html:27 +msgid "Admin queues" +msgstr "Amministra le code" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Admin users" +msgstr "Amministra gli Utenti" + +#: html/Admin/Global/index.html:25 +#: html/Admin/Global/index.html:27 +msgid "Admin/Global configuration" +msgstr "configurazione Amministratore/Globale" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Admin/Groups" +msgstr "Amministra/Gruppi" + +#: html/Admin/Queues/Modify.html:24 +#: html/Admin/Queues/Modify.html:28 +msgid "Admin/Queue/Basics" +msgstr "Amministra/Code/Base" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "AdminAllPersonalGroups" +msgstr "AmministraTuttiIGruppiPersonali" + +#: etc/initialdata:56 +#: html/Ticket/Elements/ShowPeople:38 +#: html/Ticket/Update.html:49 +#: lib/RT/ACE_Overlay.pm:88 +msgid "AdminCc" +msgstr "AdminCc" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "AdminComment" +msgstr "CommentoAmministratore" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "AdminCorrespondence" +msgstr "CorrispondenzaAmministratore" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "AdminCustomFields" +msgstr "AmministraCampiPersonalizzati" + +#: lib/RT/Group_Overlay.pm:145 +msgid "AdminGroup" +msgstr "AmministraGruppi" + +#: lib/RT/Group_Overlay.pm:147 +msgid "AdminGroupMembership" +msgstr "AmministraAppartenenzaGruppi" + +#: lib/RT/System.pm:58 +msgid "AdminOwnPersonalGroups" +msgstr "AmministraPropriGruppiPersonali" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "AdminQueue" +msgstr "AmministraCode" + +#: lib/RT/System.pm:59 +msgid "AdminUsers" +msgstr "AmministraUtenti" + +#: html/Admin/Queues/People.html:47 +#: html/Ticket/Elements/EditPeople:53 +msgid "Administrative Cc" +msgstr "Cc Amministrativa" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Admins" +msgstr "Amministratori" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Advanced Search" +msgstr "Ricerca avanzata" + +#: html/Elements/SelectDateRelation:35 +msgid "After" +msgstr "Dopo" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Age" +msgstr "Età" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Alias" +msgstr "" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Alias for" +msgstr "Alias per" + +#: html/Admin/Elements/EditCustomFields:95 +msgid "All Custom Fields" +msgstr "Tutti i campi personalizzati" + +#: html/Admin/Queues/index.html:52 +msgid "All Queues" +msgstr "Tutte le code" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "Invia sempre un messaggio al richiedente inipendentemente dal mittente" + +#: html/Elements/Tabs:55 +msgid "Approval" +msgstr "Approvazione" + +#. ($Ticket->Id, $Ticket->Subject) +#. ($ticket->id, $msg) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +#: html/Approvals/Display.html:45 +#: html/Approvals/Elements/ShowDependency:41 +#: html/Approvals/index.html:64 +msgid "Approval #%1: %2" +msgstr "Approvazione n°%1: %2" + +#. ($ticket->Id) +#: html/Approvals/index.html:53 +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "Approvazione n°%1: Note non registrate a causa di un errore di sistema" + +#. ($ticket->Id) +#: html/Approvals/index.html:51 +msgid "Approval #%1: Notes recorded" +msgstr "Approvazione n°%1: Note registrate" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Approval Details" +msgstr "Dettagli dell'approvazione" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Approval diagram" +msgstr "Diagramma dell'approvazione" + +#: html/Approvals/Elements/Approve:43 +msgid "Approve" +msgstr "Approvare" + +#: etc/initialdata:437 +#: etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "Note dell'approvatore: %1" + +#: lib/RT/Date.pm:413 +msgid "Apr." +msgstr "Apr." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "April" +msgstr "Aprile" + +#: html/Elements/SelectSortOrder:34 +msgid "Ascending" +msgstr "Ascendente" + +#: html/Search/Bulk.html:126 +#: html/SelfService/Update.html:32 +#: html/Ticket/ModifyAll.html:82 +#: html/Ticket/Update.html:99 +msgid "Attach" +msgstr "Allegato" + +#: html/SelfService/Create.html:64 +#: html/Ticket/Create.html:109 +msgid "Attach file" +msgstr "Allegare un file" + +#: html/Ticket/Create.html:97 +#: html/Ticket/Update.html:88 +msgid "Attached file" +msgstr "File allegato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Attachment '%1' could not be loaded" +msgstr "L'allegato '%1' non può essere caricato" + +#: lib/RT/Transaction_Overlay.pm:440 +msgid "Attachment created" +msgstr "Allegato creato" + +#: lib/RT/Tickets_Overlay.pm:1188 +msgid "Attachment filename" +msgstr "Nome file dell'allegato" + +#: html/Ticket/Elements/ShowAttachments:25 +msgid "Attachments" +msgstr "Allegati" + +#: lib/RT/Date.pm:417 +msgid "Aug." +msgstr "Ago." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "August" +msgstr "Agosto" + +#: html/Admin/Elements/ModifyUser:65 +msgid "AuthSystem" +msgstr "AuthSystem" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "RispostaAutomatica" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "Risposta automatica ai richiedenti" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "AutoreplyToRequestors" +msgstr "RispostaAutomaticaAiRichiedenti" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "Firma PGP non valida: %1\\n" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "Id di allegato errato. Impossibile trovare l'allegato '%1'\\n" + +#. ($val) +#: bin/rt-commit-handler:826 +msgid "Bad data in %1" +msgstr "Dati incorretti in %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "Numero di transazione incorretto per l'allegato. %1 dovrebbe essere %2\\n" + +#: html/Admin/Elements/GroupTabs:38 +#: html/Admin/Elements/QueueTabs:38 +#: html/Admin/Elements/UserTabs:37 +#: html/Ticket/Elements/Tabs:89 +#: html/User/Elements/GroupTabs:37 +msgid "Basics" +msgstr "Essenziale" + +#: html/Ticket/Update.html:82 +msgid "Bcc" +msgstr "Bcc" + +#: html/Admin/Elements/EditScrip:87 +#: html/Admin/Global/GroupRights.html:84 +#: html/Admin/Global/Template.html:45 +#: html/Admin/Global/UserRights.html:53 +#: html/Admin/Groups/GroupRights.html:72 +#: html/Admin/Groups/Members.html:80 +#: html/Admin/Groups/Modify.html:55 +#: html/Admin/Groups/UserRights.html:54 +#: html/Admin/Queues/GroupRights.html:84 +#: html/Admin/Queues/Template.html:44 +#: html/Admin/Queues/UserRights.html:53 +#: html/User/Groups/Modify.html:55 +msgid "Be sure to save your changes" +msgstr "Assicurarsi di salvare le modifiche" + +#: html/Elements/SelectDateRelation:33 +#: lib/RT/CurrentUser.pm:319 +msgid "Before" +msgstr "Prima" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Begin Approval" +msgstr "Inizio dell'approvazione" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "Vuoto" + +#: html/Search/Listing.html:78 +msgid "Bookmarkable URL for this search" +msgstr "URL predefinito per questa ricerca" + +#: html/Ticket/Elements/ShowHistory:38 +#: html/Ticket/Elements/ShowHistory:44 +msgid "Brief headers" +msgstr "Intestazioni brevi" + +#: html/Search/Bulk.html:24 +#: html/Search/Bulk.html:25 +msgid "Bulk ticket update" +msgstr "Modifica di massa dei tickets" + +#: lib/RT/User_Overlay.pm:1351 +msgid "Can not modify system users" +msgstr "Gli utenti di sistema non possono essere modificati" + +#: lib/RT/Queue_Overlay.pm:66 +msgid "Can this principal see this queue" +msgstr "Il gruppo/utente può vedere questa coda" + +#: lib/RT/CustomField_Overlay.pm:205 +msgid "Can't add a custom field value without a name" +msgstr "Impossibile aggiungere un valore di campo personalizzato senza un nome" + +#: lib/RT/Link_Overlay.pm:131 +msgid "Can't link a ticket to itself" +msgstr "Non è possibile collegare un ticket a se stesso" + +#: lib/RT/Ticket_Overlay.pm:2793 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "Impossibile unire un ticket ad un ticket già unito. Non dovrebbe mai comparire questo errore" + +#: lib/RT/Ticket_Overlay.pm:2611 +#: lib/RT/Ticket_Overlay.pm:2680 +msgid "Can't specifiy both base and target" +msgstr "Impossibile specificare sia la base che il target" + +#. ($msg) +#: html/autohandler:98 +msgid "Cannot create user: %1" +msgstr "Impossibile creare l'utente: %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:44 +#: html/Ticket/Update.html:77 +#: lib/RT/ACE_Overlay.pm:87 +msgid "Cc" +msgstr "Cc" + +#: html/SelfService/Prefs.html:30 +msgid "Change password" +msgstr "Cambiare la passwrd" + +#: html/Ticket/Create.html:100 +#: html/Ticket/Update.html:91 +msgid "Check box to delete" +msgstr "Spunta la casella per eliminare" + +#: html/Admin/Elements/SelectRights:30 +msgid "Check box to revoke right" +msgstr "Spunta la casella per revocare i diritti" + +#: html/Ticket/Create.html:182 +#: html/Ticket/Elements/EditLinks:130 +#: html/Ticket/Elements/EditLinks:68 +#: html/Ticket/Elements/ShowLinks:56 +msgid "Children" +msgstr "Figli" + +#: html/Admin/Elements/ModifyUser:79 +#: html/Admin/Users/Modify.html:131 +#: html/User/Prefs.html:91 +msgid "City" +msgstr "Città" + +#: html/Ticket/Elements/ShowDates:46 +msgid "Closed" +msgstr "Chiuso" + +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "Tickets Chiusi" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Closed requests" +msgstr "Richieste chiuse" + +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "Tickets chiusi" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Code" +msgstr "" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Command not understood!\\n" +msgstr "Comando non riconosciuto! \\n" + +#: html/Ticket/Elements/ShowTransaction:178 +#: html/Ticket/Elements/Tabs:152 +msgid "Comment" +msgstr "Commento" + +#: html/Admin/Elements/ModifyQueue:44 +#: html/Admin/Queues/Modify.html:57 +msgid "Comment Address" +msgstr "Inidirizzo di Commento" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Comment not recorded" +msgstr "Commento non registrato" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Comment on tickets" +msgstr "Commento sui tickets" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "CommentOnTicket" +msgstr "CommentoSuiTickets" + +#: html/Admin/Elements/ModifyUser:34 +msgid "Comments" +msgstr "Commenti" + +#: html/Ticket/ModifyAll.html:69 +#: html/Ticket/Update.html:69 +msgid "Comments (Not sent to requestors)" +msgstr "Commenti (Non inviati ai richiedenti)" + +#: html/Search/Bulk.html:121 +msgid "Comments (not sent to requestors)" +msgstr "Commenti (non inviati ai richiedenti)" + +#. ($name) +#: html/Elements/ViewUser:26 +msgid "Comments about %1" +msgstr "Commenti su %1" + +#: html/Admin/Users/Modify.html:184 +#: html/Ticket/Elements/ShowRequestor:43 +msgid "Comments about this user" +msgstr "Commenti su questo utente" + +#: lib/RT/Transaction_Overlay.pm:542 +msgid "Comments added" +msgstr "Commenti aggiunti" + +#: lib/RT/Action/Generic.pm:139 +msgid "Commit Stubbed" +msgstr "tr(Commit Stubbed)" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Compile Restrictions" +msgstr "Restrizioni di compilazione" + +#: html/Admin/Elements/EditScrip:40 +msgid "Condition" +msgstr "Condizione" + +#: bin/rt-crontool:108 +msgid "Condition matches..." +msgstr "La condizione soddisfa..." + +#: lib/RT/Scrip_Overlay.pm:159 +msgid "Condition not found" +msgstr "Condizione non trovata" + +#: html/Elements/Tabs:49 +msgid "Configuration" +msgstr "Configurazione" + +#: html/SelfService/Prefs.html:32 +msgid "Confirm" +msgstr "Confermare" + +#: html/Admin/Elements/ModifyUser:59 +msgid "ContactInfoSystem" +msgstr "ContactInfoSystem" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "La data di contatto '%1' non può essere analizzata" + +#: html/Admin/Elements/ModifyTemplate:43 +#: html/Ticket/ModifyAll.html:86 +msgid "Content" +msgstr "Contenuto" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Coould not create group" +msgstr "Non è stato possibile creare il gruppo" + +#: etc/initialdata:271 +msgid "Correspondence" +msgstr "Corrispondenza" + +#: html/Admin/Elements/ModifyQueue:38 +#: html/Admin/Queues/Modify.html:50 +msgid "Correspondence Address" +msgstr "Inidirizzo di corrispondenza" + +#: lib/RT/Transaction_Overlay.pm:538 +msgid "Correspondence added" +msgstr "Corrispondenza aggiunta" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Correspondence not recorded" +msgstr "Corrispondenza non registrata" + +#: lib/RT/Ticket_Overlay.pm:3524 +msgid "Could not add new custom field value for ticket. " +msgstr "Impossibile aggiungere un nuovo valore di campo personalizzato a questo ticket. " + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Could not add new custom field value for ticket. %1 " +msgstr "Il valore di campo personalizzato non è stato possibile aggiungerlo. %1" + +#: lib/RT/Ticket_Overlay.pm:3030 +#: lib/RT/Ticket_Overlay.pm:3038 +#: lib/RT/Ticket_Overlay.pm:3054 +msgid "Could not change owner. " +msgstr "Impossibile cambiare il proprietario. " + +#. ($msg) +#: html/Admin/Elements/EditCustomField:84 +#: html/Admin/Elements/EditCustomFields:165 +msgid "Could not create CustomField" +msgstr "Impossibile creare il campo personalizzato" + +#: html/User/Groups/Modify.html:76 +#: lib/RT/Group_Overlay.pm:473 +#: lib/RT/Group_Overlay.pm:480 +msgid "Could not create group" +msgstr "Impossibile creare il gruppo" + +#. ($msg) +#: html/Admin/Global/Template.html:74 +#: html/Admin/Queues/Template.html:71 +msgid "Could not create template: %1" +msgstr "Impossibile creare il modello : %1" + +#: lib/RT/Ticket_Overlay.pm:1072 +#: lib/RT/Ticket_Overlay.pm:333 +msgid "Could not create ticket. Queue not set" +msgstr "Impossibile creare il ticket. Queue non impostata" + +#: lib/RT/User_Overlay.pm:207 +#: lib/RT/User_Overlay.pm:219 +#: lib/RT/User_Overlay.pm:237 +#: lib/RT/User_Overlay.pm:421 +msgid "Could not create user" +msgstr "Impossibile creare l'utente" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Could not create watcher for requestor" +msgstr "Impossibile creare l'osservatore per il richiedente" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Could not find a ticket with id %1" +msgstr "Impossibile trovare il ticket numero %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Could not find group %1." +msgstr "Impossibile trovare il gruppo %1." + +#: lib/RT/Queue_Overlay.pm:620 +#: lib/RT/Ticket_Overlay.pm:1421 +msgid "Could not find or create that user" +msgstr "Impossibile trovare o creare questo utente" + +#: lib/RT/Queue_Overlay.pm:681 +#: lib/RT/Ticket_Overlay.pm:1500 +msgid "Could not find that principal" +msgstr "Impossibile trovare questo gruppo/utente" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Could not find user %1." +msgstr "Impossibile trovare l'utente %1." + +#: html/Admin/Groups/Members.html:87 +#: html/User/Groups/Members.html:89 +#: html/User/Groups/Modify.html:81 +msgid "Could not load group" +msgstr "Impossibile caricare questo gruppo" + +#. ($args{'Type'}) +#: lib/RT/Queue_Overlay.pm:640 +msgid "Could not make that principal a %1 for this queue" +msgstr "Impossibile rendere questo gruppo/utente un %1 per questa coda" + +#. ($self->loc($args{'Type'})) +#: lib/RT/Ticket_Overlay.pm:1442 +msgid "Could not make that principal a %1 for this ticket" +msgstr "Impossibile rendere questo gruppo/utente un %1 per questo ticket" + +#. ($args{'Type'}) +#: lib/RT/Queue_Overlay.pm:739 +msgid "Could not remove that principal as a %1 for this queue" +msgstr "Impossibile eliminare questo gruppo/utente come un %1 per questa coda" + +#. ($args{'Type'}) +#: lib/RT/Ticket_Overlay.pm:1558 +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "Impossibile eliminare questo gruppo/utente come un %1 per questo ticket" + +#: lib/RT/Group_Overlay.pm:984 +msgid "Couldn't add member to group" +msgstr "Impossibile aggiungere un membro a questo gruppo" + +#. ($Msg) +#: lib/RT/Ticket_Overlay.pm:3534 +#: lib/RT/Ticket_Overlay.pm:3590 +msgid "Couldn't create a transaction: %1" +msgstr "Impossibile creare una transazione : %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Couldn't figure out what to do from gpg's reply\\n" +msgstr "Impossibile capire che cosa fare con questa risposta gpg\\n" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Couldn't find group\\n" +msgstr "Gruppo introvabile\\n" + +#: lib/RT/Interface/Web.pm:899 +msgid "Couldn't find row" +msgstr "Riga introvabile" + +#: lib/RT/Group_Overlay.pm:958 +msgid "Couldn't find that principal" +msgstr "Gruppo/utente introvabile" + +#: lib/RT/CustomField_Overlay.pm:239 +msgid "Couldn't find that value" +msgstr "Valore introvabile" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Couldn't find that watcher" +msgstr "Osservatore introvabile" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Couldn't find user\\n" +msgstr "Utente introvabile\\n" + +#. ($self->Id) +#: lib/RT/CurrentUser.pm:111 +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Impossibile caricare %1 dal database degli utenti.\\n" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Couldn't load KeywordSelects." +msgstr "KeywordSelects non è stato possibile caricarlo" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "Impossibile caricare il file di configurazione RT '%1' %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Couldn't load Scrips." +msgstr "Impossibile caricare gli Scrips" + +#. ($id) +#: html/Admin/Groups/GroupRights.html:87 +#: html/Admin/Groups/UserRights.html:74 +msgid "Couldn't load group %1" +msgstr "Impossibile caricare il gruppo %1" + +#: lib/RT/Link_Overlay.pm:174 +#: lib/RT/Link_Overlay.pm:183 +#: lib/RT/Link_Overlay.pm:210 +msgid "Couldn't load link" +msgstr "Impossibile caricare il link" + +#. ($id) +#: html/Admin/Elements/EditCustomFields:146 +#: html/Admin/Queues/People.html:120 +msgid "Couldn't load queue" +msgstr "Impossibile caricare la coda" + +#. ($id) +#: html/Admin/Queues/GroupRights.html:99 +#: html/Admin/Queues/UserRights.html:71 +msgid "Couldn't load queue %1" +msgstr "Impossibile caricare la coda %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Couldn't load scrip" +msgstr "Impossibile caricare lo Scrip" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Couldn't load template" +msgstr "Impossibile caricare il modello" + +#. ($id) +#: html/Admin/Users/Prefs.html:78 +msgid "Couldn't load that user (%1)" +msgstr "Impossibile caricare questo utente (%1)" + +#. ($id) +#: html/SelfService/Display.html:108 +msgid "Couldn't load ticket '%1'" +msgstr "Impossibile caricare il ticket '%1'" + +#: html/Admin/Elements/ModifyUser:85 +#: html/Admin/Users/Modify.html:148 +#: html/User/Prefs.html:97 +msgid "Country" +msgstr "Stato" + +#: html/Admin/Elements/CreateUserCalled:25 +#: html/Ticket/Create.html:134 +#: html/Ticket/Create.html:194 +msgid "Create" +msgstr "Crea" + +#: etc/initialdata:128 +msgid "Create Tickets" +msgstr "Crea tickets" + +#: html/Admin/Elements/EditCustomField:74 +msgid "Create a CustomField" +msgstr "Crea un campo Personalizzato" + +#. ($QueueObj->Name()) +#: html/Admin/Queues/CustomField.html:47 +msgid "Create a CustomField for queue %1" +msgstr "Crea un campo Custom per la coda %1" + +#: html/Admin/Global/CustomField.html:47 +msgid "Create a CustomField which applies to all queues" +msgstr "Crea un campo Personalizzato valido per tutte le code" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Create a new Custom Field" +msgstr "Crea un nuovo campo Personalizzato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Create a new global scrip" +msgstr "Crea un nuovo scrip globale" + +#: html/Admin/Groups/Modify.html:66 +#: html/Admin/Groups/Modify.html:92 +msgid "Create a new group" +msgstr "Crea un nuovo gruppo" + +#: html/User/Groups/Modify.html:66 +#: html/User/Groups/Modify.html:91 +msgid "Create a new personal group" +msgstr "Crea un nuovo gruppo personale" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Create a new queue" +msgstr "Crea una nuova coda" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Create a new scrip" +msgstr "Crea un nuovo scrip" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Create a new template" +msgstr "Crea un nuovo modello" + +#: html/Ticket/Create.html:24 +#: html/Ticket/Create.html:27 +#: html/Ticket/Create.html:35 +msgid "Create a new ticket" +msgstr "Crea un nuovo ticket" + +#: html/Admin/Users/Modify.html:213 +#: html/Admin/Users/Modify.html:240 +msgid "Create a new user" +msgstr "Crea un nuovo utente" + +#: html/Admin/Queues/Modify.html:102 +msgid "Create a queue" +msgstr "Crea una coda" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Create a queue called" +msgstr "Crea una nuova coda chiamata" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Create a request" +msgstr "Crea una richiesta" + +#. ($QueueObj->Name) +#: html/Admin/Queues/Scrip.html:58 +msgid "Create a scrip for queue %1" +msgstr "Crea uno scrip per la coda %1" + +#: html/Admin/Global/Template.html:68 +#: html/Admin/Queues/Template.html:64 +msgid "Create a template" +msgstr "Crea un modello" + +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "Crea un ticket" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Create failed: %1 / %2 / %3 " +msgstr "Eccezione durante la creazione: %1 / %2 / %3" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Create failed: %1/%2/%3" +msgstr "Eccezione durante la creazione: %1/%2/%3" + +#: etc/initialdata:130 +msgid "Create new tickets based on this scrip's template" +msgstr "Creare nuovi tickets basati su questo modello di scrip" + +#: html/SelfService/Create.html:77 +msgid "Create ticket" +msgstr "Crea un ticket" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Create tickets in this queue" +msgstr "Crea dei tickets in questa coda" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Create, delete and modify custom fields" +msgstr "Crea, elimina e modifica campi personalizzati" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Create, delete and modify queues" +msgstr "Crea, elimina e modifica le code" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Create, delete and modify the members of any user's personal groups" +msgstr "Crea, elimina e modifica i membri dei gruppi personali di un qualunque utente" + +#: lib/RT/System.pm:58 +msgid "Create, delete and modify the members of personal groups" +msgstr "Crea, elimina e modifica i membri dei gruppi personali " + +#: lib/RT/System.pm:59 +msgid "Create, delete and modify users" +msgstr "Crea, elimina e modifica gli utenti" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "CreateTicket" +msgstr "CreaTicket" + +#: html/Elements/SelectDateType:25 +#: html/Ticket/Elements/ShowDates:26 +#: lib/RT/Ticket_Overlay.pm:1166 +msgid "Created" +msgstr "Creato" + +#. ($CustomFieldObj->Name()) +#: html/Admin/Elements/EditCustomField:87 +msgid "Created CustomField %1" +msgstr "Campo Personalizzato %1 creato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Created template %1" +msgstr "Modello %1 creato" + +#: html/Ticket/Elements/EditLinks:27 +msgid "Current Relationships" +msgstr "Relazioni attuali" + +#: html/Admin/Elements/EditScrips:29 +msgid "Current Scrips" +msgstr "Scrips attuali" + +#: html/Admin/Groups/Members.html:38 +#: html/User/Groups/Members.html:41 +msgid "Current members" +msgstr "Membri attuali" + +#: html/Admin/Elements/SelectRights:28 +msgid "Current rights" +msgstr "Diritti attuali" + +#: html/Search/Listing.html:70 +msgid "Current search criteria" +msgstr "Criterio di ricerca corrente" + +#: html/Admin/Queues/People.html:40 +#: html/Ticket/Elements/EditPeople:44 +msgid "Current watchers" +msgstr "Osservatori attuali" + +#. ($CustomField) +#: html/Admin/Global/CustomField.html:54 +msgid "Custom Field #%1" +msgstr "Campo Personalizzato n°%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 "Campi Personalizzati" + +#: html/Admin/Elements/EditScrip:72 +msgid "Custom action cleanup code" +msgstr "Programma di pulizia dell'azione personalizzata" + +#: html/Admin/Elements/EditScrip:64 +msgid "Custom action preparation code" +msgstr "Programma di preparazione dell'azione personalizzata" + +#: html/Admin/Elements/EditScrip:48 +msgid "Custom condition" +msgstr "Condizione personalizzata" + +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: lib/RT/Tickets_Overlay.pm:1617 +msgid "Custom field %1 %2 %3" +msgstr "Campi personalizzati %1 %2 %3" + +#. ($CF->Name) +#: lib/RT/Tickets_Overlay.pm:1612 +msgid "Custom field %1 has a value." +msgstr "Il campo personalizzato %1 ha un valore" + +#. ($CF->Name) +#: lib/RT/Tickets_Overlay.pm:1609 +msgid "Custom field %1 has no value." +msgstr "Il campo personalizzato %1 non ha valore" + +#. ($args{'Field'}) +#: lib/RT/Ticket_Overlay.pm:3426 +msgid "Custom field %1 not found" +msgstr "Il campo personalizzato %1 è introvabile" + +#: html/Admin/Elements/EditCustomFields:196 +msgid "Custom field deleted" +msgstr "Campo Personalizzato cancellato" + +#: lib/RT/Ticket_Overlay.pm:3576 +msgid "Custom field not found" +msgstr "Il campo personalizzato è introvabile" + +#. ($args{'Content'}, $self->Name) +#: lib/RT/CustomField_Overlay.pm:349 +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "Il valore del campo personalizzato %1 non è stato possibile trovarlo per il campo personalizzato %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "Il valore del campo personalizzato è stato modificato da %1 à %2" + +#: lib/RT/CustomField_Overlay.pm:249 +msgid "Custom field value could not be deleted" +msgstr "Il valore del campo personalizzato non è stato possibile eliminarlo" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Custom field value could not be found" +msgstr "Il valore del campo personalizzato non è stato possibile trovarlo" + +#: lib/RT/CustomField_Overlay.pm:247 +#: lib/RT/CustomField_Overlay.pm:357 +msgid "Custom field value deleted" +msgstr "Il valore del vampo personalizzato è stato eliminato" + +#: lib/RT/Transaction_Overlay.pm:547 +msgid "CustomField" +msgstr "CampoPersonalizzato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Data error" +msgstr "Errore nei dati" + +#: html/SelfService/Display.html:38 +#: html/Ticket/Create.html:160 +#: html/Ticket/Elements/ShowSummary:54 +#: html/Ticket/Elements/Tabs:92 +#: html/Ticket/ModifyAll.html:43 +msgid "Dates" +msgstr "Date" + +#: lib/RT/Date.pm:421 +msgid "Dec." +msgstr "Dic." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "December" +msgstr "Dicembre" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Default Autoresponse Template" +msgstr "Modello di default per la risposta automatica" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "Modello di default per la risposta automatica" + +#: etc/initialdata:281 +msgid "Default admin comment template" +msgstr "Modello di default per il commento amministrativo" + +#: etc/initialdata:260 +msgid "Default admin correspondence template" +msgstr "Modello di default per la corrispondenza amministrativa" + +#: etc/initialdata:272 +msgid "Default correspondence template" +msgstr "Modello di default per la corrispondenza" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "Modello di default per la transazione" + +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: lib/RT/Transaction_Overlay.pm:642 +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "Defaut: %1/%2 modificato da %3 à %4" + +#: html/User/Delegation.html:24 +#: html/User/Delegation.html:27 +msgid "Delegate rights" +msgstr "Delega i diritti" + +#: lib/RT/System.pm:62 +msgid "Delegate specific rights which have been granted to you." +msgstr "Delega dei diritti specifici che ti sono stati accordati" + +#: lib/RT/System.pm:62 +msgid "DelegateRights" +msgstr "DelegaDiritti" + +#: html/User/Elements/Tabs:37 +msgid "Delegation" +msgstr "Delega" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Delete" +msgstr "Elimina" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "Delete tickets" +msgstr "Elimina dei tickets" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "DeleteTicket" +msgstr "EliminaTicket" + +#: lib/RT/Transaction_Overlay.pm:186 +msgid "Deleting this object could break referential integrity" +msgstr "Eliminare quest'oggetto può interrompere l'integrità referenziale" + +#: lib/RT/Queue_Overlay.pm:291 +msgid "Deleting this object would break referential integrity" +msgstr "Eliminare quest'oggetto interomperà l'integrità referenziale" + +#: lib/RT/User_Overlay.pm:437 +msgid "Deleting this object would violate referential integrity" +msgstr "Eliminare quest'oggetto violerà l'integrità referenziale" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Deleting this object would violate referential integrity." +msgstr "Eliminare quest'oggetto violerà l'integrità referenziale" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Deleting this object would violate referential integrity. That's bad." +msgstr "Eliminare quest'oggetto violerà l'integrità referenziale. Malissimo!" + +#: html/Approvals/Elements/Approve:44 +msgid "Deny" +msgstr "Negare" + +#: html/Ticket/Create.html:180 +#: html/Ticket/Elements/EditLinks:122 +#: html/Ticket/Elements/EditLinks:46 +#: html/Ticket/Elements/ShowDependencies:31 +#: html/Ticket/Elements/ShowLinks:36 +msgid "Depended on by" +msgstr "Usato come dipendenza da" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Dependencies: \\n" +msgstr "Dipendenze : \\n" + +#: html/Elements/SelectLinkType:26 +#: html/Ticket/Create.html:179 +#: html/Ticket/Elements/EditLinks:118 +#: html/Ticket/Elements/EditLinks:35 +#: html/Ticket/Elements/ShowDependencies:24 +#: html/Ticket/Elements/ShowLinks:26 +msgid "Depends on" +msgstr "Dipende da" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "DependsOn" +msgstr "DipendeDa" + +#: html/Elements/SelectSortOrder:34 +msgid "Descending" +msgstr "Discendente" + +#: html/SelfService/Create.html:72 +#: html/Ticket/Create.html:118 +msgid "Describe the issue below" +msgstr "Descrivere il problema qui sotto" + +#: html/Admin/Elements/AddCustomFieldValue:35 +#: html/Admin/Elements/EditCustomField:38 +#: html/Admin/Elements/EditScrip:33 +#: html/Admin/Elements/ModifyQueue:35 +#: html/Admin/Elements/ModifyTemplate:35 +#: html/Admin/Groups/Modify.html:48 +#: html/Admin/Queues/Modify.html:47 +#: html/Elements/SelectGroups:26 +#: html/User/Groups/Modify.html:48 +msgid "Description" +msgstr "Descrizione" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Details" +msgstr "Dettagli" + +#: html/Ticket/Elements/Tabs:84 +msgid "Display" +msgstr "Mostra" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "Display Access Control List" +msgstr "Mostra la Lista Controllo Accessi" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "Display Scrip templates for this queue" +msgstr "Mostra i modelli di Scrips per questa coda" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "Display Scrips for this queue" +msgstr "Mostra gli Scrips per questa coda" + +#: html/Ticket/Elements/ShowHistory:34 +msgid "Display mode" +msgstr "Modalità visualizzazione" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Display ticket #%1" +msgstr "Mostra il ticket n°%1" + +#: lib/RT/System.pm:53 +msgid "Do anything and everything" +msgstr "Fare di tutto e non importa cosa" + +#: html/Elements/Refresh:29 +msgid "Don't refresh this page." +msgstr "Non aggiornare questa pagina." + +#: html/Search/Elements/PickRestriction:113 +msgid "Don't show search results" +msgstr "Non mostrare i risultati della ricerca" + +#: html/Ticket/Elements/ShowTransaction:104 +msgid "Download" +msgstr "Download" + +#: html/Elements/SelectDateType:31 +#: html/Ticket/Create.html:166 +#: html/Ticket/Elements/EditDates:44 +#: html/Ticket/Elements/ShowDates:42 +#: lib/RT/Ticket_Overlay.pm:1170 +msgid "Due" +msgstr "Termine" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "La data termine '%1' non è stata interpretata" + +#. ($1, $msg) +#: bin/rt-commit-handler:753 +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "ERRORE: impossibile caricare il ticket '%1' : %2.\\n" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Edit" +msgstr "Modifica" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Edit Conditions" +msgstr "Modifica Condizioni" + +#. ($Queue->Name) +#: html/Admin/Queues/CustomFields.html:44 +msgid "Edit Custom Fields for %1" +msgstr "Modifica i Campi Personalizzati per %1" + +#: html/Ticket/ModifyLinks.html:35 +msgid "Edit Relationships" +msgstr "Modifica Relazioni" + +#. ($QueueObj->Name) +#: html/Admin/Queues/Templates.html:41 +msgid "Edit Templates for queue %1" +msgstr "Modifica i modelli per la coda %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Edit keywords" +msgstr "Modifica parole chiave" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Edit scrips" +msgstr "Modifica scrips" + +#: html/Admin/Global/index.html:45 +msgid "Edit system templates" +msgstr "Modifca i modelli di sistema" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Edit templates for %1" +msgstr "Modifica i modelli per %1" + +#. ($QueueObj->Name) +#. ($QueueObj->Id) +#: html/Admin/Elements/ModifyQueue:24 +#: html/Admin/Queues/Modify.html:117 +msgid "Editing Configuration for queue %1" +msgstr "Modifica la Configurazione per la coda %1" + +#. ($UserObj->Name) +#: html/Admin/Elements/ModifyUser:24 +msgid "Editing Configuration for user %1" +msgstr "Modifica la Configurazione per l'utente %1" + +#. ($CustomFieldObj->Name()) +#: html/Admin/Elements/EditCustomField:90 +msgid "Editing CustomField %1" +msgstr "Modifica il CampoPersonalizzato %1" + +#. ($Group->Name) +#: html/Admin/Groups/Members.html:31 +msgid "Editing membership for group %1" +msgstr "Modifica i membri per il gruppo %1" + +#. ($Group->Name) +#: html/User/Groups/Members.html:128 +msgid "Editing membership for personal group %1" +msgstr "Modifica i membri per il gruppo personale %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Editing template %1" +msgstr "Modifica il modello %1" + +#: lib/RT/Ticket_Overlay.pm:2621 +#: lib/RT/Ticket_Overlay.pm:2689 +msgid "Either base or target must be specified" +msgstr "Uno almeno tra base e target deve essere specificato" + +#: html/Admin/Users/Modify.html:52 +#: html/Admin/Users/Prefs.html:45 +#: html/Elements/SelectUsers:26 +#: html/Ticket/Elements/AddWatchers:55 +#: html/User/Prefs.html:41 +msgid "Email" +msgstr "Email" + +#: lib/RT/User_Overlay.pm:187 +msgid "Email address in use" +msgstr "Inidirizzo email in uso" + +#: html/Admin/Elements/ModifyUser:41 +msgid "EmailAddress" +msgstr "IndirizzoEmail" + +#: html/Admin/Elements/ModifyUser:53 +msgid "EmailEncoding" +msgstr "EmailEncoding" + +#: html/Admin/Elements/EditCustomField:50 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "Abilitato (Togliere il segno di spunta disabilita questo campo personalizzato)" + +#: html/Admin/Groups/Modify.html:52 +#: html/User/Groups/Modify.html:52 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "Abilitato (Togliere il segno di spunta disabilita questo gruppo)" + +#: html/Admin/Queues/Modify.html:83 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Abilitato (Togliere il segno di spunta disabilita questa coda)" + +#: html/Admin/Elements/EditCustomFields:98 +msgid "Enabled Custom Fields" +msgstr "Campi Personalizzati Abilitati" + +#: html/Admin/Queues/index.html:55 +msgid "Enabled Queues" +msgstr "Code Abilitate" + +#. (loc_fuzzy($msg)) +#: html/Admin/Elements/EditCustomField:106 +#: html/Admin/Groups/Modify.html:116 +#: html/Admin/Queues/Modify.html:139 +#: html/Admin/Users/Modify.html:282 +#: html/User/Groups/Modify.html:116 +msgid "Enabled status %1" +msgstr "Stato %1 abilitato" + +#: lib/RT/CustomField_Overlay.pm:427 +msgid "Enter multiple values" +msgstr "Inserire valori multipli" + +#: lib/RT/CustomField_Overlay.pm:424 +msgid "Enter one value" +msgstr "Inserire un valore" + +#: html/Ticket/Elements/EditLinks:111 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Inserire tickets o URI di tickets da collegare. Separare più valori con spazi." + +#: html/Elements/Login:38 +#: html/SelfService/Error.html:24 +#: html/SelfService/Error.html:25 +msgid "Error" +msgstr "Errore" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Error adding watcher" +msgstr "Errore cercando di aggiungere un osservatore" + +#: lib/RT/Queue_Overlay.pm:554 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Errore nei parametri di Queue->AddWatcher" + +#: lib/RT/Queue_Overlay.pm:712 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Errore nei parametri di Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1355 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Errore nei parametri di Ticket->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1531 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Errore nei parametri di Ticket->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "Chiunque" + +#: bin/rt-crontool:193 +msgid "Example:" +msgstr "Esempio:" + +#: html/Admin/Elements/ModifyUser:63 +msgid "ExternalAuthId" +msgstr "ExternalAuthId" + +#: html/Admin/Elements/ModifyUser:57 +msgid "ExternalContactInfoId" +msgstr "ExternalContactInfoId" + +#: html/Admin/Users/Modify.html:72 +msgid "Extra info" +msgstr "Informazioni aggiuntive" + +#: lib/RT/User_Overlay.pm:301 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Impossibile trovare il pseudogruppo 'Privilegiato' di utenti." + +#: lib/RT/User_Overlay.pm:308 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Impossibile trovare il pseudogruppo 'Non Privilegiato' di utenti." + +#. ($modname, $@) +#: bin/rt-crontool:137 +msgid "Failed to load module %1. (%2)" +msgstr "Errore nel caricare il modulo %1. (%2)" + +#: lib/RT/Date.pm:411 +msgid "Feb." +msgstr "Feb." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "February" +msgstr "Febbraio" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Fin" +msgstr "Fin" + +#: html/Ticket/Create.html:154 +#: html/Ticket/Elements/EditBasics:58 +#: lib/RT/Tickets_Overlay.pm:1090 +msgid "Final Priority" +msgstr "Priorità Finale" + +#: lib/RT/Ticket_Overlay.pm:1161 +msgid "FinalPriority" +msgstr "PrioritàFinale" + +#: html/Admin/Queues/People.html:60 +#: html/Ticket/Elements/EditPeople:33 +msgid "Find group whose" +msgstr "Cerca il gruppo che" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Find new/open tickets" +msgstr "Cerca tickets nuovi/aperti" + +#: html/Admin/Queues/People.html:56 +#: html/Admin/Users/index.html:45 +#: html/Ticket/Elements/EditPeople:29 +msgid "Find people whose" +msgstr "Cerca le persone che" + +#: html/Search/Listing.html:107 +msgid "Find tickets" +msgstr "Cerca tickets" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Finish Approval" +msgstr "Approvazione Finale" + +#: html/Ticket/Elements/Tabs:57 +msgid "First" +msgstr "Primo" + +#: html/Search/Listing.html:40 +msgid "First page" +msgstr "Prima Pagina" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "Foo Bar Baz" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "Foo!" + +#: html/Search/Bulk.html:86 +msgid "Force change" +msgstr "Forza il cambiamento" + +#. ($ticketcount) +#: html/Search/Listing.html:105 +msgid "Found %quant(%1,ticket)" +msgstr "Trovati %quant(%1,ticket)" + +#: lib/RT/Interface/Web.pm:901 +msgid "Found Object" +msgstr "Trovato Oggetto" + +#: html/Admin/Elements/ModifyUser:43 +msgid "FreeformContactInfo" +msgstr "FreeformContactInfo" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformMultiple" +msgstr "FreeformMultiple" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "FreeformSingle" +msgstr "FreeformSingle" + +#: lib/RT/Date.pm:391 +msgid "Fri." +msgstr "Gio." + +#: html/Ticket/Elements/ShowHistory:40 +#: html/Ticket/Elements/ShowHistory:50 +msgid "Full headers" +msgstr "Intestazioni Estese" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "Sto prendendo l'utente corrente da una firma pgp\\n" + +#. ($New->Name) +#: lib/RT/Transaction_Overlay.pm:592 +msgid "Given to %1" +msgstr "Assegnato a %1" + +#: html/Admin/Elements/Tabs:40 +#: html/Admin/index.html:37 +msgid "Global" +msgstr "Globale" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Global Keyword Selections" +msgstr "Selezione Globale delle Parole Chiave" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Global Scrips" +msgstr "Scrips Globali" + +#. (loc($Template->Name)) +#: html/Admin/Elements/SelectTemplate:37 +msgid "Global template: %1" +msgstr "Modello globale: %1" + +#: html/Admin/Elements/EditCustomFields:74 +#: 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:40 +msgid "Go!" +msgstr "Vai!" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "Firma pgp valida da %1\\n" + +#: html/Search/Listing.html:49 +msgid "Goto page" +msgstr "Vai a pagina" + +#: html/Elements/GotoTicket:24 +#: html/SelfService/Elements/GotoTicket:24 +msgid "Goto ticket" +msgstr "Vai al ticket" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Grand" +msgstr "Grand" + +#: html/Ticket/Elements/AddWatchers:45 +#: html/User/Elements/DelegateRights:77 +msgid "Group" +msgstr "Gruppo" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Group %1 %2: %3" +msgstr "Gruppo %1 %2: %3" + +#: 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 "Diritti di Gruppo" + +#: lib/RT/Group_Overlay.pm:964 +msgid "Group already has member" +msgstr "Il gruppo ha già il membro" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Group could not be created." +msgstr "Il gruppo non può essere creato." + +#. ($create_msg) +#: html/Admin/Groups/Modify.html:76 +msgid "Group could not be created: %1" +msgstr "Il gruppo non può essere creato: %1" + +#: lib/RT/Group_Overlay.pm:496 +msgid "Group created" +msgstr "Gruppo creato" + +#: lib/RT/Group_Overlay.pm:1132 +msgid "Group has no such member" +msgstr "Il gruppo non ho questo membro" + +#: lib/RT/Group_Overlay.pm:944 +#: lib/RT/Queue_Overlay.pm:627 +#: lib/RT/Queue_Overlay.pm:687 +#: lib/RT/Ticket_Overlay.pm:1428 +#: lib/RT/Ticket_Overlay.pm:1506 +msgid "Group not found" +msgstr "Gruppo non trovato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Group not found.\\n" +msgstr "Gruppo non trovato.\\n" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Group not specified.\\n" +msgstr "Gruppo non specificato.\\n" + +#: 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 "Gruppi" + +#: lib/RT/Group_Overlay.pm:970 +msgid "Groups can't be members of their members" +msgstr "I gruppi non possono essere membri dei loro membri" + +#: lib/RT/Interface/CLI.pm:72 +msgid "Hello!" +msgstr "Ciao!" + +#. ($name) +#: docs/design_docs/string-extraction-guide.txt:40 +msgid "Hello, %1" +msgstr "Ciao, %1" + +#: html/Ticket/Elements/ShowHistory:29 +#: html/Ticket/Elements/Tabs:87 +msgid "History" +msgstr "Storia" + +#: html/Admin/Elements/ModifyUser:67 +msgid "HomePhone" +msgstr "TelefonoCasa" + +#: html/Elements/Tabs:43 +msgid "Homepage" +msgstr "Homepage" + +#. (6) +#: lib/RT/Base.pm:73 +msgid "I have %quant(%1,concrete mixer)." +msgstr "Ho %quant(%1,concrete mixer)." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "Ho [quant,_1,concrete mixer]." + +#: html/Ticket/Elements/ShowBasics:26 +#: lib/RT/Tickets_Overlay.pm:1017 +msgid "Id" +msgstr "Id" + +#: html/Admin/Users/Modify.html:43 +#: html/User/Prefs.html:38 +msgid "Identity" +msgstr "Identità" + +#: etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "Se una richiesta di approvazione è rifiutata, rifiuta l'originale e elimina le richieste di approvazione pendenti" + +#: bin/rt-crontool:189 +msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." +msgstr "Se questo strumento viene utilizzato con setgid, un utente locale mlintenzionato può usrae questo strumento per ottenere accesso amministrativo su 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 "Se hai aggiornato qualchecosa qui sopra, assicurati di" + +#: lib/RT/Interface/Web.pm:893 +msgid "Illegal value for %1" +msgstr "Valore non valido per %1" + +#: lib/RT/Interface/Web.pm:896 +msgid "Immutable field" +msgstr "Campo immutabile" + +#: html/Admin/Elements/EditCustomFields:73 +msgid "Include disabled custom fields in listing." +msgstr "Includi nella lista i campi personalizzati disabilitati." + +#: html/Admin/Queues/index.html:42 +msgid "Include disabled queues in listing." +msgstr "Includi nella lista le code disabilitate." + +#: html/Admin/Users/index.html:46 +msgid "Include disabled users in search." +msgstr "Includi nella ricerca gli utenti disabilitati." + +#: lib/RT/Tickets_Overlay.pm:1066 +msgid "Initial Priority" +msgstr "Priorità Iniziale" + +#: lib/RT/Ticket_Overlay.pm:1160 +#: lib/RT/Ticket_Overlay.pm:1162 +msgid "InitialPriority" +msgstr "PrioritàIniziale" + +#: lib/RT/ScripAction_Overlay.pm:104 +msgid "Input error" +msgstr "Errore in Input" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Interest noted" +msgstr "Interesse annotato" + +#: lib/RT/Ticket_Overlay.pm:3795 +msgid "Internal Error" +msgstr "Errore Interno" + +#. ($id->{error_message}) +#: lib/RT/Record.pm:142 +msgid "Internal Error: %1" +msgstr "Errore Interno: %1" + +#: lib/RT/Group_Overlay.pm:643 +msgid "Invalid Group Type" +msgstr "Tipo di Gruppo non valido" + +#: lib/RT/Principal_Overlay.pm:127 +msgid "Invalid Right" +msgstr "Diritto non valido" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Invalid Type" +msgstr "Tipo non valido" + +#: lib/RT/Interface/Web.pm:898 +msgid "Invalid data" +msgstr "Dati non validi" + +#: lib/RT/Ticket_Overlay.pm:438 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "Proprietraio non valido. Verrà usato il default 'nobody'." + +#: lib/RT/Scrip_Overlay.pm:133 +#: lib/RT/Template_Overlay.pm:250 +msgid "Invalid queue" +msgstr "Coda non valida" + +#: 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 "Diritto non valido" + +#. ($key) +#: lib/RT/Record.pm:117 +msgid "Invalid value for %1" +msgstr "Valore non valido per %1" + +#: lib/RT/Ticket_Overlay.pm:3433 +msgid "Invalid value for custom field" +msgstr "Valore non valido per il campo personalizzato" + +#: lib/RT/Ticket_Overlay.pm:345 +msgid "Invalid value for status" +msgstr "Valore non valido per lo stato" + +#: bin/rt-crontool:190 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "E' estremamente importante che agli utenti non previlegiati non sia consentito eseguire questo strumento." + +#: bin/rt-crontool:191 +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 suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." + +#: bin/rt-crontool:162 +msgid "It takes several arguments:" +msgstr "Richide molteplici argomenti:" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Items pending my approval" +msgstr "Oggetti in attesa della mia approvazione" + +#: lib/RT/Date.pm:410 +msgid "Jan." +msgstr "Gen." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "January" +msgstr "Gennaio" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Join or leave this group" +msgstr "Unisciti o lascia questo gruppo" + +#: lib/RT/Date.pm:416 +msgid "Jul." +msgstr "Lug." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "July" +msgstr "Luglio" + +#: html/Ticket/Elements/Tabs:98 +msgid "Jumbo" +msgstr "Jumbo" + +#: lib/RT/Date.pm:415 +msgid "Jun." +msgstr "Giu." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "June" +msgstr "Giugno" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Keyword" +msgstr "Parola chiave" + +#: html/Admin/Elements/ModifyUser:51 +msgid "Lang" +msgstr "Linguaggio" + +#: html/Ticket/Elements/Tabs:72 +msgid "Last" +msgstr "Ultimo" + +#: html/Ticket/Elements/EditDates:37 +#: html/Ticket/Elements/ShowDates:38 +msgid "Last Contact" +msgstr "Ultimo Contatto" + +#: html/Elements/SelectDateType:28 +msgid "Last Contacted" +msgstr "Ultimo Contatto" + +#: html/Search/Elements/TicketHeader:40 +msgid "Last Notified" +msgstr "Ultima Notifica" + +#: html/Elements/SelectDateType:29 +msgid "Last Updated" +msgstr "Ultimo Aggiornamento" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "LastUpdated" +msgstr "UltimoAggiornamento" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Left" +msgstr "Rimasti" + +#: html/Admin/Users/Modify.html:82 +msgid "Let this user access RT" +msgstr "Consenti a questo utente di accedere a RT" + +#: html/Admin/Users/Modify.html:86 +msgid "Let this user be granted rights" +msgstr "Concedi a questo utente che gli vengano assegnati i diritti" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Limiting owner to %1 %2" +msgstr "Limitare il proprietario %1 %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Limiting queue to %1 %2" +msgstr "Limitare la coda a %1 %2" + +#: lib/RT/Ticket_Overlay.pm:2703 +msgid "Link already exists" +msgstr "Il collegamento già esiste" + +#: lib/RT/Ticket_Overlay.pm:2715 +msgid "Link could not be created" +msgstr "Il collegamento non può essere creato" + +#. ($TransString) +#: lib/RT/Ticket_Overlay.pm:2723 +#: lib/RT/Ticket_Overlay.pm:2733 +msgid "Link created (%1)" +msgstr "Collegamento creato (%1)" + +#. ($TransString) +#: lib/RT/Ticket_Overlay.pm:2644 +msgid "Link deleted (%1)" +msgstr "Collegamento eliminato (%1)" + +#: lib/RT/Ticket_Overlay.pm:2650 +msgid "Link not found" +msgstr "Collegamento non trovato" + +#. ($Ticket->Id) +#: html/Ticket/ModifyLinks.html:24 +#: html/Ticket/ModifyLinks.html:28 +msgid "Link ticket #%1" +msgstr "Collega ticket n°%1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Link ticket %1" +msgstr "Collega ticket %1" + +#: html/Ticket/Elements/Tabs:96 +msgid "Links" +msgstr "Collegamenti" + +#: html/Admin/Users/Modify.html:113 +#: html/User/Prefs.html:84 +msgid "Location" +msgstr "Località" + +#. ($RT::LogDir) +#: lib/RT.pm:159 +msgid "" +"Log directory %1 not found or couldn't be written.\\n" +" RT can't run." +msgstr "" +"Directory di log %1 non trovata o non scrivibile.\\n" +" RT non può essere eseguito." + +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +#: html/Elements/Header:56 +msgid "Logged in as %1" +msgstr "Collegato come %1" + +#: docs/design_docs/string-extraction-guide.txt:71 +#: html/Elements/Login:34 +#: html/Elements/Login:43 +#: html/Elements/Login:53 +msgid "Login" +msgstr "Collegamento" + +#: html/Elements/Header:53 +msgid "Logout" +msgstr "Scollegati" + +#: html/Search/Bulk.html:85 +msgid "Make Owner" +msgstr "Crea Proprietario" + +#: html/Search/Bulk.html:101 +msgid "Make Status" +msgstr "Crea Stato" + +#: html/Search/Bulk.html:108 +msgid "Make date Due" +msgstr "Crea data Scadenza" + +#: html/Search/Bulk.html:109 +msgid "Make date Resolved" +msgstr "Crea data Risolto" + +#: html/Search/Bulk.html:106 +msgid "Make date Started" +msgstr "Crea data Iniziato" + +#: html/Search/Bulk.html:105 +msgid "Make date Starts" +msgstr "Crea data Inizia" + +#: html/Search/Bulk.html:107 +msgid "Make date Told" +msgstr "Crea data Detto" + +#: html/Search/Bulk.html:98 +msgid "Make priority" +msgstr "Crea priorità" + +#: html/Search/Bulk.html:99 +msgid "Make queue" +msgstr "Crea coda" + +#: html/Search/Bulk.html:97 +msgid "Make subject" +msgstr "Crea oggetto" + +#: html/Admin/index.html:32 +msgid "Manage groups and group membership" +msgstr "Gestisci i gruppi e le appartenenze" + +#: html/Admin/index.html:38 +msgid "Manage properties and configuration which apply to all queues" +msgstr "Gestisci le proprietà e le configurazioni che si applicano a tutte le code" + +#: html/Admin/index.html:35 +msgid "Manage queues and queue-specific properties" +msgstr "Gestisci le code e le propietà specifiche delle code" + +#: html/Admin/index.html:29 +msgid "Manage users and passwords" +msgstr "Gestisci gli utenti e le password" + +#: lib/RT/Date.pm:412 +msgid "Mar." +msgstr "Mar." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "March" +msgstr "Marzo" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "May" +msgstr "Maggio" + +#: lib/RT/Date.pm:414 +msgid "May." +msgstr "Mag." + +#: lib/RT/Group_Overlay.pm:981 +msgid "Member added" +msgstr "Aggiunto membro" + +#: lib/RT/Group_Overlay.pm:1139 +msgid "Member deleted" +msgstr "Eliminato membro" + +#: lib/RT/Group_Overlay.pm:1143 +msgid "Member not deleted" +msgstr "Membro non eliminato" + +#: html/Elements/SelectLinkType:25 +msgid "Member of" +msgstr "Membro di" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "MemberOf" +msgstr "MembroDi" + +#: html/Admin/Elements/GroupTabs:41 +#: html/User/Elements/GroupTabs:41 +msgid "Members" +msgstr "Membri" + +#: lib/RT/Ticket_Overlay.pm:2890 +msgid "Merge Successful" +msgstr "Unione avvenuta con Successo" + +#: lib/RT/Ticket_Overlay.pm:2810 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "Unione fallita. Impossibile impostare EffectiveId" + +#: html/Ticket/Elements/EditLinks:114 +msgid "Merge into" +msgstr "Unisci in" + +#: html/Ticket/Update.html:101 +msgid "Message" +msgstr "Messaggio" + +#: lib/RT/Interface/Web.pm:900 +msgid "Missing a primary key?: %1" +msgstr "Manca una chiave primaria?: %1" + +#: html/Admin/Users/Modify.html:168 +#: html/User/Prefs.html:53 +msgid "Mobile" +msgstr "Cellulare" + +#: html/Admin/Elements/ModifyUser:71 +msgid "MobilePhone" +msgstr "TelefonoCellulare" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Modify Access Control List" +msgstr "Modifca la Lista Controllo Accessi" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Modify Custom Field %1" +msgstr "Modifica il Campo Personalizzato %1" + +#: html/Admin/Global/CustomFields.html:43 +#: html/Admin/Global/index.html:50 +msgid "Modify Custom Fields which apply to all queues" +msgstr "Modifica i Campi Personalizzati validi per tutte le code" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Modify Scrip templates for this queue" +msgstr "Modifica i modelli di Scips per questa coda" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Modify Scrips for this queue" +msgstr "Modifica gli Scrips per questa coda" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Modify System ACLS" +msgstr "Modifica le LCA di Sistema" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Modify Template %1" +msgstr "Modifica il Modello %1" + +#. ($QueueObj->Name()) +#: html/Admin/Queues/CustomField.html:44 +msgid "Modify a CustomField for queue %1" +msgstr "Modifica un CampoPersonalizzato per la coda %1" + +#: html/Admin/Global/CustomField.html:52 +msgid "Modify a CustomField which applies to all queues" +msgstr "Modifica un CampoPersonalizzato valido per tutte le code" + +#. ($QueueObj->Name) +#: html/Admin/Queues/Scrip.html:53 +msgid "Modify a scrip for queue %1" +msgstr "Modifica uno scrip per la coda %1" + +#: html/Admin/Global/Scrip.html:47 +msgid "Modify a scrip which applies to all queues" +msgstr "Modifica uno scrip valido per tutte le code" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Modify dates for # %1" +msgstr "Modifica le date per n° %1" + +#. ($TicketObj->Id) +#: html/Ticket/ModifyDates.html:24 +#: html/Ticket/ModifyDates.html:28 +msgid "Modify dates for #%1" +msgstr "Modifica le date per n°%1" + +#. ($TicketObj->Id) +#: html/Ticket/ModifyDates.html:34 +msgid "Modify dates for ticket # %1" +msgstr "Modifica le date per il ticket n° %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 "Modifica i diritti di gruppo globali" + +#: html/Admin/Global/GroupRights.html:32 +msgid "Modify global group rights." +msgstr "Modifica i diritti di gruppo globali." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Modify global rights for groups" +msgstr "Modifica i diritti di gruppo globali" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Modify global rights for users" +msgstr "Modifica i diritti globali per gli utenti" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Modify global scrips" +msgstr "Modifica gli scrips globali" + +#: html/Admin/Global/UserRights.html:24 +#: html/Admin/Global/UserRights.html:27 +#: html/Admin/Global/index.html:59 +msgid "Modify global user rights" +msgstr "Modifica i diritti globali per gli utenti" + +#: html/Admin/Global/UserRights.html:32 +msgid "Modify global user rights." +msgstr "Modifica i diritti globali per gli utenti." + +#: lib/RT/Group_Overlay.pm:145 +msgid "Modify group metadata or delete group" +msgstr "Modifica i metadati di gruppo o elimina un gruppo" + +#. ($GroupObj->Name) +#: html/Admin/Groups/GroupRights.html:24 +#: html/Admin/Groups/GroupRights.html:28 +#: html/Admin/Groups/GroupRights.html:34 +msgid "Modify group rights for group %1" +msgstr "Modifica i diritti di gruppo per il gruppo %1" + +#. ($QueueObj->Name) +#: html/Admin/Queues/GroupRights.html:24 +#: html/Admin/Queues/GroupRights.html:28 +msgid "Modify group rights for queue %1" +msgstr "Modifica i diritti di gruppo per la coda %1" + +#: lib/RT/Group_Overlay.pm:147 +msgid "Modify membership roster for this group" +msgstr "Modofica i membri di questo gruppo" + +#: lib/RT/System.pm:60 +msgid "Modify one's own RT account" +msgstr "Modifica il proprio account RT" + +#. ($QueueObj->Name) +#: html/Admin/Queues/People.html:24 +#: html/Admin/Queues/People.html:28 +msgid "Modify people related to queue %1" +msgstr "Modifica le persone relative alla coda %1" + +#. ($Ticket->id) +#. ($Ticket->Id) +#: html/Ticket/ModifyPeople.html:24 +#: html/Ticket/ModifyPeople.html:28 +#: html/Ticket/ModifyPeople.html:34 +msgid "Modify people related to ticket #%1" +msgstr "Modifica le persone relative al ticket n°%1" + +#. ($QueueObj->Name) +#: html/Admin/Queues/Scrips.html:43 +msgid "Modify scrips for queue %1" +msgstr "Modifica gli scrips per la coda %1" + +#: html/Admin/Global/Scrips.html:43 +#: html/Admin/Global/index.html:41 +msgid "Modify scrips which apply to all queues" +msgstr "Modifica gli scrips validi per tutte le code" + +#. (loc($TemplateObj->Name())) +#. ($TemplateObj->id) +#: html/Admin/Global/Template.html:24 +#: html/Admin/Global/Template.html:29 +#: html/Admin/Global/Template.html:80 +#: html/Admin/Queues/Template.html:77 +msgid "Modify template %1" +msgstr "Modifica modello %1" + +#: html/Admin/Global/Templates.html:43 +msgid "Modify templates which apply to all queues" +msgstr "Modifica i modelli validi per tutte le code" + +#. ($Group->Name) +#: html/Admin/Groups/Modify.html:86 +#: html/User/Groups/Modify.html:85 +msgid "Modify the group %1" +msgstr "Modifica il gruppo %1" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify the queue watchers" +msgstr "Modifica gli osservatori della coda" + +#. ($UserObj->Name) +#: html/Admin/Users/Modify.html:235 +msgid "Modify the user %1" +msgstr "Modifica l'utente %1" + +#. ($Ticket->Id) +#: html/Ticket/ModifyAll.html:36 +msgid "Modify ticket # %1" +msgstr "Modifica il ticket n° %1" + +#. ($TicketObj->Id) +#: html/Ticket/Modify.html:24 +#: html/Ticket/Modify.html:27 +#: html/Ticket/Modify.html:33 +msgid "Modify ticket #%1" +msgstr "Modifica il ticket n°%1" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Modify tickets" +msgstr "Modifica i tickets" + +#. ($GroupObj->Name) +#: html/Admin/Groups/UserRights.html:24 +#: html/Admin/Groups/UserRights.html:28 +#: html/Admin/Groups/UserRights.html:34 +msgid "Modify user rights for group %1" +msgstr "Modifica i diritti utente per il gruppo %1" + +#. ($QueueObj->Name) +#: html/Admin/Queues/UserRights.html:24 +#: html/Admin/Queues/UserRights.html:28 +msgid "Modify user rights for queue %1" +msgstr "Modifica i diritti dell'utente per la coda %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "Modifica gli osservatori per la coda '%1'" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ModifyACL" +msgstr "ModificaLCA" + +#: lib/RT/Group_Overlay.pm:148 +msgid "ModifyOwnMembership" +msgstr "ModificaPropriaAppartenenza" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyQueueWatchers" +msgstr "ModificaOsservatoriCoda" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ModifyScrips" +msgstr "ModificaScrips" + +#: lib/RT/System.pm:60 +msgid "ModifySelf" +msgstr "ModificaSeStesso" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "ModifyTemplate" +msgstr "ModificaModello" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "ModifyTicket" +msgstr "ModificaTicket" + +#: lib/RT/Date.pm:387 +msgid "Mon." +msgstr "Lun." + +#. ($name) +#: html/Ticket/Elements/ShowRequestor:41 +msgid "More about %1" +msgstr "Altre info su %1" + +#: html/Admin/Elements/EditCustomFields:60 +msgid "Move down" +msgstr "Move down" + +#: html/Admin/Elements/EditCustomFields:52 +msgid "Move up" +msgstr "Move up" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Multiple" +msgstr "Multiple" + +#: lib/RT/User_Overlay.pm:178 +msgid "Must specify 'Name' attribute" +msgstr "Must specify 'Name' attribute" + +#. ($friendly_status) +#: html/SelfService/Elements/MyRequests:48 +msgid "My %1 tickets" +msgstr "I miei%1 tickets" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "My Approvals" +msgstr "Le mie richieste di Approvazione" + +#: html/Approvals/index.html:24 +#: html/Approvals/index.html:25 +msgid "My approvals" +msgstr "Le mie richieste di approvazione" + +#: html/Admin/Elements/AddCustomFieldValue:31 +#: html/Admin/Elements/EditCustomField:33 +#: html/Admin/Elements/ModifyTemplate:27 +#: html/Admin/Elements/ModifyUser:29 +#: html/Admin/Groups/Modify.html:43 +#: html/Elements/SelectGroups:25 +#: html/Elements/SelectUsers:27 +#: html/User/Groups/Modify.html:43 +msgid "Name" +msgstr "Nome" + +#: lib/RT/User_Overlay.pm:185 +msgid "Name in use" +msgstr "Name in use" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Need approval from system administrator" +msgstr "Need approval from system administrator" + +#: html/Ticket/Elements/ShowDates:51 +msgid "Never" +msgstr "Never" + +#: html/Elements/Quicksearch:29 +msgid "New" +msgstr "Nuovo" + +#: html/Admin/Elements/ModifyUser:31 +#: html/Admin/Users/Modify.html:92 +#: html/User/Prefs.html:64 +msgid "New Password" +msgstr "Nuova Password" + +#: etc/initialdata:317 +#: etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "New Pending Approval" + +#: html/Ticket/Elements/EditLinks:110 +msgid "New Relationships" +msgstr "New Relationships" + +#: html/Ticket/Elements/Tabs:35 +msgid "New Search" +msgstr "Nuova Ricerca" + +#: html/Admin/Global/CustomField.html:40 +#: html/Admin/Global/CustomFields.html:38 +#: html/Admin/Queues/CustomField.html:51 +#: html/Admin/Queues/CustomFields.html:39 +msgid "New custom field" +msgstr "Nuovo campo Personalizzato" + +#: html/Admin/Elements/GroupTabs:53 +#: html/User/Elements/GroupTabs:51 +msgid "New group" +msgstr "Nuovo gruppo" + +#: html/SelfService/Prefs.html:31 +msgid "New password" +msgstr "Nuova password" + +#: lib/RT/User_Overlay.pm:646 +msgid "New password notification sent" +msgstr "New password notification sent" + +#: html/Admin/Elements/QueueTabs:69 +msgid "New queue" +msgstr "Nuova coda" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "New request" +msgstr "Nuova richiesta" + +#: html/Admin/Elements/SelectRights:41 +msgid "New rights" +msgstr "Nuovi diritti" + +#: html/Admin/Global/Scrip.html:39 +#: html/Admin/Global/Scrips.html:38 +#: html/Admin/Queues/Scrip.html:42 +#: html/Admin/Queues/Scrips.html:52 +msgid "New scrip" +msgstr "Nuovo scrip" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "New search" +msgstr "Nuova ricerca" + +#: 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 "Nuovo modello" + +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "Nuovo ticket" + +#: lib/RT/Ticket_Overlay.pm:2777 +msgid "New ticket doesn't exist" +msgstr "Il nuovo ticket non esiste" + +#: html/Admin/Elements/UserTabs:51 +msgid "New user" +msgstr "Nuovo utente" + +#: html/Admin/Elements/CreateUserCalled:25 +msgid "New user called" +msgstr "New user called" + +#: html/Admin/Queues/People.html:54 +#: html/Ticket/Elements/EditPeople:28 +msgid "New watchers" +msgstr "Nuovo osservatore" + +#: html/Admin/Users/Prefs.html:41 +msgid "New window setting" +msgstr "New window setting" + +#: html/Ticket/Elements/Tabs:68 +msgid "Next" +msgstr "Succesivo" + +#: html/Search/Listing.html:47 +msgid "Next page" +msgstr "Pagina succesiva" + +#: html/Admin/Elements/ModifyUser:49 +msgid "NickName" +msgstr "NickName" + +#: html/Admin/Users/Modify.html:62 +#: html/User/Prefs.html:45 +msgid "Nickname" +msgstr "Soprannome" + +#: html/Admin/Elements/EditCustomField:89 +#: html/Admin/Elements/EditCustomFields:104 +msgid "No CustomField" +msgstr "No CustomField" + +#: html/Admin/Groups/GroupRights.html:83 +#: html/Admin/Groups/UserRights.html:70 +msgid "No Group defined" +msgstr "No Group defined" + +#: html/Admin/Queues/GroupRights.html:95 +#: html/Admin/Queues/UserRights.html:67 +msgid "No Queue defined" +msgstr "No Queue defined" + +#: bin/rt-crontool:55 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "No RT user found. Please consult your RT administrator.\\n" + +#: html/Admin/Global/Template.html:78 +#: html/Admin/Queues/Template.html:75 +msgid "No Template" +msgstr "Nessun Modello" + +#: bin/rt-commit-handler:763 +msgid "No Ticket specified. Aborting ticket " +msgstr "No Ticket specified. Aborting ticket " + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "" +"No Ticket specified. Aborting ticket modifications\\n" +"\\n" +msgstr "" +"No Ticket specified. Aborting ticket modifications\\n" +"\\n" + +#: html/Approvals/Elements/Approve:45 +msgid "No action" +msgstr "No action" + +#: lib/RT/Interface/Web.pm:895 +msgid "No column specified" +msgstr "No column specified" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "No command found\\n" +msgstr "No command found\\n" + +#: html/Elements/ViewUser:35 +#: html/Ticket/Elements/ShowRequestor:44 +msgid "No comment entered about this user" +msgstr "No comment entered about this user" + +#: lib/RT/Ticket_Overlay.pm:2188 +#: lib/RT/Ticket_Overlay.pm:2256 +msgid "No correspondence attached" +msgstr "No correspondence attached" + +#. (ref $self) +#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Condition/Generic.pm:175 +#: lib/RT/Search/ActiveTicketsInQueue.pm:55 +#: lib/RT/Search/Generic.pm:112 +msgid "No description for %1" +msgstr "Nessuna descrizione per %1" + +#: lib/RT/Users_Overlay.pm:151 +msgid "No group specified" +msgstr "No group specified" + +#: lib/RT/User_Overlay.pm:864 +msgid "No password set" +msgstr "No password set" + +#: lib/RT/Queue_Overlay.pm:258 +msgid "No permission to create queues" +msgstr "No permission to create code" + +#. ($QueueObj->Name) +#: lib/RT/Ticket_Overlay.pm:341 +msgid "No permission to create tickets in the queue '%1'" +msgstr "No permission to create tickets in the coda '%1'" + +#: lib/RT/User_Overlay.pm:151 +msgid "No permission to create users" +msgstr "No permission to create users" + +#: html/SelfService/Display.html:117 +msgid "No permission to display that ticket" +msgstr "No permission to display that ticket" + +#: html/SelfService/Update.html:51 +msgid "No permission to view update ticket" +msgstr "No permission to view update ticket" + +#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Ticket_Overlay.pm:1487 +msgid "No principal specified" +msgstr "No principal specified" + +#: html/Admin/Queues/People.html:153 +#: html/Admin/Queues/People.html:163 +msgid "No principals selected." +msgstr "No principals selected." + +#: html/Admin/Queues/index.html:34 +msgid "No queues matching search criteria found." +msgstr "No code matching search criteria found." + +#: html/Admin/Elements/SelectRights:80 +msgid "No rights found" +msgstr "Nessun diritto trovato" + +#: html/Admin/Elements/SelectRights:32 +msgid "No rights granted." +msgstr "Nessun diritto concesso." + +#: html/Search/Bulk.html:148 +msgid "No search to operate on." +msgstr "No search to operate on." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "No ticket id specified" +msgstr "No ticket id specified" + +#: lib/RT/Transaction_Overlay.pm:477 +#: lib/RT/Transaction_Overlay.pm:515 +msgid "No transaction type specified" +msgstr "No transaction type specified" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "No user or email address specified" +msgstr "No user or email address specified" + +#: html/Admin/Users/index.html:35 +msgid "No users matching search criteria found." +msgstr "No users matching search criteria found." + +#: bin/rt-commit-handler:643 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" + +#: lib/RT/Interface/Web.pm:892 +msgid "No value sent to _Set!\\n" +msgstr "No value sent to _Set!\\n" + +#: html/Search/Elements/TicketRow:36 +msgid "Nobody" +msgstr "Nessuno" + +#: lib/RT/Interface/Web.pm:897 +msgid "Nonexistant field?" +msgstr "Nonexistant field?" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Not logged in" +msgstr "Not logged in" + +#: html/Elements/Header:58 +msgid "Not logged in." +msgstr "Non collegato." + +#: lib/RT/Date.pm:368 +msgid "Not set" +msgstr "Non valorizzato" + +#: html/NoAuth/Reminder.html:26 +msgid "Not yet implemented." +msgstr "Not yet implemented." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Not yet implemented...." +msgstr "Not yet implemented...." + +#: html/Approvals/Elements/Approve:48 +msgid "Notes" +msgstr "Notes" + +#: lib/RT/User_Overlay.pm:649 +msgid "Notification could not be sent" +msgstr "Notification could not be sent" + +#: etc/initialdata:94 +msgid "Notify AdminCcs" +msgstr "Notify AdminCcs" + +#: etc/initialdata:90 +msgid "Notify AdminCcs as Comment" +msgstr "Notify AdminCcs as Comment" + +#: etc/initialdata:121 +msgid "Notify Other Recipients" +msgstr "Notify Other Recipients" + +#: etc/initialdata:117 +msgid "Notify Other Recipients as Comment" +msgstr "Notify Other Recipients as Comment" + +#: etc/initialdata:86 +msgid "Notify Owner" +msgstr "Notify Proprietario" + +#: etc/initialdata:82 +msgid "Notify Owner as Comment" +msgstr "Notify Proprietario as Comment" + +#: etc/initialdata:319 +#: etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "Notify Proprietari and AdminCcs of new items pending their approval" + +#: etc/initialdata:78 +msgid "Notify Requestors" +msgstr "Notifica al Richiedente" + +#: etc/initialdata:104 +msgid "Notify Requestors and Ccs" +msgstr "Notifica ai Richiedenti e ai Ccs" + +#: etc/initialdata:99 +msgid "Notify Requestors and Ccs as Comment" +msgstr "Notifica ai Richiedenti e ai Ccs come Commento" + +#: etc/initialdata:113 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "Notifica ai Richiedenti, Ccs e AdminCcs" + +#: etc/initialdata:109 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "Notifica ai Richiedenti, Ccs a AdminCcs come Commento" + +#: lib/RT/Date.pm:420 +msgid "Nov." +msgstr "Nov." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "November" +msgstr "November" + +#: lib/RT/Record.pm:156 +msgid "Object could not be created" +msgstr "Object could not be created" + +#: lib/RT/Record.pm:175 +msgid "Object created" +msgstr "Object created" + +#: lib/RT/Date.pm:419 +msgid "Oct." +msgstr "Oct." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "October" +msgstr "October" + +#: html/Elements/SelectDateRelation:34 +msgid "On" +msgstr "On" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "On Comment" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "On Correspond" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "On Create" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "On Owner Change" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "On Queue Change" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "On Resolve" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "On Status Change" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "On Transaction" + +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +#: html/Approvals/Elements/PendingMyApproval:49 +msgid "Only show approvals for requests created after %1" +msgstr "Mostra le approvazioni solo per le richieste create dopo %1" + +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +#: html/Approvals/Elements/PendingMyApproval:47 +msgid "Only show approvals for requests created before %1" +msgstr "Mostra le approvazioni solo per le richieste create prima %1" + +#: html/Elements/Quicksearch:30 +msgid "Open" +msgstr "Aperto" + +#: html/Ticket/Elements/Tabs:135 +msgid "Open it" +msgstr "Aprilo" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Open requests" +msgstr "Richieste aperte" + +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "Open tickets" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in a new window" +msgstr "Open tickets (from listing) in a new window" + +#: html/Admin/Users/Prefs.html:39 +msgid "Open tickets (from listing) in another window" +msgstr "Open tickets (from listing) in another window" + +#: etc/initialdata:133 +msgid "Open tickets on correspondence" +msgstr "Open tickets on correspondence" + +#: html/Search/Elements/PickRestriction:100 +msgid "Ordering and sorting" +msgstr "Visualizzazione e Ordinamento" + +#: html/Admin/Elements/ModifyUser:45 +#: html/Admin/Users/Modify.html:116 +#: html/Elements/SelectUsers:28 +#: html/User/Prefs.html:85 +msgid "Organization" +msgstr "Azienda" + +#. ($approving->Id, $approving->Subject) +#: html/Approvals/Elements/Approve:32 +msgid "Originating ticket: #%1" +msgstr "Originating ticket: n°%1" + +#: html/Admin/Elements/ModifyQueue:54 +#: html/Admin/Queues/Modify.html:68 +msgid "Over time, priority moves toward" +msgstr "Se scade il tempo, la priorità sale di" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Own tickets" +msgstr "Own tickets" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "OwnTicket" +msgstr "PossiediTicket" + +#: etc/initialdata:38 +#: html/Elements/MyRequests:31 +#: 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:62 +#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/Tickets_Overlay.pm:1243 +msgid "Owner" +msgstr "Proprietario" + +#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +#: lib/RT/Ticket_Overlay.pm:3070 +msgid "Owner changed from %1 to %2" +msgstr "Proprietario changed from %1 to %2" + +#. ($Old->Name , $New->Name) +#: lib/RT/Transaction_Overlay.pm:581 +msgid "Owner forcibly changed from %1 to %2" +msgstr "Owner forcibly changed from %1 to %2" + +#: html/Search/Elements/PickRestriction:30 +msgid "Owner is" +msgstr "Il Proprietario è" + +#: html/Admin/Users/Modify.html:173 +#: html/User/Prefs.html:55 +msgid "Pager" +msgstr "Pager" + +#: html/Admin/Elements/ModifyUser:73 +msgid "PagerPhone" +msgstr "PagerPhone" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Parent" +msgstr "" + +#: html/Ticket/Create.html:181 +#: html/Ticket/Elements/EditLinks:126 +#: html/Ticket/Elements/EditLinks:57 +#: html/Ticket/Elements/ShowLinks:46 +msgid "Parents" +msgstr "Genitori" + +#: html/Elements/Login:51 +#: html/User/Prefs.html:60 +msgid "Password" +msgstr "Password" + +#: html/NoAuth/Reminder.html:24 +msgid "Password Reminder" +msgstr "Password Reminder" + +#: lib/RT/User_Overlay.pm:168 +#: lib/RT/User_Overlay.pm:867 +msgid "Password too short" +msgstr "Password too short" + +#. (loc_fuzzy($msg)) +#: html/Admin/Users/Modify.html:290 +#: html/User/Prefs.html:171 +msgid "Password: %1" +msgstr "Password: %1" + +#: html/Admin/Users/Modify.html:292 +msgid "Passwords do not match." +msgstr "Passwords do not match." + +#: html/User/Prefs.html:173 +msgid "Passwords do not match. Your password has not been changed" +msgstr "Passwords do not match. Your password has not been changed" + +#: html/Ticket/Elements/ShowSummary:44 +#: html/Ticket/Elements/Tabs:95 +#: html/Ticket/ModifyAll.html:50 +msgid "People" +msgstr "Persone" + +#: etc/initialdata:126 +msgid "Perform a user-defined action" +msgstr "Perform a user-defined action" + +#: 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/CurrentUser.pm:82 +#: lib/RT/CurrentUser.pm:91 +#: lib/RT/CustomField_Overlay.pm:100 +#: lib/RT/CustomField_Overlay.pm:201 +#: lib/RT/CustomField_Overlay.pm:233 +#: lib/RT/CustomField_Overlay.pm:510 +#: lib/RT/CustomField_Overlay.pm:90 +#: lib/RT/Group_Overlay.pm:1094 +#: lib/RT/Group_Overlay.pm:1098 +#: lib/RT/Group_Overlay.pm:1107 +#: lib/RT/Group_Overlay.pm:1158 +#: lib/RT/Group_Overlay.pm:1162 +#: lib/RT/Group_Overlay.pm:1168 +#: lib/RT/Group_Overlay.pm:425 +#: lib/RT/Group_Overlay.pm:517 +#: lib/RT/Group_Overlay.pm:595 +#: lib/RT/Group_Overlay.pm:603 +#: lib/RT/Group_Overlay.pm:700 +#: lib/RT/Group_Overlay.pm:704 +#: lib/RT/Group_Overlay.pm:710 +#: lib/RT/Group_Overlay.pm:903 +#: lib/RT/Group_Overlay.pm:907 +#: lib/RT/Group_Overlay.pm:920 +#: lib/RT/Queue_Overlay.pm:539 +#: lib/RT/Queue_Overlay.pm:549 +#: lib/RT/Queue_Overlay.pm:563 +#: lib/RT/Queue_Overlay.pm:698 +#: lib/RT/Queue_Overlay.pm:707 +#: lib/RT/Queue_Overlay.pm:720 +#: lib/RT/Queue_Overlay.pm:930 +#: lib/RT/Scrip_Overlay.pm:125 +#: lib/RT/Scrip_Overlay.pm:136 +#: lib/RT/Scrip_Overlay.pm:196 +#: lib/RT/Scrip_Overlay.pm:429 +#: lib/RT/Template_Overlay.pm:283 +#: lib/RT/Template_Overlay.pm:87 +#: lib/RT/Template_Overlay.pm:93 +#: lib/RT/Ticket_Overlay.pm:1340 +#: lib/RT/Ticket_Overlay.pm:1350 +#: lib/RT/Ticket_Overlay.pm:1364 +#: lib/RT/Ticket_Overlay.pm:1517 +#: lib/RT/Ticket_Overlay.pm:1526 +#: lib/RT/Ticket_Overlay.pm:1539 +#: lib/RT/Ticket_Overlay.pm:1874 +#: lib/RT/Ticket_Overlay.pm:2012 +#: lib/RT/Ticket_Overlay.pm:2176 +#: lib/RT/Ticket_Overlay.pm:2243 +#: lib/RT/Ticket_Overlay.pm:2602 +#: lib/RT/Ticket_Overlay.pm:2674 +#: lib/RT/Ticket_Overlay.pm:2768 +#: lib/RT/Ticket_Overlay.pm:2783 +#: lib/RT/Ticket_Overlay.pm:2977 +#: lib/RT/Ticket_Overlay.pm:3205 +#: lib/RT/Ticket_Overlay.pm:3403 +#: lib/RT/Ticket_Overlay.pm:3565 +#: lib/RT/Ticket_Overlay.pm:3617 +#: lib/RT/Ticket_Overlay.pm:3782 +#: lib/RT/Transaction_Overlay.pm:465 +#: lib/RT/Transaction_Overlay.pm:472 +#: lib/RT/Transaction_Overlay.pm:501 +#: lib/RT/Transaction_Overlay.pm:508 +#: lib/RT/User_Overlay.pm:1354 +#: lib/RT/User_Overlay.pm:569 +#: lib/RT/User_Overlay.pm:604 +#: lib/RT/User_Overlay.pm:860 +#: lib/RT/User_Overlay.pm:961 +msgid "Permission Denied" +msgstr "Permission Denied" + +#: html/User/Elements/Tabs:34 +msgid "Personal Groups" +msgstr "Gruppi Personali" + +#: html/User/Groups/index.html:29 +#: html/User/Groups/index.html:39 +msgid "Personal groups" +msgstr "Gruppi personali" + +#: html/User/Elements/DelegateRights:36 +msgid "Personal groups:" +msgstr "Gruppi personali:" + +#: html/Admin/Users/Modify.html:155 +#: html/User/Prefs.html:48 +msgid "Phone numbers" +msgstr "Numeri Telefonici" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Placeholder" +msgstr "Placeholder" + +#: html/Elements/Header:51 +#: html/Elements/Tabs:52 +#: html/SelfService/Elements/Tabs:50 +#: html/SelfService/Prefs.html:24 +#: html/User/Prefs.html:24 +#: html/User/Prefs.html:27 +msgid "Preferences" +msgstr "Preferenze" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Prefs" +msgstr "Prefs" + +#: lib/RT/Action/Generic.pm:159 +msgid "Prepare Stubbed" +msgstr "Prepare Stubbed" + +#: html/Ticket/Elements/Tabs:60 +msgid "Prev" +msgstr "Precedente" + +#: html/Search/Listing.html:43 +msgid "Previous page" +msgstr "Previous page" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Pri" +msgstr "Pri" + +#. ($args{'PrincipalId'}) +#: lib/RT/ACE_Overlay.pm:132 +#: lib/RT/ACE_Overlay.pm:207 +#: lib/RT/ACE_Overlay.pm:551 +msgid "Principal %1 not found." +msgstr "Principal %1 not found." + +#: html/Search/Elements/PickRestriction:53 +#: html/Ticket/Create.html:153 +#: html/Ticket/Elements/EditBasics:53 +#: html/Ticket/Elements/ShowBasics:38 +#: lib/RT/Tickets_Overlay.pm:1041 +msgid "Priority" +msgstr "Priorità" + +#: html/Admin/Elements/ModifyQueue:50 +#: html/Admin/Queues/Modify.html:64 +msgid "Priority starts at" +msgstr "La priorità inizia da" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "Privilegiato" + +#. (loc_fuzzy($msg)) +#: html/Admin/Users/Modify.html:270 +#: html/User/Prefs.html:162 +msgid "Privileged status: %1" +msgstr "Stato previlegiato: %1" + +#: html/Admin/Users/index.html:61 +msgid "Privileged users" +msgstr "Utenti privilegiati" + +#: etc/initialdata:23 +#: etc/initialdata:29 +#: etc/initialdata:35 +#: etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "Pseudogroup for internal use" + +#: html/Elements/MyRequests:29 +#: html/Elements/MyTickets:29 +#: html/Elements/Quicksearch:28 +#: html/Search/Elements/PickRestriction:45 +#: html/SelfService/Create.html:32 +#: html/Ticket/Create.html:37 +#: html/Ticket/Elements/EditBasics:63 +#: html/Ticket/Elements/ShowBasics:42 +#: html/User/Elements/DelegateRights:79 +#: lib/RT/Tickets_Overlay.pm:882 +msgid "Queue" +msgstr "Coda" + +#. ($Queue) +#. ($id) +#: html/Admin/Queues/CustomField.html:41 +#: html/Admin/Queues/Scrip.html:49 +#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Templates.html:43 +msgid "Queue %1 not found" +msgstr "Queue %1 not found" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Queue '%1' not found\\n" +msgstr "Queue '%1' not found\\n" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Queue Keyword Selections" +msgstr "Queue Keyword Selections" + +#: html/Admin/Elements/ModifyQueue:30 +#: html/Admin/Queues/Modify.html:42 +msgid "Queue Name" +msgstr "Nome della coda" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Queue Scrips" +msgstr "Queue Scrips" + +#: lib/RT/Queue_Overlay.pm:262 +msgid "Queue already exists" +msgstr "Queue already exists" + +#: lib/RT/Queue_Overlay.pm:271 +#: lib/RT/Queue_Overlay.pm:277 +msgid "Queue could not be created" +msgstr "Queue could not be created" + +#: html/Ticket/Create.html:204 +msgid "Queue could not be loaded." +msgstr "Queue could not be loaded." + +#: docs/design_docs/string-extraction-guide.txt:83 +#: lib/RT/Queue_Overlay.pm:281 +msgid "Queue created" +msgstr "Queue created" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Queue is not specified." +msgstr "Queue is not specified." + +#: html/SelfService/Display.html:70 +#: lib/RT/CustomField_Overlay.pm:97 +msgid "Queue not found" +msgstr "Queue not found" + +#: html/Admin/Elements/Tabs:37 +#: html/Admin/index.html:34 +msgid "Queues" +msgstr "Code" + +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "Ricerca veloce" + +#. ($RT::VERSION) +#: html/Elements/Login:43 +msgid "RT %1" +msgstr "RT %1" + +#. ($RT::VERSION, $RT::rtname) +#: docs/design_docs/string-extraction-guide.txt:70 +msgid "RT %1 for %2" +msgstr "RT %1 per %2" + +#. ($RT::VERSION) +#: html/Elements/Footer:31 +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "RT %1 da <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:24 +#: html/Admin/index.html:25 +msgid "RT Administration" +msgstr "RT Administration" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT Authentication error." +msgstr "RT Authentication error." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT Bounce: %1" +msgstr "RT Bounce: %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT Configuration error" +msgstr "RT Configuration error" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT Critical error. Message not recorded!" +msgstr "RT Critical error. Message not recorded!" + +#: html/Elements/Error:40 +#: html/SelfService/Error.html:40 +msgid "RT Error" +msgstr "RT Error" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "RT Received mail (%1) from itself." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT Recieved mail (%1) from itself." +msgstr "RT Recieved mail (%1) from itself." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT Self Service / Closed Tickets" +msgstr "RT Self Service / Closed Tickets" + +#: html/index.html:24 +#: html/index.html:27 +msgid "RT at a glance" +msgstr "Colpo d'occhio di RT" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT couldn't authenticate you" +msgstr "RT couldn't authenticate you" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT couldn't find requestor via its external database lookup" +msgstr "RT couldn't find requestor via its external database lookup" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT couldn't find the queue: %1" +msgstr "RT couldn't find the coda: %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RT couldn't validate this PGP signature. \\n" + +#. ($RT::rtname) +#: html/Elements/PageLayout:25 +msgid "RT for %1" +msgstr "RT per %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT for %1: %2" +msgstr "RT per %1: %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT has proccessed your commands" +msgstr "RT has proccessed your commands" + +#. ('2003') +#: html/Elements/Login:91 +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 © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. RT viene distribuito con la <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versione 2 della 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 is © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. RT viene distribuito con la <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versione 2 della GNU General Public License.</a>" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "RT thinks this message may be a bounce" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RT will process this message as if it were unsigned.\\n" + +#: 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 email command mode requires PGP authentication. Either you didn't sign your message, or your signature could not be verified." + +#: html/Admin/Users/Modify.html:57 +#: html/Admin/Users/Prefs.html:51 +#: html/User/Prefs.html:43 +msgid "Real Name" +msgstr "Nome Reale" + +#: html/Admin/Elements/ModifyUser:47 +msgid "RealName" +msgstr "RealName" + +#: html/Ticket/Create.html:184 +#: html/Ticket/Elements/EditLinks:138 +#: html/Ticket/Elements/EditLinks:93 +#: html/Ticket/Elements/ShowLinks:70 +msgid "Referred to by" +msgstr "Riferito da" + +#: html/Elements/SelectLinkType:27 +#: html/Ticket/Create.html:183 +#: html/Ticket/Elements/EditLinks:134 +#: html/Ticket/Elements/EditLinks:79 +#: html/Ticket/Elements/ShowLinks:60 +msgid "Refers to" +msgstr "Fa riferimento a" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RefersTo" +msgstr "RefersTo" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Refine" +msgstr "Refine" + +#: html/Search/Elements/PickRestriction:26 +msgid "Refine search" +msgstr "Rifinisci la ricerca" + +#. ($value/60) +#: html/Elements/Refresh:35 +msgid "Refresh this page every %1 minutes." +msgstr "Aggiorna questa pagina ogni %1 minuti." + +#: html/Ticket/Create.html:173 +#: html/Ticket/Elements/ShowSummary:61 +#: html/Ticket/ModifyAll.html:56 +msgid "Relationships" +msgstr "Relazioni" + +#: html/Search/Bulk.html:92 +msgid "Remove AdminCc" +msgstr "Remove AdminCc" + +#: html/Search/Bulk.html:90 +msgid "Remove Cc" +msgstr "Remove Cc" + +#: html/Search/Bulk.html:88 +msgid "Remove Requestor" +msgstr "Rimuovi il RIchiedente" + +#: html/Ticket/Elements/ShowTransaction:172 +#: html/Ticket/Elements/Tabs:121 +msgid "Reply" +msgstr "Risposta" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Reply to tickets" +msgstr "Rispondi ai tickets" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "ReplyToTicket" +msgstr "RispondiAlTicket" + +#: etc/initialdata:44 +#: html/Ticket/Update.html:39 +#: lib/RT/ACE_Overlay.pm:86 +msgid "Requestor" +msgstr "Richiedente" + +#: html/Search/Elements/PickRestriction:37 +msgid "Requestor email address" +msgstr "Indirizzo emaildel richiedente" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Requestor(s)" +msgstr "Richiedente(i)" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RequestorAddresses" +msgstr "IndirizzoRichiedente" + +#: html/SelfService/Create.html:40 +#: html/Ticket/Create.html:55 +#: html/Ticket/Elements/EditPeople:47 +#: html/Ticket/Elements/ShowPeople:30 +msgid "Requestors" +msgstr "Richiedenti" + +#: html/Admin/Elements/ModifyQueue:60 +#: html/Admin/Queues/Modify.html:74 +msgid "Requests should be due in" +msgstr "Le richieste devono essere soddisfatte in" + +#: html/Elements/Submit:61 +msgid "Reset" +msgstr "Azzera" + +#: html/Admin/Users/Modify.html:158 +#: html/User/Prefs.html:49 +msgid "Residence" +msgstr "Casa" + +#: html/Ticket/Elements/Tabs:131 +msgid "Resolve" +msgstr "Risolvi" + +#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:132 +msgid "Resolve ticket #%1 (%2)" +msgstr "Risolvi il ticket n°%1 (%2)" + +#: etc/initialdata:308 +#: html/Elements/SelectDateType:27 +#: lib/RT/Ticket_Overlay.pm:1169 +msgid "Resolved" +msgstr "Risolto" + +#: html/Search/Bulk.html:122 +#: html/Ticket/ModifyAll.html:72 +#: html/Ticket/Update.html:72 +msgid "Response to requestors" +msgstr "Risposta ai richiedenti" + +#: html/Elements/ListActions:25 +msgid "Results" +msgstr "Risultati" + +#: html/Search/Elements/PickRestriction:104 +msgid "Results per page" +msgstr "Risultati per pagina" + +#: html/Admin/Elements/ModifyUser:32 +#: html/Admin/Users/Modify.html:99 +#: html/User/Prefs.html:71 +msgid "Retype Password" +msgstr "Ridigita Password" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "Right %1 not found for %2 %3 in scope %4 (%5)\\n" + +#: lib/RT/ACE_Overlay.pm:612 +msgid "Right Delegated" +msgstr "Right Delegated" + +#: lib/RT/ACE_Overlay.pm:302 +msgid "Right Granted" +msgstr "Right Granted" + +#: lib/RT/ACE_Overlay.pm:160 +msgid "Right Loaded" +msgstr "Right Loaded" + +#: lib/RT/ACE_Overlay.pm:677 +#: lib/RT/ACE_Overlay.pm:692 +msgid "Right could not be revoked" +msgstr "Right could not be revoked" + +#: html/User/Delegation.html:63 +msgid "Right not found" +msgstr "Right not found" + +#: lib/RT/ACE_Overlay.pm:542 +#: lib/RT/ACE_Overlay.pm:637 +msgid "Right not loaded." +msgstr "Right not loaded." + +#: lib/RT/ACE_Overlay.pm:688 +msgid "Right revoked" +msgstr "Right revoked" + +#: html/Admin/Elements/UserTabs:40 +msgid "Rights" +msgstr "Diritti" + +#. ($object_type) +#: lib/RT/Interface/Web.pm:791 +msgid "Rights could not be granted for %1" +msgstr "I diritti non possono essere concessi per %1" + +#. ($object_type) +#: lib/RT/Interface/Web.pm:824 +msgid "Rights could not be revoked for %1" +msgstr "I diritti non possono essere revocaqti per %1" + +#: html/Admin/Global/GroupRights.html:50 +#: html/Admin/Queues/GroupRights.html:51 +msgid "Roles" +msgstr "Ruoli" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "RootApproval" +msgstr "RootApproval" + +#: lib/RT/Date.pm:392 +msgid "Sat." +msgstr "Sab." + +#: html/Admin/Queues/People.html:104 +#: html/Ticket/Modify.html:38 +#: html/Ticket/ModifyAll.html:93 +#: html/Ticket/ModifyLinks.html:38 +#: html/Ticket/ModifyPeople.html:37 +msgid "Save Changes" +msgstr "Salva i Cambiamenti" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Save changes" +msgstr "Salva i cambiamenti" + +#. ($ARGS{'id'}) +#: html/Admin/Global/Scrip.html:48 +msgid "Scrip #%1" +msgstr "Scrip n°%1" + +#: lib/RT/Scrip_Overlay.pm:175 +msgid "Scrip Created" +msgstr "Scrip Created" + +#: html/Admin/Elements/EditScrips:83 +msgid "Scrip deleted" +msgstr "Scrip eliminato" + +#: html/Admin/Elements/QueueTabs:45 +#: html/Admin/Elements/SystemTabs:32 +#: html/Admin/Global/index.html:40 +msgid "Scrips" +msgstr "Scrips" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Scrips for %1\\n" +msgstr "Scrips per %1\\n" + +#: html/Admin/Queues/Scrips.html:32 +msgid "Scrips which apply to all queues" +msgstr "Scrips which apply to all code" + +#: html/Elements/SimpleSearch:26 +#: html/Search/Elements/PickRestriction:125 +#: html/Ticket/Elements/Tabs:158 +msgid "Search" +msgstr "Cerca" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Search Criteria" +msgstr "Crieri di Ricerca" + +#: html/Approvals/Elements/PendingMyApproval:38 +msgid "Search for approvals" +msgstr "Ricerca le richieste di approvazione" + +#: bin/rt-crontool:187 +msgid "Security:" +msgstr "Security:" + +#: lib/RT/Queue_Overlay.pm:66 +msgid "SeeQueue" +msgstr "VediCoda" + +#: html/Admin/Groups/index.html:39 +msgid "Select a group" +msgstr "Seleziona un gruppo" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Select a queue" +msgstr "Seleziona una coda" + +#: html/Admin/Users/index.html:24 +#: html/Admin/Users/index.html:27 +msgid "Select a user" +msgstr "Seleziona un utente" + +#: html/Admin/Global/CustomField.html:37 +#: html/Admin/Global/CustomFields.html:35 +msgid "Select custom field" +msgstr "Seleziona un campo personalizzato" + +#: html/Admin/Elements/GroupTabs:51 +#: html/User/Elements/GroupTabs:49 +msgid "Select group" +msgstr "Seleziona gruppo" + +#: lib/RT/CustomField_Overlay.pm:421 +msgid "Select multiple values" +msgstr "Seleziona valori multipli" + +#: lib/RT/CustomField_Overlay.pm:418 +msgid "Select one value" +msgstr "Seleziona un volore solo" + +#: html/Admin/Elements/QueueTabs:66 +msgid "Select queue" +msgstr "Seleziona una coda" + +#: html/Admin/Global/Scrip.html:36 +#: html/Admin/Global/Scrips.html:35 +#: html/Admin/Queues/Scrip.html:39 +#: html/Admin/Queues/Scrips.html:49 +msgid "Select scrip" +msgstr "Seleziona uno scrip" + +#: 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 "Seleziona un modello" + +#: html/Admin/Elements/UserTabs:48 +msgid "Select user" +msgstr "Seleziona utente" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectMultiple" +msgstr "SelectMultiple" + +#: lib/RT/CustomField_Overlay.pm:34 +msgid "SelectSingle" +msgstr "SelectSingle" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Self Service" +msgstr "Self Service" + +#: etc/initialdata:114 +msgid "Send mail to all watchers" +msgstr "Invia una mail a tutti gli osservatori" + +#: etc/initialdata:110 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "Invia una mail atutti gli osservatori come un \"commento\"" + +#: etc/initialdata:105 +msgid "Send mail to requestors and Ccs" +msgstr "Invia mail ai richiedenti e Ccs" + +#: etc/initialdata:100 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "Invia mail ai richiedenti e Ccs come commento" + +#: etc/initialdata:79 +msgid "Sends a message to the requestors" +msgstr "Invia un messaggio ai richiedenti" + +#: etc/initialdata:118 +#: etc/initialdata:122 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "Sends mail to explicitly listed Ccs and Bccs" + +#: etc/initialdata:95 +msgid "Sends mail to the administrative Ccs" +msgstr "Sends mail to the administrative Ccs" + +#: etc/initialdata:91 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "Sends mail to the administrative Ccs as a comment" + +#: etc/initialdata:83 +#: etc/initialdata:87 +msgid "Sends mail to the owner" +msgstr "Sends mail to the owner" + +#: lib/RT/Date.pm:418 +msgid "Sep." +msgstr "Sep." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "September" +msgstr "September" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Show Results" +msgstr "Mostra i Risultati" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show approved requests" +msgstr "Mostra le richieste approvate" + +#: html/Ticket/Create.html:143 +#: html/Ticket/Create.html:33 +msgid "Show basics" +msgstr "Mostra info di base" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show denied requests" +msgstr "Mostra le richieste negate" + +#: html/Ticket/Create.html:143 +#: html/Ticket/Create.html:33 +msgid "Show details" +msgstr "Mostra i dettagli" + +#: html/Approvals/Elements/PendingMyApproval:42 +msgid "Show pending requests" +msgstr "Mostra le richieste in attesa" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show requests awaiting other approvals" +msgstr "Mostra le richieste in attesa di altre approvazioni" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "Show ticket private commentary" +msgstr "Show ticket private commentary" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Show ticket summaries" +msgstr "Show ticket summaries" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "ShowACL" +msgstr "MostraLCA" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "ShowScrips" +msgstr "MostraScrips" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "ShowTemplate" +msgstr "MostraModello" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowTicket" +msgstr "MostraTicket" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "ShowTicketComments" +msgstr "MostraICommentiAlTicket" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "Sign up as a ticket Requestor or ticket or coda Cc" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "Sign up as a ticket or coda AdminCc" + +#: html/Admin/Elements/ModifyUser:38 +#: html/Admin/Users/Modify.html:190 +#: html/Admin/Users/Prefs.html:31 +#: html/User/Prefs.html:111 +msgid "Signature" +msgstr "Firma" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Signed in as %1" +msgstr "Signed in as %1" + +#: html/Admin/Elements/SelectSingleOrMultiple:25 +msgid "Single" +msgstr "Single" + +#: html/Elements/Header:50 +msgid "Skip Menu" +msgstr "Skip Menu" + +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "Ordina" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Sort key" +msgstr "Sort key" + +#: html/Search/Elements/PickRestriction:108 +msgid "Sort results by" +msgstr "Ordina i risultati per" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "SortOrder" +msgstr "SortOrder" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Stalled" +msgstr "In stallo" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Start page" +msgstr "Pagina iniziale" + +#: html/Elements/SelectDateType:26 +#: html/Ticket/Elements/EditDates:31 +#: html/Ticket/Elements/ShowDates:34 +msgid "Started" +msgstr "Iniziato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "Started date '%1' could not be parsed" + +#: html/Elements/SelectDateType:30 +#: html/Ticket/Create.html:165 +#: html/Ticket/Elements/EditDates:26 +#: html/Ticket/Elements/ShowDates:30 +msgid "Starts" +msgstr "Inizia" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Starts By" +msgstr "Inizia Da" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Starts date '%1' could not be parsed" +msgstr "Starts date '%1' could not be parsed" + +#: html/Admin/Elements/ModifyUser:81 +#: html/Admin/Users/Modify.html:137 +#: html/User/Prefs.html:93 +msgid "State" +msgstr "Provincia" + +#: html/Elements/MyRequests:30 +#: html/Elements/MyTickets:30 +#: html/Search/Elements/PickRestriction:73 +#: html/SelfService/Elements/MyRequests:28 +#: html/SelfService/Update.html:30 +#: html/Ticket/Create.html:41 +#: html/Ticket/Elements/EditBasics:37 +#: html/Ticket/Elements/ShowBasics:30 +#: html/Ticket/Update.html:59 +#: lib/RT/Ticket_Overlay.pm:1163 +#: lib/RT/Tickets_Overlay.pm:907 +msgid "Status" +msgstr "Stato" + +#: etc/initialdata:294 +msgid "Status Change" +msgstr "Cambiamento di Stato" + +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: lib/RT/Transaction_Overlay.pm:527 +msgid "Status changed from %1 to %2" +msgstr "Cambiato lo Stato da %1 a %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "StatusChange" +msgstr "StatusChange" + +#: html/Ticket/Elements/Tabs:146 +msgid "Steal" +msgstr "Ruba" + +#. ($Old->Name) +#: lib/RT/Transaction_Overlay.pm:586 +msgid "Stolen from %1 " +msgstr "Rubato da %1 " + +#: html/Elements/MyRequests:28 +#: html/Elements/MyTickets:28 +#: html/Search/Bulk.html:125 +#: html/Search/Elements/PickRestriction:42 +#: html/SelfService/Create.html:56 +#: html/SelfService/Elements/MyRequests:27 +#: html/SelfService/Update.html:31 +#: html/Ticket/Create.html:83 +#: html/Ticket/Elements/EditBasics:27 +#: html/Ticket/ModifyAll.html:78 +#: html/Ticket/Update.html:76 +#: lib/RT/Ticket_Overlay.pm:1159 +#: lib/RT/Tickets_Overlay.pm:986 +msgid "Subject" +msgstr "Oggetto" + +#. ($self->Data) +#: docs/design_docs/string-extraction-guide.txt:89 +#: lib/RT/Transaction_Overlay.pm:608 +msgid "Subject changed to %1" +msgstr "Subject changed to %1" + +#: html/Elements/Submit:58 +msgid "Submit" +msgstr "Invia" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Submit Workflow" +msgstr "Submit Workflow" + +#: lib/RT/Group_Overlay.pm:748 +msgid "Succeeded" +msgstr "Succeeded" + +#: lib/RT/Date.pm:393 +msgid "Sun." +msgstr "Dom." + +#: lib/RT/System.pm:53 +msgid "SuperUser" +msgstr "SuperUtente" + +#: html/User/Elements/DelegateRights:76 +msgid "System" +msgstr "Sistema" + +#: html/Admin/Elements/SelectRights:80 +#: lib/RT/ACE_Overlay.pm:566 +#: lib/RT/Interface/Web.pm:790 +#: lib/RT/Interface/Web.pm:823 +msgid "System Error" +msgstr "Errore di Sistema" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "System Error. Right not granted." +msgstr "Errore di Sistema. Diritto non concesso." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "System Error. right not granted" +msgstr "Errore di Sistema. Diritto non concesso" + +#: lib/RT/ACE_Overlay.pm:615 +msgid "System error. Right not delegated." +msgstr "Errore di Sistema. Diritto non delegato." + +#: 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 "Errore di Sistema. Diritto non concesso." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "System error. Unable to grant rights." +msgstr "Errore di sistema. Impossibile concedere i diritti." + +#: html/Admin/Global/GroupRights.html:34 +#: html/Admin/Groups/GroupRights.html:36 +#: html/Admin/Queues/GroupRights.html:35 +msgid "System groups" +msgstr "Gruppi di sistema" + +#: etc/initialdata:41 +#: etc/initialdata:47 +#: etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "SystemRolegroup for internal use" + +#: lib/RT/CurrentUser.pm:317 +msgid "TEST_STRING" +msgstr "TEST_STRING" + +#: html/Ticket/Elements/Tabs:142 +msgid "Take" +msgstr "Prendi" + +#: lib/RT/Transaction_Overlay.pm:572 +msgid "Taken" +msgstr "Preso" + +#: html/Admin/Elements/EditScrip:80 +msgid "Template" +msgstr "Modello" + +#. ($TemplateObj->Id()) +#: html/Admin/Global/Template.html:90 +#: html/Admin/Queues/Template.html:89 +msgid "Template #%1" +msgstr "Modello n°%1" + +#: html/Admin/Elements/EditTemplates:88 +msgid "Template deleted" +msgstr "Modello eliminato" + +#: lib/RT/Scrip_Overlay.pm:152 +msgid "Template not found" +msgstr "Modello non trovato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Template not found\\n" +msgstr "Modello non trovato\\n" + +#: lib/RT/Template_Overlay.pm:346 +msgid "Template parsed" +msgstr "Modello elaborato" + +#: html/Admin/Elements/QueueTabs:48 +#: html/Admin/Elements/SystemTabs:35 +#: html/Admin/Global/index.html:44 +msgid "Templates" +msgstr "Modelli" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Templates for %1\\n" +msgstr "Modelli per %1\\n" + +#: lib/RT/Interface/Web.pm:891 +msgid "That is already the current value" +msgstr "That is already the current value" + +#: lib/RT/CustomField_Overlay.pm:242 +msgid "That is not a value for this custom field" +msgstr "That is not a value for this custom field" + +#: lib/RT/Ticket_Overlay.pm:1885 +msgid "That is the same value" +msgstr "That is the same value" + +#: lib/RT/ACE_Overlay.pm:287 +#: lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "That principal already has that right" + +#. ($args{'Type'}) +#: lib/RT/Queue_Overlay.pm:632 +msgid "That principal is already a %1 for this queue" +msgstr "That principal is already a %1 for this coda" + +#. ($self->loc($args{'Type'})) +#: lib/RT/Ticket_Overlay.pm:1433 +msgid "That principal is already a %1 for this ticket" +msgstr "That principal is already a %1 for this ticket" + +#. ($args{'Type'}) +#: lib/RT/Queue_Overlay.pm:731 +msgid "That principal is not a %1 for this queue" +msgstr "That principal is not a %1 for this coda" + +#. ($args{'Type'}) +#: lib/RT/Ticket_Overlay.pm:1550 +msgid "That principal is not a %1 for this ticket" +msgstr "That principal is not a %1 for this ticket" + +#: lib/RT/Ticket_Overlay.pm:1881 +msgid "That queue does not exist" +msgstr "That coda does not exist" + +#: lib/RT/Ticket_Overlay.pm:3209 +msgid "That ticket has unresolved dependencies" +msgstr "That ticket has unresolved dependencies" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "That user already has that right" +msgstr "That user already has that right" + +#: lib/RT/Ticket_Overlay.pm:3019 +msgid "That user already owns that ticket" +msgstr "That user already owns that ticket" + +#: lib/RT/Ticket_Overlay.pm:2985 +msgid "That user does not exist" +msgstr "That user does not exist" + +#: lib/RT/User_Overlay.pm:314 +msgid "That user is already privileged" +msgstr "Questo utente è già previlegiato" + +#: lib/RT/User_Overlay.pm:335 +msgid "That user is already unprivileged" +msgstr "Questo utente è già non previlegiato" + +#: lib/RT/User_Overlay.pm:327 +msgid "That user is now privileged" +msgstr "Ora questo utente è previlegiato" + +#: lib/RT/User_Overlay.pm:348 +msgid "That user is now unprivileged" +msgstr "Ora questo utente è non previlegiato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "That user is now unprivilegedileged" +msgstr "Questo utente ora è non previlegiato" + +#: lib/RT/Ticket_Overlay.pm:3011 +msgid "That user may not own tickets in that queue" +msgstr "That user may not own tickets in that coda" + +#: lib/RT/Link_Overlay.pm:205 +msgid "That's not a numerical id" +msgstr "That's not a numerical id" + +#: html/SelfService/Display.html:31 +#: html/Ticket/Create.html:149 +#: html/Ticket/Elements/ShowSummary:27 +msgid "The Basics" +msgstr "Dati di base" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The CC of a ticket" +msgstr "The CC of a ticket" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The administrative CC of a ticket" +msgstr "The administrative CC of a ticket" + +#: lib/RT/Ticket_Overlay.pm:2212 +msgid "The comment has been recorded" +msgstr "The comment has been recorded" + +#: bin/rt-crontool:197 +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 following command will find all active tickets in the coda 'general' and set their priority to 99 if they haven't been touched in 4 hours:" + +#: bin/rt-commit-handler:755 +#: bin/rt-commit-handler:765 +msgid "" +"The following commands were not proccessed:\\n" +"\\n" +msgstr "" +"The following commands were not proccessed:\\n" +"\\n" + +#: lib/RT/Interface/Web.pm:894 +msgid "The new value has been set." +msgstr "The new value has been set." + +#: lib/RT/ACE_Overlay.pm:85 +msgid "The owner of a ticket" +msgstr "The owner of a ticket" + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The requestor of a ticket" +msgstr "Il richiedente di un ticket" + +#: html/Admin/Elements/EditUserComments:25 +msgid "These comments aren't generally visible to the user" +msgstr "These comments aren't generally visible to the user" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "This ticket %1 %2 (%3)\\n" + +#: bin/rt-crontool:188 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "This tool allows the user to run arbitrary perl modules from within RT." + +#: lib/RT/Transaction_Overlay.pm:250 +msgid "This transaction appears to have no content" +msgstr "This transaction appears to have no content" + +#. ($rows) +#: html/Ticket/Elements/ShowRequestor:46 +msgid "This user's %1 highest priority tickets" +msgstr "I %1 tickets di questo utente a più alta priorità" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "I 25 tickets a più alta priorità di questo utente" + +#: lib/RT/Date.pm:390 +msgid "Thu." +msgstr "Gio." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Ticket" +msgstr "" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Ticket # %1 %2" +msgstr "Ticket n° %1 %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Ticket # %1 Jumbo update: %2" +msgstr "Ticket n° %1 aggiornamento Jumbo: %2" + +#. ($Ticket->Id, $Ticket->Subject) +#: html/Ticket/ModifyAll.html:24 +#: html/Ticket/ModifyAll.html:28 +msgid "Ticket #%1 Jumbo update: %2" +msgstr "Ticket n° %1 Jumbo update: %2" + +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +#: html/Approvals/Elements/ShowDependency:45 +msgid "Ticket #%1: %2" +msgstr "Ticket n°%1: %2" + +#. ($self->Id, $QueueObj->Name) +#: lib/RT/Ticket_Overlay.pm:586 +#: lib/RT/Ticket_Overlay.pm:607 +msgid "Ticket %1 created in queue '%2'" +msgstr "Ticket %1 created in coda '%2'" + +#. ($Ticket->Id) +#: bin/rt-commit-handler:759 +msgid "Ticket %1 loaded\\n" +msgstr "Ticket %1 loaded\\n" + +#. ($Ticket->Id,$_) +#: html/Search/Bulk.html:180 +msgid "Ticket %1: %2" +msgstr "Ticket %1: %2" + +#. ($Ticket->Id, $Ticket->Subject) +#: html/Ticket/History.html:24 +#: html/Ticket/History.html:27 +msgid "Ticket History # %1 %2" +msgstr "Ticket History n° %1 %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Ticket Id" +msgstr "Ticket Id" + +#: etc/initialdata:309 +msgid "Ticket Resolved" +msgstr "Ticket Risolto" + +#: html/Search/Elements/PickRestriction:62 +msgid "Ticket attachment" +msgstr "Allegato al ticket: il " + +#: lib/RT/Tickets_Overlay.pm:1165 +msgid "Ticket content" +msgstr "Contenuto del ticket" + +#: lib/RT/Tickets_Overlay.pm:1211 +msgid "Ticket content type" +msgstr "Ticket content type" + +#: lib/RT/Ticket_Overlay.pm:495 +#: lib/RT/Ticket_Overlay.pm:596 +msgid "Ticket could not be created due to an internal error" +msgstr "Ticket could not be created due to an internal error" + +#: lib/RT/Transaction_Overlay.pm:519 +msgid "Ticket created" +msgstr "Ticket creato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Ticket creation failed" +msgstr "Ticket creation failed" + +#: lib/RT/Transaction_Overlay.pm:524 +msgid "Ticket deleted" +msgstr "Ticket eliminato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Ticket id not found" +msgstr "Ticket id not found" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Ticket killed" +msgstr "Ticket killed" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Ticket not found" +msgstr "Ticket not found" + +#: etc/initialdata:295 +msgid "Ticket status changed" +msgstr "Ticket status changed" + +#: html/Ticket/Update.html:38 +msgid "Ticket watchers" +msgstr "Osservatori del ticket" + +#: html/Elements/Tabs:46 +msgid "Tickets" +msgstr "" + +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +#: lib/RT/Tickets_Overlay.pm:1382 +msgid "Tickets %1 %2" +msgstr "" + +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +#: lib/RT/Tickets_Overlay.pm:1347 +msgid "Tickets %1 by %2" +msgstr "Tickets %1 by %2" + +#. ($name) +#: html/Elements/ViewUser:25 +msgid "Tickets from %1" +msgstr "Tickets from %1" + +#: html/Approvals/Elements/ShowDependency:26 +msgid "Tickets which depend on this approval:" +msgstr "Tickets which depend on this approval:" + +#: html/Ticket/Create.html:156 +#: html/Ticket/Elements/EditBasics:47 +msgid "Time Left" +msgstr "Tempo RImasto" + +#: html/Ticket/Create.html:155 +#: html/Ticket/Elements/EditBasics:42 +msgid "Time Worked" +msgstr "Tempo Lavorato" + +#: lib/RT/Tickets_Overlay.pm:1138 +msgid "Time left" +msgstr "Tempo rimasto" + +#: html/Elements/Footer:35 +msgid "Time to display" +msgstr "Time to display" + +#: lib/RT/Tickets_Overlay.pm:1114 +msgid "Time worked" +msgstr "Tempo lavorato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "TimeLeft" +msgstr "TempoRimasto" + +#: lib/RT/Ticket_Overlay.pm:1164 +msgid "TimeWorked" +msgstr "TempoLavorato" + +#: bin/rt-commit-handler:401 +msgid "To generate a diff of this commit:" +msgstr "To generate a diff of this commit:" + +#: bin/rt-commit-handler:390 +msgid "To generate a diff of this commit:\\n" +msgstr "To generate a diff of this commit:\\n" + +#: lib/RT/Ticket_Overlay.pm:1167 +msgid "Told" +msgstr "Told" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "Transaction" + +#. ($self->Data) +#: lib/RT/Transaction_Overlay.pm:639 +msgid "Transaction %1 purged" +msgstr "Transaction %1 purged" + +#: lib/RT/Transaction_Overlay.pm:176 +msgid "Transaction Created" +msgstr "Transaction Created" + +#: lib/RT/Transaction_Overlay.pm:88 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "Transaction->Create couldn't, as you didn't specify a ticket id" + +#: lib/RT/Transaction_Overlay.pm:698 +msgid "Transactions are immutable" +msgstr "Transactions are immutable" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Trying to delete a right: %1" +msgstr "Sto cercando di eliminare un diritto: %1" + +#: lib/RT/Date.pm:388 +msgid "Tue." +msgstr "Mar." + +#: 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:1165 +#: lib/RT/Tickets_Overlay.pm:958 +msgid "Type" +msgstr "Type" + +#: lib/RT/ScripCondition_Overlay.pm:103 +msgid "Unimplemented" +msgstr "Unimplemented" + +#: html/Admin/Users/Modify.html:67 +msgid "Unix login" +msgstr "Unix login" + +#: html/Admin/Elements/ModifyUser:61 +msgid "UnixUsername" +msgstr "UnixUsername" + +#. ($self->ContentEncoding) +#: lib/RT/Attachment_Overlay.pm:264 +msgid "Unknown ContentEncoding %1" +msgstr "Unknown ContentEncoding %1" + +#: html/Elements/SelectResultsPerPage:36 +msgid "Unlimited" +msgstr "Unlimited" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "Non previlegiato" + +#: lib/RT/Transaction_Overlay.pm:568 +msgid "Untaken" +msgstr "Untaken" + +#: html/Elements/MyTickets:63 +#: html/Search/Bulk.html:32 +msgid "Update" +msgstr "Aggiornamento" + +#: html/Admin/Users/Prefs.html:61 +msgid "Update ID" +msgstr "ID Aggiornamento" + +#: html/Search/Bulk.html:119 +#: html/Ticket/ModifyAll.html:65 +#: html/Ticket/Update.html:66 +msgid "Update Type" +msgstr "Tipo Aggiornamento" + +#: html/Search/Listing.html:60 +msgid "Update all these tickets at once" +msgstr "Aggiorna tutti questi tickets in una sola volta" + +#: html/Admin/Users/Prefs.html:48 +msgid "Update email" +msgstr "Email aggiornamento" + +#: html/Admin/Users/Prefs.html:54 +msgid "Update name" +msgstr "Nome aggiornamento" + +#: lib/RT/Interface/Web.pm:408 +msgid "Update not recorded." +msgstr "Aggiornamento non registrato." + +#: html/Search/Bulk.html:80 +msgid "Update selected tickets" +msgstr "Aggiorna i tickets selezionati" + +#: html/Admin/Users/Prefs.html:35 +msgid "Update signature" +msgstr "Aggiorna la firma" + +#: html/Ticket/ModifyAll.html:62 +msgid "Update ticket" +msgstr "Aggiorna il ticket" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Update ticket # %1" +msgstr "Aggiorna il ticket n° %1" + +#. ($Ticket->id) +#: html/SelfService/Update.html:24 +#: html/SelfService/Update.html:46 +msgid "Update ticket #%1" +msgstr "Aggiorna il ticket n°%1" + +#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:134 +msgid "Update ticket #%1 (%2)" +msgstr "Aggiorna il ticket n°%1 (%2)" + +#: lib/RT/Interface/Web.pm:406 +msgid "Update type was neither correspondence nor comment." +msgstr "Update type was neither correspondence nor comment." + +#: html/Elements/SelectDateType:32 +#: html/Ticket/Elements/ShowDates:50 +#: lib/RT/Ticket_Overlay.pm:1168 +msgid "Updated" +msgstr "Aggiornato" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "User %1 %2: %3\\n" +msgstr "User %1 %2: %3\\n" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "User %1 Password: %2\\n" +msgstr "User %1 Password: %2\\n" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "User '%1' not found" +msgstr "User '%1' not found" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "User '%1' not found\\n" +msgstr "User '%1' not found\\n" + +#: etc/initialdata:125 +#: etc/initialdata:191 +msgid "User Defined" +msgstr "Definito da Utente" + +#: html/Admin/Users/Prefs.html:58 +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 "Diritti Utente" + +#. ($msg) +#: html/Admin/Users/Modify.html:225 +msgid "User could not be created: %1" +msgstr "User could not be created: %1" + +#: lib/RT/User_Overlay.pm:261 +msgid "User created" +msgstr "User created" + +#: html/Admin/Global/GroupRights.html:66 +#: html/Admin/Groups/GroupRights.html:53 +#: html/Admin/Queues/GroupRights.html:67 +msgid "User defined groups" +msgstr "Gruppi definiti dall'utente" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "User notified" +msgstr "User notified" + +#: html/Admin/Users/Prefs.html:24 +#: html/Admin/Users/Prefs.html:28 +msgid "User view" +msgstr "User view" + +#: html/Admin/Users/Modify.html:47 +#: html/Elements/Login:50 +#: html/Ticket/Elements/AddWatchers:34 +msgid "Username" +msgstr "Username" + +#: 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 "Utenti" + +#: html/Admin/Users/index.html:64 +msgid "Users matching search criteria" +msgstr "Utenti che soddisfano il criterio di ricerca" + +#: html/Search/Elements/PickRestriction:50 +msgid "ValueOfQueue" +msgstr "ValueOfQueue" + +#: html/Admin/Elements/EditCustomField:56 +msgid "Values" +msgstr "Valori" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Watch" +msgstr "Osserva" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "WatchAsAdminCc" +msgstr "OsservaComeAdminCc" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Watcher loaded" +msgstr "Osservatore caricato" + +#: html/Admin/Elements/QueueTabs:41 +msgid "Watchers" +msgstr "Osservatori" + +#: html/Admin/Elements/ModifyUser:55 +msgid "WebEncoding" +msgstr "WebEncoding" + +#: lib/RT/Date.pm:389 +msgid "Wed." +msgstr "Mer." + +#: etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "When a ticket has been approved by all approvers, add correspondence to the original ticket" + +#: etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "When a ticket has been approved by any approver, add correspondence to the original ticket" + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "When a ticket is created" + +#: etc/upgrade/2.1.71:79 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "When anything happens" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "Whenever a ticket is resolved" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "Whenever a ticket's owner changes" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "Whenever a ticket's coda changes" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "Whenever a ticket's status changes" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "Whenever a user-defined condition occurs" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "Whenever comments come in" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "Whenever correspondence comes in" + +#: html/Admin/Users/Modify.html:163 +#: html/User/Prefs.html:51 +msgid "Work" +msgstr "Lavoro" + +#: html/Admin/Elements/ModifyUser:69 +msgid "WorkPhone" +msgstr "TelefonoLavoro" + +#: html/Ticket/Elements/ShowBasics:34 +#: html/Ticket/Update.html:64 +msgid "Worked" +msgstr "Lavoro" + +#: lib/RT/Ticket_Overlay.pm:3122 +msgid "You already own this ticket" +msgstr "You already own this ticket" + +#: html/autohandler:107 +msgid "You are not an authorized user" +msgstr "You are not an authorized user" + +#: lib/RT/Ticket_Overlay.pm:2997 +msgid "You can only reassign tickets that you own or that are unowned" +msgstr "You can only reassign tickets that you own or that are unowned" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "You don't have permission to view that ticket.\\n" +msgstr "Non hai i permessi per visualizzare questo ticket.\\n" + +#. ($num, $queue) +#: docs/design_docs/string-extraction-guide.txt:47 +msgid "You found %1 tickets in queue %2" +msgstr "Hai trovato %1 tickets nella coda %2" + +#: html/NoAuth/Logout.html:30 +msgid "You have been logged out of RT." +msgstr "Ti sei scollegato da RT." + +#: html/SelfService/Display.html:77 +msgid "You have no permission to create tickets in that queue." +msgstr "Non hai permessi per creare tickets in questa coda." + +#: lib/RT/Ticket_Overlay.pm:1894 +msgid "You may not create requests in that queue." +msgstr "Non puoi creare richieste in questa coda." + +#: html/NoAuth/Logout.html:35 +msgid "You're welcome to login again" +msgstr "Collegati di nuovo" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Your %1 requests" +msgstr "Le tue %1 richieste" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "Your RT administrator has misconfigured the mail aliases which invoke RT" + +#: etc/initialdata:435 +#: etc/upgrade/2.1.71:146 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "Your request has been approved by %1. Other approvals may still be pending." + +#: etc/initialdata:469 +#: etc/upgrade/2.1.71:180 +msgid "Your request has been approved." +msgstr "Your request has been approved." + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "Your request was rejected" +msgstr "Your request was rejected" + +#: etc/initialdata:390 +#: etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "Your request was rejected." + +#: html/autohandler:126 +msgid "Your username or password is incorrect" +msgstr "Il tuo username o la tua password non sono corretti" + +#: html/Admin/Elements/ModifyUser:83 +#: html/Admin/Users/Modify.html:143 +#: html/User/Prefs.html:95 +msgid "Zip" +msgstr "CAP" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "[no subject]" +msgstr "[nessun oggetto]" + +#. ($right->PrincipalObj->Object->SelfDescription) +#: html/User/Elements/DelegateRights:58 +msgid "as granted to %1" +msgstr "come concesso a %1" + +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "chiuso" + +#: html/Elements/SelectCustomFieldOperator:37 +#: html/Elements/SelectMatch:33 +msgid "contains" +msgstr "contiene" + +#: html/Elements/SelectAttachmentField:25 +msgid "content" +msgstr "contenuto" + +#: html/Elements/SelectAttachmentField:26 +msgid "content-type" +msgstr "content-type" + +#: lib/RT/Ticket_Overlay.pm:2281 +msgid "correspondence (probably) not sent" +msgstr "corrispondenza (probabilmente) non inviata" + +#: lib/RT/Ticket_Overlay.pm:2291 +msgid "correspondence sent" +msgstr "corrispondenza inviata" + +#: html/Admin/Elements/ModifyQueue:62 +#: html/Admin/Queues/Modify.html:76 +#: lib/RT/Date.pm:318 +msgid "days" +msgstr "giorni" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "dead" +msgstr "morto" + +#: html/Search/Listing.html:74 +msgid "delete" +msgstr "elimina" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "deleted" +msgstr "eliminato" + +#: html/Search/Elements/PickRestriction:67 +msgid "does not match" +msgstr "non corrisponde a" + +#: html/Elements/SelectCustomFieldOperator:37 +#: html/Elements/SelectMatch:34 +msgid "doesn't contain" +msgstr "non contiene" + +#: html/Elements/SelectEqualityOperator:37 +msgid "equal to" +msgstr "uguale a" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "false" +msgstr "falso" + +#: html/Elements/SelectAttachmentField:27 +msgid "filename" +msgstr "nome file" + +#: html/Elements/SelectCustomFieldOperator:37 +#: html/Elements/SelectEqualityOperator:37 +msgid "greater than" +msgstr "più grande di" + +#. ($self->Name) +#: lib/RT/Group_Overlay.pm:193 +msgid "group '%1'" +msgstr "gruppo '%1'" + +#: lib/RT/Date.pm:314 +msgid "hours" +msgstr "ore" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "id" +msgstr "id" + +#: html/Elements/SelectBoolean:31 +#: html/Elements/SelectCustomFieldOperator:37 +#: html/Elements/SelectMatch:35 +#: html/Search/Elements/PickRestriction:46 +#: html/Search/Elements/PickRestriction:75 +#: html/Search/Elements/PickRestriction:87 +msgid "is" +msgstr "è" + +#: html/Elements/SelectBoolean:35 +#: html/Elements/SelectCustomFieldOperator:37 +#: html/Elements/SelectMatch:36 +#: html/Search/Elements/PickRestriction:47 +#: html/Search/Elements/PickRestriction:76 +#: html/Search/Elements/PickRestriction:88 +msgid "isn't" +msgstr "non è" + +#: html/Elements/SelectCustomFieldOperator:37 +#: html/Elements/SelectEqualityOperator:37 +msgid "less than" +msgstr "minore di" + +#: html/Search/Elements/PickRestriction:66 +msgid "matches" +msgstr "corrisponde a" + +#: lib/RT/Date.pm:310 +msgid "min" +msgstr "min" + +#: html/Ticket/Update.html:65 +msgid "minutes" +msgstr "minuti" + +#: bin/rt-commit-handler:764 +msgid "" +"modifications\\n" +"\\n" +msgstr "" +"modifiche\\n" +"\\n" + +#: lib/RT/Date.pm:326 +msgid "months" +msgstr "mesi" + +#: lib/RT/Queue_Overlay.pm:57 +msgid "new" +msgstr "nuovo" + +#: html/Admin/Elements/EditScrips:42 +msgid "no value" +msgstr "nessun valore" + +#: html/Ticket/Elements/EditWatchers:27 +msgid "none" +msgstr "nessuno" + +#: html/Elements/SelectEqualityOperator:37 +msgid "not equal to" +msgstr "diverso da" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "notlike" +msgstr "diverso da" + +#: html/SelfService/Elements/MyRequests:60 +#: lib/RT/Queue_Overlay.pm:58 +msgid "open" +msgstr "aperto" + +#. ($self->Name, $user->Name) +#: lib/RT/Group_Overlay.pm:198 +msgid "personal group '%1' for user '%2'" +msgstr "Gruppo personale '%1' per l'utente '%2'" + +#. ($queue->Name, $self->Type) +#: lib/RT/Group_Overlay.pm:206 +msgid "queue %1 %2" +msgstr "coda %1 %2" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "rejected" +msgstr "rifiutato" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "resolved" +msgstr "risolto" + +#: lib/RT/Date.pm:306 +msgid "sec" +msgstr "sec" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "stalled" +msgstr "in stallo" + +#. ($self->Type) +#: lib/RT/Group_Overlay.pm:201 +msgid "system %1" +msgstr "sistema %1" + +#. ($self->Type) +#: lib/RT/Group_Overlay.pm:212 +msgid "system group '%1'" +msgstr "gruppo di sistema '%1'" + +#: html/Elements/Error:41 +#: html/SelfService/Error.html:41 +msgid "the calling component did not specify why" +msgstr "the calling component did not specify why" + +#. ($self->Instance, $self->Type) +#: lib/RT/Group_Overlay.pm:209 +msgid "ticket #%1 %2" +msgstr "ticket n°%1 %2" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "true" +msgstr "vero" + +#. ($self->Id) +#: lib/RT/Group_Overlay.pm:215 +msgid "undescribed group %1" +msgstr "undescribed group %1" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "undescripbed group %1" +msgstr "undescripbed group %1" + +#. ($user->Object->Name) +#: lib/RT/Group_Overlay.pm:190 +msgid "user %1" +msgstr "utente %1" + +#: lib/RT/Date.pm:322 +msgid "weeks" +msgstr "settimane" + +#: NOT +#: FOUND +#: IN +#: SOURCE +msgid "with template %1" +msgstr "con il modello %1" + +#: lib/RT/Date.pm:330 +msgid "years" +msgstr "anni" + diff --git a/rt/lib/RT/I18N/ru.po b/rt/lib/RT/I18N/ru.po index eb1434606..d5ef7fd0c 100644 --- a/rt/lib/RT/I18N/ru.po +++ b/rt/lib/RT/I18N/ru.po @@ -62,10 +62,6 @@ msgstr "%1 %2 изменено на %3" msgid "%1 %2 deleted" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 %2 of group %3" -msgstr "" - #: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" @@ -151,11 +147,7 @@ msgstr "%1 изменилоÑÑŒ Ñ %2 на %3" #: lib/RT/Interface/Web.pm:857 msgid "%1 could not be set to %2." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 couldn't init a transaction (%2)\\n" -msgstr "" +msgstr "ÐÐµÐ»ÑŒÐ·Ñ ÑƒÑтановить %1 в %2." #: lib/RT/Ticket_Overlay.pm:2813 #. ($self) @@ -165,12 +157,12 @@ msgstr "%1 не могу закрыть тикет. Возможно, база #: html/Elements/MyTickets:25 #. ($rows) msgid "%1 highest priority tickets I own..." -msgstr "" +msgstr "%1 Ñамых приоритетных моих тикетов..." #: html/Elements/MyRequests:25 #. ($rows) msgid "%1 highest priority tickets I requested..." -msgstr "" +msgstr "%1 Ñамых приоритетных тикетов, запрошенных мной..." #: bin/rt-crontool:161 #. ($0) @@ -192,10 +184,6 @@ msgstr "%1 больше не ÑвлÑетÑÑ %2 Ð´Ð»Ñ Ñтого тикета. 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 "" - #: html/Ticket/Elements/ShowBasics:36 #. ($TimeWorked) msgid "%1 min" @@ -208,7 +196,7 @@ msgstr "%1 не отображаетÑÑ" #: html/User/Elements/DelegateRights:76 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" -msgstr "" +msgstr "%1 права" #: NOT FOUND IN SOURCE msgid "%1 succeeded\\n" @@ -222,10 +210,6 @@ msgstr "%1 тип не извеÑтен Ð´Ð»Ñ $MessageId" msgid "%1 type unknown for %2" msgstr "%1 тип не извеÑтен Ð´Ð»Ñ %2" -#: NOT FOUND IN SOURCE -msgid "%1 was created without a CurrentUser\\n" -msgstr "" - #: lib/RT/Action/ResolveMembers.pm:42 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." @@ -259,22 +243,11 @@ msgstr "'%1' ÑвлÑетÑÑ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¼ значением ÑтатуÑа 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/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 msgid "(Check box to delete)" msgstr "(Пометьте то, что хотите удалить)" -#: NOT FOUND IN SOURCE -msgid "(Check boxes to delete)" -msgstr "" - #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "(Введите номера или ÑÑылки на тикеты. ÐеÑколько тикетов разделÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸.)" @@ -283,15 +256,11 @@ msgstr "(Введите номера или ÑÑылки на тикеты. Ðе #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) msgid "(If left blank, will default to %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(No Value)" -msgstr "" +msgstr "(ЕÑли пуÑтое, то по умолчанию равно %1" #: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 msgid "(No custom fields)" -msgstr "" +msgstr "(Ðет дополнительных полей)" #: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 msgid "(No members)" @@ -303,11 +272,11 @@ msgstr "(Ðет Ñкриптов)" #: html/Admin/Elements/EditTemplates:31 msgid "(No templates)" -msgstr "" +msgstr "(Ðет шаблонов)" #: html/Ticket/Update.html:85 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 "" +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.)" @@ -315,11 +284,11 @@ msgstr "(Ðа Ñти адреÑа [разделенные запÑтой] отп #: html/Ticket/Create.html:79 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 "" +msgstr "(Ðа Ñти адреÑа [разделенные запÑтой] отправлÑÑŽÑ‚ÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ ÑообщениÑ. ÐдреÑа <b>ÑохранÑÑŽÑ‚ÑÑ</b> Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" #: html/Ticket/Update.html:81 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 "" +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.)" @@ -327,7 +296,7 @@ msgstr "(Ðа Ñти адреÑа [разделенные запÑтой] отп #: html/Ticket/Create.html:69 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 "" +msgstr "(Ðа Ñти адреÑа [разделенные запÑтой] отправлÑÑŽÑ‚ÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ ÑообщениÑ. ÐдреÑа <b>ÑохранÑÑŽÑ‚ÑÑ</b> Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" #: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 msgid "(empty)" @@ -335,7 +304,7 @@ msgstr "(пуÑто)" #: html/Admin/Users/index.html:39 msgid "(no name listed)" -msgstr "" +msgstr "(не указано имен)" #: html/Elements/MyRequests:43 html/Elements/MyTickets:45 msgid "(no subject)" @@ -351,15 +320,11 @@ msgstr "(только один тикет)" #: html/Elements/MyRequests:52 html/Elements/MyTickets:55 msgid "(pending approval)" -msgstr "" +msgstr "(в ожидании визы)" #: html/Elements/MyRequests:54 html/Elements/MyTickets:57 msgid "(pending other tickets)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(requestor's group)" -msgstr "" +msgstr "(в ожидании других тикетов)" #: html/Admin/Users/Modify.html:50 msgid "(required)" @@ -367,7 +332,7 @@ msgstr "(требуетÑÑ)" #: html/Ticket/Elements/ShowTransaction:105 msgid "(untitled)" -msgstr "" +msgstr "(без названиÑ)" #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." @@ -390,29 +355,9 @@ msgstr "" msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"Создать тикет в очереди\"> %1" -#: NOT FOUND IN SOURCE -msgid "??????" -msgstr "" - #: etc/initialdata:203 msgid "A blank template" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE Deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE Loaded" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be found" -msgstr "" +msgstr "ПуÑтой шаблон" #: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 msgid "ACE not found" @@ -428,7 +373,7 @@ msgstr "Прекращаем работу во избежание нежелат #: html/User/Elements/Tabs:32 msgid "About me" -msgstr "" +msgstr "Обо мне" #: html/Admin/Users/Modify.html:80 msgid "Access control" @@ -441,7 +386,7 @@ msgstr "ДейÑтвие" #: lib/RT/Scrip_Overlay.pm:147 #. ($args{'ScripAction'}) msgid "Action %1 not found" -msgstr "" +msgstr "дейÑтвие %1 не найдено" #: bin/rt-crontool:123 msgid "Action committed." @@ -461,35 +406,12 @@ msgstr "Добавить копию" #: html/Ticket/Create.html:114 html/Ticket/Update.html:100 msgid "Add More Files" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Add Next State" -msgstr "" +msgstr "Добавить еще файлы" #: html/Search/Bulk.html:88 msgid "Add Requestor" 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:55 msgid "Add a scrip which will apply to all queues" @@ -507,10 +429,6 @@ msgstr "Добавить пользователей" msgid "Add new watchers" msgstr "Добавить наблюдателей" -#: NOT FOUND IN SOURCE -msgid "AddNextState" -msgstr "" - #: lib/RT/Queue_Overlay.pm:643 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" @@ -535,7 +453,7 @@ msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" #: etc/initialdata:274 msgid "Admin Comment" -msgstr "" +msgstr "Комментарий админа" #: etc/initialdata:256 msgid "Admin Correspondence" @@ -561,22 +479,10 @@ msgstr "Группы" msgid "Admin/Queue/Basics" msgstr "Параметры очереди" -#: NOT FOUND IN SOURCE -msgid "AdminAllPersonalGroups" -msgstr "" - #: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 msgid "AdminCc" msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" -#: NOT FOUND IN SOURCE -msgid "AdminComment" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AdminCorrespondence" -msgstr "" - #: lib/RT/Queue_Overlay.pm:72 msgid "AdminCustomFields" msgstr "" @@ -605,45 +511,21 @@ msgstr "" msgid "Administrative Cc" msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" -#: NOT FOUND IN SOURCE -msgid "Admins" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search" -msgstr "" - #: html/Elements/SelectDateRelation:36 msgid "After" msgstr "ПоÑле" -#: NOT FOUND IN SOURCE -msgid "Age" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Alias" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Alias for" -msgstr "" - #: html/Admin/Elements/EditCustomFields:96 msgid "All Custom Fields" -msgstr "" +msgstr "Ð’Ñе дополнительные полÑ" #: html/Admin/Queues/index.html:53 msgid "All Queues" msgstr "Ð’Ñе очереди" -#: NOT FOUND IN SOURCE -msgid "Always sends a message to the requestors independent of message sender" -msgstr "" - #: html/Elements/Tabs:58 msgid "Approval" -msgstr "" +msgstr "Виза" #: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 #. ($Ticket->Id, $Ticket->Subject) @@ -663,14 +545,6 @@ msgstr "Виза #%1: ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð½Ðµ Ñохранены из-за о msgid "Approval #%1: Notes recorded" msgstr "Виза #%1: ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñаны" -#: NOT FOUND IN SOURCE -msgid "Approval Details" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Approval diagram" -msgstr "" - #: html/Approvals/Elements/Approve:45 msgid "Approve" msgstr "Завизировать" @@ -701,7 +575,7 @@ msgstr "Вложить файл" #: html/Ticket/Create.html:98 html/Ticket/Update.html:89 msgid "Attached file" -msgstr "" +msgstr "Вложенный файл" #: html/SelfService/Attachment/dhandler:36 msgid "Attachment '%1' could not be loaded" @@ -723,25 +597,17 @@ msgstr "ВложениÑ" msgid "Aug." msgstr "Ðвг." -#: NOT FOUND IN SOURCE -msgid "August" -msgstr "" - #: html/Admin/Elements/ModifyUser:66 msgid "AuthSystem" msgstr "Тип региÑтрации" #: etc/initialdata:206 msgid "Autoreply" -msgstr "" +msgstr "Ðвтоответ" #: etc/initialdata:72 msgid "Autoreply To Requestors" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AutoreplyToRequestors" -msgstr "" +msgstr "Ðвтоответ инициатору запроÑа" #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" @@ -1007,9 +873,9 @@ msgstr "Ðе могу Ñоздать пользователÑ" #: NOT FOUND IN SOURCE msgid "Could not create watcher for requestor" -msgstr "" +msgstr "Ðе могу Ñоздать Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ñ‚Ð¾Ñ€Ð° запроÑа" -#: NOT FOUND IN SOURCE +#: NOT FOUND IN SOURCÐе могу Ñоздать Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ñ‚Ð¾Ñ€Ð° запроÑаE msgid "Could not find a ticket with id %1" msgstr "Ðе могу найти тикет по идентификатору %1" @@ -1084,7 +950,7 @@ msgstr "Ðе найти Ñтого значениÑ" #: NOT FOUND IN SOURCE msgid "Couldn't find that watcher" -msgstr "" +msgstr "Ðе могу найти данного наблюдателÑ" #: NOT FOUND IN SOURCE msgid "Couldn't find user\\n" @@ -1163,11 +1029,11 @@ msgstr "Добавить поле" #: html/Admin/Queues/CustomField.html:48 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" -msgstr "" +msgstr "Создать дополнительное поле Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ 1" #: html/Admin/Global/CustomField.html:48 msgid "Create a CustomField which applies to all queues" -msgstr "" +msgstr "Создать дополнительное поле Ð´Ð»Ñ Ð²Ñех очередей" #: NOT FOUND IN SOURCE msgid "Create a new Custom Field" @@ -1272,7 +1138,7 @@ msgstr "" #: lib/RT/Queue_Overlay.pm:84 msgid "CreateTicket" -msgstr "" +msgstr "Создать тикет" #: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 msgid "Created" @@ -1305,7 +1171,7 @@ msgstr "Текущие права" #: html/Search/Listing.html:71 msgid "Current search criteria" -msgstr "" +msgstr "Текущие критерии поиÑка" #: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 msgid "Current watchers" @@ -1314,7 +1180,7 @@ msgstr "Текущие наблюдатели" #: html/Admin/Global/CustomField.html:55 #. ($CustomField) msgid "Custom Field #%1" -msgstr "" +msgstr "Дополнительное поле #%1" #: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 msgid "Custom Fields" @@ -1397,21 +1263,13 @@ msgstr "Даты" msgid "Dec." msgstr "Дек." -#: NOT FOUND IN SOURCE -msgid "December" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "" - #: etc/initialdata:207 msgid "Default Autoresponse template" -msgstr "" +msgstr "Шаблон автоответа по умолчанию" #: etc/initialdata:275 msgid "Default admin comment template" -msgstr "" +msgstr "Шаблон ответа админа по умолчанию" #: etc/initialdata:257 msgid "Default admin correspondence template" @@ -1423,7 +1281,7 @@ msgstr "" #: etc/initialdata:238 msgid "Default transaction template" -msgstr "" +msgstr "Шаблон транзакции по умолчанию" #: lib/RT/Transaction_Overlay.pm:645 #. ($type, $self->Field, $self->OldValue, $self->NewValue) @@ -1436,7 +1294,7 @@ msgstr "Передача прав" #: lib/RT/System.pm:63 msgid "Delegate specific rights which have been granted to you." -msgstr "" +msgstr "Делегирование отдельных прав, которые вам даны." #: lib/RT/System.pm:63 msgid "DelegateRights" @@ -1444,15 +1302,11 @@ msgstr "" #: html/User/Elements/Tabs:38 msgid "Delegation" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Delete" -msgstr "" +msgstr "Делегирование прав" #: lib/RT/Queue_Overlay.pm:90 msgid "Delete tickets" -msgstr "" +msgstr "Удаление тикетов" #: lib/RT/Queue_Overlay.pm:90 msgid "DeleteTicket" @@ -1470,14 +1324,6 @@ msgstr "Удаление Ñтого объекта нарушит ÑÑылочн 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:46 msgid "Deny" msgstr "Отказать" @@ -1549,7 +1395,7 @@ msgstr "Ðе обновлÑть Ñту Ñтраницу" #: html/Search/Elements/PickRestriction:114 msgid "Don't show search results" -msgstr "" +msgstr "Ðе показывать результаты поиÑка" #: html/Ticket/Elements/ShowTransaction:105 msgid "Download" @@ -1588,7 +1434,7 @@ msgstr "Изменение ÑвÑзей" #: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" -msgstr "" +msgstr "Редактировать шаблоны Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" #: NOT FOUND IN SOURCE msgid "Edit keywords" @@ -1658,11 +1504,11 @@ msgstr "EmailEncoding" #: html/Admin/Elements/EditCustomField:36 msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "" +msgstr "Разрешено (ÑнÑтие отметки запрещает данное дополнительное поле)" #: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 msgid "Enabled (Unchecking this box disables this group)" -msgstr "" +msgstr "Разрешено (ÑнÑтие отметки запрещает данную группу)" #: html/Admin/Queues/Modify.html:84 msgid "Enabled (Unchecking this box disables this queue)" @@ -1670,7 +1516,7 @@ msgstr "Включена (СнÑÑ‚Ð°Ñ Ð³Ð°Ð»Ð¾Ñ‡ÐºÐ° означает откл #: html/Admin/Elements/EditCustomFields:99 msgid "Enabled Custom Fields" -msgstr "" +msgstr "Разрешенные дополнительные полÑ" #: html/Admin/Queues/index.html:56 msgid "Enabled Queues" @@ -1683,11 +1529,11 @@ msgstr "Включен ÑÑ‚Ð°Ñ‚ÑƒÑ %1" #: lib/RT/CustomField_Overlay.pm:361 msgid "Enter multiple values" -msgstr "" +msgstr "Введите неÑколько значений" #: lib/RT/CustomField_Overlay.pm:358 msgid "Enter one value" -msgstr "" +msgstr "Введите одно значение" #: html/Ticket/Elements/EditLinks:112 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." @@ -1697,10 +1543,6 @@ msgstr "Введите номера или ÑÑылки на тикеты. Ðе msgid "Error" msgstr "Ошибка" -#: NOT FOUND IN SOURCE -msgid "Error adding watcher" -msgstr "" - #: lib/RT/Queue_Overlay.pm:555 msgid "Error in parameters to Queue->AddWatcher" msgstr "Ошибка в параметрах Queue->AddWatcher" @@ -1772,7 +1614,7 @@ msgstr "" #: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 msgid "Find group whose" -msgstr "" +msgstr "Ðайти группы, у которых" #: html/Elements/Quicksearch:25 msgid "Find new/open tickets" @@ -1784,11 +1626,7 @@ msgstr "Ðайти людей, у которых" #: html/Search/Listing.html:108 msgid "Find tickets" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Finish Approval" -msgstr "" +msgstr "ПоиÑк тикетов" #: html/Ticket/Elements/Tabs:58 msgid "First" @@ -1887,7 +1725,7 @@ msgstr "" #: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 msgid "Group" -msgstr "" +msgstr "Групповые" #: NOT FOUND IN SOURCE msgid "Group %1 %2: %3" @@ -1901,10 +1739,6 @@ msgstr "Права группы" msgid "Group already has member" msgstr "Пользователь уже входит в группу" -#: NOT FOUND IN SOURCE -msgid "Group could not be created." -msgstr "" - #: html/Admin/Groups/Modify.html:77 #. ($create_msg) msgid "Group could not be created: %1" @@ -1998,7 +1832,7 @@ msgstr "" #: html/Admin/Elements/EditCustomFields:74 msgid "Include disabled custom fields in listing." -msgstr "" +msgstr "Включать отключенные дополнительные Ð¿Ð¾Ð»Ñ Ð² ÑпиÑок." #: html/Admin/Queues/index.html:43 msgid "Include disabled queues in listing." @@ -2357,7 +2191,7 @@ msgstr "MobilePhone" #: lib/RT/Queue_Overlay.pm:70 msgid "Modify Access Control List" -msgstr "" +msgstr "Изменить ÑпиÑок ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа" #: NOT FOUND IN SOURCE msgid "Modify Custom Field %1" @@ -2365,23 +2199,15 @@ msgstr "Изменение дополнительного Ð¿Ð¾Ð»Ñ %1" #: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 msgid "Modify Custom Fields which apply to all queues" -msgstr "" +msgstr "Изменить дополнительные полÑ, применÑемые кл вÑем очередÑм" #: lib/RT/Queue_Overlay.pm:73 msgid "Modify Scrip templates for this queue" -msgstr "" +msgstr "Изменить шаблоны Ñкриплетов Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ очереди" #: lib/RT/Queue_Overlay.pm:76 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 "" +msgstr "Изменить Ñкриплеты Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ очереди" #: html/Admin/Queues/CustomField.html:45 #. ($QueueObj->Name()) @@ -2401,10 +2227,6 @@ msgstr "Изменить Ñкрипт Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" msgid "Modify a scrip which applies to all queues" msgstr "Изменение Ñкрипта, который дейÑтвует Ð´Ð»Ñ Ð²Ñех очередей" -#: NOT FOUND IN SOURCE -msgid "Modify dates for # %1" -msgstr "" - #: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 #. ($TicketObj->Id) msgid "Modify dates for #%1" @@ -2423,29 +2245,18 @@ msgstr "Изменение глобальных прав группы" 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:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 msgid "Modify global user rights" -msgstr "" +msgstr "Изменение глобальных прав пользователÑ" #: html/Admin/Global/UserRights.html:33 msgid "Modify global user rights." -msgstr "Изменение глобальных прав пользователÑ" +msgstr "Изменение глобальных прав пользователÑ." #: lib/RT/Group_Overlay.pm:146 msgid "Modify group metadata or delete group" -msgstr "" +msgstr "Изменение метаданных группы или ее удаление" #: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 #. ($GroupObj->Name) @@ -2493,7 +2304,7 @@ msgstr "Изменение шаблона %1" #: html/Admin/Global/Templates.html:44 msgid "Modify templates which apply to all queues" -msgstr "" +msgstr "Изменить шаблоны, которые применÑÑŽÑ‚ÑÑ ÐºÐ¾ вÑем очередÑм" #: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 #. ($Group->Name) @@ -2502,7 +2313,7 @@ msgstr "ÐаÑтройки Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ %1" #: lib/RT/Queue_Overlay.pm:71 msgid "Modify the queue watchers" -msgstr "" +msgstr "Изменить очередь наблюдателей" #: html/Admin/Users/Modify.html:236 #. ($UserObj->Name) @@ -2521,7 +2332,7 @@ msgstr "Изменение тикета # %1" #: lib/RT/Queue_Overlay.pm:88 msgid "Modify tickets" -msgstr "" +msgstr "Изменить тикеты" #: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 #. ($GroupObj->Name) @@ -2596,7 +2407,7 @@ msgstr "Мои визы" #: html/Approvals/index.html:25 html/Approvals/index.html:26 msgid "My approvals" -msgstr "" +msgstr "Мои визы" #: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 msgid "Name" @@ -2606,10 +2417,6 @@ msgstr "ИмÑ" msgid "Name in use" msgstr "Ð˜Ð¼Ñ ÑƒÐ¶Ðµ иÑпользуетÑÑ" -#: NOT FOUND IN SOURCE -msgid "Need approval from system administrator" -msgstr "" - #: html/Ticket/Elements/ShowDates:52 msgid "Never" msgstr "" @@ -2632,15 +2439,15 @@ msgstr "Ðовые ÑвÑзи" #: html/Ticket/Elements/Tabs:36 msgid "New Search" -msgstr "" +msgstr "Ðовый поиÑк" #: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 msgid "New custom field" -msgstr "" +msgstr "Ðовое дополнительное поле" #: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 msgid "New group" -msgstr "" +msgstr "ÐÐ¾Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°" #: html/SelfService/Prefs.html:32 msgid "New password" @@ -2652,7 +2459,7 @@ msgstr "Отправлено Ñообщение Ñ Ð½Ð¾Ð²Ñ‹Ð¼ паролем" #: html/Admin/Elements/QueueTabs:70 msgid "New queue" -msgstr "" +msgstr "ÐÐ¾Ð²Ð°Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÑŒ" #: html/SelfService/Elements/Tabs:63 msgid "New request" @@ -2664,7 +2471,7 @@ msgstr "Ðовые права" #: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 msgid "New scrip" -msgstr "" +msgstr "Ðовый Ñкриплет" #: NOT FOUND IN SOURCE msgid "New search" @@ -2672,7 +2479,7 @@ msgstr "Ðовый поиÑк" #: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 msgid "New template" -msgstr "" +msgstr "Ðовый шаблон" #: lib/RT/Ticket_Overlay.pm:2771 msgid "New ticket doesn't exist" @@ -2680,7 +2487,7 @@ msgstr "Ðовый тикет не ÑущеÑтвует" #: html/Admin/Elements/UserTabs:52 msgid "New user" -msgstr "" +msgstr "Ðовый пользователь" #: html/Admin/Elements/CreateUserCalled:26 msgid "New user called" @@ -2954,7 +2761,7 @@ msgstr "Ðа" #: etc/initialdata:155 msgid "On Comment" -msgstr "" +msgstr "Ðа комментарий" #: etc/initialdata:148 msgid "On Correspond" @@ -2962,15 +2769,15 @@ msgstr "" #: etc/initialdata:137 msgid "On Create" -msgstr "" +msgstr "Ðа Ñоздание" #: etc/initialdata:169 msgid "On Owner Change" -msgstr "" +msgstr "Ðа изменение владельца" #: etc/initialdata:177 msgid "On Queue Change" -msgstr "" +msgstr "Ðа изменение очереди" #: etc/initialdata:183 msgid "On Resolve" @@ -2978,11 +2785,11 @@ msgstr "" #: etc/initialdata:161 msgid "On Status Change" -msgstr "" +msgstr "на изменение ÑтатуÑа" #: etc/initialdata:142 msgid "On Transaction" -msgstr "" +msgstr "Ðа транзакцию" #: html/Approvals/Elements/PendingMyApproval:50 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") @@ -3108,7 +2915,7 @@ msgstr "Ð’ доÑтупе отказано" #: html/User/Elements/Tabs:35 msgid "Personal Groups" -msgstr "" +msgstr "Личные группы" #: html/User/Groups/index.html:30 html/User/Groups/index.html:40 msgid "Personal groups" @@ -3169,7 +2976,7 @@ msgstr "Приоритет начинаетÑÑ Ñ" #: etc/initialdata:25 msgid "Privileged" -msgstr "" +msgstr "Привилегированные" #: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 #. (loc_fuzzy($msg)) @@ -3299,7 +3106,7 @@ msgstr "СамообÑлуживание RT / Закрытые тикеты" #: html/index.html:25 html/index.html:28 msgid "RT at a glance" -msgstr "" +msgstr "Обзор RT" #: NOT FOUND IN SOURCE msgid "RT couldn't authenticate you" @@ -3320,11 +3127,7 @@ msgstr "RT не Ñмог проверить Ñту подпиÑÑŒ PGP. \\n" #: html/Elements/PageLayout:26 #. ($RT::rtname) msgid "RT for %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT for %1: %2" -msgstr "" +msgstr "RT Ð´Ð»Ñ %1" #: NOT FOUND IN SOURCE msgid "RT has proccessed your commands" @@ -3602,39 +3405,39 @@ msgstr "" #: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 msgid "Select group" -msgstr "" +msgstr "Выбрать группу" #: lib/RT/CustomField_Overlay.pm:355 msgid "Select multiple values" -msgstr "" +msgstr "Выбрать неÑколько значений" #: lib/RT/CustomField_Overlay.pm:352 msgid "Select one value" -msgstr "" +msgstr "Выбрать одно значение" #: html/Admin/Elements/QueueTabs:67 msgid "Select queue" -msgstr "" +msgstr "Выбрать очередь" #: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 msgid "Select scrip" -msgstr "" +msgstr "Выбрать Ñкриплет" #: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 msgid "Select template" -msgstr "" +msgstr "Выбрать шаблон" #: html/Admin/Elements/UserTabs:49 msgid "Select user" -msgstr "" +msgstr "Выбрать пользователÑ" #: lib/RT/CustomField_Overlay.pm:36 msgid "SelectMultiple" -msgstr "" +msgstr "Выбрать неÑколько" #: lib/RT/CustomField_Overlay.pm:35 msgid "SelectSingle" -msgstr "" +msgstr "Выбрать одно" #: html/SelfService/index.html:25 msgid "Self Service" @@ -3642,15 +3445,15 @@ msgstr "СамообÑлуживание" #: etc/initialdata:114 msgid "Send mail to all watchers" -msgstr "" +msgstr "Отправить Ñообщение вÑем наблюдателÑм" #: etc/initialdata:110 msgid "Send mail to all watchers as a \"comment\"" -msgstr "" +msgstr "Отправить Ñообщение вÑем наблюдателÑм как \"комментарий\"" #: etc/initialdata:105 msgid "Send mail to requestors and Ccs" -msgstr "" +msgstr "Отправить Ñообщение вÑем инициаторам запроÑа и CCs" #: etc/initialdata:100 msgid "Send mail to requestors and Ccs as a comment" @@ -3680,14 +3483,6 @@ msgstr "" msgid "Sep." msgstr "Сен." -#: NOT FOUND IN SOURCE -msgid "September" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Show Results" -msgstr "ИÑкать" - #: html/Approvals/Elements/PendingMyApproval:44 msgid "Show approved requests" msgstr "Показать завизированные запроÑÑ‹" @@ -3710,15 +3505,15 @@ msgstr "Показать ожидающие запроÑÑ‹" #: html/Approvals/Elements/PendingMyApproval:46 msgid "Show requests awaiting other approvals" -msgstr "" +msgstr "Показать запроÑÑ‹, ждущие других виз" #: lib/RT/Queue_Overlay.pm:81 msgid "Show ticket private commentary" -msgstr "" +msgstr "Показать приватные комментарии по тикету" #: lib/RT/Queue_Overlay.pm:79 msgid "Show ticket summaries" -msgstr "" +msgstr "Показать общую информацию по запроÑу" #: lib/RT/Queue_Overlay.pm:69 msgid "ShowACL" @@ -3822,10 +3617,6 @@ msgstr "" msgid "Status changed from %1 to %2" msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½ Ñ %1 на %2" -#: NOT FOUND IN SOURCE -msgid "StatusChange" -msgstr "" - #: html/Ticket/Elements/Tabs:147 msgid "Steal" msgstr "Отобрать" @@ -3842,16 +3633,12 @@ msgstr "Тема" #: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 #. ($self->Data) msgid "Subject changed to %1" -msgstr "" +msgstr "Тема изменена на %1" #: html/Elements/Submit:59 msgid "Submit" msgstr "Готово" -#: NOT FOUND IN SOURCE -msgid "Submit Workflow" -msgstr "" - #: lib/RT/Group_Overlay.pm:749 msgid "Succeeded" msgstr "" @@ -3862,24 +3649,16 @@ msgstr "Ð’Ñк." #: lib/RT/System.pm:54 msgid "SuperUser" -msgstr "" +msgstr "ÐдминиÑтратор" #: html/User/Elements/DelegateRights:77 msgid "System" -msgstr "" +msgstr "СиÑтемные" #: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 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/ACE_Overlay.pm:616 msgid "System error. Right not delegated." msgstr "Ошибка ÑиÑтемы. Право не было делегировано." @@ -3888,17 +3667,13 @@ msgstr "Ошибка ÑиÑтемы. Право не было делегиров msgid "System error. Right not granted." msgstr "Ошибка ÑиÑтемы. Право не было выдано." -#: NOT FOUND IN SOURCE -msgid "System error. Unable to grant rights." -msgstr "" - #: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 msgid "System groups" msgstr "СиÑтемные группы" #: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 msgid "SystemRolegroup for internal use" -msgstr "" +msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ³Ð¾ иÑпользованиÑ" #: lib/RT/CurrentUser.pm:320 msgid "TEST_STRING" @@ -3919,11 +3694,11 @@ msgstr "Шаблон" #: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 #. ($TemplateObj->Id()) msgid "Template #%1" -msgstr "" +msgstr "Шаблон #%1" #: html/Admin/Elements/EditTemplates:89 msgid "Template deleted" -msgstr "" +msgstr "Шаблон удален" #: lib/RT/Scrip_Overlay.pm:153 msgid "Template not found" @@ -3947,7 +3722,7 @@ msgstr "Шаблоны Ð´Ð»Ñ %1\\n" #: lib/RT/Interface/Web.pm:858 msgid "That is already the current value" -msgstr "" +msgstr "Это уже текущее значение" #: lib/RT/CustomField_Overlay.pm:178 msgid "That is not a value for this custom field" @@ -4013,10 +3788,6 @@ msgstr "Этот пользователь теперь имеет вÑе пол msgid "That user is now unprivileged" msgstr "Этот пользователь теперь не имеет полномочий" -#: NOT FOUND IN SOURCE -msgid "That user is now unprivilegedileged" -msgstr "" - #: lib/RT/Ticket_Overlay.pm:2944 msgid "That user may not own tickets in that queue" msgstr "Этот пользователь не может владеть тикетами из Ñтой очереди" @@ -4051,15 +3822,15 @@ msgstr "Эти команды не были иÑполнены:\\n\\n" #: lib/RT/Interface/Web.pm:861 msgid "The new value has been set." -msgstr "" +msgstr "Ðовое значение уÑтановлено" #: lib/RT/ACE_Overlay.pm:86 msgid "The owner of a ticket" -msgstr "" +msgstr "Владелец тикета" #: lib/RT/ACE_Overlay.pm:87 msgid "The requestor of a ticket" -msgstr "" +msgstr "Кто отправил тикет" #: html/Admin/Elements/EditUserComments:26 msgid "These comments aren't generally visible to the user" @@ -4080,7 +3851,7 @@ msgstr "Похоже, что Ñта Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð½Ðµ имеет инф #: html/Ticket/Elements/ShowRequestor:47 #. ($rows) msgid "This user's %1 highest priority tickets" -msgstr "" +msgstr "%1 тикетов макÑимального приоритета Ñтого пользователÑ" #: NOT FOUND IN SOURCE msgid "This user's 25 highest priority tickets" @@ -4090,18 +3861,6 @@ msgstr "25 важнейших тикетов пользователÑ..." 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 "" - #: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" @@ -4154,7 +3913,7 @@ msgstr "Тип данных тикета" #: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 msgid "Ticket could not be created due to an internal error" -msgstr "" +msgstr "Тикет не может быть Ñоздан из-за внутренней ошибки" #: lib/RT/Transaction_Overlay.pm:522 msgid "Ticket created" @@ -4172,17 +3931,13 @@ msgstr "Тикет удален" msgid "Ticket id not found" msgstr "Идентификатор тикета не найден" -#: NOT FOUND IN SOURCE -msgid "Ticket killed" -msgstr "" - #: html/REST/1.0/modify:36 html/REST/1.0/update:41 msgid "Ticket not found" msgstr "Тикет не найден" #: etc/initialdata:289 msgid "Ticket status changed" -msgstr "" +msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚Ð¸ÐºÐµÑ‚Ð° изменен" #: html/Ticket/Update.html:39 msgid "Ticket watchers" @@ -4190,7 +3945,7 @@ msgstr "Ðаблюдатели Ð´Ð»Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð°" #: html/Elements/Tabs:49 msgid "Tickets" -msgstr "" +msgstr "Тикеты" #: lib/RT/Tickets_Overlay.pm:1383 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) @@ -4231,21 +3986,17 @@ msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°" msgid "Time worked" msgstr "Ð’ работе" -#: NOT FOUND IN SOURCE -msgid "TimeLeft" -msgstr "" - #: lib/RT/Ticket_Overlay.pm:1165 msgid "TimeWorked" -msgstr "" +msgstr "Ð’ работе" #: bin/rt-commit-handler:402 msgid "To generate a diff of this commit:" -msgstr "Ð”Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ дифа Ñтого коммита:" +msgstr "Ð”Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ изменений Ñтого коммита:" #: bin/rt-commit-handler:391 msgid "To generate a diff of this commit:\\n" -msgstr "Ð”Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ дифа Ñтого коммита:\\n" +msgstr "Ð”Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ изменений Ñтого коммита:\\n" #: lib/RT/Ticket_Overlay.pm:1168 msgid "Told" @@ -4253,7 +4004,7 @@ msgstr "Контакт" #: etc/initialdata:237 msgid "Transaction" -msgstr "" +msgstr "ТранзакциÑ" #: lib/RT/Transaction_Overlay.pm:642 #. ($self->Data) @@ -4307,7 +4058,7 @@ msgstr "Ðе ограничено" #: etc/initialdata:32 msgid "Unprivileged" -msgstr "" +msgstr "Ðепривилегированный" #: lib/RT/Transaction_Overlay.pm:571 msgid "Untaken" @@ -4361,12 +4112,12 @@ msgstr "Обновить тикет # %1" #: html/SelfService/Update.html:50 #. ($Ticket->id) msgid "Update ticket #%1" -msgstr "Обновить тикет # %1" +msgstr "Обновить тикет #%1" #: html/Ticket/Update.html:135 #. ($Ticket->id, $Ticket->Subject) msgid "Update ticket #%1 (%2)" -msgstr "" +msgstr "Обновить тикет #%1 (%2)" #: lib/RT/Interface/Web.pm:373 msgid "Update type was neither correspondence nor comment." @@ -4461,10 +4212,6 @@ msgstr "" msgid "WatchAsAdminCc" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Watcher loaded" -msgstr "" - #: html/Admin/Elements/QueueTabs:42 msgid "Watchers" msgstr "Ðаблюдатели" @@ -4585,19 +4332,15 @@ msgstr "ÐдминиÑтратор RT неправильно наÑтроил п #: etc/initialdata:429 etc/upgrade/2.1.71:146 msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "" +msgstr "Ваш Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¸Ð» %1. Другие Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ продолжать находитьÑÑ Ð² ожидании." #: etc/initialdata:463 etc/upgrade/2.1.71:180 msgid "Your request has been approved." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Your request was rejected" -msgstr "" +msgstr "Ваш Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½." #: etc/initialdata:384 etc/upgrade/2.1.71:101 msgid "Your request was rejected." -msgstr "" +msgstr "Ваш Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» отвергнут." #: html/autohandler:136 html/autohandler:142 msgid "Your username or password is incorrect" @@ -4607,10 +4350,6 @@ msgstr "Ð’Ñ‹ ввели неверное Ð¸Ð¼Ñ Ð¸Ð»Ð¸ пароль" msgid "Zip" msgstr "ИндекÑ" -#: NOT FOUND IN SOURCE -msgid "[no subject]" -msgstr "" - #: html/User/Elements/DelegateRights:59 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" @@ -4640,10 +4379,6 @@ msgstr "отправлено Ñообщение" msgid "days" msgstr "дней" -#: NOT FOUND IN SOURCE -msgid "dead" -msgstr "" - #: html/Search/Listing.html:75 msgid "delete" msgstr "удалить" @@ -4664,10 +4399,6 @@ msgstr "не Ñодержит" msgid "equal to" msgstr "равнÑетÑÑ" -#: NOT FOUND IN SOURCE -msgid "false" -msgstr "" - #: html/Elements/SelectAttachmentField:28 msgid "filename" msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" @@ -4737,10 +4468,6 @@ msgstr "нет" msgid "not equal to" msgstr "не равен" -#: NOT FOUND IN SOURCE -msgid "notlike" -msgstr "" - #: lib/RT/Queue_Overlay.pm:59 msgid "open" msgstr "открыт" @@ -4790,17 +4517,9 @@ msgstr "вызывающий компонент не указал причину msgid "ticket #%1 %2" msgstr "тикет #%1 %2" -#: NOT FOUND IN SOURCE -msgid "true" -msgstr "" - #: lib/RT/Group_Overlay.pm:216 #. ($self->Id) msgid "undescribed group %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "undescripbed group %1" msgstr "неопиÑÐ°Ð½Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° %1" #: lib/RT/Group_Overlay.pm:191 @@ -4819,8 +4538,3 @@ msgstr "Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ %1" #: lib/RT/Date.pm:331 msgid "years" msgstr "лет" - -#: NOT FOUND IN SOURCE -msgid "ニックãƒãƒ¼ãƒ " -msgstr "" - diff --git a/rt/lib/RT/I18N/zh_cn.po b/rt/lib/RT/I18N/zh_cn.po index ededc1ac3..0f0b8da60 100644 --- a/rt/lib/RT/I18N/zh_cn.po +++ b/rt/lib/RT/I18N/zh_cn.po @@ -1,4 +1,4 @@ -# Traditional Chinese localization catalog for Request Tracker (RT) +# Chinese localization catalog for Request Tracker (RT) msgid "" msgstr "" "Last-Translator: Autrijus Tang <autrijus@autrijus.org>\n" @@ -7,7 +7,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:27 html/Elements/MyTickets:27 html/Work/Elements/MyApprovals:8 html/Work/Elements/MyRequests:9 html/Work/Elements/MyTickets:9 +#: html/Elements/MyRequests:27 html/Elements/MyTickets:27 html/Work/Elements/MyApprovals:8 html/Work/Elements/MyRequests:15 html/Work/Elements/MyTickets:15 msgid "#" msgstr "#" @@ -40,7 +40,7 @@ msgstr "%*(%1) 件尚未解决的申请å•" msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:771 +#: lib/RT/Tickets_Overlay.pm:790 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -50,10 +50,11 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%7-%2-%3 %4:%5:%6 %1" -#: lib/RT/Ticket_Overlay.pm:3541 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#: lib/RT/Ticket_Overlay.pm:3588 lib/RT/Transaction_Overlay.pm:514 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Vendor.pm:19 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) +#. ($field, $new_value) msgid "%1 %2 added" msgstr "%2 已新增为 %1" @@ -62,16 +63,18 @@ msgstr "%2 已新增为 %1" msgid "%1 %2 ago" msgstr "%1 %2 之å‰" -#: lib/RT/Ticket_Overlay.pm:3547 lib/RT/Transaction_Overlay.pm:564 +#: lib/RT/Ticket_Overlay.pm:3594 lib/RT/Transaction_Overlay.pm:521 lib/RT/Transaction_Vendor.pm:25 #. ($cf->Name, $old_value, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) +#. ($field, $old_value, $new_value) msgid "%1 %2 changed to %3" msgstr "%1 已从 %2 改为 %3" -#: lib/RT/Ticket_Overlay.pm:3544 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#: lib/RT/Ticket_Overlay.pm:3591 lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:563 lib/RT/Transaction_Vendor.pm:22 #. ($cf->Name, $old_value) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) +#. ($field, $old_value) msgid "%1 %2 deleted" msgstr "%2 已自 %1 删除" @@ -121,17 +124,17 @@ msgstr "%1 - 指定欲使用的æ¡ä»¶æ¨¡å—" msgid "%1 - Specify the search module you want to use" msgstr "%1 - 指定欲使用的查询模å—" -#: lib/RT/ScripAction_Overlay.pm:121 +#: lib/RT/ScripAction_Overlay.pm:122 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "加载手续 %1" -#: html/Edit/Elements/Page:48 +#: html/Edit/Elements/Page:49 #. (scalar $count) msgid "%1 Total" msgstr "å…± %1 笔" -#: lib/RT/Ticket_Overlay.pm:3574 +#: lib/RT/Ticket_Overlay.pm:3621 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "新增 %1 作为 %2 的值" @@ -154,13 +157,13 @@ msgstr "别å %1 需è¦å¯ç”¨çš„申请å•ç¼–å·ä»¥å¤„ç† %3(出自 %2)" msgid "%1 appears to be a local object, but can't be found in the database" msgstr "%1 çœ‹æ¥æ˜¯ä¸ªæœ¬åœ°å¯¹è±¡ï¼Œå´ä¸åœ¨æ•°æ®åº“里" -#: html/Ticket/Elements/ShowDates:51 lib/RT/Transaction_Overlay.pm:481 +#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:430 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 (%2)" -#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:624 lib/RT/Transaction_Overlay.pm:633 lib/RT/Transaction_Overlay.pm:636 +#: lib/RT/Transaction_Overlay.pm:484 lib/RT/Transaction_Overlay.pm:649 lib/RT/Transaction_Overlay.pm:658 lib/RT/Transaction_Overlay.pm:661 #. ($self->Field , ( $self->OldValue || $no_value ) , $self->NewValue) #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) @@ -168,7 +171,7 @@ msgstr "%1 (%2)" msgid "%1 changed from %2 to %3" msgstr "%1 的值从 %2 改为 %3" -#: lib/RT/Interface/Web.pm:893 +#: lib/RT/Interface/Web.pm:953 msgid "%1 could not be set to %2." msgstr "无法将 %1 设定为 %2。" @@ -176,17 +179,17 @@ msgstr "无法将 %1 设定为 %2。" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 无法åˆå§‹æ›´æ–° (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2839 +#: lib/RT/Ticket_Overlay.pm:2880 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 无法将现况设æˆå·²è§£å†³ã€‚RT æ•°æ®åº“内容å¯èƒ½ä¸ä¸€è‡´ã€‚" -#: html/Elements/MyTickets:24 html/Work/Elements/MyTickets:6 +#: html/Elements/MyTickets:24 html/Work/Elements/MyTickets:9 #. ($rows) msgid "%1 highest priority tickets I own..." msgstr "å‰ %1 份待处ç†ç”³è¯·å•..." -#: html/Elements/MyRequests:24 html/Work/Elements/MyRequests:6 +#: html/Elements/MyRequests:24 html/Work/Elements/MyRequests:9 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "å‰ %1 份é€å‡ºçš„申请å•..." @@ -206,12 +209,12 @@ msgstr "%1 是从外部排程程åº(如 cron)æ¥å¯¹ç”³è¯·å•进行æ“作的工 msgid "%1 is no longer a %2 for this queue." msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å•çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:1578 +#: lib/RT/Ticket_Overlay.pm:1596 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this ticket." msgstr "%1 å·²ä¸å†æ˜¯æ­¤ç”³è¯·å•çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:3630 +#: lib/RT/Ticket_Overlay.pm:3677 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 å·²ä¸å†æ˜¯è‡ªè®¢å­—段 %2 的值。" @@ -264,17 +267,17 @@ msgstr "%1 会解决在已解决群组里æˆå‘˜çš„申请å•。" msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "如果 %1 起始申请å•ä¾èµ–于æŸä¸ªé“¾æŽ¥ï¼Œæˆ–是æŸä¸ªé“¾æŽ¥çš„æˆå‘˜ï¼Œå®ƒå°†ä¼šè¢«å»¶å®•ã€‚" -#: lib/RT/Transaction_Overlay.pm:433 +#: lib/RT/Transaction_Overlay.pm:382 lib/RT/Transaction_Vendor.pm:37 #. ($self) msgid "%1: no attachment specified" msgstr "%1:未指定附件" -#: html/Ticket/Elements/ShowTransaction:89 html/Work/Tickets/Elements/ShowTransaction:152 +#: html/Ticket/Elements/ShowTransaction:100 html/Work/Tickets/Elements/ShowTransaction:158 #. ($size) msgid "%1b" msgstr "%1 字节" -#: html/Ticket/Elements/ShowTransaction:86 html/Work/Tickets/Elements/ShowTransaction:149 +#: html/Ticket/Elements/ShowTransaction:97 html/Work/Tickets/Elements/ShowTransaction:155 #. (int($size/102.4)/10) msgid "%1k" msgstr "%1k 字节" @@ -283,7 +286,7 @@ msgstr "%1k 字节" msgid "%quant(%1,result) found" msgstr "找到 %1 项结果" -#: lib/RT/Ticket_Overlay.pm:1148 +#: lib/RT/Ticket_Overlay.pm:1185 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' 䏿˜¯ä¸€ä¸ªåˆæ³•的状æ€å€¼" @@ -300,7 +303,7 @@ msgstr "(点选欲删除的æˆå‘˜)" msgid "(Check box to delete scrip)" msgstr "(点选欲删除的手续)" -#: html/Admin/Elements/EditCustomFieldValues:24 html/Admin/Elements/EditQueueWatchers:28 html/Admin/Elements/EditScrips:34 html/Admin/Elements/EditTemplates:35 html/Admin/Elements/EditWorkflows:36 html/Admin/Groups/Members.html:51 html/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 +#: html/Admin/Elements/EditCustomFieldValues:24 html/Admin/Elements/EditQueueWatchers:28 html/Admin/Elements/EditScrips:34 html/Admin/Elements/EditTemplates:35 html/Admin/Elements/EditWorkflows:36 html/Admin/Groups/Members.html:51 html/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 html/Work/Tickets/Elements/EditLinks:20 html/Work/Tickets/Elements/EditPeople:36 msgid "(Check box to delete)" msgstr "(点选欲删除的项目)" @@ -308,7 +311,7 @@ msgstr "(点选欲删除的项目)" msgid "(Check boxes to delete)" msgstr "(点选欲删除的项目)" -#: html/Ticket/Create.html:177 +#: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "(键入申请å•ç¼–å·æˆ–网å€ï¼Œä»¥ç©ºç™½åˆ†éš”)" @@ -342,7 +345,7 @@ msgstr "没有模æ¿" msgid "(No workflows)" msgstr "没有æµç¨‹" -#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:52 +#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:56 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>更改åŽç»­çš„æ”¶ä»¶è€…åå•。)" @@ -366,7 +369,7 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本给åå•上以逗å·éš”开的电å­é‚®ä»¶ 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/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:33 html/Work/Tickets/Elements/ShowCustomFieldEntries:13 +#: html/Ticket/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:43 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 msgid "(delete)" msgstr "(删除)" @@ -374,7 +377,7 @@ msgstr "(删除)" msgid "(empty)" msgstr "(空白)" -#: html/Edit/Global/CustomField/index.html:113 html/Edit/Global/Scrip/index.html:111 html/Edit/Global/Template/index.html:106 +#: html/Edit/Elements/Index:87 html/Edit/Global/CustomField/index.html:116 html/Edit/Global/Scrip/index.html:111 html/Edit/Global/Template/index.html:106 msgid "(new)" msgstr "(新增)" @@ -382,23 +385,23 @@ msgstr "(新增)" msgid "(no name listed)" msgstr "(没有列出姓å)" -#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:36 html/Work/Elements/MyTickets:41 +#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:43 html/Work/Elements/MyTickets:52 msgid "(no subject)" msgstr "(没有主题)" -#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:60 html/Ticket/Elements/EditCustomFieldValues:52 html/Ticket/Elements/ShowCustomFields:35 html/Work/Elements/EditCustomFieldValues:50 html/Work/Elements/EditCustomFields:32 html/Work/Tickets/Elements/EditCustomFieldValues:33 lib/RT/Transaction_Overlay.pm:534 +#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:64 html/Ticket/Elements/EditCustomFieldValues:52 html/Ticket/Elements/ShowCustomFields:35 html/Work/Elements/EditCustomFieldValues:50 html/Work/Elements/EditCustomFields:32 html/Work/Tickets/Elements/EditCustomFieldValues:33 lib/RT/Transaction_Overlay.pm:483 msgid "(no value)" msgstr "(æ— )" -#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:115 html/Work/Search/BulkLinks:3 +#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:98 html/Work/Search/BulkLinks:3 html/Work/Tickets/Elements/EditLinks:102 msgid "(only one ticket)" msgstr "(仅能指定一份申请å•)" -#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:17 html/Work/Elements/MyRequests:46 html/Work/Elements/MyTickets:56 html/Work/Tickets/Elements/ShowBasics:44 +#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:17 html/Work/Elements/MyRequests:53 html/Work/Elements/MyTickets:67 html/Work/Tickets/Elements/ShowBasics:52 msgid "(pending approval)" msgstr "(等待签核)" -#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:48 html/Work/Elements/MyTickets:58 +#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:55 html/Work/Elements/MyTickets:69 msgid "(pending other tickets)" msgstr "(等待其它申请å•)" @@ -406,22 +409,14 @@ msgstr "(等待其它申请å•)" msgid "(requestor's group)" msgstr "(申请人所属)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:49 html/Edit/Users/Info:26 msgid "(required)" msgstr "(å¿…å¡«)" -#: html/Ticket/Elements/ShowTransaction:92 html/Work/Tickets/Elements/ShowTransaction:37 +#: html/Ticket/Elements/ShowTransaction:103 html/Work/Tickets/Elements/ShowTransaction:44 msgid "(untitled)" msgstr "(未命å)" -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I own..." -msgstr "å‰ 25 份待处ç†ç”³è¯·å•..." - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I requested..." -msgstr "å‰ 25 份é€å‡ºçš„申请å•..." - #: NOT FOUND IN SOURCE msgid ":" msgstr ":" @@ -434,12 +429,12 @@ msgstr "<% $Ticket->Status%>" msgid "<% $_ %>" msgstr "<% $_ %>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 html/Work/Elements/104Header:43 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 html/Work/Elements/104Header:43 lib/RT/StyleGuide.pod:767 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"æå‡ºç”³è¯·å•\"> %1" -#: etc/initialdata:221 +#: etc/initialdata:203 msgid "A blank template" msgstr "空白模æ¿" @@ -459,7 +454,7 @@ msgstr "无法删除 ACE" msgid "ACE could not be found" msgstr "找ä¸åˆ° ACE" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:179 +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "找ä¸åˆ° ACE 设定" @@ -487,11 +482,11 @@ msgstr "系统使用登录æƒé™" msgid "Access control" msgstr "å­˜å–æƒé™" -#: html/Admin/Elements/EditScrip:56 html/Work/Tickets/Elements/ShowTransaction:18 +#: html/Admin/Elements/EditScrip:56 html/Work/Tickets/Elements/ShowTransaction:21 msgid "Action" msgstr "动作" -#: lib/RT/Scrip_Overlay.pm:146 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "动作 %1 找ä¸åˆ°" @@ -504,11 +499,11 @@ msgstr "动作执行完毕" msgid "Action prepared..." msgstr "动作准备完毕..." -#: html/Work/Elements/List:13 html/Work/Elements/SelectSearch:24 html/Work/Tickets/Create.html:26 html/Work/Tickets/Elements/ShowBasics:12 +#: html/Work/Elements/List:13 html/Work/Elements/SelectSearch:25 html/Work/Tickets/Create.html:27 html/Work/Tickets/Elements/ShowBasics:12 msgid "Activated Date" msgstr "申请激活时间" -#: html/Edit/Elements/104Buttons:71 html/Edit/Elements/ListButtons:7 +#: html/Edit/Elements/104Buttons:82 html/Edit/Elements/ListButtons:7 msgid "Add" msgstr "新增" @@ -520,11 +515,11 @@ msgstr "新增管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" msgid "Add Cc" msgstr "新增副本收件人" -#: html/Ticket/Elements/EditCustomFieldEntries:71 html/Work/Tickets/Elements/ShowCustomFieldEntries:49 +#: html/Ticket/Elements/EditCustomFieldEntries:71 html/Work/Tickets/Elements/ShowCustomFieldEntries:50 msgid "Add Entry" msgstr "新增列" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 html/Work/Tickets/Elements/AddAttachments:18 +#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 html/Work/Tickets/Elements/AddAttachments:23 msgid "Add More Files" msgstr "新增更多附件" @@ -585,16 +580,20 @@ msgstr "新增下一项关å¡" msgid "Added principal as a %1 for this queue" msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤è¡¨å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1462 +#: lib/RT/Ticket_Overlay.pm:1480 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤ç”³è¯·å•çš„ %1" -#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:87 html/Work/Preferences/Info:76 +#: html/Edit/Global/CustomField/Top:52 +msgid "Additional Hints" +msgstr "é¢å¤–æç¤º" + +#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:114 html/Work/Preferences/Info:79 msgid "Address1" msgstr "ä½å€" -#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:89 html/Work/Preferences/Info:78 +#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:118 html/Work/Preferences/Info:81 msgid "Address2" msgstr "ä½å€(ç»­)" @@ -602,7 +601,7 @@ msgstr "ä½å€(ç»­)" msgid "Adjust Blinking Rate" msgstr "调整闪çƒé€Ÿåº¦å¿«æ…¢" -#: html/Edit/Groups/Admin:9 +#: html/Edit/Queues/List:12 msgid "Admin" msgstr "管ç†å‘˜" @@ -610,11 +609,11 @@ msgstr "管ç†å‘˜" msgid "Admin Cc" msgstr "管ç†å‘˜å‰¯æœ¬" -#: etc/initialdata:303 +#: etc/initialdata:280 msgid "Admin Comment" msgstr "管ç†å‘˜è¯„论" -#: etc/initialdata:261 +#: etc/initialdata:259 msgid "Admin Correspondence" msgstr "管ç†å‘˜å›žå¤" @@ -642,7 +641,7 @@ msgstr "管ç†/群组" msgid "Admin/Queue/Basics" msgstr "管ç†/表å•/基本信æ¯" -#: html/Edit/Global/Basic/Top:60 +#: html/Edit/Global/Basic/Top:65 msgid "AdminAddress" msgstr "管ç†å‘˜ Email" @@ -650,7 +649,7 @@ msgstr "管ç†å‘˜ Email" msgid "AdminAllPersonalGroups" msgstr "ç®¡ç†æ‰€æœ‰ä»£ç†äººç¾¤ç»„" -#: etc/initialdata:74 html/Admin/Elements/ModifyTemplateAsWorkflow:155 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Admin/Elements/ModifyTemplateAsWorkflow:155 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 html/Work/Tickets/Elements/ShowLinks:11 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "管ç†å‘˜å‰¯æœ¬" @@ -666,7 +665,7 @@ msgstr "管ç†å‘˜å›žå¤" msgid "AdminCustomFields" msgstr "管ç†è‡ªè®¢å­—段" -#: html/Edit/Groups/Admin:12 lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:145 msgid "AdminGroup" msgstr "管ç†ç¾¤ç»„" @@ -706,7 +705,7 @@ msgstr "管ç†ä½¿ç”¨è€…" msgid "Administrative" msgstr "行政类" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 html/Work/Tickets/Elements/EditPeople:44 msgid "Administrative Cc" msgstr "管ç†å‘˜å‰¯æœ¬" @@ -726,7 +725,7 @@ msgstr "晚于" msgid "Age" msgstr "ç»åŽ†æ—¶é—´" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:172 html/Edit/Global/Workflow/Action:39 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:172 html/Edit/Global/Workflow/Action:35 msgid "Alias" msgstr "执行其它æµç¨‹" @@ -734,11 +733,11 @@ msgstr "执行其它æµç¨‹" msgid "Alias for" msgstr "相当于" -#: html/Edit/Queues/index.html:33 html/Work/Delegates/index.html:13 html/Work/Elements/SelectSearch:11 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:13 +#: html/Work/Delegates/index.html:13 html/Work/Elements/SelectSearch:11 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:13 msgid "All" msgstr "全部" -#: etc/initialdata:372 +#: etc/initialdata:348 msgid "All Approvals Passed" msgstr "完æˆå…¨éƒ¨ç­¾æ ¸" @@ -746,7 +745,7 @@ msgstr "完æˆå…¨éƒ¨ç­¾æ ¸" msgid "All Condition" msgstr "所有æ¡ä»¶" -#: html/Admin/Elements/EditCustomFields:95 +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "所有自订字段" @@ -758,6 +757,10 @@ msgstr "所有表å•" 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 "ç¦åˆ©è¡¥åŠ©ç”³è¯·" @@ -774,7 +777,7 @@ msgstr "æ•°é¢" msgid "Any Condition" msgstr "ä»»æ„æ¡ä»¶" -#: html/Edit/Global/Scrip/List:10 html/Edit/Global/Scrip/Top:74 +#: html/Edit/Global/Scrip/List:10 html/Edit/Global/Scrip/Top:86 msgid "Apply Template" msgstr "引用模æ¿" @@ -811,11 +814,11 @@ msgstr "签核时é™" msgid "Approval Notes" msgstr "签核æ„è§" -#: etc/initialdata:357 +#: etc/initialdata:336 msgid "Approval Passed" msgstr "å®ŒæˆæŸé¡¹ç­¾æ ¸" -#: etc/initialdata:383 +#: etc/initialdata:359 msgid "Approval Rejected" msgstr "驳回æŸé¡¹ç­¾æ ¸" @@ -843,11 +846,11 @@ msgstr "核准" msgid "Approver" msgstr "签核人" -#: html/Edit/Global/Workflow/Action:29 html/Edit/Global/Workflow/Owner.html:10 +#: html/Edit/Global/Workflow/Action:25 html/Edit/Global/Workflow/Owner.html:10 msgid "Approver Setting" msgstr "执行签核人设定" -#: etc/initialdata:516 etc/upgrade/2.1.71:148 html/Edit/Elements/CreateApprovalsQueue:122 +#: etc/initialdata:486 etc/upgrade/2.1.71:148 html/Edit/Elements/CreateApprovalsQueue:122 msgid "Approver's notes: %1" msgstr "签核备注:%1" @@ -871,15 +874,15 @@ msgstr "您确定è¦åˆ é™¤ï¼Ÿ" msgid "Ascending" msgstr "递增" -#: html/Search/Bulk.html:136 html/SelfService/Update.html:32 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 html/Work/Search/Bulk.html:88 +#: html/Search/Bulk.html:136 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 html/Work/Search/Bulk.html:88 msgid "Attach" msgstr "附件" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 html/Work/Tickets/Elements/AddAttachments:15 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 html/Work/Tickets/Elements/AddAttachments:19 msgid "Attach file" msgstr "附加档案" -#: html/Ticket/Create.html:97 html/Ticket/Update.html:87 html/Work/Tickets/Elements/AddAttachments:6 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:87 html/Work/Tickets/Elements/AddAttachments:7 html/Work/Tickets/Elements/ShowAttachments:9 msgid "Attached file" msgstr "现有附件" @@ -887,15 +890,15 @@ msgstr "现有附件" msgid "Attachment '%1' could not be loaded" msgstr "无法加载附件 '%1'" -#: lib/RT/Transaction_Overlay.pm:441 +#: lib/RT/Transaction_Overlay.pm:390 lib/RT/Transaction_Vendor.pm:50 msgid "Attachment created" msgstr "附件新增完毕" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1208 msgid "Attachment filename" msgstr "附件档å" -#: html/Ticket/Elements/ShowAttachments:25 html/Work/Tickets/Elements/ShowTransaction:32 +#: html/Ticket/Elements/ShowAttachments:25 html/Work/Tickets/Elements/ShowTransaction:37 msgid "Attachments" msgstr "附件" @@ -923,11 +926,11 @@ msgstr "自动驳回表å•" msgid "AutoResolve" msgstr "自动完æˆè¡¨å•处ç†" -#: etc/initialdata:224 +#: etc/initialdata:206 msgid "Autoreply" msgstr "自动回å¤" -#: etc/initialdata:90 +#: etc/initialdata:72 msgid "Autoreply To Requestors" msgstr "自动对申请人回å¤" @@ -935,7 +938,7 @@ msgstr "自动对申请人回å¤" msgid "AutoreplyToRequestors" msgstr "自动对申请人回å¤" -#: html/Edit/Rights/index.html:16 +#: html/Edit/Rights/index.html:17 msgid "Available Rights:" msgstr "æƒé™é¡¹ç›®åˆ—表:" @@ -964,19 +967,19 @@ msgstr "%1 的数æ®é”™è¯¯" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "附件的处ç†å·ç é”™è¯¯ã€‚%1 应为 %2\\n" -#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:17 html/Edit/Users/index.html:121 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 +#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:21 html/Edit/Users/index.html:94 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 msgid "Basics" msgstr "基本信æ¯" -#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:49 +#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:53 msgid "Bcc" msgstr "密件副本" -#: html/Admin/Elements/EditScrip:87 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Global/Workflow.html:46 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/Admin/Queues/Workflow.html:44 html/User/Groups/Modify.html:55 +#: html/Admin/Elements/EditScrip:95 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Global/Workflow.html:46 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/Admin/Queues/Workflow.html:44 html/User/Groups/Modify.html:55 msgid "Be sure to save your changes" msgstr "请别忘了储存修改。" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:321 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:320 msgid "Before" msgstr "早于" @@ -988,11 +991,11 @@ msgstr "开始签核" msgid "Begin From " msgstr "èµ·å§‹æ—¥" -#: html/Edit/Users/Info:25 +#: NOT FOUND IN SOURCE msgid "Birthday" msgstr "生日" -#: etc/initialdata:220 +#: etc/initialdata:202 msgid "Blank" msgstr "空白模æ¿" @@ -1016,7 +1019,7 @@ msgstr "事业部" msgid "Business Unit:" msgstr "事业部:" -#: lib/RT/User_Overlay.pm:1411 +#: lib/RT/User_Overlay.pm:1529 msgid "Can not modify system users" msgstr "无法更改系统使用者" @@ -1032,11 +1035,11 @@ msgstr "ä¸èƒ½æ–°å¢žæ²¡æœ‰å称的自订字段值" msgid "Can't link a ticket to itself" msgstr "申请å•ä¸èƒ½é“¾æŽ¥è‡ªå·±ã€‚" -#: lib/RT/Ticket_Overlay.pm:2816 +#: lib/RT/Ticket_Overlay.pm:2857 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "ä¸èƒ½æ•´åˆè¿›å·²æ•´åˆè¿‡çš„申请å•。这个错误ä¸è¯¥å‘生。" -#: lib/RT/Ticket_Overlay.pm:2634 lib/RT/Ticket_Overlay.pm:2703 +#: lib/RT/Ticket_Overlay.pm:2659 lib/RT/Ticket_Overlay.pm:2738 msgid "Can't specifiy both base and target" msgstr "ä¸èƒ½åŒæ—¶æŒ‡å®šèµ·å§‹ç”³è¯·å•与目的申请å•" @@ -1044,7 +1047,7 @@ msgstr "ä¸èƒ½åŒæ—¶æŒ‡å®šèµ·å§‹ç”³è¯·å•与目的申请å•" msgid "Cancel" msgstr "å–æ¶ˆ" -#: html/autohandler:113 +#: html/autohandler:126 #. ($msg) msgid "Cannot create user: %1" msgstr "无法新增使用者:%1" @@ -1061,7 +1064,7 @@ msgstr "分类管ç†" msgid "Category" msgstr "分类" -#: etc/initialdata:68 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:44 html/Ticket/Update.html:76 html/Work/Tickets/Update.html:43 lib/RT/ACE_Overlay.pm:87 +#: 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:44 html/Ticket/Update.html:76 html/Work/Tickets/Elements/EditPeople:41 html/Work/Tickets/Elements/ShowLinks:6 html/Work/Tickets/Update.html:43 lib/RT/ACE_Overlay.pm:87 msgid "Cc" msgstr "副本" @@ -1081,11 +1084,11 @@ msgstr "修改申请å•" msgid "Change password" msgstr "更改å£ä»¤" -#: html/Edit/Global/Basic/Top:70 +#: html/Edit/Global/Basic/Top:79 msgid "ChangeOwnerUI" msgstr "å¯å¦é€‰æ‹©è¡¨å•承办人" -#: html/Ticket/Create.html:100 html/Ticket/Elements/EditCustomFieldEntries:35 html/Ticket/Update.html:90 html/Work/Tickets/Elements/ShowCustomFieldEntries:13 +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Elements/EditCustomFieldEntries:35 html/Ticket/Update.html:90 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 msgid "Check box to delete" msgstr "选择欲删除的项目" @@ -1093,11 +1096,11 @@ msgstr "选择欲删除的项目" msgid "Check box to revoke right" msgstr "选择欲撤消的æƒåˆ©" -#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:130 html/Ticket/Elements/EditLinks:68 html/Ticket/Elements/ShowLinks:56 html/Work/Search/BulkLinks:18 +#: html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:113 html/Ticket/Elements/EditLinks:63 html/Ticket/Elements/ShowLinks:56 html/Work/Search/BulkLinks:18 html/Work/Tickets/Elements/EditLinks:117 html/Work/Tickets/Elements/EditLinks:56 html/Work/Tickets/Elements/ShowMembers:4 msgid "Children" msgstr "å­ç”³è¯·å•" -#: html/Edit/Elements/PickUsers:21 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 html/Edit/Users/List:6 html/Edit/Users/Top:18 +#: html/Edit/Elements/PickUsers:21 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 msgid "Chinese Name" msgstr "中文姓å" @@ -1105,11 +1108,15 @@ msgstr "中文姓å" msgid "Chinese/English" msgstr "中英文" -#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:91 html/Work/Preferences/Info:80 +#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:122 html/Work/Preferences/Info:83 msgid "City" msgstr "所在城市" -#: html/Ticket/Elements/ShowDates:46 +#: html/Edit/Elements/104Top:30 +msgid "ClassicUI" +msgstr "传统接å£" + +#: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "已解决" @@ -1121,7 +1128,7 @@ msgstr "已解决的申请å•" msgid "Closed tickets" msgstr "已解决的申请å•" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:58 html/Edit/Global/Workflow/Condition:51 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:54 html/Edit/Global/Workflow/Condition:52 msgid "Code" msgstr "执行程åºç " @@ -1129,7 +1136,7 @@ msgstr "执行程åºç " msgid "Command not understood!\\n" msgstr "指令无法辨识ï¼\\n" -#: html/Ticket/Elements/ShowTransaction:166 html/Ticket/Elements/Tabs:152 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:37 html/Work/Tickets/Elements/ShowTransaction:112 html/Work/Tickets/Elements/ShowTransaction:27 +#: html/Ticket/Elements/ShowTransaction:178 html/Ticket/Elements/Tabs:152 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:60 html/Work/Tickets/Elements/ShowTransaction:118 html/Work/Tickets/Elements/ShowTransaction:32 msgid "Comment" msgstr "评论" @@ -1149,7 +1156,7 @@ msgstr "å¯¹ç”³è¯·å•æå‡ºè¯„è®º" msgid "CommentOnTicket" msgstr "评论申请å•" -#: html/Admin/Elements/ModifyUser:34 html/Work/Tickets/Update.html:59 +#: html/Admin/Elements/ModifyUser:34 html/Work/Tickets/Elements/AddContent:7 msgid "Comments" msgstr "评论" @@ -1166,11 +1173,11 @@ msgstr "评论(ä¸é€ç»™ç”³è¯·äºº)" msgid "Comments about %1" msgstr "对 %1 的评论" -#: html/Admin/Users/Modify.html:184 html/Ticket/Elements/ShowRequestor:43 +#: html/Admin/Users/Modify.html:184 html/Edit/Users/Info:46 html/Ticket/Elements/ShowRequestor:43 msgid "Comments about this user" msgstr "使用者æè¿°" -#: lib/RT/Transaction_Overlay.pm:543 +#: lib/RT/Transaction_Overlay.pm:501 msgid "Comments added" msgstr "新增评论完毕" @@ -1182,10 +1189,14 @@ msgstr "确认" msgid "Commit Stubbed" msgstr "消除更动完毕" -#: html/Edit/Users/Info:42 +#: NOT FOUND IN SOURCE msgid "Company Name" msgstr "å…¬å¸åç§°" +#: html/Edit/Global/Basic/Top:85 +msgid "CompanySpecific" +msgstr "å„å…¬å¸ç‹¬ç«‹æ˜¾ç¤º" + #: NOT FOUND IN SOURCE msgid "Compile Restrictions" msgstr "设定查询æ¡ä»¶" @@ -1198,11 +1209,11 @@ msgstr "æ¡ä»¶" msgid "Condition matches..." msgstr "ç¬¦åˆæ¡ä»¶..." -#: lib/RT/Scrip_Overlay.pm:159 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "未找到符åˆçš„现况" -#: html/Edit/Global/GroupRight/Top:26 html/Edit/Global/UserRight/Top:45 html/Edit/Groups/Member:57 html/Elements/Tabs:49 +#: html/Edit/Global/GroupRight/Top:26 html/Edit/Global/UserRight/Top:45 html/Edit/Groups/Member:56 html/Elements/Tabs:49 msgid "Configuration" msgstr "设定" @@ -1214,7 +1225,7 @@ msgstr "确认å£ä»¤" msgid "Confirm Password" msgstr "å£ä»¤ç¡®è®¤" -#: html/Work/Approvals/Display.html:25 html/Work/Tickets/Create.html:153 html/Work/Tickets/Create.html:165 html/Work/Tickets/Update.html:81 +#: html/Work/Approvals/Display.html:25 html/Work/Tickets/Create.html:154 html/Work/Tickets/Create.html:168 html/Work/Tickets/Update.html:77 msgid "Confirm Submit" msgstr "确定é€å‡º" @@ -1238,7 +1249,7 @@ msgstr "内容" msgid "Coould not create group" msgstr "无法新增群组" -#: html/Edit/Elements/104Buttons:74 +#: html/Edit/Elements/104Buttons:85 msgid "Copy" msgstr "å¤åˆ¶" @@ -1246,7 +1257,7 @@ msgstr "å¤åˆ¶" msgid "Copy Field From:" msgstr "欲å¤åˆ¶å­—段:" -#: etc/initialdata:282 +#: etc/initialdata:271 msgid "Correspondence" msgstr "回å¤" @@ -1254,7 +1265,7 @@ msgstr "回å¤" msgid "Correspondence Address" msgstr "申请å•回å¤åœ°å€" -#: lib/RT/Transaction_Overlay.pm:539 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Correspondence added" msgstr "新增申请å•回å¤" @@ -1262,7 +1273,7 @@ msgstr "新增申请å•回å¤" msgid "Correspondence not recorded" msgstr "未纪录申请å•回å¤" -#: lib/RT/Ticket_Overlay.pm:3561 +#: lib/RT/Ticket_Overlay.pm:3608 msgid "Could not add new custom field value for ticket. " msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值 " @@ -1270,11 +1281,11 @@ msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值 " msgid "Could not add new custom field value for ticket. %1 " msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值。%1 " -#: lib/RT/Ticket_Overlay.pm:3067 lib/RT/Ticket_Overlay.pm:3075 lib/RT/Ticket_Overlay.pm:3092 +#: lib/RT/Ticket_Overlay.pm:3108 lib/RT/Ticket_Overlay.pm:3116 lib/RT/Ticket_Overlay.pm:3133 msgid "Could not change owner. " msgstr "ä¸èƒ½æ›´æ”¹æ‰¿åŠžäººã€‚ " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:165 html/Edit/Global/CustomField/index.html:117 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 html/Edit/Global/CustomField/index.html:120 #. ($msg) msgid "Could not create CustomField" msgstr "无法新增自订字段" @@ -1289,20 +1300,25 @@ msgstr "无法建立讯æ¯é€šçŸ¥" msgid "Could not create Template" msgstr "无法建立通知模æ¿" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:471 lib/RT/Group_Overlay.pm:478 msgid "Could not create group" msgstr "无法新增群组" +#: html/Edit/Elements/Index:89 +#. ($msg) +msgid "Could not create item" +msgstr "无法新增项目" + #: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "无法新增模æ¿ï¼š%1" -#: lib/RT/Ticket_Overlay.pm:1081 lib/RT/Ticket_Overlay.pm:334 +#: lib/RT/Ticket_Overlay.pm:1118 lib/RT/Ticket_Overlay.pm:353 msgid "Could not create ticket. Queue not set" msgstr "无法新增申请å•。尚未指定表å•。" -#: lib/RT/User_Overlay.pm:267 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:481 +#: lib/RT/User_Overlay.pm:271 lib/RT/User_Overlay.pm:284 lib/RT/User_Overlay.pm:302 lib/RT/User_Overlay.pm:488 msgid "Could not create user" msgstr "无法新增使用者" @@ -1323,11 +1339,11 @@ msgstr "找ä¸åˆ°ç¼–å· %1 的申请å•" msgid "Could not find group %1." msgstr "找ä¸åˆ°ç¾¤ç»„ %1。" -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1430 +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1448 msgid "Could not find or create that user" msgstr "找ä¸åˆ°æˆ–无法新增该å使用者" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1509 +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1527 msgid "Could not find that principal" msgstr "找ä¸åˆ°è¯¥å•ä½" @@ -1335,8 +1351,7 @@ msgstr "找ä¸åˆ°è¯¥å•ä½" msgid "Could not find user %1." msgstr "找ä¸åˆ°ä½¿ç”¨è€… %1。" -#: html/Admin/Groups/Members.html:87 html/Edit/Users/index.html:83 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 -#. ( . $GroupId) +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "无法加载群组" @@ -1345,7 +1360,7 @@ msgstr "无法加载群组" msgid "Could not make that principal a %1 for this queue" msgstr "无法将该å•ä½è®¾ä¸ºæ­¤è¡¨å•çš„ %1。" -#: lib/RT/Ticket_Overlay.pm:1451 +#: lib/RT/Ticket_Overlay.pm:1469 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "无法将该å•ä½è®¾ä¸ºæ­¤ç”³è¯·å•çš„ %1。" @@ -1355,16 +1370,16 @@ msgstr "无法将该å•ä½è®¾ä¸ºæ­¤ç”³è¯·å•çš„ %1。" msgid "Could not remove that principal as a %1 for this queue" msgstr "无法将å•ä½ %1 从表å•移除。" -#: lib/RT/Ticket_Overlay.pm:1567 +#: lib/RT/Ticket_Overlay.pm:1585 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this ticket" msgstr "无法将å•ä½ %1 从申请å•移除。" -#: lib/RT/Group_Overlay.pm:984 +#: lib/RT/Group_Overlay.pm:982 msgid "Couldn't add member to group" msgstr "无法新增æˆå‘˜è‡³ç¾¤ç»„" -#: lib/RT/Ticket_Overlay.pm:3571 lib/RT/Ticket_Overlay.pm:3627 +#: lib/RT/Ticket_Overlay.pm:3618 lib/RT/Ticket_Overlay.pm:3674 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "无法新增更动报告" @@ -1377,11 +1392,11 @@ msgstr "无法从 gpg 回函辨识出该采å–的行动\\n" msgid "Couldn't find group\\n" msgstr "找ä¸åˆ°ç¾¤ç»„\\n" -#: lib/RT/Interface/Web.pm:902 +#: lib/RT/Interface/Web.pm:962 msgid "Couldn't find row" msgstr "找ä¸åˆ°æ­¤åˆ—æ•°æ®" -#: lib/RT/Group_Overlay.pm:958 +#: lib/RT/Group_Overlay.pm:956 msgid "Couldn't find that principal" msgstr "找ä¸åˆ°è¯¥å•ä½" @@ -1414,9 +1429,10 @@ msgstr "无法加载 RT 设定档 '%1' %2" msgid "Couldn't load Scrips." msgstr "无法加载手续。" -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:54 html/Edit/Global/UserRight/Add.html:23 html/Edit/Groups/Member:121 html/Edit/Groups/Members/Add.html:44 html/Edit/Rights/index.html:57 -#. ($Group) +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:55 html/Edit/Global/GroupRight/Add.html:60 html/Edit/Global/UserRight/Add.html:25 html/Edit/Global/UserRight/Add.html:30 html/Edit/Groups/Member:120 html/Edit/Groups/Members/Add.html:43 html/Edit/Rights/index.html:58 html/Edit/Rights/index.html:63 #. ($ObjectGroup) +#. ($Report) +#. ($Group) #. ($id) msgid "Couldn't load group %1" msgstr "无法加载手续 %1" @@ -1425,12 +1441,12 @@ msgstr "无法加载手续 %1" msgid "Couldn't load link" msgstr "无法加载链接。" -#: html/Admin/Elements/EditCustomFields:146 html/Admin/Queues/People.html:120 +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "无法加载表å•" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 html/Edit/Global/GroupRight/Add.html:50 html/Edit/Global/GroupRight/index.html:81 html/Edit/Global/UserRight/Add.html:19 html/Edit/Global/UserRight/index.html:83 html/Edit/Rights/index.html:53 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 html/Edit/Global/GroupRight/Add.html:51 html/Edit/Global/GroupRight/index.html:82 html/Edit/Global/GroupRight/index.html:87 html/Edit/Global/UserRight/Add.html:21 html/Edit/Global/UserRight/index.html:83 html/Edit/Global/UserRight/index.html:88 html/Edit/Rights/index.html:54 #. ($Queue) #. ($id) msgid "Couldn't load queue %1" @@ -1449,16 +1465,16 @@ msgstr "无法加载模æ¿" msgid "Couldn't load that user (%1)" msgstr "无法加载该å使用者(%1)" -#: html/SelfService/Display.html:108 +#: html/SelfService/Display.html:114 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "æ— æ³•åŠ è½½ç”³è¯·å• '%1'" -#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:97 html/Work/Preferences/Info:86 +#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:134 html/Work/Preferences/Info:89 msgid "Country" msgstr "国家" -#: html/Admin/Elements/CreateUserCalled:25 html/Edit/Elements/PopHeader:29 html/Edit/Global/GroupRight/Add.html:18 html/Ticket/Create.html:134 html/Ticket/Create.html:194 +#: html/Admin/Elements/CreateUserCalled:25 html/Edit/Elements/PopHeader:33 html/Edit/Global/GroupRight/Add.html:19 html/Ticket/Create.html:134 html/Ticket/Create.html:195 msgid "Create" msgstr "新增" @@ -1466,7 +1482,7 @@ msgstr "新增" msgid "Create Subgroup:" msgstr "新增å­ç¾¤ç»„:" -#: etc/initialdata:145 +#: etc/initialdata:127 msgid "Create Tickets" msgstr "新增申请å•" @@ -1523,7 +1539,7 @@ msgstr "新增模æ¿" msgid "Create a new ticket" msgstr "新增申请å•" -#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:240 +#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:242 msgid "Create a new user" msgstr "新增使用者" @@ -1572,7 +1588,7 @@ msgstr "新增失败:%1/%2/%3" msgid "Create new item" msgstr "建立新项目" -#: etc/initialdata:147 +#: etc/initialdata:129 msgid "Create new tickets based on this scrip's template" msgstr "便®æ­¤é¡¹æ‰‹ç»­å†…的模版,新增申请å•" @@ -1608,7 +1624,7 @@ msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹ä½¿ç”¨è€…" msgid "CreateTicket" msgstr "新增申请å•" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:26 lib/RT/Ticket_Overlay.pm:1175 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1212 msgid "Created" msgstr "新增日" @@ -1642,11 +1658,11 @@ msgstr "现有自订字段" msgid "Current Groups:" msgstr "现有群组列表:" -#: html/Ticket/Elements/EditLinks:27 +#: html/Ticket/Elements/EditLinks:27 html/Work/Tickets/Elements/EditLinks:10 msgid "Current Relationships" msgstr "现有关系" -#: html/Edit/Rights/index.html:19 +#: html/Edit/Rights/index.html:20 msgid "Current Rights:" msgstr "现有æƒé™ï¼š" @@ -1654,7 +1670,7 @@ msgstr "现有æƒé™ï¼š" msgid "Current Scrips" msgstr "现有手续" -#: html/Work/Tickets/Create.html:48 html/Work/Tickets/Elements/ShowBasics:39 +#: html/Work/Tickets/Create.html:49 html/Work/Tickets/Elements/ShowBasics:47 msgid "Current Status" msgstr "ç›®å‰çжæ€" @@ -1662,6 +1678,10 @@ msgstr "ç›®å‰çжæ€" msgid "Current Templates" msgstr "现有模æ¿" +#: html/Work/Tickets/Elements/EditPeople:9 +msgid "Current Watchers" +msgstr "现有视察员" + #: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "现有æˆå‘˜" @@ -1674,7 +1694,7 @@ msgstr "现有æƒé™" msgid "Current search criteria" msgstr "现有查询æ¡ä»¶" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 html/Work/Tickets/Elements/EditPeople:32 msgid "Current watchers" msgstr "现有视察员" @@ -1683,7 +1703,7 @@ msgstr "现有视察员" msgid "Custom Field #%1" msgstr "自订字段 #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:18 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:22 html/Ticket/Elements/ShowSummary:35 msgid "Custom Fields" msgstr "自订字段" @@ -1703,31 +1723,31 @@ msgstr "åŠ¨ä½œå‰æ‰§è¡Œç¨‹åº" msgid "Custom condition" msgstr "自订æ¡ä»¶" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1637 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "自订字段 %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: lib/RT/Tickets_Overlay.pm:1632 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "自订字段 %1 已有值" -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1629 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "自订字段 %1 没有值" -#: lib/RT/Ticket_Overlay.pm:3463 +#: lib/RT/Ticket_Overlay.pm:3510 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "找ä¸åˆ°è‡ªè®¢å­—段 %1" -#: html/Admin/Elements/EditCustomFields:196 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "自订字段已删除" -#: lib/RT/Ticket_Overlay.pm:3613 +#: lib/RT/Ticket_Overlay.pm:3660 msgid "Custom field not found" msgstr "找ä¸åˆ°è‡ªè®¢å­—段" @@ -1752,7 +1772,7 @@ msgstr "找ä¸åˆ°è‡ªè®¢å­—段值" msgid "Custom field value deleted" msgstr "自订字段值删除æˆåŠŸ" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:90 lib/RT/Transaction_Overlay.pm:548 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:90 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Vendor.pm:5 msgid "CustomField" msgstr "自订字段" @@ -1760,11 +1780,19 @@ msgstr "自订字段" msgid "Data error" msgstr "æ•°æ®é”™è¯¯" +#: html/Edit/Global/Basic/Top:77 +msgid "DatabaseBindRemote" +msgstr "å®¹è®¸å¤–éƒ¨è”æœº" + +#: html/Edit/Global/Basic/Top:75 +msgid "DatabaseName" +msgstr "MySQLæ•°æ®åº“" + #: NOT FOUND IN SOURCE msgid "Date of Departure" msgstr "å‡ºå‘æ—¥æœŸ" -#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:14 +#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:17 msgid "Dates" msgstr "日期" @@ -1780,35 +1808,47 @@ msgstr "12" msgid "December" msgstr "å二月" +#: NOT FOUND IN SOURCE +msgid "Default Approval" +msgstr "预设签核" + #: NOT FOUND IN SOURCE msgid "Default Autoresponse Template" msgstr "预设自动å“应模æ¿" -#: etc/initialdata:225 +#: etc/initialdata:207 msgid "Default Autoresponse template" msgstr "预设自动å“应模æ¿" -#: etc/initialdata:304 +#: html/Edit/Global/CustomField/Top:46 +msgid "Default Value" +msgstr "预设值" + +#: etc/initialdata:281 msgid "Default admin comment template" msgstr "预设管ç†å‘˜è¯„论模æ¿" -#: etc/initialdata:262 +#: etc/initialdata:260 msgid "Default admin correspondence template" msgstr "预设管ç†å‘˜å›žå¤æ¨¡æ¿" -#: etc/initialdata:283 +#: etc/initialdata:272 msgid "Default correspondence template" msgstr "é¢„è®¾å›žå¤æ¨¡æ¿" -#: etc/initialdata:240 +#: etc/initialdata:238 msgid "Default transaction template" msgstr "预设更动模æ¿" -#: lib/RT/Transaction_Overlay.pm:643 +#: lib/RT/Transaction_Overlay.pm:491 #. ($type, $self->Field, $self->OldValue, $self->NewValue) 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:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "代表团æƒé™" @@ -1837,7 +1877,7 @@ msgstr "代ç†è¡¨å•:" msgid "Delegated Type" msgstr "代ç†è¡¨å•ç§ç±»" -#: html/Edit/Users/index.html:125 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:39 html/Work/Overview/Info:28 +#: html/Edit/Users/index.html:98 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:41 html/Work/Overview/Info:28 msgid "Delegates" msgstr "代ç†äºº" @@ -1881,10 +1921,14 @@ msgstr "代ç†äººç¾¤ç»„" msgid "Delegation Rights" msgstr "代ç†äººæƒé™" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:113 html/Edit/Elements/104Buttons:73 html/Work/Search/index.html:48 html/Work/Search/index.html:48 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ModifyTemplateAsWorkflow:113 html/Edit/Elements/104Buttons:84 html/Work/Search/index.html:48 html/Work/Search/index.html:48 msgid "Delete" msgstr "删除" +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "删除指定的手续" + #: lib/RT/Queue_Overlay.pm:88 msgid "Delete tickets" msgstr "删除申请å•" @@ -1893,7 +1937,7 @@ msgstr "删除申请å•" msgid "DeleteTicket" msgstr "删除申请å•" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Deleting this object could break referential integrity" msgstr "删除此对象å¯èƒ½ç ´åå‚考完整性" @@ -1901,7 +1945,7 @@ msgstr "删除此对象å¯èƒ½ç ´åå‚考完整性" msgid "Deleting this object would break referential integrity" msgstr "删除此对象å¯èƒ½ç ´åå‚考完整性" -#: lib/RT/User_Overlay.pm:497 +#: lib/RT/User_Overlay.pm:504 msgid "Deleting this object would violate referential integrity" msgstr "删除此对象会è¿åå‚考完整性" @@ -1921,11 +1965,11 @@ msgstr "驳回" msgid "Department" msgstr "部门" -#: html/Edit/Global/UserRight/List:12 html/Edit/Global/UserRight/Top:13 html/Edit/Users/List:10 html/Edit/Users/Top:12 +#: html/Edit/Global/UserRight/List:12 html/Edit/Global/UserRight/Top:13 msgid "Department ID" msgstr "部门代ç " -#: html/Edit/Global/UserRight/List:11 html/Edit/Global/UserRight/Top:49 html/Edit/Users/List:9 html/Edit/Users/Top:48 html/Work/Delegates/Info:78 html/Work/Overview/Info:60 +#: html/Edit/Global/UserRight/List:11 html/Edit/Global/UserRight/Top:49 html/Work/Delegates/Info:78 html/Work/Overview/Info:60 msgid "Department Name" msgstr "部门åç§°" @@ -1949,7 +1993,7 @@ msgstr "请å‡å•" msgid "Departure Until" msgstr "差旅截止日" -#: html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:122 html/Ticket/Elements/EditLinks:46 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 html/Work/Search/BulkLinks:10 +#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:105 html/Ticket/Elements/EditLinks:44 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 html/Work/Search/BulkLinks:10 html/Work/Tickets/Elements/EditLinks:109 html/Work/Tickets/Elements/EditLinks:34 html/Work/Tickets/Elements/ShowLinks:21 msgid "Depended on by" msgstr "å¯æŽ¥ç»­å¤„ç†çš„申请å•" @@ -1957,7 +2001,27 @@ msgstr "å¯æŽ¥ç»­å¤„ç†çš„申请å•" msgid "Dependencies: \\n" msgstr "附属性:\\n" -#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:179 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:118 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 html/Work/Search/BulkLinks:6 +#: lib/RT/Transaction_Overlay.pm:585 +#. ($value) +msgid "Dependency by %1 added" +msgstr "å·²åŠ å…¥å¯æŽ¥ç»­å¤„ç†çš„ç”³è¯·å• %1" + +#: lib/RT/Transaction_Overlay.pm:622 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "å·²ç§»é™¤å¯æŽ¥ç»­å¤„ç†çš„ç”³è¯·å• %1" + +#: lib/RT/Transaction_Overlay.pm:582 +#. ($value) +msgid "Dependency on %1 added" +msgstr "已加入需先处ç†çš„ç”³è¯·å• %1" + +#: lib/RT/Transaction_Overlay.pm:619 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "已移除需先处ç†çš„ç”³è¯·å• %1" + +#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:101 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 html/Work/Search/BulkLinks:6 html/Work/Tickets/Elements/EditLinks:105 html/Work/Tickets/Elements/EditLinks:23 html/Work/Tickets/Elements/ShowLinks:16 msgid "Depends on" msgstr "需先处ç†" @@ -1973,7 +2037,7 @@ msgstr "递å‡" msgid "Describe the issue below" msgstr "在以下字段æè¿°ä¸»é¢˜" -#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Elements/ModifyTemplateAsWorkflow:192 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Edit/Global/Workflow/Action:14 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 html/Work/Preferences/Info:98 +#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Elements/ModifyTemplateAsWorkflow:192 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Edit/Elements/SelectQueues:4 html/Edit/Global/Workflow/Action:13 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 msgid "Description" msgstr "æè¿°" @@ -1985,7 +2049,7 @@ msgstr "ç»åŠžä¸šåŠ¡è¯´æ˜Ž" msgid "Description:" msgstr "æè¿°ï¼š" -#: html/Work/Tickets/Create.html:108 html/Work/Tickets/Elements/EditCustomFields:39 html/Work/Tickets/Elements/ShowCustomFields:41 +#: html/Work/Tickets/Create.html:132 html/Work/Tickets/Create.html:84 html/Work/Tickets/Elements/EditCustomFields:13 html/Work/Tickets/Elements/EditCustomFields:61 html/Work/Tickets/Elements/ShowCustomFields:14 html/Work/Tickets/Elements/ShowCustomFields:53 msgid "Details" msgstr "细节" @@ -1993,15 +2057,15 @@ msgstr "细节" msgid "Direct" msgstr "直接" -#: html/Edit/Users/Info:31 +#: NOT FOUND IN SOURCE msgid "Disability" msgstr "残障身分" -#: html/Edit/Users/Info:29 +#: NOT FOUND IN SOURCE msgid "Disability Type" msgstr "残障类别" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:70 html/Edit/Queues/List:13 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 msgid "Disabled" msgstr "åœç”¨" @@ -2037,7 +2101,7 @@ msgstr "å…许一切æ“作" msgid "Don't refresh this page." msgstr "䏿›´æ–°æ­¤é¡µé¢ã€‚" -#: html/Search/Elements/PickRestriction:113 html/Work/Search/PickRestriction:95 +#: html/Search/Elements/PickRestriction:113 html/Work/Search/PickRestriction:101 msgid "Don't show search results" msgstr "䏿˜¾ç¤ºæŸ¥è¯¢ç»“æžœ" @@ -2045,7 +2109,7 @@ msgstr "䏿˜¾ç¤ºæŸ¥è¯¢ç»“æžœ" msgid "Down" msgstr "下一页" -#: html/Ticket/Elements/ShowTransaction:92 +#: html/Ticket/Elements/ShowTransaction:103 msgid "Download" msgstr "下载" @@ -2053,7 +2117,7 @@ msgstr "下载" msgid "Dr." msgstr "åšå£«" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:42 lib/RT/Ticket_Overlay.pm:1179 +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:43 html/Work/Tickets/Elements/EditBasics:54 lib/RT/Ticket_Overlay.pm:1216 msgid "Due" msgstr "到期日" @@ -2070,7 +2134,7 @@ msgstr "无法解读日期 '%1'" msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "æ— æ³•åŠ è½½ç”³è¯·å• '%1':%2.\\n" -#: html/Work/Tickets/Update.html:46 +#: html/Work/Tickets/Update.html:47 msgid "Edit" msgstr "编辑" @@ -2078,7 +2142,7 @@ msgstr "编辑" msgid "Edit Conditions" msgstr "编辑å‰ç½®æ¡ä»¶" -#: html/Admin/Queues/CustomFields.html:44 +#: html/Admin/Queues/CustomFields.html:45 #. ($Queue->Name) msgid "Edit Custom Fields for %1" msgstr "编辑 %1 的自订字段" @@ -2172,15 +2236,19 @@ msgstr "最高学历" msgid "EffectiveId" msgstr "有效编å·" -#: lib/RT/Ticket_Overlay.pm:2644 lib/RT/Ticket_Overlay.pm:2712 +#: lib/RT/Ticket_Overlay.pm:2673 lib/RT/Ticket_Overlay.pm:2751 msgid "Either base or target must be specified" msgstr "éœ€è¦æŒ‡å®šèµ·å§‹ç”³è¯·å•或目的申请å•" -#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:41 html/Work/Delegates/Info:96 html/Work/Overview/Info:78 html/Work/Preferences/Info:16 +#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Edit/Elements/SelectUsers:4 html/Edit/Users/List:7 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 html/Work/Delegates/Info:96 html/Work/Overview/Info:78 msgid "Email" msgstr "电å­é‚®ä»¶ä¿¡ç®±" -#: lib/RT/User_Overlay.pm:247 +#: html/Work/Preferences/Info:16 +msgid "Email Address" +msgstr "电å­é‚®ä»¶ä¿¡ç®±" + +#: lib/RT/User_Overlay.pm:251 msgid "Email address in use" msgstr "此电å­é‚®ä»¶ä¿¡ç®±å·²è¢«ä½¿ç”¨" @@ -2220,11 +2288,11 @@ msgstr "å¯ç”¨(å–æ¶ˆå‹¾é€‰å°†åœç”¨æ­¤ç¾¤ç»„)" msgid "Enabled (Unchecking this box disables this queue)" msgstr "å¯ç”¨(å–æ¶ˆå‹¾é€‰å°†åœç”¨æ­¤è¡¨å•)" -#: html/Admin/Elements/EditCustomFields:98 +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "å·²å¯ç”¨çš„自订字段" -#: html/Edit/Queues/Basic/Top:75 html/Edit/Queues/List:15 +#: html/Edit/Queues/Basic/Top:74 html/Edit/Queues/List:17 html/Edit/Queues/List:29 msgid "Enabled Date" msgstr "å¯ç”¨æ—¥æœŸ" @@ -2236,16 +2304,16 @@ msgstr "激活日期:" msgid "Enabled Queues" msgstr "å·²å¯ç”¨çš„表å•" -#: html/Edit/Queues/Basic/Top:66 html/Edit/Queues/List:11 +#: html/Edit/Queues/Basic/Top:65 html/Edit/Queues/List:13 html/Edit/Queues/List:25 msgid "Enabled Status" msgstr "å¯ç”¨çжæ€" -#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:282 html/User/Groups/Modify.html:116 +#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:284 html/User/Groups/Modify.html:116 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "å¯ç”¨çŠ¶æ€ %1" -#: html/Edit/Users/Info:35 +#: NOT FOUND IN SOURCE msgid "End of Trial" msgstr "试用期满日" @@ -2265,7 +2333,7 @@ msgstr "输入下列å•一或å¤å¼æ¡ä»¶ï¼ŒæŸ¥è¯¢ç”¨æˆ·æ•°æ®" msgid "Enter one value" msgstr "键入å•一项目" -#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:111 html/Work/Search/Bulk.html:95 +#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:94 html/Work/Search/Bulk.html:95 html/Work/Tickets/Elements/EditLinks:98 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "输入申请å•å¯é“¾æŽ¥åˆ°çš„申请å•ç¼–å·æˆ–网å€ã€‚以空白隔开。" @@ -2317,15 +2385,15 @@ msgstr "表å•->æ–°å¢žè§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" msgid "Error in parameters to Queue->DelWatcher" msgstr "表å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: lib/RT/Ticket_Overlay.pm:1364 +#: lib/RT/Ticket_Overlay.pm:1401 msgid "Error in parameters to Ticket->AddWatcher" msgstr "申请å•->æ–°å¢žè§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: lib/RT/Ticket_Overlay.pm:1540 +#: lib/RT/Ticket_Overlay.pm:1558 msgid "Error in parameters to Ticket->DelWatcher" msgstr "申请å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: etc/initialdata:38 +#: etc/initialdata:20 msgid "Everyone" msgstr "所有人" @@ -2333,7 +2401,11 @@ msgstr "所有人" msgid "Example:" msgstr "范例:" -#: html/Edit/Elements/104Buttons:77 +#: NOT FOUND IN SOURCE +msgid "Existing user renamed from %1 to %2" +msgstr "现有使用者 %1 已改å为 %2" + +#: html/Edit/Elements/104Buttons:88 msgid "Export" msgstr "汇出" @@ -2345,31 +2417,31 @@ msgstr "外部认è¯å¸å·" msgid "ExternalContactInfoId" msgstr "外部è”络方å¼å¸å·" -#: html/Edit/Global/Basic/Top:64 +#: html/Edit/Global/Basic/Top:69 msgid "ExternalDatabaseDSN" msgstr "外部数æ®åº“连结字符串" -#: html/Edit/Global/Basic/Top:68 +#: html/Edit/Global/Basic/Top:73 msgid "ExternalDatabasePass" msgstr "外部数æ®åº“å£ä»¤" -#: html/Edit/Global/Basic/Top:66 +#: html/Edit/Global/Basic/Top:71 msgid "ExternalDatabaseUser" msgstr "外部数æ®åº“用户" -#: html/Edit/Global/Basic/Top:62 +#: html/Edit/Global/Basic/Top:67 msgid "ExternalURL" msgstr "外部接å£ç½‘å€" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:72 html/Edit/Users/Info:41 msgid "Extra info" msgstr "备注" -#: lib/RT/User_Overlay.pm:361 +#: lib/RT/User_Overlay.pm:368 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "找ä¸åˆ°ã€Œå†…部æˆå‘˜ã€è™šæ‹Ÿç¾¤ç»„的使用者。" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:375 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "找ä¸åˆ°ã€Œéžå†…部æˆå‘˜ã€è™šæ‹Ÿç¾¤ç»„的使用者。" @@ -2394,22 +2466,22 @@ msgstr "二月" msgid "Female" msgstr "女" -#: html/Edit/Global/CustomField/List:5 html/Edit/Global/CustomField/Top:9 -msgid "Field Attribute" -msgstr "字段属性" - #: html/Edit/Global/CustomField/Info:14 msgid "Field Content:" msgstr "字段内容:" -#: html/Edit/Global/CustomField/List:7 html/Edit/Global/CustomField/Top:21 +#: html/Edit/Global/CustomField/List:7 html/Edit/Global/CustomField/Top:20 msgid "Field Description" msgstr "字段æè¿°" -#: html/Edit/Global/CustomField/List:6 html/Edit/Global/CustomField/Top:15 +#: html/Edit/Global/CustomField/List:6 html/Edit/Global/CustomField/Top:14 msgid "Field Name" msgstr "字段åç§°" +#: html/Edit/Global/CustomField/List:5 html/Edit/Global/CustomField/Top:9 +msgid "Field Type" +msgstr "字段属性" + #: html/Edit/Elements/PickUsers:52 html/Edit/Users/Add.html:47 msgid "Filter" msgstr "筛选" @@ -2426,19 +2498,19 @@ msgstr "筛选列表:" msgid "Fin" msgstr "最终" -#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 lib/RT/Tickets_Overlay.pm:1091 +#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 html/Work/Tickets/Elements/EditBasics:52 lib/RT/Tickets_Overlay.pm:1110 msgid "Final Priority" -msgstr "最低顺ä½" +msgstr "最终顺ä½" -#: lib/RT/Ticket_Overlay.pm:1170 +#: lib/RT/Ticket_Overlay.pm:1207 msgid "FinalPriority" -msgstr "最低顺ä½" +msgstr "最终顺ä½" #: NOT FOUND IN SOURCE msgid "Financial Department:" msgstr "财务部:" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 html/Work/Tickets/Elements/EditPeople:18 msgid "Find group whose" msgstr "寻找群组的" @@ -2446,10 +2518,14 @@ msgstr "寻找群组的" msgid "Find new/open tickets" msgstr "寻找/å¼€å¯ç”³è¯·å•" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Edit/Users/Top:6 html/Ticket/Elements/EditPeople:29 html/Work/Tickets/Elements/EditPeople:14 msgid "Find people whose" msgstr "寻找人员的" +#: html/Edit/Queues/Top:6 +msgid "Find queues whose" +msgstr "寻找表å•çš„" + #: html/Search/Listing.html:107 html/Work/Search/index.html:88 msgid "Find tickets" msgstr "寻找申请å•" @@ -2474,7 +2550,7 @@ msgstr "一" msgid "First-level Admins" msgstr "一阶主管" -#: html/Edit/Users/Info:40 +#: NOT FOUND IN SOURCE msgid "First-level Users" msgstr "一阶主管员工" @@ -2482,17 +2558,17 @@ msgstr "一阶主管员工" msgid "Fixed shift" msgstr "固定ç­" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "甲 ä¹™ 丙" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "甲ï¼" #: html/Search/Bulk.html:86 html/Work/Search/Bulk.html:55 msgid "Force change" -msgstr "强制更新" +msgstr "强制更æ¢" #: html/Work/Elements/104Header:89 msgid "Form Processing" @@ -2503,7 +2579,7 @@ msgstr "电å­è¡¨å•作业区" msgid "Found %quant(%1,ticket)" msgstr "找到 %1 张申请å•" -#: lib/RT/Interface/Web.pm:904 +#: lib/RT/Interface/Web.pm:964 msgid "Found Object" msgstr "已找到对象" @@ -2559,7 +2635,7 @@ msgstr "完整标头档" msgid "Gecos" msgstr "登入å¸å·" -#: html/Edit/Users/Info:26 +#: NOT FOUND IN SOURCE msgid "Gender" msgstr "性别" @@ -2567,7 +2643,7 @@ msgstr "性别" msgid "Getting the current user from a pgp sig\\n" msgstr "å–å¾—ç›®å‰ä½¿ç”¨è€…çš„ pgp 签章\\n" -#: lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Transaction_Overlay.pm:551 #. ($New->Name) msgid "Given to %1" msgstr "交予 %1" @@ -2576,6 +2652,10 @@ msgstr "交予 %1" msgid "Global" msgstr "全域设定" +#: NOT FOUND IN SOURCE +msgid "Global Approval" +msgstr "全域签核" + #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "全域关键è¯é€‰å–" @@ -2588,7 +2668,7 @@ msgstr "拥有全域æƒé™åˆ—表:" msgid "Global Scrips" msgstr "全域手续" -#: html/Edit/Elements/Tab:38 +#: html/Edit/Elements/Tab:40 msgid "Global Setup" msgstr "全域设定" @@ -2597,7 +2677,11 @@ msgstr "全域设定" msgid "Global template: %1" msgstr "全域模æ¿ï¼š%1" -#: html/Admin/Elements/EditCustomFields:74 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:40 +#: NOT FOUND IN SOURCE +msgid "GlobalApproval" +msgstr "全域签核" + +#: html/Admin/Elements/EditCustomFields:73 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/Work/Tickets/Elements/EditPeople:16 html/Work/Tickets/Elements/EditPeople:20 html/index.html:40 msgid "Go!" msgstr "执行" @@ -2625,6 +2709,10 @@ msgstr "群组" msgid "Group %1 %2: %3" msgstr "群组 %1 %2:%3" +#: NOT FOUND IN SOURCE +msgid "Group Admin" +msgstr "群组管ç†å‘˜" + #: html/Edit/Global/GroupRight/List:5 html/Edit/Global/GroupRight/Top:20 html/Edit/Groups/List:7 msgid "Group Description" msgstr "群组æè¿°" @@ -2637,7 +2725,7 @@ msgstr "群组管ç†" msgid "Group Members" msgstr "群组æˆå‘˜" -#: html/Edit/Elements/PickUsers:28 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Delegates/Add.html:15 html/Work/Tickets/Cc:24 +#: html/Edit/Elements/PickUsers:28 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Queues/Basic/Add.html:15 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Delegates/Add.html:15 html/Work/Tickets/Cc:24 msgid "Group Name" msgstr "群组åç§°" @@ -2645,7 +2733,7 @@ msgstr "群组åç§°" msgid "Group Name:" msgstr "群组å称:" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:23 html/Edit/Users/Group:11 html/Edit/Users/index.html:123 +#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:27 html/Edit/Users/Group:11 html/Edit/Users/index.html:96 msgid "Group Rights" msgstr "群组æƒé™" @@ -2653,7 +2741,7 @@ msgstr "群组æƒé™" msgid "Group Rights:" msgstr "拥有群组æƒé™åˆ—表:" -#: html/Edit/Elements/Tab:34 +#: html/Edit/Elements/Tab:36 msgid "Group Setup" msgstr "群组设定" @@ -2661,7 +2749,7 @@ msgstr "群组设定" msgid "Group Status" msgstr "群组状æ€" -#: lib/RT/Group_Overlay.pm:964 +#: lib/RT/Group_Overlay.pm:962 msgid "Group already has member" msgstr "群组内已有此æˆå‘˜" @@ -2674,15 +2762,19 @@ msgstr "无法新增群组" msgid "Group could not be created: %1" msgstr "无法新增群组:%1" -#: lib/RT/Group_Overlay.pm:496 +#: lib/RT/Group_Overlay.pm:494 msgid "Group created" msgstr "群组新增完毕" -#: lib/RT/Group_Overlay.pm:1132 +#: NOT FOUND IN SOURCE +msgid "Group created: %1" +msgstr "群组 %1 新增完毕" + +#: lib/RT/Group_Overlay.pm:1134 msgid "Group has no such member" msgstr "群组没有这个æˆå‘˜" -#: lib/RT/Group_Overlay.pm:944 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1437 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Group_Overlay.pm:942 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1455 lib/RT/Ticket_Overlay.pm:1533 msgid "Group not found" msgstr "找ä¸åˆ°ç¾¤ç»„" @@ -2694,6 +2786,14 @@ msgstr "找ä¸åˆ°ç¾¤ç»„。\\n" 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 "æ‹¥æœ‰è¡¨å•æƒé™ç¾¤ç»„" @@ -2706,11 +2806,11 @@ msgstr "群组之" msgid "Group:" msgstr "群组:" -#: 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/Edit/Global/GroupRight/Add.html:15 html/User/Groups/Members.html:66 +#: 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/Edit/Global/GroupRight/Add.html:16 html/Edit/Groups/Admin:12 html/User/Groups/Members.html:66 msgid "Groups" msgstr "群组" -#: lib/RT/Group_Overlay.pm:970 +#: lib/RT/Group_Overlay.pm:968 msgid "Groups can't be members of their members" msgstr "ä¸èƒ½å°†ç¾¤ç»„设为群组内æˆå‘˜" @@ -2722,7 +2822,7 @@ msgstr "拥有全域æƒé™ç¾¤ç»„" msgid "HRMSDefined" msgstr "组织架构" -#: html/Edit/Users/Info:32 +#: NOT FOUND IN SOURCE msgid "Health Insurance" msgstr "å¥ä¿è¡¥åŠ©èº«ä»½" @@ -2730,19 +2830,23 @@ msgstr "å¥ä¿è¡¥åŠ©èº«ä»½" msgid "Hello!" msgstr "å—¨ï¼" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "嗨,%1" -#: html/Edit/Elements/104Top:27 +#: html/Edit/Elements/104Top:28 msgid "Help" -msgstr "辅助说明" +msgstr "说明" #: NOT FOUND IN SOURCE msgid "Help Desks" msgstr "å„项业务窗å£" +#: html/Edit/Global/CustomField/SelectWritable:9 html/Edit/Queues/Basic/Top:80 +msgid "Hidden" +msgstr "éšè—" + #: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:87 html/Work/Tickets/Elements/ShowHistory:8 msgid "History" msgstr "纪录" @@ -2751,7 +2855,7 @@ msgstr "纪录" msgid "HomePhone" msgstr "ä½å¤„电è¯" -#: html/Edit/Elements/104Top:15 html/Edit/Elements/104Top:23 html/Edit/Elements/EDOMHeader:9 html/Elements/Tabs:43 +#: html/Edit/Elements/104Top:15 html/Edit/Elements/104Top:24 html/Edit/Elements/EDOMHeader:9 html/Elements/Tabs:43 msgid "Homepage" msgstr "主页" @@ -2759,7 +2863,7 @@ msgstr "主页" msgid "Hotel Expense" msgstr "ä½å®¿è´¹" -#: lib/RT/Base.pm:73 +#: lib/RT/Base.pm:75 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "我有 %quant(%1,ä»½å›ºä½“æ…æ‹Œå™¨)。" @@ -2772,7 +2876,7 @@ msgstr "身分è¯å·" msgid "ID Type" msgstr "身分类别" -#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1018 +#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1037 msgid "Id" msgstr "ç¼–å·" @@ -2780,7 +2884,7 @@ msgstr "ç¼–å·" msgid "Identity" msgstr "身份" -#: etc/initialdata:439 etc/upgrade/2.1.71:86 html/Edit/Elements/CreateApprovalsQueue:58 +#: etc/initialdata:411 etc/upgrade/2.1.71:86 html/Edit/Elements/CreateApprovalsQueue:58 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "若签核å•é­åˆ°é©³å›žï¼Œåˆ™è¿žå¸¦é©³å›žåŽŸç”³è¯·å•,并删除其它相关的待签核事项" @@ -2792,43 +2896,43 @@ msgstr "如果此工具程åºä¸º setgidï¼Œæ¶æ„的本地端用户å³èƒ½ç”±æ­¤ msgid "If you've updated anything above, be sure to" msgstr "若您已更新以上数æ®ï¼Œè¯·è®°å¾—按一下" -#: lib/RT/Interface/Web.pm:896 +#: lib/RT/Interface/Web.pm:956 msgid "Illegal value for %1" msgstr "%1 的值错误" -#: lib/RT/Interface/Web.pm:899 +#: lib/RT/Interface/Web.pm:959 msgid "Immutable field" msgstr "此字段值ä¸å¯æ›´åЍ" -#: html/Edit/Elements/104Buttons:76 html/Edit/Global/Workflow/Import.html:2 +#: html/Edit/Elements/104Buttons:87 html/Edit/Global/Workflow/Import.html:2 msgid "Import" msgstr "汇入" -#: html/Admin/Elements/EditCustomFields:73 +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "列出åœç”¨çš„自订字段" -#: html/Admin/Queues/index.html:42 html/Edit/Queues/index.html:38 +#: html/Admin/Queues/index.html:42 html/Edit/Queues/Top:9 msgid "Include disabled queues in listing." msgstr "列出åœç”¨çš„表å•" -#: html/Admin/Users/index.html:46 html/Edit/Users/Search.html:62 +#: html/Admin/Users/index.html:46 html/Edit/Users/Search.html:62 html/Edit/Users/Top:9 msgid "Include disabled users in search." msgstr "列出åœç”¨çš„使用者" -#: html/Edit/Users/Info:37 +#: NOT FOUND IN SOURCE msgid "Indirect Employee" msgstr "直接/间接员工" -#: lib/RT/Tickets_Overlay.pm:1067 +#: lib/RT/Tickets_Overlay.pm:1086 msgid "Initial Priority" -msgstr "åˆå§‹ä¼˜å…ˆæƒ" +msgstr "åˆå§‹ä¼˜å…ˆé¡ºä½" -#: lib/RT/Ticket_Overlay.pm:1169 lib/RT/Ticket_Overlay.pm:1171 +#: lib/RT/Ticket_Overlay.pm:1206 lib/RT/Ticket_Overlay.pm:1208 msgid "InitialPriority" -msgstr "åˆå§‹ä¼˜å…ˆæƒ" +msgstr "åˆå§‹ä¼˜å…ˆé¡ºä½" -#: lib/RT/ScripAction_Overlay.pm:104 +#: lib/RT/ScripAction_Overlay.pm:105 msgid "Input error" msgstr "输入错误" @@ -2836,7 +2940,7 @@ msgstr "输入错误" msgid "Interest noted" msgstr "登记æˆåŠŸ" -#: lib/RT/Ticket_Overlay.pm:3835 +#: lib/RT/Ticket_Overlay.pm:3913 msgid "Internal Error" msgstr "内部错误" @@ -2845,11 +2949,11 @@ msgstr "内部错误" msgid "Internal Error: %1" msgstr "内部错误:%1" -#: lib/RT/Group_Overlay.pm:643 +#: lib/RT/Group_Overlay.pm:641 msgid "Invalid Group Type" msgstr "错误的群组类别" -#: lib/RT/Principal_Overlay.pm:126 +#: lib/RT/Principal_Overlay.pm:127 msgid "Invalid Right" msgstr "错误的æƒé™" @@ -2857,15 +2961,15 @@ msgstr "错误的æƒé™" msgid "Invalid Type" msgstr "错误的类型" -#: lib/RT/Interface/Web.pm:901 +#: lib/RT/Interface/Web.pm:961 msgid "Invalid data" msgstr "错误的数æ®" -#: lib/RT/Ticket_Overlay.pm:439 +#: lib/RT/Ticket_Overlay.pm:463 msgid "Invalid owner. Defaulting to 'nobody'." msgstr "错误的承办人。改为预设承办人「nobodyã€ã€‚" -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:250 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "错误的表å•" @@ -2878,11 +2982,11 @@ msgstr "错误的æƒé™" msgid "Invalid value for %1" msgstr "%1 的值错误" -#: lib/RT/Ticket_Overlay.pm:3470 +#: lib/RT/Ticket_Overlay.pm:3517 msgid "Invalid value for custom field" msgstr "错误的自订字段值" -#: lib/RT/Ticket_Overlay.pm:346 +#: lib/RT/Ticket_Overlay.pm:365 msgid "Invalid value for status" msgstr "错误的状æ€å€¼" @@ -2940,7 +3044,7 @@ msgstr "七月" #: lib/RT/Date.pm:417 msgid "Jul." -msgstr "01" +msgstr "07" #: NOT FOUND IN SOURCE msgid "July" @@ -2956,7 +3060,7 @@ msgstr "六月" #: lib/RT/Date.pm:416 msgid "Jun." -msgstr "06." +msgstr "06" #: NOT FOUND IN SOURCE msgid "June" @@ -2966,6 +3070,18 @@ msgstr "六月" msgid "Keyword" msgstr "关键è¯" +#: lib/RT/CustomField_Vendor.pm:23 +msgid "LabelAttachments" +msgstr "附件巿 ‡" + +#: lib/RT/CustomField_Vendor.pm:24 +msgid "LabelContent" +msgstr "内容巿 ‡" + +#: lib/RT/CustomField_Vendor.pm:22 +msgid "LabelSubject" +msgstr "ä¸»é¢˜å·æ ‡" + #: lib/RT/CustomField_Vendor.pm:21 msgid "LabelURL" msgstr "é“¾æŽ¥å·æ ‡" @@ -2974,11 +3090,15 @@ msgstr "é“¾æŽ¥å·æ ‡" msgid "Lang" msgstr "使用语言" +#: html/User/Prefs.html:54 html/Work/Preferences/Info:29 +msgid "Language" +msgstr "语言" + #: html/Ticket/Elements/Tabs:72 msgid "Last" msgstr "上次更新" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:38 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 html/Work/Tickets/Elements/EditBasics:44 msgid "Last Contact" msgstr "上次è”络" @@ -3002,11 +3122,11 @@ msgstr "上次更新" msgid "Left" msgstr "剩馀时间" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:82 html/Edit/Users/Info:62 msgid "Let this user access RT" msgstr "å…许这å使用者登入" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:86 html/Edit/Users/Info:68 msgid "Let this user be granted rights" msgstr "内部æˆå‘˜ï¼ˆå…·æœ‰ä¸ªäººæƒé™ï¼‰" @@ -3022,25 +3142,25 @@ msgstr "é™åˆ¶è¡¨å•为 %1 到 %2" msgid "Link a Queue" msgstr "申请表å•连结" -#: lib/RT/Ticket_Overlay.pm:2726 +#: lib/RT/Ticket_Overlay.pm:2765 msgid "Link already exists" msgstr "此链接已存在" -#: lib/RT/Ticket_Overlay.pm:2738 +#: lib/RT/Ticket_Overlay.pm:2777 msgid "Link could not be created" msgstr "无法新增链接" -#: lib/RT/Ticket_Overlay.pm:2746 lib/RT/Ticket_Overlay.pm:2756 +#: lib/RT/Ticket_Overlay.pm:2785 lib/RT/Ticket_Overlay.pm:2797 #. ($TransString) msgid "Link created (%1)" msgstr "链接(%1)新增完毕" -#: lib/RT/Ticket_Overlay.pm:2667 +#: lib/RT/Ticket_Overlay.pm:2698 #. ($TransString) msgid "Link deleted (%1)" msgstr "链接(%1)删除完毕" -#: lib/RT/Ticket_Overlay.pm:2673 +#: lib/RT/Ticket_Overlay.pm:2704 msgid "Link not found" msgstr "找ä¸åˆ°é“¾æŽ¥" @@ -3061,33 +3181,33 @@ msgstr "链接" msgid "List All Users" msgstr "列出所有用户数æ®" -#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:84 html/Work/Preferences/Info:72 +#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:107 html/Work/Preferences/Info:75 msgid "Location" msgstr "ä½ç½®" -#: lib/RT.pm:162 +#: lib/RT.pm:174 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "登入目录 %1 找ä¸åˆ°æˆ–无法写入\\n。无法执行 RT。" -#: html/Edit/Global/Basic/Top:52 +#: html/Edit/Global/Basic/Top:57 msgid "LogToFile" msgstr "纪录等级" -#: html/Edit/Global/Basic/Top:54 +#: html/Edit/Global/Basic/Top:59 msgid "LogToFileNamed" msgstr "纪录档å" -#: html/Elements/Header:56 +#: html/Elements/Header:57 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "使用者:%1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +#: 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 "登入" -#: html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:29 html/Elements/Header:53 +#: html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:32 html/Elements/Header:54 msgid "Logout" msgstr "注销" @@ -3175,6 +3295,10 @@ msgstr "三月" msgid "Marketing Department" msgstr "行销部" +#: html/Edit/Global/CustomField/Top:63 +msgid "Match Pattern" +msgstr "ç¬¦åˆæ ·å¼" + #: NOT FOUND IN SOURCE msgid "May" msgstr "五月" @@ -3183,23 +3307,33 @@ msgstr "五月" msgid "May." msgstr "05" -#: lib/RT/Group_Overlay.pm:981 +#: lib/RT/Transaction_Overlay.pm:598 +#. ($value) +msgid "Member %1 added" +msgstr "æˆå‘˜ %1 新增完毕" + +#: lib/RT/Transaction_Overlay.pm:635 +#. ($value) +msgid "Member %1 deleted" +msgstr "æˆå‘˜ %1 删除完毕" + +#: lib/RT/Group_Overlay.pm:979 msgid "Member added" msgstr "新增æˆå‘˜å®Œæ¯•" -#: lib/RT/Group_Overlay.pm:1139 +#: lib/RT/Group_Overlay.pm:1141 msgid "Member deleted" msgstr "æˆå‘˜å·²åˆ é™¤" -#: lib/RT/Group_Overlay.pm:1143 +#: lib/RT/Group_Overlay.pm:1145 msgid "Member not deleted" -msgstr "æˆå‘˜æœªè¢«åˆ é™¤" +msgstr "æˆå‘˜æœªåˆ é™¤" #: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "隶属于" -#: html/Work/Preferences/index.html:20 +#: html/Work/Preferences/index.html:19 msgid "Member since" msgstr "注册日期" @@ -3211,15 +3345,25 @@ msgstr "隶属于" msgid "Members" msgstr "æˆå‘˜" -#: lib/RT/Ticket_Overlay.pm:2913 +#: lib/RT/Transaction_Overlay.pm:595 +#. ($value) +msgid "Membership in %1 added" +msgstr "所属群组 %1 加入完毕" + +#: lib/RT/Transaction_Overlay.pm:632 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "所属群组 %1 移除完毕" + +#: lib/RT/Ticket_Overlay.pm:2954 msgid "Merge Successful" msgstr "æ•´åˆå®Œæ¯•" -#: lib/RT/Ticket_Overlay.pm:2833 +#: lib/RT/Ticket_Overlay.pm:2874 msgid "Merge failed. Couldn't set EffectiveId" msgstr "æ•´åˆå¤±è´¥ã€‚无法设定 EffectiveId" -#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:114 html/Work/Search/BulkLinks:2 +#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:97 html/Work/Search/BulkLinks:2 html/Work/Tickets/Elements/EditLinks:101 msgid "Merge into" msgstr "æ•´åˆè¿›" @@ -3227,15 +3371,19 @@ msgstr "æ•´åˆè¿›" msgid "Message" msgstr "讯æ¯" +#: html/Ticket/Elements/ShowTransaction:80 +msgid "Message body not shown because it is too large or is not plain text." +msgstr "ä¿¡ä»¶å†…æ–‡ä¸æ˜¯çº¯æ–‡å­—,因此无法显示。" + #: NOT FOUND IN SOURCE msgid "Misc. Expense" msgstr "æ‚è´¹" -#: lib/RT/Interface/Web.pm:903 +#: lib/RT/Interface/Web.pm:963 msgid "Missing a primary key?: %1" msgstr "缺少主键值?(%1)" -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:53 html/Work/Preferences/Info:33 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:71 html/Work/Preferences/Info:38 msgid "Mobile" msgstr "行动电è¯" @@ -3392,7 +3540,7 @@ msgstr "更改群组 %1" msgid "Modify the queue watchers" msgstr "更改表å•视察员" -#: html/Admin/Users/Modify.html:235 +#: html/Admin/Users/Modify.html:237 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "更改使用者 %1" @@ -3471,6 +3619,10 @@ msgstr "星期一" msgid "Mon." msgstr "星期一" +#: html/Work/Elements/MyRequests:11 html/Work/Elements/MyTickets:11 +msgid "More" +msgstr "更多" + #: html/Ticket/Elements/ShowRequestor:41 #. ($name) msgid "More about %1" @@ -3496,7 +3648,7 @@ msgstr "上移" msgid "Multiple" msgstr "多é‡" -#: lib/RT/User_Overlay.pm:238 +#: lib/RT/User_Overlay.pm:242 msgid "Must specify 'Name' attribute" msgstr "必须指定 'Name' 的属性" @@ -3505,15 +3657,15 @@ msgstr "必须指定 'Name' 的属性" msgid "My %1 tickets" msgstr "我的 %1 申请å•" -#: html/Work/Elements/Tab:35 +#: html/Work/Elements/Tab:37 msgid "My Approvals" msgstr "表å•签核" -#: html/Work/Elements/Tab:33 +#: html/Work/Elements/Tab:35 msgid "My Requests" msgstr "表å•申请追踪" -#: html/Work/Elements/Tab:37 +#: html/Work/Elements/Tab:39 msgid "My Tickets" msgstr "表å•处ç†" @@ -3521,15 +3673,15 @@ msgstr "表å•处ç†" msgid "My approvals" msgstr "表å•签核" -#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyTemplateAsWorkflow:185 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Edit/Users/Add.html:22 html/Edit/Users/Search.html:31 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 html/Work/Tickets/Cc:18 +#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyTemplateAsWorkflow:185 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Edit/Elements/SelectQueues:3 html/Edit/Queues/List:8 html/Edit/Users/Add.html:22 html/Edit/Users/List:5 html/Edit/Users/Search.html:31 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 html/Work/Tickets/Cc:18 msgid "Name" msgstr "åç§°" -#: lib/RT/User_Overlay.pm:245 +#: lib/RT/User_Overlay.pm:249 msgid "Name in use" msgstr "å¸å·å·²æœ‰äººä½¿ç”¨" -#: html/Edit/Users/Info:27 +#: NOT FOUND IN SOURCE msgid "Nationality" msgstr "国ç±" @@ -3537,27 +3689,27 @@ msgstr "国ç±" msgid "Need approval from system administrator" msgstr "需先由系统管ç†å‘˜è¿›è¡Œæ‰¹å‡†" -#: html/Ticket/Elements/ShowDates:51 +#: html/Ticket/Elements/ShowDates:52 msgid "Never" msgstr "从未更动" -#: html/Elements/Quicksearch:29 html/Work/Elements/Quicksearch:15 html/Work/Tickets/Create.html:52 +#: html/Elements/Quicksearch:29 html/Work/Elements/Quicksearch:15 html/Work/Tickets/Create.html:53 msgid "New" msgstr "新建立" -#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/User/Prefs.html:64 html/Work/Preferences/Info:44 +#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/Edit/Users/Info:33 html/User/Prefs.html:87 html/Work/Preferences/Info:49 msgid "New Password" msgstr "æ–°çš„å£ä»¤" -#: etc/initialdata:341 etc/upgrade/2.1.71:16 html/Edit/Elements/CreateApprovalsQueue:21 +#: etc/initialdata:317 etc/upgrade/2.1.71:16 html/Edit/Elements/CreateApprovalsQueue:21 msgid "New Pending Approval" msgstr "新的待签核事项" -#: html/Ticket/Elements/EditLinks:110 +#: html/Ticket/Elements/EditLinks:93 html/Work/Tickets/Elements/EditLinks:12 msgid "New Relationships" msgstr "新增关系" -#: html/Work/Elements/Tab:31 +#: html/Work/Elements/Tab:33 msgid "New Request" msgstr "表å•申请" @@ -3565,7 +3717,11 @@ msgstr "表å•申请" msgid "New Search" msgstr "新增查询" -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:39 +#: html/Work/Tickets/Elements/EditPeople:7 +msgid "New Watchers" +msgstr "新增视察员" + +#: 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 "新增自订字段" @@ -3577,7 +3733,7 @@ msgstr "新增群组" msgid "New password" msgstr "æ–°çš„å£ä»¤" -#: lib/RT/User_Overlay.pm:706 +#: lib/RT/User_Overlay.pm:769 msgid "New password notification sent" msgstr "é€å‡ºæ–°å£ä»¤é€šçŸ¥" @@ -3609,7 +3765,7 @@ msgstr "新增模æ¿" msgid "New ticket" msgstr "æå‡ºç”³è¯·å•" -#: lib/RT/Ticket_Overlay.pm:2800 +#: lib/RT/Ticket_Overlay.pm:2841 msgid "New ticket doesn't exist" msgstr "没有新申请å•" @@ -3645,7 +3801,7 @@ msgstr "下一页" msgid "NickName" msgstr "昵称" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:45 html/Work/Preferences/Info:23 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 html/Work/Preferences/Info:26 msgid "Nickname" msgstr "昵称" @@ -3653,11 +3809,11 @@ msgstr "昵称" msgid "Night Shift" msgstr "å°å¤œç­" -#: html/Edit/Global/Basic/Top:27 +#: html/Edit/Global/Basic/Top:27 html/Edit/Queues/Basic/Top:83 msgid "No" msgstr "å¦" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:104 +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "无自订字段" @@ -3693,7 +3849,7 @@ msgstr "没有æµç¨‹" msgid "No action" msgstr "æš‚ä¸å¤„ç†" -#: lib/RT/Interface/Web.pm:898 +#: lib/RT/Interface/Web.pm:958 msgid "No column specified" msgstr "未指定字段" @@ -3705,7 +3861,7 @@ msgstr "找ä¸åˆ°å‘½ä»¤" msgid "No comment entered about this user" msgstr "没有对这å使用者的评论" -#: lib/RT/Ticket_Overlay.pm:2211 lib/RT/Ticket_Overlay.pm:2279 +#: lib/RT/Ticket_Overlay.pm:2229 lib/RT/Ticket_Overlay.pm:2299 msgid "No correspondence attached" msgstr "没有附上申请å•回å¤" @@ -3714,11 +3870,11 @@ msgstr "没有附上申请å•回å¤" msgid "No description for %1" msgstr "没有对 %1 çš„æè¿°" -#: lib/RT/Users_Overlay.pm:150 +#: lib/RT/Users_Overlay.pm:149 msgid "No group specified" msgstr "未指定群组" -#: lib/RT/User_Overlay.pm:924 +#: lib/RT/User_Overlay.pm:987 msgid "No password set" msgstr "没有设定å£ä»¤" @@ -3726,24 +3882,24 @@ msgstr "没有设定å£ä»¤" msgid "No permission to create queues" msgstr "没有新增表å•çš„æƒé™" -#: lib/RT/Ticket_Overlay.pm:342 +#: lib/RT/Ticket_Overlay.pm:361 #. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "æ²¡æœ‰åœ¨è¡¨å• '%1' 新增申请å•çš„æƒé™" -#: lib/RT/User_Overlay.pm:211 +#: lib/RT/User_Overlay.pm:208 msgid "No permission to create users" msgstr "没有新增使用者的æƒé™" -#: html/SelfService/Display.html:117 +#: html/SelfService/Display.html:123 msgid "No permission to display that ticket" msgstr "没有显示该申请å•çš„æƒé™" -#: html/SelfService/Update.html:51 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "æ²¡æœ‰æ£€è§†ç”³è¯·å•æ›´æ–°çš„æƒé™" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1496 +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1514 msgid "No principal specified" msgstr "未指定å•ä½" @@ -3759,7 +3915,7 @@ msgstr "%1 内未指定åè®®" msgid "No queues matching search criteria found." msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„表å•。" -#: html/Admin/Elements/SelectRights:80 +#: html/Admin/Elements/SelectRights:81 msgid "No rights found" msgstr "找ä¸åˆ°æƒé™" @@ -3775,7 +3931,7 @@ msgstr "没有è¦è¿›è¡Œçš„æŸ¥è¯¢" msgid "No ticket id specified" msgstr "未指定申请å•ç¼–å·" -#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +#: lib/RT/Transaction_Overlay.pm:427 lib/RT/Transaction_Overlay.pm:465 msgid "No transaction type specified" msgstr "未指定更动报告类别" @@ -3791,7 +3947,7 @@ msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„使用者。" msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "找ä¸åˆ°åˆæ ¼çš„ RT 使用者。RT cvs 处ç†å™¨å·²åœç”¨ã€‚è¯·å‘ RT 管ç†è€…询问。\\n" -#: lib/RT/Interface/Web.pm:895 +#: lib/RT/Interface/Web.pm:955 msgid "No value sent to _Set!\\n" msgstr "_Set 没有收到任何值!\\n" @@ -3799,7 +3955,7 @@ msgstr "_Set 没有收到任何值!\\n" msgid "Nobody" msgstr "没有人" -#: lib/RT/Interface/Web.pm:900 +#: lib/RT/Interface/Web.pm:960 msgid "Nonexistant field?" msgstr "字段ä¸å­˜åœ¨ï¼Ÿ" @@ -3815,7 +3971,7 @@ msgstr "未设定æˆä»Ž %2 å†…æ’·å– %1" msgid "Not logged in" msgstr "尚未登入" -#: html/Elements/Header:58 +#: html/Elements/Header:59 msgid "Not logged in." msgstr "尚未登入" @@ -3831,7 +3987,7 @@ msgstr "尚未完工。" msgid "Not yet implemented...." msgstr "尚未完工..." -#: html/Approvals/Elements/Approve:48 html/Work/Tickets/Create.html:134 +#: html/Approvals/Elements/Approve:48 html/Work/Tickets/Elements/AddContent:9 msgid "Notes" msgstr "备注" @@ -3839,67 +3995,67 @@ msgstr "备注" msgid "Notes:" msgstr "备注:" -#: lib/RT/User_Overlay.pm:709 +#: lib/RT/User_Overlay.pm:772 msgid "Notification could not be sent" msgstr "无法é€å‡ºé€šçŸ¥" -#: etc/initialdata:111 +#: etc/initialdata:93 msgid "Notify AdminCcs" msgstr "通知管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:107 +#: etc/initialdata:89 msgid "Notify AdminCcs as Comment" msgstr "以评论方å¼é€šçŸ¥ç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:138 +#: etc/initialdata:120 msgid "Notify Other Recipients" msgstr "通知其它收件人" -#: etc/initialdata:134 +#: etc/initialdata:116 msgid "Notify Other Recipients as Comment" msgstr "以评论方å¼é€šçŸ¥å…¶å®ƒæ”¶ä»¶äºº" -#: etc/initialdata:103 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "通知承办人" -#: etc/initialdata:99 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "以评论方å¼é€šçŸ¥æ‰¿åŠžäºº" -#: etc/initialdata:385 +#: etc/initialdata:361 msgid "Notify Owner of their rejected ticket" msgstr "通知承办人申请å•已驳回" -#: etc/initialdata:374 +#: etc/initialdata:350 msgid "Notify Owner of their ticket has been approved by all approvers" msgstr "通知承办人申请å•已完æˆå…¨éƒ¨ç­¾æ ¸" -#: etc/initialdata:359 +#: etc/initialdata:338 msgid "Notify Owner of their ticket has been approved by some approver" msgstr "通知承办人申请å•å·²å®ŒæˆæŸé¡¹ç­¾æ ¸" -#: etc/initialdata:343 etc/upgrade/2.1.71:17 html/Edit/Elements/CreateApprovalsQueue:22 +#: etc/initialdata:319 etc/upgrade/2.1.71:17 html/Edit/Elements/CreateApprovalsQueue:22 msgid "Notify Owners and AdminCcs of new items pending their approval" msgstr "æ•´ç†å¾…签核事项,通知承办人åŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:95 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "通知申请人" -#: etc/initialdata:121 +#: etc/initialdata:103 msgid "Notify Requestors and Ccs" msgstr "通知申请人åŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:116 +#: etc/initialdata:98 msgid "Notify Requestors and Ccs as Comment" msgstr "以评论方å¼é€šçŸ¥ç”³è¯·äººåŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:130 +#: etc/initialdata:112 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "通知申请人ã€å‰¯æœ¬åŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:126 +#: etc/initialdata:108 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "以评论方å¼é€šçŸ¥ç”³è¯·äººã€å‰¯æœ¬åŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" @@ -3919,9 +4075,9 @@ msgstr "11" msgid "November" msgstr "å一月" -#: html/Edit/Global/Basic/Top:74 +#: html/Edit/Global/Basic/Top:83 msgid "OIN104" -msgstr "é…åˆ 104eHRMS 接å£" +msgstr "104eHRMS 接å£" #: html/Edit/Global/Workflow/Export.html:30 html/Work/Copyright.html:23 msgid "OK" @@ -3935,7 +4091,7 @@ msgstr "无法新增对象" msgid "Object created" msgstr "对象新增完毕" -#: html/Edit/Users/Info:36 +#: NOT FOUND IN SOURCE msgid "Occupation Status" msgstr "在èŒçжæ€" @@ -3951,7 +4107,7 @@ msgstr "10" msgid "October" msgstr "åæœˆ" -#: html/Edit/Users/Info:33 +#: NOT FOUND IN SOURCE msgid "Office Phone" msgstr "办公室电è¯" @@ -3959,35 +4115,39 @@ msgstr "办公室电è¯" msgid "On" msgstr "等于" -#: etc/initialdata:173 +#: html/Edit/Global/CustomField/Top:68 +msgid "On Change" +msgstr "æ›´æ”¹ç”³è¯·å•æ—¶" + +#: etc/initialdata:155 msgid "On Comment" msgstr "评论时" -#: etc/initialdata:166 +#: etc/initialdata:148 msgid "On Correspond" msgstr "回å¤ç”³è¯·å•æ—¶" -#: etc/initialdata:155 +#: etc/initialdata:137 html/Edit/Global/CustomField/Top:57 msgid "On Create" msgstr "æ–°å¢žç”³è¯·å•æ—¶" -#: etc/initialdata:187 +#: etc/initialdata:169 msgid "On Owner Change" msgstr "æ‰¿åŠžäººæ”¹å˜æ—¶" -#: etc/initialdata:195 +#: etc/initialdata:177 msgid "On Queue Change" msgstr "è¡¨å•æ”¹å˜æ—¶" -#: etc/initialdata:201 +#: etc/initialdata:183 msgid "On Resolve" msgstr "è§£å†³ç”³è¯·å•æ—¶" -#: etc/initialdata:179 +#: etc/initialdata:161 msgid "On Status Change" msgstr "çŽ°å†µæ”¹å˜æ—¶" -#: etc/initialdata:160 +#: etc/initialdata:142 msgid "On Transaction" msgstr "å‘生更动时" @@ -4001,7 +4161,7 @@ msgstr "仅显示 %1 ä¹‹åŽæ–°å¢žçš„申请å•" msgid "Only show approvals for requests created before %1" msgstr "仅显示 %1 之剿–°å¢žçš„申请å•" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:13 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:28 +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:68 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:51 msgid "Open" msgstr "å¼€å¯" @@ -4021,7 +4181,7 @@ msgstr "在新窗å£å¼€å¯(列表的)申请å•" msgid "Open tickets (from listing) in another window" msgstr "在å¦ä¸€ä¸ªçª—å£å¼€å¯(列表的)申请å•" -#: etc/initialdata:150 +#: etc/initialdata:132 msgid "Open tickets on correspondence" msgstr "æ”¶åˆ°å›žå¤æ—¶å³å¼€å¯ç”³è¯·å•" @@ -4041,11 +4201,11 @@ msgstr "选项æè¿°" msgid "Option Name" msgstr "选项åç§°" -#: html/Search/Elements/PickRestriction:100 html/Work/Search/PickRestriction:81 +#: html/Search/Elements/PickRestriction:100 html/Work/Search/PickRestriction:87 msgid "Ordering and sorting" msgstr "顺åºä¸ŽæŽ’åºæ–¹å¼" -#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Global/Basic/Top:50 html/Elements/SelectUsers:28 html/User/Prefs.html:85 html/Work/Preferences/Info:74 +#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Elements/SelectUsers:7 html/Edit/Global/Basic/Top:55 html/Elements/SelectUsers:28 html/User/Prefs.html:110 html/Work/Preferences/Info:77 msgid "Organization" msgstr "组织åç§°" @@ -4058,11 +4218,11 @@ msgstr "组织:" msgid "Originating ticket: #%1" msgstr "原申请å•:#%1" -#: html/Edit/Elements/PickUsers:109 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 +#: html/Edit/Elements/PickUsers:111 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 msgid "Other comma-delimited email addresses" msgstr "其它e-mailå¸å· (ä»…e-mail通知;多笔å¸å·è¯·ç”¨é€—å·','区隔)" -#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 html/Edit/Queues/Basic/Top:41 +#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 html/Edit/Queues/Basic/Top:44 msgid "Over time, priority moves toward" msgstr "优先顺ä½éšæ—¶é—´å¢žåŠ è°ƒæ•´ä¸º" @@ -4074,12 +4234,12 @@ msgstr "以 %1 表å•的自订字段å–代现有字段" msgid "Override global rights" msgstr "å–代全域æƒé™" -#: html/Admin/Elements/CheckOverrideGlobalACL:34 +#: html/Admin/Elements/CheckOverrideGlobalACL:36 #. (loc_fuzzy($msg)) msgid "OverrideGlobalACL status %1" msgstr "å–代全域æƒé™ %1" -#: html/Work/Elements/Tab:29 +#: html/Work/Elements/Tab:31 msgid "Overview" msgstr "总览" @@ -4091,7 +4251,7 @@ msgstr "承办申请å•" msgid "OwnTicket" msgstr "承办申请å•" -#: etc/initialdata:56 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:47 html/Edit/Queues/Basic/Top:58 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:13 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1244 +#: etc/initialdata:38 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:51 html/Edit/Queues/Basic/Top:59 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:19 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/EditPeople:28 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1263 msgid "Owner" msgstr "承办人" @@ -4099,7 +4259,7 @@ msgstr "承办人" msgid "Owner changed from %1 to %2" msgstr "承办人已从 %1 改为 %2" -#: lib/RT/Transaction_Overlay.pm:582 +#: lib/RT/Transaction_Overlay.pm:539 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "强制将承办人从 %1 改为 %2" @@ -4108,15 +4268,15 @@ msgstr "强制将承办人从 %1 改为 %2" msgid "Owner is" msgstr "承办人" -#: html/Work/Elements/List:27 html/Work/Queues/List:8 html/Work/Tickets/Create.html:54 html/Work/Tickets/Elements/ShowBasics:52 +#: html/Work/Elements/List:27 html/Work/Queues/List:8 html/Work/Tickets/Create.html:55 html/Work/Tickets/Elements/ShowBasics:60 msgid "Owner's Phone" msgstr "承办人电è¯" -#: html/Edit/Elements/Page:39 -msgid "Page" +#: html/Edit/Elements/Page:40 +msgid "Page #" msgstr " " -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:55 html/Work/Preferences/Info:35 +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:75 html/Work/Preferences/Info:40 msgid "Pager" msgstr "呼å«å™¨" @@ -4124,7 +4284,7 @@ msgstr "呼å«å™¨" msgid "PagerPhone" msgstr "呼å«å™¨å·ç " -#: html/Edit/Global/Workflow/Action:81 html/Edit/Global/Workflow/Condition:66 +#: html/Edit/Global/Workflow/Action:75 html/Edit/Global/Workflow/Condition:65 msgid "Parameter" msgstr "呼å«å‚æ•°" @@ -4132,7 +4292,7 @@ msgstr "呼å«å‚æ•°" msgid "Parent" msgstr "上级" -#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:126 html/Ticket/Elements/EditLinks:57 html/Ticket/Elements/ShowLinks:46 html/Work/Search/BulkLinks:14 +#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:109 html/Ticket/Elements/EditLinks:54 html/Ticket/Elements/ShowLinks:46 html/Work/Search/BulkLinks:14 html/Work/Tickets/Elements/EditLinks:113 html/Work/Tickets/Elements/EditLinks:45 html/Work/Tickets/Elements/ShowLinks:26 msgid "Parents" msgstr "æ¯ç”³è¯·å•" @@ -4140,7 +4300,7 @@ msgstr "æ¯ç”³è¯·å•" msgid "Park Space" msgstr "åœè½¦ä½ç”³è¯·" -#: html/Elements/Login:52 html/User/Prefs.html:60 html/Work/Preferences/Info:41 +#: html/Elements/Login:52 html/User/Prefs.html:83 html/Work/Preferences/Info:46 msgid "Password" msgstr "å£ä»¤" @@ -4148,20 +4308,20 @@ msgstr "å£ä»¤" msgid "Password Reminder" msgstr "å£ä»¤æç¤º" -#: lib/RT/User_Overlay.pm:228 lib/RT/User_Overlay.pm:927 +#: lib/RT/User_Overlay.pm:230 lib/RT/User_Overlay.pm:990 msgid "Password too short" msgstr "å£ä»¤å¤ªçŸ­" -#: html/Admin/Users/Modify.html:290 html/User/Prefs.html:171 html/Work/Preferences/Info:162 +#: html/Admin/Users/Modify.html:292 html/User/Prefs.html:209 html/Work/Preferences/Info:173 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "å£ä»¤ï¼š%1" -#: html/Admin/Users/Modify.html:292 +#: html/Admin/Users/Modify.html:294 msgid "Passwords do not match." msgstr "å£ä»¤ç¡®è®¤å¤±è´¥ã€‚" -#: html/User/Prefs.html:173 html/Work/Preferences/Info:164 +#: html/User/Prefs.html:211 html/Work/Preferences/Info:175 msgid "Passwords do not match. Your password has not been changed" msgstr "å£ä»¤ç¡®è®¤å¤±è´¥ã€‚您的å£ä»¤å¹¶æœªæ”¹å˜ã€‚" @@ -4181,11 +4341,11 @@ msgstr "人员" msgid "People with Queue Rights" msgstr "æ‹¥æœ‰è¡¨å•æƒé™äººå‘˜" -#: etc/initialdata:143 +#: etc/initialdata:125 msgid "Perform a user-defined action" msgstr "执行使用者自订的动作" -#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:510 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1098 lib/RT/Group_Overlay.pm:1107 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1162 lib/RT/Group_Overlay.pm:1168 lib/RT/Group_Overlay.pm:425 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:903 lib/RT/Group_Overlay.pm:907 lib/RT/Group_Overlay.pm:920 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:196 lib/RT/Scrip_Overlay.pm:429 lib/RT/Template_Overlay.pm:283 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1349 lib/RT/Ticket_Overlay.pm:1359 lib/RT/Ticket_Overlay.pm:1373 lib/RT/Ticket_Overlay.pm:1526 lib/RT/Ticket_Overlay.pm:1535 lib/RT/Ticket_Overlay.pm:1548 lib/RT/Ticket_Overlay.pm:1897 lib/RT/Ticket_Overlay.pm:2035 lib/RT/Ticket_Overlay.pm:2199 lib/RT/Ticket_Overlay.pm:2266 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2697 lib/RT/Ticket_Overlay.pm:2791 lib/RT/Ticket_Overlay.pm:2806 lib/RT/Ticket_Overlay.pm:3005 lib/RT/Ticket_Overlay.pm:3015 lib/RT/Ticket_Overlay.pm:3020 lib/RT/Ticket_Overlay.pm:3242 lib/RT/Ticket_Overlay.pm:3440 lib/RT/Ticket_Overlay.pm:3602 lib/RT/Ticket_Overlay.pm:3654 lib/RT/Ticket_Overlay.pm:3829 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1021 lib/RT/User_Overlay.pm:1414 lib/RT/User_Overlay.pm:629 lib/RT/User_Overlay.pm:664 lib/RT/User_Overlay.pm:920 +#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1096 lib/RT/Group_Overlay.pm:1100 lib/RT/Group_Overlay.pm:1109 lib/RT/Group_Overlay.pm:1160 lib/RT/Group_Overlay.pm:1164 lib/RT/Group_Overlay.pm:1170 lib/RT/Group_Overlay.pm:423 lib/RT/Group_Overlay.pm:515 lib/RT/Group_Overlay.pm:593 lib/RT/Group_Overlay.pm:601 lib/RT/Group_Overlay.pm:698 lib/RT/Group_Overlay.pm:702 lib/RT/Group_Overlay.pm:708 lib/RT/Group_Overlay.pm:901 lib/RT/Group_Overlay.pm:905 lib/RT/Group_Overlay.pm:918 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:934 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:201 lib/RT/Scrip_Overlay.pm:441 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1386 lib/RT/Ticket_Overlay.pm:1396 lib/RT/Ticket_Overlay.pm:1410 lib/RT/Ticket_Overlay.pm:1544 lib/RT/Ticket_Overlay.pm:1553 lib/RT/Ticket_Overlay.pm:1566 lib/RT/Ticket_Overlay.pm:1915 lib/RT/Ticket_Overlay.pm:2053 lib/RT/Ticket_Overlay.pm:2217 lib/RT/Ticket_Overlay.pm:2286 lib/RT/Ticket_Overlay.pm:2647 lib/RT/Ticket_Overlay.pm:2728 lib/RT/Ticket_Overlay.pm:2832 lib/RT/Ticket_Overlay.pm:2847 lib/RT/Ticket_Overlay.pm:3046 lib/RT/Ticket_Overlay.pm:3056 lib/RT/Ticket_Overlay.pm:3061 lib/RT/Ticket_Overlay.pm:3284 lib/RT/Ticket_Overlay.pm:3288 lib/RT/Ticket_Overlay.pm:3487 lib/RT/Ticket_Overlay.pm:3649 lib/RT/Ticket_Overlay.pm:3701 lib/RT/Ticket_Overlay.pm:3907 lib/RT/Transaction_Overlay.pm:415 lib/RT/Transaction_Overlay.pm:422 lib/RT/Transaction_Overlay.pm:451 lib/RT/Transaction_Overlay.pm:458 lib/RT/User_Overlay.pm:1084 lib/RT/User_Overlay.pm:1532 lib/RT/User_Overlay.pm:692 lib/RT/User_Overlay.pm:727 lib/RT/User_Overlay.pm:983 msgid "Permission Denied" msgstr "æƒé™ä¸è¶³" @@ -4217,10 +4377,26 @@ msgstr "代ç†äººç¾¤ç»„" msgid "Personal groups:" msgstr "代ç†äººç¾¤ç»„:" -#: html/Work/Preferences/Info:21 +#: html/Work/Preferences/Info:24 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 "电è¯" @@ -4229,11 +4405,11 @@ msgstr "电è¯" msgid "Phone number" msgstr "电è¯å·ç " -#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:48 html/Work/Preferences/Info:27 +#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:60 html/Work/Preferences/Info:32 msgid "Phone numbers" msgstr "电è¯å·ç " -#: html/Edit/Users/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 +#: html/Edit/Queues/Basic/Add.html:3 html/Edit/Queues/Basic/Top:55 html/Edit/Users/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 msgid "Pick" msgstr "挑选" @@ -4245,7 +4421,7 @@ msgstr "出å‘地点" msgid "Placeholder" msgstr "尚未完工" -#: html/Edit/Elements/PickUsers:31 html/Edit/Elements/PickUsers:44 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:104 html/Work/Tickets/Elements/EditCustomField:185 html/Work/Tickets/Elements/EditCustomField:75 html/Work/Tickets/Elements/EditCustomFieldEntries:66 html/Work/Tickets/Elements/EditCustomFieldEntries:73 +#: html/Edit/Elements/PickUsers:31 html/Edit/Elements/PickUsers:44 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:187 html/Work/Tickets/Elements/EditCustomFieldEntry:24 html/Work/Tickets/Elements/EditCustomFieldEntry:35 msgid "Please Select" msgstr "请选择" @@ -4261,6 +4437,10 @@ msgstr "请选择群组" 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 "请选择角色" @@ -4273,19 +4453,19 @@ msgstr "ç»è¥è§„ç« " msgid "Position" msgstr "èŒåŠ¡" -#: html/Edit/Users/Info:43 +#: NOT FOUND IN SOURCE msgid "Position Level" msgstr "èŒç­‰" -#: html/Edit/Elements/PickUsers:41 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Users/Add.html:41 html/Edit/Users/List:11 html/Edit/Users/Top:22 html/Work/Delegates/Add.html:26 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 +#: html/Edit/Elements/PickUsers:41 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Queues/Basic/Add.html:26 html/Edit/Users/Add.html:41 html/Work/Delegates/Add.html:26 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 msgid "Position Name" msgstr "èŒåŠ¡åç§°" -#: html/Edit/Global/UserRight/List:14 html/Edit/Global/UserRight/Top:33 html/Edit/Users/List:12 html/Edit/Users/Top:32 +#: html/Edit/Global/UserRight/List:14 html/Edit/Global/UserRight/Top:33 msgid "Position Number" msgstr "èŒåС代ç " -#: html/Edit/Users/Info:44 +#: NOT FOUND IN SOURCE msgid "Position Rank" msgstr "èŒçº§" @@ -4293,7 +4473,7 @@ msgstr "èŒçº§" msgid "Pref" msgstr "å好" -#: html/Edit/Elements/104Top:25 html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 html/Work/Elements/Tab:41 +#: html/Edit/Elements/104Top:26 html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 html/Work/Elements/Tab:43 msgid "Preferences" msgstr "å好" @@ -4322,7 +4502,7 @@ msgstr "优先顺ä½" msgid "Principal %1 not found." msgstr "找ä¸åˆ°å•ä½ %1。" -#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 lib/RT/Tickets_Overlay.pm:1042 +#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 html/Work/Tickets/Elements/EditBasics:41 lib/RT/Tickets_Overlay.pm:1061 msgid "Priority" msgstr "优先顺ä½" @@ -4330,11 +4510,11 @@ msgstr "优先顺ä½" msgid "Priority starts at" msgstr "优先顺ä½èµ·å§‹å€¼" -#: etc/initialdata:43 +#: etc/initialdata:25 msgid "Privileged" msgstr "内部æˆå‘˜" -#: html/Admin/Users/Modify.html:270 html/User/Prefs.html:162 html/Work/Preferences/Info:153 +#: html/Admin/Users/Modify.html:272 html/User/Prefs.html:200 html/Work/Preferences/Info:164 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "内部æˆå‘˜çжæ€ï¼š%1" @@ -4347,11 +4527,19 @@ msgstr "内部æˆå‘˜" msgid "Process Status" msgstr "处ç†çжæ€" -#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 etc/initialdata:77 +#: html/Edit/Queues/List:10 +msgid "Project Name" +msgstr "项目åç§°" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 msgid "Pseudogroup for internal use" msgstr "内部用的虚拟群组" -#: html/Work/Preferences/Info:64 +#: html/Edit/Queues/List:11 +msgid "Public Description" +msgstr "公开说明" + +#: html/Work/Preferences/Info:70 msgid "Public Info" msgstr "公开信æ¯" @@ -4359,11 +4547,15 @@ msgstr "公开信æ¯" msgid "Public Service" msgstr "公共事务区" +#: NOT FOUND IN SOURCE +msgid "Purging stale data: %1" +msgstr "移除过期数æ®: %1" + #: html/Edit/Users/Search.html:4 msgid "Query" msgstr "查询" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:11 html/Work/Elements/MyTickets:11 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 lib/RT/Tickets_Overlay.pm:883 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:17 html/Work/Elements/MyTickets:17 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 html/Work/Tickets/Elements/EditBasics:16 lib/RT/Tickets_Overlay.pm:902 msgid "Queue" msgstr "表å•" @@ -4381,19 +4573,19 @@ msgstr "找ä¸åˆ°è¡¨å• '%1'\\n" msgid "Queue Keyword Selections" msgstr "表å•关键è¯é€‰å–" -#: html/Admin/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 html/Edit/Queues/Basic/Top:12 html/Edit/Queues/Basic/index.html:36 html/Edit/Queues/Global:21 html/Edit/Queues/List:6 html/Edit/Users/Queue:10 html/Work/Delegates/List:6 html/Work/Elements/List:11 html/Work/Queues/List:5 html/Work/Tickets/Create.html:20 html/Work/Tickets/Elements/ShowBasics:6 +#: html/Admin/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 html/Edit/Queues/Basic/Top:13 html/Edit/Queues/Basic/index.html:36 html/Edit/Queues/Global:21 html/Edit/Queues/List:20 html/Edit/Users/Queue:10 html/Work/Delegates/List:6 html/Work/Elements/List:11 html/Work/Queues/List:5 html/Work/Tickets/Create.html:21 html/Work/Tickets/Elements/ShowBasics:6 msgid "Queue Name" msgstr "表å•åç§°" -#: html/Edit/Queues/List:8 html/Work/Elements/List:25 html/Work/Queues/List:7 html/Work/Tickets/Create.html:33 html/Work/Tickets/Elements/ShowBasics:19 +#: html/Edit/Queues/List:22 html/Work/Elements/List:25 html/Work/Queues/List:7 html/Work/Tickets/Create.html:34 html/Work/Tickets/Elements/ShowBasics:19 msgid "Queue Owner" msgstr "业务承办人" -#: html/Edit/Queues/Basic/Top:35 +#: html/Edit/Queues/Basic/Top:38 msgid "Queue Priority" msgstr "优先等级" -#: html/Edit/Global/GroupRight/Top:24 html/Edit/Global/UserRight/Top:43 html/Edit/Users/Queue:11 html/Edit/Users/index.html:124 +#: html/Edit/Global/GroupRight/Top:24 html/Edit/Global/UserRight/Top:43 html/Edit/Users/Queue:11 html/Edit/Users/index.html:97 msgid "Queue Rights" msgstr "è¡¨å•æƒé™" @@ -4401,7 +4593,7 @@ msgstr "è¡¨å•æƒé™" msgid "Queue Scrips" msgstr "è¡¨å•æ‰‹ç»­" -#: html/Edit/Elements/Tab:36 +#: html/Edit/Elements/Tab:38 msgid "Queue Setup" msgstr "表å•设定" @@ -4413,11 +4605,11 @@ msgstr "表å•已存在" msgid "Queue could not be created" msgstr "无法新增表å•" -#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:204 html/Work/Tickets/Create.html:176 +#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:208 html/Work/Tickets/Create.html:180 msgid "Queue could not be loaded." msgstr "无法加载表å•" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "è¡¨å•æ–°å¢žå®Œæ¯•" @@ -4446,7 +4638,7 @@ msgstr "表å•一览" msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 +#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 #. ($RT::VERSION, $RT::rtname) msgid "RT %1 for %2" msgstr "%2:RT %1 版" @@ -4562,11 +4754,15 @@ msgstr "系统è¿è¡Œè§’色" msgid "RT::Ticket-Role" msgstr "申请å•è¿è¡Œè§’色" -#: html/Work/Tickets/Elements/ShowTransaction:11 +#: html/Work/Tickets/Elements/ShowTransaction:14 msgid "RT_System" msgstr "系统讯æ¯" -#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/User/Prefs.html:43 html/Work/Preferences/Info:18 +#: html/Edit/Global/CustomField/SelectWritable:7 +msgid "Read Only" +msgstr "åªè¯»" + +#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/Edit/Elements/SelectUsers:5 html/Edit/Users/List:6 html/User/Prefs.html:47 html/Work/Preferences/Info:18 msgid "Real Name" msgstr "真实姓å" @@ -4574,15 +4770,35 @@ msgstr "真实姓å" msgid "RealName" msgstr "真实姓å" -#: html/Work/Approvals/Display.html:27 html/Work/Tickets/Update.html:85 +#: html/Work/Approvals/Display.html:30 html/Work/Tickets/Update.html:81 msgid "Really reject this ticket?" msgstr "您确定è¦é©³å›žè¿™å¼ ç”³è¯·å•å—?" -#: html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:138 html/Ticket/Elements/EditLinks:93 html/Ticket/Elements/ShowLinks:70 html/Work/Search/BulkLinks:26 +#: lib/RT/Transaction_Overlay.pm:592 +#. ($value) +msgid "Reference by %1 added" +msgstr "已加入 %1 为å‚考本申请å•" + +#: lib/RT/Transaction_Overlay.pm:629 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "已移除 %1 为å‚考本申请å•" + +#: lib/RT/Transaction_Overlay.pm:589 +#. ($value) +msgid "Reference to %1 added" +msgstr "已加入å‚è€ƒç”³è¯·å• %1" + +#: lib/RT/Transaction_Overlay.pm:626 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "已移除å‚è€ƒç”³è¯·å• %1" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:121 html/Ticket/Elements/EditLinks:81 html/Ticket/Elements/ShowLinks:70 html/Work/Search/BulkLinks:26 html/Work/Tickets/Elements/EditLinks:125 html/Work/Tickets/Elements/EditLinks:81 html/Work/Tickets/Elements/ShowLinks:38 msgid "Referred to by" msgstr "被å‚考" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:134 html/Ticket/Elements/EditLinks:79 html/Ticket/Elements/ShowLinks:60 html/Work/Search/BulkLinks:22 +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:117 html/Ticket/Elements/EditLinks:72 html/Ticket/Elements/ShowLinks:60 html/Work/Search/BulkLinks:22 html/Work/Tickets/Elements/EditLinks:121 html/Work/Tickets/Elements/EditLinks:67 html/Work/Tickets/Elements/ShowLinks:33 msgid "Refers to" msgstr "å‚考" @@ -4607,7 +4823,7 @@ msgstr "æ›´æ–°" msgid "Refresh this page every %1 minutes." msgstr "æ¯ %1 分钟更新页é¢" -#: html/Ticket/Create.html:173 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 msgid "Relationships" msgstr "关系" @@ -4627,7 +4843,7 @@ msgstr "移除副本" msgid "Remove Requestor" msgstr "移除申请人" -#: html/Ticket/Elements/ShowTransaction:160 html/Ticket/Elements/Tabs:121 html/Work/Tickets/Display.html:31 html/Work/Tickets/Elements/ShowTransaction:106 +#: html/Ticket/Elements/ShowTransaction:172 html/Ticket/Elements/Tabs:121 html/Work/Tickets/Display.html:54 html/Work/Tickets/Elements/ShowTransaction:115 msgid "Reply" msgstr "回å¤" @@ -4639,15 +4855,15 @@ msgstr "对申请å•进行回å¤" msgid "ReplyToTicket" msgstr "回å¤ç”³è¯·å•" -#: html/Edit/Users/Info:46 +#: NOT FOUND IN SOURCE msgid "Report to Duty" msgstr "上下ç­åˆ·å¡" -#: html/Edit/Users/Info:34 +#: NOT FOUND IN SOURCE msgid "Reported on" msgstr "åˆ°èŒæ—¥æœŸ" -#: etc/initialdata:62 html/Ticket/Update.html:39 html/Work/Elements/List:21 html/Work/Elements/MyApprovals:12 html/Work/Elements/SelectSearch:30 html/Work/Tickets/Elements/ShowBasics:54 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 html/Ticket/Update.html:39 html/Work/Elements/List:21 html/Work/Elements/MyApprovals:12 html/Work/Elements/MyTickets:20 html/Work/Elements/SelectSearch:31 html/Work/Tickets/Elements/ShowBasics:62 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "申请人" @@ -4675,7 +4891,7 @@ msgstr "申请人" msgid "RequestorAddresses" msgstr "申请人地å€" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 html/Work/Tickets/Elements/EditPeople:38 msgid "Requestors" msgstr "申请人" @@ -4687,7 +4903,7 @@ msgstr "申请å•å¤„ç†æœŸé™" msgid "Reset" msgstr "é‡è®¾" -#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:49 html/Work/Preferences/Info:29 +#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:63 html/Work/Preferences/Info:34 msgid "Residence" msgstr "ä½å¤„" @@ -4695,16 +4911,16 @@ msgstr "ä½å¤„" msgid "Resolution" msgstr "解决状æ€" -#: html/Ticket/Elements/Tabs:131 html/Work/Tickets/Display.html:34 +#: html/Ticket/Elements/Tabs:131 html/Work/Tickets/Display.html:57 msgid "Resolve" msgstr "解决" -#: html/Ticket/Update.html:136 html/Work/Tickets/Update.html:120 +#: html/Ticket/Update.html:137 #. ($Ticket->id, $Ticket->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "è§£å†³ç”³è¯·å• #%1 (%2)" -#: etc/initialdata:331 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1178 +#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1215 msgid "Resolved" msgstr "已解决" @@ -4712,7 +4928,7 @@ msgstr "已解决" msgid "Response to requestors" msgstr "回å¤ç”³è¯·äºº" -#: html/Edit/Users/Info:45 +#: NOT FOUND IN SOURCE msgid "Responsibility Type" msgstr "责任区分" @@ -4720,11 +4936,11 @@ msgstr "责任区分" msgid "Results" msgstr "结果" -#: html/Search/Elements/PickRestriction:104 html/Work/Search/PickRestriction:84 +#: html/Search/Elements/PickRestriction:104 html/Work/Search/PickRestriction:90 msgid "Results per page" msgstr "æ¯é¡µåˆ—出几笔结果" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:71 html/Work/Preferences/Info:51 +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 html/Work/Preferences/Info:56 msgid "Retype Password" msgstr "冿¬¡è¾“å…¥å£ä»¤" @@ -4764,17 +4980,17 @@ msgstr "æƒé™æ’¤æ¶ˆå®Œæ¯•" msgid "Rights" msgstr "æƒé™åŠä»£ç†äºº" -#: lib/RT/Interface/Web.pm:794 +#: lib/RT/Interface/Web.pm:857 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "无法将æƒé™èµ‹äºˆ %1" -#: lib/RT/Interface/Web.pm:827 +#: lib/RT/Interface/Web.pm:887 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "无法撤消 %1 çš„æƒé™" -#: html/Edit/Groups/Member:55 html/Edit/Groups/Members/List:10 +#: html/Edit/Groups/Member:54 html/Edit/Groups/Members/List:10 msgid "Role Members" msgstr "角色æˆå‘˜" @@ -4790,19 +5006,19 @@ msgstr "角色" msgid "RootApproval" msgstr "交由系统管ç†å‘˜ç­¾æ ¸" -#: html/Edit/Global/Workflow/Action:27 +#: html/Edit/Global/Workflow/Action:23 msgid "Run Approval" msgstr "签核执行" -#: html/Edit/Global/Basic/Top:72 +#: html/Edit/Global/Basic/Top:81 msgid "SMTPDebug" msgstr "SMTP 侦错纪录" -#: html/Edit/Global/Basic/Top:58 +#: html/Edit/Global/Basic/Top:63 msgid "SMTPFrom" msgstr "SMTP 寄件地å€" -#: html/Edit/Global/Basic/Top:56 +#: html/Edit/Global/Basic/Top:61 msgid "SMTPServer" msgstr "SMTP æœåС噍" @@ -4814,7 +5030,7 @@ msgstr "星期六" msgid "Sat." msgstr "星期六" -#: html/Edit/Elements/104Buttons:72 html/Work/Preferences/index.html:35 +#: html/Edit/Elements/104Buttons:83 html/Work/Preferences/index.html:33 html/Work/Tickets/Elements/EditBasics:63 html/Work/Tickets/Elements/EditLinks:133 html/Work/Tickets/Elements/EditPeople:51 msgid "Save" msgstr "储存" @@ -4840,7 +5056,7 @@ msgstr "讯æ¯é€šçŸ¥åŠ¨ä½œ" msgid "Scrip Condition" msgstr "讯æ¯é€šçŸ¥æ¡ä»¶" -#: lib/RT/Scrip_Overlay.pm:175 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "手续新增完毕" @@ -4848,7 +5064,7 @@ msgstr "手续新增完毕" msgid "Scrip Name" msgstr "讯æ¯åç§°" -#: html/Admin/Elements/EditScrips:83 +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "手续删除完毕" @@ -4856,7 +5072,7 @@ msgstr "手续删除完毕" msgid "Scrips" msgstr "手续" -#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:20 +#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:24 msgid "Scrips " msgstr "讯æ¯é€šçŸ¥" @@ -4868,7 +5084,7 @@ msgstr "%1 的手续\\n" msgid "Scrips which apply to all queues" msgstr "适用于所有表å•的手续" -#: html/Edit/Elements/104Buttons:75 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 html/Work/Elements/Tab:43 html/Work/Search/PickRestriction:102 +#: html/Edit/Elements/104Buttons:86 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 html/Work/Elements/Tab:45 html/Work/Search/PickRestriction:108 msgid "Search" msgstr "查询" @@ -4884,7 +5100,7 @@ msgstr "ç­¾æ ¸å•æŸ¥è¯¢" msgid "Second-" msgstr "二" -#: html/Edit/Users/Info:41 +#: NOT FOUND IN SOURCE msgid "Second-level Users" msgstr "二阶主管员工" @@ -4964,7 +5180,7 @@ msgstr "多é‡é€‰é¡¹" msgid "SelectSingle" msgstr "å•一选项" -#: html/Edit/Elements/PickUsers:85 html/Edit/Users/Add.html:78 +#: html/Edit/Elements/PickUsers:87 html/Edit/Users/Add.html:78 msgid "Selected users:" msgstr "新增对象:" @@ -4972,39 +5188,39 @@ msgstr "新增对象:" msgid "Self Service" msgstr "自助æœåŠ¡" -#: etc/initialdata:131 +#: etc/initialdata:113 msgid "Send mail to all watchers" msgstr "寄信给所有视察员" -#: etc/initialdata:127 +#: etc/initialdata:109 msgid "Send mail to all watchers as a \"comment\"" msgstr "以评论方å¼å¯„信给所有视察员" -#: etc/initialdata:122 +#: etc/initialdata:104 msgid "Send mail to requestors and Ccs" msgstr "寄信给申请人åŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:117 +#: etc/initialdata:99 msgid "Send mail to requestors and Ccs as a comment" msgstr "以评论方å¼å¯„信给申请人åŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:96 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "寄信给申请人" -#: etc/initialdata:135 etc/initialdata:139 +#: etc/initialdata:117 etc/initialdata:121 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "寄信给特定的副本åŠå¯†ä»¶å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:112 +#: etc/initialdata:94 msgid "Sends mail to the administrative Ccs" msgstr "寄信给管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:108 +#: etc/initialdata:90 msgid "Sends mail to the administrative Ccs as a comment" msgstr "以评论寄信给管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:100 etc/initialdata:104 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "寄信给申请人" @@ -5020,7 +5236,11 @@ msgstr "09" msgid "September" msgstr "乿œˆ" -#: html/Edit/Users/Info:39 +#: NOT FOUND IN SOURCE +msgid "Setting %1's 'Disabled' property to %2" +msgstr "%1 的「åœç”¨ã€å±žæ€§å·²è®¾ä¸º %2" + +#: NOT FOUND IN SOURCE msgid "Shift Type" msgstr "ç­åˆ«å±žæ€§" @@ -5088,7 +5308,7 @@ msgstr "登记æˆä¸ºç”³è¯·äººæˆ–副本收件人" msgid "Sign up as a ticket or queue AdminCc" msgstr "登记æˆä¸ºç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/User/Prefs.html:111 html/Work/Preferences/Info:106 +#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/Edit/Users/Info:52 html/User/Prefs.html:148 html/Work/Preferences/Info:113 msgid "Signature" msgstr "ç­¾åæ¡£" @@ -5100,7 +5320,7 @@ msgstr "使用者:%1" msgid "Single" msgstr "å•一" -#: html/Elements/Header:50 +#: html/Edit/Elements/104Top:21 html/Elements/Header:50 msgid "Skip Menu" msgstr "略过选å•" @@ -5112,7 +5332,7 @@ msgstr "顺åº" msgid "Sort key" msgstr "æŽ’åºæ–¹å¼" -#: html/Search/Elements/PickRestriction:108 html/Work/Search/PickRestriction:89 +#: html/Search/Elements/PickRestriction:108 html/Work/Search/PickRestriction:95 msgid "Sort results by" msgstr "ç»“æžœæŽ’åºæ–¹å¼" @@ -5120,7 +5340,7 @@ msgstr "ç»“æžœæŽ’åºæ–¹å¼" msgid "SortOrder" msgstr "排åºé¡ºåº" -#: html/Work/Elements/List:8 html/Work/Elements/MyApprovals:11 +#: html/Admin/Elements/EditScrip:80 html/Edit/Global/Scrip/Top:75 html/Work/Elements/List:8 html/Work/Elements/MyApprovals:11 msgid "Stage" msgstr "å…³å¡" @@ -5140,7 +5360,7 @@ msgstr "延宕" msgid "Start page" msgstr "首页" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:34 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 html/Work/Tickets/Elements/EditBasics:35 msgid "Started" msgstr "实际起始日" @@ -5148,7 +5368,7 @@ msgstr "实际起始日" msgid "Started date '%1' could not be parsed" msgstr "无法解读起始日期 '%1" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:30 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 html/Work/Tickets/Elements/EditBasics:26 msgid "Starts" msgstr "应起始日" @@ -5160,19 +5380,19 @@ msgstr "应起始日" msgid "Starts date '%1' could not be parsed" msgstr "无法解读起始日期 '%1" -#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:93 html/Work/Preferences/Info:82 +#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:126 html/Work/Preferences/Info:85 msgid "State" msgstr "å·ž" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:15 html/Work/Elements/MyRequests:12 html/Work/Elements/MyTickets:12 html/Work/Search/PickRestriction:54 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1172 lib/RT/Tickets_Overlay.pm:908 +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:15 html/Work/Elements/MyRequests:18 html/Work/Elements/MyTickets:18 html/Work/Search/PickRestriction:54 html/Work/Tickets/Elements/EditBasics:19 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1209 lib/RT/Tickets_Overlay.pm:927 msgid "Status" msgstr "现况" -#: etc/initialdata:317 +#: etc/initialdata:294 msgid "Status Change" msgstr "çŽ°å†µæ”¹å˜æ—¶" -#: lib/RT/Transaction_Overlay.pm:528 +#: lib/RT/Transaction_Overlay.pm:477 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "现况从 %1 改为 %2" @@ -5193,25 +5413,25 @@ msgstr "强制承办申请å•" msgid "StealTicket" msgstr "强制承办申请å•" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:545 #. ($Old->Name) msgid "Stolen from %1 " -msgstr "被 %1 å¼ºåˆ¶æ›´æ¢ " +msgstr "承办人从 %1 强制更æ¢" -#: html/Edit/Groups/Member:69 +#: html/Edit/Groups/Member:68 msgid "Subgroup" msgstr "å­ç¾¤ç»„" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:10 html/Work/Elements/MyTickets:10 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Create.html:122 lib/RT/Ticket_Overlay.pm:1168 lib/RT/Tickets_Overlay.pm:987 +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:16 html/Work/Elements/MyTickets:16 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Elements/AddSubject:8 html/Work/Tickets/Elements/EditBasics:8 html/Work/Tickets/Elements/ShowBasics:36 html/Work/Tickets/Elements/ShowSubject:8 lib/RT/Ticket_Overlay.pm:1205 lib/RT/Tickets_Overlay.pm:1006 msgid "Subject" msgstr "主题" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:567 #. ($self->Data) msgid "Subject changed to %1" msgstr "标题已改为 %1" -#: html/Elements/Submit:58 html/Work/Search/Bulk.html:103 +#: html/Edit/Users/Info:71 html/Elements/Submit:58 html/Work/Search/Bulk.html:103 msgid "Submit" msgstr "é€å‡º" @@ -5219,7 +5439,7 @@ msgstr "é€å‡º" msgid "Submit Workflow" msgstr "é€å‡ºæµç¨‹" -#: lib/RT/Group_Overlay.pm:748 +#: lib/RT/Group_Overlay.pm:746 msgid "Succeeded" msgstr "设定æˆåŠŸ" @@ -5235,6 +5455,18 @@ msgstr "星期日" msgid "SuperUser" msgstr "系统管ç†å‘˜" +#: html/Edit/Global/Basic/Top:29 +msgid "Sync now" +msgstr "æ‰§è¡ŒåŒæ­¥" + +#: html/Edit/Global/Basic/Top:87 +msgid "Sync104HRMS" +msgstr "è‡ªåŠ¨åŒæ­¥104HRMS" + +#: NOT FOUND IN SOURCE +msgid "Synchronizing HRMS data. This may take a while..." +msgstr "æ­£åœ¨åŒæ­¥åŒ– HRMS 人事系统数æ®ã€‚请ç¨å¾…..." + #: html/User/Elements/DelegateRights:76 msgid "System" msgstr "系统" @@ -5243,7 +5475,7 @@ msgstr "系统" msgid "System Defined" msgstr "系统定义" -#: html/Admin/Elements/SelectRights:80 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:793 lib/RT/Interface/Web.pm:826 +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:856 lib/RT/Interface/Web.pm:886 msgid "System Error" msgstr "系统错误" @@ -5255,7 +5487,7 @@ msgstr "系统错误。设定æƒé™å¤±è´¥ã€‚" msgid "System Error. right not granted" msgstr "系统错误。设定æƒé™å¤±è´¥ã€‚" -#: html/Edit/Users/index.html:122 +#: html/Edit/Users/index.html:95 msgid "System Rights" msgstr "系统æƒé™" @@ -5279,14 +5511,18 @@ msgstr "系统群组" msgid "SystemInternal" msgstr "系统内部用" -#: etc/initialdata:59 etc/initialdata:65 etc/initialdata:71 +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 msgid "SystemRolegroup for internal use" msgstr "内部使用的系统角色群组" -#: lib/RT/CurrentUser.pm:319 +#: lib/RT/CurrentUser.pm:318 msgid "TEST_STRING" msgstr "TEST_STRING" +#: NOT FOUND IN SOURCE +msgid "TabbedUI" +msgstr "页签接å£" + #: html/Ticket/Elements/Tabs:142 msgid "Take" msgstr "å—ç†" @@ -5299,11 +5535,11 @@ msgstr "自行承办申请å•" msgid "TakeTicket" msgstr "自行承办申请å•" -#: lib/RT/Transaction_Overlay.pm:573 +#: lib/RT/Transaction_Overlay.pm:530 msgid "Taken" msgstr "å·²å—ç†" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:88 msgid "Template" msgstr "模æ¿" @@ -5328,7 +5564,7 @@ msgstr "通知模æ¿åç§°" msgid "Template deleted" msgstr "模æ¿å·²åˆ é™¤" -#: lib/RT/Scrip_Overlay.pm:152 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "找ä¸åˆ°æ¨¡æ¿" @@ -5336,7 +5572,7 @@ msgstr "找ä¸åˆ°æ¨¡æ¿" msgid "Template not found\\n" msgstr "找ä¸åˆ°æ¨¡æ¿\\n" -#: lib/RT/Template_Overlay.pm:352 +#: lib/RT/Template_Overlay.pm:359 msgid "Template parsed" msgstr "模æ¿å‰–æžå®Œæ¯•" @@ -5344,7 +5580,7 @@ msgstr "模æ¿å‰–æžå®Œæ¯•" msgid "Templates" msgstr "模æ¿" -#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:19 +#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:23 msgid "Templates " msgstr "通知模æ¿" @@ -5352,7 +5588,7 @@ msgstr "通知模æ¿" msgid "Templates for %1\\n" msgstr "找ä¸åˆ° %1 的模æ¿\\n" -#: lib/RT/Interface/Web.pm:894 +#: lib/RT/Interface/Web.pm:954 msgid "That is already the current value" msgstr "å·²ç»æ˜¯ç›®å‰å­—段的值" @@ -5360,7 +5596,7 @@ msgstr "å·²ç»æ˜¯ç›®å‰å­—段的值" msgid "That is not a value for this custom field" msgstr "è¿™ä¸æ˜¯è¯¥è‡ªè®¢å­—段的值" -#: lib/RT/Ticket_Overlay.pm:1908 +#: lib/RT/Ticket_Overlay.pm:1926 msgid "That is the same value" msgstr "åŒæ ·çš„值" @@ -5373,7 +5609,7 @@ msgstr "这项å•ä½å·²ç»æ‹¥æœ‰è¯¥æƒé™" msgid "That principal is already a %1 for this queue" msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä¸ªè¡¨å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1442 +#: lib/RT/Ticket_Overlay.pm:1460 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" @@ -5383,16 +5619,16 @@ msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" msgid "That principal is not a %1 for this queue" msgstr "这项å•ä½ä¸æ˜¯è¿™ä¸ªè¡¨å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1559 +#: lib/RT/Ticket_Overlay.pm:1577 #. ($args{'Type'}) msgid "That principal is not a %1 for this ticket" msgstr "这项å•ä½ä¸æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1904 +#: lib/RT/Ticket_Overlay.pm:1922 msgid "That queue does not exist" msgstr "此表å•ä¸å­˜åœ¨" -#: lib/RT/Ticket_Overlay.pm:3246 +#: lib/RT/Ticket_Overlay.pm:3293 msgid "That ticket has unresolved dependencies" msgstr "è¿™ä»½ç”³è¯·å•æœ‰å°šæœªè§£å†³çš„附属申请å•" @@ -5400,27 +5636,27 @@ msgstr "è¿™ä»½ç”³è¯·å•æœ‰å°šæœªè§£å†³çš„附属申请å•" msgid "That user already has that right" msgstr "使用者已具有该项æƒé™" -#: lib/RT/Ticket_Overlay.pm:3056 +#: lib/RT/Ticket_Overlay.pm:3097 msgid "That user already owns that ticket" msgstr "è¯¥ä½¿ç”¨è€…å·²ç»æ‰¿åŠžè¿™ä»½ç”³è¯·å•" -#: lib/RT/Ticket_Overlay.pm:3028 +#: lib/RT/Ticket_Overlay.pm:3069 msgid "That user does not exist" msgstr "使用者ä¸å­˜åœ¨" -#: lib/RT/User_Overlay.pm:374 +#: lib/RT/User_Overlay.pm:381 msgid "That user is already privileged" msgstr "è¿™åä½¿ç”¨è€…å·²ç»æ˜¯å†…部æˆå‘˜" -#: lib/RT/User_Overlay.pm:395 +#: lib/RT/User_Overlay.pm:402 msgid "That user is already unprivileged" msgstr "è¿™å使用者属于éžå†…部æˆå‘˜ç¾¤ç»„" -#: lib/RT/User_Overlay.pm:387 +#: lib/RT/User_Overlay.pm:394 msgid "That user is now privileged" msgstr "使用者加入内部æˆå‘˜ç¾¤ç»„完毕" -#: lib/RT/User_Overlay.pm:408 +#: lib/RT/User_Overlay.pm:415 msgid "That user is now unprivileged" msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" @@ -5428,7 +5664,7 @@ msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" msgid "That user is now unprivilegedileged" msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" -#: lib/RT/Ticket_Overlay.pm:3049 +#: lib/RT/Ticket_Overlay.pm:3090 msgid "That user may not own tickets in that queue" msgstr "使用者å¯èƒ½æ²¡æœ‰æ‰¿åŠžè¡¨å•里的申请å•" @@ -5448,7 +5684,7 @@ msgstr "申请å•的副本收件人" msgid "The administrative CC of a ticket" msgstr "申请å•的管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: lib/RT/Ticket_Overlay.pm:2235 +#: lib/RT/Ticket_Overlay.pm:2255 msgid "The comment has been recorded" msgstr "评论已被纪录" @@ -5460,7 +5696,7 @@ msgstr "下列命令会找到 'general' 表å•内所有è¿ä½œä¸­çš„申请å•, msgid "The following commands were not proccessed:\\n\\n" msgstr "以下命令未被执行:\\n\\n" -#: lib/RT/Interface/Web.pm:897 +#: lib/RT/Interface/Web.pm:957 msgid "The new value has been set." msgstr "新的字段值设定完æˆã€‚" @@ -5488,7 +5724,7 @@ msgstr "ç”³è¯·å• %1 %2 (%3)\\n" msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "此工具程åºä¼šè®©ä½¿ç”¨è€…ç»ç”± RT 执行任æ„命令。" -#: lib/RT/Transaction_Overlay.pm:251 +#: lib/RT/Transaction_Overlay.pm:200 msgid "This transaction appears to have no content" msgstr "此项更动报告没有内容" @@ -5509,7 +5745,7 @@ msgstr "星期四" msgid "Thu." msgstr "星期四" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:163 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:163 html/Edit/Global/Workflow/Condition:24 msgid "Ticket" msgstr "申请å•" @@ -5531,7 +5767,7 @@ msgstr "æ›´æ–°ç”³è¯·å• #%1 的全部信æ¯ï¼š%2" msgid "Ticket #%1: %2" msgstr "ç”³è¯·å• #%1: %2" -#: lib/RT/Ticket_Overlay.pm:595 lib/RT/Ticket_Overlay.pm:616 +#: lib/RT/Ticket_Overlay.pm:632 lib/RT/Ticket_Overlay.pm:653 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "ç”³è¯·å• #%1 æˆåŠŸæ–°å¢žäºŽ '%2' 表å•" @@ -5541,12 +5777,12 @@ msgstr "ç”³è¯·å• #%1 æˆåŠŸæ–°å¢žäºŽ '%2' 表å•" msgid "Ticket %1 loaded\\n" msgstr "åŠ è½½ç”³è¯·å• %1\\n" -#: html/Search/Bulk.html:212 html/Work/Search/Bulk.html:169 +#: html/Search/Bulk.html:213 html/Work/Search/Bulk.html:169 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "ç”³è¯·å• %1:%2" -#: html/Edit/Queues/Basic/Top:28 html/Edit/Queues/List:16 html/Work/Queues/List:9 +#: html/Edit/Queues/Basic/Top:30 html/Edit/Queues/List:30 html/Work/Queues/List:9 msgid "Ticket Due" msgstr "表å•å¤„ç†æœŸé™" @@ -5567,11 +5803,11 @@ msgstr "申请å•ç¼–å·" msgid "Ticket Processing Due" msgstr "表å•è¿è¡ŒæœŸé™" -#: etc/initialdata:332 +#: etc/initialdata:309 msgid "Ticket Resolved" msgstr "申请å•已解决" -#: html/Edit/Queues/Basic/Top:18 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:7 html/Edit/Queues/index.html:31 html/Work/Delegates/List:7 html/Work/Delegates/index.html:11 html/Work/Elements/List:12 html/Work/Elements/SelectSearch:9 html/Work/Queues/List:6 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:11 html/Work/Tickets/Create.html:42 html/Work/Tickets/Elements/ShowBasics:33 +#: html/Edit/Queues/Basic/Top:20 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:21 html/Work/Delegates/List:7 html/Work/Delegates/index.html:11 html/Work/Elements/List:12 html/Work/Elements/SelectSearch:9 html/Work/Queues/List:6 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:11 html/Work/Tickets/Create.html:43 html/Work/Tickets/Elements/ShowBasics:34 msgid "Ticket Type" msgstr "表å•ç§ç±»" @@ -5579,19 +5815,19 @@ msgstr "表å•ç§ç±»" msgid "Ticket attachment" msgstr "申请å•附件" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1185 msgid "Ticket content" msgstr "申请å•内容" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1231 msgid "Ticket content type" msgstr "申请å•内容类别" -#: lib/RT/Ticket_Overlay.pm:485 lib/RT/Ticket_Overlay.pm:494 lib/RT/Ticket_Overlay.pm:504 lib/RT/Ticket_Overlay.pm:605 +#: lib/RT/Ticket_Overlay.pm:520 lib/RT/Ticket_Overlay.pm:529 lib/RT/Ticket_Overlay.pm:539 lib/RT/Ticket_Overlay.pm:642 msgid "Ticket could not be created due to an internal error" msgstr "内部错误,无法新增申请å•" -#: lib/RT/Transaction_Overlay.pm:520 +#: lib/RT/Transaction_Overlay.pm:469 msgid "Ticket created" msgstr "ç”³è¯·å•æ–°å¢žå®Œæ¯•" @@ -5599,7 +5835,7 @@ msgstr "ç”³è¯·å•æ–°å¢žå®Œæ¯•" msgid "Ticket creation failed" msgstr "ç”³è¯·å•æ–°å¢žå¤±è´¥" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:474 msgid "Ticket deleted" msgstr "申请å•删除完毕" @@ -5615,7 +5851,7 @@ msgstr "申请å•删除完毕" msgid "Ticket not found" msgstr "找ä¸åˆ°ç”³è¯·å•" -#: etc/initialdata:318 +#: etc/initialdata:295 msgid "Ticket status changed" msgstr "申请å•现况已改å˜" @@ -5627,16 +5863,24 @@ msgstr "申请å•视察员" msgid "Tickets" msgstr "申请å•" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1402 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "ç”³è¯·å• %1 %2" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1367 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) 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/Elements/ViewUser:25 #. ($name) msgid "Tickets from %1" @@ -5646,15 +5890,15 @@ msgstr "%1 的申请å•" msgid "Tickets which depend on this approval:" msgstr "批准之åŽï¼Œå¯æŽ¥ç»­å¤„ç†ï¼š" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 html/Work/Tickets/Elements/EditBasics:32 msgid "Time Left" msgstr "剩馀时间" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 html/Work/Tickets/Elements/EditBasics:24 msgid "Time Worked" msgstr "å¤„ç†æ—¶é—´" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1158 msgid "Time left" msgstr "剩馀时间" @@ -5662,7 +5906,7 @@ msgstr "剩馀时间" msgid "Time to display" msgstr "显示时间" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1134 msgid "Time worked" msgstr "å·²å¤„ç†æ—¶é—´" @@ -5670,7 +5914,7 @@ msgstr "å·²å¤„ç†æ—¶é—´" msgid "TimeLeft" msgstr "剩馀时间" -#: lib/RT/Ticket_Overlay.pm:1173 +#: lib/RT/Ticket_Overlay.pm:1210 msgid "TimeWorked" msgstr "å·²å¤„ç†æ—¶é—´" @@ -5682,32 +5926,40 @@ msgstr "产生这次更动的差异档:" msgid "To generate a diff of this commit:\\n" msgstr "产生这次更动的差异档:\\n" -#: lib/RT/Ticket_Overlay.pm:1176 +#: lib/RT/Ticket_Overlay.pm:1213 msgid "Told" msgstr "告知日期" -#: html/Edit/Elements/Page:46 +#: html/Edit/Elements/Page:47 msgid "Total" msgstr "页" -#: etc/initialdata:239 +#: etc/initialdata:237 msgid "Transaction" msgstr "更动" -#: lib/RT/Transaction_Overlay.pm:640 +#: lib/RT/Transaction_Overlay.pm:666 #. ($self->Data) msgid "Transaction %1 purged" msgstr "清除更动报告 %1" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:126 msgid "Transaction Created" msgstr "更动报告已新增" -#: lib/RT/Transaction_Overlay.pm:88 +#: lib/RT/Transaction_Overlay.pm:90 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "未指定申请å•ç¼–å·ï¼Œæ— æ³•新增更动" -#: lib/RT/Transaction_Overlay.pm:699 +#: NOT FOUND IN SOURCE +msgid "TransactionBatch" +msgstr "批次更动时" + +#: NOT FOUND IN SOURCE +msgid "TransactionCreate" +msgstr "新增更动时" + +#: lib/RT/Transaction_Overlay.pm:721 msgid "Transactions are immutable" msgstr "ä¸å¯æ›´æ”¹æ›´åŠ¨æŠ¥å‘Š" @@ -5723,7 +5975,7 @@ msgstr "星期二" msgid "Tue." msgstr "星期二" -#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1174 lib/RT/Tickets_Overlay.pm:959 +#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1211 lib/RT/Tickets_Overlay.pm:978 msgid "Type" msgstr "类别" @@ -5739,7 +5991,7 @@ msgstr "外部系统登入å¸å·" msgid "UnixUsername" msgstr "外部系统登入å¸å·" -#: lib/RT/Attachment_Overlay.pm:273 lib/RT/Attachment_Overlay.pm:303 +#: lib/RT/Attachment_Overlay.pm:281 lib/RT/Attachment_Overlay.pm:313 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "ä¸å¯è§£çš„å†…å®¹æ–‡å­—ç¼–ç æ–¹å¼ %1" @@ -5748,11 +6000,11 @@ msgstr "ä¸å¯è§£çš„å†…å®¹æ–‡å­—ç¼–ç æ–¹å¼ %1" msgid "Unlimited" msgstr "全数显示" -#: etc/initialdata:50 +#: etc/initialdata:32 msgid "Unprivileged" msgstr "éžå†…部æˆå‘˜" -#: lib/RT/Transaction_Overlay.pm:569 +#: lib/RT/Transaction_Overlay.pm:526 msgid "Untaken" msgstr "未被å—ç†" @@ -5760,7 +6012,7 @@ msgstr "未被å—ç†" msgid "Up" msgstr "上一页" -#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:72 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:82 +#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:83 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:63 msgid "Update" msgstr "处ç†" @@ -5784,7 +6036,7 @@ msgstr "更新电å­é‚®ä»¶ä¿¡ç®±" msgid "Update name" msgstr "æ›´æ–°å¸å·" -#: lib/RT/Interface/Web.pm:409 +#: lib/RT/Interface/Web.pm:467 msgid "Update not recorded." msgstr "更新未被记录" @@ -5804,21 +6056,21 @@ msgstr "更新申请å•" msgid "Update ticket # %1" msgstr "æ›´æ–°ç”³è¯·å• # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:46 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "æ›´æ–°ç”³è¯·å• #%1" -#: html/Ticket/Update.html:138 html/Work/Tickets/Update.html:122 +#: html/Ticket/Update.html:139 #. ($Ticket->id, $Ticket->Subject) msgid "Update ticket #%1 (%2)" msgstr "æ›´æ–°ç”³è¯·å• #%1 (%2)" -#: lib/RT/Interface/Web.pm:407 +#: lib/RT/Interface/Web.pm:465 msgid "Update type was neither correspondence nor comment." msgstr "更新的内容并éžç”³è¯·å•回å¤ä¹Ÿä¸æ˜¯è¯„论" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:50 lib/RT/Ticket_Overlay.pm:1177 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1214 msgid "Updated" msgstr "剿¬¡æ›´æ–°" @@ -5842,31 +6094,31 @@ msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'" msgid "User '%1' not found\\n" msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'\\n" -#: etc/initialdata:142 etc/initialdata:209 +#: etc/initialdata:124 etc/initialdata:191 msgid "User Defined" msgstr "使用者自订" -#: html/Admin/Users/Prefs.html:58 html/Edit/Users/List:13 html/Edit/Users/Top:42 +#: html/Admin/Users/Prefs.html:58 msgid "User ID" msgstr "使用者 ID" -#: html/Elements/SelectUsers:25 +#: html/Edit/Elements/SelectUsers:3 html/Elements/SelectUsers:25 msgid "User Id" msgstr "使用者 ID" -#: html/Edit/Elements/PickUsers:12 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/List:5 html/Edit/Users/Search.html:23 html/Edit/Users/Top:8 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 +#: html/Edit/Elements/PickUsers:12 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/Search.html:23 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 msgid "User Number" msgstr "员工编å·" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:22 +#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:26 msgid "User Rights" msgstr "使用者æƒé™" -#: html/Edit/Elements/Tab:32 +#: html/Edit/Elements/Tab:34 msgid "User Setup" msgstr "使用者设定" -#: html/Edit/Users/Info:38 +#: NOT FOUND IN SOURCE msgid "User Shift" msgstr "员工ç­åˆ«" @@ -5875,18 +6127,34 @@ msgstr "员工ç­åˆ«" msgid "User could not be created: %1" msgstr "无法新增使用者:%1" -#: lib/RT/User_Overlay.pm:321 +#: lib/RT/User_Overlay.pm:326 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/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "使用者定义的群组" +#: lib/RT/User_Overlay.pm:580 lib/RT/User_Overlay.pm:597 +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" + #: html/Admin/Users/Prefs.html:24 html/Admin/Users/Prefs.html:28 msgid "User view" msgstr "使用者ç§äººæ•°æ®" @@ -5899,7 +6167,7 @@ msgstr "使用者自定" msgid "Username" msgstr "å¸å·" -#: 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 html/Work/Tickets/Elements/ShowTransaction:8 +#: 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/Edit/Groups/Admin:9 html/User/Groups/Members.html:57 html/Work/Tickets/Elements/ShowTransaction:11 msgid "Users" msgstr "使用者" @@ -5907,7 +6175,7 @@ msgstr "使用者" msgid "Users matching search criteria" msgstr "ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„使用者" -#: html/Search/Elements/PickRestriction:50 html/Work/Search/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "选择表å•" @@ -5927,7 +6195,7 @@ msgstr "以管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è§†å¯Ÿ" msgid "Watcher loaded" msgstr "æˆåŠŸåŠ è½½è§†å¯Ÿå‘˜ä¿¡æ¯" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:41 html/Edit/Elements/SelectQueues:5 msgid "Watchers" msgstr "视察员" @@ -5943,55 +6211,55 @@ msgstr "星期三" msgid "Wed." msgstr "星期三" -#: etc/initialdata:533 etc/upgrade/2.1.71:161 html/Edit/Elements/CreateApprovalsQueue:135 +#: etc/initialdata:503 etc/upgrade/2.1.71:161 html/Edit/Elements/CreateApprovalsQueue:135 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "当申请å•通过所有签核åŽï¼Œå°†æ­¤è®¯æ¯å›žå¤åˆ°åŽŸç”³è¯·å•" -#: etc/initialdata:497 etc/upgrade/2.1.71:135 html/Edit/Elements/CreateApprovalsQueue:107 +#: etc/initialdata:467 etc/upgrade/2.1.71:135 html/Edit/Elements/CreateApprovalsQueue:107 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "当申请å•通过æŸé¡¹ç­¾æ ¸åŽï¼Œå°†æ­¤è®¯æ¯å›žå¤åˆ°åŽŸç”³è¯·å•" -#: etc/initialdata:156 +#: etc/initialdata:138 msgid "When a ticket is created" msgstr "æ–°å¢žç”³è¯·å•æ—¶" -#: etc/initialdata:428 etc/upgrade/2.1.71:79 html/Edit/Elements/CreateApprovalsQueue:51 +#: etc/initialdata:400 etc/upgrade/2.1.71:79 html/Edit/Elements/CreateApprovalsQueue:51 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "ç­¾æ ¸å•æ–°å¢žä¹‹åŽï¼Œé€šçŸ¥åº”å—ç†çš„æ‰¿åŠžäººåŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:161 +#: etc/initialdata:143 msgid "When anything happens" msgstr "当任何事情å‘生时" -#: etc/initialdata:202 +#: etc/initialdata:184 msgid "Whenever a ticket is resolved" msgstr "当申请å•解决时" -#: etc/initialdata:188 +#: etc/initialdata:170 msgid "Whenever a ticket's owner changes" msgstr "å½“ç”³è¯·å•æ›´æ¢æ‰¿åŠžäººæ—¶" -#: etc/initialdata:196 +#: etc/initialdata:178 msgid "Whenever a ticket's queue changes" msgstr "å½“ç”³è¯·å•æ›´æ¢è¡¨å•æ—¶" -#: etc/initialdata:180 +#: etc/initialdata:162 msgid "Whenever a ticket's status changes" msgstr "å½“ç”³è¯·å•æ›´æ–°çŽ°å†µæ—¶" -#: etc/initialdata:210 +#: etc/initialdata:192 msgid "Whenever a user-defined condition occurs" msgstr "当使用者自订的情况å‘生时" -#: etc/initialdata:174 +#: etc/initialdata:156 msgid "Whenever comments come in" msgstr "当评论é€è¾¾æ—¶" -#: etc/initialdata:167 +#: etc/initialdata:149 msgid "Whenever correspondence comes in" msgstr "当回å¤é€è¾¾æ—¶" -#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:51 html/Work/Preferences/Info:31 +#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:67 html/Work/Preferences/Info:36 msgid "Work" msgstr "å…¬å¸" @@ -6020,23 +6288,35 @@ msgstr "æµç¨‹ç»“æŸ" msgid "Workflow deleted" msgstr "æµç¨‹å·²åˆ é™¤" -#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:21 +#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:25 msgid "Workflows" msgstr "æµç¨‹" -#: html/Edit/Global/Basic/Top:25 +#: html/Edit/Global/CustomField/SelectWritable:5 +msgid "Writable" +msgstr "å¯è¯»å†™" + +#: html/autohandler:144 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "XXX CHANGEME æ‚¨æ˜¯æœªç»æŽˆæƒçš„使用者" + +#: html/Edit/Global/Basic/Top:25 html/Edit/Queues/Basic/Top:82 msgid "Yes" msgstr "是" -#: lib/RT/Ticket_Overlay.pm:3159 +#: lib/RT/Ticket_Overlay.pm:3200 msgid "You already own this ticket" msgstr "您已是这份申请å•的承办人" -#: html/autohandler:122 +#: html/autohandler:136 msgid "You are not an authorized user" msgstr "æ‚¨ä¸æ˜¯è¢«æŽˆæƒçš„使用者" -#: lib/RT/Ticket_Overlay.pm:3041 +#: html/Ticket/Elements/ShowTransaction:81 +msgid "You can access it with the Download button on the right." +msgstr "您å¯ä»¥æŒ‰å³æ–¹çš„「下载ã€é”®æ¥å–得。" + +#: lib/RT/Ticket_Overlay.pm:3082 msgid "You can only reassign tickets that you own or that are unowned" msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿åŠžæˆ–æ˜¯æ²¡æœ‰æ‰¿åŠžäººçš„ç”³è¯·å•" @@ -6044,7 +6324,7 @@ msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿åŠžæˆ–æ˜¯æ²¡æœ‰æ‰¿åŠžäººçš„ç”³è¯·å•" msgid "You don't have permission to view that ticket.\\n" msgstr "您没有看那份申请å•çš„æƒé™ã€‚\\n" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "æ‚¨ä¼šåœ¨è¡¨å• %2 找到 %1 的申请å•" @@ -6057,11 +6337,11 @@ msgstr "您已注销 RT。" msgid "You have no permission to create tickets in that queue." msgstr "æ‚¨æ²¡æœ‰åœ¨è¯¥è¡¨å•æ–°å¢žç”³è¯·å•çš„æƒé™ã€‚" -#: lib/RT/Ticket_Overlay.pm:1917 +#: lib/RT/Ticket_Overlay.pm:1935 msgid "You may not create requests in that queue." msgstr "您ä¸èƒ½åœ¨è¯¥è¡¨å•中æå‡ºç”³è¯·ã€‚" -#: html/Edit/Global/Basic/Top:38 +#: html/Edit/Global/Basic/Top:42 msgid "You need to restart the Request Tracker service for saved changes to take effect." msgstr "æ‚¨å¿…é¡»é‡æ–°æ¿€æ´» Request Tracker æœåŠ¡ï¼Œå‚¨å­˜çš„æ›´åŠ¨æ‰ä¼šç”Ÿæ•ˆã€‚" @@ -6077,11 +6357,11 @@ msgstr "您æå‡ºçš„ %1 申请å•" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "RT 管ç†å‘˜å¯èƒ½è®¾é”™äº†ç”± RT 寄出的邮件收件人标头档" -#: etc/initialdata:514 etc/upgrade/2.1.71:146 html/Edit/Elements/CreateApprovalsQueue:119 +#: etc/initialdata:484 etc/upgrade/2.1.71:146 html/Edit/Elements/CreateApprovalsQueue:119 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "申请å•已由 %1 批准。å¯èƒ½è¿˜æœ‰å…¶å®ƒå¾…签核的步骤。" -#: etc/initialdata:552 etc/upgrade/2.1.71:180 html/Edit/Elements/CreateApprovalsQueue:154 +#: etc/initialdata:522 etc/upgrade/2.1.71:180 html/Edit/Elements/CreateApprovalsQueue:154 msgid "Your request has been approved." msgstr "您的申请å•已完æˆç­¾æ ¸ç¨‹åºã€‚" @@ -6089,19 +6369,19 @@ msgstr "您的申请å•已完æˆç­¾æ ¸ç¨‹åºã€‚" msgid "Your request was rejected" msgstr "您的申请å•已被驳回" -#: etc/initialdata:455 +#: NOT FOUND IN SOURCE msgid "Your request was rejected by %1." msgstr "您的申请å•已被 %1 驳回。" -#: etc/upgrade/2.1.71:101 html/Edit/Elements/CreateApprovalsQueue:73 +#: etc/initialdata:427 etc/upgrade/2.1.71:101 html/Edit/Elements/CreateApprovalsQueue:73 msgid "Your request was rejected." msgstr "您的申请å•已被驳回。" -#: html/autohandler:144 +#: html/autohandler:170 msgid "Your username or password is incorrect" msgstr "您的å¸å·æˆ–å£ä»¤æœ‰è¯¯" -#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:95 html/Work/Preferences/Info:84 +#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:130 html/Work/Preferences/Info:87 msgid "Zip" msgstr "邮政编ç " @@ -6117,6 +6397,10 @@ msgstr "过期" msgid "alert" msgstr "急讯" +#: NOT FOUND IN SOURCE +msgid "approving" +msgstr "待签核" + #: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" @@ -6138,11 +6422,11 @@ msgstr "内容" msgid "content-type" msgstr "类型" -#: lib/RT/Ticket_Overlay.pm:2304 +#: lib/RT/Ticket_Overlay.pm:2326 msgid "correspondence (probably) not sent" msgstr "申请å•回å¤(å¯èƒ½)未é€å‡º" -#: lib/RT/Ticket_Overlay.pm:2314 +#: lib/RT/Ticket_Overlay.pm:2336 msgid "correspondence sent" msgstr "申请å•回å¤å·²é€å‡º" @@ -6150,7 +6434,7 @@ msgstr "申请å•回å¤å·²é€å‡º" msgid "critical" msgstr "严é‡" -#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:31 html/Edit/Queues/List:18 html/Work/Queues/List:11 lib/RT/Date.pm:319 +#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:34 html/Edit/Queues/List:32 html/Work/Queues/List:11 lib/RT/Date.pm:319 msgid "days" msgstr "天" @@ -6219,11 +6503,11 @@ msgstr "ç¼–å·" msgid "info" msgstr "ä¿¡æ¯" -#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:69 +#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:75 msgid "is" msgstr "是" -#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:70 +#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:76 msgid "isn't" msgstr "䏿˜¯" @@ -6259,11 +6543,15 @@ msgstr "月" msgid "new" msgstr "新建立" +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "没有åç§°" + #: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "没有值" -#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/Basic/Top:50 html/Edit/Queues/List:18 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:11 html/Work/Tickets/Elements/ShowBasics:27 +#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/List:32 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:11 html/Work/Tickets/Elements/EditWatchers:5 html/Work/Tickets/Elements/ShowAttachments:30 html/Work/Tickets/Elements/ShowBasics:27 msgid "none" msgstr "æ— " @@ -6305,11 +6593,11 @@ msgstr "è¡¨å• %1 %2" msgid "rejected" msgstr "已驳回" -#: html/Work/Elements/SelectSearch:21 lib/RT/Queue_Overlay.pm:60 +#: lib/RT/Queue_Overlay.pm:60 msgid "resolved" msgstr "已处ç†" -#: html/Edit/Global/Basic/Top:48 +#: html/Edit/Global/Basic/Top:53 msgid "rtname" msgstr "æœåС噍åç§°" @@ -6335,16 +6623,21 @@ msgstr "系统群组 '%1'" msgid "the calling component did not specify why" msgstr "呼å«ç»„件未指明原因" +#: lib/RT/URI/fsck_com_rt.pm:234 +#. ($self->Object->Id) +msgid "ticket #%1" +msgstr "ç”³è¯·å• #%1" + #: lib/RT/Group_Overlay.pm:209 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ç”³è¯·å• #%1 %2" -#: html/Work/Elements/SelectSearch:27 +#: html/Work/Elements/SelectSearch:28 msgid "till" msgstr "至" -#: html/Edit/Elements/PickUsers:15 html/Edit/Global/Workflow/Condition:30 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 +#: html/Edit/Elements/PickUsers:15 html/Edit/Global/Workflow/Condition:31 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 msgid "to" msgstr "到" @@ -6357,7 +6650,7 @@ msgstr "真" msgid "undescribed group %1" msgstr "没有æè¿°çš„群组 %1" -#: html/Work/Elements/SelectSearch:19 +#: NOT FOUND IN SOURCE msgid "unresolved" msgstr "未处ç†" diff --git a/rt/lib/RT/I18N/zh_tw.po b/rt/lib/RT/I18N/zh_tw.po index 8c8c86e1f..6688b6a89 100644 --- a/rt/lib/RT/I18N/zh_tw.po +++ b/rt/lib/RT/I18N/zh_tw.po @@ -1,4 +1,4 @@ -# Traditional Chinese localization catalog for Request Tracker (RT) +# Chinese localization catalog for Request Tracker (RT) msgid "" msgstr "" "Last-Translator: Autrijus Tang <autrijus@autrijus.org>\n" @@ -40,7 +40,7 @@ msgstr "%*(%1) 件尚未解決的申請單" msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:771 +#: lib/RT/Tickets_Overlay.pm:790 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -50,10 +50,11 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%7-%2-%3 %4:%5:%6 %1" -#: lib/RT/Ticket_Overlay.pm:3532 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#: lib/RT/Ticket_Overlay.pm:3588 lib/RT/Transaction_Overlay.pm:514 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Vendor.pm:19 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) +#. ($field, $new_value) msgid "%1 %2 added" msgstr "%2 已新增為 %1" @@ -62,16 +63,18 @@ msgstr "%2 已新增為 %1" msgid "%1 %2 ago" msgstr "%1 %2 之å‰" -#: lib/RT/Ticket_Overlay.pm:3538 lib/RT/Transaction_Overlay.pm:564 +#: lib/RT/Ticket_Overlay.pm:3594 lib/RT/Transaction_Overlay.pm:521 lib/RT/Transaction_Vendor.pm:25 #. ($cf->Name, $old_value, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) +#. ($field, $old_value, $new_value) msgid "%1 %2 changed to %3" msgstr "%1 已從 %2 改為 %3" -#: lib/RT/Ticket_Overlay.pm:3535 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#: lib/RT/Ticket_Overlay.pm:3591 lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:563 lib/RT/Transaction_Vendor.pm:22 #. ($cf->Name, $old_value) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) +#. ($field, $old_value) msgid "%1 %2 deleted" msgstr "%2 已自 %1 刪除" @@ -121,17 +124,17 @@ msgstr "%1 - 指定欲使用的æ¢ä»¶æ¨¡çµ„" msgid "%1 - Specify the search module you want to use" msgstr "%1 - 指定欲使用的查詢模組" -#: lib/RT/ScripAction_Overlay.pm:121 +#: lib/RT/ScripAction_Overlay.pm:122 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "載入手續 %1" -#: html/Edit/Elements/Page:48 +#: html/Edit/Elements/Page:49 #. (scalar $count) msgid "%1 Total" msgstr "å…± %1 ç­†" -#: lib/RT/Ticket_Overlay.pm:3565 +#: lib/RT/Ticket_Overlay.pm:3621 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "新增 %1 作為 %2 的值" @@ -154,13 +157,13 @@ msgstr "別å %1 需è¦å¯ç”¨çš„ç”³è«‹å–®ç·¨è™Ÿä»¥è™•ç† %3(出自 %2)" msgid "%1 appears to be a local object, but can't be found in the database" msgstr "%1 看來是個本地物件,å»ä¸åœ¨è³‡æ–™åº«è£¡" -#: html/Ticket/Elements/ShowDates:51 lib/RT/Transaction_Overlay.pm:481 +#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:430 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 (%2)" -#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:624 lib/RT/Transaction_Overlay.pm:633 lib/RT/Transaction_Overlay.pm:636 +#: lib/RT/Transaction_Overlay.pm:484 lib/RT/Transaction_Overlay.pm:649 lib/RT/Transaction_Overlay.pm:658 lib/RT/Transaction_Overlay.pm:661 #. ($self->Field , ( $self->OldValue || $no_value ) , $self->NewValue) #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) @@ -168,7 +171,7 @@ msgstr "%1 (%2)" msgid "%1 changed from %2 to %3" msgstr "%1 的值從 %2 改為 %3" -#: lib/RT/Interface/Web.pm:893 x:896 +#: lib/RT/Interface/Web.pm:953 msgid "%1 could not be set to %2." msgstr "無法將 %1 設定為 %2。" @@ -176,7 +179,7 @@ msgstr "無法將 %1 設定為 %2。" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 無法åˆå§‹æ›´æ–° (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2830 +#: lib/RT/Ticket_Overlay.pm:2880 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 ç„¡æ³•å°‡ç¾æ³è¨­æˆå·²è§£æ±ºã€‚RT 資料庫內容å¯èƒ½ä¸ä¸€è‡´ã€‚" @@ -206,12 +209,12 @@ msgstr "%1 是從外部排程程å¼(如 cron)來å°ç”³è«‹å–®é€²è¡Œæ“作的工 msgid "%1 is no longer a %2 for this queue." msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å–®çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:1569 +#: lib/RT/Ticket_Overlay.pm:1596 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this ticket." msgstr "%1 å·²ä¸å†æ˜¯æ­¤ç”³è«‹å–®çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:3621 +#: lib/RT/Ticket_Overlay.pm:3677 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 å·²ä¸å†æ˜¯è‡ªè¨‚æ¬„ä½ %2 的值。" @@ -264,17 +267,17 @@ msgstr "%1 會解決在已解決群組裡æˆå“¡çš„申請單。" msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "如果 %1 起始申請單ä¾è³´æ–¼æŸå€‹éˆçµï¼Œæˆ–是æŸå€‹éˆçµçš„æˆå“¡ï¼Œå®ƒå°‡æœƒè¢«å»¶å®•ã€‚" -#: lib/RT/Transaction_Overlay.pm:433 +#: lib/RT/Transaction_Overlay.pm:382 lib/RT/Transaction_Vendor.pm:37 #. ($self) msgid "%1: no attachment specified" msgstr "%1:未指定附件" -#: html/Ticket/Elements/ShowTransaction:89 html/Work/Tickets/Elements/ShowTransaction:154 +#: html/Ticket/Elements/ShowTransaction:100 html/Work/Tickets/Elements/ShowTransaction:158 #. ($size) msgid "%1b" msgstr "%1 ä½å…ƒçµ„" -#: html/Ticket/Elements/ShowTransaction:86 html/Work/Tickets/Elements/ShowTransaction:151 +#: html/Ticket/Elements/ShowTransaction:97 html/Work/Tickets/Elements/ShowTransaction:155 #. (int($size/102.4)/10) msgid "%1k" msgstr "%1k ä½å…ƒçµ„" @@ -283,7 +286,7 @@ msgstr "%1k ä½å…ƒçµ„" msgid "%quant(%1,result) found" msgstr "找到 %1 é …çµæžœ" -#: lib/RT/Ticket_Overlay.pm:1158 +#: lib/RT/Ticket_Overlay.pm:1185 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' 䏿˜¯ä¸€å€‹åˆæ³•的狀態值" @@ -300,7 +303,7 @@ msgstr "(é»žé¸æ¬²åˆªé™¤çš„æˆå“¡)" msgid "(Check box to delete scrip)" msgstr "(é»žé¸æ¬²åˆªé™¤çš„æ‰‹çºŒ)" -#: html/Admin/Elements/EditCustomFieldValues:24 html/Admin/Elements/EditQueueWatchers:28 html/Admin/Elements/EditScrips:34 html/Admin/Elements/EditTemplates:35 html/Admin/Elements/EditWorkflows:36 html/Admin/Groups/Members.html:51 html/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 +#: html/Admin/Elements/EditCustomFieldValues:24 html/Admin/Elements/EditQueueWatchers:28 html/Admin/Elements/EditScrips:34 html/Admin/Elements/EditTemplates:35 html/Admin/Elements/EditWorkflows:36 html/Admin/Groups/Members.html:51 html/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 html/Work/Tickets/Elements/EditLinks:20 html/Work/Tickets/Elements/EditPeople:36 msgid "(Check box to delete)" msgstr "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" @@ -308,7 +311,7 @@ msgstr "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" msgid "(Check boxes to delete)" msgstr "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" -#: html/Ticket/Create.html:177 +#: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "(éµå…¥ç”³è«‹å–®ç·¨è™Ÿæˆ–ç¶²å€ï¼Œä»¥ç©ºç™½åˆ†éš”)" @@ -342,7 +345,7 @@ msgstr "沒有範本" msgid "(No workflows)" msgstr "沒有æµç¨‹" -#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:52 +#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:56 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>更改後續的收件者å單。)" @@ -366,7 +369,7 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本給å單上以逗號隔開的電å­éƒµä»¶ 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/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:48 html/Work/Tickets/Elements/ShowCustomFieldEntries:13 +#: html/Ticket/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:43 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 msgid "(delete)" msgstr "(刪除)" @@ -374,7 +377,7 @@ msgstr "(刪除)" msgid "(empty)" msgstr "(空白)" -#: html/Edit/Global/CustomField/index.html:113 html/Edit/Global/Scrip/index.html:111 html/Edit/Global/Template/index.html:106 +#: html/Edit/Elements/Index:87 html/Edit/Global/CustomField/index.html:116 html/Edit/Global/Scrip/index.html:111 html/Edit/Global/Template/index.html:106 msgid "(new)" msgstr "(新增)" @@ -382,23 +385,23 @@ msgstr "(新增)" msgid "(no name listed)" msgstr "(沒有列出姓å)" -#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:42 html/Work/Elements/MyTickets:51 +#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:43 html/Work/Elements/MyTickets:52 msgid "(no subject)" msgstr "(沒有主題)" -#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:60 html/Ticket/Elements/EditCustomFieldValues:52 html/Ticket/Elements/ShowCustomFields:35 html/Work/Elements/EditCustomFieldValues:50 html/Work/Elements/EditCustomFields:32 html/Work/Tickets/Elements/EditCustomFieldValues:33 lib/RT/Transaction_Overlay.pm:534 +#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:64 html/Ticket/Elements/EditCustomFieldValues:52 html/Ticket/Elements/ShowCustomFields:35 html/Work/Elements/EditCustomFieldValues:50 html/Work/Elements/EditCustomFields:32 html/Work/Tickets/Elements/EditCustomFieldValues:33 lib/RT/Transaction_Overlay.pm:483 msgid "(no value)" msgstr "(ç„¡)" -#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:115 html/Work/Search/BulkLinks:3 +#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:98 html/Work/Search/BulkLinks:3 html/Work/Tickets/Elements/EditLinks:102 msgid "(only one ticket)" msgstr "(僅能指定一份申請單)" -#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:17 html/Work/Elements/MyRequests:52 html/Work/Elements/MyTickets:66 html/Work/Tickets/Elements/ShowBasics:52 +#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:17 html/Work/Elements/MyRequests:53 html/Work/Elements/MyTickets:67 html/Work/Tickets/Elements/ShowBasics:52 msgid "(pending approval)" msgstr "(等待簽核)" -#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:54 html/Work/Elements/MyTickets:68 +#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:55 html/Work/Elements/MyTickets:69 msgid "(pending other tickets)" msgstr "(等待其他申請單)" @@ -406,11 +409,11 @@ msgstr "(等待其他申請單)" msgid "(requestor's group)" msgstr "(申請人所屬)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:49 html/Edit/Users/Info:26 msgid "(required)" msgstr "(å¿…å¡«)" -#: html/Ticket/Elements/ShowTransaction:92 html/Work/Tickets/Elements/ShowTransaction:39 +#: html/Ticket/Elements/ShowTransaction:103 html/Work/Tickets/Elements/ShowTransaction:44 msgid "(untitled)" msgstr "(未命å)" @@ -426,12 +429,12 @@ msgstr "<% $Ticket->Status%>" msgid "<% $_ %>" msgstr "<% $_ %>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 html/Work/Elements/104Header:43 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 html/Work/Elements/104Header:43 lib/RT/StyleGuide.pod:767 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"æå‡ºç”³è«‹å–®\"> %1" -#: etc/initialdata.zh:221 etc/initialdata:203 +#: etc/initialdata:203 msgid "A blank template" msgstr "空白範本" @@ -479,11 +482,11 @@ msgstr "系統使用登錄權é™" msgid "Access control" msgstr "å­˜å–æ¬Šé™" -#: html/Admin/Elements/EditScrip:56 html/Work/Tickets/Elements/ShowTransaction:18 +#: html/Admin/Elements/EditScrip:56 html/Work/Tickets/Elements/ShowTransaction:21 msgid "Action" msgstr "動作" -#: lib/RT/Scrip_Overlay.pm:146 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "動作 %1 找ä¸åˆ°" @@ -496,11 +499,11 @@ msgstr "動作執行完畢" msgid "Action prepared..." msgstr "動作準備完畢..." -#: html/Work/Elements/List:13 html/Work/Elements/SelectSearch:24 html/Work/Tickets/Create.html:28 html/Work/Tickets/Elements/ShowBasics:12 +#: html/Work/Elements/List:13 html/Work/Elements/SelectSearch:25 html/Work/Tickets/Create.html:27 html/Work/Tickets/Elements/ShowBasics:12 msgid "Activated Date" msgstr "申請啟動時間" -#: html/Edit/Elements/104Buttons:71 html/Edit/Elements/ListButtons:7 +#: html/Edit/Elements/104Buttons:82 html/Edit/Elements/ListButtons:7 msgid "Add" msgstr "新增" @@ -512,11 +515,11 @@ msgstr "新增管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" msgid "Add Cc" msgstr "新增副本收件人" -#: html/Ticket/Elements/EditCustomFieldEntries:71 html/Work/Tickets/Elements/ShowCustomFieldEntries:49 +#: html/Ticket/Elements/EditCustomFieldEntries:71 html/Work/Tickets/Elements/ShowCustomFieldEntries:50 msgid "Add Entry" msgstr "新增列" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 html/Work/Tickets/Elements/AddAttachments:18 +#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 html/Work/Tickets/Elements/AddAttachments:23 msgid "Add More Files" msgstr "新增更多附件" @@ -577,16 +580,20 @@ msgstr "新增下一項關å¡" msgid "Added principal as a %1 for this queue" msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤è¡¨å–®çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1453 +#: lib/RT/Ticket_Overlay.pm:1480 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤ç”³è«‹å–®çš„ %1" -#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:87 html/Work/Preferences/Info:77 +#: html/Edit/Global/CustomField/Top:52 +msgid "Additional Hints" +msgstr "é¡å¤–æç¤º" + +#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:114 html/Work/Preferences/Info:79 msgid "Address1" msgstr "ä½å€" -#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:89 html/Work/Preferences/Info:79 +#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:118 html/Work/Preferences/Info:81 msgid "Address2" msgstr "ä½å€(續)" @@ -594,7 +601,7 @@ msgstr "ä½å€(續)" msgid "Adjust Blinking Rate" msgstr "調整閃çˆé€Ÿåº¦å¿«æ…¢" -#: html/Edit/Groups/Admin:9 +#: html/Edit/Queues/List:12 msgid "Admin" msgstr "管ç†å“¡" @@ -602,11 +609,11 @@ msgstr "管ç†å“¡" msgid "Admin Cc" msgstr "管ç†å“¡å‰¯æœ¬" -#: etc/initialdata.zh:303 etc/initialdata:280 +#: etc/initialdata:280 msgid "Admin Comment" msgstr "管ç†å“¡è©•è«–" -#: etc/initialdata.zh:261 etc/initialdata:259 +#: etc/initialdata:259 msgid "Admin Correspondence" msgstr "管ç†å“¡å›žè¦†" @@ -634,7 +641,7 @@ msgstr "管ç†/群組" msgid "Admin/Queue/Basics" msgstr "管ç†/表單/基本資訊" -#: html/Edit/Global/Basic/Top:60 +#: html/Edit/Global/Basic/Top:65 msgid "AdminAddress" msgstr "管ç†å“¡ Email" @@ -642,7 +649,7 @@ msgstr "管ç†å“¡ Email" msgid "AdminAllPersonalGroups" msgstr "ç®¡ç†æ‰€æœ‰ä»£ç†äººç¾¤çµ„" -#: etc/initialdata.zh:74 etc/initialdata:56 html/Admin/Elements/ModifyTemplateAsWorkflow:155 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Admin/Elements/ModifyTemplateAsWorkflow:155 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 html/Work/Tickets/Elements/ShowLinks:11 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "管ç†å“¡å‰¯æœ¬" @@ -658,7 +665,7 @@ msgstr "管ç†å“¡å›žè¦†" msgid "AdminCustomFields" msgstr "管ç†è‡ªè¨‚欄ä½" -#: html/Edit/Groups/Admin:12 lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:145 msgid "AdminGroup" msgstr "管ç†ç¾¤çµ„" @@ -698,7 +705,7 @@ msgstr "管ç†ä½¿ç”¨è€…" msgid "Administrative" msgstr "行政類" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 html/Work/Tickets/Elements/EditPeople:44 msgid "Administrative Cc" msgstr "管ç†å“¡å‰¯æœ¬" @@ -718,7 +725,7 @@ msgstr "晚於" msgid "Age" msgstr "經歷時間" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:172 html/Edit/Global/Workflow/Action:39 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:172 html/Edit/Global/Workflow/Action:35 msgid "Alias" msgstr "執行其他æµç¨‹" @@ -726,11 +733,11 @@ msgstr "執行其他æµç¨‹" msgid "Alias for" msgstr "相當於" -#: html/Edit/Queues/index.html:33 html/Work/Delegates/index.html:13 html/Work/Elements/SelectSearch:11 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:13 +#: html/Work/Delegates/index.html:13 html/Work/Elements/SelectSearch:11 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:13 msgid "All" msgstr "全部" -#: etc/initialdata.zh:372 etc/initialdata:348 +#: etc/initialdata:348 msgid "All Approvals Passed" msgstr "完æˆå…¨éƒ¨ç°½æ ¸" @@ -738,7 +745,7 @@ msgstr "完æˆå…¨éƒ¨ç°½æ ¸" msgid "All Condition" msgstr "所有æ¢ä»¶" -#: html/Admin/Elements/EditCustomFields:95 +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "所有自訂欄ä½" @@ -750,6 +757,10 @@ msgstr "所有表單" 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 "ç¦åˆ©è£œåŠ©ç”³è«‹" @@ -766,7 +777,7 @@ msgstr "數é¡" msgid "Any Condition" msgstr "ä»»æ„æ¢ä»¶" -#: html/Edit/Global/Scrip/List:10 html/Edit/Global/Scrip/Top:74 +#: html/Edit/Global/Scrip/List:10 html/Edit/Global/Scrip/Top:86 msgid "Apply Template" msgstr "引用範本" @@ -803,11 +814,11 @@ msgstr "簽核時é™" msgid "Approval Notes" msgstr "簽核æ„見" -#: etc/initialdata.zh:357 etc/initialdata:336 +#: etc/initialdata:336 msgid "Approval Passed" msgstr "å®ŒæˆæŸé …簽核" -#: etc/initialdata.zh:383 etc/initialdata:359 +#: etc/initialdata:359 msgid "Approval Rejected" msgstr "é§å›žæŸé …簽核" @@ -835,11 +846,11 @@ msgstr "核准" msgid "Approver" msgstr "簽核人" -#: html/Edit/Global/Workflow/Action:29 html/Edit/Global/Workflow/Owner.html:10 +#: html/Edit/Global/Workflow/Action:25 html/Edit/Global/Workflow/Owner.html:10 msgid "Approver Setting" msgstr "執行簽核人設定" -#: etc/initialdata.zh:516 etc/initialdata:486 etc/upgrade/2.1.71:148 html/Edit/Elements/CreateApprovalsQueue:122 +#: etc/initialdata:486 etc/upgrade/2.1.71:148 html/Edit/Elements/CreateApprovalsQueue:122 msgid "Approver's notes: %1" msgstr "簽核備註:%1" @@ -863,15 +874,15 @@ msgstr "您確定è¦åˆªé™¤ï¼Ÿ" msgid "Ascending" msgstr "éžå¢ž" -#: html/Search/Bulk.html:136 html/SelfService/Update.html:32 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 html/Work/Search/Bulk.html:88 +#: html/Search/Bulk.html:136 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 html/Work/Search/Bulk.html:88 msgid "Attach" msgstr "附件" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 html/Work/Tickets/Elements/AddAttachments:15 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 html/Work/Tickets/Elements/AddAttachments:19 msgid "Attach file" msgstr "附加檔案" -#: html/Ticket/Create.html:97 html/Ticket/Update.html:87 html/Work/Tickets/Elements/AddAttachments:6 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:87 html/Work/Tickets/Elements/AddAttachments:7 html/Work/Tickets/Elements/ShowAttachments:9 msgid "Attached file" msgstr "ç¾æœ‰é™„ä»¶" @@ -879,15 +890,15 @@ msgstr "ç¾æœ‰é™„ä»¶" msgid "Attachment '%1' could not be loaded" msgstr "無法載入附件 '%1'" -#: lib/RT/Transaction_Overlay.pm:441 +#: lib/RT/Transaction_Overlay.pm:390 lib/RT/Transaction_Vendor.pm:50 msgid "Attachment created" msgstr "附件新增完畢" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1208 msgid "Attachment filename" msgstr "附件檔å" -#: html/Ticket/Elements/ShowAttachments:25 html/Work/Tickets/Elements/ShowTransaction:32 +#: html/Ticket/Elements/ShowAttachments:25 html/Work/Tickets/Elements/ShowTransaction:37 msgid "Attachments" msgstr "附件" @@ -915,11 +926,11 @@ msgstr "自動é§å›žè¡¨å–®" msgid "AutoResolve" msgstr "自動完æˆè¡¨å–®è™•ç†" -#: etc/initialdata.zh:224 etc/initialdata:206 +#: etc/initialdata:206 msgid "Autoreply" msgstr "自動回覆" -#: etc/initialdata.zh:90 etc/initialdata:72 +#: etc/initialdata:72 msgid "Autoreply To Requestors" msgstr "自動å°ç”³è«‹äººå›žè¦†" @@ -927,7 +938,7 @@ msgstr "自動å°ç”³è«‹äººå›žè¦†" msgid "AutoreplyToRequestors" msgstr "自動å°ç”³è«‹äººå›žè¦†" -#: html/Edit/Rights/index.html:16 +#: html/Edit/Rights/index.html:17 msgid "Available Rights:" msgstr "權é™é …目列表:" @@ -956,19 +967,19 @@ msgstr "%1 的資料錯誤" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "附件的處ç†è™Ÿç¢¼éŒ¯èª¤ã€‚%1 應為 %2\\n" -#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:17 html/Edit/Users/index.html:121 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 +#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:21 html/Edit/Users/index.html:94 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 msgid "Basics" msgstr "基本資訊" -#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:49 +#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:53 msgid "Bcc" msgstr "密件副本" -#: html/Admin/Elements/EditScrip:87 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Global/Workflow.html:46 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/Admin/Queues/Workflow.html:44 html/User/Groups/Modify.html:55 +#: html/Admin/Elements/EditScrip:95 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Global/Workflow.html:46 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/Admin/Queues/Workflow.html:44 html/User/Groups/Modify.html:55 msgid "Be sure to save your changes" msgstr "請別忘了儲存修改。" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:321 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:320 msgid "Before" msgstr "æ—©æ–¼" @@ -980,11 +991,11 @@ msgstr "開始簽核" msgid "Begin From " msgstr "èµ·å§‹æ—¥" -#: html/Edit/Users/Info:25 +#: NOT FOUND IN SOURCE msgid "Birthday" msgstr "生日" -#: etc/initialdata.zh:220 etc/initialdata:202 +#: etc/initialdata:202 msgid "Blank" msgstr "空白範本" @@ -1008,7 +1019,7 @@ msgstr "事業部" msgid "Business Unit:" msgstr "事業部:" -#: lib/RT/User_Overlay.pm:1524 +#: lib/RT/User_Overlay.pm:1529 msgid "Can not modify system users" msgstr "無法更改系統使用者" @@ -1024,11 +1035,11 @@ msgstr "ä¸èƒ½æ–°å¢žæ²’有å稱的自訂欄ä½å€¼" msgid "Can't link a ticket to itself" msgstr "申請單ä¸èƒ½éˆçµè‡ªå·±ã€‚" -#: lib/RT/Ticket_Overlay.pm:2807 +#: lib/RT/Ticket_Overlay.pm:2857 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "ä¸èƒ½æ•´åˆé€²å·²æ•´åˆéŽçš„申請單。這個錯誤ä¸è©²ç™¼ç”Ÿã€‚" -#: lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2694 +#: lib/RT/Ticket_Overlay.pm:2659 lib/RT/Ticket_Overlay.pm:2738 msgid "Can't specifiy both base and target" msgstr "ä¸èƒ½åŒæ™‚指定起始申請單與目的申請單" @@ -1036,7 +1047,7 @@ msgstr "ä¸èƒ½åŒæ™‚指定起始申請單與目的申請單" msgid "Cancel" msgstr "å–æ¶ˆ" -#: html/autohandler:113 +#: html/autohandler:126 #. ($msg) msgid "Cannot create user: %1" msgstr "無法新增使用者:%1" @@ -1053,7 +1064,7 @@ msgstr "分類管ç†" msgid "Category" msgstr "分類" -#: etc/initialdata.zh:68 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:44 html/Ticket/Update.html:76 html/Work/Tickets/Update.html:43 lib/RT/ACE_Overlay.pm:87 +#: 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:44 html/Ticket/Update.html:76 html/Work/Tickets/Elements/EditPeople:41 html/Work/Tickets/Elements/ShowLinks:6 html/Work/Tickets/Update.html:43 lib/RT/ACE_Overlay.pm:87 msgid "Cc" msgstr "副本" @@ -1073,11 +1084,11 @@ msgstr "修改申請單" msgid "Change password" msgstr "更改密碼" -#: html/Edit/Global/Basic/Top:70 +#: html/Edit/Global/Basic/Top:79 msgid "ChangeOwnerUI" msgstr "å¯å¦é¸æ“‡è¡¨å–®æ‰¿è¾¦äºº" -#: html/Ticket/Create.html:100 html/Ticket/Elements/EditCustomFieldEntries:35 html/Ticket/Update.html:90 html/Work/Tickets/Elements/ShowCustomFieldEntries:13 +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Elements/EditCustomFieldEntries:35 html/Ticket/Update.html:90 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 msgid "Check box to delete" msgstr "鏿“‡æ¬²åˆªé™¤çš„é …ç›®" @@ -1085,11 +1096,11 @@ msgstr "鏿“‡æ¬²åˆªé™¤çš„é …ç›®" msgid "Check box to revoke right" msgstr "鏿“‡æ¬²æ’¤æ¶ˆçš„æ¬Šåˆ©" -#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:130 html/Ticket/Elements/EditLinks:68 html/Ticket/Elements/ShowLinks:56 html/Work/Search/BulkLinks:18 +#: html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:113 html/Ticket/Elements/EditLinks:63 html/Ticket/Elements/ShowLinks:56 html/Work/Search/BulkLinks:18 html/Work/Tickets/Elements/EditLinks:117 html/Work/Tickets/Elements/EditLinks:56 html/Work/Tickets/Elements/ShowMembers:4 msgid "Children" msgstr "å­ç”³è«‹å–®" -#: html/Edit/Elements/PickUsers:21 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 html/Edit/Users/List:6 html/Edit/Users/Top:18 +#: html/Edit/Elements/PickUsers:21 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 msgid "Chinese Name" msgstr "中文姓å" @@ -1097,7 +1108,7 @@ msgstr "中文姓å" msgid "Chinese/English" msgstr "中英文" -#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:91 html/Work/Preferences/Info:81 +#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:122 html/Work/Preferences/Info:83 msgid "City" msgstr "所在城市" @@ -1105,7 +1116,7 @@ msgstr "所在城市" msgid "ClassicUI" msgstr "傳統介é¢" -#: html/Ticket/Elements/ShowDates:46 +#: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "已解決" @@ -1117,7 +1128,7 @@ msgstr "已解決的申請單" msgid "Closed tickets" msgstr "已解決的申請單" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:58 html/Edit/Global/Workflow/Condition:51 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:54 html/Edit/Global/Workflow/Condition:52 msgid "Code" msgstr "執行程å¼ç¢¼" @@ -1125,7 +1136,7 @@ msgstr "執行程å¼ç¢¼" msgid "Command not understood!\\n" msgstr "指令無法辨識ï¼\\n" -#: html/Ticket/Elements/ShowTransaction:166 html/Ticket/Elements/Tabs:152 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:37 html/Work/Tickets/Elements/ShowTransaction:114 html/Work/Tickets/Elements/ShowTransaction:27 +#: html/Ticket/Elements/ShowTransaction:178 html/Ticket/Elements/Tabs:152 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:60 html/Work/Tickets/Elements/ShowTransaction:118 html/Work/Tickets/Elements/ShowTransaction:32 msgid "Comment" msgstr "è©•è«–" @@ -1145,7 +1156,7 @@ msgstr "å°ç”³è«‹å–®æå‡ºè©•è«–" msgid "CommentOnTicket" msgstr "評論申請單" -#: html/Admin/Elements/ModifyUser:34 html/Work/Tickets/Update.html:59 +#: html/Admin/Elements/ModifyUser:34 html/Work/Tickets/Elements/AddContent:7 msgid "Comments" msgstr "è©•è«–" @@ -1162,11 +1173,11 @@ msgstr "è©•è«–(ä¸é€çµ¦ç”³è«‹äºº)" msgid "Comments about %1" msgstr "å° %1 的評論" -#: html/Admin/Users/Modify.html:184 html/Ticket/Elements/ShowRequestor:43 +#: html/Admin/Users/Modify.html:184 html/Edit/Users/Info:46 html/Ticket/Elements/ShowRequestor:43 msgid "Comments about this user" msgstr "使用者æè¿°" -#: lib/RT/Transaction_Overlay.pm:543 +#: lib/RT/Transaction_Overlay.pm:501 msgid "Comments added" msgstr "新增評論完畢" @@ -1178,10 +1189,14 @@ msgstr "確èª" msgid "Commit Stubbed" msgstr "消除更動完畢" -#: html/Edit/Users/Info:41 +#: NOT FOUND IN SOURCE msgid "Company Name" msgstr "å…¬å¸å稱" +#: html/Edit/Global/Basic/Top:85 +msgid "CompanySpecific" +msgstr "å„å…¬å¸ç¨ç«‹é¡¯ç¤º" + #: NOT FOUND IN SOURCE msgid "Compile Restrictions" msgstr "設定查詢æ¢ä»¶" @@ -1194,11 +1209,11 @@ msgstr "æ¢ä»¶" msgid "Condition matches..." msgstr "ç¬¦åˆæ¢ä»¶..." -#: lib/RT/Scrip_Overlay.pm:159 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "未找到符åˆçš„ç¾æ³" -#: html/Edit/Global/GroupRight/Top:26 html/Edit/Global/UserRight/Top:45 html/Edit/Groups/Member:57 html/Elements/Tabs:49 +#: html/Edit/Global/GroupRight/Top:26 html/Edit/Global/UserRight/Top:45 html/Edit/Groups/Member:56 html/Elements/Tabs:49 msgid "Configuration" msgstr "設定" @@ -1210,7 +1225,7 @@ msgstr "確èªå¯†ç¢¼" msgid "Confirm Password" msgstr "密碼確èª" -#: html/Work/Approvals/Display.html:25 html/Work/Tickets/Create.html:161 html/Work/Tickets/Create.html:174 html/Work/Tickets/Update.html:81 +#: html/Work/Approvals/Display.html:25 html/Work/Tickets/Create.html:154 html/Work/Tickets/Create.html:168 html/Work/Tickets/Update.html:77 msgid "Confirm Submit" msgstr "確定é€å‡º" @@ -1234,7 +1249,7 @@ msgstr "內容" msgid "Coould not create group" msgstr "無法新增群組" -#: html/Edit/Elements/104Buttons:74 +#: html/Edit/Elements/104Buttons:85 msgid "Copy" msgstr "複製" @@ -1242,7 +1257,7 @@ msgstr "複製" msgid "Copy Field From:" msgstr "欲複製欄ä½ï¼š" -#: etc/initialdata.zh:282 etc/initialdata:271 +#: etc/initialdata:271 msgid "Correspondence" msgstr "回覆" @@ -1250,7 +1265,7 @@ msgstr "回覆" msgid "Correspondence Address" msgstr "申請單回覆地å€" -#: lib/RT/Transaction_Overlay.pm:539 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Correspondence added" msgstr "新增申請單回覆" @@ -1258,7 +1273,7 @@ msgstr "新增申請單回覆" msgid "Correspondence not recorded" msgstr "未紀錄申請單回覆" -#: lib/RT/Ticket_Overlay.pm:3552 +#: lib/RT/Ticket_Overlay.pm:3608 msgid "Could not add new custom field value for ticket. " msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值 " @@ -1266,11 +1281,11 @@ msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值 " msgid "Could not add new custom field value for ticket. %1 " msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值。%1 " -#: lib/RT/Ticket_Overlay.pm:3058 lib/RT/Ticket_Overlay.pm:3066 lib/RT/Ticket_Overlay.pm:3083 +#: lib/RT/Ticket_Overlay.pm:3108 lib/RT/Ticket_Overlay.pm:3116 lib/RT/Ticket_Overlay.pm:3133 msgid "Could not change owner. " msgstr "ä¸èƒ½æ›´æ”¹æ‰¿è¾¦äººã€‚ " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:165 html/Edit/Global/CustomField/index.html:117 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 html/Edit/Global/CustomField/index.html:120 #. ($msg) msgid "Could not create CustomField" msgstr "無法新增自訂欄ä½" @@ -1285,20 +1300,25 @@ msgstr "無法建立訊æ¯é€šçŸ¥" msgid "Could not create Template" msgstr "無法建立通知範本" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:471 lib/RT/Group_Overlay.pm:478 msgid "Could not create group" msgstr "無法新增群組" +#: html/Edit/Elements/Index:89 +#. ($msg) +msgid "Could not create item" +msgstr "無法新增項目" + #: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "無法新增範本:%1" -#: lib/RT/Ticket_Overlay.pm:1091 lib/RT/Ticket_Overlay.pm:334 +#: lib/RT/Ticket_Overlay.pm:1118 lib/RT/Ticket_Overlay.pm:353 msgid "Could not create ticket. Queue not set" msgstr "無法新增申請單。尚未指定表單。" -#: lib/RT/User_Overlay.pm:267 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:483 +#: lib/RT/User_Overlay.pm:271 lib/RT/User_Overlay.pm:284 lib/RT/User_Overlay.pm:302 lib/RT/User_Overlay.pm:488 msgid "Could not create user" msgstr "無法新增使用者" @@ -1319,11 +1339,11 @@ msgstr "找ä¸åˆ°ç·¨è™Ÿ %1 的申請單" msgid "Could not find group %1." msgstr "找ä¸åˆ°ç¾¤çµ„ %1。" -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1421 +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1448 msgid "Could not find or create that user" msgstr "找ä¸åˆ°æˆ–無法新增該å使用者" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1500 +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1527 msgid "Could not find that principal" msgstr "找ä¸åˆ°è©²å–®ä½" @@ -1331,8 +1351,7 @@ msgstr "找ä¸åˆ°è©²å–®ä½" msgid "Could not find user %1." msgstr "找ä¸åˆ°ä½¿ç”¨è€… %1。" -#: html/Admin/Groups/Members.html:87 html/Edit/Users/index.html:83 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 -#. ( . $GroupId) +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "無法載入群組" @@ -1341,7 +1360,7 @@ msgstr "無法載入群組" msgid "Could not make that principal a %1 for this queue" msgstr "無法將該單ä½è¨­ç‚ºæ­¤è¡¨å–®çš„ %1。" -#: lib/RT/Ticket_Overlay.pm:1442 +#: lib/RT/Ticket_Overlay.pm:1469 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "無法將該單ä½è¨­ç‚ºæ­¤ç”³è«‹å–®çš„ %1。" @@ -1351,16 +1370,16 @@ msgstr "無法將該單ä½è¨­ç‚ºæ­¤ç”³è«‹å–®çš„ %1。" msgid "Could not remove that principal as a %1 for this queue" msgstr "ç„¡æ³•å°‡å–®ä½ %1 從表單移除。" -#: lib/RT/Ticket_Overlay.pm:1558 +#: lib/RT/Ticket_Overlay.pm:1585 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this ticket" msgstr "ç„¡æ³•å°‡å–®ä½ %1 從申請單移除。" -#: lib/RT/Group_Overlay.pm:984 +#: lib/RT/Group_Overlay.pm:982 msgid "Couldn't add member to group" msgstr "無法新增æˆå“¡è‡³ç¾¤çµ„" -#: lib/RT/Ticket_Overlay.pm:3562 lib/RT/Ticket_Overlay.pm:3618 +#: lib/RT/Ticket_Overlay.pm:3618 lib/RT/Ticket_Overlay.pm:3674 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "無法新增更動報告" @@ -1373,11 +1392,11 @@ msgstr "無法從 gpg 回函辨識出該採å–的行動\\n" msgid "Couldn't find group\\n" msgstr "找ä¸åˆ°ç¾¤çµ„\\n" -#: lib/RT/Interface/Web.pm:902 x:905 +#: lib/RT/Interface/Web.pm:962 msgid "Couldn't find row" msgstr "找ä¸åˆ°æ­¤åˆ—資料" -#: lib/RT/Group_Overlay.pm:958 +#: lib/RT/Group_Overlay.pm:956 msgid "Couldn't find that principal" msgstr "找ä¸åˆ°è©²å–®ä½" @@ -1410,9 +1429,10 @@ msgstr "無法載入 RT 設定檔 '%1' %2" msgid "Couldn't load Scrips." msgstr "無法載入手續。" -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:54 html/Edit/Global/UserRight/Add.html:23 html/Edit/Groups/Member:121 html/Edit/Groups/Members/Add.html:44 html/Edit/Rights/index.html:57 -#. ($Group) +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:55 html/Edit/Global/GroupRight/Add.html:60 html/Edit/Global/UserRight/Add.html:25 html/Edit/Global/UserRight/Add.html:30 html/Edit/Groups/Member:120 html/Edit/Groups/Members/Add.html:43 html/Edit/Rights/index.html:58 html/Edit/Rights/index.html:63 #. ($ObjectGroup) +#. ($Report) +#. ($Group) #. ($id) msgid "Couldn't load group %1" msgstr "無法載入手續 %1" @@ -1421,12 +1441,12 @@ msgstr "無法載入手續 %1" msgid "Couldn't load link" msgstr "無法載入éˆçµã€‚" -#: html/Admin/Elements/EditCustomFields:146 html/Admin/Queues/People.html:120 +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "無法載入表單" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 html/Edit/Global/GroupRight/Add.html:50 html/Edit/Global/GroupRight/index.html:81 html/Edit/Global/UserRight/Add.html:19 html/Edit/Global/UserRight/index.html:83 html/Edit/Rights/index.html:53 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 html/Edit/Global/GroupRight/Add.html:51 html/Edit/Global/GroupRight/index.html:82 html/Edit/Global/GroupRight/index.html:87 html/Edit/Global/UserRight/Add.html:21 html/Edit/Global/UserRight/index.html:83 html/Edit/Global/UserRight/index.html:88 html/Edit/Rights/index.html:54 #. ($Queue) #. ($id) msgid "Couldn't load queue %1" @@ -1445,16 +1465,16 @@ msgstr "無法載入範本" msgid "Couldn't load that user (%1)" msgstr "無法載入該å使用者(%1)" -#: html/SelfService/Display.html:108 +#: html/SelfService/Display.html:114 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "無法載入申請單 '%1'" -#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:97 html/Work/Preferences/Info:87 +#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:134 html/Work/Preferences/Info:89 msgid "Country" msgstr "國家" -#: html/Admin/Elements/CreateUserCalled:25 html/Edit/Elements/PopHeader:29 html/Edit/Global/GroupRight/Add.html:18 html/Ticket/Create.html:134 html/Ticket/Create.html:194 +#: html/Admin/Elements/CreateUserCalled:25 html/Edit/Elements/PopHeader:33 html/Edit/Global/GroupRight/Add.html:19 html/Ticket/Create.html:134 html/Ticket/Create.html:195 msgid "Create" msgstr "新增" @@ -1462,7 +1482,7 @@ msgstr "新增" msgid "Create Subgroup:" msgstr "新增å­ç¾¤çµ„:" -#: etc/initialdata.zh:145 etc/initialdata:127 +#: etc/initialdata:127 msgid "Create Tickets" msgstr "新增申請單" @@ -1519,7 +1539,7 @@ msgstr "新增範本" msgid "Create a new ticket" msgstr "新增申請單" -#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:240 +#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:242 msgid "Create a new user" msgstr "新增使用者" @@ -1568,7 +1588,7 @@ msgstr "新增失敗:%1/%2/%3" msgid "Create new item" msgstr "建立新項目" -#: etc/initialdata.zh:147 etc/initialdata:129 +#: etc/initialdata:129 msgid "Create new tickets based on this scrip's template" msgstr "便“šæ­¤é …æ‰‹çºŒå…§çš„æ¨¡ç‰ˆï¼Œæ–°å¢žç”³è«‹å–®" @@ -1604,7 +1624,7 @@ msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹ä½¿ç”¨è€…" msgid "CreateTicket" msgstr "新增申請單" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:26 lib/RT/Ticket_Overlay.pm:1185 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1212 msgid "Created" msgstr "新增日" @@ -1638,11 +1658,11 @@ msgstr "ç¾æœ‰è‡ªè¨‚欄ä½" msgid "Current Groups:" msgstr "ç¾æœ‰ç¾¤çµ„列表:" -#: html/Ticket/Elements/EditLinks:27 +#: html/Ticket/Elements/EditLinks:27 html/Work/Tickets/Elements/EditLinks:10 msgid "Current Relationships" msgstr "ç¾æœ‰é—œä¿‚" -#: html/Edit/Rights/index.html:19 +#: html/Edit/Rights/index.html:20 msgid "Current Rights:" msgstr "ç¾æœ‰æ¬Šé™ï¼š" @@ -1650,7 +1670,7 @@ msgstr "ç¾æœ‰æ¬Šé™ï¼š" msgid "Current Scrips" msgstr "ç¾æœ‰æ‰‹çºŒ" -#: html/Work/Tickets/Create.html:50 html/Work/Tickets/Elements/ShowBasics:47 +#: html/Work/Tickets/Create.html:49 html/Work/Tickets/Elements/ShowBasics:47 msgid "Current Status" msgstr "ç›®å‰ç‹€æ…‹" @@ -1658,6 +1678,10 @@ msgstr "ç›®å‰ç‹€æ…‹" msgid "Current Templates" msgstr "ç¾æœ‰ç¯„本" +#: html/Work/Tickets/Elements/EditPeople:9 +msgid "Current Watchers" +msgstr "ç¾æœ‰è¦–察員" + #: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "ç¾æœ‰æˆå“¡" @@ -1670,7 +1694,7 @@ msgstr "ç¾æœ‰æ¬Šé™" msgid "Current search criteria" msgstr "ç¾æœ‰æŸ¥è©¢æ¢ä»¶" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 html/Work/Tickets/Elements/EditPeople:32 msgid "Current watchers" msgstr "ç¾æœ‰è¦–察員" @@ -1679,7 +1703,7 @@ msgstr "ç¾æœ‰è¦–察員" msgid "Custom Field #%1" msgstr "è‡ªè¨‚æ¬„ä½ #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:18 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:22 html/Ticket/Elements/ShowSummary:35 msgid "Custom Fields" msgstr "自訂欄ä½" @@ -1699,31 +1723,31 @@ msgstr "動作å‰åŸ·è¡Œç¨‹å¼" msgid "Custom condition" msgstr "自訂æ¢ä»¶" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1637 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "è‡ªè¨‚æ¬„ä½ %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: lib/RT/Tickets_Overlay.pm:1632 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "è‡ªè¨‚æ¬„ä½ %1 已有值" -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1629 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "è‡ªè¨‚æ¬„ä½ %1 沒有值" -#: lib/RT/Ticket_Overlay.pm:3454 +#: lib/RT/Ticket_Overlay.pm:3510 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "找ä¸åˆ°è‡ªè¨‚æ¬„ä½ %1" -#: html/Admin/Elements/EditCustomFields:196 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "自訂欄ä½å·²åˆªé™¤" -#: lib/RT/Ticket_Overlay.pm:3604 +#: lib/RT/Ticket_Overlay.pm:3660 msgid "Custom field not found" msgstr "找ä¸åˆ°è‡ªè¨‚欄ä½" @@ -1748,7 +1772,7 @@ msgstr "找ä¸åˆ°è‡ªè¨‚欄ä½å€¼" msgid "Custom field value deleted" msgstr "自訂欄ä½å€¼åˆªé™¤æˆåŠŸ" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:90 lib/RT/Transaction_Overlay.pm:548 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:90 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Vendor.pm:5 msgid "CustomField" msgstr "自訂欄ä½" @@ -1756,11 +1780,19 @@ msgstr "自訂欄ä½" msgid "Data error" msgstr "資料錯誤" +#: html/Edit/Global/Basic/Top:77 +msgid "DatabaseBindRemote" +msgstr "容許外部連線" + +#: html/Edit/Global/Basic/Top:75 +msgid "DatabaseName" +msgstr "MySQL資料庫" + #: NOT FOUND IN SOURCE msgid "Date of Departure" msgstr "出發日期" -#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:14 +#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:17 msgid "Dates" msgstr "日期" @@ -1776,35 +1808,47 @@ msgstr "12" msgid "December" msgstr "å二月" +#: NOT FOUND IN SOURCE +msgid "Default Approval" +msgstr "é è¨­ç°½æ ¸" + #: NOT FOUND IN SOURCE msgid "Default Autoresponse Template" msgstr "é è¨­è‡ªå‹•回應範本" -#: etc/initialdata.zh:225 etc/initialdata:207 +#: etc/initialdata:207 msgid "Default Autoresponse template" msgstr "é è¨­è‡ªå‹•回應範本" -#: etc/initialdata.zh:304 etc/initialdata:281 +#: html/Edit/Global/CustomField/Top:46 +msgid "Default Value" +msgstr "é è¨­å€¼" + +#: etc/initialdata:281 msgid "Default admin comment template" msgstr "é è¨­ç®¡ç†å“¡è©•論範本" -#: etc/initialdata.zh:262 etc/initialdata:260 +#: etc/initialdata:260 msgid "Default admin correspondence template" msgstr "é è¨­ç®¡ç†å“¡å›žè¦†ç¯„本" -#: etc/initialdata.zh:283 etc/initialdata:272 +#: etc/initialdata:272 msgid "Default correspondence template" msgstr "é è¨­å›žè¦†ç¯„本" -#: etc/initialdata.zh:240 etc/initialdata:238 +#: etc/initialdata:238 msgid "Default transaction template" msgstr "é è¨­æ›´å‹•範本" -#: lib/RT/Transaction_Overlay.pm:643 +#: lib/RT/Transaction_Overlay.pm:491 #. ($type, $self->Field, $self->OldValue, $self->NewValue) 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:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "代表團權é™" @@ -1833,7 +1877,7 @@ msgstr "代ç†è¡¨å–®ï¼š" msgid "Delegated Type" msgstr "代ç†è¡¨å–®ç¨®é¡ž" -#: html/Edit/Users/index.html:125 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:41 html/Work/Overview/Info:28 +#: html/Edit/Users/index.html:98 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:41 html/Work/Overview/Info:28 msgid "Delegates" msgstr "代ç†äºº" @@ -1877,10 +1921,14 @@ msgstr "代ç†äººç¾¤çµ„" msgid "Delegation Rights" msgstr "代ç†äººæ¬Šé™" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:113 html/Edit/Elements/104Buttons:73 html/Work/Search/index.html:48 html/Work/Search/index.html:48 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ModifyTemplateAsWorkflow:113 html/Edit/Elements/104Buttons:84 html/Work/Search/index.html:48 html/Work/Search/index.html:48 msgid "Delete" msgstr "刪除" +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "刪除指定的手續" + #: lib/RT/Queue_Overlay.pm:88 msgid "Delete tickets" msgstr "刪除申請單" @@ -1889,7 +1937,7 @@ msgstr "刪除申請單" msgid "DeleteTicket" msgstr "刪除申請單" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Deleting this object could break referential integrity" msgstr "刪除此物件å¯èƒ½ç ´å£žåƒè€ƒå®Œæ•´æ€§" @@ -1897,7 +1945,7 @@ msgstr "刪除此物件å¯èƒ½ç ´å£žåƒè€ƒå®Œæ•´æ€§" msgid "Deleting this object would break referential integrity" msgstr "刪除此物件å¯èƒ½ç ´å£žåƒè€ƒå®Œæ•´æ€§" -#: lib/RT/User_Overlay.pm:499 +#: lib/RT/User_Overlay.pm:504 msgid "Deleting this object would violate referential integrity" msgstr "刪除此物件會é•ååƒè€ƒå®Œæ•´æ€§" @@ -1917,11 +1965,11 @@ msgstr "é§å›ž" msgid "Department" msgstr "部門" -#: html/Edit/Global/UserRight/List:12 html/Edit/Global/UserRight/Top:13 html/Edit/Users/List:10 html/Edit/Users/Top:12 +#: html/Edit/Global/UserRight/List:12 html/Edit/Global/UserRight/Top:13 msgid "Department ID" msgstr "部門代碼" -#: html/Edit/Global/UserRight/List:11 html/Edit/Global/UserRight/Top:49 html/Edit/Users/List:9 html/Edit/Users/Top:48 html/Work/Delegates/Info:78 html/Work/Overview/Info:60 +#: html/Edit/Global/UserRight/List:11 html/Edit/Global/UserRight/Top:49 html/Work/Delegates/Info:78 html/Work/Overview/Info:60 msgid "Department Name" msgstr "部門å稱" @@ -1945,7 +1993,7 @@ msgstr "è«‹å‡å–®" msgid "Departure Until" msgstr "差旅截止日" -#: html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:122 html/Ticket/Elements/EditLinks:46 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 html/Work/Search/BulkLinks:10 +#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:105 html/Ticket/Elements/EditLinks:44 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 html/Work/Search/BulkLinks:10 html/Work/Tickets/Elements/EditLinks:109 html/Work/Tickets/Elements/EditLinks:34 html/Work/Tickets/Elements/ShowLinks:21 msgid "Depended on by" msgstr "å¯æŽ¥çºŒè™•ç†çš„申請單" @@ -1953,7 +2001,27 @@ msgstr "å¯æŽ¥çºŒè™•ç†çš„申請單" msgid "Dependencies: \\n" msgstr "附屬性:\\n" -#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:179 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:118 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 html/Work/Search/BulkLinks:6 +#: lib/RT/Transaction_Overlay.pm:585 +#. ($value) +msgid "Dependency by %1 added" +msgstr "å·²åŠ å…¥å¯æŽ¥çºŒè™•ç†çš„申請單 %1" + +#: lib/RT/Transaction_Overlay.pm:622 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "å·²ç§»é™¤å¯æŽ¥çºŒè™•ç†çš„申請單 %1" + +#: lib/RT/Transaction_Overlay.pm:582 +#. ($value) +msgid "Dependency on %1 added" +msgstr "已加入需先處ç†çš„申請單 %1" + +#: lib/RT/Transaction_Overlay.pm:619 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "已移除需先處ç†çš„申請單 %1" + +#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:101 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 html/Work/Search/BulkLinks:6 html/Work/Tickets/Elements/EditLinks:105 html/Work/Tickets/Elements/EditLinks:23 html/Work/Tickets/Elements/ShowLinks:16 msgid "Depends on" msgstr "需先處ç†" @@ -1969,7 +2037,7 @@ msgstr "éžæ¸›" msgid "Describe the issue below" msgstr "åœ¨ä»¥ä¸‹æ¬„ä½æè¿°ä¸»é¡Œ" -#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Elements/ModifyTemplateAsWorkflow:192 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Edit/Global/Workflow/Action:14 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 html/Work/Preferences/Info:103 +#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Elements/ModifyTemplateAsWorkflow:192 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Edit/Elements/SelectQueues:4 html/Edit/Global/Workflow/Action:13 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 msgid "Description" msgstr "æè¿°" @@ -1981,7 +2049,7 @@ msgstr "經辦業務說明" msgid "Description:" msgstr "æè¿°ï¼š" -#: html/Work/Tickets/Create.html:117 html/Work/Tickets/Create.html:85 html/Work/Tickets/Elements/EditCustomFields:13 html/Work/Tickets/Elements/EditCustomFields:47 html/Work/Tickets/Elements/ShowCustomFields:15 html/Work/Tickets/Elements/ShowCustomFields:50 +#: html/Work/Tickets/Create.html:132 html/Work/Tickets/Create.html:84 html/Work/Tickets/Elements/EditCustomFields:13 html/Work/Tickets/Elements/EditCustomFields:61 html/Work/Tickets/Elements/ShowCustomFields:14 html/Work/Tickets/Elements/ShowCustomFields:53 msgid "Details" msgstr "細節" @@ -1989,15 +2057,15 @@ msgstr "細節" msgid "Direct" msgstr "直接" -#: html/Edit/Users/Info:31 +#: NOT FOUND IN SOURCE msgid "Disability" msgstr "殘障身分" -#: html/Edit/Users/Info:29 +#: NOT FOUND IN SOURCE msgid "Disability Type" msgstr "殘障類別" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:70 html/Edit/Queues/List:13 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 msgid "Disabled" msgstr "åœç”¨" @@ -2033,7 +2101,7 @@ msgstr "å…許一切æ“作" msgid "Don't refresh this page." msgstr "䏿›´æ–°æ­¤é é¢ã€‚" -#: html/Search/Elements/PickRestriction:113 html/Work/Search/PickRestriction:95 +#: html/Search/Elements/PickRestriction:113 html/Work/Search/PickRestriction:101 msgid "Don't show search results" msgstr "ä¸é¡¯ç¤ºæŸ¥è©¢çµæžœ" @@ -2041,7 +2109,7 @@ msgstr "ä¸é¡¯ç¤ºæŸ¥è©¢çµæžœ" msgid "Down" msgstr "下一é " -#: html/Ticket/Elements/ShowTransaction:92 +#: html/Ticket/Elements/ShowTransaction:103 msgid "Download" msgstr "下載" @@ -2049,7 +2117,7 @@ msgstr "下載" msgid "Dr." msgstr "åšå£«" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:42 lib/RT/Ticket_Overlay.pm:1189 +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:43 html/Work/Tickets/Elements/EditBasics:54 lib/RT/Ticket_Overlay.pm:1216 msgid "Due" msgstr "到期日" @@ -2066,7 +2134,7 @@ msgstr "無法解讀日期 '%1'" msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "無法載入申請單 '%1':%2.\\n" -#: html/Work/Tickets/Update.html:46 +#: html/Work/Tickets/Update.html:47 msgid "Edit" msgstr "編輯" @@ -2074,7 +2142,7 @@ msgstr "編輯" msgid "Edit Conditions" msgstr "編輯å‰ç½®æ¢ä»¶" -#: html/Admin/Queues/CustomFields.html:44 +#: html/Admin/Queues/CustomFields.html:45 #. ($Queue->Name) msgid "Edit Custom Fields for %1" msgstr "編輯 %1 的自訂欄ä½" @@ -2168,15 +2236,19 @@ msgstr "最高學歷" msgid "EffectiveId" msgstr "有效編號" -#: lib/RT/Ticket_Overlay.pm:2635 lib/RT/Ticket_Overlay.pm:2703 +#: lib/RT/Ticket_Overlay.pm:2673 lib/RT/Ticket_Overlay.pm:2751 msgid "Either base or target must be specified" msgstr "éœ€è¦æŒ‡å®šèµ·å§‹ç”³è«‹å–®æˆ–目的申請單" -#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:41 html/Work/Delegates/Info:96 html/Work/Overview/Info:78 html/Work/Preferences/Info:16 +#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Edit/Elements/SelectUsers:4 html/Edit/Users/List:7 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 html/Work/Delegates/Info:96 html/Work/Overview/Info:78 msgid "Email" msgstr "é›»å­éƒµä»¶ä¿¡ç®±" -#: lib/RT/User_Overlay.pm:247 +#: html/Work/Preferences/Info:16 +msgid "Email Address" +msgstr "é›»å­éƒµä»¶ä¿¡ç®±" + +#: lib/RT/User_Overlay.pm:251 msgid "Email address in use" msgstr "此電å­éƒµä»¶ä¿¡ç®±å·²è¢«ä½¿ç”¨" @@ -2216,11 +2288,11 @@ msgstr "啟用(å–æ¶ˆå‹¾é¸å°‡åœç”¨æ­¤ç¾¤çµ„)" msgid "Enabled (Unchecking this box disables this queue)" msgstr "啟用(å–æ¶ˆå‹¾é¸å°‡åœç”¨æ­¤è¡¨å–®)" -#: html/Admin/Elements/EditCustomFields:98 +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "已啟用的自訂欄ä½" -#: html/Edit/Queues/Basic/Top:75 html/Edit/Queues/List:15 +#: html/Edit/Queues/Basic/Top:74 html/Edit/Queues/List:17 html/Edit/Queues/List:29 msgid "Enabled Date" msgstr "啟用日期" @@ -2232,16 +2304,16 @@ msgstr "啟動日期:" msgid "Enabled Queues" msgstr "已啟用的表單" -#: html/Edit/Queues/Basic/Top:66 html/Edit/Queues/List:11 +#: html/Edit/Queues/Basic/Top:65 html/Edit/Queues/List:13 html/Edit/Queues/List:25 msgid "Enabled Status" msgstr "啟用狀態" -#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:282 html/User/Groups/Modify.html:116 +#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:284 html/User/Groups/Modify.html:116 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "啟用狀態 %1" -#: html/Edit/Users/Info:34 +#: NOT FOUND IN SOURCE msgid "End of Trial" msgstr "試用期滿日" @@ -2261,7 +2333,7 @@ msgstr "è¼¸å…¥ä¸‹åˆ—å–®ä¸€æˆ–è¤‡å¼æ¢ä»¶ï¼ŒæŸ¥è©¢ç”¨æˆ¶è³‡æ–™" msgid "Enter one value" msgstr "éµå…¥å–®ä¸€é …ç›®" -#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:111 html/Work/Search/Bulk.html:95 +#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:94 html/Work/Search/Bulk.html:95 html/Work/Tickets/Elements/EditLinks:98 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "輸入申請單å¯éˆçµåˆ°çš„申請單編號或網å€ã€‚以空白隔開。" @@ -2313,15 +2385,15 @@ msgstr "表單->æ–°å¢žè¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" msgid "Error in parameters to Queue->DelWatcher" msgstr "表單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: lib/RT/Ticket_Overlay.pm:1374 +#: lib/RT/Ticket_Overlay.pm:1401 msgid "Error in parameters to Ticket->AddWatcher" msgstr "申請單->æ–°å¢žè¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: lib/RT/Ticket_Overlay.pm:1531 +#: lib/RT/Ticket_Overlay.pm:1558 msgid "Error in parameters to Ticket->DelWatcher" msgstr "申請單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: etc/initialdata.zh:38 etc/initialdata:20 +#: etc/initialdata:20 msgid "Everyone" msgstr "所有人" @@ -2329,7 +2401,11 @@ msgstr "所有人" msgid "Example:" msgstr "範例:" -#: html/Edit/Elements/104Buttons:77 +#: NOT FOUND IN SOURCE +msgid "Existing user renamed from %1 to %2" +msgstr "ç¾æœ‰ä½¿ç”¨è€… %1 已改å為 %2" + +#: html/Edit/Elements/104Buttons:88 msgid "Export" msgstr "匯出" @@ -2341,31 +2417,31 @@ msgstr "外部èªè­‰å¸³è™Ÿ" msgid "ExternalContactInfoId" msgstr "外部è¯çµ¡æ–¹å¼å¸³è™Ÿ" -#: html/Edit/Global/Basic/Top:64 +#: html/Edit/Global/Basic/Top:69 msgid "ExternalDatabaseDSN" msgstr "外部資料庫連çµå­—串" -#: html/Edit/Global/Basic/Top:68 +#: html/Edit/Global/Basic/Top:73 msgid "ExternalDatabasePass" msgstr "外部資料庫密碼" -#: html/Edit/Global/Basic/Top:66 +#: html/Edit/Global/Basic/Top:71 msgid "ExternalDatabaseUser" msgstr "外部資料庫用戶" -#: html/Edit/Global/Basic/Top:62 +#: html/Edit/Global/Basic/Top:67 msgid "ExternalURL" msgstr "外部介é¢ç¶²å€" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:72 html/Edit/Users/Info:41 msgid "Extra info" msgstr "備註" -#: lib/RT/User_Overlay.pm:363 +#: lib/RT/User_Overlay.pm:368 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "找ä¸åˆ°ã€Œå…§éƒ¨æˆå“¡ã€è™›æ“¬ç¾¤çµ„的使用者。" -#: lib/RT/User_Overlay.pm:370 +#: lib/RT/User_Overlay.pm:375 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "找ä¸åˆ°ã€Œéžå…§éƒ¨æˆå“¡ã€è™›æ“¬ç¾¤çµ„的使用者。" @@ -2390,22 +2466,22 @@ msgstr "二月" msgid "Female" msgstr "女" -#: html/Edit/Global/CustomField/List:5 html/Edit/Global/CustomField/Top:9 -msgid "Field Attribute" -msgstr "欄ä½å±¬æ€§" - #: html/Edit/Global/CustomField/Info:14 msgid "Field Content:" msgstr "欄ä½å…§å®¹ï¼š" -#: html/Edit/Global/CustomField/List:7 html/Edit/Global/CustomField/Top:21 +#: html/Edit/Global/CustomField/List:7 html/Edit/Global/CustomField/Top:20 msgid "Field Description" msgstr "æ¬„ä½æè¿°" -#: html/Edit/Global/CustomField/List:6 html/Edit/Global/CustomField/Top:15 +#: html/Edit/Global/CustomField/List:6 html/Edit/Global/CustomField/Top:14 msgid "Field Name" msgstr "欄ä½å稱" +#: html/Edit/Global/CustomField/List:5 html/Edit/Global/CustomField/Top:9 +msgid "Field Type" +msgstr "欄ä½å±¬æ€§" + #: html/Edit/Elements/PickUsers:52 html/Edit/Users/Add.html:47 msgid "Filter" msgstr "篩é¸" @@ -2422,19 +2498,19 @@ msgstr "篩é¸åˆ—表:" msgid "Fin" msgstr "最終" -#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 lib/RT/Tickets_Overlay.pm:1091 +#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 html/Work/Tickets/Elements/EditBasics:52 lib/RT/Tickets_Overlay.pm:1110 msgid "Final Priority" -msgstr "最低順ä½" +msgstr "最終順ä½" -#: lib/RT/Ticket_Overlay.pm:1180 +#: lib/RT/Ticket_Overlay.pm:1207 msgid "FinalPriority" -msgstr "最低順ä½" +msgstr "最終順ä½" #: NOT FOUND IN SOURCE msgid "Financial Department:" msgstr "財務部:" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 html/Work/Tickets/Elements/EditPeople:18 msgid "Find group whose" msgstr "尋找群組的" @@ -2442,10 +2518,14 @@ msgstr "尋找群組的" msgid "Find new/open tickets" msgstr "尋找/開啟申請單" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Edit/Users/Top:6 html/Ticket/Elements/EditPeople:29 html/Work/Tickets/Elements/EditPeople:14 msgid "Find people whose" msgstr "尋找人員的" +#: html/Edit/Queues/Top:6 +msgid "Find queues whose" +msgstr "尋找表單的" + #: html/Search/Listing.html:107 html/Work/Search/index.html:88 msgid "Find tickets" msgstr "尋找申請單" @@ -2470,7 +2550,7 @@ msgstr "一" msgid "First-level Admins" msgstr "一階主管" -#: html/Edit/Users/Info:39 +#: NOT FOUND IN SOURCE msgid "First-level Users" msgstr "一階主管員工" @@ -2478,17 +2558,17 @@ msgstr "一階主管員工" msgid "Fixed shift" msgstr "固定ç­" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "甲 ä¹™ 丙" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "甲ï¼" #: html/Search/Bulk.html:86 html/Work/Search/Bulk.html:55 msgid "Force change" -msgstr "強制更新" +msgstr "強制更æ›" #: html/Work/Elements/104Header:89 msgid "Form Processing" @@ -2499,7 +2579,7 @@ msgstr "é›»å­è¡¨å–®ä½œæ¥­å€" msgid "Found %quant(%1,ticket)" msgstr "找到 %1 張申請單" -#: lib/RT/Interface/Web.pm:904 x:907 +#: lib/RT/Interface/Web.pm:964 msgid "Found Object" msgstr "已找到物件" @@ -2555,7 +2635,7 @@ msgstr "完整標頭檔" msgid "Gecos" msgstr "登入帳號" -#: html/Edit/Users/Info:26 +#: NOT FOUND IN SOURCE msgid "Gender" msgstr "性別" @@ -2563,7 +2643,7 @@ msgstr "性別" msgid "Getting the current user from a pgp sig\\n" msgstr "å–å¾—ç›®å‰ä½¿ç”¨è€…çš„ pgp 簽章\\n" -#: lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Transaction_Overlay.pm:551 #. ($New->Name) msgid "Given to %1" msgstr "交予 %1" @@ -2572,6 +2652,10 @@ msgstr "交予 %1" msgid "Global" msgstr "全域設定" +#: NOT FOUND IN SOURCE +msgid "Global Approval" +msgstr "全域簽核" + #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "全域關éµå­—é¸å–" @@ -2593,7 +2677,11 @@ msgstr "全域設定" msgid "Global template: %1" msgstr "全域範本:%1" -#: html/Admin/Elements/EditCustomFields:74 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:40 +#: NOT FOUND IN SOURCE +msgid "GlobalApproval" +msgstr "全域簽核" + +#: html/Admin/Elements/EditCustomFields:73 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/Work/Tickets/Elements/EditPeople:16 html/Work/Tickets/Elements/EditPeople:20 html/index.html:40 msgid "Go!" msgstr "執行" @@ -2621,6 +2709,10 @@ msgstr "群組" msgid "Group %1 %2: %3" msgstr "群組 %1 %2:%3" +#: NOT FOUND IN SOURCE +msgid "Group Admin" +msgstr "群組管ç†å“¡" + #: html/Edit/Global/GroupRight/List:5 html/Edit/Global/GroupRight/Top:20 html/Edit/Groups/List:7 msgid "Group Description" msgstr "群組æè¿°" @@ -2633,7 +2725,7 @@ msgstr "群組管ç†" msgid "Group Members" msgstr "群組æˆå“¡" -#: html/Edit/Elements/PickUsers:28 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Delegates/Add.html:15 html/Work/Tickets/Cc:24 +#: html/Edit/Elements/PickUsers:28 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Queues/Basic/Add.html:15 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Delegates/Add.html:15 html/Work/Tickets/Cc:24 msgid "Group Name" msgstr "群組å稱" @@ -2641,7 +2733,7 @@ msgstr "群組å稱" msgid "Group Name:" msgstr "群組å稱:" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:23 html/Edit/Users/Group:11 html/Edit/Users/index.html:123 +#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:27 html/Edit/Users/Group:11 html/Edit/Users/index.html:96 msgid "Group Rights" msgstr "群組權é™" @@ -2657,7 +2749,7 @@ msgstr "群組設定" msgid "Group Status" msgstr "群組狀態" -#: lib/RT/Group_Overlay.pm:964 +#: lib/RT/Group_Overlay.pm:962 msgid "Group already has member" msgstr "群組內已有此æˆå“¡" @@ -2670,15 +2762,19 @@ msgstr "無法新增群組" msgid "Group could not be created: %1" msgstr "無法新增群組:%1" -#: lib/RT/Group_Overlay.pm:496 +#: lib/RT/Group_Overlay.pm:494 msgid "Group created" msgstr "群組新增完畢" -#: lib/RT/Group_Overlay.pm:1132 +#: NOT FOUND IN SOURCE +msgid "Group created: %1" +msgstr "群組 %1 新增完畢" + +#: lib/RT/Group_Overlay.pm:1134 msgid "Group has no such member" msgstr "群組沒有這個æˆå“¡" -#: lib/RT/Group_Overlay.pm:944 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1428 lib/RT/Ticket_Overlay.pm:1506 +#: lib/RT/Group_Overlay.pm:942 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1455 lib/RT/Ticket_Overlay.pm:1533 msgid "Group not found" msgstr "找ä¸åˆ°ç¾¤çµ„" @@ -2690,6 +2786,14 @@ msgstr "找ä¸åˆ°ç¾¤çµ„。\\n" 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 "æ“æœ‰è¡¨å–®æ¬Šé™ç¾¤çµ„" @@ -2702,11 +2806,11 @@ msgstr "群組之" msgid "Group:" msgstr "群組:" -#: 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/Edit/Global/GroupRight/Add.html:15 html/User/Groups/Members.html:66 +#: 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/Edit/Global/GroupRight/Add.html:16 html/Edit/Groups/Admin:12 html/User/Groups/Members.html:66 msgid "Groups" msgstr "群組" -#: lib/RT/Group_Overlay.pm:970 +#: lib/RT/Group_Overlay.pm:968 msgid "Groups can't be members of their members" msgstr "ä¸èƒ½å°‡ç¾¤çµ„設為群組內æˆå“¡" @@ -2726,19 +2830,23 @@ msgstr "å¥ä¿è£œåŠ©èº«ä»½" msgid "Hello!" msgstr "å—¨ï¼" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "嗨,%1" #: html/Edit/Elements/104Top:28 msgid "Help" -msgstr "輔助說明" +msgstr "說明" #: NOT FOUND IN SOURCE msgid "Help Desks" msgstr "å„項業務窗å£" +#: html/Edit/Global/CustomField/SelectWritable:9 html/Edit/Queues/Basic/Top:80 +msgid "Hidden" +msgstr "éš±è—" + #: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:87 html/Work/Tickets/Elements/ShowHistory:8 msgid "History" msgstr "紀錄" @@ -2755,7 +2863,7 @@ msgstr "主é " msgid "Hotel Expense" msgstr "ä½å®¿è²»" -#: lib/RT/Base.pm:73 +#: lib/RT/Base.pm:75 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "我有 %quant(%1,份固體攪拌器)。" @@ -2768,7 +2876,7 @@ msgstr "身分證號" msgid "ID Type" msgstr "身分類別" -#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1018 +#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1037 msgid "Id" msgstr "編號" @@ -2776,7 +2884,7 @@ msgstr "編號" msgid "Identity" msgstr "身份" -#: etc/initialdata.zh:439 etc/initialdata:411 etc/upgrade/2.1.71:86 html/Edit/Elements/CreateApprovalsQueue:58 +#: etc/initialdata:411 etc/upgrade/2.1.71:86 html/Edit/Elements/CreateApprovalsQueue:58 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "若簽核單é­åˆ°é§å›žï¼Œå‰‡é€£å¸¶é§å›žåŽŸç”³è«‹å–®ï¼Œä¸¦åˆªé™¤å…¶ä»–ç›¸é—œçš„å¾…ç°½æ ¸äº‹é …" @@ -2788,43 +2896,43 @@ msgstr "如果此工具程å¼ç‚º setgid,惡æ„的本地端用戶å³èƒ½ç”±æ­¤ msgid "If you've updated anything above, be sure to" msgstr "若您已更新以上資料,請記得按一下" -#: lib/RT/Interface/Web.pm:896 x:899 +#: lib/RT/Interface/Web.pm:956 msgid "Illegal value for %1" msgstr "%1 的值錯誤" -#: lib/RT/Interface/Web.pm:899 x:902 +#: lib/RT/Interface/Web.pm:959 msgid "Immutable field" msgstr "此欄ä½å€¼ä¸å¯æ›´å‹•" -#: html/Edit/Elements/104Buttons:76 html/Edit/Global/Workflow/Import.html:2 +#: html/Edit/Elements/104Buttons:87 html/Edit/Global/Workflow/Import.html:2 msgid "Import" msgstr "匯入" -#: html/Admin/Elements/EditCustomFields:73 +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "列出åœç”¨çš„自訂欄ä½" -#: html/Admin/Queues/index.html:42 html/Edit/Queues/index.html:38 +#: html/Admin/Queues/index.html:42 html/Edit/Queues/Top:9 msgid "Include disabled queues in listing." msgstr "列出åœç”¨çš„表單" -#: html/Admin/Users/index.html:46 html/Edit/Users/Search.html:62 +#: html/Admin/Users/index.html:46 html/Edit/Users/Search.html:62 html/Edit/Users/Top:9 msgid "Include disabled users in search." msgstr "列出åœç”¨çš„使用者" -#: html/Edit/Users/Info:36 +#: NOT FOUND IN SOURCE msgid "Indirect Employee" msgstr "直接/間接員工" -#: lib/RT/Tickets_Overlay.pm:1067 +#: lib/RT/Tickets_Overlay.pm:1086 msgid "Initial Priority" -msgstr "åˆå§‹å„ªå…ˆæ¬Š" +msgstr "åˆå§‹å„ªå…ˆé †ä½" -#: lib/RT/Ticket_Overlay.pm:1179 lib/RT/Ticket_Overlay.pm:1181 +#: lib/RT/Ticket_Overlay.pm:1206 lib/RT/Ticket_Overlay.pm:1208 msgid "InitialPriority" -msgstr "åˆå§‹å„ªå…ˆæ¬Š" +msgstr "åˆå§‹å„ªå…ˆé †ä½" -#: lib/RT/ScripAction_Overlay.pm:104 +#: lib/RT/ScripAction_Overlay.pm:105 msgid "Input error" msgstr "輸入錯誤" @@ -2832,7 +2940,7 @@ msgstr "輸入錯誤" msgid "Interest noted" msgstr "登記æˆåŠŸ" -#: lib/RT/Ticket_Overlay.pm:3829 +#: lib/RT/Ticket_Overlay.pm:3913 msgid "Internal Error" msgstr "內部錯誤" @@ -2841,7 +2949,7 @@ msgstr "內部錯誤" msgid "Internal Error: %1" msgstr "內部錯誤:%1" -#: lib/RT/Group_Overlay.pm:643 +#: lib/RT/Group_Overlay.pm:641 msgid "Invalid Group Type" msgstr "錯誤的群組類別" @@ -2853,15 +2961,15 @@ msgstr "錯誤的權é™" msgid "Invalid Type" msgstr "錯誤的類型" -#: lib/RT/Interface/Web.pm:901 x:904 +#: lib/RT/Interface/Web.pm:961 msgid "Invalid data" msgstr "錯誤的資料" -#: lib/RT/Ticket_Overlay.pm:439 +#: lib/RT/Ticket_Overlay.pm:463 msgid "Invalid owner. Defaulting to 'nobody'." msgstr "錯誤的承辦人。改為é è¨­æ‰¿è¾¦äººã€Œnobodyã€ã€‚" -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:250 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "錯誤的表單" @@ -2874,11 +2982,11 @@ msgstr "錯誤的權é™" msgid "Invalid value for %1" msgstr "%1 的值錯誤" -#: lib/RT/Ticket_Overlay.pm:3461 +#: lib/RT/Ticket_Overlay.pm:3517 msgid "Invalid value for custom field" msgstr "錯誤的自訂欄ä½å€¼" -#: lib/RT/Ticket_Overlay.pm:346 +#: lib/RT/Ticket_Overlay.pm:365 msgid "Invalid value for status" msgstr "錯誤的狀態值" @@ -2936,7 +3044,7 @@ msgstr "七月" #: lib/RT/Date.pm:417 msgid "Jul." -msgstr "01" +msgstr "07" #: NOT FOUND IN SOURCE msgid "July" @@ -2952,7 +3060,7 @@ msgstr "六月" #: lib/RT/Date.pm:416 msgid "Jun." -msgstr "06." +msgstr "06" #: NOT FOUND IN SOURCE msgid "June" @@ -2982,11 +3090,15 @@ msgstr "éˆçµæ¨™ç±¤" msgid "Lang" msgstr "使用語言" +#: html/User/Prefs.html:54 html/Work/Preferences/Info:29 +msgid "Language" +msgstr "語言" + #: html/Ticket/Elements/Tabs:72 msgid "Last" msgstr "上次更新" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:38 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 html/Work/Tickets/Elements/EditBasics:44 msgid "Last Contact" msgstr "上次è¯çµ¡" @@ -3010,11 +3122,11 @@ msgstr "上次更新" msgid "Left" msgstr "剩餘時間" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:82 html/Edit/Users/Info:62 msgid "Let this user access RT" msgstr "å…許這å使用者登入" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:86 html/Edit/Users/Info:68 msgid "Let this user be granted rights" msgstr "內部æˆå“¡ï¼ˆå…·æœ‰å€‹äººæ¬Šé™ï¼‰" @@ -3030,25 +3142,25 @@ msgstr "é™åˆ¶è¡¨å–®ç‚º %1 到 %2" msgid "Link a Queue" msgstr "申請表單連çµ" -#: lib/RT/Ticket_Overlay.pm:2717 +#: lib/RT/Ticket_Overlay.pm:2765 msgid "Link already exists" msgstr "æ­¤éˆçµå·²å­˜åœ¨" -#: lib/RT/Ticket_Overlay.pm:2729 +#: lib/RT/Ticket_Overlay.pm:2777 msgid "Link could not be created" msgstr "無法新增éˆçµ" -#: lib/RT/Ticket_Overlay.pm:2737 lib/RT/Ticket_Overlay.pm:2747 +#: lib/RT/Ticket_Overlay.pm:2785 lib/RT/Ticket_Overlay.pm:2797 #. ($TransString) msgid "Link created (%1)" msgstr "éˆçµ(%1)新增完畢" -#: lib/RT/Ticket_Overlay.pm:2658 +#: lib/RT/Ticket_Overlay.pm:2698 #. ($TransString) msgid "Link deleted (%1)" msgstr "éˆçµ(%1)刪除完畢" -#: lib/RT/Ticket_Overlay.pm:2664 +#: lib/RT/Ticket_Overlay.pm:2704 msgid "Link not found" msgstr "找ä¸åˆ°éˆçµ" @@ -3069,20 +3181,20 @@ msgstr "éˆçµ" msgid "List All Users" msgstr "列出所有用戶資料" -#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:84 html/Work/Preferences/Info:73 +#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:107 html/Work/Preferences/Info:75 msgid "Location" msgstr "ä½ç½®" -#: lib/RT.pm:162 +#: lib/RT.pm:174 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "登入目錄 %1 找ä¸åˆ°æˆ–無法寫入\\n。無法執行 RT。" -#: html/Edit/Global/Basic/Top:52 +#: html/Edit/Global/Basic/Top:57 msgid "LogToFile" msgstr "紀錄等級" -#: html/Edit/Global/Basic/Top:54 +#: html/Edit/Global/Basic/Top:59 msgid "LogToFileNamed" msgstr "紀錄檔å" @@ -3091,7 +3203,7 @@ msgstr "紀錄檔å" msgid "Logged in as %1" msgstr "使用者:%1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +#: 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 "登入" @@ -3183,6 +3295,10 @@ msgstr "三月" msgid "Marketing Department" msgstr "行銷部" +#: html/Edit/Global/CustomField/Top:63 +msgid "Match Pattern" +msgstr "ç¬¦åˆæ¨£å¼" + #: NOT FOUND IN SOURCE msgid "May" msgstr "五月" @@ -3191,23 +3307,33 @@ msgstr "五月" msgid "May." msgstr "05" -#: lib/RT/Group_Overlay.pm:981 +#: lib/RT/Transaction_Overlay.pm:598 +#. ($value) +msgid "Member %1 added" +msgstr "æˆå“¡ %1 新增完畢" + +#: lib/RT/Transaction_Overlay.pm:635 +#. ($value) +msgid "Member %1 deleted" +msgstr "æˆå“¡ %1 刪除完畢" + +#: lib/RT/Group_Overlay.pm:979 msgid "Member added" msgstr "新增æˆå“¡å®Œç•¢" -#: lib/RT/Group_Overlay.pm:1139 +#: lib/RT/Group_Overlay.pm:1141 msgid "Member deleted" msgstr "æˆå“¡å·²åˆªé™¤" -#: lib/RT/Group_Overlay.pm:1143 +#: lib/RT/Group_Overlay.pm:1145 msgid "Member not deleted" -msgstr "æˆå“¡æœªè¢«åˆªé™¤" +msgstr "æˆå“¡æœªåˆªé™¤" #: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "隸屬於" -#: html/Work/Preferences/index.html:20 +#: html/Work/Preferences/index.html:19 msgid "Member since" msgstr "註冊日期" @@ -3219,15 +3345,25 @@ msgstr "隸屬於" msgid "Members" msgstr "æˆå“¡" -#: lib/RT/Ticket_Overlay.pm:2904 +#: lib/RT/Transaction_Overlay.pm:595 +#. ($value) +msgid "Membership in %1 added" +msgstr "所屬群組 %1 加入完畢" + +#: lib/RT/Transaction_Overlay.pm:632 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "所屬群組 %1 移除完畢" + +#: lib/RT/Ticket_Overlay.pm:2954 msgid "Merge Successful" msgstr "æ•´åˆå®Œç•¢" -#: lib/RT/Ticket_Overlay.pm:2824 +#: lib/RT/Ticket_Overlay.pm:2874 msgid "Merge failed. Couldn't set EffectiveId" msgstr "æ•´åˆå¤±æ•—。無法設定 EffectiveId" -#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:114 html/Work/Search/BulkLinks:2 +#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:97 html/Work/Search/BulkLinks:2 html/Work/Tickets/Elements/EditLinks:101 msgid "Merge into" msgstr "æ•´åˆé€²" @@ -3235,15 +3371,19 @@ msgstr "æ•´åˆé€²" msgid "Message" msgstr "訊æ¯" +#: html/Ticket/Elements/ShowTransaction:80 +msgid "Message body not shown because it is too large or is not plain text." +msgstr "ä¿¡ä»¶å…§æ–‡ä¸æ˜¯ç´”文字,因此無法顯示。" + #: NOT FOUND IN SOURCE msgid "Misc. Expense" msgstr "雜費" -#: lib/RT/Interface/Web.pm:903 x:906 +#: lib/RT/Interface/Web.pm:963 msgid "Missing a primary key?: %1" msgstr "缺少主éµå€¼ï¼Ÿ(%1)" -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:53 html/Work/Preferences/Info:36 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:71 html/Work/Preferences/Info:38 msgid "Mobile" msgstr "行動電話" @@ -3400,7 +3540,7 @@ msgstr "更改群組 %1" msgid "Modify the queue watchers" msgstr "更改表單視察員" -#: html/Admin/Users/Modify.html:235 +#: html/Admin/Users/Modify.html:237 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "更改使用者 %1" @@ -3508,7 +3648,7 @@ msgstr "上移" msgid "Multiple" msgstr "多é‡" -#: lib/RT/User_Overlay.pm:238 +#: lib/RT/User_Overlay.pm:242 msgid "Must specify 'Name' attribute" msgstr "必須指定 'Name' 的屬性" @@ -3533,15 +3673,15 @@ msgstr "表單處ç†" msgid "My approvals" msgstr "表單簽核" -#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyTemplateAsWorkflow:185 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Edit/Users/Add.html:22 html/Edit/Users/Search.html:31 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 html/Work/Tickets/Cc:18 +#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyTemplateAsWorkflow:185 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Edit/Elements/SelectQueues:3 html/Edit/Queues/List:8 html/Edit/Users/Add.html:22 html/Edit/Users/List:5 html/Edit/Users/Search.html:31 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 html/Work/Tickets/Cc:18 msgid "Name" msgstr "å稱" -#: lib/RT/User_Overlay.pm:245 +#: lib/RT/User_Overlay.pm:249 msgid "Name in use" msgstr "帳號已有人使用" -#: html/Edit/Users/Info:27 +#: NOT FOUND IN SOURCE msgid "Nationality" msgstr "國ç±" @@ -3549,23 +3689,23 @@ msgstr "國ç±" msgid "Need approval from system administrator" msgstr "需先由系統管ç†å“¡é€²è¡Œæ‰¹å‡†" -#: html/Ticket/Elements/ShowDates:51 +#: html/Ticket/Elements/ShowDates:52 msgid "Never" msgstr "從未更動" -#: html/Elements/Quicksearch:29 html/Work/Elements/Quicksearch:15 html/Work/Tickets/Create.html:54 +#: html/Elements/Quicksearch:29 html/Work/Elements/Quicksearch:15 html/Work/Tickets/Create.html:53 msgid "New" msgstr "新建立" -#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/User/Prefs.html:64 html/Work/Preferences/Info:47 +#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/Edit/Users/Info:33 html/User/Prefs.html:87 html/Work/Preferences/Info:49 msgid "New Password" msgstr "新的密碼" -#: etc/initialdata.zh:341 etc/initialdata:317 etc/upgrade/2.1.71:16 html/Edit/Elements/CreateApprovalsQueue:21 +#: etc/initialdata:317 etc/upgrade/2.1.71:16 html/Edit/Elements/CreateApprovalsQueue:21 msgid "New Pending Approval" msgstr "新的待簽核事項" -#: html/Ticket/Elements/EditLinks:110 +#: html/Ticket/Elements/EditLinks:93 html/Work/Tickets/Elements/EditLinks:12 msgid "New Relationships" msgstr "新增關係" @@ -3577,7 +3717,11 @@ msgstr "表單申請" msgid "New Search" msgstr "新增查詢" -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:39 +#: html/Work/Tickets/Elements/EditPeople:7 +msgid "New Watchers" +msgstr "新增視察員" + +#: 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 "新增自訂欄ä½" @@ -3589,7 +3733,7 @@ msgstr "新增群組" msgid "New password" msgstr "新的密碼" -#: lib/RT/User_Overlay.pm:764 +#: lib/RT/User_Overlay.pm:769 msgid "New password notification sent" msgstr "é€å‡ºæ–°å¯†ç¢¼é€šçŸ¥" @@ -3621,7 +3765,7 @@ msgstr "新增範本" msgid "New ticket" msgstr "æå‡ºç”³è«‹å–®" -#: lib/RT/Ticket_Overlay.pm:2791 +#: lib/RT/Ticket_Overlay.pm:2841 msgid "New ticket doesn't exist" msgstr "沒有新申請單" @@ -3657,7 +3801,7 @@ msgstr "下一é " msgid "NickName" msgstr "暱稱" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:45 html/Work/Preferences/Info:26 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 html/Work/Preferences/Info:26 msgid "Nickname" msgstr "暱稱" @@ -3665,11 +3809,11 @@ msgstr "暱稱" msgid "Night Shift" msgstr "å°å¤œç­" -#: html/Edit/Global/Basic/Top:27 +#: html/Edit/Global/Basic/Top:27 html/Edit/Queues/Basic/Top:83 msgid "No" msgstr "å¦" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:104 +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "無自訂欄ä½" @@ -3705,7 +3849,7 @@ msgstr "沒有æµç¨‹" msgid "No action" msgstr "æš«ä¸è™•ç†" -#: lib/RT/Interface/Web.pm:898 x:901 +#: lib/RT/Interface/Web.pm:958 msgid "No column specified" msgstr "未指定欄ä½" @@ -3717,7 +3861,7 @@ msgstr "找ä¸åˆ°å‘½ä»¤" msgid "No comment entered about this user" msgstr "沒有å°é€™å使用者的評論" -#: lib/RT/Ticket_Overlay.pm:2202 lib/RT/Ticket_Overlay.pm:2270 +#: lib/RT/Ticket_Overlay.pm:2229 lib/RT/Ticket_Overlay.pm:2299 msgid "No correspondence attached" msgstr "沒有附上申請單回覆" @@ -3726,11 +3870,11 @@ msgstr "沒有附上申請單回覆" msgid "No description for %1" msgstr "æ²’æœ‰å° %1 çš„æè¿°" -#: lib/RT/Users_Overlay.pm:150 +#: lib/RT/Users_Overlay.pm:149 msgid "No group specified" msgstr "未指定群組" -#: lib/RT/User_Overlay.pm:982 +#: lib/RT/User_Overlay.pm:987 msgid "No password set" msgstr "沒有設定密碼" @@ -3738,24 +3882,24 @@ msgstr "沒有設定密碼" msgid "No permission to create queues" msgstr "沒有新增表單的權é™" -#: lib/RT/Ticket_Overlay.pm:342 +#: lib/RT/Ticket_Overlay.pm:361 #. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "沒有在表單 '%1' 新增申請單的權é™" -#: lib/RT/User_Overlay.pm:211 +#: lib/RT/User_Overlay.pm:208 msgid "No permission to create users" msgstr "沒有新增使用者的權é™" -#: html/SelfService/Display.html:117 +#: html/SelfService/Display.html:123 msgid "No permission to display that ticket" msgstr "沒有顯示該申請單的權é™" -#: html/SelfService/Update.html:51 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "沒有檢視申請單更新的權é™" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1487 +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1514 msgid "No principal specified" msgstr "未指定單ä½" @@ -3771,7 +3915,7 @@ msgstr "%1 內未指定å”定" msgid "No queues matching search criteria found." msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„表單。" -#: html/Admin/Elements/SelectRights:80 +#: html/Admin/Elements/SelectRights:81 msgid "No rights found" msgstr "找ä¸åˆ°æ¬Šé™" @@ -3787,7 +3931,7 @@ msgstr "沒有è¦é€²è¡Œçš„æŸ¥è©¢" msgid "No ticket id specified" msgstr "未指定申請單編號" -#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +#: lib/RT/Transaction_Overlay.pm:427 lib/RT/Transaction_Overlay.pm:465 msgid "No transaction type specified" msgstr "未指定更動報告類別" @@ -3803,7 +3947,7 @@ msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„使用者。" msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "找ä¸åˆ°åˆæ ¼çš„ RT 使用者。RT cvs 處ç†å™¨å·²åœç”¨ã€‚è«‹å‘ RT 管ç†è€…è©¢å•。\\n" -#: lib/RT/Interface/Web.pm:895 x:898 +#: lib/RT/Interface/Web.pm:955 msgid "No value sent to _Set!\\n" msgstr "_Set 沒有收到任何值!\\n" @@ -3811,7 +3955,7 @@ msgstr "_Set 沒有收到任何值!\\n" msgid "Nobody" msgstr "沒有人" -#: lib/RT/Interface/Web.pm:900 x:903 +#: lib/RT/Interface/Web.pm:960 msgid "Nonexistant field?" msgstr "欄ä½ä¸å­˜åœ¨ï¼Ÿ" @@ -3843,7 +3987,7 @@ msgstr "尚未完工。" msgid "Not yet implemented...." msgstr "尚未完工..." -#: html/Approvals/Elements/Approve:48 html/Work/Tickets/Create.html:143 +#: html/Approvals/Elements/Approve:48 html/Work/Tickets/Elements/AddContent:9 msgid "Notes" msgstr "備註" @@ -3851,67 +3995,67 @@ msgstr "備註" msgid "Notes:" msgstr "備註:" -#: lib/RT/User_Overlay.pm:767 +#: lib/RT/User_Overlay.pm:772 msgid "Notification could not be sent" msgstr "無法é€å‡ºé€šçŸ¥" -#: etc/initialdata.zh:111 etc/initialdata:93 +#: etc/initialdata:93 msgid "Notify AdminCcs" msgstr "通知管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:107 etc/initialdata:89 +#: etc/initialdata:89 msgid "Notify AdminCcs as Comment" msgstr "以評論方å¼é€šçŸ¥ç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:138 etc/initialdata:120 +#: etc/initialdata:120 msgid "Notify Other Recipients" msgstr "通知其他收件人" -#: etc/initialdata.zh:134 etc/initialdata:116 +#: etc/initialdata:116 msgid "Notify Other Recipients as Comment" msgstr "以評論方å¼é€šçŸ¥å…¶ä»–收件人" -#: etc/initialdata.zh:103 etc/initialdata:85 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "通知承辦人" -#: etc/initialdata.zh:99 etc/initialdata:81 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "以評論方å¼é€šçŸ¥æ‰¿è¾¦äºº" -#: etc/initialdata.zh:385 etc/initialdata:361 +#: etc/initialdata:361 msgid "Notify Owner of their rejected ticket" msgstr "通知承辦人申請單已é§å›ž" -#: etc/initialdata.zh:374 etc/initialdata:350 +#: etc/initialdata:350 msgid "Notify Owner of their ticket has been approved by all approvers" msgstr "通知承辦人申請單已完æˆå…¨éƒ¨ç°½æ ¸" -#: etc/initialdata.zh:359 etc/initialdata:338 +#: etc/initialdata:338 msgid "Notify Owner of their ticket has been approved by some approver" msgstr "é€šçŸ¥æ‰¿è¾¦äººç”³è«‹å–®å·²å®ŒæˆæŸé …簽核" -#: etc/initialdata.zh:343 etc/initialdata:319 etc/upgrade/2.1.71:17 html/Edit/Elements/CreateApprovalsQueue:22 +#: etc/initialdata:319 etc/upgrade/2.1.71:17 html/Edit/Elements/CreateApprovalsQueue:22 msgid "Notify Owners and AdminCcs of new items pending their approval" msgstr "æ•´ç†å¾…簽核事項,通知承辦人åŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:95 etc/initialdata:77 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "通知申請人" -#: etc/initialdata.zh:121 etc/initialdata:103 +#: etc/initialdata:103 msgid "Notify Requestors and Ccs" msgstr "通知申請人åŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:116 etc/initialdata:98 +#: etc/initialdata:98 msgid "Notify Requestors and Ccs as Comment" msgstr "以評論方å¼é€šçŸ¥ç”³è«‹äººåŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:130 etc/initialdata:112 +#: etc/initialdata:112 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "通知申請人ã€å‰¯æœ¬åŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:126 etc/initialdata:108 +#: etc/initialdata:108 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "以評論方å¼é€šçŸ¥ç”³è«‹äººã€å‰¯æœ¬åŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" @@ -3931,9 +4075,9 @@ msgstr "11" msgid "November" msgstr "å一月" -#: html/Edit/Global/Basic/Top:74 +#: html/Edit/Global/Basic/Top:83 msgid "OIN104" -msgstr "é…åˆ 104eHRMS 介é¢" +msgstr "104eHRMS 介é¢" #: html/Edit/Global/Workflow/Export.html:30 html/Work/Copyright.html:23 msgid "OK" @@ -3947,7 +4091,7 @@ msgstr "無法新增物件" msgid "Object created" msgstr "物件新增完畢" -#: html/Edit/Users/Info:35 +#: NOT FOUND IN SOURCE msgid "Occupation Status" msgstr "在è·ç‹€æ…‹" @@ -3963,7 +4107,7 @@ msgstr "10" msgid "October" msgstr "åæœˆ" -#: html/Edit/Users/Info:32 +#: NOT FOUND IN SOURCE msgid "Office Phone" msgstr "辦公室電話" @@ -3971,35 +4115,39 @@ msgstr "辦公室電話" msgid "On" msgstr "等於" -#: etc/initialdata.zh:173 etc/initialdata:155 +#: html/Edit/Global/CustomField/Top:68 +msgid "On Change" +msgstr "更改申請單時" + +#: etc/initialdata:155 msgid "On Comment" msgstr "評論時" -#: etc/initialdata.zh:166 etc/initialdata:148 +#: etc/initialdata:148 msgid "On Correspond" msgstr "回覆申請單時" -#: etc/initialdata.zh:155 etc/initialdata:137 +#: etc/initialdata:137 html/Edit/Global/CustomField/Top:57 msgid "On Create" msgstr "新增申請單時" -#: etc/initialdata.zh:187 etc/initialdata:169 +#: etc/initialdata:169 msgid "On Owner Change" msgstr "承辦人改變時" -#: etc/initialdata.zh:195 etc/initialdata:177 +#: etc/initialdata:177 msgid "On Queue Change" msgstr "表單改變時" -#: etc/initialdata.zh:201 etc/initialdata:183 +#: etc/initialdata:183 msgid "On Resolve" msgstr "解決申請單時" -#: etc/initialdata.zh:179 etc/initialdata:161 +#: etc/initialdata:161 msgid "On Status Change" msgstr "ç¾æ³æ”¹è®Šæ™‚" -#: etc/initialdata.zh:160 etc/initialdata:142 +#: etc/initialdata:142 msgid "On Transaction" msgstr "發生更動時" @@ -4013,7 +4161,7 @@ msgstr "僅顯示 %1 之後新增的申請單" msgid "Only show approvals for requests created before %1" msgstr "僅顯示 %1 之剿–°å¢žçš„申請單" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:13 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:28 +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:68 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:51 msgid "Open" msgstr "開啟" @@ -4033,7 +4181,7 @@ msgstr "在新視窗開啟(列表的)申請單" msgid "Open tickets (from listing) in another window" msgstr "在å¦ä¸€å€‹è¦–窗開啟(列表的)申請單" -#: etc/initialdata.zh:150 etc/initialdata:132 +#: etc/initialdata:132 msgid "Open tickets on correspondence" msgstr "收到回覆時å³é–‹å•Ÿç”³è«‹å–®" @@ -4053,11 +4201,11 @@ msgstr "é¸é …æè¿°" msgid "Option Name" msgstr "é¸é …å稱" -#: html/Search/Elements/PickRestriction:100 html/Work/Search/PickRestriction:81 +#: html/Search/Elements/PickRestriction:100 html/Work/Search/PickRestriction:87 msgid "Ordering and sorting" msgstr "é †åºèˆ‡æŽ’åºæ–¹å¼" -#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Global/Basic/Top:50 html/Elements/SelectUsers:28 html/User/Prefs.html:85 html/Work/Preferences/Info:75 +#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Elements/SelectUsers:7 html/Edit/Global/Basic/Top:55 html/Elements/SelectUsers:28 html/User/Prefs.html:110 html/Work/Preferences/Info:77 msgid "Organization" msgstr "組織å稱" @@ -4070,11 +4218,11 @@ msgstr "組織:" msgid "Originating ticket: #%1" msgstr "原申請單:#%1" -#: html/Edit/Elements/PickUsers:109 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 +#: html/Edit/Elements/PickUsers:111 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 msgid "Other comma-delimited email addresses" msgstr "å…¶ä»–e-mail帳號 (僅e-mail通知;多筆帳號請用逗號','å€éš”)" -#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 html/Edit/Queues/Basic/Top:41 +#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 html/Edit/Queues/Basic/Top:44 msgid "Over time, priority moves toward" msgstr "優先順ä½éš¨æ™‚間增加調整為" @@ -4086,7 +4234,7 @@ msgstr "以 %1 表單的自訂欄ä½å–ä»£ç¾æœ‰æ¬„ä½" msgid "Override global rights" msgstr "å–代全域權é™" -#: html/Admin/Elements/CheckOverrideGlobalACL:34 +#: html/Admin/Elements/CheckOverrideGlobalACL:36 #. (loc_fuzzy($msg)) msgid "OverrideGlobalACL status %1" msgstr "å–ä»£å…¨åŸŸæ¬Šé™ %1" @@ -4103,7 +4251,7 @@ msgstr "承辦申請單" msgid "OwnTicket" msgstr "承辦申請單" -#: etc/initialdata.zh:56 etc/initialdata:38 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:47 html/Edit/Queues/Basic/Top:58 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:19 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1244 +#: etc/initialdata:38 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:51 html/Edit/Queues/Basic/Top:59 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:19 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/EditPeople:28 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1263 msgid "Owner" msgstr "承辦人" @@ -4111,7 +4259,7 @@ msgstr "承辦人" msgid "Owner changed from %1 to %2" msgstr "承辦人已從 %1 改為 %2" -#: lib/RT/Transaction_Overlay.pm:582 +#: lib/RT/Transaction_Overlay.pm:539 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "強制將承辦人從 %1 改為 %2" @@ -4120,15 +4268,15 @@ msgstr "強制將承辦人從 %1 改為 %2" msgid "Owner is" msgstr "承辦人" -#: html/Work/Elements/List:27 html/Work/Queues/List:8 html/Work/Tickets/Create.html:56 html/Work/Tickets/Elements/ShowBasics:60 +#: html/Work/Elements/List:27 html/Work/Queues/List:8 html/Work/Tickets/Create.html:55 html/Work/Tickets/Elements/ShowBasics:60 msgid "Owner's Phone" msgstr "承辦人電話" -#: html/Edit/Elements/Page:39 -msgid "Page" +#: html/Edit/Elements/Page:40 +msgid "Page #" msgstr " " -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:55 html/Work/Preferences/Info:38 +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:75 html/Work/Preferences/Info:40 msgid "Pager" msgstr "呼å«å™¨" @@ -4136,7 +4284,7 @@ msgstr "呼å«å™¨" msgid "PagerPhone" msgstr "呼å«å™¨è™Ÿç¢¼" -#: html/Edit/Global/Workflow/Action:81 html/Edit/Global/Workflow/Condition:66 +#: html/Edit/Global/Workflow/Action:75 html/Edit/Global/Workflow/Condition:65 msgid "Parameter" msgstr "呼å«åƒæ•¸" @@ -4144,7 +4292,7 @@ msgstr "呼å«åƒæ•¸" msgid "Parent" msgstr "上級" -#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:126 html/Ticket/Elements/EditLinks:57 html/Ticket/Elements/ShowLinks:46 html/Work/Search/BulkLinks:14 +#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:109 html/Ticket/Elements/EditLinks:54 html/Ticket/Elements/ShowLinks:46 html/Work/Search/BulkLinks:14 html/Work/Tickets/Elements/EditLinks:113 html/Work/Tickets/Elements/EditLinks:45 html/Work/Tickets/Elements/ShowLinks:26 msgid "Parents" msgstr "æ¯ç”³è«‹å–®" @@ -4152,7 +4300,7 @@ msgstr "æ¯ç”³è«‹å–®" msgid "Park Space" msgstr "åœè»Šä½ç”³è«‹" -#: html/Elements/Login:52 html/User/Prefs.html:60 html/Work/Preferences/Info:44 +#: html/Elements/Login:52 html/User/Prefs.html:83 html/Work/Preferences/Info:46 msgid "Password" msgstr "密碼" @@ -4160,20 +4308,20 @@ msgstr "密碼" msgid "Password Reminder" msgstr "密碼æç¤º" -#: lib/RT/User_Overlay.pm:228 lib/RT/User_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:230 lib/RT/User_Overlay.pm:990 msgid "Password too short" msgstr "密碼太短" -#: html/Admin/Users/Modify.html:290 html/User/Prefs.html:171 html/Work/Preferences/Info:167 +#: html/Admin/Users/Modify.html:292 html/User/Prefs.html:209 html/Work/Preferences/Info:173 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "密碼:%1" -#: html/Admin/Users/Modify.html:292 +#: html/Admin/Users/Modify.html:294 msgid "Passwords do not match." msgstr "密碼確èªå¤±æ•—。" -#: html/User/Prefs.html:173 html/Work/Preferences/Info:169 +#: html/User/Prefs.html:211 html/Work/Preferences/Info:175 msgid "Passwords do not match. Your password has not been changed" msgstr "密碼確èªå¤±æ•—。您的密碼並未改變。" @@ -4193,11 +4341,11 @@ msgstr "人員" msgid "People with Queue Rights" msgstr "æ“æœ‰è¡¨å–®æ¬Šé™äººå“¡" -#: etc/initialdata.zh:143 etc/initialdata:125 +#: etc/initialdata:125 msgid "Perform a user-defined action" msgstr "執行使用者自訂的動作" -#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:510 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1098 lib/RT/Group_Overlay.pm:1107 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1162 lib/RT/Group_Overlay.pm:1168 lib/RT/Group_Overlay.pm:425 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:903 lib/RT/Group_Overlay.pm:907 lib/RT/Group_Overlay.pm:920 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:196 lib/RT/Scrip_Overlay.pm:433 lib/RT/Template_Overlay.pm:283 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1359 lib/RT/Ticket_Overlay.pm:1369 lib/RT/Ticket_Overlay.pm:1383 lib/RT/Ticket_Overlay.pm:1517 lib/RT/Ticket_Overlay.pm:1526 lib/RT/Ticket_Overlay.pm:1539 lib/RT/Ticket_Overlay.pm:1888 lib/RT/Ticket_Overlay.pm:2026 lib/RT/Ticket_Overlay.pm:2190 lib/RT/Ticket_Overlay.pm:2257 lib/RT/Ticket_Overlay.pm:2616 lib/RT/Ticket_Overlay.pm:2688 lib/RT/Ticket_Overlay.pm:2782 lib/RT/Ticket_Overlay.pm:2797 lib/RT/Ticket_Overlay.pm:2996 lib/RT/Ticket_Overlay.pm:3006 lib/RT/Ticket_Overlay.pm:3011 lib/RT/Ticket_Overlay.pm:3233 lib/RT/Ticket_Overlay.pm:3431 lib/RT/Ticket_Overlay.pm:3593 lib/RT/Ticket_Overlay.pm:3645 lib/RT/Ticket_Overlay.pm:3823 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1079 lib/RT/User_Overlay.pm:1527 lib/RT/User_Overlay.pm:687 lib/RT/User_Overlay.pm:722 lib/RT/User_Overlay.pm:978 +#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1096 lib/RT/Group_Overlay.pm:1100 lib/RT/Group_Overlay.pm:1109 lib/RT/Group_Overlay.pm:1160 lib/RT/Group_Overlay.pm:1164 lib/RT/Group_Overlay.pm:1170 lib/RT/Group_Overlay.pm:423 lib/RT/Group_Overlay.pm:515 lib/RT/Group_Overlay.pm:593 lib/RT/Group_Overlay.pm:601 lib/RT/Group_Overlay.pm:698 lib/RT/Group_Overlay.pm:702 lib/RT/Group_Overlay.pm:708 lib/RT/Group_Overlay.pm:901 lib/RT/Group_Overlay.pm:905 lib/RT/Group_Overlay.pm:918 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:934 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:201 lib/RT/Scrip_Overlay.pm:441 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1386 lib/RT/Ticket_Overlay.pm:1396 lib/RT/Ticket_Overlay.pm:1410 lib/RT/Ticket_Overlay.pm:1544 lib/RT/Ticket_Overlay.pm:1553 lib/RT/Ticket_Overlay.pm:1566 lib/RT/Ticket_Overlay.pm:1915 lib/RT/Ticket_Overlay.pm:2053 lib/RT/Ticket_Overlay.pm:2217 lib/RT/Ticket_Overlay.pm:2286 lib/RT/Ticket_Overlay.pm:2647 lib/RT/Ticket_Overlay.pm:2728 lib/RT/Ticket_Overlay.pm:2832 lib/RT/Ticket_Overlay.pm:2847 lib/RT/Ticket_Overlay.pm:3046 lib/RT/Ticket_Overlay.pm:3056 lib/RT/Ticket_Overlay.pm:3061 lib/RT/Ticket_Overlay.pm:3284 lib/RT/Ticket_Overlay.pm:3288 lib/RT/Ticket_Overlay.pm:3487 lib/RT/Ticket_Overlay.pm:3649 lib/RT/Ticket_Overlay.pm:3701 lib/RT/Ticket_Overlay.pm:3907 lib/RT/Transaction_Overlay.pm:415 lib/RT/Transaction_Overlay.pm:422 lib/RT/Transaction_Overlay.pm:451 lib/RT/Transaction_Overlay.pm:458 lib/RT/User_Overlay.pm:1084 lib/RT/User_Overlay.pm:1532 lib/RT/User_Overlay.pm:692 lib/RT/User_Overlay.pm:727 lib/RT/User_Overlay.pm:983 msgid "Permission Denied" msgstr "權é™ä¸è¶³" @@ -4233,6 +4381,22 @@ msgstr "代ç†äººç¾¤çµ„:" 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 "電話" @@ -4241,11 +4405,11 @@ msgstr "電話" msgid "Phone number" msgstr "電話號碼" -#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:48 html/Work/Preferences/Info:30 +#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:60 html/Work/Preferences/Info:32 msgid "Phone numbers" msgstr "電話號碼" -#: html/Edit/Users/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 +#: html/Edit/Queues/Basic/Add.html:3 html/Edit/Queues/Basic/Top:55 html/Edit/Users/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 msgid "Pick" msgstr "挑é¸" @@ -4257,7 +4421,7 @@ msgstr "出發地點" msgid "Placeholder" msgstr "尚未完工" -#: html/Edit/Elements/PickUsers:31 html/Edit/Elements/PickUsers:44 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:183 html/Work/Tickets/Elements/EditCustomField:75 html/Work/Tickets/Elements/EditCustomFieldEntries:81 html/Work/Tickets/Elements/EditCustomFieldEntries:88 +#: html/Edit/Elements/PickUsers:31 html/Edit/Elements/PickUsers:44 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:187 html/Work/Tickets/Elements/EditCustomFieldEntry:24 html/Work/Tickets/Elements/EditCustomFieldEntry:35 msgid "Please Select" msgstr "è«‹é¸æ“‡" @@ -4273,6 +4437,10 @@ msgstr "è«‹é¸æ“‡ç¾¤çµ„" 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 "è«‹é¸æ“‡è§’色" @@ -4285,19 +4453,19 @@ msgstr "經營è¦ç« " msgid "Position" msgstr "è·å‹™" -#: html/Edit/Users/Info:42 +#: NOT FOUND IN SOURCE msgid "Position Level" msgstr "è·ç­‰" -#: html/Edit/Elements/PickUsers:41 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Users/Add.html:41 html/Edit/Users/List:11 html/Edit/Users/Top:22 html/Work/Delegates/Add.html:26 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 +#: html/Edit/Elements/PickUsers:41 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Queues/Basic/Add.html:26 html/Edit/Users/Add.html:41 html/Work/Delegates/Add.html:26 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 msgid "Position Name" msgstr "è·å‹™å稱" -#: html/Edit/Global/UserRight/List:14 html/Edit/Global/UserRight/Top:33 html/Edit/Users/List:12 html/Edit/Users/Top:32 +#: html/Edit/Global/UserRight/List:14 html/Edit/Global/UserRight/Top:33 msgid "Position Number" msgstr "è·å‹™ä»£ç¢¼" -#: html/Edit/Users/Info:43 +#: NOT FOUND IN SOURCE msgid "Position Rank" msgstr "è·ç´š" @@ -4334,7 +4502,7 @@ msgstr "優先順ä½" msgid "Principal %1 not found." msgstr "找ä¸åˆ°å–®ä½ %1。" -#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 lib/RT/Tickets_Overlay.pm:1042 +#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 html/Work/Tickets/Elements/EditBasics:41 lib/RT/Tickets_Overlay.pm:1061 msgid "Priority" msgstr "優先順ä½" @@ -4342,11 +4510,11 @@ msgstr "優先順ä½" msgid "Priority starts at" msgstr "優先順ä½èµ·å§‹å€¼" -#: etc/initialdata.zh:43 etc/initialdata:25 +#: etc/initialdata:25 msgid "Privileged" msgstr "內部æˆå“¡" -#: html/Admin/Users/Modify.html:270 html/User/Prefs.html:162 html/Work/Preferences/Info:158 +#: html/Admin/Users/Modify.html:272 html/User/Prefs.html:200 html/Work/Preferences/Info:164 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "內部æˆå“¡ç‹€æ…‹ï¼š%1" @@ -4359,11 +4527,19 @@ msgstr "內部æˆå“¡" msgid "Process Status" msgstr "處ç†ç‹€æ…‹" -#: etc/initialdata.zh:41 etc/initialdata.zh:47 etc/initialdata.zh:53 etc/initialdata.zh:77 etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +#: html/Edit/Queues/List:10 +msgid "Project Name" +msgstr "專案å稱" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 msgid "Pseudogroup for internal use" msgstr "內部用的虛擬群組" -#: html/Work/Preferences/Info:68 +#: html/Edit/Queues/List:11 +msgid "Public Description" +msgstr "公開說明" + +#: html/Work/Preferences/Info:70 msgid "Public Info" msgstr "公開資訊" @@ -4371,11 +4547,15 @@ msgstr "公開資訊" msgid "Public Service" msgstr "公共事務å€" +#: NOT FOUND IN SOURCE +msgid "Purging stale data: %1" +msgstr "ç§»é™¤éŽæœŸè³‡æ–™: %1" + #: html/Edit/Users/Search.html:4 msgid "Query" msgstr "查詢" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:17 html/Work/Elements/MyTickets:17 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 lib/RT/Tickets_Overlay.pm:883 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:17 html/Work/Elements/MyTickets:17 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 html/Work/Tickets/Elements/EditBasics:16 lib/RT/Tickets_Overlay.pm:902 msgid "Queue" msgstr "表單" @@ -4393,19 +4573,19 @@ msgstr "找ä¸åˆ°è¡¨å–® '%1'\\n" msgid "Queue Keyword Selections" msgstr "表單關éµå­—é¸å–" -#: html/Admin/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 html/Edit/Queues/Basic/Top:12 html/Edit/Queues/Basic/index.html:36 html/Edit/Queues/Global:21 html/Edit/Queues/List:6 html/Edit/Users/Queue:10 html/Work/Delegates/List:6 html/Work/Elements/List:11 html/Work/Queues/List:5 html/Work/Tickets/Create.html:22 html/Work/Tickets/Elements/ShowBasics:6 +#: html/Admin/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 html/Edit/Queues/Basic/Top:13 html/Edit/Queues/Basic/index.html:36 html/Edit/Queues/Global:21 html/Edit/Queues/List:20 html/Edit/Users/Queue:10 html/Work/Delegates/List:6 html/Work/Elements/List:11 html/Work/Queues/List:5 html/Work/Tickets/Create.html:21 html/Work/Tickets/Elements/ShowBasics:6 msgid "Queue Name" msgstr "表單å稱" -#: html/Edit/Queues/List:8 html/Work/Elements/List:25 html/Work/Queues/List:7 html/Work/Tickets/Create.html:35 html/Work/Tickets/Elements/ShowBasics:19 +#: html/Edit/Queues/List:22 html/Work/Elements/List:25 html/Work/Queues/List:7 html/Work/Tickets/Create.html:34 html/Work/Tickets/Elements/ShowBasics:19 msgid "Queue Owner" msgstr "業務承辦人" -#: html/Edit/Queues/Basic/Top:35 +#: html/Edit/Queues/Basic/Top:38 msgid "Queue Priority" msgstr "優先等級" -#: html/Edit/Global/GroupRight/Top:24 html/Edit/Global/UserRight/Top:43 html/Edit/Users/Queue:11 html/Edit/Users/index.html:124 +#: html/Edit/Global/GroupRight/Top:24 html/Edit/Global/UserRight/Top:43 html/Edit/Users/Queue:11 html/Edit/Users/index.html:97 msgid "Queue Rights" msgstr "表單權é™" @@ -4425,11 +4605,11 @@ msgstr "表單已存在" msgid "Queue could not be created" msgstr "無法新增表單" -#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:204 html/Work/Tickets/Create.html:185 +#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:208 html/Work/Tickets/Create.html:180 msgid "Queue could not be loaded." msgstr "無法載入表單" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "表單新增完畢" @@ -4458,7 +4638,7 @@ msgstr "表單一覽" msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 +#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 #. ($RT::VERSION, $RT::rtname) msgid "RT %1 for %2" msgstr "%2:RT %1 版" @@ -4574,11 +4754,15 @@ msgstr "系統é‹è¡Œè§’色" msgid "RT::Ticket-Role" msgstr "申請單é‹è¡Œè§’色" -#: html/Work/Tickets/Elements/ShowTransaction:11 +#: html/Work/Tickets/Elements/ShowTransaction:14 msgid "RT_System" msgstr "系統訊æ¯" -#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/User/Prefs.html:43 html/Work/Preferences/Info:18 +#: html/Edit/Global/CustomField/SelectWritable:7 +msgid "Read Only" +msgstr "唯讀" + +#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/Edit/Elements/SelectUsers:5 html/Edit/Users/List:6 html/User/Prefs.html:47 html/Work/Preferences/Info:18 msgid "Real Name" msgstr "真實姓å" @@ -4586,15 +4770,35 @@ msgstr "真實姓å" msgid "RealName" msgstr "真實姓å" -#: html/Work/Approvals/Display.html:27 html/Work/Tickets/Update.html:85 +#: html/Work/Approvals/Display.html:30 html/Work/Tickets/Update.html:81 msgid "Really reject this ticket?" msgstr "您確定è¦é§å›žé€™å¼µç”³è«‹å–®å—Žï¼Ÿ" -#: html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:138 html/Ticket/Elements/EditLinks:93 html/Ticket/Elements/ShowLinks:70 html/Work/Search/BulkLinks:26 +#: lib/RT/Transaction_Overlay.pm:592 +#. ($value) +msgid "Reference by %1 added" +msgstr "已加入 %1 為åƒè€ƒæœ¬ç”³è«‹å–®" + +#: lib/RT/Transaction_Overlay.pm:629 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "已移除 %1 為åƒè€ƒæœ¬ç”³è«‹å–®" + +#: lib/RT/Transaction_Overlay.pm:589 +#. ($value) +msgid "Reference to %1 added" +msgstr "已加入åƒè€ƒç”³è«‹å–® %1" + +#: lib/RT/Transaction_Overlay.pm:626 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "已移除åƒè€ƒç”³è«‹å–® %1" + +#: html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:121 html/Ticket/Elements/EditLinks:81 html/Ticket/Elements/ShowLinks:70 html/Work/Search/BulkLinks:26 html/Work/Tickets/Elements/EditLinks:125 html/Work/Tickets/Elements/EditLinks:81 html/Work/Tickets/Elements/ShowLinks:38 msgid "Referred to by" msgstr "被åƒè€ƒ" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:134 html/Ticket/Elements/EditLinks:79 html/Ticket/Elements/ShowLinks:60 html/Work/Search/BulkLinks:22 +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:117 html/Ticket/Elements/EditLinks:72 html/Ticket/Elements/ShowLinks:60 html/Work/Search/BulkLinks:22 html/Work/Tickets/Elements/EditLinks:121 html/Work/Tickets/Elements/EditLinks:67 html/Work/Tickets/Elements/ShowLinks:33 msgid "Refers to" msgstr "åƒè€ƒ" @@ -4619,7 +4823,7 @@ msgstr "æ›´æ–°" msgid "Refresh this page every %1 minutes." msgstr "æ¯ %1 åˆ†é˜æ›´æ–°é é¢" -#: html/Ticket/Create.html:173 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 msgid "Relationships" msgstr "關係" @@ -4639,7 +4843,7 @@ msgstr "移除副本" msgid "Remove Requestor" msgstr "移除申請人" -#: html/Ticket/Elements/ShowTransaction:160 html/Ticket/Elements/Tabs:121 html/Work/Tickets/Display.html:31 html/Work/Tickets/Elements/ShowTransaction:108 +#: html/Ticket/Elements/ShowTransaction:172 html/Ticket/Elements/Tabs:121 html/Work/Tickets/Display.html:54 html/Work/Tickets/Elements/ShowTransaction:115 msgid "Reply" msgstr "回覆" @@ -4651,15 +4855,15 @@ msgstr "å°ç”³è«‹å–®é€²è¡Œå›žè¦†" msgid "ReplyToTicket" msgstr "回覆申請單" -#: html/Edit/Users/Info:45 +#: NOT FOUND IN SOURCE msgid "Report to Duty" msgstr "上下ç­åˆ·å¡" -#: html/Edit/Users/Info:33 +#: NOT FOUND IN SOURCE msgid "Reported on" msgstr "åˆ°è·æ—¥æœŸ" -#: etc/initialdata.zh:62 etc/initialdata:44 html/Ticket/Update.html:39 html/Work/Elements/List:21 html/Work/Elements/MyApprovals:12 html/Work/Elements/MyTickets:20 html/Work/Elements/SelectSearch:30 html/Work/Tickets/Elements/ShowBasics:62 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 html/Ticket/Update.html:39 html/Work/Elements/List:21 html/Work/Elements/MyApprovals:12 html/Work/Elements/MyTickets:20 html/Work/Elements/SelectSearch:31 html/Work/Tickets/Elements/ShowBasics:62 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "申請人" @@ -4687,7 +4891,7 @@ msgstr "申請人" msgid "RequestorAddresses" msgstr "申請人地å€" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 html/Work/Tickets/Elements/EditPeople:38 msgid "Requestors" msgstr "申請人" @@ -4699,7 +4903,7 @@ msgstr "ç”³è«‹å–®è™•ç†æœŸé™" msgid "Reset" msgstr "é‡è¨­" -#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:49 html/Work/Preferences/Info:32 +#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:63 html/Work/Preferences/Info:34 msgid "Residence" msgstr "ä½è™•" @@ -4707,16 +4911,16 @@ msgstr "ä½è™•" msgid "Resolution" msgstr "解決狀態" -#: html/Ticket/Elements/Tabs:131 html/Work/Tickets/Display.html:34 +#: html/Ticket/Elements/Tabs:131 html/Work/Tickets/Display.html:57 msgid "Resolve" msgstr "解決" -#: html/Ticket/Update.html:136 html/Work/Tickets/Update.html:120 +#: html/Ticket/Update.html:137 #. ($Ticket->id, $Ticket->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "解決申請單 #%1 (%2)" -#: etc/initialdata.zh:331 etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1188 +#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1215 msgid "Resolved" msgstr "已解決" @@ -4724,7 +4928,7 @@ msgstr "已解決" msgid "Response to requestors" msgstr "回覆申請人" -#: html/Edit/Users/Info:44 +#: NOT FOUND IN SOURCE msgid "Responsibility Type" msgstr "責任å€åˆ†" @@ -4732,11 +4936,11 @@ msgstr "責任å€åˆ†" msgid "Results" msgstr "çµæžœ" -#: html/Search/Elements/PickRestriction:104 html/Work/Search/PickRestriction:84 +#: html/Search/Elements/PickRestriction:104 html/Work/Search/PickRestriction:90 msgid "Results per page" msgstr "æ¯é åˆ—å‡ºå¹¾ç­†çµæžœ" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:71 html/Work/Preferences/Info:54 +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 html/Work/Preferences/Info:56 msgid "Retype Password" msgstr "冿¬¡è¼¸å…¥å¯†ç¢¼" @@ -4776,17 +4980,17 @@ msgstr "æ¬Šé™æ’¤æ¶ˆå®Œç•¢" msgid "Rights" msgstr "權é™åŠä»£ç†äºº" -#: lib/RT/Interface/Web.pm:794 x:797 +#: lib/RT/Interface/Web.pm:857 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "無法將權é™è³¦äºˆ %1" -#: lib/RT/Interface/Web.pm:827 x:830 +#: lib/RT/Interface/Web.pm:887 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "無法撤消 %1 的權é™" -#: html/Edit/Groups/Member:55 html/Edit/Groups/Members/List:10 +#: html/Edit/Groups/Member:54 html/Edit/Groups/Members/List:10 msgid "Role Members" msgstr "角色æˆå“¡" @@ -4802,19 +5006,19 @@ msgstr "角色" msgid "RootApproval" msgstr "交由系統管ç†å“¡ç°½æ ¸" -#: html/Edit/Global/Workflow/Action:27 +#: html/Edit/Global/Workflow/Action:23 msgid "Run Approval" msgstr "簽核執行" -#: html/Edit/Global/Basic/Top:72 +#: html/Edit/Global/Basic/Top:81 msgid "SMTPDebug" msgstr "SMTP åµéŒ¯ç´€éŒ„" -#: html/Edit/Global/Basic/Top:58 +#: html/Edit/Global/Basic/Top:63 msgid "SMTPFrom" msgstr "SMTP 寄件ä½å€" -#: html/Edit/Global/Basic/Top:56 +#: html/Edit/Global/Basic/Top:61 msgid "SMTPServer" msgstr "SMTP 伺æœå™¨" @@ -4826,7 +5030,7 @@ msgstr "星期六" msgid "Sat." msgstr "星期六" -#: html/Edit/Elements/104Buttons:72 html/Work/Preferences/index.html:35 +#: html/Edit/Elements/104Buttons:83 html/Work/Preferences/index.html:33 html/Work/Tickets/Elements/EditBasics:63 html/Work/Tickets/Elements/EditLinks:133 html/Work/Tickets/Elements/EditPeople:51 msgid "Save" msgstr "儲存" @@ -4852,7 +5056,7 @@ msgstr "訊æ¯é€šçŸ¥å‹•作" msgid "Scrip Condition" msgstr "訊æ¯é€šçŸ¥æ¢ä»¶" -#: lib/RT/Scrip_Overlay.pm:175 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "手續新增完畢" @@ -4860,7 +5064,7 @@ msgstr "手續新增完畢" msgid "Scrip Name" msgstr "訊æ¯å稱" -#: html/Admin/Elements/EditScrips:83 +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "手續刪除完畢" @@ -4868,7 +5072,7 @@ msgstr "手續刪除完畢" msgid "Scrips" msgstr "手續" -#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:20 +#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:24 msgid "Scrips " msgstr "訊æ¯é€šçŸ¥" @@ -4880,7 +5084,7 @@ msgstr "%1 的手續\\n" msgid "Scrips which apply to all queues" msgstr "é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æ‰‹çºŒ" -#: html/Edit/Elements/104Buttons:75 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 html/Work/Elements/Tab:45 html/Work/Search/PickRestriction:102 +#: html/Edit/Elements/104Buttons:86 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 html/Work/Elements/Tab:45 html/Work/Search/PickRestriction:108 msgid "Search" msgstr "查詢" @@ -4896,7 +5100,7 @@ msgstr "簽核單查詢" msgid "Second-" msgstr "二" -#: html/Edit/Users/Info:40 +#: NOT FOUND IN SOURCE msgid "Second-level Users" msgstr "二階主管員工" @@ -4976,7 +5180,7 @@ msgstr "多é‡é¸é …" msgid "SelectSingle" msgstr "單一é¸é …" -#: html/Edit/Elements/PickUsers:85 html/Edit/Users/Add.html:78 +#: html/Edit/Elements/PickUsers:87 html/Edit/Users/Add.html:78 msgid "Selected users:" msgstr "新增å°è±¡ï¼š" @@ -4984,39 +5188,39 @@ msgstr "新增å°è±¡ï¼š" msgid "Self Service" msgstr "自助æœå‹™" -#: etc/initialdata.zh:131 etc/initialdata:113 +#: etc/initialdata:113 msgid "Send mail to all watchers" msgstr "寄信給所有視察員" -#: etc/initialdata.zh:127 etc/initialdata:109 +#: etc/initialdata:109 msgid "Send mail to all watchers as a \"comment\"" msgstr "以評論方å¼å¯„信給所有視察員" -#: etc/initialdata.zh:122 etc/initialdata:104 +#: etc/initialdata:104 msgid "Send mail to requestors and Ccs" msgstr "寄信給申請人åŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:117 etc/initialdata:99 +#: etc/initialdata:99 msgid "Send mail to requestors and Ccs as a comment" msgstr "以評論方å¼å¯„信給申請人åŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:96 etc/initialdata:78 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "寄信給申請人" -#: etc/initialdata.zh:135 etc/initialdata.zh:139 etc/initialdata:117 etc/initialdata:121 +#: etc/initialdata:117 etc/initialdata:121 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "寄信給特定的副本åŠå¯†ä»¶å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:112 etc/initialdata:94 +#: etc/initialdata:94 msgid "Sends mail to the administrative Ccs" msgstr "寄信給管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:108 etc/initialdata:90 +#: etc/initialdata:90 msgid "Sends mail to the administrative Ccs as a comment" msgstr "以評論寄信給管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:100 etc/initialdata.zh:104 etc/initialdata:82 etc/initialdata:86 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "寄信給申請人" @@ -5032,7 +5236,11 @@ msgstr "09" msgid "September" msgstr "乿œˆ" -#: html/Edit/Users/Info:38 +#: NOT FOUND IN SOURCE +msgid "Setting %1's 'Disabled' property to %2" +msgstr "%1 的「åœç”¨ã€å±¬æ€§å·²è¨­ç‚º %2" + +#: NOT FOUND IN SOURCE msgid "Shift Type" msgstr "ç­åˆ¥å±¬æ€§" @@ -5100,7 +5308,7 @@ msgstr "登記æˆç‚ºç”³è«‹äººæˆ–副本收件人" msgid "Sign up as a ticket or queue AdminCc" msgstr "登記æˆç‚ºç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/User/Prefs.html:111 html/Work/Preferences/Info:111 +#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/Edit/Users/Info:52 html/User/Prefs.html:148 html/Work/Preferences/Info:113 msgid "Signature" msgstr "ç°½åæª”" @@ -5124,7 +5332,7 @@ msgstr "é †åº" msgid "Sort key" msgstr "æŽ’åºæ–¹å¼" -#: html/Search/Elements/PickRestriction:108 html/Work/Search/PickRestriction:89 +#: html/Search/Elements/PickRestriction:108 html/Work/Search/PickRestriction:95 msgid "Sort results by" msgstr "çµæžœæŽ’åºæ–¹å¼" @@ -5132,7 +5340,7 @@ msgstr "çµæžœæŽ’åºæ–¹å¼" msgid "SortOrder" msgstr "排åºé †åº" -#: html/Work/Elements/List:8 html/Work/Elements/MyApprovals:11 +#: html/Admin/Elements/EditScrip:80 html/Edit/Global/Scrip/Top:75 html/Work/Elements/List:8 html/Work/Elements/MyApprovals:11 msgid "Stage" msgstr "é—œå¡" @@ -5152,7 +5360,7 @@ msgstr "延宕" msgid "Start page" msgstr "首é " -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:34 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 html/Work/Tickets/Elements/EditBasics:35 msgid "Started" msgstr "實際起始日" @@ -5160,7 +5368,7 @@ msgstr "實際起始日" msgid "Started date '%1' could not be parsed" msgstr "無法解讀起始日期 '%1" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:30 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 html/Work/Tickets/Elements/EditBasics:26 msgid "Starts" msgstr "應起始日" @@ -5172,19 +5380,19 @@ msgstr "應起始日" msgid "Starts date '%1' could not be parsed" msgstr "無法解讀起始日期 '%1" -#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:93 html/Work/Preferences/Info:83 +#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:126 html/Work/Preferences/Info:85 msgid "State" msgstr "å·ž" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:15 html/Work/Elements/MyRequests:18 html/Work/Elements/MyTickets:18 html/Work/Search/PickRestriction:54 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1182 lib/RT/Tickets_Overlay.pm:908 +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:15 html/Work/Elements/MyRequests:18 html/Work/Elements/MyTickets:18 html/Work/Search/PickRestriction:54 html/Work/Tickets/Elements/EditBasics:19 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1209 lib/RT/Tickets_Overlay.pm:927 msgid "Status" msgstr "ç¾æ³" -#: etc/initialdata.zh:317 etc/initialdata:294 +#: etc/initialdata:294 msgid "Status Change" msgstr "ç¾æ³æ”¹è®Šæ™‚" -#: lib/RT/Transaction_Overlay.pm:528 +#: lib/RT/Transaction_Overlay.pm:477 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "ç¾æ³å¾ž %1 改為 %2" @@ -5205,25 +5413,25 @@ msgstr "強制承辦申請單" msgid "StealTicket" msgstr "強制承辦申請單" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:545 #. ($Old->Name) msgid "Stolen from %1 " -msgstr "被 %1 å¼·åˆ¶æ›´æ› " +msgstr "承辦人從 %1 強制更æ›" -#: html/Edit/Groups/Member:69 +#: html/Edit/Groups/Member:68 msgid "Subgroup" msgstr "å­ç¾¤çµ„" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:16 html/Work/Elements/MyTickets:16 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Create.html:131 html/Work/Tickets/Elements/ShowBasics:36 lib/RT/Ticket_Overlay.pm:1178 lib/RT/Tickets_Overlay.pm:987 +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:16 html/Work/Elements/MyTickets:16 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Elements/AddSubject:8 html/Work/Tickets/Elements/EditBasics:8 html/Work/Tickets/Elements/ShowBasics:36 html/Work/Tickets/Elements/ShowSubject:8 lib/RT/Ticket_Overlay.pm:1205 lib/RT/Tickets_Overlay.pm:1006 msgid "Subject" msgstr "主題" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:567 #. ($self->Data) msgid "Subject changed to %1" msgstr "標題已改為 %1" -#: html/Elements/Submit:58 html/Work/Search/Bulk.html:103 +#: html/Edit/Users/Info:71 html/Elements/Submit:58 html/Work/Search/Bulk.html:103 msgid "Submit" msgstr "é€å‡º" @@ -5231,7 +5439,7 @@ msgstr "é€å‡º" msgid "Submit Workflow" msgstr "é€å‡ºæµç¨‹" -#: lib/RT/Group_Overlay.pm:748 +#: lib/RT/Group_Overlay.pm:746 msgid "Succeeded" msgstr "設定æˆåŠŸ" @@ -5247,6 +5455,18 @@ msgstr "星期日" msgid "SuperUser" msgstr "系統管ç†å“¡" +#: html/Edit/Global/Basic/Top:29 +msgid "Sync now" +msgstr "åŸ·è¡ŒåŒæ­¥" + +#: html/Edit/Global/Basic/Top:87 +msgid "Sync104HRMS" +msgstr "è‡ªå‹•åŒæ­¥104HRMS" + +#: NOT FOUND IN SOURCE +msgid "Synchronizing HRMS data. This may take a while..." +msgstr "æ­£åœ¨åŒæ­¥åŒ– HRMS 人事系統資料。請ç¨å¾…..." + #: html/User/Elements/DelegateRights:76 msgid "System" msgstr "系統" @@ -5255,7 +5475,7 @@ msgstr "系統" msgid "System Defined" msgstr "系統定義" -#: html/Admin/Elements/SelectRights:80 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:793 lib/RT/Interface/Web.pm:826 x:796 x:829 +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:856 lib/RT/Interface/Web.pm:886 msgid "System Error" msgstr "系統錯誤" @@ -5267,7 +5487,7 @@ msgstr "系統錯誤。設定權é™å¤±æ•—。" msgid "System Error. right not granted" msgstr "系統錯誤。設定權é™å¤±æ•—。" -#: html/Edit/Users/index.html:122 +#: html/Edit/Users/index.html:95 msgid "System Rights" msgstr "系統權é™" @@ -5291,11 +5511,11 @@ msgstr "系統群組" msgid "SystemInternal" msgstr "系統內部用" -#: etc/initialdata.zh:59 etc/initialdata.zh:65 etc/initialdata.zh:71 etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 msgid "SystemRolegroup for internal use" msgstr "內部使用的系統角色群組" -#: lib/RT/CurrentUser.pm:319 +#: lib/RT/CurrentUser.pm:318 msgid "TEST_STRING" msgstr "TEST_STRING" @@ -5315,11 +5535,11 @@ msgstr "自行承辦申請單" msgid "TakeTicket" msgstr "自行承辦申請單" -#: lib/RT/Transaction_Overlay.pm:573 +#: lib/RT/Transaction_Overlay.pm:530 msgid "Taken" msgstr "å·²å—ç†" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:88 msgid "Template" msgstr "範本" @@ -5344,7 +5564,7 @@ msgstr "通知範本å稱" msgid "Template deleted" msgstr "範本已刪除" -#: lib/RT/Scrip_Overlay.pm:152 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "找ä¸åˆ°ç¯„本" @@ -5352,7 +5572,7 @@ msgstr "找ä¸åˆ°ç¯„本" msgid "Template not found\\n" msgstr "找ä¸åˆ°ç¯„本\\n" -#: lib/RT/Template_Overlay.pm:352 +#: lib/RT/Template_Overlay.pm:359 msgid "Template parsed" msgstr "範本剖æžå®Œç•¢" @@ -5360,7 +5580,7 @@ msgstr "範本剖æžå®Œç•¢" msgid "Templates" msgstr "範本" -#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:19 +#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:23 msgid "Templates " msgstr "通知範本" @@ -5368,7 +5588,7 @@ msgstr "通知範本" msgid "Templates for %1\\n" msgstr "找ä¸åˆ° %1 的範本\\n" -#: lib/RT/Interface/Web.pm:894 x:897 +#: lib/RT/Interface/Web.pm:954 msgid "That is already the current value" msgstr "å·²ç¶“æ˜¯ç›®å‰æ¬„ä½çš„值" @@ -5376,7 +5596,7 @@ msgstr "å·²ç¶“æ˜¯ç›®å‰æ¬„ä½çš„值" msgid "That is not a value for this custom field" msgstr "這䏿˜¯è©²è‡ªè¨‚欄ä½çš„值" -#: lib/RT/Ticket_Overlay.pm:1899 +#: lib/RT/Ticket_Overlay.pm:1926 msgid "That is the same value" msgstr "åŒæ¨£çš„值" @@ -5389,7 +5609,7 @@ msgstr "這項單ä½å·²ç¶“æ“æœ‰è©²æ¬Šé™" msgid "That principal is already a %1 for this queue" msgstr "這項單ä½å·²ç¶“是這個表單的 %1" -#: lib/RT/Ticket_Overlay.pm:1433 +#: lib/RT/Ticket_Overlay.pm:1460 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "這項單ä½å·²ç¶“是這份申請單的 %1" @@ -5399,16 +5619,16 @@ msgstr "這項單ä½å·²ç¶“是這份申請單的 %1" msgid "That principal is not a %1 for this queue" msgstr "這項單ä½ä¸æ˜¯é€™å€‹è¡¨å–®çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1550 +#: lib/RT/Ticket_Overlay.pm:1577 #. ($args{'Type'}) msgid "That principal is not a %1 for this ticket" msgstr "這項單ä½ä¸æ˜¯é€™ä»½ç”³è«‹å–®çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1895 +#: lib/RT/Ticket_Overlay.pm:1922 msgid "That queue does not exist" msgstr "此表單ä¸å­˜åœ¨" -#: lib/RT/Ticket_Overlay.pm:3237 +#: lib/RT/Ticket_Overlay.pm:3293 msgid "That ticket has unresolved dependencies" msgstr "這份申請單有尚未解決的附屬申請單" @@ -5416,27 +5636,27 @@ msgstr "這份申請單有尚未解決的附屬申請單" msgid "That user already has that right" msgstr "使用者已具有該項權é™" -#: lib/RT/Ticket_Overlay.pm:3047 +#: lib/RT/Ticket_Overlay.pm:3097 msgid "That user already owns that ticket" msgstr "該使用者已經承辦這份申請單" -#: lib/RT/Ticket_Overlay.pm:3019 +#: lib/RT/Ticket_Overlay.pm:3069 msgid "That user does not exist" msgstr "使用者ä¸å­˜åœ¨" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:381 msgid "That user is already privileged" msgstr "這å使用者已經是內部æˆå“¡" -#: lib/RT/User_Overlay.pm:397 +#: lib/RT/User_Overlay.pm:402 msgid "That user is already unprivileged" msgstr "這å使用者屬於éžå…§éƒ¨æˆå“¡ç¾¤çµ„" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:394 msgid "That user is now privileged" msgstr "使用者加入內部æˆå“¡ç¾¤çµ„完畢" -#: lib/RT/User_Overlay.pm:410 +#: lib/RT/User_Overlay.pm:415 msgid "That user is now unprivileged" msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" @@ -5444,7 +5664,7 @@ msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" msgid "That user is now unprivilegedileged" msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" -#: lib/RT/Ticket_Overlay.pm:3040 +#: lib/RT/Ticket_Overlay.pm:3090 msgid "That user may not own tickets in that queue" msgstr "使用者å¯èƒ½æ²’有承辦表單裡的申請單" @@ -5464,7 +5684,7 @@ msgstr "申請單的副本收件人" msgid "The administrative CC of a ticket" msgstr "申請單的管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: lib/RT/Ticket_Overlay.pm:2226 +#: lib/RT/Ticket_Overlay.pm:2255 msgid "The comment has been recorded" msgstr "評論已被紀錄" @@ -5476,7 +5696,7 @@ msgstr "下列命令會找到 'general' 表單內所有é‹ä½œä¸­çš„申請單, msgid "The following commands were not proccessed:\\n\\n" msgstr "以下命令未被執行:\\n\\n" -#: lib/RT/Interface/Web.pm:897 x:900 +#: lib/RT/Interface/Web.pm:957 msgid "The new value has been set." msgstr "新的欄ä½å€¼è¨­å®šå®Œæˆã€‚" @@ -5504,7 +5724,7 @@ msgstr "申請單 %1 %2 (%3)\\n" msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "æ­¤å·¥å…·ç¨‹å¼æœƒè®“使用者經由 RT 執行任æ„命令。" -#: lib/RT/Transaction_Overlay.pm:251 +#: lib/RT/Transaction_Overlay.pm:200 msgid "This transaction appears to have no content" msgstr "此項更動報告沒有內容" @@ -5525,7 +5745,7 @@ msgstr "星期四" msgid "Thu." msgstr "星期四" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:163 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:163 html/Edit/Global/Workflow/Condition:24 msgid "Ticket" msgstr "申請單" @@ -5547,7 +5767,7 @@ msgstr "更新申請單 #%1 的全部資訊:%2" msgid "Ticket #%1: %2" msgstr "申請單 #%1: %2" -#: lib/RT/Ticket_Overlay.pm:605 lib/RT/Ticket_Overlay.pm:626 +#: lib/RT/Ticket_Overlay.pm:632 lib/RT/Ticket_Overlay.pm:653 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "申請單 #%1 æˆåŠŸæ–°å¢žæ–¼ '%2' 表單" @@ -5557,12 +5777,12 @@ msgstr "申請單 #%1 æˆåŠŸæ–°å¢žæ–¼ '%2' 表單" msgid "Ticket %1 loaded\\n" msgstr "載入申請單 %1\\n" -#: html/Search/Bulk.html:212 html/Work/Search/Bulk.html:169 +#: html/Search/Bulk.html:213 html/Work/Search/Bulk.html:169 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "申請單 %1:%2" -#: html/Edit/Queues/Basic/Top:28 html/Edit/Queues/List:16 html/Work/Queues/List:9 +#: html/Edit/Queues/Basic/Top:30 html/Edit/Queues/List:30 html/Work/Queues/List:9 msgid "Ticket Due" msgstr "è¡¨å–®è™•ç†æœŸé™" @@ -5583,11 +5803,11 @@ msgstr "申請單編號" msgid "Ticket Processing Due" msgstr "表單é‹è¡ŒæœŸé™" -#: etc/initialdata.zh:332 etc/initialdata:309 +#: etc/initialdata:309 msgid "Ticket Resolved" msgstr "申請單已解決" -#: html/Edit/Queues/Basic/Top:18 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:7 html/Edit/Queues/index.html:31 html/Work/Delegates/List:7 html/Work/Delegates/index.html:11 html/Work/Elements/List:12 html/Work/Elements/SelectSearch:9 html/Work/Queues/List:6 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:11 html/Work/Tickets/Create.html:44 html/Work/Tickets/Elements/ShowBasics:34 +#: html/Edit/Queues/Basic/Top:20 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:21 html/Work/Delegates/List:7 html/Work/Delegates/index.html:11 html/Work/Elements/List:12 html/Work/Elements/SelectSearch:9 html/Work/Queues/List:6 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:11 html/Work/Tickets/Create.html:43 html/Work/Tickets/Elements/ShowBasics:34 msgid "Ticket Type" msgstr "表單種類" @@ -5595,19 +5815,19 @@ msgstr "表單種類" msgid "Ticket attachment" msgstr "申請單附件" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1185 msgid "Ticket content" msgstr "申請單內容" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1231 msgid "Ticket content type" msgstr "申請單內容類別" -#: lib/RT/Ticket_Overlay.pm:496 lib/RT/Ticket_Overlay.pm:505 lib/RT/Ticket_Overlay.pm:515 lib/RT/Ticket_Overlay.pm:615 +#: lib/RT/Ticket_Overlay.pm:520 lib/RT/Ticket_Overlay.pm:529 lib/RT/Ticket_Overlay.pm:539 lib/RT/Ticket_Overlay.pm:642 msgid "Ticket could not be created due to an internal error" msgstr "內部錯誤,無法新增申請單" -#: lib/RT/Transaction_Overlay.pm:520 +#: lib/RT/Transaction_Overlay.pm:469 msgid "Ticket created" msgstr "申請單新增完畢" @@ -5615,7 +5835,7 @@ msgstr "申請單新增完畢" msgid "Ticket creation failed" msgstr "申請單新增失敗" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:474 msgid "Ticket deleted" msgstr "申請單刪除完畢" @@ -5631,7 +5851,7 @@ msgstr "申請單刪除完畢" msgid "Ticket not found" msgstr "找ä¸åˆ°ç”³è«‹å–®" -#: etc/initialdata.zh:318 etc/initialdata:295 +#: etc/initialdata:295 msgid "Ticket status changed" msgstr "ç”³è«‹å–®ç¾æ³å·²æ”¹è®Š" @@ -5643,12 +5863,12 @@ msgstr "申請單視察員" msgid "Tickets" msgstr "申請單" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1402 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "申請單 %1 %2" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1367 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "申請單 %1 (%2)" @@ -5670,15 +5890,15 @@ msgstr "%1 的申請單" msgid "Tickets which depend on this approval:" msgstr "æ‰¹å‡†ä¹‹å¾Œï¼Œå¯æŽ¥çºŒè™•ç†ï¼š" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 html/Work/Tickets/Elements/EditBasics:32 msgid "Time Left" msgstr "剩餘時間" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 html/Work/Tickets/Elements/EditBasics:24 msgid "Time Worked" msgstr "è™•ç†æ™‚é–“" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1158 msgid "Time left" msgstr "剩餘時間" @@ -5686,7 +5906,7 @@ msgstr "剩餘時間" msgid "Time to display" msgstr "顯示時間" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1134 msgid "Time worked" msgstr "å·²è™•ç†æ™‚é–“" @@ -5694,7 +5914,7 @@ msgstr "å·²è™•ç†æ™‚é–“" msgid "TimeLeft" msgstr "剩餘時間" -#: lib/RT/Ticket_Overlay.pm:1183 +#: lib/RT/Ticket_Overlay.pm:1210 msgid "TimeWorked" msgstr "å·²è™•ç†æ™‚é–“" @@ -5706,32 +5926,40 @@ msgstr "產生這次更動的差異檔:" msgid "To generate a diff of this commit:\\n" msgstr "產生這次更動的差異檔:\\n" -#: lib/RT/Ticket_Overlay.pm:1186 +#: lib/RT/Ticket_Overlay.pm:1213 msgid "Told" msgstr "告知日期" -#: html/Edit/Elements/Page:46 +#: html/Edit/Elements/Page:47 msgid "Total" msgstr "é " -#: etc/initialdata.zh:239 etc/initialdata:237 +#: etc/initialdata:237 msgid "Transaction" msgstr "æ›´å‹•" -#: lib/RT/Transaction_Overlay.pm:640 +#: lib/RT/Transaction_Overlay.pm:666 #. ($self->Data) msgid "Transaction %1 purged" msgstr "清除更動報告 %1" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:126 msgid "Transaction Created" msgstr "更動報告已新增" -#: lib/RT/Transaction_Overlay.pm:88 +#: lib/RT/Transaction_Overlay.pm:90 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "未指定申請單編號,無法新增更動" -#: lib/RT/Transaction_Overlay.pm:699 +#: NOT FOUND IN SOURCE +msgid "TransactionBatch" +msgstr "批次更動時" + +#: NOT FOUND IN SOURCE +msgid "TransactionCreate" +msgstr "新增更動時" + +#: lib/RT/Transaction_Overlay.pm:721 msgid "Transactions are immutable" msgstr "ä¸å¯æ›´æ”¹æ›´å‹•報告" @@ -5747,7 +5975,7 @@ msgstr "星期二" msgid "Tue." msgstr "星期二" -#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1184 lib/RT/Tickets_Overlay.pm:959 +#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1211 lib/RT/Tickets_Overlay.pm:978 msgid "Type" msgstr "類別" @@ -5763,7 +5991,7 @@ msgstr "外部系統登入帳號" msgid "UnixUsername" msgstr "外部系統登入帳號" -#: lib/RT/Attachment_Overlay.pm:266 lib/RT/Attachment_Overlay.pm:298 +#: lib/RT/Attachment_Overlay.pm:281 lib/RT/Attachment_Overlay.pm:313 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "ä¸å¯è§£çš„å…§å®¹æ–‡å­—ç·¨ç¢¼æ–¹å¼ %1" @@ -5772,11 +6000,11 @@ msgstr "ä¸å¯è§£çš„å…§å®¹æ–‡å­—ç·¨ç¢¼æ–¹å¼ %1" msgid "Unlimited" msgstr "全數顯示" -#: etc/initialdata.zh:50 etc/initialdata:32 +#: etc/initialdata:32 msgid "Unprivileged" msgstr "éžå…§éƒ¨æˆå“¡" -#: lib/RT/Transaction_Overlay.pm:569 +#: lib/RT/Transaction_Overlay.pm:526 msgid "Untaken" msgstr "未被å—ç†" @@ -5784,7 +6012,7 @@ msgstr "未被å—ç†" msgid "Up" msgstr "上一é " -#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:82 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:97 +#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:83 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:63 msgid "Update" msgstr "處ç†" @@ -5808,7 +6036,7 @@ msgstr "æ›´æ–°é›»å­éƒµä»¶ä¿¡ç®±" msgid "Update name" msgstr "更新帳號" -#: lib/RT/Interface/Web.pm:409 x:412 +#: lib/RT/Interface/Web.pm:467 msgid "Update not recorded." msgstr "更新未被記錄" @@ -5828,21 +6056,21 @@ msgstr "更新申請單" msgid "Update ticket # %1" msgstr "更新申請單 # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:46 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "更新申請單 #%1" -#: html/Ticket/Update.html:138 html/Work/Tickets/Update.html:122 +#: html/Ticket/Update.html:139 #. ($Ticket->id, $Ticket->Subject) msgid "Update ticket #%1 (%2)" msgstr "更新申請單 #%1 (%2)" -#: lib/RT/Interface/Web.pm:407 x:410 +#: lib/RT/Interface/Web.pm:465 msgid "Update type was neither correspondence nor comment." msgstr "更新的內容並éžç”³è«‹å–®å›žè¦†ä¹Ÿä¸æ˜¯è©•è«–" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:50 lib/RT/Ticket_Overlay.pm:1187 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1214 msgid "Updated" msgstr "剿¬¡æ›´æ–°" @@ -5866,23 +6094,23 @@ msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'" msgid "User '%1' not found\\n" msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'\\n" -#: etc/initialdata.zh:142 etc/initialdata.zh:209 etc/initialdata:124 etc/initialdata:191 +#: etc/initialdata:124 etc/initialdata:191 msgid "User Defined" msgstr "使用者自訂" -#: html/Admin/Users/Prefs.html:58 html/Edit/Users/List:13 html/Edit/Users/Top:42 +#: html/Admin/Users/Prefs.html:58 msgid "User ID" msgstr "使用者 ID" -#: html/Elements/SelectUsers:25 +#: html/Edit/Elements/SelectUsers:3 html/Elements/SelectUsers:25 msgid "User Id" msgstr "使用者 ID" -#: html/Edit/Elements/PickUsers:12 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/List:5 html/Edit/Users/Search.html:23 html/Edit/Users/Top:8 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 +#: html/Edit/Elements/PickUsers:12 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/Search.html:23 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 msgid "User Number" msgstr "員工編號" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:22 +#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:26 msgid "User Rights" msgstr "使用者權é™" @@ -5890,7 +6118,7 @@ msgstr "使用者權é™" msgid "User Setup" msgstr "使用者設定" -#: html/Edit/Users/Info:37 +#: NOT FOUND IN SOURCE msgid "User Shift" msgstr "å“¡å·¥ç­åˆ¥" @@ -5899,15 +6127,23 @@ msgstr "å“¡å·¥ç­åˆ¥" msgid "User could not be created: %1" msgstr "無法新增使用者:%1" -#: lib/RT/User_Overlay.pm:321 +#: lib/RT/User_Overlay.pm:326 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/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "使用者定義的群組" -#: lib/RT/User_Overlay.pm:575 lib/RT/User_Overlay.pm:592 +#: lib/RT/User_Overlay.pm:580 lib/RT/User_Overlay.pm:597 msgid "User loaded" msgstr "已載入使用者" @@ -5915,6 +6151,10 @@ msgstr "已載入使用者" msgid "User notified" msgstr "已通知使用者" +#: NOT FOUND IN SOURCE +msgid "User renamed from %1 to %2" +msgstr "使用者 %1 已改å為 %2" + #: html/Admin/Users/Prefs.html:24 html/Admin/Users/Prefs.html:28 msgid "User view" msgstr "使用者ç§äººè³‡æ–™" @@ -5927,7 +6167,7 @@ msgstr "使用者自定" msgid "Username" msgstr "帳號" -#: 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 html/Work/Tickets/Elements/ShowTransaction:8 +#: 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/Edit/Groups/Admin:9 html/User/Groups/Members.html:57 html/Work/Tickets/Elements/ShowTransaction:11 msgid "Users" msgstr "使用者" @@ -5935,7 +6175,7 @@ msgstr "使用者" msgid "Users matching search criteria" msgstr "ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„使用者" -#: html/Search/Elements/PickRestriction:50 html/Work/Search/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "鏿“‡è¡¨å–®" @@ -5955,7 +6195,7 @@ msgstr "以管ç†å“¡å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è¦–察" msgid "Watcher loaded" msgstr "æˆåŠŸè¼‰å…¥è¦–å¯Ÿå“¡è³‡è¨Š" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:41 html/Edit/Elements/SelectQueues:5 msgid "Watchers" msgstr "視察員" @@ -5971,55 +6211,55 @@ msgstr "星期三" msgid "Wed." msgstr "星期三" -#: etc/initialdata.zh:533 etc/initialdata:503 etc/upgrade/2.1.71:161 html/Edit/Elements/CreateApprovalsQueue:135 +#: etc/initialdata:503 etc/upgrade/2.1.71:161 html/Edit/Elements/CreateApprovalsQueue:135 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "ç•¶ç”³è«‹å–®é€šéŽæ‰€æœ‰ç°½æ ¸å¾Œï¼Œå°‡æ­¤è¨Šæ¯å›žè¦†åˆ°åŽŸç”³è«‹å–®" -#: etc/initialdata.zh:497 etc/initialdata:467 etc/upgrade/2.1.71:135 html/Edit/Elements/CreateApprovalsQueue:107 +#: etc/initialdata:467 etc/upgrade/2.1.71:135 html/Edit/Elements/CreateApprovalsQueue:107 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "ç•¶ç”³è«‹å–®é€šéŽæŸé …簽核後,將此訊æ¯å›žè¦†åˆ°åŽŸç”³è«‹å–®" -#: etc/initialdata.zh:156 etc/initialdata:138 +#: etc/initialdata:138 msgid "When a ticket is created" msgstr "新增申請單時" -#: etc/initialdata.zh:428 etc/initialdata:400 etc/upgrade/2.1.71:79 html/Edit/Elements/CreateApprovalsQueue:51 +#: etc/initialdata:400 etc/upgrade/2.1.71:79 html/Edit/Elements/CreateApprovalsQueue:51 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "簽核單新增之後,通知應å—ç†çš„æ‰¿è¾¦äººåŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata.zh:161 etc/initialdata:143 +#: etc/initialdata:143 msgid "When anything happens" msgstr "當任何事情發生時" -#: etc/initialdata.zh:202 etc/initialdata:184 +#: etc/initialdata:184 msgid "Whenever a ticket is resolved" msgstr "當申請單解決時" -#: etc/initialdata.zh:188 etc/initialdata:170 +#: etc/initialdata:170 msgid "Whenever a ticket's owner changes" msgstr "ç•¶ç”³è«‹å–®æ›´æ›æ‰¿è¾¦äººæ™‚" -#: etc/initialdata.zh:196 etc/initialdata:178 +#: etc/initialdata:178 msgid "Whenever a ticket's queue changes" msgstr "當申請單更æ›è¡¨å–®æ™‚" -#: etc/initialdata.zh:180 etc/initialdata:162 +#: etc/initialdata:162 msgid "Whenever a ticket's status changes" msgstr "ç•¶ç”³è«‹å–®æ›´æ–°ç¾æ³æ™‚" -#: etc/initialdata.zh:210 etc/initialdata:192 +#: etc/initialdata:192 msgid "Whenever a user-defined condition occurs" msgstr "當使用者自訂的情æ³ç™¼ç”Ÿæ™‚" -#: etc/initialdata.zh:174 etc/initialdata:156 +#: etc/initialdata:156 msgid "Whenever comments come in" msgstr "ç•¶è©•è«–é€é”時" -#: etc/initialdata.zh:167 etc/initialdata:149 +#: etc/initialdata:149 msgid "Whenever correspondence comes in" msgstr "當回覆é€é”時" -#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:51 html/Work/Preferences/Info:34 +#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:67 html/Work/Preferences/Info:36 msgid "Work" msgstr "å…¬å¸" @@ -6048,23 +6288,35 @@ msgstr "æµç¨‹çµæŸ" msgid "Workflow deleted" msgstr "æµç¨‹å·²åˆªé™¤" -#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:21 +#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:25 msgid "Workflows" msgstr "æµç¨‹" -#: html/Edit/Global/Basic/Top:25 +#: html/Edit/Global/CustomField/SelectWritable:5 +msgid "Writable" +msgstr "å¯è®€å¯«" + +#: html/autohandler:144 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "XXX CHANGEME 您是未經授權的使用者" + +#: html/Edit/Global/Basic/Top:25 html/Edit/Queues/Basic/Top:82 msgid "Yes" msgstr "是" -#: lib/RT/Ticket_Overlay.pm:3150 +#: lib/RT/Ticket_Overlay.pm:3200 msgid "You already own this ticket" msgstr "您已是這份申請單的承辦人" -#: html/autohandler:122 +#: html/autohandler:136 msgid "You are not an authorized user" msgstr "æ‚¨ä¸æ˜¯è¢«æŽˆæ¬Šçš„使用者" -#: lib/RT/Ticket_Overlay.pm:3032 +#: html/Ticket/Elements/ShowTransaction:81 +msgid "You can access it with the Download button on the right." +msgstr "您å¯ä»¥æŒ‰å³æ–¹çš„「下載ã€éµä¾†å–得。" + +#: lib/RT/Ticket_Overlay.pm:3082 msgid "You can only reassign tickets that you own or that are unowned" msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿è¾¦æˆ–是沒有承辦人的申請單" @@ -6072,7 +6324,7 @@ msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿è¾¦æˆ–是沒有承辦人的申請單" msgid "You don't have permission to view that ticket.\\n" msgstr "您沒有看那份申請單的權é™ã€‚\\n" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "您會在表單 %2 找到 %1 的申請單" @@ -6085,11 +6337,11 @@ msgstr "您已登出 RT。" msgid "You have no permission to create tickets in that queue." msgstr "您沒有在該表單新增申請單的權é™ã€‚" -#: lib/RT/Ticket_Overlay.pm:1908 +#: lib/RT/Ticket_Overlay.pm:1935 msgid "You may not create requests in that queue." msgstr "您ä¸èƒ½åœ¨è©²è¡¨å–®ä¸­æå‡ºç”³è«‹ã€‚" -#: html/Edit/Global/Basic/Top:38 +#: html/Edit/Global/Basic/Top:42 msgid "You need to restart the Request Tracker service for saved changes to take effect." msgstr "æ‚¨å¿…é ˆé‡æ–°å•Ÿå‹• Request Tracker æœå‹™ï¼Œå„²å­˜çš„æ›´å‹•纔會生效。" @@ -6105,11 +6357,11 @@ msgstr "您æå‡ºçš„ %1 申請單" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "RT 管ç†å“¡å¯èƒ½è¨­éŒ¯äº†ç”± RT 寄出的郵件收件人標頭檔" -#: etc/initialdata.zh:514 etc/initialdata:484 etc/upgrade/2.1.71:146 html/Edit/Elements/CreateApprovalsQueue:119 +#: etc/initialdata:484 etc/upgrade/2.1.71:146 html/Edit/Elements/CreateApprovalsQueue:119 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "申請單已由 %1 批准。å¯èƒ½é‚„有其他待簽核的步驟。" -#: etc/initialdata.zh:552 etc/initialdata:522 etc/upgrade/2.1.71:180 html/Edit/Elements/CreateApprovalsQueue:154 +#: etc/initialdata:522 etc/upgrade/2.1.71:180 html/Edit/Elements/CreateApprovalsQueue:154 msgid "Your request has been approved." msgstr "您的申請單已完æˆç°½æ ¸ç¨‹åºã€‚" @@ -6117,7 +6369,7 @@ msgstr "您的申請單已完æˆç°½æ ¸ç¨‹åºã€‚" msgid "Your request was rejected" msgstr "您的申請單已被é§å›ž" -#: etc/initialdata.zh:455 +#: NOT FOUND IN SOURCE msgid "Your request was rejected by %1." msgstr "您的申請單已被 %1 é§å›žã€‚" @@ -6125,11 +6377,11 @@ msgstr "您的申請單已被 %1 é§å›žã€‚" msgid "Your request was rejected." msgstr "您的申請單已被é§å›žã€‚" -#: html/autohandler:144 +#: html/autohandler:170 msgid "Your username or password is incorrect" msgstr "您的帳號或密碼有誤" -#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:95 html/Work/Preferences/Info:85 +#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:130 html/Work/Preferences/Info:87 msgid "Zip" msgstr "郵éžå€è™Ÿ" @@ -6145,6 +6397,10 @@ msgstr "éŽæœŸ" msgid "alert" msgstr "急訊" +#: NOT FOUND IN SOURCE +msgid "approving" +msgstr "待簽核" + #: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" @@ -6166,11 +6422,11 @@ msgstr "內容" msgid "content-type" msgstr "類型" -#: lib/RT/Ticket_Overlay.pm:2295 +#: lib/RT/Ticket_Overlay.pm:2326 msgid "correspondence (probably) not sent" msgstr "申請單回覆(å¯èƒ½)未é€å‡º" -#: lib/RT/Ticket_Overlay.pm:2305 +#: lib/RT/Ticket_Overlay.pm:2336 msgid "correspondence sent" msgstr "申請單回覆已é€å‡º" @@ -6178,7 +6434,7 @@ msgstr "申請單回覆已é€å‡º" msgid "critical" msgstr "åš´é‡" -#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:31 html/Edit/Queues/List:18 html/Work/Queues/List:11 lib/RT/Date.pm:319 +#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:34 html/Edit/Queues/List:32 html/Work/Queues/List:11 lib/RT/Date.pm:319 msgid "days" msgstr "天" @@ -6247,11 +6503,11 @@ msgstr "編號" msgid "info" msgstr "資訊" -#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:69 +#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:75 msgid "is" msgstr "是" -#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:70 +#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:76 msgid "isn't" msgstr "䏿˜¯" @@ -6287,11 +6543,15 @@ msgstr "月" msgid "new" msgstr "新建立" +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "沒有å稱" + #: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "沒有值" -#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/Basic/Top:50 html/Edit/Queues/List:18 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:11 html/Work/Tickets/Elements/ShowBasics:27 +#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/List:32 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:11 html/Work/Tickets/Elements/EditWatchers:5 html/Work/Tickets/Elements/ShowAttachments:30 html/Work/Tickets/Elements/ShowBasics:27 msgid "none" msgstr "ç„¡" @@ -6333,11 +6593,11 @@ msgstr "表單 %1 %2" msgid "rejected" msgstr "å·²é§å›ž" -#: html/Work/Elements/SelectSearch:21 lib/RT/Queue_Overlay.pm:60 +#: lib/RT/Queue_Overlay.pm:60 msgid "resolved" msgstr "已處ç†" -#: html/Edit/Global/Basic/Top:48 +#: html/Edit/Global/Basic/Top:53 msgid "rtname" msgstr "伺æœå™¨å稱" @@ -6363,16 +6623,21 @@ msgstr "系統群組 '%1'" msgid "the calling component did not specify why" msgstr "呼å«å…ƒä»¶æœªæŒ‡æ˜ŽåŽŸå› " +#: lib/RT/URI/fsck_com_rt.pm:234 +#. ($self->Object->Id) +msgid "ticket #%1" +msgstr "申請單 #%1" + #: lib/RT/Group_Overlay.pm:209 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "申請單 #%1 %2" -#: html/Work/Elements/SelectSearch:27 +#: html/Work/Elements/SelectSearch:28 msgid "till" msgstr "至" -#: html/Edit/Elements/PickUsers:15 html/Edit/Global/Workflow/Condition:30 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 +#: html/Edit/Elements/PickUsers:15 html/Edit/Global/Workflow/Condition:31 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 msgid "to" msgstr "到" @@ -6385,7 +6650,7 @@ msgstr "真" msgid "undescribed group %1" msgstr "沒有æè¿°çš„群組 %1" -#: html/Work/Elements/SelectSearch:19 +#: NOT FOUND IN SOURCE msgid "unresolved" msgstr "未處ç†" @@ -6410,7 +6675,3 @@ msgstr "範本:%1" msgid "years" msgstr "å¹´" -#: lib/RT/Date.pm:331 -msgid "approving" -msgstr "待簽核" - diff --git a/rt/lib/RT/Interface/Email.pm b/rt/lib/RT/Interface/Email.pm index bc1a55da2..241f5f35c 100755 --- a/rt/lib/RT/Interface/Email.pm +++ b/rt/lib/RT/Interface/Email.pm @@ -27,14 +27,14 @@ use strict; use Mail::Address; use MIME::Entity; use RT::EmailParser; - +use File::Temp; BEGIN { 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.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker + $VERSION = do { my @r = (q$Revision: 1.1.1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw(Exporter); @@ -153,6 +153,7 @@ sub MailError { Subject => 'There has been an error', Explanation => 'Unexplained error', MIMEObj => undef, + Attach => undef, LogLevel => 'crit', @_); @@ -175,7 +176,13 @@ sub MailError { $mimeobj->sync_headers(); $entity->add_part($mimeobj); } - + + if ($args{'Attach'}) { + $entity->attach(Data => $args{'Attach'}, Type => 'message/rfc822'); + + } + + if ($RT::MailCommand eq 'sendmailpipe') { open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); print MAIL $entity->as_string; @@ -194,12 +201,6 @@ sub CreateUser { 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, @@ -361,36 +362,108 @@ sub ParseAddressFromHeader{ -=head2 Gateway +=head2 Gateway ARGSREF + + +Takes parameters: + + action + queue + message + 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. +Returns: + + An array of: + + (status code, message, optional ticket object) + + status code is a numeric value. + + for temporary failures, status code should be -75 + + for permanent failures which are handled by RT, status code should be 0 + + for succces, the status code should be 1 + + + =cut sub Gateway { - my %args = ( message => undef, - queue => 1, - action => 'correspond', - ticket => undef, - @_ ); + my $argsref = shift; + + my %args = %$argsref; + + # Set some reasonable defaults + $args{'action'} = 'correspond' unless ( $args{'action'} ); + $args{'queue'} = '1' unless ( $args{'queue'} ); # Validate the action unless ( $args{'action'} =~ /^(comment|correspond|action)$/ ) { # Can't safely loc this. What object do we loc around? - return ( 0, "Invalid 'action' parameter", undef ); + $RT::Logger->crit("Mail gateway called with an invalid action paramenter '".$args{'action'}."' for queue '".$args{'queue'}."'"); + + return ( -75, "Invalid 'action' parameter", undef ); } my $parser = RT::EmailParser->new(); - $parser->ParseMIMEEntityFromScalar( $args{'message'} ); + my ( $fh, $temp_file ); + for ( 1 .. 10 ) { + + # on NFS and NTFS, it is possible that tempfile() conflicts + # with other processes, causing a race condition. we try to + # accommodate this by pausing and retrying. + last if ( $fh, $temp_file ) = eval { File::Temp::tempfile(undef, UNLINK => 0) }; + sleep 1; + } + if ($fh) { + binmode $fh; #thank you, windows + $fh->autoflush(1); + print $fh $args{'message'}; + close($fh); + + if ( -f $temp_file ) { + $parser->ParseMIMEEntityFromFile($temp_file); + File::Temp::unlink0( $fh, $temp_file ); + if ($parser->Entity) { + delete $args{'message'}; + } + } + + } + + #If for some reason we weren't able to parse the message using a temp file + # try it with a scalar + if ($args{'message'}) { + $parser->ParseMIMEEntityFromScalar($args{'message'}); + + } + + if (!$parser->Entity()) { + MailError( + To => $RT::OwnerEmail, + 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 $Message = $parser->Entity(); - my $head = $Message->head; + my $head = $Message->head; my ( $CurrentUser, $AuthStat, $status, $error ); + # Initalize AuthStat so comparisons work correctly + $AuthStat = -9999999; + my $ErrorsTo = ParseErrorsToAddressFromHead($head); my $MessageId = $head->get('Message-Id') @@ -400,37 +473,31 @@ sub Gateway { my $Subject = $head->get('Subject') || ''; chomp $Subject; - $args{'ticket'} ||= $parser->ParseTicketId($Subject); my $SystemTicket; - if ($args{'ticket'} ) { + if ( $args{'ticket'} ) { $SystemTicket = RT::Ticket->new($RT::SystemUser); - $SystemTicket->Load($args{'ticket'}); + $SystemTicket->Load( $args{'ticket'} ); } #Set up a queue object 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 ( $args{'ticket'} || $SystemQueueObj->id ) { - MailError( - 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 ); + return ( -75, "RT couldn't find the queue: " . $args{'queue'}, undef ); } # 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 - push @RT::MailPlugins, "Auth::MailFrom" unless @RT::MailPlugins; + push @RT::MailPlugins, "Auth::MailFrom" unless @RT::MailPlugins; + # Since this needs loading, no matter what for (@RT::MailPlugins) { @@ -453,35 +520,59 @@ sub Gateway { } } - ( $CurrentUser, $NewAuthStat ) = $Code->( Message => $Message, - CurrentUser => $CurrentUser, - AuthLevel => $AuthStat, - Action => $args{'action'}, - Ticket => $SystemTicket, - Queue => $SystemQueueObj ); + ( $CurrentUser, $NewAuthStat ) = $Code->( + Message => $Message, + CurrentUser => $CurrentUser, + AuthLevel => $AuthStat, + Action => $args{'action'}, + Ticket => $SystemTicket, + Queue => $SystemQueueObj + ); + + # If a module returns a "-1" then we discard the ticket, so. + $AuthStat = -1 if $NewAuthStat == -1; # You get the highest level of authentication you were assigned. - last if $AuthStat == -1; $AuthStat = $NewAuthStat if $NewAuthStat > $AuthStat; + last if $AuthStat == -1; } # {{{ If authentication fails and no new user was created, get out. if ( !$CurrentUser or !$CurrentUser->Id or $AuthStat == -1 ) { # If the plugins refused to create one, they lose. - MailError( - Subject => "Could not load a valid user", - Explanation => <<EOT, + unless ( $AuthStat == -1 ) { + + # Notify the RT Admin of the failure. + # XXX Should this be configurable? + MailError( + To => $RT::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 your email. +for the creation of a new user for this email ($ErrorsTo). -Your RT administrator needs to grant 'Everyone' the right 'CreateTicket' -for this queue. +You might need to grant 'Everyone' the right 'CreateTicket' for the +queue @{[$args{'queue'}]}. EOT - MIMEObj => $Message, - LogLevel => 'error' ) - unless $AuthStat == -1; + MIMEObj => $Message, + LogLevel => 'error' + ); + + # Also notify the requestor that his request has been dropped. + MailError( + To => $ErrorsTo, + 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. + +EOT + MIMEObj => $Message, + LogLevel => 'error' + ); + } return ( 0, "Could not load a valid user", undef ); } @@ -508,10 +599,11 @@ EOT # {{{ 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 ); + To => $ErrorsTo, + Subject => "Permission Denied", + Explanation => "You do not have permission to communicate with RT", + MIMEObj => $Message + ); } # }}} @@ -523,10 +615,12 @@ EOT #Should we mail it to RTOwner? if ($RT::LoopsToRTOwner) { - MailError( To => $RT::OwnerEmail, - Subject => "RT Bounce: $Subject", - Explanation => "RT thinks this message may be a bounce", - MIMEObj => $Message ); + 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, "Message Bounced", undef ) unless ($RT::StoreLoops); @@ -538,8 +632,10 @@ EOT # {{{ 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'); } @@ -564,22 +660,27 @@ EOT my @Requestors = ( $CurrentUser->id ); if ($RT::ParseNewMessageForTicketCcs) { - @Cc = ParseCcAddressesFromHead( Head => $head, - CurrentUser => $CurrentUser, - QueueObj => $SystemQueueObj ); + @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 ); + 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 ); + 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 ); } @@ -591,15 +692,17 @@ EOT # If the action is comment, add a comment. elsif ( $args{'action'} =~ /^(comment|correspond)$/i ) { - $Ticket->Load($args{'ticket'}); + $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 $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 ); @@ -612,10 +715,12 @@ EOT unless ($status) { #Warn the sender that we couldn't actually submit the comment. - MailError( To => $ErrorsTo, - Subject => "Message not recorded", - Explanation => $msg, - MIMEObj => $Message ); + MailError( + To => $ErrorsTo, + Subject => "Message not recorded", + Explanation => $msg, + MIMEObj => $Message + ); return ( 0, "Message not recorded", $Ticket ); } } @@ -623,21 +728,28 @@ EOT else { #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 ); + 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 ( + -75, + "Configuration error: " + . $args{'action'} + . " not a recognized action", + $Ticket + ); } - -return ( 1, "Success", $Ticket ); + return ( 1, "Success", $Ticket ); } eval "require RT::Interface::Email_Vendor"; diff --git a/rt/lib/RT/Interface/REST.pm b/rt/lib/RT/Interface/REST.pm new file mode 100644 index 000000000..1ec4f21f9 --- /dev/null +++ b/rt/lib/RT/Interface/REST.pm @@ -0,0 +1,252 @@ +# 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. +# +# 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 +# lib/RT/Interface/REST.pm +# + +package RT::Interface::REST; +use strict; +use RT; + +BEGIN { + use Exporter (); + use vars qw($VERSION @ISA @EXPORT); + + $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d"x$#r, @r }; + + @ISA = qw(Exporter); + @EXPORT = qw(expand_list form_parse form_compose vpush vsplit); +} + +my $field = '[a-zA-Z][a-zA-Z0-9_-]*'; + +sub expand_list { + my ($list) = @_; + my ($elt, @elts, %elts); + + foreach $elt (split /,/, $list) { + if ($elt =~ /^(\d+)-(\d+)$/) { push @elts, ($1..$2) } + else { push @elts, $elt } + } + + @elts{@elts}=(); + return sort {$a<=>$b} keys %elts; +} + +# Returns a reference to an array of parsed forms. +sub form_parse { + my $state = 0; + my @forms = (); + my @lines = split /\n/, $_[0]; + my ($c, $o, $k, $e) = ("", [], {}, ""); + + LINE: + while (@lines) { + my $line = shift @lines; + + next LINE if $line eq ''; + + if ($line eq '--') { + # We reached the end of one form. We'll ignore it if it was + # empty, and store it otherwise, errors and all. + if ($e || $c || @$o) { + push @forms, [ $c, $o, $k, $e ]; + $c = ""; $o = []; $k = {}; $e = ""; + } + $state = 0; + } + elsif ($state != -1) { + if ($state == 0 && $line =~ /^#/) { + # Read an optional block of comments (only) at the start + # of the form. + $state = 1; + $c = $line; + while (@lines && $lines[0] =~ /^#/) { + $c .= "\n".shift @lines; + } + $c .= "\n"; + } + elsif ($state <= 1 && $line =~ /^($field):(?:\s+(.*))?$/) { + # Read a field: value specification. + my $f = $1; + my @v = ($2 || ()); + + # Read continuation lines, if any. + while (@lines && ($lines[0] eq '' || $lines[0] =~ /^\s+/)) { + push @v, shift @lines; + } + pop @v while (@v && $v[-1] eq ''); + + # Strip longest common leading indent from text. + my ($ws, $ls) = (""); + foreach $ls (map {/^(\s+)/} @v[1..$#v]) { + $ws = $ls if (!$ws || length($ls) < length($ws)); + } + s/^$ws// foreach @v; + + push(@$o, $f) unless exists $k->{$f}; + vpush($k, $f, join("\n", @v)); + + $state = 1; + } + elsif ($line !~ /^#/) { + # We've found a syntax error, so we'll reconstruct the + # form parsed thus far, and add an error marker. (>>) + $state = -1; + $e = form_compose([[ "", $o, $k, "" ]]); + $e.= $line =~ /^>>/ ? "$line\n" : ">> $line\n"; + } + } + else { + # We saw a syntax error earlier, so we'll accumulate the + # contents of this form until the end. + $e .= "$line\n"; + } + } + push(@forms, [ $c, $o, $k, $e ]) if ($e || $c || @$o); + + my $l; + foreach $l (keys %$k) { + $k->{$l} = vsplit($k->{$l}) if (ref $k->{$l} eq 'ARRAY'); + } + + return \@forms; +} + +# Returns text representing a set of forms. +sub form_compose { + my ($forms) = @_; + my (@text, $form); + + foreach $form (@$forms) { + my ($c, $o, $k, $e) = @$form; + my $text = ""; + + if ($c) { + $c =~ s/\n*$/\n/; + $text = "$c\n"; + } + if ($e) { + $text .= $e; + } + elsif ($o) { + my (@lines, $key); + + foreach $key (@$o) { + my ($line, $sp, $v); + my @values = (ref $k->{$key} eq 'ARRAY') ? + @{ $k->{$key} } : + $k->{$key}; + + $sp = " "x(length("$key: ")); + $sp = " "x4 if length($sp) > 16; + + foreach $v (@values) { + if ($v =~ /\n/) { + $v =~ s/^/$sp/gm; + $v =~ s/^$sp//; + + if ($line) { + push @lines, "$line\n\n"; + $line = ""; + } + elsif (@lines && $lines[-1] !~ /\n\n$/) { + $lines[-1] .= "\n"; + } + push @lines, "$key: $v\n\n"; + } + elsif ($line && + length($line)+length($v)-rindex($line, "\n") >= 70) + { + $line .= ",\n$sp$v"; + } + else { + $line = $line ? "$line, $v" : "$key: $v"; + } + } + + $line = "$key:" unless @values; + if ($line) { + if ($line =~ /\n/) { + if (@lines && $lines[-1] !~ /\n\n$/) { + $lines[-1] .= "\n"; + } + $line .= "\n"; + } + push @lines, "$line\n"; + } + } + + $text .= join "", @lines; + } + else { + chomp $text; + } + push @text, $text; + } + + return join "\n--\n\n", @text; +} + +# Add a value to a (possibly multi-valued) hash key. +sub vpush { + my ($hash, $key, $val) = @_; + my @val = ref $val eq 'ARRAY' ? @$val : $val; + + if (exists $hash->{$key}) { + unless (ref $hash->{$key} eq 'ARRAY') { + my @v = $hash->{$key} ne '' ? $hash->{$key} : (); + $hash->{$key} = \@v; + } + push @{ $hash->{$key} }, @val; + } + else { + $hash->{$key} = $val; + } +} + +# "Normalise" a hash key that's known to be multi-valued. +sub vsplit { + my ($val) = @_; + my ($line, $word, @words); + + foreach $line (map {split /\n/} (ref $val eq 'ARRAY') ? @$val : $val) + { + # XXX: This should become a real parser, à la Text::ParseWords. + $line =~ s/^\s+//; + $line =~ s/\s+$//; + push @words, split /\s*,\s*/, $line; + } + + return \@words; +} + +1; + +=head1 NAME + + RT::Interface::REST - helper functions for the REST interface. + +=head1 SYNOPSIS + + Only the REST should use this module. diff --git a/rt/lib/RT/Interface/Web.pm b/rt/lib/RT/Interface/Web.pm index 5097f54a4..8d66239be 100644 --- a/rt/lib/RT/Interface/Web.pm +++ b/rt/lib/RT/Interface/Web.pm @@ -68,6 +68,7 @@ sub NewApacheHandler { default_escape_flags => 'h', allow_globals => [qw(%session)], data_dir => "$RT::MasonDataDir", + autoflush => 1, @_ ); @@ -98,7 +99,8 @@ sub NewCGIHandler { ], data_dir => "$RT::MasonDataDir", default_escape_flags => 'h', - allow_globals => [qw(%session)] + allow_globals => [qw(%session)], + autoflush => 1, ); @@ -137,6 +139,60 @@ sub EscapeUTF8 { # }}} +# {{{ WebCanonicalizeInfo + +=head2 WebCanonicalizeInfo(); + +Different web servers set different environmental varibles. This +function must return something suitable for REMOTE_USER. By default, +just downcase $ENV{'REMOTE_USER'} + +=cut + +sub WebCanonicalizeInfo { + my $user; + + if ( defined $ENV{'REMOTE_USER'} ) { + $user = lc ( $ENV{'REMOTE_USER'} ) if( length($ENV{'REMOTE_USER'}) ); + } + + return $user; +} + +# }}} + +# {{{ WebExternalAutoInfo + +=head2 WebExternalAutoInfo($user); + +Returns a hash of user attributes, used when WebExternalAuto is set. + +=cut + +sub WebExternalAutoInfo { + my $user = shift; + + my %user_info; + + $user_info{'Privileged'} = 1; + + if ($^O !~ /^(?:riscos|MacOS|MSWin32|dos|os2)$/) { + # Populate fields with information from Unix /etc/passwd + + my ($comments, $realname) = (getpwnam($user))[5, 6]; + $user_info{'Comments'} = $comments if defined $comments; + $user_info{'RealName'} = $realname if defined $realname; + } + elsif ($^O eq 'MSWin32' and eval 'use Net::AdminMisc; 1') { + # Populate fields with information from NT domain controller + } + + # and return the wad of stuff + return {%user_info}; +} + +# }}} + package HTML::Mason::Commands; use strict; @@ -160,10 +216,13 @@ sub loc { UNIVERSAL::can($session{'CurrentUser'}, 'loc')){ return($session{'CurrentUser'}->loc(@_)); } - else { - my $u = RT::CurrentUser->new($RT::SystemUser); + elsif ( my $u = eval { RT::CurrentUser->new($RT::SystemUser->Id) } ) { return ($u->loc(@_)); } + else { + # pathetic case -- SystemUser is gone. + return $_[0]; + } } # }}} @@ -189,7 +248,7 @@ sub loc_fuzzy { return($session{'CurrentUser'}->loc_fuzzy($msg)); } else { - my $u = RT::CurrentUser->new($RT::SystemUser); + my $u = RT::CurrentUser->new($RT::SystemUser->Id); return ($u->loc_fuzzy($msg)); } } @@ -365,7 +424,8 @@ sub ProcessUpdateMessage { ); #Make the update content have no 'weird' newlines in it - if ( $args{ARGSRef}->{'UpdateContent'} ) { + if ( $args{ARGSRef}->{'UpdateContent'} || + $args{ARGSRef}->{'UpdateAttachments'}) { if ( $args{ARGSRef}->{'UpdateSubject'} eq $args{'TicketObj'}->Subject() ) @@ -433,7 +493,8 @@ sub MakeMIMEEntity { Cc => undef, Body => undef, AttachmentFieldName => undef, - map Encode::encode_utf8($_), @_, +# map Encode::encode_utf8($_), @_, + @_, ); #Make the update content have no 'weird' newlines in it @@ -449,6 +510,7 @@ sub MakeMIMEEntity { Subject => $args{'Subject'} || "", From => $args{'From'}, Cc => $args{'Cc'}, + Charset => 'utf8', Data => [ $args{'Body'} ] ); } @@ -463,7 +525,14 @@ sub MakeMIMEEntity { #foreach my $filehandle (@filenames) { - my ( $fh, $temp_file ) = tempfile(); + my ( $fh, $temp_file ); + for ( 1 .. 10 ) { + # on NFS and NTFS, it is possible that tempfile() conflicts + # with other processes, causing a race condition. we try to + # accommodate this by pausing and retrying. + last if ($fh, $temp_file) = eval { tempfile() }; + sleep 1; + } binmode $fh; #thank you, windows my ($buffer); @@ -481,7 +550,7 @@ sub MakeMIMEEntity { $Message->attach( Path => $temp_file, - Filename => $filename, + Filename => Encode::decode_utf8($filename), Type => $uploadinfo->{'Content-Type'}, ); close($fh); @@ -594,13 +663,13 @@ sub ProcessSearchQuery { # }}} # {{{ Limit requestor email + if ( $args{ARGS}->{'ValueOfWatcherRole'} ne '' ) { + $session{'tickets'}->LimitWatcher( + TYPE => $args{ARGS}->{'WatcherRole'}, + VALUE => $args{ARGS}->{'ValueOfWatcherRole'}, + OPERATOR => $args{ARGS}->{'WatcherRoleOp'}, - if ( $args{ARGS}->{'ValueOfRequestor'} ne '' ) { - my $alias = $session{'tickets'}->LimitRequestor( - VALUE => $args{ARGS}->{'ValueOfRequestor'}, - OPERATOR => $args{ARGS}->{'RequestorOp'}, ); - } # }}} @@ -780,17 +849,13 @@ sub ProcessACLChanges { my $obj; - if ($object_type eq 'RT::Queue') { - $obj = RT::Queue->new($session{'CurrentUser'}); - $obj->Load($object_id); - } elsif ($object_type eq 'RT::Group') { - $obj = RT::Group->new($session{'CurrentUser'}); - $obj->Load($object_id); - - } elsif ($object_type eq 'RT::System') { + if ($object_type eq 'RT::System') { $obj = $RT::System; + } elsif ($RT::ACE::OBJECT_TYPES{$object_type}) { + $obj = $object_type->new($session{'CurrentUser'}); + $obj->Load($object_id); } else { - push (@results, loc("System Error"). + push (@results, loc("System Error"). ': '. loc("Rights could not be granted for [_1]", $object_type)); next; } @@ -813,17 +878,14 @@ sub ProcessACLChanges { next unless ($right); my $obj; - if ($object_type eq 'RT::Queue') { - $obj = RT::Queue->new($session{'CurrentUser'}); - $obj->Load($object_id); - } elsif ($object_type eq 'RT::Group') { - $obj = RT::Group->new($session{'CurrentUser'}); - $obj->Load($object_id); - - } elsif ($object_type eq 'RT::System') { + if ($object_type eq 'RT::System') { $obj = $RT::System; + } elsif ($RT::ACE::OBJECT_TYPES{$object_type}) { + $obj = $object_type->new($session{'CurrentUser'}); + $obj->Load($object_id); } else { - push (@results, loc("System Error"). + die; + push (@results, loc("System Error"). ': '. loc("Rights could not be revoked for [_1]", $object_type)); next; } @@ -953,6 +1015,17 @@ sub ProcessCustomFieldUpdates { my ( $err, $msg ) = $Object->DeleteValue($id); push ( @results, $msg ); } + + my $vals = $Object->Values(); + while (my $cfv = $vals->Next()) { + if (my $so = $ARGSRef->{ 'CustomField-' . $Object->Id . '-SortOrder' . $cfv->Id }) { + if ($cfv->SortOrder != $so) { + my ( $err, $msg ) = $cfv->SetSortOrder($so); + push ( @results, $msg ); + } + } + } + return (@results); } @@ -1050,8 +1123,11 @@ sub ProcessTicketCustomFieldUpdates { # For each of those tickets foreach my $tick ( keys %custom_fields_to_mod ) { - my $Ticket = RT::Ticket->new( $session{'CurrentUser'} ); - $Ticket->Load($tick); + my $Ticket = $args{'TicketObj'}; + if (!$Ticket or $Ticket->id != $tick) { + $Ticket = RT::Ticket->new( $session{'CurrentUser'} ); + $Ticket->Load($tick); + } # For each custom field foreach my $cf ( keys %{ $custom_fields_to_mod{$tick} } ) { @@ -1074,10 +1150,10 @@ sub ProcessTicketCustomFieldUpdates { my @values = ( ref( $ARGSRef->{$arg} ) eq 'ARRAY' ) ? @{ $ARGSRef->{$arg} } - : ( $ARGSRef->{$arg} ); + : split /\n/, $ARGSRef->{$arg} ; if ( ( $arg =~ /-AddValue$/ ) || ( $arg =~ /-Value$/ ) ) { foreach my $value (@values) { - next unless ($value); + next unless length($value); my ( $val, $msg ) = $Ticket->AddCustomFieldValue( Field => $cf, Value => $value @@ -1087,7 +1163,7 @@ sub ProcessTicketCustomFieldUpdates { } elsif ( $arg =~ /-DeleteValues$/ ) { foreach my $value (@values) { - next unless ($value); + next unless length($value); my ( $val, $msg ) = $Ticket->DeleteCustomFieldValue( Field => $cf, Value => $value @@ -1100,7 +1176,7 @@ sub ProcessTicketCustomFieldUpdates { my %values_hash; foreach my $value (@values) { - next unless ($value); + next unless length($value); # build up a hash of values that the new set has $values_hash{$value} = 1; diff --git a/rt/lib/RT/Principal_Overlay.pm b/rt/lib/RT/Principal_Overlay.pm index d2782b730..b788e36c4 100644 --- a/rt/lib/RT/Principal_Overlay.pm +++ b/rt/lib/RT/Principal_Overlay.pm @@ -348,6 +348,12 @@ sub HasRight { next unless (UNIVERSAL::can($obj, 'id')); my $type = ref($obj); my $id = $obj->id; + + unless ($id) { + use Carp; + Carp::cluck("Trying to check $type rights for an unspecified $type"); + $RT::Logger->crit("Trying to check $type rights for an unspecified $type"); + } push @look_at_objects, "(ACL.ObjectType = '$type' AND ACL.ObjectId = '$id')"; } @@ -385,7 +391,8 @@ sub HasRight { "AND ( ( ACL.PrincipalId = Principals.id AND ACL.PrincipalType = 'Group' AND ". "(Groups.Domain = 'SystemInternal' OR Groups.Domain = 'UserDefined' OR Groups.Domain = 'ACLEquivalence' OR Groups.Domain = 'Personal'))". - " ) LIMIT 1"; + " ) "; + $self->_Handle->ApplyLimits(\$groups_query, 1); #only return one result my @roles; foreach my $object (@{$args{'EquivObjects'}}) { @@ -397,7 +404,8 @@ sub HasRight { if (@roles) { $roles_query = $query_base . "AND ". " ( (".join (' OR ', @roles)." ) ". - " AND Groups.Type = ACL.PrincipalType AND Groups.Id = Principals.id AND Principals.PrincipalType = 'Group') LIMIT 1"; + " AND Groups.Type = ACL.PrincipalType AND Groups.Id = Principals.id AND Principals.PrincipalType = 'Group') "; + $self->_Handle->ApplyLimits(\$roles_query, 1); #only return one result } @@ -461,7 +469,18 @@ sub _RolesForObject { my $self = shift; my $type = shift; my $id = shift; - my $clause = "(Groups.Domain = '".$type."-Role' AND Groups.Instance = '" . $id. "') "; + + unless ($id) { + $id = '0'; + } + + # This should never be true. + unless ($id =~ /^\d+$/) { + $RT::Logger->crit("RT::Prinicipal::_RolesForObject called with type $type and a non-integer id: '$id'"); + $id = "'$id'"; + } + + my $clause = "(Groups.Domain = '".$type."-Role' AND Groups.Instance = $id) "; return($clause); } diff --git a/rt/lib/RT/Queue_Overlay.pm b/rt/lib/RT/Queue_Overlay.pm index 4eb265f2a..fcc185b10 100644 --- a/rt/lib/RT/Queue_Overlay.pm +++ b/rt/lib/RT/Queue_Overlay.pm @@ -327,7 +327,7 @@ sub Load { $self->SUPER::LoadById($identifier); } else { - $self->LoadByCol( "Name", $identifier ); + $self->LoadByCols( Name => $identifier ); } return ( $self->Id ); @@ -866,8 +866,11 @@ sub IsWatcher { my $principal = RT::Principal->new($self->CurrentUser); $principal->Load($args{'PrincipalId'}); + unless ($principal->Id) { + return (undef); + } - return ($group->HasMember($principal)); + return ($group->HasMemberRecursively($principal)); } # }}} diff --git a/rt/lib/RT/Record.pm b/rt/lib/RT/Record.pm index 6962221ea..7a8690618 100755 --- a/rt/lib/RT/Record.pm +++ b/rt/lib/RT/Record.pm @@ -211,7 +211,10 @@ sub LoadByCols { $newhash{$key} = $hash{$key}; } else { - $newhash{ "lower(" . $key . ")" } = lc( $hash{$key} ); + my ($op, $val); + ($key, $op, $val) = $self->_Handle->_MakeClauseCaseInsensitive($key, '=', $hash{$key}); + $newhash{$key}->{operator} = $op; + $newhash{$key}->{value} = $val; } } diff --git a/rt/lib/RT/ScripAction_Overlay.pm b/rt/lib/RT/ScripAction_Overlay.pm index e2b018aaf..e75987135 100644 --- a/rt/lib/RT/ScripAction_Overlay.pm +++ b/rt/lib/RT/ScripAction_Overlay.pm @@ -48,6 +48,7 @@ ok (require RT::ScripAction); use strict; no warnings qw(redefine); +use RT::Template; # {{{ sub _Init sub _Init { @@ -135,6 +136,8 @@ sub LoadAction { my %args = ( TransactionObj => undef, TicketObj => undef, @_ ); + + $self->{_TicketObj} = $args{TicketObj}; #TODO: Put this in an eval $self->ExecModule =~ /^(\w+)$/; @@ -164,14 +167,26 @@ Return this action\'s template object sub TemplateObj { my $self = shift; return undef unless $self->{Template}; - if (!$self->{'TemplateObj'}) { - require RT::Template; - $self->{'TemplateObj'} = RT::Template->new($self->CurrentUser); - $self->{'TemplateObj'}->LoadById($self->{'Template'}); - + if ( !$self->{'TemplateObj'} ) { + $self->{'TemplateObj'} = RT::Template->new( $self->CurrentUser ); + $self->{'TemplateObj'}->LoadById( $self->{'Template'} ); + + if ( ( $self->{'TemplateObj'}->__Value('Queue') == 0 ) + && $self->{'_TicketObj'} ) { + my $tmptemplate = RT::Template->new( $self->CurrentUser ); + my ( $ok, $err ) = $tmptemplate->LoadQueueTemplate( + Queue => $self->{'_TicketObj'}->QueueObj->id, + Name => $self->{'TemplateObj'}->Name); + + if ( $tmptemplate->id ) { + # found the queue-specific template with the same name + $self->{'TemplateObj'} = $tmptemplate; + } + } + } - - return ($self->{'TemplateObj'}); + + return ( $self->{'TemplateObj'} ); } # }}} @@ -206,6 +221,7 @@ sub Describe { # {{{ sub DESTROY sub DESTROY { my $self=shift; + $self->{'_TicketObj'} = undef; $self->{'Action'} = undef; $self->{'TemplateObj'} = undef; } diff --git a/rt/lib/RT/Scrip_Overlay.pm b/rt/lib/RT/Scrip_Overlay.pm index 06462a9ac..4f6c735cc 100644 --- a/rt/lib/RT/Scrip_Overlay.pm +++ b/rt/lib/RT/Scrip_Overlay.pm @@ -142,19 +142,24 @@ sub Create { require RT::ScripAction; my $action = new RT::ScripAction( $self->CurrentUser ); - $action->Load( $args{'ScripAction'} || '0' ); + if ($args{'ScripAction'}) { + $action->Load( $args{'ScripAction'}); + } return ( 0, $self->loc( "Action [_1] not found", $args{'ScripAction'} ) ) unless $action->Id; require RT::Template; my $template = new RT::Template( $self->CurrentUser ); - $template->Load( $args{'Template'}||'0' ); + if ($args{'Template'} ) { + $template->Load( $args{'Template'}); + } return ( 0, $self->loc('Template not found') ) unless $template->Id; require RT::ScripCondition; my $condition = new RT::ScripCondition( $self->CurrentUser ); - $condition->Load( $args{'ScripCondition'}||'0' ); - + if ($args{'ScripCondition'} ) { + $condition->Load( $args{'ScripCondition'} ); + } unless ( $condition->Id ) { return ( 0, $self->loc('Condition not found') ); } @@ -256,13 +261,16 @@ Retuns an RT::ScripCondition object with this Scrip's IsApplicable sub ConditionObj { my $self = shift; - - unless (defined $self->{'ScripConditionObj'}) { - require RT::ScripCondition; - $self->{'ScripConditionObj'} = RT::ScripCondition->new($self->CurrentUser); - $self->{'ScripConditionObj'}->Load($self->ScripCondition); + + unless ( defined $self->{'ScripConditionObj'} ) { + require RT::ScripCondition; + $self->{'ScripConditionObj'} = + RT::ScripCondition->new( $self->CurrentUser ); + if ( $self->ScripCondition ) { + $self->{'ScripConditionObj'}->Load( $self->ScripCondition ); + } } - return ($self->{'ScripConditionObj'}); + return ( $self->{'ScripConditionObj'} ); } # }}} diff --git a/rt/lib/RT/Scrips_Overlay.pm b/rt/lib/RT/Scrips_Overlay.pm index 46e31c2a8..d20148084 100644 --- a/rt/lib/RT/Scrips_Overlay.pm +++ b/rt/lib/RT/Scrips_Overlay.pm @@ -129,5 +129,80 @@ sub Next { } # }}} +sub Apply { + my ($self, %args) = @_; + + #We're really going to need a non-acled ticket for the scrips to work + my ($TicketObj, $TransactionObj); + + if ( ($TicketObj = $args{'TicketObj'}) ) { + $TicketObj->CurrentUser($self->CurrentUser); + } + else { + $TicketObj = RT::Ticket->new($self->CurrentUser); + $TicketObj->Load( $args{'Ticket'} ) + || $RT::Logger->err("$self couldn't load ticket $args{'Ticket'}\n"); + } + + if ( ($TransactionObj = $args{'TransactionObj'}) ) { + $TransactionObj->CurrentUser($self->CurrentUser); + } + else { + $TransactionObj = RT::Transaction->new($self->CurrentUser); + $TransactionObj->Load( $args{'Transaction'} ) + || $RT::Logger->err("$self couldn't load transaction $args{'Transaction'}\n"); + } + + # {{{ Deal with Scrips + + $self->LimitToQueue( $TicketObj->QueueObj->Id ) + ; #Limit it to $Ticket->QueueObj->Id + $self->LimitToGlobal() + unless $TicketObj->QueueObj->Disabled; # or to "global" + + + $self->Limit(FIELD => "Stage", VALUE => $args{'Stage'}); + + + my $ConditionsAlias = $self->NewAlias('ScripConditions'); + + $self->Join( + ALIAS1 => 'main', + FIELD1 => 'ScripCondition', + ALIAS2 => $ConditionsAlias, + FIELD2 => 'id' + ); + + #We only want things where the scrip applies to this sort of transaction + $self->Limit( + ALIAS => $ConditionsAlias, + FIELD => 'ApplicableTransTypes', + OPERATOR => 'LIKE', + VALUE => $args{'Type'}, + ENTRYAGGREGATOR => 'OR', + ) if $args{'Type'}; + + # Or where the scrip applies to any transaction + $self->Limit( + ALIAS => $ConditionsAlias, + FIELD => 'ApplicableTransTypes', + OPERATOR => 'LIKE', + VALUE => "Any", + ENTRYAGGREGATOR => 'OR', + ); + + #Iterate through each script and check it's applicability. + while ( my $Scrip = $self->Next() ) { + $Scrip->Apply (TicketObj => $TicketObj, + TransactionObj => $TransactionObj); + } + + $TicketObj->CurrentUser( $TicketObj->OriginalUser ); + $TransactionObj->CurrentUser( $TransactionObj->OriginalUser ); + + # }}} +} + + 1; diff --git a/rt/lib/RT/StyleGuide.pod b/rt/lib/RT/StyleGuide.pod new file mode 100644 index 000000000..95b2e3a15 --- /dev/null +++ b/rt/lib/RT/StyleGuide.pod @@ -0,0 +1,891 @@ +=head1 NAME + +RT::StyleGuide - RT Style Guide + +=head1 INTRODUCTION + +All code and documentation that is submitted to be included in the RT +distribution should follow the style in this document. This is not to +try to stifle your creativity, but to make life easier for everybody who +has to work with your code, and to aid those who are not quite sure how +to do something. + +These conventions below apply to perl modules, web programs, and +command-line programs, specifically, but also might apply to some +degree to any Perl code written for use in RT. + +Note that these are all guidelines, not unbreakable rules. If you have +a really good need to break one of the rules herein, however, then it is +best to ask on the B<rt-devel> mailing list first. + +Note that with much of this document, it is not so much the Right Way as +it is Our Way. We need to have conventions in order to make life easier +for everyone. So don't gripe, and just follow it, because you didn't +get a good grade in "Plays Well With Others" in kindergarten and you +want to make up for it now. + +If you have any questions, please ask us on the B<rt-devel> mailing list: + + http://www.bestpractical.com/rt/lists.html + +We don't always follow this guide. We are making changes throughout +our code to be in line with it. But just because we didn't do +it yet, that is no excuse. Do it anyway. :-) + +This document is subject to change at the whims of the core RT team. +We hope to add any significant changes at the bottom of the document. + + +=head1 CODING PRINCIPLES + +=head2 Perl Version + +We code everything to perl 5.6.1. Some features require advanced unicode +features in perl 5.8.0. It is acceptable that unicode features work only for +US-ASCII on perl 5.6.1. + + +=head2 Documentation + +All modules will be documented using the POD examples in the module +boilerplate. The function, purpose, use of the module will be +explained, and each public API will be documented with name, +description, inputs, outputs, side effects, etc. + +If an array or hash reference is returned, document the size of the +array (including what each element is, as appropriate) and name each key +in the hash. For complex data structures, map out the structure as +appropriate (e.g., name each field returned for each column from a DB +call; yes, this means you shouldn't use "SELECT *", which you shouldn't +use anyway). + +Also document what kind of data returned values are. Is it an integer, +a block of HTML, a boolean? + +All command-line program options will be documented using the +boilerplate code for command-line programs, which doesn't yet exist. +Each available function, switch, etc. should be documented, along +with a statement of function, purpose, use of the program. Do not +use the same options as another program, for a different purpose. + +All web templates should be documented with a statement of function, +purpose, and use in a mason comment block. + +Any external documents, and documentation for command-line programs and +modules, should be written in POD, where appropriate. From there, they +can be translated to many formats with the various pod2* translators. +Read the perlpod manpage before writing any POD, because although POD is +not difficult, it is not what most people are used to. It is not a +regular markup language; it is just a way to make easy documentation +for translating to other formats. Read, and understand, the perlpod +manpage, and ask us or someone else who knows if you have any questions. + + +=head2 Version + +Our distribution versions use tuples, where the first number is the +major revision, the second number is the version, and third +number is the subversion. Odd-numbered versions are development +versions. Examples: + + 1.0.0 First release of RT 1 + 1.0.1 Second release of RT 1.0 + 1.0.10 etc. + 1.1.0 First development release of RT 1.2 (or 2.0) + 2.0.0 First release of RT 2 + +Versions can be modified with a hyphen followed by some text, for +special versions, or to give extra information. Examples: + + 2.0.0-pre1 Notes that this is not final, but preview + +In perl 5.6.0, you can have versions like C<v2.0.0>, but this is not +allowed in previous versions of perl. So to convert a tuple version +string to a string to use with $VERSION, use a regular integer for +the revision, and three digits for version and subversion. Examples: + + 1.1.6 -> 1.001006 + 2.0.0 -> 2.000000 + +This way, perl can use the version strings in greater-than and +less-than comparisons. + + +=head2 Comments + +All code should be self-documenting as much as possible. Only include +necessary comments. Use names like "$ticket_count", so you don't need to +do something like: + + # ticket count + my $tc = 0; + +Include any comments that are, or might be, necessary in order for +someone else to understand the code. Sometimes a simple one-line +comment is good to explain what the purpose of the following code is +for. Sometimes each line needs to be commented because of a complex +algorithm. Read Kernighan & Pike's I<Practice of Programming> about +commenting. Good stuff, Maynard. + + +=head2 Warnings and Strict + +All code must compile and run cleanly with "use strict" enabled and the +perl "-w" (warnings) option on. If you must do something that -w or +strict complains about, there are workarounds, but the chances that you +really need to do it that way are remote. + +=head2 Lexical Variables + +Use only lexical variables, except for special global variables +($VERSION, %ENV, @ISA, $!, etc.) or very special circumstances (see +%HTML::Mason::Commands::session ). Global variables +for regular use are never appropriate. When necessary, "declare" +globals with "use vars" or "our()". + +A lexical variable is created with my(). A global variable is +pre-existing (if it is a special variable), or it pops into existence +when it is used. local() is used to tell perl to assign a temporary +value to a variable. This should only be used with special variables, +like $/, or in special circumstances. If you must assign to any global +variable, consider whether or not you should use local(). + +local() may also be used on elements of arrays and hashes, though there +is seldom a need to do it, and you shouldn't. + + +=head2 Exporting + +Do not export anything from a module by default. Feel free to put +anything you want to in @EXPORT_OK, so users of your modules can +explicitly ask for symbols (e.g., "use Something::Something qw(getFoo +setFoo)"), but do not export them by default. + + +=head2 Pass by Reference + +Arrays and hashes should be passed to and from functions by reference +only. Note that a list and an array are NOT the same thing. This +is perfectly fine: + + return($user, $form, $constants); + +An exception might be a temporary array of discrete arguments: + + my @return = ($user, $form); + push @return, $constants if $flag; + return @return; + +Although, usually, this is better (faster, easier to read, etc.): + + if ($flag) { + return($user, $form, $constants); + } else { + return($user, $form); + } + +We need to talk about Class::ReturnValue here. + + +=head2 Garbage Collection + +Perl does pretty good garbage collection for you. It will automatically +clean up lexical variables that have gone out of scope and objects whose +references have gone away. Normally you don't need to worry about +cleaning up after yourself, if using lexicals. + +However, some glue code, code compiled in C and linked to Perl, might +not automatically clean up for you. In such cases, clean up for +yourself. If there is a method in that glue to dispose or destruct, +then use it as appropriate. + +Also, if you have a long-running function that has a large data +structure in it, it is polite to free up the memory as soon as you are +done with it, if possible. + + my $huge_data_structure = get_huge_data_structure(); + do_something_with($huge_data_structure); + undef $huge_data_structure; + +=head2 DESTROY + +All object classes must provide a DESTROY method. If it won't do +anything, provide it anyway: + + sub DESTROY { } + + + +=head2 die() and exit() + +Don't do it. Do not die() or exit() from a web template or module. Do +not call C<kill 9, $$>. Don't do it. + +In command-line programs, do as you please. + + +=head2 shift and @_ + +Do not use @_. Use shift. shift may take more lines, but Jesse thinks it +leads to cleaner code. + + my $var = shift; # right + my($var) = @_; # ick. no + sub foo { uc $_[0] } # icky. sometimes ok. + + + my($var1, $var2) = (shift, shift); # Um, no. + + my $var1 = shift; # right + my $var2 = shift; + + + +=head2 Tests + +Modules should provide test code, with documentation on how to use +it. Test::Inline allows tests to be embedded in code. Test::More makes it +easy to create tests. Any code you write should have a testsuite. +Any code you alter should have a test suite. If a patch comes in without +tests, there is something wrong. + +When altering code, you must run the test harness before submitting a patch +or committing code to the repository. + +"make regression" will extract inline tests, blow away the system database +and run the test suite. + +"make regression-quiet" will do all that and not print the "ok" lines. + + + +=head2 STDIN/STDOUT + +Always report errors using $RT::Logger. It's a Log::Dispatch object. +Unlike message meant for the user, log messages are not to be +internationalized. + +There are several different levels ($RT::Logger methods) of logging: + +=over 4 + +=item debug + +Used for messages only needed during system debugging. + +=item info + +Should be used to describe "system-critical" events which aren't errors. +Examples: creating users, deleting users, creating tickets, creating queues, +sending email (message id, time, recipients), recieving mail, changing +passwords, changing access control, superuser logins) + +=item error + +Used for RT-generated failures during execution. + +=item crit + +Should be used for messages when an action can not be completed due to some +error condition beyond our control. + +=back + +In the web UI and modules, never print directly to STDERR. Do not print +directly to STDOUT, unless you need to print directly to the user's console. + +In command-line programs, feel free to print to STDERR and STDOUT as +needed for direct console communication. But for actual error reporting, +use the logging API. + + +=head2 System Calls + +Always check return values from system calls, including open(), +close(), mkdir(), or anything else that talks directly to the system. +Perl built-in system calls return the error in $!; some functions in +modules might return an error in $@ or some other way, so read the module's +documentation if you don't know. Always do something, even if it is +just calling $RT::Logger->warning(), when the return value is not what you'd expect. + + + +=head1 STYLE + +Much of the style section is taken from the perlsyle manpage. We make +some changes to it here, but it wouldn't be a bad idea to read that +document, too. + +=head2 Terminology + +=over 4 + +=item RT the name + +"RT" is the name of the project. "RT" is, optionally, the +specific name for the actual file distribution. That's it. + +While we sometimes use "RT2" or "RT3", that's shortand that's really +not recommended. The name of the project is "RT". + +To specify a major version, use "RT 3.0". +To specify a specific release, use "RT 3.0.12" + +=item function vs. sub(routine) vs. method + +Just because it is the Perl Way (not necessarily right for all +languages, but the documented terminology in the perl documentation), +"method" should be used only to refer to a subroutine that are object +methods or class methods; that is, these are functions that are used +with OOP that always take either an object or a class as the first +argument. Regular subroutines, ones that are not object or class +methods, are functions. Class methods that create and return an object +are optionally called constructors. + +=item Users + +"users" are normally users of RT, the ones hitting the site; if using +it in any other context, specify. +"system users" are user +names on the operating system. "database users" are the user names in +the database server. None of these needs to be capitalized. + +=back + + +=head2 Names + +Don't use single-character variables, except as iterator variables. + +Don't use two-character variables just to spite us over the above rule. + +Constants are in all caps; these are variables whose value will I<never> +change during the course of the program. + + $Minimum = 10; # wrong + $MAXIMUM = 50; # right + +Other variables are lowercase, with underscores separating the words. +They words used should, in general, form a noun (usually singular), +unless the variable is a flag used to denote some action that should be +taken, in which case they should be verbs (or gerunds, as appropriate) +describing that action. + + $thisVar = 'foo'; # wrong + $this_var = 'foo'; # right + $work_hard = 1; # right, verb, boolean flag + $running_fast = 0; # right, gerund, boolean flag + +Arrays and hashes should be plural nouns, whether as regular arrays and +hashes or array and hash references. Do not name references with "ref" +or the data type in the name. + + @stories = (1, 2, 3); # right + $comment_ref = [4, 5, 6]; # wrong + $comments = [4, 5, 6]; # right + $comment = $comments->[0]; # right + +Make the name descriptive. Don't use variables like "$sc" when you +could call it "$story_count". See L<"Comments">. + +There are several variables in RT that are used throughout the code, +that you should use in your code. Do not use these variable names for +anything other than how they are normally used, and do not use any +other variable names in their place. Some of these are: + + $self # first named argument in object method + +Subroutines (except for special cases, like AUTOLOAD and simple accessors) +begin with a verb, with words following to complete the action. Accessors +don't start with "Get" if they're just the name of the attribute. + +Accessors which return an object should end with the suffix Obj. + +This section needs clarification for RT. + +Words begin with a capital letter. They +should as clearly as possible describe the activity to be peformed, and +the data to be returned. + + + + Load(); # good + LoadByName(); # good + LoadById(); # good + +Subroutines beginning with C<_> are special: they are not to be used +outside the current object. There is not to be enforced by the code +itself, but by someone very big and very scary. + +For large for() loops, do not use $_, but name the variable. +Do not use $_ (or assume it) except for when it is absolutely +clear what is going on, or when it is required (such as with +map() and grep()). + + for (@list) { + print; # OK; everyone knows this one + print uc; # wrong; few people know this + print uc $_; # better + } + +Note that the special variable C<_> I<should> be used when possible. +It is a placeholder that can be passed to stat() and the file test +operators, that saves perl a trip to re-stat the file. In the +example below, using C<$file> over for each file test, instead of +C<_> for subsequent uses, is a performance hit. You should be +careful that the last-tested file is what you think it is, though. + + if (-d $file) { # $file is a directory + # ... + } elsif (-l _) { # $file is a symlink + # ... + } + +Package names begin with a capital letter in each word, followed by +lower case letters (for the most part). Multiple words should be StudlyCapped. + + RT::User # good + RT::Database::MySQL # proper name + RT::Display::Provider # good + RT::CustomField # not so good, but OK + +Plugin modules should begin with "RTx::", followed by the name +of the plugin. + +=head1 Code formatting + +Use perltidy. Anything we say here is wrong if it conflicts with what +perltidy does. Your perltidyrc should read: + +-lp -vt=2 -vtc=2 -nsfs -bar + +=head2 Indents and Blank Space + +All indents should be tabs. Set your tab stops whatever you want them +to be; I use 8 spaces per tabs. + +No space before a semicolon that closes a statement. + + foo(@bar) ; # wrong + foo(@bar); # right + +Line up corresponding items vertically. + + my $foo = 1; + my $bar = 2; + my $xyzzy = 3; + + open(FILE, $fh) or die $!; + open(FILE2, $fh2) or die $!; + + $rot13 =~ tr[abcedfghijklmnopqrstuvwxyz] + [nopqrstuvwxyzabcdefghijklm]; + + # note we use a-mn-z instead of a-z, + # for readability + $rot13 =~ tr[a-mn-z] + [n-za-m]; + +Put blank lines between groups of code that do different things. Put +blank lines after your variable declarations. Put a blank line before a +final return() statement. Put a blank line following a block (and +before, with the exception of comment lines). + +An example: + + # this is my function! + sub foo { + my $val = shift; + my $obj = new Constructor; + my($var1, $var2); + + $obj->SetFoo($val); + $var1 = $obj->Foo(); + + + return($val); + } + + print 1; + + +=head2 Parentheses + +For control structures, there is a space between the keyword and opening +parenthesis. For functions, there is not. + + for(@list) # wrong + for (@list) # right + + my ($ref) # wrong + my($ref) # right + +Be careful about list vs. scalar context with parentheses! + + my @array = ('a', 'b', 'c'); + my($first_element) = @array; # a + my($first_element) = ('a', 'b', 'c'); # a + my $element_count = @array; # 3 + my $last_element = ('a', 'b', 'c'); # c + +Always include parentheses after functions, even if there are no arguments. +There are some exceptions, such as list operators (like print) and unary +operators (like undef, delete, uc). + +There is no space inside the parentheses, unless it is needed for +readability. + + for ( map { [ $_, 1 ] } @list ) # OK + for ( @list ) # not really OK, not horrible + +On multi-line expressions, match up the closing parenthesis with either +the opening statement, or the opening parenthesis, whichever works best. +Examples: + + @list = qw( + bar + baz + ); # right + + if ($foo && $bar && $baz + && $buz && $xyzzy + ) { + print $foo; + } + +Whether or not there is space following a closing parenthesis is +dependent on what it is that follows. + + print foo(@bar), baz(@buz) if $xyzzy; + +Note also that parentheses around single-statement control expressions, +as in C<if $xyzzy>, are optional (and discouraged) C<if> it is I<absolutely> +clear -- to a programmer -- what is going on. There is absolutely no +need for parentheses around C<$xyzzy> above, so leaving them out enhances +readability. Use your best discretion. Better to include them, if +there is any question. + +The same essentially goes for perl's built-in functions, when there is +nothing confusing about what is going on (for example, there is only one +function call in the statement, or the function call is separated by a +flow control operator). User-supplied functions must always include +parentheses. + + print 1, 2, 3; # good + delete $hash{key} if isAnon($uid); # good + + +However, if there is any possible confusion at all, then include the +parentheses. Remember the words of Larry Wall in the perlstyle manpage: + + When in doubt, parenthesize. At the very least it will + let some poor schmuck bounce on the % key in vi. + + Even if you aren't in doubt, consider the mental welfare + of the person who has to maintain the code after you, and + who will probably put parens in the wrong place. + +So leave them out when it is absoutely clear to a programmer, but if +there is any question, leave them in. + + +=head2 Braces + +(This is about control braces, not hash/data structure braces.) + +There is always a space befor the opening brace. + + while (<$fh>){ # wrong + while (<$fh>) { # right + +A one-line block may be put on one line, and the semicolon may be +omitted. + + for (@list) { print } + +Otherwise, finish each statement with a semicolon, put the keyword and +opening curly on the first line, and the ending curly lined up with the +keyword at the end. + + for (@list) { + print; + smell(); + } + +Generally, we prefer "uncuddled elses": + + if ($foo) { + print; + } + else { + die; + } + +_If_ the if statement is very brief, sometimes "cuddling" the else makes code more readable. Feel free to cuddle them in that case: + + + if ($foo) { + print; + } else { + die; + } + +=head2 Operators + +Put space around most operators. The primary exception is the for +aesthetics; e.g., sometimes the space around "**" is ommitted, +and there is never a space before a ",", but always after. + + print $x , $y; # wrong + print $x, $y; # right + + $x = 2 >> 1; # good + $y = 2**2; # ok + +Note that "&&" and "||" have a higher precedence than "and" and "or". +Other than that, they are exactly the same. It is best to use the lower +precedence version for control, and the higher for testing/returning +values. Examples: + + $bool = $flag1 or $flag2; # WRONG (doesn't work) + $value = $foo || $bar; # right + open(FILE, $file) or die $!; + + $true = foo($bar) && baz($buz); + foo($bar) and baz($buz); + +Note that "and" is seldom ever used, because the statement above is +better written using "if": + + baz($buz) if foo($bar); + +Most of the time, the confusion between and/&&, or/|| can be alleviated +by using parentheses. If you want to leave off the parentheses then you +I<must> use the proper operator. But if you use parentheses -- and +normally, you should, if there is any question at all -- then it doesn't +matter which you use. Use whichever is most readable and aesthetically +pleasing to you at the time, and be consistent within your block of code. + +Break long lines AFTER operators, except for "and", "or", "&&", "||". +Try to keep the two parts to a binary operator (an operator that +has two operands) together when possible. + + print "foo" . "bar" . "baz" + . "buz"; # wrong + + print "foo" . "bar" . "baz" . + "buz"; # right + + print $foo unless $x == 3 && $y == + 4 && $z == 5; # wrong + + print $foo unless $x == 3 && $y == 4 + && $z == 5; # right + + +=head2 Other + +Put space around a complex subscript inside the brackets or braces. + + $foo{$bar{baz}{buz}}; # OK + $foo{ $bar{baz}{buz} }; # better + +In general, use single-quotes around literals, and double-quotes +when the text needs to be interpolated. + +It is OK to omit quotes around names in braces and when using +the => operator, but be careful not to use a name that doubles as +a function; in that case, quote. + + $what{'time'}{it}{is} = time(); + +When making compound statements, put the primary action first. + + open(FILE, $fh) or die $!; # right + die $! unless open(FILE, $fh); # wrong + + print "Starting\n" if $verbose; # right + $verbose && print "Starting\n"; # wrong + + +Use here-docs instead of repeated print statements. + + print <<EOT; + This is a whole bunch of text. + I like it. I don't need to worry about messing + with lots of print statements and lining them up. + EOT + +Just remember that unless you put single quotes around your here-doc +token (<<'EOT'), the text will be interpolated, so escape any "$" or "@" +as needed. + +=head1 INTERNATIONALIZATION + + +=head2 String extraction styleguide + +=over 4 + +=item Web templates + +Templates should use the /l filtering component to call the localisation +framework + +The string Foo! + +Should become <&|/l&>Foo!</&> + +All newlines should be removed from localized strings, to make it easy to +grep the codebase for strings to be localized + +The string Foo + Bar + Baz + +Should become <&|/l&>Foo Bar Baz</&> + + +Variable subsititutions should be moved to Locale::MakeText format + +The string Hello, <%$name %> + +should become <&|/l, $name &>Hello, [_1]</&> + + +Multiple variables work just like single variables + +The string You found <%$num%> tickets in queue <%$queue%> + +should become <&|/l, $num, $queue &>You found [_1] tickets in queue [_2]</&> + +When subcomponents are called in the middle of a phrase, they need to be escaped +too: + +The string <input type="submit" value="New ticket in"> <& /Elements/SelectNewTicketQueue&> + +should become <&|/l, $m->scomp('/Elements/SelectNewTicketQueue')&><input type="submit" value="New ticket in"> [_1]</&> + + + + +The string <& /Elements/TitleBoxStart, width=> "40%", titleright => "RT $RT::VERSION for $RT::rtname", title => 'Login' &> + +should become <& /Elements/TitleBoxStart, + width=> "40%", + titleright => loc("RT [_1] for [_2]",$RT::VERSION, $RT::rtname), + title => loc('Login'), + &> + + +=item Library code + + + +Within RT's core code, every module has a localization handle available through the 'loc' method: + +The code return ( $id, "Queue created" ); + +should become return ( $id, $self->loc("Queue created") ); + +When returning or localizing a single string, the "extra" set of parenthesis () should be omitted. + +The code return ("Subject changed to ". $self->Data ); + +should become return $self->loc( "Subject changed to [_1]", $self->Data ); + + +It is important not to localize the names of rights or statuses within RT's core, as there is logic that depends on them as string identifiers. The proper place to localize these values is when they're presented for display in the web or commandline interfaces. + + +=back 4 + +=head1 CODING PRCEDURE + +This is for new programs, modules, specific APIs, or anything else. + +Contact for core team is the slashcode-development mailing list. + +=over 4 + +=item Present idea to core team + +We may know of a better way to approach the problem, or know of an +existing way to deal with it, or know someone else is working on it. +This is mostly informal, but a fairly complete explanation for the need +and use of the code should be provided. + + +=item Present complete specs to core team + +The complete proposed API to the core team should be submitted for +approval and discussion. For web and command-line programs, present the +functionality and interface (op codes, command-lin switches, etc.). + +The best way to do this is to take the documentation portion of the +boilerplate and fill it in. You can make changes later if necessary, +but fill it in as much as you can. + + +=item Announce any changes to interface + +If the way it works or how it is called is going to change, notify the core +team. + + +=item Prepare for core review + +When you are done, the code will undergo a code review by a member of +the core team, or someone picked by the core team. This is not to +belittle you (that's just a nice side effect), it is to make sure that +you understand your code, that we understand your code, that it won't +break other code, that it follows the documentation and existing +proposal. It is to check for possible optimizations or better ways of +doing it. + +For members of the core team, one or more other members of the team will +perform the review. + +Note that all code is expected to follow the coding principles and style +guide contained in this document. + + +=item Finish it up + +After the code is done (possibly going through multiple code reviews), +if you do not have repository access, submit it to rt-<major-version>-bugs@fsck.com as a unified diff. From that point on, it'll be handled by someone with repository access. + +=back + + +=head1 BUG REPORTS, PATCHES + +Use rt-<major-version>-bugs@fsck.com for I<any> bug that is not +being fixed immediately. If it is not in RT, there +is a good chance it will not be dealt with. + +Send patches to rt-<major-version>-bugs@fsck.com, too. Use C<diff +-u> for patches. + + + +=head1 TO DO + +Talk about DBIx::SearchBuilder + +Talk about mason + component style + cascading style sheets + +Talk about adding a new translation + +Talk more about logging + +=head1 CHANGES + + Adapted from Slash Styleguide by jesse - 20 Dec, 2002 + + +=head1 VERSION + +0.1 diff --git a/rt/lib/RT/Template_Overlay.pm b/rt/lib/RT/Template_Overlay.pm index 0b5e67d0f..5950aa3ea 100644 --- a/rt/lib/RT/Template_Overlay.pm +++ b/rt/lib/RT/Template_Overlay.pm @@ -203,10 +203,11 @@ sub LoadQueueTemplate { my $self = shift; my %args = ( Queue => undef, - Name => undef + Name => undef, + @_ ); - return ( $self->LoadByCols( Name => $args{'Name'}, Queue => {'Queue'} ) ); + return ( $self->LoadByCols( Name => $args{'Name'}, Queue => $args{'Queue'} ) ); } @@ -318,24 +319,30 @@ sub Parse { my $parser = MIME::Parser->new(); # Setup output directory for files. from RT::EmailParser::_SetupMIMEParser - if (my $AttachmentDir = eval { File::Temp::tempdir( TMPDIR => 1, CLEANUP => 1 ) }) { - # Set up output directory for files: - $parser->output_dir("$AttachmentDir"); + if ( my $AttachmentDir = + eval { File::Temp::tempdir( TMPDIR => 1, CLEANUP => 1 ) } ) + { + + # Set up output directory for files: + $parser->output_dir("$AttachmentDir"); } else { - # On some situations TMPDIR is non-writable. sad but true. - $parser->output_to_core(1); - $parser->tmp_to_core(1); + $RT::Logger->error("Couldn't write attachments to temp dir on disk. using more memory and processor."); + # On some situations TMPDIR is non-writable. sad but true. + $parser->output_to_core(1); + $parser->tmp_to_core(1); } + #If someone includes a message, don't extract it $parser->extract_nested_messages(1); + # Set up the prefix for files with auto-generated names: $parser->output_prefix("part"); + # If content length is <= 50000 bytes, store each msg as in-core scalar; # Else, write to a disk file (the default action): $parser->output_to_core(50000); - ### Should we forgive normally-fatal errors? $parser->ignore_errors(1); $self->{'MIMEObj'} = eval { $parser->parse_data($content) }; @@ -350,7 +357,6 @@ sub Parse { $self->{'MIMEObj'}->head->unfold(); return ( 1, $self->loc("Template parsed") ); - } @@ -369,12 +375,13 @@ sub _ParseContent { @_ ); - + no warnings 'redefine'; $T::Ticket = $args{'TicketObj'}; $T::Transaction = $args{'TransactionObj'}; $T::Argument = $args{'Argument'}; $T::Requestor = eval { $T::Ticket->Requestors->UserMembersObj->First->Name }; $T::rtname = $RT::rtname; + *T::loc = sub { $T::Ticket->loc(@_) }; # We need to untaint the content of the template, since we'll be working # with it diff --git a/rt/lib/RT/Ticket_Overlay.pm b/rt/lib/RT/Ticket_Overlay.pm index c88bbc90f..981df4125 100644 --- a/rt/lib/RT/Ticket_Overlay.pm +++ b/rt/lib/RT/Ticket_Overlay.pm @@ -305,6 +305,7 @@ sub Create { my $self = shift; my %args = ( id => undef, + EffectiveId => undef, Queue => undef, Requestor => undef, Cc => undef, @@ -314,6 +315,7 @@ sub Create { Subject => '', InitialPriority => undef, FinalPriority => undef, + Priority => undef, Status => 'new', TimeWorked => "0", TimeLeft => 0, @@ -378,6 +380,11 @@ sub Create { $args{'FinalPriority'} = ( $QueueObj->FinalPriority || 0 ) unless ( defined $args{'FinalPriority'} ); + # Priority may have changed from InitialPriority, for the case + # where we're importing tickets (eg, from an older RT version.) + my $priority = $args{'Priority'} || $args{'InitialPriority'}; + + # {{{ Dates #TODO we should see what sort of due date we're getting, rather + # than assuming it's in ISO format. @@ -473,7 +480,7 @@ sub Create { next unless (defined $args{$type}); foreach my $watcher ( ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) { my $user = RT::User->new($RT::SystemUser); - $user->LoadOrCreateByEmail($watcher) if ($watcher !~ /^\d+$/); + $user->LoadOrCreateByEmail($watcher) if ($watcher && $watcher !~ /^\d+$/); } } @@ -485,7 +492,7 @@ sub Create { Subject => $args{'Subject'}, InitialPriority => $args{'InitialPriority'}, FinalPriority => $args{'FinalPriority'}, - Priority => $args{'InitialPriority'}, + Priority => $priority, Status => $args{'Status'}, TimeWorked => $args{'TimeWorked'}, TimeEstimated => $args{'TimeEstimated'}, @@ -515,7 +522,7 @@ sub Create { } #Set the ticket's effective ID now that we've created it. - my ( $val, $msg ) = $self->__Set( Field => 'EffectiveId', Value => $id ); + my ( $val, $msg ) = $self->__Set( Field => 'EffectiveId', Value => ($args{'EffectiveId'} || $id ) ); unless ($val) { $RT::Logger->crit("$self ->Create couldn't set EffectiveId: $msg\n"); @@ -546,6 +553,9 @@ sub Create { next unless (defined $args{$type}); foreach my $watcher ( ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) { + # If there is an empty entry in the list, let's get out of here. + next unless $watcher; + # we reason that all-digits number must be a principal id, not email # this is the only way to can add my $field = 'Email'; @@ -601,7 +611,7 @@ sub Create { my $cfid = $1; foreach my $value ( ref( $args{$arg} ) ? @{ $args{$arg} } : ( $args{$arg} ) ) { - next unless ($value); + next unless (length($value)); $self->_AddCustomFieldValue( Field => $cfid, Value => $value, RecordTransaction => 0 @@ -832,8 +842,8 @@ AddRequestor: jesse\@example.com EOF my $ticket = RT::Ticket->new($RT::SystemUser); -$ticket->Create(Subject => 'first', Queue => 'general'); -ok($ticket->Id, "Created the test ticket"); +my ($id,$msg) =$ticket->Create(Subject => 'first', Queue => 'general'); +ok($ticket->Id, "Created the test ticket - ".$id ." - ".$msg); $ticket->UpdateFrom822($simple_update); is($ticket->Subject, 'target', "changed the subject"); my $jesse = RT::User->new($RT::SystemUser); @@ -970,7 +980,7 @@ sub UpdateFrom822 { # If we've been given a number of delresses to del, do it. foreach my $address (@{$ticketargs{'Del'.$type}}) { - my ($id, $msg) = $self->DelWatcher( Type => $type, Email => $address); + my ($id, $msg) = $self->DeleteWatcher( Type => $type, Email => $address); push (@results, $msg) ; } @@ -2228,9 +2238,11 @@ sub Comment { # The "NotifyOtherRecipients" scripAction will look for RT--Send-Cc: and # RT-Send-Bcc: headers - $args{'MIMEObj'}->head->add( 'RT-Send-Cc', $args{'CcMessageTo'} ) + $args{'MIMEObj'}->head->add( 'RT-Send-Cc', + RT::User::CanonicalizeEmailAddress(undef, $args{'CcMessageTo'}) ) if defined $args{'CcMessageTo'}; - $args{'MIMEObj'}->head->add( 'RT-Send-Bcc', $args{'BccMessageTo'} ) + $args{'MIMEObj'}->head->add( 'RT-Send-Bcc', + RT::User::CanonicalizeEmailAddress(undef, $args{'BccMessageTo'}) ) if defined $args{'BccMessageTo'}; #Record the correspondence (write the transaction) @@ -2296,9 +2308,11 @@ sub Correspond { # The "NotifyOtherRecipients" scripAction will look for RT-Send-Cc: and RT-Send-Bcc: # headers - $args{'MIMEObj'}->head->add( 'RT-Send-Cc', $args{'CcMessageTo'} ) + $args{'MIMEObj'}->head->add( 'RT-Send-Cc', + RT::User::CanonicalizeEmailAddress(undef, $args{'CcMessageTo'}) ) if defined $args{'CcMessageTo'}; - $args{'MIMEObj'}->head->add( 'RT-Send-Bcc', $args{'BccMessageTo'} ) + $args{'MIMEObj'}->head->add( 'RT-Send-Bcc', + RT::User::CanonicalizeEmailAddress(undef, $args{'BccMessageTo'}) ) if defined $args{'BccMessageTo'}; #Record the correspondence (write the transaction) @@ -2894,9 +2908,6 @@ sub MergeInto { } - #make a new link: this ticket is merged into that other ticket. - $self->AddLink( Type => 'MergedInto', Target => $NewTicket->Id()); - #add all of this ticket's watchers to that ticket. my $requestors = $self->Requestors->MembersObj; while (my $watcher = $requestors->Next) { @@ -2936,6 +2947,9 @@ sub MergeInto { ); } + #make a new link: this ticket is merged into that other ticket. + $self->AddLink( Type => 'MergedInto', Target => $NewTicket->Id()); + $NewTicket->_SetLastUpdated; return ( 1, $self->loc("Merge Successful") ); @@ -3266,8 +3280,14 @@ sub SetStatus { } #Check ACL - unless ( $self->CurrentUserHasRight('ModifyTicket') ) { - return ( 0, $self->loc('Permission Denied') ); + if ( $args{Status} eq 'deleted') { + unless ($self->CurrentUserHasRight('DeleteTicket')) { + return ( 0, $self->loc('Permission Denied') ); + } + } else { + unless ($self->CurrentUserHasRight('ModifyTicket')) { + return ( 0, $self->loc('Permission Denied') ); + } } if (!$args{Force} && ($args{'Status'} eq 'resolved') && $self->HasUnresolvedDependencies) { @@ -3440,6 +3460,7 @@ sub CustomFieldValues { my $cf_values = RT::TicketCustomFieldValues->new( $self->CurrentUser ); $cf_values->LimitToCustomField($cf->id); $cf_values->LimitToTicket($self->Id()); + $cf_values->OrderBy( FIELD => 'id' ); # @values is a CustomFieldValues object; return ($cf_values); @@ -3451,7 +3472,7 @@ sub CustomFieldValues { =item AddCustomFieldValue { Field => FIELD, Value => VALUE } -VALUE can either be a CustomFieldValue object or a string. +VALUE should be a string. FIELD can be a CustomField object OR a CustomField ID. @@ -3798,11 +3819,45 @@ sub _NewTransaction { if ( defined $args{'TimeTaken'} ) { $self->_UpdateTimeTaken( $args{'TimeTaken'} ); } + if ( $RT::UseTransactionBatch and $transaction ) { + push @{$self->{_TransactionBatch}}, $trans; + } return ( $transaction, $msg, $trans ); } # }}} +=head2 TransactionBatch + + Returns an array reference of all transactions created on this ticket during + this ticket object's lifetime, or undef if there were none. + + Only works when the $RT::UseTransactionBatch config variable is set to true. + +=cut + +sub TransactionBatch { + my $self = shift; + return $self->{_TransactionBatch}; +} + +sub DESTROY { + my $self = shift; + + # The following line eliminates reentrancy. + # It protects against the fact that perl doesn't deal gracefully + # when an object's refcount is changed in its destructor. + return if $self->{_Destroyed}++; + + my $batch = $self->TransactionBatch or return; + require RT::Scrips; + RT::Scrips->new($RT::SystemUser)->Apply( + Stage => 'TransactionBatch', + TicketObj => $self, + TransactionObj => $batch->[0], + ); +} + # }}} # {{{ PRIVATE UTILITY METHODS. Mostly needed so Ticket can be a DBIx::Record diff --git a/rt/lib/RT/Tickets_Overlay.pm b/rt/lib/RT/Tickets_Overlay.pm index d8a1ac803..55777b0fb 100644 --- a/rt/lib/RT/Tickets_Overlay.pm +++ b/rt/lib/RT/Tickets_Overlay.pm @@ -84,7 +84,7 @@ my %FIELDS = RefersTo => ['LINK' => To => 'RefersTo',], HasMember => ['LINK' => From => 'MemberOf',], DependentOn => ['LINK' => From => 'DependsOn',], - ReferredTo => ['LINK' => From => 'RefersTo',], + ReferredToBy => ['LINK' => From => 'RefersTo',], # HasDepender => ['LINK',], # RelatedTo => ['LINK',], Told => ['DATE' => 'Told',], @@ -122,14 +122,23 @@ my %dispatch = LINKFIELD => \&_LinkFieldLimit, CUSTOMFIELD => \&_CustomFieldLimit, ); +my %can_bundle = + ( WATCHERFIELD => "yeps", + ); # Default EntryAggregator per type +# if you specify OP, you must specify all valid OPs my %DefaultEA = ( INT => 'AND', ENUM => { '=' => 'OR', '!='=> 'AND' }, - DATE => 'AND', + DATE => { '=' => 'OR', + '>='=> 'AND', + '<='=> 'AND', + '>' => 'AND', + '<' => 'AND' + }, STRING => { '=' => 'OR', '!='=> 'AND', 'LIKE'=> 'AND', @@ -137,6 +146,7 @@ my %DefaultEA = ( }, TRANSFIELD => 'AND', TRANSDATE => 'AND', + LINK => 'OR', LINKFIELD => 'AND', TARGET => 'AND', BASE => 'AND', @@ -154,6 +164,7 @@ my %DefaultEA = ( # into Tickets_Overlay_SQL. sub FIELDS { return \%FIELDS } sub dispatch { return \%dispatch } +sub can_bundle { return \%can_bundle } # Bring in the clowns. require RT::Tickets_Overlay_SQL; @@ -345,7 +356,7 @@ sub _DateLimit { my ($sb,$field,$op,$value,@rest) = @_; die "Invalid Date Op: $op" - unless $op =~ /^(=|!=|>|<|>=|<=)$/; + unless $op =~ /^(=|>|<|>=|<=)$/; my $meta = $FIELDS{$field}; die "Incorrect Meta Data for $field" @@ -354,18 +365,52 @@ sub _DateLimit { require Time::ParseDate; use POSIX 'strftime'; + # FIXME: Replace me with RT::Date( Type => 'unknown' ...) my $time = Time::ParseDate::parsedate( $value, UK => $RT::DateDayBeforeMonth, PREFER_PAST => $RT::AmbiguousDayInPast, - PREFER_FUTURE => !($RT::AmbiguousDayInPast)); - $value = strftime("%Y-%m-%d %H:%M",localtime($time)); + PREFER_FUTURE => !($RT::AmbiguousDayInPast), + FUZZY => 1 + ); - $sb->_SQLLimit( - FIELD => $meta->[1], - OPERATOR => $op, - VALUE => $value, - @rest, - ); + if ($op eq "=") { + # 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. + + my $daystart = strftime("%Y-%m-%d %H:%M", + gmtime($time - ( $time % 86400 ))); + my $dayend = strftime("%Y-%m-%d %H:%M", + gmtime($time + ( 86399 - $time % 86400 ))); + + $sb-> _OpenParen; + + $sb->_SQLLimit( + FIELD => $meta->[1], + OPERATOR => ">=", + VALUE => $daystart, + @rest, + ); + + $sb->_SQLLimit( + FIELD => $meta->[1], + OPERATOR => "<=", + VALUE => $dayend, + @rest, + ENTRYAGGREGATOR => 'AND', + ); + + $sb-> _CloseParen; + + } else { + $value = strftime("%Y-%m-%d %H:%M", gmtime($time)); + $sb->_SQLLimit( + FIELD => $meta->[1], + OPERATOR => $op, + VALUE => $value, + @rest, + ); + } } =head2 _StringLimit @@ -425,8 +470,8 @@ sub _TransDateLimit { ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'Ticket'); my $d = new RT::Date( $sb->CurrentUser ); - $d->Set($value); - $value = $d->ISO; + $d->Set( Format => 'ISO', Value => $value); + $value = $d->ISO; #Search for the right field $sb->_SQLLimit(ALIAS => $sb->{_sql_trattachalias}, @@ -528,9 +573,7 @@ sub _WatcherLimit { $self->_OpenParen; my $groups = $self->NewAlias('Groups'); - my $group_princs = $self->NewAlias('Principals'); my $groupmembers = $self->NewAlias('CachedGroupMembers'); - my $member_princs = $self->NewAlias('Principals'); my $users = $self->NewAlias('Users'); @@ -542,14 +585,29 @@ sub _WatcherLimit { # $aggregator = 'AND'; # } - - $self->_SQLLimit(ALIAS => $users, - FIELD => $rest{SUBKEY} || 'EmailAddress', - VALUE => $value, - OPERATOR => $op, - CASESENSITIVE => 0, - @rest, - ); + if (ref $field) { # gross hack + my @bundle = @$field; + $self->_OpenParen; + for my $chunk (@bundle) { + ($field,$op,$value,@rest) = @$chunk; + $self->_SQLLimit(ALIAS => $users, + FIELD => $rest{SUBKEY} || 'EmailAddress', + VALUE => $value, + OPERATOR => $op, + CASESENSITIVE => 0, + @rest, + ); + } + $self->_CloseParen; + } else { + $self->_SQLLimit(ALIAS => $users, + FIELD => $rest{SUBKEY} || 'EmailAddress', + VALUE => $value, + OPERATOR => $op, + CASESENSITIVE => 0, + @rest, + ); + } # {{{ Tie to groups for tickets we care about $self->_SQLLimit(ALIAS => $groups, @@ -573,17 +631,9 @@ sub _WatcherLimit { } $self->Join (ALIAS1 => $groups, FIELD1 => 'id', - ALIAS2 => $group_princs, FIELD2 => 'ObjectId'); - $self->_SQLLimit(ALIAS => $group_princs, - FIELD => 'PrincipalType', - VALUE => 'Group', - ENTRYAGGREGATOR => 'AND'); - $self->Join( ALIAS1 => $group_princs, FIELD1 => 'id', ALIAS2 => $groupmembers, FIELD2 => 'GroupId'); $self->Join( ALIAS1 => $groupmembers, FIELD1 => 'MemberId', - ALIAS2 => $member_princs, FIELD2 => 'id'); - $self->Join (ALIAS1 => $member_princs, FIELD1 => 'ObjectId', ALIAS2 => $users, FIELD2 => 'id'); $self->_CloseParen; @@ -679,6 +729,7 @@ sub _CustomFieldLimit { $CF->LimitToQueue( $q->Id ); $queue = $q->Id; } else { + $field = $1 if $field =~ /^{(.+)}$/; # trim { } $CF->LimitToGlobal; } $CF->FindAllRows; @@ -700,11 +751,19 @@ sub _CustomFieldLimit { my $null_columns_ok; - my $TicketCFs = $self->Join( TYPE => 'left', - ALIAS1 => 'main', - FIELD1 => 'id', - TABLE2 => 'TicketCustomFieldValues', - FIELD2 => 'Ticket' ); + + my $TicketCFs; + # Perform one Join per CustomField + if ($self->{_sql_keywordalias}{$cfid}) { + $TicketCFs = $self->{_sql_keywordalias}{$cfid}; + } else { + $TicketCFs = $self->{_sql_keywordalias}{$cfid} = + $self->Join( TYPE => 'left', + ALIAS1 => 'main', + FIELD1 => 'id', + TABLE2 => 'TicketCustomFieldValues', + FIELD2 => 'Ticket' ); + } $self->_OpenParen; @@ -1373,11 +1432,18 @@ sub LimitLinkedFrom { TYPE => undef, @_); + # translate RT2 From/To naming to RT3 TicketSQL naming + my %fromToMap = qw(DependsOn DependentOn + MemberOf HasMember + RefersTo ReferredToBy); + + my $type = $args{'TYPE'}; + $type = $fromToMap{$type} if exists($fromToMap{$type}); $self->Limit( FIELD => 'LinkedTo', TARGET => undef, BASE => ($args{'BASE'} || $args{'TICKET'}), - TYPE => $args{'TYPE'}, + TYPE => $type, DESCRIPTION => $self->loc( "Tickets [_1] [_2]", $self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'}) ), @@ -1581,11 +1647,12 @@ Takes a paramhash of key/value pairs with the following keys: =over 4 -=item KEYWORDSELECT - KeywordSelect id +=item CUSTOMFIELD - CustomField name or id. If a name is passed, an additional +parameter QUEUE may also be passed to distinguish the custom field. -=item OPERATOR - (for KEYWORD only - KEYWORDSELECT operator is always `=') +=item OPERATOR - The usual Limit operators -=item KEYWORD - Keyword id +=item VALUE - The value to compare against =back @@ -1603,7 +1670,13 @@ sub LimitCustomField { use RT::CustomFields; my $CF = RT::CustomField->new( $self->CurrentUser ); - $CF->Load( $args{CUSTOMFIELD} ); + if ( $args{CUSTOMFIELD} =~ /^\d+$/) { + $CF->Load( $args{CUSTOMFIELD} ); + } + else { + $CF->LoadByNameAndQueue( Name => $args{CUSTOMFIELD}, Queue => $args{QUEUE} ); + $args{CUSTOMFIELD} = $CF->Id; + } #If we are looking to compare with a null value. if ( $args{'OPERATOR'} =~ /^is$/i ) { @@ -1618,10 +1691,6 @@ sub LimitCustomField { $args{'DESCRIPTION'} ||= $self->loc("Custom field [_1] [_2] [_3]", $CF->Name , $args{OPERATOR} , $args{VALUE}); } -# my $index = $self->_NextIndex; -# %{ $self->{'TicketRestrictions'}{$index} } = %args; - - my $q = ""; if ($CF->Queue) { my $qo = new RT::Queue( $self->CurrentUser ); @@ -1629,6 +1698,10 @@ sub LimitCustomField { $q = $qo->Name; } + my @rest; + @rest = ( ENTRYAGGREGATOR => 'AND' ) + if ($CF->Type eq 'SelectMultiple'); + $self->Limit( VALUE => $args{VALUE}, FIELD => "CF.".( $q ? $q . ".{" . $CF->Name . "}" @@ -1636,11 +1709,11 @@ sub LimitCustomField { ), OPERATOR => $args{OPERATOR}, CUSTOMFIELD => 1, + @rest, ); $self->{'RecalcTicketLimits'} = 1; - # return ($index); } # }}} @@ -1924,12 +1997,19 @@ sub _RestrictionsToClauses { # defined $restriction->{'TARGET'} ? # $restriction->{TARGET} ) - my $ea = $DefaultEA{$type}; + my $ea = $restriction->{ENTRYAGGREGATOR} || $DefaultEA{$type} || "AND"; if ( ref $ea ) { die "Invalid operator $op for $field ($type)" unless exists $ea->{$op}; $ea = $ea->{$op}; } + + # Each CustomField should be put into a different Clause so they + # are ANDed together. + if ($restriction->{CUSTOMFIELD}) { + $realfield = $field; + } + exists $clause{$realfield} or $clause{$realfield} = []; # Escape Quotes $field =~ s!(['"])!\\$1!g; @@ -1963,6 +2043,11 @@ sub _ProcessRestrictions { #a new search delete $self->{'TicketAliases'}; delete $self->{'items_array'}; + delete $self->{'item_map'}; + delete $self->{'raw_rows'}; + delete $self->{'rows'}; + delete $self->{'count_all'}; + my $sql = $self->{_sql_query}; # Violating the _SQL namespace if (!$sql||$self->{'RecalcTicketLimits'}) { # "Restrictions to Clauses Branch\n"; @@ -1995,12 +2080,12 @@ sub _BuildItemMap { delete $self->{'item_map'}; if ($items->[0]) { - $self->{'item_map'}->{'first'} = $items->[0]->Id; + $self->{'item_map'}->{'first'} = $items->[0]->EffectiveId; while (my $item = shift @$items ) { - my $id = $item->Id; + my $id = $item->EffectiveId; $self->{'item_map'}->{$id}->{'defined'} = 1; $self->{'item_map'}->{$id}->{prev} = $prev; - $self->{'item_map'}->{$id}->{next} = $items->[0]->Id if ($items->[0]); + $self->{'item_map'}->{$id}->{next} = $items->[0]->EffectiveId if ($items->[0]); $prev = $id; } $self->{'item_map'}->{'last'} = $prev; diff --git a/rt/lib/RT/Tickets_Overlay_SQL.pm b/rt/lib/RT/Tickets_Overlay_SQL.pm index d78a56db3..629e6da2d 100644 --- a/rt/lib/RT/Tickets_Overlay_SQL.pm +++ b/rt/lib/RT/Tickets_Overlay_SQL.pm @@ -29,6 +29,10 @@ use warnings; my %FIELDS = %{FIELDS()}; my %dispatch = %{dispatch()}; +my %can_bundle = %{can_bundle()}; + +# Lower Case version of FIELDS, for case insensitivity +my %lcfields = map { ( lc($_) => $_ ) } (keys %FIELDS); sub _InitSQL { my $self = shift; @@ -119,20 +123,57 @@ my $re_keyword = qr[$RE{delimited}{-delim=>qq{\'\"}}|(?:\{|\}|\w|\.)+]; my $re_op = qr[=|!=|>=|<=|>|<|(?i:IS NOT)|(?i:IS)|(?i:NOT LIKE)|(?i:LIKE)]; # long to short my $re_paren = qr'\(|\)'; +sub _close_bundle +{ + my ($self, @bundle) = @_; + return unless @bundle; + if (@bundle == 1) { + $bundle[0]->{dispatch}->( + $self, + $bundle[0]->{key}, + $bundle[0]->{op}, + $bundle[0]->{val}, + SUBCLAUSE => "", + ENTRYAGGREGATOR => $bundle[0]->{ea}, + SUBKEY => $bundle[0]->{subkey}, + ); + } else { + my @args; + for my $chunk (@bundle) { + push @args, [ + $chunk->{key}, + $chunk->{op}, + $chunk->{val}, + SUBCLAUSE => "", + ENTRYAGGREGATOR => $chunk->{ea}, + SUBKEY => $chunk->{subkey}, + ]; + } + $bundle[0]->{dispatch}->( + $self, \@args, + ); + } +} + sub _parser { my ($self,$string) = @_; my $want = KEYWORD | PAREN; my $last = undef; my $depth = 0; + my @bundle; my ($ea,$key,$op,$value) = ("","","",""); + # order of matches in the RE is important.. op should come early, + # because it has spaces in it. otherwise "NOT LIKE" might be parsed + # as a keyword or value. + while ($string =~ /( $re_aggreg + |$re_op |$re_keyword |$re_value - |$re_op |$re_paren )/igx ) { my $val = $1; @@ -156,10 +197,12 @@ sub _parser { # Parens are highest priority if ($current & PAREN) { if ($val eq "(") { + $self->_close_bundle(@bundle); @bundle = (); $depth++; $self->_OpenParen; } else { + $self->_close_bundle(@bundle); @bundle = (); $depth--; $self->_CloseParen; } @@ -204,10 +247,9 @@ sub _parser { } my $class; - my ($stdkey) = grep { /^$key$/i } (keys %FIELDS); - if ($stdkey && exists $FIELDS{$stdkey}) { + if (exists $lcfields{lc $key}) { + $key = $lcfields{lc $key}; $class = $FIELDS{$key}->[0]; - $key = $stdkey; } # no longer have a default, since CF's are now a real class, not fallthrough # fixme: "default class" is not Generic. @@ -219,20 +261,37 @@ sub _parser { die "No such dispatch method: $class" unless exists $dispatch{$class}; my $sub = $dispatch{$class} || die;; - $sub->( - $self, - $key, - $op, - $val, - SUBCLAUSE => "", # don't need anymore - ENTRYAGGREGATOR => $ea || "", - SUBKEY => $subkey, - ); + if ($can_bundle{$class} && + (!@bundle || + ($bundle[-1]->{dispatch} == $sub && + $bundle[-1]->{key} eq $key && + $bundle[-1]->{subkey} eq $subkey))) + { + push @bundle, { + dispatch => $sub, + key => $key, + op => $op, + val => $val, + ea => $ea || "", + subkey => $subkey, + }; + } else { + $self->_close_bundle(@bundle); @bundle = (); + $sub->( + $self, + $key, + $op, + $val, + SUBCLAUSE => "", # don't need anymore + ENTRYAGGREGATOR => $ea || "", + SUBKEY => $subkey, + ); + } $self->{_sql_looking_at}{lc $key} = 1; - + ($ea,$key,$op,$value) = ("","","",""); - + $want = PAREN | AGGREG; } else { die "I'm lost"; @@ -241,6 +300,8 @@ sub _parser { $last = $current; } # while + $self->_close_bundle(@bundle); @bundle = (); + die "Incomplete query" unless (($want | PAREN) || ($want | KEYWORD)); @@ -330,6 +391,10 @@ sub FromSQL { VALUE => 'ticket'); } + # We never ever want to show deleted tickets + $self->SUPER::Limit(FIELD => 'Status' , OPERATOR => '!=', VALUE => 'deleted'); + + # set SB's dirty flag $self->{'must_redo_search'} = 1; $self->{'RecalcTicketLimits'} = 0; diff --git a/rt/lib/RT/Transaction_Overlay.pm b/rt/lib/RT/Transaction_Overlay.pm index 54bb326a9..9c9a2fd14 100644 --- a/rt/lib/RT/Transaction_Overlay.pm +++ b/rt/lib/RT/Transaction_Overlay.pm @@ -51,6 +51,8 @@ ok(require RT::Transaction); use strict; no warnings qw(redefine); +use vars qw( %_BriefDescriptions ); + use RT::Attachments; # {{{ sub Create @@ -112,66 +114,13 @@ sub Create { #Provide a way to turn off scrips if we need to if ( $args{'ActivateScrips'} ) { - - #We're really going to need a non-acled ticket for the scrips to work - my $TicketAsSystem = RT::Ticket->new($RT::SystemUser); - $TicketAsSystem->Load( $args{'Ticket'} ) - || $RT::Logger->err("$self couldn't load ticket $args{'Ticket'}\n"); - - my $TransAsSystem = RT::Transaction->new($RT::SystemUser); - $TransAsSystem->Load( $self->id ) - || $RT::Logger->err( - "$self couldn't load a copy of itself as superuser\n"); - # {{{ Deal with Scrips - - use RT::Scrips; - my $PossibleScrips = RT::Scrips->new($RT::SystemUser); - - $PossibleScrips->LimitToQueue( $TicketAsSystem->QueueObj->Id ) - ; #Limit it to $Ticket->QueueObj->Id - $PossibleScrips->LimitToGlobal() - unless $TicketAsSystem->QueueObj->Disabled; # or to "global" - - - $PossibleScrips->Limit(FIELD => "Stage", VALUE => "TransactionCreate"); - - - my $ConditionsAlias = $PossibleScrips->NewAlias('ScripConditions'); - - $PossibleScrips->Join( - ALIAS1 => 'main', - FIELD1 => 'ScripCondition', - ALIAS2 => $ConditionsAlias, - FIELD2 => 'id' + require RT::Scrips; + RT::Scrips->new($RT::SystemUser)->Apply( + Stage => 'TransactionCreate', + Type => $args{'Type'}, + Ticket => $args{'Ticket'}, + Transaction => $self->id, ); - - #We only want things where the scrip applies to this sort of transaction - $PossibleScrips->Limit( - ALIAS => $ConditionsAlias, - FIELD => 'ApplicableTransTypes', - OPERATOR => 'LIKE', - VALUE => $args{'Type'}, - ENTRYAGGREGATOR => 'OR', - ); - - # Or where the scrip applies to any transaction - $PossibleScrips->Limit( - ALIAS => $ConditionsAlias, - FIELD => 'ApplicableTransTypes', - OPERATOR => 'LIKE', - VALUE => "Any", - ENTRYAGGREGATOR => 'OR', - ); - - #Iterate through each script and check it's applicability. - - while ( my $Scrip = $PossibleScrips->Next() ) { - $Scrip->Apply (TicketObj => $TicketAsSystem, - TransactionObj => $TransAsSystem); - } - - # }}} - } return ( $id, $self->loc("Transaction Created") ); @@ -535,16 +484,24 @@ sub BriefDescription { return ( $self->loc( "[_1] changed from [_2] to [_3]", $self->Field , ( $self->OldValue || $no_value ) , $self->NewValue )); } - if ( $type eq 'Correspond' ) { - return $self->loc("Correspondence added"); - } - - elsif ( $type eq 'Comment' ) { - return $self->loc("Comments added"); + if (my $code = $_BriefDescriptions{$type}) { + return $code->($self); } - elsif ( $type eq 'CustomField' ) { + return $self->loc( "Default: [_1]/[_2] changed from [_3] to [_4]", $type, $self->Field, $self->OldValue, $self->NewValue ); +} +%_BriefDescriptions = ( + Correspond => sub { + my $self = shift; + return $self->loc("Correspondence added"); + }, + Comment => sub { + my $self = shift; + return $self->loc("Comments added"); + }, + CustomField => sub { + my $self = shift; my $field = $self->loc('CustomField'); if ( $self->Field ) { @@ -563,110 +520,127 @@ sub BriefDescription { else { return $self->loc("[_1] [_2] changed to [_3]", $field, $self->OldValue, $self->NewValue ); } - } - - elsif ( $type eq 'Untake' ) { + }, + Untake => sub { + my $self = shift; return $self->loc("Untaken"); - } - - elsif ( $type eq "Take" ) { + }, + Take => sub { + my $self = shift; return $self->loc("Taken"); - } - - elsif ( $type eq "Force" ) { + }, + Force => sub { + my $self = shift; my $Old = RT::User->new( $self->CurrentUser ); $Old->Load( $self->OldValue ); my $New = RT::User->new( $self->CurrentUser ); $New->Load( $self->NewValue ); return $self->loc("Owner forcibly changed from [_1] to [_2]" , $Old->Name , $New->Name); - } - elsif ( $type eq "Steal" ) { + }, + Steal => sub { + my $self = shift; my $Old = RT::User->new( $self->CurrentUser ); $Old->Load( $self->OldValue ); return $self->loc("Stolen from [_1] ", $Old->Name); - } - - elsif ( $type eq "Give" ) { + }, + Give => sub { + my $self = shift; my $New = RT::User->new( $self->CurrentUser ); $New->Load( $self->NewValue ); return $self->loc( "Given to [_1]", $New->Name ); - } - - elsif ( $type eq 'AddWatcher' ) { + }, + AddWatcher => sub { + my $self = shift; my $principal = RT::Principal->new($self->CurrentUser); $principal->Load($self->NewValue); return $self->loc( "[_1] [_2] added", $self->Field, $principal->Object->Name); - } - - elsif ( $type eq 'DelWatcher' ) { + }, + DelWatcher => sub { + my $self = shift; my $principal = RT::Principal->new($self->CurrentUser); $principal->Load($self->OldValue); return $self->loc( "[_1] [_2] deleted", $self->Field, $principal->Object->Name); - } - - elsif ( $type eq 'Subject' ) { + }, + Subject => sub { + my $self = shift; return $self->loc( "Subject changed to [_1]", $self->Data ); - } + }, + AddLink => sub { + my $self = shift; + my $value; + if ( $self->NewValue ) { + my $URI = RT::URI->new( $self->CurrentUser ); + $URI->FromURI( $self->NewValue ); + if ( $URI->Resolver ) { + $value = $URI->Resolver->AsString; + } + else { + $value = $self->NewValue; + } + if ( $self->Field eq 'DependsOn' ) { + return $self->loc( "Dependency on [_1] added", $value ); + } + elsif ( $self->Field eq 'DependedOnBy' ) { + return $self->loc( "Dependency by [_1] added", $value ); - elsif ( $type eq 'AddLink' ) { + } + elsif ( $self->Field eq 'RefersTo' ) { + return $self->loc( "Reference to [_1] added", $value ); + } + elsif ( $self->Field eq 'ReferredToBy' ) { + return $self->loc( "Reference by [_1] added", $value ); + } + elsif ( $self->Field eq 'MemberOf' ) { + return $self->loc( "Membership in [_1] added", $value ); + } + elsif ( $self->Field eq 'HasMember' ) { + return $self->loc( "Member [_1] added", $value ); + } + } + else { + return ( $self->Data ); + } + }, + DeleteLink => sub { + my $self = shift; my $value; - if ($self->NewValue) { - my $URI = RT::URI->new($self->CurrentUser); - $URI->FromURI($self->NewValue); - if ($URI->Resolver) { - $value = $URI->Resolver->AsString; - } else { - $value = $self->NewValue; - } - } - if ($self->Field eq 'DependsOn') { - return $self->loc("Dependency on [_1] added",$value); - } elsif ($self->Field eq 'DependedOnBy') { - return $self->loc("Dependency by [_1] added",$value); - - } elsif ($self->Field eq 'RefersTo') { - return $self->loc("Reference to [_1] added",$value); - } elsif ($self->Field eq 'ReferredToBy') { - return $self->loc("Reference by [_1] added",$value); - } elsif ($self->Field eq 'MemberOf') { - return $self->loc("Membership in [_1] added",$value); - } elsif ($self->Field eq 'HasMember') { - return $self->loc("Member [_1] added",$value); - } else { - return ( $self->Data ); - } - } - elsif ( $type eq 'DeleteLink' ) { - my $value; - if ($self->OldValue) { - my $URI = RT::URI->new($self->CurrentUser); - $URI->FromURI($self->OldValue); - if ($URI->Resolver) { - $value = $URI->Resolver->AsString; - } else { - $value = $self->OldValue; - } - } - - if ($self->Field eq 'DependsOn') { - return $self->loc("Dependency on [_1] deleted",$value); - } elsif ($self->Field eq 'DependedOnBy') { - return $self->loc("Dependency by [_1] deleted",$value); - - } elsif ($self->Field eq 'RefersTo') { - return $self->loc("Reference to [_1] deleted",$value); - } elsif ($self->Field eq 'ReferredToBy') { - return $self->loc("Reference by [_1] deleted",$value); - } elsif ($self->Field eq 'MemberOf') { - return $self->loc("Membership in [_1] deleted",$value); - } elsif ($self->Field eq 'HasMember') { - return $self->loc("Member [_1] deleted",$value); - } else { - return ( $self->Data ); - } - } - elsif ( $type eq 'Set' ) { + if ( $self->OldValue ) { + my $URI = RT::URI->new( $self->CurrentUser ); + $URI->FromURI( $self->OldValue ); + if ( $URI->Resolver ) { + $value = $URI->Resolver->AsString; + } + else { + $value = $self->OldValue; + } + + if ( $self->Field eq 'DependsOn' ) { + return $self->loc( "Dependency on [_1] deleted", $value ); + } + elsif ( $self->Field eq 'DependedOnBy' ) { + return $self->loc( "Dependency by [_1] deleted", $value ); + + } + elsif ( $self->Field eq 'RefersTo' ) { + return $self->loc( "Reference to [_1] deleted", $value ); + } + elsif ( $self->Field eq 'ReferredToBy' ) { + return $self->loc( "Reference by [_1] deleted", $value ); + } + elsif ( $self->Field eq 'MemberOf' ) { + return $self->loc( "Membership in [_1] deleted", $value ); + } + elsif ( $self->Field eq 'HasMember' ) { + return $self->loc( "Member [_1] deleted", $value ); + } + } + else { + return ( $self->Data ); + } + }, + Set => sub { + my $self = shift; if ( $self->Field eq 'Queue' ) { my $q1 = new RT::Queue( $self->CurrentUser ); $q1->Load( $self->OldValue ); @@ -676,25 +650,22 @@ sub BriefDescription { } # Write the date/time change at local time: - elsif ($self->Field =~ /Due|Starts|Started|Told/) { - my $t1 = new RT::Date($self->CurrentUser); - $t1->Set(Format => 'ISO', Value => $self->NewValue); - my $t2 = new RT::Date($self->CurrentUser); - $t2->Set(Format => 'ISO', Value => $self->OldValue); - return $self->loc( "[_1] changed from [_2] to [_3]", $self->Field, $t2->AsString, $t1->AsString ); - } + elsif ($self->Field =~ /Due|Starts|Started|Told/) { + my $t1 = new RT::Date($self->CurrentUser); + $t1->Set(Format => 'ISO', Value => $self->NewValue); + my $t2 = new RT::Date($self->CurrentUser); + $t2->Set(Format => 'ISO', Value => $self->OldValue); + return $self->loc( "[_1] changed from [_2] to [_3]", $self->Field, $t2->AsString, $t1->AsString ); + } else { return $self->loc( "[_1] changed from [_2] to [_3]", $self->Field, $self->OldValue, $self->NewValue ); } - } - elsif ( $type eq 'PurgeTransaction' ) { + }, + PurgeTransaction => sub { + my $self = shift; return $self->loc("Transaction [_1] purged", $self->Data); - } - else { - return $self->loc( "Default: [_1]/[_2] changed from [_3] to [_4]", $type, $self->Field, $self->OldValue, $self->NewValue ); - - } -} + }, +); # }}} @@ -814,4 +785,12 @@ sub CurrentUserHasRight { # }}} +# Transactions don't change. by adding this cache congif directiove, we don't lose pathalogically on long tickets. +sub _CacheConfig { + { + 'cache_p' => 1, + 'fast_update_p' => 1, + 'cache_for_sec' => 180, + } +} 1; diff --git a/rt/lib/RT/URI.pm b/rt/lib/RT/URI.pm index 7acc1dc98..337a356aa 100644 --- a/rt/lib/RT/URI.pm +++ b/rt/lib/RT/URI.pm @@ -91,8 +91,10 @@ sub FromObject { =head2 FromURI <URI> -Returns a local object id for this content. You are expected to know what sort of object this is the Id -of +Returns a local object id for this content. You are expected to know +what sort of object this is the Id of + +Returns true if everything is ok, otherwise false =cut @@ -119,9 +121,12 @@ sub FromURI { unless ($self->Resolver->ParseURI($uri)) { $RT::Logger->warning("Resolver ".ref($self->Resolver)." could not parse $uri"); + $self->{resolver} = undef; # clear resolver return (undef); } +return(1); + } # }}} diff --git a/rt/lib/RT/URI/fsck_com_rt.pm b/rt/lib/RT/URI/fsck_com_rt.pm index 36e8f82fd..4035776ef 100644 --- a/rt/lib/RT/URI/fsck_com_rt.pm +++ b/rt/lib/RT/URI/fsck_com_rt.pm @@ -133,7 +133,7 @@ sub ParseURI { if ( $self->IsLocal) { my $local_uri_prefix = $self->LocalURIPrefix; - if ($self->{'uri'} =~ /^$local_uri_prefix(\d+)$/) { + if ($self->{'uri'} =~ /^$local_uri_prefix(\d+)$/i) { my $id = $1; @@ -170,7 +170,7 @@ Returns undef otherwise. sub IsLocal { my $self = shift; my $local_uri_prefix = $self->LocalURIPrefix; - if ($self->{'uri'} =~ /^$local_uri_prefix/) { + if ($self->{'uri'} =~ /^$local_uri_prefix/i) { return 1; } else { @@ -214,7 +214,7 @@ Otherwise, return its URI sub HREF { my $self = shift; - if ($self->IsLocal) { + if ($self->IsLocal && $self->Object) { return ( $RT::WebURL . "Ticket/Display.html?id=".$self->Object->Id); } else { @@ -230,12 +230,11 @@ Returns either a localized string 'ticket #23' or the full URI if the object is sub AsString { my $self = shift; - if ($self->IsLocal) { - return $self->loc("ticket #[_1]", $self->Object->Id); - + if ($self->IsLocal && $self->Object) { + return $self->loc("ticket #[_1]", $self->Object->Id); } else { - return $self->Object->URI; + return $self->URI; } } diff --git a/rt/lib/RT/User_Overlay.pm b/rt/lib/RT/User_Overlay.pm index e828ebd71..ba322cd4b 100644 --- a/rt/lib/RT/User_Overlay.pm +++ b/rt/lib/RT/User_Overlay.pm @@ -203,14 +203,16 @@ sub Create { @_ # get the real argumentlist ); - - $args{'EmailAddress'} = $self->CanonicalizeEmailAddress($args{'EmailAddress'}); - #Check the ACL unless ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { return ( 0, $self->loc('No permission to create users') ); } + $args{'EmailAddress'} = $self->CanonicalizeEmailAddress($args{'EmailAddress'}); + # if the user doesn't have a name defined, set it to the email address + $args{'Name'} = $args{'EmailAddress'} unless ($args{'Name'}); + + # Privileged is no longer a column in users my $privileged = $args{'Privileged'}; @@ -234,7 +236,9 @@ sub Create { #TODO Specify some sensible defaults. - unless ( defined( $args{'Name'} ) ) { + unless ( $args{'Name'} ) { + use Data::Dumper; + $RT::Logger->crit(Dumper \%args); return ( 0, $self->loc("Must specify 'Name' attribute") ); } @@ -274,6 +278,7 @@ sub Create { #If the create failed. unless ($id) { + $RT::Handle->Rollback(); $RT::Logger->error("Could not create a new user - " .join('-'. %args)); return ( 0, $self->loc('Could not create user') ); @@ -729,7 +734,7 @@ sub ResetPassword { my $template = RT::Template->new( $self->CurrentUser ); - if ( $self->IsPrivileged ) { + if ( $self->Privileged ) { $template->LoadGlobalTemplate('RT_PasswordChange_Privileged'); } else { @@ -929,7 +934,7 @@ sub GenerateRandomPassword { my $length = $min_length + int( rand( $max_length - $min_length ) ); - my $char = $self->GenerateRandomNextChar( $total_sum, $start_freq ); + my $char = $self->_GenerateRandomNextChar( $total_sum, $start_freq ); my @word = ( $char + $a ); for ( 2 .. $length ) { $char = diff --git a/rt/lib/RT/Users_Overlay.pm b/rt/lib/RT/Users_Overlay.pm index b397c3bc4..430e6d720 100644 --- a/rt/lib/RT/Users_Overlay.pm +++ b/rt/lib/RT/Users_Overlay.pm @@ -1,20 +1,19 @@ # BEGIN LICENSE BLOCK # -# Copyright (c) 1996-2002 Jesse Vincent <jesse@bestpractical.com> +# 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 +# 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 @@ -77,6 +76,20 @@ sub _Init { # }}} +=head2 PrincipalsAlias + +Returns the string that represents this Users object's primary "Principals" alias. + + +=cut + +sub PrincipalsAlias { + my $self = shift; + return($self->{'princalias'}); + +} + + # {{{ sub _DoSearch =head2 _DoSearch @@ -233,8 +246,15 @@ sub WhoHaveRight { push @privgroups, $Group->Id(); } + + if (@privgroups) { $self->WhoBelongToGroups(Groups => \@privgroups, IncludeSubgroupMembers => $args{'IncludeSubgroupMembers'}); + } + else { + # We don't have any group that matches -- make it impossible. + $self->Limit( FIELD => 'Id', VALUE => 'IS', OPERATOR => 'NULL' ); + } } # }}} diff --git a/rt/lib/t/02regression.t b/rt/lib/t/02regression.t index 62b4e9a69..4504cc76a 100644 --- a/rt/lib/t/02regression.t +++ b/rt/lib/t/02regression.t @@ -40,5 +40,5 @@ sub wanted_autogen { /^autogen.*\.t\z/s && require $_; } File::Find::find({wanted => \&wanted_regression}, 'lib/t/regression'); sub wanted_regression { /^*\.t\z/s && require $_; } -require "lib/t/03web.pl"; -require "lib/t/04_send_email.pl"; +require "/opt/rt3/lib/t/03web.pl"; +require "/opt/rt3/lib/t/04_send_email.pl"; diff --git a/rt/lib/t/02regression.t.in b/rt/lib/t/02regression.t.in index 51cd7e378..8c050ff5b 100644 --- a/rt/lib/t/02regression.t.in +++ b/rt/lib/t/02regression.t.in @@ -40,5 +40,5 @@ sub wanted_autogen { /^autogen.*\.t\z/s && require $_; } File::Find::find({wanted => \&wanted_regression}, 'lib/t/regression'); sub wanted_regression { /^*\.t\z/s && require $_; } -require "lib/t/03web.pl"; -require "lib/t/04_send_email.pl"; +require "@RT_LIB_PATH@/t/03web.pl"; +require "@RT_LIB_PATH@/t/04_send_email.pl"; diff --git a/rt/lib/t/03web.pl b/rt/lib/t/03web.pl index 4500ff281..94ad3e97e 100644 --- a/rt/lib/t/03web.pl +++ b/rt/lib/t/03web.pl @@ -5,6 +5,7 @@ use WWW::Mechanize; use HTTP::Request::Common; use HTTP::Cookies; use LWP; +use Encode; my $cookie_jar = HTTP::Cookies->new; my $agent = WWW::Mechanize->new(); @@ -15,7 +16,7 @@ $agent->cookie_jar($cookie_jar); # get the top page -my $url = "http://localhost/"; +my $url = "http://localhost".$RT::WebPath."/"; $agent->get($url); is ($agent->{'status'}, 200, "Loaded a page"); @@ -37,6 +38,37 @@ is($agent->{'status'}, 200, "Fetched the page ok"); ok( $agent->{'content'} =~ /Logout/i, "Found a logout link"); + +$agent->get($url."Ticket/Create.html?Queue=1"); +is ($agent->{'status'}, 200, "Loaded Create.html"); +$agent->form(3); +# Start with a string containing characters in latin1 +my $string = "I18N Web Testing æøå"; +Encode::from_to($string, 'iso-8859-1', 'utf8'); +$agent->field('Subject' => "Foo"); +$agent->field('Content' => $string); +ok($agent->submit(), "Created new ticket with $string"); + +ok( $agent->{'content'} =~ qr{$string} , "Found the content"); + +$agent->get($url."Ticket/Create.html?Queue=1"); +is ($agent->{'status'}, 200, "Loaded Create.html"); +$agent->form(3); +# Start with a string containing characters in latin1 +my $string = "I18N Web Testing æøå"; +Encode::from_to($string, 'iso-8859-1', 'utf8'); +$agent->field('Subject' => $string); +$agent->field('Content' => "BAR"); +ok($agent->submit(), "Created new ticket with $string"); + +ok( $agent->{'content'} =~ qr{$string} , "Found the content"); + + + +# }}} + + + use File::Find; find ( \&wanted , 'html/'); diff --git a/rt/lib/t/03web.pl.in b/rt/lib/t/03web.pl.in index abe446eeb..4fe2d3ef3 100644 --- a/rt/lib/t/03web.pl.in +++ b/rt/lib/t/03web.pl.in @@ -5,6 +5,7 @@ use WWW::Mechanize; use HTTP::Request::Common; use HTTP::Cookies; use LWP; +use Encode; my $cookie_jar = HTTP::Cookies->new; my $agent = WWW::Mechanize->new(); @@ -15,7 +16,7 @@ $agent->cookie_jar($cookie_jar); # get the top page -my $url = "http://localhost/"; +my $url = "http://localhost".$RT::WebPath."/"; $agent->get($url); is ($agent->{'status'}, 200, "Loaded a page"); @@ -37,6 +38,37 @@ is($agent->{'status'}, 200, "Fetched the page ok"); ok( $agent->{'content'} =~ /Logout/i, "Found a logout link"); + +$agent->get($url."Ticket/Create.html?Queue=1"); +is ($agent->{'status'}, 200, "Loaded Create.html"); +$agent->form(3); +# Start with a string containing characters in latin1 +my $string = "I18N Web Testing æøå"; +Encode::from_to($string, 'iso-8859-1', 'utf8'); +$agent->field('Subject' => "Foo"); +$agent->field('Content' => $string); +ok($agent->submit(), "Created new ticket with $string"); + +ok( $agent->{'content'} =~ qr{$string} , "Found the content"); + +$agent->get($url."Ticket/Create.html?Queue=1"); +is ($agent->{'status'}, 200, "Loaded Create.html"); +$agent->form(3); +# Start with a string containing characters in latin1 +my $string = "I18N Web Testing æøå"; +Encode::from_to($string, 'iso-8859-1', 'utf8'); +$agent->field('Subject' => $string); +$agent->field('Content' => "BAR"); +ok($agent->submit(), "Created new ticket with $string"); + +ok( $agent->{'content'} =~ qr{$string} , "Found the content"); + + + +# }}} + + + use File::Find; find ( \&wanted , 'html/'); diff --git a/rt/lib/t/04_send_email.pl b/rt/lib/t/04_send_email.pl index 46e3d7472..c384eedfa 100644 --- a/rt/lib/t/04_send_email.pl +++ b/rt/lib/t/04_send_email.pl @@ -33,6 +33,32 @@ sub RT::Action::SendEmail::SendMessage { # create a regular ticket my $parser = RT::EmailParser->new(); + + +# Let's test to make sure a multipart/report is processed correctly +my $content = `cat /opt/rt3/lib/t/data/multipart-report` || die "couldn't find new content"; +# be as much like the mail gateway as possible. +use RT::Interface::Email; + +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /The original message was received/, "It's the bounce"); + + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); + +undef @scrips_fired; + + + + $parser->ParseMIMEEntityFromScalar('From: root@localhost To: rt@example.com Subject: This is a test of new ticket creation as an unknown user @@ -65,7 +91,7 @@ is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); # create an iso 8859-1 ticket @scrips_fired = (); -my $content = `cat ./lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; +my $content = `cat /opt/rt3/lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; @@ -74,8 +100,9 @@ $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. use RT::Interface::Email; - - RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); + +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -103,17 +130,21 @@ $parser->ParseMIMEEntityFromScalar($content); ok ($id, $msg); + + + # we need to swap out SendMessage to test the new things we care about; &iso8859_redef_sendmessage; $RT::EmailOutputEncoding = 'iso-8859-1'; # create an iso 8859-1 ticket @scrips_fired = (); -my $content = `cat ./lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; +my $content = `cat /opt/rt3/lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; # be as much like the mail gateway as possible. use RT::Interface::Email; - RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -202,7 +233,7 @@ sub iso8859_redef_sendmessage { # {{{ test a multipart alternative containing a text-html part with an umlaut -my $content = `cat ./lib/t/data/multipart-alternative-with-umlaut` || die "couldn't find new content"; +my $content = `cat /opt/rt3/lib/t/data/multipart-alternative-with-umlaut` || die "couldn't find new content"; $parser->ParseMIMEEntityFromScalar($content); @@ -210,7 +241,8 @@ $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. ¨auts_redef_sendmessage; -RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -229,7 +261,7 @@ sub umlauts_redef_sendmessage { # {{{ test a text-html message with an umlaut -my $content = `cat ./lib/t/data/text-html-with-umlaut` || die "couldn't find new content"; +my $content = `cat /opt/rt3/lib/t/data/text-html-with-umlaut` || die "couldn't find new content"; $parser->ParseMIMEEntityFromScalar($content); @@ -237,7 +269,8 @@ $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. &text_html_umlauts_redef_sendmessage; -RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -266,7 +299,7 @@ sub text_html_umlauts_redef_sendmessage { # {{{ test a text-html message with russian characters -my $content = `cat ./lib/t/data/text-html-in-russian` || die "couldn't find new content"; +my $content = `cat /opt/rt3/lib/t/data/text-html-in-russian` || die "couldn't find new content"; $parser->ParseMIMEEntityFromScalar($content); @@ -274,7 +307,8 @@ $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. &text_html_russian_redef_sendmessage; -RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -308,14 +342,15 @@ sub text_html_russian_redef_sendmessage { unshift (@RT::EmailInputEncodings, 'koi8-r'); $RT::EmailOutputEncoding = 'koi8-r'; -my $content = `cat ./lib/t/data/russian-subject-no-content-type` || die "couldn't find new content"; +my $content = `cat /opt/rt3/lib/t/data/russian-subject-no-content-type` || die "couldn't find new content"; $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. &text_plain_russian_redef_sendmessage; -RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -346,7 +381,7 @@ $RT::EmailOutputEncoding = 'utf-8'; # {{{ test a message containing a nested RFC 822 message -my $content = `cat ./lib/t/data/nested-rfc-822` || die "couldn't find new content"; +my $content = `cat /opt/rt3/lib/t/data/nested-rfc-822` || die "couldn't find new content"; ok ($content, "Loaded nested-rfc-822 to test"); $parser->ParseMIMEEntityFromScalar($content); @@ -354,7 +389,8 @@ $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. &text_plain_nested_redef_sendmessage; -RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -382,7 +418,63 @@ sub text_plain_nested_redef_sendmessage { # }}} +# {{{ test a multipart alternative containing a uuencoded mesage generated by lotus notes + +my $content = `cat /opt/rt3/lib/t/data/notes-uuencoded` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +¬es_redef_sendmessage; + +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /from Lotus Notes/, "We recorded the content right"); +is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments"); + +sub notes_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { }'; +} + +# }}} + +# {{{ test a multipart that crashes the file-based mime-parser works + +my $content = `cat /opt/rt3/lib/t/data/crashes-file-based-parser` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&crashes_redef_sendmessage; + +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /FYI/, "We recorded the content right"); +is ($tick->Transactions->First->Attachments->Count , 5 , "Has three attachments"); + +sub crashes_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { }'; +} + + +# }}} # Don't taint the environment $everyone->PrincipalObj->RevokeRight(Right =>'SuperUser'); diff --git a/rt/lib/t/04_send_email.pl.in b/rt/lib/t/04_send_email.pl.in index e171cdc9b..2bdf4c5a6 100644 --- a/rt/lib/t/04_send_email.pl.in +++ b/rt/lib/t/04_send_email.pl.in @@ -33,6 +33,32 @@ sub RT::Action::SendEmail::SendMessage { # create a regular ticket my $parser = RT::EmailParser->new(); + + +# Let's test to make sure a multipart/report is processed correctly +my $content = `cat @RT_LIB_PATH@/t/data/multipart-report` || die "couldn't find new content"; +# be as much like the mail gateway as possible. +use RT::Interface::Email; + +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /The original message was received/, "It's the bounce"); + + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); + +undef @scrips_fired; + + + + $parser->ParseMIMEEntityFromScalar('From: root@localhost To: rt@example.com Subject: This is a test of new ticket creation as an unknown user @@ -65,7 +91,7 @@ is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); # create an iso 8859-1 ticket @scrips_fired = (); -my $content = `cat ./lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; +my $content = `cat @RT_LIB_PATH@/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; @@ -74,8 +100,9 @@ $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. use RT::Interface::Email; - - RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); + +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -103,17 +130,21 @@ $parser->ParseMIMEEntityFromScalar($content); ok ($id, $msg); + + + # we need to swap out SendMessage to test the new things we care about; &iso8859_redef_sendmessage; $RT::EmailOutputEncoding = 'iso-8859-1'; # create an iso 8859-1 ticket @scrips_fired = (); -my $content = `cat ./lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; +my $content = `cat @RT_LIB_PATH@/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; # be as much like the mail gateway as possible. use RT::Interface::Email; - RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -202,7 +233,7 @@ sub iso8859_redef_sendmessage { # {{{ test a multipart alternative containing a text-html part with an umlaut -my $content = `cat ./lib/t/data/multipart-alternative-with-umlaut` || die "couldn't find new content"; +my $content = `cat @RT_LIB_PATH@/t/data/multipart-alternative-with-umlaut` || die "couldn't find new content"; $parser->ParseMIMEEntityFromScalar($content); @@ -210,7 +241,8 @@ $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. ¨auts_redef_sendmessage; -RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -229,7 +261,7 @@ sub umlauts_redef_sendmessage { # {{{ test a text-html message with an umlaut -my $content = `cat ./lib/t/data/text-html-with-umlaut` || die "couldn't find new content"; +my $content = `cat @RT_LIB_PATH@/t/data/text-html-with-umlaut` || die "couldn't find new content"; $parser->ParseMIMEEntityFromScalar($content); @@ -237,7 +269,8 @@ $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. &text_html_umlauts_redef_sendmessage; -RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -266,7 +299,7 @@ sub text_html_umlauts_redef_sendmessage { # {{{ test a text-html message with russian characters -my $content = `cat ./lib/t/data/text-html-in-russian` || die "couldn't find new content"; +my $content = `cat @RT_LIB_PATH@/t/data/text-html-in-russian` || die "couldn't find new content"; $parser->ParseMIMEEntityFromScalar($content); @@ -274,7 +307,8 @@ $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. &text_html_russian_redef_sendmessage; -RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -308,14 +342,15 @@ sub text_html_russian_redef_sendmessage { unshift (@RT::EmailInputEncodings, 'koi8-r'); $RT::EmailOutputEncoding = 'koi8-r'; -my $content = `cat ./lib/t/data/russian-subject-no-content-type` || die "couldn't find new content"; +my $content = `cat @RT_LIB_PATH@/t/data/russian-subject-no-content-type` || die "couldn't find new content"; $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. &text_plain_russian_redef_sendmessage; -RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -346,7 +381,7 @@ $RT::EmailOutputEncoding = 'utf-8'; # {{{ test a message containing a nested RFC 822 message -my $content = `cat ./lib/t/data/nested-rfc-822` || die "couldn't find new content"; +my $content = `cat @RT_LIB_PATH@/t/data/nested-rfc-822` || die "couldn't find new content"; ok ($content, "Loaded nested-rfc-822 to test"); $parser->ParseMIMEEntityFromScalar($content); @@ -354,7 +389,8 @@ $parser->ParseMIMEEntityFromScalar($content); # be as much like the mail gateway as possible. &text_plain_nested_redef_sendmessage; -RT::Interface::Email::Gateway(message => $content, queue => 1, action => 'correspond'); +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); my $tickets = RT::Tickets->new($RT::SystemUser); $tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); $tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); @@ -382,7 +418,63 @@ sub text_plain_nested_redef_sendmessage { # }}} +# {{{ test a multipart alternative containing a uuencoded mesage generated by lotus notes + +my $content = `cat @RT_LIB_PATH@/t/data/notes-uuencoded` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +¬es_redef_sendmessage; + +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /from Lotus Notes/, "We recorded the content right"); +is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments"); + +sub notes_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { }'; +} + +# }}} + +# {{{ test a multipart that crashes the file-based mime-parser works + +my $content = `cat @RT_LIB_PATH@/t/data/crashes-file-based-parser` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&crashes_redef_sendmessage; + +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /FYI/, "We recorded the content right"); +is ($tick->Transactions->First->Attachments->Count , 5 , "Has three attachments"); + +sub crashes_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { }'; +} + + +# }}} # Don't taint the environment $everyone->PrincipalObj->RevokeRight(Right =>'SuperUser'); diff --git a/rt/lib/t/data/crashes-file-based-parser b/rt/lib/t/data/crashes-file-based-parser new file mode 100644 index 000000000..da1913eb9 --- /dev/null +++ b/rt/lib/t/data/crashes-file-based-parser @@ -0,0 +1,193 @@ +X-Real-To: <mitya@example.com> +Received: from [194.87.5.31] (HELO sinbin.d-s.example.com) + by cgp.example.com (CommuniGate Pro SMTP 4.0.6/D4) + with ESMTP-TLS id 125035761 for mitya@example.com; Thu, 11 Dec 2003 15:17:46 +0300 +Received: (from daemon@localhost) + by sinbin.d-s.example.com (8.12.9p1/8.11.6) id hBBCHjN0031595 + for mitya@example.com; Thu, 11 Dec 2003 15:17:45 +0300 (MSK) + (envelope-from noc@rt3.mx.example.com) +Received: from d-s.example.com by sinbin.d-s.example.com with ESMTP id hBBCHjar031575; + (8.12.9p2/D) Thu, 11 Dec 2003 15:17:45 +0300 (MSK) +X-Real-To: <mitya@example.com> +Sender: <noc@rt3.mx.example.com> (Network Operation Center) +To: mitya@example.com +Date: Thu, 11 Dec 2003 15:17:45 +0300 +Message-ID: <redirect-137509289@d-s.example.com> +X-Original-Return-Path: <vox19@b92.d-s.example.com> +Received: from [194.87.0.16] (HELO mail.d-s.example.com) + by d-s.example.com (CommuniGate Pro SMTP 4.1.5/D1) + with ESMTP id 120757484 for noc@rt3.mx.example.com; Mon, 27 Oct 2003 09:40:53 +0300 +Received: from [194.87.0.22] (HELO moscvax.d-s.example.com) + by mail.d-s.example.com (CommuniGate Pro SMTP 4.1.5/D) + with ESMTP-TLS id 107945800 for noc@rt3.mx.example.com; Mon, 27 Oct 2003 09:40:53 +0300 +Received: from d-s.example.com (mx.d-s.example.com [194.87.0.32]) + by moscvax.d-s.example.com (8.12.9/8.12.9) with ESMTP id h9R6erFm062621 + for <security@d.example.com>; Mon, 27 Oct 2003 09:40:53 +0300 (MSK) + (envelope-from vox19@b92.d-s.example.com) +Received: by d-s.example.com (CommuniGate Pro PIPE 4.1.5/D1) + with PIPE id 120757490; Mon, 27 Oct 2003 09:40:53 +0300 +Received: from [194.87.2.108] (HELO b92.d-s.example.com) + by d-s.example.com (CommuniGate Pro SMTP 4.1.5/D1) + with ESMTP-TLS id 120757480 for security@d.example.com; Mon, 27 Oct 2003 09:40:52 +0300 +Received: from b92.d-s.example.com (localhost [127.0.0.1]) + by b92.d-s.example.com (8.12.8p1/8.12.3) with ESMTP id h9R6eqIe014669 + for <security@d.example.com>; Mon, 27 Oct 2003 09:40:52 +0300 (MSK) + (envelope-from vox19@b92.d-s.example.com) +Received: from localhost (localhost [[UNIX: localhost]]) + by b92.d-s.example.com (8.12.8p1/8.12.3/Submit) id h9R6epst014668 + for security@d.example.com; Mon, 27 Oct 2003 09:40:51 +0300 (MSK) +From: "Stanislav" <drstas@d.example.com> +Subject: Fwd: scanning my ports +X-Original-Date: Mon, 27 Oct 2003 10:40:51 +0400 +User-Agent: KMail/1.5.4 +X-Original-To: security@d.example.com +MIME-Version: 1.0 +Content-Type: Multipart/Mixed; + boundary="Boundary-00=_z3Ln/tUeUBipHgx" +X-Original-Message-Id: <200310270940.51758.vox19@d.example.com> +X-Spam-Checker-Version: SpamAssassin 2.60-jumbo.demos (1.212-2003-09-23-exp) +X-Spam-Level: +X-Spam-Status: No, hits=-6.8 required=5.0 tests=BAYES_00,FROM_ENDS_IN_NUMS, + HTML_MESSAGE,SUBJECT_RT autolearn=ham version=2.60-jumbo.demos +X-Spam-Report: -6.8 points, 5.0 required; + * -3.0 SUBJECT_RT Tracking system + * 1.0 FROM_ENDS_IN_NUMS From: ends in numbers + * 0.1 HTML_MESSAGE BODY: HTML included in message + * -4.9 BAYES_00 BODY: Bayesian spam probability is 0 to 1% + * [score: 0.0000] + + +--Boundary-00=_z3Ln/tUeUBipHgx +Content-Type: text/plain; + charset="koi8-r" +Content-Transfer-Encoding: 7bit +Content-Disposition: inline + + +FYI + + +---------- Forwarded Message ---------- + +Subject: [DEMOS #12148] scanning my ports +Date: Sunday 26 October 2003 20:19 +From: 1stwizard@isp.example.com +To: no-reply@d-r.example.com + +This transaction appears to have no content + +------------------------------------------------------- + + + +-- +best wishes, + +Stanislav A. Mushkat +http://www.di.example.com + +--Boundary-00=_z3Ln/tUeUBipHgx +Content-Type: text/plain; + charset="iso-8859-1"; + name=" " +Content-Transfer-Encoding: 7bit +Content-Disposition: inline + +Somebody at IP 127.0.0.1 scanned my ports. +--Boundary-00=_z3Ln/tUeUBipHgx +Content-Type: text/html; + charset="iso-8859-1"; + name=" " +Content-Transfer-Encoding: 7bit +Content-Disposition: inline + +<HTML><HEAD> +<META http-equiv=Content-Type content="text/html; charset=iso-8859-1"> +<META content="IncrediMail 1.0" name=GENERATOR> +<!--IncrdiXMLRemarkStart> +<IncrdiX-Info> +<X-FID>BA285063-5BCE-11D4-AF8D-0050DAC67E11</X-FID> +<X-FVER>2.0</X-FVER> +<X-FIT>Letter</X-FIT> +<X-FCOL>Elegant Paper</X-FCOL> +<X-FCAT>Stationery</X-FCAT> +<X-FDIS>Rice Fields</X-FDIS> +<X-Extensions>SU1CTDEsNDEsgUmBSTAkkcGNgZmVTY0wNCxNhYUoiU0kOMEoTYGBjYEoJDSZnSyFhUksSU1CTDIsMCwsSU1CTDMsMCwsVHlwZVZlcnNpb24sMywxLjAs</X-Extensions> +<X-BG>8E549F43-079D-11D8-B0F9-00B0D0B65B96</X-BG> +<X-BGT>repeat</X-BGT> +<X-BGC>#eff3f7</X-BGC> +<X-BGPX>left</X-BGPX> +<X-BGPY>0px</X-BGPY> +<X-ASN>ANIM3D00-NONE-0000-0000-000000000000</X-ASN> +<X-ASNF>0</X-ASNF> +<X-ASH>ANIM3D00-NONE-0000-0000-000000000000</X-ASH> +<X-ASHF>1</X-ASHF> +<X-AN>6486DDE0-3EFD-11D4-BA3D-0050DAC68030</X-AN> +<X-ANF>0</X-ANF> +<X-AP>6486DDE0-3EFD-11D4-BA3D-0050DAC68030</X-AP> +<X-APF>1</X-APF> +<X-AD>C3C52140-4147-11D4-BA3D-0050DAC68030</X-AD> +<X-ADF>0</X-ADF> +<X-AUTO>X-ASN,X-ASH,X-AN,X-AP,X-AD</X-AUTO> +<X-CNT>;</X-CNT> +</IncrdiX-Info> +<IncrdiXMLRemarkEnd--> +</HEAD> +<BODY style="BACKGROUND-POSITION: left 0px; FONT-SIZE: 12pt; MARGIN: 0px 10px 10px; COLOR: #00005b; BACKGROUND-REPEAT: repeat; FONT-FAMILY: Arial" text=#00005b bgColor=#eff3f7 background=cid:8E549F43-079D-11D8-B0F9-00B0D0B65B96 scroll=yes SIGCOLOR="0" X-ADF="0" X-AD="C3C52140-4147-11D4-BA3D-0050DAC68030" X-APF="1" X-AP="6486DDE0-3EFD-11D4-BA3D-0050DAC68030" X-ANF="0" X-AN="6486DDE0-3EFD-11D4-BA3D-0050DAC68030" X-ASHF="1" X-ASH="ANIM3D00-NONE-0000-0000-000000000000" X-ASNF="0" X-ASN="ANIM3D00-NONE-0000-0000-000000000000" X-FVER="2.0" X-FID="BA285063-5BCE-11D4-AF8D-0050DAC67E11" X-FIT="Letter" X-FCOL="Elegant Paper" X-FCAT="Elegant Paper" X-FDIS="Rice Fields" ORGYPOS="0"> +<TABLE id=INCREDIMAINTABLE cellSpacing=0 cellPadding=2 width="100%" border=0> +<TBODY> +<TR> +<TD id=INCREDITEXTREGION style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 12pt; PADDING-BOTTOM: 0px; CURSOR: auto; PADDING-TOP: 0px" vAlign=top width="100%"> +<DIV>Somebody at IP 127.0.0.1 scanned my ports. </DIV> +<DIV> </DIV> +<DIV> </DIV></TD></TR> +<TR> +<TD id=INCREDIFOOTER width="100%"> +<TABLE cellSpacing=0 cellPadding=0 width="100%"> +<TBODY> +<TR> +<TD width="100%"></TD> +<TD id=INCREDISOUND vAlign=bottom align=middle></TD> +<TD id=INCREDIANIM vAlign=bottom align=middle></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML> +--Boundary-00=_z3Ln/tUeUBipHgx +Content-Type: image/jpeg; + charset="iso-8859-1"; + name="BackGrnd.jpg" +Content-Transfer-Encoding: base64 +Content-Disposition: inline; filename="BackGrnd.jpg" + +/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFk +b2JlAGTAAAAAAQMAEAMCAwYAAAHbAAAC1gAABZX/2wCEABALCwsMCxAMDBAX +Dw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoXHh4jJSclIx4vLzMzLy9AQEBAQEBA +QEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoaJjAjHh4eHiMw +Ky4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIAGUAcwMBIgACEQED +EQH/xACAAAEBAQEAAAAAAAAAAAAAAAAAAQIGAQEBAAAAAAAAAAAAAAAAAAAA +ARABAAICAwEAAgMAAAAAAAAAAQARIQIxQRIiQDIQMFARAAICAgIBBAIDAQEA +AAAAAAERACExQVFhcYGRobECEsHhMtHxEgEAAAAAAAAAAAAAAAAAAABQ/9oA +DAMBAAIRAxEAAADtRZYE1ASghQFgUZoCkKSwLmhcllAEqkSkqFAlhUomoAS3 +IoJqFlDNpFEAQFE1AIVYAWIVKAJRNZpYCwVmmshKACA0CBAUCBYGwf/aAAgB +AgABBQD8B/yP/9oACAEDAAEFAPz6/or8H//aAAgBAQABBQC2+ZeHjbD+saX6 +hwXeDW1Rg4xLLTa+m7ZiIEsI1MTiHP1dYpvFADiFM1/X6nq9byuwdPPz5oFo +fWlEMQ9ULKrWq2ppG9Y2J6INQma9lVTRdlUKgHzXXSEECw1SYu5WsGoJPkis +ZYpx31GvXZQ/JM3VwShzVTsp1EZbBI8LcaUSih86+s2Zl4Wp6+lAZnVsDkjd +ku5m+lJTdXDG2SHM9M2wKX1YxsaZTTwmoVrYnqsMrM652yjs01K0mtbGAz6Y +5dpfqNz06qpq5QNjiIjiZtbhtceNuf0jyeqGgu6rXMvI4omPWbPMYzEfMI+a +xHnFvOP4/9oACAECAgY/AGP/2gAIAQMCBj8AY//aAAgBAQEGPwB72Yucb1Bf +IhFEaeZ+xRXFQELN+HEUQdjU0Xn4g9gRCQcpw1yajGYsP/kFvUzvjUBWrIMF +HI2OJQNEAjiEEFdTmfG/MTHq5RFOnpTV3kzCBx7x4YOD1AV5uYJvnqMA0hep +jfwpYCwC4Bx3q55zeZRBCw9TkoIuHw78RdczSNH2mgqcLpRC+RASAkA3B13m +cYd5mR84c/yOx4lWtRAZ6mGDhiP9WgXVyhWA+xDgMOWGMsTg/wBTz8SjjXrP +8hHIlX1MZ6mDzgc/cIV/iyN1GBR0MQMKjnEzvvMz8mUkErKlfqU63iV+IKNH +7mNZBLFQEpEDeDOV32IVn8WR4caoywqI2p695mbZzNUQIcKfk0bo+0NpCqn7 +CiQiNGXkdQen1DpjGeZ7WNw3pK+I93maCPc16+Zkf6XxMCsFwAkaiIB57vc/ +IAhZ/HqZBBbB0ZokAEOGxsYqBgPp8agQBu4VSMJdqx6SwDsGBrTmAR93uZGX +6KePowEADAIjoX8gw459CICaW/MLGvodQfkDW71zBxRHtB3j3jC4PMIYoAgK +NfPMCQNN7jCzvlzXPopzhQvNZY3CRya9ZrEFfRE0iCB5mscZuVYfKmAi94uE +3Q8qfytQ7xD0svmFcmaxNPI8iMjh3pmF2HbzqeUi+YkiD/MrOl5LmbwPuWVf +mXpv3hDH8qAjPpiZHXkRnSd6ZhB53mejzKV6US0K9TCCLyCeIhtETX5MsHBG +JkD/ANiFkMCE2qGoCdZ8Q8AMGpYFqEhdhRIYH3CF3d1M/Mexma+4CwdQ2Ddc +x0exAlmj04QUQd8QWLB/iB5GxmEg5TENVZqPYzFV8eHAy9T/AEc8a4n3Ov6g +/VwvE6lpQ4VNysXzhS8esOO8w/rlF/rypjV3B5H1Knr8T//Z + +--Boundary-00=_z3Ln/tUeUBipHgx-- + diff --git a/rt/lib/t/data/multipart-report b/rt/lib/t/data/multipart-report new file mode 100644 index 000000000..538e0c880 --- /dev/null +++ b/rt/lib/t/data/multipart-report @@ -0,0 +1,66 @@ +Return-Path: <mailnull@example.com> +Date: Sat, 23 Aug 2003 00:15:18 +0800 (SGT) +From: Mail Delivery Subsystem <MAILER-DAEMON@other.example.com> +Message-Id: <200308221615.CGA36111@mailbox.other.example.com> +To: support@example.com +MIME-Version: 1.0 +Content-Type: multipart/report; report-type=delivery-status; + boundary="CGA36111.1061568918/mailbox.other.example.com" +Subject: Returned mail: User unknown +Auto-Submitted: auto-generated (failure) + +This is a MIME-encapsulated message + +--CGA36111.1061568918/mailbox.other.example.com + +The original message was received at Sat, 23 Aug 2003 00:15:18 +0800 (SGT) +from mx12.mcis.other.example.com [10.1.1.232] + + ----- The following addresses had permanent delivery errors ----- +<jesmund> + + +--CGA36111.1061568918/mailbox.other.example.com +Content-Type: message/delivery-status + +Reporting-MTA: dns; mailbox.other.example.com +Arrival-Date: Sat, 23 Aug 2003 00:15:18 +0800 (SGT) + +Final-Recipient: RFC822; jesmund@mailbox.other.example.com +Action: failed +Status: 5.1.1 +Remote-MTA: DNS; mail.mcis.other.example.com +Diagnostic-Code: SMTP; 550 5.1.1 <jesmund>... User unknown +Last-Attempt-Date: Sat, 23 Aug 2003 00:15:18 +0800 (SGT) + +--CGA36111.1061568918/mailbox.other.example.com +Content-Type: message/rfc822 + +Return-Path: <support@example.com> +Received: from mx12.other.example.com (mx12.mcis.other.example.com [10.1.1.232]) + by mailbox.other.example.com (Mirapoint Messaging Server MOS 3.3.3-GR) + with ESMTP id CGA36101; + Sat, 23 Aug 2003 00:15:17 +0800 (SGT) +Received: from STATION13 (rhala.dsl.pe.net [64.38.69.104]) + by mx12.other.example.com (8.12.9/8.12.9) with ESMTP id h7MGFGac020135 + for <jesmund@other.example.com>; Sat, 23 Aug 2003 00:15:17 +0800 +Message-Id: <200308221615.h7MGFGac020135@mx12.other.example.com> +From: <support@example.com> +To: <jesmund@other.example.com> +Subject: Thank you! +Date: Fri, 22 Aug 2003 9:15:19 --0700 +X-MailScanner: Found to be clean +Importance: Normal +X-Mailer: Microsoft Outlook Express 6.00.2600.0000 +X-MSMail-Priority: Normal +X-Priority: 3 (Normal) +MIME-Version: 1.0 +Content-Type: multipart/mixed; + boundary="_NextPart_000_05684DA4" + + + +--_NextPart_000_05684DA4-- + +--CGA36111.1061568918/mailbox.other.example.com-- + diff --git a/rt/lib/t/data/notes-uuencoded b/rt/lib/t/data/notes-uuencoded new file mode 100644 index 000000000..f27fdf8c0 --- /dev/null +++ b/rt/lib/t/data/notes-uuencoded @@ -0,0 +1,2368 @@ +Return-Path: <mhenrion@example.com> +Delivered-To: j@pallas.eruditorum.org +Received: from serveurlotus.example.com (unknown [213.56.193.67]) + by pallas.eruditorum.org (Postfix) with SMTP id C21DB113AA + for <jesse@vendor.example.com>; Thu, 27 Nov 2003 10:55:58 -0500 (EST) +Received: by serveurlotus.example.com(Lotus SMTP MTA v4.6.1 (569.2 2-6-1998)) id C1256DEB.00578401 ; Thu, 27 Nov 2003 16:55:54 +0100 +X-Lotus-FromDomain: DOMAINEQZ +From: "Maxime HENRION" <mhenrion@example.com> +To: jesse@vendor.example.com +Cc: support@example.com +Message-ID: <C1256DEB.005717B5.00@serveurlotus.example.com> +Date: Thu, 27 Nov 2003 16:55:50 +0100 +Subject: Test e-mail which exhibits problems with RT +X-Spam-Status: No, hits=-2.6 required=7.0 + tests=BAYES_20 + version=2.55 +X-Spam-Level: +X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp) +Content-Length: 144905 + +I send you this mail from Lotus Notes to make sure it'll exhibit the +reported symptoms (lost attachment and body). I Cc: it to our RT address +to verify it does cause the reported problems. Could you please mail me +any replies to my personal e-mail, mux@example.org ? + +Thanks in advance, +Maxime + +(See attached file: Naz_Head.jpg) + +(UUEncoded file named: Naz_Head.jpg follows) +(Its format is: JPEG File Interchange ) + +begin 644 Naz_Head.jpg +M_]C_X``02D9)1@`!`@(```````#__@`>04-$(%-Y<W1E;7,@1&EG:71A;"!) +M;6%G:6YG`/_``!$(!(D#$P,!(@`"$0$#$0'_VP"$``0"`P,#`@0#`P,$!`0$ +M!@H&!@4%!@P("0<*#@P/#PX,#@T0$A<3$!$5$0T.%!L4%1<8&1H9#Q,<'AP9 +M'A<9&1@!!@8&"0<)$0D)$248%1@E)24E)24E)24E)24E)24E)24E)24E)24E +M)24E)24E)24E)24E)24E)24E)24E)24E)?_$`*(```$%`0$!`0`````````` +M``(``0,$!08'"`D0``$#`P,"!0($!`0$!0(""P$``A$#!"$2,4$%4083(F%Q +M@9$',J&Q%"-"P5+1X?`5,V+Q"!8D-%,7<H(U0QACDI.B)29&5%8!`0$!`0$! +M`0`````````````!`@,$!081`0$``@(#``$%`0$!`0$````!`A$A,0,205$$ +M$R(R87$%%5*!_]H`#`,!``(1`Q$`/P#Y`NZSM9#1`&(!5%[G\U"!WW5B](U: +M0(GDE5'DR3$]R3,K53ZB?5?D$I,JNC=`\EN#.=PHMVZH^%$6?,)R3(`R90/K +M:AB0!LHFG"&6Q`,?*(E\^"`"3.=TC6=J`)([!0M#=1U'X3.TZ9D[X**G=6=( +MR82\]X,ZC`&"H0X"9<3W2:(&GOWF4+VLMN7D2T[[AR*E5<YPU?>56:T,@P<X +M3^D#'*J+3:SC(<8[92\XB/5]U7VV$E/Z=(!.459_B7`0'&2F%<EX)D]R%7!) +M:$B1.<S^B(G-PYFQQ/*7G$P9/M!5>9,:ML)Y$]AW03FLXR78A.VY=&=IV58& +M2!^X1-BFWO)S""S_`!#M,.,'VV2;<.(C48"JR'#&!V*>!LUV_OLBK)KO@C5) +M_9)M=V0(GNJSAL9"7!!E066UR&X)^BD%P06DOR%2&00WG=$WYSQ[JHL&Y&>9 +MQV3ON7.;ZG:@.).%59,Y.#[)H&F7.`/QNBK;:Y#?S$XP"4(N'[:S[Y46H-8< +M2#C.4``SZA!V")I9?5=AVO[<IA7=J)C$[DJN""8!VY"3C$;@(6+?\4_83O@) +MZ=U4;@$YQNJ0<>')L[3G?=15_P#BG`0"[/=(W;N3NJ@/J]>8PG=M(<!P%46Q +M<5)C5!&Z%UR0^=6_,JJZ220[',XE!J(VD@HJZZZ<3J+H)X*=]T]K1ZLGW5*G +M+G3N$[-()F/_`,1E0TN-N7@RUY)[R<)V7=1V=1^ZH@.,F<CA$V/+F8CLJBW6 +MO'^8/4[[HA=U,^L@K/?#GB-N4Y)Y)CW15RI>5'#_`)CL>Z`7CY]1=`[$Y50& +M1,Y]BF&^G!]I07_XRII!#JD3]E(RO<NI.KM-30T@.=P"LV`T[C]D0<?+(DD$ +MR0D5<;?59(+S)P9)2_CJN_F.)VR51=+7@S'QA($N$#9$:-.^JR/63]5(R]K. +MP*CM1]UF'7L,=H1M=+IY0:#[ZL'R'N$#9/\`\0N`3-1Q!.8*HD..1N@]0)@@ +MQ[HK39U"J2!YA`/*3>HU9_/O]5G,+F"9@>Z?5D3Q[HC2'4*PF'9=]T_\?6!' +M\QQ^2LZG,[R-U(3Z):<<"9A*+K.I7(<2*KA]4XZI<:R[S78YE9H))$NB?=+4 +M(C.^4&O2ZM<:Y-=^F<PXJ9W6[ME1_E5ZA!V]1P%A%T-/'NI*+M(U3J/LLU8V +M[?KM\#_[NK,?XBI7>(+\`#^+JQ[/*P/,<'SI`]E/1D[@'.`D*V[GKMZUP>;N +MOW`#RJEQXCZB^KJ_BJ_P*CEG]1JD5PW5D?HJC2`V8,]P>$A.&PSKO41Z'7E; +M/_649\0]18YO_K:I@Y]9@K%:\DDM/P.4#G._J)39IT%3Q#U(48;>U9]GE*WZ +M_P!3:=;KVMCC65@L,M],_=3C\I9@^_*IIT-GX@ZL]P<;ZK#3)EY5YWB;J9`_ +M]75`]G9*YJB-%&!@G<=T?F!K`T3'LL4=(/$_5-`TWE4#_P"Y,?%750__`-[5 +MS[KG?,U-`)..W*$N$F=QW4TKH?\`S5U?7)O:@^J3O%/5&`3>5<_]2YQS_3,D +M90OJ%L9S[*CI'>*^JA\_QE4>VN?[)4?%76`''^/KCC\Q7-.?WG[PHR\9[\!" +M.I/C+K8R.I7(CL\J1OC?K[!J'5KH>WF$+DC5TM&#J_="YY=].$Z'8?\`G_Q( +MTS_QJ\$\"L[_`#1?_4;Q8T"/$-^('_SN_P`UQ.O/`(3O?Z<\JZAR[=WXG>+V +MMQXBZB)Y-R__`#3?_4[QHV2/$W4\<?Q3_P#-<,YTD-[(7N!.70!NAR[S_P"J +M'C(;>)NJ0.]W4_S3?_5'QII.KQ/U0@;?^I?M]UPDN()DCLE2J/%6>?8Y5X-U +MWP_$[QDTZO\`S+U0#L;A_P#FA/XI>-1__D_5!`__`-A_^:XBK4+A#=]LJ'62 +MT@@2H;KO:?XK^.`#'BCJ7_\`'=_FI&?B]XY;G_S1U$]OY[O\UYWYA+")*;6- +MNRJ/26_C)X]8UI_\T]1@XCSBI/\`ZT_B$W;Q5?D]O-*\R#P`#O&R$UC,SDH/ +M4*?XX?B,R)\6]1$?_M4=3\<OQ&F6^+>HB?\`]IM^B\LU.W(D$*.M7\L$-DGW +M31MZF_\`';\2*6H'Q3U!Q(P?.V_15S^./XE:-;O%O42WDFIM^B\K#_3).0>4 +M1>-,R,YB86M0Y>HL_'+\2"X$>*NH?_Q/]%+1_'7\1FNSXHO2>_F+RG5#,F/8 +M=U(S+@Z23\)J'+VNT_\`$'^)M.W:QOBJ[@=WJ3_]8;\3_P#_`*NZ_P#WUX]0 +M/\IOJ`13_P!8_P!_1.#E)>;X.DJE4`G4&CW]U>O/2YTY/95"VD\@O(8(_-NE +M-(*I$\#ZJ.((DP#MRC?I!,.#@3P@<YLQ@D*)T!Y=!!'V3,!(!DR-NZ/!DDS_ +M`)H=3FOU#\Q$3*`2[U;F3^J9FG5DG!VA%J&"\3VA,PC.H3]4#")SCZ[IPZ6Y +M.?;*9Q$P1">`3L`F@0!<W48QB)RDW\W8=DM)B0,C=(G'Y3OG*H)A]7YC]TGO +M`;J&VTI8`@$@QRF`F)A`6HZ<&,(`XM$-),HM.TR`DTC)_9`@]H'?NB(U9)D* +M)Q`R/L"G:]K3D$_*"3`)DS'(_P`X2>0`")).=10F`,SG9*`Y^DS'9#0VZM.' +M@0=NZ51S@XYR=PG9IF'?1!4<)QF4!`X&<E.9%3F2.Z$Z-(:!$Y30-4SL@D`] +M<ETSPD2`X%Q$#W3.>TTQ@",3R5'[%V$1,Y\B8S&Q0:S^;4")R9@(2^`<P>T[ +M)`@^IH&GL%%2-?@B8^J;60">3]T+=C.J1O@_ND<_U8'(RJ<E))W`GE,?=Q,< +M%+TDD@R?E-$C#A[A0$`79&/JF!<U^X^B'!YRDUOJ(*HF#AY@Q&$6KDNB%"0" +M9!2<8.3)Y4$CW2\MF#^Z8.(;!&KZIG-P-L#A"V6F=8!/""0%I.0/<(75#/:= +M@$.F:>8`/)3#3OJ'T*(D:[&8B=Y4C7$"&M,J)L1Q'>$3@1L8'L@8F3@1]4+G +M&(VX2(#3^:>\%`?54P9'SNJHZ;B.^4]0D@X!(0@..QCZIR`V"7-.)0)CR6P1 +MDHFZ@-_B<H`WU1IGV3L#L0!`X)*:41=.<GX1,?\`TYA``=<C`&0EI/,90&PN +M+IQMR437D#8PHVM)B'>VZ.>9&?T32';4C&4FN.24S!G,B.4@"7P-D4;CZ02G +MUQM@'E,`7,D-F-TP:03#B)XW03TW0`3/=.ZHT[20HJ0(=JP<83U=1'Y??=$I +M.>20)B/JF<\D^W<!#)DQB>$)+@3@D=@@.1J(C\RGI.TTAL`%!;@U'@&8)4U< +M#40..%*LA!WKD@?,JQ3<*;=6J?959U`<%*HXBG,R=MU`JM05+G42#[QLF>8: +M0V"1O)W4;):`V3G>$4@$&()W0/YA+H&$S"=Q$'E,X34D!.&MF<>_NBIZ.G5. +M1C=6*32XZSMP56:Z#I#1/=6ZKAY8:!$;PI:1(7B!)SV0O<T[&(0BF-&<#W05 +M7:G%L8&%!,UPC`$_*?7)))4+&NF9P-@0G/R,]D!$M)DGX"3G%P`W^NZ!A;OB +M1[R@JU"1F(;VP4!ET'TD3[("8?&,^R`O!&,&=@A($`P2.TJFAQZAK/V0U()] +M),\A(QITP/C>$+R(+B![(IY&DQN$!U$=OE*99G;V0ZVDSVXE7:0I$@DY12W5 +MF0.P47ID%(N@03]R@.1DL'ZH<X)#L\RF$;:O]$Y8WR]0J-+I_+&?^R&A.=`G +M'T0!\2[)*%P,1D`<(7N`@$_JB40>#_DD#^G"C!R=_NE()$'?!0$X%Q$?NF(& +MY!&.Z;;4`24#RYH!!)]T#U7A@,\JNZ-6?ND\EYDN$]T]-[\MUX[0M!/;+?E, +MUDQ/WW2=4TGL3V*!SAQQS*(D:WD$P?T4M+8@29W]E!J],CE'J&H`.XR$&G0< +M!1:(&R/6WL%#1TFDTEW'9%#/\?Z)N+I/<F"1,=]7^JI5G`N(';`[*[?$.<7[ +MS]BJ=8@'&$J('2&YF3QV0`-+`XD3VY1<D$@'=`T>L@B%`B9(SQF$/&TIHT[B +M2F;!.3'L4#N:&P[?Y*:1!WD=T\S(.3\RA,:2Z.?T3:GD%I&Y&/A*8&9CLA(S +M$B/S8PG<V88QIQGOE$T-CV#9SB>Q&R<Z09CW(40V@#9$=IP/>%0;B#F#CW14 +MXU>QX4?]1X*3,$X(]U!,_2'0XS"%S@'20(CLAJF'#E)I!!:2J$XMS(]L(26P +M)S[(W._EENH@3J4+FR2/902.TZCP(V[HH!!C(*A;#@)V[<J6F<R3J&,3NA3@ +MXW*8",@'(15&AQD8C.\H>8@M^"J#<1&QE-SL0.Y2(SOLE'IF<($XB<F/="8+ +M(<<3$I/TD@`SVE!I].))"@-S@1(=@I"=)SNA((80#*(/$`M:!`SE%%,`#7&$ +MCN"YT_51DNB`Z0#CA.0X_5(AQ&`23[E/L1W/"C@.).T9*3S+@1/9/\.AM!.2 +M0">$3P0[)"%VD9!D#<I./I[IL2'5$`R$!&&SQA"UQTF73/'"?.($%#8Y&3// +MV35`XOU&)2):`?3!'U0O,M$B`>^Q02!D;F2>P0&(,[I,:XB-4B,Q"1#@=49" +M`J9!R^3&R=Q;J$(0(GD(*A<(='U2"1V&;#_-`R(D;%,\DL$B>Z$;X!55)G48 +M1-'IS&VZ'48&#GE,<C<0@(`:\`QVDI`;[<]TP=B00G:7"<;\A`;M1:2,8R<I +M-&0)@H0XZ(<-(B>4[2[5`(GL902`.:#ID(2,Y$D]D33Z().$(F,'ZH#:"6GU +MB9_*F$SO]$F-)V,%(.Y`D(:'4P0`?LD`[2)D`]]B@#LX:1*<O<&ZH4$C9&YP +M-LIW.#6R'&>Y0D02-.>ZE<\NHM`:)'/*HBDQ.=MYW2C,D[(2XN;))"32XM(! +M@'906+-LEU4DXF(2TD$$.)3AX91:WDY0DM#?RQQNI5A]!+@3/PA<=\@HGNCT +M_?/"AJG$#8^V$"UD8!4E,P9;G':5$"`?5()X4[6.@.VCLJ@2UT`B?E.3#`9$ +M\93:H/I/SA.P-J$``R#NH+%KAVLOD=H4I<9@SW[*(0T>EV/8)5'$N&9![K-Y +M5+J<68(R-TTB=0P4!<-`@(`YVH24$],SF?A"]P#MQG&4&J'">$+W>H09SA%% +MEI(D"=RA+9;D_;!3.+B\DCG9,]X(,.T@;?'R@6Y,]L94L4_X4N=Z7R(`V4.M +MPR2W*=S@:@&P(VE5."?KTR1!)F4#LB"-LRBG<B2[L@>YH`$85"!G@'ZIG0<D +M093'&<#@"4%0AI@D`<`=T#D1F0/N4P!!@#?>>$S8D3*L=2_@!58+)U4MTC6: +MD3JYVX00'T[YS\I4W`\H9#G"8^`D\M#AZ9^40Y<7'@?.4#@)!R24Q,]FI$ZG +M$_W5#XW$S'=,UHF(W0DB#DY3R0V29(W0"78)*KU':R`9]D]=^O\`*%&60\1P +M@,#5`VGNG`:T.,9!30`!#N,I0!N(`5*.B*/G!U5ITC)&<_91N+<D-)[0FJ/D +M:08`[H]#O+%0QI)@9S]MU`#1+A,Q^RE9'FD$'M'91@MU&-^ZD9N-.,;JHNTM +M(I@02B]/8H:=1K6``''LB\T=C]D.%FX.EKA@B,$JE<`AT3SPKEXZ"1&?M]53 +M>!J(G`*54-6=H"B/I?MDA2U3DG&.%&]Y=!+H(/W4`N_/@&$B6R'#=)[AJ(P( +M0-$/@"9303HF0TR/T2:06!I)E*3!$8E-K=K!``;QE`0#9`P8]L(&_(CV*<&0 +M<C.X"9Y]7QB0B">.9.4[OR['L"A<1$`A&_\`(.!.854F-(:?4?A$6AKX[;Y3 +M4G.#,[=RE.!(CNB'=&X.R8F``,)2X',0)"B)).T245(..>=L)B<D`#M`3:M( +M!=,@)Z1!?F<'_50)K1)!Q(V[J0#3B#F,(6.;KV(Y,%)S@0UHQP54['4<?B,H +M69)!/M/=)I(AS@8VRAD:P!CNH)<O/ID$<)F$APR?A-JAL2?NE,9P(RJ&=.H\ +M&=I1-$`N<2)4=1\F03_F4=,X$$E`SP-1$D0A$C&(/.RE(:7.<-_?A1D&8&_O +MRHIWDZ2-1&GE)C@TN!.3^B3=&D-(`_NA,-<X!V"(E$(;S(SV1/:]CAK:1(D> +MXX0'<B$;WZC@N(C??"*6'")R3_LIVN`S(,(&N$#VY2$G(;DX0IR3[2.R<.DF +M!!_=(D!@')R?=-/IDD2>R!SAP),>R1Y(SV]D+V_S2V))YE,T:F@`X"J)&2UI +M'._*1Q$&/<!,(C_JVV28(:<0.5%Z%J)!)W`R5&).!&F4;@9,Y![<*,#!,[[! +M!)IFG)?Z@8CV0Y`T@C2A@3NG;Z3\<DJB2GOO\Y0S(`(!)[*2E2<^D][`3HR2 +MA>7:9,`;0H&WR`(.(1;;D",8*:)Q)D;F4B#.'8!GL@?+7$'OPDV"_.3.Z6"1 +MM]1E.ULSD2,90$TES#\@83M&3&W=,USA$R0=RG`T@.!WVA%Z$UQ+CB!Q[I.( +M.`([^R<.EFW/*`DEYDX(@RB:%.8,&/V1MD8R<*,B'`[QPIV#^43D#]D`Y#H. +MK`Y"*J#$F028DY4?YJN,`=N457!<=I&<H:,]V)X`WA'3#L'^F=OA0@2=AE3! +MIY=$F-DIH3CJ?K(V/")H$>K/919@P1DJ5^EEO`(G(W]EEI%5(+ISE!4=D<$' +MO"6OU1Q*:)=G!Y5036G7)VVE76.<+5S1I')=L2J;"00`.5,S\D@C2$^!JAQL +M('LCH,<&E\@$YCZ(6-UNB7$!2@[-&`-]U*';.2#`CLE3'I$@'O/"8P!G'=%2 +M=J>9^<J*>L#$#$8P@:3DD@J5X<##?Z9)([J(?F_+)B<H'#@203@9P@GU';/9 +M,V&R0,)V9SC&4(=X<'#,R.%&3#0XC$P$3\N(`V^B&GM@XVGO^BL!C!`&GLG) +M:W!@Q&>9E`#IG<`\2FEN=L?JB%4($Y"!Q#8&1[]TG26`Z<`;=DG0&C[HH0,R +M<?)Y35&D.(Q!V]T\C5($@#(*C>('(.\*H?`@'O.-T+RUOIW,Y@J:XHU:5.G4 +MJTRT5&ZV3R-I^X4+H+B<Y']T`O(;Z1N.1A*GIDNP2>XE.3J('`Y"6&M^NZ:- +M!)RYV0"G!``&DB1DH8&7'`,C"8N],ZAP)0._2XB`94%5\NTCGE27)?2+6N8X +M:A(GLJ\`F)S^ZH8P!`R-Y3G\V)D#^Z0(&,F#O[)IY)A$&T@&08QRF=!:,$3& +MR<^H0TD$_JHWY]!W^J!W-);!&#NG.EI!U9!VRD0)`G/"%P;$@2(0&!%0.F09 +MG*.F`#^:3O""FT$`D[X^5)1G4!@GL54K1HU8I-!F81><.Q48H]W9&,92\D?X +MBJ<+=T&!T-,R,:>%1J!DDQ,=RKEW`<?OO$*C5/IDG._RIEVJ-_J&IW(A0OES +MRXF(X4E0Z7&"@<1,[\DJ`'`E_ORFP=C]?9$1#@9R.Z%_]1`D%$,?R:@WV^4P +M'IP<<RG@@>Y,X1/]1)!`&T(H6Q'..QW0^^Q]D1/],`X2!<<GY0(F""9]I*=W +MJW,H`)P08'MF%)HSF2$03&`M(DP,D),+@(!GA"X:6D#/PF&XP280V1:><_\` +M9,2Z?RC!X1%IRX?=,-R<G&44B#JU`$=\[)Z8]1,!/MC2<^^$FGUS*H36#5J@ +M>PF$\>HC()V2<'!V/ZNZ%WYL#G[J=D$W#=S')'9"-B=C*+,3JG[X2:#C(SW5 +M#M(U>TIB8P"!GE-F<F2.0A(P29RH@HVC?=&PZ03`)G[(2&R`"B$!XAV$#G)S +MB.4+XU;P-]^4[MB0[9`XXU`^Q"*%QB"79C&4AAV^1^R0,#3L92<3&=T"!VEQ +MR8PF$AH+73*0D`XG.4M0:X#2-X0/.CC"(.]6/R]X3"`<[I-;#8G<3]43_"=, +MZAE/,M(C?NDQTMT_E'9(X;D@$HH1(/.T;)VQF<&<E-!UY)`^-U(R0)B1R)R4 +M-&:/3O,>V4[`6QB3[!%I=H+P"&SM*6HZ1'',($\PR(.3@A0P9)VCA&XNG)R< +MPF,$02,?HB$&XD_7NF@',9[)2=CE%`'LBI#5J&6ZX`&PV48>-7JV`_5/HV@? +M/ND02Z7?TG[H&@#W._PB@Z@):1'=.)>_)@\^Z%Q/YG8(Y0%@$@N`G$#NDTRU +MT<\IAB3.3G>4[7"#N0).$47]43.)_1$PB(C$J,8#8@2C9,SM_9-(-@]$`X.4 +M),C`(#433@M]S*&)=&<]D!TA)S^O)4U9H;;AHDSV4%(@`;F.%+6=Z`>$#,$. +MW]H*8DDDG;M"'S#C2,#L93R3D"2@(0'#5$B813J<6R/="P'RR22!P$S8:^)U +M3N2I5D2'3,1B=E$^"[_5&YP:6@A19F7#"FE$`8`'.91%IJX$B!RGI_FG)C,! +M$[\LP?8@JHC@M#OS23W1EQ\L#&IW9"XR?=3T*;=1>/\`,(:%0:6CDR)_LG<0 +MVI^:.=U-TW^&_C!_$BJ]G^&F!)/`SQ*&]=JJ%PHLI@>G0&Q`[+*HR<S!Q$1V +M2I8,S!WRD_@^W9,Z)W.!R$$SJKV,<`2)PHF:@09&QY1-_*)SPA(&Y,$X0`:A +MG&V^439))!B-ONF>-1R?9*EI%3+CGA`FEQ<XR/\`[=Y]U')!(P8'U1@M!_*/ +M24-2=0(CZ*APXQ$^\\(9D%HYQ*1<X52[4<\SND\Z3D$1[H'JDBCD`9W49>-, +MF)V^4]1PT;DD\("XZC'`50@_U#A!)@S.=H.R-[A$0@#@3+>4@=[M3`"3+1&3 +MPA.6:8R,9.Z6`-1.)0D#\VK3\;H?].02[!$D)G3IG4)/[IO=HE(@@29^B:*1 +M/H+7`P=@HW5"`/T`3$Z0=1.=@%%4(+OR[[JAWU'P-1,1@=DP=#L"1L"F`]$$ +M92S)'M`0$[!!!(GE".2?L4A&LD"('=,X1!D%"<B#@(XCW2U9.-\D#,I!HX;` +M3%IF,=Q[JAG'U`P=7NBU!QC?]4="B^L:@:6-T@N.IP'[\J(D8;R#DSNHFA`, +MU!L'&P[%2TY:X\Z3E0@@.#IF.94K&D.#OJ51>HU7-I-;)V1^>[N5'2CRQZ47 +MI_PE39__`%9N'D/=#RP$&8Y"H5B7`Q!`5V]U$G<-E4:N9_:%:(B!I^,B5&X0 +M,G<X")Q,EHP.T*-Y.N3E3M">TF`/U2]$&"9A._5IR1"C.-B?A!:Z76MZ-;76 +MIZQ!@1.?<**Y(\USF&&N<2`,0%'J=J&`.9*62XD.^J!9($../E)PSD'YE,XD +MNDRB+6Z))`)X'"!-B(+A(3THR2<`Y4;?2Z"W[HV^Q@^Z"S>OH5?+\FB:4,AV +M9U'NH-!D$`CW]DAD`';W2DB1/"!'TGA(3J&4P^#M".1Y8](!)C5R@'5#N8([ +MRF$1W[A,^-A)A)L[`9/97L'3`,^J/9.08^>4(])@G$Y"<OQ''N5`4PTQ!^4$ +MD&=7"1<`-MT,Y)_=`33(R[9,'D$]BF<1H&($YRA82XG`[!!('29&%/\`RBQI +M8\E_(55N'0I&D<2(SW0'4\P[Q'NA=ZFSR/U3%W])P=\H*C@#(&>Z*<D[G<]^ +M4GET9,'ND'-)!,@'E+C!D($W\@@DGNG]4G'/*;:8&.Y0.X02$EK<<)-/IF<C +M"%I(<8)!/"(9B.40]$_TPG^1,80L=)V2<1,D2500D$@P!RC`_E[0%&'%QDHV +MN.?[*`M;M&((_9`7&#Z?NC:^&;Y/":H6^6#MG:=D`L).YB?>$U,AI)+)]I0N +M($[3[IV#4'`D-Q(0,-\B/E.2-0Y[H6D'?CB40(B/LB[."7&(`^2CDSG([(#& +M'$Q"9CFAWM^J"0D"=+O_`,(2:0?S8'<(7?D(9/=.TC>4!'_F?&P3M<"P`M)^ +M2A:2?Z))^J<'.PCF4!O@Q`C&TIP&C+2<H:L0#&^$I`P=O9`9?-4FJ3`Q(3L( +M$P#"C`WU$8[J0;XS/!0('21&_=&'M,G`GOR@I-+\0,]\(@2<@"0@8M:9,D@" +M)".A3>\:PUQCF$``@G`)[C"ELW%E20.,%`U>)(,[<)FZ/,!R8X2;-2H07'/) +M35&C9@R-R"LJ:Z?JJ2TQ.P*9CR6^H;8A`6%P&H93M(@B2/A4&7NSI,81:VBD +MT'NA$@#!":,:AN@DID/J1$QMA7':12TM>2!C3W5>T8&F7#<9A2G2'&-H6:HF +M$MRTQIY&(2<YIV,F<GNAV;VG8%,[4!L0$"+V!N9DA/3=@'5*9^EK1DAW/`0T +M8TDR@DU`8!W0X)TR@^1CY10!ZCD%`TF"3$;(>Y(&??=/Z=XD#W3TV4RQQ=4T +MXD")DJ@=,TX'U!&4G%L@D$GB.4G$EH``B(D(20!I`@2@<N;!&P[90MR<'ZG= +M"Z)`F)Y2>R'8F3]95#U`"TZG#V0,PZ8$?*0_*3J.-P4.H3D0!PF@3F1(D%!` +M#?2_=$]K1SO[H"V`3[\(AA^724AEN(":)$G.>4Q`!+I]D(9X$21N8^5(:C?X +M=M(TV`M.K5SMRH@T22YQ([RHZKPY\3LJ<&J$D[8&<8E1P-8WA&]L1O\`"$M$ +MG]B@*#I/;N$AW.2D[)B?\DQ:6MW0)L3!E+2`X<#;*;=VK:$>F6R3\(A%I`R) +M!0./H)X]RG.N8:Z!V"`G_J'Q*+L[20"6N`'*4-+IG;@SE+3ODD']$T@;$_=$ +M2!KB3!)PBI2'1D3P2@IO(;@[CDJ1FJ<F>RHO4R`P`MV]T6IO^']4%/5H$3]D +M_J[G[(BS?.:1O/Q_=4*S@XR($*W7+M6,?14;C\Y&DGY5JHWU&%NJ(^%$7-#I +MR0.$YVWPAR';@1P0L[#.=,D$IAM,I.P/5L4FB1#<HA\%LM.1WY2IN#!,"8Y` +M,(>^2(14?+TDO#@Z,0-S[H!D$B3]CA/Z9P))XF4C`.WW3"`[9OP-T!:O5I.( +M1#,9Y0-`@D'(XSE/I$3O&=T$D9R0,IJD<#`[(7B!`B$=(,\LN/YAPJ'I!U2J +M*8DEV!">H?5$Q'=0OB=C\IV%LB0?NH%J&`,?7=$7-F2?JHW?G@`QS"?1J@9D +MJB1L.$EWZ%,XAQP)]X0-P-!DQ[E(@3B4#D09!QP$[BTO_P`/LHR`'01(&Y[) +M`-@@GX"@,1M(*>`!.('9,`(B-]H2>WU3)^$BCH,+@ZH&ZVL$NCA"!)W.=D`D +M'00[W1:?^HY]T00T[$B?E+3F9$]D).ET.]/8IC_TNYG=4.W!CT@C8%%B9G[% +M`X-<R6N.N=CLG#@&`-&D]QRBE`'YMW?JFP!,@_5`!)U%TPGR9$X*"0P693-@ +M?Z(!,Q)E2TFZJ;R)EL&%-!\0`#)[)$2-OL@,GU`PDP&),`GGLB)6Z2,3CE)C +M!/K='O,J*($@X.^5(&.))B1SA-B2"!I$Y358!R(E#)`.R%[P70W[=D4G#TG& +M90AI&3F4G>QWW":(W(*(-K!L-SW3U"<9P$-*9!=.$_J@DG!]]U03HTB1*%D! +MV3RA;/<3\IVM($3R@-S9'SC*?3&<GV0L<>2=T\S)XVC=`8$"03GW1`B3.2>5 +M%Z_\7UE$9`$\\I%&X"(+H[(@V!+=O9!,M&04B3.`?NH#C5MN4[!G<?"$O=$# +MA%ZM.K<JFSN:22<>T)P(;.#W]D`+RB),[[Y]BH!((!$<;RI`T#^J9$!"T@5` +M73],HF/=,Y!^5*IV"&^P1.!@:1]45NUU6HUC07%YC9=5XA\,ML^@T+NWU.>/ +M^;G8(;<B\1ZHDE`]K33&"'3O*L7`)I``[;X4,$#)P@4X$[IZ;7.J0`F)$!HG +MZE3V[?+]7/)02.>Z-,$1V3=I](*4R[5!^H2?CC(S,+*E$.YQ\IW`SB<[RDZH +M=S$H"\:).)[H",QB8W[)I+1)Y[(=8/!TQPG-22TP2`J%F#W"9@)9'*1=+>\E +M(&,\(!J-,B3CVV3M\H:PXEQ/Y<PA+FEI$X/ZI:R0#P/9`M3G-+-6V8"$F3I) +M4C'28'I("C>\-&"#)[H`@DZM0'UW4FC^5)W/*`N;,@Q.QA25GD4FM+@0-E1$ +MT%(^HYA,YS8$G[%#4>W5G,>Z`J0+WP2T?*!P+1GGA"7Q//NB#M3I=$#N@%TD +MQ!RG:USCI`)+N(3!X)[?&ZBJU@`()U`]U4*N2'Z9/V43_>$^H&3,<E,2#@DY +M0.<F(,IR0&['*#4.47HF0!'MRJA-<2(X*1,E,7``CGLEJR<J!Y($<(0X@1Q\ +MI@8D).TM;W11&/H4],M#7`_1`(<S!QV2;!WF408(SC(0F1.(GE*!,ZM^$8-$ +M4OR&9R^2@%D-/$?*FI.=,PK_`(;O^GV;WU+KIS;MQ$4W>8YI8?V(^BJA[#<$ +MAH:'&8_LJBRS\H_-]"G^CONI*8.@:=D\.[JFCU]&K))!6=<?.RM7;W!SLM!& +M?=4:CP!)Q&.RS5#4<<`"04#G21.4GO<&P,#V35`=>D#;.>R(:);)D92TYAQ( +MA!K]&DXGE.^IZ]1.Z!R!,.)PF<9,R!\IB[N)^J)Q@B0W81D($^7.DD.)RF;^ +M:)@\04P))P!/$[):])!/?=%'`WGZ)W21Q'8*.G.HD;GNB:^#B`"$B#@D`0/E +M)K3&'8Y0M?`!$%*F_.VRI$KJ!IL8\/:0\2,R1F,J-ATY_1,2.3GY3/?+G.TY +M*BG`DSRI,MIZ=,3O[J/5&",I.>"W5'^B"322V<9V*'!=`R1^J8&<B&CV2+A# +M06&>2/ZD0[V@B&#$X3P]N)`U;CN@U0Z2)^4J;QKEPD?/*`J8$8W3G.^.R&1C +MD#9,7("JZ]6EV^V4I]6T=RH^W/'RGUB`!L<(I'7$YSRG+8XF,X*'40P`#,I% +M[33].LCW0&?R`G?A.]L8&2>R%C@21$QV3Z@1IB/D[(&>),SO[I>Q$)B]H<1. +MV)28<@%THAR8;M\J2A7?1:XL.7")W46IH:0D'M+<`Y0&T^H%PD'=&`"2"0!\ +MH&N!SF2,E.UX+>/HBBI-8714<=/[(]88``R)P8*B#MO5]$S'%I)X/?\`[()G +M?E(#<_J@(AA`S[HO^:XBF)`R8[=U%JP1(A`[LNVVX3M:#]DVK.0!'*9KP'D[ +M(@H),`E.[:(@[Y3,(U9C&-)2>9S@1P4X4F3I):)C,)__`,4)VN&DQPA9$:9B +M>$T'`R2'8^$;&SZ9^J'>=(,?ME%OVA`U,,#<C?ORIJ=,:H,=P%'`<^1D=R-E +M*P@-G>4`09+@G>`3@$?(1@M!)(WY"3CB8&>4#.C@P1S")T!QS(3-=C2(SR43 +ML.:"=N`B!,1)<E'JD1!/T1:(/K*38+ITF!^B+#,<!M@\93LT3)=D;!$Q[F&6 +MN(/',J%I&F!N?E1IJ^%7@=<H/<]K!3>"3JA>B^);RA4Z'>U650PD"F`>?9>5 +M,:0[21!"MUJ]>G;MM:CB&-,D'!!*K-G*.H3Y<;25!+M1G96*CFU&@-!$;F=U +M#6;MF)X470:;"]_J,0%9!ETM<"/=10&MW$A'Z2"1.,PI06HM9I+M^YPDYVI" +M-(W)SPDV)&!CLHIH<3))_P`DY=-/1((!^J9^_?5]4[9PUS`9._=4`TP,#;A* +M1K./H$;O*#X9VV/=`"0\@8/)0(@@0D-3H!2V.9(F/A!L3R$!8+#$2-\;H9(S +MJR.`E`TQ.^Z1;Z?3QA`F/(!=@\Y3$MEWOLF([;'VW0D@$1N3,!4.T@C+FYX3 +MO=#(:Z1V0.$,G8<ISH`B2>WL$`Y_J'RFT@&>QV2<3'YLM3``3!^$#$$3$)BZ +M&C$\)-$P(.4#W9[J@G8+CO/"K/WVS\J0R#O]"FT:<@C=$!$X''*3\")`"+2! +M_6)[[(3ZAGO"!,@1Z8)[A(F#@#(^4Y$@-#I*1WF2/:4`N/K&!/LGT`.$I.)! +M`;N>$Y;@B9A$[",_W3$>D0#*(&"?9,V3OP@30`22#^R0`DX3_P!)DI$``.(P +M?;*='!I^<^Z><P)^I3:8.K_91.R9:,#.4":[,B1*GHRYP)!+?E!1`#@:@+AR +M&F%+0:21)`GVV6D:%N'&BTAKG#O*/2__`.-WW3TZ)+!,CZE/Y/N?N5>$X5+W +M0U\`&!LXB/T5&IVP<[;<J]>Z=;HG'?95:H<6N&J`-_4LU5>J6R=(`GA`UPU3 +MSP0C<,'T_=!I,@$1/"BE-,$:@2W8B>4PC2X:=_N$B#IEP&<PA:(+N/E1"=#6 +M:MP.$HT[Y]T0$&/NF;)!Q'P531_26@#9-@.U$Q[!.#)R,PA=F,GMOM_N4#\2 +M`#/"+2W48!RDUN9F<[SNG9^4`JA3+6M+6C3LAV<=Q"*H/5#<M]\(1EIWX4!& +M)&F(.Z9X:#N93@&,!$]K#&)PAI&V0?T@IS);,SRAW=O`E'`#9VT^Z!-C2,`# +MW0L#6N]61S[HR"!O^9"\^H``GZH$/RR8R=DOVC"+27F2Z"A].@"<E`XV`!W[ +MI$RR!$!/R0"/=,\0W,YY0`"9'Z)G#(AWM\IR,.)&>/9(#U`SL4#M#G"29(]\ +MH2(@29/8HV-BGJ.T[IG#TG=`-,0W&?:43@Z"1J,')3.PPC^KY39`]C@^Z!P6 +MP<;^Z;MW[IS,$AWU*0F2<!`V8G`A.W$D1E.(CY2<X&)@1&R!Q,D.(QE.);C8 +M'!GA"UL9))X1G\QB806ZUG:MZ+1O67M-]>H]S7VP:060<'WD*FP;C'R1*.LW +M)#H!&9!0-(:XG3(CN@)T$0/J!RBTC6886G_#RHX!_-()W2)@S/\`F$!O>3F( +MDS`$(#(/'RG:9.2?<)%OTR@1W_1$"X/:0)0T\D_NB+=9@`YW0+(G5B0G/YRX +M#XW3D:J<$NG?;W2U$$S!&^/KR@31+-0(D',82$:-I,X"=K26''Z[IP(=!=C; +M<_Y(IQ/L9C*)C9:!)SPE,8TS/;9/2:X#L9F5=(3@X``#'"-S8.7<*32UU*)R +M.R'2';MF,RHIG4R,$1&^=D_I`&,C*DIM+O:<H7:FNVV32&(UAA=.>4=4`50U +MC1,3/=,,.D`X_J*>OZB=R1G]%+RL5WODZ1W&,B$X<YIP9U[R=T[V&#J.V,(' +M-B()E72K%!Q:&N:8TYG?,JQ>75>_O*EY=NFI4RX@``G[*I1IR#@>YE2-_P"8 +M""94T@2[33,`R!A/2.LZS@#9-<5'U:HF2[8'X&%)IAH:(]/92KHC(VF>X128 +M$GU>R%V'`<\II.DP"H$]TOB?5VV2<9&J3'9-!+06DB3ND`YQ)B>#[JD+5!!^ +MIRDQVH@.<1[IIC9N/W2&",`DG<H:,20^03.^2F<0(#9^4X):`Z9B2<80@<DH +ML$YP#1!SRD#G\T=D,``:O@2?9)\AL''8]T$]Y1J4"P/+':FBH-+@<'/W4#7D +MR282<6C`,%VW*$D-)@&)'/*0.7G43P/9#K<1,C)W'*;?;[IL#DXW5#Z\:=1S +MW3/)U#)CL=@F$N<&EPR([H2TAK@?J@(%T8=]$Y>7-`D1*3,?F<)2):_!@>RJ +M&&,Q@;J#S`YP=ICV5BXKTS0TM;\E5?1,D'XE('J/$Q(@\!(U(;&H#ZIBT`3] +M0AC$%TJAR\E\"#'.R;4!L,X3`AN(XR4(C)@[J`G.)&`W`^$['2\@C(&(*9I@ +M3!/RG8UFF9W1`EV9D8V2EQ=O*8MGMVW3Y$@1/[H'UX2:X3!/W3``M^".4VSA +MJ]0]T!DB3`QLF>['.>R;TZ@0=^4PWD@F>`$#ZL1!@29[(FN(//P90$3,@0>" +MEIT^D9CD(B4.'((CWW4U")]IG95F07'2I:8`]6Y$*PZ:U!X=1:9C'9'J_P"K +M]%%;,8Z@USG"2I/*I_X@IJ)Q^%>\@2,3[\*G4]3L`EQ=/*O7H&HXP.9W56A7 +M=;W(JM]4;`JU52K&DP#W`0/!TC(R.>%(]TDDF0=T!,NF?NH!.^<@X3<;P2G& +M"#''=.W2=6K&,(&+L'`SW2&_"8DN@0!'LF9@QD#V0.#B0V9X1,:PYTY/NASP +M"DW?)_1!)`!@SGF4U,G3S]$1!+@&`D^PDH6983G"J'):3GYW2DS\(=68(&$1 +MP=OD%%*8$9R>$[SO'9,TPX#VYY0D^QR@7],$E/3U!TZL^R8`:9RDT9,X]T03 +MR"P;GC!W34R2X8^Z1([8Y2#@#Z.$4XG9VR0<3)SE)I!$$`9V'"0/](D"5`[7 +M'5+C!'LE4<7.`WX3&/,+@/NE4@B6SODH!;D3J/.R<[S((Y2&G5D3/,I#\\EV +M_(0+48F1":>=H/=.XX/J@H9&0#]^4#D[N)D\IB&D>K<G$#"$D$#;4B=+J(]4 +M0<!`G:M\"4AG,#'*%ID;\(VCTZ?N@8.`YCLBWR(E,6@-[IP"0`#GL$#M/JP? +MHB+BT1CV0AL-D;!*,R1\90'J!!).3ND"-67`-Y($H<EI$0$JA:'P!I;VF4$E +M4L:]S*1+F#\KR()'PHBWTZL0A!!/:/='Z=1AVH#F$#`RZ=S[(R=3VAVW.5&" +M-1D[(J=33K#`(<()*`B8,`9"=A@!TG[H9D?YI.R`$$K"?*F/9)KA,P$$^C3/ +M.#E$T`28P,*@Z>\3G[),P@88$"3^RD8)]_K*`F#\HTJ:@TEQ#),]LRE86]6X +MJM928YQ=@87J/X=?A_YY9<WU.2=@6[)&<L_5Q'2^@WE[6:VC;N(//^PNQM/P +MZJFS];8=`V^5[!TGPO:VM`-IT6-@1`"U&=+9Y<:`I<Y.G*Y99/G6^\$7MLXM +M;2+O=/TWP'U"X`=4HD-'?NOHJGT&E4?E@*OV_0*#:8_EA3WA[9/F^\\`WS&% +MS:9)VC"I6O@7JE1QFB6^T[+ZAJ]!HZ/RC[*J[H%!ACRQE/>+,LX\!L_PUJNM +M]=1V>T#O\KG_`!7X3J=(`<8=G;_9]U]']4MF6EN8;@+R[Q9:U>J=<IT?+AC3 +M^8+/OOX8V[WMYYT_PU=W-EY[:1B"29QNL.^M7VU=S'M(B0%](])Z)2I=)#?+ +M`;IB(7E/XM]&IVMX:E,0#N`KN6-8YW;SZBW2#G!*,["#./LB<'#,R)Y4=36U +MP(R#NHZA<[47$G/)2],2TP(2(Q+DS<M```[*J>F?3VSLDT""9,'L4+02=.T= +MDX.D$9^2@:63J:=^)3/#0,'/'LF<(,`3'ND[6!$R`-]T41_(,XA,T`MXP/[I +M9&(!`0C83"H<Y$'Z)$-!`)GVG`2>.8$'CLE3INU"/LIMJ8VG:W40,8F$VG!/ +M;:5.VVJ.W!RI_P"#TB"TR>W98]X[3]/E5(0[D8'"8@-(@Y[=LJ^RS#:8)$_! +MW41LW;_V5F<,OTV<4F:-0SGLB>9=C,;'LC?;5&Y:PP.0=_=1.I.#B-,'?LM2 +MQQN&4-Z`T$S*CJN)>&C')37))=C!43B0)'9:C(G!L8@@\(2T`P<1W3-,Y<,> +MQ2<Z`<[X506ML@$`0/H@IMR`?V0@SG(5[I5A5O*=>HQ]%C:-,N.MX;/L)W*@ +MID8D&$.!DC/:4[QB3./="#O\;2G_`%#@1.?OA$T&1/*!L3`XW`*<R&X_?"*$ +M@D$=_NEB),]DP(U29B$1AS2[,#W1#``D@\)VC&`@!DD*6UKU+>X;6HF',Y(! +M_0_*&T9;G&VR+&C^W=-J).)!/9-+L$\]R@?2"Z&R`=I2:1ORFGN8^B=OYL"> +M4!TIF6_*E:,R-Q^JB;F"7P/A2TR"<2"#NK$:-!O\H8_4H]/M^I0VU1IH-+G- +MGW"/73_QM^RNS:.[@SJ='SF51KENJ`(^JNWS0'&#,?,*C5B-QV2FD3C!P/NA +M<0'3(1.D849(Y60GYV"8@!^EY"9GYM]CLGJM(JG5AWNBFEL@!(#.0CI/%-^L +ML94'(=,(6[B-CW0(!NN#D)-_-$8&Z;!?,?5$&P/<Y]D06H:P`Z('=(G,QN4) +M(VREZ1!C94.8)G^Z(!I.K5D[H6@'(3@%K0`,*!G$:O44B!$SONAJ`.=$A(M: +MP01QO*H(8R4XTQM/U3AK74\[\A,2'1/`C`"&BALR"1&92(R8_P`D/]$$_HG: +MV&]OE`4;;DI1G?U!"<`:1$_5,P'.,J`OZN\)$M+3DI?TEO$]T,$[H";$3.X3 +MC?<;(3\Q]4MAC[RJ=$6P2-0W^Z%PTG<=MD3@0W>.Y*`[$%Q^94-$./5&=TY] +M6"YL<Y2HZ)/F:M,?TF,IFQH@$S\IM3@\DY'9&V`)P2HHQV/>43>8)RB#P7', +M`I,,`_XB<&4V(@G*$>DY!)E!(UKC@[)SO&J!W(0M#B<S":3QF-I5!-:[:-^R +M8[P8,)A)G@A(MG<[<HIW-!P0DT;`1!00`1,_*-HDF'8^Z&R>,Z0-]Y3M;!$P +MA=(P(3`N/930D='E9F>R3!Z)(0N)P)Y1ET",#LJ'@AHC:.Z=F6\Y]T+"Z2.% +M)1:[2=O9$%3:&-V$GDJS86M6XJMI,:7.<<>ZKTR3Z0)/<3*]#_"+PU4O+IMW +M49+`9`(/^2,Y9>LVZW\*_`=O2M67-S3#ZKA.1M^B]8Z+T^G;L#13`^%'X7Z> +M*5!C-,8[+H*-L)S"YY9;<9-\T-.V!`X/LK5&U!&6Y5FVH>D<*W3I:6KFZ2*= +MO;!KXC!5YM$%L$;?JCI4I,E6649XW4VU%-U$`:0%!7MQH/9:IH]A@J&K2$?L +MAIS'4^GBLTC.?9<S6\/4OXT/#?RG>%Z+7MY9$96==V6=7]E=LW%S->W%.V@! +M>7?BY8&O:/>`1&Y"]BZE2#&$'8;KS+\5*M)G3*PQLI+I9'@]]3%.I$[<*M5' +MI;DS[*U?5'/JN(V!RJ[W=FQV7:.J"7:I:<)Y,1@E.3#C.4.2=DL4XYVQ@X2@ +M%N9)]MD+I`PW"0=N8,G$(0Q(B-N\),#G#TR>PWE6;*SK5ZA#*9"V^G]'#-+J +MH),<KGY/+CCV]?Z?]'GYNIPPJ5K7J$0U7*72:P$.<#';9=*VVI,8T-:,(W4Q +M@:<+RY?J;>GU?'_Y>,_LYUG23H]69[*Q;],8QTP#P!V6Z*=,4<MR=D+:3=1V +M6+YK7JP_1>/'J,T68G#1",6L[;K1TM),`)F@%T8F%CWKK^S)\9K[2&@C'OW0 +M&W@"1[[\K7T^DN@`*&JP.PWZ*S-,O#BQZMOI=(;+NTJI6L0]Q!$'B.5N5:32 +M)(4%1AG`77'-YL_T\O<<]<=-)+LQ*IUNG5&9'J75>6W4<`_51.H!P@M77'S7 +MZ\?D_0XWF.3-N]H/I46DY#1F5TEQ;,)TN;LJ-S:-)D-A=\?)*\/D_27'IC:3 +MO@\PCHO<UXTG'(G=6*UK!D;J$L+"?3D"#(727;RW"X]ANG:ZAT1!V#0H7ZHS +MN.4;AR1`[$IMR&@B!WX59,R0(B$JC3H!@P=O=$X`#?[%,2"`V8[1B%$T$;&. +M$+7$"!,?LI'L+'%A,GF#,H'QJW0#,&`#)1&"/3(^J=I9`,F1M"$`$R#E`[3! +M@B2@$]RI-W9D]T,2^3A`GOU&3GW2:[)U`3\)/P9DIZ?Y/S$]C.R`Z8!$@?JI +MZ,3"B:`UL$`2I*>F>%J(T:+Z8I`&E/\`^)%YE/\`^'_^=/1T>4/[(_0FDVCN +MR&/CN=E1KM+GX`#5=O<./:?LJ=?6`!CVREYK2*N"&Y:-/=0`1O!5BYK&I3:S +M2T>6W3@;_*KDSF!\+*[`\`"<]R$CDYA.7&#(&4P=),`(A^Y`S^Z1)!G0/A,= +M]Q\)&#C5&$#P#Z2V9X",`!LM)'_2=T#7%K@1N<R41<XF9SQ*!C.F(,_"<-); +M._(2#AF1/]DYB=A@<(A-(TSRD6D`&##ML)R=+<_IRDYSB!,EHVRJI.#1I.#( +MRFCU2X9X[)$MU#&W"=S@1!;[94`2)&"B;@Q&1R2CMWTZ-4.=3#\'!)$'O]$S +MSK)+B23V0`1F0#_FB:8;MGB4TM!RG=AOI=/?*H9QSDDG=,/4,XSR44EID8CN +MFJ/UO+XR=XP$#[@;F#'T0N#0?E.UPTG)U<)G$8).5.@PTQ/Z)R<8.#PFF`3* +M?TDS.$#/`QZOHA/IR8^Z,D1!^Z9SN`90"T[%I_5(CG4$<&20<\?"0'HG(A`! +MCO/N$1+9].P3-!,G)^B,$;($((D&<;%-I([81,AN9G.R<]S'N@'$#)2:6@GD +M)CM&"=Y2TS)]\%-!.:0V3LG;H(]3@R!RF</1._&H)R&@X/V"`>#,2B;!SB`/ +MNF8-6J8QF$YTGL([H%)B"A8)SC")FF9)D>R1&"-`^Z!FZ2!,(V#!C9`S)C`" +MDIZ<D!`J>)&H`*:@T:B'\;94+&@G8#WV5FDT;8'U07NAV#[J]ITJ8U&HZ.Z^ +MCOPPZ"VRZ328&@$-$XB5X_\`@OTT777FU32U"G]>R^DO#EJVG;LP-EC*Z<L^ +M;IJ]+M]+0TC;W6@RB0Z>!W0VS0T",?"O-8'-Y*YTD*W;F8PK0IEPD;)K.E(R +MKK&%K0UH$$9*EK2O18(^%<HTY;@<(64X*LTQZ/[J-:1!DQ*"I1!G4"K(:/CV +M3$`^R&F?5I`">W"IW5'!ANZUJS`!)^%4N*;2,$PAIRW7*.JF6E>7?B%TFI>T +MJE!LC5B3E>S=3H-=3,#9>=>-*#VO<ZEN#V4MXX23EXZS\-R\ZGW&_LJ/B?P$ +M+&U%6WJ%[HV*ZSJMWX@H5GOI4'>4WDA8W4^MUG4]%VUTQDA<9Y?)/CO/'OJO +M-Z]I5H.TU&$9@X4-1@$P?ONO0NFVEEUB62))W6%XR\+W/3'&K2!=3<=X.%Z, +M?-+=4]+O3EG#T0>5+:TV.J,&K$[!.:,#U'`XA36+:0K!I#H_ISRM7+AZ,/!K +M*>SI^AVM(46QDE:1MVZ9)CYV6?TJHUE-K08+1F<J[4NB[!(@]E\O/?L_5^&8 +MS"2#K:1#0&^G$@;J!\<?HC+@3OOOVA`/S;Q!VE9D=./@BW@N.`AT@$S@QW1S +MQJ0%PU$`[JZ2TU(@$SOV3XU;X0GY3L.8_NK(S:(&<$X0`28F?JCI^IV`#/NI +M&-(,N(CNAPKU&X.3*K/;+B3^ZON#"X2H:M,3(:?E:QK&6*F*8`)X*%U,:O2, +MJT6:A(S\H"P`8'ZK<KE<5%],&2,=U!6IM..ZT7MEN,2H33!DQ,+4R<<O&RJE +ML)G2/B54NK=K3J#9G"V31+@8;!*KU:+7&'M,QN,+MCF\OD_3RL"M99]+8',E +M4Z]%S,1)/*Z!U,ZC#3'=05*#"TRPN]EVGD>#R?I9\8);D$@X]DM.T_<K3JVK +M"8S`56M;N!,"0NLRV\>?BN*N0-+3DGDJ,@&9;]U+5:1(((`P(49;%,N&\K3E +MK0?2#@(FMD3^Q0AI,G^Z)K=HDQP@0`/TX2.()!`*6-X..4BW$Y^VR`<$R?OE +M'#=>MS0?;9#_`%R<_=2>HC),#[HA4V@O`!&3B2K+:3J54L?^8;P0?V5=@+7X +M&_<*9H((F9[+2::-$GRADHI/<IJ!FBTYVY1K)PCO8#03$DP1'"IO+7#3'&X* +MNWAET-[[]U1J@9S@SRK5TKN.#&^V2FU`,DP>$50P)(!08#)].4`!P:9W2,'( +M@?"1;!QM"1T[&8X4"F>('LD73N,\)$2<"$@UL[[=@AH[@W!&4\@`2AF,-$=D +M0((/I*!1/'PGJ`#&_NAV`(^ONB@3,Q`RD*6F(S[%,(C!V1`@$1&4(.8T[?J@ +M)P&#P3PDZ"9@;X3$0X#(3;-R1WA`W<GOM"DHEC6G6P/!$"9$'OA"=)<3D3RD +M6>G5M&=^(0(PYT`&#R2F`@S(ENV)3P,D&1$(20?2#))A`[LM.WP.4M+3`#ON +MD/T30"[&)0.1,YVRFB&#YP$@")$_F2C3SE#1')P/CLG@;;)FQL#LG9&,F!C? +M=`G&#!,@]D,>WU3Z(&K,3"8?E(!S*!P($Y^=TX`(._<Y0G4($F-\I`$`'7(] +MR@=N''2GTX!.24IWGD=TL:B03E`^F'1V]TSH+AJP.4A&K#DQ'O\`=`FALP#C +MNC/I(@QVA1P6SZH@I\H$<@R[Z]TV8+2222D8!B/HGAH;((<>QP`@;40R`1ZA +MF0EN`(R,$IB"!NB:-I/&R!B"#N91-P"<D)1!C]$,'43DRBK8J6W_``KRO()N +M/,U"J''#8_+'SR@#G"WT;MU3]5".YW^45/5,;3V4T@F`AVX([>ZN6=)U6JUC +M#)<8WA4QJ#N-UT/@6W;5Z_:-J:2USQ/;<*I7M7X)>'/X/IE*K48-=4!Q/.P] +ME[#TVDQE!HD;!<GX2ITZ-A2T@"`/V746=4'2&F5QSRY<<8U:#"2(,1NM&UI2 +M`9,'=4^FM$!QC9:UM3!`@X66XEITVC:?96*;?Y1)Q'"&G3B".%(3(`;V4K41 +M'+H!*FHR8$Y]T-.D7.!*LTF!A$Y[*:5&01$HFM&G5^ZE=3!$\)FLTM@YE%0U +M&F/95+FG(GLK]8D^F8,*A>`G`A+1F7X]!,?*Y?JMHRO6ES!`.5T=_4+9!&.Z +MQ+BH"7$B(&%C*FF/UNWL'VIM/+:`X:0LNX_":UZ_T\MH-(J.&".Z@N:[W^)M +M)R`?[KU#\,NMT+6[;0K.&1&5Y/W+A=UWF&^GR?XZ\+=;_#SQ2VUNVO;2<[4U +MYF")_P!%V'2[=OB7PT0&@E[(F)S"]6_\9%C8=:\(_P`51:UU>V]0<W>,KRK\ +M`:NJU?:U#,9S\#"WGG,M91N;T\?\7]/N.D=<K65=NG0XP8W$[K*MWO-0.&8] +MEZG_`.(GI/\`_<MO6IL'\RG!('N5QW3^FM92:"UTC,%>F>7&8O3X?#Y//=AZ +M?4K-HB08]E>I:B(_0\*:VM<#TG'SA7&VA#@"V9]EY,LY:^]XO'<<=519J),Y +M/"-I>(EH6M;]-J.:!Y#B79P%J],\*W-=H?HT@;:@LSGIK/R8X3=KE1KW@Y2# +M:T?E.>5WMGX.`<#6=,C(6W;>%K%E-H-%KL025VQ\-KP^7_T?'A>.7DP9<$C0 +MUP=QA6Z'2NHU73Y+W%QDSRO6*/ARRI^H4F`]EHVUE;,9'EB`NV/@GVO'Y/\` +MUO\`\QY78^&.IU&RYND^ZL,\)W^DAQ:#[+U&E;T22)$=D?ETI(C$+7[.#SW_ +M`-3S?'EG_E&]TE^H'YW0N\)7;F>H@$GY7J-S3IM&1QM*K-8P.VW[J_LX)_\` +M4\SR^X\*7S#Z:<@'$*"MX:OV"32,[X7K;J3'#\L(76M$M]7V3]C%9_ZOE^O% +M;SI=W1,&@<;JE5H.#9#")]E[7==.MZH(-,&5F77A^S>Z/*;]E+X)\KMC_P"K +M_P#J/'GM(RX`905*(\LN*]4OO"-BYN*<$]ES_6/"#X)MS_\`A_V%F^'+X[X_ +M^CXLN+PX"XI2,CN5"6MC@SA=+?\`AJ^I./\`+)![2L6YLJM#4'TG-+=Y!_R4 +M]<HZ_N89\RLNK3(<9`(G_94+V!S",Z09VW5RX$R"9C8*.F*8.W$K<KAGC*SZ +MELTTY,0J-Q0(>0&Q[+<K,!(`[[J"K2!F``%N9O-Y/!*PJP+7Z2/RA,UWM"TK +MRW#Q``(6?6IAE2(D3DE=L<MO%Y/'<48@R<X1;'<QR$5%K#J#Z@;,^J#PA<`# +M`(`[K3D$:2,?:=U+2<`-R%&#)U'/8(@&F26^V#$%5!-<"[.2IJ)$ZR"H`&AH +M..>5-0@$`^^%4:M`32:0#$(M+O\`"5!39%,>MR+1_P!;E4W"OC,@M.,22>ZI +M5#L#B`K=WO+HDA4J@:79'ZK-:1O.O/W05`2X"!`'Z(X(,EP@CNHWY(P84.@N +M@'WW3$F(Y3R0[OREJ:701`Y0"Z0\&1!Q*41#6QMV3.,NW.F4@<9&=D#_`&WV +M*D86B3@8Q$84<B(V")D;DY0*,X_[(GY=)B-I":9($#Z;)YR1O"(?!`@2`>Z9 +MPTD2/LG!YS&WPD\!I<6@ELX*<*%HB=]L>Z?!+2XR(C'"9I/`YW31!COE`1]+ +M8WD\X2<"1Q`.R$EI@`00<E.8\LG(C]4"<T2#L/;)A*)',SOLF)$B),^R0(B? +MR^R!#`F3V3.$.)S]4Y,C`3#!GWD\H''S@#;NG<6N@1D[(2<D@C=,XP`<24"A +MP+FDG)@A24VDX+@,')/*!I!;O]43G"=P@3XDC;/="V2T2!ON4Y$@"4P,-Y^? +M9`S7=C(2+A,$[8,I2#J[>Q31Z<9`]T$A@S,8&$FY(`CZ(0!(V$[3.?A%)C?< +M(O18#?HG`+6->Z(?C[(=Q^B=Q,MD^PE$,[5P<#DIH)GDI5!#N/@)-'K$.F$! +M.;I9)<"(G!W48G5O$G8HW3DNV03!11D-T$`@&$@[88QN"DT"&S@E*/1C;LH@ +M00\P=OA&=R!C.)0T\&(W3D'5![JZ#N/!,(V.B21GN$+0TF"G.V=D!TX)U#E; +MGA&N+?KEO6C#'`[_``L*1O'T6ATUPIUF/R8,YPI87E]0>$KYMQTN@YCL.`./ +M@+LNBTW5-,X$;]UY5^"5S5O^ET0=F`"3/LO9NA6^BFS&?V7&SEQC7Z;2AH)X +M[+5M@T&.V%2M6P,<]U;HNR,@?59;BU(:TYGZI4A+O;E1.S$!3VPVD*?6DU)H +M&)4C&2-X2:T1Q,(I:,3[?"H<#2()F#RF(G`10#A,[TLD&(10.I>C5&V.RH7[ +MM+'9V"MW-7T?FC'?=9=\^=0=RH.8\27[:3RW(E4NG!UY(:/S<!0>--+:X(=R +MH/#W6:-D]_G/`U#!*\N>?K77'';,\16'\'U`U?ZAF"LZTZQ4M[X.UF0Y:/C? +MK-"ZJZZ+A`9!(^JXVR+ZO4`."9)7&WV:ZKM?%]Z>I^&JE*H20ZGM]%P'X:6M +M>RZQ7-++02/U"[#J=84^D>6#)+8CZ*CX2LC1I5*C6$N>2DWKUC4NG+?B]KO. +MJT61EC>WN5@]'Z#>73FZ:+HVD@KTR[\/_P`=U'^)JTR2T1!"UK#HK+>D`RFU +MH[0N^'AM_L]W_P!#'PX3'"<N(Z1X.>S2^X/P`%NT/"UK3A[J;3\C_1=2VTEA +M):.P3_P[BT""N^/AQG.GES_]'RY_63;]%MFL;I8W`X"M4[)M.G#6A:5M;9DE +M7&6[-.6B1NNDQD>7+S99=USKK5_F3"E%M4$`K;-!NK`1?PX+IC;E:<K:QJMF +MXM,#)0T;,S&X*WFVX.XD0B-NP"=@K-);6&VR.HN.(X4IL<2(@96KY0+@0%.R +MCZ0`?HJCGZE@7G/"B_@M.=,KI'T1,!JBJV[7$@A6)ISC[>IO^BCKVSRXZ9A= +M#Y!DB(X0U;<#>)A!S+J%5C9(.$#608(GE=)5M6.'TX5.I9-+L(;8E1C2[2!^ +MJ@N*`$P-^ZV+NPT9`YW55]!PG5'=-&V'5M&5'9:(&=EG]5Z!95J;@ZBP`C<! +M=$ZFW7@?9!68'$`-SLKTLRL>:]:\#TGS4HXGC_87-=7\)7EHPN:USF^R]IK6 +M\#+1GV52O9TJK-+F@@[@J62]QVQ_4YX_7@%6UK47N\QKA'>5#7T"F8&W=>S= +M?\,6EXPN--K701@;K@O$_@^ZM];Z#"?CLLWP[YCUX?K9>*XQ_J!=V&RJWE(. +M;@;[+4NK*O;^FJTMA4[ILM(VCCNL3<KKGK/';*:`TGV3M<`UX+=3G#!).$SP +M?,Q(0O'^&?HN[YUT%FG6(!$^Z,;0),(8(@9]RB.#Z096D$&QG)_93T`T/@F( +M&R@!AAD%2TCD>J!SA-)PTZ6D4P"[CN44L_Q_J5%3<\,`#G$!/KJ=W*^IN%>; +M%Q<X=O=4ZK6A\R3"MWC1F-]U2JD`ZHRLUI&2!(^JC<8GG^Z-T:/?Y0R`T&#* +M:0!+3S!CE,=,X,]T[FGG,IN<?6"H!D0`""C$%\'O!S"9TMXWY*$9@@GZ(IW` +M`;_*3?I'$)-TDAIU1.1,)V!@>700R<2J@VMP,GV[)%PWD`QLE(V$I.;F"443 +M1C3(E#4WXSPGW.!OB4+L`0B':1_LIY'F#\H'OE`W?:/=.!P<\H=E4TS$G*6) +MTB3!W)0U`9B1&Z<!LS(C_"$#X$C8>R3_`$`01!V*$@%WM[2A($3!440+8DP> +M_P`)-]7'LFW$@@$<).:X$#(,3"(<Q`,)C@R3LD1D28"9X$;P@0@-C5&K>$3= +MI]D.B&CU;IZ8/.?9%.W2'1$F.4Y'9XD\H""`08![RA`)[0/=!+H`HZB]KB3^ +M4`RFQIB!\%#"<?E`+C/(*0.T3`+H]Y1:<8.$&[MOH"GWF(&(D(:2`L-/3$.D +MYE"3G(VRG8)S*C=^;V"`B`8[\IM()X)2.`3,?W3%I:[5)&-R@,8;G890.:"[ +M`]TXUQC>3E-SEKI*`FQHQCB>R>(&#N4)V`[CE.X>GCY"!VCU2,]D[@#.\I@) +M`EQ(`[IVF!/*(36_U"!",@:-6!/"C:7-.F)&$[LY&P/*`P&^V=RM"P8YSF@3 +M/8+.8'<NTQ^JT.CG_P!2UI."X82CZ5_`*Q90Z!0)`EPF3]%Z]8M](`_1>7_@ +MY58WHMLT<,'[!>G=/K#2#.ZY95QQC2HXW^ZN4F8&RIT'<\*U3<(X6'18IM$[ +M^RLT0`/T56F9((^JMTHP9V14S8#"XCZ*"I5/F1SW4I&(!4+J<&82K$U"H8,G +M,IJK_>4-,:<G)2JQ'*""Y<2/U5&\`@DX/"N5G2=\CLJ%T0>0%#3A_'#'AP<) +MB<X7"=>N"2&,)'<SLO5O$5@RO0=.>5YSXDZ.ZD7/:V2"N.?B]NFL<],FI;U/ +MX)I+IGNJ@K,MGR-QE3BI</\`Y.DG^RT_#_ANO>W#7U&G3,Y7*>'*_&O:`Z1; +M7?5*S1I(9O\`*[OH_2&6UJT:1,=E>Z#T2C96[0&B5IOIZ6B&X7HP\4Q8N5K/ +M99TV@@`;3LH*U%C7:8"TVTGF1D(769).)*ZQBLKR#'ID\J7R/3^671@+4IV9 +MQNK%*P<2"6R5H8M&T=@Z4?\`#/#IC!X"Z>\\L'LI!T\NC"I(YW^#($[J6C +M;3(^JZ.GTX!OY0C;TYK0(:$-.=_@L;;H76T#9=2;`%L`2H*G3`'9"&G/?PX: +MV0W"C-/3,#]UT3NG']5!4Z:X@]BJ:8+J<_EYW1A@B#QPM&K8.!(TE!_!G)VQ +ME$9KZ0&PW0NH-+<P!W5^I0]6)P@J48;M'LJC/K46Z?3RJOD>K:%JBF9(C=15 +MJ0DGE!F/HASH.QY*AK6D[#9:3:<.)_=1U</CCE$8%?I_J=$2JS[)[28;(!70 +MUJ37"0`JU1C6B9E7;.F!<4R`0YIVV*HUJ#@[6`8[!=%<V[*GJPJEQ;`43!QV +M*2&W.UVDN`@]U5N*`J>E[9"V:E"23'W52K3@D!NRHX[Q'X9MKT.+&!K_`&Y7 +MGWB?PO<V)<X,);G9>TU6%C28A9E[:T;MQ:^#\J\7MO#RY8=/G6_MWTZQU@@[ +M0JO'8KU[QQX.I50^M;MAR\RZSTRXL:[A49!G'LM7'4W&YY)E6<W!B)([A/,N +MV&G9/4`D3QOW2C.28696M'@@',X[*6W!U`#G*!L!HQ[94M`-<2X"(*J::--\ +M4P"V?<!%K'^`_8(:#:?E-U.@QME'II?X_P!U/:&J"Y]+BT&`<$0J56)G<<1* +MMW3?ZI$\A57B=GP)R>RM`U6T&V;'MJEU5SB',TX`[RH!^;=$\^K!!08=.8(X +M[J!-;_U2.R$M<)D0>Z=I@YPED`D.SW)0"]I(DB?JK+`*-E4(>TOK```;CNJY +M+B28VY3.RV!QPH&J/U2`C,'X28<29^Z?7F0<'NJ#IR':Q,QC.R%P).`#/ +M,H28.TH@2'9.-E#9Z>VYE)XW!;/:$MAV0ZR3/?94/Q[)#3W^H0Y<#`VWA,"# +M+H(*`G279PEI,;[YQE,2!DRBD:9S\!`+MH/Z(28<"6Z@/U1-TCN/=-5<=69A +M-*$'?LB)<,SN(3.(@P)0D@`X/RH"DY,<)'CW*8G,?=(.,Q&P0.)C3LG)(,-. +M=Y".JRFV@VHVL'$[MY"BU:=\]E=!W%SO<C<I,&#,^T'E,'N:)82)WSNGU8D? +MHH&,9$9E,Z!RG+R#IS'N83AP@;#W"!-D-Y^919T%QVVSRF!&Z(N;Y<;'5R@$ +M$`R/T1``N,3!V3M>TM(."$@0?A`+H!@S\H2'''[HR3IC!^0F(@F?M*H;3F2Z +M`4OS2(!]TX(CB1PD`.,=RH%`$22DV(Y/LE@G/T3C3&((F,HAVB"1]$M#MHG2 +M<PFV(`'W3@D2/\7NBGDHBXEA:W8J-Q),$B>(1@P,X]Y0)N/G96^G/+:@)G&% +M4P3),@^ZFH%K8,Q"#Z&_!#K!J=.I4M660-U[3T>L'4FS\[KYE_`GJM*C>>2Y +MP&H[DKZ&Z-=--%I:<'LN.3EU77V]00.)X4VO.)PLBQN6N$3^JTK7U#<P?=9L +M:B_;N)*NT2-,;*C1@*Y2(,2BI2Z,)4W3(*9S03C*8PTS$2BI'1&^.ZBK/$0A +M?&C_`#4);//V2@*ASA0NIR=1W5P4H;LF%'!(4T,R\I![(E<]U?IU.H3S*ZNZ +M8!L#*RZU#SGD?LJECDK+P_1_BB[2")76=*Z73HT!I8!"NVG3PUH<0M&WM]+` +M%I-*3+8Z1B$S[<G@+5\K`'9*I18UA)5TK,%J`)`"E9:@P3"FJUJ5-N7"/E9_ +M4.M6U!I'F-GY6+G(U,;6C3HTPV3IPG#Z+($@#W7*7OBBBUITU6_=8=YXO9KT +MBKGB2N67GDZ=,?%:]&JWM%HPYJB'4:6K\X`7F%UXO#&F:F!S*JT?&]`U-)JM +M!^5SOGKI/"]=;U&F'?F&R1ZBT\[+SFS\34*K`?-!GW5ZVZY3?4TBJ%)Y:U^U +M'=4^IM$Y4M._:\#(*Y&A>^9EKMU8%RYH_,M3R5+XXZS^)I.;^Z<5J+O3@2N7 +MI7;MR25)_%/U#2\_"W/-6?VG2>73?S]$#K)AF`/HL2EU"HSG;E6:/5SR2MSS +M?EB^);K=/;I,#/95:UA(,"`K5/J5-[<D%6:=U1>W,`+I/)*YWQU@/LBV7053 +MN:'(;E=:ZE1>"1"K5NGTG">%N65BXZ<DZWAIE5JM$3!P%TUS8$$@`1*HU;`@ +MDQNJS8Q:E!@;@'OV5"XI>HY,!;=:W<#$3"JU[:0=059L8D!KLY"CN*;7D#A: +M56VD$8^57\HM.1*(RZ]!H!`;"H5:$/)B%NW%$ETZ57N:`TR1*K+G[ND"TF-E +MEUK5S27[+JW6[<N(A4KVW#@0UL2J.9K4V/I$/R2N4\6^%;?J+7/@:O;_`+KO +M+BV:#D2JE:BSZ+4RLZ37U\\>).B5;"Z>W3(G!A8P8`2"(CB%[_XEZ%:7])S0 +MP!W=>7>,?"E6SJN?2G3RKZR\QVQ\F^*Y-K00!.VZFI?F&<IKBD*3S3$R.4=$ +MC!,++HOT0/*$X/RBTCO^J:B!Y0D@(]+?\014%T&C())[*I4(U06P1A7K@`O, +MP>-U4>X$1@-X'*"#3/J@X0.QQ,J4O@$MVV(0.#0!ZM]S*B(R!$@E"8(C@*1[ +MB7N>3E,6^D.<TP=O=!&WW._NGJ=VDM`2[XF$CF)CX4-!!C`._='2@RV(Q,RF +M=$3&W"9F&QGZ\*FC@$?U$GV2<8Q()*4AVY2T@$,@^Y0-)!S'NDT-G'.R*8<9 +M2&F`#@\J&@M`,F4QPX@[*2&[@?5,6^@F!.T*P1N.<9E$T`,F8C=#IAW^PC:& +MQ`P.5%)@`IZI;OM.4!GC3D=D6`US8,[C*3P'8;P%0VG`C'LF+27]D36X#G3G +MDIBX!T@@>Z`8&"4T0=_UW1%H.9)!0N@$_M*@:8WRGUY@?J4MX'*3&M[Q_=#1 +M$G3,QW1%Q&<Q\I@T;;$^Z3`Z8,GX0T3A@8X[ICW('Q*DTAV=1S[IJC0(TN(^ +MJIH(/$@)'8NW]TX``R0$HD&<B>ZAHFX.-N?=.TY'LD1O'";\L'<E4&(.Z;)D +M$(1)!S]TH.H;GW"&CD`9V1..8'VWE,&EQWCY38D0=T!8+0`(*:/3L8Y1.:9R +M1MRF`@YGW(4".!L430]L5`"T;C";?Y&Z1F2V20$31.C5(3.,-`2`=&^Z3PW2 +M,S[*KHPTC(A24JFDZH!`X,J(F#QA.-LF1[%#3;\+=2J=.ZC2K4GQ!V[+Z2_# +MOQ'1O>ETWBL"Z,B>?NOE<&#.K]5U7@OQ;>='J-#3%/V)/]USSQ^Q+CM]8]+Z +MB-7YC]UU/2:XJ-!#XYW7A7@?QG;=0H-+ZH;4Y;,2?NO1/#O7FD@&JT_!7&\, +MZL[>E47M#<E6:-1O*Y.AUIAAKB!*T;?J+7'+@1\J;5T+7MYA!7JR-A[K/H7` +M<?S?53ZQO*JI6^KW"GI4S@`_HH6.;N/NIJ=3L1CE6"4-#1.?A,UYIG5@SB"$ +M+W@'?=0U:K3/L@JW>7$CE*RMM3M1PC#=1WGV5RR8`?=6(L4[66`A05'LIDR1 +MA6ZUS3I4"=0PN"\:^(_X?4VD<[83+.2+CCMTU[U:WH-)-1N/=<OXB\;VU&D6 +M4WR1OE>:]>\0]3JEVESH/RL!]:[N'ES]><%>3/RVN^/CCM.K>.JKI#7&/E<C +MU[Q;?.)<"\@^_P#JH6]+KOD^HS&\JQ0Z`^JPAU,GY"QWVZS4857Q5?UC'K`F +M)@PJUQU#J3G"H*CBWVE;=;PHYM:(.G?'?[+8Z5T6EH%-S,C@C">L=/:3IA]) +M=7O:!;5)SC.ZSO$/2KRE4-6DXP.R[K_@[:%0.:W3_97*G2V5Z&DM!/=)-,^U +MEW'GO1+R^H/%-Y,#NM^EU&XIM\S45?J=":VM(;'O""KTPAT:#'"Q8U[;;'AS +MKS]3653@>ZZZROJ==DM(7GM&P?3:'#$+6Z76K4:@:7'"2V+K;M#5WAREIO?/ +ML%C65Q,:C'NM>@6%HV^JU*FA.JNU0)1M>X['9`Z"TY^B!WY/VRM,Z6F5W-Q) +M@X4S+EXR'&5EE\#>5(VIZ<.A39ILTNIU6`2?U5ZWZN',+7+FJ;R2<IV/(Q*W +M,[&,L)75"]HU!N/?*E#:-5F'#X7)&X<UI+7J2VZI4IF!4)"ZX^9ROA=#=6-/ +MR]0`^RS;FQS$?9%;=8U,`<<*V+RG5;!+9]UWQ\LKCEX[LBT&`9E4;FV>! +M,976NI4ZC<*C=V6#NNDRCE<7*.:0XR,J"Y@;-"W[BQ.LDM69=6NX`"TSID5Y +MF(4+V@L@MB5JOM"&203"IU:0!C9&6'?48.V%0N;.6X"WZX(&P@\JG6AWHB6K +M6T<M<T"'D`'[RLKJW3_XBD]I8#/LNON[7/RJ-S2TMTZ?N%>D[>&>-^@5:-R: +ME*GCF%RX9I?!!@<+WCQ'TUMQ:U&.`)(PO)O%/1JEE<NFG@[0MV;YCKX\_E5* +M#6FDTZ@/NBTM_P`8_5-0I12`!'V1^6>X^RY:CLJ.KUJ;*U*G5=396:&5`#AP +MD'/V_14GP#`D_P":M7@;JF/]54J#B=\[JT`2UI`G_)';5*#!4%>FY^K8M,05 +M&R`PB.VR$.]4Q*E@,TF/>UM$N<7;`[J*."XHW!NJ0"UO!E"8(`.4`#Y^DIL" +M)._;*.(.ES3(.W9,6MWDQ\H:"[V)'PD08TS(Y3@`S&!W"1`+<X*0"R2[)/NB +MDAPW3M#=^R48VGX0`?9R=X#<@G/&Z=S00(&)A._3P#@(!#3IDN$?*>2)D[;) +M@V#G>82!D<_912!@Y.`G=$C.`F($@$004[P)W]T`@2[*=QQ)^GRGB`29^(W3 +M:0002<?1`Q@QI^D).!F>/V3F0()(0N_,1G/'=`+B8B1',)LGW[)W?_<?IV2F +M'#)309H=].R=I=M.#E.=.G=Q[(0V02#LBGU.+B<92$@?(W2S`D1"8S.#QL$! +ML+IQWV3DQ$'9"P@-S)^41`P=39.,<(@9DR7#.8E2-UAD84;0-S@#V3M,#)D` +MH#+O2&D9]E&XSB-S]D;3#?S2#&$X8"T\CN@`.],N'W3M_/+A',IRTR`8&R8, +MW`+23PKHV>'9CG.R$.,SCX"-K8P3OCE!'IG[[J`B1(C8[2G$EI`'ND9D;93& +M9S$H'GU&!`A,XNS`PC:"3$A`X<M."J!U9^46LZHC9!._^:(&<#/N5)`+7'5L +M"3NC)`@X^J%\AP(B-L=D37<P,"/9-`B_@@83^81$8/*9NH@_?=-,CO[`HK3Z +M9U2ZLG--*L\'V)7;>#/Q%NK2X:+EY<WN2??W7F[2Z03@GA2,G@F#NLW"9=KM +M],=#\?6%^&!MP&NC8F%V?1>LFI3:X5<?*^0+2]JT'!U.J]KA/*[3PQ^)'4.G +MT/*J.+QP7%<KX[&;C^'U3:]9VE^?E:_3NK-JL$/E?,O2?Q4\VMIJ@M;R05W_ +M`(8\=V):T^<,C8X7/5G998]OHWI(&=E,V[;OK`(W"\UH>.>G>2)KM/O*+_SI +M;&`VN"1C&?[)N4>B5[T-F'?""A<^>,.,''RN/Z1U5_4BT,G2>2NOZ=3;2I#6 +MMR;9VNL>6'\TC]D]UU"G:T2XN&%5N:K:=-Q)^ZX[Q7U-Y8ZFUT`*97U:DVF\ +M4>,0POITWKC']5=?57>8=S*C?:/NJ^27%:%ET.'MAL^Z\F6[7IQD@;>QIW#- +M6G)Y5BUZ'1G\@QG9;G3^G!M/0=BM.C9L:P`"/E6+_P`<]2Z12`/IB.5<M.FL +M;_\`HP/HM@46@&0(_=)K6MSP4Z)&1<=+80?2"=YA5Z73-+I#1[0%T+FA^^_9 +M'3MVZ.,)VO3FZUI(+7MDA/0H:29&!PN@KV;8,#V*A;9@G9+"5AU+9K7!V,;J +M,VS702``#PMNXLQH=ME56VWKF)E9K49-Q:CRS`_U06-LUY$B2MPV8>'$]E5M +M[44JF<05&H@T.:T@#A:/3ZCO*#3NBI6S2Z2%*VV,^D?"B[2M,C8?=([R%+3I +MP())"*E193:0R0)P.RK*HYA)QO\`LH7/(,*[59I$JI787.V1=&I5#\(C5]4! +M0GTDD[A1O=I((,PIH6WU!I$#=0.<"R1(^%%K+G`26I`D:H)DY24T-]9S8TJ> +MC=O8R0X[\*EL3G!4-2L6OC/PM)9MTEEU8C#C';*U[:_H5J8@B8R9W7$4WDLP +M[Y4E"[J4LASH^5TQ\ECCEXY7;U&4ZK2&@+.N[`#(;NLNSZN6.ASX[Y6O;]1I +M7#1Z@O3CY97GR\5C(N:)8XM((E9EQ;.+R<P5UC[9E:7`A4;RP@#&/E=Y7#+% +MRMU0=I/99E9NA\1GA=1>VS@8`$+,OK?09Y"U&+-,>H/3J+=/UE4KVF'QZ<E: +M-U3<7%NK2!^J@K,I@8=!"LX1SG4K,E\'DRN;\4])IW=B6%@<Z-NR[CJ%'4#I +M[\+*N;4#&_<]U9=7;.GD%3P_58\M;L#W3?\``:W;]5Z?4Z30>\N(R>Z;_@]O +MV"W_`!=?W*\#NZD/APSR=U4JOAT@8XY4U?\`.2,859PAW8>Y7.NVR+H.TB,% +M,7##HC'>0FQ$B$S@`T=SQMA0V,U6;-!@C8H?,TD.8=MI0%H`F9A`(,AT^R"5 +M]8OJE[R2YYDDF24.L3JSGNA@:9!Q/^PE&(S!W0V(5#N`2"93O>#F<GD(/3R= +MT.`"V-C\0AM*7@MD[[$RG;4&PD:0HP`>8]O9+$S.P022,DG!2#O1$X''NHY` +M[YV2:(S.>Z`@0'0-MLIVN9D\;*,@S,XC9-`!DN@'A%'Z9U<#$HG.86CG/*BW +M><E'JW`.3RB;.'-V=(/()V17#6MKEK*S*FQU-F-O<!009,0$HD';Y)1=I:=1 +MC7`U`'CELD<>R'6W0TM.1PHL@`0(&Y3`8,9A#:1SFAN\CO*4LC\V3R@CD8"1 +M&<X@("V$1CV*)IQ!A1Q)DGA(-,?JIHV,/;J.8!3ES"Z3IGVQ"`M(WV]D)C)G +MX"NC:1I;F#PD).9;@[J(Z@8//9.<`'ME!(UP@B`>9*(P&@%TQNHH@9VYRDT2 +M,J&TNKT_F&/T14:C09G'90`&,?;NFC.VWNJ;62[UR#(D)FS&#C]E"&.B8._& +M82(AOPH;3D`#?9"/SQ,R@9L3,':"A&"8P=O=4VL?TB=C[)B?4,S.)4+2YVD@ +MP!LE,;*&UAI$!TB/=`XC!^ZB'IP23W3.RT#GE71M)N![)X'$Y*A`(?F8GNG! +M(GV]T5,WL.$F<-])A0DGO\P48,N:9G"(E#23,_24X+2!`CVC"BUG,DMQPFU8 +MR0"-LY1=IZ<9''S!2:2)$P.Q4<@/W,<Y3:SH&=_=#:>3K&))X3AQ)D;;C*AI +MN(V.0B$ZMX]DT;3-J.;D3@YA7+?J%RT'2\YB<K.:2V"#F.Z*B20-.2EY-MBA +MU;J#RUIN:AT["=EZ3^%5AU7J-VRK4<[R1./NN9_#SPA5OZK:U8$L]QNOH7\. +M^@LLZ%.*8@#Z+%D[9S\GR.O\%]*9:V;!O`75@-#!(@0J73J8I4?8+.\3=6;; +M,--A`G`6,LM,XQ7\5=6;1I%C=SV*X[1<WUQ.8[*6GYW4+HO<XQVA;=E092I; +M+R9WV[>G&:!TKIS*(!?$K5H46X`&%%2:YYX4]'7OL>5C;K(MT6L`G2G>0'"% +M$R3N8Y1!CC`F5-[;D.XZA&`0F;3^P1BF=)[J;R@Y@/[J=KPA\OG,*Q1;!C>$ +M@SB"/HC8P$AORKK25)I:3D`=_9(6[=)@#Z)B0-A/"-KQMA:E9TJ5:68CY4#[ +M?2"8RM%PE^P3:0Z,*5J*`I13_=4G4?YA@8'=;GDRT[2JXMP2#A9UPUM4MZ`@ +M$_JIJ5-IF0K#J):.WU0-9$08/92B(,=JP,!3-I_RSW4]&F3EQ^JE%.7#N4D& +M959B'#!Q"J7-*#$;=EM5J30W;*HUZ4O@<;H,FNQT$D0J[R)C<[+3NZ3B-L+, +MK-WWQRHL!4R#$9[)A4+1,92;)$&$&\JE-4<">Q]TWE!XF2/JD]P!@CZH758: +M2W*=()K0UF#,IY;$"%!YH&"=NZ'S@';_`$2&DSAWW1T*]2B):2(XE1MJ@GF4 +M;(>V"5N,6-CIO6"QH8]Q$]EN4;FE7HX>,KAZC8!(,?W3V74*U$^EQ@<%=</) +M<7'/QRNMNK9NIVD2LN_M"701]5-TKJ].M#:KOKW6MY5*NS4UPSLO5AY)D\F? +MCL<1?VV@06K(J4'/J3)#5VW4["23I,'E8E]9.`)&'+MVXN<J4X>03C*KW%LW +M20&_5:5S;Z'Z@JM5P+M)V"#--"F#!R4WD4NQ6LRC1+`2""47D4?=.%?)%<D/ +M,#.T`JN]LNQL=@58?!=),2>56?O.XXRH])J@@$.TRWLHV@@',GA&]QYR.4SO +MRDR,<(R"1)`W^4B(V!2G>&IB3JVX[HIW:-1`.`<80.B9!(([IYDP2)[IB2)Q +M]D#.=/(^Z)H@:L'ZH3&G#3O\)<B<E`39:,Y]QPG#1#G2,8B<E"UY`<8$GLB9 +MP"WXA`L-,&9&$],-Y=$<QND0X$AS((.QX38@J@2#N)W1-:-.<#ND#C;"=VG2 +M1[;J`,D\!(F6$&2!P4X+9&K,_1"XM#L9212@=I([)J@.K?YY2$1L?ND70TB, +M)$,0W`)VQA,&[P41(G/ZI-B,(I@0`1PGDG)^$SC!$<]D\CB90.T'8'<[(23_ +M`$[%/J[DQNGQO*!G<9"3M)$_W2!@2'1W"0@\?K"!:6YQ$\)I@<_*)Q]&YC@' +M9,=(=D?J@1$B!GNF:!IWA.(!F<)0W,2F@B!&9RA!&F#PC^<I/T%H`$)H,PP? +M?E."9W28!`$P">R8B#G]$"=J(_U3M$X;B>$YD`MF0=QW3-@C+9(Y0%I;K)VC +M8=T-0R[_`%3AH<[N!PF>-),B/8H'8).9,(!IF/;!)1$ZL>R$B,<]T#@0P'?@ +MI@9/Z).,-B4FG&V_*!P`1C/LD-0!]1CV3,.(`^,HFF),8^4#C5N/L$[9/IC, +MY(2$@8Q^J*1(:1]$"(],0<<)J>F-DY@M$?ND(F0J&/I<5+3(,3D$IG!I!.QV +MA.&P-ON4"(!$#E=A^'7AQW4;MKZC)8TA8/0.FOO[UC`PP2O>?PZ\/FTM6`L' +MRLWIG+/UZ=#X.Z*RA2IT*;,-'*]+Z);MH4`-`"R?#5@U@!(B-PNB>6TZ>-EB +MN<YY1=5Z@*%%P:1C<RN)ZC5J]1O8W"TO$UWG0WE0])HAPUN$GW7#.N^$VNV- +M'RJ0B)A7K>F7#U)K2F2-ONKU"G!CLO/>7IQA6S`QHA3&F0"4@`'2<*1[FAN( +M6:Z2$P"6XP5,T#&%`Q[2_)_56&'MNIMK22FUNG_52M'HQRH&$ZO2K5`#3_=6 +M4T`,,0!",LT@3^BD$.F,)G./*K*%T\H28B``GJG_`*E&7`[S`02XB)1-B9C" +MB8X1,DX1TG09/*FQ/'I@#Y3^6,N)@CV3-)(D(Z?YC^J*!](O?`0U:`;D?16& +M-&8'Z)ZE)KP`X2.45'08W1&".Y5@4QH,)4F'4('W4^D:)'*1*I5*0!DSE5*U +M(:C&Q6C6:!.)A5JC6S);E18S*U"096?=6S1_3!6[7``^50K,#R3C"G2L-]') +M)&`@\HP?9;#K=A&!@JLZD!(`0K(?3)!&WNJ]1C]/I(^@6S5H`B`,JM_#:21^ +MB:1EO;IG!*A#'ZCO'*TW6WJ,A)M!H$&$TNU&DPG?CW5BG3@;[J846L),<HF: +M8$Q\*LVH'M.QS`55WI<9'U6D8C>)5:O2#G;;K4K"FUY:[4Q\%;/1.LN8[RWN +MU`+*=;$B<J&M1<W:<96ION,927MZ'9W%"\H2""85#JMB8)CX7,]%ZL^V>&/< +M1_OX7765[3O*(@CW*]/B\ORO+Y/%KIR74K0LEQ'ZK%K6O\S6Z3"[OK/3@6DM +MV7-=4M2*1TSCL%ZIR\MX9#7M`B?U2\QO<?=,*)Y!E/Y/S]TTO#Y%K-)F71]5 +M6>0<`!6*YEQ;`&..56>1Q"E>H+@2/8)/!D2-TSMA)QV2(F'$X]D-&<,X[(2) +M))&41`'9"X]T#$&9@&=BD9`B"2$PSMQPB<US1+AID2)Y1`$&1.Z1!X!!/&R= +MND9<X^R8D2/[HIP)]61"(2.#'>4)@#_1%3=+80/+MR23WE-LTZ@DZ8&04TX@ +ME$.!Z9S!2W[I9#1.4I+M.?:.Z`?3S,<)`$DX=/`2AP<<X2/<[#;**>J^GJ;H +MU;>K.Y00TGL=DY!C4[Z2D3)D'/NA#`@..GM&R0)`^>R=I+<S![)R22),H&@` +M3E-B!E.23DY]TG0.?H@89=CZ!/.,9[I@Z,#*0)$^Z+H[-B8D]PD<MS'=-,@1 +M]@G;OB"B%@'\T=DQ[!%D[QGB4P_(80-&8.",(C@;`I-D@`&9X2&\0#V*!MAE +M-N,\\HX)'!.^R$N&G;/[(:.&XX,?JF(,SLD)&0TY"0$MQQNH:.#B(&4BT<$' +MW3@B-Y`V"0#]<M$&,C*!`#<\]D\M%0.C4`>4T>F"W=)L!ID?14/=.I.JEU*G +MH:=FZIA1N]@B#26ET8:)WV0F-!Q]5`Y!<=1&!RF&Y@>^Z0(E.8!$85":V3D' +M"<`:<#;=+4T99(/)*=H$=^Z!"1$#*<09F?HD1MRG='(DSW0T8>SI]D]-OJ@D +M;[)@,;F?E&(&^_LBB.6P>58M[>I7<UDD@;*!NDD9,_J5VGX?]#JWMPTFF0T' +ME&;Q'5_A/X:T-;6JLDD"%[?X8Z;%`'1"Q/`_164[:FP#``7H/3:#*-'3V6<J +MXR;NTEK1--L]O95.LWS:--T.B%-?W+*-)V8A<AU2Z?=7&ACC!*Y99:=,<=GH +MNJ7=QK<XD$KH>F6^&B%3Z):!K!A;MM3T`8^<KS97;TX8Z3T:(:,2`IF-QG9" +MT@-P<!4NJ7].WIDS"Q:[1+U"Z;2!,C"R:O7*4D!T%9?5;]URYS:<Y[*G1Z/7 +MN8<7EL]ESN[>'3<C:/6FR2Q\QV5RRZR'D`N+21W6=:>'SI:,GW5D=%J-R&N! +M"OK4]HWK6[-5FH'Z`JRR^+?S#3[K!L35M7!KP8^%J4GT[AHV"FMK&A0O&N/Y +ME-4K!W]06-68^B8&J!V34;PZH.RSNSMJS?34>Z7%`V=63`4=&J'"094K3Z@1 +M&5N7;-@R('I&ZDH@ALB$PRTG]$3()&(5TSM-3P8S"GIM`,A1,(.5*#VQW32[ +M6*8!@2BTMG?.TJ&B1JVE66%IW"!1`P[[(RW!F4@0`)&/E-J&<H(J[/JH'4X^ +MJLN+2TF=N`JU1P#8,E18JW32-C*KADF"%;())2;2C?=.U4JC-(5=U*72X0M% +M]+42!.%%5HC/9$9M6F&["0JM5H`)G*T+EI$P-N2J5<8/?E39I1JN]6X5.ZK% +MA)/"N7`QJB#^ZS+MI<W)(!X4BZ05>IX(:[([JG5ZH8!UPH;\-9(:!/*R+IQ) +M@'*9$TZ&WZDW5)=,JT.HTW-`7$UKEU/)<<=E2NNN/I,($^V84F5B7';T,WK# +MC4/;*FIUJ+VP0"?E>3?^9;IE3,Z?=:?2O&#&U`*U32??*U,_\2^*NZOZ/]30 +M1_=6>@=0=0KBF2L;IO7;6ZIC2Z9&_P#L*=[VEVMI'>97693+IQN/RO1[6LV[ +MMPT1)&95'J=DT,((^BQO"G4SK:U[L]UV+A1N+4.!X7J\7DWQ7C\OCTXBK9-% +M0Y_1-_!-[_HNCJ6)+S#"A_@3_@*].W#3X'N-RZ8G"KDP2"#&RL5\F&S([*"I +MZJ8@F1B%-O2A._<#W2.H#V3NB3N1&2FJ.);OM$?"J<!P9@_KNF<"<[9A.6Q@ +MQ*8YQLHIO[[IG;03/U2(W&>R:">3\J!#,G*7S(A-M[)\=\<D(',1DR`8R433 +MG]X*`C)!G='@;<JAIGCZ%)P'"1'SC=$/RSNG8$D=\#(3">Z=P:!D^^$HD2=O +MV0)F#R)3NB,QGNDX``9'U"1'I,<(IA^4$B>Z9\``C]D_],S!A*0/^H>R`(SB +M<>R=@)G.Z3@``Z1GA,#/$(%IC'"49!V^4XR)/"3))$9[94"(R2(3/V_=&0#. +M-]\JUTQ_3J=.Y%^RJ\NI$4?+,0^1!/M$JBG!C<=HW3"=6#D(FDZI`GZIRZ6P +M2/D;H$"TN`<(2<,P)^$((@#;Y*=TD8?C_P"Y`\C3_ACLG:X@[S*;$$S@=RFU +M9E`1)X.=D)!C"67&>P3`8,9*!`^J28'<<)R0-G<]LIB!/")C27`-&78B$"&/ +M43@IP#!,'2>3RF<V)U-@_97.FCS[6K;%S6@`U6$[D@9'U'[(*U3`$['OA"<X +MQE.-,R,SRD[3J@;(`,C_`"3MB/5^Z3@#!VA,&R#E#9`Z3@;B-DWJGG"+9I2_ +MJS]4`QB3RB9&9F/V1%HD!IG*<-CT.G4TY:$"IZ=>DR6]P8,IB0#I&8[%.6Z9 +M;I(/,H?S/COR25%$QQ+H(1F3&G[E-0\LEQ<7#'')4]M3+W-`R51?\.]/?>7; +M`&D@D?NO>_PS\-MHVE*:?J@25QOX.^'75`*[Z4S!R/A>[>%NG-H4VC3&%,KI +MPROM=-+HMCY%)N`"KUU<BF,$2G>YE.F-6(7.^(;\'4QA@^Q7*UJ17\0=1=5< +MZFUQ2Z#8N)#WY)]]E3Z=;FXN`]V5U%E1;3HC'U7FRRV]&&.EJW8&L;Z=E:%0 +M!NX5%U9K6Q(V[IA4<YN(*Y6N\BS>WK*=(Y7-7?G]0N-+7'3^RT;MCZSX.%H] +M.LZ5"V#C^8Y6=;:WIF].Z2*;AJ))706%FP``-5>B[75@;<+5MW,ITY<8"WC' +M/+)<M+1@:!I&%:9:4Y@M6%?^(;6U<9J"1[K/_P#.M`5L5!VR5O<CENNHN^D4 +MJK(T`#NLVXZ54MI<P$CV5OH/B"VNP/6"3[KH&TZ5Q0($%/69-XYV.1I14ECQ +MD8(*I]0LG4W:V;>RZ+J?3#2JZV<=E5%)E1A:=QW7++'7%=\<M\QA6M5[:D1A +M:5JX&">56NK1U*H2V?E-;EP,+E.'2S;7ID%L0$MLZH"BH$>7JG=-4>5U[<UJ +MD\'=RFU`"`LRG4@R2K+*X(W51=IU(;&I3MJ@;'99@K09+AE%4N1$"")R5EIH +MBI()F$+GQN539<0!D3\IZERV03G"HLNKL&^ZA<\..3E47U'.,CNIK9WJTJ-K +M=-@+D]:0?9-3<!F$3G`CU&%649<`8]MU#7>W3A'4(+L9&RC>!&<H:4KD@M)A +M9U8')C&T+3JL:X$!5GT@UL&,*:V,VJWDK.OFAQ(;_HM:Y87/V5.M1(.RD@Q* +MED'DR<'.5G7UK;TY[KHZU%P8=(63=60?5.K.54<U>6C"XN#C]`L3K-E+"0S8 +MKN+BP@2!C9974NGZV$'93U-V/,>LNJT7END$#W61<U*A)>:;@!R.3\+TOJ72 +MNF^0T>5_,`AQX/NN3\06MM3)T,<Z<XG"W+)PW[[Z9W0.O5K9[6ZX`&>?[+OO +M#GB)MT/++B';1_L+R/JE-S'DM'I.T!2^'>LU;&Z`.8Q!6KX_N+%LO%?072KK +M14:X;E=]X6OQ5IM#SF(7C'@[KM.\HL!/JB8/_9=]X=O13<TAVZ8WZ\_DQ^5Z +M0&L(G4,I:&?XPJ5I=TS;,/<*3^)IKU?NO+^T_/.Y=+W%I$959T`[J>M(,0(V +MF=U7=(?&5Z;VTC<09`XY2JX`;!VS*?&L`NB3DH.=\;)0F@D3G?=,\.!S@^_* +M:21OE(N)(!=/RH&R7<;)`ZN3D<!.R"9G,[(<;YP@6)D%WLD#@$.^Z4`F9,>P +MA(#$?N@/`<07`\2G<X08V*%O],IW#TB!'=%(D3(Q.Z>1G.Q0_P!'O.<HL:=4 +M(AB)_JSV2,%H2<?Y@`A.0)'$A(I@.Y3F.#.,IB0#B/V2`)J$;#]40Q;G)^XW +M2[B=TAI+^XXRFIP,@(&(EV_Y<)&0)`P$9PS!R3&$!)P3(A%+$23]$[9QF`F# +M)P!A(@8$P@)O?^Z1:"TQ`)Q\IRUHI?F:3.R%X&D\QE`Q&./NFGD1"<`D8!A, +M,G,Q[H'/R.Q3'!DQCE,X;QC,)VM$-<1,^_9`61C`QW2:(!.#P@(B!C[IP1.T +MSB$!.D-$;I-QP2F@:=X]DXC7^9#9$`),:"=($SPF@2<(@&Z@9QR4$A?-'0Z( +M&=1&4?3'`7U&HX2UC@YPC@&5"XR,$P[V3#?'&$!W`FK);OD#="-QC<X1!V`3 +MVB24S@=/^J)L,08YC!"4278,@(B#(CD(2,X/**8`8P8W3D8[X2`W))@F,IRX +MG$J!?TB!SV2$@@B3';E/IDF)CB4;6PW/.RH0))DG+M\IH:1DF`4AJ)B2`?=. +MT$@-YE`@PDMW(_5=E^'/AYW4;YA<UT!P,?9<_P!$Z=6O+EK&MC(SE>^_A%X: +M%K:L?49ZW9_92UC.ZXCJ_`'0:=G0IL;3#0!L%VU.FV@WM"@Z?0IV](#:`J?6 +M^I-8TZ'?<KEEDSC#=;ZB&^EIR0>5SH=4N:Y,[G=!7J5;FK(G=:G2K4,:"3\K +MSYY;>C#!;Z72\ILN&%>KW(IT\QLJP(`+01E*C1-5^J?NN5=I(9M1]5\SOE7: +M;M-,9(,*2VLQL&G.ZLUK2&&!!C*QITE9U2JXU>ZN![BP1C$8*J_P[F5@8WV* +MMTQI;D9(315RQ9Z0X1C<]UC^-.M&RM##@#NMFU>T4R-B!"\]_%-Y<2!\_.ZZ +MXS;SY\./\5>,',8Y[ZPF<"?E<A7\>5_-.ET@']%E>/7/IW08`=)Q^Z[C\"_P +MUZ'XDZ"[JW7*]8L-7RV4Z#@#L#)D>Z[SQX_6-^LW6A^'/CJJ^JP&J02=I^%] +M#?AYUD7UJPN?F!SLOE?QIX9'@_\`$3^`Z=4?4MG$/ID_FTDX!@;KW7\%;ISP +MUAF,?V7++#URX:W+'KMS2;5I;;KG[^D;:L2``"9E=-2@T&&(D+*ZU1:^FXM& +M96?)-QT\=U6-69Y]/4(E4*E`M>8^JNL?Y;P#SA2.HM>=0V.5P[>GI3HU#^7? +MV4E:"W/'*CKTS3<2!`05*X#(..Y5G"6`,->/A.ZH&[''RJU>LT2951]R"V`X +M+>V%]]UIP24A>-`!!SV60^L7$29E.R9P%A6Q_&`DP2)2_BIP=OE9;6NB#REJ +M+9.P_=%;3:NJ>ZFMG'5JGZ+$IW`!''.ZNVESD'ZJ+MO4R-`DH75`2J(NP6[I +MZ58ND?JKM(MM<&NB=T-;).1'LHR^`)2\S8?9:A2:UN3LH:C2YY4KW`@D'/RH +MWNS@_P"BJ*U2B`<M'OE0OHM/?93O?ZB21'LHO,SW4%2K1&F(E5&VC"XD[RM- +MSVZ5`ZF0XN_I(51FW5NT>ENRR.IV9+3S/"Z&HTZHX56XI!P((B$B;</U&Q=4 +MEI;@[K'ZGT2CY)<\Z3W.5WMY:NF0W?*P.N=.JUIW'NKZRL[>:=<Z9T]C=)R9 +MSNN1ZI94Z3M=,F"3$<+U>\\.VOJJ5@7.))DSNN;\3=`M?))INTD;2%<<KCVW +M;*PO`?539W+070,"%[%X=Z@*K&%KP9@@KPBO:NM;LN#@(,2O1OPYZBY[`VH[ +M((&-E<YJ^T3*;CVNQOHM*8UC92_QW_6%SMK=4A;L!)F.ZD_BJ7<_=.7+A\97 +M4$G<?[[*!PEA=!`&)!V5BX=AV?;Z*H\DN&,;A?1KA0/$R1A#48=$R43_`%'X +M0SQL2B!`]<">Z3@!!$DSRG+CI`!PF=)`QL-^ZBFEQ)=RG@`Q)DH0X3(G*<.( +M.)5#P8&?LG:3$1DI,)&"XP0FGW_5`8#-&"9!VXA(^IQP`$.-0DY'9'J!,.)# +M9RE@$_\`+`G=(B!EVV(2`]6#A$0)W!$2B`R&X.4Y+HB?NG<0.,).@"/K\(&U +M&>2>4.2#D=OE/(`:3N<)SD`@B>W"*0@.D)F@EV-Y1`C3&`)V"3G1,``H$0`Z +M3A!$CL$3C!R`3\I`Y&=NZ!A.@-G!X3&200C=+8$C*;4)WCL.Z!MP)CY3QB9V +M_1,2)WPD\C&-T#.DY.\II@DD`GW[IM7J[)SET[(IR9C`$#;W2`)@3!2&!@"4 +MQ+-,YDH$<>G$1E+`<(XV3-P?=.</VG"B"DZ3.9*8SJVVW3ZAH]TA&G!@JAFE +MT&,<)Q.DG)">)!]\X2C$NR?9`P)TD'(E.R3)T_=,V"#@R>.R=A8706F3L`@0 +M)D1,S&R-XGX[(0<2/L43W"((R$`@F0`)3$SD#`12.1$A,<F.Y4"R<$!-D';" +M-D8!X3^D@X,0J$QIU?[A/480-Y,;2K-&"S2?H.R,4QDD3_=39I4$`Y'PIK:B +MY]1L`G40("E;2R`T&3Q*ZOP'T7^*O:9T@@D?1$MU'5?A3X9;7:RO5H[$1C?W +M7MW0K>E8VP,M$#E<CT1]ITFR8`X-$#<_[[*'J7BHUII6[RYNTB<KGGGIRQQN +M5V[+JO7&!NBFX2L1]:I=.EQ.5D6#JE=P<Z3,86YTZD!$S"\^63T8X:7>FT&L +M:'$;=UH,=C?8J&BV:8#0K5K0+M^%RM=I#TF%S_>%HVC(`'9-;T&Z1)QV5FDT +M8(*RUI9H1N["DR[!4(@;'=.7EA$<HNDAH-<2-N94;[4G\J)E729[*:C6!,G? +M=3VTNE-UH\;3)X6!XCZ#4O!G)RNS\^D<0GI&@1F/E;QRC&4V^=OQ$\`=0K.- +M6@PN(R&_=9/@A_C7PH*E.UI.\EQDTWM)`]P/HOI^M9V%=OJ:T\255O/#O2ZS +M8+&2?8+K++-5C6G@W3[3J'5^HNZAU4E]=[L3.,^_"]E_"+IKZ6EY$`QQ\(AX +M5L:;P6TVD#;"Z#HC&]/;I&D!8RR28<[=I3.FD![1\JKU!H=2,1E9(ZL(`+\# +MW05NJZFX.3ME8RSCMCARSNHO<RYP8@JQ;U=5,&=MU2NW.JOU<3/=#;57-,$1 +M.%YYQ=O19PN]0JT_)P<K!NKD1E6.J5#!))'PLBJ`YQ]1,+6]UF22%6N'.P#A +M`P%SMC!PG93D@QGA3T*328.YY6ML]AMK<N?);GY6I3MP&R6P0$=C0B.<*Z:? +MIR``H2,NI3TDX]U'7I.(P%JFB!E"^BW1($*1JL"Y!IGU3E#;7<'\V%/UL!K? +MCE<_6N7,J:0=UK3#HZ-T7P9PKUK7]_=<Q85G",K8LJI=$HK<\_\`E",Y0&M( +M_,J>LP/TA#YT'3Q\K;*\:H([?L@J5=(D@J$.!V=[[IJSI&#*!5JL`F!["<*( +MOD\9"'U&9W0M!C.,;**D80.<3LG>[U1Q*B<^-MR4SB=."`FTT*070<*-S!). +MQ0PZ<G?A-#B"<_Y*RI8&HQIQ`,\E5;BU8]L1^4*VZ.^5%(D`X6MLZ<[UCII< +MQVEL\K@O&'1:F@N8#MG/RO6ZU,/;!&%C=8LJ3@X.#=E>*SO3YSZK3K6US%0' +MT&22/=;G@WJ#J5W3;,-D3&W"['QMT2TJT7O$!PG^ZXFPMA1OAI$M!WGW6[JQ +MJ7;UBROV.M*;IF1O*E_C6+G+"NT6=($G#0%+_$-[E8W7-\XU]#JN#`YY*J52 +M`?1'NK5?#N!.ZK5A$C$;1"^C]<43R9/?LE$24[],3J@SV0N_)^B@8G.(2;#B +M9@XPDT$X`^R$MAV1D(%$)",SLGW$%+2=])`]T"D:0($^R<QP"D6ZG?ETE*#' +M&-U=!XC)/*<@:>Q]TH@"?V3M&=X^$0TDQ@8"=S1&=B)3R`-`!GNF('Y3OO** +M;WTQ\)&#G!^4OZ)PD-\8'NB:,!)C8)$!I(TIV``;_?*8S.P^RBIKAU%PIMHT +MG4H:`X%^K49WVPH7;[9/9.\&-XG@'=,9+AD&.Y5^AMC),I;X**1)*%D:23,H +M'='/Q,IH&DR-]DPY=)GY3R=$G"!F@-)G;^Z0@D\A.&NXS*?4?+#8&.VZ`,!Q +MB/A(D!I:0`/;=)P,9,2-I3<>R*(1$;'O"8M$1!'RA^3"(S&Y"@&)^B7>(!*( +MQI&3JY28`7?YJH3)B&F`[!2#6"?4F]IPG<UP&D_*!"`"!E$6F-HGW3-;!W'N +MGTSL,'E`@)S#1PD&@$3_`-TQ&0!E$X''Y8WE(':`W/V/=/I))@),$@Y$^YE) +MK2!,!`SFAS9!SM\IPSN)2_,2(A$<.&,`1E1"#<D@1!3-&IOYAOPIJ;):2""1 +M_2HWB'X@HK0LZ8-,8))4[J(+<&",Y3=*!-,8!!5]E.7CL."L4Z1]-L/XBO38 +M#^8P3E>B^'*-'I%@*E0LUZ>#"Y3I56E9GS-/JX&Z;JO4;FYJ>6"X#L"8"7+7 +M3%Q]JWNI]<NKR[\JE4=H!C3.X71^&K-Y8'/G,87/>#^DNJ%M2H)F,%>@=&M6 +ML#1'/'*\^==<9\B_TRVT@'*W+2B2T0(5>RHDN&_T6U:41H!7&NV,%;4,-&RM +MTJ3ALBH49:%9;3TK-=)!4F0-M]Q*GMV0#(F-E'1'J^BMT6SB$;]0BF=\'V*) +MU*?@(W,=P)"E#'Z?=#U5C1&D"#(,PCIVIU=L*=K3,'=3T6:LB%E?52?;.!]. +M%&:-0#?Z+6%$N(X1FVD@IK:,;RZ\2'$0$%6K<M:`#*W76S2(&?91FS!!!:KI +M&)Y]PT9+DS;JL<$;+2KVS0(A5:U.FSME32\*O\35=@G"=MP\'*&KH#C#=^R@ +MJ%[L?LII=M!EZQH.5'6Z@S3+?NLXL,[GZI-I^KY33-J6K7?6W,IF-$>RD`:U +MD",**H^?3W34B;V=PEWIW"NV%`ZQC*AZ?2+W_P":W[&T@`D96:W.#VM$0`!M +MN5:-`%L3(CNK=&UTL!")[`QIDJQ&<^F&S`V]U4NZH:R-NZL]2JM#?W6!U&X] +M4S]%-M:VI=;K:FN`&^ZYBZ=-:/HMOJ+]605AW&*DD+6*7A=Z>X-<"?JMBV?` +M&GNN>LZGKAI"V[)P<-BMZ8K2IO)]1V'"($&(Y5=@=C.ZFI%F))'$*[1,T&1B +M$;((AT(?,:!L-E&*X)SLLVM2;2^ANWU"@J/DF-/R4-2K(,<>Z@:USB3G"SMJ +M8K6(GORFIQJ@C?*9@EN94K&9!Y5BZ$6C$#(0&!,B%9IT^"AJ4A&)`5TS5&L1 +M.^_*A=`,GA37+!JGMW4%3+(!6F=&UC29$*EU1NJD((D^RM0`-Y3,8'-AQ)2, +MY.!\3].N:E-^EARO/+VWN+/J$U&:0X[+WGJ-JQ[(`PO._'/2AJ+PW:2"%TQD +M8]K.&+:5&FV9SCNI-;>Q_P#WE5MZ3FT6MTNP$?EN_P`+E=)IX77R_`C.ZKO` +M$G^ZL5LDD'_55ZL`[8/=>ZUP0C,YPF>#`C9$`-)W33$S*&C#`$2F&X<,)3+I +M!33G=0.7!SB?V3`8W,>Z33F"/[I\3DC*H+29#C!]A,I&.3E-`G3LG/I&2/F4 +MV'#0,A,<SN>Z0<(,PG)#0-L[A`A(,GG9(G&YRG).F!L$C!W,1W1##`P?HF!@ +MD(@(GLFQO)12'Y)'ZIB9;JGZ2G&TSD8^4S]Y;(4")X(@H7&#/ZS*-P)$Z8)4 +M>G)(/UX5-$UQ&0?E(?/*0!!,)X@3!0/Q";U;$[)V_E2'YIF90."9"3S@<I]G +M1N?=`9+23)0*#I,#/[(2""#_`&1;`B29Y*4%W'L@'>$P[&81Z8(S*0;V,^Z* +M`?XA&$33Z?=+CG[;)-V]E`^H:?RC='3+7.EY(&TJ,`!TI^<!#0W#GCW1>=-J +M*,-`F=49*$X$<)G-!@,G43D*H0,8@?5.3D0!A#ICM@_=.TD?1021,>G?&4Q` +M:>X3R8`:9`R,X0PX.#?U[($R7&(E$6[%KI)W'9#!$Y1,^,'L@-KO1V*`3YFH +M\H@)`TPDS$3QN$&MT4C?A;-)M-U,Z78Y'=9/0:>JH&MS\K6KL%%FB#/*Q>S_ +M`!7J57`G\P'>5I^&[9UW>`@.C&^ZS&`UZN@-R>Z[OP/TLTRUY'N"N>66HW(Z +MCH%B*=!GH"Z;IU!K6B&K/Z;1R#$+>Z;1B#W7GW]=,8T.FT1`)"U*%/(@0.RJ +MV+-+1[K3MV"97.NTB:VIG3MA6&4=42E2;#8VE6Z%/GA&I$=&@)_+A6*=&?\` +M)6:3,[05-3I@[?:$:5V40.(4C*$M]O96J5)IYW1BF&Q&Z:6549:B1.%+3HMD +MX.%:;1Q*D9;SM,J6&T#*>WLC\LAL!6Z=N1`1&B-6VRK%40P@$\J-P(_=:3J` +M!.,*)]($0%$VR;BGJ!G=4*]OK.0<+=KT@W,`JI7:UL]NRB,2K;1@&/A15:+` +M!`,K0N2)G[`*G5(CU*;%5U(;DPH*M5K<3A'?W#6-C^ZS!4=7>0V3QA#6UD5" +M]_IX5NTMGU*@)'T3=+L7ZI=RM_I]F`084M;F)=(L,R1]5OV%`#C906-NYKI# +ML'A:5`0`8^4C5B3RVAA[PJ'4,-*OU9T[0LCJU0L80,CNE28L/JM1NDDOCV7/ +M7E4%QRM'K-7)B9*YZL^:D:E(TDNCJ9`S*R+X#(,"%L4V:QE9?5Z6G8+>+GE5 +M6Q)\[?"W^G@B).%A]-9#YX[+:Z</-K!K<*7)J8\-$/.`!,)5''5V]EI6]BUM +M`.]LJ%]JUS\K7.F9K:L:@T1V4+GSN0!W5FK;ALZ9^JJNIN`/IF5S;#4J`"!$ +M=Y4M"LT$`'?NH7V]1QP"HJE&JW+6II6JVHTB-0^BL4-,@@Y7-BI7823("GI= +M4=3YE7E+'347-&T)5C.Y6-9=3IO(!=G=777`&1F?=:QK-B*[;),95-_H!P%9 +MK52XA15QC!E;W$5"[>3[HF;D@_W4-W@]Q\IJ)<>?T4+$U;+28_58W7K(UZ#B +M6SV6N#)@;?LH[MWE#N"NF-TX91Y[4L'-J%N@X*;^!?\`X"NKK,INJEQ:)*'R +MJ7^$+ON./+Y#N3+M,$_)4%PYQ`&HD#8RK-<:B`V/5Q,0JE<-V:\P,;1*]*(Q +MS!]T,^DA%B#F$V6ND.RTJ(`D`$PEQ[]T[AOD?"3V@#!,';"!-/JD&(]T0,NP +MXXV*9\BL[4S3F=/9-`/,R>$$C=()F2?F$PR<X3.;#LS([[A(DY$X[JA-C3D2 +MB&G&)([\H1R"92:`>3[!`3B-6!$Y2:-3PWOW2B=,'/(3$Y@!02,)#2,04&-6 +MV$G1\^R:0!M,@*A'2TDDQ]$P(P=,Q]D0PWN@&#)P(WA%27%4UG%[PV2(,"`H +MQI@[>Z08#OEQY2`(<"Z80+TC&)3#:0!"=H.QC*<M],_E0,-H@2G9I+@1GV2# +M8),[)-@51)QL2@=S<P8Y2]ASV3/,&`9PFG&\F)D(AL\F4FC)WRG<"?;^Z0&8 +M!Q[J*0@F8P>2F<`<@X]RG(.G\WT";8Y$`_JJ$V)SB/=,W_ISRGTD-G'/*0C2 +M21!X'=`Y$_/LDQOJ`G/ORF!!`Q]47],0-D!%HV).>R$M@0#ORI/3_0'("/27 +M&2=D#.$1P.Z>F/5D[);#;ZA"S88WYA`8$F92@2#KR>Z>89@2A`R<">R((MD` +MZA]$3.T'ZE-&T[=@G+73IB>%`;/2\0`83MU5*FV_8(*9),;*WT^BUQD3\(-C +MP\?*8"X>P@*]>.#OZM@=E2IQ3<UL&#M[*Y:4C5J-;!(&\97+*\K/RN>%+(U; +MQKVM)@\C*]1Z%;>70:V`)7(^#[-K7M<6@>\?*[_IE.=.!G]%Y\[MTD:-E1V& +MRV[&F!`P)6?8T@&:C)_NM6RI%Q`C/=<[7;&-&U9Z1Z<+3M:8E5[2EB./=7[6 +ME#?=9=(L4:8A6Z+(XPHJ#/3D25=MV>K))114VQCG?"G93<8Y*EMZ4%6Z5(1@ +M1"U$VAHTR"9`^ZG;1U#:)1LI@'T[JU09W(CE-%J"C;Q(`R%89;D"8W4LM#AG +M=$XC3(X2QG=1>6!QL@J,Y4T^O'U0N!T$`[J"/2(@M4-9K8]U8,=Y"AK"9VGA +M04KPAHP2LN]+0"=EIW8AIET3W6)U.X:`YH(6+6I%.ZJ9QRLZ\KX(`SV1UJI< +MXL;RHA:U'ND@=UF+I2<U]R\``K7Z1TF(&G=3V%BSS`0`#.P72]&L2Q@Y(.ZO +M:ZTIV?3M+1+-EH4;4-`&GZK6I6T>F`$YMI;/*UI95*@UC3^ZL$`-D;%)M&'3 +MI@)G@AN\J-\`KO.GNL;JKO3(XY6K6.!WX67U$@L,]E$TX_KKX><PL&?,K&"M +MOQ/N[]I6!:`FN-HE).&,FO;L)I2?HLSK8:&;[+<M@#1(*Q^N-),0(A:CGW6= +MTN/-#"=UO]/HAE36TB%SEJ_RZX.-\9716Y-6E((QF0L6.DK?I7-)M/\`-^J= +M]U;L'])*YRNZL/3/J'NM#I%C7J-!J$GZJ7*QOTFMIZ]\UQ<0V(Y47\4V-7EG +MXA:]GT=I:"6@K1H](H`QH`^G^BZ3#*N.7DQCE*ES5+891)G?"@UW;G8HNCL0 +MNV-A:4A+F-'T4+J5H)/H('"Z_MW\N?[T_#BKA[J=,^=2(/PL2[O*9K:0`%W_ +M`%*QI7-,@`01D+E.K>'',<:E*,"<J7"SIO#R2]LO348T5&.Q\JWTGJTU?+J. +M_58G4*]>WFDX.^(5>T=J.O7Z@N=GX=-_EWS:K7LF9!Y4;JD3)E8/1NH#%)YY +MV6M4<'&6D0=H3_#1KIH(G49]D#):V=7NB![C/LG#=+=$9*U"](VN!=`&?<IZ +MS`6.U9[05$?^87<A/5J_RR=EO'MQRBF^BPN,0F\AG8)JCZ9>200?E-KI^_W7 +M5P?'U8`%QU2,S_95JA&GXXY&5/<..HD<?15ZCGEQ$-''U7L<T;P-@`T("(., +M%$\C)D8.0FQZ2@1EL@[C$H,<E$8F0A=!$D\=T#@M=JG4#P1_=)HDSC=,-.DD +MB'#MLG!`!`_50%'J@A%#2_.!'W0L(B)`.\RD"6G`G*H0:/I/V3AO)'V2:Z-C +M[83`M$X[YE$.UHTQG.V41$#O[E,-(R.4[C/]6/9%-@N_=+2T$['^Z:1J.G9* +M>W"`B`6D3/\`=-I$3N-MR4X@M$P=/!35B`XM!+AR=N$-A(AN$VF1@?=%4+=) +M$1]4FX!P2@30=MCV2<W>?E(F#&\8RFG!SG9%(F!`^"D!Q/T2!`/,I2-<@$0B +M'<-1!!@3"%['DP!MB`B);]1RB)D2XR9Y0`<-DREI$0=D\MUD@[;2B9),B".0 +MH!P03,<IBT:3!F43C,Y^R$F`?5^7"JA:-P1O[[(],4QZ@9[(0?41!*1DG),2 +M40\`'&!RD=42#[B4[)+,$9,I-,GU'`V^44Y._J1:AL"A,C(/.Z6I-(8B792- +M-]/)!`(D2,(\AN")&4,N,R0.X"!VZM\PGI8<)_[I3`&W<RFV``.1.2@<F9`R +M.Z,NG<GZ(6-)J`3MRE`:)!$<*"2W8Y[A^JVNG6;VMD_U+/Z6QSZLC!G,+K7V +MWEVS06Y/`4J6LVWH5:K@P3''8+4Z?;%K@UNHYS!Q^R'IM-H9#X).<\+7Z!0# +MZ_J$CD0N.5KIBZ?P?1:UNIQ@]IGNNSZ=1)<#`6+T.V93I"0T<X73=/IYWCX7 +MF[NVXT;*D-#<$!:_3Z.F"(@*GT^CZ=EKVC`,K-=8O6E/V5VA2`SRHK-HR`K] +M!HD#*-Q)0IC8A7:%.(TA0V[,XV5ZWF`8E%2V[,#"M4VDC`P@I`00,0IZ$C*T +MR36$>EW_`'4],#5'9+^K?/.$3()$;'E0-4;.3VW2`,`$R1V1.`'NG8W2Z=_? +MNH!T`YXV2%/<SE2N`D#NI&,!&?N@JFD0"0)5>[+:8DK0KD-,3L.5S_7;P,81 +M.2LVZ63;/ZU>L@C4N>J^96JG<B5<<RI<UI()^JUNF=-$:G-$^ZY[;Z9%GTUQ +M!<]ICC"MNMVTF_E@]H6\;=K&Q_9974=+'&9V5TDNT?3F#7LNHZ32:&C&`N;Z +M29JY75=.+6@"-L*XM5H4:(<,`&$-2EI)@84]"JI:;0\C&ZZ\5GIFNI2/<*K= +M-TCU2NA;:MVC!5.\M`9V'NI<5F3F[QL#&RQNI$$.]ALNAOZ8;J@RN?ZH``3V +MS\KG>'1QGB9S1JS]UB]-@W!+5K>+B"TG;V6-T36^Z[:3]E/C&3IZ+8MS!SLL +M?K+<Z=^5NTJ?\@>_=95_3)?EOR4E<Y&#<T?+$B)&0M+HEZ�\S*:O;:J<PJ +M#0659_1:LVL_#H@UCJQ>#/;*Z+H=:EITN@G;"XVRN@)#S@>ZU;*Z-.'-/U6= +M:JW>M.\M7-;3D\*AU_KUITZF2^HT1W(6-=>(&6]@XN<!]5XO^)GB^O6JU&-J +MNP-@3C]5Z<.MO'GWIV_BS\2Z%,O;3K8'O_JN0J?BJ[SQ%<P8V/\`JO#?$/7K +MVXNG`5*AD_E!.5GW1ZE9U6/NJ%:FTY&MI`(7;]JWA)I]3>&OQ#IW,!]5IG$$ +M[+N>F7]#J%MJ:09XE?'OA?KE=I:"^#N).R]P_"#Q,ZJ!1K.]0.<_*XV7"\EU +M\=OXIZ2RJ'56B"1A>=]6\WI]SZB=(.0O6[A[:M"<&>%P_C?I+:]%[@T`1O\` +M93/'<X=?'Y/E8]K=,JL948\2.Q72])O?.HQJ]2\ZZ9-G?FWJ$@'8<+H^CW6B +M]:T.])[_``N%M^O3K5U'74G;F!"EID'(.>P4-L-5,3!'96*3(GNMPM0W!#7P +M<SNH:M5NF0,*>X:&DR>%0N7RSM"Z1QR+1J]0>(*7E'_&%6\QO^RG\QO;]5UT +MX;?(=S`,`AP[]U7J"'=YR)4]P6DQ(D<GE5ZI;`(,[X[+UUA'/&X&X49``!&Q +M1G3)GE"8@;'X40TDP#E,,.G8A&7$L#3$`R$((&44H$D&)PD\`G?(38U2)SLC +M/Y8QG]40P(R!]^Z<:0Z7'&^R83SMPD021P@.D01$[\I0)V&W?=,W;$@_*;82 +M52G#6C(^436MW<^,;^Z$9.R7^X0)V7D[Y3N;!.KC:$@V$S]I/^PD#Z6D1D$( +M2UHF<E(CF9GA(-)('/RH&`U'YQW1`$?/=`"0>Y[(].F6ELGB#_DJ:"0!L#'M +MRD(_*1F-TGD%VXPD"-,R"XJ*0'H@[CE*'3,_ZI/`(Y^J=FDND?9`@&:#).K@ +M<)23C4E5!D'(D2A8`AH36G8'/L81`[`B.Q/"%H(_F3@8[IH9)R8^TH$3`B"G +MR6:9'>4_Y6G;`Y*%@D9)]D0S6#`GZH]()R=DP!`&84M33H])@#@JJC$`=@,` +M),P[5!(V*1,Y,`%,W<F=^$#P[D(@TZ2-O[I1$"?HF.#Z3"`FMDY(G"9S"XR" +M??"<#`DP1[ILCU<?V1"`]A[>Z<`.=$B?V2`#L1_V3DD`8CA3H,`<F28V[!.W +M43E*"=L2IK5H-5K-LS*#J/`71ZMY5%31+>_?V6_XP8VW:VFT-U;=H5[\.6&C +MTXAK,D3\+/\`&.IUZ6NF)V"XYYS?JUAX[;[52Z)0\RL=8+I@8*[+HEGH:V`- +MYPLCPO:%T$@D[X7:],M0W3I&%P\EVZ3AI]%MA`U<KI;"B&M@9[+,Z50AHU#E +M;UE3U$2V,+FU(O6#7:1@`K6LJ4C\H5&SIF=_JM>UI'3[^RC<6;9@:9$*];4S +MA0T&`$*_;T8Y*-;36],`CLK5!D-'LHZ;6@*>UAPGCL5=":F`0`3/]E8IC$<0 +MHF`[*:EL!,!6"4-]0,HP!'RHV[_W4U(2)[J$`W>8(A3,9)S`A%2IAQRIPT!N +M4T(6TQ,$\)5H8P03E2NTB?=4>HW+64YD*45>IW(IL))7+WCC<5=,D\JQU>\= +M4):UQ*/I5`$!SQ)]UQRNZZ2:2],LVL`)9GW6DXTZ+,B!W0.<VF))B,K!Z]U- +MP!:TF"/LIO2^NQ^)?$-O947_`,QH`]UPM;QK1N+WR65&DSM/^JI>+A<7K7_S +M#GW*\TNJ%?I/7J=1Y(:X[Y@J7VK>&..^7T;X:K"XI"I,SW74VE2(_P!RO//P +MVOA6L6YS_P!UW-O5D`XE7&\)9RV*50"`#A7;6L0T$D2L:C4(]2M4:OW"Z3)F +MQLMN1IW56]N?285&M<:6D3^JI75X,@._T6KFDQ!U&JV""`9"Y[JC_28C*T;J +MX$.AP^%E=1?JIGV7.UN<.,\6.!!D[K&Z!J%R6G'Z+>\3T=3'/VC]5B=#9%WM +M,G"EZ+'7VXF@`<E5+F@#QMA:EC2/E@XRD:0-0J1AB/H$B%E7=!P>2W8KJJ]$ +M1$+.O+8%LP`MQ&`ZB1D'/[([>X=3<`XF#[J]5MP&$9SLJ%S1+7'>.86M;5<N +MZ(O+:`001C=>4?BAX9NF:JUNS#1D0<[>R]/Z9=.;4#7-AOLMFKTVTZE;::C& +MND=EK#+5<<\?KY)\,7%ET_QI:W'5Z`?;TJFI[*@X'RO6/_$'XT\$7_X?OL>G +MT[*YO:VGR'TF-FB`X$Y&TA:?XE?A9:W=%]6VH-94`P6#_1>&>(?!W5.FU1Y[ +M/29&QD1$S]UZ\?[>^WGRQF4U^&9T6L0]I<W\OZKTW\)^HO=UIM,-($P8^JX3 +MIUAY3,,)=M'NO5/P=\-5*50755K@7&<K/FU88O9[2HYUJV=U0ZN/,HN:3L%< +M8X4J$3LLN]N&ZCI=@<+E>(N$W>'`>+Z1H5!5:(`.3"BZ7?,?7I"#+MCP5T7B +M.C2K6K]0W"Y#H]L*74H!($X,KAY/R]F&OKU+I%8.MV@X,+0:26R<K'Z!'ELW +MD>ZW'M`9(/RKBEJG>G+O5CGW61>U0`8=\+2OGQ.?E<]UNNUC'&?U7?&..5X5 +M*MZX5"&D0A_CG_X@N?KW;_-=IV0?Q=3_`&%W<O6O`[D#S"7&>%5JN].D1!5N +MX+7OEK(G8`[JM<L+':7"(X7>N2%S2,@$2)R@&>%(X3$ND(1`/?V32ASI(@I@ +M.-T<NR!]<I.+2[`COE`!,[82>T"(TDD?;V1L$B"\#G)_1!IYS]U`B#JV^R0D +M081-`#ADHB!L'?W5@8DNW'Z0$VDGZ(X])WA)S=D#`^F,S^Z8"<1E.W:"=L)$ +M$"90(3$29W14C#FRT'V.Q33@YB.1RF(@9A`3RW=I4=:=3B'&"BS`@@2F<YP& +MG60#N$$;OM*<3L2?H4G:NZ0S$_LBF#=YF$\3.EWNDWDDGX3Q!,$*:#$G;4G: +M3.)38)C=(G$*AR3P283M)/=,"WE.2)B`1WV4#ZCR3&TIL[`PGYV$!,_?@]I0 +M(EP&28"%KB8!/W18#>-LYW09)[J@I))@Y"D-1SZ(IP(;[*-C9,$@>Z)H])R$ +M#$&3V[A(`B#"D;ALD84CRP6X:6#6#.J=QV326H7$XS/PF(=));]`C:9(,#/= +M'#8@E#8!J()&0/9"3#I<V>Z.!IF"`>$PQ^5L'N@.D3.!N-TU0D-@3*3=X@9V +ME$]D@X'R%`!(#F@".,KHO`/0J_5NIL;HEDY*PK.AYM9M,'\R]J_">SM[#IS" +MYK=3LRN7FS]8Z>/';J.B]!I6/3?+#`-(R>ZX+QC18[K@I,=MV*]*ZSU.C0Z: +M\AW&%Y:*K[[K3JO+BO)CSD[R:EM;_ANWAK1I=\KM.C420"6K!Z#1`<UIQ`C; +M===TFC#`,I]<JO\`3Z1:X`C=;-K3../=5+*EM#25K6K02TD05*W%NPIY$A:= +MMC(W5*WVQPM&U:3[?*C2Y;#8PKU!P)WA5[=@(^%88T#8*JLTCZ@)QRK-NX0? +M3"@I`R.59IB1/*"1F'3F%,P^J)^JA;JGCY4]$9R,%3:I&@D[%3T],?""@UQC +M;Z*5[6CA!(VII:9":I7QARJU*P!W52O<-;JSO[J6FEB]N]$S@+G.L]1)!:#O +MV1=9OP`6@Y*Q&%U:M!,K%R=,<4ULQ]:KJ,Z>RW["GHI1!/NJ_1[<""0"%M4Z +M;`T8CX7.1M0N*3GB<_"PNOT&LIE[H$!=:]K0"3PN3\8%S@\,)5LU-D_#A^J> +MNJ?9<=XXZ36NJ(-,B09&%W#Z+G5O4/JAO.GBK3RS"LO&EN.KM%^$[:M&T8RH +M22`O3K0N\L?YKA_"EJ;>H.R[6U>&@">-RL8S2Y]M"DX3$J1U9K6Y.0L\W`8" +M2<!9/6^N4K5A+G#'NM[9TV+R^`)`<LVO>R<N"\W\2_B):VE8M=6`(]UF67XA +MT;FM#:HRL7+ZZ8X5ZHZXU[F5%7<U\@1\K`\/=8IWK`=>>RZ&VIE\'/\`FI,C +M+'3'ZW2!ID1PN>Z93#;T;[KM>K6Q-N[&ZYFE;Q?2-YRM6\,1NV3]-,@[*>FT +MG)RGZ=;%U,$;J\R@`?WE,>6:SZM,021"KOH!_P#3]5JW%`$8(*A%&&G"VS6% +M<VL&#PJ=U;`4W-Q+AN5T%Q0;JG]U4JT&G<#/*VPY*ZHFD9`(*N=$Z@^F0UQV +MV"N]4M@>!LL>O0<QVMLA6KW.74FM3KVY!`]EQWC'PQ;7K7.\D$GL-EK=*NM1 +MTDG_`#6D]OF-@D&<JXYZXKEEAJO'*/@ZA9]2#ZM,%L\KO.A.M+2@&L`"TNL] +M-;5S`^BQ;JS-*F&M`$<K6^>$]99RT;[J%)S(:1]UF0ZM4]!D$K+N65&F"=D5 +ME>BW?+B2`N>6=^MX82+?B"U>RS+78D+DK*FZGU(:OZ3L%U=[U)MVP,F)[K.? +M9M%<505G/5G#4NNW0]`+6M!)(A;AJ,-'4:D'@+G>GO#6#U+294+F$$C(X*WB +M9(>HU@1#>5QWC"[\J@:<P7X"Z7JA&@DN/U7"^)W.N.JT;=N9*]&$^O/E?BST +MOICZEA2J%IEPG]58_P"$N_P%=?T3I8'2J`.^E6O^&-3ES]WQS5W]APJIW$`R +M5:O=+JA<&``F855X,D@8]BO6RC>3J,[\@I2P$Z09XGLDX3).23W0/W'<;H$( +MP3E,8G?!1`9Q"'?!_P"R!O8@GW2';!1%C@W+26S`(3.:0^1('$JAA^6(B$6\ +MG?;"%HR`"B(@Y"@+4<'@)#\LF4#<MW1-((&-^Y5#YVXY3/'<$)H)"9X).24! +M.<!L9^B0.?9!F$T3$H)`6')&3NA?#N8'NF)SN,)MW3!'>$4HVQCW"<'./W3` +M83!L'`4!.;!("8>[3LEI`,28`S*<`:?9`P@`04@)G"1$B-B$6F&_"H;TPGF! +MQ]TS0=<3&.4S=Y/'NH@CEHS@)`#5ONG`(W`^)3&)[>R*?T@'T@CY03Q)E&V( +M(WG;A,V`_@9V"(:28R8E'ID0-TY)#2UKX!W2!@QW0)H.DR["+4(@Y*#$P#NG +M`;OPJ&D`@?NB<2`1&>$((!QD)<G5'V0&R'-C?Z)G-C))]A":D&EI#0G@C&([ +MR@>F)=)!PC,MQ*"F,F!"EIM+GC2TDSG*@N]%8'7;7`1G.%ZAX4N7&M3H:H!@ +M&%S'@SI%-U'4X&>Z[?PCT84KP5BTX&Y7F\MEX=\,O6+_`(W:VAT@PXDQB%R7 +MA.@'W7FR22>5L_B9=Z6-H!RK^!+?8N$Y[+CCQ+8U;P[+H=``-DB>5U73*>1C +M'98O1Z0$8PNCZ53AX)V4VQ(T[)D1Q[+1H`$P!E5[1H!SSP5>H-;M*S6XMVS9 +M`,%:5N,#"J6K1I_-^JT+1L-U;A%6J$Z5:8`(]U7H@=HE6!M`$JJGIQ,*=CL1 +M.%!1VR-E8HB8,9*C6DM$?4*S1:V1.%#0:6^TJ1U4-W5V:25:[J;]-.GC<F=E +M%=5XY_55[BY`$ZMUGW-QO!E9M)%FYNL8&8PLZYN"9R@=4)D:OHHG-+C]%BMR +M,[J=1SGXF$NFD`^KNK56VUSB%&VV<P86+MVFKPV>G5FM``6BVKK:`#"P[*F\ +M/`+EJVI(@?ND6Q/4<\LCA974+!UP3JV6TQNJ!PIQ;-TSI]UO6V.G%U.BM827 +M#G=05K#2=L=UV%[0:&N`;E9-S1;L`5-2+.6/96K6OD"(6FU[64LIVTAO^JAN +MA#2&\+#2IU6ZTT708,+@?%+[BZ<YH<0%V=_2?5:1)@K'N[`YU-3MJ33PSQST +M2]JW#G4VN<)69;=+OK=C7.:6EO*]TN>F6[YU,&5D]1Z-0J/T:0>(6KG9#'*N +M:_#?JU>C=,HUB8G&/]%[CX=N&W%HTC)/N5Y=;^'Q1K-J,:`9X7HW@FF:=%K2 +MXDQNN/,K6=F4;74&`T"#&0N9-$-ZA`&Y767PBD8,K`#`;[5L96ZY1M]-MR+< +M1V4WDN`("L=,9_(:8X4U1OK.%TG3G6<ZE`@A0U:9#96C5I3PHJM*`<$K49K* +MK-!/^2J7%/>/LM>K1&8'TE4[FF0#`!51AWM)L:EDWM$`D@[KH[JB(]0"RKRB +M-41^BC6G.D/IU"YI+2M3I=X'0UYSLH[VD`2"/LJ<>55#FR"J6;=`ZFVI3G"S +M.J6@+.ZGZ=<RT!SOD*2X<UV(P597"RQR?4K8"8"P[VB0X@$Y79]1H,<3PL*] +MMOYI`B%N\PG#&HL<*@)V[E:#'M%/)!)&Y45S2%/U1D*M4K@-U2,=UPUJNO<; +M%BX&)S/NM`NTLV6'T5_FD$#$[K8K5&LI29F%UPY8RX9G7*Y92<22,+B>AU#> +M^,=.N6M.P71>+K@MMGD/CTG=9OX2VC+KK!K%N=>Y7HG3SW\O7>EVX'3Z0#?Z +M>58\@?X5IV=LP6K`!B%)_#M[+K'E?`-Q)JDSG=5WP<RW'ZJS>.EY@0"<<JK5 +M?G!)^5VKLB<)&,DH,[`C*E<1.VWO*!Q;I(@ZIP>(4-!R3,),'I(D=Y3EPC`G +M*$F3/]D#N)VC?A.2YP&HR>QW0!_^RG)Q&^-^Z:#9!B-NX1GU.)(P3F,)@8G; +M/UA-)D-)$#8*AY$!K6DG^R4XVV288[#Y3N)!(TX]U`S2=XA-F8C'=&S:8QLA +M<[.V1A`T@-T@9F9X2).F83NRT2`8"%Q((B$T'`)]1!SRF<T@Z<&1/=2LK.;E +MI=MI^G9`]V9C`[*J$@Q^6?A-)&8*)N4S@-YE`HR"3]-D],P8C8II'=(QI'Z$ +M*!R2-FE,3&THI`&\D'9`"),H$>#.R<9]Y2!W`&4[2([_``J"#HD&"(V*8$;C +MZX3$B,3GW3LB,$SQA1"8`23JX3ZMH/RG%0:1Z8@S,)C^>50\C5P)2)$$P/9, +M=$A$S000XG:0BADX[)-/9.V"1.>"B,:1IC"`&"&_*?&Y@?"=X$0(CDII!,DX +M&\)H)OOE$.^`WMLD0-YS&1[)@?5B/[J(=ADB`M#H],5+EK($SLLX1W``XE:O +MAMS/^(4]1`$J9<19-UZ1X.L7-HTSGX'*[BT'D6VJ,`25B^#:;/X.F&Z5T=YI +M9T^I$8;_`&7S[;M[,L9T\W\;W)N.M>6TB-41]5T?A"EY=LR2)A<E??S?$3R9 +MPZ%W/0*(9;TY'J,!:O&+'DXNG5]%&V%T?3&-P,@\K#Z'2'E`RNCL6P!@CX48 +MC1M)#8._RK]!N0"JELW`D-^5>MFR!$K-:BW:#(,+0MP!OM/=4K89VV5RD1GD +ME%7*)C`&RFI27*O;\*S1&>))V2M1:I``S*LT0,$E04FY$J9KH&!NHJ8OTM]X +M5*]N!,:LA/=U@![K)O*^IQB=E+5B2M<:G$`D*(ND$3E5M0D[H@2,0IMK20X^ +MB-CA`(.5&R'$#E6[>A)]E%!2]3NZLTK<$"1NI:%L"9A7;>B(`(5TOLJTK6(+ +M6Y5RWMR`)^RMV]NT1'"L,I,V5F)[(*5,1B,=U.UOHB%,RB`,DPK%.@(!W6IB +MSMD75OJ!.!&2LJ]MW-<3NNJJ46EN6CX5.YMFO#F@#/)4RP=,<G*Z71@;*-]) +MSC,86[5Z<W48F"D;"&@=NZY>KI[1S_\`!S,A4>IV8T'V755+8`0,E9G5*/H( +MVQ*FE<)U!OE.?MA95-CJESM,E=9>=,\^L0)AVZL]/\.`.U8.%B[IN1B6=H*F +MEI$+J>B6XI4P1`14NF"B[;;E:%*D`P8XX*2<I:J]3>!1,[A8]@T5;V?=:/5W +MM#2TF.%#X>M]5?61REYJ=1TMC1B@&B9C=$]FY.ZFM9%,<!'5`[_5=XXJ%1I4 +M>B2<A6:S=1C:%`6_>%4JI6G@?*HUQ.P^5I5VAQA4Z[(;I)"J1GW=.1,02LVY +MHF3^F%MU&C3@@_*IW3&AIG[J::CF^H4C!D[%8US#:G(@[A=-?T0YC@!(6+>V +MA#C@&5-MQ3MW.#Y!P<K0;5)9E9_ENIO@"0,Y4[7X@'C95SRA7A]&#*R[]OIG +MGV5ZX(#9CA4*YD<@+<<K&7?,+V1)G^RY[J-9].OY;1.5TMZV-7[KF^K4GNN` +M1,$\8A9RGTQO+H_#%*+=I(@]U9ZM4`)@^RJ]!?Y=D&@Y`0]2\VK3JN8,,;)R +MKXYPF=<GXVO/Y6AID@[RND_!GIU6F&W#@<G405POB=YKW[:8[QDG)7J7X14Z +MK;*DUV,`8^B[R<R.&?$>CV];31:)B`C\_P!U7&!&HI9_Q%>OT>/V?!5TT3J( +M#>T&56J@1+3DXRK-P/YG`/;=05&>K2X<*O2K$Z9`!!^4GMTZ02<Y([(W-&WN +MA,2>W!)4`;B,;IB,Y*>!ID83Z,$E`+A.!*9A)&Y`]D<YF8^J8@S,G[*A-;NX +ML($Q,)#\T'[!(`<S,I1+H`_T0(&=X!"3L#<X/T*)H&C;,[IC+G:B20@9KO3C +M.$B&G.T\=DA`W"(@;9A`.YSA,[#2/H%(X2?D90M:)(C$_9`+#C]4=Q1J4M(J +M-`-1H>,S@[)F$MJ-J`!VGAPWA27ES7N7,\^IJ%,0T1L-X_5!`P-`,C!_5.(X +M&R>!`<4Y:-.HC?*`($[3E-$$1RB($8R)[*ST9]K1ZE;U[VV-S;,>#4HM=H+V +MSD3PH*PS.,A,YQU2[C`^%/<FD^ZJOH4C3IN<2QDSH$X$\X43J<F.(^R``T$8 +M(F=DP',<J0T26X!_R3FF2XC(X$E4"TPXB`0<2DW$1D1OS",L(=Q[%,6$^HN` +M^2H&$1./ND^`8&>^488=,EPC@S"8@#5(:<1GA`+FM!'O[I-TD=C\I.:#_4`# +MV1A@+8)&_=4"($<HZ+A3J:NV1'?A,QD"-6Z=S&B(<!B4`AH.2[)RFD2?43]$ +M>EHD:D_E,`:2_A-@&'W/=%&29.W?=/Y;/\8']T!#)F3"!L<D[[J:W>:-9KQ\ +MSV0!LMEDCZH(PX3LH=/6OPTZ[2T4Z%=X#L`2?9=IUR_I4^CU"QP&L0#*^?>G +MWE:U>'TW?E[+;/BB[KT!2=4,;+RY^&WIZL/++_9TW2GBKU\O)D:H_5>B]*IB +M&,#3``@RO-/`G\VY%0Y)S\Y"]0Z,"6,Q&Q7/.:X8SR]KMU'0V::;<[?JNBL6 +MRT`F,<K$Z.STMG.%OV`P#N3NL$7;8`&(5^V&`Z?H%4H,]0,>Q]U?MP<3\J-1 +M98(`D0K-%IB95<$@YV'Z*:@\GX^4VU%VB,`JU1C"K6WJ`5IK0`,J5J+`VU9" +M:I4`:/5!0EVD8^RS[^X+=7J@!2J'J-Q!/JQLLXU2Z<SF=T%U<&H^)4=!QUP= +ME!8:TDP"9^59H4G:<R5'0;)!!]U=I#/;W[*:78K2E+CQ')6A;TAJ$`3ONHK> +MGD3E7Z%)P:.<YA61+4E&D&R>RL460)A-2!=@8PK%(-@3\0M*DIB`TR,J2F`7 +M)`!V&P2G9^;M"HL4Q(]E-3$-Q^JBIG/]E/3$C/PMQ*"KANP,JNX'=6ZC-\J( +MLA^)"595>G3#B<"$]6D"V8E3,`#\B/=/6(`(^JFFMLRM1R8$86;U"WD'`6S6 +M[XB%1O=);@;KG9'25S;J.BX@C8K4L-#F`1E5NHTAKU-$'=*SJ^7$F5QZKI9N +M+US2U<1"JW3A3IND20,*=]VSRSZA*PNMW^#DB>)2UF1G]6K&I<Z`5K^'*9#! +M(^JP++57N)W!.ZZKI+0RFULS&%,>TRZ:U'#!S")X!&-^R"BZ![E2O`^(79R0 +M5&&9(QW4%1F8C'=6G-QOME05)F`JE5JK`!@&53>S)5^O.D\*K4VF=E44JS-! +M)5"\!+<8E:=U!DA4;B#@G)4VU&749)(GC*S[VE`+8,E;%8-!D$*A=AIU1OOE +M-*YZ[IN;4)B.,*`@;[$\K3O!/ITX69=L]4@^\*QJS:.JXND$<*M5T@1"FDD^ +M^RCN"-)!&58Y933*ZBZ).^E85R]KJL-'J&5O=3PUTD?*PJ[8?M))PY,JXKMC +M6+:6(B),*OU*\++=[FGU.!!,*%U;2T,&_99_7*[OX9P$1&4PIE&+;UA5Z\V? +M5Z^WNO:_P_I>784_3!(F>Z\2\)M?<]>:3_34X^B]Y\*L?3Z6QH&-*].$_D\W +MFO#3?<L#R'-,C!A-_%4_\)5.L[^:['*'5[+W/%M\35H#B2#CE5JH!XF%8K1) +M@P%`^`X:_4#N`N;VHG$Z"T_E&0/=`?B92?ZC[#8)H..(,[H&V!E)H`/_`'3O +M:00!VF4P&0$");DP!/Z)B"6@QCO*)^<F7$<RA<XP`0"`H&W.HDRG!`9G&(W3 +MD@DN``D[#9(P)VGYA4)H]4B8Y$H@.QVW3-,[`RB$'!*!M(T@YG:2FG$2?E$T +M8[I%IT$D2$#;@0XR1E(8&'9.$FP.9]TG;",>T)0YTD[X]D`&X+D0@-$B?HA. +M1(R@=C?<P<I">2-LE-Q,0@:=.YQ\(">WW3`Z<R92CTS'SA(9.1L@+4Z!)3!Q +MU'8)W`$`C*1#7-)_+`^Z@$O=J,.,)M9<6R2F,S(28UKJ@:7:9_J*JB#G`G(P +MF!=@G<I#!P9,[IB1VE`@2#P.,)VN,&2,8RE(G_-,T2=(]1C;=0*?3G;X1AQ. +M&D1*!PSP([E*??Z*B1I,C&R<ENG!!GW0-!:S43B8W3P)B1!4!`D`GO\`5,\G +M5G)XDI2.\`>Z1D@095(4F/68E(NA^_QE+20(SG8]D[A#@`\N`R3L@=CM.'-D +M1M*$.,'3NF:`1C]24I]1C"B#IG`](GY4M!H\P0/U45,8!G92VT>:-P)RBQZ) +M^'E.&LU8C$_9>H]$;AITXP%YK^'%+66DN:.TGE>G]$IP]LU&G"\7EFZZ1U71 +M_P#EMF8XA;MF8`GY6)TMHAI6W:-,`X^JYUN-*UG`S&ZOT(`ET_'94K1I(GZ* +MVP:>2HTG)D8)D[*2T$B!^ZAI9V<KUHP'.!\HU%RS8("L#;V_=16\-`SPC+PT +M079[J:VJ*\J:)D\+&ZA<:I;B>5<ZE6'JTG*Q[DDN)/*R!8XET'\OPK=O3U.S +M\JI2@>TJ]9MDC8B4T;7+1AU?FPKE$MF9D[95>@P`[1"O6H$[X*?\6+-J#J#B +MM*W`(`GW5&DX-P#*O4*@:!ZLA6"Q2;Z"1]DS"2^",;RDVLTX$2I&:"Z9&RTL +M'2,84[#J(,`2HZ6DN$?=3!XF`=D@D8R/ZL`*1CHV.V84#*ITZ<;J1KLC:2M" +M<.PF$%V^/=1.?I^4[*D"<*[-)7QI)D;J*KZA&)3O?)F,)M33)4%2L#JSG*HW +M^)P%H5R-EGWC06F2L9-XL;J-32#E8ES=Z'D-,0M?K`Q`.>"N=NZ9+BX$X7#) +MZ<$M:^/DDZ\]ED7]TZK5#9QLFO2]F!RJUI2<ZM,<_=0L=%T"D"QN`)72=/;I +M8,+$Z*P-IMANVZW[0[?"UBXY+=`$NF,*R6:LGLH+8^KG*M2"(E=,7.H'M(DA +M0/$YB%9K8!C*K$R2(SRM(AJ06D'M]E3K`D?*N/@XE05&C/8<H,^X(F#B%3N6 +MMTDM_17;QH@F=\`E4:\G!/'=*U%.LT#X&%2N\B>>`KU;_P"["S[P2^`?JC3. +MKB7$[$9^JH7%,:'<DK2N6@`DJC<B!$ITK+>0UY]E!5?+C[*6[:0XF8$K/JO` +M>?4<JLW$-Z&$96)U!HF)^/=:]T\%N3@+&ZD[USJQ]T^//E-51KO`>0[A8OB> +MX:*+@2&X[9`6G6,N=J<X97,^*;@.+QJ)SF5OQSEFM/\`"JFRKUD.=!@_W"]X +MLGLH=+9IWT_V7A?X1@#J`<7""<#[+V,UGML(.T?9>GPS^3Q>>HJUZSS734C* +M'^-I_P#R+!N6N-=YU')[H-#O\7ZKW/*^7:WY@V`3['=5J[8)])'"M7`!)*KU +M-);.?A<'N5WD;<E#I&Y'V1G)W.$Q(TX)^J@"0';?0I$X+I(G$)P`1F04SVN` +MQA`&HDXF$^II$"?JB(`=.1^J8P3OCW0(E@,M)]TL:I((!2(!Q'WQ*38`,EWT +M*0.TMP&X]T[B`,Q.R=L;[RF@3B539PZ/C9(N]\;0FV.GNDYHWV0+$2#OA*I& +MF2A`$P#$(J[FOJ:F-#1VW40AI#07&(]DB0YL`3R7<I?U>K./A,YIX./A#H+0 +M"(V^4B2T07$CLG@1G<;82<UIYD(I'8P=T(@1+D\#/JE,6R>ZH(")@X3.+=)W +M)3_T[(7-,?FQLH%)$PF$\$%/I($2DSG2=MT#`NDG5D^Z6VQ`QLD0>=NR$P!W +M^J51$_U2,\2GI5#3,M,&(D'9`UH.Z<@!`MR8.V8)2/M@]DT`'O\`!2`$D;_* +M!QN<A.`(()CX30=P0B:#J.HH'+=X.R;8C$_">,Q&0DYL8@;;('#LG`@IHSF` +M/A.1C:#O@H3ODX0$T8P`4B)$:1/>4FMS,.A)S9=@[(@F2/\`)3V7_/;C"@`X +M*L].$5`,CX18]'\`:139(X7IW0A(;"\R\`L,,#B97J?06AM-N%X?)/Y.N^'5 +M=+@-:3QNMRR`+1DQ&%B=*@M&(6Y:B",;K%:C3MP/+YV5BGAH[2H+0"/[J<8? +M"RTEI.@C'*T+,`JE2:(SLKE"&MW1J+3<`DE5KNL`(!QV2K5@&F52N*FL0TY4 +M$-R^2294%>JPT@UM.'3.N=PFNW$-,G94PYSZ@RB=K5`-DP9/*O6T-V!PJ-!N +MD@;*4U-.2Y1J1KTZK0T$NA2_Q8#0)(GNN;K]2T#33,RL^ZO+UP])(:<[)MOU +MUV[=G463ET0IJ?4Z9P'97FU"^NGW'EZX.RZ+IM"Y>`XN*;OX6W&?77TK]D@Z +ML0K=&^8X8=E<U_!5A3U:R.52_B;BC7(!)"F5N/:XW'+IZ!97$M!+E<I%AR25 +MP=GUBJP`..GY6]TGJK7#-3]5<<I6K@Z$C`@!."X9;((4%O=TWM$'=66%I_JE +M=8Y]&U.)R3E&S:$P`W)1@8C.%-&PAP)_,F<^.4SF&)&%&1!&5`U0^J95.]!+ +M294URYPG*KU'@CU'/99JQC]3I%TD;K%KTR)&)*W[_208"Q;W!)W]ESR=<:RK +MVAJ'PH[:AIJ`E77Y:3*%C0'3N5AO:[T^`0MRR/I$\+$LL'?"V+(@D$'A:CG6 +MI:C$85AS@UN`%6M.8(]RIJH],S"W&$55QR=E`70"#N5)4V)!5>JTB3,%79H% +M5\'A1/<'#(^O">J8YG]E!DDPJF@5@'-@B0J=S3GLKSF0"3^BJ5ORF/W6NS;+ +MNF.DPJ%<<1E:=WALK-KCU?KA--13N&!X^%F7Q@XV'ZK6K2LV\``D@(LK)O2W +M<A9%T(<2!CNMB_:",+)OB6@I9LM9]S5()@0LV_?J)$3W5^ZRPZL`<+(O'#6[ +M,]HX68XY,SJ3RQCO+S\C9<;XCJ@U<Q._^\+INN5Z8:0V,\E<5URO-0EIF#E> +MCQSEQSZ=W^"[7/ZJTN_5>N=>J"E99($!>-?@<[5>NK:X`"]!\47HJ4"P/]EZ +MO!/Y5X/U%Y57]0I%Y))W3?Q]+N5GTM)I@D$HH9V*[^S$E?/=RQH&.>.RK/TD +MF6\<*U6>X$_E^55KETB2`2N3U(@!JDX"&-1_9)Y)=O\`5($ENXQPB&<T9C/U +M0F=/?W1N)`$D9V0:N1PJ&`,;_JGQ(/"=CRUI(`AV"#E,QS2!'?9#9CET9/LB +MTZ1L1\*2N^B7@TJ98`T3J=.>3L.4S3+0[3M]D`P9V/T2$P2EK)))W]BF:X:C +MG`0/EISRFV/*69$[#ND2,`2BF&<@Q*0!W,E$8G/Z)AC9N_,H&VD$2-X3-ATY +M._=$8,<?)3:1N9@\DX4"&WMW"9TS.93M@DC8(G$`?"HB^=BCHN+'!['9;D'L +MG<1/I!CLFY)@XX0/4<ZI5<][M3GYE#'L,(RYI,B"0$VIH,Y01P7/P9/LD#P? +ME.^!$RWL4(TSOO[IH.<QD3RF'<D$I2#B-T[2'`P<CA129G)A"=AV1-(C3CV* +M3O*X)_U5`-WA/!!W"3@`2)3P)WXR@<`#U#CND#!S]D0PZ&_E&Z0WWV[J(;?M +M\IR(>,[^Z4,F&X!Q\)W@#TDS'(0,R(W@^Z3BX^WR4WHT[_3**6EH&G(Y!.55 +M$2#$-(')W09`AN?=)L3))QC9.<&<91#AW$X"N]*@U@=PJ;6D@$`1W6GTND&D +M.QE9H]`_#_-8`#CE>J=`TEC,%>5?A\0;IC2['*]7Z""UC>5X\_[.KING;@<+ +M?M22T2L/I>X&WRMVT:-(GCA<ZW%VW.!A6*8+G0H:(!SL%;MF@0866XLT&0P< +MJ1QTB04-(#Y$(+AP!@%*H:SS!(*KO=IR8E%4<#Z95>X(#42JUV^7$3A16U,% +MP=ND]NNI`,@*8Z:5/=-$A[BJ*3,X7->)/$C+)CB7[<)>*^JTZ-LXO>`!LO)/ +M$G6!>W[J;JI%.=X6+;O4>KQ>/?->A>'_`!11N+R7/G,1_L+L_P"-H5K::?(7 +M@5O6I4&MJ4ZI#VKL?#_BNG2L]-:H!A;PMG%<O-XK>8V/$76V],OA5J&&3NM[ +MH/XA].9;-#Z[!`Y*\:_$7Q"WJ5?RJ#O2WGNN0;<U!@//W5F][CI/TTRQGMV^ +MIJ'XAV%W6;;4:S7N=L`5UO0;47E`5WMW7R1^'O5FV/B*E5K/].Q/9?6'X<]< +ML[GIM)K:C2(WE+;E=9.'E\7[7]6A?='!;+1E46V]S:O],D+L:9I5&#U`SV*! +M]A3JR"``LWQ_@P\UCGK+JSZ9#7DA;O3>JLJ0-2IW'A[S:T4P/E4K_I%[TT"H +M#+0?=3^6/;M,\<G7T+AKA((A6:;Q&XA<7T[J;F0UYCY*W++J#:@`:X'X.RZ3 +M*5FXZ;3].GB56JF780,K2,$''=.XDB1"5-:15!J:>ZJW+0`3*GJ.TD@G"AKP +MYF%C8RKQYU0`LR\;(,B/=:MY3AI)P%DW67;[_HL5O%2TG5$?5/I/,(B3&-^Z +M"8=!^ZQIO:S0QMN%J]/.`0<E8]%P)Q@E:O3#!]E6:VK-WLIZ@!$E5:#HCD'L +MIG.B"MQD#Q!.57K&3A2UG3,*"I).TJJK5"2["'28D[*7TAV<E`YPV_NM1FHG +M.)&^_NJU?(CA3U7>G.55NG#20`M(IW+001NLZLT`GM[J[7<1,*C=.,F/T15. +MY=!,RLZ_@L)!A7;DDM67=O=M,@H,^NTQ(*R;W+HB/A:5Y4`$;$+*NZX)))D* +MEJA?._EF<!8M^ZF&;Y&X"UKYS7,W'U7-=4J$^81$#<K.OPY=L#Q!7,.8'3V( +M)"X^_+JI?.0<96OU^L#4>`[/"PJCCHYEQR5Z_'-.'DKT7\'!Y5HXC[_5=3UI +MI>#J)$9PLK\+K`T^@,K3EXG]5<ZS<^LM8X%TP0%Z/#.-O!YN<DEO3;Y+<\*3 +MRQW5>E5'EC40"B\UG<+>DV\%N7;-('IDY"IU6'))&#RKE8>C42T@=U4KQ,<3 +M*YO6@)B1B"F<P`'41V1.T@X(S,SPA(!F2)'=$H`)@#8<IG[_`"C'Y2.^R&`2 +M8B/<HH'!LB`?A$S0:<:I)X[)$>KO"36@/@=OE4.\$'26P0<@J>G7;3MRQE*G +M+CE[A)^D[*`-`)./F=D0D-@$`(&`],DC!2(;J<B:T?$)B,[1]4#5(:[(V3$# +M223'PDX;(@R8:(S(W4`B08#1(_1,_#>_`1%HG83O*8-$@$?7V0T89:?G,)X( +M,C'9,1C';=2.CR\B%0,Z6D#&K=)Y=`U2G#89,?FV/=(M$80,9)B4(:?>$^B1 +M@0$;8TF9S[H!#009"8-_I.(1N:(=F$+FD@#4<\H&<P1!S'NHB(=)^REJ.&F` +M[[('#83'*B@<(.^R1!=DF.,(R"'&9@]BG8T%QU:BT;P@%H+=."/A-^5^[H[J +M2&D$"?JA=$S'TA`TR?S"#WX1%S2(@`]^Z%D1S*8;Q.P0&#Z3D"<)-TDDDXW[ +MI/:)P<;Y1.:0R2[=$"V1L[8X2))F#+DW!.K=.T`.W/T[H'@D3(2`)D<$)JAU +M$Z73/!2:-,912CU8'^^Z/2(@B#V*`CTET@'@#E$,G5JB"J@K=LU/\UT%C1_D +MM,0.%B]/:75=/?E=3:TW"T)(PW("YY5J1T'@`?\`JVM$"<97KG1)\IN,PO(O +M`LBZG'SVW7KO0/\`EM)7ES_LVZ?I@@#/ZK;M1L9C&Y6/TULM!F%LV[8;.KA< +MJW%ZCF<J_0;GD^TK/H`F#(RM.S;@9E9;2%Q#-B%4J23)5FJ[$;0H'9$'"NC: +M%Q!R!LJEVZ9$[JQ<``0%4=)))2I"I-@:MH69XEZBRUMW0[*L]1O!0HDD@0O. +M_%M]<]1N#:VY)DY/99SRF,>CQ>/VKCO'WB&XN*[F4G'1/=<5_P"H=4)=J))^ +MB]1;X)-2B:M7+CG*Q;OPH^WNH#-0!Y*S/),7T,)CU'-65.N6B7[9C=/=U"PP +MYQ`[%=)5Z=</=HT&6M$``<*.MX4O:C"]M$GY*D\D^MZD<9=/<XZI,'&^ZJ5- +M1$SD;KL7>$KL/=J88!'U4'4/#%U;VVMU+*Z8^6.>>,_+D[>L^G4EKB,[KN/` +M7C_J'0WL8Y[WT@-B<A<;5I:7DZ1`*C:)$?7==;)DX98_*^EO#7XT6!#65ZP8 +MZ/ZCA=WX?_$WI=X6M;=TSJ'^(?YKXQ:7LR.V#W5SIW4;FVJ"K3K5&Z#OJ(4] +M;.JX7]/C>GZ`>&NKVUZR6O!'L5J]0H"[MM+&APXY7R9^%GXM_P`$&6_4*NGC +M43@[^Z^A/!7C_I'4K&F]M]2!C(UC_-7'/?%>?/QY8)NI]*+=1##J"S)KV57) +MP/==1<=2L[QYJ4GM+3[[K!ZZ^@X$-<TGY6+X_L,?+9PL]/ZH*@$.RM6C<AXC +M5MA<&XUK5WG-=Z>ZV.C]4%0:=0D?JL[LXKO-7F.ANJG:%&:GIR1\JLVL'4HE +M`:@.)]E*:*\+3.HX65=,TM*T*YEL<*A=G$AWT6:D4:DM)(Q[*"H\`8E'<.WQ +MD*M4J0V94;3T7CS/E;72WN(#L^ZY^W?_`#-UN])&IN^R%;5&IM`^ZD+B<'Z* +M*W`@2,J5Q:<R%4@'1F/^R@N'%H($J4D..\*"JZ'9=ONM0JMYD/DF4!?ZIVG= +M$\"<"`@=I@P<JQFHZCH:"3OPJM=V5-7C^DX/=5:T8$_Y%:16K'(RJ-V\3\*W +M7=B"0,K.OW`M(!$HBE=U0V<Q&ZRKZN`XD#=6[Z9)+C)Y61?O+FNC_LK%4.H5 +M]6RS;EY,Y)"N5PTSWE9]\XMIEJM8M9G4[EM.1J]BN3\17H-+TC2)S!6WU60! +MDX).2N.Z[>.8[:`PG(S*N$Y2ZDX875GDO<"9Y`5*@WS;UM!LET]X*>^KN=4E +MHEP)VPM#\.;=USXIIO$PS,_0KU7C';S7F[>R^&Z!LO#5*B['IR5A=4JL-P7& +M)GX6_P!8J.IV082`(Y7%=0JDDN(F-EZO%CK&1\_+^657V=2H!L2?NG_XE0_Q +M?JN6>^7DR<^Z;6>Y^ZZZ:]8X2X9',G;<JK6:7$RT;8"T[H>2#Z!K/YIV'^:J +M5:[)E[6O`P1IC[+S/4H5`X"=B@:(SOPK3G-8QX:^6NSIC*KD@B>WZ(!J%SW% +M[@.V/]^R",_F@SO*DC;4=QE"6AQ!(^@4`$&`"?@=D_IW=O\`*<S$D;93;'V/ +MU5!@!T^G_1(M!RUV)(]T-/)B?U1,(0L,"=X`GW3M$&3M[I/<"^-(`X`3O:0= +M+I!!RWE#02-+CS'9,"X8.W9$TM!!+2?JGJ5-1+G'/=%`!IW$RA?!='T4D>DD +M"4QT<S@930$3L"9&R,MD#@./.R8:"8[[IHT8RF@XGD;X2SJ`)."B8!&3PB+1 +MJS.1B4T@0SW/V3B0=XX12)TI@[!$H(W[\DE)[B223]E(`#."/=`\N`TF.\HH +M,:M\$H07$0<A.';<G9)D8!X13.U9V^J<.#1C20?NBT@R)`"8P0`<'NH@2XAT +M-/\`9(O!.70GX!D&>83>K,"1\H&:]P)(P"$W!).4^\"82()$3@I5.3@9D'A% +M4)D&2!P/[H&M`=C[IVN,^HC!W1#28QGX^48)W:0.P3:0,@X3L#9&H2#P#'ZJ +M@8(=)@E.Q[PSRPYL.()!'(_[I&(Q$#&R1$G3C3V"@)@)D'2"9WY^J1!Q(]Y' +MPF`Y..Z<CU`MB"9@H-'H30ZX)+=PNF+'MHC2L;PE0\VKS/M]5T=>GI:!N3L. +MRXY]MQ>\#S_&R-H7K_0!#6#;"\B\$M#;_3.)V^B]=\/D:6CLN&?:NKZ61H$# +M$+6MB2(_99'33D"`?JMBS:/3&WNN5;C2M&@C;]%HT@UK?=4[6=H5@XGWX4;. +M\->\F<=D-=H&>>45(-&\R%#?/`9RFH6JE5TO+0=E!5.AA<?U4X#34))^JQ/$ +M]\*%`M!S\J6Z;PQW7.^-NJ$%U.CDS$?9#X/Z4W4;FHSU.S^Z;H/2JO4KXUZC +M26S*Z\VC*%`4Z8V[+S[W=U[Y)C/6*%VVF&>6P?943TEMR\D#=;=G85:]3;=; +M-KTSRHD9"7^79N8].:Z3X48^MYCV8/9=E;^#;+^!DDZHSA6*#&TFB!GNIA=7 +M'_*\PZ2NF,QCCE<KU7']0\.T&U7`-!,[KA_Q&Z>*'3W,IXC$KV2YL:CJ+WR` +M<8*Y'Q7T(WC7`M)XPLWCITPRW>7R]U2VT5G`;?XEDUFAH&73)7K7BKP15I7! +M=3:8G:%Q_4/#-Y2.H4G.S!PNF'FDXKV98XYSAR]-Q>T3.,J1N@X!,QNM"YZ3 +M5MVZGTG"/LLRK2J-,220N\RF73SY>*PJC@&2''.)'T6MT+Q'U+IM1AM;VJS$ +MEH<8^RQ'3N1'M$)WD:,8'9:NJY^M>P^&?QDO;6W#+ISW$#=I/WW6YTK\7&W_ +M`%1E#4X,.[G'_5>!!Y`#I$D3(&ZEMKFI2>"UV1V*SZZG%<_VL+\?973>HV_4 +M>EC0YI,<+.I7KK._`+S&VZ\6\`?B(ZRMA2KU':F",G??W6[?^-FWEXTL<2'< +MA9\EEF[VY>/PY89:^/=^G7C*EN#KD0KC*HD1LN'\$]4-Q9M:7#@[_*ZNA4;I +MR5REVWE-+I=S,A5;P#08&/V1!YU3M*KWE26D?LCE5"[AI,;*@^H3G:.5+?U# +MF8*HEQ\S<%9K<7+,GS02<%=)TD^F`87/=+IEU0?JNGZ:`U@GG@++5:=-WIP4 +M-1QA,PB,[H*AR?=:VD(N[[%05W<3*3G9CA05'K4*%S\\QW*C>^!_JB,<S)5> +MX<!@G"U&*BKO.HSM[JI7J;F?U4M5Y,R#]51N'N&6XG?*J`JN`)^51NS&21]% +M-7>8D[G=9O4:@`,.CE61%;J#Y;`B?98M[6`:X=^2KMW7#3_=8O4:I>Z!WE;2 +MHJ[A$G8K(ZE5AKAJGOE7;IX;1(<[/>5SW6;EK6%PF7;DJ,=UG=;N@V3/I'9< +M5UJX#I@2"<-E;?7[II9`P`5QO5;B:CSK)/)7;";Y9SOQ1N:LO'IDCV7:?A/; +MG^.%PUD!HWWX*X>QMW7%ZRF&DS/&Z]L\*=(H]-Z*P-/K(EV9[_YKOK=F+R^3 +M+UQVGZ_?L<!3<<M^O9<CUV\ITNGN/G>H]QM_N5=\05A1N708U&%POBJZUO(! +M)R9A>SC%Y<,?:B_BJE3U^:&SPEY]3_YPJ%NXFBTM+H^`CEW=WV"Y>U_+U^D= +MGXR\-]/;3\QE,LJ'AIW7$]0Z8UCR((/*],ZXUUQU`TW?E'U4;NC6M>@T.'U7 +M.8UPGD]>WC]W1=1`U-)CF5"_2*8,[S(A>H=7\&"Z9_)<1&=ES]WX!OZ;=37A +MXY$;*;=9GC?KC3$("<SO*Z]OA"I3=_.!!(V*AN_"=<#71W/!57VCEB0!F<I2 +M#CGNKG4NG7-G4BM3<!W"J,;)+9`GNG#1SIU[X/=+T$-TM`(W=&Z?T>G&P[I, +MR<'[!4,79QQC9.(F7O,DIZE-["0]KFD\0F@3.<\(&!&0#)E,2.,RB:&YU`F= +MDTCL80(#G>$PTG`$0B@2E`T[01RH'I`!DDB>ZF)HFU`'IJ-,&,Z@?V4&S!P1 +MN40B<';.RH<@#'VSDHGZ0"21)0D@SEL>R9VEP`D;=T"D$$`1/NA><!H?,)P0 +M<')X3`$/,('80T;QE-<5"][JCX)=V$)8\N5&X@C`R/=`+LQ&D0B;#3L(GE"X +M#&1LF`':<**E!/&W*#5!+M2?<`2?9,6P"`<3L@0$\X3%N)B.(2]H'W2@MP8S +MVR@0`#`G@AA`&"A'[>Z378.<[9*!H)VPG$#!PD!P?NEIF3.RH36@8)!E2!H< +M,`F/=`W><%2-<6[8/SNH!:!D@$CY3:!S(/.$5327$M$#M,H#$D"3]4!M!([_ +M`*I])#])!!Y!3"-')?QV2+3.<(.H\&4PTS`&)(717=-C6^IO')6+X+HES0X+ +M<ZDUV@/.RX9]M1;\%TP+T$N$+UCH(_E-D$87E?@5A-ZQN"<KUKH;1Y;1,D+A +MEVTZ'IHV&J%N6#1@%8O3P0=]^ZVK!IQ$@=ESK<:UH,3(PIVRX`<*O0/V^5;H +M3IE1H4%C252N*PIU0_2UPWTNY5RZ=%,R8^%B7U:*AS"59-@OKEM.B7%WJ/9< +MK4I5NJ=3\O<3PKW5*[GU0P$$=UM>$[*G2?YM025RSYX>O#'TFVQTKHM'I_2Y +M;AP"IN:*M<ZFR"KW6+TN8VDQ^.<H^F6C0SS7%3+FZACQ-T_3K713D`2KF'&. +MW"JU;JG3)9J$!5+OJ]K;-U/JM[0L[TWVTG@-9`!D=D5&EJ."!]5P'B7\0K"R +M:[36:2/J?V7'W_XK=2)BQM2_$!SC_HF.6VYX<[-Q]!4*376Q:^X$Q.RSOXJQ +M94?2-1I=L25\U=1_$[Q@7.:ZN:378AK1_DI?"?CV\KWX9=522[NMY7C<A/TN +M7VO<.N6-I=UWFF`0=EC5/#=*H(\L$'V1]"ZD:U)KM0,A=/T<4[BHVF2/4N.U +MLN,>:^+/!U&I;.#*0'NT+R+Q)X9N;*LX%AB5]8=?Z53IT6N:X%K^.RX/Q+X< +MHW#S_+&<_"L]L:WXO+^7S1>652FZ/+/RH1:U0X^C=>T]7\$->\%M,#/`_P!% +M?Z1^'=@*7G/I^8Y@D-=^7]EUQ\UO&G3.X2;>"5:%2GAS7=LC*K.U,<=M)^Z] +MF_$;P>RM;:>FVK35:9FFWCM@+R:^M*E&X=2J4]+V&"'`@A>B>25QF,RFX73? +M56;F`<+T+HMK:LZ<7ZAJB?=>>VC8,!H!'NMNRZC4#6,U&!N)6<VKX[9.7M_X +M:W3C08V9PO1;![B!J.5Y)^$]VUP#>8WE>KV-352;F)"X8=/-Y>*O/?+("IW- +M0EN\2CK/AF<*G7<)SF5IYZI7U0P1.Z@MP7P3GV1WCB7'&$]AETD$_5*U&QTE +MD$%RZ*S_`"?V67TJB-`*UZ#2T`]ME%3,;Z!Q&Z"L1IV1>8,Y^?=15GG3GA6* +M@<<^RBJ[%&^I(Q$*M4<2[E6):=[X=&?E5JQ;$20B?4P2JUQ5):)@?"TQ45P\ +M]RJ55X;JER*XJ9+MRJ-P]V2#*H"ZK9*R>H59!`/W5B]K2>0LB^J03E:D9V@N +MZI#?4LN[<8)!W5BYJDR#.-EEW=:)DA7>F;RH=5N]!+3D+F>K7;7`AQU#D+6Z +MS6`$G\IW]ER75GZB'`B)5QA(RNNUAJ(#L@[^ZYVYESBX!IG`!5[JM8/J.:2" +M>\RJ=C1=5JZ&YU87IFI''+FNB_#OHW\5U-A<P1$_&Z]0ZC3=;64%T0(E8WX= +M=*=:6HK/;ZG#D*]XPOV,MRRI`G?*Z^#'=V\?GRW=.!\3]4TN>73O`=/^BXR\ +MN]=4OW,_HM#Q;<L-PX,?,GDK$IG^9G29Q*[9WG37CQU&K0)=2:X:A/9%![N3 +M6Y`HM!,?5'+>_P"JQMWY>K6W3!<.-2X>XU%H-Z;28T`-..96YTCI8-/43G=7 +M*]FUHPI:\#EZMI4;)8^?91:'-9_,9`_=;M>@T..<+/ZRP4[7,$\*;-;85:T_ +MC+OTLAE/<R@%FTUWAK9#$[>HNMP6MI2J5;K+V/-3RW#V"LARAZST6WNF%KV" +M7=PN(\0^%:UO4+[<2)VR?[+MZOB&B7#S*+E`_KMH]_\`,C3&Y"GK^'3'.QY7 +M6MW4ZNFH-)&(.$#6Z3(=MR%W/B2PZ=?,-2W+14W[+BKVVK6]8L<S8[PD_P!= +M\<YET9]6K4@/J/>!MJ,P@,EQ2+\>EH$)M3HB/]56B>-O5MV3AIQ!W33[!(., +M[!$V<9R8$>R4NT@H2XDF44D#;]478>9G?L40&-\?"',_ZHVF#,1[;H'8#ITB +M!_=)C!)`$^X3`N<Z`W/ZHV4JKGDMI.).ZB;@1,8@<(?ZL*=UO6:#+'`*!\ZH +M<"JNX8<QD'A`\2["?4T"8(E,]P(](,G=#87"!!'J2:V3$'/*=CF\@DI?U;%` +M0;'R$+@.\%&YS-,^W`0AS2W$_0*:-E3:/_Q#W3/(G@)PX#(D'YE`7!QW**9W +MN?LG.D-RGJ5`8@#TB)0:P3)X0/$@)0?@)]0G&R3BW$?H@-P;$S,I-.DB=O9` +M"W3$[;82U`YF(VP@>#J_*G<"3B#'NF+F@"<%$"W2<CY5#!H'])4E,'S(.!*C +M8YNTX4U)S-;9<`/=!V_@YH;:`[GN"M+J$:2"J7A,--C(``*L7[FMSJGA>:_V +M:G3:\!,+KO5F?=>J=$PUIC/LO./P\I:GDD;<KTSHX!(@B%QR[:=!8-#F#=;M +MBV6[!8UBW8@X"VK+`S]I7.MQH4&D-C!5JD1$QRJ=(G?5CW*G+@UO/U*C1NH. +MQIG98/53II.).5K/<ZH[=9'7ITZ=62=I6:Z^/'EA])HON;_(P#RNUITZ=M:# +MXW4'A'HU/RA6>-U9\0!M"F6@X"Y:O=>GVENHSF`UKD.X'"N]6ZK3LK')&`L2 +MCU!E%I).W*X?\1O$%9[#3H.=]%-Z;F'M4WBGQZRA4>RD[4Z8@'_1<9U#K_6. +MK.TAYIM=V_[+.Z;;NNKXU*HF3RNCI6S:8V(Q]UC+6+V888RZ8M#HQJ.#J[I) +MXW72]'Z=;4:`UM#BW]$UG3!>T`\\!=1:VE(V>&B8F96,;<JWY<M33C>I=,H7 +M37%M(-DKF3T?^%ZH"#&<+OKRF*3W`-()Y7$>+;Q]"\:[8`Y*WC;T87EZ]^'] +MH;JFRD'0T-G==)U.>DO8\5</&/9>0^"/';+*BUKC!;B94OBWQ_5NS.LN<-HV +MA)-37USR\65R_P`>K'Q#Y\,K5AC:2KEM9U.HTP:,OC:,KYLNO%767534HEQY +MQ*[O\(OQ;%A<ML^L![6N(]2W,;]<O+X[C/XO3[FS-$^5<42UW8A36%"DRF0X +M@`]U<ZUXCZ-UGIC*MK7HOJDRTL()`6795]>IIX4RGK7+&^^/*+J-K0\Y^FG@ +M\B%Y'^+'A9U6[-]0HQK)+H$?V7LKP"X&"8[Y5#Q#T^E>6I:Y@)`X"U,JL_AE +MN/ERM;NH5M&W&$SG%A!'!7:?B%X?-A>NK"GAQ.RXVY&C):"?NNN%]GJLFMQZ +M3^#MVYU4#)(`PO;.E5?Y`)'"\)_!>/XDQOC9>Y=.`%N.#"QCW7A_4]IKFL9P +MJWFD.)F92KDZL$2H8=&ZUIY052Y[HTX'<J[TJB9'(/"JL`+S(6OTEA=&F%+R +MU&QTVD6P3VX5]N)B3"BM!I8./JCJ')`D(L)SA\A5ZSW.$94PES<E07$`Y5@B +M+AM*KU7[G.5)4(C4#E5JAF3*K-15'G3NJU9\C.?E2U'B#PJ-T=M)*L9J"O4. +MHJG<U1!X5BN]K1G'O*SKVL)QL5J1*K7E3<+)NGSL=U9N*AEPX'*S;JIZG9$+ +M<9M4KUQ;,;+%OZT.,DRM.]?.`?N5A]5J,:TESC[*5F,?J]P\M@@QRN8Z_6;2 +MID`DK<O[F9,;#>5R'B"OYM<Z<&5UPG*Y<,BLYKZAF)/*Z#\/>E5+SJC2&RS< +MF5D6W3:CR):<G=>N_A;T5MOTQM0@A[ARNEN^(XYSUFZZBUMJ=I8-)(V7EGXM +M]3+'FFS(G/9>D^)KC^$L'DO&.Z\$\?=1-UU%X#@9*]N$]<=O!)[YN?KU75GE +MSC]$]#)AT.4#!!)@94]`MU`M])YDKGMZHV+=H\AL=NZ/2/=!;$B@T3PCU.[_ +M`**.D?45M0T4Q&,*/J-.*1(.0K]-N(4?4*8-J9WA9KP1S=.F*E4DF0J/6;8U +M(80(6U:V\`F/=4[JWKOJDM<T#X5HY>O8-&/+6)U:TA[FL!E==?VEQ@4W>HGZ +M*B[H]:"?,:2<J[9U8XFO8F"33#C[=U4JV&J"VWJ./,-PNZ_X34UD/=3(`[*I +M?V[Z3'4F:)(_I!E7AKVTX6XM'3Z:+A\"52O;'63K9QRNO=;>HSF3F6_Z*K6L +M2]^DAHWB$TU,G$U^E,V#=NRIW'3:@P&Q'.<KN:G209`U$A5Z_399#HD8W33I +M[N#JV]6G+G-/91D8,@CV7:U>E-."R6QA4KCH#:KCY8R3QNHU[1S5O;5*];12 +M:7$]EOV'ABYJTVNJ,/\`DNU\%>'+6SH.?5HZZIYA=*;5M8M92HD1R,*V:<KY +M?P\YI>#GZ-;F&&Y(!2H^'Z#20:1WB)S^Z],N[#RK1VH9/SE5K'IE%C-3F^LP +MI$][]<YT#H/3"]K'6GU)*ZRT\,]/`&FB,J3IEL&WD1$8E=)1I!N,1&W9,F)= +MUSQ\,=/J`M?;-CZK+ZQX!Z7<L,4-+CF05W(9$@#*;RR?21G98;FX\0\2?AY7 +MM230!>W<>RXWJ'2+RT>0^BX#.87U`^R;4'J:"L3Q#X5M+NB6FD,[8Y3==,<_ +ME?-;VEIS@;Y0$D#!F>R](\9^`JM#55MFN,3L"8"\^O+2M;5C3JM<TCN%9DZ2 +MR]`+2&X>'2.%$Z0<'Z(BT#(G[)B,SJ)^55"X&9+OT3C3J.N8CC>4[L`2XSW" +M"#/O/952@SB)2(.=@"EDDP=N2E!F"5-!S&H$'YGNDXX@"`G,$C(R4H,Y('8( +M&D:<8*6(.<!.0-(,C/"8`C,-A`[M0EID>R9L`?F$)5!)&!\)RXN`DM$"!"&B +M)VV4U#);)D_"KM!QLIK=L.;)[0@[[PN\LL8+1D0K5;0^L`=_94O#CW"PV`(" +MOV-(FZ$B<KSWMJ1V_@:CHI-.,Q*[_HU.3Q(7(^&;;R[9I;'==IT%I)!WG=>? +MMJ.AZ:,`&/JM>U$#(!]UG63)B``5J6W&%ATBW2$-DQ*BKO!@$A$ZH6L,B<[* +MM2FK7C@<)5BU1IC27'D;KG>M5F_\0#?Z6E=)>'R+0_\`V]UP?6;E[KXEN=., +M+.7$>KPX[=M9=5HT;)H:1JB-UG]2O/XPD`R5SEK6K5G`$D#Y6WTNAL9RIOV; +MN/HJOZ:Y[#C#ED7WAAE4Z],'.05VM-@TQ"<T6:9@9"OI*Y_N91Y77\-MLZVN +MG3@9G"HWS-+2US8/Q*]2O[:F]A!;L%Q_B7I#7-+Z8((,X7#R^.]Q[/TWGYUD +MP.E-+GAX$`+>I533`@[X61:L%$QI,K1H5-5.<_!7#"/5Y;LUX!4<97(>-.A" +M[I%U+<<+IKRLYK@!LJ3[C,O$3W6\;-[8FYT\O'2;NA<Z#J`"Z?H?1`ZBVK6> +M2#C*W+NE1J'4*<&9E2L#!18QQB<+>7DV[;W!6?1+048+`0<KFO%7AGUNN;6F +M6B3M*ZZA=0P4VF>)5_R`^U@P9R0ICDX7^-V\M\.^(NJ=!O12KU:A9.Q<5['X +M-\56W4J+7-JC5&1J7F'C?HYKZZC&Z2V<PN;\,=7O.D=5;3\UX;J$S*ZY8S*; +MC7KM]26EPVJV0<*VRDUX@E<;X$ZFV_Z?3J!Q)+05W/1]+HU''NN.-<?)CIP' +MXI](\RS?Z>"05X7UND:5RX"9E?47C^WI5>GN`'J((V7SCXUM'TNKN9W<?W77 +M&ZR;\-]L=.F_!JDYM0/)[?5>SVE0>0-UY?\`A+:Z;5K]($QO]%Z53=%./9;Q +M_+Q_J;R.J0XD\\H@TEL]E'1)>\S@?NK=)GNJ\RO0HN=5Q^RZ#I%#0T$B%1LZ +M4OGW6Q;"&QNI)^6MKU(C3[IB<2@&1GA)VV^$#/>0<%5[I^KE%7V@*K5<"2)C +MY5*&JXD$*O6=C*.K4$C.54N'DM*UME'<$`95*LXP7$XX4E=Y.Y52Y=#<A6<L +MJUW5ANDF?A9ES4()SRK-P\@N_NLZ[J``\>Q6XEJO<OP<CW67=5-),00IKVZ: +M`<B?8K-K5-1SLM6L(+BI+7%P``7/];K0,EO^BTNK5@QCX,_5<CUZ]TM=+IB4 +MDW5GY9O7;T-+F-W)[I>%^@UNI5#6<UVG>2L_IUN_J74FM@F#W7KWAFP%ITVF +MQS0T@!/)EZ_QC>$O]JY9WAUE*HQH8#GOLN\Z#:BUZ<R&_E;M*A%JVI7'>96G +M=N;0L]($$!=/T\W=O-^KSNM.%_%2_=2Z8\N]P#_L+P?J-P:UT]SA.>2O3/QA +MZPQSC0.'YDYRO*ZT$EPF">^Z^CGQ)'D\,[IPX:9C8Y$J6@X:MB1QE04CISG( +M4U$G8$D;KD[[:M&L/*;B,(_.:E0/\EOIX1R?\*;:?6]-LF..4/5`T6)(^(E3 +M`>O"BZL6_P`.&]S"S7AG;,MJ9-N9W*KW-,LIDD+5I4P:0T]E3ZE2.(Y*7LC$ +M;1+W&JX8]U'79`@">ZUC0B/A5G4QR$5C5K=[S$P-EEW5JW4=()DY*Z.ZHN/I +M`W45O92XN<`594L<Z_IX8UQT@GGG[JC6M@7D"F#$X"ZV_I,93(@#N0N?OG_S +M6L;!^%J7;-FF<+`5(B!.Z*MTBFYVD-(,296UTZWU09$QRIZK#J+6MGN4I.>7 +M*5^B:1E7?#GA^:HJ5J<P<"/A;K+=]2J)87-:03A;EG6ITP&BE$>VZFVN?K,; +M:.&&T84U&W=2;JV'*U_.81D0J]=XK.AC<`9*RK'=1?6JESR8&P'"(6S7'5L5 +MI.I:<D83,I2X''O[JIJ,RU8/XX`+HJ5!Q:#Q^JR*["VZ#N/W6_THM=3`SVE- +M<$%2M&.;*;^#@X&W"TK5D-@1'RH[JO3I#W66E;R&-9(C*I73J3<$H.I]2@$- +MQ"R;DUZX#FEQ)/"*+J%.A5U-(:00N"\;^#;2^I/JT`&O,YC"[BA87`>7/<2# +MPK(L6%N1/>5+(2V/F?Q!T:ZZ9<&G68=(Q,++R!!_5?1GBCPU9=2M7T:E(:\E +MKH&\?"\+\7=&K]'ZF^A581DQ@Y"2_*[XY>S'(+78^$,N$"20#LB,9,-2](=. +MX6V]@R9!.-TAZ20<@H\-<<80^GDJ!GD;MVE//!(^4G``CU2$B)/:!RJ'+70" +M!B,IMP9@GZH@,.]0CLF@`X(RH!9)SR$0+L@@;93M'NT)R`08*`#.W^JFMI;4 +M`/?91[GTCVGLI[8$UFD[R,RE'9=!J.;;MP(WRM[H=$U+QI(_J!/W6'X?IOKL +M`I@O($P,PNN\+VX_BV:A#@X#3O[KS^2M8NXZ-3BDQL8@0NOZ#3.(;(7,]-I_ +MECV76]`I;'(G9>:UN1OV3(;"T*8B3A4[1L08.(W5L;;_`"L5LUQ5TCYV1=+R +M^8&ZI7+R*D;B5<MG>30<\[*SMJ(O%%X*=$M#L[;KCG-%2H29"T>M7/\`$WD2 +M2`=Y]U'2IB=ESSNZ^AX<?6%TZC&\86W9PT<2JEA2(C]EI4Z8+06C;*8L^6I: +M#CJ$[>ZGJN`$3*@I@QOD(WCT223B5TCR54NH<9V!]UD=8`%)P.=X6U5I'1)[ +MK'ZO0<_N1"-8WEQ%_5-.[+'0!,J0NBC(.47BBR=3)<!)X/98_P#$5&MTF8B# +MV7BN/K;'U,,IGC+&E0BHZ=4S[*MU:V>'C0?S=UG'J8MZT-S`R"-E;/5VU'-< +M3'?W6'>8V78+BDZB1JW/"AJ5#(SC?"FO7F\IRPR&_<*G>-JMI8!!GA734_U- +M9OU5&Y]MUJMOBR*>'?!7/VCJK()'/V5FGY[7E^C$R=U>9TSG)>TO6'^8QYT@ +M3*X3Q'8-;4\YH#3JE=TYS7L=KXGZ+G/$S6N<"TG=;PRU3&?':_@W=/%G!,@1 +M$[[!>O>'#YC))7BGX4/\MI&"TD<?"]K\+$&BV(V"S)RX_J`^+@W^$/!SM\+P +M3\0:;*GB!C6B<P?NO=_&50?PS@#!*\2\16GF>)VG4YTNQ\RNF5TQ^G=K^']D +M*=BR!B`?V74D-C3MA9OA6CY5@P_].WT"U`S4[;`77#B/%Y;NI+2E+I/)W6C2 +MIPV4%E0),1]5<;3.T;>ZUVXGLVB<#"T[<"`)RJEM2@29@JVQS6CMP5`6N9$[ +M)B_?$H7GU$YRA=F/]PB[1UR""(S.ZK57"3D*6L8=`XE5;ATR`?[*I45PX<%4 +MZKY)"EN'&<'95:E4##HSR545[MXW!]QE4+BK(._,*:\=(D'?LLZZ<1SLM1$- +M=X$DG'*R[^J"QP`^JL75:6D?NL:[J$DMG'RM=,54N/4^2,;X56\K"G3($`_* +MENJ@8'.]BN=ZY?8(F.P":3M3\1=1\LG0<D0N.ZI=NN*WE@;G,*WUZ[<7RXDG +M/TRJ/1;*YNKD5-#BP$$PNLGK-M2>U]7>_A;T!FD7503,;_1>@/MJ;6P'8'9< +MIX,O!0H-IC@!='6N@ZEK!P5Y9=VV]O1EQ1VA:VY@GZRL7\4.N4NF])J.%0-< +M00T'X*H=8Z_3L:[YJB0"=_\`1>1_B=XG?UB[+!4FFTD8/N5]'])CJ7*OF?J? +MYY:C!Z_U*O?WKZI>XAQ,_$K-,$`R<=D(<2<G?W39,9]EVMW>222<)A!S$1[J +M2W$.S('N>5`S#Y))5BEE^J<!0:K':6ANO[)_,_ZRAI.)IM/MW12>WZJZ:T^N +MZ5P`_2[!E1=5J--:FTG!5VO;LJNEV"/U697LWU+\14):-@?E3?/+PZ:%%@T2 +M"J-PT.N''LM"V86TG`G8*"G2PXD*6<D4:S(DJE7#9U#9:UQ2!]BJ=2FT/,B< +M_1%4J5N7NSM*DKTFTV$#`.%:)8P>F>Y"J7+BYQ(!QL@Q^L-F2(CW7-R/XL@R +M#,1WRNCZXXMI'(F#PL7HEK1JW)J57$F<`;!:Q9R:?2K1SAD>DCLM!UJ&TPP9 +M)Y[*?IC=1\M@)^FRV[7IH%*7"7.4JSABVS&V].`V4KDT=.K+2MJM94J#2YX5 +M2C:-NJWJ9Z`5!B4Z=6M7`)=H!6E3%%K`QC8`WE;#K.C2ID,:-L*O4LV:,B"4 +M5EUF-VD(6-&DJ6[MW-?#23W4894:<Y[HJM=TX.<+:Z.T?PXU3[>ZS;H$L,XA +M:70P'4!WV*J+6IT0'!5ZM`.)+R8]U?%(D845R`QDQ/NIH8]]9TMW.`5FRL6> +M6W2,#"&HWS@2[8<*WTTZJ!#>$4%:U]`[JK5MXD8^%K.!B")Y45:GJ&`)4(Y_ +MJ-$-,F)',+S/\;^B-K]/;>TZ8ULG41]5ZQU>EI:0N5\6VS;OH-PQPDACL`9V +M6;TWC=5\W/;I,$B9Y0-(@AQCV5[K5NZAU"HPA^'$01PJ+V^H&<>RW.GH,?S` +MR/2A&6Y."G<T9]1CW3L9+9!V_54*`1!@F<%,]I!'WRD`(*(N+_S'`;`Y4"9@ +MDEH'9,9#R,&.Z<M;@ZYE,UH(_,&D($))&!"FKTZ;'!M.HVH"`Z0"(/8_"B8R +M=C(]EUWX<>!^H>)KYHI,+*,P7P/\U+=08?0^BW74KHMMZ1<UHDQE37UDZUO! +M0<S0\8(/<%?4O@[P!T_HG074Z5(`Z,GDF%X+^+5B+;QC5#,`N)CZE8F5MTF- +MW4?A.C4#)!@#<@PN\\(VN14)!G<KDO"]G_(8=4!T`E>A^&[4-MVSN0O/Y+RZ +M3IO](8?,!P5VWA^A+`2,_LN4Z'3]07==$I!M`$`SN5QR;Q6Z3-.3A*X?Z8'* +M*J0%2NGR)#MEG;8*9UW')&Y5CK;W4.GD`XC*J].!=6U$\\H/&%8LM(#MQ&ZO +M4M;\>.\I&'9ESZI<3N>ZT;9A<X"%0Z6PZ0MRU8-$[+CV^E>(L6=(M'NKU)L& +M%6HZME<H`XX]EK_CSY#HTB'$Q\IZS0)QGA6J8]$(+BCZ9WG*Z:T\][47@EL$ +M2J56AK!!VC"T7T^9F<(6TAIR03^R:1R/B6Q-5FV!V7'7UJ:50M<"TSNO5;NT +M\T&`/DK#ZIT%CS,;K'DP]NG;P^;UXKS*^Z8*M,U&$XS'99CJ#V/($QL2.%Z+ +M6Z&6N=3@D$=U7'A-KGA^D_,KA<*^AA^KQDY<WT%M1M,`G<YGD+:LNE"N2X@^ +MK)"W+7H+*8$@86MT^R;3&G$RMX^+\O-Y/U/M>&%9^'62)IQRKI\.T6TSZ=^% +MNM9#X4PIE[<@CA;F$CC?)E?K@>J=`EITLW[!<5XDZ)=4*@<X%S9WS_DO<:MF +MPMG3)YPL3KO2*3V.+VM."5F^/['?Q_J;B\^\!:V513F(_39>Q>'+AM"RSVE> +M?=%Z0:5\1387$NG&5UEKYC6:#+2,0N,WOEZ/+E,X+Q1>.KL>&C2`"%P%C:ON +MO$)>[=KI_5=]U.AIZ<XXDCGX7.>'*&GJ+ZK@)G?ZJY3=C&.4QETZCI](4K=L +MB/3'Z*]:L+GB,RJE-X>0T;+9Z31)C"[O#GVOV-,-I@$94H:"XP8]U(U@#1,= +MT3609X*TY'8W2/\`-$^8C]T1<W3G!4<@SGX3I2,<G]4#WMCB4SB)[*O6>`"` +M,H%6JX.)5.L\03'ZHGN#N?DJK<56Z2B(KBH!/;]EGW575($;_HCNJS9)G?"S +M;JX`;@\PKH#=5B)$X`6=<U23B3WE'7KR<E4>HW#:=(P86Y&;=*_4:T&>RQKR +MY$$@?)"DO+K7))^ZQKZZ9)]7^15W^&-;#U.]`:>T&%RG6+AS@XD%L;$]E<ZK +M=M=K=J.!&ZPZ[JES6\NGZN)E;G'-:F-MU%$TVW=T*8&[@)]EZ!T2UM;#I0UA +MLEN9^%SUMX??;VPN2(.\^\(>I7]RZU-(/(XPLV^]FG2X>N*]:]491Z@[2,3M +M/NK'7?%3;7ISW`^K,"?9<97J&C3+G.)>>5S'B;J=2XJ>7K,-VDK>'BWEM/)Y +M)ZGZYU^ZO[FJ35(:02<K#>_5,YY.4QD&)^@,IG.$@-Q`7M^/%KD[8&0$[RQK +M@&O+\"3$0>R8`:9#OLA;^8`$F-U`='<XV'=3T##QNH&EI@@$"5/0_/B=UH:M +M(#RQ.Z*&]D%%H\IN"<;A'I'^%RJOLL@&J9V"IVK1_%/<),E77B0\S&-U7Z1^ +M=YW,K,>&I+B&MTX!*<TXI0,)5Z3S6EIE1W#KH`Z::G`K78@9[*C4C)G[E6+V +MG>53);I`506+R^:E0_"32AK/I@$:A.RI7-TQH(:`>_*T*EE2&3)/N50O*3=6 +MFFT0J.;ZW4N*N=`T9WRKG0K)CZ8].8RFZPUK7BGB5J>%J!=5;3`QW5B5O^&N +MF-ILUEGW6U492I,U&('"*U93MK8<+-ZC<&ZJ>32&.2I2(JC?XRX@1H!^ZOT; +M>C09@!!8VH8,1`W4M;TC3,E155[0ZH2!@*"Z:`PGG97"W0P[R51NG3,\JHS+ +MIH%6#GW3TZ>)`VRB<-50XDJQ18XMC^GV**HWUN#3EI(/96/#?J:6<C"?J\V[ +M=%5A:Z)`/94_#URX7;FAIR@Z,T_*&=EF=0>Y[M+0=,[K2%.K5:2_TM[*C?-# +M7P%"*XI#RH4?3JGDW9IDX)5ZFV:4++ZAJHW#7C8%%;=1P#9(5=M:GD$B5:Z6 +M^E=VW$J.[M:;7X_109?7'-\B8V'*YSJ`\RRJ0W)!X6]U\.;2ADD'NL^C95;J +MB:;&N<7!17A'COH-?S'W%*@2"XR0-\KC*E+2Z#+?HOIR\\-U*5!S*M#6'`_F +M;*\_\5_AN;FL:MHUM.<D`0!^BF].V.?&J\?C,DR$VD:1E=]<_AS?TR22"!M' +M_99MWX(ZE287"DYP'8+7LW,I^7)P-6P/MW2<!I@?57>H6%Q9U-->DYL<PJ;@ +M-]L;%6-!QK.>>45-OI=$']$0;(&?T75_AEX2K^(^LL9I(H`C4Z-PK>$WI9_" +MSP1=>).I-<ZG%NPC6[[+ZF\"^%;/H]A3H4:8:&`9"@\`^&;/HW3:="A2:T@1 +MA=93<R@WW[KE>>7*Y;1=5IM9TU^G,-*^4?Q?/F^-JH@8,9XR5]5>(;@CH]4, +MSZ297R=XOHU*WC"NYY!)J']UCZZ>.-?PI2.BFTNYE>A].IM%```+C_!EK+VQ +M]EW=M3`8T2%PR[=&QX;I@U@/<;+M;4BG2:-H"YGPQ;RX'3]ET55NEH`Q\KCD +MZXP=>I+`%3O'@-V$]RIFN&C:52O8\P;JQ?J[T:FXF=_W5#QDX:6,`,DP95RT +MK&A;:R`/JL._KNONH`?TM]UG.ZFGJ_3X;RVGZ91@-$'LMJTMB0(V5/IU+T@Q +M_9;MDP!@$+GC-O7G=!HTM+L[^RN4:)<V3QW293&J0(5NA3C<+I(\V5/0I@LV +MDCE%6;#/RSP%+1(:T>Z50R#Q[+;A8S7L()0O:3!.`K5>GG=,&R,$I$JN:+8] +M2J7K&M.`K]P2,;\3*H/IFH\N!='*;28LZM;ZG!WU1"FW#2-NRO5J$"&E1>3[ +M&=U-JJ5*#29`,<J*JW20&E7GL)$94;+<N<)G=2UN0-"E+`1O\J>FPATDJQ0M +MM+,C[IZM/&\=D`Z`:9(^JSNJ4QY1['=6*M=P<03$+,ZM<GR2)5M;QQJY^'=[ +MTJTZA5IWIHL>?R/JQ&ZTO$PZ?==8\[ISF.9I&HTXTS*\RZK6)J:P3*Z3PG?A +MMMH>^2=LKA<I?XZ>C]OUOOM9\37&FEY;")VA9W1[5P`>`02K5S2==W9=F`M+ +MI]O``(Q*J9743=,M"\@E=%84`T"1@*M8T=#0(6C1EL#=:CRV[$`V8C"*DW.> +M43&S!3NAN%I@-0"/\E$Z&A&\Z22>5#5J>F$5#7=P"55JEP:23*.O5@02%3KU +MH;$B40-:J(*SKJX&H]D]W7P1*R[NJ2-4[85@&]KC.5F5ZQ<?S)KJOOG"S+V[ +M`;(,+<B6Z3W=T*;")"P[Z\=5<?5A/?575!!,K/NZV@:<''"?XYU7ZE=:&D#5 +M\A874KT-8XU)&.%-U2Z#"Z'`;Y.RX[Q3U@4P0'#7V:=UT\?CW2W4375R^XN? +M*I9<[Z+KO!'AT!@N+AGNO-?"G6:8ZLPW$%I<,_5>U=%O[:I8M=2<TM+>"L^> +M7>OCT>*R8[G:;J5"D+8LC`&%PGB&B*1/EM[GMA=C?7M,L<'>I<=XDKZJ;I/! +MQV6,.W3UX<QU6YHBDZ1Z@.%Q/4JC:E<EP((*V_$5PX.(;L1W7/53KGB=U[\, +M=3;Y_DYH(`R#E)P).<E("-@3"=WYL2/JNC`=OWRG8#$YVS"<@Q,8^$PD.Q.? +MHB':#M^ZL4V[$;;J$''OQE3VSL[X5&E0>11:(=MW1^8[L[[I4"XT6D(O7V1M +M]F5?3;O=(&%!TMKC3)!$%7.HLTV3S,$JG9.#;2?ZE,?KYU6J4OJ;?9&]I&(2 +MLF$-DG)4CPA%.YIEPR85-],`&8A:-9IF(5"\:0[_`%05+MS!1C)*R;V&TRYW +M/"T[W3IP?HL7JSI],S/"JL:ZEU:??'*Z_P`(6IHVGG/$2N;Z=:FXOZ=-K,DY +M7<NI"VL0V,Q`"O42\HJ[Z]S4\JF[`W*M65JRD!OJY)2Z;;AE+5&2K3*1W=LL +MA.`:TZ2846D$R1`4U:#`&WLA<TC\PW156X=B-XQA4*Y&5=KY&WV6;>.+JF@8 +M[H(J=,N?JB)1UZNEHILF5*QH92AIU/.V5:L[+0-=;+BJ*%*R#O75R>R+I=%M +M/J0`:%I5:0TQ&>,JG1IM'4&NGE23E=MFLS^6LJXI!SR3]%NFGKI<Q'=9EW1( +MJ$PHJ&VI@TX#54ZGTZI4&IHD%;%C1DR-E>;2:1D)2.8Z!3JVKWMJ,(DX5FY- +M4U-3*9/T70"U9,EH@)5J=-E.=()^$',5+$W+@:K?HMOHW2Z5O2UAH!4EM::Z +MWFG;MPM+'EC2<++4C&ZM0IN&6C[+`O+"FYQ$#/9=)?R\XY[JA<4/23"NDKG* +M_014&IH#F\J,="I`8:%U/32R2QYP<*6M:,95D9:5FPCSCQ1X$L.JVCV5+=@> +M1AP&0O"O'_@^[\/7SFOIS2=^5R^NZENWY6!XT\,6G6NG5*->DT^GE9LLNXZX +M9ZXKY2\*]%N.K]7HVE"G)>[/LOJO\*/!MMT/HU-OE@.W)]USGX0_AU2Z/U&I +M7>`XEV">`O7Z5$4F!K1@!:WLRRW=*8(MQ)&!R@LA4O[L!OY0>%!UFMYERVWH +MB9Q*ZCPMTSR:#7$03[J;33.\74*=KT&H2-F%?*GB(,K>*JU3TEH<>_=?4OXO +MW'\/T&KG=I"^4[C57ZR]Q.SID!<LKR[83AVO@JB`T:0876TZ9!$A8O@^W#+9 +MDB)726S`ZJT3A<;RZ3MTWA>D/)!`W[+6O6CRLJMX?IBG;C"N=0,49PN.3K&; +M3J0TF8`X51[Q4K_F^B5W5TT#IF?E5+)Q<\F?F5N1<>:T.HU&LM-!,X[JETRB +M7.UD`2E>N=4](SQNKW3[?32&%QSO+Z/AQU&A94\<+5M\-`5.PI>D2`M&DP1` +MW2+FFI9=LK;*9T=YY4-%F0K=('3S\+>+SY(:0=,%3-9(DIJC2,!/!;DG*TS0 +M5:9[B%$:4L_+[S*FUY@_HA.,]ME6;BK/IDB"-R@-`,W$>RLB29V^J187?V*) +MZJYH!P@Q*B?9D'MW"O4Z+FOS]T=0"0T*4TSFV8`,G*=EKZQ`C*O!AG`D!.&! +MIWV[IK:JM6CIID\K-NM9&,GNM.[>`#E9E<@$P2LY5O#%0JAVJ7=UE=8<T&!` +M*U+]Q;3)E8%ZXU'[K%NGJ\>&V3?6H=+A.1PBZ#1N/XEK1,3]U?9;.JNT`3*Z +M;P[TAK*0<6C'LN4F[PZ^3*8SE/TRR8*'J;G=7+2T'F;):2RH!,`*[8N$\+M' +M@SR34*1!5AK2$31$<RHJCBTD#A5R3C#25#4>>\!1FJ2%#4JQ*J)*M0!BIW%8 +M@;&4-Q7);^8?"HU[@Q'=5-E=W!!PJ%W7+@3C"&ZN"2086=<5_>1/":0US7,D +MG99EY=','Z(KRO`,&%D7EP)))6I"TKRN2#J.0LFZK9,';WV3W=R).8"S:U23 +M&J2[LJQLU]=%K<&"5D=3O@*;BYT$!2=1K:)#IQE<7XJZU3:XM:2#V73#Q^R6 +MR`\3]::QI&K(D`RN'ZC>5*]Q)D@\(NIW;KBI+I@]YRJ]2A79:MN'47-I/<6M +M?!@GM*]>.,CE:BUEKI`),]UTGAOQ=?=.:&.+BP<$E<T3OV^$+26@B,JW&9=K +M,[CT]*_\[4*U,EQ+7G=9/5O$5*HPZ'9(7&EPB1@)M4#G[K,\6,=+Y\K-)[ZZ +M-6K(R"JSW9D2DT^O.1[I2"0<PMN)Z=32US=+7!_^+A!J[3["43HB>/W0[R)F +M-@@8OQIS'.4^H[Y^Z1T_[RG&?4Z8[JH=IYS]2K-&"\`X]U`(@<_"FMY#R).> +MQ5&M1@4FC*/[I6[6^0V>W)1Z&?[*;:?:'60!8NGLLSI;?->`#("T_$.EO37$ +M%4?#M-K:0,J8_7@R:#0`(V1.`DGA$\B1G=(@:<E5%:I$E9]U!<9,#Y6C7])] +MEE]1=`(`^R#+Z@YK)),E85>KYCB2W`*TNIESG\85-E#55#`,NQA6*N>%:?EU +MG7+VP-Y(72VVN]J:W`AC=IY63;TVTZE.V$`'\RZ&T=3I,T,B$J)6L+3MLI*_ +M_*$X1B"W!4%5Q<=,X4$=,'6FN'0$B[2('T*@KNTMU$[(*U[5#&',$JI38(\Q +M\DHG'S:VMQP%<Z;:_P`36#B/0TX44_2[,Z?.=)[!7*Y@:0KKF!M.&P%4J":D +M`;>Z:@A#26`*C<TRRNUY&)6I3'&TJM?M.@G.%>CMJVH#K4$%5;IDF85SI0!L +MT-XR,B)4O;416C<>P5RBR20H[2F="L._EL01UG-I#\RCMJ3Z[];YTC:4=&W? +M</+W`Z6K0ITM+0&B`LUJ(A3:&`8^%4NVFC)!QVX6FZF0.RS.J.@:>Z:&:ZH7 +MOS./9*JS6R-_A2NHZQ,9Y1T$`'L56637I.8Z1A7^D5#<,\MYDH.HTP6$ +M90]#FC7$P!*"Q=6]2W,\*"Y<W0&-(DK0\27-.C8$C>,+"\+"K?76MTZ0>5G3 +M5='T2S;3M-3ADH[VIY5N]^TA:=*C%O`.0,!9'7V'0VF.5*U%/PS9&ZO?.>WG +M"[VWI>70T1$+&\.6C;>FUVDR5T$Q0D;PIIJ/)_\`Q`W?E=&J`.$EI'[+YPZ: +M[7U02`2797N?_B7NG-LW-:?Z<_<+PCP\[7U8-``),R.5PO-KT83AZEX<<T6[ +M<1[%=#TTS7;_`'6!TBGY=LW$1M/*W^@4]=9L'E<=K([GHS!_#C&3PFZV0R@< +M*?HC?Y#1F54\6U`RD1@#E8=(YSJ5P<F9*KVM=S*9(E5+^MKJ;DJ(UW0&,6 +MLOXQV\./M6_TX><\8.ZZ"TM"&3DK'\,4R6M>=B>5VMM1::(@-&-UY^Z^A;ZS +M2I:4X;C4>,J[2IG$H&L+2,`_"L,!C,$+>G*U-0:T>DA3M#1@'=5Z32!NI6!S +M7;Y6XYT;FP9,$(G`8(&$6B6Y.R"H9(`B$9TK5B0XZ1(0@@L@;GA2O;/Y1LH@ +M-+P)E&]"#2!WGE'0G,D_(34LMC*EIB0!QPC-@3JX$DIPP1$0C+=3_;A&&0-I +M[^R)I$ZE@&=E6N7.#?=7GDAA`5"Y>.5;-$FU"YJ:R1"J5`T?"NUV:C,*M78` +MTR1LN==\69U&'`MGCA8E>A#IW6S>&'23\++NWZG:0L5WQXB]X<LYJ:G9![+J +M*<4&<".5B^'&Z*8<<0M*XJ.J8V^5O&:CR>;R;IGD5'X,\JW9,=J!/"KVE/@[ +MA:5JS2((DJO/M-3:`U1U0`XRBJU"`H'O<79A/\0-2-.#"JUZL$PY'>5`UORL +MNYK@@@`>ZTSLKVN6YF2%G7%<:3!37=8Y=B>\K-N:I</3B-U8EIKFMJ?^;'.% +M0O+H#`A#?W6@&0%B7U\03.5J326I;^[&3(6+>79#LE#>7;B<9G8=U3J@EI&O +M'<IRR&I6+X("I7UPUE,D^G$RBNKC^'9ZX=I_5<IXFZN3,$@0<+>&-M+0^)^K +MM;2=H=$#$%>>]5NG7%1SG$F3DA2]:OJM9Y`<8[`K+)).1^J]F&,QCC>:=P`X +M$_=*<:9D'B=D!'J.)^J>9SO\+89S=($[;E)PDDZ<I.)D"`?C9"23/MOE$%IE +MIS'L$(B<A*`&P/U*9TEW,!11/'JQ,)LANVW=,79A,?S$`G'?E$(N;IR"2=BF +M;,X!]LI.P!$CY14ZCJ=5M0.<2PR#G=`)$',CME/`.VI7>J]6O^H4:-*[J@TZ +M,^6QM-K`V=\-`[*@V0Z)(![JB5KCI@R/E34!/)4+7#<3CLI:3FSN?\E4;EJ/ +M_3MWV[*2/]PH[8?R&R\C&R.!_P#(FF]?X^Q_$MQ3/3G2HN@U*?D@2$7BVSI' +MISGM,$]I5+H%G4\D'S2.<A3"SEX,ITW6@.$@X"3V@^K95F4[FF/\34?\20V* +MC?JM=],GN0TM6+U4AK9!'NM6[N*>@N!$+F^MWU+\C#K)]U-#/N#JJ%Q=Z1[I +M^A_S*YJ$'2W8JJYEQ6<*;6D:CL970](LQ3<VC'I&^%J<%6;*S;5)KN!#CM[* +M:W;5H5`720KUK3U,T-`@*T^U8RD)`^JR(FW#31P<E"X-U9._NJ]>@X.EAV0T +MZ[FXJCW!14M0MY.RSKVKYCO+;L-U)=73?RM,RH&-QI&7%`]I0=7J"DP>GDKI +M+2W;;VX8`H>B6;:%#(EQY6@X2PJ-2*M>?RCE4Z@(82095YXSN20J5T2!IDF5 +M4I4&R-7U073&FD3P5-;M'EQ&WNBK,UL)[)2#Z'#J43E6*](YDJKT0AM9S8V. +MRT;AL.]7=2K$=)K0R20$U*FZXJ<Z0A8QU:J&M.!N5K6ENVBV.%%D*G1:QI:, +M#E$UA&2I`W&221NFJD-9`)^4:5[AX:R3@']%D5CY]<O$84_5:Y)+&DGA16M, +M@#NFD/2:-(VD80WS&M];3A3R&"2Y9G6[VFR@X`B?9-)M#5J!]73/PHV`"Z9' +M)6+;7U6I<G1)"U.EMK7%X-4Z6JT6O$6A])M,NEQ6EX-L&T:37$1*QFT7W?5M +M,^AJ[?HMJ:=%K3@#99:BPZFW0%B]58']1IL70560#G]%S5]6/_%&9B"LZ;=3 +M96X%L-+MDGU"UCFN_53=-=JMAO$+*Z[<BC2>[4`(W1?CPO\`\2ET"7-Q!;S] +M%XYX5<:O56D.'I(R!$;KO_\`Q#]0=7N@`8D',_"X?P#;/-1U:K^7G=>?\UZL +M9_&/3[*NT6S079CE=7X/+7U&D@#A<1T>7,:!!^5WW@JU.L%IDKS^UJR.\Z/1 +M!I@Z<+G_`!^2!Z=EUO3:99;\97)>/P"3)V"-1P=S4_G<GV5WIU`U:D`@E8]R +MYQN`ULR2NK\,VYTZM..ZQY;\>O\`2X\[=%T2T+*;=+,<0MZU<ZG`,_!4/1*0 +M;2:'85^LU@!=(GN"N>,^O3E=W14BW?96:5-I;@XW5!CS/$!7K=W8;KHYU/2P +M(($*2!EW/""D,"<^RD<<;+;G]1ZCO&$+SF2/U1@-Q*BN,-#P-E&H=VV9RHW4 +MM<D1*!E36_1ME6'4W-9C9NY3M>D`8YN)Q[JRP>D2HHU1J"FI.]7J&.R%$/4R +M9",-T-R@!C\F`FJO])@E(Q8CK/R2/LJ-:2(W5MQ#B9.ZJ.#G/ALD]E+6\8B< +M#"S^HOAI,&0M&Y):V'`A9/4)<TQMW7.UVQC+O'G2=1Y5.V::UR/?=3=0+0T^ +MJ3PFZ+2.L%W&5,9MKRY>N+;M@&4H!5BW.NIL<*M1:Z!$96E84QB5UKYN]K=I +M1!9)*M1I;*%C6L:-_IRFJF>R@"L\:H)^ZK5ZH:./E-7J`'*S+NX&HYF58E-? +MW!+3GA9-:O+LE27-=VHQ^JSKBHW(QE73-I[ROS)$>ZRKVX#?ZL=D=]<-ILR= +MN5B=1NY80TA;D8M0]2NI=^;`637K%YTS`15R:CC+C(Y[(6T);!&(A3:(:C`U +MNJ<_*J7-0MIR,&)5RY#:5-V#LL3J-UIEI]..=U9RU&5UR](IG5L)S*\]\2]1 +M?5K.#2<]N5O>+NJ-\WRZ;I:9!65UWH%RSI+.JM:31(RX<9A>OQX^O;CEERYH +MO<Z>?J@?^:<=MT>`=L]Y0`QOW[KLAC$>_P`I?E;`S\%(EG<?=(``R0JAA^8P +M3('?(3.U'GY`2)S![1A(D!T#;E1=FDG8%)TET@QV3@#(!3-@NB2@88,B4B0T +MXR"E`)(2<`<3@(!(+0'$'.<IHSZ=65;K6[J5A0KBM3?3KET-:X$M((F1N-PJ +MP@0-D0),';]4IF.W9.UH!U3OA.UK1I=P>90)CHVWVA6*1(=C]5'+<F0`>RGH +M#U#V*HUK:J]M!HEN.Z/SJG_3]D%`@T@8E'([+6XV^TO%;0>F.'^PL_P[_P`L +M"9'RM/Q.#_PJH0=@L7PNZ*4#)4P^OG9]1T8P)$0HZK&/&6S*.EJ\J>.%#=7` +MITMP(5L3;-ZI19&D$_`*P+FA3IOTM9)]UJ7UT^L_2P$D<J&G:O=#W-CM*2&U +M3IE'37#RPN=L`5T5A9.\N7_F/94K2W)JA[!^5;-J7$!L`'=7OI!VU,4\%N%) +M=/UB&YCL4]2?Z5`"6`EVZRU$=0P!C"SK]S9CM^JNUZH#<C99[YJ522W`053; +MAK"XSJ5WH-K48_S:[3DX4G3K9UU<`D>@+H:5"F*`;IA/^+"H%I9C=$\>G8@' +ME0U*;Z1EFW924ZP>!J])45&]AQ`^0LN^<-8CNM>K_P`LDDK'O/\`F'4>58E3 +MVAU`"9]U:`#V2852S,F&F%?8V&^RM2*MF!2O(F)*T;SUO;39,K)NWZ;IND[E +M=!TBTEK:KSD]U*U!]/M6TJ7N5<#0/=$RF!Z3DI3&_P!U&P/.D&52O:H8UQ)B +M%9KOWW"Q>HW&I^C[HBO/F/UN[\J5CS(:P%T]DK:B:D3^5:-M2938`&B?=$4* +MEO4=3+G'3[+"Z_;,;2.9]I74=0(93);V7*]5_FG1).5-+M1Z;;AL0T">0MNU +MJ,M*!U"'.V4-E0#&C4,!,VF;R_:&Y:-RKIEJ^&K5AJ^:3))77V09Y>.%D='L +M138(PMRC1(9B%ETQB&](;;N)/RN=KVIJ%U4#(X6QUA[F4RW,E4@1Y!EN_*G% +M6M3IU;18YSA<IXTO/-!IL.85]U_IHN8/A<_U:LUE&I5J?F(P25G*Z;QCPO\` +M%*SK7G664=XSN)51EHVPLFTJ;@71F>2NLZY2:^^?7<`3Q(6#?AKZ[7'U0?C" +M\-RWV]V/4C0\-TJH8'O81)WG=>K?A_1+@WT[KSCHM>E6+*;-Y7K?@&U#*32> +M5F,]UV5*D!:ZH'RN%\?,+M1G`"]#T`6A/ML%PGCD-%&J=.S5:L>;63!5ZAQN +MO0.@6[6T6X_1<+T"GYG5"\#E>D>';9U>JRBW!)A<,KNOH>''UQ=/TNQ8ZT#M +M)(.9"H79T5BSCW76T>D5+?I[@VL-31D+D>I:?XHNR(V&RU9K289>UIJ>'#.Z +MNVT-<`-E0H/$B2/;*M4G<R5N0K2I.D2`$!/K/J_51T7P(G/RAJ.`F)E6LQ+5 +M)$004#WX#3E/3@Q.W;NHKCTF1PC4#Y9;5D#E7&D/9I=B51:YSR!J4P=!&K,* +M3A;-K)IC>(`3ADM47F%P``F$[7'(),)M-"B&2,PHS(:9*EIND$_NF>T8Y515 +M>9!`RBM7"F"YQ@]RGJ`#)/RH:QEQ`/PLUJ3:/K3FN#0QP)&Y"Q;L@$CLK]T0 +MT03!63U!T@Y"YY5WPFF3>>JY`X6KTNCZ!&25G6U#76!/!70V%(``Q$<PM^-Y +M?U66[I+0H00T\K1MJ$$.^\(+6E)D@?96B"T95KS0-5VD#*JUJ@9(DJ6Y>!B1 +M]5EW]S#3G*NDM1WEP?\`%,+)OJA+B2BN[B!(.^ZSZU0N<07+4C--<5)#A@E4 +M;ZLV)$3RCNZP:T@"7'8K#ZE=#45J1BU#U.X.HRX9X6-6+S4@9A25JCZM6&B? +MJK]I9`L#G?7*MUU$_P"L^VMI;J<,3N5*X"FWW&<K6\H4V0&[JC=4F@DF/HLR +M*R;TC0=9@%<)XXZ@VG_*H@ESA"ZSQ%7+R*%$R]QB%9\*_AY5OO\`U=ZPF3,% +M=/'J7;.5U-O(KSHM]7L#=&D3&1/9=YX*Z>[J7X77%G<4]3F@P7#?,KM>O=$M +M[6Q=0\H"!M"'P-2HNZ54M:;(;D1]UZM7BUXO+G[33YDN:;J-5S"`(,*)V@.Y +M!Y!V7:_B=X5NNG==N'T*+G43D$3C9<;4IO:8<WXE=7HQNYM'4:-P#CE#J/Y9 +MSV"<-.H"/NC#"''L.0II0`2V8^J9P&DNX]U(&^J=TY83Z=)D*B$`8TDD)0"I +M',>UWY7`=BA<QTP6GZJ`&-U/@<IH!.)RCTD&-N<I-V$C=$`&@XDXSA)P](WQ +M^B+)RV4@S68:/B%0#`??*>!(W&?=+DP9^J42WOW[H"C_`#^%/:'^9,[F5"(` +M!$J:V.0=O=4C8M@/)'K(1X_^0_9-;TM5%IU0C\G_`*_U3AO3[7Z\&CIM68(A +M<SX;K14=I&)73]6:76%03@A<;T9XI7;PX_U<*^/^UCYV7]74U*SA3C5E4KAK +MZQU$P.5-1.MD[\JK?URZ:;#'NM,@-2E2>0P!Q4U%M2Z<&Z2!W&$NF6)?#GB! +M[\K6IT]`A@&.%!#2HBF!3:/JK-.F*7J&8_1/38&C41G]DY(+3$**4SF/HJMS +M5;.<$J6H^*>2J%1VIW*`*I+]R@ITW5J@IM^I4E41#0,G[K4Z/9AK-1W/=%6> +MFVM.G2$1CW5MVT):0/3`3&<A12:!IRH:]`.RS!'NK5-LB=DY;`W164^JZF=- +M14;\ZQJ:/HM>[HZVD`Q*Q.IM?1)$F%8E3]-/IW@JS7N#^5@U%9O3ZA<W0V2Y +MW*V;.V#*8)R3OE6I&8^WK&NRJXXG9=3TNH/X5H)F%CW[99IB(5[H3@:0:3)4 +M:TU14$`[!"XR8!^Z1:(B("`@"0HJIU*IHHN,@%9%O3\VKJF0KG4B7U]`_52V +MM)K&B-E`5NS```"M,8`PD;I[>F`)_1*N-+)!.>$Z5E=9J0V))_LL$TV/K!V5 +ML=6]1(G/L%G/I"F`9(`[HS0W]44Z&EL:CA:OA&RTTP]PDG*PZ+?XSJ+6@$M" +M[GH=J&46B%2-/I]!H&0KS&CX06M.&A2O&)V*Q76,OJK`^N&G8*&[L@ZW.@YA +M3U&.==XV5C20R#F%F1IQK[8T[QS7C=8/C)F/*;@0NP\0T]%3S&[KCO$+@0YS +MG9A</+=1T\<Y>=^(_P"43F,96!6BJP%@D$?,K7\7GS*[H,">.5CVY<TY>(G= +M>2UZI&WX-M3_`!3!$97N/@FWBBTD+R/P%0\V[86[2O;_``G0TVS!"2G^M.Z) +M;;P5Y]^)#PSI]1Q/'"]!ZE#6%OLO+OQ?N!2L7:3GLF5:QFZYWP8QKW^:<">5 +MW?0JKZ->G4IG+3*X7P++[1KSSW7>=+#6,'JSW"XU].36.G=W'7VOL"`P,JN& +M2=ER-U4UO<00?=*K</?2T`[?=5M7K)*W<O:\N6.$PG"S1V&J/NK=(G3_`&5" +MF_\`57:#Q`<5N)8)U1S7<E$RL3APPA@.).84%5S61E0D7//(V"9[M;2!D\JJ +M*V)G*-E?'I^J;:TG80P@$?93_G;JW]EG^=#P8RK5.I(DX/LA9I;HZ#(..RGI +MTQ,QC]E6I2'`J:H[F8^%8Q1UH!WD'D*$N`&-@E4>(E15'2PD'=*2`JU),`J$ +M@G,IC(='[HZ/JQ$+%NW233,Z@3J*R;U[B[3_`(EN=1$'+868]@=<#G*PZ[U# +M]*MOZHF%LVM+`&TJ.RI`4Q$+1MZ0%.0NLFGSL[NBI-T#'^B&K4&DGMV*)[]+ +M2.ZS+^XT-,.581]1K[P0L>\KZOZI*>^N'/<<_JJGYR25IBJUP79$JO5>13)F +M25;KPUI61U&L&M):8A61+57J=Q!.5AW0=7?#3NI[ISJCHSGE6.GVLN!(@\%: +MZ9[5^GV#F&3![K4HT3I@&(4KJ6P@8]E(P!@+B`?=9:TK730UF7K!ZY<BG2=& +M8V6MU2XW.RJ]#Z2_J]WZAZ&E;D8RJO\`ASX9J=4ZBV]N&R`=BO7J-C2MK44V +ML'I'94/"EC3LJ8I,:!&\!=,ZFU]&7+T>/#5W7G\F7L\L\>6_\U\",+E/!\V_ +M4JE'(ER[_P`?4--8D`0N&L6AG7`T")*]&4X>?MI=1Z+9W=9[;FG3>U^\B5S7 +M7?PNZ#U"7TJ(I./_`,<#^R[2\?Y-9A?B0I[2K2B<'NL^NXN.5G3R"]_!>W-3 +M^7>5&CW`/]E4J?@T&"6WI/R/]%[57N*+CAID=E`74W3_`$G=3T_UT_=R>.4/ +MPFHTGDU*I<!MC_16[3P!TNA5`=3U'W`_R7J51@-,N!:%G.MP^J7D3'*>C/O: +MXRKX"Z-5;B@-7PLGK'X;6A8]U`"8P"O2J5,3D94SJ;'B"$F$/>O!^I>!ZUO. +MJ@<C<+(/AMNK14+FQW7T-=VE%TRT97/]9Z!:W#B13$QN,+4A^[8\<=X9H/;Z +M*Y!(C(5>Y\(W6DFE4#CM$_ZKONJ=/K650TZE,5*8YY"ITJ+`X.HO)_Z7*S%? +MW*\^NO#G4Z+=3[<Z8P05GU+>O2=%2FX+UP.8ZF&5&9_Q`S"AN.G=,KRVX:\] +ML$)JK^]^7DNSMM]@3LIZ.H.DC<Y(7?WOAGI+WS3>1[95&IX9I-.IKYC`3IJ> +M25D4`31:>_\`U(])[?\`\RZ*U\.,_AVS,J3_`,N4^[D=/:/K6^:W^&>R=PO/ +MVN\KK3Z9.-2]"K@&F1R5YWXCFCXA='*N/&;Q=XUT/GGRPUF\836%)KKW^8=O +MW5?I`<:#71+W;+6%J*3!4_J.ZW>W.=-"FP.,```*5S6LDG)4=D[^3)^Z:H35 +MJXV"BFJ/)_+LA,P,Q\*8LXC`[*"X=VQA18K7;H!]4A5V_EU&9.%([UO/8<RI +M+*@:U4..P,!!)TRT<YPJO:MVC3#&2`HK.D&,4SW9QV4:#!U8A.T$GX29ZMU- +M3I@-D@HIVCTB,%,=6RE:T`2>$M(,]D%2J`<1*R^MTP:;OW6R]H</A9O6:;?* +M,E!B="TMN2'#(VE=-0:2`5S5I2TUBZ>5O=-K.<P!VVRTS$E]3/E8^471Z;O* +MEIAREN&ZJ9(E+HIBH6QSLLM+]&I,,<(3W6EE,N'".K;@C6TY6?U2J:=$L,@E +M3;2G2'FW!<KU*EZA"AZ=3]&J1E7J(&%4'39I:)PHKH0P[_56(],C"KWDZ8D> +MZBL*^AMQDA4>K/#:&D8QPM#JE,MEVK*QJSG7-<,,C,>R1FM+P99E[Q4(.3RN +M[L*(`!"Q/"]IY=HR`%T=K3TP05:UBM4F@#9#6`\MW"E8"1)05VQ3<3V6'1ET +M\W!/NIW/8X`(K!@=4),;H[JUQJ'V4I&-U^D/X9SNP7FOB*N6U*K2=EZ=U8'R +M'@Q,=UY'^(#C3O*@:=UP\_3KXN].`\1UVU.H&F9WX4E&G0ITVET"?U4%_3F^ +MU5G`1QW5RQMO,+.>9]E\[*[>WIW'X=T:3M#M`B5Z[T$-;;M;,%>8?A];-8YA +MU8X"]3Z7`MQC/==<.&:;J[P6.',+Q+\=[TT:08#NX8GW7L_6'^EQ'9?.O_B+ +MOGLZA3IXC4#/U6<N>';P3>4=#X`J"ITNFX?HNYZ;4EK9`"\W_"R\+^E4A@X7 +MJ'A:C3N'?S-@)*YV;NH^A>)RF?&F<`JM4_Y@.!*T^M6].DT/ID@.X*QZKX=$ +MS/NK.*QW-Q:HN&_"M:Q&%1MX(F2IVB#Q"Z,)A5(."(]T-=X<))^@43@1L9"C +MU.U;*+(.K^3='T]PDSO[JO6<"S!0VCB'<J-?&A4IESM6!"LT9#=]\JDRN2\> +MD1W5NDX1M/96,W:Y;D@"5+4>-$!5Z3O2/V3U'?TCE;VP(.D=Y451X:=X33#9 +MSV4-2"9!6;6I#O?DG<*[TNDPTY<[?.5#T:R=>W0IC\NY*UNM6++"T#V&8QNL +MR6\KE9.'.^)G-94U,)(B%F68-2IJE%UBX=6J%L[&,*ST6V)`EIRLSFL^7+6. +MFA8LP,X^5=:0`FITFLI@`9]U%<U6M8<Y'NNCQH;ZJ&ATN'W7/]3N"3&J?JK' +M6+S=K2L@/=4?F8/NM=,6D22.$+R&MU$P0IQI:S.ZI7CX:8._=6,U5O*YSG"Q +M+]Y>XMU%7+VKDC.ZJ"GYE9;ZC-Y1V%MK()$_*V*%NUC,#Z)K*B`P#<A6Z3`# +M*Q:U(B=1&@.(D=E1OB`TAIA:-V\,81C98]^_5R""M8I:S;\O?5T-`+G;0N__ +M``VZ.ZATWS'M]3LY"YKPG84Z_5&OJD`#(!"]8Z;191Z>WRF8C?9=L)NN.=X4 +MNG6>FIJ(6@]C0PCE*SI/J58+H"O/MVLI0!PO1BXUYSX_I>H_"\_<P4^N4W'& +M5Z?^(-$&F2%YIUX>1<-K[@$+K>8X_6CXBIN?4I%DY@2M+I/36?PP<Z7%16KJ +M=YTVC6'8&5LV,"FUHCX6,>4G6E<6-$"?+'U5>[L*4$%FGW"U_*+Z\`>GVRI; +MJU_D$QF%K45PU\U]"OY>[95JVHM?0@@94G6+=SKO26R)S*&F*M!H:YDM[A7I +M$-6S-,ZL?11MI@&(RM*F!5IX<,]U6O;&HT%[:GZJ+M2KL83#CMPHGT*;S@82 +MJ6M<F=4J2A;5"(.Z49O5.D4KFBYKMB(B5R'6/#->A5UT&E_QB%Z!4IO9)()A +M05-3@<%!YY0Z=7HO]=J]I';*GI=.96U$5'!Q]LKMWTVU6!I;OP4%3I;20ZF" +M"-T''4>@-!Q&_(W4KNENI^GRI`Y74_P=1M3(EH.R3J0#3CZ(,&VLZ`H-&DCV +ME2?PE#L?NMIMO3+9+,^Q3_PU+_`?NIMMZY4,@8_5<%XWIZ.N-<=L2%UM1]RS +MTN$B,$+B_'-U5;U2DXC3ZAGMNKQ[1RF]5=Z#6<VOK`):/==+:UVW%(D[A9'A +MVG2?:MJ-.HD29Y*5:J^SK'3^4E=;^'*?XUV5''T9A6K6-/,CE9?3K@5,\E:# +MG!E.0<D*58*XJ:9R1]54>2[`F/=)S_,?OONE6BF(F2[A1H+6^8\4:>>\+6Z? +M1;28`&Y'95>EVX#0?ZB=UI-`:R.0%")`X-&Z0.=]T#3("-F7`1]4:'3W5EC2 +M6B3A!3IC$J<M``@;!"&.&X1#(_5,``?E)K0TG/T45'5',8^5G]5:?X=QV@+3 +M+#DJCUK_`-J8`GG*NASMF8N-,;E:[:?H#FXA9);HN`<"2M[ISM5$-$;*]QCZ +M.A4!I:7;@)^E@"]([IZE+3+H06A'\:W.5(TWAAO$+)ZZ6N(&)Y6M2&I@B<X" +MRNML/\8&$1\J6-%9,;H:1F%<I,&F8P2J%'S*,?X96I;%KJ0)*J`=(;$!5;LD +M[#;]%?J@!N(GY6;<NA[M]LJ*Q^MU=-,MC)PJ72:#JMZW`W_NCZF_S;O<D-.0 +MM3PK::Z^N-MH2,NGZ/;AENW2!C"U*+3&`%7L6AM.#@J[1TG!QA+'2)J5,%LB +M3"BO0/(*L4YV#OJJ]^#_``Y,94L:4>GP">,K18&N9&9*HVK"6<25(*CJ9VE9 +MI%3KMN!2<X@G$2O&_P`2@*5R\D1[KU[Q%=`6KAC(Y7C/XJ/;HJ.<[<1/W7#S +M3^+KX[_)PURQS[L:1K;/YE?LXIC><QA9%A=4F/\`+<[.\A:=*H'Z"W;W7RKQ +MR]_^/1?P\'F:)GY/T7I_3PUEO]%Y;^'E;2QDD!>@65Q-,2Z2[W7?&QBINID. +MIOD<+YN_\2E$"_%3,2/[KZ1N`'4C.<+P#_Q,VSO(+QGU#'W4R[CO^GO\F?\` +M@RZ;)D/QVE>O=#N3;N#VNC$+P[\&[HL:RGL/^R];Z;<>D!T_=<[Q:^E9MTEY +M>/N1J<Z8&W"S*KOYI,_=2L<30U`@M_55+AP\S;Z>Z3EC6EVA6!<!LKDMT>DK +M.L=P>/U5LDP%T8L2!PF2>-E'6>-/LH7EQ,;?"=C9(U<HNATX>Z,Y4[;<F%%3 +M(9L=E9HW.(.<Y"FB_P"!8QU,R1@*Q3J`C<YX3-(J20-Q$)FT7,=JX*K-6!5= +MIR83BKB3N%6#CJ+<A.YT!HV5J:35:TMRX?9`'ET"8E0U7[@_=14GN+Q'=9M: +MQCJ?#]-ULWSR#)X]E4\8=6?4I_P[1I`R24-'J1I6H!,:6[%8%W6=>7I$[NRE +MRUCJ,^O.Z:QH/N*\D3)W72=/H-I40,*/HMDVE1#W#*LUR=6(`3"</)Y<_:AK +MU&@D8D=EB=8N=#3Z@K?5KEM*F270?E<MU"Y=<5]+7$CLNCC;L%>L^I5,J2DR +M,F?D)4:$L!/Z(JKQ386SLG:!NG13X"R+UY<2-6.,JQ?7!((D;+,N:DB)W]UN +M33*O5ESR.ZM]/M3Z<2HJ#/4#"VNGL'DCNIE5D!3MRT`#,!,^6$P,JU5<`P25 +M1N3(,&.RS%JCU)Q+MU5I4#4N&R<?NKCJ+GD^G;:2M?POTCSZH?4'I77%C+B+ +M'A>TFYIM:S;V7H-"A%D,0LCI%E1H51`C*WZSPRV$8PO3C.7FO2.WI:&^D94D +M.+<]E7HUB3Z1(1U+@Z8(A=)IFN9\=40^@[&87F7B6V!H.&C9>J>*:M-UL^1Z +MEP'7J0?:O<NT<*@\)MU]&:R/RF%N6],,<'.$-`V)65X-`_AWL/!6EUJH*-H" +M)&,KEA^!._J="@XZ0TGNHG]3>^G+0(Y"P>FU?/O-&DD2MQENP4M.B0=UOCX* +M!J4KB[FJ`"=E:JVI%/+99"S[^DZC6EHD+0Z3U!C6-HUY@XRE@HU;-NN6%U,E +M0W5K=END5);\KJOX>TKT=3"V2JQL:8.G4/B5!R[NG78;K:9CA!0JOI5--PR/ +M==DZSBG`V5&\Z8'`@,!:>%(U6,/(J-P0<*&I1I%D`R#PKM?H;2=36EHY$H'] +M%!8-+W-([*HQ;FTAY+3[A%:$D:2#(4W4K*[M07AY>WW""Q>RHV8AP&0B'>!/ +MJ9'NJMU39O/Z+5#6N"SNH,TUH:@&C;!U(.C='_"#L%=M:8-NP[84GE!1T=G5 +M,%<1^)=,Z6U`V8(S]UVCW>@YA<OX_+7=/(WS_FKE/KCC>6-X.ZDZF^G3<[#@ +MMN]J-KO)X&RXOHD^:]S2!IF(^BZ"TKO-#)RN^7+G)ILV#=#-3#*M-N'.(8_' +MRJ?2ZAT@`_=7Z=%KQ),%9O"K#0P-U2-DUNPU;CS#EC3"H7KZC*C:+#(G.5I] +M&<TM#70(WRLJT;=C6M4PR)R@:6P(B%(2!@#=1HFCCA6*#6G`G"A9)<,;<*Y1 +M#?+!P$!`0V91S+?E1ZO7@!2@<@3E%.QN<F91$1S)2:2!M/LGW=//9%"]L4R2 +M8`69=-%:K$>EONK5]4'_`"FS+C&$5&AY=#(]2@YSJE,-NM0&!LM'H9#@#V5? +MKU,Z]1[[H_#]08`SE;G3-[;>F:4.,R(6=48:5Z"#`GE:E/+0X[1W5+JC)<'1 +MGNLUIKV;IHM(.1&0J/4ZI=?-;4;J]^58Z6X&V$G80LV_JM?UIK9D#=-<FVB: +M;:E(`-CY0T`ZD_3/I4U/_E@!&^F'4I&Z6$!6RS$K'ZS5\NFX`Y(CX6P7#06N +MQI7-=:>:MYY3<@&2IV54MZ1<=9,EQB5U7AV@&4FD\CA<]1+16:P8B-ETO2:G +MH:`-A"TD:](P(E6[8:HD*A2U/<,;*W2K-IMAQ`^JRZ1>D!H"K7IFB04S;NB3 +MFHU*L]KF2""#[I8NXBLY#<I[HCRSC,*2BWT*M?/+:9:3A<ZTY7Q=U`6]-Y=L +MW)7BWXA=9%U5?3#9:XXS\^R]-_$5TV]0AQ!C*\CZGT^G4OQ6>\D3@2O+^HRN +MM._@QF]U@6M"I4NVN8--/N976].M&^2(&&@'4J[:5(D#$MV"U>D.;YK&U7^D +M<!?/RG+V>VVWX<>ZCH.D@=UVW1;HN:TQD^ZY6VITQ3:X'!V70]&T!K8,X6I: +M.B8XN89[+R'_`,2EH7]"K/#3B#^Z];MJA\L'8+S[\=[7^)\-W0&?23/T*WE> +M-M^+C./#?PHN-/4&4W.V);O\+V?ICR:3#@[8"\%\"5C:^(RTNP'G'U7M_0[A +MKK>F=0R%C.:R?5EX=+;52*<']%#6J%U6&[3E5_XE@I_F`.ZCH5BZH07;]BI. +M$L;%K(:"T$_*NMAP'ZJA9$E@!*U^EVS'M+GDXX[KHY7A!;T"^I,'*.[I.8!( +MCLMRUL0(((@Y^$U_T[6PD)IGWFW-D$OP=U(Q@!X^%+>T#2K:3N$`@OSN%&JM +M6YTN!CV5BJ[T@1&%2`TM!:<'=3:G&C$B2M2L6!?I$GG<J%U<9'8(JKQY1&Q5 +M4M=J(;$0LVZ638JE4ET"2/W5GIU/S'YP/=5F4'/$Q(Y4[*O\,PR,0N>]UTLD +MG`NM5!2HEHW*;PQ;^;4;5<#,[K,O+G^.O6TF8$]UU70J'D6K3$8W6I-W3S^; +M/UQTTWD,MPP=EE]0O&4:3BXY'<JU>5M-)QD!<9XLZ@?4&N_WE=G@1=9ZJ:]< +MTVG?;*&PH_U/YRLCHS:E>^#GB1,KI&4PRD!$'NL[VMD@:C@QF/NLV\JAP(GE +M6>H513ENQ]BL>]K@N.DQ*Z2.=J"XK9/)F,%1T6>94!,Y.$J=)U1\1N5J].LF +MAHG$%+=$@;:T`#7#*T&4PVF2!PC93]$!"_5&D+';>E.]?K):!!04+<N&?OW5 +MZC:ZJDD21V6AT_IY>1`5VK-MK`U*C6-;DE=9T;IE2E:^EF8W6SX4\.M?IK5& +M9&<KIKBVH6UL1I`@+T>'"V[</)8XRRLZ_P#$@/!PM8VKS&MTA';Q4ZB8',*] +M<4F@PT\+O)S7&J]M;TVL@#=-7MV%A@*S3IP/=-7;+8(72,5Q_BZRFW>6[[0O +M/NJL>R@]CL`=UZKXAI3:N)W`.%Y_UNU\RC5])F"NL<,F;X*I,9YCBX%HG^R? +MQ=<MJM%*CM[(O#E,4K>JUW_4J%"D:_5'-W:#,;KECQ;3ZO>%K$-8'O'J//*U +MKNEI8=,XX4_3K<,H-],8E27,-89:/9:QBUS_`%!@<"1(C=/2M65[4.:WU`J> +MJR7N!R"I+-GE&!!!6F8KT65K?U-V&X**\K^8T5&.+7#A:/EM<9PJG4+1NG6W +M#AE(JWT^J]]JQQ,PBKO<<M=![*CT>L0UU([[JS6)TR#$%9BU%<W%=H@`%0'J +M88"*M+`W,I7M3\Q)W&RSKC4UA+<RJRLUNH6=:)=A5+CIMK=M\VVJ`/.T'E4B +M*51Q%003A0UZ52A%2A4<V#P5=;76DM6A>6N:E/S&C^I475!5O`'2)X6K:WUS +M4I-:7!W!;"L46VCW@7%#23RLW_"?Z&A3:*31JX1Z&_XBM"CTN@:32RLX-(QE +M%_PJG_\`,Y9Y::A_(3SRN0_$"H?*+)R=PNPJO#:)<<>RX#QK<"I7<W4-UTLV +MY1SG2G>34>3C4Y;G37%^ESI(VE<S<5=->0W'<+8Z-<#0)=[+K.6'5=-)V[;+ +M4IU&M:23@#*Q^FU6BFT@F85NM4):Q@_J.5*JU:-;5KNJ1O@`K2IVNBF'L.2% +M6L&C4UK0(`X6D'`0LJ@I5*K'^MN.ZO4:@J1ZOI*#0'M@Q]4!MW,'H)G=1II4 +M```=_E2^PPL^VN-(#*@,\K0H.8YHC,H"8R#G/U4]/#8RHFCU[X*E9@RBG,"% +M%=5@QIB22E=56L$\H+&@:K_.J_0=E*"Z=;D@UJDEQ.)5IS<;*1H`;M[).8"F +MFF%UVEZ"9Q\*ET,AMQ$E;'6J0=0=!("P^G'1=:"0KBSDZ>AMLHNH@&B9.45! +M[12;D!4^IUS4864Q)VE+`NGW#W$4VF<IKZAY5XRJ<DPI/#E$M$OB?=6/$;"& +M,J3@%9O<K4BU;N_DM/LI35TC,`%5+6LT6@?[<J"XK5:A)9L%JZC,!UZ[;0HN +M>TY/=<Z;G42\G+E)UZX?4KB@TZC.T*3I_3*KM#WR&[G"FTLVO^&>GNN'-JU& +MG/\`B73M;9V%`.J/:(WDPL2XZQ;=+Z<8(U,$+S#Q_P",>H7E1]"VJN8V<1*S +ME9.VL>>(]0ZYXWZ1TYKP:["1PTA>?^(_Q5#ZSFV@)'!7G)H]0O:DU/,>3DDR +M59L^@7-3/E.'T7.^61TF'Y=/2_$+JKJX=.Y[KUG\/NI5^J6%*K6.7"87@W_# +M:MM5;YK2!*]I_"FH&](I0=FQ^RZX9^T8RFK'H#&M;2WX6;UHL;;N).P4C[T, +M9I<%E=9KMKV[@'QC98M='EWXD=4)NGT6NVW*\PZ[U5[:[J=&-1W<<PNI_$^N +M6=6JLD[[C*\\ZG5=3K/>XX(P%X/-=W3V_I\>F\>)>YQ+B<GV6YT>Y>ZY:X +M;-./=<9TBX#JHU8@X`Q'Z+I["\8`-1DCL%X\YIZ;B[SI]R'4VDNR8$+KO#Y9 +MY()[+S7I-RX!CXQ[E=MX>NBZDT%PRDNT^.OI/:*<R8'NN3_%,BIT&NW?T\?! +M6LZ[T-TD[\2L?Q1_ZGI]1LXA==[B3M\R4G&T\759)`\R9^J]>\+70?94R"XD +M`+RKQ_1-CXKJ%HTC5(79_A[?-N+.F)F-\K.<W)7U,,IIZ`*NMH/ZJWTZ'502 +MTK';5TAH$GZK6Z&6EP)D9^5B=NG<=!8C8!I]EN=,MZ@RTYWT^RR[*`T;`KI. +MF-IFV!`AY'YETG;CG=1+3<:='\Q#@%-3NF&A+CQ$*A4=5=4T-!(G\P17-`,M +MYF5TE_#E<65U9X-T2,@E5<:HC*DN3+B>Z@=4@97.NLG"1E6&$DR=D+ZY#8#B +M/E0"K+S$QM*DHTC4=),#NEIZ_DF/<YQS[RIJ$:NQ4]C;AE4ZA)C"BZO5ITVA +MVSMOHL7=:FMZ7*-:FREZB``,E<[XAZA2UN93=SQRJW5>J"G3=+_JL7I51W4^ +MK-`)T3_=+>$O\>:ZCPA;&I7\Y^Q/^2[#S0R@&@[+-Z70IVMH-,`ANZK=0OO+ +MGU+IC-3E\WR9^]V;Q%U5M*FYH<N1NWONJ^K<'A-XHOO-N"UCIDI^BO$AKAQ, +MJ^WQCU^M/I5NVFP.(C"L7ER&M(!V"`U6,I`A974;L:B&D%;QC&5V:_NYD$C] +MUGL:^M5`&)/='2I/N*L@8[+5Z;9.:YIE,LM+,!=/L88#RM*E;Z&Z8YF5/;T( +M:V.%8<R&9"Y[VUI3\LZ829;N>\`*ZRE+HCZJW;6_J`T_*"O:V<1V72^&>F>9 +M5#W``*#IMGYE1K0,=EV71K-M"DT@?HNOCP]JSGEJ+5NQMM:@8!`63UBO4J4W +M!H^5LUJ>OTX`*I=1IT:5N[5!@+WS\1Y<O]871VN_B"\X([K0KO/F=_=1=+`- +M1Y`D&5.`'5H4Q^I4E`%S=TJ]/TE6*;(`$H*NQ$+I&*P.O,U6[P-X7#7].75F +MQ.Z]!ZW3BV<>X7$W0:+FJUP,96_CCDXJ_N'6=2HUN)G`*M>&:?F-\\@R3.57 +MZ_08Z_,@Y*Z+P?:4VVX:1*F?%3&?5AE9K:<.!P%!7J-,\8D3B5JW-*E!!8/A +M9UU;4RTC;L0K"L]P!=B-U/1I8"@J4*U)X+3J:%8M:S7$-?A#0].E\#`'9'5` +M=0@C=&\LQD05%</:QDS]$&'6?_"7VHGTDPK=6NVI1U-S.5G>)'!S-;-Y5#IU +M>Y?3+6C9+J4DW&N\-R7X:JM:M2:XR=DS:5>H`'NW3U+*B!ZQJGA38I7-:B>! +M"EL_+J"!D)7EC0\LPU4J5LZF^:57(&`@NNM?(JBHT0KU+16H9RY4@;A]`-D$ +MC*&UN*E"IZV$`*&FM1;IIALG"*/^IR"E>TC3!T%%_&4O\!472[U2MIH$`K@^ +MN4Q6O7@977]5JM;0).ZY&Y9I>^N2<[+KIRC&N+:F:+B2"6\!0=*<&W$.P.$] +MPZN*C]/Y">55:]S;C!@<*XI796-;32&95_IKWU;@N)PU<[T^M-O'*VNAU)8& +M\G<K5'3V0T4M<Y5RF[DR3[*A;N`IM;(GLK=`^H&,+-(O6YD`@25:9I)@JK:` +M:I"L`D/S!E9:AZE"F\2!!4;15H.D$Z58IR?=3:06YB44UE7:YL..5)=W#:;/ +M2<E4;MC:3"YF'*'I_F/J!]PTZ9VE/^B_9T'UJ@JU!(!Q*U&M],`0$%L6%@TG +M"E$`*::$T`X)PG<`&Y*>DV3V")PD^R"C?-+Z3MX7,OTT^H$KK+K\D@;^ZY7K +M32V]R2)/9)Q4O32M"^Y(IM..5IMM:;*>1J57H3`R@T@[K5()8>ZMF^R*%DT, +MN=(Q[*WUNCYG321N%6J?RKH%:<"O9EL[A9O,:G;`Z.36_EDX:CZ[<LM+<AN^ +MP4+'&RO*C!R56\NIU&_TD$M!W5[FV;WI'T#IK[NY_B:HD$SE:O6:].UMO+80 +M"!$A:#13M+04J;1('"S+BQ==-<YP.5G*Z61QW417OJSJ+0XR?NAZ?X(;6KBK +M7:3.5U%'I[+>K(`!F,K4L<;F5R_;WVU/XL3IWA"RI``4FS\+5H>'K9@@4FX] +MEL6WE@"",JVQK2TA:](UNO)_Q(L*5N_T-`@RM7\*+F:;:,F1PG_%>AZ-0V!6 +M3^&-P*75=&I3QW5,IN/4KJV+Z7R%R_B?S[2@_1+AMNNXM&"K;-/$;K'\16#: +MM-P(A7+A9'SKX\>^O?U'N$9WW7#=;#R2X&1PO3_Q=L76E>H^F/LO+ZC_`#[@ +MAP).T+Y^<YV]_@Z#T(-%4FH1)VSLMVP<VG<M]8+1F8C*S+"S+JL.,=L;(NHV +MM:B\/F9P#/\`9<,N:]'%^NKI]19J:UF3MA='T+J9IM`U9[+A^A4`RD'.<-16 +MYTFK-8,&0#NN?MJL:=Q2NGW#06DRK%7U6A8YVX63TZLT-`D"%:JUGD0W]%TE +M'CGXW='>ZN^YI-<2#Q]5RG@WKU?IMTUCCI#=]2]\ZWT:AU2B6U`TDC*\T\8_ +MAM7:Y]>T'N!G_):QS]?XY=/5AE,HZ'P_U^VZA38#5:'GW78]&K-#&D.'W7S[ +M1I]6Z-7TO%0:>#*ZKPQXVK47,96+H&#J)3+#[B]>%^/?.C515J-#CCY704JX +MIT8IN.<$+RGPSXE9<L:^E6S\KLNC]3J5ZC==01[%8EC6>-[=[TS3_#AY:-,2 +M5F=>O&"F]K#`*O65]19TUI;49$>J2N-Z_?\`G7E3089.%TO$>;#'VR-6NQD< +MJM5N!)@JK4J9&=U&YY7.UZIC%VE5.J,Y5NC<BDW.5DBX:R"@NNHT:5$N>0/A +M,=UG*1KWG5&`_F((&`L#K76&,8Y]2J,=RN7\5^*[>W+A1,N7+VESU'Q!?AFA +MY8XYB``EXYJ=3<=)4ZG6ZI?BA2RR8*[WP;T@6U-M5P`<<B53\%>%Z5G;TZM1 +MGJC)*W[RY%NT-;B"LXS?->'S>7VXC4JUPRE!VC9<AXCZE%TYC3[0KG5^J:+, +MP<A<7U&Y?7K/<Z<G"ZY7AY\9ROEOGUFOU3E:UFQE*FTD[+%Z54&C)DA7A7JU +M7>2P$SRIA/M,N>(LW=X#+&9/R@LNG5[BL'%KH/RM+H?1'O<*E5H]Y746=G1I +M,#6M'9:N=O$)AID=.Z2&4Q(`*T*%DUIVA7]#)`#83N89VA8_ZJLVFUH['LB% +M(N$$85AE(`3^Z.DT:M/Z*[-(K>C#@%=H4X(`&2DUK6>H[K4\.VKKBY#W#!6L +M>6<N&IX:L"&M>YJZ*BSTP1@)NG6X92#1B%.88W,+W^/'4>;*[0W!#:1("YKK +M]9SY:"M?JURUK"-6.RYVX<:UQ`[KK>(Y]KG2:1;;22K-%DGOE*VIAEL`,'E6 +M;>F/S'/LIC.$O9]):T#90U`(.5<+?;"@N&@C"Z1BLKJ4&@X?NN*ZG2!OGEHE +M=O?L_E.7(WC)OG'&ZU\<[VXCQ/1(N-78R5I^%:X#6Y/O*C\749:\Q$<JCX3K +M?S=#G;8^5<^F,>W77;0YD@JE4;(B<JZ1KI"56<R'_E)455#3EA'NA_A*;S,` +M?"LN8-4@*5C`!@A15!]CZ?SG[J"O9G,N)`[K5J>QW5.],TRFD8M]0I-IN@3A +M<_3J5*%_#?R$PNDK,+CN85'J-F`TO&%=<:B3B\I:(:]D@&3RIB*9;#L$")4? +M2ZK74])&6A2UF@L@%2<K>%*M3T&?U5.YH^OS&.WX`5[4`\M)P5!4!:#!,3A5 +M%>@\TZH!_+SG9:;6-JT0[3)'*H56,+)#H/*N=+J!A%-QP5FK%BE2:*8V1^4W +MV5RG2E@(B"B\D^RFFW/WU4O86Q)=C=<]U5YIWE.@X8G(6[6:ZG2-3<KFNL^9 +M<WFMN"W==OKA.BZNUH9Z&8A<[=.;JB(SRN@OZI=3#"[(P5SW4SHJ$F(2<5.X +MU.G5`VVWVPNB\+EKJ@!G&5Q?3JY#0"0/A=7X;J"=7<8RM_4EW'5:OYD`K0LW +MS`[+$H5"XR"M6R<0T+"M:U,;#`5EIU&3F%2MWD`<CM*N4':A&T<RHU%FG^5* +MK7%*GJ=":=+"=AW5-I==W.G.AOZJ">VINNJ_F/)T\`J^ZV8]H;`$;)6S0P`- +M$0IVD3)32J['.MSI=,*];N#X(*A<T5-QGNA#7T7ZOZ?9/^JTF"?;W3._+NH[ +M:J'"`I*A&(&ZBHGM$9(7-^**0;7#\Y/*Z9QEAU;;+#\5TOY0.P[J43=!=JH- +M![8RMJBWTSLL#PW4!I@?1=#2/IV6ZS&?U)I:9A6K*N&VH+B$_4:;749B%BU[ +MAS`:<X"D_#5_(>J5&UKP^6,DK4Z9:MM;85'1J=[*MT.V:]_G5`M-C?XBN*;/ +MRA9O";#;6[[FM);CX6@;1C*4"![*]96S*3!C,)ZS6DSCZ+$YY:CF^I6T5):W +MY52E+70X8707ENTM)61=T@QVQE6+I);@1A6QKTX*HV[A$?NK5!QVU*K'*?B9 +M:5JG3G."\X\,=0?8^(*;7XET$KV3Q6UE3IKVG.%XCU.@]G67O$@,=(*Y?UR; +M[CZ-\*UVW/3J9!F0I^I6VIAYE>7_`(=^,6V[&V]P^"T1)PO3;#J=M>V^L/!) +M"ZW'?,9QRUQ7D?XRV+74G0T3*\9O^EOI52ZFV9.Q7TCX_P"DF]+BT%P.87GS +MO";J]8@LQV7B\F.WHPR]7EUC8UZ3R\M!+OT1=0#C#=,M9[KNNL=!%E4TO!PN +M>ZS;LI"8E>;R8<;=\<[:PQ7K4Z;:5$?)[+5Z+6=3:"1]5F&[IMJEI_-V0UKT +M0-#H:,0O/=[>C3LNGWTU`7GT^Q706U1E:@W3$_JO/>FW!(:[4872=-OFTPV7 +M3([[*XUF\.@MB16R<!:-1M"M1T.:#/*Q:%85:6K5$[%.RZJ,<3J=`]]UTQ%? +MK?@^QOR2:329DX'^2XCQE^';J-N^M9L+"-H_[+U#IM\:K@TO`'*OW;+>YMM# +M@""IZ\[CKCY+B^;>D=4ONB]1\BJ'-T&#)*].\'^+;>X:T.<&NCD[JKXY\(4; +MNXJ.8S29D0%Y]U/I?5.C5O,87.8W&"KN9?Y7MP\TO;W@=8\VCZ:L@C@J(W8> +M8)V]UXOTCQG=6Q%.J\^G'JV"V:?CINQ(^04N-=98])JWD'!D;)S>4VLU%T%> +M5U_'#G$N8=("H5O%5_>$TJ3WDGM_V4F%[I<OP]$\1>);2V#O5+EPW6?$M[U% +MQHVVHR<`(^C>&.K]6JZZ[BUIS!7HO@OP1:V9:^I3U.[DG_-+G)QBXY>3&=N* +M\%^#.H=6KMK7FKR]].R]:\+^&+/IM$!M,!S1(6Q:6]I9T6A@#<+.ZCU`TZA# +M7XE9U]R>7/RW/B-2YN:5&EI]H@+G^IW,DOF8V6?U7J3R]I!CZJM<W9?:@B)* +M991SF.@7M9U1VAVTRJ/4&-8V0<E,^Z!P5<Z3T^KU&H`1(7/W_+7JAZ%9W-P^ +M*;2X'LNY\.>'W@!]2G!]UL^#N@T+>@V6#;>%U=&UIM:`UHA;QW8S;)TPK6P> +MUH;IP%:IV&Q=,?9:YI@&0(]D+FM;D\K<C#.-NU@P,^^R!]$<J[5J,!@E4KJY +M8S^H)H`6-F"8/=":C*1))`]U3NKS,"?99E[6N;EXHTVNSRDT5O6%0WMZVG3< +M2V<KO>@68H4FXX7+^!>EMMZ+:K_SD<KLZ%:E3;&J%[/#A]KS^3+XNF&[*AU. +M\#&&#E0=0Z@T,(&_=9-5[[A\`E>K>G'LUS7+R7.,A1=.+7W.H$#Y3U[-Q$$+ +M0Z59-I4]3FB8WA3OAG_4]-[7O+,$MY5R@W$X*KLI@NW*M-U#&WNNC)WC&57J +MC)GA3N?@M*KW)`&#NM1*S^H-!I.7(W-/_P!<XCOLNNO3_(/=<S4IZKUXC,K5 +MZ<[VYOQ51F@Z1NN.Z56-KU@:MB5Z#XEMYH.,+SCK`-&^U@[%:LW'/JO1+7^9 +M;->T[A.ZGZN,[*KX4N6W'2Z<'40%HPX[[+#:LYF2T-D<F4`8&RK<`"57JD!T +MSNFA#5``$1*HW;FD$&%<JO`$Y5&YR_:545"WU$CCA1WC-=$A712EH)P@<P$E +MKCC@HE8%H[RKPT\D']%<JZ9@*/K%`4ZPJM.`5(8JVPJ-@'V4ZIW%:YIP[6?W +M3!K7,]RIW,#FC5B$%.F`X@&$%"K3-*KOZ2KMJP8)X37#`XG&45C^:)&%*L;% +M!W\EN>$6L]T-`M\H8E%+?\*SIMS'7#_"T-'(W6/08]@-0Y:_*VO&8_D'&9X5 +M2WJ,=TP-J-`<!A=9=[<.G/7CFN>0W:>5E==93=1@CV6SU*DQO\P+%\05)MAB +M3*L*HVE336;JTXSA=5X<J>EW^:XUSBQ[3'W70^'ZY#)X/*WWRQU7963]39!V +M6ST]P(&#E<MTNL=/YACW71=-JCR@0%&FS1=ZA&5H42-.^5DT'ZS(!$J\*P;3 +M+CVV6=+M)=UG/<*#'23N95ZRHBE2`@@\K/Z8T%YKOW=LM:@X$"3A3_524XVD +MR5,`(B%$V-X.RE9"*DIMB"5+`<R`HP/3,J1IG$J*A+32=K9LK%O4:YH)&2DU +MH."9)45>D6NUL)]PBIR)S&/=9OB6GKM25?H5P6AKL%!U5GF6C@"I2,#PP\A^ +M@KJ;=PB97(]#>&WSV.X.RW[F[93H:0X2>RVST;KO4`QOEL,E8_3Z56]N(&W= +M2/8ZXJ:1))Y6Q94*=C:`F-<96=G8+RX;:4VVU*#4/9;'1*7E6X?4&2-UC],Z +M<ZOU$W54SR`2ND`:VAI[8PN.5VMA6W4:+ZYI!XD<2K#R'`&?C*Y#K6JPN?/I +MOPXY6ST'J3+F@PEV2%TQU8U_5I56`M@Y6;?6[2"M34'>D$&5#>-:*>8(2QIS +ME;^6X[@!1MO=!C)6C<6KJ[SL`HSTQ@&1*SLTSKBJ^Y)9_2N'\9=&+*AJTF3. +M\+T6I:-9^4`:55N;!E5A%2,K&<]N6L;IXU7IU*;I`(A;OACQ3==.J-94>2S9 +M=/USPO2JM)I0#[+C.L]&KVE8RWTM*QCG<6[C,GI?0_%%EU!@8]PF,_[A;0MK +M.K3-1L`N"\-M*M>UK:V/+7!=#TGQ?=4G>75>=/O_`-ET_CFQSCTWO'?1YHOK +M"!"\?\4U88^F<0=Y7J/5?$'_`!"R\L.ES@N&ZIT2K<5'.#=1)PO+YO'KAW\7 +MDWV\SJ>8ZLY\&3M"EL];ZKJ;@`!GY787GA_RO4YD+&N.G,I7&L-+?A>:XZCU +M3RRHQ7=;T#/S`1]-ZG4J7`;J,3D2J'4V.<[,CY0V3/*)>[Z<+EZZCK-6.^Z7 +M?@4@TG/`*UZ%1M2D)$D[A>?],OG/N@ULS\G9==0J.IV8<(EWNM2\.=XK>MPQ +MFI[2/H5:97]49C]UA=*K.JB,GYY5FI=EC\DAW8JR+[).IU`XF0-^5E=7Z1;7 +ME(L<P>K*DZK=--,&23\IK*O4J.$\>ZQE_KI*X[K7X=LN-3Z(ATJI2_#6NZD& +MAH:!S.Z];MS3%LQK@)(S*FHUJ+1,1"LEZVZ3S61X_5\"%CJ=)]-H:S^H#+OE +M=3X=\&6=HYM3R?4-B0NHJ%E2Z!#>58K564P,PI9;Q:7RVK]E:6MK:M+:8!(Y +M2-^QC/Y9,MX"R;SJ;74M,RJHNV`Q*MLG#G.>URYZH75C)52[NP\ZM655O&:S +M+"<YCLLZM3>&%KB09Q*X^_QK2Q<D5-0+S*JUKC0R`X]E4N+MU(QW"CI5C7:' +M05F_E6C86C[CU9C==YX&HLIM;+0>ZY;PM2\QH;J))7:]`L:E(X^JU).TMXT[ +M'IU2F&`#$J[YX#=\++Z?:52P1)6I9](NZ[L@@+K+\<D52]$F"H*MP\MELF5O +MT?#C6MFJ8A&_IMO281HSPNL\.>7QB^3&.2J&XJ.@`Y3#IM>J9=NNG%I2!.EH +M1,H-G\L+>/Z>WMB^;\,&UZ&TP7"?E:-CT2D'`BGMW"V+>BR>,*[;AH'$+T8_ +MI\8Y9>6U4M+(TV@-=MV4E>W>6@-*O4V:L@Q[*5C`)E=ICKIC;#=T^JXYRAJ4 +M*MN=0^RZ-K`L_J3FG`[K4P9M8E2\J.=!D`=@H.J>)[?I]-IJU`/;_82\075. +MSMG/YX7E'B^[N^HO>:;"6@K>YC/;)PSMZQ>DV?X@]+J5=)KM!^O^2Z#I_7K> +M]IAU&H#.<%?*U6G5J7]2F7O8YIG!73^#_$'4>D5!3J/+V#:5G]W&W34E?1_\ +M4',`)RHZE8/V,KB/"OBVVZBQM-]0!T97327MUT7RU=$V.]>=!@A8%)Y_CG$@ +M22KO4KE[00X$++L:[7WD#E6])]-X@;-$X^B\U\5TCYSH:!!X7J75!KHG'T7G +MWBVVRXYP5J.=['^'%V^7473@?W78R8_U7G/@ZLZWZL!,:L'*]!+R:8(^\[K' +M^-"J.`;D*E<D:L%25GD#=5JIY*NA'6+B,C?@*![1&0IBX.RW<;!!IDYWY01! +MQ@B,)XU-@%3>3Z9E`69G909O5:6J@[.%1Z82&.89QMA:O48-$\@<+&L"16>$ +MO42?5DAAV'R(2:P`AP">F`XR1A3M8W3@04%&YSB)16M,@SIW4KZ<UM)D?"FI +M4BR6G'92D6*#1Y39(E%#>X2;HC;]4O3V_59TZ.:94'4>JN8XC0P_=#U6A2I5 +M2`0.T*#I3?(NJM7,%1]7>XN:^<NS,KMJ<//]9G4*9`QD%8'5Z(#20=MPNGNO +M5;SB=Y6!=L<*CIR2=DJN:NJC)]6Q.RV/#]0TZ,D@SD_=9'6&:+B>"5?Z0X:0 +MP5/:>ZU.F:ZBP?',+H>DW$4XQ\KDK*J`X;SW*W>G58@DXC9(O;KK!P(&=QDJ +M6O4#M-!I!)W6=T^J74QZN%/T]X?=NJ$&!LI81OV+6M8!V5ZG^2(*SK)PF!`5 +MZF^!NHTM429W*EIB8[*O3<)B=U9;@"%%3,_+`W4C6X'WE14\22I9$1.%%/F, +M#/RBI@_U94-2LVGDN`4)OJ0$`?571M8KVQ)U,*@KUBRF14G'*=G46:=L+/ZK +M<NN&:*;9E/4VPK:JYO5ZK@#"T#7?7N!3&RDL.FM:34K'?DJ*Y=3;<AEL-3AV +M4EX9URW["A3I4\Y="N4[2I49KJ?EWA#X=LGZ&UJ_(E;59H%.`V`LWGIN37:C +MTUA!(C'"NENH22`%%0`8X@_='4JRW2"#*QC-W:3MG=5Z>+UODM@CNL=UG<]) +MKB"[RUV/3Z$`N</S)NI6=.YH%K@#'W4LU?:.LFYJJ/3;ME2B"")[*2X(JPT; +M$K%(JV%=S7M.DGW6CTVX:^H"3LNDLRG#.M7E?I46,IP<J&XI`;`*SJ!`A/ID +M=Y4TTRZ](&<9[JM5ID&2`MA]$OVG*J5J,&#/LH,]S/0!&#RJ?4NDT+AGJ:(* +MU:U.)$%`YL".`LW&7M97%]8\*T:C"YC1/LN.ZQT6O:53#,-)7L7EEPP)"S.K +M]+94!=IB=UROCUTW,M]O)J3:E%^DL,!;_1ZC'LBH`#O*Z#_@%.LXZFJG>>'Z +MM&KJI20F[]2R?%&_Z?0N*9.D+E^K=!8ZF][6R`<GLNW?9W%)H#ME5O*#VV[Z +M5,"'X=A8N,R[:F6GDO4^E>K2UNTJK=='<:<AI!7=WO2*QJ'33+IWPH+NV<RE +MIJ4B#W(7&>&?EV_=KA[*W=1J@D!L8GNM6ZZEHH"'Y'=:0L*=1I&`%G]5Z:#3 +M);&3O"YY>*QN>297E?Z)>NI40YQ;!&X4M[=MK/:01)]]ED68<RB*;C):,[J& +MO5J4ZX:""TXP5PO'#K&C4J^:[3J,3O*N6E44-.?JL>G5`:'2`!O/*EI5W5'[ +MRUJQMN.CI7CG$MG"G_B(GU3.ZR*%9E%AAPF%4N;\@N>"M^Q&ZRZ:VO@SW17E +M?73UMW/'9<C_`![G7,AYS[K09?.--H:<_NI<MQ=:37-4AQ<#OPJ]*N[SR2X^ +MR@N*SG"2`0/=5*M<"H2TG*YMR.@L+L.J-:YVVZ;KU;R6BHT$25SM*^%*LQY= +M$')!70731=V!<001LDE6\=L*XJ><]KFY]N5IV5`LM]>K$8PL[I]J\7D%OY<# +M*ZNTL:E2ES'*LPW>&<LI(+PV'4ZP=.^R]6\%61NV!SMB/\UR/AGPW5K!L-7I +M_@WIE>SI!KFQ`V^Z]7B\4MU7G\GDNN&_TKIE*E3:"`5JQ1H4Y;I4%K3?H#LA +M!>M<&Y)7OP\>./3S7*U6N[MU1Y:W;N%4KU''!XW*FH#+DSK6K5K:H,+>^&5< +M9,P$3`XG`6C0Z<XMET_57:'3F-W&>RD&71I.DR,*W3MW2M-EDT$G=2MMVZ<? +M9:D%!E)P;G*)C#VA:'DC3(2%$1(51FW>IE/98=[<>6"3]ET'5"&4\[E<CXAJ +M[M89DK7QBN7\47=2YK.IC8'[)>'NGVE>V=J:-495^WZ9K::CQ^9+H-D:5Y4` +M/I/"X>3^4W6<IIR'5/`M.OU5]>B(U'98G7/#%U9G#-0!WA>ULLAIU-/Z*M=] +M/;5:6/:#VE9GBUS&Y>-/":1K6=>6RQS5VW@OQFZ@YEO>.G&Y4GC7PN&36H,@ +M@SA<!U!IH52UP+7-,;K>&5Q,IM[O5JVO5;'72(DB5R5RVM9=3)$Q*X_PCXMK +M=,K>35J33(@2=EWEA=VW5XJ4RUQB=_\`?9=]RS;EK5%_Q!M1FEXAWV7.^)F- +MJ,>=,@G=;/7K(T3YC20?98EW7<:#V.`U'&1LND<LHY*UJ?P_4@X8@XRN_MZQ +MJV;'-=DCNO.NI_R[N1O*ZGP_=N=9MU'("EG*R\-USCR?LH*CAM.$#'^8-SE( +MR'&(4:`0!ZN5+3F-DWECVD^ZD9@94#U!#1F57KN]/8\*U5;Z0[,JA7=G?<]U +M8BM=D&GI)_18ML?+O7C43/9;%T<.))E8E0D7Q[)>D:=(2V=X[*3;`5>W=``" +MLTFF>9]U%-1:#5]0(A3/`!E$QL"2<]D-P0,_HHJ6F\!@&4_F#W4+3Z1ZH]D\ +M_P#6HUIS=9WH;3(`,969U!AT$QE2U;DFLZH1`.TJM<UBYLR"5VTX(:A(H_F^ +MBS;RF7DN=PKM=SM!XGA4ZHFE,PI5<MUUI;7#G3I!P0=DW2ZCVB7MD'^J5<ZQ +M2Q,3RJ5H#5I.#I`&V=EJ=,ULT*Q#P2[!'!716%4:6DE<9:5=/I+7XY*Z+IUP +M7TFB=MH*I+RZNA<%E(0Z0!PM?I`TVV3NN5H5XIM'O]UTE@_^0WX4L5NV3\9S +M]5I6[NZP[6J`X0?JM2SJ:FR)[Y4I&A2_.3E66.TA5:3I8`%-3)U1*C46J9Q( +M0WEVRA1DD!)BYS\0J%[5LV_P9(/LL7*8\UJ3?#8I5*%4:GU9!15KNPH`RYI7 +MF-!_B*D-&A_;A07=MX@N`Z7.SVA7W\?Y/V\^GH%]XAZ52!UO:`-LE8UYXZZ; +M2D4(<?:?\ES'2/P\ZO?U/.O*[P#F%UG1/PVM*+PZOZOF?\UC]Z7^N+7[6O[5 +MF#Q/?]1J1286TW<E=KX*M*9#:CQJ<X<I7G0+2TZ=_)IAL)>&:S:;M$P1A:QM +MR_LSE).G;68``;$1PIZT"F52LGZF`RI[JJ'-#1E,NEVJ5ZFFF23NI.E4C4=J +M>=ME'6HZR)..RO\`3@&P,=LK&*XS2]28(P43FM.WZI,&(!!^JD:.\?=:;C(Z +MYTYMQ2/^+VP%SEN]UG<EE21P%V]0!P(,$+"\1=+;4I&HQN1V7/\`K=Q;-\4U +MI=,<T>K=7*+VD#..,KF;-[J=4TW...Y6Q;O)8,KKVQTTP6G8P.RCJL;"@IBI +M.ZE.N((6:T@K4L3&ZJNIGX6B[20,;J)P;R/NH*@!&!A#6IMJ@#WW5I],3,?9 +M`8;N84[X7I49;,INGGNF%!M5T$81N>:C](`5R@QK&#W4OX(R.H=/%1D:<+'J +M]/'FZ=/LNV\K53P%5J6+7/U1NL7%K;F[;HM$PXLRL[Q'X=HUJ9T4Q)W@+O:- +MG@`C"CO;!I&V%+A%V\AN/"M1C"6@_*Y?K?3*M'4T3\+W>ZLV"@06CZKS/QI0 +M\JY=%,@$]EBX-3)Y6\/9=%A#AGE-6B"8,CLNDONF-J.+].%B7ED6/+73'[KQ +MY^/5>G'/;+\XNJN9I<X*Y2,-D8CA3-M&ADEH'>!NJX8]I=`7++#3I,]E5N7; +M!Q'<JA?W%1KBQI)*G;3>*IEI=K*LML*;FESV$D]UC4CK+(R+8/#C4)]+LD+6 +MIUM&F3Z>Z"[I4J,`"&G@*(.<ZEIF,)9M;EM9K7-)M$^H@E9#*IJ7!!=`'8*V +M+2I48&.;^;F5:L.F-#=9:1ODJS$]Y(:QM&U"Q]29WA=7TI](46L.\05D6-J' +M.#6%=7X:Z,0W6[)/9;PP<<\_R'IO2:=2Y#V,D'*[#H_098':-ALM7PKT9C0/ +M0<CE=OT7I3&LDMX7J\?B<,\]L;PG;-HU-#F1A=I9TF!H(`677L/+K:J8`6G8 +MM+:8D_*]6.,G#BM&H6F&C`5;J#I&1'PIG.;JPJ?4GM#9#I]ETTSM6K5*=&GY +MCR%-T[K=C&EU1I(]PN+\:]5N:5`TZ3'?(E><OZIU6E<N+*M2"=I*7+#'BIK* +M]/HAO6K,`$5&?=/_`,=LA_\`I&_=?/K.M]>B-50_=%5ZGXAB07Q]4_<\9Z9O +M?CXBL6X\YN?^I1N\46`.:K?NOGQW4NM:CYCJP^Z.C==1?E]6H([DJ_NX)<,W +MT+1\1V53`K-^ZF/6+73+7A?/G3KCJ8KRVN\`^ZWJ?5+UC`U]5T_*OOA4UE'I +M?6^L4G-TM=)'995"B;EQ>X$MW7/^'?/O*\U2=*ZI[A0H!C#^JS<O>\=+)Z]J +MM^\,864QD*'HC-%4ZOS%6J-L:KBYQGE2T:(:\F!]%G/IG2_;N](DRCTMDF<% +M0T8$P1*DDQD[+>/,%>_MJ55A8YLA>??B#X,IW=-U6U;I?/'T7HU0@C;*JW+` +MX$`*Y8S)9=/FCK?3[VQK&C589:2%K?A_XDK=*Z@UM;46$1GC_<KU#QKX8H]0 +MIN>U@U[X7E?6NBU>GW+@]A`G=<;[8UOC)[(:E#JW3&U*3VY$X*Y#Q#:/HM=$ +MS.ZS_P`.^O/L[@6E<S3(ALE=EXIM&W-AYU$#(7IPRV\^>.GDW52YU7,`@[K9 +M\*LJ7%N=#H@+.ZY1ASLPX'NM/\.G#SC3C!5RK.+7:+BD0"?96*3*[@,`+5K6 +M8.0`HV6[V]L;++2@:-P)!<$#FW#,3*U7"&B?U4%9NF85&;6J7.VP"S[JM7!] +M;/LM>Y,.R`53N2UXG2$1E?QF/5QW6=4J-=?AS7<E;%U18_\`ISW6'<6T7GI/ +MT5O236VO;N&K>)Y5VAIF)^BPPRNS.DJS:7548<W'S*RK<C21G"@N'`.V*K.O +MV@:7#]$GW%)P!F.R"VP`M">&J%CVZ!Z@G\QO<*-.$NZL^GA.`/+!=E1U634P +M/=2L:U]/2.%V<5:H095:J=0CG967`ZCC95ZS03'ZJ:5E]8I`T-``E9UFP`.: +M0/HM/JC9JM9V"IT*(:\P))25FHJC21#A\:5=L:CJ+@W8#@R%7SKCCOPK)IEU +M-N-7N$&O85IK-DF"NJL:HAN9PN#L*FF[%,SA=/T^O#1"U.5=/:UB7!H^RV;* +MI#<?J5RO3J\O,N)6]TVKKC&R6(W*-0``!6K=S7.D+-H.DB/W6@R&@`?HLUJ5 +M<:X<HJC6ED$`J"G!(_NBN*PIT_[J:VNT%X;=@@,"CL;1E:KK<T`)4*+KE^M^ +M!P%IV[(`;VV"QJ7IKI:M&-:T-T@*WH]/^JKVXSMLK;!_W6A4ZC0\RU(7+V+1 +M;]1<TCE=F]DM(7(=<I>1U`5`8DY69=9+>G4VEPQM)L<C96[`&JXE<_T>J;D1 +M&RZ;I5(LI9Y4SO.G.<I:K`&>Z&V)#O4%/5&H?Z*!PAPSE633JT:)$-RI9RJU +MLZ6@&`58:"8[(T51H&905F![()!"F+0/<CN5&1@D`945S'B#IQIN-9@(^%5Z +M==%I`<2/8KJKJF*C-+A([+E.OV+[>IYM,&%B7UO^+9MM6M5KP,R2.%;`$9Y7 +M,](O@3I(R-UMT*NH`@[KK6)5M]-I]E&ZU!R$;*DP.49]+20<]EC4K6V=>L-, +M8*I-IU:C@'#'>5HO'FU2(Y[JRVB`T#3"S_D5FV])E-V<E66,&L$%2U*()QNA +M-(@X36A("`I:36P2>55<2",8[J1E8!%70UH;`E#4:"S*A%6=M_E.'M(R<H*M +MS;![B-*Y?Q?T*G7H.<&Y/^^RZVK4`<51ZE4%1FF-UC+':[>54>A52]S(Q*Y[ +MQ7X?NJ)+@TP3_OA>P4NFN;5-7RR0[L%'U3I-.[9#J6X[+A<-NLRT\";1J4_3 +M4$_*MV?3&5R-`A>B^(_"5%E$O:T`_94/#/0CYI#FX"Q<-\6+[:YC`M_"DT-? +MUCLLWJ/3S0FF*9G9>K'IS@T4VTXGE"/#--_JJ,U'E+XI.B>2WMXG<]'N*KQ_ +M*<0I+3H=Q(:6GY*]J'A^V;Z13_15+SPZ)!8T1\+$\<VW^Y7F+NAOIM#N5/;] +M-<ZG!/U7?O\`#-6J(`PK%OX4,1IRM?MQ/>N#Z'T>+F2["[CI%G2I:-3H5YGA +M&L!+"1[PM&T\)W3J0ESI[PM8R8LY6UK]!JVK&CU`'NNCHWM!K``]H7`7W0NI +M6DF@]Q473K;KSW'4XPO1/)XYVY^N5=U>=2MV/!+Q]%/2ZM;>0#J'W7#5>C]6 +MKN#B]TCLIZ'0^JD:75'1]4_=PV>F3H[_`*]0H_\`Z1L?*CL+\WSBX&0L^S\+ +MU:@FKJ=\K>Z7T06S!N,*_N;XD/37U%>V%K<VY#J8<3W"P3X-MZU<O\IH;VC_ +M`$7;T;-K0"3)/NK#:=-K8`!4R\<R673E+3PA9,:)I-D>P_R5O_RY9-;'D-(^ +M`N@JQ*@KN<!NK/#BERKGJWAJQ+3_`"69]@LOJ'A>U+8ITQ]%U^E]3$84M*U! +M;D9*7Q8_#VKSEWA]U(D"F`HO_+UQ5J`Y#5Z3<65-PF(*SKLMH'3`,]E/V[\I +M[,KI=HVQH``>H"%;HT'U'R9,J6A2=6=J<,%:-O1#0!"WC-349O/**WHPS+8^ +MJC<P"K!G*O\`EC3@*C=RVMR,K>N&:8M+78S*1,$J:MFB#'U55\SE2<5DG.TG +MY4535F"C)$@'"9\&8*TJK5;JF2N;\3]"HW])PT#5W74%A)V0OI:FQI4N,IMX +M7UGI]QTN])@B#Z2N\\!=7;U'I9MJSO6T`>I:7CGH-.\LR]K1K&<+S[P]<U^D +M]:\IQ+6DP=USG\:MGM%OQYTS^%K/>UITN."%E>`JOE=4+"XYXE>@>)[6GU/H +M@JL&0)QRO-^AAUKXA@-YA>B_U<9V]4I`.IC!P.2HW,R5-8Q4MV$DB0AK@#(4 +MBJ58.S.P4%9TM^5;J@0>52KG!C"(I7,D20J+R-6ZO5RTX"I730(`PJB"X.#( +MGLLDLF[U`+3N7.GV673,7I(VY4O5)VO,$S_DIZ+!AT#"CI`;S$\J>FT3@J*" +MM1IO&VRK5;5IR'*XX$-R@=!,CA-$0LM:VD14PB_A:_\`\BMTP-`S">!_B4:< +M"XESH."$=$D3!D!0L)#<R/D*Q;Z@V8&Z[:<:BKR'%5JC0'YY[*U=CU856X(` +M)D2%"LZX:7W3G#@PH:K);`P?E:'E11G:52JL(>2,SA155K)'<'LK-`Z</&^P +MF%"YI#L_]U/0=K<,25>TZ)S1_$-)D&-PM.QK.:((.>5E7NJE4:YAF3$'A7K" +MIKPX3"16]87!'($KH^DUM%,$'=<10JNI51.&KH^B7(>T'5*TS766+Y=RM:W< +MV,RL#IM4$3NM:V>20I2-$U64J9<H+1C[NOJ(A@]U6K$UZXHM)CF%L6K12IM: +MP<+%_#<_*9C`Q@#>$QD&0-^Q4K#QV35#`C)*:5-:N.L$G`V5ZFXG/<K.MW28 +M5Z@9$;*BP(+8`*YSQC:N>&^4W<KI*8_EX,*I>L#ZC01)W6,HTH^&+-U"V;K! +MD[KI:+=#`J=NP`-``$*9]R&D-E8QYK&.EID'!450#5A/1JM)B4540<+I72#M +MR!LK=%V),+/8=.T^ZN4G`MXPBQ+(WWE(Q_LI-!/;'9"T0XP5&C.`TD2J74*- +M.I1+7<A6W&-S/LJEZ?4`.<%2P<?=6=:SNW56DZ25H],NPX`ZMEN7=FRM;:2! +MLN5ZA:U;*O+0=)*SC=<4RF^736U8.&_"EKU(9A8/3+T.:!^ZTC6;4<!.5NLR +MM"RICR]4F5.6>KTRH;?_`)<B!^BL4L-EWW4D:1NIR,F$!IP`K`;.=D[62X!2 +MJINIRA%"1*OE@R(`^JC-/U0.5!4%(@9PC\H1,[JP:8&#$%-H[#"FE5:E&1*J +MBW\RN`6\[+4-,QV3]/M0ZKJ*6$2T+.F*0&D;<!17'3F/`AH^RT]/&F?92AK6 +MMG$=E-1IR'7.B.?2.`0LSIO1/)=ZFC[+MNH5&Z(T_14&^HQH4])O9MF?P#`V +M7`>REHVC'0(5ZI:U'$P"FM[=]-TP5C*S>ED9]QTX%X@<\*:GT<.8"6+:L;37 +M4!<%K4K6F&Z>RSCA]:<H.D`-!TA2T.E0Z2V%TE:V;B!E)M(-`.5UF++,H],: +M6B1GW1/HMH-($>ZO5:S&LW.%F79J57P-N%9C(EY0/8VK4RR<JU2M*#698)04 +M:19$@R=U,`Z<@Y34MY7F#9:TA_0$YHTFMPW*"7!V)3OU&-)*:B<B&D-``@IG +M/(=AOV2;3/\`4EY3@XPKP:)SC&WW3EV,G]5(*9:R0/HJ=:I_,CCLLY9Z60US +M<EHP%';.-P^`FKEDP>>ZFZ-0&LOXE<YEEMK46J%#2,C*D<`T2?U15:M.F#D+ +M.O;IS_2QR[R,6FZA=ALAOZ+.%)U6KJ>,%7*-N7G4XRK+*``@<)645O1TMPV% +M*&CD*4@S`,)0"?=601D'Y_LJ74Z0@&/HKYDG!5?J(]`D[*I4=`:K<3!`4;J0 +MG"L=/&JC.T(W"#')6/\`4RXK.J4(<9"C-/@K1J"./E15&3D05L4_+$8RDQD- +MSCY5O2(E1$;@B$%2XHM<TM(!E>7_`(E]'_AKD75`$23,!>JOP")E8?B^PIWE +MBX.:"8*93<3>G,>![L7O2G4'.ES1&3[+D.J6O\)XK((_,XG]5T/@B@^TZI5I +M%IB?@)O&]H1U>C7:`?5O]5,,MXV,Y363H>GD?P=.,X&R>XVSA*P'_HVF!D!# +M=P`,K>*5!5V/"HW!,D#]%/6J0)!E4Z[B3+9515JCU<?=4[C\V3"N5R)!.%2J +MD$Y^Z(JU3Z\SLJ=O+KEQ@QRKEUAITR<*IT\S6=D_52]$7&P'1'V*D9J<[T[H +M-!C8%'0@;-GX0&[\OJ.R:F&X.K9.(G,DHBT$=CPHL.`XB92AW=&S3I$RG]/< +MJ;C3S.W=+)[JY;5!@'8\+-MWEM*-6KO"N6;IS/W7=P6KR"1IR%0O&X#!_4<J +MY6>($[*O0;YUPZI,M;@+-6'>P>3@Y5.L``2<=CW5\!KG$=N5!>4Y9EON$JL: +MH)J`D$CLI:!)<``(]U)=42*0=F?904FD.F00#L"D2Q)>M:6M#@"?CE'8.#'X +M&?V454&I4B<`<Y*>FZ'"00-B4B5IL+:A!&/E7>GW+J#X;^4\K,L7S5+85YD: +MM)C/Z*SAJNQZ+=M?3$>PRMNG<::)*XGICWTP"PB)6W:7IJU&42XQO"U6>G4= +M%8\36=C4M:VENY]UFV-1OE-`.!'[+1HN$3,+&FEEASE&X225%1@Y)4\0T&8! +M4L:!)!`"M6U0$Q]%3<,GD_*DMW:'=Y1&K2)B8A-#7OGLH#6TT9$!3V)+J>HQ +ME8S+4VK13+BJCGMJF0=BH?$UT;:UP=U1Z1<A[0=6_NIA.$C7H574G2<A:%"L +M*C1,3^BHT--294C&.9EI6W2+FKT[;?<J>BX0J=%X=$JS2QSNHTM!P`ALGW2/ +M>4+-.F!^J*0!D*:4%:&LU$!5*`-6L29@84EZ_P!):'&45C3AD]TJIF@2#V5# +MK-DVYI$`96BXP0(3.`TZ5,IM8X*X8^SN""#$JW:70\T21D2MOKG3V7#"=.RY +M.X94M;C27>F=UG&WJLY3['96E753W5JG4).-AV6!TBZ#FB7+9MWR)E;TDJVP +MR(/=3,@`S/95J!>7^IP(XQLK$<\J-G:)R#(1`<D)J8/;*D;DPI1$^F79!`4C +M:+0WW`4K&M&#NC;N,84TJK7;I:K-C3#:<[2HZK2]P&%:8T,I:8'T2K#B!RHJ +MSC'8J0R_`4EO1#R9E.A3;9NJD$@Y5@6+&Y(`^5ITJ(IT\H;EHTDA36U4J=$: +MM$*9UI2+?RH*!FI,X"LZ].Y4UNJK-I%CI`,*1E<@P>RL`->T84;J(>9[%76A +M(QP>-]E7ZA#:>#**K2=3RT_=4:M74_0\\[J\!J-)U0YF%890:!NI:+0U@&_P +MIV!H"FOR*OD-[;G=%Y`U1"LD-F>4_I@<IHVJFW`3MH-Q"LB"-N$FAF"#":$+ +M:`)V^4A;@[[#LK!+0))CZJ)U:FW=X31LWE\8"JW%BTNU$HZ]]39L9CW69?\` +M5M.&3E+A+V>^AW]M2;#IV04:[:=.&!0-K/N0"\DCWX4U*FP-RDQDZ2VWL%4U +M:SX)PCIV^@[`^ZL,\L#>041@[%:TR&FP!IGA.-_A.X`#TF4$#5NJ'?G(*$3` +M)^$SS,]PA>2UL]T!8&(S\JMU""S&2IM7V4-_`IRWZJQFGZ8TZ3&RDK$:@=H4 +M/2\-,E2UXF9P5SLX3()<")(]D#R`(*7[#*$YAP*W.E"8TX0.&9`GY4D3_4AB +M'^RHKUJ<CTR%4N:.JD0[E:#Q.1N%6O\`_EX5B5Q=>V%IU8O:/S'^Z#Q/0\SR +MGZ3W*UNI4`ZX#SIE4>OF&,`B9W4DUMF\E;PR@P#``4%TZ2<?JB#M5,`G<<*K +M=/B8(GE:G#*M4)DP<*"H9&)SPI'.!F#\@J"J=.SAW1%>OEWM[JM4#OS<=E8N +M#J]H*A<($`_=!3KM9I)DY53IP'GO),$<*Y<?D=..,*ITP.\UT']4O1%YF<1^ +MJD83$1`'NG#1,D'W'=.3+<84#.(<!!RG`[DIZ1:1/^J:L"#G"BI&_EW/V2^O +MZ*)E1FD22$7FL[E--;>/4*CJ;]1)<.%KVM21,P>RR[?3IT.SV4],NHF=Y^Z[ +M;_+RK=P]U)AP>PRKG3F>7:^K!(G*RJU7^)N:=,8:W)6L'?R2W[*::@0"PD\( +M+C\H$3/Z*5Y/E1$DJ/3.\[(TJ5VX`@[S*I!A95(G[K3J`D9:%0>#Y\:02HE5 +MVG_U;A)!`P%-J(.9]E#/_JR,R,;84]P"TSIGXE$Y%0<:;I#MSW6@Q[?S+*HE +MSJ@!&^P"M^8-@[E58W.GUG>6<K2Z('U+AU:?RX7.V58Y$D!;OABJ,@DS*UV5 +MU=A<NI.&HF%MV=TVHT9SNL&U#:@$1*O4&.9!;Q[K(Z*W,MW5RG.W985G=EK@ +MT\[Y6Q:56N`,R%*U*DJ@`2H9<TR)^JM/TO@JL]L'(E94=2Y'I870MBP_Y+3. +M!"YZDTOO6[P%T5`%M&0N67-9O;'\8--2E(_I_P!5B=&K%A,SV71==;JH'4N6 +M:UU*K.5O#BMV<.MZ96U$0>%J4CJ;PN;Z/<9`G*W;>HV`9)6S%8JLV<U'1JC` +M(3M=Z1"&I3CU`+/3HM4W9PI'/&GC"J4:P@ZC":K6!PWE4V6H5KF-X*O4QB`J +MW3Z`8TEW*M`9V69^6C%V0$;8(D'Z)B&XG=$&C<X0156M(((GA<YXEZ=K];1L +MNG.^57O*8>V"-\+-QVNW#V-1U"KI=N/==!TZZ!8)/LJ/6[!K'ZX&%5L;G2^. +MWNM2[<[-.JMZDG#L*SK$]UCV=QJY6C1>#C=-+*OL)+)E24CE5Z1ALD>TJ>B9 +M(SMP%&ED$$`;]T1_+,[**8*)YTL10T0'5YD8'=6JL0%7LBV22`K+&!SO]5EH +M]"G!E7K6F&[0@HTP8PK--H:`"Y%AW`!D2H;HPS^RF>0!G?Y5.\)TQ/NJE0V@ +M'F&45P8YP5%9_F),[JQ<4R1A94%"M!A7:3FGZY654)IU([*S0J>D=RM)%NZT +MZ3`&VZQ<&N8V6A7J$TX<#"S[9NJL7`*6+M:+](QPA_B-)DIBSDG'9`:8]\\J +M@_XKD9A+^+&5`:?J@=^`F92`=D%-HE_BS)]TOXP\%0BG\I"D,%-B2I7J$1)4 +M%057XU8*L-:`$X89SB%-BF+5Q,.<?NJUW:`$20M8#95.H0"`2%=<`+:V:*(+ +M2?NC%)VTQ[RI:0!I8.GX3GL2DG`K.;4:3#DPJ/8W.1"M$#<J-S`>$1"VYP9' +M$)V5Z9`(*9]$'X41M@#@P$1/K;O,<?*(D1CXW5*I2>T^DJ-[JH]U=C0])&-P +MJ]_4;Y<$A5Q=N!R%6NZFL:M7W59J[TUQ<V.#LK-5I$$\JMTA[?*)F5,^H"Z) +MPN<EJ7@)'I$3*0$"/JDXM/*0$N@25U:(0/E(029"<3&R=\#VQLH`>`#E4[PC +M3."%8JN),-5&[<6X,JLUD=3J,;5!,?*Q.MW-.I48UI$K9ZM0UTBXN`PN.>QP +MORTN)SS\J\:VQ]:A<!3EHX5.L_48$X/*G+O1`.0JCYUD"2K.D`[O,J"IVB.5 +M*^1&-U`_5L4$3AJV*C<V1!^BFB#(0P8@")4-J-TUVDDJOT9I-1T?NK=P?26@ +M1'NJG1!ING@_U83+HC1+0'$@9(SPA:UWY01'<<*<M'"B+PPGE`5*F!'8*.KD +MD/E2,=$$2HG3K+CO\J0(-;`]2?2S_$G#C'"6H^R-</%;%\.&J"9V6HUPTR1( +M&<&%B4*K34])(]IV6D:W\EK&B2XP(7:O*.U#]3ZS01G"T[.X!;H><^Z"@P,I +M!@R.4C0TN)&^ZSTWI>)!@`(7,(4/3K@ZB'JW4#33F55BM6U:2T`'4%GO]%:) +M(/Z+3=3BFXSNLRZ#6.)=R,+/TO2L[2ZL7N`[*\UC74X':!E5K>D#1U%NYY4U +M":9`F0>2D$%9HHUO?=*K^77,%3WC&N]>F>ZJD#3I,P$5;L7M-,ZCQN%L]`J^ +M6S5.YY7-V=3^2X@''"U.EUY8`>/=;B1WG2K@$`D_9;UE5#V@E<3T:YD!DKI+ +M&X``$E+$Z;HIAX)8`3Q+E:M0^F1G!5+I]68]2U*+@6C"SIK:W;W`C2XY/NGJ +MP&EP)4'D2-0W[H;ASVLT[GY6+56>F4O,?J$[K9HP*<3LJ'1O10]6>5/5KR=` +MY7/&;J3M!U-IKO#&G"Q.K4-!CLNGMK>*9>[<[++ZQ;R#CZJUUTQNG5?+JPZ5 +MT=A5+V@`Q]5R[V^74Y"U>E7&(E=)S&.JZBW,B)'RIW?EG*S[-X+9F58K50QD +M24TW*@OJ@;L<GCNFL&U''4Z8G9-1H&N\.=QW6A3IM:W"QW5UI.RHV!*G:X$S +MC"IFG)D'V1`/:%6EL&3@I`D_TJNVH08E2,K-,@N@*:5*,"80U!(E(/9,RC.6 +MX<IH9?4:(>PXRN5ZA3\FXD8GW7:5@'",K`Z[:C27#CE2\%Y4^FW):()6S:5@ +M1)*Y6D]S'D=BM;I]>0`=EISZ=-;U1Y6\PK5JZ3LLFRJ2)F%HT*D[%--RKP=* +M&L\!D3/U0-*&X+@WY45-8"3NM.U8/^ZSNEL<6:EJVH)B2/A9;6:;0.,A%(.$ +M&2-PD>$43^TRJMZ`*9(W5C;)A5;QTMP/F54J.Q:1)5MP!'!56RGZ*RXB5%5+ +MFE+I4+':7Z<J[6$@E4JC9=LB):S@:<3A06Y(>0"5)`TX(4-%T5HW,H+1[$2% +M%IWR84CL9P4SLA`,`@;X]T@V$1_+,(3G?ZJFS?LD`",<).$#!320`-,('#<3 +MRD02(U$)]1_[II_W*!<PJ?41D9/RKA^BI]0R.?H4B4=MFF,(G1)R906CAY6D +M.E&Z`Y(4Q)C!E-.=]TQP<[)$PJ$X1S^JC<Z793DF$$YRB$3G&2@JP3F/E$XB +M20<J(DF<JA&FPB("I]0H-T^DB2KK=P)D>RK=1ANG/U1**RHFG0])*"X:\OU! +M6*+HM1/*$9V"QC$O:G-5IR20=E+2KN&3LI7@")3M:TB0/NNF@S;@!LN3>=JF +M(2JT6N,!/2HM`01OJ!K3/[JE5.H%Q..ZM7H#1M"P.M]290IEK'"0K)MFW2KX +MEZ@RA;%K2"3[KF>G!U6H:A$F9RH^KW%:M5-1P,#Y1V5RT,R(E7.SB1B;[JV_ +M>0%`]I.VZD=7IEH@P9V4?FLF0X#W01OU<M]E&]LC;93RUSB%$\>J`0@A=CZJ +M-X`._P!U-4B%"1G,HBM<!L8,E5>D0+I\DY/=6KD0<D#'94NED,OS/)^ZF72X +M]M>L,X4)@G(W5BL0!$[Y5=\[?W1",QJ#20.?91U#J=+?DIR^&1_=1%X@D['& +MZ*E#V`;):V=D#64M(EZ6BE_C4TKP6RJ.=4`)F.ZU^D5/-O9T@Z%SMN[RP3R- +MY6OX5KZ*+]0`<YR]&GFRFG3T@-4G)]BIM&KLJ=M5)`/!PKE/5/=JPW+#OHX] +M,`^R!M6HUVEPPIJ4M.43J9>W.Y4_XI$BJP1/NL[J@T-/I$*U4:^D^!.RI]4J +M"H!3$R=PE4]L!_#"#S*CR:F&F%.&^4P-X]E6I:C7<9(XD8E/J?%QH#J<1,*G +M<MBK$1*NT7'`.GZ*.[I"-8`^B56>WT%X!C'!16-=S>25#<G0YSCL@MW%M/;= +M6,V.IZ+<D$23A=/8W&IH/*X7IMQI#9'RNBZ==MU-,_"T.WZ94=`),!;E"H"T +M&5R72KEKFC,_5=%8U`6`YCY4L)6U;/DY".YA[QA5;1QU29A6:)UU`)GY7+.< +M-;7A4;2MY<(1=+:*S]9.)5+J1)#6"<J_T2`P-DPL83:XS35T@-C@+.ZG3U`X +M6HT`MB56Z@P%NTK5CK'(]0H^H]@JMI5\NL!)W6MU.D=1QA9%>F6U)3'AG*.D +MZ;=`L!R/E60\UZX:#(Y7-VUWHI[Y6_T&IJ9YA,F5K),:VK9C6TX&X4A@;**@ +MZ1DB%)CV'PLNAJ3C)P5-3,NS*!C94C(X&%%%H8[?"B=0G,*8D:1.Z)H&TQ*: +M7:J*;QWA-JJ,<1RK;?S1PG<QA&=PIH4W5C'K"H]3+'4CW*U*M%GL5G=4HC1$ +MH5S%W2TN+FF`FMZL8E7[RV=Y9F)6/6.A\'ORF-8KHNGW'I&5L658%H]4+D[& +MKH`DX6[85P<`[JTE;U%TYD(;EY`B5#;O$?W37+QJ:)Y4^--KI##HR=^Q6G3` +M')5'I&D41C)5X`D<J-Q)_3";.F9"'5"<ND(I.(D2Y5+XB-U8)Y@*C>D:A@JI +M4]CLK#`W5E5[/##*DU2[!A9X5)5$[*K69ZIX4SW$Y`RA<)YA+5T@J,=C2J-= +MYI5I<M72"V8(*R>M4\2-PB5<H50]LSA&X[$+(LJ^1.X6BUX>T=U;$E2@F#E- +MQD)-&.4Q'ND4YC>4+R3]$VXG8)I;R@/)$(9XA,#`W3:H!$H@I/('LJO4/R8, +M'MW5C5[_`'5;J1:&AP.?96)36GY.WPI`9)4-HX&EN4^J#`<2D*)YEVZ1SNY, +M82;AI&Z!W;;H,3_FDXD&>4+B1F50G$`PA<(.^2FY]3D-0R\"9A$.YPVC/RJ- +M\[4\-/W5RI@;Y6?=NU5P-XY3XB]3;_(!S]TB0#A$`?X<0<J!KH!!68E[/5?& +MQ4;J^@`RFKNG?A5:ID:9D+H-%M]0T22)5.[ZU;T\%P^BR[NB]WY7D*A<=-UY +M=4/W3<GQ-6_4W6>O"H=%&2?99++>K<O-2N70KK+"E2=,!Q]U,6^F-*>UR_Q- +M2,'J]*FQS6!H3LLZ;J8AH4_5VS6;D8*F9I%,-VE+VDZ9=Q9-.Q`52M9N:8:Y +MRVJNDC;E0N;JR)51CNIUV<DJ!U2LTD03[K:J#!("KOIM<"8V09;[N!F1"8W3 +M8,'"MW%!E1TD"57?9-),&$Z0-6HQP`+N.ZS*3VLZFP^_=6[FSJ`#2Y8M_3K4 +MKYICG<)>J8]NJK$%N^%"20W.RH-K5O*!T\*$WE0$M+<!2:*O/=+M(43H&)@# +MW55E^#,H:]XS8X[JBTTG3N$\GN/NJU.O3+`0=T_G4^ZC3YZ-8L!#P<X"W>AN +M:VBWM/)7-5W/\QI+0X.,#NMZPK^50:<^K@B/U7HG+AG/PZ?I]1KR`=S^BU6' +M`$GZ+!Z56@@XSB5LVQ+@-UFLXK31G)4OJT@`?51")D'Z*3U&F`0LNAVL:\$N +M"RKFBX7\TY<UJUFN#:3B<X5>PHE]$U';.*E(I/K-=Z9D]U&_\Y!,8[J2[H$5 +M"]@)X@*J'Q(,[[#9)R7<7;9N"=D;Y<PP@M]1$X@<*RP?R)0C#OV`%X))4-`@ +MTSDB%H=0IP"3&!A9MJ^:1)`P4B5<MWF=1,1PM6TN-+!!E8]"HUP,">P*FM*L +M-`)6H1W71+@%C3JRNGZ;7D`2=UP'1K@!@`<NKZ;<-('JQW*U4=C0K&-P(5_I +M7J.KLN>HUVB@!,:N5T/1V_\`I@[NN&<^&]KE=@(/[(NG.#'@2F+01NHZ/HJ@ +MY2<.K?H'4T$.2O6C3)W473ZC74\%3U1(D\)6XPNJ4SJE8E^P]ETO4J3BQ8=[ +M1,%PS"R5B7#GC=Q71^':Y\@#5^JYWJ3"!($?*T.AU7LIB7+<Y8Z=E;U3H`@* +MQ3?Q*R+*L74A!_57Z#I$R5+&Y5T.,D`HV.D>RAIOYVA22`#.RC21CI.1A&3] +ME#(#2`G:??;A%2B)WD]T61B?LHVD;''PI0#&%E35`",F0LZ_C6&@Y6C4.EA) +M,?"S6M-6ZB9'=+T`KT/Y.DB5S/6;?2^=.W9=A480-IGE8O6:1F8GW4TE<W0J +M:7Z286[TNJ"X96'>TRRIQ)W*L=)N0QX!=.5J<L7AV=J[4P#9$2'7+6JIT^XI +MEDEPD[*>B[5=MC:4:CJNG@>0(_16@Z/8?*K63HH`@B5.YT`3"SIT@Y!'"37" +M(.Z`NGLG<X"(0.3E9U[.H9(SPKU4R"!B%FW%2:H$B42KML?Y??W4X@"5!0D, +M$%3[A2-!)$@`;)';;=(X$PD".<JAGF/3$K-ZN06F>RTA#L0L[K#0)D<=TB5E +MT029&ZLV]32?4HNG`Y!;';*>NW2[5)3%*T:;Q(`.Z-L]BL^UK1)<-E=H5`6^ +MGE4V+3B?T0.W_P`U(_NHW$``P44B0-DP,`2GYG2?E"3/QV*B"+LQCZ*MU*#3 +M[J5[VXB(4%[4!I20K"HK7\ASGV1"=?S[J*T=Z20$;3)F$A4T3W*8$SC]4['" +M"!PFD?EC!50GNRHW'NB>8X4;CE`_]/NHR9=(Y12W3N<(,.$Q]4`UC)A4:\&X +M:-2NDR8./94;@`W(R$O2?6I3]5'_`#59PTO+295B@[TCD?917C3(.RG255KG +M.ZK//T4UP02JM4B,GZ+:!JNE0U?R[?52$MX*BJ?EW05G_G3.YX1N#2<2FTG3 +MC[(C$ZP'><V))]U.S\C0[]$'6F36:[B<J4-'EB"E[2=(JS0.,%0_E=$?JK-1 +MH.)^JKU&@'4(A5$-4G6.Q05(R/V4E9DG&%$6DSW')05:V'C,IO3!AN2BKM^Q +M0-CR\?4HB"N1.DC[+'ZV--9KNQ6PYLS[;+*ZX/3.K961%NW>U]%IC"CN:3)P +M(!3=+<'6HD9/NBJ%PQJ6<>BH/(I%OY<_94[NU8X%TP>5>&3O!5>Z$-R95TLJ +MJRU>&@-=A/\`PU3NK--P#``#]T^O_I6--OFRL\%U,F"),9D+2MJWE46%L25D +M6]1QN00=4;85ZFXEY$@C<$8XRO5'/*.IZ74U071@\%=%T^JT;F5R/2JCF@`. +M#F]PNAZ;6AVDY@;I7GG%;K2"V8B=BI'.@1S\JO0<2R(V"L`$MC$!8KK*K=2> +M!1#`8<]7+-I9;@"1`*HN:;B_V]-,85^K+*9C'UW655(EQU?94.I4"'!S)$[K +M3:T:9,2H7L\QV<II5.QKC4&ND'NKQ+0V=7YN52J4OYA#9!.93N<^G3:UYD=E +M>V9P+J30ZF0YQ(CE8K612).-6(6W6+:EE+I$X*K.MVFF(:#"EFE[9MNXZH8V +M#/)4VKR\.,_W356.%:`2)454D3[;95EVS9IL=)NF@`.)$''NNIZ1=%S!GE<! +M85'-J`N,2<KI>F78:WTSGB5M([SIU<5+RE3F<_"[OIL-MPWO[KS+P54-QU$' +MM&?NO2*#]+!G"XY<Y).UZFZ'$<_*&I$DSLH&U1JW4Q=J:3W2QVE6^E5G!Y#X +M@+8IN!:N>MW0_!P%J6U:&Y,(W!7K)D1A9%]2(:0MUYUTYD!9G4&3(V^%FM.8 +MZC3_`)>)^JALJA#8$"%I=3H^@[8652@2!NK&*W^F7&T\\%;%G5U-B8"Y2WJN +MIQN?<K8Z9<2(U#/NJDX;['[05,P@O$N,K/IOQCE6J+YRI8Z1;VA.P'^K*C![ +MYA3!T#&5+%@Y(_+*-I.2H@1DDR4GU-(.>%-+LUV^!'*"S9$N)RH*8\^MC(5Y +MF`!P%+VLZ"Z<D<+/OJ)()B3[K1=(!Q\*L]FMI/"5'*]6H@2<>ZRV-#:@>.%T +MW6;?4TB..%SMRPM?&PY4C-;_`$DEU$96G8!PO!/"Y[H%<L<&D@Y6[0K`74RM +M:25V5J0&C/ZJ9SAI$K)MKN&`<*2I>0T;J.D:0?'^92U0-RL]MWJ$DS\)VW8` +M[&47:]4?Z2>2%EUG?SQ.<J5]T`WU$?(6;4NVFY'J/Q*7I/K?H.EC<1W"E8X$ +M0-EG6UTT4]U-_%-VF%--;6R1`$?=)A$;[<*I_$9P04[:XTZIB.%=&UI[L@RJ +M'5WRTP),*=UPSO)^50ZC4#FELB$D2U7LWB8Y*FJ-!!)&5#T\DY@*9S3D!T<J +M155P(,S,%6[.K``,8455ON3[J%C]#@"K$:I,B1N@.(YRHJ521DJ02=R%*'J. +MQ(,A1N,B>41`!.<>Z!T"2,2@!Y'!*@O'>C'&V5,\S_HH+LS2.\K42H+)X(R= +MU8:9)AQSQPJ=G!,?NK3(F`T!2%2?TX3SP<2HW.(P-D[7%Q"H*3![*.I,P70B +M).GM"#5ZT"QHW2,`1.R=WY=Q@(()!,R50!B2`250N#INACGNK9_,8(RJ-VXF +MZ"EZ3ZTZ>6M]MD;B'TR"H6$!@/9%4=Z-RFMI5*X&DQ./=5JK3J@*W7`)SQNJ +MS\XP4B17((.(0UL#<%2EHE1U&@B()(5$%)L@DC)3$>HC92AIG/V2+1N$1B]; +M!!F$5*'4`8"DZXTFB2,$#=5.F/#K>!CV5O;,$]PU>W)4=1@=&DX2=.J"(^$X +M<-,;=E16KC)!W"AJ/AT$*6X/K.256J&0<Y50-8`D\*%H(YW4DRW<X4=9TNW@ +MC]5!#7(GB2L_K-+5;DM(VW5]SM39=NJUZ"ZV(/8K4[9O2ET5Y-H<G!4U:3_F +MJG0W0]["=NY5JMB=2QCQPN78=+-BH+@SS@IV$Z\R@NL'2)GNK2!&D!/+5$TC +M2,IY'=&]OF*PN'&H(VQ!E:UM5)=!B3@`KF[)W\SU8C8+8HU&G3!D`X*ZXW:9 +MQO\`37D/'OL/==)TZJ&!LC)W7*].<'56`20WE=!2>W0'$B=ENO-DZFTJ-=3W +M`]E9?5TT"XC99O3Z@-,,]E)6>^K=T[<'$R5BS2XU>Z73_D:_5+E9KSH`.=\I +M42&-T[`;IJH:XQE9TZ2A8!`!(PHJI]4@XYA2M`CDJ!Q]L<IH05/34QWR"BO@ +MVI0@-SNG?3#G2/U4=8PTMDQ""@ZMH:V@Z9)RKH>S6T2J-)@KWT$0&^ZFNFFE +M6D"8@)WVR*]IM\T;*G=LTLD.$*[2+'TSJ'JW454!U,YSP5-::WMF$`D:'1W* +MT^GW/I`:<=E1=1)!(`QRH:%7RFNP1GG8K4K%>G_A:\N]7_5]MUZ'YS=($PO+ +M?PGN`ZDYWO/[KNZEP=8.K[K&N7/&\MNA5EX$A7J#@6[_`%7/V-?.#]5KV521 +M\K5CO*N#TO!!*TK3348%F_F9A6.G57!\3CW6-?&]KSWN83,PH*SFU,X'=7G- +M#V9"I7=+2/3LLUME=69%-T9`"Q6LF1L#WX6QU1Y%-P&)"SZ--II&3]D1")D@ +M&85JPK>7'=0-I%K^W*3AI=^:0KM'16MQJ8,G=7Z%3T8."N8L:Y;`U+9MJXC! +MW5TLK8I/)&\_*F:Z,`X6?0J3_4K-*H8_-NHU*M:]B0J]W6]6D<IZM6&2J=`^ +M;6F<=E+=*T;*GIIB-^RL,&J)_=04G`"(RIFGTRI(HG-Q"C+8$QNCU"-TU0X` +M[;(*%]2;I(.,+G.I6VDN&.ZZ>Y!..5D=3I&/RY42L2U(I58SA;W07BO<YSE8 +M56F6O[+:\&MFM(Y.ZK.G94:#-&R8T6]P5)1EH&?HD3G*CH`4&`P$G6LGF=U* +M#&V2B=4,Q":%6M;PTP1`6;Y`_BP,F5LW+H9DY6?2<UUP$LX/JTRW@0W"-EL0 +M/4284K'8V1M,M@<*:Y57-)W'*847F<JV8W'=.".0J,^I1J#+3$*CU`O:"'2M +MUQ]N%D]9@`DI$JK852&",JU_$M<<E5;-@T?*G--KR3D$I-B5M1N<X05=.X,R +MHGL<T8G"!^L8""S2?I<`7`JVUP,$+*%2,D*S:UQB"G8OG2=RHJF"8,@H@X$" +M#&-BHGX.#A`G$D08^JK7?Y#LIPX1NH:PP03NJ52LGCS")&.95L$`$%4*9T79 +M$B.ZMN</E(B0$3(.W=$"<F84(<)PI`09<1A4$T]T!,&?V1C#2-X4-4[CA0$7 +M%PPEO.$&J(A.W:`51'5Q*S;@D7329Q[+0J&'8_19UX?YX,0EZ1I4ZD,!A#<5 +M`QFZ&D\>4!^JBNAKIQRD2HVU=>=_JF/'<(;1GELR[/[J0C,I.C2*K@J,>H'( +M"DJ\XCV40D"`(E4"X0XC.?JFJMC:8'=%$$H71O\`NB,_J@_E.!Y"Q^FU-+W- +M@A;G4&!U,SD$+G+8Z.H$#<[JWIF=K]1LF<D]]U&\;QA3U`-*KN=N-R@@K@@C +M]E5?CZJW7,;'(5-T$Y)PJ@7G8C`*"KR!(CNCJNTM`DPH7DO$DR0H(*IGC/=` +M^#3/J@_*58;EI48.X=&1N%48E(MI=6+7.Y&/HM&JX3!V*S>I?R^JM>"`!RKE +M9XJ-#@GVK>9"<8.3,(:KMYW"![W:#&Z!SG%GJ;!0@J8]`X3Q[H&5'!H&H?9/ +MYKO\0^RSPV^3`XT[@M(TP>2M*RJ!SA)&>52\04G6_57B``?=*TJG!C=:\>6X +MZ>3%U73GAQ$'!,;K>L7:G""<87*=%KM:R9]<X706=RXU?-<07'?W7H[>/.<N +MJZ97#1)XY6ET?34J/N"!DP(7,6%V_4*;1+G&,+JK!OE6[&`#(6,HQCVOM,D. +MF$1F8*C;M,_1$VH($@D^RRZGJ8;@084+6@B2#[*2HYNF-C[J-KB[`B`H'8T! +MWPHZU/T&<%2T"T3(_1-7V)SLFC;$M2?^(OC$=E=<[U$.$CNH+>F75GU=,294 +MCVN!![I.D#4ID-<YFT*NRH1NZ1[X6@W%#D^RJW5`-9J`(^BBJ]5H<):)![*I +M>TM%)SHB1"TK<@M@`PFZC3#K5Y9G'"6Z339_"2MIH.&6GG]5VG\9J>?5/NN` +M_#:6TCP5T3KDMNBV2IC=UQDYKJ>G7/JP2NCZ?5!I#,%<%TR['FAL[KK.DW&H +M`+I8Z8UTMLZ`#RI@[34!&%1M:LQE7(!9@K%=8V;)X?2&4=5@.ZS>FU8=!,1P +M5HNJ!M,PX+-;E87B"C+]`&5GFDZDP!TB.RV:X%>[WD!1WULTL,#(V)6-ZJZ8 +MU,MU[D^Y0W+9.,#N%+6I.IU%'4>-B<JHKTWEKA'ZK1LZX']1*RW`%^(^5/1> +M0))B.RJ.AMJH+!ZE>H50(Y7.V=?.ZTZ%Q#-6T(LJ]>5Q.D&"5/T]NFG/<K)M +MZHK7.^!RM>DX!D8@<RLWMJ+32`8V4S2(!!WX55CP#ONIJ3\YR/=54[7@C)RF +MJ$`'8!#,F>>R3AJ.5`#H<W&96??4YY6D_`@!4[EH<TD[I1@WM(!T*[X/?IKG +MY0W;!!D!'X7HD5R1W4G:.N95$9V(3FJ"0(5=H=M*(`$JM18UB,%(U"23(5=L +MZ=TVH\<()+I\M(F`%0MW.-S@QE2W+SIG95+*3=:IE+T3MNL=#1'*?S.)5=A@ +M!$)F2@L:\&$XJ'`4'P$XE*HR\3@DA9G6'2KQ$YF%F=7B8!1*:P<?+A3:HB8P +MJMD3HC]U*7>HSL/=2+5B01\I.`)[J)K]N$X=ZXVE4#4I`@Z5&T%IV*L.<2-T +M'YO=30=M=^,?*=U8Z<@X2`;&=RC+&'$A!`;G,1]E&^X&))RI32;MA15*(&QE +M7E%&YJQ<"(A6VO#VZEG=29IJ!P,0C8][:8$E/J-!CNY4S"2/[=UF,N8)#E:H +MUPX`2J+<^D]U#5._!"<5!W4=4C:440=.Z?4)WV46J!$I!W(1!/P(&RS+V/-! +M.RT:A=!!/T6=U&=8DCX3XE7J('E`C8>Z"H01&?NAMG?R(0ETG*3I:>(9)2ID +M%N9"$N@1O\IFD:>RJ(ZL%Q`.$+\#L$3_`,RB>X]P40HR$U68PG),25$Z9,_< +M((+PM\LCV7,51IZD-]UTET'%IPN:ZK++L.`"U>F?K5>6Z!C?NJ=4EM0S'PIJ +M;II!P,JM>._F$@_5(@*I,F1NJQ$O#I/NCJ.)`,('.,1C*(:H6G$?JJ\Z26G8 +MJ6KC(,_"KU<9B?JFBH*NVD?=0L=O.$=PXD_YJN7DNW,!5&5UP@W#3SW5FG/E +M`\_NJ?6S-P#LK5)W\EI:F7]B='.7GE)SF^7`@>RCJ.=(+HREK+A)<-ONI5A` +MXPV0GD_X/T4)J'M/NF\P_P"%&]/G7\3K1U#J!JMD-/8KG+*J69:8E>A_B=:" +MI0D4B33;F=I7FK*FG^61)#MYX7+"ZNG:?RQE;G3*HD#_`&%T?3JQ+6F3(W7) +M=+K%WHG![E;_`$JX`IZ&G;D+UX7<T\_DCH>CU75>J-$X;P%VG3G.=I+CMC=< +M'X8=_P"L<^",KL^F58TD#;NK7GO%;1(:R2!E%2;B8^O"AI.+QJ+I4K"XG$Y7 +M-T!4R3RFEL<[(JC2#O\`W4%0%KMP<HM6;4&#,`>R#J)T6QAVZ>D\Z(U3*@O' +M:[BFP3[I4/2`;;-$"2)4-;43'?@*^YLB(&.RK5&Q6$;J=*B$M#02E=-'EF#& +M%-4_F;B"%7N\-W)0X-94&NIG.4UV"V@\$3(X*DZ406D@G>([*W<40^V?,S&R +MF71`^!7<D`;A7.O56T[X`'/RH/"-'RG2YI'9+Q93+*WF2N6-U8Y2?RJSTZZA +M[7$C_-=?T"]&D9_5>:V]R0X=@NC\/7\.:"9GZ+TSE7IW3J^K25L4'@LCNN3Z +M%<A])OJ"Z"SJC2#*QDWC6BTEKA&5.ZX.C1R52:^6$S$)K5X?=^HX!6-ND:ME +M3:*>HSGNGN&G5Q$*6E&@:3'U2J@&9(E8UIT95U1#G$EJS+RA!."MVJP'_54+ +MQD-/)[*#`?-.MA&UVK\RN5K=KP21!Y5&LQS3`.`DK.DU-^G'NK#[K13^5G:_ +M?9-=51Y>J<^RW*E;O0JFHR5N,J;`F?A<GT"Y&@`GZRMVSKAS?[J:7;6ID!H, +M$*Q3+0!*SJ3Q$R?E6:-2>?HHUM<8[U8^%)J(,JNUX.?V4DPV>Z*)[OJH*Y!, +M']$;G=B@<&D&5!GWP]!PI?"P)J?7DJ'J`ACC)]D?AA^DR2D1T8P,Y'=$"-U& +MRH"S@2A+@2(<C25[@,0@),GU0A<<ZB90%T$R=_=`-T_^61./=5.GNFYW$*2] +M=_+F?N55Z:[^>2,Y5J3MNM.-T8=`_P!55UX&8]DFOG))459+S.\A)K^2?HH" +M9P$.HPBK?F-R!CNLKJCLF"85DU#!S/LLSJ50_E,2JB2V>`TD291.?F05!;._ +MD[_5$TB?41)YV4@LM>0-YY1!\G=5R[:<)P[.=D$X?G=&Q\#C*KL>"-]D[70X +M9^J;%EQ.-DB\]U"7\&8*<.X!_54$YY&9E`7DNVW35'@;G*&0[Z>ZNT5.HG.4 +MJ8'D[8_9-U+4!N82M_\`D`[J7L+RVDX*3:3ID(FN]4(VNAW"I`/UM[X4=2X< +MP9G/Z*V#+5%5I-.[=]U!"VY$_P":E;<-)`U0H*M$<*$TG;#A!H>:TM]+I5/J +M)`$G"B:VJUQSA0=2-9M/97:5I6;@:`)=$(7D`K/Z;<5?X>'`X[(GW1+O4DUH +MJ\'`P#PA<3&VRJLNFZO[(S781C'=42U'2V3NHAOLA\YFG\WU0"H)W.564Q/I +MRHJFQC"=U1L;J-[@6SJPFC:O=.,?(6!UO)+APMN]<TM*Q^K4]5J\YF%J,4/3 +MWZK82?LFN8`R0JW17_RBPG93W#?5CA9QZ6J[I`)[*%SR02IZ^&D[#LJCC)C[ +MK2#+@84%PYLD#[J7&DE4[N0=0VY0VCJ/F<3\JJ]Y#_S`2I7N)$@J"L?0851G +M==)!#I,*2S?JM!_4>ZK=7ES/92=/(;:-!S\E3+N+.DI+6M)(CA"8%,$'"5:" +MTXSPAI@^5I!!]U%@FM!;)A/H'M]T+#Z1A%/LHV\H\54&UZ%9KID-/RO)NK4' +M4.I50T`M!R9VRO;.I4P]CG')CO@+R?Q[9NI]0>Z<3,1[KGGQE*O@O<9EKEH+ +M0=.X^%K=-K@4M((_NL*SJ/IO:`>^3PM2E6UR74Q(WC"[X7ZN4VZGPW6+*+<Y +M)[KLNF5I#(F8_J*\]Z3<:'TFC`,;KL^A5?,8S(GWX7;6X\?DFJZJU?-,"02K +M=-SM,`"/=9=C5@ADM='97J+IP=6T^RYV+C4U0GYA5ZF7C?\`S1N>[41OV3&2 +M3P2HT3JFEA."!N`HNG@5*KJAG?"#J-0TK8GDX1],+V6K=49[IVB_JVF=E%4$ +MG494EN\$?/":K),D;84L:B*W'J)WE07;7:S&/W5JF"!,;SRJU1NMSL\[H([3 +M4PYG)VA7GUO_`$;@,8YG"JZ((+)!XRGZA4<VQ?\`:5/B-3PPWT!\R2=T_C$. +MQ!/J$84_A%O_`/3Z;].$WB!HJ5MH"XR<L8=N-+G,K$;*]TF]\NJV<0=Y4O5+ +M3^67,&0=UDO+J+@3E=\,ERCU#POU!II,SE=ATZNU[&Y7D/A;J1#V`E>A]!O= +M=-I!6\HDKJC6#:;CJW]U'9U7&[!`QW6>^Y\RJVDV<K6LJ>B@)B>5RRNN(ZX_ +MEMVM<&G'>%8W&3/NLBUJZ7`$C_):-!VHCU+-CI*-S1I,`RJ=VQI?[_"O'/[* +M"HT203)E8L:9=>FT$B"J=>CC;'*U+ML$@`RJU>GB2D1D7%N#)!R?T5&^8YM* +M"86U780TJA?M#J#I'"L2JG3*^FGI!S^ZV>G78TCDA8%M3(!(5BA6-+>!E:E9 +MKK+6X!;DQ[*];U/2,Q*YCI]WL)_5:MI<:B#@_5+&I6W3J>H0<?*G;4`],E9M +MM5'W4X?MWA9K6UPNU")W2<!I&?HH`_;(E23C915+JIBBXCA%X<8#!2ZEFFX1 +MB,INA/%,B-I4G:5MP(&3[HVPJXJ-/RB#C,3*TJ8]^/E!4,'>2A)!Q@%#4)V. +M%-"O>F1OLJ_3?^;GNBOG>@J'I9]9DR9PK?B1L:A&_P`)M>(*B:XS&(A,>ZBI +MVU1.Z(O:3,CO"JD'![^Z3@[28)E-B<OW,8Y63U:L-?I/*MR[;?V65U)SM>!R +MK\%RS>?+!"F+O>51M"?*!,A2TZDNW*S%6'.)_IPEN,&"HW.!.1A#J'?'""P- +M38!VB<J2F1_LJOYFWV3M.,F/JD-K#G.(QPD''<E1%_I@<)PZ!))5B)9D&4PD +M'>9]U%YF-T@Z>51%U%WH*&S(\D9^B;J+OY1SCY4=B[^5OE*BP9!D)&0Z5&YW +M\R9^B?428)Y06&ET`IY)89CWRHV.QI"9S^$#5=\)##8[H7G.#$IJ;G28*"5D +M$[1]5%?-#J9D3[2B:XYXY0ULTR"58*E@QLN`:BK46.>3&>RCM'1=.!.)4]0R +M3"D*K/H>J02F=0<6G=3EQ`"?4-)Y*ND4'4G`8)4(-459E7RX:C.Q*!S0'3CZ +MHBD]]4&0#!*%U:H&Q!5\M#C^7Y05J8#<-'U5FRZ8M]<U!@@A4KJX+Z#A)V6Q +M=TV$F0,]@J-S;,-)PTC/NM[K%8'3KK1=/;)WV)5\W;2(.ZSS;:>J1."5:K63 +MB-33"F]6GP5Q7'ED[PJ8JM+Y!W2K6]700"9A9U5M:F2-/RJC4+\&#]%!<P6D +M@*@VXK,;$%*I?#\IY5@-[@UWJ^%#7<TCG&RB=<MU;IA<,=Z79^$T*76@TT-1 +M'R5'TFI_Z8MG"GZH6NMW1)"K=$$-<X1"F7PGU:.XSNG)]#C(PGU-=(+=D#IX +M&#PI5AFL)$A/Y9]TFS&/W3Y_V5G<=7!7+8HF1@B=]EY_^(MJUU.H]HR.>Y7H +M5=S2")XW7,^*K8U*%0;R)SPKY)N.'COKE'E#7Z*A:!B<%:%FX/8T["9A4^JT +MO(O:E,-(@]]U-TYWY6C`:5,+N/7G&S1=H\J3G<05U7ARZ#FX<&D#OGA<E0@, +M9]EK]*<:=1LM(;NO3A?CS>3'<>@]-JM--H[[S\+3M*Y+1,&-ES72;IKVL`)' +MN5MT*LZ<[*6:>>72^QS#4DD[X4FN2!G[JJTOB8GLI2X8<=Q@SA8TZ2JW5'M? +M=MI-<7'!(4U`C0&;`=E7HM-;J#JN(;C]58JC0>T_HH)Z=8!P`/U[JVW2ZGD; +M+,HN+KAH)P5ITX-(-[CE6K#`'1@G_)02!4(GE6)`:0)PJE4^H_=1=I6YR3[R +MHNJ`&R?C=34W32$MVPJ?6ZFBV&PEP^J6);PZ3PSZ.D4LQ#0._P!$_6&R0^9` +MX1=!+?\`@E$[2T)^I#52U8@'"XSMQPO+.K-8^CI`XA<_URSECM.^\+HJ;'`C +MW5>_HM-%T@+=_+O'+=(N'6U=K3JP<P5WWAOJ8\IIU;#NO/\`K5%UO<:Q@:E< +MZ/U(TF-!='$CNNV%]HYY<5['X;J.KU14)!$KIJ-3,`_JN#\"WH-FPATF%UMK +M5!`,Y.5BQO&_&I)#ICZA7;&K.'$`K+IO);$J:D_R^=NRPZ;;FK`G>$P@YG*J +M6U<.&2(4X>"!$9]UG3<H*S=\!5JS);&`5<J9!RH7,$&=PLJSJ[0`=4+-ZCB@ +M[$>ZV;FFPZ@=BLKJ[!Y+@WZ*Q*SK.F8U`XF)1U*32XQ"EZ?2/D`]T=>G#HXX +M1&<7NI'\V!Q"N6=X6ELF9S!45:D2Z`,E5JE/2[&",K4J5U%E=A])L'?]%HV] +M66@3NN+M+MU&J`[8+>Z;?->&RX!+$E=`Q_$J859:/?A9M*J'`:73/96:3IS. +MRPZ'OS-%P!E'TADT_A17#AY)4W29%(P0I!?;@'V1-=GE1S]$3=.)("JI(,S^ +MZ%QW#M]DY+8WW4;S`B1\H*G47``CE1],`UDCOPBZ@X!AR%%TQ_/<\*4:E-V) +MTHO4<[*)CL"%(TXGNFC9.<`(Q/=$'PTB5&Z9G&$%28[JB34P-=.>ZR>JN:*G +M;*OU'::1XX63U1\U0`('LH59MG#R0)&`DYWJWP5#1GRP,YY3N,.P3ME)2IQ4 +M'!^B37^M0%VT)B\@S@#A!:+AW3L><*&0<1N$F'2X23'RE%L.YF>Z;4`2?[JN +M7^DQ*(/P)@H)=?`!^4=-X+<[RH`Y)K@,JANHP*9SB%'8QY>#LFZ@_P#DD$'Y +M4=@[^6=]E:D67:B<NWPDTG5_=1ZCPGU'G=!8:Z`F+LG"A:21O"1=F.$$CC.[ +MH3<^ZCJ.Q]$U-V!`03TW2<(JQ;H,Y(P%`UWJE&[;O[*Q%`NB]B8DJVXR/251 +MNSINFD#G[JW3/\H.D!3Z?#N,L@1"83VR$!C48*1/JW6@-3#MDP,;Y0UIR2F9 +M')W[HB1Q`9@E0UZA((RC<<?N57>9G,951#6$_P!U4<!K<2..%:J`Y!.%#5RZ +M08[JHP.JM\J^%08RKU-VN@UT3(W4/B.G_*\S<A-85&NLFP<A6][2='N)`('* +MS;EDF3WV6E7/HQ]U0NYTG)A5*J&DPDM(F2H:UI3,X&5*\Z3@F9Y3N(?3+MHP +MIH95U8AQ);QV51]K5:202#)@K8>88=,QRJ]1WJQVV5T;8M\VNRA4D$X5'I=W +M4;4<#N"8"Z&[:W09SC*Q:%)C>H/$R'$J7>EG:9MV7&2WY4E&Z:1$[)A;L\QQ +M@9PDVT&J1O\`NFUFEFFYI9.I%+?\85=ML^-T_P##/[K&W3U>?U'.IO`/T69> +MO\T/#I@<+7T4WTGM>\-<!(QNLKJ5!\%P@#OV73_*\TT\X\;T!2Z@^IOJS[[K +M*LVP!B#J6_XX:Y];.=(R>%S=*J]M00/RY/NN&/%T]TN\8WK<^EI<TNB%K6+V +MN+3!(`[K"LJKG-`.0=BM;I]0Z@20(A>G&N&3I>FO+;A@:YP&"(."NBMKJ:@; +M+=+<8*YKHU:=,P=(6E;^:UX>X`P9PMWAYLG46Q,B<M.1[)7]8,ID1I.V%1L; +M@AK9,\917-8UKAK6F8=)@%8L)?BYTR6TA+8<[)5@@NR<SQV5:A5DP9AN%8ID +MEATX6=-2HJ;=-WJ/!6C1,CZ+.>?YD.:<G>5=M7%D#@H;'6UBF2=O90522PQO +M&P5BK4EL$*O6)R-(AR+L]&12C:5E^(7PRF`[=X!$;Y6C.BC)9!]C,K)O#YE7 +M46R`X1/=3+IFV.SZ"7'H]$$02!CA7*P+J7T5;H'_`.44]P(5UP::6VZY3MSP +MJC5;#Q,#B945>D#D;=E<(!(&)35F12F1]%T=]N8Z[9BI,M&W*Y:Z;4MK@B3H +M:X;KT"ZH!U-Q+<KENOV;2UX#2!*DOK5LE=/X#ZF&T:;=63&)7HG2[EKZ33(S +M[KPSP[U#^'NPR'-CNO4_"M^*MNPZAMRNV4W'*<73MK>J(`!D[X4XJ$C$A9-K +M7Q\8PKC*DLP9D+C765?H7!:[2=CRK]O5&D#NL4/`$SE6K.YAP`4:VU]6(E-N +M#PH*+PX27$`YW4@>"["S6Y456F223A9G5VC0["U:SN%E]0<'5`SDE016E/3; +M"!&.Z&H-1DC?=6PS32;.T0HG!H<?\TA5"HT:H`V]U7K,W)P>RT*K?48C?ZJ* +MM3EL@_,J[33*?3.K41"*G6=3J`M5FK3(SLJSQ`WRK*EC9Z;?D:6..8W6S;7; +M2!#IGW7&4ZFDB)'LK]M=EH&8@)4G#I;JN#2)D#ZJWTJN/(&09]UR]3J`>UK- +M6^`MSI&;=N8E2\++MK^=VVV1LK>KC*H.<X")QV0FJ01+I4;:1JC$;]D+JA._ +M[J@;@-<&NJ-DG`E$:GJW'S*`>IU/1NAZ62*8,[E5NIU"6&"$73'N=2:`=^4J +M1K4ZO!/ZHV5H'YC$JD"<P90&JX$RD%\5B[,H75M+M_NJ3*CBZ)PE5<X@Y&%5 +M7*E8%D;K'ZC7!J1/*F=4=P5FWM7^<)G!V4O2?6I0J#R1C]4G%N_'*K47#R@0 +M>)"/6",G=1I*7[ANZ1=&5`7PW!A(O^I518;5)[(M6TE56N``(")M01ML@N!P +M@0=TXRV9"K!\B$8?!03AS28!D]D;2.3]%5UQSGV1!Y@[_P":H74'?RS$=H45 +MBXMIP"`=U'?/EARFLG2W$B$OPBTY\&-^4P=F4$CG?N@U0X[0B++7$'Y2>[B5 +M`U_<)R\[$G"HDJ.(;,IZ;QIB,PH''N8RE3)F)*@G#R3'',*<&6B`53U28W^B +ME;4<&C*HK=5!:=4;*6SJAUL#]"HNI^JD>?[*'IK_`$P3LE2+-5^<?,RF:<@G +M=!4(U'GV3-B-U055Q+C!PA!`;G=*<!,XB<G*(,/.G;<('@<G=(.`$S,>ZAJN +M$$QE6%!4_.<X]U7J.;J)DQSE'4)+]XGA152V8G9:95.K--6T<`($8[E972GQ +MKIG:=I6U<^J@0(_NL"B2SJ+VD[DI>CZOUI`(!PJ542\R(5QS<;Y*IW1C$F=E +M652NS\QF>5%2=#H.WRK#SCW5:!)SLBCK-;HB9"INC.^^59>3IWSL0H:[=+"1 +M^Z(K5(/YLK)NJIHWIIZ1I>9)T@G[Q*UZPEL3GV67UNBXT!4$XSNEG&EG%3R" +MT%G92VY)!(WXA4[.MKMF'^IHC=3VKH):5)>%URL!S>93ZF^ZCAO8E*&]BG#; +MSU].##9PH:E%AR>-YQ*NG<J/AWPFWGLURX7Q'T]MS6N',88:#.%PUQ;BG7<U +MP.Y^B]-J?^WN_P#\2\_ZO_[I_P`KCEQD]OBN\0].AKH)P1NM6T(UM:`2%E6W +MYA\K4L_R!=I4LVZ3HWDMI:P7:B(&<#Y6[TP4_+&LDEQX,RL#I7Y`NCZ?_P`T +M?"Z6O)FN>7%+6#('TE0=*+_.?4<##R0`<PKM/_V[_A5+7_V_W6-\Z9G3086B +M7%P@[@*]9AKFB(G>5E'\K?A:5CO]%?B]4]=O\V3NK%$0S)GLJ];=6:/Y6_19 +MC6^3U`00.Z3@=6G.VZ=WYDF_\QORFC?*&^;IHR"1'M*RJM)PI"I/YGXE:W5/ +M^0LZO_[+_P#&%G*_$RX==T)I;TFG)G&5=R:>TJGT7_\`+6?`_966;!8P[KEC +M"PT^Y4PIZJ$]U!5W5NG_`,KZ+HZJ5:B13.096%U2U+R8`RNDK?\`*/RLFZV* +MS>G2.#ZO;.MK[S`3`,KJO!?5X;387Q[2L+Q9_P"X8@\'?\_ZKKX[PQGC]>Q= +M&O&U*;3KS&RV:%0:1ZOU7(^'/RM736WY&K.4Y7%?U%WI_9)KG-=$_5#;[!)_ +MY'+G6XT+2O,`NV]U=8_TR#ORL:WV/PM*A_R6I5B6I4'EJA3FK>DQLK5S_P`L +MJ/IGYS\KG;J-3E.6C1![1"@>V1&_NK+]C\J`_F5-*[VD/.,;[H'@.:0)^B.X +M_*F=_P`GZ(:5*U,M!Q/RJE5AR5H5/RGZ*H[^KZIM*I5&&<843JKV'NK=;\BI +MW'YEK:6!97?_`!5/W*[/I%QIM&#&RX1O_O&?*Z[IO_MF_16I.&UYX+2F+F$` +MJK3_`.2/E)OY?J5C36UN*<C(U)Y^L*&G^9ORB'YOJ4L:5;]I<TY.^REZ;(IY +M,*.[Y16FP^%/HO!TXGZI1G*C9^<IV[JU(,``R("8D:D)V1'<?"BHZ\"7+%O7 +M`W7"V7_E6#=?^^<K>D^K]*I#!&Z/63_4HJ?_`"_HC;^8_`5THR\8@)]<[2@& +M[OA*EL4T"-4#&X"0>.^_91'_`)A3MW;\J"PUY`B81!Y.02H'?\M'0V^B"5KB +M#*E;4QO!]E`/S?1,W<J]ANH/&G=/TXQ3,S]5!>?F^BDZ?^1+\2+#R4QC5,IG +M[_5#4_YGV5@<.`,GZ(I,@]U$/^8%,>/HJD,YQWDIVNS$H*WY/JDS\P45('>K +M!PI`YI&V-L*!OYDXW*J&OS%$MD0JG3':JQ$JS=_^V<J?2_\`W04I%UY_F8(3 +M.=&1V2J_G*&K_P`L*@P_T=IY0.B<F)3-_($]7=JJ%,"%%5<'-@2"B?\`D4#O +MS'X50%0D=_E!4=+4]3\H^4Q_*541.,MX*P.I`T>HM?L"<RM]NRP_$G_-^H5^ +M)]6`Z6`MSB5%<`NSS"*V_P#;,^$U;=2=(IOB8^JJ/<6U<#G=6G_\PJI=_F"T +MARYK21.ZA<09`4K?Z5'<_D*;57J-QMD=U!<L\R@ZF>5/PAY*#%LIIWCJ)(`) +I("O4!#X(DJA<_P#YE_\`B6G2_P">U9ZNFXE:#I_,$^EW^,*4;)(T_]EK +` +end + + -- cgit v1.2.1 From 7c4645bf020a5ce35079008f5eeab6698c5362d5 Mon Sep 17 00:00:00 2001 From: khoff <khoff> Date: Wed, 14 Apr 2004 00:48:04 +0000 Subject: Freeside's URI handler for RT3. --- rt/lib/RT/URI/freeside.pm | 188 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 rt/lib/RT/URI/freeside.pm (limited to 'rt/lib') diff --git a/rt/lib/RT/URI/freeside.pm b/rt/lib/RT/URI/freeside.pm new file mode 100644 index 000000000..bfb514df8 --- /dev/null +++ b/rt/lib/RT/URI/freeside.pm @@ -0,0 +1,188 @@ +# 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 RT::URI::base; +use strict; +use vars qw(@ISA); + +@ISA = qw/RT::URI::base/; + + +=head1 NAME + +RT::URI::base + +=head1 DESCRIPTION + +URI handler for freeside URIs. See http://www.sisd.com/freeside/ for +more information on freeside. + +=cut + + +sub FreesideURIPrefix { + + my $self = shift; + return($self->Scheme . '://freeside'); + +} + +sub FreesideURILabel { + + my $self = shift; + + return(undef) unless (exists($self->{'fstable'}) and + exists($self->{'fspkey'})); + + my $label; + my ($table, $pkey) = ($self->{'fstable'}, $self->{'fspkey'}); + + eval { + use FS::UID qw(dbh); + use FS::Record qw(qsearchs qsearch dbdef); + eval "use FS::$table;"; + use FS::cust_svc; + + my $dbdef = dbdef or die "No dbdef"; + my $pkeyfield = $dbdef->table($table)->primary_key + or die "No primary key for table $table"; + + my $rec = qsearchs($table, { $pkeyfield => $pkey }) + or die "Record with $pkeyfield == $pkey does not exist in table $table"; + + if ($table =~ /^svc_/) { + if ($rec->can('cust_svc')) { + my $cust_svc = $rec->cust_svc or die '$rec->cust_svc failed'; + my ($svc, $tag, $svcdb) = $cust_svc->label; + $label = "Freeside service ${svc}: ${tag}"; + } + } elsif ($table eq 'cust_main') { + my ($last, $first, $company) = map { $rec->getfield($_) } + qw(last first company); + $label = "Freeside customer ${last}, ${first}"; + $label .= ($company ne '') ? " with ${company}" : ''; + } else { + $label = "Freeside ${table}, ${pkeyfield} == ${pkey}"; + } + + #... other cases + + }; + + if ($label and !$@) { + return($label); + } else { + return(undef); + } + + +} + +sub ParseURI { + my $self = shift; + my $uri = shift; + my ($table, $pkey); + + my $uriprefix = $self->FreesideURIPrefix; + if ($uri =~ /^$uriprefix\/(\w+)\/(\d+)$/) { + $table = $1; + $pkey = $2; + $self->{'scheme'} = $self->Scheme; + } else { + return(undef); + } + + $self->{'uri'} = "${uriprefix}/${table}/${pkey}"; + $self->{'fstable'} = $table; + $self->{'fspkey'} = $pkey; + + my $p; + + eval { + use FS::UID qw(dbh); + use FS::CGI qw(popurl); + + if (dbh) { + $p = popurl(3); + } + + }; + + if ($@ or (!$p)) { + $self->{'href'} = $self->{'uri'}; + } else { + $self->{'href'} = "${p}view/${table}.cgi?${pkey}"; + } + + $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; +} + +=head2 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; + } +} + +eval "require RT::URI::base_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/URI/base_Vendor.pm}); +eval "require RT::URI::base_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/URI/base_Local.pm}); + +1; -- cgit v1.2.1 From c582e92888b4a5553e1b4e5214cf35217e4a0cf0 Mon Sep 17 00:00:00 2001 From: ivan <ivan> Date: Thu, 11 Nov 2004 12:13:50 +0000 Subject: import rt 3.0.12 --- rt/lib/RT.pm.in | 23 +- rt/lib/RT/ACL_Overlay.pm | 4 +- rt/lib/RT/Action/EscalatePriority.pm | 7 +- rt/lib/RT/Action/SendEmail.pm | 36 +- rt/lib/RT/Attachment_Overlay.pm | 60 +- rt/lib/RT/CachedGroupMembers_Overlay.pm | 4 +- rt/lib/RT/CurrentUser.pm | 27 +- rt/lib/RT/Date.pm | 18 + rt/lib/RT/EmailParser.pm | 221 +- rt/lib/RT/GroupMembers_Overlay.pm | 4 +- rt/lib/RT/Groups_Overlay.pm | 64 +- rt/lib/RT/Handle.pm | 15 +- rt/lib/RT/I18N/cs.po | 2 +- rt/lib/RT/I18N/da.po | 4651 ++++++++++++++++++++++++++ rt/lib/RT/I18N/de.po | 2 +- rt/lib/RT/I18N/es.po | 2 +- rt/lib/RT/I18N/fi.po | 888 ++--- rt/lib/RT/I18N/fr.po | 4 +- rt/lib/RT/I18N/he.po | 2 +- rt/lib/RT/I18N/hu.po | 4883 ++++++++++++++++++++++++++++ rt/lib/RT/I18N/it.po | 2 +- rt/lib/RT/I18N/ja.po | 2 +- rt/lib/RT/I18N/nl.po | 2 +- rt/lib/RT/I18N/no.po | 2 +- rt/lib/RT/I18N/pt_br.po | 4 +- rt/lib/RT/I18N/ru.po | 2 +- rt/lib/RT/I18N/zh_cn.po | 756 +++-- rt/lib/RT/I18N/zh_tw.po | 756 +++-- rt/lib/RT/Interface/Email.pm | 12 +- rt/lib/RT/Interface/Email/Auth/MailFrom.pm | 2 +- rt/lib/RT/Interface/Web.pm | 6 +- rt/lib/RT/Link_Overlay.pm | 3 +- rt/lib/RT/Principal_Overlay.pm | 2 +- rt/lib/RT/Queue_Overlay.pm | 12 +- rt/lib/RT/Scrip_Overlay.pm | 2 +- rt/lib/RT/StyleGuide.pod | 18 +- rt/lib/RT/Template_Overlay.pm | 12 +- rt/lib/RT/Templates_Overlay.pm | 35 + rt/lib/RT/Ticket_Overlay.pm | 27 +- rt/lib/RT/Tickets_Overlay.pm | 76 +- rt/lib/RT/Tickets_Overlay_SQL.pm | 125 +- rt/lib/RT/Transaction_Overlay.pm | 11 +- rt/lib/RT/User_Overlay.pm | 82 +- rt/lib/t/02regression.t.in | 6 +- rt/lib/t/04_send_email.pl.in | 25 + rt/lib/t/data/rt-send-cc | 5 + 46 files changed, 11370 insertions(+), 1534 deletions(-) create mode 100644 rt/lib/RT/I18N/da.po create mode 100644 rt/lib/RT/I18N/hu.po create mode 100644 rt/lib/t/data/rt-send-cc (limited to 'rt/lib') diff --git a/rt/lib/RT.pm.in b/rt/lib/RT.pm.in index 14c0d47ca..c0a350a58 100644 --- a/rt/lib/RT.pm.in +++ b/rt/lib/RT.pm.in @@ -33,7 +33,6 @@ use RT::System; use vars qw($VERSION $System $SystemUser $Nobody $Handle $Logger $CORE_CONFIG_FILE $SITE_CONFIG_FILE - $VENDOR_CONFIG_FILE $BasePath $EtcPath $VarPath @@ -94,7 +93,6 @@ $MasonSessionDir = '@MASON_SESSION_PATH@'; =item LoadConfig Load RT's config file. First, go after the core config file. -After that, try to load the vendor config. After that, go after the site config. =cut @@ -168,21 +166,23 @@ sub InitLogging { $RT::Logger=Log::Dispatch->new(); if ($RT::LogToFile) { - - unless (-d $RT::LogDir && -w $RT::LogDir) { - # localizing here would be hard when we don't have a current user yet - # die $self->loc("Log directory [_1] not found or couldn't be written.\n RT can't run.", $RT::LogDir); - die ("Log directory $RT::LogDir not found or couldn't be written.\n RT can't run."); - } - - my $filename; + my ($filename, $logdir); if ($RT::LogToFileNamed =~ m![/\\]!) { # looks like an absolute path. $filename = $RT::LogToFileNamed; + ($logdir) = $RT::LogToFileNamed =~ m!^(.*[/\\])!; } else { $filename = "$RT::LogDir/$RT::LogToFileNamed"; + $logdir = $RT::LogDir; } + + unless ( -d $logdir && ( ( -f $filename && -w $filename ) || -w $logdir ) ) { + # localizing here would be hard when we don't have a current user yet + # die $self->loc("Log directory [_1] not found or couldn't be written.\n RT can't run.", $RT::LogDir); + die ("Log file $filename couldn't be written or created.\n RT can't run."); + } + require Log::Dispatch::File; @@ -231,7 +231,8 @@ sub InitLogging { return "$p{message} ($filename:$line)\n"} }, - stderr => 1 + stderr => 1, + @RT::LogToSyslogConf )); } diff --git a/rt/lib/RT/ACL_Overlay.pm b/rt/lib/RT/ACL_Overlay.pm index 977577697..bb69a20f4 100644 --- a/rt/lib/RT/ACL_Overlay.pm +++ b/rt/lib/RT/ACL_Overlay.pm @@ -119,11 +119,11 @@ sub LimitToPrincipal { # lead me to start to suspect that we really want users and groups # to just be the same table. or _maybe_ that we want an object db. my $princ = RT::Principal->new($RT::SystemUser); - $princ->Load($args{'PrincipalId'}); + $princ->Load($args{'Id'}); if ($princ->PrincipalType eq 'User') { my $group = RT::Group->new($RT::SystemUser); $group->LoadACLEquivalenceGroup($princ); - $args{'PrincipalId'} = $group->PrincipalId; + $args{'Id'} = $group->PrincipalId; } $self->Limit( FIELD => 'PrincipalId', OPERATOR => '=', diff --git a/rt/lib/RT/Action/EscalatePriority.pm b/rt/lib/RT/Action/EscalatePriority.pm index 7ed63ae01..e24e0541a 100644 --- a/rt/lib/RT/Action/EscalatePriority.pm +++ b/rt/lib/RT/Action/EscalatePriority.pm @@ -27,9 +27,10 @@ =head1 DESCRIPTION -EscalatePriority is a ScripAction which is NOT intended to be called per -transaction. It's intended to be called by an RT escalation daemon. -(The daemon is called escalator). +EscalatePriority is a ScripAction which is NOT intended to be called +per transaction. It's intended to be called by an RT escalation tool. +One such tool is called rt-crontool and is located in $RTHOME/bin (see +C<rt-crontool -h> for more details) EsclatePriority uses the following formula to change a ticket's priority: diff --git a/rt/lib/RT/Action/SendEmail.pm b/rt/lib/RT/Action/SendEmail.pm index 659238088..645c5d99d 100755 --- a/rt/lib/RT/Action/SendEmail.pm +++ b/rt/lib/RT/Action/SendEmail.pm @@ -239,7 +239,7 @@ sub Prepare { =head2 SendMessage MIMEObj sends the message using RT's preferred API. -TODO: Break this out to a seperate module +TODO: Break this out to a separate module =cut @@ -279,7 +279,7 @@ sub SendMessage { local $ENV{MAILADDRESS}; if ( $RT::MailCommand eq 'sendmail' ) { - push @mailer_args, $RT::SendmailArguments; + push @mailer_args, split(/\s+/, $RT::SendmailArguments); } elsif ( $RT::MailCommand eq 'smtp' ) { $ENV{MAILADDRESS} = $RT::SMTPFrom || $MIMEObj->head->get('From'); @@ -663,15 +663,41 @@ Takes a string and a possible encoding and returns the string wrapped in MIME go sub MIMEEncodeString { my $self = shift; my $value = shift; - my $enc = shift; + # using RFC2047 notation, sec 2. + # encoded-word = "=?" charset "?" encoding "?" encoded-text "?=" + my $charset = shift; + my $encoding = 'B'; + # 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; 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 ); + my $res = Encode::from_to( $value, "utf-8", $charset ); + + if ($max > 0) { + # copy value and split in chuncks + my $str=$value; + my @chunks = unpack("a$max" x int(length($str)/$max + + ((length($str) % $max) ? 1:0)), $str); + # encode an join chuncks + $value = join " ", + map encode_mimeword( $_, $encoding, $charset ), @chunks ; + return($value); + } else { + # gives an error... + $RT::Logger->crit("Can't encode! Charset or encoding too big.\n"); + } } # }}} diff --git a/rt/lib/RT/Attachment_Overlay.pm b/rt/lib/RT/Attachment_Overlay.pm index 9086c52f6..481dbf0db 100644 --- a/rt/lib/RT/Attachment_Overlay.pm +++ b/rt/lib/RT/Attachment_Overlay.pm @@ -451,7 +451,7 @@ sub NiceHeaders { Returns this object's headers as a string. This method specifically removes the RT-Send-Bcc: header, so as to never reveal to whom RT sent a Bcc. We need to record the RT-Send-Cc and RT-Send-Bcc values so that we can actually send -out mail. (The mailing rules are seperated from the ticket update code by +out mail. (The mailing rules are separated from the ticket update code by an abstraction barrier that makes it impossible to pass this data directly =cut @@ -459,8 +459,8 @@ an abstraction barrier that makes it impossible to pass this data directly sub Headers { my $self = shift; my $hdrs=""; - for (split(/\n/,$self->SUPER::Headers)) { - $hdrs.="$_\n" unless /^(RT-Send-Bcc): /i + for ($self->_SplitHeaders) { + $hdrs.="$_\n" unless /^(RT-Send-Bcc):/i } return $hdrs; } @@ -480,8 +480,8 @@ done in Headers() above. sub GetHeader { my $self = shift; my $tag = shift; - foreach my $line (split(/\n/,$self->SUPER::Headers)) { - if ($line =~ /^\Q$tag\E:\s+(.*)$/i) { #if we find the header, return its value + foreach my $line ($self->_SplitHeaders) { + if ($line =~ /^\Q$tag\E:\s+(.*)$/si) { #if we find the header, return its value return ($1); } } @@ -504,7 +504,7 @@ sub SetHeader { my $tag = shift; my $newheader = ''; - foreach my $line (split(/\n/,$self->SUPER::Headers)) { + foreach my $line ($self->_SplitHeaders) { if (defined $tag and $line =~ /^\Q$tag\E:\s+(.*)$/i) { $newheader .= "$tag: $_[0]\n"; undef $tag; @@ -557,6 +557,54 @@ sub _Value { # }}} +=head2 _SplitHeaders + +Returns an array of this attachment object's headers, with one header +per array entry. multiple lines are folded + +=begin testing + +my $test1 = "From: jesse"; +my @headers = RT::Attachment->_SplitHeaders($test1); +is ($#headers, 0, $test1 ); + +my $test2 = qq{From: jesse +To: bobby +Subject: foo +}; + +@headers = RT::Attachment->_SplitHeaders($test2); +is ($#headers, 2, "testing a bunch of singline multiple headers" ); + + +my $test3 = qq{From: jesse +To: bobby, + Suzie, + Sally, + Joey: bizzy, +Subject: foo +}; + +@headers = RT::Attachment->_SplitHeaders($test3); +is ($#headers, 2, "testing a bunch of singline multiple headers" ); + + +=end testing + +=cut + +sub _SplitHeaders { + my $self = shift; + my $headers = (shift || $self->SUPER::Headers()); + my @headers; + for (split(/\n(?=\w|\z)/,$headers)) { + push @headers, $_; + + } + return(@headers); +} + + sub ContentLength { my $self = shift; diff --git a/rt/lib/RT/CachedGroupMembers_Overlay.pm b/rt/lib/RT/CachedGroupMembers_Overlay.pm index 500a54feb..09c63cbf5 100644 --- a/rt/lib/RT/CachedGroupMembers_Overlay.pm +++ b/rt/lib/RT/CachedGroupMembers_Overlay.pm @@ -51,7 +51,7 @@ no warnings qw(redefine); =head2 LimitToUsers Limits this search object to users who are members of this group -This is really useful when you want to haave your UI seperate out +This is really useful when you want to have your UI separate out groups from users for display purposes =cut @@ -78,7 +78,7 @@ sub LimitToUsers { =head2 LimitToGroups Limits this search object to Groups who are members of this group -This is really useful when you want to haave your UI seperate out +This is really useful when you want to have your UI separate out groups from users for display purposes =cut diff --git a/rt/lib/RT/CurrentUser.pm b/rt/lib/RT/CurrentUser.pm index 7fcc65ce3..abaf87608 100755 --- a/rt/lib/RT/CurrentUser.pm +++ b/rt/lib/RT/CurrentUser.pm @@ -241,9 +241,9 @@ sub Load { $self->SUPER::LoadById($identifier); } - elsif (UNIVERSAL::isa($identifier,"RT::User")) { - # DWIM if they pass a user in - $self->SUPER::LoadById($identifier->Id); + elsif (UNIVERSAL::isa($identifier,"RT::User")) { + # DWIM if they pass a user in + $self->SUPER::LoadById($identifier->Id); } else { # This is a bit dangerous, we might get false authen if somebody @@ -330,19 +330,24 @@ ok ($cu->loc('Before') eq "Avant", "Localized TEST_STRING into Frenc"); sub LanguageHandle { my $self = shift; - if ((!defined $self->{'LangHandle'}) || - (!UNIVERSAL::can($self->{'LangHandle'}, 'maketext')) || - (@_)) { - if ( $self->Lang) { - push @_, $self->Lang; - } + if ( ( !defined $self->{'LangHandle'} ) + || ( !UNIVERSAL::can( $self->{'LangHandle'}, 'maketext' ) ) + || (@_) ) { + if ( (!$RT::SystemUser || $self->id == $RT::SystemUser->id() )) { + @_ = qw(en-US); + } + + elsif ( $self->Lang ) { + push @_, $self->Lang; + } $self->{'LangHandle'} = RT::I18N->get_handle(@_); } + # Fall back to english. - unless ($self->{'LangHandle'}) { + unless ( $self->{'LangHandle'} ) { die "We couldn't get a dictionary. Nye mogu naidti slovar. No puedo encontrar dictionario."; } - return ($self->{'LangHandle'}); + return ( $self->{'LangHandle'} ); } sub loc { diff --git a/rt/lib/RT/Date.pm b/rt/lib/RT/Date.pm index 355370ada..609db1b45 100644 --- a/rt/lib/RT/Date.pm +++ b/rt/lib/RT/Date.pm @@ -529,6 +529,24 @@ sub ISO { # }}} +# {{{ sub W3CDTF + +=head2 W3CDTF + +Takes nothing + +Returns the object's date in W3C DTF format + +=cut + +sub W3CDTF { + my $self = shift; + my $date = $self->ISO . 'Z'; + $date =~ s/ /T/; + return $date; +}; + +# }}} # {{{ sub LocalTimezone =head2 LocalTimezone diff --git a/rt/lib/RT/EmailParser.pm b/rt/lib/RT/EmailParser.pm index bba4d7ec7..e9a00f16c 100644 --- a/rt/lib/RT/EmailParser.pm +++ b/rt/lib/RT/EmailParser.pm @@ -35,7 +35,8 @@ use File::Temp qw/tempdir/; =head1 NAME - RT::Interface::CLI - helper functions for creating a commandline RT interface + RT::EmailParser - helper functions for parsing parts from incoming + email messages =head1 SYNOPSIS @@ -295,205 +296,6 @@ sub ParseTicketId { # }}} -# {{{ sub MailError - -=head2 MailError { } - - -# TODO this doesn't belong here. -# TODO doc this - - -=cut - - -sub MailError { - my $self = shift; - - 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" ); - - my $mimeobj = $args{'MIMEObj'}; - $mimeobj->sync_headers(); - $entity->add_part($mimeobj); - - if ( $RT::MailCommand eq 'sendmailpipe' ) { - open( MAIL, "|$RT::SendmailPath $RT::SendmailArguments" ) || return (0); - print MAIL $entity->as_string; - close(MAIL); - } - else { - $entity->send( $RT::MailCommand, $RT::MailParams ); - } -} - -# }}} - - - -# {{{ sub GetCurrentUser - -sub GetCurrentUser { - my $self = shift; - my $ErrorsTo = shift; - - my %UserInfo = (); - - #Suck the address of the sender out of the header - my ( $Address, $Name ) = $self->ParseSenderAddressFromHead(); - - my $tempuser = RT::User->new($RT::SystemUser); - - #This will apply local address canonicalization rules - $Address = $tempuser->CanonicalizeEmailAddress($Address); - - #If desired, synchronize with an external database - my $UserFoundInExternalDatabase = 0; - - # Username is the 'Name' attribute of the user that RT uses for things - # like authentication - my $Username = undef; - ( $UserFoundInExternalDatabase, %UserInfo ) = - $self->LookupExternalUserInfo( $Address, $Name ); - - $Address = $UserInfo{'EmailAddress'}; - $Username = $UserInfo{'Name'}; - - #Get us a currentuser object to work with. - my $CurrentUser = RT::CurrentUser->new(); - - # First try looking up by a username, if we got one from the external - # db lookup. Next, try looking up by email address. Failing that, - # try looking up by users who have this user's email address as their - # username. - - if ($Username) { - $CurrentUser->LoadByName($Username); - } - - unless ( $CurrentUser->Id ) { - $CurrentUser->LoadByEmail($Address); - } - - #If we can't get it by email address, try by name. - unless ( $CurrentUser->Id ) { - $CurrentUser->LoadByName($Address); - } - - unless ( $CurrentUser->Id ) { - - #If we couldn't load a user, determine whether to create a user - - # {{{ If we require an incoming address to be found in the external - # user database, reject the incoming message appropriately - if ( $RT::SenderMustExistInExternalDatabase - && !$UserFoundInExternalDatabase ) { - - my $Message = - "Sender's email address was not found in the user database."; - - # {{{ This code useful only if you've defined an AutoRejectRequest template - - require RT::Template; - my $template = new RT::Template($RT::Nobody); - $template->Load('AutoRejectRequest'); - $Message = $template->Content || $Message; - - # }}} - - MailError( - To => $ErrorsTo, - Subject => "Ticket Creation failed: user could not be created", - Explanation => $Message, - MIMEObj => $self->Entity, - LogLevel => 'notice' ); - - return ($CurrentUser); - - } - - # }}} - - else { - 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' - ); - - unless ($Val) { - - # Deal with the race condition of two account creations at once - # - if ($Username) { - $NewUser->LoadByName($Username); - } - - 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 => $self->Entity, - LogLevel => 'crit' ); - } - } - } - - #Load the new user object - $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 => $self->Entity, - LogLevel => 'crit' ); - - } - } - - return ($CurrentUser); - -} - -# }}} # {{{ ParseCcAddressesFromHead @@ -789,19 +591,20 @@ A private instance method which sets up a mime parser to do its job ## Over max size and return them sub _SetupMIMEParser { - my $self = shift; + my $self = shift; my $parser = shift; - my $AttachmentDir = File::Temp::tempdir( TMPDIR => 1, CLEANUP => 1 ); # Set up output directory for files: - $parser->output_dir("$AttachmentDir"); - $parser->filer->ignore_filename(1); + my $tmpdir = File::Temp::tempdir( TMPDIR => 1, CLEANUP => 1 ); + push ( @{ $self->{'AttachmentDirs'} }, $tmpdir ); + $parser->output_dir($tmpdir); + $parser->filer->ignore_filename(1); #If someone includes a message, extract it $parser->extract_nested_messages(1); - $parser->extract_uuencode(1); ### default is false + $parser->extract_uuencode(1); ### default is false # Set up the prefix for files with auto-generated names: $parser->output_prefix("part"); @@ -810,8 +613,16 @@ sub _SetupMIMEParser { $parser->output_to_core(0); } + # }}} +sub DESTROY { + my $self = shift; + File::Path::rmtree([@{$self->{'AttachmentDirs'}}],0,1); +} + + + eval "require RT::EmailParser_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/EmailParser_Vendor.pm}); eval "require RT::EmailParser_Local"; diff --git a/rt/lib/RT/GroupMembers_Overlay.pm b/rt/lib/RT/GroupMembers_Overlay.pm index 1259fd61a..96f092861 100644 --- a/rt/lib/RT/GroupMembers_Overlay.pm +++ b/rt/lib/RT/GroupMembers_Overlay.pm @@ -51,7 +51,7 @@ no warnings qw(redefine); =head2 LimitToUsers Limits this search object to users who are members of this group. -This is really useful when you want to haave your UI seperate out +This is really useful when you want to have your UI separate out groups from users for display purposes =cut @@ -78,7 +78,7 @@ sub LimitToUsers { =head2 LimitToGroups Limits this search object to Groups who are members of this group. -This is really useful when you want to haave your UI seperate out +This is really useful when you want to have your UI separate out groups from users for display purposes =cut diff --git a/rt/lib/RT/Groups_Overlay.pm b/rt/lib/RT/Groups_Overlay.pm index a9ca44c7d..4a3231e98 100644 --- a/rt/lib/RT/Groups_Overlay.pm +++ b/rt/lib/RT/Groups_Overlay.pm @@ -229,6 +229,45 @@ sub WithMember { } +=head2 WithRight { Right => RIGHTNAME, Object => RT::Record, IncludeSystemRights => 1, IncludeSuperusers => 0 } + + +Find all groups which have RIGHTNAME for RT::Record. Optionally include global rights and superusers. By default, include the global rights, but not the superusers. + +=begin testing + +my $q = RT::Queue->new($RT::SystemUser); +my ($id, $msg) =$q->Create( Name => 'GlobalACLTest'); +ok ($id, $msg); + +my $testuser = RT::User->new($RT::SystemUser); +($id,$msg) = $testuser->Create(Name => 'JustAnAdminCc'); +ok ($id,$msg); + +my $global_admin_cc = RT::Group->new($RT::SystemUser); +$global_admin_cc->LoadSystemRoleGroup('AdminCc'); +ok($global_admin_cc->id, "Found the global admincc group"); +my $groups = RT::Groups->new($RT::SystemUser); +$groups->WithRight(Right => 'OwnTicket', Object => $q); +is($groups->Count, 1); +($id, $msg) = $global_admin_cc->PrincipalObj->GrantRight(Right =>'OwnTicket', Object=> $RT::System); +ok ($id,$msg); +ok (!$testuser->HasRight(Object => $q, Right => 'OwnTicket') , "The test user does not have the right to own tickets in the test queue"); +($id, $msg) = $q->AddWatcher(Type => 'AdminCc', PrincipalId => $testuser->id); +ok($id,$msg); +ok ($testuser->HasRight(Object => $q, Right => 'OwnTicket') , "The test user does have the right to own tickets now. thank god."); + +$groups = RT::Groups->new($RT::SystemUser); +$groups->WithRight(Right => 'OwnTicket', Object => $q); +ok ($id,$msg); +is($groups->Count, 2); + +=end testing + + +=cut + + sub WithRight { my $self = shift; my %args = ( Right => undef, @@ -237,7 +276,6 @@ sub WithRight { IncludeSuperusers => undef, @_ ); - my $groupprinc = $self->NewAlias('Principals'); my $acl = $self->NewAlias('ACL'); # {{{ Find only rows where the right granted is the one we're looking up or _possibly_ superuser @@ -274,7 +312,7 @@ sub WithRight { $or_check_roles = " OR ( ( (main.Domain = 'RT::Queue-Role' AND main.Instance = " . $args{'Object'}->Id . ") $or_check_ticket_roles ) " . - " AND main.Type = $acl.PrincipalType AND main.id = $groupprinc.id) "; + " AND main.Type = $acl.PrincipalType) "; } if ( $args{'IncludeSystemRights'} ) { @@ -292,12 +330,11 @@ sub WithRight { $self->_AddSubClause( "WhichGroup", qq{ - ( ( $acl.PrincipalId = $groupprinc.id + ( ( $acl.PrincipalId = main.id AND $acl.PrincipalType = 'Group' AND ( main.Domain = 'SystemInternal' OR main.Domain = 'UserDefined' - OR main.Domain = 'ACLEquivalence') - AND main.id = $groupprinc.id) + OR main.Domain = 'ACLEquivalence')) $or_check_roles) } ); @@ -319,7 +356,7 @@ sub LimitToEnabled { ALIAS1 => 'main', FIELD1 => 'id', TABLE2 => 'Principals', - FIELD2 => 'ObjectId' + FIELD2 => 'id' ); $self->Limit( ALIAS => $alias, @@ -345,7 +382,7 @@ sub LimitToDeleted { ALIAS1 => 'main', FIELD1 => 'id', TABLE2 => 'Principals', - FIELD2 => 'ObjectId' + FIELD2 => 'id' ); $self->{'find_disabled_rows'} = 1; @@ -356,5 +393,18 @@ sub LimitToDeleted { ); } # }}} + +sub _DoSearch { + my $self = shift; + + #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. + unless($self->{'find_disabled_rows'}) { + $self->LimitToEnabled(); + } + + return($self->SUPER::_DoSearch(@_)); + +} + 1; diff --git a/rt/lib/RT/Handle.pm b/rt/lib/RT/Handle.pm index 9b611b903..e60bbd924 100644 --- a/rt/lib/RT/Handle.pm +++ b/rt/lib/RT/Handle.pm @@ -58,18 +58,17 @@ Takes nothing. Calls SUPER::Connect with the needed args =cut sub Connect { -my $self=shift; - + my $self = shift; - if ($RT::DatabaseType eq 'Oracle') { + if ( $RT::DatabaseType eq 'Oracle' ) { $ENV{'NLS_LANG'} = ".UTF8"; } - $self->SUPER::Connect( - User => $RT::DatabaseUser, - Password => $RT::DatabasePassword, - ); - + $self->SUPER::Connect( User => $RT::DatabaseUser, + Password => $RT::DatabasePassword, ); + + $self->dbh->{LongReadLen} = $RT::MaxAttachmentSize; + } =item BuildDSN diff --git a/rt/lib/RT/I18N/cs.po b/rt/lib/RT/I18N/cs.po index 75f349595..213df41e1 100644 --- a/rt/lib/RT/I18N/cs.po +++ b/rt/lib/RT/I18N/cs.po @@ -259,7 +259,7 @@ msgid "(Check box to delete)" msgstr "(ZatrhnÄ›te pro smazání)" #: html/Ticket/Create.html:178 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Zadejte identifikátory Äi URL požadavku, oddÄ›lené mezerami)" #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 diff --git a/rt/lib/RT/I18N/da.po b/rt/lib/RT/I18N/da.po new file mode 100644 index 000000000..6677cf076 --- /dev/null +++ b/rt/lib/RT/I18N/da.po @@ -0,0 +1,4651 @@ +# $Id: da.po,v 1.1 2004-11-11 12:12:57 ivan Exp $ + +msgid "" +msgstr "" + +#: html/Elements/MyRequests:27 html/Elements/MyTickets:27 +msgid "#" +msgstr "#" + +#: NOT FOUND IN SOURCE +msgid "#%1" +msgstr "#%1" + +#: 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 +#. ($Ticket->Id, $Ticket->Subject) +#. ($Ticket->id, $Ticket->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "#%1: %2" +msgstr "#%1: %2" + +#: lib/RT/Date.pm:337 +#. ($s, $time_unit) +msgid "%1 %2" +msgstr "%1 %2" + +#: lib/RT/Tickets_Overlay.pm:771 +#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +msgid "" +msgstr "" + +#: 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 "%2 %1 %3 %4:%5:%6 %7" + +#: lib/RT/Ticket_Overlay.pm:3569 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "%1 %2 tilføjet" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "%1 %2 siden" + +#: lib/RT/Ticket_Overlay.pm:3575 lib/RT/Transaction_Overlay.pm:564 +#. ($cf->Name, $old_value, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 %2 ændret til %3" + +#: lib/RT/Ticket_Overlay.pm:3572 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#. ($cf->Name, $old_value) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "%1 %2 slettet" + +#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 with template %3" +msgstr "%1 %2 med skabelon %3" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "%1 (%2) %3 denne ticket\\n" + +#: html/Search/Listing.html:56 +#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +msgid "%1 - %2 shown" +msgstr "%1 - %2 vist" + +#: bin/rt-crontool:168 bin/rt-crontool:175 bin/rt-crontool:181 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "%1 - Et argument til afsendelse til %2" + +#: bin/rt-crontool:184 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - Send status opdateringer til STDOUT" + +#: bin/rt-crontool:178 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - Specificér den aktion du ønsker at benytte" + +#: bin/rt-crontool:172 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - Specificer det betingelses modul du ønsker at benytte" + +#: bin/rt-crontool:165 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - Specificer det søge modul du ønsker at benytte" + +#: lib/RT/ScripAction_Overlay.pm.orig:121 lib/RT/ScripAction_Overlay.pm:121 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "%1 ScripAktion indlæst" + +#: lib/RT/Ticket_Overlay.pm:3602 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "%1 tilføjet som en værdi for %2" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on" +msgstr "%1 aliaser kræver en TicketID at arbejde pÃ¥" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on (from %2) %3" +msgstr "%1 aliaser kræver en TicketID at arbejde pÃ¥ (fra %2) %3" + +#: lib/RT/Link_Overlay.pm:116 lib/RT/Link_Overlay.pm:123 +#. ($args{'Base'}) +#. ($args{'Target'}) +msgid "%1 appears to be a local object, but can't be found in the database" +msgstr "%1 synes at være et lokalt object, men kan ikke findes i databasen" + +#: html/Ticket/Elements/ShowDates:51 lib/RT/Transaction_Overlay.pm:481 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 af %2" + +#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:675 lib/RT/Transaction_Overlay.pm:684 lib/RT/Transaction_Overlay.pm:687 +#. ($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 ændret fra %2 til %3" + +#: lib/RT/Interface/Web.pm:893 +msgid "%1 could not be set to %2." +msgstr "%1 kunne ikke sættes til %2" + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "%1 kun ikke initiere en transaktion (%2)\\n" + +#: lib/RT/Ticket_Overlay.pm:2867 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 kunne ikke sætte status til løst. RT's Database er muligvis inkonsistent" + +#: html/Elements/MyTickets:24 +#. ($rows) +msgid "%1 highest priority tickets I own..." +msgstr "%1 højest prioriteterede tickets jeg ejer..." + +#: html/Elements/MyRequests:24 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "%1 højest prioriterede tickets jeg har anmodet om" + +#: bin/rt-crontool:160 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "%1 er et værktøj som reagerer pÃ¥ tickets fra et eksternt skedulerings værktøj sÃ¥som cron." + +#: lib/RT/Queue_Overlay.pm:743 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 er ikke længere en %2 for denne kø" + +#: lib/RT/Ticket_Overlay.pm:1587 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 er ikke længere en %2 for denne ticket." + +#: lib/RT/Ticket_Overlay.pm:3658 +#. ($args{'Value'}, $cf->Name) +msgid "%1 is no longer a value for custom field %2" +msgstr "%1 er ikke længere en værdi for special felt %2" + +#: NOT FOUND IN SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "%1 er ikke en lovlig kø ID" + +#: html/Ticket/Elements/ShowBasics:35 +#. ($TimeWorked) +msgid "%1 min" +msgstr "%1 min." + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "%1 ikke vist" + +#: html/User/Elements/DelegateRights:75 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "%1 rettigheder" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "%1 lykkedes" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "%1 type er ukendt for $MessageId" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "%1 type ukendt for %2" + +#: lib/RT/Action/ResolveMembers.pm:41 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 vil løse samtlige alle medlemmer af en løst gruppe ticket." + +#MANGLER + +#: 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 " + +#: lib/RT/Transaction_Overlay.pm:433 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: ingen vedhæftet fil angivet" + +#: html/Ticket/Elements/ShowTransaction:88 +#. ($size) +msgid "%1b" +msgstr "%1b" + +#: html/Ticket/Elements/ShowTransaction:85 +#. (int($size/102.4)/10) +msgid "%1k" +msgstr "%1k" + +#: lib/RT/Ticket_Overlay.pm:1176 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "'%1' er ikke en valid status værdi" + +#: NOT FOUND IN SOURCE +msgid "'%1' not a recognized action. " +msgstr "'%1' er ikke en genkendt aktion. " + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete scrip)" +msgstr "(Check box til sletning af scrip)" + +#: 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/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 +msgid "(Check box to delete)" +msgstr "(Check box til sletning)" + +#: html/Ticket/Create.html:177 +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Indtast ticket ids eller URLSs, separeret af mellemrum)" + +#MANGLER +#: 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 "(Hvis ikke angivet vil defaulte til %1" + +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +msgid "(No custom fields)" +msgstr "(Ingen custom felter)" + +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +msgid "(No members)" +msgstr "(Ingen medlemmer)" + +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +msgid "(No scrips)" +msgstr "(Ingen scrips)" + +#: html/Admin/Elements/EditTemplates:30 +msgid "(No templates)" +msgstr "(Ingen templates)" + +#: html/Ticket/Update.html:83 +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 blind karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Ændrer <b>IKKE</b> hvem som vil modtage fremtidige opdateringer.)" + +#: 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 blind karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Ændrer <b>IKKE</b> hvem som vil modtage fremtidige opdateringer.)" + +#: 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 "(Sender en karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Disse <b>vil</b> modtage fremtidige opdateringer.)" + +#: html/Ticket/Update.html:79 +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 karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Ændrer <b>IKKE</b> hvem som vil modtage fremtidige opdateringer.)" + +#: 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 karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Disse <b>vil</b> modtage fremtidige opdateringer.)" + +#: 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 "(Sender en karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Disse <b>vil</b> modtage fremtidige opdateringer.)" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +msgid "(empty)" +msgstr "(tom)" + +#: html/Admin/Users/index.html:38 +msgid "(no name listed)" +msgstr "(intet navn listet)" + +#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 +msgid "(no subject)" +msgstr "(intet emne)" + +#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:60 html/Ticket/Elements/ShowCustomFields:35 lib/RT/Transaction_Overlay.pm:534 +msgid "(no value)" +msgstr "(ingen værdi)" + +#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:115 +msgid "(only one ticket)" +msgstr "(kun en ticket)" + +#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 +msgid "(pending approval)" +msgstr "(afventer godkendelse)" + +#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 +msgid "(pending other tickets)" +msgstr "(afventer andre tickets)" + +#: html/Admin/Users/Modify.html:49 +msgid "(required)" +msgstr "(obligatorisk)" + +#: html/Ticket/Elements/ShowTransaction:91 +msgid "(untitled)" +msgstr "(unavngiven)" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "25 højest prioriterede tickets jeg ejer..." + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "25 højest prioriterede tickets jeg har anmodet..." + +#: html/Ticket/Elements/ShowBasics:31 +msgid "<% $Ticket->Status%>" +msgstr "<% $Ticket->Status%>" + +#: html/Elements/SelectTicketTypes:26 +msgid "<% $_ %>" +msgstr "<% $_ %>" + +#MANGLER +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"Ny ticket i\"> %1" + +#: etc/initialdata:203 +msgid "A blank template" +msgstr "En blank template" + +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +msgid "ACE not found" +msgstr "ACE ikke fundet" + +#: lib/RT/ACE_Overlay.pm:830 +msgid "ACEs can only be created and deleted." +msgstr "ACEs kan kun blive oprettet og slettet" + +#: bin/rt-commit-handler:754 +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Afbryder for a undgÃ¥ utilsigtede ticket ændringer" + +#: html/User/Elements/Tabs:31 +msgid "About me" +msgstr "Om mig" + +#: html/Admin/Users/Modify.html:79 +msgid "Access control" +msgstr "Adgangskontrol" + +#: html/Admin/Elements/EditScrip:56 +msgid "Action" +msgstr "Aktion" + +#: lib/RT/Scrip_Overlay.pm:146 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "Aktion %1 ikke fundet" + +#MANGLER +#: bin/rt-crontool:122 +msgid "Action committed." +msgstr "Aktion " + +#: bin/rt-crontool:118 +msgid "Action prepared..." +msgstr "Aktion forberedt" + +#: html/Search/Bulk.html:95 +msgid "Add AdminCc" +msgstr "Tilføj AdminCc" + +#: html/Search/Bulk.html:91 +msgid "Add Cc" +msgstr "Tilføj Cc" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 +msgid "Add More Files" +msgstr "Tilføj flere filer" + +#: html/Search/Bulk.html:87 +msgid "Add Requestor" +msgstr "Tilføj Anmoder" + +#: html/Admin/Elements/AddCustomFieldValue:24 +msgid "Add Value" +msgstr "Tilføj værdi" + +#: NOT FOUND IN SOURCE +msgid "Add a new a global scrip" +msgstr "Tilføj en ny global scrip" + +#: NOT FOUND IN SOURCE +msgid "Add a scrip to this queue" +msgstr "Tilføj en scrip til denne kø" + +#: html/Admin/Global/Scrip.html:54 +msgid "Add a scrip which will apply to all queues" +msgstr "Tilføj en scrip som vil virke for alle køer" + +#: html/Search/Bulk.html:127 +msgid "Add comments or replies to selected tickets" +msgstr "Tilføj kommentarer eller svar til valgte tickets" + +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +msgid "Add members" +msgstr "Tilføj medlemmer" + +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +msgid "Add new watchers" +msgstr "Tilføj nye watchers" + +HERTIL + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "TilføjNæsteStatus" + +#: lib/RT/Queue_Overlay.pm:643 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "Tilføjede principal som %1 for denne kø" + +#: lib/RT/Ticket_Overlay.pm:1471 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "Tilføjede principal som %1 for denne ticket" + +#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:87 +msgid "Address1" +msgstr "Adresse1" + +#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:89 +msgid "Address2" +msgstr "Adresse2" + +#: html/Ticket/Create.html:73 +msgid "Admin Cc" +msgstr "Admin Cc" + +#: etc/initialdata:280 +msgid "Admin Comment" +msgstr "Admin Kommentar" + +#: etc/initialdata:259 +msgid "Admin Correspondence" +msgstr "Admin Korrespondance" + +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +msgid "Admin queues" +msgstr "Admin Køer" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "Admin brugere" + +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +msgid "Admin/Global configuration" +msgstr "Amin/Global konfiguration" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "Admin/Grupper" + +#Mangler +#: html/Admin/Queues/Modify.html:24 html/Admin/Queues/Modify.html:28 +msgid "Admin/Queue/Basics" +msgstr "Admin/Køer/Basics" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "AdminAllPersonligeGrupper" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 lib/RT/ACE_Overlay.pm:88 +msgid "AdminCc" +msgstr "AdminCc" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "AdminKommentar" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "AdminKorrespondance" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "AdminCustomFields" +msgstr "AdminCustomFelter" + +#: lib/RT/Group_Overlay.pm:145 +msgid "AdminGroup" +msgstr "AdminGruppe" + +#: lib/RT/Group_Overlay.pm:147 +msgid "AdminGroupMembership" +msgstr "AdminGruppeMedlemskab" + +#: lib/RT/System.pm:58 +msgid "AdminOwnPersonalGroups" +msgstr "AdminEgnePersonligeGrupper" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "AdminQueue" +msgstr "AdminKø" + +#: lib/RT/System.pm:59 +msgid "AdminUsers" +msgstr "AdminBrugere" + +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +msgid "Administrative Cc" +msgstr "Administrativ Cc" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "Avanceret Søgning" + +#: html/Elements/SelectDateRelation:35 +msgid "After" +msgstr "Efter" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "Alder" + +#: etc/initialdata:348 +msgid "All Approvals Passed" +msgstr "All godkendelser godtaget" + +#: html/Admin/Elements/EditCustomFields:95 +msgid "All Custom Fields" +msgstr "Alle custom felter" + +#: html/Admin/Queues/index.html:52 +msgid "All Queues" +msgstr "Alle Køer" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "Sender altid en besked til requestoren uafhængigt af besked afsenderen" + +#: html/Elements/Tabs:55 +msgid "Approval" +msgstr "Godkendelse" + +#: 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 "Godkendelse #%1: %2" + +#: html/Approvals/index.html:53 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "Godkendelse #%1: Noter ikke gemt grundet en system fejl" + +#: html/Approvals/index.html:51 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "Godkendelse #%1: Noter gemt" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "Godkendelses detaljer" + +#: etc/initialdata:336 +msgid "Approval Passed" +msgstr "Godkendelse godtaget" + +#: etc/initialdata:359 +msgid "Approval Rejected" +msgstr "Godkendelse afvist" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "Godkendelses diagram" + +#: html/Approvals/Elements/Approve:43 +msgid "Approve" +msgstr "Godkend" + +#: etc/initialdata:486 etc/upgrade/2.1.71:148 +msgid "Approver's notes: %1" +msgstr "Apprtover's noter: %1" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "Apr." + +#: html/Elements/SelectSortOrder:34 +msgid "Ascending" +msgstr "Stigende" + +#: html/Search/Bulk.html:136 html/SelfService/Update.html:32 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 +msgid "Attach" +msgstr "Vedhæft" + +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +msgid "Attach file" +msgstr "Vedhæft fil" + +#: html/Ticket/Create.html:97 html/Ticket/Update.html:87 +msgid "Attached file" +msgstr "Vedhæftet fil" + +#: NOT FOUND IN SOURCE +msgid "Attachment '%1' could not be loaded" +msgstr "Vedhæftede fil '%1' kunne ikke indlæses" + +#: lib/RT/Transaction_Overlay.pm:441 +msgid "Attachment created" +msgstr "Vedhæftet fil oprettet" + +#: lib/RT/Tickets_Overlay.pm:1189 +msgid "Attachment filename" +msgstr "Vedhæftetfilnavn" + +#: html/Ticket/Elements/ShowAttachments:25 +msgid "Attachments" +msgstr "Vedhæftede filer" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "Aug." + +#: html/Admin/Elements/ModifyUser:65 +msgid "AuthSystem" +msgstr "AuthSystem" + +#: etc/initialdata:206 +msgid "Autoreply" +msgstr "Autosvar" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "Autosvar til Requestere" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "AutoSvarTilRequestere" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "Ubrugelig PGP Signatur: %1\\n" + +#: NOT FOUND IN SOURCE +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "Ubrugelig vedhæftelses id. Kunne ikke lokaliserer vedhæftet fil '%1'\\n" + +#: bin/rt-commit-handler:826 +#. ($val) +msgid "Bad data in %1" +msgstr "DÃ¥rlige data i %1" + +#: NOT FOUND IN SOURCE +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "Ubrugeligt transaktionsnummer for vedhæftet fil. %1 skulle være %2\\n" + +#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 +msgid "Basics" +msgstr "Basics" + +#: html/Ticket/Update.html:81 +msgid "Bcc" +msgstr "Bcc" + +#: html/Admin/Elements/EditScrip:87 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/User/Groups/Modify.html:55 +msgid "Be sure to save your changes" +msgstr "Vær sikker pÃ¥ at gemme dine ændringer" + +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:321 +msgid "Before" +msgstr "Før" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "PÃ¥begynd godkendelse" + +#: etc/initialdata:202 +msgid "Blank" +msgstr "Tom" + +#: html/Search/Listing.html:78 +msgid "Bookmarkable URL for this search" +msgstr "URl for denne søgning som kan gemmes som bookmark" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +msgid "Brief headers" +msgstr "Korte headers" + +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +msgid "Bulk ticket update" +msgstr "Masse-ticket opdatering" + +#: lib/RT/User_Overlay.pm:1524 +msgid "Can not modify system users" +msgstr "Kan ikke modificere system brugere" + +#: lib/RT/Queue_Overlay.pm:66 +msgid "Can this principal see this queue" +msgstr "Kan denne principal se denne kø" + +#: lib/RT/CustomField_Overlay.pm:205 +msgid "Can't add a custom field value without a name" +msgstr "Kan ikke tilføje custom felt værdi uden et navn" + +#: lib/RT/Link_Overlay.pm:131 +msgid "Can't link a ticket to itself" +msgstr "Kan ikke linke en ticket til den selv" + +#: lib/RT/Ticket_Overlay.pm:2844 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "Kan ikke sammensætte ind i en sammensat ticket. Du skulle aldrig fÃ¥ denne fejl" + +#: lib/RT/Ticket_Overlay.pm:2646 lib/RT/Ticket_Overlay.pm:2725 +msgid "Can't specifiy both base and target" +msgstr "Kan ikke specificere bÃ¥de base og mÃ¥l" + +#: html/autohandler:113 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "Kan ikke oprette bruger: %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:44 html/Ticket/Update.html:76 lib/RT/ACE_Overlay.pm:87 +msgid "Cc" +msgstr "Cc" + +#: html/SelfService/Prefs.html:30 +msgid "Change password" +msgstr "Skift adgangskode" + +#: html/Ticket/Create.html:100 html/Ticket/Update.html:90 +msgid "Check box to delete" +msgstr "Vælg boks for at slette" + +#: html/Admin/Elements/SelectRights:30 +msgid "Check box to revoke right" +msgstr "Vælg boks for a indrage rettighed" + +#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:130 html/Ticket/Elements/EditLinks:68 html/Ticket/Elements/ShowLinks:56 +msgid "Children" +msgstr "Børn" + +#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:91 +msgid "City" +msgstr "By" + +#: html/Ticket/Elements/ShowDates:46 +msgid "Closed" +msgstr "Lukket" + +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "Lukkede Tickets" + +#: NOT FOUND IN SOURCE +msgid "Closed requests" +msgstr "Lukkede requests" + +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "Lukkede requests" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "Kommando ikke forstÃ¥et!\\n" + +#: html/Ticket/Elements/ShowTransaction:165 html/Ticket/Elements/Tabs:152 +msgid "Comment" +msgstr "Kommentar" + +#: html/Admin/Elements/ModifyQueue:44 html/Admin/Queues/Modify.html:57 +msgid "Comment Address" +msgstr "Kommentar adresse" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "Kommentar ikke skrevet" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Comment on tickets" +msgstr "Kommentér pÃ¥ tickets" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "CommentOnTicket" +msgstr "KommenterPÃ¥Ticket" + +#: html/Admin/Elements/ModifyUser:34 +msgid "Comments" +msgstr "Kommentarer" + +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:68 +msgid "Comments (Not sent to requestors)" +msgstr "Kommentarer (ikke sendt til requestere)" + +#: html/Search/Bulk.html:131 +msgid "Comments (not sent to requestors)" +msgstr "Kommentarer (ikke sendt til requestere)" + +#: html/Elements/ViewUser:26 +#. ($name) +msgid "Comments about %1" +msgstr "Kommentarer pÃ¥ %1" + +#: html/Admin/Users/Modify.html:184 html/Ticket/Elements/ShowRequestor:43 +msgid "Comments about this user" +msgstr "Kommentarer om denne bruger" + +#: lib/RT/Transaction_Overlay.pm:543 +msgid "Comments added" +msgstr "Kommentarer tilføjet" + +#: lib/RT/Action/Generic.pm:139 +msgid "Commit Stubbed" +msgstr "Commit Ryddet" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "Oversættelses Restriktioner" + +#: html/Admin/Elements/EditScrip:40 +msgid "Condition" +msgstr "Betingelse" + +#: bin/rt-crontool:108 +msgid "Condition matches..." +msgstr "Betingelser matcher..." + +#: lib/RT/Scrip_Overlay.pm:159 +msgid "Condition not found" +msgstr "Betingelse ikke fundet" + +#: html/Elements/Tabs:49 +msgid "Configuration" +msgstr "Konfiguration" + +#: html/SelfService/Prefs.html:32 +msgid "Confirm" +msgstr "Bekræft" + +#: html/Admin/Elements/ModifyUser:59 +msgid "ContactInfoSystem" +msgstr "KontaktInfomationsSystem" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "Dato kontaktet: '%1' kunne ikke parses" + +#: html/Admin/Elements/ModifyTemplate:43 html/Ticket/ModifyAll.html:86 +msgid "Content" +msgstr "Indhold" + +#: etc/initialdata:271 +msgid "Correspondence" +msgstr "Korrespondance" + +#: html/Admin/Elements/ModifyQueue:38 html/Admin/Queues/Modify.html:50 +msgid "Correspondence Address" +msgstr "Korrespondance adresse" + +#: lib/RT/Transaction_Overlay.pm:539 +msgid "Correspondence added" +msgstr "Korrenspondance tilføjet" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "Korrespondance ikke gemt" + +#: lib/RT/Ticket_Overlay.pm:3589 +msgid "Could not add new custom field value for ticket. " +msgstr "Ikke muligt at tilføje ny custom felt værdi for ticket. " + +#: lib/RT/Ticket_Overlay.pm:3095 lib/RT/Ticket_Overlay.pm:3103 lib/RT/Ticket_Overlay.pm:3120 +msgid "Could not change owner. " +msgstr "Ikke muligt at skifte ejer" + +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:165 +#. ($msg) +msgid "Could not create CustomField" +msgstr "Ikke muligt at oprette Custom felt" + +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 +msgid "Could not create group" +msgstr "Ikke muligt at oprette gruppe" + +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#. ($msg) +msgid "Could not create template: %1" +msgstr "Ikke muligt at oprette template: %1" + +#: lib/RT/Ticket_Overlay.pm:1109 lib/RT/Ticket_Overlay.pm:352 +msgid "Could not create ticket. Queue not set" +msgstr "Ikke muligt at oprette ticket. Kø ikke sat" + +#: lib/RT/User_Overlay.pm:267 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:483 +msgid "Could not create user" +msgstr "Ikke muligt at oprette bruger" + +#: NOT FOUND IN SOURCE +msgid "Could not find a ticket with id %1" +msgstr "Ikke muligt at finde ticket med id %1" + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "Ikke muligt at finde gruppe %1" + +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1439 +msgid "Could not find or create that user" +msgstr "Ikke muligt at finde eller oprette den bruger" + +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1518 +msgid "Could not find that principal" +msgstr "Ikke muligt at finde principal" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "Ikke muligt at finde bruger %1" + +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +msgid "Could not load group" +msgstr "Ikke muligt at indlæse gruppe" + +#: lib/RT/Queue_Overlay.pm:641 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "Kunne ikke g¯re den principal %1 for denne k¯" + +#: lib/RT/Ticket_Overlay.pm:1460 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "Kunne ikke g¯re den prinicipal %1 for denne ticket" + +#: lib/RT/Queue_Overlay.pm:740 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "Kunne ikke fjerne den principal %1 for denne k¯" + +#: lib/RT/Ticket_Overlay.pm:1576 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "Kunne ikke fjerne den principal %1 for denne ticket" + +#: lib/RT/Group_Overlay.pm:984 +msgid "Couldn't add member to group" +msgstr "Kunne ikke tilf¯je medlem til gruppe" + +#: lib/RT/Ticket_Overlay.pm:3599 lib/RT/Ticket_Overlay.pm:3655 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "Kunne ikke oprette en lave transaktion: %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't figure out what to do from gpg's reply\\n" +msgstr "Kunne ikke afg¯re hvad som skulle foretages ud fra GPG's svar\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find group\\n" +msgstr "Kunne ikke finde gruppe\\n" + +#: lib/RT/Interface/Web.pm:902 +msgid "Couldn't find row" +msgstr "Kunne ikke finde row" + +#: lib/RT/Group_Overlay.pm:958 +msgid "Couldn't find that principal" +msgstr "Kunne ikke finde den principal" + +#: lib/RT/CustomField_Overlay.pm:239 +msgid "Couldn't find that value" +msgstr "Kunne ikke finde den vÊrdi" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find user\\n" +msgstr "Kunne ikke finde bruger\\n" + +#: lib/RT/CurrentUser.pm:111 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Kunne ikke indlÊse %1 fra bruger database.\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "Kunne ikke indlÊse RT konfigurations fil '%1' %2" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Scrips." +msgstr "Kunne ikke indlÊse Scrips." + +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#. ($id) +msgid "Couldn't load group %1" +msgstr "Kunne ikke indlÊse gruppe %1" + +#: lib/RT/Link_Overlay.pm:174 lib/RT/Link_Overlay.pm:183 lib/RT/Link_Overlay.pm:210 +msgid "Couldn't load link" +msgstr "Kunne ikke indlÊse link" + +#: html/Admin/Elements/EditCustomFields:146 html/Admin/Queues/People.html:120 +#. ($id) +msgid "Couldn't load queue" +msgstr "Kunne ikke indlÊse k¯" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "Kunne ikke indlÊse k¯ %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "Kunne ikke indlÊse scrip" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "Kunne ikke indlÊse template" + +#: html/Admin/Users/Prefs.html:78 +#. ($id) +msgid "Couldn't load that user (%1)" +msgstr "Kunne ikke indlÊse den bruger (%1)" + +#: html/SelfService/Display.html:108 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Kunne ikke indlÊse ticket '%1'" + +#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:97 +msgid "Country" +msgstr "Land" + +#: html/Admin/Elements/CreateUserCalled:25 html/Ticket/Create.html:134 html/Ticket/Create.html:194 +msgid "Create" +msgstr "opret" + +#: etc/initialdata:127 +msgid "Create Tickets" +msgstr "opret Tickets" + +#: html/Admin/Elements/EditCustomField:74 +msgid "Create a CustomField" +msgstr "opret et Custom felt" + +#: html/Admin/Queues/CustomField.html:47 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "opret et Custom felt for k¯ %1" + +#: html/Admin/Global/CustomField.html:47 +msgid "Create a CustomField which applies to all queues" +msgstr "opret et Custom felt som gÊlder for alle k¯er" + +#: NOT FOUND IN SOURCE +msgid "Create a new Custom Field" +msgstr "opret et nyt Custom felt" + +#: NOT FOUND IN SOURCE +msgid "Create a new global scrip" +msgstr "opret en ny global scrip" + +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +msgid "Create a new group" +msgstr "opret en ny gruppe" + +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +msgid "Create a new personal group" +msgstr "opret en ny personlig gruppe" + +#: NOT FOUND IN SOURCE +msgid "Create a new queue" +msgstr "opret en ny gruppe" + +#: NOT FOUND IN SOURCE +msgid "Create a new scrip" +msgstr "opret en ny scrip" + +#: NOT FOUND IN SOURCE +msgid "Create a new template" +msgstr "opret en ny template" + +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +msgid "Create a new ticket" +msgstr "opret en ny ticket" + +#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:240 +msgid "Create a new user" +msgstr "opret en ny bruger" + +#: html/Admin/Queues/Modify.html:103 +msgid "Create a queue" +msgstr "opret en ny k¯" + +#: NOT FOUND IN SOURCE +msgid "Create a queue called" +msgstr "opret en k¯ med navnet" + +#: NOT FOUND IN SOURCE +msgid "Create a request" +msgstr "opret en request" + +#: html/Admin/Queues/Scrip.html:58 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "opret en scrip for k¯ %1" + +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +msgid "Create a template" +msgstr "opret en template" + +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "opret en ticket" + +#: etc/initialdata:129 +msgid "Create new tickets based on this scrip's template" +msgstr "opret en ny ticket baseret p denne scrip's template" + +#: html/SelfService/Create.html:77 +msgid "Create ticket" +msgstr "opret ticket" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "Create tickets in this queue" +msgstr "opret tickets i denne k¯" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Create, delete and modify custom fields" +msgstr "opret, slet og rediger custom felter" + +#: lib/RT/Queue_Overlay.pm:67 +msgid "Create, delete and modify queues" +msgstr "opret, slet og rediger k¯er" + +#: NOT FOUND IN SOURCE +msgid "Create, delete and modify the members of any user's personal groups" +msgstr "opret, slet og rediger medlemmerne af vilkÂrlig brugers personlige grupper" + +#: lib/RT/System.pm:58 +msgid "Create, delete and modify the members of personal groups" +msgstr "opret, slet og rediger medlemmernes personlie grupper" + +#: lib/RT/System.pm:59 +msgid "Create, delete and modify users" +msgstr "opret, slet og rediger brugere" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "CreateTicket" +msgstr "OpretTicket" + +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:26 lib/RT/Ticket_Overlay.pm:1203 +msgid "Created" +msgstr "Oprettet" + +#: html/Admin/Elements/EditCustomField:87 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "Oprettede Customer felt %1" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "Oprettede template %1" + +#: html/Ticket/Elements/EditLinks:27 +msgid "Current Relationships" +msgstr "Nuværende relationer" + +#: html/Admin/Elements/EditScrips:29 +msgid "Current Scrips" +msgstr "Nuværende Scrips" + +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +msgid "Current members" +msgstr "Nuværende medlemmer" + +#: html/Admin/Elements/SelectRights:28 +msgid "Current rights" +msgstr "Nuværende rettigheder" + +#: html/Search/Listing.html:70 +msgid "Current search criteria" +msgstr "Nuværende søgekriterier" + +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +msgid "Current watchers" +msgstr "NuvÊrende watchere" + +#: html/Admin/Global/CustomField.html:54 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "Custom Field #%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 "Custom Felter" + +#: html/Admin/Elements/EditScrip:72 +msgid "Custom action cleanup code" +msgstr "Custom aktion oprydnings kode" + +#: html/Admin/Elements/EditScrip:64 +msgid "Custom action preparation code" +msgstr "Custom aktion forberedelses kode" + +#: html/Admin/Elements/EditScrip:48 +msgid "Custom condition" +msgstr "Custom betingelse" + +#: lib/RT/Tickets_Overlay.pm:1618 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "Custom felt %1 %2 %3" + +#: lib/RT/Tickets_Overlay.pm:1613 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "Custom felt %1 har vÊrdi." + +#: lib/RT/Tickets_Overlay.pm:1610 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "Custom felt %1 har ingen vÊrdi." + +#: lib/RT/Ticket_Overlay.pm:3491 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Custom felt %1 ikke fundet" + +#: html/Admin/Elements/EditCustomFields:196 +msgid "Custom field deleted" +msgstr "Custom felt slettet" + +#: lib/RT/Ticket_Overlay.pm:3641 +msgid "Custom field not found" +msgstr "Custom felt ikke fundet" + +#: lib/RT/CustomField_Overlay.pm:349 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "Custom felt vÊrdi %1 kunne ikke blive fundet for custom felt %2" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "Custom felt vÊrdi Êndret fra %1 to %2" + +#: lib/RT/CustomField_Overlay.pm:249 +msgid "Custom field value could not be deleted" +msgstr "Custom felt vÊrdi kunne ikke slettes" + +#: lib/RT/CustomField_Overlay.pm:355 +msgid "Custom field value could not be found" +msgstr "Custom felt vÊrdi kunne ikke findes" + +#: lib/RT/CustomField_Overlay.pm:247 lib/RT/CustomField_Overlay.pm:357 +msgid "Custom field value deleted" +msgstr "Custom felt vÊrdi slettet" + +#: lib/RT/Transaction_Overlay.pm:548 +msgid "CustomField" +msgstr "CustomFelt" + +#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 +msgid "Dates" +msgstr "Datoer" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "Dec." + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "Default Autosvars Template" + +#: etc/initialdata:207 +msgid "Default Autoresponse template" +msgstr "Default autosvars template" + +#: etc/initialdata:281 +msgid "Default admin comment template" +msgstr "Default administrator kommentar template" + +#: etc/initialdata:260 +msgid "Default admin correspondence template" +msgstr "Default administrator korrespondance template" + +#: etc/initialdata:272 +msgid "Default correspondence template" +msgstr "Default korrespondance template" + +#: etc/initialdata:238 +msgid "Default transaction template" +msgstr "Default transaktions template" + +#: lib/RT/Transaction_Overlay.pm:694 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "Default: %1/%2 Êndret til %3 to %4" + +#: html/User/Delegation.html:24 html/User/Delegation.html:27 +msgid "Delegate rights" +msgstr "Overdrag rettigheder" + +#: lib/RT/System.pm:62 +msgid "Delegate specific rights which have been granted to you." +msgstr "Overdrag specifikke rettigeder som er blevet tildelt til dig." + +#: lib/RT/System.pm:62 +msgid "DelegateRights" +msgstr "OverdragRettigheder" + +#: html/User/Elements/Tabs:37 +msgid "Delegation" +msgstr "Overdragelse" + +#: NOT FOUND IN SOURCE +msgid "Delete" +msgstr "Slet" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Delete tickets" +msgstr "Slet tickets" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "DeleteTicket" +msgstr "SletTicket" + +#: lib/RT/Transaction_Overlay.pm:187 +msgid "Deleting this object could break referential integrity" +msgstr "Sletning af dette objekt kan ¯delÊgge referentiel integritet" + +#: lib/RT/Queue_Overlay.pm:293 +msgid "Deleting this object would break referential integrity" +msgstr "Sletning af dette objekt vil ¯delÊgge referentiel integritet" + +#: lib/RT/User_Overlay.pm:499 +msgid "Deleting this object would violate referential integrity" +msgstr "Sletning af dette objekt vil stride mod referentiel integritet" + +#: html/Approvals/Elements/Approve:44 +msgid "Deny" +msgstr "Afvis" + +#: html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:122 html/Ticket/Elements/EditLinks:46 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 +msgid "Depended on by" +msgstr "Afhængighed til" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "Afhængigheder: \\n" + +#: lib/RT/Transaction_Overlay.pm:626 +#. ($value) +msgid "Dependency by %1 added" +msgstr "Afhængighed til %1 tilf¯jet" + +#: lib/RT/Transaction_Overlay.pm:655 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "Afhængighed til %1 slettet" + +#: lib/RT/Transaction_Overlay.pm:624 +#. ($value) +msgid "Dependency on %1 added" +msgstr "Afhængighed af %1 tilf¯jet" + +#: lib/RT/Transaction_Overlay.pm:653 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "Afhængighed af %1 slettet" + +#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:179 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:118 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 +msgid "Depends on" +msgstr "Afhængig af" + +#: html/Elements/SelectSortOrder:34 +msgid "Descending" +msgstr "Faldende" + +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +msgid "Describe the issue below" +msgstr "Beskriv problemet nedenfor" + +#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 +msgid "Description" +msgstr "Beskrivelse" + +#: NOT FOUND IN SOURCE +msgid "Details" +msgstr "Detaljer" + +#: html/Ticket/Elements/Tabs:84 +msgid "Display" +msgstr "Vis" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "Display Access Control List" +msgstr "Vis Adgangs Kontrol Liste" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "Display Scrip templates for this queue" +msgstr "Vis Scrip templates for denne kø" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "Display Scrips for this queue" +msgstr "Vis scrips for denne kø" + +#: html/Ticket/Elements/ShowHistory:34 +msgid "Display mode" +msgstr "Visnings modus" + +#: NOT FOUND IN SOURCE +msgid "Display ticket #%1" +msgstr "Vis ticket #%1" + +#: lib/RT/System.pm:53 +msgid "Do anything and everything" +msgstr "Gør noget og alting" + +#: html/Elements/Refresh:29 +msgid "Don't refresh this page." +msgstr "Genindlæs ikke denne side-" + +#: html/Search/Elements/PickRestriction:113 +msgid "Don't show search results" +msgstr "Vis ikke søge resultater" + +#: html/Ticket/Elements/ShowTransaction:91 +msgid "Download" +msgstr "Download" + +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:42 lib/RT/Ticket_Overlay.pm:1207 +msgid "Due" +msgstr "Forfaldende" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "Forfaldsdato '%1' kunne ikke parses" + +#: bin/rt-commit-handler:753 +#. ($1, $msg) +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "FEJL: Kunne ikke indlæse ticket '%1': %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "Editér" + +#: html/Admin/Queues/CustomFields.html:44 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "Editér customer felter for %1" + +#: html/Search/Bulk.html:143 html/Ticket/ModifyLinks.html:35 +msgid "Edit Relationships" +msgstr "Editér forhold" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "Editér Templates for kø %1" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "Editér scrips" + +#: html/Admin/Global/index.html:45 +msgid "Edit system templates" +msgstr "Editér system templates" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "Editér templates for %1" + +#: html/Admin/Elements/ModifyQueue:24 html/Admin/Queues/Modify.html:118 +#. ($QueueObj->Name) +#. ($QueueObj->Id) +msgid "Editing Configuration for queue %1" +msgstr "Editér Konfiguration for kø %1" + +#: html/Admin/Elements/ModifyUser:24 +#. ($UserObj->Name) +msgid "Editing Configuration for user %1" +msgstr "Editerer Konfiguration for bruger %1" + +#: html/Admin/Elements/EditCustomField:90 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Editerer Custom felt %1" + +#: html/Admin/Groups/Members.html:31 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Editerer medlemskab for gruppe %1" + +#: html/User/Groups/Members.html:128 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "Editerer medlemskab for personlig gruppe %1" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "Editerer template %1" + +#: lib/RT/Ticket_Overlay.pm:2660 lib/RT/Ticket_Overlay.pm:2738 +msgid "Either base or target must be specified" +msgstr "Enten base eller mÃ¥l skal være specificeret" + +#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:41 +msgid "Email" +msgstr "E-mail" + +#: lib/RT/User_Overlay.pm:247 +msgid "Email address in use" +msgstr "E-mail adresse i brug" + +#: html/Admin/Elements/ModifyUser:41 +msgid "EmailAddress" +msgstr "E-mailAdresse" + +#: html/Admin/Elements/ModifyUser:53 +msgid "EmailEncoding" +msgstr "E-mail encoding" + +#: html/Admin/Elements/EditCustomField:50 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "Aktiveret (Fravalg af denne boks deaktiverer dette custom felt)" + +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "Aktiveret (Fravalg af denne boks deaktiverer denne gruppe)" + +#: html/Admin/Queues/Modify.html:83 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Aktiveret (Fravalg af denne boks deaktiverer denne kø)" + +#: html/Admin/Elements/EditCustomFields:98 +msgid "Enabled Custom Fields" +msgstr "Aktiverede Custom felter" + +#: html/Admin/Queues/index.html:55 +msgid "Enabled Queues" +msgstr "Aktiverede Køer" + +#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:282 html/User/Groups/Modify.html:116 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "Aktiverede status %1" + +#: lib/RT/CustomField_Overlay.pm:427 +msgid "Enter multiple values" +msgstr "Indtast flere værdier" + +#: lib/RT/CustomField_Overlay.pm:424 +msgid "Enter one value" +msgstr "Indtast en værdi" + +#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:111 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Indtast tickets eller URIs for linkning af tickets. Separer flere værdier med mellemrum." + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +msgid "Error" +msgstr "Fejl" + +#: lib/RT/Queue_Overlay.pm:555 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Fejl i parametre til Queue->AddWatcher" + +#: lib/RT/Queue_Overlay.pm:713 +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Fejl i parametre til Queue->DelWatcher" + +#: lib/RT/Ticket_Overlay.pm:1392 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Fejl i parametre til Ticket->AddWatcher" + +#: lib/RT/Ticket_Overlay.pm:1549 +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Fejl i parametre til Ticket->DelWatcher" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "Alle" + +#: bin/rt-crontool:193 +msgid "Example:" +msgstr "Eksempel:" + +#: html/Admin/Elements/ModifyUser:63 +msgid "ExternalAuthId" +msgstr "ExternalAuthId" + +#: html/Admin/Elements/ModifyUser:57 +msgid "ExternalContactInfoId" +msgstr "ExternalContactInfoId" + +#: html/Admin/Users/Modify.html:72 +msgid "Extra info" +msgstr "Ekstra information" + +#: lib/RT/User_Overlay.pm:363 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Fejlede i lokalisering 'Priviledged' brugere pseudogruppe." + +#: lib/RT/User_Overlay.pm:370 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Fejlede i lokalisering af 'Unproviledged' brugere pseudogruppe" + +#: bin/rt-crontool:137 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "Fejlede i indlæsningen af modul %1. (%2)" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "Feb." + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "Slut" + +#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 lib/RT/Tickets_Overlay.pm:1091 +msgid "Final Priority" +msgstr "Endelig Prioritet" + +#: lib/RT/Ticket_Overlay.pm:1198 +msgid "FinalPriority" +msgstr "EndeligPrioritet" + +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +msgid "Find group whose" +msgstr "Find gruppe hvis" + +#: NOT FOUND IN SOURCE +msgid "Find new/open tickets" +msgstr "Find nye/Ã¥bne tickets" + +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +msgid "Find people whose" +msgstr "Find folk hvis" + +#: html/Search/Listing.html:107 +msgid "Find tickets" +msgstr "Find tickets" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "Afslut godkendelse" + +#: html/Ticket/Elements/Tabs:57 +msgid "First" +msgstr "Første" + +#: html/Search/Listing.html:40 +msgid "First page" +msgstr "Første side" + +#: docs/design_docs/string-extraction-guide.txt:33 +msgid "Foo Bar Baz" +msgstr "Foo Bar Baz" + +#: docs/design_docs/string-extraction-guide.txt:24 +msgid "Foo!" +msgstr "Foo!" + +#: html/Search/Bulk.html:86 +msgid "Force change" +msgstr "gennemtving ændring" + +#: html/Search/Listing.html:105 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "Fandt %quant(%1,ticket)" + +#: lib/RT/Interface/Web.pm:904 +msgid "Found Object" +msgstr "Fandt Objekt" + +#: html/Admin/Elements/ModifyUser:43 +msgid "FreeformContactInfo" +msgstr "FreeformContactInfo" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformMultiple" +msgstr "FreeformMultiple" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "FreeformSingle" +msgstr "FreeformSingle" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "Fre." + +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +msgid "Full headers" +msgstr "Fulde headers" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "Henter the nuværende bruger fra en PGP signatur\\n" + +#: lib/RT/Transaction_Overlay.pm:593 +#. ($New->Name) +msgid "Given to %1" +msgstr "Givet til %1" + +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +msgid "Global" +msgstr "Global" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "Globale Scrips" + +#: html/Admin/Elements/SelectTemplate:37 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "Global template: %1" + +#: html/Admin/Elements/EditCustomFields:74 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:40 +msgid "Go!" +msgstr "Start!" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "God PGP signatur fra %1\\n" + +#: html/Search/Listing.html:49 +msgid "Goto page" +msgstr "GÃ¥ til side" + +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +msgid "Goto ticket" +msgstr "GÃ¥ til ticket" + +#: html/Ticket/Elements/AddWatchers:45 html/User/Elements/DelegateRights:77 +msgid "Group" +msgstr "Gruppe" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "Gruppe %1 %2: %3" + +#: 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 "Gruppe Rettigheder" + +#: lib/RT/Group_Overlay.pm:964 +msgid "Group already has member" +msgstr "Gruppe har allerede medlem" + +#: html/Admin/Groups/Modify.html:76 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "Gruppe kunne ikke blive oprettet: %1" + +#: lib/RT/Group_Overlay.pm:496 +msgid "Group created" +msgstr "Gruppe oprettet" + +#: lib/RT/Group_Overlay.pm:1132 +msgid "Group has no such member" +msgstr "Gruppen har sÃ¥dan et medlem" + +#: lib/RT/Group_Overlay.pm:944 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1446 lib/RT/Ticket_Overlay.pm:1524 +msgid "Group not found" +msgstr "Gruppe ikke fundet" + +#: NOT FOUND IN SOURCE +msgid "Group not found.\\n" +msgstr "Gruppe ikke fundet.\\n" + +#: NOT FOUND IN SOURCE +msgid "Group not specified.\\n" +msgstr "Gruppe ikke angivet.\\n" + +#: 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 "Grupper" + +#: lib/RT/Group_Overlay.pm:970 +msgid "Groups can't be members of their members" +msgstr "Grupper kan ikke være medlemmer af deres medlemmer" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +msgid "Hello!" +msgstr "Hej!" + +#: docs/design_docs/string-extraction-guide.txt:40 +#. ($name) +msgid "Hello, %1" +msgstr "Hej, %1" + +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:87 +msgid "History" +msgstr "Historie" + +#: html/Admin/Elements/ModifyUser:67 +msgid "HomePhone" +msgstr "HjemmeTelefon" + +#: html/Elements/Tabs:43 +msgid "Homepage" +msgstr "Homepage" + +#: lib/RT/Base.pm:73 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "Jeg har %quant(%1,concrete mixer)." + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "Jeg har [quant,_1,concrete mixer]." + +#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1018 +msgid "Id" +msgstr "Id" + +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +msgid "Identity" +msgstr "Identitet" + +#: etc/initialdata:411 etc/upgrade/2.1.71:86 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "Hvis en godkendelse bliver afvist, afvis den originale og slet ventede godkendelser" + +#: bin/rt-crontool:189 +msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." +msgstr "Hvis dette værktøj var setgid, kunne en fjendtlig bruger benytte dette værktøj til at opnÃ¥ administrat adgang til 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 "Hvis du har opdateret noget ovenfor, vær da sikker pÃ¥ at" + +#: lib/RT/Interface/Web.pm:896 +msgid "Illegal value for %1" +msgstr "Ulovlig værdi for %1" + +#: lib/RT/Interface/Web.pm:899 +msgid "Immutable field" +msgstr "Uforanderligt felt" + +#: html/Admin/Elements/EditCustomFields:73 +msgid "Include disabled custom fields in listing." +msgstr "Medtag deaktiverede custom felter i liste." + +#: html/Admin/Queues/index.html:42 +msgid "Include disabled queues in listing." +msgstr "Medtag deaktiverede køer i liste." + +#: html/Admin/Users/index.html:46 +msgid "Include disabled users in search." +msgstr "Medtag deaktiverede brugere i liste." + +#: lib/RT/Tickets_Overlay.pm:1067 +msgid "Initial Priority" +msgstr "Initiel Prioritet" + +#: lib/RT/Ticket_Overlay.pm:1197 lib/RT/Ticket_Overlay.pm:1199 +msgid "InitialPriority" +msgstr "InitielPrioritet" + +#: lib/RT/ScripAction_Overlay.pm.orig:104 lib/RT/ScripAction_Overlay.pm:104 +msgid "Input error" +msgstr "Input fejl" + +#: lib/RT/Ticket_Overlay.pm:3866 +msgid "Internal Error" +msgstr "Intern Fejl" + +#: lib/RT/Record.pm:142 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "Intern Fejl: %1" + +#: lib/RT/Group_Overlay.pm:643 +msgid "Invalid Group Type" +msgstr "Ikke valid Gruppe Type" + +#: lib/RT/Principal_Overlay.pm:127 +msgid "Invalid Right" +msgstr "Ikke valid Rettighed" + +#: lib/RT/Interface/Web.pm:901 +msgid "Invalid data" +msgstr "Ikke valide data" + +#: lib/RT/Ticket_Overlay.pm:457 +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "Ikke valid ejer, Default'er til 'nobody'" + +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm.orig:250 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "Ikke valid kø" + +#: 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 "Ikke valid rettighed" + +#: lib/RT/Record.pm:117 +#. ($key) +msgid "Invalid value for %1" +msgstr "Ikke valid værdi for %1" + +#: lib/RT/Ticket_Overlay.pm:3498 +msgid "Invalid value for custom field" +msgstr "Ikke valid værdi for custom felt" + +#: lib/RT/Ticket_Overlay.pm:364 +msgid "Invalid value for status" +msgstr "Ikke valid værdi for status" + +#: bin/rt-crontool:190 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "Det er af højeste vigtighed at ikke-privilegerede brugere ikke fÃ¥r adgang til at køre dette værktøj." + +#: bin/rt-crontool:191 +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 anbefales at du opretter en ikke-priviligeret unix bruger med det korrekte gruppe medlemsjab og RT adgang for at benytte dette værktøj." + +#: bin/rt-crontool:162 +msgid "It takes several arguments:" +msgstr "Det tager adskellige argumenter:" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "Elementer som afventer min godkendelse" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "Jan." + +#: lib/RT/Group_Overlay.pm:148 +msgid "Join or leave this group" +msgstr "Tilslut eller forlad denne gruppe" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "Jul." + +#: html/Ticket/Elements/Tabs:98 +msgid "Jumbo" +msgstr "Jumbo" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "Jun." + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "Nøgleord" + +#: html/Admin/Elements/ModifyUser:51 +msgid "Lang" +msgstr "Sprog" + +#: html/Ticket/Elements/Tabs:72 +msgid "Last" +msgstr "Sidste" + +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:38 +msgid "Last Contact" +msgstr "Sidste kontakt" + +#: html/Elements/SelectDateType:28 +msgid "Last Contacted" +msgstr "Sidst kontaktet" + +#: html/Search/Elements/TicketHeader:40 +msgid "Last Notified" +msgstr "Sidst Notificeret" + +#: html/Elements/SelectDateType:29 +msgid "Last Updated" +msgstr "Sidst Opdateret" + +#: NOT FOUND IN SOURCE +msgid "Left" +msgstr "Tilbage" + +#: html/Admin/Users/Modify.html:82 +msgid "Let this user access RT" +msgstr "Lad denne bruger fÃ¥ adgang til RT" + +#: html/Admin/Users/Modify.html:86 +msgid "Let this user be granted rights" +msgstr "Lad denne bruger fÃ¥ rettigheder" + +#: NOT FOUND IN SOURCE +msgid "Limiting owner to %1 %2" +msgstr "Begrænser ejer til %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Limiting queue to %1 %2" +msgstr "Begrænser kø til %1 %2" + +#: lib/RT/Ticket_Overlay.pm:2752 +msgid "Link already exists" +msgstr "Link eksisterer allerede" + +#: lib/RT/Ticket_Overlay.pm:2764 +msgid "Link could not be created" +msgstr "Link kunne ikke blive oprettet" + +#: lib/RT/Ticket_Overlay.pm:2772 lib/RT/Ticket_Overlay.pm:2784 +#. ($TransString) +msgid "Link created (%1)" +msgstr "Link oprettet (%1)" + +#: lib/RT/Ticket_Overlay.pm:2685 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Link slettet (%1)" + +#: lib/RT/Ticket_Overlay.pm:2691 +msgid "Link not found" +msgstr "Link ikke fundet" + +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "Link ticket #%1" + +#: html/Ticket/Elements/Tabs:96 +msgid "Links" +msgstr "Links" + +#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:84 +msgid "Location" +msgstr "Lokation" + +#: lib/RT.pm:162 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "Log directory %1 kunne ikke findes eller skrive til.\\n RT kan ikke køre." + +#: html/Elements/Header:57 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "Logget ind som %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +msgid "Login" +msgstr "Log ind" + +#: html/Elements/Header:54 +msgid "Logout" +msgstr "Log ud" + +#: html/Search/Bulk.html:85 +msgid "Make Owner" +msgstr "Lav Ejer" + +#: html/Search/Bulk.html:109 +msgid "Make Status" +msgstr "Lav Status" + +#: html/Search/Bulk.html:117 +msgid "Make date Due" +msgstr "Sæt forfaldsdato" + +#: html/Search/Bulk.html:119 +msgid "Make date Resolved" +msgstr "Sæt løsnings dato" + +#: html/Search/Bulk.html:113 +msgid "Make date Started" +msgstr "Sæt startet dato" + +#: html/Search/Bulk.html:111 +msgid "Make date Starts" +msgstr "Sæ startes dato" + +#: html/Search/Bulk.html:115 +msgid "Make date Told" +msgstr "Sæt dato fortalt" + +#: html/Search/Bulk.html:105 +msgid "Make priority" +msgstr "Sæt Prioritet" + +#: html/Search/Bulk.html:107 +msgid "Make queue" +msgstr "Sæt kø" + +#: html/Search/Bulk.html:103 +msgid "Make subject" +msgstr "Sæt emne" + +#: html/Admin/index.html:32 +msgid "Manage groups and group membership" +msgstr "Administrer grupper og gruppe medlemskab" + +#: html/Admin/index.html:38 +msgid "Manage properties and configuration which apply to all queues" +msgstr "Administrer egenskaber og konfiguration som gælder for alle køer" + +#: html/Admin/index.html:35 +msgid "Manage queues and queue-specific properties" +msgstr "Administrer køer og kø-specifikke egenskaber" + +#: html/Admin/index.html:29 +msgid "Manage users and passwords" +msgstr "Administrer brugere og adgangskoder" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "Mar." + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "Maj." + +#: lib/RT/Transaction_Overlay.pm:635 +#. ($value) +msgid "Member %1 added" +msgstr "Medlem %1 tilføjet" + +#: lib/RT/Transaction_Overlay.pm:664 +#. ($value) +msgid "Member %1 deleted" +msgstr "Medlem %1 slettet" + +#: lib/RT/Group_Overlay.pm:981 +msgid "Member added" +msgstr "Medlem tilføjet" + +#: lib/RT/Group_Overlay.pm:1139 +msgid "Member deleted" +msgstr "Medlem slettet" + +#: lib/RT/Group_Overlay.pm:1143 +msgid "Member not deleted" +msgstr "Medlem ikke slettet" + +#: html/Elements/SelectLinkType:25 +msgid "Member of" +msgstr "Medlem af" + +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +msgid "Members" +msgstr "Medlemmer" + +#: lib/RT/Transaction_Overlay.pm:633 +#. ($value) +msgid "Membership in %1 added" +msgstr "Medlemskan af %1 tilføjet" + +#: lib/RT/Transaction_Overlay.pm:662 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "Medlemskab af %1 slettet" + +#: lib/RT/Ticket_Overlay.pm:2941 +msgid "Merge Successful" +msgstr "Sammensmeltning succesfuld" + +#: lib/RT/Ticket_Overlay.pm:2861 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "Sammensmeltning fejlede. Kunne ikke sætte EffectiveId" + +#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:114 +msgid "Merge into" +msgstr "Sammensmelt med" + +#: html/Search/Bulk.html:137 html/Ticket/Update.html:100 +msgid "Message" +msgstr "Besked" + +#: lib/RT/Interface/Web.pm:903 +msgid "Missing a primary key?: %1" +msgstr "Mangler en primærnøgle?: %1" + +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:53 +msgid "Mobile" +msgstr "Mobil" + +#: html/Admin/Elements/ModifyUser:71 +msgid "MobilePhone" +msgstr "MobilTelefon" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "Modify Access Control List" +msgstr "Modificér Adgangs Kontrol Liste" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "Modificér Custom Felt %1" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +msgid "Modify Custom Fields which apply to all queues" +msgstr "Modificér Custom felter som gælder for alle køer" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Modify Scrip templates for this queue" +msgstr "Modificér Scrip templates for denne kø" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "Modify Scrips for this queue" +msgstr "Modificér Scrips for denne kø" + +#: NOT FOUND IN SOURCE +msgid "Modify Template %1" +msgstr "Modificér Template %1" + +#: html/Admin/Queues/CustomField.html:44 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "Modificér CustomFelt for kø %1" + +#: html/Admin/Global/CustomField.html:52 +msgid "Modify a CustomField which applies to all queues" +msgstr "Modificér CustomFelt som gælder for alle køer" + +#: html/Admin/Queues/Scrip.html:53 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "Modificér et scrip for kø %1" + +#: html/Admin/Global/Scrip.html:47 +msgid "Modify a scrip which applies to all queues" +msgstr "Modificér et scrip som gælder for alle køer" + +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Modific+er datoer for #%1" + +#: html/Ticket/ModifyDates.html:34 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Modificér datoer for ticket # %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 "Modificér globale gruppe rettiheder" + +#: html/Admin/Global/GroupRights.html:32 +msgid "Modify global group rights." +msgstr "Modificér globale gruppe rettiheder" + +#: NOT FOUND IN SOURCE +msgid "Modify global scrips" +msgstr "Modificér globale scrips" + +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +msgid "Modify global user rights" +msgstr "Modificér globale bruger rettiheder" + +#: html/Admin/Global/UserRights.html:32 +msgid "Modify global user rights." +msgstr "Modificér globake bruger rettigehder" + +#: lib/RT/Group_Overlay.pm:145 +msgid "Modify group metadata or delete group" +msgstr "Modificér gruppe metadata eller slet gruppe" + +#: 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 "Modificér gruppe rettigheder for gruppe %1" + +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "Modificér gruppe rettigheder for kø %1" + +#: lib/RT/Group_Overlay.pm:147 +msgid "Modify membership roster for this group" +msgstr "Modificér medlemskabsliste for denne gruppe" + +#: lib/RT/System.pm:60 +msgid "Modify one's own RT account" +msgstr "Modificér ens egen RT konto" + +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Modificér folk relateret til kø %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 "Modificér folk relateret til ticket #%1" + +#: html/Admin/Queues/Scrips.html:45 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Modificér scrips for kø %1" + +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +msgid "Modify scrips which apply to all queues" +msgstr "Modificér scrips som gælder for alle køer" + +#: 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 "Modificér template %1" + +#: html/Admin/Global/Templates.html:43 +msgid "Modify templates which apply to all queues" +msgstr "Modificér templates som gælder for alle køer" + +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "Modificér gruppen %1" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Modify the queue watchers" +msgstr "Modificér kø watchers" + +#: html/Admin/Users/Modify.html:235 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "Modificer brugeren %1" + +#: html/Ticket/ModifyAll.html:36 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Modificer ticket # %1" + +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Modificer ticket #%1" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Modify tickets" +msgstr "Modificer tickets" + +#: 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 "Modificer bruger rettigheder for gruppe %1" + +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "Modificer bruger rettigheder for kø %1" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "Modificer watchers for kø '%1'" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "ModifyACL" +msgstr "ModificerACL" + +#: lib/RT/Group_Overlay.pm:148 +msgid "ModifyOwnMembership" +msgstr "ModificerEgetMedlemskab" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "ModifyQueueWatchers" +msgstr "ModificerQueueWatchers" + +#: lib/RT/Queue_Overlay.pm:75 +msgid "ModifyScrips" +msgstr "ModificerScrips" + +#: lib/RT/System.pm:60 +msgid "ModifySelf" +msgstr "ModificerSelv" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "ModifyTemplate" +msgstr "ModificerTemplate" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "ModifyTicket" +msgstr "ModificerTicket" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "Man." + +#: html/Ticket/Elements/ShowRequestor:41 +#. ($name) +msgid "More about %1" +msgstr "Mere om %1" + +#: html/Admin/Elements/EditCustomFields:60 +msgid "Move down" +msgstr "Flyt ned" + +#: html/Admin/Elements/EditCustomFields:52 +msgid "Move up" +msgstr "Flyt op" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Multiple" +msgstr "Flere" + +#: lib/RT/User_Overlay.pm:238 +msgid "Must specify 'Name' attribute" +msgstr "'Name' attribut skal angives" + +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "Mine %1 tickets" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "Mine Godkendelser" + +#: html/Approvals/index.html:24 html/Approvals/index.html:25 +msgid "My approvals" +msgstr "Mine godkendelser" + +#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 +msgid "Name" +msgstr "Navn" + +#: lib/RT/User_Overlay.pm:245 +msgid "Name in use" +msgstr "Navn i brug" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "Behøver godkendelse af system adminstrator" + +#: html/Ticket/Elements/ShowDates:51 +msgid "Never" +msgstr "Aldrig" + +#: html/Elements/Quicksearch:29 +msgid "New" +msgstr "Ny" + +#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/User/Prefs.html:64 +msgid "New Password" +msgstr "Ny adgangskode" + +#: etc/initialdata:317 etc/upgrade/2.1.71:16 +msgid "New Pending Approval" +msgstr "Ny afventende godkendelse" + +#: html/Ticket/Elements/EditLinks:110 +msgid "New Relationships" +msgstr "Nye relationer" + +#: html/Ticket/Elements/Tabs:35 +msgid "New Search" +msgstr "Ny Søgning" + +#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:39 +msgid "New custom field" +msgstr "Nyt custom felt" + +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +msgid "New group" +msgstr "Ny gruppe" + +#: html/SelfService/Prefs.html:31 +msgid "New password" +msgstr "Ny adgangskode" + +#: lib/RT/User_Overlay.pm:764 +msgid "New password notification sent" +msgstr "Ny adgangskode notifikation afsendt" + +#: html/Admin/Elements/QueueTabs:69 +msgid "New queue" +msgstr "Ny kø" + +#: NOT FOUND IN SOURCE +msgid "New request" +msgstr "Ny request" + +#: html/Admin/Elements/SelectRights:41 +msgid "New rights" +msgstr "Nye rettigheder" + +#: 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 "Ny scrip" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "Ny søgning" + +#: 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 "Ny template" + +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "Ny ticket" + +#: lib/RT/Ticket_Overlay.pm:2828 +msgid "New ticket doesn't exist" +msgstr "Ny ticket eksisterer ikke" + +#: html/Admin/Elements/UserTabs:51 +msgid "New user" +msgstr "Ny bruger" + +#: html/Admin/Elements/CreateUserCalled:25 +msgid "New user called" +msgstr "Ny bruger kaldet" + +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +msgid "New watchers" +msgstr "Nye watchers" + +#: html/Admin/Users/Prefs.html:41 +msgid "New window setting" +msgstr "Ny vindues indstilling" + +#: html/Ticket/Elements/Tabs:68 +msgid "Next" +msgstr "Næste" + +#: html/Search/Listing.html:47 +msgid "Next page" +msgstr "Næste side" + +#: html/Admin/Elements/ModifyUser:49 +msgid "NickName" +msgstr "NickName" + +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:45 +msgid "Nickname" +msgstr "Nickname" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:104 +msgid "No CustomField" +msgstr "Intet Custom felt" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +msgid "No Group defined" +msgstr "Ingen grupper definerede" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +msgid "No Queue defined" +msgstr "Ingen kø defineret" + +#: bin/rt-crontool:55 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "Ingen RT bruger fundet. Kontakt venligst din RT administrator.\\n" + +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +msgid "No Template" +msgstr "Ingen Template" + +#: bin/rt-commit-handler:763 +msgid "No Ticket specified. Aborting ticket " +msgstr "Ingen ticket angivet. Afbryder ticket" + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "Ingen ticket angivet. Afbryder ticket ændringer\\n\\n" + +#: html/Approvals/Elements/Approve:45 +msgid "No action" +msgstr "Ingen aktion" + +#: lib/RT/Interface/Web.pm:898 +msgid "No column specified" +msgstr "Ingen kolonne angivet" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "Ingen kommando fundet\\n" + +#: html/Elements/ViewUser:35 html/Ticket/Elements/ShowRequestor:44 +msgid "No comment entered about this user" +msgstr "Ingen kommentar inddateret for denne bruger" + +#: lib/RT/Ticket_Overlay.pm:2220 lib/RT/Ticket_Overlay.pm:2288 +msgid "No correspondence attached" +msgstr "Ingen korrespondance vedhæftet" + +#: lib/RT/Action/Generic.pm:149 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 "Ingen beskrivelse af %1" + +#: lib/RT/Users_Overlay.pm:150 +msgid "No group specified" +msgstr "Ingen gruppe angivet" + +#: lib/RT/User_Overlay.pm:982 +msgid "No password set" +msgstr "Ingen adgangskode sat" + +#: lib/RT/Queue_Overlay.pm:260 +msgid "No permission to create queues" +msgstr "Ingen rettighed til at oprette køer" + +#: lib/RT/Ticket_Overlay.pm:360 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "Ingen adgang til at oprette tickets i denne kø '%1'" + +#: lib/RT/User_Overlay.pm:211 +msgid "No permission to create users" +msgstr "Ingen rettighed til at oprette brugere" + +#: html/SelfService/Display.html:117 +msgid "No permission to display that ticket" +msgstr "Ingen adagang til at vise denne ticket" + +#: html/SelfService/Update.html:51 +msgid "No permission to view update ticket" +msgstr "Ingen adgang til at vise opdater ticket" + +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1505 +msgid "No principal specified" +msgstr "Ingen principal angivet" + +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +msgid "No principals selected." +msgstr "Ingen principaler valgt." + +#: html/Admin/Queues/index.html:34 +msgid "No queues matching search criteria found." +msgstr "Ingen køer fundet som matcher søge kriterie." + +#: html/Admin/Elements/SelectRights:80 +msgid "No rights found" +msgstr "Ingen rettigheder fundet" + +#: html/Admin/Elements/SelectRights:32 +msgid "No rights granted." +msgstr "Ingen rettigheder tildelt." + +#: html/Search/Bulk.html:160 +msgid "No search to operate on." +msgstr "Ingen søgning at arbejde med." + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "Ingen ticket id angivet" + +#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +msgid "No transaction type specified" +msgstr "Ingen transaktions type angivet" + +#: html/Admin/Users/index.html:35 +msgid "No users matching search criteria found." +msgstr "Ingen brugere fundet som matcher søge kriterie" + +#: bin/rt-commit-handler:643 +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "Ingen valid RT bruger fundet. RT CVS handler frakoblet. Kontakt venligst din RT administrator.\\n" + +#: lib/RT/Interface/Web.pm:895 +msgid "No value sent to _Set!\\n" +msgstr "Ingen værdi sent til _Set!\\n" + +#: html/Search/Elements/TicketRow:36 +msgid "Nobody" +msgstr "Ingen" + +#: lib/RT/Interface/Web.pm:900 +msgid "Nonexistant field?" +msgstr "Ikke eksisterende felt?" + +#: NOT FOUND IN SOURCE +msgid "Not logged in" +msgstr "Ikke logget ind" + +#: html/Elements/Header:59 +msgid "Not logged in." +msgstr "Ikke logget ind." + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "Ikke sat" + +#: html/NoAuth/Reminder.html:26 +msgid "Not yet implemented." +msgstr "Endnu ikke implementeret." + +#: NOT FOUND IN SOURCE +msgid "Not yet implemented...." +msgstr "Endnu ikke implementeret..." + +#: html/Approvals/Elements/Approve:48 +msgid "Notes" +msgstr "Noter" + +#: lib/RT/User_Overlay.pm:767 +msgid "Notification could not be sent" +msgstr "Notification kunne ikke sendes" + +#: etc/initialdata:93 +msgid "Notify AdminCcs" +msgstr "Notificér AdminCc'ere" + +#: etc/initialdata:89 +msgid "Notify AdminCcs as Comment" +msgstr "Notificér AdminCc'ere som kommentar" + +#: etc/initialdata:120 +msgid "Notify Other Recipients" +msgstr "Notificér andre modtagere" + +#: etc/initialdata:116 +msgid "Notify Other Recipients as Comment" +msgstr "Notificér andre modtagere som kommentar" + +#: etc/initialdata:85 +msgid "Notify Owner" +msgstr "Notificér ejer" + +#: etc/initialdata:81 +msgid "Notify Owner as Comment" +msgstr "Notificér ejer som kommentar" + +#: etc/initialdata:361 +msgid "Notify Owner of their rejected ticket" +msgstr "Notificér ejer om deres afviste ticket" + +#: etc/initialdata:350 +msgid "Notify Owner of their ticket has been approved by all approvers" +msgstr "Notificér ejere om deres ticket er blevet godkendt af alle Approvere" + +#: etc/initialdata:338 +msgid "Notify Owner of their ticket has been approved by some approver" +msgstr "Notificér ejere om deres ticket som er blevet godkendt af Approver" + +#: etc/initialdata:319 etc/upgrade/2.1.71:17 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "Notificér ejere og AdminCc'ere om nye emner som afventer deres godkendelse" + +#: etc/initialdata:77 +msgid "Notify Requestors" +msgstr "Notificér Requestere" + +#: etc/initialdata:103 +msgid "Notify Requestors and Ccs" +msgstr "Notificér Requestere og Cc'ere" + +#: etc/initialdata:98 +msgid "Notify Requestors and Ccs as Comment" +msgstr "Notificér Requestere og Cc'ere som kommentar" + +#: etc/initialdata:112 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "Notificér Requestere, Cc'ere og AdminCc'ere" + +#: etc/initialdata:108 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "Notificér Requestere, Cc'ere og AdminCc'ere som kommentar" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "Nov." + +#: lib/RT/Record.pm:156 +msgid "Object could not be created" +msgstr "Objekt kunne ikke oprettes" + +#: lib/RT/Record.pm:175 +msgid "Object created" +msgstr "Objekt oprettet" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "Okt." + +#: html/Elements/SelectDateRelation:34 +msgid "On" +msgstr "Ved" + +#: etc/initialdata:155 +msgid "On Comment" +msgstr "Ved kommentar" + +#: etc/initialdata:148 +msgid "On Correspond" +msgstr "Ved korrespondance" + +#: etc/initialdata:137 +msgid "On Create" +msgstr "Ved oprettelse" + +#: etc/initialdata:169 +msgid "On Owner Change" +msgstr "Ved ejerskifte" + +#: etc/initialdata:177 +msgid "On Queue Change" +msgstr "Ved køskifte" + +#: etc/initialdata:183 +msgid "On Resolve" +msgstr "Ved løsning" + +#: etc/initialdata:161 +msgid "On Status Change" +msgstr "Ved statusskifte" + +#: etc/initialdata:142 +msgid "On Transaction" +msgstr "Ved transaktion" + +#: 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 "Vis kun godkendelser for requests oprettet efter %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 "Vis kun godkendelser for requests oprettet før %1" + +#: html/Elements/Quicksearch:30 +msgid "Open" +msgstr "Ã…ben" + +#: html/Ticket/Elements/Tabs:135 +msgid "Open it" +msgstr "Ã…ben den" + +#: NOT FOUND IN SOURCE +msgid "Open requests" +msgstr "Ã…ben requests" + +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "Ã…ben tickets" + +#: html/Admin/Users/Prefs.html:40 +msgid "Open tickets (from listing) in a new window" +msgstr "Ã…ben tickets (fra liste) i et nyt vindue" + +#: html/Admin/Users/Prefs.html:39 +msgid "Open tickets (from listing) in another window" +msgstr "Ã…ben tickets (fra liste) i andet vindue" + +#: etc/initialdata:132 +msgid "Open tickets on correspondence" +msgstr "Ã…ben tickets ved korrespondance" + +#: html/Search/Elements/PickRestriction:100 +msgid "Ordering and sorting" +msgstr "Orden og sortering" + +#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Elements/SelectUsers:28 html/User/Prefs.html:85 +msgid "Organization" +msgstr "Organisation" + +#: html/Approvals/Elements/Approve:32 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "Oprindelig ticket: #%1" + +#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 +msgid "Over time, priority moves toward" +msgstr "Tid overskredet, prioritet gÃ¥r mod" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Own tickets" +msgstr "Egne tickets" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "OwnTicket" +msgstr "EgenTicket" + +#: etc/initialdata:38 html/Elements/MyRequests:31 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:62 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1244 +msgid "Owner" +msgstr "Ejer" + +#: NOT FOUND IN SOURCE +msgid "Owner changed from %1 to %2" +msgstr "Ejere ændret fra %1 til %2" + +#: lib/RT/Transaction_Overlay.pm:582 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Ejer skiftet forceret fra %1 to %2" + +#: html/Search/Elements/PickRestriction:30 +msgid "Owner is" +msgstr "Ejer er" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:55 +msgid "Pager" +msgstr "Bipper" + +#: html/Admin/Elements/ModifyUser:73 +msgid "PagerPhone" +msgstr "BipperTelefon" + +#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:126 html/Ticket/Elements/EditLinks:57 html/Ticket/Elements/ShowLinks:46 +msgid "Parents" +msgstr "Forældre" + +#: html/Elements/Login:52 html/User/Prefs.html:60 +msgid "Password" +msgstr "Adgangskode" + +#: html/NoAuth/Reminder.html:24 +msgid "Password Reminder" +msgstr "Adgangskode husker" + +#: lib/RT/User_Overlay.pm:228 lib/RT/User_Overlay.pm:985 +msgid "Password too short" +msgstr "Adgangskode for kort" + +#: html/Admin/Users/Modify.html:290 html/User/Prefs.html:171 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "Adgangskode: %1" + +#: html/Admin/Users/Modify.html:292 +msgid "Passwords do not match." +msgstr "Adgangskoder matcher ikke." + +#: html/User/Prefs.html:173 +msgid "Passwords do not match. Your password has not been changed" +msgstr "Adgangskoder matcher ikke. Din adgangskode er ikke blevet skiftet" + +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:95 html/Ticket/ModifyAll.html:50 +msgid "People" +msgstr "Folk" + +#: etc/initialdata:125 +msgid "Perform a user-defined action" +msgstr "Udfør en bruger-defineret aktion" + +#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1098 lib/RT/Group_Overlay.pm:1107 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1162 lib/RT/Group_Overlay.pm:1168 lib/RT/Group_Overlay.pm:425 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:903 lib/RT/Group_Overlay.pm:907 lib/RT/Group_Overlay.pm:920 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:196 lib/RT/Scrip_Overlay.pm:433 lib/RT/Template_Overlay.pm.orig:283 lib/RT/Template_Overlay.pm.orig:87 lib/RT/Template_Overlay.pm.orig:93 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1377 lib/RT/Ticket_Overlay.pm:1387 lib/RT/Ticket_Overlay.pm:1401 lib/RT/Ticket_Overlay.pm:1535 lib/RT/Ticket_Overlay.pm:1544 lib/RT/Ticket_Overlay.pm:1557 lib/RT/Ticket_Overlay.pm:1906 lib/RT/Ticket_Overlay.pm:2044 lib/RT/Ticket_Overlay.pm:2208 lib/RT/Ticket_Overlay.pm:2275 lib/RT/Ticket_Overlay.pm:2634 lib/RT/Ticket_Overlay.pm:2715 lib/RT/Ticket_Overlay.pm:2819 lib/RT/Ticket_Overlay.pm:2834 lib/RT/Ticket_Overlay.pm:3033 lib/RT/Ticket_Overlay.pm:3043 lib/RT/Ticket_Overlay.pm:3048 lib/RT/Ticket_Overlay.pm:3270 lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3630 lib/RT/Ticket_Overlay.pm:3682 lib/RT/Ticket_Overlay.pm:3860 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1079 lib/RT/User_Overlay.pm:1527 lib/RT/User_Overlay.pm:687 lib/RT/User_Overlay.pm:722 lib/RT/User_Overlay.pm:978 +msgid "Permission Denied" +msgstr "Adgang afvist" + +#: html/User/Elements/Tabs:34 +msgid "Personal Groups" +msgstr "Personlige Grupper" + +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +msgid "Personal groups" +msgstr "Personlige grupper" + +#: html/User/Elements/DelegateRights:36 +msgid "Personal groups:" +msgstr "Personlige grupper:" + +#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:48 +msgid "Phone numbers" +msgstr "Telefon numre" + +#: NOT FOUND IN SOURCE +msgid "Placeholder" +msgstr "Placeholder" + +#: html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 +msgid "Preferences" +msgstr "Præferencer" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "Præferencer" + +#: lib/RT/Action/Generic.pm:159 +msgid "Prepare Stubbed" +msgstr "Prepare ryddet" + +#: html/Ticket/Elements/Tabs:60 +msgid "Prev" +msgstr "Forr." + +#: html/Search/Listing.html:43 +msgid "Previous page" +msgstr "Forrige side" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "Pri" + +#: 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 "Principal %1 ikke fundet." + +#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 lib/RT/Tickets_Overlay.pm:1042 +msgid "Priority" +msgstr "Prioritet" + +#: html/Admin/Elements/ModifyQueue:50 html/Admin/Queues/Modify.html:64 +msgid "Priority starts at" +msgstr "Prioritet starter ved" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "Priviligeret" + +#: html/Admin/Users/Modify.html:270 html/User/Prefs.html:162 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "Priviligeret status: %1" + +#: html/Admin/Users/index.html:61 +msgid "Privileged users" +msgstr "Priviligerede brugere" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "Pseudogruppe til intern brug" + +#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 lib/RT/Tickets_Overlay.pm:883 +msgid "Queue" +msgstr "Kø" + +#: 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 "Kø %1 ikke fundet" + +#: NOT FOUND IN SOURCE +msgid "Queue '%1' not found\\n" +msgstr "Kø '%1' ikke fundet\\n" + +#: html/Admin/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 +msgid "Queue Name" +msgstr "Kø Navn" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "Kø Scrips" + +#: lib/RT/Queue_Overlay.pm:264 +msgid "Queue already exists" +msgstr "Kø eksisterer allerede" + +#: lib/RT/Queue_Overlay.pm:273 lib/RT/Queue_Overlay.pm:279 +msgid "Queue could not be created" +msgstr "Kø kunne ikke oprettes" + +#: html/Ticket/Create.html:204 +msgid "Queue could not be loaded." +msgstr "Kø kunne ikke indlæses" + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 +msgid "Queue created" +msgstr "Kø oprettet" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "Kø ikke angivet" + +#: html/SelfService/Display.html:70 lib/RT/CustomField_Overlay.pm:97 +msgid "Queue not found" +msgstr "Kø ikke fundet" + +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +msgid "Queues" +msgstr "Køer" + +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "Kø søgning" + +#: html/Elements/Login:44 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "RT %1" + +#: docs/design_docs/string-extraction-guide.txt:70 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "RT %1 for %2" + +#: html/Elements/Footer:32 +#. ($RT::VERSION) +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" + +#: html/Admin/index.html:24 html/Admin/index.html:25 +msgid "RT Administration" +msgstr "RT Administration" + +#: NOT FOUND IN SOURCE +msgid "RT Authentication error." +msgstr "RT Authentikeringsfejl." + +#: NOT FOUND IN SOURCE +msgid "RT Bounce: %1" +msgstr "RT Bounce: %1" + +#: NOT FOUND IN SOURCE +msgid "RT Configuration error" +msgstr "RT Konfigurationsfejl" + +#: NOT FOUND IN SOURCE +msgid "RT Critical error. Message not recorded!" +msgstr "RT Kritisk fejl. Meddelelse ikke gemt!" + +#: html/Elements/Error:41 html/SelfService/Error.html:40 +msgid "RT Error" +msgstr "RT Fejl" + +#: NOT FOUND IN SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "RT modtog e-mail (%1) fra sig selv" + +#: NOT FOUND IN SOURCE +msgid "RT Self Service / Closed Tickets" +msgstr "RT Selv-betjening / Lukkede Tickets" + +#: html/index.html:24 html/index.html:27 +msgid "RT at a glance" +msgstr "RT set fra oven" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't authenticate you" +msgstr "RT kunne ikke authentikere dig" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find requestor via its external database lookup" +msgstr "RT kunne ikke finde requester via sit eksterne database opslag" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find the queue: %1" +msgstr "RT kunne ikke finde køen: %1" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "RT kunne ikke validere denne PGP signatur. \\n" + +#: html/Elements/PageLayout:85 +#. ($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 processeret dine kommandoer" + +#: html/Elements/Login:94 +#. ('2003') +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>. Bliver distribueret under <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 af 'GNU General Public License'.</a>" + +#: NOT FOUND IN SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "RT mener at denne besked er en afvisning" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RT vil processere denne besked som var den var usigneret.\\n" + +#: 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 e-mail kommando modus kræver PGP authentikering. Enten har du ikke signeret din besked, eller ogsÃ¥ kunne din signatur ikke verificeres." + +#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/User/Prefs.html:43 +msgid "Real Name" +msgstr "Fulde Navn" + +#: html/Admin/Elements/ModifyUser:47 +msgid "RealName" +msgstr "FuldeNavn" + +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Reference by %1 added" +msgstr "Reference fra %1 tilføjet" + +#: lib/RT/Transaction_Overlay.pm:660 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "Reference fra %1 slettet" + +#: lib/RT/Transaction_Overlay.pm:629 +#. ($value) +msgid "Reference to %1 added" +msgstr "Reference til %1 tilføjet" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "Reference til %1 slettet" + +#: html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:138 html/Ticket/Elements/EditLinks:93 html/Ticket/Elements/ShowLinks:70 +msgid "Referred to by" +msgstr "Referreret til af" + +#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:134 html/Ticket/Elements/EditLinks:79 html/Ticket/Elements/ShowLinks:60 +msgid "Refers to" +msgstr "Refererer til" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "Forfin" + +#: html/Search/Elements/PickRestriction:26 +msgid "Refine search" +msgstr "Forfin søgning" + +#: html/Elements/Refresh:35 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "Genindlæs denne side hver %1 minutter" + +#: html/Ticket/Create.html:173 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 +msgid "Relationships" +msgstr "Relationer" + +#: html/Search/Bulk.html:97 +msgid "Remove AdminCc" +msgstr "Fjern AdminCc" + +#: html/Search/Bulk.html:93 +msgid "Remove Cc" +msgstr "Fjern Cc" + +#: html/Search/Bulk.html:89 +msgid "Remove Requestor" +msgstr "Fjern Requestor" + +#: html/Ticket/Elements/ShowTransaction:159 html/Ticket/Elements/Tabs:121 +msgid "Reply" +msgstr "Svar" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Reply to tickets" +msgstr "Svar pÃ¥ tickets" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "ReplyToTicket" +msgstr "SvarPÃ¥Ticket" + +#: etc/initialdata:44 html/Ticket/Update.html:39 lib/RT/ACE_Overlay.pm:86 +msgid "Requestor" +msgstr "Requestor" + +#: html/Search/Elements/PickRestriction:37 +msgid "Requestor email address" +msgstr "Requestor e-mail adresse" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "Requestor(s)" + +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +msgid "Requestors" +msgstr "Requestors" + +#: html/Admin/Elements/ModifyQueue:60 html/Admin/Queues/Modify.html:74 +msgid "Requests should be due in" +msgstr "Request skulle være forefaldende om" + +#: html/Elements/Submit:61 +msgid "Reset" +msgstr "Reset" + +#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:49 +msgid "Residence" +msgstr "Residens" + +#: html/Ticket/Elements/Tabs:131 +msgid "Resolve" +msgstr "Løs" + +#: html/Ticket/Update.html:137 +#. ($Ticket->id, $Ticket->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "Løs ticket #%1 (%2)" + +#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1206 +msgid "Resolved" +msgstr "Løst" + +#: html/Search/Bulk.html:132 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:71 +msgid "Response to requestors" +msgstr "Svar til requestors" + +#: html/Elements/ListActions:25 +msgid "Results" +msgstr "Resultater" + +#: html/Search/Elements/PickRestriction:104 +msgid "Results per page" +msgstr "Resultater per side" + +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:71 +msgid "Retype Password" +msgstr "Genskriv adgangskode" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "Rettighed %1 ikke fundet for %2 %3 i scope %4 (%5)\\n" + +#: lib/RT/ACE_Overlay.pm:612 +msgid "Right Delegated" +msgstr "Rettighed overdraget" + +#: lib/RT/ACE_Overlay.pm:302 +msgid "Right Granted" +msgstr "Rettighed Tildelt" + +#: lib/RT/ACE_Overlay.pm:160 +msgid "Right Loaded" +msgstr "Rettighed Indlæst" + +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +msgid "Right could not be revoked" +msgstr "Rettighed kunne ikke inddrages" + +#: html/User/Delegation.html:63 +msgid "Right not found" +msgstr "Rettighed ikke fundet" + +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +msgid "Right not loaded." +msgstr "Rettighed ikke indlæst." + +#: lib/RT/ACE_Overlay.pm:688 +msgid "Right revoked" +msgstr "Rettighed inddraget" + +#: html/Admin/Elements/UserTabs:40 +msgid "Rights" +msgstr "Rettigheder" + +#: lib/RT/Interface/Web.pm:794 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "Rettigheder kunne ikke tildeles %1" + +#: lib/RT/Interface/Web.pm:827 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "Rettigheder kunne ikke inddrages for %1" + +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "Roller" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "RootGodkendelse" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "Lør." + +#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyLinks.html:38 html/Ticket/ModifyPeople.html:37 +msgid "Save Changes" +msgstr "Gem Ændringer" + +#: NOT FOUND IN SOURCE +msgid "Save changes" +msgstr "Gem Ændringer" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($QueueObj->id) +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "Scrip #%1" + +#: lib/RT/Scrip_Overlay.pm:175 +msgid "Scrip Created" +msgstr "Scrip Oprettet" + +#: html/Admin/Elements/EditScrips:83 +msgid "Scrip deleted" +msgstr "Scrip slettet" + +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +msgid "Scrips" +msgstr "Scrips" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "Scrip for %1\\n" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "Scrips som gælder for alle køer" + +#: html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 +msgid "Search" +msgstr "Søg" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "Søgekriterier" + +#: html/Approvals/Elements/PendingMyApproval:38 +msgid "Search for approvals" +msgstr "Søg efter godkendelser" + +#: bin/rt-crontool:187 +msgid "Security:" +msgstr "Sikkerhed:" + +#: lib/RT/Queue_Overlay.pm:66 +msgid "SeeQueue" +msgstr "SeKø" + +#: html/Admin/Groups/index.html:39 +msgid "Select a group" +msgstr "Vælg en gruppe" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "Vælg en kø" + +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +msgid "Select a user" +msgstr "Vælg en bruger" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +msgid "Select custom field" +msgstr "Vælg custom felt" + +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +msgid "Select group" +msgstr "Vælg gruppe" + +#: lib/RT/CustomField_Overlay.pm:421 +msgid "Select multiple values" +msgstr "Vælg flere værdier" + +#: lib/RT/CustomField_Overlay.pm:418 +msgid "Select one value" +msgstr "Vælg en værdi" + +#: html/Admin/Elements/QueueTabs:66 +msgid "Select queue" +msgstr "Vælg kø" + +#: 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 "Vælg scrip" + +#: 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 "Vælg template" + +#: html/Admin/Elements/UserTabs:48 +msgid "Select user" +msgstr "Vælg bruger" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectMultiple" +msgstr "VælgFlere" + +#: lib/RT/CustomField_Overlay.pm:34 +msgid "SelectSingle" +msgstr "VælgEnkelt" + +#: NOT FOUND IN SOURCE +msgid "Self Service" +msgstr "Selv-betjening" + +#: etc/initialdata:113 +msgid "Send mail to all watchers" +msgstr "Send e-mail til alle watchers" + +#: etc/initialdata:109 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "Send e-mail til alle wathers som en \"kommentar\"" + +#: etc/initialdata:104 +msgid "Send mail to requestors and Ccs" +msgstr "Sender e-mail til requestors og Ccs" + +#: etc/initialdata:99 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "Sender e-mail til requestor og Ccs som en kommentar" + +#: etc/initialdata:78 +msgid "Sends a message to the requestors" +msgstr "Sender en besked til requestorne" + +#: etc/initialdata:117 etc/initialdata:121 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "Sender e-mail til explicit listede Ccs og Bccs" + +#: etc/initialdata:94 +msgid "Sends mail to the administrative Ccs" +msgstr "Sender e-mail til de administrative Ccs" + +#: etc/initialdata:90 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "Sender e-mail til de administrative Cc som en kommentar" + +#: etc/initialdata:82 etc/initialdata:86 +msgid "Sends mail to the owner" +msgstr "Sender e-mail til ejeren" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "Sep." + +#: NOT FOUND IN SOURCE +msgid "Show Results" +msgstr "Vis Resultater" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show approved requests" +msgstr "Vis godkendte requests" + +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +msgid "Show basics" +msgstr "Vis basic" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show denied requests" +msgstr "Vis afviste requests" + +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +msgid "Show details" +msgstr "Vis detaljer" + +#: html/Approvals/Elements/PendingMyApproval:42 +msgid "Show pending requests" +msgstr "Vis afventede requests" + +#: html/Approvals/Elements/PendingMyApproval:45 +msgid "Show requests awaiting other approvals" +msgstr "Vis requests som afventer andre godkendelser" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "Show ticket private commentary" +msgstr "Vis ticket private kommentar" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "Show ticket summaries" +msgstr "Vis ticket opsummeringer" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "ShowACL" +msgstr "VisACL" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "ShowScrips" +msgstr "VisScrips" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "ShowTemplate" +msgstr "VisTemplate" + +#: lib/RT/Queue_Overlay.pm:78 +msgid "ShowTicket" +msgstr "VisTicket" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "ShowTicketComments" +msgstr "VisTicketKommentarer" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "Tilmeld som en ticket requestor eller ticket eller kø Cc" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "Tilmeld som en ticket eller kø AdminCc" + +#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/User/Prefs.html:111 +msgid "Signature" +msgstr "Signatur" + +#: NOT FOUND IN SOURCE +msgid "Signed in as %1" +msgstr "Tilsluttet som %1" + +#: html/Admin/Elements/SelectSingleOrMultiple:25 +msgid "Single" +msgstr "Enkelt" + +#: html/Elements/Header:50 +msgid "Skip Menu" +msgstr "Skip Menu" + +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "Sorter" + +#: NOT FOUND IN SOURCE +msgid "Sort key" +msgstr "Sorteringsnøgle" + +#: html/Search/Elements/PickRestriction:108 +msgid "Sort results by" +msgstr "Sorter resultat efter" + +#: NOT FOUND IN SOURCE +msgid "SortOrder" +msgstr "SorteringsOrden" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "Stalled" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "Start side" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:34 +msgid "Started" +msgstr "Startet" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "Startet dato '%1' kunne ikke parses" + +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:30 +msgid "Starts" +msgstr "Starter" + +#: NOT FOUND IN SOURCE +msgid "Starts By" +msgstr "Starter den" + +#: NOT FOUND IN SOURCE +msgid "Starts date '%1' could not be parsed" +msgstr "Starter dato '%1' kunne ikke parses" + +#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:93 +msgid "State" +msgstr "Tilstand" + +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1200 lib/RT/Tickets_Overlay.pm:908 +msgid "Status" +msgstr "Status" + +#: etc/initialdata:294 +msgid "Status Change" +msgstr "Status Ændring" + +#: lib/RT/Transaction_Overlay.pm:528 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "Status ændret fra %1 til %2" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "StatusÆndring" + +#: html/Ticket/Elements/Tabs:146 +msgid "Steal" +msgstr "Stjæl" + +#: lib/RT/Queue_Overlay.pm:91 +msgid "Steal tickets" +msgstr "Stjæl tickets" + +#: lib/RT/Queue_Overlay.pm:91 +msgid "StealTicket" +msgstr "StjælTicket" + +#: lib/RT/Transaction_Overlay.pm:587 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "StjÃ¥let fra %1" + +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 lib/RT/Ticket_Overlay.pm:1196 lib/RT/Tickets_Overlay.pm:987 +msgid "Subject" +msgstr "Emne" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "Emne ændret til %1" + +#: html/Elements/Submit:58 +msgid "Submit" +msgstr "Send" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "Send Workflow" + +#: lib/RT/Group_Overlay.pm:748 +msgid "Succeeded" +msgstr "Lykkedes" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "Søn." + +#: lib/RT/System.pm:53 +msgid "SuperUser" +msgstr "SuperBruger" + +#: html/User/Elements/DelegateRights:76 +msgid "System" +msgstr "System" + +#: html/Admin/Elements/SelectRights:80 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:793 lib/RT/Interface/Web.pm:826 +msgid "System Error" +msgstr "System Fejl" + +#: lib/RT/ACE_Overlay.pm:615 +msgid "System error. Right not delegated." +msgstr "System fejl. Rettighed ikke overdraget" + +#: 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 "System fejl. Rettighed ikke tildelt" + +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +msgid "System groups" +msgstr "System grupper" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "SystemRolleGruppe for intern brug" + +#: lib/RT/CurrentUser.pm:319 +msgid "TEST_STRING" +msgstr "TEST_STRING" + +#: html/Ticket/Elements/Tabs:142 +msgid "Take" +msgstr "Tag" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "Take tickets" +msgstr "Tag tickets" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "TakeTicket" +msgstr "TagTickets" + +#: lib/RT/Transaction_Overlay.pm:573 +msgid "Taken" +msgstr "Taget" + +#: html/Admin/Elements/EditScrip:80 +msgid "Template" +msgstr "Template" + +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "Template #%1" + +#: html/Admin/Elements/EditTemplates:88 +msgid "Template deleted" +msgstr "Template slettet" + +#: lib/RT/Scrip_Overlay.pm:152 +msgid "Template not found" +msgstr "Template ikke fundet" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "Template ikke fundet\\n" + +#: lib/RT/Template_Overlay.pm.orig:352 lib/RT/Template_Overlay.pm:353 +msgid "Template parsed" +msgstr "Template parset" + +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +msgid "Templates" +msgstr "Templates" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "Templates for %1\\n" + +#: lib/RT/Interface/Web.pm:894 +msgid "That is already the current value" +msgstr "Det er allerede den nuværende værdi" + +#: lib/RT/CustomField_Overlay.pm:242 +msgid "That is not a value for this custom field" +msgstr "Det er ikke værdi for dette custom felt" + +#: lib/RT/Ticket_Overlay.pm:1917 +msgid "That is the same value" +msgstr "Det er den samme værdi" + +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "Den principal har allerede den rettighed" + +#: lib/RT/Queue_Overlay.pm:633 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "Den principal er allerede en %1 for denne kø" + +#: lib/RT/Ticket_Overlay.pm:1451 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "Den principal er allerede en %1 for denne ticket" + +#: lib/RT/Queue_Overlay.pm:732 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Den principal er ikke en %1 for denne kø" + +#: lib/RT/Ticket_Overlay.pm:1568 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this ticket" +msgstr "Den principal er ikke en %1 for denne ticket" + +#: lib/RT/Ticket_Overlay.pm:1913 +msgid "That queue does not exist" +msgstr "Den kø eksisterer ikke" + +#: lib/RT/Ticket_Overlay.pm:3274 +msgid "That ticket has unresolved dependencies" +msgstr "Denne har ticket har uløste afhængigheder" + +#: NOT FOUND IN SOURCE +msgid "That user already has that right" +msgstr "Den bruger har den rettighed" + +#: lib/RT/Ticket_Overlay.pm:3084 +msgid "That user already owns that ticket" +msgstr "Brugeren ejer allerede den ticket" + +#: lib/RT/Ticket_Overlay.pm:3056 +msgid "That user does not exist" +msgstr "Brugeren eksisterer ikke" + +#: lib/RT/User_Overlay.pm:376 +msgid "That user is already privileged" +msgstr "Brugere er allerede priviligeret" + +#: lib/RT/User_Overlay.pm:397 +msgid "That user is already unprivileged" +msgstr "Brugeren er allerede upriviligeret" + +#: lib/RT/User_Overlay.pm:389 +msgid "That user is now privileged" +msgstr "Brugeren er nu priviligeret" + +#: lib/RT/User_Overlay.pm:410 +msgid "That user is now unprivileged" +msgstr "Brugere er nu upriviligeret" + +#: lib/RT/Ticket_Overlay.pm:3077 +msgid "That user may not own tickets in that queue" +msgstr "Den bruger mÃ¥ ikke eje tickets i den kø" + +#: lib/RT/Link_Overlay.pm:205 +msgid "That's not a numerical id" +msgstr "Det er ikke en numerisk værdi" + +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +msgid "The Basics" +msgstr "Det Grundlæggende" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The CC of a ticket" +msgstr "CC for en ticket" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The administrative CC of a ticket" +msgstr "Den administrative CC for en ticket" + +#: lib/RT/Ticket_Overlay.pm:2244 +msgid "The comment has been recorded" +msgstr "Kommentarer er blevet gemt" + +#: bin/rt-crontool:197 +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 "Den følgende kommando vil finde alle aktive tickets i køen 'general' og vil sætte deres prioritet til 99 hvis de ikke er blevet rørt i 4 timer:" + +#: bin/rt-commit-handler:755 bin/rt-commit-handler:765 +msgid "The following commands were not proccessed:\\n\\n" +msgstr "De følgende kommandoer blev ikke processeret:\\n\\n" + +#: lib/RT/Interface/Web.pm:897 +msgid "The new value has been set." +msgstr "Den nye værdi er blevet sat" + +#: lib/RT/ACE_Overlay.pm:85 +msgid "The owner of a ticket" +msgstr "Ejeren af en ticket" + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The requestor of a ticket" +msgstr "Anmoderen af en ticket" + +#: html/Admin/Elements/EditUserComments:25 +msgid "These comments aren't generally visible to the user" +msgstr "Disse kommentarer er ikke generelt synlige for brugeren" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "Denne ticket %1 %2 (%3)\\n" + +#: bin/rt-crontool:188 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "Dette værktøj tillader brugeren at benyttet vilkÃ¥rlige Perl moduler inde fra RT." + +#: lib/RT/Transaction_Overlay.pm:251 +msgid "This transaction appears to have no content" +msgstr "Denne transaktion synes ikke at have noget indhold" + +#: html/Ticket/Elements/ShowRequestor:46 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "Denne brugers højest prioriterede tickets" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "Denne bruger 25 højest prioriterede tickets" + +#: lib/RT/Date.pm:391 +msgid "Thu." +msgstr "Tors." + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 %2" +msgstr "ticket # %1 %2" + +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "ticket #%1 Jumbo opdatering: %2" + +#: html/Approvals/Elements/ShowDependency:45 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "ticket #%1: %2" + +#: lib/RT/Ticket_Overlay.pm:623 lib/RT/Ticket_Overlay.pm:644 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "ticket %1 oprettet i kø '%2'" + +#: bin/rt-commit-handler:759 +#. ($Ticket->Id) +msgid "Ticket %1 loaded\\n" +msgstr "Ticket %1 indlæst\\n" + +#: html/Search/Bulk.html:212 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "Ticket %1 : %2" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "Ticket Historie # %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Ticket Id" +msgstr "Ticket ID" + +#: etc/initialdata:309 +msgid "Ticket Resolved" +msgstr "Ticket Løst" + +#: html/Search/Elements/PickRestriction:62 +msgid "Ticket attachment" +msgstr "Ticket vedhæftet fil" + +#: lib/RT/Tickets_Overlay.pm:1166 +msgid "Ticket content" +msgstr "Ticket indhold" + +#: lib/RT/Tickets_Overlay.pm:1212 +msgid "Ticket content type" +msgstr "Ticket indholds type" + +#: lib/RT/Ticket_Overlay.pm:514 lib/RT/Ticket_Overlay.pm:523 lib/RT/Ticket_Overlay.pm:533 lib/RT/Ticket_Overlay.pm:633 +msgid "Ticket could not be created due to an internal error" +msgstr "Ticket kunne ikke oprettes pga. en intern fejl" + +#: lib/RT/Transaction_Overlay.pm:520 +msgid "Ticket created" +msgstr "Ticket oprettet" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "Ticket oprettelse mislykkedes" + +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Ticket deleted" +msgstr "Ticket slettet" + +#: NOT FOUND IN SOURCE +msgid "Ticket id not found" +msgstr "Ticket ID ikke fundet" + +#: NOT FOUND IN SOURCE +msgid "Ticket not found" +msgstr "Ticket ikke fundet" + +#: etc/initialdata:295 +msgid "Ticket status changed" +msgstr "Ticket status ændret" + +#: html/Ticket/Update.html:38 +msgid "Ticket watchers" +msgstr "Ticket iagtagere" + +#: html/Elements/Tabs:46 +msgid "Tickets" +msgstr "Tickets" + +#: lib/RT/Tickets_Overlay.pm:1383 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "Tickets %1 %2" + +#: lib/RT/Tickets_Overlay.pm:1348 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "Tickets %1 af %2" + +#: html/Elements/ViewUser:25 +#. ($name) +msgid "Tickets from %1" +msgstr "Tickets fra %1" + +#: html/Approvals/Elements/ShowDependency:26 +msgid "Tickets which depend on this approval:" +msgstr "Tickets som afhænger af denne godkendelse:" + +#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +msgid "Time Left" +msgstr "Resterende tid" + +#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 +msgid "Time Worked" +msgstr "Tid Arbejdet" + +#: lib/RT/Tickets_Overlay.pm:1139 +msgid "Time left" +msgstr "Resterende tid" + +#: html/Elements/Footer:36 +msgid "Time to display" +msgstr "Tid for visning" + +#: lib/RT/Tickets_Overlay.pm:1115 +msgid "Time worked" +msgstr "Tid arbejdet" + +#: lib/RT/Ticket_Overlay.pm:1201 +msgid "TimeWorked" +msgstr "TidArbejdet" + +#: bin/rt-commit-handler:401 +msgid "To generate a diff of this commit:" +msgstr "For at generere en diff af denne commit:" + +#: bin/rt-commit-handler:390 +msgid "To generate a diff of this commit:\\n" +msgstr "For at generere en difference af denne commit:\\n" + +#: lib/RT/Ticket_Overlay.pm:1204 +msgid "Told" +msgstr "Fortalt" + +#: etc/initialdata:237 +msgid "Transaction" +msgstr "Transaktion" + +#: lib/RT/Transaction_Overlay.pm:691 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "Transaktion %1 tømt" + +#: lib/RT/Transaction_Overlay.pm:177 +msgid "Transaction Created" +msgstr "Transaktion Oprettet" + +#: lib/RT/Transaction_Overlay.pm:88 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "Transaktion->Opret kunne ikke gennemføres, da du ikke specificerede en ticket id" + +#: lib/RT/Transaction_Overlay.pm:750 +msgid "Transactions are immutable" +msgstr "Transaktioner er uforanderlige" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "Forsøger at slette en rettighed: %1" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "Tirs." + +#: 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:1202 lib/RT/Tickets_Overlay.pm:959 +msgid "Type" +msgstr "Type" + +#: lib/RT/ScripCondition_Overlay.pm:103 +msgid "Unimplemented" +msgstr "Uimplementeret" + +#: html/Admin/Users/Modify.html:67 +msgid "Unix login" +msgstr "Unix login" + +#: html/Admin/Elements/ModifyUser:61 +msgid "UnixUsername" +msgstr "UnixBrugernavn" + +#: lib/RT/Attachment_Overlay.pm:276 lib/RT/Attachment_Overlay.pm:308 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "Ukendt ContentEncoding %1" + +#: html/Elements/SelectResultsPerPage:36 +msgid "Unlimited" +msgstr "Ubegrænset" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "Upriviligeret" + +#: lib/RT/Transaction_Overlay.pm:569 +msgid "Untaken" +msgstr "Ikke-tagede" + +#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 +msgid "Update" +msgstr "Opdater" + +#: html/Admin/Users/Prefs.html:61 +msgid "Update ID" +msgstr "Opdater ID" + +#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:65 +msgid "Update Type" +msgstr "Opdater type" + +#: html/Search/Listing.html:60 +msgid "Update all these tickets at once" +msgstr "Opdater alle disse tickets pÃ¥ en gang" + +#: html/Admin/Users/Prefs.html:48 +msgid "Update email" +msgstr "Opdater email" + +#: html/Admin/Users/Prefs.html:54 +msgid "Update name" +msgstr "Opdater navn" + +#: lib/RT/Interface/Web.pm:409 +msgid "Update not recorded." +msgstr "Opdatering ikke registreret" + +#: html/Search/Bulk.html:80 +msgid "Update selected tickets" +msgstr "Opdater valgte tickets" + +#: html/Admin/Users/Prefs.html:35 +msgid "Update signature" +msgstr "Opdater signatur" + +#: html/Ticket/ModifyAll.html:62 +msgid "Update ticket" +msgstr "Opdater ticket" + +#: NOT FOUND IN SOURCE +msgid "Update ticket # %1" +msgstr "Opdater ticket # %1" + +#: html/SelfService/Update.html:24 html/SelfService/Update.html:46 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Opdater ticket #%1" + +#: html/Ticket/Update.html:139 +#. ($Ticket->id, $Ticket->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "Opdater ticket #%1 (%2)" + +#: lib/RT/Interface/Web.pm:407 +msgid "Update type was neither correspondence nor comment." +msgstr "Opdaterings type var hverken korrespondance eller kommentar" + +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:50 lib/RT/Ticket_Overlay.pm:1205 +msgid "Updated" +msgstr "Opdateret" + +#: NOT FOUND IN SOURCE +msgid "User %1 %2: %3\\n" +msgstr "Bruger %1 %2: %3\\n" + +#: NOT FOUND IN SOURCE +msgid "User %1 Password: %2\\n" +msgstr "Bruger %1 Adgangskode: %2\\n" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found" +msgstr "Bruger '%1' ikke fundet" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found\\n" +msgstr "Bruger '%1' ikke fundet\\n" + +#: etc/initialdata:124 etc/initialdata:191 +msgid "User Defined" +msgstr "Bruger defineret" + +#: html/Admin/Users/Prefs.html:58 +msgid "User ID" +msgstr "Bruger ID" + +#: html/Elements/SelectUsers:25 +msgid "User Id" +msgstr "Bruger 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 "Bruger Rettigheder" + +#: html/Admin/Users/Modify.html:225 +#. ($msg) +msgid "User could not be created: %1" +msgstr "Bruger kunne ikke oprettes: %1" + +#: lib/RT/User_Overlay.pm:321 +msgid "User created" +msgstr "Brugere oprettet" + +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "Bruger definerede grupper" + +#: lib/RT/User_Overlay.pm:575 lib/RT/User_Overlay.pm:592 +msgid "User loaded" +msgstr "Bruger indlæst" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "Bruger notificeret" + +#: html/Admin/Users/Prefs.html:24 html/Admin/Users/Prefs.html:28 +msgid "User view" +msgstr "Bruger visning" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +msgid "Username" +msgstr "Brugernavn" + +#: 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 "Brugere" + +#: html/Admin/Users/index.html:64 +msgid "Users matching search criteria" +msgstr "Brugere som matcher søgekriterier" + +#: html/Search/Elements/PickRestriction:50 +msgid "ValueOfQueue" +msgstr "KøVærdi" + +#: html/Admin/Elements/EditCustomField:56 +msgid "Values" +msgstr "Værdier" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "Watch" +msgstr "Watch" + +#: lib/RT/Queue_Overlay.pm:82 +msgid "WatchAsAdminCc" +msgstr "WatchSomAdminCC" + +#: html/Admin/Elements/QueueTabs:41 +msgid "Watchers" +msgstr "Watchers" + +#: html/Admin/Elements/ModifyUser:55 +msgid "WebEncoding" +msgstr "WebEncoding" + +#: lib/RT/Date.pm:390 +msgid "Wed." +msgstr "Ons." + +#: etc/initialdata:503 etc/upgrade/2.1.71:161 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "NÃ¥r en ticket er blevet godkendt af alle Approvers, tilføj korrespondance til den originale ticket" + +#: etc/initialdata:467 etc/upgrade/2.1.71:135 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "NÃ¥r en ticket er blevet godkendt af hvilken som helst Approver, tilføj korrespondance til den originale ticket" + +#: etc/initialdata:138 +msgid "When a ticket is created" +msgstr "NÃ¥r en ticket bliver oprettet" + +#: etc/initialdata:400 etc/upgrade/2.1.71:79 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "NÃ¥r en godkendelses ticket bliver lavet, notificer Ejer og AdminCc af delen som afventer deres godkendelse" + +#: etc/initialdata:143 +msgid "When anything happens" +msgstr "NÃ¥r hvad som helst sker" + +#: etc/initialdata:184 +msgid "Whenever a ticket is resolved" +msgstr "NÃ¥r en ticket bliver løst" + +#: etc/initialdata:170 +msgid "Whenever a ticket's owner changes" +msgstr "NÃ¥r en tickets ejer ændres" + +#: etc/initialdata:178 +msgid "Whenever a ticket's queue changes" +msgstr "NÃ¥r en tickets kø ændres" + +#: etc/initialdata:162 +msgid "Whenever a ticket's status changes" +msgstr "NÃ¥r en tickets status ændres" + +#: etc/initialdata:192 +msgid "Whenever a user-defined condition occurs" +msgstr "NÃ¥r en bruger defineret betingelse opfyldes" + +#: etc/initialdata:156 +msgid "Whenever comments come in" +msgstr "NÃ¥r kommentarer kommer ind" + +#: etc/initialdata:149 +msgid "Whenever correspondence comes in" +msgstr "NÃ¥r korrespondance ankommer" + +#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:51 +msgid "Work" +msgstr "Arbejde" + +#: html/Admin/Elements/ModifyUser:69 +msgid "WorkPhone" +msgstr "Arbejdstelefon" + +#: html/Ticket/Elements/ShowBasics:34 html/Ticket/Update.html:64 +msgid "Worked" +msgstr "Arbejdede" + +#: lib/RT/Ticket_Overlay.pm:3187 +msgid "You already own this ticket" +msgstr "Du ejer allerede denne ticket" + +#: html/autohandler:122 +msgid "You are not an authorized user" +msgstr "Du er ikke en authoriseret bruger" + +#: lib/RT/Ticket_Overlay.pm:3069 +msgid "You can only reassign tickets that you own or that are unowned" +msgstr "Du kan kun tildele tickets du ejer eller som ikker ejet" + +#: NOT FOUND IN SOURCE +msgid "You don't have permission to view that ticket.\\n" +msgstr "Du har ikke tilladelse til at se den ticket.\\n" + +#: docs/design_docs/string-extraction-guide.txt:47 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "Du fandt %1 tickets i kø %2" + +#: html/NoAuth/Logout.html:30 +msgid "You have been logged out of RT." +msgstr "Du er blevet logget ud af RT." + +#: html/SelfService/Display.html:77 +msgid "You have no permission to create tickets in that queue." +msgstr "Du har ikke tilladelse til at lave requests i den kø" + +#: lib/RT/Ticket_Overlay.pm:1926 +msgid "You may not create requests in that queue." +msgstr "Du mÃ¥ ikke oprette requests i den kø" + +#: html/NoAuth/Logout.html:34 +msgid "You're welcome to login again" +msgstr "Du er velkommen til at logge ind igen" + +#: NOT FOUND IN SOURCE +msgid "Your %1 requests" +msgstr "Din %1 anmodning" + +#: NOT FOUND IN SOURCE +msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "Din RT administrator har ikke konfigureret mail aliaser som starter RT korrekt " + +#: etc/initialdata:484 etc/upgrade/2.1.71:146 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "Din anmodning er blevet godkendt af %1. Andre godkendelser afventer muligvis stadigvæk" + +#: etc/initialdata:522 etc/upgrade/2.1.71:180 +msgid "Your request has been approved." +msgstr "Din anmodning er blevet godkendt" + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "Din anmodning blev afvist" + +#: etc/initialdata:427 etc/upgrade/2.1.71:101 +msgid "Your request was rejected." +msgstr "Din anmodning blev afvist" + +#: html/autohandler:144 +msgid "Your username or password is incorrect" +msgstr "Dit brugernavn eller adgangskode er ukorrekt" + +#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:95 +msgid "Zip" +msgstr "Postnummer" + +#: html/User/Elements/DelegateRights:58 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "som givet til %1" + +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "lukket" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +msgid "contains" +msgstr "indeholder" + +#: html/Elements/SelectAttachmentField:25 +msgid "content" +msgstr "indhold" + +#: html/Elements/SelectAttachmentField:26 +msgid "content-type" +msgstr "content-type" + +#: lib/RT/Ticket_Overlay.pm:2313 +msgid "correspondence (probably) not sent" +msgstr "korrespondance (muligvis) ikke sendt" + +#: lib/RT/Ticket_Overlay.pm:2323 +msgid "correspondence sent" +msgstr "korrespondance afsendt" + +#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +msgid "days" +msgstr "dage" + +#: html/Search/Listing.html:74 +msgid "delete" +msgstr "slet" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "deleted" +msgstr "slettet" + +#: html/Search/Elements/PickRestriction:67 +msgid "does not match" +msgstr "matcher ikke" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +msgid "doesn't contain" +msgstr "indeholder ikke" + +#: html/Elements/SelectEqualityOperator:37 +msgid "equal to" +msgstr "lig med" + +#: html/Elements/SelectAttachmentField:27 +msgid "filename" +msgstr "filnavn" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +msgid "greater than" +msgstr "større end" + +#: lib/RT/Group_Overlay.pm:193 +#. ($self->Name) +msgid "group '%1'" +msgstr "gruppe '%1'" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "timer" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "id" + +#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 +msgid "is" +msgstr "er" + +#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +msgid "isn't" +msgstr "er ikke" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +msgid "less than" +msgstr "mindre end" + +#: html/Search/Elements/PickRestriction:66 +msgid "matches" +msgstr "matcher" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "min." + +#: html/Ticket/Update.html:64 +msgid "minutes" +msgstr "minutter" + +#: bin/rt-commit-handler:764 +msgid "modifications\\n\\n" +msgstr "ændringer\\n\\n" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "mÃ¥neder" + +#: lib/RT/Queue_Overlay.pm:57 +msgid "new" +msgstr "ny" + +#: html/Admin/Elements/EditScrips:42 +msgid "no value" +msgstr "ingen værdi" + +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +msgid "none" +msgstr "ingen" + +#: html/Elements/SelectEqualityOperator:37 +msgid "not equal to" +msgstr "ikke lig med" + +#: html/SelfService/Elements/MyRequests:60 lib/RT/Queue_Overlay.pm:58 +msgid "open" +msgstr "Ã¥ben" + +#: lib/RT/Group_Overlay.pm:198 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "personlig gruppe '%1' for bruger '%2'" + +#: lib/RT/Group_Overlay.pm:206 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "kø %1 %2" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "rejected" +msgstr "afvist" + +#: lib/RT/Queue_Overlay.pm:60 +msgid "resolved" +msgstr "løst" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "sek." + +#: lib/RT/Queue_Overlay.pm:59 +msgid "stalled" +msgstr "stallet" + +#: lib/RT/Group_Overlay.pm:201 +#. ($self->Type) +msgid "system %1" +msgstr "system %1" + +#: lib/RT/Group_Overlay.pm:212 +#. ($self->Type) +msgid "system group '%1'" +msgstr "system gruppe '%1'" + +#: html/Elements/Error:42 html/SelfService/Error.html:41 +msgid "the calling component did not specify why" +msgstr "den kaldende komponent specificerede ikke hvorfor" + +#: lib/RT/URI/fsck_com_rt.pm:234 +#. ($self->Object->Id) +msgid "ticket #%1" +msgstr "ticket #%1" + +#: lib/RT/Group_Overlay.pm:209 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "ticket #%1 %2" + +#: lib/RT/Group_Overlay.pm:215 +#. ($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:190 +#. ($user->Object->Name) +msgid "user %1" +msgstr "bruger %1" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "uger" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "med template %1" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "Ã¥r" + diff --git a/rt/lib/RT/I18N/de.po b/rt/lib/RT/I18N/de.po index 3ffc8fbac..c79999988 100644 --- a/rt/lib/RT/I18N/de.po +++ b/rt/lib/RT/I18N/de.po @@ -275,7 +275,7 @@ msgid "(Check box to delete)" msgstr "(Markieren um zu löschen)" #: html/Ticket/Create.html:178 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Gib Anfragenummern oder URLs getrennt durch Leerzeichen ein)" #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 diff --git a/rt/lib/RT/I18N/es.po b/rt/lib/RT/I18N/es.po index 05006b12b..f3cc1c141 100644 --- a/rt/lib/RT/I18N/es.po +++ b/rt/lib/RT/I18N/es.po @@ -275,7 +275,7 @@ msgid "(Check boxes to delete)" msgstr "(Marque las cajas para borrar)" #: html/Ticket/Create.html:178 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Introduzca los identificadores de ticket o URLs, separados por espacios)" #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 diff --git a/rt/lib/RT/I18N/fi.po b/rt/lib/RT/I18N/fi.po index ee1ad71f9..2171ac445 100644 --- a/rt/lib/RT/I18N/fi.po +++ b/rt/lib/RT/I18N/fi.po @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: RT 2.1.x\n" "POT-Creation-Date: 2002-07-08 17:41+0200\n" -"PO-Revision-Date: 2002-07-09 18:09+0200\n" -"Last-Translator: Janne Pirkkanen <jp@oppipoika.net>\n" +"PO-Revision-Date: 2004-01-13 15:21+0200\n" +"Last-Translator: Tuukka Vainio <tuukka.vainio@utu.fi>\n" "Language-Team: Finnish\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -46,12 +46,12 @@ msgstr "%1 %3.%2 %7 %4:%5:%6" #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" -msgstr "" +msgstr "%1 %2 lisätty" #: lib/RT/Date.pm:334 #. ($s, $time_unit) msgid "%1 %2 ago" -msgstr "" +msgstr "%1 %2 sitten" #: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 #. ($cf->Name, $old_value, $new_value->Content) @@ -64,21 +64,21 @@ msgstr "%1: %2 muutettu arvoon %3" #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" -msgstr "" +msgstr "%1 %2 poistettu" #: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" -msgstr "" +msgstr "%1 %2 pohjalla %3" #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" -msgstr "%1 (%2) %3 tässä työpyynnössä\\n" +msgstr "%1 (%2) %3 tässä tapauksessa\\n" #: html/Search/Listing.html:57 #. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) msgid "%1 - %2 shown" -msgstr "" +msgstr "näkyvillä %1 - %2" #: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 #. ("--search-argument", "--search") @@ -119,15 +119,15 @@ msgstr "%1 lisätty arvoksi %2lle" #: NOT FOUND IN SOURCE msgid "%1 aliases require a TicketId to work on" -msgstr "%1 aliakset vaativat työpyynnön id:n" +msgstr "%1 aliakset vaativat tapauksen id:n" #: NOT FOUND IN SOURCE msgid "%1 aliases require a TicketId to work on " -msgstr "%1 aliakset vaativat työpyynnön id:n " +msgstr "%1 aliakset vaativat tapauksen id:n " #: NOT FOUND IN SOURCE msgid "%1 aliases require a TicketId to work on (from %2) %3" -msgstr "%1 aliakset vaativat työpyynnön id:n (osoite %2) %3" +msgstr "%1 aliakset vaativat tapauksen id:n (osoite %2) %3" #: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 #. ($args{'Base'}) @@ -151,26 +151,26 @@ msgstr "%1 muutettu arvosta %2 arvoon %3" #: lib/RT/Interface/Web.pm:857 msgid "%1 could not be set to %2." -msgstr "" +msgstr "Arvoa %1 ei voitu asettaa arvoksi %2" #: NOT FOUND IN SOURCE msgid "%1 couldn't init a transaction (%2)\\n" -msgstr "%1 ei voinut suorittaa toimintoa (%2)\\n" +msgstr "%1 ei voinut suorittaa tapahtumaa (%2)\\n" #: lib/RT/Ticket_Overlay.pm:2813 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "%1 ei voinut asettaa tilan arvoa päätetyksi. RT:n tietokanta saattaa olla vioittunut." +msgstr "%1 ei voinut asettaa tilaa päätetyksi. RT:n tietokanta saattaa olla vioittunut." #: html/Elements/MyTickets:25 #. ($rows) msgid "%1 highest priority tickets I own..." -msgstr "" +msgstr "%1 tärkeintä omistamaani tapausta..." #: html/Elements/MyRequests:25 #. ($rows) msgid "%1 highest priority tickets I requested..." -msgstr "" +msgstr "%1 tärkeintä tilaamaani tapausta..." #: bin/rt-crontool:161 #. ($0) @@ -185,7 +185,7 @@ msgstr "%1 ei ole enää %2 tälle työjonolle" #: lib/RT/Ticket_Overlay.pm:1570 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this ticket." -msgstr "%1 ei ole enää %2 tälle työpyynnölle" +msgstr "%1 ei ole enää %2 tälle tapaukselle" #: lib/RT/Ticket_Overlay.pm:3527 #. ($args{'Value'}, $cf->Name) @@ -229,11 +229,11 @@ msgstr "" #: lib/RT/Action/ResolveMembers.pm:42 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1 päättää kaikki päätetyt työpyynnöt -ryhmän työpyynnöt." +msgstr "%1 päättää kaikki päätetyn ryhmän jäsentapaukset." #: NOT FOUND IN SOURCE msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." -msgstr "%1 jäädyttää [paikallisen] BASE jos se riippuu linkitetystä työpyynnöstä [tai on sen jäsen]." +msgstr "%1 jäädyttää [paikallisen] BASE jos se riippuu linkitetystä tapauksesta [tai on sen jäsen]." #: lib/RT/Transaction_Overlay.pm:435 #. ($self) @@ -261,11 +261,11 @@ msgstr "'%1' ei ole tunnettu tapahtuma." #: NOT FOUND IN SOURCE msgid "(Check box to delete group member)" -msgstr "" +msgstr "(Rastita laatikko poistaaksesi ryhmän jäsenen)" #: NOT FOUND IN SOURCE msgid "(Check box to delete scrip)" -msgstr "(Rastita laatikko poistaaksesi skriptin)" +msgstr "(Rastita laatikko poistaaksesi toiminnon)" #: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 msgid "(Check box to delete)" @@ -273,25 +273,25 @@ msgstr "(Rastita laatikko poistaaksesi)" #: NOT FOUND IN SOURCE msgid "(Check boxes to delete)" -msgstr "" +msgstr "(Rastita laatikko poistaaksesi)" #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, seperated with spaces)" -msgstr "(Syötä työpyynnön numerot tai www-osoitteet, välilyönneillä erotettuina)" +msgstr "(Syötä tapausten numerot tai www-osoitteet, välilyönneillä erotettuina)" #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) msgid "(If left blank, will default to %1" -msgstr "" +msgstr "(Jos jätetään tyhjäksi, palaa arvoon %1)" #: NOT FOUND IN SOURCE msgid "(No Value)" -msgstr "" +msgstr "(Ei arvoa)" #: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 msgid "(No custom fields)" -msgstr "" +msgstr "(Ei kenttiä)" #: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 msgid "(No members)" @@ -299,35 +299,35 @@ msgstr "(Ei jäseniä)" #: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 msgid "(No scrips)" -msgstr "(Ei skriptejä)" +msgstr "(Ei toimintoja)" #: html/Admin/Elements/EditTemplates:31 msgid "(No templates)" -msgstr "" +msgstr "(Ei pohjia)" #: html/Ticket/Update.html:85 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 "" +msgstr "(Lähettää piilokopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" #: 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 "(Lähettää piilokopion tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei muuta</b> jatkossa tehtävien lähetysten kohteita.)" +msgstr "(Lähettää piilokopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" #: html/Ticket/Create.html:79 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 "" +msgstr "(Lähettää kopion tästä päivityksestä pilkulla erotettuihin hallinnollisiin sähköpostiosoitteisiin. <b>Lisää</b> pysyviksi vastaanottajiksi.)" #: html/Ticket/Update.html:81 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 "" +msgstr "(Lähettää kopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" #: 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 "(Lähettää kopion tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei muuta</b> jatkossa tehtävien lähetysten kohteita.)" +msgstr "(Lähettää kopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" #: html/Ticket/Create.html:69 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 "" +msgstr "(Lähettää kopion tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Lisää</b> pysyviksi vastaanottajiksi.)" #: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 msgid "(empty)" @@ -335,7 +335,7 @@ msgstr "(tyhjä)" #: html/Admin/Users/index.html:39 msgid "(no name listed)" -msgstr "" +msgstr "(ei nimiä listattuna)" #: html/Elements/MyRequests:43 html/Elements/MyTickets:45 msgid "(no subject)" @@ -347,15 +347,15 @@ msgstr "(ei arvoa)" #: html/Ticket/Elements/EditLinks:116 msgid "(only one ticket)" -msgstr "(vain yksi työpyyntö)" +msgstr "(vain yksi tapaus)" #: html/Elements/MyRequests:52 html/Elements/MyTickets:55 msgid "(pending approval)" -msgstr "" +msgstr "(odottaa hyväksyntää)" #: html/Elements/MyRequests:54 html/Elements/MyTickets:57 msgid "(pending other tickets)" -msgstr "" +msgstr "(odottaa toisia tapauksia)" #: html/Admin/Users/Modify.html:50 msgid "(required)" @@ -363,15 +363,15 @@ msgstr "(pakollinen)" #: html/Ticket/Elements/ShowTransaction:105 msgid "(untitled)" -msgstr "" +msgstr "(nimetön)" #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." -msgstr "25 omistamaani korkeimpien prioriteettien työpyyntöä..." +msgstr "25 tärkeintä omistamaani tapausta..." #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I requested..." -msgstr "25 tilaamaani korkeimman prioriteetin työpyyntöä..." +msgstr "25 tärkeintä tilaamaani tapausta..." #: html/Ticket/Elements/ShowBasics:32 msgid "<% $Ticket->Status%>" @@ -384,11 +384,11 @@ msgstr "" #: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "<input type=\"submit\" value=\"Uusi työpyyntö\"> %1" +msgstr "<input type=\"submit\" value=\"Uusi tapaus\"> %1" #: etc/initialdata:203 msgid "A blank template" -msgstr "" +msgstr "Tyhjä pohja" #: NOT FOUND IN SOURCE msgid "ACE Deleted" @@ -416,11 +416,11 @@ msgstr "ACE:ja voi vain luoda ja poistaa." #: bin/rt-commit-handler:755 msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "Poistuminen ei-tarkoitettujen työpyyntömuutosten välttämiseksi.\\n" +msgstr "Peruutetaan tarkoittamattomien tapausmuutosten välttämiseksi.\\n" #: html/User/Elements/Tabs:32 msgid "About me" -msgstr "" +msgstr "Omat asetukset" #: html/Admin/Users/Modify.html:80 msgid "Access control" @@ -453,7 +453,7 @@ msgstr "Lisää kopio" #: html/Ticket/Create.html:114 html/Ticket/Update.html:100 msgid "Add More Files" -msgstr "" +msgstr "Lisää useampi tiedosto" #: html/Search/Bulk.html:88 msgid "Add Requestor" @@ -465,23 +465,23 @@ msgstr "" #: NOT FOUND IN SOURCE msgid "Add a new a global scrip" -msgstr "Lisää uusi globaali lappu" +msgstr "Lisää uusi yleinen toiminto" #: NOT FOUND IN SOURCE msgid "Add a scrip to this queue" -msgstr "Lisää lappu tälle työjonolle" +msgstr "Lisää toiminto tähän työjonoon" #: html/Admin/Global/Scrip.html:55 msgid "Add a scrip which will apply to all queues" -msgstr "Lisää kaikille työjonoille yhteinen lappu" +msgstr "Lisää kaikille työjonoille yhteinen toiminto" #: html/Search/Bulk.html:118 msgid "Add comments or replies to selected tickets" -msgstr "Lisää kommentteja tai vastauksia valituille työpyynnöille" +msgstr "Lisää kommentteja tai vastauksia valituille tapauksille" #: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 msgid "Add members" -msgstr "Lisää jäsenä" +msgstr "Lisää jäseniä" #: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 msgid "Add new watchers" @@ -499,7 +499,7 @@ msgstr "Lisätty toimeksiantaja %1:ksi tähän työjonoon" #: lib/RT/Ticket_Overlay.pm:1454 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" -msgstr "Lisätty toimeksiantaja %1:ksi tälle työpyynnölle" +msgstr "Lisätty toimeksiantaja %1:ksi tälle tapaukselle" #: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 msgid "Address1" @@ -531,7 +531,7 @@ msgstr "Käyttäjien ylläpito" #: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 msgid "Admin/Global configuration" -msgstr "Ylläpito/Globaalit asetukset" +msgstr "Ylläpito/Yleiset asetukset" #: NOT FOUND IN SOURCE msgid "Admin/Groups" @@ -595,11 +595,11 @@ msgstr "Jälkeen" #: NOT FOUND IN SOURCE msgid "Age" -msgstr "" +msgstr "Ikä" #: html/Admin/Elements/EditCustomFields:96 msgid "All Custom Fields" -msgstr "" +msgstr "Kaikki kentät" #: html/Admin/Queues/index.html:53 msgid "All Queues" @@ -611,7 +611,7 @@ msgstr "" #: html/Elements/Tabs:58 msgid "Approval" -msgstr "" +msgstr "Hyväksyntä" #: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 #. ($Ticket->Id, $Ticket->Subject) @@ -633,7 +633,7 @@ msgstr "" #: NOT FOUND IN SOURCE msgid "Approval Details" -msgstr "" +msgstr "Hyväksynnän lisätiedot" #: NOT FOUND IN SOURCE msgid "Approval diagram" @@ -641,19 +641,19 @@ msgstr "" #: html/Approvals/Elements/Approve:45 msgid "Approve" -msgstr "" +msgstr "Hyväksy" #: etc/initialdata:431 etc/upgrade/2.1.71:148 msgid "Approver's notes: %1" -msgstr "" +msgstr "Hyväksyjän merkintöjä: %1" #: lib/RT/Date.pm:414 msgid "Apr." -msgstr "Huhti" +msgstr "huhti" #: NOT FOUND IN SOURCE msgid "April" -msgstr "" +msgstr "huhtikuu" #: html/Elements/SelectSortOrder:35 msgid "Ascending" @@ -669,7 +669,7 @@ msgstr "Liitä tiedosto" #: html/Ticket/Create.html:98 html/Ticket/Update.html:89 msgid "Attached file" -msgstr "" +msgstr "Liitä tiedosto" #: html/SelfService/Attachment/dhandler:36 msgid "Attachment '%1' could not be loaded" @@ -689,11 +689,11 @@ msgstr "Liitetiedostot" #: lib/RT/Date.pm:418 msgid "Aug." -msgstr "Elo" +msgstr "elo" #: NOT FOUND IN SOURCE msgid "August" -msgstr "" +msgstr "elokuu" #: html/Admin/Elements/ModifyUser:66 msgid "AuthSystem" @@ -705,7 +705,7 @@ msgstr "" #: etc/initialdata:72 msgid "Autoreply To Requestors" -msgstr "" +msgstr "Automaattivastaus tilaajille" #: NOT FOUND IN SOURCE msgid "AutoreplyToRequestors" @@ -727,7 +727,7 @@ msgstr "Virheellistä dataa kentässä %1" #: html/SelfService/Attachment/dhandler:43 #. ($trans, $AttachmentObj->TransactionId()) msgid "Bad transaction number for attachment. %1 should be %2\\n" -msgstr "Virheellinen toiminnon numero liitetiedostolle. %1 pitäisi olla %2\\n" +msgstr "Virheellinen tapahtuman numero liitetiedostolle. %1 pitäisi olla %2\\n" #: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 msgid "Basics" @@ -743,7 +743,7 @@ msgstr "Muista tallentaa muutokset" #: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 msgid "Before" -msgstr "Ennen" +msgstr "ennen" #: NOT FOUND IN SOURCE msgid "Begin Approval" @@ -751,7 +751,7 @@ msgstr "" #: etc/initialdata:202 msgid "Blank" -msgstr "" +msgstr "Tyhjä" #: html/Search/Listing.html:79 msgid "Bookmarkable URL for this search" @@ -763,15 +763,15 @@ msgstr "Lyhyet otsikot" #: html/Search/Bulk.html:25 html/Search/Bulk.html:26 msgid "Bulk ticket update" -msgstr "Työpyyntöjen ryhmäpäivitys" +msgstr "Tapausten ryhmäpäivitys" #: lib/RT/User_Overlay.pm:1331 msgid "Can not modify system users" -msgstr "Systeemikäyttäjien muokkaus ei ole sallittua" +msgstr "Järjestelmäkäyttäjien muokkaus ei ole sallittua" #: lib/RT/Queue_Overlay.pm:67 msgid "Can this principal see this queue" -msgstr "" +msgstr "Näkeekö toimeksiantaja tämän työjonon" #: lib/RT/CustomField_Overlay.pm:144 msgid "Can't add a custom field value without a name" @@ -779,15 +779,15 @@ msgstr "Kentän lisääminen ilman nimeä ei onnistu" #: lib/RT/Link_Overlay.pm:132 msgid "Can't link a ticket to itself" -msgstr "Työpyyntöä ei voi linkittää itseensä" +msgstr "Tapausta ei voi linkittää itseensä" #: lib/RT/Ticket_Overlay.pm:2787 msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "Et voi yhdistää jo yhdistettyyn työpyyntöön. Sinun ei pitäisi saada tätä virhettä koskaan." +msgstr "Et voi yhdistää jo yhdistettyyn tapaukseen. Sinun ei pitäisi saada tätä virhettä koskaan." #: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 msgid "Can't specifiy both base and target" -msgstr "Sekä basen ja kohteen määritteleminen samalla ei ole mahdollista" +msgstr "Sekä juuren ja kohteen määritteleminen samalla ei ole mahdollista" #: html/autohandler:112 #. ($msg) @@ -804,15 +804,15 @@ msgstr "Muuta salasana" #: html/Ticket/Create.html:101 html/Ticket/Update.html:92 msgid "Check box to delete" -msgstr "" +msgstr "Valitse laatikko poistaaksesi" #: html/Admin/Elements/SelectRights:31 msgid "Check box to revoke right" -msgstr "Valitse laatikko poistaaksesi oikeuden" +msgstr "Valitse laatikko peruaksesi oikeuden" #: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 msgid "Children" -msgstr "Lapsi" +msgstr "Lapset" #: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 msgid "City" @@ -820,11 +820,11 @@ msgstr "Kaupunki" #: html/Ticket/Elements/ShowDates:47 msgid "Closed" -msgstr "" +msgstr "Suljettu" #: html/SelfService/Elements/Tabs:60 msgid "Closed requests" -msgstr "Suljetut työpyynnöt" +msgstr "Suljetut tapaukset" #: NOT FOUND IN SOURCE msgid "Command not understood!\\n" @@ -844,7 +844,7 @@ msgstr "Kommenttia ei tallennettu" #: lib/RT/Queue_Overlay.pm:86 msgid "Comment on tickets" -msgstr "" +msgstr "Kommentoi tapauksia" #: lib/RT/Queue_Overlay.pm:86 msgid "CommentOnTicket" @@ -856,11 +856,11 @@ msgstr "Kommentit" #: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 msgid "Comments (Not sent to requestors)" -msgstr "Kommentit (Ei lähetetä tilaajille)" +msgstr "Kommentti (ei lähetetä tilaajille)" #: html/Search/Bulk.html:122 msgid "Comments (not sent to requestors)" -msgstr "Kommentit (Ei lähetetä tilaajille)" +msgstr "Kommentti (ei lähetetä tilaajille)" #: html/Elements/ViewUser:27 #. ($name) @@ -901,11 +901,11 @@ msgstr "Ylläpito" #: html/SelfService/Prefs.html:33 msgid "Confirm" -msgstr "Varmista" +msgstr "Vahvista" #: html/Admin/Elements/ModifyUser:60 msgid "ContactInfoSystem" -msgstr "Kontaktitietojärjestelmä" +msgstr "Yhteystietojärjestelmä" #: NOT FOUND IN SOURCE msgid "Contacted date '%1' could not be parsed" @@ -937,11 +937,11 @@ msgstr "Vastausta ei tallennettu" #: lib/RT/Ticket_Overlay.pm:3458 msgid "Could not add new custom field value for ticket. " -msgstr "Uuden tiedon lisääminen kenttään ei onnistunut" +msgstr "Uuden tiedon lisääminen kenttään epäonnistui" #: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. %1 " -msgstr "" +msgstr "Uuden kentän lisäys tapaukselle epäonnistui. %1 " #: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 msgid "Could not change owner. " @@ -950,24 +950,24 @@ msgstr "Omistajaa ei voitu vaihtaa." #: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 #. ($msg) msgid "Could not create CustomField" -msgstr "Uuden kentän lisääminen ei onnistunut" +msgstr "Uuden kentän lisääminen epäonnistui" #: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" -msgstr "Ryhmän luominen ei onnistunut" +msgstr "Ryhmän luominen epäonnistui" #: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 #. ($msg) msgid "Could not create template: %1" -msgstr "Ei onnistuttu luomaan pohjaa: " +msgstr "Pohjan luonti epäonnistui: %1" #: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 msgid "Could not create ticket. Queue not set" -msgstr "Työpyynön luominen ei onnistunut. Työjonoa ei ole asetettu" +msgstr "Tapauksen luonti epäonnistui. Työjonoa ei ole asetettu" #: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 msgid "Could not create user" -msgstr "Käyttäjän luominen ei onnistunut" +msgstr "Käyttäjän luonti epäonnistui" #: NOT FOUND IN SOURCE msgid "Could not create watcher for requestor" @@ -975,11 +975,11 @@ msgstr "" #: NOT FOUND IN SOURCE msgid "Could not find a ticket with id %1" -msgstr "Työpyyntöä numero '%1' ei löytynyt." +msgstr "Tapausta numerolla %1 ei löytynyt." #: NOT FOUND IN SOURCE msgid "Could not find group %1." -msgstr "Ryhmää '%1' ei löytynyt." +msgstr "Ryhmää %1 ei löytynyt." #: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 msgid "Could not find or create that user" @@ -991,7 +991,7 @@ msgstr "Tätä toimeksiantajaa ei löytynyt" #: NOT FOUND IN SOURCE msgid "Could not find user %1." -msgstr "Käyttäjää '%1' ei löytynyt." +msgstr "Käyttäjää %1 ei löytynyt." #: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 msgid "Could not load group" @@ -1005,17 +1005,17 @@ msgstr "Ei voinut tehdä toimeksiantajaa %1:ksi tälle työjonolle" #: lib/RT/Ticket_Overlay.pm:1443 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" -msgstr "Ei voinut tehdä toimeksiantajaa tälle työpyynnölle: %1" +msgstr "Ei voinut tehdä toimeksiantajaa tälle tapaukselle: %1" #: lib/RT/Queue_Overlay.pm:740 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" -msgstr "Ei voinut poistaa toimeksiantajaa tältä työjonolta: %1" +msgstr "Toimeksiantajaa ei voitu poistaa tältä työjonolta: %1" #: lib/RT/Ticket_Overlay.pm:1559 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this ticket" -msgstr "Ei voinut poistaa toimeksiantajaa tältä työpyynnöltä: %1" +msgstr "Toimeksiantajaa ei voitu poistaa tältä tapaukselta: %1" #: lib/RT/Group_Overlay.pm:985 msgid "Couldn't add member to group" @@ -1024,11 +1024,11 @@ msgstr "Jäsenen lisääminen ryhmään ei onnistunut" #: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 #. ($Msg) msgid "Couldn't create a transaction: %1" -msgstr "Toiminnon luominen ei onnistunut: %1" +msgstr "Tapahtuman luominen ei onnistunut: %1" #: NOT FOUND IN SOURCE msgid "Couldn't figure out what to do from gpg's reply\\n" -msgstr "Järjestelmä ei ymmärtänyt mitä tehdä pgp:n vastauksella\\n" +msgstr "Järjestelmä ei gpg:n vastauksesta ymmärtänyt mitä tehdä\\n" #: NOT FOUND IN SOURCE msgid "Couldn't find group\\n" @@ -1036,19 +1036,19 @@ msgstr "Ryhmää ei löytynyt\\n" #: lib/RT/Interface/Web.pm:866 msgid "Couldn't find row" -msgstr "" +msgstr "Riviä ei löytynyt" #: lib/RT/Group_Overlay.pm:959 msgid "Couldn't find that principal" -msgstr "Tätä toimeksiantajaa ei löytynyt" +msgstr "Toimeksiantajaa ei löytynyt" #: lib/RT/CustomField_Overlay.pm:175 msgid "Couldn't find that value" -msgstr "Tätä arvoa ei löytynyt" +msgstr "Arvoa ei löytynyt" #: NOT FOUND IN SOURCE msgid "Couldn't find that watcher" -msgstr "" +msgstr "Tarkkailijaa ei löytynyt" #: NOT FOUND IN SOURCE msgid "Couldn't find user\\n" @@ -1057,7 +1057,7 @@ msgstr "Käyttäjää ei löytynyt\\n" #: lib/RT/CurrentUser.pm:112 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" -msgstr "Ei onnistuttu lataamaan käytäjää %1 tietokannasta.\\n" +msgstr "Ei onnistuttu lataamaan käyttäjää %1 tietokannasta.\\n" #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." @@ -1065,11 +1065,11 @@ msgstr "" #: NOT FOUND IN SOURCE msgid "Couldn't load RT config file '%1' %2" -msgstr "RT asetustiedoston lataaminen ei onnistunut:'%1' %2" +msgstr "RT-asetustiedoston lataaminen ei onnistunut:'%1' %2" #: NOT FOUND IN SOURCE msgid "Couldn't load Scrips." -msgstr "Lappujen lataaminen ei onnistunut." +msgstr "Toimintojen lataaminen ei onnistunut." #: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 #. ($id) @@ -1092,7 +1092,7 @@ msgstr "Työjonon %1 lataaminen ei onnistunut" #: NOT FOUND IN SOURCE msgid "Couldn't load scrip" -msgstr "Lapun lataaminen ei onnistunut" +msgstr "Toiminnon lataaminen ei onnistunut" #: NOT FOUND IN SOURCE msgid "Couldn't load template" @@ -1106,7 +1106,7 @@ msgstr "Tämän käyttäjän lataaminen ei onnistunut (%1)" #: html/SelfService/Display.html:166 #. ($id) msgid "Couldn't load ticket '%1'" -msgstr "Työpyynnön '%1' lataaminen ei onnistunut" +msgstr "Tapauksen '%1' lataaminen ei onnistunut" #: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 msgid "Country" @@ -1118,7 +1118,7 @@ msgstr "Luo" #: etc/initialdata:128 msgid "Create Tickets" -msgstr "" +msgstr "Luo tapauksia" #: html/Admin/Elements/EditCustomField:58 msgid "Create a CustomField" @@ -1127,11 +1127,11 @@ msgstr "Luo kenttä" #: html/Admin/Queues/CustomField.html:48 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" -msgstr "" +msgstr "Luo kenttä työjonolle %1" #: html/Admin/Global/CustomField.html:48 msgid "Create a CustomField which applies to all queues" -msgstr "" +msgstr "Luo kenttä, jota sovelletaan kaikkiin työjonoihin" #: NOT FOUND IN SOURCE msgid "Create a new Custom Field" @@ -1139,7 +1139,7 @@ msgstr "Luo uusi kenttä" #: NOT FOUND IN SOURCE msgid "Create a new global scrip" -msgstr "Luo uusi globaali lappu" +msgstr "Luo uusi yleinen toiminto" #: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 msgid "Create a new group" @@ -1147,7 +1147,7 @@ msgstr "Luo uusi ryhmä" #: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 msgid "Create a new personal group" -msgstr "Luo uusi personaali ryhmä" +msgstr "Luo uusi henkilökohtainen ryhmä" #: NOT FOUND IN SOURCE msgid "Create a new queue" @@ -1155,7 +1155,7 @@ msgstr "Luo uusi työjono" #: NOT FOUND IN SOURCE msgid "Create a new scrip" -msgstr "" +msgstr "Luo uusi toiminto" #: NOT FOUND IN SOURCE msgid "Create a new template" @@ -1163,7 +1163,7 @@ msgstr "Luo uusi pohja" #: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 msgid "Create a new ticket" -msgstr "Luo uusi työpyyntö" +msgstr "Luo uusi tapaus" #: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 msgid "Create a new user" @@ -1179,12 +1179,12 @@ msgstr "Luo työjono nimeltään" #: html/SelfService/Create.html:25 html/SelfService/Create.html:27 msgid "Create a request" -msgstr "Luo työpyyntö" +msgstr "Luo tapaus" #: html/Admin/Queues/Scrip.html:59 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" -msgstr "" +msgstr "Luo toiminto työjonolle %1" #: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 msgid "Create a template" @@ -1192,43 +1192,43 @@ msgstr "Luo pohja" #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " -msgstr "" +msgstr "Luonti epäonnistui %1 / %2 / %3 " #: NOT FOUND IN SOURCE msgid "Create failed: %1/%2/%3" -msgstr "" +msgstr "Luonti epäonnistui: %1/%2/%3" #: etc/initialdata:130 msgid "Create new tickets based on this scrip's template" -msgstr "" +msgstr "Luo uusia tapauksia tämän toiminnon pohjalta" #: html/SelfService/Create.html:81 msgid "Create ticket" -msgstr "Luo työpyyntö" +msgstr "Luo tapaus" #: lib/RT/Queue_Overlay.pm:84 msgid "Create tickets in this queue" -msgstr "" +msgstr "Luo tapauksia tähän työjonoon" #: lib/RT/Queue_Overlay.pm:72 msgid "Create, delete and modify custom fields" -msgstr "" +msgstr "Luo, muokkaa ja poista kenttiä" #: lib/RT/Queue_Overlay.pm:68 msgid "Create, delete and modify queues" -msgstr "" +msgstr "Luo, poista ja muokkaa työjonoja" #: NOT FOUND IN SOURCE msgid "Create, delete and modify the members of any user's personal groups" -msgstr "" +msgstr "Luo, poista ja muokkaa kenen tahansa henkilökohtaisten ryhmien jäseniä" #: lib/RT/System.pm:59 msgid "Create, delete and modify the members of personal groups" -msgstr "" +msgstr "Luo, poista ja muokkaa henkilökohtaisten ryhmien jäseniä" #: lib/RT/System.pm:60 msgid "Create, delete and modify users" -msgstr "" +msgstr "Luo, poista ja muokkaa käyttäjiä" #: lib/RT/Queue_Overlay.pm:84 msgid "CreateTicket" @@ -1253,7 +1253,7 @@ msgstr "Tämänhetkiset suhteet" #: html/Admin/Elements/EditScrips:30 msgid "Current Scrips" -msgstr "" +msgstr "Tämänhetkinen toiminto" #: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 msgid "Current members" @@ -1265,7 +1265,7 @@ msgstr "Tämänhetkiset oikeudet" #: html/Search/Listing.html:71 msgid "Current search criteria" -msgstr "" +msgstr "Tämänhetkiset hakumääritteet" #: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 msgid "Current watchers" @@ -1314,7 +1314,7 @@ msgstr "Kenttää %1 ei löytynyt" #: html/Admin/Elements/EditCustomFields:197 msgid "Custom field deleted" -msgstr "" +msgstr "Kenttä poistettu" #: lib/RT/Ticket_Overlay.pm:3510 msgid "Custom field not found" @@ -1323,23 +1323,23 @@ msgstr "Kenttää ei löytynyt" #: lib/RT/CustomField_Overlay.pm:283 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" -msgstr "Kenttän arvoa %1 ei löytynyt kentälle %2" +msgstr "Kentän arvoa %1 ei löytynyt kentälle %2" #: NOT FOUND IN SOURCE msgid "Custom field value changed from %1 to %2" -msgstr "Kenttän arvo muutettu arvosta %1 arvoon" +msgstr "Kentän arvo muutettu arvosta %1 arvoon" #: lib/RT/CustomField_Overlay.pm:185 msgid "Custom field value could not be deleted" -msgstr "Kenttän arvoa ei pystytty poistamaan" +msgstr "Kentän arvoa ei pystytty poistamaan" #: lib/RT/CustomField_Overlay.pm:289 msgid "Custom field value could not be found" -msgstr "Kenttän arvoa ei löydetty" +msgstr "Kentän arvoa ei löydetty" #: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 msgid "Custom field value deleted" -msgstr "Kenttän arvo poistettu" +msgstr "Kentän arvo poistettu" #: lib/RT/Transaction_Overlay.pm:550 msgid "CustomField" @@ -1355,11 +1355,11 @@ msgstr "Päivät" #: lib/RT/Date.pm:422 msgid "Dec." -msgstr "Joulu" +msgstr "joulu" #: NOT FOUND IN SOURCE msgid "December" -msgstr "" +msgstr "joulukuu" #: NOT FOUND IN SOURCE msgid "Default Autoresponse Template" @@ -1383,12 +1383,12 @@ msgstr "" #: etc/initialdata:238 msgid "Default transaction template" -msgstr "" +msgstr "Oletustapahtumapohja" #: lib/RT/Transaction_Overlay.pm:645 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" -msgstr "" +msgstr "Oletus: %1/%2 muutettu arvosta %3 arvoon %4" #: html/User/Delegation.html:25 html/User/Delegation.html:28 msgid "Delegate rights" @@ -1412,7 +1412,7 @@ msgstr "Poista" #: lib/RT/Queue_Overlay.pm:90 msgid "Delete tickets" -msgstr "" +msgstr "Poista tapaukset" #: lib/RT/Queue_Overlay.pm:90 msgid "DeleteTicket" @@ -1444,7 +1444,7 @@ msgstr "" #: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 msgid "Depended on by" -msgstr "Tästä pyynnöstä riippuu" +msgstr "Tästä tapauksesta riippuu" #: NOT FOUND IN SOURCE msgid "Dependencies: \\n" @@ -1452,7 +1452,7 @@ msgstr "Riippuvuudet: \\n" #: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 msgid "Depends on" -msgstr "Riippuu pyynnöstä" +msgstr "Riippuu tapauksesta" #: NOT FOUND IN SOURCE msgid "DependsOn" @@ -1464,7 +1464,7 @@ msgstr "Laskeva" #: html/SelfService/Create.html:75 html/Ticket/Create.html:119 msgid "Describe the issue below" -msgstr "Työtilauksen kuvaus" +msgstr "Kuvaa tapausta" #: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 msgid "Description" @@ -1480,15 +1480,15 @@ msgstr "Näytä" #: lib/RT/Queue_Overlay.pm:69 msgid "Display Access Control List" -msgstr "" +msgstr "Näytä käyttöoikeuslista" #: lib/RT/Queue_Overlay.pm:75 msgid "Display Scrip templates for this queue" -msgstr "" +msgstr "Näytä työjonon toimintopohjat" #: lib/RT/Queue_Overlay.pm:78 msgid "Display Scrips for this queue" -msgstr "" +msgstr "Näytä työjonon toiminnot" #: html/Ticket/Elements/ShowHistory:35 msgid "Display mode" @@ -1497,11 +1497,11 @@ msgstr "Näkymä" #: html/SelfService/Display.html:25 html/SelfService/Display.html:29 #. ($Ticket->id) msgid "Display ticket #%1" -msgstr "Näytä työpyyntö #%1" +msgstr "Näytä tapaus #%1" #: lib/RT/System.pm:54 msgid "Do anything and everything" -msgstr "" +msgstr "Tee mitä tahansa ja kaikki" #: html/Elements/Refresh:30 msgid "Don't refresh this page." @@ -1509,7 +1509,7 @@ msgstr "Älä päivitä tätä sivua" #: html/Search/Elements/PickRestriction:114 msgid "Don't show search results" -msgstr "" +msgstr "Älä näytä hakutuloksia" #: html/Ticket/Elements/ShowTransaction:105 msgid "Download" @@ -1517,16 +1517,16 @@ msgstr "Lataa" #: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 msgid "Due" -msgstr "Mennessä" +msgstr "Erääntyy" #: NOT FOUND IN SOURCE msgid "Due date '%1' could not be parsed" -msgstr "Mennessä -päivää '%1' ei onnistuttu kääntämään järjestelmälle." +msgstr "Erääntymispäivää '%1' ei onnistuttu tulkkaamaan järjestelmälle." #: bin/rt-commit-handler:754 #. ($1, $msg) msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "VIRHE: Työpyynnön '%1' lataaminen ei onnistunut: %2.\\n" +msgstr "VIRHE: Tapauksen '%1' lataaminen ei onnistunut: %2.\\n" #: NOT FOUND IN SOURCE msgid "Edit" @@ -1535,7 +1535,7 @@ msgstr "Muokkaa" #: html/Admin/Queues/CustomFields.html:45 #. ($Queue->Name) msgid "Edit Custom Fields for %1" -msgstr "Muokkaa kenttiä: työjono %1" +msgstr "Muokkaa työjonon %1 kenttiä" #: html/Ticket/ModifyLinks.html:36 msgid "Edit Relationships" @@ -1544,53 +1544,53 @@ msgstr "Muokkaa suhteita" #: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" -msgstr "" +msgstr "Muokkaa työjonon %1 pohjia" #: NOT FOUND IN SOURCE msgid "Edit keywords" -msgstr "" +msgstr "Muokkaa avainsanoja" #: NOT FOUND IN SOURCE msgid "Edit scrips" -msgstr "Muokkaa lappuja" +msgstr "Muokkaa toimintoja" #: html/Admin/Global/index.html:46 msgid "Edit system templates" -msgstr "Muokkaa systeemipohjia" +msgstr "Muokkaa järjestelmäpohjia" #: NOT FOUND IN SOURCE msgid "Edit templates for %1" -msgstr "Muokkaa pohjia: työjono %1" +msgstr "Muokkaa työjonon %1 pohjia" #: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 #. ($QueueObj->Name) #. ($QueueObj->Id) msgid "Editing Configuration for queue %1" -msgstr "Asetusten muokkaus: työjono %1" +msgstr "Muokataan työjonon %1 asetuksia" #: html/Admin/Elements/ModifyUser:25 #. ($UserObj->Name) msgid "Editing Configuration for user %1" -msgstr "Asetusten muokkaus: käyttäjä %1" +msgstr "Muokataan käyttäjän %1 asetuksia" #: html/Admin/Elements/EditCustomField:74 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" -msgstr "Kentän %1 muokkaus" +msgstr "Muokataan kenttää %1" #: html/Admin/Groups/Members.html:32 #. ($Group->Name) msgid "Editing membership for group %1" -msgstr "Ryhmän %1 jäsenten muokkaus" +msgstr "Muokataan ryhmän %1 jäseniä" #: html/User/Groups/Members.html:129 #. ($Group->Name) msgid "Editing membership for personal group %1" -msgstr "Henkilökohtaisen ryhmän %1 jäsenten muokkaus" +msgstr "Muokataan henkilökohtaisen ryhmän %1 jäseniä" #: NOT FOUND IN SOURCE msgid "Editing template %1" -msgstr "Pohjan %1 muokkaus" +msgstr "Muokataan pohjaa %1" #: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 msgid "Either base or target must be specified" @@ -1614,15 +1614,15 @@ msgstr "Sähköpostin koodaus" #: html/Admin/Elements/EditCustomField:36 msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "" +msgstr "Aktiivinen (rastin poistaminen passivoi kentän)" #: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 msgid "Enabled (Unchecking this box disables this group)" -msgstr "" +msgstr "Aktiivinen (rastin poistaminen passivoi ryhmän)" #: html/Admin/Queues/Modify.html:84 msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Aktiivinen (Rastin poistaminen asettaa työjonon ei-aktiiviseksi)" +msgstr "Aktiivinen (rastin poistaminen passivoi työjonon)" #: html/Admin/Elements/EditCustomFields:99 msgid "Enabled Custom Fields" @@ -1639,15 +1639,15 @@ msgstr "Aktivoitu tila %1" #: lib/RT/CustomField_Overlay.pm:361 msgid "Enter multiple values" -msgstr "" +msgstr "Anna useampi arvo" #: lib/RT/CustomField_Overlay.pm:358 msgid "Enter one value" -msgstr "" +msgstr "Anna yksi arvo" #: html/Ticket/Elements/EditLinks:112 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." -msgstr "Lisää työpyyntöjen numerot tai www-linkit. Käytä välilyöntiä erottimena syöttäessäsi useampaa numeroa tai linkkiä." +msgstr "Lisää tapausten numerot tai www-linkit. Erota useammat välilyönneillä." #: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 msgid "Error" @@ -1675,7 +1675,7 @@ msgstr "Virhe parametreissa: Ticket->DelWatcher" #: etc/initialdata:20 msgid "Everyone" -msgstr "" +msgstr "Kaikki" #: bin/rt-crontool:194 msgid "Example:" @@ -1691,15 +1691,15 @@ msgstr "Ulkoinen yhteystietotunnus" #: html/Admin/Users/Modify.html:73 msgid "Extra info" -msgstr "Lisatieto" +msgstr "Lisätieto" #: lib/RT/User_Overlay.pm:302 msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "'Etuoikeutettu' -pseudoryhmää ei löytynyt" +msgstr "'Erioikeutettu'-valeryhmää ei löytynyt" #: lib/RT/User_Overlay.pm:309 msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "Ei-etuoikeutettu' -pseudoryhmää ei löytynyt" +msgstr "'Erioikeudeton'-valeryhmää ei löytynyt" #: bin/rt-crontool:138 #. ($modname, $@) @@ -1708,11 +1708,11 @@ msgstr "" #: lib/RT/Date.pm:412 msgid "Feb." -msgstr "Helmi" +msgstr "helmi" #: NOT FOUND IN SOURCE msgid "February" -msgstr "" +msgstr "helmikuu" #: NOT FOUND IN SOURCE msgid "Fin" @@ -1728,19 +1728,19 @@ msgstr "" #: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 msgid "Find group whose" -msgstr "" +msgstr "Etsi ryhmä, jonka" #: html/Elements/Quicksearch:25 msgid "Find new/open tickets" -msgstr "Etsi uudet/avoimet työpyynnöt" +msgstr "Etsi uudet/avoimet tapaukset" #: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 msgid "Find people whose" -msgstr "Etsi käyttäjät joiden" +msgstr "Etsi käyttäjät, joiden" #: html/Search/Listing.html:108 msgid "Find tickets" -msgstr "" +msgstr "Hae tapauksia" #: NOT FOUND IN SOURCE msgid "Finish Approval" @@ -1802,11 +1802,11 @@ msgstr "" #: lib/RT/Transaction_Overlay.pm:595 #. ($New->Name) msgid "Given to %1" -msgstr "" +msgstr "Annettu käyttäjälle %1" #: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 msgid "Global" -msgstr "Globaali" +msgstr "Yleiset" #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" @@ -1814,12 +1814,12 @@ msgstr "" #: NOT FOUND IN SOURCE msgid "Global Scrips" -msgstr "Globaalit laput" +msgstr "Yleiset toiminnot" #: html/Admin/Elements/SelectTemplate:38 #. (loc($Template->Name)) msgid "Global template: %1" -msgstr "" +msgstr "Yleinen pohja: %1" #: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 msgid "Go!" @@ -1827,7 +1827,7 @@ msgstr "Ok!" #: NOT FOUND IN SOURCE msgid "Good pgp sig from %1\\n" -msgstr "Hyvä PGP allekirjoitus käyttäjältä %1\\n" +msgstr "Hyvä PGP-allekirjoitus käyttäjältä %1\\n" #: html/Search/Listing.html:50 msgid "Goto page" @@ -1835,11 +1835,11 @@ msgstr "Siirry sivulle" #: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 msgid "Goto ticket" -msgstr "Siirry työpyyntöön" +msgstr "Siirry tapaukseen" #: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 msgid "Group" -msgstr "" +msgstr "Ryhmä" #: NOT FOUND IN SOURCE msgid "Group %1 %2: %3" @@ -1855,12 +1855,12 @@ msgstr "Ryhmässä on jo jäsen" #: NOT FOUND IN SOURCE msgid "Group could not be created." -msgstr "" +msgstr "Ryhmää ei voitu luoda." #: html/Admin/Groups/Modify.html:77 #. ($create_msg) msgid "Group could not be created: %1" -msgstr "" +msgstr "Ryhmää ei voitu luoda: %1" #: lib/RT/Group_Overlay.pm:497 msgid "Group created" @@ -1868,7 +1868,7 @@ msgstr "Ryhmä luotu" #: lib/RT/Group_Overlay.pm:1133 msgid "Group has no such member" -msgstr "" +msgstr "Ryhmässä ei ole sellaista jäsentä" #: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 msgid "Group not found" @@ -1930,7 +1930,7 @@ msgstr "Identiteetti" #: etc/upgrade/2.1.71:86 msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "" +msgstr "Jos hyväksyntä hylätään, hylkää alkuperäinen ja poista siitä riippuvat hyväksynnät" #: bin/rt-crontool:190 msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." @@ -1942,23 +1942,23 @@ msgstr "Jos olet muuttanut tietoja, muista tallentaa" #: lib/RT/Interface/Web.pm:860 msgid "Illegal value for %1" -msgstr "" +msgstr "Kelpaamaton arvo %1" #: lib/RT/Interface/Web.pm:863 msgid "Immutable field" -msgstr "" +msgstr "Muuttumaton kenttä" #: html/Admin/Elements/EditCustomFields:74 msgid "Include disabled custom fields in listing." -msgstr "" +msgstr "Sisällytä passiiviset kentät listaukseen" #: html/Admin/Queues/index.html:43 msgid "Include disabled queues in listing." -msgstr "Sisällytä listaukseen myös ei-aktiiviset työjonot." +msgstr "Sisällytä listaukseen myös passiiviset työjonot." #: html/Admin/Users/index.html:47 msgid "Include disabled users in search." -msgstr "Sisällytä listaukseen myös ei-aktiiviset käyttäjät." +msgstr "Sisällytä listaukseen myös passiiviset käyttäjät." #: lib/RT/Tickets_Overlay.pm:1067 msgid "Initial Priority" @@ -1978,12 +1978,12 @@ msgstr "" #: lib/RT/Ticket_Overlay.pm:3729 msgid "Internal Error" -msgstr "" +msgstr "Sisäinen virhe" #: lib/RT/Record.pm:143 #. ($id->{error_message}) msgid "Internal Error: %1" -msgstr "" +msgstr "Sisäinen virhe: %1" #: lib/RT/Group_Overlay.pm:644 msgid "Invalid Group Type" @@ -1991,19 +1991,19 @@ msgstr "Ryhmän tyyppi ei kelpaa" #: lib/RT/Principal_Overlay.pm:128 msgid "Invalid Right" -msgstr "" +msgstr "Kelpaamaton oikeus" #: NOT FOUND IN SOURCE msgid "Invalid Type" -msgstr "" +msgstr "Kelpaamaton tyyppi" #: lib/RT/Interface/Web.pm:865 msgid "Invalid data" -msgstr "" +msgstr "Kelpaamatonta dataa" #: lib/RT/Ticket_Overlay.pm:438 msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "Omistaja ei kelpaa. Asetetaan oletusasetusten mukaan 'eikukaan'" +msgstr "Omistaja ei kelpaa. Asetetaan oletusasetusten mukaan 'ei kukaan'" #: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" @@ -2048,11 +2048,11 @@ msgstr "Tammi" #: NOT FOUND IN SOURCE msgid "January" -msgstr "" +msgstr "tammikuu" #: lib/RT/Group_Overlay.pm:149 msgid "Join or leave this group" -msgstr "" +msgstr "Liity tai jätä ryhmä" #: lib/RT/Date.pm:417 msgid "Jul." @@ -2060,19 +2060,19 @@ msgstr "Heinä" #: NOT FOUND IN SOURCE msgid "July" -msgstr "" +msgstr "Heinäkuu" #: html/Ticket/Elements/Tabs:99 msgid "Jumbo" -msgstr "Jumbo" +msgstr "Jätti" #: lib/RT/Date.pm:416 msgid "Jun." -msgstr "Kesä" +msgstr "kesä" #: NOT FOUND IN SOURCE msgid "June" -msgstr "" +msgstr "kesäkuu" #: NOT FOUND IN SOURCE msgid "Keyword" @@ -2080,7 +2080,7 @@ msgstr "Avainsana" #: html/Admin/Elements/ModifyUser:52 msgid "Lang" -msgstr "Keili" +msgstr "Kieli" #: html/Ticket/Elements/Tabs:73 msgid "Last" @@ -2096,7 +2096,7 @@ msgstr "Viimeksi otettu yhteyttä" #: html/Search/Elements/TicketHeader:41 msgid "Last Notified" -msgstr "" +msgstr "Viimeksi huomautettu" #: html/Elements/SelectDateType:30 msgid "Last Updated" @@ -2108,11 +2108,11 @@ msgstr "" #: NOT FOUND IN SOURCE msgid "Left" -msgstr "Vasen" +msgstr "Jäljellä" #: html/Admin/Users/Modify.html:83 msgid "Let this user access RT" -msgstr "Päästä tämä käyttäjä sisään RT:een" +msgstr "Päästä tämä käyttäjä sisään RT:iin" #: html/Admin/Users/Modify.html:87 msgid "Let this user be granted rights" @@ -2151,11 +2151,11 @@ msgstr "Linkkiä ei löydetty" #: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 #. ($Ticket->Id) msgid "Link ticket #%1" -msgstr "Linkitä työpyyntö #%1" +msgstr "Linkitä tapaus #%1" #: NOT FOUND IN SOURCE msgid "Link ticket %1" -msgstr "" +msgstr "Linkitä tapaus #%1" #: html/Ticket/Elements/Tabs:97 msgid "Links" @@ -2168,12 +2168,12 @@ msgstr "Sijainti" #: lib/RT.pm:158 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." -msgstr "Lokihakemistoa %1 ei löytynyt tai kirkoittaminen ei onnistunut.\\n RT ei voi toimia." +msgstr "Lokihakemistoa %1 ei löytynyt tai kirjoittaminen ei onnistunut.\\n RT ei voi toimia." #: html/Elements/Header:57 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" -msgstr "Kirjautunut sisään tunnuksella %1" +msgstr "Olet kirjautunut sisään tunnuksella %1" #: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 msgid "Login" @@ -2193,19 +2193,19 @@ msgstr "Aseta tila" #: html/Search/Bulk.html:109 msgid "Make date Due" -msgstr "Aseta mennessä -aika" +msgstr "Aseta erääntymisaika" #: html/Search/Bulk.html:110 msgid "Make date Resolved" -msgstr "Aseta päätetty -aika" +msgstr "Aseta päätösaika" #: html/Search/Bulk.html:107 msgid "Make date Started" -msgstr "Aseta aloitettu -aika" +msgstr "Aseta aloitusaika" #: html/Search/Bulk.html:106 msgid "Make date Starts" -msgstr "Aseta alkaa -aika" +msgstr "Aseta alkuaika" #: html/Search/Bulk.html:108 msgid "Make date Told" @@ -2225,31 +2225,31 @@ msgstr "Aseta otsikko" #: html/Admin/index.html:33 msgid "Manage groups and group membership" -msgstr "" +msgstr "Hallinnoi ryhmiä ja jäsenyyksiä" #: html/Admin/index.html:39 msgid "Manage properties and configuration which apply to all queues" -msgstr "" +msgstr "Hallinnoi yleisiä asetuksia, jotka vaikuttavat kaikkiin työjonoihin" #: html/Admin/index.html:36 msgid "Manage queues and queue-specific properties" -msgstr "" +msgstr "Hallinnoi työjonoja ja työjonokohtaisia asetuksia" #: html/Admin/index.html:30 msgid "Manage users and passwords" -msgstr "" +msgstr "Hallinnoi käyttäjiä ja salasanoja" #: lib/RT/Date.pm:413 msgid "Mar." -msgstr "Maasis" +msgstr "Maalis" #: NOT FOUND IN SOURCE msgid "March" -msgstr "" +msgstr "Maaliskuu" #: NOT FOUND IN SOURCE msgid "May" -msgstr "" +msgstr "Toukokuu" #: lib/RT/Date.pm:415 msgid "May." @@ -2293,7 +2293,7 @@ msgstr "Yhdistä" #: html/Ticket/Update.html:102 msgid "Message" -msgstr "" +msgstr "Viesti" #: lib/RT/Interface/Web.pm:867 msgid "Missing a primary key?: %1" @@ -2301,15 +2301,15 @@ msgstr "" #: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 msgid "Mobile" -msgstr "Käsipuhelin" +msgstr "Kännykkä" #: html/Admin/Elements/ModifyUser:72 msgid "MobilePhone" -msgstr "Käsipuhelin" +msgstr "Kännykkä" #: lib/RT/Queue_Overlay.pm:70 msgid "Modify Access Control List" -msgstr "" +msgstr "Muokkaa käyttöoikeusluetteloa" #: NOT FOUND IN SOURCE msgid "Modify Custom Field %1" @@ -2317,23 +2317,23 @@ msgstr "Muokkaa kenttää %1" #: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 msgid "Modify Custom Fields which apply to all queues" -msgstr "" +msgstr "Muokkaa kaikkia työjonoja koskevia kenttiä" #: lib/RT/Queue_Overlay.pm:73 msgid "Modify Scrip templates for this queue" -msgstr "" +msgstr "Muokkaa tämän työjonon toimintopohjia" #: lib/RT/Queue_Overlay.pm:76 msgid "Modify Scrips for this queue" -msgstr "" +msgstr "Muokkaa tämän työjonon toimintoja" #: NOT FOUND IN SOURCE msgid "Modify System ACLS" -msgstr "" +msgstr "Muokkaa järjestelmän käyttöoikeusluetteloa" #: NOT FOUND IN SOURCE msgid "Modify Template %1" -msgstr "" +msgstr "Muokkaa pohjaa %1" #: html/Admin/Queues/CustomField.html:45 #. ($QueueObj->Name()) @@ -2347,11 +2347,11 @@ msgstr "" #: html/Admin/Queues/Scrip.html:54 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" -msgstr "" +msgstr "Muokkaa työjonon %1 toimintoa" #: html/Admin/Global/Scrip.html:48 msgid "Modify a scrip which applies to all queues" -msgstr "" +msgstr "Muokkaa toimintoa, jota sovelletaan kaikkiin työjonoihin" #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" @@ -2360,20 +2360,20 @@ msgstr "" #: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 #. ($TicketObj->Id) msgid "Modify dates for #%1" -msgstr "Muokkaa työpyynnön #%1 päiviä" +msgstr "Muokkaa tapauksen #%1 päiviä" #: html/Ticket/ModifyDates.html:35 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" -msgstr "Muokkaa työpyynnön #%1 päiviä" +msgstr "Muokkaa tapauksen #%1 päiviä" #: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 msgid "Modify global group rights" -msgstr "Muokkaa ryhmien globaaleja oikeuksia" +msgstr "Muokkaa ryhmien yleisiä oikeuksia" #: html/Admin/Global/GroupRights.html:33 msgid "Modify global group rights." -msgstr "Muokkaa ryhmien globaaleja oikeuksia." +msgstr "Muokkaa ryhmien yleisiä oikeuksia." #: NOT FOUND IN SOURCE msgid "Modify global rights for groups" @@ -2385,19 +2385,19 @@ msgstr "" #: NOT FOUND IN SOURCE msgid "Modify global scrips" -msgstr "Muokkaa globaaleja lappuja" +msgstr "Muokkaa yleisiä toimintoja" #: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 msgid "Modify global user rights" -msgstr "" +msgstr "Muokkaa yleisiä käyttäjien oikeuksia" #: html/Admin/Global/UserRights.html:33 msgid "Modify global user rights." -msgstr "Muokkaa käyttäjien globaaleja oikeuksia." +msgstr "Muokkaa käyttäjien yleisiä oikeuksia." #: lib/RT/Group_Overlay.pm:146 msgid "Modify group metadata or delete group" -msgstr "" +msgstr "Muokkaa ryhmän metatietoja tai poista ryhmä" #: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 #. ($GroupObj->Name) @@ -2411,11 +2411,11 @@ msgstr "Muokkaa ryhmän oikeuksia työjonossa %1" #: lib/RT/Group_Overlay.pm:148 msgid "Modify membership roster for this group" -msgstr "" +msgstr "Muokkaa tämän ryhmän jäsenlistaa" #: lib/RT/System.pm:61 msgid "Modify one's own RT account" -msgstr "" +msgstr "Muokkaa omaa RT-tunnustasi" #: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 #. ($QueueObj->Name) @@ -2426,16 +2426,16 @@ msgstr "Muokkaa työjonoon %1 liittyviä käyttäjiä" #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" -msgstr "Muokkaa työpyyntöön %1 liittyviä käyttäjiä" +msgstr "Muokkaa tapaukseen %1 liittyviä käyttäjiä" #: html/Admin/Queues/Scrips.html:44 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" -msgstr "Muokkaa työjonoon %1 liittyviä lappuja" +msgstr "Muokkaa työjonoon %1 liittyviä toimintoja" #: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 msgid "Modify scrips which apply to all queues" -msgstr "" +msgstr "Muokkaa toimintoja, joita sovelletaan kaikkiin työjonoihin" #: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 #. (loc($TemplateObj->Name())) @@ -2445,16 +2445,16 @@ msgstr "Muokkaa pohjaa %1" #: html/Admin/Global/Templates.html:44 msgid "Modify templates which apply to all queues" -msgstr "" +msgstr "Muokkaaa pohjia, joita sovelletaan kaikkiin työjonoihin" #: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 #. ($Group->Name) msgid "Modify the group %1" -msgstr "Muokkaa työjonoa %1" +msgstr "Muokkaa ryhmää %1" #: lib/RT/Queue_Overlay.pm:71 msgid "Modify the queue watchers" -msgstr "" +msgstr "Muokkaa työjonon tarkkailjoita" #: html/Admin/Users/Modify.html:236 #. ($UserObj->Name) @@ -2464,16 +2464,16 @@ msgstr "Muokkaa käyttäjää %1" #: html/Ticket/ModifyAll.html:37 #. ($Ticket->Id) msgid "Modify ticket # %1" -msgstr "Muokkaa työpyyntöä #%1" +msgstr "Muokkaa tapausta #%1" #: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 #. ($TicketObj->Id) msgid "Modify ticket #%1" -msgstr "Muokkaa työpyyntöä #%1" +msgstr "Muokkaa tapausta #%1" #: lib/RT/Queue_Overlay.pm:88 msgid "Modify tickets" -msgstr "" +msgstr "Muokkaa tapauksia" #: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 #. ($GroupObj->Name) @@ -2487,7 +2487,7 @@ msgstr "Muokkaa työjonoon %1 liittyviä käyttäjien oikeuksia" #: NOT FOUND IN SOURCE msgid "Modify watchers for queue '%1'" -msgstr "Muokkaa työpyynnön %1 katselijoita" +msgstr "Muokkaa tapauksen %1 seuraajia" #: lib/RT/Queue_Overlay.pm:70 msgid "ModifyACL" @@ -2528,11 +2528,11 @@ msgstr "Lisätietoa: %1" #: html/Admin/Elements/EditCustomFields:61 msgid "Move down" -msgstr "" +msgstr "Siirrä alas" #: html/Admin/Elements/EditCustomFields:53 msgid "Move up" -msgstr "" +msgstr "Siirrä ylös" #: html/Admin/Elements/SelectSingleOrMultiple:27 msgid "Multiple" @@ -2544,11 +2544,11 @@ msgstr "'Nimi' täytyy määritellä" #: NOT FOUND IN SOURCE msgid "My Approvals" -msgstr "" +msgstr "Hyväksyntäni" #: html/Approvals/index.html:25 html/Approvals/index.html:26 msgid "My approvals" -msgstr "" +msgstr "Hyväksyntäni" #: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 msgid "Name" @@ -2560,11 +2560,11 @@ msgstr "Nimi on käytössä" #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" -msgstr "" +msgstr "Tarvitsee järjestelmän ylläpitäjän hyväksynnän" #: html/Ticket/Elements/ShowDates:52 msgid "Never" -msgstr "" +msgstr "Ei ikinä" #: html/Elements/Quicksearch:30 msgid "New" @@ -2584,7 +2584,7 @@ msgstr "Uusi linkki" #: html/Ticket/Elements/Tabs:36 msgid "New Search" -msgstr "" +msgstr "Uusi haku" #: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 msgid "New custom field" @@ -2592,7 +2592,7 @@ msgstr "" #: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 msgid "New group" -msgstr "" +msgstr "Uusi ryhmä" #: html/SelfService/Prefs.html:32 msgid "New password" @@ -2604,11 +2604,11 @@ msgstr "Uusi salasana" #: html/Admin/Elements/QueueTabs:70 msgid "New queue" -msgstr "" +msgstr "Uusi työjono" #: html/SelfService/Elements/Tabs:63 msgid "New request" -msgstr "Uusi työpyyntö" +msgstr "Uusi tapaus" #: html/Admin/Elements/SelectRights:42 msgid "New rights" @@ -2616,7 +2616,7 @@ msgstr "Uudet oikeudet" #: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 msgid "New scrip" -msgstr "" +msgstr "Uusi toiminto" #: NOT FOUND IN SOURCE msgid "New search" @@ -2624,15 +2624,15 @@ msgstr "Uusi haku" #: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 msgid "New template" -msgstr "" +msgstr "Uusi pohja" #: lib/RT/Ticket_Overlay.pm:2771 msgid "New ticket doesn't exist" -msgstr "Uutta työpyyntöä ei löydy" +msgstr "Uutta tapausta ei löydy" #: html/Admin/Elements/UserTabs:52 msgid "New user" -msgstr "" +msgstr "Uusi käyttäjä" #: html/Admin/Elements/CreateUserCalled:26 msgid "New user called" @@ -2684,11 +2684,11 @@ msgstr "Ei pohjaa" #: bin/rt-commit-handler:764 msgid "No Ticket specified. Aborting ticket " -msgstr "Työpyyntöä ei määritelty. Poistutaan työpyynnöstä" +msgstr "Tapausta ei määritelty. Perutaan tapaus " #: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket modifications\\n\\n" -msgstr "Työpyyntöä ei määritelty. Poistutaan työpyynnön muokkauksesta\\n\\n" +msgstr "Tapausta ei määritelty. Poistutaan tapauksen muokkauksesta\\n\\n" #: html/Approvals/Elements/Approve:47 msgid "No action" @@ -2704,7 +2704,7 @@ msgstr "Komentoa ei löytynyt\\n" #: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 msgid "No comment entered about this user" -msgstr "Tälle käyttäjälle ei ole annettu kommentteja" +msgstr "Käyttäjälle ei ole annettu kommentteja" #: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 msgid "No correspondence attached" @@ -2725,12 +2725,12 @@ msgstr "Salasanaa ei ole asetettu" #: lib/RT/Queue_Overlay.pm:259 msgid "No permission to create queues" -msgstr "Ei oikeutta luoda kyselyitä" +msgstr "Ei oikeutta luoda työjonoja" #: lib/RT/Ticket_Overlay.pm:341 #. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" -msgstr "" +msgstr "Ei oikeutta luoda tapauksia työjonoon '%1'" #: lib/RT/User_Overlay.pm:151 msgid "No permission to create users" @@ -2738,11 +2738,11 @@ msgstr "Ei oikeutta luoda käyttäjiä" #: html/SelfService/Display.html:174 msgid "No permission to display that ticket" -msgstr "Ei oikeutta tarkastella tätä työpyyntöä" +msgstr "Ei oikeutta tarkastella tätä tapausta" #: html/SelfService/Update.html:55 msgid "No permission to view update ticket" -msgstr "Ei oikeutta päivittää tätä työpyyntöä" +msgstr "Ei oikeutta päivittää tätä tapausta" #: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 msgid "No principal specified" @@ -2750,35 +2750,35 @@ msgstr "Toimeksiantajaa ei ole määritelty" #: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 msgid "No principals selected." -msgstr "Johtajia ei ole valittu." +msgstr "Toimeksiantajia ei ole valittu." #: html/Admin/Queues/index.html:35 msgid "No queues matching search criteria found." -msgstr "Yhtään hakukriteerit täyttävää työpyyntöä ei löytynyt." +msgstr "Yhtään hakukriteerit täyttävää tapausta ei löytynyt." #: html/Admin/Elements/SelectRights:81 msgid "No rights found" -msgstr "" +msgstr "Oikeuksia ei löytynyt" #: html/Admin/Elements/SelectRights:33 msgid "No rights granted." -msgstr "Ei oikeuksia" +msgstr "Ei myönnettyjä oikeuksia." #: html/Search/Bulk.html:149 msgid "No search to operate on." -msgstr "Ei hakua jonka kanssa työskennellä" +msgstr "Ei työstettävää hakua" #: NOT FOUND IN SOURCE msgid "No ticket id specified" -msgstr "Työpyynnön numeroa ei ole määritelty" +msgstr "Tapauksen numeroa ei ole määritelty" #: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 msgid "No transaction type specified" -msgstr "Toiminnon tyyppiä ei ole määritelty" +msgstr "Tapahtuman tyyppiä ei ole määritelty" #: NOT FOUND IN SOURCE msgid "No user or email address specified" -msgstr "" +msgstr "Käyttäjää tai sähköpostiosoitetta ei ole määritelty" #: html/Admin/Users/index.html:36 msgid "No users matching search criteria found." @@ -2786,7 +2786,7 @@ msgstr "Yhtään hakukriteerit täyttävää käyttäjää ei löytynyt." #: bin/rt-commit-handler:644 msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" -msgstr "Ei kelpaa RT käyttäjäksi. RT cvs käsittelijä irrottautuu. Ole hyvä ja ota yhteyttä RT:n ylläpitäjään.\\n" +msgstr "Ei kelpaa RT-käyttäjäksi. RT:n cvs-käsittelijä irrottautuu. Ole hyvä ja ota yhteyttä RT:n ylläpitäjään.\\n" #: lib/RT/Interface/Web.pm:859 msgid "No value sent to _Set!\\n" @@ -2794,15 +2794,15 @@ msgstr "" #: html/Search/Elements/TicketRow:37 msgid "Nobody" -msgstr "" +msgstr "Ei kukaan" #: lib/RT/Interface/Web.pm:864 msgid "Nonexistant field?" -msgstr "" +msgstr "Olematon kenttä?" #: html/Elements/Login:99 msgid "Not logged in" -msgstr "" +msgstr "Sisäänkirjautumaton" #: html/Elements/Header:59 html/SelfService/Elements/Header:58 msgid "Not logged in." @@ -2814,15 +2814,15 @@ msgstr "Ei asetettu" #: html/NoAuth/Reminder.html:27 msgid "Not yet implemented." -msgstr "Ei vielä implementoitu." +msgstr "Ei vielä toteutettu." #: html/Admin/Groups/Rights.html:25 msgid "Not yet implemented...." -msgstr "Ei vielä implementoitu..." +msgstr "Ei vielä toteutettu..." #: html/Approvals/Elements/Approve:50 msgid "Notes" -msgstr "" +msgstr "Merkintöjä" #: lib/RT/User_Overlay.pm:642 msgid "Notification could not be sent" @@ -2882,7 +2882,7 @@ msgstr "Marras" #: NOT FOUND IN SOURCE msgid "November" -msgstr "" +msgstr "marraskuu" #: lib/RT/Record.pm:157 msgid "Object could not be created" @@ -2898,7 +2898,7 @@ msgstr "Loka" #: NOT FOUND IN SOURCE msgid "October" -msgstr "" +msgstr "lokakuu" #: html/Elements/SelectDateRelation:35 msgid "On" @@ -2939,12 +2939,12 @@ msgstr "" #: html/Approvals/Elements/PendingMyApproval:50 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" -msgstr "" +msgstr "Näytä vain pyynnöt, jotka on luotu jälkeen %1" #: html/Approvals/Elements/PendingMyApproval:48 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" -msgstr "" +msgstr "Näytä vain pyynnöt, jotka on luotu ennen %1" #: html/Elements/Quicksearch:31 msgid "Open" @@ -2956,19 +2956,19 @@ msgstr "Avaa" #: html/SelfService/Elements/Tabs:57 msgid "Open requests" -msgstr "Avoimet työpyynnöt" +msgstr "Avoimet tapaukset" #: html/Admin/Users/Prefs.html:41 msgid "Open tickets (from listing) in a new window" -msgstr "Avoimet työpyynnöt (listasta) uudessa ikkunassa" +msgstr "Avoimet tapaukset (listasta) uudessa ikkunassa" #: html/Admin/Users/Prefs.html:40 msgid "Open tickets (from listing) in another window" -msgstr "Avoimet työpyynnöt (listasta) toisessa ikkunassa" +msgstr "Avoimet tapaukset (listasta) toisessa ikkunassa" #: etc/initialdata:133 msgid "Open tickets on correspondence" -msgstr "" +msgstr "Avaa tapaukset, kun esiintyy kirjeenvaihtoa" #: html/Search/Elements/PickRestriction:101 msgid "Ordering and sorting" @@ -2976,12 +2976,12 @@ msgstr "Järjestäminen" #: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 msgid "Organization" -msgstr "Organisaatio" +msgstr "Laitos" #: html/Approvals/Elements/Approve:34 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" -msgstr "" +msgstr "Alkuperäinen tapaus: #%1" #: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 msgid "Over time, priority moves toward" @@ -2989,7 +2989,7 @@ msgstr "Ajan kuluessa prioriteetti muuttuu kohti" #: lib/RT/Queue_Overlay.pm:87 msgid "Own tickets" -msgstr "" +msgstr "Omat tapaukset" #: lib/RT/Queue_Overlay.pm:87 msgid "OwnTicket" @@ -3002,16 +3002,16 @@ msgstr "Omistaja" #: lib/RT/Ticket_Overlay.pm:3004 #. ($OldOwnerObj->Name, $NewOwnerObj->Name) msgid "Owner changed from %1 to %2" -msgstr "" +msgstr "Omistaja vaihdettu tunnuksesta %1 tunnukseen %2" #: lib/RT/Transaction_Overlay.pm:584 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" -msgstr "Omistaja pakottamalla muutettu arvosta %1 arvoon %2" +msgstr "Omistaja pakolla vaihdettu tunnuksesta %1 tunnukseen %2" #: html/Search/Elements/PickRestriction:31 msgid "Owner is" -msgstr "Omistaja on" +msgstr "Omistaja" #: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 msgid "Pager" @@ -3019,7 +3019,7 @@ msgstr "Hakulaite" #: html/Admin/Elements/ModifyUser:74 msgid "PagerPhone" -msgstr "Hakulaite puhelin" +msgstr "Hakulaite-puhelin" #: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 msgid "Parents" @@ -3031,7 +3031,7 @@ msgstr "Salasana" #: html/NoAuth/Reminder.html:25 msgid "Password Reminder" -msgstr "Salasanan muistuttaja" +msgstr "Salasanan muistutus" #: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 msgid "Password too short" @@ -3056,7 +3056,7 @@ msgstr "Pääsy kielletty" #: html/User/Elements/Tabs:35 msgid "Personal Groups" -msgstr "" +msgstr "Omat ryhmät" #: html/User/Groups/index.html:30 html/User/Groups/index.html:40 msgid "Personal groups" @@ -3101,7 +3101,7 @@ msgstr "Pri" #: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." -msgstr "" +msgstr "Toimeksiantajaa %1 ei löytynyt" #: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 msgid "Priority" @@ -3113,20 +3113,20 @@ msgstr "Prioriteetti alkaa arvosta" #: etc/initialdata:25 msgid "Privileged" -msgstr "" +msgstr "Erioikeutettu" #: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" -msgstr "Etuoikeutuksen tila: &1" +msgstr "Erioikeutuksen tila: &1" #: html/Admin/Users/index.html:62 msgid "Privileged users" -msgstr "Etuoikeutetut käyttäjät" +msgstr "Erioikeutetut käyttäjät" #: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 msgid "Pseudogroup for internal use" -msgstr "" +msgstr "Valeryhmä sisäiseen käyttöön" #: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 msgid "Queue" @@ -3136,7 +3136,7 @@ msgstr "Työjono" #. ($Queue) #. ($id) msgid "Queue %1 not found" -msgstr "" +msgstr "Työjonoa %1 ei löytynyt" #: NOT FOUND IN SOURCE msgid "Queue '%1' not found\\n" @@ -3152,7 +3152,7 @@ msgstr "Työjonon nimi" #: NOT FOUND IN SOURCE msgid "Queue Scrips" -msgstr "Työjonon laput" +msgstr "Työjonon toiminnot" #: lib/RT/Queue_Overlay.pm:263 msgid "Queue already exists" @@ -3172,7 +3172,7 @@ msgstr "Työjono luotu" #: NOT FOUND IN SOURCE msgid "Queue is not specified." -msgstr "" +msgstr "Työjonoa ei määritelty" #: html/SelfService/Display.html:129 msgid "Queue not found" @@ -3195,7 +3195,7 @@ msgstr "RT %1 - %2" #: html/Elements/Footer:32 #. ($RT::VERSION) msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." -msgstr "RT %1, tekijä <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "RT %1, tekijä: <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" @@ -3235,11 +3235,11 @@ msgstr "" #: html/SelfService/Closed.html:25 msgid "RT Self Service / Closed Tickets" -msgstr "RT Itsepalvelu / Suljetut työpyynnöt" +msgstr "RT Itsepalvelu / Suljetut tapaukset" #: html/index.html:25 html/index.html:28 msgid "RT at a glance" -msgstr "" +msgstr "RT yhdellä silmäyksellä" #: NOT FOUND IN SOURCE msgid "RT couldn't authenticate you" @@ -3260,7 +3260,7 @@ msgstr "RT ei pystynyt tarkistamaan tätä PGP allekirjoitusta.\\n" #: html/Elements/PageLayout:26 #. ($RT::rtname) msgid "RT for %1" -msgstr "" +msgstr "%1: RT" #: NOT FOUND IN SOURCE msgid "RT for %1: %2" @@ -3285,7 +3285,7 @@ msgstr "RT prosessoi tämän viestin kuten se olisi allekirjoittamaton." #: 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:n sähköpostiohjaus moodi vaatii PGP tunnistamista. Et allekirjoittanut (PGP) viestiä tai allekirjoitustasi ei pystytty varmistamaan." +msgstr "RT:n sähköpostiohjaustila vaatii PGP-tunnistamista. Et allekirjoittanut (PGP) viestiä tai allekirjoitustasi ei pystytty vahvistamaan." #: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 msgid "Real Name" @@ -3342,7 +3342,7 @@ msgstr "Vastaa" #: lib/RT/Queue_Overlay.pm:85 msgid "Reply to tickets" -msgstr "" +msgstr "Vastaa tapauksiin" #: lib/RT/Queue_Overlay.pm:85 msgid "ReplyToTicket" @@ -3358,7 +3358,7 @@ msgstr "Tilaajan sähköpostiosoite" #: NOT FOUND IN SOURCE msgid "Requestor(s)" -msgstr "" +msgstr "Tilaajat" #: NOT FOUND IN SOURCE msgid "RequestorAddresses" @@ -3370,7 +3370,7 @@ msgstr "Tilaajat" #: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 msgid "Requests should be due in" -msgstr "Työpyyntö tulisi suorittaa mennessä" +msgstr "Tapaus tulisi suorittaa mennessä" #: html/Elements/Submit:62 msgid "Reset" @@ -3378,7 +3378,7 @@ msgstr "Palauta" #: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 msgid "Residence" -msgstr "Asuinpaikka" +msgstr "Koti" #: html/Ticket/Elements/Tabs:132 msgid "Resolve" @@ -3387,7 +3387,7 @@ msgstr "Päätä" #: html/Ticket/Update.html:133 #. ($Ticket->id, $Ticket->Subject) msgid "Resolve ticket #%1 (%2)" -msgstr "" +msgstr "Ratkaise tapaus #%1 (%2)" #: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 msgid "Resolved" @@ -3403,11 +3403,11 @@ msgstr "Tulokset" #: html/Search/Elements/PickRestriction:105 msgid "Results per page" -msgstr "Tulosta sivulle" +msgstr "Tuloksia sivulle: " #: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 msgid "Retype Password" -msgstr "Varmista salasana" +msgstr "Vahvista salasana" #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" @@ -3419,7 +3419,7 @@ msgstr "Oikeus delegoitu" #: lib/RT/ACE_Overlay.pm:303 msgid "Right Granted" -msgstr "Oikeus delegoitu" +msgstr "Oikeus myönnetty" #: lib/RT/ACE_Overlay.pm:161 msgid "Right Loaded" @@ -3427,7 +3427,7 @@ msgstr "Oikeus ladattu" #: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 msgid "Right could not be revoked" -msgstr "Oikeutta ei voitu peruuttaa" +msgstr "Oikeutta ei voitu perua" #: html/User/Delegation.html:64 msgid "Right not found" @@ -3439,7 +3439,7 @@ msgstr "Oikeutta ei ladattu" #: lib/RT/ACE_Overlay.pm:689 msgid "Right revoked" -msgstr "Oikeus peruutettu" +msgstr "Oikeus peruttu" #: html/Admin/Elements/UserTabs:41 msgid "Rights" @@ -3448,12 +3448,12 @@ msgstr "Oikeudet" #: lib/RT/Interface/Web.pm:758 #. ($object_type) msgid "Rights could not be granted for %1" -msgstr "" +msgstr "Oikeuksia ei voitu myöntää: %1" #: lib/RT/Interface/Web.pm:791 #. ($object_type) msgid "Rights could not be revoked for %1" -msgstr "" +msgstr "Oikeuksia ei voitu perua: %1" #: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 msgid "Roles" @@ -3478,27 +3478,27 @@ msgstr "Tallenna muutokset" #: html/Admin/Global/Scrip.html:49 #. ($ARGS{'id'}) msgid "Scrip #%1" -msgstr "" +msgstr "Toiminto #%1" #: lib/RT/Scrip_Overlay.pm:176 msgid "Scrip Created" -msgstr "Lappu luotu" +msgstr "Toiminto luotu" #: html/Admin/Elements/EditScrips:84 msgid "Scrip deleted" -msgstr "" +msgstr "Toiminto poistettu" #: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 msgid "Scrips" -msgstr "Laput" +msgstr "Toiminnot" #: NOT FOUND IN SOURCE msgid "Scrips for %1\\n" -msgstr "Laput työjonolle %1\\n" +msgstr "Toiminnot työjonolle %1\\n" #: html/Admin/Queues/Scrips.html:33 msgid "Scrips which apply to all queues" -msgstr "" +msgstr "Toiminnot, joita sovelletaan kaikkiin työjonoihin" #: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 msgid "Search" @@ -3538,31 +3538,31 @@ msgstr "" #: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 msgid "Select group" -msgstr "" +msgstr "Valitse ryhmä" #: lib/RT/CustomField_Overlay.pm:355 msgid "Select multiple values" -msgstr "" +msgstr "Valitse useita arvoja" #: lib/RT/CustomField_Overlay.pm:352 msgid "Select one value" -msgstr "" +msgstr "Valitse yksi arvo" #: html/Admin/Elements/QueueTabs:67 msgid "Select queue" -msgstr "" +msgstr "Valitse työjono" #: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 msgid "Select scrip" -msgstr "" +msgstr "Valitse toiminto" #: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 msgid "Select template" -msgstr "" +msgstr "Valitse pohja" #: html/Admin/Elements/UserTabs:49 msgid "Select user" -msgstr "" +msgstr "Valitse käyttäjä" #: lib/RT/CustomField_Overlay.pm:36 msgid "SelectMultiple" @@ -3610,7 +3610,7 @@ msgstr "" #: etc/initialdata:83 etc/initialdata:87 msgid "Sends mail to the owner" -msgstr "" +msgstr "Lähettää postia omistajalle" #: lib/RT/Date.pm:419 msgid "Sep." @@ -3618,7 +3618,7 @@ msgstr "Syys" #: NOT FOUND IN SOURCE msgid "September" -msgstr "" +msgstr "syyskuu" #: NOT FOUND IN SOURCE msgid "Show Results" @@ -3650,11 +3650,11 @@ msgstr "" #: lib/RT/Queue_Overlay.pm:81 msgid "Show ticket private commentary" -msgstr "" +msgstr "Näytä tapauksen kommentointi" #: lib/RT/Queue_Overlay.pm:79 msgid "Show ticket summaries" -msgstr "" +msgstr "Näytä tapausten yhteenvedot" #: lib/RT/Queue_Overlay.pm:69 msgid "ShowACL" @@ -3711,7 +3711,7 @@ msgstr "Järjestä tulokset" #: html/Admin/Elements/AddCustomFieldValue:25 msgid "SortOrder" -msgstr "Lajittelujärjestyt" +msgstr "Lajittelujärjestys" #: NOT FOUND IN SOURCE msgid "Stalled" @@ -3727,7 +3727,7 @@ msgstr "Aloitettu" #: NOT FOUND IN SOURCE msgid "Started date '%1' could not be parsed" -msgstr "Aloitettu -aikaa '%1' ei pystytty tulkitsemaan" +msgstr "Aloittamisaikaa '%1' ei pystytty tulkitsemaan" #: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 msgid "Starts" @@ -3739,7 +3739,7 @@ msgstr "Alkaa mennessä" #: NOT FOUND IN SOURCE msgid "Starts date '%1' could not be parsed" -msgstr "Alkaa -aikaa '%1' ei pystytty tulkitsemaan" +msgstr "Alkamisaikaa '%1' ei pystytty tulkitsemaan" #: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 msgid "State" @@ -3778,7 +3778,7 @@ msgstr "Otsikko" #: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 #. ($self->Data) msgid "Subject changed to %1" -msgstr "" +msgstr "Otsikko vaihdettu: %1" #: html/Elements/Submit:59 msgid "Submit" @@ -3790,7 +3790,7 @@ msgstr "" #: lib/RT/Group_Overlay.pm:749 msgid "Succeeded" -msgstr "" +msgstr "Onnistui" #: lib/RT/Date.pm:394 msgid "Sun." @@ -3802,11 +3802,11 @@ msgstr "" #: html/User/Elements/DelegateRights:77 msgid "System" -msgstr "" +msgstr "Järjestelmä" #: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 msgid "System Error" -msgstr "Systeemivirhe" +msgstr "Järjestelmävirhe" #: NOT FOUND IN SOURCE msgid "System Error. Right not granted." @@ -3818,11 +3818,11 @@ msgstr "" #: lib/RT/ACE_Overlay.pm:616 msgid "System error. Right not delegated." -msgstr "Systeemivirhe. Oikeutta ei delegoitu." +msgstr "Järjestelmävirhe. Oikeutta ei delegoitu." #: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 msgid "System error. Right not granted." -msgstr "Systeemivirhe. Oikeutta ei luovutettu." +msgstr "Järjestelmävirhe. Oikeutta ei luovutettu." #: NOT FOUND IN SOURCE msgid "System error. Unable to grant rights." @@ -3830,7 +3830,7 @@ msgstr "" #: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 msgid "System groups" -msgstr "Systeemiryhmät" +msgstr "Järjestelmäryhmät" #: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 msgid "SystemRolegroup for internal use" @@ -3838,7 +3838,7 @@ msgstr "" #: lib/RT/CurrentUser.pm:320 msgid "TEST_STRING" -msgstr "TESTI_STRINGI" +msgstr "TESTIMERKKIJONO" #: html/Ticket/Elements/Tabs:143 msgid "Take" @@ -3855,11 +3855,11 @@ msgstr "Pohja" #: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 #. ($TemplateObj->Id()) msgid "Template #%1" -msgstr "" +msgstr "Pohja #%1" #: html/Admin/Elements/EditTemplates:89 msgid "Template deleted" -msgstr "" +msgstr "Pohja poistettu" #: lib/RT/Scrip_Overlay.pm:153 msgid "Template not found" @@ -3896,30 +3896,30 @@ msgstr "Tämä on sama arvo" #: lib/RT/Queue_Overlay.pm:633 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" -msgstr "Tämä toimeksiantaja on jo %1 tälle työjonolle" +msgstr "Toimeksiantaja on jo %1 tälle työjonolle" #: lib/RT/Ticket_Overlay.pm:1434 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" -msgstr "Tämä toimeksiantaja on jo %1 tälle työpyynnölle" +msgstr "Toimeksiantaja on jo %1 tälle tapaukselle" #: lib/RT/Queue_Overlay.pm:732 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" -msgstr "Tämä toimeksiantaja ei ole %1 tälle työjonolle" +msgstr "Toimeksiantaja ei ole %1 tälle työjonolle" #: lib/RT/Ticket_Overlay.pm:1551 #. ($args{'Type'}) msgid "That principal is not a %1 for this ticket" -msgstr "Tämä toimeksiantaja ei ole %1 tälle työpyynnölle" +msgstr "Toimeksiantaja ei ole %1 tälle tapaukselle" #: lib/RT/Ticket_Overlay.pm:1882 msgid "That queue does not exist" -msgstr "Tätä työjonoa ei ole olemassa" +msgstr "Työjonoa ei ole olemassa" #: lib/RT/Ticket_Overlay.pm:3143 msgid "That ticket has unresolved dependencies" -msgstr "Tämä työpyyntö sisältää ei-päätettyjä riippuvuuksia" +msgstr "Tapaus sisältää päättämättömiä riippuvuuksia" #: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 msgid "That user already has that right" @@ -3927,7 +3927,7 @@ msgstr "Käyttäjällä on jo tuo oikeus" #: lib/RT/Ticket_Overlay.pm:2952 msgid "That user already owns that ticket" -msgstr "Käyttäjä omistaa jo tämän työpyynnön" +msgstr "Käyttäjä omistaa jo tämän tapauksen" #: lib/RT/Ticket_Overlay.pm:2918 msgid "That user does not exist" @@ -3935,19 +3935,19 @@ msgstr "Käyttäjää ei ole olemassa" #: lib/RT/User_Overlay.pm:315 msgid "That user is already privileged" -msgstr "Tämä käyttäjä on jo etuoikeutettu" +msgstr "Käyttäjä on jo erioikeutettu" #: lib/RT/User_Overlay.pm:332 msgid "That user is already unprivileged" -msgstr "Tämä käyttäjä on jo ei-etuoikeutettu" +msgstr "Käyttäjä on jo erioikeudeton" #: lib/RT/User_Overlay.pm:327 msgid "That user is now privileged" -msgstr "Tämä käyttäjä on nyt etuoikeutettu" +msgstr "Käyttäjä on nyt erioikeutettu" #: lib/RT/User_Overlay.pm:344 msgid "That user is now unprivileged" -msgstr "Tämä käyttäjä on nyt ei-etuoikeutettu" +msgstr "Käyttäjä on nyt erioikeudeton" #: NOT FOUND IN SOURCE msgid "That user is now unprivilegedileged" @@ -3955,7 +3955,7 @@ msgstr "" #: lib/RT/Ticket_Overlay.pm:2944 msgid "That user may not own tickets in that queue" -msgstr "Käyttäjä ei voi omistaa työpyyntöjä tuossa työjonossa" +msgstr "Käyttäjä ei voi omistaa tapauksia tuossa työjonossa" #: lib/RT/Link_Overlay.pm:206 msgid "That's not a numerical id" @@ -3987,15 +3987,15 @@ msgstr "Seuraavia komentoja ei suoritettu:\\n\\n" #: lib/RT/Interface/Web.pm:861 msgid "The new value has been set." -msgstr "" +msgstr "Uusi arvo asetettu." #: lib/RT/ACE_Overlay.pm:86 msgid "The owner of a ticket" -msgstr "" +msgstr "Tapauksen omistaja" #: lib/RT/ACE_Overlay.pm:87 msgid "The requestor of a ticket" -msgstr "" +msgstr "Tapauksen tilaaja" #: html/Admin/Elements/EditUserComments:26 msgid "These comments aren't generally visible to the user" @@ -4003,7 +4003,7 @@ msgstr "Nämä kommentit eivät ole yleisesti näkyvillä käyttäjälle" #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" -msgstr "Tämä työpyyntö %1 %2 (%3)\\n" +msgstr "Tämä tapaus %1 %2 (%3)\\n" #: bin/rt-crontool:189 msgid "This tool allows the user to run arbitrary perl modules from within RT." @@ -4011,16 +4011,16 @@ msgstr "" #: lib/RT/Transaction_Overlay.pm:253 msgid "This transaction appears to have no content" -msgstr "Tämä toiminto ei näytä sisältävän mitään" +msgstr "Tämä tapahtuma ei näytä sisältävän mitään" #: html/Ticket/Elements/ShowRequestor:47 #. ($rows) msgid "This user's %1 highest priority tickets" -msgstr "" +msgstr "Käyttäjän %1 tärkeintä tapausta" #: NOT FOUND IN SOURCE msgid "This user's 25 highest priority tickets" -msgstr "Tämän käyttäjän 25 korkeimman prioriteetin työpyyntöä" +msgstr "Käyttäjän 25 tärkeintä tapausta" #: lib/RT/Date.pm:391 msgid "Thu." @@ -4028,7 +4028,7 @@ msgstr "To" #: NOT FOUND IN SOURCE msgid "Ticket # %1 %2" -msgstr "Työpyyntö # %1 %2" +msgstr "Tapaus # %1 %2" #: NOT FOUND IN SOURCE msgid "Ticket # %1 Jumbo update: %2" @@ -4037,36 +4037,36 @@ msgstr "" #: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" -msgstr "Työpyyntö #%1 Jumbo päivitys: %2" +msgstr "Tapauksen #%1 jättipäivitys: %2" #: html/Approvals/Elements/ShowDependency:46 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" -msgstr "" +msgstr "Tapaus #%1: %2" #: lib/RT/Ticket_Overlay.pm:608 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" -msgstr "Työpyyntö %1 luotu työjonoon '%2'" +msgstr "Tapaus %1 luotu työjonoon '%2'" #: bin/rt-commit-handler:760 #. ($Ticket->Id) msgid "Ticket %1 loaded\\n" -msgstr "Työpyyntö %1 ladattu\\n" +msgstr "Tapaus %1 ladattu\\n" #: html/Search/Bulk.html:181 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" -msgstr "Työpyyntö %1: %2" +msgstr "Tapaus %1: %2" #: html/Ticket/History.html:25 html/Ticket/History.html:28 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" -msgstr "Työpyynnön historia # %1 %2" +msgstr "Tapauksen historia # %1 %2" #: html/SelfService/Display.html:34 msgid "Ticket Id" -msgstr "Työpyynnön numero" +msgstr "Tapauksen numero" #: etc/initialdata:303 msgid "Ticket Resolved" @@ -4074,35 +4074,35 @@ msgstr "" #: html/Search/Elements/PickRestriction:63 msgid "Ticket attachment" -msgstr "Työpyynnön liite" +msgstr "Tapauksen liitteen" #: lib/RT/Tickets_Overlay.pm:1166 msgid "Ticket content" -msgstr "Työpyynnön sisältö" +msgstr "Tapauksen sisältö" #: lib/RT/Tickets_Overlay.pm:1212 msgid "Ticket content type" -msgstr "Työpyynnön sisällön tyyppi" +msgstr "Tapauksen sisällön tyyppi" #: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 msgid "Ticket could not be created due to an internal error" -msgstr "" +msgstr "Tapausta ei voitu luoda sisäisestä virheestä johtuen" #: lib/RT/Transaction_Overlay.pm:522 msgid "Ticket created" -msgstr "Työpyyntö luotu" +msgstr "Tapaus luotu" #: NOT FOUND IN SOURCE msgid "Ticket creation failed" -msgstr "Työpyynnön luonti epäonnistui" +msgstr "Tapauksen luonti epäonnistui" #: lib/RT/Transaction_Overlay.pm:527 msgid "Ticket deleted" -msgstr "Työpyyntö poistettu" +msgstr "Tapaus poistettu" #: html/REST/1.0/modify:29 html/REST/1.0/update:34 msgid "Ticket id not found" -msgstr "" +msgstr "Tapauksen numeroa ei löytynyt" #: NOT FOUND IN SOURCE msgid "Ticket killed" @@ -4110,19 +4110,19 @@ msgstr "" #: html/REST/1.0/modify:36 html/REST/1.0/update:41 msgid "Ticket not found" -msgstr "" +msgstr "Tapausta ei löydy" #: etc/initialdata:289 msgid "Ticket status changed" -msgstr "" +msgstr "Tapauksen tila vaihdettu" #: html/Ticket/Update.html:39 msgid "Ticket watchers" -msgstr "Työpyynnön tarkkailijat" +msgstr "Tapauksen tarkkailijat" #: html/Elements/Tabs:49 msgid "Tickets" -msgstr "" +msgstr "Tapaukset" #: lib/RT/Tickets_Overlay.pm:1383 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) @@ -4137,7 +4137,7 @@ msgstr "" #: html/Elements/ViewUser:26 #. ($name) msgid "Tickets from %1" -msgstr "Työpyynnöt %1" +msgstr "Tapaukset %1" #: html/Approvals/Elements/ShowDependency:27 msgid "Tickets which depend on this approval:" @@ -4190,11 +4190,11 @@ msgstr "" #: lib/RT/Transaction_Overlay.pm:642 #. ($self->Data) msgid "Transaction %1 purged" -msgstr "Toiminto %1 puhdistettu" +msgstr "Tapahtuma %1 puhdistettu" #: lib/RT/Transaction_Overlay.pm:177 msgid "Transaction Created" -msgstr "Toiminto luotu" +msgstr "Tapahtuma luotu" #: lib/RT/Transaction_Overlay.pm:89 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" @@ -4202,7 +4202,7 @@ msgstr "" #: lib/RT/Transaction_Overlay.pm:701 msgid "Transactions are immutable" -msgstr "Toiminnot ovat muuttumattomia" +msgstr "Tapahtumat ovat muuttumattomia" #: NOT FOUND IN SOURCE msgid "Trying to delete a right: %1" @@ -4231,7 +4231,7 @@ msgstr "Käyttäjän Unix-tunnus" #: lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" -msgstr "Tuntematon sisällön enkoodaus %1" +msgstr "Tuntematon sisällön koodaus %1" #: html/Elements/SelectResultsPerPage:37 msgid "Unlimited" @@ -4239,7 +4239,7 @@ msgstr "Rajoittamaton" #: etc/initialdata:32 msgid "Unprivileged" -msgstr "" +msgstr "Erioikeudeton" #: lib/RT/Transaction_Overlay.pm:571 msgid "Untaken" @@ -4259,7 +4259,7 @@ msgstr "Päivitä tyyppi" #: html/Search/Listing.html:61 msgid "Update all these tickets at once" -msgstr "Päivitä kaikki nämä työpyynnöt kerralla" +msgstr "Päivitä kaikki nämä tapaukset kerralla" #: html/Admin/Users/Prefs.html:49 msgid "Update email" @@ -4275,7 +4275,7 @@ msgstr "Päivitystä ei tallennettu" #: html/Search/Bulk.html:81 msgid "Update selected tickets" -msgstr "Päivitä valitut työpyynnöt" +msgstr "Päivitä valitut tapaukset" #: html/Admin/Users/Prefs.html:36 msgid "Update signature" @@ -4283,22 +4283,22 @@ msgstr "Päivitä allekirjoitus" #: html/Ticket/ModifyAll.html:63 msgid "Update ticket" -msgstr "Päivitä työpyyntö" +msgstr "Päivitä tapaus" #: html/SelfService/Update.html:25 html/SelfService/Update.html:27 #. ($Ticket->id) msgid "Update ticket # %1" -msgstr "Päivitä työpyyntö # %1" +msgstr "Päivitä tapaus # %1" #: html/SelfService/Update.html:50 #. ($Ticket->id) msgid "Update ticket #%1" -msgstr "Päivitä työpyyntö #%1" +msgstr "Päivitä tapaus #%1" #: html/Ticket/Update.html:135 #. ($Ticket->id, $Ticket->Subject) msgid "Update ticket #%1 (%2)" -msgstr "" +msgstr "Päivitä tapaus #%1 (%2)" #: lib/RT/Interface/Web.pm:373 msgid "Update type was neither correspondence nor comment." @@ -4330,11 +4330,11 @@ msgstr "" #: html/Admin/Users/Prefs.html:59 msgid "User ID" -msgstr "Käyttäjän tunnus" +msgstr "Käyttäjätunnus" #: html/Elements/SelectUsers:26 msgid "User Id" -msgstr "Käyttäjän tunnus" +msgstr "Käyttäjätunnus" #: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 msgid "User Rights" @@ -4375,7 +4375,7 @@ msgstr "Hakua vastaavat käyttäjät" #: html/Search/Elements/PickRestriction:51 msgid "ValueOfQueue" -msgstr "Työpyynnon arvo" +msgstr "Tapauksen arvo" #: html/Admin/Elements/EditCustomField:40 msgid "Values" @@ -4399,7 +4399,7 @@ msgstr "Tarkkailijat" #: html/Admin/Elements/ModifyUser:56 msgid "WebEncoding" -msgstr "Web Enkoodaus" +msgstr "Web-koodaus" #: lib/RT/Date.pm:390 msgid "Wed." @@ -4467,24 +4467,24 @@ msgstr "Tehty" #: lib/RT/Ticket_Overlay.pm:3056 msgid "You already own this ticket" -msgstr "Omistat jo tämän työpyynnön" +msgstr "Omistat jo tämän tapauksen" #: html/autohandler:121 msgid "You are not an authorized user" -msgstr "Et ole autorisoitu käyttäjä" +msgstr "Et ole valtuutettu käyttäjä" #: lib/RT/Ticket_Overlay.pm:2930 msgid "You can only reassign tickets that you own or that are unowned" -msgstr "Voit palauttaa vain työpyyntöjä jotka omistat itse tai jotka ovat ilman omistajaa" +msgstr "Voit palauttaa vain tapauksia, jotka omistat itse tai jotka ovat ilman omistajaa" #: NOT FOUND IN SOURCE msgid "You don't have permission to view that ticket.\\n" -msgstr "Sinulla ei ole oikeutta tarkastella tätä työpyyntöä.\\n" +msgstr "Sinulla ei ole valtuuksia tarkastella tätä tapausta.\\n" #: docs/design_docs/string-extraction-guide.txt:47 #. ($num, $queue) msgid "You found %1 tickets in queue %2" -msgstr "Löysit %1 työpyyntöä työjonosta %2" +msgstr "Löysit %1 tapausta työjonosta %2" #: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 msgid "You have been logged out of RT." @@ -4492,11 +4492,11 @@ msgstr "Olet kirjautunut ulos RT:stä" #: html/SelfService/Display.html:134 msgid "You have no permission to create tickets in that queue." -msgstr "Sinulla ei ole oikeutta luoda työpyyntöjä tähän työjonoon." +msgstr "Sinulla ei ole valtuuksia luoda tapauksia tähän työjonoon." #: lib/RT/Ticket_Overlay.pm:1895 msgid "You may not create requests in that queue." -msgstr "Et ehkä voi luoda työpyyntöjä tuohon työjonoon." +msgstr "Et voi luoda tapauksia tuohon työjonoon." #: html/NoAuth/Logout.html:36 msgid "You're welcome to login again" @@ -4505,7 +4505,7 @@ msgstr "Tervetuloa kirjautumaan järjestelmään uudelleen" #: html/SelfService/Elements/MyRequests:25 #. ($friendly_status) msgid "Your %1 requests" -msgstr "Sinun %1 työpyyntöäsi" +msgstr "Sinun %1 tapaustasi" #: NOT FOUND IN SOURCE msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" @@ -4550,15 +4550,15 @@ msgstr "sisältää" #: html/Elements/SelectAttachmentField:26 msgid "content" -msgstr "" +msgstr "sisältö" #: html/Elements/SelectAttachmentField:27 msgid "content-type" -msgstr "" +msgstr "sisällön tyyppi" #: lib/RT/Ticket_Overlay.pm:2282 msgid "correspondence (probably) not sent" -msgstr "kirjeenvaihtoa (luultavasti) ei ole asetettu" +msgstr "kirjeenvaihtoa (luultavasti) ei ole lähetetty" #: lib/RT/Ticket_Overlay.pm:2292 msgid "correspondence sent" @@ -4582,7 +4582,7 @@ msgstr "poistettu" #: html/Search/Elements/PickRestriction:68 msgid "does not match" -msgstr "ei täsmää" +msgstr "ei sisällä" #: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 msgid "doesn't contain" @@ -4598,11 +4598,11 @@ msgstr "" #: html/Elements/SelectAttachmentField:28 msgid "filename" -msgstr "" +msgstr "tiedostonimi" #: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 msgid "greater than" -msgstr "suurempi kuin" +msgstr "on suurempi kuin" #: lib/RT/Group_Overlay.pm:194 #. ($self->Name) @@ -4611,7 +4611,7 @@ msgstr "ryhmä %1" #: lib/RT/Date.pm:315 msgid "hours" -msgstr "tunnit" +msgstr "tuntia" #: NOT FOUND IN SOURCE msgid "id" @@ -4627,7 +4627,7 @@ msgstr "ei ole" #: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 msgid "less than" -msgstr "vähemmän kuin" +msgstr "on pienempi kuin" #: html/Search/Elements/PickRestriction:67 msgid "matches" @@ -4663,7 +4663,7 @@ msgstr "ei mitään" #: html/Elements/SelectEqualityOperator:38 msgid "not equal to" -msgstr "eri suuri kuin" +msgstr "on erisuuri kuin" #: NOT FOUND IN SOURCE msgid "notlike" @@ -4702,12 +4702,12 @@ msgstr "jäädytetty" #: lib/RT/Group_Overlay.pm:202 #. ($self->Type) msgid "system %1" -msgstr "systeemi %1" +msgstr "järjestelmä %1" #: lib/RT/Group_Overlay.pm:213 #. ($self->Type) msgid "system group '%1'" -msgstr "systeemiryhmä '%1'" +msgstr "järjestelmäryhmä '%1'" #: html/Elements/Error:42 html/SelfService/Error.html:42 msgid "the calling component did not specify why" @@ -4716,20 +4716,20 @@ msgstr "kutsuva komponentti ei eritellyt syytä" #: lib/RT/Group_Overlay.pm:210 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" -msgstr "työpyyntö #%1 %2" +msgstr "tapaus #%1 %2" #: NOT FOUND IN SOURCE msgid "true" -msgstr "" +msgstr "tosi" #: lib/RT/Group_Overlay.pm:216 #. ($self->Id) msgid "undescribed group %1" -msgstr "" +msgstr "kuvailematon ryhmä %1" #: NOT FOUND IN SOURCE msgid "undescripbed group %1" -msgstr "kuvalematon ryhmä %1" +msgstr "kuvailematon ryhmä %1" #: lib/RT/Group_Overlay.pm:191 #. ($user->Object->Name) diff --git a/rt/lib/RT/I18N/fr.po b/rt/lib/RT/I18N/fr.po index 4ef68fb3a..f580c958b 100644 --- a/rt/lib/RT/I18N/fr.po +++ b/rt/lib/RT/I18N/fr.po @@ -281,7 +281,7 @@ msgid "(Check boxes to delete)" msgstr "(Cocher la case pour supprimer)" #: html/Ticket/Create.html:177 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Entrer les numéros de tickets ou les URLs, séparés par des espaces)" #: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 @@ -705,7 +705,7 @@ msgstr "Attaché" #: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" -msgstr "Attacher un ficher" +msgstr "Attacher un fichier" #: html/Ticket/Create.html:97 html/Ticket/Update.html:87 msgid "Attached file" diff --git a/rt/lib/RT/I18N/he.po b/rt/lib/RT/I18N/he.po index d3ef20e25..8f8326fc5 100644 --- a/rt/lib/RT/I18N/he.po +++ b/rt/lib/RT/I18N/he.po @@ -279,7 +279,7 @@ msgid "(Check boxes to delete)" msgstr "(סמן תיבות כדי למחוק)" #: html/Ticket/Create.html:178 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "" #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 diff --git a/rt/lib/RT/I18N/hu.po b/rt/lib/RT/I18N/hu.po new file mode 100644 index 000000000..f81a9feab --- /dev/null +++ b/rt/lib/RT/I18N/hu.po @@ -0,0 +1,4883 @@ +id: 12420 +Subject: +Creator: 27117 +Created: 2004-02-10 08:25:42 +Transaction: 24532 +Parent: 12418 +MessageId: +Filename: hu.po +ContentType: text/plain +ContentEncoding: none + +Headers: content-disposition: inline; filename="hu.po" + content-type: text/plain; charset="utf-8"; name="hu.po" + Content-Transfer-Encoding: quoted-printable + X-RT-Original-Encoding: iso-8859-1 + Content-Length: 127109 + + +Content: # + msgid "" + msgstr "" + "Project-Id-Version: RT 3.0.7\n" + "Report-Msgid-Bugs-To: \n" + "POT-Creation-Date: 2002-06-22 06:06+0200\n" + "PO-Revision-Date: 2003-12-01 11:26+0100\n" + "Last-Translator: Attila K. Mergl <mergl@astron.hu>\n" + "Language-Team: Hungarian <hu@gnome.hu>\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=iso-8859-2\n" + "Content-Transfer-Encoding: 8bit" + + #: html/Elements/MyRequests:28 html/Elements/MyTickets:28 + msgid "#" + msgstr "#" + + #: html/Admin/Queues/Scrip.html:55 + #. ($QueueObj->id) + msgid "#%1" + msgstr "#%1" + + #: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 + #. ($Ticket->Id, $Ticket->Subject) + #. ($link->BaseObj->Id, $link->BaseObj->Subject) + msgid "#%1: %2" + msgstr "#%1: %2" + + #: lib/RT/Date.pm:337 + #. ($s, $time_unit) + msgid "%1 %2" + msgstr "%1 %2" + + #: lib/RT/Tickets_Overlay.pm:771 + #. ($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 %7. %2 %3 %4:%5:%6" + + #: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 + #. ($cf->Name, $new_value->Content) + #. ($field, $self->NewValue) + #. ($self->Field, $principal->Object->Name) + msgid "%1 %2 added" + msgstr "[%1] mezõbe '%2' érték felvétele" + + #: lib/RT/Date.pm:334 + #. ($s, $time_unit) + msgid "%1 %2 ago" + msgstr "%1 %2 óta" + + #: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 + #. ($cf->Name, $old_value, $new_value->Content) + #. ($field, $self->OldValue, $self->NewValue) + msgid "%1 %2 changed to %3" + msgstr "%1 változtatása: '%2' --> '%3'" + + #: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 + #. ($cf->Name, $old_value) + #. ($field, $self->OldValue) + #. ($self->Field, $principal->Object->Name) + msgid "%1 %2 deleted" + msgstr "%1 %2 törölve" + + #: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 + #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) + msgid "%1 %2 with template %3" + msgstr "%1 %2 a %3 sablonnal" + + #: NOT FOUND IN SOURCE + msgid "%1 (%2) %3 this ticket\\n" + msgstr "%1 (%2) %3 ez a probléma\\n" + + #: html/Search/Listing.html:57 + #. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) + msgid "%1 - %2 shown" + msgstr "%1 - %2 mutatva" + + #: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 + #. ("--search-argument", "--search") + #. ("--condition-argument", "--condition") + #. ("--action-argument", "--action") + msgid "%1 - An argument to pass to %2" + msgstr "%1 - %2-nek átadandó argumentum" + + #: bin/rt-crontool:185 + #. ("--verbose") + msgid "%1 - Output status updates to STDOUT" + msgstr "%1 - Státuszfrissítés kiíratása a STDOUT-ra" + + #msgstr "%1 - Schreibe Statusupdates nach STDOUT" + #: bin/rt-crontool:179 + #. ("--action") + msgid "%1 - Specify the action module you want to use" + msgstr "%1 - Adja meg a használandó akciómodult!" + + #: bin/rt-crontool:173 + #. ("--condition") + msgid "%1 - Specify the condition module you want to use" + msgstr "%1 - Adja meg a használandó kondiciómodult!" + + #: bin/rt-crontool:166 + #. ("--search") + msgid "%1 - Specify the search module you want to use" + msgstr "%1 - Adja meg a használandó keres?modult!" + + #: lib/RT/ScripAction_Overlay.pm:122 + #. ($self->Id) + msgid "%1 ScripAction loaded" + msgstr "ScripAction %1 betöltve" + + #: lib/RT/Ticket_Overlay.pm:3471 + #. ($args{'Value'}, $cf->Name) + msgid "%1 added as a value for %2" + msgstr "%1 értéke hozzáadva %2 höz" + + #: NOT FOUND IN SOURCE + msgid "%1 aliases require a TicketId to work on" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "%1 aliases require a TicketId to work on (from %2) %3" + msgstr "" + + #: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 + #. ($args{'Base'}) + #. ($args{'Target'}) + msgid "%1 appears to be a local object, but can't be found in the database" + msgstr "" + "%1 nem találhato az adatbázisban, pedig helyi objektumnak látszik" + + #: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 + #. ($self->BriefDescription , $self->CreatorObj->Name) + #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) + msgid "%1 by %2" + msgstr "%1 (%2)" + + #: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 + #. ($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 változtatása: '%2' --> '%3'" + + #: lib/RT/Interface/Web.pm:857 + msgid "%1 could not be set to %2." + msgstr "%1 nem állítható %2 re." + + #: NOT FOUND IN SOURCE + msgid "%1 couldn't init a transaction (%2)\\n" + msgstr "" + + #: lib/RT/Ticket_Overlay.pm:2813 + #. ($self) + msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." + msgstr "" + "%1 nem tudta a státuszt lezártra állítani. Az RT adatbázisa talán inkonzisztens." + + #: html/Elements/MyTickets:25 + #. ($rows) + msgid "%1 highest priority tickets I own..." + msgstr "A %1 nekem kiosztott, legsürgõsebb probléma..." + + #: html/Elements/MyRequests:25 + #. ($rows) + msgid "%1 highest priority tickets I requested..." + msgstr "A %1 általam kezdeményezett, legsürgõsebb probléma..." + + #: bin/rt-crontool:161 + #. ($0) + msgid "" + "%1 is a tool to act on tickets from an external scheduling tool, such as " + "cron." + msgstr "" + "%1 egy eszköz külsõ ütemezõeszközöktõl -mint a \"cron\"- érkezõ problémák feldolgozására" + + #: lib/RT/Queue_Overlay.pm:743 + #. ($principal->Object->Name, $args{'Type'}) + msgid "%1 is no longer a %2 for this queue." + msgstr "Ennek a sornak %1 már nem %2-je." + + #: lib/RT/Ticket_Overlay.pm:1570 + #. ($principal->Object->Name, $args{'Type'}) + msgid "%1 is no longer a %2 for this ticket." + msgstr "Enek a problémának %1 nár nem %2-je." + + #: lib/RT/Ticket_Overlay.pm:3527 + #. ($args{'Value'}, $cf->Name) + msgid "%1 is no longer a value for custom field %2" + msgstr "%1 már nem értéke a %2 egyéni mezõnek" + + #: NOT FOUND IN SOURCE + msgid "%1 isn't a valid Queue id." + msgstr "%1 érvénytelen sor azonosító" + + #: RTFM + msgid "%1 matches" + msgstr "%1 tartalmaz" + + #: html/Ticket/Elements/ShowBasics:36 + #. ($TimeWorked) + msgid "%1 min" + msgstr "%1 perc" + + #: html/RTFM/UpdatedArticles:19 + msgid "%1 most recently updated articles" + msgstr "%1 utoljára átdolgozott cikk" + + #: RTFM + msgid "%1 newest articles" + msgstr "%1 legújabb cikk" + + #: NOT FOUND IN SOURCE + msgid "%1 not shown" + msgstr "" + + #: html/User/Elements/DelegateRights:76 + #. (loc($ObjectType =~ /^RT::(.*)$/)) + msgid "%1 rights" + msgstr "%1 jogok" + + #: NOT FOUND IN SOURCE + msgid "%1 succeeded\\n" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "%1 type unknown for $MessageId" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "%1 type unknown for %2" + msgstr "" + + #: lib/RT/Action/ResolveMembers.pm:42 + #. (ref $self) + msgid "%1 will resolve all members of a resolved group ticket." + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "" + "%1 will stall a [local] BASE if it's dependent [or member] of a linked up " + "request." + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:435 + #. ($self) + msgid "%1: no attachment specified" + msgstr "%1: Nincs melléklet megadva!" + + #: html/Ticket/Elements/ShowTransaction:102 + #. ($size) + msgid "%1b" + msgstr "%1b" + + #: html/Ticket/Elements/ShowTransaction:99 + #. (int($size/102.4)/10) + msgid "%1k" + msgstr "%1k" + + #: lib/RT/Ticket_Overlay.pm:1140 + #. ($args{'Status'}) + msgid "'%1' is an invalid value for status" + msgstr "'%1' nem lehet státusz érték" + + #: NOT FOUND IN SOURCE + msgid "'%1' not a recognized action. " + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "(Check box to delete scrip)" + msgstr "(Scrip törléséhez bejelölni)" + + #: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 + msgid "(Check box to delete)" + msgstr "(Törléshez kiválasztandó!)" + + #: html/Ticket/Create.html:178 + msgid "(Enter ticket ids or URLs, seperated with spaces)" + msgstr "(Szóközökkel elválasztva adható meg a problémák sorszáma vagy URL-ek.)" + + #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 + #. ($RT::CorrespondAddress) + #. ($RT::CommentAddress) + msgid "(If left blank, will default to %1" + msgstr "(Ha üresen marad: %1)" + + #: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 + msgid "(No custom fields)" + msgstr "(Nincs egyéni mezõ)" + + #: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 + msgid "(No members)" + msgstr "(Nincsenek tagok)" + + #: html/RTFM/NewestArticles:35 + msgid "(no name)" + msgstr "(nincs név)" + + #: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 + msgid "(No scrips)" + msgstr "(Nincs Scrip)" + + #: html/RTFM/UpdatedArticles.html:36 + msgid "(no Summary)" + msgstr "(nincs összefoglalás)" + + #: html/Admin/Elements/EditTemplates:31 + msgid "(No templates)" + msgstr "(Nincs sablon)" + + #: html/Ticket/Update.html:85 + 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 "" + "(A válasz rejtett másolatát elküldi a vesszõkkel elválasztott e-mail címekre. " + "<b>Ez nem módosítja, hogy a jovõben kik kapnak másolatot a válaszokról!</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 "" + + #: html/Ticket/Create.html:79 + 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 "" + "(Az új probléma leírását elküldi a vesszõkkel elválasztott adminisztratív " + "e-mail címekre. <b>A címzettek a jovõben <i>minden</i> válaszról másolatot " + "kapnak!</b>)" + + #: html/Ticket/Update.html:81 + 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 "" + "(A válasz másolatát elküldi a vesszõkkel elválasztott e-mail címekre. <b>Ez " + "nem módosítja, hogy a jovõben kik kapnak másolatot a válaszokról!</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 "" + + #: html/Ticket/Create.html:69 + 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 "" + "(Az új probléma leírását elküldi a vesszõkkel elválasztott e-mail címekre. " + "<b>A címzettek a jovõben <i>minden</i> válaszról másolatot kapnak!</b>)" + + #: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 + msgid "(empty)" + msgstr "(üres)" + + #: html/Admin/Users/index.html:39 + msgid "(no name listed)" + msgstr "(Nincs név a listában)" + + #: html/Elements/MyRequests:43 html/Elements/MyTickets:45 + msgid "(no subject)" + msgstr "(nincs tárgy)" + + #: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 + msgid "(no value)" + msgstr "(nincs adat)" + + #: html/Ticket/Elements/EditLinks:116 + msgid "(only one ticket)" + msgstr "<br>(Csak egy probléma adható meg!)" + + #: html/Elements/MyRequests:52 html/Elements/MyTickets:55 + msgid "(pending approval)" + msgstr "" + + #: html/Elements/MyRequests:54 html/Elements/MyTickets:57 + msgid "(pending other tickets)" + msgstr "(másik problémára vár)" + + #: html/Admin/Users/Modify.html:50 + msgid "(required)" + msgstr "(szükséges)" + + #: html/Ticket/Elements/ShowTransaction:105 + msgid "(untitled)" + msgstr "(névtelen)" + + #: NOT FOUND IN SOURCE + msgid "25 highest priority tickets I own..." + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "25 highest priority tickets I requested..." + msgstr "" + + #: html/Ticket/Elements/ShowBasics:32 + msgid "<% $Ticket->Status%>" + msgstr "" + + #: html/Elements/SelectTicketTypes:27 + msgid "<% $_ %>" + msgstr "" + + #: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 + #. ($m->scomp('/Elements/SelectNewTicketQueue')) + msgid "<input type=\"submit\" value=\"New ticket in\"> %1" + msgstr "<input type=\"submit\" value=\"Új probléma\"> %1" + + #: etc/initialdata:203 + msgid "A blank template" + msgstr "Üres sablon" + + #: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 + msgid "ACE not found" + msgstr "ACE nem található" + + #: lib/RT/ACE_Overlay.pm:831 + msgid "ACEs can only be created and deleted." + msgstr "ACE-k csak létrehozhatók és törölhetõk." + + #: bin/rt-commit-handler:755 + msgid "Aborting to avoid unintended ticket modifications.\\n" + msgstr "" + "Lépjen ki, hogy elkerülje a probléma nem kivánt módosításait.\\n" + + #: html/User/Elements/Tabs:32 + msgid "About me" + msgstr "Magamról" + + #: html/Admin/Users/Modify.html:80 + msgid "Access control" + msgstr "Hozzáférés ellenõrzése" + + #: html/Admin/Elements/EditScrip:57 + msgid "Action" + msgstr "Akció" + + #: lib/RT/Scrip_Overlay.pm:147 + #. ($args{'ScripAction'}) + msgid "Action %1 not found" + msgstr "%1 akció nem található" + + #: bin/rt-crontool:123 + msgid "Action committed." + msgstr "Akció végrehajtva." + + #: bin/rt-crontool:119 + msgid "Action prepared..." + msgstr "Akció elõkészítve..." + + #: html/Search/Bulk.html:92 + msgid "Add AdminCc" + msgstr "Administratív tájékotatást kapó hozzáadása" + + #: html/Search/Bulk.html:90 + msgid "Add Cc" + msgstr "Tájékotatást kapó hozzáadása" + + #: html/Ticket/Create.html:114 html/Ticket/Update.html:100 + msgid "Add More Files" + msgstr "További fájlok csatolása" + + #: html/Search/Bulk.html:88 + msgid "Add Requestor" + msgstr "Beküldõ hozáadása" + + #: NOT FOUND IN SOURCE + msgid "Add a new a global scrip" + msgstr "Egy új általános Scrip hozzáadása" + + #: NOT FOUND IN SOURCE + msgid "Add a scrip to this queue" + msgstr "Egy Scrip hozzáadása a sorhoz" + + #: html/Admin/Global/Scrip.html:55 + msgid "Add a scrip which will apply to all queues" + msgstr "Minden sorra vonatkozó Scrip hozzáadása" + + #: html/Search/Bulk.html:118 + msgid "Add comments or replies to selected tickets" + msgstr "A kiválasztott problémákhoz válasz vagy kiegészítés hozzáadása" + + #: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 + msgid "Add members" + msgstr "Tagfelvétel" + + #: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 + msgid "Add new watchers" + msgstr "Új résztvevõk hozzáadása" + + #: NOT FOUND IN SOURCE + msgid "AddNextState" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:643 + #. ($args{'Type'}) + msgid "Added principal as a %1 for this queue" + msgstr "" + "Hozzendelt egy vezetõt mint %1 ehhez a sorhoz" + + #: lib/RT/Ticket_Overlay.pm:1454 + #. ($self->loc($args{'Type'})) + msgid "Added principal as a %1 for this ticket" + msgstr "" + "Hozzárendelt egy vezetõt mint %1 ehhez a problémához" + + #: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 + msgid "Address1" + msgstr "Utca, házszám" + + #: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 + msgid "Address2" + msgstr "Postafiók" + + #: html/Ticket/Create.html:74 + msgid "Admin Cc" + msgstr "Adminisztratív tájékoztatást kap" + + #: etc/initialdata:274 + msgid "Admin Comment" + msgstr "Adminisztratív megjegyzés" + + #: etc/initialdata:256 + msgid "Admin Correspondence" + msgstr "" + + #: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 + msgid "Admin queues" + msgstr "Válasszon sort!" + + #: NOT FOUND IN SOURCE + msgid "Admin users" + msgstr "" + + #: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 + msgid "Admin/Global configuration" + msgstr "Konfiguráció / Általános beállítások" + + #: NOT FOUND IN SOURCE + msgid "Admin/Groups" + msgstr "Konfiguráció / Csoportok" + + #: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 + msgid "Admin/Queue/Basics" + msgstr "Konfiguráció / Sor / Alapok" + + #: NOT FOUND IN SOURCE + msgid "AdminAllPersonalGroups" + msgstr "" + + #: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 + msgid "AdminCc" + msgstr "Adminisztratív tájékoztatást kap" + + #: NOT FOUND IN SOURCE + msgid "AdminComment" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "AdminCorrespondence" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:72 + msgid "AdminCustomFields" + msgstr "" + + #: lib/RT/Group_Overlay.pm:146 + msgid "AdminGroup" + msgstr "" + + #: lib/RT/Group_Overlay.pm:148 + msgid "AdminGroupMembership" + msgstr "" + + #: lib/RT/System.pm:59 + msgid "AdminOwnPersonalGroups" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:68 + msgid "AdminQueue" + msgstr "" + + #: lib/RT/System.pm:60 + msgid "AdminUsers" + msgstr "" + + #: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 + msgid "Administrative Cc" + msgstr "Adminisztratív tájékoztatást kap" + + #: NOT FOUND IN SOURCE + msgid "Advanced Search" + msgstr "Bõvítetett keresés" + + #: RTFM + msgid "Advanced Search Criteria" + msgstr "Bõvített keresési feltételek" + + #: html/Elements/SelectDateRelation:36 + msgid "After" + msgstr "után" + + #: NOT FOUND IN SOURCE + msgid "Age" + msgstr "Kor" + + #: html/Admin/Elements/EditCustomFields:96 + msgid "All Custom Fields" + msgstr "Összes egyéni mezõ" + + #: html/RTFM/Admin/Classes/index.html:57 + msgid "All Classes" + msgstr "Minden osztály" + + #: html/Admin/Queues/index.html:53 + msgid "All Queues" + msgstr "Minden sor" + + #: NOT FOUND IN SOURCE + msgid "Always sends a message to the requestors independent of message sender" + msgstr "" + + #: RTFM + msgid "and is not" + msgstr "és nem" + + #: RTFM + msgid "and not" + msgstr "és nem" + + #: html/Elements/Tabs:58 + msgid "Approval" + msgstr "Lezárás" + + #: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 + #. ($Ticket->Id, $Ticket->Subject) + #. ($ticket->id, $msg) + #. ($ticket->Id, $ticket->Subject) + #. ($link->BaseObj->Id, $link->BaseObj->Subject) + msgid "Approval #%1: %2" + msgstr "Engedélyezés #%1: %2" + + #: html/Approvals/index.html:54 + #. ($ticket->Id) + msgid "Approval #%1: Notes not recorded due to a system error" + msgstr "Engedélyezés #%1: A megjegyzés rendszerhiba miatt nem rögzíthetõ" + + #: html/Approvals/index.html:52 + #. ($ticket->Id) + msgid "Approval #%1: Notes recorded" + msgstr "Engedélyezés #%1: Megjegyzés rögzítve" + + #: NOT FOUND IN SOURCE + msgid "Approval Details" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Approval diagram" + msgstr "" + + #: html/Approvals/Elements/Approve:45 + msgid "Approve" + msgstr "Lezár" + + #: etc/initialdata:431 etc/upgrade/2.1.71:148 + msgid "Approver's notes: %1" + msgstr "Az engedélyezõ megjegyzése: %1" + + #: html/RTFM/Admin/CustomFields/UserRights.html:117 + msgid "No Class defined" + msgstr "Nincs osztály definiálva" + + #: html/RTFM/Admin/CustomFields/Basics.html:69 + msgid "No CustomField" + msgstr "Nincs egyéni mezõ" + + #: html/RTFM/Admin/CustomFields/GroupRights.html:73 + msgid "No CustomField defined" + msgstr "Nincs egyéni mezõ definiálva" + + #: lib/RT/Date.pm:414 + msgid "Apr." + msgstr "ápr." + + #: RTFM + msgid "Are you sure you want to delete this article?" + msgstr "" + + #: html/RTFM/Article/delete.html:69 + msgid "Article #%1 deleted" + msgstr "" + + #: html/RTFM/Article/Display.html:46 + msgid "Article #%1: %2" + msgstr "" + + #: html/RTFM/Article/Display.html:35 + msgid "Article not found" + msgstr "" + + #: RTFM + msgid "Articles" + msgstr "" + + #: html/Elements/SelectSortOrder:35 + msgid "Ascending" + msgstr "növekvõ" + + #: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 + msgid "Attach" + msgstr "Csatol" + + #: html/SelfService/Create.html:67 html/Ticket/Create.html:110 + msgid "Attach file" + msgstr "Fájl csatolása" + + #: html/Ticket/Create.html:98 html/Ticket/Update.html:89 + msgid "Attached file" + msgstr "Csatolt fájl" + + #: html/SelfService/Attachment/dhandler:36 + msgid "Attachment '%1' could not be loaded" + msgstr "A csatolt '%1' nem betölthetõ" + + #: lib/RT/Transaction_Overlay.pm:443 + msgid "Attachment created" + msgstr "Csatolt fájl létrehozva" + + #: lib/RT/Tickets_Overlay.pm:1189 + msgid "Attachment filename" + msgstr "Csatolt fájl neve" + + #: html/Ticket/Elements/ShowAttachments:26 + msgid "Attachments" + msgstr "Csatolt fájlok" + + #: lib/RT/Date.pm:418 + msgid "Aug." + msgstr "aug." + + #: html/Admin/Elements/ModifyUser:66 + msgid "AuthSystem" + msgstr "" + + #: etc/initialdata:206 + msgid "Autoreply" + msgstr "Autómatikus válasz" + + #: etc/initialdata:72 + msgid "Autoreply To Requestors" + msgstr "Autómatikus válasz a beküldõnek" + + #: NOT FOUND IN SOURCE + msgid "AutoreplyToRequestors" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Bad PGP Signature: %1\\n" + msgstr "Hibás PGP-aláírás: %1\\n" + + #: html/SelfService/Attachment/dhandler:40 + msgid "Bad attachment id. Couldn't find attachment '%1'\\n" + msgstr "Hibás csatolt file azonosító. A csatolt '%1' nem található\\n" + + #: bin/rt-commit-handler:827 + #. ($val) + msgid "Bad data in %1" + msgstr "Hibás adatok %1-ben" + + #: html/SelfService/Attachment/dhandler:43 + #. ($trans, $AttachmentObj->TransactionId()) + msgid "Bad transaction number for attachment. %1 should be %2\\n" + msgstr "A csatolt fájlnak hibás a tranzakció száma. %1 helyett %2 kellene\\n" + + #: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 + msgid "Basics" + msgstr "Alapadatok módosítása" + + #: html/Ticket/Update.html:83 + msgid "Bcc" + msgstr "BCC" + + #: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 + msgid "Be sure to save your changes" + msgstr "Ha valamit módosított ne felejtsen el ide kattintani, hogy megtörténjen a" + + ### wieder - Duzen??? + #: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 + msgid "Before" + msgstr "elõtt" + + #: NOT FOUND IN SOURCE + msgid "Begin Approval" + msgstr "" + + #: etc/initialdata:202 + msgid "Blank" + msgstr "Üres" + + #: html/Search/Listing.html:79 + msgid "Bookmarkable URL for this search" + msgstr "Tárolható URL ehhez a kereséshez" + + #: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 + msgid "Brief headers" + msgstr "Tömör fejléc" + + #: html/Search/Bulk.html:25 html/Search/Bulk.html:26 + msgid "Bulk ticket update" + msgstr "Tömeges problémafrissítés" + + #: lib/RT/User_Overlay.pm:1331 + msgid "Can not modify system users" + msgstr "Rendszerfelhasználó nem módosítható" + + #: lib/RT/Queue_Overlay.pm:67 + msgid "Can this principal see this queue" + msgstr "Ez a vezetõ nem láthatja ezt a sort" + + #: lib/RT/CustomField_Overlay.pm:144 + msgid "Can't add a custom field value without a name" + msgstr "Egyéni mehzõ név nélkül nem hozzáadható" + + #: lib/RT/Link_Overlay.pm:132 + msgid "Can't link a ticket to itself" + msgstr "A problémát nem lehet önmagához kapcsolni!" + + #: lib/RT/Ticket_Overlay.pm:2787 + msgid "Can't merge into a merged ticket. You should never get this error" + msgstr "" + + #: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 + msgid "Can't specifiy both base and target" + msgstr "Nem adhat meg egyszerre bázist és célt" + + #: html/autohandler:112 + #. ($msg) + msgid "Cannot create user: %1" + msgstr "A felhasználó nem hozható létre: %1" + + #: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 + msgid "Cc" + msgstr "Tájékoztatást kap" + + #: html/SelfService/Prefs.html:31 + msgid "Change password" + msgstr "Jelszó-változtatás" + + #: html/Ticket/Create.html:101 html/Ticket/Update.html:92 + msgid "Check box to delete" + msgstr "Törléshez bejelölni" + + #: html/Admin/Elements/SelectRights:31 + msgid "Check box to revoke right" + msgstr "Jog megvonásához megjelölni" + + #: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 + msgid "Children" + msgstr "Leszármazottak" + + #: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 + msgid "City" + msgstr "Város" + + #: RTFM + msgid "Class" + msgstr "" + + #: RTFM + msgid "Class is" + msgstr "" + + #: RTFM + msgid "Class Name" + msgstr "" + + #: RTFM + msgid "Classes" + msgstr "" + + #: share/html/SelfService/Closed.html:27 + msgid "closed" + msgstr "Lezárt" + + #: html/Ticket/Elements/ShowDates:47 + msgid "Closed" + msgstr "Lezárva" + + #: html/SelfService/Elements/Tabs:60 + msgid "Closed tickets" + msgstr "Lezárt problémák" + + #: NOT FOUND IN SOURCE + msgid "Command not understood!\\n" + msgstr "" + + #: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 + msgid "Comment" + msgstr "Kiegészít" + + #: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 + msgid "Comment Address" + msgstr "Kiegészitõcím" + + #: NOT FOUND IN SOURCE + msgid "Comment not recorded" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:86 + msgid "Comment on tickets" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:86 + msgid "CommentOnTicket" + msgstr "" + + #: html/Admin/Elements/ModifyUser:35 + msgid "Comments" + msgstr "Kiegészítések" + + #: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 + msgid "Comments (Not sent to requestors)" + msgstr "Kiegészítés, megjegyzés (levélben a tulajdonosnak)" + + #: html/Search/Bulk.html:122 + msgid "Comments (not sent to requestors)" + msgstr "Kiegészítés (a bejelentõ nem kapja meg!)" + + #: html/Elements/ViewUser:27 + #. ($name) + msgid "Comments about %1" + msgstr "" + + #: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 + msgid "Comments about this user" + msgstr "Kiegészítés ehhez a felhasználóhoz" + + #: lib/RT/Transaction_Overlay.pm:545 + msgid "Comments added" + msgstr "Kiegészítés hozzáfûzése" + + #: lib/RT/Action/Generic.pm:140 + msgid "Commit Stubbed" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Compile Restrictions" + msgstr "" + + #: html/Admin/Elements/EditScrip:41 + msgid "Condition" + msgstr "Feltétel" + + #: bin/rt-crontool:109 + msgid "Condition matches..." + msgstr "" + + #: lib/RT/Scrip_Overlay.pm:160 + msgid "Condition not found" + msgstr "A feltétel nem található" + + #: html/Elements/Tabs:52 + msgid "Configuration" + msgstr "Konfiguráció" + + #: html/SelfService/Prefs.html:33 + msgid "Confirm" + msgstr "Igazolás" + + #: html/Admin/Elements/ModifyUser:60 + msgid "ContactInfoSystem" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Contacted date '%1' could not be parsed" + msgstr "" + + #: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 + msgid "Content" + msgstr "Tartalom" + + #: etc/initialdata:266 + msgid "Correspondence" + msgstr "Válasz" + + #: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 + msgid "Correspondence Address" + msgstr "Levelezésicím" + + #: lib/RT/Transaction_Overlay.pm:541 + msgid "Correspondence added" + msgstr "Válasz hozzáfûzése" + + #: NOT FOUND IN SOURCE + msgid "Correspondence not recorded" + msgstr "" + + #: lib/RT/Ticket_Overlay.pm:3458 + msgid "Could not add new custom field value for ticket. " + msgstr "Az egyéni mezõhöz nem sikerült hozzáadni a problémát" + + #: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 + msgid "Could not change owner. " + msgstr "Nem sikerült a tulajdonost megváltoztatni! " + + #: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 + #. ($msg) + msgid "Could not create CustomField" + msgstr "Nem sikerült létrehozni az egyéni mezõt" + + #: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 + msgid "Could not create group" + msgstr "Nem sikerült létrehozni a csoportot" + + #: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 + #. ($msg) + msgid "Could not create template: %1" + msgstr "A sablom nem jött létre: %1" + + #: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 + msgid "Could not create ticket. Queue not set" + msgstr "Nem jött létre a probléma. A sor nincs meghatározva" + + #: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 + msgid "Could not create user" + msgstr "A felhasználó nem jött létre" + + #: NOT FOUND IN SOURCE + msgid "Could not find a ticket with id %1" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Could not find group %1." + msgstr "" + + #: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 + msgid "Could not find or create that user" + msgstr "A felhasználót nem sikerült megtalálni vagy létrehozni" + + #: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 + msgid "Could not find that principal" + msgstr "A vezetõ nem található" + + #: NOT FOUND IN SOURCE + msgid "Could not find user %1." + msgstr "" + + #: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 + msgid "Could not load group" + msgstr "A csoport nem betölthetõ" + + #: lib/RT/Queue_Overlay.pm:641 + #. ($args{'Type'}) + msgid "Could not make that principal a %1 for this queue" + msgstr "" + "A vezetõ nem lehet %1-e a sornak" + + #: lib/RT/Ticket_Overlay.pm:1443 + #. ($self->loc($args{'Type'})) + msgid "Could not make that principal a %1 for this ticket" + msgstr "" + "A vezetõ nem lehet %1-e a problémának" + + #: lib/RT/Queue_Overlay.pm:740 + #. ($args{'Type'}) + msgid "Could not remove that principal as a %1 for this queue" + msgstr "" + "A vezetõt nem lehet mint a sor %1-ét eltávolítani" + + #: lib/RT/Ticket_Overlay.pm:1559 + #. ($args{'Type'}) + msgid "Could not remove that principal as a %1 for this ticket" + msgstr "" + "a vezetõt nem lehet mint a probléma %1-t eltávolítani" + + #: lib/RT/Group_Overlay.pm:985 + msgid "Couldn't add member to group" + msgstr "A tagot nem lehet a csoporthoz adni" + + #: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 + #. ($Msg) + msgid "Couldn't create a transaction: %1" + msgstr "A tanzakció nem létrehozható: %1" + + #: NOT FOUND IN SOURCE + msgid "Couldn't figure out what to do from gpg's reply\\n" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Couldn't find group\\n" + msgstr "" + + #: lib/RT/Interface/Web.pm:866 + msgid "Couldn't find row" + msgstr "A sor nem található" + + #: lib/RT/Group_Overlay.pm:959 + msgid "Couldn't find that principal" + msgstr "A vezetõ nem található" + + #: lib/RT/CustomField_Overlay.pm:175 + msgid "Couldn't find that value" + msgstr "Az érték nem található" + + #: NOT FOUND IN SOURCE + msgid "Couldn't find user\\n" + msgstr "" + + #: lib/RT/CurrentUser.pm:112 + #. ($self->Id) + msgid "Couldn't load %1 from the users database.\\n" + msgstr "" + + #: html/RTFM/Admin/CustomFields/UserRights.html:121 + msgid "Couldn't load Class %1" + msgstr "" + + #: html/RTFM/Admin/CustomFields/GroupRights.html:77 + msgid "Couldn't load CustomField %1" + msgstr "A(z) %1 egyéni mezõ nem betölthetõ" + + #: NOT FOUND IN SOURCE + msgid "Couldn't load RT config file '%1' %2" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Couldn't load Scrips." + msgstr "" + + #: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 + #. ($id) + msgid "Couldn't load group %1" + msgstr "%1 csoport nem betölthetõ" + + #: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 + msgid "Couldn't load link" + msgstr "" + + #: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 + #. ($id) + msgid "Couldn't load queue" + msgstr "A sor nem betölthetõ" + + #: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 + #. ($id) + msgid "Couldn't load queue %1" + msgstr "%1 sor nem betölthetõ" + + #: NOT FOUND IN SOURCE + msgid "Couldn't load scrip" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Couldn't load template" + msgstr "" + + #: html/Admin/Users/Prefs.html:79 + #. ($id) + msgid "Couldn't load that user (%1)" + msgstr "A felhasználó nem betölthetõ (%1)" + + #: html/SelfService/Display.html:166 + #. ($id) + msgid "Couldn't load ticket '%1'" + msgstr "A(z) '%1' nem betölthetõ" + + #: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 + msgid "Country" + msgstr "Ország" + + #: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 + msgid "Create" + msgstr "Felvesz" + + #: etc/initialdata:128 + msgid "Create Tickets" + msgstr "Probléma megadása" + + #: RTFM + msgid "Create a Class" + msgstr "Hozzon létre egy új osztályt!" + + #: html/Admin/Elements/EditCustomField:58 + msgid "Create a CustomField" + msgstr "Hozzon létre egy új egyéni mezõt!" + + #: html/Admin/Queues/CustomField.html:48 + #. ($QueueObj->Name()) + msgid "Create a CustomField for queue %1" + msgstr "Hozzon létre egy egyéni mezõt a(z) %1 sorhoz" + + #: html/Admin/Global/CustomField.html:48 + msgid "Create a CustomField which applies to all queues" + msgstr "Hozzon létre egy egyéni mezõt minden sorhoz!" + + #: html/RTFM/Article/Create.html:19 + msgid "Create a new article" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Create a new Custom Field" + msgstr "Hozzon létre egy új egyéni mezõt!" + + #: NOT FOUND IN SOURCE + msgid "Create a new global scrip" + msgstr "" + + #: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 + msgid "Create a new group" + msgstr "Hozzon létre új csoportot!" + + #: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 + msgid "Create a new personal group" + msgstr "Hozzon létre egy új saját csoportot!" + + #: 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/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 + msgid "Create a new ticket" + msgstr "Új probléma felvétele" + + #: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 + msgid "Create a new user" + msgstr "Hozzon létre egy új felhasználót!" + + #: html/Admin/Queues/Modify.html:103 + msgid "Create a queue" + msgstr "Hozzon létre egy sort!" + + #: NOT FOUND IN SOURCE + msgid "Create a queue called" + msgstr "" + + #: html/SelfService/Create.html:25 html/SelfService/Create.html:27 + msgid "Create a request" + msgstr "Hozzon létre egy új problémát!" + + #: html/Admin/Queues/Scrip.html:59 + #. ($QueueObj->Name) + msgid "Create a scrip for queue %1" + msgstr "Hozzon létre egy scrip-et a(z) %1 sorhoz!" + + #: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 + msgid "Create a template" + msgstr "Hozzon létre egy sablont!" + + #: html/SelfService/Create.html:24 + msgid "Create a ticket" + msgstr "Új probléma" + + #: RTFM + msgid "Create an article" + msgstr "" + + #: RTFM + msgid "Create an article in class..." + msgstr "" + + #: etc/initialdata:130 + msgid "Create new tickets based on this scrip's template" + msgstr "Hozzon létre egy új problémát ennek a sablonnak scripjeire alapozva" + + #: html/SelfService/Create.html:81 + msgid "Create ticket" + msgstr "Létrehozás" + + #: lib/RT/Queue_Overlay.pm:84 + msgid "Create tickets in this queue" + msgstr "Hozzon létre problémákat ebben a sorban!" + + #: lib/RT/Queue_Overlay.pm:72 + msgid "Create, delete and modify custom fields" + msgstr "Egyéni mezõk létrehozása, módosítása, törlése" + + #: lib/RT/Queue_Overlay.pm:68 + msgid "Create, delete and modify queues" + msgstr "Sor létrehozása, módosítása, törlése" + + #: NOT FOUND IN SOURCE + msgid "Create, delete and modify the members of any user's personal groups" + msgstr "" + + #: lib/RT/System.pm:59 + msgid "Create, delete and modify the members of personal groups" + msgstr "" + + #: lib/RT/System.pm:60 + msgid "Create, delete and modify users" + msgstr "Felhasználók létrehozása, módosítása, törlése" + + #: lib/RT/Queue_Overlay.pm:84 + msgid "CreateTicket" + msgstr "" + + #: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 + msgid "Created" + msgstr "Felvéve" + + #: RTFM + msgid "Created by" + msgstr "Létrehozta" + + #: html/Admin/Elements/EditCustomField:71 + #. ($CustomFieldObj->Name()) + msgid "Created CustomField %1" + msgstr "" + + #: RTFM + msgid "Created during" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Created template %1" + msgstr "" + + #: html/Ticket/Elements/EditLinks:28 + msgid "Current Relationships" + msgstr "Jelenlegi kapcsolatok" + + #: html/Admin/Elements/EditScrips:30 + msgid "Current Scrips" + msgstr "Jelenlegi Scripek" + + #: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 + msgid "Current members" + msgstr "Jelenlegi tagok" + + #: html/Admin/Elements/SelectRights:29 + msgid "Current rights" + msgstr "Jelenlegi jogok" + + #: html/Search/Listing.html:71 + msgid "Current search criteria" + msgstr "Aktuális keresési feltételek" + + #: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 + msgid "Current watchers" + msgstr "Jelenlegi résztvevõk" + + #: html/Admin/Global/CustomField.html:55 + #. ($CustomField) + msgid "Custom Field #%1" + msgstr "%1. egyéni mezõ" + + #: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 + msgid "Custom Fields" + msgstr "Egyéni mezõk" + + #: html/Admin/Elements/EditScrip:73 + msgid "Custom action cleanup code" + msgstr "Az akcióhoz rendelt egyéni lezáró kód" + + #: html/Admin/Elements/EditScrip:65 + msgid "Custom action preparation code" + msgstr "Az akcióhoz rendelt egyéni elõkészítõ kód" + + #: html/Admin/Elements/EditScrip:49 + msgid "Custom condition" + msgstr "Egyéni feltétel" + + #: lib/RT/Tickets_Overlay.pm:1618 + #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) + msgid "Custom field %1 %2 %3" + msgstr "Egyéni mezõ %1 %2 %3" + + #: lib/RT/Tickets_Overlay.pm:1613 + #. ($CF->Name) + msgid "Custom field %1 has a value." + msgstr "[%1] egyéni mezõnek van értéke." + + #: lib/RT/Tickets_Overlay.pm:1610 + #. ($CF->Name) + msgid "Custom field %1 has no value." + msgstr "[%1] egyéni mezõnek nincs értéke." + + #: lib/RT/Ticket_Overlay.pm:3360 + #. ($args{'Field'}) + msgid "Custom field %1 not found" + msgstr "[%1] egyéni mezõ nem található" + + #: html/Admin/Elements/EditCustomFields:197 + msgid "Custom field deleted" + msgstr "Az egyéni mezõ törölve" + + #: lib/RT/Ticket_Overlay.pm:3510 + msgid "Custom field not found" + msgstr "Egyéni mezõ nem található" + + #: lib/RT/CustomField_Overlay.pm:283 + #. ($args{'Content'}, $self->Name) + msgid "Custom field value %1 could not be found for custom field %2" + msgstr "A(z) %2 egyéni mezõ %1értéke nem található" + + #: NOT FOUND IN SOURCE + msgid "Custom field value changed from %1 to %2" + msgstr "" + + #: lib/RT/CustomField_Overlay.pm:185 + msgid "Custom field value could not be deleted" + msgstr "Az egyéni mezõ értéke nem található" + + #: lib/RT/CustomField_Overlay.pm:289 + msgid "Custom field value could not be found" + msgstr "Az egyéni mezõ értéke nem található" + + #: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 + msgid "Custom field value deleted" + msgstr "Az egyéni mezõ értéke törölve" + + #: lib/RT/Transaction_Overlay.pm:550 + msgid "CustomField" + msgstr "" + + #: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 + msgid "Dates" + msgstr "Idõpontok" + + #: lib/RT/Date.pm:422 + msgid "Dec." + msgstr "dec." + + #: NOT FOUND IN SOURCE + msgid "Default Autoresponse Template" + msgstr "" + + #: etc/initialdata:207 + msgid "Default Autoresponse template" + msgstr "" + + #: etc/initialdata:275 + msgid "Default admin comment template" + msgstr "" + + #: etc/initialdata:257 + msgid "Default admin correspondence template" + msgstr "" + + #: etc/initialdata:267 + msgid "Default correspondence template" + msgstr "" + + #: etc/initialdata:238 + msgid "Default transaction template" + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:645 + #. ($type, $self->Field, $self->OldValue, $self->NewValue) + msgid "Default: %1/%2 changed from %3 to %4" + msgstr "" + + #: html/User/Delegation.html:25 html/User/Delegation.html:28 + msgid "Delegate rights" + msgstr "Jogok továbbadása" + + #: lib/RT/System.pm:63 + msgid "Delegate specific rights which have been granted to you." + msgstr "" + + #: lib/RT/System.pm:63 + msgid "DelegateRights" + msgstr "" + + #: html/User/Elements/Tabs:38 + msgid "Delegation" + msgstr "Jogok továbbadása" + + #: RTFM + msgid "Delete" + msgstr "Törölni" + + #: html/RTFM/Article/delete.html:73 + msgid "Delete article #%1" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:90 + msgid "Delete tickets" + msgstr "Problémák törlése" + + #: lib/RT/Queue_Overlay.pm:90 + msgid "DeleteTicket" + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:187 + msgid "Deleting this object could break referential integrity" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:292 + msgid "Deleting this object would break referential integrity" + msgstr "" + + #: lib/RT/User_Overlay.pm:430 + msgid "Deleting this object would violate referential integrity" + msgstr "" + + #: html/Approvals/Elements/Approve:46 + msgid "Deny" + msgstr "Elutasítva" + + #: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 + msgid "Depended on by" + msgstr "Ettõl függnek" + + #: NOT FOUND IN SOURCE + msgid "Dependencies: \\n" + msgstr "" + + #: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 + msgid "Depends on" + msgstr "A következõktõl függ" + + #: html/Elements/SelectSortOrder:35 + msgid "Descending" + msgstr "csökkenõ" + + #: html/SelfService/Create.html:75 html/Ticket/Create.html:119 + msgid "Describe the issue below" + msgstr "A probléma szabatos leírása" + + #: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 + msgid "Description" + msgstr "Leírás" + + #: html/SelfService/Elements/MyRequests:44 + msgid "Details" + msgstr "Részletek" + + #: html/Ticket/Elements/Tabs:85 + msgid "Display" + msgstr "Mutat" + + #: lib/RT/Queue_Overlay.pm:69 + msgid "Display Access Control List" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:75 + msgid "Display Scrip templates for this queue" + msgstr "Láthatóak legyenek az ehhez a sorhoz tartozó scrip sablonok" + + #: lib/RT/Queue_Overlay.pm:78 + msgid "Display Scrips for this queue" + msgstr "Láthatóak legyen a sorhoz tartozó scripek" + + #: html/Ticket/Elements/ShowHistory:35 + msgid "Display mode" + msgstr "Megjelenítési mód" + + #: html/SelfService/Display.html:25 html/SelfService/Display.html:29 + #. ($Ticket->id) + msgid "Display ticket #%1" + msgstr "" + + #: lib/RT/System.pm:54 + msgid "Do anything and everything" + msgstr "" + + #: html/Elements/Refresh:30 + msgid "Don't refresh this page." + msgstr "Ne frissítse ezt az oldalt." + + #: html/Search/Elements/PickRestriction:114 + msgid "Don't show search results" + msgstr "Ne mutassa a keresés eredményét!" + + #: html/Ticket/Elements/ShowTransaction:105 + msgid "Download" + msgstr "Letölt" + + #: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 + msgid "Due" + msgstr "Határidõ" + + #: NOT FOUND IN SOURCE + msgid "Due date '%1' could not be parsed" + msgstr "" + + #: bin/rt-commit-handler:754 + #. ($1, $msg) + msgid "ERROR: Couldn't load ticket '%1': %2.\\n" + msgstr "HIBA: A(z) '%1' probléma nem betölthetõ: %2.\\n" + + #: NOT FOUND IN SOURCE + msgid "Edit" + msgstr "" + + #: html/Admin/Queues/CustomFields.html:45 + #. ($Queue->Name) + msgid "Edit Custom Fields for %1" + msgstr "Módosítsa %1 egyéni mezõit!" + + #: html/RTFM/Admin/Classes/CustomFields.html:73 + msgid "Edit Custom Fields for Class %1" + msgstr "Bearbeite benutzerdefinierte Felder für Klasse %1" + + #: html/Ticket/ModifyLinks.html:36 + msgid "Edit Relationships" + msgstr "Kapcsolatok módosítása" + + #: html/Admin/Queues/Templates.html:41 + #. ($QueueObj->Name) + msgid "Edit Templates for queue %1" + msgstr "Módosítsa a(z) %1 sor sablonjait!" + + #: NOT FOUND IN SOURCE + msgid "Edit scrips" + msgstr "" + + #: html/Admin/Global/index.html:46 + msgid "Edit system templates" + msgstr "Módosítsa a rendszersablonokat!" + + #: NOT FOUND IN SOURCE + msgid "Edit templates for %1" + msgstr "" + + #: html/RTFM/Admin/Classes/Modify:79 + msgid "Editing Configuration for Class %1" + msgstr "" + + #: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 + #. ($QueueObj->Name) + #. ($QueueObj->Id) + msgid "Editing Configuration for queue %1" + msgstr "" + + #: html/Admin/Elements/ModifyUser:25 + #. ($UserObj->Name) + msgid "Editing Configuration for user %1" + msgstr "" + + #: html/Admin/Elements/EditCustomField:74 + #. ($CustomFieldObj->Name()) + msgid "Editing CustomField %1" + msgstr "" + + #: html/Admin/Groups/Members.html:32 + #. ($Group->Name) + msgid "Editing membership for group %1" + msgstr "Módosítsa a(z) %1 csoport tagságát!" + + #: html/User/Groups/Members.html:129 + #. ($Group->Name) + msgid "Editing membership for personal group %1" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Editing template %1" + msgstr "" + + #: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 + msgid "Either base or target must be specified" + msgstr "Meg kell adni a bázist vagy a célt" + + #: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 + msgid "Email" + msgstr "E-mail cím" + + #: lib/RT/User_Overlay.pm:188 + msgid "Email address in use" + msgstr "E-Mail-cím már foglalt" + + #: html/Admin/Elements/ModifyUser:42 + msgid "EmailAddress" + msgstr "E-Mail-Adresse" + + ### muss das überhaupt übersetzt werden??? + #: html/Admin/Elements/ModifyUser:54 + msgid "EmailEncoding" + msgstr "E-Mail-Kodierung" + + #: RTFM + msgid "Enabled (Unchecking this box disables this Class)" + msgstr "" + + ### muss das überhaupt übersetzt werden??? + #: html/Admin/Elements/EditCustomField:36 + msgid "Enabled (Unchecking this box disables this custom field)" + msgstr "Aktivált (kiválasztása letiltja ezt az egyéni mezõt)" + + #: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 + msgid "Enabled (Unchecking this box disables this group)" + msgstr "Aktivált (Kiválasztása letiltja ezt a csoportot)" + + #: html/Admin/Queues/Modify.html:84 + msgid "Enabled (Unchecking this box disables this queue)" + msgstr "Aktivált (Kiválasztása letiltja ezt a sort)" + + #: RTFM + msgid "Enabled Classes" + msgstr "" + + #: html/Admin/Elements/EditCustomFields:99 + msgid "Enabled Custom Fields" + msgstr "Aktív egyéni mezõk" + + #: html/Admin/Queues/index.html:56 + msgid "Enabled Queues" + msgstr "Aktív sorok" + + #: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 + #. (loc_fuzzy($msg)) + msgid "Enabled status %1" + msgstr "Status %1 aktiviert" + + #: RTFM + msgid "" + "Enter Articles or URIs to link Articles to. Seperate multiple entries with " + "spaces." + msgstr "" + + #: lib/RT/CustomField_Overlay.pm:361 + msgid "Enter multiple values" + msgstr "Adjon meg több értéket!" + + #: lib/RT/CustomField_Overlay.pm:358 + msgid "Enter one value" + msgstr "Adjon meg egy értéket!" + + #: html/Ticket/Elements/EditLinks:112 + msgid "" + "Enter tickets or URIs to link tickets to. Seperate multiple entries with " + "spaces." + msgstr "" + "Szóközökkel elválasztva adja meg a problémák sorszámát vagy az URL-eket." + + #: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 + msgid "Error" + msgstr "Hiba" + + #: lib/RT/Queue_Overlay.pm:555 + msgid "Error in parameters to Queue->AddWatcher" + msgstr "Hiba a sor paraméterezésében ->AddWatcher" + + #: lib/RT/Queue_Overlay.pm:713 + msgid "Error in parameters to Queue->DelWatcher" + msgstr "Hiba a sor paraméterezésében->DelWatcher" + + #: lib/RT/Ticket_Overlay.pm:1356 + msgid "Error in parameters to Ticket->AddWatcher" + msgstr "Hiba a probléma paraméterezésében -> AddWatcher" + + #: lib/RT/Ticket_Overlay.pm:1532 + msgid "Error in parameters to Ticket->DelWatcher" + msgstr "Hiba a probléma paraméterezésében->DelWatcher" + + #: etc/initialdata:20 + msgid "Everyone" + msgstr "Mindenki" + + #: bin/rt-crontool:194 + msgid "Example:" + msgstr "Például:" + + #: html/Admin/Elements/ModifyUser:64 + msgid "ExternalAuthId" + msgstr "" + + #: html/Admin/Elements/ModifyUser:58 + msgid "ExternalContactInfoId" + msgstr "" + + #: html/Admin/Users/Modify.html:73 + msgid "Extra info" + msgstr "Kiegészítõ információk" + + #: html/RTFM/Article/ExtractIntoClass.html:19 + msgid "Extract article from ticket #%1" + msgstr "" + + #: html/RTFM/Article/ExtractFromTicket.html:19 + msgid "Extract article from ticket #%1 into class %2" + msgstr "" + + #: lib/RT/User_Overlay.pm:302 + msgid "Failed to find 'Privileged' users pseudogroup." + msgstr "" + + #: lib/RT/User_Overlay.pm:309 + msgid "Failed to find 'Unprivileged' users pseudogroup" + msgstr "" + + #: bin/rt-crontool:138 + #. ($modname, $@) + msgid "Failed to load module %1. (%2)" + msgstr "A %1 Modul nem betölthetõ. (%2)" + + #: lib/RT/Date.pm:412 + msgid "Feb." + msgstr "feb." + + #: NOT FOUND IN SOURCE + msgid "Fin" + msgstr "" + + #: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 + msgid "Final Priority" + msgstr "Végsõ prioritás" + + #: lib/RT/Ticket_Overlay.pm:1162 + msgid "FinalPriority" + msgstr "" + + #: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 + msgid "Find group whose" + msgstr "Találjon olyan csoportot, amelyiknél a" + + #: html/Elements/Quicksearch:25 + msgid "Find new/open tickets" + msgstr "Találjon új/nyitott problémákat!" + + #: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 + msgid "Find people whose" + msgstr "Találj olyan embereket, akiknél a" + + #: html/Search/Listing.html:108 + msgid "Find tickets" + msgstr "Problémák keresése" + + #: NOT FOUND IN SOURCE + msgid "Finish Approval" + msgstr "" + + #: html/Ticket/Elements/Tabs:58 + msgid "First" + msgstr "Elsõ" + + #: html/Search/Listing.html:41 + msgid "First page" + msgstr "Elsõ oldal" + + #: docs/design_docs/string-extraction-guide.txt:33 + msgid "Foo Bar Baz" + msgstr "" + + #: docs/design_docs/string-extraction-guide.txt:24 + msgid "Foo!" + msgstr "" + + #: html/Search/Bulk.html:87 + msgid "Force change" + msgstr "A változtatás kikényszerítése" + + #: html/Search/Listing.html:106 + #. ($ticketcount) + msgid "Found %quant(%1,ticket)" + msgstr "%1 problémát találtam" + + #: lib/RT/Interface/Web.pm:868 + msgid "Found Object" + msgstr "" + + #: html/Admin/Elements/ModifyUser:44 + msgid "FreeformContactInfo" + msgstr "" + + #: lib/RT/CustomField_Overlay.pm:38 + msgid "FreeformMultiple" + msgstr "" + + #: lib/RT/CustomField_Overlay.pm:37 + msgid "FreeformSingle" + msgstr "" + + #: lib/RT/Date.pm:392 + msgid "Fri." + msgstr "P" + + #: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 + msgid "Full headers" + msgstr "Teljes fejléc" + + #: NOT FOUND IN SOURCE + msgid "Getting the current user from a pgp sig\\n" + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:595 + #. ($New->Name) + msgid "Given to %1" + msgstr "%1 felhasználónak adva" + + #: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 + msgid "Global" + msgstr "Általános" + + #: NOT FOUND IN SOURCE + msgid "Global Scrips" + msgstr "" + + #: html/Admin/Elements/SelectTemplate:38 + #. (loc($Template->Name)) + msgid "Global template: %1" + msgstr "Általános probléma: %1" + + #: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 + msgid "Go!" + msgstr "Hajrá!" + + #: NOT FOUND IN SOURCE + msgid "Good pgp sig from %1\\n" + msgstr "" + + #: html/Search/Listing.html:50 + msgid "Goto page" + msgstr "" + + #: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 + msgid "Goto ticket" + msgstr "Mutassa a problémát" + + #: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 + msgid "Group" + msgstr "Csoport" + + #: NOT FOUND IN SOURCE + msgid "Group %1 %2: %3" + msgstr "" + + #: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 + msgid "Group Rights" + msgstr "Csoportjogok" + + #: lib/RT/Group_Overlay.pm:965 + msgid "Group already has member" + msgstr "Csoportnak már vannak tagjai" + + #: html/Admin/Groups/Modify.html:77 + #. ($create_msg) + msgid "Group could not be created: %1" + msgstr "A csoportot nem lehetett létrehozni: %1" + + #: lib/RT/Group_Overlay.pm:497 + msgid "Group created" + msgstr "Csoport létrehozva" + + #: lib/RT/Group_Overlay.pm:1133 + msgid "Group has no such member" + msgstr "A csoportnak már van ilyen tagja" + + #: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 + msgid "Group not found" + msgstr "Csoport nem található" + + #: NOT FOUND IN SOURCE + msgid "Group not found.\\n" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Group not specified.\\n" + msgstr "" + + #: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 + msgid "Groups" + msgstr "Csoportok" + + #: lib/RT/Group_Overlay.pm:971 + msgid "Groups can't be members of their members" + msgstr "Csoportok nem lehetnek a saját tagjaik tagjai!" + + #: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 + msgid "Hello!" + msgstr "Hallo!" + + #: docs/design_docs/string-extraction-guide.txt:40 + #. ($name) + msgid "Hello, %1" + msgstr "Hallo %1" + + #: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 + msgid "History" + msgstr "Részletes történet" + + #: html/RTFM/Article/History.html:22 + msgid "History for article #%1" + msgstr "" + + #: html/Admin/Elements/ModifyUser:68 + msgid "HomePhone" + msgstr "Otthoni telefon" + + #: html/Elements/Tabs:46 + msgid "Homepage" + msgstr "Kezdõlap" + + #: lib/RT/Base.pm:74 + #. (6) + msgid "I have %quant(%1,concrete mixer)." + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "I have [quant,_1,concrete mixer]." + msgstr "" + + #: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 + msgid "Id" + msgstr "Sorszám" + + #: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 + msgid "Identity" + msgstr "Személy" + + #: etc/upgrade/2.1.71:86 + msgid "" + "If an approval is rejected, reject the original and delete pending approvals" + msgstr "" + "Ha egy engedélyezést elutasít utasítsa el az eredetit, és törölja a várakozó engedélyzéseket." + + #: bin/rt-crontool:190 + msgid "" + "If this tool were setgid, a hostile local user could use this tool to gain " + "administrative access to RT." + msgstr "" + "Ha ez az eszköz 'setgid' lenne egy rosszszándékú helyi felhasználóadminisztratív hozzáférést nyerne az RT hez." + + #: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 + msgid "If you've updated anything above, be sure to" + msgstr "" + "Ha valamit módosított, ne felejtsen el ide kattintani, hogy megtörténjen a" + + #: lib/RT/Interface/Web.pm:860 + msgid "Illegal value for %1" + msgstr "Érvénytelen érték %1-nek" + + #: lib/RT/Interface/Web.pm:863 + msgid "Immutable field" + msgstr "Nem változtatható mezõ" + + #: RTFM + msgid "in class %1" + msgstr "%1" + + #: RTFM + msgid "Include disabled classes in listing." + msgstr "" + + #: html/Admin/Elements/EditCustomFields:74 + msgid "Include disabled custom fields in listing." + msgstr "Láthatóak legyenek a letiltott egyéni mezõk is." + + #: html/Admin/Queues/index.html:43 + msgid "Include disabled queues in listing." + msgstr "Láthatóak legyenek a letiltott sorok is." + + #: html/Admin/Users/index.html:47 + msgid "Include disabled users in search." + msgstr "Keresés a letiltott felhasználók között is." + + #: lib/RT/Tickets_Overlay.pm:1067 + msgid "Initial Priority" + msgstr "Kezdõ prioritás" + + #: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 + msgid "InitialPriority" + msgstr "" + + #: lib/RT/ScripAction_Overlay.pm:105 + msgid "Input error" + msgstr "Input hiba" + + #: lib/RT/Ticket_Overlay.pm:3729 + msgid "Internal Error" + msgstr "Belsõ hiba" + + #: lib/RT/Record.pm:143 + #. ($id->{error_message}) + msgid "Internal Error: %1" + msgstr "Belsõ hiba: %1" + + #: lib/RT/Group_Overlay.pm:644 + msgid "Invalid Group Type" + msgstr "Érvénytelen csoportfajta" + + #: lib/RT/Principal_Overlay.pm:128 + msgid "Invalid Right" + msgstr "Érvénytelen jog" + + #: lib/RT/Interface/Web.pm:865 + msgid "Invalid data" + msgstr "Érvénytelen dátum" + + #: lib/RT/Ticket_Overlay.pm:438 + msgid "Invalid owner. Defaulting to 'nobody'." + msgstr "" + "Tulajdonos érvénytelen, ezért 'Senki'-re állítva." + + #: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 + msgid "Invalid queue" + msgstr "Érvénytelen sor" + + #: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 + msgid "Invalid right" + msgstr "Érvénytelen jog" + + #: lib/RT/Record.pm:118 + #. ($key) + msgid "Invalid value for %1" + msgstr "Érvénytelen érték %1-nek" + + #: lib/RT/Ticket_Overlay.pm:3367 + msgid "Invalid value for custom field" + msgstr "Érvénytelen érték az egyéni mezõhöz" + + #: lib/RT/Ticket_Overlay.pm:345 + msgid "Invalid value for status" + msgstr "Érvénytelen státuszérték" + + #: bin/rt-crontool:191 + msgid "" + "It is incredibly important that nonprivileged users not be allowed to run " + "this tool." + msgstr "" + + #: bin/rt-crontool:192 + 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:163 + msgid "It takes several arguments:" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Items pending my approval" + msgstr "" + + #: lib/RT/Date.pm:411 + msgid "Jan." + msgstr "jan." + + #: lib/RT/Group_Overlay.pm:149 + msgid "Join or leave this group" + msgstr "" + + #: lib/RT/Date.pm:417 + msgid "Jul." + msgstr "júl." + + #: html/Ticket/Elements/Tabs:99 + msgid "Jumbo" + msgstr "Minden módosítása" + + #: lib/RT/Date.pm:416 + msgid "Jun." + msgstr "jún." + + #: NOT FOUND IN SOURCE + msgid "Keyword" + msgstr "" + + #: html/Admin/Elements/ModifyUser:52 + msgid "Lang" + msgstr "Nyelv" + + #: html/Ticket/Elements/Tabs:73 + msgid "Last" + msgstr "Utolsó" + + #: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 + msgid "Last Contact" + msgstr "Utolsó kapcsolat" + + #: html/Elements/SelectDateType:29 + msgid "Last Contacted" + msgstr "Utoljára foglalkoztak vele" + + #: html/Search/Elements/TicketHeader:41 + msgid "Last Notified" + msgstr "Utolsó módosítás" + + #: html/Elements/SelectDateType:30 + msgid "Last Updated" + msgstr "Utoljára aktualizálva" + + #: NOT FOUND IN SOURCE + msgid "Left" + msgstr "" + + #: html/Admin/Users/Modify.html:83 + msgid "Let this user access RT" + msgstr "Felhasználónak RT-hozzáférés engedélyezése" + + #: html/Admin/Users/Modify.html:87 + msgid "Let this user be granted rights" + msgstr "Felhasználónak több jog engedélyezése" + + #: NOT FOUND IN SOURCE + msgid "Limiting owner to %1 %2" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Limiting queue to %1 %2" + msgstr "" + + #: lib/RT/Ticket_Overlay.pm:2697 + msgid "Link already exists" + msgstr "Kapcsolat már létezik" + + #: lib/RT/Ticket_Overlay.pm:2709 + msgid "Link could not be created" + msgstr "Kapcsolat nem hozható létre" + + #: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 + #. ($TransString) + msgid "Link created (%1)" + msgstr "Kapcsolat létrehozva (%1)" + + #: lib/RT/Ticket_Overlay.pm:2638 + #. ($TransString) + msgid "Link deleted (%1)" + msgstr "Kapcsolat törölve (%1)" + + #: lib/RT/Ticket_Overlay.pm:2644 + msgid "Link not found" + msgstr "Kapcsolat nem található" + + #: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 + #. ($Ticket->Id) + msgid "Link ticket #%1" + msgstr "%1. számú probléma kapcsolatainak módosítása" + + #: html/Ticket/Elements/Tabs:97 + msgid "Links" + msgstr "Kapcsolatok módosítása" + + #: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 + msgid "Location" + msgstr "Cím" + + #: lib/RT.pm:158 + #. ($RT::LogDir) + msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." + msgstr "" + "Log-könyvtár %1 nem található, vagy nincs írási joga.\\n Az RT tud elindulni." + + #: html/Elements/Header:57 + #. ("<b>".$session{'CurrentUser'}->Name."</b>") + msgid "Logged in as %1" + msgstr "%1-ként van bejelentkezve" + + #: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 + msgid "Login" + msgstr "Bejelentkezés" + + #: html/Elements/Header:54 + msgid "Logout" + msgstr "Kijelentkezés" + + #: html/Search/Bulk.html:86 + msgid "Make Owner" + msgstr "Legyen a tulajdonos" + + #: html/Search/Bulk.html:102 + msgid "Make Status" + msgstr "Státusz változtatása" + + #: html/Search/Bulk.html:109 + msgid "Make date Due" + msgstr "Határidõ változtatása" + + #: html/Search/Bulk.html:110 + msgid "Make date Resolved" + msgstr "Lezárási dátum változtatása" + + #: html/Search/Bulk.html:107 + msgid "Make date Started" + msgstr "Hozzáfogás dátumának változtatása" + + #: html/Search/Bulk.html:106 + msgid "Make date Starts" + msgstr "Kiosztás dátumának változtatása" + + #: html/Search/Bulk.html:108 + msgid "Make date Told" + msgstr "Bejelentés dátumának változtatása" + + #: html/Search/Bulk.html:99 + msgid "Make priority" + msgstr "Prioritás állítása" + + #: html/Search/Bulk.html:100 + msgid "Make queue" + msgstr "Sor változtatása" + + #: html/Search/Bulk.html:98 + msgid "Make subject" + msgstr "Tárgy változtatása" + + #: html/Admin/index.html:33 + msgid "Manage groups and group membership" + msgstr "Csoportok és tagjaik kezelése" + + #: html/Admin/index.html:39 + msgid "Manage properties and configuration which apply to all queues" + msgstr "Minden sorra vonatkozó tulajdonságok és beállítások kezelése" + + #: html/Admin/index.html:36 + msgid "Manage queues and queue-specific properties" + msgstr "Sorok és a sorokra jellemzõ beállítások kezelése" + + #: html/Admin/index.html:30 + msgid "Manage users and passwords" + msgstr "Felhasználók és jelszavaik kezelése" + + #: lib/RT/Date.pm:413 + msgid "Mar." + msgstr "már." + + #: lib/RT/Date.pm:415 + msgid "May." + msgstr "máj." + + #: lib/RT/Group_Overlay.pm:982 + msgid "Member added" + msgstr "Tag hozzáadva" + + #: lib/RT/Group_Overlay.pm:1140 + msgid "Member deleted" + msgstr "Tag törölve" + + #: lib/RT/Group_Overlay.pm:1144 + msgid "Member not deleted" + msgstr "Tag nincs törölve" + + #: html/Elements/SelectLinkType:26 + msgid "Member of" + msgstr "Tagja a" + + #: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 + msgid "Members" + msgstr "Tagok" + + #: lib/RT/Ticket_Overlay.pm:2843 + msgid "Merge Successful" + msgstr "Beolvasztás sikeres" + + #: lib/RT/Ticket_Overlay.pm:2804 + msgid "Merge failed. Couldn't set EffectiveId" + msgstr "Beolvasztás sikertelen Konnte EffectiveId nicht setztn" + + #: html/Ticket/Elements/EditLinks:115 + msgid "Merge into" + msgstr "Beolvasztani ebbe" + + #: html/Ticket/Update.html:102 + msgid "Message" + msgstr "Üzenet szövege" + + #: lib/RT/Interface/Web.pm:867 + msgid "Missing a primary key?: %1" + msgstr "" + + #: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 + msgid "Mobile" + msgstr "Mobil" + + #: html/Admin/Elements/ModifyUser:72 + msgid "MobilePhone" + msgstr "Mobiltelefon" + + #: RTFM + msgid "Modified" + msgstr "Megváltoztatva" + + #: RTFM + msgid "Modify" + msgstr "" + + #: RTFM + msgid "Modify article #%1" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:70 + msgid "Modify Access Control List" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Modify Custom Field %1" + msgstr "" + + #: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 + msgid "Modify Custom Fields which apply to all queues" + msgstr "Változtassa meg a minden sorra vonatkozó egyéni mezõket!" + + #: html/RTFM/Admin/CustomFields/GroupRights.html:21 + msgid "Modify group rights for custom field %1" + msgstr "Változztassa meg a(z) %1 sor csoportjogait!" + + #: lib/RT/Queue_Overlay.pm:73 + msgid "Modify Scrip templates for this queue" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:76 + msgid "Modify Scrips for this queue" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Modify Template %1" + msgstr "" + + #: html/Admin/Queues/CustomField.html:45 + #. ($QueueObj->Name()) + msgid "Modify a CustomField for queue %1" + msgstr "Változtassa meg a(z) %1 sor egyéni mezõjét!" + + #: html/Admin/Global/CustomField.html:53 + msgid "Modify a CustomField which applies to all queues" + msgstr "" + + #: html/Admin/Queues/Scrip.html:54 + #. ($QueueObj->Name) + msgid "Modify a scrip for queue %1" + msgstr "" + + #: html/Admin/Global/Scrip.html:48 + msgid "Modify a scrip which applies to all queues" + msgstr "" + + #: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 + #. ($TicketObj->Id) + msgid "Modify dates for #%1" + msgstr "%1. számú probléma idõadatainak módosítása" + + #: html/Ticket/ModifyDates.html:35 + #. ($TicketObj->Id) + msgid "Modify dates for ticket # %1" + msgstr "%1. számú probléma idõadatainak módosítása" + + #: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 + msgid "Modify global group rights" + msgstr "Változtassa meg az általános csoportjogokat!" + + #: html/Admin/Global/GroupRights.html:33 + msgid "Modify global group rights." + msgstr "Változtassa meg az általános csoportjogokat!" + + #: NOT FOUND IN SOURCE + msgid "Modify global scrips" + msgstr "" + + #: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 + msgid "Modify global user rights" + msgstr "Változtassa meg az általános felhasználói jogokat!" + + #: html/Admin/Global/UserRights.html:33 + msgid "Modify global user rights." + msgstr "Változtassa meg az általános felhasználói jogokat!" + + #: lib/RT/Group_Overlay.pm:146 + msgid "Modify group metadata or delete group" + msgstr "" + + #: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 + #. ($GroupObj->Name) + msgid "Modify group rights for group %1" + msgstr "Módosítsa a(z) %1 csoport jogait" + + #: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 + #. ($QueueObj->Name) + msgid "Modify group rights for queue %1" + msgstr "Változtassa meg a %1 sor csoportjogait!" + + #: lib/RT/Group_Overlay.pm:148 + msgid "Modify membership roster for this group" + msgstr "" + + #: lib/RT/System.pm:61 + msgid "Modify one's own RT account" + msgstr "" + + #: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 + #. ($QueueObj->Name) + msgid "Modify people related to queue %1" + msgstr "Változtassa meg a %1 sorhoz tarozó részvevõket!" + + #: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 + #. ($Ticket->id) + #. ($Ticket->Id) + msgid "Modify people related to ticket #%1" + msgstr "A %1. számú problémában érintett személyek változtatása" + + #: html/Admin/Queues/Scrips.html:44 + #. ($QueueObj->Name) + msgid "Modify scrips for queue %1" + msgstr "Változtassa meg a(z) %1 sor Scripjeit" + + #: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 + msgid "Modify scrips which apply to all queues" + msgstr "Változtassa meg a minden sorra vonatkozó scripeket!" + + #: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 + #. (loc($TemplateObj->Name())) + #. ($TemplateObj->id) + msgid "Modify template %1" + msgstr "Hozzon létre egy sablont!" + + #: html/Admin/Global/Templates.html:44 + msgid "Modify templates which apply to all queues" + msgstr "Változtassa meg az általános sablonokat!" + + #: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 + #. ($Group->Name) + msgid "Modify the group %1" + msgstr "A %1 csoport módosítása" + + #: lib/RT/Queue_Overlay.pm:71 + msgid "Modify the queue watchers" + msgstr "" + + #: html/Admin/Users/Modify.html:236 + #. ($UserObj->Name) + msgid "Modify the user %1" + msgstr "%1 felhasználó módosítása" + + #: html/Ticket/ModifyAll.html:37 + #. ($Ticket->Id) + msgid "Modify ticket # %1" + msgstr "%1. számú probléma adatainak módosítása" + + #: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 + #. ($TicketObj->Id) + msgid "Modify ticket #%1" + msgstr "%1. számú probléma alapadatainak módosítása" + + #: lib/RT/Queue_Overlay.pm:88 + msgid "Modify tickets" + msgstr "" + + #: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 + #. ($GroupObj->Name) + msgid "Modify user rights for group %1" + msgstr "Változtassa meg a(z) %1 csoport jogait!" + + #: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 + #. ($QueueObj->Name) + msgid "Modify user rights for queue %1" + msgstr "Változtassa meg a(z) %1 sor felhasználói jogait!" + + #: NOT FOUND IN SOURCE + msgid "Modify watchers for queue '%1'" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:70 + msgid "ModifyACL" + msgstr "" + + #: lib/RT/Group_Overlay.pm:149 + msgid "ModifyOwnMembership" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:71 + msgid "ModifyQueueWatchers" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:76 + msgid "ModifyScrips" + msgstr "" + + #: lib/RT/System.pm:61 + msgid "ModifySelf" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:73 + msgid "ModifyTemplate" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:88 + msgid "ModifyTicket" + msgstr "" + + #: lib/RT/Date.pm:388 + msgid "Mon." + msgstr "H" + + #: html/Ticket/Elements/ShowRequestor:42 + #. ($name) + msgid "More about %1" + msgstr "További részletek %1 felhasználóról" + + #: html/Admin/Elements/EditCustomFields:61 + msgid "Move down" + msgstr "Lefelé mozgatni" + + #: html/Admin/Elements/EditCustomFields:53 + msgid "Move up" + msgstr "Felfelé mozgatni" + + #: html/Admin/Elements/SelectSingleOrMultiple:27 + msgid "Multiple" + msgstr "" + + #: lib/RT/User_Overlay.pm:179 + msgid "Must specify 'Name' attribute" + msgstr "" + + #: share/html/SelfService/Elements/MyRequests:32 + msgid "My %1 tickets" + msgstr "%1 problémáim" + + #: NOT FOUND IN SOURCE + msgid "My Approvals" + msgstr "" + + #: html/Approvals/index.html:25 html/Approvals/index.html:26 + msgid "My approvals" + msgstr "Lezárás" + + #: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 + msgid "Name" + msgstr "Név" + + #: lib/RT/User_Overlay.pm:186 + msgid "Name in use" + msgstr "A felhasználói név nár foglalt" + + #: RTFM + msgid "Name matches" + msgstr "Név tartalmaz" + + #: NOT FOUND IN SOURCE + msgid "Need approval from system administrator" + msgstr "" + + #: html/Ticket/Elements/ShowDates:52 + msgid "Never" + msgstr "Soha" + + #: html/Elements/Quicksearch:30 + msgid "New" + msgstr "Új" + + #: RTFM + msgid "New Article" + msgstr "" + + #: RTFM + msgid "New class" + msgstr "" + + #: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 + msgid "New Password" + msgstr "Új jelszó" + + #: etc/initialdata:311 etc/upgrade/2.1.71:16 + msgid "New Pending Approval" + msgstr "" + + #: html/Ticket/Elements/EditLinks:111 + msgid "New Relationships" + msgstr "Új kapcsolatok" + + #: html/Ticket/Elements/Tabs:36 + msgid "New Search" + msgstr "Új keresés" + + #: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 + msgid "New custom field" + msgstr "Új egyéni mezõ" + + #: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 + msgid "New group" + msgstr "Új csoport" + + #: html/SelfService/Prefs.html:32 + msgid "New password" + msgstr "Új jelszó" + + #: lib/RT/User_Overlay.pm:639 + msgid "New password notification sent" + msgstr "" + + #: html/Admin/Elements/QueueTabs:70 + msgid "New queue" + msgstr "Új sor" + + #: html/SelfService/Elements/Tabs:63 + msgid "New ticket" + msgstr "Új probléma" + + #: html/Admin/Elements/SelectRights:42 + msgid "New rights" + msgstr "Új jogok" + + #: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 + msgid "New scrip" + msgstr "Új Scrip" + + #: NOT FOUND IN SOURCE + msgid "New search" + msgstr "" + + #: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 + msgid "New template" + msgstr "Új sablon" + + #: lib/RT/Ticket_Overlay.pm:2771 + msgid "New ticket doesn't exist" + msgstr "Az új probléma nem létezik" + + #: html/Admin/Elements/UserTabs:52 + msgid "New user" + msgstr "Új felhasználó" + + #: html/Admin/Elements/CreateUserCalled:26 + msgid "New user called" + msgstr "" + + #: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 + msgid "New watchers" + msgstr "Új résztvevõk" + + #: html/Admin/Users/Prefs.html:42 + msgid "New window setting" + msgstr "" + + #: html/Ticket/Elements/Tabs:69 + msgid "Next" + msgstr "Következõ" + + #: html/Search/Listing.html:48 + msgid "Next page" + msgstr "Következõ oldal" + + #: html/Admin/Elements/ModifyUser:50 + msgid "NickName" + msgstr "Becenév" + + #: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 + msgid "Nickname" + msgstr "Becenév" + + #: RTFM + msgid "No" + msgstr "Nem" + + #: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 + msgid "No CustomField" + msgstr "Nincs egyéni mezõ" + + #: html/RTFM/Admin/CustomFields/GrroupRights.html:73 + msgid "No CustomField defined" + msgstr "Nincs egyéni mezõ meghatározva" + + #: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 + msgid "No Group defined" + msgstr "Nincs csoport meghatározva" + + #: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 + msgid "No Queue defined" + msgstr "Nincs sor meghatározva" + + #: bin/rt-crontool:56 + msgid "No RT user found. Please consult your RT administrator.\\n" + msgstr "" + "RT-felhasználó nem található. Vegyew fel a kapcsolatot az RT-adminisztrátorral.\\n" + + #: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 + msgid "No Template" + msgstr "Nincs sablon" + + #: bin/rt-commit-handler:764 + msgid "No Ticket specified. Aborting ticket " + msgstr "Nincs probléma megadva. Szakítsa meg a problémát " + + #: NOT FOUND IN SOURCE + msgid "No Ticket specified. Aborting ticket modifications\\n\\n" + msgstr "" + + #: html/Approvals/Elements/Approve:47 + msgid "No action" + msgstr "" + + #: lib/RT/Interface/Web.pm:862 + msgid "No column specified" + msgstr "Nincs <b>sor</b> megadva!" + + #: NOT FOUND IN SOURCE + msgid "No command found\\n" + msgstr "" + + #: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 + msgid "No comment entered about this user" + msgstr "Nincs kiegészítés tárolva" + + #: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 + msgid "No correspondence attached" + msgstr "" + + #: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 + #. (ref $self) + msgid "No description for %1" + msgstr "Nincs leírás a(z) %1-hez" + + #: lib/RT/Users_Overlay.pm:151 + msgid "No group specified" + msgstr "Nincs <b>csoport</b> megadva!" + + #: lib/RT/User_Overlay.pm:857 + msgid "No password set" + msgstr "Nincs jelszó megadva" + + #: lib/RT/Queue_Overlay.pm:259 + msgid "No permission to create queues" + msgstr "Nincs joga sort létrehozni" + + #: lib/RT/Ticket_Overlay.pm:341 + #. ($QueueObj->Name) + msgid "No permission to create tickets in the queue '%1'" + msgstr "Nincs joga a(z) '%1' sorban problémát létrehozni" + + #: lib/RT/User_Overlay.pm:151 + msgid "No permission to create users" + msgstr "Nincs joga felhasználót létrehozni" + + #: html/SelfService/Display.html:174 + msgid "No permission to display that ticket" + msgstr "" + + #: html/SelfService/Update.html:55 + msgid "No permission to view update ticket" + msgstr "Nincs joga ezt a problémát aktualizálni" + + #: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 + msgid "No principal specified" + msgstr "Nincs <b>felelõs</b> megadva!" + + #: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 + msgid "No principals selected." + msgstr "Nincs vezetõ kiválasztva." + + #: html/Admin/Queues/index.html:35 + msgid "No queues matching search criteria found." + msgstr "Nem található a keresési fletételeknek megfeleõ sor" + + #: html/Admin/Elements/SelectRights:81 + msgid "No rights found" + msgstr "Nem találhatók jogok" + + #: html/Admin/Elements/SelectRights:33 + msgid "No rights granted." + msgstr "Nincsenek jogok engedélyezve." + + #: html/Search/Bulk.html:149 + msgid "No search to operate on." + msgstr "Nincs feldolgozható keresési lista." + + #: NOT FOUND IN SOURCE + msgid "No ticket id specified" + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 + msgid "No transaction type specified" + msgstr "Nincs <b>értesítési típus</b> megadva!" + + #: html/Admin/Users/index.html:36 + msgid "No users matching search criteria found." + msgstr "Nincs a keresési feltételeknek megfeleõ felhasználó." + + #: bin/rt-commit-handler:644 + msgid "" + "No valid RT user found. RT cvs handler disengaged. Please consult your RT " + "administrator.\\n" + msgstr "" + "Nem található érvényes RT-felhasználó. RT CVS-Handler elveszett. Vegye fela kapcsolatot az RT-Adminisztrátorral.\\n" + + #: lib/RT/Interface/Web.pm:859 + msgid "No value sent to _Set!\\n" + msgstr "" + + #: html/Search/Elements/TicketRow:37 + msgid "Nobody" + msgstr "Senki" + + #: lib/RT/Interface/Web.pm:864 + msgid "Nonexistant field?" + msgstr "Nem létezõ mezõ?" + + #: html/Elements/Login:99 + msgid "Not logged in" + msgstr "Nincs bejelentkezve" + + #: html/Elements/Header:59 html/SelfService/Elements/Header:58 + msgid "Not logged in." + msgstr "Nincs bejelentkezve." + + #: lib/RT/Date.pm:369 + msgid "Not set" + msgstr "Nincs megadva" + + #: html/NoAuth/Reminder.html:27 + msgid "Not yet implemented." + msgstr "" + + #: html/Admin/Groups/Rights.html:25 + msgid "Not yet implemented...." + msgstr "" + + #: html/Approvals/Elements/Approve:50 + msgid "Notes" + msgstr "Megjegyzések" + + #: lib/RT/User_Overlay.pm:642 + msgid "Notification could not be sent" + msgstr "Értesítést nem sikerült elküldeni." + + #: etc/initialdata:94 + msgid "Notify AdminCcs" + msgstr "AdminCCs értesítése" + + #: etc/initialdata:90 + msgid "Notify AdminCcs as Comment" + msgstr "AdminCCs értesítése kiegészítésként" + + #: etc/initialdata:121 + msgid "Notify Other Recipients" + msgstr "Más címzettek értesítése" + + #: etc/initialdata:117 + msgid "Notify Other Recipients as Comment" + msgstr "Más címzettek értesítése kiegészítésként" + + #: etc/initialdata:86 + msgid "Notify Owner" + msgstr "A tulajdonos értesítése" + + #: etc/initialdata:82 + msgid "Notify Owner as Comment" + msgstr "A tulajdonos értesítése kiegészítésként" + + #: etc/initialdata:313 etc/upgrade/2.1.71:17 + msgid "Notify Owners and AdminCcs of new items pending their approval" + msgstr "" + + #: etc/initialdata:78 + msgid "Notify Requestors" + msgstr "Beküldõ értesítése" + + #: etc/initialdata:104 + msgid "Notify Requestors and Ccs" + msgstr "A beküldõ és a tájékoztatást kapó értesítése" + + #: etc/initialdata:99 + msgid "Notify Requestors and Ccs as Comment" + msgstr "A beküldõ és a tájékoztatást kapó értesítése kiegészítésként" + + #: etc/initialdata:113 + msgid "Notify Requestors, Ccs and AdminCcs" + msgstr "Minden résztvevõ tájékozatatása" + + #: etc/initialdata:109 + msgid "Notify Requestors, Ccs and AdminCcs as Comment" + msgstr "Minden résztvevõ értesítése kiegészítésként" + + #: lib/RT/Date.pm:421 + msgid "Nov." + msgstr "nov." + + #: lib/RT/Record.pm:157 + msgid "Object could not be created" + msgstr "Objekum nem hozható létre" + + #: lib/RT/Record.pm:176 + msgid "Object created" + msgstr "Objektum létehozva" + + #: lib/RT/Date.pm:420 + msgid "Oct." + msgstr "okt." + + #: html/Elements/SelectDateRelation:35 + msgid "On" + msgstr "e napon" + + #: etc/initialdata:155 + msgid "On Comment" + msgstr "Kiegészítéskor" + + #: etc/initialdata:148 + msgid "On Correspond" + msgstr "Válaszoláskor" + + #: etc/initialdata:137 + msgid "On Create" + msgstr "Létrehozáskor" + + #: etc/initialdata:169 + msgid "On Owner Change" + msgstr "Tulajdonos változásakor" + + #: etc/initialdata:177 + msgid "On Queue Change" + msgstr "Sor megváltozásakor" + + #: etc/initialdata:183 + msgid "On Resolve" + msgstr "Lezáráskor" + + #: etc/initialdata:161 + msgid "On Status Change" + msgstr "Státusz megváltozásakor" + + #: etc/initialdata:142 + msgid "On Transaction" + msgstr "Tranzakciónál" + + #: html/Approvals/Elements/PendingMyApproval:50 + #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") + msgid "Only show approvals for requests created after %1" + msgstr "Csak a(z) %1 után létrejött poblémák engedélyezései legyenek láthatóak" + + #: html/Approvals/Elements/PendingMyApproval:48 + #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") + msgid "Only show approvals for requests created before %1" + msgstr "Csak a(z) %1 elõtt létrejött problémák engedélyezései legyenek láthatóak" + + #: html/Elements/Quicksearch:31 + msgid "Open" + msgstr "Nyitott" + + #: html/Ticket/Elements/Tabs:136 + msgid "Open it" + msgstr "Megnyit" + + #: html/SelfService/Elements/Tabs:57 + msgid "Open tickets" + msgstr "Nyitott problémák" + + #: html/Admin/Users/Prefs.html:41 + msgid "Open tickets (from listing) in a new window" + msgstr "" + + #: html/Admin/Users/Prefs.html:40 + msgid "Open tickets (from listing) in another window" + msgstr "" + + #: etc/initialdata:133 + msgid "Open tickets on correspondence" + msgstr "" + + #: html/Search/Elements/PickRestriction:101 + msgid "Ordering and sorting" + msgstr "Csoportosítás és sorrend" + + #: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 + msgid "Organization" + msgstr "Cég, szervezet" + + #: html/Approvals/Elements/Approve:34 + #. ($approving->Id, $approving->Subject) + msgid "Originating ticket: #%1" + msgstr "" + + #: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 + msgid "Over time, priority moves toward" + msgstr "Prioritás idõvel emelkedik" + + #: html/RTFM/index.html:19 + msgid "Overview" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:87 + msgid "Own tickets" + msgstr "Saját problémák" + + #: lib/RT/Queue_Overlay.pm:87 + msgid "OwnTicket" + msgstr "" + + #: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 + msgid "Owner" + msgstr "Tulajdonos" + + #: lib/RT/Ticket_Overlay.pm:3004 + #. ($OldOwnerObj->Name, $NewOwnerObj->Name) + msgid "Owner changed from %1 to %2" + msgstr "Tulajdonosváltás: %1 --> %2" + + #: lib/RT/Transaction_Overlay.pm:584 + #. ($Old->Name , $New->Name) + msgid "Owner forcibly changed from %1 to %2" + msgstr "Erõszakos tulajdonosváltás: %1 --> %2" + + #: html/Search/Elements/PickRestriction:31 + msgid "Owner is" + msgstr "A tulajdonos" + + #: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 + msgid "Pager" + msgstr "" + + #: html/Admin/Elements/ModifyUser:74 + msgid "PagerPhone" + msgstr "" + + #: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 + msgid "Parents" + msgstr "Felmenõk" + + #: html/Elements/Login:43 html/User/Prefs.html:61 + msgid "Password" + msgstr "Jelszó" + + #: html/NoAuth/Reminder.html:25 + msgid "Password Reminder" + msgstr "Jelszó-emlékeztetõ" + + #: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 + msgid "Password too short" + msgstr "A jelszó túl rövid!" + + #: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 + #. (loc_fuzzy($msg)) + msgid "Password: %1" + msgstr "Jelszó: %1" + + #: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 + msgid "People" + msgstr "Résztvevõk" + + #: etc/initialdata:126 + msgid "Perform a user-defined action" + msgstr "" + + #: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 + msgid "Permission Denied" + msgstr "Hozzáférés visszautasítva" + + #: html/User/Elements/Tabs:35 + msgid "Personal Groups" + msgstr "Saját Csoportok" + + #: html/User/Groups/index.html:30 html/User/Groups/index.html:40 + msgid "Personal groups" + msgstr "Saját csoportok" + + #: html/User/Elements/DelegateRights:37 + msgid "Personal groups:" + msgstr "Saját csoportok:" + + #: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 + msgid "Phone numbers" + msgstr "Telefonszámok" + + #: html/Admin/Users/Rights.html:25 + msgid "Placeholder" + msgstr "" + + #: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 + msgid "Preferences" + msgstr "Beállításaim" + + #: NOT FOUND IN SOURCE + msgid "Prefs" + msgstr "" + + #: lib/RT/Action/Generic.pm:160 + msgid "Prepare Stubbed" + msgstr "" + + #: html/Ticket/Elements/Tabs:61 + msgid "Prev" + msgstr "Elõzõ" + + #: html/Search/Listing.html:44 + msgid "Previous page" + msgstr "Elõzõ oldal" + + #: NOT FOUND IN SOURCE + msgid "Pri" + msgstr "" + + #: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 + #. ($args{'PrincipalId'}) + msgid "Principal %1 not found." + msgstr "%1 vezetõ nem található." + + #: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 + msgid "Priority" + msgstr "Prioritás" + + #: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 + msgid "Priority starts at" + msgstr "Prioritás kezdõ értéke" + + #: etc/initialdata:25 + msgid "Privileged" + msgstr "Kiemelt" + + #: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 + #. (loc_fuzzy($msg)) + msgid "Privileged status: %1" + msgstr "" + + #: html/Admin/Users/index.html:62 + msgid "Privileged users" + msgstr "Kiemelt felhasználók:" + + #: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 + msgid "Pseudogroup for internal use" + msgstr "" + + #: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 + msgid "Queue" + msgstr "Sor" + + #: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 + #. ($Queue) + #. ($id) + msgid "Queue %1 not found" + msgstr "%2 sor nem található" + + #: NOT FOUND IN SOURCE + msgid "Queue '%1' not found\\n" + msgstr "" + + #: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 + msgid "Queue Name" + msgstr "A sor neve" + + #: NOT FOUND IN SOURCE + msgid "Queue Scrips" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:263 + msgid "Queue already exists" + msgstr "Sor már létezik" + + #: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 + msgid "Queue could not be created" + msgstr "A sor nem hozható létre" + + #: html/Ticket/Create.html:209 + msgid "Queue could not be loaded." + msgstr "a sor nem tölthetõ be." + + #: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 + msgid "Queue created" + msgstr "A sor létrehozva" + + #: NOT FOUND IN SOURCE + msgid "Queue is not specified." + msgstr "" + + #: html/SelfService/Display.html:129 + msgid "Queue not found" + msgstr "A sor nem található" + + #: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 + msgid "Queues" + msgstr "Sorok" + + #: RTFM + msgid "Quick search" + msgstr "Gyors keresés" + + #: html/Elements/Login:34 + #. ($RT::VERSION) + msgid "RT %1" + msgstr "RT %1" + + #: docs/design_docs/string-extraction-guide.txt:70 + #. ($RT::VERSION, $RT::rtname) + msgid "RT %1 for %2" + msgstr "RT %1 %2-nek" + + #: html/Elements/Footer:32 + #. ($RT::VERSION) + msgid "" + "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, " + "LLC</a>." + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" + msgstr "" + + #: html/Admin/index.html:25 html/Admin/index.html:26 + msgid "RT Administration" + msgstr "Konfiguráció" + + #: NOT FOUND IN SOURCE + msgid "RT Authentication error." + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "RT Bounce: %1" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "RT Configuration error" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "RT Critical error. Message not recorded!" + msgstr "" + + #: html/Elements/Error:41 html/SelfService/Error.html:41 + msgid "RT Error" + msgstr "RT Hiba" + + #: NOT FOUND IN SOURCE + msgid "RT Received mail (%1) from itself." + msgstr "" + + #: html/RTFM/Error:36 + msgid "RTFM Error" + msgstr "RTFM Hiba" + + #: html/SelfService/Closed.html:25 + msgid "Closed Tickets" + msgstr "Lezárt problémák" + + #: html/index.html:25 html/index.html:28 + msgid "RT at a glance" + msgstr "Áttekintés" + + #: NOT FOUND IN SOURCE + msgid "RT couldn't authenticate you" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "RT couldn't find requestor via its external database lookup" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "RT couldn't find the queue: %1" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "RT couldn't validate this PGP signature. \\n" + msgstr "" + + #: html/Elements/PageLayout:26 + #. ($RT::rtname) + msgid "RT for %1" + msgstr " %1 -- Request Tracker " + + #: NOT FOUND IN SOURCE + msgid "RT for %1: %2" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "RT has proccessed your commands" + msgstr "Az RT feldolgozta a parancsait" + + #: html/Elements/Login:83 + #. ('2003') + 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 © Copyright 1996-%1 Jesse Vincent " + "<jesse@bestpractical.com>.<br>\n" + "Közzétéve a <a href=\"http://www.gnu.org/copyleft/gpl.html\">GNU General " + "Public License 2. verziója</a> szerint." + + #: NOT FOUND IN SOURCE + msgid "RT thinks this message may be a bounce" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "RT will process this message as if it were unsigned.\\n" + 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 "" + + #: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 + msgid "Real Name" + msgstr "Valódi név" + + #: html/Admin/Elements/ModifyUser:48 + msgid "RealName" + msgstr "Valós név" + + #: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 + msgid "Referred to by" + msgstr "A következõk kapcsolódnak hozzá" + + #: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 + msgid "Refers to" + msgstr "A következõkhöz kapcsolódik" + + #: NOT FOUND IN SOURCE + msgid "Refine" + msgstr "Finomítás" + + #: html/Search/Elements/PickRestriction:27 + msgid "Refine search" + msgstr "Keresés finomítása" + + #: html/Elements/Refresh:36 + #. ($value/60) + msgid "Refresh this page every %1 minutes." + msgstr "%1 percenként frissítse ezt az oldalt." + + #: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 + msgid "Relationships" + msgstr "Kapcsolatok" + + #: html/Search/Bulk.html:93 + msgid "Remove AdminCc" + msgstr "Adminisztratív tájékoztatást kapó eltávolítása" + + #: html/Search/Bulk.html:91 + msgid "Remove Cc" + msgstr "Tájékoztatást kapó eltávolítása" + + #: html/Search/Bulk.html:89 + msgid "Remove Requestor" + msgstr "Beküldõ eltávolítása" + + #: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 + msgid "Reply" + msgstr "Válaszol" + + #: lib/RT/Queue_Overlay.pm:85 + msgid "Reply to tickets" + msgstr "Válasz a problémákra" + + #: lib/RT/Queue_Overlay.pm:85 + msgid "ReplyToTicket" + msgstr "" + + #: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 + msgid "Requestor" + msgstr "Beküldõ" + + #: html/Search/Elements/PickRestriction:38 + msgid "Requestor email address" + msgstr "A beküldõ e-mail címe" + + #: NOT FOUND IN SOURCE + msgid "Requestor(s)" + msgstr "Beküldõ" + + #: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 + msgid "Requestors" + msgstr "Beküldõ" + + #: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 + msgid "Requests should be due in" + msgstr "A problémát meg kell oldani" + + #: html/Elements/Submit:62 + msgid "Reset" + msgstr "Visszaállít" + + #: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 + msgid "Residence" + msgstr "Otthoni" + + #: html/Ticket/Elements/Tabs:132 + msgid "Resolve" + msgstr "Lezár" + + #: html/Ticket/Update.html:133 + #. ($Ticket->id, $Ticket->Subject) + msgid "Resolve ticket #%1 (%2)" + msgstr "%1. (%2) probléma lezárása" + + #: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 + msgid "Resolved" + msgstr "Lezárva" + + #: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 + msgid "Response to requestors" + msgstr "Válasz a beküldõknek (adatbázisban rögzítve)" + + #: html/Elements/ListActions:26 + msgid "Results" + msgstr "Változtatások eredménye" + + #: html/Search/Elements/PickRestriction:105 + msgid "Results per page" + msgstr "Találatok száma oldalanként" + + #: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 + msgid "Retype Password" + msgstr "Jelszó megismételve" + + #: NOT FOUND IN SOURCE + msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" + msgstr "" + + #: lib/RT/ACE_Overlay.pm:613 + msgid "Right Delegated" + msgstr "" + + #: lib/RT/ACE_Overlay.pm:303 + msgid "Right Granted" + msgstr "A jog megosztva" + + #: lib/RT/ACE_Overlay.pm:161 + msgid "Right Loaded" + msgstr "A jog betöltve" + + #: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 + msgid "Right could not be revoked" + msgstr "A jog nem vonnható vissza" + + #: html/User/Delegation.html:64 + msgid "Right not found" + msgstr "A jog nem található" + + #: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 + msgid "Right not loaded." + msgstr "A jog nem található." + + #: lib/RT/ACE_Overlay.pm:689 + msgid "Right revoked" + msgstr "Jog visszavonva" + + #: html/Admin/Elements/UserTabs:41 + msgid "Rights" + msgstr "Jogok" + + #: lib/RT/Interface/Web.pm:758 + #. ($object_type) + msgid "Rights could not be granted for %1" + msgstr "" + + #: lib/RT/Interface/Web.pm:791 + #. ($object_type) + msgid "Rights could not be revoked for %1" + msgstr " %1 jogai nem vonhatók vissza" + + #: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 + msgid "Roles" + msgstr "Szerepek" + + #: NOT FOUND IN SOURCE + msgid "RootApproval" + msgstr "" + + #: lib/RT/Date.pm:393 + msgid "Sat." + msgstr "Szo" + + #: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 + msgid "Save Changes" + msgstr "Változtatások mentése" + + #: html/Ticket/ModifyLinks.html:39 + msgid "Save changes" + msgstr "Változtatások mentése" + + #: html/Admin/Global/Scrip.html:49 + #. ($ARGS{'id'}) + msgid "Scrip #%1" + msgstr "" + + #: lib/RT/Scrip_Overlay.pm:176 + msgid "Scrip Created" + msgstr "Scrip létrehozva" + + #: html/Admin/Elements/EditScrips:84 + msgid "Scrip deleted" + msgstr "Scrip törölve" + + #: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 + msgid "Scrips" + msgstr "Scrips" + + #: NOT FOUND IN SOURCE + msgid "Scrips for %1\\n" + msgstr "Scrips %1-hez\\n" + + #: html/Admin/Queues/Scrips.html:33 + msgid "Scrips which apply to all queues" + msgstr "Minden sorhoz érvényes Scripek" + + #: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 + msgid "Search" + msgstr "Keresés" + + #: NOT FOUND IN SOURCE + msgid "Search Criteria" + msgstr "" + + #: html/Approvals/Elements/PendingMyApproval:39 + msgid "Search for approvals" + msgstr "Engedélyezések keresése" + + #: html/RTFM/Article/Search.html:19 + msgid "Search for articles" + msgstr "" + + #: bin/rt-crontool:188 + msgid "Security:" + msgstr "Biztonság:" + + #: lib/RT/Queue_Overlay.pm:67 + msgid "SeeQueue" + msgstr "" + + #: RTFM + msgid "Select a Class" + msgstr "" + + #: RTFM + msgid "Select a Custom Fields" + msgstr "" + + #: html/Admin/Groups/index.html:40 + msgid "Select a group" + msgstr "Válasszon csoportot!" + + #: NOT FOUND IN SOURCE + msgid "Select a queue" + msgstr "" + + #: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 + msgid "Select a user" + msgstr "Válasszon felhasználót!" + + #: RTFM + msgid "Select class" + msgstr "" + + #: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 + msgid "Select custom field" + msgstr "Válasszon egy egyéni mezõt!" + + #: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 + msgid "Select group" + msgstr "Válasszon csoportot!" + + #: lib/RT/CustomField_Overlay.pm:355 + msgid "Select multiple values" + msgstr "Válasszon több értéket!" + + #: lib/RT/CustomField_Overlay.pm:352 + msgid "Select one value" + msgstr "Válasszon értéket!" + + #: html/Admin/Elements/QueueTabs:67 + msgid "Select queue" + msgstr "Válasszon sort!" + + #: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 + msgid "Select scrip" + msgstr "Válasszon Scripet!" + + #: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 + msgid "Select template" + msgstr "Válasszon sablont!" + + #: html/Admin/Elements/UserTabs:49 + msgid "Select user" + msgstr "Válasszon felhasználót" + + #: lib/RT/CustomField_Overlay.pm:36 + msgid "SelectMultiple" + msgstr "" + + #: lib/RT/CustomField_Overlay.pm:35 + msgid "SelectSingle" + msgstr "" + + #: html/SelfService/index.html:25 + msgid "Self Service" + msgstr "" + + #: etc/initialdata:114 + msgid "Send mail to all watchers" + msgstr "" + + #: etc/initialdata:110 + msgid "Send mail to all watchers as a \"comment\"" + msgstr "" + + #: etc/initialdata:105 + msgid "Send mail to requestors and Ccs" + msgstr "" + + #: etc/initialdata:100 + msgid "Send mail to requestors and Ccs as a comment" + msgstr "" + + #: etc/initialdata:79 + msgid "Sends a message to the requestors" + msgstr "" + + #: etc/initialdata:118 etc/initialdata:122 + msgid "Sends mail to explicitly listed Ccs and Bccs" + msgstr "" + + #: etc/initialdata:95 + msgid "Sends mail to the administrative Ccs" + msgstr "" + + #: etc/initialdata:91 + msgid "Sends mail to the administrative Ccs as a comment" + msgstr "" + + #: etc/initialdata:83 etc/initialdata:87 + msgid "Sends mail to the owner" + msgstr "" + + #: lib/RT/Date.pm:419 + msgid "Sep." + msgstr "szep." + + #: RTFM + msgid "Seperate multiple URLs with spaces" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Show Results" + msgstr "" + + #: RTFM + msgid "Show advanced search options..." + msgstr "" + + #: html/Approvals/Elements/PendingMyApproval:44 + msgid "Show approved requests" + msgstr "Láthatóak legyenek a felszabadított problémák" + + #: html/Ticket/Create.html:144 html/Ticket/Create.html:34 + msgid "Show basics" + msgstr "Problémaleírás" + + #: html/Approvals/Elements/PendingMyApproval:45 + msgid "Show denied requests" + msgstr "láthatóak legyenek az elutasított problémák" + + #: html/Ticket/Create.html:144 html/Ticket/Create.html:34 + msgid "Show details" + msgstr "Attribútumok" + + #: html/Approvals/Elements/PendingMyApproval:43 + msgid "Show pending requests" + msgstr "Láthatóak legyenek a folyamatban levõ problémák" + + #: html/Approvals/Elements/PendingMyApproval:46 + msgid "Show requests awaiting other approvals" + msgstr "Láthatóak legyenek a mások engedélyezésére váró problémák" + + #: lib/RT/Queue_Overlay.pm:81 + msgid "Show ticket private commentary" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:79 + msgid "Show ticket summaries" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:69 + msgid "ShowACL" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:78 + msgid "ShowScrips" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:75 + msgid "ShowTemplate" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:79 + msgid "ShowTicket" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:81 + msgid "ShowTicketComments" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:82 + msgid "Sign up as a ticket Requestor or ticket or queue Cc" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:83 + msgid "Sign up as a ticket or queue AdminCc" + msgstr "" + + #: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 + msgid "Signature" + msgstr "Aláírás (e-mail-hez)" + + #: html/SelfService/Elements/Header:52 + #. ($session{'CurrentUser'}->Name) + msgid "Signed in as %1" + msgstr "Bejelentkezett mint %1" + + #: html/Admin/Elements/SelectSingleOrMultiple:26 + msgid "Single" + msgstr "" + + #: html/Elements/Header:51 + msgid "Skip Menu" + msgstr "" + + #: html/Admin/Elements/EditCustomFieldValues:31 + msgid "Sort key" + msgstr "" + + #: html/Search/Elements/PickRestriction:109 + msgid "Sort results by" + msgstr "A találatok csoportosítása a következõ jellemzõ szerint:" + + #: RTFM + msgid "Sort Order" + msgstr "" + + #: html/Admin/Elements/AddCustomFieldValue:25 + msgid "SortOrder" + msgstr "" + + #: RTFM + msgid "Summary" + msgstr "" + + #: RTFM + msgid "Summary matches" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Stalled" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Start page" + msgstr "" + + #: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 + msgid "Started" + msgstr "Elkezdve" + + #: NOT FOUND IN SOURCE + msgid "Started date '%1' could not be parsed" + msgstr "" + + #: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 + msgid "Starts" + msgstr "Kiosztva" + + #: NOT FOUND IN SOURCE + msgid "Starts By" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Starts date '%1' could not be parsed" + msgstr "" + + #: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 + msgid "State" + msgstr "Állam" + + #: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 + msgid "Status" + msgstr "Státusz" + + #: etc/initialdata:288 + msgid "Status Change" + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:530 + #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) + msgid "Status changed from %1 to %2" + msgstr "Státusz változtatása: '%1' --> '%2'" + + #: NOT FOUND IN SOURCE + msgid "StatusChange" + msgstr "" + + #: html/Ticket/Elements/Tabs:147 + msgid "Steal" + msgstr "Elcsen" + + #: lib/RT/Transaction_Overlay.pm:589 + #. ($Old->Name) + msgid "Stolen from %1 " + msgstr "Probléma elcsenése %1 tulajdonostól" + + #: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 + msgid "Subject" + msgstr "Tárgy" + + #: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 + #. ($self->Data) + msgid "Subject changed to %1" + msgstr "" + + #: html/Elements/Submit:59 + msgid "Submit" + msgstr "Mentés" + + #: NOT FOUND IN SOURCE + msgid "Submit Query" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Submit Workflow" + msgstr "" + + #: lib/RT/Group_Overlay.pm:749 + msgid "Succeeded" + msgstr "Sikerült" + + #: lib/RT/Date.pm:394 + msgid "Sun." + msgstr "V" + + #: lib/RT/System.pm:54 + msgid "SuperUser" + msgstr "" + + #: html/User/Elements/DelegateRights:77 + msgid "System" + msgstr "Rendszer" + + #: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 + msgid "System Error" + msgstr "Rendszerhiba" + + #: lib/RT/ACE_Overlay.pm:616 + msgid "System error. Right not delegated." + msgstr "Rendszerhiba. Jog nem delegálható ." + + #: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 + msgid "System error. Right not granted." + msgstr "Rendszerhiba. Jog nem adható." + + #: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 + msgid "System groups" + msgstr "Rendszercsoportok" + + #: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 + msgid "SystemRolegroup for internal use" + msgstr "" + + #: lib/RT/CurrentUser.pm:320 + msgid "TEST_STRING" + msgstr "" + + #: html/Ticket/Elements/Tabs:143 + msgid "Take" + msgstr "Átvesz" + + #: lib/RT/Transaction_Overlay.pm:575 + msgid "Taken" + msgstr "Probléma átvétele" + + #: html/Admin/Elements/EditScrip:81 + msgid "Template" + msgstr "Sablon" + + #: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 + #. ($TemplateObj->Id()) + msgid "Template #%1" + msgstr "Sablon #%1" + + #: html/Admin/Elements/EditTemplates:89 + msgid "Template deleted" + msgstr "Sablon törölve" + + #: lib/RT/Scrip_Overlay.pm:153 + msgid "Template not found" + msgstr "Sablon nem található" + + #: NOT FOUND IN SOURCE + msgid "Template not found\\n" + msgstr "" + + #: lib/RT/Template_Overlay.pm:347 + msgid "Template parsed" + msgstr "Sablon beolvasva" + + #: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 + msgid "Templates" + msgstr "Sablonok" + + #: NOT FOUND IN SOURCE + msgid "Templates for %1\\n" + msgstr "Sablonok %1\\n" + + #: lib/RT/Interface/Web.pm:858 + msgid "That is already the current value" + msgstr "Már ez az aktuális érték" + + #: lib/RT/CustomField_Overlay.pm:178 + msgid "That is not a value for this custom field" + msgstr "Egyéni mezõhöz érvénytelen értek" + + #: lib/RT/Ticket_Overlay.pm:1886 + msgid "That is the same value" + msgstr "Ez ugyanaz az érték" + + #: lib/RT/Queue_Overlay.pm:633 + #. ($args{'Type'}) + msgid "That principal is already a %1 for this queue" + msgstr "A vezetõ már %1-a a sornak" + + #: lib/RT/Ticket_Overlay.pm:1434 + #. ($self->loc($args{'Type'})) + msgid "That principal is already a %1 for this ticket" + msgstr "A vezetõ már %1-a a problémának" + + #: lib/RT/Queue_Overlay.pm:732 + #. ($args{'Type'}) + msgid "That principal is not a %1 for this queue" + msgstr "A vezetõ már nem %1-a a sornak" + + #: lib/RT/Ticket_Overlay.pm:1551 + #. ($args{'Type'}) + msgid "That principal is not a %1 for this ticket" + msgstr "A vezetõ már nem %1-a a prpblémának" + + #: lib/RT/Ticket_Overlay.pm:1882 + msgid "That queue does not exist" + msgstr "Ez a sor nem létezik" + + #: lib/RT/Ticket_Overlay.pm:3143 + msgid "That ticket has unresolved dependencies" + msgstr "" + + #: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 + msgid "That user already has that right" + msgstr "A felhasználónak mát van ilyen joga" + + #: lib/RT/Ticket_Overlay.pm:2952 + msgid "That user already owns that ticket" + msgstr "Már ez a felhasználó a tulajdonos!" + + #: lib/RT/Ticket_Overlay.pm:2918 + msgid "That user does not exist" + msgstr "Ilyen felhasználó nem létezik" + + #: lib/RT/User_Overlay.pm:315 + msgid "That user is already privileged" + msgstr "A felhasználó már kiemelt" + + #: lib/RT/User_Overlay.pm:332 + msgid "That user is already unprivileged" + msgstr "A felhasználó már nem kiemelt" + + #: lib/RT/User_Overlay.pm:327 + msgid "That user is now privileged" + msgstr "A felhasználó mostantól kiemelt" + + #: lib/RT/User_Overlay.pm:344 + msgid "That user is now unprivileged" + msgstr "A felhasználó mostantól nem kiemelt" + + #: lib/RT/Ticket_Overlay.pm:2944 + msgid "That user may not own tickets in that queue" + msgstr "a felhasználóhoz nem tartozhatnak problémák ebbõl a sorból" + + #: lib/RT/Link_Overlay.pm:206 + msgid "That's not a numerical id" + msgstr "" + + #: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 + msgid "The Basics" + msgstr "Alapadatok" + + #: lib/RT/ACE_Overlay.pm:88 + msgid "The CC of a ticket" + msgstr "" + + #: lib/RT/ACE_Overlay.pm:89 + msgid "The administrative CC of a ticket" + msgstr "" + + #: lib/RT/Ticket_Overlay.pm:2213 + msgid "The comment has been recorded" + msgstr "Kiegészítés rögzítve." + + #: bin/rt-crontool:198 + 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 "" + + #: bin/rt-commit-handler:756 bin/rt-commit-handler:766 + msgid "The following commands were not proccessed:\\n\\n" + msgstr "" + + #: lib/RT/Interface/Web.pm:861 + msgid "The new value has been set." + msgstr "" + + #: lib/RT/ACE_Overlay.pm:86 + msgid "The owner of a ticket" + msgstr "" + + #: lib/RT/ACE_Overlay.pm:87 + msgid "The requestor of a ticket" + msgstr "" + + #: html/Admin/Elements/EditUserComments:26 + msgid "These comments aren't generally visible to the user" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "This ticket %1 %2 (%3)\\n" + msgstr "" + + #: bin/rt-crontool:189 + msgid "" + "This tool allows the user to run arbitrary perl modules from within RT." + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:253 + msgid "This transaction appears to have no content" + msgstr "Diese Transaktion scheint keinen Inhalt zu haben" + + #: html/Ticket/Elements/ShowRequestor:47 + #. ($rows) + msgid "This user's %1 highest priority tickets" + msgstr "A felhasználó által felvetett %1 legsürgõsebb probléma" + + #: NOT FOUND IN SOURCE + msgid "This user's 25 highest priority tickets" + msgstr "" + + #: lib/RT/Date.pm:391 + msgid "Thu." + msgstr "Cs" + + #: NOT FOUND IN SOURCE + msgid "Ticket # %1 %2" + msgstr "" + + #: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 + #. ($Ticket->Id, $Ticket->Subject) + msgid "Ticket #%1 Jumbo update: %2" + msgstr "%1. számú (%2) probléma jellemzõinek módosítása" + + #: html/Approvals/Elements/ShowDependency:46 + #. ($link->BaseObj->Id, $link->BaseObj->Subject) + msgid "Ticket #%1: %2" + msgstr "Probléma. %1: %2" + + #: lib/RT/Ticket_Overlay.pm:608 + #. ($self->Id, $QueueObj->Name) + msgid "Ticket %1 created in queue '%2'" + msgstr "" + + #: bin/rt-commit-handler:760 + #. ($Ticket->Id) + msgid "Ticket %1 loaded\\n" + msgstr "" + + #: html/Search/Bulk.html:181 + #. ($Ticket->Id,$_) + msgid "Ticket %1: %2" + msgstr "Probléma %1: %2" + + #: html/Ticket/History.html:25 html/Ticket/History.html:28 + #. ($Ticket->Id, $Ticket->Subject) + msgid "Ticket History # %1 %2" + msgstr "" + + #: html/SelfService/Display.html:34 + msgid "Ticket Id" + msgstr "Problma száma" + + #: etc/initialdata:303 + msgid "Ticket Resolved" + msgstr "Pobléma megoldva" + + #: html/Search/Elements/PickRestriction:63 + msgid "Ticket attachment" + msgstr "A probléma csatolt fájljának" + + #: lib/RT/Tickets_Overlay.pm:1166 + msgid "Ticket content" + msgstr "A probléma tartalma" + + #: lib/RT/Tickets_Overlay.pm:1212 + msgid "Ticket content type" + msgstr "" + + #: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 + msgid "Ticket could not be created due to an internal error" + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:522 + msgid "Ticket created" + msgstr "Probléma felvétele" + + #: NOT FOUND IN SOURCE + msgid "Ticket creation failed" + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:527 + msgid "Ticket deleted" + msgstr "Probléma törlése" + + #: html/REST/1.0/modify:29 html/REST/1.0/update:34 + msgid "Ticket id not found" + msgstr "" + + #: html/REST/1.0/modify:36 html/REST/1.0/update:41 + msgid "Ticket not found" + msgstr "A probléma nem található" + + #: etc/initialdata:289 + msgid "Ticket status changed" + msgstr "" + + #: html/Ticket/Update.html:39 + msgid "Ticket watchers" + msgstr "A problémában érintett személyek" + + #: html/Elements/Tabs:49 + msgid "Tickets" + msgstr "Problémák" + + #: lib/RT/Tickets_Overlay.pm:1383 + #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) + msgid "Tickets %1 %2" + msgstr "" + + #: lib/RT/Tickets_Overlay.pm:1348 + #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) + msgid "Tickets %1 by %2" + msgstr "" + + #: html/Elements/ViewUser:26 + #. ($name) + msgid "Tickets from %1" + msgstr "" + + #: html/Approvals/Elements/ShowDependency:27 + msgid "Tickets which depend on this approval:" + msgstr "" + + #: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 + msgid "Time Left" + msgstr "Maradék idõ" + + #: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 + msgid "Time Worked" + msgstr "Ráfordított munkaidõ" + + #: lib/RT/Tickets_Overlay.pm:1139 + msgid "Time left" + msgstr "Maradék idõ" + + #: RTFM + msgid "till" + msgstr "amig" + + #: html/Elements/Footer:36 + msgid "Time to display" + msgstr "" + + #: lib/RT/Tickets_Overlay.pm:1115 + msgid "Time worked" + msgstr "Munkaidõ" + + #: lib/RT/Ticket_Overlay.pm:1165 + msgid "TimeWorked" + msgstr "Ráfordított munkaidõ" + + #: bin/rt-commit-handler:402 + msgid "To generate a diff of this commit:" + msgstr "" + + #: bin/rt-commit-handler:391 + msgid "To generate a diff of this commit:\\n" + msgstr "" + + #: lib/RT/Ticket_Overlay.pm:1168 + msgid "Told" + msgstr "Beérkezett" + + #: etc/initialdata:237 + msgid "Transaction" + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:642 + #. ($self->Data) + msgid "Transaction %1 purged" + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:177 + msgid "Transaction Created" + msgstr "" + + #: lib/RT/Transaction_Overlay.pm:89 + msgid "Transaction->Create couldn't, as you didn't specify a ticket id" + msgstr "" + "A problémát nem sikerült felvenni (Transaction->Create), mert nincs sorszám " + "megadva." + + #: lib/RT/Transaction_Overlay.pm:701 + msgid "Transactions are immutable" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "Trying to delete a right: %1" + msgstr "" + + #: lib/RT/Date.pm:389 + msgid "Tue." + msgstr "K" + + #: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 + msgid "Type" + msgstr "Típus" + + #: html/RTFM/Article/delete.html:59 + msgid "Unable to load article" + msgstr "" + + #: lib/RT/ScripCondition_Overlay.pm:104 + msgid "Unimplemented" + msgstr "" + + #: html/Admin/Users/Modify.html:68 + msgid "Unix login" + msgstr "" + + #: html/Admin/Elements/ModifyUser:62 + msgid "UnixUsername" + msgstr "" + + #: lib/RT/Attachment_Overlay.pm:265 + #. ($self->ContentEncoding) + msgid "Unknown ContentEncoding %1" + msgstr "" + + #: html/Elements/SelectResultsPerPage:37 + msgid "Unlimited" + msgstr "korlátlan" + + #: etc/initialdata:32 + msgid "Unprivileged" + msgstr "Nem kiemelt" + + #: lib/RT/Transaction_Overlay.pm:571 + msgid "Untaken" + msgstr "Probléma visszaadása" + + #: html/Elements/MyTickets:64 html/Search/Bulk.html:33 + msgid "Update" + msgstr "Frissít" + + #: html/Admin/Users/Prefs.html:62 + msgid "Update ID" + msgstr "" + + #: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 + msgid "Update Type" + msgstr "Frissítés típusa" + + #: html/Search/Listing.html:61 + msgid "Update all these tickets at once" + msgstr "Az összes probléma aktualizálása" + + #: html/Admin/Users/Prefs.html:49 + msgid "Update email" + msgstr "" + + #: html/Admin/Users/Prefs.html:55 + msgid "Update name" + msgstr "" + + #: lib/RT/Interface/Web.pm:375 + msgid "Update not recorded." + msgstr "" + + #: html/Search/Bulk.html:81 + msgid "Update selected tickets" + msgstr "A kiválasztott problémák frissítése" + + #: html/Admin/Users/Prefs.html:36 + msgid "Update signature" + msgstr "" + + #: html/Ticket/ModifyAll.html:63 + msgid "Update ticket" + msgstr "" + + #: html/SelfService/Update.html:25 html/SelfService/Update.html:27 + #. ($Ticket->id) + msgid "Update ticket # %1" + msgstr "" + + #: html/SelfService/Update.html:50 + #. ($Ticket->id) + msgid "Update ticket #%1" + msgstr "" + + #: html/Ticket/Update.html:135 + #. ($Ticket->id, $Ticket->Subject) + msgid "Update ticket #%1 (%2)" + msgstr "%1. számú (%2) probléma aktualizálása" + + #: lib/RT/Interface/Web.pm:373 + msgid "Update type was neither correspondence nor comment." + msgstr "" + + #: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 + msgid "Updated" + msgstr "Frissítve" + + #: html/RTFM/Article/ExtractFromTicket.html:26 + msgid "" + "Use the dropdown menus to select which transactions you want to extract into " + "a new RTFM article" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "User %1 %2: %3\\n" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "User %1 Password: %2\\n" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "User '%1' not found" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "User '%1' not found\\n" + msgstr "" + + #: etc/initialdata:125 etc/initialdata:191 + msgid "User Defined" + msgstr "Felhasználó által meghatározott" + + #: html/Admin/Users/Prefs.html:59 + msgid "User ID" + msgstr "Felhasználói név" + + #: html/Elements/SelectUsers:26 + msgid "User Id" + msgstr "Felhasználói név" + + #: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 + msgid "User Rights" + msgstr "Felhasználói jogok" + + #: html/Admin/Users/Modify.html:226 + #. ($msg) + msgid "User could not be created: %1" + msgstr "" + + #: lib/RT/User_Overlay.pm:262 + msgid "User created" + msgstr "Felhasználó létrehozva" + + #: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 + msgid "User defined groups" + msgstr "Felhasználó által definiált csoport" + + #: NOT FOUND IN SOURCE + msgid "User notified" + msgstr "" + + #: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 + msgid "User view" + msgstr "" + + #: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 + msgid "Username" + msgstr "Felhasználó" + + #: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 + msgid "Users" + msgstr "Felhasználók" + + #: html/Admin/Users/index.html:65 + msgid "Users matching search criteria" + msgstr "" + + #: html/Search/Elements/PickRestriction:51 + msgid "ValueOfQueue" + msgstr "" + + #: html/Admin/Elements/EditCustomField:40 + msgid "Values" + msgstr "Értékek" + + #: lib/RT/Queue_Overlay.pm:82 + msgid "Watch" + msgstr "" + + #: lib/RT/Queue_Overlay.pm:83 + msgid "WatchAsAdminCc" + msgstr "" + + #: html/Admin/Elements/QueueTabs:42 + msgid "Watchers" + msgstr "Résztvevõk" + + #: html/Admin/Elements/ModifyUser:56 + msgid "WebEncoding" + msgstr "" + + #: lib/RT/Date.pm:390 + msgid "Wed." + msgstr "Sze" + + #: etc/upgrade/2.1.71:161 + msgid "" + "When a ticket has been approved by all approvers, add correspondence to the " + "original ticket" + msgstr "" + + #: etc/upgrade/2.1.71:135 + msgid "" + "When a ticket has been approved by any approver, add correspondence to the " + "original ticket" + msgstr "" + + #: etc/initialdata:138 + msgid "When a ticket is created" + msgstr "" + + #: etc/upgrade/2.1.71:79 + msgid "" + "When an approval ticket is created, notify the Owner and AdminCc of the item " + "awaiting their approval" + msgstr "" + + #: etc/initialdata:143 + msgid "When anything happens" + msgstr "" + + #: etc/initialdata:184 + msgid "Whenever a ticket is resolved" + msgstr "" + + #: etc/initialdata:170 + msgid "Whenever a ticket's owner changes" + msgstr "" + + #: etc/initialdata:178 + msgid "Whenever a ticket's queue changes" + msgstr "" + + #: etc/initialdata:162 + msgid "Whenever a ticket's status changes" + msgstr "" + + #: etc/initialdata:192 + msgid "Whenever a user-defined condition occurs" + msgstr "" + + #: etc/initialdata:156 + msgid "Whenever comments come in" + msgstr "" + + #: etc/initialdata:149 + msgid "Whenever correspondence comes in" + msgstr "" + + #: html/RTFM/Article/Elements/ShowSearchCriteria:64 + msgid "Which refer to" + msgstr "" + + #: html/RTFM/Article/Elements/ShowSearchCriteria:64 + msgid "Which are referred to by " + msgstr "" + + #: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 + msgid "Work" + msgstr "Munkahelyi" + + #: html/Admin/Elements/ModifyUser:70 + msgid "WorkPhone" + msgstr "Munkahelyi telefon" + + #: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 + msgid "Worked" + msgstr "Munkaidõ" + + #: RTFM + msgid "Yes" + msgstr "Igen" + + #: lib/RT/Ticket_Overlay.pm:3056 + msgid "You already own this ticket" + msgstr "Már az öné ez a probléma" + + #: html/autohandler:121 + msgid "You are not an authorized user" + msgstr "" + + #: lib/RT/Ticket_Overlay.pm:2930 + msgid "You can only reassign tickets that you own or that are unowned" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "You don't have permission to view that ticket.\\n" + msgstr "" + + #: docs/design_docs/string-extraction-guide.txt:47 + #. ($num, $queue) + msgid "You found %1 tickets in queue %2" + msgstr "%1 Problémát talált a %2 sorban" + + #: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 + msgid "You have been logged out of RT." + msgstr "Kilépett a Request Tracker programból." + + #: html/SelfService/Display.html:134 + msgid "You have no permission to create tickets in that queue." + msgstr "Nincs joga létrehozni problémákat ebben a sorban" + + #: lib/RT/Ticket_Overlay.pm:1895 + msgid "You may not create requests in that queue." + msgstr "Nem hozhat létre problémákat ebben a sorban" + + #: html/NoAuth/Logout.html:36 + msgid "You're welcome to login again" + msgstr "Itt ismét bejelentkezhetsz!" + + #: html/SelfService/Elements/MyRequests:25 + #. ($friendly_status) + msgid "Your %1 requests" + msgstr "%1 problémáim" + + #: NOT FOUND IN SOURCE + msgid "" + "Your RT administrator has misconfigured the mail aliases which invoke RT" + msgstr "" + + #: etc/initialdata:429 etc/upgrade/2.1.71:146 + msgid "" + "Your request has been approved by %1. Other approvals may still be pending." + msgstr "" + + #: etc/initialdata:463 etc/upgrade/2.1.71:180 + msgid "Your request has been approved." + msgstr "A problémája engedélyezve." + + #: NOT FOUND IN SOURCE + msgid "Your request was rejected" + msgstr "" + + #: etc/initialdata:384 etc/upgrade/2.1.71:101 + msgid "Your request was rejected." + msgstr "A problémája elutasítva." + + #: html/autohandler:136 html/autohandler:142 + msgid "Your username or password is incorrect" + msgstr "A begépelt felhasználói név vagy jelszó hibás!" + + #: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 + msgid "Zip" + msgstr "Irányítószám" + + #: html/User/Elements/DelegateRights:59 + #. ($right->PrincipalObj->Object->SelfDescription) + msgid "as granted to %1" + msgstr "%1nak engedélyezve" + + #: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 + msgid "contains" + msgstr "tartalmazza" + + #: html/Elements/SelectAttachmentField:26 + msgid "content" + msgstr "tartalma" + + #: html/Elements/SelectAttachmentField:27 + msgid "content-type" + msgstr "típusa" + + #: lib/RT/Ticket_Overlay.pm:2282 + msgid "correspondence (probably) not sent" + msgstr "" + + #: lib/RT/Ticket_Overlay.pm:2292 + msgid "correspondence sent" + msgstr "" + + #: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 + msgid "days" + msgstr "napja" + + #: html/Search/Listing.html:75 + msgid "delete" + msgstr "töröl" + + #: lib/RT/Queue_Overlay.pm:63 + msgid "deleted" + msgstr "törölve" + + #: html/Search/Elements/PickRestriction:68 + msgid "does not match" + msgstr "nem felel meg" + + #: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 + msgid "doesn't contain" + msgstr "nem tartalmazza" + + #: html/Elements/SelectEqualityOperator:38 + msgid "equal to" + msgstr "egyenlõ" + + #: html/Elements/SelectAttachmentField:28 + msgid "filename" + msgstr "fájlneve" + + #: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 + msgid "greater than" + msgstr "nagyobb mint" + + #: lib/RT/Group_Overlay.pm:194 + #. ($self->Name) + msgid "group '%1'" + msgstr " '%1' csopot" + + #: lib/RT/Date.pm:315 + msgid "hours" + msgstr "órája" + + #: NOT FOUND IN SOURCE + msgid "id" + msgstr "Sorszám" + + #: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 + msgid "is" + msgstr " == " + + #: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 + msgid "isn't" + msgstr " nem " + + #: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 + msgid "less than" + msgstr "kisebb mint" + + #: html/Search/Elements/PickRestriction:67 + msgid "matches" + msgstr "megfelel" + + #: lib/RT/Date.pm:311 + msgid "min" + msgstr "perce" + + #: html/Ticket/Update.html:66 + msgid "minutes" + msgstr "perc" + + #: bin/rt-commit-handler:765 + msgid "modifications\\n\\n" + msgstr "Változtatások" + + #: lib/RT/Date.pm:327 + msgid "months" + msgstr "hónapja" + + #: lib/RT/Queue_Overlay.pm:58 + msgid "new" + msgstr "új" + + #: html/Admin/Elements/EditScrips:43 + msgid "no value" + msgstr "Nincs érték" + + #: html/Ticket/Elements/EditWatchers:28 + msgid "none" + msgstr "senki" + + #: html/Elements/SelectEqualityOperator:38 + msgid "not equal to" + msgstr "nem egyenlõ" + + #: lib/RT/Queue_Overlay.pm:59 + msgid "open" + msgstr "Nyitott" + + #: lib/RT/Group_Overlay.pm:199 + #. ($self->Name, $user->Name) + msgid "personal group '%1' for user '%2'" + msgstr "" + + #: lib/RT/Group_Overlay.pm:207 + #. ($queue->Name, $self->Type) + msgid "queue %1 %2" + msgstr "Stapel %1 %2" + + #: lib/RT/Queue_Overlay.pm:62 + msgid "rejected" + msgstr "elutasítva" + + #: lib/RT/Queue_Overlay.pm:61 + msgid "resolved" + msgstr "megoldva" + + #: lib/RT/Date.pm:307 + msgid "sec" + msgstr "sec" + + #: lib/RT/Queue_Overlay.pm:60 + msgid "stalled" + msgstr "várakozik" + + #: lib/RT/Group_Overlay.pm:202 + #. ($self->Type) + msgid "system %1" + msgstr "rendszer %1" + + #: lib/RT/Group_Overlay.pm:213 + #. ($self->Type) + msgid "system group '%1'" + msgstr "" + + #: html/Elements/Error:42 html/SelfService/Error.html:42 + msgid "the calling component did not specify why" + msgstr "" + + #: lib/RT/Group_Overlay.pm:210 + #. ($self->Instance, $self->Type) + msgid "ticket #%1 %2" + msgstr "probléma #%1 %2" + + #: lib/RT/Group_Overlay.pm:216 + #. ($self->Id) + msgid "undescribed group %1" + msgstr "" + + #: NOT FOUND IN SOURCE + msgid "undescripbed group %1" + msgstr "" + + #: lib/RT/Group_Overlay.pm:191 + #. ($user->Object->Name) + msgid "user %1" + msgstr "felhasználó %1" + + #: lib/RT/Date.pm:323 + msgid "weeks" + msgstr "hete" + + #: NOT FOUND IN SOURCE + msgid "with template %1" + msgstr "" + + #: lib/RT/Date.pm:331 + msgid "years" + msgstr "éve" + diff --git a/rt/lib/RT/I18N/it.po b/rt/lib/RT/I18N/it.po index 55a478ba2..d3e5a5e74 100644 --- a/rt/lib/RT/I18N/it.po +++ b/rt/lib/RT/I18N/it.po @@ -366,7 +366,7 @@ msgid "(Check boxes to delete)" msgstr "(Spunta la casella per cancellare)" #: html/Ticket/Create.html:177 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Inserire il numero di tickets o gli URL, separati da spazi)" #. ($RT::CorrespondAddress) diff --git a/rt/lib/RT/I18N/ja.po b/rt/lib/RT/I18N/ja.po index c0401f869..4a67a814f 100644 --- a/rt/lib/RT/I18N/ja.po +++ b/rt/lib/RT/I18N/ja.po @@ -280,7 +280,7 @@ msgid "(Check boxes to delete)" msgstr "" #: html/Ticket/Create.html:178 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(ãƒã‚±ãƒƒãƒˆIDã¾ãŸã¯URLsを空欄ã§åŒºåˆ‡ã£ã¦å…¥åŠ›ã—ã¦ãã ã•ã„)" #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 diff --git a/rt/lib/RT/I18N/nl.po b/rt/lib/RT/I18N/nl.po index 0c3549914..fa1a24b5f 100644 --- a/rt/lib/RT/I18N/nl.po +++ b/rt/lib/RT/I18N/nl.po @@ -273,7 +273,7 @@ msgid "(Check boxes to delete)" msgstr "" #: html/Ticket/Create.html:178 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Vul ticket ids of URLs in, gescheiden door spaties)" #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 diff --git a/rt/lib/RT/I18N/no.po b/rt/lib/RT/I18N/no.po index 5b1ab05cb..7a76fa183 100644 --- a/rt/lib/RT/I18N/no.po +++ b/rt/lib/RT/I18N/no.po @@ -282,7 +282,7 @@ msgid "(Check boxes to delete)" msgstr "(Merk boksene for Ã¥ slette)" #: html/Ticket/Create.html:178 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Skriv inn referansenummer eller URler, separert med mellomrom)" #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 diff --git a/rt/lib/RT/I18N/pt_br.po b/rt/lib/RT/I18N/pt_br.po index 6962ecbc8..410d2b250 100644 --- a/rt/lib/RT/I18N/pt_br.po +++ b/rt/lib/RT/I18N/pt_br.po @@ -1,4 +1,4 @@ -# $Id: pt_br.po,v 1.1 2003-07-15 13:16:28 ivan Exp $ +# $Id: pt_br.po,v 1.1.1.2 2004-11-11 12:12:05 ivan Exp $ msgid "" msgstr "" "Project-Id-Version: RT 2.1.x\n" @@ -279,7 +279,7 @@ msgid "(Check boxes to delete)" msgstr "(Assinale para remover)" #: html/Ticket/Create.html:178 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Entre com identificadores de tíquetes ou URLs, separados por espaços)" #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 diff --git a/rt/lib/RT/I18N/ru.po b/rt/lib/RT/I18N/ru.po index d5ef7fd0c..1ee5d9be4 100644 --- a/rt/lib/RT/I18N/ru.po +++ b/rt/lib/RT/I18N/ru.po @@ -249,7 +249,7 @@ msgid "(Check box to delete)" msgstr "(Пометьте то, что хотите удалить)" #: html/Ticket/Create.html:178 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Введите номера или ÑÑылки на тикеты. ÐеÑколько тикетов разделÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸.)" #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 diff --git a/rt/lib/RT/I18N/zh_cn.po b/rt/lib/RT/I18N/zh_cn.po index 0f0b8da60..c7df01647 100644 --- a/rt/lib/RT/I18N/zh_cn.po +++ b/rt/lib/RT/I18N/zh_cn.po @@ -16,7 +16,7 @@ msgid "#%1" msgstr "#%1" #: 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 -#. ($Ticket->Id, $Ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) #. ($Ticket->id, $Ticket->Subject) #. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) @@ -40,7 +40,7 @@ msgstr "%*(%1) 件尚未解决的申请å•" msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:790 +#: lib/RT/Tickets_Overlay.pm:831 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -50,11 +50,11 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%7-%2-%3 %4:%5:%6 %1" -#: lib/RT/Ticket_Overlay.pm:3588 lib/RT/Transaction_Overlay.pm:514 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Vendor.pm:19 +#: lib/RT/Ticket_Overlay.pm:3600 lib/RT/Transaction_Overlay.pm:514 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Vendor.pm:26 +#. ($field, $new_value) #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) -#. ($field, $new_value) msgid "%1 %2 added" msgstr "%2 已新增为 %1" @@ -63,18 +63,18 @@ msgstr "%2 已新增为 %1" msgid "%1 %2 ago" msgstr "%1 %2 之å‰" -#: lib/RT/Ticket_Overlay.pm:3594 lib/RT/Transaction_Overlay.pm:521 lib/RT/Transaction_Vendor.pm:25 +#: lib/RT/Ticket_Overlay.pm:3606 lib/RT/Transaction_Overlay.pm:521 lib/RT/Transaction_Vendor.pm:32 +#. ($field, $old_value, $new_value) #. ($cf->Name, $old_value, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) -#. ($field, $old_value, $new_value) msgid "%1 %2 changed to %3" msgstr "%1 已从 %2 改为 %3" -#: lib/RT/Ticket_Overlay.pm:3591 lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:563 lib/RT/Transaction_Vendor.pm:22 +#: lib/RT/Ticket_Overlay.pm:3603 lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:563 lib/RT/Transaction_Vendor.pm:29 +#. ($field, $old_value) #. ($cf->Name, $old_value) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) -#. ($field, $old_value) msgid "%1 %2 deleted" msgstr "%2 已自 %1 删除" @@ -129,12 +129,12 @@ msgstr "%1 - 指定欲使用的查询模å—" msgid "%1 ScripAction loaded" msgstr "加载手续 %1" -#: html/Edit/Elements/Page:49 +#: html/Edit/Elements/Page:47 #. (scalar $count) msgid "%1 Total" msgstr "å…± %1 笔" -#: lib/RT/Ticket_Overlay.pm:3621 +#: lib/RT/Ticket_Overlay.pm:3633 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "新增 %1 作为 %2 的值" @@ -163,7 +163,7 @@ msgstr "%1 çœ‹æ¥æ˜¯ä¸ªæœ¬åœ°å¯¹è±¡ï¼Œå´ä¸åœ¨æ•°æ®åº“里" msgid "%1 by %2" msgstr "%1 (%2)" -#: lib/RT/Transaction_Overlay.pm:484 lib/RT/Transaction_Overlay.pm:649 lib/RT/Transaction_Overlay.pm:658 lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:484 lib/RT/Transaction_Overlay.pm:652 lib/RT/Transaction_Overlay.pm:661 lib/RT/Transaction_Overlay.pm:664 #. ($self->Field , ( $self->OldValue || $no_value ) , $self->NewValue) #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) @@ -171,7 +171,7 @@ msgstr "%1 (%2)" msgid "%1 changed from %2 to %3" msgstr "%1 的值从 %2 改为 %3" -#: lib/RT/Interface/Web.pm:953 +#: lib/RT/Interface/Web.pm:955 msgid "%1 could not be set to %2." msgstr "无法将 %1 设定为 %2。" @@ -179,17 +179,17 @@ msgstr "无法将 %1 设定为 %2。" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 无法åˆå§‹æ›´æ–° (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2880 +#: lib/RT/Ticket_Overlay.pm:2888 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 无法将现况设æˆå·²è§£å†³ã€‚RT æ•°æ®åº“内容å¯èƒ½ä¸ä¸€è‡´ã€‚" -#: html/Elements/MyTickets:24 html/Work/Elements/MyTickets:9 +#: html/Elements/MyTickets:24 #. ($rows) msgid "%1 highest priority tickets I own..." msgstr "å‰ %1 份待处ç†ç”³è¯·å•..." -#: html/Elements/MyRequests:24 html/Work/Elements/MyRequests:9 +#: html/Elements/MyRequests:24 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "å‰ %1 份é€å‡ºçš„申请å•..." @@ -209,12 +209,12 @@ msgstr "%1 是从外部排程程åº(如 cron)æ¥å¯¹ç”³è¯·å•进行æ“作的工 msgid "%1 is no longer a %2 for this queue." msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å•çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Ticket_Overlay.pm:1602 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this ticket." msgstr "%1 å·²ä¸å†æ˜¯æ­¤ç”³è¯·å•çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:3677 +#: lib/RT/Ticket_Overlay.pm:3689 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 å·²ä¸å†æ˜¯è‡ªè®¢å­—段 %2 的值。" @@ -232,6 +232,16 @@ msgstr "%1 分钟" msgid "%1 not shown" msgstr "没有显示 %1" +#: html/Work/Elements/MyTickets:9 +#. ($rows) +msgid "%1 recent tickets I own..." +msgstr "最新 %1 份待处ç†ç”³è¯·å•..." + +#: html/Work/Elements/MyRequests:9 +#. ($rows) +msgid "%1 recent tickets I requested..." +msgstr "最新 %1 份é€å‡ºçš„申请å•..." + #: NOT FOUND IN SOURCE msgid "%1 result(s) found" msgstr "找到 %1 项结果" @@ -267,17 +277,17 @@ msgstr "%1 会解决在已解决群组里æˆå‘˜çš„申请å•。" msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "如果 %1 起始申请å•ä¾èµ–于æŸä¸ªé“¾æŽ¥ï¼Œæˆ–是æŸä¸ªé“¾æŽ¥çš„æˆå‘˜ï¼Œå®ƒå°†ä¼šè¢«å»¶å®•ã€‚" -#: lib/RT/Transaction_Overlay.pm:382 lib/RT/Transaction_Vendor.pm:37 +#: lib/RT/Transaction_Overlay.pm:382 #. ($self) msgid "%1: no attachment specified" msgstr "%1:未指定附件" -#: html/Ticket/Elements/ShowTransaction:100 html/Work/Tickets/Elements/ShowTransaction:158 +#: html/Ticket/Elements/ShowTransaction:108 html/Work/Tickets/Elements/ShowTransaction:169 #. ($size) msgid "%1b" msgstr "%1 字节" -#: html/Ticket/Elements/ShowTransaction:97 html/Work/Tickets/Elements/ShowTransaction:155 +#: html/Ticket/Elements/ShowTransaction:105 html/Work/Tickets/Elements/ShowTransaction:166 #. (int($size/102.4)/10) msgid "%1k" msgstr "%1k 字节" @@ -286,7 +296,7 @@ msgstr "%1k 字节" msgid "%quant(%1,result) found" msgstr "找到 %1 项结果" -#: lib/RT/Ticket_Overlay.pm:1185 +#: lib/RT/Ticket_Overlay.pm:1190 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' 䏿˜¯ä¸€ä¸ªåˆæ³•的状æ€å€¼" @@ -312,7 +322,7 @@ msgid "(Check boxes to delete)" msgstr "(点选欲删除的项目)" #: html/Ticket/Create.html:178 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(键入申请å•ç¼–å·æˆ–网å€ï¼Œä»¥ç©ºç™½åˆ†éš”)" #: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 @@ -345,7 +355,7 @@ msgstr "没有模æ¿" msgid "(No workflows)" msgstr "没有æµç¨‹" -#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:56 +#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:57 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>更改åŽç»­çš„æ”¶ä»¶è€…åå•。)" @@ -369,7 +379,11 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本给åå•上以逗å·éš”开的电å­é‚®ä»¶ 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/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:43 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 +#: html/Work/Delegates/index.html:50 +msgid "(default delegate)" +msgstr "(预设代ç†äºº)" + +#: html/Ticket/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:47 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 msgid "(delete)" msgstr "(删除)" @@ -385,7 +399,7 @@ msgstr "(新增)" msgid "(no name listed)" msgstr "(没有列出姓å)" -#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:43 html/Work/Elements/MyTickets:52 +#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:47 html/Work/Elements/MyTickets:56 msgid "(no subject)" msgstr "(没有主题)" @@ -397,11 +411,11 @@ msgstr "(æ— )" msgid "(only one ticket)" msgstr "(仅能指定一份申请å•)" -#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:17 html/Work/Elements/MyRequests:53 html/Work/Elements/MyTickets:67 html/Work/Tickets/Elements/ShowBasics:52 +#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:21 html/Work/Elements/MyRequests:61 html/Work/Elements/MyTickets:75 html/Work/Tickets/Elements/ShowBasics:52 msgid "(pending approval)" msgstr "(等待签核)" -#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:55 html/Work/Elements/MyTickets:69 +#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:63 html/Work/Elements/MyTickets:77 msgid "(pending other tickets)" msgstr "(等待其它申请å•)" @@ -409,14 +423,18 @@ msgstr "(等待其它申请å•)" msgid "(requestor's group)" msgstr "(申请人所属)" -#: html/Admin/Users/Modify.html:49 html/Edit/Users/Info:26 +#: html/Admin/Users/Modify.html:49 html/Edit/Users/Info:34 msgid "(required)" msgstr "(å¿…å¡«)" -#: html/Ticket/Elements/ShowTransaction:103 html/Work/Tickets/Elements/ShowTransaction:44 +#: html/Ticket/Elements/ShowTransaction:111 html/Work/Tickets/Elements/ShowTransaction:44 msgid "(untitled)" msgstr "(未命å)" +#: html/Work/Tickets/Elements/ShowHints:5 +msgid "*" +msgstr "★" + #: NOT FOUND IN SOURCE msgid ":" msgstr ":" @@ -458,7 +476,7 @@ msgstr "找ä¸åˆ° ACE" msgid "ACE not found" msgstr "找ä¸åˆ° ACE 设定" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:831 msgid "ACEs can only be created and deleted." msgstr "祇能新增或删除 ACE 设定。" @@ -470,6 +488,10 @@ msgstr "ACLEquivalence" msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "离开以å…ä¸å°å¿ƒæ›´æ”¹åˆ°ç”³è¯·å•。\\n" +#: html/Edit/Users/Info:66 html/Work/Preferences/Info:108 +msgid "About Me" +msgstr "个人信æ¯" + #: html/User/Elements/Tabs:31 msgid "About me" msgstr "个人信æ¯" @@ -499,7 +521,7 @@ msgstr "动作执行完毕" msgid "Action prepared..." msgstr "动作准备完毕..." -#: html/Work/Elements/List:13 html/Work/Elements/SelectSearch:25 html/Work/Tickets/Create.html:27 html/Work/Tickets/Elements/ShowBasics:12 +#: html/Work/Elements/List:17 html/Work/Elements/SelectSearch:30 html/Work/Tickets/Create.html:27 html/Work/Tickets/Elements/ShowBasics:12 msgid "Activated Date" msgstr "申请激活时间" @@ -580,7 +602,7 @@ msgstr "新增下一项关å¡" msgid "Added principal as a %1 for this queue" msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤è¡¨å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1480 +#: lib/RT/Ticket_Overlay.pm:1486 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤ç”³è¯·å•çš„ %1" @@ -589,11 +611,11 @@ msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤ç”³è¯·å•çš„ %1" msgid "Additional Hints" msgstr "é¢å¤–æç¤º" -#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:114 html/Work/Preferences/Info:79 +#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:114 html/Work/Preferences/Info:82 msgid "Address1" msgstr "ä½å€" -#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:118 html/Work/Preferences/Info:81 +#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:118 html/Work/Preferences/Info:84 msgid "Address2" msgstr "ä½å€(ç»­)" @@ -665,7 +687,7 @@ msgstr "管ç†å‘˜å›žå¤" msgid "AdminCustomFields" msgstr "管ç†è‡ªè®¢å­—段" -#: lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:146 msgid "AdminGroup" msgstr "管ç†ç¾¤ç»„" @@ -673,7 +695,7 @@ msgstr "管ç†ç¾¤ç»„" msgid "AdminGroupDescription" msgstr "管ç†ç¾¤ç»„æè¿°" -#: lib/RT/Group_Overlay.pm:147 +#: lib/RT/Group_Overlay.pm:148 msgid "AdminGroupMembership" msgstr "管ç†ç¾¤ç»„æˆå‘˜" @@ -733,7 +755,7 @@ msgstr "执行其它æµç¨‹" msgid "Alias for" msgstr "相当于" -#: html/Work/Delegates/index.html:13 html/Work/Elements/SelectSearch:11 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:13 +#: html/Work/Delegates/index.html:14 html/Work/Elements/SelectSearch:16 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:14 msgid "All" msgstr "全部" @@ -810,7 +832,7 @@ msgstr "签核细节" msgid "Approval Due" msgstr "签核时é™" -#: html/Work/Approvals/Elements/Approve:37 +#: html/Work/Approvals/Elements/Approve:43 msgid "Approval Notes" msgstr "签核æ„è§" @@ -838,7 +860,7 @@ msgstr "签核ç§ç±»" msgid "Approval diagram" msgstr "签核æµç¨‹" -#: html/Approvals/Elements/Approve:43 html/Work/Approvals/Elements/Approve:29 +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "核准" @@ -890,11 +912,11 @@ msgstr "现有附件" msgid "Attachment '%1' could not be loaded" msgstr "无法加载附件 '%1'" -#: lib/RT/Transaction_Overlay.pm:390 lib/RT/Transaction_Vendor.pm:50 +#: lib/RT/Transaction_Overlay.pm:390 msgid "Attachment created" msgstr "附件新增完毕" -#: lib/RT/Tickets_Overlay.pm:1208 +#: lib/RT/Tickets_Overlay.pm:1250 msgid "Attachment filename" msgstr "附件档å" @@ -902,6 +924,10 @@ msgstr "附件档å" msgid "Attachments" msgstr "附件" +#: lib/RT/Ticket_Overlay.pm:1222 +msgid "Attributes" +msgstr "属性" + #: NOT FOUND IN SOURCE msgid "Aug" msgstr "八月" @@ -946,7 +972,7 @@ msgstr "æƒé™é¡¹ç›®åˆ—表:" msgid "Back to Homepage" msgstr "回到首页" -#: html/Work/Elements/BackButton:2 html/Work/Search/Bulk.html:101 +#: html/Work/Approvals/Update.html:7 html/Work/Elements/BackButton:2 html/Work/Search/Bulk.html:101 msgid "Back to Previous" msgstr "回上页" @@ -967,11 +993,15 @@ msgstr "%1 的数æ®é”™è¯¯" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "附件的处ç†å·ç é”™è¯¯ã€‚%1 应为 %2\\n" -#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:21 html/Edit/Users/index.html:94 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 +#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:23 html/Edit/Users/index.html:94 html/Ticket/Elements/Tabs:95 html/User/Elements/GroupTabs:37 msgid "Basics" msgstr "基本信æ¯" -#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:53 +#: html/Work/Approvals/index.html:9 +msgid "Batch Approval" +msgstr "批次签核" + +#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:54 msgid "Bcc" msgstr "密件副本" @@ -979,7 +1009,7 @@ msgstr "密件副本" msgid "Be sure to save your changes" msgstr "请别忘了储存修改。" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:320 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:363 msgid "Before" msgstr "早于" @@ -1019,7 +1049,7 @@ msgstr "事业部" msgid "Business Unit:" msgstr "事业部:" -#: lib/RT/User_Overlay.pm:1529 +#: lib/RT/User_Overlay.pm:1539 msgid "Can not modify system users" msgstr "无法更改系统使用者" @@ -1027,7 +1057,7 @@ msgstr "无法更改系统使用者" msgid "Can this principal see this queue" msgstr "该å•使˜¯å¦èƒ½æŸ¥é˜…此表å•" -#: lib/RT/CustomField_Overlay.pm:205 +#: lib/RT/CustomField_Overlay.pm:212 msgid "Can't add a custom field value without a name" msgstr "ä¸èƒ½æ–°å¢žæ²¡æœ‰å称的自订字段值" @@ -1035,11 +1065,11 @@ msgstr "ä¸èƒ½æ–°å¢žæ²¡æœ‰å称的自订字段值" msgid "Can't link a ticket to itself" msgstr "申请å•ä¸èƒ½é“¾æŽ¥è‡ªå·±ã€‚" -#: lib/RT/Ticket_Overlay.pm:2857 +#: lib/RT/Ticket_Overlay.pm:2865 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "ä¸èƒ½æ•´åˆè¿›å·²æ•´åˆè¿‡çš„申请å•。这个错误ä¸è¯¥å‘生。" -#: lib/RT/Ticket_Overlay.pm:2659 lib/RT/Ticket_Overlay.pm:2738 +#: lib/RT/Ticket_Overlay.pm:2667 lib/RT/Ticket_Overlay.pm:2746 msgid "Can't specifiy both base and target" msgstr "ä¸èƒ½åŒæ—¶æŒ‡å®šèµ·å§‹ç”³è¯·å•与目的申请å•" @@ -1047,11 +1077,16 @@ msgstr "ä¸èƒ½åŒæ—¶æŒ‡å®šèµ·å§‹ç”³è¯·å•与目的申请å•" msgid "Cancel" msgstr "å–æ¶ˆ" -#: html/autohandler:126 +#: html/autohandler:133 #. ($msg) msgid "Cannot create user: %1" msgstr "无法新增使用者:%1" +#: html/autohandler:187 +#. ($auth_created - time) +msgid "Cannot login: Your system clock differs from server's by %1 seconds!" +msgstr "您的系统时钟和æœåŠ¡å™¨ç›¸å·® %1 秒,无法登入ï¼" + #: NOT FOUND IN SOURCE msgid "Card No." msgstr "å¡å·" @@ -1100,7 +1135,7 @@ msgstr "选择欲撤消的æƒåˆ©" msgid "Children" msgstr "å­ç”³è¯·å•" -#: html/Edit/Elements/PickUsers:21 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 +#: html/Edit/Elements/PickUsers:22 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 msgid "Chinese Name" msgstr "中文姓å" @@ -1108,7 +1143,7 @@ msgstr "中文姓å" msgid "Chinese/English" msgstr "中英文" -#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:122 html/Work/Preferences/Info:83 +#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:122 html/Work/Preferences/Info:86 msgid "City" msgstr "所在城市" @@ -1128,7 +1163,7 @@ msgstr "已解决的申请å•" msgid "Closed tickets" msgstr "已解决的申请å•" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:54 html/Edit/Global/Workflow/Condition:52 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:55 html/Edit/Global/Workflow/Condition:53 html/Edit/Global/Workflow/Owner.html:115 msgid "Code" msgstr "执行程åºç " @@ -1136,7 +1171,7 @@ msgstr "执行程åºç " msgid "Command not understood!\\n" msgstr "指令无法辨识ï¼\\n" -#: html/Ticket/Elements/ShowTransaction:178 html/Ticket/Elements/Tabs:152 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:60 html/Work/Tickets/Elements/ShowTransaction:118 html/Work/Tickets/Elements/ShowTransaction:32 +#: html/Ticket/Elements/ShowTransaction:189 html/Ticket/Elements/Tabs:158 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:61 html/Work/Tickets/Elements/ShowTransaction:119 html/Work/Tickets/Elements/ShowTransaction:32 msgid "Comment" msgstr "评论" @@ -1173,7 +1208,7 @@ msgstr "评论(ä¸é€ç»™ç”³è¯·äºº)" msgid "Comments about %1" msgstr "对 %1 的评论" -#: html/Admin/Users/Modify.html:184 html/Edit/Users/Info:46 html/Ticket/Elements/ShowRequestor:43 +#: html/Admin/Users/Modify.html:184 html/Edit/Users/Info:90 html/Ticket/Elements/ShowRequestor:43 msgid "Comments about this user" msgstr "使用者æè¿°" @@ -1225,7 +1260,7 @@ msgstr "确认å£ä»¤" msgid "Confirm Password" msgstr "å£ä»¤ç¡®è®¤" -#: html/Work/Approvals/Display.html:25 html/Work/Tickets/Create.html:154 html/Work/Tickets/Create.html:168 html/Work/Tickets/Update.html:77 +#: html/Work/Approvals/Elements/Actions:6 html/Work/Tickets/Create.html:153 html/Work/Tickets/Create.html:167 html/Work/Tickets/Update.html:81 msgid "Confirm Submit" msgstr "确定é€å‡º" @@ -1273,7 +1308,7 @@ msgstr "新增申请å•回å¤" msgid "Correspondence not recorded" msgstr "未纪录申请å•回å¤" -#: lib/RT/Ticket_Overlay.pm:3608 +#: lib/RT/Ticket_Overlay.pm:3620 msgid "Could not add new custom field value for ticket. " msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值 " @@ -1281,7 +1316,7 @@ msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值 " msgid "Could not add new custom field value for ticket. %1 " msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值。%1 " -#: lib/RT/Ticket_Overlay.pm:3108 lib/RT/Ticket_Overlay.pm:3116 lib/RT/Ticket_Overlay.pm:3133 +#: lib/RT/Ticket_Overlay.pm:3116 lib/RT/Ticket_Overlay.pm:3124 lib/RT/Ticket_Overlay.pm:3141 msgid "Could not change owner. " msgstr "ä¸èƒ½æ›´æ”¹æ‰¿åŠžäººã€‚ " @@ -1300,7 +1335,7 @@ msgstr "无法建立讯æ¯é€šçŸ¥" msgid "Could not create Template" msgstr "无法建立通知模æ¿" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:471 lib/RT/Group_Overlay.pm:478 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 msgid "Could not create group" msgstr "无法新增群组" @@ -1314,7 +1349,7 @@ msgstr "无法新增项目" msgid "Could not create template: %1" msgstr "无法新增模æ¿ï¼š%1" -#: lib/RT/Ticket_Overlay.pm:1118 lib/RT/Ticket_Overlay.pm:353 +#: lib/RT/Ticket_Overlay.pm:1123 lib/RT/Ticket_Overlay.pm:358 msgid "Could not create ticket. Queue not set" msgstr "无法新增申请å•。尚未指定表å•。" @@ -1339,11 +1374,11 @@ msgstr "找ä¸åˆ°ç¼–å· %1 的申请å•" msgid "Could not find group %1." msgstr "找ä¸åˆ°ç¾¤ç»„ %1。" -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1448 +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1454 msgid "Could not find or create that user" msgstr "找ä¸åˆ°æˆ–无法新增该å使用者" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1533 msgid "Could not find that principal" msgstr "找ä¸åˆ°è¯¥å•ä½" @@ -1360,7 +1395,7 @@ msgstr "无法加载群组" msgid "Could not make that principal a %1 for this queue" msgstr "无法将该å•ä½è®¾ä¸ºæ­¤è¡¨å•çš„ %1。" -#: lib/RT/Ticket_Overlay.pm:1469 +#: lib/RT/Ticket_Overlay.pm:1475 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "无法将该å•ä½è®¾ä¸ºæ­¤ç”³è¯·å•çš„ %1。" @@ -1370,16 +1405,16 @@ msgstr "无法将该å•ä½è®¾ä¸ºæ­¤ç”³è¯·å•çš„ %1。" msgid "Could not remove that principal as a %1 for this queue" msgstr "无法将å•ä½ %1 从表å•移除。" -#: lib/RT/Ticket_Overlay.pm:1585 +#: lib/RT/Ticket_Overlay.pm:1591 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this ticket" msgstr "无法将å•ä½ %1 从申请å•移除。" -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Group_Overlay.pm:976 msgid "Couldn't add member to group" msgstr "无法新增æˆå‘˜è‡³ç¾¤ç»„" -#: lib/RT/Ticket_Overlay.pm:3618 lib/RT/Ticket_Overlay.pm:3674 +#: lib/RT/Ticket_Overlay.pm:3630 lib/RT/Ticket_Overlay.pm:3686 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "无法新增更动报告" @@ -1392,15 +1427,15 @@ msgstr "无法从 gpg 回函辨识出该采å–的行动\\n" msgid "Couldn't find group\\n" msgstr "找ä¸åˆ°ç¾¤ç»„\\n" -#: lib/RT/Interface/Web.pm:962 +#: lib/RT/Interface/Web.pm:964 msgid "Couldn't find row" msgstr "找ä¸åˆ°æ­¤åˆ—æ•°æ®" -#: lib/RT/Group_Overlay.pm:956 +#: lib/RT/Group_Overlay.pm:950 msgid "Couldn't find that principal" msgstr "找ä¸åˆ°è¯¥å•ä½" -#: lib/RT/CustomField_Overlay.pm:239 +#: lib/RT/CustomField_Overlay.pm:246 msgid "Couldn't find that value" msgstr "找ä¸åˆ°è¯¥å€¼" @@ -1429,7 +1464,7 @@ msgstr "无法加载 RT 设定档 '%1' %2" msgid "Couldn't load Scrips." msgstr "无法加载手续。" -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:55 html/Edit/Global/GroupRight/Add.html:60 html/Edit/Global/UserRight/Add.html:25 html/Edit/Global/UserRight/Add.html:30 html/Edit/Groups/Member:120 html/Edit/Groups/Members/Add.html:43 html/Edit/Rights/index.html:58 html/Edit/Rights/index.html:63 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:55 html/Edit/Global/GroupRight/Add.html:60 html/Edit/Global/UserRight/Add.html:25 html/Edit/Global/UserRight/Add.html:30 html/Edit/Groups/Member:121 html/Edit/Groups/Members/Add.html:44 html/Edit/Rights/index.html:58 html/Edit/Rights/index.html:63 #. ($ObjectGroup) #. ($Report) #. ($Group) @@ -1437,7 +1472,7 @@ msgstr "无法加载手续。" msgid "Couldn't load group %1" msgstr "无法加载手续 %1" -#: lib/RT/Link_Overlay.pm:174 lib/RT/Link_Overlay.pm:183 lib/RT/Link_Overlay.pm:210 +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 msgid "Couldn't load link" msgstr "无法加载链接。" @@ -1465,12 +1500,12 @@ msgstr "无法加载模æ¿" msgid "Couldn't load that user (%1)" msgstr "无法加载该å使用者(%1)" -#: html/SelfService/Display.html:114 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "æ— æ³•åŠ è½½ç”³è¯·å• '%1'" -#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:134 html/Work/Preferences/Info:89 +#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:134 html/Work/Preferences/Info:92 msgid "Country" msgstr "国家" @@ -1624,7 +1659,7 @@ msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹ä½¿ç”¨è€…" msgid "CreateTicket" msgstr "新增申请å•" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1212 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1217 msgid "Created" msgstr "新增日" @@ -1703,7 +1738,7 @@ msgstr "现有视察员" msgid "Custom Field #%1" msgstr "自订字段 #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:22 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:24 html/Ticket/Elements/ShowSummary:35 msgid "Custom Fields" msgstr "自订字段" @@ -1723,22 +1758,22 @@ msgstr "åŠ¨ä½œå‰æ‰§è¡Œç¨‹åº" msgid "Custom condition" msgstr "自订æ¡ä»¶" -#: lib/RT/Tickets_Overlay.pm:1637 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "自订字段 %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1632 +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "自订字段 %1 已有值" -#: lib/RT/Tickets_Overlay.pm:1629 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "自订字段 %1 没有值" -#: lib/RT/Ticket_Overlay.pm:3510 +#: lib/RT/Ticket_Overlay.pm:3522 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "找ä¸åˆ°è‡ªè®¢å­—段 %1" @@ -1747,11 +1782,11 @@ msgstr "找ä¸åˆ°è‡ªè®¢å­—段 %1" msgid "Custom field deleted" msgstr "自订字段已删除" -#: lib/RT/Ticket_Overlay.pm:3660 +#: lib/RT/Ticket_Overlay.pm:3672 msgid "Custom field not found" msgstr "找ä¸åˆ°è‡ªè®¢å­—段" -#: lib/RT/CustomField_Overlay.pm:349 +#: lib/RT/CustomField_Overlay.pm:356 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "无法从自订字段 %2 中找到 %1 这个字段值" @@ -1760,19 +1795,19 @@ msgstr "无法从自订字段 %2 中找到 %1 这个字段值" msgid "Custom field value changed from %1 to %2" msgstr "自订字段值从 %1 改为 %2" -#: lib/RT/CustomField_Overlay.pm:249 +#: lib/RT/CustomField_Overlay.pm:256 msgid "Custom field value could not be deleted" msgstr "无法删除自订字段值" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:362 msgid "Custom field value could not be found" msgstr "找ä¸åˆ°è‡ªè®¢å­—段值" -#: lib/RT/CustomField_Overlay.pm:247 lib/RT/CustomField_Overlay.pm:357 +#: lib/RT/CustomField_Overlay.pm:254 lib/RT/CustomField_Overlay.pm:364 msgid "Custom field value deleted" msgstr "自订字段值删除æˆåŠŸ" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:90 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Vendor.pm:5 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:98 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Vendor.pm:5 msgid "CustomField" msgstr "自订字段" @@ -1792,7 +1827,7 @@ msgstr "MySQLæ•°æ®åº“" msgid "Date of Departure" msgstr "å‡ºå‘æ—¥æœŸ" -#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:17 +#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:17 msgid "Dates" msgstr "日期" @@ -1877,7 +1912,7 @@ msgstr "代ç†è¡¨å•:" msgid "Delegated Type" msgstr "代ç†è¡¨å•ç§ç±»" -#: html/Edit/Users/index.html:98 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:41 html/Work/Overview/Info:28 +#: html/Edit/Users/index.html:98 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:42 html/Work/Overview/Info:28 msgid "Delegates" msgstr "代ç†äºº" @@ -1957,7 +1992,7 @@ msgstr "删除此对象会è¿åå‚考完整性" msgid "Deleting this object would violate referential integrity. That's bad." msgstr "删除此对象会è¿åå‚考完整性" -#: html/Approvals/Elements/Approve:44 html/Work/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:44 msgid "Deny" msgstr "驳回" @@ -2006,7 +2041,7 @@ msgstr "附属性:\\n" msgid "Dependency by %1 added" msgstr "å·²åŠ å…¥å¯æŽ¥ç»­å¤„ç†çš„ç”³è¯·å• %1" -#: lib/RT/Transaction_Overlay.pm:622 +#: lib/RT/Transaction_Overlay.pm:625 #. ($value) msgid "Dependency by %1 deleted" msgstr "å·²ç§»é™¤å¯æŽ¥ç»­å¤„ç†çš„ç”³è¯·å• %1" @@ -2016,7 +2051,7 @@ msgstr "å·²ç§»é™¤å¯æŽ¥ç»­å¤„ç†çš„ç”³è¯·å• %1" msgid "Dependency on %1 added" msgstr "已加入需先处ç†çš„ç”³è¯·å• %1" -#: lib/RT/Transaction_Overlay.pm:619 +#: lib/RT/Transaction_Overlay.pm:622 #. ($value) msgid "Dependency on %1 deleted" msgstr "已移除需先处ç†çš„ç”³è¯·å• %1" @@ -2049,7 +2084,7 @@ msgstr "ç»åŠžä¸šåŠ¡è¯´æ˜Ž" msgid "Description:" msgstr "æè¿°ï¼š" -#: html/Work/Tickets/Create.html:132 html/Work/Tickets/Create.html:84 html/Work/Tickets/Elements/EditCustomFields:13 html/Work/Tickets/Elements/EditCustomFields:61 html/Work/Tickets/Elements/ShowCustomFields:14 html/Work/Tickets/Elements/ShowCustomFields:53 +#: html/Work/Tickets/Create.html:131 html/Work/Tickets/Create.html:84 html/Work/Tickets/Elements/EditCustomFields:13 html/Work/Tickets/Elements/EditCustomFields:61 html/Work/Tickets/Elements/ShowCustomFields:14 html/Work/Tickets/Elements/ShowCustomFields:53 msgid "Details" msgstr "细节" @@ -2065,11 +2100,11 @@ msgstr "残障身分" msgid "Disability Type" msgstr "残障类别" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:17 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 msgid "Disabled" msgstr "åœç”¨" -#: html/Ticket/Elements/Tabs:84 +#: html/Ticket/Elements/Tabs:90 msgid "Display" msgstr "显示内容" @@ -2101,7 +2136,7 @@ msgstr "å…许一切æ“作" msgid "Don't refresh this page." msgstr "䏿›´æ–°æ­¤é¡µé¢ã€‚" -#: html/Search/Elements/PickRestriction:113 html/Work/Search/PickRestriction:101 +#: html/Search/Elements/PickRestriction:114 html/Work/Search/PickRestriction:101 msgid "Don't show search results" msgstr "䏿˜¾ç¤ºæŸ¥è¯¢ç»“æžœ" @@ -2109,7 +2144,7 @@ msgstr "䏿˜¾ç¤ºæŸ¥è¯¢ç»“æžœ" msgid "Down" msgstr "下一页" -#: html/Ticket/Elements/ShowTransaction:103 +#: html/Ticket/Elements/ShowTransaction:111 msgid "Download" msgstr "下载" @@ -2117,7 +2152,7 @@ msgstr "下载" msgid "Dr." msgstr "åšå£«" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:43 html/Work/Tickets/Elements/EditBasics:54 lib/RT/Ticket_Overlay.pm:1216 +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:43 html/Work/Tickets/Elements/EditBasics:54 lib/RT/Ticket_Overlay.pm:1221 msgid "Due" msgstr "到期日" @@ -2134,7 +2169,7 @@ msgstr "无法解读日期 '%1'" msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "æ— æ³•åŠ è½½ç”³è¯·å• '%1':%2.\\n" -#: html/Work/Tickets/Update.html:47 +#: html/Work/Tickets/Update.html:48 msgid "Edit" msgstr "编辑" @@ -2236,7 +2271,7 @@ msgstr "最高学历" msgid "EffectiveId" msgstr "有效编å·" -#: lib/RT/Ticket_Overlay.pm:2673 lib/RT/Ticket_Overlay.pm:2751 +#: lib/RT/Ticket_Overlay.pm:2681 lib/RT/Ticket_Overlay.pm:2759 msgid "Either base or target must be specified" msgstr "éœ€è¦æŒ‡å®šèµ·å§‹ç”³è¯·å•或目的申请å•" @@ -2321,7 +2356,7 @@ msgstr "试用期满日" msgid "English Name" msgstr "英文姓å" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:434 msgid "Enter multiple values" msgstr "键入多é‡é¡¹ç›®" @@ -2329,7 +2364,7 @@ msgstr "键入多é‡é¡¹ç›®" msgid "Enter one or more conditions below to search for users" msgstr "输入下列å•一或å¤å¼æ¡ä»¶ï¼ŒæŸ¥è¯¢ç”¨æˆ·æ•°æ®" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:431 msgid "Enter one value" msgstr "键入å•一项目" @@ -2385,14 +2420,18 @@ msgstr "表å•->æ–°å¢žè§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" msgid "Error in parameters to Queue->DelWatcher" msgstr "表å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: lib/RT/Ticket_Overlay.pm:1401 +#: lib/RT/Ticket_Overlay.pm:1407 msgid "Error in parameters to Ticket->AddWatcher" msgstr "申请å•->æ–°å¢žè§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: lib/RT/Ticket_Overlay.pm:1558 +#: lib/RT/Ticket_Overlay.pm:1564 msgid "Error in parameters to Ticket->DelWatcher" msgstr "申请å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" +#: bin/rt-crontool:209 +msgid "Escalate tickets" +msgstr "调整申请å•优先等级" + #: etc/initialdata:20 msgid "Everyone" msgstr "所有人" @@ -2433,7 +2472,7 @@ msgstr "外部数æ®åº“用户" msgid "ExternalURL" msgstr "外部接å£ç½‘å€" -#: html/Admin/Users/Modify.html:72 html/Edit/Users/Info:41 +#: html/Admin/Users/Modify.html:72 html/Edit/Users/Info:85 msgid "Extra info" msgstr "备注" @@ -2480,9 +2519,9 @@ msgstr "字段åç§°" #: html/Edit/Global/CustomField/List:5 html/Edit/Global/CustomField/Top:9 msgid "Field Type" -msgstr "字段属性" +msgstr "字段类别" -#: html/Edit/Elements/PickUsers:52 html/Edit/Users/Add.html:47 +#: html/Edit/Elements/PickUsers:60 html/Edit/Users/Add.html:47 msgid "Filter" msgstr "筛选" @@ -2490,7 +2529,7 @@ msgstr "筛选" msgid "Filter people" msgstr "对象筛选" -#: html/Edit/Elements/PickUsers:68 html/Edit/Users/Add.html:63 html/Work/Tickets/Cc:42 +#: html/Edit/Elements/PickUsers:76 html/Edit/Users/Add.html:63 html/Work/Tickets/Cc:42 msgid "Filtered list:" msgstr "筛选列表:" @@ -2498,11 +2537,11 @@ msgstr "筛选列表:" msgid "Fin" msgstr "最终" -#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 html/Work/Tickets/Elements/EditBasics:52 lib/RT/Tickets_Overlay.pm:1110 +#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 html/Work/Tickets/Elements/EditBasics:52 lib/RT/Tickets_Overlay.pm:1152 msgid "Final Priority" msgstr "最终顺ä½" -#: lib/RT/Ticket_Overlay.pm:1207 +#: lib/RT/Ticket_Overlay.pm:1212 msgid "FinalPriority" msgstr "最终顺ä½" @@ -2534,7 +2573,7 @@ msgstr "寻找申请å•" msgid "Finish Approval" msgstr "签核完毕" -#: html/Ticket/Elements/Tabs:57 +#: html/Ticket/Elements/Tabs:63 msgid "First" msgstr "第一项" @@ -2579,7 +2618,7 @@ msgstr "电å­è¡¨å•作业区" msgid "Found %quant(%1,ticket)" msgstr "找到 %1 张申请å•" -#: lib/RT/Interface/Web.pm:964 +#: lib/RT/Interface/Web.pm:966 msgid "Found Object" msgstr "已找到对象" @@ -2713,7 +2752,7 @@ msgstr "群组 %1 %2:%3" msgid "Group Admin" msgstr "群组管ç†å‘˜" -#: html/Edit/Global/GroupRight/List:5 html/Edit/Global/GroupRight/Top:20 html/Edit/Groups/List:7 +#: html/Edit/Global/GroupRight/List:5 html/Edit/Global/GroupRight/Top:20 html/Edit/Groups/List:8 msgid "Group Description" msgstr "群组æè¿°" @@ -2725,7 +2764,7 @@ msgstr "群组管ç†" msgid "Group Members" msgstr "群组æˆå‘˜" -#: html/Edit/Elements/PickUsers:28 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Queues/Basic/Add.html:15 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Delegates/Add.html:15 html/Work/Tickets/Cc:24 +#: html/Edit/Elements/PickUsers:30 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Queues/Basic/Add.html:15 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Approvals/Add.html:16 html/Work/Delegates/Add.html:16 html/Work/Tickets/Cc:24 msgid "Group Name" msgstr "群组åç§°" @@ -2733,7 +2772,7 @@ msgstr "群组åç§°" msgid "Group Name:" msgstr "群组å称:" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:27 html/Edit/Users/Group:11 html/Edit/Users/index.html:96 +#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:29 html/Edit/Users/Group:11 html/Edit/Users/index.html:96 msgid "Group Rights" msgstr "群组æƒé™" @@ -2745,11 +2784,11 @@ msgstr "拥有群组æƒé™åˆ—表:" msgid "Group Setup" msgstr "群组设定" -#: html/Edit/Global/GroupRight/List:8 html/Edit/Global/GroupRight/Top:14 html/Edit/Groups/List:10 html/Edit/Groups/Top:15 +#: html/Edit/Global/GroupRight/List:8 html/Edit/Global/GroupRight/Top:14 html/Edit/Groups/List:16 html/Edit/Groups/Top:15 msgid "Group Status" msgstr "群组状æ€" -#: lib/RT/Group_Overlay.pm:962 +#: lib/RT/Group_Overlay.pm:956 msgid "Group already has member" msgstr "群组内已有此æˆå‘˜" @@ -2762,7 +2801,7 @@ msgstr "无法新增群组" msgid "Group could not be created: %1" msgstr "无法新增群组:%1" -#: lib/RT/Group_Overlay.pm:494 +#: lib/RT/Group_Overlay.pm:496 msgid "Group created" msgstr "群组新增完毕" @@ -2770,11 +2809,11 @@ msgstr "群组新增完毕" msgid "Group created: %1" msgstr "群组 %1 新增完毕" -#: lib/RT/Group_Overlay.pm:1134 +#: lib/RT/Group_Overlay.pm:1128 msgid "Group has no such member" msgstr "群组没有这个æˆå‘˜" -#: lib/RT/Group_Overlay.pm:942 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1455 lib/RT/Ticket_Overlay.pm:1533 +#: lib/RT/Group_Overlay.pm:936 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1461 lib/RT/Ticket_Overlay.pm:1539 msgid "Group not found" msgstr "找ä¸åˆ°ç¾¤ç»„" @@ -2798,7 +2837,7 @@ msgstr "群组 %1 已改å为 %2" msgid "Group with Queue Rights" msgstr "æ‹¥æœ‰è¡¨å•æƒé™ç¾¤ç»„" -#: html/Edit/Global/Workflow/Owner.html:70 +#: html/Edit/Global/Workflow/Owner.html:78 msgid "Group's" msgstr "群组之" @@ -2810,7 +2849,7 @@ msgstr "群组:" msgid "Groups" msgstr "群组" -#: lib/RT/Group_Overlay.pm:968 +#: lib/RT/Group_Overlay.pm:962 msgid "Groups can't be members of their members" msgstr "ä¸èƒ½å°†ç¾¤ç»„设为群组内æˆå‘˜" @@ -2818,10 +2857,14 @@ msgstr "ä¸èƒ½å°†ç¾¤ç»„设为群组内æˆå‘˜" msgid "Groups with Global Rights" msgstr "拥有全域æƒé™ç¾¤ç»„" -#: html/Edit/Global/GroupRight/List:6 html/Edit/Global/GroupRight/Top:22 html/Edit/Groups/List:8 +#: html/Edit/Global/GroupRight/List:6 html/Edit/Global/GroupRight/Top:22 html/Edit/Groups/List:10 msgid "HRMSDefined" msgstr "组织架构" +#: html/Edit/Global/CustomField/Top:57 +msgid "HTML Attributes" +msgstr "HTML 属性" + #: NOT FOUND IN SOURCE msgid "Health Insurance" msgstr "å¥ä¿è¡¥åŠ©èº«ä»½" @@ -2843,11 +2886,11 @@ msgstr "说明" msgid "Help Desks" msgstr "å„项业务窗å£" -#: html/Edit/Global/CustomField/SelectWritable:9 html/Edit/Queues/Basic/Top:80 +#: html/Edit/Global/CustomField/SelectWritable:7 html/Edit/Queues/Basic/Top:80 msgid "Hidden" msgstr "éšè—" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:87 html/Work/Tickets/Elements/ShowHistory:8 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:93 html/Work/Tickets/Elements/ShowHistory:8 msgid "History" msgstr "纪录" @@ -2863,7 +2906,7 @@ msgstr "主页" msgid "Hotel Expense" msgstr "ä½å®¿è´¹" -#: lib/RT/Base.pm:75 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "我有 %quant(%1,ä»½å›ºä½“æ…æ‹Œå™¨)。" @@ -2876,7 +2919,7 @@ msgstr "身分è¯å·" msgid "ID Type" msgstr "身分类别" -#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1037 +#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1079 msgid "Id" msgstr "ç¼–å·" @@ -2896,11 +2939,11 @@ msgstr "如果此工具程åºä¸º setgidï¼Œæ¶æ„的本地端用户å³èƒ½ç”±æ­¤ msgid "If you've updated anything above, be sure to" msgstr "若您已更新以上数æ®ï¼Œè¯·è®°å¾—按一下" -#: lib/RT/Interface/Web.pm:956 +#: lib/RT/Interface/Web.pm:958 msgid "Illegal value for %1" msgstr "%1 的值错误" -#: lib/RT/Interface/Web.pm:959 +#: lib/RT/Interface/Web.pm:961 msgid "Immutable field" msgstr "此字段值ä¸å¯æ›´åЍ" @@ -2924,15 +2967,15 @@ msgstr "列出åœç”¨çš„使用者" msgid "Indirect Employee" msgstr "直接/间接员工" -#: lib/RT/Tickets_Overlay.pm:1086 +#: lib/RT/Tickets_Overlay.pm:1128 msgid "Initial Priority" msgstr "åˆå§‹ä¼˜å…ˆé¡ºä½" -#: lib/RT/Ticket_Overlay.pm:1206 lib/RT/Ticket_Overlay.pm:1208 +#: lib/RT/Ticket_Overlay.pm:1211 lib/RT/Ticket_Overlay.pm:1213 msgid "InitialPriority" msgstr "åˆå§‹ä¼˜å…ˆé¡ºä½" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:105 lib/RT/Workflow.pm:190 msgid "Input error" msgstr "输入错误" @@ -2940,16 +2983,16 @@ msgstr "输入错误" msgid "Interest noted" msgstr "登记æˆåŠŸ" -#: lib/RT/Ticket_Overlay.pm:3913 +#: lib/RT/Ticket_Overlay.pm:3931 msgid "Internal Error" msgstr "内部错误" -#: lib/RT/Record.pm:142 +#: lib/RT/Record.pm:143 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "内部错误:%1" -#: lib/RT/Group_Overlay.pm:641 +#: lib/RT/Group_Overlay.pm:643 msgid "Invalid Group Type" msgstr "错误的群组类别" @@ -2961,11 +3004,11 @@ msgstr "错误的æƒé™" msgid "Invalid Type" msgstr "错误的类型" -#: lib/RT/Interface/Web.pm:961 +#: lib/RT/Interface/Web.pm:963 msgid "Invalid data" msgstr "错误的数æ®" -#: lib/RT/Ticket_Overlay.pm:463 +#: lib/RT/Ticket_Overlay.pm:468 msgid "Invalid owner. Defaulting to 'nobody'." msgstr "错误的承办人。改为预设承办人「nobodyã€ã€‚" @@ -2977,16 +3020,16 @@ msgstr "错误的表å•" msgid "Invalid right" msgstr "错误的æƒé™" -#: lib/RT/Record.pm:117 +#: lib/RT/Record.pm:118 #. ($key) msgid "Invalid value for %1" msgstr "%1 的值错误" -#: lib/RT/Ticket_Overlay.pm:3517 +#: lib/RT/Ticket_Overlay.pm:3529 msgid "Invalid value for custom field" msgstr "错误的自订字段值" -#: lib/RT/Ticket_Overlay.pm:365 +#: lib/RT/Ticket_Overlay.pm:370 msgid "Invalid value for status" msgstr "错误的状æ€å€¼" @@ -3034,7 +3077,7 @@ msgstr "一月" msgid "Job" msgstr "èŒç§°" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:149 msgid "Join or leave this group" msgstr "加入或离开此群组" @@ -3050,7 +3093,7 @@ msgstr "07" msgid "July" msgstr "七月" -#: html/Ticket/Elements/Tabs:98 +#: html/Ticket/Elements/Tabs:104 msgid "Jumbo" msgstr "全部信æ¯" @@ -3090,11 +3133,11 @@ msgstr "é“¾æŽ¥å·æ ‡" msgid "Lang" msgstr "使用语言" -#: html/User/Prefs.html:54 html/Work/Preferences/Info:29 +#: html/User/Prefs.html:54 html/Work/Preferences/Info:32 msgid "Language" msgstr "语言" -#: html/Ticket/Elements/Tabs:72 +#: html/Ticket/Elements/Tabs:78 msgid "Last" msgstr "上次更新" @@ -3122,11 +3165,11 @@ msgstr "上次更新" msgid "Left" msgstr "剩馀时间" -#: html/Admin/Users/Modify.html:82 html/Edit/Users/Info:62 +#: html/Admin/Users/Modify.html:82 html/Edit/Users/Info:107 msgid "Let this user access RT" msgstr "å…许这å使用者登入" -#: html/Admin/Users/Modify.html:86 html/Edit/Users/Info:68 +#: html/Admin/Users/Modify.html:86 html/Edit/Users/Info:113 msgid "Let this user be granted rights" msgstr "内部æˆå‘˜ï¼ˆå…·æœ‰ä¸ªäººæƒé™ï¼‰" @@ -3142,25 +3185,25 @@ msgstr "é™åˆ¶è¡¨å•为 %1 到 %2" msgid "Link a Queue" msgstr "申请表å•连结" -#: lib/RT/Ticket_Overlay.pm:2765 +#: lib/RT/Ticket_Overlay.pm:2773 msgid "Link already exists" msgstr "此链接已存在" -#: lib/RT/Ticket_Overlay.pm:2777 +#: lib/RT/Ticket_Overlay.pm:2785 msgid "Link could not be created" msgstr "无法新增链接" -#: lib/RT/Ticket_Overlay.pm:2785 lib/RT/Ticket_Overlay.pm:2797 +#: lib/RT/Ticket_Overlay.pm:2793 lib/RT/Ticket_Overlay.pm:2805 #. ($TransString) msgid "Link created (%1)" msgstr "链接(%1)新增完毕" -#: lib/RT/Ticket_Overlay.pm:2698 +#: lib/RT/Ticket_Overlay.pm:2706 #. ($TransString) msgid "Link deleted (%1)" msgstr "链接(%1)删除完毕" -#: lib/RT/Ticket_Overlay.pm:2704 +#: lib/RT/Ticket_Overlay.pm:2712 msgid "Link not found" msgstr "找ä¸åˆ°é“¾æŽ¥" @@ -3173,7 +3216,7 @@ msgstr "é“¾æŽ¥ç”³è¯·å• #%1" msgid "Link ticket %1" msgstr "é“¾æŽ¥ç”³è¯·å• %1" -#: html/Ticket/Elements/Tabs:96 +#: html/Ticket/Elements/Tabs:102 msgid "Links" msgstr "链接" @@ -3181,7 +3224,7 @@ msgstr "链接" msgid "List All Users" msgstr "列出所有用户数æ®" -#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:107 html/Work/Preferences/Info:75 +#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:107 html/Work/Preferences/Info:78 msgid "Location" msgstr "ä½ç½®" @@ -3203,7 +3246,7 @@ msgstr "纪录档å" msgid "Logged in as %1" msgstr "使用者:%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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:60 lib/RT/StyleGuide.pod:777 msgid "Login" msgstr "登入" @@ -3312,20 +3355,20 @@ msgstr "05" msgid "Member %1 added" msgstr "æˆå‘˜ %1 新增完毕" -#: lib/RT/Transaction_Overlay.pm:635 +#: lib/RT/Transaction_Overlay.pm:638 #. ($value) msgid "Member %1 deleted" msgstr "æˆå‘˜ %1 删除完毕" -#: lib/RT/Group_Overlay.pm:979 +#: lib/RT/Group_Overlay.pm:973 msgid "Member added" msgstr "新增æˆå‘˜å®Œæ¯•" -#: lib/RT/Group_Overlay.pm:1141 +#: lib/RT/Group_Overlay.pm:1135 msgid "Member deleted" msgstr "æˆå‘˜å·²åˆ é™¤" -#: lib/RT/Group_Overlay.pm:1145 +#: lib/RT/Group_Overlay.pm:1139 msgid "Member not deleted" msgstr "æˆå‘˜æœªåˆ é™¤" @@ -3333,7 +3376,7 @@ msgstr "æˆå‘˜æœªåˆ é™¤" msgid "Member of" msgstr "隶属于" -#: html/Work/Preferences/index.html:19 +#: html/Edit/Users/Info:23 html/Work/Preferences/index.html:19 msgid "Member since" msgstr "注册日期" @@ -3350,16 +3393,16 @@ msgstr "æˆå‘˜" msgid "Membership in %1 added" msgstr "所属群组 %1 加入完毕" -#: lib/RT/Transaction_Overlay.pm:632 +#: lib/RT/Transaction_Overlay.pm:635 #. ($value) msgid "Membership in %1 deleted" msgstr "所属群组 %1 移除完毕" -#: lib/RT/Ticket_Overlay.pm:2954 +#: lib/RT/Ticket_Overlay.pm:2962 msgid "Merge Successful" msgstr "æ•´åˆå®Œæ¯•" -#: lib/RT/Ticket_Overlay.pm:2874 +#: lib/RT/Ticket_Overlay.pm:2882 msgid "Merge failed. Couldn't set EffectiveId" msgstr "æ•´åˆå¤±è´¥ã€‚无法设定 EffectiveId" @@ -3367,11 +3410,16 @@ msgstr "æ•´åˆå¤±è´¥ã€‚无法设定 EffectiveId" msgid "Merge into" msgstr "æ•´åˆè¿›" +#: lib/RT/Transaction_Overlay.pm:601 +#. ($value) +msgid "Merged into %1" +msgstr "已整åˆè¿› %1" + #: html/Search/Bulk.html:137 html/Ticket/Update.html:100 msgid "Message" msgstr "讯æ¯" -#: html/Ticket/Elements/ShowTransaction:80 +#: html/Ticket/Elements/ShowTransaction:88 msgid "Message body not shown because it is too large or is not plain text." msgstr "ä¿¡ä»¶å†…æ–‡ä¸æ˜¯çº¯æ–‡å­—,因此无法显示。" @@ -3379,11 +3427,15 @@ msgstr "ä¿¡ä»¶å†…æ–‡ä¸æ˜¯çº¯æ–‡å­—,因此无法显示。" msgid "Misc. Expense" msgstr "æ‚è´¹" -#: lib/RT/Interface/Web.pm:963 +#: lib/RT/Interface/Web.pm:965 msgid "Missing a primary key?: %1" msgstr "缺少主键值?(%1)" -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:71 html/Work/Preferences/Info:38 +#: html/Work/Tickets/Create.html:180 +msgid "Missing mandatory fields" +msgstr "缺少必填字段" + +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:71 html/Work/Preferences/Info:41 msgid "Mobile" msgstr "行动电è¯" @@ -3479,7 +3531,7 @@ msgstr "更改全域设定的使用者æƒé™" msgid "Modify global user rights." msgstr "更改全域设定的使用者æƒé™ã€‚" -#: lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:146 msgid "Modify group metadata or delete group" msgstr "更改群组数æ®åŠåˆ é™¤ç¾¤ç»„" @@ -3493,7 +3545,7 @@ msgstr "更改 %1 的群组æƒé™" msgid "Modify group rights for queue %1" msgstr "æ›´æ”¹è¡¨å• %1 的群组æƒé™" -#: lib/RT/Group_Overlay.pm:147 +#: lib/RT/Group_Overlay.pm:148 msgid "Modify membership roster for this group" msgstr "更改此群组的æˆå‘˜åå•" @@ -3587,7 +3639,7 @@ msgstr "更改适用于所有表å•çš„æµç¨‹" msgid "ModifyACL" msgstr "更改æƒé™æ¸…å•" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:149 msgid "ModifyOwnMembership" msgstr "更改自己是å¦å±žäºŽæŸç¾¤ç»„" @@ -3657,15 +3709,15 @@ msgstr "必须指定 'Name' 的属性" msgid "My %1 tickets" msgstr "我的 %1 申请å•" -#: html/Work/Elements/Tab:37 +#: html/Work/Elements/Tab:38 msgid "My Approvals" msgstr "表å•签核" -#: html/Work/Elements/Tab:35 +#: html/Work/Elements/Tab:36 msgid "My Requests" msgstr "表å•申请追踪" -#: html/Work/Elements/Tab:39 +#: html/Work/Elements/Tab:40 msgid "My Tickets" msgstr "表å•处ç†" @@ -3697,7 +3749,7 @@ msgstr "从未更动" msgid "New" msgstr "新建立" -#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/Edit/Users/Info:33 html/User/Prefs.html:87 html/Work/Preferences/Info:49 +#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/Edit/Users/Info:46 html/User/Prefs.html:87 html/Work/Preferences/Info:52 msgid "New Password" msgstr "æ–°çš„å£ä»¤" @@ -3709,7 +3761,7 @@ msgstr "新的待签核事项" msgid "New Relationships" msgstr "新增关系" -#: html/Work/Elements/Tab:33 +#: html/Work/Elements/Tab:34 msgid "New Request" msgstr "表å•申请" @@ -3765,7 +3817,7 @@ msgstr "新增模æ¿" msgid "New ticket" msgstr "æå‡ºç”³è¯·å•" -#: lib/RT/Ticket_Overlay.pm:2841 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "New ticket doesn't exist" msgstr "没有新申请å•" @@ -3789,7 +3841,7 @@ msgstr "更新窗å£è®¾å®š" msgid "New workflow" msgstr "新增æµç¨‹" -#: html/Ticket/Elements/Tabs:68 +#: html/Ticket/Elements/Tabs:74 msgid "Next" msgstr "下一项" @@ -3801,7 +3853,7 @@ msgstr "下一页" msgid "NickName" msgstr "昵称" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 html/Work/Preferences/Info:26 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 html/Work/Preferences/Info:29 msgid "Nickname" msgstr "昵称" @@ -3845,11 +3897,11 @@ msgstr "未指定申请å•ã€‚é€€å‡ºç”³è¯·å•æ›´æ”¹\\n\\n" msgid "No Workflow" msgstr "没有æµç¨‹" -#: html/Approvals/Elements/Approve:45 html/Work/Approvals/Elements/Approve:35 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "æš‚ä¸å¤„ç†" -#: lib/RT/Interface/Web.pm:958 +#: lib/RT/Interface/Web.pm:960 msgid "No column specified" msgstr "未指定字段" @@ -3861,7 +3913,7 @@ msgstr "找ä¸åˆ°å‘½ä»¤" msgid "No comment entered about this user" msgstr "没有对这å使用者的评论" -#: lib/RT/Ticket_Overlay.pm:2229 lib/RT/Ticket_Overlay.pm:2299 +#: lib/RT/Ticket_Overlay.pm:2237 lib/RT/Ticket_Overlay.pm:2307 msgid "No correspondence attached" msgstr "没有附上申请å•回å¤" @@ -3870,7 +3922,7 @@ msgstr "没有附上申请å•回å¤" msgid "No description for %1" msgstr "没有对 %1 çš„æè¿°" -#: lib/RT/Users_Overlay.pm:149 +#: lib/RT/Users_Overlay.pm:163 msgid "No group specified" msgstr "未指定群组" @@ -3882,7 +3934,7 @@ msgstr "没有设定å£ä»¤" msgid "No permission to create queues" msgstr "没有新增表å•çš„æƒé™" -#: lib/RT/Ticket_Overlay.pm:361 +#: lib/RT/Ticket_Overlay.pm:366 #. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "æ²¡æœ‰åœ¨è¡¨å• '%1' 新增申请å•çš„æƒé™" @@ -3891,7 +3943,7 @@ msgstr "æ²¡æœ‰åœ¨è¡¨å• '%1' 新增申请å•çš„æƒé™" msgid "No permission to create users" msgstr "没有新增使用者的æƒé™" -#: html/SelfService/Display.html:123 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "没有显示该申请å•çš„æƒé™" @@ -3899,7 +3951,7 @@ msgstr "没有显示该申请å•çš„æƒé™" msgid "No permission to view update ticket" msgstr "æ²¡æœ‰æ£€è§†ç”³è¯·å•æ›´æ–°çš„æƒé™" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1514 +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1520 msgid "No principal specified" msgstr "未指定å•ä½" @@ -3947,7 +3999,7 @@ msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„使用者。" msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "找ä¸åˆ°åˆæ ¼çš„ RT 使用者。RT cvs 处ç†å™¨å·²åœç”¨ã€‚è¯·å‘ RT 管ç†è€…询问。\\n" -#: lib/RT/Interface/Web.pm:955 +#: lib/RT/Interface/Web.pm:957 msgid "No value sent to _Set!\\n" msgstr "_Set 没有收到任何值!\\n" @@ -3955,7 +4007,7 @@ msgstr "_Set 没有收到任何值!\\n" msgid "Nobody" msgstr "没有人" -#: lib/RT/Interface/Web.pm:960 +#: lib/RT/Interface/Web.pm:962 msgid "Nonexistant field?" msgstr "字段ä¸å­˜åœ¨ï¼Ÿ" @@ -4083,11 +4135,11 @@ msgstr "104eHRMS 接å£" msgid "OK" msgstr "确定" -#: lib/RT/Record.pm:156 +#: lib/RT/Record.pm:157 msgid "Object could not be created" msgstr "无法新增对象" -#: lib/RT/Record.pm:175 +#: lib/RT/Record.pm:181 msgid "Object created" msgstr "对象新增完毕" @@ -4115,7 +4167,7 @@ msgstr "办公室电è¯" msgid "On" msgstr "等于" -#: html/Edit/Global/CustomField/Top:68 +#: html/Edit/Global/CustomField/Top:71 msgid "On Change" msgstr "æ›´æ”¹ç”³è¯·å•æ—¶" @@ -4127,7 +4179,7 @@ msgstr "评论时" msgid "On Correspond" msgstr "回å¤ç”³è¯·å•æ—¶" -#: etc/initialdata:137 html/Edit/Global/CustomField/Top:57 +#: etc/initialdata:137 html/Edit/Global/CustomField/Top:69 msgid "On Create" msgstr "æ–°å¢žç”³è¯·å•æ—¶" @@ -4161,11 +4213,11 @@ msgstr "仅显示 %1 ä¹‹åŽæ–°å¢žçš„申请å•" msgid "Only show approvals for requests created before %1" msgstr "仅显示 %1 之剿–°å¢žçš„申请å•" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:68 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:51 +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:17 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:68 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:51 msgid "Open" msgstr "å¼€å¯" -#: html/Ticket/Elements/Tabs:135 +#: html/Ticket/Elements/Tabs:141 msgid "Open it" msgstr "å¼€å¯" @@ -4201,11 +4253,11 @@ msgstr "选项æè¿°" msgid "Option Name" msgstr "选项åç§°" -#: html/Search/Elements/PickRestriction:100 html/Work/Search/PickRestriction:87 +#: html/Search/Elements/PickRestriction:101 html/Work/Search/PickRestriction:87 msgid "Ordering and sorting" msgstr "顺åºä¸ŽæŽ’åºæ–¹å¼" -#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Elements/SelectUsers:7 html/Edit/Global/Basic/Top:55 html/Elements/SelectUsers:28 html/User/Prefs.html:110 html/Work/Preferences/Info:77 +#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Elements/SelectUsers:7 html/Edit/Global/Basic/Top:55 html/Elements/SelectUsers:28 html/User/Prefs.html:110 html/Work/Preferences/Info:80 msgid "Organization" msgstr "组织åç§°" @@ -4218,7 +4270,7 @@ msgstr "组织:" msgid "Originating ticket: #%1" msgstr "原申请å•:#%1" -#: html/Edit/Elements/PickUsers:111 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 +#: html/Edit/Elements/PickUsers:119 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 msgid "Other comma-delimited email addresses" msgstr "其它e-mailå¸å· (ä»…e-mail通知;多笔å¸å·è¯·ç”¨é€—å·','区隔)" @@ -4239,7 +4291,7 @@ msgstr "å–代全域æƒé™" msgid "OverrideGlobalACL status %1" msgstr "å–代全域æƒé™ %1" -#: html/Work/Elements/Tab:31 +#: html/Work/Elements/Tab:32 msgid "Overview" msgstr "总览" @@ -4251,7 +4303,7 @@ msgstr "承办申请å•" msgid "OwnTicket" msgstr "承办申请å•" -#: etc/initialdata:38 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:51 html/Edit/Queues/Basic/Top:59 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:19 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/EditPeople:28 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1263 +#: etc/initialdata:38 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:51 html/Edit/Queues/Basic/Top:59 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:23 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/EditPeople:28 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1305 msgid "Owner" msgstr "承办人" @@ -4268,15 +4320,15 @@ msgstr "强制将承办人从 %1 改为 %2" msgid "Owner is" msgstr "承办人" -#: html/Work/Elements/List:27 html/Work/Queues/List:8 html/Work/Tickets/Create.html:55 html/Work/Tickets/Elements/ShowBasics:60 +#: html/Work/Elements/List:31 html/Work/Queues/List:9 html/Work/Tickets/Create.html:55 html/Work/Tickets/Elements/ShowBasics:60 msgid "Owner's Phone" msgstr "承办人电è¯" -#: html/Edit/Elements/Page:40 +#: html/Edit/Elements/Page:38 msgid "Page #" msgstr " " -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:75 html/Work/Preferences/Info:40 +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:75 html/Work/Preferences/Info:43 msgid "Pager" msgstr "呼å«å™¨" @@ -4284,7 +4336,7 @@ msgstr "呼å«å™¨" msgid "PagerPhone" msgstr "呼å«å™¨å·ç " -#: html/Edit/Global/Workflow/Action:75 html/Edit/Global/Workflow/Condition:65 +#: html/Edit/Global/Workflow/Action:76 html/Edit/Global/Workflow/Condition:66 msgid "Parameter" msgstr "呼å«å‚æ•°" @@ -4300,7 +4352,7 @@ msgstr "æ¯ç”³è¯·å•" msgid "Park Space" msgstr "åœè½¦ä½ç”³è¯·" -#: html/Elements/Login:52 html/User/Prefs.html:83 html/Work/Preferences/Info:46 +#: html/Elements/Login:55 html/User/Prefs.html:83 html/Work/Preferences/Info:49 msgid "Password" msgstr "å£ä»¤" @@ -4312,7 +4364,7 @@ msgstr "å£ä»¤æç¤º" msgid "Password too short" msgstr "å£ä»¤å¤ªçŸ­" -#: html/Admin/Users/Modify.html:292 html/User/Prefs.html:209 html/Work/Preferences/Info:173 +#: html/Admin/Users/Modify.html:292 html/User/Prefs.html:212 html/Work/Preferences/Info:177 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "å£ä»¤ï¼š%1" @@ -4321,7 +4373,7 @@ msgstr "å£ä»¤ï¼š%1" msgid "Passwords do not match." msgstr "å£ä»¤ç¡®è®¤å¤±è´¥ã€‚" -#: html/User/Prefs.html:211 html/Work/Preferences/Info:175 +#: html/User/Prefs.html:214 html/Work/Preferences/Info:179 msgid "Passwords do not match. Your password has not been changed" msgstr "å£ä»¤ç¡®è®¤å¤±è´¥ã€‚您的å£ä»¤å¹¶æœªæ”¹å˜ã€‚" @@ -4333,7 +4385,7 @@ msgstr "请选择表å•åç§°" msgid "Pending Approval" msgstr "等待签核" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:95 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:101 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "人员" @@ -4345,7 +4397,7 @@ msgstr "æ‹¥æœ‰è¡¨å•æƒé™äººå‘˜" msgid "Perform a user-defined action" msgstr "执行使用者自订的动作" -#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1096 lib/RT/Group_Overlay.pm:1100 lib/RT/Group_Overlay.pm:1109 lib/RT/Group_Overlay.pm:1160 lib/RT/Group_Overlay.pm:1164 lib/RT/Group_Overlay.pm:1170 lib/RT/Group_Overlay.pm:423 lib/RT/Group_Overlay.pm:515 lib/RT/Group_Overlay.pm:593 lib/RT/Group_Overlay.pm:601 lib/RT/Group_Overlay.pm:698 lib/RT/Group_Overlay.pm:702 lib/RT/Group_Overlay.pm:708 lib/RT/Group_Overlay.pm:901 lib/RT/Group_Overlay.pm:905 lib/RT/Group_Overlay.pm:918 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:934 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:201 lib/RT/Scrip_Overlay.pm:441 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1386 lib/RT/Ticket_Overlay.pm:1396 lib/RT/Ticket_Overlay.pm:1410 lib/RT/Ticket_Overlay.pm:1544 lib/RT/Ticket_Overlay.pm:1553 lib/RT/Ticket_Overlay.pm:1566 lib/RT/Ticket_Overlay.pm:1915 lib/RT/Ticket_Overlay.pm:2053 lib/RT/Ticket_Overlay.pm:2217 lib/RT/Ticket_Overlay.pm:2286 lib/RT/Ticket_Overlay.pm:2647 lib/RT/Ticket_Overlay.pm:2728 lib/RT/Ticket_Overlay.pm:2832 lib/RT/Ticket_Overlay.pm:2847 lib/RT/Ticket_Overlay.pm:3046 lib/RT/Ticket_Overlay.pm:3056 lib/RT/Ticket_Overlay.pm:3061 lib/RT/Ticket_Overlay.pm:3284 lib/RT/Ticket_Overlay.pm:3288 lib/RT/Ticket_Overlay.pm:3487 lib/RT/Ticket_Overlay.pm:3649 lib/RT/Ticket_Overlay.pm:3701 lib/RT/Ticket_Overlay.pm:3907 lib/RT/Transaction_Overlay.pm:415 lib/RT/Transaction_Overlay.pm:422 lib/RT/Transaction_Overlay.pm:451 lib/RT/Transaction_Overlay.pm:458 lib/RT/User_Overlay.pm:1084 lib/RT/User_Overlay.pm:1532 lib/RT/User_Overlay.pm:692 lib/RT/User_Overlay.pm:727 lib/RT/User_Overlay.pm:983 +#: lib/RT/ACE_Overlay.pm:230 lib/RT/ACE_Overlay.pm:236 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:208 lib/RT/CustomField_Overlay.pm:240 lib/RT/CustomField_Overlay.pm:518 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1090 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1103 lib/RT/Group_Overlay.pm:1154 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1164 lib/RT/Group_Overlay.pm:424 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:895 lib/RT/Group_Overlay.pm:899 lib/RT/Group_Overlay.pm:912 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:934 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:201 lib/RT/Scrip_Overlay.pm:441 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1392 lib/RT/Ticket_Overlay.pm:1402 lib/RT/Ticket_Overlay.pm:1416 lib/RT/Ticket_Overlay.pm:1550 lib/RT/Ticket_Overlay.pm:1559 lib/RT/Ticket_Overlay.pm:1572 lib/RT/Ticket_Overlay.pm:1923 lib/RT/Ticket_Overlay.pm:2061 lib/RT/Ticket_Overlay.pm:2225 lib/RT/Ticket_Overlay.pm:2294 lib/RT/Ticket_Overlay.pm:2655 lib/RT/Ticket_Overlay.pm:2736 lib/RT/Ticket_Overlay.pm:2840 lib/RT/Ticket_Overlay.pm:2855 lib/RT/Ticket_Overlay.pm:3054 lib/RT/Ticket_Overlay.pm:3064 lib/RT/Ticket_Overlay.pm:3069 lib/RT/Ticket_Overlay.pm:3292 lib/RT/Ticket_Overlay.pm:3296 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3661 lib/RT/Ticket_Overlay.pm:3713 lib/RT/Ticket_Overlay.pm:3925 lib/RT/Transaction_Overlay.pm:415 lib/RT/Transaction_Overlay.pm:422 lib/RT/Transaction_Overlay.pm:451 lib/RT/Transaction_Overlay.pm:458 lib/RT/User_Overlay.pm:1094 lib/RT/User_Overlay.pm:1542 lib/RT/User_Overlay.pm:692 lib/RT/User_Overlay.pm:727 lib/RT/User_Overlay.pm:983 msgid "Permission Denied" msgstr "æƒé™ä¸è¶³" @@ -4365,6 +4417,10 @@ msgstr "代ç†äººç¾¤ç»„" msgid "Personal Groups" msgstr "代ç†äººç¾¤ç»„" +#: html/Edit/Users/Info:55 html/Work/Preferences/Info:27 +msgid "Personal Homepage" +msgstr "个人首页" + #: NOT FOUND IN SOURCE msgid "Personal Todo" msgstr "ç§äººå¾…办事项" @@ -4377,7 +4433,7 @@ msgstr "代ç†äººç¾¤ç»„" msgid "Personal groups:" msgstr "代ç†äººç¾¤ç»„:" -#: html/Work/Preferences/Info:24 +#: NOT FOUND IN SOURCE msgid "PersonalHomepage" msgstr "个人首页" @@ -4405,11 +4461,11 @@ msgstr "电è¯" msgid "Phone number" msgstr "电è¯å·ç " -#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:60 html/Work/Preferences/Info:32 +#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:60 html/Work/Preferences/Info:35 msgid "Phone numbers" msgstr "电è¯å·ç " -#: html/Edit/Queues/Basic/Add.html:3 html/Edit/Queues/Basic/Top:55 html/Edit/Users/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 +#: html/Edit/Queues/Basic/Add.html:3 html/Edit/Queues/Basic/Top:55 html/Edit/Users/Add.html:3 html/Work/Approvals/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 msgid "Pick" msgstr "挑选" @@ -4421,7 +4477,7 @@ msgstr "出å‘地点" msgid "Placeholder" msgstr "尚未完工" -#: html/Edit/Elements/PickUsers:31 html/Edit/Elements/PickUsers:44 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:187 html/Work/Tickets/Elements/EditCustomFieldEntry:24 html/Work/Tickets/Elements/EditCustomFieldEntry:35 +#: html/Edit/Elements/PickUsers:33 html/Edit/Elements/PickUsers:51 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:199 html/Work/Tickets/Elements/EditCustomFieldEntry:42 html/Work/Tickets/Elements/EditCustomFieldEntry:57 msgid "Please Select" msgstr "请选择" @@ -4457,7 +4513,7 @@ msgstr "èŒåŠ¡" msgid "Position Level" msgstr "èŒç­‰" -#: html/Edit/Elements/PickUsers:41 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Queues/Basic/Add.html:26 html/Edit/Users/Add.html:41 html/Work/Delegates/Add.html:26 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 +#: html/Edit/Elements/PickUsers:48 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Queues/Basic/Add.html:26 html/Edit/Users/Add.html:41 html/Work/Approvals/Add.html:27 html/Work/Delegates/Add.html:27 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 msgid "Position Name" msgstr "èŒåŠ¡åç§°" @@ -4473,7 +4529,7 @@ msgstr "èŒçº§" msgid "Pref" msgstr "å好" -#: html/Edit/Elements/104Top:26 html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 html/Work/Elements/Tab:43 +#: html/Edit/Elements/104Top:26 html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 html/Work/Elements/Tab:44 msgid "Preferences" msgstr "å好" @@ -4485,7 +4541,7 @@ msgstr "个人信æ¯" msgid "Prepare Stubbed" msgstr "预备动作完毕" -#: html/Ticket/Elements/Tabs:60 +#: html/Ticket/Elements/Tabs:66 msgid "Prev" msgstr "上一项" @@ -4497,12 +4553,12 @@ msgstr "å‰ä¸€é¡µ" msgid "Pri" msgstr "优先顺ä½" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:552 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "找ä¸åˆ°å•ä½ %1。" -#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 html/Work/Tickets/Elements/EditBasics:41 lib/RT/Tickets_Overlay.pm:1061 +#: html/Search/Elements/PickRestriction:54 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 html/Work/Tickets/Elements/EditBasics:41 lib/RT/Tickets_Overlay.pm:1103 msgid "Priority" msgstr "优先顺ä½" @@ -4514,7 +4570,7 @@ msgstr "优先顺ä½èµ·å§‹å€¼" msgid "Privileged" msgstr "内部æˆå‘˜" -#: html/Admin/Users/Modify.html:272 html/User/Prefs.html:200 html/Work/Preferences/Info:164 +#: html/Admin/Users/Modify.html:272 html/User/Prefs.html:203 html/Work/Preferences/Info:168 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "内部æˆå‘˜çжæ€ï¼š%1" @@ -4523,10 +4579,14 @@ msgstr "内部æˆå‘˜çжæ€ï¼š%1" msgid "Privileged users" msgstr "内部æˆå‘˜" -#: html/Work/Elements/SelectSearch:16 +#: html/Work/Elements/SelectSearch:21 msgid "Process Status" msgstr "处ç†çжæ€" +#: html/Work/Elements/MyRequests:18 html/Work/Elements/MyTickets:18 +msgid "Project" +msgstr "项目" + #: html/Edit/Queues/List:10 msgid "Project Name" msgstr "项目åç§°" @@ -4539,7 +4599,7 @@ msgstr "内部用的虚拟群组" msgid "Public Description" msgstr "公开说明" -#: html/Work/Preferences/Info:70 +#: html/Edit/Users/Info:76 html/Work/Preferences/Info:73 msgid "Public Info" msgstr "公开信æ¯" @@ -4555,7 +4615,7 @@ msgstr "移除过期数æ®: %1" msgid "Query" msgstr "查询" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:17 html/Work/Elements/MyTickets:17 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 html/Work/Tickets/Elements/EditBasics:16 lib/RT/Tickets_Overlay.pm:902 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:20 html/Work/Elements/MyTickets:20 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 html/Work/Tickets/Elements/EditBasics:16 lib/RT/Tickets_Overlay.pm:944 msgid "Queue" msgstr "表å•" @@ -4577,7 +4637,7 @@ msgstr "表å•关键è¯é€‰å–" msgid "Queue Name" msgstr "表å•åç§°" -#: html/Edit/Queues/List:22 html/Work/Elements/List:25 html/Work/Queues/List:7 html/Work/Tickets/Create.html:34 html/Work/Tickets/Elements/ShowBasics:19 +#: html/Edit/Queues/List:22 html/Work/Elements/List:29 html/Work/Queues/List:8 html/Work/Tickets/Create.html:34 html/Work/Tickets/Elements/ShowBasics:19 msgid "Queue Owner" msgstr "业务承办人" @@ -4605,7 +4665,7 @@ msgstr "表å•已存在" msgid "Queue could not be created" msgstr "无法新增表å•" -#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:208 html/Work/Tickets/Create.html:180 +#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:208 html/Work/Tickets/Create.html:186 msgid "Queue could not be loaded." msgstr "无法加载表å•" @@ -4617,7 +4677,7 @@ msgstr "è¡¨å•æ–°å¢žå®Œæ¯•" msgid "Queue is not specified." msgstr "未指定表å•。" -#: html/SelfService/Display.html:70 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "找ä¸åˆ°è¡¨å•" @@ -4725,7 +4785,7 @@ msgstr "%1 专用 RT 系统:%2" msgid "RT has proccessed your commands" msgstr "RT 已执行您的命令" -#: html/Elements/Login:94 +#: html/Elements/Login:100 #. ('2003') 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> 散布。" @@ -4758,7 +4818,7 @@ msgstr "申请å•è¿è¡Œè§’色" msgid "RT_System" msgstr "系统讯æ¯" -#: html/Edit/Global/CustomField/SelectWritable:7 +#: html/Edit/Global/CustomField/SelectWritable:6 msgid "Read Only" msgstr "åªè¯»" @@ -4770,7 +4830,7 @@ msgstr "真实姓å" msgid "RealName" msgstr "真实姓å" -#: html/Work/Approvals/Display.html:30 html/Work/Tickets/Update.html:81 +#: html/Work/Approvals/Elements/Actions:11 msgid "Really reject this ticket?" msgstr "您确定è¦é©³å›žè¿™å¼ ç”³è¯·å•å—?" @@ -4779,7 +4839,7 @@ msgstr "您确定è¦é©³å›žè¿™å¼ ç”³è¯·å•å—?" msgid "Reference by %1 added" msgstr "已加入 %1 为å‚考本申请å•" -#: lib/RT/Transaction_Overlay.pm:629 +#: lib/RT/Transaction_Overlay.pm:632 #. ($value) msgid "Reference by %1 deleted" msgstr "已移除 %1 为å‚考本申请å•" @@ -4789,7 +4849,7 @@ msgstr "已移除 %1 为å‚考本申请å•" msgid "Reference to %1 added" msgstr "已加入å‚è€ƒç”³è¯·å• %1" -#: lib/RT/Transaction_Overlay.pm:626 +#: lib/RT/Transaction_Overlay.pm:629 #. ($value) msgid "Reference to %1 deleted" msgstr "已移除å‚è€ƒç”³è¯·å• %1" @@ -4843,7 +4903,7 @@ msgstr "移除副本" msgid "Remove Requestor" msgstr "移除申请人" -#: html/Ticket/Elements/ShowTransaction:172 html/Ticket/Elements/Tabs:121 html/Work/Tickets/Display.html:54 html/Work/Tickets/Elements/ShowTransaction:115 +#: html/Ticket/Elements/ShowTransaction:183 html/Ticket/Elements/Tabs:127 html/Work/Tickets/Display.html:54 html/Work/Tickets/Elements/ShowTransaction:116 msgid "Reply" msgstr "回å¤" @@ -4863,15 +4923,11 @@ msgstr "上下ç­åˆ·å¡" msgid "Reported on" msgstr "åˆ°èŒæ—¥æœŸ" -#: etc/initialdata:44 html/Ticket/Update.html:39 html/Work/Elements/List:21 html/Work/Elements/MyApprovals:12 html/Work/Elements/MyTickets:20 html/Work/Elements/SelectSearch:31 html/Work/Tickets/Elements/ShowBasics:62 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 html/Ticket/Update.html:39 html/Work/Elements/List:25 html/Work/Elements/MyApprovals:12 html/Work/Elements/MyTickets:24 html/Work/Elements/SelectSearch:36 html/Work/Tickets/Elements/ShowBasics:62 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "申请人" -#: html/Edit/Global/Workflow/Owner.html:44 -msgid "Requestor Group's" -msgstr "申请人所属群组之" - -#: html/Search/Elements/PickRestriction:37 html/Work/Search/PickRestriction:17 +#: html/Work/Search/PickRestriction:17 msgid "Requestor email address" msgstr "申请人电å­é‚®ä»¶ä¿¡ç®±åœ°å€" @@ -4879,7 +4935,11 @@ msgstr "申请人电å­é‚®ä»¶ä¿¡ç®±åœ°å€" msgid "Requestor's" msgstr "申请人所属之第上" -#: html/Work/Elements/List:23 +#: html/Edit/Global/Workflow/Owner.html:44 +msgid "Requestor's Dept." +msgstr "申请人所属部门之" + +#: html/Work/Elements/List:27 msgid "Requestor's Phone" msgstr "申请人电è¯" @@ -4903,7 +4963,7 @@ msgstr "申请å•å¤„ç†æœŸé™" msgid "Reset" msgstr "é‡è®¾" -#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:63 html/Work/Preferences/Info:34 +#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:63 html/Work/Preferences/Info:37 msgid "Residence" msgstr "ä½å¤„" @@ -4911,16 +4971,16 @@ msgstr "ä½å¤„" msgid "Resolution" msgstr "解决状æ€" -#: html/Ticket/Elements/Tabs:131 html/Work/Tickets/Display.html:57 +#: html/Ticket/Elements/Tabs:137 html/Work/Tickets/Display.html:57 msgid "Resolve" msgstr "解决" #: html/Ticket/Update.html:137 -#. ($Ticket->id, $Ticket->Subject) +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "è§£å†³ç”³è¯·å• #%1 (%2)" -#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1215 +#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1220 msgid "Resolved" msgstr "已解决" @@ -4936,11 +4996,11 @@ msgstr "责任区分" msgid "Results" msgstr "结果" -#: html/Search/Elements/PickRestriction:104 html/Work/Search/PickRestriction:90 +#: html/Search/Elements/PickRestriction:105 html/Work/Search/PickRestriction:90 msgid "Results per page" msgstr "æ¯é¡µåˆ—出几笔结果" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 html/Work/Preferences/Info:56 +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 html/Work/Preferences/Info:59 msgid "Retype Password" msgstr "冿¬¡è¾“å…¥å£ä»¤" @@ -4948,11 +5008,11 @@ msgstr "冿¬¡è¾“å…¥å£ä»¤" 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:612 +#: lib/RT/ACE_Overlay.pm:613 msgid "Right Delegated" msgstr "æƒé™ä»£ç†å®Œæ¯•" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:303 msgid "Right Granted" msgstr "æƒé™è®¾å®šå®Œæ¯•" @@ -4960,7 +5020,7 @@ msgstr "æƒé™è®¾å®šå®Œæ¯•" msgid "Right Loaded" msgstr "æƒé™åŠ è½½å®Œæ¯•" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 msgid "Right could not be revoked" msgstr "无法撤消æƒé™" @@ -4968,11 +5028,11 @@ msgstr "无法撤消æƒé™" msgid "Right not found" msgstr "找ä¸åˆ°æƒé™" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 msgid "Right not loaded." msgstr "æƒé™å¹¶æœªåŠ è½½ã€‚" -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:689 msgid "Right revoked" msgstr "æƒé™æ’¤æ¶ˆå®Œæ¯•" @@ -4980,12 +5040,12 @@ msgstr "æƒé™æ’¤æ¶ˆå®Œæ¯•" msgid "Rights" msgstr "æƒé™åŠä»£ç†äºº" -#: lib/RT/Interface/Web.pm:857 +#: lib/RT/Interface/Web.pm:859 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "无法将æƒé™èµ‹äºˆ %1" -#: lib/RT/Interface/Web.pm:887 +#: lib/RT/Interface/Web.pm:889 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "无法撤消 %1 çš„æƒé™" @@ -4998,7 +5058,7 @@ msgstr "角色æˆå‘˜" msgid "Role Name" msgstr "角色åç§°" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 html/Edit/Global/Workflow/Owner.html:55 html/Edit/Global/Workflow/Owner.html:81 html/Edit/Groups/Member:24 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 html/Edit/Global/Workflow/Owner.html:55 html/Edit/Global/Workflow/Owner.html:89 html/Edit/Groups/Member:24 msgid "Roles" msgstr "角色" @@ -5072,7 +5132,7 @@ msgstr "手续删除完毕" msgid "Scrips" msgstr "手续" -#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:24 +#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:26 msgid "Scrips " msgstr "讯æ¯é€šçŸ¥" @@ -5084,7 +5144,7 @@ msgstr "%1 的手续\\n" msgid "Scrips which apply to all queues" msgstr "适用于所有表å•的手续" -#: html/Edit/Elements/104Buttons:86 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 html/Work/Elements/Tab:45 html/Work/Search/PickRestriction:108 +#: html/Edit/Elements/104Buttons:86 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:164 html/Work/Elements/Tab:46 html/Work/Search/PickRestriction:108 msgid "Search" msgstr "查询" @@ -5140,11 +5200,11 @@ msgstr "选择自订字段" msgid "Select group" msgstr "选择群组" -#: lib/RT/CustomField_Overlay.pm:421 +#: lib/RT/CustomField_Overlay.pm:428 msgid "Select multiple values" msgstr "选择多é‡é¡¹ç›®" -#: lib/RT/CustomField_Overlay.pm:418 +#: lib/RT/CustomField_Overlay.pm:425 msgid "Select one value" msgstr "选择å•一项目" @@ -5180,7 +5240,7 @@ msgstr "多é‡é€‰é¡¹" msgid "SelectSingle" msgstr "å•一选项" -#: html/Edit/Elements/PickUsers:87 html/Edit/Users/Add.html:78 +#: html/Edit/Elements/PickUsers:95 html/Edit/Users/Add.html:78 msgid "Selected users:" msgstr "新增对象:" @@ -5308,7 +5368,7 @@ msgstr "登记æˆä¸ºç”³è¯·äººæˆ–副本收件人" msgid "Sign up as a ticket or queue AdminCc" msgstr "登记æˆä¸ºç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/Edit/Users/Info:52 html/User/Prefs.html:148 html/Work/Preferences/Info:113 +#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/Edit/Users/Info:96 html/User/Prefs.html:148 html/Work/Preferences/Info:116 msgid "Signature" msgstr "ç­¾åæ¡£" @@ -5332,7 +5392,7 @@ msgstr "顺åº" msgid "Sort key" msgstr "æŽ’åºæ–¹å¼" -#: html/Search/Elements/PickRestriction:108 html/Work/Search/PickRestriction:95 +#: html/Search/Elements/PickRestriction:109 html/Work/Search/PickRestriction:95 msgid "Sort results by" msgstr "ç»“æžœæŽ’åºæ–¹å¼" @@ -5344,11 +5404,11 @@ msgstr "排åºé¡ºåº" msgid "Stage" msgstr "å…³å¡" -#: html/Edit/Global/Workflow/Top:8 +#: html/Edit/Global/Workflow/Top:11 msgid "Stage Action" msgstr "å…³å¡è¿è¡ŒåŠ¨ä½œ" -#: html/Edit/Global/Workflow/Top:5 +#: html/Edit/Global/Workflow/Top:7 msgid "Stage Condition" msgstr "å…³å¡è¿è¡Œæ¡ä»¶" @@ -5380,11 +5440,11 @@ msgstr "应起始日" msgid "Starts date '%1' could not be parsed" msgstr "无法解读起始日期 '%1" -#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:126 html/Work/Preferences/Info:85 +#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:126 html/Work/Preferences/Info:88 msgid "State" msgstr "å·ž" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:15 html/Work/Elements/MyRequests:18 html/Work/Elements/MyTickets:18 html/Work/Search/PickRestriction:54 html/Work/Tickets/Elements/EditBasics:19 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1209 lib/RT/Tickets_Overlay.pm:927 +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:74 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:19 html/Work/Elements/MyRequests:22 html/Work/Elements/MyTickets:22 html/Work/Search/PickRestriction:54 html/Work/Tickets/Elements/EditBasics:19 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1214 lib/RT/Tickets_Overlay.pm:969 msgid "Status" msgstr "现况" @@ -5401,7 +5461,7 @@ msgstr "现况从 %1 改为 %2" msgid "StatusChange" msgstr "çŽ°å†µæ”¹å˜æ—¶" -#: html/Ticket/Elements/Tabs:146 +#: html/Ticket/Elements/Tabs:152 msgid "Steal" msgstr "å¼ºåˆ¶æ›´æ¢æ‰¿åŠžäºº" @@ -5422,7 +5482,7 @@ msgstr "承办人从 %1 强制更æ¢" msgid "Subgroup" msgstr "å­ç¾¤ç»„" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:16 html/Work/Elements/MyTickets:16 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Elements/AddSubject:8 html/Work/Tickets/Elements/EditBasics:8 html/Work/Tickets/Elements/ShowBasics:36 html/Work/Tickets/Elements/ShowSubject:8 lib/RT/Ticket_Overlay.pm:1205 lib/RT/Tickets_Overlay.pm:1006 +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/List:15 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:16 html/Work/Elements/MyTickets:16 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Elements/AddSubject:8 html/Work/Tickets/Elements/EditBasics:8 html/Work/Tickets/Elements/ShowBasics:36 html/Work/Tickets/Elements/ShowSubject:8 lib/RT/Ticket_Overlay.pm:1210 lib/RT/Tickets_Overlay.pm:1048 msgid "Subject" msgstr "主题" @@ -5431,7 +5491,7 @@ msgstr "主题" msgid "Subject changed to %1" msgstr "标题已改为 %1" -#: html/Edit/Users/Info:71 html/Elements/Submit:58 html/Work/Search/Bulk.html:103 +#: html/Edit/Users/Info:116 html/Elements/Submit:58 html/Work/Search/Bulk.html:103 msgid "Submit" msgstr "é€å‡º" @@ -5439,7 +5499,7 @@ msgstr "é€å‡º" msgid "Submit Workflow" msgstr "é€å‡ºæµç¨‹" -#: lib/RT/Group_Overlay.pm:746 +#: lib/RT/Group_Overlay.pm:748 msgid "Succeeded" msgstr "设定æˆåŠŸ" @@ -5475,7 +5535,7 @@ msgstr "系统" msgid "System Defined" msgstr "系统定义" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:856 lib/RT/Interface/Web.pm:886 +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:858 lib/RT/Interface/Web.pm:888 msgid "System Error" msgstr "系统错误" @@ -5491,11 +5551,11 @@ msgstr "系统错误。设定æƒé™å¤±è´¥ã€‚" msgid "System Rights" msgstr "系统æƒé™" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:616 msgid "System error. Right not delegated." msgstr "系统错误。æƒé™ä»£ç†å¤±è´¥ã€‚" -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 msgid "System error. Right not granted." msgstr "系统错误。设定æƒé™å¤±è´¥ã€‚" @@ -5515,7 +5575,7 @@ msgstr "系统内部用" msgid "SystemRolegroup for internal use" msgstr "内部使用的系统角色群组" -#: lib/RT/CurrentUser.pm:318 +#: lib/RT/CurrentUser.pm:361 msgid "TEST_STRING" msgstr "TEST_STRING" @@ -5523,7 +5583,7 @@ msgstr "TEST_STRING" msgid "TabbedUI" msgstr "页签接å£" -#: html/Ticket/Elements/Tabs:142 +#: html/Ticket/Elements/Tabs:148 msgid "Take" msgstr "å—ç†" @@ -5572,7 +5632,7 @@ msgstr "找ä¸åˆ°æ¨¡æ¿" msgid "Template not found\\n" msgstr "找ä¸åˆ°æ¨¡æ¿\\n" -#: lib/RT/Template_Overlay.pm:359 +#: lib/RT/Template_Overlay.pm:360 msgid "Template parsed" msgstr "模æ¿å‰–æžå®Œæ¯•" @@ -5580,7 +5640,7 @@ msgstr "模æ¿å‰–æžå®Œæ¯•" msgid "Templates" msgstr "模æ¿" -#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:23 +#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:25 msgid "Templates " msgstr "通知模æ¿" @@ -5588,19 +5648,19 @@ msgstr "通知模æ¿" msgid "Templates for %1\\n" msgstr "找ä¸åˆ° %1 的模æ¿\\n" -#: lib/RT/Interface/Web.pm:954 +#: lib/RT/Interface/Web.pm:956 msgid "That is already the current value" msgstr "å·²ç»æ˜¯ç›®å‰å­—段的值" -#: lib/RT/CustomField_Overlay.pm:242 +#: lib/RT/CustomField_Overlay.pm:249 msgid "That is not a value for this custom field" msgstr "è¿™ä¸æ˜¯è¯¥è‡ªè®¢å­—段的值" -#: lib/RT/Ticket_Overlay.pm:1926 +#: lib/RT/Ticket_Overlay.pm:1934 msgid "That is the same value" msgstr "åŒæ ·çš„值" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:597 msgid "That principal already has that right" msgstr "这项å•ä½å·²ç»æ‹¥æœ‰è¯¥æƒé™" @@ -5609,7 +5669,7 @@ msgstr "这项å•ä½å·²ç»æ‹¥æœ‰è¯¥æƒé™" msgid "That principal is already a %1 for this queue" msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä¸ªè¡¨å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1460 +#: lib/RT/Ticket_Overlay.pm:1466 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" @@ -5619,16 +5679,16 @@ msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" msgid "That principal is not a %1 for this queue" msgstr "这项å•ä½ä¸æ˜¯è¿™ä¸ªè¡¨å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1577 +#: lib/RT/Ticket_Overlay.pm:1583 #. ($args{'Type'}) msgid "That principal is not a %1 for this ticket" msgstr "这项å•ä½ä¸æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1922 +#: lib/RT/Ticket_Overlay.pm:1930 msgid "That queue does not exist" msgstr "此表å•ä¸å­˜åœ¨" -#: lib/RT/Ticket_Overlay.pm:3293 +#: lib/RT/Ticket_Overlay.pm:3301 msgid "That ticket has unresolved dependencies" msgstr "è¿™ä»½ç”³è¯·å•æœ‰å°šæœªè§£å†³çš„附属申请å•" @@ -5636,11 +5696,11 @@ msgstr "è¿™ä»½ç”³è¯·å•æœ‰å°šæœªè§£å†³çš„附属申请å•" msgid "That user already has that right" msgstr "使用者已具有该项æƒé™" -#: lib/RT/Ticket_Overlay.pm:3097 +#: lib/RT/Ticket_Overlay.pm:3105 msgid "That user already owns that ticket" msgstr "è¯¥ä½¿ç”¨è€…å·²ç»æ‰¿åŠžè¿™ä»½ç”³è¯·å•" -#: lib/RT/Ticket_Overlay.pm:3069 +#: lib/RT/Ticket_Overlay.pm:3077 msgid "That user does not exist" msgstr "使用者ä¸å­˜åœ¨" @@ -5664,11 +5724,11 @@ msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" msgid "That user is now unprivilegedileged" msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" -#: lib/RT/Ticket_Overlay.pm:3090 +#: lib/RT/Ticket_Overlay.pm:3098 msgid "That user may not own tickets in that queue" msgstr "使用者å¯èƒ½æ²¡æœ‰æ‰¿åŠžè¡¨å•里的申请å•" -#: lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:206 msgid "That's not a numerical id" msgstr "è¿™ä¸æ˜¯ä¸€ä¸ªæ•°å­—ç¼–å·" @@ -5684,7 +5744,7 @@ msgstr "申请å•的副本收件人" msgid "The administrative CC of a ticket" msgstr "申请å•的管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: lib/RT/Ticket_Overlay.pm:2255 +#: lib/RT/Ticket_Overlay.pm:2263 msgid "The comment has been recorded" msgstr "评论已被纪录" @@ -5696,7 +5756,7 @@ msgstr "下列命令会找到 'general' 表å•内所有è¿ä½œä¸­çš„申请å•, msgid "The following commands were not proccessed:\\n\\n" msgstr "以下命令未被执行:\\n\\n" -#: lib/RT/Interface/Web.pm:957 +#: lib/RT/Interface/Web.pm:959 msgid "The new value has been set." msgstr "新的字段值设定完æˆã€‚" @@ -5767,7 +5827,7 @@ msgstr "æ›´æ–°ç”³è¯·å• #%1 的全部信æ¯ï¼š%2" msgid "Ticket #%1: %2" msgstr "ç”³è¯·å• #%1: %2" -#: lib/RT/Ticket_Overlay.pm:632 lib/RT/Ticket_Overlay.pm:653 +#: lib/RT/Ticket_Overlay.pm:637 lib/RT/Ticket_Overlay.pm:658 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "ç”³è¯·å• #%1 æˆåŠŸæ–°å¢žäºŽ '%2' 表å•" @@ -5782,7 +5842,7 @@ msgstr "åŠ è½½ç”³è¯·å• %1\\n" msgid "Ticket %1: %2" msgstr "ç”³è¯·å• %1:%2" -#: html/Edit/Queues/Basic/Top:30 html/Edit/Queues/List:30 html/Work/Queues/List:9 +#: html/Edit/Queues/Basic/Top:30 html/Edit/Queues/List:30 html/Work/Queues/List:10 msgid "Ticket Due" msgstr "表å•å¤„ç†æœŸé™" @@ -5795,7 +5855,7 @@ msgstr "申请å•处ç†çºªå½• # %1 %2" msgid "Ticket ID" msgstr "å•å·" -#: NOT FOUND IN SOURCE +#: html/Work/Elements/SelectSearch:6 msgid "Ticket Id" msgstr "申请å•ç¼–å·" @@ -5807,23 +5867,23 @@ msgstr "表å•è¿è¡ŒæœŸé™" msgid "Ticket Resolved" msgstr "申请å•已解决" -#: html/Edit/Queues/Basic/Top:20 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:21 html/Work/Delegates/List:7 html/Work/Delegates/index.html:11 html/Work/Elements/List:12 html/Work/Elements/SelectSearch:9 html/Work/Queues/List:6 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:11 html/Work/Tickets/Create.html:43 html/Work/Tickets/Elements/ShowBasics:34 +#: html/Edit/Queues/Basic/Top:20 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:21 html/Work/Delegates/List:7 html/Work/Delegates/index.html:12 html/Work/Elements/List:13 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:12 html/Work/Tickets/Elements/ShowBasics:34 msgid "Ticket Type" msgstr "表å•ç§ç±»" -#: html/Search/Elements/PickRestriction:62 html/Work/Search/PickRestriction:43 +#: html/Search/Elements/PickRestriction:63 html/Work/Search/PickRestriction:43 msgid "Ticket attachment" msgstr "申请å•附件" -#: lib/RT/Tickets_Overlay.pm:1185 +#: lib/RT/Tickets_Overlay.pm:1227 msgid "Ticket content" msgstr "申请å•内容" -#: lib/RT/Tickets_Overlay.pm:1231 +#: lib/RT/Tickets_Overlay.pm:1273 msgid "Ticket content type" msgstr "申请å•内容类别" -#: lib/RT/Ticket_Overlay.pm:520 lib/RT/Ticket_Overlay.pm:529 lib/RT/Ticket_Overlay.pm:539 lib/RT/Ticket_Overlay.pm:642 +#: lib/RT/Ticket_Overlay.pm:525 lib/RT/Ticket_Overlay.pm:534 lib/RT/Ticket_Overlay.pm:544 lib/RT/Ticket_Overlay.pm:647 msgid "Ticket could not be created due to an internal error" msgstr "内部错误,无法新增申请å•" @@ -5863,12 +5923,12 @@ msgstr "申请å•视察员" msgid "Tickets" msgstr "申请å•" -#: lib/RT/Tickets_Overlay.pm:1402 +#: lib/RT/Tickets_Overlay.pm:1451 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "ç”³è¯·å• %1 %2" -#: lib/RT/Tickets_Overlay.pm:1367 +#: lib/RT/Tickets_Overlay.pm:1409 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "ç”³è¯·å• %1 (%2)" @@ -5898,7 +5958,7 @@ msgstr "剩馀时间" msgid "Time Worked" msgstr "å¤„ç†æ—¶é—´" -#: lib/RT/Tickets_Overlay.pm:1158 +#: lib/RT/Tickets_Overlay.pm:1200 msgid "Time left" msgstr "剩馀时间" @@ -5906,7 +5966,7 @@ msgstr "剩馀时间" msgid "Time to display" msgstr "显示时间" -#: lib/RT/Tickets_Overlay.pm:1134 +#: lib/RT/Tickets_Overlay.pm:1176 msgid "Time worked" msgstr "å·²å¤„ç†æ—¶é—´" @@ -5914,7 +5974,7 @@ msgstr "å·²å¤„ç†æ—¶é—´" msgid "TimeLeft" msgstr "剩馀时间" -#: lib/RT/Ticket_Overlay.pm:1210 +#: lib/RT/Ticket_Overlay.pm:1215 msgid "TimeWorked" msgstr "å·²å¤„ç†æ—¶é—´" @@ -5926,11 +5986,11 @@ msgstr "产生这次更动的差异档:" msgid "To generate a diff of this commit:\\n" msgstr "产生这次更动的差异档:\\n" -#: lib/RT/Ticket_Overlay.pm:1213 +#: lib/RT/Ticket_Overlay.pm:1218 msgid "Told" msgstr "告知日期" -#: html/Edit/Elements/Page:47 +#: html/Edit/Elements/Page:45 msgid "Total" msgstr "页" @@ -5938,7 +5998,7 @@ msgstr "页" msgid "Transaction" msgstr "更动" -#: lib/RT/Transaction_Overlay.pm:666 +#: lib/RT/Transaction_Overlay.pm:669 #. ($self->Data) msgid "Transaction %1 purged" msgstr "清除更动报告 %1" @@ -5959,10 +6019,14 @@ msgstr "批次更动时" msgid "TransactionCreate" msgstr "新增更动时" -#: lib/RT/Transaction_Overlay.pm:721 +#: lib/RT/Transaction_Overlay.pm:724 msgid "Transactions are immutable" msgstr "ä¸å¯æ›´æ”¹æ›´åŠ¨æŠ¥å‘Š" +#: html/Work/Approvals/Elements/Approve:52 +msgid "Transfer to" +msgstr "移交给" + #: NOT FOUND IN SOURCE msgid "Trying to delete a right: %1" msgstr "试图删除æŸé¡¹æƒé™ï¼š%1" @@ -5975,7 +6039,7 @@ msgstr "星期二" msgid "Tue." msgstr "星期二" -#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1211 lib/RT/Tickets_Overlay.pm:978 +#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1216 lib/RT/Tickets_Overlay.pm:1020 msgid "Type" msgstr "类别" @@ -5991,7 +6055,7 @@ msgstr "外部系统登入å¸å·" msgid "UnixUsername" msgstr "外部系统登入å¸å·" -#: lib/RT/Attachment_Overlay.pm:281 lib/RT/Attachment_Overlay.pm:313 +#: lib/RT/Attachment_Overlay.pm:283 lib/RT/Attachment_Overlay.pm:315 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "ä¸å¯è§£çš„å†…å®¹æ–‡å­—ç¼–ç æ–¹å¼ %1" @@ -6012,7 +6076,7 @@ msgstr "未被å—ç†" msgid "Up" msgstr "上一页" -#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:83 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:63 +#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:91 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:72 msgid "Update" msgstr "处ç†" @@ -6036,7 +6100,7 @@ msgstr "更新电å­é‚®ä»¶ä¿¡ç®±" msgid "Update name" msgstr "æ›´æ–°å¸å·" -#: lib/RT/Interface/Web.pm:467 +#: lib/RT/Interface/Web.pm:469 msgid "Update not recorded." msgstr "更新未被记录" @@ -6062,19 +6126,19 @@ msgid "Update ticket #%1" msgstr "æ›´æ–°ç”³è¯·å• #%1" #: html/Ticket/Update.html:139 -#. ($Ticket->id, $Ticket->Subject) +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "æ›´æ–°ç”³è¯·å• #%1 (%2)" -#: lib/RT/Interface/Web.pm:465 +#: lib/RT/Interface/Web.pm:467 msgid "Update type was neither correspondence nor comment." msgstr "更新的内容并éžç”³è¯·å•回å¤ä¹Ÿä¸æ˜¯è¯„论" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1214 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1219 msgid "Updated" msgstr "剿¬¡æ›´æ–°" -#: html/Work/Preferences/index.html:15 +#: html/Work/Preferences/index.html:15 html/Work/Tickets/Elements/ShowTransaction:11 msgid "User" msgstr "使用者" @@ -6106,11 +6170,11 @@ msgstr "使用者 ID" msgid "User Id" msgstr "使用者 ID" -#: html/Edit/Elements/PickUsers:12 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/Search.html:23 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 +#: html/Edit/Elements/PickUsers:13 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/Search.html:23 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 msgid "User Number" msgstr "员工编å·" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:26 +#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:28 msgid "User Rights" msgstr "使用者æƒé™" @@ -6159,15 +6223,15 @@ msgstr "使用者 %1 已改å为 %2" msgid "User view" msgstr "使用者ç§äººæ•°æ®" -#: NOT FOUND IN SOURCE +#: html/Edit/Elements/PickUsers:38 html/Edit/Global/Workflow/Owner.html:48 html/Edit/Global/Workflow/Owner.html:73 html/Edit/Global/Workflow/Owner.html:82 msgid "UserDefined" msgstr "使用者自定" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:47 html/Elements/Login:54 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "å¸å·" -#: 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/Edit/Groups/Admin:9 html/User/Groups/Members.html:57 html/Work/Tickets/Elements/ShowTransaction:11 +#: 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/Edit/Groups/Admin:9 html/User/Groups/Members.html:57 msgid "Users" msgstr "使用者" @@ -6259,7 +6323,7 @@ msgstr "当评论é€è¾¾æ—¶" msgid "Whenever correspondence comes in" msgstr "当回å¤é€è¾¾æ—¶" -#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:67 html/Work/Preferences/Info:36 +#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:67 html/Work/Preferences/Info:39 msgid "Work" msgstr "å…¬å¸" @@ -6288,7 +6352,7 @@ msgstr "æµç¨‹ç»“æŸ" msgid "Workflow deleted" msgstr "æµç¨‹å·²åˆ é™¤" -#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:25 +#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:27 msgid "Workflows" msgstr "æµç¨‹" @@ -6296,7 +6360,7 @@ msgstr "æµç¨‹" msgid "Writable" msgstr "å¯è¯»å†™" -#: html/autohandler:144 +#: html/autohandler:151 msgid "XXX CHANGEME You are not an authorized user" msgstr "XXX CHANGEME æ‚¨æ˜¯æœªç»æŽˆæƒçš„使用者" @@ -6304,19 +6368,19 @@ msgstr "XXX CHANGEME æ‚¨æ˜¯æœªç»æŽˆæƒçš„使用者" msgid "Yes" msgstr "是" -#: lib/RT/Ticket_Overlay.pm:3200 +#: lib/RT/Ticket_Overlay.pm:3208 msgid "You already own this ticket" msgstr "您已是这份申请å•的承办人" -#: html/autohandler:136 +#: html/autohandler:143 msgid "You are not an authorized user" msgstr "æ‚¨ä¸æ˜¯è¢«æŽˆæƒçš„使用者" -#: html/Ticket/Elements/ShowTransaction:81 +#: html/Ticket/Elements/ShowTransaction:89 msgid "You can access it with the Download button on the right." msgstr "您å¯ä»¥æŒ‰å³æ–¹çš„「下载ã€é”®æ¥å–得。" -#: lib/RT/Ticket_Overlay.pm:3082 +#: lib/RT/Ticket_Overlay.pm:3090 msgid "You can only reassign tickets that you own or that are unowned" msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿åŠžæˆ–æ˜¯æ²¡æœ‰æ‰¿åŠžäººçš„ç”³è¯·å•" @@ -6333,11 +6397,11 @@ msgstr "æ‚¨ä¼šåœ¨è¡¨å• %2 找到 %1 的申请å•" msgid "You have been logged out of RT." msgstr "您已注销 RT。" -#: html/SelfService/Display.html:77 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "æ‚¨æ²¡æœ‰åœ¨è¯¥è¡¨å•æ–°å¢žç”³è¯·å•çš„æƒé™ã€‚" -#: lib/RT/Ticket_Overlay.pm:1935 +#: lib/RT/Ticket_Overlay.pm:1943 msgid "You may not create requests in that queue." msgstr "您ä¸èƒ½åœ¨è¯¥è¡¨å•中æå‡ºç”³è¯·ã€‚" @@ -6377,11 +6441,11 @@ msgstr "您的申请å•已被 %1 驳回。" msgid "Your request was rejected." msgstr "您的申请å•已被驳回。" -#: html/autohandler:170 +#: html/autohandler:196 msgid "Your username or password is incorrect" msgstr "您的å¸å·æˆ–å£ä»¤æœ‰è¯¯" -#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:130 html/Work/Preferences/Info:87 +#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:130 html/Work/Preferences/Info:90 msgid "Zip" msgstr "邮政编ç " @@ -6422,11 +6486,11 @@ msgstr "内容" msgid "content-type" msgstr "类型" -#: lib/RT/Ticket_Overlay.pm:2326 +#: lib/RT/Ticket_Overlay.pm:2334 msgid "correspondence (probably) not sent" msgstr "申请å•回å¤(å¯èƒ½)未é€å‡º" -#: lib/RT/Ticket_Overlay.pm:2336 +#: lib/RT/Ticket_Overlay.pm:2344 msgid "correspondence sent" msgstr "申请å•回å¤å·²é€å‡º" @@ -6434,7 +6498,7 @@ msgstr "申请å•回å¤å·²é€å‡º" msgid "critical" msgstr "严é‡" -#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:34 html/Edit/Queues/List:32 html/Work/Queues/List:11 lib/RT/Date.pm:319 +#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:34 html/Edit/Queues/List:32 html/Work/Queues/List:12 lib/RT/Date.pm:319 msgid "days" msgstr "天" @@ -6454,7 +6518,7 @@ msgstr "删除" msgid "deleted" msgstr "已删除" -#: html/Search/Elements/PickRestriction:67 html/Work/Search/PickRestriction:47 +#: html/Search/Elements/PickRestriction:68 html/Work/Search/PickRestriction:47 msgid "does not match" msgstr "ä¸ç¬¦åˆ" @@ -6462,6 +6526,10 @@ msgstr "ä¸ç¬¦åˆ" msgid "doesn't contain" msgstr "ä¸åŒ…å«" +#: html/Search/Elements/PickRestriction:38 +msgid "email address" +msgstr "电å­é‚®ä»¶ä¿¡ç®±" + #: NOT FOUND IN SOURCE msgid "emergency" msgstr "å±éš¾" @@ -6486,7 +6554,7 @@ msgstr "æ¡£å" msgid "greater than" msgstr "大于" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:194 #. ($self->Name) msgid "group '%1'" msgstr "群组 '%1'" @@ -6503,11 +6571,11 @@ msgstr "ç¼–å·" msgid "info" msgstr "ä¿¡æ¯" -#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:75 +#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:75 msgid "is" msgstr "是" -#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:76 +#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:76 msgid "isn't" msgstr "䏿˜¯" @@ -6516,10 +6584,10 @@ msgid "less than" msgstr "å°äºŽ" #: html/Edit/Global/Workflow/Owner.html:35 -msgid "level Admins" +msgid "level Admin" msgstr "层主管" -#: html/Search/Elements/PickRestriction:66 html/Work/Search/PickRestriction:46 +#: html/Search/Elements/PickRestriction:67 html/Work/Search/PickRestriction:46 msgid "matches" msgstr "符åˆ" @@ -6551,7 +6619,7 @@ msgstr "没有åç§°" msgid "no value" msgstr "没有值" -#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/List:32 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:11 html/Work/Tickets/Elements/EditWatchers:5 html/Work/Tickets/Elements/ShowAttachments:30 html/Work/Tickets/Elements/ShowBasics:27 +#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/List:32 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:12 html/Work/Tickets/Elements/EditWatchers:5 html/Work/Tickets/Elements/ShowAttachments:30 html/Work/Tickets/Elements/ShowBasics:27 msgid "none" msgstr "æ— " @@ -6567,11 +6635,11 @@ msgstr "æç¤º" msgid "notlike" msgstr "ä¸ç¬¦åˆ" -#: html/Edit/Elements/PickUsers:17 html/Edit/Users/Add.html:18 html/Edit/Users/Search.html:28 html/Work/Tickets/Cc:15 +#: html/Edit/Elements/PickUsers:18 html/Edit/Users/Add.html:18 html/Edit/Users/Search.html:28 html/Work/Tickets/Cc:15 msgid "number" msgstr "å·" -#: html/SelfService/Elements/MyRequests:60 lib/RT/Queue_Overlay.pm:58 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:58 msgid "open" msgstr "å¼€å¯" @@ -6579,12 +6647,12 @@ msgstr "å¼€å¯" msgid "opened" msgstr "已开å¯" -#: lib/RT/Group_Overlay.pm:198 +#: lib/RT/Group_Overlay.pm:199 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "使用者「%2ã€çš„「%1ã€ä»£ç†äººç¾¤ç»„" -#: lib/RT/Group_Overlay.pm:206 +#: lib/RT/Group_Overlay.pm:207 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "è¡¨å• %1 %2" @@ -6609,12 +6677,12 @@ msgstr "ç§’" msgid "stalled" msgstr "延宕" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:202 #. ($self->Type) msgid "system %1" msgstr "系统 %1" -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:213 #. ($self->Type) msgid "system group '%1'" msgstr "系统群组 '%1'" @@ -6628,16 +6696,16 @@ msgstr "呼å«ç»„件未指明原因" msgid "ticket #%1" msgstr "ç”³è¯·å• #%1" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:210 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ç”³è¯·å• #%1 %2" -#: html/Work/Elements/SelectSearch:28 +#: html/Work/Elements/SelectSearch:33 msgid "till" msgstr "至" -#: html/Edit/Elements/PickUsers:15 html/Edit/Global/Workflow/Condition:31 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 +#: html/Edit/Elements/PickUsers:16 html/Edit/Global/Workflow/Condition:31 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 msgid "to" msgstr "到" @@ -6645,7 +6713,7 @@ msgstr "到" msgid "true" msgstr "真" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:216 #. ($self->Id) msgid "undescribed group %1" msgstr "没有æè¿°çš„群组 %1" @@ -6654,7 +6722,7 @@ msgstr "没有æè¿°çš„群组 %1" msgid "unresolved" msgstr "未处ç†" -#: lib/RT/Group_Overlay.pm:190 +#: lib/RT/Group_Overlay.pm:191 #. ($user->Object->Name) msgid "user %1" msgstr "使用者 %1" diff --git a/rt/lib/RT/I18N/zh_tw.po b/rt/lib/RT/I18N/zh_tw.po index 6688b6a89..40939ee0e 100644 --- a/rt/lib/RT/I18N/zh_tw.po +++ b/rt/lib/RT/I18N/zh_tw.po @@ -16,7 +16,7 @@ msgid "#%1" msgstr "#%1" #: 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 -#. ($Ticket->Id, $Ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) #. ($Ticket->id, $Ticket->Subject) #. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) @@ -40,7 +40,7 @@ msgstr "%*(%1) 件尚未解決的申請單" msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:790 +#: lib/RT/Tickets_Overlay.pm:831 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -50,11 +50,11 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%7-%2-%3 %4:%5:%6 %1" -#: lib/RT/Ticket_Overlay.pm:3588 lib/RT/Transaction_Overlay.pm:514 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Vendor.pm:19 +#: lib/RT/Ticket_Overlay.pm:3600 lib/RT/Transaction_Overlay.pm:514 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Vendor.pm:26 +#. ($field, $new_value) #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) -#. ($field, $new_value) msgid "%1 %2 added" msgstr "%2 已新增為 %1" @@ -63,18 +63,18 @@ msgstr "%2 已新增為 %1" msgid "%1 %2 ago" msgstr "%1 %2 之å‰" -#: lib/RT/Ticket_Overlay.pm:3594 lib/RT/Transaction_Overlay.pm:521 lib/RT/Transaction_Vendor.pm:25 +#: lib/RT/Ticket_Overlay.pm:3606 lib/RT/Transaction_Overlay.pm:521 lib/RT/Transaction_Vendor.pm:32 +#. ($field, $old_value, $new_value) #. ($cf->Name, $old_value, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) -#. ($field, $old_value, $new_value) msgid "%1 %2 changed to %3" msgstr "%1 已從 %2 改為 %3" -#: lib/RT/Ticket_Overlay.pm:3591 lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:563 lib/RT/Transaction_Vendor.pm:22 +#: lib/RT/Ticket_Overlay.pm:3603 lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:563 lib/RT/Transaction_Vendor.pm:29 +#. ($field, $old_value) #. ($cf->Name, $old_value) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) -#. ($field, $old_value) msgid "%1 %2 deleted" msgstr "%2 已自 %1 刪除" @@ -129,12 +129,12 @@ msgstr "%1 - 指定欲使用的查詢模組" msgid "%1 ScripAction loaded" msgstr "載入手續 %1" -#: html/Edit/Elements/Page:49 +#: html/Edit/Elements/Page:47 #. (scalar $count) msgid "%1 Total" msgstr "å…± %1 ç­†" -#: lib/RT/Ticket_Overlay.pm:3621 +#: lib/RT/Ticket_Overlay.pm:3633 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "新增 %1 作為 %2 的值" @@ -163,7 +163,7 @@ msgstr "%1 看來是個本地物件,å»ä¸åœ¨è³‡æ–™åº«è£¡" msgid "%1 by %2" msgstr "%1 (%2)" -#: lib/RT/Transaction_Overlay.pm:484 lib/RT/Transaction_Overlay.pm:649 lib/RT/Transaction_Overlay.pm:658 lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:484 lib/RT/Transaction_Overlay.pm:652 lib/RT/Transaction_Overlay.pm:661 lib/RT/Transaction_Overlay.pm:664 #. ($self->Field , ( $self->OldValue || $no_value ) , $self->NewValue) #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) @@ -171,7 +171,7 @@ msgstr "%1 (%2)" msgid "%1 changed from %2 to %3" msgstr "%1 的值從 %2 改為 %3" -#: lib/RT/Interface/Web.pm:953 +#: lib/RT/Interface/Web.pm:955 msgid "%1 could not be set to %2." msgstr "無法將 %1 設定為 %2。" @@ -179,17 +179,17 @@ msgstr "無法將 %1 設定為 %2。" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 無法åˆå§‹æ›´æ–° (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2880 +#: lib/RT/Ticket_Overlay.pm:2888 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 ç„¡æ³•å°‡ç¾æ³è¨­æˆå·²è§£æ±ºã€‚RT 資料庫內容å¯èƒ½ä¸ä¸€è‡´ã€‚" -#: html/Elements/MyTickets:24 html/Work/Elements/MyTickets:9 +#: html/Elements/MyTickets:24 #. ($rows) msgid "%1 highest priority tickets I own..." msgstr "å‰ %1 份待處ç†ç”³è«‹å–®..." -#: html/Elements/MyRequests:24 html/Work/Elements/MyRequests:9 +#: html/Elements/MyRequests:24 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "å‰ %1 份é€å‡ºçš„申請單..." @@ -209,12 +209,12 @@ msgstr "%1 是從外部排程程å¼(如 cron)來å°ç”³è«‹å–®é€²è¡Œæ“作的工 msgid "%1 is no longer a %2 for this queue." msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å–®çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Ticket_Overlay.pm:1602 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this ticket." msgstr "%1 å·²ä¸å†æ˜¯æ­¤ç”³è«‹å–®çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:3677 +#: lib/RT/Ticket_Overlay.pm:3689 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 å·²ä¸å†æ˜¯è‡ªè¨‚æ¬„ä½ %2 的值。" @@ -232,6 +232,16 @@ msgstr "%1 分é˜" msgid "%1 not shown" msgstr "沒有顯示 %1" +#: html/Work/Elements/MyTickets:9 +#. ($rows) +msgid "%1 recent tickets I own..." +msgstr "最新 %1 份待處ç†ç”³è«‹å–®..." + +#: html/Work/Elements/MyRequests:9 +#. ($rows) +msgid "%1 recent tickets I requested..." +msgstr "最新 %1 份é€å‡ºçš„申請單..." + #: NOT FOUND IN SOURCE msgid "%1 result(s) found" msgstr "找到 %1 é …çµæžœ" @@ -267,17 +277,17 @@ msgstr "%1 會解決在已解決群組裡æˆå“¡çš„申請單。" msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "如果 %1 起始申請單ä¾è³´æ–¼æŸå€‹éˆçµï¼Œæˆ–是æŸå€‹éˆçµçš„æˆå“¡ï¼Œå®ƒå°‡æœƒè¢«å»¶å®•ã€‚" -#: lib/RT/Transaction_Overlay.pm:382 lib/RT/Transaction_Vendor.pm:37 +#: lib/RT/Transaction_Overlay.pm:382 #. ($self) msgid "%1: no attachment specified" msgstr "%1:未指定附件" -#: html/Ticket/Elements/ShowTransaction:100 html/Work/Tickets/Elements/ShowTransaction:158 +#: html/Ticket/Elements/ShowTransaction:108 html/Work/Tickets/Elements/ShowTransaction:169 #. ($size) msgid "%1b" msgstr "%1 ä½å…ƒçµ„" -#: html/Ticket/Elements/ShowTransaction:97 html/Work/Tickets/Elements/ShowTransaction:155 +#: html/Ticket/Elements/ShowTransaction:105 html/Work/Tickets/Elements/ShowTransaction:166 #. (int($size/102.4)/10) msgid "%1k" msgstr "%1k ä½å…ƒçµ„" @@ -286,7 +296,7 @@ msgstr "%1k ä½å…ƒçµ„" msgid "%quant(%1,result) found" msgstr "找到 %1 é …çµæžœ" -#: lib/RT/Ticket_Overlay.pm:1185 +#: lib/RT/Ticket_Overlay.pm:1190 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' 䏿˜¯ä¸€å€‹åˆæ³•的狀態值" @@ -312,7 +322,7 @@ msgid "(Check boxes to delete)" msgstr "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" #: html/Ticket/Create.html:178 -msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(éµå…¥ç”³è«‹å–®ç·¨è™Ÿæˆ–ç¶²å€ï¼Œä»¥ç©ºç™½åˆ†éš”)" #: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 @@ -345,7 +355,7 @@ msgstr "沒有範本" msgid "(No workflows)" msgstr "沒有æµç¨‹" -#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:56 +#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:57 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>更改後續的收件者å單。)" @@ -369,7 +379,11 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本給å單上以逗號隔開的電å­éƒµä»¶ 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/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:43 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 +#: html/Work/Delegates/index.html:50 +msgid "(default delegate)" +msgstr "(é è¨­ä»£ç†äºº)" + +#: html/Ticket/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:47 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 msgid "(delete)" msgstr "(刪除)" @@ -385,7 +399,7 @@ msgstr "(新增)" msgid "(no name listed)" msgstr "(沒有列出姓å)" -#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:43 html/Work/Elements/MyTickets:52 +#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:47 html/Work/Elements/MyTickets:56 msgid "(no subject)" msgstr "(沒有主題)" @@ -397,11 +411,11 @@ msgstr "(ç„¡)" msgid "(only one ticket)" msgstr "(僅能指定一份申請單)" -#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:17 html/Work/Elements/MyRequests:53 html/Work/Elements/MyTickets:67 html/Work/Tickets/Elements/ShowBasics:52 +#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:21 html/Work/Elements/MyRequests:61 html/Work/Elements/MyTickets:75 html/Work/Tickets/Elements/ShowBasics:52 msgid "(pending approval)" msgstr "(等待簽核)" -#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:55 html/Work/Elements/MyTickets:69 +#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:63 html/Work/Elements/MyTickets:77 msgid "(pending other tickets)" msgstr "(等待其他申請單)" @@ -409,14 +423,18 @@ msgstr "(等待其他申請單)" msgid "(requestor's group)" msgstr "(申請人所屬)" -#: html/Admin/Users/Modify.html:49 html/Edit/Users/Info:26 +#: html/Admin/Users/Modify.html:49 html/Edit/Users/Info:34 msgid "(required)" msgstr "(å¿…å¡«)" -#: html/Ticket/Elements/ShowTransaction:103 html/Work/Tickets/Elements/ShowTransaction:44 +#: html/Ticket/Elements/ShowTransaction:111 html/Work/Tickets/Elements/ShowTransaction:44 msgid "(untitled)" msgstr "(未命å)" +#: html/Work/Tickets/Elements/ShowHints:5 +msgid "*" +msgstr "★" + #: NOT FOUND IN SOURCE msgid ":" msgstr ":" @@ -458,7 +476,7 @@ msgstr "找ä¸åˆ° ACE" msgid "ACE not found" msgstr "找ä¸åˆ° ACE 設定" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:831 msgid "ACEs can only be created and deleted." msgstr "祇能新增或刪除 ACE 設定。" @@ -470,6 +488,10 @@ msgstr "ACLEquivalence" msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "離開以å…ä¸å°å¿ƒæ›´æ”¹åˆ°ç”³è«‹å–®ã€‚\\n" +#: html/Edit/Users/Info:66 html/Work/Preferences/Info:108 +msgid "About Me" +msgstr "個人資訊" + #: html/User/Elements/Tabs:31 msgid "About me" msgstr "個人資訊" @@ -499,7 +521,7 @@ msgstr "動作執行完畢" msgid "Action prepared..." msgstr "動作準備完畢..." -#: html/Work/Elements/List:13 html/Work/Elements/SelectSearch:25 html/Work/Tickets/Create.html:27 html/Work/Tickets/Elements/ShowBasics:12 +#: html/Work/Elements/List:17 html/Work/Elements/SelectSearch:30 html/Work/Tickets/Create.html:27 html/Work/Tickets/Elements/ShowBasics:12 msgid "Activated Date" msgstr "申請啟動時間" @@ -580,7 +602,7 @@ msgstr "新增下一項關å¡" msgid "Added principal as a %1 for this queue" msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤è¡¨å–®çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1480 +#: lib/RT/Ticket_Overlay.pm:1486 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤ç”³è«‹å–®çš„ %1" @@ -589,11 +611,11 @@ msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤ç”³è«‹å–®çš„ %1" msgid "Additional Hints" msgstr "é¡å¤–æç¤º" -#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:114 html/Work/Preferences/Info:79 +#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:114 html/Work/Preferences/Info:82 msgid "Address1" msgstr "ä½å€" -#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:118 html/Work/Preferences/Info:81 +#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:118 html/Work/Preferences/Info:84 msgid "Address2" msgstr "ä½å€(續)" @@ -665,7 +687,7 @@ msgstr "管ç†å“¡å›žè¦†" msgid "AdminCustomFields" msgstr "管ç†è‡ªè¨‚欄ä½" -#: lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:146 msgid "AdminGroup" msgstr "管ç†ç¾¤çµ„" @@ -673,7 +695,7 @@ msgstr "管ç†ç¾¤çµ„" msgid "AdminGroupDescription" msgstr "管ç†ç¾¤çµ„æè¿°" -#: lib/RT/Group_Overlay.pm:147 +#: lib/RT/Group_Overlay.pm:148 msgid "AdminGroupMembership" msgstr "管ç†ç¾¤çµ„æˆå“¡" @@ -733,7 +755,7 @@ msgstr "執行其他æµç¨‹" msgid "Alias for" msgstr "相當於" -#: html/Work/Delegates/index.html:13 html/Work/Elements/SelectSearch:11 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:13 +#: html/Work/Delegates/index.html:14 html/Work/Elements/SelectSearch:16 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:14 msgid "All" msgstr "全部" @@ -810,7 +832,7 @@ msgstr "簽核細節" msgid "Approval Due" msgstr "簽核時é™" -#: html/Work/Approvals/Elements/Approve:37 +#: html/Work/Approvals/Elements/Approve:43 msgid "Approval Notes" msgstr "簽核æ„見" @@ -838,7 +860,7 @@ msgstr "簽核種類" msgid "Approval diagram" msgstr "簽核æµç¨‹" -#: html/Approvals/Elements/Approve:43 html/Work/Approvals/Elements/Approve:29 +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "核准" @@ -890,11 +912,11 @@ msgstr "ç¾æœ‰é™„ä»¶" msgid "Attachment '%1' could not be loaded" msgstr "無法載入附件 '%1'" -#: lib/RT/Transaction_Overlay.pm:390 lib/RT/Transaction_Vendor.pm:50 +#: lib/RT/Transaction_Overlay.pm:390 msgid "Attachment created" msgstr "附件新增完畢" -#: lib/RT/Tickets_Overlay.pm:1208 +#: lib/RT/Tickets_Overlay.pm:1250 msgid "Attachment filename" msgstr "附件檔å" @@ -902,6 +924,10 @@ msgstr "附件檔å" msgid "Attachments" msgstr "附件" +#: lib/RT/Ticket_Overlay.pm:1222 +msgid "Attributes" +msgstr "屬性" + #: NOT FOUND IN SOURCE msgid "Aug" msgstr "八月" @@ -946,7 +972,7 @@ msgstr "權é™é …目列表:" msgid "Back to Homepage" msgstr "回到首é " -#: html/Work/Elements/BackButton:2 html/Work/Search/Bulk.html:101 +#: html/Work/Approvals/Update.html:7 html/Work/Elements/BackButton:2 html/Work/Search/Bulk.html:101 msgid "Back to Previous" msgstr "回上é " @@ -967,11 +993,15 @@ msgstr "%1 的資料錯誤" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "附件的處ç†è™Ÿç¢¼éŒ¯èª¤ã€‚%1 應為 %2\\n" -#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:21 html/Edit/Users/index.html:94 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 +#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:23 html/Edit/Users/index.html:94 html/Ticket/Elements/Tabs:95 html/User/Elements/GroupTabs:37 msgid "Basics" msgstr "基本資訊" -#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:53 +#: html/Work/Approvals/index.html:9 +msgid "Batch Approval" +msgstr "批次簽核" + +#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:54 msgid "Bcc" msgstr "密件副本" @@ -979,7 +1009,7 @@ msgstr "密件副本" msgid "Be sure to save your changes" msgstr "請別忘了儲存修改。" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:320 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:363 msgid "Before" msgstr "æ—©æ–¼" @@ -1019,7 +1049,7 @@ msgstr "事業部" msgid "Business Unit:" msgstr "事業部:" -#: lib/RT/User_Overlay.pm:1529 +#: lib/RT/User_Overlay.pm:1539 msgid "Can not modify system users" msgstr "無法更改系統使用者" @@ -1027,7 +1057,7 @@ msgstr "無法更改系統使用者" msgid "Can this principal see this queue" msgstr "è©²å–®ä½æ˜¯å¦èƒ½æŸ¥é–±æ­¤è¡¨å–®" -#: lib/RT/CustomField_Overlay.pm:205 +#: lib/RT/CustomField_Overlay.pm:212 msgid "Can't add a custom field value without a name" msgstr "ä¸èƒ½æ–°å¢žæ²’有å稱的自訂欄ä½å€¼" @@ -1035,11 +1065,11 @@ msgstr "ä¸èƒ½æ–°å¢žæ²’有å稱的自訂欄ä½å€¼" msgid "Can't link a ticket to itself" msgstr "申請單ä¸èƒ½éˆçµè‡ªå·±ã€‚" -#: lib/RT/Ticket_Overlay.pm:2857 +#: lib/RT/Ticket_Overlay.pm:2865 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "ä¸èƒ½æ•´åˆé€²å·²æ•´åˆéŽçš„申請單。這個錯誤ä¸è©²ç™¼ç”Ÿã€‚" -#: lib/RT/Ticket_Overlay.pm:2659 lib/RT/Ticket_Overlay.pm:2738 +#: lib/RT/Ticket_Overlay.pm:2667 lib/RT/Ticket_Overlay.pm:2746 msgid "Can't specifiy both base and target" msgstr "ä¸èƒ½åŒæ™‚指定起始申請單與目的申請單" @@ -1047,11 +1077,16 @@ msgstr "ä¸èƒ½åŒæ™‚指定起始申請單與目的申請單" msgid "Cancel" msgstr "å–æ¶ˆ" -#: html/autohandler:126 +#: html/autohandler:133 #. ($msg) msgid "Cannot create user: %1" msgstr "無法新增使用者:%1" +#: html/autohandler:187 +#. ($auth_created - time) +msgid "Cannot login: Your system clock differs from server's by %1 seconds!" +msgstr "您的系統時é˜å’Œä¼ºæœå™¨ç›¸å·® %1 秒,無法登入ï¼" + #: NOT FOUND IN SOURCE msgid "Card No." msgstr "å¡è™Ÿ" @@ -1100,7 +1135,7 @@ msgstr "鏿“‡æ¬²æ’¤æ¶ˆçš„æ¬Šåˆ©" msgid "Children" msgstr "å­ç”³è«‹å–®" -#: html/Edit/Elements/PickUsers:21 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 +#: html/Edit/Elements/PickUsers:22 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 msgid "Chinese Name" msgstr "中文姓å" @@ -1108,7 +1143,7 @@ msgstr "中文姓å" msgid "Chinese/English" msgstr "中英文" -#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:122 html/Work/Preferences/Info:83 +#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:122 html/Work/Preferences/Info:86 msgid "City" msgstr "所在城市" @@ -1128,7 +1163,7 @@ msgstr "已解決的申請單" msgid "Closed tickets" msgstr "已解決的申請單" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:54 html/Edit/Global/Workflow/Condition:52 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:55 html/Edit/Global/Workflow/Condition:53 html/Edit/Global/Workflow/Owner.html:115 msgid "Code" msgstr "執行程å¼ç¢¼" @@ -1136,7 +1171,7 @@ msgstr "執行程å¼ç¢¼" msgid "Command not understood!\\n" msgstr "指令無法辨識ï¼\\n" -#: html/Ticket/Elements/ShowTransaction:178 html/Ticket/Elements/Tabs:152 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:60 html/Work/Tickets/Elements/ShowTransaction:118 html/Work/Tickets/Elements/ShowTransaction:32 +#: html/Ticket/Elements/ShowTransaction:189 html/Ticket/Elements/Tabs:158 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:61 html/Work/Tickets/Elements/ShowTransaction:119 html/Work/Tickets/Elements/ShowTransaction:32 msgid "Comment" msgstr "è©•è«–" @@ -1173,7 +1208,7 @@ msgstr "è©•è«–(ä¸é€çµ¦ç”³è«‹äºº)" msgid "Comments about %1" msgstr "å° %1 的評論" -#: html/Admin/Users/Modify.html:184 html/Edit/Users/Info:46 html/Ticket/Elements/ShowRequestor:43 +#: html/Admin/Users/Modify.html:184 html/Edit/Users/Info:90 html/Ticket/Elements/ShowRequestor:43 msgid "Comments about this user" msgstr "使用者æè¿°" @@ -1225,7 +1260,7 @@ msgstr "確èªå¯†ç¢¼" msgid "Confirm Password" msgstr "密碼確èª" -#: html/Work/Approvals/Display.html:25 html/Work/Tickets/Create.html:154 html/Work/Tickets/Create.html:168 html/Work/Tickets/Update.html:77 +#: html/Work/Approvals/Elements/Actions:6 html/Work/Tickets/Create.html:153 html/Work/Tickets/Create.html:167 html/Work/Tickets/Update.html:81 msgid "Confirm Submit" msgstr "確定é€å‡º" @@ -1273,7 +1308,7 @@ msgstr "新增申請單回覆" msgid "Correspondence not recorded" msgstr "未紀錄申請單回覆" -#: lib/RT/Ticket_Overlay.pm:3608 +#: lib/RT/Ticket_Overlay.pm:3620 msgid "Could not add new custom field value for ticket. " msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值 " @@ -1281,7 +1316,7 @@ msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值 " msgid "Could not add new custom field value for ticket. %1 " msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值。%1 " -#: lib/RT/Ticket_Overlay.pm:3108 lib/RT/Ticket_Overlay.pm:3116 lib/RT/Ticket_Overlay.pm:3133 +#: lib/RT/Ticket_Overlay.pm:3116 lib/RT/Ticket_Overlay.pm:3124 lib/RT/Ticket_Overlay.pm:3141 msgid "Could not change owner. " msgstr "ä¸èƒ½æ›´æ”¹æ‰¿è¾¦äººã€‚ " @@ -1300,7 +1335,7 @@ msgstr "無法建立訊æ¯é€šçŸ¥" msgid "Could not create Template" msgstr "無法建立通知範本" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:471 lib/RT/Group_Overlay.pm:478 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 msgid "Could not create group" msgstr "無法新增群組" @@ -1314,7 +1349,7 @@ msgstr "無法新增項目" msgid "Could not create template: %1" msgstr "無法新增範本:%1" -#: lib/RT/Ticket_Overlay.pm:1118 lib/RT/Ticket_Overlay.pm:353 +#: lib/RT/Ticket_Overlay.pm:1123 lib/RT/Ticket_Overlay.pm:358 msgid "Could not create ticket. Queue not set" msgstr "無法新增申請單。尚未指定表單。" @@ -1339,11 +1374,11 @@ msgstr "找ä¸åˆ°ç·¨è™Ÿ %1 的申請單" msgid "Could not find group %1." msgstr "找ä¸åˆ°ç¾¤çµ„ %1。" -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1448 +#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1454 msgid "Could not find or create that user" msgstr "找ä¸åˆ°æˆ–無法新增該å使用者" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1533 msgid "Could not find that principal" msgstr "找ä¸åˆ°è©²å–®ä½" @@ -1360,7 +1395,7 @@ msgstr "無法載入群組" msgid "Could not make that principal a %1 for this queue" msgstr "無法將該單ä½è¨­ç‚ºæ­¤è¡¨å–®çš„ %1。" -#: lib/RT/Ticket_Overlay.pm:1469 +#: lib/RT/Ticket_Overlay.pm:1475 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "無法將該單ä½è¨­ç‚ºæ­¤ç”³è«‹å–®çš„ %1。" @@ -1370,16 +1405,16 @@ msgstr "無法將該單ä½è¨­ç‚ºæ­¤ç”³è«‹å–®çš„ %1。" msgid "Could not remove that principal as a %1 for this queue" msgstr "ç„¡æ³•å°‡å–®ä½ %1 從表單移除。" -#: lib/RT/Ticket_Overlay.pm:1585 +#: lib/RT/Ticket_Overlay.pm:1591 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this ticket" msgstr "ç„¡æ³•å°‡å–®ä½ %1 從申請單移除。" -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Group_Overlay.pm:976 msgid "Couldn't add member to group" msgstr "無法新增æˆå“¡è‡³ç¾¤çµ„" -#: lib/RT/Ticket_Overlay.pm:3618 lib/RT/Ticket_Overlay.pm:3674 +#: lib/RT/Ticket_Overlay.pm:3630 lib/RT/Ticket_Overlay.pm:3686 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "無法新增更動報告" @@ -1392,15 +1427,15 @@ msgstr "無法從 gpg 回函辨識出該採å–的行動\\n" msgid "Couldn't find group\\n" msgstr "找ä¸åˆ°ç¾¤çµ„\\n" -#: lib/RT/Interface/Web.pm:962 +#: lib/RT/Interface/Web.pm:964 msgid "Couldn't find row" msgstr "找ä¸åˆ°æ­¤åˆ—資料" -#: lib/RT/Group_Overlay.pm:956 +#: lib/RT/Group_Overlay.pm:950 msgid "Couldn't find that principal" msgstr "找ä¸åˆ°è©²å–®ä½" -#: lib/RT/CustomField_Overlay.pm:239 +#: lib/RT/CustomField_Overlay.pm:246 msgid "Couldn't find that value" msgstr "找ä¸åˆ°è©²å€¼" @@ -1429,7 +1464,7 @@ msgstr "無法載入 RT 設定檔 '%1' %2" msgid "Couldn't load Scrips." msgstr "無法載入手續。" -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:55 html/Edit/Global/GroupRight/Add.html:60 html/Edit/Global/UserRight/Add.html:25 html/Edit/Global/UserRight/Add.html:30 html/Edit/Groups/Member:120 html/Edit/Groups/Members/Add.html:43 html/Edit/Rights/index.html:58 html/Edit/Rights/index.html:63 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:55 html/Edit/Global/GroupRight/Add.html:60 html/Edit/Global/UserRight/Add.html:25 html/Edit/Global/UserRight/Add.html:30 html/Edit/Groups/Member:121 html/Edit/Groups/Members/Add.html:44 html/Edit/Rights/index.html:58 html/Edit/Rights/index.html:63 #. ($ObjectGroup) #. ($Report) #. ($Group) @@ -1437,7 +1472,7 @@ msgstr "無法載入手續。" msgid "Couldn't load group %1" msgstr "無法載入手續 %1" -#: lib/RT/Link_Overlay.pm:174 lib/RT/Link_Overlay.pm:183 lib/RT/Link_Overlay.pm:210 +#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 msgid "Couldn't load link" msgstr "無法載入éˆçµã€‚" @@ -1465,12 +1500,12 @@ msgstr "無法載入範本" msgid "Couldn't load that user (%1)" msgstr "無法載入該å使用者(%1)" -#: html/SelfService/Display.html:114 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "無法載入申請單 '%1'" -#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:134 html/Work/Preferences/Info:89 +#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:134 html/Work/Preferences/Info:92 msgid "Country" msgstr "國家" @@ -1624,7 +1659,7 @@ msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹ä½¿ç”¨è€…" msgid "CreateTicket" msgstr "新增申請單" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1212 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1217 msgid "Created" msgstr "新增日" @@ -1703,7 +1738,7 @@ msgstr "ç¾æœ‰è¦–察員" msgid "Custom Field #%1" msgstr "è‡ªè¨‚æ¬„ä½ #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:22 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:24 html/Ticket/Elements/ShowSummary:35 msgid "Custom Fields" msgstr "自訂欄ä½" @@ -1723,22 +1758,22 @@ msgstr "動作å‰åŸ·è¡Œç¨‹å¼" msgid "Custom condition" msgstr "自訂æ¢ä»¶" -#: lib/RT/Tickets_Overlay.pm:1637 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "è‡ªè¨‚æ¬„ä½ %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1632 +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "è‡ªè¨‚æ¬„ä½ %1 已有值" -#: lib/RT/Tickets_Overlay.pm:1629 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "è‡ªè¨‚æ¬„ä½ %1 沒有值" -#: lib/RT/Ticket_Overlay.pm:3510 +#: lib/RT/Ticket_Overlay.pm:3522 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "找ä¸åˆ°è‡ªè¨‚æ¬„ä½ %1" @@ -1747,11 +1782,11 @@ msgstr "找ä¸åˆ°è‡ªè¨‚æ¬„ä½ %1" msgid "Custom field deleted" msgstr "自訂欄ä½å·²åˆªé™¤" -#: lib/RT/Ticket_Overlay.pm:3660 +#: lib/RT/Ticket_Overlay.pm:3672 msgid "Custom field not found" msgstr "找ä¸åˆ°è‡ªè¨‚欄ä½" -#: lib/RT/CustomField_Overlay.pm:349 +#: lib/RT/CustomField_Overlay.pm:356 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "ç„¡æ³•å¾žè‡ªè¨‚æ¬„ä½ %2 中找到 %1 這個欄ä½å€¼" @@ -1760,19 +1795,19 @@ msgstr "ç„¡æ³•å¾žè‡ªè¨‚æ¬„ä½ %2 中找到 %1 這個欄ä½å€¼" msgid "Custom field value changed from %1 to %2" msgstr "自訂欄ä½å€¼å¾ž %1 改為 %2" -#: lib/RT/CustomField_Overlay.pm:249 +#: lib/RT/CustomField_Overlay.pm:256 msgid "Custom field value could not be deleted" msgstr "無法刪除自訂欄ä½å€¼" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:362 msgid "Custom field value could not be found" msgstr "找ä¸åˆ°è‡ªè¨‚欄ä½å€¼" -#: lib/RT/CustomField_Overlay.pm:247 lib/RT/CustomField_Overlay.pm:357 +#: lib/RT/CustomField_Overlay.pm:254 lib/RT/CustomField_Overlay.pm:364 msgid "Custom field value deleted" msgstr "自訂欄ä½å€¼åˆªé™¤æˆåŠŸ" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:90 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Vendor.pm:5 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:98 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Vendor.pm:5 msgid "CustomField" msgstr "自訂欄ä½" @@ -1792,7 +1827,7 @@ msgstr "MySQL資料庫" msgid "Date of Departure" msgstr "出發日期" -#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:17 +#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:17 msgid "Dates" msgstr "日期" @@ -1877,7 +1912,7 @@ msgstr "代ç†è¡¨å–®ï¼š" msgid "Delegated Type" msgstr "代ç†è¡¨å–®ç¨®é¡ž" -#: html/Edit/Users/index.html:98 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:41 html/Work/Overview/Info:28 +#: html/Edit/Users/index.html:98 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:42 html/Work/Overview/Info:28 msgid "Delegates" msgstr "代ç†äºº" @@ -1957,7 +1992,7 @@ msgstr "刪除此物件會é•ååƒè€ƒå®Œæ•´æ€§" msgid "Deleting this object would violate referential integrity. That's bad." msgstr "刪除此物件會é•ååƒè€ƒå®Œæ•´æ€§" -#: html/Approvals/Elements/Approve:44 html/Work/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:44 msgid "Deny" msgstr "é§å›ž" @@ -2006,7 +2041,7 @@ msgstr "附屬性:\\n" msgid "Dependency by %1 added" msgstr "å·²åŠ å…¥å¯æŽ¥çºŒè™•ç†çš„申請單 %1" -#: lib/RT/Transaction_Overlay.pm:622 +#: lib/RT/Transaction_Overlay.pm:625 #. ($value) msgid "Dependency by %1 deleted" msgstr "å·²ç§»é™¤å¯æŽ¥çºŒè™•ç†çš„申請單 %1" @@ -2016,7 +2051,7 @@ msgstr "å·²ç§»é™¤å¯æŽ¥çºŒè™•ç†çš„申請單 %1" msgid "Dependency on %1 added" msgstr "已加入需先處ç†çš„申請單 %1" -#: lib/RT/Transaction_Overlay.pm:619 +#: lib/RT/Transaction_Overlay.pm:622 #. ($value) msgid "Dependency on %1 deleted" msgstr "已移除需先處ç†çš„申請單 %1" @@ -2049,7 +2084,7 @@ msgstr "經辦業務說明" msgid "Description:" msgstr "æè¿°ï¼š" -#: html/Work/Tickets/Create.html:132 html/Work/Tickets/Create.html:84 html/Work/Tickets/Elements/EditCustomFields:13 html/Work/Tickets/Elements/EditCustomFields:61 html/Work/Tickets/Elements/ShowCustomFields:14 html/Work/Tickets/Elements/ShowCustomFields:53 +#: html/Work/Tickets/Create.html:131 html/Work/Tickets/Create.html:84 html/Work/Tickets/Elements/EditCustomFields:13 html/Work/Tickets/Elements/EditCustomFields:61 html/Work/Tickets/Elements/ShowCustomFields:14 html/Work/Tickets/Elements/ShowCustomFields:53 msgid "Details" msgstr "細節" @@ -2065,11 +2100,11 @@ msgstr "殘障身分" msgid "Disability Type" msgstr "殘障類別" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:17 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 msgid "Disabled" msgstr "åœç”¨" -#: html/Ticket/Elements/Tabs:84 +#: html/Ticket/Elements/Tabs:90 msgid "Display" msgstr "顯示內容" @@ -2101,7 +2136,7 @@ msgstr "å…許一切æ“作" msgid "Don't refresh this page." msgstr "䏿›´æ–°æ­¤é é¢ã€‚" -#: html/Search/Elements/PickRestriction:113 html/Work/Search/PickRestriction:101 +#: html/Search/Elements/PickRestriction:114 html/Work/Search/PickRestriction:101 msgid "Don't show search results" msgstr "ä¸é¡¯ç¤ºæŸ¥è©¢çµæžœ" @@ -2109,7 +2144,7 @@ msgstr "ä¸é¡¯ç¤ºæŸ¥è©¢çµæžœ" msgid "Down" msgstr "下一é " -#: html/Ticket/Elements/ShowTransaction:103 +#: html/Ticket/Elements/ShowTransaction:111 msgid "Download" msgstr "下載" @@ -2117,7 +2152,7 @@ msgstr "下載" msgid "Dr." msgstr "åšå£«" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:43 html/Work/Tickets/Elements/EditBasics:54 lib/RT/Ticket_Overlay.pm:1216 +#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:43 html/Work/Tickets/Elements/EditBasics:54 lib/RT/Ticket_Overlay.pm:1221 msgid "Due" msgstr "到期日" @@ -2134,7 +2169,7 @@ msgstr "無法解讀日期 '%1'" msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "無法載入申請單 '%1':%2.\\n" -#: html/Work/Tickets/Update.html:47 +#: html/Work/Tickets/Update.html:48 msgid "Edit" msgstr "編輯" @@ -2236,7 +2271,7 @@ msgstr "最高學歷" msgid "EffectiveId" msgstr "有效編號" -#: lib/RT/Ticket_Overlay.pm:2673 lib/RT/Ticket_Overlay.pm:2751 +#: lib/RT/Ticket_Overlay.pm:2681 lib/RT/Ticket_Overlay.pm:2759 msgid "Either base or target must be specified" msgstr "éœ€è¦æŒ‡å®šèµ·å§‹ç”³è«‹å–®æˆ–目的申請單" @@ -2321,7 +2356,7 @@ msgstr "試用期滿日" msgid "English Name" msgstr "英文姓å" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:434 msgid "Enter multiple values" msgstr "éµå…¥å¤šé‡é …ç›®" @@ -2329,7 +2364,7 @@ msgstr "éµå…¥å¤šé‡é …ç›®" msgid "Enter one or more conditions below to search for users" msgstr "è¼¸å…¥ä¸‹åˆ—å–®ä¸€æˆ–è¤‡å¼æ¢ä»¶ï¼ŒæŸ¥è©¢ç”¨æˆ¶è³‡æ–™" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:431 msgid "Enter one value" msgstr "éµå…¥å–®ä¸€é …ç›®" @@ -2385,14 +2420,18 @@ msgstr "表單->æ–°å¢žè¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" msgid "Error in parameters to Queue->DelWatcher" msgstr "表單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: lib/RT/Ticket_Overlay.pm:1401 +#: lib/RT/Ticket_Overlay.pm:1407 msgid "Error in parameters to Ticket->AddWatcher" msgstr "申請單->æ–°å¢žè¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: lib/RT/Ticket_Overlay.pm:1558 +#: lib/RT/Ticket_Overlay.pm:1564 msgid "Error in parameters to Ticket->DelWatcher" msgstr "申請單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" +#: bin/rt-crontool:209 +msgid "Escalate tickets" +msgstr "調整申請單優先等級" + #: etc/initialdata:20 msgid "Everyone" msgstr "所有人" @@ -2433,7 +2472,7 @@ msgstr "外部資料庫用戶" msgid "ExternalURL" msgstr "外部介é¢ç¶²å€" -#: html/Admin/Users/Modify.html:72 html/Edit/Users/Info:41 +#: html/Admin/Users/Modify.html:72 html/Edit/Users/Info:85 msgid "Extra info" msgstr "備註" @@ -2480,9 +2519,9 @@ msgstr "欄ä½å稱" #: html/Edit/Global/CustomField/List:5 html/Edit/Global/CustomField/Top:9 msgid "Field Type" -msgstr "欄ä½å±¬æ€§" +msgstr "欄ä½é¡žåˆ¥" -#: html/Edit/Elements/PickUsers:52 html/Edit/Users/Add.html:47 +#: html/Edit/Elements/PickUsers:60 html/Edit/Users/Add.html:47 msgid "Filter" msgstr "篩é¸" @@ -2490,7 +2529,7 @@ msgstr "篩é¸" msgid "Filter people" msgstr "å°è±¡ç¯©é¸" -#: html/Edit/Elements/PickUsers:68 html/Edit/Users/Add.html:63 html/Work/Tickets/Cc:42 +#: html/Edit/Elements/PickUsers:76 html/Edit/Users/Add.html:63 html/Work/Tickets/Cc:42 msgid "Filtered list:" msgstr "篩é¸åˆ—表:" @@ -2498,11 +2537,11 @@ msgstr "篩é¸åˆ—表:" msgid "Fin" msgstr "最終" -#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 html/Work/Tickets/Elements/EditBasics:52 lib/RT/Tickets_Overlay.pm:1110 +#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 html/Work/Tickets/Elements/EditBasics:52 lib/RT/Tickets_Overlay.pm:1152 msgid "Final Priority" msgstr "最終順ä½" -#: lib/RT/Ticket_Overlay.pm:1207 +#: lib/RT/Ticket_Overlay.pm:1212 msgid "FinalPriority" msgstr "最終順ä½" @@ -2534,7 +2573,7 @@ msgstr "尋找申請單" msgid "Finish Approval" msgstr "簽核完畢" -#: html/Ticket/Elements/Tabs:57 +#: html/Ticket/Elements/Tabs:63 msgid "First" msgstr "第一項" @@ -2579,7 +2618,7 @@ msgstr "é›»å­è¡¨å–®ä½œæ¥­å€" msgid "Found %quant(%1,ticket)" msgstr "找到 %1 張申請單" -#: lib/RT/Interface/Web.pm:964 +#: lib/RT/Interface/Web.pm:966 msgid "Found Object" msgstr "已找到物件" @@ -2713,7 +2752,7 @@ msgstr "群組 %1 %2:%3" msgid "Group Admin" msgstr "群組管ç†å“¡" -#: html/Edit/Global/GroupRight/List:5 html/Edit/Global/GroupRight/Top:20 html/Edit/Groups/List:7 +#: html/Edit/Global/GroupRight/List:5 html/Edit/Global/GroupRight/Top:20 html/Edit/Groups/List:8 msgid "Group Description" msgstr "群組æè¿°" @@ -2725,7 +2764,7 @@ msgstr "群組管ç†" msgid "Group Members" msgstr "群組æˆå“¡" -#: html/Edit/Elements/PickUsers:28 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Queues/Basic/Add.html:15 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Delegates/Add.html:15 html/Work/Tickets/Cc:24 +#: html/Edit/Elements/PickUsers:30 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Queues/Basic/Add.html:15 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Approvals/Add.html:16 html/Work/Delegates/Add.html:16 html/Work/Tickets/Cc:24 msgid "Group Name" msgstr "群組å稱" @@ -2733,7 +2772,7 @@ msgstr "群組å稱" msgid "Group Name:" msgstr "群組å稱:" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:27 html/Edit/Users/Group:11 html/Edit/Users/index.html:96 +#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:29 html/Edit/Users/Group:11 html/Edit/Users/index.html:96 msgid "Group Rights" msgstr "群組權é™" @@ -2745,11 +2784,11 @@ msgstr "æ“æœ‰ç¾¤çµ„權é™åˆ—表:" msgid "Group Setup" msgstr "群組設定" -#: html/Edit/Global/GroupRight/List:8 html/Edit/Global/GroupRight/Top:14 html/Edit/Groups/List:10 html/Edit/Groups/Top:15 +#: html/Edit/Global/GroupRight/List:8 html/Edit/Global/GroupRight/Top:14 html/Edit/Groups/List:16 html/Edit/Groups/Top:15 msgid "Group Status" msgstr "群組狀態" -#: lib/RT/Group_Overlay.pm:962 +#: lib/RT/Group_Overlay.pm:956 msgid "Group already has member" msgstr "群組內已有此æˆå“¡" @@ -2762,7 +2801,7 @@ msgstr "無法新增群組" msgid "Group could not be created: %1" msgstr "無法新增群組:%1" -#: lib/RT/Group_Overlay.pm:494 +#: lib/RT/Group_Overlay.pm:496 msgid "Group created" msgstr "群組新增完畢" @@ -2770,11 +2809,11 @@ msgstr "群組新增完畢" msgid "Group created: %1" msgstr "群組 %1 新增完畢" -#: lib/RT/Group_Overlay.pm:1134 +#: lib/RT/Group_Overlay.pm:1128 msgid "Group has no such member" msgstr "群組沒有這個æˆå“¡" -#: lib/RT/Group_Overlay.pm:942 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1455 lib/RT/Ticket_Overlay.pm:1533 +#: lib/RT/Group_Overlay.pm:936 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1461 lib/RT/Ticket_Overlay.pm:1539 msgid "Group not found" msgstr "找ä¸åˆ°ç¾¤çµ„" @@ -2798,7 +2837,7 @@ msgstr "群組 %1 已改å為 %2" msgid "Group with Queue Rights" msgstr "æ“æœ‰è¡¨å–®æ¬Šé™ç¾¤çµ„" -#: html/Edit/Global/Workflow/Owner.html:70 +#: html/Edit/Global/Workflow/Owner.html:78 msgid "Group's" msgstr "群組之" @@ -2810,7 +2849,7 @@ msgstr "群組:" msgid "Groups" msgstr "群組" -#: lib/RT/Group_Overlay.pm:968 +#: lib/RT/Group_Overlay.pm:962 msgid "Groups can't be members of their members" msgstr "ä¸èƒ½å°‡ç¾¤çµ„設為群組內æˆå“¡" @@ -2818,10 +2857,14 @@ msgstr "ä¸èƒ½å°‡ç¾¤çµ„設為群組內æˆå“¡" msgid "Groups with Global Rights" msgstr "æ“æœ‰å…¨åŸŸæ¬Šé™ç¾¤çµ„" -#: html/Edit/Global/GroupRight/List:6 html/Edit/Global/GroupRight/Top:22 html/Edit/Groups/List:8 +#: html/Edit/Global/GroupRight/List:6 html/Edit/Global/GroupRight/Top:22 html/Edit/Groups/List:10 msgid "HRMSDefined" msgstr "組織架構" +#: html/Edit/Global/CustomField/Top:57 +msgid "HTML Attributes" +msgstr "HTML 屬性" + #: NOT FOUND IN SOURCE msgid "Health Insurance" msgstr "å¥ä¿è£œåŠ©èº«ä»½" @@ -2843,11 +2886,11 @@ msgstr "說明" msgid "Help Desks" msgstr "å„項業務窗å£" -#: html/Edit/Global/CustomField/SelectWritable:9 html/Edit/Queues/Basic/Top:80 +#: html/Edit/Global/CustomField/SelectWritable:7 html/Edit/Queues/Basic/Top:80 msgid "Hidden" msgstr "éš±è—" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:87 html/Work/Tickets/Elements/ShowHistory:8 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:93 html/Work/Tickets/Elements/ShowHistory:8 msgid "History" msgstr "紀錄" @@ -2863,7 +2906,7 @@ msgstr "主é " msgid "Hotel Expense" msgstr "ä½å®¿è²»" -#: lib/RT/Base.pm:75 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "我有 %quant(%1,份固體攪拌器)。" @@ -2876,7 +2919,7 @@ msgstr "身分證號" msgid "ID Type" msgstr "身分類別" -#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1037 +#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1079 msgid "Id" msgstr "編號" @@ -2896,11 +2939,11 @@ msgstr "如果此工具程å¼ç‚º setgid,惡æ„的本地端用戶å³èƒ½ç”±æ­¤ msgid "If you've updated anything above, be sure to" msgstr "若您已更新以上資料,請記得按一下" -#: lib/RT/Interface/Web.pm:956 +#: lib/RT/Interface/Web.pm:958 msgid "Illegal value for %1" msgstr "%1 的值錯誤" -#: lib/RT/Interface/Web.pm:959 +#: lib/RT/Interface/Web.pm:961 msgid "Immutable field" msgstr "此欄ä½å€¼ä¸å¯æ›´å‹•" @@ -2924,15 +2967,15 @@ msgstr "列出åœç”¨çš„使用者" msgid "Indirect Employee" msgstr "直接/間接員工" -#: lib/RT/Tickets_Overlay.pm:1086 +#: lib/RT/Tickets_Overlay.pm:1128 msgid "Initial Priority" msgstr "åˆå§‹å„ªå…ˆé †ä½" -#: lib/RT/Ticket_Overlay.pm:1206 lib/RT/Ticket_Overlay.pm:1208 +#: lib/RT/Ticket_Overlay.pm:1211 lib/RT/Ticket_Overlay.pm:1213 msgid "InitialPriority" msgstr "åˆå§‹å„ªå…ˆé †ä½" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:105 lib/RT/Workflow.pm:190 msgid "Input error" msgstr "輸入錯誤" @@ -2940,16 +2983,16 @@ msgstr "輸入錯誤" msgid "Interest noted" msgstr "登記æˆåŠŸ" -#: lib/RT/Ticket_Overlay.pm:3913 +#: lib/RT/Ticket_Overlay.pm:3931 msgid "Internal Error" msgstr "內部錯誤" -#: lib/RT/Record.pm:142 +#: lib/RT/Record.pm:143 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "內部錯誤:%1" -#: lib/RT/Group_Overlay.pm:641 +#: lib/RT/Group_Overlay.pm:643 msgid "Invalid Group Type" msgstr "錯誤的群組類別" @@ -2961,11 +3004,11 @@ msgstr "錯誤的權é™" msgid "Invalid Type" msgstr "錯誤的類型" -#: lib/RT/Interface/Web.pm:961 +#: lib/RT/Interface/Web.pm:963 msgid "Invalid data" msgstr "錯誤的資料" -#: lib/RT/Ticket_Overlay.pm:463 +#: lib/RT/Ticket_Overlay.pm:468 msgid "Invalid owner. Defaulting to 'nobody'." msgstr "錯誤的承辦人。改為é è¨­æ‰¿è¾¦äººã€Œnobodyã€ã€‚" @@ -2977,16 +3020,16 @@ msgstr "錯誤的表單" msgid "Invalid right" msgstr "錯誤的權é™" -#: lib/RT/Record.pm:117 +#: lib/RT/Record.pm:118 #. ($key) msgid "Invalid value for %1" msgstr "%1 的值錯誤" -#: lib/RT/Ticket_Overlay.pm:3517 +#: lib/RT/Ticket_Overlay.pm:3529 msgid "Invalid value for custom field" msgstr "錯誤的自訂欄ä½å€¼" -#: lib/RT/Ticket_Overlay.pm:365 +#: lib/RT/Ticket_Overlay.pm:370 msgid "Invalid value for status" msgstr "錯誤的狀態值" @@ -3034,7 +3077,7 @@ msgstr "一月" msgid "Job" msgstr "è·ç¨±" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:149 msgid "Join or leave this group" msgstr "加入或離開此群組" @@ -3050,7 +3093,7 @@ msgstr "07" msgid "July" msgstr "七月" -#: html/Ticket/Elements/Tabs:98 +#: html/Ticket/Elements/Tabs:104 msgid "Jumbo" msgstr "全部資訊" @@ -3090,11 +3133,11 @@ msgstr "éˆçµæ¨™ç±¤" msgid "Lang" msgstr "使用語言" -#: html/User/Prefs.html:54 html/Work/Preferences/Info:29 +#: html/User/Prefs.html:54 html/Work/Preferences/Info:32 msgid "Language" msgstr "語言" -#: html/Ticket/Elements/Tabs:72 +#: html/Ticket/Elements/Tabs:78 msgid "Last" msgstr "上次更新" @@ -3122,11 +3165,11 @@ msgstr "上次更新" msgid "Left" msgstr "剩餘時間" -#: html/Admin/Users/Modify.html:82 html/Edit/Users/Info:62 +#: html/Admin/Users/Modify.html:82 html/Edit/Users/Info:107 msgid "Let this user access RT" msgstr "å…許這å使用者登入" -#: html/Admin/Users/Modify.html:86 html/Edit/Users/Info:68 +#: html/Admin/Users/Modify.html:86 html/Edit/Users/Info:113 msgid "Let this user be granted rights" msgstr "內部æˆå“¡ï¼ˆå…·æœ‰å€‹äººæ¬Šé™ï¼‰" @@ -3142,25 +3185,25 @@ msgstr "é™åˆ¶è¡¨å–®ç‚º %1 到 %2" msgid "Link a Queue" msgstr "申請表單連çµ" -#: lib/RT/Ticket_Overlay.pm:2765 +#: lib/RT/Ticket_Overlay.pm:2773 msgid "Link already exists" msgstr "æ­¤éˆçµå·²å­˜åœ¨" -#: lib/RT/Ticket_Overlay.pm:2777 +#: lib/RT/Ticket_Overlay.pm:2785 msgid "Link could not be created" msgstr "無法新增éˆçµ" -#: lib/RT/Ticket_Overlay.pm:2785 lib/RT/Ticket_Overlay.pm:2797 +#: lib/RT/Ticket_Overlay.pm:2793 lib/RT/Ticket_Overlay.pm:2805 #. ($TransString) msgid "Link created (%1)" msgstr "éˆçµ(%1)新增完畢" -#: lib/RT/Ticket_Overlay.pm:2698 +#: lib/RT/Ticket_Overlay.pm:2706 #. ($TransString) msgid "Link deleted (%1)" msgstr "éˆçµ(%1)刪除完畢" -#: lib/RT/Ticket_Overlay.pm:2704 +#: lib/RT/Ticket_Overlay.pm:2712 msgid "Link not found" msgstr "找ä¸åˆ°éˆçµ" @@ -3173,7 +3216,7 @@ msgstr "éˆçµç”³è«‹å–® #%1" msgid "Link ticket %1" msgstr "éˆçµç”³è«‹å–® %1" -#: html/Ticket/Elements/Tabs:96 +#: html/Ticket/Elements/Tabs:102 msgid "Links" msgstr "éˆçµ" @@ -3181,7 +3224,7 @@ msgstr "éˆçµ" msgid "List All Users" msgstr "列出所有用戶資料" -#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:107 html/Work/Preferences/Info:75 +#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:107 html/Work/Preferences/Info:78 msgid "Location" msgstr "ä½ç½®" @@ -3203,7 +3246,7 @@ msgstr "紀錄檔å" msgid "Logged in as %1" msgstr "使用者:%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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:60 lib/RT/StyleGuide.pod:777 msgid "Login" msgstr "登入" @@ -3312,20 +3355,20 @@ msgstr "05" msgid "Member %1 added" msgstr "æˆå“¡ %1 新增完畢" -#: lib/RT/Transaction_Overlay.pm:635 +#: lib/RT/Transaction_Overlay.pm:638 #. ($value) msgid "Member %1 deleted" msgstr "æˆå“¡ %1 刪除完畢" -#: lib/RT/Group_Overlay.pm:979 +#: lib/RT/Group_Overlay.pm:973 msgid "Member added" msgstr "新增æˆå“¡å®Œç•¢" -#: lib/RT/Group_Overlay.pm:1141 +#: lib/RT/Group_Overlay.pm:1135 msgid "Member deleted" msgstr "æˆå“¡å·²åˆªé™¤" -#: lib/RT/Group_Overlay.pm:1145 +#: lib/RT/Group_Overlay.pm:1139 msgid "Member not deleted" msgstr "æˆå“¡æœªåˆªé™¤" @@ -3333,7 +3376,7 @@ msgstr "æˆå“¡æœªåˆªé™¤" msgid "Member of" msgstr "隸屬於" -#: html/Work/Preferences/index.html:19 +#: html/Edit/Users/Info:23 html/Work/Preferences/index.html:19 msgid "Member since" msgstr "註冊日期" @@ -3350,16 +3393,16 @@ msgstr "æˆå“¡" msgid "Membership in %1 added" msgstr "所屬群組 %1 加入完畢" -#: lib/RT/Transaction_Overlay.pm:632 +#: lib/RT/Transaction_Overlay.pm:635 #. ($value) msgid "Membership in %1 deleted" msgstr "所屬群組 %1 移除完畢" -#: lib/RT/Ticket_Overlay.pm:2954 +#: lib/RT/Ticket_Overlay.pm:2962 msgid "Merge Successful" msgstr "æ•´åˆå®Œç•¢" -#: lib/RT/Ticket_Overlay.pm:2874 +#: lib/RT/Ticket_Overlay.pm:2882 msgid "Merge failed. Couldn't set EffectiveId" msgstr "æ•´åˆå¤±æ•—。無法設定 EffectiveId" @@ -3367,11 +3410,16 @@ msgstr "æ•´åˆå¤±æ•—。無法設定 EffectiveId" msgid "Merge into" msgstr "æ•´åˆé€²" +#: lib/RT/Transaction_Overlay.pm:601 +#. ($value) +msgid "Merged into %1" +msgstr "已整åˆé€² %1" + #: html/Search/Bulk.html:137 html/Ticket/Update.html:100 msgid "Message" msgstr "訊æ¯" -#: html/Ticket/Elements/ShowTransaction:80 +#: html/Ticket/Elements/ShowTransaction:88 msgid "Message body not shown because it is too large or is not plain text." msgstr "ä¿¡ä»¶å…§æ–‡ä¸æ˜¯ç´”文字,因此無法顯示。" @@ -3379,11 +3427,15 @@ msgstr "ä¿¡ä»¶å…§æ–‡ä¸æ˜¯ç´”文字,因此無法顯示。" msgid "Misc. Expense" msgstr "雜費" -#: lib/RT/Interface/Web.pm:963 +#: lib/RT/Interface/Web.pm:965 msgid "Missing a primary key?: %1" msgstr "缺少主éµå€¼ï¼Ÿ(%1)" -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:71 html/Work/Preferences/Info:38 +#: html/Work/Tickets/Create.html:180 +msgid "Missing mandatory fields" +msgstr "缺少必填欄ä½" + +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:71 html/Work/Preferences/Info:41 msgid "Mobile" msgstr "行動電話" @@ -3479,7 +3531,7 @@ msgstr "更改全域設定的使用者權é™" msgid "Modify global user rights." msgstr "更改全域設定的使用者權é™ã€‚" -#: lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:146 msgid "Modify group metadata or delete group" msgstr "更改群組資料åŠåˆªé™¤ç¾¤çµ„" @@ -3493,7 +3545,7 @@ msgstr "更改 %1 的群組權é™" msgid "Modify group rights for queue %1" msgstr "更改表單 %1 的群組權é™" -#: lib/RT/Group_Overlay.pm:147 +#: lib/RT/Group_Overlay.pm:148 msgid "Modify membership roster for this group" msgstr "更改此群組的æˆå“¡åå–®" @@ -3587,7 +3639,7 @@ msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æµç¨‹" msgid "ModifyACL" msgstr "æ›´æ”¹æ¬Šé™æ¸…å–®" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:149 msgid "ModifyOwnMembership" msgstr "更改自己是å¦å±¬æ–¼æŸç¾¤çµ„" @@ -3657,15 +3709,15 @@ msgstr "必須指定 'Name' 的屬性" msgid "My %1 tickets" msgstr "我的 %1 申請單" -#: html/Work/Elements/Tab:37 +#: html/Work/Elements/Tab:38 msgid "My Approvals" msgstr "表單簽核" -#: html/Work/Elements/Tab:35 +#: html/Work/Elements/Tab:36 msgid "My Requests" msgstr "表單申請追蹤" -#: html/Work/Elements/Tab:39 +#: html/Work/Elements/Tab:40 msgid "My Tickets" msgstr "表單處ç†" @@ -3697,7 +3749,7 @@ msgstr "從未更動" msgid "New" msgstr "新建立" -#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/Edit/Users/Info:33 html/User/Prefs.html:87 html/Work/Preferences/Info:49 +#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/Edit/Users/Info:46 html/User/Prefs.html:87 html/Work/Preferences/Info:52 msgid "New Password" msgstr "新的密碼" @@ -3709,7 +3761,7 @@ msgstr "新的待簽核事項" msgid "New Relationships" msgstr "新增關係" -#: html/Work/Elements/Tab:33 +#: html/Work/Elements/Tab:34 msgid "New Request" msgstr "表單申請" @@ -3765,7 +3817,7 @@ msgstr "新增範本" msgid "New ticket" msgstr "æå‡ºç”³è«‹å–®" -#: lib/RT/Ticket_Overlay.pm:2841 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "New ticket doesn't exist" msgstr "沒有新申請單" @@ -3789,7 +3841,7 @@ msgstr "更新視窗設定" msgid "New workflow" msgstr "新增æµç¨‹" -#: html/Ticket/Elements/Tabs:68 +#: html/Ticket/Elements/Tabs:74 msgid "Next" msgstr "下一項" @@ -3801,7 +3853,7 @@ msgstr "下一é " msgid "NickName" msgstr "暱稱" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 html/Work/Preferences/Info:26 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 html/Work/Preferences/Info:29 msgid "Nickname" msgstr "暱稱" @@ -3845,11 +3897,11 @@ msgstr "未指定申請單。退出申請單更改\\n\\n" msgid "No Workflow" msgstr "沒有æµç¨‹" -#: html/Approvals/Elements/Approve:45 html/Work/Approvals/Elements/Approve:35 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "æš«ä¸è™•ç†" -#: lib/RT/Interface/Web.pm:958 +#: lib/RT/Interface/Web.pm:960 msgid "No column specified" msgstr "未指定欄ä½" @@ -3861,7 +3913,7 @@ msgstr "找ä¸åˆ°å‘½ä»¤" msgid "No comment entered about this user" msgstr "沒有å°é€™å使用者的評論" -#: lib/RT/Ticket_Overlay.pm:2229 lib/RT/Ticket_Overlay.pm:2299 +#: lib/RT/Ticket_Overlay.pm:2237 lib/RT/Ticket_Overlay.pm:2307 msgid "No correspondence attached" msgstr "沒有附上申請單回覆" @@ -3870,7 +3922,7 @@ msgstr "沒有附上申請單回覆" msgid "No description for %1" msgstr "æ²’æœ‰å° %1 çš„æè¿°" -#: lib/RT/Users_Overlay.pm:149 +#: lib/RT/Users_Overlay.pm:163 msgid "No group specified" msgstr "未指定群組" @@ -3882,7 +3934,7 @@ msgstr "沒有設定密碼" msgid "No permission to create queues" msgstr "沒有新增表單的權é™" -#: lib/RT/Ticket_Overlay.pm:361 +#: lib/RT/Ticket_Overlay.pm:366 #. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "沒有在表單 '%1' 新增申請單的權é™" @@ -3891,7 +3943,7 @@ msgstr "沒有在表單 '%1' 新增申請單的權é™" msgid "No permission to create users" msgstr "沒有新增使用者的權é™" -#: html/SelfService/Display.html:123 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "沒有顯示該申請單的權é™" @@ -3899,7 +3951,7 @@ msgstr "沒有顯示該申請單的權é™" msgid "No permission to view update ticket" msgstr "沒有檢視申請單更新的權é™" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1514 +#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1520 msgid "No principal specified" msgstr "未指定單ä½" @@ -3947,7 +3999,7 @@ msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„使用者。" msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "找ä¸åˆ°åˆæ ¼çš„ RT 使用者。RT cvs 處ç†å™¨å·²åœç”¨ã€‚è«‹å‘ RT 管ç†è€…è©¢å•。\\n" -#: lib/RT/Interface/Web.pm:955 +#: lib/RT/Interface/Web.pm:957 msgid "No value sent to _Set!\\n" msgstr "_Set 沒有收到任何值!\\n" @@ -3955,7 +4007,7 @@ msgstr "_Set 沒有收到任何值!\\n" msgid "Nobody" msgstr "沒有人" -#: lib/RT/Interface/Web.pm:960 +#: lib/RT/Interface/Web.pm:962 msgid "Nonexistant field?" msgstr "欄ä½ä¸å­˜åœ¨ï¼Ÿ" @@ -4083,11 +4135,11 @@ msgstr "104eHRMS 介é¢" msgid "OK" msgstr "確定" -#: lib/RT/Record.pm:156 +#: lib/RT/Record.pm:157 msgid "Object could not be created" msgstr "無法新增物件" -#: lib/RT/Record.pm:175 +#: lib/RT/Record.pm:181 msgid "Object created" msgstr "物件新增完畢" @@ -4115,7 +4167,7 @@ msgstr "辦公室電話" msgid "On" msgstr "等於" -#: html/Edit/Global/CustomField/Top:68 +#: html/Edit/Global/CustomField/Top:71 msgid "On Change" msgstr "更改申請單時" @@ -4127,7 +4179,7 @@ msgstr "評論時" msgid "On Correspond" msgstr "回覆申請單時" -#: etc/initialdata:137 html/Edit/Global/CustomField/Top:57 +#: etc/initialdata:137 html/Edit/Global/CustomField/Top:69 msgid "On Create" msgstr "新增申請單時" @@ -4161,11 +4213,11 @@ msgstr "僅顯示 %1 之後新增的申請單" msgid "Only show approvals for requests created before %1" msgstr "僅顯示 %1 之剿–°å¢žçš„申請單" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:11 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:68 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:51 +#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:17 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:68 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:51 msgid "Open" msgstr "開啟" -#: html/Ticket/Elements/Tabs:135 +#: html/Ticket/Elements/Tabs:141 msgid "Open it" msgstr "開啟" @@ -4201,11 +4253,11 @@ msgstr "é¸é …æè¿°" msgid "Option Name" msgstr "é¸é …å稱" -#: html/Search/Elements/PickRestriction:100 html/Work/Search/PickRestriction:87 +#: html/Search/Elements/PickRestriction:101 html/Work/Search/PickRestriction:87 msgid "Ordering and sorting" msgstr "é †åºèˆ‡æŽ’åºæ–¹å¼" -#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Elements/SelectUsers:7 html/Edit/Global/Basic/Top:55 html/Elements/SelectUsers:28 html/User/Prefs.html:110 html/Work/Preferences/Info:77 +#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Elements/SelectUsers:7 html/Edit/Global/Basic/Top:55 html/Elements/SelectUsers:28 html/User/Prefs.html:110 html/Work/Preferences/Info:80 msgid "Organization" msgstr "組織å稱" @@ -4218,7 +4270,7 @@ msgstr "組織:" msgid "Originating ticket: #%1" msgstr "原申請單:#%1" -#: html/Edit/Elements/PickUsers:111 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 +#: html/Edit/Elements/PickUsers:119 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 msgid "Other comma-delimited email addresses" msgstr "å…¶ä»–e-mail帳號 (僅e-mail通知;多筆帳號請用逗號','å€éš”)" @@ -4239,7 +4291,7 @@ msgstr "å–代全域權é™" msgid "OverrideGlobalACL status %1" msgstr "å–ä»£å…¨åŸŸæ¬Šé™ %1" -#: html/Work/Elements/Tab:31 +#: html/Work/Elements/Tab:32 msgid "Overview" msgstr "總覽" @@ -4251,7 +4303,7 @@ msgstr "承辦申請單" msgid "OwnTicket" msgstr "承辦申請單" -#: etc/initialdata:38 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:51 html/Edit/Queues/Basic/Top:59 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:19 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/EditPeople:28 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1263 +#: etc/initialdata:38 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:51 html/Edit/Queues/Basic/Top:59 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:23 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/EditPeople:28 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1305 msgid "Owner" msgstr "承辦人" @@ -4268,15 +4320,15 @@ msgstr "強制將承辦人從 %1 改為 %2" msgid "Owner is" msgstr "承辦人" -#: html/Work/Elements/List:27 html/Work/Queues/List:8 html/Work/Tickets/Create.html:55 html/Work/Tickets/Elements/ShowBasics:60 +#: html/Work/Elements/List:31 html/Work/Queues/List:9 html/Work/Tickets/Create.html:55 html/Work/Tickets/Elements/ShowBasics:60 msgid "Owner's Phone" msgstr "承辦人電話" -#: html/Edit/Elements/Page:40 +#: html/Edit/Elements/Page:38 msgid "Page #" msgstr " " -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:75 html/Work/Preferences/Info:40 +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:75 html/Work/Preferences/Info:43 msgid "Pager" msgstr "呼å«å™¨" @@ -4284,7 +4336,7 @@ msgstr "呼å«å™¨" msgid "PagerPhone" msgstr "呼å«å™¨è™Ÿç¢¼" -#: html/Edit/Global/Workflow/Action:75 html/Edit/Global/Workflow/Condition:65 +#: html/Edit/Global/Workflow/Action:76 html/Edit/Global/Workflow/Condition:66 msgid "Parameter" msgstr "呼å«åƒæ•¸" @@ -4300,7 +4352,7 @@ msgstr "æ¯ç”³è«‹å–®" msgid "Park Space" msgstr "åœè»Šä½ç”³è«‹" -#: html/Elements/Login:52 html/User/Prefs.html:83 html/Work/Preferences/Info:46 +#: html/Elements/Login:55 html/User/Prefs.html:83 html/Work/Preferences/Info:49 msgid "Password" msgstr "密碼" @@ -4312,7 +4364,7 @@ msgstr "密碼æç¤º" msgid "Password too short" msgstr "密碼太短" -#: html/Admin/Users/Modify.html:292 html/User/Prefs.html:209 html/Work/Preferences/Info:173 +#: html/Admin/Users/Modify.html:292 html/User/Prefs.html:212 html/Work/Preferences/Info:177 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "密碼:%1" @@ -4321,7 +4373,7 @@ msgstr "密碼:%1" msgid "Passwords do not match." msgstr "密碼確èªå¤±æ•—。" -#: html/User/Prefs.html:211 html/Work/Preferences/Info:175 +#: html/User/Prefs.html:214 html/Work/Preferences/Info:179 msgid "Passwords do not match. Your password has not been changed" msgstr "密碼確èªå¤±æ•—。您的密碼並未改變。" @@ -4333,7 +4385,7 @@ msgstr "è«‹é¸æ“‡è¡¨å–®å稱" msgid "Pending Approval" msgstr "等待簽核" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:95 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:101 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "人員" @@ -4345,7 +4397,7 @@ msgstr "æ“æœ‰è¡¨å–®æ¬Šé™äººå“¡" msgid "Perform a user-defined action" msgstr "執行使用者自訂的動作" -#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1096 lib/RT/Group_Overlay.pm:1100 lib/RT/Group_Overlay.pm:1109 lib/RT/Group_Overlay.pm:1160 lib/RT/Group_Overlay.pm:1164 lib/RT/Group_Overlay.pm:1170 lib/RT/Group_Overlay.pm:423 lib/RT/Group_Overlay.pm:515 lib/RT/Group_Overlay.pm:593 lib/RT/Group_Overlay.pm:601 lib/RT/Group_Overlay.pm:698 lib/RT/Group_Overlay.pm:702 lib/RT/Group_Overlay.pm:708 lib/RT/Group_Overlay.pm:901 lib/RT/Group_Overlay.pm:905 lib/RT/Group_Overlay.pm:918 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:934 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:201 lib/RT/Scrip_Overlay.pm:441 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1386 lib/RT/Ticket_Overlay.pm:1396 lib/RT/Ticket_Overlay.pm:1410 lib/RT/Ticket_Overlay.pm:1544 lib/RT/Ticket_Overlay.pm:1553 lib/RT/Ticket_Overlay.pm:1566 lib/RT/Ticket_Overlay.pm:1915 lib/RT/Ticket_Overlay.pm:2053 lib/RT/Ticket_Overlay.pm:2217 lib/RT/Ticket_Overlay.pm:2286 lib/RT/Ticket_Overlay.pm:2647 lib/RT/Ticket_Overlay.pm:2728 lib/RT/Ticket_Overlay.pm:2832 lib/RT/Ticket_Overlay.pm:2847 lib/RT/Ticket_Overlay.pm:3046 lib/RT/Ticket_Overlay.pm:3056 lib/RT/Ticket_Overlay.pm:3061 lib/RT/Ticket_Overlay.pm:3284 lib/RT/Ticket_Overlay.pm:3288 lib/RT/Ticket_Overlay.pm:3487 lib/RT/Ticket_Overlay.pm:3649 lib/RT/Ticket_Overlay.pm:3701 lib/RT/Ticket_Overlay.pm:3907 lib/RT/Transaction_Overlay.pm:415 lib/RT/Transaction_Overlay.pm:422 lib/RT/Transaction_Overlay.pm:451 lib/RT/Transaction_Overlay.pm:458 lib/RT/User_Overlay.pm:1084 lib/RT/User_Overlay.pm:1532 lib/RT/User_Overlay.pm:692 lib/RT/User_Overlay.pm:727 lib/RT/User_Overlay.pm:983 +#: lib/RT/ACE_Overlay.pm:230 lib/RT/ACE_Overlay.pm:236 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:208 lib/RT/CustomField_Overlay.pm:240 lib/RT/CustomField_Overlay.pm:518 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1090 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1103 lib/RT/Group_Overlay.pm:1154 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1164 lib/RT/Group_Overlay.pm:424 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:895 lib/RT/Group_Overlay.pm:899 lib/RT/Group_Overlay.pm:912 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:934 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:201 lib/RT/Scrip_Overlay.pm:441 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1392 lib/RT/Ticket_Overlay.pm:1402 lib/RT/Ticket_Overlay.pm:1416 lib/RT/Ticket_Overlay.pm:1550 lib/RT/Ticket_Overlay.pm:1559 lib/RT/Ticket_Overlay.pm:1572 lib/RT/Ticket_Overlay.pm:1923 lib/RT/Ticket_Overlay.pm:2061 lib/RT/Ticket_Overlay.pm:2225 lib/RT/Ticket_Overlay.pm:2294 lib/RT/Ticket_Overlay.pm:2655 lib/RT/Ticket_Overlay.pm:2736 lib/RT/Ticket_Overlay.pm:2840 lib/RT/Ticket_Overlay.pm:2855 lib/RT/Ticket_Overlay.pm:3054 lib/RT/Ticket_Overlay.pm:3064 lib/RT/Ticket_Overlay.pm:3069 lib/RT/Ticket_Overlay.pm:3292 lib/RT/Ticket_Overlay.pm:3296 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3661 lib/RT/Ticket_Overlay.pm:3713 lib/RT/Ticket_Overlay.pm:3925 lib/RT/Transaction_Overlay.pm:415 lib/RT/Transaction_Overlay.pm:422 lib/RT/Transaction_Overlay.pm:451 lib/RT/Transaction_Overlay.pm:458 lib/RT/User_Overlay.pm:1094 lib/RT/User_Overlay.pm:1542 lib/RT/User_Overlay.pm:692 lib/RT/User_Overlay.pm:727 lib/RT/User_Overlay.pm:983 msgid "Permission Denied" msgstr "權é™ä¸è¶³" @@ -4365,6 +4417,10 @@ msgstr "代ç†äººç¾¤çµ„" msgid "Personal Groups" msgstr "代ç†äººç¾¤çµ„" +#: html/Edit/Users/Info:55 html/Work/Preferences/Info:27 +msgid "Personal Homepage" +msgstr "個人首é " + #: NOT FOUND IN SOURCE msgid "Personal Todo" msgstr "ç§äººå¾…辦事項" @@ -4377,7 +4433,7 @@ msgstr "代ç†äººç¾¤çµ„" msgid "Personal groups:" msgstr "代ç†äººç¾¤çµ„:" -#: html/Work/Preferences/Info:24 +#: NOT FOUND IN SOURCE msgid "PersonalHomepage" msgstr "個人首é " @@ -4405,11 +4461,11 @@ msgstr "電話" msgid "Phone number" msgstr "電話號碼" -#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:60 html/Work/Preferences/Info:32 +#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:60 html/Work/Preferences/Info:35 msgid "Phone numbers" msgstr "電話號碼" -#: html/Edit/Queues/Basic/Add.html:3 html/Edit/Queues/Basic/Top:55 html/Edit/Users/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 +#: html/Edit/Queues/Basic/Add.html:3 html/Edit/Queues/Basic/Top:55 html/Edit/Users/Add.html:3 html/Work/Approvals/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 msgid "Pick" msgstr "挑é¸" @@ -4421,7 +4477,7 @@ msgstr "出發地點" msgid "Placeholder" msgstr "尚未完工" -#: html/Edit/Elements/PickUsers:31 html/Edit/Elements/PickUsers:44 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:187 html/Work/Tickets/Elements/EditCustomFieldEntry:24 html/Work/Tickets/Elements/EditCustomFieldEntry:35 +#: html/Edit/Elements/PickUsers:33 html/Edit/Elements/PickUsers:51 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:199 html/Work/Tickets/Elements/EditCustomFieldEntry:42 html/Work/Tickets/Elements/EditCustomFieldEntry:57 msgid "Please Select" msgstr "è«‹é¸æ“‡" @@ -4457,7 +4513,7 @@ msgstr "è·å‹™" msgid "Position Level" msgstr "è·ç­‰" -#: html/Edit/Elements/PickUsers:41 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Queues/Basic/Add.html:26 html/Edit/Users/Add.html:41 html/Work/Delegates/Add.html:26 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 +#: html/Edit/Elements/PickUsers:48 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Queues/Basic/Add.html:26 html/Edit/Users/Add.html:41 html/Work/Approvals/Add.html:27 html/Work/Delegates/Add.html:27 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 msgid "Position Name" msgstr "è·å‹™å稱" @@ -4473,7 +4529,7 @@ msgstr "è·ç´š" msgid "Pref" msgstr "å好" -#: html/Edit/Elements/104Top:26 html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 html/Work/Elements/Tab:43 +#: html/Edit/Elements/104Top:26 html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 html/Work/Elements/Tab:44 msgid "Preferences" msgstr "å好" @@ -4485,7 +4541,7 @@ msgstr "個人資訊" msgid "Prepare Stubbed" msgstr "é å‚™å‹•作完畢" -#: html/Ticket/Elements/Tabs:60 +#: html/Ticket/Elements/Tabs:66 msgid "Prev" msgstr "上一項" @@ -4497,12 +4553,12 @@ msgstr "å‰ä¸€é " msgid "Pri" msgstr "優先順ä½" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:552 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "找ä¸åˆ°å–®ä½ %1。" -#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 html/Work/Tickets/Elements/EditBasics:41 lib/RT/Tickets_Overlay.pm:1061 +#: html/Search/Elements/PickRestriction:54 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 html/Work/Tickets/Elements/EditBasics:41 lib/RT/Tickets_Overlay.pm:1103 msgid "Priority" msgstr "優先順ä½" @@ -4514,7 +4570,7 @@ msgstr "優先順ä½èµ·å§‹å€¼" msgid "Privileged" msgstr "內部æˆå“¡" -#: html/Admin/Users/Modify.html:272 html/User/Prefs.html:200 html/Work/Preferences/Info:164 +#: html/Admin/Users/Modify.html:272 html/User/Prefs.html:203 html/Work/Preferences/Info:168 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "內部æˆå“¡ç‹€æ…‹ï¼š%1" @@ -4523,10 +4579,14 @@ msgstr "內部æˆå“¡ç‹€æ…‹ï¼š%1" msgid "Privileged users" msgstr "內部æˆå“¡" -#: html/Work/Elements/SelectSearch:16 +#: html/Work/Elements/SelectSearch:21 msgid "Process Status" msgstr "處ç†ç‹€æ…‹" +#: html/Work/Elements/MyRequests:18 html/Work/Elements/MyTickets:18 +msgid "Project" +msgstr "專案" + #: html/Edit/Queues/List:10 msgid "Project Name" msgstr "專案å稱" @@ -4539,7 +4599,7 @@ msgstr "內部用的虛擬群組" msgid "Public Description" msgstr "公開說明" -#: html/Work/Preferences/Info:70 +#: html/Edit/Users/Info:76 html/Work/Preferences/Info:73 msgid "Public Info" msgstr "公開資訊" @@ -4555,7 +4615,7 @@ msgstr "ç§»é™¤éŽæœŸè³‡æ–™: %1" msgid "Query" msgstr "查詢" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:17 html/Work/Elements/MyTickets:17 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 html/Work/Tickets/Elements/EditBasics:16 lib/RT/Tickets_Overlay.pm:902 +#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:20 html/Work/Elements/MyTickets:20 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 html/Work/Tickets/Elements/EditBasics:16 lib/RT/Tickets_Overlay.pm:944 msgid "Queue" msgstr "表單" @@ -4577,7 +4637,7 @@ msgstr "表單關éµå­—é¸å–" msgid "Queue Name" msgstr "表單å稱" -#: html/Edit/Queues/List:22 html/Work/Elements/List:25 html/Work/Queues/List:7 html/Work/Tickets/Create.html:34 html/Work/Tickets/Elements/ShowBasics:19 +#: html/Edit/Queues/List:22 html/Work/Elements/List:29 html/Work/Queues/List:8 html/Work/Tickets/Create.html:34 html/Work/Tickets/Elements/ShowBasics:19 msgid "Queue Owner" msgstr "業務承辦人" @@ -4605,7 +4665,7 @@ msgstr "表單已存在" msgid "Queue could not be created" msgstr "無法新增表單" -#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:208 html/Work/Tickets/Create.html:180 +#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:208 html/Work/Tickets/Create.html:186 msgid "Queue could not be loaded." msgstr "無法載入表單" @@ -4617,7 +4677,7 @@ msgstr "表單新增完畢" msgid "Queue is not specified." msgstr "未指定表單。" -#: html/SelfService/Display.html:70 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "找ä¸åˆ°è¡¨å–®" @@ -4725,7 +4785,7 @@ msgstr "%1 專用 RT 系統:%2" msgid "RT has proccessed your commands" msgstr "RT 已執行您的命令" -#: html/Elements/Login:94 +#: html/Elements/Login:100 #. ('2003') 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> 散佈。" @@ -4758,7 +4818,7 @@ msgstr "申請單é‹è¡Œè§’色" msgid "RT_System" msgstr "系統訊æ¯" -#: html/Edit/Global/CustomField/SelectWritable:7 +#: html/Edit/Global/CustomField/SelectWritable:6 msgid "Read Only" msgstr "唯讀" @@ -4770,7 +4830,7 @@ msgstr "真實姓å" msgid "RealName" msgstr "真實姓å" -#: html/Work/Approvals/Display.html:30 html/Work/Tickets/Update.html:81 +#: html/Work/Approvals/Elements/Actions:11 msgid "Really reject this ticket?" msgstr "您確定è¦é§å›žé€™å¼µç”³è«‹å–®å—Žï¼Ÿ" @@ -4779,7 +4839,7 @@ msgstr "您確定è¦é§å›žé€™å¼µç”³è«‹å–®å—Žï¼Ÿ" msgid "Reference by %1 added" msgstr "已加入 %1 為åƒè€ƒæœ¬ç”³è«‹å–®" -#: lib/RT/Transaction_Overlay.pm:629 +#: lib/RT/Transaction_Overlay.pm:632 #. ($value) msgid "Reference by %1 deleted" msgstr "已移除 %1 為åƒè€ƒæœ¬ç”³è«‹å–®" @@ -4789,7 +4849,7 @@ msgstr "已移除 %1 為åƒè€ƒæœ¬ç”³è«‹å–®" msgid "Reference to %1 added" msgstr "已加入åƒè€ƒç”³è«‹å–® %1" -#: lib/RT/Transaction_Overlay.pm:626 +#: lib/RT/Transaction_Overlay.pm:629 #. ($value) msgid "Reference to %1 deleted" msgstr "已移除åƒè€ƒç”³è«‹å–® %1" @@ -4843,7 +4903,7 @@ msgstr "移除副本" msgid "Remove Requestor" msgstr "移除申請人" -#: html/Ticket/Elements/ShowTransaction:172 html/Ticket/Elements/Tabs:121 html/Work/Tickets/Display.html:54 html/Work/Tickets/Elements/ShowTransaction:115 +#: html/Ticket/Elements/ShowTransaction:183 html/Ticket/Elements/Tabs:127 html/Work/Tickets/Display.html:54 html/Work/Tickets/Elements/ShowTransaction:116 msgid "Reply" msgstr "回覆" @@ -4863,15 +4923,11 @@ msgstr "上下ç­åˆ·å¡" msgid "Reported on" msgstr "åˆ°è·æ—¥æœŸ" -#: etc/initialdata:44 html/Ticket/Update.html:39 html/Work/Elements/List:21 html/Work/Elements/MyApprovals:12 html/Work/Elements/MyTickets:20 html/Work/Elements/SelectSearch:31 html/Work/Tickets/Elements/ShowBasics:62 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 html/Ticket/Update.html:39 html/Work/Elements/List:25 html/Work/Elements/MyApprovals:12 html/Work/Elements/MyTickets:24 html/Work/Elements/SelectSearch:36 html/Work/Tickets/Elements/ShowBasics:62 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "申請人" -#: html/Edit/Global/Workflow/Owner.html:44 -msgid "Requestor Group's" -msgstr "申請人所屬群組之" - -#: html/Search/Elements/PickRestriction:37 html/Work/Search/PickRestriction:17 +#: html/Work/Search/PickRestriction:17 msgid "Requestor email address" msgstr "申請人電å­éƒµä»¶ä¿¡ç®±ä½å€" @@ -4879,7 +4935,11 @@ msgstr "申請人電å­éƒµä»¶ä¿¡ç®±ä½å€" msgid "Requestor's" msgstr "申請人所屬之第上" -#: html/Work/Elements/List:23 +#: html/Edit/Global/Workflow/Owner.html:44 +msgid "Requestor's Dept." +msgstr "申請人所屬部門之" + +#: html/Work/Elements/List:27 msgid "Requestor's Phone" msgstr "申請人電話" @@ -4903,7 +4963,7 @@ msgstr "ç”³è«‹å–®è™•ç†æœŸé™" msgid "Reset" msgstr "é‡è¨­" -#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:63 html/Work/Preferences/Info:34 +#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:63 html/Work/Preferences/Info:37 msgid "Residence" msgstr "ä½è™•" @@ -4911,16 +4971,16 @@ msgstr "ä½è™•" msgid "Resolution" msgstr "解決狀態" -#: html/Ticket/Elements/Tabs:131 html/Work/Tickets/Display.html:57 +#: html/Ticket/Elements/Tabs:137 html/Work/Tickets/Display.html:57 msgid "Resolve" msgstr "解決" #: html/Ticket/Update.html:137 -#. ($Ticket->id, $Ticket->Subject) +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "解決申請單 #%1 (%2)" -#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1215 +#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1220 msgid "Resolved" msgstr "已解決" @@ -4936,11 +4996,11 @@ msgstr "責任å€åˆ†" msgid "Results" msgstr "çµæžœ" -#: html/Search/Elements/PickRestriction:104 html/Work/Search/PickRestriction:90 +#: html/Search/Elements/PickRestriction:105 html/Work/Search/PickRestriction:90 msgid "Results per page" msgstr "æ¯é åˆ—å‡ºå¹¾ç­†çµæžœ" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 html/Work/Preferences/Info:56 +#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 html/Work/Preferences/Info:59 msgid "Retype Password" msgstr "冿¬¡è¼¸å…¥å¯†ç¢¼" @@ -4948,11 +5008,11 @@ msgstr "冿¬¡è¼¸å…¥å¯†ç¢¼" 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:612 +#: lib/RT/ACE_Overlay.pm:613 msgid "Right Delegated" msgstr "權é™ä»£ç†å®Œç•¢" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:303 msgid "Right Granted" msgstr "權é™è¨­å®šå®Œç•¢" @@ -4960,7 +5020,7 @@ msgstr "權é™è¨­å®šå®Œç•¢" msgid "Right Loaded" msgstr "權é™è¼‰å…¥å®Œç•¢" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 msgid "Right could not be revoked" msgstr "無法撤消權é™" @@ -4968,11 +5028,11 @@ msgstr "無法撤消權é™" msgid "Right not found" msgstr "找ä¸åˆ°æ¬Šé™" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 msgid "Right not loaded." msgstr "權é™ä¸¦æœªè¼‰å…¥ã€‚" -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:689 msgid "Right revoked" msgstr "æ¬Šé™æ’¤æ¶ˆå®Œç•¢" @@ -4980,12 +5040,12 @@ msgstr "æ¬Šé™æ’¤æ¶ˆå®Œç•¢" msgid "Rights" msgstr "權é™åŠä»£ç†äºº" -#: lib/RT/Interface/Web.pm:857 +#: lib/RT/Interface/Web.pm:859 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "無法將權é™è³¦äºˆ %1" -#: lib/RT/Interface/Web.pm:887 +#: lib/RT/Interface/Web.pm:889 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "無法撤消 %1 的權é™" @@ -4998,7 +5058,7 @@ msgstr "角色æˆå“¡" msgid "Role Name" msgstr "角色å稱" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 html/Edit/Global/Workflow/Owner.html:55 html/Edit/Global/Workflow/Owner.html:81 html/Edit/Groups/Member:24 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 html/Edit/Global/Workflow/Owner.html:55 html/Edit/Global/Workflow/Owner.html:89 html/Edit/Groups/Member:24 msgid "Roles" msgstr "角色" @@ -5072,7 +5132,7 @@ msgstr "手續刪除完畢" msgid "Scrips" msgstr "手續" -#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:24 +#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:26 msgid "Scrips " msgstr "訊æ¯é€šçŸ¥" @@ -5084,7 +5144,7 @@ msgstr "%1 的手續\\n" msgid "Scrips which apply to all queues" msgstr "é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æ‰‹çºŒ" -#: html/Edit/Elements/104Buttons:86 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 html/Work/Elements/Tab:45 html/Work/Search/PickRestriction:108 +#: html/Edit/Elements/104Buttons:86 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:164 html/Work/Elements/Tab:46 html/Work/Search/PickRestriction:108 msgid "Search" msgstr "查詢" @@ -5140,11 +5200,11 @@ msgstr "鏿“‡è‡ªè¨‚欄ä½" msgid "Select group" msgstr "鏿“‡ç¾¤çµ„" -#: lib/RT/CustomField_Overlay.pm:421 +#: lib/RT/CustomField_Overlay.pm:428 msgid "Select multiple values" msgstr "鏿“‡å¤šé‡é …ç›®" -#: lib/RT/CustomField_Overlay.pm:418 +#: lib/RT/CustomField_Overlay.pm:425 msgid "Select one value" msgstr "鏿“‡å–®ä¸€é …ç›®" @@ -5180,7 +5240,7 @@ msgstr "多é‡é¸é …" msgid "SelectSingle" msgstr "單一é¸é …" -#: html/Edit/Elements/PickUsers:87 html/Edit/Users/Add.html:78 +#: html/Edit/Elements/PickUsers:95 html/Edit/Users/Add.html:78 msgid "Selected users:" msgstr "新增å°è±¡ï¼š" @@ -5308,7 +5368,7 @@ msgstr "登記æˆç‚ºç”³è«‹äººæˆ–副本收件人" msgid "Sign up as a ticket or queue AdminCc" msgstr "登記æˆç‚ºç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/Edit/Users/Info:52 html/User/Prefs.html:148 html/Work/Preferences/Info:113 +#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/Edit/Users/Info:96 html/User/Prefs.html:148 html/Work/Preferences/Info:116 msgid "Signature" msgstr "ç°½åæª”" @@ -5332,7 +5392,7 @@ msgstr "é †åº" msgid "Sort key" msgstr "æŽ’åºæ–¹å¼" -#: html/Search/Elements/PickRestriction:108 html/Work/Search/PickRestriction:95 +#: html/Search/Elements/PickRestriction:109 html/Work/Search/PickRestriction:95 msgid "Sort results by" msgstr "çµæžœæŽ’åºæ–¹å¼" @@ -5344,11 +5404,11 @@ msgstr "排åºé †åº" msgid "Stage" msgstr "é—œå¡" -#: html/Edit/Global/Workflow/Top:8 +#: html/Edit/Global/Workflow/Top:11 msgid "Stage Action" msgstr "é—œå¡é‹è¡Œå‹•作" -#: html/Edit/Global/Workflow/Top:5 +#: html/Edit/Global/Workflow/Top:7 msgid "Stage Condition" msgstr "é—œå¡é‹è¡Œæ¢ä»¶" @@ -5380,11 +5440,11 @@ msgstr "應起始日" msgid "Starts date '%1' could not be parsed" msgstr "無法解讀起始日期 '%1" -#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:126 html/Work/Preferences/Info:85 +#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:126 html/Work/Preferences/Info:88 msgid "State" msgstr "å·ž" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:15 html/Work/Elements/MyRequests:18 html/Work/Elements/MyTickets:18 html/Work/Search/PickRestriction:54 html/Work/Tickets/Elements/EditBasics:19 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1209 lib/RT/Tickets_Overlay.pm:927 +#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:74 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:19 html/Work/Elements/MyRequests:22 html/Work/Elements/MyTickets:22 html/Work/Search/PickRestriction:54 html/Work/Tickets/Elements/EditBasics:19 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1214 lib/RT/Tickets_Overlay.pm:969 msgid "Status" msgstr "ç¾æ³" @@ -5401,7 +5461,7 @@ msgstr "ç¾æ³å¾ž %1 改為 %2" msgid "StatusChange" msgstr "ç¾æ³æ”¹è®Šæ™‚" -#: html/Ticket/Elements/Tabs:146 +#: html/Ticket/Elements/Tabs:152 msgid "Steal" msgstr "å¼·åˆ¶æ›´æ›æ‰¿è¾¦äºº" @@ -5422,7 +5482,7 @@ msgstr "承辦人從 %1 強制更æ›" msgid "Subgroup" msgstr "å­ç¾¤çµ„" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:16 html/Work/Elements/MyTickets:16 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Elements/AddSubject:8 html/Work/Tickets/Elements/EditBasics:8 html/Work/Tickets/Elements/ShowBasics:36 html/Work/Tickets/Elements/ShowSubject:8 lib/RT/Ticket_Overlay.pm:1205 lib/RT/Tickets_Overlay.pm:1006 +#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/List:15 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:16 html/Work/Elements/MyTickets:16 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Elements/AddSubject:8 html/Work/Tickets/Elements/EditBasics:8 html/Work/Tickets/Elements/ShowBasics:36 html/Work/Tickets/Elements/ShowSubject:8 lib/RT/Ticket_Overlay.pm:1210 lib/RT/Tickets_Overlay.pm:1048 msgid "Subject" msgstr "主題" @@ -5431,7 +5491,7 @@ msgstr "主題" msgid "Subject changed to %1" msgstr "標題已改為 %1" -#: html/Edit/Users/Info:71 html/Elements/Submit:58 html/Work/Search/Bulk.html:103 +#: html/Edit/Users/Info:116 html/Elements/Submit:58 html/Work/Search/Bulk.html:103 msgid "Submit" msgstr "é€å‡º" @@ -5439,7 +5499,7 @@ msgstr "é€å‡º" msgid "Submit Workflow" msgstr "é€å‡ºæµç¨‹" -#: lib/RT/Group_Overlay.pm:746 +#: lib/RT/Group_Overlay.pm:748 msgid "Succeeded" msgstr "設定æˆåŠŸ" @@ -5475,7 +5535,7 @@ msgstr "系統" msgid "System Defined" msgstr "系統定義" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:856 lib/RT/Interface/Web.pm:886 +#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:858 lib/RT/Interface/Web.pm:888 msgid "System Error" msgstr "系統錯誤" @@ -5491,11 +5551,11 @@ msgstr "系統錯誤。設定權é™å¤±æ•—。" msgid "System Rights" msgstr "系統權é™" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:616 msgid "System error. Right not delegated." msgstr "系統錯誤。權é™ä»£ç†å¤±æ•—。" -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 msgid "System error. Right not granted." msgstr "系統錯誤。設定權é™å¤±æ•—。" @@ -5515,7 +5575,7 @@ msgstr "系統內部用" msgid "SystemRolegroup for internal use" msgstr "內部使用的系統角色群組" -#: lib/RT/CurrentUser.pm:318 +#: lib/RT/CurrentUser.pm:361 msgid "TEST_STRING" msgstr "TEST_STRING" @@ -5523,7 +5583,7 @@ msgstr "TEST_STRING" msgid "TabbedUI" msgstr "é ç±¤ä»‹é¢" -#: html/Ticket/Elements/Tabs:142 +#: html/Ticket/Elements/Tabs:148 msgid "Take" msgstr "å—ç†" @@ -5572,7 +5632,7 @@ msgstr "找ä¸åˆ°ç¯„本" msgid "Template not found\\n" msgstr "找ä¸åˆ°ç¯„本\\n" -#: lib/RT/Template_Overlay.pm:359 +#: lib/RT/Template_Overlay.pm:360 msgid "Template parsed" msgstr "範本剖æžå®Œç•¢" @@ -5580,7 +5640,7 @@ msgstr "範本剖æžå®Œç•¢" msgid "Templates" msgstr "範本" -#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:23 +#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:25 msgid "Templates " msgstr "通知範本" @@ -5588,19 +5648,19 @@ msgstr "通知範本" msgid "Templates for %1\\n" msgstr "找ä¸åˆ° %1 的範本\\n" -#: lib/RT/Interface/Web.pm:954 +#: lib/RT/Interface/Web.pm:956 msgid "That is already the current value" msgstr "å·²ç¶“æ˜¯ç›®å‰æ¬„ä½çš„值" -#: lib/RT/CustomField_Overlay.pm:242 +#: lib/RT/CustomField_Overlay.pm:249 msgid "That is not a value for this custom field" msgstr "這䏿˜¯è©²è‡ªè¨‚欄ä½çš„值" -#: lib/RT/Ticket_Overlay.pm:1926 +#: lib/RT/Ticket_Overlay.pm:1934 msgid "That is the same value" msgstr "åŒæ¨£çš„值" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:597 msgid "That principal already has that right" msgstr "這項單ä½å·²ç¶“æ“æœ‰è©²æ¬Šé™" @@ -5609,7 +5669,7 @@ msgstr "這項單ä½å·²ç¶“æ“æœ‰è©²æ¬Šé™" msgid "That principal is already a %1 for this queue" msgstr "這項單ä½å·²ç¶“是這個表單的 %1" -#: lib/RT/Ticket_Overlay.pm:1460 +#: lib/RT/Ticket_Overlay.pm:1466 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "這項單ä½å·²ç¶“是這份申請單的 %1" @@ -5619,16 +5679,16 @@ msgstr "這項單ä½å·²ç¶“是這份申請單的 %1" msgid "That principal is not a %1 for this queue" msgstr "這項單ä½ä¸æ˜¯é€™å€‹è¡¨å–®çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1577 +#: lib/RT/Ticket_Overlay.pm:1583 #. ($args{'Type'}) msgid "That principal is not a %1 for this ticket" msgstr "這項單ä½ä¸æ˜¯é€™ä»½ç”³è«‹å–®çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1922 +#: lib/RT/Ticket_Overlay.pm:1930 msgid "That queue does not exist" msgstr "此表單ä¸å­˜åœ¨" -#: lib/RT/Ticket_Overlay.pm:3293 +#: lib/RT/Ticket_Overlay.pm:3301 msgid "That ticket has unresolved dependencies" msgstr "這份申請單有尚未解決的附屬申請單" @@ -5636,11 +5696,11 @@ msgstr "這份申請單有尚未解決的附屬申請單" msgid "That user already has that right" msgstr "使用者已具有該項權é™" -#: lib/RT/Ticket_Overlay.pm:3097 +#: lib/RT/Ticket_Overlay.pm:3105 msgid "That user already owns that ticket" msgstr "該使用者已經承辦這份申請單" -#: lib/RT/Ticket_Overlay.pm:3069 +#: lib/RT/Ticket_Overlay.pm:3077 msgid "That user does not exist" msgstr "使用者ä¸å­˜åœ¨" @@ -5664,11 +5724,11 @@ msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" msgid "That user is now unprivilegedileged" msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" -#: lib/RT/Ticket_Overlay.pm:3090 +#: lib/RT/Ticket_Overlay.pm:3098 msgid "That user may not own tickets in that queue" msgstr "使用者å¯èƒ½æ²’有承辦表單裡的申請單" -#: lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:206 msgid "That's not a numerical id" msgstr "這䏿˜¯ä¸€å€‹æ•¸å­—編號" @@ -5684,7 +5744,7 @@ msgstr "申請單的副本收件人" msgid "The administrative CC of a ticket" msgstr "申請單的管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: lib/RT/Ticket_Overlay.pm:2255 +#: lib/RT/Ticket_Overlay.pm:2263 msgid "The comment has been recorded" msgstr "評論已被紀錄" @@ -5696,7 +5756,7 @@ msgstr "下列命令會找到 'general' 表單內所有é‹ä½œä¸­çš„申請單, msgid "The following commands were not proccessed:\\n\\n" msgstr "以下命令未被執行:\\n\\n" -#: lib/RT/Interface/Web.pm:957 +#: lib/RT/Interface/Web.pm:959 msgid "The new value has been set." msgstr "新的欄ä½å€¼è¨­å®šå®Œæˆã€‚" @@ -5767,7 +5827,7 @@ msgstr "更新申請單 #%1 的全部資訊:%2" msgid "Ticket #%1: %2" msgstr "申請單 #%1: %2" -#: lib/RT/Ticket_Overlay.pm:632 lib/RT/Ticket_Overlay.pm:653 +#: lib/RT/Ticket_Overlay.pm:637 lib/RT/Ticket_Overlay.pm:658 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "申請單 #%1 æˆåŠŸæ–°å¢žæ–¼ '%2' 表單" @@ -5782,7 +5842,7 @@ msgstr "載入申請單 %1\\n" msgid "Ticket %1: %2" msgstr "申請單 %1:%2" -#: html/Edit/Queues/Basic/Top:30 html/Edit/Queues/List:30 html/Work/Queues/List:9 +#: html/Edit/Queues/Basic/Top:30 html/Edit/Queues/List:30 html/Work/Queues/List:10 msgid "Ticket Due" msgstr "è¡¨å–®è™•ç†æœŸé™" @@ -5795,7 +5855,7 @@ msgstr "申請單處ç†ç´€éŒ„ # %1 %2" msgid "Ticket ID" msgstr "單號" -#: NOT FOUND IN SOURCE +#: html/Work/Elements/SelectSearch:6 msgid "Ticket Id" msgstr "申請單編號" @@ -5807,23 +5867,23 @@ msgstr "表單é‹è¡ŒæœŸé™" msgid "Ticket Resolved" msgstr "申請單已解決" -#: html/Edit/Queues/Basic/Top:20 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:21 html/Work/Delegates/List:7 html/Work/Delegates/index.html:11 html/Work/Elements/List:12 html/Work/Elements/SelectSearch:9 html/Work/Queues/List:6 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:11 html/Work/Tickets/Create.html:43 html/Work/Tickets/Elements/ShowBasics:34 +#: html/Edit/Queues/Basic/Top:20 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:21 html/Work/Delegates/List:7 html/Work/Delegates/index.html:12 html/Work/Elements/List:13 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:12 html/Work/Tickets/Elements/ShowBasics:34 msgid "Ticket Type" msgstr "表單種類" -#: html/Search/Elements/PickRestriction:62 html/Work/Search/PickRestriction:43 +#: html/Search/Elements/PickRestriction:63 html/Work/Search/PickRestriction:43 msgid "Ticket attachment" msgstr "申請單附件" -#: lib/RT/Tickets_Overlay.pm:1185 +#: lib/RT/Tickets_Overlay.pm:1227 msgid "Ticket content" msgstr "申請單內容" -#: lib/RT/Tickets_Overlay.pm:1231 +#: lib/RT/Tickets_Overlay.pm:1273 msgid "Ticket content type" msgstr "申請單內容類別" -#: lib/RT/Ticket_Overlay.pm:520 lib/RT/Ticket_Overlay.pm:529 lib/RT/Ticket_Overlay.pm:539 lib/RT/Ticket_Overlay.pm:642 +#: lib/RT/Ticket_Overlay.pm:525 lib/RT/Ticket_Overlay.pm:534 lib/RT/Ticket_Overlay.pm:544 lib/RT/Ticket_Overlay.pm:647 msgid "Ticket could not be created due to an internal error" msgstr "內部錯誤,無法新增申請單" @@ -5863,12 +5923,12 @@ msgstr "申請單視察員" msgid "Tickets" msgstr "申請單" -#: lib/RT/Tickets_Overlay.pm:1402 +#: lib/RT/Tickets_Overlay.pm:1451 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "申請單 %1 %2" -#: lib/RT/Tickets_Overlay.pm:1367 +#: lib/RT/Tickets_Overlay.pm:1409 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "申請單 %1 (%2)" @@ -5898,7 +5958,7 @@ msgstr "剩餘時間" msgid "Time Worked" msgstr "è™•ç†æ™‚é–“" -#: lib/RT/Tickets_Overlay.pm:1158 +#: lib/RT/Tickets_Overlay.pm:1200 msgid "Time left" msgstr "剩餘時間" @@ -5906,7 +5966,7 @@ msgstr "剩餘時間" msgid "Time to display" msgstr "顯示時間" -#: lib/RT/Tickets_Overlay.pm:1134 +#: lib/RT/Tickets_Overlay.pm:1176 msgid "Time worked" msgstr "å·²è™•ç†æ™‚é–“" @@ -5914,7 +5974,7 @@ msgstr "å·²è™•ç†æ™‚é–“" msgid "TimeLeft" msgstr "剩餘時間" -#: lib/RT/Ticket_Overlay.pm:1210 +#: lib/RT/Ticket_Overlay.pm:1215 msgid "TimeWorked" msgstr "å·²è™•ç†æ™‚é–“" @@ -5926,11 +5986,11 @@ msgstr "產生這次更動的差異檔:" msgid "To generate a diff of this commit:\\n" msgstr "產生這次更動的差異檔:\\n" -#: lib/RT/Ticket_Overlay.pm:1213 +#: lib/RT/Ticket_Overlay.pm:1218 msgid "Told" msgstr "告知日期" -#: html/Edit/Elements/Page:47 +#: html/Edit/Elements/Page:45 msgid "Total" msgstr "é " @@ -5938,7 +5998,7 @@ msgstr "é " msgid "Transaction" msgstr "æ›´å‹•" -#: lib/RT/Transaction_Overlay.pm:666 +#: lib/RT/Transaction_Overlay.pm:669 #. ($self->Data) msgid "Transaction %1 purged" msgstr "清除更動報告 %1" @@ -5959,10 +6019,14 @@ msgstr "批次更動時" msgid "TransactionCreate" msgstr "新增更動時" -#: lib/RT/Transaction_Overlay.pm:721 +#: lib/RT/Transaction_Overlay.pm:724 msgid "Transactions are immutable" msgstr "ä¸å¯æ›´æ”¹æ›´å‹•報告" +#: html/Work/Approvals/Elements/Approve:52 +msgid "Transfer to" +msgstr "移交給" + #: NOT FOUND IN SOURCE msgid "Trying to delete a right: %1" msgstr "試圖刪除æŸé …權é™ï¼š%1" @@ -5975,7 +6039,7 @@ msgstr "星期二" msgid "Tue." msgstr "星期二" -#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1211 lib/RT/Tickets_Overlay.pm:978 +#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1216 lib/RT/Tickets_Overlay.pm:1020 msgid "Type" msgstr "類別" @@ -5991,7 +6055,7 @@ msgstr "外部系統登入帳號" msgid "UnixUsername" msgstr "外部系統登入帳號" -#: lib/RT/Attachment_Overlay.pm:281 lib/RT/Attachment_Overlay.pm:313 +#: lib/RT/Attachment_Overlay.pm:283 lib/RT/Attachment_Overlay.pm:315 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "ä¸å¯è§£çš„å…§å®¹æ–‡å­—ç·¨ç¢¼æ–¹å¼ %1" @@ -6012,7 +6076,7 @@ msgstr "未被å—ç†" msgid "Up" msgstr "上一é " -#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:83 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:63 +#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:91 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:72 msgid "Update" msgstr "處ç†" @@ -6036,7 +6100,7 @@ msgstr "æ›´æ–°é›»å­éƒµä»¶ä¿¡ç®±" msgid "Update name" msgstr "更新帳號" -#: lib/RT/Interface/Web.pm:467 +#: lib/RT/Interface/Web.pm:469 msgid "Update not recorded." msgstr "更新未被記錄" @@ -6062,19 +6126,19 @@ msgid "Update ticket #%1" msgstr "更新申請單 #%1" #: html/Ticket/Update.html:139 -#. ($Ticket->id, $Ticket->Subject) +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "更新申請單 #%1 (%2)" -#: lib/RT/Interface/Web.pm:465 +#: lib/RT/Interface/Web.pm:467 msgid "Update type was neither correspondence nor comment." msgstr "更新的內容並éžç”³è«‹å–®å›žè¦†ä¹Ÿä¸æ˜¯è©•è«–" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1214 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1219 msgid "Updated" msgstr "剿¬¡æ›´æ–°" -#: html/Work/Preferences/index.html:15 +#: html/Work/Preferences/index.html:15 html/Work/Tickets/Elements/ShowTransaction:11 msgid "User" msgstr "使用者" @@ -6106,11 +6170,11 @@ msgstr "使用者 ID" msgid "User Id" msgstr "使用者 ID" -#: html/Edit/Elements/PickUsers:12 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/Search.html:23 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 +#: html/Edit/Elements/PickUsers:13 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/Search.html:23 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 msgid "User Number" msgstr "員工編號" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:26 +#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:28 msgid "User Rights" msgstr "使用者權é™" @@ -6159,15 +6223,15 @@ msgstr "使用者 %1 已改å為 %2" msgid "User view" msgstr "使用者ç§äººè³‡æ–™" -#: NOT FOUND IN SOURCE +#: html/Edit/Elements/PickUsers:38 html/Edit/Global/Workflow/Owner.html:48 html/Edit/Global/Workflow/Owner.html:73 html/Edit/Global/Workflow/Owner.html:82 msgid "UserDefined" msgstr "使用者自定" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:47 html/Elements/Login:54 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "帳號" -#: 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/Edit/Groups/Admin:9 html/User/Groups/Members.html:57 html/Work/Tickets/Elements/ShowTransaction:11 +#: 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/Edit/Groups/Admin:9 html/User/Groups/Members.html:57 msgid "Users" msgstr "使用者" @@ -6259,7 +6323,7 @@ msgstr "ç•¶è©•è«–é€é”時" msgid "Whenever correspondence comes in" msgstr "當回覆é€é”時" -#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:67 html/Work/Preferences/Info:36 +#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:67 html/Work/Preferences/Info:39 msgid "Work" msgstr "å…¬å¸" @@ -6288,7 +6352,7 @@ msgstr "æµç¨‹çµæŸ" msgid "Workflow deleted" msgstr "æµç¨‹å·²åˆªé™¤" -#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:25 +#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:27 msgid "Workflows" msgstr "æµç¨‹" @@ -6296,7 +6360,7 @@ msgstr "æµç¨‹" msgid "Writable" msgstr "å¯è®€å¯«" -#: html/autohandler:144 +#: html/autohandler:151 msgid "XXX CHANGEME You are not an authorized user" msgstr "XXX CHANGEME 您是未經授權的使用者" @@ -6304,19 +6368,19 @@ msgstr "XXX CHANGEME 您是未經授權的使用者" msgid "Yes" msgstr "是" -#: lib/RT/Ticket_Overlay.pm:3200 +#: lib/RT/Ticket_Overlay.pm:3208 msgid "You already own this ticket" msgstr "您已是這份申請單的承辦人" -#: html/autohandler:136 +#: html/autohandler:143 msgid "You are not an authorized user" msgstr "æ‚¨ä¸æ˜¯è¢«æŽˆæ¬Šçš„使用者" -#: html/Ticket/Elements/ShowTransaction:81 +#: html/Ticket/Elements/ShowTransaction:89 msgid "You can access it with the Download button on the right." msgstr "您å¯ä»¥æŒ‰å³æ–¹çš„「下載ã€éµä¾†å–得。" -#: lib/RT/Ticket_Overlay.pm:3082 +#: lib/RT/Ticket_Overlay.pm:3090 msgid "You can only reassign tickets that you own or that are unowned" msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿è¾¦æˆ–是沒有承辦人的申請單" @@ -6333,11 +6397,11 @@ msgstr "您會在表單 %2 找到 %1 的申請單" msgid "You have been logged out of RT." msgstr "您已登出 RT。" -#: html/SelfService/Display.html:77 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "您沒有在該表單新增申請單的權é™ã€‚" -#: lib/RT/Ticket_Overlay.pm:1935 +#: lib/RT/Ticket_Overlay.pm:1943 msgid "You may not create requests in that queue." msgstr "您ä¸èƒ½åœ¨è©²è¡¨å–®ä¸­æå‡ºç”³è«‹ã€‚" @@ -6377,11 +6441,11 @@ msgstr "您的申請單已被 %1 é§å›žã€‚" msgid "Your request was rejected." msgstr "您的申請單已被é§å›žã€‚" -#: html/autohandler:170 +#: html/autohandler:196 msgid "Your username or password is incorrect" msgstr "您的帳號或密碼有誤" -#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:130 html/Work/Preferences/Info:87 +#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:130 html/Work/Preferences/Info:90 msgid "Zip" msgstr "郵éžå€è™Ÿ" @@ -6422,11 +6486,11 @@ msgstr "內容" msgid "content-type" msgstr "類型" -#: lib/RT/Ticket_Overlay.pm:2326 +#: lib/RT/Ticket_Overlay.pm:2334 msgid "correspondence (probably) not sent" msgstr "申請單回覆(å¯èƒ½)未é€å‡º" -#: lib/RT/Ticket_Overlay.pm:2336 +#: lib/RT/Ticket_Overlay.pm:2344 msgid "correspondence sent" msgstr "申請單回覆已é€å‡º" @@ -6434,7 +6498,7 @@ msgstr "申請單回覆已é€å‡º" msgid "critical" msgstr "åš´é‡" -#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:34 html/Edit/Queues/List:32 html/Work/Queues/List:11 lib/RT/Date.pm:319 +#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:34 html/Edit/Queues/List:32 html/Work/Queues/List:12 lib/RT/Date.pm:319 msgid "days" msgstr "天" @@ -6454,7 +6518,7 @@ msgstr "刪除" msgid "deleted" msgstr "已刪除" -#: html/Search/Elements/PickRestriction:67 html/Work/Search/PickRestriction:47 +#: html/Search/Elements/PickRestriction:68 html/Work/Search/PickRestriction:47 msgid "does not match" msgstr "ä¸ç¬¦åˆ" @@ -6462,6 +6526,10 @@ msgstr "ä¸ç¬¦åˆ" msgid "doesn't contain" msgstr "ä¸åŒ…å«" +#: html/Search/Elements/PickRestriction:38 +msgid "email address" +msgstr "é›»å­éƒµä»¶ä¿¡ç®±" + #: NOT FOUND IN SOURCE msgid "emergency" msgstr "å±é›£" @@ -6486,7 +6554,7 @@ msgstr "檔å" msgid "greater than" msgstr "大於" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:194 #. ($self->Name) msgid "group '%1'" msgstr "群組 '%1'" @@ -6503,11 +6571,11 @@ msgstr "編號" msgid "info" msgstr "資訊" -#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:75 +#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:75 msgid "is" msgstr "是" -#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:76 +#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:76 msgid "isn't" msgstr "䏿˜¯" @@ -6516,10 +6584,10 @@ msgid "less than" msgstr "å°æ–¼" #: html/Edit/Global/Workflow/Owner.html:35 -msgid "level Admins" +msgid "level Admin" msgstr "層主管" -#: html/Search/Elements/PickRestriction:66 html/Work/Search/PickRestriction:46 +#: html/Search/Elements/PickRestriction:67 html/Work/Search/PickRestriction:46 msgid "matches" msgstr "符åˆ" @@ -6551,7 +6619,7 @@ msgstr "沒有å稱" msgid "no value" msgstr "沒有值" -#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/List:32 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:11 html/Work/Tickets/Elements/EditWatchers:5 html/Work/Tickets/Elements/ShowAttachments:30 html/Work/Tickets/Elements/ShowBasics:27 +#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/List:32 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:12 html/Work/Tickets/Elements/EditWatchers:5 html/Work/Tickets/Elements/ShowAttachments:30 html/Work/Tickets/Elements/ShowBasics:27 msgid "none" msgstr "ç„¡" @@ -6567,11 +6635,11 @@ msgstr "æç¤º" msgid "notlike" msgstr "ä¸ç¬¦åˆ" -#: html/Edit/Elements/PickUsers:17 html/Edit/Users/Add.html:18 html/Edit/Users/Search.html:28 html/Work/Tickets/Cc:15 +#: html/Edit/Elements/PickUsers:18 html/Edit/Users/Add.html:18 html/Edit/Users/Search.html:28 html/Work/Tickets/Cc:15 msgid "number" msgstr "號" -#: html/SelfService/Elements/MyRequests:60 lib/RT/Queue_Overlay.pm:58 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:58 msgid "open" msgstr "開啟" @@ -6579,12 +6647,12 @@ msgstr "開啟" msgid "opened" msgstr "已開啟" -#: lib/RT/Group_Overlay.pm:198 +#: lib/RT/Group_Overlay.pm:199 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "使用者「%2ã€çš„「%1ã€ä»£ç†äººç¾¤çµ„" -#: lib/RT/Group_Overlay.pm:206 +#: lib/RT/Group_Overlay.pm:207 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "表單 %1 %2" @@ -6609,12 +6677,12 @@ msgstr "ç§’" msgid "stalled" msgstr "延宕" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:202 #. ($self->Type) msgid "system %1" msgstr "系統 %1" -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:213 #. ($self->Type) msgid "system group '%1'" msgstr "系統群組 '%1'" @@ -6628,16 +6696,16 @@ msgstr "呼å«å…ƒä»¶æœªæŒ‡æ˜ŽåŽŸå› " msgid "ticket #%1" msgstr "申請單 #%1" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:210 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "申請單 #%1 %2" -#: html/Work/Elements/SelectSearch:28 +#: html/Work/Elements/SelectSearch:33 msgid "till" msgstr "至" -#: html/Edit/Elements/PickUsers:15 html/Edit/Global/Workflow/Condition:31 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 +#: html/Edit/Elements/PickUsers:16 html/Edit/Global/Workflow/Condition:31 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 msgid "to" msgstr "到" @@ -6645,7 +6713,7 @@ msgstr "到" msgid "true" msgstr "真" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:216 #. ($self->Id) msgid "undescribed group %1" msgstr "沒有æè¿°çš„群組 %1" @@ -6654,7 +6722,7 @@ msgstr "沒有æè¿°çš„群組 %1" msgid "unresolved" msgstr "未處ç†" -#: lib/RT/Group_Overlay.pm:190 +#: lib/RT/Group_Overlay.pm:191 #. ($user->Object->Name) msgid "user %1" msgstr "使用者 %1" diff --git a/rt/lib/RT/Interface/Email.pm b/rt/lib/RT/Interface/Email.pm index 241f5f35c..52542a149 100755 --- a/rt/lib/RT/Interface/Email.pm +++ b/rt/lib/RT/Interface/Email.pm @@ -34,7 +34,7 @@ BEGIN { 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.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker + $VERSION = do { my @r = (q$Revision: 1.1.1.3 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw(Exporter); @@ -57,7 +57,7 @@ BEGIN { =head1 NAME - RT::Interface::CLI - helper functions for creating a commandline RT interface + RT::Interface::Email - helper functions for parsing email sent to RT =head1 SYNOPSIS @@ -182,14 +182,13 @@ sub MailError { } - if ($RT::MailCommand eq 'sendmailpipe') { open (MAIL, "|$RT::SendmailPath $RT::SendmailArguments") || return(0); print MAIL $entity->as_string; close(MAIL); } else { - $entity->send($RT::MailCommand, $RT::MailParams); + $entity->send($RT::MailCommand, $RT::MailParams); } } @@ -376,6 +375,9 @@ 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: @@ -430,7 +432,7 @@ sub Gateway { if ( -f $temp_file ) { $parser->ParseMIMEEntityFromFile($temp_file); - File::Temp::unlink0( $fh, $temp_file ); + unlink( $temp_file ); if ($parser->Entity) { delete $args{'message'}; } diff --git a/rt/lib/RT/Interface/Email/Auth/MailFrom.pm b/rt/lib/RT/Interface/Email/Auth/MailFrom.pm index eb778ff30..f71666b72 100644 --- a/rt/lib/RT/Interface/Email/Auth/MailFrom.pm +++ b/rt/lib/RT/Interface/Email/Auth/MailFrom.pm @@ -118,7 +118,7 @@ sub GetCurrentUser { } - $CurrentUser = CreateUser( undef, $Address, $Name, $args{'Message'} ); + $CurrentUser = CreateUser( undef, $Address, $Name, $Address, $args{'Message'} ); return ( $CurrentUser, 1 ); } diff --git a/rt/lib/RT/Interface/Web.pm b/rt/lib/RT/Interface/Web.pm index 8d66239be..329a2801b 100644 --- a/rt/lib/RT/Interface/Web.pm +++ b/rt/lib/RT/Interface/Web.pm @@ -101,6 +101,7 @@ sub NewCGIHandler { default_escape_flags => 'h', allow_globals => [qw(%session)], autoflush => 1, + @_ ); @@ -424,7 +425,8 @@ sub ProcessUpdateMessage { ); #Make the update content have no 'weird' newlines in it - if ( $args{ARGSRef}->{'UpdateContent'} || + if ( $args{ARGSRef}->{'UpdateTimeWorked'} || + $args{ARGSRef}->{'UpdateContent'} || $args{ARGSRef}->{'UpdateAttachments'}) { if ( @@ -530,7 +532,7 @@ sub MakeMIMEEntity { # on NFS and NTFS, it is possible that tempfile() conflicts # with other processes, causing a race condition. we try to # accommodate this by pausing and retrying. - last if ($fh, $temp_file) = eval { tempfile() }; + last if ($fh, $temp_file) = eval { tempfile( UNLINK => 1) }; sleep 1; } diff --git a/rt/lib/RT/Link_Overlay.pm b/rt/lib/RT/Link_Overlay.pm index ac1bc370c..1c02619df 100644 --- a/rt/lib/RT/Link_Overlay.pm +++ b/rt/lib/RT/Link_Overlay.pm @@ -81,10 +81,9 @@ sub Create { my $base = RT::URI->new( $self->CurrentUser ); $base->FromURI( $args{'Base'} ); - unless ( $base->Scheme ) { + unless ( $base->Resolver and $base->Scheme ) { $RT::Logger->warning( "$self couldn't resolve base:'" . $args{'Base'} . " - " - . $base->Scheme . "' into a URI\n" ); #use Data::Dumper; diff --git a/rt/lib/RT/Principal_Overlay.pm b/rt/lib/RT/Principal_Overlay.pm index b788e36c4..1a14fa1b0 100644 --- a/rt/lib/RT/Principal_Overlay.pm +++ b/rt/lib/RT/Principal_Overlay.pm @@ -557,7 +557,7 @@ sub _GetPrincipalTypeForACL { Returns a list uniquely representing an object or normal scalar. For scalars, its string value is returned; for objects that has an -id() method, its class name and Id are returned as a string seperated by a "-". +id() method, its class name and Id are returned as a string separated by a "-". =cut diff --git a/rt/lib/RT/Queue_Overlay.pm b/rt/lib/RT/Queue_Overlay.pm index fcc185b10..f40055b3b 100644 --- a/rt/lib/RT/Queue_Overlay.pm +++ b/rt/lib/RT/Queue_Overlay.pm @@ -48,6 +48,7 @@ no warnings qw(redefine); use vars qw(@STATUS @ACTIVE_STATUS @INACTIVE_STATUS $RIGHTS); use RT::Groups; use RT::ACL; +use RT::EmailParser; @ACTIVE_STATUS = qw(new open stalled); @@ -518,6 +519,8 @@ Email The email address of the new watcher. If a user with this If the watcher you\'re trying to set has an RT account, set the Owner paremeter to their User Id. Otherwise, set the Email parameter to their Email address. +Returns a tuple of (status/id, message). + =cut sub AddWatcher { @@ -602,10 +605,13 @@ sub _AddWatcher { # if the user doesn't exist, we need to create a new user my $new_user = RT::User->new($RT::SystemUser); + my ( $Address, $Name ) = + RT::EmailParser::ParseAddressFromHeader('', $args{'Email'}); + my ( $Val, $Message ) = $new_user->Create( - Name => $args{'Email'}, - EmailAddress => $args{'Email'}, - RealName => $args{'Email'}, + Name => $Address, + EmailAddress => $Address, + RealName => $Name, Privileged => 0, Comments => 'Autocreated when added as a watcher'); unless ($Val) { diff --git a/rt/lib/RT/Scrip_Overlay.pm b/rt/lib/RT/Scrip_Overlay.pm index 4f6c735cc..79499fc82 100644 --- a/rt/lib/RT/Scrip_Overlay.pm +++ b/rt/lib/RT/Scrip_Overlay.pm @@ -243,7 +243,7 @@ sub ActionObj { $self->{'ScripActionObj'} = RT::ScripAction->new($self->CurrentUser); #TODO: why are we loading Actions with templates like this. - # two seperate methods might make more sense + # two separate methods might make more sense $self->{'ScripActionObj'}->Load($self->ScripAction, $self->Template); } return ($self->{'ScripActionObj'}); diff --git a/rt/lib/RT/StyleGuide.pod b/rt/lib/RT/StyleGuide.pod index 95b2e3a15..4a45e8205 100644 --- a/rt/lib/RT/StyleGuide.pod +++ b/rt/lib/RT/StyleGuide.pod @@ -804,11 +804,9 @@ It is important not to localize the names of rights or statuses within RT's cor This is for new programs, modules, specific APIs, or anything else. -Contact for core team is the slashcode-development mailing list. - =over 4 -=item Present idea to core team +=item Present idea to rt-devel We may know of a better way to approach the problem, or know of an existing way to deal with it, or know someone else is working on it. @@ -816,9 +814,9 @@ This is mostly informal, but a fairly complete explanation for the need and use of the code should be provided. -=item Present complete specs to core team +=item Present complete specs to rt-devel -The complete proposed API to the core team should be submitted for +The complete proposed API should be submitted for approval and discussion. For web and command-line programs, present the functionality and interface (op codes, command-lin switches, etc.). @@ -827,13 +825,8 @@ boilerplate and fill it in. You can make changes later if necessary, but fill it in as much as you can. -=item Announce any changes to interface - -If the way it works or how it is called is going to change, notify the core -team. - -=item Prepare for core review +=item Prepare for code review When you are done, the code will undergo a code review by a member of the core team, or someone picked by the core team. This is not to @@ -843,9 +836,6 @@ break other code, that it follows the documentation and existing proposal. It is to check for possible optimizations or better ways of doing it. -For members of the core team, one or more other members of the team will -perform the review. - Note that all code is expected to follow the coding principles and style guide contained in this document. diff --git a/rt/lib/RT/Template_Overlay.pm b/rt/lib/RT/Template_Overlay.pm index 5950aa3ea..057dfecda 100644 --- a/rt/lib/RT/Template_Overlay.pm +++ b/rt/lib/RT/Template_Overlay.pm @@ -318,20 +318,9 @@ sub Parse { my $parser = MIME::Parser->new(); - # Setup output directory for files. from RT::EmailParser::_SetupMIMEParser - if ( my $AttachmentDir = - eval { File::Temp::tempdir( TMPDIR => 1, CLEANUP => 1 ) } ) - { - - # Set up output directory for files: - $parser->output_dir("$AttachmentDir"); - } - else { - $RT::Logger->error("Couldn't write attachments to temp dir on disk. using more memory and processor."); # On some situations TMPDIR is non-writable. sad but true. $parser->output_to_core(1); $parser->tmp_to_core(1); - } #If someone includes a message, don't extract it $parser->extract_nested_messages(1); @@ -415,4 +404,5 @@ sub CurrentUserHasQueueRight { } # }}} + 1; diff --git a/rt/lib/RT/Templates_Overlay.pm b/rt/lib/RT/Templates_Overlay.pm index 6bc992e05..544096233 100644 --- a/rt/lib/RT/Templates_Overlay.pm +++ b/rt/lib/RT/Templates_Overlay.pm @@ -137,5 +137,40 @@ sub NewItem { } # }}} +# {{{ sub Next + +=head2 Next + +Returns the next template that this user can see. + +=cut + +sub Next { + my $self = shift; + + + my $templ = $self->SUPER::Next(); + if ((defined($templ)) and (ref($templ))) { + + # If it's part of a queue, and the user can read templates in + # that queue, or the user can globally read templates, show it + if ($templ->Queue && $templ->CurrentUserHasQueueRight('ShowTemplate') or + $templ->CurrentUser->HasRight(Object => $RT::System, Right => 'ShowTemplate')) { + return($templ); + } + + #If the user doesn't have the right to show this template + else { + return($self->Next()); + } + } + #if there never was any template + else { + return(undef); + } + +} +# }}} + 1; diff --git a/rt/lib/RT/Ticket_Overlay.pm b/rt/lib/RT/Ticket_Overlay.pm index 981df4125..c979ba5b4 100644 --- a/rt/lib/RT/Ticket_Overlay.pm +++ b/rt/lib/RT/Ticket_Overlay.pm @@ -157,6 +157,8 @@ use vars '%LINKTYPEMAP'; Mode => 'Target', }, DependedOnBy => { Type => 'DependsOn', Mode => 'Base', }, + MergedInto => { Type => 'MergedInto', + Mode => 'Target', }, ); @@ -175,6 +177,8 @@ use vars '%LINKDIRMAP'; Target => 'ReferredToBy', }, DependsOn => { Base => 'DependsOn', Target => 'DependedOnBy', }, + MergedInto => { Base => 'MergedInto', + Target => 'MergedInto', }, ); @@ -315,11 +319,11 @@ sub Create { Subject => '', InitialPriority => undef, FinalPriority => undef, - Priority => undef, + Priority => undef, Status => 'new', - TimeWorked => "0", + TimeWorked => 0, TimeLeft => 0, - TimeEstimated => 0, + TimeEstimated => 0, Due => undef, Starts => undef, Started => undef, @@ -513,10 +517,12 @@ sub Create { delete $params{$attr} unless (exists $params{$attr} && $params{$attr}); } - - my $id = $self->SUPER::Create( %params); + # Delete the time worked if we're counting it in the transaction + delete $params{TimeWorked} if $args{'_RecordTransaction'}; + + my ($id,$ticket_message) = $self->SUPER::Create( %params); unless ($id) { - $RT::Logger->crit( "Couldn't create a ticket"); + $RT::Logger->crit( "Couldn't create a ticket: " . $ticket_message); $RT::Handle->Rollback(); return ( 0, 0, $self->loc( "Ticket could not be created due to an internal error") ); } @@ -624,7 +630,7 @@ sub Create { # {{{ Add a transaction for the create my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( Type => "Create", - TimeTaken => 0, + TimeTaken => $args{'TimeWorked'}, MIMEObj => $args{'MIMEObj'} ); @@ -1746,6 +1752,8 @@ PrincipalId is an RT::Principal id, and Email is an email address. Returns true if the specified principal (or the one corresponding to the specified address) is a member of the group Type for this ticket. +XX TODO: This should be Memoized. + =cut sub IsWatcher { @@ -2860,7 +2868,7 @@ sub MergeInto { # We use EffectiveId here even though it duplicates information from # the links table becasue of the massive performance hit we'd take - # by trying to do a seperate database query for merge info everytime + # by trying to do a separate database query for merge info everytime # loaded a ticket. #update this ticket's effective id to the new ticket's id. @@ -3456,6 +3464,9 @@ sub CustomFieldValues { $cf->LoadById($field); } else { $cf->LoadByNameAndQueue(Name => $field, Queue => $self->QueueObj->Id); + unless( $cf->id ) { + $cf->LoadByNameAndQueue(Name => $field, Queue => '0'); + } } my $cf_values = RT::TicketCustomFieldValues->new( $self->CurrentUser ); $cf_values->LimitToCustomField($cf->id); diff --git a/rt/lib/RT/Tickets_Overlay.pm b/rt/lib/RT/Tickets_Overlay.pm index 55777b0fb..969d887cf 100644 --- a/rt/lib/RT/Tickets_Overlay.pm +++ b/rt/lib/RT/Tickets_Overlay.pm @@ -101,8 +101,8 @@ my %FIELDS = Filename => ['TRANSFIELD',], TransactionDate => ['TRANSDATE',], Requestor => ['WATCHERFIELD' => 'Requestor',], - CC => ['WATCHERFIELD' => 'Cc',], - AdminCC => ['WATCHERFIELD' => 'AdminCC',], + Cc => ['WATCHERFIELD' => 'Cc',], + AdminCc => ['WATCHERFIELD' => 'AdminCC',], Watcher => ['WATCHERFIELD'], LinkedTo => ['LINKFIELD',], CustomFieldValue =>['CUSTOMFIELD',], @@ -293,12 +293,13 @@ sub _LinkLimit { die "Incorrect Meta Data for $field" unless (defined $meta->[1] and defined $meta->[2]); - my $LinkAlias = $sb->NewAlias ('Links'); + $sb->{_sql_linkalias} = $sb->NewAlias ('Links') + unless defined $sb->{_sql_linkalias}; $sb->_OpenParen(); $sb->_SQLLimit( - ALIAS => $LinkAlias, + ALIAS => $sb->{_sql_linkalias}, FIELD => 'Type', OPERATOR => '=', VALUE => $meta->[2], @@ -309,7 +310,7 @@ sub _LinkLimit { my $matchfield = ( $value =~ /^(\d+)$/ ? "LocalTarget" : "Target" ); $sb->_SQLLimit( - ALIAS => $LinkAlias, + ALIAS => $sb->{_sql_linkalias}, ENTRYAGGREGATOR => 'AND', FIELD => $matchfield, OPERATOR => '=', @@ -317,14 +318,14 @@ sub _LinkLimit { ); #If we're searching on target, join the base to ticket.id - $sb->Join( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, - ALIAS2 => $LinkAlias, FIELD2 => 'LocalBase'); + $sb->_SQLJoin( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, + ALIAS2 => $sb->{_sql_linkalias}, FIELD2 => 'LocalBase'); } elsif ( $meta->[1] eq "From" ) { my $matchfield = ( $value =~ /^(\d+)$/ ? "LocalBase" : "Base" ); $sb->_SQLLimit( - ALIAS => $LinkAlias, + ALIAS => $sb->{_sql_linkalias}, ENTRYAGGREGATOR => 'AND', FIELD => $matchfield, OPERATOR => '=', @@ -332,8 +333,8 @@ sub _LinkLimit { ); #If we're searching on base, join the target to ticket.id - $sb->Join( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, - ALIAS2 => $LinkAlias, FIELD2 => 'LocalTarget'); + $sb->_SQLJoin( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, + ALIAS2 => $sb->{_sql_linkalias}, FIELD2 => 'LocalTarget'); } else { die "Invalid link direction '$meta->[1]' for $field\n"; @@ -462,11 +463,11 @@ sub _TransDateLimit { $sb->_OpenParen; # Join Transactions To Attachments - $sb->Join( ALIAS1 => $sb->{_sql_trattachalias}, FIELD1 => 'TransactionId', + $sb->_SQLJoin( ALIAS1 => $sb->{_sql_trattachalias}, FIELD1 => 'TransactionId', ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'id'); # Join Transactions to Tickets - $sb->Join( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, # UGH! + $sb->_SQLJoin( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, # UGH! ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'Ticket'); my $d = new RT::Date( $sb->CurrentUser ); @@ -536,14 +537,6 @@ sub _TransLimit { $sb->_OpenParen; - # Join Transactions To Attachments - $sb->Join( ALIAS1 => $sb->{_sql_trattachalias}, FIELD1 => 'TransactionId', - ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'id'); - - # Join Transactions to Tickets - $sb->Join( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, # UGH! - ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'Ticket'); - #Search for the right field $sb->_SQLLimit(ALIAS => $sb->{_sql_trattachalias}, FIELD => $field, @@ -553,6 +546,14 @@ sub _TransLimit { @rest ); + # Join Transactions To Attachments + $sb->_SQLJoin( ALIAS1 => $sb->{_sql_trattachalias}, FIELD1 => 'TransactionId', + ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'id'); + + # Join Transactions to Tickets + $sb->_SQLJoin( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, # UGH! + ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'Ticket'); + $sb->_CloseParen; } @@ -615,7 +616,7 @@ sub _WatcherLimit { VALUE => 'RT::Ticket-Role', ENTRYAGGREGATOR => 'AND'); - $self->Join(ALIAS1 => $groups, FIELD1 => 'Instance', + $self->_SQLJoin(ALIAS1 => $groups, FIELD1 => 'Instance', ALIAS2 => 'main', FIELD2 => 'id'); # }}} @@ -630,10 +631,10 @@ sub _WatcherLimit { ENTRYAGGREGATOR => 'AND'); } - $self->Join (ALIAS1 => $groups, FIELD1 => 'id', + $self->_SQLJoin (ALIAS1 => $groups, FIELD1 => 'id', ALIAS2 => $groupmembers, FIELD2 => 'GroupId'); - $self->Join( ALIAS1 => $groupmembers, FIELD1 => 'MemberId', + $self->_SQLJoin( ALIAS1 => $groupmembers, FIELD1 => 'MemberId', ALIAS2 => $users, FIELD2 => 'id'); $self->_CloseParen; @@ -670,7 +671,7 @@ sub _LinkFieldLimit { OPERATOR => '=', VALUE => $restriction->{'TARGET'} ); #If we're searching on target, join the base to ticket.id - $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, + $self->_SQLJoin( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, ALIAS2 => $LinkAlias, FIELD2 => 'LocalBase'); } @@ -691,7 +692,7 @@ sub _LinkFieldLimit { OPERATOR => '=', VALUE => $restriction->{'BASE'} ); #If we're searching on base, join the target to ticket.id - $self->Join( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, + $self->_SQLJoin( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, ALIAS2 => $LinkAlias, FIELD2 => 'LocalTarget') } @@ -736,8 +737,9 @@ sub _CustomFieldLimit { my $cfid = 0; + # this is pretty inefficient for huge numbers of CFs... while ( my $CustomField = $CF->Next ) { - if ($CustomField->Name eq $field) { + if (lc $CustomField->Name eq lc $field) { $cfid = $CustomField->Id; last; } @@ -758,7 +760,7 @@ sub _CustomFieldLimit { $TicketCFs = $self->{_sql_keywordalias}{$cfid}; } else { $TicketCFs = $self->{_sql_keywordalias}{$cfid} = - $self->Join( TYPE => 'left', + $self->_SQLJoin( TYPE => 'left', ALIAS1 => 'main', FIELD1 => 'id', TABLE2 => 'TicketCustomFieldValues', @@ -860,14 +862,20 @@ sub Limit { Returns a frozen string suitable for handing back to ThawLimits. =cut + +sub _FreezeThawKeys { + 'TicketRestrictions', + 'restriction_index', + 'looking_at_effective_id', + 'looking_at_type' +} + # {{{ sub FreezeLimits sub FreezeLimits { my $self = shift; require FreezeThaw; - return (FreezeThaw::freeze($self->{'TicketRestrictions'}, - $self->{'restriction_index'} - )); + return (FreezeThaw::freeze(@{$self}{$self->_FreezeThawKeys})); } # }}} @@ -894,10 +902,9 @@ sub ThawLimits { #We don't need to die if the thaw fails. eval { - ($self->{'TicketRestrictions'}, - $self->{'restriction_index'} - ) = FreezeThaw::thaw($in); - } + @{$self}{$self->_FreezeThawKeys} = FreezeThaw::thaw($in); + }; + $RT::Logger->error( $@ ) if $@; } @@ -1749,6 +1756,7 @@ sub _Init { $self->{'primary_key'} = "id"; delete $self->{'items_array'}; delete $self->{'item_map'}; + delete $self->{'columns_to_display'}; $self->SUPER::_Init(@_); $self->_InitSQL; diff --git a/rt/lib/RT/Tickets_Overlay_SQL.pm b/rt/lib/RT/Tickets_Overlay_SQL.pm index 629e6da2d..4ba19e606 100644 --- a/rt/lib/RT/Tickets_Overlay_SQL.pm +++ b/rt/lib/RT/Tickets_Overlay_SQL.pm @@ -24,6 +24,8 @@ use strict; use warnings; +use RT::Tickets; + # Import configuration data from the lexcial scope of __PACKAGE__ (or # at least where those two Subroutines are defined.) @@ -46,6 +48,7 @@ sub _InitSQL { $self->{'_sql_subclause'} = "a"; $self->{'_sql_first'} = 0; $self->{'_sql_opstack'} = ['']; + $self->{'_sql_linkalias'} = undef; $self->{'_sql_transalias'} = undef; $self->{'_sql_trattachalias'} = undef; $self->{'_sql_keywordalias'} = undef; @@ -53,6 +56,7 @@ sub _InitSQL { $self->{'_sql_localdepth'} = 0; $self->{'_sql_query'} = ''; $self->{'_sql_looking_at'} = {}; + $self->{'_sql_columns_to_display'} = []; } @@ -60,10 +64,20 @@ sub _SQLLimit { # All SQL stuff goes into one SB subclause so we can deal with all # the aggregation my $this = shift; + $this->SUPER::Limit(@_, SUBCLAUSE => 'ticketsql'); } +sub _SQLJoin { + # All SQL stuff goes into one SB subclause so we can deal with all + # the aggregation + my $this = shift; + + $this->SUPER::Join(@_, + SUBCLAUSE => 'ticketsql'); +} + # Helpers sub _OpenParen { $_[0]->SUPER::_OpenParen( 'ticketsql' ); @@ -169,6 +183,10 @@ sub _parser { # because it has spaces in it. otherwise "NOT LIKE" might be parsed # as a keyword or value. + + + + while ($string =~ /( $re_aggreg |$re_op @@ -180,12 +198,13 @@ sub _parser { my $current = 0; # Highest priority is last - $current = OP if _match($re_op,$val); + $current = OP if _match($re_op,$val) ; $current = VALUE if _match($re_value,$val); $current = KEYWORD if _match($re_keyword,$val) && ($want & KEYWORD); $current = AGGREG if _match($re_aggreg,$val); $current = PAREN if _match($re_paren,$val); + unless ($current && $want & $current) { # Error # FIXME: I will only print out the highest $want value @@ -194,6 +213,8 @@ sub _parser { # State Machine: + #$RT::Logger->debug("We've just found a '$current' called '$val'"); + # Parens are highest priority if ($current & PAREN) { if ($val eq "(") { @@ -209,6 +230,7 @@ sub _parser { $want = KEYWORD | PAREN | AGGREG; } + elsif ( $current & AGGREG ) { $ea = $val; $want = KEYWORD | PAREN; @@ -234,7 +256,7 @@ sub _parser { substr($val,0,1) = ""; substr($val,-1,1) = ""; } - # Unescape escaped characters + # Unescape escaped characters $key =~ s!\\(.)!$1!g; $val =~ s!\\(.)!$1!g; # print "$ea Key=[$key] op=[$op] val=[$val]\n"; @@ -349,20 +371,93 @@ Convert a RT-SQL string into a set of SearchBuilder restrictions. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. + +=begin testing + +use RT::Tickets; + + + +my $tix = RT::Tickets->new($RT::SystemUser); + +my $query = "Status = 'open'"; +my ($id, $msg) = $tix->FromSQL($query); + +ok ($id, $msg); + + +my (@ids, @expectedids); + +my $t = RT::Ticket->new($RT::SystemUser); + +my $string = 'subject/content SQL test'; +ok( $t->Create(Queue => 'General', Subject => $string), "Ticket Created"); + +push @ids, $t->Id; + +my $Message = MIME::Entity->build( + Subject => 'this is my subject', + From => 'jesse@example.com', + Data => [ $string ], + ); + +ok( $t->Create(Queue => 'General', Subject => 'another ticket', MIMEObj => $Message, MemberOf => $ids[0]), "Ticket Created"); + +push @ids, $t->Id; + +$query = ("Subject LIKE '$string' OR Content LIKE '$string'"); + +my ($id, $msg) = $tix->FromSQL($query); + +ok ($id, $msg); + +is ($tix->Count, scalar @ids, "number of returned tickets same as entered"); + +while (my $tick = $tix->Next) { + push @expectedids, $tick->Id; +} + +ok (eq_array(\@ids, \@expectedids), "returned expected tickets"); + +$query = ("id = $ids[0] OR MemberOf = $ids[0]"); + +my ($id, $msg) = $tix->FromSQL($query); + +ok ($id, $msg); + +is ($tix->Count, scalar @ids, "number of returned tickets same as entered"); + +@expectedids = (); +while (my $tick = $tix->Next) { + push @expectedids, $tick->Id; +} + +ok (eq_array(\@ids, \@expectedids), "returned expected tickets"); + +=end testing + + =cut sub FromSQL { my ($self,$query) = @_; $self->CleanSlate; + { + # preserve first_row and show_rows across the CleanSlate + local($self->{'first_row'}, $self->{'show_rows'}); + $self->CleanSlate; + } $self->_InitSQL(); - return (1,"No Query") unless $query; + + return (1,$self->loc("No Query")) unless $query; $self->{_sql_query} = $query; eval { $self->_parser( $query ); }; - $RT::Logger->error( $@ ) if $@; - return(0,$@) if $@; - + if ($@) { + $RT::Logger->error( $@ ); + return(0,$@); + } # We only want to look at EffectiveId's (mostly) for these searches. unless (exists $self->{_sql_looking_at}{'effectiveid'}) { $self->SUPER::Limit( FIELD => 'EffectiveId', @@ -386,9 +481,7 @@ sub FromSQL { # Unless we've explicitly asked to look at a specific Type, we need # to limit to it. unless ($self->{looking_at_type}) { - $self->SUPER::Limit( FIELD => 'Type', - OPERATOR => '=', - VALUE => 'ticket'); + $self->SUPER::Limit( FIELD => 'Type', OPERATOR => '=', VALUE => 'ticket'); } # We never ever want to show deleted tickets @@ -399,10 +492,22 @@ sub FromSQL { $self->{'must_redo_search'} = 1; $self->{'RecalcTicketLimits'} = 0; - return (1,"Good Query"); + return (1,$self->loc("Valid Query")); } +=head2 Query + +Returns the query that this object was initialized with + +=cut + +sub Query { + my $self = shift; + return ($self->{_sql_query}); +} + + 1; diff --git a/rt/lib/RT/Transaction_Overlay.pm b/rt/lib/RT/Transaction_Overlay.pm index 9c9a2fd14..2e9d737b6 100644 --- a/rt/lib/RT/Transaction_Overlay.pm +++ b/rt/lib/RT/Transaction_Overlay.pm @@ -203,7 +203,7 @@ sub Content { if ( $args{'Quote'} ) { # Remove quoted signature. - $content =~ s/\n-- \n(.*)$//s; + $content =~ s/\n-- \n(.*?)$//s; # What's the longest line like? my $max = 0; @@ -221,10 +221,10 @@ sub Content { $content = $wrapper->wrap($content); } + $content =~ s/^/> /gm; $content = '[' . $self->CreatorObj->Name() . ' - ' - . $self->CreatedAsString() . "]:\n\n" . $content . "\n\n"; - $content =~ s/^/> /gm; + . $self->CreatedAsString() . "]:\n" . $content . "\n\n"; } @@ -597,6 +597,9 @@ sub BriefDescription { elsif ( $self->Field eq 'HasMember' ) { return $self->loc( "Member [_1] added", $value ); } + elsif ( $self->Field eq 'MergedInto' ) { + return $self->loc( "Merged into [_1]", $value ); + } } else { return ( $self->Data ); @@ -790,7 +793,7 @@ sub _CacheConfig { { 'cache_p' => 1, 'fast_update_p' => 1, - 'cache_for_sec' => 180, + 'cache_for_sec' => 6000, } } 1; diff --git a/rt/lib/RT/User_Overlay.pm b/rt/lib/RT/User_Overlay.pm index ba322cd4b..c2fe65192 100644 --- a/rt/lib/RT/User_Overlay.pm +++ b/rt/lib/RT/User_Overlay.pm @@ -53,6 +53,7 @@ use vars qw(%_USERS_KEY_CACHE); use Digest::MD5; use RT::Principals; use RT::ACE; +use RT::EmailParser; # {{{ sub _Accessible @@ -263,14 +264,15 @@ sub Create { my $principal_id = $principal->Create(PrincipalType => 'User', Disabled => $args{'Disabled'}, ObjectId => '0'); - $principal->__Set(Field => 'ObjectId', Value => $principal_id); # If we couldn't create a principal Id, get the fuck out. unless ($principal_id) { $RT::Handle->Rollback(); - $RT::Logger->crit("Couldn't create a Principal on new user create. Strange things are afoot at the circle K"); + $RT::Logger->crit("Couldn't create a Principal on new user create."); + $RT::Logger->crit("Strange things are afoot at the circle K"); return ( 0, $self->loc('Could not create user') ); } + $principal->__Set(Field => 'ObjectId', Value => $principal_id); delete $args{'Disabled'}; $self->SUPER::Create(id => $principal_id , %args); @@ -284,45 +286,59 @@ sub Create { return ( 0, $self->loc('Could not create user') ); } - - #TODO post 2.0 - #if ($args{'SendWelcomeMessage'}) { - # #TODO: Check if the email exists and looks valid - # #TODO: Send the user a "welcome message" - #} - - - my $aclstash = RT::Group->new($self->CurrentUser); my $stash_id = $aclstash->_CreateACLEquivalenceGroup($principal); unless ($stash_id) { $RT::Handle->Rollback(); - $RT::Logger->crit("Couldn't stash the user in groumembers"); + $RT::Logger->crit("Couldn't stash the user in groupmembers"); return ( 0, $self->loc('Could not create user') ); } - $RT::Handle->Commit; - #$RT::Logger->debug("Adding the user as a member of everyone"); my $everyone = RT::Group->new($self->CurrentUser); $everyone->LoadSystemInternalGroup('Everyone'); - $everyone->AddMember($self->PrincipalId); + unless ($everyone->id) { + $RT::Logger->crit("Could not load Everyone group on user creation."); + $RT::Handle->Rollback(); + return ( 0, $self->loc('Could not create user') ); + } + + + my ($everyone_id, $everyone_msg) = $everyone->_AddMember( InsideTransaction => 1, PrincipalId => $self->PrincipalId); + unless ($everyone_id) { + $RT::Logger->crit("Could not add user to Everyone group on user creation."); + $RT::Logger->crit($everyone_msg); + $RT::Handle->Rollback(); + return ( 0, $self->loc('Could not create user') ); + } + + my $access_class = RT::Group->new($self->CurrentUser); if ($privileged) { - my $priv = RT::Group->new($self->CurrentUser); - #$RT::Logger->debug("Making ".$self->Id." a privileged user"); - $priv->LoadSystemInternalGroup('Privileged'); - $priv->AddMember($self->PrincipalId); + $access_class->LoadSystemInternalGroup('Privileged'); } else { - my $unpriv = RT::Group->new($self->CurrentUser); - #$RT::Logger->debug("Making ".$self->Id." an unprivileged user"); - $unpriv->LoadSystemInternalGroup('Unprivileged'); - $unpriv->AddMember($self->PrincipalId); + $access_class->LoadSystemInternalGroup('Unprivileged'); + } + + unless ($access_class->id) { + $RT::Logger->crit("Could not load Privileged or Unprivileged group on user creation"); + $RT::Handle->Rollback(); + return ( 0, $self->loc('Could not create user') ); } - # $RT::Logger->debug("Finished creating the user"); + my ($ac_id, $ac_msg) = $access_class->_AddMember( InsideTransaction => 1, PrincipalId => $self->PrincipalId); + + unless ($ac_id) { + $RT::Logger->crit("Could not add user to Privileged or Unprivileged group on user creation. Aborted"); + $RT::Logger->crit($ac_msg); + $RT::Handle->Rollback(); + return ( 0, $self->loc('Could not create user') ); + } + + + $RT::Handle->Commit; return ( $id, $self->loc('User created') ); } @@ -360,6 +376,10 @@ sub SetPrivileged { my $self = shift; my $val = shift; + #Check the ACL + unless ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { + return ( 0, $self->loc('Permission Denied') ); + } my $priv = RT::Group->new($self->CurrentUser); $priv->LoadSystemInternalGroup('Privileged'); @@ -381,7 +401,7 @@ sub SetPrivileged { return (0,$self->loc("That user is already privileged")); } if ($unpriv->HasMember($self->PrincipalObj)) { - $unpriv->DeleteMember($self->PrincipalId); + $unpriv->_DeleteMember($self->PrincipalId); } else { # if we had layered transactions, life would be good # sadly, we have to just go ahead, even if something @@ -389,7 +409,7 @@ sub SetPrivileged { $RT::Logger->crit("User ".$self->Id." is neither privileged nor ". "unprivileged. something is drastically wrong."); } - my ($status, $msg) = $priv->AddMember($self->PrincipalId); + my ($status, $msg) = $priv->_AddMember( InsideTransaction => 1, PrincipalId => $self->PrincipalId); if ($status) { return (1, $self->loc("That user is now privileged")); } else { @@ -402,7 +422,7 @@ sub SetPrivileged { return (0,$self->loc("That user is already unprivileged")); } if ($priv->HasMember($self->PrincipalObj)) { - $priv->DeleteMember($self->PrincipalId); + $priv->_DeleteMember( $self->PrincipalId); } else { # if we had layered transactions, life would be good # sadly, we have to just go ahead, even if something @@ -410,7 +430,7 @@ sub SetPrivileged { $RT::Logger->crit("User ".$self->Id." is neither privileged nor ". "unprivileged. something is drastically wrong."); } - my ($status, $msg) = $unpriv->AddMember($self->PrincipalId); + my ($status, $msg) = $unpriv->_AddMember( InsideTransaction => 1, PrincipalId => $self->PrincipalId); if ($status) { return (1, $self->loc("That user is now unprivileged")); } else { @@ -576,13 +596,17 @@ sub LoadOrCreateByEmail { my ($val, $message); + my ( $Address, $Name ) = + RT::EmailParser::ParseAddressFromHeader('', $email); + $email = $Address; + $self->LoadByEmail($email); $message = $self->loc('User loaded'); unless ($self->Id) { ( $val, $message ) = $self->Create( Name => $email, EmailAddress => $email, - RealName => $email, + RealName => $Name, Privileged => 0, Comments => 'Autocreated when added as a watcher'); unless ($val) { diff --git a/rt/lib/t/02regression.t.in b/rt/lib/t/02regression.t.in index 8c050ff5b..7862ef407 100644 --- a/rt/lib/t/02regression.t.in +++ b/rt/lib/t/02regression.t.in @@ -34,10 +34,12 @@ is($q2->CommentAddress, 'comment@a'); use File::Find; -File::Find::find({wanted => \&wanted_autogen}, 'lib/t/autogen'); +File::Find::find({wanted => \&wanted_autogen, + preprocess => sub {return sort @_}}, 'lib/t/autogen'); sub wanted_autogen { /^autogen.*\.t\z/s && require $_; } -File::Find::find({wanted => \&wanted_regression}, 'lib/t/regression'); +File::Find::find({wanted => \&wanted_regression, + preprocess => sub {return sort @_}}, 'lib/t/regression'); sub wanted_regression { /^*\.t\z/s && require $_; } require "@RT_LIB_PATH@/t/03web.pl"; diff --git a/rt/lib/t/04_send_email.pl.in b/rt/lib/t/04_send_email.pl.in index 2bdf4c5a6..39ab0d271 100644 --- a/rt/lib/t/04_send_email.pl.in +++ b/rt/lib/t/04_send_email.pl.in @@ -474,6 +474,31 @@ sub crashes_redef_sendmessage { +# }}} + +# {{{ test a multi-line RT-Send-CC header + +my $content = `cat @RT_LIB_PATH@/t/data/rt-send-cc` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + + +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +my $cc = $tick->Transactions->First->Attachments->First->GetHeader('RT-Send-Cc'); +ok ($cc =~ /test1/, "Found test 1"); +ok ($cc =~ /test2/, "Found test 2"); +ok ($cc =~ /test3/, "Found test 3"); +ok ($cc =~ /test4/, "Found test 4"); +ok ($cc =~ /test5/, "Found test 5"); + # }}} # Don't taint the environment diff --git a/rt/lib/t/data/rt-send-cc b/rt/lib/t/data/rt-send-cc new file mode 100644 index 000000000..da8c4daff --- /dev/null +++ b/rt/lib/t/data/rt-send-cc @@ -0,0 +1,5 @@ +From: rt@example.com +subject: testing send-cc headers +RT-Send-Cc: this-is-a-sample-test1e@example.com, second-this-is-a-sample-test2@example.com, test-sample-sample-sample-test3@example.com, + afourthtest4@example.com, + test5@example.com -- cgit v1.2.1 From 0d1d2630e726ab4ce32bab9c3e4a889eee43fcb4 Mon Sep 17 00:00:00 2001 From: ivan <ivan> Date: Thu, 2 Dec 2004 09:59:48 +0000 Subject: second big RT integration checkin, customer linking/delinking interface --- rt/lib/RT/Interface/Web_Vendor.pm | 95 +++++++++++++++++++++++++++++++++++++++ rt/lib/RT/URI/freeside.pm | 80 +++++++++++++++++++++++++++++++-- 2 files changed, 171 insertions(+), 4 deletions(-) create mode 100644 rt/lib/RT/Interface/Web_Vendor.pm (limited to 'rt/lib') diff --git a/rt/lib/RT/Interface/Web_Vendor.pm b/rt/lib/RT/Interface/Web_Vendor.pm new file mode 100644 index 000000000..5be20e6b9 --- /dev/null +++ b/rt/lib/RT/Interface/Web_Vendor.pm @@ -0,0 +1,95 @@ +# Copyright (c) 2004 Ivan Kohler <ivan-rt@420.am> +# +# 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, + @_ + ); + my @results = (); + + my $Ticket = $args{'TicketObj'}; + 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 ) = $Ticket->DeleteLink( Base => $base, + Type => $type, + Target => $target ); + + push @results, $msg; + + } + + } + ### + + my @delete_custnums = + map { /^Ticket-AddCustomer-(\d+)$/; $1 } + grep { /^Ticket-AddCustomer-(\d+)$/ && $ARGSRef->{$_} } + keys %$ARGSRef; + + my @custnums = map { /^Ticket-AddCustomer-(\d+)$/; $1 } + grep { /^Ticket-AddCustomer-(\d+)$/ && $ARGSRef->{$_} } + keys %$ARGSRef; + + foreach my $custnum ( @custnums ) { + my( $val, $msg ) = + $Ticket->AddLink( 'Type' => 'MemberOf', + 'Target' => "freeside://freeside/cust_main/$custnum", + ); + push @results, $msg; + } + + return @results; + +} + +1; + diff --git a/rt/lib/RT/URI/freeside.pm b/rt/lib/RT/URI/freeside.pm index bfb514df8..ebd24ad60 100644 --- a/rt/lib/RT/URI/freeside.pm +++ b/rt/lib/RT/URI/freeside.pm @@ -82,10 +82,11 @@ sub FreesideURILabel { $label = "Freeside service ${svc}: ${tag}"; } } elsif ($table eq 'cust_main') { - my ($last, $first, $company) = map { $rec->getfield($_) } - qw(last first company); - $label = "Freeside customer ${last}, ${first}"; - $label .= ($company ne '') ? " with ${company}" : ''; + #my ($last, $first, $company) = map { $rec->getfield($_) } + # qw(last first company); + #$label = "Freeside customer ${last}, ${first}"; + #$label .= ($company ne '') ? " with ${company}" : ''; + $label = "$pkey: ". $rec->name; } else { $label = "Freeside ${table}, ${pkeyfield} == ${pkey}"; } @@ -101,6 +102,61 @@ sub FreesideURILabel { } +} + +sub FreesideURILabelLong { + + my $self = shift; + + return(undef) unless (exists($self->{'fstable'}) and + exists($self->{'fspkey'})); + + my $label; + my ($table, $pkey) = ($self->{'fstable'}, $self->{'fspkey'}); + + eval { + use FS::UID qw(dbh); + use FS::Record qw(qsearchs qsearch dbdef); + eval "use FS::$table;"; + use FS::cust_svc; + + my $dbdef = dbdef or die "No dbdef"; + my $pkeyfield = $dbdef->table($table)->primary_key + or die "No primary key for table $table"; + + my $rec = qsearchs($table, { $pkeyfield => $pkey }) + or die "Record with $pkeyfield == $pkey does not exist in table $table"; + + if ($table =~ /^svc_/) { + #if ($rec->can('cust_svc')) { + # my $cust_svc = $rec->cust_svc or die '$rec->cust_svc failed'; + # my ($svc, $tag, $svcdb) = $cust_svc->label; + # $label = "Freeside service ${svc}: ${tag}"; + #} + $label = ''; + } elsif ($table eq 'cust_main') { + use FS::CGI qw(small_custview); + $label = small_custview( $rec, + scalar(FS::Conf->new->config('countrydefault')), + 1 #nobalance + ); + } else { + #$label = "Freeside ${table}, ${pkeyfield} == ${pkey}"; + $label = ''; + } + + #... other cases + + }; + + if ($label and !$@) { + return($label); + } else { + warn $@; + return(undef); + } + + } sub ParseURI { @@ -180,6 +236,22 @@ sub AsString { } } +=head2 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; + } +} + eval "require RT::URI::base_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/URI/base_Vendor.pm}); eval "require RT::URI::base_Local"; -- cgit v1.2.1 From d39d52aac8f38ea9115628039f0df5aa3ac826de Mon Sep 17 00:00:00 2001 From: ivan <ivan> Date: Fri, 3 Dec 2004 20:40:48 +0000 Subject: import rt 3.2.2 --- rt/lib/RT.pm.in | 63 +- rt/lib/RT/ACE.pm | 72 +- rt/lib/RT/ACE_Overlay.pm | 38 +- rt/lib/RT/ACL.pm | 40 +- rt/lib/RT/ACL_Overlay.pm | 38 +- rt/lib/RT/Action/AutoOpen.pm | 38 +- rt/lib/RT/Action/Autoreply.pm | 50 +- rt/lib/RT/Action/CreateTickets.pm | 1256 ++- rt/lib/RT/Action/EscalatePriority.pm | 38 +- rt/lib/RT/Action/Generic.pm | 59 +- rt/lib/RT/Action/Notify.pm | 73 +- rt/lib/RT/Action/NotifyAsComment.pm | 38 +- rt/lib/RT/Action/RecordComment.pm | 142 + rt/lib/RT/Action/RecordCorrespondence.pm | 143 + rt/lib/RT/Action/ResolveMembers.pm | 38 +- rt/lib/RT/Action/SendEmail.pm | 680 +- rt/lib/RT/Action/SetPriority.pm | 38 +- rt/lib/RT/Action/UserDefined.pm | 38 +- rt/lib/RT/Attachment.pm | 84 +- rt/lib/RT/Attachment_Overlay.pm | 157 +- rt/lib/RT/Attachments.pm | 40 +- rt/lib/RT/Attachments_Overlay.pm | 66 +- rt/lib/RT/Attribute.pm | 347 + rt/lib/RT/Attribute_Overlay.pm | 462 + rt/lib/RT/Attributes.pm | 137 + rt/lib/RT/Attributes_Overlay.pm | 211 + rt/lib/RT/Base.pm | 38 +- rt/lib/RT/CachedGroupMember.pm | 64 +- rt/lib/RT/CachedGroupMember_Overlay.pm | 38 +- rt/lib/RT/CachedGroupMembers.pm | 40 +- rt/lib/RT/CachedGroupMembers_Overlay.pm | 38 +- rt/lib/RT/Condition/AnyTransaction.pm | 38 +- rt/lib/RT/Condition/BeforeDue.pm | 38 +- rt/lib/RT/Condition/Generic.pm | 44 +- rt/lib/RT/Condition/Overdue.pm | 38 +- rt/lib/RT/Condition/OwnerChange.pm | 40 +- rt/lib/RT/Condition/PriorityChange.pm | 80 + rt/lib/RT/Condition/PriorityExceeds.pm | 38 +- rt/lib/RT/Condition/QueueChange.pm | 38 +- rt/lib/RT/Condition/StatusChange.pm | 38 +- rt/lib/RT/Condition/UserDefined.pm | 38 +- rt/lib/RT/CurrentUser.pm | 100 +- rt/lib/RT/CustomField.pm | 78 +- rt/lib/RT/CustomFieldValue.pm | 70 +- rt/lib/RT/CustomFieldValues.pm | 40 +- rt/lib/RT/CustomFieldValues_Overlay.pm | 38 +- rt/lib/RT/CustomField_Overlay.pm | 38 +- rt/lib/RT/CustomFields.pm | 40 +- rt/lib/RT/CustomFields_Overlay.pm | 38 +- rt/lib/RT/Date.pm | 41 +- rt/lib/RT/EmailParser.pm | 152 +- rt/lib/RT/Group.pm | 72 +- rt/lib/RT/GroupMember.pm | 52 +- rt/lib/RT/GroupMember_Overlay.pm | 38 +- rt/lib/RT/GroupMembers.pm | 40 +- rt/lib/RT/GroupMembers_Overlay.pm | 38 +- rt/lib/RT/Group_Overlay.pm | 42 +- rt/lib/RT/Groups.pm | 40 +- rt/lib/RT/Groups_Overlay.pm | 38 +- rt/lib/RT/Handle.pm | 56 +- rt/lib/RT/I18N.pm | 38 +- rt/lib/RT/I18N/cs.pm | 38 +- rt/lib/RT/I18N/cs.po | 2534 +++-- rt/lib/RT/I18N/da.po | 1914 ++-- rt/lib/RT/I18N/de.po | 2801 ++++-- rt/lib/RT/I18N/en.po | 6 +- rt/lib/RT/I18N/en_malkovich.po | 3973 ++++++++ rt/lib/RT/I18N/es.po | 2846 ++++-- rt/lib/RT/I18N/fi.po | 2847 ++++-- rt/lib/RT/I18N/fr.po | 2543 +++-- rt/lib/RT/I18N/he.po | 3158 ++++-- rt/lib/RT/I18N/hu.po | 11080 ++++++++++++--------- rt/lib/RT/I18N/i_default.pm | 38 +- rt/lib/RT/I18N/it.po | 4812 ++++----- rt/lib/RT/I18N/ja.po | 3211 ++++-- rt/lib/RT/I18N/nl.po | 3210 ++++-- rt/lib/RT/I18N/no.po | 3192 ++++-- rt/lib/RT/I18N/pt_br.po | 3209 ++++-- rt/lib/RT/I18N/ru.po | 3487 +++++-- rt/lib/RT/I18N/zh_cn.po | 3094 ++++-- rt/lib/RT/I18N/zh_tw.po | 3094 ++++-- rt/lib/RT/Interface/CLI.pm | 40 +- rt/lib/RT/Interface/Email.pm | 94 +- rt/lib/RT/Interface/Email/Auth/GnuPG.pm | 121 + rt/lib/RT/Interface/Email/Auth/MailFrom.pm | 43 +- rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm | 38 +- rt/lib/RT/Interface/REST.pm | 40 +- rt/lib/RT/Interface/Web.pm | 283 +- rt/lib/RT/Interface/Web/Handler.pm | 178 + rt/lib/RT/Link.pm | 72 +- rt/lib/RT/Link_Overlay.pm | 42 +- rt/lib/RT/Links.pm | 40 +- rt/lib/RT/Links_Overlay.pm | 62 +- rt/lib/RT/Principal.pm | 56 +- rt/lib/RT/Principal_Overlay.pm | 38 +- rt/lib/RT/Principals.pm | 40 +- rt/lib/RT/Principals_Overlay.pm | 38 +- rt/lib/RT/Queue.pm | 84 +- rt/lib/RT/Queue_Overlay.pm | 82 +- rt/lib/RT/Queues.pm | 40 +- rt/lib/RT/Queues_Overlay.pm | 38 +- rt/lib/RT/Record.pm | 843 +- rt/lib/RT/Scrip.pm | 104 +- rt/lib/RT/ScripAction.pm | 68 +- rt/lib/RT/ScripAction_Overlay.pm | 87 +- rt/lib/RT/ScripActions.pm | 40 +- rt/lib/RT/ScripActions_Overlay.pm | 38 +- rt/lib/RT/ScripCondition.pm | 72 +- rt/lib/RT/ScripCondition_Overlay.pm | 41 +- rt/lib/RT/ScripConditions.pm | 40 +- rt/lib/RT/ScripConditions_Overlay.pm | 38 +- rt/lib/RT/Scrip_Overlay.pm | 365 +- rt/lib/RT/Scrips.pm | 40 +- rt/lib/RT/Scrips_Overlay.pm | 221 +- rt/lib/RT/Search/ActiveTicketsInQueue.pm | 38 +- rt/lib/RT/Search/FromSQL.pm | 131 + rt/lib/RT/Search/Generic.pm | 38 +- rt/lib/RT/SearchBuilder.pm | 154 +- rt/lib/RT/System.pm | 38 +- rt/lib/RT/Template.pm | 82 +- rt/lib/RT/Template_Overlay.pm | 38 +- rt/lib/RT/Templates.pm | 40 +- rt/lib/RT/Templates_Overlay.pm | 38 +- rt/lib/RT/Ticket.pm | 134 +- rt/lib/RT/TicketCustomFieldValue.pm | 68 +- rt/lib/RT/TicketCustomFieldValue_Overlay.pm | 38 +- rt/lib/RT/TicketCustomFieldValues.pm | 40 +- rt/lib/RT/TicketCustomFieldValues_Overlay.pm | 38 +- rt/lib/RT/Ticket_Overlay.pm | 1125 +-- rt/lib/RT/Tickets.pm | 40 +- rt/lib/RT/Tickets_Overlay.pm | 338 +- rt/lib/RT/Tickets_Overlay_SQL.pm | 71 +- rt/lib/RT/Transaction.pm | 90 +- rt/lib/RT/Transaction_Overlay.pm | 109 +- rt/lib/RT/Transactions.pm | 40 +- rt/lib/RT/Transactions_Overlay.pm | 86 +- rt/lib/RT/URI.pm | 50 +- rt/lib/RT/URI/base.pm | 38 +- rt/lib/RT/URI/fsck_com_rt.pm | 165 +- rt/lib/RT/User.pm | 168 +- rt/lib/RT/User_Overlay.pm | 166 +- rt/lib/RT/Users.pm | 40 +- rt/lib/RT/Users_Overlay.pm | 42 +- rt/lib/t/00smoke.t.in | 2 +- rt/lib/t/02regression.t.in | 1 + rt/lib/t/03web.pl.in | 78 +- rt/lib/t/05cronsupport.pl.in | 84 + 147 files changed, 51076 insertions(+), 23248 deletions(-) create mode 100644 rt/lib/RT/Action/RecordComment.pm create mode 100644 rt/lib/RT/Action/RecordCorrespondence.pm create mode 100644 rt/lib/RT/Attribute.pm create mode 100644 rt/lib/RT/Attribute_Overlay.pm create mode 100644 rt/lib/RT/Attributes.pm create mode 100644 rt/lib/RT/Attributes_Overlay.pm create mode 100644 rt/lib/RT/Condition/PriorityChange.pm create mode 100644 rt/lib/RT/I18N/en_malkovich.po create mode 100755 rt/lib/RT/Interface/Email/Auth/GnuPG.pm create mode 100644 rt/lib/RT/Interface/Web/Handler.pm create mode 100644 rt/lib/RT/Search/FromSQL.pm create mode 100644 rt/lib/t/05cronsupport.pl.in (limited to 'rt/lib') diff --git a/rt/lib/RT.pm.in b/rt/lib/RT.pm.in index c0a350a58..db3725037 100644 --- a/rt/lib/RT.pm.in +++ b/rt/lib/RT.pm.in @@ -1,29 +1,48 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2002 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 +# 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. # -# 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. # +# CONTRIBUTION SUBMISSION POLICY: # -# END LICENSE BLOCK - - +# (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 package RT; use strict; use RT::I18N; @@ -50,6 +69,8 @@ $VERSION = '@RT_VERSION_MAJOR@.@RT_VERSION_MINOR@.@RT_VERSION_PATCH@'; $CORE_CONFIG_FILE = "@CONFIG_FILE_PATH@/RT_Config.pm"; $SITE_CONFIG_FILE = "@CONFIG_FILE_PATH@/RT_SiteConfig.pm"; +@DATABASE_ENV_PREF@ + $BasePath = '@RT_PATH@'; $EtcPath = '@RT_ETC_PATH@'; @@ -277,26 +298,14 @@ sub Nobody { } -=head2 DropSetGIDPermissions - -Drops setgid permissions. - -=cut - -sub DropSetGIDPermissions { - # Now that we got the config read in, we have the database - # password and don't need to be setgid - # make the effective group the real group - $) = $(; -} - - =head1 SYNOPSIS =head1 BUGS -Please report them to rt-3.0-bugs@fsck.com, if you know what's broken and have at least some idea of what needs to be fixed. -If you're not sure what's going on, report them rt-devel@lists.fsck.com. +Please report them to rt-bugs@fsck.com, if you know what's broken and have at least +some idea of what needs to be fixed. + +If you're not sure what's going on, report them rt-devel@lists.bestpractical.com. =head1 SEE ALSO diff --git a/rt/lib/RT/ACE.pm b/rt/lib/RT/ACE.pm index 1501a125e..cbcd99fd0 100755 --- a/rt/lib/RT/ACE.pm +++ b/rt/lib/RT/ACE.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -61,7 +83,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -104,7 +126,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -113,14 +135,14 @@ Returns the current value of id. =cut -=item PrincipalType +=head2 PrincipalType Returns the current value of PrincipalType. (In the database, PrincipalType is stored as varchar(25).) -=item SetPrincipalType VALUE +=head2 SetPrincipalType VALUE Set PrincipalType to VALUE. @@ -131,14 +153,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item PrincipalId +=head2 PrincipalId Returns the current value of PrincipalId. (In the database, PrincipalId is stored as int(11).) -=item SetPrincipalId VALUE +=head2 SetPrincipalId VALUE Set PrincipalId to VALUE. @@ -149,14 +171,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item RightName +=head2 RightName Returns the current value of RightName. (In the database, RightName is stored as varchar(25).) -=item SetRightName VALUE +=head2 SetRightName VALUE Set RightName to VALUE. @@ -167,14 +189,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ObjectType +=head2 ObjectType Returns the current value of ObjectType. (In the database, ObjectType is stored as varchar(25).) -=item SetObjectType VALUE +=head2 SetObjectType VALUE Set ObjectType to VALUE. @@ -185,14 +207,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ObjectId +=head2 ObjectId Returns the current value of ObjectId. (In the database, ObjectId is stored as int(11).) -=item SetObjectId VALUE +=head2 SetObjectId VALUE Set ObjectId to VALUE. @@ -203,14 +225,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item DelegatedBy +=head2 DelegatedBy Returns the current value of DelegatedBy. (In the database, DelegatedBy is stored as int(11).) -=item SetDelegatedBy VALUE +=head2 SetDelegatedBy VALUE Set DelegatedBy to VALUE. @@ -221,14 +243,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item DelegatedFrom +=head2 DelegatedFrom Returns the current value of DelegatedFrom. (In the database, DelegatedFrom is stored as int(11).) -=item SetDelegatedFrom VALUE +=head2 SetDelegatedFrom VALUE Set DelegatedFrom to VALUE. @@ -240,7 +262,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/ACE_Overlay.pm b/rt/lib/RT/ACE_Overlay.pm index 65e5a9c45..00a7157d3 100644 --- a/rt/lib/RT/ACE_Overlay.pm +++ b/rt/lib/RT/ACE_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 SYNOPSIS use RT::ACE; diff --git a/rt/lib/RT/ACL.pm b/rt/lib/RT/ACL.pm index 81f59c6d0..8fd548e4f 100755 --- a/rt/lib/RT/ACL.pm +++ b/rt/lib/RT/ACL.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::ACE item diff --git a/rt/lib/RT/ACL_Overlay.pm b/rt/lib/RT/ACL_Overlay.pm index bb69a20f4..827d34cc5 100644 --- a/rt/lib/RT/ACL_Overlay.pm +++ b/rt/lib/RT/ACL_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::ACL - collection of RT ACE objects diff --git a/rt/lib/RT/Action/AutoOpen.pm b/rt/lib/RT/Action/AutoOpen.pm index 7c8c2b89d..b28c50d3e 100644 --- a/rt/lib/RT/Action/AutoOpen.pm +++ b/rt/lib/RT/Action/AutoOpen.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK # This Action will open the BASE if a dependent is resolved. package RT::Action::AutoOpen; diff --git a/rt/lib/RT/Action/Autoreply.pm b/rt/lib/RT/Action/Autoreply.pm index f58b8f284..6d2894f54 100755 --- a/rt/lib/RT/Action/Autoreply.pm +++ b/rt/lib/RT/Action/Autoreply.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 package RT::Action::Autoreply; require RT::Action::SendEmail; @@ -28,6 +50,18 @@ use strict; use vars qw/@ISA/; @ISA = qw(RT::Action::SendEmail); +=head2 Prepare + +Set up the relevant recipients, then call our parent. + +=cut + + +sub Prepare { + my $self = shift; + $self->SetRecipients(); + $self->SUPER::Prepare(); +} # {{{ sub SetRecipients diff --git a/rt/lib/RT/Action/CreateTickets.pm b/rt/lib/RT/Action/CreateTickets.pm index e1c6f4a9b..68f402e4e 100644 --- a/rt/lib/RT/Action/CreateTickets.pm +++ b/rt/lib/RT/Action/CreateTickets.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,17 +20,34 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 package RT::Action::CreateTickets; require RT::Action::Generic; use strict; +use warnings; use vars qw/@ISA/; @ISA = qw(RT::Action::Generic); @@ -39,7 +62,7 @@ Create one or more tickets according to an externally supplied template. =head1 SYNOPSIS - ===Create-Ticket: codereview + ===Create-Ticket codereview Subject: Code review for {$Tickets{'TOP'}->Subject} Depended-On-By: TOP Content: Someone has created a ticket. you should review and approve it, @@ -220,27 +243,11 @@ ok ($approvalsq->Id, "Created Approvals test queue"); my $approvals = '===Create-Ticket: approval -{ my $name = "HR"; - my $groups = RT::Groups->new($RT::SystemUser); - $groups->LimitToUserDefinedGroups(); - $groups->Limit(FIELD => "Name", OPERATOR => "=", VALUE => "$name"); - $groups->WithMember($Transaction->CreatorObj->Id); - - my $groupid = $groups->First->Id; - - my $adminccs = RT::Users->new($RT::SystemUser); - $adminccs->WhoHaveRight(Right => "AdminGroup", IncludeSystemRights => undef, IncludeSuperusers => 0, IncludeSubgroupMembers => 0, Object => $groups->First); - - my @admins; - while (my $admin = $adminccs->Next) { - push (@admins, $admin->EmailAddress); - } -} Queue: Approvals Type: Approval AdminCc: {join ("\nAdminCc: ",@admins) } -Depended-On-By: TOP -Refers-To: TOP +Depended-On-By: {$Tickets{"TOP"}->Id} +Refers-To: TOP Subject: Approval for ticket: {$Tickets{"TOP"}->Id} - {$Tickets{"TOP"}->Subject} Due: {time + 86400} Content-Type: text/plain @@ -250,11 +257,11 @@ Blah ENDOFCONTENT ===Create-Ticket: two Subject: Manager approval. -Depends-On: {$Tickets{"approval"}->Id} +Depended-On-By: approval Queue: Approvals Content-Type: text/plain Content: -Your minion approved this ticket. you ok with that? +Your minion approved ticket {$Tickets{"TOP"}->Id}. you ok with that? ENDOFCONTENT '; @@ -281,10 +288,173 @@ ok ($scrip->ConditionObj->Id, "Created the scrip condition"); ok ($scrip->ActionObj->Id, "Created the scrip action"); my $t = RT::Ticket->new($RT::SystemUser); -$t->Create(Subject => "Sample workflow test", +my($tid, $ttrans, $tmsg) = $t->Create(Subject => "Sample workflow test", Owner => "root", Queue => $q->Id); +ok ($tid,$tmsg); + +my $deps = $t->DependsOn; +is ($deps->Count, 1, "The ticket we created depends on one other ticket"); +my $dependson= $deps->First->TargetObj; +ok ($dependson->Id, "It depends on a real ticket"); +unlike ($dependson->Subject, qr/{/, "The subject doesn't have braces in it. that means we're interpreting expressions"); +is ($t->ReferredToBy->Count,1, "It's only referred to by one other ticket"); +is ($t->ReferredToBy->First->BaseObj->Id,$t->DependsOn->First->TargetObj->Id, "The same ticket that depends on it refers to it."); +use RT::Action::CreateTickets; +my $action = RT::Action::CreateTickets->new( CurrentUser => $RT::SystemUser);; + +# comma-delimited templates +my $commas = <<"EOF"; +id,Queue,Subject,Owner,Content +ticket1,General,"foo, bar",root,blah +ticket2,General,foo bar,root,blah +ticket3,General,foo' bar,root,blah'boo +ticket4,General,foo' bar,,blah'boo +EOF + + +# Comma delimited templates with missing data +my $sparse_commas = <<"EOF"; +id,Queue,Subject,Owner,Requestor +ticket14,General,,,bobby +ticket15,General,,,tommy +ticket16,General,,suzie,tommy +ticket17,General,Foo "bar" baz,suzie,tommy +ticket18,General,'Foo "bar" baz',suzie,tommy +ticket19,General,'Foo bar' baz,suzie,tommy +EOF + + +# tab-delimited templates +my $tabs = <<"EOF"; +id\tQueue\tSubject\tOwner\tContent +ticket10\tGeneral\t"foo' bar"\troot\tblah' +ticket11\tGeneral\tfoo, bar\troot\tblah +ticket12\tGeneral\tfoo' bar\troot\tblah'boo +ticket13\tGeneral\tfoo' bar\t\tblah'boo +EOF + +my %expected; + +$expected{ticket1} = <<EOF; +Queue: General +Subject: foo, bar +Owner: root +Content: blah +ENDOFCONTENT +EOF + +$expected{ticket2} = <<EOF; +Queue: General +Subject: foo bar +Owner: root +Content: blah +ENDOFCONTENT +EOF + +$expected{ticket3} = <<EOF; +Queue: General +Subject: foo' bar +Owner: root +Content: blah'boo +ENDOFCONTENT +EOF + +$expected{ticket4} = <<EOF; +Queue: General +Subject: foo' bar +Owner: +Content: blah'boo +ENDOFCONTENT +EOF + +$expected{ticket10} = <<EOF; +Queue: General +Subject: foo' bar +Owner: root +Content: blah' +ENDOFCONTENT +EOF + +$expected{ticket11} = <<EOF; +Queue: General +Subject: foo, bar +Owner: root +Content: blah +ENDOFCONTENT +EOF + +$expected{ticket12} = <<EOF; +Queue: General +Subject: foo' bar +Owner: root +Content: blah'boo +ENDOFCONTENT +EOF + +$expected{ticket13} = <<EOF; +Queue: General +Subject: foo' bar +Owner: +Content: blah'boo +ENDOFCONTENT +EOF + + +$expected{'ticket14'} = <<EOF; +Queue: General +Subject: +Owner: +Requestor: bobby +EOF +$expected{'ticket15'} = <<EOF; +Queue: General +Subject: +Owner: +Requestor: tommy +EOF +$expected{'ticket16'} = <<EOF; +Queue: General +Subject: +Owner: suzie +Requestor: tommy +EOF +$expected{'ticket17'} = <<EOF; +Queue: General +Subject: Foo "bar" baz +Owner: suzie +Requestor: tommy +EOF +$expected{'ticket18'} = <<EOF; +Queue: General +Subject: Foo "bar" baz +Owner: suzie +Requestor: tommy +EOF +$expected{'ticket19'} = <<EOF; +Queue: General +Subject: 'Foo bar' baz +Owner: suzie +Requestor: tommy +EOF + + + + +$action->Parse(Content =>$commas); +$action->Parse(Content =>$sparse_commas); +$action->Parse(Content => $tabs); + +my %got; +foreach (@{ $action->{'create_tickets'} }) { + $got{$_} = $action->{'templates'}->{$_}; +} + +foreach my $id ( sort keys %expected ) { + ok(exists($got{"create-$id"}), "template exists for $id"); + is($got{"create-$id"}, $expected{$id}, "template is correct for $id"); +} =end testing @@ -300,267 +470,869 @@ perl(1). =cut my %LINKTYPEMAP = ( - MemberOf => { Type => 'MemberOf', - Mode => 'Target', }, - Members => { Type => 'MemberOf', - Mode => 'Base', }, - HasMember => { Type => 'MemberOf', - Mode => 'Base', }, - RefersTo => { Type => 'RefersTo', - Mode => 'Target', }, - ReferredToBy => { Type => 'RefersTo', - Mode => 'Base', }, - DependsOn => { Type => 'DependsOn', - Mode => 'Target', }, - DependedOnBy => { Type => 'DependsOn', - Mode => 'Base', }, + MemberOf => { + Type => 'MemberOf', + Mode => 'Target', + }, + Parents => { + Type => 'MemberOf', + Mode => 'Target', + }, + Members => { + Type => 'MemberOf', + Mode => 'Base', + }, + Children => { + Type => 'MemberOf', + Mode => 'Base', + }, + HasMember => { + Type => 'MemberOf', + Mode => 'Base', + }, + RefersTo => { + Type => 'RefersTo', + Mode => 'Target', + }, + ReferredToBy => { + Type => 'RefersTo', + Mode => 'Base', + }, + DependsOn => { + Type => 'DependsOn', + Mode => 'Target', + }, + DependedOnBy => { + Type => 'DependsOn', + Mode => 'Base', + }, ); # {{{ Scrip methods (Commit, Prepare) -# {{{ sub Commit +# {{{ sub Commit #Do what we need to do and send it out. sub Commit { my $self = shift; - my (@links, @postponed); + + # Create all the tickets we care about + return (1) unless $self->TicketObj->Type eq 'ticket'; + + $self->CreateByTemplate( $self->TicketObj ); + $self->UpdateByTemplate( $self->TicketObj ); + return (1); +} + +# }}} + +# {{{ sub Prepare + +sub Prepare { + my $self = shift; + + unless ( $self->TemplateObj ) { + $RT::Logger->warning("No template object handed to $self\n"); + } + + unless ( $self->TransactionObj ) { + $RT::Logger->warning("No transaction object handed to $self\n"); + + } + + unless ( $self->TicketObj ) { + $RT::Logger->warning("No ticket object handed to $self\n"); + + } + + $self->Parse( Content => $self->TemplateObj->Content, _ActiveContent => 1); + return 1; + +} + +# }}} + +# }}} + +sub CreateByTemplate { + my $self = shift; + my $top = shift; + + $RT::Logger->debug("In CreateByTemplate"); + + my @results; # XXX: cargo cult programming that works. i'll be back. use bytes; - # Create all the tickets we care about - return(1) unless $self->TicketObj->Type eq 'ticket'; - %T::Tickets = (); - foreach my $template_id ( @{ $self->{'template_order'} } ) { - $T::Tickets{'TOP'} = $T::TOP = $self->TicketObj; - $RT::Logger->debug("Workflow: processing $template_id of $T::TOP"); + my $ticketargs; + my ( @links, @postponed ); + foreach my $template_id ( @{ $self->{'create_tickets'} } ) { + $T::Tickets{'TOP'} = $T::TOP = $top if $top; + $RT::Logger->debug("Workflow: processing $template_id of $T::TOP") + if $T::TOP; + + $T::ID = $template_id; + @T::AllID = @{ $self->{'create_tickets'} }; + + ( $T::Tickets{$template_id}, $ticketargs ) = + $self->ParseLines( $template_id, \@links, \@postponed ); + + # Now we have a %args to work with. + # Make sure we have at least the minimum set of + # reasonable data and do our thang + + my ( $id, $transid, $msg ) = + $T::Tickets{$template_id}->Create(%$ticketargs); + + foreach my $res ( split( '\n', $msg ) ) { + push @results, + $T::Tickets{$template_id} + ->loc( "Ticket [_1]", $T::Tickets{$template_id}->Id ) . ': ' + . $res; + } + if ( !$id ) { + if ( $self->TicketObj ) { + $msg = + "Couldn't create related ticket $template_id for " + . $self->TicketObj->Id . " " + . $msg; + } + else { + $msg = "Couldn't create ticket $template_id " . $msg; + } + + $RT::Logger->error($msg); + next; + } - $T::ID = $template_id; - @T::AllID = @{ $self->{'template_order'} }; + $RT::Logger->debug("Assigned $template_id with $id"); + $T::Tickets{$template_id}->SetOriginObj( $self->TicketObj ) + if $self->TicketObj + && $T::Tickets{$template_id}->can('SetOriginObj'); - my $template = Text::Template->new( - TYPE => 'STRING', - SOURCE => $self->{'templates'}->{$template_id} + } + + $self->PostProcess( \@links, \@postponed ); + + return @results; +} + +sub UpdateByTemplate { + my $self = shift; + my $top = shift; + + # XXX: cargo cult programming that works. i'll be back. + use bytes; + + my @results; + %T::Tickets = (); + + my $ticketargs; + my ( @links, @postponed ); + foreach my $template_id ( @{ $self->{'update_tickets'} } ) { + $RT::Logger->debug("Update Workflow: processing $template_id"); + + $T::ID = $template_id; + @T::AllID = @{ $self->{'update_tickets'} }; + + ( $T::Tickets{$template_id}, $ticketargs ) = + $self->ParseLines( $template_id, \@links, \@postponed ); + + # Now we have a %args to work with. + # Make sure we have at least the minimum set of + # reasonable data and do our thang + + my @attribs = qw( + Subject + FinalPriority + Priority + TimeEstimated + TimeWorked + TimeLeft + Status + Queue + Due + Starts + Started + Resolved + ); + + my $id = $template_id; + $id =~ s/update-(\d+).*/$1/; + $T::Tickets{$template_id}->Load($id); + + my $msg; + if ( !$T::Tickets{$template_id}->Id ) { + $msg = "Couldn't update ticket $template_id " . $msg; + + $RT::Logger->error($msg); + next; + } + + my $current = $self->GetBaseTemplate( $T::Tickets{$template_id} ); + + $template_id =~ m/^update-(.*)/; + my $base_id = "base-$1"; + my $base = $self->{'templates'}->{$base_id}; + if ($base) { + $base =~ s/\r//g; + $base =~ s/\n+$//; + $current =~ s/\n+$//; + + # If we have no base template, set what we can. + if ($base ne $current) { + push @results, + "Could not update ticket " + . $T::Tickets{$template_id}->Id + . ": Ticket has changed"; + next; + } + } + push @results, $T::Tickets{$template_id}->Update( + AttributesRef => \@attribs, + ARGSRef => $ticketargs ); - $RT::Logger->debug("Workflow: evaluating\n$self->{templates}{$template_id}"); + push @results, + $self->UpdateWatchers( $T::Tickets{$template_id}, $ticketargs ); + + next unless exists $ticketargs->{'UpdateType'}; + if ( $ticketargs->{'UpdateType'} =~ /^(private|public)$/ ) { + my ( $Transaction, $Description, $Object ) = + $T::Tickets{$template_id}->Comment( + CcMessageTo => $ticketargs->{'Cc'}, + BccMessageTo => $ticketargs->{'Bcc'}, + MIMEObj => $ticketargs->{'MIMEObj'}, + TimeTaken => $ticketargs->{'TimeWorked'} + ); + push( @results, + $T::Tickets{$template_id} + ->loc( "Ticket [_1]", $T::Tickets{$template_id}->id ) . ': ' + . $Description ); + } + elsif ( $ticketargs->{'UpdateType'} eq 'response' ) { + my ( $Transaction, $Description, $Object ) = + $T::Tickets{$template_id}->Correspond( + CcMessageTo => $ticketargs->{'Cc'}, + BccMessageTo => $ticketargs->{'Bcc'}, + MIMEObj => $ticketargs->{'MIMEObj'}, + TimeTaken => $ticketargs->{'TimeWorked'} + ); + push( @results, + $T::Tickets{$template_id} + ->loc( "Ticket [_1]", $T::Tickets{$template_id}->id ) . ': ' + . $Description ); + } + else { + push( @results, + $T::Tickets{$template_id} + ->loc("Update type was neither correspondence nor comment.") + . " " + . $T::Tickets{$template_id}->loc("Update not recorded.") ); + } + } + + $self->PostProcess( \@links, \@postponed ); - my $err; - my $filled_in = $template->fill_in( PACKAGE => 'T', BROKEN => sub { - $err = { @_ }->{error}; - } ); + return @results; +} + +=head2 Parse TEMPLATE_CONTENT, DEFAULT_QUEUE, DEFAULT_REQEUESTOR ACTIVE + +Parse a template from TEMPLATE_CONTENT + +If $active is set to true, then we'll use Text::Template to parse the templates, +allowing you to embed active perl in your templates. + +=cut - $RT::Logger->debug("Workflow: yielding\n$filled_in"); +sub Parse { + my $self = shift; + my %args = ( Content => undef, + Queue => undef, + Requestor => undef, + _ActiveContent => undef, + @_); - if ($err) { - $RT::Logger->error("Ticket creation failed for ".$self->TicketObj->Id." ".$err); - while (my ($k, $v) = each %T::X) { - $RT::Logger->debug("Eliminating $template_id from ${k}'s parents."); - delete $v->{$template_id}; - } - next; + if ($args{'_ActiveContent'}) { + $self->{'UsePerlTextTemplate'} =1; + } else { + + $self->{'UsePerlTextTemplate'} = 0; + } + + my @template_order; + my $template_id; + my ( $queue, $requestor ); + if ( substr( $args{'Content'}, 0, 3 ) eq '===' ) { + $RT::Logger->debug("Line: ==="); + foreach my $line ( split( /\n/, $args{'Content'} ) ) { + $line =~ s/\r$//; + $RT::Logger->debug("Line: $line"); + if ( $line =~ /^===/ ) { + if ( $template_id && !$queue && $args{'Queue'} ) { + $self->{'templates'}->{$template_id} .= "Queue: $args{'Queue'}\n"; + } + if ( $template_id && !$requestor && $args{'Requestor'} ) { + $self->{'templates'}->{$template_id} .= + "Requestor: $args{'Requestor'}\n"; + } + $queue = 0; + $requestor = 0; + } + if ( $line =~ /^===Create-Ticket: (.*)$/ ) { + $template_id = "create-$1"; + $RT::Logger->debug("**** Create ticket: $template_id"); + push @{ $self->{'create_tickets'} }, $template_id; + } + elsif ( $line =~ /^===Update-Ticket: (.*)$/ ) { + $template_id = "update-$1"; + $RT::Logger->debug("**** Update ticket: $template_id"); + push @{ $self->{'update_tickets'} }, $template_id; + } + elsif ( $line =~ /^===Base-Ticket: (.*)$/ ) { + $template_id = "base-$1"; + $RT::Logger->debug("**** Base ticket: $template_id"); + push @{ $self->{'base_tickets'} }, $template_id; + } + elsif ( $line =~ /^===#.*$/ ) { # a comment + next; + } + else { + if ( $line =~ /^Queue:(.*)/i ) { + $queue = 1; + my $value = $1; + $value =~ s/^\s//; + $value =~ s/\s$//; + if ( !$value && $args{'Queue'}) { + $value = $args{'Queue'}; + $line = "Queue: $value"; + } + } + if ( $line =~ /^Requestor:(.*)/i ) { + $requestor = 1; + my $value = $1; + $value =~ s/^\s//; + $value =~ s/\s$//; + if ( !$value && $args{'Requestor'}) { + $value = $args{'Requestor'}; + $line = "Requestor: $value"; + } + } + $self->{'templates'}->{$template_id} .= $line . "\n"; + } + } + if ( $template_id && !$queue && $args{'Queue'} ) { + $self->{'templates'}->{$template_id} .= "Queue: $args{'Queue'}\n"; } + } + elsif ( substr( $args{'Content'}, 0, 2 ) =~ /^id$/i ) { + $RT::Logger->debug("Line: id"); + use Regexp::Common qw(delimited); + my $first = substr( $args{'Content'}, 0, index( $args{'Content'}, "\n" ) ); + $first =~ s/\r$//; + + my $delimiter; + if ( $first =~ /\t/ ) { + $delimiter = "\t"; + } + else { + $delimiter = ','; + } + my @fields = split( /$delimiter/, $first ); + - my %args; - my @lines = ( split ( /\n/, $filled_in ) ); - while ( defined(my $line = shift @lines) ) { - if ( $line =~ /^(.*?):(?:\s+(.*))?$/ ) { - my $value = $2; - my $tag = lc ($1); - $tag =~ s/-//g; - - if (ref($args{$tag})) { #If it's an array, we want to push the value - push @{$args{$tag}}, $value; - } - elsif (defined ($args{$tag})) { #if we're about to get a second value, make it an array - $args{$tag} = [$args{$tag}, $value]; - } - else { #if there's nothing there, just set the value - $args{ $tag } = $value; - } - - if ( $tag eq 'content' ) { #just build up the content - # convert it to an array - $args{$tag} = defined($value) ? [ $value."\n" ] : []; - while ( defined(my $l = shift @lines) ) { - last if ($l =~ /^ENDOFCONTENT\s*$/) ; - push @{$args{'content'}}, $l."\n"; + my $delimiter_re = qr[$delimiter]; + + my $delimited = qr[[^$delimiter]+]; + my $empty = qr[^[$delimiter](?=[$delimiter])]; + my $justquoted = qr[$RE{quoted}]; + + $args{'Content'} = substr( $args{'Content'}, index( $args{'Content'}, "\n" ) + 1 ); + $RT::Logger->debug("First: $first"); + + my $queue; + foreach my $line ( split( /\n/, $args{'Content'} ) ) { + next unless $line; + $RT::Logger->debug("Line: $line"); + + # first item is $template_id + my $i = 0; + my $template_id; + while ($line && $line =~ s/^($justquoted|.*?)(?:$delimiter_re|$)//ix) { + if ( $i == 0 ) { + $queue = 0; + $requestor = 0; + my $tid = $1; + $tid =~ s/^\s//; + $tid =~ s/\s$//; + next unless $tid; + + + if ($tid =~ /^\d+$/) { + $template_id = 'update-' . $tid; + push @{ $self->{'update_tickets'} }, $template_id; + + } elsif ($tid =~ /^#base-(\d+)$/) { + + $template_id = 'base-' . $1; + push @{ $self->{'base_tickets'} }, $template_id; + + } else { + $template_id = 'create-' . $tid; + push @{ $self->{'create_tickets'} }, $template_id; + } + $RT::Logger->debug("template_id: $tid"); + } + else { + my $value = $1; + $value = '' if ( $value =~ /^$delimiter$/ ); + if ($value =~ /^$RE{delimited}{-delim=>qq{\'\"}}$/) { + substr($value,0,1) = ""; + substr($value,-1,1) = ""; + } + my $field = $fields[$i]; + next unless $field; + $field =~ s/^\s//; + $field =~ s/\s$//; + if ( $field =~ /Body/i + || $field =~ /Data/i + || $field =~ /Message/i ) + { + $field = 'Content'; + } + if ( $field =~ /Summary/i ) { + $field = 'Subject'; + } + if ( $field =~ /Queue/i ) { + $queue = 1; + if ( !$value && $args{'Queue'} ) { + $value = $args{'Queue'}; + } + } + if ( $field =~ /Requestor/i ) { + $requestor = 1; + if ( !$value && $args{'Requestor'} ) { + $value = $args{'Requestor'}; } + } + $self->{'templates'}->{$template_id} .= $field . ": "; + $self->{'templates'}->{$template_id} .= $value || ""; + $self->{'templates'}->{$template_id} .= "\n"; + $self->{'templates'}->{$template_id} .= "ENDOFCONTENT\n" + if $field =~ /content/i; } + $i++; } - } + if ( !$queue && $args{'Queue'} ) { + $self->{'templates'}->{$template_id} .= "Queue: $args{'Queue'}\n"; + } + if ( !$requestor && $args{'Requestor'} ) { + $self->{'templates'}->{$template_id} .= + "Requestor: $args{'Requestor'}\n"; + } + } + } +} - foreach my $date qw(due starts started resolved) { - my $dateobj = RT::Date->new($RT::SystemUser); - next unless $args{$date}; - if ($args{$date} =~ /^\d+$/) { - $dateobj->Set(Format => 'unix', Value => $args{$date}); - } else { - $dateobj->Set(Format => 'unknown', Value => $args{$date}); - } - $args{$date} = $dateobj->ISO; - } - my $mimeobj = MIME::Entity->new(); - $mimeobj->build(Type => $args{'contenttype'}, - Data => $args{'content'}); - # Now we have a %args to work with. - # Make sure we have at least the minimum set of - # reasonable data and do our thang - $T::Tickets{$template_id} ||= RT::Ticket->new($RT::SystemUser); - - # Deferred processing - push @links, ( - $T::Tickets{$template_id}, { - DependsOn => $args{'dependson'}, - DependedOnBy => $args{'dependedonby'}, - RefersTo => $args{'refersto'}, - ReferredToBy => $args{'referredtoby'}, - Members => $args{'members'}, - MemberOf => $args{'memberof'}, - } - ); - - push @postponed, ( - # Status is postponed so we don't violate dependencies - $T::Tickets{$template_id}, { - Status => $args{'status'}, - } - ); - - $args{'requestor'} ||= $self->TicketObj->Requestors->MemberEmailAddresses; - - $args{'type'} ||= 'ticket'; - - my %ticketargs = ( Queue => $args{'queue'}, - Subject=> $args{'subject'}, - Status => 'new', - Due => $args{'due'}, - Starts => $args{'starts'}, - Started => $args{'started'}, - Resolved => $args{'resolved'}, - Owner => $args{'owner'}, - Requestor => $args{'requestor'}, - Cc => $args{'cc'}, - AdminCc=> $args{'admincc'}, - TimeWorked =>$args{'timeworked'}, - TimeEstimated =>$args{'timeestimated'}, - TimeLeft =>$args{'timeleft'}, - InitialPriority => $args{'initialpriority'}, - FinalPriority => $args{'finalpriority'}, - Type => $args{'type'}, - MIMEObj => $mimeobj); - - - foreach my $key (keys(%args)) { - $key =~ /^customfield(\d+)$/ or next; - $ticketargs{ "CustomField-" . $1 } = $args{$key}; - } +sub ParseLines { + my $self = shift; + my $template_id = shift; + my $links = shift; + my $postponed = shift; - my ($id, $transid, $msg) = $T::Tickets{$template_id}->Create(%ticketargs); - if (!$id) { - $RT::Logger->error( - "Couldn't create related ticket $template_id for ". - $self->TicketObj->Id." ".$msg - ); - next; - } - $RT::Logger->debug("Assigned $template_id with $id"); - $T::Tickets{$template_id}->SetOriginObj($self->TicketObj) - if $T::Tickets{$template_id}->can('SetOriginObj'); + my $content = $self->{'templates'}->{$template_id}; + + if ( $self->{'UsePerlTextTemplate'} ) { + + $RT::Logger->debug( + "Workflow: evaluating\n$self->{templates}{$template_id}"); + + my $template = Text::Template->new( + TYPE => 'STRING', + SOURCE => $content + ); + + my $err; + $content = $template->fill_in( + PACKAGE => 'T', + BROKEN => sub { + $err = {@_}->{error}; + } + ); + + $RT::Logger->debug("Workflow: yielding\n$content"); + + if ($err) { + $RT::Logger->error( "Ticket creation failed: " . $err ); + while ( my ( $k, $v ) = each %T::X ) { + $RT::Logger->debug( + "Eliminating $template_id from ${k}'s parents."); + delete $v->{$template_id}; + } + next; + } } + + my $TicketObj ||= RT::Ticket->new($self->CurrentUser); + + my %args; + my @lines = ( split( /\n/, $content ) ); + while ( defined( my $line = shift @lines ) ) { + if ( $line =~ /^(.*?):(?:\s+)(.*?)(?:\s*)$/ ) { + my $value = $2; + my $tag = lc($1); + $tag =~ s/-//g; + + if ( ref( $args{$tag} ) ) + { #If it's an array, we want to push the value + push @{ $args{$tag} }, $value; + } + elsif ( defined( $args{$tag} ) ) + { #if we're about to get a second value, make it an array + $args{$tag} = [ $args{$tag}, $value ]; + } + else { #if there's nothing there, just set the value + $args{$tag} = $value; + } - # postprocessing: add links + if ( $tag eq 'content' ) { #just build up the content + # convert it to an array + $args{$tag} = defined($value) ? [ $value . "\n" ] : []; + while ( defined( my $l = shift @lines ) ) { + last if ( $l =~ /^ENDOFCONTENT\s*$/ ); + push @{ $args{'content'} }, $l . "\n"; + } + } + else { - while (my $ticket = shift(@links)) { - $RT::Logger->debug("Handling links for " . $ticket->Id); - my %args = %{shift(@links)}; - - foreach my $type ( keys %LINKTYPEMAP ) { - next unless (defined $args{$type}); - foreach my $link ( - ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) - { - if (!exists $T::Tickets{$link}) { - $RT::Logger->debug("Skipping $type link for $link (non-existent)"); - next; - } - $RT::Logger->debug("Building $type link for $link: " . $T::Tickets{$link}->Id); - $link = $T::Tickets{$link}->Id; - - my ( $wval, $wmsg ) = $ticket->AddLink( - Type => $LINKTYPEMAP{$type}->{'Type'}, - $LINKTYPEMAP{$type}->{'Mode'} => $link, - Silent => 1 - ); - - $RT::Logger->warning("AddLink thru $link failed: $wmsg") unless $wval; - # push @non_fatal_errors, $wmsg unless ($wval); - } + # if it's not content, strip leading and trailing spaces + if ( $args{$tag} ) { + $args{$tag} =~ s/^\s+//g; + $args{$tag} =~ s/\s+$//g; + } + } + } + } - } + foreach my $date qw(due starts started resolved) { + my $dateobj = RT::Date->new($self->CurrentUser); + next unless $args{$date}; + if ( $args{$date} =~ /^\d+$/ ) { + $dateobj->Set( Format => 'unix', Value => $args{$date} ); + } + else { + $dateobj->Set( Format => 'unknown', Value => $args{$date} ); + } + $args{$date} = $dateobj->ISO; } - # postponed actions -- Status only, currently - while (my $ticket = shift(@postponed)) { - $RT::Logger->debug("Handling postponed actions for $ticket"); - my %args = %{shift(@postponed)}; + $args{'requestor'} ||= $self->TicketObj->Requestors->MemberEmailAddresses + if $self->TicketObj; + + $args{'type'} ||= 'ticket'; + + my %ticketargs = ( + Queue => $args{'queue'}, + Subject => $args{'subject'}, + Status => 'new', + Due => $args{'due'}, + Starts => $args{'starts'}, + Started => $args{'started'}, + Resolved => $args{'resolved'}, + Owner => $args{'owner'}, + Requestor => $args{'requestor'}, + Cc => $args{'cc'}, + AdminCc => $args{'admincc'}, + TimeWorked => $args{'timeworked'}, + TimeEstimated => $args{'timeestimated'}, + TimeLeft => $args{'timeleft'}, + InitialPriority => $args{'initialpriority'} || 0, + FinalPriority => $args{'finalpriority'} || 0, + Type => $args{'type'}, + ); - $ticket->SetStatus($args{Status}) if defined $args{Status}; + if ($args{content}) { + my $mimeobj = MIME::Entity->new(); + $mimeobj->build( + Type => $args{'contenttype'}, + Data => $args{'content'} + ); + $ticketargs{MIMEObj} = $mimeobj; + $ticketargs{UpdateType} = $args{'updatetype'} if $args{'updatetype'}; } - return(1); + foreach my $key ( keys(%args) ) { + $key =~ /^customfield(\d+)$/ or next; + $ticketargs{ "CustomField-" . $1 } = $args{$key}; + } + + $self->GetDeferred( \%args, $template_id, $links, $postponed ); + + return $TicketObj, \%ticketargs; } -# }}} -# {{{ sub Prepare - -sub Prepare { - my $self = shift; - - unless ($self->TemplateObj) { - $RT::Logger->warning("No template object handed to $self\n"); - } - - unless ($self->TransactionObj) { - $RT::Logger->warning("No transaction object handed to $self\n"); - - } - - unless ($self->TicketObj) { - $RT::Logger->warning("No ticket object handed to $self\n"); - - } - +sub GetDeferred { + my $self = shift; + my $args = shift; + my $id = shift; + my $links = shift; + my $postponed = shift; + + # Deferred processing + push @$links, + ( + $id, + { + DependsOn => $args->{'dependson'}, + DependedOnBy => $args->{'dependedonby'}, + RefersTo => $args->{'refersto'}, + ReferredToBy => $args->{'referredtoby'}, + Children => $args->{'children'}, + Parents => $args->{'parents'}, + } + ); + + push @$postponed, ( + + # Status is postponed so we don't violate dependencies + $id, { Status => $args->{'status'}, } + ); +} - +sub GetUpdateTemplate { + my $self = shift; + my $t = shift; + + my $string; + $string .= "Queue: " . $t->QueueObj->Name . "\n"; + $string .= "Subject: " . $t->Subject . "\n"; + $string .= "Status: " . $t->Status . "\n"; + $string .= "UpdateType: response\n"; + $string .= "Content: \n"; + $string .= "ENDOFCONTENT\n"; + $string .= "Due: " . $t->DueObj->AsString . "\n"; + $string .= "Starts: " . $t->StartsObj->AsString . "\n"; + $string .= "Started: " . $t->StartedObj->AsString . "\n"; + $string .= "Resolved: " . $t->ResolvedObj->AsString . "\n"; + $string .= "Owner: " . $t->OwnerObj->Name . "\n"; + $string .= "Requestor: " . $t->RequestorAddresses . "\n"; + $string .= "Cc: " . $t->CcAddresses . "\n"; + $string .= "AdminCc: " . $t->AdminCcAddresses . "\n"; + $string .= "TimeWorked: " . $t->TimeWorked . "\n"; + $string .= "TimeEstimated: " . $t->TimeEstimated . "\n"; + $string .= "TimeLeft: " . $t->TimeLeft . "\n"; + $string .= "InitialPriority: " . $t->Priority . "\n"; + $string .= "FinalPriority: " . $t->FinalPriority . "\n"; + + foreach my $type ( sort keys %LINKTYPEMAP ) { + + # don't display duplicates + if ( $type eq "HasMember" + || $type eq "Members" + || $type eq "MemberOf" ) + { + next; + } + $string .= "$type: "; + + my $mode = $LINKTYPEMAP{$type}->{Mode}; + my $method = $LINKTYPEMAP{$type}->{Type}; + + my $links; + while ( my $link = $t->$method->Next ) { + $links .= ", " if $links; + + my $object = $mode . "Obj"; + my $member = $link->$object; + $links .= $member->Id if $member; + } + $string .= $links; + $string .= "\n"; + } -my $template_id; -foreach my $line (split(/\n/,$self->TemplateObj->Content)) { - if ($line =~ /^===Create-Ticket: (.*)$/) { - $template_id = $1; - push @{$self->{'template_order'}},$template_id; - } else { - $self->{'templates'}->{$template_id} .= $line."\n"; - } - - + return $string; } - - return 1; - + +sub GetBaseTemplate { + my $self = shift; + my $t = shift; + + my $string; + $string .= "Queue: " . $t->Queue . "\n"; + $string .= "Subject: " . $t->Subject . "\n"; + $string .= "Status: " . $t->Status . "\n"; + $string .= "Due: " . $t->DueObj->Unix . "\n"; + $string .= "Starts: " . $t->StartsObj->Unix . "\n"; + $string .= "Started: " . $t->StartedObj->Unix . "\n"; + $string .= "Resolved: " . $t->ResolvedObj->Unix . "\n"; + $string .= "Owner: " . $t->Owner . "\n"; + $string .= "Requestor: " . $t->RequestorAddresses . "\n"; + $string .= "Cc: " . $t->CcAddresses . "\n"; + $string .= "AdminCc: " . $t->AdminCcAddresses . "\n"; + $string .= "TimeWorked: " . $t->TimeWorked . "\n"; + $string .= "TimeEstimated: " . $t->TimeEstimated . "\n"; + $string .= "TimeLeft: " . $t->TimeLeft . "\n"; + $string .= "InitialPriority: " . $t->Priority . "\n"; + $string .= "FinalPriority: " . $t->FinalPriority . "\n"; + + return $string; } -# }}} +sub GetCreateTemplate { + my $self = shift; -# }}} + my $string; + + $string .= "Queue: General\n"; + $string .= "Subject: \n"; + $string .= "Status: new\n"; + $string .= "Content: \n"; + $string .= "ENDOFCONTENT\n"; + $string .= "Due: \n"; + $string .= "Starts: \n"; + $string .= "Started: \n"; + $string .= "Resolved: \n"; + $string .= "Owner: \n"; + $string .= "Requestor: \n"; + $string .= "Cc: \n"; + $string .= "AdminCc:\n"; + $string .= "TimeWorked: \n"; + $string .= "TimeEstimated: \n"; + $string .= "TimeLeft: \n"; + $string .= "InitialPriority: \n"; + $string .= "FinalPriority: \n"; + + foreach my $type ( keys %LINKTYPEMAP ) { + + # don't display duplicates + if ( $type eq "HasMember" + || $type eq 'Members' + || $type eq 'MemberOf' ) + { + next; + } + $string .= "$type: \n"; + } + return $string; +} + +sub UpdateWatchers { + my $self = shift; + my $ticket = shift; + my $args = shift; + + my @results; + + foreach my $type qw(Requestor Cc AdminCc) { + my $method = $type . 'Addresses'; + my $oldaddr = $ticket->$method; + + + # Skip unless we have a defined field + next unless defined $args->{$type}; + my $newaddr = $args->{$type}; + + my @old = split( ', ', $oldaddr ); + my @new = split( ', ', $newaddr ); + my %oldhash = map { $_ => 1 } @old; + my %newhash = map { $_ => 1 } @new; + + my @add = grep( !defined $oldhash{$_}, @new ); + my @delete = grep( !defined $newhash{$_}, @old ); + + foreach (@add) { + my ( $val, $msg ) = $ticket->AddWatcher( + Type => $type, + Email => $_ + ); + + push @results, + $ticket->loc( "Ticket [_1]", $ticket->Id ) . ': ' . $msg; + } + + foreach (@delete) { + my ( $val, $msg ) = $ticket->DeleteWatcher( + Type => $type, + Email => $_ + ); + push @results, + $ticket->loc( "Ticket [_1]", $ticket->Id ) . ': ' . $msg; + } + } + return @results; +} + +sub PostProcess { + my $self = shift; + my $links = shift; + my $postponed = shift; + + # postprocessing: add links + + while ( my $template_id = shift(@$links) ) { + my $ticket = $T::Tickets{$template_id}; + $RT::Logger->debug( "Handling links for " . $ticket->Id ); + my %args = %{ shift(@$links) }; + + foreach my $type ( keys %LINKTYPEMAP ) { + next unless ( defined $args{$type} ); + foreach my $link ( + ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) + { + next unless $link; + + if ($link =~ /^TOP$/i) { + $RT::Logger->debug( "Building $type link for $link: " . $T::Tickets{TOP}->Id ); + $link = $T::Tickets{TOP}->Id; + + } + elsif ( $link !~ m/^\d+$/ ) { + my $key = "create-$link"; + if ( !exists $T::Tickets{$key} ) { + $RT::Logger->debug( "Skipping $type link for $key (non-existent)"); + next; + } + $RT::Logger->debug( "Building $type link for $link: " . $T::Tickets{$key}->Id ); + $link = $T::Tickets{$key}->Id; + } + else { + $RT::Logger->debug("Building $type link for $link"); + } + + my ( $wval, $wmsg ) = $ticket->AddLink( + Type => $LINKTYPEMAP{$type}->{'Type'}, + $LINKTYPEMAP{$type}->{'Mode'} => $link, + Silent => 1 + ); + + $RT::Logger->warning("AddLink thru $link failed: $wmsg") + unless $wval; + + # push @non_fatal_errors, $wmsg unless ($wval); + } + + } + } + + # postponed actions -- Status only, currently + while ( my $template_id = shift(@$postponed) ) { + my $ticket = $T::Tickets{$template_id}; + $RT::Logger->debug("Handling postponed actions for ".$ticket->id); + my %args = %{ shift(@$postponed) }; + $ticket->SetStatus( $args{Status} ) if defined $args{Status}; + } + +} eval "require RT::Action::CreateTickets_Vendor"; -die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/CreateTickets_Vendor.pm}); +die $@ if ( $@ && $@ !~ qr{^Can't locate RT/Action/CreateTickets_Vendor.pm} ); eval "require RT::Action::CreateTickets_Local"; -die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/CreateTickets_Local.pm}); +die $@ if ( $@ && $@ !~ qr{^Can't locate RT/Action/CreateTickets_Local.pm} ); 1; diff --git a/rt/lib/RT/Action/EscalatePriority.pm b/rt/lib/RT/Action/EscalatePriority.pm index e24e0541a..ace72dd1b 100644 --- a/rt/lib/RT/Action/EscalatePriority.pm +++ b/rt/lib/RT/Action/EscalatePriority.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Action::EscalatePriority diff --git a/rt/lib/RT/Action/Generic.pm b/rt/lib/RT/Action/Generic.pm index 007d299c7..5e80f40d7 100755 --- a/rt/lib/RT/Action/Generic.pm +++ b/rt/lib/RT/Action/Generic.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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.) # -# END LICENSE BLOCK +# 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 =head1 NAME RT::Action::Generic - a generic baseclass for RT Actions @@ -44,6 +66,9 @@ ok (require RT::Action::Generic); package RT::Action::Generic; use strict; +use Scalar::Util; + +use base qw/RT::Base/; # {{{ sub new sub new { @@ -56,13 +81,6 @@ sub new { } # }}} -# {{{ sub new -sub loc { - my $self = shift; - return $self->{'ScripObj'}->loc(@_); -} -# }}} - # {{{ sub _Init sub _Init { my $self = shift; @@ -72,6 +90,7 @@ sub _Init { TemplateObj => undef, Argument => undef, Type => undef, + CurrentUser => undef, @_ ); @@ -81,6 +100,16 @@ sub _Init { $self->{'TransactionObj'} = $args{'TransactionObj'}; $self->{'TemplateObj'} = $args{'TemplateObj'}; $self->{'Type'} = $args{'Type'}; + $self->CurrentUser( $args{'CurrentUser'}); + Scalar::Util::weaken($self->{'ScripObj'}); + Scalar::Util::weaken($self->{'TicketObj'}); + Scalar::Util::weaken($self->{'TemplateObj'}); + Scalar::Util::weaken($self->{'TransactionObj'}); + + + + + } # }}} diff --git a/rt/lib/RT/Action/Notify.pm b/rt/lib/RT/Action/Notify.pm index 1e4e4c073..4131a8c68 100755 --- a/rt/lib/RT/Action/Notify.pm +++ b/rt/lib/RT/Action/Notify.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,20 +20,51 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK +# package RT::Action::Notify; require RT::Action::SendEmail; - +use Mail::Address; use strict; use vars qw/@ISA/; @ISA = qw(RT::Action::SendEmail); + +=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 @@ -47,10 +84,18 @@ sub SetRecipients { my ( @To, @PseudoTo, @Cc, @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 =~ /\bOtherRecipients\b/ ) { + if ( $self->TransactionObj->Attachments->First ) { + my @cc_addresses = Mail::Address->parse($self->TransactionObj->Attachments->First->GetHeader('RT-Send-Cc')); + foreach my $addr (@cc_addresses) { + push @Cc, $addr->address; + } + my @bcc_addresses = Mail::Address->parse($self->TransactionObj->Attachments->First->GetHeader('RT-Send-Bcc')); + + foreach my $addr (@bcc_addresses) { + push @Bcc, $addr->address; + } + } } @@ -118,7 +163,7 @@ sub SetRecipients { @{ $self->{'Bcc'} } = grep ( !/^$creator$/, @Bcc ); } @{ $self->{'PseudoTo'} } = @PseudoTo; - return (1); + } diff --git a/rt/lib/RT/Action/NotifyAsComment.pm b/rt/lib/RT/Action/NotifyAsComment.pm index 210e4ab15..475e3555f 100755 --- a/rt/lib/RT/Action/NotifyAsComment.pm +++ b/rt/lib/RT/Action/NotifyAsComment.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::Action::NotifyAsComment; require RT::Action::Notify; diff --git a/rt/lib/RT/Action/RecordComment.pm b/rt/lib/RT/Action/RecordComment.pm new file mode 100644 index 000000000..b548a26eb --- /dev/null +++ b/rt/lib/RT/Action/RecordComment.pm @@ -0,0 +1,142 @@ +# {{{ 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 +# 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. +# +# 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::RecordComment; +require RT::Action::Generic; +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Action::Generic); + +=head1 NAME + +RT::Action::RecordComment - An Action which can be used from an +external tool, or in any situation where a ticket transaction has not +been started, to make a comment on the ticket. + +=head1 SYNOPSIS + +my $action_obj = RT::Action::RecordComment->new('TicketObj' => $ticket_obj, + 'TemplateObj' => $template_obj, + ); +my $result = $action_obj->Prepare(); +$action_obj->Commit() if $result; + +=head1 METHODS + +=head2 Prepare + +Check for the existence of a Transaction. If a Transaction already +exists, and is of type "Comment" or "Correspond", abort because that +will give us a loop. + +=cut + + +sub Prepare { + my $self = shift; + if (defined $self->{'TransactionObj'} && + $self->{'TransactionObj'}->Type =~ /^(Comment|Correspond)$/) { + return undef; + } + return 1; +} + +=head2 Commit + +Create a Transaction by calling the ticket's Comment method on our +parsed Template, which may have an RT-Send-Cc or RT-Send-Bcc header. +The Transaction will be of type Comment. This Transaction can then be +used by the scrips that actually send the email. + +=cut + +sub Commit { + my $self = shift; + $self->CreateTransaction(); +} + +sub CreateTransaction { + my $self = shift; + + my ($result, $msg) = $self->{'TemplateObj'}->Parse( + TicketObj => $self->{'TicketObj'}); + return undef unless $result; + + my ($trans, $desc, $transaction) = $self->{'TicketObj'}->Comment( + MIMEObj => $self->TemplateObj->MIMEObj); + $self->{'TransactionObj'} = $transaction; +} + + +eval "require RT::Action::RecordComment_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/RecordComment_Vendor.pm}); +eval "require RT::Action::RecordComment_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/RecordComment_Local.pm}); + +1; diff --git a/rt/lib/RT/Action/RecordCorrespondence.pm b/rt/lib/RT/Action/RecordCorrespondence.pm new file mode 100644 index 000000000..c6770c574 --- /dev/null +++ b/rt/lib/RT/Action/RecordCorrespondence.pm @@ -0,0 +1,143 @@ +# {{{ 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 +# 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. +# +# 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::RecordCorrespondence; +require RT::Action::Generic; +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Action::Generic); + +=head1 NAME + +RT::Action::RecordCorrespondence - An Action which can be used from an +external tool, or in any situation where a ticket transaction has not +been started, to make a comment on the ticket. + +=head1 SYNOPSIS + +my $action_obj = RT::Action::RecordCorrespondence->new( + 'TicketObj' => $ticket_obj, + 'TemplateObj' => $template_obj, + ); +my $result = $action_obj->Prepare(); +$action_obj->Commit() if $result; + +=head1 METHODS + +=head2 Prepare + +Check for the existence of a Transaction. If a Transaction already +exists, and is of type "Comment" or "Correspond", abort because that +will give us a loop. + +=cut + + +sub Prepare { + my $self = shift; + if (defined $self->{'TransactionObj'} && + $self->{'TransactionObj'}->Type =~ /^(Comment|Correspond)$/) { + return undef; + } + return 1; +} + +=head2 Commit + +Create a Transaction by calling the ticket's Correspond method on our +parsed Template, which may have an RT-Send-Cc or RT-Send-Bcc header. +The Transaction will be of type Correspond. This Transaction can then +be used by the scrips that actually send the email. + +=cut + +sub Commit { + my $self = shift; + $self->CreateTransaction(); +} + +sub CreateTransaction { + my $self = shift; + + my ($result, $msg) = $self->{'TemplateObj'}->Parse( + TicketObj => $self->{'TicketObj'}); + return undef unless $result; + + my ($trans, $desc, $transaction) = $self->{'TicketObj'}->Correspond( + MIMEObj => $self->TemplateObj->MIMEObj); + $self->{'TransactionObj'} = $transaction; +} + + +eval "require RT::Action::RecordCorrespondence_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/RecordCorrespondence_Vendor.pm}); +eval "require RT::Action::RecordCorrespondence_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Action/RecordCorrespondence_Local.pm}); + +1; diff --git a/rt/lib/RT/Action/ResolveMembers.pm b/rt/lib/RT/Action/ResolveMembers.pm index 02ff3a58c..4d751eb6d 100644 --- a/rt/lib/RT/Action/ResolveMembers.pm +++ b/rt/lib/RT/Action/ResolveMembers.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK # This Action will resolve all members of a resolved group ticket package RT::Action::ResolveMembers; diff --git a/rt/lib/RT/Action/SendEmail.pm b/rt/lib/RT/Action/SendEmail.pm index 645c5d99d..a85c169b8 100755 --- a/rt/lib/RT/Action/SendEmail.pm +++ b/rt/lib/RT/Action/SendEmail.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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.) # -# END LICENSE BLOCK +# 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 # Portions Copyright 2000 Tobias Brox <tobix@cpan.org> package RT::Action::SendEmail; @@ -33,6 +55,7 @@ use vars qw/@ISA/; use MIME::Words qw(encode_mimeword); use RT::EmailParser; +use Mail::Address; =head1 NAME @@ -51,13 +74,6 @@ RT::Action::AutoReply is a good example subclass. Basically, you create another module RT::Action::YourAction which ISA RT::Action::SendEmail. -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). - - =begin testing ok (require RT::Action::SendEmail); @@ -77,165 +93,127 @@ perl(1). # {{{ Scrip methods (_Init, Commit, Prepare, IsApplicable) -# {{{ sub _Init -# We use _Init from RT::Action -# }}} # {{{ sub Commit -#Do what we need to do and send it out. + sub Commit { my $self = shift; - 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 + return($self->SendMessage($self->TemplateObj->MIMEObj)); +} - # 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 +# }}} - if ( defined $self->TransactionObj->Attachments->First() ) { +# {{{ sub Prepare - my $squelch = $self->TransactionObj->Attachments->First->GetHeader( 'RT-Squelch-Replies-To'); +sub Prepare { + my $self = shift; - if ($squelch) { - my @blacklist = split ( /,/, $squelch ); - - # Cycle through the people we're sending to and pull out anyone on the - # system blacklist - - 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'} } ); - } - } + my ( $result, $message ) = $self->TemplateObj->Parse( + Argument => $self->Argument, + TicketObj => $self->TicketObj, + TransactionObj => $self->TransactionObj + ); + if ( !$result ) { + return (undef); } + my $MIMEObj = $self->TemplateObj->MIMEObj; + + # Header + $self->SetRTSpecialHeaders(); + + $self->RemoveInappropriateRecipients(); + # 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. - $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->{'Bcc'} && @{ $self->{'Bcc'} } ); + # 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 ( ! $MIMEObj->head->get('To') && $self->{'To'} && @{ $self->{'To'} } ); + $self->SetHeader( 'Cc', join ( ', ', @{ $self->{'Cc'} } ) ) + if ( !$MIMEObj->head->get('Cc') && $self->{'Cc'} && @{ $self->{'Cc'} } ); + $self->SetHeader( 'Bcc', join ( ', ', @{ $self->{'Bcc'} } ) ) + if ( !$MIMEObj->head->get('Bcc') && $self->{'Bcc'} && @{ $self->{'Bcc'} } ); + # 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'} } ) + and ( !$MIMEObj->head->get('To') ) ) and ( $MIMEObj->head->get('Cc') or $MIMEObj->head->get('Bcc')); - $self->SetHeader('MIME-Version', '1.0'); + # We should never have to set the MIME-Version header + $self->SetHeader( 'MIME-Version', '1.0' ); # try to convert message body from utf-8 to $RT::EmailOutputEncoding $self->SetHeader( 'Content-Type', 'text/plain; charset="utf-8"' ); - RT::I18N::SetMIMEEntityToEncoding( $MIMEObj, $RT::EmailOutputEncoding, 'mime_words_ok' ); + RT::I18N::SetMIMEEntityToEncoding( $MIMEObj, $RT::EmailOutputEncoding, + 'mime_words_ok' ); $self->SetHeader( 'Content-Type', 'text/plain; charset="' . $RT::EmailOutputEncoding . '"' ); - # Build up a MIME::Entity that looks like the original message. + $self->AddAttachments() if ( $MIMEObj->head->get('RT-Attach-Message') ); - my $do_attach = $self->TemplateObj->MIMEObj->head->get('RT-Attach-Message'); - - if ($do_attach) { - $self->TemplateObj->MIMEObj->head->delete('RT-Attach-Message'); - - my $attachments = RT::Attachments->new($RT::SystemUser); - $attachments->Limit( FIELD => 'TransactionId', - VALUE => $self->TransactionObj->Id ); - $attachments->OrderBy('id'); + return $result; - my $transaction_content_obj = $self->TransactionObj->ContentObj; +} - # attach any of this transaction's attachments - while ( my $attach = $attachments->Next ) { +# }}} - # Don't attach anything blank - next unless ( $attach->ContentLength ); +# }}} - # 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'); - } - } +=head2 To - my $retval = $self->SendMessage($MIMEObj); +Returns an array of Mail::Address objects containing all the To: recipients for this notification +=cut - return ($retval); +sub To { + my $self = shift; + return ($self->_AddressesFromHeader('To')); } -# }}} +=head2 Cc -# {{{ sub Prepare +Returns an array of Mail::Address objects containing all the Cc: recipients for this notification -sub Prepare { - my $self = shift; +=cut - # This actually populates the MIME::Entity fields in the Template Object +sub Cc { + my $self = shift; + return ($self->_AddressesFromHeader('Cc')); +} - unless ( $self->TemplateObj ) { - $RT::Logger->warning("No template object handed to $self\n"); - } +=head2 Bcc - unless ( $self->TransactionObj ) { - $RT::Logger->warning("No transaction object handed to $self\n"); +Returns an array of Mail::Address objects containing all the Bcc: recipients for this notification - } +=cut - unless ( $self->TicketObj ) { - $RT::Logger->warning("No ticket object handed to $self\n"); - } +sub Bcc { + my $self = shift; + return ($self->_AddressesFromHeader('Bcc')); - 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 ); - } - } +} - return $result; +sub _AddressesFromHeader { + my $self = shift; + my $field = shift; + my $header = $self->TemplateObj->MIMEObj->head->get($field); + my @addresses = Mail::Address->parse($header); + return (@addresses); } -# }}} - -# }}} # {{{ SendMessage + =head2 SendMessage MIMEObj sends the message using RT's preferred API. @@ -244,61 +222,72 @@ TODO: Break this out to a separate module =cut sub SendMessage { - my $self = shift; + my $self = shift; my $MIMEObj = shift; 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 ); #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"); + 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); } - # 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. - $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" ) || die $!; print MAIL $MIMEObj->as_string; close(MAIL); - }; - if ($@) { - $RT::Logger->crit($msgid. "Could not send mail. -".$@ ); + }; + if ($@) { + $RT::Logger->crit( $msgid . "Could not send mail. -" . $@ ); } } else { - my @mailer_args = ($RT::MailCommand); - local $ENV{MAILADDRESS}; + my @mailer_args = ($RT::MailCommand); + + local $ENV{MAILADDRESS}; if ( $RT::MailCommand eq 'sendmail' ) { - push @mailer_args, split(/\s+/, $RT::SendmailArguments); + push @mailer_args, split(/\s+/, $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); + $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; } - else { - push @mailer_args, $RT::MailParams; - } - unless ( $MIMEObj->send( @mailer_args ) ) { - $RT::Logger->crit($msgid. "Could not send mail." ); + unless ( $MIMEObj->send(@mailer_args) ) { + $RT::Logger->crit( $msgid . "Could not send mail." ); return (0); } } - - my $success = ($msgid. " sent To: ".$MIMEObj->head->get('To') . " Cc: ".$MIMEObj->head->get('Cc') . " Bcc: ".$MIMEObj->head->get('Bcc')); + my $success = + ( $msgid + . " sent To: " + . $MIMEObj->head->get('To') . " Cc: " + . $MIMEObj->head->get('Cc') . " Bcc: " + . $MIMEObj->head->get('Bcc') ); $success =~ s/\n//gi; + + $self->RecordOutgoingMailTransaction($MIMEObj) if ($RT::RecordOutgoingEmail); + $RT::Logger->info($success); return (1); @@ -306,51 +295,139 @@ sub SendMessage { # }}} -# {{{ Deal with message headers (Set* subs, designed for easy overriding) +# {{{ AddAttachments -# {{{ sub SetRTSpecialHeaders +=head2 AddAttachments -=head2 SetRTSpecialHeaders +Takes any attachments to this transaction and attaches them to the message +we're building. + +=cut -This routine adds all the random headers that RT wants in a mail message -that don't matter much to anybody else. + +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 + ); + $attachments->OrderBy('id'); + + my $transaction_content_obj = $self->TransactionObj->ContentObj; + + # attach any of this transaction's attachments + while ( my $attach = $attachments->Next ) { + + # Don't attach anything blank + next unless ( $attach->ContentLength ); + +# 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 ), + 'RT-Attachment:' => $self->TicketObj->Id."/".$self->TransactionObj->Id."/".$attach->id, + Encoding => '-SUGGEST' + ); + } + +} + +# }}} + +# {{{ RecordOutgoingMailTransaction + +=head2 RecordOutgoingMailTransaction MIMEObj + +Record a transaction in RT with this outgoing message for future record-keeping purposes =cut -sub SetRTSpecialHeaders { + + +sub RecordOutgoingMailTransaction { my $self = shift; + my $MIMEObj = shift; + + + 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; + } + } + $MIMEObj->parts(\@keep); + foreach my $attachment (@attachments) { + $MIMEObj->head->add('RT-Attachment', $attachment); + } - $self->SetReferences(); + RT::I18N::SetMIMEEntityToEncoding( $MIMEObj, 'utf-8', 'mime_words_ok' ); - $self->SetMessageID(); + my $transaction = RT::Transaction->new($self->TransactionObj->CurrentUser); - $self->SetPrecedence(); + # XXX: TODO -> Record attachments as references to things in the attachments table, maybe. - $self->SetHeader( 'X-RT-Loop-Prevention', $RT::rtname ); - $self->SetHeader( 'RT-Ticket', - $RT::rtname . " #" . $self->TicketObj->id() ); - $self->SetHeader( 'Managed-by', - "RT $RT::VERSION (http://www.bestpractical.com/rt/)" ); + my $type; + if ($self->TransactionObj->Type eq 'Comment') { + $type = 'CommentEmailRecord'; + } else { + $type = 'EmailRecord'; + } + + + + my ( $id, $msg ) = $transaction->Create( + Ticket => $self->TicketObj->Id, + Type => $type, + Data => $MIMEObj->head->get('Message-Id'), + MIMEObj => $MIMEObj, + ActivateScrips => 0 + ); - $self->SetHeader( 'RT-Originator', - $self->TransactionObj->CreatorObj->EmailAddress ); - return (); } -# {{{ sub SetReferences +# }}} +# + +# {{{ sub SetRTSpecialHeaders + +=head2 SetRTSpecialHeaders -=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. +This routine adds all the random headers that RT wants in a mail message +that don't matter much to anybody else. =cut -sub SetReferences { +sub SetRTSpecialHeaders { my $self = shift; + $self->SetSubject(); + $self->SetSubjectToken(); + $self->SetHeaderAsEncoding( 'Subject', $RT::EmailOutputEncoding ) + if ($RT::EmailOutputEncoding); + $self->SetReturnAddress(); + # 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 @@ -358,46 +435,93 @@ sub SetReferences { # References. $self->SetHeader( 'In-Reply-To', - "<rt-" . $self->TicketObj->id() . "\@" . $RT::rtname . ">" ); + "<rt-" . $self->TicketObj->id() . "\@" . $RT::rtname . ">" ); # TODO We should always add References headers for all message-ids # of previous messages related to this ticket. + + $self->SetHeader( 'Message-ID', + "<rt-" + . $RT::VERSION . "-" + . $self->TicketObj->id() . "-" + . $self->TransactionObj->id() . "-" + . $self->ScripObj->Id . "." + . rand(20) . "\@" + . $RT::Organization . ">" ) + unless $self->TemplateObj->MIMEObj->head->get('Message-ID'); + + $self->SetHeader( 'Precedence', "bulk" ) + unless ( $self->TemplateObj->MIMEObj->head->get("Precedence") ); + + $self->SetHeader( 'X-RT-Loop-Prevention', $RT::rtname ); + $self->SetHeader( 'RT-Ticket', + $RT::rtname . " #" . $self->TicketObj->id() ); + $self->SetHeader( 'Managed-by', + "RT $RT::VERSION (http://www.bestpractical.com/rt/)" ); + + $self->SetHeader( 'RT-Originator', + $self->TransactionObj->CreatorObj->EmailAddress ); + } # }}} -# {{{ sub SetMessageID -=head2 SetMessageID +# }}} -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. +# {{{ RemoveInappropriateRecipients + +=head2 RemoveInappropriateRecipients + +Remove addresses that are RT addresses or that are on this transaction's blacklist =cut -sub SetMessageID { +sub RemoveInappropriateRecipients { my $self = shift; - # 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#" + my @blacklist; - $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'); -} + # 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 -# }}} + if ( defined $self->TransactionObj->Attachments->First() ) { + my $squelch = + $self->TransactionObj->Attachments->First->GetHeader( + 'RT-Squelch-Replies-To'); + + if ($squelch) { + @blacklist = split ( /,/, $squelch ); + } + } + +# Let's grab the SquelchMailTo attribue and push those entries into the @blacklist + my @non_recipients = $self->TicketObj->SquelchMailTo; + foreach my $attribute (@non_recipients) { + push @blacklist, $attribute->Content; + } + + # Cycle through the people we're sending to and pull out anyone on the + # system blacklist + 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'} } ); + } +} + +# }}} # {{{ sub SetReturnAddress =head2 SetReturnAddress is_comment => BOOLEAN @@ -409,8 +533,10 @@ Calculate and set From and Reply-To headers based on the is_comment flag. sub SetReturnAddress { my $self = shift; - my %args = ( is_comment => 0, - @_ ); + my %args = ( + is_comment => 0, + @_ + ); # From and Reply-To # $args{is_comment} should be set if the comment address is to be used. @@ -426,21 +552,26 @@ sub SetReturnAddress { } unless ( $self->TemplateObj->MIMEObj->head->get('From') ) { - 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 ); - } + 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') ) { @@ -473,82 +604,6 @@ sub SetHeader { # }}} -# {{{ sub SetRecipients - -=head2 SetRecipients - -Dummy method to be overriden by subclasses which want to set the recipients. - -=cut - -sub SetRecipients { - my $self = shift; - return (); -} - -# }}} - -# {{{ sub SetTo - -=head2 SetTo - -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 ); -} - -# }}} - -# {{{ sub SetCc - -=head2 SetCc - -Takes a string that is the addresses you want to Cc - -=cut - -sub SetCc { - my $self = shift; - my $addresses = shift; - - return $self->SetHeader( 'Cc', $addresses ); -} - -# }}} - -# {{{ sub SetBcc - -=head2 SetBcc - -Takes a string that is the addresses you want to Bcc - -=cut - -sub SetBcc { - my $self = shift; - my $addresses = shift; - - return $self->SetHeader( 'Bcc', $addresses ); -} - -# }}} - -# {{{ sub SetPrecedence - -sub SetPrecedence { - my $self = shift; - - unless ( $self->TemplateObj->MIMEObj->head->get("Precedence") ) { - $self->SetHeader( 'Precedence', "bulk" ); - } -} - -# }}} # {{{ sub SetSubject @@ -564,36 +619,33 @@ sub SetSubject { my $self = shift; my $subject; - 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(); - } - + my $message = $self->TransactionObj->Attachments; + if ( $self->TemplateObj->MIMEObj->head->get('Subject') ) { + return (); + } + 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(); } - $subject =~ s/(\r\n|\n|\s)/ /gi; + } + else { + $subject = $self->TicketObj->Subject(); + } + + $subject =~ s/(\r\n|\n|\s)/ /gi; - chomp $subject; - $self->SetHeader( 'Subject', $subject ); + chomp $subject; + $self->SetHeader( 'Subject', $subject ); - } - return ($subject); } # }}} @@ -621,7 +673,7 @@ sub SetSubjectToken { # }}} -# {{{ +# {{{ SetHeadingAsEncoding =head2 SetHeaderAsEncoding($field_name, $charset_encoding) @@ -652,7 +704,7 @@ sub SetHeaderAsEncoding { } # }}} -# {{{ MIMENcodeString +# {{{ MIMEEncodeString =head2 MIMEEncodeString STRING ENCODING diff --git a/rt/lib/RT/Action/SetPriority.pm b/rt/lib/RT/Action/SetPriority.pm index 515eeb58c..d3272a024 100644 --- a/rt/lib/RT/Action/SetPriority.pm +++ b/rt/lib/RT/Action/SetPriority.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::Action::SetPriority; require RT::Action::Generic; diff --git a/rt/lib/RT/Action/UserDefined.pm b/rt/lib/RT/Action/UserDefined.pm index e2e3d72ce..c298a7c7f 100644 --- a/rt/lib/RT/Action/UserDefined.pm +++ b/rt/lib/RT/Action/UserDefined.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::Action::UserDefined; diff --git a/rt/lib/RT/Attachment.pm b/rt/lib/RT/Attachment.pm index 2ed520162..71aa4d5ea 100755 --- a/rt/lib/RT/Attachment.pm +++ b/rt/lib/RT/Attachment.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -61,7 +83,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -110,7 +132,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -119,14 +141,14 @@ Returns the current value of id. =cut -=item TransactionId +=head2 TransactionId Returns the current value of TransactionId. (In the database, TransactionId is stored as int(11).) -=item SetTransactionId VALUE +=head2 SetTransactionId VALUE Set TransactionId to VALUE. @@ -137,14 +159,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Parent +=head2 Parent Returns the current value of Parent. (In the database, Parent is stored as int(11).) -=item SetParent VALUE +=head2 SetParent VALUE Set Parent to VALUE. @@ -155,14 +177,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item MessageId +=head2 MessageId Returns the current value of MessageId. (In the database, MessageId is stored as varchar(160).) -=item SetMessageId VALUE +=head2 SetMessageId VALUE Set MessageId to VALUE. @@ -173,14 +195,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Subject +=head2 Subject Returns the current value of Subject. (In the database, Subject is stored as varchar(255).) -=item SetSubject VALUE +=head2 SetSubject VALUE Set Subject to VALUE. @@ -191,14 +213,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Filename +=head2 Filename Returns the current value of Filename. (In the database, Filename is stored as varchar(255).) -=item SetFilename VALUE +=head2 SetFilename VALUE Set Filename to VALUE. @@ -209,14 +231,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ContentType +=head2 ContentType Returns the current value of ContentType. (In the database, ContentType is stored as varchar(80).) -=item SetContentType VALUE +=head2 SetContentType VALUE Set ContentType to VALUE. @@ -227,14 +249,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ContentEncoding +=head2 ContentEncoding Returns the current value of ContentEncoding. (In the database, ContentEncoding is stored as varchar(80).) -=item SetContentEncoding VALUE +=head2 SetContentEncoding VALUE Set ContentEncoding to VALUE. @@ -245,14 +267,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Content +=head2 Content Returns the current value of Content. (In the database, Content is stored as longtext.) -=item SetContent VALUE +=head2 SetContent VALUE Set Content to VALUE. @@ -263,14 +285,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Headers +=head2 Headers Returns the current value of Headers. (In the database, Headers is stored as longtext.) -=item SetHeaders VALUE +=head2 SetHeaders VALUE Set Headers to VALUE. @@ -281,7 +303,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -290,7 +312,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -300,7 +322,7 @@ Returns the current value of Created. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/Attachment_Overlay.pm b/rt/lib/RT/Attachment_Overlay.pm index 481dbf0db..8dcf56ea6 100644 --- a/rt/lib/RT/Attachment_Overlay.pm +++ b/rt/lib/RT/Attachment_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 SYNOPSIS use RT::Attachment; @@ -50,18 +72,19 @@ no warnings qw(redefine); use MIME::Base64; use MIME::QuotedPrint; -# {{{ sub _ClassAccessible -sub _ClassAccessible { + +# {{{ sub _OverlayAccessible +sub _OverlayAccessible { { - TransactionId => { 'read'=>1, 'public'=>1, }, - MessageId => { 'read'=>1, }, - Parent => { 'read'=>1, }, - ContentType => { 'read'=>1, }, - Subject => { 'read'=>1, }, - Content => { 'read'=>1, }, - ContentEncoding => { 'read'=>1, }, - Headers => { 'read'=>1, }, - Filename => { 'read'=>1, }, + TransactionId => { 'read'=>1, 'public'=>1, 'write' => 0 }, + MessageId => { 'read'=>1, 'write' => 0 }, + Parent => { 'read'=>1, 'write' => 0 }, + ContentType => { 'read'=>1, 'write' => 0 }, + Subject => { 'read'=>1, 'write' => 0 }, + Content => { 'read'=>1, 'write' => 0 }, + ContentEncoding => { 'read'=>1, 'write' => 0 }, + Headers => { 'read'=>1, 'write' => 0 }, + Filename => { 'read'=>1, 'write' => 0 }, Creator => { 'read'=>1, 'auto'=>1, }, Created => { 'read'=>1, 'auto'=>1, }, }; @@ -83,6 +106,9 @@ sub TransactionObj { $self->{_TransactionObj}=RT::Transaction->new($self->CurrentUser); $self->{_TransactionObj}->Load($self->TransactionId); } + unless ($self->{_TransactionObj}->Id) { + $RT::Logger->crit("Attachment ".$self->id." can't find transaction ".$self->TransactionId." which it is ostensibly part of. That's bad"); + } return $self->{_TransactionObj}; } @@ -160,63 +186,11 @@ sub Create { #If it's not multipart else { - my $ContentEncoding = 'none'; my $Body = $Attachment->bodyhandle->as_string; - #get the max attachment length from RT - my $MaxSize = $RT::MaxAttachmentSize; - - #if the current attachment contains nulls and the - #database doesn't support embedded nulls - - if ( $RT::AlwaysUseBase64 or - ( !$RT::Handle->BinarySafeBLOBs ) && ( $Body =~ /\x00/ ) ) { - - # set a flag telling us to mimencode the attachment - $ContentEncoding = 'base64'; - - #cut the max attchment size by 25% (for mime-encoding overhead. - $RT::Logger->debug("Max size is $MaxSize\n"); - $MaxSize = $MaxSize * 3 / 4; - # Some databases (postgres) can't handle non-utf8 data - } elsif ( !$RT::Handle->BinarySafeBLOBs - && $Attachment->mime_type !~ /text\/plain/gi - && !Encode::is_utf8( $Body, 1 ) ) { - $ContentEncoding = 'quoted-printable'; - } - - #if the attachment is larger than the maximum size - if ( ($MaxSize) and ( $MaxSize < length($Body) ) ) { - - # if we're supposed to truncate large attachments - if ($RT::TruncateLongAttachments) { - - # truncate the attachment to that length. - $Body = substr( $Body, 0, $MaxSize ); - - } - - # elsif we're supposed to drop large attachments on the floor, - elsif ($RT::DropLongAttachments) { - - # drop the attachment on the floor - $RT::Logger->info( "$self: Dropped an attachment of size " . length($Body) . "\n" . "It started: " . substr( $Body, 0, 60 ) . "\n" ); - return (undef); - } - } - # if we need to mimencode the attachment - if ( $ContentEncoding eq 'base64' ) { - - # base64 encode the attachment - Encode::_utf8_off($Body); - $Body = MIME::Base64::encode_base64($Body); - - } elsif ($ContentEncoding eq 'quoted-printable') { - Encode::_utf8_off($Body); - $Body = MIME::QuotedPrint::encode($Body); - } + my ($ContentEncoding, $Body) = $self->_EncodeLOB($Attachment->bodyhandle->as_string, $Attachment->mime_type); my $id = $self->SUPER::Create( TransactionId => $args{'TransactionId'}, @@ -260,7 +234,7 @@ before returning it. sub Content { my $self = shift; - my $decode_utf8 = (($self->ContentType eq 'text/plain') ? 1 : 0); + my $decode_utf8 = (($self->ContentType =~ qr{^text/plain}i) ? 1 : 0); if ( $self->ContentEncoding eq 'none' || ! $self->ContentEncoding ) { return $self->_Value( @@ -436,7 +410,7 @@ sub NiceHeaders { my $hdrs = ""; my @hdrs = split(/\n/,$self->Headers); while (my $str = shift @hdrs) { - next unless $str =~ /^(To|From|RT-Send-Cc|Cc|Date|Subject): /i; + next unless $str =~ /^(To|From|RT-Send-Cc|Cc|Bcc:Date|Subject): /i; $hdrs .= $str . "\n"; $hdrs .= shift( @hdrs ) . "\n" while ($hdrs[0] =~ /^[ \t]+/); } @@ -528,31 +502,32 @@ Returns its value as a string, if the user passes an ACL check =cut -sub _Value { +sub _Value { - my $self = shift; + my $self = shift; my $field = shift; - - + #if the field is public, return it. - if ($self->_Accessible($field, 'public')) { - #$RT::Logger->debug("Skipping ACL check for $field\n"); - return($self->__Value($field, @_)); - + if ( $self->_Accessible( $field, 'public' ) ) { + return ( $self->__Value( $field, @_ ) ); } - + #If it's a comment, we need to be extra special careful - elsif ( (($self->TransactionObj->CurrentUserHasRight('ShowTicketComments')) and - ($self->TransactionObj->Type eq 'Comment') ) or - ($self->TransactionObj->CurrentUserHasRight('ShowTicket'))) { - return($self->__Value($field, @_)); + elsif ( $self->TransactionObj->Type =~ /^Comment/ ) { + if ( $self->TransactionObj->CurrentUserHasRight('ShowTicketComments') ) + { + return ( $self->__Value( $field, @_ ) ); + } } + elsif ( $self->TransactionObj->CurrentUserHasRight('ShowTicket') ) { + return ( $self->__Value( $field, @_ ) ); + } + #if they ain't got rights to see, don't let em else { - return(undef); - } - - + return (undef); + } + } # }}} diff --git a/rt/lib/RT/Attachments.pm b/rt/lib/RT/Attachments.pm index 177cdd094..9ab11f3a6 100755 --- a/rt/lib/RT/Attachments.pm +++ b/rt/lib/RT/Attachments.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::Attachment item diff --git a/rt/lib/RT/Attachments_Overlay.pm b/rt/lib/RT/Attachments_Overlay.pm index ce94c9dfa..084d02d54 100644 --- a/rt/lib/RT/Attachments_Overlay.pm +++ b/rt/lib/RT/Attachments_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Attachments - a collection of RT::Attachment objects @@ -109,6 +131,34 @@ sub NewItem { return($item); } # }}} + +# {{{ sub Next +sub Next { + my $self = shift; + + my $Attachment = $self->SUPER::Next(); + if ((defined($Attachment)) and (ref($Attachment))) { + if ($Attachment->TransactionObj->__Value('Type') =~ /^Comment/ && + $Attachment->TransactionObj->TicketObj->CurrentUserHasRight('ShowTicketComments')) { + return($Attachment); + } elsif ($Attachment->TransactionObj->__Value('Type') !~ /^Comment/ && + $Attachment->TransactionObj->TicketObj->CurrentUserHasRight('ShowTicket')) { + return($Attachment); + } + + #If the user doesn't have the right to show this ticket + else { + return($self->Next()); + } + } + + #if there never was any ticket + else { + return(undef); + } +} +# }}} + 1; diff --git a/rt/lib/RT/Attribute.pm b/rt/lib/RT/Attribute.pm new file mode 100644 index 000000000..62555d2a7 --- /dev/null +++ b/rt/lib/RT/Attribute.pm @@ -0,0 +1,347 @@ +# {{{ 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::Attribute + + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=head1 METHODS + +=cut + +package RT::Attribute; +use RT::Record; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('Attributes'); + $self->SUPER::_Init(@_); +} + + + + + +=head2 Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(255) 'Name'. + varchar(255) 'Description'. + text 'Content'. + varchar(16) 'ContentType'. + varchar(64) 'ObjectType'. + int(11) 'ObjectId'. + +=cut + + + + +sub Create { + my $self = shift; + my %args = ( + Name => '', + Description => '', + Content => '', + ContentType => '', + ObjectType => '', + ObjectId => '', + + @_); + $self->SUPER::Create( + Name => $args{'Name'}, + Description => $args{'Description'}, + Content => $args{'Content'}, + ContentType => $args{'ContentType'}, + ObjectType => $args{'ObjectType'}, + ObjectId => $args{'ObjectId'}, +); + +} + + + +=head2 id + +Returns the current value of id. +(In the database, id is stored as int(11).) + + +=cut + + +=head2 Name + +Returns the current value of Name. +(In the database, Name is stored as varchar(255).) + + + +=head2 SetName VALUE + + +Set Name to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Name will be stored as a varchar(255).) + + +=cut + + +=head2 Description + +Returns the current value of Description. +(In the database, Description is stored as varchar(255).) + + + +=head2 SetDescription VALUE + + +Set Description to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Description will be stored as a varchar(255).) + + +=cut + + +=head2 Content + +Returns the current value of Content. +(In the database, Content is stored as text.) + + + +=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 text.) + + +=cut + + +=head2 ContentType + +Returns the current value of ContentType. +(In the database, ContentType is stored as varchar(16).) + + + +=head2 SetContentType VALUE + + +Set ContentType to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ContentType will be stored as a varchar(16).) + + +=cut + + +=head2 ObjectType + +Returns the current value of ObjectType. +(In the database, ObjectType is stored as varchar(64).) + + + +=head2 SetObjectType VALUE + + +Set ObjectType 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).) + + +=cut + + +=head2 ObjectId + +Returns the current value of ObjectId. +(In the database, ObjectId is stored as int(11).) + + + +=head2 SetObjectId VALUE + + +Set ObjectId 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).) + + +=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 => ''}, + Name => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + Description => + {read => 1, write => 1, type => 'varchar(255)', default => ''}, + Content => + {read => 1, write => 1, type => 'text', default => ''}, + ContentType => + {read => 1, write => 1, type => 'varchar(16)', default => ''}, + ObjectType => + {read => 1, write => 1, type => 'varchar(64)', default => ''}, + ObjectId => + {read => 1, write => 1, type => 'int(11)', 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::Attribute_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Attribute_Overlay.pm}) { + die $@; + }; + + eval "require RT::Attribute_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Attribute_Vendor.pm}) { + die $@; + }; + + eval "require RT::Attribute_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Attribute_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::Attribute_Overlay, RT::Attribute_Vendor, RT::Attribute_Local + +=cut + + +1; diff --git a/rt/lib/RT/Attribute_Overlay.pm b/rt/lib/RT/Attribute_Overlay.pm new file mode 100644 index 000000000..b95b8f6e3 --- /dev/null +++ b/rt/lib/RT/Attribute_Overlay.pm @@ -0,0 +1,462 @@ +# {{{ 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); +use Storable qw/nfreeze thaw/; +use MIME::Base64; + + +=head1 NAME + + RT::Attribute_Overlay + +=head1 Content + +=cut + +# the acl map is a map of "name of attribute" and "what right the user must have on the associated object to see/edit it + +our $ACL_MAP = { + SavedSearch => { create => 'EditSavedSearches', + update => 'EditSavedSearches', + delete => 'EditSavedSearches', + display => 'ShowSavedSearches' }, + +}; + +# There are a number of attributes that users should be able to modify for themselves, such as saved searches +# we could do this with a different set of "modify" rights, but that gets very hacky very fast. this is even faster and even +# hackier. we're hardcoding that a different set of rights are needed for attributes on oneself +our $PERSONAL_ACL_MAP = { + SavedSearch => { create => 'ModifySelf', + update => 'ModifySelf', + delete => 'ModifySelf', + display => 'allow' }, + +}; + +=head2 LookupObjectRight { ObjectType => undef, ObjectId => undef, Name => undef, Right => { create, update, delete, display } } + +Returns the right that the user needs to have on this attribute's object to perform the related attribute operation. Returns "allow" if the right is otherwise unspecified. + +=cut + +sub LookupObjectRight { + my $self = shift; + my %args = ( ObjectType => undef, + ObjectId => undef, + Right => undef, + Name => undef, + @_); + + # if it's an attribute on oneself, check the personal acl map + if (($args{'ObjectType'} eq 'RT::User') && ($args{'ObjectId'} eq $self->CurrentUser->Id)) { + return('allow') unless ($PERSONAL_ACL_MAP->{$args{'Name'}}); + return('allow') unless ($PERSONAL_ACL_MAP->{$args{'Name'}}->{$args{'Right'}}); + return($PERSONAL_ACL_MAP->{$args{'Name'}}->{$args{'Right'}}); + + } + # otherwise check the main ACL map + else { + return('allow') unless ($ACL_MAP->{$args{'Name'}}); + return('allow') unless ($ACL_MAP->{$args{'Name'}}->{$args{'Right'}}); + return($ACL_MAP->{$args{'Name'}}->{$args{'Right'}}); + } +} + + + + +=head2 Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + varchar(200) 'Name'. + varchar(255) 'Content'. + varchar(16) 'ContentType', + varchar(64) 'ObjectType'. + int(11) 'ObjectId'. + +You may pass a C<Object> instead of C<ObjectType> and C<ObjectId>. + +=cut + + + + +sub Create { + my $self = shift; + my %args = ( + Name => '', + Description => '', + Content => '', + ContentType => '', + Object => undef, + @_); + + if ($args{Object} and UNIVERSAL::can($args{Object}, 'Id')) { + $args{ObjectType} = ref($args{Object}); + $args{ObjectId} = $args{Object}->Id; + } else { + return(0, $self->loc("Required parameter '[_1]' not specified", 'Object')); + + } + + # object_right is the right that the user has to have on the object for them to have $right on this attribute + my $object_right = $self->LookupObjectRight( + Right => 'create', + ObjectId => $args{'ObjectId'}, + ObjectType => $args{'ObjectType'}, + Name => $args{'Name'} + ); + if ($object_right eq 'deny') { + return (0, $self->loc('Permission Denied')); + } + elsif ($object_right eq 'allow') { + # do nothing, we're ok + } + elsif (!$self->CurrentUser->HasRight( Object => $args{Object}, Right => $object_right)) { + return (0, $self->loc('Permission Denied')); + } + + + if (ref ($args{'Content'}) ) { + eval {$args{'Content'} = $self->_SerializeContent($args{'Content'}); }; + if ($@) { + return(0, $@); + } + $args{'ContentType'} = 'storable'; + } + + + $self->SUPER::Create( + Name => $args{'Name'}, + Content => $args{'Content'}, + ContentType => $args{'ContentType'}, + Description => $args{'Description'}, + ObjectType => $args{'ObjectType'}, + ObjectId => $args{'ObjectId'}, +); + +} + + +# {{{ sub LoadByNameAndObject + +=head2 LoadByNameAndObject (Object => OBJECT, Name => NAME) + +Loads the Attribute named NAME for Object OBJECT. + +=cut + +sub LoadByNameAndObject { + my $self = shift; + my %args = ( + Object => undef, + Name => undef, + @_, + ); + + return ( + $self->LoadByCols( + Name => $args{'Name'}, + ObjectType => ref($args{'Object'}), + ObjectId => $args{'Object'}->Id, + ) + ); + +} + +# }}} + + +=head2 _DeserializeContent + +DeserializeContent returns this Attribute's "Content" as a hashref. + + +=cut + +sub _DeserializeContent { + my $self = shift; + my $content = shift; + + my $hashref; + eval {$hashref = thaw(decode_base64($content))} ; + if ($@) { + $RT::Logger->error("Deserialization of attribute ".$self->Id. " failed"); + } + + return($hashref); + +} + + +=head2 Content + +Returns this attribute's content. If it's a scalar, returns a scalar +If it's data structure returns a ref to that data structure. + +=cut + +sub Content { + my $self = shift; + # Here we call _Value to get the ACL check. + my $content = $self->_Value('Content'); + if ($self->__Value('ContentType') eq 'storable') { + eval {$content = $self->_DeserializeContent($content); }; + if ($@) { + $RT::Logger->error("Deserialization of content for attribute ".$self->Id. " failed. Attribute was: ".$content); + } + } + + return($content); + +} + +sub _SerializeContent { + my $self = shift; + my $content = shift; + return( encode_base64(nfreeze($content))); +} + + +sub SetContent { + my $self = shift; + my $content = shift; + + # Call __Value to avoid ACL check. + if ($self->__Value('ContentType') eq 'storable') { + # We eval the serialization because it will lose on a coderef. + eval {$content = $self->_SerializeContent($content); }; + if ($@) { + $RT::Logger->error("For some reason, content couldn't be frozen"); + return(0, $@); + } + } + return ($self->SUPER::SetContent($content)); +} + +=head2 SubValue KEY + +Returns the subvalue for $key. + +=begin testing + +my $user = $RT::SystemUser; +my ($id, $msg) = $user->AddAttribute(Name => 'SavedSearch', Content => { Query => 'Foo'} ); +ok ($id, $msg); +my $attr = RT::Attribute->new($RT::SystemUser); +$attr->Load($id); +ok($attr->Name eq 'SavedSearch'); +$attr->SetSubValues( Format => 'baz'); + +my $format = $attr->SubValue('Format'); +is ($format , 'baz'); + +$attr->SetSubValues( Format => 'bar'); +$format = $attr->SubValue('Format'); +is ($format , 'bar'); + +$attr->DeleteAllSubValues(); +$format = $attr->SubValue('Format'); +is ($format, undef); + +$attr->SetSubValues(Format => 'This is a format'); + +my $attr2 = RT::Attribute->new($RT::SystemUser); +$attr2->Load($id); +is ($attr2->SubValue('Format'), 'This is a format'); + + +=end testing + +=cut + +sub SubValue { + my $self = shift; + my $key = shift; + my $values = $self->Content(); + return undef unless ref($values); + return($values->{$key}); +} + +=head2 DeleteSubValue NAME + +Deletes the subvalue with the key NAME + +=cut + +sub DeleteSubValue { + my $self = shift; + my $key = shift; + my %values = $self->Content(); + delete $values{$key}; + $self->SetContent(%values); + + + +} + + +=head2 DeleteAllSubValues + +Deletes all subvalues for this attribute + +=cut + + +sub DeleteAllSubValues { + my $self = shift; + $self->SetContent({}); +} + +=head2 SetSubValues { } + +Takes a hash of keys and values and stores them in the content of this attribute. + +Each key B<replaces> the existing key with the same name + +Returns a tuple of (status, message) + +=cut + + +sub SetSubValues { + my $self = shift; + my %args = (@_); + my $values = ($self->Content() || {} ); + foreach my $key (keys %args) { + $values->{$key} = $args{$key}; + } + + $self->SetContent($values); + +} + + +sub Object { + my $self = shift; + my $object_type = $self->__Value('ObjectType'); + my $object; + eval { $object = $object_type->new($self->CurrentUser) }; + unless(UNIVERSAL::isa($object, $object_type)) { + $RT::Logger->error("Attribute ".$self->Id." has a bogus object type - $object_type (".$@.")"); + return(undef); + } + $object->Load($self->__Value('ObjectId')); + + return($object); + +} + + +sub Delete { + my $self = shift; + unless ($self->CurrentUserHasRight('delete')) { + return (0,$self->loc('Permission Denied')); + } + return($self->SUPER::Delete(@_)); +} + + +sub _Value { + my $self = shift; + unless ($self->CurrentUserHasRight('display')) { + return (0,$self->loc('Permission Denied')); + } + + return($self->SUPER::_Value(@_)); + + +} + + +sub _Set { + my $self = shift; + unless ($self->CurrentUserHasRight('modify')) { + + return (0,$self->loc('Permission Denied')); + } + return($self->SUPER::_Set(@_)); + +} + + +=head2 CurrentUserHasRight + +One of "display" "modify" "delete" or "create" and returns 1 if the user has that right for attributes of this name for this object.Returns undef otherwise. + +=cut + +sub CurrentUserHasRight { + my $self = shift; + my $right = shift; + + # object_right is the right that the user has to have on the object for them to have $right on this attribute + my $object_right = $self->LookupObjectRight( + Right => $right, + ObjectId => $self->__Value('ObjectId'), + ObjectType => $self->__Value('ObjectType'), + Name => $self->__Value('Name') + ); + + return (1) if ($object_right eq 'allow'); + return (0) if ($object_right eq 'deny'); + return(1) if ($self->CurrentUser->HasRight( Object => $self->Object, Right => $object_right)); + return(0); + +} + + +=head1 TODO + +We should be deserializing the content on load and then enver again, rather than at every access + +=cut + + +1; diff --git a/rt/lib/RT/Attributes.pm b/rt/lib/RT/Attributes.pm new file mode 100644 index 000000000..bb7133366 --- /dev/null +++ b/rt/lib/RT/Attributes.pm @@ -0,0 +1,137 @@ +# {{{ 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::Attributes -- Class Description + +=head1 SYNOPSIS + + use RT::Attributes + +=head1 DESCRIPTION + + +=head1 METHODS + +=cut + +package RT::Attributes; + +use RT::SearchBuilder; +use RT::Attribute; + +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + + +sub _Init { + my $self = shift; + $self->{'table'} = 'Attributes'; + $self->{'primary_key'} = 'id'; + + + return ( $self->SUPER::_Init(@_) ); +} + + +=head2 NewItem + +Returns an empty new RT::Attribute item + +=cut + +sub NewItem { + my $self = shift; + return(RT::Attribute->new($self->CurrentUser)); +} + + eval "require RT::Attributes_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/Attributes_Overlay.pm}) { + die $@; + }; + + eval "require RT::Attributes_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/Attributes_Vendor.pm}) { + die $@; + }; + + eval "require RT::Attributes_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/Attributes_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::Attributes_Overlay, RT::Attributes_Vendor, RT::Attributes_Local + +=cut + + +1; diff --git a/rt/lib/RT/Attributes_Overlay.pm b/rt/lib/RT/Attributes_Overlay.pm new file mode 100644 index 000000000..63c9ba042 --- /dev/null +++ b/rt/lib/RT/Attributes_Overlay.pm @@ -0,0 +1,211 @@ +# {{{ 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 +=head1 NAME + + RT::Attributes - collection of RT::Attribute objects + +=head1 SYNOPSIS + + use RT:Attributes; +my $Attributes = new RT::Attributes($CurrentUser); + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok(require RT::Attributes); + +my $root = RT::User->new($RT::SystemUser); +ok (UNIVERSAL::isa($root, 'RT::User')); +$root->Load('root'); +ok($root->id, "Found a user for root"); + +my $attr = $root->Attributes; + +ok (UNIVERSAL::isa($attr,'RT::Attributes'), 'got the attributes object'); + +my ($id, $msg) = $root->AddAttribute(Name => 'TestAttr', Content => 'The attribute has content'); +ok ($id, $msg); +my @names = $attr->Names; + +is ($names[0] , 'TestAttr'); + + +=end testing + +=cut + +use strict; +no warnings qw(redefine); + + +sub _DoSearch { + my $self = shift; + $self->SUPER::_DoSearch(); + $self->_BuildAccessTable(); +} + + +sub _BuildAccessTable { + my $self = shift; + delete $self->{'attr'}; + while (my $attr = $self->Next) { + push @{$self->{'attr'}->{$attr->Name}}, $attr; + } +} + + +sub _AttrHash { + my $self = shift; + $self->_DoSearch if ($self->{'must_redo_search'}); + unless ($self->{'attr'}) { + $self->{'attr'}->{'__none'} = RT::Attribute->new($self->CurrentUser); + } + return ($self->{'attr'}); +} + +=head2 Names + +Returns a list of the Names of all attributes for this object. + +=cut + +sub Names { + my $self = shift; + my @keys = keys %{$self->_AttrHash}; + return(@keys); + + +} + +=head2 Named STRING + +Returns an array of all the RT::Attribute objects with the name STRING + +=cut + +sub Named { + my $self = shift; + my $name = shift; + my @attributes; + if ($self->_AttrHash) { + @attributes = @{($self->_AttrHash->{$name}||[])}; + } + return (@attributes); +} + +=head2 WithId ID + +Returns the RT::Attribute objects with the id ID + +XXX TODO XXX THIS NEEDS A BETTER ACL CHECK + +=cut + +sub WithId { + my $self = shift; + my $id = shift; + + my $attr = RT::Attribute->new($self->CurrentUser); + $attr->LoadByCols( id => $id ); + return($attr); +} + +=head2 DeleteEntry { Name => Content => , id => } + +Deletes attributes with + the matching name + and the matching content or id + +If Content and id are both undefined, delete all attributes with +the matching name. + +=cut + + +sub DeleteEntry { + my $self = shift; + my %args = ( Name => undef, + Content => undef, + id => undef, + @_); + + foreach my $attr ($self->Named($args{'Name'})){ + $attr->Delete + if (!defined $args{'id'} and !defined $args{'Content'}) + or (defined $args{'id'} and $attr->id eq $args{'id'}) + or (defined $args{'Content'} and $attr->Content eq $args{'Content'}); + } + $self->_DoSearch(); + return (1, $self->loc('Attribute Deleted')); +} + + +# {{{ LimitToObject + +=head2 LimitToObject $object + +Limit the Attributes to rights for the object $object. It needs to be an RT::Record class. + +=cut + +sub LimitToObject { + my $self = shift; + my $obj = shift; + unless (defined($obj) && ref($obj) && UNIVERSAL::can($obj, 'id') && $obj->id) { + return undef; + } + $self->Limit(FIELD => 'ObjectType', OPERATOR=> '=', VALUE => ref($obj), ENTRYAGGREGATOR => 'OR'); + $self->Limit(FIELD => 'ObjectId', OPERATOR=> '=', VALUE => $obj->id, ENTRYAGGREGATOR => 'OR', QUOTEVALUE => 0); + +} + +# }}} + +1; diff --git a/rt/lib/RT/Base.pm b/rt/lib/RT/Base.pm index 47742f8ac..03b50e600 100644 --- a/rt/lib/RT/Base.pm +++ b/rt/lib/RT/Base.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::Base; use Carp; use Scalar::Util; diff --git a/rt/lib/RT/CachedGroupMember.pm b/rt/lib/RT/CachedGroupMember.pm index fc3e1bf00..96b1d00a4 100644 --- a/rt/lib/RT/CachedGroupMember.pm +++ b/rt/lib/RT/CachedGroupMember.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -61,7 +83,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -98,7 +120,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -107,14 +129,14 @@ Returns the current value of id. =cut -=item GroupId +=head2 GroupId Returns the current value of GroupId. (In the database, GroupId is stored as int(11).) -=item SetGroupId VALUE +=head2 SetGroupId VALUE Set GroupId to VALUE. @@ -125,14 +147,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item MemberId +=head2 MemberId Returns the current value of MemberId. (In the database, MemberId is stored as int(11).) -=item SetMemberId VALUE +=head2 SetMemberId VALUE Set MemberId to VALUE. @@ -143,14 +165,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Via +=head2 Via Returns the current value of Via. (In the database, Via is stored as int(11).) -=item SetVia VALUE +=head2 SetVia VALUE Set Via to VALUE. @@ -161,14 +183,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ImmediateParentId +=head2 ImmediateParentId Returns the current value of ImmediateParentId. (In the database, ImmediateParentId is stored as int(11).) -=item SetImmediateParentId VALUE +=head2 SetImmediateParentId VALUE Set ImmediateParentId to VALUE. @@ -179,14 +201,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Disabled +=head2 Disabled Returns the current value of Disabled. (In the database, Disabled is stored as smallint(6).) -=item SetDisabled VALUE +=head2 SetDisabled VALUE Set Disabled to VALUE. @@ -198,7 +220,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/CachedGroupMember_Overlay.pm b/rt/lib/RT/CachedGroupMember_Overlay.pm index 8ba7913fa..1294af4ee 100644 --- a/rt/lib/RT/CachedGroupMember_Overlay.pm +++ b/rt/lib/RT/CachedGroupMember_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/CachedGroupMembers.pm b/rt/lib/RT/CachedGroupMembers.pm index b520f7b9c..909089d28 100644 --- a/rt/lib/RT/CachedGroupMembers.pm +++ b/rt/lib/RT/CachedGroupMembers.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::CachedGroupMember item diff --git a/rt/lib/RT/CachedGroupMembers_Overlay.pm b/rt/lib/RT/CachedGroupMembers_Overlay.pm index 09c63cbf5..0dbcffcd2 100644 --- a/rt/lib/RT/CachedGroupMembers_Overlay.pm +++ b/rt/lib/RT/CachedGroupMembers_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::CachedGroupMembers - a collection of RT::GroupMember objects diff --git a/rt/lib/RT/Condition/AnyTransaction.pm b/rt/lib/RT/Condition/AnyTransaction.pm index 4519fcf5a..a338523b7 100644 --- a/rt/lib/RT/Condition/AnyTransaction.pm +++ b/rt/lib/RT/Condition/AnyTransaction.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::Condition::AnyTransaction; diff --git a/rt/lib/RT/Condition/BeforeDue.pm b/rt/lib/RT/Condition/BeforeDue.pm index 7911fd80a..4be0afc24 100644 --- a/rt/lib/RT/Condition/BeforeDue.pm +++ b/rt/lib/RT/Condition/BeforeDue.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::Condition::BeforeDue; require RT::Condition::Generic; diff --git a/rt/lib/RT/Condition/Generic.pm b/rt/lib/RT/Condition/Generic.pm index bd269315e..1f291fcca 100755 --- a/rt/lib/RT/Condition/Generic.pm +++ b/rt/lib/RT/Condition/Generic.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Condition::Generic - ; @@ -57,10 +79,8 @@ ok (require RT::Condition::Generic); package RT::Condition::Generic; -use RT::Base; use strict; -use vars qw/@ISA/; -@ISA = qw(RT::Base); +use base qw/RT::Base/; # {{{ sub new sub new { @@ -82,6 +102,7 @@ sub _Init { TemplateObj => undef, Argument => undef, ApplicableTransTypes => undef, + CurrentUser => undef, @_ ); $self->{'Argument'} = $args{'Argument'}; @@ -89,6 +110,7 @@ sub _Init { $self->{'TicketObj'} = $args{'TicketObj'}; $self->{'TransactionObj'} = $args{'TransactionObj'}; $self->{'ApplicableTransTypes'} = $args{'ApplicableTransTypes'}; + $self->CurrentUser($args{'CurrentUser'}); } # }}} diff --git a/rt/lib/RT/Condition/Overdue.pm b/rt/lib/RT/Condition/Overdue.pm index 3a4efe77f..df4476caf 100644 --- a/rt/lib/RT/Condition/Overdue.pm +++ b/rt/lib/RT/Condition/Overdue.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK diff --git a/rt/lib/RT/Condition/OwnerChange.pm b/rt/lib/RT/Condition/OwnerChange.pm index e17f589e4..5ec3a4308 100644 --- a/rt/lib/RT/Condition/OwnerChange.pm +++ b/rt/lib/RT/Condition/OwnerChange.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK @@ -50,9 +72,7 @@ my ($val, $msg) =$s1->Create( Queue => $q->Id, CustomIsApplicableCode => '', CustomPrepareCode => 'return 1', CustomCommitCode => ' - $RT::Logger->crit("Before, prio is ".$self->TicketObj->Priority); $self->TicketObj->SetPriority($self->TicketObj->Priority+1); - $RT::Logger->crit("After, prio is ".$self->TicketObj->Priority); return(1); ', Template => 'Blank' diff --git a/rt/lib/RT/Condition/PriorityChange.pm b/rt/lib/RT/Condition/PriorityChange.pm new file mode 100644 index 000000000..b3dbde895 --- /dev/null +++ b/rt/lib/RT/Condition/PriorityChange.pm @@ -0,0 +1,80 @@ +# {{{ 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 + + + +package RT::Condition::PriorityChange; +require RT::Condition::Generic; + +use strict; +use vars qw/@ISA/; +@ISA = qw(RT::Condition::Generic); + + +=head2 IsApplicable + +If the argument passed in is equivalent to the new value of +the Priority Obj + +=cut + +sub IsApplicable { + my $self = shift; + if ($self->TransactionObj->Field eq 'Priority') { + return(1); + } + else { + return(undef); + } +} + +eval "require RT::Condition::PriorityChange_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/PriorityChange_Vendor.pm}); +eval "require RT::Condition::PriorityChange_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Condition/PriorityChange_Local.pm}); + +1; + diff --git a/rt/lib/RT/Condition/PriorityExceeds.pm b/rt/lib/RT/Condition/PriorityExceeds.pm index 7737ca5a9..68db1e501 100644 --- a/rt/lib/RT/Condition/PriorityExceeds.pm +++ b/rt/lib/RT/Condition/PriorityExceeds.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK diff --git a/rt/lib/RT/Condition/QueueChange.pm b/rt/lib/RT/Condition/QueueChange.pm index f3e646a00..4227fe6b0 100644 --- a/rt/lib/RT/Condition/QueueChange.pm +++ b/rt/lib/RT/Condition/QueueChange.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK diff --git a/rt/lib/RT/Condition/StatusChange.pm b/rt/lib/RT/Condition/StatusChange.pm index 8afabcda0..1182fcd70 100644 --- a/rt/lib/RT/Condition/StatusChange.pm +++ b/rt/lib/RT/Condition/StatusChange.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK diff --git a/rt/lib/RT/Condition/UserDefined.pm b/rt/lib/RT/Condition/UserDefined.pm index eb829f0d1..0cb8bdb38 100644 --- a/rt/lib/RT/Condition/UserDefined.pm +++ b/rt/lib/RT/Condition/UserDefined.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::Condition::UserDefined; diff --git a/rt/lib/RT/CurrentUser.pm b/rt/lib/RT/CurrentUser.pm index abaf87608..d147fe62e 100755 --- a/rt/lib/RT/CurrentUser.pm +++ b/rt/lib/RT/CurrentUser.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 =head1 NAME RT::CurrentUser - an RT object representing the current user @@ -51,8 +73,7 @@ use RT::Record; use RT::I18N; use strict; -use vars qw/@ISA/; -@ISA= qw(RT::Record); +use base qw/RT::Record/; # {{{ sub _Init @@ -60,17 +81,30 @@ use vars qw/@ISA/; # 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 $Name = shift; +sub _Init { + my $self = shift; + my $User = shift; - $self->{'table'} = "Users"; + $self->{'table'} = "Users"; - if (defined($Name)) { - $self->Load($Name); - } - - # $self->CurrentUser($self); + if ( defined($User) ) { + + if ( UNIVERSAL::isa( $User, 'RT::User' ) + || UNIVERSAL::isa( $User, 'RT::CurrentUser' ) ) + { + $self->Load( $User->id ); + + } + elsif ( ref($User) ) { + $RT::Logger->crit( + "RT::CurrentUser->new() called with a bogus argument: $User"); + } + else { + $self->Load($User); + } + } + + $self->_BuildTableAttributes(); } # }}} @@ -151,19 +185,18 @@ sub PrincipalId { # {{{ sub _Accessible -sub _Accessible { - my $self = shift; - my %Cols = ( - Name => 'read', - Gecos => 'read', - RealName => 'read', - Password => 'neither', - Lang => 'read', - EmailAddress => 'read', - Privileged => 'read', - IsAdministrator => 'read' - ); - return($self->SUPER::_Accessible(@_, %Cols)); + + + sub _CoreAccessible { + { + Name => { 'read' => 1 }, + Gecos => { 'read' => 1 }, + RealName => { 'read' => 1 }, + Lang => { 'read' => 1 }, + Password => { 'read' => 0, 'write' => 0 }, + EmailAddress => { 'read' => 1, 'write' => 0 } + }; + } # }}} @@ -384,12 +417,13 @@ Return the current currentuser object =cut -sub CurrentUser { +sub CurrentUser { my $self = shift; return($self); } + eval "require RT::CurrentUser_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/CurrentUser_Vendor.pm}); eval "require RT::CurrentUser_Local"; diff --git a/rt/lib/RT/CustomField.pm b/rt/lib/RT/CustomField.pm index cd40a3a92..be05c3092 100644 --- a/rt/lib/RT/CustomField.pm +++ b/rt/lib/RT/CustomField.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -62,7 +84,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -102,7 +124,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -111,14 +133,14 @@ Returns the current value of id. =cut -=item Name +=head2 Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=item SetName VALUE +=head2 SetName VALUE Set Name to VALUE. @@ -129,14 +151,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Type +=head2 Type Returns the current value of Type. (In the database, Type is stored as varchar(200).) -=item SetType VALUE +=head2 SetType VALUE Set Type to VALUE. @@ -147,14 +169,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Queue +=head2 Queue Returns the current value of Queue. (In the database, Queue is stored as int(11).) -=item SetQueue VALUE +=head2 SetQueue VALUE Set Queue to VALUE. @@ -165,7 +187,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item QueueObj +=head2 QueueObj Returns the Queue Object which has the id returned by Queue @@ -179,14 +201,14 @@ sub QueueObj { return($Queue); } -=item Description +=head2 Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=item SetDescription VALUE +=head2 SetDescription VALUE Set Description to VALUE. @@ -197,14 +219,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item SortOrder +=head2 SortOrder Returns the current value of SortOrder. (In the database, SortOrder is stored as int(11).) -=item SetSortOrder VALUE +=head2 SetSortOrder VALUE Set SortOrder to VALUE. @@ -215,7 +237,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -224,7 +246,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -233,7 +255,7 @@ Returns the current value of Created. =cut -=item LastUpdatedBy +=head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -242,7 +264,7 @@ Returns the current value of LastUpdatedBy. =cut -=item LastUpdated +=head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -251,14 +273,14 @@ Returns the current value of LastUpdated. =cut -=item Disabled +=head2 Disabled Returns the current value of Disabled. (In the database, Disabled is stored as smallint(6).) -=item SetDisabled VALUE +=head2 SetDisabled VALUE Set Disabled to VALUE. @@ -270,7 +292,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/CustomFieldValue.pm b/rt/lib/RT/CustomFieldValue.pm index f434b44fb..e1d4e030e 100644 --- a/rt/lib/RT/CustomFieldValue.pm +++ b/rt/lib/RT/CustomFieldValue.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -62,7 +84,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -96,7 +118,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -105,14 +127,14 @@ Returns the current value of id. =cut -=item CustomField +=head2 CustomField Returns the current value of CustomField. (In the database, CustomField is stored as int(11).) -=item SetCustomField VALUE +=head2 SetCustomField VALUE Set CustomField to VALUE. @@ -123,7 +145,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item CustomFieldObj +=head2 CustomFieldObj Returns the CustomField Object which has the id returned by CustomField @@ -137,14 +159,14 @@ sub CustomFieldObj { return($CustomField); } -=item Name +=head2 Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=item SetName VALUE +=head2 SetName VALUE Set Name to VALUE. @@ -155,14 +177,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Description +=head2 Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=item SetDescription VALUE +=head2 SetDescription VALUE Set Description to VALUE. @@ -173,14 +195,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item SortOrder +=head2 SortOrder Returns the current value of SortOrder. (In the database, SortOrder is stored as int(11).) -=item SetSortOrder VALUE +=head2 SetSortOrder VALUE Set SortOrder to VALUE. @@ -191,7 +213,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -200,7 +222,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -209,7 +231,7 @@ Returns the current value of Created. =cut -=item LastUpdatedBy +=head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -218,7 +240,7 @@ Returns the current value of LastUpdatedBy. =cut -=item LastUpdated +=head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -228,7 +250,7 @@ Returns the current value of LastUpdated. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/CustomFieldValues.pm b/rt/lib/RT/CustomFieldValues.pm index 0e792b1a2..70deda126 100644 --- a/rt/lib/RT/CustomFieldValues.pm +++ b/rt/lib/RT/CustomFieldValues.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -70,7 +92,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::CustomFieldValue item diff --git a/rt/lib/RT/CustomFieldValues_Overlay.pm b/rt/lib/RT/CustomFieldValues_Overlay.pm index 0384db96c..074498073 100644 --- a/rt/lib/RT/CustomFieldValues_Overlay.pm +++ b/rt/lib/RT/CustomFieldValues_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/CustomField_Overlay.pm b/rt/lib/RT/CustomField_Overlay.pm index 84902a02f..4c4bd8ba7 100644 --- a/rt/lib/RT/CustomField_Overlay.pm +++ b/rt/lib/RT/CustomField_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/CustomFields.pm b/rt/lib/RT/CustomFields.pm index 3e47765e6..b1e48df39 100644 --- a/rt/lib/RT/CustomFields.pm +++ b/rt/lib/RT/CustomFields.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -70,7 +92,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::CustomField item diff --git a/rt/lib/RT/CustomFields_Overlay.pm b/rt/lib/RT/CustomFields_Overlay.pm index 97c7cb8df..b22e8b461 100644 --- a/rt/lib/RT/CustomFields_Overlay.pm +++ b/rt/lib/RT/CustomFields_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::CustomFields - a collection of RT CustomField objects diff --git a/rt/lib/RT/Date.pm b/rt/lib/RT/Date.pm index 609db1b45..a000b8d00 100644 --- a/rt/lib/RT/Date.pm +++ b/rt/lib/RT/Date.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 =head1 NAME RT::Date - a simple Object Oriented date. @@ -330,7 +352,8 @@ sub DurationAsString { $s = int( $duration / $YEAR ); $time_unit = $self->loc("years"); } - if (0) { # For now, never display the "AGO" # $negative) { + + if ($negative) { return $self->loc( "[_1] [_2] ago", $s, $time_unit ); } else { diff --git a/rt/lib/RT/EmailParser.pm b/rt/lib/RT/EmailParser.pm index e9a00f16c..8ed810c56 100644 --- a/rt/lib/RT/EmailParser.pm +++ b/rt/lib/RT/EmailParser.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 package RT::EmailParser; @@ -151,11 +173,62 @@ sub CheckForAutoGenerated { # }}} + +=head2 SmartParseMIMEEntityFromScalar { Message => SCALAR_REF, Decode => BOOL } + +Parse a message stored in a scalar from scalar_ref + + +=cut + +sub SmartParseMIMEEntityFromScalar { + my $self = shift; + my %args = ( Message => undef, Decode => 1, @_ ); + + my ( $fh, $temp_file ); + eval { + + for ( 1 .. 10 ) { + + # on NFS and NTFS, it is possible that tempfile() conflicts + # with other processes, causing a race condition. we try to + # accommodate this by pausing and retrying. + last + if ( $fh, $temp_file ) = + eval { File::Temp::tempfile( undef, UNLINK => 0 ) }; + sleep 1; + } + if ($fh) { + + #thank you, windows + binmode $fh; + $fh->autoflush(1); + print $fh $args{'Message'}; + close($fh); + if ( -f $temp_file ) { + + # We have to trust the temp file's name -- untaint it + $temp_file =~ /(.*)/; + $self->ParseMIMEEntityFromFile( $1, $args{'Decode'} ); + unlink($1); + } + } + }; + + #If for some reason we weren't able to parse the message using a temp file + # try it with a scalar + if ( $@ || !$self->Entity ) { + $self->ParseMIMEEntityFromScalar( $args{'Message'}, $args{'Decode'} ); + } + +} + # {{{ sub ParseMIMEEntityFromSTDIN sub ParseMIMEEntityFromSTDIN { my $self = shift; - return $self->ParseMIMEEntityFromFileHandle(\*STDIN); + my $postprocess = (@_ ? shift : 1); + return $self->ParseMIMEEntityFromFileHandle(\*STDIN, $postprocess); } # }}} @@ -174,11 +247,11 @@ Returns false if it loses. sub ParseMIMEEntityFromScalar { my $self = shift; my $message = shift; - - $self->_DoParse('parse_data', $message); - + my $postprocess = (@_ ? shift : 1); + $self->_ParseMIMEEntity($message,'parse_data', $postprocess); } + # {{{ ParseMIMEEntityFromFilehandle *FH =head2 ParseMIMEEntityFromFilehandle *FH @@ -190,9 +263,8 @@ Parses a mime entity from a filehandle passed in as an argument sub ParseMIMEEntityFromFileHandle { my $self = shift; my $filehandle = shift; - - $self->_DoParse('parse', $filehandle); - + my $postprocess = (@_ ? shift : 1); + $self->_ParseMIMEEntity($filehandle,'parse', $postprocess); } # }}} @@ -207,27 +279,19 @@ Parses a mime entity from a filename passed in as an argument sub ParseMIMEEntityFromFile { my $self = shift; - my $file = shift; - $self->_DoParse('parse_open', $file); + my $postprocess = (@_ ? shift : 1); + $self->_ParseMIMEEntity($file,'parse_open',$postprocess); } # }}} - -# {{{ _DoParse - -=head2 _DoParse PARSEMETHOD CONTENT - - -A helper for the various parsers to turn around and do the dispatch to the actual parser - -=cut - -sub _DoParse { +# +# {{{ _ParseMIMEEntity { +sub _ParseMIMEEntity { my $self = shift; + my $message = shift; my $method = shift; - my $file = shift; - + my $postprocess = shift; # Create a new parser object: my $parser = MIME::Parser->new(); @@ -235,22 +299,23 @@ sub _DoParse { # TODO: XXX 3.0 we really need to wrap this in an eval { } - - unless ( $self->{'entity'} = $parser->$method($file) ) { - + unless ( $self->{'entity'} = $parser->$method($message) ) { + $RT::Logger->crit("Couldn't parse MIME stream and extract the submessages"); # Try again, this time without extracting nested messages $parser->extract_nested_messages(0); - unless ( $self->{'entity'} = $parser->$method($file) ) { + unless ( $self->{'entity'} = $parser->$method($message) ) { $RT::Logger->crit("couldn't parse MIME stream"); return ( undef); } } - $self->_PostProcessNewEntity(); - return (1); + if ($postprocess) { + $self->_PostProcessNewEntity() ; + } + } -# }}} +# }}} # {{{ _PostProcessNewEntity @@ -402,6 +467,8 @@ sub ParseAddressFromHeader { my $self = shift; my $Addr = shift; + # Perl 5.8.0 breaks when doing regex matches on utf8 + Encode::_utf8_off($Addr) if $] == 5.008; my @Addresses = Mail::Address->parse($Addr); my $AddrObj = $Addresses[0]; @@ -593,7 +660,7 @@ A private instance method which sets up a mime parser to do its job sub _SetupMIMEParser { my $self = shift; my $parser = shift; - + # Set up output directory for files: my $tmpdir = File::Temp::tempdir( TMPDIR => 1, CLEANUP => 1 ); @@ -612,6 +679,15 @@ sub _SetupMIMEParser { # do _not_ store each msg as in-core scalar; $parser->output_to_core(0); + + # From the MIME::Parser docs: + # "Normally, tmpfiles are created when needed during parsing, and destroyed automatically when they go out of scope" + # Turns out that the default is to recycle tempfiles + # Temp files should never be recycled, especially when running under perl taint checking + + $parser->tmp_recycling(0); + + } # }}} diff --git a/rt/lib/RT/Group.pm b/rt/lib/RT/Group.pm index 4dcef3f07..60f7fb71e 100755 --- a/rt/lib/RT/Group.pm +++ b/rt/lib/RT/Group.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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. # @@ -61,7 +83,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -69,7 +91,7 @@ Create takes a hash of values and creates a row in the database: varchar(255) 'Description'. varchar(64) 'Domain'. varchar(64) 'Type'. - varchar(64) 'Instance'. + int(11) 'Instance'. =cut @@ -98,7 +120,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -107,14 +129,14 @@ Returns the current value of id. =cut -=item Name +=head2 Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=item SetName VALUE +=head2 SetName VALUE Set Name to VALUE. @@ -125,14 +147,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Description +=head2 Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=item SetDescription VALUE +=head2 SetDescription VALUE Set Description to VALUE. @@ -143,14 +165,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Domain +=head2 Domain Returns the current value of Domain. (In the database, Domain is stored as varchar(64).) -=item SetDomain VALUE +=head2 SetDomain VALUE Set Domain to VALUE. @@ -161,14 +183,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Type +=head2 Type Returns the current value of Type. (In the database, Type is stored as varchar(64).) -=item SetType VALUE +=head2 SetType VALUE Set Type to VALUE. @@ -179,26 +201,26 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Instance +=head2 Instance Returns the current value of Instance. -(In the database, Instance is stored as varchar(64).) +(In the database, Instance is stored as int(11).) -=item SetInstance VALUE +=head2 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 varchar(64).) +(In the database, Instance will be stored as a int(11).) =cut -sub _ClassAccessible { +sub _CoreAccessible { { id => @@ -212,7 +234,7 @@ sub _ClassAccessible { Type => {read => 1, write => 1, type => 'varchar(64)', default => ''}, Instance => - {read => 1, write => 1, type => 'varchar(64)', default => ''}, + {read => 1, write => 1, type => 'int(11)', default => ''}, } }; diff --git a/rt/lib/RT/GroupMember.pm b/rt/lib/RT/GroupMember.pm index 8de1a73fe..e11651956 100755 --- a/rt/lib/RT/GroupMember.pm +++ b/rt/lib/RT/GroupMember.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -61,7 +83,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -89,7 +111,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -98,14 +120,14 @@ Returns the current value of id. =cut -=item GroupId +=head2 GroupId Returns the current value of GroupId. (In the database, GroupId is stored as int(11).) -=item SetGroupId VALUE +=head2 SetGroupId VALUE Set GroupId to VALUE. @@ -116,14 +138,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item MemberId +=head2 MemberId Returns the current value of MemberId. (In the database, MemberId is stored as int(11).) -=item SetMemberId VALUE +=head2 SetMemberId VALUE Set MemberId to VALUE. @@ -135,7 +157,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/GroupMember_Overlay.pm b/rt/lib/RT/GroupMember_Overlay.pm index 9e5bf2189..5ff7b3e7f 100644 --- a/rt/lib/RT/GroupMember_Overlay.pm +++ b/rt/lib/RT/GroupMember_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::GroupMember - a member of an RT Group diff --git a/rt/lib/RT/GroupMembers.pm b/rt/lib/RT/GroupMembers.pm index 31cb9536f..bd74c5155 100755 --- a/rt/lib/RT/GroupMembers.pm +++ b/rt/lib/RT/GroupMembers.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::GroupMember item diff --git a/rt/lib/RT/GroupMembers_Overlay.pm b/rt/lib/RT/GroupMembers_Overlay.pm index 96f092861..6814c5353 100644 --- a/rt/lib/RT/GroupMembers_Overlay.pm +++ b/rt/lib/RT/GroupMembers_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::GroupMembers - a collection of RT::GroupMember objects diff --git a/rt/lib/RT/Group_Overlay.pm b/rt/lib/RT/Group_Overlay.pm index f71fe7f7e..69ada31a0 100644 --- a/rt/lib/RT/Group_Overlay.pm +++ b/rt/lib/RT/Group_Overlay.pm @@ -1,9 +1,15 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -15,13 +21,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK # Released under the terms of version 2 of the GNU Public License =head1 NAME @@ -146,7 +168,9 @@ $RIGHTS = { AdminGroup => 'Modify group metadata or delete group', # loc_pair AdminGroupMembership => 'Modify membership roster for this group', # loc_pair - ModifyOwnMembership => 'Join or leave this group' # loc_pair + ModifyOwnMembership => 'Join or leave this group', # loc_pair + EditSavedSearches => 'Edit saved searches for this group', # loc_pair + ShowSavedSearches => 'Display saved searches for this group', # loc_pair }; # Tell RT::ACE that this sort of object can get acls granted diff --git a/rt/lib/RT/Groups.pm b/rt/lib/RT/Groups.pm index 29f12a5a0..1c4278c74 100755 --- a/rt/lib/RT/Groups.pm +++ b/rt/lib/RT/Groups.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::Group item diff --git a/rt/lib/RT/Groups_Overlay.pm b/rt/lib/RT/Groups_Overlay.pm index 4a3231e98..732236c96 100644 --- a/rt/lib/RT/Groups_Overlay.pm +++ b/rt/lib/RT/Groups_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Groups - a collection of RT::Group objects diff --git a/rt/lib/RT/Handle.pm b/rt/lib/RT/Handle.pm index e60bbd924..8d4563b66 100644 --- a/rt/lib/RT/Handle.pm +++ b/rt/lib/RT/Handle.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Handle - RT's database handle @@ -48,7 +70,13 @@ use vars qw/@ISA/; eval "use DBIx::SearchBuilder::Handle::$RT::DatabaseType; \@ISA= qw(DBIx::SearchBuilder::Handle::$RT::DatabaseType);"; -#TODO check for errors here. + +if ($@) { + die "Unable to load DBIx::SearchBuilder database handle for '$RT::DatabaseType'.". + "\n". + "Perhaps you've picked an invalid database type or spelled it incorrectly.". + "\n". $@; +} =head2 Connect @@ -60,15 +88,17 @@ Takes nothing. Calls SUPER::Connect with the needed args sub Connect { my $self = shift; - if ( $RT::DatabaseType eq 'Oracle' ) { + if ($RT::DatabaseType eq 'Oracle') { $ENV{'NLS_LANG'} = ".UTF8"; } - $self->SUPER::Connect( User => $RT::DatabaseUser, - Password => $RT::DatabasePassword, ); + $self->SUPER::Connect( + User => $RT::DatabaseUser, + Password => $RT::DatabasePassword, + ); $self->dbh->{LongReadLen} = $RT::MaxAttachmentSize; - + } =item BuildDSN diff --git a/rt/lib/RT/I18N.pm b/rt/lib/RT/I18N.pm index 79c3e8a15..af5ece012 100644 --- a/rt/lib/RT/I18N.pm +++ b/rt/lib/RT/I18N.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::I18N - a base class for localization of RT diff --git a/rt/lib/RT/I18N/cs.pm b/rt/lib/RT/I18N/cs.pm index 132c3c287..bb9786786 100644 --- a/rt/lib/RT/I18N/cs.pm +++ b/rt/lib/RT/I18N/cs.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::I18N::cs; # # CZECH TRANSLATORS COMMENTS see Locale::Maketext::TPJ13 diff --git a/rt/lib/RT/I18N/cs.po b/rt/lib/RT/I18N/cs.po index 213df41e1..7b0ef23bb 100644 --- a/rt/lib/RT/I18N/cs.po +++ b/rt/lib/RT/I18N/cs.po @@ -10,27 +10,39 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +#: NOT FOUND IN SOURCE msgid "#" msgstr "#" -#: html/Admin/Queues/Scrip.html:55 -#. ($QueueObj->id) +#: NOT FOUND IN SOURCE msgid "#%1" msgstr "#%1" -#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 -#. ($Ticket->Id, $Ticket->Subject) +#: 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" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: 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:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -40,7 +52,7 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%1 %3.%2.%7 %4:%5:%6" -#: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#: 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) @@ -52,20 +64,21 @@ msgstr "%1 %2 pÅ™idáno" msgid "%1 %2 ago" msgstr "- %1 %2" -#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#: 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 zmÄ›nÄ›no na %3" -#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#: 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 smazáno" -#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#: 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 se vzorem %3" @@ -74,44 +87,70 @@ msgstr "%1 %2 se vzorem %3" msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 tento požadavek\\n" -#: html/Search/Listing.html:57 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "%1. až %2. zobrazený" -#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#: 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 - argument k pÅ™edání %2" -#: bin/rt-crontool:185 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Výstupní stav jde do STDOUT" -#: bin/rt-crontool:179 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Jaký akÄní modul chcete použít" -#: bin/rt-crontool:173 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Jaký podmínkový modul chcete použít" -#: bin/rt-crontool:166 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Jaký vyhledávací modul chcete použít" -#: lib/RT/ScripAction_Overlay.pm:122 + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "ScripAction %1 nahrána" -#: lib/RT/Ticket_Overlay.pm:3471 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 pÅ™idáno jako hodnota pro %2" @@ -124,19 +163,19 @@ msgstr "%1 aliasy vyžadují k Äinnosti TicketId" msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1 aliasy vyžadují k Äinnosti TicketId (odesílatel %2) %3" -#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#: 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 vypadá jako lokální objekt, ale není v databázi" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 +#: 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 uživatelem %2" -#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#: 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) @@ -144,7 +183,12 @@ msgstr "%1 uživatelem %2" msgid "%1 changed from %2 to %3" msgstr "%1 zmÄ›nÄ›no z %2 na %3" -#: lib/RT/Interface/Web.pm:857 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "%1 nemůže být nastaveno na %2." @@ -152,37 +196,40 @@ msgstr "%1 nemůže být nastaveno na %2." msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 nemůže zaÄít transakci (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 nemůže nastavit stav na vyÅ™eÅ¡en. RT databáze může být nekonzistentní." -#: html/Elements/MyTickets:25 +#: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "%1 nejdůležitÄ›jších požadavků, které vlastním..." -#: html/Elements/MyRequests:25 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "%1 nejdůležitÄ›jších požadavků, které žádám..." -#: bin/rt-crontool:161 +#: bin/rt-crontool:157 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "%1 je nástroj zpracující požadavky z vnÄ›jšího plánovacího nástroje jako je cron" -#: lib/RT/Queue_Overlay.pm:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 již není %2 této fronty." -#: lib/RT/Ticket_Overlay.pm:1570 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 již není %2 tohoto požadavku." -#: lib/RT/Ticket_Overlay.pm:3527 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 již není hodnotou uživatelské položky %2" @@ -191,16 +238,25 @@ msgstr "%1 již není hodnotou uživatelské položky %2" msgid "%1 isn't a valid Queue id." msgstr "%1 není platným identifikátorem fronty." -#: html/Ticket/Elements/ShowBasics:36 -#. ($TimeWorked) +#: 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 %quant(%1,minuta,minuty,minut,minut)" +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 nezobrazeno" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:75 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "práva %1" @@ -217,7 +273,7 @@ msgstr "typ %1 neznámý pro $MessageId" msgid "%1 type unknown for %2" msgstr "typ %1 neznámý pro %2" -#: lib/RT/Action/ResolveMembers.pm:42 +#: lib/RT/Action/ResolveMembers.pm:41 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 vyÅ™eší vÅ¡echny Äleny skupiny vyÅ™eÅ¡eného požadavku." @@ -226,22 +282,28 @@ msgstr "%1 vyÅ™eší vÅ¡echny Äleny skupiny vyÅ™eÅ¡eného požadavku." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 odloží [místní] BÃZI, je-li závislá [Äi Älenem] na spjatém požadavku." -#: lib/RT/Transaction_Overlay.pm:435 +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1: neudána příloha" -#: html/Ticket/Elements/ShowTransaction:102 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "%1 B" -#: html/Ticket/Elements/ShowTransaction:99 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1 kB" -#: lib/RT/Ticket_Overlay.pm:1140 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "%1 je neplatnou hodnotou pro stav" @@ -254,37 +316,45 @@ msgstr "%1 je neznámá akce." msgid "(Check box to delete scrip)" msgstr "(ZatrhnÄ›te pro smazání scripu)" -#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +#: 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 "(ZatrhnÄ›te pro smazání)" +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Zadejte identifikátory Äi URL požadavku, oddÄ›lené mezerami)" -#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#: 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 "(Pro prázdné pole se použije %1)" -#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" msgstr "(Žádné uživatelské položky)" -#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" msgstr "(Žádní Älenové)" -#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 msgid "(No scrips)" msgstr "Žádné scripy" -#: html/Admin/Elements/EditTemplates:31 +#: html/Admin/Elements/EditTemplates:30 msgid "(No templates)" msgstr "(Žádné vzory)" -#: html/Ticket/Update.html:85 +#: 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 "(ZaÅ¡le skrytou kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" @@ -292,11 +362,11 @@ msgstr "(ZaÅ¡le skrytou kopii této aktualizace mezerami oddÄ›lenému seznamu e- 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 "(ZaÅ¡le skrytou kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" -#: html/Ticket/Create.html:79 +#: 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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. Tito lidé <b>budou</b> dostávat budoucí aktualizace.)" -#: html/Ticket/Update.html:81 +#: 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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>NemÄ›ní</b> příjemce budoucích aktualizací" @@ -304,43 +374,51 @@ msgstr "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adr 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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" -#: html/Ticket/Create.html:69 +#: 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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. Tito lidé <b>budou</b> dostávat budoucí aktualizace.)" -#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(prázdná)" -#: html/Admin/Users/index.html:39 +#: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "žádné jméno nebylo vypsáno" -#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(bez pÅ™edmÄ›tu)" -#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +#: 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 "(bez hodnoty)" -#: html/Ticket/Elements/EditLinks:116 +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(jen jeden požadavek)" -#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(oÄekávájící schválení)" -#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(jiné oÄekávající požadavky)" -#: html/Admin/Users/Modify.html:50 +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "(povinné)" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(nepojmenováno)" @@ -352,76 +430,96 @@ msgstr "25 mnou vlastnÄ›ných nejdůležitÄ›jších požadavků..." msgid "25 highest priority tickets I requested..." msgstr "25 mnou žádaných nejdůležitÄ›jších požadavků..." -#: html/Ticket/Elements/ShowBasics:32 +#: html/Ticket/Elements/ShowBasics:31 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:27 +#: html/Elements/SelectTicketTypes:26 msgid "<% $_ %>" msgstr "<% $_ %>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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=\"Nový požadavek v\"> %1" -#: etc/initialdata:203 +#: etc/initialdata:218 msgid "A blank template" msgstr "Prázdný vzor" -#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "ACE nenalezeno" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "ACE mohou být jen vytvářeny nebo ruÅ¡eny." -#: bin/rt-commit-handler:755 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "PÅ™eruÅ¡eno k zamezení nežádoucích zmÄ›n požadavku.\\n" -#: html/User/Elements/Tabs:32 +#: html/User/Elements/Tabs:31 msgid "About me" msgstr "O mnÄ›" -#: html/Admin/Users/Modify.html:80 +#: html/Admin/Users/Modify.html:79 msgid "Access control" msgstr "Řízení přístupu" -#: html/Admin/Elements/EditScrip:57 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "Akce" -#: lib/RT/Scrip_Overlay.pm:147 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Akce %1 nenalezena" -#: bin/rt-crontool:123 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "Akce provedena." -#: bin/rt-crontool:119 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "Akce pÅ™ipravena..." -#: html/Search/Bulk.html:92 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "PÅ™idat AdminCc" -#: html/Search/Bulk.html:90 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "PÅ™idat Cc" -#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "PÅ™idat další soubory" -#: html/Search/Bulk.html:88 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "PÅ™idat Žadatele" +#: html/Admin/Elements/AddCustomFieldValue:24 +msgid "Add Value" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Add a new a global scrip" msgstr "PÅ™idat nový globální scrip" @@ -430,19 +528,23 @@ msgstr "PÅ™idat nový globální scrip" msgid "Add a scrip to this queue" msgstr "PÅ™idat scrip k této frontÄ›" -#: html/Admin/Global/Scrip.html:55 +#: html/Admin/Global/Scrip.html:54 msgid "Add a scrip which will apply to all queues" msgstr "PÅ™idat scrip do vÅ¡ech front" -#: html/Search/Bulk.html:118 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "PÅ™idat komentáře Äi odpovÄ›di k vybraným požadavkům" -#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 msgid "Add members" msgstr "PÅ™idat Äleny" -#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 msgid "Add new watchers" msgstr "PÅ™idat nové pozorovatele" @@ -450,37 +552,37 @@ msgstr "PÅ™idat nové pozorovatele" msgid "AddNextState" msgstr "PÅ™idatDalšíStav" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Uživatel pÅ™idán do této fronty jako %1" -#: lib/RT/Ticket_Overlay.pm:1454 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Uživatel pÅ™idán k tomuto požadavku jako %1" -#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "Adresa1" -#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "Adresa2" -#: html/Ticket/Create.html:74 +#: html/Ticket/Create.html:73 msgid "Admin Cc" msgstr "Admin Cc" -#: etc/initialdata:274 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "Administrativní komentář" -#: etc/initialdata:256 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "Administrativní korespondence" -#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 msgid "Admin queues" msgstr "Správa/Front" @@ -488,7 +590,7 @@ msgstr "Správa/Front" msgid "Admin users" msgstr "Správa/Uživatelů" -#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 msgid "Admin/Global configuration" msgstr "Správa/Globální konfigurace" @@ -496,7 +598,7 @@ msgstr "Správa/Globální konfigurace" msgid "Admin/Groups" msgstr "Správa/Skupin" -#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "Správa/Front/Základních údajů" @@ -504,7 +606,7 @@ msgstr "Správa/Front/Základních údajů" msgid "AdminAllPersonalGroups" msgstr "Spravovat vÅ¡echny osobní skupiny" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "AdminCc" @@ -516,7 +618,7 @@ msgstr "AdminComment" msgid "AdminCorrespondence" msgstr "AdminCorrespondence" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "Spravovat uživatelem definované položky" @@ -528,27 +630,31 @@ msgstr "Spravovat skupinu" msgid "AdminGroupMembership" msgstr "Spravovat Älenství ve skupinách" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "AdminOwnPersonalGroups" msgstr "Spravovat vlastní osobní skupiny" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "Spravovat frontu" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "AdminUsers" msgstr "Spravovat uživatele" -#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "Administrativní Cc" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "PokroÄilé Vyhledávání" -#: html/Elements/SelectDateRelation:36 +#: html/Elements/SelectDateRelation:35 msgid "After" msgstr "Po" @@ -556,11 +662,15 @@ msgstr "Po" msgid "Age" msgstr "Stáří" -#: html/Admin/Elements/EditCustomFields:96 +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "VÅ¡echny uživatelské položky" -#: html/Admin/Queues/index.html:53 +#: html/Admin/Queues/index.html:52 msgid "All Queues" msgstr "VÅ¡echny Fronty" @@ -568,24 +678,31 @@ msgstr "VÅ¡echny Fronty" msgid "Always sends a message to the requestors independent of message sender" msgstr "Vždy posílá zprávu žadatelům nezávisle na odesílateli" +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + #: html/Elements/Tabs:58 msgid "Approval" msgstr "Schvalování" -#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 #. ($Ticket->Id, $Ticket->Subject) #. ($ticket->id, $msg) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Approval #%1: %2" msgstr "Schválení #%1: $2" -#: html/Approvals/index.html:54 +#: html/Approvals/index.html:53 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Schválení #$1: Poznámky neuloženy kvůli systémové chybÄ›" -#: html/Approvals/index.html:52 +#: html/Approvals/index.html:51 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Schválení #%1: Poznámky uloženy" @@ -594,15 +711,23 @@ msgstr "Schválení #%1: Poznámky uloženy" msgid "Approval Details" msgstr "Detaily schválení" +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "Schvalovací diagram" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "Schválit" -#: etc/initialdata:431 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "Poznámky schvalovatele: %1" @@ -610,47 +735,52 @@ msgstr "Poznámky schvalovatele: %1" msgid "Apr." msgstr "dub" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "VzestupnÄ›" -#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "PÅ™iložit" -#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "PÅ™ipojit soubor" -#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "PÅ™ipojený soubor" -#: html/SelfService/Attachment/dhandler:36 +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Příloha '%1' nemůže být nahrána" -#: lib/RT/Transaction_Overlay.pm:443 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "Příloha vytvoÅ™ena" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "Jméno souboru přílohy" -#: html/Ticket/Elements/ShowAttachments:26 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "Přílohy" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "srp" -#: html/Admin/Elements/ModifyUser:66 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "AuthSystem" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "Automatická odpovÄ›Ä" @@ -662,37 +792,39 @@ msgstr "Automaticky odpovÄ›z žadatelům" msgid "AutoreplyToRequestors" msgstr "Automatická odpovÄ›Ä Å¾adatelům" +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Chybná PGP signatura: %1\\n" -#: html/SelfService/Attachment/dhandler:40 +#: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "Chybný identifikátor přílohy. Nelze nalézt přílohu'%1'\\n" -#: bin/rt-commit-handler:827 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "Chybná data v %1" -#: html/SelfService/Attachment/dhandler:43 -#. ($trans, $AttachmentObj->TransactionId()) +#: NOT FOUND IN SOURCE msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Chybné Äíslo transakce u přílohy. %1 má být %2\\n" -#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +#: 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 "Základní údaje" -#: html/Ticket/Update.html:83 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "Neopomeňte uložit vaÅ¡e zmÄ›ny" -#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "PÅ™ed" @@ -700,72 +832,84 @@ msgstr "PÅ™ed" msgid "Begin Approval" msgstr "ZaÄátek schvalování" -#: etc/initialdata:202 +#: etc/initialdata:217 msgid "Blank" msgstr "Prázdný" -#: html/Search/Listing.html:79 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "Uložitelné URL pro toto hledání" -#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "Zkrácené hlaviÄky" -#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 msgid "Bulk ticket update" msgstr "Hromadná úprava požadavků" -#: lib/RT/User_Overlay.pm:1331 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "Nelze mÄ›nit systémové uživatele" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "Může tento uživatel vidÄ›t tuto frontu" -#: lib/RT/CustomField_Overlay.pm:144 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "Uživatelské položce nelze pÅ™idat hodnotu beze jména" -#: lib/RT/Link_Overlay.pm:132 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "Požadavek nelze svázat se sebou samým" -#: lib/RT/Ticket_Overlay.pm:2787 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Nelze slouÄit do slouÄeného požadavku. To by se vám nemÄ›lo nikdy stát." -#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "Nelze zadat zároveň zdroj i cíl" -#: html/autohandler:112 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "Nelze vytvoÅ™it uživatele: %1" -#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +#: 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:31 +#: html/SelfService/Prefs.html:30 msgid "Change password" msgstr "ZmÄ›na hesla" -#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "ZaÅ¡rtnutím odstraníte" -#: html/Admin/Elements/SelectRights:31 +#: html/Admin/Elements/SelectRights:30 msgid "Check box to revoke right" msgstr "ZatrhnÄ›te k odebrání práva" -#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +#: 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 "Potomci" -#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "MÄ›sto" @@ -773,19 +917,27 @@ msgstr "MÄ›sto" msgid "Closed" msgstr "VyÅ™eÅ¡eno" -#: html/SelfService/Elements/Tabs:60 +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "UzavÅ™ené požadavky" +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Command not understood!\\n" msgstr "Neznámý příkaz!\\n" -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "Komentovat" -#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "Adresa pro komentáře" @@ -793,40 +945,39 @@ msgstr "Adresa pro komentáře" msgid "Comment not recorded" msgstr "Komentář nezaznamenán" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "Komentovat požadavky" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "Komentovat požadavky" -#: html/Admin/Elements/ModifyUser:35 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "Poznámky" -#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "Komentář (Neposílá se žadatelům)" -#: html/Search/Bulk.html:122 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "Komentář (nepoÅ¡le se žadatelům)" -#: html/Elements/ViewUser:27 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "Poznámky o %1" -#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "Poznámky o tomto uživateli" -#: lib/RT/Transaction_Overlay.pm:545 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "Komentáře pÅ™idány" -#: lib/RT/Action/Generic.pm:140 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "Commit v zárodku" @@ -838,11 +989,11 @@ msgstr "Omezení pÅ™ekladu" msgid "Condition" msgstr "Podmínka" -#: bin/rt-crontool:109 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "Podmínky splnÄ›ny..." -#: lib/RT/Scrip_Overlay.pm:160 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "Podmínka nenalezena" @@ -850,11 +1001,11 @@ msgstr "Podmínka nenalezena" msgid "Configuration" msgstr "Správa" -#: html/SelfService/Prefs.html:33 +#: html/SelfService/Prefs.html:32 msgid "Confirm" msgstr "Potvrzení" -#: html/Admin/Elements/ModifyUser:60 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "Kontaktní informaÄní systém" @@ -862,19 +1013,27 @@ msgstr "Kontaktní informaÄní systém" msgid "Contacted date '%1' could not be parsed" msgstr "Datum kontaktu '%1' nemůže být rozpoznáno" -#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "Obsah" -#: etc/initialdata:266 +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "Korespondence" -#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "Adresa pro korespondenci" -#: lib/RT/Transaction_Overlay.pm:541 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "Korespondence zaznamenána" @@ -882,33 +1041,33 @@ msgstr "Korespondence zaznamenána" msgid "Correspondence not recorded" msgstr "Korespondence nebyla zaznamenána" -#: lib/RT/Ticket_Overlay.pm:3458 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "Nelze pÅ™idat novou hodnotu uživatelské položky požadavku. " -#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "Nelze zmÄ›nit vlastníka. " -#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "Nelze vytvoÅ™it Uživatelskou položku" -#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "Nelze vytvoÅ™it skupinu" -#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "Nelze vytvoÅ™it vzor: %1" -#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "Nelze vytvoÅ™it požadavek. Nenastavena fronta" -#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +#: 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 "Nelze vytvoÅ™it uživatele" @@ -920,11 +1079,11 @@ msgstr "Nelze nalézt požadavek s identifikátorem %1" msgid "Could not find group %1." msgstr "Nelze nalézt skupinu %1." -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "Tohoto uživatele nelze nalézt nebo vytvoÅ™it" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "Nelze naléze tohoto uživatele" @@ -932,35 +1091,38 @@ msgstr "Nelze naléze tohoto uživatele" msgid "Could not find user %1." msgstr "Nelze nalézt uživatele %1." -#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "Nelze naÄíst skupinu" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Tento uživatel nemůže být %1 této fronty" -#: lib/RT/Ticket_Overlay.pm:1443 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Tento uživatel nemůže být %1 tohoto požadavku" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Tento uživatel nemůže být odstranÄ›n jako %1 této fronty" -#: lib/RT/Ticket_Overlay.pm:1559 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "Tento uživatel nemůže být odstranÄ›n jako %1 tohoto požadavku" -#: lib/RT/Group_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "Do skupiny nelze pÅ™idat Älena" -#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Nelze vytvoÅ™it transakci: %1" @@ -973,15 +1135,15 @@ msgstr "Nelze zjistit co dÄ›lat s gpg odpovÄ›dí\\n" msgid "Couldn't find group\\n" msgstr "Skupinu nelze nalézt\\n" -#: lib/RT/Interface/Web.pm:866 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "Nemohu nalézt sloupec" -#: lib/RT/Group_Overlay.pm:959 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "Tohoto uživatele nelze nalézt" -#: lib/RT/CustomField_Overlay.pm:175 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "Tuto hodnotu nelze nalézt" @@ -989,7 +1151,7 @@ msgstr "Tuto hodnotu nelze nalézt" msgid "Couldn't find user\\n" msgstr "Uživatele nelze nalézt\\n" -#: lib/RT/CurrentUser.pm:112 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Z uživatelské databáze nelze naÄíst %1.\\n" @@ -1002,21 +1164,21 @@ msgstr "KonfiguraÄní soubor RT '%1'nelze naÄíst %2" msgid "Couldn't load Scrips." msgstr "Scripy nelze naÄíst." -#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "Skupinu %1 nelze naÄíst" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "Vazbu nelze naÄíst" -#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "Frontu nelze naÄíst" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "Frontu %1 nelze naÄíst" @@ -1029,38 +1191,37 @@ msgstr "Scrip nelze naÄíst" msgid "Couldn't load template" msgstr "Vzor nelze naÄíst" -#: html/Admin/Users/Prefs.html:79 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "Uživatele (%1) nelze naÄíst" -#: html/SelfService/Display.html:166 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Požadavek '%1' nelze naÄíst" -#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "ZemÄ›" -#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +#: 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 "VytvoÅ™it" -#: etc/initialdata:128 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "VytvoÅ™it požadavky" -#: html/Admin/Elements/EditCustomField:58 +#: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "VytvoÅ™it uživatelskou položku" -#: html/Admin/Queues/CustomField.html:48 +#: html/Admin/Queues/CustomField.html:47 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "VytvoÅ™ení uživatelské položky pro frontu %1" -#: html/Admin/Global/CustomField.html:48 +#: html/Admin/Global/CustomField.html:47 msgid "Create a CustomField which applies to all queues" msgstr "VytvoÅ™ení uživatelské položky pro vÅ¡echny front" @@ -1072,11 +1233,11 @@ msgstr "VytvoÅ™it novou uživatelskou položku" msgid "Create a new global scrip" msgstr "VytvoÅ™it nový globální scrip" -#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 msgid "Create a new group" msgstr "VytvoÅ™it novou skupinu" -#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 msgid "Create a new personal group" msgstr "VytvoÅ™it novou vlastní skupinu" @@ -1092,11 +1253,11 @@ msgstr "VytvoÅ™it nový scrip" msgid "Create a new template" msgstr "VytvoÅ™it nový vzor" -#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 msgid "Create a new ticket" msgstr "VytvoÅ™ení nového požadavku" -#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "VytvoÅ™it nového uživatele" @@ -1108,36 +1269,40 @@ msgstr "VytvoÅ™it frontu" msgid "Create a queue called" msgstr "VytvoÅ™it frontu nazvanou" -#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +#: NOT FOUND IN SOURCE msgid "Create a request" msgstr "VytvoÅ™it požadavek" -#: html/Admin/Queues/Scrip.html:59 +#: html/Admin/Queues/Scrip.html:58 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "VytvoÅ™it scrips pro frontu %1" -#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 msgid "Create a template" msgstr "VytvoÅ™it vzor" -#: etc/initialdata:130 +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "" + +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "Vytvářet požadavky podle toho vzoru scripu" -#: html/SelfService/Create.html:81 +#: html/SelfService/Create.html:77 msgid "Create ticket" msgstr "VytvoÅ™it požadavek" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "Vytvářet požadavky v této frontÄ›" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "Vytvářet, mazat a mÄ›nit uživatelen definované položky" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "Vytvářet, mazat a mÄ›nit fronty" @@ -1145,23 +1310,23 @@ msgstr "Vytvářet, mazat a mÄ›nit fronty" msgid "Create, delete and modify the members of any user's personal groups" msgstr "Vytvářet, mazat a mÄ›nit Äleny uživatelských osobních skupin" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "Create, delete and modify the members of personal groups" msgstr "Vytvářet, mazat a mÄ›nit Äleny osobních skupin" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "Create, delete and modify users" msgstr "Vytvářen, mazat a mÄ›nit uživatele" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "VytvoÅ™it požadavek" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "VytvoÅ™eno" -#: html/Admin/Elements/EditCustomField:71 +#: html/Admin/Elements/EditCustomField:87 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Uživatelská položka %1 vytvoÅ™ena" @@ -1170,80 +1335,84 @@ msgstr "Uživatelská položka %1 vytvoÅ™ena" msgid "Created template %1" msgstr "Vzor %1 vytvoÅ™en" -#: html/Ticket/Elements/EditLinks:28 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "Aktuální relace" -#: html/Admin/Elements/EditScrips:30 +#: html/Admin/Elements/EditScrips:29 msgid "Current Scrips" msgstr "Aktuální scripy" -#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "Aktuální Älenové" -#: html/Admin/Elements/SelectRights:29 +#: html/Admin/Elements/SelectRights:28 msgid "Current rights" msgstr "Aktuální práva" -#: html/Search/Listing.html:71 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "Aktuální vyhledávací podmínky" -#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "Aktuální pozorovatelé" -#: html/Admin/Global/CustomField.html:55 +#: html/Admin/Global/CustomField.html:54 #. ($CustomField) msgid "Custom Field #%1" msgstr "Uživatelská položka #%1" -#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +#: 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 "Uživatelské položky" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "ÄŒistící kód uživatelské akce" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "Přípravný kód uživatelské akce" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "Uživatelská podmínka" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "Užitavelská položka %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Uživatelská položka %1 má hodnotu." -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Uživatelská položka %1 nemá hodnotu." -#: lib/RT/Ticket_Overlay.pm:3360 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Uživatelská položka %1 nenalezena" -#: html/Admin/Elements/EditCustomFields:197 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "Uživatelská položka smazána" -#: lib/RT/Ticket_Overlay.pm:3510 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "Uživatelská položka nenalezena" -#: lib/RT/CustomField_Overlay.pm:283 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "Hodnota %1 nemůže být nalezena v uživatelské položce %2" @@ -1252,23 +1421,23 @@ msgstr "Hodnota %1 nemůže být nalezena v uživatelské položce %2" msgid "Custom field value changed from %1 to %2" msgstr "Hodnota uživatelské položky zmÄ›nÄ›na z %1 na %2" -#: lib/RT/CustomField_Overlay.pm:185 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "Hodnota uživatelské položky nemůže být smazána" -#: lib/RT/CustomField_Overlay.pm:289 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "Hodnota uživatelské položky nemůže být nalezena" -#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "Hodnota uživatelské položky smazána" -#: lib/RT/Transaction_Overlay.pm:550 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "Uživatelská položka" -#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +#: 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 "Datumy" @@ -1280,76 +1449,92 @@ msgstr "pro" msgid "Default Autoresponse Template" msgstr "Implicitní vzor automatické odpovÄ›di" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Implicitní vzor automatické odpovÄ›di" -#: etc/initialdata:275 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "Implicitní vzor administrativního komentáře" -#: etc/initialdata:257 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "Implicitní vzor administrativní korespondence" -#: etc/initialdata:267 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "Implicitní korespondenÄní vzor" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "Implicitní transakÄní vzor" -#: lib/RT/Transaction_Overlay.pm:645 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "Defaulní: %1/%2 zmÄ›nÄ›no z %3 na %4" -#: html/User/Delegation.html:25 html/User/Delegation.html:28 +#: html/User/Delegation.html:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "Delegovat práva" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "Delegate specific rights which have been granted to you." msgstr "Delegovat specifická práva, která vám byla poskytnuta." -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "DelegateRights" msgstr "Delegovat práva" -#: html/User/Elements/Tabs:38 +#: html/User/Elements/Tabs:37 msgid "Delegation" msgstr "Pověření" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "Smazat" -#: lib/RT/Queue_Overlay.pm:90 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "Mazat požadavky" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "Smazat požadavek" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "Smazání tohoto objektu mohlo poruÅ¡it referenÄní integritu" -#: lib/RT/Queue_Overlay.pm:292 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "Smazání tohoto objektu by mohlo poruÅ¡it referenÄní integritu" -#: lib/RT/User_Overlay.pm:430 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "Smazání tohoto objektu by mohlo naruÅ¡it referenÄní integritu" -#: html/Approvals/Elements/Approve:46 +#: html/Approvals/Elements/Approve:44 msgid "Deny" msgstr "Zamítnout" -#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +#: 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 "Je rekvizitou pro" @@ -1357,68 +1542,99 @@ msgstr "Je rekvizitou pro" msgid "Dependencies: \\n" msgstr "Závistlosti: \\n" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "Závisející na" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "SestupnÄ›" -#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 msgid "Describe the issue below" msgstr "PopiÅ¡te případ níže" -#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +#: 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 "Popis" -#: html/SelfService/Elements/MyRequests:44 +#: NOT FOUND IN SOURCE msgid "Details" msgstr "Podrobnosti" -#: html/Ticket/Elements/Tabs:85 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "Zobrazit" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "Zobrazit přístupová práva" -#: lib/RT/Queue_Overlay.pm:75 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "Zobrazovat scrips vzory pro tuto frontu" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "Zobrazovat scripy pro tuto frontu" -#: html/Ticket/Elements/ShowHistory:35 +#: html/Ticket/Elements/ShowHistory:34 msgid "Display mode" msgstr "Režim zobrazení" -#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 -#. ($Ticket->id) +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Zobraz požadavek #%1" -#: lib/RT/System.pm:54 +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + +#: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "DÄ›lat cokoli a vÅ¡echno" -#: html/Elements/Refresh:30 +#: html/Elements/Refresh:29 msgid "Don't refresh this page." msgstr "NeobÄerstvovat tuto stránku." -#: html/Search/Elements/PickRestriction:114 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "Nezobrazit výsledky hledání" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "Stáhnout" -#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +#: 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 "Termín dokonÄení" @@ -1426,8 +1642,7 @@ msgstr "Termín dokonÄení" msgid "Due date '%1' could not be parsed" msgstr "Datum termínu dokonÄení '%1' nemůže být rozpoznán" -#: bin/rt-commit-handler:754 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "CHYBA: Nelze naÄíst požadavek '%1': %2.\\n" @@ -1440,20 +1655,28 @@ msgstr "Upravit" msgid "Edit Custom Fields for %1" msgstr "Upravit uživatelské položky pro %1" -#: html/Ticket/ModifyLinks.html:36 -msgid "Edit Relationships" +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "Upravit relace" +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + #: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Upravit vzory pro frontu %1" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "Upravit scprips" -#: html/Admin/Global/index.html:46 +#: html/Admin/Global/index.html:45 msgid "Edit system templates" msgstr "Úprava systémových vzorů" @@ -1461,28 +1684,30 @@ msgstr "Úprava systémových vzorů" msgid "Edit templates for %1" msgstr "Upravit vzory pro %1" -#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "Úprava konfigurace pro frontu %1" -#: html/Admin/Elements/ModifyUser:25 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "Úprava konfigurace pro uživatele %1" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/Elements/EditCustomField:90 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Úprava uživatelské položky %1" -#: html/Admin/Groups/Members.html:32 +#: html/Admin/Groups/Members.html:31 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Úprava Älenství ve skupinÄ› %1" -#: html/User/Groups/Members.html:129 +#: html/User/Groups/Members.html:128 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Úprava Älenství ve vlastní skupinÄ› %1" @@ -1491,112 +1716,140 @@ msgstr "Úprava Älenství ve vlastní skupinÄ› %1" msgid "Editing template %1" msgstr "Úprava vzoru %1" -#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "Zdroj Äi cíl musí být zadány" -#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "Email" -#: lib/RT/User_Overlay.pm:188 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "Email adresa je použita" -#: html/Admin/Elements/ModifyUser:42 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "Email adresa" -#: html/Admin/Elements/ModifyUser:54 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "Kódování emailu" -#: html/Admin/Elements/EditCustomField:36 +#: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Povolena (zruÅ¡ením zatrhnutí zablokujete tuto uživatelskou položky)" -#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 msgid "Enabled (Unchecking this box disables this group)" msgstr "Povolena (zruÅ¡ením zatrhnutí zablokujete tuto skupinu)" -#: html/Admin/Queues/Modify.html:84 +#: html/Admin/Queues/Modify.html:83 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Povoleno (zruÅ¡ení zatrhnutí zablokuje tuto frontu)" -#: html/Admin/Elements/EditCustomFields:99 +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Povolené uživatelské položky" -#: html/Admin/Queues/index.html:56 +#: html/Admin/Queues/index.html:55 msgid "Enabled Queues" msgstr "Povolené fronty" -#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#: 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 "Povolen stav %1" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "Vyplnit více hodnot" -#: lib/RT/CustomField_Overlay.pm:358 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "Vyplnit jednu hodnotu" -#: html/Ticket/Elements/EditLinks:112 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Zadejte požadavky Äi URI se nimiž požadavky svázat. OddÄ›lte více položek mezerami." -#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "Chyba" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "Chyba v parametrech do Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "Chyba v parametrech do Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1356 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Chyba v parametrech do Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1532 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "Chyba v parametrech do Ticket->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "Kdokoli" -#: bin/rt-crontool:194 +#: bin/rt-crontool:190 msgid "Example:" msgstr "Příklad:" -#: html/Admin/Elements/ModifyUser:64 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "Identifikátor externí autentizace" -#: html/Admin/Elements/ModifyUser:58 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "Identifikátor externího kontaktu" -#: html/Admin/Users/Modify.html:73 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "Doplňkové údaje" -#: lib/RT/User_Overlay.pm:302 +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Nepovedlo se nalézt uživatele 'Privilegované' pseudoskupiny." -#: lib/RT/User_Overlay.pm:309 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Nepovedlo se nalézt uživatele 'Neprivilegované' pseudoskupiny" -#: bin/rt-crontool:138 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Nepovedlo se nahrát modul %1. (%2)" @@ -1605,31 +1858,35 @@ msgstr "Nepovedlo se nahrát modul %1. (%2)" msgid "Feb." msgstr "úno" +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "Kon" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "Koncová priorita" -#: lib/RT/Ticket_Overlay.pm:1162 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "Koncová priorita" -#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "Najít skupiny které" -#: html/Elements/Quicksearch:25 +#: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "Najít nové/otevÅ™ené požadavky" -#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "Najít ty, jejichž" -#: html/Search/Listing.html:108 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "Nalézt požadavky" @@ -1637,44 +1894,44 @@ msgstr "Nalézt požadavky" msgid "Finish Approval" msgstr "ZávereÄné schválení" -#: html/Ticket/Elements/Tabs:58 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "První" -#: html/Search/Listing.html:41 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "První stránka" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "Foo Bar Baz" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "Vynutit zmÄ›nu" -#: html/Search/Listing.html:106 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "Nalezen%quant(%1,,y,o) %numf(%1) %quant(%1,požadavek,požadavky,požadavků)" -#: lib/RT/Interface/Web.pm:868 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "Nalezen objekt" -#: html/Admin/Elements/ModifyUser:44 +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "Kontaktní údaje ve volné podobÄ›" -#: lib/RT/CustomField_Overlay.pm:38 +#: lib/RT/CustomField_Overlay.pm:37 msgid "FreeformMultiple" msgstr "Volná forma vícenásobnÄ›" -#: lib/RT/CustomField_Overlay.pm:37 +#: lib/RT/CustomField_Overlay.pm:36 msgid "FreeformSingle" msgstr "Volná formu jedinkrát" @@ -1682,20 +1939,24 @@ msgstr "Volná formu jedinkrát" msgid "Fri." msgstr "pá" -#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 msgid "Full headers" msgstr "Celé hlaviÄky" +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "Aktuální uživatel se získává z PGP podpisu\\n" -#: lib/RT/Transaction_Overlay.pm:595 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "Dán %1" -#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 msgid "Global" msgstr "Globální" @@ -1703,12 +1964,16 @@ msgstr "Globální" msgid "Global Scrips" msgstr "Globální Scrips" -#: html/Admin/Elements/SelectTemplate:38 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Globální vzor: %1" -#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "SpusÅ¥!" @@ -1716,15 +1981,15 @@ msgstr "SpusÅ¥!" msgid "Good pgp sig from %1\\n" msgstr "Správný PGP podpis od %1\\n" -#: html/Search/Listing.html:50 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "PÅ™ejít na stránku" -#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "PÅ™ejít na požadavek" -#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "Skupina" @@ -1732,15 +1997,15 @@ msgstr "Skupina" msgid "Group %1 %2: %3" msgstr "Skupina %1 %2: %3" -#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +#: 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 "Práva skupiny" -#: lib/RT/Group_Overlay.pm:965 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "Skupina již má Älena" -#: html/Admin/Groups/Modify.html:77 +#: html/Admin/Groups/Modify.html:76 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Skupina nemůže být založena: %1" @@ -1749,11 +2014,11 @@ msgstr "Skupina nemůže být založena: %1" msgid "Group created" msgstr "Skupina vytvoÅ™ena" -#: lib/RT/Group_Overlay.pm:1133 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "Skupina nemá takového Älena" -#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +#: 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 "Skupina nenalezena" @@ -1765,36 +2030,36 @@ msgstr "Skupina nenalezena.\\n" msgid "Group not specified.\\n" msgstr "Skupina neudána.\\n" -#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +#: 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 "Skupiny" -#: lib/RT/Group_Overlay.pm:971 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "Skupiny nemohou být svými Äleny" -#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "Ahoj!" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "Ahoj, %1" -#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "Historie" -#: html/Admin/Elements/ModifyUser:68 +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "Telefon domů" -#: html/Elements/Tabs:46 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "Domovská stránka" -#: lib/RT/Base.pm:74 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "Mám %quant(%1,míchaÄka,míchaÄky,míchaÄek)" @@ -1804,63 +2069,75 @@ msgid "I have [quant,_1,concrete mixer]." msgstr "I have [quant,_1,concrete mixer]." #msgstr "Mám [quant,_1,MíchaÄku na beton,MíchaÄky na beton,MíchaÄek na beton]." -#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 msgid "Id" msgstr "Identifikátor" -#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "Identita" -#: etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Odmítni původce a zruÅ¡ stávající schválení, bylo-li zamítnuto schválení" -#: bin/rt-crontool:190 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "Byl-li tento nástroj setgid, místní uživatel jej mohl použit k získaní administrativního přístupu k RT" -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: 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 "Pokud jste zmÄ›nili cokoli nahoÅ™e, nezapomeňte" -#: lib/RT/Interface/Web.pm:860 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "Neplatná hodnota pro %1" -#: lib/RT/Interface/Web.pm:863 +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "NemÄ›nitelná položka" -#: html/Admin/Elements/EditCustomFields:74 +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Zahrnout do výpisu blokované uživatelské položky" -#: html/Admin/Queues/index.html:43 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "Zahrnout blokované fronty do výpisu." -#: html/Admin/Users/index.html:47 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "Zahrnout blokované uživatele do vyhledávání." -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "PoÄáteÄní priorita" -#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "PoÄáteÄní priorita" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "Chyba na vstupu" -#: lib/RT/Ticket_Overlay.pm:3729 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "VnitÅ™ní chyba" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "VnitÅ™ní chyba: %1" @@ -1869,48 +2146,48 @@ msgstr "VnitÅ™ní chyba: %1" msgid "Invalid Group Type" msgstr "Neplatný typ skupiny" -#: lib/RT/Principal_Overlay.pm:128 +#: lib/RT/Principal_Overlay.pm:127 msgid "Invalid Right" msgstr "Neplatné právo" -#: lib/RT/Interface/Web.pm:865 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "Neplatná data" -#: lib/RT/Ticket_Overlay.pm:438 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Neplatný vlastník. Použije se 'nobody'." -#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "Neplatná fronta" -#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +#: 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 "Neplatné právo" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "Neplatná hodnota pro %1" -#: lib/RT/Ticket_Overlay.pm:3367 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "Neplatná hodnota pro uživatelskou položku" -#: lib/RT/Ticket_Overlay.pm:345 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "Neplatná hodnota pro stav" -#: bin/rt-crontool:191 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "Je velmi důležité, aby neprivilegovaní uživatelé nemohli spustit tento nástroj." -#: bin/rt-crontool:192 +#: 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 "Pro spuÅ¡tÄ›ní tohoto nástroje se doporuÄuje založení neprivilegovaného UNIX uživatele se správným skupinovým Älenstvím a přístupem do RT." -#: bin/rt-crontool:163 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "Používá nÄ›kolik parametrů:" @@ -1930,7 +2207,7 @@ msgstr "PÅ™idat se Äi odebrat z této skupiny" msgid "Jul." msgstr "Äec" -#: html/Ticket/Elements/Tabs:99 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "Maxi" @@ -1942,39 +2219,47 @@ msgstr "Äen" msgid "Keyword" msgstr "KlíÄové slovo" -#: html/Admin/Elements/ModifyUser:52 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "Jazyk" -#: html/Ticket/Elements/Tabs:73 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "Poslední" -#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "Poslední kontakt" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "Naposled kontaktován" -#: html/Search/Elements/TicketHeader:41 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "Naposled upozornÄ›n" -#: html/Elements/SelectDateType:30 +#: html/Elements/SelectDateType:29 msgid "Last Updated" msgstr "Naposled aktualizován" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "Zbývá" -#: html/Admin/Users/Modify.html:83 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" msgstr "Umožnit tomuto uživateli přístup k RT" -#: html/Admin/Users/Modify.html:87 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" msgstr "Umožnit dávat tomuto uživateli práva" @@ -1986,112 +2271,124 @@ msgstr "Vlastník omezen na %1 %2" msgid "Limiting queue to %1 %2" msgstr "Fronta omezena na %1 %2" -#: lib/RT/Ticket_Overlay.pm:2697 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "Vazba již existuje" -#: lib/RT/Ticket_Overlay.pm:2709 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "Vazba nemůže být vytvoÅ™ena" -#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "Vazba vytvoÅ™ena (%1)" -#: lib/RT/Ticket_Overlay.pm:2638 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "Vazba zruÅ¡ena (%1)" -#: lib/RT/Ticket_Overlay.pm:2644 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "Vazba nenalezena" -#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Svázat požadavek #%1" -#: html/Ticket/Elements/Tabs:97 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "Vazby" -#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "UmístÄ›ní" -#: lib/RT.pm:158 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Záznamový adresář %1 nenalezen nebo doň nemůže být zapisováno.\\ RT nemůže běžet." -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "PÅ™ihlášen jako %1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +#: 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 "PÅ™ihlásit" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "Odhlásit" -#: html/Search/Bulk.html:86 +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "Nastavit vlastníka" -#: html/Search/Bulk.html:102 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "Nastavit stav" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "Nastavit datum termínu dokonÄení" -#: html/Search/Bulk.html:110 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "Nastavit datum vyÅ™eÅ¡ení" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "Nastavit datum, kdy zaÄal" -#: html/Search/Bulk.html:106 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "Nastavit datum, kdy zaÄne" -#: html/Search/Bulk.html:108 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "Nastavit datum posledního kontaktu" -#: html/Search/Bulk.html:99 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "Nastavit prioritu" -#: html/Search/Bulk.html:100 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "Nastavit frontu" -#: html/Search/Bulk.html:98 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "Nastavit pÅ™edmÄ›t" -#: html/Admin/index.html:33 +#: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "Správa skupin a Älenství v nich" -#: html/Admin/index.html:39 +#: html/Admin/index.html:38 msgid "Manage properties and configuration which apply to all queues" msgstr "Správa vlastností a konfigurací platných ve vÅ¡ech frontách" -#: html/Admin/index.html:36 +#: html/Admin/index.html:35 msgid "Manage queues and queue-specific properties" msgstr "Správa front a jim přísluÅ¡ných vlastností" -#: html/Admin/index.html:30 +#: html/Admin/index.html:29 msgid "Manage users and passwords" msgstr "Správa uživatelů a hesel" @@ -2103,55 +2400,92 @@ msgstr "bÅ™e" msgid "May." msgstr "kvÄ›" -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "ÄŒlen pÅ™idán" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "ÄŒlen odebrán" -#: lib/RT/Group_Overlay.pm:1144 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "ÄŒlen neodebrán" -#: html/Elements/SelectLinkType:26 +#: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "ÄŒlen" -#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "ÄŒlenové" -#: lib/RT/Ticket_Overlay.pm:2843 +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "SlouÄení úspěšné" -#: lib/RT/Ticket_Overlay.pm:2804 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "SlouÄení se nepodaÅ™ilo. Nelze nastavit EffectiveId" -#: html/Ticket/Elements/EditLinks:115 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "SlouÄit do" -#: html/Ticket/Update.html:102 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "Zpráva" -#: lib/RT/Interface/Web.pm:867 +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "Chybí primární klíÄ?: %1" -#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "Mobilní telefon" -#: html/Admin/Elements/ModifyUser:72 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "Mobilní telefon" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "Upravovat seznam přístupových práv" @@ -2159,15 +2493,27 @@ msgstr "Upravovat seznam přístupových práv" msgid "Modify Custom Field %1" msgstr "Upravit uživatelskou položku %1" -#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "Úprava uživatelských položek pro vÅ¡echny fronty" -#: lib/RT/Queue_Overlay.pm:73 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "Upravovat vzory scripů této fronty" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "Upravovat scripů této fronty" @@ -2175,39 +2521,43 @@ msgstr "Upravovat scripů této fronty" msgid "Modify Template %1" msgstr "Upravovat vzor %1" -#: html/Admin/Queues/CustomField.html:45 +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + +#: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "Upravovat uživatelskou položku pro frontu %1" -#: html/Admin/Global/CustomField.html:53 +#: html/Admin/Global/CustomField.html:52 msgid "Modify a CustomField which applies to all queues" msgstr "Upravovat uživatelskou položku pro vÅ¡echny fronty" -#: html/Admin/Queues/Scrip.html:54 +#: html/Admin/Queues/Scrip.html:53 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Upravovat scrip pro frontu %1" -#: html/Admin/Global/Scrip.html:48 +#: html/Admin/Global/Scrip.html:47 msgid "Modify a scrip which applies to all queues" msgstr "Upravovat scrip platný ve vÅ¡ech frontách" -#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Upravit datumy pro #%1" -#: html/Ticket/ModifyDates.html:35 +#: html/Ticket/ModifyDates.html:34 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Úprav datumů pro požadavek # %1" -#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 msgid "Modify global group rights" msgstr "Úprava globálních skupinových práv" -#: html/Admin/Global/GroupRights.html:33 +#: html/Admin/Global/GroupRights.html:32 msgid "Modify global group rights." msgstr "Úprava globálních skupinových práv." @@ -2215,11 +2565,11 @@ msgstr "Úprava globálních skupinových práv." msgid "Modify global scrips" msgstr "Úprava globálních scrips" -#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 msgid "Modify global user rights" msgstr "Úprava globálních uživatelských práv" -#: html/Admin/Global/UserRights.html:33 +#: html/Admin/Global/UserRights.html:32 msgid "Modify global user rights." msgstr "Úprava globálních uživatelských práv." @@ -2227,12 +2577,12 @@ msgstr "Úprava globálních uživatelských práv." msgid "Modify group metadata or delete group" msgstr "Upravovat metadata skupiny nebo smazat skupinu" -#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#: 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 "Úprava skupinových práv pro %1" -#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Úprava skupinových práv pro frontu %1" @@ -2241,74 +2591,74 @@ msgstr "Úprava skupinových práv pro frontu %1" msgid "Modify membership roster for this group" msgstr "Upravovat seznam Älenů pro tuto skupinu" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "Modify one's own RT account" msgstr "Upravovat vlastní RT úÄet" -#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Úprava uživatelů fronty %1" -#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#: 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 "Úprava uživatelů souvisejících s požadavkem #%1" -#: html/Admin/Queues/Scrips.html:44 +#: html/Admin/Queues/Scrips.html:45 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Úprava scrips pro frontu %1" -#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 msgid "Modify scrips which apply to all queues" msgstr "Upravovat scripy platné ve vÅ¡ech frontách" -#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#: 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 "Úprava vzoru %1" -#: html/Admin/Global/Templates.html:44 +#: html/Admin/Global/Templates.html:43 msgid "Modify templates which apply to all queues" msgstr "Upravit vzory pro vÅ¡echny fronty" -#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 #. ($Group->Name) msgid "Modify the group %1" msgstr "Úprava skupiny %1" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "Upravovat pozorovatele fronty" -#: html/Admin/Users/Modify.html:236 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Úprava uživatele %1" -#: html/Ticket/ModifyAll.html:37 +#: html/Ticket/ModifyAll.html:36 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Úprava požadavku # %1" -#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Úprava požadavku #%1" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "Upravovat požadavky" -#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#: 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 "Úprava uživatelských práv pro skupinu %1" -#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Úprava skupinových práv pro frontu %1" @@ -2317,7 +2667,7 @@ msgstr "Úprava skupinových práv pro frontu %1" msgid "Modify watchers for queue '%1'" msgstr "Úprava pozorovatelů fronty '%1'" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "Upravovat seznam přístupových práv" @@ -2325,23 +2675,23 @@ msgstr "Upravovat seznam přístupových práv" msgid "ModifyOwnMembership" msgstr "Upravovat Älenství ve skupinÄ›" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "Upravovat pozorovale fronty" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "Upravovat scripy" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "ModifySelf" msgstr "Upravovat sebe" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "Upravovat vzor" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "Upravovat požadavek" @@ -2349,40 +2699,49 @@ msgstr "Upravovat požadavek" msgid "Mon." msgstr "po" -#: html/Ticket/Elements/ShowRequestor:42 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "Více o %1" -#: html/Admin/Elements/EditCustomFields:61 +#: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "Dát níže" -#: html/Admin/Elements/EditCustomFields:53 +#: html/Admin/Elements/EditCustomFields:52 msgid "Move up" msgstr "Dát výše" -#: html/Admin/Elements/SelectSingleOrMultiple:27 +#: html/Admin/Elements/SelectSingleOrMultiple:26 msgid "Multiple" msgstr "Vícenásobná" -#: lib/RT/User_Overlay.pm:179 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "Nutno zadat atribut 'Jméno'" +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "Mnou schválené" -#: html/Approvals/index.html:25 html/Approvals/index.html:26 +#: html/Approvals/index.html:24 html/Approvals/index.html:25 msgid "My approvals" msgstr "Mnou schválené" -#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "Jméno" -#: lib/RT/User_Overlay.pm:186 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "Jméno je použito" @@ -2394,55 +2753,59 @@ msgstr "Je tÅ™eba schválení systémového správce" msgid "Never" msgstr "Nikdy" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "Nové" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "Nové relace" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "Nové heslo" -#: etc/initialdata:311 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "Nová probíhající schválení" -#: html/Ticket/Elements/EditLinks:111 -msgid "New Relationships" -msgstr "Nové relace" +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" -#: html/Ticket/Elements/Tabs:36 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "Nové vyhledávání" -#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +#: 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 "VytvoÅ™it uživatelskou položku" -#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 msgid "New group" msgstr "Založit skupinu" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:31 msgid "New password" msgstr "Nové heslo" -#: lib/RT/User_Overlay.pm:639 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "Oznámení nového hesla zasláno" -#: html/Admin/Elements/QueueTabs:70 +#: html/Admin/Elements/QueueTabs:69 msgid "New queue" msgstr "VytvoÅ™ení fronty" -#: html/SelfService/Elements/Tabs:63 +#: NOT FOUND IN SOURCE msgid "New request" msgstr "Nový požadavek" -#: html/Admin/Elements/SelectRights:42 +#: html/Admin/Elements/SelectRights:41 msgid "New rights" msgstr "Nová práva" -#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +#: 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 "VytovÅ™ení scripu" @@ -2450,67 +2813,79 @@ msgstr "VytovÅ™ení scripu" msgid "New search" msgstr "Nové vyhledání" -#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +#: 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 "VytvoÅ™it vzor" -#: lib/RT/Ticket_Overlay.pm:2771 +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "Nový požadavek neexistuje" -#: html/Admin/Elements/UserTabs:52 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "VytvoÅ™it uživatele" -#: html/Admin/Elements/CreateUserCalled:26 +#: html/Admin/Elements/CreateUserCalled:25 msgid "New user called" msgstr "Nový uživatel jména" -#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 msgid "New watchers" msgstr "Nový pozorovatel" -#: html/Admin/Users/Prefs.html:42 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "Nové nastavení okna" -#: html/Ticket/Elements/Tabs:69 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "Další" -#: html/Search/Listing.html:48 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "Další stránka" -#: html/Admin/Elements/ModifyUser:50 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "PÅ™ezdívka" -#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "PÅ™ezdívka" -#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "Žádná uživatelská položka" -#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "Nedefinována žádná skupina" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "Nedefinována žádná fronta" -#: bin/rt-crontool:56 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "Žádný uživatel RT nenalezen. Prosím poraÄte se se správcem RT.\\n" -#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 msgid "No Template" msgstr "Žádný vzor" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "Neudán požadavek. PÅ™eruÅ¡uje se požadavek " @@ -2518,11 +2893,11 @@ msgstr "Neudán požadavek. PÅ™eruÅ¡uje se požadavek " msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "Neudán požadavek. PÅ™eruÅ¡ují se úpravy požadavku\\n\\n" -#: html/Approvals/Elements/Approve:47 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "bez akce" -#: lib/RT/Interface/Web.pm:862 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "Neudán sloupec" @@ -2530,57 +2905,60 @@ msgstr "Neudán sloupec" msgid "No command found\\n" msgstr "Příkaz nenalezen\\n" -#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "Poznámky k tomuto uživateli neudány" -#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "Žádná pÅ™ipojená korespondence" -#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#: 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 "Pro %1 není popis" -#: lib/RT/Users_Overlay.pm:151 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "Neudána skupina" -#: lib/RT/User_Overlay.pm:857 +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "Heslo nenastaveno" -#: lib/RT/Queue_Overlay.pm:259 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "Nedostatek práv k vytváření front" -#: lib/RT/Ticket_Overlay.pm:341 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "Nedostatek práv k vytváření požadavků ve frontÄ› '%1'" -#: lib/RT/User_Overlay.pm:151 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "Nedostatek práv k vytváření uživatelů" -#: html/SelfService/Display.html:174 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "Nedostatek práv k zobrazení tohoto požadavku" -#: html/SelfService/Update.html:55 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "Nedostatek práv k zobrazení aktualizace požadavku" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "Nezadán uživatel" -#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 msgid "No principals selected." msgstr "Nevybráni uživatelé." -#: html/Admin/Queues/index.html:35 +#: html/Admin/Queues/index.html:34 msgid "No queues matching search criteria found." msgstr "Nenalezeny žádné fronty odpovídající vyhledávací podmínce." @@ -2588,47 +2966,51 @@ msgstr "Nenalezeny žádné fronty odpovídající vyhledávací podmínce." msgid "No rights found" msgstr "Práva nenalezena" -#: html/Admin/Elements/SelectRights:33 +#: html/Admin/Elements/SelectRights:32 msgid "No rights granted." msgstr "NepÅ™idÄ›lena žádná práva." -#: html/Search/Bulk.html:149 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "Bez vyhledání nelze pracovat." +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "Neudán identifikátor požadavku" -#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "Neudán typ transakce" -#: html/Admin/Users/index.html:36 +#: html/Admin/Users/index.html:35 msgid "No users matching search criteria found." msgstr "Nenalezeni uživatelé odpovídající vyhledávací podmínce" -#: bin/rt-commit-handler:644 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Nenalezen platný uživatel RT. OvladaÄ RT CVS uvolnÄ›n. Prosím poraÄte se se svým správcem RT.\\n" -#: lib/RT/Interface/Web.pm:859 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "Žádná z hodnot nanastavena na _Set!\\n" -#: html/Search/Elements/TicketRow:37 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "Nikdo" -#: lib/RT/Interface/Web.pm:864 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "Neexistující položka" -#: html/Elements/Login:99 +#: NOT FOUND IN SOURCE msgid "Not logged in" msgstr "NepÅ™ihlášen" -#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "NepÅ™ihlášen." @@ -2636,67 +3018,87 @@ msgstr "NepÅ™ihlášen." msgid "Not set" msgstr "Nenastaven" -#: html/NoAuth/Reminder.html:27 +#: html/NoAuth/Reminder.html:26 msgid "Not yet implemented." msgstr "Zatím neimplementováno." -#: html/Admin/Groups/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Not yet implemented...." msgstr "Zatím neimplementováno..." -#: html/Approvals/Elements/Approve:50 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "Poznámky" -#: lib/RT/User_Overlay.pm:642 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "UpozornÄ›ní nemůže být zasláno" -#: etc/initialdata:94 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "Zaslat vÅ¡em AdminCc" -#: etc/initialdata:90 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "Zaslat vÅ¡em AdminCc jako komentář" -#: etc/initialdata:121 +#: 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 "Zaslat ostatním příjemcům" -#: etc/initialdata:117 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "Zaslat ostatním příjemcům jako komentář" -#: etc/initialdata:86 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "Zaslat vlastníkovi" -#: etc/initialdata:82 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "Zaslat vlastníkovi jako komentář" -#: etc/initialdata:313 etc/upgrade/2.1.71:17 +#: 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 "Zaslat vlastníkům a vÅ¡em AdminCc nové případy oÄekávající jejich schválení" -#: etc/initialdata:78 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "Zaslat žadatelům" -#: etc/initialdata:104 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "Zaslat žadatelům a vÅ¡em Cc" -#: etc/initialdata:99 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "Zaslat žadatelům a vÅ¡em Cc jako komentář" -#: etc/initialdata:113 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "Zaslat žadatelům, vÅ¡em Cc a vÅ¡em AdminCc" -#: etc/initialdata:109 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Zaslat žadatelům, vÄem Cc a vÄem AdminCc jako komentář" @@ -2704,11 +3106,11 @@ msgstr "Zaslat žadatelům, vÄem Cc a vÄem AdminCc jako komentář" msgid "Nov." msgstr "lis" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "Objekt nemůže být vytvoÅ™en" -#: lib/RT/Record.pm:176 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "Objekt vytvoÅ™en" @@ -2716,181 +3118,233 @@ msgstr "Objekt vytvoÅ™en" msgid "Oct." msgstr "říj" -#: html/Elements/SelectDateRelation:35 +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + +#: html/Elements/SelectDateRelation:34 msgid "On" msgstr "Dne" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "PÅ™i komentáři" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "PÅ™i korespondenci" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "PÅ™i založení" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "PÅ™i zmÄ›nÄ› vlastníka" -#: etc/initialdata:177 +#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 +msgid "On Priority Change" +msgstr "" + +#: etc/initialdata:192 msgid "On Queue Change" msgstr "PÅ™i zmÄ›nÄ› fronty" -#: etc/initialdata:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "PÅ™i vyÅ™eÅ¡ení" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "PÅ™i zmÄ›nÄ› stavu" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "PÅ™i transakci" -#: html/Approvals/Elements/PendingMyApproval:50 +#: 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 "Zobrazit jen schvalování pro požadavky založené po %1" -#: html/Approvals/Elements/PendingMyApproval:48 +#: 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 "Zobrazit jen schvalování pro požadavky založení pÅ™ed %quant(%1)" -#: html/Elements/Quicksearch:31 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "OtevÅ™ené" -#: html/Ticket/Elements/Tabs:136 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Otevřít" -#: html/SelfService/Elements/Tabs:57 +#: NOT FOUND IN SOURCE msgid "Open requests" msgstr "OtevÅ™ené požadavky" -#: html/Admin/Users/Prefs.html:41 +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "Otevřít požadavky (ze seznamu) v novém oknÄ›" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "Otevřít požadavky (ze seznamu) v jiném oknÄ›" -#: etc/initialdata:133 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "Otevřít požadavky pÅ™i korespondenci" -#: html/Search/Elements/PickRestriction:101 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Řazení a třídÄ›ní" -#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "Organizace" -#: html/Approvals/Elements/Approve:34 +#: html/Approvals/Elements/Approve:32 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Původní požadavek: #%1" -#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "ÄŒasem se priorita posouvá k" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "Vlastnit požadavky" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "Vlastnit požadavek" -#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "Vlastník" -#: lib/RT/Ticket_Overlay.pm:3004 -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +#: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" msgstr "Vlastník zmÄ›nÄ›n z %1 na %2" -#: lib/RT/Transaction_Overlay.pm:584 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Vlastník nucenÄ› zmÄ›nÄ›n z %1 na %2" -#: html/Search/Elements/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "Vlastník" -#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "Pager" -#: html/Admin/Elements/ModifyUser:74 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "Číslo pageru" -#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +#: 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 "RodiÄe" -#: html/Elements/Login:43 html/User/Prefs.html:61 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "Heslo" -#: html/NoAuth/Reminder.html:25 +#: html/NoAuth/Reminder.html:24 msgid "Password Reminder" msgstr "PÅ™ipomínaÄ hesel" -#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "Heslo příliÅ¡ krátké" -#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Heslo: %1" -#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +#: html/Admin/Users/Modify.html:318 +msgid "Passwords do not match." +msgstr "" + +#: html/User/Prefs.html:211 +msgid "Passwords do not match. Your password has not been changed" +msgstr "" + +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "Uživatelé" -#: etc/initialdata:126 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "Provedení uživatelem definované akce" -#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "Přístup nepovolen" -#: html/User/Elements/Tabs:35 +#: html/User/Elements/Tabs:34 msgid "Personal Groups" msgstr "Osobní skupiny" -#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 msgid "Personal groups" msgstr "Vlastní skupiny" -#: html/User/Elements/DelegateRights:37 +#: html/User/Elements/DelegateRights:36 msgid "Personal groups:" msgstr "Vlastní skupiny:" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "Čísla telefonů" -#: html/Admin/Users/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Placeholder" msgstr "Zábor místa" -#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +#: 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 "Nastavení" @@ -2898,15 +3352,19 @@ msgstr "Nastavení" msgid "Prefs" msgstr "Nastavení" -#: lib/RT/Action/Generic.pm:160 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "Prepare v zárodku" -#: html/Ticket/Elements/Tabs:61 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "PÅ™edchozí" -#: html/Search/Listing.html:44 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "PÅ™edchozí stránka" @@ -2914,29 +3372,33 @@ msgstr "PÅ™edchozí stránka" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#: 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 "Uživatel %1 nenalezen." -#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "Priorita" -#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "Priorita zaÄíná na" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "Privilegovaný" -#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Privilegovaný stav: %1" -#: html/Admin/Users/index.html:62 +#: html/Admin/Users/index.html:61 msgid "Privileged users" msgstr "Privilegovaní uživatelé" @@ -2944,11 +3406,19 @@ msgstr "Privilegovaní uživatelé" msgid "Pseudogroup for internal use" msgstr "Pseudo skupina pro vnitÅ™ní použití" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "Fronta" -#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#: 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" @@ -2958,7 +3428,7 @@ msgstr "Fronta %1 nenalezena" msgid "Queue '%1' not found\\n" msgstr "Fronta '%1' nenalezena\\n" -#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "Název fronty" @@ -2966,19 +3436,19 @@ msgstr "Název fronty" msgid "Queue Scrips" msgstr "Scripy fronty" -#: lib/RT/Queue_Overlay.pm:263 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "Fronta již existuje" -#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "Fronta nemůže být vytvoÅ™ena" -#: html/Ticket/Create.html:209 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "Fronta nemůže být naÄtena." -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "Fronta vytvoÅ™ena" @@ -2986,26 +3456,37 @@ msgstr "Fronta vytvoÅ™ena" msgid "Queue is not specified." msgstr "Není zadána fronta." -#: html/SelfService/Display.html:129 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "Fronta nenalezena" -#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 msgid "Queues" msgstr "Fronty" -#: html/Elements/Login:34 +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "" + +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + +#: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 +#: 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 pro %2" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: NOT FOUND IN SOURCE msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." msgstr "RT %1 od <a href=\"http://bestpractical.com\">Best Practival Solutions, LLC</a>." @@ -3013,7 +3494,7 @@ msgstr "RT %1 od <a href=\"http://bestpractical.com\">Best Practival Solutions, msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -#: html/Admin/index.html:25 html/Admin/index.html:26 +#: html/Admin/index.html:24 html/Admin/index.html:25 msgid "RT Administration" msgstr "Správa RT" @@ -3033,7 +3514,7 @@ msgstr "KonfiguraÄní chyba RT" msgid "RT Critical error. Message not recorded!" msgstr "Kritická chyba RT. Zpráva nezaznamenána!" -#: html/Elements/Error:41 html/SelfService/Error.html:41 +#: html/Elements/Error:41 html/SelfService/Error.html:40 msgid "RT Error" msgstr "Chyba RT" @@ -3041,11 +3522,15 @@ msgstr "Chyba RT" msgid "RT Received mail (%1) from itself." msgstr "RT pÅ™ijal poÅ¡tu (%1) od sebe samého." -#: html/SelfService/Closed.html:25 +#: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT Samoobsluha / UzavÅ™ené požadavky" -#: html/index.html:25 html/index.html:28 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "RT v celé své záři" @@ -3065,7 +3550,7 @@ msgstr "RT nemůže nalézt frontu: %1" msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT nemůže ověřit tento PGP podpis. \\n" -#: html/Elements/PageLayout:26 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "RT pro %1" @@ -3078,8 +3563,7 @@ msgstr "RT pro %1: %2" msgid "RT has proccessed your commands" msgstr "RT zpracoval vaÅ¡e příkazy" -#: html/Elements/Login:83 -#. ('2003') +#: 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 je © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Šířeno pod <a href=\"http://www.gnu.org/copyleft/gpl.html\">verzí 2 GNU General Public License.</a>" @@ -3095,19 +3579,39 @@ msgstr "RT zpracuje tuto zprávu tak, jako by byla nepodepsaná.\\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 "Emailový příkazový režim RT vyžaduje PGP autentizaci. Nepodepsal jste vaÅ¡i zprávu nebo váš podpis nemůže být ověřen." -#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "SkuteÄné jméno" -#: html/Admin/Elements/ModifyUser:48 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "SkuteÄné jméno" -#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "Je odkazem z" -#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +#: 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 "Odkazuje na" @@ -3115,21 +3619,16 @@ msgstr "Odkazuje na" msgid "Refine" msgstr "Zjemnit" -#: html/Search/Elements/PickRestriction:27 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Zjemnit vyhledání" -#: html/Elements/Refresh:36 +#: html/Elements/Refresh:35 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Obnovit tuto stránku %quant(%1,každou,každé,každých) %numf(%1) %quant(%1,minutu,minuty,minut)." -#??? quant -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 -msgid "Relationships" -msgstr "Vztahy" - -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "Odstranit AdminCc" @@ -3137,27 +3636,35 @@ msgstr "Odstranit AdminCc" msgid "Remove Cc" msgstr "Odstranit Cc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "Odstranit žadatele" -#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "OdpovÄ›dÄ›t" -#: lib/RT/Queue_Overlay.pm:85 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "OdpovÄ›dÄ›t na požadavky" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "Odpovídat na požadavky" -#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "Žadatel" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "Emailová adresa žadatele" @@ -3165,98 +3672,107 @@ msgstr "Emailová adresa žadatele" msgid "Requestor(s)" msgstr "Žadatel(é)" -#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "Žadatelé" -#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "Požadavky mají být vyÅ™eÅ¡eny do" -#: html/Elements/Submit:62 +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + +#: html/Elements/Submit:61 msgid "Reset" msgstr "Vynulovat" -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "BydliÅ¡tÄ›" -#: html/Ticket/Elements/Tabs:132 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "VyÅ™eÅ¡it" -#: html/Ticket/Update.html:133 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "VyÅ™eÅ¡ení požadavku #%1 (%2)" -#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "VyÅ™eÅ¡en" -#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "OdpovÄ›Ä Å¾adatelům" -#: html/Elements/ListActions:26 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "Výsledky" -#: html/Search/Elements/PickRestriction:105 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "Výsledků na stránku" -#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "Zopakujte heslo" +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Nenalezeno právo %1 pro %2 %3 v mezích %4 (%5)" -#: lib/RT/ACE_Overlay.pm:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "Právo delegováno" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "Práva pÅ™idána" -#: lib/RT/ACE_Overlay.pm:161 +#: lib/RT/ACE_Overlay.pm:160 msgid "Right Loaded" msgstr "Právo naÄteno" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "Právo nemůže být odebráno" -#: html/User/Delegation.html:64 +#: html/User/Delegation.html:63 msgid "Right not found" msgstr "Právo nenalezeno" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "Právo nenaÄteno." -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "Právo odebráno" -#: html/Admin/Elements/UserTabs:41 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "Práva" -#: lib/RT/Interface/Web.pm:758 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Práva pro %1 nemohou být pÅ™idÄ›lena" -#: lib/RT/Interface/Web.pm:791 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "Práva nemohou být %1 odebrána" -#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "Pravidla" @@ -3264,32 +3780,53 @@ msgstr "Pravidla" msgid "RootApproval" msgstr "KoÅ™enový schvalovatel" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "so" -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "Uložit zmÄ›ny" -#: html/Ticket/ModifyLinks.html:39 +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "Nezapomeňte uložit zmÄ›ny - " -#: html/Admin/Global/Scrip.html:49 +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:176 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "Scrip vytvoÅ™en" -#: html/Admin/Elements/EditScrips:84 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "Scrip smazán" -#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 msgid "Scrips" msgstr "Scripy" @@ -3301,7 +3838,7 @@ msgstr "Scripy fro %1\\n" msgid "Scrips which apply to all queues" msgstr "Scripy platné ve vÅ¡ech frontách" -#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "Vyhledávání" @@ -3309,19 +3846,31 @@ msgstr "Vyhledávání" msgid "Search Criteria" msgstr "Podmínky vyhledávání" -#: html/Approvals/Elements/PendingMyApproval:39 +#: html/Approvals/Elements/PendingMyApproval:38 msgid "Search for approvals" msgstr "Vyhledávání schvalování" -#: bin/rt-crontool:188 +#: bin/rt-crontool:184 msgid "Security:" msgstr "ZabezpeÄní:" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "VidÄ›t frontu" -#: html/Admin/Groups/index.html:40 +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "VýbÄ›r skupiny" @@ -3329,87 +3878,95 @@ msgstr "VýbÄ›r skupiny" msgid "Select a queue" msgstr "VýbÄ›r fronty" -#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" msgstr "VýbÄ›r uživatele" -#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "Vybrat uživatelskou položku" -#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" msgstr "Vybrat skupinu" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "Vybrat více hodnot" -#: lib/RT/CustomField_Overlay.pm:352 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "Vybrat jednu hodnotu" -#: html/Admin/Elements/QueueTabs:67 +#: html/Admin/Elements/QueueTabs:66 msgid "Select queue" msgstr "VýbÄ›r fronty" -#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +#: 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 "VýbÄ›r scripu" -#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +#: 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 "Vybrat vzor" -#: html/Admin/Elements/UserTabs:49 +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "VýbÄ›r uživatele" -#: lib/RT/CustomField_Overlay.pm:36 +#: lib/RT/CustomField_Overlay.pm:35 msgid "SelectMultiple" msgstr "VýbÄ›r vícenásobný" -#: lib/RT/CustomField_Overlay.pm:35 +#: lib/RT/CustomField_Overlay.pm:34 msgid "SelectSingle" msgstr "VýbÄ›t jedineÄný" -#: html/SelfService/index.html:25 +#: NOT FOUND IN SOURCE msgid "Self Service" msgstr "Samoobsluha" -#: etc/initialdata:114 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "Zaslat e-mail vÅ¡em pozorovatelům" -#: etc/initialdata:110 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "Zaslat e-mail vÅ¡em pozorovatelům jako \"komentář\"" -#: etc/initialdata:105 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "Zaslat e-mail žadatelům a vÅ¡em Cc" -#: etc/initialdata:100 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "Zaslat e-mail žadatelům a vÅ¡em Ccs jako komentář" -#: etc/initialdata:79 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "Posílá zprávu vÅ¡em žadatelům" -#: etc/initialdata:118 etc/initialdata:122 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "Posílá e-mail vÅ¡em pÅ™esnÄ› vyjmenovaným Cc a Bcc" -#: etc/initialdata:95 +#: 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 "Posílá e-mail vÅ¡em administrativním Cc" -#: etc/initialdata:91 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "Posílá e-mail vÅ¡em administrativním Cc jako komentář" -#: etc/initialdata:83 etc/initialdata:87 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "Posílá e-mail vlastníkovi" @@ -3417,55 +3974,75 @@ msgstr "Posílá e-mail vlastníkovi" msgid "Sep." msgstr "zář" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "Zobrazit výsledky" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "Zobrazit schválené požadavky" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show basics" msgstr "Zobrazit základní údaje" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:44 msgid "Show denied requests" msgstr "Zobrazit odepÅ™ené požadavky" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show details" msgstr "Zobrazit podrobnosti" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:42 msgid "Show pending requests" msgstr "Zobrazit trvající požadavky" -#: html/Approvals/Elements/PendingMyApproval:46 +#: html/Approvals/Elements/PendingMyApproval:45 msgid "Show requests awaiting other approvals" msgstr "Zobrazit požadavky Äekající na jejich schválení" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "Zobrazovat privátní komentáře požadavku" -#: lib/RT/Queue_Overlay.pm:79 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "Zobrazovat výsledky požadavku" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "Zobrazovat seznam přístupových práv" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "Zobrazit scripy" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "Zobrazit vzor" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "Zobrazit požadavek" @@ -3473,43 +4050,50 @@ msgstr "Zobrazit požadavek" msgid "ShowTicketComments" msgstr "Zobrazit komentáře požadavku" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "Být žadatelem Äi Cc požadavku Äi fronty" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "Být AdminCc požadavku nebo fronty" -#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "Podpis" -#: html/SelfService/Elements/Header:52 -#. ($session{'CurrentUser'}->Name) +#: NOT FOUND IN SOURCE msgid "Signed in as %1" msgstr "Příhlášen jako %1" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:25 msgid "Single" msgstr "Jednoduchá" -#: html/Elements/Header:51 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "PÅ™eskoÄit menu" -#: html/Admin/Elements/EditCustomFieldValues:31 +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Sort key" msgstr "Třídící klíÄ" -#: html/Search/Elements/PickRestriction:109 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "Třídit výsledky dle" -#: html/Admin/Elements/AddCustomFieldValue:25 +#: NOT FOUND IN SOURCE msgid "SortOrder" msgstr "Třídící poÅ™adí" +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "Odložené" @@ -3518,7 +4102,7 @@ msgstr "Odložené" msgid "Start page" msgstr "Úvodní stránka" -#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "ZapoÄato" @@ -3526,7 +4110,7 @@ msgstr "ZapoÄato" msgid "Started date '%1' could not be parsed" msgstr "Datum zapoÄetí '%1' nemůže být rozpoznáno" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "ZaÄíná" @@ -3538,19 +4122,19 @@ msgstr "ZaÄíná" msgid "Starts date '%1' could not be parsed" msgstr "Datum zaÄínání '%1' nemůže být rozpoznáno" -#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "Stát" -#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +#: 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 "Stav" -#: etc/initialdata:288 +#: etc/initialdata:309 msgid "Status Change" msgstr "ZmÄ›na Stavu" -#: lib/RT/Transaction_Overlay.pm:530 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "Stav zmÄ›nÄ›n z %1 na %2" @@ -3559,25 +4143,33 @@ msgstr "Stav zmÄ›nÄ›n z %1 na %2" msgid "StatusChange" msgstr "ZmÄ›na stavu" -#: html/Ticket/Elements/Tabs:147 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "Vzít" -#: lib/RT/Transaction_Overlay.pm:589 +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "Vzato %1 " -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +#: 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 "PÅ™edmÄ›t" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#: 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 "PÅ™edmÄ›t zmÄ›nÄ›n na %1" -#: html/Elements/Submit:59 +#: html/Elements/Submit:58 msgid "Submit" msgstr "Odeslat" @@ -3593,27 +4185,35 @@ msgstr "Úspěšné" msgid "Sun." msgstr "ne" -#: lib/RT/System.pm:54 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "Super uživatel" -#: html/User/Elements/DelegateRights:77 +#: html/User/Elements/DelegateRights:76 msgid "System" msgstr "Systém" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "Systémová chyba" -#: lib/RT/ACE_Overlay.pm:616 +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "Systémová chyba. Právo nedelegováno." -#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "Systémová chyba. Právo nepÅ™idÄ›leno." -#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 msgid "System groups" msgstr "Systémové skupiny" @@ -3621,32 +4221,40 @@ msgstr "Systémové skupiny" msgid "SystemRolegroup for internal use" msgstr "Skupina systémovýh pravidel pro vnitÅ™ní použití" -#: lib/RT/CurrentUser.pm:320 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "MíchaÄka na beton" -#: html/Ticket/Elements/Tabs:143 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "Vzít" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "Vzatý" -#: html/Admin/Elements/EditScrip:81 +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "Vzor" -#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Vzor #%!" -#: html/Admin/Elements/EditTemplates:89 +#: html/Admin/Elements/EditTemplates:88 msgid "Template deleted" msgstr "Vzor smazán" -#: lib/RT/Scrip_Overlay.pm:153 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "Vzor nenalezen" @@ -3654,11 +4262,11 @@ msgstr "Vzor nenalezen" msgid "Template not found\\n" msgstr "Vzor nenalezen\\n" -#: lib/RT/Template_Overlay.pm:347 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "Vzor rozpoznán" -#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 msgid "Templates" msgstr "Vzory" @@ -3666,135 +4274,146 @@ msgstr "Vzory" msgid "Templates for %1\\n" msgstr "Vzory pro %1\\n" -#: lib/RT/Interface/Web.pm:858 +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "Toto je již aktuální hodnota" -#: lib/RT/CustomField_Overlay.pm:178 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "Toto není hodnota pro tuto uživatelskou položku" -#: lib/RT/Ticket_Overlay.pm:1886 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "Toto je shodná hodnota" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Tento uživatel je již v této frontÄ› %1" -#: lib/RT/Ticket_Overlay.pm:1434 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Tento uživatel je již u tohoto požadavku %1" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Tento uživatel není v této frontÄ› %1" -#: lib/RT/Ticket_Overlay.pm:1551 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "Tento uživatel není u tohoto požadavku %1" -#: lib/RT/Ticket_Overlay.pm:1882 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "Tata fronta neexistuje" -#: lib/RT/Ticket_Overlay.pm:3143 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "Tento požadavek má nevyÅ™eÅ¡ené závislosti" -#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +#: NOT FOUND IN SOURCE msgid "That user already has that right" msgstr "Tento uživatel již má toto právo" -#: lib/RT/Ticket_Overlay.pm:2952 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "Tento uživatel již tento požadavek vlastní" -#: lib/RT/Ticket_Overlay.pm:2918 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "Tento uživatel neexistuje" -#: lib/RT/User_Overlay.pm:315 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "Tento uživatel je již privilegován" -#: lib/RT/User_Overlay.pm:332 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "Tento uživatel je již neprivilegován" -#: lib/RT/User_Overlay.pm:327 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "Uživatel je nyní privilegován" -#: lib/RT/User_Overlay.pm:344 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "Uživatel je nyní neprivilegován" -#: lib/RT/Ticket_Overlay.pm:2944 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "V této frontÄ› nemůže tento uživatel vlastnit požadavky" -#: lib/RT/Link_Overlay.pm:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "Toto není Äíselný identifikátor" -#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 msgid "The Basics" msgstr "Základní údaje" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:87 msgid "The CC of a ticket" msgstr "Cc požadavku" -#: lib/RT/ACE_Overlay.pm:89 +#: lib/RT/ACE_Overlay.pm:88 msgid "The administrative CC of a ticket" msgstr "Administrativní Cc požadavku" -#: lib/RT/Ticket_Overlay.pm:2213 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "Komentář byl zaznamenán" -#: bin/rt-crontool:198 +#: 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 "Následující příkaz najde vÅ¡echny aktivní požadavky ve frontÄ› 'general' a nastaví jejich priority na 99, pokud nebyly tknuty poslední 4 hodiny:" -#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "Následující příkazy nebyly zpracovány\\n\\n" -#: lib/RT/Interface/Web.pm:861 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "Nová hodnota nastavena." -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:85 msgid "The owner of a ticket" msgstr "Vlastník požadavku" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:86 msgid "The requestor of a ticket" msgstr "Žadatel požadavku" -#: html/Admin/Elements/EditUserComments:26 +#: html/Admin/Elements/EditUserComments:25 msgid "These comments aren't generally visible to the user" msgstr "Tyto komentáře nejsou běžnÄ› viditelné uživateli" +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +msgid "This message will be sent to..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "Tento požadavek %1 %2 (%3)\\n" -#: bin/rt-crontool:189 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Tento nástroj umožňuje uživateli spustit libovolné perl moduly z RT." -#: lib/RT/Transaction_Overlay.pm:253 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "Tato transakce vypadá, že nemá obsah" -#: html/Ticket/Elements/ShowRequestor:47 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "nejdůležitÄ›jší%quant(%1, požadavek,požadavky,ch požadavků) tohoto uživatele" @@ -3811,61 +4430,67 @@ msgstr "Ät" msgid "Ticket # %1 %2" msgstr "Požadavek # %1 %2" -#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Maxi aktualizace požadavku #%1: %2" -#: html/Approvals/Elements/ShowDependency:46 +#: html/Approvals/Elements/ShowDependency:45 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Požadavek #%1: %2" -#: lib/RT/Ticket_Overlay.pm:608 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Požadavek %1 vytvoÅ™en ve frontÄ› '%2'" -#: bin/rt-commit-handler:760 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "Požadavek %1 naÄten\\n" -#: html/Search/Bulk.html:181 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Požadavek %1: %2" -#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "Historie požadavku # %1 %2" -#: html/SelfService/Display.html:34 +#: NOT FOUND IN SOURCE msgid "Ticket Id" msgstr "Identifikátor požadavku" -#: etc/initialdata:303 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "Požadavek vyÅ™eÅ¡en" -#: html/Search/Elements/PickRestriction:63 +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Příloha požadavku" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "Obsah požadavku" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "Typ obsahu požadavku" -#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +#: 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 "Požadaven nemůže být vytvoÅ™en pro vnitÅ™ní chybu" -#: lib/RT/Transaction_Overlay.pm:522 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "Požadavek vytvoÅ™en" @@ -3873,103 +4498,119 @@ msgstr "Požadavek vytvoÅ™en" msgid "Ticket creation failed" msgstr "NezdaÅ™ilo se vytvoÅ™ení požadavku" -#: lib/RT/Transaction_Overlay.pm:527 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "Požadavek smazán" -#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +#: NOT FOUND IN SOURCE msgid "Ticket id not found" msgstr "Id požadavku nenalezeno" -#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "Požadavek nenalezen" -#: etc/initialdata:289 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "Stav požadavku zmÄ›nÄ›n" -#: html/Ticket/Update.html:39 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "Pozorovatelé požadavku" -#: html/Elements/Tabs:49 +#: html/Elements/Tabs:46 msgid "Tickets" msgstr "Požadavky" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "Požadavky %1 %2" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "Požadavky %1 dle %2" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Požadavky z %1" -#: html/Approvals/Elements/ShowDependency:27 +#: html/Approvals/Elements/ShowDependency:26 msgid "Tickets which depend on this approval:" msgstr "Požadavky, které záleží na tomto schválení:" -#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "Zbývající Äas" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "ÄŒas práce" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "Zbývající Äas" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "ÄŒas k zobrazení" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "ÄŒas práce" -#: lib/RT/Ticket_Overlay.pm:1165 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "ÄŒas práce" -#: bin/rt-commit-handler:402 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "VytvoÅ™it diff tohoto commitu:" -#: bin/rt-commit-handler:391 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "VytvoÅ™it diff tohoto commitu:\\n" -#: lib/RT/Ticket_Overlay.pm:1168 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "Poslední kontakt" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "Transakce" -#: lib/RT/Transaction_Overlay.pm:642 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transakce %1 vymazána" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "Transakce vytvoÅ™ena" -#: lib/RT/Transaction_Overlay.pm:89 +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "Bez udání id požadavku nelze volat Transaction->Create" -#: lib/RT/Transaction_Overlay.pm:701 +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "Transakce jsou nemÄ›nné" @@ -3981,102 +4622,125 @@ msgstr "Pokus o smazání práva: %1" msgid "Tue." msgstr "út" -#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +#: 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 "typ" -#: lib/RT/ScripCondition_Overlay.pm:104 +#: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "Neimplementováno" -#: html/Admin/Users/Modify.html:68 +#: html/Admin/Users/Modify.html:67 msgid "Unix login" msgstr "Unixový login" -#: html/Admin/Elements/ModifyUser:62 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "Unixové uživatelské jméno" -#: lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Neznámé kódování obsahu %1" -#: html/Elements/SelectResultsPerPage:37 +#: html/Elements/SelectResultsPerPage:36 msgid "Unlimited" msgstr "NeomezenÄ›" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "Neprivilegovaný" -#: lib/RT/Transaction_Overlay.pm:571 +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "Vrácen" -#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +#: html/Search/Bulk.html:32 msgid "Update" msgstr "Aktualizace" -#: html/Admin/Users/Prefs.html:62 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Identifikátor aktualizace" -#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "Typ aktualizace" -#: html/Search/Listing.html:61 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "Aktualizovat spoleÄnÄ› vÅ¡echny tyty požadavky" -#: html/Admin/Users/Prefs.html:49 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "Aktualizovat email" -#: html/Admin/Users/Prefs.html:55 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "Aktualizovat jméno" -#: lib/RT/Interface/Web.pm:375 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "Aktualizace nezaznamenána" -#: html/Search/Bulk.html:81 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "Aktualizovat vybrané požadavky" -#: html/Admin/Users/Prefs.html:36 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Aktualizace podpisu" -#: html/Ticket/ModifyAll.html:63 +#: html/Ticket/ModifyAll.html:62 msgid "Update ticket" msgstr "Aktualizace požadavku" -#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 -#. ($Ticket->id) +#: NOT FOUND IN SOURCE msgid "Update ticket # %1" msgstr "Aktualizace požadavku # %1" -#: html/SelfService/Update.html:50 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Aktualizace požadavku #%1" -#: html/Ticket/Update.html:135 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Aktualizace požadavku #%1 (%2)" -#: lib/RT/Interface/Web.pm:373 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "Typ aktualizace nebyl ani korespondence ani komentář." -#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "Aktualizováno" +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "Uživatel %1 %2: %3\\n" @@ -4085,6 +4749,11 @@ msgstr "Uživatel %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Heslo uživatele %1: %2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "Uživatel '%1' nenalezen" @@ -4093,76 +4762,88 @@ msgstr "Uživatel '%1' nenalezen" msgid "User '%1' not found\\n" msgstr "Uživatel '%1' nenalezen\\n" -#: etc/initialdata:125 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Uživatelem definované" -#: html/Admin/Users/Prefs.html:59 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "Identifikátor uživatele" -#: html/Elements/SelectUsers:26 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "Identifikátor uživatele" -#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +#: 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 "Práva uživatele" -#: html/Admin/Users/Modify.html:226 +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "Uživatel nemůže být vytvoÅ™en: %1" -#: lib/RT/User_Overlay.pm:262 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "Uživatel vytvoÅ™en" -#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "Uživatelem definované skupiny" +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User notified" msgstr "Uživatel upozornÄ›n" -#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "Uživatelský pohled" -#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "Uživatelské jméno" -#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +#: 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 "Uživatelé" -#: html/Admin/Users/index.html:65 +#: html/Admin/Users/index.html:64 msgid "Users matching search criteria" msgstr "Uživatelé odpovídající podmínce vyhledání" -#: html/Search/Elements/PickRestriction:51 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "Hodnota fronty" -#: html/Admin/Elements/EditCustomField:40 +#: html/Admin/Elements/EditCustomField:56 msgid "Values" msgstr "Hodnoty" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "Být pozorovatelem" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "Být AdminCc pozorovatelem" -#: html/Admin/Elements/QueueTabs:42 +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "Pozorovatelé" -#: html/Admin/Elements/ModifyUser:56 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "Kódování WWW" @@ -4170,75 +4851,87 @@ msgstr "Kódování WWW" msgid "Wed." msgstr "st" -#: etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "PÅ™idat korespondenci k původnímu požadavku, pokud byl požadavek schválen vÅ¡emi" -#: etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "PÅ™idat korespondenci k původnímu požadavku, pokud byl požadavek kýmkoli schválen" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "Když je požadavek vytvoÅ™en" -#: etc/upgrade/2.1.71:79 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "Upozornit vlastníka a vÅ¡echny AdminCc, jejichž schválení se oÄekává, pÅ™i vytvoÅ™ení schvalovaného požadavku" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "Stane-li se cokoli" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "Je-li vyÅ™eÅ¡en požadavek" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "ZmÄ›ní-li se vlastník požadavku" -#: etc/initialdata:178 +#: 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 "ZmÄ›ní-li se fronta požadavku" -#: etc/initialdata:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "ZmÄ›ní-li se stav požadavku" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "Splní-li se uživatelská podmínka" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "PÅ™ijde-li komentář" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "PÅ™ijde-li korespondence" -#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "ZamÄ›stnání" -#: html/Admin/Elements/ModifyUser:70 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "Telefon do zamÄ›stnání" -#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Odpracováno" -#: lib/RT/Ticket_Overlay.pm:3056 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "Požadavek již vlastníte" -#: html/autohandler:121 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "Nejste autorizovaný uživatel" -#: lib/RT/Ticket_Overlay.pm:2930 +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Můžete pÅ™idÄ›lit pouze požadavky, které jsou vaÅ¡e nebo nejsou vlastnÄ›ny" @@ -4246,30 +4939,29 @@ msgstr "Můžete pÅ™idÄ›lit pouze požadavky, které jsou vaÅ¡e nebo nejsou vlas msgid "You don't have permission to view that ticket.\\n" msgstr "Nemáte právo k zobrazení tohoto požadavku.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "Nalezl jste %1 požadavků ve frontÄ› %2" #??? quant -#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +#: html/NoAuth/Logout.html:30 msgid "You have been logged out of RT." msgstr "Byl jste odhlášen od RT." -#: html/SelfService/Display.html:134 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "V této frontÄ› nemáte práva vytvářet požadavky." -#: lib/RT/Ticket_Overlay.pm:1895 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "V této frontÄ› nemůžete vytvářet požadavky." -#: html/NoAuth/Logout.html:36 +#: html/NoAuth/Logout.html:34 msgid "You're welcome to login again" msgstr "Jste vítáni k dalšímu pÅ™ihlášení" -#: html/SelfService/Elements/MyRequests:25 -#. ($friendly_status) +#: NOT FOUND IN SOURCE msgid "Your %1 requests" msgstr "VaÅ¡ich %1 požadavků" @@ -4277,11 +4969,11 @@ msgstr "VaÅ¡ich %1 požadavků" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "Váš správce RT chybnÄ› nastavil poÅ¡tovní aliasy, které volají RT" -#: etc/initialdata:429 etc/upgrade/2.1.71:146 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "Váš požadavek byl schválen uživatelem %1. Další schválení mohou být jeÅ¡tÄ› oÄekávána." -#: etc/initialdata:463 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "Váš požadavek byl schválen." @@ -4289,76 +4981,80 @@ msgstr "Váš požadavek byl schválen." msgid "Your request was rejected" msgstr "Váš požadavek byl odmítnut" -#: etc/initialdata:384 etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "Váš požadavek byl odmítnut." -#: html/autohandler:136 html/autohandler:142 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "VaÅ¡e uživatelské jméno Äi heslo je nesprávné" -#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "PSÄŒ" -#: html/User/Elements/DelegateRights:59 +#: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "jak je dovoleno %1" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 msgid "contains" msgstr "obsahuje" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content" msgstr "obsah" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "typ obsahu" -#: lib/RT/Ticket_Overlay.pm:2282 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "korespondence (zÅ™ejmÄ›) neposlána" -#: lib/RT/Ticket_Overlay.pm:2292 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "korespondence poslána" -#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "dnů" -#: html/Search/Listing.html:75 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "smazat" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "smazán" -#: html/Search/Elements/PickRestriction:68 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "neodpovídá" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 msgid "doesn't contain" msgstr "neobsahuje" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "je rovno" -#: html/Elements/SelectAttachmentField:28 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "název souboru" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "greater than" msgstr "vÄ›tší než" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "skupina '%1'" @@ -4371,19 +5067,19 @@ msgstr "hodin" msgid "id" msgstr "Identifikátor" -#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: 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 "je" -#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +#: 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 "není" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "less than" msgstr "menší než" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "odpovídá" @@ -4391,11 +5087,11 @@ msgstr "odpovídá" msgid "min" msgstr "min" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "minut" -#: bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "úpravy\\n\\n" @@ -4403,41 +5099,45 @@ msgstr "úpravy\\n\\n" msgid "months" msgstr "mÄ›síců" -#: lib/RT/Queue_Overlay.pm:58 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "nový" -#: html/Admin/Elements/EditScrips:43 +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + +#: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "znehodnotit" -#: html/Ticket/Elements/EditWatchers:28 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "žádný" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "not equal to" msgstr "není rovno" -#: lib/RT/Queue_Overlay.pm:59 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "otevÅ™ený" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "vlastní skupina '%1' pro uživatele '%2'" -#: lib/RT/Group_Overlay.pm:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "fronta %1 %2" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "zamítnutý" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "vyÅ™eÅ¡ený" @@ -4445,30 +5145,34 @@ msgstr "vyÅ™eÅ¡ený" msgid "sec" msgstr "sek" -#: lib/RT/Queue_Overlay.pm:60 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "odložený" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "systém %1" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "systémová skupina '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:42 +#: html/Elements/Error:42 html/SelfService/Error.html:41 msgid "the calling component did not specify why" msgstr "volající komponenta neudala důvod" -#: lib/RT/Group_Overlay.pm:210 +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "požadavek #%1 %2" -#: lib/RT/Group_Overlay.pm:216 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "nepopsaná skupina %1" @@ -4477,7 +5181,7 @@ msgstr "nepopsaná skupina %1" msgid "undescripbed group %1" msgstr "nepopsaná skupina %1" -#: lib/RT/Group_Overlay.pm:191 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "uživatel %1" diff --git a/rt/lib/RT/I18N/da.po b/rt/lib/RT/I18N/da.po index 6677cf076..e2a2e8c2a 100644 --- a/rt/lib/RT/I18N/da.po +++ b/rt/lib/RT/I18N/da.po @@ -1,9 +1,7 @@ -# $Id: da.po,v 1.1 2004-11-11 12:12:57 ivan Exp $ - msgid "" msgstr "" -#: html/Elements/MyRequests:27 html/Elements/MyTickets:27 +#: NOT FOUND IN SOURCE msgid "#" msgstr "#" @@ -12,21 +10,32 @@ msgid "#%1" msgstr "#%1" #: 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 -#. ($Ticket->Id, $Ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) #. ($Ticket->id, $Ticket->Subject) #. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "#%1: %2" msgstr "#%1: %2" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: 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:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) -msgid "" +msgid "%1 %2 %3" msgstr "" #: lib/RT/Date.pm:373 @@ -34,7 +43,7 @@ msgstr "" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%2 %1 %3 %4:%5:%6 %7" -#: lib/RT/Ticket_Overlay.pm:3569 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#: 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) @@ -46,20 +55,21 @@ msgstr "%1 %2 tilføjet" msgid "%1 %2 ago" msgstr "%1 %2 siden" -#: lib/RT/Ticket_Overlay.pm:3575 lib/RT/Transaction_Overlay.pm:564 +#: 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 ændret til %3" -#: lib/RT/Ticket_Overlay.pm:3572 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#: 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 slettet" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 +#: 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 med skabelon %3" @@ -68,44 +78,70 @@ msgstr "%1 %2 med skabelon %3" msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 denne ticket\\n" -#: html/Search/Listing.html:56 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "%1 - %2 vist" -#: bin/rt-crontool:168 bin/rt-crontool:175 bin/rt-crontool:181 +#: 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 - Et argument til afsendelse til %2" -#: bin/rt-crontool:184 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Send status opdateringer til STDOUT" -#: bin/rt-crontool:178 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Specificér den aktion du ønsker at benytte" -#: bin/rt-crontool:172 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Specificer det betingelses modul du ønsker at benytte" -#: bin/rt-crontool:165 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Specificer det søge modul du ønsker at benytte" -#: lib/RT/ScripAction_Overlay.pm.orig:121 lib/RT/ScripAction_Overlay.pm:121 + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1 ScripAktion indlæst" -#: lib/RT/Ticket_Overlay.pm:3602 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 tilføjet som en værdi for %2" @@ -118,19 +154,19 @@ msgstr "%1 aliaser kræver en TicketID at arbejde pÃ¥" msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1 aliaser kræver en TicketID at arbejde pÃ¥ (fra %2) %3" -#: lib/RT/Link_Overlay.pm:116 lib/RT/Link_Overlay.pm:123 +#: 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 synes at være et lokalt object, men kan ikke findes i databasen" -#: html/Ticket/Elements/ShowDates:51 lib/RT/Transaction_Overlay.pm:481 +#: 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 af %2" -#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:675 lib/RT/Transaction_Overlay.pm:684 lib/RT/Transaction_Overlay.pm:687 +#: 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) @@ -138,7 +174,12 @@ msgstr "%1 af %2" msgid "%1 changed from %2 to %3" msgstr "%1 ændret fra %2 til %3" -#: lib/RT/Interface/Web.pm:893 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "%1 kunne ikke sættes til %2" @@ -146,37 +187,40 @@ msgstr "%1 kunne ikke sættes til %2" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 kun ikke initiere en transaktion (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2867 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 kunne ikke sætte status til løst. RT's Database er muligvis inkonsistent" #: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "%1 højest prioriteterede tickets jeg ejer..." -#: html/Elements/MyRequests:24 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "%1 højest prioriterede tickets jeg har anmodet om" -#: bin/rt-crontool:160 +#: bin/rt-crontool:157 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "%1 er et værktøj som reagerer pÃ¥ tickets fra et eksternt skedulerings værktøj sÃ¥som cron." -#: lib/RT/Queue_Overlay.pm:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 er ikke længere en %2 for denne kø" -#: lib/RT/Ticket_Overlay.pm:1587 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 er ikke længere en %2 for denne ticket." -#: lib/RT/Ticket_Overlay.pm:3658 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 er ikke længere en værdi for special felt %2" @@ -185,11 +229,20 @@ msgstr "%1 er ikke længere en værdi for special felt %2" msgid "%1 isn't a valid Queue id." msgstr "%1 er ikke en lovlig kø ID" -#: html/Ticket/Elements/ShowBasics:35 -#. ($TimeWorked) +#: 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/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 ikke vist" @@ -217,27 +270,32 @@ msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 vil løse samtlige alle medlemmer af en løst gruppe ticket." #MANGLER - #: 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 " -#: lib/RT/Transaction_Overlay.pm:433 +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1: ingen vedhæftet fil angivet" -#: html/Ticket/Elements/ShowTransaction:88 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransaction:85 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1176 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' er ikke en valid status værdi" @@ -250,11 +308,23 @@ msgstr "'%1' er ikke en genkendt aktion. " msgid "(Check box to delete scrip)" msgstr "(Check box til sletning af scrip)" -#: 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/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 +#: 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 "(Check box til sletning)" -#: html/Ticket/Create.html:177 +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, separated with spaces)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "(Indtast ticket ids eller URLSs, separeret af mellemrum)" @@ -281,7 +351,7 @@ msgstr "(Ingen scrips)" msgid "(No templates)" msgstr "(Ingen templates)" -#: html/Ticket/Update.html:83 +#: 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 "(Sender en blind karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Ændrer <b>IKKE</b> hvem som vil modtage fremtidige opdateringer.)" @@ -293,7 +363,7 @@ msgstr "(Sender en blind karbon-kopi af denne opdatering til en komma separeret 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 karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Disse <b>vil</b> modtage fremtidige opdateringer.)" -#: html/Ticket/Update.html:79 +#: 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 "(Sender en karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Ændrer <b>IKKE</b> hvem som vil modtage fremtidige opdateringer.)" @@ -305,6 +375,10 @@ msgstr "(Sender en karbon-kopi af denne opdatering til en komma separeret liste 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 karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Disse <b>vil</b> modtage fremtidige opdateringer.)" +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + #: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(tom)" @@ -313,23 +387,27 @@ msgstr "(tom)" msgid "(no name listed)" msgstr "(intet navn listet)" -#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(intet emne)" -#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:60 html/Ticket/Elements/ShowCustomFields:35 lib/RT/Transaction_Overlay.pm:534 +#: 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 "(ingen værdi)" -#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:115 +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(kun en ticket)" -#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(afventer godkendelse)" -#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(afventer andre tickets)" @@ -337,7 +415,7 @@ msgstr "(afventer andre tickets)" msgid "(required)" msgstr "(obligatorisk)" -#: html/Ticket/Elements/ShowTransaction:91 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(unavngiven)" @@ -357,13 +435,21 @@ msgstr "<% $Ticket->Status%>" msgid "<% $_ %>" msgstr "<% $_ %>" +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +msgstr "" + #MANGLER -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 +#: 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=\"Ny ticket i\"> %1" -#: etc/initialdata:203 +#: etc/initialdata:218 msgid "A blank template" msgstr "En blank template" @@ -375,7 +461,7 @@ msgstr "ACE ikke fundet" msgid "ACEs can only be created and deleted." msgstr "ACEs kan kun blive oprettet og slettet" -#: bin/rt-commit-handler:754 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Afbryder for a undgÃ¥ utilsigtede ticket ændringer" @@ -387,37 +473,45 @@ msgstr "Om mig" msgid "Access control" msgstr "Adgangskontrol" -#: html/Admin/Elements/EditScrip:56 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "Aktion" -#: lib/RT/Scrip_Overlay.pm:146 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Aktion %1 ikke fundet" #MANGLER -#: bin/rt-crontool:122 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "Aktion " -#: bin/rt-crontool:118 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "Aktion forberedt" -#: html/Search/Bulk.html:95 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "Tilføj AdminCc" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "Tilføj Cc" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "Tilføj flere filer" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "Tilføj Anmoder" @@ -437,7 +531,11 @@ msgstr "Tilføj en scrip til denne kø" msgid "Add a scrip which will apply to all queues" msgstr "Tilføj en scrip som vil virke for alle køer" -#: html/Search/Bulk.html:127 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "Tilføj kommentarer eller svar til valgte tickets" @@ -450,26 +548,25 @@ msgid "Add new watchers" msgstr "Tilføj nye watchers" HERTIL - #: NOT FOUND IN SOURCE msgid "AddNextState" msgstr "TilføjNæsteStatus" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Tilføjede principal som %1 for denne kø" -#: lib/RT/Ticket_Overlay.pm:1471 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Tilføjede principal som %1 for denne ticket" -#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "Adresse1" -#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:89 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "Adresse2" @@ -477,11 +574,11 @@ msgstr "Adresse2" msgid "Admin Cc" msgstr "Admin Cc" -#: etc/initialdata:280 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "Admin Kommentar" -#: etc/initialdata:259 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "Admin Korrespondance" @@ -502,7 +599,7 @@ msgid "Admin/Groups" msgstr "Admin/Grupper" #Mangler -#: html/Admin/Queues/Modify.html:24 html/Admin/Queues/Modify.html:28 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "Admin/Køer/Basics" @@ -510,7 +607,7 @@ msgstr "Admin/Køer/Basics" msgid "AdminAllPersonalGroups" msgstr "AdminAllPersonligeGrupper" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "AdminCc" @@ -522,15 +619,15 @@ msgstr "AdminKommentar" msgid "AdminCorrespondence" msgstr "AdminKorrespondance" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "AdminCustomFelter" -#: lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:146 msgid "AdminGroup" msgstr "AdminGruppe" -#: lib/RT/Group_Overlay.pm:147 +#: lib/RT/Group_Overlay.pm:148 msgid "AdminGroupMembership" msgstr "AdminGruppeMedlemskab" @@ -538,7 +635,7 @@ msgstr "AdminGruppeMedlemskab" msgid "AdminOwnPersonalGroups" msgstr "AdminEgnePersonligeGrupper" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "AdminKø" @@ -550,6 +647,10 @@ msgstr "AdminBrugere" msgid "Administrative Cc" msgstr "Administrativ Cc" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Avanceret Søgning" @@ -562,11 +663,11 @@ msgstr "Efter" msgid "Age" msgstr "Alder" -#: etc/initialdata:348 +#: etc/initialdata:363 msgid "All Approvals Passed" msgstr "All godkendelser godtaget" -#: html/Admin/Elements/EditCustomFields:95 +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Alle custom felter" @@ -578,7 +679,15 @@ msgstr "Alle Køer" msgid "Always sends a message to the requestors independent of message sender" msgstr "Sender altid en besked til requestoren uafhængigt af besked afsenderen" -#: html/Elements/Tabs:55 +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + +#: html/Elements/Tabs:58 msgid "Approval" msgstr "Godkendelse" @@ -603,11 +712,11 @@ msgstr "Godkendelse #%1: Noter gemt" msgid "Approval Details" msgstr "Godkendelses detaljer" -#: etc/initialdata:336 +#: etc/initialdata:351 msgid "Approval Passed" msgstr "Godkendelse godtaget" -#: etc/initialdata:359 +#: etc/initialdata:374 msgid "Approval Rejected" msgstr "Godkendelse afvist" @@ -619,7 +728,7 @@ msgstr "Godkendelses diagram" msgid "Approve" msgstr "Godkend" -#: etc/initialdata:486 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "Apprtover's noter: %1" @@ -627,11 +736,11 @@ msgstr "Apprtover's noter: %1" msgid "Apr." msgstr "Apr." -#: html/Elements/SelectSortOrder:34 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "Stigende" -#: html/Search/Bulk.html:136 html/SelfService/Update.html:32 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "Vedhæft" @@ -639,19 +748,20 @@ msgstr "Vedhæft" msgid "Attach file" msgstr "Vedhæft fil" -#: html/Ticket/Create.html:97 html/Ticket/Update.html:87 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "Vedhæftet fil" -#: NOT FOUND IN SOURCE +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Vedhæftede fil '%1' kunne ikke indlæses" -#: lib/RT/Transaction_Overlay.pm:441 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "Vedhæftet fil oprettet" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "Vedhæftetfilnavn" @@ -659,15 +769,19 @@ msgstr "Vedhæftetfilnavn" msgid "Attachments" msgstr "Vedhæftede filer" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "Aug." -#: html/Admin/Elements/ModifyUser:65 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "AuthSystem" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "Autosvar" @@ -679,6 +793,10 @@ msgstr "Autosvar til Requestere" msgid "AutoreplyToRequestors" msgstr "AutoSvarTilRequestere" +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Ubrugelig PGP Signatur: %1\\n" @@ -687,8 +805,7 @@ msgstr "Ubrugelig PGP Signatur: %1\\n" msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "Ubrugelig vedhæftelses id. Kunne ikke lokaliserer vedhæftet fil '%1'\\n" -#: bin/rt-commit-handler:826 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "DÃ¥rlige data i %1" @@ -696,19 +813,19 @@ msgstr "DÃ¥rlige data i %1" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Ubrugeligt transaktionsnummer for vedhæftet fil. %1 skulle være %2\\n" -#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 +#: 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 "Basics" -#: html/Ticket/Update.html:81 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:87 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/User/Groups/Modify.html:55 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "Vær sikker pÃ¥ at gemme dine ændringer" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:321 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "Før" @@ -716,14 +833,18 @@ msgstr "Før" msgid "Begin Approval" msgstr "PÃ¥begynd godkendelse" -#: etc/initialdata:202 +#: etc/initialdata:217 msgid "Blank" msgstr "Tom" -#: html/Search/Listing.html:78 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "URl for denne søgning som kan gemmes som bookmark" +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + #: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "Korte headers" @@ -732,36 +853,44 @@ msgstr "Korte headers" msgid "Bulk ticket update" msgstr "Masse-ticket opdatering" -#: lib/RT/User_Overlay.pm:1524 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "Kan ikke modificere system brugere" -#: lib/RT/Queue_Overlay.pm:66 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "Kan denne principal se denne kø" -#: lib/RT/CustomField_Overlay.pm:205 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "Kan ikke tilføje custom felt værdi uden et navn" -#: lib/RT/Link_Overlay.pm:131 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "Kan ikke linke en ticket til den selv" -#: lib/RT/Ticket_Overlay.pm:2844 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Kan ikke sammensætte ind i en sammensat ticket. Du skulle aldrig fÃ¥ denne fejl" -#: lib/RT/Ticket_Overlay.pm:2646 lib/RT/Ticket_Overlay.pm:2725 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "Kan ikke specificere bÃ¥de base og mÃ¥l" -#: html/autohandler:113 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "Kan ikke oprette bruger: %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:44 html/Ticket/Update.html:76 lib/RT/ACE_Overlay.pm:87 +#: 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" @@ -769,7 +898,7 @@ msgstr "Cc" msgid "Change password" msgstr "Skift adgangskode" -#: html/Ticket/Create.html:100 html/Ticket/Update.html:90 +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "Vælg boks for at slette" @@ -777,15 +906,15 @@ msgstr "Vælg boks for at slette" msgid "Check box to revoke right" msgstr "Vælg boks for a indrage rettighed" -#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:130 html/Ticket/Elements/EditLinks:68 html/Ticket/Elements/ShowLinks:56 +#: 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 "Børn" -#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:91 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "By" -#: html/Ticket/Elements/ShowDates:46 +#: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "Lukket" @@ -805,11 +934,11 @@ msgstr "Lukkede requests" msgid "Command not understood!\\n" msgstr "Kommando ikke forstÃ¥et!\\n" -#: html/Ticket/Elements/ShowTransaction:165 html/Ticket/Elements/Tabs:152 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "Kommentar" -#: html/Admin/Elements/ModifyQueue:44 html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "Kommentar adresse" @@ -817,40 +946,39 @@ msgstr "Kommentar adresse" msgid "Comment not recorded" msgstr "Kommentar ikke skrevet" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "Kommentér pÃ¥ tickets" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "KommenterPÃ¥Ticket" -#: html/Admin/Elements/ModifyUser:34 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "Kommentarer" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:68 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "Kommentarer (ikke sendt til requestere)" -#: html/Search/Bulk.html:131 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "Kommentarer (ikke sendt til requestere)" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "Kommentarer pÃ¥ %1" -#: html/Admin/Users/Modify.html:184 html/Ticket/Elements/ShowRequestor:43 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "Kommentarer om denne bruger" -#: lib/RT/Transaction_Overlay.pm:543 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "Kommentarer tilføjet" -#: lib/RT/Action/Generic.pm:139 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "Commit Ryddet" @@ -858,19 +986,19 @@ msgstr "Commit Ryddet" msgid "Compile Restrictions" msgstr "Oversættelses Restriktioner" -#: html/Admin/Elements/EditScrip:40 +#: html/Admin/Elements/EditScrip:41 msgid "Condition" msgstr "Betingelse" -#: bin/rt-crontool:108 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "Betingelser matcher..." -#: lib/RT/Scrip_Overlay.pm:159 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "Betingelse ikke fundet" -#: html/Elements/Tabs:49 +#: html/Elements/Tabs:52 msgid "Configuration" msgstr "Konfiguration" @@ -878,7 +1006,7 @@ msgstr "Konfiguration" msgid "Confirm" msgstr "Bekræft" -#: html/Admin/Elements/ModifyUser:59 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "KontaktInfomationsSystem" @@ -886,19 +1014,27 @@ msgstr "KontaktInfomationsSystem" msgid "Contacted date '%1' could not be parsed" msgstr "Dato kontaktet: '%1' kunne ikke parses" -#: html/Admin/Elements/ModifyTemplate:43 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "Indhold" -#: etc/initialdata:271 +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "Korrespondance" -#: html/Admin/Elements/ModifyQueue:38 html/Admin/Queues/Modify.html:50 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "Korrespondance adresse" -#: lib/RT/Transaction_Overlay.pm:539 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "Korrenspondance tilføjet" @@ -906,20 +1042,20 @@ msgstr "Korrenspondance tilføjet" msgid "Correspondence not recorded" msgstr "Korrespondance ikke gemt" -#: lib/RT/Ticket_Overlay.pm:3589 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "Ikke muligt at tilføje ny custom felt værdi for ticket. " -#: lib/RT/Ticket_Overlay.pm:3095 lib/RT/Ticket_Overlay.pm:3103 lib/RT/Ticket_Overlay.pm:3120 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "Ikke muligt at skifte ejer" -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:165 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "Ikke muligt at oprette Custom felt" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "Ikke muligt at oprette gruppe" @@ -928,11 +1064,11 @@ msgstr "Ikke muligt at oprette gruppe" msgid "Could not create template: %1" msgstr "Ikke muligt at oprette template: %1" -#: lib/RT/Ticket_Overlay.pm:1109 lib/RT/Ticket_Overlay.pm:352 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "Ikke muligt at oprette ticket. Kø ikke sat" -#: lib/RT/User_Overlay.pm:267 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:483 +#: 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 "Ikke muligt at oprette bruger" @@ -944,11 +1080,11 @@ msgstr "Ikke muligt at finde ticket med id %1" msgid "Could not find group %1." msgstr "Ikke muligt at finde gruppe %1" -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1439 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "Ikke muligt at finde eller oprette den bruger" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1518 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "Ikke muligt at finde principal" @@ -960,31 +1096,34 @@ msgstr "Ikke muligt at finde bruger %1" msgid "Could not load group" msgstr "Ikke muligt at indlæse gruppe" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Kunne ikke g¯re den principal %1 for denne k¯" -#: lib/RT/Ticket_Overlay.pm:1460 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Kunne ikke g¯re den prinicipal %1 for denne ticket" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Kunne ikke fjerne den principal %1 for denne k¯" -#: lib/RT/Ticket_Overlay.pm:1576 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" -msgstr "Kunne ikke fjerne den principal %1 for denne ticket" +msgstr "msgstr "Kunne ikke fjerne den principal %1 for denne ticket" " + +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" -#: lib/RT/Group_Overlay.pm:984 +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "Kunne ikke tilf¯je medlem til gruppe" -#: lib/RT/Ticket_Overlay.pm:3599 lib/RT/Ticket_Overlay.pm:3655 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Kunne ikke oprette en lave transaktion: %1" @@ -997,15 +1136,15 @@ msgstr "Kunne ikke afg¯re hvad som skulle foretages ud fra GPG's svar\\n" msgid "Couldn't find group\\n" msgstr "Kunne ikke finde gruppe\\n" -#: lib/RT/Interface/Web.pm:902 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "Kunne ikke finde row" -#: lib/RT/Group_Overlay.pm:958 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "Kunne ikke finde den principal" -#: lib/RT/CustomField_Overlay.pm:239 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "Kunne ikke finde den vÊrdi" @@ -1013,7 +1152,7 @@ msgstr "Kunne ikke finde den vÊrdi" msgid "Couldn't find user\\n" msgstr "Kunne ikke finde bruger\\n" -#: lib/RT/CurrentUser.pm:111 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Kunne ikke indlÊse %1 fra bruger database.\\n" @@ -1031,11 +1170,11 @@ msgstr "Kunne ikke indlÊse Scrips." msgid "Couldn't load group %1" msgstr "Kunne ikke indlÊse gruppe %1" -#: lib/RT/Link_Overlay.pm:174 lib/RT/Link_Overlay.pm:183 lib/RT/Link_Overlay.pm:210 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "Kunne ikke indlÊse link" -#: html/Admin/Elements/EditCustomFields:146 html/Admin/Queues/People.html:120 +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "Kunne ikke indlÊse k¯" @@ -1053,25 +1192,24 @@ msgstr "Kunne ikke indlÊse scrip" msgid "Couldn't load template" msgstr "Kunne ikke indlÊse template" -#: html/Admin/Users/Prefs.html:78 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "Kunne ikke indlÊse den bruger (%1)" -#: html/SelfService/Display.html:108 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Kunne ikke indlÊse ticket '%1'" -#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:97 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "Land" -#: html/Admin/Elements/CreateUserCalled:25 html/Ticket/Create.html:134 html/Ticket/Create.html:194 +#: 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 "opret" -#: etc/initialdata:127 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "opret Tickets" @@ -1120,7 +1258,7 @@ msgstr "opret en ny template" msgid "Create a new ticket" msgstr "opret en ny ticket" -#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:240 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "opret en ny bruger" @@ -1149,7 +1287,7 @@ msgstr "opret en template" msgid "Create a ticket" msgstr "opret en ticket" -#: etc/initialdata:129 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "opret en ny ticket baseret p denne scrip's template" @@ -1157,15 +1295,15 @@ msgstr "opret en ny ticket baseret p denne scrip's template" msgid "Create ticket" msgstr "opret ticket" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "opret tickets i denne k¯" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "opret, slet og rediger custom felter" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "opret, slet og rediger k¯er" @@ -1181,11 +1319,11 @@ msgstr "opret, slet og rediger medlemmernes personlie grupper" msgid "Create, delete and modify users" msgstr "opret, slet og rediger brugere" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "OpretTicket" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:26 lib/RT/Ticket_Overlay.pm:1203 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "Oprettet" @@ -1198,8 +1336,12 @@ msgstr "Oprettede Customer felt %1" msgid "Created template %1" msgstr "Oprettede template %1" -#: html/Ticket/Elements/EditLinks:27 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "Nuværende relationer" #: html/Admin/Elements/EditScrips:29 @@ -1214,7 +1356,7 @@ msgstr "Nuværende medlemmer" msgid "Current rights" msgstr "Nuværende rettigheder" -#: html/Search/Listing.html:70 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "Nuværende søgekriterier" @@ -1231,47 +1373,47 @@ msgstr "Custom Field #%1" msgid "Custom Fields" msgstr "Custom Felter" -#: html/Admin/Elements/EditScrip:72 +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "Custom aktion oprydnings kode" -#: html/Admin/Elements/EditScrip:64 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "Custom aktion forberedelses kode" -#: html/Admin/Elements/EditScrip:48 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "Custom betingelse" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "Custom felt %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Custom felt %1 har vÊrdi." -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Custom felt %1 har ingen vÊrdi." -#: lib/RT/Ticket_Overlay.pm:3491 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Custom felt %1 ikke fundet" -#: html/Admin/Elements/EditCustomFields:196 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "Custom felt slettet" -#: lib/RT/Ticket_Overlay.pm:3641 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "Custom felt ikke fundet" -#: lib/RT/CustomField_Overlay.pm:349 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "Custom felt vÊrdi %1 kunne ikke blive fundet for custom felt %2" @@ -1280,23 +1422,23 @@ msgstr "Custom felt vÊrdi %1 kunne ikke blive fundet for custom felt %2" msgid "Custom field value changed from %1 to %2" msgstr "Custom felt vÊrdi Êndret fra %1 to %2" -#: lib/RT/CustomField_Overlay.pm:249 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "Custom felt vÊrdi kunne ikke slettes" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "Custom felt vÊrdi kunne ikke findes" -#: lib/RT/CustomField_Overlay.pm:247 lib/RT/CustomField_Overlay.pm:357 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "Custom felt vÊrdi slettet" -#: lib/RT/Transaction_Overlay.pm:548 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "CustomFelt" -#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 +#: 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 "Datoer" @@ -1308,27 +1450,35 @@ msgstr "Dec." msgid "Default Autoresponse Template" msgstr "Default Autosvars Template" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Default autosvars template" -#: etc/initialdata:281 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "Default administrator kommentar template" -#: etc/initialdata:260 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "Default administrator korrespondance template" -#: etc/initialdata:272 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "Default korrespondance template" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "Default transaktions template" -#: lib/RT/Transaction_Overlay.pm:694 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "Default: %1/%2 Êndret til %3 to %4" @@ -1349,27 +1499,35 @@ msgstr "OverdragRettigheder" msgid "Delegation" msgstr "Overdragelse" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "Slet" -#: lib/RT/Queue_Overlay.pm:88 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "Slet tickets" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "SletTicket" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "Sletning af dette objekt kan ¯delÊgge referentiel integritet" -#: lib/RT/Queue_Overlay.pm:293 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "Sletning af dette objekt vil ¯delÊgge referentiel integritet" -#: lib/RT/User_Overlay.pm:499 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "Sletning af dette objekt vil stride mod referentiel integritet" @@ -1377,7 +1535,7 @@ msgstr "Sletning af dette objekt vil stride mod referentiel integritet" msgid "Deny" msgstr "Afvis" -#: html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:122 html/Ticket/Elements/EditLinks:46 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 +#: 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 "Afhængighed til" @@ -1385,31 +1543,31 @@ msgstr "Afhængighed til" msgid "Dependencies: \\n" msgstr "Afhængigheder: \\n" -#: lib/RT/Transaction_Overlay.pm:626 +#: lib/RT/Transaction_Overlay.pm:621 #. ($value) msgid "Dependency by %1 added" msgstr "Afhængighed til %1 tilf¯jet" -#: lib/RT/Transaction_Overlay.pm:655 +#: lib/RT/Transaction_Overlay.pm:661 #. ($value) msgid "Dependency by %1 deleted" msgstr "Afhængighed til %1 slettet" -#: lib/RT/Transaction_Overlay.pm:624 +#: lib/RT/Transaction_Overlay.pm:618 #. ($value) msgid "Dependency on %1 added" msgstr "Afhængighed af %1 tilf¯jet" -#: lib/RT/Transaction_Overlay.pm:653 +#: lib/RT/Transaction_Overlay.pm:658 #. ($value) msgid "Dependency on %1 deleted" msgstr "Afhængighed af %1 slettet" -#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:179 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:118 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 +#: 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 "Afhængig af" -#: html/Elements/SelectSortOrder:34 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "Faldende" @@ -1417,7 +1575,7 @@ msgstr "Faldende" msgid "Describe the issue below" msgstr "Beskriv problemet nedenfor" -#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 +#: 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 "Beskrivelse" @@ -1425,19 +1583,23 @@ msgstr "Beskrivelse" msgid "Details" msgstr "Detaljer" -#: html/Ticket/Elements/Tabs:84 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "Vis" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "Vis Adgangs Kontrol Liste" -#: lib/RT/Queue_Overlay.pm:74 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "Vis Scrip templates for denne kø" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "Vis scrips for denne kø" @@ -1445,10 +1607,18 @@ msgstr "Vis scrips for denne kø" msgid "Display mode" msgstr "Visnings modus" +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Vis ticket #%1" +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + #: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "Gør noget og alting" @@ -1457,15 +1627,15 @@ msgstr "Gør noget og alting" msgid "Don't refresh this page." msgstr "Genindlæs ikke denne side-" -#: html/Search/Elements/PickRestriction:113 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "Vis ikke søge resultater" -#: html/Ticket/Elements/ShowTransaction:91 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "Download" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:42 lib/RT/Ticket_Overlay.pm:1207 +#: 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 "Forfaldende" @@ -1473,8 +1643,7 @@ msgstr "Forfaldende" msgid "Due date '%1' could not be parsed" msgstr "Forfaldsdato '%1' kunne ikke parses" -#: bin/rt-commit-handler:753 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "FEJL: Kunne ikke indlæse ticket '%1': %2.\\n" @@ -1482,20 +1651,28 @@ msgstr "FEJL: Kunne ikke indlæse ticket '%1': %2.\\n" msgid "Edit" msgstr "Editér" -#: html/Admin/Queues/CustomFields.html:44 +#: html/Admin/Queues/CustomFields.html:45 #. ($Queue->Name) msgid "Edit Custom Fields for %1" msgstr "Editér customer felter for %1" -#: html/Search/Bulk.html:143 html/Ticket/ModifyLinks.html:35 -msgid "Edit Relationships" +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "Editér forhold" +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + #: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Editér Templates for kø %1" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "Editér scrips" @@ -1508,14 +1685,16 @@ msgstr "Editér system templates" msgid "Edit templates for %1" msgstr "Editér templates for %1" -#: html/Admin/Elements/ModifyQueue:24 html/Admin/Queues/Modify.html:118 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "Editér Konfiguration for kø %1" -#: html/Admin/Elements/ModifyUser:24 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "Editerer Konfiguration for bruger %1" @@ -1538,23 +1717,23 @@ msgstr "Editerer medlemskab for personlig gruppe %1" msgid "Editing template %1" msgstr "Editerer template %1" -#: lib/RT/Ticket_Overlay.pm:2660 lib/RT/Ticket_Overlay.pm:2738 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "Enten base eller mÃ¥l skal være specificeret" -#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:41 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "E-mail" -#: lib/RT/User_Overlay.pm:247 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "E-mail adresse i brug" -#: html/Admin/Elements/ModifyUser:41 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "E-mailAdresse" -#: html/Admin/Elements/ModifyUser:53 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "E-mail encoding" @@ -1570,7 +1749,7 @@ msgstr "Aktiveret (Fravalg af denne boks deaktiverer denne gruppe)" msgid "Enabled (Unchecking this box disables this queue)" msgstr "Aktiveret (Fravalg af denne boks deaktiverer denne kø)" -#: html/Admin/Elements/EditCustomFields:98 +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Aktiverede Custom felter" @@ -1578,20 +1757,32 @@ msgstr "Aktiverede Custom felter" msgid "Enabled Queues" msgstr "Aktiverede Køer" -#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:282 html/User/Groups/Modify.html:116 +#: 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 "Aktiverede status %1" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "Indtast flere værdier" -#: lib/RT/CustomField_Overlay.pm:424 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "Indtast en værdi" -#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:111 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Indtast tickets eller URIs for linkning af tickets. Separer flere værdier med mellemrum." @@ -1599,35 +1790,51 @@ msgstr "Indtast tickets eller URIs for linkning af tickets. Separer flere værdi msgid "Error" msgstr "Fejl" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "Fejl i parametre til Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "Fejl i parametre til Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1392 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Fejl i parametre til Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1549 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "Fejl i parametre til Ticket->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "Alle" -#: bin/rt-crontool:193 +#: bin/rt-crontool:190 msgid "Example:" msgstr "Eksempel:" -#: html/Admin/Elements/ModifyUser:63 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "ExternalAuthId" -#: html/Admin/Elements/ModifyUser:57 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "ExternalContactInfoId" @@ -1635,15 +1842,15 @@ msgstr "ExternalContactInfoId" msgid "Extra info" msgstr "Ekstra information" -#: lib/RT/User_Overlay.pm:363 +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Fejlede i lokalisering 'Priviledged' brugere pseudogruppe." -#: lib/RT/User_Overlay.pm:370 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Fejlede i lokalisering af 'Unproviledged' brugere pseudogruppe" -#: bin/rt-crontool:137 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Fejlede i indlæsningen af modul %1. (%2)" @@ -1652,15 +1859,19 @@ msgstr "Fejlede i indlæsningen af modul %1. (%2)" msgid "Feb." msgstr "Feb." +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "Slut" -#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "Endelig Prioritet" -#: lib/RT/Ticket_Overlay.pm:1198 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "EndeligPrioritet" @@ -1676,7 +1887,7 @@ msgstr "Find nye/Ã¥bne tickets" msgid "Find people whose" msgstr "Find folk hvis" -#: html/Search/Listing.html:107 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "Find tickets" @@ -1684,36 +1895,36 @@ msgstr "Find tickets" msgid "Finish Approval" msgstr "Afslut godkendelse" -#: html/Ticket/Elements/Tabs:57 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "Første" -#: html/Search/Listing.html:40 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "Første side" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "Foo Bar Baz" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:86 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "gennemtving ændring" -#: html/Search/Listing.html:105 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "Fandt %quant(%1,ticket)" -#: lib/RT/Interface/Web.pm:904 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "Fandt Objekt" -#: html/Admin/Elements/ModifyUser:43 +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FreeformContactInfo" @@ -1733,11 +1944,15 @@ msgstr "Fre." msgid "Full headers" msgstr "Fulde headers" +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "Henter the nuværende bruger fra en PGP signatur\\n" -#: lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "Givet til %1" @@ -1755,7 +1970,11 @@ msgstr "Globale Scrips" msgid "Global template: %1" msgstr "Global template: %1" -#: html/Admin/Elements/EditCustomFields:74 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:40 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "Start!" @@ -1763,7 +1982,7 @@ msgstr "Start!" msgid "Good pgp sig from %1\\n" msgstr "God PGP signatur fra %1\\n" -#: html/Search/Listing.html:49 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "GÃ¥ til side" @@ -1771,7 +1990,7 @@ msgstr "GÃ¥ til side" msgid "Goto ticket" msgstr "GÃ¥ til ticket" -#: html/Ticket/Elements/AddWatchers:45 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "Gruppe" @@ -1783,7 +2002,7 @@ msgstr "Gruppe %1 %2: %3" msgid "Group Rights" msgstr "Gruppe Rettigheder" -#: lib/RT/Group_Overlay.pm:964 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "Gruppe har allerede medlem" @@ -1792,15 +2011,15 @@ msgstr "Gruppe har allerede medlem" msgid "Group could not be created: %1" msgstr "Gruppe kunne ikke blive oprettet: %1" -#: lib/RT/Group_Overlay.pm:496 +#: lib/RT/Group_Overlay.pm:497 msgid "Group created" msgstr "Gruppe oprettet" -#: lib/RT/Group_Overlay.pm:1132 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "Gruppen har sÃ¥dan et medlem" -#: lib/RT/Group_Overlay.pm:944 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1446 lib/RT/Ticket_Overlay.pm:1524 +#: 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 "Gruppe ikke fundet" @@ -1816,7 +2035,7 @@ msgstr "Gruppe ikke angivet.\\n" msgid "Groups" msgstr "Grupper" -#: lib/RT/Group_Overlay.pm:970 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "Grupper kan ikke være medlemmer af deres medlemmer" @@ -1824,16 +2043,16 @@ msgstr "Grupper kan ikke være medlemmer af deres medlemmer" msgid "Hello!" msgstr "Hej!" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "Hej, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:87 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "Historie" -#: html/Admin/Elements/ModifyUser:67 +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "HjemmeTelefon" @@ -1841,7 +2060,7 @@ msgstr "HjemmeTelefon" msgid "Homepage" msgstr "Homepage" -#: lib/RT/Base.pm:73 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "Jeg har %quant(%1,concrete mixer)." @@ -1850,7 +2069,7 @@ msgstr "Jeg har %quant(%1,concrete mixer)." msgid "I have [quant,_1,concrete mixer]." msgstr "Jeg har [quant,_1,concrete mixer]." -#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1018 +#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 msgid "Id" msgstr "Id" @@ -1858,11 +2077,19 @@ msgstr "Id" msgid "Identity" msgstr "Identitet" -#: etc/initialdata:411 etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Hvis en godkendelse bliver afvist, afvis den originale og slet ventede godkendelser" -#: bin/rt-crontool:189 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "Hvis dette værktøj var setgid, kunne en fjendtlig bruger benytte dette værktøj til at opnÃ¥ administrat adgang til RT." @@ -1870,18 +2097,22 @@ msgstr "Hvis dette værktøj var setgid, kunne en fjendtlig bruger benytte dette msgid "If you've updated anything above, be sure to" msgstr "Hvis du har opdateret noget ovenfor, vær da sikker pÃ¥ at" -#: lib/RT/Interface/Web.pm:896 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "Ulovlig værdi for %1" -#: lib/RT/Interface/Web.pm:899 +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "Uforanderligt felt" -#: html/Admin/Elements/EditCustomFields:73 +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Medtag deaktiverede custom felter i liste." +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + #: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "Medtag deaktiverede køer i liste." @@ -1890,28 +2121,28 @@ msgstr "Medtag deaktiverede køer i liste." msgid "Include disabled users in search." msgstr "Medtag deaktiverede brugere i liste." -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "Initiel Prioritet" -#: lib/RT/Ticket_Overlay.pm:1197 lib/RT/Ticket_Overlay.pm:1199 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "InitielPrioritet" -#: lib/RT/ScripAction_Overlay.pm.orig:104 lib/RT/ScripAction_Overlay.pm:104 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "Input fejl" -#: lib/RT/Ticket_Overlay.pm:3866 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "Intern Fejl" -#: lib/RT/Record.pm:142 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Intern Fejl: %1" -#: lib/RT/Group_Overlay.pm:643 +#: lib/RT/Group_Overlay.pm:644 msgid "Invalid Group Type" msgstr "Ikke valid Gruppe Type" @@ -1919,15 +2150,15 @@ msgstr "Ikke valid Gruppe Type" msgid "Invalid Right" msgstr "Ikke valid Rettighed" -#: lib/RT/Interface/Web.pm:901 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "Ikke valide data" -#: lib/RT/Ticket_Overlay.pm:457 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Ikke valid ejer, Default'er til 'nobody'" -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm.orig:250 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "Ikke valid kø" @@ -1935,28 +2166,28 @@ msgstr "Ikke valid kø" msgid "Invalid right" msgstr "Ikke valid rettighed" -#: lib/RT/Record.pm:117 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "Ikke valid værdi for %1" -#: lib/RT/Ticket_Overlay.pm:3498 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "Ikke valid værdi for custom felt" -#: lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "Ikke valid værdi for status" -#: bin/rt-crontool:190 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "Det er af højeste vigtighed at ikke-privilegerede brugere ikke fÃ¥r adgang til at køre dette værktøj." -#: bin/rt-crontool:191 +#: 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 "Det anbefales at du opretter en ikke-priviligeret unix bruger med det korrekte gruppe medlemsjab og RT adgang for at benytte dette værktøj." -#: bin/rt-crontool:162 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "Det tager adskellige argumenter:" @@ -1968,7 +2199,7 @@ msgstr "Elementer som afventer min godkendelse" msgid "Jan." msgstr "Jan." -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:149 msgid "Join or leave this group" msgstr "Tilslut eller forlad denne gruppe" @@ -1976,7 +2207,7 @@ msgstr "Tilslut eller forlad denne gruppe" msgid "Jul." msgstr "Jul." -#: html/Ticket/Elements/Tabs:98 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "Jumbo" @@ -1988,15 +2219,19 @@ msgstr "Jun." msgid "Keyword" msgstr "Nøgleord" -#: html/Admin/Elements/ModifyUser:51 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "Sprog" -#: html/Ticket/Elements/Tabs:72 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "Sidste" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:38 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "Sidste kontakt" @@ -2004,7 +2239,7 @@ msgstr "Sidste kontakt" msgid "Last Contacted" msgstr "Sidst kontaktet" -#: html/Search/Elements/TicketHeader:40 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "Sidst Notificeret" @@ -2012,7 +2247,11 @@ msgstr "Sidst Notificeret" msgid "Last Updated" msgstr "Sidst Opdateret" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "Tilbage" @@ -2032,25 +2271,25 @@ msgstr "Begrænser ejer til %1 %2" msgid "Limiting queue to %1 %2" msgstr "Begrænser kø til %1 %2" -#: lib/RT/Ticket_Overlay.pm:2752 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "Link eksisterer allerede" -#: lib/RT/Ticket_Overlay.pm:2764 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "Link kunne ikke blive oprettet" -#: lib/RT/Ticket_Overlay.pm:2772 lib/RT/Ticket_Overlay.pm:2784 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "Link oprettet (%1)" -#: lib/RT/Ticket_Overlay.pm:2685 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "Link slettet (%1)" -#: lib/RT/Ticket_Overlay.pm:2691 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "Link ikke fundet" @@ -2059,69 +2298,81 @@ msgstr "Link ikke fundet" msgid "Link ticket #%1" msgstr "Link ticket #%1" -#: html/Ticket/Elements/Tabs:96 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "Links" -#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:84 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "Lokation" -#: lib/RT.pm:162 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Log directory %1 kunne ikke findes eller skrive til.\\n RT kan ikke køre." -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Logget ind som %1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +#: 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 "Log ind" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "Log ud" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "Lav Ejer" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "Lav Status" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "Sæt forfaldsdato" -#: html/Search/Bulk.html:119 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "Sæt løsnings dato" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "Sæt startet dato" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "Sæ startes dato" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "Sæt dato fortalt" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "Sæt Prioritet" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "Sæt kø" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "Sæt emne" @@ -2149,25 +2400,25 @@ msgstr "Mar." msgid "May." msgstr "Maj." -#: lib/RT/Transaction_Overlay.pm:635 +#: lib/RT/Transaction_Overlay.pm:634 #. ($value) msgid "Member %1 added" msgstr "Medlem %1 tilføjet" -#: lib/RT/Transaction_Overlay.pm:664 +#: lib/RT/Transaction_Overlay.pm:674 #. ($value) msgid "Member %1 deleted" msgstr "Medlem %1 slettet" -#: lib/RT/Group_Overlay.pm:981 +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "Medlem tilføjet" -#: lib/RT/Group_Overlay.pm:1139 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "Medlem slettet" -#: lib/RT/Group_Overlay.pm:1143 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "Medlem ikke slettet" @@ -2179,45 +2430,62 @@ msgstr "Medlem af" msgid "Members" msgstr "Medlemmer" -#: lib/RT/Transaction_Overlay.pm:633 +#: lib/RT/Transaction_Overlay.pm:631 #. ($value) msgid "Membership in %1 added" msgstr "Medlemskan af %1 tilføjet" -#: lib/RT/Transaction_Overlay.pm:662 +#: lib/RT/Transaction_Overlay.pm:671 #. ($value) msgid "Membership in %1 deleted" msgstr "Medlemskab af %1 slettet" -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "Sammensmeltning succesfuld" -#: lib/RT/Ticket_Overlay.pm:2861 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Sammensmeltning fejlede. Kunne ikke sætte EffectiveId" -#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:114 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "Sammensmelt med" -#: html/Search/Bulk.html:137 html/Ticket/Update.html:100 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "Besked" -#: lib/RT/Interface/Web.pm:903 +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "Mangler en primærnøgle?: %1" -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:53 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "Mobil" -#: html/Admin/Elements/ModifyUser:71 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "MobilTelefon" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "Modificér Adgangs Kontrol Liste" @@ -2229,18 +2497,34 @@ msgstr "Modificér Custom Felt %1" msgid "Modify Custom Fields which apply to all queues" msgstr "Modificér Custom felter som gælder for alle køer" -#: lib/RT/Queue_Overlay.pm:72 -msgid "Modify Scrip templates for this queue" -msgstr "Modificér Scrip templates for denne kø" +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" -#: lib/RT/Queue_Overlay.pm:75 -msgid "Modify Scrips for this queue" -msgstr "Modificér Scrips for denne kø" +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "Modify Scrip templates for this queue" +msgstr "Modificér Scrip templates for denne kø" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "Modify Scrips for this queue" +msgstr "Modificér Scrips for denne kø" #: NOT FOUND IN SOURCE msgid "Modify Template %1" msgstr "Modificér Template %1" +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + #: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" @@ -2289,7 +2573,7 @@ msgstr "Modificér globale bruger rettiheder" msgid "Modify global user rights." msgstr "Modificér globake bruger rettigehder" -#: lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:146 msgid "Modify group metadata or delete group" msgstr "Modificér gruppe metadata eller slet gruppe" @@ -2303,7 +2587,7 @@ msgstr "Modificér gruppe rettigheder for gruppe %1" msgid "Modify group rights for queue %1" msgstr "Modificér gruppe rettigheder for kø %1" -#: lib/RT/Group_Overlay.pm:147 +#: lib/RT/Group_Overlay.pm:148 msgid "Modify membership roster for this group" msgstr "Modificér medlemskabsliste for denne gruppe" @@ -2346,11 +2630,11 @@ msgstr "Modificér templates som gælder for alle køer" msgid "Modify the group %1" msgstr "Modificér gruppen %1" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "Modificér kø watchers" -#: html/Admin/Users/Modify.html:235 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Modificer brugeren %1" @@ -2365,7 +2649,7 @@ msgstr "Modificer ticket # %1" msgid "Modify ticket #%1" msgstr "Modificer ticket #%1" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "Modificer tickets" @@ -2383,19 +2667,19 @@ msgstr "Modificer bruger rettigheder for kø %1" msgid "Modify watchers for queue '%1'" msgstr "Modificer watchers for kø '%1'" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "ModificerACL" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:149 msgid "ModifyOwnMembership" msgstr "ModificerEgetMedlemskab" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "ModificerQueueWatchers" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "ModificerScrips" @@ -2403,11 +2687,11 @@ msgstr "ModificerScrips" msgid "ModifySelf" msgstr "ModificerSelv" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "ModificerTemplate" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "ModificerTicket" @@ -2415,7 +2699,7 @@ msgstr "ModificerTicket" msgid "Mon." msgstr "Man." -#: html/Ticket/Elements/ShowRequestor:41 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "Mere om %1" @@ -2432,7 +2716,7 @@ msgstr "Flyt op" msgid "Multiple" msgstr "Flere" -#: lib/RT/User_Overlay.pm:238 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "'Name' attribut skal angives" @@ -2449,11 +2733,15 @@ msgstr "Mine Godkendelser" msgid "My approvals" msgstr "Mine godkendelser" -#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "Navn" -#: lib/RT/User_Overlay.pm:245 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "Navn i brug" @@ -2461,7 +2749,7 @@ msgstr "Navn i brug" msgid "Need approval from system administrator" msgstr "Behøver godkendelse af system adminstrator" -#: html/Ticket/Elements/ShowDates:51 +#: html/Ticket/Elements/ShowDates:52 msgid "Never" msgstr "Aldrig" @@ -2469,23 +2757,27 @@ msgstr "Aldrig" msgid "New" msgstr "Ny" -#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/User/Prefs.html:64 +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "Nye relationer" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "Ny adgangskode" -#: etc/initialdata:317 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "Ny afventende godkendelse" -#: html/Ticket/Elements/EditLinks:110 -msgid "New Relationships" -msgstr "Nye relationer" +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" -#: html/Ticket/Elements/Tabs:35 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "Ny Søgning" -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:39 +#: 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 "Nyt custom felt" @@ -2497,7 +2789,7 @@ msgstr "Ny gruppe" msgid "New password" msgstr "Ny adgangskode" -#: lib/RT/User_Overlay.pm:764 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "Ny adgangskode notifikation afsendt" @@ -2529,11 +2821,11 @@ msgstr "Ny template" msgid "New ticket" msgstr "Ny ticket" -#: lib/RT/Ticket_Overlay.pm:2828 +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "Ny ticket eksisterer ikke" -#: html/Admin/Elements/UserTabs:51 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "Ny bruger" @@ -2545,27 +2837,31 @@ msgstr "Ny bruger kaldet" msgid "New watchers" msgstr "Nye watchers" -#: html/Admin/Users/Prefs.html:41 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "Ny vindues indstilling" -#: html/Ticket/Elements/Tabs:68 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "Næste" -#: html/Search/Listing.html:47 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "Næste side" -#: html/Admin/Elements/ModifyUser:49 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "NickName" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:45 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "Nickname" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:104 +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "Intet Custom felt" @@ -2573,11 +2869,15 @@ msgstr "Intet Custom felt" msgid "No Group defined" msgstr "Ingen grupper definerede" +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + #: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "Ingen kø defineret" -#: bin/rt-crontool:55 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "Ingen RT bruger fundet. Kontakt venligst din RT administrator.\\n" @@ -2585,7 +2885,7 @@ msgstr "Ingen RT bruger fundet. Kontakt venligst din RT administrator.\\n" msgid "No Template" msgstr "Ingen Template" -#: bin/rt-commit-handler:763 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "Ingen ticket angivet. Afbryder ticket" @@ -2597,7 +2897,7 @@ msgstr "Ingen ticket angivet. Afbryder ticket ændringer\\n\\n" msgid "No action" msgstr "Ingen aktion" -#: lib/RT/Interface/Web.pm:898 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "Ingen kolonne angivet" @@ -2605,49 +2905,52 @@ msgstr "Ingen kolonne angivet" msgid "No command found\\n" msgstr "Ingen kommando fundet\\n" -#: html/Elements/ViewUser:35 html/Ticket/Elements/ShowRequestor:44 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "Ingen kommentar inddateret for denne bruger" -#: lib/RT/Ticket_Overlay.pm:2220 lib/RT/Ticket_Overlay.pm:2288 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "Ingen korrespondance vedhæftet" -#: lib/RT/Action/Generic.pm:149 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: 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 "Ingen beskrivelse af %1" -#: lib/RT/Users_Overlay.pm:150 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "Ingen gruppe angivet" -#: lib/RT/User_Overlay.pm:982 +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "Ingen adgangskode sat" -#: lib/RT/Queue_Overlay.pm:260 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "Ingen rettighed til at oprette køer" -#: lib/RT/Ticket_Overlay.pm:360 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "Ingen adgang til at oprette tickets i denne kø '%1'" -#: lib/RT/User_Overlay.pm:211 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "Ingen rettighed til at oprette brugere" -#: html/SelfService/Display.html:117 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "Ingen adagang til at vise denne ticket" -#: html/SelfService/Update.html:51 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "Ingen adgang til at vise opdater ticket" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1505 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "Ingen principal angivet" @@ -2659,7 +2962,7 @@ msgstr "Ingen principaler valgt." msgid "No queues matching search criteria found." msgstr "Ingen køer fundet som matcher søge kriterie." -#: html/Admin/Elements/SelectRights:80 +#: html/Admin/Elements/SelectRights:81 msgid "No rights found" msgstr "Ingen rettigheder fundet" @@ -2667,15 +2970,19 @@ msgstr "Ingen rettigheder fundet" msgid "No rights granted." msgstr "Ingen rettigheder tildelt." -#: html/Search/Bulk.html:160 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "Ingen søgning at arbejde med." +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "Ingen ticket id angivet" -#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "Ingen transaktions type angivet" @@ -2683,19 +2990,19 @@ msgstr "Ingen transaktions type angivet" msgid "No users matching search criteria found." msgstr "Ingen brugere fundet som matcher søge kriterie" -#: bin/rt-commit-handler:643 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Ingen valid RT bruger fundet. RT CVS handler frakoblet. Kontakt venligst din RT administrator.\\n" -#: lib/RT/Interface/Web.pm:895 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "Ingen værdi sent til _Set!\\n" -#: html/Search/Elements/TicketRow:36 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "Ingen" -#: lib/RT/Interface/Web.pm:900 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "Ikke eksisterende felt?" @@ -2703,7 +3010,7 @@ msgstr "Ikke eksisterende felt?" msgid "Not logged in" msgstr "Ikke logget ind" -#: html/Elements/Header:59 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "Ikke logget ind." @@ -2723,23 +3030,31 @@ msgstr "Endnu ikke implementeret..." msgid "Notes" msgstr "Noter" -#: lib/RT/User_Overlay.pm:767 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "Notification kunne ikke sendes" -#: etc/initialdata:93 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "Notificér AdminCc'ere" -#: etc/initialdata:89 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "Notificér AdminCc'ere som kommentar" -#: etc/initialdata:120 +#: 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 "Notificér andre modtagere" -#: etc/initialdata:116 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "Notificér andre modtagere som kommentar" @@ -2751,19 +3066,19 @@ msgstr "Notificér ejer" msgid "Notify Owner as Comment" msgstr "Notificér ejer som kommentar" -#: etc/initialdata:361 +#: etc/initialdata:376 msgid "Notify Owner of their rejected ticket" msgstr "Notificér ejer om deres afviste ticket" -#: etc/initialdata:350 +#: etc/initialdata:365 msgid "Notify Owner of their ticket has been approved by all approvers" msgstr "Notificér ejere om deres ticket er blevet godkendt af alle Approvere" -#: etc/initialdata:338 +#: etc/initialdata:353 msgid "Notify Owner of their ticket has been approved by some approver" msgstr "Notificér ejere om deres ticket som er blevet godkendt af Approver" -#: etc/initialdata:319 etc/upgrade/2.1.71:17 +#: etc/initialdata:334 msgid "Notify Owners and AdminCcs of new items pending their approval" msgstr "Notificér ejere og AdminCc'ere om nye emner som afventer deres godkendelse" @@ -2771,19 +3086,19 @@ msgstr "Notificér ejere og AdminCc'ere om nye emner som afventer deres godkende msgid "Notify Requestors" msgstr "Notificér Requestere" -#: etc/initialdata:103 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "Notificér Requestere og Cc'ere" -#: etc/initialdata:98 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "Notificér Requestere og Cc'ere som kommentar" -#: etc/initialdata:112 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "Notificér Requestere, Cc'ere og AdminCc'ere" -#: etc/initialdata:108 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Notificér Requestere, Cc'ere og AdminCc'ere som kommentar" @@ -2791,11 +3106,11 @@ msgstr "Notificér Requestere, Cc'ere og AdminCc'ere som kommentar" msgid "Nov." msgstr "Nov." -#: lib/RT/Record.pm:156 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "Objekt kunne ikke oprettes" -#: lib/RT/Record.pm:175 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "Objekt oprettet" @@ -2803,39 +3118,55 @@ msgstr "Objekt oprettet" msgid "Oct." msgstr "Okt." +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + #: html/Elements/SelectDateRelation:34 msgid "On" msgstr "Ved" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "Ved kommentar" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "Ved korrespondance" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "Ved oprettelse" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "Ved ejerskifte" -#: etc/initialdata:177 +#: 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øskifte" -#: etc/initialdata:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "Ved løsning" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "Ved statusskifte" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "Ved transaktion" @@ -2853,7 +3184,7 @@ msgstr "Vis kun godkendelser for requests oprettet før %1" msgid "Open" msgstr "Ã…ben" -#: html/Ticket/Elements/Tabs:135 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Ã…ben den" @@ -2865,23 +3196,27 @@ msgstr "Ã…ben requests" msgid "Open tickets" msgstr "Ã…ben tickets" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "Ã…ben tickets (fra liste) i et nyt vindue" -#: html/Admin/Users/Prefs.html:39 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "Ã…ben tickets (fra liste) i andet vindue" -#: etc/initialdata:132 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "Ã…ben tickets ved korrespondance" -#: html/Search/Elements/PickRestriction:100 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Orden og sortering" -#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Elements/SelectUsers:28 html/User/Prefs.html:85 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "Organisation" @@ -2890,19 +3225,27 @@ msgstr "Organisation" msgid "Originating ticket: #%1" msgstr "Oprindelig ticket: #%1" -#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "Tid overskredet, prioritet gÃ¥r mod" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "Egne tickets" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "EgenTicket" -#: etc/initialdata:38 html/Elements/MyRequests:31 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:62 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "Ejer" @@ -2910,28 +3253,37 @@ msgstr "Ejer" msgid "Owner changed from %1 to %2" msgstr "Ejere ændret fra %1 til %2" -#: lib/RT/Transaction_Overlay.pm:582 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Ejer skiftet forceret fra %1 to %2" -#: html/Search/Elements/PickRestriction:30 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "Ejer er" -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:55 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "Bipper" -#: html/Admin/Elements/ModifyUser:73 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "BipperTelefon" -#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:126 html/Ticket/Elements/EditLinks:57 html/Ticket/Elements/ShowLinks:46 +#: 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 "Forældre" -#: html/Elements/Login:52 html/User/Prefs.html:60 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "Adgangskode" @@ -2939,32 +3291,36 @@ msgstr "Adgangskode" msgid "Password Reminder" msgstr "Adgangskode husker" -#: lib/RT/User_Overlay.pm:228 lib/RT/User_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "Adgangskode for kort" -#: html/Admin/Users/Modify.html:290 html/User/Prefs.html:171 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Adgangskode: %1" -#: html/Admin/Users/Modify.html:292 +#: html/Admin/Users/Modify.html:318 msgid "Passwords do not match." msgstr "Adgangskoder matcher ikke." -#: html/User/Prefs.html:173 +#: html/User/Prefs.html:211 msgid "Passwords do not match. Your password has not been changed" msgstr "Adgangskoder matcher ikke. Din adgangskode er ikke blevet skiftet" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:95 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "Folk" -#: etc/initialdata:125 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "Udfør en bruger-defineret aktion" -#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1098 lib/RT/Group_Overlay.pm:1107 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1162 lib/RT/Group_Overlay.pm:1168 lib/RT/Group_Overlay.pm:425 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:903 lib/RT/Group_Overlay.pm:907 lib/RT/Group_Overlay.pm:920 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:196 lib/RT/Scrip_Overlay.pm:433 lib/RT/Template_Overlay.pm.orig:283 lib/RT/Template_Overlay.pm.orig:87 lib/RT/Template_Overlay.pm.orig:93 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1377 lib/RT/Ticket_Overlay.pm:1387 lib/RT/Ticket_Overlay.pm:1401 lib/RT/Ticket_Overlay.pm:1535 lib/RT/Ticket_Overlay.pm:1544 lib/RT/Ticket_Overlay.pm:1557 lib/RT/Ticket_Overlay.pm:1906 lib/RT/Ticket_Overlay.pm:2044 lib/RT/Ticket_Overlay.pm:2208 lib/RT/Ticket_Overlay.pm:2275 lib/RT/Ticket_Overlay.pm:2634 lib/RT/Ticket_Overlay.pm:2715 lib/RT/Ticket_Overlay.pm:2819 lib/RT/Ticket_Overlay.pm:2834 lib/RT/Ticket_Overlay.pm:3033 lib/RT/Ticket_Overlay.pm:3043 lib/RT/Ticket_Overlay.pm:3048 lib/RT/Ticket_Overlay.pm:3270 lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3630 lib/RT/Ticket_Overlay.pm:3682 lib/RT/Ticket_Overlay.pm:3860 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1079 lib/RT/User_Overlay.pm:1527 lib/RT/User_Overlay.pm:687 lib/RT/User_Overlay.pm:722 lib/RT/User_Overlay.pm:978 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "Adgang afvist" @@ -2980,7 +3336,7 @@ msgstr "Personlige grupper" msgid "Personal groups:" msgstr "Personlige grupper:" -#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:48 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "Telefon numre" @@ -2988,7 +3344,7 @@ msgstr "Telefon numre" msgid "Placeholder" msgstr "Placeholder" -#: html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 +#: 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 "Præferencer" @@ -2996,15 +3352,19 @@ msgstr "Præferencer" msgid "Prefs" msgstr "Præferencer" -#: lib/RT/Action/Generic.pm:159 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "Prepare ryddet" -#: html/Ticket/Elements/Tabs:60 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "Forr." -#: html/Search/Listing.html:43 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "Forrige side" @@ -3017,19 +3377,23 @@ msgstr "Pri" msgid "Principal %1 not found." msgstr "Principal %1 ikke fundet." -#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "Prioritet" -#: html/Admin/Elements/ModifyQueue:50 html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "Prioritet starter ved" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "Priviligeret" -#: html/Admin/Users/Modify.html:270 html/User/Prefs.html:162 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Priviligeret status: %1" @@ -3042,7 +3406,15 @@ msgstr "Priviligerede brugere" msgid "Pseudogroup for internal use" msgstr "Pseudogruppe til intern brug" -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "Kø" @@ -3056,7 +3428,7 @@ msgstr "Kø %1 ikke fundet" msgid "Queue '%1' not found\\n" msgstr "Kø '%1' ikke fundet\\n" -#: html/Admin/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "Kø Navn" @@ -3064,19 +3436,19 @@ msgstr "Kø Navn" msgid "Queue Scrips" msgstr "Kø Scrips" -#: lib/RT/Queue_Overlay.pm:264 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "Kø eksisterer allerede" -#: lib/RT/Queue_Overlay.pm:273 lib/RT/Queue_Overlay.pm:279 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "Kø kunne ikke oprettes" -#: html/Ticket/Create.html:204 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "Kø kunne ikke indlæses" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "Kø oprettet" @@ -3084,7 +3456,7 @@ msgstr "Kø oprettet" msgid "Queue is not specified." msgstr "Kø ikke angivet" -#: html/SelfService/Display.html:70 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "Kø ikke fundet" @@ -3096,18 +3468,25 @@ msgstr "Køer" msgid "Quick search" msgstr "Kø søgning" +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + #: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 +#: 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" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: 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>." @@ -3147,7 +3526,11 @@ msgstr "RT modtog e-mail (%1) fra sig selv" msgid "RT Self Service / Closed Tickets" msgstr "RT Selv-betjening / Lukkede Tickets" -#: html/index.html:24 html/index.html:27 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "RT set fra oven" @@ -3180,8 +3563,7 @@ msgstr "RT for %1: %2" msgid "RT has proccessed your commands" msgstr "RT har processeret dine kommandoer" -#: html/Elements/Login:94 -#. ('2003') +#: 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>. Bliver distribueret under <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 af 'GNU General Public License'.</a>" @@ -3197,39 +3579,39 @@ msgstr "RT vil processere denne besked som var den var usigneret.\\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 "RT's e-mail kommando modus kræver PGP authentikering. Enten har du ikke signeret din besked, eller ogsÃ¥ kunne din signatur ikke verificeres." -#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "Fulde Navn" -#: html/Admin/Elements/ModifyUser:47 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "FuldeNavn" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:628 #. ($value) msgid "Reference by %1 added" msgstr "Reference fra %1 tilføjet" -#: lib/RT/Transaction_Overlay.pm:660 +#: lib/RT/Transaction_Overlay.pm:668 #. ($value) msgid "Reference by %1 deleted" msgstr "Reference fra %1 slettet" -#: lib/RT/Transaction_Overlay.pm:629 +#: lib/RT/Transaction_Overlay.pm:625 #. ($value) msgid "Reference to %1 added" msgstr "Reference til %1 tilføjet" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:665 #. ($value) msgid "Reference to %1 deleted" msgstr "Reference til %1 slettet" -#: html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:138 html/Ticket/Elements/EditLinks:93 html/Ticket/Elements/ShowLinks:70 +#: 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 "Referreret til af" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:134 html/Ticket/Elements/EditLinks:79 html/Ticket/Elements/ShowLinks:60 +#: 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 "Refererer til" @@ -3237,7 +3619,7 @@ msgstr "Refererer til" msgid "Refine" msgstr "Forfin" -#: html/Search/Elements/PickRestriction:26 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Forfin søgning" @@ -3246,39 +3628,43 @@ msgstr "Forfin søgning" msgid "Refresh this page every %1 minutes." msgstr "Genindlæs denne side hver %1 minutter" -#: html/Ticket/Create.html:173 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 -msgid "Relationships" -msgstr "Relationer" - -#: html/Search/Bulk.html:97 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "Fjern AdminCc" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:91 msgid "Remove Cc" msgstr "Fjern Cc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "Fjern Requestor" -#: html/Ticket/Elements/ShowTransaction:159 html/Ticket/Elements/Tabs:121 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "Svar" -#: lib/RT/Queue_Overlay.pm:84 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "Svar pÃ¥ tickets" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "SvarPÃ¥Ticket" -#: etc/initialdata:44 html/Ticket/Update.html:39 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "Requestor" -#: html/Search/Elements/PickRestriction:37 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "Requestor e-mail adresse" @@ -3290,47 +3676,56 @@ msgstr "Requestor(s)" msgid "Requestors" msgstr "Requestors" -#: html/Admin/Elements/ModifyQueue:60 html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "Request skulle være forefaldende om" +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + #: html/Elements/Submit:61 msgid "Reset" msgstr "Reset" -#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "Residens" -#: html/Ticket/Elements/Tabs:131 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "Løs" -#: html/Ticket/Update.html:137 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Løs ticket #%1 (%2)" -#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1206 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "Løst" -#: html/Search/Bulk.html:132 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:71 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "Svar til requestors" -#: html/Elements/ListActions:25 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "Resultater" -#: html/Search/Elements/PickRestriction:104 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "Resultater per side" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "Genskriv adgangskode" +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Rettighed %1 ikke fundet for %2 %3 i scope %4 (%5)\\n" @@ -3363,16 +3758,16 @@ msgstr "Rettighed ikke indlæst." msgid "Right revoked" msgstr "Rettighed inddraget" -#: html/Admin/Elements/UserTabs:40 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "Rettigheder" -#: lib/RT/Interface/Web.pm:794 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Rettigheder kunne ikke tildeles %1" -#: lib/RT/Interface/Web.pm:827 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "Rettigheder kunne ikke inddrages for %1" @@ -3385,29 +3780,49 @@ msgstr "Roller" msgid "RootApproval" msgstr "RootGodkendelse" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "Lør." -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyLinks.html:38 html/Ticket/ModifyPeople.html:37 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "Gem Ændringer" -#: NOT FOUND IN SOURCE +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "Gem Ændringer" +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + #: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 -#. ($QueueObj->id) +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:175 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "Scrip Oprettet" -#: html/Admin/Elements/EditScrips:83 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "Scrip slettet" @@ -3423,7 +3838,7 @@ msgstr "Scrip for %1\\n" msgid "Scrips which apply to all queues" msgstr "Scrips som gælder for alle køer" -#: html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "Søg" @@ -3435,15 +3850,27 @@ msgstr "Søgekriterier" msgid "Search for approvals" msgstr "Søg efter godkendelser" -#: bin/rt-crontool:187 +#: bin/rt-crontool:184 msgid "Security:" msgstr "Sikkerhed:" -#: lib/RT/Queue_Overlay.pm:66 +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "SeKø" -#: html/Admin/Groups/index.html:39 +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "Vælg en gruppe" @@ -3463,11 +3890,11 @@ msgstr "Vælg custom felt" msgid "Select group" msgstr "Vælg gruppe" -#: lib/RT/CustomField_Overlay.pm:421 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "Vælg flere værdier" -#: lib/RT/CustomField_Overlay.pm:418 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "Vælg en værdi" @@ -3483,7 +3910,7 @@ msgstr "Vælg scrip" msgid "Select template" msgstr "Vælg template" -#: html/Admin/Elements/UserTabs:48 +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "Vælg bruger" @@ -3499,19 +3926,19 @@ msgstr "VælgEnkelt" msgid "Self Service" msgstr "Selv-betjening" -#: etc/initialdata:113 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "Send e-mail til alle watchers" -#: etc/initialdata:109 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "Send e-mail til alle wathers som en \"kommentar\"" -#: etc/initialdata:104 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "Sender e-mail til requestors og Ccs" -#: etc/initialdata:99 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "Sender e-mail til requestor og Ccs som en kommentar" @@ -3519,15 +3946,23 @@ msgstr "Sender e-mail til requestor og Ccs som en kommentar" msgid "Sends a message to the requestors" msgstr "Sender en besked til requestorne" -#: etc/initialdata:117 etc/initialdata:121 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "Sender e-mail til explicit listede Ccs og Bccs" -#: etc/initialdata:94 +#: 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 "Sender e-mail til de administrative Ccs" -#: etc/initialdata:90 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "Sender e-mail til de administrative Cc som en kommentar" @@ -3539,7 +3974,19 @@ msgstr "Sender e-mail til ejeren" msgid "Sep." msgstr "Sep." -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "Vis Resultater" @@ -3567,43 +4014,51 @@ msgstr "Vis afventede requests" msgid "Show requests awaiting other approvals" msgstr "Vis requests som afventer andre godkendelser" -#: lib/RT/Queue_Overlay.pm:80 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "Vis ticket private kommentar" -#: lib/RT/Queue_Overlay.pm:78 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "Vis ticket opsummeringer" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "VisACL" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "VisScrips" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "VisTemplate" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "VisTicket" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:81 msgid "ShowTicketComments" msgstr "VisTicketKommentarer" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "Tilmeld som en ticket requestor eller ticket eller kø Cc" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "Tilmeld som en ticket eller kø AdminCc" -#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "Signatur" @@ -3615,7 +4070,7 @@ msgstr "Tilsluttet som %1" msgid "Single" msgstr "Enkelt" -#: html/Elements/Header:50 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "Skip Menu" @@ -3627,7 +4082,7 @@ msgstr "Sorter" msgid "Sort key" msgstr "Sorteringsnøgle" -#: html/Search/Elements/PickRestriction:108 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "Sorter resultat efter" @@ -3635,6 +4090,10 @@ msgstr "Sorter resultat efter" msgid "SortOrder" msgstr "SorteringsOrden" +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "Stalled" @@ -3643,7 +4102,7 @@ msgstr "Stalled" msgid "Start page" msgstr "Start side" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:34 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "Startet" @@ -3651,7 +4110,7 @@ msgstr "Startet" msgid "Started date '%1' could not be parsed" msgstr "Startet dato '%1' kunne ikke parses" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:30 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "Starter" @@ -3663,19 +4122,19 @@ msgstr "Starter den" msgid "Starts date '%1' could not be parsed" msgstr "Starter dato '%1' kunne ikke parses" -#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:93 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "Tilstand" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1200 lib/RT/Tickets_Overlay.pm:908 +#: 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 "Status" -#: etc/initialdata:294 +#: etc/initialdata:309 msgid "Status Change" msgstr "Status Ændring" -#: lib/RT/Transaction_Overlay.pm:528 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "Status ændret fra %1 til %2" @@ -3684,28 +4143,28 @@ msgstr "Status ændret fra %1 til %2" msgid "StatusChange" msgstr "StatusÆndring" -#: html/Ticket/Elements/Tabs:146 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "Stjæl" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:94 msgid "Steal tickets" msgstr "Stjæl tickets" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:94 msgid "StealTicket" msgstr "StjælTicket" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "StjÃ¥let fra %1" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 lib/RT/Ticket_Overlay.pm:1196 lib/RT/Tickets_Overlay.pm:987 +#: 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 "Emne" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#: 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 "Emne ændret til %1" @@ -3718,7 +4177,7 @@ msgstr "Send" msgid "Submit Workflow" msgstr "Send Workflow" -#: lib/RT/Group_Overlay.pm:748 +#: lib/RT/Group_Overlay.pm:749 msgid "Succeeded" msgstr "Lykkedes" @@ -3734,10 +4193,18 @@ msgstr "SuperBruger" msgid "System" msgstr "System" -#: html/Admin/Elements/SelectRights:80 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:793 lib/RT/Interface/Web.pm:826 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "System Fejl" +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + #: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "System fejl. Rettighed ikke overdraget" @@ -3754,27 +4221,27 @@ msgstr "System grupper" msgid "SystemRolegroup for internal use" msgstr "SystemRolleGruppe for intern brug" -#: lib/RT/CurrentUser.pm:319 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Ticket/Elements/Tabs:142 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "Tag" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:92 msgid "Take tickets" msgstr "Tag tickets" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:92 msgid "TakeTicket" msgstr "TagTickets" -#: lib/RT/Transaction_Overlay.pm:573 +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "Taget" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "Template" @@ -3787,7 +4254,7 @@ msgstr "Template #%1" msgid "Template deleted" msgstr "Template slettet" -#: lib/RT/Scrip_Overlay.pm:152 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "Template ikke fundet" @@ -3795,7 +4262,7 @@ msgstr "Template ikke fundet" msgid "Template not found\\n" msgstr "Template ikke fundet\\n" -#: lib/RT/Template_Overlay.pm.orig:352 lib/RT/Template_Overlay.pm:353 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "Template parset" @@ -3807,15 +4274,15 @@ msgstr "Templates" msgid "Templates for %1\\n" msgstr "Templates for %1\\n" -#: lib/RT/Interface/Web.pm:894 +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "Det er allerede den nuværende værdi" -#: lib/RT/CustomField_Overlay.pm:242 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "Det er ikke værdi for dette custom felt" -#: lib/RT/Ticket_Overlay.pm:1917 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "Det er den samme værdi" @@ -3823,31 +4290,30 @@ msgstr "Det er den samme værdi" msgid "That principal already has that right" msgstr "Den principal har allerede den rettighed" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Den principal er allerede en %1 for denne kø" -#: lib/RT/Ticket_Overlay.pm:1451 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Den principal er allerede en %1 for denne ticket" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Den principal er ikke en %1 for denne kø" -#: lib/RT/Ticket_Overlay.pm:1568 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "Den principal er ikke en %1 for denne ticket" -#: lib/RT/Ticket_Overlay.pm:1913 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "Den kø eksisterer ikke" -#: lib/RT/Ticket_Overlay.pm:3274 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "Denne har ticket har uløste afhængigheder" @@ -3855,35 +4321,35 @@ msgstr "Denne har ticket har uløste afhængigheder" msgid "That user already has that right" msgstr "Den bruger har den rettighed" -#: lib/RT/Ticket_Overlay.pm:3084 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "Brugeren ejer allerede den ticket" -#: lib/RT/Ticket_Overlay.pm:3056 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "Brugeren eksisterer ikke" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "Brugere er allerede priviligeret" -#: lib/RT/User_Overlay.pm:397 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "Brugeren er allerede upriviligeret" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "Brugeren er nu priviligeret" -#: lib/RT/User_Overlay.pm:410 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "Brugere er nu upriviligeret" -#: lib/RT/Ticket_Overlay.pm:3077 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "Den bruger mÃ¥ ikke eje tickets i den kø" -#: lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "Det er ikke en numerisk værdi" @@ -3899,19 +4365,19 @@ msgstr "CC for en ticket" msgid "The administrative CC of a ticket" msgstr "Den administrative CC for en ticket" -#: lib/RT/Ticket_Overlay.pm:2244 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "Kommentarer er blevet gemt" -#: bin/rt-crontool:197 +#: 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 "Den følgende kommando vil finde alle aktive tickets i køen 'general' og vil sætte deres prioritet til 99 hvis de ikke er blevet rørt i 4 timer:" -#: bin/rt-commit-handler:755 bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "De følgende kommandoer blev ikke processeret:\\n\\n" -#: lib/RT/Interface/Web.pm:897 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "Den nye værdi er blevet sat" @@ -3927,19 +4393,27 @@ msgstr "Anmoderen af en ticket" msgid "These comments aren't generally visible to the user" msgstr "Disse kommentarer er ikke generelt synlige for brugeren" +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +msgid "This message will be sent to..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "Denne ticket %1 %2 (%3)\\n" -#: bin/rt-crontool:188 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Dette værktøj tillader brugeren at benyttet vilkÃ¥rlige Perl moduler inde fra RT." -#: lib/RT/Transaction_Overlay.pm:251 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "Denne transaktion synes ikke at have noget indhold" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Denne brugers højest prioriterede tickets" @@ -3966,17 +4440,23 @@ msgstr "ticket #%1 Jumbo opdatering: %2" msgid "Ticket #%1: %2" msgstr "ticket #%1: %2" -#: lib/RT/Ticket_Overlay.pm:623 lib/RT/Ticket_Overlay.pm:644 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "ticket %1 oprettet i kø '%2'" -#: bin/rt-commit-handler:759 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "Ticket %1 indlæst\\n" -#: html/Search/Bulk.html:212 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Ticket %1 : %2" @@ -3990,27 +4470,27 @@ msgstr "Ticket Historie # %1 %2" msgid "Ticket Id" msgstr "Ticket ID" -#: etc/initialdata:309 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "Ticket Løst" -#: html/Search/Elements/PickRestriction:62 +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Ticket vedhæftet fil" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "Ticket indhold" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "Ticket indholds type" -#: lib/RT/Ticket_Overlay.pm:514 lib/RT/Ticket_Overlay.pm:523 lib/RT/Ticket_Overlay.pm:533 lib/RT/Ticket_Overlay.pm:633 +#: 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 "Ticket kunne ikke oprettes pga. en intern fejl" -#: lib/RT/Transaction_Overlay.pm:520 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "Ticket oprettet" @@ -4018,7 +4498,7 @@ msgstr "Ticket oprettet" msgid "Ticket creation failed" msgstr "Ticket oprettelse mislykkedes" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "Ticket slettet" @@ -4026,15 +4506,19 @@ msgstr "Ticket slettet" msgid "Ticket id not found" msgstr "Ticket ID ikke fundet" +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "Ticket ikke fundet" -#: etc/initialdata:295 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "Ticket status ændret" -#: html/Ticket/Update.html:38 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "Ticket iagtagere" @@ -4042,18 +4526,17 @@ msgstr "Ticket iagtagere" msgid "Tickets" msgstr "Tickets" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "Tickets %1 %2" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "Tickets %1 af %2" -#: html/Elements/ViewUser:25 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Tickets fra %1" @@ -4061,60 +4544,73 @@ msgstr "Tickets fra %1" msgid "Tickets which depend on this approval:" msgstr "Tickets som afhænger af denne godkendelse:" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "Resterende tid" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "Tid Arbejdet" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "Resterende tid" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "Tid for visning" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "Tid arbejdet" -#: lib/RT/Ticket_Overlay.pm:1201 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "TidArbejdet" -#: bin/rt-commit-handler:401 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "For at generere en diff af denne commit:" -#: bin/rt-commit-handler:390 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "For at generere en difference af denne commit:\\n" -#: lib/RT/Ticket_Overlay.pm:1204 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "Fortalt" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "Transaktion" -#: lib/RT/Transaction_Overlay.pm:691 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transaktion %1 tømt" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "Transaktion Oprettet" -#: lib/RT/Transaction_Overlay.pm:88 +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "Transaktion->Opret kunne ikke gennemføres, da du ikke specificerede en ticket id" -#: lib/RT/Transaction_Overlay.pm:750 +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "Transaktioner er uforanderlige" @@ -4126,7 +4622,7 @@ msgstr "Forsøger at slette en rettighed: %1" msgid "Tue." msgstr "Tirs." -#: 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:1202 lib/RT/Tickets_Overlay.pm:959 +#: 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" @@ -4138,11 +4634,11 @@ msgstr "Uimplementeret" msgid "Unix login" msgstr "Unix login" -#: html/Admin/Elements/ModifyUser:61 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "UnixBrugernavn" -#: lib/RT/Attachment_Overlay.pm:276 lib/RT/Attachment_Overlay.pm:308 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Ukendt ContentEncoding %1" @@ -4151,47 +4647,63 @@ msgstr "Ukendt ContentEncoding %1" msgid "Unlimited" msgstr "Ubegrænset" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "Upriviligeret" -#: lib/RT/Transaction_Overlay.pm:569 +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "Ikke-tagede" -#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 +#: html/Search/Bulk.html:32 msgid "Update" msgstr "Opdater" -#: html/Admin/Users/Prefs.html:61 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Opdater ID" -#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:65 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "Opdater type" -#: html/Search/Listing.html:60 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "Opdater alle disse tickets pÃ¥ en gang" -#: html/Admin/Users/Prefs.html:48 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "Opdater email" -#: html/Admin/Users/Prefs.html:54 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "Opdater navn" -#: lib/RT/Interface/Web.pm:409 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "Opdatering ikke registreret" -#: html/Search/Bulk.html:80 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "Opdater valgte tickets" -#: html/Admin/Users/Prefs.html:35 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Opdater signatur" @@ -4203,24 +4715,32 @@ msgstr "Opdater ticket" msgid "Update ticket # %1" msgstr "Opdater ticket # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:46 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Opdater ticket #%1" -#: html/Ticket/Update.html:139 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Opdater ticket #%1 (%2)" -#: lib/RT/Interface/Web.pm:407 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "Opdaterings type var hverken korrespondance eller kommentar" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:50 lib/RT/Ticket_Overlay.pm:1205 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "Opdateret" +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "Bruger %1 %2: %3\\n" @@ -4229,6 +4749,11 @@ msgstr "Bruger %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Bruger %1 Adgangskode: %2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "Bruger '%1' ikke fundet" @@ -4237,11 +4762,15 @@ msgstr "Bruger '%1' ikke fundet" msgid "User '%1' not found\\n" msgstr "Bruger '%1' ikke fundet\\n" -#: etc/initialdata:124 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Bruger defineret" -#: html/Admin/Users/Prefs.html:58 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "Bruger ID" @@ -4253,12 +4782,12 @@ msgstr "Bruger ID" msgid "User Rights" msgstr "Bruger Rettigheder" -#: html/Admin/Users/Modify.html:225 +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "Bruger kunne ikke oprettes: %1" -#: lib/RT/User_Overlay.pm:321 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "Brugere oprettet" @@ -4266,7 +4795,7 @@ msgstr "Brugere oprettet" msgid "User defined groups" msgstr "Bruger definerede grupper" -#: lib/RT/User_Overlay.pm:575 lib/RT/User_Overlay.pm:592 +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 msgid "User loaded" msgstr "Bruger indlæst" @@ -4274,7 +4803,7 @@ msgstr "Bruger indlæst" msgid "User notified" msgstr "Bruger notificeret" -#: html/Admin/Users/Prefs.html:24 html/Admin/Users/Prefs.html:28 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "Bruger visning" @@ -4290,7 +4819,11 @@ msgstr "Brugere" msgid "Users matching search criteria" msgstr "Brugere som matcher søgekriterier" -#: html/Search/Elements/PickRestriction:50 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "KøVærdi" @@ -4298,11 +4831,11 @@ msgstr "KøVærdi" msgid "Values" msgstr "Værdier" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "Watch" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "WatchSomAdminCC" @@ -4310,7 +4843,7 @@ msgstr "WatchSomAdminCC" msgid "Watchers" msgstr "Watchers" -#: html/Admin/Elements/ModifyUser:55 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "WebEncoding" @@ -4318,75 +4851,87 @@ msgstr "WebEncoding" msgid "Wed." msgstr "Ons." -#: etc/initialdata:503 etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "NÃ¥r en ticket er blevet godkendt af alle Approvers, tilføj korrespondance til den originale ticket" -#: etc/initialdata:467 etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "NÃ¥r en ticket er blevet godkendt af hvilken som helst Approver, tilføj korrespondance til den originale ticket" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "NÃ¥r en ticket bliver oprettet" -#: etc/initialdata:400 etc/upgrade/2.1.71:79 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "NÃ¥r en godkendelses ticket bliver lavet, notificer Ejer og AdminCc af delen som afventer deres godkendelse" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "NÃ¥r hvad som helst sker" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "NÃ¥r en ticket bliver løst" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "NÃ¥r en tickets ejer ændres" -#: etc/initialdata:178 +#: 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 tickets kø ændres" -#: etc/initialdata:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "NÃ¥r en tickets status ændres" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "NÃ¥r en bruger defineret betingelse opfyldes" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "NÃ¥r kommentarer kommer ind" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "NÃ¥r korrespondance ankommer" -#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:51 +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "Arbejde" -#: html/Admin/Elements/ModifyUser:69 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "Arbejdstelefon" -#: html/Ticket/Elements/ShowBasics:34 html/Ticket/Update.html:64 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Arbejdede" -#: lib/RT/Ticket_Overlay.pm:3187 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "Du ejer allerede denne ticket" -#: html/autohandler:122 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "Du er ikke en authoriseret bruger" -#: lib/RT/Ticket_Overlay.pm:3069 +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Du kan kun tildele tickets du ejer eller som ikker ejet" @@ -4394,7 +4939,7 @@ msgstr "Du kan kun tildele tickets du ejer eller som ikker ejet" msgid "You don't have permission to view that ticket.\\n" msgstr "Du har ikke tilladelse til at se den ticket.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "Du fandt %1 tickets i kø %2" @@ -4403,11 +4948,11 @@ msgstr "Du fandt %1 tickets i kø %2" msgid "You have been logged out of RT." msgstr "Du er blevet logget ud af RT." -#: html/SelfService/Display.html:77 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "Du har ikke tilladelse til at lave requests i den kø" -#: lib/RT/Ticket_Overlay.pm:1926 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "Du mÃ¥ ikke oprette requests i den kø" @@ -4423,11 +4968,11 @@ msgstr "Din %1 anmodning" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "Din RT administrator har ikke konfigureret mail aliaser som starter RT korrekt " -#: etc/initialdata:484 etc/upgrade/2.1.71:146 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "Din anmodning er blevet godkendt af %1. Andre godkendelser afventer muligvis stadigvæk" -#: etc/initialdata:522 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "Din anmodning er blevet godkendt" @@ -4435,15 +4980,15 @@ msgstr "Din anmodning er blevet godkendt" msgid "Your request was rejected" msgstr "Din anmodning blev afvist" -#: etc/initialdata:427 etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "Din anmodning blev afvist" -#: html/autohandler:144 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "Dit brugernavn eller adgangskode er ukorrekt" -#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:95 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "Postnummer" @@ -4460,35 +5005,35 @@ msgstr "lukket" msgid "contains" msgstr "indeholder" -#: html/Elements/SelectAttachmentField:25 +#: NOT FOUND IN SOURCE msgid "content" msgstr "indhold" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "content-type" -#: lib/RT/Ticket_Overlay.pm:2313 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "korrespondance (muligvis) ikke sendt" -#: lib/RT/Ticket_Overlay.pm:2323 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "korrespondance afsendt" -#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "dage" -#: html/Search/Listing.html:74 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "slet" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "slettet" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "matcher ikke" @@ -4500,7 +5045,7 @@ msgstr "indeholder ikke" msgid "equal to" msgstr "lig med" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "filnavn" @@ -4508,7 +5053,7 @@ msgstr "filnavn" msgid "greater than" msgstr "større end" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "gruppe '%1'" @@ -4521,11 +5066,11 @@ msgstr "timer" msgid "id" msgstr "id" -#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 +#: 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 "er" -#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: 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 "er ikke" @@ -4533,7 +5078,7 @@ msgstr "er ikke" msgid "less than" msgstr "mindre end" -#: html/Search/Elements/PickRestriction:66 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "matcher" @@ -4541,11 +5086,11 @@ msgstr "matcher" msgid "min" msgstr "min." -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "minutter" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "ændringer\\n\\n" @@ -4553,10 +5098,14 @@ msgstr "ændringer\\n\\n" msgid "months" msgstr "mÃ¥neder" -#: lib/RT/Queue_Overlay.pm:57 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "ny" +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + #: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "ingen værdi" @@ -4569,25 +5118,25 @@ msgstr "ingen" msgid "not equal to" msgstr "ikke lig med" -#: html/SelfService/Elements/MyRequests:60 lib/RT/Queue_Overlay.pm:58 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "Ã¥ben" -#: lib/RT/Group_Overlay.pm:198 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "personlig gruppe '%1' for bruger '%2'" -#: lib/RT/Group_Overlay.pm:206 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "kø %1 %2" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "afvist" -#: lib/RT/Queue_Overlay.pm:60 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "løst" @@ -4595,16 +5144,20 @@ msgstr "løst" msgid "sec" msgstr "sek." -#: lib/RT/Queue_Overlay.pm:59 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "stallet" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "system %1" -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "system gruppe '%1'" @@ -4613,17 +5166,16 @@ msgstr "system gruppe '%1'" msgid "the calling component did not specify why" msgstr "den kaldende komponent specificerede ikke hvorfor" -#: lib/RT/URI/fsck_com_rt.pm:234 -#. ($self->Object->Id) +#: NOT FOUND IN SOURCE msgid "ticket #%1" msgstr "ticket #%1" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ticket #%1 %2" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "ubeskrevet gruppe %1" @@ -4632,7 +5184,7 @@ msgstr "ubeskrevet gruppe %1" msgid "undescripbed group %1" msgstr "ubeskrevet gruppe %1" -#: lib/RT/Group_Overlay.pm:190 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "bruger %1" diff --git a/rt/lib/RT/I18N/de.po b/rt/lib/RT/I18N/de.po index c79999988..6c1f3be57 100644 --- a/rt/lib/RT/I18N/de.po +++ b/rt/lib/RT/I18N/de.po @@ -12,27 +12,39 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +#: NOT FOUND IN SOURCE msgid "#" msgstr "#" -#: html/Admin/Queues/Scrip.html:55 -#. ($QueueObj->id) +#: NOT FOUND IN SOURCE msgid "#%1" msgstr "" -#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 -#. ($Ticket->Id, $Ticket->Subject) +#: 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" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: 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:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -42,7 +54,7 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%1 %3. %2 %7, %4:%5:%6" -#: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#: 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) @@ -54,20 +66,21 @@ msgstr "%1 %2 hinzugefügt" msgid "%1 %2 ago" msgstr "vor %1 %2" -#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#: 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 geändert in %3" -#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#: 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 gelöscht" -#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#: 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 mit der Vorlage %3" @@ -76,45 +89,71 @@ msgstr "%1 %2 mit der Vorlage %3" msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 dieses Ticket\\n" -#: html/Search/Listing.html:57 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "%1 - %2 angezeigt" -#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#: 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 - ein Argument zur Übergabe an %2" -#: bin/rt-crontool:185 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "" #msgstr "%1 - Schreibe Statusupdates nach STDOUT" -#: bin/rt-crontool:179 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Gebe an, welches Action-Modul benutzt werden soll" -#: bin/rt-crontool:173 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Gebe an, welches Condition-Modul benutzt werden soll" -#: bin/rt-crontool:166 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Gebe an, welches Search-Modul benutzt werden soll" -#: lib/RT/ScripAction_Overlay.pm:122 + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "ScripAction %1 geladen" -#: lib/RT/Ticket_Overlay.pm:3471 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 als Wert für %2 hinzugefügt" @@ -127,19 +166,19 @@ msgstr "" msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "" -#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#: 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 konnte nicht in der Datenbank gefunden werden obwohl es ein lokales Objekt zu sein scheint" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 +#: 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 "am %1 von %2" -#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#: 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) @@ -147,7 +186,12 @@ msgstr "am %1 von %2" msgid "%1 changed from %2 to %3" msgstr "%1 von %2 in %3 geändert" -#: lib/RT/Interface/Web.pm:857 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "%1 konnte nicht auf %2 gesetzt werden." @@ -155,37 +199,40 @@ msgstr "%1 konnte nicht auf %2 gesetzt werden." msgid "%1 couldn't init a transaction (%2)\\n" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 konnte den Status nicht auf erledigt setzen. Die RT-Datenbank könnte inkonsistent sein." -#: html/Elements/MyTickets:25 +#: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "%1 mir zugewiesene Anfragen mit höchster Priorität..." -#: html/Elements/MyRequests:25 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "Die %1 von mir ausgelösten Anfragen mit höchster Priorität" -#: bin/rt-crontool:161 +#: bin/rt-crontool:157 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "%1 ist ein Werkzeug um Anfragen über externe Terminierungstools wie \"cron\" zu verarbeiten" -#: lib/RT/Queue_Overlay.pm:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 ist kein %2 dieses Stapels mehr." -#: lib/RT/Ticket_Overlay.pm:1570 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 ist nicht mehr %2 dieser Anfrage." -#: lib/RT/Ticket_Overlay.pm:3527 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 ist kein Wert des benutzerdefinierten Feldes %2 mehr" @@ -194,29 +241,37 @@ msgstr "%1 ist kein Wert des benutzerdefinierten Feldes %2 mehr" msgid "%1 isn't a valid Queue id." msgstr "%1 ist keine gültige Stapel-Id." -#: RTFM +#: NOT FOUND IN SOURCE msgid "%1 matches" msgstr "%1 enthält" - -#: html/Ticket/Elements/ShowBasics:36 -#. ($TimeWorked) +#: 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/RTFM/UpdatedArticles:19 +#: NOT FOUND IN SOURCE msgid "%1 most recently updated articles" msgstr "%1 zuletzt überarbeitete Artikel" -#: RTFM +#: NOT FOUND IN SOURCE msgid "%1 newest articles" msgstr "%1 neueste Artikel" +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:75 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 Rechte" @@ -233,7 +288,7 @@ msgstr "" msgid "%1 type unknown for %2" msgstr "" -#: lib/RT/Action/ResolveMembers.pm:42 +#: lib/RT/Action/ResolveMembers.pm:41 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 wird alle Mitglieder eines erledigten Gruppentickets erledigen." @@ -242,22 +297,28 @@ msgstr "%1 wird alle Mitglieder eines erledigten Gruppentickets erledigen." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "" -#: lib/RT/Transaction_Overlay.pm:435 +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1: kein Anhang angegeben" -#: html/Ticket/Elements/ShowTransaction:102 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransaction:99 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1140 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' ist ein ungültiger Wert für Status" @@ -270,45 +331,49 @@ msgstr "" msgid "(Check box to delete scrip)" msgstr "(Markieren um Scrip zu löschen)" -#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +#: 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 "(Markieren um zu löschen)" +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Gib Anfragenummern oder URLs getrennt durch Leerzeichen ein)" -#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + +#: 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 "(Bei Freilassen %1" -#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" msgstr "(Keine benutzerdefinierten Felder)" -#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" msgstr "(Keine Mitglieder)" -#: html/RTFM/NewestArticles:35 -msgid "(no name)" -msgstr "(kein Name)" - -#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 msgid "(No scrips)" msgstr "(Keine Scrips)" -#: html/RTFM/UpdatedArticles.html:36 -msgid "(no Summary)" -msgstr "keine Zusammenfassung" - -#: html/Admin/Elements/EditTemplates:31 +#: html/Admin/Elements/EditTemplates:30 msgid "(No templates)" msgstr "(Keine Vorlagen)" -#: html/Ticket/Update.html:85 +#: 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 "(Schickt eine Blindkopie dieser Aktualisierung an eine durch Komma getrennte Liste von E-Mail-Adressen. Ändert <b>nicht</b> wer künftig Aktualisierungen geschickt bekommt.)" @@ -316,11 +381,11 @@ msgstr "(Schickt eine Blindkopie dieser Aktualisierung an eine durch Komma getre 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 "" -#: html/Ticket/Create.html:79 +#: 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 "(Schickt eine Kopie dieser Aktualisierung an eine durch Komma getrennte Liste von administrativen E-Mail-Adressen. Diese <b>werden</b> künftig Aktualisierungen erhalten.)" -#: html/Ticket/Update.html:81 +#: 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 "(Schickt eine Kopie dieser Aktualisierung an eine durch Komma getrennte Liste von E-Mail-Adressen. Ändert <b>nicht</b> wer künftig Aktualisierungen geschickt bekommt.)" @@ -328,43 +393,59 @@ msgstr "(Schickt eine Kopie dieser Aktualisierung an eine durch Komma getrennte 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 "" -#: html/Ticket/Create.html:69 +#: 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 "(Schickt eine Kopie dieser Aktualisierung an eine durch Komma getrennte Liste von E-Mail-Adressen. Diese <b>werden</b> künftig Aktualisierungen erhalten.)" -#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(leer)" -#: html/Admin/Users/index.html:39 +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "keine Zusammenfassung" + +#: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "" -#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "(kein Name)" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(kein Betreff)" -#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +#: 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 "(keine Angabe)" -#: html/Ticket/Elements/EditLinks:116 +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(nur eine Anfrage)" -#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(wartet auf Freigabe)" -#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(wartet auf andere Anfragen)" -#: html/Admin/Users/Modify.html:50 +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "(notwendig)" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(unbenannt)" @@ -376,77 +457,97 @@ msgstr "" msgid "25 highest priority tickets I requested..." msgstr "" -#: html/Ticket/Elements/ShowBasics:32 +#: html/Ticket/Elements/ShowBasics:31 msgid "<% $Ticket->Status%>" msgstr "" -#: html/Elements/SelectTicketTypes:27 +#: html/Elements/SelectTicketTypes:26 msgid "<% $_ %>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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=\"Neue Anfrage in\"> %1" -#: etc/initialdata:203 +#: etc/initialdata:218 msgid "A blank template" msgstr "Eine leere Vorlage" -#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "ACE nicht gefunden" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "ACEs können nur erstellt und gelöscht werden." -#: bin/rt-commit-handler:755 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Breche ab um ungewünschte Veränderungen an der Anfrage zu verhindern.\\n" -#: html/User/Elements/Tabs:32 +#: html/User/Elements/Tabs:31 msgid "About me" msgstr "Über mich" -#: html/Admin/Users/Modify.html:80 +#: html/Admin/Users/Modify.html:79 msgid "Access control" msgstr "Zugriffskontrolle" -#: html/Admin/Elements/EditScrip:57 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "Aktion" -#: lib/RT/Scrip_Overlay.pm:147 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Aktion %1 nicht gefunden" -#: bin/rt-crontool:123 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "Aktion durchgeführt." -#: bin/rt-crontool:119 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "Aktion vorbereitet..." -#: html/Search/Bulk.html:92 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "AdminCC hinzufügen" -#: html/Search/Bulk.html:90 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "CC hinzufügen" -#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "Mehr Dateien anhängen" msgstr "Weitere Dateien anhängen" -#: html/Search/Bulk.html:88 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "Klient hinzufügen" +#: html/Admin/Elements/AddCustomFieldValue:24 +msgid "Add Value" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Add a new a global scrip" msgstr "Erstelle ein neues globales Scrip" @@ -455,19 +556,23 @@ msgstr "Erstelle ein neues globales Scrip" msgid "Add a scrip to this queue" msgstr "Erstelle ein Scrip für diesen Stapel" -#: html/Admin/Global/Scrip.html:55 +#: html/Admin/Global/Scrip.html:54 msgid "Add a scrip which will apply to all queues" msgstr "Scrip erstellen, das auf alle Stapel angewendet wird" -#: html/Search/Bulk.html:118 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "Füge den ausgewählten Anfragen Kommentare oder Antworten hinzu" -#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 msgid "Add members" msgstr "Mitglieder hinzufügen" -#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 msgid "Add new watchers" msgstr "Neue Beobachter hinzufügen" @@ -475,37 +580,37 @@ msgstr "Neue Beobachter hinzufügen" msgid "AddNextState" msgstr "" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Habe einen Hauptverantwortlichen als %1 für diesen Stapel hinzugefügt" -#: lib/RT/Ticket_Overlay.pm:1454 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Habe einen Hauptverantwortlichen als %1 für diese Anfrage hinzugefügt" -#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "Adresse 1" -#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "Adresse 2" -#: html/Ticket/Create.html:74 +#: html/Ticket/Create.html:73 msgid "Admin Cc" msgstr "Admin CC" -#: etc/initialdata:274 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "Admin Kommentar" -#: etc/initialdata:256 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "Admin Korrespondenz" -#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 msgid "Admin queues" msgstr "Admin Stapel" @@ -513,7 +618,7 @@ msgstr "Admin Stapel" msgid "Admin users" msgstr "" -#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 msgid "Admin/Global configuration" msgstr "Admin/Globale Einstellungen" @@ -521,7 +626,7 @@ msgstr "Admin/Globale Einstellungen" msgid "Admin/Groups" msgstr "" -#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "Admin/Stapel/Basics" @@ -529,7 +634,7 @@ msgstr "Admin/Stapel/Basics" msgid "AdminAllPersonalGroups" msgstr "" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "" @@ -541,7 +646,7 @@ msgstr "" msgid "AdminCorrespondence" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "" @@ -553,31 +658,35 @@ msgstr "" msgid "AdminGroupMembership" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "AdminOwnPersonalGroups" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "AdminUsers" msgstr "" -#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "Administrative CC" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Erweiterte Suche" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Advanced Search Criteria" msgstr "Erweiterte Suchkriterien" -#: html/Elements/SelectDateRelation:36 +#: html/Elements/SelectDateRelation:35 msgid "After" msgstr "Nach dem" @@ -585,15 +694,19 @@ msgstr "Nach dem" msgid "Age" msgstr "Alter" -#: html/Admin/Elements/EditCustomFields:96 -msgid "All Custom Fields" -msgstr "Alle benutzerdefinierten Felder" +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" -#: html/RTFM/Admin/Classes/index.html:57 +#: NOT FOUND IN SOURCE msgid "All Classes" msgstr "Alle Klassen" -#: html/Admin/Queues/index.html:53 +#: html/Admin/Elements/EditCustomFields:94 +msgid "All Custom Fields" +msgstr "Alle benutzerdefinierten Felder" + +#: html/Admin/Queues/index.html:52 msgid "All Queues" msgstr "Alle Stapel" @@ -601,32 +714,31 @@ msgstr "Alle Stapel" msgid "Always sends a message to the requestors independent of message sender" msgstr "" -#: RTFM -msgid "and is not" -msgstr "und ist nicht" +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" -#: RTFM -msgid "and not" -msgstr "und nicht" +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" #: html/Elements/Tabs:58 msgid "Approval" msgstr "Freigabe" -#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 #. ($Ticket->Id, $Ticket->Subject) #. ($ticket->id, $msg) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Approval #%1: %2" msgstr "Freigabe #%1: %2" -#: html/Approvals/index.html:54 +#: html/Approvals/index.html:53 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Freigabe #%1: Notiz wurde aufgrund eines Systemfehlers nicht vermerkt" -#: html/Approvals/index.html:52 +#: html/Approvals/index.html:51 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Freigabe #%1: Notiz vermerkt" @@ -635,95 +747,96 @@ msgstr "Freigabe #%1: Notiz vermerkt" msgid "Approval Details" msgstr "" +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "Freigeben" -#: etc/initialdata:431 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "Notizen des Freigebenden: %1" -#: html/RTFM/Admin/CustomFields/UserRights.html:117 -msgid "No Class defined" -msgstr "Keine Klasse definiert" - -#: html/RTFM/Admin/CustomFields/Basics.html:69 -msgid "No CustomField" -msgstr "Kein benutzerdef. Feld" - -#: html/RTFM/Admin/CustomFields/GroupRights.html:73 -msgid "No CustomField defined" -msgstr "Kein benutzerdef. Feld definiert" - #: lib/RT/Date.pm:414 msgid "Apr." msgstr "Apr" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Are you sure you want to delete this article?" msgstr "Sind Sie sicher, dass sie diesen Artikel löschen wollen?" -#: html/RTFM/Article/delete.html:69 +#: NOT FOUND IN SOURCE msgid "Article #%1 deleted" msgstr "Artikel #%1 gelöscht" -#: html/RTFM/Article/Display.html:46 +#: NOT FOUND IN SOURCE msgid "Article #%1: %2" msgstr "Artikel #%1: %2" -#: html/RTFM/Article/Display.html:35 +#: NOT FOUND IN SOURCE msgid "Article not found" msgstr "Artikel wurde nicht gefunden" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Articles" msgstr "Artikel" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "aufsteigend" -#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "Anhängen" -#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "Datei anhängen" -#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "Dateianhang" -#: html/SelfService/Attachment/dhandler:36 +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Anhang '%1' konnte nicht geladen werden" -#: lib/RT/Transaction_Overlay.pm:443 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "Anhang erstellt" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "Dateiname des Anhangs" -#: html/Ticket/Elements/ShowAttachments:26 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "Anhänge" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "Aug" -#: html/Admin/Elements/ModifyUser:66 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "AuthSystem" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "Autoreply" @@ -735,38 +848,40 @@ msgstr "Autoreply an Klienten" msgid "AutoreplyToRequestors" msgstr "" +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Fehlerhafte PGP-Signatur: %1\\n" -#: html/SelfService/Attachment/dhandler:40 +#: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "Fehlerhafte Anhangs-Id. Konnte Anhang '%1' nicht finden\\n" -#: bin/rt-commit-handler:827 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "Fehlerhafte Daten in %1" -#: html/SelfService/Attachment/dhandler:43 -#. ($trans, $AttachmentObj->TransactionId()) +#: NOT FOUND IN SOURCE msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Fehlerhafte Transaktionsnummer für den Anhang. %1 solle %2 sein\\n" -#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +#: 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 "Grundlagen" -#: html/Ticket/Update.html:83 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "BCC" -#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "Denke daran, Deine Änderungen zu speichern" ### wieder - Duzen??? -#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "vor dem" @@ -774,100 +889,116 @@ msgstr "vor dem" msgid "Begin Approval" msgstr "" -#: etc/initialdata:202 +#: etc/initialdata:217 msgid "Blank" msgstr "Leer" -#: html/Search/Listing.html:79 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "Speicherbare URL für diese Suche" -#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "Kurze Kopfzeilen" -#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 msgid "Bulk ticket update" msgstr "Massen Ticketupdate" -#: lib/RT/User_Overlay.pm:1331 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "Kann Systembenutzer nicht ändern" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "Kann dieser Hauptverantwortliche diesen Stapel sehen" -#: lib/RT/CustomField_Overlay.pm:144 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "Kann kein benutzerdefiniertes Feld ohne Namen hinzufügen" -#: lib/RT/Link_Overlay.pm:132 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "Kann kein Ticket auf sich selbst verweisen lassen!" -#: lib/RT/Ticket_Overlay.pm:2787 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Konnte das Ticket nicht in ein vereinigtes Ticket vereinigen. Diesen Fehler sollten Sie niemals sehen" -#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "Sie können Basis und Ziel nicht gleichzeitig angeben" -#: html/autohandler:112 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "Kann Benutzer nicht anlegen: %1" -#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +#: 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:31 +#: html/SelfService/Prefs.html:30 msgid "Change password" msgstr "Passwort ändern" -#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "Zum Löschen ankreuzen" -#: html/Admin/Elements/SelectRights:31 +#: html/Admin/Elements/SelectRights:30 msgid "Check box to revoke right" msgstr "Zum Entziehen einer Berechtigung ankreuzen" -#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +#: 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 "Kinder" -#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "Stadt" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Class" msgstr "Klasse" -#: RTFM -msgid "Class is" -msgstr "Klasse ist" - -#: RTFM +#: NOT FOUND IN SOURCE msgid "Class Name" msgstr "Klassenname" -#: RTFM +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "Klasse ist" + +#: NOT FOUND IN SOURCE msgid "Classes" msgstr "Klassen" -#: share/html/SelfService/Closed.html:27 -msgid "closed" -msgstr "geschlossenen" - #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "Geschlossen" -#: html/SelfService/Elements/Tabs:60 +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "Geschlossene Anfragen" + +#: NOT FOUND IN SOURCE +msgid "Closed requests" +msgstr "" + +#: html/SelfService/Elements/Tabs:44 msgid "Closed tickets" msgstr "Geschlossene Anfragen" @@ -875,11 +1006,11 @@ msgstr "Geschlossene Anfragen" msgid "Command not understood!\\n" msgstr "" -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "Kommentar" -#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "Kommentaradresse" @@ -887,40 +1018,39 @@ msgstr "Kommentaradresse" msgid "Comment not recorded" msgstr "" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "Kommentiere Tickets" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "" -#: html/Admin/Elements/ModifyUser:35 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "Kommantare" -#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "Kommentar (wird nicht an Klienten geschickt)" -#: html/Search/Bulk.html:122 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "Kommentar (wird nicht an Klienten geschickt)" -#: html/Elements/ViewUser:27 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "Kommentar über %1" -#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "Kommentar zu diesen Benutzer" -#: lib/RT/Transaction_Overlay.pm:545 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "Kommentar hinzugefügt" -#: lib/RT/Action/Generic.pm:140 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "Übergabe abgehakt" @@ -932,11 +1062,11 @@ msgstr "" msgid "Condition" msgstr "Bedingung" -#: bin/rt-crontool:109 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "Condition trifft zu..." -#: lib/RT/Scrip_Overlay.pm:160 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "Bedingung nicht gefunden" @@ -944,11 +1074,11 @@ msgstr "Bedingung nicht gefunden" msgid "Configuration" msgstr "Konfiguration" -#: html/SelfService/Prefs.html:33 +#: html/SelfService/Prefs.html:32 msgid "Confirm" msgstr "Bestätigen" -#: html/Admin/Elements/ModifyUser:60 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "" @@ -956,19 +1086,27 @@ msgstr "" msgid "Contacted date '%1' could not be parsed" msgstr "" -#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "Inhalt" -#: etc/initialdata:266 +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "Korrespondenz" -#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "Korrespondenzadresse" -#: lib/RT/Transaction_Overlay.pm:541 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "Korrespondenz hinzugefügt" @@ -976,33 +1114,33 @@ msgstr "Korrespondenz hinzugefügt" msgid "Correspondence not recorded" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3458 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "Konnte dem Ticket kein neues benutzerdefiniertes Feld hinzufügen. " -#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "Konnte den Inhaber nicht ändern. " -#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "Konnte benutzerdefiniertes Feld nicht anlegen" -#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "Konnte Gruppe nicht anlegen" -#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "Konnte Vorlage nicht anlegen: %1" -#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "Konnte Ticket nicht anlegen. Stapel nicht bestimmt" -#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +#: 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 "Konnte Benutzer nicht anlegen" @@ -1014,11 +1152,11 @@ msgstr "" msgid "Could not find group %1." msgstr "" -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "Konnte diesen Benutzer nicht finden oder anlegen" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "Konnte diesen Hauptverantwortlichen nicht finden" @@ -1026,35 +1164,38 @@ msgstr "Konnte diesen Hauptverantwortlichen nicht finden" msgid "Could not find user %1." msgstr "" -#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "Konnte die Gruppe nicht laden" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Konnte den Hauptverantwortlichen nicht zu einen %1 dieses Stapels machen" -#: lib/RT/Ticket_Overlay.pm:1443 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Konnte diesen Hauptverantwortlichen nicht zu einem %1 dieses Tickets machen" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Konnte diesen Hauptverantwortlichen nicht als %1 dieses Stapels entfernen" -#: lib/RT/Ticket_Overlay.pm:1559 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "Konnte diesen Hauptverantwortlichen nicht als %1 dieses Tickets entfernen" -#: lib/RT/Group_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "Konnte Mitglied nicht der Gruppe hinzufügen" -#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Konnte die Transaktion nicht anlegen: %1" @@ -1067,15 +1208,15 @@ msgstr "" msgid "Couldn't find group\\n" msgstr "" -#: lib/RT/Interface/Web.pm:866 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "Konne Zeile nicht finden" -#: lib/RT/Group_Overlay.pm:959 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "Konnte diesen Hauptverantwortlichen nicht finden" -#: lib/RT/CustomField_Overlay.pm:175 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "Konnte diesen Wert nicht finden" @@ -1083,16 +1224,16 @@ msgstr "Konnte diesen Wert nicht finden" msgid "Couldn't find user\\n" msgstr "" -#: lib/RT/CurrentUser.pm:112 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Konnte %1 nicht aus der Benutzerdatenbank laden.\\n" -#: html/RTFM/Admin/CustomFields/UserRights.html:121 +#: NOT FOUND IN SOURCE msgid "Couldn't load Class %1" msgstr "Konnte die Klasse %1 nicht laden" -#: html/RTFM/Admin/CustomFields/GroupRights.html:77 +#: NOT FOUND IN SOURCE msgid "Couldn't load CustomField %1" msgstr "Konnte das benutzerdefinierte Feld %1 nicht laden" @@ -1104,21 +1245,21 @@ msgstr "" msgid "Couldn't load Scrips." msgstr "" -#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "Konnte Gruppe %1 nicht laden" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "Konnte den Verweis nicht laden" -#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "Konnte den Stapel nicht laden" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "Konnte den Stapel %1 nicht laden" @@ -1131,62 +1272,61 @@ msgstr "" msgid "Couldn't load template" msgstr "" -#: html/Admin/Users/Prefs.html:79 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "Konnte diesen Benutzer nicht laden (%1)" -#: html/SelfService/Display.html:166 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Konnte das Ticket '%1' nicht laden" -#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "Land" -#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +#: 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 "Erstellen" -#: etc/initialdata:128 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "Erstelle Tickets" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Create a Class" msgstr "Erstelle eine Klasse" -#: html/Admin/Elements/EditCustomField:58 +#: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "Erstelle ein benutzerdefiniertes Feld" -#: html/Admin/Queues/CustomField.html:48 +#: html/Admin/Queues/CustomField.html:47 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Erstelle ein benutzerdef. Feld für Stapel %1" -#: html/Admin/Global/CustomField.html:48 +#: html/Admin/Global/CustomField.html:47 msgid "Create a CustomField which applies to all queues" msgstr "Erstelle ein benutzerdef. Feld für alle Stapel" -#: html/RTFM/Article/Create.html:19 -msgid "Create a new article" -msgstr "Erstelle einen neuen Artikel" - #: NOT FOUND IN SOURCE msgid "Create a new Custom Field" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "Erstelle einen neuen Artikel" + #: NOT FOUND IN SOURCE msgid "Create a new global scrip" msgstr "" -#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 msgid "Create a new group" msgstr "Erstelle eine neue Gruppe" -#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 msgid "Create a new personal group" msgstr "Erstelle eine neue persönliche Gruppe" @@ -1202,11 +1342,11 @@ msgstr "" msgid "Create a new template" msgstr "" -#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 msgid "Create a new ticket" msgstr "Erstelle ein neues Ticket" -#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "Erstelle einen neuen Benutzer" @@ -1218,16 +1358,16 @@ msgstr "Erstelle einen Stapel" msgid "Create a queue called" msgstr "" -#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +#: NOT FOUND IN SOURCE msgid "Create a request" msgstr "Erstelle ein Ticket" -#: html/Admin/Queues/Scrip.html:59 +#: html/Admin/Queues/Scrip.html:58 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Erstelle ein Scrip für den Stapel %1" -#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 msgid "Create a template" msgstr "Erstelle eine Vorlage" @@ -1235,31 +1375,31 @@ msgstr "Erstelle eine Vorlage" msgid "Create a ticket" msgstr "Neue Anfrage" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Create an article" msgstr "Erstelle einen Artikel" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Create an article in class..." msgstr "Erstelle einen Artikel in der Klasse..." -#: etc/initialdata:130 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "Erstelle neue Tickets basierend auf der Vorlage dieses Scrips" -#: html/SelfService/Create.html:81 +#: html/SelfService/Create.html:77 msgid "Create ticket" msgstr "Übermitteln" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "Erstelle Tickets in diesem Stapel" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "Erstellen, löschen und modifizieren von benutzerdef. Felder" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "Erstelle, lösche und modifiziere Stapel" @@ -1267,32 +1407,32 @@ msgstr "Erstelle, lösche und modifiziere Stapel" msgid "Create, delete and modify the members of any user's personal groups" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "Create, delete and modify the members of personal groups" msgstr "Erstellen, löschen und modifizieren von Mitgliedern persönlicher Gruppen" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "Create, delete and modify users" msgstr "Erstellen, löschen und modifizieren von Benutzern" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "Angelegt" -#: RTFM -msgid "Created by" -msgstr "Angelegt von" - -#: html/Admin/Elements/EditCustomField:71 +#: html/Admin/Elements/EditCustomField:87 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Erstelle ein benutzerdefiniertes Feld %1" -#: RTFM +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "Angelegt von" + +#: NOT FOUND IN SOURCE msgid "Created during" msgstr "Erstellt zwischen" @@ -1300,80 +1440,84 @@ msgstr "Erstellt zwischen" msgid "Created template %1" msgstr "" -#: html/Ticket/Elements/EditLinks:28 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "Momentane Beziehungen" -#: html/Admin/Elements/EditScrips:30 +#: html/Admin/Elements/EditScrips:29 msgid "Current Scrips" msgstr "Aktuelle Scrips" -#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "Aktuelle Mitglieder" -#: html/Admin/Elements/SelectRights:29 +#: html/Admin/Elements/SelectRights:28 msgid "Current rights" msgstr "Aktuelle Rechte" -#: html/Search/Listing.html:71 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "Aktuelle Suchkriterien" -#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "Aktuelle Beobachter" -#: html/Admin/Global/CustomField.html:55 +#: html/Admin/Global/CustomField.html:54 #. ($CustomField) msgid "Custom Field #%1" msgstr "Benutzerdef. Feld #%1" -#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +#: 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 "Benutzerdef. Felder" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "Benutzerdefinierter Action-Cleanup-Code" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "Benutzerdefinierter Aktions-Vorbereitungs-Code" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "Benutzerdefinierte Bedingung" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "Benutzerdefiniertes Feld %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Benutzerdefiniertes Feld %1 hat einen Wert." -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Benutzerdefiniertes Feld %1 hat keinen Wert." -#: lib/RT/Ticket_Overlay.pm:3360 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Benutzerdefiniertes Feld %1 nicht gefunden" -#: html/Admin/Elements/EditCustomFields:197 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "Benutzerdefiniertes Feld wurde gelöscht" -#: lib/RT/Ticket_Overlay.pm:3510 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "Benutzerdefiniertes Feld nicht gefunden" -#: lib/RT/CustomField_Overlay.pm:283 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "Wert %1 des benutzerdefinierten Feldes %2 konnte nicht gefunden werden" @@ -1382,23 +1526,23 @@ msgstr "Wert %1 des benutzerdefinierten Feldes %2 konnte nicht gefunden werden" msgid "Custom field value changed from %1 to %2" msgstr "" -#: lib/RT/CustomField_Overlay.pm:185 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "Wert des benutzerdefinierten Felds konnte nicht gelöscht werden" -#: lib/RT/CustomField_Overlay.pm:289 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "Wert des benutzerdefinierten Feldes konnte nicht gefunden werden" -#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "Wert des benutzerdefinierten Feldes gelöscht" -#: lib/RT/Transaction_Overlay.pm:550 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "" -#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +#: 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 "Datumsangaben" @@ -1410,80 +1554,96 @@ msgstr "Dez" msgid "Default Autoresponse Template" msgstr "" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Standard Autoresponse-Vorlage" -#: etc/initialdata:275 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "Standard Admin-Kommentar-Vorlage" -#: etc/initialdata:257 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "Standard Admin-Korrespondenz-Vorlage" -#: etc/initialdata:267 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "Standard Korrespondenz-Vorlage" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "Standard Transaktions-Vorlage" -#: lib/RT/Transaction_Overlay.pm:645 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "Standard: %1/%2 von \"%3\" in \"%4\" geändert." -#: html/User/Delegation.html:25 html/User/Delegation.html:28 +#: html/User/Delegation.html:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "Rechte weitergeben" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "Delegate specific rights which have been granted to you." msgstr "Ihnen gewährte Rechte weitergeben" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "DelegateRights" msgstr "" -#: html/User/Elements/Tabs:38 +#: html/User/Elements/Tabs:37 msgid "Delegation" msgstr "Rechteweitergabe" -#: RTFM +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "Löschen" -#: html/RTFM/Article/delete.html:73 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Delete article #%1" msgstr "Lösche Artikel #%1" -#: lib/RT/Queue_Overlay.pm:90 +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "Lösche Tickets" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "Löschen dieses Objektes kann die referenzielle Integrität gefährden" -#: lib/RT/Queue_Overlay.pm:292 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "Löschen dieses Objektes würde die referenzielle Integrität gefährden" -#: lib/RT/User_Overlay.pm:430 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "Löschen dieses Objektes würde die referenzielle Integrität verletzen" -#: html/Approvals/Elements/Approve:46 +#: html/Approvals/Elements/Approve:44 msgid "Deny" msgstr "Ablehnen" -#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +#: 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 "Abhängig gemacht von" @@ -1491,68 +1651,99 @@ msgstr "Abhängig gemacht von" msgid "Dependencies: \\n" msgstr "" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "Abhängig von" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "absteigend" -#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 msgid "Describe the issue below" msgstr "Beschreibe hier das Problem" -#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +#: 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 "Beschreibung" -#: html/SelfService/Elements/MyRequests:44 +#: NOT FOUND IN SOURCE msgid "Details" msgstr "Details" -#: html/Ticket/Elements/Tabs:85 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "Anzeigen" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "Zeige Zugriffskontrollliste an" -#: lib/RT/Queue_Overlay.pm:75 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "Zeige Scrip-Vorlagen für diesen Stapel" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "Zeige Scrips für diesen Stapel" -#: html/Ticket/Elements/ShowHistory:35 +#: html/Ticket/Elements/ShowHistory:34 msgid "Display mode" msgstr "Anzeigemodus" -#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 -#. ($Ticket->id) +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Zeige Ticket #%1 an" -#: lib/RT/System.pm:54 +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + +#: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "Mache irgend etwas und alles" -#: html/Elements/Refresh:30 +#: html/Elements/Refresh:29 msgid "Don't refresh this page." msgstr "Seite nicht aktualisieren." -#: html/Search/Elements/PickRestriction:114 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "Suchergebnisse nicht anzeigen" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "Download" -#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +#: 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 "Fällig" @@ -1560,8 +1751,7 @@ msgstr "Fällig" msgid "Due date '%1' could not be parsed" msgstr "" -#: bin/rt-commit-handler:754 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "FEHLER: Konnte Ticket '%1' nicht laden: %2.\\n" @@ -1574,24 +1764,32 @@ msgstr "" msgid "Edit Custom Fields for %1" msgstr "Bearbeite benutzerdefinierte Felder für %1" -#: html/RTFM/Admin/Classes/CustomFields.html:73 +#: NOT FOUND IN SOURCE msgid "Edit Custom Fields for Class %1" msgstr "Bearbeite benutzerdefinierte Felder für Klasse %1" -#: html/Ticket/ModifyLinks.html:36 -msgid "Edit Relationships" +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "Bearbeite Beziehungen" +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + #: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Bearbeite Vorlagen für Stapel %1" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "" -#: html/Admin/Global/index.html:46 +#: html/Admin/Global/index.html:45 msgid "Edit system templates" msgstr "Bearbeite Systemvorlagen" @@ -1599,32 +1797,34 @@ msgstr "Bearbeite Systemvorlagen" msgid "Edit templates for %1" msgstr "" -#: html/RTFM/Admin/Classes/Modify:79 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Editing Configuration for Class %1" msgstr "Bearbeite Konfiguration für die Klasse %1" -#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "Bearbeite Konfiguration für den Stapel %1" -#: html/Admin/Elements/ModifyUser:25 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "Bearbeite Konfiguration für Benutzer %1" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/Elements/EditCustomField:90 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Bearbeite benutzerdefiniertes Feld %1" -#: html/Admin/Groups/Members.html:32 +#: html/Admin/Groups/Members.html:31 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Bearbeite Mitgliedschaft für die Gruppe %1" -#: html/User/Groups/Members.html:129 +#: html/User/Groups/Members.html:128 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Bearbeite Mitgliedschaft der persönlichen Gruppe %1" @@ -1633,134 +1833,162 @@ msgstr "Bearbeite Mitgliedschaft der persönlichen Gruppe %1" msgid "Editing template %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "Es muß entweder eine Basis oder ein Ziel angegeben werden" -#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "E-Mail" -#: lib/RT/User_Overlay.pm:188 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "E-Mail-Adresse bereits in Gebrauch" -#: html/Admin/Elements/ModifyUser:42 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "E-Mail-Adresse" ### muss das überhaupt übersetzt werden??? -#: html/Admin/Elements/ModifyUser:54 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "E-Mail-Kodierung" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Enabled (Unchecking this box disables this Class)" msgstr "Aktiviert (Abwählen deaktiviert diese Klasse)" ### muss das überhaupt übersetzt werden??? -#: html/Admin/Elements/EditCustomField:36 +#: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Aktiviert (Abwählen deaktiviert dieses benutzerdef. Feld)" -#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 msgid "Enabled (Unchecking this box disables this group)" msgstr "Aktiviert (Abwählen deaktiviert diese Gruppe)" -#: html/Admin/Queues/Modify.html:84 +#: html/Admin/Queues/Modify.html:83 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Aktiviert (Abwählen deaktiviert diesen Stapel)" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Enabled Classes" msgstr "Aktivierte Klassen" -#: html/Admin/Elements/EditCustomFields:99 +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Aktivierte benutzerdefinierte Felder" -#: html/Admin/Queues/index.html:56 +#: html/Admin/Queues/index.html:55 msgid "Enabled Queues" msgstr "Aktivierte Stapel" -#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#: 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 "Status %1 aktiviert" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." msgstr "Artikel oder URIs getrennt durch Leerzeichen eingeben." -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "Mehrere Werte eingeben" -#: lib/RT/CustomField_Overlay.pm:358 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "Einen Wert eingeben" -#: html/Ticket/Elements/EditLinks:112 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Ticketnummern oder URIs getrennt durch Leerzeichen eingeben." -#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "Fehler" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "Fehler in den Parameter für Queue-AddWatcher" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "Fehler in den Paramter für Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1356 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Fehler in den Parameter für Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1532 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "Fehler in den Parameter für Ticket->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "Everyone" -#: bin/rt-crontool:194 +#: bin/rt-crontool:190 msgid "Example:" msgstr "Beispiel:" -#: html/Admin/Elements/ModifyUser:64 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "ExternalAuthId" -#: html/Admin/Elements/ModifyUser:58 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "ExternalContactInfoId" -#: html/Admin/Users/Modify.html:73 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "Zusatzinformationen" -#: html/RTFM/Article/ExtractIntoClass.html:19 +#: NOT FOUND IN SOURCE msgid "Extract article from ticket #%1" msgstr "Extrahiere Artikel aus Anfrage #%1" -#: html/RTFM/Article/ExtractFromTicket.html:19 +#: NOT FOUND IN SOURCE msgid "Extract article from ticket #%1 into class %2" msgstr "Extrahiere Artikel aus Anfrage #%1 in die Klasse %2" -#: lib/RT/User_Overlay.pm:302 +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Konnte die Pseudogruppe 'Privileged' nicht finden." -#: lib/RT/User_Overlay.pm:309 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Failed to find 'Unprivileged' users pseudogroup" -#: bin/rt-crontool:138 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Konnte Modul %1 nicht laden. (%2)" @@ -1769,31 +1997,35 @@ msgstr "Konnte Modul %1 nicht laden. (%2)" msgid "Feb." msgstr "Feb" +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "Endpriorität" -#: lib/RT/Ticket_Overlay.pm:1162 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "" -#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "Finde Gruppe wessen" -#: html/Elements/Quicksearch:25 +#: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "Finde neue/offene Tickets" -#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "Finde Leute deren" -#: html/Search/Listing.html:108 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "Anfragen suchen" @@ -1801,44 +2033,44 @@ msgstr "Anfragen suchen" msgid "Finish Approval" msgstr "" -#: html/Ticket/Elements/Tabs:58 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "Erste" -#: html/Search/Listing.html:41 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "Erste Seite" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "Foo Bar Baz" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "erzwinge Änderung" -#: html/Search/Listing.html:106 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "%quant(%1,ticket) gefunden" -#: lib/RT/Interface/Web.pm:868 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "Objekt gefunden" -#: html/Admin/Elements/ModifyUser:44 +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FreeformContactInfo" -#: lib/RT/CustomField_Overlay.pm:38 +#: lib/RT/CustomField_Overlay.pm:37 msgid "FreeformMultiple" msgstr "FreieMehrfachauswahl" -#: lib/RT/CustomField_Overlay.pm:37 +#: lib/RT/CustomField_Overlay.pm:36 msgid "FreeformSingle" msgstr "FreieEinzelauswahl" @@ -1846,20 +2078,24 @@ msgstr "FreieEinzelauswahl" msgid "Fri." msgstr "Fr" -#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 msgid "Full headers" msgstr "Alle Kopfzeilen" +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "" -#: lib/RT/Transaction_Overlay.pm:595 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "An %1 gegeben" -#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 msgid "Global" msgstr "Global" @@ -1867,12 +2103,16 @@ msgstr "Global" msgid "Global Scrips" msgstr "" -#: html/Admin/Elements/SelectTemplate:38 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Globale Vorlage: %1" -#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "Los!" @@ -1880,15 +2120,15 @@ msgstr "Los!" msgid "Good pgp sig from %1\\n" msgstr "" -#: html/Search/Listing.html:50 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "Gehe zu Seite" -#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "Zeige Anfrage" -#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "Gruppe" @@ -1896,15 +2136,15 @@ msgstr "Gruppe" msgid "Group %1 %2: %3" msgstr "" -#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +#: 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 "Gruppenrechte" -#: lib/RT/Group_Overlay.pm:965 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "Gruppe hat bereits Mitglieder" -#: html/Admin/Groups/Modify.html:77 +#: html/Admin/Groups/Modify.html:76 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Gruppe konnte nicht erstellt werden: %1" @@ -1913,11 +2153,11 @@ msgstr "Gruppe konnte nicht erstellt werden: %1" msgid "Group created" msgstr "Gruppe angelegt" -#: lib/RT/Group_Overlay.pm:1133 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "Gruppe hat kein solches Mitglied" -#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +#: 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 "Gruppe nicht gefunden" @@ -1929,40 +2169,40 @@ msgstr "" msgid "Group not specified.\\n" msgstr "" -#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +#: 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 "Gruppen" -#: lib/RT/Group_Overlay.pm:971 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "Gruppen können nicht Mitglied eines ihrer Mitglieder sein" -#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "Hallo!" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "Hallo %1" -#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "Historie" -#: html/RTFM/Article/History.html:22 +#: NOT FOUND IN SOURCE msgid "History for article #%1" msgstr "Historie für Artikel #%1" -#: html/Admin/Elements/ModifyUser:68 +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "TelefonZuhause" -#: html/Elements/Tabs:46 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "Start" -#: lib/RT/Base.pm:74 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "" @@ -1971,71 +2211,79 @@ msgstr "" msgid "I have [quant,_1,concrete mixer]." msgstr "" -#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 msgid "Id" msgstr "Nr." -#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "Identität" -#: etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Wenn eine Freigabe abgewiesen wird, weise das Original ab und lösche wartende Freigaben" -#: bin/rt-crontool:190 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "Wenn dieses Werkzeug 'setgid' wäre könnte ein feindlicher lokaler Benutzer dadurch administrativen Zugriff auf RT erlangen." -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: 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 "Wenn Sie irgend etwas aktualisiert haben, denken Sie daran hier zu klicken" -#: lib/RT/Interface/Web.pm:860 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "Unerlaubter Wert für %1" -#: lib/RT/Interface/Web.pm:863 +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "Unveränderbares Feld" -#: RTFM -msgid "in class %1" -msgstr "%1" - -#: RTFM +#: NOT FOUND IN SOURCE msgid "Include disabled classes in listing." msgstr "Zeige auch deaktivierte Klassen an." -#: html/Admin/Elements/EditCustomFields:74 +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Zeige auch deaktivierte benutzerdefinierte Felder an." -#: html/Admin/Queues/index.html:43 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "Zeige auch deaktivierte Stapel an." -#: html/Admin/Users/index.html:47 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "Zeige deaktivierte Benutzer auch in der Suche an." -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "Anfängliche Priorität" -#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "Eingabefehler" -#: lib/RT/Ticket_Overlay.pm:3729 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "Interner Fehler" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Internet Fehler: %1" @@ -2044,48 +2292,48 @@ msgstr "Internet Fehler: %1" msgid "Invalid Group Type" msgstr "Ungültige Gruppenart" -#: lib/RT/Principal_Overlay.pm:128 +#: lib/RT/Principal_Overlay.pm:127 msgid "Invalid Right" msgstr "Ungültiges Recht" -#: lib/RT/Interface/Web.pm:865 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "Ungültige Daten" -#: lib/RT/Ticket_Overlay.pm:438 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Ungültiger Inhaber. Zurücksetzung auf 'nobody'." -#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "Ungültiger Stapel" -#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +#: 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 "Ungültiges Recht" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "Ungültiger Wert für %1" -#: lib/RT/Ticket_Overlay.pm:3367 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "Ungültiger Wert für das benutzerdefinierte Feld" -#: lib/RT/Ticket_Overlay.pm:345 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "Ungültiger Statuswert" -#: bin/rt-crontool:191 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "Es ist sehr wichtig dass nichtprivilegierte Benutzer dieses Werkzeug nicht aufrufen können." -#: bin/rt-crontool:192 +#: 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 "Es wird empfohlen einen nichtprivilegierten Unix-User mit korrekter Gruppenzugehörigkeit zum Zugriff auf RT anzulegen um dieses Werkzeug aufzurufen." -#: bin/rt-crontool:163 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "Es verarbeitet verschiedene Parameter:" @@ -2105,7 +2353,7 @@ msgstr "Betrete oder verlasse diese Gruppe" msgid "Jul." msgstr "Jul" -#: html/Ticket/Elements/Tabs:99 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "Alles" @@ -2117,41 +2365,49 @@ msgstr "Jun" msgid "Keyword" msgstr "" -#: html/Admin/Elements/ModifyUser:52 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "Sprache" -#: html/Ticket/Elements/Tabs:73 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "letzter Kontakt" -#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "Letzter Kontakt" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "Zuletzt Kontaktiert" -#: html/Search/Elements/TicketHeader:41 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "Letzte Änderung" -#: html/Elements/SelectDateType:30 +#: html/Elements/SelectDateType:29 msgid "Last Updated" msgstr "Zuletzt Aktualisiert" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "" -#: html/Admin/Users/Modify.html:83 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" -msgstr "Diesen Benutzer RT-Zugriff gewähren" +msgstr "Diesem Benutzer RT-Zugriff gewähren" -#: html/Admin/Users/Modify.html:87 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" -msgstr "Diesen Benutzer mehr Rechte gewähren" +msgstr "Diesem Benutzer mehr Rechte gewähren" #: NOT FOUND IN SOURCE msgid "Limiting owner to %1 %2" @@ -2161,112 +2417,124 @@ msgstr "" msgid "Limiting queue to %1 %2" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2697 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "Beziehung existiert bereits" -#: lib/RT/Ticket_Overlay.pm:2709 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "Beziehung konnte nicht erstellt werden" -#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "Beziehung erstellt (%1)" -#: lib/RT/Ticket_Overlay.pm:2638 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "Beziehung gelöscht (%1)" -#: lib/RT/Ticket_Overlay.pm:2644 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "Beziehung nicht gefunden" -#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Verweise auf Ticket #%1" -#: html/Ticket/Elements/Tabs:97 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "Beziehungen" -#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "Adresse" -#: lib/RT.pm:158 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Log-Verzeichnis %1 nicht gefunden oder kein Schreibzugriff.\\n RT kann nicht starten." -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Angemeldet als %1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +#: 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 "Anmelden" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "Abmelden" -#: html/Search/Bulk.html:86 +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "Mach Inhaber" -#: html/Search/Bulk.html:102 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "Mach Status" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "Mach Fälligkeitsdatum" -#: html/Search/Bulk.html:110 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "Mach Erledigungsdatum" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "Mach Datum gestartet" -#: html/Search/Bulk.html:106 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "Mach Startdatum" -#: html/Search/Bulk.html:108 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "Mach Eingangsdatum" -#: html/Search/Bulk.html:99 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "Mach Priorität" -#: html/Search/Bulk.html:100 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "Mach Stapel" -#: html/Search/Bulk.html:98 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "Betreff setzen" -#: html/Admin/index.html:33 +#: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "Gruppen und Gruppenmitglieder verwalten" -#: html/Admin/index.html:39 +#: html/Admin/index.html:38 msgid "Manage properties and configuration which apply to all queues" msgstr "Eigenschaften und Einstellungen für alle Stapel verwalten" -#: html/Admin/index.html:36 +#: html/Admin/index.html:35 msgid "Manage queues and queue-specific properties" msgstr "Stapel und stapelspezifische Einstellungen verwalten" -#: html/Admin/index.html:30 +#: html/Admin/index.html:29 msgid "Manage users and passwords" msgstr "Benutzer und Passworte verwalten" @@ -2278,68 +2546,100 @@ msgstr "Mär" msgid "May." msgstr "Mai." -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "Mitglied hinzugefügt" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "Mitglied gelöscht" -#: lib/RT/Group_Overlay.pm:1144 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "Mitglied nicht gelöscht" -#: html/Elements/SelectLinkType:26 +#: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "Mitglied von" -#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "Mitglieder" -#: lib/RT/Ticket_Overlay.pm:2843 +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "Zusammenführung erfolgreich" -#: lib/RT/Ticket_Overlay.pm:2804 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Zusammenführung fehlgeschlagen. Konnte EffectiveId nicht setztn" -#: html/Ticket/Elements/EditLinks:115 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "Zusammenführen in" -#: html/Ticket/Update.html:102 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "Nachricht" -#: lib/RT/Interface/Web.pm:867 +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "%1: Fehlt ein Primärschlüssel?" -#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "Mobil" -#: html/Admin/Elements/ModifyUser:72 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "Mobiltelefon" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Modified" msgstr "Geändert" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Modify" msgstr "Ändern" -#: RTFM -msgid "Modify article #%1" -msgstr "Ändere Artikel #%1" - - -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "Ändere Zugriffskontrollliste" @@ -2347,19 +2647,27 @@ msgstr "Ändere Zugriffskontrollliste" msgid "Modify Custom Field %1" msgstr "" -#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "Ändere benutzdefinierte Felder für diesen Stapel" -#: html/RTFM/Admin/CustomFields/GroupRights.html:21 -msgid "Modify group rights for custom field %1" -msgstr "Ändere Gruppenrechte für das benutzerdefinierte Feld %1" +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "Ändere Scrip-Vorlagen für diesen Stapel" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "Ändere Scrips für diesen Stapel" @@ -2367,39 +2675,47 @@ msgstr "Ändere Scrips für diesen Stapel" msgid "Modify Template %1" msgstr "" -#: html/Admin/Queues/CustomField.html:45 +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + +#: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "Ändere ein benutzerdefiniertes Feld für Stapel %1" -#: html/Admin/Global/CustomField.html:53 +#: html/Admin/Global/CustomField.html:52 msgid "Modify a CustomField which applies to all queues" msgstr "Ändere ein globales benutzerdefiniertes Feld" -#: html/Admin/Queues/Scrip.html:54 +#: html/Admin/Queues/Scrip.html:53 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Ändere ein Scrip für den Stapel %1" -#: html/Admin/Global/Scrip.html:48 +#: html/Admin/Global/Scrip.html:47 msgid "Modify a scrip which applies to all queues" msgstr "Ändere ein globales benutzerdefiniertes Feld" -#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "Ändere Artikel #%1" + +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Ändere Datumsangaben für #%1" -#: html/Ticket/ModifyDates.html:35 +#: html/Ticket/ModifyDates.html:34 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Ändere Datumsangaben für Ticket #%1" -#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 msgid "Modify global group rights" msgstr "Ändere globale Gruppenrechte" -#: html/Admin/Global/GroupRights.html:33 +#: html/Admin/Global/GroupRights.html:32 msgid "Modify global group rights." msgstr "Ändere globale Gruppenrechte." @@ -2407,11 +2723,11 @@ msgstr "Ändere globale Gruppenrechte." msgid "Modify global scrips" msgstr "" -#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 msgid "Modify global user rights" msgstr "Ändere globale Benutzerrechte" -#: html/Admin/Global/UserRights.html:33 +#: html/Admin/Global/UserRights.html:32 msgid "Modify global user rights." msgstr "Ändere globale Benutzerrechte." @@ -2419,12 +2735,16 @@ msgstr "Ändere globale Benutzerrechte." msgid "Modify group metadata or delete group" msgstr "Ändere Gruppen-Metadaten oder lösche die Gruppe" -#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "Ändere Gruppenrechte für das benutzerdefinierte Feld %1" + +#: 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 "Ändere die Gruppenrechte der Gruppe %1" -#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Ändere Gruppenrechte für Stapel %1" @@ -2433,74 +2753,74 @@ msgstr "Ändere Gruppenrechte für Stapel %1" msgid "Modify membership roster for this group" msgstr "Ändere Mitgliedsverzeichnis dieser Gruppe" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "Modify one's own RT account" msgstr "Ändere jemandens eigenen RT-Zugang" -#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Ändere Leute bezogen auf Stapel %1" -#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#: 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 "Ändere Personen des Tickets #%1" -#: html/Admin/Queues/Scrips.html:44 +#: html/Admin/Queues/Scrips.html:45 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Ändere Scrips für den Stapel %1" -#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 msgid "Modify scrips which apply to all queues" msgstr "Ändere auf alle Stapel angewandte Scrips" -#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#: 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 "Ändere Vorlage %1" -#: html/Admin/Global/Templates.html:44 +#: html/Admin/Global/Templates.html:43 msgid "Modify templates which apply to all queues" msgstr "Ändere globale Templates" -#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 #. ($Group->Name) msgid "Modify the group %1" msgstr "Ändere Gruppe %1" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "Ändere die Stapelbeobachter" -#: html/Admin/Users/Modify.html:236 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Ändere Benutzer %1" -#: html/Ticket/ModifyAll.html:37 +#: html/Ticket/ModifyAll.html:36 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Ändere Ticket #%1" -#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Ändere Ticket #%1" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "Ändere Tickets" -#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#: 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 "Ändere Benutzerrechte für die Gruppe %1" -#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Ändere Benutzerrechte für Stapel %1" @@ -2509,7 +2829,7 @@ msgstr "Ändere Benutzerrechte für Stapel %1" msgid "Modify watchers for queue '%1'" msgstr "" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "" @@ -2517,23 +2837,23 @@ msgstr "" msgid "ModifyOwnMembership" msgstr "" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "ModifySelf" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "" @@ -2541,28 +2861,29 @@ msgstr "" msgid "Mon." msgstr "Mo" -#: html/Ticket/Elements/ShowRequestor:42 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "Mehr über %1" -#: html/Admin/Elements/EditCustomFields:61 +#: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "Runter verschieben" -#: html/Admin/Elements/EditCustomFields:53 +#: html/Admin/Elements/EditCustomFields:52 msgid "Move up" msgstr "Hoch verschieben" -#: html/Admin/Elements/SelectSingleOrMultiple:27 +#: html/Admin/Elements/SelectSingleOrMultiple:26 msgid "Multiple" msgstr "Mehrere" -#: lib/RT/User_Overlay.pm:179 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "Sie müssen eine Angabe bei 'Name' machen" -#: share/html/SelfService/Elements/MyRequests:32 +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) msgid "My %1 tickets" msgstr "Meine %1 Anfragen" @@ -2570,19 +2891,23 @@ msgstr "Meine %1 Anfragen" msgid "My Approvals" msgstr "" -#: html/Approvals/index.html:25 html/Approvals/index.html:26 +#: html/Approvals/index.html:24 html/Approvals/index.html:25 msgid "My approvals" msgstr "Meine Freigaben" -#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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:186 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "Benutzername ist bereits in Gebrauch" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Name matches" msgstr "Name enthält" @@ -2594,64 +2919,67 @@ msgstr "" msgid "Never" msgstr "Niemals" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "Neu" -#: RTFM +#: NOT FOUND IN SOURCE msgid "New Article" msgstr "Neuer Artikel" -#: RTFM -msgid "New class" -msgstr "Neue Klasse" - +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "Neue Beziehungen" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "Neues Passwort" -#: etc/initialdata:311 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "Neue wartende Freigaben" -#: html/Ticket/Elements/EditLinks:111 -msgid "New Relationships" -msgstr "Neue Beziehungen" +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" -#: html/Ticket/Elements/Tabs:36 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "Neue Suche" -#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "Neue Klasse" + +#: 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 "Neues benutzerdef. Feld" -#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 msgid "New group" msgstr "Neue Gruppe" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:31 msgid "New password" msgstr "Neues Passwort" -#: lib/RT/User_Overlay.pm:639 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "Neue Passworterinnerung wurde verschickt" -#: html/Admin/Elements/QueueTabs:70 +#: html/Admin/Elements/QueueTabs:69 msgid "New queue" msgstr "Neuer Stapel" -#: html/SelfService/Elements/Tabs:63 -msgid "New ticket" -msgstr "Neue Anfrage" +#: NOT FOUND IN SOURCE +msgid "New request" +msgstr "" -#: html/Admin/Elements/SelectRights:42 +#: html/Admin/Elements/SelectRights:41 msgid "New rights" msgstr "Neue Rechte" -#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +#: 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 "Neues Scrip" @@ -2659,75 +2987,91 @@ msgstr "Neues Scrip" msgid "New search" msgstr "" -#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +#: 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 "Neue Vorlage" -#: lib/RT/Ticket_Overlay.pm:2771 +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "Neue Anfrage" + +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "Neues Ticket existiert nicht" -#: html/Admin/Elements/UserTabs:52 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "Neuer Benutzer" -#: html/Admin/Elements/CreateUserCalled:26 +#: html/Admin/Elements/CreateUserCalled:25 msgid "New user called" msgstr "Neues Benutzer aufgerufen" -#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 msgid "New watchers" msgstr "Neue Beobachter" -#: html/Admin/Users/Prefs.html:42 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "Speichere Fenstereinstellungen" -#: html/Ticket/Elements/Tabs:69 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "Nächste" -#: html/Search/Listing.html:48 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "Nächste Seite" -#: html/Admin/Elements/ModifyUser:50 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "Spitzname" -#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "Spitzname" -#: RTFM +#: NOT FOUND IN SOURCE msgid "No" msgstr "Nein" -#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "Keine Klasse definiert" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "Kein benutzerdefiniertes Feld" -#: html/RTFM/Admin/CustomFields/GrroupRights.html:73 +#: NOT FOUND IN SOURCE msgid "No CustomField defined" msgstr "Kein benutzerdefiniertes Feld definiert" -#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "Keine Gruppe definiert" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "Kein Stapel vorhanden" -#: bin/rt-crontool:56 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "Kein RT-Benutzer gefunden. Bitte kontaktiere Deinen RT-Administrator.\\n" -#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 msgid "No Template" msgstr "Keine Vorlage" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "Kein Ticket angegeben. Bereche Ticket ab " @@ -2735,11 +3079,11 @@ msgstr "Kein Ticket angegeben. Bereche Ticket ab " msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "" -#: html/Approvals/Elements/Approve:47 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "Keine Aktion" -#: lib/RT/Interface/Web.pm:862 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "Keine Spalte angegeben" @@ -2747,57 +3091,60 @@ msgstr "Keine Spalte angegeben" msgid "No command found\\n" msgstr "" -#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "Kein Kommentar über diesen Benutzer angegeben" -#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "Keine Korrespondenz aufgezeichnet" -#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#: 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 "Keine Beschreibung für %1 vorhanden" -#: lib/RT/Users_Overlay.pm:151 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "Keine Gruppe angegeben" -#: lib/RT/User_Overlay.pm:857 +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "Kein Passwort gesetzt" -#: lib/RT/Queue_Overlay.pm:259 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "Kein Recht Stapel anzulegen" -#: lib/RT/Ticket_Overlay.pm:341 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "Kein Recht um Tickets im Stapel '%1' anzulegen" -#: lib/RT/User_Overlay.pm:151 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "Kein Recht Benutzer anzulegen" -#: html/SelfService/Display.html:174 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "Kein Recht dieses Ticket anzuzeigen" -#: html/SelfService/Update.html:55 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "Kein Recht dieses Ticket zu aktualisieren" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "Kein Hauptverantwortlicher angegeben" -#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 msgid "No principals selected." msgstr "Keine Hauptverantwortliche ausgewählt." -#: html/Admin/Queues/index.html:35 +#: html/Admin/Queues/index.html:34 msgid "No queues matching search criteria found." msgstr "Keine den Suchkriterien entsprechenden Stapel gefunden" @@ -2805,47 +3152,51 @@ msgstr "Keine den Suchkriterien entsprechenden Stapel gefunden" msgid "No rights found" msgstr "Keine Rechte gefunden" -#: html/Admin/Elements/SelectRights:33 +#: html/Admin/Elements/SelectRights:32 msgid "No rights granted." msgstr "Keine Rechte gewährt." -#: html/Search/Bulk.html:149 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "Keine Suchliste zum bearbeiten." +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "" -#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "Kein Transaktionstyp angegeben" -#: html/Admin/Users/index.html:36 +#: html/Admin/Users/index.html:35 msgid "No users matching search criteria found." msgstr "Keine auf die Suchkriterien passende Benutzer gefunden" -#: bin/rt-commit-handler:644 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Kein gültiger RT-Benutzer gefunden. RT CVS-Handler weggefallen. Bitte kontaktiere Deinen RT-Administrator.\\n" -#: lib/RT/Interface/Web.pm:859 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "Kein Wert an _Set geschickt!\\n" -#: html/Search/Elements/TicketRow:37 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "Niemand" -#: lib/RT/Interface/Web.pm:864 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "Nichtexistierendes Feld?" -#: html/Elements/Login:99 +#: NOT FOUND IN SOURCE msgid "Not logged in" msgstr "Nicht angemeldet" -#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "Nicht angemeldet." @@ -2853,67 +3204,87 @@ msgstr "Nicht angemeldet." msgid "Not set" msgstr "Nicht angegeben" -#: html/NoAuth/Reminder.html:27 +#: html/NoAuth/Reminder.html:26 msgid "Not yet implemented." msgstr "Noch nicht implementiert." -#: html/Admin/Groups/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Not yet implemented...." msgstr "Noch nicht implementiert..." -#: html/Approvals/Elements/Approve:50 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "Bemerkungen" -#: lib/RT/User_Overlay.pm:642 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "Benachrichtigung konnte nicht verschickt werden" -#: etc/initialdata:94 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "Benachrichtige AdminCCs" -#: etc/initialdata:90 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "Benachrichtige AdminCCs als Kommentar" -#: etc/initialdata:121 +#: 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 "Benachrichtige andere Empfänger" -#: etc/initialdata:117 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "Benachrichtige andere Empfänger als Kommentar" -#: etc/initialdata:86 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "Benachrichte Inhaber" -#: etc/initialdata:82 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "Benachrichtige Inhaber als Kommentar" -#: etc/initialdata:313 etc/upgrade/2.1.71:17 +#: 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 "Benachrichtige Inhaber und AdminCCs neuer auf Freigabe wartende Anfragen" -#: etc/initialdata:78 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "Benachrichtige die Klienten" -#: etc/initialdata:104 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "Benachrichtige die Klienten und CCs" -#: etc/initialdata:99 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "Benachrichtige die Klienten und CCs als Kommentar" -#: etc/initialdata:113 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "Benachrichtige die Klienten, CCs und AdminCCs" -#: etc/initialdata:109 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Benachrichtige die Klienten, CCs und AdminCCs als Kommentar" @@ -2921,11 +3292,11 @@ msgstr "Benachrichtige die Klienten, CCs und AdminCCs als Kommentar" msgid "Nov." msgstr "Nov" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "Objekt konnte nicht erstellt werden" -#: lib/RT/Record.pm:176 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "Objekt erstellt" @@ -2933,185 +3304,237 @@ msgstr "Objekt erstellt" msgid "Oct." msgstr "Okt" -#: html/Elements/SelectDateRelation:35 +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + +#: html/Elements/SelectDateRelation:34 msgid "On" msgstr "am" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "Bei Kommentar" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "Bei Korrespondenz" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "Bei Erstellen" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "Bei Eigentümerwechsel" -#: etc/initialdata:177 +#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 +msgid "On Priority Change" +msgstr "" + +#: etc/initialdata:192 msgid "On Queue Change" msgstr "Bei Stapelwechsel" -#: etc/initialdata:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "Beim Erledigen" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "Bei Statuswechsel" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "Bei einer Transaktion" -#: html/Approvals/Elements/PendingMyApproval:50 +#: 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 "Zeige nur Freigaben für nach dem %1 erstelle Anfragen" -#: html/Approvals/Elements/PendingMyApproval:48 +#: 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 "Zeige nur Freigaben für vor dem %1 erstellte Anfragen" -#: html/Elements/Quicksearch:31 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "Offen" -#: html/Ticket/Elements/Tabs:136 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Öffnen" -#: html/SelfService/Elements/Tabs:57 +#: NOT FOUND IN SOURCE +msgid "Open requests" +msgstr "" + +#: html/SelfService/Elements/Tabs:41 msgid "Open tickets" msgstr "Offene Anfragen" -#: html/Admin/Users/Prefs.html:41 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "Öffne Anfragen (aus der Liste) in neuem Fenster" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "Öffne Anfragen (aus der Liste) in ein anderes Fenster" -#: etc/initialdata:133 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "Öffne Anfragen bei Korrespondenz" -#: html/Search/Elements/PickRestriction:101 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Sortierung und Reihenfolge" -#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "Organisation" -#: html/Approvals/Elements/Approve:34 +#: html/Approvals/Elements/Approve:32 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Ursprüngliche Anfrage: #%1" -#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "Mit der Zeit steigt die Priorität auf" -#: html/RTFM/index.html:19 +#: NOT FOUND IN SOURCE msgid "Overview" msgstr "Übersicht" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "Eigene Anfrage" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "" -#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "Inhaber" -#: lib/RT/Ticket_Overlay.pm:3004 -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +#: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" msgstr "Inhaberwechsel von %1 zu %2" -#: lib/RT/Transaction_Overlay.pm:584 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Inhaber mit Gewalt von %1 in %2 geändert" -#: html/Search/Elements/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "Inhaber ist" -#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "Pager" -#: html/Admin/Elements/ModifyUser:74 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "PagerTelefon" -#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +#: 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 "Eltern" -#: html/Elements/Login:43 html/User/Prefs.html:61 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "Passwort" -#: html/NoAuth/Reminder.html:25 +#: html/NoAuth/Reminder.html:24 msgid "Password Reminder" msgstr "Passworterinnerung" -#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "Passwort ist zu kurz" -#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Passwort: %1" -#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +#: html/Admin/Users/Modify.html:318 +msgid "Passwords do not match." +msgstr "" + +#: html/User/Prefs.html:211 +msgid "Passwords do not match. Your password has not been changed" +msgstr "" + +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "Personen" -#: etc/initialdata:126 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "Führe eine benutzerdefinierte Aktion aus" -#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "Zugriff verweigert" -#: html/User/Elements/Tabs:35 +#: html/User/Elements/Tabs:34 msgid "Personal Groups" msgstr "Persönliche Gruppen" -#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 msgid "Personal groups" msgstr "Persönliche Gruppen" -#: html/User/Elements/DelegateRights:37 +#: html/User/Elements/DelegateRights:36 msgid "Personal groups:" msgstr "Persönliche Gruppen:" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "Telefonnummern" -#: html/Admin/Users/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Placeholder" msgstr "Platzhalter" -#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +#: 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 "Voreinstellungen" @@ -3119,15 +3542,19 @@ msgstr "Voreinstellungen" msgid "Prefs" msgstr "" -#: lib/RT/Action/Generic.pm:160 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "Vorbereitung abgehakt" -#: html/Ticket/Elements/Tabs:61 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "Vorherige" -#: html/Search/Listing.html:44 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "Vorherige Seite" @@ -3135,29 +3562,33 @@ msgstr "Vorherige Seite" msgid "Pri" msgstr "" -#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#: 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 "Hauptverantwortlichen %1 nicht gefunden." -#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "Priorität" -#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "Priorität beginnt bei" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "Privilegiert" -#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Privilegierungsstatus: %1" -#: html/Admin/Users/index.html:62 +#: html/Admin/Users/index.html:61 msgid "Privileged users" msgstr "Privilegierte Benutzer" @@ -3165,11 +3596,19 @@ msgstr "Privilegierte Benutzer" msgid "Pseudogroup for internal use" msgstr "Pseudogruppe für internen Gebrauch" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "Stapel" -#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#: 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" @@ -3179,7 +3618,7 @@ msgstr "Stapel %2 nicht gefunden" msgid "Queue '%1' not found\\n" msgstr "" -#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "Name des Stapels" @@ -3187,19 +3626,19 @@ msgstr "Name des Stapels" msgid "Queue Scrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:263 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "Stapel existiert bereits" -#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "Stapel konne nicht angelegt werden" -#: html/Ticket/Create.html:209 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "Stapel konnte nicht geladen werden" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "Stapel angelegt" @@ -3207,30 +3646,37 @@ msgstr "Stapel angelegt" msgid "Queue is not specified." msgstr "" -#: html/SelfService/Display.html:129 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "Stapel nicht gefunden" -#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 msgid "Queues" msgstr "Stapel" -#: RTFM +#: html/Elements/Quicksearch:24 msgid "Quick search" msgstr "Schnellsuche" -#: html/Elements/Login:34 +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + +#: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 +#: 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 für %2" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: NOT FOUND IN SOURCE msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." msgstr "RT %1 von <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." @@ -3238,7 +3684,7 @@ msgstr "RT %1 von <a href=\"http://bestpractical.com\">Best Practical Solutions, msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "" -#: html/Admin/index.html:25 html/Admin/index.html:26 +#: html/Admin/index.html:24 html/Admin/index.html:25 msgid "RT Administration" msgstr "RT Administration" @@ -3258,7 +3704,7 @@ msgstr "" msgid "RT Critical error. Message not recorded!" msgstr "" -#: html/Elements/Error:41 html/SelfService/Error.html:41 +#: html/Elements/Error:41 html/SelfService/Error.html:40 msgid "RT Error" msgstr "RT Fehler" @@ -3266,15 +3712,19 @@ msgstr "RT Fehler" msgid "RT Received mail (%1) from itself." msgstr "" -#: html/RTFM/Error:36 -msgid "RTFM Error" -msgstr "RTFM Fehler" +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "RT Selbstbedienung" -#: html/SelfService/Closed.html:25 -msgid "Closed Tickets" -msgstr "Geschlossene Anfragen" +#: NOT FOUND IN SOURCE +msgid "RT Self Service / Closed Tickets" +msgstr "" + +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" -#: html/index.html:25 html/index.html:28 +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "RT auf einen Blick" @@ -3294,7 +3744,7 @@ msgstr "" msgid "RT couldn't validate this PGP signature. \\n" msgstr "" -#: html/Elements/PageLayout:26 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "RT für %1" @@ -3307,15 +3757,10 @@ msgstr "" msgid "RT has proccessed your commands" msgstr "RT hat Ihre Befehle verarbeitet" -#: html/Elements/Login:83 -#. ('2003') +#: 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 © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Vertrieben unter der <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 of the GNU General Public License.</a>" -#: share/html/SelfService/Elements/Tabs:35 -msgid "RT Self Service" -msgstr "RT Selbstbedienung" - #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "" @@ -3328,19 +3773,43 @@ msgstr "" msgid "RT's email command mode requires PGP authentication. Either you didn't sign your message, or your signature could not be verified." msgstr "" -#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "RTFM Fehler" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "Realer Name" -#: html/Admin/Elements/ModifyUser:48 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "RealerName" -#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "Bezogen von" -#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +#: 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 "Bezieht sich auf" @@ -3348,20 +3817,16 @@ msgstr "Bezieht sich auf" msgid "Refine" msgstr "" -#: html/Search/Elements/PickRestriction:27 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Suche Verfeinen" -#: html/Elements/Refresh:36 +#: html/Elements/Refresh:35 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Seite alle %1 Minuten aktualisieren." -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 -msgid "Relationships" -msgstr "Beziehungen" - -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "Entferne AdminCC" @@ -3369,27 +3834,35 @@ msgstr "Entferne AdminCC" msgid "Remove Cc" msgstr "Entferne CC" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "Entferne Klient" -#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "Antworten" -#: lib/RT/Queue_Overlay.pm:85 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "Antworte auf Anfragen" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "" -#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "Klient" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "email-Adresse des Klienten" @@ -3397,98 +3870,107 @@ msgstr "email-Adresse des Klienten" msgid "Requestor(s)" msgstr "" -#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "Klienten" -#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "Anfragen sollten erlegt werden in" -#: html/Elements/Submit:62 +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + +#: html/Elements/Submit:61 msgid "Reset" msgstr "Zurücksetzen" -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "Zuhause" -#: html/Ticket/Elements/Tabs:132 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "Erledigen" -#: html/Ticket/Update.html:133 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Erledige Anfrage Nr. %1 (%2)" -#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "Erledigt" -#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "Antwort an alle Klienten" -#: html/Elements/ListActions:26 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "Ergebnisse" -#: html/Search/Elements/PickRestriction:105 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "Ergebnisse pro Seite" -#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "Passwort wiederholen" +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "" -#: lib/RT/ACE_Overlay.pm:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "Recht delegiert" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "Recht erteilt" -#: lib/RT/ACE_Overlay.pm:161 +#: lib/RT/ACE_Overlay.pm:160 msgid "Right Loaded" msgstr "Recht geladen" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "Recht konnte nicht zurückgezogen werden" -#: html/User/Delegation.html:64 +#: html/User/Delegation.html:63 msgid "Right not found" msgstr "Recht nicht gefunden" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "Recht nicht gefunden." -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "Recht zurückgezogen" -#: html/Admin/Elements/UserTabs:41 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "Rechte" -#: lib/RT/Interface/Web.pm:758 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Rechte konnten für %1 nicht gewährt werden" -#: lib/RT/Interface/Web.pm:791 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "Rechte konnten nicht für %1 entzogen werden" -#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "Rollen" @@ -3496,32 +3978,53 @@ msgstr "Rollen" msgid "RootApproval" msgstr "" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "Sa" -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "Änderungen Sichern" -#: html/Ticket/ModifyLinks.html:39 +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "Änderungen Sichern" -#: html/Admin/Global/Scrip.html:49 +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "" -#: lib/RT/Scrip_Overlay.pm:176 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "Scrip angelegt" -#: html/Admin/Elements/EditScrips:84 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "Scrip gelöscht" -#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 msgid "Scrips" msgstr "Scrips" @@ -3533,7 +4036,7 @@ msgstr "Scrips für %1\\n" msgid "Scrips which apply to all queues" msgstr "Auf alle Stapel angewande Scrips" -#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "Suchen" @@ -3541,31 +4044,43 @@ msgstr "Suchen" msgid "Search Criteria" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:39 +#: html/Approvals/Elements/PendingMyApproval:38 msgid "Search for approvals" msgstr "Suche nach Freigaben" -#: html/RTFM/Article/Search.html:19 +#: NOT FOUND IN SOURCE msgid "Search for articles" msgstr "Artikel suchen" -#: bin/rt-crontool:188 +#: bin/rt-crontool:184 msgid "Security:" msgstr "Sicherheit:" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Select a Class" msgstr "Wähle eine Klasse aus" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Select a Custom Fields" msgstr "Wähle ein benutzerdefiniertes Feld aus" -#: html/Admin/Groups/index.html:40 +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "Wähle eine Gruppe aus" @@ -3573,91 +4088,99 @@ msgstr "Wähle eine Gruppe aus" msgid "Select a queue" msgstr "" -#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" msgstr "Wähle einen Benutzer aus" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Select class" msgstr "Wähle eine Klasse" -#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "Wähle ein benutzerdef. Feld" -#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" msgstr "Wähle eine Gruppe" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "Wähle mehrere Werte" -#: lib/RT/CustomField_Overlay.pm:352 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "Wähle einen Wert" -#: html/Admin/Elements/QueueTabs:67 +#: html/Admin/Elements/QueueTabs:66 msgid "Select queue" msgstr "Wähle einen Stapel" -#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +#: 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 "Wähle ein Scrip" -#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +#: 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 "Wähle eine Vorlage" -#: html/Admin/Elements/UserTabs:49 +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "Wähle einen Benutzer" -#: lib/RT/CustomField_Overlay.pm:36 +#: lib/RT/CustomField_Overlay.pm:35 msgid "SelectMultiple" msgstr "Mehrfachauswahlfeld" -#: lib/RT/CustomField_Overlay.pm:35 +#: lib/RT/CustomField_Overlay.pm:34 msgid "SelectSingle" msgstr "Einzelauswahlfeld" -#: html/SelfService/index.html:25 +#: NOT FOUND IN SOURCE msgid "Self Service" msgstr "Selbstbedienung" -#: etc/initialdata:114 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "Schicke eine Mail an alle Beobachter" -#: etc/initialdata:110 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "Schicke eine Mail an alle Beobachter als \"Kommentar\"" -#: etc/initialdata:105 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "Schicke eine Mail an die Klienten und CCs" -#: etc/initialdata:100 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "Schicke eine Mail an die Klienten und CCs als Kommentar" -#: etc/initialdata:79 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "Schicke eine Mail an die Klienten" -#: etc/initialdata:118 etc/initialdata:122 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "Schicke eine Mail an die direkt angegebenen CCs und BCCs" -#: etc/initialdata:95 +#: 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 "Schicke eine Mail an die administrativen CCs" -#: etc/initialdata:91 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "Schicke eine Mail an die administrativen CCs als Kommentar" -#: etc/initialdata:83 etc/initialdata:87 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "Schicke eine Mail an den Inhaber" @@ -3665,63 +4188,83 @@ msgstr "Schicke eine Mail an den Inhaber" msgid "Sep." msgstr "Sep" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Seperate multiple URLs with spaces" msgstr "Mehrere URLs getrennt durch Leerzeichen eingeben" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "" -#: RTFM +#: NOT FOUND IN SOURCE msgid "Show advanced search options..." msgstr "Zeige erweiterte Suchoptionen an..." -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "Zeige freigegebene Anfragen" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show basics" msgstr "Zeige Grundlagen" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:44 msgid "Show denied requests" msgstr "Zeige abgelehnte Anfragen" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show details" msgstr "Zeige Details" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:42 msgid "Show pending requests" msgstr "Zeige schwebende Anfragen" -#: html/Approvals/Elements/PendingMyApproval:46 +#: html/Approvals/Elements/PendingMyApproval:45 msgid "Show requests awaiting other approvals" msgstr "Zeige auf andere Freigaben wartende Anfragen" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "Zeige private Kommentare des Anfragen" -#: lib/RT/Queue_Overlay.pm:79 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "Zeige Kurzfassungen der Anfragen" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "" @@ -3729,55 +4272,53 @@ msgstr "" msgid "ShowTicketComments" msgstr "" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "Als Klient einer Anfrage oder Anfrage- bzw. Stapel-CC eintragen" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "Als Anfrage- oder Stapel-AdminCC eintragen" -#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "E-Mail-Signatur" -#: html/SelfService/Elements/Header:52 -#. ($session{'CurrentUser'}->Name) +#: NOT FOUND IN SOURCE msgid "Signed in as %1" msgstr "Angemeldet als %1" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:25 msgid "Single" msgstr "Einzel" -#: html/Elements/Header:51 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "Überspringe Menü" -#: html/Admin/Elements/EditCustomFieldValues:31 +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "Sortierreihenfolge" + +#: NOT FOUND IN SOURCE msgid "Sort key" msgstr "Sortierschlüssel" -#: html/Search/Elements/PickRestriction:109 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "Sortiere Ergebnisse nach" -#: RTFM -msgid "Sort Order" -msgstr "Sortierreihenfolge" - -#: html/Admin/Elements/AddCustomFieldValue:25 +#: NOT FOUND IN SOURCE msgid "SortOrder" msgstr "Sortierreihenfolge" -#: RTFM -msgid "Summary" -msgstr "Zusammenfassung" - -#: RTFM -msgid "Summary matches" -msgstr "Zusammenfassung enthält" - +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" #: NOT FOUND IN SOURCE msgid "Stalled" @@ -3787,7 +4328,7 @@ msgstr "" msgid "Start page" msgstr "" -#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "Begonnen" @@ -3795,7 +4336,7 @@ msgstr "Begonnen" msgid "Started date '%1' could not be parsed" msgstr "" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "Beginnt" @@ -3807,19 +4348,19 @@ msgstr "" msgid "Starts date '%1' could not be parsed" msgstr "" -#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "Staat" -#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +#: 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 "Status" -#: etc/initialdata:288 +#: etc/initialdata:309 msgid "Status Change" msgstr "Ändere Status" -#: lib/RT/Transaction_Overlay.pm:530 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "Status von %1 auf %2 geändert" @@ -3828,25 +4369,33 @@ msgstr "Status von %1 auf %2 geändert" msgid "StatusChange" msgstr "" -#: html/Ticket/Elements/Tabs:147 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "Stehlen" -#: lib/RT/Transaction_Overlay.pm:589 +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "Gestohlen von %1 " -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +#: 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 "Betreff" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#: 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 "Betreff wurde auf %1 geändert" -#: html/Elements/Submit:59 +#: html/Elements/Submit:58 msgid "Submit" msgstr "Übermitteln" @@ -3862,31 +4411,47 @@ msgstr "" msgid "Succeeded" msgstr "Geglückt" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "Zusammenfassung" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "Zusammenfassung enthält" + #: lib/RT/Date.pm:394 msgid "Sun." msgstr "So" -#: lib/RT/System.pm:54 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "" -#: html/User/Elements/DelegateRights:77 +#: html/User/Elements/DelegateRights:76 msgid "System" msgstr "System" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "Systemfehler" -#: lib/RT/ACE_Overlay.pm:616 +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "Systemfehler. Recht nicht delegiert." -#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "Systemfehler. Recht nicht gewährt." -#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 msgid "System groups" msgstr "Systemgruppen" @@ -3894,32 +4459,40 @@ msgstr "Systemgruppen" msgid "SystemRolegroup for internal use" msgstr "SystemRolegroup für internen Gebrauch" -#: lib/RT/CurrentUser.pm:320 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Ticket/Elements/Tabs:143 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "Übernehmen" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "Übernommen" -#: html/Admin/Elements/EditScrip:81 +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "Vorlage" -#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Vorlage #%1" -#: html/Admin/Elements/EditTemplates:89 +#: html/Admin/Elements/EditTemplates:88 msgid "Template deleted" msgstr "Vorlage gelöscht" -#: lib/RT/Scrip_Overlay.pm:153 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "Vorlage nicht gefunden" @@ -3927,11 +4500,11 @@ msgstr "Vorlage nicht gefunden" msgid "Template not found\\n" msgstr "" -#: lib/RT/Template_Overlay.pm:347 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "Vorlagen eingelesen" -#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 msgid "Templates" msgstr "Vorlagen" @@ -3939,135 +4512,146 @@ msgstr "Vorlagen" msgid "Templates for %1\\n" msgstr "Vorlagen für %1\\n" -#: lib/RT/Interface/Web.pm:858 +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "Das ist bereits der aktuelle Wert" -#: lib/RT/CustomField_Overlay.pm:178 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "Dies ist kein gültiger Wert für dieses benutzerdefinierte Feld" -#: lib/RT/Ticket_Overlay.pm:1886 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "Das ist der gleiche Wert" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Dieser Hauptverantwortliche ist bereits ein %1 dieses Stapels" -#: lib/RT/Ticket_Overlay.pm:1434 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Dieser Hauptverantwortliche ist bereits ein %1 dieser Anfrage" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Dieser Hauptverantwortliche ist nicht ein %1 dieses Stapels" -#: lib/RT/Ticket_Overlay.pm:1551 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "Dieser Hauptverantwortliche ist nicht ein %1 dieser Anfrage" -#: lib/RT/Ticket_Overlay.pm:1882 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "Dieser Stapel existiert nicht" -#: lib/RT/Ticket_Overlay.pm:3143 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "Diese Anfrage hat ungelöste Abhängigkeiten" -#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +#: NOT FOUND IN SOURCE msgid "That user already has that right" -msgstr "Dieser Benutzer hat dieses Recht bereits" +msgstr "msgstr "Dieser Benutzer hat dieses Recht bereits" " -#: lib/RT/Ticket_Overlay.pm:2952 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "Diesem Benutzer gehört diese Anfrage bereits" -#: lib/RT/Ticket_Overlay.pm:2918 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "Dieser Benutzer existiert nicht" -#: lib/RT/User_Overlay.pm:315 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "Dieser Benutzer ist bereits privilegiert" -#: lib/RT/User_Overlay.pm:332 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "Dieser Benutzer ist bereits ungeprivilegiert" -#: lib/RT/User_Overlay.pm:327 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "Dieser Benutzer ist jetzt privilegiert" -#: lib/RT/User_Overlay.pm:344 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "Dieser Benutzer ist jetzt unprivelegiert" -#: lib/RT/Ticket_Overlay.pm:2944 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "Diesem Benutzer dürfen keine Anfragen aus diesen Stapel gehören" -#: lib/RT/Link_Overlay.pm:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "Dies ist keine numerische Id" -#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 msgid "The Basics" msgstr "Grundlagen" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:87 msgid "The CC of a ticket" msgstr "Der CC einer Anfrage" -#: lib/RT/ACE_Overlay.pm:89 +#: lib/RT/ACE_Overlay.pm:88 msgid "The administrative CC of a ticket" msgstr "Der administrative CC einer Anfrage" -#: lib/RT/Ticket_Overlay.pm:2213 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "Der Kommentar wurde aufgezeichnet" -#: bin/rt-crontool:198 +#: 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 "Das folgende Kommando wird alle aktiven Anfragen des Stapels 'general' finden und ihre Priorität auf 99 setzen, wenn sie innerhalb der letzten 4 Stunden nicht angefasst wurden:" -#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "Die folgenden Kommandos wurden nicht verarbeitet:\\n\\n" -#: lib/RT/Interface/Web.pm:861 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "Der neue Wert wurde gesetzt." -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:85 msgid "The owner of a ticket" msgstr "Der Inhaber einer Anfrage" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:86 msgid "The requestor of a ticket" msgstr "Der Klient einer Anfrage" -#: html/Admin/Elements/EditUserComments:26 +#: html/Admin/Elements/EditUserComments:25 msgid "These comments aren't generally visible to the user" msgstr "Diese Kommentare sind generell nicht für den Benutzer sichtbar" +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +msgid "This message will be sent to..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "" -#: bin/rt-crontool:189 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Dieses Werkzeug erlaubt es Benutzern beliebige Perl-Module von RT aus aufzurufen." -#: lib/RT/Transaction_Overlay.pm:253 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "Diese Transaktion scheint keinen Inhalt zu haben" -#: html/Ticket/Elements/ShowRequestor:47 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Die %1 höchstpriorisiertesten Anfragen dieses Benutzers" @@ -4084,61 +4668,67 @@ msgstr "Do" msgid "Ticket # %1 %2" msgstr "" -#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Anfrage Nr. %1 Alles aktualisieren: %2" -#: html/Approvals/Elements/ShowDependency:46 +#: html/Approvals/Elements/ShowDependency:45 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Anfrage Nr. %1: %2" -#: lib/RT/Ticket_Overlay.pm:608 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Anfrage %1 wurde in Anfrage '%2' angelegt" -#: bin/rt-commit-handler:760 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "Anfrage %1 geladen\\n" -#: html/Search/Bulk.html:181 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Anfrage %1: %2" -#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "Verlauf von Anfrage Nr. %1 %2" -#: html/SelfService/Display.html:34 +#: NOT FOUND IN SOURCE msgid "Ticket Id" -msgstr "Anfrage Nr." +msgstr "msgstr "Anfrage Nr." " -#: etc/initialdata:303 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "Anfrage erledigt" -#: html/Search/Elements/PickRestriction:63 +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Anhang der Anfrage" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "Inhalt der Anfrage" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "Art des Inhalts der Anfrage" -#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +#: 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 "Anfrage konnte aufgrund eines internen Fehlers nicht angelegt werden" -#: lib/RT/Transaction_Overlay.pm:522 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "Anfrage angelegt" @@ -4146,107 +4736,119 @@ msgstr "Anfrage angelegt" msgid "Ticket creation failed" msgstr "" -#: lib/RT/Transaction_Overlay.pm:527 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "Anfrage gelöscht" -#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +#: NOT FOUND IN SOURCE msgid "Ticket id not found" msgstr "Anfragenummer nicht gefunden" -#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "Anfrage nicht gefunden" -#: etc/initialdata:289 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "Status der Anfrage geändert" -#: html/Ticket/Update.html:39 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "Beobachter der Anfrage" -#: html/Elements/Tabs:49 +#: html/Elements/Tabs:46 msgid "Tickets" msgstr "Anfragen" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "Anfragen %1 %2" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "Anfragen %2 von %2" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Anfragen von %1" -#: html/Approvals/Elements/ShowDependency:27 +#: html/Approvals/Elements/ShowDependency:26 msgid "Tickets which depend on this approval:" msgstr "Anfragen, die von dieser Freigabe abhängen:" -#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "Übrige Zeit" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "Arbeitszeit" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "Übrige Zeit" -#: RTFM -msgid "till" -msgstr "und" - -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "Benötigte Zeit" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "Arbeitszeit" -#: lib/RT/Ticket_Overlay.pm:1165 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "Gearbeitete Zeit" -#: bin/rt-commit-handler:402 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "Um ein 'diff' dieser Übergabe zu erstellen:" -#: bin/rt-commit-handler:391 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "Um ein 'diff' dieser Übergabe zu erstellen:\\n" -#: lib/RT/Ticket_Overlay.pm:1168 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "Eingegangen" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "Transaktion" -#: lib/RT/Transaction_Overlay.pm:642 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transaktion %1 durchgeprügelt" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "Transaktion erstellt" -#: lib/RT/Transaction_Overlay.pm:89 +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "Transaction->Create konnte nicht ausgeführt werden da keine Ticketnummer angegeben wurde" -#: lib/RT/Transaction_Overlay.pm:701 +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "Transaktionen sind unveränderbar" @@ -4258,107 +4860,130 @@ msgstr "" msgid "Tue." msgstr "Di" -#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +#: 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 "Typ" -#: html/RTFM/Article/delete.html:59 +#: NOT FOUND IN SOURCE msgid "Unable to load article" msgstr "Artikel kann nicht geladen werden" -#: lib/RT/ScripCondition_Overlay.pm:104 +#: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "Nicht implementiert" -#: html/Admin/Users/Modify.html:68 +#: html/Admin/Users/Modify.html:67 msgid "Unix login" msgstr "Unix Login" -#: html/Admin/Elements/ModifyUser:62 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "UnixBenutzername" -#: lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Unbekannte Inhalts-Kodierung %1" -#: html/Elements/SelectResultsPerPage:37 +#: html/Elements/SelectResultsPerPage:36 msgid "Unlimited" msgstr "unbegrenzt" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "Unprivilegiert" -#: lib/RT/Transaction_Overlay.pm:571 +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "Zurückgegeben" -#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +#: html/Search/Bulk.html:32 msgid "Update" msgstr "Aktualisieren" -#: html/Admin/Users/Prefs.html:62 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Aktualisierungs-ID" -#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "Aktualisierungtyp" -#: html/Search/Listing.html:61 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "Aktualisiere alle diese Anfragen auf einmal" -#: html/Admin/Users/Prefs.html:49 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "Aktualisiere E-Mail" -#: html/Admin/Users/Prefs.html:55 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "Aktualisiere Name" -#: lib/RT/Interface/Web.pm:375 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "Aktualisierung nicht aufgezeichnet." -#: html/Search/Bulk.html:81 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "Aktualisiere ausgewählte Anfragen" -#: html/Admin/Users/Prefs.html:36 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Aktualisiere Unterschrift" -#: html/Ticket/ModifyAll.html:63 +#: html/Ticket/ModifyAll.html:62 msgid "Update ticket" msgstr "Aktualisiere Anfrage" -#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 -#. ($Ticket->id) +#: NOT FOUND IN SOURCE msgid "Update ticket # %1" msgstr "Aktualisiere Anfrage Nr. %1" -#: html/SelfService/Update.html:50 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Aktualisiere Anfrage Nr. %1" -#: html/Ticket/Update.html:135 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Aktualisiere Anfrage Nr. %1 (%2)" -#: lib/RT/Interface/Web.pm:373 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "Aktualisierungstyp war weder Korrespondenz noch Kommentar." -#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "Aktualisiert" -#: html/RTFM/Article/ExtractFromTicket.html:26 +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" msgstr "Über die Auswahllisten kann bestimmt werden welche Transaktionen in den neuen RTFM Artikel extrahiert werden" @@ -4370,6 +4995,11 @@ msgstr "" msgid "User %1 Password: %2\\n" msgstr "" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "" @@ -4378,76 +5008,88 @@ msgstr "" msgid "User '%1' not found\\n" msgstr "" -#: etc/initialdata:125 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Benutzerdefiniert" -#: html/Admin/Users/Prefs.html:59 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "Benutzer-ID" -#: html/Elements/SelectUsers:26 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "Benutzername" -#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +#: 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 "Benutzerrechte" -#: html/Admin/Users/Modify.html:226 +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "Benutzer konnte nicht angelegt werden: %1" -#: lib/RT/User_Overlay.pm:262 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "Benutzer angelegt" -#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "Benutzerdefinierte Gruppe" +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User notified" msgstr "" -#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "Benutzeransicht" -#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "Benutzername" -#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +#: 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 "Benutzer" -#: html/Admin/Users/index.html:65 +#: html/Admin/Users/index.html:64 msgid "Users matching search criteria" msgstr "Auf diese Kriterien zutreffenede Benutzer" -#: html/Search/Elements/PickRestriction:51 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "ValueOfQueue" -#: html/Admin/Elements/EditCustomField:40 +#: html/Admin/Elements/EditCustomField:56 msgid "Values" msgstr "Werte" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "" -#: html/Admin/Elements/QueueTabs:42 +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "Beobachter" -#: html/Admin/Elements/ModifyUser:56 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "Webkodierung" @@ -4455,87 +5097,99 @@ msgstr "Webkodierung" msgid "Wed." msgstr "Mi" -#: etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "Füge Korrespondenz zum Originalticket, wenn eine Anfrage von allen Freigebenden freigegeben wurde" -#: etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "Füge Korrespondenz zum Originalticket wenn eine Anfrage von einem Freigebenden freigegeben wurde" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "Wenn eine Afrage erstellt wird" -#: etc/upgrade/2.1.71:79 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "Benachrichtige Inhaber und AdminCCs der auf Freigabe wartende Anfrage wenn ein Freigabeticket erstellt wurde" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "Wenn irgendetwas passiert" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "Immer wenn eine Anfrage erledigt wird" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "Immer wenn der Eigentümer einer Anfrage wechselt" -#: etc/initialdata:178 +#: 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 "Immer wenn eine Anfrage den Stapel wechselt" -#: etc/initialdata:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "Immer wenn sich der Status einer Anfrage ändert" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "Immer wenn eine benutzerdefinierte Bedingung auftritt" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "Immer wenn ein neuer Kommentar eingeht" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "Immer wenn neue Korrespondenz eingeht" -#: html/RTFM/Article/Elements/ShowSearchCriteria:64 -msgid "Which refer to" -msgstr "Beziehen sich auf" - -#: html/RTFM/Article/Elements/ShowSearchCriteria:64 +#: NOT FOUND IN SOURCE msgid "Which are referred to by " msgstr "Bezogen von" -#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "Beziehen sich auf" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "Arbeit" -#: html/Admin/Elements/ModifyUser:70 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "Arbeitstelefon" -#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Arbeitszeit" -#: RTFM +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Yes" msgstr "Ja" -#: lib/RT/Ticket_Overlay.pm:3056 +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "Sie besitzen diese Anfrage bereits" -#: html/autohandler:121 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "Sie sind kein authorisierter Benutzer" -#: lib/RT/Ticket_Overlay.pm:2930 +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Sie können nur Anfragen ohne Inhaber zuweisen" @@ -4543,29 +5197,28 @@ msgstr "Sie können nur Anfragen ohne Inhaber zuweisen" msgid "You don't have permission to view that ticket.\\n" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "Sie haben %1 Anfragen in Stapel %2 gefunden" -#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +#: html/NoAuth/Logout.html:30 msgid "You have been logged out of RT." msgstr "Sie wurden von RT abgemeldet." -#: html/SelfService/Display.html:134 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "Sie haben kein Recht, Anfragen in diesen Stapel anzulegen." -#: lib/RT/Ticket_Overlay.pm:1895 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "Sie dürfen in diesem Stapel keine Anfragen erstellen" -#: html/NoAuth/Logout.html:36 +#: html/NoAuth/Logout.html:34 msgid "You're welcome to login again" msgstr "Sie können sich gerne wieder anmelden" -#: html/SelfService/Elements/MyRequests:25 -#. ($friendly_status) +#: NOT FOUND IN SOURCE msgid "Your %1 requests" msgstr "Meine %1 Anfragen" @@ -4573,11 +5226,11 @@ msgstr "Meine %1 Anfragen" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "" -#: etc/initialdata:429 etc/upgrade/2.1.71:146 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "Ihre Anfrage wurde von %1 freigegeben. Andere Freigaben können noch ausstehen." -#: etc/initialdata:463 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "Ihre Anfrage wurde freigegeben." @@ -4585,76 +5238,88 @@ msgstr "Ihre Anfrage wurde freigegeben." msgid "Your request was rejected" msgstr "" -#: etc/initialdata:384 etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "Ihre Anfrage wurde abgewiesen" -#: html/autohandler:136 html/autohandler:142 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "Ihr Benutzername oder Passwort ist falsch" -#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "PLZ" -#: html/User/Elements/DelegateRights:59 +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "und ist nicht" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "und nicht" + +#: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "wie an %1 gewährt" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "geschlossenen" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 msgid "contains" msgstr "enthält" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content" msgstr "Inhalt" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "content-type" -#: lib/RT/Ticket_Overlay.pm:2282 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "Korrepsondenz (möglicherweise) nicht verschickt" -#: lib/RT/Ticket_Overlay.pm:2292 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "Korrespondenz verschickt" -#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "Tage" -#: html/Search/Listing.html:75 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "löschen" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "gelöscht" -#: html/Search/Elements/PickRestriction:68 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "entspricht nicht" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 msgid "doesn't contain" msgstr "enthält nicht" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "entspricht" -#: html/Elements/SelectAttachmentField:28 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "Dateiname" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "greater than" msgstr "größer als" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "Gruppe '%1'" @@ -4667,19 +5332,23 @@ msgstr "Stunden" msgid "id" msgstr "" -#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "%1" + +#: 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 "ist" -#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +#: 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 "ist nicht" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "less than" msgstr "kleiner als" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "entspricht" @@ -4687,11 +5356,11 @@ msgstr "entspricht" msgid "min" msgstr "Min" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "Minuten" -#: bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "Änderungen\\n\\n" @@ -4699,41 +5368,45 @@ msgstr "Änderungen\\n\\n" msgid "months" msgstr "Monate" -#: lib/RT/Queue_Overlay.pm:58 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "neu" -#: html/Admin/Elements/EditScrips:43 +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + +#: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "kein Wert" -#: html/Ticket/Elements/EditWatchers:28 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "keine" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "not equal to" msgstr "entspricht nicht" -#: lib/RT/Queue_Overlay.pm:59 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "offen" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "persönliche Gruppe '%1' für Benutzer '%2'" -#: lib/RT/Group_Overlay.pm:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "Stapel %1 %2" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "abgewiesen" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "erledigt" @@ -4741,30 +5414,42 @@ msgstr "erledigt" msgid "sec" msgstr "Sek" -#: lib/RT/Queue_Overlay.pm:60 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "zurückgestellt" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "System %1" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "Systemgruppe '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:42 +#: html/Elements/Error:42 html/SelfService/Error.html:41 msgid "the calling component did not specify why" msgstr "die aufrufende Komponente gab nicht an warum" -#: lib/RT/Group_Overlay.pm:210 +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "Ticket #%1 %2" -#: lib/RT/Group_Overlay.pm:216 +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "und" + +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "unbeschriebene Gruppe %1" @@ -4773,7 +5458,7 @@ msgstr "unbeschriebene Gruppe %1" msgid "undescripbed group %1" msgstr "" -#: lib/RT/Group_Overlay.pm:191 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "Benutzer %1" diff --git a/rt/lib/RT/I18N/en.po b/rt/lib/RT/I18N/en.po index ffdc5cce6..95df3f7c3 100644 --- a/rt/lib/RT/I18N/en.po +++ b/rt/lib/RT/I18N/en.po @@ -18,7 +18,7 @@ msgstr "Feb" msgid "Fri." msgstr "Fri" -#: html/Elements/Tabs:46 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "Home" @@ -54,11 +54,11 @@ msgstr "Nov" msgid "Oct." msgstr "Oct" -#: html/Ticket/Elements/Tabs:136 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Open" -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "Home" diff --git a/rt/lib/RT/I18N/en_malkovich.po b/rt/lib/RT/I18N/en_malkovich.po new file mode 100644 index 000000000..74769f1a3 --- /dev/null +++ b/rt/lib/RT/I18N/en_malkovich.po @@ -0,0 +1,3973 @@ +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/es.po b/rt/lib/RT/I18N/es.po index f3cc1c141..2a95e94e0 100644 --- a/rt/lib/RT/I18N/es.po +++ b/rt/lib/RT/I18N/es.po @@ -10,27 +10,39 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +#: NOT FOUND IN SOURCE msgid "#" msgstr "#" -#: html/Admin/Queues/Scrip.html:55 -#. ($QueueObj->id) +#: NOT FOUND IN SOURCE msgid "#%1" msgstr "#%1" -#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 -#. ($Ticket->Id, $Ticket->Subject) +#: 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" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: 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:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -40,7 +52,7 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%1 %2 %3 %4:%5:%6 %7" -#: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#: 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) @@ -52,20 +64,21 @@ msgstr "Añadido %1 %2" msgid "%1 %2 ago" msgstr "Hace %1 %2" -#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#: 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 ha cambiado a %3" -#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#: 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 borrado" -#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#: 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 con la plantilla %3" @@ -74,44 +87,70 @@ msgstr "%1 %2 con la plantilla %3" msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 este caso\\n" -#: html/Search/Listing.html:57 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "%1 - %2 mostrados" -#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#: 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 - Un parametro para pasar a %2" -#: bin/rt-crontool:185 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - El estado de la salida actualiza STDOUT" -#: bin/rt-crontool:179 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Especifica el modulo de accion que quieres usar" -#: bin/rt-crontool:173 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Especifica el modulo de condicion que quieres usar" -#: bin/rt-crontool:166 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Especifica el modulo de busqueda que quieres usar" -#: lib/RT/ScripAction_Overlay.pm:122 + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1 ScripAction cargado" -#: lib/RT/Ticket_Overlay.pm:3471 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "$1 añadido como un valor de %2" @@ -128,19 +167,19 @@ msgstr "%1 alias requieren un TicketId en el que trabajar " msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1 alias requieren un TicketId en el que trabajar (de %2) %3" -#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#: 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 parece ser un objeto local, pero no se encuentra en la base de datos" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 +#: 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 por %2" -#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#: 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) @@ -148,7 +187,12 @@ msgstr "%1 por %2" msgid "%1 changed from %2 to %3" msgstr "%1 ha cambiado de %2 a %3" -#: lib/RT/Interface/Web.pm:857 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "%1 no se ha podido fijar a %2" @@ -156,37 +200,40 @@ msgstr "%1 no se ha podido fijar a %2" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 no pudo iniciar una transacción (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 no pudo fijar el estado a resuelto. La base de datos de RT podría ser inconsistente." -#: html/Elements/MyTickets:25 +#: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "Los %1 tickets de mayor prioridad que poseo... " -#: html/Elements/MyRequests:25 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "Los %1 tickets de mayor prioridad que he pedido" -#: bin/rt-crontool:161 +#: bin/rt-crontool:157 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "$1 es una herramienta para actuar sobre los tickets con una herramienta de planificacion externa, como crom" -#: lib/RT/Queue_Overlay.pm:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 ha dejado de ser un %2 para esta cola." -#: lib/RT/Ticket_Overlay.pm:1570 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 ha dejado de ser un %2 para este ticket." -#: lib/RT/Ticket_Overlay.pm:3527 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 ha dejado de ser un valor para campo personalizable %2" @@ -195,16 +242,37 @@ msgstr "%1 ha dejado de ser un valor para campo personalizable %2" msgid "%1 isn't a valid Queue id." msgstr "%1 no es un identificador de Cola válido." -#: html/Ticket/Elements/ShowBasics:36 -#. ($TimeWorked) +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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" +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 no mostrado" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:75 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 privilegios" @@ -225,7 +293,7 @@ msgstr "%1 tipo desconocido para %2" msgid "%1 was created without a CurrentUser\\n" msgstr "%1 se creó sin CurrentUser\\n" -#: lib/RT/Action/ResolveMembers.pm:42 +#: lib/RT/Action/ResolveMembers.pm:41 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 resolverá todos los miembros de un grupo de tickets resueltos." @@ -234,22 +302,28 @@ msgstr "%1 resolverá todos los miembros de un grupo de tickets resueltos." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 pondrá como pendiente una BASE [local] si es dependiente [o miembro] de una solicitud ligada." -#: lib/RT/Transaction_Overlay.pm:435 +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1: ningún archivo adjunto especificado" -#: html/Ticket/Elements/ShowTransaction:102 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransaction:99 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1140 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' es un valor inválido para el estado" @@ -266,7 +340,7 @@ msgstr "(Marque la caja para borrar al miembro del grupo)" msgid "(Check box to delete scrip)" msgstr "(Marque la caja para borrar el scrip)" -#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +#: 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 "(Marque la caja para borrar)" @@ -274,11 +348,23 @@ msgstr "(Marque la caja para borrar)" msgid "(Check boxes to delete)" msgstr "(Marque las cajas para borrar)" +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Introduzca los identificadores de ticket o URLs, separados por espacios)" -#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + +#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) msgid "(If left blank, will default to %1" @@ -288,23 +374,23 @@ msgstr "(Si se deja vacio, pasara por defecto a %1" msgid "(No Value)" msgstr "(Sin Valor)" -#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" msgstr "(No hay campos custom)" -#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" msgstr "(Sin miembros)" -#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 msgid "(No scrips)" msgstr "(Sin scrips)" -#: html/Admin/Elements/EditTemplates:31 +#: html/Admin/Elements/EditTemplates:30 msgid "(No templates)" msgstr "(Sin plantillas)" -#: html/Ticket/Update.html:85 +#: 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 "(Envia una copia oculta de esta actualizacion a una lista delimitada por comas de direcciones de email. <b>NO</b> cambia quien recibirá futuras actualizaciones)" @@ -312,11 +398,11 @@ msgstr "(Envia una copia oculta de esta actualizacion a una lista delimitada por 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 "(Envía una copia oculta de esta actualización a una lista de direcciones de correo delimitada por comas. <b>No</b> cambia a quien recibirá futuras actualizaciones.)" -#: html/Ticket/Create.html:79 +#: 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 "(Envia una copia oculta de esta actualización a una lista delimitada por comas de direcciones de email administrativas. Estas personas <b>recibirán</b> las futuras actualizaciones.)" -#: html/Ticket/Update.html:81 +#: 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 "(Envia una copia oculta de esta actualización a una lista delimitada por comas de direcciones de email.<b>NO</b> cambia quien recibirá futuras actualizaciones." @@ -324,46 +410,66 @@ msgstr "(Envia una copia oculta de esta actualización a una lista delimitada po 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 "(Manda una copia de esta actualización a una lista de direcciones de correo delimitada por comas. <b>No</b> cambia a quien recibirá futuras actualizaciones.)" -#: html/Ticket/Create.html:69 +#: 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 "(Envia una copia de esta actualización a una lista de direcciones de correo delimitada por comas. Estas personas <b>recibirán</b> actualizaciones futuras." -#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(vacío)" -#: html/Admin/Users/index.html:39 +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + +#: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "(no hay nombres listados)" -#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(sin asunto)" -#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +#: 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 "(sin valor)" -#: html/Ticket/Elements/EditLinks:116 +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(solo un ticket)" -#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(pendiente de aprobacion)" -#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(pendiente de otros tickets)" -#: html/Admin/Users/Modify.html:50 +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "(requerido)" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(sin titulo)" +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "Los 25 tickets de mayor prioridad que poseo..." @@ -372,20 +478,28 @@ msgstr "Los 25 tickets de mayor prioridad que poseo..." msgid "25 highest priority tickets I requested..." msgstr "Los 25 tickets de mayor prioridad que he solicitado..." -#: html/Ticket/Elements/ShowBasics:32 +#: html/Ticket/Elements/ShowBasics:31 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:27 +#: html/Elements/SelectTicketTypes:26 msgid "<% $_ %>" msgstr "<% $_ %>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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=\"Nuevo ticket en\"> %1" -#: etc/initialdata:203 +#: etc/initialdata:218 msgid "A blank template" msgstr "Una plantilla en blanco" @@ -405,59 +519,71 @@ msgstr "ACE no se pudo borrar" msgid "ACE could not be found" msgstr "ACE no se encontró" -#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "ACE no encontrado" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "ACEs solo pueden ser creadas o borradas." -#: bin/rt-commit-handler:755 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Abortando para prevenir modificaciones no intencionadas al ticket\\n" -#: html/User/Elements/Tabs:32 +#: html/User/Elements/Tabs:31 msgid "About me" msgstr "Sobre mi" -#: html/Admin/Users/Modify.html:80 +#: html/Admin/Users/Modify.html:79 msgid "Access control" msgstr "Control de acceso" -#: html/Admin/Elements/EditScrip:57 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "Acción" -#: lib/RT/Scrip_Overlay.pm:147 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Acción %1 no encontrada" -#: bin/rt-crontool:123 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "Action committed." -#: bin/rt-crontool:119 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "Acción preparada..." -#: html/Search/Bulk.html:92 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "Añadir AdminCc" -#: html/Search/Bulk.html:90 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "Añadir Cc" -#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "Añadir más archivos" -#: html/Search/Bulk.html:88 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "Añadir solicitante" +#: html/Admin/Elements/AddCustomFieldValue:24 +msgid "Add Value" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Add a keyword selection to this queue" msgstr "Añadir una seleccion de palabra clave a esta cola" @@ -470,19 +596,23 @@ msgstr "Añadir un nuevo scrip global" msgid "Add a scrip to this queue" msgstr "Añadir un scrip a esta cola" -#: html/Admin/Global/Scrip.html:55 +#: html/Admin/Global/Scrip.html:54 msgid "Add a scrip which will apply to all queues" msgstr "Añadir un scrip que se aplicará a todas las colas" -#: html/Search/Bulk.html:118 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "Añadir comentarios o respuestas a los tickets seleccionados" -#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 msgid "Add members" msgstr "Añadir miembro" -#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 msgid "Add new watchers" msgstr "Añadir nuevos observadores" @@ -490,37 +620,37 @@ msgstr "Añadir nuevos observadores" msgid "AddNextState" msgstr "AddNextState" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Principal ha sido añadido como %1 para esta cola" -#: lib/RT/Ticket_Overlay.pm:1454 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Principal ha sido añadido como %1 para este ticket" -#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "Dirección 1" -#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "Dirección 2" -#: html/Ticket/Create.html:74 +#: html/Ticket/Create.html:73 msgid "Admin Cc" msgstr "Admin Cc" -#: etc/initialdata:274 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "Admin Comment" -#: etc/initialdata:256 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "Admin Correspondence" -#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 msgid "Admin queues" msgstr "Administración de colas" @@ -528,7 +658,7 @@ msgstr "Administración de colas" msgid "Admin users" msgstr "Administración de usuarios" -#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 msgid "Admin/Global configuration" msgstr "Adminsitración de la configuración global" @@ -536,7 +666,7 @@ msgstr "Adminsitración de la configuración global" msgid "Admin/Groups" msgstr "Administración de Grupos" -#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "Administración de una cola" @@ -544,7 +674,7 @@ msgstr "Administración de una cola" msgid "AdminAllPersonalGroups" msgstr "AdminAllPersonalGroups" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "AdminCc" @@ -556,7 +686,7 @@ msgstr "AdminComment" msgid "AdminCorrespondence" msgstr "AdminCorrespondence" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "AdminCustomFields" @@ -568,27 +698,35 @@ msgstr "AdminGroup" msgid "AdminGroupMembership" msgstr "AdminGroupMembership" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "AdminOwnPersonalGroups" msgstr "AdminOwnPersonalGroups" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "AdminQueue" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "AdminUsers" msgstr "AdminUsers" -#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "Cc Administrativa" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Búsqueda avanzada" -#: html/Elements/SelectDateRelation:36 +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + +#: html/Elements/SelectDateRelation:35 msgid "After" msgstr "Después" @@ -596,11 +734,19 @@ msgstr "Después" msgid "Age" msgstr "Edad" -#: html/Admin/Elements/EditCustomFields:96 +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Todos los campos custom" -#: html/Admin/Queues/index.html:53 +#: html/Admin/Queues/index.html:52 msgid "All Queues" msgstr "Todas las colas" @@ -608,24 +754,31 @@ msgstr "Todas las colas" msgid "Always sends a message to the requestors independent of message sender" msgstr "Siempre envia un mensaje a los solicitantes independientemente del remitente del mensaje" +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + #: html/Elements/Tabs:58 msgid "Approval" msgstr "Aprobacion" -#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 #. ($Ticket->Id, $Ticket->Subject) #. ($ticket->id, $msg) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Approval #%1: %2" msgstr "Aprobacion #%1: %2" -#: html/Approvals/index.html:54 +#: html/Approvals/index.html:53 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Aprobación #%1: No se han guardado las notas debido a un error del sistema" -#: html/Approvals/index.html:52 +#: html/Approvals/index.html:51 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Aprobacion #%1: Notas guardadas" @@ -634,15 +787,23 @@ msgstr "Aprobacion #%1: Notas guardadas" msgid "Approval Details" msgstr "Detalles de la aprobación" +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "Diagrama de la aprobación" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "Aprobar" -#: etc/initialdata:431 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "Notas del aprobador: %1" @@ -654,38 +815,63 @@ msgstr "Abr." msgid "April" msgstr "Abril" -#: html/Elements/SelectSortOrder:35 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "Ascendente" -#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "Adjunto" -#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "Adjuntar archivo" -#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "Archivo adjunto" -#: html/SelfService/Attachment/dhandler:36 +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Archivo adjunto '%1' no pudo ser cargado" -#: lib/RT/Transaction_Overlay.pm:443 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "Archivo adjunto creado" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "Nombre del archivo adjunto" -#: html/Ticket/Elements/ShowAttachments:26 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "Archivos adjuntos" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "Ago." @@ -694,11 +880,11 @@ msgstr "Ago." msgid "August" msgstr "Agosto" -#: html/Admin/Elements/ModifyUser:66 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "Sistema de autenticación" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "Autorespuesta" @@ -710,37 +896,39 @@ msgstr "Autorespuesta a los solicitantes" msgid "AutoreplyToRequestors" msgstr "AutoreplyToRequestors" +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Firma PGP incorrecta: %1\\n" -#: html/SelfService/Attachment/dhandler:40 +#: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "Identificador de archivo adjunto erróneo. No se puede encontrar el archivo '%1'\\n" -#: bin/rt-commit-handler:827 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "Datos incorrectos en %1" -#: html/SelfService/Attachment/dhandler:43 -#. ($trans, $AttachmentObj->TransactionId()) +#: NOT FOUND IN SOURCE msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Número de transacción incorrecta para el archivo adjunto. %1 debe ser %2\\n" -#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +#: 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 "Basicos" -#: html/Ticket/Update.html:83 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "Asegúrese de salvar sus cambios" -#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "Antes" @@ -748,92 +936,128 @@ msgstr "Antes" msgid "Begin Approval" msgstr "Begin Approval" -#: etc/initialdata:202 +#: etc/initialdata:217 msgid "Blank" msgstr "Vacio" -#: html/Search/Listing.html:79 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "URL para guardar esta búsqueda en sus marcadores" -#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "Encabezados breves" -#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 msgid "Bulk ticket update" msgstr "Actualización de varios tickets a la vez" -#: lib/RT/User_Overlay.pm:1331 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "No se pueden modificar los usuarios del sistema" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "Can this principal see this queue" -#: lib/RT/CustomField_Overlay.pm:144 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "No se puede agregar un campo personalizable si no tiene un nombre" -#: lib/RT/Link_Overlay.pm:132 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "No se puede ligar un ticket a sí mismo" -#: lib/RT/Ticket_Overlay.pm:2787 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "No se puede fusionar dentro de un caso ya fusionado. Nunca deberia recibir este error" -#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "No se puede especificar origen y destino al mismo tiempo" -#: html/autohandler:112 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "No se puede crear el usuario: %1" -#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +#: 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:31 +#: html/SelfService/Prefs.html:30 msgid "Change password" msgstr "Cambiar contraseña" -#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "Check box to delete" -#: html/Admin/Elements/SelectRights:31 +#: html/Admin/Elements/SelectRights:30 msgid "Check box to revoke right" msgstr "Seleccione la caja para quitar el permiso" -#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +#: 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 "Hijo" -#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "Ciudad" +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "Cerrado" -#: html/SelfService/Elements/Tabs:60 +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Solicitudes cerradas" +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Command not understood!\\n" msgstr "No se entendió el comando!\\n" -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "Comentario" -#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "Dirección de comentario" @@ -841,40 +1065,39 @@ msgstr "Dirección de comentario" msgid "Comment not recorded" msgstr "Comentario no grabado" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "Comentario sobre los tickets" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "CommentOnTicket" -#: html/Admin/Elements/ModifyUser:35 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "Comentarios" -#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "Comentarios (no se envían a los solicitantes)" -#: html/Search/Bulk.html:122 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "Comentarios (no se envían a los solicitantes)" -#: html/Elements/ViewUser:27 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "Comentarios acerca de %1" -#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "Comentarios acerca de este usuario" -#: lib/RT/Transaction_Overlay.pm:545 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "Comentarios añadidos" -#: lib/RT/Action/Generic.pm:140 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "Acción realizada" @@ -886,11 +1109,11 @@ msgstr "Compilar restricciones" msgid "Condition" msgstr "Condición" -#: bin/rt-crontool:109 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "La condicion coincide..." -#: lib/RT/Scrip_Overlay.pm:160 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "Condición no encontrada" @@ -898,11 +1121,11 @@ msgstr "Condición no encontrada" msgid "Configuration" msgstr "Configuración" -#: html/SelfService/Prefs.html:33 +#: html/SelfService/Prefs.html:32 msgid "Confirm" msgstr "Confirmar" -#: html/Admin/Elements/ModifyUser:60 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "Información de contacto" @@ -910,23 +1133,31 @@ msgstr "Información de contacto" msgid "Contacted date '%1' could not be parsed" msgstr "Fecha de contacto '%1' no pudo ser leida" -#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "Contenido" +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "No se pudo crear grupo" -#: etc/initialdata:266 +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "Correspondencia" -#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "Dirección de corresponencia" -#: lib/RT/Transaction_Overlay.pm:541 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "Correspondencia agregada" @@ -934,7 +1165,7 @@ msgstr "Correspondencia agregada" msgid "Correspondence not recorded" msgstr "Correspondencia no guardada" -#: lib/RT/Ticket_Overlay.pm:3458 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "No se pudo añadir un nuevo valor de campo personalizable para el ticket. " @@ -942,29 +1173,29 @@ msgstr "No se pudo añadir un nuevo valor de campo personalizable para el ticket msgid "Could not add new custom field value for ticket. %1 " msgstr "No se pudo añadir un nuevo valor de campo personalizable para el ticket. %1 " -#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "No se pudo cambiar el propietario. " -#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "No se puede crear un CampoPersonalizable" -#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "No se pudo crear el grupo" -#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "No se pudo crear la plantilla: %1" -#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "No se pudo crear el ticket. Cola no seleccionada" -#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +#: 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 "No se pudo crear el usuario" @@ -980,11 +1211,11 @@ msgstr "No se pudo encontrar un ticket con identificador $1" msgid "Could not find group %1." msgstr "No se pudo encontrar el grupo %1." -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "No se pudo encontrar o crear el usuario" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "No se pudo encontrar ese principal" @@ -992,35 +1223,38 @@ msgstr "No se pudo encontrar ese principal" msgid "Could not find user %1." msgstr "No se pudo encontrar el usuario %1." -#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "No se puede cargar el grupo" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "No se pudo hacer ese principal un %1 para esta cola" -#: lib/RT/Ticket_Overlay.pm:1443 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "No se pudo hacer ese principal un %1 para este ticket" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "No se pudo quitar ese principal como un %1 para esta cola" -#: lib/RT/Ticket_Overlay.pm:1559 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "No se pudo quitar ese principal como un %1 para este ticket" -#: lib/RT/Group_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "No se pudo agregar el miembro al grupo" -#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "No se pudo crear la transacción: %1" @@ -1033,15 +1267,15 @@ msgstr "No se pudo averiguar que hacer a partir de la firma gpg de la respuesta" msgid "Couldn't find group\\n" msgstr "No se pudo encontrar el grupo\\n" -#: lib/RT/Interface/Web.pm:866 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "No se pudo encontrar la fila" -#: lib/RT/Group_Overlay.pm:959 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "No pudo enconcontrar ese principal" -#: lib/RT/CustomField_Overlay.pm:175 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "No se pudo encontrar ese valor" @@ -1053,11 +1287,19 @@ msgstr "No se pudo encontrar ese observador" msgid "Couldn't find user\\n" msgstr "No se pudo encontrar el usuario\\n" -#: lib/RT/CurrentUser.pm:112 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "No se pudo cargar %1 desde la base de datos de usuarios.\\n" +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "No se pudo cargar KeywordSelects" @@ -1070,21 +1312,21 @@ msgstr "No se pudo cargar el archivo de configuración de RT '%1' %2" msgid "Couldn't load Scrips." msgstr "No se pudieron cargar los Scrips." -#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "No se pudo cargar el grupo %1" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "No se puedo cargar el enlace" -#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "No se pudo cargar la cola" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "No se pudo cargar la cola %1" @@ -1097,38 +1339,41 @@ msgstr "No se pudo cargar el scrip" msgid "Couldn't load template" msgstr "No se pudo cargar la plantilla" -#: html/Admin/Users/Prefs.html:79 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "No se pudo cargar ese usuario (%1)" -#: html/SelfService/Display.html:166 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "No se pudo cargar el ticket '%1'" -#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "País" -#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +#: 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 "Crear" -#: etc/initialdata:128 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "Crear Tickets" -#: html/Admin/Elements/EditCustomField:58 +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + +#: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "Crear CampoPersonalizable" -#: html/Admin/Queues/CustomField.html:48 +#: html/Admin/Queues/CustomField.html:47 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Crear un campo personalizables para la cola %1" -#: html/Admin/Global/CustomField.html:48 +#: html/Admin/Global/CustomField.html:47 msgid "Create a CustomField which applies to all queues" msgstr "Crear un campo personalizable que se aplique a todas las colas" @@ -1136,15 +1381,19 @@ msgstr "Crear un campo personalizable que se aplique a todas las colas" msgid "Create a new Custom Field" msgstr "Crear un nuevo campo personalizable" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create a new global scrip" msgstr "Crear un nuevo scrip global" -#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 msgid "Create a new group" msgstr "Creat un nuevo grupo" -#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 msgid "Create a new personal group" msgstr "Crear un nuevo grupo personal" @@ -1160,11 +1409,11 @@ msgstr "Crear un nuevo scrip" msgid "Create a new template" msgstr "Crear una nueva plantilla" -#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 msgid "Create a new ticket" msgstr "Crear un nuevo ticket" -#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "Crear un nuevo usuario" @@ -1176,19 +1425,31 @@ msgstr "Crear una cola" msgid "Create a queue called" msgstr "Crear una cola llamada " -#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +#: NOT FOUND IN SOURCE msgid "Create a request" msgstr "Crear una solicitud" -#: html/Admin/Queues/Scrip.html:59 +#: html/Admin/Queues/Scrip.html:58 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Crear un scrip para la cola %1" -#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 msgid "Create a template" msgstr "Crear una plantilla" +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Creación fallida: %1 / %2 / %3 " @@ -1197,23 +1458,23 @@ msgstr "Creación fallida: %1 / %2 / %3 " msgid "Create failed: %1/%2/%3" msgstr "Creación fallida: %1 / %2 / %3 " -#: etc/initialdata:130 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "Crear nuevos tickets basados en esta plantilla de scrip" -#: html/SelfService/Create.html:81 +#: html/SelfService/Create.html:77 msgid "Create ticket" msgstr "Crear ticket" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "Crear tickets en esta cola" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "Crear, borrar y modifical campos personalizables" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "Crear, borrar y modificar colas" @@ -1221,105 +1482,117 @@ msgstr "Crear, borrar y modificar colas" msgid "Create, delete and modify the members of any user's personal groups" msgstr "Crear, borrar y modificar los miembros de cualquier grupo personal de usuario" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "Create, delete and modify the members of personal groups" msgstr "Crear, borrar y modificar los miembros de los grupos personales" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "Create, delete and modify users" msgstr "Crear, borrar y modificar usuarios" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "CreateTicket" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "Creado" -#: html/Admin/Elements/EditCustomField:71 +#: html/Admin/Elements/EditCustomField:87 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "CampoPersonalizable %1 creado" +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Plantilla %1 creada" -#: html/Ticket/Elements/EditLinks:28 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "Relaciones actuales" -#: html/Admin/Elements/EditScrips:30 +#: html/Admin/Elements/EditScrips:29 msgid "Current Scrips" msgstr "Scrips actuales" -#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "Miembros actuales" -#: html/Admin/Elements/SelectRights:29 +#: html/Admin/Elements/SelectRights:28 msgid "Current rights" msgstr "Permisos actuales" -#: html/Search/Listing.html:71 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "Criterio de busqueda actual" -#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "Observadores actuales" -#: html/Admin/Global/CustomField.html:55 +#: html/Admin/Global/CustomField.html:54 #. ($CustomField) msgid "Custom Field #%1" msgstr "Campo personalizable #%1" -#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +#: 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 "Campos personalizables" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "Codigo de limpieza de accion personalizable" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "Codigo de preparacion de accion personalizable" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "Condicion personalizable" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "Campo personalizado %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Campo personalizado %1 tiene un valor." -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Campo personalizado %1 no tiene un valor." -#: lib/RT/Ticket_Overlay.pm:3360 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Campo personalizado %1 no encontrado" -#: html/Admin/Elements/EditCustomFields:197 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "Campo personalizable borrado" -#: lib/RT/Ticket_Overlay.pm:3510 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "Campo personalizado no encontrado" -#: lib/RT/CustomField_Overlay.pm:283 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "El valor del campo %1 no pudo ser encontrado para el campo %2" @@ -1328,19 +1601,19 @@ msgstr "El valor del campo %1 no pudo ser encontrado para el campo %2" msgid "Custom field value changed from %1 to %2" msgstr "Valor del campo cambiado de %1 a %2" -#: lib/RT/CustomField_Overlay.pm:185 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "El valor del campo no pudo ser borrado" -#: lib/RT/CustomField_Overlay.pm:289 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "El valor del campo no pudo se encontrado" -#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "Valor del campo borrado" -#: lib/RT/Transaction_Overlay.pm:550 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "CustomField" @@ -1348,7 +1621,7 @@ msgstr "CustomField" msgid "Data error" msgstr "Error de datos" -#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +#: 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 "Fechas" @@ -1364,68 +1637,88 @@ msgstr "Diciembre" msgid "Default Autoresponse Template" msgstr "Plantilla de autorespuesta por defecto" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Plantilla de autorespuesta por defect" -#: etc/initialdata:275 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "Plantilla de comentario de admin por defecto" -#: etc/initialdata:257 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "Plantilla de correspondencia de admin por defecto" -#: etc/initialdata:267 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "Plantilla de correspondencia por defecto" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "Plantilla de trasacciones por defecto" -#: lib/RT/Transaction_Overlay.pm:645 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "Por defecto: %1/%2 ha cambiado de %3 a %4" -#: html/User/Delegation.html:25 html/User/Delegation.html:28 +#: html/User/Delegation.html:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "Delegar derechos" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "Delegate specific rights which have been granted to you." msgstr "Delegar derechos especificos que te han sido concedidos" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "DelegateRights" msgstr "DelegateRights" -#: html/User/Elements/Tabs:38 +#: html/User/Elements/Tabs:37 msgid "Delegation" msgstr "Delegar" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "Borrar" -#: lib/RT/Queue_Overlay.pm:90 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "Borrar tickets" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "DeleteTicket" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "Al borrar este objeto, se puede romper la integridad referencial" -#: lib/RT/Queue_Overlay.pm:292 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "Al borrar este objeto, se romperá la integridad referencial" -#: lib/RT/User_Overlay.pm:430 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "Al borrar este objeto, se violará la integridad referencial" @@ -1437,11 +1730,11 @@ msgstr "Al borrar este objeto, se violará la integridad referencial." msgid "Deleting this object would violate referential integrity. That's bad." msgstr "Al borrar este objeto, se violará la integridad referencial. Eso es malo." -#: html/Approvals/Elements/Approve:46 +#: html/Approvals/Elements/Approve:44 msgid "Deny" msgstr "Denegar" -#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +#: 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 "Dependen de este ticket" @@ -1449,7 +1742,27 @@ msgstr "Dependen de este ticket" msgid "Dependencies: \\n" msgstr "Dependencias: \\n" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "Depende de" @@ -1457,64 +1770,79 @@ msgstr "Depende de" msgid "DependsOn" msgstr "DependsOn" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "Descendiente" -#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 msgid "Describe the issue below" msgstr "Describa el problema debajo" -#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +#: 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 "Descripción" -#: html/SelfService/Elements/MyRequests:44 +#: NOT FOUND IN SOURCE msgid "Details" msgstr "Detalles" -#: html/Ticket/Elements/Tabs:85 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "Despliegue" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "Mostrar Lista de Control de Acceso" -#: lib/RT/Queue_Overlay.pm:75 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "Mostrar plantillas de scrip para esta cola" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "Mostrar scrips para esta cola" -#: html/Ticket/Elements/ShowHistory:35 +#: html/Ticket/Elements/ShowHistory:34 msgid "Display mode" msgstr "Modo de despliegue" -#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 -#. ($Ticket->id) +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Despliega ticket #%1" -#: lib/RT/System.pm:54 +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + +#: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "Hacer cualquier cosa y todo" -#: html/Elements/Refresh:30 +#: html/Elements/Refresh:29 msgid "Don't refresh this page." msgstr "No recargar esta página" -#: html/Search/Elements/PickRestriction:114 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "No mostrar los resultados de la busqueda" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "Descargar" -#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: 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 "Retraso" @@ -1522,8 +1850,7 @@ msgstr "Retraso" msgid "Due date '%1' could not be parsed" msgstr "La fecha de retraso '%1' no pudo ser leida" -#: bin/rt-commit-handler:754 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "ERROR: No se pudo cargar el ticket '%1': %2.\\n" @@ -1536,10 +1863,18 @@ msgstr "Editar" msgid "Edit Custom Fields for %1" msgstr "Editar campos personalizados para %1" -#: html/Ticket/ModifyLinks.html:36 -msgid "Edit Relationships" +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "Editar relaciones" +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + #: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" @@ -1549,11 +1884,15 @@ msgstr "Editar plantillas para la cola %1" msgid "Edit keywords" msgstr "Editar palabras clave" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "Editar acciones" -#: html/Admin/Global/index.html:46 +#: html/Admin/Global/index.html:45 msgid "Edit system templates" msgstr "Editar plantillas del sistema" @@ -1561,28 +1900,34 @@ msgstr "Editar plantillas del sistema" msgid "Edit templates for %1" msgstr "Editar plantillas para %1" -#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "Editando configuración para la cola %1" -#: html/Admin/Elements/ModifyUser:25 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "Editando configuración para el usuario %1" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/Elements/EditCustomField:90 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Editando campo %1" -#: html/Admin/Groups/Members.html:32 +#: html/Admin/Groups/Members.html:31 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Editando los miembros del grupo %1" -#: html/User/Groups/Members.html:129 +#: html/User/Groups/Members.html:128 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Editando los miembros para el grupo personal %1" @@ -1591,64 +1936,89 @@ msgstr "Editando los miembros para el grupo personal %1" msgid "Editing template %1" msgstr "Editando plantilla %1" -#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "La base o el destinatario deben ser especificados" -#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "Correo" -#: lib/RT/User_Overlay.pm:188 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "La dirección de correo ya está en uso" -#: html/Admin/Elements/ModifyUser:42 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "Correo Electrónico" -#: html/Admin/Elements/ModifyUser:54 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "Codificación para el correo" -#: html/Admin/Elements/EditCustomField:36 +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + +#: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Habilitado (Desmarcar esta caja deshabilita este campo personalizable)" -#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 msgid "Enabled (Unchecking this box disables this group)" msgstr "Habilitado (Desmarcar esta caja deshabilita este campo personalizable)" -#: html/Admin/Queues/Modify.html:84 +#: html/Admin/Queues/Modify.html:83 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Habilitado (Desmarcar esta caja, deshabilita esta cola)" -#: html/Admin/Elements/EditCustomFields:99 +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Campos Personalizables Habilitados" -#: html/Admin/Queues/index.html:56 +#: html/Admin/Queues/index.html:55 msgid "Enabled Queues" msgstr "Colas habilitadas" + -#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#: 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 "Estado %1 habilitado" -#: lib/RT/CustomField_Overlay.pm:361 +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "Introducir multiples valores" -#: lib/RT/CustomField_Overlay.pm:358 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "Introducir un valor" -#: html/Ticket/Elements/EditLinks:112 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Ingrese los números de ticket o las URL que llevan hacia el ticket. Separe multiples entradas con espacios" -#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "Error" @@ -1656,51 +2026,75 @@ msgstr "Error" msgid "Error adding watcher" msgstr "Error añadiendo observador" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "Error en los parámetros para Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "Error en los parámetros para Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1356 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Error en los parámetros para Queue->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1532 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "Error en los parámetros para Queue->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "Todos" -#: bin/rt-crontool:194 +#: bin/rt-crontool:190 msgid "Example:" msgstr "Ejemplo" -#: html/Admin/Elements/ModifyUser:64 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "ExternalAuthId" -#: html/Admin/Elements/ModifyUser:58 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "ExternalContactInfoId" -#: html/Admin/Users/Modify.html:73 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "Información extra" -#: lib/RT/User_Overlay.pm:302 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Problema para encontrar el pseudogrupo de usuarios 'Privileged'" -#: lib/RT/User_Overlay.pm:309 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Problema para encontrar el pseudogrupo de usuarios 'Unprivileged'" -#: bin/rt-crontool:138 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Error al cargar el modulo %1. (%2)" @@ -1713,31 +2107,35 @@ msgstr "Feb." msgid "February" msgstr "Febrero" +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "Fin" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "Prioridad Final" -#: lib/RT/Ticket_Overlay.pm:1162 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "FinalPriority" -#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "Encontrar grupo que" -#: html/Elements/Quicksearch:25 +#: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "Encontrar tickets nuevos/abiertos" -#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "Encontrar gente que" -#: html/Search/Listing.html:108 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "Encontrar tickets" @@ -1745,44 +2143,44 @@ msgstr "Encontrar tickets" msgid "Finish Approval" msgstr "Aprobacion final" -#: html/Ticket/Elements/Tabs:58 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "Primero" -#: html/Search/Listing.html:41 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "Primera página" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "Foo Bar Baz" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "Forzar cambio" -#: html/Search/Listing.html:106 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "Encontrado %quant(%1,ticket)" -#: lib/RT/Interface/Web.pm:868 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "Objeto encontrado" -#: html/Admin/Elements/ModifyUser:44 +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FreeformContactInfo" -#: lib/RT/CustomField_Overlay.pm:38 +#: lib/RT/CustomField_Overlay.pm:37 msgid "FreeformMultiple" msgstr "FreeformMultiple" -#: lib/RT/CustomField_Overlay.pm:37 +#: lib/RT/CustomField_Overlay.pm:36 msgid "FreeformSingle" msgstr "FreeformSingle" @@ -1790,20 +2188,24 @@ msgstr "FreeformSingle" msgid "Fri." msgstr "Vie." -#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 msgid "Full headers" msgstr "Encabezados completos" +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "Obteniendo el usuario de la firma pgp" -#: lib/RT/Transaction_Overlay.pm:595 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "Given to %1" -#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 msgid "Global" msgstr "Global" @@ -1815,12 +2217,16 @@ msgstr "Seleccion de palabras clave globales" msgid "Global Scrips" msgstr "Acciones Globales" -#: html/Admin/Elements/SelectTemplate:38 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Plantilla global" -#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 " Ir " @@ -1828,15 +2234,15 @@ msgstr " Ir " msgid "Good pgp sig from %1\\n" msgstr "Firma pgp correcta de %1\\n" -#: html/Search/Listing.html:50 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "Ir a página" -#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "Ir a ticket" -#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "Grupo" @@ -1844,11 +2250,11 @@ msgstr "Grupo" msgid "Group %1 %2: %3" msgstr "Grupo %1 %2: %3" -#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +#: 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 "Derechos del grupo" -#: lib/RT/Group_Overlay.pm:965 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "El grupo ya tiene miembros" @@ -1856,7 +2262,7 @@ msgstr "El grupo ya tiene miembros" msgid "Group could not be created." msgstr "El grupo no se pudo crear" -#: html/Admin/Groups/Modify.html:77 +#: html/Admin/Groups/Modify.html:76 #. ($create_msg) msgid "Group could not be created: %1" msgstr "El grupo no se pudo crear: %1" @@ -1865,11 +2271,11 @@ msgstr "El grupo no se pudo crear: %1" msgid "Group created" msgstr "Grupo creado" -#: lib/RT/Group_Overlay.pm:1133 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "El grupo no tiene este miembro" -#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +#: 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 "Grupo no encontrado" @@ -1881,36 +2287,40 @@ msgstr "Grupo no entontrado\\n" msgid "Group not specified.\\n" msgstr "Grupo no especificado\\n" -#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +#: 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 "Grupos" -#: lib/RT/Group_Overlay.pm:971 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "Los grupos no pueden ser miembros de sus propios miembros" -#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "Hola!" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "Hola, %1" -#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "Historial" -#: html/Admin/Elements/ModifyUser:68 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "Tel Casa" -#: html/Elements/Tabs:46 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "Inicio" -#: lib/RT/Base.pm:74 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "Tengo %quant(%1,concrete mixer)." @@ -1919,55 +2329,71 @@ msgstr "Tengo %quant(%1,concrete mixer)." msgid "I have [quant,_1,concrete mixer]." msgstr "Tengo [quant,_1,concrete mixer]." -#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +#: 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:44 html/User/Prefs.html:39 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "Identidad" -#: etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Si una aprobacion es rechazada, rechazar la original y borrar las aprobaciones pendientes" -#: bin/rt-crontool:190 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "Si esta herramienta estaba setgid, un usuario hostil local podria usar esta herramienta para conseguir acceso administrativo a RT." -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: 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 "Si ha actualizado algo más arriba, no olvide" -#: lib/RT/Interface/Web.pm:860 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "Valor ilegal para %1" -#: lib/RT/Interface/Web.pm:863 +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "Campo inmutable" -#: html/Admin/Elements/EditCustomFields:74 +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Incluir campos personalizables deshabilitados en el listado." -#: html/Admin/Queues/index.html:43 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "Incluir colas deshabilitadas en el listado" -#: html/Admin/Users/index.html:47 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "Incluir usuarios deshabilitados en la búsqueda" -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "Prioridad inicial" -#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "InitialPriority" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "Error de entrada" @@ -1975,11 +2401,11 @@ msgstr "Error de entrada" msgid "Interest noted" msgstr "Interest noted" -#: lib/RT/Ticket_Overlay.pm:3729 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "Error interno" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Error interno: %1" @@ -1988,7 +2414,7 @@ msgstr "Error interno: %1" msgid "Invalid Group Type" msgstr "Tipo de grupo inválido" -#: lib/RT/Principal_Overlay.pm:128 +#: lib/RT/Principal_Overlay.pm:127 msgid "Invalid Right" msgstr "Derechos inválidos" @@ -1996,44 +2422,44 @@ msgstr "Derechos inválidos" msgid "Invalid Type" msgstr "Tipo inválido" -#: lib/RT/Interface/Web.pm:865 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "Datos no válidos" -#: lib/RT/Ticket_Overlay.pm:438 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Propietario inválido. Estableciéndolo a 'nobody'." -#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "Ãrea inválida" -#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +#: 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 "Permiso inválido" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "Valor inválido para %1" -#: lib/RT/Ticket_Overlay.pm:3367 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "Valor inválido para el campo personalizable" -#: lib/RT/Ticket_Overlay.pm:345 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "Valor inválido para el estado" -#: bin/rt-crontool:191 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "Es increiblemente importante que los usuarios sin privilegios no puedan ejecutar esta herramienta" -#: bin/rt-crontool:192 +#: 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 "Es recomendable crear un usuario unix sin privilegios que pertenezca al grupo correcto y que tenga aceso a ejecutar esta herramienta" -#: bin/rt-crontool:163 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "Tiene varios parametros:" @@ -2061,7 +2487,7 @@ msgstr "Jul." msgid "July" msgstr "Julio" -#: html/Ticket/Elements/Tabs:99 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "Todo" @@ -2077,27 +2503,35 @@ msgstr "Junio" msgid "Keyword" msgstr "Palabras clave" -#: html/Admin/Elements/ModifyUser:52 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "Leng" -#: html/Ticket/Elements/Tabs:73 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "Último" -#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "Último contacto" -#: html/Elements/SelectDateType:29 +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + +#: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "Último contactado" -#: html/Search/Elements/TicketHeader:41 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "Se le notifico por ultima vez" -#: html/Elements/SelectDateType:30 +#: html/Elements/SelectDateType:29 msgid "Last Updated" msgstr "Actualizado por ultima vez" @@ -2105,15 +2539,19 @@ msgstr "Actualizado por ultima vez" msgid "LastUpdated" msgstr "LastUpdated" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "Izquierda" -#: html/Admin/Users/Modify.html:83 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" msgstr "Permitir a este usuario acceder al RT" -#: html/Admin/Users/Modify.html:87 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" msgstr "Permitir que este usuario tenga privilegios adicionales" @@ -2125,29 +2563,29 @@ msgstr "Limitando propietario a %1 %2" msgid "Limiting queue to %1 %2" msgstr "Limitando cola a %1 %2" -#: lib/RT/Ticket_Overlay.pm:2697 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "El vínculo ya existe" -#: lib/RT/Ticket_Overlay.pm:2709 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "El vínculo no pudo ser creado" -#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "Vínculo creado (%2)" -#: lib/RT/Ticket_Overlay.pm:2638 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "Vínculo borrado (%1)" -#: lib/RT/Ticket_Overlay.pm:2644 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "Vínculo no encontrado" -#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Vincular caso #%1" @@ -2156,85 +2594,101 @@ msgstr "Vincular caso #%1" msgid "Link ticket %1" msgstr "Enlazar ticket %1" -#: html/Ticket/Elements/Tabs:97 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "Enlaces" -#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "Direccion" -#: lib/RT.pm:158 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "El directorio del log %1 no pudo ser encontrado o no se pudo escribir en él.\\n RT no puede ejecutarse." -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Autenticado como %1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +#: 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 "Entrar" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "Salir" -#: html/Search/Bulk.html:86 +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "Hacer propietario a" -#: html/Search/Bulk.html:102 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "Establecer estatus" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "Establecer fecha de plazo" -#: html/Search/Bulk.html:110 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "Establecer fecha de resolución" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "Establecer fecha de inicio" -#: html/Search/Bulk.html:106 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "Establecer fecha de inicio" -#: html/Search/Bulk.html:108 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "Establecer fecha de último cambio" -#: html/Search/Bulk.html:99 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "Establecer prioridad" -#: html/Search/Bulk.html:100 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "Establecer cola" -#: html/Search/Bulk.html:98 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "Establecer título" -#: html/Admin/index.html:33 +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "Administrar grupos y miembros" -#: html/Admin/index.html:39 +#: html/Admin/index.html:38 msgid "Manage properties and configuration which apply to all queues" msgstr "Administrar propiedades y configuracion que se aplique a todas las colas" -#: html/Admin/index.html:36 +#: html/Admin/index.html:35 msgid "Manage queues and queue-specific properties" msgstr "Administrar colas y propiedades especificas" -#: html/Admin/index.html:30 +#: html/Admin/index.html:29 msgid "Manage users and passwords" msgstr "Administrar usuarios y contraseñas" @@ -2254,19 +2708,29 @@ msgstr "Mayo" msgid "May." msgstr "May." -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "Miembro añadido" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "Miembro borrado" -#: lib/RT/Group_Overlay.pm:1144 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "Miembro no borrado" -#: html/Elements/SelectLinkType:26 +#: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "Miembro de" @@ -2274,39 +2738,82 @@ msgstr "Miembro de" msgid "MemberOf" msgstr "MemberOf" -#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "Miembros" -#: lib/RT/Ticket_Overlay.pm:2843 +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "Fusión exitosa" -#: lib/RT/Ticket_Overlay.pm:2804 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Fusión fallida. No se pudo establecer el EffectiveId" -#: html/Ticket/Elements/EditLinks:115 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "Fusionar dentro de" -#: html/Ticket/Update.html:102 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "Mensaje" -#: lib/RT/Interface/Web.pm:867 +#: NOT FOUND IN SOURCE +msgid "Message body not shown because it is too large or is not plain text." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "Falta una clave primaria?: %1" -#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "Movil" -#: html/Admin/Elements/ModifyUser:72 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "Telefono Movil" -#: lib/RT/Queue_Overlay.pm:70 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "Modificar lista de control de acceso" @@ -2314,15 +2821,27 @@ msgstr "Modificar lista de control de acceso" msgid "Modify Custom Field %1" msgstr "Modificar el campo personalizable %1" -#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "Modificar los campos personalizables que se apliquen a todas las colas" -#: lib/RT/Queue_Overlay.pm:73 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "Modificar plantillas Sript para esta cola" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "Modificar Scrips para esta cola" @@ -2334,43 +2853,51 @@ msgstr "Modificar ACLs de sistema" msgid "Modify Template %1" msgstr "Modificar plantilla %1" -#: html/Admin/Queues/CustomField.html:45 +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + +#: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "Modificar un campo personalizable para la cola %1" -#: html/Admin/Global/CustomField.html:53 +#: html/Admin/Global/CustomField.html:52 msgid "Modify a CustomField which applies to all queues" msgstr "Modificar un campo personalizable que se aplique a todas las colas" -#: html/Admin/Queues/Scrip.html:54 +#: html/Admin/Queues/Scrip.html:53 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Modificar un scrip para la cola %1" -#: html/Admin/Global/Scrip.html:48 +#: html/Admin/Global/Scrip.html:47 msgid "Modify a scrip which applies to all queues" msgstr "Modificar un scrip que se aplique a todas las colas" +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "Modificar fechas para # %1" -#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Modificar fechas para #%1" -#: html/Ticket/ModifyDates.html:35 +#: html/Ticket/ModifyDates.html:34 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Modificar fechas para ticket # %1" -#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 msgid "Modify global group rights" msgstr "Modificar privilegios globales de grupo" -#: html/Admin/Global/GroupRights.html:33 +#: html/Admin/Global/GroupRights.html:32 msgid "Modify global group rights." msgstr "Modificar privilegios globales de grupo." @@ -2386,11 +2913,11 @@ msgstr "Modificar privilegios globales para usuarios" msgid "Modify global scrips" msgstr "Modificar acciones globales" -#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 msgid "Modify global user rights" msgstr "Modificar derechos globales de usuario" -#: html/Admin/Global/UserRights.html:33 +#: html/Admin/Global/UserRights.html:32 msgid "Modify global user rights." msgstr "Modificar privilegios globales de usuario" @@ -2398,12 +2925,16 @@ msgstr "Modificar privilegios globales de usuario" msgid "Modify group metadata or delete group" msgstr "Modificar metadatos del grupo o borrar grupo" -#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "" + +#: 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 "Modificar privilegios de grupo para %1" -#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Modificar privilegios de grupo para la cola %1" @@ -2412,74 +2943,74 @@ msgstr "Modificar privilegios de grupo para la cola %1" msgid "Modify membership roster for this group" msgstr "Modificar miembros de este grupo" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "Modify one's own RT account" msgstr "Modificar la propia cuenta RT" -#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Modificar personas relacionadas al cola %1" -#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#: 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 "Modificar personas relacionadas al ticket #%1" -#: html/Admin/Queues/Scrips.html:44 +#: html/Admin/Queues/Scrips.html:45 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Modificar acciones para la cola %1" -#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 msgid "Modify scrips which apply to all queues" msgstr "Modificar scrips que se aplican a todas las colas" -#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#: 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 "Modificar plantilla %1" -#: html/Admin/Global/Templates.html:44 +#: html/Admin/Global/Templates.html:43 msgid "Modify templates which apply to all queues" msgstr "Modificar plantillas que se aplican a todas las colas" -#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 #. ($Group->Name) msgid "Modify the group %1" msgstr "Modificar el grupo %1" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "Modificar los observadores de la cola" -#: html/Admin/Users/Modify.html:236 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Modificar el usuario %1" -#: html/Ticket/ModifyAll.html:37 +#: html/Ticket/ModifyAll.html:36 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Modificar el ticket # %1" -#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Modificar el ticket #%1" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "Modificar tickets" -#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#: 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 "Modificar privilegios de usuario para el grupo %1" -#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Modificar derechos de usuario para la cola %1" @@ -2488,7 +3019,7 @@ msgstr "Modificar derechos de usuario para la cola %1" msgid "Modify watchers for queue '%1'" msgstr "Modificar observadores para la cola '%1'" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "ModifyACL" @@ -2496,23 +3027,23 @@ msgstr "ModifyACL" msgid "ModifyOwnMembership" msgstr "ModifyOwnMembership" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "ModifyQueueWatchers" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "ModifyScrips" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "ModifySelf" msgstr "ModifySelf" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "ModifyTemplate" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "ModifyTicket" @@ -2520,43 +3051,56 @@ msgstr "ModifyTicket" msgid "Mon." msgstr "Lun." -#: html/Ticket/Elements/ShowRequestor:42 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "Más acerca de %1" -#: html/Admin/Elements/EditCustomFields:61 +#: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "Mover hacia abajo" -#: html/Admin/Elements/EditCustomFields:53 +#: html/Admin/Elements/EditCustomFields:52 msgid "Move up" msgstr "Move hacia arriba" -#: html/Admin/Elements/SelectSingleOrMultiple:27 +#: html/Admin/Elements/SelectSingleOrMultiple:26 msgid "Multiple" msgstr "Múltiple" -#: lib/RT/User_Overlay.pm:179 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "Se debe especificar un nombre" +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "Mis aprobaciones" -#: html/Approvals/index.html:25 html/Approvals/index.html:26 +#: html/Approvals/index.html:24 html/Approvals/index.html:25 msgid "My approvals" msgstr "Mis aprobaciones" -#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "Nombre" -#: lib/RT/User_Overlay.pm:186 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "Nombre en uso" +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Se necesita aprobacion del administrador del sistema" @@ -2565,55 +3109,67 @@ msgstr "Se necesita aprobacion del administrador del sistema" msgid "Never" msgstr "Nunca" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "Nuevo" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "Nuevas relaciones" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "Nueva contraseñaa" -#: etc/initialdata:311 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "Nueva pendiente de aprobación" -#: html/Ticket/Elements/EditLinks:111 -msgid "New Relationships" -msgstr "Nuevas relaciones" +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" -#: html/Ticket/Elements/Tabs:36 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "Nueva búsqueda" -#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + +#: 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 "Nuevo campo personalizable" -#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 msgid "New group" msgstr "Nuevo grupo" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:31 msgid "New password" msgstr "Nueva contraseñaa" -#: lib/RT/User_Overlay.pm:639 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "Notificación de nueva contraseña enviada" -#: html/Admin/Elements/QueueTabs:70 +#: html/Admin/Elements/QueueTabs:69 msgid "New queue" msgstr "Nueva cola" -#: html/SelfService/Elements/Tabs:63 +#: NOT FOUND IN SOURCE msgid "New request" msgstr "Nueva solicitud" -#: html/Admin/Elements/SelectRights:42 +#: html/Admin/Elements/SelectRights:41 msgid "New rights" msgstr "Nuevos privilegios" -#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +#: 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 "Nuevo scrip" @@ -2621,67 +3177,91 @@ msgstr "Nuevo scrip" msgid "New search" msgstr "Nueva búsqueda" -#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +#: 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 "Nueva plantilla" -#: lib/RT/Ticket_Overlay.pm:2771 +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "El ticket nuevo no existe" -#: html/Admin/Elements/UserTabs:52 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "Nuevo usuario" -#: html/Admin/Elements/CreateUserCalled:26 +#: html/Admin/Elements/CreateUserCalled:25 msgid "New user called" msgstr "Nuevo usuario llamado" -#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 msgid "New watchers" msgstr "Nuevo observador" -#: html/Admin/Users/Prefs.html:42 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "Establecer nueva ventana " -#: html/Ticket/Elements/Tabs:69 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "Siguiente" -#: html/Search/Listing.html:48 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "Siguiente página" -#: html/Admin/Elements/ModifyUser:50 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "Alias" -#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "Alias" -#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "No hay campo personalizable" -#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "No hay grupo definido" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "No hay cola definida" -#: bin/rt-crontool:56 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "No se encontró el usuario. Por favor consulte al administrador.\\n" -#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 msgid "No Template" msgstr "No hay plantilla" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "No se especificó el ticket. Abortada la transacción" @@ -2689,11 +3269,11 @@ msgstr "No se especificó el ticket. Abortada la transacción" msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "No se especificó ticket. Abortando las modificaciones al ticket\\n\\n" -#: html/Approvals/Elements/Approve:47 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "No action" -#: lib/RT/Interface/Web.pm:862 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "No se ha especificado ninguna columna" @@ -2701,57 +3281,60 @@ msgstr "No se ha especificado ninguna columna" msgid "No command found\\n" msgstr "Comando no encontrado\\n" -#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "No hay comentarios sobre este usuario" -#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "No hay ningún archivo adjunto" -#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#: 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 hay descripción para %1" -#: lib/RT/Users_Overlay.pm:151 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "No hay grupo especificado" -#: lib/RT/User_Overlay.pm:857 +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "No hay contraseña definida" -#: lib/RT/Queue_Overlay.pm:259 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "No tiene privilegios para crear colas" -#: lib/RT/Ticket_Overlay.pm:341 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "No tiene privilegios para crear tickets en la cola '%1'" -#: lib/RT/User_Overlay.pm:151 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "No tiene privilegios para crear usuarios" -#: html/SelfService/Display.html:174 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "No tiene privilegios para mostrar el ticket" -#: html/SelfService/Update.html:55 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "Sin permiso para ver la actualización del ticket" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "No hay un principal especificado" -#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 msgid "No principals selected." msgstr "No hay principales seleccionados" -#: html/Admin/Queues/index.html:35 +#: html/Admin/Queues/index.html:34 msgid "No queues matching search criteria found." msgstr "No hay colas que concuerden con los criterios de búsqueda" @@ -2759,19 +3342,23 @@ msgstr "No hay colas que concuerden con los criterios de búsqueda" msgid "No rights found" msgstr "No se encontraron derechos" -#: html/Admin/Elements/SelectRights:33 +#: html/Admin/Elements/SelectRights:32 msgid "No rights granted." msgstr "Sin privilegios concedidos" -#: html/Search/Bulk.html:149 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "No hay búsqueda sobre la que operar" +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "No se especificó el identificador del ticket" -#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "No se especificó el tipo de transacción" @@ -2779,31 +3366,31 @@ msgstr "No se especificó el tipo de transacción" msgid "No user or email address specified" msgstr "No se especificó email o usuario" -#: html/Admin/Users/index.html:36 +#: html/Admin/Users/index.html:35 msgid "No users matching search criteria found." msgstr "No se encontraron usuarios que concuerden con los criterios de búsqueda" -#: bin/rt-commit-handler:644 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Usuario no encontrado. El manejador cvs está deshabilitado. Por favor consulte a su administrador.\\n" -#: lib/RT/Interface/Web.pm:859 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "No se envió ningun valor a _Set!\\n" -#: html/Search/Elements/TicketRow:37 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "Nadie" -#: lib/RT/Interface/Web.pm:864 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "Campo no existente?" -#: html/Elements/Login:99 +#: NOT FOUND IN SOURCE msgid "Not logged in" msgstr "No autenticado" -#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "No autenticado." @@ -2811,67 +3398,87 @@ msgstr "No autenticado." msgid "Not set" msgstr "No establecido" -#: html/NoAuth/Reminder.html:27 +#: html/NoAuth/Reminder.html:26 msgid "Not yet implemented." msgstr "No se ha implementado." -#: html/Admin/Groups/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Not yet implemented...." msgstr "No está implementado..." -#: html/Approvals/Elements/Approve:50 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "Notas" -#: lib/RT/User_Overlay.pm:642 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "La notificación no se pudo enviar" -#: etc/initialdata:94 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "Notificar AdminCcs" -#: etc/initialdata:90 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "Notificar AdminCcs como comentario" -#: etc/initialdata:121 +#: 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 "Notificar otros destinatarios" -#: etc/initialdata:117 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "Notificar otros destinatarios como comentario" -#: etc/initialdata:86 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "Notificar al propietario" -#: etc/initialdata:82 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "Notificar al propietario como comentario" -#: etc/initialdata:313 etc/upgrade/2.1.71:17 +#: 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 "Notificar propietarios y AdminCcs de nuevos items pendientes de aprobación" -#: etc/initialdata:78 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "Notificar solicitantes" -#: etc/initialdata:104 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "Notificar solicitantes y Ccs" -#: etc/initialdata:99 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "Notificar solicitantes y Ccs como comentario" -#: etc/initialdata:113 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "Notificar solicitantes, Ccs y AdminCcs" -#: etc/initialdata:109 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Notificar solicitantes, Ccs y AdminCcs como comentario" @@ -2883,11 +3490,11 @@ msgstr "Nov." msgid "November" msgstr "Noviembre" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "No se pudo crear el objeto" -#: lib/RT/Record.pm:176 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "Objeto creado" @@ -2899,181 +3506,237 @@ msgstr "Oct." msgid "October" msgstr "Octubre" -#: html/Elements/SelectDateRelation:35 +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + +#: html/Elements/SelectDateRelation:34 msgid "On" msgstr "en " -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "Al comentar" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "On Correspond" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "Al crear" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "Al cambiar de propietario" -#: etc/initialdata:177 +#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 +msgid "On Priority Change" +msgstr "" + +#: etc/initialdata:192 msgid "On Queue Change" msgstr "Al cambiar de cola" -#: etc/initialdata:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "Al resolver" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "Al cambiar de status" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "Al hacer transaccion" -#: html/Approvals/Elements/PendingMyApproval:50 +#: 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 "Solo muestra aprobaciones para solicitudes creadas despues de %1" -#: html/Approvals/Elements/PendingMyApproval:48 +#: 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 "Solo muestra aprobaciones para solicitudes creadas antes de %1" -#: html/Elements/Quicksearch:31 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "Abierto" -#: html/Ticket/Elements/Tabs:136 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Abrirlo" -#: html/SelfService/Elements/Tabs:57 +#: NOT FOUND IN SOURCE msgid "Open requests" msgstr "Solicitudes abiertas" -#: html/Admin/Users/Prefs.html:41 +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "Tickets abiertos (del listado) en una nueva ventana" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "Tickets abiertos (del listado) en otra ventana" -#: etc/initialdata:133 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "Open tickets on correspondence" -#: html/Search/Elements/PickRestriction:101 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Ordenación y clasificación" -#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "Organización" -#: html/Approvals/Elements/Approve:34 +#: html/Approvals/Elements/Approve:32 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Ticket originario: #%1" -#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "Pasada la fecha de gracia, la prioridad se mueve a" -#: lib/RT/Queue_Overlay.pm:87 +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "Tickets poseidos" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "OwnTicket" -#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "Propietario" -#: lib/RT/Ticket_Overlay.pm:3004 -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +#: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" msgstr "Propietario cambiado de %1 a %2" -#: lib/RT/Transaction_Overlay.pm:584 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Propietario cambiado forzosamente de %1 a %2" -#: html/Search/Elements/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "El propietario es" -#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "Buscapersonas" -#: html/Admin/Elements/ModifyUser:74 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "Buscapersonas Tel." -#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +#: 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 "Padres" -#: html/Elements/Login:43 html/User/Prefs.html:61 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "Contraseñaa" -#: html/NoAuth/Reminder.html:25 +#: html/NoAuth/Reminder.html:24 msgid "Password Reminder" msgstr "Recordatorio de contraseña" -#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "Contraseña demasiado corta" -#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Contraseña: %1" -#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +#: html/Admin/Users/Modify.html:318 +msgid "Passwords do not match." +msgstr "" + +#: html/User/Prefs.html:211 +msgid "Passwords do not match. Your password has not been changed" +msgstr "" + +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "Personas" -#: etc/initialdata:126 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "Realizar una acion definida por el usuario" -#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "Permiso denegado" -#: html/User/Elements/Tabs:35 +#: html/User/Elements/Tabs:34 msgid "Personal Groups" msgstr "Grupos personales" -#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 msgid "Personal groups" msgstr "Grupos personales" -#: html/User/Elements/DelegateRights:37 +#: html/User/Elements/DelegateRights:36 msgid "Personal groups:" msgstr "Grupos personales:" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "Números de teléfono" -#: html/Admin/Users/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Placeholder" msgstr "Placeholder" -#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +#: 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 "Preferencias" @@ -3081,15 +3744,19 @@ msgstr "Preferencias" msgid "Prefs" msgstr "Prefs" -#: lib/RT/Action/Generic.pm:160 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "Preparación cortada" -#: html/Ticket/Elements/Tabs:61 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "Prev" -#: html/Search/Listing.html:44 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "Página anterior" @@ -3097,41 +3764,57 @@ msgstr "Página anterior" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#: 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 "No se encontró el principal %1" -#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "Prioridad" -#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "La prioridad empieza en" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "Privilegiado" -#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Estado privilegiado: %1" -#: html/Admin/Users/index.html:62 +#: html/Admin/Users/index.html:61 msgid "Privileged users" msgstr "Usuarios privilegiados:" +#: 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 "Pseudogrupo para uso interno" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "Cola" -#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#: 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" @@ -3145,7 +3828,7 @@ msgstr "Cola '%1' no encontrada\\n" msgid "Queue Keyword Selections" msgstr "Selecciones de palabras clave de la cola" -#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "Nombre de la cola" @@ -3153,19 +3836,19 @@ msgstr "Nombre de la cola" msgid "Queue Scrips" msgstr "Acciones de la cola" -#: lib/RT/Queue_Overlay.pm:263 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "La cola ya existe" -#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "La cola no se pudo crear" -#: html/Ticket/Create.html:209 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "La cola no se pudo cargar" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "Cola creada" @@ -3173,26 +3856,37 @@ msgstr "Cola creada" msgid "Queue is not specified." msgstr "No se especifico ninguna cola" -#: html/SelfService/Display.html:129 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "Cola no encontrada" -#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 msgid "Queues" msgstr "Colas" -#: html/Elements/Login:34 +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "" + +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + +#: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 +#: 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 para %2" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: NOT FOUND IN SOURCE msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." msgstr "RT %1 de <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." @@ -3200,7 +3894,7 @@ msgstr "RT %1 de <a href=\"http://bestpractical.com\">Best Practical Solutions, msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "RT %1. Derechos reservados 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -#: html/Admin/index.html:25 html/Admin/index.html:26 +#: html/Admin/index.html:24 html/Admin/index.html:25 msgid "RT Administration" msgstr "Administración del RT" @@ -3220,7 +3914,7 @@ msgstr "Error de configuración del RT" msgid "RT Critical error. Message not recorded!" msgstr "Error crítico en RT. El mensaje no fue grabado!" -#: html/Elements/Error:41 html/SelfService/Error.html:41 +#: html/Elements/Error:41 html/SelfService/Error.html:40 msgid "RT Error" msgstr "Error del RT" @@ -3232,11 +3926,19 @@ msgstr "RT recibió correo (%1) de sí mismo." msgid "RT Recieved mail (%1) from itself." msgstr "RT recibió correo (%1) de sí mismo." -#: html/SelfService/Closed.html:25 +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT AutoServicio / Tickets cerrados" -#: html/index.html:25 html/index.html:28 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "RT en un vistazo" @@ -3256,7 +3958,7 @@ msgstr "RT no pudo encontrar la cola: %1" msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT no pudo validar esta firma PGP. \\n" -#: html/Elements/PageLayout:26 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "RT para %1" @@ -3269,11 +3971,14 @@ msgstr "RT para %1: %2" msgid "RT has proccessed your commands" msgstr "RT ha procesado tus comandos" -#: html/Elements/Login:83 -#. ('2003') +#: 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 es © Copyright 1996-%1 de Jesse Vincent <jesse@bestpractical.com>. Es distrbuido bajo <a href=\"http://www.gnu.org/copyleft/gpl.html\">la version 2 de la licencia GNU GPL (General Public License)</a>." +#: 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 "" + #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "RT cree que este mensaje puede ser un mensaje rebotado" @@ -3286,19 +3991,43 @@ msgstr "RT procesará este mensaje como si fuera uno no firmado\\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 "El modo de comandos por correo de RT requiere autenticación PGP. Ya sea que no haya firmado su mensaje, o que su firma no pueda ser verificada." -#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "Nombre real" -#: html/Admin/Elements/ModifyUser:48 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "Nombre real" -#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "Referenciado por" -#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +#: 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 "Hace referencia a" @@ -3310,20 +4039,16 @@ msgstr "RefersTo" msgid "Refine" msgstr "Refinar" -#: html/Search/Elements/PickRestriction:27 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Refinar la búsqueda" -#: html/Elements/Refresh:36 +#: html/Elements/Refresh:35 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Refrescar esta página cada %1 minutos" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 -msgid "Relationships" -msgstr "Relaciones" - -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "Quitar AdminCc" @@ -3331,27 +4056,35 @@ msgstr "Quitar AdminCc" msgid "Remove Cc" msgstr "Quitar Cc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "Quitar solicitante" -#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "Responder" -#: lib/RT/Queue_Overlay.pm:85 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "Responder a los tickets" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "ReplyToTicket" -#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "Solicitante" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "Dirección de correo del solicitante" @@ -3363,98 +4096,107 @@ msgstr "Solicitante(s)" msgid "RequestorAddresses" msgstr "RequestorAddresses" -#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "Solicitantes" -#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "Las solicitudes entran en vencimiento en" -#: html/Elements/Submit:62 +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + +#: html/Elements/Submit:61 msgid "Reset" msgstr "Borrar" -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "Residencia" -#: html/Ticket/Elements/Tabs:132 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "Resolver" -#: html/Ticket/Update.html:133 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Resolver ticket #%1 (%2)" -#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "Resuelto" -#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "Responder a los solicitantes" -#: html/Elements/ListActions:26 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "Resultados" -#: html/Search/Elements/PickRestriction:105 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "Resultados por página" -#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "Confirmar contraseña" +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Privilegio %1 no encontrado para %2 %3 referente a %4 (%5)\\n" -#: lib/RT/ACE_Overlay.pm:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "Privilegio delegado" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "Privilegio otorgado" -#: lib/RT/ACE_Overlay.pm:161 +#: lib/RT/ACE_Overlay.pm:160 msgid "Right Loaded" msgstr "Privilegio cargado" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "Privilegio no pudo ser revocado" -#: html/User/Delegation.html:64 +#: html/User/Delegation.html:63 msgid "Right not found" msgstr "Privilegio no encontrado" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "Privilegio no cargado" -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "Privilegio revocado" -#: html/Admin/Elements/UserTabs:41 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "Privilegios" -#: lib/RT/Interface/Web.pm:758 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "No se pudieron conceder los privilegios a %1" -#: lib/RT/Interface/Web.pm:791 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "No se pudieron revocar los privilegios de %1" -#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "Roles" @@ -3462,32 +4204,53 @@ msgstr "Roles" msgid "RootApproval" msgstr "RootApproval" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "Sab." -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "Guardar Cambios" -#: html/Ticket/ModifyLinks.html:39 +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "Guardar cambios" -#: html/Admin/Global/Scrip.html:49 +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:176 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "Acción creada" -#: html/Admin/Elements/EditScrips:84 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "Acción borrada" -#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 msgid "Scrips" msgstr "Acciones" @@ -3499,7 +4262,7 @@ msgstr "Acciones para %1\\n" msgid "Scrips which apply to all queues" msgstr "Acciones que se aplican a todas las colas" -#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "Búsqueda" @@ -3507,19 +4270,43 @@ msgstr "Búsqueda" msgid "Search Criteria" msgstr "Criterios de búsqueda" -#: html/Approvals/Elements/PendingMyApproval:39 +#: html/Approvals/Elements/PendingMyApproval:38 msgid "Search for approvals" msgstr "Buscar aprobaciones" -#: bin/rt-crontool:188 +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: bin/rt-crontool:184 msgid "Security:" msgstr "Seguridad:" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "Ver cola" -#: html/Admin/Groups/index.html:40 +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "Seleccione un grupo" @@ -3527,87 +4314,99 @@ msgstr "Seleccione un grupo" msgid "Select a queue" msgstr "Seleccione una cola" -#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" msgstr "Seleccione un usuario" -#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "Seleccionar un campo personalizable" -#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" msgstr "Seleccionar grupo" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "Seleccionar valores múltiples" -#: lib/RT/CustomField_Overlay.pm:352 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "Seleccionar un valor" -#: html/Admin/Elements/QueueTabs:67 +#: html/Admin/Elements/QueueTabs:66 msgid "Select queue" msgstr "Seleccionar cola" -#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +#: 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 "Seleccionar accion" -#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +#: 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 "Selecionar plantilla" -#: html/Admin/Elements/UserTabs:49 +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "Seleccionar usuario" -#: lib/RT/CustomField_Overlay.pm:36 +#: lib/RT/CustomField_Overlay.pm:35 msgid "SelectMultiple" msgstr "SelectMultiple" -#: lib/RT/CustomField_Overlay.pm:35 +#: lib/RT/CustomField_Overlay.pm:34 msgid "SelectSingle" msgstr "SelectSingle" -#: html/SelfService/index.html:25 +#: NOT FOUND IN SOURCE msgid "Self Service" msgstr "Autoservicio" -#: etc/initialdata:114 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "Enviar mail a todos los observadores" -#: etc/initialdata:110 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "Enviar mail a todos los observadores como comentario" -#: etc/initialdata:105 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "Enviar mail a los solicitantes y Ccs" -#: etc/initialdata:100 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "Enviar mail a los solicitantes y Ccs como comentario" -#: etc/initialdata:79 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "Envia un mesaje a los solicitantes" -#: etc/initialdata:118 etc/initialdata:122 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "Enviar mail a los Ccs y Bccs listados explicitamente" -#: etc/initialdata:95 +#: 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 "Envia mail a los Ccs administrativos" -#: etc/initialdata:91 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "Envia mail a los Ccs administrativos como comentario" -#: etc/initialdata:83 etc/initialdata:87 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "Enviar mail al propietario" @@ -3615,59 +4414,87 @@ msgstr "Enviar mail al propietario" msgid "Sep." msgstr "Sep." +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "" + #: NOT FOUND IN SOURCE msgid "September" msgstr "Septiembre" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "Mostrar resultados" -#: html/Approvals/Elements/PendingMyApproval:44 +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "Mostrar peticiones aprobadas" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show basics" msgstr "Mostrar lo básico" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:44 msgid "Show denied requests" msgstr "Mostrar solicitudes denegadas" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show details" msgstr "Mostrar detalles" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:42 msgid "Show pending requests" msgstr "Mostrar solicitudes pendientes" -#: html/Approvals/Elements/PendingMyApproval:46 +#: html/Approvals/Elements/PendingMyApproval:45 msgid "Show requests awaiting other approvals" msgstr "Mostrar solicitudes esperando otras aprobaciones" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "Mostrar ticket en un comentario privado" -#: lib/RT/Queue_Overlay.pm:79 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "Mostrar resumen del ticket" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "ShowACL" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "ShowScrips" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "ShowTemplate" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "ShowTicket" @@ -3675,43 +4502,58 @@ msgstr "ShowTicket" msgid "ShowTicketComments" msgstr "ShowTicketComments" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "Validarse como solicitante de ticket o ticket o cola Cc" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "Validarse como ticket o cola AdminCc" -#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "Firma" -#: html/SelfService/Elements/Header:52 -#. ($session{'CurrentUser'}->Name) +#: NOT FOUND IN SOURCE msgid "Signed in as %1" msgstr "Validado como %1" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:25 msgid "Single" msgstr "Sencillo" -#: html/Elements/Header:51 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "Saltar Menu" -#: html/Admin/Elements/EditCustomFieldValues:31 +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Sort key" msgstr "Clave de ordenación" -#: html/Search/Elements/PickRestriction:109 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "Ordenar resultados por" -#: html/Admin/Elements/AddCustomFieldValue:25 +#: NOT FOUND IN SOURCE msgid "SortOrder" msgstr "Ordenamiento" +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "Pendiente" @@ -3720,7 +4562,7 @@ msgstr "Pendiente" msgid "Start page" msgstr "Página de inicio" -#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "Empezado" @@ -3728,7 +4570,7 @@ msgstr "Empezado" msgid "Started date '%1' could not be parsed" msgstr "La fecha de inicio '%1' no se pudo leer" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "Empieza" @@ -3740,19 +4582,19 @@ msgstr "Empezado por" msgid "Starts date '%1' could not be parsed" msgstr "La fecha de inicio '%1' no se pudo ser leer" -#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "Estado" -#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +#: 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 "Estado" -#: etc/initialdata:288 +#: etc/initialdata:309 msgid "Status Change" msgstr "Cambio de status" -#: lib/RT/Transaction_Overlay.pm:530 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "Estado cambiado de %1 a %2" @@ -3761,28 +4603,40 @@ msgstr "Estado cambiado de %1 a %2" msgid "StatusChange" msgstr "StatusChange" -#: html/Ticket/Elements/Tabs:147 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "Robar" -#: lib/RT/Transaction_Overlay.pm:589 +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "Robado de %1" -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +#: 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 "Asunto" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#: 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 "Asunto cambiado a %1" -#: html/Elements/Submit:59 +#: html/Elements/Submit:58 msgid "Submit" msgstr "Enviar" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "Submit Workflow" @@ -3791,19 +4645,31 @@ msgstr "Submit Workflow" msgid "Succeeded" msgstr "Completado" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + #: lib/RT/Date.pm:394 msgid "Sun." msgstr "Dom." -#: lib/RT/System.pm:54 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "Superusuario" -#: html/User/Elements/DelegateRights:77 +#: html/User/Elements/DelegateRights:76 msgid "System" msgstr "Sistema" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "Error del sistema" @@ -3815,11 +4681,15 @@ msgstr "Error de sistema. Derecho no concedido" msgid "System Error. right not granted" msgstr "Error de sistema. Derecho no concedido" -#: lib/RT/ACE_Overlay.pm:616 +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "Error del sistema. Privilegio no delegado." -#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "Error del sistema. Privilegio no otorgado" @@ -3827,7 +4697,7 @@ msgstr "Error del sistema. Privilegio no otorgado" msgid "System error. Unable to grant rights." msgstr "Error de sistema. Incapaz de conceder permisos" -#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 msgid "System groups" msgstr "Grupos del sistema" @@ -3835,32 +4705,40 @@ msgstr "Grupos del sistema" msgid "SystemRolegroup for internal use" msgstr "SystemRolegroup for internal use" -#: lib/RT/CurrentUser.pm:320 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Ticket/Elements/Tabs:143 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "Coger" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "Cogido" -#: html/Admin/Elements/EditScrip:81 +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "Plantilla" -#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Plantilla #%1" -#: html/Admin/Elements/EditTemplates:89 +#: html/Admin/Elements/EditTemplates:88 msgid "Template deleted" msgstr "Plantilla borrada" -#: lib/RT/Scrip_Overlay.pm:153 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "Plantilla no encontrada" @@ -3868,11 +4746,11 @@ msgstr "Plantilla no encontrada" msgid "Template not found\\n" msgstr "Plantilla no encontrada\\n" -#: lib/RT/Template_Overlay.pm:347 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "Plantilla procesada" -#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 msgid "Templates" msgstr "Plantillas" @@ -3880,71 +4758,74 @@ msgstr "Plantillas" msgid "Templates for %1\\n" msgstr "Plantillas de %1\\n" -#: lib/RT/Interface/Web.pm:858 +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "Ese es el valor actual" -#: lib/RT/CustomField_Overlay.pm:178 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "Ese no es un valor para este campo personalizable" -#: lib/RT/Ticket_Overlay.pm:1886 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "Este es el mismo valor" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Ese principal ya es un %1 para esta cola" -#: lib/RT/Ticket_Overlay.pm:1434 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Ese principal ya es un %1 para este ticket" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Ese principal no es un %1 para esta cola" -#: lib/RT/Ticket_Overlay.pm:1551 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "Ese principal no es un %1 para este ticket" -#: lib/RT/Ticket_Overlay.pm:1882 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "Esa cola no existe" -#: lib/RT/Ticket_Overlay.pm:3143 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "Ese ticket tiene dependencias sin resolver" -#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +#: NOT FOUND IN SOURCE msgid "That user already has that right" msgstr "Ese usuario ya tiene ese privilegio" -#: lib/RT/Ticket_Overlay.pm:2952 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "Ese usuario ya posee ese ticket" -#: lib/RT/Ticket_Overlay.pm:2918 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "Ese usuario no existe" -#: lib/RT/User_Overlay.pm:315 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "Ese usuario ya tiene privilegios" -#: lib/RT/User_Overlay.pm:332 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "Ese usuario ya está sin privilegios" -#: lib/RT/User_Overlay.pm:327 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "Ese usuario ahora tiene privilegios" -#: lib/RT/User_Overlay.pm:344 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "Ese usuario ya no tiene privilegios" @@ -3952,67 +4833,75 @@ msgstr "Ese usuario ya no tiene privilegios" msgid "That user is now unprivilegedileged" msgstr "Este usuario ya no tiene privilegios" -#: lib/RT/Ticket_Overlay.pm:2944 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "Ese usuario puede no poseer tickets en esa cola" -#: lib/RT/Link_Overlay.pm:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "Ese no es un identificador numérico" -#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 msgid "The Basics" msgstr "Lo básico" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:87 msgid "The CC of a ticket" msgstr "El CC de un ticket" -#: lib/RT/ACE_Overlay.pm:89 +#: lib/RT/ACE_Overlay.pm:88 msgid "The administrative CC of a ticket" msgstr "El CC administrativo de un ticket" -#: lib/RT/Ticket_Overlay.pm:2213 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "El comentario ha sido grabado" -#: bin/rt-crontool:198 +#: 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 "El siguiente comando encontrará todos los tickets activos en la cola 'general' y pondra su prioridad a 99 si no han sido tocados en 4 horas:" -#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "Los siguientes comandos no han sido procesados:\\n\\n" -#: lib/RT/Interface/Web.pm:861 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "Ha sido establecido el nuevo valor" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:85 msgid "The owner of a ticket" msgstr "El propietario de un ticket" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:86 msgid "The requestor of a ticket" msgstr "El solicitante de un ticket" -#: html/Admin/Elements/EditUserComments:26 +#: html/Admin/Elements/EditUserComments:25 msgid "These comments aren't generally visible to the user" msgstr "Estos comentarios generalmente no están visibles para el usuario" +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +msgid "This message will be sent to..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "Este ticket %1 %2 (%3)" -#: bin/rt-crontool:189 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Esta herramiento permite al usuario ejectutar modulos perl arbitrarios desde dentro de RT" -#: lib/RT/Transaction_Overlay.pm:253 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "Parece que esta transacción no tiene contenido" -#: html/Ticket/Elements/ShowRequestor:47 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Los %1 tickets de mayor prioridad de este usuario" @@ -4033,61 +4922,67 @@ msgstr "Ticket # %1 %2" msgid "Ticket # %1 Jumbo update: %2" msgstr "Actualizacion Jumbo para el ticket # %1: %2" -#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Actualización Jumbo para el ticket #%1: %2" -#: html/Approvals/Elements/ShowDependency:46 +#: html/Approvals/Elements/ShowDependency:45 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Ticket #%1: %2" -#: lib/RT/Ticket_Overlay.pm:608 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Ticket %1 creado en la cola '%2'" -#: bin/rt-commit-handler:760 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "Ticket %1 cargado\\n" -#: html/Search/Bulk.html:181 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Ticket %1: %2" -#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "Historial del ticket # %1 %2" -#: html/SelfService/Display.html:34 +#: NOT FOUND IN SOURCE msgid "Ticket Id" msgstr "Id del ticket:" -#: etc/initialdata:303 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "Ticket resuelto" -#: html/Search/Elements/PickRestriction:63 +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Archivos adjuntos del ticket" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "Contenido del ticket" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "Tipo de contenido del ticket" -#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +#: 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 "No se pudo crear el ticket debido a un error interno" -#: lib/RT/Transaction_Overlay.pm:522 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "Ticket creado" @@ -4095,11 +4990,11 @@ msgstr "Ticket creado" msgid "Ticket creation failed" msgstr "Creación del ticket fallida" -#: lib/RT/Transaction_Overlay.pm:527 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "Ticket borrado" -#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +#: NOT FOUND IN SOURCE msgid "Ticket id not found" msgstr "Id de ticket no encontrada" @@ -4107,58 +5002,65 @@ msgstr "Id de ticket no encontrada" msgid "Ticket killed" msgstr "Ticket matado" -#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "Ticket no encontrado" -#: etc/initialdata:289 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "Estado del ticket cambiado" -#: html/Ticket/Update.html:39 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "Observadores del ticket" -#: html/Elements/Tabs:49 +#: html/Elements/Tabs:46 msgid "Tickets" msgstr "Tickets" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "Tickets %1 %2" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "Tickets %1 por %2" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Tickets de %1" -#: html/Approvals/Elements/ShowDependency:27 +#: html/Approvals/Elements/ShowDependency:26 msgid "Tickets which depend on this approval:" msgstr "Tickets que dependen de esta aprobación:" -#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "Tiempo Restante" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "Tiempo Trabajado" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "Tiempo restante" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "Tiempo para mostrar" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "Tiempo trabajado" @@ -4166,40 +5068,49 @@ msgstr "Tiempo trabajado" msgid "TimeLeft" msgstr "TimeLeft" -#: lib/RT/Ticket_Overlay.pm:1165 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "TimeWorked" -#: bin/rt-commit-handler:402 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "Para generar una comparación de este cometido:" -#: bin/rt-commit-handler:391 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "Para generar una comparación de este cometido:\\n" -#: lib/RT/Ticket_Overlay.pm:1168 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "Última actualización" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "Transacción" -#: lib/RT/Transaction_Overlay.pm:642 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transacción %1 limpiada" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "Transacción creada" -#: lib/RT/Transaction_Overlay.pm:89 +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "Transaction->Create no pudo, ya no no especificó un ID de ticket" -#: lib/RT/Transaction_Overlay.pm:701 +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "Las transacciones son inmutables" @@ -4211,102 +5122,133 @@ msgstr "Intentando borrar el privilegio: %1" msgid "Tue." msgstr "Mar." -#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +#: 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 "Tipo" -#: lib/RT/ScripCondition_Overlay.pm:104 +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + +#: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "No implementado" -#: html/Admin/Users/Modify.html:68 +#: html/Admin/Users/Modify.html:67 msgid "Unix login" msgstr "Usuario en Unix" -#: html/Admin/Elements/ModifyUser:62 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "Usuario en Unix" -#: lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Codificación de contenido desconocida: %1" -#: html/Elements/SelectResultsPerPage:37 +#: html/Elements/SelectResultsPerPage:36 msgid "Unlimited" msgstr "Ilimitado" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "No privilegiado" -#: lib/RT/Transaction_Overlay.pm:571 +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "No cogido" -#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +#: html/Search/Bulk.html:32 msgid "Update" msgstr "Actualizar" -#: html/Admin/Users/Prefs.html:62 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Id de actualización" -#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "Tipo de actualización" -#: html/Search/Listing.html:61 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "Actualizar todos estos casos al mismo tiempo" -#: html/Admin/Users/Prefs.html:49 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "Actualizar correo" -#: html/Admin/Users/Prefs.html:55 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "Actualizar nombre" -#: lib/RT/Interface/Web.pm:375 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "Actualización no grabada." -#: html/Search/Bulk.html:81 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "Actualizar tickets seleccionados" -#: html/Admin/Users/Prefs.html:36 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Actualizar firma" -#: html/Ticket/ModifyAll.html:63 +#: html/Ticket/ModifyAll.html:62 msgid "Update ticket" msgstr "Actualizar ticket" -#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 -#. ($Ticket->id) +#: NOT FOUND IN SOURCE msgid "Update ticket # %1" msgstr "Actualización de ticket # %1" -#: html/SelfService/Update.html:50 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Actualizar ticket #%1" -#: html/Ticket/Update.html:135 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Actualizar ticket #%1 (%2)" -#: lib/RT/Interface/Web.pm:373 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "El tipo de actualización no fue ni respuesta ni comentario" -#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "Actualizado" +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "Usuario %1 %2: %3\\n" @@ -4315,6 +5257,11 @@ msgstr "Usuario %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Usuario %1 Contraseña: %2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "Usuario '%1' no encontrado" @@ -4323,68 +5270,80 @@ msgstr "Usuario '%1' no encontrado" msgid "User '%1' not found\\n" msgstr "Usuario '%1' no encontrado\\n" -#: etc/initialdata:125 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Definido por el usuario" -#: html/Admin/Users/Prefs.html:59 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "ID de usuario" -#: html/Elements/SelectUsers:26 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "Id de usuario" -#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +#: 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 "Privilegios de usuario" -#: html/Admin/Users/Modify.html:226 +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "El usuario no pudo ser creado: %1" -#: lib/RT/User_Overlay.pm:262 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "Usuario creado" -#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "Grupos definidos por el usuario" +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User notified" msgstr "Usuario notificado" -#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "Vista de usuario" -#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "Nombre de usuario" -#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +#: 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 "Usuarios" -#: html/Admin/Users/index.html:65 +#: html/Admin/Users/index.html:64 msgid "Users matching search criteria" msgstr "Usuarios que concuerdan con los criterios de búsqueda" -#: html/Search/Elements/PickRestriction:51 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "Valor de la cola" -#: html/Admin/Elements/EditCustomField:40 +#: html/Admin/Elements/EditCustomField:56 msgid "Values" msgstr "Valores" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "Observar" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "WatchAsAdminCc" @@ -4392,11 +5351,11 @@ msgstr "WatchAsAdminCc" msgid "Watcher loaded" msgstr "Observador cargado" -#: html/Admin/Elements/QueueTabs:42 +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "Observadores" -#: html/Admin/Elements/ModifyUser:56 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "Codificación de Web" @@ -4404,75 +5363,103 @@ msgstr "Codificación de Web" msgid "Wed." msgstr "Mie." -#: etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "Cuando un ticket ha sido aprobado por todos los aprobadores, añadir correspondencia al ticket original" -#: etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "Cuando un ticket ha sido aprobado por cualquier aprobador, añadir correspondencia al ticket original" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "Cuando un ticket se crea" -#: etc/upgrade/2.1.71:79 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "Cuando una aprobacion de ticket se crea, notifica al propietario y AdminCC del item que espera su aprobación" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "Cuando pasa cualquier cosa" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "Siempre que un ticket este sin resolver" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "Siempre que el propietario de un ticket cambie" -#: etc/initialdata:178 +#: 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 "Siempre que la cola de un ticket cambie" -#: etc/initialdata:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "Siempre que el estado de un ticket cambie" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "Siempre que ocurra una condicion definida por el usuario" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "Siempre que venga algun comentario" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "Siempre que venga correspondencia" -#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "Trabajo" -#: html/Admin/Elements/ModifyUser:70 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "Tel Trabajo" -#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Trabajado" -#: lib/RT/Ticket_Overlay.pm:3056 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "Usted ya es propietario de este caso" -#: html/autohandler:121 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "Usted no es un usuario autorizado" -#: lib/RT/Ticket_Overlay.pm:2930 +#: NOT FOUND IN SOURCE +msgid "You can access it with the Download button on the right." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Usted solo puede reasignar casos que posee o que no posee nadie³" @@ -4480,29 +5467,28 @@ msgstr "Usted solo puede reasignar casos que posee o que no posee nadie³" msgid "You don't have permission to view that ticket.\\n" msgstr "No tiene permiso para ver ese ticket.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "Usted encontró %1 casos en la cola %2" -#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +#: html/NoAuth/Logout.html:30 msgid "You have been logged out of RT." msgstr "Se ha desconectado del sistema RT" -#: html/SelfService/Display.html:134 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "No tiene permiso para crear tickets en esa cola." -#: lib/RT/Ticket_Overlay.pm:1895 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "No puede crear solicitudes en esa cola." -#: html/NoAuth/Logout.html:36 +#: html/NoAuth/Logout.html:34 msgid "You're welcome to login again" msgstr "Es bienvenido a regresar en cualquier momento." -#: html/SelfService/Elements/MyRequests:25 -#. ($friendly_status) +#: NOT FOUND IN SOURCE msgid "Your %1 requests" msgstr "Sus solicitudes %1" @@ -4510,11 +5496,11 @@ msgstr "Sus solicitudes %1" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "Su administrador del RT ha desconfigurado el alias de correo que invoca el RT" -#: etc/initialdata:429 etc/upgrade/2.1.71:146 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "Su petición ha sido aprobada por %1. Otras aprobaciones pueden estar pendientes todavia" -#: etc/initialdata:463 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "Su peticion ha sido aprobada." @@ -4522,15 +5508,15 @@ msgstr "Su peticion ha sido aprobada." msgid "Your request was rejected" msgstr "Su petición ha sido rechazada" -#: etc/initialdata:384 etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "Su petición ha sido rechazada" -#: html/autohandler:136 html/autohandler:142 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "Nombre o contraseña de usuario incorrectos" -#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "Zip" @@ -4538,32 +5524,44 @@ msgstr "Zip" msgid "[no subject]" msgstr "[sin asunto]" -#: html/User/Elements/DelegateRights:59 +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + +#: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "como priviligiado para %1" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 msgid "contains" msgstr "contiene" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content" msgstr "contenido" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "content-type" -#: lib/RT/Ticket_Overlay.pm:2282 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "Respuesta (probablemente) no enviada" -#: lib/RT/Ticket_Overlay.pm:2292 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "Correspondencia enviada" -#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "días" @@ -4571,23 +5569,23 @@ msgstr "días" msgid "dead" msgstr "muerto" -#: html/Search/Listing.html:75 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "borrar" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "borrado" -#: html/Search/Elements/PickRestriction:68 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "no coincide" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 msgid "doesn't contain" msgstr "no contiene" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "igual a" @@ -4595,15 +5593,15 @@ msgstr "igual a" msgid "false" msgstr "falso" -#: html/Elements/SelectAttachmentField:28 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "nombre de archivo" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "greater than" msgstr "mayor que" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "grupo '%1'" @@ -4616,19 +5614,23 @@ msgstr "horas" msgid "id" msgstr "id" -#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + +#: 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 "es" -#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +#: 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 "no es" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "less than" msgstr "menor que" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "contiene" @@ -4636,11 +5638,11 @@ msgstr "contiene" msgid "min" msgstr "min" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "minutos" -#: bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "modificaciones\\n\\n" @@ -4648,19 +5650,23 @@ msgstr "modificaciones\\n\\n" msgid "months" msgstr "meses" -#: lib/RT/Queue_Overlay.pm:58 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "nuevo" -#: html/Admin/Elements/EditScrips:43 +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + +#: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "sin valor" -#: html/Ticket/Elements/EditWatchers:28 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "ninguno" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "not equal to" msgstr "no igual a" @@ -4668,25 +5674,25 @@ msgstr "no igual a" msgid "notlike" msgstr "notlike" -#: lib/RT/Queue_Overlay.pm:59 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "abierto" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "grupo personal '%1' para usuario '%2'" -#: lib/RT/Group_Overlay.pm:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "Cola %1 %2" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "rechazado" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "resuelto" @@ -4694,34 +5700,46 @@ msgstr "resuelto" msgid "sec" msgstr "sec" -#: lib/RT/Queue_Overlay.pm:60 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "pendiente" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "sistema %1" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "grupo del sistema '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:42 +#: html/Elements/Error:42 html/SelfService/Error.html:41 msgid "the calling component did not specify why" msgstr "el componente que llama no especifica por qué" -#: lib/RT/Group_Overlay.pm:210 +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ticket #%1 %2" +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "" + #: NOT FOUND IN SOURCE msgid "true" msgstr "verdadero" -#: lib/RT/Group_Overlay.pm:216 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "grupo sin descripción %1" @@ -4730,7 +5748,7 @@ msgstr "grupo sin descripción %1" msgid "undescripbed group %1" msgstr "grupo sin descripción %1" -#: lib/RT/Group_Overlay.pm:191 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "usuario %1" diff --git a/rt/lib/RT/I18N/fi.po b/rt/lib/RT/I18N/fi.po index 2171ac445..56c963635 100644 --- a/rt/lib/RT/I18N/fi.po +++ b/rt/lib/RT/I18N/fi.po @@ -11,27 +11,39 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +#: NOT FOUND IN SOURCE msgid "#" msgstr "" -#: html/Admin/Queues/Scrip.html:55 -#. ($QueueObj->id) +#: NOT FOUND IN SOURCE msgid "#%1" msgstr "" -#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 -#. ($Ticket->Id, $Ticket->Subject) +#: 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 "" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 #. ($s, $time_unit) +#. ($option, $subtype) msgid "%1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "" @@ -41,7 +53,7 @@ msgstr "" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%1 %3.%2 %7 %4:%5:%6" -#: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#: 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) @@ -53,20 +65,21 @@ msgstr "%1 %2 lisätty" msgid "%1 %2 ago" msgstr "%1 %2 sitten" -#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#: 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 muutettu arvoon %3" -#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#: 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 poistettu" -#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#: 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 pohjalla %3" @@ -75,44 +88,70 @@ msgstr "%1 %2 pohjalla %3" msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 tässä tapauksessa\\n" -#: html/Search/Listing.html:57 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "näkyvillä %1 - %2" -#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#: 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 "" -#: bin/rt-crontool:185 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "" -#: bin/rt-crontool:179 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "" -#: bin/rt-crontool:173 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "" -#: bin/rt-crontool:166 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:122 + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "ScriptAction %1 ladattu" -#: lib/RT/Ticket_Overlay.pm:3471 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 lisätty arvoksi %2lle" @@ -129,19 +168,19 @@ msgstr "%1 aliakset vaativat tapauksen id:n " msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1 aliakset vaativat tapauksen id:n (osoite %2) %3" -#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#: 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 "" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 +#: 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 - %2" -#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#: 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) @@ -149,7 +188,12 @@ msgstr "%1 - %2" msgid "%1 changed from %2 to %3" msgstr "%1 muutettu arvosta %2 arvoon %3" -#: lib/RT/Interface/Web.pm:857 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "Arvoa %1 ei voitu asettaa arvoksi %2" @@ -157,37 +201,40 @@ msgstr "Arvoa %1 ei voitu asettaa arvoksi %2" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 ei voinut suorittaa tapahtumaa (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 ei voinut asettaa tilaa päätetyksi. RT:n tietokanta saattaa olla vioittunut." -#: html/Elements/MyTickets:25 +#: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "%1 tärkeintä omistamaani tapausta..." -#: html/Elements/MyRequests:25 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "%1 tärkeintä tilaamaani tapausta..." -#: bin/rt-crontool:161 +#: bin/rt-crontool:157 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "" -#: lib/RT/Queue_Overlay.pm:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 ei ole enää %2 tälle työjonolle" -#: lib/RT/Ticket_Overlay.pm:1570 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 ei ole enää %2 tälle tapaukselle" -#: lib/RT/Ticket_Overlay.pm:3527 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 ei ole enää kentän %2 arvo" @@ -196,16 +243,37 @@ msgstr "%1 ei ole enää kentän %2 arvo" msgid "%1 isn't a valid Queue id." msgstr "%1 ei ole kelvollinen työjonon id" -#: html/Ticket/Elements/ShowBasics:36 -#. ($TimeWorked) +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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" +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 ei näy" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:75 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "" @@ -226,7 +294,7 @@ msgstr "%1 tyyppi tuntematon viestille %2" msgid "%1 was created without a CurrentUser\\n" msgstr "" -#: lib/RT/Action/ResolveMembers.pm:42 +#: lib/RT/Action/ResolveMembers.pm:41 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 päättää kaikki päätetyn ryhmän jäsentapaukset." @@ -235,22 +303,28 @@ msgstr "%1 päättää kaikki päätetyn ryhmän jäsentapaukset." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 jäädyttää [paikallisen] BASE jos se riippuu linkitetystä tapauksesta [tai on sen jäsen]." -#: lib/RT/Transaction_Overlay.pm:435 +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1: liitetiedostoa ei ole määritelty" -#: html/Ticket/Elements/ShowTransaction:102 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "" -#: html/Ticket/Elements/ShowTransaction:99 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1140 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' ei kelpaa tilan arvoksi" @@ -267,7 +341,7 @@ msgstr "(Rastita laatikko poistaaksesi ryhmän jäsenen)" msgid "(Check box to delete scrip)" msgstr "(Rastita laatikko poistaaksesi toiminnon)" -#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +#: 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 "(Rastita laatikko poistaaksesi)" @@ -275,11 +349,23 @@ msgstr "(Rastita laatikko poistaaksesi)" msgid "(Check boxes to delete)" msgstr "(Rastita laatikko poistaaksesi)" +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + #: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, separated with spaces)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "(Syötä tapausten numerot tai www-osoitteet, välilyönneillä erotettuina)" -#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) msgid "(If left blank, will default to %1" @@ -289,23 +375,23 @@ msgstr "(Jos jätetään tyhjäksi, palaa arvoon %1)" msgid "(No Value)" msgstr "(Ei arvoa)" -#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" msgstr "(Ei kenttiä)" -#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" msgstr "(Ei jäseniä)" -#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 msgid "(No scrips)" msgstr "(Ei toimintoja)" -#: html/Admin/Elements/EditTemplates:31 +#: html/Admin/Elements/EditTemplates:30 msgid "(No templates)" msgstr "(Ei pohjia)" -#: html/Ticket/Update.html:85 +#: 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 "(Lähettää piilokopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" @@ -313,11 +399,11 @@ msgstr "(Lähettää piilokopion vain tästä päivityksestä pilkulla erotettui 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 "(Lähettää piilokopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" -#: html/Ticket/Create.html:79 +#: 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 "(Lähettää kopion tästä päivityksestä pilkulla erotettuihin hallinnollisiin sähköpostiosoitteisiin. <b>Lisää</b> pysyviksi vastaanottajiksi.)" -#: html/Ticket/Update.html:81 +#: 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 "(Lähettää kopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" @@ -325,46 +411,66 @@ msgstr "(Lähettää kopion vain tästä päivityksestä pilkulla erotettuihin s 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 "(Lähettää kopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" -#: html/Ticket/Create.html:69 +#: 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 "(Lähettää kopion tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Lisää</b> pysyviksi vastaanottajiksi.)" -#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(tyhjä)" -#: html/Admin/Users/index.html:39 +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + +#: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "(ei nimiä listattuna)" -#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(ei otsikkoa)" -#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +#: 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 "(ei arvoa)" -#: html/Ticket/Elements/EditLinks:116 +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(vain yksi tapaus)" -#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(odottaa hyväksyntää)" -#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(odottaa toisia tapauksia)" -#: html/Admin/Users/Modify.html:50 +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "(pakollinen)" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(nimetön)" +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "25 tärkeintä omistamaani tapausta..." @@ -373,20 +479,28 @@ msgstr "25 tärkeintä omistamaani tapausta..." msgid "25 highest priority tickets I requested..." msgstr "25 tärkeintä tilaamaani tapausta..." -#: html/Ticket/Elements/ShowBasics:32 +#: html/Ticket/Elements/ShowBasics:31 msgid "<% $Ticket->Status%>" msgstr "" -#: html/Elements/SelectTicketTypes:27 +#: html/Elements/SelectTicketTypes:26 msgid "<% $_ %>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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=\"Uusi tapaus\"> %1" -#: etc/initialdata:203 +#: etc/initialdata:218 msgid "A blank template" msgstr "Tyhjä pohja" @@ -406,59 +520,71 @@ msgstr "" msgid "ACE could not be found" msgstr "" -#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "ACE ei löytynyt" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "ACE:ja voi vain luoda ja poistaa." -#: bin/rt-commit-handler:755 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Peruutetaan tarkoittamattomien tapausmuutosten välttämiseksi.\\n" -#: html/User/Elements/Tabs:32 +#: html/User/Elements/Tabs:31 msgid "About me" msgstr "Omat asetukset" -#: html/Admin/Users/Modify.html:80 +#: html/Admin/Users/Modify.html:79 msgid "Access control" msgstr "Pääsynvalvonta" -#: html/Admin/Elements/EditScrip:57 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "Tapahtuma" -#: lib/RT/Scrip_Overlay.pm:147 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Tapahtumaa %1 ei löydetty" -#: bin/rt-crontool:123 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "" -#: bin/rt-crontool:119 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "" -#: html/Search/Bulk.html:92 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "Lisää kopio ylläpidolle" -#: html/Search/Bulk.html:90 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "Lisää kopio" -#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "Lisää useampi tiedosto" -#: html/Search/Bulk.html:88 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "Lisää tilaaja" +#: html/Admin/Elements/AddCustomFieldValue:24 +msgid "Add Value" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Add a keyword selection to this queue" msgstr "" @@ -471,19 +597,23 @@ msgstr "Lisää uusi yleinen toiminto" msgid "Add a scrip to this queue" msgstr "Lisää toiminto tähän työjonoon" -#: html/Admin/Global/Scrip.html:55 +#: html/Admin/Global/Scrip.html:54 msgid "Add a scrip which will apply to all queues" msgstr "Lisää kaikille työjonoille yhteinen toiminto" -#: html/Search/Bulk.html:118 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "Lisää kommentteja tai vastauksia valituille tapauksille" -#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 msgid "Add members" msgstr "Lisää jäseniä" -#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 msgid "Add new watchers" msgstr "Lisää uusia tarkkailijoita" @@ -491,37 +621,37 @@ msgstr "Lisää uusia tarkkailijoita" msgid "AddNextState" msgstr "" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Lisätty toimeksiantaja %1:ksi tähän työjonoon" -#: lib/RT/Ticket_Overlay.pm:1454 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Lisätty toimeksiantaja %1:ksi tälle tapaukselle" -#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "Osoite1" -#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "Osoite2" -#: html/Ticket/Create.html:74 +#: html/Ticket/Create.html:73 msgid "Admin Cc" msgstr "Kopio ylläpidolle" -#: etc/initialdata:274 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "" -#: etc/initialdata:256 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "" -#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 msgid "Admin queues" msgstr "Työjonojen ylläpito" @@ -529,7 +659,7 @@ msgstr "Työjonojen ylläpito" msgid "Admin users" msgstr "Käyttäjien ylläpito" -#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 msgid "Admin/Global configuration" msgstr "Ylläpito/Yleiset asetukset" @@ -537,7 +667,7 @@ msgstr "Ylläpito/Yleiset asetukset" msgid "Admin/Groups" msgstr "Ylläpito/Ryhmät" -#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "Ylläpito/Työjono/Perustiedot" @@ -545,7 +675,7 @@ msgstr "Ylläpito/Työjono/Perustiedot" msgid "AdminAllPersonalGroups" msgstr "" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "Kopio ylläpidolle" @@ -557,7 +687,7 @@ msgstr "" msgid "AdminCorrespondence" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "" @@ -569,27 +699,35 @@ msgstr "" msgid "AdminGroupMembership" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "AdminOwnPersonalGroups" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "AdminUsers" msgstr "" -#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "Kopio ylläpidolle" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Tarkennettu haku" -#: html/Elements/SelectDateRelation:36 +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + +#: html/Elements/SelectDateRelation:35 msgid "After" msgstr "Jälkeen" @@ -597,11 +735,19 @@ msgstr "Jälkeen" msgid "Age" msgstr "Ikä" -#: html/Admin/Elements/EditCustomFields:96 +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Kaikki kentät" -#: html/Admin/Queues/index.html:53 +#: html/Admin/Queues/index.html:52 msgid "All Queues" msgstr "Kaikki työjonot" @@ -609,24 +755,31 @@ msgstr "Kaikki työjonot" msgid "Always sends a message to the requestors independent of message sender" msgstr "" +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + #: html/Elements/Tabs:58 msgid "Approval" msgstr "Hyväksyntä" -#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 #. ($Ticket->Id, $Ticket->Subject) #. ($ticket->id, $msg) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Approval #%1: %2" msgstr "" -#: html/Approvals/index.html:54 +#: html/Approvals/index.html:53 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "" -#: html/Approvals/index.html:52 +#: html/Approvals/index.html:51 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "" @@ -635,15 +788,23 @@ msgstr "" msgid "Approval Details" msgstr "Hyväksynnän lisätiedot" +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "Hyväksy" -#: etc/initialdata:431 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "Hyväksyjän merkintöjä: %1" @@ -655,38 +816,63 @@ msgstr "huhti" msgid "April" msgstr "huhtikuu" -#: html/Elements/SelectSortOrder:35 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "Nouseva" -#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "Liitä" -#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "Liitä tiedosto" -#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "Liitä tiedosto" -#: html/SelfService/Attachment/dhandler:36 +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Liitteen '%1' lataaminen ei onnistunut" -#: lib/RT/Transaction_Overlay.pm:443 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "Liitetiedosto luotu" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "Liitetiedoston nimi" -#: html/Ticket/Elements/ShowAttachments:26 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "Liitetiedostot" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "elo" @@ -695,11 +881,11 @@ msgstr "elo" msgid "August" msgstr "elokuu" -#: html/Admin/Elements/ModifyUser:66 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "" @@ -711,37 +897,39 @@ msgstr "Automaattivastaus tilaajille" msgid "AutoreplyToRequestors" msgstr "" +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Virheellinen PGP allekirjoitus: %1\\n" -#: html/SelfService/Attachment/dhandler:40 +#: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "Virheellinen liitteen numero. Liitetiedostoa '%1' ei löytynyt\\n" -#: bin/rt-commit-handler:827 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "Virheellistä dataa kentässä %1" -#: html/SelfService/Attachment/dhandler:43 -#. ($trans, $AttachmentObj->TransactionId()) +#: NOT FOUND IN SOURCE msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Virheellinen tapahtuman numero liitetiedostolle. %1 pitäisi olla %2\\n" -#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +#: 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 "Perustiedot" -#: html/Ticket/Update.html:83 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "Piilokopio" -#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "Muista tallentaa muutokset" -#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "ennen" @@ -749,92 +937,128 @@ msgstr "ennen" msgid "Begin Approval" msgstr "" -#: etc/initialdata:202 +#: etc/initialdata:217 msgid "Blank" msgstr "Tyhjä" -#: html/Search/Listing.html:79 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "Osoite tähän kyselyyn (selaimen kirjanmerkkeihin)" -#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "Lyhyet otsikot" -#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 msgid "Bulk ticket update" msgstr "Tapausten ryhmäpäivitys" -#: lib/RT/User_Overlay.pm:1331 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "Järjestelmäkäyttäjien muokkaus ei ole sallittua" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "Näkeekö toimeksiantaja tämän työjonon" -#: lib/RT/CustomField_Overlay.pm:144 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "Kentän lisääminen ilman nimeä ei onnistu" -#: lib/RT/Link_Overlay.pm:132 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "Tapausta ei voi linkittää itseensä" -#: lib/RT/Ticket_Overlay.pm:2787 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Et voi yhdistää jo yhdistettyyn tapaukseen. Sinun ei pitäisi saada tätä virhettä koskaan." -#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "Sekä juuren ja kohteen määritteleminen samalla ei ole mahdollista" -#: html/autohandler:112 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "Käyttäjää ei voitu luoda: %1" -#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +#: 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 "Kopio" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:30 msgid "Change password" msgstr "Muuta salasana" -#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "Valitse laatikko poistaaksesi" -#: html/Admin/Elements/SelectRights:31 +#: html/Admin/Elements/SelectRights:30 msgid "Check box to revoke right" msgstr "Valitse laatikko peruaksesi oikeuden" -#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +#: 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 "Lapset" -#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "Kaupunki" +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "Suljettu" -#: html/SelfService/Elements/Tabs:60 +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Suljetut tapaukset" +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Command not understood!\\n" msgstr "Komentoa ei ymmärretty!\\n" -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "Kommentoi" -#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "Kommenttien osoite" @@ -842,40 +1066,39 @@ msgstr "Kommenttien osoite" msgid "Comment not recorded" msgstr "Kommenttia ei tallennettu" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "Kommentoi tapauksia" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "" -#: html/Admin/Elements/ModifyUser:35 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "Kommentit" -#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "Kommentti (ei lähetetä tilaajille)" -#: html/Search/Bulk.html:122 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "Kommentti (ei lähetetä tilaajille)" -#: html/Elements/ViewUser:27 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "Kommentit kohteesta %1" -#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "Kommentit tästä käyttäjästä" -#: lib/RT/Transaction_Overlay.pm:545 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "Kommentit lisätty" -#: lib/RT/Action/Generic.pm:140 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "Suorita tumppi" @@ -887,11 +1110,11 @@ msgstr "Kokoa rajoitukset" msgid "Condition" msgstr "Ehto" -#: bin/rt-crontool:109 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "" -#: lib/RT/Scrip_Overlay.pm:160 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "Ehtoa ei löydetty" @@ -899,11 +1122,11 @@ msgstr "Ehtoa ei löydetty" msgid "Configuration" msgstr "Ylläpito" -#: html/SelfService/Prefs.html:33 +#: html/SelfService/Prefs.html:32 msgid "Confirm" msgstr "Vahvista" -#: html/Admin/Elements/ModifyUser:60 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "Yhteystietojärjestelmä" @@ -911,23 +1134,31 @@ msgstr "Yhteystietojärjestelmä" msgid "Contacted date '%1' could not be parsed" msgstr "Järjestelmä ei ymmärrä päivää '%1'" -#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "Sisältö" +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "" -#: etc/initialdata:266 +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "" -#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "Kirjeenvaihdon osoite" -#: lib/RT/Transaction_Overlay.pm:541 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "Kirjeenvaihto lisätty" @@ -935,7 +1166,7 @@ msgstr "Kirjeenvaihto lisätty" msgid "Correspondence not recorded" msgstr "Vastausta ei tallennettu" -#: lib/RT/Ticket_Overlay.pm:3458 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "Uuden tiedon lisääminen kenttään epäonnistui" @@ -943,29 +1174,29 @@ msgstr "Uuden tiedon lisääminen kenttään epäonnistui" msgid "Could not add new custom field value for ticket. %1 " msgstr "Uuden kentän lisäys tapaukselle epäonnistui. %1 " -#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "Omistajaa ei voitu vaihtaa." -#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "Uuden kentän lisääminen epäonnistui" -#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "Ryhmän luominen epäonnistui" -#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "Pohjan luonti epäonnistui: %1" -#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "Tapauksen luonti epäonnistui. Työjonoa ei ole asetettu" -#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +#: 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 "Käyttäjän luonti epäonnistui" @@ -981,11 +1212,11 @@ msgstr "Tapausta numerolla %1 ei löytynyt." msgid "Could not find group %1." msgstr "Ryhmää %1 ei löytynyt." -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "Käyttäjää ei löydetty eikä pystytty luomaan" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "Tätä toimeksiantajaa ei löytynyt" @@ -993,35 +1224,38 @@ msgstr "Tätä toimeksiantajaa ei löytynyt" msgid "Could not find user %1." msgstr "Käyttäjää %1 ei löytynyt." -#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "Ryhmän lataaminen ei onnistunut" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Ei voinut tehdä toimeksiantajaa %1:ksi tälle työjonolle" -#: lib/RT/Ticket_Overlay.pm:1443 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Ei voinut tehdä toimeksiantajaa tälle tapaukselle: %1" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Toimeksiantajaa ei voitu poistaa tältä työjonolta: %1" -#: lib/RT/Ticket_Overlay.pm:1559 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "Toimeksiantajaa ei voitu poistaa tältä tapaukselta: %1" -#: lib/RT/Group_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "Jäsenen lisääminen ryhmään ei onnistunut" -#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Tapahtuman luominen ei onnistunut: %1" @@ -1034,15 +1268,15 @@ msgstr "Järjestelmä ei gpg:n vastauksesta ymmärtänyt mitä tehdä\\n" msgid "Couldn't find group\\n" msgstr "Ryhmää ei löytynyt\\n" -#: lib/RT/Interface/Web.pm:866 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "Riviä ei löytynyt" -#: lib/RT/Group_Overlay.pm:959 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "Toimeksiantajaa ei löytynyt" -#: lib/RT/CustomField_Overlay.pm:175 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "Arvoa ei löytynyt" @@ -1054,11 +1288,19 @@ msgstr "Tarkkailijaa ei löytynyt" msgid "Couldn't find user\\n" msgstr "Käyttäjää ei löytynyt\\n" -#: lib/RT/CurrentUser.pm:112 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Ei onnistuttu lataamaan käyttäjää %1 tietokannasta.\\n" +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "" @@ -1071,21 +1313,21 @@ msgstr "RT-asetustiedoston lataaminen ei onnistunut:'%1' %2" msgid "Couldn't load Scrips." msgstr "Toimintojen lataaminen ei onnistunut." -#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "Ryhmän %1 lataaminen ei onnistunut" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "Linkin lataaminen ei onnistunut" -#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "Työjonon lataaminen ei onnistunut" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "Työjonon %1 lataaminen ei onnistunut" @@ -1098,38 +1340,41 @@ msgstr "Toiminnon lataaminen ei onnistunut" msgid "Couldn't load template" msgstr "Pohjan lataaminen ei onnistunut" -#: html/Admin/Users/Prefs.html:79 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "Tämän käyttäjän lataaminen ei onnistunut (%1)" -#: html/SelfService/Display.html:166 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Tapauksen '%1' lataaminen ei onnistunut" -#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "Maa" -#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +#: 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 "Luo" -#: etc/initialdata:128 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "Luo tapauksia" -#: html/Admin/Elements/EditCustomField:58 +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + +#: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "Luo kenttä" -#: html/Admin/Queues/CustomField.html:48 +#: html/Admin/Queues/CustomField.html:47 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Luo kenttä työjonolle %1" -#: html/Admin/Global/CustomField.html:48 +#: html/Admin/Global/CustomField.html:47 msgid "Create a CustomField which applies to all queues" msgstr "Luo kenttä, jota sovelletaan kaikkiin työjonoihin" @@ -1137,15 +1382,19 @@ msgstr "Luo kenttä, jota sovelletaan kaikkiin työjonoihin" msgid "Create a new Custom Field" msgstr "Luo uusi kenttä" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create a new global scrip" msgstr "Luo uusi yleinen toiminto" -#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 msgid "Create a new group" msgstr "Luo uusi ryhmä" -#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 msgid "Create a new personal group" msgstr "Luo uusi henkilökohtainen ryhmä" @@ -1161,11 +1410,11 @@ msgstr "Luo uusi toiminto" msgid "Create a new template" msgstr "Luo uusi pohja" -#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 msgid "Create a new ticket" msgstr "Luo uusi tapaus" -#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "Luo uusi käyttäjä" @@ -1177,19 +1426,31 @@ msgstr "Luo uusi työjono" msgid "Create a queue called" msgstr "Luo työjono nimeltään" -#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +#: NOT FOUND IN SOURCE msgid "Create a request" msgstr "Luo tapaus" -#: html/Admin/Queues/Scrip.html:59 +#: html/Admin/Queues/Scrip.html:58 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Luo toiminto työjonolle %1" -#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 msgid "Create a template" msgstr "Luo pohja" +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Luonti epäonnistui %1 / %2 / %3 " @@ -1198,23 +1459,23 @@ msgstr "Luonti epäonnistui %1 / %2 / %3 " msgid "Create failed: %1/%2/%3" msgstr "Luonti epäonnistui: %1/%2/%3" -#: etc/initialdata:130 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "Luo uusia tapauksia tämän toiminnon pohjalta" -#: html/SelfService/Create.html:81 +#: html/SelfService/Create.html:77 msgid "Create ticket" msgstr "Luo tapaus" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "Luo tapauksia tähän työjonoon" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "Luo, muokkaa ja poista kenttiä" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "Luo, poista ja muokkaa työjonoja" @@ -1222,105 +1483,117 @@ msgstr "Luo, poista ja muokkaa työjonoja" msgid "Create, delete and modify the members of any user's personal groups" msgstr "Luo, poista ja muokkaa kenen tahansa henkilökohtaisten ryhmien jäseniä" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "Create, delete and modify the members of personal groups" msgstr "Luo, poista ja muokkaa henkilökohtaisten ryhmien jäseniä" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "Create, delete and modify users" msgstr "Luo, poista ja muokkaa käyttäjiä" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "Luotu" -#: html/Admin/Elements/EditCustomField:71 +#: html/Admin/Elements/EditCustomField:87 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Luotu kenttä %1" +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Luotu pohja %1" -#: html/Ticket/Elements/EditLinks:28 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "Tämänhetkiset suhteet" -#: html/Admin/Elements/EditScrips:30 +#: html/Admin/Elements/EditScrips:29 msgid "Current Scrips" msgstr "Tämänhetkinen toiminto" -#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "Tämänhetkiset jäsenet" -#: html/Admin/Elements/SelectRights:29 +#: html/Admin/Elements/SelectRights:28 msgid "Current rights" msgstr "Tämänhetkiset oikeudet" -#: html/Search/Listing.html:71 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "Tämänhetkiset hakumääritteet" -#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "Tämänhetkiset tarkkailijat" -#: html/Admin/Global/CustomField.html:55 +#: html/Admin/Global/CustomField.html:54 #. ($CustomField) msgid "Custom Field #%1" msgstr "" -#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +#: 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 "Kentät" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "Kenttä %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Kentällä %1 on arvo" -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Kentällä %1 ei ole arvoa" -#: lib/RT/Ticket_Overlay.pm:3360 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Kenttää %1 ei löytynyt" -#: html/Admin/Elements/EditCustomFields:197 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "Kenttä poistettu" -#: lib/RT/Ticket_Overlay.pm:3510 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "Kenttää ei löytynyt" -#: lib/RT/CustomField_Overlay.pm:283 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "Kentän arvoa %1 ei löytynyt kentälle %2" @@ -1329,19 +1602,19 @@ msgstr "Kentän arvoa %1 ei löytynyt kentälle %2" msgid "Custom field value changed from %1 to %2" msgstr "Kentän arvo muutettu arvosta %1 arvoon" -#: lib/RT/CustomField_Overlay.pm:185 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "Kentän arvoa ei pystytty poistamaan" -#: lib/RT/CustomField_Overlay.pm:289 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "Kentän arvoa ei löydetty" -#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "Kentän arvo poistettu" -#: lib/RT/Transaction_Overlay.pm:550 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "" @@ -1349,7 +1622,7 @@ msgstr "" msgid "Data error" msgstr "" -#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +#: 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 "Päivät" @@ -1365,68 +1638,88 @@ msgstr "joulukuu" msgid "Default Autoresponse Template" msgstr "" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "" -#: etc/initialdata:275 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "" -#: etc/initialdata:257 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "" -#: etc/initialdata:267 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "Oletustapahtumapohja" -#: lib/RT/Transaction_Overlay.pm:645 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "Oletus: %1/%2 muutettu arvosta %3 arvoon %4" -#: html/User/Delegation.html:25 html/User/Delegation.html:28 +#: html/User/Delegation.html:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "Delegoi oikeuksia" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "Delegate specific rights which have been granted to you." msgstr "" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "DelegateRights" msgstr "" -#: html/User/Elements/Tabs:38 +#: html/User/Elements/Tabs:37 msgid "Delegation" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "Poista" -#: lib/RT/Queue_Overlay.pm:90 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "Poista tapaukset" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "Tämän objektin poistaminen saattaa rikkoa tietokannan viitteet" -#: lib/RT/Queue_Overlay.pm:292 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "Tämän objektin poistaminen rikkoo tietokannan viitteet" -#: lib/RT/User_Overlay.pm:430 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "Tämän objektin poistaminen rikkoo tietokannan viitteet" @@ -1438,11 +1731,11 @@ msgstr "" msgid "Deleting this object would violate referential integrity. That's bad." msgstr "" -#: html/Approvals/Elements/Approve:46 +#: html/Approvals/Elements/Approve:44 msgid "Deny" msgstr "" -#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +#: 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 "Tästä tapauksesta riippuu" @@ -1450,7 +1743,27 @@ msgstr "Tästä tapauksesta riippuu" msgid "Dependencies: \\n" msgstr "Riippuvuudet: \\n" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "Riippuu tapauksesta" @@ -1458,64 +1771,79 @@ msgstr "Riippuu tapauksesta" msgid "DependsOn" msgstr "" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "Laskeva" -#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 msgid "Describe the issue below" msgstr "Kuvaa tapausta" -#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +#: 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 "Kuvaus" -#: html/SelfService/Elements/MyRequests:44 +#: NOT FOUND IN SOURCE msgid "Details" msgstr "Yksityiskohdat" -#: html/Ticket/Elements/Tabs:85 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "Näytä" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "Näytä käyttöoikeuslista" -#: lib/RT/Queue_Overlay.pm:75 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "Näytä työjonon toimintopohjat" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "Näytä työjonon toiminnot" -#: html/Ticket/Elements/ShowHistory:35 +#: html/Ticket/Elements/ShowHistory:34 msgid "Display mode" msgstr "Näkymä" -#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 -#. ($Ticket->id) +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Näytä tapaus #%1" -#: lib/RT/System.pm:54 +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + +#: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "Tee mitä tahansa ja kaikki" -#: html/Elements/Refresh:30 +#: html/Elements/Refresh:29 msgid "Don't refresh this page." msgstr "Älä päivitä tätä sivua" -#: html/Search/Elements/PickRestriction:114 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "Älä näytä hakutuloksia" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "Lataa" -#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: 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 "Erääntyy" @@ -1523,8 +1851,7 @@ msgstr "Erääntyy" msgid "Due date '%1' could not be parsed" msgstr "Erääntymispäivää '%1' ei onnistuttu tulkkaamaan järjestelmälle." -#: bin/rt-commit-handler:754 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "VIRHE: Tapauksen '%1' lataaminen ei onnistunut: %2.\\n" @@ -1537,10 +1864,18 @@ msgstr "Muokkaa" msgid "Edit Custom Fields for %1" msgstr "Muokkaa työjonon %1 kenttiä" -#: html/Ticket/ModifyLinks.html:36 -msgid "Edit Relationships" +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "Muokkaa suhteita" +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + #: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" @@ -1550,11 +1885,15 @@ msgstr "Muokkaa työjonon %1 pohjia" msgid "Edit keywords" msgstr "Muokkaa avainsanoja" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "Muokkaa toimintoja" -#: html/Admin/Global/index.html:46 +#: html/Admin/Global/index.html:45 msgid "Edit system templates" msgstr "Muokkaa järjestelmäpohjia" @@ -1562,28 +1901,34 @@ msgstr "Muokkaa järjestelmäpohjia" msgid "Edit templates for %1" msgstr "Muokkaa työjonon %1 pohjia" -#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "Muokataan työjonon %1 asetuksia" -#: html/Admin/Elements/ModifyUser:25 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "Muokataan käyttäjän %1 asetuksia" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/Elements/EditCustomField:90 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Muokataan kenttää %1" -#: html/Admin/Groups/Members.html:32 +#: html/Admin/Groups/Members.html:31 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Muokataan ryhmän %1 jäseniä" -#: html/User/Groups/Members.html:129 +#: html/User/Groups/Members.html:128 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Muokataan henkilökohtaisen ryhmän %1 jäseniä" @@ -1592,64 +1937,88 @@ msgstr "Muokataan henkilökohtaisen ryhmän %1 jäseniä" msgid "Editing template %1" msgstr "Muokataan pohjaa %1" -#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "Joko juuri tai kohde täytyy olla määritelty" -#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "Sähköposti" -#: lib/RT/User_Overlay.pm:188 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "Sähköpostiosoite on jo käytössä" -#: html/Admin/Elements/ModifyUser:42 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "Sähköpostiosoite" -#: html/Admin/Elements/ModifyUser:54 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "Sähköpostin koodaus" -#: html/Admin/Elements/EditCustomField:36 +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + +#: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Aktiivinen (rastin poistaminen passivoi kentän)" -#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 msgid "Enabled (Unchecking this box disables this group)" msgstr "Aktiivinen (rastin poistaminen passivoi ryhmän)" -#: html/Admin/Queues/Modify.html:84 +#: html/Admin/Queues/Modify.html:83 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Aktiivinen (rastin poistaminen passivoi työjonon)" -#: html/Admin/Elements/EditCustomFields:99 +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "" -#: html/Admin/Queues/index.html:56 +#: html/Admin/Queues/index.html:55 msgid "Enabled Queues" msgstr "Aktiiviset työjonot" -#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#: 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 "Aktivoitu tila %1" -#: lib/RT/CustomField_Overlay.pm:361 +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "Anna useampi arvo" -#: lib/RT/CustomField_Overlay.pm:358 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "Anna yksi arvo" -#: html/Ticket/Elements/EditLinks:112 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Lisää tapausten numerot tai www-linkit. Erota useammat välilyönneillä." -#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "Virhe" @@ -1657,51 +2026,75 @@ msgstr "Virhe" msgid "Error adding watcher" msgstr "" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "Virhe parametreissa: Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "Virhe parametreissa: Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1356 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Virhe parametreissa: Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1532 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "Virhe parametreissa: Ticket->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "Kaikki" -#: bin/rt-crontool:194 +#: bin/rt-crontool:190 msgid "Example:" msgstr "" -#: html/Admin/Elements/ModifyUser:64 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "Ulkoinen autentikointitunnus" -#: html/Admin/Elements/ModifyUser:58 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "Ulkoinen yhteystietotunnus" -#: html/Admin/Users/Modify.html:73 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "Lisätieto" -#: lib/RT/User_Overlay.pm:302 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "'Erioikeutettu'-valeryhmää ei löytynyt" -#: lib/RT/User_Overlay.pm:309 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "'Erioikeudeton'-valeryhmää ei löytynyt" -#: bin/rt-crontool:138 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "" @@ -1714,31 +2107,35 @@ msgstr "helmi" msgid "February" msgstr "helmikuu" +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "Fin" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "Loppuprioriteetti" -#: lib/RT/Ticket_Overlay.pm:1162 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "" -#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "Etsi ryhmä, jonka" -#: html/Elements/Quicksearch:25 +#: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "Etsi uudet/avoimet tapaukset" -#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "Etsi käyttäjät, joiden" -#: html/Search/Listing.html:108 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "Hae tapauksia" @@ -1746,44 +2143,44 @@ msgstr "Hae tapauksia" msgid "Finish Approval" msgstr "" -#: html/Ticket/Elements/Tabs:58 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "Ensimmäinen" -#: html/Search/Listing.html:41 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "Viimeinen sivu" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "Pakota muutos" -#: html/Search/Listing.html:106 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "" -#: lib/RT/Interface/Web.pm:868 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "" -#: html/Admin/Elements/ModifyUser:44 +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "Vapaamuotoiset yhteystiedot" -#: lib/RT/CustomField_Overlay.pm:38 +#: lib/RT/CustomField_Overlay.pm:37 msgid "FreeformMultiple" msgstr "" -#: lib/RT/CustomField_Overlay.pm:37 +#: lib/RT/CustomField_Overlay.pm:36 msgid "FreeformSingle" msgstr "" @@ -1791,20 +2188,24 @@ msgstr "" msgid "Fri." msgstr "Pe" -#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 msgid "Full headers" msgstr "Kokonaiset otsikot" +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "" -#: lib/RT/Transaction_Overlay.pm:595 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "Annettu käyttäjälle %1" -#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 msgid "Global" msgstr "Yleiset" @@ -1816,12 +2217,16 @@ msgstr "" msgid "Global Scrips" msgstr "Yleiset toiminnot" -#: html/Admin/Elements/SelectTemplate:38 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Yleinen pohja: %1" -#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "Ok!" @@ -1829,15 +2234,15 @@ msgstr "Ok!" msgid "Good pgp sig from %1\\n" msgstr "Hyvä PGP-allekirjoitus käyttäjältä %1\\n" -#: html/Search/Listing.html:50 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "Siirry sivulle" -#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "Siirry tapaukseen" -#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "Ryhmä" @@ -1845,11 +2250,11 @@ msgstr "Ryhmä" msgid "Group %1 %2: %3" msgstr "Ryhmä %1 %2: %3" -#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +#: 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 "Ryhmän oikeudet" -#: lib/RT/Group_Overlay.pm:965 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "Ryhmässä on jo jäsen" @@ -1857,7 +2262,7 @@ msgstr "Ryhmässä on jo jäsen" msgid "Group could not be created." msgstr "Ryhmää ei voitu luoda." -#: html/Admin/Groups/Modify.html:77 +#: html/Admin/Groups/Modify.html:76 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Ryhmää ei voitu luoda: %1" @@ -1866,11 +2271,11 @@ msgstr "Ryhmää ei voitu luoda: %1" msgid "Group created" msgstr "Ryhmä luotu" -#: lib/RT/Group_Overlay.pm:1133 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "Ryhmässä ei ole sellaista jäsentä" -#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +#: 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 "Ryhmää ei löydetty" @@ -1882,36 +2287,40 @@ msgstr "Ryhmää ei löydetty.\\n" msgid "Group not specified.\\n" msgstr "Ryhmää ei määritelty.\\n" -#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +#: 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 "Ryhmät" -#: lib/RT/Group_Overlay.pm:971 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "Ryhmät eivät voi olla jäsentensä jäseniä" -#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "Hei!" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "Hei, %1" -#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "Historia" -#: html/Admin/Elements/ModifyUser:68 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "Kotipuhelin" -#: html/Elements/Tabs:46 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "Kotisivu" -#: lib/RT/Base.pm:74 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "" @@ -1920,55 +2329,71 @@ msgstr "" msgid "I have [quant,_1,concrete mixer]." msgstr "" -#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 msgid "Id" msgstr "Numero" -#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "Identiteetti" -#: etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Jos hyväksyntä hylätään, hylkää alkuperäinen ja poista siitä riippuvat hyväksynnät" -#: bin/rt-crontool:190 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "" -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: 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 "Jos olet muuttanut tietoja, muista tallentaa" -#: lib/RT/Interface/Web.pm:860 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "Kelpaamaton arvo %1" -#: lib/RT/Interface/Web.pm:863 +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "Muuttumaton kenttä" -#: html/Admin/Elements/EditCustomFields:74 +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Sisällytä passiiviset kentät listaukseen" -#: html/Admin/Queues/index.html:43 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "Sisällytä listaukseen myös passiiviset työjonot." -#: html/Admin/Users/index.html:47 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "Sisällytä listaukseen myös passiiviset käyttäjät." -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "Alkuprioriteetti" -#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "Virhe syötteessä" @@ -1976,11 +2401,11 @@ msgstr "Virhe syötteessä" msgid "Interest noted" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3729 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "Sisäinen virhe" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Sisäinen virhe: %1" @@ -1989,7 +2414,7 @@ msgstr "Sisäinen virhe: %1" msgid "Invalid Group Type" msgstr "Ryhmän tyyppi ei kelpaa" -#: lib/RT/Principal_Overlay.pm:128 +#: lib/RT/Principal_Overlay.pm:127 msgid "Invalid Right" msgstr "Kelpaamaton oikeus" @@ -1997,44 +2422,44 @@ msgstr "Kelpaamaton oikeus" msgid "Invalid Type" msgstr "Kelpaamaton tyyppi" -#: lib/RT/Interface/Web.pm:865 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "Kelpaamatonta dataa" -#: lib/RT/Ticket_Overlay.pm:438 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Omistaja ei kelpaa. Asetetaan oletusasetusten mukaan 'ei kukaan'" -#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "Kelpaamaton työjono" -#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +#: 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 "Kelpaamaton oikeus" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "Kelpaamaton arvo kohteelle %1" -#: lib/RT/Ticket_Overlay.pm:3367 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "Kelpaamaton arvo kentälle" -#: lib/RT/Ticket_Overlay.pm:345 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "Kelpaamaton arvo tilalle" -#: bin/rt-crontool:191 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "" -#: bin/rt-crontool:192 +#: 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 "" -#: bin/rt-crontool:163 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "" @@ -2062,7 +2487,7 @@ msgstr "Heinä" msgid "July" msgstr "Heinäkuu" -#: html/Ticket/Elements/Tabs:99 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "Jätti" @@ -2078,27 +2503,35 @@ msgstr "kesäkuu" msgid "Keyword" msgstr "Avainsana" -#: html/Admin/Elements/ModifyUser:52 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "Kieli" -#: html/Ticket/Elements/Tabs:73 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "Viimeinen" -#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "Viimeinen yhteydenotto" -#: html/Elements/SelectDateType:29 +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + +#: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "Viimeksi otettu yhteyttä" -#: html/Search/Elements/TicketHeader:41 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "Viimeksi huomautettu" -#: html/Elements/SelectDateType:30 +#: html/Elements/SelectDateType:29 msgid "Last Updated" msgstr "Viimeksi päivitetty" @@ -2106,15 +2539,19 @@ msgstr "Viimeksi päivitetty" msgid "LastUpdated" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "Jäljellä" -#: html/Admin/Users/Modify.html:83 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" msgstr "Päästä tämä käyttäjä sisään RT:iin" -#: html/Admin/Users/Modify.html:87 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" msgstr "Tälle käyttäjälle voidaan antaa oikeuksia" @@ -2126,29 +2563,29 @@ msgstr "Rajoitetaan omistajaa %1 %2" msgid "Limiting queue to %1 %2" msgstr "Rajoitetaan työjonoa %1 %2" -#: lib/RT/Ticket_Overlay.pm:2697 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "Linkki on jo olemassa" -#: lib/RT/Ticket_Overlay.pm:2709 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "Linkkiä ei voitu luoda" -#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "Linkki luotu (%1)" -#: lib/RT/Ticket_Overlay.pm:2638 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "Linkki poistettu (%1)" -#: lib/RT/Ticket_Overlay.pm:2644 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "Linkkiä ei löydetty" -#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Linkitä tapaus #%1" @@ -2157,85 +2594,101 @@ msgstr "Linkitä tapaus #%1" msgid "Link ticket %1" msgstr "Linkitä tapaus #%1" -#: html/Ticket/Elements/Tabs:97 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "Linkit" -#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "Sijainti" -#: lib/RT.pm:158 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Lokihakemistoa %1 ei löytynyt tai kirjoittaminen ei onnistunut.\\n RT ei voi toimia." -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Olet kirjautunut sisään tunnuksella %1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +#: 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 "Kirjaudu sisään" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "Kirjaudu ulos" -#: html/Search/Bulk.html:86 +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "Aseta omistaja" -#: html/Search/Bulk.html:102 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "Aseta tila" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "Aseta erääntymisaika" -#: html/Search/Bulk.html:110 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "Aseta päätösaika" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "Aseta aloitusaika" -#: html/Search/Bulk.html:106 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "Aseta alkuaika" -#: html/Search/Bulk.html:108 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "Aseta oltu yhteydessä -aika" -#: html/Search/Bulk.html:99 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "Aseta prioriteetti" -#: html/Search/Bulk.html:100 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "Aseta työjono" -#: html/Search/Bulk.html:98 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "Aseta otsikko" -#: html/Admin/index.html:33 +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "Hallinnoi ryhmiä ja jäsenyyksiä" -#: html/Admin/index.html:39 +#: html/Admin/index.html:38 msgid "Manage properties and configuration which apply to all queues" msgstr "Hallinnoi yleisiä asetuksia, jotka vaikuttavat kaikkiin työjonoihin" -#: html/Admin/index.html:36 +#: html/Admin/index.html:35 msgid "Manage queues and queue-specific properties" msgstr "Hallinnoi työjonoja ja työjonokohtaisia asetuksia" -#: html/Admin/index.html:30 +#: html/Admin/index.html:29 msgid "Manage users and passwords" msgstr "Hallinnoi käyttäjiä ja salasanoja" @@ -2255,19 +2708,29 @@ msgstr "Toukokuu" msgid "May." msgstr "Touko" -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "Jäsen lisätty" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "Jäsen poistettu" -#: lib/RT/Group_Overlay.pm:1144 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "Jäsentä ei poistettu" -#: html/Elements/SelectLinkType:26 +#: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "Jäsen:" @@ -2275,39 +2738,82 @@ msgstr "Jäsen:" msgid "MemberOf" msgstr "" -#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "Jäsenet" -#: lib/RT/Ticket_Overlay.pm:2843 +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "Yhdistäminen onnistui" -#: lib/RT/Ticket_Overlay.pm:2804 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Yhdistäminen epäonnistui. EffectiveId:n arvoa ei pystytty asettamaan" -#: html/Ticket/Elements/EditLinks:115 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "Yhdistä" -#: html/Ticket/Update.html:102 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "Viesti" -#: lib/RT/Interface/Web.pm:867 +#: NOT FOUND IN SOURCE +msgid "Message body not shown because it is too large or is not plain text." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "" -#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "Kännykkä" -#: html/Admin/Elements/ModifyUser:72 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "Kännykkä" -#: lib/RT/Queue_Overlay.pm:70 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "Muokkaa käyttöoikeusluetteloa" @@ -2315,15 +2821,27 @@ msgstr "Muokkaa käyttöoikeusluetteloa" msgid "Modify Custom Field %1" msgstr "Muokkaa kenttää %1" -#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "Muokkaa kaikkia työjonoja koskevia kenttiä" -#: lib/RT/Queue_Overlay.pm:73 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "Muokkaa tämän työjonon toimintopohjia" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "Muokkaa tämän työjonon toimintoja" @@ -2335,43 +2853,51 @@ msgstr "Muokkaa järjestelmän käyttöoikeusluetteloa" msgid "Modify Template %1" msgstr "Muokkaa pohjaa %1" -#: html/Admin/Queues/CustomField.html:45 +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + +#: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:53 +#: html/Admin/Global/CustomField.html:52 msgid "Modify a CustomField which applies to all queues" msgstr "" -#: html/Admin/Queues/Scrip.html:54 +#: html/Admin/Queues/Scrip.html:53 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Muokkaa työjonon %1 toimintoa" -#: html/Admin/Global/Scrip.html:48 +#: html/Admin/Global/Scrip.html:47 msgid "Modify a scrip which applies to all queues" msgstr "Muokkaa toimintoa, jota sovelletaan kaikkiin työjonoihin" +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "" -#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Muokkaa tapauksen #%1 päiviä" -#: html/Ticket/ModifyDates.html:35 +#: html/Ticket/ModifyDates.html:34 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Muokkaa tapauksen #%1 päiviä" -#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 msgid "Modify global group rights" msgstr "Muokkaa ryhmien yleisiä oikeuksia" -#: html/Admin/Global/GroupRights.html:33 +#: html/Admin/Global/GroupRights.html:32 msgid "Modify global group rights." msgstr "Muokkaa ryhmien yleisiä oikeuksia." @@ -2387,11 +2913,11 @@ msgstr "" msgid "Modify global scrips" msgstr "Muokkaa yleisiä toimintoja" -#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 msgid "Modify global user rights" msgstr "Muokkaa yleisiä käyttäjien oikeuksia" -#: html/Admin/Global/UserRights.html:33 +#: html/Admin/Global/UserRights.html:32 msgid "Modify global user rights." msgstr "Muokkaa käyttäjien yleisiä oikeuksia." @@ -2399,12 +2925,16 @@ msgstr "Muokkaa käyttäjien yleisiä oikeuksia." msgid "Modify group metadata or delete group" msgstr "Muokkaa ryhmän metatietoja tai poista ryhmä" -#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "" + +#: 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 "Muokkaa ryhmän %1 oikeuksia." -#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Muokkaa ryhmän oikeuksia työjonossa %1" @@ -2413,74 +2943,74 @@ msgstr "Muokkaa ryhmän oikeuksia työjonossa %1" msgid "Modify membership roster for this group" msgstr "Muokkaa tämän ryhmän jäsenlistaa" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "Modify one's own RT account" msgstr "Muokkaa omaa RT-tunnustasi" -#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Muokkaa työjonoon %1 liittyviä käyttäjiä" -#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#: 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 "Muokkaa tapaukseen %1 liittyviä käyttäjiä" -#: html/Admin/Queues/Scrips.html:44 +#: html/Admin/Queues/Scrips.html:45 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Muokkaa työjonoon %1 liittyviä toimintoja" -#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 msgid "Modify scrips which apply to all queues" msgstr "Muokkaa toimintoja, joita sovelletaan kaikkiin työjonoihin" -#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#: 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 "Muokkaa pohjaa %1" -#: html/Admin/Global/Templates.html:44 +#: html/Admin/Global/Templates.html:43 msgid "Modify templates which apply to all queues" msgstr "Muokkaaa pohjia, joita sovelletaan kaikkiin työjonoihin" -#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 #. ($Group->Name) msgid "Modify the group %1" msgstr "Muokkaa ryhmää %1" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "Muokkaa työjonon tarkkailjoita" -#: html/Admin/Users/Modify.html:236 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Muokkaa käyttäjää %1" -#: html/Ticket/ModifyAll.html:37 +#: html/Ticket/ModifyAll.html:36 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Muokkaa tapausta #%1" -#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Muokkaa tapausta #%1" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "Muokkaa tapauksia" -#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#: 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 "Muokkaa ryhmän %1 käyttäjien oikeuksia" -#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Muokkaa työjonoon %1 liittyviä käyttäjien oikeuksia" @@ -2489,7 +3019,7 @@ msgstr "Muokkaa työjonoon %1 liittyviä käyttäjien oikeuksia" msgid "Modify watchers for queue '%1'" msgstr "Muokkaa tapauksen %1 seuraajia" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "" @@ -2497,23 +3027,23 @@ msgstr "" msgid "ModifyOwnMembership" msgstr "" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "ModifySelf" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "" @@ -2521,43 +3051,56 @@ msgstr "" msgid "Mon." msgstr "Ma" -#: html/Ticket/Elements/ShowRequestor:42 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "Lisätietoa: %1" -#: html/Admin/Elements/EditCustomFields:61 +#: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "Siirrä alas" -#: html/Admin/Elements/EditCustomFields:53 +#: html/Admin/Elements/EditCustomFields:52 msgid "Move up" msgstr "Siirrä ylös" -#: html/Admin/Elements/SelectSingleOrMultiple:27 +#: html/Admin/Elements/SelectSingleOrMultiple:26 msgid "Multiple" msgstr "Monta" -#: lib/RT/User_Overlay.pm:179 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "'Nimi' täytyy määritellä" +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "Hyväksyntäni" -#: html/Approvals/index.html:25 html/Approvals/index.html:26 +#: html/Approvals/index.html:24 html/Approvals/index.html:25 msgid "My approvals" msgstr "Hyväksyntäni" -#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "Nimi" -#: lib/RT/User_Overlay.pm:186 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "Nimi on käytössä" +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Tarvitsee järjestelmän ylläpitäjän hyväksynnän" @@ -2566,55 +3109,67 @@ msgstr "Tarvitsee järjestelmän ylläpitäjän hyväksynnän" msgid "Never" msgstr "Ei ikinä" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "Uusi" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "Uusi linkki" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "Uusi salasana" -#: etc/initialdata:311 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "" -#: html/Ticket/Elements/EditLinks:111 -msgid "New Relationships" -msgstr "Uusi linkki" +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" -#: html/Ticket/Elements/Tabs:36 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "Uusi haku" -#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + +#: 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 "" -#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 msgid "New group" msgstr "Uusi ryhmä" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:31 msgid "New password" msgstr "Uusi salasana" -#: lib/RT/User_Overlay.pm:639 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "Uusi salasana" -#: html/Admin/Elements/QueueTabs:70 +#: html/Admin/Elements/QueueTabs:69 msgid "New queue" msgstr "Uusi työjono" -#: html/SelfService/Elements/Tabs:63 +#: NOT FOUND IN SOURCE msgid "New request" msgstr "Uusi tapaus" -#: html/Admin/Elements/SelectRights:42 +#: html/Admin/Elements/SelectRights:41 msgid "New rights" msgstr "Uudet oikeudet" -#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +#: 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 "Uusi toiminto" @@ -2622,67 +3177,91 @@ msgstr "Uusi toiminto" msgid "New search" msgstr "Uusi haku" -#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +#: 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 "Uusi pohja" -#: lib/RT/Ticket_Overlay.pm:2771 +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "Uutta tapausta ei löydy" -#: html/Admin/Elements/UserTabs:52 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "Uusi käyttäjä" -#: html/Admin/Elements/CreateUserCalled:26 +#: html/Admin/Elements/CreateUserCalled:25 msgid "New user called" msgstr "Uusi käyttäjä pyydetty" -#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 msgid "New watchers" msgstr "Uusi tarkkailija" -#: html/Admin/Users/Prefs.html:42 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "Uusi ikkunan asetus" -#: html/Ticket/Elements/Tabs:69 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "Seuraava" -#: html/Search/Listing.html:48 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "Seuraava sivu" -#: html/Admin/Elements/ModifyUser:50 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "Lempinimi" -#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "Lempinimi" -#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "Ei kenttiä" -#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "Ryhmää ei ole määritelty" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "Työjonoa ei ole määritelty" -#: bin/rt-crontool:56 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "Käyttäjää ei löydy. Ole hyvä ja ota yhteyttä RT:n ylläpitäjään.\\n" -#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 msgid "No Template" msgstr "Ei pohjaa" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "Tapausta ei määritelty. Perutaan tapaus " @@ -2690,11 +3269,11 @@ msgstr "Tapausta ei määritelty. Perutaan tapaus " msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "Tapausta ei määritelty. Poistutaan tapauksen muokkauksesta\\n\\n" -#: html/Approvals/Elements/Approve:47 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "" -#: lib/RT/Interface/Web.pm:862 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "" @@ -2702,57 +3281,60 @@ msgstr "" msgid "No command found\\n" msgstr "Komentoa ei löytynyt\\n" -#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "Käyttäjälle ei ole annettu kommentteja" -#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "Ei kirjeenvaihtoa liitettynä" -#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#: 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 "Ei kuvausta kohteelle %1" -#: lib/RT/Users_Overlay.pm:151 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "Ryhmää ei ole määritelty" -#: lib/RT/User_Overlay.pm:857 +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "Salasanaa ei ole asetettu" -#: lib/RT/Queue_Overlay.pm:259 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "Ei oikeutta luoda työjonoja" -#: lib/RT/Ticket_Overlay.pm:341 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "Ei oikeutta luoda tapauksia työjonoon '%1'" -#: lib/RT/User_Overlay.pm:151 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "Ei oikeutta luoda käyttäjiä" -#: html/SelfService/Display.html:174 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "Ei oikeutta tarkastella tätä tapausta" -#: html/SelfService/Update.html:55 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "Ei oikeutta päivittää tätä tapausta" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "Toimeksiantajaa ei ole määritelty" -#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 msgid "No principals selected." msgstr "Toimeksiantajia ei ole valittu." -#: html/Admin/Queues/index.html:35 +#: html/Admin/Queues/index.html:34 msgid "No queues matching search criteria found." msgstr "Yhtään hakukriteerit täyttävää tapausta ei löytynyt." @@ -2760,19 +3342,23 @@ msgstr "Yhtään hakukriteerit täyttävää tapausta ei löytynyt." msgid "No rights found" msgstr "Oikeuksia ei löytynyt" -#: html/Admin/Elements/SelectRights:33 +#: html/Admin/Elements/SelectRights:32 msgid "No rights granted." msgstr "Ei myönnettyjä oikeuksia." -#: html/Search/Bulk.html:149 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "Ei työstettävää hakua" +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "Tapauksen numeroa ei ole määritelty" -#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "Tapahtuman tyyppiä ei ole määritelty" @@ -2780,31 +3366,31 @@ msgstr "Tapahtuman tyyppiä ei ole määritelty" msgid "No user or email address specified" msgstr "Käyttäjää tai sähköpostiosoitetta ei ole määritelty" -#: html/Admin/Users/index.html:36 +#: html/Admin/Users/index.html:35 msgid "No users matching search criteria found." msgstr "Yhtään hakukriteerit täyttävää käyttäjää ei löytynyt." -#: bin/rt-commit-handler:644 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Ei kelpaa RT-käyttäjäksi. RT:n cvs-käsittelijä irrottautuu. Ole hyvä ja ota yhteyttä RT:n ylläpitäjään.\\n" -#: lib/RT/Interface/Web.pm:859 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "" -#: html/Search/Elements/TicketRow:37 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "Ei kukaan" -#: lib/RT/Interface/Web.pm:864 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "Olematon kenttä?" -#: html/Elements/Login:99 +#: NOT FOUND IN SOURCE msgid "Not logged in" msgstr "Sisäänkirjautumaton" -#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "Et ole kirjautunut järjestelmään" @@ -2812,67 +3398,87 @@ msgstr "Et ole kirjautunut järjestelmään" msgid "Not set" msgstr "Ei asetettu" -#: html/NoAuth/Reminder.html:27 +#: html/NoAuth/Reminder.html:26 msgid "Not yet implemented." msgstr "Ei vielä toteutettu." -#: html/Admin/Groups/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Not yet implemented...." msgstr "Ei vielä toteutettu..." -#: html/Approvals/Elements/Approve:50 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "Merkintöjä" -#: lib/RT/User_Overlay.pm:642 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "Ilmoitusta ei pystytty lähettämään" -#: etc/initialdata:94 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "" -#: etc/initialdata:90 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "" -#: etc/initialdata:121 -msgid "Notify Other Recipients" +#: etc/initialdata:93 etc/upgrade/3.1.17/content:6 +msgid "Notify Ccs" msgstr "" -#: etc/initialdata:117 +#: 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:86 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "" -#: etc/initialdata:82 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "" -#: etc/initialdata:313 etc/upgrade/2.1.71:17 +#: 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:78 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "" -#: etc/initialdata:104 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "" -#: etc/initialdata:99 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "" -#: etc/initialdata:113 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "" -#: etc/initialdata:109 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "" @@ -2884,11 +3490,11 @@ msgstr "Marras" msgid "November" msgstr "marraskuu" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "" -#: lib/RT/Record.pm:176 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "" @@ -2900,181 +3506,237 @@ msgstr "Loka" msgid "October" msgstr "lokakuu" -#: html/Elements/SelectDateRelation:35 +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + +#: html/Elements/SelectDateRelation:34 msgid "On" msgstr "-" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "" -#: etc/initialdata:177 +#: 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:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:50 +#: 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 "Näytä vain pyynnöt, jotka on luotu jälkeen %1" -#: html/Approvals/Elements/PendingMyApproval:48 +#: 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 "Näytä vain pyynnöt, jotka on luotu ennen %1" -#: html/Elements/Quicksearch:31 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "Avoin" -#: html/Ticket/Elements/Tabs:136 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Avaa" -#: html/SelfService/Elements/Tabs:57 +#: NOT FOUND IN SOURCE msgid "Open requests" msgstr "Avoimet tapaukset" -#: html/Admin/Users/Prefs.html:41 +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "Avoimet tapaukset (listasta) uudessa ikkunassa" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "Avoimet tapaukset (listasta) toisessa ikkunassa" -#: etc/initialdata:133 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "Avaa tapaukset, kun esiintyy kirjeenvaihtoa" -#: html/Search/Elements/PickRestriction:101 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Järjestäminen" -#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "Laitos" -#: html/Approvals/Elements/Approve:34 +#: html/Approvals/Elements/Approve:32 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Alkuperäinen tapaus: #%1" -#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "Ajan kuluessa prioriteetti muuttuu kohti" -#: lib/RT/Queue_Overlay.pm:87 +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "Omat tapaukset" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "" -#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "Omistaja" -#: lib/RT/Ticket_Overlay.pm:3004 -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +#: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" msgstr "Omistaja vaihdettu tunnuksesta %1 tunnukseen %2" -#: lib/RT/Transaction_Overlay.pm:584 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Omistaja pakolla vaihdettu tunnuksesta %1 tunnukseen %2" -#: html/Search/Elements/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "Omistaja" -#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "Hakulaite" -#: html/Admin/Elements/ModifyUser:74 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "Hakulaite-puhelin" -#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +#: 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 "Isät" -#: html/Elements/Login:43 html/User/Prefs.html:61 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "Salasana" -#: html/NoAuth/Reminder.html:25 +#: html/NoAuth/Reminder.html:24 msgid "Password Reminder" msgstr "Salasanan muistutus" -#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "Salasana liian lyhyt" -#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Salasana: %1" -#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +#: html/Admin/Users/Modify.html:318 +msgid "Passwords do not match." +msgstr "" + +#: html/User/Prefs.html:211 +msgid "Passwords do not match. Your password has not been changed" +msgstr "" + +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "Käyttäjät" -#: etc/initialdata:126 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "" -#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "Pääsy kielletty" -#: html/User/Elements/Tabs:35 +#: html/User/Elements/Tabs:34 msgid "Personal Groups" msgstr "Omat ryhmät" -#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 msgid "Personal groups" msgstr "Omat ryhmät" -#: html/User/Elements/DelegateRights:37 +#: html/User/Elements/DelegateRights:36 msgid "Personal groups:" msgstr "Omat ryhmät:" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "Puhelinnumerot" -#: html/Admin/Users/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Placeholder" msgstr "Paikanpitäjä" -#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +#: 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 "Asetukset" @@ -3082,15 +3744,19 @@ msgstr "Asetukset" msgid "Prefs" msgstr "Asetukset" -#: lib/RT/Action/Generic.pm:160 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "Valmistele tumppi" -#: html/Ticket/Elements/Tabs:61 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "Edellinen" -#: html/Search/Listing.html:44 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "Edellinen sivu" @@ -3098,41 +3764,57 @@ msgstr "Edellinen sivu" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#: 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 "Toimeksiantajaa %1 ei löytynyt" -#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "Prioriteetti" -#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "Prioriteetti alkaa arvosta" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "Erioikeutettu" -#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Erioikeutuksen tila: &1" -#: html/Admin/Users/index.html:62 +#: html/Admin/Users/index.html:61 msgid "Privileged users" msgstr "Erioikeutetut käyttäjät" +#: 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 "Valeryhmä sisäiseen käyttöön" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "Työjono" -#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#: 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" @@ -3146,7 +3828,7 @@ msgstr "Työjonoa '%1' ei löytynyt" msgid "Queue Keyword Selections" msgstr "" -#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "Työjonon nimi" @@ -3154,19 +3836,19 @@ msgstr "Työjonon nimi" msgid "Queue Scrips" msgstr "Työjonon toiminnot" -#: lib/RT/Queue_Overlay.pm:263 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "Työjono on jo olemassa" -#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "Työjonoa ei voitu luoda" -#: html/Ticket/Create.html:209 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "Työjonoa ei voitu ladata." -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "Työjono luotu" @@ -3174,26 +3856,37 @@ msgstr "Työjono luotu" msgid "Queue is not specified." msgstr "Työjonoa ei määritelty" -#: html/SelfService/Display.html:129 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "Työjonoa ei löytynyt" -#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 msgid "Queues" msgstr "Työjonot" -#: html/Elements/Login:34 +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "" + +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + +#: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:70 +#: 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 - %2" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: NOT FOUND IN SOURCE msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." msgstr "RT %1, tekijä: <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." @@ -3201,7 +3894,7 @@ msgstr "RT %1, tekijä: <a href=\"http://bestpractical.com\">Best Practical Solu msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -#: html/Admin/index.html:25 html/Admin/index.html:26 +#: html/Admin/index.html:24 html/Admin/index.html:25 msgid "RT Administration" msgstr "RT Ylläpito" @@ -3221,7 +3914,7 @@ msgstr "RT Konfiguraatiovirhe" msgid "RT Critical error. Message not recorded!" msgstr "RT Kriittinen virhe. Viestiä ei tallennettu!" -#: html/Elements/Error:41 html/SelfService/Error.html:41 +#: html/Elements/Error:41 html/SelfService/Error.html:40 msgid "RT Error" msgstr "RT Virhe" @@ -3233,11 +3926,19 @@ msgstr "RT Sai sähköpostin (%1) itseltään." msgid "RT Recieved mail (%1) from itself." msgstr "" -#: html/SelfService/Closed.html:25 +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT Itsepalvelu / Suljetut tapaukset" -#: html/index.html:25 html/index.html:28 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "RT yhdellä silmäyksellä" @@ -3257,7 +3958,7 @@ msgstr "RT ei löytänyt työjonoa: %1" msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT ei pystynyt tarkistamaan tätä PGP allekirjoitusta.\\n" -#: html/Elements/PageLayout:26 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "%1: RT" @@ -3270,11 +3971,14 @@ msgstr "" msgid "RT has proccessed your commands" msgstr "RT on prosessoinut antamasi komennot" -#: html/Elements/Login:83 -#. ('2003') +#: 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 on tekijänoikeuslain alainen, © 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Se on jakelussa seuraavalla lisenssillä: <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-%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 "" + #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "RT luulee että tämä viesti on palautus" @@ -3287,19 +3991,43 @@ msgstr "RT prosessoi tämän viestin kuten se olisi allekirjoittamaton." 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:n sähköpostiohjaustila vaatii PGP-tunnistamista. Et allekirjoittanut (PGP) viestiä tai allekirjoitustasi ei pystytty vahvistamaan." -#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "Oikea nimi" -#: html/Admin/Elements/ModifyUser:48 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "Oikea nimi" -#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "Viitattu jostakin" -#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +#: 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 "Viittaus johonkin" @@ -3311,20 +4039,16 @@ msgstr "" msgid "Refine" msgstr "Päivitä" -#: html/Search/Elements/PickRestriction:27 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Päivitä haku" -#: html/Elements/Refresh:36 +#: html/Elements/Refresh:35 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Päivitä tämä sivu %1 minuutin välein" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 -msgid "Relationships" -msgstr "Linkit" - -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "Poista kopio ylläpidolle" @@ -3332,27 +4056,35 @@ msgstr "Poista kopio ylläpidolle" msgid "Remove Cc" msgstr "Poista kopio" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "Poista tilaaja" -#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "Vastaa" -#: lib/RT/Queue_Overlay.pm:85 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "Vastaa tapauksiin" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "" -#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "Tilaaja" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "Tilaajan sähköpostiosoite" @@ -3364,98 +4096,107 @@ msgstr "Tilaajat" msgid "RequestorAddresses" msgstr "" -#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "Tilaajat" -#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "Tapaus tulisi suorittaa mennessä" -#: html/Elements/Submit:62 +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + +#: html/Elements/Submit:61 msgid "Reset" msgstr "Palauta" -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "Koti" -#: html/Ticket/Elements/Tabs:132 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "Päätä" -#: html/Ticket/Update.html:133 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Ratkaise tapaus #%1 (%2)" -#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "Päätetty" -#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "Vastaus tilaajille" -#: html/Elements/ListActions:26 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "Tulokset" -#: html/Search/Elements/PickRestriction:105 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "Tuloksia sivulle: " -#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "Vahvista salasana" +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Oikeutta %1 ei löydetty %2 %3 laajuudessa %4 (%5)\\n" -#: lib/RT/ACE_Overlay.pm:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "Oikeus delegoitu" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "Oikeus myönnetty" -#: lib/RT/ACE_Overlay.pm:161 +#: lib/RT/ACE_Overlay.pm:160 msgid "Right Loaded" msgstr "Oikeus ladattu" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "Oikeutta ei voitu perua" -#: html/User/Delegation.html:64 +#: html/User/Delegation.html:63 msgid "Right not found" msgstr "Oikeutta ei löydetty" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "Oikeutta ei ladattu" -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "Oikeus peruttu" -#: html/Admin/Elements/UserTabs:41 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "Oikeudet" -#: lib/RT/Interface/Web.pm:758 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Oikeuksia ei voitu myöntää: %1" -#: lib/RT/Interface/Web.pm:791 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "Oikeuksia ei voitu perua: %1" -#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "Roolit" @@ -3463,32 +4204,53 @@ msgstr "Roolit" msgid "RootApproval" msgstr "" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "La" -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "Tallenna muutokset" -#: html/Ticket/ModifyLinks.html:39 +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "Tallenna muutokset" -#: html/Admin/Global/Scrip.html:49 +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Toiminto #%1" -#: lib/RT/Scrip_Overlay.pm:176 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "Toiminto luotu" -#: html/Admin/Elements/EditScrips:84 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "Toiminto poistettu" -#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 msgid "Scrips" msgstr "Toiminnot" @@ -3500,7 +4262,7 @@ msgstr "Toiminnot työjonolle %1\\n" msgid "Scrips which apply to all queues" msgstr "Toiminnot, joita sovelletaan kaikkiin työjonoihin" -#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "Hae" @@ -3508,19 +4270,43 @@ msgstr "Hae" msgid "Search Criteria" msgstr "Hakukriteerit" -#: html/Approvals/Elements/PendingMyApproval:39 +#: html/Approvals/Elements/PendingMyApproval:38 msgid "Search for approvals" msgstr "" -#: bin/rt-crontool:188 +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: bin/rt-crontool:184 msgid "Security:" msgstr "" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "" -#: html/Admin/Groups/index.html:40 +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "Valitse ryhmä" @@ -3528,87 +4314,99 @@ msgstr "Valitse ryhmä" msgid "Select a queue" msgstr "Valitse työjono" -#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" msgstr "Valitse käyttäjä" -#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "" -#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" msgstr "Valitse ryhmä" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "Valitse useita arvoja" -#: lib/RT/CustomField_Overlay.pm:352 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "Valitse yksi arvo" -#: html/Admin/Elements/QueueTabs:67 +#: html/Admin/Elements/QueueTabs:66 msgid "Select queue" msgstr "Valitse työjono" -#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +#: 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 "Valitse toiminto" -#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +#: 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 "Valitse pohja" -#: html/Admin/Elements/UserTabs:49 +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "Valitse käyttäjä" -#: lib/RT/CustomField_Overlay.pm:36 +#: lib/RT/CustomField_Overlay.pm:35 msgid "SelectMultiple" msgstr "" -#: lib/RT/CustomField_Overlay.pm:35 +#: lib/RT/CustomField_Overlay.pm:34 msgid "SelectSingle" msgstr "" -#: html/SelfService/index.html:25 +#: NOT FOUND IN SOURCE msgid "Self Service" msgstr "Itsepalvelu" -#: etc/initialdata:114 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "" -#: etc/initialdata:110 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "" -#: etc/initialdata:105 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "" -#: etc/initialdata:100 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "" -#: etc/initialdata:79 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "" -#: etc/initialdata:118 etc/initialdata:122 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "" -#: etc/initialdata:95 +#: 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:91 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "" -#: etc/initialdata:83 etc/initialdata:87 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "Lähettää postia omistajalle" @@ -3616,59 +4414,87 @@ msgstr "Lähettää postia omistajalle" msgid "Sep." msgstr "Syys" +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "" + #: NOT FOUND IN SOURCE msgid "September" msgstr "syyskuu" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "Näytä tulokset" -#: html/Approvals/Elements/PendingMyApproval:44 +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show basics" msgstr "Näytä perustiedot" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:44 msgid "Show denied requests" msgstr "" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show details" msgstr "Näytä yksityiskohdat" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:42 msgid "Show pending requests" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:46 +#: html/Approvals/Elements/PendingMyApproval:45 msgid "Show requests awaiting other approvals" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "Näytä tapauksen kommentointi" -#: lib/RT/Queue_Overlay.pm:79 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "Näytä tapausten yhteenvedot" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "" @@ -3676,43 +4502,58 @@ msgstr "" msgid "ShowTicketComments" msgstr "" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "" -#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "Allekirjoitus" -#: html/SelfService/Elements/Header:52 -#. ($session{'CurrentUser'}->Name) +#: NOT FOUND IN SOURCE msgid "Signed in as %1" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:25 msgid "Single" msgstr "Yksittäinen" -#: html/Elements/Header:51 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "" -#: html/Admin/Elements/EditCustomFieldValues:31 +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Sort key" msgstr "Järjestys" -#: html/Search/Elements/PickRestriction:109 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "Järjestä tulokset" -#: html/Admin/Elements/AddCustomFieldValue:25 +#: NOT FOUND IN SOURCE msgid "SortOrder" msgstr "Lajittelujärjestys" +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "Jäädytetty" @@ -3721,7 +4562,7 @@ msgstr "Jäädytetty" msgid "Start page" msgstr "Etusivu" -#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "Aloitettu" @@ -3729,7 +4570,7 @@ msgstr "Aloitettu" msgid "Started date '%1' could not be parsed" msgstr "Aloittamisaikaa '%1' ei pystytty tulkitsemaan" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "Alkaa" @@ -3741,19 +4582,19 @@ msgstr "Alkaa mennessä" msgid "Starts date '%1' could not be parsed" msgstr "Alkamisaikaa '%1' ei pystytty tulkitsemaan" -#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "Tila" -#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +#: 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 "Tila" -#: etc/initialdata:288 +#: etc/initialdata:309 msgid "Status Change" msgstr "" -#: lib/RT/Transaction_Overlay.pm:530 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "Tila muutettu arvosta %1 arvoon %2" @@ -3762,28 +4603,40 @@ msgstr "Tila muutettu arvosta %1 arvoon %2" msgid "StatusChange" msgstr "" -#: html/Ticket/Elements/Tabs:147 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "Kaappaa" -#: lib/RT/Transaction_Overlay.pm:589 +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "Kaapattu käyttäjältä %1" -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +#: 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 "Otsikko" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#: 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 "Otsikko vaihdettu: %1" -#: html/Elements/Submit:59 +#: html/Elements/Submit:58 msgid "Submit" msgstr "Lähetä" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "" @@ -3792,19 +4645,31 @@ msgstr "" msgid "Succeeded" msgstr "Onnistui" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + #: lib/RT/Date.pm:394 msgid "Sun." msgstr "Su" -#: lib/RT/System.pm:54 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "" -#: html/User/Elements/DelegateRights:77 +#: html/User/Elements/DelegateRights:76 msgid "System" msgstr "Järjestelmä" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "Järjestelmävirhe" @@ -3816,11 +4681,15 @@ msgstr "" msgid "System Error. right not granted" msgstr "" -#: lib/RT/ACE_Overlay.pm:616 +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "Järjestelmävirhe. Oikeutta ei delegoitu." -#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "Järjestelmävirhe. Oikeutta ei luovutettu." @@ -3828,7 +4697,7 @@ msgstr "Järjestelmävirhe. Oikeutta ei luovutettu." msgid "System error. Unable to grant rights." msgstr "" -#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 msgid "System groups" msgstr "Järjestelmäryhmät" @@ -3836,32 +4705,40 @@ msgstr "Järjestelmäryhmät" msgid "SystemRolegroup for internal use" msgstr "" -#: lib/RT/CurrentUser.pm:320 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "TESTIMERKKIJONO" -#: html/Ticket/Elements/Tabs:143 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "Ota itselle" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "Otettu" -#: html/Admin/Elements/EditScrip:81 +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "Pohja" -#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Pohja #%1" -#: html/Admin/Elements/EditTemplates:89 +#: html/Admin/Elements/EditTemplates:88 msgid "Template deleted" msgstr "Pohja poistettu" -#: lib/RT/Scrip_Overlay.pm:153 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "Pohjaa ei löydetty" @@ -3869,11 +4746,11 @@ msgstr "Pohjaa ei löydetty" msgid "Template not found\\n" msgstr "Pohjaa ei löydetty\\n" -#: lib/RT/Template_Overlay.pm:347 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "Pohja tulkittu" -#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 msgid "Templates" msgstr "Pohjat" @@ -3881,71 +4758,74 @@ msgstr "Pohjat" msgid "Templates for %1\\n" msgstr "Pohjat työjonolle %1\\n" -#: lib/RT/Interface/Web.pm:858 +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "" -#: lib/RT/CustomField_Overlay.pm:178 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "Ei ole arvo tälle kentälle" -#: lib/RT/Ticket_Overlay.pm:1886 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "Tämä on sama arvo" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Toimeksiantaja on jo %1 tälle työjonolle" -#: lib/RT/Ticket_Overlay.pm:1434 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Toimeksiantaja on jo %1 tälle tapaukselle" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Toimeksiantaja ei ole %1 tälle työjonolle" -#: lib/RT/Ticket_Overlay.pm:1551 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "Toimeksiantaja ei ole %1 tälle tapaukselle" -#: lib/RT/Ticket_Overlay.pm:1882 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "Työjonoa ei ole olemassa" -#: lib/RT/Ticket_Overlay.pm:3143 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "Tapaus sisältää päättämättömiä riippuvuuksia" -#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +#: NOT FOUND IN SOURCE msgid "That user already has that right" msgstr "Käyttäjällä on jo tuo oikeus" -#: lib/RT/Ticket_Overlay.pm:2952 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "Käyttäjä omistaa jo tämän tapauksen" -#: lib/RT/Ticket_Overlay.pm:2918 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "Käyttäjää ei ole olemassa" -#: lib/RT/User_Overlay.pm:315 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "Käyttäjä on jo erioikeutettu" -#: lib/RT/User_Overlay.pm:332 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "Käyttäjä on jo erioikeudeton" -#: lib/RT/User_Overlay.pm:327 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "Käyttäjä on nyt erioikeutettu" -#: lib/RT/User_Overlay.pm:344 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "Käyttäjä on nyt erioikeudeton" @@ -3953,67 +4833,75 @@ msgstr "Käyttäjä on nyt erioikeudeton" msgid "That user is now unprivilegedileged" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2944 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "Käyttäjä ei voi omistaa tapauksia tuossa työjonossa" -#: lib/RT/Link_Overlay.pm:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "Ei ole numero" -#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 msgid "The Basics" msgstr "Perustiedot" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:87 msgid "The CC of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:89 +#: lib/RT/ACE_Overlay.pm:88 msgid "The administrative CC of a ticket" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2213 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "Kommentti on tallennettu" -#: bin/rt-crontool:198 +#: 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 "" -#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "Seuraavia komentoja ei suoritettu:\\n\\n" -#: lib/RT/Interface/Web.pm:861 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "Uusi arvo asetettu." -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:85 msgid "The owner of a ticket" msgstr "Tapauksen omistaja" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:86 msgid "The requestor of a ticket" msgstr "Tapauksen tilaaja" -#: html/Admin/Elements/EditUserComments:26 +#: html/Admin/Elements/EditUserComments:25 msgid "These comments aren't generally visible to the user" msgstr "Nämä kommentit eivät ole yleisesti näkyvillä käyttäjälle" +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +msgid "This message will be sent to..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "Tämä tapaus %1 %2 (%3)\\n" -#: bin/rt-crontool:189 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "" -#: lib/RT/Transaction_Overlay.pm:253 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "Tämä tapahtuma ei näytä sisältävän mitään" -#: html/Ticket/Elements/ShowRequestor:47 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Käyttäjän %1 tärkeintä tapausta" @@ -4034,61 +4922,67 @@ msgstr "Tapaus # %1 %2" msgid "Ticket # %1 Jumbo update: %2" msgstr "" -#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Tapauksen #%1 jättipäivitys: %2" -#: html/Approvals/Elements/ShowDependency:46 +#: html/Approvals/Elements/ShowDependency:45 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Tapaus #%1: %2" -#: lib/RT/Ticket_Overlay.pm:608 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Tapaus %1 luotu työjonoon '%2'" -#: bin/rt-commit-handler:760 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "Tapaus %1 ladattu\\n" -#: html/Search/Bulk.html:181 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Tapaus %1: %2" -#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "Tapauksen historia # %1 %2" -#: html/SelfService/Display.html:34 +#: NOT FOUND IN SOURCE msgid "Ticket Id" msgstr "Tapauksen numero" -#: etc/initialdata:303 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "" -#: html/Search/Elements/PickRestriction:63 +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Tapauksen liitteen" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "Tapauksen sisältö" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "Tapauksen sisällön tyyppi" -#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +#: 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 "Tapausta ei voitu luoda sisäisestä virheestä johtuen" -#: lib/RT/Transaction_Overlay.pm:522 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "Tapaus luotu" @@ -4096,11 +4990,11 @@ msgstr "Tapaus luotu" msgid "Ticket creation failed" msgstr "Tapauksen luonti epäonnistui" -#: lib/RT/Transaction_Overlay.pm:527 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "Tapaus poistettu" -#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +#: NOT FOUND IN SOURCE msgid "Ticket id not found" msgstr "Tapauksen numeroa ei löytynyt" @@ -4108,58 +5002,65 @@ msgstr "Tapauksen numeroa ei löytynyt" msgid "Ticket killed" msgstr "" -#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "Tapausta ei löydy" -#: etc/initialdata:289 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "Tapauksen tila vaihdettu" -#: html/Ticket/Update.html:39 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "Tapauksen tarkkailijat" -#: html/Elements/Tabs:49 +#: html/Elements/Tabs:46 msgid "Tickets" msgstr "Tapaukset" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Tapaukset %1" -#: html/Approvals/Elements/ShowDependency:27 +#: html/Approvals/Elements/ShowDependency:26 msgid "Tickets which depend on this approval:" msgstr "" -#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "Aikaa jäljellä" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "Aikaa käytetty" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "Aikaa jäljellä" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "Aika" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "Aikaa käytetty" @@ -4167,40 +5068,49 @@ msgstr "Aikaa käytetty" msgid "TimeLeft" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1165 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "" -#: bin/rt-commit-handler:402 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "Luodaksesi diffin tästä käskystä:" -#: bin/rt-commit-handler:391 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "To generate a diff of this commit:\\n" -#: lib/RT/Ticket_Overlay.pm:1168 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "Oltu yhteydessä" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "" -#: lib/RT/Transaction_Overlay.pm:642 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Tapahtuma %1 puhdistettu" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "Tapahtuma luotu" -#: lib/RT/Transaction_Overlay.pm:89 +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "" -#: lib/RT/Transaction_Overlay.pm:701 +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "Tapahtumat ovat muuttumattomia" @@ -4212,102 +5122,133 @@ msgstr "Yritetään poistaa oikeus: %1" msgid "Tue." msgstr "Ti" -#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +#: 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 "Tyyppi" -#: lib/RT/ScripCondition_Overlay.pm:104 +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + +#: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "Toteuttamaton" -#: html/Admin/Users/Modify.html:68 +#: html/Admin/Users/Modify.html:67 msgid "Unix login" msgstr "Unix login" -#: html/Admin/Elements/ModifyUser:62 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "Käyttäjän Unix-tunnus" -#: lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Tuntematon sisällön koodaus %1" -#: html/Elements/SelectResultsPerPage:37 +#: html/Elements/SelectResultsPerPage:36 msgid "Unlimited" msgstr "Rajoittamaton" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "Erioikeudeton" -#: lib/RT/Transaction_Overlay.pm:571 +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "Ottamaton" -#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +#: html/Search/Bulk.html:32 msgid "Update" msgstr "Päivitä" -#: html/Admin/Users/Prefs.html:62 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Päivitä numero" -#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "Päivitä tyyppi" -#: html/Search/Listing.html:61 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "Päivitä kaikki nämä tapaukset kerralla" -#: html/Admin/Users/Prefs.html:49 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "Päivitä sähköposti" -#: html/Admin/Users/Prefs.html:55 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "Päivitä nimi" -#: lib/RT/Interface/Web.pm:375 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "Päivitystä ei tallennettu" -#: html/Search/Bulk.html:81 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "Päivitä valitut tapaukset" -#: html/Admin/Users/Prefs.html:36 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Päivitä allekirjoitus" -#: html/Ticket/ModifyAll.html:63 +#: html/Ticket/ModifyAll.html:62 msgid "Update ticket" msgstr "Päivitä tapaus" -#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 -#. ($Ticket->id) +#: NOT FOUND IN SOURCE msgid "Update ticket # %1" msgstr "Päivitä tapaus # %1" -#: html/SelfService/Update.html:50 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Päivitä tapaus #%1" -#: html/Ticket/Update.html:135 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Päivitä tapaus #%1 (%2)" -#: lib/RT/Interface/Web.pm:373 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "Päivityksen tyyppi ei ollut kirjeenvaihto eikä kommentti." -#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "Päivitetty" +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "Käyttäjä %1 %2: %3\\n" @@ -4316,6 +5257,11 @@ msgstr "Käyttäjä %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Käyttäjä %1 Salasana: %2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "Käyttäjää '%1' ei löydetty" @@ -4324,68 +5270,80 @@ msgstr "Käyttäjää '%1' ei löydetty" msgid "User '%1' not found\\n" msgstr "Käyttäjää '%1' ei löydetty\\n" -#: etc/initialdata:125 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "" -#: html/Admin/Users/Prefs.html:59 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "Käyttäjätunnus" -#: html/Elements/SelectUsers:26 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "Käyttäjätunnus" -#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +#: 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 "Käyttäjän oikeudet" -#: html/Admin/Users/Modify.html:226 +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "Käyttäjää ei voitu luoda: %1" -#: lib/RT/User_Overlay.pm:262 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "Käyttäjä luotu" -#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "Käyttäjän luomat ryhmät" +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User notified" msgstr "Käyttäjää informoitu" -#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "Käyttäjän näkymä" -#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "Käyttäjätunnus" -#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +#: 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 "Käyttäjät" -#: html/Admin/Users/index.html:65 +#: html/Admin/Users/index.html:64 msgid "Users matching search criteria" msgstr "Hakua vastaavat käyttäjät" -#: html/Search/Elements/PickRestriction:51 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "Tapauksen arvo" -#: html/Admin/Elements/EditCustomField:40 +#: html/Admin/Elements/EditCustomField:56 msgid "Values" msgstr "Arvot" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "" @@ -4393,11 +5351,11 @@ msgstr "" msgid "Watcher loaded" msgstr "" -#: html/Admin/Elements/QueueTabs:42 +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "Tarkkailijat" -#: html/Admin/Elements/ModifyUser:56 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "Web-koodaus" @@ -4405,75 +5363,103 @@ msgstr "Web-koodaus" msgid "Wed." msgstr "Ke" -#: etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "" -#: etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "" -#: etc/upgrade/2.1.71:79 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "" -#: etc/initialdata:178 +#: 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:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "" -#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "Työ" -#: html/Admin/Elements/ModifyUser:70 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "Työpuhelin" -#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Tehty" -#: lib/RT/Ticket_Overlay.pm:3056 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "Omistat jo tämän tapauksen" -#: html/autohandler:121 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "Et ole valtuutettu käyttäjä" -#: lib/RT/Ticket_Overlay.pm:2930 +#: NOT FOUND IN SOURCE +msgid "You can access it with the Download button on the right." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Voit palauttaa vain tapauksia, jotka omistat itse tai jotka ovat ilman omistajaa" @@ -4481,29 +5467,28 @@ msgstr "Voit palauttaa vain tapauksia, jotka omistat itse tai jotka ovat ilman o msgid "You don't have permission to view that ticket.\\n" msgstr "Sinulla ei ole valtuuksia tarkastella tätä tapausta.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "Löysit %1 tapausta työjonosta %2" -#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +#: html/NoAuth/Logout.html:30 msgid "You have been logged out of RT." msgstr "Olet kirjautunut ulos RT:stä" -#: html/SelfService/Display.html:134 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "Sinulla ei ole valtuuksia luoda tapauksia tähän työjonoon." -#: lib/RT/Ticket_Overlay.pm:1895 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "Et voi luoda tapauksia tuohon työjonoon." -#: html/NoAuth/Logout.html:36 +#: html/NoAuth/Logout.html:34 msgid "You're welcome to login again" msgstr "Tervetuloa kirjautumaan järjestelmään uudelleen" -#: html/SelfService/Elements/MyRequests:25 -#. ($friendly_status) +#: NOT FOUND IN SOURCE msgid "Your %1 requests" msgstr "Sinun %1 tapaustasi" @@ -4511,11 +5496,11 @@ msgstr "Sinun %1 tapaustasi" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "RT:n ylläpitäjä on konfiguroinut RT:n käynnisävät sähköpostialiakset väärin." -#: etc/initialdata:429 etc/upgrade/2.1.71:146 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "" -#: etc/initialdata:463 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "" @@ -4523,15 +5508,15 @@ msgstr "" msgid "Your request was rejected" msgstr "" -#: etc/initialdata:384 etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "" -#: html/autohandler:136 html/autohandler:142 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "Käyttäjätunnuksesi tai salasanasi on väärä" -#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "Postinumero" @@ -4539,32 +5524,44 @@ msgstr "Postinumero" msgid "[no subject]" msgstr "" -#: html/User/Elements/DelegateRights:59 +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + +#: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "sallittu käyttäjälle %1" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 msgid "contains" msgstr "sisältää" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content" msgstr "sisältö" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "sisällön tyyppi" -#: lib/RT/Ticket_Overlay.pm:2282 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "kirjeenvaihtoa (luultavasti) ei ole lähetetty" -#: lib/RT/Ticket_Overlay.pm:2292 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "kirjeenvaihto lähetetty" -#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "päivää" @@ -4572,23 +5569,23 @@ msgstr "päivää" msgid "dead" msgstr "" -#: html/Search/Listing.html:75 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "poista" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "poistettu" -#: html/Search/Elements/PickRestriction:68 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "ei sisällä" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 msgid "doesn't contain" msgstr "ei sisällä" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "on yhtäsuuri" @@ -4596,15 +5593,15 @@ msgstr "on yhtäsuuri" msgid "false" msgstr "" -#: html/Elements/SelectAttachmentField:28 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "tiedostonimi" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "greater than" msgstr "on suurempi kuin" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "ryhmä %1" @@ -4617,19 +5614,23 @@ msgstr "tuntia" msgid "id" msgstr "numero" -#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + +#: 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 "on" -#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +#: 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 "ei ole" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "less than" msgstr "on pienempi kuin" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "sisältää" @@ -4637,11 +5638,11 @@ msgstr "sisältää" msgid "min" msgstr "min" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "minuuttia" -#: bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "muokkaukset\\n\\n" @@ -4649,19 +5650,23 @@ msgstr "muokkaukset\\n\\n" msgid "months" msgstr "kuukausia" -#: lib/RT/Queue_Overlay.pm:58 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "uusi" -#: html/Admin/Elements/EditScrips:43 +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + +#: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "" -#: html/Ticket/Elements/EditWatchers:28 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "ei mitään" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "not equal to" msgstr "on erisuuri kuin" @@ -4669,25 +5674,25 @@ msgstr "on erisuuri kuin" msgid "notlike" msgstr "" -#: lib/RT/Queue_Overlay.pm:59 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "avoin" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "oma ryhmä '%1' käyttäjälle '%2'" -#: lib/RT/Group_Overlay.pm:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "työjono %1 %2" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "hylätty" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "päätetty" @@ -4695,34 +5700,46 @@ msgstr "päätetty" msgid "sec" msgstr "sec" -#: lib/RT/Queue_Overlay.pm:60 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "jäädytetty" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "järjestelmä %1" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "järjestelmäryhmä '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:42 +#: html/Elements/Error:42 html/SelfService/Error.html:41 msgid "the calling component did not specify why" msgstr "kutsuva komponentti ei eritellyt syytä" -#: lib/RT/Group_Overlay.pm:210 +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "tapaus #%1 %2" +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "" + #: NOT FOUND IN SOURCE msgid "true" msgstr "tosi" -#: lib/RT/Group_Overlay.pm:216 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "kuvailematon ryhmä %1" @@ -4731,7 +5748,7 @@ msgstr "kuvailematon ryhmä %1" msgid "undescripbed group %1" msgstr "kuvailematon ryhmä %1" -#: lib/RT/Group_Overlay.pm:191 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "käyttäjä %1" diff --git a/rt/lib/RT/I18N/fr.po b/rt/lib/RT/I18N/fr.po index f580c958b..26ce0cb98 100644 --- a/rt/lib/RT/I18N/fr.po +++ b/rt/lib/RT/I18N/fr.po @@ -2,16 +2,16 @@ # msgid "" msgstr "" -"Project-Id-Version: RT 3.0.4pre1\n" +"Project-Id-Version: RT 3.2.0\n" "POT-Creation-Date: 2002-05-02 11:36+0800\n" -"PO-Revision-Date: 2003-07-03 02:00+0800\n" -"Last-Translator: Blaise Thauvin <blaise@fdn.fr>\n" +"PO-Revision-Date: 2004-07-05 02:00+0800\n" +"Last-Translator: Sébastien Person <sebastien.person@easter-eggs.com>\n" "Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:27 html/Elements/MyTickets:27 +#: NOT FOUND IN SOURCE msgid "#" msgstr "n°" @@ -20,19 +20,30 @@ msgid "#%1" msgstr "n°%1" #: 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 -#. ($Ticket->Id, $Ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) #. ($Ticket->id, $Ticket->Subject) #. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "#%1: %2" msgstr "n°%1: %2" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "%1 n°%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:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -42,7 +53,7 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%1 %2 %3 %4:%5:%6 %7" -#: lib/RT/Ticket_Overlay.pm:3569 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#: 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) @@ -54,13 +65,13 @@ msgstr "%1 %2 ajouté" msgid "%1 %2 ago" msgstr "il y a %1 %2" -#: lib/RT/Ticket_Overlay.pm:3575 lib/RT/Transaction_Overlay.pm:564 +#: 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 changé en %3" -#: lib/RT/Ticket_Overlay.pm:3572 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#: 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) @@ -71,7 +82,8 @@ msgstr "%1 %2 supprimé" msgid "%1 %2 of group %3" msgstr "%1 %2 du groupe %3" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 +#: 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 avec modèle %3" @@ -80,44 +92,67 @@ msgstr "%1 %2 avec modèle %3" msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 ce ticket\\n" -#: html/Search/Listing.html:56 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "Tickets %1 à %2" -#: bin/rt-crontool:168 bin/rt-crontool:175 bin/rt-crontool:181 +#: 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 - Un paramètre à passer à %2" -#: bin/rt-crontool:184 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Ecrit les mises à jour de statuts sur STDOUT" -#: bin/rt-crontool:178 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Précisez l'action que vous voulez utiliser" -#: bin/rt-crontool:172 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Précisez la condition que vous voulez utiliser" -#: bin/rt-crontool:165 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Précisez la recherche que vous voulez utiliser" -#: lib/RT/ScripAction_Overlay.pm:121 + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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 Tout droits réservé 1996-%3 %4" + +#: lib/RT/ScripAction_Overlay.pm:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1 ScripAction chargée" -#: lib/RT/Ticket_Overlay.pm:3602 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 ajouté(e) comme valeur de %2" @@ -134,19 +169,19 @@ msgstr "les alias %1 nécessitent un TicketId sur lequel travailler " msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "les alias %1 nécessitent un TicketId pour fonctionner avec (depuis %2) %3" -#: lib/RT/Link_Overlay.pm:116 lib/RT/Link_Overlay.pm:123 +#: 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 semble être un objet local, mais est introuvable dans la base de données" -#: html/Ticket/Elements/ShowDates:51 lib/RT/Transaction_Overlay.pm:481 +#: 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 par %2" -#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:675 lib/RT/Transaction_Overlay.pm:684 lib/RT/Transaction_Overlay.pm:687 +#: 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) @@ -154,7 +189,12 @@ msgstr "%1 par %2" msgid "%1 changed from %2 to %3" msgstr "%1 changé(e) de %2 à %3" -#: lib/RT/Interface/Web.pm:893 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "%1 n'a pas pu être positionné à %2" @@ -162,37 +202,48 @@ msgstr "%1 n'a pas pu être positionné à %2" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 n'a pas pu initialiser une transaction (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2867 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 ne peut pas mettre le statut à résolu. La base de données RT est peut être incohérente." +#: NOT FOUND IN SOURCE +msgid "%1 created" +msgstr "%1 créé(e)" + +#: NOT FOUND IN SOURCE +msgid "%1 deleted" +msgstr "%1 supprimé(e)" + #: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "Mes %1 tickets de plus hautes priorité" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "Mes %1 tickets à traiter en priorité..." -#: html/Elements/MyRequests:24 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "Mes %1 demandes les plus prioritaires..." -#: bin/rt-crontool:160 +#: bin/rt-crontool:157 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "%1 est un outil agissant sur les tickets depuis un planificateur externe tel que cron" -#: lib/RT/Queue_Overlay.pm:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 n'est plus un %2 pour cette queue." -#: lib/RT/Ticket_Overlay.pm:1587 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 n'est plus un %2 pour ce ticket." -#: lib/RT/Ticket_Overlay.pm:3658 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 n'est plus une valeur pour le champ personnalisé %2" @@ -201,15 +252,40 @@ msgstr "%1 n'est plus une valeur pour le champ personnalisé %2" msgid "%1 isn't a valid Queue id." msgstr "%1 n'est pas un identifiant de queue valide" -#: html/Ticket/Elements/ShowBasics:35 -#. ($TimeWorked) +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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" +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "les %1 derniers tickets sans propiétaire" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 non montré" +#: NOT FOUND IN SOURCE +msgid "%1 objects" +msgstr "%1 objets" + #: html/User/Elements/DelegateRights:75 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" @@ -240,22 +316,36 @@ msgstr "%1 résoudra tous les membres d'un ticket groupé résolu." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 va bloquer une base [locale] s'il dépend ou est membre d'une demande liée." -#: lib/RT/Transaction_Overlay.pm:433 +#: NOT FOUND IN SOURCE +msgid "%1's %2 objects" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "recherches sauvées de %1" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1: pas d'attachement spécifié" -#: html/Ticket/Elements/ShowTransaction:88 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransaction:85 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1176 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' est un statut invalide" @@ -272,7 +362,7 @@ msgstr "(Cocher la case pour supprimer un membre du groupe)" msgid "(Check box to delete scrip)" msgstr "(Cocher la case pour supprimer un scrip)" -#: 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/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 +#: 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 "(Cocher la case pour supprimer)" @@ -280,10 +370,22 @@ msgstr "(Cocher la case pour supprimer)" msgid "(Check boxes to delete)" msgstr "(Cocher la case pour supprimer)" -#: html/Ticket/Create.html:177 +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "(Cocher les cases pour désactiver les notifications aux destinataires listés)" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "(Cocher les cases pour activer les notifications aux destinataires listés)" + +#: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Entrer les numéros de tickets ou les URLs, séparés par des espaces)" +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + #: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) @@ -296,7 +398,7 @@ msgstr "(Non renseigné)" #: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" -msgstr "Pas de champ personnalisé" +msgstr "(Pas de champ personnalisé)" #: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" @@ -310,7 +412,11 @@ msgstr "(Aucun Scrip)" msgid "(No templates)" msgstr "Aucun modèle" -#: html/Ticket/Update.html:83 +#: NOT FOUND IN SOURCE +msgid "(None)" +msgstr "(Aucun)" + +#: 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 "(Envoie une copie cachée de cette mise à jour à une liste d'adresses email séparées par des virgules. Ceci <b>ne changera pas</b> les destinataires des mises à jour suivantes.)" @@ -322,7 +428,7 @@ msgstr "(Envoie une copie cachée de cette mise à jour à une liste d'adresses 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 "(Envoie une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ces personnes <b>recevront</b> les mises à jour suivantes.)" -#: html/Ticket/Update.html:79 +#: 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 "(Envoie une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ceci <b>ne changera pas</b> les destinataires des mises à jour suivantes.)" @@ -334,31 +440,51 @@ msgstr "Envoie une copie de cette mise à jour à une liste d'adresses email sé 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 "(Envoie une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ces personnes <b>recevront</b> les mises à jour suivantes.)" +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + #: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(vide)" +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + #: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "(aucun nom)" -#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(pas de sujet)" -#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:60 html/Ticket/Elements/ShowCustomFields:35 lib/RT/Transaction_Overlay.pm:534 +#: 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 "(non renseigné)" -#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:115 +#: NOT FOUND IN SOURCE +msgid "(no values)" +msgstr "(aucune valeur)" + +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(un seul ticket)" -#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(en attente d'approbation)" -#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "(en attente d'autres Collection)" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(en attente d'autres tickets)" @@ -370,10 +496,14 @@ msgstr "(groupe du demandeur)" msgid "(required)" msgstr "(exigé)" -#: html/Ticket/Elements/ShowTransaction:91 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(sans titre)" +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "Mes 25 tickets à traiter en priorité..." @@ -390,12 +520,20 @@ msgstr "<% $Ticket->Statut%>" msgid "<% $_ %>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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=\"Créer un ticket dans\"> %1" -#: etc/initialdata:203 +#: etc/initialdata:218 msgid "A blank template" msgstr "Un modèle vide" @@ -423,7 +561,7 @@ msgstr "ACE non trouvé" msgid "ACEs can only be created and deleted." msgstr "Les ACE peuvent seulement être créés et effacés." -#: bin/rt-commit-handler:754 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Interruption pour éviter des modifications de ticket involontaires" @@ -435,32 +573,40 @@ msgstr "A propos" msgid "Access control" msgstr "contrôle d'accès" -#: html/Admin/Elements/EditScrip:56 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "Action" -#: lib/RT/Scrip_Overlay.pm:146 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Action %1 non trouvée" -#: bin/rt-crontool:122 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "Action validée" -#: bin/rt-crontool:118 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "Action préparée..." -#: html/Search/Bulk.html:95 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "Ajouter" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "Ajouter AdminCC" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "Ajouter CC" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "Ajouter un critère" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "Ajouter d'autres fichiers" @@ -468,7 +614,7 @@ msgstr "Ajouter d'autres fichiers" msgid "Add Next State" msgstr "Ajouter étape suivant" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "Ajouter Demandeur" @@ -492,7 +638,11 @@ msgstr "Ajouter un scrip à cette queue" msgid "Add a scrip which will apply to all queues" msgstr "Ajouter un scrip qui s'ajoute à toutes les queues" -#: html/Search/Bulk.html:127 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "Ajouter des commentaires ou des réponses aux tickets sélectionnés" @@ -508,21 +658,21 @@ msgstr "Ajouter de nouveaux observateurs" msgid "AddNextState" msgstr "AjouterEtatSuivant" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Ajout groupe/utilisateur comme %1 pour cette queue" -#: lib/RT/Ticket_Overlay.pm:1471 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Ajout groupe/utilisateur comme %1 pour ce ticket" -#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "Adresse1" -#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:89 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "Adresse2" @@ -530,11 +680,11 @@ msgstr "Adresse2" msgid "Admin Cc" msgstr "Admin Cc" -#: etc/initialdata:280 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "Commentaire Admin" -#: etc/initialdata:259 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "Correspondance Admin " @@ -554,7 +704,7 @@ msgstr "configuration Gestion/Globale" msgid "Admin/Groups" msgstr "Gestion/Groupes" -#: html/Admin/Queues/Modify.html:24 html/Admin/Queues/Modify.html:28 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "Gestion/Queues/Essentiel" @@ -562,7 +712,7 @@ msgstr "Gestion/Queues/Essentiel" msgid "AdminAllPersonalGroups" msgstr "GérerTousGroupesPersonnels" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "AdminCc" @@ -574,15 +724,19 @@ msgstr "CommentaireAdministrateur" msgid "AdminCorrespondence" msgstr "CorrespondanceAdministrateur" -#: lib/RT/Queue_Overlay.pm:71 +#: NOT FOUND IN SOURCE +msgid "AdminCustomField" +msgstr "GérerChampPersonnalisé" + +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "GérerChampsPersonnalisés" -#: lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:146 msgid "AdminGroup" msgstr "GérerGroupes" -#: lib/RT/Group_Overlay.pm:147 +#: lib/RT/Group_Overlay.pm:148 msgid "AdminGroupMembership" msgstr "GérerAppartenanceGroupes" @@ -590,7 +744,7 @@ msgstr "GérerAppartenanceGroupes" msgid "AdminOwnPersonalGroups" msgstr "GérerGroupesPersonnelsPropres" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "GérerQueues" @@ -606,10 +760,18 @@ msgstr "Cc Administratif" msgid "Admins" msgstr "Administrateurs" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "Avancé" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Recherche avancée" +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + #: html/Elements/SelectDateRelation:35 msgid "After" msgstr "Après" @@ -618,19 +780,19 @@ msgstr "Après" msgid "Age" msgstr "Age" -#: NOT FOUND IN SOURCE -msgid "Alias" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Alias for" msgstr "Alias pour" -#: etc/initialdata:348 +#: etc/initialdata:363 msgid "All Approvals Passed" msgstr "Toutes les approbations obtenues" -#: html/Admin/Elements/EditCustomFields:95 +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Tous les champs personnalisés" @@ -642,7 +804,19 @@ msgstr "Toutes les queues" msgid "Always sends a message to the requestors independent of message sender" msgstr "Envoie toujours un message au demandeur indépendamment de l'expéditeur" -#: html/Elements/Tabs:55 +#: NOT FOUND IN SOURCE +msgid "Applies to" +msgstr "S'applique à" + +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "Appliquer" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "Appliquer vos changements" + +#: html/Elements/Tabs:58 msgid "Approval" msgstr "Approbation" @@ -667,11 +841,11 @@ msgstr "Approbation n°%1: Notes non enregistrées" msgid "Approval Details" msgstr "Détails de l'approbation" -#: etc/initialdata:336 +#: etc/initialdata:351 msgid "Approval Passed" msgstr "Approbations obtenues" -#: etc/initialdata:359 +#: etc/initialdata:374 msgid "Approval Rejected" msgstr "Approbations refusées" @@ -683,7 +857,7 @@ msgstr "Diagramme d'approbation" msgid "Approve" msgstr "Approuver" -#: etc/initialdata:486 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "Notes de l'approbateur: %1" @@ -695,11 +869,39 @@ msgstr "Avr." msgid "April" msgstr "Avril" -#: html/Elements/SelectSortOrder:34 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "Croissant" -#: html/Search/Bulk.html:136 html/SelfService/Update.html:32 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 +#: NOT FOUND IN SOURCE +msgid "Assign and remove custom fields" +msgstr "Fixer et supprimer les champs personnalisés" + +#: NOT FOUND IN SOURCE +msgid "AssignCustomFields" +msgstr "FixerChampsPersonnalisés" + +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "Attaché" @@ -707,19 +909,20 @@ msgstr "Attaché" msgid "Attach file" msgstr "Attacher un fichier" -#: html/Ticket/Create.html:97 html/Ticket/Update.html:87 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "Fichier attaché" -#: NOT FOUND IN SOURCE +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Attachement '%1' ne peut pas être chargé" -#: lib/RT/Transaction_Overlay.pm:441 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "Attachement créé" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "Nom de fichier de l'attachement" @@ -727,6 +930,10 @@ msgstr "Nom de fichier de l'attachement" msgid "Attachments" msgstr "Attachements" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "Attibut supprimé" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "Aoû." @@ -735,11 +942,11 @@ msgstr "Aoû." msgid "August" msgstr "Août" -#: html/Admin/Elements/ModifyUser:65 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "AuthSystem" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "RéponseAuto" @@ -751,6 +958,10 @@ msgstr "Réponse automatique aux demandeurs" msgid "AutoreplyToRequestors" msgstr "RéponseAutomtiqueAuxDemandeurs" +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "Colonnes disponibles" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Signature PGP invalide: %1\\n" @@ -759,8 +970,7 @@ msgstr "Signature PGP invalide: %1\\n" msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "Id d'attachement erroné. Impossible de trouver l'attachement '%1'\\n" -#: bin/rt-commit-handler:826 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "Données incorrectes dans %1" @@ -768,19 +978,19 @@ msgstr "Données incorrectes dans %1" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Numéro de transaction incorrect pour l'attachement. %1 doit être %2\\n" -#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Ticket/Elements/Tabs:89 html/User/Elements/GroupTabs:37 +#: 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 "Essentiel" -#: html/Ticket/Update.html:81 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:87 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/User/Groups/Modify.html:55 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "Assurez-vous de sauvegarder vos modifications" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:321 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "Avant" @@ -788,14 +998,22 @@ msgstr "Avant" msgid "Begin Approval" msgstr "Débuter l'approbation" -#: etc/initialdata:202 +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "Binaire" + +#: etc/initialdata:217 msgid "Blank" msgstr "Vide" -#: html/Search/Listing.html:78 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "URL prédéfinie pour cette recherche" +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + #: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "En-têtes courts" @@ -804,36 +1022,44 @@ msgstr "En-têtes courts" msgid "Bulk ticket update" msgstr "modification de tickets en masse" -#: lib/RT/User_Overlay.pm:1524 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "Les utilisateurs système ne peuvent être modifiés" -#: lib/RT/Queue_Overlay.pm:66 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "Le groupe/utilisateur peut-il voir cette queue" -#: lib/RT/CustomField_Overlay.pm:205 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "Impossible d'ajouter une valeur de champ personnalisé sans un nom" -#: lib/RT/Link_Overlay.pm:131 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "Impossible de trouver une recherche sauvée et de l'utiliser" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "Un ticket ne peut être lié à lui même" -#: lib/RT/Ticket_Overlay.pm:2844 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Impossible de fusionner un ticket à un ticket fusionné. Vous ne devriez jamais obtenir cette erreur" -#: lib/RT/Ticket_Overlay.pm:2646 lib/RT/Ticket_Overlay.pm:2725 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "Impossible de sauver cette recherche" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "Impossible de spécifier à la fois la base et la cible" -#: html/autohandler:113 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "Impossible de créer l'utilisateur: %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:44 html/Ticket/Update.html:76 lib/RT/ACE_Overlay.pm:87 +#: 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" @@ -841,7 +1067,11 @@ msgstr "Cc" msgid "Change password" msgstr "Changer le mot de passe" -#: html/Ticket/Create.html:100 html/Ticket/Update.html:90 +#: NOT FOUND IN SOURCE +msgid "Check All" +msgstr "Tout vérifier" + +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "Cocher la case pour supprimer" @@ -849,15 +1079,35 @@ msgstr "Cocher la case pour supprimer" msgid "Check box to revoke right" msgstr "Cocher la case pour retirer le droit" -#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:130 html/Ticket/Elements/EditLinks:68 html/Ticket/Elements/ShowLinks:56 +#: 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 "Fils" -#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:91 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "Ville" -#: html/Ticket/Elements/ShowDates:46 +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Clear All" +msgstr "Tout effacer" + +#: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "Fermé" @@ -873,19 +1123,15 @@ msgstr "Demandes closes" msgid "Closed tickets" msgstr "Tickets fermés" -#: NOT FOUND IN SOURCE -msgid "Code" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Command not understood!\\n" msgstr "Commande incomprise! \\n" -#: html/Ticket/Elements/ShowTransaction:165 html/Ticket/Elements/Tabs:152 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "Commenter" -#: html/Admin/Elements/ModifyQueue:44 html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "Adresse de commentaire" @@ -893,40 +1139,39 @@ msgstr "Adresse de commentaire" msgid "Comment not recorded" msgstr "Commentaire non enregistré" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "Commentaire sur le ticket" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "CommenterTicket" -#: html/Admin/Elements/ModifyUser:34 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "Commentaires" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:68 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "Commentaires (non envoyés aux demandeurs)" -#: html/Search/Bulk.html:131 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "Commentaires (non envoyés aux demandeurs)" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "Commentaires sur %1" -#: html/Admin/Users/Modify.html:184 html/Ticket/Elements/ShowRequestor:43 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "Commentaires sur cet utilisateur" -#: lib/RT/Transaction_Overlay.pm:543 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "Commentaires ajoutés" -#: lib/RT/Action/Generic.pm:139 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "tr(Commit Stubbed)" @@ -934,19 +1179,19 @@ msgstr "tr(Commit Stubbed)" msgid "Compile Restrictions" msgstr "Restrictions de compilation" -#: html/Admin/Elements/EditScrip:40 +#: html/Admin/Elements/EditScrip:41 msgid "Condition" msgstr "Condition" -#: bin/rt-crontool:108 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "La condition satisfait..." -#: lib/RT/Scrip_Overlay.pm:159 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "Condition non trouvée" -#: html/Elements/Tabs:49 +#: html/Elements/Tabs:52 msgid "Configuration" msgstr "Configuration" @@ -954,7 +1199,7 @@ msgstr "Configuration" msgid "Confirm" msgstr "Confirmer" -#: html/Admin/Elements/ModifyUser:59 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "ContactInfoSystem" @@ -962,23 +1207,31 @@ msgstr "ContactInfoSystem" msgid "Contacted date '%1' could not be parsed" msgstr "Date de contact ne peut pas être analysée" -#: html/Admin/Elements/ModifyTemplate:43 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "Contenu" +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "Type de contenu" + #: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "Le groupe n'a pas pu être créé" -#: etc/initialdata:271 +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "Copier" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "Courrier" -#: html/Admin/Elements/ModifyQueue:38 html/Admin/Queues/Modify.html:50 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "Adresse de correspondance" -#: lib/RT/Transaction_Overlay.pm:539 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "Courrier ajouté" @@ -986,7 +1239,7 @@ msgstr "Courrier ajouté" msgid "Correspondence not recorded" msgstr "Courrier non enregistré" -#: lib/RT/Ticket_Overlay.pm:3589 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "Impossible d'ajouter une nouvelle valeur de champ personnalisé pour ce ticket. " @@ -994,16 +1247,16 @@ msgstr "Impossible d'ajouter une nouvelle valeur de champ personnalisé pour ce msgid "Could not add new custom field value for ticket. %1 " msgstr "La valeur de champ personnalisé n'a pas pu être ajoutée. %1" -#: lib/RT/Ticket_Overlay.pm:3095 lib/RT/Ticket_Overlay.pm:3103 lib/RT/Ticket_Overlay.pm:3120 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "Impossible de changer l'intervenant. " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:165 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "Impossible de créer un champ personnalisé CustomField" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "Impossible de créer un groupe" @@ -1012,11 +1265,11 @@ msgstr "Impossible de créer un groupe" msgid "Could not create template: %1" msgstr "Impossible de créer un modèle : %1" -#: lib/RT/Ticket_Overlay.pm:1109 lib/RT/Ticket_Overlay.pm:352 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "Impossible de créer un ticket. Queue non indiquée" -#: lib/RT/User_Overlay.pm:267 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:483 +#: 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 "Impossible de créer un utilisateur" @@ -1032,11 +1285,11 @@ msgstr "Impossible de trouver le ticket numéro %1" msgid "Could not find group %1." msgstr "Impossible de trouver le groupe %1." -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1439 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "Impossible de trouver ou créer cet utilisateur" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1518 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "Impossible de trouver ce groupe ou utilisateur" @@ -1044,35 +1297,42 @@ msgstr "Impossible de trouver ce groupe ou utilisateur" msgid "Could not find user %1." msgstr "Impossible de trouver l'utilisateur %1." +#: NOT FOUND IN SOURCE +msgid "Could not load CustomField %1" +msgstr "Impossible de charger le champ personnalisé %1" + #: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "Impossible de charger ce groupe" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Impossible de faire de ce groupe/utilisateur un %1 pour cette queue" -#: lib/RT/Ticket_Overlay.pm:1460 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Impossible de faire de ce groupe/utilisateur un %1 pour ce ticket" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Impossible de supprimer ce groupe/utilisateur comme un %1 pour cette queue" -#: lib/RT/Ticket_Overlay.pm:1576 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "Impossible de supprimer ce groupe/utilisateur comme un %1 pour ce ticket" -#: lib/RT/Group_Overlay.pm:984 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "Impossible de sauver les informations utilisateur" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "Impossible d'ajouter un membre à ce groupe" -#: lib/RT/Ticket_Overlay.pm:3599 lib/RT/Ticket_Overlay.pm:3655 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Impossible de créer une transaction : %1" @@ -1085,15 +1345,15 @@ msgstr "Impossible de comprendre ce qu'il faut faire avec cette réponse gpg\\n" msgid "Couldn't find group\\n" msgstr "Groupe introuvable\\n" -#: lib/RT/Interface/Web.pm:902 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "Colonne introuvable" -#: lib/RT/Group_Overlay.pm:958 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "groupe/utilisateur introuvable" -#: lib/RT/CustomField_Overlay.pm:239 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "Valeur introuvable" @@ -1105,11 +1365,19 @@ msgstr "L'observateur n'a pas pu être trouvé" msgid "Couldn't find user\\n" msgstr "Utilisateur introuvable\\n" -#: lib/RT/CurrentUser.pm:111 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Impossible de charger %1 depuis la base de données des utilisateurs.\\n" +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "Impossible de charger la classe %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "Impossible de charger le champ personnalisé %1" + #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "KeywordSelects n'a pas pu être chargé" @@ -1127,11 +1395,15 @@ msgstr "Les scrips n'ont pas pu être chargés" msgid "Couldn't load group %1" msgstr "Impossible de charger le groupe %1" -#: lib/RT/Link_Overlay.pm:174 lib/RT/Link_Overlay.pm:183 lib/RT/Link_Overlay.pm:210 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "Impossible de charger le lien" -#: html/Admin/Elements/EditCustomFields:146 html/Admin/Queues/People.html:120 +#: NOT FOUND IN SOURCE +msgid "Couldn't load object %1" +msgstr "Impossible de charger l'objet %1" + +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "Impossible de charger la queue" @@ -1149,28 +1421,31 @@ msgstr "Impossible de charger le Scrip" msgid "Couldn't load template" msgstr "Impossible de charger le modèle" -#: html/Admin/Users/Prefs.html:78 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "Impossible de charger cet utilisateur (%1)" -#: html/SelfService/Display.html:108 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Impossible de charger le ticket '%1'" -#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:97 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "Pays" -#: html/Admin/Elements/CreateUserCalled:25 html/Ticket/Create.html:134 html/Ticket/Create.html:194 +#: 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 "Ajouter" -#: etc/initialdata:127 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "Ajouter des tickets" +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + #: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "Ajouter un Champ Personnalisé" @@ -1188,6 +1463,10 @@ msgstr "Ajouter un champ personnalisé à toutes les queues" msgid "Create a new Custom Field" msgstr "Ajouter un nouveaux champ personnalisé" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create a new global scrip" msgstr "Ajouter un nouveau scrip global" @@ -1216,7 +1495,7 @@ msgstr "Ajouter un nouveau modèle" msgid "Create a new ticket" msgstr "Ajouter un nouveau ticket" -#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:240 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "Ajouter un nouvel utilisateur" @@ -1245,6 +1524,14 @@ msgstr "Ajouter un modèle" msgid "Create a ticket" msgstr "Ajouter un ticket" +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Echec à la création de: %1 / %2 / %3" @@ -1253,7 +1540,7 @@ msgstr "Echec à la création de: %1 / %2 / %3" msgid "Create failed: %1/%2/%3" msgstr "Echec à la création de: %1/%2/%3" -#: etc/initialdata:129 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "Ajouter de nouveaux tickets basés sur le modèle de ce scrip" @@ -1261,15 +1548,15 @@ msgstr "Ajouter de nouveaux tickets basés sur le modèle de ce scrip" msgid "Create ticket" msgstr "Ajouter un ticket" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "Ajouter des tickets dans cette queue" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "Ajouter, supprimer et modifier des champs personnalisés" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "Ajouter, supprimer et modifier les queues" @@ -1285,11 +1572,11 @@ msgstr "Ajouter, supprimer et modifier les membres d'un groupe personnel" msgid "Create, delete and modify users" msgstr "Ajouter, supprimer et modifier les utilisateurs" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "CréerTicket" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:26 lib/RT/Ticket_Overlay.pm:1203 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "Créé" @@ -1298,11 +1585,27 @@ msgstr "Créé" msgid "Created CustomField %1" msgstr "Champ Personnalisé %1 ajouté" +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Modèle %1 créé" -#: html/Ticket/Elements/EditLinks:27 +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "Créateur" + +#: html/Elements/EditLinks:27 +msgid "Current Links" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Current Relationships" msgstr "Relations actuelles" @@ -1318,7 +1621,7 @@ msgstr "Membres actuels" msgid "Current rights" msgstr "Droits actuels" -#: html/Search/Listing.html:70 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "Critères de recherche courants" @@ -1335,47 +1638,55 @@ msgstr "Champ personnalisé n°%1" msgid "Custom Fields" msgstr "Champs Personnalisés" -#: html/Admin/Elements/EditScrip:72 +#: NOT FOUND IN SOURCE +msgid "Custom Fields for %1" +msgstr "Champs personnalisés pour %1" + +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "Programme de nettoyage d'action personnalisé" -#: html/Admin/Elements/EditScrip:64 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "Programme de préparation d'action personnalisé " -#: html/Admin/Elements/EditScrip:48 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "Condition personnalisée" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "Champs personnalisés %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: NOT FOUND IN SOURCE +msgid "Custom field %1 does not apply to this object" +msgstr "Le champ personnalisé %1 ne s'applique pas à cet objet" + +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Le champ personnalisé %1 a une valeur" -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Le champ personnalisé %1 n'a pas de valeur" -#: lib/RT/Ticket_Overlay.pm:3491 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Le champ personnalisé %1 est introuvable" -#: html/Admin/Elements/EditCustomFields:196 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "Champ personnalisé supprimé" -#: lib/RT/Ticket_Overlay.pm:3641 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "Le champ personnalisé est introuvable" -#: lib/RT/CustomField_Overlay.pm:349 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "La valeur du champ personnalisé %1 ne peut pas être trouvée pour le champ personnalisé %2" @@ -1384,19 +1695,19 @@ msgstr "La valeur du champ personnalisé %1 ne peut pas être trouvée pour le c msgid "Custom field value changed from %1 to %2" msgstr "Valeur de champ personnalisé modifié de %1 à %2" -#: lib/RT/CustomField_Overlay.pm:249 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "La valeur du champ personnalisé ne peut pas être effacée" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "La valeur du champ personnalisé ne peut par être trouvée" -#: lib/RT/CustomField_Overlay.pm:247 lib/RT/CustomField_Overlay.pm:357 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "La valeur du champ personnalisé est effacée" -#: lib/RT/Transaction_Overlay.pm:548 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "ChampPersonnalisé" @@ -1404,7 +1715,7 @@ msgstr "ChampPersonnalisé" msgid "Data error" msgstr "Erreur de données" -#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:92 html/Ticket/ModifyAll.html:43 +#: 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 "Dates" @@ -1420,27 +1731,35 @@ msgstr "Décembre" msgid "Default Autoresponse Template" msgstr "Modèle de réponse automatique par défaut" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Modèle de réponse automatique par défaut" -#: etc/initialdata:281 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "Queue par défaut" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "Modèle de commentaire administrateur par défaut" -#: etc/initialdata:260 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "Modèle de courrier administrateur par défaut" -#: etc/initialdata:272 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "Modèle de courrier par défaut" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "Modèle de transaction par défaut" -#: lib/RT/Transaction_Overlay.pm:694 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "Par défaut: %1/%2 modifié de %3 à %4" @@ -1461,27 +1780,39 @@ msgstr "DéléguerDroits" msgid "Delegation" msgstr "Délégation" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "Supprimer" -#: lib/RT/Queue_Overlay.pm:88 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "Supprimer les scrips sélectionnés" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "Supprimer des tickets" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "SupprimerTicket" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "Effacer cet objet pourrait briser l'intégrité référentielle" -#: lib/RT/Queue_Overlay.pm:293 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "Effacer cet objet briserait l'intégrité référentielle" -#: lib/RT/User_Overlay.pm:499 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "Effacer cet objet violerait l'intégrité référentielle" @@ -1497,7 +1828,7 @@ msgstr "Effacer cet objet violerait l'intégrité référentielle, c'est serait msgid "Deny" msgstr "Refuser" -#: html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:122 html/Ticket/Elements/EditLinks:46 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 +#: 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 "En dépend" @@ -1505,27 +1836,27 @@ msgstr "En dépend" msgid "Dependencies: \\n" msgstr "Dépendances : \\n" -#: lib/RT/Transaction_Overlay.pm:626 +#: lib/RT/Transaction_Overlay.pm:621 #. ($value) msgid "Dependency by %1 added" msgstr "Ajout de la dépendance par %1" -#: lib/RT/Transaction_Overlay.pm:655 +#: lib/RT/Transaction_Overlay.pm:661 #. ($value) msgid "Dependency by %1 deleted" msgstr "Suppression de la dépendance par %1" -#: lib/RT/Transaction_Overlay.pm:624 +#: lib/RT/Transaction_Overlay.pm:618 #. ($value) msgid "Dependency on %1 added" msgstr "Ajout de la dépendance de %1" -#: lib/RT/Transaction_Overlay.pm:653 +#: lib/RT/Transaction_Overlay.pm:658 #. ($value) msgid "Dependency on %1 deleted" msgstr "Suppression de la dépendance de %1" -#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:179 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:118 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 +#: 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 "Dépend de" @@ -1533,7 +1864,7 @@ msgstr "Dépend de" msgid "DependsOn" msgstr "DépendDe" -#: html/Elements/SelectSortOrder:34 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "Décroissant" @@ -1541,7 +1872,7 @@ msgstr "Décroissant" msgid "Describe the issue below" msgstr "Décrivez la situation ci-dessous" -#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 +#: 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 "Description" @@ -1549,19 +1880,23 @@ msgstr "Description" msgid "Details" msgstr "Détails" -#: html/Ticket/Elements/Tabs:84 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "Afficher" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "Afficher la liste des droits" -#: lib/RT/Queue_Overlay.pm:74 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "Afficher les colonnes" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "Afficher les modèles de Scrips pour cette queue" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "Afficher les Scrips pour cette queue" @@ -1569,10 +1904,18 @@ msgstr "Afficher les Scrips pour cette queue" msgid "Display mode" msgstr "Mode d'affichage" +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "Afficher les recherches sauvegardées de ce groupe" + #: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Afficher le ticket n°%1" +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "Distribué sous la version 2 de la license GNU GPL <a href=\"http://www.gnu.org/copyleft/gpl.html\">." + #: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "Faire tout et n'importe quoi" @@ -1581,15 +1924,23 @@ msgstr "Faire tout et n'importe quoi" msgid "Don't refresh this page." msgstr "Ne pas rafraîchir cette page." -#: html/Search/Elements/PickRestriction:113 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "Ne pas afficher le résultat de la recherche" -#: html/Ticket/Elements/ShowTransaction:91 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "Télécharger" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:42 lib/RT/Ticket_Overlay.pm:1207 +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download as a tab-delimited file" +msgstr "Télécharger en tant que fichier délimité par tabulations" + +#: 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 "Echéance" @@ -1597,8 +1948,7 @@ msgstr "Echéance" msgid "Due date '%1' could not be parsed" msgstr "Date d'échéance '%1' n'est pas comprise" -#: bin/rt-commit-handler:753 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "ERREUR: impossible de charger le ticket '%1' : %2.\\n" @@ -1610,12 +1960,24 @@ msgstr "Modifier" msgid "Edit Conditions" msgstr "Modifier les conditions" -#: html/Admin/Queues/CustomFields.html:44 +#: html/Admin/Queues/CustomFields.html:45 #. ($Queue->Name) msgid "Edit Custom Fields for %1" -msgstr "Editer les champs personnalisés pour %1" +msgstr "Modifier les champs personnalisés pour %1" + +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" -#: html/Search/Bulk.html:143 html/Ticket/ModifyLinks.html:35 +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" +msgstr "" + +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "Modifier la requête" + +#: NOT FOUND IN SOURCE msgid "Edit Relationships" msgstr "Modifier les relations" @@ -1626,7 +1988,11 @@ msgstr "Modifier les modèles pour la queue %1" #: NOT FOUND IN SOURCE msgid "Edit keywords" -msgstr "Modifier les mots clé" +msgstr "Modifier les mots clÃ" + +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "Modifier les recherches sauvegardées du groupe" #: NOT FOUND IN SOURCE msgid "Edit scrips" @@ -1640,14 +2006,20 @@ msgstr "Modifier les modèles système" msgid "Edit templates for %1" msgstr "Modifier les modèles pour %1" -#: html/Admin/Elements/ModifyQueue:24 html/Admin/Queues/Modify.html:118 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "ModifierRecherchesSaugardées" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "Modifier la configuration de la queue %1" -#: html/Admin/Elements/ModifyUser:24 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "Modifier la configuration de l'utilisateur %1" @@ -1670,26 +2042,30 @@ msgstr "Modifier les membres du groupe personnel %1" msgid "Editing template %1" msgstr "Modifie le modèle %1" -#: lib/RT/Ticket_Overlay.pm:2660 lib/RT/Ticket_Overlay.pm:2738 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "La base ou la cible doivent être spécifiées" -#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:41 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "Email" -#: lib/RT/User_Overlay.pm:247 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "Adresse email utilisée" -#: html/Admin/Elements/ModifyUser:41 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "EmailAddress" -#: html/Admin/Elements/ModifyUser:53 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "EmailEncoding" +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + #: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Activé (Décocher cette case désactive ce champ personnalisé)" @@ -1702,7 +2078,11 @@ msgstr "Activé (Décocher cette case désactive ce groupe)" msgid "Enabled (Unchecking this box disables this queue)" msgstr "Activé (Décocher cette case désactive cette queue)" -#: html/Admin/Elements/EditCustomFields:98 +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Champs personnalisés actifs" @@ -1710,23 +2090,47 @@ msgstr "Champs personnalisés actifs" msgid "Enabled Queues" msgstr "Queues actives" -#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:282 html/User/Groups/Modify.html:116 +#: 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 "Statut actif %1" -#: lib/RT/CustomField_Overlay.pm:427 +#: NOT FOUND IN SOURCE +msgid "Enabled status: %1" +msgstr "Statut actif: %1" + +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" -msgstr "Entrer plusieurs valeurs" +msgstr "Saisir plusieurs valeurs" -#: lib/RT/CustomField_Overlay.pm:424 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "Saisir les objets ou les URIs pour y lier les objets. Séparer les saisies par des espaces." + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" -msgstr "Entrer une seule valeur" +msgstr "Saisir une seule valeur" + +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "Saisir les queues ou les URIs pour y lier les queues. Séparer les saisies avec des espaces." -#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:111 +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "Saisir les tickets ou les URIs pour y lier les tickets. Séparer les saisies avec des espaces." + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Saisir les tickets ou URIs pour y lier les tickets. Séparer les saisies par des espaces." +#: NOT FOUND IN SOURCE +msgid "Enter up to %1 values" +msgstr "Saisir %1 valeurs maximum" + #: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "Erreur" @@ -1735,35 +2139,55 @@ msgstr "Erreur" msgid "Error adding watcher" msgstr "Erreur à l'ajout de l'observateur" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "Erreur de paramètres pour Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "Erreur de paramètres pour Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1392 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Erreur de paramètres pour Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1549 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "Erreur de paramètres pour Ticket->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "Échelonner les tickets" + +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "Estimer" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "Estimé" + #: etc/initialdata:20 msgid "Everyone" msgstr "Tout le monde" -#: bin/rt-crontool:193 +#: bin/rt-crontool:190 msgid "Example:" msgstr "Exemple:" -#: html/Admin/Elements/ModifyUser:63 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "ExternalAuthId" -#: html/Admin/Elements/ModifyUser:57 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "ExternalContactInfoId" @@ -1771,15 +2195,23 @@ msgstr "ExternalContactInfoId" msgid "Extra info" msgstr "Info supplémentaire" -#: lib/RT/User_Overlay.pm:363 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Recherche du pseudo groupe d'utilisateurs 'Priviligiés' infructueuse" -#: lib/RT/User_Overlay.pm:370 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Recherche du pseudo groupe d'utilisateurs 'non-privilégiés' infructueuse" -#: bin/rt-crontool:137 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Echec de chargement du module %1. (%2)" @@ -1792,15 +2224,31 @@ msgstr "Fév." msgid "February" msgstr "Février" +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "NomFichier" + +#: NOT FOUND IN SOURCE +msgid "Fill in multiple text areas" +msgstr "Saisir dans plusieurs champs de type texte" + +#: NOT FOUND IN SOURCE +msgid "Fill in one text area" +msgstr "Saisir dans un champ de type texte" + +#: NOT FOUND IN SOURCE +msgid "Fill in up to %1 text areas" +msgstr "Saisir dans %1 champs de type texte maximum" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "Fin" -#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "Priorité finale" -#: lib/RT/Ticket_Overlay.pm:1198 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "PrioritéFinale" @@ -1808,6 +2256,10 @@ msgstr "PrioritéFinale" msgid "Find group whose" msgstr "Trouver un groupe dont" +#: NOT FOUND IN SOURCE +msgid "Find groups whose" +msgstr "Trouver les groupes dont" + #: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "Accéder aux tickets en cours" @@ -1816,7 +2268,7 @@ msgstr "Accéder aux tickets en cours" msgid "Find people whose" msgstr "Trouver les gens dont" -#: html/Search/Listing.html:107 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "Rechercher des tickets" @@ -1824,36 +2276,40 @@ msgstr "Rechercher des tickets" msgid "Finish Approval" msgstr "Terminer l'approbation" -#: html/Ticket/Elements/Tabs:57 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "Premier" -#: html/Search/Listing.html:40 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "Première page" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "Foo Bar Baz" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:86 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "Forcer la modification" -#: html/Search/Listing.html:105 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "%quant(%1,ticket) trouvés" -#: lib/RT/Interface/Web.pm:904 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "Objet trouvé" -#: html/Admin/Elements/ModifyUser:43 +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "FormulaireLibre" + +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "SaisieLibreInfoContact" @@ -1873,11 +2329,15 @@ msgstr "Ven." msgid "Full headers" msgstr "En-têtes complets" +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "Obtenir le modèle àpartir d'un fichier" + #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "Obtention de l'utilisateur courant depuis une signature pgp\\n" -#: lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "Donné à %1" @@ -1886,6 +2346,10 @@ msgstr "Donné à %1" msgid "Global" msgstr "Global" +#: NOT FOUND IN SOURCE +msgid "Global Custom Fields" +msgstr "Champs personnalisés globaux" + #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "Mots clé globaux" @@ -1899,7 +2363,11 @@ msgstr "Scrips globaux" msgid "Global template: %1" msgstr "Modèle global: %1" -#: html/Admin/Elements/EditCustomFields:74 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:40 +#: 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!" @@ -1907,7 +2375,7 @@ msgstr "Go!" msgid "Good pgp sig from %1\\n" msgstr "Signature pgp valide pour %1\\n" -#: html/Search/Listing.html:49 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "Aller à la page" @@ -1919,7 +2387,7 @@ msgstr "Aller au ticket" msgid "Grand" msgstr "Accorder" -#: html/Ticket/Elements/AddWatchers:45 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "Groupe" @@ -1931,7 +2399,7 @@ msgstr "Groupe %1 %2 : %3" msgid "Group Rights" msgstr "Droits de groupe" -#: lib/RT/Group_Overlay.pm:964 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "Le groupe a déjà un membre" @@ -1944,15 +2412,15 @@ msgstr "Le groupe n'a pas pu être créé" msgid "Group could not be created: %1" msgstr "Le groupe %1 n'a pu être créé" -#: lib/RT/Group_Overlay.pm:496 +#: lib/RT/Group_Overlay.pm:497 msgid "Group created" msgstr "Groupe ajouté" -#: lib/RT/Group_Overlay.pm:1132 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "Un tel membre n'appartient pas au groupe" -#: lib/RT/Group_Overlay.pm:944 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1446 lib/RT/Ticket_Overlay.pm:1524 +#: 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 "Groupe introuvable" @@ -1968,24 +2436,44 @@ msgstr "Groupe non spécifié.\\n" msgid "Groups" msgstr "Groupes" -#: lib/RT/Group_Overlay.pm:970 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "Les groupes ne peuvent pas être membres de leurs membres" +#: NOT FOUND IN SOURCE +msgid "Groups matching search criteria" +msgstr "Groupes correspondant au critère de recherche" + +#: NOT FOUND IN SOURCE +msgid "Groups this user belongs to" +msgstr "Cette utilisateur appartient aux groupes" + #: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "Bonjour!" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "Bonjour, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:87 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "Historique" -#: html/Admin/Elements/ModifyUser:67 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the group %1" +msgstr "Historique du groupe %1" + +#: NOT FOUND IN SOURCE +msgid "History of the user %1" +msgstr "Historique de l'utilisateur %1" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "Téléphone domicile" @@ -1993,7 +2481,7 @@ msgstr "Téléphone domicile" msgid "Homepage" msgstr "Page d'accueil" -#: lib/RT/Base.pm:73 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "J'ai %quant (%1, toupie à béton)" @@ -2002,7 +2490,7 @@ msgstr "J'ai %quant (%1, toupie à béton)" msgid "I have [quant,_1,concrete mixer]." msgstr "J'ai %quant (%1, toupie à béton)" -#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1018 +#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 msgid "Id" msgstr "Identifiant" @@ -2010,11 +2498,19 @@ msgstr "Identifiant" msgid "Identity" msgstr "Identité" -#: etc/initialdata:411 etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Si une approbation est refusée, rejette l'original et supprime les approbations en attente" -#: bin/rt-crontool:189 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "Si aucune queue n'est spécifée, créer les tickets dans cette queue." + +#: 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 "Si cet outil était setgid, un utilisateur local mal intentionné pourrait l'utiliser pour obtenir un access administrateur à RT" @@ -2022,18 +2518,30 @@ msgstr "Si cet outil était setgid, un utilisateur local mal intentionné pourra msgid "If you've updated anything above, be sure to" msgstr "Si vous avez fait une modification, assurez vous de" -#: lib/RT/Interface/Web.pm:896 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "Valeur incorrecte pour %1" -#: lib/RT/Interface/Web.pm:899 +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "Image" + +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "Champ non modifiable" -#: html/Admin/Elements/EditCustomFields:73 +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Inclure les champs personnalisés désactivés dans la liste" +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "Inclure les groupes inactifs dans le listage." + #: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "Afficher les queues inactives." @@ -2042,15 +2550,15 @@ msgstr "Afficher les queues inactives." msgid "Include disabled users in search." msgstr "Inclure les utilisateurs désactivés dans le résultat" -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "Priorité initiale" -#: lib/RT/Ticket_Overlay.pm:1197 lib/RT/Ticket_Overlay.pm:1199 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "PrioritéInitiale" -#: lib/RT/ScripAction_Overlay.pm:104 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "Erreur à l'entrée" @@ -2058,16 +2566,16 @@ msgstr "Erreur à l'entrée" msgid "Interest noted" msgstr "Votre intéret est noté" -#: lib/RT/Ticket_Overlay.pm:3866 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "Erreur interne" -#: lib/RT/Record.pm:142 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Erreur interne: %1" -#: lib/RT/Group_Overlay.pm:643 +#: lib/RT/Group_Overlay.pm:644 msgid "Invalid Group Type" msgstr "Type de groupe invalide" @@ -2079,15 +2587,15 @@ msgstr "Droit invalide" msgid "Invalid Type" msgstr "Type invalide" -#: lib/RT/Interface/Web.pm:901 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "Données invalides" -#: lib/RT/Ticket_Overlay.pm:457 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Intervenant invalide, affectation à 'personne'" -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:250 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "Queue invalide" @@ -2095,28 +2603,28 @@ msgstr "Queue invalide" msgid "Invalid right" msgstr "Droit invalide" -#: lib/RT/Record.pm:117 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "Queue invalide pour %1" -#: lib/RT/Ticket_Overlay.pm:3498 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "Valeur incorrecte pour le champ personnalisé" -#: lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "Valeur de statut invalide" -#: bin/rt-crontool:190 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "Il est extrêmement important que les utilisateurs non authorisés n'aient pas accès à cet outil" -#: bin/rt-crontool:191 +#: 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 "Il est suggéré de créer un utilisateur unix non privilégié appartenant au bon groupe et ayant accès à RT pour utiliser cet outil" -#: bin/rt-crontool:162 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "Il faut plusieurs paramètres:" @@ -2132,7 +2640,7 @@ msgstr "Jan." msgid "January" msgstr "Janvier" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:149 msgid "Join or leave this group" msgstr "Rejoignez ou quittez ce groupe" @@ -2144,7 +2652,7 @@ msgstr "Jul." msgid "July" msgstr "Juillet" -#: html/Ticket/Elements/Tabs:98 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "Tout" @@ -2160,23 +2668,31 @@ msgstr "Juin" msgid "Keyword" msgstr "Mot Clé" -#: html/Admin/Elements/ModifyUser:51 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "Lang" -#: html/Ticket/Elements/Tabs:72 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "Langue" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "Dernier" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:38 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "Dernier contact" +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + #: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "Date dernier contact" -#: html/Search/Elements/TicketHeader:40 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "Dernière notification" @@ -2188,7 +2704,11 @@ msgstr "Date dernière MAJ" msgid "LastUpdated" msgstr "DernièreMAJ" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "DernièreMAJPar" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "Restant" @@ -2208,25 +2728,25 @@ msgstr "Limitation des intervenants à %1 %2" msgid "Limiting queue to %1 %2" msgstr "Limitation de la queue à %1 %2" -#: lib/RT/Ticket_Overlay.pm:2752 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "Le lien existe déja" -#: lib/RT/Ticket_Overlay.pm:2764 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "Le lien ne peut être ajouté" -#: lib/RT/Ticket_Overlay.pm:2772 lib/RT/Ticket_Overlay.pm:2784 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "Le lien est ajouté (%1)" -#: lib/RT/Ticket_Overlay.pm:2685 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "Le lien est effacé (%1)" -#: lib/RT/Ticket_Overlay.pm:2691 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "Lien introuvable" @@ -2239,72 +2759,96 @@ msgstr "Lier le ticket n°%1" msgid "Link ticket %1" msgstr "Lier au ticket %1" -#: html/Ticket/Elements/Tabs:96 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "Relations" -#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:84 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "Charge" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "Charger les recherches sauvées:" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "Modules perl chargés" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "Localisation" -#: lib/RT.pm:162 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Le répertoire de log %1 est introuvable ou en lecture seule. \\n RT ne peut pas démarrer" -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Connecté en tant que %1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +#: 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 "Connexion" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "Déconnexion" -#: html/Search/Bulk.html:85 +#: NOT FOUND IN SOURCE +msgid "Lookup type mismatch" +msgstr "Faire attention aux types différents" + +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "Attribuer" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "Appliquer Statut" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "Appliquer date d'échéance" -#: html/Search/Bulk.html:119 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "Appliquer date de résolution" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "Appliquer date de début" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "Appliquer date d'ouverture" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "Appliquer Age" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "Appliquer priorité" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "Appliquer queue" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "Changer le sujet" +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Manage custom fields and custom field values" +msgstr "Gérer les champs personnalisés et leur valeurs" + #: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "Gérer les groupes et leurs membres" @@ -2337,25 +2881,25 @@ msgstr "Mai" msgid "May." msgstr "Mai." -#: lib/RT/Transaction_Overlay.pm:635 +#: lib/RT/Transaction_Overlay.pm:634 #. ($value) msgid "Member %1 added" msgstr "Membre %1 ajouté" -#: lib/RT/Transaction_Overlay.pm:664 +#: lib/RT/Transaction_Overlay.pm:674 #. ($value) msgid "Member %1 deleted" msgstr "Membre %1 supprimé" -#: lib/RT/Group_Overlay.pm:981 +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "Membre ajouté" -#: lib/RT/Group_Overlay.pm:1139 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "Membre supprimé" -#: lib/RT/Group_Overlay.pm:1143 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "Membre non supprimé" @@ -2371,45 +2915,86 @@ msgstr "MembreDe" msgid "Members" msgstr "Membres" -#: lib/RT/Transaction_Overlay.pm:633 +#: lib/RT/Transaction_Overlay.pm:631 #. ($value) msgid "Membership in %1 added" msgstr "Appartenance à %1 ajoutée" -#: lib/RT/Transaction_Overlay.pm:662 +#: lib/RT/Transaction_Overlay.pm:671 #. ($value) msgid "Membership in %1 deleted" msgstr "Appartenance à %1 supprimée" -#: lib/RT/Ticket_Overlay.pm:2941 +#: NOT FOUND IN SOURCE +msgid "Memberships" +msgstr "Affiliations" + +#: NOT FOUND IN SOURCE +msgid "Memberships of the user %1" +msgstr "Affiliations de l'utilisateur %1" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "Fusion réussie" -#: lib/RT/Ticket_Overlay.pm:2861 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Echec de fusion. Ne peut appliquer EffectiveId" -#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:114 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "Fusionner dans" -#: html/Search/Bulk.html:137 html/Ticket/Update.html:100 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "Fusionné avec %1" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "Message" -#: lib/RT/Interface/Web.pm:903 +#: NOT FOUND IN SOURCE +msgid "Message body not shown because it is too large or is not plain text." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "Le message ne peut être sauvegardé" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "Message sauvegardé" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "Les messages relatifs à ce ticket ne seront pas envoyés à..." + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "Clé primaire manquante? : %1" -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:53 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "Mobile" -#: html/Admin/Elements/ModifyUser:71 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "MobilePhone" -#: lib/RT/Queue_Overlay.pm:69 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "Modifier la liste de droits" @@ -2417,15 +3002,31 @@ msgstr "Modifier la liste de droits" msgid "Modify Custom Field %1" msgstr "Modifier champ personnalisé %1" +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all %1" +msgstr "Modifier les champs personnalisés qui s'appliquent à tous les %1" + #: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "Modifier les champs personnalisés globaux" -#: lib/RT/Queue_Overlay.pm:72 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "Modifier les modèles de Scrips pour cette queue" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "Modifier les Scrips pour cette queue" @@ -2437,6 +3038,10 @@ msgstr "Modifier ACLs système" msgid "Modify Template %1" msgstr "Modifier le modèle %1" +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + #: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" @@ -2455,6 +3060,14 @@ msgstr "Modifier le scrip pour la queue %1" msgid "Modify a scrip which applies to all queues" msgstr "Modiier le scrip qui s'applique à toutes les queues" +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify associated objects for %1" +msgstr "Modifier les objets associés à %1" + #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "Modifier les dates pur n°%1" @@ -2497,10 +3110,14 @@ msgstr "Modifier les droits utilisateurs globaux" msgid "Modify global user rights." msgstr "Modifier les droits utilisateurs globaux" -#: lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:146 msgid "Modify group metadata or delete group" msgstr "Modifier les métadonnées ou supprimer le groupe" +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "Modifier les droits de groupe pour le champ personnalisé %1" + #: 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" @@ -2511,7 +3128,7 @@ msgstr "Modifier les droits du groupe %1" msgid "Modify group rights for queue %1" msgstr "Modifier les droits de groupe pour la queue %1" -#: lib/RT/Group_Overlay.pm:147 +#: lib/RT/Group_Overlay.pm:148 msgid "Modify membership roster for this group" msgstr "Modifier le membership roster pour ce groupe" @@ -2554,11 +3171,11 @@ msgstr "Modifier les modèles globaux" msgid "Modify the group %1" msgstr "Modifier le groupe %1" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "Modifier les observateurs de la queue" -#: html/Admin/Users/Modify.html:235 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Modifier l'utilisateur %1" @@ -2573,10 +3190,14 @@ msgstr "Modifier le ticket # %1" msgid "Modify ticket #%1" msgstr "Modifier le ticket n°%1" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "Modifier les tickets" +#: NOT FOUND IN SOURCE +msgid "Modify user rights for custom field %1" +msgstr "Modifier les droits utilisateurs pour le champ personnalisé %1" + #: 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" @@ -2591,19 +3212,19 @@ msgstr "Modifier les droits utilisateurs pour la queue %1" msgid "Modify watchers for queue '%1'" msgstr "Modifier les observateurs dela queue '%1'" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "ModifierACL" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:149 msgid "ModifyOwnMembership" msgstr "ModifierPropresAppartenances" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "ModifierObservateurs" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "ModifierScrips" @@ -2611,11 +3232,11 @@ msgstr "ModifierScrips" msgid "ModifySelf" msgstr "ModifierDonnéesPerso" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "ModifierModèle" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "ModifierTicket" @@ -2623,11 +3244,15 @@ msgstr "ModifierTicket" msgid "Mon." msgstr "Lun." -#: html/Ticket/Elements/ShowRequestor:41 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "Plus d'info sur %1" +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "Déplacer" + #: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "Aller en bas" @@ -2640,14 +3265,14 @@ msgstr "Aller en haut" msgid "Multiple" msgstr "Multiple" -#: lib/RT/User_Overlay.pm:238 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "Attribut 'Nom' obligatoire" #: html/SelfService/Elements/MyRequests:48 #. ($friendly_status) msgid "My %1 tickets" -msgstr "Mes %1 tickets" +msgstr "Mes tickets %1s" #: NOT FOUND IN SOURCE msgid "My Approvals" @@ -2657,19 +3282,27 @@ msgstr "Mes approbations" msgid "My approvals" msgstr "Mes approbations" -#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "Mes recherches" + +#: 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 "Nom" -#: lib/RT/User_Overlay.pm:245 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "Nom utilisé" +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Approbation de l'administrateur système nécessaire" -#: html/Ticket/Elements/ShowDates:51 +#: html/Ticket/Elements/ShowDates:52 msgid "Never" msgstr "Jamais" @@ -2677,23 +3310,39 @@ msgstr "Jamais" msgid "New" msgstr "Nouveau" -#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/User/Prefs.html:64 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "Nouveau mot de passe" -#: etc/initialdata:317 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "Nouvelles approbations en attente" -#: html/Ticket/Elements/EditLinks:110 +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "Nouvelle requête" + +#: NOT FOUND IN SOURCE msgid "New Relationships" msgstr "Nouvelles relations" -#: html/Ticket/Elements/Tabs:35 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "Nouvelle recherche" -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:39 +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + +#: 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 "Nouveau champ personnalisé" @@ -2705,7 +3354,7 @@ msgstr "Nouveau groupe" msgid "New password" msgstr "Nouveau mot de passe" -#: lib/RT/User_Overlay.pm:764 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "Notification de nouveau mot de passe envoyée" @@ -2737,11 +3386,11 @@ msgstr "Nouveau modèle" msgid "New ticket" msgstr "Nouveau ticket" -#: lib/RT/Ticket_Overlay.pm:2828 +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "Nouveau ticket inconnu" -#: html/Admin/Elements/UserTabs:51 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "Nouvel utilisateur" @@ -2753,39 +3402,59 @@ msgstr "Nouvel utilisateur appelé" msgid "New watchers" msgstr "Nouveaux observateurs" -#: html/Admin/Users/Prefs.html:41 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "Nouveaux paramètres d'affichage" -#: html/Ticket/Elements/Tabs:68 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "Suivant" -#: html/Search/Listing.html:47 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "Page suivante" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "Page suivante" -#: html/Admin/Elements/ModifyUser:49 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "Surnom" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:45 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "Surnom" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:104 +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "Aucune classe définie" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" -msgstr "Pas de CustomField" +msgstr "Aucun champ personnalisé" + +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "Aucun champ personnalisé défini" #: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "Aucun groupe défini" +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "Aucune requête" + #: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "Aucune queue définie" -#: bin/rt-crontool:55 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "Aucun utilisateur RT trouvé. Merci de consulter votre administrateur RT" @@ -2793,7 +3462,7 @@ msgstr "Aucun utilisateur RT trouvé. Merci de consulter votre administrateur RT msgid "No Template" msgstr "Pas de modèle" -#: bin/rt-commit-handler:763 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "Aucun ticket spécifié. Annulation de ticket" @@ -2805,7 +3474,7 @@ msgstr "Aucun ticket spécifié. Annulation des modifications de tickets\\n\\n" msgid "No action" msgstr "Pas d'action" -#: lib/RT/Interface/Web.pm:898 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "Aucune colonne spécifiée" @@ -2813,49 +3482,56 @@ msgstr "Aucune colonne spécifiée" msgid "No command found\\n" msgstr "Commande introuvable\\n" -#: html/Elements/ViewUser:35 html/Ticket/Elements/ShowRequestor:44 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "Pas de commentaires concernant cet utilisateur" -#: lib/RT/Ticket_Overlay.pm:2220 lib/RT/Ticket_Overlay.pm:2288 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "Pas de texte dans le courrier" -#: lib/RT/Action/Generic.pm:149 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: 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 "Aucune description disponible pour %1" -#: lib/RT/Users_Overlay.pm:150 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "Aucun groupe spécifié" -#: lib/RT/User_Overlay.pm:982 +#: NOT FOUND IN SOURCE +msgid "No groups matching search criteria found." +msgstr "Aucun groupe trouvé d'après le critère de recherche." + +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "Aucun messages attachés" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "Pas de mot de passe configuré" -#: lib/RT/Queue_Overlay.pm:260 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "Permission refusée pour la création de queue" -#: lib/RT/Ticket_Overlay.pm:360 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "Vous n'êtes pas autorisé à créer un ticket dans cette queue '%1'" -#: lib/RT/User_Overlay.pm:211 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "Permission refusée pour la création d'utilisateurs" -#: html/SelfService/Display.html:117 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "Pas de permission pour afficher ce ticket" -#: html/SelfService/Update.html:51 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "Pas de permission pour afficher le ticket mis à jour" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1505 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "Aucun groupe/utilisateur spécifié" @@ -2867,7 +3543,7 @@ msgstr "Aucun groupe/utilisateur sélectionné" msgid "No queues matching search criteria found." msgstr "Pas de queue correspondant aux critères de recherche" -#: html/Admin/Elements/SelectRights:80 +#: html/Admin/Elements/SelectRights:81 msgid "No rights found" msgstr "Aucun droit trouvé" @@ -2875,15 +3551,19 @@ msgstr "Aucun droit trouvé" msgid "No rights granted." msgstr "Aucun droit accordé" -#: html/Search/Bulk.html:160 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "Pas de critère de recherche." +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "Pas de sujet" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "Aucun numéro de ticket spécifié." -#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "Aucun type de transaction spécifié." @@ -2895,19 +3575,19 @@ msgstr "Aucun utilisateur ou adresse email spécifié" msgid "No users matching search criteria found." msgstr "Aucun utilisateur ne correspond aux critères de recherche." -#: bin/rt-commit-handler:643 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Aucun utilisateur RT valide trouvé. Gestionnaire de cvs RT inaccessible. Merci de contacter votre administrateur RT.\\n" -#: lib/RT/Interface/Web.pm:895 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "Aucune valeur envoyée à _Set!\\n" -#: html/Search/Elements/TicketRow:36 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "Personne" -#: lib/RT/Interface/Web.pm:900 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "Champ inexistant?" @@ -2915,7 +3595,7 @@ msgstr "Champ inexistant?" msgid "Not logged in" msgstr "Non loggé" -#: html/Elements/Header:59 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "Non connecté" @@ -2935,23 +3615,31 @@ msgstr "Fonction pas encore disponible..." msgid "Notes" msgstr "Notes" -#: lib/RT/User_Overlay.pm:767 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "Impossible d'envoyer la notification" -#: etc/initialdata:93 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "Avertir les AdminCCs" -#: etc/initialdata:89 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "Avertir les AdminCCs par un commentaire" -#: etc/initialdata:120 +#: 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 "Avertir les autres destinataires" -#: etc/initialdata:116 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "Avertir les autres destinataires par un commentaire" @@ -2963,19 +3651,19 @@ msgstr "Avertir l'intervenant" msgid "Notify Owner as Comment" msgstr "Avertir l'intervenant par un commentaire" -#: etc/initialdata:361 +#: etc/initialdata:376 msgid "Notify Owner of their rejected ticket" msgstr "Avertir l'Intervenant du rejet de son ticket" -#: etc/initialdata:350 +#: etc/initialdata:365 msgid "Notify Owner of their ticket has been approved by all approvers" msgstr "Avertir l'Intervenant de l'approbation de son ticket par tous les approbateurs" -#: etc/initialdata:338 +#: etc/initialdata:353 msgid "Notify Owner of their ticket has been approved by some approver" msgstr "Avertir l'Intervenant de l'approbation de son ticket par un des approbateurs" -#: etc/initialdata:319 etc/upgrade/2.1.71:17 +#: etc/initialdata:334 msgid "Notify Owners and AdminCcs of new items pending their approval" msgstr "Avertir les intervenants et les AdminCCs de nouveaux éléments attendant leur approbation" @@ -2983,19 +3671,19 @@ msgstr "Avertir les intervenants et les AdminCCs de nouveaux éléments attendan msgid "Notify Requestors" msgstr "Avertir les demandeurs" -#: etc/initialdata:103 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "Avertir les demandeurs et les Ccs" -#: etc/initialdata:98 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "Avertir les demandeurs et les CC par un commentaire" -#: etc/initialdata:112 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "Avertir les demandeurs, CCs et AdminCCs" -#: etc/initialdata:108 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Avertir les demandeurs, CCs et AdminCCs par un commentaire" @@ -3007,14 +3695,22 @@ msgstr "Nov." msgid "November" msgstr "Novembre" -#: lib/RT/Record.pm:156 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "L'objet n'a pas pu être ajouté" -#: lib/RT/Record.pm:175 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "Objet ajouté" +#: NOT FOUND IN SOURCE +msgid "Object of type %1 cannot take custom fields" +msgstr "Les objets de type %1 ne peuvent avoir de champs personnalisés" + +#: NOT FOUND IN SOURCE +msgid "Object type mismatch" +msgstr "Le type d'objet ne correspond pas" + #: lib/RT/Date.pm:420 msgid "Oct." msgstr "Oct." @@ -3023,39 +3719,55 @@ msgstr "Oct." msgid "October" msgstr "Octobre" +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "Déconnecté" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "Édition hors ligne©" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "Upload hors ligne" + #: html/Elements/SelectDateRelation:34 msgid "On" msgstr "Le" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "Lors d'un commentaire" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "Lors d'un courrier" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "Lors d'une création" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "Lors d'un changement d'intervenant" -#: etc/initialdata:177 +#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 +msgid "On Priority Change" +msgstr "" + +#: etc/initialdata:192 msgid "On Queue Change" msgstr "Lors d'un changement de queue" -#: etc/initialdata:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "Lors de la résolution/clôture" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "Lors d'un changement de statut" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "Lors d'une transaction" @@ -3073,7 +3785,7 @@ msgstr "Ne montrer que les approbations pour les demandes créées avant %1" msgid "Open" msgstr "Ouvert" -#: html/Ticket/Elements/Tabs:135 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Ouvrir" @@ -3083,25 +3795,29 @@ msgstr "Ouvrir les demandes" #: html/SelfService/Elements/Tabs:41 msgid "Open tickets" -msgstr "Ouvrir les tickets" +msgstr "Tickets ouverts" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "Ouvrir les tickets (depuis une liste) dans une nouvelle fenêtre." -#: html/Admin/Users/Prefs.html:39 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "Ouvrir les tickets (depuis une liste) dans une autre fenêtre." -#: etc/initialdata:132 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "Ouvrir les tickets lors d'une correspondance" -#: html/Search/Elements/PickRestriction:100 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "Trier par" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Ranger et classer" -#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Elements/SelectUsers:28 html/User/Prefs.html:85 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "Organisation" @@ -3110,19 +3826,31 @@ msgstr "Organisation" msgid "Originating ticket: #%1" msgstr "Ticket source: n°%1" -#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "Mail sortant suite à l'enregistrement d'un commentaire" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "Mail sortant enregistré" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "Temps dépassé, priorité déplacée" -#: lib/RT/Queue_Overlay.pm:86 +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "Tickets propres" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "PrendreTicket" -#: etc/initialdata:38 html/Elements/MyRequests:31 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:62 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "Intervenant" @@ -3130,32 +3858,37 @@ msgstr "Intervenant" msgid "Owner changed from %1 to %2" msgstr "Intervenant changé de %1 en %2" -#: lib/RT/Transaction_Overlay.pm:582 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "Le propriétaire ne peu être sauvé" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Intervenant forcé de %1 à %2" -#: html/Search/Elements/PickRestriction:30 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "L'intervenant est" -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:55 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "Page %1 sur %2" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "Bipeur" -#: html/Admin/Elements/ModifyUser:73 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "PagerPhone" -#: NOT FOUND IN SOURCE -msgid "Parent" -msgstr "" - -#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:126 html/Ticket/Elements/EditLinks:57 html/Ticket/Elements/ShowLinks:46 +#: 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 "Parents" -#: html/Elements/Login:52 html/User/Prefs.html:60 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "Mot de passe" @@ -3163,32 +3896,36 @@ msgstr "Mot de passe" msgid "Password Reminder" msgstr "Pense-bête pour votre mot de passe" -#: lib/RT/User_Overlay.pm:228 lib/RT/User_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "Mot de passe trop court" -#: html/Admin/Users/Modify.html:290 html/User/Prefs.html:171 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Mot de passe: %1" -#: html/Admin/Users/Modify.html:292 +#: html/Admin/Users/Modify.html:318 msgid "Passwords do not match." msgstr "Les mots de passes sont différents" -#: html/User/Prefs.html:173 +#: html/User/Prefs.html:211 msgid "Passwords do not match. Your password has not been changed" msgstr "Les mots de passe sont différents. Votre mot de passe n'a pas été modifié" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:95 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "Personnes" -#: etc/initialdata:125 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "Réaliser une action définie par l'utilisateur" -#: 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/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:201 lib/RT/CustomField_Overlay.pm:233 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1098 lib/RT/Group_Overlay.pm:1107 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1162 lib/RT/Group_Overlay.pm:1168 lib/RT/Group_Overlay.pm:425 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:903 lib/RT/Group_Overlay.pm:907 lib/RT/Group_Overlay.pm:920 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:196 lib/RT/Scrip_Overlay.pm:433 lib/RT/Template_Overlay.pm:283 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1377 lib/RT/Ticket_Overlay.pm:1387 lib/RT/Ticket_Overlay.pm:1401 lib/RT/Ticket_Overlay.pm:1535 lib/RT/Ticket_Overlay.pm:1544 lib/RT/Ticket_Overlay.pm:1557 lib/RT/Ticket_Overlay.pm:1906 lib/RT/Ticket_Overlay.pm:2044 lib/RT/Ticket_Overlay.pm:2208 lib/RT/Ticket_Overlay.pm:2275 lib/RT/Ticket_Overlay.pm:2634 lib/RT/Ticket_Overlay.pm:2715 lib/RT/Ticket_Overlay.pm:2819 lib/RT/Ticket_Overlay.pm:2834 lib/RT/Ticket_Overlay.pm:3033 lib/RT/Ticket_Overlay.pm:3043 lib/RT/Ticket_Overlay.pm:3048 lib/RT/Ticket_Overlay.pm:3270 lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3630 lib/RT/Ticket_Overlay.pm:3682 lib/RT/Ticket_Overlay.pm:3860 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1079 lib/RT/User_Overlay.pm:1527 lib/RT/User_Overlay.pm:687 lib/RT/User_Overlay.pm:722 lib/RT/User_Overlay.pm:978 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "Configuration de Perl" + +#: 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 "Accès refusé" @@ -3204,7 +3941,7 @@ msgstr "Groupes personnels" msgid "Personal groups:" msgstr "Groupes personnels:" -#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:48 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "Numéros de téléphone" @@ -3212,7 +3949,7 @@ msgstr "Numéros de téléphone" msgid "Placeholder" msgstr "Paramètre fictif" -#: html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 +#: 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 "Préférences" @@ -3220,15 +3957,19 @@ msgstr "Préférences" msgid "Prefs" msgstr "Préférences" -#: lib/RT/Action/Generic.pm:159 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "Préparation interrompue" -#: html/Ticket/Elements/Tabs:60 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "Précédent" -#: html/Search/Listing.html:43 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "Page précédente" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "Page précédente" @@ -3241,19 +3982,23 @@ msgstr "Pri." msgid "Principal %1 not found." msgstr "Principal %1 non trouvé" -#: html/Search/Elements/PickRestriction:53 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "Priorité" -#: html/Admin/Elements/ModifyQueue:50 html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "La priorité débute à " +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "Privé:" + #: etc/initialdata:25 msgid "Privileged" msgstr "Privilégié" -#: html/Admin/Users/Modify.html:270 html/User/Prefs.html:162 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Statuts privilégiés : %1" @@ -3262,11 +4007,23 @@ msgstr "Statuts privilégiés : %1" msgid "Privileged users" msgstr "Utilisateurs privilégiés" +#: NOT FOUND IN SOURCE +msgid "Projects" +msgstr "Projets" + #: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 msgid "Pseudogroup for internal use" msgstr "Pseudo groupe pour usage interne" -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:45 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "Requête" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "Constructeur de requête" + +#: 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 "Queue" @@ -3284,7 +4041,7 @@ msgstr "Queue '%1' inconnue\\n" msgid "Queue Keyword Selections" msgstr "Sélection des mots clé de queue" -#: html/Admin/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "Nom de la queue" @@ -3292,19 +4049,19 @@ msgstr "Nom de la queue" msgid "Queue Scrips" msgstr "Scrips de queue" -#: lib/RT/Queue_Overlay.pm:264 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "Queue déjà créée" -#: lib/RT/Queue_Overlay.pm:273 lib/RT/Queue_Overlay.pm:279 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "Impossible de créer la queue" -#: html/Ticket/Create.html:204 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "Queue ne pouvant être chargée" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "Queue créée" @@ -3312,7 +4069,7 @@ msgstr "Queue créée" msgid "Queue is not specified." msgstr "Queue non spécifié" -#: html/SelfService/Display.html:70 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "Queue inconnue" @@ -3324,18 +4081,25 @@ msgstr "Queues" msgid "Quick search" msgstr "Recherche rapide" +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "Création de ticket rapide" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "RSS" + #: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 +#: 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 pour %2" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: 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://bestpractical.com\">Best Practical Solutions, LLC</a>." @@ -3379,11 +4143,19 @@ msgstr "RT a reçu un e-mail (%1) de lui-même." msgid "RT Recieved mail (%1) from itself." msgstr "RT a reçu du courrier (%1) de lui même" +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT Self Service / Tickets résolus" -#: html/index.html:24 html/index.html:27 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "Variables de RT" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "RT en un coup d'oeil" @@ -3416,11 +4188,14 @@ msgstr "RT pour %1: %2" msgid "RT has proccessed your commands" msgstr "RT a exécuté vos commandes" -#: html/Elements/Login:94 -#. ('2003') +#: 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 est © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. Distribué sous <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 de la licence générale GNU.</a>" +#: 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 "" + #: 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 est © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. Distribué sous <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 de la licence générale GNU.</a>" @@ -3437,39 +4212,43 @@ msgstr "RT va traiter ce courrier comme s'il n'était pas signé.\\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 "L'interface d'utilisation de RT par email utilise une authentification PGP. Soit vous n'avez pas signé votre courrier, soit la signature est n'a pas pu être vérifiée" -#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/User/Prefs.html:43 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "Nom" -#: html/Admin/Elements/ModifyUser:47 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "RealName" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:628 #. ($value) msgid "Reference by %1 added" msgstr "Ajout d'une référence par %1" -#: lib/RT/Transaction_Overlay.pm:660 +#: lib/RT/Transaction_Overlay.pm:668 #. ($value) msgid "Reference by %1 deleted" msgstr "Suppression de la référence par %1" -#: lib/RT/Transaction_Overlay.pm:629 +#: lib/RT/Transaction_Overlay.pm:625 #. ($value) msgid "Reference to %1 added" msgstr "Ajout d'une reference à %1" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:665 #. ($value) msgid "Reference to %1 deleted" msgstr "Suppression d'une reference à %1" -#: html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:138 html/Ticket/Elements/EditLinks:93 html/Ticket/Elements/ShowLinks:70 +#: 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 "Mentionné par" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:134 html/Ticket/Elements/EditLinks:79 html/Ticket/Elements/ShowLinks:60 +#: 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 "Se rapporte à" @@ -3481,7 +4260,7 @@ msgstr "SeRapporteA" msgid "Refine" msgstr "Affiner" -#: html/Search/Elements/PickRestriction:26 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Affiner la recherche" @@ -3490,39 +4269,47 @@ msgstr "Affiner la recherche" msgid "Refresh this page every %1 minutes." msgstr "Rafraîchir cette page toutes les %1 minutes." -#: html/Ticket/Create.html:173 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 +#: NOT FOUND IN SOURCE msgid "Relationships" msgstr "Relations" -#: html/Search/Bulk.html:97 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "Enlever AdminCc " -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:91 msgid "Remove Cc" msgstr "Enlever Cc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "Enlever Demandeur" -#: html/Ticket/Elements/ShowTransaction:159 html/Ticket/Elements/Tabs:121 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "Répondre" -#: lib/RT/Queue_Overlay.pm:84 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "Adresse de réponse" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "Répondre aux demandeurs" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "Répondre aux tickets" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "RépondreTicket" -#: etc/initialdata:44 html/Ticket/Update.html:39 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "Demandeur" -#: html/Search/Elements/PickRestriction:37 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "Adresse email du demandeur" @@ -3538,47 +4325,56 @@ msgstr "AdresseDuDemandeur" msgid "Requestors" msgstr "Demandeurs" -#: html/Admin/Elements/ModifyQueue:60 html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "Le demande doit être résolue dans" +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "Le paramêtre requis '%1' n'est pas spécifié" + #: html/Elements/Submit:61 msgid "Reset" msgstr "Remise à zéro" -#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "Domicile" -#: html/Ticket/Elements/Tabs:131 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "Résoudre" -#: html/Ticket/Update.html:137 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Résoudre ticket n°%1 (%2)" -#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1206 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "Résolu" -#: html/Search/Bulk.html:132 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:71 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "Réponse aux demandeurs" -#: html/Elements/ListActions:25 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "Résultats" -#: html/Search/Elements/PickRestriction:104 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "Nb tickets par page" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "Saisissez à nouveau votre mot de passe" +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "Annuler" + #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Le droit %1 introuvable pour %2 %3 dans le périmètre %4 (%5)\\n" @@ -3611,16 +4407,16 @@ msgstr "Droit non activé" msgid "Right revoked" msgstr "Droit révoqué" -#: html/Admin/Elements/UserTabs:40 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "Droits" -#: lib/RT/Interface/Web.pm:794 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Les droits n'on pas pu être attribués à %1" -#: lib/RT/Interface/Web.pm:827 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "Les droits n'ont pas pu être révoqués pour %1" @@ -3633,29 +4429,49 @@ msgstr "Rôles" msgid "RootApproval" msgstr "ApprobationDeRoot" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "Lignes par pages" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "Sam." -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyLinks.html:38 html/Ticket/ModifyPeople.html:37 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "Sauver" + +#: 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 "Enregistrer les modifications" -#: NOT FOUND IN SOURCE +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "Enregistrer les modifications" +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "Recherches sauvées" + #: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 -#. ($QueueObj->id) +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip n°%1" -#: lib/RT/Scrip_Overlay.pm:175 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "Scrip ajouté" -#: html/Admin/Elements/EditScrips:83 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "Scrip supprimé" @@ -3671,7 +4487,7 @@ msgstr "Scrips pour %1\\n" msgid "Scrips which apply to all queues" msgstr "Scrips s'appliquant à toutes les queues" -#: html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:125 html/Ticket/Elements/Tabs:158 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "Rechercher" @@ -3683,17 +4499,61 @@ msgstr "Critère de recherche" msgid "Search for approvals" msgstr "Chercher des approbations" -#: bin/rt-crontool:187 +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "Les recherches ne peuvent être associées à ce type d'objet" + +#: bin/rt-crontool:184 msgid "Security:" msgstr "Sécurité:" -#: lib/RT/Queue_Overlay.pm:66 +#: NOT FOUND IN SOURCE +msgid "See custom fields" +msgstr "Voir les champs personnalisés" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "Voir les emails sortant et leurs destinataires" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "Voir les commentaires privés du ticket" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "Vue récapilutative des tickets" + +#: NOT FOUND IN SOURCE +msgid "SeeCustomField" +msgstr "VoirChampPersonnalisé" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "VoirQueue" -#: html/Admin/Groups/index.html:39 +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "Selectionner" + +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Field" +msgstr "Choisir un champ personnalisé" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" -msgstr "Sélectionner un groupe" +msgstr "Choisir un groupe" #: NOT FOUND IN SOURCE msgid "Select a queue" @@ -3701,39 +4561,47 @@ msgstr "Choisir une queue" #: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" -msgstr "Sélectionner un utilisateur" +msgstr "Choisir un utilisateur" + +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" #: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" -msgstr "Selectionner le champ personnalisé" +msgstr "Choisir le champ personnalisé" #: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" -msgstr "Sélectionner le groupe" +msgstr "Choisir le groupe" -#: lib/RT/CustomField_Overlay.pm:421 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "Choisir plusieurs valeurs" -#: lib/RT/CustomField_Overlay.pm:418 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "Choisir une valeur" #: html/Admin/Elements/QueueTabs:66 msgid "Select queue" -msgstr "Selectionner la queue" +msgstr "Choisir la queue" #: 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 "Selectionner le scrip" +msgstr "Choisir le scrip" #: 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 "Selectionner le modèle" +msgstr "Choisir le modèle" + +#: NOT FOUND IN SOURCE +msgid "Select up to %1 values" +msgstr "Choisir un maximum de %1 valeurs " -#: html/Admin/Elements/UserTabs:48 +#: html/Admin/Elements/UserTabs:46 msgid "Select user" -msgstr "Selectionner l'utilisateur" +msgstr "Choisir l'utilisateur" #: lib/RT/CustomField_Overlay.pm:35 msgid "SelectMultiple" @@ -3743,23 +4611,31 @@ msgstr "ChoixMultiples" msgid "SelectSingle" msgstr "ChoixSimple" +#: NOT FOUND IN SOURCE +msgid "Selected Custom Fields" +msgstr "Champs personnalisés sélectionnés" + +#: NOT FOUND IN SOURCE +msgid "Selected objects" +msgstr "Objets sélectionnés" + #: NOT FOUND IN SOURCE msgid "Self Service" msgstr "Self Service" -#: etc/initialdata:113 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "Envoyer un courrier à tous les observateurs" -#: etc/initialdata:109 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "Envoyer un courrier à tous les observateurs en tant que \"commentaire\"" -#: etc/initialdata:104 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "Envoyer un courrier aux demandeurs et aux CCs" -#: etc/initialdata:99 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "Envoyer un courrier aux demandeurs et aux CCs en tant que commentaire" @@ -3767,15 +4643,23 @@ msgstr "Envoyer un courrier aux demandeurs et aux CCs en tant que commentaire" msgid "Sends a message to the requestors" msgstr "Envoyer un courrier aux demandeurs" -#: etc/initialdata:117 etc/initialdata:121 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "Envoyer un courrier aux CCs et Bccs explicitement indiqués" -#: etc/initialdata:94 +#: 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 "Envoyer un mail aux AdminCCs" -#: etc/initialdata:90 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "Envoyer un mail aux AdminCCs en tant que commentaire" @@ -3787,14 +4671,34 @@ msgstr "Envoyer un courrier à l'intervenant" msgid "Sep." msgstr "Sep." +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "" + #: NOT FOUND IN SOURCE msgid "September" msgstr "Septembre" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "Afficher" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "Afficher les colonnes" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "Afficher les résultats" +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + #: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "Afficher les requêtes approuvées" @@ -3819,43 +4723,51 @@ msgstr "Afficher les requêtes en attente" msgid "Show requests awaiting other approvals" msgstr "Afficher les requêtes attendant d'autres approbations" -#: lib/RT/Queue_Overlay.pm:80 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "Afficher les commentaires privés du ticket" -#: lib/RT/Queue_Overlay.pm:78 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "Afficher les résumés de tickets" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "AfficherACL" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "AfficherEmailSortant" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "AfficherRecherchesSauvées" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "AfficherScrips" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "AfficherModèle" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "AfficherTicket" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:81 msgid "ShowTicketComments" msgstr "AfficherCommentairesTickets" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "S'identifier en tant que demandeur ou CC de queue ou de ticket" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "S'identifier en tant qu'AdminCC de ticket ou de queue" -#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "Signature" @@ -3867,7 +4779,7 @@ msgstr "Connecté en tant que %1" msgid "Single" msgstr "Unique" -#: html/Elements/Header:50 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "Passer le menu" @@ -3875,11 +4787,15 @@ msgstr "Passer le menu" msgid "Sort" msgstr "Trier" +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Sort key" msgstr "Ordre de tri" -#: html/Search/Elements/PickRestriction:108 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "Trier les résultats par" @@ -3887,6 +4803,14 @@ msgstr "Trier les résultats par" msgid "SortOrder" msgstr "SortOrder" +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "Étape" + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "Bloqué" @@ -3895,7 +4819,7 @@ msgstr "Bloqué" msgid "Start page" msgstr "Page de début" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:34 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "Ouvert le" @@ -3903,7 +4827,7 @@ msgstr "Ouvert le" msgid "Started date '%1' could not be parsed" msgstr "La date de démarrage '%1' n'a pas pu être analysée" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:30 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "Débute" @@ -3915,19 +4839,19 @@ msgstr "Débute le" msgid "Starts date '%1' could not be parsed" msgstr "La date de début '%1' n'a pas pu être analysée" -#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:93 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "Etat" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:73 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1200 lib/RT/Tickets_Overlay.pm:908 +#: 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 "Statut" -#: etc/initialdata:294 +#: etc/initialdata:309 msgid "Status Change" msgstr "Changement de statut" -#: lib/RT/Transaction_Overlay.pm:528 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "Statut modifié de %1 à %2 " @@ -3936,28 +4860,28 @@ msgstr "Statut modifié de %1 à %2 " msgid "StatusChange" msgstr "ChangementDeStatut" -#: html/Ticket/Elements/Tabs:146 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "Voler" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:94 msgid "Steal tickets" msgstr "Voler les tickets " -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:94 msgid "StealTicket" msgstr "VolerTicket" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "Volé à %1" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:42 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 lib/RT/Ticket_Overlay.pm:1196 lib/RT/Tickets_Overlay.pm:987 +#: 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 "Sujet" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#: 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 "Sujet modifié en %1" @@ -3966,14 +4890,26 @@ msgstr "Sujet modifié en %1" msgid "Submit" msgstr "Valider" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "Soumettre flux de travail" -#: lib/RT/Group_Overlay.pm:748 +#: lib/RT/Group_Overlay.pm:749 msgid "Succeeded" msgstr "Réussi" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + #: lib/RT/Date.pm:394 msgid "Sun." msgstr "Dim." @@ -3986,7 +4922,11 @@ msgstr "SuperUtilisateur" msgid "System" msgstr "Système" -#: html/Admin/Elements/SelectRights:80 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:793 lib/RT/Interface/Web.pm:826 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "Configuration système" + +#: 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 "Erreur système" @@ -3998,6 +4938,10 @@ msgstr "Erreur Système. Droit non délégué." msgid "System Error. right not granted" msgstr "Erreur Système. Droit non délégué" +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "Outils système" + #: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "Erreur système. Droit non délégué." @@ -4018,27 +4962,31 @@ msgstr "Groupes système" msgid "SystemRolegroup for internal use" msgstr "SystemRolegroup à usage interne" -#: lib/RT/CurrentUser.pm:319 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "Chaîne_de_test" -#: html/Ticket/Elements/Tabs:142 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "Prendre" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:92 msgid "Take tickets" msgstr "Prendre les tickets" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:92 msgid "TakeTicket" msgstr "PrendreTicket" -#: lib/RT/Transaction_Overlay.pm:573 +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "Pris" -#: html/Admin/Elements/EditScrip:80 +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "Tâche" + +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "Modèle" @@ -4051,7 +4999,7 @@ msgstr "Modèle n°%1" msgid "Template deleted" msgstr "Modèle supprimé" -#: lib/RT/Scrip_Overlay.pm:152 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "Modèle inconnu" @@ -4059,7 +5007,7 @@ msgstr "Modèle inconnu" msgid "Template not found\\n" msgstr "Modèle inconnu\\n" -#: lib/RT/Template_Overlay.pm:352 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "Modèle analysé" @@ -4071,15 +5019,19 @@ msgstr "Modèles" msgid "Templates for %1\\n" msgstr "Modèles pour %1\\n " -#: lib/RT/Interface/Web.pm:894 +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "Texte" + +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "Ceci est déjà la valeur actuelle" -#: lib/RT/CustomField_Overlay.pm:242 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "Valeur incorrecte pour ce champ personnalisé." -#: lib/RT/Ticket_Overlay.pm:1917 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "Valeur identique" @@ -4087,31 +5039,30 @@ msgstr "Valeur identique" msgid "That principal already has that right" msgstr "Ce groupe/utilisateur dispose déjà de ce droit" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Ce groupe/utilisateur est déjà un %1 pour cette queue" -#: lib/RT/Ticket_Overlay.pm:1451 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Ce groupe/utilisateur est déjà un %1 pour ce ticket" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Ce groupe/utilisateur n'est pas un %1 pour cette queue" -#: lib/RT/Ticket_Overlay.pm:1568 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "Ce groupe/utilisateur n'est pas un %1 pour ce ticket" -#: lib/RT/Ticket_Overlay.pm:1913 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "Queue inconnue" -#: lib/RT/Ticket_Overlay.pm:3274 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "Ticket ayant des tickets fils ou dépendants non résolus" @@ -4119,27 +5070,27 @@ msgstr "Ticket ayant des tickets fils ou dépendants non résolus" msgid "That user already has that right" msgstr "Cet utilisateur possède déjà ce droit." -#: lib/RT/Ticket_Overlay.pm:3084 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "Cet utilisateur possède déjà ce ticket." -#: lib/RT/Ticket_Overlay.pm:3056 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "Utilisateur inconnu" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "Utilisateur possédant déjà un statut privilégié." -#: lib/RT/User_Overlay.pm:397 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "Utilisateur déjà sans privilèges." -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "Utilisateur bénéficiant à présent du statut privilégié" -#: lib/RT/User_Overlay.pm:410 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "Utilisateur à présent sans statut privilégié " @@ -4147,11 +5098,11 @@ msgstr "Utilisateur à présent sans statut privilégié " msgid "That user is now unprivilegedileged" msgstr "Cet utilisateur a perdu ses droits" -#: lib/RT/Ticket_Overlay.pm:3077 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "Cet utilisateur peut ne pas avoir de ticket dans cette queue." -#: lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "ID non numérique" @@ -4167,19 +5118,19 @@ msgstr "Le CC d'un ticket" msgid "The administrative CC of a ticket" msgstr "L'AdminCC d'un ticket" -#: lib/RT/Ticket_Overlay.pm:2244 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "Commentaire enregistré" -#: bin/rt-crontool:197 +#: 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 "Cette commande trouve tous les tickets actifs de la queue 'general' et positionne leur priorité à 99 s'ils n'ont pas été touchés depuis quatre heures:" -#: bin/rt-commit-handler:755 bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "Les commandes suivantes n'ont pas été traitées :\\n\\n" -#: lib/RT/Interface/Web.pm:897 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "La nouvelle valeur est enregistrée" @@ -4195,19 +5146,31 @@ msgstr "Le demandeur d'un ticket" msgid "These comments aren't generally visible to the user" msgstr "Ces commentaires ne sont généralement pas accessibles par l'utilisateur" +#: NOT FOUND IN SOURCE +msgid "This custom field does not apply to that object" +msgstr "Ce champ personnalisé ne s'applique pas à cet objet" + +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "Cet possibilité n'est offerte qu'aux administrateurs systèmes" + +#: html/Ticket/Elements/PreviewScrips:48 +msgid "This message will be sent to..." +msgstr "Ce message va être envoyé à..." + #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "Ce ticket %1 %2 (%3)\\n " -#: bin/rt-crontool:188 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Cet outil permet à l'utilisateur de lancer un module perl quelconque depuis RT" -#: lib/RT/Transaction_Overlay.pm:251 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "Cette opération semble ne pas avoir de contenu" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Les %1 tickets de plus haute priorité de cet utilisateur" @@ -4220,10 +5183,6 @@ msgstr "Les 25 tickets prioritaires de cet utilisateur" msgid "Thu." msgstr "Jeu." -#: NOT FOUND IN SOURCE -msgid "Ticket" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Ticket # %1 %2" msgstr "Ticket n°%1 %2" @@ -4242,21 +5201,31 @@ msgstr "Ticket n°%1 mise à jour globale: %2" msgid "Ticket #%1: %2" msgstr "Ticket n°%1: %2" -#: lib/RT/Ticket_Overlay.pm:623 lib/RT/Ticket_Overlay.pm:644 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "Ticket %1" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Ticket %1 créé dans la queue '%2'" -#: bin/rt-commit-handler:759 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "Ticket %1 chargé\\n " -#: html/Search/Bulk.html:212 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Ticket %1: %2" +#: NOT FOUND IN SOURCE +msgid "Ticket Custom Fields" +msgstr "Champs personnalisés du ticket" + #: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" @@ -4266,27 +5235,31 @@ msgstr "Historique ticket # %1 %2" msgid "Ticket Id" msgstr "N° ticket" -#: etc/initialdata:309 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "Ticket résolu/clos" -#: html/Search/Elements/PickRestriction:62 +#: NOT FOUND IN SOURCE +msgid "Ticket Transactions" +msgstr "Transactions du ticket" + +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Pièce jointe au ticket" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "Contenu du ticket." -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "Type du contenu du ticket" -#: lib/RT/Ticket_Overlay.pm:514 lib/RT/Ticket_Overlay.pm:523 lib/RT/Ticket_Overlay.pm:533 lib/RT/Ticket_Overlay.pm:633 +#: 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 "Une erreur interne a empêché l'ajout du ticket" -#: lib/RT/Transaction_Overlay.pm:520 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "Ticket ajouté" @@ -4294,7 +5267,7 @@ msgstr "Ticket ajouté" msgid "Ticket creation failed" msgstr "Création de ticket échouée." -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "Ticket supprimé." @@ -4306,34 +5279,37 @@ msgstr "Id de ticket non trouvée" msgid "Ticket killed" msgstr "Ticket effacé" +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "Méta-données du ticket" + #: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "Ticket non trouvé" -#: etc/initialdata:295 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "Statut de ticket modifié" -#: html/Ticket/Update.html:38 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "Observateurs du ticket" #: html/Elements/Tabs:46 msgid "Tickets" -msgstr "" +msgstr "Tickets" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" -msgstr "" +msgstr "Tickets %1 %2" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "Tickets %1 par %2" -#: html/Elements/ViewUser:25 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Tickets depuis %2" @@ -4341,23 +5317,27 @@ msgstr "Tickets depuis %2" msgid "Tickets which depend on this approval:" msgstr "Tickets dépendant de cette approbation:" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "Temps estimé" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "Temps restant" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "Temps passé" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "Temps restant" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "Temps de calcul" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "Temps passé" @@ -4365,40 +5345,57 @@ msgstr "Temps passé" msgid "TimeLeft" msgstr "TempsRestant" -#: lib/RT/Ticket_Overlay.pm:1201 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "TempsPassé" -#: bin/rt-commit-handler:401 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "Pour conserver les modifications de cette transaction" -#: bin/rt-commit-handler:390 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "Pour conserver les modifications de cette transaction :\\n" -#: lib/RT/Ticket_Overlay.pm:1204 +#: html/Elements/Footer:39 +#. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') +msgid "To inquire about support, training, custom development or licensing, please contact %1." +msgstr "Pour du support, des stages, des développements ou au sujet de la license, veuillez contacter %1." + +#: lib/RT/Ticket_Overlay.pm:1280 msgid "Told" msgstr "Annoncé" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "Outils" + +#: etc/initialdata:252 msgid "Transaction" msgstr "Transaction" -#: lib/RT/Transaction_Overlay.pm:691 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "La transaction%1 est supprimée" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "Transaction ajoutée" -#: lib/RT/Transaction_Overlay.pm:88 +#: NOT FOUND IN SOURCE +msgid "Transaction Custom Fields" +msgstr "Champs personnalisées de la transaction" + +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "Transaction->Create n'a pas fonctionné car vous n'avez pas spécifié d'identifiant de ticket" -#: lib/RT/Transaction_Overlay.pm:750 +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "Transation->Create a échoué car vous n'avez pas spécifié de type d'objet et d'id" + +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "Les transactions ne peuvent être transférées" @@ -4410,10 +5407,14 @@ msgstr "Tentative de délégation d'un droit : %1" msgid "Tue." msgstr "Mar." -#: 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:1202 lib/RT/Tickets_Overlay.pm:959 +#: 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" +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + #: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "Fonction non disponible" @@ -4422,11 +5423,11 @@ msgstr "Fonction non disponible" msgid "Unix login" msgstr "Identifiant Unix" -#: html/Admin/Elements/ModifyUser:61 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "UnixUsername" -#: lib/RT/Attachment_Overlay.pm:266 lib/RT/Attachment_Overlay.pm:298 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Type d'encodage de courrier inconnu: %1" @@ -4435,47 +5436,75 @@ msgstr "Type d'encodage de courrier inconnu: %1" msgid "Unlimited" msgstr "Illimité" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "Recherche non nommée" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "Non privilégié" -#: lib/RT/Transaction_Overlay.pm:569 +#: NOT FOUND IN SOURCE +msgid "Unselected Custom Fields" +msgstr "Champs personnalisés non sélectionnés" + +#: NOT FOUND IN SOURCE +msgid "Unselected objects" +msgstr "Objets non sélectionnés" + +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "Non pris" -#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "Recherche sans titre" + +#: html/Search/Bulk.html:32 msgid "Update" msgstr "Mettre à jour" -#: html/Admin/Users/Prefs.html:61 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Mettre à jour l'ID" -#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:65 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "Mettre à jour le type" -#: html/Search/Listing.html:60 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "Mise à jour des tickets en masse" -#: html/Admin/Users/Prefs.html:48 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "Mettre à jour l'email" -#: html/Admin/Users/Prefs.html:54 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "Mettre à jour plusieurs tickets" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "Mettre à jour le nom" -#: lib/RT/Interface/Web.pm:409 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "Mise à jour non enregistrée" -#: html/Search/Bulk.html:80 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "Mettre à jour les tickets sélectionnés" -#: html/Admin/Users/Prefs.html:35 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Mettre à jour la signature" @@ -4487,24 +5516,60 @@ msgstr "Mettre à jour le ticket" msgid "Update ticket # %1" msgstr "Mettre à jour le ticket n°%1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:46 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Mettre à jour le ticket n°%1" -#: html/Ticket/Update.html:139 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Mettre à jour le ticket n°%1 (%2)" -#: lib/RT/Interface/Web.pm:407 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "Le type de mise à jour n'était ni un commentaire ni un courrier." -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:50 lib/RT/Ticket_Overlay.pm:1205 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "Mis(e) à jour" +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "Uploader" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple files" +msgstr "Uploader plusieurs fichiers" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple images" +msgstr "Uploader plusieurs images" + +#: NOT FOUND IN SOURCE +msgid "Upload one file" +msgstr "Uploader un fichier" + +#: NOT FOUND IN SOURCE +msgid "Upload one image" +msgstr "Uploader une image" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 files" +msgstr "Uploader un maximum de %1 fichiers" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 images" +msgstr "Uploader un maximum de %1 images" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "Uploader vos changements" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "Utilisateur %1 %2: %3\\n" @@ -4513,6 +5578,11 @@ msgstr "Utilisateur %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Mot de passe de l'utilisateur %1 : %2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "L'utilisateur %1 ne peut être trouvé" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "Utilisateur '%1' non trouvé" @@ -4521,11 +5591,15 @@ msgstr "Utilisateur '%1' non trouvé" msgid "User '%1' not found\\n" msgstr "Utilisateur '%1' non trouvé\\n" -#: etc/initialdata:124 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Utilisateur défini" -#: html/Admin/Users/Prefs.html:58 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "Id utilisateur" @@ -4537,12 +5611,16 @@ msgstr "Id utilisateur" msgid "User Rights" msgstr "Droits utilisateurs" -#: html/Admin/Users/Modify.html:225 +#: NOT FOUND IN SOURCE +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "L'utilisateur a demandé un type de mise à jour non connu pour le champ personnalisé %1 de l'objet %2Â%3" + +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "Utilisateur ne peut pas être créé : %1" -#: lib/RT/User_Overlay.pm:321 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "Utilisateur créé" @@ -4550,7 +5628,7 @@ msgstr "Utilisateur créé" msgid "User defined groups" msgstr "Groupes utilisateur" -#: lib/RT/User_Overlay.pm:575 lib/RT/User_Overlay.pm:592 +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 msgid "User loaded" msgstr "Utilisateur chargé" @@ -4558,10 +5636,14 @@ msgstr "Utilisateur chargé" msgid "User notified" msgstr "Utilisateur informé" -#: html/Admin/Users/Prefs.html:24 html/Admin/Users/Prefs.html:28 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "Vue utilisateur" +#: NOT FOUND IN SOURCE +msgid "User-defined groups" +msgstr "Groupe définis par l'utilisateur" + #: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "Nom d'utilisateur" @@ -4574,7 +5656,11 @@ msgstr "Utilisateurs" msgid "Users matching search criteria" msgstr "Utilisateurs correspondants aux critères de recherche" -#: html/Search/Elements/PickRestriction:50 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "Valider la requête" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "ValueOfQueue" @@ -4582,11 +5668,11 @@ msgstr "ValueOfQueue" msgid "Values" msgstr "Valeurs" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "Observer" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "ObserverCommeAdminCC" @@ -4598,7 +5684,7 @@ msgstr "Observateur chargé" msgid "Watchers" msgstr "Observateurs" -#: html/Admin/Elements/ModifyUser:55 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "WebEncoding" @@ -4606,75 +5692,103 @@ msgstr "WebEncoding" msgid "Wed." msgstr "Mer." -#: etc/initialdata:503 etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "Quand un ticket a été approuvé par tous les approbateurs, ajoute le courrier au ticket source" -#: etc/initialdata:467 etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "Quand un ticket a été approuvé par au moins un approbateur, ajoute le courrier au ticket source " -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "Quand un ticket est créé" -#: etc/initialdata:400 etc/upgrade/2.1.71:79 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "Quand un ticket d'approbation est créé, informer l'intervenant et l'AdminCC de l'élément attendant leur approbation" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "Quand quelque chose arrive" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "Lorsqu'un ticket quelconque est résolu/clos" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "Lorsqu'un ticket quelconque change d'intervenant" -#: etc/initialdata:178 +#: 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 "Lorsqu'un ticket quelconque change de queue" -#: etc/initialdata:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "Lorsqu'un ticket quelconque change de statut" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "Lorsqu'une condition définie par l'utilisateur est satisfaite" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "Lorsque un commentaire arrive" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "Lorsque un courrier arrive" -#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:51 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "Travail" -#: html/Admin/Elements/ModifyUser:69 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "Travail hors ligne" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "Tel. bureau" -#: html/Ticket/Elements/ShowBasics:34 html/Ticket/Update.html:64 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Travaillé" -#: lib/RT/Ticket_Overlay.pm:3187 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "Vous êtes déjà intervenant de ce ticket" -#: html/autohandler:122 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "Vous n'êtes pas un utilisateur autorisé" -#: lib/RT/Ticket_Overlay.pm:3069 +#: NOT FOUND IN SOURCE +msgid "You can access it with the Download button on the right." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Vous pouvez seulement réaffecter vos ticket ou ceux qui ne sont pas affectés" @@ -4682,7 +5796,7 @@ msgstr "Vous pouvez seulement réaffecter vos ticket ou ceux qui ne sont pas aff msgid "You don't have permission to view that ticket.\\n" msgstr "Vous n'êtes pas autorisé à voir ce ticket.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "%1 tickets trouvés dans la queue %2" @@ -4691,11 +5805,11 @@ msgstr "%1 tickets trouvés dans la queue %2" msgid "You have been logged out of RT." msgstr "Vous avez été déconnecté de RT." -#: html/SelfService/Display.html:77 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "Vous n'avez pas l'autorisation de créer des tickets dans cette queue." -#: lib/RT/Ticket_Overlay.pm:1926 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "Vous ne pouvez pas créer de demandes dans cette queue." @@ -4711,11 +5825,11 @@ msgstr "Vos %1 requêtes" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "Votre administrateur RT a mal configuré l'alias de mail qui appelle RT" -#: etc/initialdata:484 etc/upgrade/2.1.71:146 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "Votre demande a été approuvée par %1. D'autres approbations sont peut être toujours en attente" -#: etc/initialdata:522 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "Votre demande a été approuvée" @@ -4723,15 +5837,15 @@ msgstr "Votre demande a été approuvée" msgid "Your request was rejected" msgstr "Votre demande a été rejetée" -#: etc/initialdata:427 etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "Votre demande a été rejetée." -#: html/autohandler:144 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "Votre nom d'utilisateur ou votre mot de passe est incorrect" -#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:95 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "Code Postal" @@ -4739,6 +5853,14 @@ msgstr "Code Postal" msgid "[no subject]" msgstr "[Pas de sujet]" +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + #: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" @@ -4752,23 +5874,23 @@ msgstr "fermé" msgid "contains" msgstr "contient" -#: html/Elements/SelectAttachmentField:25 +#: NOT FOUND IN SOURCE msgid "content" msgstr "Contenu" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "Type de contenu" -#: lib/RT/Ticket_Overlay.pm:2313 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "courrier (probablement) non envoyé" -#: lib/RT/Ticket_Overlay.pm:2323 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "courrier envoyé" -#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "jours" @@ -4776,15 +5898,15 @@ msgstr "jours" msgid "dead" msgstr "effacé" -#: html/Search/Listing.html:74 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "effacer" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "effacé" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "ne correspond pas" @@ -4792,6 +5914,10 @@ msgstr "ne correspond pas" msgid "doesn't contain" msgstr "ne contient pas" +#: NOT FOUND IN SOURCE +msgid "email address" +msgstr "adresse email" + #: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "égal à" @@ -4800,7 +5926,7 @@ msgstr "égal à" msgid "false" msgstr "faux" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "Nom de fichier" @@ -4808,7 +5934,7 @@ msgstr "Nom de fichier" msgid "greater than" msgstr "supérieur à" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "groupe '%1'" @@ -4821,11 +5947,15 @@ msgstr "heures" msgid "id" msgstr "n°" -#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:46 html/Search/Elements/PickRestriction:75 html/Search/Elements/PickRestriction:87 +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + +#: 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 "est" -#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: 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 "n'est pas" @@ -4833,7 +5963,7 @@ msgstr "n'est pas" msgid "less than" msgstr "inférieur à" -#: html/Search/Elements/PickRestriction:66 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "correspond" @@ -4841,11 +5971,11 @@ msgstr "correspond" msgid "min" msgstr "min" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "minutes" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "modifications\\n\\n" @@ -4853,10 +5983,14 @@ msgstr "modifications\\n\\n" msgid "months" msgstr "mois" -#: lib/RT/Queue_Overlay.pm:57 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "nouveau" +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "sans nom" + #: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "Non renseigné" @@ -4873,25 +6007,25 @@ msgstr "différent de" msgid "notlike" msgstr "necontientpas" -#: html/SelfService/Elements/MyRequests:60 lib/RT/Queue_Overlay.pm:58 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "ouvert" -#: lib/RT/Group_Overlay.pm:198 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "groupe personnel '%1' pour l'utilisateur '%2'" -#: lib/RT/Group_Overlay.pm:206 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "queue %1 %2" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "rejeté" -#: lib/RT/Queue_Overlay.pm:60 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "résolu" @@ -4899,16 +6033,20 @@ msgstr "résolu" msgid "sec" msgstr "sec" -#: lib/RT/Queue_Overlay.pm:59 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "feuille de calcul" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "bloqué" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "système %1" -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "groupe système '%1'" @@ -4917,21 +6055,24 @@ msgstr "groupe système '%1'" msgid "the calling component did not specify why" msgstr "le composant appelant n'a pas spécifié pourquoi" -#: lib/RT/URI/fsck_com_rt.pm:234 -#. ($self->Object->Id) +#: NOT FOUND IN SOURCE msgid "ticket #%1" msgstr "ticket n°%1" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ticket n°%1 %2" +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "" + #: NOT FOUND IN SOURCE msgid "true" msgstr "vrai" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "Groupe %1 non décrit" @@ -4940,7 +6081,7 @@ msgstr "Groupe %1 non décrit" msgid "undescripbed group %1" msgstr "Groupe non décrit %1" -#: lib/RT/Group_Overlay.pm:190 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "utilisateur %1" diff --git a/rt/lib/RT/I18N/he.po b/rt/lib/RT/I18N/he.po index 8f8326fc5..f9c525f45 100644 --- a/rt/lib/RT/I18N/he.po +++ b/rt/lib/RT/I18N/he.po @@ -1,6 +1,5 @@ # Hebrew Translation of the RT interface by Shimi. # Comments: shimi@shimi.net - msgid "" msgstr "" "Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" @@ -8,29 +7,39 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +#: NOT FOUND IN SOURCE msgid "#" msgstr "" -#: html/Admin/Queues/Scrip.html:55 -#. ($QueueObj->id) +#: NOT FOUND IN SOURCE msgid "#%1" msgstr "" -#: html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:50 html/SelfService/Display.html:25 html/Ticket/Display.html:26 html/Ticket/Display.html:30 -#. ($Ticket->Id, $Ticket->Subject) +#: 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 "" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 #. ($s, $time_unit) +#. ($option, $subtype) msgid "%1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "" @@ -40,119 +49,179 @@ msgstr "" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3505 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#: 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 הוסף" +msgid "%1 %2 added" msgstr "" #: lib/RT/Date.pm:334 #. ($s, $time_unit) -msgid "%1 לפני %2 ימי×" +msgid "%1 %2 ago" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3511 lib/RT/Transaction_Overlay.pm:564 +#: 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 שונה ל %3" +msgid "%1 %2 changed to %3" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3508 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#: 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 נמחק" +msgid "%1 %2 deleted" msgstr "" #: NOT FOUND IN SOURCE -msgid "%1 %2 מקבוצה %3" +msgid "%1 %2 of group %3" msgstr "" -#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 הוסף" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 מקבוצה %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 נמחק" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" msgstr "" +#: NOT FOUND IN SOURCE +msgid "%1 %2 שונה ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 פנייה זו\\n" msgstr "" -#: html/Search/Listing.html:57 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "%1 - %2 מוצגי×" -#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") -msgid "%1 - ×רגומנט להעביר ×ל %2" +msgid "%1 - An argument to pass to %2" msgstr "" -#: bin/rt-crontool:185 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "" -#: bin/rt-crontool:179 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "" -#: bin/rt-crontool:173 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "" -#: bin/rt-crontool:166 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:122 +#: NOT FOUND IN SOURCE +msgid "%1 - ×רגומנט להעביר ×ל %2" +msgstr "" + + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) -msgid "%1 פעולת-סקריפ נטענה" +msgid "%1 ScripAction loaded" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3538 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) -msgid "%1 הוסף כערך עבור %2" +msgid "%1 added as a value for %2" msgstr "" #: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgid "%1 aliases require a TicketId to work on" msgstr "" #: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgid "%1 aliases require a TicketId to work on " msgstr "" #: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "" -#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 #. ($args{'Base'}) #. ($args{'Target'}) -msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgid "%1 appears to be a local object, but can't be found in the database" msgstr "" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:481 +#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) -msgid "%1 על ידי %2" +msgid "%1 by %2" msgstr "" -#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:624 lib/RT/Transaction_Overlay.pm:633 lib/RT/Transaction_Overlay.pm:636 +#: 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 שונה מ %2 ל %3" +msgid "%1 changed from %2 to %3" +msgstr "" + +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" msgstr "" -#: lib/RT/Interface/Web.pm:891 +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "" @@ -160,37 +229,48 @@ msgstr "" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2817 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "" -#: html/Elements/MyTickets:25 +#: NOT FOUND IN SOURCE +msgid "%1 created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 deleted" +msgstr "" + +#: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "%1 הפניות ×¢× ×”×¢×“×™×¤×•×ª הגבוהה ביותר בטיפולי..." -#: html/Elements/MyRequests:25 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "%1 הפניות ×¢× ×”×¢×“×™×¤×•×ª הגבוהה ביותר ש×× ×™ פתחתי..." -#: bin/rt-crontool:161 +#: bin/rt-crontool:157 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "" -#: lib/RT/Queue_Overlay.pm:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "" -#: lib/RT/Ticket_Overlay.pm:1570 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "" -#: lib/RT/Ticket_Overlay.pm:3594 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "" @@ -199,16 +279,41 @@ msgstr "" msgid "%1 isn't a valid Queue id." msgstr "" -#: html/Ticket/Elements/ShowBasics:36 -#. ($TimeWorked) +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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 "" +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "" -#: html/User/Elements/DelegateRights:76 +#: NOT FOUND IN SOURCE +msgid "%1 objects" +msgstr "" + +#: html/User/Elements/DelegateRights:75 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "זכויות" @@ -229,7 +334,7 @@ msgstr "" msgid "%1 was created without a CurrentUser\\n" msgstr "" -#: lib/RT/Action/ResolveMembers.pm:42 +#: lib/RT/Action/ResolveMembers.pm:41 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "" @@ -238,22 +343,72 @@ msgstr "" msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "" -#: lib/RT/Transaction_Overlay.pm:433 +#: NOT FOUND IN SOURCE +msgid "%1 הוסף כערך עבור %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 לפני %2 ימי×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 על ידי %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 פעולת-סקריפ נטענה" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 שונה מ %2 ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2 objects" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "" -#: html/Ticket/Elements/ShowTransaction:102 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "" -#: html/Ticket/Elements/ShowTransaction:99 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1140 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "" @@ -270,7 +425,7 @@ msgstr "(סמן תיבה כדי למחוק חבר בקבוצה)" msgid "(Check box to delete scrip)" msgstr "(סמן תיבה כדי למחוק סקריפ)" -#: html/Admin/Elements/EditCustomFieldValues:25 html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +#: 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 "(סמן תיבה כדי למחוק)" @@ -278,11 +433,23 @@ msgstr "(סמן תיבה כדי למחוק)" msgid "(Check boxes to delete)" msgstr "(סמן תיבות כדי למחוק)" +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "" -#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + +#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) msgid "(If left blank, will default to %1" @@ -292,23 +459,27 @@ msgstr "" msgid "(No Value)" msgstr "" -#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" msgstr "" -#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" msgstr "" -#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 msgid "(No scrips)" msgstr "" -#: html/Admin/Elements/EditTemplates:31 +#: html/Admin/Elements/EditTemplates:30 msgid "(No templates)" msgstr "" -#: html/Ticket/Update.html:85 +#: NOT FOUND IN SOURCE +msgid "(None)" +msgstr "" + +#: 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 "" @@ -316,11 +487,11 @@ msgstr "" 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 "" -#: html/Ticket/Create.html:79 +#: 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 "" -#: html/Ticket/Update.html:81 +#: 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 "" @@ -328,35 +499,55 @@ msgstr "" 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 "" -#: html/Ticket/Create.html:69 +#: 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 "" -#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "" -#: html/Admin/Users/index.html:39 +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + +#: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "" -#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "" -#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:534 +#: 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 "" -#: html/Ticket/Elements/EditLinks:116 +#: NOT FOUND IN SOURCE +msgid "(no values)" +msgstr "" + +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(רק פנייה ×חת)" -#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "" -#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "" @@ -364,14 +555,18 @@ msgstr "" msgid "(requestor's group)" msgstr "" -#: html/Admin/Users/Modify.html:50 +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "" +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "" @@ -380,15 +575,23 @@ msgstr "" msgid "25 highest priority tickets I requested..." msgstr "" -#: html/Ticket/Elements/ShowBasics:32 +#: html/Ticket/Elements/ShowBasics:31 msgid "<% $Ticket->Status%>" msgstr "" -#: html/Elements/SelectTicketTypes:27 +#: html/Elements/SelectTicketTypes:26 msgid "<% $_ %>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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=\"פנייה חדשה ב\"> %1" @@ -397,7 +600,7 @@ msgstr "<input type=\"submit\" value=\"פנייה חדשה ב\"> %1" msgid "??????" msgstr "" -#: etc/initialdata:203 +#: etc/initialdata:218 msgid "A blank template" msgstr "" @@ -417,52 +620,60 @@ msgstr "" msgid "ACE could not be found" msgstr "" -#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "" -#: bin/rt-commit-handler:755 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "" -#: html/User/Elements/Tabs:32 +#: html/User/Elements/Tabs:31 msgid "About me" msgstr "מידע ×ודותי" -#: html/Admin/Users/Modify.html:80 +#: html/Admin/Users/Modify.html:79 msgid "Access control" msgstr "" -#: html/Admin/Elements/EditScrip:57 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "" -#: lib/RT/Scrip_Overlay.pm:147 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "" -#: bin/rt-crontool:123 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "" -#: bin/rt-crontool:119 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "" -#: html/Search/Bulk.html:92 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "הוסף העתק ניהולי" -#: html/Search/Bulk.html:90 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "הוסף העתק" -#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "הוסף עוד קבצי×" @@ -470,11 +681,11 @@ msgstr "הוסף עוד קבצי×" msgid "Add Next State" msgstr "" -#: html/Search/Bulk.html:88 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "הוסף מבקש" -#: html/Admin/Elements/AddCustomFieldValue:26 +#: html/Admin/Elements/AddCustomFieldValue:24 msgid "Add Value" msgstr "" @@ -498,19 +709,23 @@ msgstr "" msgid "Add a scrip to this queue" msgstr "" -#: html/Admin/Global/Scrip.html:55 +#: html/Admin/Global/Scrip.html:54 msgid "Add a scrip which will apply to all queues" msgstr "" -#: html/Search/Bulk.html:118 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "הוסף הערות ×ו תגובות לפניות הנבחרות" -#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 msgid "Add members" msgstr "" -#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 msgid "Add new watchers" msgstr "הוסף ×¦×•×¤×™× ×—×“×©×™×" @@ -518,37 +733,37 @@ msgstr "הוסף ×¦×•×¤×™× ×—×“×©×™×" msgid "AddNextState" msgstr "" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1454 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "" -#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "כתובת1" -#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "כתובת2" -#: html/Ticket/Create.html:74 +#: html/Ticket/Create.html:73 msgid "Admin Cc" msgstr "" -#: etc/initialdata:280 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "" -#: etc/initialdata:259 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "" -#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 msgid "Admin queues" msgstr "" @@ -556,7 +771,7 @@ msgstr "" msgid "Admin users" msgstr "" -#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 msgid "Admin/Global configuration" msgstr "" @@ -564,7 +779,7 @@ msgstr "" msgid "Admin/Groups" msgstr "" -#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "" @@ -572,7 +787,7 @@ msgstr "" msgid "AdminAllPersonalGroups" msgstr "" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "העתק ניהולי" @@ -584,7 +799,11 @@ msgstr "" msgid "AdminCorrespondence" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: NOT FOUND IN SOURCE +msgid "AdminCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "" @@ -596,19 +815,19 @@ msgstr "" msgid "AdminGroupMembership" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "AdminOwnPersonalGroups" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "AdminUsers" msgstr "" -#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "העתק ניהולי" @@ -616,11 +835,19 @@ msgstr "העתק ניהולי" msgid "Admins" msgstr "" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "" -#: html/Elements/SelectDateRelation:36 +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + +#: html/Elements/SelectDateRelation:35 msgid "After" msgstr "×חרי" @@ -636,11 +863,19 @@ msgstr "" msgid "Alias for" msgstr "" -#: html/Admin/Elements/EditCustomFields:96 +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "" -#: html/Admin/Queues/index.html:53 +#: html/Admin/Queues/index.html:52 msgid "All Queues" msgstr "" @@ -648,23 +883,35 @@ msgstr "" msgid "Always sends a message to the requestors independent of message sender" msgstr "" -#: html/Elements/Tabs:56 +#: NOT FOUND IN SOURCE +msgid "Applies to" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + +#: html/Elements/Tabs:58 msgid "Approval" msgstr "×ישור" -#: html/Approvals/Display.html:46 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#: 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 "" -#: html/Approvals/index.html:54 +#: html/Approvals/index.html:53 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "" -#: html/Approvals/index.html:52 +#: html/Approvals/index.html:51 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "" @@ -673,15 +920,23 @@ msgstr "" msgid "Approval Details" msgstr "" +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "" -#: html/Approvals/Elements/Approve:44 +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "" -#: etc/initialdata:437 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "" @@ -693,38 +948,71 @@ msgstr "×פריל" msgid "April" msgstr "×פריל" -#: html/Elements/SelectSortOrder:35 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "עולה" -#: html/Search/Bulk.html:127 html/SelfService/Update.html:33 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +#: NOT FOUND IN SOURCE +msgid "Assign and remove custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AssignCustomFields" +msgstr "" + +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "צרף" -#: html/SelfService/Create.html:65 html/Ticket/Create.html:110 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "" -#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "קובץ מצורף" -#: NOT FOUND IN SOURCE +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "" -#: lib/RT/Transaction_Overlay.pm:441 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "קובץ צורף" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "×©× ×§×•×‘×¥ מצורף" -#: html/Ticket/Elements/ShowAttachments:26 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "×§×‘×¦×™× ×ž×¦×•×¨×¤×™×" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "×וגוסט" @@ -733,11 +1021,11 @@ msgstr "×וגוסט" msgid "August" msgstr "×וגוסט" -#: html/Admin/Elements/ModifyUser:66 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "" @@ -749,6 +1037,10 @@ msgstr "" msgid "AutoreplyToRequestors" msgstr "" +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "" @@ -757,8 +1049,7 @@ msgstr "" msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "" -#: bin/rt-commit-handler:827 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "" @@ -766,19 +1057,19 @@ msgstr "" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "" -#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +#: 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 "בסיסי" -#: html/Ticket/Update.html:83 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "" -#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "×ל תשכח לשמור ×ת השינויי×" -#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:320 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "לפני" @@ -786,80 +1077,120 @@ msgstr "לפני" msgid "Begin Approval" msgstr "" -#: etc/initialdata:202 +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "" + +#: etc/initialdata:217 msgid "Blank" msgstr "" -#: html/Search/Listing.html:79 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "הוסף כתובת זו לספר הכתובות כדי לחזור על ×ותו חיפוש" -#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "תקציר כותרי×" -#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 msgid "Bulk ticket update" msgstr "עדכון פניות מרוכז" -#: lib/RT/User_Overlay.pm:1352 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "" -#: lib/RT/CustomField_Overlay.pm:206 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "" -#: lib/RT/Link_Overlay.pm:132 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2794 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2612 lib/RT/Ticket_Overlay.pm:2681 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "" -#: html/autohandler:99 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "" -#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:49 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +#: 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 "העתק" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:30 msgid "Change password" msgstr "" -#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +#: NOT FOUND IN SOURCE +msgid "Check All" +msgstr "" + +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "סמן תיבה כדי למחוק" -#: html/Admin/Elements/SelectRights:31 +#: html/Admin/Elements/SelectRights:30 msgid "Check box to revoke right" msgstr "סמן תיבה כדי לבטל זכות" -#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:57 +#: 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 "ילדי×" -#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "עיר" +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Clear All" +msgstr "" + #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "נסגר" -#: html/SelfService/Closed.html:25 +#: html/SelfService/Closed.html:24 msgid "Closed Tickets" msgstr "" @@ -867,7 +1198,7 @@ msgstr "" msgid "Closed requests" msgstr "" -#: html/SelfService/Elements/Tabs:45 +#: html/SelfService/Elements/Tabs:44 msgid "Closed tickets" msgstr "" @@ -879,11 +1210,11 @@ msgstr "" msgid "Command not understood!\\n" msgstr "" -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "הערה" -#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "" @@ -891,40 +1222,39 @@ msgstr "" msgid "Comment not recorded" msgstr "" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "" -#: html/Admin/Elements/ModifyUser:35 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "" -#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "הערות (×œ× × ×©×œ×—×•×ª ×ל המבקשי×)" -#: html/Search/Bulk.html:122 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "הערות (×œ× × ×©×œ×—×•×ª ×ל המבקשי×)" -#: html/Elements/ViewUser:27 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "הערות לגבי %1" -#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "הערות לגבי משתמש ×–×”" -#: lib/RT/Transaction_Overlay.pm:543 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "הערות נוספו" -#: lib/RT/Action/Generic.pm:140 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "" @@ -936,23 +1266,23 @@ msgstr "" msgid "Condition" msgstr "" -#: bin/rt-crontool:109 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "" -#: lib/RT/Scrip_Overlay.pm:160 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "" -#: html/Elements/Tabs:50 +#: html/Elements/Tabs:52 msgid "Configuration" msgstr "הגדרות" -#: html/SelfService/Prefs.html:33 +#: html/SelfService/Prefs.html:32 msgid "Confirm" msgstr "" -#: html/Admin/Elements/ModifyUser:60 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "" @@ -960,23 +1290,31 @@ msgstr "" msgid "Contacted date '%1' could not be parsed" msgstr "" -#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "תוכן" +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "" -#: etc/initialdata:271 +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "" -#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "" -#: lib/RT/Transaction_Overlay.pm:539 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "" @@ -984,7 +1322,7 @@ msgstr "" msgid "Correspondence not recorded" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3525 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "" @@ -992,29 +1330,29 @@ msgstr "" msgid "Could not add new custom field value for ticket. %1 " msgstr "" -#: lib/RT/Ticket_Overlay.pm:3031 lib/RT/Ticket_Overlay.pm:3039 lib/RT/Ticket_Overlay.pm:3055 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "" -#: html/Admin/Elements/EditCustomField:85 html/Admin/Elements/EditCustomFields:166 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "" -#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "" -#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:334 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "" -#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:422 +#: 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 "" @@ -1030,11 +1368,11 @@ msgstr "" msgid "Could not find group %1." msgstr "" -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "" @@ -1042,35 +1380,42 @@ msgstr "" msgid "Could not find user %1." msgstr "" -#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +#: NOT FOUND IN SOURCE +msgid "Could not load CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1443 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1559 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "" -#: lib/RT/Group_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3535 lib/RT/Ticket_Overlay.pm:3591 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "" @@ -1083,15 +1428,15 @@ msgstr "" msgid "Couldn't find group\\n" msgstr "" -#: lib/RT/Interface/Web.pm:900 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "" -#: lib/RT/Group_Overlay.pm:959 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "" -#: lib/RT/CustomField_Overlay.pm:240 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "" @@ -1103,11 +1448,19 @@ msgstr "" msgid "Couldn't find user\\n" msgstr "" -#: lib/RT/CurrentUser.pm:112 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "" @@ -1120,21 +1473,25 @@ msgstr "" msgid "Couldn't load Scrips." msgstr "" -#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "" -#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#: NOT FOUND IN SOURCE +msgid "Couldn't load object %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "" @@ -1147,38 +1504,41 @@ msgstr "" msgid "Couldn't load template" msgstr "" -#: html/Admin/Users/Prefs.html:79 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "" -#: html/SelfService/Display.html:109 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "" -#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "×רץ" -#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +#: 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 "צור" -#: etc/initialdata:128 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "צור פניות" -#: html/Admin/Elements/EditCustomField:75 +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + +#: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "" -#: html/Admin/Queues/CustomField.html:48 +#: html/Admin/Queues/CustomField.html:47 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:48 +#: html/Admin/Global/CustomField.html:47 msgid "Create a CustomField which applies to all queues" msgstr "" @@ -1186,6 +1546,10 @@ msgstr "" msgid "Create a new Custom Field" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "" @@ -1194,11 +1558,11 @@ msgstr "" msgid "Create a new global scrip" msgstr "" -#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 msgid "Create a new group" msgstr "" -#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 msgid "Create a new personal group" msgstr "צור קבוצה פרטית חדשה" @@ -1214,11 +1578,11 @@ msgstr "צור סקריפ חדש" msgid "Create a new template" msgstr "צור תבנית חדשה" -#: html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 msgid "Create a new ticket" msgstr "צור פנייה חדשה" -#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "צור משתמש חדש" @@ -1234,19 +1598,27 @@ msgstr "צור תור שנקר×" msgid "Create a request" msgstr "צור בקשה" -#: html/Admin/Queues/Scrip.html:59 +#: html/Admin/Queues/Scrip.html:58 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "" -#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 msgid "Create a template" msgstr "" -#: html/SelfService/Create.html:25 +#: html/SelfService/Create.html:24 msgid "Create a ticket" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "" @@ -1255,23 +1627,23 @@ msgstr "" msgid "Create failed: %1/%2/%3" msgstr "" -#: etc/initialdata:130 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "" -#: html/SelfService/Create.html:78 +#: html/SelfService/Create.html:77 msgid "Create ticket" msgstr "" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "" @@ -1279,105 +1651,129 @@ msgstr "" msgid "Create, delete and modify the members of any user's personal groups" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "Create, delete and modify the members of personal groups" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "Create, delete and modify users" msgstr "" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "נוצר" -#: html/Admin/Elements/EditCustomField:88 +#: html/Admin/Elements/EditCustomField:87 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "" -#: html/Ticket/Elements/EditLinks:28 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "×™×—×¡×™× × ×•×›×—×™×™×" -#: html/Admin/Elements/EditScrips:30 +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "" + +#: html/Admin/Elements/EditScrips:29 msgid "Current Scrips" msgstr "" -#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "" -#: html/Admin/Elements/SelectRights:29 +#: html/Admin/Elements/SelectRights:28 msgid "Current rights" msgstr "" -#: html/Search/Listing.html:71 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "קריטריוני החיפוש הנוכחיי×" -#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "×¦×•×¤×™× × ×•×›×—×™×™×" -#: html/Admin/Global/CustomField.html:55 +#: html/Admin/Global/CustomField.html:54 #. ($CustomField) msgid "Custom Field #%1" msgstr "" -#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:36 +#: 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 "" -#: html/Admin/Elements/EditScrip:73 +#: NOT FOUND IN SOURCE +msgid "Custom Fields for %1" +msgstr "" + +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1613 +#: NOT FOUND IN SOURCE +msgid "Custom field %1 does not apply to this object" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "" -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "" -#: lib/RT/Ticket_Overlay.pm:3427 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "" -#: html/Admin/Elements/EditCustomFields:197 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3577 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "" -#: lib/RT/CustomField_Overlay.pm:350 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "" @@ -1386,19 +1782,19 @@ msgstr "" msgid "Custom field value changed from %1 to %2" msgstr "" -#: lib/RT/CustomField_Overlay.pm:250 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "" -#: lib/RT/CustomField_Overlay.pm:356 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "" -#: lib/RT/CustomField_Overlay.pm:248 lib/RT/CustomField_Overlay.pm:358 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:548 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "" @@ -1406,7 +1802,7 @@ msgstr "" msgid "Data error" msgstr "" -#: html/SelfService/Display.html:39 html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:55 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +#: 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 "ת×ריכי×" @@ -1422,68 +1818,88 @@ msgstr "דצמבר" msgid "Default Autoresponse Template" msgstr "" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "" -#: etc/initialdata:281 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "" -#: etc/initialdata:260 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "" -#: etc/initialdata:272 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "" -#: lib/RT/Transaction_Overlay.pm:643 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "" -#: html/User/Delegation.html:25 html/User/Delegation.html:28 +#: html/User/Delegation.html:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "Delegate specific rights which have been granted to you." msgstr "" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "DelegateRights" msgstr "" -#: html/User/Elements/Tabs:38 +#: html/User/Elements/Tabs:37 msgid "Delegation" msgstr "דלגציות" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "מחק" -#: lib/RT/Queue_Overlay.pm:90 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "" -#: lib/RT/Queue_Overlay.pm:292 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "" -#: lib/RT/User_Overlay.pm:438 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "" @@ -1495,11 +1911,11 @@ msgstr "" msgid "Deleting this object would violate referential integrity. That's bad." msgstr "" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:44 msgid "Deny" msgstr "" -#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:37 +#: 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 "×ª×œ×•×™×™× ×‘×•" @@ -1507,7 +1923,27 @@ msgstr "×ª×œ×•×™×™× ×‘×•" msgid "Dependencies: \\n" msgstr "" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "תלוי ב" @@ -1515,15 +1951,15 @@ msgstr "תלוי ב" msgid "DependsOn" msgstr "" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "יורד" -#: html/SelfService/Create.html:73 html/Ticket/Create.html:119 +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 msgid "Describe the issue below" msgstr "" -#: html/Admin/Elements/AddCustomFieldValue:37 html/Admin/Elements/EditCustomField:39 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +#: 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 "תי×ור" @@ -1531,47 +1967,67 @@ msgstr "תי×ור" msgid "Details" msgstr "פרטי×" -#: html/Ticket/Elements/Tabs:85 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "הצג" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "" -#: lib/RT/Queue_Overlay.pm:75 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "" -#: html/Ticket/Elements/ShowHistory:35 +#: html/Ticket/Elements/ShowHistory:34 msgid "Display mode" msgstr "מצב תצוגה" +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "הצג פנייה #%1" -#: lib/RT/System.pm:54 +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + +#: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "" -#: html/Elements/Refresh:30 +#: html/Elements/Refresh:29 msgid "Don't refresh this page." msgstr "×ל תרענן דף ×–×”." -#: html/Search/Elements/PickRestriction:114 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "×ל תר××” ×ת תוצ×ות החיפוש" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "הורד" -#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download as a tab-delimited file" +msgstr "" + +#: 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 "ת×ריך יעד" @@ -1579,8 +2035,7 @@ msgstr "ת×ריך יעד" msgid "Due date '%1' could not be parsed" msgstr "" -#: bin/rt-commit-handler:754 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "" @@ -1597,11 +2052,23 @@ msgstr "" msgid "Edit Custom Fields for %1" msgstr "" -#: html/Ticket/ModifyLinks.html:36 +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" +msgstr "" + +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Edit Relationships" msgstr "" -#: html/Admin/Queues/Templates.html:42 +#: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "" @@ -1610,11 +2077,15 @@ msgstr "" msgid "Edit keywords" msgstr "" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "" -#: html/Admin/Global/index.html:46 +#: html/Admin/Global/index.html:45 msgid "Edit system templates" msgstr "" @@ -1622,28 +2093,34 @@ msgstr "" msgid "Edit templates for %1" msgstr "" -#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:118 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "" -#: html/Admin/Elements/ModifyUser:25 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "" -#: html/Admin/Elements/EditCustomField:91 +#: html/Admin/Elements/EditCustomField:90 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "" -#: html/Admin/Groups/Members.html:32 +#: html/Admin/Groups/Members.html:31 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "" -#: html/User/Groups/Members.html:129 +#: html/User/Groups/Members.html:128 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "" @@ -1652,64 +2129,96 @@ msgstr "" msgid "Editing template %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2622 lib/RT/Ticket_Overlay.pm:2690 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "" -#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "××™-מייל" -#: lib/RT/User_Overlay.pm:188 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "" -#: html/Admin/Elements/ModifyUser:42 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "" -#: html/Admin/Elements/ModifyUser:54 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "" -#: html/Admin/Elements/EditCustomField:51 +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + +#: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "" -#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 msgid "Enabled (Unchecking this box disables this group)" msgstr "מופעל (מחיקת סימון תיבה זו מבטלת ×ת קבוצה זו)" -#: html/Admin/Queues/Modify.html:84 +#: html/Admin/Queues/Modify.html:83 msgid "Enabled (Unchecking this box disables this queue)" msgstr "" -#: html/Admin/Elements/EditCustomFields:99 +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "" -#: html/Admin/Queues/index.html:56 +#: html/Admin/Queues/index.html:55 msgid "Enabled Queues" msgstr "" -#: html/Admin/Elements/EditCustomField:107 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#: 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 "" -#: lib/RT/CustomField_Overlay.pm:428 +#: NOT FOUND IN SOURCE +msgid "Enabled status: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "" -#: lib/RT/CustomField_Overlay.pm:425 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "" -#: html/Ticket/Elements/EditLinks:112 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "הכנס פניות ×ו כתובות כדי לקשר פניות ×ליהן. הפרד ×¢×¨×›×™× ×¨×‘×™× ×‘×מצעות רווחי×." -#: html/Elements/Login:39 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +#: NOT FOUND IN SOURCE +msgid "Enter up to %1 values" +msgstr "" + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "" @@ -1717,51 +2226,79 @@ msgstr "" msgid "Error adding watcher" msgstr "" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1356 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1532 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "" -#: bin/rt-crontool:194 +#: bin/rt-crontool:190 msgid "Example:" msgstr "" -#: html/Admin/Elements/ModifyUser:64 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "" -#: html/Admin/Elements/ModifyUser:58 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "" -#: html/Admin/Users/Modify.html:73 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "" -#: lib/RT/User_Overlay.pm:302 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "" -#: lib/RT/User_Overlay.pm:309 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "" -#: bin/rt-crontool:138 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "" @@ -1774,31 +2311,51 @@ msgstr "פברו×ר" msgid "February" msgstr "פברו×ר" +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in multiple text areas" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in one text area" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in up to %1 text areas" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "עדיפות סופית" -#: lib/RT/Ticket_Overlay.pm:1162 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "" -#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Find groups whose" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "" -#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "×ž×¦× ×× ×©×™× ×©" -#: html/Search/Listing.html:108 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "×ž×¦× ×¤× ×™×•×ª" @@ -1806,44 +2363,48 @@ msgstr "×ž×¦× ×¤× ×™×•×ª" msgid "Finish Approval" msgstr "" -#: html/Ticket/Elements/Tabs:58 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "" -#: html/Search/Listing.html:41 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "עמוד ר×שון" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "הכרח שינוי" -#: html/Search/Listing.html:106 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "נמצ×ו %1 פניות" -#: lib/RT/Interface/Web.pm:902 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "" -#: html/Admin/Elements/ModifyUser:44 +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "" -#: lib/RT/CustomField_Overlay.pm:38 +#: lib/RT/CustomField_Overlay.pm:37 msgid "FreeformMultiple" msgstr "" -#: lib/RT/CustomField_Overlay.pm:37 +#: lib/RT/CustomField_Overlay.pm:36 msgid "FreeformSingle" msgstr "" @@ -1851,23 +2412,31 @@ msgstr "" msgid "Fri." msgstr "שישי" -#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 msgid "Full headers" msgstr "×›×•×ª×¨×™× ×ž×œ××™×" +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "" -#: lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "" -#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 msgid "Global" msgstr "גלוב×לי" +#: NOT FOUND IN SOURCE +msgid "Global Custom Fields" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "" @@ -1876,12 +2445,16 @@ msgstr "" msgid "Global Scrips" msgstr "" -#: html/Admin/Elements/SelectTemplate:38 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "" -#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "חפש" @@ -1889,11 +2462,11 @@ msgstr "חפש" msgid "Good pgp sig from %1\\n" msgstr "" -#: html/Search/Listing.html:50 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "" -#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "" @@ -1901,7 +2474,7 @@ msgstr "" msgid "Grand" msgstr "" -#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "קבוצה" @@ -1909,11 +2482,11 @@ msgstr "קבוצה" msgid "Group %1 %2: %3" msgstr "קבוצה %1 %2: %3" -#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +#: 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 "זכויות קבוצה" -#: lib/RT/Group_Overlay.pm:965 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "" @@ -1921,7 +2494,7 @@ msgstr "" msgid "Group could not be created." msgstr "" -#: html/Admin/Groups/Modify.html:77 +#: html/Admin/Groups/Modify.html:76 #. ($create_msg) msgid "Group could not be created: %1" msgstr "" @@ -1930,11 +2503,11 @@ msgstr "" msgid "Group created" msgstr "" -#: lib/RT/Group_Overlay.pm:1133 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "" -#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +#: 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 "" @@ -1946,36 +2519,56 @@ msgstr "" msgid "Group not specified.\\n" msgstr "" -#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +#: 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 "קבוצות" -#: lib/RT/Group_Overlay.pm:971 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "" -#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +#: NOT FOUND IN SOURCE +msgid "Groups matching search criteria" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Groups this user belongs to" +msgstr "" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "" -#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "הסטוריה" -#: html/Admin/Elements/ModifyUser:68 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the user %1" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "" -#: html/Elements/Tabs:44 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "דף הבית" -#: lib/RT/Base.pm:74 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "" @@ -1984,55 +2577,75 @@ msgstr "" msgid "I have [quant,_1,concrete mixer]." msgstr "" -#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 msgid "Id" msgstr "" -#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "זהות" -#: etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "" -#: bin/rt-crontool:190 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "" -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: 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 "×× ×¢×“×›× ×ª משהו לעיל, ×ל תשכח ל" -#: lib/RT/Interface/Web.pm:894 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "" -#: lib/RT/Interface/Web.pm:897 +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "" + +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "" -#: html/Admin/Elements/EditCustomFields:74 +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "" -#: html/Admin/Queues/index.html:43 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "" -#: html/Admin/Users/index.html:47 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "" -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "" @@ -2040,11 +2653,11 @@ msgstr "" msgid "Interest noted" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3796 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "" @@ -2053,7 +2666,7 @@ msgstr "" msgid "Invalid Group Type" msgstr "" -#: lib/RT/Principal_Overlay.pm:128 +#: lib/RT/Principal_Overlay.pm:127 msgid "Invalid Right" msgstr "" @@ -2061,44 +2674,44 @@ msgstr "" msgid "Invalid Type" msgstr "" -#: lib/RT/Interface/Web.pm:899 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "" -#: lib/RT/Ticket_Overlay.pm:439 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "" -#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "" -#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +#: 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 "" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3434 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "" -#: lib/RT/Ticket_Overlay.pm:346 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "" -#: bin/rt-crontool:191 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "" -#: bin/rt-crontool:192 +#: 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 "" -#: bin/rt-crontool:163 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "" @@ -2126,7 +2739,7 @@ msgstr "יולי" msgid "July" msgstr "יולי" -#: html/Ticket/Elements/Tabs:99 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "×’'מבו" @@ -2142,27 +2755,35 @@ msgstr "יוני" msgid "Keyword" msgstr "" -#: html/Admin/Elements/ModifyUser:52 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "" -#: html/Ticket/Elements/Tabs:73 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "" -#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "מגע ×חרון" -#: html/Elements/SelectDateType:29 +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + +#: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "קשר ×חרון" -#: html/Search/Elements/TicketHeader:41 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "נודע ל×חרונה" -#: html/Elements/SelectDateType:30 +#: html/Elements/SelectDateType:29 msgid "Last Updated" msgstr "עדכון ×חרון" @@ -2170,15 +2791,19 @@ msgstr "עדכון ×חרון" msgid "LastUpdated" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "נותרה" -#: html/Admin/Users/Modify.html:83 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" msgstr "תן למשתמש ×–×” לגשת ל R" -#: html/Admin/Users/Modify.html:87 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" msgstr "תן ×פשרות להעניק זכויות למשתמש ×–×”" @@ -2190,29 +2815,29 @@ msgstr "" msgid "Limiting queue to %1 %2" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2704 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2716 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2724 lib/RT/Ticket_Overlay.pm:2734 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2645 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2651 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "" -#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "" @@ -2221,85 +2846,109 @@ msgstr "" msgid "Link ticket %1" msgstr "" -#: html/Ticket/Elements/Tabs:97 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "קישורי×" -#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "מיקו×" -#: lib/RT.pm:159 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "" -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "מחובר ×› %1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +#: 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 "כניסה" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "יצי××”" -#: html/Search/Bulk.html:86 +#: NOT FOUND IN SOURCE +msgid "Lookup type mismatch" +msgstr "" + +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "שנה בעלות ל" -#: html/Search/Bulk.html:102 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "שנה סטטוס" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "שנה ת×ריך יעד" -#: html/Search/Bulk.html:110 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "שנה ת×ריך פתרון" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "שנה ת×ריך 'הותחל'" -#: html/Search/Bulk.html:106 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "שנה ת×ריך התחלה" -#: html/Search/Bulk.html:108 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "שנע ת×ריך מגע ×חרון" -#: html/Search/Bulk.html:99 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "שנה עדיפות" -#: html/Search/Bulk.html:100 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "שנה תור" -#: html/Search/Bulk.html:98 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "שנה נוש×" -#: html/Admin/index.html:33 +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Manage custom fields and custom field values" +msgstr "" + +#: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "נהל קבוצות וחברות בקבוצות" -#: html/Admin/index.html:39 +#: html/Admin/index.html:38 msgid "Manage properties and configuration which apply to all queues" msgstr "נהל מ××¤×™×™× ×™× ×•×”×’×“×¨×•×ª ×©×ª×§×¤×™× ×œ×›×œ התורות" -#: html/Admin/index.html:36 +#: html/Admin/index.html:35 msgid "Manage queues and queue-specific properties" msgstr "נהל תורות ומ××¤×™×™× ×™× ×¡×¤×¦×™×¤×™×™× ×œ×ª×•×¨×•×ª" -#: html/Admin/index.html:30 +#: html/Admin/index.html:29 msgid "Manage users and passwords" msgstr "נהל ×ž×©×ª×ž×©×™× ×•×¡×¤×¨×™×•×ª" @@ -2319,19 +2968,29 @@ msgstr "מ××™" msgid "May." msgstr "מ××™" -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "חבר הוסף" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "חבר נמחק" -#: lib/RT/Group_Overlay.pm:1144 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "חבר ×œ× × ×ž×—×§" -#: html/Elements/SelectLinkType:26 +#: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "חבר ב" @@ -2339,39 +2998,90 @@ msgstr "חבר ב" msgid "MemberOf" msgstr "" -#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "חברי×" -#: lib/RT/Ticket_Overlay.pm:2891 +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships of the user %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "מיזוג הצליח" -#: lib/RT/Ticket_Overlay.pm:2811 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "מיזוג נכשל. ×œ× ×™×›×•×œ×ª×™ להגדיר מזהה ×פקטיבי" -#: html/Ticket/Elements/EditLinks:115 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "מזג לתוך" -#: html/Ticket/Update.html:102 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "הודעה" -#: lib/RT/Interface/Web.pm:901 +#: NOT FOUND IN SOURCE +msgid "Message body not shown because it is too large or is not plain text." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "חסר מפתח ר×שי?: %1" -#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "נייד" -#: html/Admin/Elements/ModifyUser:72 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "טלפון נייד" -#: lib/RT/Queue_Overlay.pm:70 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "שנה רשימת בקרת גישה" @@ -2379,15 +3089,31 @@ msgstr "שנה רשימת בקרת גישה" msgid "Modify Custom Field %1" msgstr "" -#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all %1" +msgstr "" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "" @@ -2399,43 +3125,55 @@ msgstr "" msgid "Modify Template %1" msgstr "" -#: html/Admin/Queues/CustomField.html:45 +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + +#: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:53 +#: html/Admin/Global/CustomField.html:52 msgid "Modify a CustomField which applies to all queues" msgstr "" -#: html/Admin/Queues/Scrip.html:54 +#: html/Admin/Queues/Scrip.html:53 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "" -#: html/Admin/Global/Scrip.html:48 +#: html/Admin/Global/Scrip.html:47 msgid "Modify a scrip which applies to all queues" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify associated objects for %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "" -#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "" -#: html/Ticket/ModifyDates.html:35 +#: html/Ticket/ModifyDates.html:34 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "" -#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 msgid "Modify global group rights" msgstr "" -#: html/Admin/Global/GroupRights.html:33 +#: html/Admin/Global/GroupRights.html:32 msgid "Modify global group rights." msgstr "" @@ -2451,11 +3189,11 @@ msgstr "" msgid "Modify global scrips" msgstr "" -#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 msgid "Modify global user rights" msgstr "" -#: html/Admin/Global/UserRights.html:33 +#: html/Admin/Global/UserRights.html:32 msgid "Modify global user rights." msgstr "" @@ -2463,12 +3201,16 @@ msgstr "" msgid "Modify group metadata or delete group" msgstr "" -#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "" + +#: 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 "" -#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "" @@ -2477,74 +3219,78 @@ msgstr "" msgid "Modify membership roster for this group" msgstr "" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "Modify one's own RT account" msgstr "" -#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "" -#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#: 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 "" -#: html/Admin/Queues/Scrips.html:44 +#: html/Admin/Queues/Scrips.html:45 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "" -#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 msgid "Modify scrips which apply to all queues" msgstr "" -#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#: 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 "" -#: html/Admin/Global/Templates.html:44 +#: html/Admin/Global/Templates.html:43 msgid "Modify templates which apply to all queues" msgstr "" -#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 #. ($Group->Name) msgid "Modify the group %1" msgstr "" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "" -#: html/Admin/Users/Modify.html:236 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "" -#: html/Ticket/ModifyAll.html:37 +#: html/Ticket/ModifyAll.html:36 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "שנה פנייה מספר %1" -#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "שינוי פנוייה מספר %1" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "שינוי פניות" -#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify user rights for custom field %1" +msgstr "" + +#: 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 "" -#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "" @@ -2553,7 +3299,7 @@ msgstr "" msgid "Modify watchers for queue '%1'" msgstr "" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "" @@ -2561,23 +3307,23 @@ msgstr "" msgid "ModifyOwnMembership" msgstr "" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "ModifySelf" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "" @@ -2585,28 +3331,32 @@ msgstr "" msgid "Mon." msgstr "שני" -#: html/Ticket/Elements/ShowRequestor:42 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "עוד לגבי %1" -#: html/Admin/Elements/EditCustomFields:61 +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "" -#: html/Admin/Elements/EditCustomFields:53 +#: html/Admin/Elements/EditCustomFields:52 msgid "Move up" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:27 +#: html/Admin/Elements/SelectSingleOrMultiple:26 msgid "Multiple" msgstr "" -#: lib/RT/User_Overlay.pm:179 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "" -#: html/SelfService/Elements/MyRequests:49 +#: html/SelfService/Elements/MyRequests:48 #. ($friendly_status) msgid "My %1 tickets" msgstr "" @@ -2615,18 +3365,26 @@ msgstr "" msgid "My Approvals" msgstr "×”××™×©×•×¨×™× ×©×œ×™" -#: html/Approvals/index.html:25 html/Approvals/index.html:26 +#: html/Approvals/index.html:24 html/Approvals/index.html:25 msgid "My approvals" msgstr "×”××™×©×•×¨×™× ×©×œ×™" -#: html/Admin/Elements/AddCustomFieldValue:33 html/Admin/Elements/EditCustomField:34 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "ש×" -#: lib/RT/User_Overlay.pm:186 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "×©× ×‘×©×™×ž×•×©" +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "" @@ -2635,43 +3393,59 @@ msgstr "" msgid "Never" msgstr "" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "חדש" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "×™×—×¡×™× ×—×“×©×™×" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "×¡×™×¡×ž× ×—×“×©×”" -#: etc/initialdata:317 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "" -#: html/Ticket/Elements/EditLinks:111 +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "New Relationships" -msgstr "×™×—×¡×™× ×—×“×©×™×" +msgstr "" -#: html/Ticket/Elements/Tabs:36 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "חיפוש חדש" -#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + +#: 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 "" -#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 msgid "New group" msgstr "קבוצה חדשה" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:31 msgid "New password" msgstr "×¡×™×¡×ž× ×—×“×©×”" -#: lib/RT/User_Overlay.pm:647 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "" -#: html/Admin/Elements/QueueTabs:70 +#: html/Admin/Elements/QueueTabs:69 msgid "New queue" msgstr "תור חדש" @@ -2679,11 +3453,11 @@ msgstr "תור חדש" msgid "New request" msgstr "בקשה חדשה" -#: html/Admin/Elements/SelectRights:42 +#: html/Admin/Elements/SelectRights:41 msgid "New rights" msgstr "זכויות חדשות" -#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +#: 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 "סקריפ חדש" @@ -2691,71 +3465,91 @@ msgstr "סקריפ חדש" msgid "New search" msgstr "חיפוש חדש" -#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:50 +#: 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 "תבנית חדשה" -#: html/SelfService/Elements/Tabs:48 +#: html/SelfService/Elements/Tabs:47 msgid "New ticket" msgstr "פנייה חדשה" -#: lib/RT/Ticket_Overlay.pm:2778 +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "פנייה חדשה ×œ× ×§×™×™×ž×ª" -#: html/Admin/Elements/UserTabs:52 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "משתמש חדש" -#: html/Admin/Elements/CreateUserCalled:26 +#: html/Admin/Elements/CreateUserCalled:25 msgid "New user called" msgstr "משתמש חדש שנקר×" -#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 msgid "New watchers" msgstr "×¦×•×¤×™× ×—×“×©×™×" -#: html/Admin/Users/Prefs.html:42 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "" -#: html/Ticket/Elements/Tabs:69 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "הב×" -#: html/Search/Listing.html:48 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "דף הב×" -#: html/Admin/Elements/ModifyUser:50 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "כינוי" -#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "כינוי" -#: html/Admin/Elements/EditCustomField:90 html/Admin/Elements/EditCustomFields:105 +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "" -#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "" -#: bin/rt-crontool:56 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "" -#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 msgid "No Template" msgstr "" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "" @@ -2763,11 +3557,11 @@ msgstr "" msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "" -#: html/Approvals/Elements/Approve:46 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "" -#: lib/RT/Interface/Web.pm:896 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "" @@ -2775,57 +3569,64 @@ msgstr "" msgid "No command found\\n" msgstr "" -#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "" -#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#: 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 "" -#: lib/RT/Users_Overlay.pm:145 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "" -#: lib/RT/User_Overlay.pm:865 +#: NOT FOUND IN SOURCE +msgid "No groups matching search criteria found." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "" -#: lib/RT/Queue_Overlay.pm:259 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "" -#: lib/RT/Ticket_Overlay.pm:342 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "" -#: lib/RT/User_Overlay.pm:152 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "" -#: html/SelfService/Display.html:118 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "" -#: html/SelfService/Update.html:52 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "" -#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 msgid "No principals selected." msgstr "" -#: html/Admin/Queues/index.html:35 +#: html/Admin/Queues/index.html:34 msgid "No queues matching search criteria found." msgstr "" @@ -2833,19 +3634,23 @@ msgstr "" msgid "No rights found" msgstr "" -#: html/Admin/Elements/SelectRights:33 +#: html/Admin/Elements/SelectRights:32 msgid "No rights granted." msgstr "" -#: html/Search/Bulk.html:149 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "" +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "" -#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "" @@ -2853,23 +3658,23 @@ msgstr "" msgid "No user or email address specified" msgstr "" -#: html/Admin/Users/index.html:36 +#: html/Admin/Users/index.html:35 msgid "No users matching search criteria found." msgstr "" -#: bin/rt-commit-handler:644 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "" -#: lib/RT/Interface/Web.pm:893 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "" -#: html/Search/Elements/TicketRow:37 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "××£ ×חד" -#: lib/RT/Interface/Web.pm:898 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "" @@ -2877,7 +3682,7 @@ msgstr "" msgid "Not logged in" msgstr "×œ× ×‘×ª×•×š המערכת" -#: html/Elements/Header:59 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "×œ× ×‘×ª×•×š המערכת." @@ -2885,7 +3690,7 @@ msgstr "×œ× ×‘×ª×•×š המערכת." msgid "Not set" msgstr "×œ× ×”×•×–×Ÿ" -#: html/NoAuth/Reminder.html:27 +#: html/NoAuth/Reminder.html:26 msgid "Not yet implemented." msgstr "" @@ -2893,59 +3698,79 @@ msgstr "" msgid "Not yet implemented...." msgstr "" -#: html/Approvals/Elements/Approve:49 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "" -#: lib/RT/User_Overlay.pm:650 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "" -#: etc/initialdata:94 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "" -#: etc/initialdata:90 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "" -#: etc/initialdata:121 +#: 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:117 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "" -#: etc/initialdata:86 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "" -#: etc/initialdata:82 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "" -#: etc/initialdata:319 etc/upgrade/2.1.71:17 +#: 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:78 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "" -#: etc/initialdata:104 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "" -#: etc/initialdata:99 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "" -#: etc/initialdata:113 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "" -#: etc/initialdata:109 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "" @@ -2957,14 +3782,22 @@ msgstr "נובמבר" msgid "November" msgstr "נובמבר" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "" -#: lib/RT/Record.pm:176 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Object of type %1 cannot take custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Object type mismatch" +msgstr "" + #: lib/RT/Date.pm:420 msgid "Oct." msgstr "×וקטובר" @@ -2973,57 +3806,73 @@ msgstr "×וקטובר" msgid "October" msgstr "×וקטובר" -#: html/Elements/SelectDateRelation:35 +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + +#: html/Elements/SelectDateRelation:34 msgid "On" msgstr "ב" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "" -#: etc/initialdata:177 +#: 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:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:50 +#: 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 "הצג רק ××™×©×•×¨×™× ×¢×‘×•×¨ בקשות שנוצרו ×חרי %1" -#: html/Approvals/Elements/PendingMyApproval:48 +#: 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 "הצג רק ××™×©×•×¨×™× ×¢×‘×•×¨ בקשות שנוצרו לפני %1" -#: html/Elements/Quicksearch:31 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "פתוח" -#: html/Ticket/Elements/Tabs:136 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "פתח" @@ -3031,70 +3880,94 @@ msgstr "פתח" msgid "Open requests" msgstr "" -#: html/SelfService/Elements/Tabs:42 +#: html/SelfService/Elements/Tabs:41 msgid "Open tickets" msgstr "" -#: html/Admin/Users/Prefs.html:41 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "" -#: etc/initialdata:133 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "" -#: html/Search/Elements/PickRestriction:101 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "סידור ומיון" -#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "×רגון" -#: html/Approvals/Elements/Approve:33 +#: html/Approvals/Elements/Approve:32 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "" -#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "" -#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "בעלי×" -#: lib/RT/Ticket_Overlay.pm:3071 -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +#: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" msgstr "" -#: lib/RT/Transaction_Overlay.pm:582 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "" -#: html/Search/Elements/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "הבעלי×" -#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "ביפר" -#: html/Admin/Elements/ModifyUser:74 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "" @@ -3102,60 +3975,64 @@ msgstr "" msgid "Parent" msgstr "" -#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:47 +#: 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 "הורי×" -#: html/Elements/Login:52 html/User/Prefs.html:61 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "סיסמ×" -#: html/NoAuth/Reminder.html:25 +#: html/NoAuth/Reminder.html:24 msgid "Password Reminder" msgstr "מזכיר סיסמ×" -#: lib/RT/User_Overlay.pm:169 lib/RT/User_Overlay.pm:868 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "×¡×™×¡×ž× ×§×¦×¨×” מדי" -#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "סיסמ×: %1" -#: html/Admin/Users/Modify.html:293 +#: html/Admin/Users/Modify.html:318 msgid "Passwords do not match." msgstr "הסיסמ×ות ×ינן תו×מות" -#: html/User/Prefs.html:174 +#: html/User/Prefs.html:211 msgid "Passwords do not match. Your password has not been changed" msgstr "" -#: html/Ticket/Elements/ShowSummary:45 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "×נשי×" -#: etc/initialdata:126 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "" -#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:101 lib/RT/CustomField_Overlay.pm:202 lib/RT/CustomField_Overlay.pm:234 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:91 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2603 lib/RT/Ticket_Overlay.pm:2675 lib/RT/Ticket_Overlay.pm:2769 lib/RT/Ticket_Overlay.pm:2784 lib/RT/Ticket_Overlay.pm:2978 lib/RT/Ticket_Overlay.pm:3206 lib/RT/Ticket_Overlay.pm:3404 lib/RT/Ticket_Overlay.pm:3566 lib/RT/Ticket_Overlay.pm:3618 lib/RT/Ticket_Overlay.pm:3783 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1355 lib/RT/User_Overlay.pm:570 lib/RT/User_Overlay.pm:605 lib/RT/User_Overlay.pm:861 lib/RT/User_Overlay.pm:962 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "" -#: html/User/Elements/Tabs:35 +#: html/User/Elements/Tabs:34 msgid "Personal Groups" msgstr "קבוצות ×ישיות" -#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 msgid "Personal groups" msgstr "קבוצות ×ישיות" -#: html/User/Elements/DelegateRights:37 +#: html/User/Elements/DelegateRights:36 msgid "Personal groups:" msgstr "קבוצות ×ישיות" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "מספרי טלפון" @@ -3167,7 +4044,7 @@ msgstr "" msgid "Pref" msgstr "" -#: html/Elements/Header:52 html/Elements/Tabs:53 html/SelfService/Elements/Tabs:51 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +#: 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 "מ×פייני×" @@ -3175,15 +4052,19 @@ msgstr "מ×פייני×" msgid "Prefs" msgstr "" -#: lib/RT/Action/Generic.pm:160 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "" -#: html/Ticket/Elements/Tabs:61 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "הקוד×" -#: html/Search/Listing.html:44 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "דף קוד×" @@ -3191,41 +4072,57 @@ msgstr "דף קוד×" msgid "Pri" msgstr "" -#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#: 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 "" -#: html/Search/Elements/PickRestriction:54 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "עדיפות" -#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "" -#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "" -#: html/Admin/Users/index.html:62 +#: html/Admin/Users/index.html:61 msgid "Privileged users" 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 "" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:33 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "תור" -#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:44 +#: 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" @@ -3239,7 +4136,7 @@ msgstr "" msgid "Queue Keyword Selections" msgstr "" -#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "" @@ -3247,19 +4144,19 @@ msgstr "" msgid "Queue Scrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:263 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "" -#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "" -#: html/Ticket/Create.html:205 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "" @@ -3267,30 +4164,37 @@ msgstr "" msgid "Queue is not specified." msgstr "" -#: html/SelfService/Display.html:71 lib/RT/CustomField_Overlay.pm:98 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "" -#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 msgid "Queues" msgstr "תורי×" -#: html/Elements/Quicksearch:25 +#: html/Elements/Quicksearch:24 msgid "Quick search" msgstr "חיפוש מהיר" +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + #: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:70 +#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 #. ($RT::VERSION, $RT::rtname) msgid "RT %1 for %2" msgstr "" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: NOT FOUND IN SOURCE msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." msgstr "" @@ -3302,7 +4206,7 @@ msgstr "" msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "" -#: html/Admin/index.html:25 html/Admin/index.html:26 +#: html/Admin/index.html:24 html/Admin/index.html:25 msgid "RT Administration" msgstr "ניהול RT" @@ -3322,7 +4226,7 @@ msgstr "" msgid "RT Critical error. Message not recorded!" msgstr "" -#: html/Elements/Error:41 html/SelfService/Error.html:41 +#: html/Elements/Error:41 html/SelfService/Error.html:40 msgid "RT Error" msgstr "" @@ -3334,11 +4238,19 @@ msgstr "" msgid "RT Recieved mail (%1) from itself." msgstr "" +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "" -#: html/index.html:25 html/index.html:28 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "RT ממבט כולל" @@ -3358,7 +4270,7 @@ msgstr "" msgid "RT couldn't validate this PGP signature. \\n" msgstr "" -#: html/Elements/PageLayout:26 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "RT / %1" @@ -3371,11 +4283,14 @@ msgstr "" msgid "RT has proccessed your commands" msgstr "" -#: html/Elements/Login:92 -#. ('2003') +#: 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 "" +#: 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 "" + #: 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 "" @@ -3392,19 +4307,43 @@ msgstr "" msgid "RT's email command mode requires PGP authentication. Either you didn't sign your message, or your signature could not be verified." msgstr "" -#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "×©× ×מיתי" -#: html/Admin/Elements/ModifyUser:48 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "×©× ×מיתי" -#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:71 +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "×ž×ª×™×™×—×¡×™× ×ליו" -#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:61 +#: 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 "מתייחס ל" @@ -3416,20 +4355,20 @@ msgstr "" msgid "Refine" msgstr "" -#: html/Search/Elements/PickRestriction:27 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "חדד ×ת החיפוש" -#: html/Elements/Refresh:36 +#: html/Elements/Refresh:35 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "רענן דף ×–×” כל %1 דקות." -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:62 html/Ticket/ModifyAll.html:57 +#: NOT FOUND IN SOURCE msgid "Relationships" -msgstr "×™×—×¡×™× ×¢× ×¤× ×™×•×ª ×חרות" +msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "הסר העתק ניהולי" @@ -3437,27 +4376,35 @@ msgstr "הסר העתק ניהולי" msgid "Remove Cc" msgstr "הסר העתק" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "הסר מבקש" -#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "הגב" -#: lib/RT/Queue_Overlay.pm:85 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "מענה לפנייה" -#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "מבקש" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "כתובת ×”××™-מייל של המבקש" @@ -3469,98 +4416,107 @@ msgstr "מבקש(×™×)" msgid "RequestorAddresses" msgstr "כתובת הפונה" -#: html/SelfService/Create.html:41 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "מבקשי×" -#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "" -#: html/Elements/Submit:62 +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + +#: html/Elements/Submit:61 msgid "Reset" msgstr "×פס נתוני×" -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "בית" -#: html/Ticket/Elements/Tabs:132 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "פתור" -#: html/Ticket/Update.html:133 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "פתור פנייה #%1 (%2)" -#: etc/initialdata:308 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "נפתר" -#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "תגובה למבקשי×" -#: html/Elements/ListActions:26 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "תוצ×ות" -#: html/Search/Elements/PickRestriction:105 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "תוצ×ות לעמוד" -#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "הקלד שנית:" +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "" -#: lib/RT/ACE_Overlay.pm:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "" -#: lib/RT/ACE_Overlay.pm:161 +#: lib/RT/ACE_Overlay.pm:160 msgid "Right Loaded" msgstr "" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "" -#: html/User/Delegation.html:64 +#: html/User/Delegation.html:63 msgid "Right not found" msgstr "" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "" -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "" -#: html/Admin/Elements/UserTabs:41 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "" -#: lib/RT/Interface/Web.pm:792 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "" -#: lib/RT/Interface/Web.pm:825 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "" -#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "" @@ -3568,32 +4524,53 @@ msgstr "" msgid "RootApproval" msgstr "" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "שבת" -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyLinks.html:39 html/Ticket/ModifyPeople.html:38 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "שמור שינויי×" -#: NOT FOUND IN SOURCE +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "שמור שינויי×" -#: html/Admin/Global/Scrip.html:49 +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "" -#: lib/RT/Scrip_Overlay.pm:176 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "" -#: html/Admin/Elements/EditScrips:84 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "" -#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 msgid "Scrips" msgstr "" @@ -3605,7 +4582,7 @@ msgstr "" msgid "Scrips which apply to all queues" msgstr "" -#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "חיפוש" @@ -3613,19 +4590,63 @@ msgstr "חיפוש" msgid "Search Criteria" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:39 +#: html/Approvals/Elements/PendingMyApproval:38 msgid "Search for approvals" msgstr "" -#: bin/rt-crontool:188 +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "" + +#: bin/rt-crontool:184 msgid "Security:" msgstr "" -#: lib/RT/Queue_Overlay.pm:67 +#: NOT FOUND IN SOURCE +msgid "See custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "SeeCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "" -#: html/Admin/Groups/index.html:40 +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Field" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "" @@ -3633,87 +4654,111 @@ msgstr "" msgid "Select a queue" msgstr "" -#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" msgstr "" -#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "" -#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" msgstr "בחר קבוצה" -#: lib/RT/CustomField_Overlay.pm:422 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "" -#: lib/RT/CustomField_Overlay.pm:419 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "" -#: html/Admin/Elements/QueueTabs:67 +#: html/Admin/Elements/QueueTabs:66 msgid "Select queue" msgstr "" -#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +#: 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 "" -#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 html/Admin/Queues/Templates.html:47 +#: 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 "" -#: html/Admin/Elements/UserTabs:49 +#: NOT FOUND IN SOURCE +msgid "Select up to %1 values" +msgstr "" + +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "" -#: lib/RT/CustomField_Overlay.pm:36 +#: lib/RT/CustomField_Overlay.pm:35 msgid "SelectMultiple" msgstr "" -#: lib/RT/CustomField_Overlay.pm:35 +#: lib/RT/CustomField_Overlay.pm:34 msgid "SelectSingle" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Selected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Selected objects" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Self Service" msgstr "" -#: etc/initialdata:114 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "" -#: etc/initialdata:110 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "" -#: etc/initialdata:105 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "" -#: etc/initialdata:100 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "" -#: etc/initialdata:79 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "" -#: etc/initialdata:118 etc/initialdata:122 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "" -#: etc/initialdata:95 +#: 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:91 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "" -#: etc/initialdata:83 etc/initialdata:87 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "" @@ -3721,59 +4766,87 @@ msgstr "" msgid "Sep." msgstr "ספטמבר" +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "" + #: NOT FOUND IN SOURCE msgid "September" msgstr "ספטמבר" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:44 +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "הצג בקשות ש×ושרו" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show basics" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:44 msgid "Show denied requests" msgstr "הצג בקשות שנדחו" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show details" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:42 msgid "Show pending requests" msgstr "הצג בקשות ממתינות" -#: html/Approvals/Elements/PendingMyApproval:46 +#: html/Approvals/Elements/PendingMyApproval:45 msgid "Show requests awaiting other approvals" msgstr "הצג בקשות שממתינות ל××™×©×•×¨×™× ×חרי×" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "" @@ -3781,15 +4854,15 @@ msgstr "" msgid "ShowTicketComments" msgstr "" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "" -#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/User/Prefs.html:112 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "חתימה" @@ -3797,23 +4870,27 @@ msgstr "חתימה" msgid "Signed in as %1" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:25 msgid "Single" msgstr "" -#: html/Elements/Header:51 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "" -#: html/Admin/Elements/AddCustomFieldValue:29 +#: html/Admin/Elements/AddCustomFieldValue:27 msgid "Sort" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Sort key" msgstr "" -#: html/Search/Elements/PickRestriction:109 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "סדר תוצ×ות על פי" @@ -3821,6 +4898,14 @@ msgstr "סדר תוצ×ות על פי" msgid "SortOrder" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "מושהה" @@ -3829,7 +4914,7 @@ msgstr "מושהה" msgid "Start page" msgstr "" -#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "התחיל" @@ -3837,7 +4922,7 @@ msgstr "התחיל" msgid "Started date '%1' could not be parsed" msgstr "" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "מתחיל ב" @@ -3849,19 +4934,19 @@ msgstr "" msgid "Starts date '%1' could not be parsed" msgstr "" -#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "מדינה" -#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +#: 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 "מצב" -#: etc/initialdata:294 +#: etc/initialdata:309 msgid "Status Change" msgstr "" -#: lib/RT/Transaction_Overlay.pm:528 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "" @@ -3870,28 +4955,40 @@ msgstr "" msgid "StatusChange" msgstr "" -#: html/Ticket/Elements/Tabs:147 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "גנוב" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "נגנב מ %1" -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:57 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:32 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +#: 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 "נוש×" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#: 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 "× ×•×©× ×©×•× ×” ל %1" -#: html/Elements/Submit:59 +#: html/Elements/Submit:58 msgid "Submit" msgstr "שלח" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "" @@ -3900,19 +4997,31 @@ msgstr "" msgid "Succeeded" msgstr "הצליח" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + #: lib/RT/Date.pm:394 msgid "Sun." msgstr "ר×שון" -#: lib/RT/System.pm:54 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "סופר-משתמש" -#: html/User/Elements/DelegateRights:77 +#: html/User/Elements/DelegateRights:76 msgid "System" msgstr "מערכת" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:791 lib/RT/Interface/Web.pm:824 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "" @@ -3924,11 +5033,15 @@ msgstr "" msgid "System Error. right not granted" msgstr "" -#: lib/RT/ACE_Overlay.pm:616 +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "" -#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "" @@ -3936,7 +5049,7 @@ msgstr "" msgid "System error. Unable to grant rights." msgstr "" -#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 msgid "System groups" msgstr "" @@ -3944,32 +5057,44 @@ msgstr "" msgid "SystemRolegroup for internal use" msgstr "" -#: lib/RT/CurrentUser.pm:318 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "" -#: html/Ticket/Elements/Tabs:143 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "×§×—" -#: lib/RT/Transaction_Overlay.pm:573 +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "נלקחה" -#: html/Admin/Elements/EditScrip:81 +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "" + +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "" -#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "" -#: html/Admin/Elements/EditTemplates:89 +#: html/Admin/Elements/EditTemplates:88 msgid "Template deleted" msgstr "" -#: lib/RT/Scrip_Overlay.pm:153 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "" @@ -3977,11 +5102,11 @@ msgstr "" msgid "Template not found\\n" msgstr "" -#: lib/RT/Template_Overlay.pm:347 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "" -#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 msgid "Templates" msgstr "" @@ -3989,47 +5114,50 @@ msgstr "" msgid "Templates for %1\\n" msgstr "" -#: lib/RT/Interface/Web.pm:892 +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "" + +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "" -#: lib/RT/CustomField_Overlay.pm:243 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1886 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "" -#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 msgid "That principal already has that right" msgstr "" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1434 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1551 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1882 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3210 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "" @@ -4037,27 +5165,27 @@ msgstr "" msgid "That user already has that right" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3020 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2986 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "" -#: lib/RT/User_Overlay.pm:315 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "" -#: lib/RT/User_Overlay.pm:336 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "" -#: lib/RT/User_Overlay.pm:328 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "" -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "" @@ -4065,67 +5193,79 @@ msgstr "" msgid "That user is now unprivilegedileged" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3012 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "" -#: lib/RT/Link_Overlay.pm:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "" -#: html/SelfService/Display.html:32 html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 msgid "The Basics" msgstr "מידע בסיסי" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:87 msgid "The CC of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:89 +#: lib/RT/ACE_Overlay.pm:88 msgid "The administrative CC of a ticket" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2213 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "" -#: bin/rt-crontool:198 +#: 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 "" -#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "" -#: lib/RT/Interface/Web.pm:895 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:85 msgid "The owner of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:86 msgid "The requestor of a ticket" msgstr "" -#: html/Admin/Elements/EditUserComments:26 +#: html/Admin/Elements/EditUserComments:25 msgid "These comments aren't generally visible to the user" msgstr "" +#: NOT FOUND IN SOURCE +msgid "This custom field does not apply to that object" +msgstr "" + +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +msgid "This message will be sent to..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "" -#: bin/rt-crontool:189 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "" -#: lib/RT/Transaction_Overlay.pm:251 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "" -#: html/Ticket/Elements/ShowRequestor:47 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "" @@ -4150,32 +5290,42 @@ msgstr "" msgid "Ticket # %1 Jumbo update: %2" msgstr "פנייה מספר %1 עדכון ×’'מבו: %2" -#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "פנייה מספר %1 עדכון ×’'מבו: %2" -#: html/Approvals/Elements/ShowDependency:46 +#: html/Approvals/Elements/ShowDependency:45 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "" -#: lib/RT/Ticket_Overlay.pm:587 lib/RT/Ticket_Overlay.pm:608 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "" -#: bin/rt-commit-handler:760 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "" -#: html/Search/Bulk.html:181 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "" -#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#: NOT FOUND IN SOURCE +msgid "Ticket Custom Fields" +msgstr "" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "" @@ -4184,27 +5334,31 @@ msgstr "" msgid "Ticket Id" msgstr "" -#: etc/initialdata:309 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "" -#: html/Search/Elements/PickRestriction:63 +#: NOT FOUND IN SOURCE +msgid "Ticket Transactions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "מצורף לפנייה" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "" -#: lib/RT/Ticket_Overlay.pm:496 lib/RT/Ticket_Overlay.pm:597 +#: 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 "" -#: lib/RT/Transaction_Overlay.pm:520 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "פנייה נוצרה" @@ -4212,11 +5366,11 @@ msgstr "פנייה נוצרה" msgid "Ticket creation failed" msgstr "" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "פנייה נמחקה" -#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +#: NOT FOUND IN SOURCE msgid "Ticket id not found" msgstr "מזהה פנייה ×œ× × ×ž×¦×" @@ -4224,58 +5378,65 @@ msgstr "מזהה פנייה ×œ× × ×ž×¦×" msgid "Ticket killed" msgstr "פנייה נמחקה" -#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "פנייה ×œ× × ×ž×¦××”" -#: etc/initialdata:295 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "סטטוס פנייה שונה" -#: html/Ticket/Update.html:39 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "צופי הפנייה" -#: html/Elements/Tabs:47 +#: html/Elements/Tabs:46 msgid "Tickets" msgstr "פניות" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "" -#: html/Approvals/Elements/ShowDependency:27 +#: html/Approvals/Elements/ShowDependency:26 msgid "Tickets which depend on this approval:" msgstr "" -#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "זמן נותר" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "זמן עבודה" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "זמן נותר" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "זמן להציג" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "זמן עבודה" @@ -4283,40 +5444,57 @@ msgstr "זמן עבודה" msgid "TimeLeft" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1165 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "" -#: bin/rt-commit-handler:402 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "" -#: bin/rt-commit-handler:391 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1168 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "" -#: lib/RT/Transaction_Overlay.pm:640 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "" -#: lib/RT/Transaction_Overlay.pm:89 +#: NOT FOUND IN SOURCE +msgid "Transaction Custom Fields" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "" -#: lib/RT/Transaction_Overlay.pm:699 +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "" @@ -4328,76 +5506,108 @@ msgstr "" msgid "Tue." msgstr "שלישי" -#: html/Admin/Elements/EditCustomField:44 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +#: 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 "סוג" -#: lib/RT/ScripCondition_Overlay.pm:104 +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + +#: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "×œ× ×ž×™×™×•×©×" -#: html/Admin/Users/Modify.html:68 +#: html/Admin/Users/Modify.html:67 msgid "Unix login" msgstr "" -#: html/Admin/Elements/ModifyUser:62 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "" -#: lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "" -#: html/Elements/SelectResultsPerPage:37 +#: html/Elements/SelectResultsPerPage:36 msgid "Unlimited" msgstr "×œ× ×ž×•×’×‘×œ" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "" -#: lib/RT/Transaction_Overlay.pm:569 +#: NOT FOUND IN SOURCE +msgid "Unselected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Unselected objects" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "" -#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "" + +#: html/Search/Bulk.html:32 msgid "Update" msgstr "עדכן" -#: html/Admin/Users/Prefs.html:62 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "" -#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "סוג עדכון" -#: html/Search/Listing.html:61 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "עדכן ×ת כל הפניות לעיל בבת ×חת" -#: html/Admin/Users/Prefs.html:49 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "עדכן ××™-מייל" -#: html/Admin/Users/Prefs.html:55 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "עדכן ש×" -#: lib/RT/Interface/Web.pm:409 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "" -#: html/Search/Bulk.html:81 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "עדכן פניות נבחרות" -#: html/Admin/Users/Prefs.html:36 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "עדכן חתימה" -#: html/Ticket/ModifyAll.html:63 +#: html/Ticket/ModifyAll.html:62 msgid "Update ticket" msgstr "עדכן פנייה" @@ -4405,24 +5615,60 @@ msgstr "עדכן פנייה" msgid "Update ticket # %1" msgstr "" -#: html/SelfService/Update.html:25 html/SelfService/Update.html:47 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "" -#: html/Ticket/Update.html:135 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "" -#: lib/RT/Interface/Web.pm:407 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "" -#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "עודכן" +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple images" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one image" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 images" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "" @@ -4431,6 +5677,11 @@ msgstr "" msgid "User %1 Password: %2\\n" msgstr "" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "" @@ -4439,60 +5690,80 @@ msgstr "" msgid "User '%1' not found\\n" msgstr "" -#: etc/initialdata:125 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "" -#: html/Admin/Users/Prefs.html:59 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "מזהה המשתמש" -#: html/Elements/SelectUsers:26 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "מזהה המשתמש" -#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +#: 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 "זכויות המשתמש" -#: html/Admin/Users/Modify.html:226 +#: NOT FOUND IN SOURCE +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" + +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "" -#: lib/RT/User_Overlay.pm:262 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "" -#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "" +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User notified" msgstr "" -#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "" -#: html/Admin/Users/Modify.html:48 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:35 +#: NOT FOUND IN SOURCE +msgid "User-defined groups" +msgstr "" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "×©× ×ž×©×ª×ž×©" -#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +#: 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 "משתמשי×" -#: html/Admin/Users/index.html:65 +#: html/Admin/Users/index.html:64 msgid "Users matching search criteria" msgstr "" -#: html/Search/Elements/PickRestriction:51 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "" -#: html/Admin/Elements/EditCustomField:57 +#: html/Admin/Elements/EditCustomField:56 msgid "Values" msgstr "" @@ -4500,11 +5771,11 @@ msgstr "" msgid "VrijevormEnkele" msgstr "" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "" @@ -4512,11 +5783,11 @@ msgstr "" msgid "Watcher loaded" msgstr "" -#: html/Admin/Elements/QueueTabs:42 +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "" -#: html/Admin/Elements/ModifyUser:56 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "" @@ -4524,75 +5795,103 @@ msgstr "" msgid "Wed." msgstr "רביעי" -#: etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "" -#: etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "" -#: etc/upgrade/2.1.71:79 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "בכל ×¤×¢× ×©×“×‘×¨ ×›×œ×©×”×•× ×§×•×¨×”" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "בכל ×¤×¢× ×©×¤× ×™×™×” נסגרת" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "בכל ×¤×¢× ×©×‘×¢×œ×™ הפנייה משתנה" -#: etc/initialdata:178 +#: 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:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "בכל ×¤×¢× ×©×ž×¦×‘ הפנייה משתנה" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "בכל ×¤×¢× ×©×ž×¦×‘ מוגדר על ידי משתמש קורה" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "בכל ×¤×¢× ×©×”×¢×¨×” מגיעה ב" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "בכל ×¤×¢× ×©×ª×›×ª×•×‘×ª מגיעה ב" -#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "עבודה" -#: html/Admin/Elements/ModifyUser:70 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "טלפון בעבודה" -#: html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "זמן טיפול" -#: lib/RT/Ticket_Overlay.pm:3123 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "×תה כבר ×”×‘×¢×œ×™× ×©×œ פנייה זו" -#: html/autohandler:108 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "×ינך משתמש מורשה" -#: lib/RT/Ticket_Overlay.pm:2998 +#: NOT FOUND IN SOURCE +msgid "You can access it with the Download button on the right." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "×תה יכול להציב פניה רק ×× ×תה ×”×‘×¢×œ×™× ×©×œ×”, ×ו ש×ין לה בעלי×" @@ -4600,24 +5899,24 @@ msgstr "×תה יכול להציב פניה רק ×× ×תה ×”×‘×¢×œ×™× ×©×œ×” msgid "You don't have permission to view that ticket.\\n" msgstr "×ין לך הרש××” כדי לר×ות ×ת פנייה זו.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "מצ×ת %1 פניות בתור %2" -#: html/NoAuth/Logout.html:31 +#: html/NoAuth/Logout.html:30 msgid "You have been logged out of RT." msgstr "התנתקת מהמערכת." -#: html/SelfService/Display.html:78 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "×ין לך הרש×ות ליצור פניות בתור ×–×”." -#: lib/RT/Ticket_Overlay.pm:1895 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "×ינך מורשה ליצור פניות בתור ×–×”." -#: html/NoAuth/Logout.html:36 +#: html/NoAuth/Logout.html:34 msgid "You're welcome to login again" msgstr "הנך מוזמן להיכנס שנית" @@ -4629,11 +5928,11 @@ msgstr "%1 הבקשות שלך" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "מנהל המערכת ×œ× ×”×’×“×™×¨ ×ת כתובות הדו×ר שמפעילות ×ת התוכנה כמו שצריך" -#: etc/initialdata:435 etc/upgrade/2.1.71:146 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "בקשתך ×ושרה על ידי %1. ייתכן ש××™×©×•×¨×™× × ×•×¡×¤×™× ×¢×“×™×™×Ÿ ממתיני×." -#: etc/initialdata:469 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "בקשתך ×ושרה." @@ -4641,15 +5940,15 @@ msgstr "בקשתך ×ושרה." msgid "Your request was rejected" msgstr "בקשתך נדחתה" -#: etc/initialdata:390 etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "בקשתך נדחתה." -#: html/autohandler:127 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "×©× ×”×ž×©×ª×ž×© ו/×ו ×”×¡×™×¡×ž× ××™× × × ×›×•× ×™×" -#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "מיקוד" @@ -4657,36 +5956,44 @@ msgstr "מיקוד" msgid "[no subject]" msgstr "[×œ×œ× × ×•×©×]" -#: html/User/Elements/DelegateRights:59 +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + +#: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "שהוענק ל%1" -#: html/SelfService/Closed.html:28 +#: html/SelfService/Closed.html:27 msgid "closed" msgstr "סגור" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 msgid "contains" msgstr "מכיל" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content" msgstr "תוכן" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "סוג התוכן" -#: lib/RT/Ticket_Overlay.pm:2282 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "התכתבות (כנר××”) ×œ× × ×©×œ×—×”" -#: lib/RT/Ticket_Overlay.pm:2292 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "התכתבות נשלחה" -#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "ימי×" @@ -4694,23 +6001,27 @@ msgstr "ימי×" msgid "dead" msgstr "" -#: html/Search/Listing.html:75 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "מחק" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "מחוק" -#: html/Search/Elements/PickRestriction:68 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "×œ× ×ž×›×™×œ" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 msgid "doesn't contain" msgstr "×œ× ×ž×›×™×œ" -#: html/Elements/SelectEqualityOperator:38 +#: NOT FOUND IN SOURCE +msgid "email address" +msgstr "" + +#: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "שווה ל" @@ -4718,15 +6029,15 @@ msgstr "שווה ל" msgid "false" msgstr "" -#: html/Elements/SelectAttachmentField:28 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "×©× ×§×•×‘×¥" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "greater than" msgstr "גדול מ" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "קבוצה %1" @@ -4739,19 +6050,23 @@ msgstr "שעות" msgid "id" msgstr "מזהה" -#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + +#: 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 "הו×" -#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +#: 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 "×”×•× ×œ×" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "less than" msgstr "פחות מ" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "מכיל" @@ -4759,11 +6074,11 @@ msgstr "מכיל" msgid "min" msgstr "דקות" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "דקות" -#: bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "" @@ -4771,19 +6086,23 @@ msgstr "" msgid "months" msgstr "חודשי×" -#: lib/RT/Queue_Overlay.pm:58 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "חדש" -#: html/Admin/Elements/EditScrips:43 +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + +#: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "×ין ערך" -#: html/Ticket/Elements/EditWatchers:28 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "×ין" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "not equal to" msgstr "×œ× ×©×•×•×” ל" @@ -4791,25 +6110,25 @@ msgstr "×œ× ×©×•×•×” ל" msgid "notlike" msgstr "" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:59 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "פתוח" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "" -#: lib/RT/Group_Overlay.pm:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "נדחה" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "פתור" @@ -4817,34 +6136,46 @@ msgstr "פתור" msgid "sec" msgstr "" -#: lib/RT/Queue_Overlay.pm:60 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "מושהה" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "" -#: html/Elements/Error:42 html/SelfService/Error.html:42 +#: html/Elements/Error:42 html/SelfService/Error.html:41 msgid "the calling component did not specify why" msgstr "" -#: lib/RT/Group_Overlay.pm:210 +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "" +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "" + #: NOT FOUND IN SOURCE msgid "true" msgstr "" -#: lib/RT/Group_Overlay.pm:216 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "" @@ -4853,7 +6184,7 @@ msgstr "" msgid "undescripbed group %1" msgstr "" -#: lib/RT/Group_Overlay.pm:191 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "" @@ -4869,3 +6200,4 @@ msgstr "" #: lib/RT/Date.pm:331 msgid "years" msgstr "" + diff --git a/rt/lib/RT/I18N/hu.po b/rt/lib/RT/I18N/hu.po index f81a9feab..e0a2e19e9 100644 --- a/rt/lib/RT/I18N/hu.po +++ b/rt/lib/RT/I18N/hu.po @@ -1,4883 +1,6197 @@ -id: 12420 -Subject: -Creator: 27117 -Created: 2004-02-10 08:25:42 -Transaction: 24532 -Parent: 12418 -MessageId: -Filename: hu.po -ContentType: text/plain -ContentEncoding: none - -Headers: content-disposition: inline; filename="hu.po" - content-type: text/plain; charset="utf-8"; name="hu.po" - Content-Transfer-Encoding: quoted-printable - X-RT-Original-Encoding: iso-8859-1 - Content-Length: 127109 - - -Content: # - msgid "" - msgstr "" - "Project-Id-Version: RT 3.0.7\n" - "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2002-06-22 06:06+0200\n" - "PO-Revision-Date: 2003-12-01 11:26+0100\n" - "Last-Translator: Attila K. Mergl <mergl@astron.hu>\n" - "Language-Team: Hungarian <hu@gnome.hu>\n" - "MIME-Version: 1.0\n" - "Content-Type: text/plain; charset=iso-8859-2\n" - "Content-Transfer-Encoding: 8bit" - - #: html/Elements/MyRequests:28 html/Elements/MyTickets:28 - msgid "#" - msgstr "#" - - #: html/Admin/Queues/Scrip.html:55 - #. ($QueueObj->id) - msgid "#%1" - msgstr "#%1" - - #: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 - #. ($Ticket->Id, $Ticket->Subject) - #. ($link->BaseObj->Id, $link->BaseObj->Subject) - msgid "#%1: %2" - msgstr "#%1: %2" - - #: lib/RT/Date.pm:337 - #. ($s, $time_unit) - msgid "%1 %2" - msgstr "%1 %2" - - #: lib/RT/Tickets_Overlay.pm:771 - #. ($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 %7. %2 %3 %4:%5:%6" - - #: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 - #. ($cf->Name, $new_value->Content) - #. ($field, $self->NewValue) - #. ($self->Field, $principal->Object->Name) - msgid "%1 %2 added" - msgstr "[%1] mezõbe '%2' érték felvétele" - - #: lib/RT/Date.pm:334 - #. ($s, $time_unit) - msgid "%1 %2 ago" - msgstr "%1 %2 óta" - - #: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 - #. ($cf->Name, $old_value, $new_value->Content) - #. ($field, $self->OldValue, $self->NewValue) - msgid "%1 %2 changed to %3" - msgstr "%1 változtatása: '%2' --> '%3'" - - #: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 - #. ($cf->Name, $old_value) - #. ($field, $self->OldValue) - #. ($self->Field, $principal->Object->Name) - msgid "%1 %2 deleted" - msgstr "%1 %2 törölve" - - #: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 - #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) - msgid "%1 %2 with template %3" - msgstr "%1 %2 a %3 sablonnal" - - #: NOT FOUND IN SOURCE - msgid "%1 (%2) %3 this ticket\\n" - msgstr "%1 (%2) %3 ez a probléma\\n" - - #: html/Search/Listing.html:57 - #. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) - msgid "%1 - %2 shown" - msgstr "%1 - %2 mutatva" - - #: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 - #. ("--search-argument", "--search") - #. ("--condition-argument", "--condition") - #. ("--action-argument", "--action") - msgid "%1 - An argument to pass to %2" - msgstr "%1 - %2-nek átadandó argumentum" - - #: bin/rt-crontool:185 - #. ("--verbose") - msgid "%1 - Output status updates to STDOUT" - msgstr "%1 - Státuszfrissítés kiíratása a STDOUT-ra" - - #msgstr "%1 - Schreibe Statusupdates nach STDOUT" - #: bin/rt-crontool:179 - #. ("--action") - msgid "%1 - Specify the action module you want to use" - msgstr "%1 - Adja meg a használandó akciómodult!" - - #: bin/rt-crontool:173 - #. ("--condition") - msgid "%1 - Specify the condition module you want to use" - msgstr "%1 - Adja meg a használandó kondiciómodult!" - - #: bin/rt-crontool:166 - #. ("--search") - msgid "%1 - Specify the search module you want to use" - msgstr "%1 - Adja meg a használandó keres?modult!" - - #: lib/RT/ScripAction_Overlay.pm:122 - #. ($self->Id) - msgid "%1 ScripAction loaded" - msgstr "ScripAction %1 betöltve" - - #: lib/RT/Ticket_Overlay.pm:3471 - #. ($args{'Value'}, $cf->Name) - msgid "%1 added as a value for %2" - msgstr "%1 értéke hozzáadva %2 höz" - - #: NOT FOUND IN SOURCE - msgid "%1 aliases require a TicketId to work on" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "%1 aliases require a TicketId to work on (from %2) %3" - msgstr "" - - #: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 - #. ($args{'Base'}) - #. ($args{'Target'}) - msgid "%1 appears to be a local object, but can't be found in the database" - msgstr "" - "%1 nem találhato az adatbázisban, pedig helyi objektumnak látszik" - - #: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 - #. ($self->BriefDescription , $self->CreatorObj->Name) - #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) - msgid "%1 by %2" - msgstr "%1 (%2)" - - #: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 - #. ($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 változtatása: '%2' --> '%3'" - - #: lib/RT/Interface/Web.pm:857 - msgid "%1 could not be set to %2." - msgstr "%1 nem állítható %2 re." - - #: NOT FOUND IN SOURCE - msgid "%1 couldn't init a transaction (%2)\\n" - msgstr "" - - #: lib/RT/Ticket_Overlay.pm:2813 - #. ($self) - msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." - msgstr "" - "%1 nem tudta a státuszt lezártra állítani. Az RT adatbázisa talán inkonzisztens." - - #: html/Elements/MyTickets:25 - #. ($rows) - msgid "%1 highest priority tickets I own..." - msgstr "A %1 nekem kiosztott, legsürgõsebb probléma..." - - #: html/Elements/MyRequests:25 - #. ($rows) - msgid "%1 highest priority tickets I requested..." - msgstr "A %1 általam kezdeményezett, legsürgõsebb probléma..." - - #: bin/rt-crontool:161 - #. ($0) - msgid "" - "%1 is a tool to act on tickets from an external scheduling tool, such as " - "cron." - msgstr "" - "%1 egy eszköz külsõ ütemezõeszközöktõl -mint a \"cron\"- érkezõ problémák feldolgozására" - - #: lib/RT/Queue_Overlay.pm:743 - #. ($principal->Object->Name, $args{'Type'}) - msgid "%1 is no longer a %2 for this queue." - msgstr "Ennek a sornak %1 már nem %2-je." - - #: lib/RT/Ticket_Overlay.pm:1570 - #. ($principal->Object->Name, $args{'Type'}) - msgid "%1 is no longer a %2 for this ticket." - msgstr "Enek a problémának %1 nár nem %2-je." - - #: lib/RT/Ticket_Overlay.pm:3527 - #. ($args{'Value'}, $cf->Name) - msgid "%1 is no longer a value for custom field %2" - msgstr "%1 már nem értéke a %2 egyéni mezõnek" - - #: NOT FOUND IN SOURCE - msgid "%1 isn't a valid Queue id." - msgstr "%1 érvénytelen sor azonosító" - - #: RTFM - msgid "%1 matches" - msgstr "%1 tartalmaz" - - #: html/Ticket/Elements/ShowBasics:36 - #. ($TimeWorked) - msgid "%1 min" - msgstr "%1 perc" - - #: html/RTFM/UpdatedArticles:19 - msgid "%1 most recently updated articles" - msgstr "%1 utoljára átdolgozott cikk" - - #: RTFM - msgid "%1 newest articles" - msgstr "%1 legújabb cikk" - - #: NOT FOUND IN SOURCE - msgid "%1 not shown" - msgstr "" - - #: html/User/Elements/DelegateRights:76 - #. (loc($ObjectType =~ /^RT::(.*)$/)) - msgid "%1 rights" - msgstr "%1 jogok" - - #: NOT FOUND IN SOURCE - msgid "%1 succeeded\\n" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "%1 type unknown for $MessageId" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "%1 type unknown for %2" - msgstr "" - - #: lib/RT/Action/ResolveMembers.pm:42 - #. (ref $self) - msgid "%1 will resolve all members of a resolved group ticket." - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "" - "%1 will stall a [local] BASE if it's dependent [or member] of a linked up " - "request." - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:435 - #. ($self) - msgid "%1: no attachment specified" - msgstr "%1: Nincs melléklet megadva!" - - #: html/Ticket/Elements/ShowTransaction:102 - #. ($size) - msgid "%1b" - msgstr "%1b" - - #: html/Ticket/Elements/ShowTransaction:99 - #. (int($size/102.4)/10) - msgid "%1k" - msgstr "%1k" - - #: lib/RT/Ticket_Overlay.pm:1140 - #. ($args{'Status'}) - msgid "'%1' is an invalid value for status" - msgstr "'%1' nem lehet státusz érték" - - #: NOT FOUND IN SOURCE - msgid "'%1' not a recognized action. " - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "(Check box to delete scrip)" - msgstr "(Scrip törléséhez bejelölni)" - - #: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 - msgid "(Check box to delete)" - msgstr "(Törléshez kiválasztandó!)" - - #: html/Ticket/Create.html:178 - msgid "(Enter ticket ids or URLs, seperated with spaces)" - msgstr "(Szóközökkel elválasztva adható meg a problémák sorszáma vagy URL-ek.)" - - #: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 - #. ($RT::CorrespondAddress) - #. ($RT::CommentAddress) - msgid "(If left blank, will default to %1" - msgstr "(Ha üresen marad: %1)" - - #: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 - msgid "(No custom fields)" - msgstr "(Nincs egyéni mezõ)" - - #: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 - msgid "(No members)" - msgstr "(Nincsenek tagok)" - - #: html/RTFM/NewestArticles:35 - msgid "(no name)" - msgstr "(nincs név)" - - #: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 - msgid "(No scrips)" - msgstr "(Nincs Scrip)" - - #: html/RTFM/UpdatedArticles.html:36 - msgid "(no Summary)" - msgstr "(nincs összefoglalás)" - - #: html/Admin/Elements/EditTemplates:31 - msgid "(No templates)" - msgstr "(Nincs sablon)" - - #: html/Ticket/Update.html:85 - 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 "" - "(A válasz rejtett másolatát elküldi a vesszõkkel elválasztott e-mail címekre. " - "<b>Ez nem módosítja, hogy a jovõben kik kapnak másolatot a válaszokról!</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 "" - - #: html/Ticket/Create.html:79 - 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 "" - "(Az új probléma leírását elküldi a vesszõkkel elválasztott adminisztratív " - "e-mail címekre. <b>A címzettek a jovõben <i>minden</i> válaszról másolatot " - "kapnak!</b>)" - - #: html/Ticket/Update.html:81 - 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 "" - "(A válasz másolatát elküldi a vesszõkkel elválasztott e-mail címekre. <b>Ez " - "nem módosítja, hogy a jovõben kik kapnak másolatot a válaszokról!</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 "" - - #: html/Ticket/Create.html:69 - 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 "" - "(Az új probléma leírását elküldi a vesszõkkel elválasztott e-mail címekre. " - "<b>A címzettek a jovõben <i>minden</i> válaszról másolatot kapnak!</b>)" - - #: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 - msgid "(empty)" - msgstr "(üres)" - - #: html/Admin/Users/index.html:39 - msgid "(no name listed)" - msgstr "(Nincs név a listában)" - - #: html/Elements/MyRequests:43 html/Elements/MyTickets:45 - msgid "(no subject)" - msgstr "(nincs tárgy)" - - #: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 - msgid "(no value)" - msgstr "(nincs adat)" - - #: html/Ticket/Elements/EditLinks:116 - msgid "(only one ticket)" - msgstr "<br>(Csak egy probléma adható meg!)" - - #: html/Elements/MyRequests:52 html/Elements/MyTickets:55 - msgid "(pending approval)" - msgstr "" - - #: html/Elements/MyRequests:54 html/Elements/MyTickets:57 - msgid "(pending other tickets)" - msgstr "(másik problémára vár)" - - #: html/Admin/Users/Modify.html:50 - msgid "(required)" - msgstr "(szükséges)" - - #: html/Ticket/Elements/ShowTransaction:105 - msgid "(untitled)" - msgstr "(névtelen)" - - #: NOT FOUND IN SOURCE - msgid "25 highest priority tickets I own..." - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "25 highest priority tickets I requested..." - msgstr "" - - #: html/Ticket/Elements/ShowBasics:32 - msgid "<% $Ticket->Status%>" - msgstr "" - - #: html/Elements/SelectTicketTypes:27 - msgid "<% $_ %>" - msgstr "" - - #: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 - #. ($m->scomp('/Elements/SelectNewTicketQueue')) - msgid "<input type=\"submit\" value=\"New ticket in\"> %1" - msgstr "<input type=\"submit\" value=\"Új probléma\"> %1" - - #: etc/initialdata:203 - msgid "A blank template" - msgstr "Üres sablon" - - #: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 - msgid "ACE not found" - msgstr "ACE nem található" - - #: lib/RT/ACE_Overlay.pm:831 - msgid "ACEs can only be created and deleted." - msgstr "ACE-k csak létrehozhatók és törölhetõk." - - #: bin/rt-commit-handler:755 - msgid "Aborting to avoid unintended ticket modifications.\\n" - msgstr "" - "Lépjen ki, hogy elkerülje a probléma nem kivánt módosításait.\\n" - - #: html/User/Elements/Tabs:32 - msgid "About me" - msgstr "Magamról" - - #: html/Admin/Users/Modify.html:80 - msgid "Access control" - msgstr "Hozzáférés ellenõrzése" - - #: html/Admin/Elements/EditScrip:57 - msgid "Action" - msgstr "Akció" - - #: lib/RT/Scrip_Overlay.pm:147 - #. ($args{'ScripAction'}) - msgid "Action %1 not found" - msgstr "%1 akció nem található" - - #: bin/rt-crontool:123 - msgid "Action committed." - msgstr "Akció végrehajtva." - - #: bin/rt-crontool:119 - msgid "Action prepared..." - msgstr "Akció elõkészítve..." - - #: html/Search/Bulk.html:92 - msgid "Add AdminCc" - msgstr "Administratív tájékotatást kapó hozzáadása" - - #: html/Search/Bulk.html:90 - msgid "Add Cc" - msgstr "Tájékotatást kapó hozzáadása" - - #: html/Ticket/Create.html:114 html/Ticket/Update.html:100 - msgid "Add More Files" - msgstr "További fájlok csatolása" - - #: html/Search/Bulk.html:88 - msgid "Add Requestor" - msgstr "Beküldõ hozáadása" - - #: NOT FOUND IN SOURCE - msgid "Add a new a global scrip" - msgstr "Egy új általános Scrip hozzáadása" - - #: NOT FOUND IN SOURCE - msgid "Add a scrip to this queue" - msgstr "Egy Scrip hozzáadása a sorhoz" - - #: html/Admin/Global/Scrip.html:55 - msgid "Add a scrip which will apply to all queues" - msgstr "Minden sorra vonatkozó Scrip hozzáadása" - - #: html/Search/Bulk.html:118 - msgid "Add comments or replies to selected tickets" - msgstr "A kiválasztott problémákhoz válasz vagy kiegészítés hozzáadása" - - #: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 - msgid "Add members" - msgstr "Tagfelvétel" - - #: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 - msgid "Add new watchers" - msgstr "Új résztvevõk hozzáadása" - - #: NOT FOUND IN SOURCE - msgid "AddNextState" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:643 - #. ($args{'Type'}) - msgid "Added principal as a %1 for this queue" - msgstr "" - "Hozzendelt egy vezetõt mint %1 ehhez a sorhoz" - - #: lib/RT/Ticket_Overlay.pm:1454 - #. ($self->loc($args{'Type'})) - msgid "Added principal as a %1 for this ticket" - msgstr "" - "Hozzárendelt egy vezetõt mint %1 ehhez a problémához" - - #: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 - msgid "Address1" - msgstr "Utca, házszám" - - #: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 - msgid "Address2" - msgstr "Postafiók" - - #: html/Ticket/Create.html:74 - msgid "Admin Cc" - msgstr "Adminisztratív tájékoztatást kap" - - #: etc/initialdata:274 - msgid "Admin Comment" - msgstr "Adminisztratív megjegyzés" - - #: etc/initialdata:256 - msgid "Admin Correspondence" - msgstr "" - - #: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 - msgid "Admin queues" - msgstr "Válasszon sort!" - - #: NOT FOUND IN SOURCE - msgid "Admin users" - msgstr "" - - #: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 - msgid "Admin/Global configuration" - msgstr "Konfiguráció / Általános beállítások" - - #: NOT FOUND IN SOURCE - msgid "Admin/Groups" - msgstr "Konfiguráció / Csoportok" - - #: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 - msgid "Admin/Queue/Basics" - msgstr "Konfiguráció / Sor / Alapok" - - #: NOT FOUND IN SOURCE - msgid "AdminAllPersonalGroups" - msgstr "" - - #: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 - msgid "AdminCc" - msgstr "Adminisztratív tájékoztatást kap" - - #: NOT FOUND IN SOURCE - msgid "AdminComment" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "AdminCorrespondence" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:72 - msgid "AdminCustomFields" - msgstr "" - - #: lib/RT/Group_Overlay.pm:146 - msgid "AdminGroup" - msgstr "" - - #: lib/RT/Group_Overlay.pm:148 - msgid "AdminGroupMembership" - msgstr "" - - #: lib/RT/System.pm:59 - msgid "AdminOwnPersonalGroups" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:68 - msgid "AdminQueue" - msgstr "" - - #: lib/RT/System.pm:60 - msgid "AdminUsers" - msgstr "" - - #: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 - msgid "Administrative Cc" - msgstr "Adminisztratív tájékoztatást kap" - - #: NOT FOUND IN SOURCE - msgid "Advanced Search" - msgstr "Bõvítetett keresés" - - #: RTFM - msgid "Advanced Search Criteria" - msgstr "Bõvített keresési feltételek" - - #: html/Elements/SelectDateRelation:36 - msgid "After" - msgstr "után" - - #: NOT FOUND IN SOURCE - msgid "Age" - msgstr "Kor" - - #: html/Admin/Elements/EditCustomFields:96 - msgid "All Custom Fields" - msgstr "Összes egyéni mezõ" - - #: html/RTFM/Admin/Classes/index.html:57 - msgid "All Classes" - msgstr "Minden osztály" - - #: html/Admin/Queues/index.html:53 - msgid "All Queues" - msgstr "Minden sor" - - #: NOT FOUND IN SOURCE - msgid "Always sends a message to the requestors independent of message sender" - msgstr "" - - #: RTFM - msgid "and is not" - msgstr "és nem" - - #: RTFM - msgid "and not" - msgstr "és nem" - - #: html/Elements/Tabs:58 - msgid "Approval" - msgstr "Lezárás" - - #: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 - #. ($Ticket->Id, $Ticket->Subject) - #. ($ticket->id, $msg) - #. ($ticket->Id, $ticket->Subject) - #. ($link->BaseObj->Id, $link->BaseObj->Subject) - msgid "Approval #%1: %2" - msgstr "Engedélyezés #%1: %2" - - #: html/Approvals/index.html:54 - #. ($ticket->Id) - msgid "Approval #%1: Notes not recorded due to a system error" - msgstr "Engedélyezés #%1: A megjegyzés rendszerhiba miatt nem rögzíthetõ" - - #: html/Approvals/index.html:52 - #. ($ticket->Id) - msgid "Approval #%1: Notes recorded" - msgstr "Engedélyezés #%1: Megjegyzés rögzítve" - - #: NOT FOUND IN SOURCE - msgid "Approval Details" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Approval diagram" - msgstr "" - - #: html/Approvals/Elements/Approve:45 - msgid "Approve" - msgstr "Lezár" - - #: etc/initialdata:431 etc/upgrade/2.1.71:148 - msgid "Approver's notes: %1" - msgstr "Az engedélyezõ megjegyzése: %1" - - #: html/RTFM/Admin/CustomFields/UserRights.html:117 - msgid "No Class defined" - msgstr "Nincs osztály definiálva" - - #: html/RTFM/Admin/CustomFields/Basics.html:69 - msgid "No CustomField" - msgstr "Nincs egyéni mezõ" - - #: html/RTFM/Admin/CustomFields/GroupRights.html:73 - msgid "No CustomField defined" - msgstr "Nincs egyéni mezõ definiálva" - - #: lib/RT/Date.pm:414 - msgid "Apr." - msgstr "ápr." - - #: RTFM - msgid "Are you sure you want to delete this article?" - msgstr "" - - #: html/RTFM/Article/delete.html:69 - msgid "Article #%1 deleted" - msgstr "" - - #: html/RTFM/Article/Display.html:46 - msgid "Article #%1: %2" - msgstr "" - - #: html/RTFM/Article/Display.html:35 - msgid "Article not found" - msgstr "" - - #: RTFM - msgid "Articles" - msgstr "" - - #: html/Elements/SelectSortOrder:35 - msgid "Ascending" - msgstr "növekvõ" - - #: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 - msgid "Attach" - msgstr "Csatol" - - #: html/SelfService/Create.html:67 html/Ticket/Create.html:110 - msgid "Attach file" - msgstr "Fájl csatolása" - - #: html/Ticket/Create.html:98 html/Ticket/Update.html:89 - msgid "Attached file" - msgstr "Csatolt fájl" - - #: html/SelfService/Attachment/dhandler:36 - msgid "Attachment '%1' could not be loaded" - msgstr "A csatolt '%1' nem betölthetõ" - - #: lib/RT/Transaction_Overlay.pm:443 - msgid "Attachment created" - msgstr "Csatolt fájl létrehozva" - - #: lib/RT/Tickets_Overlay.pm:1189 - msgid "Attachment filename" - msgstr "Csatolt fájl neve" - - #: html/Ticket/Elements/ShowAttachments:26 - msgid "Attachments" - msgstr "Csatolt fájlok" - - #: lib/RT/Date.pm:418 - msgid "Aug." - msgstr "aug." - - #: html/Admin/Elements/ModifyUser:66 - msgid "AuthSystem" - msgstr "" - - #: etc/initialdata:206 - msgid "Autoreply" - msgstr "Autómatikus válasz" - - #: etc/initialdata:72 - msgid "Autoreply To Requestors" - msgstr "Autómatikus válasz a beküldõnek" - - #: NOT FOUND IN SOURCE - msgid "AutoreplyToRequestors" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Bad PGP Signature: %1\\n" - msgstr "Hibás PGP-aláírás: %1\\n" - - #: html/SelfService/Attachment/dhandler:40 - msgid "Bad attachment id. Couldn't find attachment '%1'\\n" - msgstr "Hibás csatolt file azonosító. A csatolt '%1' nem található\\n" - - #: bin/rt-commit-handler:827 - #. ($val) - msgid "Bad data in %1" - msgstr "Hibás adatok %1-ben" - - #: html/SelfService/Attachment/dhandler:43 - #. ($trans, $AttachmentObj->TransactionId()) - msgid "Bad transaction number for attachment. %1 should be %2\\n" - msgstr "A csatolt fájlnak hibás a tranzakció száma. %1 helyett %2 kellene\\n" - - #: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 - msgid "Basics" - msgstr "Alapadatok módosítása" - - #: html/Ticket/Update.html:83 - msgid "Bcc" - msgstr "BCC" - - #: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 - msgid "Be sure to save your changes" - msgstr "Ha valamit módosított ne felejtsen el ide kattintani, hogy megtörténjen a" - - ### wieder - Duzen??? - #: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 - msgid "Before" - msgstr "elõtt" - - #: NOT FOUND IN SOURCE - msgid "Begin Approval" - msgstr "" - - #: etc/initialdata:202 - msgid "Blank" - msgstr "Üres" - - #: html/Search/Listing.html:79 - msgid "Bookmarkable URL for this search" - msgstr "Tárolható URL ehhez a kereséshez" - - #: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 - msgid "Brief headers" - msgstr "Tömör fejléc" - - #: html/Search/Bulk.html:25 html/Search/Bulk.html:26 - msgid "Bulk ticket update" - msgstr "Tömeges problémafrissítés" - - #: lib/RT/User_Overlay.pm:1331 - msgid "Can not modify system users" - msgstr "Rendszerfelhasználó nem módosítható" - - #: lib/RT/Queue_Overlay.pm:67 - msgid "Can this principal see this queue" - msgstr "Ez a vezetõ nem láthatja ezt a sort" - - #: lib/RT/CustomField_Overlay.pm:144 - msgid "Can't add a custom field value without a name" - msgstr "Egyéni mehzõ név nélkül nem hozzáadható" - - #: lib/RT/Link_Overlay.pm:132 - msgid "Can't link a ticket to itself" - msgstr "A problémát nem lehet önmagához kapcsolni!" - - #: lib/RT/Ticket_Overlay.pm:2787 - msgid "Can't merge into a merged ticket. You should never get this error" - msgstr "" - - #: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 - msgid "Can't specifiy both base and target" - msgstr "Nem adhat meg egyszerre bázist és célt" - - #: html/autohandler:112 - #. ($msg) - msgid "Cannot create user: %1" - msgstr "A felhasználó nem hozható létre: %1" - - #: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 - msgid "Cc" - msgstr "Tájékoztatást kap" - - #: html/SelfService/Prefs.html:31 - msgid "Change password" - msgstr "Jelszó-változtatás" - - #: html/Ticket/Create.html:101 html/Ticket/Update.html:92 - msgid "Check box to delete" - msgstr "Törléshez bejelölni" - - #: html/Admin/Elements/SelectRights:31 - msgid "Check box to revoke right" - msgstr "Jog megvonásához megjelölni" - - #: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 - msgid "Children" - msgstr "Leszármazottak" - - #: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 - msgid "City" - msgstr "Város" - - #: RTFM - msgid "Class" - msgstr "" - - #: RTFM - msgid "Class is" - msgstr "" - - #: RTFM - msgid "Class Name" - msgstr "" - - #: RTFM - msgid "Classes" - msgstr "" - - #: share/html/SelfService/Closed.html:27 - msgid "closed" - msgstr "Lezárt" - - #: html/Ticket/Elements/ShowDates:47 - msgid "Closed" - msgstr "Lezárva" - - #: html/SelfService/Elements/Tabs:60 - msgid "Closed tickets" - msgstr "Lezárt problémák" - - #: NOT FOUND IN SOURCE - msgid "Command not understood!\\n" - msgstr "" - - #: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 - msgid "Comment" - msgstr "Kiegészít" - - #: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 - msgid "Comment Address" - msgstr "Kiegészitõcím" - - #: NOT FOUND IN SOURCE - msgid "Comment not recorded" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:86 - msgid "Comment on tickets" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:86 - msgid "CommentOnTicket" - msgstr "" - - #: html/Admin/Elements/ModifyUser:35 - msgid "Comments" - msgstr "Kiegészítések" - - #: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 - msgid "Comments (Not sent to requestors)" - msgstr "Kiegészítés, megjegyzés (levélben a tulajdonosnak)" - - #: html/Search/Bulk.html:122 - msgid "Comments (not sent to requestors)" - msgstr "Kiegészítés (a bejelentõ nem kapja meg!)" - - #: html/Elements/ViewUser:27 - #. ($name) - msgid "Comments about %1" - msgstr "" - - #: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 - msgid "Comments about this user" - msgstr "Kiegészítés ehhez a felhasználóhoz" - - #: lib/RT/Transaction_Overlay.pm:545 - msgid "Comments added" - msgstr "Kiegészítés hozzáfûzése" - - #: lib/RT/Action/Generic.pm:140 - msgid "Commit Stubbed" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Compile Restrictions" - msgstr "" - - #: html/Admin/Elements/EditScrip:41 - msgid "Condition" - msgstr "Feltétel" - - #: bin/rt-crontool:109 - msgid "Condition matches..." - msgstr "" - - #: lib/RT/Scrip_Overlay.pm:160 - msgid "Condition not found" - msgstr "A feltétel nem található" - - #: html/Elements/Tabs:52 - msgid "Configuration" - msgstr "Konfiguráció" - - #: html/SelfService/Prefs.html:33 - msgid "Confirm" - msgstr "Igazolás" - - #: html/Admin/Elements/ModifyUser:60 - msgid "ContactInfoSystem" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Contacted date '%1' could not be parsed" - msgstr "" - - #: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 - msgid "Content" - msgstr "Tartalom" - - #: etc/initialdata:266 - msgid "Correspondence" - msgstr "Válasz" - - #: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 - msgid "Correspondence Address" - msgstr "Levelezésicím" - - #: lib/RT/Transaction_Overlay.pm:541 - msgid "Correspondence added" - msgstr "Válasz hozzáfûzése" - - #: NOT FOUND IN SOURCE - msgid "Correspondence not recorded" - msgstr "" - - #: lib/RT/Ticket_Overlay.pm:3458 - msgid "Could not add new custom field value for ticket. " - msgstr "Az egyéni mezõhöz nem sikerült hozzáadni a problémát" - - #: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 - msgid "Could not change owner. " - msgstr "Nem sikerült a tulajdonost megváltoztatni! " - - #: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 - #. ($msg) - msgid "Could not create CustomField" - msgstr "Nem sikerült létrehozni az egyéni mezõt" - - #: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 - msgid "Could not create group" - msgstr "Nem sikerült létrehozni a csoportot" - - #: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 - #. ($msg) - msgid "Could not create template: %1" - msgstr "A sablom nem jött létre: %1" - - #: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 - msgid "Could not create ticket. Queue not set" - msgstr "Nem jött létre a probléma. A sor nincs meghatározva" - - #: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 - msgid "Could not create user" - msgstr "A felhasználó nem jött létre" - - #: NOT FOUND IN SOURCE - msgid "Could not find a ticket with id %1" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Could not find group %1." - msgstr "" - - #: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 - msgid "Could not find or create that user" - msgstr "A felhasználót nem sikerült megtalálni vagy létrehozni" - - #: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 - msgid "Could not find that principal" - msgstr "A vezetõ nem található" - - #: NOT FOUND IN SOURCE - msgid "Could not find user %1." - msgstr "" - - #: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 - msgid "Could not load group" - msgstr "A csoport nem betölthetõ" - - #: lib/RT/Queue_Overlay.pm:641 - #. ($args{'Type'}) - msgid "Could not make that principal a %1 for this queue" - msgstr "" - "A vezetõ nem lehet %1-e a sornak" - - #: lib/RT/Ticket_Overlay.pm:1443 - #. ($self->loc($args{'Type'})) - msgid "Could not make that principal a %1 for this ticket" - msgstr "" - "A vezetõ nem lehet %1-e a problémának" - - #: lib/RT/Queue_Overlay.pm:740 - #. ($args{'Type'}) - msgid "Could not remove that principal as a %1 for this queue" - msgstr "" - "A vezetõt nem lehet mint a sor %1-ét eltávolítani" - - #: lib/RT/Ticket_Overlay.pm:1559 - #. ($args{'Type'}) - msgid "Could not remove that principal as a %1 for this ticket" - msgstr "" - "a vezetõt nem lehet mint a probléma %1-t eltávolítani" - - #: lib/RT/Group_Overlay.pm:985 - msgid "Couldn't add member to group" - msgstr "A tagot nem lehet a csoporthoz adni" - - #: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 - #. ($Msg) - msgid "Couldn't create a transaction: %1" - msgstr "A tanzakció nem létrehozható: %1" - - #: NOT FOUND IN SOURCE - msgid "Couldn't figure out what to do from gpg's reply\\n" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Couldn't find group\\n" - msgstr "" - - #: lib/RT/Interface/Web.pm:866 - msgid "Couldn't find row" - msgstr "A sor nem található" - - #: lib/RT/Group_Overlay.pm:959 - msgid "Couldn't find that principal" - msgstr "A vezetõ nem található" - - #: lib/RT/CustomField_Overlay.pm:175 - msgid "Couldn't find that value" - msgstr "Az érték nem található" - - #: NOT FOUND IN SOURCE - msgid "Couldn't find user\\n" - msgstr "" - - #: lib/RT/CurrentUser.pm:112 - #. ($self->Id) - msgid "Couldn't load %1 from the users database.\\n" - msgstr "" - - #: html/RTFM/Admin/CustomFields/UserRights.html:121 - msgid "Couldn't load Class %1" - msgstr "" - - #: html/RTFM/Admin/CustomFields/GroupRights.html:77 - msgid "Couldn't load CustomField %1" - msgstr "A(z) %1 egyéni mezõ nem betölthetõ" - - #: NOT FOUND IN SOURCE - msgid "Couldn't load RT config file '%1' %2" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Couldn't load Scrips." - msgstr "" - - #: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 - #. ($id) - msgid "Couldn't load group %1" - msgstr "%1 csoport nem betölthetõ" - - #: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 - msgid "Couldn't load link" - msgstr "" - - #: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 - #. ($id) - msgid "Couldn't load queue" - msgstr "A sor nem betölthetõ" - - #: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 - #. ($id) - msgid "Couldn't load queue %1" - msgstr "%1 sor nem betölthetõ" - - #: NOT FOUND IN SOURCE - msgid "Couldn't load scrip" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Couldn't load template" - msgstr "" - - #: html/Admin/Users/Prefs.html:79 - #. ($id) - msgid "Couldn't load that user (%1)" - msgstr "A felhasználó nem betölthetõ (%1)" - - #: html/SelfService/Display.html:166 - #. ($id) - msgid "Couldn't load ticket '%1'" - msgstr "A(z) '%1' nem betölthetõ" - - #: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 - msgid "Country" - msgstr "Ország" - - #: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 - msgid "Create" - msgstr "Felvesz" - - #: etc/initialdata:128 - msgid "Create Tickets" - msgstr "Probléma megadása" - - #: RTFM - msgid "Create a Class" - msgstr "Hozzon létre egy új osztályt!" - - #: html/Admin/Elements/EditCustomField:58 - msgid "Create a CustomField" - msgstr "Hozzon létre egy új egyéni mezõt!" - - #: html/Admin/Queues/CustomField.html:48 - #. ($QueueObj->Name()) - msgid "Create a CustomField for queue %1" - msgstr "Hozzon létre egy egyéni mezõt a(z) %1 sorhoz" - - #: html/Admin/Global/CustomField.html:48 - msgid "Create a CustomField which applies to all queues" - msgstr "Hozzon létre egy egyéni mezõt minden sorhoz!" - - #: html/RTFM/Article/Create.html:19 - msgid "Create a new article" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Create a new Custom Field" - msgstr "Hozzon létre egy új egyéni mezõt!" - - #: NOT FOUND IN SOURCE - msgid "Create a new global scrip" - msgstr "" - - #: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 - msgid "Create a new group" - msgstr "Hozzon létre új csoportot!" - - #: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 - msgid "Create a new personal group" - msgstr "Hozzon létre egy új saját csoportot!" - - #: 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/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 - msgid "Create a new ticket" - msgstr "Új probléma felvétele" - - #: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 - msgid "Create a new user" - msgstr "Hozzon létre egy új felhasználót!" - - #: html/Admin/Queues/Modify.html:103 - msgid "Create a queue" - msgstr "Hozzon létre egy sort!" - - #: NOT FOUND IN SOURCE - msgid "Create a queue called" - msgstr "" - - #: html/SelfService/Create.html:25 html/SelfService/Create.html:27 - msgid "Create a request" - msgstr "Hozzon létre egy új problémát!" - - #: html/Admin/Queues/Scrip.html:59 - #. ($QueueObj->Name) - msgid "Create a scrip for queue %1" - msgstr "Hozzon létre egy scrip-et a(z) %1 sorhoz!" - - #: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 - msgid "Create a template" - msgstr "Hozzon létre egy sablont!" - - #: html/SelfService/Create.html:24 - msgid "Create a ticket" - msgstr "Új probléma" - - #: RTFM - msgid "Create an article" - msgstr "" - - #: RTFM - msgid "Create an article in class..." - msgstr "" - - #: etc/initialdata:130 - msgid "Create new tickets based on this scrip's template" - msgstr "Hozzon létre egy új problémát ennek a sablonnak scripjeire alapozva" - - #: html/SelfService/Create.html:81 - msgid "Create ticket" - msgstr "Létrehozás" - - #: lib/RT/Queue_Overlay.pm:84 - msgid "Create tickets in this queue" - msgstr "Hozzon létre problémákat ebben a sorban!" - - #: lib/RT/Queue_Overlay.pm:72 - msgid "Create, delete and modify custom fields" - msgstr "Egyéni mezõk létrehozása, módosítása, törlése" - - #: lib/RT/Queue_Overlay.pm:68 - msgid "Create, delete and modify queues" - msgstr "Sor létrehozása, módosítása, törlése" - - #: NOT FOUND IN SOURCE - msgid "Create, delete and modify the members of any user's personal groups" - msgstr "" - - #: lib/RT/System.pm:59 - msgid "Create, delete and modify the members of personal groups" - msgstr "" - - #: lib/RT/System.pm:60 - msgid "Create, delete and modify users" - msgstr "Felhasználók létrehozása, módosítása, törlése" - - #: lib/RT/Queue_Overlay.pm:84 - msgid "CreateTicket" - msgstr "" - - #: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 - msgid "Created" - msgstr "Felvéve" - - #: RTFM - msgid "Created by" - msgstr "Létrehozta" - - #: html/Admin/Elements/EditCustomField:71 - #. ($CustomFieldObj->Name()) - msgid "Created CustomField %1" - msgstr "" - - #: RTFM - msgid "Created during" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Created template %1" - msgstr "" - - #: html/Ticket/Elements/EditLinks:28 - msgid "Current Relationships" - msgstr "Jelenlegi kapcsolatok" - - #: html/Admin/Elements/EditScrips:30 - msgid "Current Scrips" - msgstr "Jelenlegi Scripek" - - #: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 - msgid "Current members" - msgstr "Jelenlegi tagok" - - #: html/Admin/Elements/SelectRights:29 - msgid "Current rights" - msgstr "Jelenlegi jogok" - - #: html/Search/Listing.html:71 - msgid "Current search criteria" - msgstr "Aktuális keresési feltételek" - - #: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 - msgid "Current watchers" - msgstr "Jelenlegi résztvevõk" - - #: html/Admin/Global/CustomField.html:55 - #. ($CustomField) - msgid "Custom Field #%1" - msgstr "%1. egyéni mezõ" - - #: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 - msgid "Custom Fields" - msgstr "Egyéni mezõk" - - #: html/Admin/Elements/EditScrip:73 - msgid "Custom action cleanup code" - msgstr "Az akcióhoz rendelt egyéni lezáró kód" - - #: html/Admin/Elements/EditScrip:65 - msgid "Custom action preparation code" - msgstr "Az akcióhoz rendelt egyéni elõkészítõ kód" - - #: html/Admin/Elements/EditScrip:49 - msgid "Custom condition" - msgstr "Egyéni feltétel" - - #: lib/RT/Tickets_Overlay.pm:1618 - #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) - msgid "Custom field %1 %2 %3" - msgstr "Egyéni mezõ %1 %2 %3" - - #: lib/RT/Tickets_Overlay.pm:1613 - #. ($CF->Name) - msgid "Custom field %1 has a value." - msgstr "[%1] egyéni mezõnek van értéke." - - #: lib/RT/Tickets_Overlay.pm:1610 - #. ($CF->Name) - msgid "Custom field %1 has no value." - msgstr "[%1] egyéni mezõnek nincs értéke." - - #: lib/RT/Ticket_Overlay.pm:3360 - #. ($args{'Field'}) - msgid "Custom field %1 not found" - msgstr "[%1] egyéni mezõ nem található" - - #: html/Admin/Elements/EditCustomFields:197 - msgid "Custom field deleted" - msgstr "Az egyéni mezõ törölve" - - #: lib/RT/Ticket_Overlay.pm:3510 - msgid "Custom field not found" - msgstr "Egyéni mezõ nem található" - - #: lib/RT/CustomField_Overlay.pm:283 - #. ($args{'Content'}, $self->Name) - msgid "Custom field value %1 could not be found for custom field %2" - msgstr "A(z) %2 egyéni mezõ %1értéke nem található" - - #: NOT FOUND IN SOURCE - msgid "Custom field value changed from %1 to %2" - msgstr "" - - #: lib/RT/CustomField_Overlay.pm:185 - msgid "Custom field value could not be deleted" - msgstr "Az egyéni mezõ értéke nem található" - - #: lib/RT/CustomField_Overlay.pm:289 - msgid "Custom field value could not be found" - msgstr "Az egyéni mezõ értéke nem található" - - #: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 - msgid "Custom field value deleted" - msgstr "Az egyéni mezõ értéke törölve" - - #: lib/RT/Transaction_Overlay.pm:550 - msgid "CustomField" - msgstr "" - - #: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 - msgid "Dates" - msgstr "Idõpontok" - - #: lib/RT/Date.pm:422 - msgid "Dec." - msgstr "dec." - - #: NOT FOUND IN SOURCE - msgid "Default Autoresponse Template" - msgstr "" - - #: etc/initialdata:207 - msgid "Default Autoresponse template" - msgstr "" - - #: etc/initialdata:275 - msgid "Default admin comment template" - msgstr "" - - #: etc/initialdata:257 - msgid "Default admin correspondence template" - msgstr "" - - #: etc/initialdata:267 - msgid "Default correspondence template" - msgstr "" - - #: etc/initialdata:238 - msgid "Default transaction template" - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:645 - #. ($type, $self->Field, $self->OldValue, $self->NewValue) - msgid "Default: %1/%2 changed from %3 to %4" - msgstr "" - - #: html/User/Delegation.html:25 html/User/Delegation.html:28 - msgid "Delegate rights" - msgstr "Jogok továbbadása" - - #: lib/RT/System.pm:63 - msgid "Delegate specific rights which have been granted to you." - msgstr "" - - #: lib/RT/System.pm:63 - msgid "DelegateRights" - msgstr "" - - #: html/User/Elements/Tabs:38 - msgid "Delegation" - msgstr "Jogok továbbadása" - - #: RTFM - msgid "Delete" - msgstr "Törölni" - - #: html/RTFM/Article/delete.html:73 - msgid "Delete article #%1" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:90 - msgid "Delete tickets" - msgstr "Problémák törlése" - - #: lib/RT/Queue_Overlay.pm:90 - msgid "DeleteTicket" - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:187 - msgid "Deleting this object could break referential integrity" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:292 - msgid "Deleting this object would break referential integrity" - msgstr "" - - #: lib/RT/User_Overlay.pm:430 - msgid "Deleting this object would violate referential integrity" - msgstr "" - - #: html/Approvals/Elements/Approve:46 - msgid "Deny" - msgstr "Elutasítva" - - #: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 - msgid "Depended on by" - msgstr "Ettõl függnek" - - #: NOT FOUND IN SOURCE - msgid "Dependencies: \\n" - msgstr "" - - #: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 - msgid "Depends on" - msgstr "A következõktõl függ" - - #: html/Elements/SelectSortOrder:35 - msgid "Descending" - msgstr "csökkenõ" - - #: html/SelfService/Create.html:75 html/Ticket/Create.html:119 - msgid "Describe the issue below" - msgstr "A probléma szabatos leírása" - - #: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 - msgid "Description" - msgstr "Leírás" - - #: html/SelfService/Elements/MyRequests:44 - msgid "Details" - msgstr "Részletek" - - #: html/Ticket/Elements/Tabs:85 - msgid "Display" - msgstr "Mutat" - - #: lib/RT/Queue_Overlay.pm:69 - msgid "Display Access Control List" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:75 - msgid "Display Scrip templates for this queue" - msgstr "Láthatóak legyenek az ehhez a sorhoz tartozó scrip sablonok" - - #: lib/RT/Queue_Overlay.pm:78 - msgid "Display Scrips for this queue" - msgstr "Láthatóak legyen a sorhoz tartozó scripek" - - #: html/Ticket/Elements/ShowHistory:35 - msgid "Display mode" - msgstr "Megjelenítési mód" - - #: html/SelfService/Display.html:25 html/SelfService/Display.html:29 - #. ($Ticket->id) - msgid "Display ticket #%1" - msgstr "" - - #: lib/RT/System.pm:54 - msgid "Do anything and everything" - msgstr "" - - #: html/Elements/Refresh:30 - msgid "Don't refresh this page." - msgstr "Ne frissítse ezt az oldalt." - - #: html/Search/Elements/PickRestriction:114 - msgid "Don't show search results" - msgstr "Ne mutassa a keresés eredményét!" - - #: html/Ticket/Elements/ShowTransaction:105 - msgid "Download" - msgstr "Letölt" - - #: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 - msgid "Due" - msgstr "Határidõ" - - #: NOT FOUND IN SOURCE - msgid "Due date '%1' could not be parsed" - msgstr "" - - #: bin/rt-commit-handler:754 - #. ($1, $msg) - msgid "ERROR: Couldn't load ticket '%1': %2.\\n" - msgstr "HIBA: A(z) '%1' probléma nem betölthetõ: %2.\\n" - - #: NOT FOUND IN SOURCE - msgid "Edit" - msgstr "" - - #: html/Admin/Queues/CustomFields.html:45 - #. ($Queue->Name) - msgid "Edit Custom Fields for %1" - msgstr "Módosítsa %1 egyéni mezõit!" - - #: html/RTFM/Admin/Classes/CustomFields.html:73 - msgid "Edit Custom Fields for Class %1" - msgstr "Bearbeite benutzerdefinierte Felder für Klasse %1" - - #: html/Ticket/ModifyLinks.html:36 - msgid "Edit Relationships" - msgstr "Kapcsolatok módosítása" - - #: html/Admin/Queues/Templates.html:41 - #. ($QueueObj->Name) - msgid "Edit Templates for queue %1" - msgstr "Módosítsa a(z) %1 sor sablonjait!" - - #: NOT FOUND IN SOURCE - msgid "Edit scrips" - msgstr "" - - #: html/Admin/Global/index.html:46 - msgid "Edit system templates" - msgstr "Módosítsa a rendszersablonokat!" - - #: NOT FOUND IN SOURCE - msgid "Edit templates for %1" - msgstr "" - - #: html/RTFM/Admin/Classes/Modify:79 - msgid "Editing Configuration for Class %1" - msgstr "" - - #: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 - #. ($QueueObj->Name) - #. ($QueueObj->Id) - msgid "Editing Configuration for queue %1" - msgstr "" - - #: html/Admin/Elements/ModifyUser:25 - #. ($UserObj->Name) - msgid "Editing Configuration for user %1" - msgstr "" - - #: html/Admin/Elements/EditCustomField:74 - #. ($CustomFieldObj->Name()) - msgid "Editing CustomField %1" - msgstr "" - - #: html/Admin/Groups/Members.html:32 - #. ($Group->Name) - msgid "Editing membership for group %1" - msgstr "Módosítsa a(z) %1 csoport tagságát!" - - #: html/User/Groups/Members.html:129 - #. ($Group->Name) - msgid "Editing membership for personal group %1" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Editing template %1" - msgstr "" - - #: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 - msgid "Either base or target must be specified" - msgstr "Meg kell adni a bázist vagy a célt" - - #: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 - msgid "Email" - msgstr "E-mail cím" - - #: lib/RT/User_Overlay.pm:188 - msgid "Email address in use" - msgstr "E-Mail-cím már foglalt" - - #: html/Admin/Elements/ModifyUser:42 - msgid "EmailAddress" - msgstr "E-Mail-Adresse" - - ### muss das überhaupt übersetzt werden??? - #: html/Admin/Elements/ModifyUser:54 - msgid "EmailEncoding" - msgstr "E-Mail-Kodierung" - - #: RTFM - msgid "Enabled (Unchecking this box disables this Class)" - msgstr "" - - ### muss das überhaupt übersetzt werden??? - #: html/Admin/Elements/EditCustomField:36 - msgid "Enabled (Unchecking this box disables this custom field)" - msgstr "Aktivált (kiválasztása letiltja ezt az egyéni mezõt)" - - #: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 - msgid "Enabled (Unchecking this box disables this group)" - msgstr "Aktivált (Kiválasztása letiltja ezt a csoportot)" - - #: html/Admin/Queues/Modify.html:84 - msgid "Enabled (Unchecking this box disables this queue)" - msgstr "Aktivált (Kiválasztása letiltja ezt a sort)" - - #: RTFM - msgid "Enabled Classes" - msgstr "" - - #: html/Admin/Elements/EditCustomFields:99 - msgid "Enabled Custom Fields" - msgstr "Aktív egyéni mezõk" - - #: html/Admin/Queues/index.html:56 - msgid "Enabled Queues" - msgstr "Aktív sorok" - - #: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 - #. (loc_fuzzy($msg)) - msgid "Enabled status %1" - msgstr "Status %1 aktiviert" - - #: RTFM - msgid "" - "Enter Articles or URIs to link Articles to. Seperate multiple entries with " - "spaces." - msgstr "" - - #: lib/RT/CustomField_Overlay.pm:361 - msgid "Enter multiple values" - msgstr "Adjon meg több értéket!" - - #: lib/RT/CustomField_Overlay.pm:358 - msgid "Enter one value" - msgstr "Adjon meg egy értéket!" - - #: html/Ticket/Elements/EditLinks:112 - msgid "" - "Enter tickets or URIs to link tickets to. Seperate multiple entries with " - "spaces." - msgstr "" - "Szóközökkel elválasztva adja meg a problémák sorszámát vagy az URL-eket." - - #: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 - msgid "Error" - msgstr "Hiba" - - #: lib/RT/Queue_Overlay.pm:555 - msgid "Error in parameters to Queue->AddWatcher" - msgstr "Hiba a sor paraméterezésében ->AddWatcher" - - #: lib/RT/Queue_Overlay.pm:713 - msgid "Error in parameters to Queue->DelWatcher" - msgstr "Hiba a sor paraméterezésében->DelWatcher" - - #: lib/RT/Ticket_Overlay.pm:1356 - msgid "Error in parameters to Ticket->AddWatcher" - msgstr "Hiba a probléma paraméterezésében -> AddWatcher" - - #: lib/RT/Ticket_Overlay.pm:1532 - msgid "Error in parameters to Ticket->DelWatcher" - msgstr "Hiba a probléma paraméterezésében->DelWatcher" - - #: etc/initialdata:20 - msgid "Everyone" - msgstr "Mindenki" - - #: bin/rt-crontool:194 - msgid "Example:" - msgstr "Például:" - - #: html/Admin/Elements/ModifyUser:64 - msgid "ExternalAuthId" - msgstr "" - - #: html/Admin/Elements/ModifyUser:58 - msgid "ExternalContactInfoId" - msgstr "" - - #: html/Admin/Users/Modify.html:73 - msgid "Extra info" - msgstr "Kiegészítõ információk" - - #: html/RTFM/Article/ExtractIntoClass.html:19 - msgid "Extract article from ticket #%1" - msgstr "" - - #: html/RTFM/Article/ExtractFromTicket.html:19 - msgid "Extract article from ticket #%1 into class %2" - msgstr "" - - #: lib/RT/User_Overlay.pm:302 - msgid "Failed to find 'Privileged' users pseudogroup." - msgstr "" - - #: lib/RT/User_Overlay.pm:309 - msgid "Failed to find 'Unprivileged' users pseudogroup" - msgstr "" - - #: bin/rt-crontool:138 - #. ($modname, $@) - msgid "Failed to load module %1. (%2)" - msgstr "A %1 Modul nem betölthetõ. (%2)" - - #: lib/RT/Date.pm:412 - msgid "Feb." - msgstr "feb." - - #: NOT FOUND IN SOURCE - msgid "Fin" - msgstr "" - - #: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 - msgid "Final Priority" - msgstr "Végsõ prioritás" - - #: lib/RT/Ticket_Overlay.pm:1162 - msgid "FinalPriority" - msgstr "" - - #: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 - msgid "Find group whose" - msgstr "Találjon olyan csoportot, amelyiknél a" - - #: html/Elements/Quicksearch:25 - msgid "Find new/open tickets" - msgstr "Találjon új/nyitott problémákat!" - - #: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 - msgid "Find people whose" - msgstr "Találj olyan embereket, akiknél a" - - #: html/Search/Listing.html:108 - msgid "Find tickets" - msgstr "Problémák keresése" - - #: NOT FOUND IN SOURCE - msgid "Finish Approval" - msgstr "" - - #: html/Ticket/Elements/Tabs:58 - msgid "First" - msgstr "Elsõ" - - #: html/Search/Listing.html:41 - msgid "First page" - msgstr "Elsõ oldal" - - #: docs/design_docs/string-extraction-guide.txt:33 - msgid "Foo Bar Baz" - msgstr "" - - #: docs/design_docs/string-extraction-guide.txt:24 - msgid "Foo!" - msgstr "" - - #: html/Search/Bulk.html:87 - msgid "Force change" - msgstr "A változtatás kikényszerítése" - - #: html/Search/Listing.html:106 - #. ($ticketcount) - msgid "Found %quant(%1,ticket)" - msgstr "%1 problémát találtam" - - #: lib/RT/Interface/Web.pm:868 - msgid "Found Object" - msgstr "" - - #: html/Admin/Elements/ModifyUser:44 - msgid "FreeformContactInfo" - msgstr "" - - #: lib/RT/CustomField_Overlay.pm:38 - msgid "FreeformMultiple" - msgstr "" - - #: lib/RT/CustomField_Overlay.pm:37 - msgid "FreeformSingle" - msgstr "" - - #: lib/RT/Date.pm:392 - msgid "Fri." - msgstr "P" - - #: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 - msgid "Full headers" - msgstr "Teljes fejléc" - - #: NOT FOUND IN SOURCE - msgid "Getting the current user from a pgp sig\\n" - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:595 - #. ($New->Name) - msgid "Given to %1" - msgstr "%1 felhasználónak adva" - - #: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 - msgid "Global" - msgstr "Általános" - - #: NOT FOUND IN SOURCE - msgid "Global Scrips" - msgstr "" - - #: html/Admin/Elements/SelectTemplate:38 - #. (loc($Template->Name)) - msgid "Global template: %1" - msgstr "Általános probléma: %1" - - #: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 - msgid "Go!" - msgstr "Hajrá!" - - #: NOT FOUND IN SOURCE - msgid "Good pgp sig from %1\\n" - msgstr "" - - #: html/Search/Listing.html:50 - msgid "Goto page" - msgstr "" - - #: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 - msgid "Goto ticket" - msgstr "Mutassa a problémát" - - #: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 - msgid "Group" - msgstr "Csoport" - - #: NOT FOUND IN SOURCE - msgid "Group %1 %2: %3" - msgstr "" - - #: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 - msgid "Group Rights" - msgstr "Csoportjogok" - - #: lib/RT/Group_Overlay.pm:965 - msgid "Group already has member" - msgstr "Csoportnak már vannak tagjai" - - #: html/Admin/Groups/Modify.html:77 - #. ($create_msg) - msgid "Group could not be created: %1" - msgstr "A csoportot nem lehetett létrehozni: %1" - - #: lib/RT/Group_Overlay.pm:497 - msgid "Group created" - msgstr "Csoport létrehozva" - - #: lib/RT/Group_Overlay.pm:1133 - msgid "Group has no such member" - msgstr "A csoportnak már van ilyen tagja" - - #: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 - msgid "Group not found" - msgstr "Csoport nem található" - - #: NOT FOUND IN SOURCE - msgid "Group not found.\\n" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Group not specified.\\n" - msgstr "" - - #: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 - msgid "Groups" - msgstr "Csoportok" - - #: lib/RT/Group_Overlay.pm:971 - msgid "Groups can't be members of their members" - msgstr "Csoportok nem lehetnek a saját tagjaik tagjai!" - - #: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 - msgid "Hello!" - msgstr "Hallo!" - - #: docs/design_docs/string-extraction-guide.txt:40 - #. ($name) - msgid "Hello, %1" - msgstr "Hallo %1" - - #: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 - msgid "History" - msgstr "Részletes történet" - - #: html/RTFM/Article/History.html:22 - msgid "History for article #%1" - msgstr "" - - #: html/Admin/Elements/ModifyUser:68 - msgid "HomePhone" - msgstr "Otthoni telefon" - - #: html/Elements/Tabs:46 - msgid "Homepage" - msgstr "Kezdõlap" - - #: lib/RT/Base.pm:74 - #. (6) - msgid "I have %quant(%1,concrete mixer)." - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "I have [quant,_1,concrete mixer]." - msgstr "" - - #: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 - msgid "Id" - msgstr "Sorszám" - - #: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 - msgid "Identity" - msgstr "Személy" - - #: etc/upgrade/2.1.71:86 - msgid "" - "If an approval is rejected, reject the original and delete pending approvals" - msgstr "" - "Ha egy engedélyezést elutasít utasítsa el az eredetit, és törölja a várakozó engedélyzéseket." - - #: bin/rt-crontool:190 - msgid "" - "If this tool were setgid, a hostile local user could use this tool to gain " - "administrative access to RT." - msgstr "" - "Ha ez az eszköz 'setgid' lenne egy rosszszándékú helyi felhasználóadminisztratív hozzáférést nyerne az RT hez." - - #: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 - msgid "If you've updated anything above, be sure to" - msgstr "" - "Ha valamit módosított, ne felejtsen el ide kattintani, hogy megtörténjen a" - - #: lib/RT/Interface/Web.pm:860 - msgid "Illegal value for %1" - msgstr "Érvénytelen érték %1-nek" - - #: lib/RT/Interface/Web.pm:863 - msgid "Immutable field" - msgstr "Nem változtatható mezõ" - - #: RTFM - msgid "in class %1" - msgstr "%1" - - #: RTFM - msgid "Include disabled classes in listing." - msgstr "" - - #: html/Admin/Elements/EditCustomFields:74 - msgid "Include disabled custom fields in listing." - msgstr "Láthatóak legyenek a letiltott egyéni mezõk is." - - #: html/Admin/Queues/index.html:43 - msgid "Include disabled queues in listing." - msgstr "Láthatóak legyenek a letiltott sorok is." - - #: html/Admin/Users/index.html:47 - msgid "Include disabled users in search." - msgstr "Keresés a letiltott felhasználók között is." - - #: lib/RT/Tickets_Overlay.pm:1067 - msgid "Initial Priority" - msgstr "Kezdõ prioritás" - - #: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 - msgid "InitialPriority" - msgstr "" - - #: lib/RT/ScripAction_Overlay.pm:105 - msgid "Input error" - msgstr "Input hiba" - - #: lib/RT/Ticket_Overlay.pm:3729 - msgid "Internal Error" - msgstr "Belsõ hiba" - - #: lib/RT/Record.pm:143 - #. ($id->{error_message}) - msgid "Internal Error: %1" - msgstr "Belsõ hiba: %1" - - #: lib/RT/Group_Overlay.pm:644 - msgid "Invalid Group Type" - msgstr "Érvénytelen csoportfajta" - - #: lib/RT/Principal_Overlay.pm:128 - msgid "Invalid Right" - msgstr "Érvénytelen jog" - - #: lib/RT/Interface/Web.pm:865 - msgid "Invalid data" - msgstr "Érvénytelen dátum" - - #: lib/RT/Ticket_Overlay.pm:438 - msgid "Invalid owner. Defaulting to 'nobody'." - msgstr "" - "Tulajdonos érvénytelen, ezért 'Senki'-re állítva." - - #: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 - msgid "Invalid queue" - msgstr "Érvénytelen sor" - - #: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 - msgid "Invalid right" - msgstr "Érvénytelen jog" - - #: lib/RT/Record.pm:118 - #. ($key) - msgid "Invalid value for %1" - msgstr "Érvénytelen érték %1-nek" - - #: lib/RT/Ticket_Overlay.pm:3367 - msgid "Invalid value for custom field" - msgstr "Érvénytelen érték az egyéni mezõhöz" - - #: lib/RT/Ticket_Overlay.pm:345 - msgid "Invalid value for status" - msgstr "Érvénytelen státuszérték" - - #: bin/rt-crontool:191 - msgid "" - "It is incredibly important that nonprivileged users not be allowed to run " - "this tool." - msgstr "" - - #: bin/rt-crontool:192 - 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:163 - msgid "It takes several arguments:" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Items pending my approval" - msgstr "" - - #: lib/RT/Date.pm:411 - msgid "Jan." - msgstr "jan." - - #: lib/RT/Group_Overlay.pm:149 - msgid "Join or leave this group" - msgstr "" - - #: lib/RT/Date.pm:417 - msgid "Jul." - msgstr "júl." - - #: html/Ticket/Elements/Tabs:99 - msgid "Jumbo" - msgstr "Minden módosítása" - - #: lib/RT/Date.pm:416 - msgid "Jun." - msgstr "jún." - - #: NOT FOUND IN SOURCE - msgid "Keyword" - msgstr "" - - #: html/Admin/Elements/ModifyUser:52 - msgid "Lang" - msgstr "Nyelv" - - #: html/Ticket/Elements/Tabs:73 - msgid "Last" - msgstr "Utolsó" - - #: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 - msgid "Last Contact" - msgstr "Utolsó kapcsolat" - - #: html/Elements/SelectDateType:29 - msgid "Last Contacted" - msgstr "Utoljára foglalkoztak vele" - - #: html/Search/Elements/TicketHeader:41 - msgid "Last Notified" - msgstr "Utolsó módosítás" - - #: html/Elements/SelectDateType:30 - msgid "Last Updated" - msgstr "Utoljára aktualizálva" - - #: NOT FOUND IN SOURCE - msgid "Left" - msgstr "" - - #: html/Admin/Users/Modify.html:83 - msgid "Let this user access RT" - msgstr "Felhasználónak RT-hozzáférés engedélyezése" - - #: html/Admin/Users/Modify.html:87 - msgid "Let this user be granted rights" - msgstr "Felhasználónak több jog engedélyezése" - - #: NOT FOUND IN SOURCE - msgid "Limiting owner to %1 %2" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Limiting queue to %1 %2" - msgstr "" - - #: lib/RT/Ticket_Overlay.pm:2697 - msgid "Link already exists" - msgstr "Kapcsolat már létezik" - - #: lib/RT/Ticket_Overlay.pm:2709 - msgid "Link could not be created" - msgstr "Kapcsolat nem hozható létre" - - #: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 - #. ($TransString) - msgid "Link created (%1)" - msgstr "Kapcsolat létrehozva (%1)" - - #: lib/RT/Ticket_Overlay.pm:2638 - #. ($TransString) - msgid "Link deleted (%1)" - msgstr "Kapcsolat törölve (%1)" - - #: lib/RT/Ticket_Overlay.pm:2644 - msgid "Link not found" - msgstr "Kapcsolat nem található" - - #: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 - #. ($Ticket->Id) - msgid "Link ticket #%1" - msgstr "%1. számú probléma kapcsolatainak módosítása" - - #: html/Ticket/Elements/Tabs:97 - msgid "Links" - msgstr "Kapcsolatok módosítása" - - #: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 - msgid "Location" - msgstr "Cím" - - #: lib/RT.pm:158 - #. ($RT::LogDir) - msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." - msgstr "" - "Log-könyvtár %1 nem található, vagy nincs írási joga.\\n Az RT tud elindulni." - - #: html/Elements/Header:57 - #. ("<b>".$session{'CurrentUser'}->Name."</b>") - msgid "Logged in as %1" - msgstr "%1-ként van bejelentkezve" - - #: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 - msgid "Login" - msgstr "Bejelentkezés" - - #: html/Elements/Header:54 - msgid "Logout" - msgstr "Kijelentkezés" - - #: html/Search/Bulk.html:86 - msgid "Make Owner" - msgstr "Legyen a tulajdonos" - - #: html/Search/Bulk.html:102 - msgid "Make Status" - msgstr "Státusz változtatása" - - #: html/Search/Bulk.html:109 - msgid "Make date Due" - msgstr "Határidõ változtatása" - - #: html/Search/Bulk.html:110 - msgid "Make date Resolved" - msgstr "Lezárási dátum változtatása" - - #: html/Search/Bulk.html:107 - msgid "Make date Started" - msgstr "Hozzáfogás dátumának változtatása" - - #: html/Search/Bulk.html:106 - msgid "Make date Starts" - msgstr "Kiosztás dátumának változtatása" - - #: html/Search/Bulk.html:108 - msgid "Make date Told" - msgstr "Bejelentés dátumának változtatása" - - #: html/Search/Bulk.html:99 - msgid "Make priority" - msgstr "Prioritás állítása" - - #: html/Search/Bulk.html:100 - msgid "Make queue" - msgstr "Sor változtatása" - - #: html/Search/Bulk.html:98 - msgid "Make subject" - msgstr "Tárgy változtatása" - - #: html/Admin/index.html:33 - msgid "Manage groups and group membership" - msgstr "Csoportok és tagjaik kezelése" - - #: html/Admin/index.html:39 - msgid "Manage properties and configuration which apply to all queues" - msgstr "Minden sorra vonatkozó tulajdonságok és beállítások kezelése" - - #: html/Admin/index.html:36 - msgid "Manage queues and queue-specific properties" - msgstr "Sorok és a sorokra jellemzõ beállítások kezelése" - - #: html/Admin/index.html:30 - msgid "Manage users and passwords" - msgstr "Felhasználók és jelszavaik kezelése" - - #: lib/RT/Date.pm:413 - msgid "Mar." - msgstr "már." - - #: lib/RT/Date.pm:415 - msgid "May." - msgstr "máj." - - #: lib/RT/Group_Overlay.pm:982 - msgid "Member added" - msgstr "Tag hozzáadva" - - #: lib/RT/Group_Overlay.pm:1140 - msgid "Member deleted" - msgstr "Tag törölve" - - #: lib/RT/Group_Overlay.pm:1144 - msgid "Member not deleted" - msgstr "Tag nincs törölve" - - #: html/Elements/SelectLinkType:26 - msgid "Member of" - msgstr "Tagja a" - - #: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 - msgid "Members" - msgstr "Tagok" - - #: lib/RT/Ticket_Overlay.pm:2843 - msgid "Merge Successful" - msgstr "Beolvasztás sikeres" - - #: lib/RT/Ticket_Overlay.pm:2804 - msgid "Merge failed. Couldn't set EffectiveId" - msgstr "Beolvasztás sikertelen Konnte EffectiveId nicht setztn" - - #: html/Ticket/Elements/EditLinks:115 - msgid "Merge into" - msgstr "Beolvasztani ebbe" - - #: html/Ticket/Update.html:102 - msgid "Message" - msgstr "Üzenet szövege" - - #: lib/RT/Interface/Web.pm:867 - msgid "Missing a primary key?: %1" - msgstr "" - - #: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 - msgid "Mobile" - msgstr "Mobil" - - #: html/Admin/Elements/ModifyUser:72 - msgid "MobilePhone" - msgstr "Mobiltelefon" - - #: RTFM - msgid "Modified" - msgstr "Megváltoztatva" - - #: RTFM - msgid "Modify" - msgstr "" - - #: RTFM - msgid "Modify article #%1" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:70 - msgid "Modify Access Control List" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Modify Custom Field %1" - msgstr "" - - #: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 - msgid "Modify Custom Fields which apply to all queues" - msgstr "Változtassa meg a minden sorra vonatkozó egyéni mezõket!" - - #: html/RTFM/Admin/CustomFields/GroupRights.html:21 - msgid "Modify group rights for custom field %1" - msgstr "Változztassa meg a(z) %1 sor csoportjogait!" - - #: lib/RT/Queue_Overlay.pm:73 - msgid "Modify Scrip templates for this queue" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:76 - msgid "Modify Scrips for this queue" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Modify Template %1" - msgstr "" - - #: html/Admin/Queues/CustomField.html:45 - #. ($QueueObj->Name()) - msgid "Modify a CustomField for queue %1" - msgstr "Változtassa meg a(z) %1 sor egyéni mezõjét!" - - #: html/Admin/Global/CustomField.html:53 - msgid "Modify a CustomField which applies to all queues" - msgstr "" - - #: html/Admin/Queues/Scrip.html:54 - #. ($QueueObj->Name) - msgid "Modify a scrip for queue %1" - msgstr "" - - #: html/Admin/Global/Scrip.html:48 - msgid "Modify a scrip which applies to all queues" - msgstr "" - - #: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 - #. ($TicketObj->Id) - msgid "Modify dates for #%1" - msgstr "%1. számú probléma idõadatainak módosítása" - - #: html/Ticket/ModifyDates.html:35 - #. ($TicketObj->Id) - msgid "Modify dates for ticket # %1" - msgstr "%1. számú probléma idõadatainak módosítása" - - #: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 - msgid "Modify global group rights" - msgstr "Változtassa meg az általános csoportjogokat!" - - #: html/Admin/Global/GroupRights.html:33 - msgid "Modify global group rights." - msgstr "Változtassa meg az általános csoportjogokat!" - - #: NOT FOUND IN SOURCE - msgid "Modify global scrips" - msgstr "" - - #: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 - msgid "Modify global user rights" - msgstr "Változtassa meg az általános felhasználói jogokat!" - - #: html/Admin/Global/UserRights.html:33 - msgid "Modify global user rights." - msgstr "Változtassa meg az általános felhasználói jogokat!" - - #: lib/RT/Group_Overlay.pm:146 - msgid "Modify group metadata or delete group" - msgstr "" - - #: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 - #. ($GroupObj->Name) - msgid "Modify group rights for group %1" - msgstr "Módosítsa a(z) %1 csoport jogait" - - #: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 - #. ($QueueObj->Name) - msgid "Modify group rights for queue %1" - msgstr "Változtassa meg a %1 sor csoportjogait!" - - #: lib/RT/Group_Overlay.pm:148 - msgid "Modify membership roster for this group" - msgstr "" - - #: lib/RT/System.pm:61 - msgid "Modify one's own RT account" - msgstr "" - - #: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 - #. ($QueueObj->Name) - msgid "Modify people related to queue %1" - msgstr "Változtassa meg a %1 sorhoz tarozó részvevõket!" - - #: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 - #. ($Ticket->id) - #. ($Ticket->Id) - msgid "Modify people related to ticket #%1" - msgstr "A %1. számú problémában érintett személyek változtatása" - - #: html/Admin/Queues/Scrips.html:44 - #. ($QueueObj->Name) - msgid "Modify scrips for queue %1" - msgstr "Változtassa meg a(z) %1 sor Scripjeit" - - #: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 - msgid "Modify scrips which apply to all queues" - msgstr "Változtassa meg a minden sorra vonatkozó scripeket!" - - #: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 - #. (loc($TemplateObj->Name())) - #. ($TemplateObj->id) - msgid "Modify template %1" - msgstr "Hozzon létre egy sablont!" - - #: html/Admin/Global/Templates.html:44 - msgid "Modify templates which apply to all queues" - msgstr "Változtassa meg az általános sablonokat!" - - #: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 - #. ($Group->Name) - msgid "Modify the group %1" - msgstr "A %1 csoport módosítása" - - #: lib/RT/Queue_Overlay.pm:71 - msgid "Modify the queue watchers" - msgstr "" - - #: html/Admin/Users/Modify.html:236 - #. ($UserObj->Name) - msgid "Modify the user %1" - msgstr "%1 felhasználó módosítása" - - #: html/Ticket/ModifyAll.html:37 - #. ($Ticket->Id) - msgid "Modify ticket # %1" - msgstr "%1. számú probléma adatainak módosítása" - - #: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 - #. ($TicketObj->Id) - msgid "Modify ticket #%1" - msgstr "%1. számú probléma alapadatainak módosítása" - - #: lib/RT/Queue_Overlay.pm:88 - msgid "Modify tickets" - msgstr "" - - #: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 - #. ($GroupObj->Name) - msgid "Modify user rights for group %1" - msgstr "Változtassa meg a(z) %1 csoport jogait!" - - #: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 - #. ($QueueObj->Name) - msgid "Modify user rights for queue %1" - msgstr "Változtassa meg a(z) %1 sor felhasználói jogait!" - - #: NOT FOUND IN SOURCE - msgid "Modify watchers for queue '%1'" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:70 - msgid "ModifyACL" - msgstr "" - - #: lib/RT/Group_Overlay.pm:149 - msgid "ModifyOwnMembership" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:71 - msgid "ModifyQueueWatchers" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:76 - msgid "ModifyScrips" - msgstr "" - - #: lib/RT/System.pm:61 - msgid "ModifySelf" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:73 - msgid "ModifyTemplate" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:88 - msgid "ModifyTicket" - msgstr "" - - #: lib/RT/Date.pm:388 - msgid "Mon." - msgstr "H" - - #: html/Ticket/Elements/ShowRequestor:42 - #. ($name) - msgid "More about %1" - msgstr "További részletek %1 felhasználóról" - - #: html/Admin/Elements/EditCustomFields:61 - msgid "Move down" - msgstr "Lefelé mozgatni" - - #: html/Admin/Elements/EditCustomFields:53 - msgid "Move up" - msgstr "Felfelé mozgatni" - - #: html/Admin/Elements/SelectSingleOrMultiple:27 - msgid "Multiple" - msgstr "" - - #: lib/RT/User_Overlay.pm:179 - msgid "Must specify 'Name' attribute" - msgstr "" - - #: share/html/SelfService/Elements/MyRequests:32 - msgid "My %1 tickets" - msgstr "%1 problémáim" - - #: NOT FOUND IN SOURCE - msgid "My Approvals" - msgstr "" - - #: html/Approvals/index.html:25 html/Approvals/index.html:26 - msgid "My approvals" - msgstr "Lezárás" - - #: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 - msgid "Name" - msgstr "Név" - - #: lib/RT/User_Overlay.pm:186 - msgid "Name in use" - msgstr "A felhasználói név nár foglalt" - - #: RTFM - msgid "Name matches" - msgstr "Név tartalmaz" - - #: NOT FOUND IN SOURCE - msgid "Need approval from system administrator" - msgstr "" - - #: html/Ticket/Elements/ShowDates:52 - msgid "Never" - msgstr "Soha" - - #: html/Elements/Quicksearch:30 - msgid "New" - msgstr "Új" - - #: RTFM - msgid "New Article" - msgstr "" - - #: RTFM - msgid "New class" - msgstr "" - - #: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 - msgid "New Password" - msgstr "Új jelszó" - - #: etc/initialdata:311 etc/upgrade/2.1.71:16 - msgid "New Pending Approval" - msgstr "" - - #: html/Ticket/Elements/EditLinks:111 - msgid "New Relationships" - msgstr "Új kapcsolatok" - - #: html/Ticket/Elements/Tabs:36 - msgid "New Search" - msgstr "Új keresés" - - #: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 - msgid "New custom field" - msgstr "Új egyéni mezõ" - - #: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 - msgid "New group" - msgstr "Új csoport" - - #: html/SelfService/Prefs.html:32 - msgid "New password" - msgstr "Új jelszó" - - #: lib/RT/User_Overlay.pm:639 - msgid "New password notification sent" - msgstr "" - - #: html/Admin/Elements/QueueTabs:70 - msgid "New queue" - msgstr "Új sor" - - #: html/SelfService/Elements/Tabs:63 - msgid "New ticket" - msgstr "Új probléma" - - #: html/Admin/Elements/SelectRights:42 - msgid "New rights" - msgstr "Új jogok" - - #: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 - msgid "New scrip" - msgstr "Új Scrip" - - #: NOT FOUND IN SOURCE - msgid "New search" - msgstr "" - - #: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 - msgid "New template" - msgstr "Új sablon" - - #: lib/RT/Ticket_Overlay.pm:2771 - msgid "New ticket doesn't exist" - msgstr "Az új probléma nem létezik" - - #: html/Admin/Elements/UserTabs:52 - msgid "New user" - msgstr "Új felhasználó" - - #: html/Admin/Elements/CreateUserCalled:26 - msgid "New user called" - msgstr "" - - #: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 - msgid "New watchers" - msgstr "Új résztvevõk" - - #: html/Admin/Users/Prefs.html:42 - msgid "New window setting" - msgstr "" - - #: html/Ticket/Elements/Tabs:69 - msgid "Next" - msgstr "Következõ" - - #: html/Search/Listing.html:48 - msgid "Next page" - msgstr "Következõ oldal" - - #: html/Admin/Elements/ModifyUser:50 - msgid "NickName" - msgstr "Becenév" - - #: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 - msgid "Nickname" - msgstr "Becenév" - - #: RTFM - msgid "No" - msgstr "Nem" - - #: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 - msgid "No CustomField" - msgstr "Nincs egyéni mezõ" - - #: html/RTFM/Admin/CustomFields/GrroupRights.html:73 - msgid "No CustomField defined" - msgstr "Nincs egyéni mezõ meghatározva" - - #: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 - msgid "No Group defined" - msgstr "Nincs csoport meghatározva" - - #: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 - msgid "No Queue defined" - msgstr "Nincs sor meghatározva" - - #: bin/rt-crontool:56 - msgid "No RT user found. Please consult your RT administrator.\\n" - msgstr "" - "RT-felhasználó nem található. Vegyew fel a kapcsolatot az RT-adminisztrátorral.\\n" - - #: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 - msgid "No Template" - msgstr "Nincs sablon" - - #: bin/rt-commit-handler:764 - msgid "No Ticket specified. Aborting ticket " - msgstr "Nincs probléma megadva. Szakítsa meg a problémát " - - #: NOT FOUND IN SOURCE - msgid "No Ticket specified. Aborting ticket modifications\\n\\n" - msgstr "" - - #: html/Approvals/Elements/Approve:47 - msgid "No action" - msgstr "" - - #: lib/RT/Interface/Web.pm:862 - msgid "No column specified" - msgstr "Nincs <b>sor</b> megadva!" - - #: NOT FOUND IN SOURCE - msgid "No command found\\n" - msgstr "" - - #: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 - msgid "No comment entered about this user" - msgstr "Nincs kiegészítés tárolva" - - #: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 - msgid "No correspondence attached" - msgstr "" - - #: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 - #. (ref $self) - msgid "No description for %1" - msgstr "Nincs leírás a(z) %1-hez" - - #: lib/RT/Users_Overlay.pm:151 - msgid "No group specified" - msgstr "Nincs <b>csoport</b> megadva!" - - #: lib/RT/User_Overlay.pm:857 - msgid "No password set" - msgstr "Nincs jelszó megadva" - - #: lib/RT/Queue_Overlay.pm:259 - msgid "No permission to create queues" - msgstr "Nincs joga sort létrehozni" - - #: lib/RT/Ticket_Overlay.pm:341 - #. ($QueueObj->Name) - msgid "No permission to create tickets in the queue '%1'" - msgstr "Nincs joga a(z) '%1' sorban problémát létrehozni" - - #: lib/RT/User_Overlay.pm:151 - msgid "No permission to create users" - msgstr "Nincs joga felhasználót létrehozni" - - #: html/SelfService/Display.html:174 - msgid "No permission to display that ticket" - msgstr "" - - #: html/SelfService/Update.html:55 - msgid "No permission to view update ticket" - msgstr "Nincs joga ezt a problémát aktualizálni" - - #: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 - msgid "No principal specified" - msgstr "Nincs <b>felelõs</b> megadva!" - - #: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 - msgid "No principals selected." - msgstr "Nincs vezetõ kiválasztva." - - #: html/Admin/Queues/index.html:35 - msgid "No queues matching search criteria found." - msgstr "Nem található a keresési fletételeknek megfeleõ sor" - - #: html/Admin/Elements/SelectRights:81 - msgid "No rights found" - msgstr "Nem találhatók jogok" - - #: html/Admin/Elements/SelectRights:33 - msgid "No rights granted." - msgstr "Nincsenek jogok engedélyezve." - - #: html/Search/Bulk.html:149 - msgid "No search to operate on." - msgstr "Nincs feldolgozható keresési lista." - - #: NOT FOUND IN SOURCE - msgid "No ticket id specified" - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 - msgid "No transaction type specified" - msgstr "Nincs <b>értesítési típus</b> megadva!" - - #: html/Admin/Users/index.html:36 - msgid "No users matching search criteria found." - msgstr "Nincs a keresési feltételeknek megfeleõ felhasználó." - - #: bin/rt-commit-handler:644 - msgid "" - "No valid RT user found. RT cvs handler disengaged. Please consult your RT " - "administrator.\\n" - msgstr "" - "Nem található érvényes RT-felhasználó. RT CVS-Handler elveszett. Vegye fela kapcsolatot az RT-Adminisztrátorral.\\n" - - #: lib/RT/Interface/Web.pm:859 - msgid "No value sent to _Set!\\n" - msgstr "" - - #: html/Search/Elements/TicketRow:37 - msgid "Nobody" - msgstr "Senki" - - #: lib/RT/Interface/Web.pm:864 - msgid "Nonexistant field?" - msgstr "Nem létezõ mezõ?" - - #: html/Elements/Login:99 - msgid "Not logged in" - msgstr "Nincs bejelentkezve" - - #: html/Elements/Header:59 html/SelfService/Elements/Header:58 - msgid "Not logged in." - msgstr "Nincs bejelentkezve." - - #: lib/RT/Date.pm:369 - msgid "Not set" - msgstr "Nincs megadva" - - #: html/NoAuth/Reminder.html:27 - msgid "Not yet implemented." - msgstr "" - - #: html/Admin/Groups/Rights.html:25 - msgid "Not yet implemented...." - msgstr "" - - #: html/Approvals/Elements/Approve:50 - msgid "Notes" - msgstr "Megjegyzések" - - #: lib/RT/User_Overlay.pm:642 - msgid "Notification could not be sent" - msgstr "Értesítést nem sikerült elküldeni." - - #: etc/initialdata:94 - msgid "Notify AdminCcs" - msgstr "AdminCCs értesítése" - - #: etc/initialdata:90 - msgid "Notify AdminCcs as Comment" - msgstr "AdminCCs értesítése kiegészítésként" - - #: etc/initialdata:121 - msgid "Notify Other Recipients" - msgstr "Más címzettek értesítése" - - #: etc/initialdata:117 - msgid "Notify Other Recipients as Comment" - msgstr "Más címzettek értesítése kiegészítésként" - - #: etc/initialdata:86 - msgid "Notify Owner" - msgstr "A tulajdonos értesítése" - - #: etc/initialdata:82 - msgid "Notify Owner as Comment" - msgstr "A tulajdonos értesítése kiegészítésként" - - #: etc/initialdata:313 etc/upgrade/2.1.71:17 - msgid "Notify Owners and AdminCcs of new items pending their approval" - msgstr "" - - #: etc/initialdata:78 - msgid "Notify Requestors" - msgstr "Beküldõ értesítése" - - #: etc/initialdata:104 - msgid "Notify Requestors and Ccs" - msgstr "A beküldõ és a tájékoztatást kapó értesítése" - - #: etc/initialdata:99 - msgid "Notify Requestors and Ccs as Comment" - msgstr "A beküldõ és a tájékoztatást kapó értesítése kiegészítésként" - - #: etc/initialdata:113 - msgid "Notify Requestors, Ccs and AdminCcs" - msgstr "Minden résztvevõ tájékozatatása" - - #: etc/initialdata:109 - msgid "Notify Requestors, Ccs and AdminCcs as Comment" - msgstr "Minden résztvevõ értesítése kiegészítésként" - - #: lib/RT/Date.pm:421 - msgid "Nov." - msgstr "nov." - - #: lib/RT/Record.pm:157 - msgid "Object could not be created" - msgstr "Objekum nem hozható létre" - - #: lib/RT/Record.pm:176 - msgid "Object created" - msgstr "Objektum létehozva" - - #: lib/RT/Date.pm:420 - msgid "Oct." - msgstr "okt." - - #: html/Elements/SelectDateRelation:35 - msgid "On" - msgstr "e napon" - - #: etc/initialdata:155 - msgid "On Comment" - msgstr "Kiegészítéskor" - - #: etc/initialdata:148 - msgid "On Correspond" - msgstr "Válaszoláskor" - - #: etc/initialdata:137 - msgid "On Create" - msgstr "Létrehozáskor" - - #: etc/initialdata:169 - msgid "On Owner Change" - msgstr "Tulajdonos változásakor" - - #: etc/initialdata:177 - msgid "On Queue Change" - msgstr "Sor megváltozásakor" - - #: etc/initialdata:183 - msgid "On Resolve" - msgstr "Lezáráskor" - - #: etc/initialdata:161 - msgid "On Status Change" - msgstr "Státusz megváltozásakor" - - #: etc/initialdata:142 - msgid "On Transaction" - msgstr "Tranzakciónál" - - #: html/Approvals/Elements/PendingMyApproval:50 - #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") - msgid "Only show approvals for requests created after %1" - msgstr "Csak a(z) %1 után létrejött poblémák engedélyezései legyenek láthatóak" - - #: html/Approvals/Elements/PendingMyApproval:48 - #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") - msgid "Only show approvals for requests created before %1" - msgstr "Csak a(z) %1 elõtt létrejött problémák engedélyezései legyenek láthatóak" - - #: html/Elements/Quicksearch:31 - msgid "Open" - msgstr "Nyitott" - - #: html/Ticket/Elements/Tabs:136 - msgid "Open it" - msgstr "Megnyit" - - #: html/SelfService/Elements/Tabs:57 - msgid "Open tickets" - msgstr "Nyitott problémák" - - #: html/Admin/Users/Prefs.html:41 - msgid "Open tickets (from listing) in a new window" - msgstr "" - - #: html/Admin/Users/Prefs.html:40 - msgid "Open tickets (from listing) in another window" - msgstr "" - - #: etc/initialdata:133 - msgid "Open tickets on correspondence" - msgstr "" - - #: html/Search/Elements/PickRestriction:101 - msgid "Ordering and sorting" - msgstr "Csoportosítás és sorrend" - - #: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 - msgid "Organization" - msgstr "Cég, szervezet" - - #: html/Approvals/Elements/Approve:34 - #. ($approving->Id, $approving->Subject) - msgid "Originating ticket: #%1" - msgstr "" - - #: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 - msgid "Over time, priority moves toward" - msgstr "Prioritás idõvel emelkedik" - - #: html/RTFM/index.html:19 - msgid "Overview" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:87 - msgid "Own tickets" - msgstr "Saját problémák" - - #: lib/RT/Queue_Overlay.pm:87 - msgid "OwnTicket" - msgstr "" - - #: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 - msgid "Owner" - msgstr "Tulajdonos" - - #: lib/RT/Ticket_Overlay.pm:3004 - #. ($OldOwnerObj->Name, $NewOwnerObj->Name) - msgid "Owner changed from %1 to %2" - msgstr "Tulajdonosváltás: %1 --> %2" - - #: lib/RT/Transaction_Overlay.pm:584 - #. ($Old->Name , $New->Name) - msgid "Owner forcibly changed from %1 to %2" - msgstr "Erõszakos tulajdonosváltás: %1 --> %2" - - #: html/Search/Elements/PickRestriction:31 - msgid "Owner is" - msgstr "A tulajdonos" - - #: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 - msgid "Pager" - msgstr "" - - #: html/Admin/Elements/ModifyUser:74 - msgid "PagerPhone" - msgstr "" - - #: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 - msgid "Parents" - msgstr "Felmenõk" - - #: html/Elements/Login:43 html/User/Prefs.html:61 - msgid "Password" - msgstr "Jelszó" - - #: html/NoAuth/Reminder.html:25 - msgid "Password Reminder" - msgstr "Jelszó-emlékeztetõ" - - #: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 - msgid "Password too short" - msgstr "A jelszó túl rövid!" - - #: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 - #. (loc_fuzzy($msg)) - msgid "Password: %1" - msgstr "Jelszó: %1" - - #: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 - msgid "People" - msgstr "Résztvevõk" - - #: etc/initialdata:126 - msgid "Perform a user-defined action" - msgstr "" - - #: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 - msgid "Permission Denied" - msgstr "Hozzáférés visszautasítva" - - #: html/User/Elements/Tabs:35 - msgid "Personal Groups" - msgstr "Saját Csoportok" - - #: html/User/Groups/index.html:30 html/User/Groups/index.html:40 - msgid "Personal groups" - msgstr "Saját csoportok" - - #: html/User/Elements/DelegateRights:37 - msgid "Personal groups:" - msgstr "Saját csoportok:" - - #: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 - msgid "Phone numbers" - msgstr "Telefonszámok" - - #: html/Admin/Users/Rights.html:25 - msgid "Placeholder" - msgstr "" - - #: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 - msgid "Preferences" - msgstr "Beállításaim" - - #: NOT FOUND IN SOURCE - msgid "Prefs" - msgstr "" - - #: lib/RT/Action/Generic.pm:160 - msgid "Prepare Stubbed" - msgstr "" - - #: html/Ticket/Elements/Tabs:61 - msgid "Prev" - msgstr "Elõzõ" - - #: html/Search/Listing.html:44 - msgid "Previous page" - msgstr "Elõzõ oldal" - - #: NOT FOUND IN SOURCE - msgid "Pri" - msgstr "" - - #: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 - #. ($args{'PrincipalId'}) - msgid "Principal %1 not found." - msgstr "%1 vezetõ nem található." - - #: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 - msgid "Priority" - msgstr "Prioritás" - - #: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 - msgid "Priority starts at" - msgstr "Prioritás kezdõ értéke" - - #: etc/initialdata:25 - msgid "Privileged" - msgstr "Kiemelt" - - #: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 - #. (loc_fuzzy($msg)) - msgid "Privileged status: %1" - msgstr "" - - #: html/Admin/Users/index.html:62 - msgid "Privileged users" - msgstr "Kiemelt felhasználók:" - - #: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 - msgid "Pseudogroup for internal use" - msgstr "" - - #: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 - msgid "Queue" - msgstr "Sor" - - #: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 - #. ($Queue) - #. ($id) - msgid "Queue %1 not found" - msgstr "%2 sor nem található" - - #: NOT FOUND IN SOURCE - msgid "Queue '%1' not found\\n" - msgstr "" - - #: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 - msgid "Queue Name" - msgstr "A sor neve" - - #: NOT FOUND IN SOURCE - msgid "Queue Scrips" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:263 - msgid "Queue already exists" - msgstr "Sor már létezik" - - #: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 - msgid "Queue could not be created" - msgstr "A sor nem hozható létre" - - #: html/Ticket/Create.html:209 - msgid "Queue could not be loaded." - msgstr "a sor nem tölthetõ be." - - #: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 - msgid "Queue created" - msgstr "A sor létrehozva" - - #: NOT FOUND IN SOURCE - msgid "Queue is not specified." - msgstr "" - - #: html/SelfService/Display.html:129 - msgid "Queue not found" - msgstr "A sor nem található" - - #: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 - msgid "Queues" - msgstr "Sorok" - - #: RTFM - msgid "Quick search" - msgstr "Gyors keresés" - - #: html/Elements/Login:34 - #. ($RT::VERSION) - msgid "RT %1" - msgstr "RT %1" - - #: docs/design_docs/string-extraction-guide.txt:70 - #. ($RT::VERSION, $RT::rtname) - msgid "RT %1 for %2" - msgstr "RT %1 %2-nek" - - #: html/Elements/Footer:32 - #. ($RT::VERSION) - msgid "" - "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, " - "LLC</a>." - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" - msgstr "" - - #: html/Admin/index.html:25 html/Admin/index.html:26 - msgid "RT Administration" - msgstr "Konfiguráció" - - #: NOT FOUND IN SOURCE - msgid "RT Authentication error." - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "RT Bounce: %1" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "RT Configuration error" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "RT Critical error. Message not recorded!" - msgstr "" - - #: html/Elements/Error:41 html/SelfService/Error.html:41 - msgid "RT Error" - msgstr "RT Hiba" - - #: NOT FOUND IN SOURCE - msgid "RT Received mail (%1) from itself." - msgstr "" - - #: html/RTFM/Error:36 - msgid "RTFM Error" - msgstr "RTFM Hiba" - - #: html/SelfService/Closed.html:25 - msgid "Closed Tickets" - msgstr "Lezárt problémák" - - #: html/index.html:25 html/index.html:28 - msgid "RT at a glance" - msgstr "Áttekintés" - - #: NOT FOUND IN SOURCE - msgid "RT couldn't authenticate you" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "RT couldn't find requestor via its external database lookup" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "RT couldn't find the queue: %1" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "RT couldn't validate this PGP signature. \\n" - msgstr "" - - #: html/Elements/PageLayout:26 - #. ($RT::rtname) - msgid "RT for %1" - msgstr " %1 -- Request Tracker " - - #: NOT FOUND IN SOURCE - msgid "RT for %1: %2" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "RT has proccessed your commands" - msgstr "Az RT feldolgozta a parancsait" - - #: html/Elements/Login:83 - #. ('2003') - 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 © Copyright 1996-%1 Jesse Vincent " - "<jesse@bestpractical.com>.<br>\n" - "Közzétéve a <a href=\"http://www.gnu.org/copyleft/gpl.html\">GNU General " - "Public License 2. verziója</a> szerint." - - #: NOT FOUND IN SOURCE - msgid "RT thinks this message may be a bounce" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "RT will process this message as if it were unsigned.\\n" - 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 "" - - #: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 - msgid "Real Name" - msgstr "Valódi név" - - #: html/Admin/Elements/ModifyUser:48 - msgid "RealName" - msgstr "Valós név" - - #: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 - msgid "Referred to by" - msgstr "A következõk kapcsolódnak hozzá" - - #: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 - msgid "Refers to" - msgstr "A következõkhöz kapcsolódik" - - #: NOT FOUND IN SOURCE - msgid "Refine" - msgstr "Finomítás" - - #: html/Search/Elements/PickRestriction:27 - msgid "Refine search" - msgstr "Keresés finomítása" - - #: html/Elements/Refresh:36 - #. ($value/60) - msgid "Refresh this page every %1 minutes." - msgstr "%1 percenként frissítse ezt az oldalt." - - #: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 - msgid "Relationships" - msgstr "Kapcsolatok" - - #: html/Search/Bulk.html:93 - msgid "Remove AdminCc" - msgstr "Adminisztratív tájékoztatást kapó eltávolítása" - - #: html/Search/Bulk.html:91 - msgid "Remove Cc" - msgstr "Tájékoztatást kapó eltávolítása" - - #: html/Search/Bulk.html:89 - msgid "Remove Requestor" - msgstr "Beküldõ eltávolítása" - - #: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 - msgid "Reply" - msgstr "Válaszol" - - #: lib/RT/Queue_Overlay.pm:85 - msgid "Reply to tickets" - msgstr "Válasz a problémákra" - - #: lib/RT/Queue_Overlay.pm:85 - msgid "ReplyToTicket" - msgstr "" - - #: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 - msgid "Requestor" - msgstr "Beküldõ" - - #: html/Search/Elements/PickRestriction:38 - msgid "Requestor email address" - msgstr "A beküldõ e-mail címe" - - #: NOT FOUND IN SOURCE - msgid "Requestor(s)" - msgstr "Beküldõ" - - #: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 - msgid "Requestors" - msgstr "Beküldõ" - - #: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 - msgid "Requests should be due in" - msgstr "A problémát meg kell oldani" - - #: html/Elements/Submit:62 - msgid "Reset" - msgstr "Visszaállít" - - #: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 - msgid "Residence" - msgstr "Otthoni" - - #: html/Ticket/Elements/Tabs:132 - msgid "Resolve" - msgstr "Lezár" - - #: html/Ticket/Update.html:133 - #. ($Ticket->id, $Ticket->Subject) - msgid "Resolve ticket #%1 (%2)" - msgstr "%1. (%2) probléma lezárása" - - #: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 - msgid "Resolved" - msgstr "Lezárva" - - #: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 - msgid "Response to requestors" - msgstr "Válasz a beküldõknek (adatbázisban rögzítve)" - - #: html/Elements/ListActions:26 - msgid "Results" - msgstr "Változtatások eredménye" - - #: html/Search/Elements/PickRestriction:105 - msgid "Results per page" - msgstr "Találatok száma oldalanként" - - #: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 - msgid "Retype Password" - msgstr "Jelszó megismételve" - - #: NOT FOUND IN SOURCE - msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" - msgstr "" - - #: lib/RT/ACE_Overlay.pm:613 - msgid "Right Delegated" - msgstr "" - - #: lib/RT/ACE_Overlay.pm:303 - msgid "Right Granted" - msgstr "A jog megosztva" - - #: lib/RT/ACE_Overlay.pm:161 - msgid "Right Loaded" - msgstr "A jog betöltve" - - #: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 - msgid "Right could not be revoked" - msgstr "A jog nem vonnható vissza" - - #: html/User/Delegation.html:64 - msgid "Right not found" - msgstr "A jog nem található" - - #: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 - msgid "Right not loaded." - msgstr "A jog nem található." - - #: lib/RT/ACE_Overlay.pm:689 - msgid "Right revoked" - msgstr "Jog visszavonva" - - #: html/Admin/Elements/UserTabs:41 - msgid "Rights" - msgstr "Jogok" - - #: lib/RT/Interface/Web.pm:758 - #. ($object_type) - msgid "Rights could not be granted for %1" - msgstr "" - - #: lib/RT/Interface/Web.pm:791 - #. ($object_type) - msgid "Rights could not be revoked for %1" - msgstr " %1 jogai nem vonhatók vissza" - - #: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 - msgid "Roles" - msgstr "Szerepek" - - #: NOT FOUND IN SOURCE - msgid "RootApproval" - msgstr "" - - #: lib/RT/Date.pm:393 - msgid "Sat." - msgstr "Szo" - - #: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 - msgid "Save Changes" - msgstr "Változtatások mentése" - - #: html/Ticket/ModifyLinks.html:39 - msgid "Save changes" - msgstr "Változtatások mentése" - - #: html/Admin/Global/Scrip.html:49 - #. ($ARGS{'id'}) - msgid "Scrip #%1" - msgstr "" - - #: lib/RT/Scrip_Overlay.pm:176 - msgid "Scrip Created" - msgstr "Scrip létrehozva" - - #: html/Admin/Elements/EditScrips:84 - msgid "Scrip deleted" - msgstr "Scrip törölve" - - #: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 - msgid "Scrips" - msgstr "Scrips" - - #: NOT FOUND IN SOURCE - msgid "Scrips for %1\\n" - msgstr "Scrips %1-hez\\n" - - #: html/Admin/Queues/Scrips.html:33 - msgid "Scrips which apply to all queues" - msgstr "Minden sorhoz érvényes Scripek" - - #: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 - msgid "Search" - msgstr "Keresés" - - #: NOT FOUND IN SOURCE - msgid "Search Criteria" - msgstr "" - - #: html/Approvals/Elements/PendingMyApproval:39 - msgid "Search for approvals" - msgstr "Engedélyezések keresése" - - #: html/RTFM/Article/Search.html:19 - msgid "Search for articles" - msgstr "" - - #: bin/rt-crontool:188 - msgid "Security:" - msgstr "Biztonság:" - - #: lib/RT/Queue_Overlay.pm:67 - msgid "SeeQueue" - msgstr "" - - #: RTFM - msgid "Select a Class" - msgstr "" - - #: RTFM - msgid "Select a Custom Fields" - msgstr "" - - #: html/Admin/Groups/index.html:40 - msgid "Select a group" - msgstr "Válasszon csoportot!" - - #: NOT FOUND IN SOURCE - msgid "Select a queue" - msgstr "" - - #: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 - msgid "Select a user" - msgstr "Válasszon felhasználót!" - - #: RTFM - msgid "Select class" - msgstr "" - - #: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 - msgid "Select custom field" - msgstr "Válasszon egy egyéni mezõt!" - - #: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 - msgid "Select group" - msgstr "Válasszon csoportot!" - - #: lib/RT/CustomField_Overlay.pm:355 - msgid "Select multiple values" - msgstr "Válasszon több értéket!" - - #: lib/RT/CustomField_Overlay.pm:352 - msgid "Select one value" - msgstr "Válasszon értéket!" - - #: html/Admin/Elements/QueueTabs:67 - msgid "Select queue" - msgstr "Válasszon sort!" - - #: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 - msgid "Select scrip" - msgstr "Válasszon Scripet!" - - #: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 - msgid "Select template" - msgstr "Válasszon sablont!" - - #: html/Admin/Elements/UserTabs:49 - msgid "Select user" - msgstr "Válasszon felhasználót" - - #: lib/RT/CustomField_Overlay.pm:36 - msgid "SelectMultiple" - msgstr "" - - #: lib/RT/CustomField_Overlay.pm:35 - msgid "SelectSingle" - msgstr "" - - #: html/SelfService/index.html:25 - msgid "Self Service" - msgstr "" - - #: etc/initialdata:114 - msgid "Send mail to all watchers" - msgstr "" - - #: etc/initialdata:110 - msgid "Send mail to all watchers as a \"comment\"" - msgstr "" - - #: etc/initialdata:105 - msgid "Send mail to requestors and Ccs" - msgstr "" - - #: etc/initialdata:100 - msgid "Send mail to requestors and Ccs as a comment" - msgstr "" - - #: etc/initialdata:79 - msgid "Sends a message to the requestors" - msgstr "" - - #: etc/initialdata:118 etc/initialdata:122 - msgid "Sends mail to explicitly listed Ccs and Bccs" - msgstr "" - - #: etc/initialdata:95 - msgid "Sends mail to the administrative Ccs" - msgstr "" - - #: etc/initialdata:91 - msgid "Sends mail to the administrative Ccs as a comment" - msgstr "" - - #: etc/initialdata:83 etc/initialdata:87 - msgid "Sends mail to the owner" - msgstr "" - - #: lib/RT/Date.pm:419 - msgid "Sep." - msgstr "szep." - - #: RTFM - msgid "Seperate multiple URLs with spaces" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Show Results" - msgstr "" - - #: RTFM - msgid "Show advanced search options..." - msgstr "" - - #: html/Approvals/Elements/PendingMyApproval:44 - msgid "Show approved requests" - msgstr "Láthatóak legyenek a felszabadított problémák" - - #: html/Ticket/Create.html:144 html/Ticket/Create.html:34 - msgid "Show basics" - msgstr "Problémaleírás" - - #: html/Approvals/Elements/PendingMyApproval:45 - msgid "Show denied requests" - msgstr "láthatóak legyenek az elutasított problémák" - - #: html/Ticket/Create.html:144 html/Ticket/Create.html:34 - msgid "Show details" - msgstr "Attribútumok" - - #: html/Approvals/Elements/PendingMyApproval:43 - msgid "Show pending requests" - msgstr "Láthatóak legyenek a folyamatban levõ problémák" - - #: html/Approvals/Elements/PendingMyApproval:46 - msgid "Show requests awaiting other approvals" - msgstr "Láthatóak legyenek a mások engedélyezésére váró problémák" - - #: lib/RT/Queue_Overlay.pm:81 - msgid "Show ticket private commentary" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:79 - msgid "Show ticket summaries" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:69 - msgid "ShowACL" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:78 - msgid "ShowScrips" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:75 - msgid "ShowTemplate" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:79 - msgid "ShowTicket" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:81 - msgid "ShowTicketComments" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:82 - msgid "Sign up as a ticket Requestor or ticket or queue Cc" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:83 - msgid "Sign up as a ticket or queue AdminCc" - msgstr "" - - #: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 - msgid "Signature" - msgstr "Aláírás (e-mail-hez)" - - #: html/SelfService/Elements/Header:52 - #. ($session{'CurrentUser'}->Name) - msgid "Signed in as %1" - msgstr "Bejelentkezett mint %1" - - #: html/Admin/Elements/SelectSingleOrMultiple:26 - msgid "Single" - msgstr "" - - #: html/Elements/Header:51 - msgid "Skip Menu" - msgstr "" - - #: html/Admin/Elements/EditCustomFieldValues:31 - msgid "Sort key" - msgstr "" - - #: html/Search/Elements/PickRestriction:109 - msgid "Sort results by" - msgstr "A találatok csoportosítása a következõ jellemzõ szerint:" - - #: RTFM - msgid "Sort Order" - msgstr "" - - #: html/Admin/Elements/AddCustomFieldValue:25 - msgid "SortOrder" - msgstr "" - - #: RTFM - msgid "Summary" - msgstr "" - - #: RTFM - msgid "Summary matches" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Stalled" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Start page" - msgstr "" - - #: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 - msgid "Started" - msgstr "Elkezdve" - - #: NOT FOUND IN SOURCE - msgid "Started date '%1' could not be parsed" - msgstr "" - - #: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 - msgid "Starts" - msgstr "Kiosztva" - - #: NOT FOUND IN SOURCE - msgid "Starts By" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Starts date '%1' could not be parsed" - msgstr "" - - #: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 - msgid "State" - msgstr "Állam" - - #: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 - msgid "Status" - msgstr "Státusz" - - #: etc/initialdata:288 - msgid "Status Change" - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:530 - #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) - msgid "Status changed from %1 to %2" - msgstr "Státusz változtatása: '%1' --> '%2'" - - #: NOT FOUND IN SOURCE - msgid "StatusChange" - msgstr "" - - #: html/Ticket/Elements/Tabs:147 - msgid "Steal" - msgstr "Elcsen" - - #: lib/RT/Transaction_Overlay.pm:589 - #. ($Old->Name) - msgid "Stolen from %1 " - msgstr "Probléma elcsenése %1 tulajdonostól" - - #: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 - msgid "Subject" - msgstr "Tárgy" - - #: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 - #. ($self->Data) - msgid "Subject changed to %1" - msgstr "" - - #: html/Elements/Submit:59 - msgid "Submit" - msgstr "Mentés" - - #: NOT FOUND IN SOURCE - msgid "Submit Query" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Submit Workflow" - msgstr "" - - #: lib/RT/Group_Overlay.pm:749 - msgid "Succeeded" - msgstr "Sikerült" - - #: lib/RT/Date.pm:394 - msgid "Sun." - msgstr "V" - - #: lib/RT/System.pm:54 - msgid "SuperUser" - msgstr "" - - #: html/User/Elements/DelegateRights:77 - msgid "System" - msgstr "Rendszer" - - #: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 - msgid "System Error" - msgstr "Rendszerhiba" - - #: lib/RT/ACE_Overlay.pm:616 - msgid "System error. Right not delegated." - msgstr "Rendszerhiba. Jog nem delegálható ." - - #: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 - msgid "System error. Right not granted." - msgstr "Rendszerhiba. Jog nem adható." - - #: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 - msgid "System groups" - msgstr "Rendszercsoportok" - - #: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 - msgid "SystemRolegroup for internal use" - msgstr "" - - #: lib/RT/CurrentUser.pm:320 - msgid "TEST_STRING" - msgstr "" - - #: html/Ticket/Elements/Tabs:143 - msgid "Take" - msgstr "Átvesz" - - #: lib/RT/Transaction_Overlay.pm:575 - msgid "Taken" - msgstr "Probléma átvétele" - - #: html/Admin/Elements/EditScrip:81 - msgid "Template" - msgstr "Sablon" - - #: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 - #. ($TemplateObj->Id()) - msgid "Template #%1" - msgstr "Sablon #%1" - - #: html/Admin/Elements/EditTemplates:89 - msgid "Template deleted" - msgstr "Sablon törölve" - - #: lib/RT/Scrip_Overlay.pm:153 - msgid "Template not found" - msgstr "Sablon nem található" - - #: NOT FOUND IN SOURCE - msgid "Template not found\\n" - msgstr "" - - #: lib/RT/Template_Overlay.pm:347 - msgid "Template parsed" - msgstr "Sablon beolvasva" - - #: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 - msgid "Templates" - msgstr "Sablonok" - - #: NOT FOUND IN SOURCE - msgid "Templates for %1\\n" - msgstr "Sablonok %1\\n" - - #: lib/RT/Interface/Web.pm:858 - msgid "That is already the current value" - msgstr "Már ez az aktuális érték" - - #: lib/RT/CustomField_Overlay.pm:178 - msgid "That is not a value for this custom field" - msgstr "Egyéni mezõhöz érvénytelen értek" - - #: lib/RT/Ticket_Overlay.pm:1886 - msgid "That is the same value" - msgstr "Ez ugyanaz az érték" - - #: lib/RT/Queue_Overlay.pm:633 - #. ($args{'Type'}) - msgid "That principal is already a %1 for this queue" - msgstr "A vezetõ már %1-a a sornak" - - #: lib/RT/Ticket_Overlay.pm:1434 - #. ($self->loc($args{'Type'})) - msgid "That principal is already a %1 for this ticket" - msgstr "A vezetõ már %1-a a problémának" - - #: lib/RT/Queue_Overlay.pm:732 - #. ($args{'Type'}) - msgid "That principal is not a %1 for this queue" - msgstr "A vezetõ már nem %1-a a sornak" - - #: lib/RT/Ticket_Overlay.pm:1551 - #. ($args{'Type'}) - msgid "That principal is not a %1 for this ticket" - msgstr "A vezetõ már nem %1-a a prpblémának" - - #: lib/RT/Ticket_Overlay.pm:1882 - msgid "That queue does not exist" - msgstr "Ez a sor nem létezik" - - #: lib/RT/Ticket_Overlay.pm:3143 - msgid "That ticket has unresolved dependencies" - msgstr "" - - #: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 - msgid "That user already has that right" - msgstr "A felhasználónak mát van ilyen joga" - - #: lib/RT/Ticket_Overlay.pm:2952 - msgid "That user already owns that ticket" - msgstr "Már ez a felhasználó a tulajdonos!" - - #: lib/RT/Ticket_Overlay.pm:2918 - msgid "That user does not exist" - msgstr "Ilyen felhasználó nem létezik" - - #: lib/RT/User_Overlay.pm:315 - msgid "That user is already privileged" - msgstr "A felhasználó már kiemelt" - - #: lib/RT/User_Overlay.pm:332 - msgid "That user is already unprivileged" - msgstr "A felhasználó már nem kiemelt" - - #: lib/RT/User_Overlay.pm:327 - msgid "That user is now privileged" - msgstr "A felhasználó mostantól kiemelt" - - #: lib/RT/User_Overlay.pm:344 - msgid "That user is now unprivileged" - msgstr "A felhasználó mostantól nem kiemelt" - - #: lib/RT/Ticket_Overlay.pm:2944 - msgid "That user may not own tickets in that queue" - msgstr "a felhasználóhoz nem tartozhatnak problémák ebbõl a sorból" - - #: lib/RT/Link_Overlay.pm:206 - msgid "That's not a numerical id" - msgstr "" - - #: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 - msgid "The Basics" - msgstr "Alapadatok" - - #: lib/RT/ACE_Overlay.pm:88 - msgid "The CC of a ticket" - msgstr "" - - #: lib/RT/ACE_Overlay.pm:89 - msgid "The administrative CC of a ticket" - msgstr "" - - #: lib/RT/Ticket_Overlay.pm:2213 - msgid "The comment has been recorded" - msgstr "Kiegészítés rögzítve." - - #: bin/rt-crontool:198 - 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 "" - - #: bin/rt-commit-handler:756 bin/rt-commit-handler:766 - msgid "The following commands were not proccessed:\\n\\n" - msgstr "" - - #: lib/RT/Interface/Web.pm:861 - msgid "The new value has been set." - msgstr "" - - #: lib/RT/ACE_Overlay.pm:86 - msgid "The owner of a ticket" - msgstr "" - - #: lib/RT/ACE_Overlay.pm:87 - msgid "The requestor of a ticket" - msgstr "" - - #: html/Admin/Elements/EditUserComments:26 - msgid "These comments aren't generally visible to the user" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "This ticket %1 %2 (%3)\\n" - msgstr "" - - #: bin/rt-crontool:189 - msgid "" - "This tool allows the user to run arbitrary perl modules from within RT." - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:253 - msgid "This transaction appears to have no content" - msgstr "Diese Transaktion scheint keinen Inhalt zu haben" - - #: html/Ticket/Elements/ShowRequestor:47 - #. ($rows) - msgid "This user's %1 highest priority tickets" - msgstr "A felhasználó által felvetett %1 legsürgõsebb probléma" - - #: NOT FOUND IN SOURCE - msgid "This user's 25 highest priority tickets" - msgstr "" - - #: lib/RT/Date.pm:391 - msgid "Thu." - msgstr "Cs" - - #: NOT FOUND IN SOURCE - msgid "Ticket # %1 %2" - msgstr "" - - #: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 - #. ($Ticket->Id, $Ticket->Subject) - msgid "Ticket #%1 Jumbo update: %2" - msgstr "%1. számú (%2) probléma jellemzõinek módosítása" - - #: html/Approvals/Elements/ShowDependency:46 - #. ($link->BaseObj->Id, $link->BaseObj->Subject) - msgid "Ticket #%1: %2" - msgstr "Probléma. %1: %2" - - #: lib/RT/Ticket_Overlay.pm:608 - #. ($self->Id, $QueueObj->Name) - msgid "Ticket %1 created in queue '%2'" - msgstr "" - - #: bin/rt-commit-handler:760 - #. ($Ticket->Id) - msgid "Ticket %1 loaded\\n" - msgstr "" - - #: html/Search/Bulk.html:181 - #. ($Ticket->Id,$_) - msgid "Ticket %1: %2" - msgstr "Probléma %1: %2" - - #: html/Ticket/History.html:25 html/Ticket/History.html:28 - #. ($Ticket->Id, $Ticket->Subject) - msgid "Ticket History # %1 %2" - msgstr "" - - #: html/SelfService/Display.html:34 - msgid "Ticket Id" - msgstr "Problma száma" - - #: etc/initialdata:303 - msgid "Ticket Resolved" - msgstr "Pobléma megoldva" - - #: html/Search/Elements/PickRestriction:63 - msgid "Ticket attachment" - msgstr "A probléma csatolt fájljának" - - #: lib/RT/Tickets_Overlay.pm:1166 - msgid "Ticket content" - msgstr "A probléma tartalma" - - #: lib/RT/Tickets_Overlay.pm:1212 - msgid "Ticket content type" - msgstr "" - - #: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 - msgid "Ticket could not be created due to an internal error" - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:522 - msgid "Ticket created" - msgstr "Probléma felvétele" - - #: NOT FOUND IN SOURCE - msgid "Ticket creation failed" - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:527 - msgid "Ticket deleted" - msgstr "Probléma törlése" - - #: html/REST/1.0/modify:29 html/REST/1.0/update:34 - msgid "Ticket id not found" - msgstr "" - - #: html/REST/1.0/modify:36 html/REST/1.0/update:41 - msgid "Ticket not found" - msgstr "A probléma nem található" - - #: etc/initialdata:289 - msgid "Ticket status changed" - msgstr "" - - #: html/Ticket/Update.html:39 - msgid "Ticket watchers" - msgstr "A problémában érintett személyek" - - #: html/Elements/Tabs:49 - msgid "Tickets" - msgstr "Problémák" - - #: lib/RT/Tickets_Overlay.pm:1383 - #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) - msgid "Tickets %1 %2" - msgstr "" - - #: lib/RT/Tickets_Overlay.pm:1348 - #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) - msgid "Tickets %1 by %2" - msgstr "" - - #: html/Elements/ViewUser:26 - #. ($name) - msgid "Tickets from %1" - msgstr "" - - #: html/Approvals/Elements/ShowDependency:27 - msgid "Tickets which depend on this approval:" - msgstr "" - - #: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 - msgid "Time Left" - msgstr "Maradék idõ" - - #: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 - msgid "Time Worked" - msgstr "Ráfordított munkaidõ" - - #: lib/RT/Tickets_Overlay.pm:1139 - msgid "Time left" - msgstr "Maradék idõ" - - #: RTFM - msgid "till" - msgstr "amig" - - #: html/Elements/Footer:36 - msgid "Time to display" - msgstr "" - - #: lib/RT/Tickets_Overlay.pm:1115 - msgid "Time worked" - msgstr "Munkaidõ" - - #: lib/RT/Ticket_Overlay.pm:1165 - msgid "TimeWorked" - msgstr "Ráfordított munkaidõ" - - #: bin/rt-commit-handler:402 - msgid "To generate a diff of this commit:" - msgstr "" - - #: bin/rt-commit-handler:391 - msgid "To generate a diff of this commit:\\n" - msgstr "" - - #: lib/RT/Ticket_Overlay.pm:1168 - msgid "Told" - msgstr "Beérkezett" - - #: etc/initialdata:237 - msgid "Transaction" - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:642 - #. ($self->Data) - msgid "Transaction %1 purged" - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:177 - msgid "Transaction Created" - msgstr "" - - #: lib/RT/Transaction_Overlay.pm:89 - msgid "Transaction->Create couldn't, as you didn't specify a ticket id" - msgstr "" - "A problémát nem sikerült felvenni (Transaction->Create), mert nincs sorszám " - "megadva." - - #: lib/RT/Transaction_Overlay.pm:701 - msgid "Transactions are immutable" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "Trying to delete a right: %1" - msgstr "" - - #: lib/RT/Date.pm:389 - msgid "Tue." - msgstr "K" - - #: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 - msgid "Type" - msgstr "Típus" - - #: html/RTFM/Article/delete.html:59 - msgid "Unable to load article" - msgstr "" - - #: lib/RT/ScripCondition_Overlay.pm:104 - msgid "Unimplemented" - msgstr "" - - #: html/Admin/Users/Modify.html:68 - msgid "Unix login" - msgstr "" - - #: html/Admin/Elements/ModifyUser:62 - msgid "UnixUsername" - msgstr "" - - #: lib/RT/Attachment_Overlay.pm:265 - #. ($self->ContentEncoding) - msgid "Unknown ContentEncoding %1" - msgstr "" - - #: html/Elements/SelectResultsPerPage:37 - msgid "Unlimited" - msgstr "korlátlan" - - #: etc/initialdata:32 - msgid "Unprivileged" - msgstr "Nem kiemelt" - - #: lib/RT/Transaction_Overlay.pm:571 - msgid "Untaken" - msgstr "Probléma visszaadása" - - #: html/Elements/MyTickets:64 html/Search/Bulk.html:33 - msgid "Update" - msgstr "Frissít" - - #: html/Admin/Users/Prefs.html:62 - msgid "Update ID" - msgstr "" - - #: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 - msgid "Update Type" - msgstr "Frissítés típusa" - - #: html/Search/Listing.html:61 - msgid "Update all these tickets at once" - msgstr "Az összes probléma aktualizálása" - - #: html/Admin/Users/Prefs.html:49 - msgid "Update email" - msgstr "" - - #: html/Admin/Users/Prefs.html:55 - msgid "Update name" - msgstr "" - - #: lib/RT/Interface/Web.pm:375 - msgid "Update not recorded." - msgstr "" - - #: html/Search/Bulk.html:81 - msgid "Update selected tickets" - msgstr "A kiválasztott problémák frissítése" - - #: html/Admin/Users/Prefs.html:36 - msgid "Update signature" - msgstr "" - - #: html/Ticket/ModifyAll.html:63 - msgid "Update ticket" - msgstr "" - - #: html/SelfService/Update.html:25 html/SelfService/Update.html:27 - #. ($Ticket->id) - msgid "Update ticket # %1" - msgstr "" - - #: html/SelfService/Update.html:50 - #. ($Ticket->id) - msgid "Update ticket #%1" - msgstr "" - - #: html/Ticket/Update.html:135 - #. ($Ticket->id, $Ticket->Subject) - msgid "Update ticket #%1 (%2)" - msgstr "%1. számú (%2) probléma aktualizálása" - - #: lib/RT/Interface/Web.pm:373 - msgid "Update type was neither correspondence nor comment." - msgstr "" - - #: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 - msgid "Updated" - msgstr "Frissítve" - - #: html/RTFM/Article/ExtractFromTicket.html:26 - msgid "" - "Use the dropdown menus to select which transactions you want to extract into " - "a new RTFM article" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "User %1 %2: %3\\n" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "User %1 Password: %2\\n" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "User '%1' not found" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "User '%1' not found\\n" - msgstr "" - - #: etc/initialdata:125 etc/initialdata:191 - msgid "User Defined" - msgstr "Felhasználó által meghatározott" - - #: html/Admin/Users/Prefs.html:59 - msgid "User ID" - msgstr "Felhasználói név" - - #: html/Elements/SelectUsers:26 - msgid "User Id" - msgstr "Felhasználói név" - - #: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 - msgid "User Rights" - msgstr "Felhasználói jogok" - - #: html/Admin/Users/Modify.html:226 - #. ($msg) - msgid "User could not be created: %1" - msgstr "" - - #: lib/RT/User_Overlay.pm:262 - msgid "User created" - msgstr "Felhasználó létrehozva" - - #: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 - msgid "User defined groups" - msgstr "Felhasználó által definiált csoport" - - #: NOT FOUND IN SOURCE - msgid "User notified" - msgstr "" - - #: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 - msgid "User view" - msgstr "" - - #: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 - msgid "Username" - msgstr "Felhasználó" - - #: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 - msgid "Users" - msgstr "Felhasználók" - - #: html/Admin/Users/index.html:65 - msgid "Users matching search criteria" - msgstr "" - - #: html/Search/Elements/PickRestriction:51 - msgid "ValueOfQueue" - msgstr "" - - #: html/Admin/Elements/EditCustomField:40 - msgid "Values" - msgstr "Értékek" - - #: lib/RT/Queue_Overlay.pm:82 - msgid "Watch" - msgstr "" - - #: lib/RT/Queue_Overlay.pm:83 - msgid "WatchAsAdminCc" - msgstr "" - - #: html/Admin/Elements/QueueTabs:42 - msgid "Watchers" - msgstr "Résztvevõk" - - #: html/Admin/Elements/ModifyUser:56 - msgid "WebEncoding" - msgstr "" - - #: lib/RT/Date.pm:390 - msgid "Wed." - msgstr "Sze" - - #: etc/upgrade/2.1.71:161 - msgid "" - "When a ticket has been approved by all approvers, add correspondence to the " - "original ticket" - msgstr "" - - #: etc/upgrade/2.1.71:135 - msgid "" - "When a ticket has been approved by any approver, add correspondence to the " - "original ticket" - msgstr "" - - #: etc/initialdata:138 - msgid "When a ticket is created" - msgstr "" - - #: etc/upgrade/2.1.71:79 - msgid "" - "When an approval ticket is created, notify the Owner and AdminCc of the item " - "awaiting their approval" - msgstr "" - - #: etc/initialdata:143 - msgid "When anything happens" - msgstr "" - - #: etc/initialdata:184 - msgid "Whenever a ticket is resolved" - msgstr "" - - #: etc/initialdata:170 - msgid "Whenever a ticket's owner changes" - msgstr "" - - #: etc/initialdata:178 - msgid "Whenever a ticket's queue changes" - msgstr "" - - #: etc/initialdata:162 - msgid "Whenever a ticket's status changes" - msgstr "" - - #: etc/initialdata:192 - msgid "Whenever a user-defined condition occurs" - msgstr "" - - #: etc/initialdata:156 - msgid "Whenever comments come in" - msgstr "" - - #: etc/initialdata:149 - msgid "Whenever correspondence comes in" - msgstr "" - - #: html/RTFM/Article/Elements/ShowSearchCriteria:64 - msgid "Which refer to" - msgstr "" - - #: html/RTFM/Article/Elements/ShowSearchCriteria:64 - msgid "Which are referred to by " - msgstr "" - - #: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 - msgid "Work" - msgstr "Munkahelyi" - - #: html/Admin/Elements/ModifyUser:70 - msgid "WorkPhone" - msgstr "Munkahelyi telefon" - - #: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 - msgid "Worked" - msgstr "Munkaidõ" - - #: RTFM - msgid "Yes" - msgstr "Igen" - - #: lib/RT/Ticket_Overlay.pm:3056 - msgid "You already own this ticket" - msgstr "Már az öné ez a probléma" - - #: html/autohandler:121 - msgid "You are not an authorized user" - msgstr "" - - #: lib/RT/Ticket_Overlay.pm:2930 - msgid "You can only reassign tickets that you own or that are unowned" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "You don't have permission to view that ticket.\\n" - msgstr "" - - #: docs/design_docs/string-extraction-guide.txt:47 - #. ($num, $queue) - msgid "You found %1 tickets in queue %2" - msgstr "%1 Problémát talált a %2 sorban" - - #: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 - msgid "You have been logged out of RT." - msgstr "Kilépett a Request Tracker programból." - - #: html/SelfService/Display.html:134 - msgid "You have no permission to create tickets in that queue." - msgstr "Nincs joga létrehozni problémákat ebben a sorban" - - #: lib/RT/Ticket_Overlay.pm:1895 - msgid "You may not create requests in that queue." - msgstr "Nem hozhat létre problémákat ebben a sorban" - - #: html/NoAuth/Logout.html:36 - msgid "You're welcome to login again" - msgstr "Itt ismét bejelentkezhetsz!" - - #: html/SelfService/Elements/MyRequests:25 - #. ($friendly_status) - msgid "Your %1 requests" - msgstr "%1 problémáim" - - #: NOT FOUND IN SOURCE - msgid "" - "Your RT administrator has misconfigured the mail aliases which invoke RT" - msgstr "" - - #: etc/initialdata:429 etc/upgrade/2.1.71:146 - msgid "" - "Your request has been approved by %1. Other approvals may still be pending." - msgstr "" - - #: etc/initialdata:463 etc/upgrade/2.1.71:180 - msgid "Your request has been approved." - msgstr "A problémája engedélyezve." - - #: NOT FOUND IN SOURCE - msgid "Your request was rejected" - msgstr "" - - #: etc/initialdata:384 etc/upgrade/2.1.71:101 - msgid "Your request was rejected." - msgstr "A problémája elutasítva." - - #: html/autohandler:136 html/autohandler:142 - msgid "Your username or password is incorrect" - msgstr "A begépelt felhasználói név vagy jelszó hibás!" - - #: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 - msgid "Zip" - msgstr "Irányítószám" - - #: html/User/Elements/DelegateRights:59 - #. ($right->PrincipalObj->Object->SelfDescription) - msgid "as granted to %1" - msgstr "%1nak engedélyezve" - - #: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 - msgid "contains" - msgstr "tartalmazza" - - #: html/Elements/SelectAttachmentField:26 - msgid "content" - msgstr "tartalma" - - #: html/Elements/SelectAttachmentField:27 - msgid "content-type" - msgstr "típusa" - - #: lib/RT/Ticket_Overlay.pm:2282 - msgid "correspondence (probably) not sent" - msgstr "" - - #: lib/RT/Ticket_Overlay.pm:2292 - msgid "correspondence sent" - msgstr "" - - #: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 - msgid "days" - msgstr "napja" - - #: html/Search/Listing.html:75 - msgid "delete" - msgstr "töröl" - - #: lib/RT/Queue_Overlay.pm:63 - msgid "deleted" - msgstr "törölve" - - #: html/Search/Elements/PickRestriction:68 - msgid "does not match" - msgstr "nem felel meg" - - #: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 - msgid "doesn't contain" - msgstr "nem tartalmazza" - - #: html/Elements/SelectEqualityOperator:38 - msgid "equal to" - msgstr "egyenlõ" - - #: html/Elements/SelectAttachmentField:28 - msgid "filename" - msgstr "fájlneve" - - #: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 - msgid "greater than" - msgstr "nagyobb mint" - - #: lib/RT/Group_Overlay.pm:194 - #. ($self->Name) - msgid "group '%1'" - msgstr " '%1' csopot" - - #: lib/RT/Date.pm:315 - msgid "hours" - msgstr "órája" - - #: NOT FOUND IN SOURCE - msgid "id" - msgstr "Sorszám" - - #: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 - msgid "is" - msgstr " == " - - #: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 - msgid "isn't" - msgstr " nem " - - #: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 - msgid "less than" - msgstr "kisebb mint" - - #: html/Search/Elements/PickRestriction:67 - msgid "matches" - msgstr "megfelel" - - #: lib/RT/Date.pm:311 - msgid "min" - msgstr "perce" - - #: html/Ticket/Update.html:66 - msgid "minutes" - msgstr "perc" - - #: bin/rt-commit-handler:765 - msgid "modifications\\n\\n" - msgstr "Változtatások" - - #: lib/RT/Date.pm:327 - msgid "months" - msgstr "hónapja" - - #: lib/RT/Queue_Overlay.pm:58 - msgid "new" - msgstr "új" - - #: html/Admin/Elements/EditScrips:43 - msgid "no value" - msgstr "Nincs érték" - - #: html/Ticket/Elements/EditWatchers:28 - msgid "none" - msgstr "senki" - - #: html/Elements/SelectEqualityOperator:38 - msgid "not equal to" - msgstr "nem egyenlõ" - - #: lib/RT/Queue_Overlay.pm:59 - msgid "open" - msgstr "Nyitott" - - #: lib/RT/Group_Overlay.pm:199 - #. ($self->Name, $user->Name) - msgid "personal group '%1' for user '%2'" - msgstr "" - - #: lib/RT/Group_Overlay.pm:207 - #. ($queue->Name, $self->Type) - msgid "queue %1 %2" - msgstr "Stapel %1 %2" - - #: lib/RT/Queue_Overlay.pm:62 - msgid "rejected" - msgstr "elutasítva" - - #: lib/RT/Queue_Overlay.pm:61 - msgid "resolved" - msgstr "megoldva" - - #: lib/RT/Date.pm:307 - msgid "sec" - msgstr "sec" - - #: lib/RT/Queue_Overlay.pm:60 - msgid "stalled" - msgstr "várakozik" - - #: lib/RT/Group_Overlay.pm:202 - #. ($self->Type) - msgid "system %1" - msgstr "rendszer %1" - - #: lib/RT/Group_Overlay.pm:213 - #. ($self->Type) - msgid "system group '%1'" - msgstr "" - - #: html/Elements/Error:42 html/SelfService/Error.html:42 - msgid "the calling component did not specify why" - msgstr "" - - #: lib/RT/Group_Overlay.pm:210 - #. ($self->Instance, $self->Type) - msgid "ticket #%1 %2" - msgstr "probléma #%1 %2" - - #: lib/RT/Group_Overlay.pm:216 - #. ($self->Id) - msgid "undescribed group %1" - msgstr "" - - #: NOT FOUND IN SOURCE - msgid "undescripbed group %1" - msgstr "" - - #: lib/RT/Group_Overlay.pm:191 - #. ($user->Object->Name) - msgid "user %1" - msgstr "felhasználó %1" - - #: lib/RT/Date.pm:323 - msgid "weeks" - msgstr "hete" - - #: NOT FOUND IN SOURCE - msgid "with template %1" - msgstr "" - - #: lib/RT/Date.pm:331 - msgid "years" - msgstr "éve" - +msgid "" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "#" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "#%1" +msgstr "" + +#: 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 "" + +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#. ($s, $time_unit) +#. ($option, $subtype) +msgid "%1 %2" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:828 +#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +msgid "%1 %2 %3" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lib/RT/Date.pm:334 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 of group %3" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 הוסף" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 מקבוצה %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 נמחק" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 שונה ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 פנייה זו\\n" +msgstr "" + +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 - %2 shown" +msgstr "" + +#: 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 "" + +#: bin/rt-crontool:181 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "" + +#: bin/rt-crontool:175 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "" + +#: bin/rt-crontool:169 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "" + +#: bin/rt-crontool:162 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 - ×רגומנט להעביר ×ל %2" +msgstr "" + + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3484 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on (from %2) %3" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: 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 "" + +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 +msgid "%1 could not be set to %2." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2739 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 deleted" +msgstr "" + +#: html/Elements/MyTickets:24 +#. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 highest priority tickets I own..." +msgstr "" + +#: html/Elements/MyTickets:26 +#. ($rows) +msgid "%1 highest priority tickets I requested..." +msgstr "" + +#: bin/rt-crontool:157 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "" + +#: lib/RT/Queue_Overlay.pm:784 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 is no longer a %2 for this ticket." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3540 +#. ($args{'Value'}, $cf->Name) +msgid "%1 is no longer a value for custom field %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 objects" +msgstr "" + +#: html/User/Elements/DelegateRights:75 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 was created without a CurrentUser\\n" +msgstr "" + +#: lib/RT/Action/ResolveMembers.pm:41 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 הוסף כערך עבור %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 לפני %2 ימי×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 על ידי %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 פעולת-סקריפ נטענה" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 שונה מ %2 ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2 objects" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 +#. ($self) +msgid "%1: no attachment specified" +msgstr "" + +#: html/Ticket/Elements/ShowTransactionAttachments:56 +#. ($size) +msgid "%1b" +msgstr "" + +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) +msgid "%1k" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1252 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "'%1' not a recognized action. " +msgstr "" + +#: 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: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 "" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Create.html:178 +msgid "(Enter ticket ids or URLs, separated with spaces)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +msgid "(No custom fields)" +msgstr "" + +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +msgid "(No members)" +msgstr "" + +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +msgid "(No scrips)" +msgstr "" + +#: html/Admin/Elements/EditTemplates:30 +msgid "(No templates)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(None)" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: 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 "" + +#: 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 "" + +#: 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 "" + +#: 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 "" + +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +msgid "(empty)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + +#: html/Admin/Users/index.html:38 +msgid "(no name listed)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(no subject)" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "(no values)" +msgstr "" + +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +msgid "(only one ticket)" +msgstr "" + +#: html/Elements/TicketList:167 +msgid "(pending approval)" +msgstr "" + +#: html/Elements/TicketList:170 +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:49 +msgid "(required)" +msgstr "" + +#: html/Ticket/Elements/ShowTransactionAttachments:60 +msgid "(untitled)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "" + +#: html/Ticket/Elements/ShowBasics:31 +msgid "<% $Ticket->Status%>" +msgstr "" + +#: html/Elements/SelectTicketTypes:26 +msgid "<% $_ %>" +msgstr "" + +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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 "" + +#: NOT FOUND IN SOURCE +msgid "??????" +msgstr "" + +#: etc/initialdata:218 +msgid "A blank template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Loaded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be found" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +msgid "ACE not found" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:830 +msgid "ACEs can only be created and deleted." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "" + +#: html/User/Elements/Tabs:31 +msgid "About me" +msgstr "" + +#: html/Admin/Users/Modify.html:79 +msgid "Access control" +msgstr "" + +#: html/Admin/Elements/EditScrip:49 +msgid "Action" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:148 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "" + +#: bin/rt-crontool:119 +msgid "Action committed." +msgstr "" + +#: bin/rt-crontool:115 +msgid "Action prepared..." +msgstr "" + +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 +msgid "Add AdminCc" +msgstr "" + +#: html/Search/Bulk.html:89 +msgid "Add Cc" +msgstr "" + +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +msgid "Add More Files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Add Next State" +msgstr "" + +#: html/Search/Bulk.html:85 +msgid "Add Requestor" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:24 +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:54 +msgid "Add a scrip which will apply to all queues" +msgstr "" + +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 +msgid "Add comments or replies to selected tickets" +msgstr "" + +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +msgid "Add members" +msgstr "" + +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +msgid "Add new watchers" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:684 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1547 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "" + +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +msgid "Address1" +msgstr "" + +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +msgid "Address2" +msgstr "" + +#: html/Ticket/Create.html:73 +msgid "Admin Cc" +msgstr "" + +#: etc/initialdata:295 +msgid "Admin Comment" +msgstr "" + +#: etc/initialdata:274 +msgid "Admin Correspondence" +msgstr "" + +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +msgid "Admin queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "" + +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +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 "AdminAllPersonalGroups" +msgstr "" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +msgid "AdminCc" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "AdminCustomFields" +msgstr "" + +#: lib/RT/Group_Overlay.pm:146 +msgid "AdminGroup" +msgstr "" + +#: lib/RT/Group_Overlay.pm:148 +msgid "AdminGroupMembership" +msgstr "" + +#: lib/RT/System.pm:58 +msgid "AdminOwnPersonalGroups" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:69 +msgid "AdminQueue" +msgstr "" + +#: lib/RT/System.pm:59 +msgid "AdminUsers" +msgstr "" + +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +msgid "Administrative Cc" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Admins" +msgstr "" + +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + +#: html/Elements/SelectDateRelation:35 +msgid "After" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias for" +msgstr "" + +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 +msgid "All Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:52 +msgid "All Queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Applies to" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + +#: html/Elements/Tabs:58 +msgid "Approval" +msgstr "" + +#: 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 "" + +#: html/Approvals/index.html:53 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "" + +#: html/Approvals/index.html:51 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "" + +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "" + +#: html/Approvals/Elements/Approve:43 +msgid "Approve" +msgstr "" + +#: etc/initialdata:504 +msgid "Approver's notes: %1" +msgstr "" + +#: lib/RT/Date.pm:414 +msgid "Apr." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +msgid "Ascending" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Assign and remove custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AssignCustomFields" +msgstr "" + +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +msgid "Attach" +msgstr "" + +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +msgid "Attach file" +msgstr "" + +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +msgid "Attached file" +msgstr "" + +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) +msgid "Attachment '%1' could not be loaded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:416 +msgid "Attachment created" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1251 +msgid "Attachment filename" +msgstr "" + +#: html/Ticket/Elements/ShowAttachments:25 +msgid "Attachments" +msgstr "" + +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + +#: lib/RT/Date.pm:418 +msgid "Aug." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AuthSystem" +msgstr "" + +#: etc/initialdata:221 +msgid "Autoreply" +msgstr "" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "" + +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bad data in %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "" + +#: 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 "" + +#: html/Ticket/Update.html:64 +msgid "Bcc" +msgstr "" + +#: html/Admin/Elements/EditScrip:73 +msgid "Be sure to save your changes" +msgstr "" + +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +msgid "Before" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "" + +#: etc/initialdata:217 +msgid "Blank" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bookmarkable URL for this search" +msgstr "" + +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +msgid "Brief headers" +msgstr "" + +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +msgid "Bulk ticket update" +msgstr "" + +#: lib/RT/User_Overlay.pm:1533 +msgid "Can not modify system users" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "Can this principal see this queue" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:211 +msgid "Can't add a custom field value without a name" +msgstr "" + +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 +msgid "Can't link a ticket to itself" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2716 +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "" + +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +msgid "Can't specifiy both base and target" +msgstr "" + +#: html/autohandler:132 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "" + +#: 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 "" + +#: html/SelfService/Prefs.html:30 +msgid "Change password" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Check All" +msgstr "" + +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +msgid "Check box to delete" +msgstr "" + +#: html/Admin/Elements/SelectRights:30 +msgid "Check box to revoke right" +msgstr "" + +#: 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 "" + +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +msgid "City" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Clear All" +msgstr "" + +#: html/Ticket/Elements/ShowDates:47 +msgid "Closed" +msgstr "" + +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Closed requests" +msgstr "" + +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Code" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +msgid "Comment" +msgstr "" + +#: html/Admin/Queues/Modify.html:57 +msgid "Comment Address" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "Comment on tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "CommentOnTicket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Comments" +msgstr "" + +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +msgid "Comments (Not sent to requestors)" +msgstr "" + +#: html/Search/Bulk.html:129 +msgid "Comments (not sent to requestors)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Comments about %1" +msgstr "" + +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +msgid "Comments about this user" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:537 +msgid "Comments added" +msgstr "" + +#: lib/RT/Action/Generic.pm:149 +msgid "Commit Stubbed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "" + +#: html/Admin/Elements/EditScrip:41 +msgid "Condition" +msgstr "" + +#: bin/rt-crontool:105 +msgid "Condition matches..." +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:164 +msgid "Condition not found" +msgstr "" + +#: html/Elements/Tabs:52 +msgid "Configuration" +msgstr "" + +#: html/SelfService/Prefs.html:32 +msgid "Confirm" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ContactInfoSystem" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "" + +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +msgid "Content" +msgstr "" + +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "" + +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 +msgid "Correspondence" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Correspondence Address" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:533 +msgid "Correspondence added" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3471 +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 "" + +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +msgid "Could not change owner. " +msgstr "" + +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#. ($msg) +msgid "Could not create CustomField" +msgstr "" + +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +msgid "Could not create group" +msgstr "" + +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#. ($msg) +msgid "Could not create template: %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +msgid "Could not create ticket. Queue not set" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Could not create watcher for requestor" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Could not find a ticket with id %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "" + +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +msgid "Could not find or create that user" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +msgid "Could not find that principal" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Could not load CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +msgid "Could not load group" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:682 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1536 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:781 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "" + +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 +msgid "Couldn't add member to group" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#. ($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 "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find group\\n" +msgstr "" + +#: lib/RT/Record.pm:748 +msgid "Couldn't find row" +msgstr "" + +#: lib/RT/Group_Overlay.pm:951 +msgid "Couldn't find that principal" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:245 +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 "" + +#: lib/RT/CurrentUser.pm:123 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load KeywordSelects." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Scrips." +msgstr "" + +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#. ($id) +msgid "Couldn't load group %1" +msgstr "" + +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +msgid "Couldn't load link" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load object %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#. ($id) +msgid "Couldn't load queue" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load that user (%1)" +msgstr "" + +#: html/SelfService/Display.html:116 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "" + +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +msgid "Country" +msgstr "" + +#: 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 "" + +#: etc/initialdata:135 +msgid "Create Tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + +#: html/Admin/Elements/EditCustomField:74 +msgid "Create a CustomField" +msgstr "" + +#: html/Admin/Queues/CustomField.html:47 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:47 +msgid "Create a CustomField which applies to all queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create a new Custom Field" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create a new article" +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:66 html/Admin/Groups/Modify.html:92 +msgid "Create a new group" +msgstr "" + +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +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:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +msgid "Create a new ticket" +msgstr "" + +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +msgid "Create a new user" +msgstr "" + +#: html/Admin/Queues/Modify.html:103 +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:58 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "" + +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +msgid "Create a template" +msgstr "" + +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1 / %2 / %3 " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1/%2/%3" +msgstr "" + +#: etc/initialdata:137 +msgid "Create new tickets based on this scrip's template" +msgstr "" + +#: html/SelfService/Create.html:77 +msgid "Create ticket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "Create tickets in this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 +msgid "Create, delete and modify custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:69 +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:58 +msgid "Create, delete and modify the members of personal groups" +msgstr "" + +#: lib/RT/System.pm:59 +msgid "Create, delete and modify users" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "CreateTicket" +msgstr "" + +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +msgid "Created" +msgstr "" + +#: html/Admin/Elements/EditCustomField:87 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "" + +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "" + +#: html/Admin/Elements/EditScrips:29 +msgid "Current Scrips" +msgstr "" + +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +msgid "Current members" +msgstr "" + +#: html/Admin/Elements/SelectRights:28 +msgid "Current rights" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Current search criteria" +msgstr "" + +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +msgid "Current watchers" +msgstr "" + +#: html/Admin/Global/CustomField.html:54 +#. ($CustomField) +msgid "Custom Field #%1" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Custom Fields for %1" +msgstr "" + +#: html/Admin/Elements/EditScrip:101 +msgid "Custom action cleanup code" +msgstr "" + +#: html/Admin/Elements/EditScrip:93 +msgid "Custom action preparation code" +msgstr "" + +#: html/Admin/Elements/EditScrip:85 +msgid "Custom condition" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1693 +#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +msgid "Custom field %1 %2 %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Custom field %1 does not apply to this object" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1688 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1685 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3373 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:195 +msgid "Custom field deleted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3523 +msgid "Custom field not found" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:355 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:255 +msgid "Custom field value could not be deleted" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:361 +msgid "Custom field value could not be found" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +msgid "Custom field value deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:541 +msgid "CustomField" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "" + +#: 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 "" + +#: lib/RT/Date.pm:422 +msgid "Dec." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "" + +#: etc/initialdata:222 +msgid "Default Autoresponse template" +msgstr "" + +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +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:519 +#. ($type, $self->Field, $self->OldValue, $self->NewValue) +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "" + +#: html/User/Delegation.html:24 html/User/Delegation.html:27 +msgid "Delegate rights" +msgstr "" + +#: lib/RT/System.pm:62 +msgid "Delegate specific rights which have been granted to you." +msgstr "" + +#: lib/RT/System.pm:62 +msgid "DelegateRights" +msgstr "" + +#: html/User/Elements/Tabs:37 +msgid "Delegation" +msgstr "" + +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +msgid "Delete" +msgstr "" + +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 +msgid "Delete tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 +msgid "DeleteTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:162 +msgid "Deleting this object could break referential integrity" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:329 +msgid "Deleting this object would break referential integrity" +msgstr "" + +#: lib/RT/User_Overlay.pm:478 +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:44 +msgid "Deny" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +msgid "Descending" +msgstr "" + +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +msgid "Describe the issue below" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Details" +msgstr "" + +#: html/Ticket/Elements/Tabs:86 +msgid "Display" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:70 +msgid "Display Access Control List" +msgstr "" + +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "Display Scrip templates for this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "Display Scrips for this queue" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:34 +msgid "Display mode" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Display ticket #%1" +msgstr "" + +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + +#: lib/RT/System.pm:53 +msgid "Do anything and everything" +msgstr "" + +#: html/Elements/Refresh:29 +msgid "Don't refresh this page." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Don't show search results" +msgstr "" + +#: html/Ticket/Elements/ShowTransactionAttachments:60 +msgid "Download" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download as a tab-delimited file" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit Conditions" +msgstr "" + +#: html/Admin/Queues/CustomFields.html:45 +#. ($Queue->Name) +msgid "Edit Custom Fields for %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" +msgstr "" + +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit Relationships" +msgstr "" + +#: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "" + +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "" + +#: html/Admin/Global/index.html:45 +msgid "Edit system templates" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 +#. ($QueueObj->Name) +msgid "Editing Configuration for queue %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for user %1" +msgstr "" + +#: html/Admin/Elements/EditCustomField:90 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:31 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "" + +#: html/User/Groups/Members.html:128 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "" + +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +msgid "Either base or target must be specified" +msgstr "" + +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +msgid "Email" +msgstr "" + +#: lib/RT/User_Overlay.pm:206 +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 "Enabled (Unchecking this box disables this Class)" +msgstr "" + +#: html/Admin/Elements/EditCustomField:50 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "" + +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "" + +#: html/Admin/Queues/Modify.html:83 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:97 +msgid "Enabled Custom Fields" +msgstr "" + +#: html/Admin/Queues/index.html:55 +msgid "Enabled Queues" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Enabled status: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 +msgid "Enter multiple values" +msgstr "" + +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 +msgid "Enter one value" +msgstr "" + +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Enter up to %1 values" +msgstr "" + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +msgid "Error" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:593 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Error in parameters to Queue->DelWatcher" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "" + +#: bin/rt-crontool:190 +msgid "Example:" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ExternalAuthId" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ExternalContactInfoId" +msgstr "" + +#: html/Admin/Users/Modify.html:72 +msgid "Extra info" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "" + +#: lib/RT/User_Overlay.pm:349 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "" + +#: bin/rt-crontool:134 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "" + +#: lib/RT/Date.pm:412 +msgid "Feb." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "" + +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in multiple text areas" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in one text area" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in up to %1 text areas" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "" + +#: 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 "" + +#: lib/RT/Ticket_Overlay.pm:1274 +msgid "FinalPriority" +msgstr "" + +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +msgid "Find group whose" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Find groups whose" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Find new/open tickets" +msgstr "" + +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +msgid "Find people whose" +msgstr "" + +#: html/Search/Results.html:72 +msgid "Find tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "" + +#: html/Ticket/Elements/Tabs:59 +msgid "First" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "First page" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +msgid "Foo Bar Baz" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 +msgid "Foo!" +msgstr "" + +#: html/Search/Bulk.html:84 +msgid "Force change" +msgstr "" + +#: html/Search/Results.html:70 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "" + +#: lib/RT/Record.pm:750 +msgid "Found Object" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "FreeformContactInfo" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:37 +msgid "FreeformMultiple" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:36 +msgid "FreeformSingle" +msgstr "" + +#: lib/RT/Date.pm:392 +msgid "Fri." +msgstr "" + +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +msgid "Full headers" +msgstr "" + +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:587 +#. ($New->Name) +msgid "Given to %1" +msgstr "" + +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +msgid "Global" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Global Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:37 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "" + +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Goto page" +msgstr "" + +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +msgid "Goto ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Grand" +msgstr "" + +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +msgid "Group" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "" + +#: 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 "" + +#: lib/RT/Group_Overlay.pm:957 +msgid "Group already has member" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "" + +#: html/Admin/Groups/Modify.html:76 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:497 +msgid "Group created" +msgstr "" + +#: lib/RT/Group_Overlay.pm:1129 +msgid "Group has no such member" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Group not found.\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Group not specified.\\n" +msgstr "" + +#: 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 "" + +#: lib/RT/Group_Overlay.pm:963 +msgid "Groups can't be members of their members" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Groups matching search criteria" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Groups this user belongs to" +msgstr "" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +msgid "Hello!" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 +#. ($name) +msgid "Hello, %1" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +msgid "History" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the user %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "HomePhone" +msgstr "" + +#: html/Elements/Tabs:43 +msgid "Homepage" +msgstr "" + +#: lib/RT/Base.pm:86 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "" + +#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +msgid "Id" +msgstr "" + +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +msgid "Identity" +msgstr "" + +#: etc/initialdata:429 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "" + +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "" + +#: 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 "" + +#: lib/RT/Record.pm:742 +msgid "Illegal value for %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "" + +#: lib/RT/Record.pm:745 +msgid "Immutable field" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + +#: html/Admin/Elements/EditCustomFields:72 +msgid "Include disabled custom fields in listing." +msgstr "" + +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + +#: html/Admin/Queues/index.html:42 +msgid "Include disabled queues in listing." +msgstr "" + +#: html/Admin/Users/index.html:46 +msgid "Include disabled users in search." +msgstr "" + +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +msgid "Initial Priority" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +msgid "InitialPriority" +msgstr "" + +#: lib/RT/ScripAction_Overlay.pm:97 +msgid "Input error" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3797 +msgid "Internal Error" +msgstr "" + +#: lib/RT/Record.pm:186 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:644 +msgid "Invalid Group Type" +msgstr "" + +#: lib/RT/Principal_Overlay.pm:127 +msgid "Invalid Right" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "" + +#: lib/RT/Record.pm:747 +msgid "Invalid data" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +msgid "Invalid queue" +msgstr "" + +#: 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 "" + +#: lib/RT/Record.pm:161 +#. ($key) +msgid "Invalid value for %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3380 +msgid "Invalid value for custom field" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:385 +msgid "Invalid value for status" +msgstr "" + +#: bin/rt-crontool:187 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "" + +#: 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 "" + +#: bin/rt-crontool:159 +msgid "It takes several arguments:" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "" + +#: lib/RT/Date.pm:411 +msgid "Jan." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "" + +#: lib/RT/Group_Overlay.pm:149 +msgid "Join or leave this group" +msgstr "" + +#: lib/RT/Date.pm:417 +msgid "Jul." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "" + +#: html/Ticket/Elements/Tabs:100 +msgid "Jumbo" +msgstr "" + +#: lib/RT/Date.pm:416 +msgid "Jun." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Lang" +msgstr "" + +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 +msgid "Last" +msgstr "" + +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +msgid "Last Contact" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + +#: html/Elements/SelectDateType:28 +msgid "Last Contacted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Last Notified" +msgstr "" + +#: html/Elements/SelectDateType:29 +msgid "Last Updated" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "" + +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 +msgid "Left" +msgstr "" + +#: html/Admin/Users/Modify.html:82 +msgid "Let this user access RT" +msgstr "" + +#: html/Admin/Users/Modify.html:86 +msgid "Let this user be granted rights" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Limiting owner to %1 %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Limiting queue to %1 %2" +msgstr "" + +#: lib/RT/Record.pm:1086 +msgid "Link already exists" +msgstr "" + +#: lib/RT/Record.pm:1100 +msgid "Link could not be created" +msgstr "" + +#: lib/RT/Record.pm:1106 +#. ($TransString) +msgid "Link created (%1)" +msgstr "" + +#: lib/RT/Record.pm:1167 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "" + +#: lib/RT/Record.pm:1173 +msgid "Link not found" +msgstr "" + +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "" + +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +msgid "Links" +msgstr "" + +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +msgid "Location" +msgstr "" + +#: lib/RT.pm:184 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "" + +#: html/Elements/Header:69 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "" + +#: 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 "" + +#: html/Elements/Header:66 +msgid "Logout" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Lookup type mismatch" +msgstr "" + +#: html/Search/Bulk.html:83 +msgid "Make Owner" +msgstr "" + +#: html/Search/Bulk.html:107 +msgid "Make Status" +msgstr "" + +#: html/Search/Bulk.html:115 +msgid "Make date Due" +msgstr "" + +#: html/Search/Bulk.html:117 +msgid "Make date Resolved" +msgstr "" + +#: html/Search/Bulk.html:111 +msgid "Make date Started" +msgstr "" + +#: html/Search/Bulk.html:109 +msgid "Make date Starts" +msgstr "" + +#: html/Search/Bulk.html:113 +msgid "Make date Told" +msgstr "" + +#: html/Search/Bulk.html:103 +msgid "Make priority" +msgstr "" + +#: html/Search/Bulk.html:105 +msgid "Make queue" +msgstr "" + +#: html/Search/Bulk.html:101 +msgid "Make subject" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Manage custom fields and custom field values" +msgstr "" + +#: html/Admin/index.html:32 +msgid "Manage groups and group membership" +msgstr "" + +#: html/Admin/index.html:38 +msgid "Manage properties and configuration which apply to all queues" +msgstr "" + +#: html/Admin/index.html:35 +msgid "Manage queues and queue-specific properties" +msgstr "" + +#: html/Admin/index.html:29 +msgid "Manage users and passwords" +msgstr "" + +#: lib/RT/Date.pm:413 +msgid "Mar." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "" + +#: lib/RT/Date.pm:415 +msgid "May." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 +msgid "Member added" +msgstr "" + +#: lib/RT/Group_Overlay.pm:1136 +msgid "Member deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:1140 +msgid "Member not deleted" +msgstr "" + +#: html/Elements/SelectLinkType:25 +msgid "Member of" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "" + +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +msgid "Members" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships of the user %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 +msgid "Merge Successful" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2733 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "" + +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +msgid "Merge into" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +msgid "Message" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Message body not shown because it is too large or is not plain text." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 +msgid "Missing a primary key?: %1" +msgstr "" + +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +msgid "Mobile" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "MobilePhone" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "Modify Access Control List" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all %1" +msgstr "" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +msgid "Modify Custom Fields which apply to all queues" +msgstr "" + +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "Modify Scrip templates for this queue" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:77 +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 "" + +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + +#: html/Admin/Queues/CustomField.html:44 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "" + +#: html/Admin/Global/CustomField.html:52 +msgid "Modify a CustomField which applies to all queues" +msgstr "" + +#: html/Admin/Queues/Scrip.html:53 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "" + +#: html/Admin/Global/Scrip.html:47 +msgid "Modify a scrip which applies to all queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify associated objects for %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "" + +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "" + +#: html/Ticket/ModifyDates.html:34 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "" + +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +msgid "Modify global group rights" +msgstr "" + +#: html/Admin/Global/GroupRights.html:32 +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:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +msgid "Modify global user rights" +msgstr "" + +#: html/Admin/Global/UserRights.html:32 +msgid "Modify global user rights." +msgstr "" + +#: lib/RT/Group_Overlay.pm:146 +msgid "Modify group metadata or delete group" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "" + +#: 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 "" + +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:148 +msgid "Modify membership roster for this group" +msgstr "" + +#: lib/RT/System.pm:60 +msgid "Modify one's own RT account" +msgstr "" + +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "" + +#: 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 "" + +#: html/Admin/Queues/Scrips.html:45 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "" + +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +msgid "Modify scrips which apply to all queues" +msgstr "" + +#: 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 "" + +#: html/Admin/Global/Templates.html:43 +msgid "Modify templates which apply to all queues" +msgstr "" + +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "Modify the queue watchers" +msgstr "" + +#: html/Admin/Users/Modify.html:263 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "" + +#: html/Ticket/ModifyAll.html:36 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "" + +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "Modify tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify user rights for custom field %1" +msgstr "" + +#: 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 "" + +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 +msgid "ModifyACL" +msgstr "" + +#: lib/RT/Group_Overlay.pm:149 +msgid "ModifyOwnMembership" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:72 +msgid "ModifyQueueWatchers" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:77 +msgid "ModifyScrips" +msgstr "" + +#: lib/RT/System.pm:60 +msgid "ModifySelf" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 +msgid "ModifyTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:90 +msgid "ModifyTicket" +msgstr "" + +#: lib/RT/Date.pm:388 +msgid "Mon." +msgstr "" + +#: html/Ticket/Elements/ShowRequestor:40 +#. ($name) +msgid "More about %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:60 +msgid "Move down" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:52 +msgid "Move up" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:26 +msgid "Multiple" +msgstr "" + +#: lib/RT/User_Overlay.pm:197 +msgid "Must specify 'Name' attribute" +msgstr "" + +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "" + +#: html/Approvals/index.html:24 html/Approvals/index.html:25 +msgid "My approvals" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "" + +#: lib/RT/User_Overlay.pm:204 +msgid "Name in use" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "" + +#: html/Ticket/Elements/ShowDates:52 +msgid "Never" +msgstr "" + +#: html/Elements/Quicksearch:29 +msgid "New" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +msgid "New Password" +msgstr "" + +#: etc/initialdata:332 +msgid "New Pending Approval" +msgstr "" + +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "New Relationships" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "New Search" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + +#: 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 "" + +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +msgid "New group" +msgstr "" + +#: html/SelfService/Prefs.html:31 +msgid "New password" +msgstr "" + +#: lib/RT/User_Overlay.pm:773 +msgid "New password notification sent" +msgstr "" + +#: html/Admin/Elements/QueueTabs:69 +msgid "New queue" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "New request" +msgstr "" + +#: html/Admin/Elements/SelectRights:41 +msgid "New rights" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "" + +#: 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 "" + +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2700 +msgid "New ticket doesn't exist" +msgstr "" + +#: html/Admin/Elements/UserTabs:50 +msgid "New user" +msgstr "" + +#: html/Admin/Elements/CreateUserCalled:25 +msgid "New user called" +msgstr "" + +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +msgid "New watchers" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "New window setting" +msgstr "" + +#: html/Ticket/Elements/Tabs:70 +msgid "Next" +msgstr "" + +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Next page" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "NickName" +msgstr "" + +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +msgid "Nickname" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +msgid "No CustomField" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +msgid "No Group defined" +msgstr "" + +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +msgid "No Queue defined" +msgstr "" + +#: bin/rt-crontool:52 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "" + +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +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 "" + +#: html/Approvals/Elements/Approve:45 +msgid "No action" +msgstr "" + +#: lib/RT/Record.pm:744 +msgid "No column specified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "" + +#: html/Ticket/Elements/ShowRequestor:46 +msgid "No comment entered about this user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No correspondence attached" +msgstr "" + +#: 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 "" + +#: lib/RT/Users_Overlay.pm:159 +msgid "No group specified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No groups matching search criteria found." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 +msgid "No password set" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:296 +msgid "No permission to create queues" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No permission to create tickets in the queue '%1'" +msgstr "" + +#: lib/RT/User_Overlay.pm:157 +msgid "No permission to create users" +msgstr "" + +#: html/SelfService/Display.html:125 +msgid "No permission to display that ticket" +msgstr "" + +#: html/SelfService/Update.html:68 +msgid "No permission to view update ticket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +msgid "No principal specified" +msgstr "" + +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +msgid "No principals selected." +msgstr "" + +#: html/Admin/Queues/index.html:34 +msgid "No queues matching search criteria found." +msgstr "" + +#: html/Admin/Elements/SelectRights:81 +msgid "No rights found" +msgstr "" + +#: html/Admin/Elements/SelectRights:32 +msgid "No rights granted." +msgstr "" + +#: html/Search/Bulk.html:162 +msgid "No search to operate on." +msgstr "" + +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +msgid "No transaction type specified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No user or email address specified" +msgstr "" + +#: html/Admin/Users/index.html:35 +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 "" + +#: lib/RT/Record.pm:741 +msgid "No value sent to _Set!\\n" +msgstr "" + +#: html/Elements/QuickCreate:16 +msgid "Nobody" +msgstr "" + +#: lib/RT/Record.pm:746 +msgid "Nonexistant field?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Not logged in" +msgstr "" + +#: html/Elements/Header:71 +msgid "Not logged in." +msgstr "" + +#: lib/RT/Date.pm:369 +msgid "Not set" +msgstr "" + +#: html/NoAuth/Reminder.html:26 +msgid "Not yet implemented." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Not yet implemented...." +msgstr "" + +#: html/Approvals/Elements/Approve:48 +msgid "Notes" +msgstr "" + +#: lib/RT/User_Overlay.pm:776 +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 "" + +#: lib/RT/Date.pm:421 +msgid "Nov." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "" + +#: lib/RT/Record.pm:200 +msgid "Object could not be created" +msgstr "" + +#: lib/RT/Record.pm:219 +msgid "Object created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Object of type %1 cannot take custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Object type mismatch" +msgstr "" + +#: lib/RT/Date.pm:420 +msgid "Oct." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "" + +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + +#: html/Elements/SelectDateRelation:34 +msgid "On" +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:49 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "" + +#: 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 "" + +#: html/Elements/Quicksearch:30 +msgid "Open" +msgstr "" + +#: html/Ticket/Elements/Tabs:137 +msgid "Open it" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Open requests" +msgstr "" + +#: html/SelfService/Elements/Tabs:41 +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 "" + +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ordering and sorting" +msgstr "" + +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +msgid "Organization" +msgstr "" + +#: html/Approvals/Elements/Approve:32 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 +msgid "Over time, priority moves toward" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "Own tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 +msgid "OwnTicket" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Owner changed from %1 to %2" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Owner is" +msgstr "" + +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +msgid "Pager" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "PagerPhone" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Parent" +msgstr "" + +#: 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 "" + +#: html/Elements/Login:52 html/User/Prefs.html:83 +msgid "Password" +msgstr "" + +#: html/NoAuth/Reminder.html:24 +msgid "Password Reminder" +msgstr "" + +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +msgid "Password too short" +msgstr "" + +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "" + +#: html/Admin/Users/Modify.html:318 +msgid "Passwords do not match." +msgstr "" + +#: html/User/Prefs.html:211 +msgid "Passwords do not match. Your password has not been changed" +msgstr "" + +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +msgid "People" +msgstr "" + +#: etc/initialdata:133 +msgid "Perform a user-defined action" +msgstr "" + +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "" + +#: html/User/Elements/Tabs:34 +msgid "Personal Groups" +msgstr "" + +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +msgid "Personal groups" +msgstr "" + +#: html/User/Elements/DelegateRights:36 +msgid "Personal groups:" +msgstr "" + +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +msgid "Phone numbers" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Placeholder" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Pref" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "" + +#: lib/RT/Action/Generic.pm:169 +msgid "Prepare Stubbed" +msgstr "" + +#: html/Ticket/Elements/Tabs:62 +msgid "Prev" +msgstr "" + +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Previous page" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: html/Admin/Queues/Modify.html:64 +msgid "Priority starts at" +msgstr "" + +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "" + +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "" + +#: html/Admin/Users/index.html:61 +msgid "Privileged users" +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 "" + +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Queue '%1' not found\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Queue Keyword Selections" +msgstr "" + +#: html/Admin/Queues/Modify.html:42 +msgid "Queue Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:300 +msgid "Queue already exists" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +msgid "Queue could not be created" +msgstr "" + +#: html/Ticket/Create.html:208 +msgid "Queue could not be loaded." +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 +msgid "Queue created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "" + +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +msgid "Queue not found" +msgstr "" + +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +msgid "Queues" +msgstr "" + +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "" + +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + +#: html/Elements/Login:44 +#. ($RT::VERSION) +msgid "RT %1" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#. ($RT::VERSION, $RT::rtname) +msgid "RT %1 for %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" +msgstr "" + +#: html/Admin/index.html:24 html/Admin/index.html:25 +msgid "RT Administration" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Authentication error." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Bounce: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Configuration error" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Critical error. Message not recorded!" +msgstr "" + +#: html/Elements/Error:41 html/SelfService/Error.html:40 +msgid "RT Error" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Recieved mail (%1) from itself." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT Self Service / Closed Tickets" +msgstr "" + +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 +msgid "RT at a glance" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't authenticate you" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find requestor via its external database lookup" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find the queue: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "" + +#: html/Elements/PageLayout:85 +#. ($RT::rtname) +msgid "RT for %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT for %1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT has proccessed your commands" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +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 "" + +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +msgid "Real Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RealName" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Refine search" +msgstr "" + +#: html/Elements/Refresh:35 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Relationships" +msgstr "" + +#: html/Search/Bulk.html:95 +msgid "Remove AdminCc" +msgstr "" + +#: html/Search/Bulk.html:91 +msgid "Remove Cc" +msgstr "" + +#: html/Search/Bulk.html:87 +msgid "Remove Requestor" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +msgid "Reply" +msgstr "" + +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "Reply to tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "ReplyToTicket" +msgstr "" + +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +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 "RequestorAddresses" +msgstr "" + +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +msgid "Requestors" +msgstr "" + +#: html/Admin/Queues/Modify.html:74 +msgid "Requests should be due in" +msgstr "" + +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + +#: html/Elements/Submit:61 +msgid "Reset" +msgstr "" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +msgid "Residence" +msgstr "" + +#: html/Ticket/Elements/Tabs:133 +msgid "Resolve" +msgstr "" + +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "" + +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +msgid "Resolved" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Response to requestors" +msgstr "" + +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +msgid "Results" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Results per page" +msgstr "" + +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +msgid "Retype Password" +msgstr "" + +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:612 +msgid "Right Delegated" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:302 +msgid "Right Granted" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:160 +msgid "Right Loaded" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +msgid "Right could not be revoked" +msgstr "" + +#: html/User/Delegation.html:63 +msgid "Right not found" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +msgid "Right not loaded." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:688 +msgid "Right revoked" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Rights" +msgstr "" + +#: lib/RT/Interface/Web.pm:869 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "" + +#: lib/RT/Interface/Web.pm:899 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "" + +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +msgid "Roles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "" + +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + +#: lib/RT/Date.pm:393 +msgid "Sat." +msgstr "" + +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "" + +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 +msgid "Save changes" +msgstr "" + +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:180 +msgid "Scrip Created" +msgstr "" + +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 +msgid "Scrip deleted" +msgstr "" + +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +msgid "Scrips" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "" + +#: html/Admin/Queues/Scrips.html:33 +msgid "Scrips which apply to all queues" +msgstr "" + +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +msgid "Search" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:38 +msgid "Search for approvals" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "" + +#: bin/rt-crontool:184 +msgid "Security:" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "See custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "SeeCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 +msgid "SeeQueue" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Field" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 +msgid "Select a group" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a queue" +msgstr "" + +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +msgid "Select a user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +msgid "Select custom field" +msgstr "" + +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +msgid "Select group" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:427 +msgid "Select multiple values" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:424 +msgid "Select one value" +msgstr "" + +#: html/Admin/Elements/QueueTabs:66 +msgid "Select queue" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Select up to %1 values" +msgstr "" + +#: html/Admin/Elements/UserTabs:46 +msgid "Select user" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:35 +msgid "SelectMultiple" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:34 +msgid "SelectSingle" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Selected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Selected objects" +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 "" + +#: lib/RT/Date.pm:419 +msgid "Sep." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 +msgid "Show Results" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:43 +msgid "Show approved requests" +msgstr "" + +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +msgid "Show basics" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:44 +msgid "Show denied requests" +msgstr "" + +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +msgid "Show details" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:42 +msgid "Show pending requests" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:45 +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:70 +msgid "ShowACL" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 +msgid "ShowScrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 +msgid "ShowTemplate" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "ShowTicket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "ShowTicketComments" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "" + +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +msgid "Signature" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Signed in as %1" +msgstr "" + +#: html/Admin/Elements/SelectSingleOrMultiple:25 +msgid "Single" +msgstr "" + +#: html/Elements/Header:62 +msgid "Skip Menu" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Sort Order" +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 "" + +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "" + +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +msgid "Started" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "" + +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +msgid "Starts" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Starts By" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Starts date '%1' could not be parsed" +msgstr "" + +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +msgid "State" +msgstr "" + +#: 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 "" + +#: etc/initialdata:309 +msgid "Status Change" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:505 +#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +msgid "Status changed from %1 to %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "" + +#: html/Ticket/Elements/Tabs:148 +msgid "Steal" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 +#. ($Old->Name) +msgid "Stolen from %1 " +msgstr "" + +#: 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 "" + +#: 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 "" + +#: html/Elements/Submit:58 +msgid "Submit" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "" + +#: lib/RT/Group_Overlay.pm:749 +msgid "Succeeded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + +#: lib/RT/Date.pm:394 +msgid "Sun." +msgstr "" + +#: lib/RT/System.pm:53 +msgid "SuperUser" +msgstr "" + +#: html/User/Elements/DelegateRights:76 +msgid "System" +msgstr "" + +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "System Error. Right not granted." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "System Error. right not granted" +msgstr "" + +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:615 +msgid "System error. Right not delegated." +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "" + +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +msgid "System groups" +msgstr "" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "" + +#: lib/RT/CurrentUser.pm:334 +msgid "TEST_STRING" +msgstr "" + +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +msgid "Take" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 +msgid "Taken" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "" + +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +msgid "Template" +msgstr "" + +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "" + +#: html/Admin/Elements/EditTemplates:88 +msgid "Template deleted" +msgstr "" + +#: lib/RT/Scrip_Overlay.pm:156 +msgid "Template not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "" + +#: lib/RT/Template_Overlay.pm:348 +msgid "Template parsed" +msgstr "" + +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +msgid "Templates" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "" + +#: lib/RT/Record.pm:740 +msgid "That is already the current value" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:248 +msgid "That is not a value for this custom field" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2086 +msgid "That is the same value" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:674 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1527 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:773 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "That principal is not a %1 for this ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2082 +msgid "That queue does not exist" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3152 +msgid "That ticket has unresolved dependencies" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "That user already has that right" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2956 +msgid "That user already owns that ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2928 +msgid "That user does not exist" +msgstr "" + +#: lib/RT/User_Overlay.pm:355 +msgid "That user is already privileged" +msgstr "" + +#: lib/RT/User_Overlay.pm:376 +msgid "That user is already unprivileged" +msgstr "" + +#: lib/RT/User_Overlay.pm:368 +msgid "That user is now privileged" +msgstr "" + +#: lib/RT/User_Overlay.pm:389 +msgid "That user is now unprivileged" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2949 +msgid "That user may not own tickets in that queue" +msgstr "" + +#: lib/RT/Link_Overlay.pm:200 +msgid "That's not a numerical id" +msgstr "" + +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +msgid "The Basics" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:87 +msgid "The CC of a ticket" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:88 +msgid "The administrative CC of a ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "The comment has been recorded" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "The following commands were not proccessed:\\n\\n" +msgstr "" + +#: lib/RT/Record.pm:743 +msgid "The new value has been set." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:85 +msgid "The owner of a ticket" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:86 +msgid "The requestor of a ticket" +msgstr "" + +#: html/Admin/Elements/EditUserComments:25 +msgid "These comments aren't generally visible to the user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "This custom field does not apply to that object" +msgstr "" + +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +msgid "This message will be sent to..." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "" + +#: bin/rt-crontool:185 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:226 +msgid "This transaction appears to have no content" +msgstr "" + +#: html/Ticket/Elements/ShowRequestor:48 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "" + +#: lib/RT/Date.pm:391 +msgid "Thu." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 Jumbo update: %2" +msgstr "" + +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "" + +#: html/Approvals/Elements/ShowDependency:45 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "" + +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket %1 loaded\\n" +msgstr "" + +#: html/Search/Bulk.html:216 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket Custom Fields" +msgstr "" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket Id" +msgstr "" + +#: etc/initialdata:324 +msgid "Ticket Resolved" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket Transactions" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket attachment" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1228 +msgid "Ticket content" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1274 +msgid "Ticket content type" +msgstr "" + +#: 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 "" + +#: lib/RT/Transaction_Overlay.pm:497 +msgid "Ticket created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:502 +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:33 +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 "" + +#: html/Elements/Tabs:46 +msgid "Tickets" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1452 +#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +msgid "Tickets %1 %2" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1410 +#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +msgid "Tickets %1 by %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Tickets from %1" +msgstr "" + +#: html/Approvals/Elements/ShowDependency:26 +msgid "Tickets which depend on this approval:" +msgstr "" + +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +msgid "Time Left" +msgstr "" + +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +msgid "Time Worked" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1201 +msgid "Time left" +msgstr "" + +#: html/Elements/Footer:44 +msgid "Time to display" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1177 +msgid "Time worked" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1277 +msgid "TimeWorked" +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 "" + +#: html/Elements/Footer:39 +#. ('<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:1280 +msgid "Told" +msgstr "" + +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 +msgid "Transaction" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:705 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:136 +msgid "Transaction Created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Transaction Custom Fields" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:92 +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:760 +msgid "Transactions are immutable" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "" + +#: lib/RT/Date.pm:389 +msgid "Tue." +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + +#: lib/RT/ScripCondition_Overlay.pm:103 +msgid "Unimplemented" +msgstr "" + +#: html/Admin/Users/Modify.html:67 +msgid "Unix login" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "UnixUsername" +msgstr "" + +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#. ($self->ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "" + +#: html/Elements/SelectResultsPerPage:36 +msgid "Unlimited" +msgstr "" + +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Unselected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Unselected objects" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:562 +msgid "Untaken" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "" + +#: html/Search/Bulk.html:32 +msgid "Update" +msgstr "" + +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Update ID" +msgstr "" + +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +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/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Update name" +msgstr "" + +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +msgid "Update not recorded." +msgstr "" + +#: html/Search/Bulk.html:78 +msgid "Update selected tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Update signature" +msgstr "" + +#: html/Ticket/ModifyAll.html:62 +msgid "Update ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Update ticket # %1" +msgstr "" + +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "" + +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "" + +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +msgid "Update type was neither correspondence nor comment." +msgstr "" + +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +msgid "Updated" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple images" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one image" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 images" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User %1 %2: %3\\n" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User %1 Password: %2\\n" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found\\n" +msgstr "" + +#: etc/initialdata:132 etc/initialdata:206 +msgid "User Defined" +msgstr "" + +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User ID" +msgstr "" + +#: html/Elements/SelectUsers:25 +msgid "User Id" +msgstr "" + +#: 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 "" + +#: NOT FOUND IN SOURCE +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" + +#: html/Admin/Users/Modify.html:252 +#. ($msg) +msgid "User could not be created: %1" +msgstr "" + +#: lib/RT/User_Overlay.pm:296 +msgid "User created" +msgstr "" + +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +msgid "User defined groups" +msgstr "" + +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User view" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "User-defined groups" +msgstr "" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +msgid "Username" +msgstr "" + +#: 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 "" + +#: html/Admin/Users/index.html:64 +msgid "Users matching search criteria" +msgstr "" + +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ValueOfQueue" +msgstr "" + +#: html/Admin/Elements/EditCustomField:56 +msgid "Values" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "VrijevormEnkele" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:84 +msgid "Watch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "WatchAsAdminCc" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "" + +#: html/Admin/Elements/QueueTabs:41 +msgid "Watchers" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "WebEncoding" +msgstr "" + +#: lib/RT/Date.pm:390 +msgid "Wed." +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 "" + +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +msgid "Work" +msgstr "" + +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "WorkPhone" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +msgid "Worked" +msgstr "" + +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 +msgid "You already own this ticket" +msgstr "" + +#: html/autohandler:142 +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 "" + +#: lib/RT/Ticket_Overlay.pm:2941 +msgid "You can only reassign tickets that you own or that are unowned" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "You don't have permission to view that ticket.\\n" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "" + +#: html/NoAuth/Logout.html:30 +msgid "You have been logged out of RT." +msgstr "" + +#: html/SelfService/Display.html:79 +msgid "You have no permission to create tickets in that queue." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2095 +msgid "You may not create requests in that queue." +msgstr "" + +#: html/NoAuth/Logout.html:34 +msgid "You're welcome to login again" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Your %1 requests" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "" + +#: etc/initialdata:502 +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 "" + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "" + +#: etc/initialdata:445 +msgid "Your request was rejected." +msgstr "" + +#: html/autohandler:177 +msgid "Your username or password is incorrect" +msgstr "" + +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +msgid "Zip" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + +#: html/User/Elements/DelegateRights:58 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "" + +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +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 "" + +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +msgid "days" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "delete" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:64 +msgid "deleted" +msgstr "" + +#: html/Search/Elements/PickBasics:33 +msgid "does not match" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +msgid "doesn't contain" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "email address" +msgstr "" + +#: html/Elements/SelectEqualityOperator:37 +msgid "equal to" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "filename" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +msgid "greater than" +msgstr "" + +#: lib/RT/Group_Overlay.pm:196 +#. ($self->Name) +msgid "group '%1'" +msgstr "" + +#: lib/RT/Date.pm:315 +msgid "hours" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "id" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + +#: 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 "" + +#: 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 "" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +msgid "less than" +msgstr "" + +#: html/Search/Elements/PickBasics:32 +msgid "matches" +msgstr "" + +#: lib/RT/Date.pm:311 +msgid "min" +msgstr "" + +#: html/Ticket/Update.html:42 +msgid "minutes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "modifications\\n\\n" +msgstr "" + +#: lib/RT/Date.pm:327 +msgid "months" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:59 +msgid "new" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + +#: html/Admin/Elements/EditScrips:42 +msgid "no value" +msgstr "" + +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +msgid "none" +msgstr "" + +#: html/Elements/SelectEqualityOperator:37 +msgid "not equal to" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "" + +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +msgid "open" +msgstr "" + +#: lib/RT/Group_Overlay.pm:201 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "" + +#: lib/RT/Group_Overlay.pm:209 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:63 +msgid "rejected" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:62 +msgid "resolved" +msgstr "" + +#: lib/RT/Date.pm:307 +msgid "sec" +msgstr "" + +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 +msgid "stalled" +msgstr "" + +#: lib/RT/Group_Overlay.pm:204 +#. ($self->Type) +msgid "system %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:215 +#. ($self->Type) +msgid "system group '%1'" +msgstr "" + +#: html/Elements/Error:42 html/SelfService/Error.html:41 +msgid "the calling component did not specify why" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:212 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "" + +#: lib/RT/Group_Overlay.pm:218 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:193 +#. ($user->Object->Name) +msgid "user %1" +msgstr "" + +#: lib/RT/Date.pm:323 +msgid "weeks" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "" + +#: lib/RT/Date.pm:331 +msgid "years" +msgstr "" + diff --git a/rt/lib/RT/I18N/i_default.pm b/rt/lib/RT/I18N/i_default.pm index 154702656..10827c104 100644 --- a/rt/lib/RT/I18N/i_default.pm +++ b/rt/lib/RT/I18N/i_default.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::I18N::i_default; use strict; diff --git a/rt/lib/RT/I18N/it.po b/rt/lib/RT/I18N/it.po index d3e5a5e74..b0ac45438 100644 --- a/rt/lib/RT/I18N/it.po +++ b/rt/lib/RT/I18N/it.po @@ -1,400 +1,471 @@ -# translation of it.po to -# translation of it.po to -# translation of it.po to -# translation of it.po to -# translation of it.po to -# translation of it.po to -# Copyright (c) 2002 Jesse Vincent <jesse@bestpractical.com> -# root <root@delpreterh>, 2003 -# msgid "" -msgstr "" -"Project-Id-Version: it\n" -"POT-Creation-Date: 2002-05-02 11:36+0800\n" -"PO-Revision-Date: 2003-07-21 22:20+0200\n" -"Last-Translator: root <root@delpreterh>\n" -"Language-Team: <en@li.org>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.0.1\n" - -#: html/Elements/MyRequests:27 -#: html/Elements/MyTickets:27 +msgstr ""modifications\\n" +"\\n" +" +"modifiche\\n" +"\\n" + +#: NOT FOUND IN SOURCE msgid "#" msgstr "n°" -#. ($QueueObj->id) -#: html/Admin/Queues/Scrip.html:54 +#: NOT FOUND IN SOURCE msgid "#%1" msgstr "n°%1" -#. ($Ticket->Id, $Ticket->Subject) +#: 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) -#: 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 msgid "#%1: %2" msgstr "n°%1: %2" +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 #. ($s, $time_unit) -#: lib/RT/Date.pm:336 +#. ($option, $subtype) msgid "%1 %2" msgstr "%1 %2" +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) -#: lib/RT/Tickets_Overlay.pm:770 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)) -#: lib/RT/Date.pm:372 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) -#: lib/RT/Ticket_Overlay.pm:3504 -#: lib/RT/Transaction_Overlay.pm:556 -#: lib/RT/Transaction_Overlay.pm:598 msgid "%1 %2 added" msgstr "%1 %2 aggiunto" +#: lib/RT/Date.pm:334 #. ($s, $time_unit) -#: lib/RT/Date.pm:333 msgid "%1 %2 ago" msgstr "%1 %2 fa" +#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 #. ($cf->Name, $old_value, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) -#: lib/RT/Ticket_Overlay.pm:3510 -#: lib/RT/Transaction_Overlay.pm:563 msgid "%1 %2 changed to %3" msgstr "%1 %2 cambiato in %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) -#: lib/RT/Ticket_Overlay.pm:3507 -#: lib/RT/Transaction_Overlay.pm:559 -#: lib/RT/Transaction_Overlay.pm:604 msgid "%1 %2 deleted" msgstr "%1 %2 eliminato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "%1 %2 of group %3" msgstr "%1 %2 del gruppo %3" +#: 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)) -#: html/Admin/Elements/EditScrips:43 -#: html/Admin/Elements/ListGlobalScrips:27 msgid "%1 %2 with template %3" msgstr "%1 %2 con il modello %3" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "%1 %2 הוסף" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 מקבוצה %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 נמחק" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 שונה ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 questo ticket\\n" -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) -#: html/Search/Listing.html:56 +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 פנייה זו\\n" +msgstr "" + +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "Tickets da %1 a %2" +#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") -#: bin/rt-crontool:168 -#: bin/rt-crontool:175 -#: bin/rt-crontool:181 msgid "%1 - An argument to pass to %2" msgstr "%1 - Un parametro da passare a %2" +#: bin/rt-crontool:181 #. ("--verbose") -#: bin/rt-crontool:184 msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Lo stato dell'output è stato aggiornato su STDOUT" +#: bin/rt-crontool:175 #. ("--action") -#: bin/rt-crontool:178 msgid "%1 - Specify the action module you want to use" msgstr "%1 - Specificare l'azione che si vuole eseguire" +#: bin/rt-crontool:169 #. ("--condition") -#: bin/rt-crontool:172 msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Specificare la condizione che si vuole utilizzare" +#: bin/rt-crontool:162 #. ("--search") -#: bin/rt-crontool:165 msgid "%1 - Specify the search module you want to use" msgstr "%1 - Specificare la ricerca che si vuole utilizzare" +#: NOT FOUND IN SOURCE +msgid "%1 - ×רגומנט להעביר ×ל %2" +msgstr "" + + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) -#: lib/RT/ScripAction_Overlay.pm:121 msgid "%1 ScripAction loaded" msgstr "%1 ScripAction caricato" +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) -#: lib/RT/Ticket_Overlay.pm:3537 msgid "%1 added as a value for %2" msgstr "%1 aggiunto(i) come valore di %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "%1 aliases require a TicketId to work on" msgstr "gli alias %1 necessitano di un TicketId su cui lavorare" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "%1 aliases require a TicketId to work on " msgstr "gli alias %1 necessitano di un TicketId su cui lavorare" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "gli alias %1 necessitano di un TicketId per funzionare con (dopo %2) %3" +#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 #. ($args{'Base'}) #. ($args{'Target'}) -#: lib/RT/Link_Overlay.pm:116 -#: lib/RT/Link_Overlay.pm:123 msgid "%1 appears to be a local object, but can't be found in the database" msgstr "%1 sembra essere un oggetto locale, ma è introvabile nel database" +#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) -#: html/Ticket/Elements/ShowDates:51 -#: lib/RT/Transaction_Overlay.pm:480 msgid "%1 by %2" msgstr "%1 per %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) -#: lib/RT/Transaction_Overlay.pm:534 -#: lib/RT/Transaction_Overlay.pm:623 -#: lib/RT/Transaction_Overlay.pm:632 -#: lib/RT/Transaction_Overlay.pm:635 msgid "%1 changed from %2 to %3" msgstr "%1 cambiato(1) da %2 a %3" -#: lib/RT/Interface/Web.pm:890 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "%1 non può essere impostato a %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 non ha potuto iniziare una transazione (%2)\\n" +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) -#: lib/RT/Ticket_Overlay.pm:2816 msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 non ho potuto mettere lo stato a risolto. Il database RT può essere inconsistente." -#. ($rows) +#: NOT FOUND IN SOURCE +msgid "%1 created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 deleted" +msgstr "" + #: html/Elements/MyTickets:24 +#. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "I miei %1 tickets a più alta priorità che possiedo..." +#: html/Elements/MyTickets:26 #. ($rows) -#: html/Elements/MyRequests:24 msgid "%1 highest priority tickets I requested..." msgstr "I miei %1 tickets a più alta priorità che ho richiesto..." +#: bin/rt-crontool:157 #. ($0) -#: bin/rt-crontool:160 msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "%1 è uno strumento per lavorare sui tickets da uno schedulatore esterno, come cron" +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) -#: lib/RT/Queue_Overlay.pm:742 msgid "%1 is no longer a %2 for this queue." msgstr "%1 non è più un %2 per questa coda." -#. ($principal->Object->Name, $args{'Type'}) -#: lib/RT/Ticket_Overlay.pm:1569 +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 non è più un %2 per questo ticket." +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) -#: lib/RT/Ticket_Overlay.pm:3593 msgid "%1 is no longer a value for custom field %2" msgstr "%1 non è più un valore per il campo personalizzato %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "%1 isn't a valid Queue id." msgstr "%1 non è un identificativo di coda valido" -#. ($TimeWorked) -#: html/Ticket/Elements/ShowBasics:35 +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 non mostrato" -#. (loc($ObjectType =~ /^RT::(.*)$/)) +#: NOT FOUND IN SOURCE +msgid "%1 objects" +msgstr "" + #: html/User/Elements/DelegateRights:75 +#. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "Diritti di %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "%1 succeeded\\n" msgstr "%1 riuscito\\n" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "%1 type unknown for $MessageId" msgstr "Tipo %1 sconosciuto per $MessageId" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "%1 type unknown for %2" msgstr "Tipo %1 sconosciuto per %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "%1 was created without a CurrentUser\\n" msgstr "%1 è stato creato senza un CurrentUser\\n" -#. (ref $self) #: lib/RT/Action/ResolveMembers.pm:41 +#. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 risolverà tutti i membri di un gruppo di ticket risolto." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 bloccherà una BASE [locale] se dipende o è membro di una richeista linkata." +#: NOT FOUND IN SOURCE +msgid "%1 הוסף כערך עבור %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 לפני %2 ימי×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 על ידי %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 פעולת-סקריפ נטענה" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 שונה מ %2 ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2 objects" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) -#: lib/RT/Transaction_Overlay.pm:432 msgid "%1: no attachment specified" msgstr "%1: nessun allegato specificato" +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) -#: html/Ticket/Elements/ShowTransaction:101 msgid "%1b" msgstr "%1b" -#. (int($size/102.4)/10) -#: html/Ticket/Elements/ShowTransaction:98 +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) -#: lib/RT/Ticket_Overlay.pm:1139 msgid "'%1' is an invalid value for status" msgstr "'%1' è uno stato non valido" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "'%1' not a recognized action. " msgstr "'%1' non è un'azione conosciuta. " -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "(Check box to delete group member)" msgstr "(Spunta la casella per cancellare il membro di un gruppo)" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "(Check box to delete scrip)" msgstr "(Spunta la casella per cancellare uno scrip)" -#: 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/Ticket/Elements/EditLinks:32 -#: html/Ticket/Elements/EditPeople:45 -#: html/User/Groups/Members.html:54 +#: 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 "(Spunta la casella per cancellare)" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "(Check boxes to delete)" msgstr "(Spunta la casella per cancellare)" -#: html/Ticket/Create.html:177 +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Inserire il numero di tickets o gli URL, separati da spazi)" +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + +#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) -#: html/Admin/Queues/Modify.html:53 -#: html/Admin/Queues/Modify.html:59 msgid "(If left blank, will default to %1" msgstr "Se lasciato vuoto, valore di default : %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "(No Value)" msgstr "(Nessun Valore)" -#: html/Admin/Elements/EditCustomFields:32 -#: html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" msgstr "Non ci sono campi personalizzati" -#: html/Admin/Groups/Members.html:49 -#: html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" msgstr "(Nessun membro)" -#: html/Admin/Elements/EditScrips:31 -#: html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 msgid "(No scrips)" msgstr "(Nessuno Scrip)" @@ -402,14 +473,15 @@ msgstr "(Nessuno Scrip)" msgid "(No templates)" msgstr "Nessun modello" -#: html/Ticket/Update.html:84 +#: NOT FOUND IN SOURCE +msgid "(None)" +msgstr "" + +#: 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 "(Invia per copia nascosta questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: 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 "(Invia per copia nascosta questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" @@ -417,14 +489,11 @@ msgstr "(Invia per copia nascosta questo aggiornamento ad una lista di indirizzi 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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email amministrativi separati da virgole. Queste persone <b>riceveranno</b> i successivi aggiornamenti.)" -#: html/Ticket/Update.html:80 +#: 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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: 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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" @@ -432,46 +501,55 @@ msgstr "(Invia una copia di questo aggiornamento ad una lista di indirizzi email 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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email separati da virgole. Queste persone <b>riceveranno</b> i successivi aggiornamenti.)" -#: html/Admin/Groups/index.html:32 -#: html/User/Groups/index.html:32 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(vuoto)" +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + #: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "(nessun nome)" -#: html/Elements/MyRequests:42 -#: html/Elements/MyTickets:44 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(nessun oggetto)" -#: html/Admin/Elements/SelectRights:47 -#: html/Elements/SelectCustomFieldValue:29 -#: html/Ticket/Elements/EditCustomField:58 -#: html/Ticket/Elements/ShowCustomFields:35 -#: lib/RT/Transaction_Overlay.pm:533 +#: 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 "(nessun valore)" -#: html/Ticket/Elements/EditLinks:115 +#: NOT FOUND IN SOURCE +msgid "(no values)" +msgstr "" + +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(solo un ticket)" -#: html/Elements/MyRequests:51 -#: html/Elements/MyTickets:54 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(in attesa di approvazione)" -#: html/Elements/MyRequests:53 -#: html/Elements/MyTickets:56 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(in attea di altri tickets)" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "(requestor's group)" msgstr "(gruppo del richiedente)" @@ -479,21 +557,19 @@ msgstr "(gruppo del richiedente)" msgid "(required)" msgstr "(richiesto)" -#: html/Ticket/Elements/ShowTransaction:104 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(senza titolo)" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + +#: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "I miei 25 tickets che devo trattare con priorità più alta..." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "25 highest priority tickets I requested..." msgstr "I miei 25 tickets che hor ichiesto con priorità più alta..." @@ -505,46 +581,44 @@ msgstr "<% $Ticket->Status%>" msgid "<% $_ %>" msgstr "" +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 #. ($m->scomp('/Elements/SelectNewTicketQueue')) -#: docs/design_docs/string-extraction-guide.txt:54 -#: html/Elements/CreateTicket:25 msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"Crea un ticket in\"> %1" -#: etc/initialdata:203 +#: NOT FOUND IN SOURCE +msgid "??????" +msgstr "" + +#: etc/initialdata:218 msgid "A blank template" msgstr "Un modello vuoto" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "ACE Deleted" msgstr "ACE Eliminata" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "ACE Loaded" msgstr "ACE Caricata" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "ACE could not be deleted" msgstr "l'ACE non è stato possibile elimanarla" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "ACE could not be found" msgstr "l'ACE non è stato possibile trovarla" -#: lib/RT/ACE_Overlay.pm:156 -#: lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "ACE non trovata" @@ -552,7 +626,7 @@ msgstr "ACE non trovata" msgid "ACEs can only be created and deleted." msgstr "Le ACE possono essere solo create e cancellate." -#: bin/rt-commit-handler:754 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Interruzione per evitare modifiche di ticket involontarie.\\n" @@ -564,24 +638,28 @@ msgstr "A proposito" msgid "Access control" msgstr "Controllo di Accesso" -#: html/Admin/Elements/EditScrip:56 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "Azione" +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) -#: lib/RT/Scrip_Overlay.pm:146 msgid "Action %1 not found" msgstr "Azione %1 non trovata" -#: bin/rt-crontool:122 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "Azione eseguita." -#: bin/rt-crontool:118 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "Azione preparata..." -#: html/Search/Bulk.html:91 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "Aggiungi AdminCC" @@ -589,19 +667,19 @@ msgstr "Aggiungi AdminCC" msgid "Add Cc" msgstr "Aggiungi CC" -#: html/Ticket/Create.html:113 -#: html/Ticket/Update.html:99 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "Aggiungi Altri Files" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Add Next State" msgstr "Aggiungi lo Stato Sucessivo" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "Aggiungi il Richiedente" @@ -609,24 +687,23 @@ msgstr "Aggiungi il Richiedente" msgid "Add Value" msgstr "Aggiungi un Valore" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: 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 "Aggiungi una selezione di parole chiave a questa coda" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Add a new a global scrip" msgstr "Aggiungi un nuovo scrip globale" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Add a scrip to this queue" msgstr "Aggiungi uno scrip a questa coda" @@ -634,46 +711,41 @@ msgstr "Aggiungi uno scrip a questa coda" msgid "Add a scrip which will apply to all queues" msgstr "Aggiungi uno scrip da applicare a tutte le code" -#: html/Search/Bulk.html:117 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "Agiungere commenti o repliche ai tickets selezionati" -#: html/Admin/Groups/Members.html:41 -#: html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 msgid "Add members" msgstr "Aggiungi membri" -#: html/Admin/Queues/People.html:65 -#: html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 msgid "Add new watchers" msgstr "Aggiungi nuovi osservatori" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "AddNextState" msgstr "AggiungereStatoSuccessivo" +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) -#: lib/RT/Queue_Overlay.pm:642 msgid "Added principal as a %1 for this queue" msgstr "Aggiunto gruppo/utente come %1 per questa coda" +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) -#: lib/RT/Ticket_Overlay.pm:1453 msgid "Added principal as a %1 for this ticket" msgstr "Aggiunto gruppo/utente come %1 per questo ticket" -#: html/Admin/Elements/ModifyUser:75 -#: html/Admin/Users/Modify.html:121 -#: html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "Inidirizzo1" -#: html/Admin/Elements/ModifyUser:77 -#: html/Admin/Users/Modify.html:126 -#: html/User/Prefs.html:89 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "Indirizzo2" @@ -681,80 +753,63 @@ msgstr "Indirizzo2" msgid "Admin Cc" msgstr "Admin Cc" -#: etc/initialdata:280 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "Commento Amministrativo" -#: etc/initialdata:259 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "Corrispondenza Amministrativa " -#: html/Admin/Queues/index.html:24 -#: html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 msgid "Admin queues" msgstr "Amministra le code" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Admin users" msgstr "Amministra gli Utenti" -#: html/Admin/Global/index.html:25 -#: html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 msgid "Admin/Global configuration" msgstr "configurazione Amministratore/Globale" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Admin/Groups" msgstr "Amministra/Gruppi" -#: html/Admin/Queues/Modify.html:24 -#: html/Admin/Queues/Modify.html:28 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "Amministra/Code/Base" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "AdminAllPersonalGroups" msgstr "AmministraTuttiIGruppiPersonali" -#: etc/initialdata:56 -#: html/Ticket/Elements/ShowPeople:38 -#: html/Ticket/Update.html:49 -#: lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "AdminCc" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "AdminComment" msgstr "CommentoAmministratore" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "AdminCorrespondence" msgstr "CorrispondenzaAmministratore" -#: lib/RT/Queue_Overlay.pm:71 +#: NOT FOUND IN SOURCE +msgid "AdminCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "AmministraCampiPersonalizzati" -#: lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:146 msgid "AdminGroup" msgstr "AmministraGruppi" -#: lib/RT/Group_Overlay.pm:147 +#: lib/RT/Group_Overlay.pm:148 msgid "AdminGroupMembership" msgstr "AmministraAppartenenzaGruppi" @@ -762,7 +817,7 @@ msgstr "AmministraAppartenenzaGruppi" msgid "AdminOwnPersonalGroups" msgstr "AmministraPropriGruppiPersonali" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "AmministraCode" @@ -770,51 +825,51 @@ msgstr "AmministraCode" msgid "AdminUsers" msgstr "AmministraUtenti" -#: html/Admin/Queues/People.html:47 -#: html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "Cc Amministrativa" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Admins" msgstr "Amministratori" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Ricerca avanzata" +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + #: html/Elements/SelectDateRelation:35 msgid "After" msgstr "Dopo" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Age" msgstr "Età" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Alias" msgstr "" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Alias for" msgstr "Alias per" -#: html/Admin/Elements/EditCustomFields:95 +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Tutti i campi personalizzati" @@ -822,47 +877,56 @@ msgstr "Tutti i campi personalizzati" msgid "All Queues" msgstr "Tutte le code" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Always sends a message to the requestors independent of message sender" msgstr "Invia sempre un messaggio al richiedente inipendentemente dal mittente" -#: html/Elements/Tabs:55 +#: NOT FOUND IN SOURCE +msgid "Applies to" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + +#: html/Elements/Tabs:58 msgid "Approval" msgstr "Approvazione" +#: 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) -#: html/Approvals/Display.html:45 -#: html/Approvals/Elements/ShowDependency:41 -#: html/Approvals/index.html:64 msgid "Approval #%1: %2" msgstr "Approvazione n°%1: %2" -#. ($ticket->Id) #: html/Approvals/index.html:53 +#. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Approvazione n°%1: Note non registrate a causa di un errore di sistema" -#. ($ticket->Id) #: html/Approvals/index.html:51 +#. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Approvazione n°%1: Note registrate" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Approval Details" msgstr "Dettagli dell'approvazione" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "Diagramma dell'approvazione" @@ -870,55 +934,72 @@ msgstr "Diagramma dell'approvazione" msgid "Approve" msgstr "Approvare" -#: etc/initialdata:437 -#: etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "Note dell'approvatore: %1" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:414 msgid "Apr." msgstr "Apr." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "April" msgstr "Aprile" -#: html/Elements/SelectSortOrder:34 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "Ascendente" -#: html/Search/Bulk.html:126 -#: html/SelfService/Update.html:32 -#: html/Ticket/ModifyAll.html:82 -#: html/Ticket/Update.html:99 +#: NOT FOUND IN SOURCE +msgid "Assign and remove custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AssignCustomFields" +msgstr "" + +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "Allegato" -#: html/SelfService/Create.html:64 -#: html/Ticket/Create.html:109 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "Allegare un file" -#: html/Ticket/Create.html:97 -#: html/Ticket/Update.html:88 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "File allegato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "L'allegato '%1' non può essere caricato" -#: lib/RT/Transaction_Overlay.pm:440 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "Allegato creato" -#: lib/RT/Tickets_Overlay.pm:1188 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "Nome file dell'allegato" @@ -926,22 +1007,23 @@ msgstr "Nome file dell'allegato" msgid "Attachments" msgstr "Allegati" -#: lib/RT/Date.pm:417 +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + +#: lib/RT/Date.pm:418 msgid "Aug." msgstr "Ago." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "August" msgstr "Agosto" -#: html/Admin/Elements/ModifyUser:65 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "AuthSystem" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "RispostaAutomatica" @@ -949,135 +1031,112 @@ msgstr "RispostaAutomatica" msgid "Autoreply To Requestors" msgstr "Risposta automatica ai richiedenti" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "AutoreplyToRequestors" msgstr "RispostaAutomaticaAiRichiedenti" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Firma PGP non valida: %1\\n" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "Id di allegato errato. Impossibile trovare l'allegato '%1'\\n" -#. ($val) -#: bin/rt-commit-handler:826 +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "Dati incorretti in %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Numero di transazione incorretto per l'allegato. %1 dovrebbe essere %2\\n" -#: html/Admin/Elements/GroupTabs:38 -#: html/Admin/Elements/QueueTabs:38 -#: html/Admin/Elements/UserTabs:37 -#: html/Ticket/Elements/Tabs:89 -#: html/User/Elements/GroupTabs:37 +#: 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 "Essenziale" -#: html/Ticket/Update.html:82 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:87 -#: html/Admin/Global/GroupRights.html:84 -#: html/Admin/Global/Template.html:45 -#: html/Admin/Global/UserRights.html:53 -#: html/Admin/Groups/GroupRights.html:72 -#: html/Admin/Groups/Members.html:80 -#: html/Admin/Groups/Modify.html:55 -#: html/Admin/Groups/UserRights.html:54 -#: html/Admin/Queues/GroupRights.html:84 -#: html/Admin/Queues/Template.html:44 -#: html/Admin/Queues/UserRights.html:53 -#: html/User/Groups/Modify.html:55 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "Assicurarsi di salvare le modifiche" -#: html/Elements/SelectDateRelation:33 -#: lib/RT/CurrentUser.pm:319 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "Prima" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Begin Approval" msgstr "Inizio dell'approvazione" -#: etc/initialdata:202 +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "" + +#: etc/initialdata:217 msgid "Blank" msgstr "Vuoto" -#: html/Search/Listing.html:78 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "URL predefinito per questa ricerca" -#: html/Ticket/Elements/ShowHistory:38 -#: html/Ticket/Elements/ShowHistory:44 +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "Intestazioni brevi" -#: html/Search/Bulk.html:24 -#: html/Search/Bulk.html:25 +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 msgid "Bulk ticket update" msgstr "Modifica di massa dei tickets" -#: lib/RT/User_Overlay.pm:1351 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "Gli utenti di sistema non possono essere modificati" -#: lib/RT/Queue_Overlay.pm:66 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "Il gruppo/utente può vedere questa coda" -#: lib/RT/CustomField_Overlay.pm:205 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "Impossibile aggiungere un valore di campo personalizzato senza un nome" -#: lib/RT/Link_Overlay.pm:131 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "Non è possibile collegare un ticket a se stesso" -#: lib/RT/Ticket_Overlay.pm:2793 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Impossibile unire un ticket ad un ticket già unito. Non dovrebbe mai comparire questo errore" -#: lib/RT/Ticket_Overlay.pm:2611 -#: lib/RT/Ticket_Overlay.pm:2680 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "Impossibile specificare sia la base che il target" +#: html/autohandler:132 #. ($msg) -#: html/autohandler:98 msgid "Cannot create user: %1" msgstr "Impossibile creare l'utente: %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:44 -#: html/Ticket/Update.html:77 -#: lib/RT/ACE_Overlay.pm:87 +#: 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" @@ -1085,8 +1144,11 @@ msgstr "Cc" msgid "Change password" msgstr "Cambiare la passwrd" -#: html/Ticket/Create.html:100 -#: html/Ticket/Update.html:91 +#: NOT FOUND IN SOURCE +msgid "Check All" +msgstr "" + +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "Spunta la casella per eliminare" @@ -1094,20 +1156,35 @@ msgstr "Spunta la casella per eliminare" msgid "Check box to revoke right" msgstr "Spunta la casella per revocare i diritti" -#: html/Ticket/Create.html:182 -#: html/Ticket/Elements/EditLinks:130 -#: html/Ticket/Elements/EditLinks:68 -#: html/Ticket/Elements/ShowLinks:56 +#: 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 "Figli" -#: html/Admin/Elements/ModifyUser:79 -#: html/Admin/Users/Modify.html:131 -#: html/User/Prefs.html:91 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "Città" -#: html/Ticket/Elements/ShowDates:46 +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Clear All" +msgstr "" + +#: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "Chiuso" @@ -1115,10 +1192,7 @@ msgstr "Chiuso" msgid "Closed Tickets" msgstr "Tickets Chiusi" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Richieste chiuse" @@ -1126,96 +1200,79 @@ msgstr "Richieste chiuse" msgid "Closed tickets" msgstr "Tickets chiusi" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Code" msgstr "" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Command not understood!\\n" msgstr "Comando non riconosciuto! \\n" -#: html/Ticket/Elements/ShowTransaction:178 -#: html/Ticket/Elements/Tabs:152 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "Commento" -#: html/Admin/Elements/ModifyQueue:44 #: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "Inidirizzo di Commento" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Comment not recorded" msgstr "Commento non registrato" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "Commento sui tickets" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "CommentoSuiTickets" -#: html/Admin/Elements/ModifyUser:34 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "Commenti" -#: html/Ticket/ModifyAll.html:69 -#: html/Ticket/Update.html:69 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "Commenti (Non inviati ai richiedenti)" -#: html/Search/Bulk.html:121 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "Commenti (non inviati ai richiedenti)" -#. ($name) -#: html/Elements/ViewUser:26 +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "Commenti su %1" -#: html/Admin/Users/Modify.html:184 -#: html/Ticket/Elements/ShowRequestor:43 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "Commenti su questo utente" -#: lib/RT/Transaction_Overlay.pm:542 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "Commenti aggiunti" -#: lib/RT/Action/Generic.pm:139 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "tr(Commit Stubbed)" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Compile Restrictions" msgstr "Restrizioni di compilazione" -#: html/Admin/Elements/EditScrip:40 +#: html/Admin/Elements/EditScrip:41 msgid "Condition" msgstr "Condizione" -#: bin/rt-crontool:108 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "La condizione soddisfa..." -#: lib/RT/Scrip_Overlay.pm:159 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "Condizione non trovata" -#: html/Elements/Tabs:49 +#: html/Elements/Tabs:52 msgid "Configuration" msgstr "Configurazione" @@ -1223,306 +1280,259 @@ msgstr "Configurazione" msgid "Confirm" msgstr "Confermare" -#: html/Admin/Elements/ModifyUser:59 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "ContactInfoSystem" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Contacted date '%1' could not be parsed" msgstr "La data di contatto '%1' non può essere analizzata" -#: html/Admin/Elements/ModifyTemplate:43 -#: html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "Contenuto" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "Non è stato possibile creare il gruppo" -#: etc/initialdata:271 +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "Corrispondenza" -#: html/Admin/Elements/ModifyQueue:38 -#: html/Admin/Queues/Modify.html:50 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "Inidirizzo di corrispondenza" -#: lib/RT/Transaction_Overlay.pm:538 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "Corrispondenza aggiunta" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Correspondence not recorded" msgstr "Corrispondenza non registrata" -#: lib/RT/Ticket_Overlay.pm:3524 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "Impossibile aggiungere un nuovo valore di campo personalizzato a questo ticket. " -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. %1 " msgstr "Il valore di campo personalizzato non è stato possibile aggiungerlo. %1" -#: lib/RT/Ticket_Overlay.pm:3030 -#: lib/RT/Ticket_Overlay.pm:3038 -#: lib/RT/Ticket_Overlay.pm:3054 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "Impossibile cambiare il proprietario. " +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) -#: html/Admin/Elements/EditCustomField:84 -#: html/Admin/Elements/EditCustomFields:165 msgid "Could not create CustomField" msgstr "Impossibile creare il campo personalizzato" -#: html/User/Groups/Modify.html:76 -#: lib/RT/Group_Overlay.pm:473 -#: lib/RT/Group_Overlay.pm:480 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "Impossibile creare il gruppo" +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) -#: html/Admin/Global/Template.html:74 -#: html/Admin/Queues/Template.html:71 msgid "Could not create template: %1" msgstr "Impossibile creare il modello : %1" -#: lib/RT/Ticket_Overlay.pm:1072 -#: lib/RT/Ticket_Overlay.pm:333 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "Impossibile creare il ticket. Queue non impostata" -#: lib/RT/User_Overlay.pm:207 -#: lib/RT/User_Overlay.pm:219 -#: lib/RT/User_Overlay.pm:237 -#: lib/RT/User_Overlay.pm:421 +#: 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 "Impossibile creare l'utente" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Could not create watcher for requestor" msgstr "Impossibile creare l'osservatore per il richiedente" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Could not find a ticket with id %1" msgstr "Impossibile trovare il ticket numero %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Could not find group %1." msgstr "Impossibile trovare il gruppo %1." -#: lib/RT/Queue_Overlay.pm:620 -#: lib/RT/Ticket_Overlay.pm:1421 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "Impossibile trovare o creare questo utente" -#: lib/RT/Queue_Overlay.pm:681 -#: lib/RT/Ticket_Overlay.pm:1500 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "Impossibile trovare questo gruppo/utente" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Could not find user %1." msgstr "Impossibile trovare l'utente %1." -#: html/Admin/Groups/Members.html:87 -#: html/User/Groups/Members.html:89 -#: html/User/Groups/Modify.html:81 +#: NOT FOUND IN SOURCE +msgid "Could not load CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "Impossibile caricare questo gruppo" +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) -#: lib/RT/Queue_Overlay.pm:640 msgid "Could not make that principal a %1 for this queue" msgstr "Impossibile rendere questo gruppo/utente un %1 per questa coda" +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) -#: lib/RT/Ticket_Overlay.pm:1442 msgid "Could not make that principal a %1 for this ticket" msgstr "Impossibile rendere questo gruppo/utente un %1 per questo ticket" +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) -#: lib/RT/Queue_Overlay.pm:739 msgid "Could not remove that principal as a %1 for this queue" msgstr "Impossibile eliminare questo gruppo/utente come un %1 per questa coda" -#. ($args{'Type'}) -#: lib/RT/Ticket_Overlay.pm:1558 +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "Impossibile eliminare questo gruppo/utente come un %1 per questo ticket" -#: lib/RT/Group_Overlay.pm:984 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "Impossibile aggiungere un membro a questo gruppo" +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) -#: lib/RT/Ticket_Overlay.pm:3534 -#: lib/RT/Ticket_Overlay.pm:3590 msgid "Couldn't create a transaction: %1" msgstr "Impossibile creare una transazione : %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Couldn't figure out what to do from gpg's reply\\n" msgstr "Impossibile capire che cosa fare con questa risposta gpg\\n" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Couldn't find group\\n" msgstr "Gruppo introvabile\\n" -#: lib/RT/Interface/Web.pm:899 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "Riga introvabile" -#: lib/RT/Group_Overlay.pm:958 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "Gruppo/utente introvabile" -#: lib/RT/CustomField_Overlay.pm:239 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "Valore introvabile" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Couldn't find that watcher" msgstr "Osservatore introvabile" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Couldn't find user\\n" msgstr "Utente introvabile\\n" +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) -#: lib/RT/CurrentUser.pm:111 msgid "Couldn't load %1 from the users database.\\n" msgstr "Impossibile caricare %1 dal database degli utenti.\\n" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "KeywordSelects non è stato possibile caricarlo" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Couldn't load RT config file '%1' %2" msgstr "Impossibile caricare il file di configurazione RT '%1' %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Couldn't load Scrips." msgstr "Impossibile caricare gli Scrips" +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) -#: html/Admin/Groups/GroupRights.html:87 -#: html/Admin/Groups/UserRights.html:74 msgid "Couldn't load group %1" msgstr "Impossibile caricare il gruppo %1" -#: lib/RT/Link_Overlay.pm:174 -#: lib/RT/Link_Overlay.pm:183 -#: lib/RT/Link_Overlay.pm:210 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "Impossibile caricare il link" +#: NOT FOUND IN SOURCE +msgid "Couldn't load object %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) -#: html/Admin/Elements/EditCustomFields:146 -#: html/Admin/Queues/People.html:120 msgid "Couldn't load queue" msgstr "Impossibile caricare la coda" +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) -#: html/Admin/Queues/GroupRights.html:99 -#: html/Admin/Queues/UserRights.html:71 msgid "Couldn't load queue %1" msgstr "Impossibile caricare la coda %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Couldn't load scrip" msgstr "Impossibile caricare lo Scrip" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Couldn't load template" msgstr "Impossibile caricare il modello" -#. ($id) -#: html/Admin/Users/Prefs.html:78 +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "Impossibile caricare questo utente (%1)" +#: html/SelfService/Display.html:116 #. ($id) -#: html/SelfService/Display.html:108 msgid "Couldn't load ticket '%1'" msgstr "Impossibile caricare il ticket '%1'" -#: html/Admin/Elements/ModifyUser:85 -#: html/Admin/Users/Modify.html:148 -#: html/User/Prefs.html:97 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "Stato" -#: html/Admin/Elements/CreateUserCalled:25 -#: html/Ticket/Create.html:134 -#: html/Ticket/Create.html:194 +#: 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 "Crea" -#: etc/initialdata:128 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "Crea tickets" +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + #: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "Crea un campo Personalizzato" -#. ($QueueObj->Name()) #: html/Admin/Queues/CustomField.html:47 +#. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Crea un campo Custom per la coda %1" @@ -1530,87 +1540,68 @@ msgstr "Crea un campo Custom per la coda %1" msgid "Create a CustomField which applies to all queues" msgstr "Crea un campo Personalizzato valido per tutte le code" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Create a new Custom Field" msgstr "Crea un nuovo campo Personalizzato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create a new global Scrip" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Create a new global scrip" msgstr "Crea un nuovo scrip globale" -#: html/Admin/Groups/Modify.html:66 -#: html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 msgid "Create a new group" msgstr "Crea un nuovo gruppo" -#: html/User/Groups/Modify.html:66 -#: html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 msgid "Create a new personal group" msgstr "Crea un nuovo gruppo personale" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Create a new queue" msgstr "Crea una nuova coda" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Create a new scrip" msgstr "Crea un nuovo scrip" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Create a new template" msgstr "Crea un nuovo modello" -#: html/Ticket/Create.html:24 -#: html/Ticket/Create.html:27 -#: html/Ticket/Create.html:35 +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 msgid "Create a new ticket" msgstr "Crea un nuovo ticket" -#: html/Admin/Users/Modify.html:213 -#: html/Admin/Users/Modify.html:240 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "Crea un nuovo utente" -#: html/Admin/Queues/Modify.html:102 +#: html/Admin/Queues/Modify.html:103 msgid "Create a queue" msgstr "Crea una coda" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Create a queue called" msgstr "Crea una nuova coda chiamata" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Create a request" msgstr "Crea una richiesta" -#. ($QueueObj->Name) #: html/Admin/Queues/Scrip.html:58 +#. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Crea uno scrip per la coda %1" -#: html/Admin/Global/Template.html:68 -#: html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 msgid "Create a template" msgstr "Crea un modello" @@ -1618,21 +1609,23 @@ msgstr "Crea un modello" msgid "Create a ticket" msgstr "Crea un ticket" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Eccezione durante la creazione: %1 / %2 / %3" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Create failed: %1/%2/%3" msgstr "Eccezione durante la creazione: %1/%2/%3" -#: etc/initialdata:130 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "Creare nuovi tickets basati su questo modello di scrip" @@ -1640,22 +1633,19 @@ msgstr "Creare nuovi tickets basati su questo modello di scrip" msgid "Create ticket" msgstr "Crea un ticket" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "Crea dei tickets in questa coda" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "Crea, elimina e modifica campi personalizzati" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "Crea, elimina e modifica le code" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Create, delete and modify the members of any user's personal groups" msgstr "Crea, elimina e modifica i membri dei gruppi personali di un qualunque utente" @@ -1667,38 +1657,48 @@ msgstr "Crea, elimina e modifica i membri dei gruppi personali " msgid "Create, delete and modify users" msgstr "Crea, elimina e modifica gli utenti" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "CreaTicket" -#: html/Elements/SelectDateType:25 -#: html/Ticket/Elements/ShowDates:26 -#: lib/RT/Ticket_Overlay.pm:1166 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "Creato" -#. ($CustomFieldObj->Name()) #: html/Admin/Elements/EditCustomField:87 +#. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Campo Personalizzato %1 creato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Modello %1 creato" -#: html/Ticket/Elements/EditLinks:27 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "Relazioni attuali" +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "" + #: html/Admin/Elements/EditScrips:29 msgid "Current Scrips" msgstr "Scrips attuali" -#: html/Admin/Groups/Members.html:38 -#: html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "Membri attuali" @@ -1706,156 +1706,150 @@ msgstr "Membri attuali" msgid "Current rights" msgstr "Diritti attuali" -#: html/Search/Listing.html:70 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "Criterio di ricerca corrente" -#: html/Admin/Queues/People.html:40 -#: html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "Osservatori attuali" -#. ($CustomField) #: html/Admin/Global/CustomField.html:54 +#. ($CustomField) msgid "Custom Field #%1" msgstr "Campo Personalizzato n°%1" -#: html/Admin/Elements/QueueTabs:52 -#: html/Admin/Elements/SystemTabs:39 -#: html/Admin/Global/index.html:49 -#: html/Ticket/Elements/ShowSummary:35 +#: 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 "Campi Personalizzati" -#: html/Admin/Elements/EditScrip:72 +#: NOT FOUND IN SOURCE +msgid "Custom Fields for %1" +msgstr "" + +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "Programma di pulizia dell'azione personalizzata" -#: html/Admin/Elements/EditScrip:64 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "Programma di preparazione dell'azione personalizzata" -#: html/Admin/Elements/EditScrip:48 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "Condizione personalizzata" +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) -#: lib/RT/Tickets_Overlay.pm:1617 msgid "Custom field %1 %2 %3" msgstr "Campi personalizzati %1 %2 %3" +#: NOT FOUND IN SOURCE +msgid "Custom field %1 does not apply to this object" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) -#: lib/RT/Tickets_Overlay.pm:1612 msgid "Custom field %1 has a value." msgstr "Il campo personalizzato %1 ha un valore" +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) -#: lib/RT/Tickets_Overlay.pm:1609 msgid "Custom field %1 has no value." msgstr "Il campo personalizzato %1 non ha valore" +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) -#: lib/RT/Ticket_Overlay.pm:3426 msgid "Custom field %1 not found" msgstr "Il campo personalizzato %1 è introvabile" -#: html/Admin/Elements/EditCustomFields:196 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "Campo Personalizzato cancellato" -#: lib/RT/Ticket_Overlay.pm:3576 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "Il campo personalizzato è introvabile" +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) -#: lib/RT/CustomField_Overlay.pm:349 msgid "Custom field value %1 could not be found for custom field %2" msgstr "Il valore del campo personalizzato %1 non è stato possibile trovarlo per il campo personalizzato %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Custom field value changed from %1 to %2" msgstr "Il valore del campo personalizzato è stato modificato da %1 à %2" -#: lib/RT/CustomField_Overlay.pm:249 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "Il valore del campo personalizzato non è stato possibile eliminarlo" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "Il valore del campo personalizzato non è stato possibile trovarlo" -#: lib/RT/CustomField_Overlay.pm:247 -#: lib/RT/CustomField_Overlay.pm:357 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "Il valore del vampo personalizzato è stato eliminato" -#: lib/RT/Transaction_Overlay.pm:547 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "CampoPersonalizzato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Data error" msgstr "Errore nei dati" -#: html/SelfService/Display.html:38 -#: html/Ticket/Create.html:160 -#: html/Ticket/Elements/ShowSummary:54 -#: html/Ticket/Elements/Tabs:92 -#: html/Ticket/ModifyAll.html:43 +#: 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 "Date" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:422 msgid "Dec." msgstr "Dic." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "December" msgstr "Dicembre" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Default Autoresponse Template" msgstr "Modello di default per la risposta automatica" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Modello di default per la risposta automatica" -#: etc/initialdata:281 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "Modello di default per il commento amministrativo" -#: etc/initialdata:260 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "Modello di default per la corrispondenza amministrativa" -#: etc/initialdata:272 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "Modello di default per la corrispondenza" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "Modello di default per la transazione" +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) -#: lib/RT/Transaction_Overlay.pm:642 msgid "Default: %1/%2 changed from %3 to %4" msgstr "Defaut: %1/%2 modificato da %3 à %4" -#: html/User/Delegation.html:24 -#: html/User/Delegation.html:27 +#: html/User/Delegation.html:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "Delega i diritti" @@ -1871,44 +1865,47 @@ msgstr "DelegaDiritti" msgid "Delegation" msgstr "Delega" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "Elimina" -#: lib/RT/Queue_Overlay.pm:89 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "Elimina dei tickets" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "EliminaTicket" -#: lib/RT/Transaction_Overlay.pm:186 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "Eliminare quest'oggetto può interrompere l'integrità referenziale" -#: lib/RT/Queue_Overlay.pm:291 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "Eliminare quest'oggetto interomperà l'integrità referenziale" -#: lib/RT/User_Overlay.pm:437 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "Eliminare quest'oggetto violerà l'integrità referenziale" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Deleting this object would violate referential integrity." msgstr "Eliminare quest'oggetto violerà l'integrità referenziale" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Deleting this object would violate referential integrity. That's bad." msgstr "Eliminare quest'oggetto violerà l'integrità referenziale. Malissimo!" @@ -1916,78 +1913,75 @@ msgstr "Eliminare quest'oggetto violerà l'integrità referenziale. Malissimo!" msgid "Deny" msgstr "Negare" -#: html/Ticket/Create.html:180 -#: html/Ticket/Elements/EditLinks:122 -#: html/Ticket/Elements/EditLinks:46 -#: html/Ticket/Elements/ShowDependencies:31 -#: html/Ticket/Elements/ShowLinks:36 +#: 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 "Usato come dipendenza da" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Dependencies: \\n" msgstr "Dipendenze : \\n" -#: html/Elements/SelectLinkType:26 -#: html/Ticket/Create.html:179 -#: html/Ticket/Elements/EditLinks:118 -#: html/Ticket/Elements/EditLinks:35 -#: html/Ticket/Elements/ShowDependencies:24 -#: html/Ticket/Elements/ShowLinks:26 +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "Dipende da" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "DependsOn" msgstr "DipendeDa" -#: html/Elements/SelectSortOrder:34 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "Discendente" -#: html/SelfService/Create.html:72 -#: html/Ticket/Create.html:118 +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 msgid "Describe the issue below" msgstr "Descrivere il problema qui sotto" -#: html/Admin/Elements/AddCustomFieldValue:35 -#: html/Admin/Elements/EditCustomField:38 -#: html/Admin/Elements/EditScrip:33 -#: html/Admin/Elements/ModifyQueue:35 -#: html/Admin/Elements/ModifyTemplate:35 -#: html/Admin/Groups/Modify.html:48 -#: html/Admin/Queues/Modify.html:47 -#: html/Elements/SelectGroups:26 -#: html/User/Groups/Modify.html:48 +#: 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 "Descrizione" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Details" msgstr "Dettagli" -#: html/Ticket/Elements/Tabs:84 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "Mostra" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "Mostra la Lista Controllo Accessi" -#: lib/RT/Queue_Overlay.pm:74 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "Mostra i modelli di Scrips per questa coda" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "Mostra gli Scrips per questa coda" @@ -1995,13 +1989,18 @@ msgstr "Mostra gli Scrips per questa coda" msgid "Display mode" msgstr "Modalità visualizzazione" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Mostra il ticket n°%1" +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + #: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "Fare di tutto e non importa cosa" @@ -2010,73 +2009,77 @@ msgstr "Fare di tutto e non importa cosa" msgid "Don't refresh this page." msgstr "Non aggiornare questa pagina." -#: html/Search/Elements/PickRestriction:113 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "Non mostrare i risultati della ricerca" -#: html/Ticket/Elements/ShowTransaction:104 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "Download" -#: html/Elements/SelectDateType:31 -#: html/Ticket/Create.html:166 -#: html/Ticket/Elements/EditDates:44 -#: html/Ticket/Elements/ShowDates:42 -#: lib/RT/Ticket_Overlay.pm:1170 +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download as a tab-delimited file" +msgstr "" + +#: 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 "Termine" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Due date '%1' could not be parsed" msgstr "La data termine '%1' non è stata interpretata" -#. ($1, $msg) -#: bin/rt-commit-handler:753 +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "ERRORE: impossibile caricare il ticket '%1' : %2.\\n" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Edit" msgstr "Modifica" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Edit Conditions" msgstr "Modifica Condizioni" +#: html/Admin/Queues/CustomFields.html:45 #. ($Queue->Name) -#: html/Admin/Queues/CustomFields.html:44 msgid "Edit Custom Fields for %1" msgstr "Modifica i Campi Personalizzati per %1" -#: html/Ticket/ModifyLinks.html:35 -msgid "Edit Relationships" +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "Modifica Relazioni" -#. ($QueueObj->Name) +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit Relationships" +msgstr "" + #: html/Admin/Queues/Templates.html:41 +#. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Modifica i modelli per la coda %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Edit keywords" msgstr "Modifica parole chiave" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "Modifica scrips" @@ -2084,78 +2087,75 @@ msgstr "Modifica scrips" msgid "Edit system templates" msgstr "Modifca i modelli di sistema" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Edit templates for %1" msgstr "Modifica i modelli per %1" +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) -#: html/Admin/Elements/ModifyQueue:24 -#: html/Admin/Queues/Modify.html:117 msgid "Editing Configuration for queue %1" msgstr "Modifica la Configurazione per la coda %1" -#. ($UserObj->Name) -#: html/Admin/Elements/ModifyUser:24 +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "Modifica la Configurazione per l'utente %1" -#. ($CustomFieldObj->Name()) #: html/Admin/Elements/EditCustomField:90 +#. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Modifica il CampoPersonalizzato %1" -#. ($Group->Name) #: html/Admin/Groups/Members.html:31 +#. ($Group->Name) msgid "Editing membership for group %1" msgstr "Modifica i membri per il gruppo %1" -#. ($Group->Name) #: html/User/Groups/Members.html:128 +#. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Modifica i membri per il gruppo personale %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Editing template %1" msgstr "Modifica il modello %1" -#: lib/RT/Ticket_Overlay.pm:2621 -#: lib/RT/Ticket_Overlay.pm:2689 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "Uno almeno tra base e target deve essere specificato" -#: html/Admin/Users/Modify.html:52 -#: html/Admin/Users/Prefs.html:45 -#: html/Elements/SelectUsers:26 -#: html/Ticket/Elements/AddWatchers:55 -#: html/User/Prefs.html:41 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "Email" -#: lib/RT/User_Overlay.pm:187 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "Inidirizzo email in uso" -#: html/Admin/Elements/ModifyUser:41 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "IndirizzoEmail" -#: html/Admin/Elements/ModifyUser:53 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "EmailEncoding" +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + #: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Abilitato (Togliere il segno di spunta disabilita questo campo personalizzato)" -#: html/Admin/Groups/Modify.html:52 -#: html/User/Groups/Modify.html:52 +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 msgid "Enabled (Unchecking this box disables this group)" msgstr "Abilitato (Togliere il segno di spunta disabilita questo gruppo)" @@ -2163,7 +2163,11 @@ msgstr "Abilitato (Togliere il segno di spunta disabilita questo gruppo)" msgid "Enabled (Unchecking this box disables this queue)" msgstr "Abilitato (Togliere il segno di spunta disabilita questa coda)" -#: html/Admin/Elements/EditCustomFields:98 +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Campi Personalizzati Abilitati" @@ -2171,69 +2175,104 @@ msgstr "Campi Personalizzati Abilitati" msgid "Enabled Queues" msgstr "Code Abilitate" +#: 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)) -#: html/Admin/Elements/EditCustomField:106 -#: html/Admin/Groups/Modify.html:116 -#: html/Admin/Queues/Modify.html:139 -#: html/Admin/Users/Modify.html:282 -#: html/User/Groups/Modify.html:116 msgid "Enabled status %1" msgstr "Stato %1 abilitato" -#: lib/RT/CustomField_Overlay.pm:427 +#: NOT FOUND IN SOURCE +msgid "Enabled status: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "Inserire valori multipli" -#: lib/RT/CustomField_Overlay.pm:424 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "Inserire un valore" -#: html/Ticket/Elements/EditLinks:111 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Inserire tickets o URI di tickets da collegare. Separare più valori con spazi." -#: html/Elements/Login:38 -#: html/SelfService/Error.html:24 -#: html/SelfService/Error.html:25 +#: NOT FOUND IN SOURCE +msgid "Enter up to %1 values" +msgstr "" + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "Errore" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Error adding watcher" msgstr "Errore cercando di aggiungere un osservatore" -#: lib/RT/Queue_Overlay.pm:554 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "Errore nei parametri di Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:712 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "Errore nei parametri di Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1355 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Errore nei parametri di Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1531 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "Errore nei parametri di Ticket->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "Chiunque" -#: bin/rt-crontool:193 +#: bin/rt-crontool:190 msgid "Example:" msgstr "Esempio:" -#: html/Admin/Elements/ModifyUser:63 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "ExternalAuthId" -#: html/Admin/Elements/ModifyUser:57 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "ExternalContactInfoId" @@ -2241,106 +2280,121 @@ msgstr "ExternalContactInfoId" msgid "Extra info" msgstr "Informazioni aggiuntive" -#: lib/RT/User_Overlay.pm:301 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Impossibile trovare il pseudogruppo 'Privilegiato' di utenti." -#: lib/RT/User_Overlay.pm:308 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Impossibile trovare il pseudogruppo 'Non Privilegiato' di utenti." +#: bin/rt-crontool:134 #. ($modname, $@) -#: bin/rt-crontool:137 msgid "Failed to load module %1. (%2)" msgstr "Errore nel caricare il modulo %1. (%2)" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:412 msgid "Feb." msgstr "Feb." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "February" msgstr "Febbraio" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in multiple text areas" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in one text area" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in up to %1 text areas" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Fin" msgstr "Fin" -#: html/Ticket/Create.html:154 -#: html/Ticket/Elements/EditBasics:58 -#: lib/RT/Tickets_Overlay.pm:1090 +#: 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 "Priorità Finale" -#: lib/RT/Ticket_Overlay.pm:1161 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "PrioritàFinale" -#: html/Admin/Queues/People.html:60 -#: html/Ticket/Elements/EditPeople:33 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "Cerca il gruppo che" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Find groups whose" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "Cerca tickets nuovi/aperti" -#: html/Admin/Queues/People.html:56 -#: html/Admin/Users/index.html:45 -#: html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "Cerca le persone che" -#: html/Search/Listing.html:107 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "Cerca tickets" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Finish Approval" msgstr "Approvazione Finale" -#: html/Ticket/Elements/Tabs:57 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "Primo" -#: html/Search/Listing.html:40 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "Prima Pagina" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "Foo Bar Baz" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:86 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "Forza il cambiamento" +#: html/Search/Results.html:70 #. ($ticketcount) -#: html/Search/Listing.html:105 msgid "Found %quant(%1,ticket)" msgstr "Trovati %quant(%1,ticket)" -#: lib/RT/Interface/Web.pm:901 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "Trovato Oggetto" -#: html/Admin/Elements/ModifyUser:43 +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FreeformContactInfo" @@ -2352,178 +2406,159 @@ msgstr "FreeformMultiple" msgid "FreeformSingle" msgstr "FreeformSingle" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:392 msgid "Fri." msgstr "Gio." -#: html/Ticket/Elements/ShowHistory:40 -#: html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 msgid "Full headers" msgstr "Intestazioni Estese" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "Sto prendendo l'utente corrente da una firma pgp\\n" +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) -#: lib/RT/Transaction_Overlay.pm:592 msgid "Given to %1" msgstr "Assegnato a %1" -#: html/Admin/Elements/Tabs:40 -#: html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 msgid "Global" msgstr "Globale" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Global Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "Selezione Globale delle Parole Chiave" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Global Scrips" msgstr "Scrips Globali" -#. (loc($Template->Name)) #: html/Admin/Elements/SelectTemplate:37 +#. (loc($Template->Name)) msgid "Global template: %1" msgstr "Modello globale: %1" -#: html/Admin/Elements/EditCustomFields:74 -#: 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:40 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "Vai!" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Good pgp sig from %1\\n" msgstr "Firma pgp valida da %1\\n" -#: html/Search/Listing.html:49 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "Vai a pagina" -#: html/Elements/GotoTicket:24 -#: html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "Vai al ticket" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Grand" msgstr "Grand" -#: html/Ticket/Elements/AddWatchers:45 -#: html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "Gruppo" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Group %1 %2: %3" msgstr "Gruppo %1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 -#: html/Admin/Elements/QueueTabs:56 -#: html/Admin/Elements/SystemTabs:43 -#: html/Admin/Global/index.html:54 +#: 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 "Diritti di Gruppo" -#: lib/RT/Group_Overlay.pm:964 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "Il gruppo ha già il membro" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Group could not be created." msgstr "Il gruppo non può essere creato." -#. ($create_msg) #: html/Admin/Groups/Modify.html:76 +#. ($create_msg) msgid "Group could not be created: %1" msgstr "Il gruppo non può essere creato: %1" -#: lib/RT/Group_Overlay.pm:496 +#: lib/RT/Group_Overlay.pm:497 msgid "Group created" msgstr "Gruppo creato" -#: lib/RT/Group_Overlay.pm:1132 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "Il gruppo non ho questo membro" -#: lib/RT/Group_Overlay.pm:944 -#: lib/RT/Queue_Overlay.pm:627 -#: lib/RT/Queue_Overlay.pm:687 -#: lib/RT/Ticket_Overlay.pm:1428 -#: lib/RT/Ticket_Overlay.pm:1506 +#: 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 "Gruppo non trovato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Group not found.\\n" msgstr "Gruppo non trovato.\\n" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Group not specified.\\n" msgstr "Gruppo non specificato.\\n" -#: 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 +#: 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 "Gruppi" -#: lib/RT/Group_Overlay.pm:970 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "I gruppi non possono essere membri dei loro membri" -#: lib/RT/Interface/CLI.pm:72 +#: NOT FOUND IN SOURCE +msgid "Groups matching search criteria" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Groups this user belongs to" +msgstr "" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "Ciao!" +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) -#: docs/design_docs/string-extraction-guide.txt:40 msgid "Hello, %1" msgstr "Ciao, %1" -#: html/Ticket/Elements/ShowHistory:29 -#: html/Ticket/Elements/Tabs:87 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "Storia" -#: html/Admin/Elements/ModifyUser:67 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the user %1" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "TelefonoCasa" @@ -2531,55 +2566,67 @@ msgstr "TelefonoCasa" msgid "Homepage" msgstr "Homepage" +#: lib/RT/Base.pm:86 #. (6) -#: lib/RT/Base.pm:73 msgid "I have %quant(%1,concrete mixer)." msgstr "Ho %quant(%1,concrete mixer)." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "I have [quant,_1,concrete mixer]." msgstr "Ho [quant,_1,concrete mixer]." -#: html/Ticket/Elements/ShowBasics:26 -#: lib/RT/Tickets_Overlay.pm:1017 +#: 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 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "Identità" -#: etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Se una richiesta di approvazione è rifiutata, rifiuta l'originale e elimina le richieste di approvazione pendenti" -#: bin/rt-crontool:189 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "Se questo strumento viene utilizzato con setgid, un utente locale mlintenzionato può usrae questo strumento per ottenere accesso amministrativo su RT." -#: html/Admin/Queues/People.html:104 -#: html/Ticket/Modify.html:38 -#: html/Ticket/ModifyAll.html:93 -#: html/Ticket/ModifyPeople.html:37 +#: 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 "Se hai aggiornato qualchecosa qui sopra, assicurati di" -#: lib/RT/Interface/Web.pm:893 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "Valore non valido per %1" -#: lib/RT/Interface/Web.pm:896 +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "" + +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "Campo immutabile" -#: html/Admin/Elements/EditCustomFields:73 +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Includi nella lista i campi personalizzati disabilitati." +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + #: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "Includi nella lista le code disabilitate." @@ -2588,36 +2635,32 @@ msgstr "Includi nella lista le code disabilitate." msgid "Include disabled users in search." msgstr "Includi nella ricerca gli utenti disabilitati." -#: lib/RT/Tickets_Overlay.pm:1066 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "Priorità Iniziale" -#: lib/RT/Ticket_Overlay.pm:1160 -#: lib/RT/Ticket_Overlay.pm:1162 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "PrioritàIniziale" -#: lib/RT/ScripAction_Overlay.pm:104 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "Errore in Input" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Interest noted" msgstr "Interesse annotato" -#: lib/RT/Ticket_Overlay.pm:3795 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "Errore Interno" +#: lib/RT/Record.pm:186 #. ($id->{error_message}) -#: lib/RT/Record.pm:142 msgid "Internal Error: %1" msgstr "Errore Interno: %1" -#: lib/RT/Group_Overlay.pm:643 +#: lib/RT/Group_Overlay.pm:644 msgid "Invalid Group Type" msgstr "Tipo di Gruppo non valido" @@ -2625,132 +2668,116 @@ msgstr "Tipo di Gruppo non valido" msgid "Invalid Right" msgstr "Diritto non valido" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Invalid Type" msgstr "Tipo non valido" -#: lib/RT/Interface/Web.pm:898 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "Dati non validi" -#: lib/RT/Ticket_Overlay.pm:438 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Proprietraio non valido. Verrà usato il default 'nobody'." -#: lib/RT/Scrip_Overlay.pm:133 -#: lib/RT/Template_Overlay.pm:250 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "Coda non valida" -#: 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 +#: 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 "Diritto non valido" +#: lib/RT/Record.pm:161 #. ($key) -#: lib/RT/Record.pm:117 msgid "Invalid value for %1" msgstr "Valore non valido per %1" -#: lib/RT/Ticket_Overlay.pm:3433 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "Valore non valido per il campo personalizzato" -#: lib/RT/Ticket_Overlay.pm:345 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "Valore non valido per lo stato" -#: bin/rt-crontool:190 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "E' estremamente importante che agli utenti non previlegiati non sia consentito eseguire questo strumento." -#: bin/rt-crontool:191 +#: 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 suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." -#: bin/rt-crontool:162 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "Richide molteplici argomenti:" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Items pending my approval" msgstr "Oggetti in attesa della mia approvazione" -#: lib/RT/Date.pm:410 +#: lib/RT/Date.pm:411 msgid "Jan." msgstr "Gen." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "January" msgstr "Gennaio" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:149 msgid "Join or leave this group" msgstr "Unisciti o lascia questo gruppo" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:417 msgid "Jul." msgstr "Lug." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "July" msgstr "Luglio" -#: html/Ticket/Elements/Tabs:98 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "Jumbo" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:416 msgid "Jun." msgstr "Giu." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "June" msgstr "Giugno" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Keyword" msgstr "Parola chiave" -#: html/Admin/Elements/ModifyUser:51 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "Linguaggio" -#: html/Ticket/Elements/Tabs:72 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "Ultimo" -#: html/Ticket/Elements/EditDates:37 -#: html/Ticket/Elements/ShowDates:38 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "Ultimo Contatto" +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + #: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "Ultimo Contatto" -#: html/Search/Elements/TicketHeader:40 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "Ultima Notifica" @@ -2758,17 +2785,15 @@ msgstr "Ultima Notifica" msgid "Last Updated" msgstr "Ultimo Aggiornamento" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "LastUpdated" msgstr "UltimoAggiornamento" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "Rimasti" @@ -2780,130 +2805,135 @@ msgstr "Consenti a questo utente di accedere a RT" msgid "Let this user be granted rights" msgstr "Concedi a questo utente che gli vengano assegnati i diritti" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Limiting owner to %1 %2" msgstr "Limitare il proprietario %1 %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Limiting queue to %1 %2" msgstr "Limitare la coda a %1 %2" -#: lib/RT/Ticket_Overlay.pm:2703 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "Il collegamento già esiste" -#: lib/RT/Ticket_Overlay.pm:2715 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "Il collegamento non può essere creato" +#: lib/RT/Record.pm:1106 #. ($TransString) -#: lib/RT/Ticket_Overlay.pm:2723 -#: lib/RT/Ticket_Overlay.pm:2733 msgid "Link created (%1)" msgstr "Collegamento creato (%1)" +#: lib/RT/Record.pm:1167 #. ($TransString) -#: lib/RT/Ticket_Overlay.pm:2644 msgid "Link deleted (%1)" msgstr "Collegamento eliminato (%1)" -#: lib/RT/Ticket_Overlay.pm:2650 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "Collegamento non trovato" +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 #. ($Ticket->Id) -#: html/Ticket/ModifyLinks.html:24 -#: html/Ticket/ModifyLinks.html:28 msgid "Link ticket #%1" msgstr "Collega ticket n°%1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Link ticket %1" msgstr "Collega ticket %1" -#: html/Ticket/Elements/Tabs:96 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "Collegamenti" -#: html/Admin/Users/Modify.html:113 -#: html/User/Prefs.html:84 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "Località" +#: lib/RT.pm:184 #. ($RT::LogDir) -#: lib/RT.pm:159 -msgid "" -"Log directory %1 not found or couldn't be written.\\n" -" RT can't run." +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "" -"Directory di log %1 non trovata o non scrivibile.\\n" -" RT non può essere eseguito." +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") -#: html/Elements/Header:56 msgid "Logged in as %1" msgstr "Collegato come %1" -#: docs/design_docs/string-extraction-guide.txt:71 -#: html/Elements/Login:34 -#: html/Elements/Login:43 -#: html/Elements/Login:53 +#: 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 "Collegamento" -#: html/Elements/Header:53 +#: html/Elements/Header:66 msgid "Logout" msgstr "Scollegati" -#: html/Search/Bulk.html:85 +#: NOT FOUND IN SOURCE +msgid "Lookup type mismatch" +msgstr "" + +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "Crea Proprietario" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "Crea Stato" -#: html/Search/Bulk.html:108 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "Crea data Scadenza" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "Crea data Risolto" -#: html/Search/Bulk.html:106 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "Crea data Iniziato" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "Crea data Inizia" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "Crea data Detto" -#: html/Search/Bulk.html:98 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "Crea priorità" -#: html/Search/Bulk.html:99 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "Crea coda" -#: html/Search/Bulk.html:97 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "Crea oggetto" +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Manage custom fields and custom field values" +msgstr "" + #: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "Gestisci i gruppi e le appartenenze" @@ -2920,37 +2950,41 @@ msgstr "Gestisci le code e le propietà specifiche delle code" msgid "Manage users and passwords" msgstr "Gestisci gli utenti e le password" -#: lib/RT/Date.pm:412 +#: lib/RT/Date.pm:413 msgid "Mar." msgstr "Mar." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "March" msgstr "Marzo" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "May" msgstr "Maggio" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:415 msgid "May." msgstr "Mag." -#: lib/RT/Group_Overlay.pm:981 +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "Aggiunto membro" -#: lib/RT/Group_Overlay.pm:1139 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "Eliminato membro" -#: lib/RT/Group_Overlay.pm:1143 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "Membro non eliminato" @@ -2958,87 +2992,143 @@ msgstr "Membro non eliminato" msgid "Member of" msgstr "Membro di" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "MemberOf" msgstr "MembroDi" -#: html/Admin/Elements/GroupTabs:41 -#: html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "Membri" -#: lib/RT/Ticket_Overlay.pm:2890 +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships of the user %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "Unione avvenuta con Successo" -#: lib/RT/Ticket_Overlay.pm:2810 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Unione fallita. Impossibile impostare EffectiveId" -#: html/Ticket/Elements/EditLinks:114 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "Unisci in" -#: html/Ticket/Update.html:101 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "Messaggio" -#: lib/RT/Interface/Web.pm:900 +#: NOT FOUND IN SOURCE +msgid "Message body not shown because it is too large or is not plain text." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "Manca una chiave primaria?: %1" -#: html/Admin/Users/Modify.html:168 -#: html/User/Prefs.html:53 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "Cellulare" -#: html/Admin/Elements/ModifyUser:71 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "TelefonoCellulare" -#: lib/RT/Queue_Overlay.pm:69 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "Modifca la Lista Controllo Accessi" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Modify Custom Field %1" msgstr "Modifica il Campo Personalizzato %1" -#: html/Admin/Global/CustomFields.html:43 -#: html/Admin/Global/index.html:50 +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all %1" +msgstr "" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "Modifica i Campi Personalizzati validi per tutte le code" -#: lib/RT/Queue_Overlay.pm:72 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "Modifica i modelli di Scips per questa coda" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "Modifica gli Scrips per questa coda" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Modify System ACLS" msgstr "Modifica le LCA di Sistema" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Modify Template %1" msgstr "Modifica il Modello %1" -#. ($QueueObj->Name()) +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + #: html/Admin/Queues/CustomField.html:44 +#. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "Modifica un CampoPersonalizzato per la coda %1" @@ -3046,8 +3136,8 @@ msgstr "Modifica un CampoPersonalizzato per la coda %1" msgid "Modify a CustomField which applies to all queues" msgstr "Modifica un CampoPersonalizzato valido per tutte le code" -#. ($QueueObj->Name) #: html/Admin/Queues/Scrip.html:53 +#. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Modifica uno scrip per la coda %1" @@ -3055,27 +3145,29 @@ msgstr "Modifica uno scrip per la coda %1" msgid "Modify a scrip which applies to all queues" msgstr "Modifica uno scrip valido per tutte le code" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify associated objects for %1" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "Modifica le date per n° %1" +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 #. ($TicketObj->Id) -#: html/Ticket/ModifyDates.html:24 -#: html/Ticket/ModifyDates.html:28 msgid "Modify dates for #%1" msgstr "Modifica le date per n°%1" -#. ($TicketObj->Id) #: html/Ticket/ModifyDates.html:34 +#. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Modifica le date per il ticket n° %1" -#: html/Admin/Global/GroupRights.html:24 -#: html/Admin/Global/GroupRights.html:27 -#: html/Admin/Global/index.html:55 +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 msgid "Modify global group rights" msgstr "Modifica i diritti di gruppo globali" @@ -3083,30 +3175,19 @@ msgstr "Modifica i diritti di gruppo globali" msgid "Modify global group rights." msgstr "Modifica i diritti di gruppo globali." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Modify global rights for groups" msgstr "Modifica i diritti di gruppo globali" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Modify global rights for users" msgstr "Modifica i diritti globali per gli utenti" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Modify global scrips" msgstr "Modifica gli scrips globali" -#: html/Admin/Global/UserRights.html:24 -#: html/Admin/Global/UserRights.html:27 -#: html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 msgid "Modify global user rights" msgstr "Modifica i diritti globali per gli utenti" @@ -3114,24 +3195,25 @@ msgstr "Modifica i diritti globali per gli utenti" msgid "Modify global user rights." msgstr "Modifica i diritti globali per gli utenti." -#: lib/RT/Group_Overlay.pm:145 +#: lib/RT/Group_Overlay.pm:146 msgid "Modify group metadata or delete group" msgstr "Modifica i metadati di gruppo o elimina un gruppo" +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 #. ($GroupObj->Name) -#: html/Admin/Groups/GroupRights.html:24 -#: html/Admin/Groups/GroupRights.html:28 -#: html/Admin/Groups/GroupRights.html:34 msgid "Modify group rights for group %1" msgstr "Modifica i diritti di gruppo per il gruppo %1" +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) -#: html/Admin/Queues/GroupRights.html:24 -#: html/Admin/Queues/GroupRights.html:28 msgid "Modify group rights for queue %1" msgstr "Modifica i diritti di gruppo per la coda %1" -#: lib/RT/Group_Overlay.pm:147 +#: lib/RT/Group_Overlay.pm:148 msgid "Modify membership roster for this group" msgstr "Modofica i membri di questo gruppo" @@ -3139,36 +3221,29 @@ msgstr "Modofica i membri di questo gruppo" msgid "Modify one's own RT account" msgstr "Modifica il proprio account RT" +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 #. ($QueueObj->Name) -#: html/Admin/Queues/People.html:24 -#: html/Admin/Queues/People.html:28 msgid "Modify people related to queue %1" msgstr "Modifica le persone relative alla coda %1" +#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 #. ($Ticket->id) #. ($Ticket->Id) -#: html/Ticket/ModifyPeople.html:24 -#: html/Ticket/ModifyPeople.html:28 -#: html/Ticket/ModifyPeople.html:34 msgid "Modify people related to ticket #%1" msgstr "Modifica le persone relative al ticket n°%1" +#: html/Admin/Queues/Scrips.html:45 #. ($QueueObj->Name) -#: html/Admin/Queues/Scrips.html:43 msgid "Modify scrips for queue %1" msgstr "Modifica gli scrips per la coda %1" -#: html/Admin/Global/Scrips.html:43 -#: html/Admin/Global/index.html:41 +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 msgid "Modify scrips which apply to all queues" msgstr "Modifica gli scrips validi per tutte le code" +#: 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) -#: html/Admin/Global/Template.html:24 -#: html/Admin/Global/Template.html:29 -#: html/Admin/Global/Template.html:80 -#: html/Admin/Queues/Template.html:77 msgid "Modify template %1" msgstr "Modifica modello %1" @@ -3176,70 +3251,65 @@ msgstr "Modifica modello %1" msgid "Modify templates which apply to all queues" msgstr "Modifica i modelli validi per tutte le code" +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 #. ($Group->Name) -#: html/Admin/Groups/Modify.html:86 -#: html/User/Groups/Modify.html:85 msgid "Modify the group %1" msgstr "Modifica il gruppo %1" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "Modifica gli osservatori della coda" +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) -#: html/Admin/Users/Modify.html:235 msgid "Modify the user %1" msgstr "Modifica l'utente %1" -#. ($Ticket->Id) #: html/Ticket/ModifyAll.html:36 +#. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Modifica il ticket n° %1" +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 #. ($TicketObj->Id) -#: html/Ticket/Modify.html:24 -#: html/Ticket/Modify.html:27 -#: html/Ticket/Modify.html:33 msgid "Modify ticket #%1" msgstr "Modifica il ticket n°%1" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "Modifica i tickets" +#: NOT FOUND IN SOURCE +msgid "Modify user rights for custom field %1" +msgstr "" + +#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 #. ($GroupObj->Name) -#: html/Admin/Groups/UserRights.html:24 -#: html/Admin/Groups/UserRights.html:28 -#: html/Admin/Groups/UserRights.html:34 msgid "Modify user rights for group %1" msgstr "Modifica i diritti utente per il gruppo %1" +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 #. ($QueueObj->Name) -#: html/Admin/Queues/UserRights.html:24 -#: html/Admin/Queues/UserRights.html:28 msgid "Modify user rights for queue %1" msgstr "Modifica i diritti dell'utente per la coda %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Modify watchers for queue '%1'" msgstr "Modifica gli osservatori per la coda '%1'" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "ModificaLCA" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:149 msgid "ModifyOwnMembership" msgstr "ModificaPropriaAppartenenza" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "ModificaOsservatoriCoda" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "ModificaScrips" @@ -3247,23 +3317,27 @@ msgstr "ModificaScrips" msgid "ModifySelf" msgstr "ModificaSeStesso" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "ModificaModello" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "ModificaTicket" -#: lib/RT/Date.pm:387 +#: lib/RT/Date.pm:388 msgid "Mon." msgstr "Lun." +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) -#: html/Ticket/Elements/ShowRequestor:41 msgid "More about %1" msgstr "Altre info su %1" +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "" + #: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "Move down" @@ -3276,50 +3350,44 @@ msgstr "Move up" msgid "Multiple" msgstr "Multiple" -#: lib/RT/User_Overlay.pm:178 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "Must specify 'Name' attribute" -#. ($friendly_status) #: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) msgid "My %1 tickets" msgstr "I miei%1 tickets" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "Le mie richieste di Approvazione" -#: html/Approvals/index.html:24 -#: html/Approvals/index.html:25 +#: html/Approvals/index.html:24 html/Approvals/index.html:25 msgid "My approvals" msgstr "Le mie richieste di approvazione" -#: html/Admin/Elements/AddCustomFieldValue:31 -#: html/Admin/Elements/EditCustomField:33 -#: html/Admin/Elements/ModifyTemplate:27 -#: html/Admin/Elements/ModifyUser:29 -#: html/Admin/Groups/Modify.html:43 -#: html/Elements/SelectGroups:25 -#: html/Elements/SelectUsers:27 -#: html/User/Groups/Modify.html:43 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "Nome" -#: lib/RT/User_Overlay.pm:185 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "Name in use" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Need approval from system administrator" -#: html/Ticket/Elements/ShowDates:51 +#: html/Ticket/Elements/ShowDates:52 msgid "Never" msgstr "Never" @@ -3327,34 +3395,43 @@ msgstr "Never" msgid "New" msgstr "Nuovo" -#: html/Admin/Elements/ModifyUser:31 -#: html/Admin/Users/Modify.html:92 -#: html/User/Prefs.html:64 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "New Relationships" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "Nuova Password" -#: etc/initialdata:317 -#: etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "New Pending Approval" -#: html/Ticket/Elements/EditLinks:110 +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "New Relationships" -msgstr "New Relationships" +msgstr "" -#: html/Ticket/Elements/Tabs:35 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "Nuova Ricerca" -#: html/Admin/Global/CustomField.html:40 -#: html/Admin/Global/CustomFields.html:38 -#: html/Admin/Queues/CustomField.html:51 -#: html/Admin/Queues/CustomFields.html:39 +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + +#: 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 "Nuovo campo Personalizzato" -#: html/Admin/Elements/GroupTabs:53 -#: html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 msgid "New group" msgstr "Nuovo gruppo" @@ -3362,7 +3439,7 @@ msgstr "Nuovo gruppo" msgid "New password" msgstr "Nuova password" -#: lib/RT/User_Overlay.pm:646 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "New password notification sent" @@ -3370,10 +3447,7 @@ msgstr "New password notification sent" msgid "New queue" msgstr "Nuova coda" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "New request" msgstr "Nuova richiesta" @@ -3381,24 +3455,15 @@ msgstr "Nuova richiesta" msgid "New rights" msgstr "Nuovi diritti" -#: html/Admin/Global/Scrip.html:39 -#: html/Admin/Global/Scrips.html:38 -#: html/Admin/Queues/Scrip.html:42 -#: html/Admin/Queues/Scrips.html:52 +#: 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 "Nuovo scrip" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "New search" msgstr "Nuova ricerca" -#: html/Admin/Global/Template.html:59 -#: html/Admin/Global/Templates.html:38 -#: html/Admin/Queues/Template.html:57 -#: html/Admin/Queues/Templates.html:49 +#: 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 "Nuovo modello" @@ -3406,11 +3471,11 @@ msgstr "Nuovo modello" msgid "New ticket" msgstr "Nuovo ticket" -#: lib/RT/Ticket_Overlay.pm:2777 +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "Il nuovo ticket non esiste" -#: html/Admin/Elements/UserTabs:51 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "Nuovo utente" @@ -3418,140 +3483,144 @@ msgstr "Nuovo utente" msgid "New user called" msgstr "New user called" -#: html/Admin/Queues/People.html:54 -#: html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 msgid "New watchers" msgstr "Nuovo osservatore" -#: html/Admin/Users/Prefs.html:41 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "New window setting" -#: html/Ticket/Elements/Tabs:68 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "Succesivo" -#: html/Search/Listing.html:47 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "Pagina succesiva" -#: html/Admin/Elements/ModifyUser:49 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "NickName" -#: html/Admin/Users/Modify.html:62 -#: html/User/Prefs.html:45 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "Soprannome" -#: html/Admin/Elements/EditCustomField:89 -#: html/Admin/Elements/EditCustomFields:104 +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "No CustomField" -#: html/Admin/Groups/GroupRights.html:83 -#: html/Admin/Groups/UserRights.html:70 +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "No Group defined" -#: html/Admin/Queues/GroupRights.html:95 -#: html/Admin/Queues/UserRights.html:67 +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "No Queue defined" -#: bin/rt-crontool:55 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "No RT user found. Please consult your RT administrator.\\n" -#: html/Admin/Global/Template.html:78 -#: html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 msgid "No Template" msgstr "Nessun Modello" -#: bin/rt-commit-handler:763 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "No Ticket specified. Aborting ticket " -#: NOT -#: FOUND -#: IN -#: SOURCE -msgid "" -"No Ticket specified. Aborting ticket modifications\\n" -"\\n" +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "" -"No Ticket specified. Aborting ticket modifications\\n" -"\\n" #: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "No action" -#: lib/RT/Interface/Web.pm:895 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "No column specified" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "No command found\\n" msgstr "No command found\\n" -#: html/Elements/ViewUser:35 -#: html/Ticket/Elements/ShowRequestor:44 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "No comment entered about this user" -#: lib/RT/Ticket_Overlay.pm:2188 -#: lib/RT/Ticket_Overlay.pm:2256 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "No correspondence attached" +#: 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) -#: lib/RT/Action/Generic.pm:149 -#: lib/RT/Condition/Generic.pm:175 -#: lib/RT/Search/ActiveTicketsInQueue.pm:55 -#: lib/RT/Search/Generic.pm:112 msgid "No description for %1" msgstr "Nessuna descrizione per %1" -#: lib/RT/Users_Overlay.pm:151 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "No group specified" -#: lib/RT/User_Overlay.pm:864 +#: NOT FOUND IN SOURCE +msgid "No groups matching search criteria found." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "No password set" -#: lib/RT/Queue_Overlay.pm:258 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "No permission to create code" -#. ($QueueObj->Name) -#: lib/RT/Ticket_Overlay.pm:341 +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "No permission to create tickets in the coda '%1'" -#: lib/RT/User_Overlay.pm:151 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "No permission to create users" -#: html/SelfService/Display.html:117 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "No permission to display that ticket" -#: html/SelfService/Update.html:51 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "No permission to view update ticket" -#: lib/RT/Queue_Overlay.pm:674 -#: lib/RT/Ticket_Overlay.pm:1487 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "No principal specified" -#: html/Admin/Queues/People.html:153 -#: html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 msgid "No principals selected." msgstr "No principals selected." @@ -3559,7 +3628,7 @@ msgstr "No principals selected." msgid "No queues matching search criteria found." msgstr "No code matching search criteria found." -#: html/Admin/Elements/SelectRights:80 +#: html/Admin/Elements/SelectRights:81 msgid "No rights found" msgstr "Nessun diritto trovato" @@ -3567,26 +3636,23 @@ msgstr "Nessun diritto trovato" msgid "No rights granted." msgstr "Nessun diritto concesso." -#: html/Search/Bulk.html:148 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "No search to operate on." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "No ticket id specified" -#: lib/RT/Transaction_Overlay.pm:477 -#: lib/RT/Transaction_Overlay.pm:515 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "No transaction type specified" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "No user or email address specified" msgstr "No user or email address specified" @@ -3594,34 +3660,31 @@ msgstr "No user or email address specified" msgid "No users matching search criteria found." msgstr "No users matching search criteria found." -#: bin/rt-commit-handler:643 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" -#: lib/RT/Interface/Web.pm:892 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "No value sent to _Set!\\n" -#: html/Search/Elements/TicketRow:36 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "Nessuno" -#: lib/RT/Interface/Web.pm:897 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "Nonexistant field?" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Not logged in" msgstr "Not logged in" -#: html/Elements/Header:58 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "Non collegato." -#: lib/RT/Date.pm:368 +#: lib/RT/Date.pm:369 msgid "Not set" msgstr "Non valorizzato" @@ -3629,10 +3692,7 @@ msgstr "Non valorizzato" msgid "Not yet implemented." msgstr "Not yet implemented." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Not yet implemented...." msgstr "Not yet implemented...." @@ -3640,132 +3700,169 @@ msgstr "Not yet implemented...." msgid "Notes" msgstr "Notes" -#: lib/RT/User_Overlay.pm:649 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "Notification could not be sent" -#: etc/initialdata:94 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "Notify AdminCcs" -#: etc/initialdata:90 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "Notify AdminCcs as Comment" -#: etc/initialdata:121 +#: 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 "Notify Other Recipients" -#: etc/initialdata:117 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "Notify Other Recipients as Comment" -#: etc/initialdata:86 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "Notify Proprietario" -#: etc/initialdata:82 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "Notify Proprietario as Comment" -#: etc/initialdata:319 -#: etc/upgrade/2.1.71:17 +#: 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 "Notify Proprietari and AdminCcs of new items pending their approval" -#: etc/initialdata:78 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "Notifica al Richiedente" -#: etc/initialdata:104 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "Notifica ai Richiedenti e ai Ccs" -#: etc/initialdata:99 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "Notifica ai Richiedenti e ai Ccs come Commento" -#: etc/initialdata:113 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "Notifica ai Richiedenti, Ccs e AdminCcs" -#: etc/initialdata:109 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Notifica ai Richiedenti, Ccs a AdminCcs come Commento" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:421 msgid "Nov." msgstr "Nov." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "November" msgstr "November" -#: lib/RT/Record.pm:156 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "Object could not be created" -#: lib/RT/Record.pm:175 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "Object created" -#: lib/RT/Date.pm:419 +#: NOT FOUND IN SOURCE +msgid "Object of type %1 cannot take custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Object type mismatch" +msgstr "" + +#: lib/RT/Date.pm:420 msgid "Oct." msgstr "Oct." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "October" msgstr "October" +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + #: html/Elements/SelectDateRelation:34 msgid "On" msgstr "On" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "On Comment" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "On Correspond" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "On Create" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "On Owner Change" -#: etc/initialdata:177 +#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 +msgid "On Priority Change" +msgstr "" + +#: etc/initialdata:192 msgid "On Queue Change" msgstr "On Queue Change" -#: etc/initialdata:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "On Resolve" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "On Status Change" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "On Transaction" -#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") #: 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 "Mostra le approvazioni solo per le richieste create dopo %1" -#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") #: 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 "Mostra le approvazioni solo per le richieste create prima %1" @@ -3773,14 +3870,11 @@ msgstr "Mostra le approvazioni solo per le richieste create prima %1" msgid "Open" msgstr "Aperto" -#: html/Ticket/Elements/Tabs:135 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Aprilo" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Open requests" msgstr "Richieste aperte" @@ -3788,99 +3882,102 @@ msgstr "Richieste aperte" msgid "Open tickets" msgstr "Open tickets" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "Open tickets (from listing) in a new window" -#: html/Admin/Users/Prefs.html:39 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "Open tickets (from listing) in another window" -#: etc/initialdata:133 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "Open tickets on correspondence" -#: html/Search/Elements/PickRestriction:100 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Visualizzazione e Ordinamento" -#: html/Admin/Elements/ModifyUser:45 -#: html/Admin/Users/Modify.html:116 -#: html/Elements/SelectUsers:28 -#: html/User/Prefs.html:85 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "Azienda" -#. ($approving->Id, $approving->Subject) #: html/Approvals/Elements/Approve:32 +#. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Originating ticket: n°%1" -#: html/Admin/Elements/ModifyQueue:54 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + #: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "Se scade il tempo, la priorità sale di" -#: lib/RT/Queue_Overlay.pm:86 +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "Own tickets" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "PossiediTicket" -#: etc/initialdata:38 -#: html/Elements/MyRequests:31 -#: 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:62 -#: lib/RT/ACE_Overlay.pm:85 -#: lib/RT/Tickets_Overlay.pm:1243 +#: 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 "Proprietario" -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) -#: lib/RT/Ticket_Overlay.pm:3070 +#: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" msgstr "Proprietario changed from %1 to %2" +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) -#: lib/RT/Transaction_Overlay.pm:581 msgid "Owner forcibly changed from %1 to %2" msgstr "Owner forcibly changed from %1 to %2" -#: html/Search/Elements/PickRestriction:30 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "Il Proprietario è" -#: html/Admin/Users/Modify.html:173 -#: html/User/Prefs.html:55 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "Pager" -#: html/Admin/Elements/ModifyUser:73 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "PagerPhone" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Parent" msgstr "" -#: html/Ticket/Create.html:181 -#: html/Ticket/Elements/EditLinks:126 -#: html/Ticket/Elements/EditLinks:57 -#: html/Ticket/Elements/ShowLinks:46 +#: 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 "Genitori" -#: html/Elements/Login:51 -#: html/User/Prefs.html:60 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "Password" @@ -3888,107 +3985,36 @@ msgstr "Password" msgid "Password Reminder" msgstr "Password Reminder" -#: lib/RT/User_Overlay.pm:168 -#: lib/RT/User_Overlay.pm:867 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "Password too short" +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) -#: html/Admin/Users/Modify.html:290 -#: html/User/Prefs.html:171 msgid "Password: %1" msgstr "Password: %1" -#: html/Admin/Users/Modify.html:292 +#: html/Admin/Users/Modify.html:318 msgid "Passwords do not match." msgstr "Passwords do not match." -#: html/User/Prefs.html:173 +#: html/User/Prefs.html:211 msgid "Passwords do not match. Your password has not been changed" msgstr "Passwords do not match. Your password has not been changed" -#: html/Ticket/Elements/ShowSummary:44 -#: html/Ticket/Elements/Tabs:95 -#: html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "Persone" -#: etc/initialdata:126 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "Perform a user-defined action" -#: 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/CurrentUser.pm:82 -#: lib/RT/CurrentUser.pm:91 -#: lib/RT/CustomField_Overlay.pm:100 -#: lib/RT/CustomField_Overlay.pm:201 -#: lib/RT/CustomField_Overlay.pm:233 -#: lib/RT/CustomField_Overlay.pm:510 -#: lib/RT/CustomField_Overlay.pm:90 -#: lib/RT/Group_Overlay.pm:1094 -#: lib/RT/Group_Overlay.pm:1098 -#: lib/RT/Group_Overlay.pm:1107 -#: lib/RT/Group_Overlay.pm:1158 -#: lib/RT/Group_Overlay.pm:1162 -#: lib/RT/Group_Overlay.pm:1168 -#: lib/RT/Group_Overlay.pm:425 -#: lib/RT/Group_Overlay.pm:517 -#: lib/RT/Group_Overlay.pm:595 -#: lib/RT/Group_Overlay.pm:603 -#: lib/RT/Group_Overlay.pm:700 -#: lib/RT/Group_Overlay.pm:704 -#: lib/RT/Group_Overlay.pm:710 -#: lib/RT/Group_Overlay.pm:903 -#: lib/RT/Group_Overlay.pm:907 -#: lib/RT/Group_Overlay.pm:920 -#: lib/RT/Queue_Overlay.pm:539 -#: lib/RT/Queue_Overlay.pm:549 -#: lib/RT/Queue_Overlay.pm:563 -#: lib/RT/Queue_Overlay.pm:698 -#: lib/RT/Queue_Overlay.pm:707 -#: lib/RT/Queue_Overlay.pm:720 -#: lib/RT/Queue_Overlay.pm:930 -#: lib/RT/Scrip_Overlay.pm:125 -#: lib/RT/Scrip_Overlay.pm:136 -#: lib/RT/Scrip_Overlay.pm:196 -#: lib/RT/Scrip_Overlay.pm:429 -#: lib/RT/Template_Overlay.pm:283 -#: lib/RT/Template_Overlay.pm:87 -#: lib/RT/Template_Overlay.pm:93 -#: lib/RT/Ticket_Overlay.pm:1340 -#: lib/RT/Ticket_Overlay.pm:1350 -#: lib/RT/Ticket_Overlay.pm:1364 -#: lib/RT/Ticket_Overlay.pm:1517 -#: lib/RT/Ticket_Overlay.pm:1526 -#: lib/RT/Ticket_Overlay.pm:1539 -#: lib/RT/Ticket_Overlay.pm:1874 -#: lib/RT/Ticket_Overlay.pm:2012 -#: lib/RT/Ticket_Overlay.pm:2176 -#: lib/RT/Ticket_Overlay.pm:2243 -#: lib/RT/Ticket_Overlay.pm:2602 -#: lib/RT/Ticket_Overlay.pm:2674 -#: lib/RT/Ticket_Overlay.pm:2768 -#: lib/RT/Ticket_Overlay.pm:2783 -#: lib/RT/Ticket_Overlay.pm:2977 -#: lib/RT/Ticket_Overlay.pm:3205 -#: lib/RT/Ticket_Overlay.pm:3403 -#: lib/RT/Ticket_Overlay.pm:3565 -#: lib/RT/Ticket_Overlay.pm:3617 -#: lib/RT/Ticket_Overlay.pm:3782 -#: lib/RT/Transaction_Overlay.pm:465 -#: lib/RT/Transaction_Overlay.pm:472 -#: lib/RT/Transaction_Overlay.pm:501 -#: lib/RT/Transaction_Overlay.pm:508 -#: lib/RT/User_Overlay.pm:1354 -#: lib/RT/User_Overlay.pm:569 -#: lib/RT/User_Overlay.pm:604 -#: lib/RT/User_Overlay.pm:860 -#: lib/RT/User_Overlay.pm:961 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "Permission Denied" @@ -3996,8 +4022,7 @@ msgstr "Permission Denied" msgid "Personal Groups" msgstr "Gruppi Personali" -#: html/User/Groups/index.html:29 -#: html/User/Groups/index.html:39 +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 msgid "Personal groups" msgstr "Gruppi personali" @@ -4005,80 +4030,69 @@ msgstr "Gruppi personali" msgid "Personal groups:" msgstr "Gruppi personali:" -#: html/Admin/Users/Modify.html:155 -#: html/User/Prefs.html:48 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "Numeri Telefonici" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Placeholder" msgstr "Placeholder" -#: html/Elements/Header:51 -#: html/Elements/Tabs:52 -#: html/SelfService/Elements/Tabs:50 -#: html/SelfService/Prefs.html:24 -#: html/User/Prefs.html:24 -#: html/User/Prefs.html:27 +#: NOT FOUND IN SOURCE +msgid "Pref" +msgstr "" + +#: 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 "Preferenze" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Prefs" msgstr "Prefs" -#: lib/RT/Action/Generic.pm:159 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "Prepare Stubbed" -#: html/Ticket/Elements/Tabs:60 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "Precedente" -#: html/Search/Listing.html:43 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "Previous page" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Pri" msgstr "Pri" +#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 #. ($args{'PrincipalId'}) -#: lib/RT/ACE_Overlay.pm:132 -#: lib/RT/ACE_Overlay.pm:207 -#: lib/RT/ACE_Overlay.pm:551 msgid "Principal %1 not found." msgstr "Principal %1 not found." -#: html/Search/Elements/PickRestriction:53 -#: html/Ticket/Create.html:153 -#: html/Ticket/Elements/EditBasics:53 -#: html/Ticket/Elements/ShowBasics:38 -#: lib/RT/Tickets_Overlay.pm:1041 +#: 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 "Priorità" -#: html/Admin/Elements/ModifyQueue:50 #: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "La priorità inizia da" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "Privilegiato" +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) -#: html/Admin/Users/Modify.html:270 -#: html/User/Prefs.html:162 msgid "Privileged status: %1" msgstr "Stato previlegiato: %1" @@ -4086,93 +4100,73 @@ msgstr "Stato previlegiato: %1" msgid "Privileged users" msgstr "Utenti privilegiati" -#: etc/initialdata:23 -#: etc/initialdata:29 -#: etc/initialdata:35 -#: etc/initialdata:59 +#: 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 "Pseudogroup for internal use" -#: html/Elements/MyRequests:29 -#: html/Elements/MyTickets:29 -#: html/Elements/Quicksearch:28 -#: html/Search/Elements/PickRestriction:45 -#: html/SelfService/Create.html:32 -#: html/Ticket/Create.html:37 -#: html/Ticket/Elements/EditBasics:63 -#: html/Ticket/Elements/ShowBasics:42 -#: html/User/Elements/DelegateRights:79 -#: lib/RT/Tickets_Overlay.pm:882 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "Coda" +#: 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) -#: html/Admin/Queues/CustomField.html:41 -#: html/Admin/Queues/Scrip.html:49 -#: html/Admin/Queues/Scrips.html:45 -#: html/Admin/Queues/Templates.html:43 msgid "Queue %1 not found" msgstr "Queue %1 not found" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Queue '%1' not found\\n" msgstr "Queue '%1' not found\\n" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Queue Keyword Selections" msgstr "Queue Keyword Selections" -#: html/Admin/Elements/ModifyQueue:30 #: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "Nome della coda" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Queue Scrips" msgstr "Queue Scrips" -#: lib/RT/Queue_Overlay.pm:262 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "Queue already exists" -#: lib/RT/Queue_Overlay.pm:271 -#: lib/RT/Queue_Overlay.pm:277 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "Queue could not be created" -#: html/Ticket/Create.html:204 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "Queue could not be loaded." -#: docs/design_docs/string-extraction-guide.txt:83 -#: lib/RT/Queue_Overlay.pm:281 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "Queue created" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Queue is not specified." msgstr "Queue is not specified." -#: html/SelfService/Display.html:70 -#: lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "Queue not found" -#: html/Admin/Elements/Tabs:37 -#: html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 msgid "Queues" msgstr "Code" @@ -4180,342 +4174,301 @@ msgstr "Code" msgid "Quick search" msgstr "Ricerca veloce" +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + +#: html/Elements/Login:44 #. ($RT::VERSION) -#: html/Elements/Login:43 msgid "RT %1" msgstr "RT %1" +#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 #. ($RT::VERSION, $RT::rtname) -#: docs/design_docs/string-extraction-guide.txt:70 msgid "RT %1 for %2" msgstr "RT %1 per %2" -#. ($RT::VERSION) -#: html/Elements/Footer:31 +#: NOT FOUND IN SOURCE msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." msgstr "RT %1 da <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: 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 +#: 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:24 -#: html/Admin/index.html:25 +#: html/Admin/index.html:24 html/Admin/index.html:25 msgid "RT Administration" msgstr "RT Administration" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT Authentication error." msgstr "RT Authentication error." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT Bounce: %1" msgstr "RT Bounce: %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT Configuration error" msgstr "RT Configuration error" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT Critical error. Message not recorded!" msgstr "RT Critical error. Message not recorded!" -#: html/Elements/Error:40 -#: html/SelfService/Error.html:40 +#: html/Elements/Error:41 html/SelfService/Error.html:40 msgid "RT Error" msgstr "RT Error" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT Received mail (%1) from itself." msgstr "RT Received mail (%1) from itself." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT Recieved mail (%1) from itself." msgstr "RT Recieved mail (%1) from itself." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT Self Service / Closed Tickets" -#: html/index.html:24 -#: html/index.html:27 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "Colpo d'occhio di RT" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT couldn't authenticate you" msgstr "RT couldn't authenticate you" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT couldn't find requestor via its external database lookup" msgstr "RT couldn't find requestor via its external database lookup" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT couldn't find the queue: %1" msgstr "RT couldn't find the coda: %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT couldn't validate this PGP signature. \\n" +#: html/Elements/PageLayout:85 #. ($RT::rtname) -#: html/Elements/PageLayout:25 msgid "RT for %1" msgstr "RT per %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT for %1: %2" msgstr "RT per %1: %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT has proccessed your commands" msgstr "RT has proccessed your commands" -#. ('2003') -#: html/Elements/Login:91 +#: 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 © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. RT viene distribuito con la <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versione 2 della GNU General Public License.</a>" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: 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 "" + +#: 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 is © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. RT viene distribuito con la <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versione 2 della GNU General Public License.</a>" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "RT thinks this message may be a bounce" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RT will process this message as if it were unsigned.\\n" msgstr "RT will process this message as if it were unsigned.\\n" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: 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 email command mode requires PGP authentication. Either you didn't sign your message, or your signature could not be verified." -#: html/Admin/Users/Modify.html:57 -#: html/Admin/Users/Prefs.html:51 -#: html/User/Prefs.html:43 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "Nome Reale" -#: html/Admin/Elements/ModifyUser:47 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "RealName" -#: html/Ticket/Create.html:184 -#: html/Ticket/Elements/EditLinks:138 -#: html/Ticket/Elements/EditLinks:93 -#: html/Ticket/Elements/ShowLinks:70 +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "Riferito da" -#: html/Elements/SelectLinkType:27 -#: html/Ticket/Create.html:183 -#: html/Ticket/Elements/EditLinks:134 -#: html/Ticket/Elements/EditLinks:79 -#: html/Ticket/Elements/ShowLinks:60 +#: 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 "Fa riferimento a" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RefersTo" msgstr "RefersTo" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Refine" msgstr "Refine" -#: html/Search/Elements/PickRestriction:26 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Rifinisci la ricerca" -#. ($value/60) #: html/Elements/Refresh:35 +#. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Aggiorna questa pagina ogni %1 minuti." -#: html/Ticket/Create.html:173 -#: html/Ticket/Elements/ShowSummary:61 -#: html/Ticket/ModifyAll.html:56 +#: NOT FOUND IN SOURCE msgid "Relationships" -msgstr "Relazioni" +msgstr "" -#: html/Search/Bulk.html:92 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "Remove AdminCc" -#: html/Search/Bulk.html:90 +#: html/Search/Bulk.html:91 msgid "Remove Cc" msgstr "Remove Cc" -#: html/Search/Bulk.html:88 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "Rimuovi il RIchiedente" -#: html/Ticket/Elements/ShowTransaction:172 -#: html/Ticket/Elements/Tabs:121 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "Risposta" -#: lib/RT/Queue_Overlay.pm:84 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "Rispondi ai tickets" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "RispondiAlTicket" -#: etc/initialdata:44 -#: html/Ticket/Update.html:39 -#: lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "Richiedente" -#: html/Search/Elements/PickRestriction:37 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "Indirizzo emaildel richiedente" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Requestor(s)" msgstr "Richiedente(i)" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RequestorAddresses" msgstr "IndirizzoRichiedente" -#: html/SelfService/Create.html:40 -#: html/Ticket/Create.html:55 -#: html/Ticket/Elements/EditPeople:47 -#: html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "Richiedenti" -#: html/Admin/Elements/ModifyQueue:60 #: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "Le richieste devono essere soddisfatte in" +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + #: html/Elements/Submit:61 msgid "Reset" msgstr "Azzera" -#: html/Admin/Users/Modify.html:158 -#: html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "Casa" -#: html/Ticket/Elements/Tabs:131 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "Risolvi" -#. ($Ticket->id, $Ticket->Subject) -#: html/Ticket/Update.html:132 +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Risolvi il ticket n°%1 (%2)" -#: etc/initialdata:308 -#: html/Elements/SelectDateType:27 -#: lib/RT/Ticket_Overlay.pm:1169 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "Risolto" -#: html/Search/Bulk.html:122 -#: html/Ticket/ModifyAll.html:72 -#: html/Ticket/Update.html:72 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "Risposta ai richiedenti" -#: html/Elements/ListActions:25 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "Risultati" -#: html/Search/Elements/PickRestriction:104 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "Risultati per pagina" -#: html/Admin/Elements/ModifyUser:32 -#: html/Admin/Users/Modify.html:99 -#: html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "Ridigita Password" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Right %1 not found for %2 %3 in scope %4 (%5)\\n" @@ -4531,8 +4484,7 @@ msgstr "Right Granted" msgid "Right Loaded" msgstr "Right Loaded" -#: lib/RT/ACE_Overlay.pm:677 -#: lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "Right could not be revoked" @@ -4540,8 +4492,7 @@ msgstr "Right could not be revoked" msgid "Right not found" msgstr "Right not found" -#: lib/RT/ACE_Overlay.pm:542 -#: lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "Right not loaded." @@ -4549,137 +4500,179 @@ msgstr "Right not loaded." msgid "Right revoked" msgstr "Right revoked" -#: html/Admin/Elements/UserTabs:40 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "Diritti" +#: lib/RT/Interface/Web.pm:869 #. ($object_type) -#: lib/RT/Interface/Web.pm:791 msgid "Rights could not be granted for %1" msgstr "I diritti non possono essere concessi per %1" +#: lib/RT/Interface/Web.pm:899 #. ($object_type) -#: lib/RT/Interface/Web.pm:824 msgid "Rights could not be revoked for %1" msgstr "I diritti non possono essere revocaqti per %1" -#: html/Admin/Global/GroupRights.html:50 -#: html/Admin/Queues/GroupRights.html:51 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "Ruoli" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "RootApproval" msgstr "RootApproval" -#: lib/RT/Date.pm:392 +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + +#: lib/RT/Date.pm:393 msgid "Sat." msgstr "Sab." -#: html/Admin/Queues/People.html:104 -#: html/Ticket/Modify.html:38 -#: html/Ticket/ModifyAll.html:93 -#: html/Ticket/ModifyLinks.html:38 -#: html/Ticket/ModifyPeople.html:37 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "Salva i Cambiamenti" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "Salva i cambiamenti" +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) #. ($ARGS{'id'}) -#: html/Admin/Global/Scrip.html:48 msgid "Scrip #%1" msgstr "Scrip n°%1" -#: lib/RT/Scrip_Overlay.pm:175 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "Scrip Created" -#: html/Admin/Elements/EditScrips:83 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "Scrip eliminato" -#: html/Admin/Elements/QueueTabs:45 -#: html/Admin/Elements/SystemTabs:32 -#: html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 msgid "Scrips" msgstr "Scrips" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Scrips for %1\\n" msgstr "Scrips per %1\\n" -#: html/Admin/Queues/Scrips.html:32 +#: html/Admin/Queues/Scrips.html:33 msgid "Scrips which apply to all queues" msgstr "Scrips which apply to all code" -#: html/Elements/SimpleSearch:26 -#: html/Search/Elements/PickRestriction:125 -#: html/Ticket/Elements/Tabs:158 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "Cerca" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Search Criteria" msgstr "Crieri di Ricerca" -#: html/Approvals/Elements/PendingMyApproval:38 -msgid "Search for approvals" -msgstr "Ricerca le richieste di approvazione" +#: html/Approvals/Elements/PendingMyApproval:38 +msgid "Search for approvals" +msgstr "Ricerca le richieste di approvazione" + +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "" + +#: bin/rt-crontool:184 +msgid "Security:" +msgstr "Security:" + +#: NOT FOUND IN SOURCE +msgid "See custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" -#: bin/rt-crontool:187 -msgid "Security:" -msgstr "Security:" +#: NOT FOUND IN SOURCE +msgid "SeeCustomField" +msgstr "" -#: lib/RT/Queue_Overlay.pm:66 +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "VediCoda" -#: html/Admin/Groups/index.html:39 +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Field" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "Seleziona un gruppo" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Select a queue" msgstr "Seleziona una coda" -#: html/Admin/Users/index.html:24 -#: html/Admin/Users/index.html:27 +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" msgstr "Seleziona un utente" -#: html/Admin/Global/CustomField.html:37 -#: html/Admin/Global/CustomFields.html:35 +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "Seleziona un campo personalizzato" -#: html/Admin/Elements/GroupTabs:51 -#: html/User/Elements/GroupTabs:49 +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" msgstr "Seleziona gruppo" -#: lib/RT/CustomField_Overlay.pm:421 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "Seleziona valori multipli" -#: lib/RT/CustomField_Overlay.pm:418 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "Seleziona un volore solo" @@ -4687,21 +4680,19 @@ msgstr "Seleziona un volore solo" msgid "Select queue" msgstr "Seleziona una coda" -#: html/Admin/Global/Scrip.html:36 -#: html/Admin/Global/Scrips.html:35 -#: html/Admin/Queues/Scrip.html:39 -#: html/Admin/Queues/Scrips.html:49 +#: 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 "Seleziona uno scrip" -#: html/Admin/Global/Template.html:56 -#: html/Admin/Global/Templates.html:35 -#: html/Admin/Queues/Template.html:54 -#: html/Admin/Queues/Templates.html:46 +#: 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 "Seleziona un modello" -#: html/Admin/Elements/UserTabs:48 +#: NOT FOUND IN SOURCE +msgid "Select up to %1 values" +msgstr "" + +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "Seleziona utente" @@ -4713,75 +4704,99 @@ msgstr "SelectMultiple" msgid "SelectSingle" msgstr "SelectSingle" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Selected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Selected objects" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Self Service" msgstr "Self Service" -#: etc/initialdata:114 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "Invia una mail a tutti gli osservatori" -#: etc/initialdata:110 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "Invia una mail atutti gli osservatori come un \"commento\"" -#: etc/initialdata:105 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "Invia mail ai richiedenti e Ccs" -#: etc/initialdata:100 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "Invia mail ai richiedenti e Ccs come commento" -#: etc/initialdata:79 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "Invia un messaggio ai richiedenti" -#: etc/initialdata:118 -#: etc/initialdata:122 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "Sends mail to explicitly listed Ccs and Bccs" -#: etc/initialdata:95 +#: 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 "Sends mail to the administrative Ccs" -#: etc/initialdata:91 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "Sends mail to the administrative Ccs as a comment" -#: etc/initialdata:83 -#: etc/initialdata:87 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "Sends mail to the owner" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:419 msgid "Sep." msgstr "Sep." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "September" msgstr "September" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "Mostra i Risultati" +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + #: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "Mostra le richieste approvate" -#: html/Ticket/Create.html:143 -#: html/Ticket/Create.html:33 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show basics" msgstr "Mostra info di base" @@ -4789,8 +4804,7 @@ msgstr "Mostra info di base" msgid "Show denied requests" msgstr "Mostra le richieste negate" -#: html/Ticket/Create.html:143 -#: html/Ticket/Create.html:33 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show details" msgstr "Mostra i dettagli" @@ -4802,53 +4816,55 @@ msgstr "Mostra le richieste in attesa" msgid "Show requests awaiting other approvals" msgstr "Mostra le richieste in attesa di altre approvazioni" -#: lib/RT/Queue_Overlay.pm:80 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "Show ticket private commentary" -#: lib/RT/Queue_Overlay.pm:78 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "Show ticket summaries" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "MostraLCA" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "MostraScrips" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "MostraModello" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "MostraTicket" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:81 msgid "ShowTicketComments" msgstr "MostraICommentiAlTicket" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "Sign up as a ticket Requestor or ticket or coda Cc" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "Sign up as a ticket or coda AdminCc" -#: html/Admin/Elements/ModifyUser:38 -#: html/Admin/Users/Modify.html:190 -#: html/Admin/Users/Prefs.html:31 -#: html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "Firma" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Signed in as %1" msgstr "Signed in as %1" @@ -4856,7 +4872,7 @@ msgstr "Signed in as %1" msgid "Single" msgstr "Single" -#: html/Elements/Header:50 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "Skip Menu" @@ -4864,136 +4880,102 @@ msgstr "Skip Menu" msgid "Sort" msgstr "Ordina" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Sort key" msgstr "Sort key" -#: html/Search/Elements/PickRestriction:108 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "Ordina i risultati per" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "SortOrder" msgstr "SortOrder" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Stalled" msgstr "In stallo" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Start page" msgstr "Pagina iniziale" -#: html/Elements/SelectDateType:26 -#: html/Ticket/Elements/EditDates:31 -#: html/Ticket/Elements/ShowDates:34 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "Iniziato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Started date '%1' could not be parsed" msgstr "Started date '%1' could not be parsed" -#: html/Elements/SelectDateType:30 -#: html/Ticket/Create.html:165 -#: html/Ticket/Elements/EditDates:26 -#: html/Ticket/Elements/ShowDates:30 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "Inizia" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Starts By" msgstr "Inizia Da" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Starts date '%1' could not be parsed" msgstr "Starts date '%1' could not be parsed" -#: html/Admin/Elements/ModifyUser:81 -#: html/Admin/Users/Modify.html:137 -#: html/User/Prefs.html:93 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "Provincia" -#: html/Elements/MyRequests:30 -#: html/Elements/MyTickets:30 -#: html/Search/Elements/PickRestriction:73 -#: html/SelfService/Elements/MyRequests:28 -#: html/SelfService/Update.html:30 -#: html/Ticket/Create.html:41 -#: html/Ticket/Elements/EditBasics:37 -#: html/Ticket/Elements/ShowBasics:30 -#: html/Ticket/Update.html:59 -#: lib/RT/Ticket_Overlay.pm:1163 -#: lib/RT/Tickets_Overlay.pm:907 +#: 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 "Stato" -#: etc/initialdata:294 +#: etc/initialdata:309 msgid "Status Change" msgstr "Cambiamento di Stato" +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) -#: lib/RT/Transaction_Overlay.pm:527 msgid "Status changed from %1 to %2" msgstr "Cambiato lo Stato da %1 a %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "StatusChange" msgstr "StatusChange" -#: html/Ticket/Elements/Tabs:146 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "Ruba" +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) -#: lib/RT/Transaction_Overlay.pm:586 msgid "Stolen from %1 " msgstr "Rubato da %1 " -#: html/Elements/MyRequests:28 -#: html/Elements/MyTickets:28 -#: html/Search/Bulk.html:125 -#: html/Search/Elements/PickRestriction:42 -#: html/SelfService/Create.html:56 -#: html/SelfService/Elements/MyRequests:27 -#: html/SelfService/Update.html:31 -#: html/Ticket/Create.html:83 -#: html/Ticket/Elements/EditBasics:27 -#: html/Ticket/ModifyAll.html:78 -#: html/Ticket/Update.html:76 -#: lib/RT/Ticket_Overlay.pm:1159 -#: lib/RT/Tickets_Overlay.pm:986 +#: 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 "Oggetto" +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 #. ($self->Data) -#: docs/design_docs/string-extraction-guide.txt:89 -#: lib/RT/Transaction_Overlay.pm:608 msgid "Subject changed to %1" msgstr "Subject changed to %1" @@ -5001,18 +4983,27 @@ msgstr "Subject changed to %1" msgid "Submit" msgstr "Invia" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "Submit Workflow" -#: lib/RT/Group_Overlay.pm:748 +#: lib/RT/Group_Overlay.pm:749 msgid "Succeeded" msgstr "Succeeded" -#: lib/RT/Date.pm:393 +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + +#: lib/RT/Date.pm:394 msgid "Sun." msgstr "Dom." @@ -5024,76 +5015,76 @@ msgstr "SuperUtente" msgid "System" msgstr "Sistema" -#: html/Admin/Elements/SelectRights:80 -#: lib/RT/ACE_Overlay.pm:566 -#: lib/RT/Interface/Web.pm:790 -#: lib/RT/Interface/Web.pm:823 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "Errore di Sistema" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "System Error. Right not granted." msgstr "Errore di Sistema. Diritto non concesso." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "System Error. right not granted" msgstr "Errore di Sistema. Diritto non concesso" +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + #: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "Errore di Sistema. Diritto non delegato." -#: lib/RT/ACE_Overlay.pm:145 -#: lib/RT/ACE_Overlay.pm:222 -#: lib/RT/ACE_Overlay.pm:305 -#: lib/RT/ACE_Overlay.pm:897 +#: 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 "Errore di Sistema. Diritto non concesso." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "System error. Unable to grant rights." msgstr "Errore di sistema. Impossibile concedere i diritti." -#: html/Admin/Global/GroupRights.html:34 -#: html/Admin/Groups/GroupRights.html:36 -#: html/Admin/Queues/GroupRights.html:35 +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 msgid "System groups" msgstr "Gruppi di sistema" -#: etc/initialdata:41 -#: etc/initialdata:47 -#: etc/initialdata:53 +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 msgid "SystemRolegroup for internal use" msgstr "SystemRolegroup for internal use" -#: lib/RT/CurrentUser.pm:317 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Ticket/Elements/Tabs:142 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "Prendi" -#: lib/RT/Transaction_Overlay.pm:572 +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "Preso" -#: html/Admin/Elements/EditScrip:80 +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "" + +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "Modello" +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 #. ($TemplateObj->Id()) -#: html/Admin/Global/Template.html:90 -#: html/Admin/Queues/Template.html:89 msgid "Template #%1" msgstr "Modello n°%1" @@ -5101,128 +5092,114 @@ msgstr "Modello n°%1" msgid "Template deleted" msgstr "Modello eliminato" -#: lib/RT/Scrip_Overlay.pm:152 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "Modello non trovato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Template not found\\n" msgstr "Modello non trovato\\n" -#: lib/RT/Template_Overlay.pm:346 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "Modello elaborato" -#: html/Admin/Elements/QueueTabs:48 -#: html/Admin/Elements/SystemTabs:35 -#: html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 msgid "Templates" msgstr "Modelli" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Templates for %1\\n" msgstr "Modelli per %1\\n" -#: lib/RT/Interface/Web.pm:891 +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "" + +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "That is already the current value" -#: lib/RT/CustomField_Overlay.pm:242 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "That is not a value for this custom field" -#: lib/RT/Ticket_Overlay.pm:1885 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "That is the same value" -#: lib/RT/ACE_Overlay.pm:287 -#: lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 msgid "That principal already has that right" msgstr "That principal already has that right" +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) -#: lib/RT/Queue_Overlay.pm:632 msgid "That principal is already a %1 for this queue" msgstr "That principal is already a %1 for this coda" +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) -#: lib/RT/Ticket_Overlay.pm:1433 msgid "That principal is already a %1 for this ticket" msgstr "That principal is already a %1 for this ticket" +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) -#: lib/RT/Queue_Overlay.pm:731 msgid "That principal is not a %1 for this queue" msgstr "That principal is not a %1 for this coda" -#. ($args{'Type'}) -#: lib/RT/Ticket_Overlay.pm:1550 +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "That principal is not a %1 for this ticket" -#: lib/RT/Ticket_Overlay.pm:1881 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "That coda does not exist" -#: lib/RT/Ticket_Overlay.pm:3209 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "That ticket has unresolved dependencies" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "That user already has that right" msgstr "That user already has that right" -#: lib/RT/Ticket_Overlay.pm:3019 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "That user already owns that ticket" -#: lib/RT/Ticket_Overlay.pm:2985 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "That user does not exist" -#: lib/RT/User_Overlay.pm:314 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "Questo utente è già previlegiato" -#: lib/RT/User_Overlay.pm:335 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "Questo utente è già non previlegiato" -#: lib/RT/User_Overlay.pm:327 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "Ora questo utente è previlegiato" -#: lib/RT/User_Overlay.pm:348 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "Ora questo utente è non previlegiato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "That user is now unprivilegedileged" msgstr "Questo utente ora è non previlegiato" -#: lib/RT/Ticket_Overlay.pm:3011 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "That user may not own tickets in that coda" -#: lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "That's not a numerical id" -#: html/SelfService/Display.html:31 -#: html/Ticket/Create.html:149 -#: html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 msgid "The Basics" msgstr "Dati di base" @@ -5234,24 +5211,19 @@ msgstr "The CC of a ticket" msgid "The administrative CC of a ticket" msgstr "The administrative CC of a ticket" -#: lib/RT/Ticket_Overlay.pm:2212 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "The comment has been recorded" -#: bin/rt-crontool:197 +#: 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 following command will find all active tickets in the coda 'general' and set their priority to 99 if they haven't been touched in 4 hours:" -#: bin/rt-commit-handler:755 -#: bin/rt-commit-handler:765 -msgid "" -"The following commands were not proccessed:\\n" -"\\n" +#: NOT FOUND IN SOURCE +msgid "The following commands were not proccessed:\\n\\n" msgstr "" -"The following commands were not proccessed:\\n" -"\\n" -#: lib/RT/Interface/Web.pm:894 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "The new value has been set." @@ -5267,160 +5239,156 @@ msgstr "Il richiedente di un ticket" msgid "These comments aren't generally visible to the user" msgstr "These comments aren't generally visible to the user" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "This custom field does not apply to that object" +msgstr "" + +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +msgid "This message will be sent to..." +msgstr "" + +#: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "This ticket %1 %2 (%3)\\n" -#: bin/rt-crontool:188 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "This tool allows the user to run arbitrary perl modules from within RT." -#: lib/RT/Transaction_Overlay.pm:250 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "This transaction appears to have no content" +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) -#: html/Ticket/Elements/ShowRequestor:46 msgid "This user's %1 highest priority tickets" msgstr "I %1 tickets di questo utente a più alta priorità" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "This user's 25 highest priority tickets" msgstr "I 25 tickets a più alta priorità di questo utente" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:391 msgid "Thu." msgstr "Gio." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Ticket" msgstr "" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Ticket # %1 %2" msgstr "Ticket n° %1 %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Ticket # %1 Jumbo update: %2" msgstr "Ticket n° %1 aggiornamento Jumbo: %2" +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 #. ($Ticket->Id, $Ticket->Subject) -#: html/Ticket/ModifyAll.html:24 -#: html/Ticket/ModifyAll.html:28 msgid "Ticket #%1 Jumbo update: %2" msgstr "Ticket n° %1 Jumbo update: %2" -#. ($link->BaseObj->Id, $link->BaseObj->Subject) #: html/Approvals/Elements/ShowDependency:45 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Ticket n°%1: %2" +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) -#: lib/RT/Ticket_Overlay.pm:586 -#: lib/RT/Ticket_Overlay.pm:607 msgid "Ticket %1 created in queue '%2'" msgstr "Ticket %1 created in coda '%2'" -#. ($Ticket->Id) -#: bin/rt-commit-handler:759 +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "Ticket %1 loaded\\n" +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) -#: html/Search/Bulk.html:180 msgid "Ticket %1: %2" msgstr "Ticket %1: %2" +#: NOT FOUND IN SOURCE +msgid "Ticket Custom Fields" +msgstr "" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) -#: html/Ticket/History.html:24 -#: html/Ticket/History.html:27 msgid "Ticket History # %1 %2" msgstr "Ticket History n° %1 %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Ticket Id" msgstr "Ticket Id" -#: etc/initialdata:309 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "Ticket Risolto" -#: html/Search/Elements/PickRestriction:62 +#: NOT FOUND IN SOURCE +msgid "Ticket Transactions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Allegato al ticket: il " -#: lib/RT/Tickets_Overlay.pm:1165 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "Contenuto del ticket" -#: lib/RT/Tickets_Overlay.pm:1211 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "Ticket content type" -#: lib/RT/Ticket_Overlay.pm:495 -#: lib/RT/Ticket_Overlay.pm:596 +#: 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 "Ticket could not be created due to an internal error" -#: lib/RT/Transaction_Overlay.pm:519 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "Ticket creato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Ticket creation failed" msgstr "Ticket creation failed" -#: lib/RT/Transaction_Overlay.pm:524 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "Ticket eliminato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Ticket id not found" msgstr "Ticket id not found" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Ticket killed" msgstr "Ticket killed" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "Ticket not found" -#: etc/initialdata:295 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "Ticket status changed" -#: html/Ticket/Update.html:38 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "Osservatori del ticket" @@ -5428,18 +5396,17 @@ msgstr "Osservatori del ticket" msgid "Tickets" msgstr "" +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) -#: lib/RT/Tickets_Overlay.pm:1382 msgid "Tickets %1 %2" msgstr "" +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) -#: lib/RT/Tickets_Overlay.pm:1347 msgid "Tickets %1 by %2" msgstr "Tickets %1 by %2" -#. ($name) -#: html/Elements/ViewUser:25 +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Tickets from %1" @@ -5447,92 +5414,104 @@ msgstr "Tickets from %1" msgid "Tickets which depend on this approval:" msgstr "Tickets which depend on this approval:" -#: html/Ticket/Create.html:156 -#: html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "Tempo RImasto" -#: html/Ticket/Create.html:155 -#: html/Ticket/Elements/EditBasics:42 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "Tempo Lavorato" -#: lib/RT/Tickets_Overlay.pm:1138 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "Tempo rimasto" -#: html/Elements/Footer:35 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "Time to display" -#: lib/RT/Tickets_Overlay.pm:1114 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "Tempo lavorato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "TimeLeft" msgstr "TempoRimasto" -#: lib/RT/Ticket_Overlay.pm:1164 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "TempoLavorato" -#: bin/rt-commit-handler:401 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "To generate a diff of this commit:" -#: bin/rt-commit-handler:390 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "To generate a diff of this commit:\\n" -#: lib/RT/Ticket_Overlay.pm:1167 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "Told" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "Transaction" +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) -#: lib/RT/Transaction_Overlay.pm:639 msgid "Transaction %1 purged" msgstr "Transaction %1 purged" -#: lib/RT/Transaction_Overlay.pm:176 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "Transaction Created" -#: lib/RT/Transaction_Overlay.pm:88 +#: NOT FOUND IN SOURCE +msgid "Transaction Custom Fields" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "Transaction->Create couldn't, as you didn't specify a ticket id" -#: lib/RT/Transaction_Overlay.pm:698 +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "Transactions are immutable" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Trying to delete a right: %1" msgstr "Sto cercando di eliminare un diritto: %1" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:389 msgid "Tue." msgstr "Mar." -#: 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:1165 -#: lib/RT/Tickets_Overlay.pm:958 +#: 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" +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + #: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "Unimplemented" @@ -5541,12 +5520,12 @@ msgstr "Unimplemented" msgid "Unix login" msgstr "Unix login" -#: html/Admin/Elements/ModifyUser:61 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "UnixUsername" +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) -#: lib/RT/Attachment_Overlay.pm:264 msgid "Unknown ContentEncoding %1" msgstr "Unknown ContentEncoding %1" @@ -5554,50 +5533,75 @@ msgstr "Unknown ContentEncoding %1" msgid "Unlimited" msgstr "Unlimited" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "Non previlegiato" -#: lib/RT/Transaction_Overlay.pm:568 +#: NOT FOUND IN SOURCE +msgid "Unselected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Unselected objects" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "Untaken" -#: html/Elements/MyTickets:63 +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "" + #: html/Search/Bulk.html:32 msgid "Update" msgstr "Aggiornamento" -#: html/Admin/Users/Prefs.html:61 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "ID Aggiornamento" -#: html/Search/Bulk.html:119 -#: html/Ticket/ModifyAll.html:65 -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "Tipo Aggiornamento" -#: html/Search/Listing.html:60 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "Aggiorna tutti questi tickets in una sola volta" -#: html/Admin/Users/Prefs.html:48 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "Email aggiornamento" -#: html/Admin/Users/Prefs.html:54 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "Nome aggiornamento" -#: lib/RT/Interface/Web.pm:408 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "Aggiornamento non registrato." -#: html/Search/Bulk.html:80 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "Aggiorna i tickets selezionati" -#: html/Admin/Users/Prefs.html:35 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Aggiorna la firma" @@ -5605,68 +5609,94 @@ msgstr "Aggiorna la firma" msgid "Update ticket" msgstr "Aggiorna il ticket" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Update ticket # %1" msgstr "Aggiorna il ticket n° %1" +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) -#: html/SelfService/Update.html:24 -#: html/SelfService/Update.html:46 msgid "Update ticket #%1" msgstr "Aggiorna il ticket n°%1" -#. ($Ticket->id, $Ticket->Subject) -#: html/Ticket/Update.html:134 +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Aggiorna il ticket n°%1 (%2)" -#: lib/RT/Interface/Web.pm:406 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "Update type was neither correspondence nor comment." -#: html/Elements/SelectDateType:32 -#: html/Ticket/Elements/ShowDates:50 -#: lib/RT/Ticket_Overlay.pm:1168 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "Aggiornato" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple images" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one image" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 images" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "User %1 %2: %3\\n" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "User %1 Password: %2\\n" msgstr "User %1 Password: %2\\n" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "User '%1' not found" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "User '%1' not found\\n" msgstr "User '%1' not found\\n" -#: etc/initialdata:125 -#: etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Definito da Utente" -#: html/Admin/Users/Prefs.html:58 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "User ID" @@ -5674,52 +5704,48 @@ msgstr "User ID" 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 +#: 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 "Diritti Utente" +#: NOT FOUND IN SOURCE +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" + +#: html/Admin/Users/Modify.html:252 #. ($msg) -#: html/Admin/Users/Modify.html:225 msgid "User could not be created: %1" msgstr "User could not be created: %1" -#: lib/RT/User_Overlay.pm:261 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "User created" -#: html/Admin/Global/GroupRights.html:66 -#: html/Admin/Groups/GroupRights.html:53 -#: html/Admin/Queues/GroupRights.html:67 +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "Gruppi definiti dall'utente" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User notified" msgstr "User notified" -#: html/Admin/Users/Prefs.html:24 -#: html/Admin/Users/Prefs.html:28 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "User view" -#: html/Admin/Users/Modify.html:47 -#: html/Elements/Login:50 -#: html/Ticket/Elements/AddWatchers:34 +#: NOT FOUND IN SOURCE +msgid "User-defined groups" +msgstr "" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "Username" -#: 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 +#: 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 "Utenti" @@ -5727,7 +5753,11 @@ msgstr "Utenti" msgid "Users matching search criteria" msgstr "Utenti che soddisfano il criterio di ricerca" -#: html/Search/Elements/PickRestriction:50 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "ValueOfQueue" @@ -5735,18 +5765,19 @@ msgstr "ValueOfQueue" msgid "Values" msgstr "Valori" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE +msgid "VrijevormEnkele" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "Osserva" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "OsservaComeAdminCc" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Watcher loaded" msgstr "Osservatore caricato" @@ -5754,97 +5785,120 @@ msgstr "Osservatore caricato" msgid "Watchers" msgstr "Osservatori" -#: html/Admin/Elements/ModifyUser:55 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "WebEncoding" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:390 msgid "Wed." msgstr "Mer." -#: etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "When a ticket has been approved by all approvers, add correspondence to the original ticket" -#: etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "When a ticket has been approved by any approver, add correspondence to the original ticket" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "When a ticket is created" -#: etc/upgrade/2.1.71:79 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "When anything happens" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "Whenever a ticket is resolved" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "Whenever a ticket's owner changes" -#: etc/initialdata:178 +#: 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 "Whenever a ticket's coda changes" -#: etc/initialdata:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "Whenever a ticket's status changes" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "Whenever a user-defined condition occurs" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "Whenever comments come in" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "Whenever correspondence comes in" -#: html/Admin/Users/Modify.html:163 -#: html/User/Prefs.html:51 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "Lavoro" -#: html/Admin/Elements/ModifyUser:69 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "TelefonoLavoro" -#: html/Ticket/Elements/ShowBasics:34 -#: html/Ticket/Update.html:64 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Lavoro" -#: lib/RT/Ticket_Overlay.pm:3122 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "You already own this ticket" -#: html/autohandler:107 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "You are not an authorized user" -#: lib/RT/Ticket_Overlay.pm:2997 +#: NOT FOUND IN SOURCE +msgid "You can access it with the Download button on the right." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "You can only reassign tickets that you own or that are unowned" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "You don't have permission to view that ticket.\\n" msgstr "Non hai i permessi per visualizzare questo ticket.\\n" +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) -#: docs/design_docs/string-extraction-guide.txt:47 msgid "You found %1 tickets in queue %2" msgstr "Hai trovato %1 tickets nella coda %2" @@ -5852,73 +5906,64 @@ msgstr "Hai trovato %1 tickets nella coda %2" msgid "You have been logged out of RT." msgstr "Ti sei scollegato da RT." -#: html/SelfService/Display.html:77 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "Non hai permessi per creare tickets in questa coda." -#: lib/RT/Ticket_Overlay.pm:1894 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "Non puoi creare richieste in questa coda." -#: html/NoAuth/Logout.html:35 +#: html/NoAuth/Logout.html:34 msgid "You're welcome to login again" msgstr "Collegati di nuovo" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Your %1 requests" msgstr "Le tue %1 richieste" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "Your RT administrator has misconfigured the mail aliases which invoke RT" -#: etc/initialdata:435 -#: etc/upgrade/2.1.71:146 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "Your request has been approved by %1. Other approvals may still be pending." -#: etc/initialdata:469 -#: etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "Your request has been approved." -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "Your request was rejected" msgstr "Your request was rejected" -#: etc/initialdata:390 -#: etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "Your request was rejected." -#: html/autohandler:126 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "Il tuo username o la tua password non sono corretti" -#: html/Admin/Elements/ModifyUser:83 -#: html/Admin/Users/Modify.html:143 -#: html/User/Prefs.html:95 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "CAP" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "[no subject]" msgstr "[nessun oggetto]" -#. ($right->PrincipalObj->Object->SelfDescription) +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + #: html/User/Elements/DelegateRights:58 +#. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "come concesso a %1" @@ -5926,149 +5971,132 @@ msgstr "come concesso a %1" msgid "closed" msgstr "chiuso" -#: html/Elements/SelectCustomFieldOperator:37 -#: html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 msgid "contains" msgstr "contiene" -#: html/Elements/SelectAttachmentField:25 +#: NOT FOUND IN SOURCE msgid "content" msgstr "contenuto" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "content-type" -#: lib/RT/Ticket_Overlay.pm:2281 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "corrispondenza (probabilmente) non inviata" -#: lib/RT/Ticket_Overlay.pm:2291 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "corrispondenza inviata" -#: html/Admin/Elements/ModifyQueue:62 -#: html/Admin/Queues/Modify.html:76 -#: lib/RT/Date.pm:318 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "giorni" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "dead" msgstr "morto" -#: html/Search/Listing.html:74 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "elimina" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "eliminato" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "non corrisponde a" -#: html/Elements/SelectCustomFieldOperator:37 -#: html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 msgid "doesn't contain" msgstr "non contiene" +#: NOT FOUND IN SOURCE +msgid "email address" +msgstr "" + #: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "uguale a" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "false" msgstr "falso" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "nome file" -#: html/Elements/SelectCustomFieldOperator:37 -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "greater than" msgstr "più grande di" +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) -#: lib/RT/Group_Overlay.pm:193 msgid "group '%1'" msgstr "gruppo '%1'" -#: lib/RT/Date.pm:314 +#: lib/RT/Date.pm:315 msgid "hours" msgstr "ore" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "id" msgstr "id" -#: html/Elements/SelectBoolean:31 -#: html/Elements/SelectCustomFieldOperator:37 -#: html/Elements/SelectMatch:35 -#: html/Search/Elements/PickRestriction:46 -#: html/Search/Elements/PickRestriction:75 -#: html/Search/Elements/PickRestriction:87 +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + +#: 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 "è" -#: html/Elements/SelectBoolean:35 -#: html/Elements/SelectCustomFieldOperator:37 -#: html/Elements/SelectMatch:36 -#: html/Search/Elements/PickRestriction:47 -#: html/Search/Elements/PickRestriction:76 -#: html/Search/Elements/PickRestriction:88 +#: 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 "non è" -#: html/Elements/SelectCustomFieldOperator:37 -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "less than" msgstr "minore di" -#: html/Search/Elements/PickRestriction:66 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "corrisponde a" -#: lib/RT/Date.pm:310 +#: lib/RT/Date.pm:311 msgid "min" msgstr "min" -#: html/Ticket/Update.html:65 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "minuti" -#: bin/rt-commit-handler:764 -msgid "" -"modifications\\n" -"\\n" +#: NOT FOUND IN SOURCE +msgid "modifications\\n\\n" msgstr "" -"modifiche\\n" -"\\n" -#: lib/RT/Date.pm:326 +#: lib/RT/Date.pm:327 msgid "months" msgstr "mesi" -#: lib/RT/Queue_Overlay.pm:57 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "nuovo" +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + #: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "nessun valore" -#: html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "nessuno" @@ -6076,100 +6104,98 @@ msgstr "nessuno" msgid "not equal to" msgstr "diverso da" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "notlike" msgstr "diverso da" -#: html/SelfService/Elements/MyRequests:60 -#: lib/RT/Queue_Overlay.pm:58 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "aperto" +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) -#: lib/RT/Group_Overlay.pm:198 msgid "personal group '%1' for user '%2'" msgstr "Gruppo personale '%1' per l'utente '%2'" +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) -#: lib/RT/Group_Overlay.pm:206 msgid "queue %1 %2" msgstr "coda %1 %2" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "rifiutato" -#: lib/RT/Queue_Overlay.pm:60 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "risolto" -#: lib/RT/Date.pm:306 +#: lib/RT/Date.pm:307 msgid "sec" msgstr "sec" -#: lib/RT/Queue_Overlay.pm:59 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "in stallo" +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) -#: lib/RT/Group_Overlay.pm:201 msgid "system %1" msgstr "sistema %1" +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) -#: lib/RT/Group_Overlay.pm:212 msgid "system group '%1'" msgstr "gruppo di sistema '%1'" -#: html/Elements/Error:41 -#: html/SelfService/Error.html:41 +#: html/Elements/Error:42 html/SelfService/Error.html:41 msgid "the calling component did not specify why" msgstr "the calling component did not specify why" +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) -#: lib/RT/Group_Overlay.pm:209 msgid "ticket #%1 %2" msgstr "ticket n°%1 %2" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "true" msgstr "vero" +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) -#: lib/RT/Group_Overlay.pm:215 msgid "undescribed group %1" msgstr "undescribed group %1" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "undescripbed group %1" msgstr "undescripbed group %1" +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) -#: lib/RT/Group_Overlay.pm:190 msgid "user %1" msgstr "utente %1" -#: lib/RT/Date.pm:322 +#: lib/RT/Date.pm:323 msgid "weeks" msgstr "settimane" -#: NOT -#: FOUND -#: IN -#: SOURCE +#: NOT FOUND IN SOURCE msgid "with template %1" msgstr "con il modello %1" -#: lib/RT/Date.pm:330 +#: lib/RT/Date.pm:331 msgid "years" msgstr "anni" diff --git a/rt/lib/RT/I18N/ja.po b/rt/lib/RT/I18N/ja.po index 4a67a814f..8af3075ad 100644 --- a/rt/lib/RT/I18N/ja.po +++ b/rt/lib/RT/I18N/ja.po @@ -11,27 +11,39 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +#: NOT FOUND IN SOURCE msgid "#" msgstr "#" -#: html/Admin/Queues/Scrip.html:55 -#. ($QueueObj->id) +#: NOT FOUND IN SOURCE msgid "#%1" msgstr "" -#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 -#. ($Ticket->Id, $Ticket->Subject) +#: 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 "" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 #. ($s, $time_unit) +#. ($option, $subtype) msgid "%1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "" @@ -41,7 +53,7 @@ msgstr "" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%1 %2 %3 %4:%5:%6 %7" -#: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#: 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) @@ -53,13 +65,13 @@ msgstr "" msgid "%1 %2 ago" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#: 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 "%3ã«å¤‰æ›´ã•れãŸ%1 %2 " -#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#: 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) @@ -70,53 +82,108 @@ msgstr "" msgid "%1 %2 of group %3" msgstr "" -#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#: 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 "" +#: NOT FOUND IN SOURCE +msgid "%1 %2 הוסף" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 מקבוצה %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 נמחק" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 שונה ל %3" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 ã“ã®ãƒã‚±ãƒƒãƒˆ\\n" -#: html/Search/Listing.html:57 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 פנייה זו\\n" +msgstr "" + +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "" -#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#: 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 "" -#: bin/rt-crontool:185 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "" -#: bin/rt-crontool:179 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "" -#: bin/rt-crontool:173 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "" -#: bin/rt-crontool:166 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:122 +#: NOT FOUND IN SOURCE +msgid "%1 - ×רגומנט להעביר ×ל %2" +msgstr "" + + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1スクリプトアクションロードã—ã¾ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:3471 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%2ã¨åŒã˜ãƒãƒªãƒ¥ãƒ¼ã®%1ãŒè¿½åŠ ã•れã¾ã—ãŸ" @@ -133,19 +200,19 @@ msgstr "%1aliasesã‚’å‹•ã‹ã™ãŸã‚ã«ãƒã‚±ãƒƒãƒˆIDãŒå¿…è¦ã§ã™ " msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1aliasesã‚’å‹•ã‹ã™ãŸã‚ã«ãƒã‚±ãƒƒãƒˆIDãŒå¿…è¦ã§ã™(%2ã‹ã‚‰) %3" -#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#: 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 "" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 +#: 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 "%2ã«ã‚ˆã‚‹%1" -#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#: 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) @@ -153,7 +220,12 @@ msgstr "%2ã«ã‚ˆã‚‹%1" msgid "%1 changed from %2 to %3" msgstr "%1ã¯%2ã‹ã‚‰%3ã«å¤‰æ›´ã•れã¾ã—ãŸ" -#: lib/RT/Interface/Web.pm:857 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "" @@ -161,37 +233,48 @@ msgstr "" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1ã¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’ã¯ã˜ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ(%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1ã¯åˆ†è§£ã™ã‚‹ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚RTã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«ä¸€è²«æ€§ãŒãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚" -#: html/Elements/MyTickets:25 +#: NOT FOUND IN SOURCE +msgid "%1 created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 deleted" +msgstr "" + +#: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "" -#: html/Elements/MyRequests:25 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "" -#: bin/rt-crontool:161 +#: bin/rt-crontool:157 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "" -#: lib/RT/Queue_Overlay.pm:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1ã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ã¯%2ã§ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:1570 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1ã¯ã“ã®ãƒã‚±ãƒƒãƒˆã§ã¯%2ã§ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:3527 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1ã¯ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールド%2ã®ãƒãƒªãƒ¥ãƒ¼ã¯ã‚りã¾ã›ã‚“" @@ -200,16 +283,41 @@ msgstr "%1ã¯ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールド%2ã®ãƒãƒªãƒ¥ãƒ¼ã¯ã‚りã¾ã›ã‚“" msgid "%1 isn't a valid Queue id." msgstr "%1ã¯æœ‰åйãªã‚­ãƒ¥ãƒ¼IDã§ã¯ã‚りã¾ã›ã‚“。" -#: html/Ticket/Elements/ShowBasics:36 -#. ($TimeWorked) +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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分" +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1表示ã•れã¾ã›ã‚“" -#: html/User/Elements/DelegateRights:76 +#: NOT FOUND IN SOURCE +msgid "%1 objects" +msgstr "" + +#: html/User/Elements/DelegateRights:75 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "" @@ -230,7 +338,7 @@ msgstr "%1タイプã¯%2ã§ã¯ä¸æ˜Žã§ã™" msgid "%1 was created without a CurrentUser\\n" msgstr "" -#: lib/RT/Action/ResolveMembers.pm:42 +#: lib/RT/Action/ResolveMembers.pm:41 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1ã¯åˆ†è§£ã•れãŸã‚°ãƒ«ãƒ¼ãƒ—ãƒã‚±ãƒƒãƒˆã®ã™ã¹ã¦ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’分解ã—ã¾ã™ã€‚" @@ -239,22 +347,72 @@ msgstr "%1ã¯åˆ†è§£ã•れãŸã‚°ãƒ«ãƒ¼ãƒ—ãƒã‚±ãƒƒãƒˆã®ã™ã¹ã¦ã®ãƒ¡ãƒ³ãƒãƒ¼ msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1ãŒã‚‚ã—リンクã•れãŸãƒªã‚¯ã‚¨ã‚¹ãƒˆã®å¾“属者(もã—ãã¯ãƒ¡ãƒ³ãƒãƒ¼ï¼‰ã§ã‚ã‚‹ã¨ã€[ローカル]ベースを行ãè©°ã¾ã‚‰ã›ã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ã€‚" -#: lib/RT/Transaction_Overlay.pm:435 +#: NOT FOUND IN SOURCE +msgid "%1 הוסף כערך עבור %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 לפני %2 ימי×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 על ידי %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 פעולת-סקריפ נטענה" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 שונה מ %2 ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2 objects" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1:アタッãƒãƒ¡ãƒ³ãƒˆãŒç‰¹å®šã§ãã¾ã›ã‚“" -#: html/Ticket/Elements/ShowTransaction:102 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "" -#: html/Ticket/Elements/ShowTransaction:99 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1140 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "%1'ã¯ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã«ç„¡åйåãƒãƒªãƒ¥ãƒ¼ã§ã™" @@ -271,7 +429,7 @@ msgstr "" msgid "(Check box to delete scrip)" msgstr "(スクリプトを削除ã™ã‚‹ãŸã‚ã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ï¼‰" -#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +#: 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 "(削除ã®ãŸã‚ã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ï¼‰" @@ -279,11 +437,23 @@ msgstr "(削除ã®ãŸã‚ã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ï¼‰" msgid "(Check boxes to delete)" msgstr "" +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(ãƒã‚±ãƒƒãƒˆIDã¾ãŸã¯URLsを空欄ã§åŒºåˆ‡ã£ã¦å…¥åŠ›ã—ã¦ãã ã•ã„)" -#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + +#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) msgid "(If left blank, will default to %1" @@ -293,23 +463,27 @@ msgstr "" msgid "(No Value)" msgstr "" -#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" msgstr "" -#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" msgstr "(メンãƒãƒ¼ãªã—)" -#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 msgid "(No scrips)" msgstr "(スクリプトãªã—)" -#: html/Admin/Elements/EditTemplates:31 +#: html/Admin/Elements/EditTemplates:30 msgid "(No templates)" msgstr "" -#: html/Ticket/Update.html:85 +#: NOT FOUND IN SOURCE +msgid "(None)" +msgstr "" + +#: 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 "" @@ -317,11 +491,11 @@ msgstr "" 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 "(Eメールアドレスã«ãŠã‘るカンマã§åŒºåˆ‡ã‚‰ã‚ŒãŸãƒªã‚¹ãƒˆã¸ã®æ­£ç¢ºãªã‚¢ãƒƒãƒ—デートã®ãƒ–ラインドコピーをé€ã‚‹ã€‚今後ã®ã‚¢ãƒƒãƒ—デートを誰ãŒå—ä¿¡ã™ã‚‹ã‹ã¯<b>変更ã§ãã¾ã›ã‚“</b>)" -#: html/Ticket/Create.html:79 +#: 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 "" -#: html/Ticket/Update.html:81 +#: 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 "" @@ -329,35 +503,55 @@ msgstr "" 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 "(Eメールアドレスã«ãŠã‘るカンマã§åŒºåˆ‡ã‚‰ã‚ŒãŸãƒªã‚¹ãƒˆã¸ã®æ­£ç¢ºãªã‚¢ãƒƒãƒ—デートã®ã‚³ãƒ”ーをé€ã‚‹ã€‚今後ã®ã‚¢ãƒƒãƒ—デートを誰ãŒå—ä¿¡ã™ã‚‹ã‹ã¯<b>変更ã§ãã¾ã›ã‚“</b>)" -#: html/Ticket/Create.html:69 +#: 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 "" -#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(空)" -#: html/Admin/Users/index.html:39 +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + +#: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "" -#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(サブジェクトãªã—)" -#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +#: 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 "(ãƒãƒªãƒ¥ãƒ¼ãªã—)" -#: html/Ticket/Elements/EditLinks:116 +#: NOT FOUND IN SOURCE +msgid "(no values)" +msgstr "" + +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(ã²ã¨ã¤ã®ãƒã‚±ãƒƒãƒˆã®ã¿ï¼‰" -#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "" -#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "" @@ -365,14 +559,18 @@ msgstr "" msgid "(requestor's group)" msgstr "" -#: html/Admin/Users/Modify.html:50 +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "(必è¦ã§ã™ï¼‰" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "" +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "ç§ãŒæ‰€æœ‰ã—ã¦ã„ã‚‹25ã®æœ€ã‚‚é‡è¦ãªå„ªå…ˆæ¨©" @@ -381,20 +579,32 @@ msgstr "ç§ãŒæ‰€æœ‰ã—ã¦ã„ã‚‹25ã®æœ€ã‚‚é‡è¦ãªå„ªå…ˆæ¨©" msgid "25 highest priority tickets I requested..." msgstr "ç§ãŒãƒªã‚¯ã‚¨ã‚¹ãƒˆã—ãŸ25ã®æœ€ã‚‚é‡è¦ãªå„ªå…ˆæ¨©" -#: html/Ticket/Elements/ShowBasics:32 +#: html/Ticket/Elements/ShowBasics:31 msgid "<% $Ticket->Status%>" msgstr "" -#: html/Elements/SelectTicketTypes:27 +#: html/Elements/SelectTicketTypes:26 msgid "<% $_ %>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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=\"æ–°ã—ã„ãƒã‚±ãƒƒãƒˆ\"> %1" -#: etc/initialdata:203 +#: NOT FOUND IN SOURCE +msgid "??????" +msgstr "" + +#: etc/initialdata:218 msgid "A blank template" msgstr "" @@ -414,52 +624,60 @@ msgstr "" msgid "ACE could not be found" msgstr "" -#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "エースã¯ã¿ã¤ã‹ã‚Šã¾ã›ã‚“" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "エースã¯ä½œæˆã€å‰Šé™¤ã®ã¿ã§ã™ã€‚" -#: bin/rt-commit-handler:755 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "æ„図的ã§ãªã„ãƒã‚±ãƒƒãƒˆã®ä¿®æ­£ã‚’防ããŸã‚ã«å¼·åˆ¶çµ‚了ã—ã¾ã™ã€‚\\n" -#: html/User/Elements/Tabs:32 +#: html/User/Elements/Tabs:31 msgid "About me" msgstr "" -#: html/Admin/Users/Modify.html:80 +#: html/Admin/Users/Modify.html:79 msgid "Access control" msgstr "アクセスコントロール" -#: html/Admin/Elements/EditScrip:57 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "アクション" -#: lib/RT/Scrip_Overlay.pm:147 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "アクション%1ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: bin/rt-crontool:123 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "" -#: bin/rt-crontool:119 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "" -#: html/Search/Bulk.html:92 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "管ç†Ccを追加ã™ã‚‹" -#: html/Search/Bulk.html:90 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "Ccを追加ã™ã‚‹" -#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "" @@ -467,10 +685,14 @@ msgstr "" msgid "Add Next State" msgstr "" -#: html/Search/Bulk.html:88 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "リクエストã™ã‚‹äººã‚’を追加ã™ã‚‹" +#: html/Admin/Elements/AddCustomFieldValue:24 +msgid "Add Value" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Add a Scrip to this queue" msgstr "" @@ -491,19 +713,23 @@ msgstr "æ–°ã—ã„グローãƒãƒ«ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹" msgid "Add a scrip to this queue" msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã«ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹" -#: html/Admin/Global/Scrip.html:55 +#: html/Admin/Global/Scrip.html:54 msgid "Add a scrip which will apply to all queues" msgstr "ã™ã¹ã¦ã®ã‚­ãƒ¥ãƒ¼ã«é©å¿œã™ã‚‹ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹" -#: html/Search/Bulk.html:118 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "é¸æŠžã•れãŸãƒã‚±ãƒƒãƒˆã¸ã®ã‚³ãƒ¡ãƒ³ãƒˆã¾ãŸã¯è¿”事を追加ã™ã‚‹" -#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 msgid "Add members" msgstr "メンãƒãƒ¼ã‚’追加ã™ã‚‹" -#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 msgid "Add new watchers" msgstr "æ–°ã—ã„ウォッãƒãƒ£ãƒ¼ã‚’追加ã™ã‚‹" @@ -511,37 +737,37 @@ msgstr "æ–°ã—ã„ウォッãƒãƒ£ãƒ¼ã‚’追加ã™ã‚‹" msgid "AddNextState" msgstr "" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã«%1ã®è²¬ä»»è€…を追加ã—ã¾ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:1454 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "ã“ã®ãƒã‚±ãƒƒãƒˆã«%1ã®è²¬ä»»è€…を追加ã—ã¾ã—ãŸ" -#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "使‰€1" -#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "使‰€2" -#: html/Ticket/Create.html:74 +#: html/Ticket/Create.html:73 msgid "Admin Cc" msgstr "管ç†Cc" -#: etc/initialdata:274 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "" -#: etc/initialdata:256 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "" -#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 msgid "Admin queues" msgstr "管ç†ã‚­ãƒ¥ãƒ¼" @@ -549,7 +775,7 @@ msgstr "管ç†ã‚­ãƒ¥ãƒ¼" msgid "Admin users" msgstr "管ç†ãƒ¦ãƒ¼ã‚¶ãƒ¼" -#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 msgid "Admin/Global configuration" msgstr "管ç†/グローãƒãƒ«è¨­å®š" @@ -557,7 +783,7 @@ msgstr "管ç†/グローãƒãƒ«è¨­å®š" msgid "Admin/Groups" msgstr "管ç†/グループ" -#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "管ç†/キュー/基本" @@ -565,7 +791,7 @@ msgstr "管ç†/キュー/基本" msgid "AdminAllPersonalGroups" msgstr "" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "管ç†Cc" @@ -577,7 +803,11 @@ msgstr "" msgid "AdminCorrespondence" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: NOT FOUND IN SOURCE +msgid "AdminCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "" @@ -589,19 +819,19 @@ msgstr "" msgid "AdminGroupMembership" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "AdminOwnPersonalGroups" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "AdminUsers" msgstr "" -#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "管ç†è€…Cc" @@ -609,11 +839,19 @@ msgstr "管ç†è€…Cc" msgid "Admins" msgstr "" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "çµžè¾¼ã¿æ¤œç´¢" -#: html/Elements/SelectDateRelation:36 +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + +#: html/Elements/SelectDateRelation:35 msgid "After" msgstr "後" @@ -629,11 +867,19 @@ msgstr "" msgid "Alias for" msgstr "" -#: html/Admin/Elements/EditCustomFields:96 +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "" -#: html/Admin/Queues/index.html:53 +#: html/Admin/Queues/index.html:52 msgid "All Queues" msgstr "ã™ã¹ã¦ã®ã‚­ãƒ¥ãƒ¼" @@ -641,24 +887,35 @@ msgstr "ã™ã¹ã¦ã®ã‚­ãƒ¥ãƒ¼" msgid "Always sends a message to the requestors independent of message sender" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Applies to" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + #: html/Elements/Tabs:58 msgid "Approval" msgstr "" -#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 #. ($Ticket->Id, $Ticket->Subject) #. ($ticket->id, $msg) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Approval #%1: %2" msgstr "" -#: html/Approvals/index.html:54 +#: html/Approvals/index.html:53 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "" -#: html/Approvals/index.html:52 +#: html/Approvals/index.html:51 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "" @@ -667,15 +924,23 @@ msgstr "" msgid "Approval Details" msgstr "" +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "" -#: etc/initialdata:431 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "" @@ -687,38 +952,71 @@ msgstr "四月" msgid "April" msgstr "" -#: html/Elements/SelectSortOrder:35 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "昇順" -#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +#: NOT FOUND IN SOURCE +msgid "Assign and remove custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AssignCustomFields" +msgstr "" + +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "添付" -#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "添付ファイル" -#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "" -#: html/SelfService/Attachment/dhandler:36 +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "添付ファイル%1ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: lib/RT/Transaction_Overlay.pm:443 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "添付ファイルãŒä½œæˆã•れã¾ã—ãŸ" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "添付ファイルå" -#: html/Ticket/Elements/ShowAttachments:26 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "添付ファイル" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "八月" @@ -727,11 +1025,11 @@ msgstr "八月" msgid "August" msgstr "" -#: html/Admin/Elements/ModifyUser:66 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "自動システム" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "" @@ -743,37 +1041,39 @@ msgstr "" msgid "AutoreplyToRequestors" msgstr "" +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "悪ã„PGPç½²å: %1\\n" -#: html/SelfService/Attachment/dhandler:40 +#: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "æ‚ªã„æ·»ä»˜IDã§ã™ã€‚添付ファイルãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“'%1'\\n" -#: bin/rt-commit-handler:827 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "%1ã®æ‚ªã„データã§ã™" -#: html/SelfService/Attachment/dhandler:43 -#. ($trans, $AttachmentObj->TransactionId()) +#: NOT FOUND IN SOURCE msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "添付ファイルã«ã¨ã£ã¦æ‚ªã„トランザクションナンãƒãƒ¼ã§ã™ã€‚%1ã¯%2\\nã®ã¯ãšã§ã™" -#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +#: 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 "基本" -#: html/Ticket/Update.html:83 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "本当ã«å¤‰æ›´ã‚’ä¿å­˜ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹" -#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "å‰" @@ -781,83 +1081,131 @@ msgstr "å‰" msgid "Begin Approval" msgstr "" -#: etc/initialdata:202 +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "" + +#: etc/initialdata:217 msgid "Blank" msgstr "" -#: html/Search/Listing.html:79 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "ã“ã®æ¤œç´¢ã«ãƒ–ックマークã®ã§ãã‚‹URLã§ã™" -#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "短ã„ヘッダー" -#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 msgid "Bulk ticket update" msgstr "ãƒã‚±ãƒƒãƒˆã®ä¸€æ‹¬ã‚¢ãƒƒãƒ—デート" -#: lib/RT/User_Overlay.pm:1331 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "システムユーザーを修正ã§ãã¾ã›ã‚“" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "" -#: lib/RT/CustomField_Overlay.pm:144 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "æ°åãªã—ã«ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドãƒãƒªãƒ¥ãƒ¼ã®è¿½åŠ ã¯ã§ãã¾ã›ã‚“" -#: lib/RT/Link_Overlay.pm:132 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "ãƒã‚±ãƒƒãƒˆè‡ªä½“ã«ã¯ãƒªãƒ³ã‚¯ã§ãã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:2787 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "ã™ã§ã«çµåˆã—ãŸãƒã‚±ãƒƒãƒˆã«ã¯çµåˆã§ãã¾ã›ã‚“。ã“ã®ã‚¨ãƒ©ãƒ¼ã¯æ±ºã—ã¦å‡ºã•ãªã„ã§ãã ã•ã„" -#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "ベースã¨ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã‚’特定ã§ãã¾ã›ã‚“" -#: html/autohandler:112 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "ユーザー: %1を作æˆã§ãã¾ã›ã‚“" -#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +#: 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:31 +#: html/SelfService/Prefs.html:30 msgid "Change password" msgstr "パスワードを変更ã™ã‚‹" -#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +#: NOT FOUND IN SOURCE +msgid "Check All" +msgstr "" + +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "" -#: html/Admin/Elements/SelectRights:31 +#: html/Admin/Elements/SelectRights:30 msgid "Check box to revoke right" msgstr "権利を無効ã«ã™ã‚‹ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹" -#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +#: 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 "å­ä¾›" -#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "町" +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Clear All" +msgstr "" + #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "" -#: html/SelfService/Elements/Tabs:60 +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "終了ã—ãŸãƒªã‚¯ã‚¨ã‚¹ãƒˆã§ã™" +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Code" msgstr "" @@ -866,11 +1214,11 @@ msgstr "" msgid "Command not understood!\\n" msgstr "ç†è§£ã—ã¦ã„ãªã„コマンド!\\n" -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "コメント" -#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "コメントアドレス" @@ -878,40 +1226,39 @@ msgstr "コメントアドレス" msgid "Comment not recorded" msgstr "記録ã•れã¦ã„ãªã„コメント" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "" -#: html/Admin/Elements/ModifyUser:35 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "コメント" -#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "コメント(リクエスã¨ã—ãŸäººã«ã¯é€ä¿¡ã•れã¾ã›ã‚“)" -#: html/Search/Bulk.html:122 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "コメント(リクエスã¨ã—ãŸäººã«ã¯é€ä¿¡ã•れã¾ã›ã‚“)" -#: html/Elements/ViewUser:27 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "%1ã«ã¤ã„ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆ" -#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¤ã„ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆ" -#: lib/RT/Transaction_Overlay.pm:545 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "コメントãŒè¿½åŠ ã•れã¾ã—ãŸ" -#: lib/RT/Action/Generic.pm:140 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "コメントãŒçŸ­ãã•れã¾ã—ãŸ" @@ -923,11 +1270,11 @@ msgstr "コンパイルè¦åˆ¶" msgid "Condition" msgstr "コンディション" -#: bin/rt-crontool:109 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "" -#: lib/RT/Scrip_Overlay.pm:160 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "コンディションãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" @@ -935,11 +1282,11 @@ msgstr "コンディションãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" msgid "Configuration" msgstr "設定" -#: html/SelfService/Prefs.html:33 +#: html/SelfService/Prefs.html:32 msgid "Confirm" msgstr "確èª" -#: html/Admin/Elements/ModifyUser:60 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "コンタクト情報" @@ -947,23 +1294,31 @@ msgstr "コンタクト情報" msgid "Contacted date '%1' could not be parsed" msgstr "コンタクトã•ã‚ŒãŸæ—¥ã«ã¡'%1'ã‚’è§£æžã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "情報" +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "" -#: etc/initialdata:266 +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "" -#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "メールアドレス" -#: lib/RT/Transaction_Overlay.pm:541 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "通信ãŒè¿½åŠ ã•れã¾ã—ãŸ" @@ -971,7 +1326,7 @@ msgstr "通信ãŒè¿½åŠ ã•れã¾ã—ãŸ" msgid "Correspondence not recorded" msgstr "記録ã•れã¦ã„ãªã„通信" -#: lib/RT/Ticket_Overlay.pm:3458 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "ãƒã‚±ãƒƒãƒˆã®æ–°ã—ã„カスタムフィールドãƒãƒªãƒ¥ãƒ¼ã‚’追加ã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -979,29 +1334,29 @@ msgstr "ãƒã‚±ãƒƒãƒˆã®æ–°ã—ã„カスタムフィールドãƒãƒªãƒ¥ãƒ¼ã‚’追加 msgid "Could not add new custom field value for ticket. %1 " msgstr "" -#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "オーナー変更ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "カスタムフィールドã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "グループã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "テンプレート: %1ã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "ãƒã‚±ãƒƒãƒˆã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚キューãŒã‚»ãƒƒãƒˆã•れã¦ã„ã¾ã›ã‚“" -#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +#: 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 "ユーザーã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -1017,11 +1372,11 @@ msgstr "ãƒã‚±ãƒƒãƒˆã¨ãã®ID%1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" msgid "Could not find group %1." msgstr "グループ %1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’作æˆã¾ãŸã¯è¦‹ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "ãã®è²¬ä»»è€…を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -1029,35 +1384,42 @@ msgstr "ãã®è²¬ä»»è€…を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" msgid "Could not find user %1." msgstr "ユーザー%1を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +#: NOT FOUND IN SOURCE +msgid "Could not load CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "グループをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãã®è²¬ä»»è€…ã‚’%1ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:1443 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "ã“ã®ãƒã‚±ãƒƒãƒˆã§ãã®è²¬ä»»è€…ã‚’%1ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãã®è²¬ä»»è€…ã‚’%1ã¨ã—ã¦å‰Šé™¤ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:1559 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "ã“ã®ãƒã‚±ãƒƒãƒˆã§ãã®è²¬ä»»è€…ã‚’%1ã¨ã—ã¦å‰Šé™¤ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Group_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "グループã«ãƒ¡ãƒ³ãƒãƒ¼ã®è¿½åŠ ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "トランザクション: %1ã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -1070,15 +1432,15 @@ msgstr "GPGã®è¿”事\\nã‹ã‚‰ä½•を行ã£ãŸã‚‰ã‚ˆã„ã®ã‹ã‚ã‹ã‚Šã¾ã›ã‚“ã§ msgid "Couldn't find group\\n" msgstr "グループ\\nãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Interface/Web.pm:866 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "" -#: lib/RT/Group_Overlay.pm:959 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "責任者ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/CustomField_Overlay.pm:175 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "ãã®ãƒãƒªãƒ¥ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" @@ -1090,11 +1452,19 @@ msgstr "" msgid "Couldn't find user\\n" msgstr "ユーザー\\nãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/CurrentUser.pm:112 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "ユーザーデータベース\\nã‹ã‚‰%1をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "" @@ -1107,21 +1477,25 @@ msgstr "RT設定ファイル'%1' %2をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" msgid "Couldn't load Scrips." msgstr "スクリプトをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "グループ%1をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "リンクをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#: NOT FOUND IN SOURCE +msgid "Couldn't load object %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "キューをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "キュー%1をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -1134,38 +1508,41 @@ msgstr "スクリプトをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" msgid "Couldn't load template" msgstr "テンプレートをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Users/Prefs.html:79 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ï¼ˆ%1)をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/SelfService/Display.html:166 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "ãƒã‚±ãƒƒãƒˆ'%1'をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "国" -#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +#: 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 "作æˆ" -#: etc/initialdata:128 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "" -#: html/Admin/Elements/EditCustomField:58 +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + +#: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "カスタムフィールドã®ä½œæˆ" -#: html/Admin/Queues/CustomField.html:48 +#: html/Admin/Queues/CustomField.html:47 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:48 +#: html/Admin/Global/CustomField.html:47 msgid "Create a CustomField which applies to all queues" msgstr "" @@ -1173,6 +1550,10 @@ msgstr "" msgid "Create a new Custom Field" msgstr "æ–°ã—ã„カスタムフィールドã®ä½œæˆ" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "" @@ -1181,11 +1562,11 @@ msgstr "" msgid "Create a new global scrip" msgstr "æ–°ã—ã„グローãƒãƒ«ã‚¹ã‚¯ãƒªãƒ—トã®ä½œæˆ" -#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 msgid "Create a new group" msgstr "æ–°ã—ã„グループã®ä½œæˆ" -#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 msgid "Create a new personal group" msgstr "æ–°ã—ã„個人グループã®ä½œæˆ" @@ -1201,11 +1582,11 @@ msgstr "" msgid "Create a new template" msgstr "æ–°ã—ã„テンプレートã®ä½œæˆ" -#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 msgid "Create a new ticket" msgstr "æ–°ã—ã„ãƒã‚±ãƒƒãƒˆã®ä½œæˆ" -#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "æ–°ã—ã„ユーザーã®ä½œæˆ" @@ -1217,19 +1598,31 @@ msgstr "キューã®ä½œæˆ" msgid "Create a queue called" msgstr "呼ã³å‡ºã•れãŸã‚­ãƒ¥ãƒ¼ã®ä½œæˆ" -#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +#: NOT FOUND IN SOURCE msgid "Create a request" msgstr "リクエストã®ä½œæˆ" -#: html/Admin/Queues/Scrip.html:59 +#: html/Admin/Queues/Scrip.html:58 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "" -#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 msgid "Create a template" msgstr "テンプレートã®ä½œæˆ" +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "" @@ -1238,23 +1631,23 @@ msgstr "" msgid "Create failed: %1/%2/%3" msgstr "" -#: etc/initialdata:130 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "" -#: html/SelfService/Create.html:81 +#: html/SelfService/Create.html:77 msgid "Create ticket" msgstr "ãƒã‚±ãƒƒãƒˆã®ä½œæˆ" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "" @@ -1262,105 +1655,129 @@ msgstr "" msgid "Create, delete and modify the members of any user's personal groups" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "Create, delete and modify the members of personal groups" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "Create, delete and modify users" msgstr "" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "作æˆã—ã¾ã—ãŸ" -#: html/Admin/Elements/EditCustomField:71 +#: html/Admin/Elements/EditCustomField:87 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "カスタムフィールド%1を作æˆã—ã¾ã—ãŸ" +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "テンプレート%1を作æˆã—ã¾ã—ãŸ" -#: html/Ticket/Elements/EditLinks:28 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "ç¾åœ¨ã®é–¢ä¿‚" -#: html/Admin/Elements/EditScrips:30 +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "" + +#: html/Admin/Elements/EditScrips:29 msgid "Current Scrips" msgstr "" -#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "ç¾åœ¨ã®ãƒ¡ãƒ³ãƒãƒ¼" -#: html/Admin/Elements/SelectRights:29 +#: html/Admin/Elements/SelectRights:28 msgid "Current rights" msgstr "ç¾åœ¨ã®æ¨©åˆ©" -#: html/Search/Listing.html:71 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "" -#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "ç¾åœ¨ã®ã‚¦ã‚©ãƒƒãƒãƒ£ãƒ¼" -#: html/Admin/Global/CustomField.html:55 +#: html/Admin/Global/CustomField.html:54 #. ($CustomField) msgid "Custom Field #%1" msgstr "" -#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +#: 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 "カスタムフィールド" -#: html/Admin/Elements/EditScrip:73 +#: NOT FOUND IN SOURCE +msgid "Custom Fields for %1" +msgstr "" + +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "カスタムフィールド%1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: NOT FOUND IN SOURCE +msgid "Custom field %1 does not apply to this object" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "カスタムフィールド%1ã¯ãƒãƒªãƒ¥ãƒ¼ãŒã‚りã¾ã™" -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "カスタムフィールド%1ã¯ãƒãƒªãƒ¥ãƒ¼ãŒã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:3360 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "カスタムフィールド%1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: html/Admin/Elements/EditCustomFields:197 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3510 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "カスタムフィールドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: lib/RT/CustomField_Overlay.pm:283 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "カスタムフィールド%2ã®ãŸã‚ã®ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドãƒãƒªãƒ¥ãƒ¼%1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" @@ -1369,19 +1786,19 @@ msgstr "カスタムフィールド%2ã®ãŸã‚ã®ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドムmsgid "Custom field value changed from %1 to %2" msgstr "カスタムフィールドãŒ%1ã‹ã‚‰%2ã«å¤‰æ›´ã•れã¾ã—ãŸ" -#: lib/RT/CustomField_Overlay.pm:185 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "カスタムフィールドãƒãƒªãƒ¥ãƒ¼ã¯å‰Šé™¤ã•れã¾ã›ã‚“" -#: lib/RT/CustomField_Overlay.pm:289 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "カスタムフィールドãƒãƒªãƒ¥ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "カスタムフィールドãƒãƒªãƒ¥ãƒ¼ãŒå‰Šé™¤ã•れã¾ã—ãŸ" -#: lib/RT/Transaction_Overlay.pm:550 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "" @@ -1389,7 +1806,7 @@ msgstr "" msgid "Data error" msgstr "" -#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +#: 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 "日付" @@ -1405,68 +1822,88 @@ msgstr "" msgid "Default Autoresponse Template" msgstr "" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "" -#: etc/initialdata:275 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "" -#: etc/initialdata:257 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "" -#: etc/initialdata:267 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "" -#: lib/RT/Transaction_Overlay.pm:645 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "" -#: html/User/Delegation.html:25 html/User/Delegation.html:28 +#: html/User/Delegation.html:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "ä»£è¡¨è€…ã®æ¨©åˆ©" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "Delegate specific rights which have been granted to you." msgstr "" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "DelegateRights" msgstr "" -#: html/User/Elements/Tabs:38 +#: html/User/Elements/Tabs:37 msgid "Delegation" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "削除" -#: lib/RT/Queue_Overlay.pm:90 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "ã“ã®ã‚ªãƒ–ジェクトを削除ã™ã‚‹ã¨æŒ‡ç¤ºã®å®Œå…¨æ€§ãŒããšã•れるå¯èƒ½æ€§ãŒã‚りã¾ã™" -#: lib/RT/Queue_Overlay.pm:292 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "ã“ã®ã‚ªãƒ–ジェクトを削除ã™ã‚‹ã¨æŒ‡ç¤ºã®å®Œå…¨æ€§ãŒããšã•れã¾ã™" -#: lib/RT/User_Overlay.pm:430 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "ã“ã®ã‚ªãƒ–ジェクトを削除ã™ã‚‹ã¨æŒ‡ç¤ºã®å®Œå…¨æ€§ãŒå¦¨å®³ã•れã¾ã™" @@ -1478,11 +1915,11 @@ msgstr "" msgid "Deleting this object would violate referential integrity. That's bad." msgstr "" -#: html/Approvals/Elements/Approve:46 +#: html/Approvals/Elements/Approve:44 msgid "Deny" msgstr "" -#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +#: 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 "次ã®ã‚‚ã®æ¬¡ç¬¬ã§ã‚ã‚‹" @@ -1490,7 +1927,27 @@ msgstr "次ã®ã‚‚ã®æ¬¡ç¬¬ã§ã‚ã‚‹" msgid "Dependencies: \\n" msgstr "従属ãƒã‚±ãƒƒãƒˆ: \\n" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "ã«ã‚ˆã‚‹" @@ -1498,64 +1955,83 @@ msgstr "ã«ã‚ˆã‚‹" msgid "DependsOn" msgstr "" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "é™é †ã™ã‚‹" -#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 msgid "Describe the issue below" msgstr "下ã®å•題点を表ã™" -#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +#: 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 "記述" -#: html/SelfService/Elements/MyRequests:44 +#: NOT FOUND IN SOURCE msgid "Details" msgstr "詳細" -#: html/Ticket/Elements/Tabs:85 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "表ã™" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "" -#: lib/RT/Queue_Overlay.pm:75 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "" -#: html/Ticket/Elements/ShowHistory:35 +#: html/Ticket/Elements/ShowHistory:34 msgid "Display mode" msgstr "モードを表ã™" -#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 -#. ($Ticket->id) +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "ãƒã‚±ãƒƒãƒˆ#%1を表ã™" -#: lib/RT/System.pm:54 +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + +#: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "" -#: html/Elements/Refresh:30 +#: html/Elements/Refresh:29 msgid "Don't refresh this page." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã‚’æ›´æ–°ã—ãªã„ã§ãã ã•ã„" -#: html/Search/Elements/PickRestriction:114 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "ダウンロード" -#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download as a tab-delimited file" +msgstr "" + +#: 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 "期é™åˆ‡ã‚Œ" @@ -1563,8 +2039,7 @@ msgstr "期é™åˆ‡ã‚Œ" msgid "Due date '%1' could not be parsed" msgstr "期é™ãŒåˆ‡ã‚Œã‚‹æ—¥'%1'ã¯è§£æžã•れã¾ã›ã‚“" -#: bin/rt-commit-handler:754 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "ERROR: ã¯ãƒã‚±ãƒƒãƒˆ '%1': %2.\\nをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -1581,10 +2056,22 @@ msgstr "" msgid "Edit Custom Fields for %1" msgstr "%1ã®ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドを編集ã™ã‚‹" -#: html/Ticket/ModifyLinks.html:36 -msgid "Edit Relationships" +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "関係を編集ã™ã‚‹" +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit Relationships" +msgstr "" + #: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" @@ -1594,11 +2081,15 @@ msgstr "" msgid "Edit keywords" msgstr "" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "スクリプトを編集ã™ã‚‹" -#: html/Admin/Global/index.html:46 +#: html/Admin/Global/index.html:45 msgid "Edit system templates" msgstr "システムテンプレートを編集ã™ã‚‹" @@ -1606,28 +2097,34 @@ msgstr "システムテンプレートを編集ã™ã‚‹" msgid "Edit templates for %1" msgstr "%1ã®ãƒ†ãƒ³ãƒ—レートを編集ã™ã‚‹" -#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "キュー%1ã®è¨­å®šã‚’編集ã™ã‚‹" -#: html/Admin/Elements/ModifyUser:25 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "ユーザー%1ã®è¨­å®šã‚’編集ã™ã‚‹" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/Elements/EditCustomField:90 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "カスタムフィールド%1を編集ã™ã‚‹" -#: html/Admin/Groups/Members.html:32 +#: html/Admin/Groups/Members.html:31 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "グループ%1ã®ä¼šå“¡ã‚’編集ã™ã‚‹" -#: html/User/Groups/Members.html:129 +#: html/User/Groups/Members.html:128 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "個人グループ%1ã®ä¼šå“¡ã‚’編集ã™ã‚‹" @@ -1636,64 +2133,96 @@ msgstr "個人グループ%1ã®ä¼šå“¡ã‚’編集ã™ã‚‹" msgid "Editing template %1" msgstr "テンプレート%1を編集ã™ã‚‹" -#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "ベースもã—ãã¯ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã‚’特定ã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“" -#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "Eメール" -#: lib/RT/User_Overlay.pm:188 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "ãŠä½¿ã„ã®Eメールアドレス" -#: html/Admin/Elements/ModifyUser:42 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "Eメールアドレス" -#: html/Admin/Elements/ModifyUser:54 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "Eメールエンコーディング" -#: html/Admin/Elements/EditCustomField:36 +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + +#: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "" -#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 msgid "Enabled (Unchecking this box disables this group)" msgstr "" -#: html/Admin/Queues/Modify.html:84 +#: html/Admin/Queues/Modify.html:83 msgid "Enabled (Unchecking this box disables this queue)" msgstr "有効ã«ãªã‚Šã¾ã—ãŸï¼ˆã‚‚ã†ä¸€åº¦ã“ã®ãƒœãƒƒã‚¯ã‚¹ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã“ã®ã‚­ãƒ¥ãƒ¼ã¯æœ‰åйã§ãªããªã‚Šã¾ã™ï¼‰" -#: html/Admin/Elements/EditCustomFields:99 +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "" -#: html/Admin/Queues/index.html:56 +#: html/Admin/Queues/index.html:55 msgid "Enabled Queues" msgstr "有効ãªã‚­ãƒ¥ãƒ¼" -#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#: 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 "有効ãªã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹%1" -#: lib/RT/CustomField_Overlay.pm:361 +#: NOT FOUND IN SOURCE +msgid "Enabled status: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "" -#: lib/RT/CustomField_Overlay.pm:358 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "" -#: html/Ticket/Elements/EditLinks:112 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "ãƒã‚±ãƒƒãƒˆã‚’リンクã™ã‚‹ãƒã‚±ãƒƒãƒˆã¾ãŸã¯URLsを入力ã—ã¦ãã ã•ã„。入力ã™ã‚‹é …ç›®ãŒã„ãã¤ã‹ã‚ã‚‹å ´åˆã«ã¯ã‚¹ãƒšãƒ¼ã‚¹ã§åŒºåˆ‡ã£ã¦ãã ã•ã„。" -#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +#: NOT FOUND IN SOURCE +msgid "Enter up to %1 values" +msgstr "" + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "エラー" @@ -1701,51 +2230,79 @@ msgstr "エラー" msgid "Error adding watcher" msgstr "" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1356 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1532 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Ticket->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "" -#: bin/rt-crontool:194 +#: bin/rt-crontool:190 msgid "Example:" msgstr "" -#: html/Admin/Elements/ModifyUser:64 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "外部ã®èªè¨¼ID" -#: html/Admin/Elements/ModifyUser:58 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "外部ã®ã‚³ãƒ³ã‚¿ã‚¯ãƒˆæƒ…å ±ID" -#: html/Admin/Users/Modify.html:73 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "ãã®ä»–ã®æƒ…å ±" -#: lib/RT/User_Overlay.pm:302 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "'特権ã®ã‚ã‚‹'ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ“¬ä¼¼ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¤œç´¢ãŒå¤±æ•—ã—ã¾ã—ãŸ" -#: lib/RT/User_Overlay.pm:309 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "'特権ã®ãªã„'ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ“¬ä¼¼ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¤œç´¢ãŒå¤±æ•—ã—ã¾ã—ãŸ" -#: bin/rt-crontool:138 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "" @@ -1758,31 +2315,51 @@ msgstr "二月" msgid "February" msgstr "" +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in multiple text areas" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in one text area" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in up to %1 text areas" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "終了" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "最終優先順ä½" -#: lib/RT/Ticket_Overlay.pm:1162 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "" -#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "" -#: html/Elements/Quicksearch:25 +#: NOT FOUND IN SOURCE +msgid "Find groups whose" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "æ–°ã—ã„/é–‹ããƒã‚±ãƒƒãƒˆã‚’見ã¤ã‘ã‚‹" -#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "人々を見ã¤ã‘ã‚‹" -#: html/Search/Listing.html:108 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "" @@ -1790,44 +2367,48 @@ msgstr "" msgid "Finish Approval" msgstr "" -#: html/Ticket/Elements/Tabs:58 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "最åˆã®" -#: html/Search/Listing.html:41 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "最åˆã®ãƒšãƒ¼ã‚¸" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "Foo Bar Baz" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "ã°ã‹ï¼" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "変更を強制ã—ã¾ã™" -#: html/Search/Listing.html:106 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "" -#: lib/RT/Interface/Web.pm:868 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "" -#: html/Admin/Elements/ModifyUser:44 +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "フリーフォームコンタクト情報" -#: lib/RT/CustomField_Overlay.pm:38 +#: lib/RT/CustomField_Overlay.pm:37 msgid "FreeformMultiple" msgstr "" -#: lib/RT/CustomField_Overlay.pm:37 +#: lib/RT/CustomField_Overlay.pm:36 msgid "FreeformSingle" msgstr "" @@ -1835,23 +2416,31 @@ msgstr "" msgid "Fri." msgstr "金曜日" -#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 msgid "Full headers" msgstr "フルヘッダー" +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "pgp sig\\nã‹ã‚‰ç¾åœ¨ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’å¾—ã‚‹" -#: lib/RT/Transaction_Overlay.pm:595 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "" -#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 msgid "Global" msgstr "グローãƒãƒ«" +#: NOT FOUND IN SOURCE +msgid "Global Custom Fields" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "" @@ -1860,12 +2449,16 @@ msgstr "" msgid "Global Scrips" msgstr "グローãƒãƒ«ã‚¹ã‚¯ãƒªãƒ—ト" -#: html/Admin/Elements/SelectTemplate:38 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "" -#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "行ãï¼" @@ -1873,11 +2466,11 @@ msgstr "行ãï¼" msgid "Good pgp sig from %1\\n" msgstr "%1\\nã‹ã‚‰ã®è‰¯ã„pgp sig" -#: html/Search/Listing.html:50 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "ページã¸è¡Œã" -#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "ãƒã‚±ãƒƒãƒˆã«è¡Œã" @@ -1885,7 +2478,7 @@ msgstr "ãƒã‚±ãƒƒãƒˆã«è¡Œã" msgid "Grand" msgstr "" -#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "" @@ -1893,11 +2486,11 @@ msgstr "" msgid "Group %1 %2: %3" msgstr "グループ%1 %2: %3" -#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +#: 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 "グループ権利" -#: lib/RT/Group_Overlay.pm:965 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "グループã«ã¯ã™ã§ã«ãƒ¡ãƒ³ãƒãƒ¼ãŒã„ã¾ã™" @@ -1905,7 +2498,7 @@ msgstr "グループã«ã¯ã™ã§ã«ãƒ¡ãƒ³ãƒãƒ¼ãŒã„ã¾ã™" msgid "Group could not be created." msgstr "" -#: html/Admin/Groups/Modify.html:77 +#: html/Admin/Groups/Modify.html:76 #. ($create_msg) msgid "Group could not be created: %1" msgstr "" @@ -1914,11 +2507,11 @@ msgstr "" msgid "Group created" msgstr "グループãŒä½œæˆã•れã¾ã—ãŸ" -#: lib/RT/Group_Overlay.pm:1133 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "" -#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +#: 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 "グループãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" @@ -1930,36 +2523,56 @@ msgstr "グループãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。\\n" msgid "Group not specified.\\n" msgstr "グループãŒç‰¹å®šã§ãã¾ã›ã‚“。\\n" -#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +#: 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 "グループ" -#: lib/RT/Group_Overlay.pm:971 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "グループã¯å½¼ã‚‰ã®ãƒ¡ãƒ³ãƒãƒ¼ã«ã¯ãªã‚Œã¾ã›ã‚“" -#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +#: NOT FOUND IN SOURCE +msgid "Groups matching search criteria" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Groups this user belongs to" +msgstr "" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "ã“ã‚“ã«ã¡ã¯ï¼" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "ã“ã‚“ã«ã¡ã¯ã€%1" -#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "ヒストリー" -#: html/Admin/Elements/ModifyUser:68 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the user %1" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "自宅ã®é›»è©±" -#: html/Elements/Tabs:46 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "ホームページ" -#: lib/RT/Base.pm:74 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "" @@ -1968,55 +2581,75 @@ msgstr "" msgid "I have [quant,_1,concrete mixer]." msgstr "ç§ã¯[quant,_1,concrete mixer]ãŒã‚りã¾ã™ã€‚" -#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +#: 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:44 html/User/Prefs.html:39 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "身分証明書" -#: etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "" -#: bin/rt-crontool:190 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "" -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: 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 "上ã®ä½•ã‹ã‚’アップデートã—ãŸãªã‚‰ã€æ¬¡ã®ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„" -#: lib/RT/Interface/Web.pm:860 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "" -#: lib/RT/Interface/Web.pm:863 +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "" + +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "" -#: html/Admin/Elements/EditCustomFields:74 +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "" -#: html/Admin/Queues/index.html:43 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "リストã®ç„¡åйãªã‚­ãƒ¥ãƒ¼ã‚’å«ã‚€" -#: html/Admin/Users/index.html:47 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "検索ã®ç„¡åйãªãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’å«ã‚€" -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "最åˆã®å„ªå…ˆæ¨©" -#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "入力エラー" @@ -2024,11 +2657,11 @@ msgstr "入力エラー" msgid "Interest noted" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3729 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "" @@ -2037,7 +2670,7 @@ msgstr "" msgid "Invalid Group Type" msgstr "無効ãªã‚°ãƒ«ãƒ¼ãƒ—タイプã§ã™" -#: lib/RT/Principal_Overlay.pm:128 +#: lib/RT/Principal_Overlay.pm:127 msgid "Invalid Right" msgstr "" @@ -2045,44 +2678,44 @@ msgstr "" msgid "Invalid Type" msgstr "" -#: lib/RT/Interface/Web.pm:865 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "" -#: lib/RT/Ticket_Overlay.pm:438 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "無効ãªã‚ªãƒ¼ãƒŠãƒ¼ã§ã™ã€‚ '誰ã§ã‚‚ãªã„'ã«åˆæœŸè¨­å®šã—ã¾ã™." -#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "無効ãªã‚­ãƒ¥ãƒ¼ã§ã™" -#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +#: 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 "ç„¡åŠ¹ãªæ¨©åˆ©ã§ã™" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "%1ã«ã¯ç„¡åйãªãƒãƒªãƒ¥ãƒ¼ã§ã™" -#: lib/RT/Ticket_Overlay.pm:3367 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "カスタムフィールドã«ã¯ç„¡åйãªãƒãƒªãƒ¥ãƒ¼ã§ã™" -#: lib/RT/Ticket_Overlay.pm:345 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "ステータスã«ã¯ç„¡åйãªãƒãƒªãƒ¥ãƒ¼ã§ã™" -#: bin/rt-crontool:191 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "" -#: bin/rt-crontool:192 +#: 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 "" -#: bin/rt-crontool:163 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "" @@ -2110,7 +2743,7 @@ msgstr "七月" msgid "July" msgstr "" -#: html/Ticket/Elements/Tabs:99 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "大ãã„" @@ -2126,27 +2759,35 @@ msgstr "" msgid "Keyword" msgstr "キーワード" -#: html/Admin/Elements/ModifyUser:52 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "é•·ã„" -#: html/Ticket/Elements/Tabs:73 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "最後ã®" -#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "最後ã®ã‚³ãƒ³ã‚¿ã‚¯ãƒˆ" -#: html/Elements/SelectDateType:29 +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + +#: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "最後ã«ã‚³ãƒ³ã‚¿ã‚¯ãƒˆã—ãŸ" -#: html/Search/Elements/TicketHeader:41 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "" -#: html/Elements/SelectDateType:30 +#: html/Elements/SelectDateType:29 msgid "Last Updated" msgstr "最後ã«ã‚¢ãƒƒãƒ—デートã—ãŸ" @@ -2154,15 +2795,19 @@ msgstr "最後ã«ã‚¢ãƒƒãƒ—デートã—ãŸ" msgid "LastUpdated" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "残ã£ãŸ" -#: html/Admin/Users/Modify.html:83 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’RTã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¾ã™" -#: html/Admin/Users/Modify.html:87 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ¨©åˆ©ã‚’èªã‚ã¾ã™" @@ -2174,29 +2819,29 @@ msgstr "オーナーを%1 %2ã«åˆ¶é™ã—ã¾ã™" msgid "Limiting queue to %1 %2" msgstr "キューを%1 %2ã«åˆ¶é™ã—ã¾ã™" -#: lib/RT/Ticket_Overlay.pm:2697 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "リンクã¯ã™ã§ã«å­˜åœ¨ã—ã¦ã„ã¾ã™" -#: lib/RT/Ticket_Overlay.pm:2709 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "リンクãŒä½œæˆã•れã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "リンクãŒä½œæˆã•れã¾ã—ãŸï¼ˆ%1)" -#: lib/RT/Ticket_Overlay.pm:2638 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "リンクãŒå‰Šé™¤ã•れã¾ã—ãŸï¼ˆ%1)" -#: lib/RT/Ticket_Overlay.pm:2644 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "リンクãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "リンクãƒã‚±ãƒƒãƒˆ#%1" @@ -2205,85 +2850,109 @@ msgstr "リンクãƒã‚±ãƒƒãƒˆ#%1" msgid "Link ticket %1" msgstr "" -#: html/Ticket/Elements/Tabs:97 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "リンク" -#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "場所" -#: lib/RT.pm:158 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "ログディレクトリー%1ãŒè¦‹ã¤ã‹ã‚‰ãªã„ã€ã¾ãŸã¯æ›¸ã出ã›ã¾ã›ã‚“。\\n RTãŒå‹•ãã¾ã›ã‚“" -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "%1ã¨ã—ã¦ã‚µã‚¤ãƒ³ã™ã‚‹" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +#: 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 "ログイン" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "ログアウト" -#: html/Search/Bulk.html:86 +#: NOT FOUND IN SOURCE +msgid "Lookup type mismatch" +msgstr "" + +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "オーナーを決ã‚ã‚‹" -#: html/Search/Bulk.html:102 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "ステータスを決ã‚ã‚‹" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "æœŸé™æœŸæ—¥ã‚’決ã‚ã‚‹" -#: html/Search/Bulk.html:110 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "è§£æžæœŸæ—¥ã‚’決ã‚ã‚‹" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "é–‹å§‹ã—ãŸæ—¥ã‚’決ã‚ã‚‹" -#: html/Search/Bulk.html:106 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "開始日を決ã‚ã‚‹" -#: html/Search/Bulk.html:108 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "ã„ã‚ã‚ŒãŸæ—¥ã‚’決ã‚ã‚‹" -#: html/Search/Bulk.html:99 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "優先順ä½ã‚’決ã‚ã‚‹" -#: html/Search/Bulk.html:100 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "キューを決ã‚ã‚‹" -#: html/Search/Bulk.html:98 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "サブジェクトを決ã‚ã‚‹" -#: html/Admin/index.html:33 +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Manage custom fields and custom field values" +msgstr "" + +#: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "" -#: html/Admin/index.html:39 +#: html/Admin/index.html:38 msgid "Manage properties and configuration which apply to all queues" msgstr "" -#: html/Admin/index.html:36 +#: html/Admin/index.html:35 msgid "Manage queues and queue-specific properties" msgstr "" -#: html/Admin/index.html:30 +#: html/Admin/index.html:29 msgid "Manage users and passwords" msgstr "" @@ -2303,19 +2972,29 @@ msgstr "" msgid "May." msgstr "五月" -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "メンãƒãƒ¼ãŒè¿½åŠ ã•れã¾ã—ãŸ" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "メンãƒãƒ¼ãŒå‰Šé™¤ã•れã¾ã—ãŸ" -#: lib/RT/Group_Overlay.pm:1144 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "メンãƒãƒ¼ãŒå‰Šé™¤ã•れã¦ã„ã¾ã›ã‚“" -#: html/Elements/SelectLinkType:26 +#: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "ã®ãƒ¡ãƒ³ãƒãƒ¼" @@ -2323,39 +3002,90 @@ msgstr "ã®ãƒ¡ãƒ³ãƒãƒ¼" msgid "MemberOf" msgstr "" -#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "メンãƒãƒ¼" -#: lib/RT/Ticket_Overlay.pm:2843 +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships of the user %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "çµåˆãŒæˆåŠŸã—ã¾ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:2804 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "çµåˆãŒå¤±æ•—ã—ã¾ã—ãŸã€‚有効ãªIDãŒè¨­å®šã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Ticket/Elements/EditLinks:115 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "ã«çµåˆ" -#: html/Ticket/Update.html:102 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "" -#: lib/RT/Interface/Web.pm:867 +#: NOT FOUND IN SOURCE +msgid "Message body not shown because it is too large or is not plain text." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "" -#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "æºå¸¯" -#: html/Admin/Elements/ModifyUser:72 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "æºå¸¯é›»è©±" -#: lib/RT/Queue_Overlay.pm:70 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "" @@ -2363,15 +3093,31 @@ msgstr "" msgid "Modify Custom Field %1" msgstr "カスタムフィールド%1を修正ã™ã‚‹" -#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all %1" +msgstr "" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "" @@ -2383,43 +3129,55 @@ msgstr "" msgid "Modify Template %1" msgstr "" -#: html/Admin/Queues/CustomField.html:45 +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + +#: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:53 +#: html/Admin/Global/CustomField.html:52 msgid "Modify a CustomField which applies to all queues" msgstr "" -#: html/Admin/Queues/Scrip.html:54 +#: html/Admin/Queues/Scrip.html:53 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "" -#: html/Admin/Global/Scrip.html:48 +#: html/Admin/Global/Scrip.html:47 msgid "Modify a scrip which applies to all queues" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify associated objects for %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "" -#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "#%1ã®æœŸæ—¥ã‚’修正ã™ã‚‹" -#: html/Ticket/ModifyDates.html:35 +#: html/Ticket/ModifyDates.html:34 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "ãƒã‚±ãƒƒãƒˆ#%1ã®æœŸæ—¥ã‚’修正ã™ã‚‹" -#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 msgid "Modify global group rights" msgstr "グローãƒãƒ«ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¨©åˆ©ã‚’修正ã™ã‚‹" -#: html/Admin/Global/GroupRights.html:33 +#: html/Admin/Global/GroupRights.html:32 msgid "Modify global group rights." msgstr "グローãƒãƒ«ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¨©åˆ©ã‚’修正ã™ã‚‹" @@ -2435,11 +3193,11 @@ msgstr "" msgid "Modify global scrips" msgstr "グローãƒãƒ«ã‚¹ã‚¯ãƒªãƒ—トを修正ã™ã‚‹" -#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 msgid "Modify global user rights" msgstr "" -#: html/Admin/Global/UserRights.html:33 +#: html/Admin/Global/UserRights.html:32 msgid "Modify global user rights." msgstr "グローãƒãƒ«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ¨©åˆ©ã‚’修正ã™ã‚‹" @@ -2447,12 +3205,16 @@ msgstr "グローãƒãƒ«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ¨©åˆ©ã‚’修正ã™ã‚‹" msgid "Modify group metadata or delete group" msgstr "" -#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "" + +#: 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 "%1ã®ã‚°ãƒ«ãƒ¼ãƒ—権利を修正ã™ã‚‹" -#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "キュー%1ã®ã‚°ãƒ«ãƒ¼ãƒ—権利を修正ã™ã‚‹" @@ -2461,74 +3223,78 @@ msgstr "キュー%1ã®ã‚°ãƒ«ãƒ¼ãƒ—権利を修正ã™ã‚‹" msgid "Modify membership roster for this group" msgstr "" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "Modify one's own RT account" msgstr "" -#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "キュー%1ã«é–¢ä¿‚ã®ã‚る人々を修正ã™ã‚‹" -#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#: 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 "ãƒã‚±ãƒƒãƒˆ#%1ã«é–¢ä¿‚ã®ã‚る人々を修正ã™ã‚‹" -#: html/Admin/Queues/Scrips.html:44 +#: html/Admin/Queues/Scrips.html:45 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "キュー%1ã®ã‚¹ã‚¯ãƒªãƒ—トを修正ã™ã‚‹" -#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 msgid "Modify scrips which apply to all queues" msgstr "" -#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#: 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 "テンプレート%1を修正ã™ã‚‹" -#: html/Admin/Global/Templates.html:44 +#: html/Admin/Global/Templates.html:43 msgid "Modify templates which apply to all queues" msgstr "" -#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 #. ($Group->Name) msgid "Modify the group %1" msgstr "グループ%1を修正ã™ã‚‹" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "" -#: html/Admin/Users/Modify.html:236 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "ユーザー%1を修正ã™ã‚‹" -#: html/Ticket/ModifyAll.html:37 +#: html/Ticket/ModifyAll.html:36 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "ãƒã‚±ãƒƒãƒˆ# %1を修正ã™ã‚‹" -#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "ãƒã‚±ãƒƒãƒˆ#%1を修正ã™ã‚‹" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "" -#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify user rights for custom field %1" +msgstr "" + +#: 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 "グループ%1ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼æ¨©åˆ©ã‚’修正ã™ã‚‹" -#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "キュー%1ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼æ¨©åˆ©ã‚’修正ã™ã‚‹" @@ -2537,7 +3303,7 @@ msgstr "キュー%1ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼æ¨©åˆ©ã‚’修正ã™ã‚‹" msgid "Modify watchers for queue '%1'" msgstr "キュー'%1'ã®ã‚¦ã‚©ãƒƒãƒãƒ£ãƒ¼ã‚’修正ã™ã‚‹" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "" @@ -2545,23 +3311,23 @@ msgstr "" msgid "ModifyOwnMembership" msgstr "" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "ModifySelf" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "" @@ -2569,43 +3335,60 @@ msgstr "" msgid "Mon." msgstr "月曜日" -#: html/Ticket/Elements/ShowRequestor:42 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "ã•らã«%1ã«ã¤ã„ã¦" -#: html/Admin/Elements/EditCustomFields:61 +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "" -#: html/Admin/Elements/EditCustomFields:53 +#: html/Admin/Elements/EditCustomFields:52 msgid "Move up" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:27 +#: html/Admin/Elements/SelectSingleOrMultiple:26 msgid "Multiple" msgstr "多ãã®" -#: lib/RT/User_Overlay.pm:179 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "'åå‰'ã®å±žæ€§ã‚’特定ã—ã¦ãã ã•ã„" +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "" -#: html/Approvals/index.html:25 html/Approvals/index.html:26 +#: html/Approvals/index.html:24 html/Approvals/index.html:25 msgid "My approvals" msgstr "" -#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "åå‰" -#: lib/RT/User_Overlay.pm:186 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "ç¾åœ¨ãŠä½¿ã„ã®åå‰" +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "" @@ -2614,55 +3397,71 @@ msgstr "" msgid "Never" msgstr "" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "æ–°ã—ã„" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "æ–°ã—ã„関係" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "æ–°ã—ã„パスワード" -#: etc/initialdata:311 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "" -#: html/Ticket/Elements/EditLinks:111 +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "New Relationships" -msgstr "æ–°ã—ã„関係" +msgstr "" -#: html/Ticket/Elements/Tabs:36 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "" -#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + +#: 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 "" -#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 msgid "New group" msgstr "" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:31 msgid "New password" msgstr "æ–°ã—ã„パスワード" -#: lib/RT/User_Overlay.pm:639 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "æ–°ã—ã„パスワード情報ãŒé€ã‚‰ã‚Œã¾ã—ãŸ" -#: html/Admin/Elements/QueueTabs:70 +#: html/Admin/Elements/QueueTabs:69 msgid "New queue" msgstr "" -#: html/SelfService/Elements/Tabs:63 +#: NOT FOUND IN SOURCE msgid "New request" msgstr "æ–°ã—ã„リクエスト" -#: html/Admin/Elements/SelectRights:42 +#: html/Admin/Elements/SelectRights:41 msgid "New rights" msgstr "æ–°ã—ã„æ¨©åˆ©" -#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +#: 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 "" @@ -2670,67 +3469,91 @@ msgstr "" msgid "New search" msgstr "æ–°ã—ã„æ¤œç´¢" -#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +#: 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 "" -#: lib/RT/Ticket_Overlay.pm:2771 +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "æ–°ã—ã„ãƒã‚±ãƒƒãƒˆã¯ã‚りã¾ã›ã‚“" -#: html/Admin/Elements/UserTabs:52 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "" -#: html/Admin/Elements/CreateUserCalled:26 +#: html/Admin/Elements/CreateUserCalled:25 msgid "New user called" msgstr "æ–°ã—ã„ユーザーãŒå‘¼ã°ã‚Œã¾ã—ãŸ" -#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 msgid "New watchers" msgstr "æ–°ã—ã„ウォッãƒãƒ£ãƒ¼" -#: html/Admin/Users/Prefs.html:42 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "æ–°ã—ã„ウインドウ設定" -#: html/Ticket/Elements/Tabs:69 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "次ã¸" -#: html/Search/Listing.html:48 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "次ã®ãƒšãƒ¼ã‚¸" -#: html/Admin/Elements/ModifyUser:50 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "" -#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "ニックãƒãƒ¼ãƒ " -#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "カスタムフィールドãŒã‚りã¾ã›ã‚“" -#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "グループãŒå®šç¾©ã•れã¾ã›ã‚“" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "キューãŒå®šç¾©ã•れã¾ã›ã‚“" -#: bin/rt-crontool:56 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "RTユーザーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。RT管ç†è€…ã«ç›¸è«‡ã—ã¦ãã ã•ã„。\\n" -#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 msgid "No Template" msgstr "テンプレートãŒã‚りã¾ã›ã‚“" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "ãƒã‚±ãƒƒãƒˆãŒç‰¹å®šã§ãã¾ã›ã‚“。ãƒã‚±ãƒƒãƒˆã‚’終了ã—ã¾ã™" @@ -2738,11 +3561,11 @@ msgstr "ãƒã‚±ãƒƒãƒˆãŒç‰¹å®šã§ãã¾ã›ã‚“。ãƒã‚±ãƒƒãƒˆã‚’終了ã—ã¾ã™" msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "ãƒã‚±ãƒƒãƒˆãŒç‰¹å®šã§ãã¾ã›ã‚“。ãƒã‚±ãƒƒãƒˆã®ä¿®æ­£ã‚’終了ã—ã¾ã™\\n\\n" -#: html/Approvals/Elements/Approve:47 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "" -#: lib/RT/Interface/Web.pm:862 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "" @@ -2750,57 +3573,64 @@ msgstr "" msgid "No command found\\n" msgstr "コマンドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\\n" -#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«é–¢ã—ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆã¯å…¥åŠ›ã•れã¦ã„ã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "é€šä¿¡æ–‡æ›¸ã®æ·»ä»˜ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#: 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 "%1記述ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Users_Overlay.pm:151 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "グループãŒç‰¹å®šã§ãã¾ã›ã‚“" -#: lib/RT/User_Overlay.pm:857 +#: NOT FOUND IN SOURCE +msgid "No groups matching search criteria found." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "パスワードãŒè¨­å®šã•れã¾ã›ã‚“" -#: lib/RT/Queue_Overlay.pm:259 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "キューを作æˆã™ã‚‹è¨±å¯ãŒã•れã¦ã„ã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:341 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "" -#: lib/RT/User_Overlay.pm:151 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "ユーザーを作æˆã™ã‚‹è¨±å¯ãŒã•れã¦ã„ã¾ã›ã‚“" -#: html/SelfService/Display.html:174 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "ãã®ãƒã‚±ãƒƒãƒˆã‚’表示ã™ã‚‹è¨±å¯ãŒã‚りã¾ã›ã‚“" -#: html/SelfService/Update.html:55 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "アップデートãƒã‚±ãƒƒãƒˆã‚’見る許å¯ãŒã•ã‚りã¾ã›ã‚“" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "責任者ãŒç‰¹å®šã§ãã¾ã›ã‚“" -#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 msgid "No principals selected." msgstr "責任者ãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“" -#: html/Admin/Queues/index.html:35 +#: html/Admin/Queues/index.html:34 msgid "No queues matching search criteria found." msgstr "検索基準ã«ã‚ã£ãŸã‚­ãƒ¥ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" @@ -2808,19 +3638,23 @@ msgstr "検索基準ã«ã‚ã£ãŸã‚­ãƒ¥ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" msgid "No rights found" msgstr "" -#: html/Admin/Elements/SelectRights:33 +#: html/Admin/Elements/SelectRights:32 msgid "No rights granted." msgstr "権利ãŒè¨±å¯ã•れã¦ã„ã¾ã›ã‚“" -#: html/Search/Bulk.html:149 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "æ“作ã®ãŸã‚ã®æ¤œç´¢ãŒã§ãã¾ã›ã‚“" +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "ãƒã‚±ãƒƒãƒˆIDãŒç‰¹å®šã§ãã¾ã›ã‚“" -#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "トランザクションタイプãŒç‰¹å®šã§ãã¾ã›ã‚“" @@ -2828,31 +3662,31 @@ msgstr "トランザクションタイプãŒç‰¹å®šã§ãã¾ã›ã‚“" msgid "No user or email address specified" msgstr "" -#: html/Admin/Users/index.html:36 +#: html/Admin/Users/index.html:35 msgid "No users matching search criteria found." msgstr "検索基準ã«ã‚ã£ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: bin/rt-commit-handler:644 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "有効ãªRTユーザーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。RT cvcãƒãƒ³ãƒ‰ãƒ©ãŒåˆ†é›¢ã—ã¦ã„ã¾ã™ã€‚RT管ç†è€…ã«ç›¸è«‡ã—ã¦ãã ã•ã„。\\n" -#: lib/RT/Interface/Web.pm:859 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "" -#: html/Search/Elements/TicketRow:37 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "" -#: lib/RT/Interface/Web.pm:864 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "" -#: html/Elements/Login:99 +#: NOT FOUND IN SOURCE msgid "Not logged in" msgstr "" -#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "ログインã§ãã¾ã›ã‚“" @@ -2860,67 +3694,87 @@ msgstr "ログインã§ãã¾ã›ã‚“" msgid "Not set" msgstr "セットã§ãã¾ã›ã‚“" -#: html/NoAuth/Reminder.html:27 +#: html/NoAuth/Reminder.html:26 msgid "Not yet implemented." msgstr "ã¾ã å®Ÿè¡Œã§ãã¾ã›ã‚“" -#: html/Admin/Groups/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Not yet implemented...." msgstr "ã¾ã å®Ÿè¡Œã§ãã¾ã›ã‚“。。。" -#: html/Approvals/Elements/Approve:50 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "" -#: lib/RT/User_Overlay.pm:642 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "ãŠçŸ¥ã‚‰ã›ã‚’é€ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: etc/initialdata:94 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "" -#: etc/initialdata:90 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "" -#: etc/initialdata:121 +#: 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:117 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "" -#: etc/initialdata:86 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "" -#: etc/initialdata:82 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "" -#: etc/initialdata:313 etc/upgrade/2.1.71:17 +#: 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:78 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "" -#: etc/initialdata:104 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "" -#: etc/initialdata:99 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "" -#: etc/initialdata:113 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "" -#: etc/initialdata:109 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "" @@ -2932,14 +3786,22 @@ msgstr "å一月" msgid "November" msgstr "" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "" -#: lib/RT/Record.pm:176 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Object of type %1 cannot take custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Object type mismatch" +msgstr "" + #: lib/RT/Date.pm:420 msgid "Oct." msgstr "åæœˆ" @@ -2948,124 +3810,168 @@ msgstr "åæœˆ" msgid "October" msgstr "" -#: html/Elements/SelectDateRelation:35 +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + +#: html/Elements/SelectDateRelation:34 msgid "On" msgstr "ã«" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "" -#: etc/initialdata:177 +#: 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:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:50 +#: 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 "" -#: html/Approvals/Elements/PendingMyApproval:48 +#: 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 "" -#: html/Elements/Quicksearch:31 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "é–‹ã" -#: html/Ticket/Elements/Tabs:136 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "ãれを開ã" -#: html/SelfService/Elements/Tabs:57 +#: NOT FOUND IN SOURCE msgid "Open requests" msgstr "リクエストを開ã" -#: html/Admin/Users/Prefs.html:41 +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "ãƒã‚±ãƒƒãƒˆã‚’(リストã‹ã‚‰ï¼‰æ–°ã—ã„ウインドウã‹ã‚‰é–‹ã" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "ãƒã‚±ãƒƒãƒˆã‚’(リストã‹ã‚‰ï¼‰ã»ã‹ã®ã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦ã‹ã‚‰é–‹ã" -#: etc/initialdata:133 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "" -#: html/Search/Elements/PickRestriction:101 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "整列ã¨ä¸¦ã³æ›¿ãˆ" -#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "組織" -#: html/Approvals/Elements/Approve:34 +#: html/Approvals/Elements/Approve:32 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "" -#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "時間切れã§ã™ã€å„ªå…ˆé †ä½ãŒã†ã¤ã‚Šã¾ã—ãŸ" -#: lib/RT/Queue_Overlay.pm:87 +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "" -#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "オーナー" -#: lib/RT/Ticket_Overlay.pm:3004 -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +#: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" msgstr "" -#: lib/RT/Transaction_Overlay.pm:584 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "オーナーã¯å¼·åˆ¶çš„ã«%1ã‹ã‚‰%2を変更ã—ã¾ã—ãŸ" -#: html/Search/Elements/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "オーナーã¯" -#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "ãƒã‚±ãƒƒãƒˆãƒ™ãƒ«" -#: html/Admin/Elements/ModifyUser:74 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "ãƒã‚±ãƒƒãƒˆãƒ™ãƒ«é›»è©±" @@ -3073,56 +3979,68 @@ msgstr "ãƒã‚±ãƒƒãƒˆãƒ™ãƒ«é›»è©±" msgid "Parent" msgstr "" -#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +#: 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 "両親" -#: html/Elements/Login:43 html/User/Prefs.html:61 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "パスワード" -#: html/NoAuth/Reminder.html:25 +#: html/NoAuth/Reminder.html:24 msgid "Password Reminder" msgstr "パスワードã®ãŠçŸ¥ã‚‰ã›" -#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "パスワードãŒçŸ­ã™ãŽã¾ã™" -#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "パスワード: %1" -#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +#: html/Admin/Users/Modify.html:318 +msgid "Passwords do not match." +msgstr "" + +#: html/User/Prefs.html:211 +msgid "Passwords do not match. Your password has not been changed" +msgstr "" + +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "人々" -#: etc/initialdata:126 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "" -#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "許å¯ãŒä¸‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: html/User/Elements/Tabs:35 +#: html/User/Elements/Tabs:34 msgid "Personal Groups" msgstr "" -#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 msgid "Personal groups" msgstr "個人グループ" -#: html/User/Elements/DelegateRights:37 +#: html/User/Elements/DelegateRights:36 msgid "Personal groups:" msgstr "個人グループ:" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "電話番å·" -#: html/Admin/Users/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Placeholder" msgstr "代替物" @@ -3130,7 +4048,7 @@ msgstr "代替物" msgid "Pref" msgstr "ãŠæ°—ã«å…¥ã‚Š" -#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +#: 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 "ãŠæ°—ã«å…¥ã‚Š" @@ -3138,15 +4056,19 @@ msgstr "ãŠæ°—ã«å…¥ã‚Š" msgid "Prefs" msgstr "" -#: lib/RT/Action/Generic.pm:160 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "Prepare Stubbed" -#: html/Ticket/Elements/Tabs:61 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "å‰ã®" -#: html/Search/Listing.html:44 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "å‰ã®ãƒšãƒ¼ã‚¸" @@ -3154,41 +4076,57 @@ msgstr "å‰ã®ãƒšãƒ¼ã‚¸" msgid "Pri" msgstr "優先権" -#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#: 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 "" -#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "優先権" -#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "優先順ä½ã¯æ¬¡ã®ã‚ˆã†ã«å§‹ã¾ã‚Šã¾ã™" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "" -#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "特権ステータス: %1" -#: html/Admin/Users/index.html:62 +#: html/Admin/Users/index.html:61 msgid "Privileged users" 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 "" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "キュー" -#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#: 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" @@ -3202,7 +4140,7 @@ msgstr "キュー'%1'ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ\\n" msgid "Queue Keyword Selections" msgstr "" -#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "キューã®åå‰" @@ -3210,19 +4148,19 @@ msgstr "キューã®åå‰" msgid "Queue Scrips" msgstr "キュースクリプト" -#: lib/RT/Queue_Overlay.pm:263 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "キューã¯ã™ã§ã«å­˜åœ¨ã—ã¦ã„ã¾ã™" -#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "キューã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Ticket/Create.html:209 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "キューã®ãƒ­ãƒ¼ãƒ‰ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "キューãŒä½œæˆã•れã¾ã—ãŸ" @@ -3230,26 +4168,37 @@ msgstr "キューãŒä½œæˆã•れã¾ã—ãŸ" msgid "Queue is not specified." msgstr "" -#: html/SelfService/Display.html:129 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "キューãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 msgid "Queues" msgstr "キュー" -#: html/Elements/Login:34 +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "" + +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + +#: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:70 +#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 #. ($RT::VERSION, $RT::rtname) msgid "RT %1 for %2" msgstr "%2ã®RT %1" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: NOT FOUND IN SOURCE msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." msgstr "<a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>ã‹ã‚‰ã®RT%1。" @@ -3261,7 +4210,7 @@ msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "" -#: html/Admin/index.html:25 html/Admin/index.html:26 +#: html/Admin/index.html:24 html/Admin/index.html:25 msgid "RT Administration" msgstr "RT管ç†" @@ -3281,7 +4230,7 @@ msgstr "RT設定エラー" msgid "RT Critical error. Message not recorded!" msgstr "RTé‡å¤§ãªã‚¨ãƒ©ãƒ¼ã€‚メッセージãŒè¨˜éŒ²ã•れã¾ã›ã‚“" -#: html/Elements/Error:41 html/SelfService/Error.html:41 +#: html/Elements/Error:41 html/SelfService/Error.html:40 msgid "RT Error" msgstr "RTエラー" @@ -3293,11 +4242,19 @@ msgstr "RTå—信メール(%1)自身ã‹ã‚‰ã®ãƒ¡ãƒ¼ãƒ« " msgid "RT Recieved mail (%1) from itself." msgstr "" -#: html/SelfService/Closed.html:25 +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RTセルフサービス/クローズã•れãŸãƒã‚±ãƒƒãƒˆ" -#: html/index.html:25 html/index.html:28 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "" @@ -3317,7 +4274,7 @@ msgstr "RTã¯ã‚­ãƒ¥ãƒ¼: %1を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" msgid "RT couldn't validate this PGP signature. \\n" msgstr "RTã¯ã“ã®PGPサインを有効ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚\\n" -#: html/Elements/PageLayout:26 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "" @@ -3330,11 +4287,14 @@ msgstr "" msgid "RT has proccessed your commands" msgstr "RTã¯ã‚ãªãŸã®ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’処ç†ã—ã¾ã—ãŸ" -#: html/Elements/Login:83 -#. ('2003') +#: 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ã¯&コピー; Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>。ã“れã¯<a href=\"http://www.gnu.org/copyleft/gpl.html\">GNUジェãƒãƒ©ãƒ«ãƒ‘ブリックライセンスã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³2ã§é…ä¿¡ã•れã¦ã„ã¾ã™ã€‚</a>" +#: 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 "" + #: 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 "" @@ -3351,19 +4311,43 @@ msgstr "RTã¯ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒã¾ã‚‹ã§ã‚µã‚¤ãƒ³ã•れã¦ã„ãªã„よㆠ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ã®Eメールコマンドモードã§ã¯PGPèªè¨¼ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚è²´æ–¹ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«ã‚µã‚¤ãƒ³ã—ãªã‹ã£ãŸã€ã‚‚ã—ãã¯ã¯ã‚µã‚¤ãƒ³ãŒæœ‰åйã§ã‚りã¾ã›ã‚“" -#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "本å" -#: html/Admin/Elements/ModifyUser:48 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "本å" -#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "次ã®ã‚‚ã®ã«ã‚ˆã£ã¦å‚ç…§ã—ãŸ" -#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +#: 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 "å‚ç…§ã™ã‚‹" @@ -3375,20 +4359,20 @@ msgstr "" msgid "Refine" msgstr "絞り込む" -#: html/Search/Elements/PickRestriction:27 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "çµžè¾¼ã¿æ¤œç´¢" -#: html/Elements/Refresh:36 +#: html/Elements/Refresh:35 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã‚’%1分ãŠãã«æ›´æ–°ã—ã¦ãã ã•ã„" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +#: NOT FOUND IN SOURCE msgid "Relationships" -msgstr "関係" +msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "管ç†Ccを削除ã™ã‚‹" @@ -3396,27 +4380,35 @@ msgstr "管ç†Ccを削除ã™ã‚‹" msgid "Remove Cc" msgstr "Ccを削除ã™ã‚‹" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "リクエストã™ã‚‹äººã‚’削除ã™ã‚‹" -#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "返信" -#: lib/RT/Queue_Overlay.pm:85 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "" -#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "リクエストã™ã‚‹äºº" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "リクエストã™ã‚‹äººã®Eメールアドレス" @@ -3428,98 +4420,107 @@ msgstr "" msgid "RequestorAddresses" msgstr "" -#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "リクエストã™ã‚‹äºº" -#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯æ¬¡ã®æ—¥ã¾ã§ã«è¡Œã‚れãªã‘れã°ãªã‚Šã¾ã›ã‚“" -#: html/Elements/Submit:62 +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + +#: html/Elements/Submit:61 msgid "Reset" msgstr "リセット" -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "使‰€" -#: html/Ticket/Elements/Tabs:132 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "分解ã™ã‚‹" -#: html/Ticket/Update.html:133 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "" -#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "分解ã—ãŸ" -#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "リクエストã™ã‚‹äººã«è¿”ç­”ã™ã‚‹" -#: html/Elements/ListActions:26 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "çµæžœ" -#: html/Search/Elements/PickRestriction:105 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "ページã”ã¨ã®çµæžœ" -#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "パスワードã®å†å…¥åŠ›" +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "%2 %3ã®æ¨©åˆ©%1ãŒé ˜åŸŸ%4 %5\\nã§è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "権利ãŒå§”託ã•れã¾ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "権利ãŒè¨±å¯ã•れã¾ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:161 +#: lib/RT/ACE_Overlay.pm:160 msgid "Right Loaded" msgstr "権利ãŒãƒ­ãƒ¼ãƒ‰ã•れã¾ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "権利を無効ã«ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/User/Delegation.html:64 +#: html/User/Delegation.html:63 msgid "Right not found" msgstr "権利ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "権利ãŒãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "権利ãŒç„¡åйã«ãªã‚Šã¾ã—ãŸ" -#: html/Admin/Elements/UserTabs:41 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "権利" -#: lib/RT/Interface/Web.pm:758 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "" -#: lib/RT/Interface/Web.pm:791 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "" -#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "役割" @@ -3527,32 +4528,53 @@ msgstr "役割" msgid "RootApproval" msgstr "" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "土曜日" -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "変更をä¿å­˜ã™ã‚‹" -#: html/Ticket/ModifyLinks.html:39 +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "変更をä¿å­˜ã™ã‚‹" -#: html/Admin/Global/Scrip.html:49 +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "" -#: lib/RT/Scrip_Overlay.pm:176 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "スクリプトãŒä½œæˆã•れã¾ã—ãŸ" -#: html/Admin/Elements/EditScrips:84 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "" -#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 msgid "Scrips" msgstr "スクリプト" @@ -3564,7 +4586,7 @@ msgstr "%1\\nã®ã‚¹ã‚¯ãƒªãƒ—ト" msgid "Scrips which apply to all queues" msgstr "" -#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "検索" @@ -3572,19 +4594,63 @@ msgstr "検索" msgid "Search Criteria" msgstr "検索基準" -#: html/Approvals/Elements/PendingMyApproval:39 +#: html/Approvals/Elements/PendingMyApproval:38 msgid "Search for approvals" msgstr "" -#: bin/rt-crontool:188 +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "" + +#: bin/rt-crontool:184 msgid "Security:" msgstr "" -#: lib/RT/Queue_Overlay.pm:67 +#: NOT FOUND IN SOURCE +msgid "See custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "SeeCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "" -#: html/Admin/Groups/index.html:40 +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Field" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "グループã®é¸æŠž" @@ -3592,87 +4658,111 @@ msgstr "グループã®é¸æŠž" msgid "Select a queue" msgstr "キューã®é¸æŠž" -#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" msgstr "ユーザーã®é¸æŠž" -#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "" -#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" msgstr "" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "" -#: lib/RT/CustomField_Overlay.pm:352 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "" -#: html/Admin/Elements/QueueTabs:67 +#: html/Admin/Elements/QueueTabs:66 msgid "Select queue" msgstr "" -#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +#: 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 "" -#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +#: 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 "" -#: html/Admin/Elements/UserTabs:49 +#: NOT FOUND IN SOURCE +msgid "Select up to %1 values" +msgstr "" + +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "" -#: lib/RT/CustomField_Overlay.pm:36 +#: lib/RT/CustomField_Overlay.pm:35 msgid "SelectMultiple" msgstr "" -#: lib/RT/CustomField_Overlay.pm:35 +#: lib/RT/CustomField_Overlay.pm:34 msgid "SelectSingle" msgstr "" -#: html/SelfService/index.html:25 +#: NOT FOUND IN SOURCE +msgid "Selected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Selected objects" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Self Service" msgstr "セルフサービス" -#: etc/initialdata:114 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "" -#: etc/initialdata:110 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "" -#: etc/initialdata:105 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "" -#: etc/initialdata:100 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "" -#: etc/initialdata:79 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "" -#: etc/initialdata:118 etc/initialdata:122 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "" -#: etc/initialdata:95 +#: 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:91 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "" -#: etc/initialdata:83 etc/initialdata:87 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "" @@ -3681,58 +4771,86 @@ msgid "Sep." msgstr "乿œˆ" #: NOT FOUND IN SOURCE -msgid "September" +msgid "Seperate multiple URLs with spaces" msgstr "" #: NOT FOUND IN SOURCE +msgid "September" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "çµæžœã‚’見る" -#: html/Approvals/Elements/PendingMyApproval:44 +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show basics" msgstr "基本を見る" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:44 msgid "Show denied requests" msgstr "" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show details" msgstr "詳細を見る" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:42 msgid "Show pending requests" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:46 +#: html/Approvals/Elements/PendingMyApproval:45 msgid "Show requests awaiting other approvals" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "" @@ -3740,43 +4858,58 @@ msgstr "" msgid "ShowTicketComments" msgstr "" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "" -#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "サイン" -#: html/SelfService/Elements/Header:52 -#. ($session{'CurrentUser'}->Name) +#: NOT FOUND IN SOURCE msgid "Signed in as %1" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:25 msgid "Single" msgstr "ã²ã¨ã¤ã®" -#: html/Elements/Header:51 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "" -#: html/Admin/Elements/EditCustomFieldValues:31 +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Sort key" msgstr "ä¸¦ã¹æ›¿ãˆã®ã‚­ãƒ¼" -#: html/Search/Elements/PickRestriction:109 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "次ã®é …ç›®ã”ã¨ã®ä¸¦ã³æ›¿ãˆ" -#: html/Admin/Elements/AddCustomFieldValue:25 +#: NOT FOUND IN SOURCE msgid "SortOrder" msgstr "並ã³é †" +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "åœæ­¢ã—ã¦ã„ã¾ã™" @@ -3785,7 +4918,7 @@ msgstr "åœæ­¢ã—ã¦ã„ã¾ã™" msgid "Start page" msgstr "開始ページ" -#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "é–‹å§‹ã—ãŸ" @@ -3793,7 +4926,7 @@ msgstr "é–‹å§‹ã—ãŸ" msgid "Started date '%1' could not be parsed" msgstr "é–‹å§‹æ—¥'%1'ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "é–‹å§‹ã™ã‚‹" @@ -3805,19 +4938,19 @@ msgstr "æ¬¡ã®æ—¥æ™‚ã¾ã§ã«é–‹å§‹ã™ã‚‹" msgid "Starts date '%1' could not be parsed" msgstr "é–‹å§‹æ—¥'%1'ã‚’è§£æžã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "状態" -#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +#: 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 "ステータス" -#: etc/initialdata:288 +#: etc/initialdata:309 msgid "Status Change" msgstr "" -#: lib/RT/Transaction_Overlay.pm:530 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "ステータスãŒ%1ã‹ã‚‰%2ã«å¤‰æ›´ã•れã¾ã—ãŸ" @@ -3826,28 +4959,40 @@ msgstr "ステータスãŒ%1ã‹ã‚‰%2ã«å¤‰æ›´ã•れã¾ã—ãŸ" msgid "StatusChange" msgstr "" -#: html/Ticket/Elements/Tabs:147 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "盗用ã™ã‚‹" -#: lib/RT/Transaction_Overlay.pm:589 +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "%1ã‹ã‚‰ç›—用ã—ãŸ" -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +#: 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 "サブジェクト" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#: 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 "" -#: html/Elements/Submit:59 +#: html/Elements/Submit:58 msgid "Submit" msgstr "æå‡º" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "" @@ -3856,19 +5001,31 @@ msgstr "" msgid "Succeeded" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + #: lib/RT/Date.pm:394 msgid "Sun." msgstr "日曜日" -#: lib/RT/System.pm:54 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "" -#: html/User/Elements/DelegateRights:77 +#: html/User/Elements/DelegateRights:76 msgid "System" msgstr "" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "システムエラー" @@ -3880,11 +5037,15 @@ msgstr "" msgid "System Error. right not granted" msgstr "" -#: lib/RT/ACE_Overlay.pm:616 +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "システムエラー。権利ãŒå§”ä»»ã•れã¦ã„ã¾ã›ã‚“" -#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "システムエラー。権利ãŒèªå¯ã•れã¦ã„ã¾ã›ã‚“" @@ -3892,7 +5053,7 @@ msgstr "システムエラー。権利ãŒèªå¯ã•れã¦ã„ã¾ã›ã‚“" msgid "System error. Unable to grant rights." msgstr "" -#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 msgid "System groups" msgstr "システムグループ" @@ -3900,32 +5061,44 @@ msgstr "システムグループ" msgid "SystemRolegroup for internal use" msgstr "" -#: lib/RT/CurrentUser.pm:320 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "テスト_ストリング" -#: html/Ticket/Elements/Tabs:143 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "ã¨ã‚‹" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "ã¨ã‚‰ã‚ŒãŸ" -#: html/Admin/Elements/EditScrip:81 +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "" + +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "テンプレート" -#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "" -#: html/Admin/Elements/EditTemplates:89 +#: html/Admin/Elements/EditTemplates:88 msgid "Template deleted" msgstr "" -#: lib/RT/Scrip_Overlay.pm:153 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "テンプレートãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" @@ -3933,11 +5106,11 @@ msgstr "テンプレートãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" msgid "Template not found\\n" msgstr "テンプレートãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\\n" -#: lib/RT/Template_Overlay.pm:347 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "テンプレートãŒè§£æžã•れã¾ã—ãŸ" -#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 msgid "Templates" msgstr "テンプレート" @@ -3945,71 +5118,78 @@ msgstr "テンプレート" msgid "Templates for %1\\n" msgstr "%1\\nã®ãƒ†ãƒ³ãƒ—レート" -#: lib/RT/Interface/Web.pm:858 +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "" + +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "" -#: lib/RT/CustomField_Overlay.pm:178 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "ãれã¯ã“ã®ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドã®ãƒãƒªãƒ¥ãƒ¼ã§ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:1886 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "ãれã¯åŒã˜ãƒãƒªãƒ¥ãƒ¼ã§ã™" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "ãã®è²¬ä»»è€…ã¯ã™ã§ã«ã“ã®ã‚­ãƒ¥ãƒ¼ã®%1ã§ã™" -#: lib/RT/Ticket_Overlay.pm:1434 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "ãã®è²¬ä»»è€…ã¯ã™ã§ã«ã“ã®ãƒã‚±ãƒƒãƒˆã®%1ã§ã™" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "ãã®è²¬ä»»è€…ã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã®%1ã§ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:1551 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "ãã®è²¬ä»»è€…ã¯ã“ã®ãƒã‚±ãƒƒãƒˆã®%1ã§ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:1882 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "ãã®ã‚­ãƒ¥ãƒ¼ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:3143 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "ãã®ãƒã‚±ãƒƒãƒˆã¯å¾“属物をã™ã§ã«åˆ†è§£ã—ã¾ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +#: NOT FOUND IN SOURCE msgid "That user already has that right" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã™ã§ã«æ¨©åˆ©ãŒã‚りã¾ã™" -#: lib/RT/Ticket_Overlay.pm:2952 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã™ã§ã«ãƒã‚±ãƒƒãƒˆã‚’所有ã—ã¦ã„ã¾ã™" -#: lib/RT/Ticket_Overlay.pm:2918 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯å­˜åœ¨ã—ã¾ã›ã‚“" -#: lib/RT/User_Overlay.pm:315 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã™ã§ã«ç‰¹æ¨©ãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã™" -#: lib/RT/User_Overlay.pm:332 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¯ã™ã§ã«ç‰¹æ¨©ãŒã‚りã¾ã›ã‚“" -#: lib/RT/User_Overlay.pm:327 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ä»Šç‰¹æ¨©ã‚’与ãˆã‚‰ã‚Œã¾ã—ãŸ" -#: lib/RT/User_Overlay.pm:344 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ä»Šç‰¹æ¨©ã‚’失ã„ã¾ã—ãŸ" @@ -4017,67 +5197,79 @@ msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ä»Šç‰¹æ¨©ã‚’失ã„ã¾ã—ãŸ" msgid "That user is now unprivilegedileged" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2944 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ã¯ãƒã‚±ãƒƒãƒˆã‚’所有ã—ã¦ã„ãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™" -#: lib/RT/Link_Overlay.pm:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "ãã‚Œã¯æ•°å­—ã®IDã§ã¯ã‚りã¾ã›ã‚“" -#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 msgid "The Basics" msgstr "基本" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:87 msgid "The CC of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:89 +#: lib/RT/ACE_Overlay.pm:88 msgid "The administrative CC of a ticket" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2213 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "コメントã¯è¨˜éŒ²ã•れã¾ã—ãŸ" -#: bin/rt-crontool:198 +#: 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 "" -#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "次ã®ã‚³ãƒžãƒ³ãƒ‰ã¯å‡¦ç†ã•れã¾ã›ã‚“ã§ã—ãŸ:\\n\\n" -#: lib/RT/Interface/Web.pm:861 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:85 msgid "The owner of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:86 msgid "The requestor of a ticket" msgstr "" -#: html/Admin/Elements/EditUserComments:26 +#: html/Admin/Elements/EditUserComments:25 msgid "These comments aren't generally visible to the user" msgstr "ãれらã®ã‚³ãƒ¡ãƒ³ãƒˆã¯å®Ÿéš›ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¯è¦‹ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" +#: NOT FOUND IN SOURCE +msgid "This custom field does not apply to that object" +msgstr "" + +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +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:189 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "" -#: lib/RT/Transaction_Overlay.pm:253 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "ã“ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã«ã¯ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ãŒã‚りã¾ã›ã‚“" -#: html/Ticket/Elements/ShowRequestor:47 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "" @@ -4102,61 +5294,75 @@ msgstr "ãƒã‚±ãƒƒãƒˆ# %1 %2" msgid "Ticket # %1 Jumbo update: %2" msgstr "" -#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "ãƒã‚±ãƒƒãƒˆã€€#%1 大ãã„アップデート: %2" -#: html/Approvals/Elements/ShowDependency:46 +#: html/Approvals/Elements/ShowDependency:45 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "" -#: lib/RT/Ticket_Overlay.pm:608 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "ãƒã‚±ãƒƒãƒˆ %1ãŒã‚­ãƒ¥ãƒ¼ '%2'ã§ä½œæˆã•れã¾ã—ãŸ" -#: bin/rt-commit-handler:760 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "ãƒã‚±ãƒƒãƒˆ%1ãŒãƒ­ãƒ¼ãƒ‰ã•れã¾ã—ãŸ\\n" -#: html/Search/Bulk.html:181 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "ãƒã‚±ãƒƒãƒˆã€€%1: %2" -#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#: NOT FOUND IN SOURCE +msgid "Ticket Custom Fields" +msgstr "" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "ãƒã‚±ãƒƒãƒˆãƒ’ストリー # %1 %2" -#: html/SelfService/Display.html:34 +#: NOT FOUND IN SOURCE msgid "Ticket Id" msgstr "ãƒã‚±ãƒƒãƒˆID" -#: etc/initialdata:303 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "" -#: html/Search/Elements/PickRestriction:63 +#: NOT FOUND IN SOURCE +msgid "Ticket Transactions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "ãƒã‚±ãƒƒãƒˆæ·»ä»˜" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "ãƒã‚±ãƒƒãƒˆã‚³ãƒ³ãƒ†ãƒ³ãƒ„" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "ãƒã‚±ãƒƒãƒˆã‚³ãƒ³ãƒ†ãƒ³ãƒ„タイプ" -#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +#: 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 "" -#: lib/RT/Transaction_Overlay.pm:522 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "ãƒã‚±ãƒƒãƒˆãŒä½œæˆã•れã¾ã—ãŸ" @@ -4164,11 +5370,11 @@ msgstr "ãƒã‚±ãƒƒãƒˆãŒä½œæˆã•れã¾ã—ãŸ" msgid "Ticket creation failed" msgstr "ãƒã‚±ãƒƒãƒˆã®ä½œæˆãŒå¤±æ•—ã—ã¾ã—ãŸ" -#: lib/RT/Transaction_Overlay.pm:527 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "ãƒã‚±ãƒƒãƒˆãŒå‰Šé™¤ã•れã¾ã—ãŸ" -#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +#: NOT FOUND IN SOURCE msgid "Ticket id not found" msgstr "" @@ -4176,58 +5382,65 @@ msgstr "" msgid "Ticket killed" msgstr "" -#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "" -#: etc/initialdata:289 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "" -#: html/Ticket/Update.html:39 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "ãƒã‚±ãƒƒãƒˆã‚¦ã‚©ãƒƒãƒãƒ£ãƒ¼" -#: html/Elements/Tabs:49 +#: html/Elements/Tabs:46 msgid "Tickets" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "%1ã‹ã‚‰ã®ãƒã‚±ãƒƒãƒˆ" -#: html/Approvals/Elements/ShowDependency:27 +#: html/Approvals/Elements/ShowDependency:26 msgid "Tickets which depend on this approval:" msgstr "" -#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "æ™‚é–“ãŒæ®‹ã£ã¦ã„ã¾ã™" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "使ã£ãŸæ™‚é–“" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "残ã£ã¦ã„る時間" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "表示ã™ã‚‹æ™‚é–“" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "使ã£ãŸæ™‚é–“" @@ -4235,40 +5448,57 @@ msgstr "使ã£ãŸæ™‚é–“" msgid "TimeLeft" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1165 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "" -#: bin/rt-commit-handler:402 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "ã“ã®ã‚³ãƒŸãƒƒãƒˆã®ãƒ‡ã‚£ãƒ•ã‚’ã¤ãã‚‹ãŸã‚ã«:" -#: bin/rt-commit-handler:391 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "ã“ã®ã‚³ãƒŸãƒƒãƒˆã®ãƒ‡ã‚£ãƒ•ã‚’ã¤ãã‚‹ãŸã‚ã«:\\n" -#: lib/RT/Ticket_Overlay.pm:1168 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "言ã£ãŸ" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "" -#: lib/RT/Transaction_Overlay.pm:642 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "トランザクション%1ãŒæ¶ˆåŽ»ã•れã¾ã—ãŸ" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "トランザクションãŒä½œæˆã•れã¾ã—ãŸ" -#: lib/RT/Transaction_Overlay.pm:89 +#: NOT FOUND IN SOURCE +msgid "Transaction Custom Fields" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "" -#: lib/RT/Transaction_Overlay.pm:701 +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "トランザクションã¯å¤‰æ›´ã•れるã“ã¨ã¯ã‚りã¾ã›ã‚“" @@ -4280,102 +5510,169 @@ msgstr "権利: %1を削除ã—ã¦ã„ã¾ã™" msgid "Tue." msgstr "ç«æ›œæ—¥" -#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +#: 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 "タイプ" -#: lib/RT/ScripCondition_Overlay.pm:104 +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + +#: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "å°Žå…¥ã•れã¦ã„ãªã„" -#: html/Admin/Users/Modify.html:68 +#: html/Admin/Users/Modify.html:67 msgid "Unix login" msgstr "Unixログイン" -#: html/Admin/Elements/ModifyUser:62 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "Unixユーザーãƒãƒ¼ãƒ " -#: lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "䏿˜Žãªã‚³ãƒ³ãƒ†ãƒ³ãƒ„エンコーディング%1" -#: html/Elements/SelectResultsPerPage:37 +#: html/Elements/SelectResultsPerPage:36 msgid "Unlimited" msgstr "制é™ã•れã¦ã„ãªã„" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "" -#: lib/RT/Transaction_Overlay.pm:571 +#: NOT FOUND IN SOURCE +msgid "Unselected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Unselected objects" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "ã¨ã‚‰ã‚Œã¦ã„ãªã„" -#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "" + +#: html/Search/Bulk.html:32 msgid "Update" msgstr "アップデート" -#: html/Admin/Users/Prefs.html:62 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "アップデートID" -#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "アップデートタイプ" -#: html/Search/Listing.html:61 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "ã™ã¹ã¦ã®ãƒã‚±ãƒƒãƒˆã‚’一度ã«ã‚¢ãƒƒãƒ—デートã™ã‚‹" -#: html/Admin/Users/Prefs.html:49 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "アップデートEメール" -#: html/Admin/Users/Prefs.html:55 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "アップデートãƒãƒ¼ãƒ " -#: lib/RT/Interface/Web.pm:375 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "アップデートã¯è¨˜éŒ²ã•れã¾ã›ã‚“ã§ã—ãŸ" -#: html/Search/Bulk.html:81 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "é¸æŠžã•れãŸãƒã‚±ãƒƒãƒˆã‚’アップデートã™ã‚‹" -#: html/Admin/Users/Prefs.html:36 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "サインをアップデートã™ã‚‹" -#: html/Ticket/ModifyAll.html:63 +#: html/Ticket/ModifyAll.html:62 msgid "Update ticket" msgstr "ãƒã‚±ãƒƒãƒˆã‚’アップデートã™ã‚‹" -#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 -#. ($Ticket->id) +#: NOT FOUND IN SOURCE msgid "Update ticket # %1" msgstr "アップデートãƒã‚±ãƒƒãƒˆ # %1" -#: html/SelfService/Update.html:50 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "アップデートãƒã‚±ãƒƒãƒˆ #%1" -#: html/Ticket/Update.html:135 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "" -#: lib/RT/Interface/Web.pm:373 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "アップデートタイプã¯é€šçŸ¥ã§ã‚‚コメントã§ã‚‚ã‚りã¾ã›ã‚“" -#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "アップデートã—ã¾ã—ãŸ" +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple images" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one image" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 images" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "ユーザー%1 %2: %3\\n" @@ -4384,6 +5681,11 @@ msgstr "ユーザー%1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "ユーザー%1パスワード: %2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "ユーザー'%1'ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" @@ -4392,68 +5694,92 @@ msgstr "ユーザー'%1'ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" msgid "User '%1' not found\\n" msgstr "ユーザー'%1'ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\\n" -#: etc/initialdata:125 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "" -#: html/Admin/Users/Prefs.html:59 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "ユーザーID" -#: html/Elements/SelectUsers:26 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "ユーザーID" -#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +#: 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 "ユーザー権利" -#: html/Admin/Users/Modify.html:226 +#: NOT FOUND IN SOURCE +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" + +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "ユーザーを作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ: %1" -#: lib/RT/User_Overlay.pm:262 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "ユーザーãŒä½œæˆã•れã¾ã—ãŸ" -#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "ユーザーãŒã‚°ãƒ«ãƒ¼ãƒ—を決定ã—ã¾ã—ãŸ" +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User notified" msgstr "ユーザーã«é€šå‘Šã•れã¾ã—ãŸ" -#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "ユーザービュー" -#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +#: NOT FOUND IN SOURCE +msgid "User-defined groups" +msgstr "" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "ユーザーãƒãƒ¼ãƒ " -#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +#: 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 "ユーザー" -#: html/Admin/Users/index.html:65 +#: html/Admin/Users/index.html:64 msgid "Users matching search criteria" msgstr "ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ¤œç´¢åŸºæº–ã«ã‚ã£ã¦ã„ã¾ã™" -#: html/Search/Elements/PickRestriction:51 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "キューã®ãƒãƒªãƒ¥ãƒ¼" -#: html/Admin/Elements/EditCustomField:40 +#: html/Admin/Elements/EditCustomField:56 msgid "Values" msgstr "ãƒãƒªãƒ¥ãƒ¼" -#: lib/RT/Queue_Overlay.pm:82 +#: NOT FOUND IN SOURCE +msgid "VrijevormEnkele" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "" @@ -4461,11 +5787,11 @@ msgstr "" msgid "Watcher loaded" msgstr "" -#: html/Admin/Elements/QueueTabs:42 +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "ウォッãƒãƒ£ãƒ¼" -#: html/Admin/Elements/ModifyUser:56 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "ウェブエンコーディング" @@ -4473,75 +5799,103 @@ msgstr "ウェブエンコーディング" msgid "Wed." msgstr "水曜日" -#: etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "" -#: etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "" -#: etc/upgrade/2.1.71:79 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "" -#: etc/initialdata:178 +#: 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:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "" -#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "仕事" -#: html/Admin/Elements/ModifyUser:70 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "仕事先ã®é›»è©±" -#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Worked" -#: lib/RT/Ticket_Overlay.pm:3056 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "ã‚ãªãŸã¯ã™ã§ã«ã“ã®ãƒã‚±ãƒƒãƒˆã‚’所有ã—ã¦ã„ã¾ã™" -#: html/autohandler:121 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "ã‚ãªãŸã¯èªè¨¼ã•れãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã§ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:2930 +#: NOT FOUND IN SOURCE +msgid "You can access it with the Download button on the right." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "ã‚ãªãŸã¯æ‰€æœ‰ã€ã¾ãŸã¯æ‰€æœ‰ã•れã¦ã„ãªã„ãƒã‚±ãƒƒãƒˆã®ã¿ã‚’æ­¢ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™" @@ -4549,29 +5903,28 @@ msgstr "ã‚ãªãŸã¯æ‰€æœ‰ã€ã¾ãŸã¯æ‰€æœ‰ã•れã¦ã„ãªã„ãƒã‚±ãƒƒãƒˆã®ã¿ msgid "You don't have permission to view that ticket.\\n" msgstr "ã‚ãªãŸã¯ãã®ãƒã‚±ãƒƒãƒˆã‚’見る許å¯ãŒã‚りã¾ã›ã‚“。\\n" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "ã‚ãªãŸã¯%2ã§ãƒã‚±ãƒƒãƒˆ%1を見ã¤ã‘ã¾ã—ãŸ" -#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +#: html/NoAuth/Logout.html:30 msgid "You have been logged out of RT." msgstr "ã‚ãªãŸã¯RTã‹ã‚‰ãƒ­ã‚°ã‚¢ã‚¦ãƒˆã—ãŸã¾ã¾ã§ã™" -#: html/SelfService/Display.html:134 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "ã‚ãªãŸã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãƒã‚±ãƒƒãƒˆä½œæˆã®è¨±å¯ãŒã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:1895 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "ã‚ãªãŸã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®ä½œæˆãŒã§ãã‚‹ã§ã—ょã†" -#: html/NoAuth/Logout.html:36 +#: html/NoAuth/Logout.html:34 msgid "You're welcome to login again" msgstr "ãœã²ã¾ãŸãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãã ã•ã„" -#: html/SelfService/Elements/MyRequests:25 -#. ($friendly_status) +#: NOT FOUND IN SOURCE msgid "Your %1 requests" msgstr "ã‚ãªãŸã®%1ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆ" @@ -4579,11 +5932,11 @@ msgstr "ã‚ãªãŸã®%1ã®ãƒªã‚¯ã‚¨ã‚¹ãƒˆ" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "ã‚ãªãŸã®RT管ç†è€…ã¯RTを呼ã³å‡ºã™ãƒ¡ãƒ¼ãƒ«aliasesを設定ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: etc/initialdata:429 etc/upgrade/2.1.71:146 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "" -#: etc/initialdata:463 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "" @@ -4591,15 +5944,15 @@ msgstr "" msgid "Your request was rejected" msgstr "" -#: etc/initialdata:384 etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "" -#: html/autohandler:136 html/autohandler:142 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "ã‚ãªãŸã®ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒãƒ¼ãƒ ã¨ãƒ‘スワードãŒé–“é•ã£ã¦ã„ã¾ã™" -#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "ジップ" @@ -4607,32 +5960,44 @@ msgstr "ジップ" msgid "[no subject]" msgstr "" -#: html/User/Elements/DelegateRights:59 +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + +#: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "%1ã¸ã®è¨±å¯" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 msgid "contains" msgstr "å«ã‚€" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content" msgstr "" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2282 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "通知ã¯ï¼ˆãŠãらã)é€ä¿¡ã•れã¦ã„ã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:2292 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "通知ãŒé€ä¿¡ã•れã¾ã—ãŸ" -#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "æ—¥" @@ -4640,23 +6005,27 @@ msgstr "æ—¥" msgid "dead" msgstr "" -#: html/Search/Listing.html:75 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "削除" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "削除ã•れãŸ" -#: html/Search/Elements/PickRestriction:68 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "ã‚ã„ã¾ã›ã‚“" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 msgid "doesn't contain" msgstr "å«ã¿ã¾ã›ã‚“" -#: html/Elements/SelectEqualityOperator:38 +#: NOT FOUND IN SOURCE +msgid "email address" +msgstr "" + +#: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "ç­‰ã—ã„" @@ -4664,15 +6033,15 @@ msgstr "ç­‰ã—ã„" msgid "false" msgstr "" -#: html/Elements/SelectAttachmentField:28 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "greater than" msgstr "より大ãã„" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "グループ'%1'" @@ -4685,19 +6054,23 @@ msgstr "時間" msgid "id" msgstr "ID" -#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + +#: 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 "ã§ã™" -#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +#: 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 "ã§ãªã„" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "less than" msgstr "より少ãªã„" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "åˆã†" @@ -4705,11 +6078,11 @@ msgstr "åˆã†" msgid "min" msgstr "最低" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "分" -#: bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "修正\\n\\n" @@ -4717,19 +6090,23 @@ msgstr "修正\\n\\n" msgid "months" msgstr "月" -#: lib/RT/Queue_Overlay.pm:58 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "æ–°ã—ã„" -#: html/Admin/Elements/EditScrips:43 +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + +#: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "" -#: html/Ticket/Elements/EditWatchers:28 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "ãªã—" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "not equal to" msgstr "ç­‰ã—ããªã„" @@ -4737,25 +6114,25 @@ msgstr "ç­‰ã—ããªã„" msgid "notlike" msgstr "" -#: lib/RT/Queue_Overlay.pm:59 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "é–‹ã" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "ユーザー '%2' ã®ãƒ‘ーソナルグループ '%1' " -#: lib/RT/Group_Overlay.pm:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "キュー %1 %2" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "æ‹’å¦ã•れã¾ã—ãŸ" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "分解ã•れã¾ã—ãŸ" @@ -4763,34 +6140,46 @@ msgstr "分解ã•れã¾ã—ãŸ" msgid "sec" msgstr "ç§’" -#: lib/RT/Queue_Overlay.pm:60 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "æ­¢ã¾ã‚Šã¾ã—ãŸ" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "システム %1" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "システムグループ '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:42 +#: html/Elements/Error:42 html/SelfService/Error.html:41 msgid "the calling component did not specify why" msgstr "呼ã³å‡ºã—ã¦ã„るコンãƒãƒ¼ãƒãƒ³ãƒˆãŒãªãœæ¬¡ã®ã‚ˆã†ãªã“ã¨ãŒèµ·ã“ã‚‹ã®ã‹ç‰¹å®šã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Group_Overlay.pm:210 +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ãƒã‚±ãƒƒãƒˆã€€#%1 %2" +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "" + #: NOT FOUND IN SOURCE msgid "true" msgstr "" -#: lib/RT/Group_Overlay.pm:216 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "" @@ -4799,7 +6188,7 @@ msgstr "" msgid "undescripbed group %1" msgstr "表示ã•れãªã„グループ %1" -#: lib/RT/Group_Overlay.pm:191 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "ユーザー %1" diff --git a/rt/lib/RT/I18N/nl.po b/rt/lib/RT/I18N/nl.po index fa1a24b5f..617f9534b 100644 --- a/rt/lib/RT/I18N/nl.po +++ b/rt/lib/RT/I18N/nl.po @@ -5,26 +5,39 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +#: NOT FOUND IN SOURCE msgid "#" msgstr "#" -#: html/Admin/Queues/Scrip.html:55 -#. ($QueueObj->id) +#: NOT FOUND IN SOURCE msgid "#%1" -msgstr "" -#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 -#. ($Ticket->Id, $Ticket->Subject) +msgstr "msgstr "" " + +#: 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" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: 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:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -34,7 +47,7 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%1 %2 %3 %4:%5:%6 %7" -#: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#: 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) @@ -46,13 +59,13 @@ msgstr "%1 %2 toegevoegd" msgid "%1 %2 ago" msgstr "%1 %2 geleden" -#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#: 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 veranderd naar %3" -#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#: 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) @@ -63,53 +76,108 @@ msgstr "%1 %2 verwijderd" msgid "%1 %2 of group %3" msgstr "" -#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#: 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 met sjabloon %3" +#: NOT FOUND IN SOURCE +msgid "%1 %2 הוסף" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 מקבוצה %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 נמחק" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 שונה ל %3" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 dit ticket\\n" -#: html/Search/Listing.html:57 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 פנייה זו\\n" +msgstr "" + +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "" -#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#: 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 - Een argument om door te geven aan %2" -#: bin/rt-crontool:185 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Uitvoer status herzieningen naar STDOUT" -#: bin/rt-crontool:179 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Specificeer de actie module die u wenst te gebruiken" -#: bin/rt-crontool:173 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Specificeer de conditie module die u wenst te gebruiken" -#: bin/rt-crontool:166 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Specificeer de zoek module die u wenst te gebruiken" -#: lib/RT/ScripAction_Overlay.pm:122 +#: NOT FOUND IN SOURCE +msgid "%1 - ×רגומנט להעביר ×ל %2" +msgstr "" + + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1 ScripAction geladen" -#: lib/RT/Ticket_Overlay.pm:3471 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 toegevoegd als waarde voor %2" @@ -126,19 +194,19 @@ msgstr "%1 aliassen hebben een TicketId nodig om mee te werken" msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1 aliassen hebben een TicketId nodig om mee te werken (van %2) %3" -#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#: 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 "" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 +#: 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 door %2" -#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#: 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) @@ -146,7 +214,12 @@ msgstr "%1 door %2" msgid "%1 changed from %2 to %3" msgstr "%1 veranderd van %2 naar %3" -#: lib/RT/Interface/Web.pm:857 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "%1 kon niet veranderd worden naar %2" @@ -154,37 +227,48 @@ msgstr "%1 kon niet veranderd worden naar %2" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 kon geen transactie initiëren (%2)" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 kon status niet veranderen naar opgelost. RT's Database zou inconsistent kunnen zijn" -#: html/Elements/MyTickets:25 +#: NOT FOUND IN SOURCE +msgid "%1 created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 deleted" +msgstr "" + +#: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "De %1 hoogste prioriteit tickets die ik bezit..." -#: html/Elements/MyRequests:25 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "De %1 hoogste prioriteit tickets waarom ik verzocht heb..." -#: bin/rt-crontool:161 +#: 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 een gereedschap om te reageren op tickets van een extern rooster programma, zoals cron" -#: lib/RT/Queue_Overlay.pm:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 is niet langer een %2 voor deze rij" -#: lib/RT/Ticket_Overlay.pm:1570 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 is niet langer een %2 voor dit ticket" -#: lib/RT/Ticket_Overlay.pm:3527 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 is niet langer een waarde voor specifiek veld %2" @@ -193,16 +277,41 @@ msgstr "%1 is niet langer een waarde voor specifiek veld %2" msgid "%1 isn't a valid Queue id." msgstr "%1 is niet een geldig Rij id" -#: html/Ticket/Elements/ShowBasics:36 -#. ($TimeWorked) +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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" +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 niet afgebeeld" -#: html/User/Elements/DelegateRights:76 +#: NOT FOUND IN SOURCE +msgid "%1 objects" +msgstr "" + +#: html/User/Elements/DelegateRights:75 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 rechten" @@ -223,7 +332,7 @@ msgstr "%1 type onbekend voor %2" msgid "%1 was created without a CurrentUser\\n" msgstr "" -#: lib/RT/Action/ResolveMembers.pm:42 +#: lib/RT/Action/ResolveMembers.pm:41 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 zal alle leden van een opgelost groep ticket omzetten." @@ -232,22 +341,72 @@ msgstr "%1 zal alle leden van een opgelost groep ticket omzetten." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "" -#: lib/RT/Transaction_Overlay.pm:435 +#: NOT FOUND IN SOURCE +msgid "%1 הוסף כערך עבור %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 לפני %2 ימי×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 על ידי %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 פעולת-סקריפ נטענה" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 שונה מ %2 ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2 objects" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1: geen aanhechting gespecificeerd" -#: html/Ticket/Elements/ShowTransaction:102 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransaction:99 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1140 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1 is een ongeldige waarde voor status" @@ -264,7 +423,7 @@ msgstr "" msgid "(Check box to delete scrip)" msgstr "" -#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +#: 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 "(Vink hokje af om te verwijderen)" @@ -272,11 +431,23 @@ msgstr "(Vink hokje af om te verwijderen)" msgid "(Check boxes to delete)" msgstr "" +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Vul ticket ids of URLs in, gescheiden door spaties)" -#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + +#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) msgid "(If left blank, will default to %1" @@ -286,23 +457,27 @@ msgstr "" msgid "(No Value)" msgstr "(Geen Waarde)" -#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" msgstr "" -#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" msgstr "(Geen Leden)" -#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 msgid "(No scrips)" msgstr "(Geen scrips)" -#: html/Admin/Elements/EditTemplates:31 +#: html/Admin/Elements/EditTemplates:30 msgid "(No templates)" msgstr "" -#: html/Ticket/Update.html:85 +#: NOT FOUND IN SOURCE +msgid "(None)" +msgstr "" + +#: 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 "" @@ -310,11 +485,11 @@ msgstr "" 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 "(Stuurt een blinde carbon copy van deze herziening naar een comma gescheiden lijst van email adressen. Wie er toekomstige herzieningen zal ontvangen, zal <b>niet</b> veranderen.)" -#: html/Ticket/Create.html:79 +#: 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 "" -#: html/Ticket/Update.html:81 +#: 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 "" @@ -322,35 +497,55 @@ msgstr "" 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 "(Stuurt een carbon copy van deze herziening naar een comma gescheiden lijst van email adressen. Wie er toekomstige herzieningen zal ontvangen, zal <b>niet</b> veranderen.)" -#: html/Ticket/Create.html:69 +#: 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 "" -#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(leeg)" -#: html/Admin/Users/index.html:39 +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + +#: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "" -#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(geen onderwerp)" -#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +#: 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 "(geen waarde)" -#: html/Ticket/Elements/EditLinks:116 +#: NOT FOUND IN SOURCE +msgid "(no values)" +msgstr "" + +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(slechts één ticket)" -#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(wacht op goedkeuring)" -#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(wacht op andere tickets)" @@ -358,14 +553,18 @@ msgstr "(wacht op andere tickets)" msgid "(requestor's group)" msgstr "" -#: html/Admin/Users/Modify.html:50 +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "(verplicht)" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(zonder titel)" +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "" @@ -374,15 +573,23 @@ msgstr "" msgid "25 highest priority tickets I requested..." msgstr "" -#: html/Ticket/Elements/ShowBasics:32 +#: html/Ticket/Elements/ShowBasics:31 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:27 +#: html/Elements/SelectTicketTypes:26 msgid "<% $_ %>" msgstr "<% $_ %>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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=\"Nieuw ticket in\"> %1" @@ -391,7 +598,7 @@ msgstr "<input type=\"submit\" value=\"Nieuw ticket in\"> %1" msgid "??????" msgstr "" -#: etc/initialdata:203 +#: etc/initialdata:218 msgid "A blank template" msgstr "Een leeg sjabloon" @@ -411,52 +618,60 @@ msgstr "" msgid "ACE could not be found" msgstr "" -#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "ACE niet gevonden" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "ACEs kunnen allen gecreëerd of verwijderd worden." -#: bin/rt-commit-handler:755 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Afbraak om ongewenste ticket aanpassing te voorkomen.\\n" -#: html/User/Elements/Tabs:32 +#: html/User/Elements/Tabs:31 msgid "About me" msgstr "" -#: html/Admin/Users/Modify.html:80 +#: html/Admin/Users/Modify.html:79 msgid "Access control" msgstr "Toegangscontrole" -#: html/Admin/Elements/EditScrip:57 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "Actie" -#: lib/RT/Scrip_Overlay.pm:147 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Actie %1 niet gevonden" -#: bin/rt-crontool:123 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "Actie uitgevoerd." -#: bin/rt-crontool:119 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "Actie voorbereid..." -#: html/Search/Bulk.html:92 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "Voeg AdminCc toe" -#: html/Search/Bulk.html:90 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "Voeg Cc toe" -#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "Voeg Meer Bestanden Toe" @@ -464,10 +679,14 @@ msgstr "Voeg Meer Bestanden Toe" msgid "Add Next State" msgstr "" -#: html/Search/Bulk.html:88 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "Voeg Verzoeker Toe" +#: html/Admin/Elements/AddCustomFieldValue:24 +msgid "Add Value" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Add a Scrip to this queue" msgstr "Voeg een Scrip toe aan deze rij" @@ -488,19 +707,23 @@ msgstr "" msgid "Add a scrip to this queue" msgstr "" -#: html/Admin/Global/Scrip.html:55 +#: html/Admin/Global/Scrip.html:54 msgid "Add a scrip which will apply to all queues" msgstr "Voeg een scrip toe welke voor alle rijen zal gelden" -#: html/Search/Bulk.html:118 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "Voeg commentaar of reacties toe aan geselecteerde tickets" -#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 msgid "Add members" msgstr "Voeg leden toe" -#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 msgid "Add new watchers" msgstr "Voeg nieuwe toeschouwers toe" @@ -508,37 +731,37 @@ msgstr "Voeg nieuwe toeschouwers toe" msgid "AddNextState" msgstr "VoegVolgendeStaatToe" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Hoofd toegevoegd als %1 voor deze rij" -#: lib/RT/Ticket_Overlay.pm:1454 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Hoofd toegevoegd als %1 voor dit ticket" -#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "Adres1" -#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "Adres2" -#: html/Ticket/Create.html:74 +#: html/Ticket/Create.html:73 msgid "Admin Cc" msgstr "Beheerder Cc" -#: etc/initialdata:274 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "" -#: etc/initialdata:256 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "" -#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 msgid "Admin queues" msgstr "Beheerder rijen" @@ -546,7 +769,7 @@ msgstr "Beheerder rijen" msgid "Admin users" msgstr "Beheerder gebruikers" -#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 msgid "Admin/Global configuration" msgstr "Beheerder/Globale configuratie" @@ -554,7 +777,7 @@ msgstr "Beheerder/Globale configuratie" msgid "Admin/Groups" msgstr "Beheerder/Groepen" -#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "Beheerder/Rij/Basis" @@ -562,7 +785,7 @@ msgstr "Beheerder/Rij/Basis" msgid "AdminAllPersonalGroups" msgstr "" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "BeheerderCc" @@ -574,7 +797,11 @@ msgstr "BeheerderCommentaar" msgid "AdminCorrespondence" msgstr "BeheerderCorrespondentie" -#: lib/RT/Queue_Overlay.pm:72 +#: NOT FOUND IN SOURCE +msgid "AdminCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "BeheerderSpecifiekeVelden" @@ -586,19 +813,19 @@ msgstr "BeheerderGroep" msgid "AdminGroupMembership" msgstr "BeheerderGroepLidmaatschap" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "AdminOwnPersonalGroups" msgstr "BeheerderBezitPersoonlijkeGroepen" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "BeheerderRij" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "AdminUsers" msgstr "BeheerderGebruikers" -#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "Administratieve Cc" @@ -606,11 +833,19 @@ msgstr "Administratieve Cc" msgid "Admins" msgstr "" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Uitgebreid Zoeken" -#: html/Elements/SelectDateRelation:36 +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + +#: html/Elements/SelectDateRelation:35 msgid "After" msgstr "Nadat" @@ -626,11 +861,19 @@ msgstr "" msgid "Alias for" msgstr "" -#: html/Admin/Elements/EditCustomFields:96 +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "" -#: html/Admin/Queues/index.html:53 +#: html/Admin/Queues/index.html:52 msgid "All Queues" msgstr "Alle Rijen" @@ -638,24 +881,35 @@ msgstr "Alle Rijen" msgid "Always sends a message to the requestors independent of message sender" msgstr "Stuurt altijd een bericht naar de verzoekers ongeacht de verzender van het bericht" +#: NOT FOUND IN SOURCE +msgid "Applies to" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + #: html/Elements/Tabs:58 msgid "Approval" msgstr "Goedkeuring" -#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 #. ($Ticket->Id, $Ticket->Subject) #. ($ticket->id, $msg) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Approval #%1: %2" msgstr "Goedkeuring #%1: %2" -#: html/Approvals/index.html:54 +#: html/Approvals/index.html:53 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Goedkeuring #%1: Notities niet bewaard vanwege een systeem fout" -#: html/Approvals/index.html:52 +#: html/Approvals/index.html:51 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Goedkeuring #%1: Notities bewaard" @@ -664,15 +918,23 @@ msgstr "Goedkeuring #%1: Notities bewaard" msgid "Approval Details" msgstr "Goedkeuring Details" +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "Goedkeuring diagram" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "Goedkeuring" -#: etc/initialdata:431 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "Notities van de goedkeurer: %1" @@ -684,38 +946,71 @@ msgstr "Ggk." msgid "April" msgstr "april" -#: html/Elements/SelectSortOrder:35 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "Oplopend" -#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +#: NOT FOUND IN SOURCE +msgid "Assign and remove custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AssignCustomFields" +msgstr "" + +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "Aanhechten" -#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "Hecht bestand aan" -#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "Aangehecht bestand" -#: html/SelfService/Attachment/dhandler:36 +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Aanhechting '%1' kon niet geladen worden" -#: lib/RT/Transaction_Overlay.pm:443 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "Aanhechting gecreëerd" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "Aanhechting bestandsnaam" -#: html/Ticket/Elements/ShowAttachments:26 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "Aanhechtingen" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "aug." @@ -724,11 +1019,11 @@ msgstr "aug." msgid "August" msgstr "augustus" -#: html/Admin/Elements/ModifyUser:66 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "AuthenticatieSysteem" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "Automatisch-antwoord" @@ -740,37 +1035,39 @@ msgstr "" msgid "AutoreplyToRequestors" msgstr "Automatisch-antwoordAanVerzoekers" +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Ongeldige PGP Signatuur: %1\\n" -#: html/SelfService/Attachment/dhandler:40 +#: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "Ongeldig aanhechtings id. Kon aanhechting '%1' niet vinden\\n" -#: bin/rt-commit-handler:827 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "Ongeldige data in %1" -#: html/SelfService/Attachment/dhandler:43 -#. ($trans, $AttachmentObj->TransactionId()) +#: NOT FOUND IN SOURCE msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Ongeldig transactienummer voor aanhechting. %1 zou %2 moeten zijn\\n" -#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +#: 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 "Basis" -#: html/Ticket/Update.html:83 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "Zorg ervoor dat u uw veranderingen bewaard" -#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "Voorheen" @@ -778,83 +1075,131 @@ msgstr "Voorheen" msgid "Begin Approval" msgstr "Begin Goedkeuring" -#: etc/initialdata:202 +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "" + +#: etc/initialdata:217 msgid "Blank" msgstr "Blanco" -#: html/Search/Listing.html:79 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "XXX URL voor deze zoekopdracht" -#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "Korte koppen" -#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 msgid "Bulk ticket update" msgstr "Bulk ticketherziening" -#: lib/RT/User_Overlay.pm:1331 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "Kan systeemgebruikers niet wijzigen" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "Kan dit hoofd deze rij zien" -#: lib/RT/CustomFieLd_Overlay.pm:144 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "Kan geen specifiek veld toevoegen zonder een naam" -#: lib/RT/Link_Overlay.pm:132 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "Kan een ticket niet koppelen aan zichzelf" -#: lib/RT/Ticket_Overlay.pm:2787 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Kan niet samenvoegen met een reeds samengevoegd ticket. U zou deze boodschap nooit mogen krijgen" -#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "Kan niet zowel basis als doel specificeren" -#: html/autohandler:112 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "Kan gebruiker %1 niet aanmaken" -#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +#: 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:31 +#: html/SelfService/Prefs.html:30 msgid "Change password" msgstr "Wijzig wachtwoord" -#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +#: NOT FOUND IN SOURCE +msgid "Check All" +msgstr "" + +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "Vink hokje af om te verwijderen" -#: html/Admin/Elements/SelectRights:31 +#: html/Admin/Elements/SelectRights:30 msgid "Check box to revoke right" msgstr "Vink hokje af om recht te verwijderen" -#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +#: 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 "Kinderen" -#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "Stad" +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Clear All" +msgstr "" + #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "" -#: html/SelfService/Elements/Tabs:60 +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Gesloten verzoeken" +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Code" msgstr "" @@ -863,11 +1208,11 @@ msgstr "" msgid "Command not understood!\\n" msgstr "Commando niet begrepen!\\n" -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "Commentaar" -#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "Commentaar Adres" @@ -875,40 +1220,39 @@ msgstr "Commentaar Adres" msgid "Comment not recorded" msgstr "Commentaar niet bewaard" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "Commentaar op tickets" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "CommentaarOpTicket" -#: html/Admin/Elements/ModifyUser:35 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "Commentaar" -#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "Commentaar (Wordt niet verstuurd aan verzoekers)" -#: html/Search/Bulk.html:122 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "Commentaar (Wordt niet verstuurd aan verzoekers)" -#: html/Elements/ViewUser:27 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "Commentaar over %1" -#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "Commentaar over deze gebruiker" -#: lib/RT/Transaction_Overlay.pm:545 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "Commentaar toegevoegd" -#: lib/RT/Action/Generic.pm:140 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "" @@ -920,11 +1264,11 @@ msgstr "Compilatie Restricties" msgid "Condition" msgstr "Voorwaarde" -#: bin/rt-crontool:109 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "Voorwaarde komt overeen..." -#: lib/RT/Scrip_Overlay.pm:160 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "Voorwaarde niet gevonden" @@ -932,11 +1276,11 @@ msgstr "Voorwaarde niet gevonden" msgid "Configuration" msgstr "Configuratie" -#: html/SelfService/Prefs.html:33 +#: html/SelfService/Prefs.html:32 msgid "Confirm" msgstr "Bevestig" -#: html/Admin/Elements/ModifyUser:60 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "ContactInfoSysteem" @@ -944,23 +1288,31 @@ msgstr "ContactInfoSysteem" msgid "Contacted date '%1' could not be parsed" msgstr "Contact datum '%1' kon niet ontleed worden" -#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "Inhoud" +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "" -#: etc/initialdata:266 +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "Correspondentie" -#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "Correspondentieadres" -#: lib/RT/Transaction_Overlay.pm:541 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "Correspondentie toegevoegd" @@ -968,7 +1320,7 @@ msgstr "Correspondentie toegevoegd" msgid "Correspondence not recorded" msgstr "Correspondentie niet bewaard" -#: lib/RT/Ticket_Overlay.pm:3458 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "Kon nieuw specifiek veld niet toevoegen voor dit ticket. " @@ -976,29 +1328,29 @@ msgstr "Kon nieuw specifiek veld niet toevoegen voor dit ticket. " msgid "Could not add new custom field value for ticket. %1 " msgstr "Kon nieuw specifiek veld niet toevoegen voor dit ticket. %1" -#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "Kon eigenaar niet wijzigen. " -#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "Kon SpecifiekVeld niet creëren" -#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "Kon groep niet creëren" -#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "Kon sjabloon niet creëren: %1" -#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "Kon ticket niet creëren. Rij niet ingesteld" -#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +#: 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 "Kon gebruiker niet creëren" @@ -1014,11 +1366,11 @@ msgstr "Kon geen ticket vinden met id %1" msgid "Could not find group %1." msgstr "Kon groep %1 niet vinden. " -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "Kon deze gebruiker niet vinden of creëren" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "Kon dat hoofd niet vinden" @@ -1026,35 +1378,42 @@ msgstr "Kon dat hoofd niet vinden" msgid "Could not find user %1." msgstr "Kon gebruiker %1 niet vinden." -#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +#: NOT FOUND IN SOURCE +msgid "Could not load CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "Kon groep niet laden" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Kon dat hoofd geen %1 maken voor deze rij" -#: lib/RT/Ticket_Overlay.pm:1443 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Kon dat hoofd geen %1 maken voor dit ticket" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Kon dat hoofd niet verwijderen als %1 voor deze rij" -#: lib/RT/Ticket_Overlay.pm:1559 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "Kon dat hoofd niet verwijderen als %1 voor dit ticket" -#: lib/RT/Group_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "Kon lid niet toevoegen aan groep" -#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Kon geen transactie creëren: %1" @@ -1067,15 +1426,15 @@ msgstr "Kon niet bepalen welke actie te ondernemen aan de hand van gpg's antwoor msgid "Couldn't find group\\n" msgstr "Kon groep niet vinden\\n" -#: lib/RT/Interface/Web.pm:866 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "Kon rij niet vinden" -#: lib/RT/Group_Overlay.pm:959 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "Kon dat hoofd niet vinden" -#: lib/RT/CustomField_Overlay.pm:175 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "Kon die waarde niet vinden" @@ -1087,11 +1446,19 @@ msgstr "Kon die toeschouwer niet vinden" msgid "Couldn't find user\\n" msgstr "Kon gebruiker niet vinden\\n" -#: lib/RT/CurrentUser.pm:112 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Kon %1 niet laden uit de gebruikersdatabase.\\n" +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "Kon KeywordSelects niet laden." @@ -1104,21 +1471,25 @@ msgstr "Kon RT configuratie bestand niet laden '%1' %2" msgid "Couldn't load Scrips." msgstr "Kon Scrips niet laden" -#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "Kon groep %1 niet laden" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "Kon link niet laden" -#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#: NOT FOUND IN SOURCE +msgid "Couldn't load object %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "Kon rij niet laden" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "Kon rij %1 niet laden " @@ -1131,38 +1502,41 @@ msgstr "Kon scrip niet laden" msgid "Couldn't load template" msgstr "Kon sjabloon niet laden" -#: html/Admin/Users/Prefs.html:79 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "Kon die gebruiker (%1) niet laden" -#: html/SelfService/Display.html:166 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Kon ticket '%1' niet laden" -#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "Land" -#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +#: 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 "Creëer" -#: etc/initialdata:128 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "Creëer Tickets" -#: html/Admin/Elements/EditCustomField:58 +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + +#: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "Creëer een SpecifiekVeld" -#: html/Admin/Queues/CustomField.html:48 +#: html/Admin/Queues/CustomField.html:47 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:48 +#: html/Admin/Global/CustomField.html:47 msgid "Create a CustomField which applies to all queues" msgstr "" @@ -1170,6 +1544,10 @@ msgstr "" msgid "Create a new Custom Field" msgstr "Creëer een niuew Specifiek Veld" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "Creëer een nieuw globaal Scrip" @@ -1178,11 +1556,11 @@ msgstr "Creëer een nieuw globaal Scrip" msgid "Create a new global scrip" msgstr "" -#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 msgid "Create a new group" msgstr "Creëer een nieuwe groep" -#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 msgid "Create a new personal group" msgstr "Creëer een nieuwe persoonlijke groep" @@ -1198,11 +1576,11 @@ msgstr "Creëer een nieuw scrip" msgid "Create a new template" msgstr "Creëer een nieuw template" -#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 msgid "Create a new ticket" msgstr "Creëer een nieuw ticket" -#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "Creëer een nieuwe gebruiker" @@ -1214,19 +1592,31 @@ msgstr "Creëer een rij" msgid "Create a queue called" msgstr "Creëer een rij genaamd" -#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +#: NOT FOUND IN SOURCE msgid "Create a request" msgstr "Creëer een verzoek" -#: html/Admin/Queues/Scrip.html:59 +#: html/Admin/Queues/Scrip.html:58 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Creëer een scrip voor rij %1" -#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 msgid "Create a template" msgstr "Creëer een sjabloon" +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Creatie mislukt: %1 / %2 / %3 " @@ -1235,23 +1625,23 @@ msgstr "Creatie mislukt: %1 / %2 / %3 " msgid "Create failed: %1/%2/%3" msgstr "" -#: etc/initialdata:130 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "Creëer nieuwe tickets gebaseerd op het sjabloon van dit scrip" -#: html/SelfService/Create.html:81 +#: html/SelfService/Create.html:77 msgid "Create ticket" msgstr "Creëer ticket" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "Creëer tickets in deze rij" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "Creëer, verwijder en wijzig specifieke velden" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "Creëer, verwijder en wijzig rijen" @@ -1259,105 +1649,129 @@ msgstr "Creëer, verwijder en wijzig rijen" msgid "Create, delete and modify the members of any user's personal groups" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "Create, delete and modify the members of personal groups" msgstr "Creëer, verwijder en wijzig de leden van persoonlijke groepen" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "Create, delete and modify users" msgstr "Creëer, verwijder en wijzig gebruikers" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "CreëerTicket" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "Gecreëerd" -#: html/Admin/Elements/EditCustomField:71 +#: html/Admin/Elements/EditCustomField:87 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "SpecifiekVeld %1 gecreëerd" +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Sjabloon %1 Gecreëerd" -#: html/Ticket/Elements/EditLinks:28 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "Huidige Relaties" -#: html/Admin/Elements/EditScrips:30 +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "" + +#: html/Admin/Elements/EditScrips:29 msgid "Current Scrips" msgstr "Huidige Scrips" -#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "Huidige leden" -#: html/Admin/Elements/SelectRights:29 +#: html/Admin/Elements/SelectRights:28 msgid "Current rights" msgstr "Huidige rechten" -#: html/Search/Listing.html:71 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "" -#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "Huidige toeschouwers" -#: html/Admin/Global/CustomField.html:55 +#: html/Admin/Global/CustomField.html:54 #. ($CustomField) msgid "Custom Field #%1" msgstr "" -#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +#: 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 "Specifieke Velden" -#: html/Admin/Elements/EditScrip:73 +#: NOT FOUND IN SOURCE +msgid "Custom Fields for %1" +msgstr "" + +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "Specifieke actie opruim code" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "Specifieke actie voorbereidings code" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "Specifieke voorwaarde" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "Specifiek veld %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: NOT FOUND IN SOURCE +msgid "Custom field %1 does not apply to this object" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Specifiek veld %1 heeft een waarde." -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Specifiek veld %1 heeft geen waarde." -#: lib/RT/Ticket_Overlay.pm:3360 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Specifiek veld %1 niet gevonden" -#: html/Admin/Elements/EditCustomFields:197 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3510 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "Specifiek veld niet gevonden" -#: lib/RT/CustomField_Overlay.pm:283 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "Specifiek veld waarde %1 kon niet gevonden worden voor specifiek veld %2" @@ -1366,19 +1780,19 @@ msgstr "Specifiek veld waarde %1 kon niet gevonden worden voor specifiek veld %2 msgid "Custom field value changed from %1 to %2" msgstr "Specifiek veld waarde veranderd van %1 naar %2" -#: lib/RT/CustomField_Overlay.pm:185 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "Specifiek veld waarde kon niet verwijderd worden" -#: lib/RT/CustomField_Overlay.pm:289 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "Specifiek veld waarde kon niet gevonden worden" -#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "Specifiek veld waarde verwijderd" -#: lib/RT/Transaction_Overlay.pm:550 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "" @@ -1386,7 +1800,7 @@ msgstr "" msgid "Data error" msgstr "Data fout" -#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +#: 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 "Data" @@ -1402,68 +1816,88 @@ msgstr "december" msgid "Default Autoresponse Template" msgstr "Standaard Auto-antwoord Sjabloon" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "" -#: etc/initialdata:275 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "Standaard admin commentaar sjabloon" -#: etc/initialdata:257 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "Standaard admin correspondentie sjabloon" -#: etc/initialdata:267 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "Standaard correspondentie sjabloon" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "Standaard transactie sjabloon" -#: lib/RT/Transaction_Overlay.pm:645 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "Standaard: %1/%2 verandered van %3 naar %4" -#: html/User/Delegation.html:25 html/User/Delegation.html:28 +#: html/User/Delegation.html:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "Delegeer rechten" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "Delegate specific rights which have been granted to you." msgstr "Delegeer specifieke rechten die aan u verleend zijn." -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "DelegateRights" msgstr "DelegeerRechten" -#: html/User/Elements/Tabs:38 +#: html/User/Elements/Tabs:37 msgid "Delegation" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "" -#: lib/RT/Queue_Overlay.pm:90 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "Verwijder tickets" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "VerwijderTicket" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "Het verwijderen van dit object zou de referentiële integriteit kunnen ondermijnen" -#: lib/RT/Queue_Overlay.pm:292 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "Het verwijderen van dit object zou de referentiële integriteit ondermijnen" -#: lib/RT/User_Overlay.pm:430 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "Het verwijderen van dit object zou de referentiële integriteit ondermijnen" @@ -1475,11 +1909,11 @@ msgstr "Het verwijderen van dit object zou de referentiële integriteit ondermij msgid "Deleting this object would violate referential integrity. That's bad." msgstr "" -#: html/Approvals/Elements/Approve:46 +#: html/Approvals/Elements/Approve:44 msgid "Deny" msgstr "Wijs af" -#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +#: 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 "Afhankelijkheid van" @@ -1487,7 +1921,27 @@ msgstr "Afhankelijkheid van" msgid "Dependencies: \\n" msgstr "Afhankelijkheden: \\n" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "Is afhankelijk van" @@ -1495,64 +1949,83 @@ msgstr "Is afhankelijk van" msgid "DependsOn" msgstr "" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "Aflopend" -#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 msgid "Describe the issue below" msgstr "Omschrijf onderstaande kwestie" -#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +#: 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 "Omschrijving" -#: html/SelfService/Elements/MyRequests:44 +#: NOT FOUND IN SOURCE msgid "Details" msgstr "Details" -#: html/Ticket/Elements/Tabs:85 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "Toon" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "Toon Toegangs Controle Lijst" -#: lib/RT/Queue_Overlay.pm:75 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "Toon Scrip sjablonen voor deze rij" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "Toon Scrips voor deze rij" -#: html/Ticket/Elements/ShowHistory:35 +#: html/Ticket/Elements/ShowHistory:34 msgid "Display mode" msgstr "Toon modus" -#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 -#. ($Ticket->id) +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Toon ticket #%1" -#: lib/RT/System.pm:54 +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + +#: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "Doe iets en alles" -#: html/Elements/Refresh:30 +#: html/Elements/Refresh:29 msgid "Don't refresh this page." msgstr "Ververs deze pagina niet" -#: html/Search/Elements/PickRestriction:114 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "Download" -#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download as a tab-delimited file" +msgstr "" + +#: 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 "Verwacht" @@ -1560,8 +2033,7 @@ msgstr "Verwacht" msgid "Due date '%1' could not be parsed" msgstr "Verwachte datum '%1' kon niet ontleed worden" -#: bin/rt-commit-handler:754 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "FOUT: Kon ticket '%1' niet laden: %2.\\n" @@ -1578,10 +2050,22 @@ msgstr "" msgid "Edit Custom Fields for %1" msgstr "Wijzig Specifieke Velden voor %1" -#: html/Ticket/ModifyLinks.html:36 -msgid "Edit Relationships" +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "Wijzig Relaties" +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit Relationships" +msgstr "" + #: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" @@ -1591,11 +2075,15 @@ msgstr "" msgid "Edit keywords" msgstr "" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "" -#: html/Admin/Global/index.html:46 +#: html/Admin/Global/index.html:45 msgid "Edit system templates" msgstr "Wijzig systeem sjablonen" @@ -1603,28 +2091,34 @@ msgstr "Wijzig systeem sjablonen" msgid "Edit templates for %1" msgstr "Wijzig sjablonen voor %1" -#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "Bezig met wijzigen van de configuratie voor rij %1" -#: html/Admin/Elements/ModifyUser:25 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "Bezit met het wijzigen van de configuratie voor gebruiker %1" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/Elements/EditCustomField:90 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Bezit met het wijzigen van SpecifiekVeld %1" -#: html/Admin/Groups/Members.html:32 +#: html/Admin/Groups/Members.html:31 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Bezit met het wijzigen van lidmaatschap voor groep %1" -#: html/User/Groups/Members.html:129 +#: html/User/Groups/Members.html:128 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Bezit met het wijzigen van lidmaatschap voor persoonlijke groep %1" @@ -1633,64 +2127,96 @@ msgstr "Bezit met het wijzigen van lidmaatschap voor persoonlijke groep %1" msgid "Editing template %1" msgstr "Bezit met het wijzigen van sjabloon %1" -#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "Of basis of doel moeten gespecificeerd zijn" -#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "E-mail" -#: lib/RT/User_Overlay.pm:188 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "E-mailadres in gebruik" -#: html/Admin/Elements/ModifyUser:42 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "E-mailAdres" -#: html/Admin/Elements/ModifyUser:54 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "E-mailCodering" -#: html/Admin/Elements/EditCustomField:36 +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + +#: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "" -#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 msgid "Enabled (Unchecking this box disables this group)" msgstr "" -#: html/Admin/Queues/Modify.html:84 +#: html/Admin/Queues/Modify.html:83 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Actief (Het uitvinken van dit hokje zal deze rij deactiveren)" -#: html/Admin/Elements/EditCustomFields:99 +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "" -#: html/Admin/Queues/index.html:56 +#: html/Admin/Queues/index.html:55 msgid "Enabled Queues" msgstr "Actieve Rijen" -#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#: 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 "Actieve status %1" -#: lib/RT/CustomField_Overlay.pm:361 +#: NOT FOUND IN SOURCE +msgid "Enabled status: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "" -#: lib/RT/CustomField_Overlay.pm:358 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "" -#: html/Ticket/Elements/EditLinks:112 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Vul tickets of URIs in om deze tickets aan te koppelen. Scheidt meerdere elementen met spaties." -#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +#: NOT FOUND IN SOURCE +msgid "Enter up to %1 values" +msgstr "" + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "Fout" @@ -1698,51 +2224,79 @@ msgstr "Fout" msgid "Error adding watcher" msgstr "" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "Fout in paramaters naar Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "Fout in paramaters naar Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1356 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Fout in paramaters naar Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1532 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "Fout in paramaters naar Ticket->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "Iedereen" -#: bin/rt-crontool:194 +#: bin/rt-crontool:190 msgid "Example:" msgstr "Voorbeeld:" -#: html/Admin/Elements/ModifyUser:64 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "ExternAuteurId" -#: html/Admin/Elements/ModifyUser:58 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "ExternContactInfoId" -#: html/Admin/Users/Modify.html:73 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "Extra informatie" -#: lib/RT/User_Overlay.pm:302 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Kon de gebruikers pseudogroep 'Privileged' niet vinden." -#: lib/RT/User_Overlay.pm:309 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Kon de gebruikers pseudogroep 'Unprivileged' niet vinden." -#: bin/rt-crontool:138 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Kon module %1 niet laden. (%2)" @@ -1755,31 +2309,51 @@ msgstr "feb." msgid "February" msgstr "" +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in multiple text areas" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in one text area" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in up to %1 text areas" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "Uiteindelijke Prioriteit" -#: lib/RT/Ticket_Overlay.pm:1162 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "UiteindelijkePrioriteit" -#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "" -#: html/Elements/Quicksearch:25 +#: NOT FOUND IN SOURCE +msgid "Find groups whose" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "Zoek nieuwe/open tickets" -#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "Zoek mensen wier" -#: html/Search/Listing.html:108 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "" @@ -1787,44 +2361,48 @@ msgstr "" msgid "Finish Approval" msgstr "Beëindig Goedkeuring" -#: html/Ticket/Elements/Tabs:58 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "Eerste" -#: html/Search/Listing.html:41 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "Eerste pagina" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "Aap Noot Mies" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "Aap!" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "" -#: html/Search/Listing.html:106 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "" -#: lib/RT/Interface/Web.pm:868 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "Gevonden Object" -#: html/Admin/Elements/ModifyUser:44 +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "VrijevormContactInfo" -#: lib/RT/CustomField_Overlay.pm:38 +#: lib/RT/CustomField_Overlay.pm:37 msgid "FreeformMultiple" msgstr "VrijevormMeerdere" -#: lib/RT/CustomField_Overlay.pm:37 +#: lib/RT/CustomField_Overlay.pm:36 msgid "FreeformSingle" msgstr "" @@ -1832,23 +2410,31 @@ msgstr "" msgid "Fri." msgstr "Vr." -#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 msgid "Full headers" msgstr "Volledige Kop" +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "Bezig met het ophalen van de huidige gebruiker middels een pgp handtekening" -#: lib/RT/Transaction_Overlay.pm:595 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "Aan %1 gegeven" -#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 msgid "Global" msgstr "Globaal" +#: NOT FOUND IN SOURCE +msgid "Global Custom Fields" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "" @@ -1857,12 +2443,16 @@ msgstr "" msgid "Global Scrips" msgstr "" -#: html/Admin/Elements/SelectTemplate:38 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Globaal sjabloon: %1" -#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "Ga!" @@ -1870,11 +2460,11 @@ msgstr "Ga!" msgid "Good pgp sig from %1\\n" msgstr "Goede pgp handtekening van %1\\n" -#: html/Search/Listing.html:50 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "Ga naar pagina" -#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "Ga naar ticket" @@ -1882,7 +2472,7 @@ msgstr "Ga naar ticket" msgid "Grand" msgstr "" -#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "Groep" @@ -1890,11 +2480,11 @@ msgstr "Groep" msgid "Group %1 %2: %3" msgstr "Groep %1 %2: %3" -#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +#: 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 "Groeps rechten" -#: lib/RT/Group_Overlay.pm:965 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "Groep heeft al een lid" @@ -1902,7 +2492,7 @@ msgstr "Groep heeft al een lid" msgid "Group could not be created." msgstr "" -#: html/Admin/Groups/Modify.html:77 +#: html/Admin/Groups/Modify.html:76 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Groep kon niet gecreërd worden: %1" @@ -1911,11 +2501,11 @@ msgstr "Groep kon niet gecreërd worden: %1" msgid "Group created" msgstr "Groep gecreërd" -#: lib/RT/Group_Overlay.pm:1133 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "Groep heeft geen lid onder die naam" -#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +#: 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 "Groep niet gevonden" @@ -1927,36 +2517,56 @@ msgstr "Groep niet gevonden.\\n" msgid "Group not specified.\\n" msgstr "Groep niet gespecificeerd.\\n" -#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +#: 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 "Groepen" -#: lib/RT/Group_Overlay.pm:971 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "Groepen kunnen geen leden zijn van hun leden" -#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +#: NOT FOUND IN SOURCE +msgid "Groups matching search criteria" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Groups this user belongs to" +msgstr "" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "Hallo!" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "Hallo, %1" -#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "Geschiedenis" -#: html/Admin/Elements/ModifyUser:68 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the user %1" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "ThuisNummer" -#: html/Elements/Tabs:46 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "Homepage" -#: lib/RT/Base.pm:74 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "" @@ -1965,55 +2575,75 @@ msgstr "" msgid "I have [quant,_1,concrete mixer]." msgstr "" -#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +#: 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:44 html/User/Prefs.html:39 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "Identiteit" -#: etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Als een goedkeuring afgewezen is, wijs het origineel af en verwijder hangende goedkeuringen" -#: bin/rt-crontool:190 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "Als dit gereedschap setgid zou zijn, zou een kwaadwillende lokale gebruiker dit gereedschap kunnen gebruiken om administratieve toegang te verkrijgen tot RT" -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: 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 "Als u een van de bovenstaande elemented ververst heeft, zorg dan dat u" -#: lib/RT/Interface/Web.pm:860 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "Illegale waarde voor %1" -#: lib/RT/Interface/Web.pm:863 +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "" + +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "Niet-wijzigbaar veld" -#: html/Admin/Elements/EditCustomFields:74 +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "" -#: html/Admin/Queues/index.html:43 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "Neem inactieve rijen op in de weergave" -#: html/Admin/Users/index.html:47 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "Neem inactieve gebruiker op in de zoek opdracht" -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "Initiële Prioriteit" -#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "InitiëlePrioriteit" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "Invoer fout" @@ -2021,11 +2651,11 @@ msgstr "Invoer fout" msgid "Interest noted" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3729 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "Interne Fout" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Interne Fout: %1" @@ -2034,7 +2664,7 @@ msgstr "Interne Fout: %1" msgid "Invalid Group Type" msgstr "Ongeldig Groep Type" -#: lib/RT/Principal_Overlay.pm:128 +#: lib/RT/Principal_Overlay.pm:127 msgid "Invalid Right" msgstr "" @@ -2042,44 +2672,44 @@ msgstr "" msgid "Invalid Type" msgstr "Ongeldig Type" -#: lib/RT/Interface/Web.pm:865 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "Ongeldige data" -#: lib/RT/Ticket_Overlay.pm:438 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Ongeldige eigenaar. Val terug op 'nobody'." -#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "Ongeldige rij" -#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +#: 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 "Ongeldige recht" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "Ongeldige waarde voor %1" -#: lib/RT/Ticket_Overlay.pm:3367 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "Ongeldige waarde voor specifiek veld" -#: lib/RT/Ticket_Overlay.pm:345 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "Ongeldige waarde voor status" -#: bin/rt-crontool:191 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "Het is ontzettend belangrijk dat onbevoorrechtigde gebruikers geen toestemming hebben om dit gereedschap te gebruiken." -#: bin/rt-crontool:192 +#: 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 "We stellen voor dat u een onbevoorrechtigde unix gebruiker aanmaakt met het juiste groep lidmaatschap en RT toegang om dit gereedschap te gebruiken." -#: bin/rt-crontool:163 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "Het accepteerd meerdere argumenten:" @@ -2107,7 +2737,7 @@ msgstr "jul." msgid "July" msgstr "" -#: html/Ticket/Elements/Tabs:99 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "Jumbo" @@ -2123,27 +2753,35 @@ msgstr "" msgid "Keyword" msgstr "Sleutelwoord" -#: html/Admin/Elements/ModifyUser:52 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "Taal" -#: html/Ticket/Elements/Tabs:73 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "Laatste" -#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "Laatste Contact" -#: html/Elements/SelectDateType:29 +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + +#: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "Laatst Gecontacteerd" -#: html/Search/Elements/TicketHeader:41 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "" -#: html/Elements/SelectDateType:30 +#: html/Elements/SelectDateType:29 msgid "Last Updated" msgstr "Laatst Ververst" @@ -2151,15 +2789,19 @@ msgstr "Laatst Ververst" msgid "LastUpdated" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "Over" -#: html/Admin/Users/Modify.html:83 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" msgstr "Geef deze gebruiker toegang tot RT" -#: html/Admin/Users/Modify.html:87 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" msgstr "Geef deze gebruiker rechten" @@ -2171,29 +2813,29 @@ msgstr "Eigenaar wordt gelimieteerd tot %1 %2" msgid "Limiting queue to %1 %2" msgstr "Rij wordt gelimiteerd tot %1 %2" -#: lib/RT/Ticket_Overlay.pm:2697 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "Koppeling bestaat al" -#: lib/RT/Ticket_Overlay.pm:2709 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "Koppeling kon niet gecreëerd worden" -#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "Koppeling gecreëerd (%1)" -#: lib/RT/Ticket_Overlay.pm:2638 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "Koppelink verwijderd (%1)" -#: lib/RT/Ticket_Overlay.pm:2644 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "Koppeling niet gevonden" -#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Koppel ticket #%1" @@ -2202,85 +2844,109 @@ msgstr "Koppel ticket #%1" msgid "Link ticket %1" msgstr "" -#: html/Ticket/Elements/Tabs:97 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "Koppelingen" -#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "Locatie" -#: lib/RT.pm:158 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Log folder %1 niet gevonden of niet toegankelijk.\\n RT kan niet starten." -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Aangemeld als %1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +#: 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 "Aanmelden" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "Afmelden" -#: html/Search/Bulk.html:86 +#: NOT FOUND IN SOURCE +msgid "Lookup type mismatch" +msgstr "" + +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "Maak Eigenaar" -#: html/Search/Bulk.html:102 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "Maak Status" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "Maak verwachtingsdatum" -#: html/Search/Bulk.html:110 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "Make oplossingsdatum" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "Maak startdatum" -#: html/Search/Bulk.html:106 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "Maak datum gestart" -#: html/Search/Bulk.html:108 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "Maak datum gemeld" -#: html/Search/Bulk.html:99 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "Maak prioriteit" -#: html/Search/Bulk.html:100 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "Maak rij" -#: html/Search/Bulk.html:98 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "Maak onderwerp" -#: html/Admin/index.html:33 +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Manage custom fields and custom field values" +msgstr "" + +#: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "Beheer groepen en groeplidmaatschap" -#: html/Admin/index.html:39 +#: html/Admin/index.html:38 msgid "Manage properties and configuration which apply to all queues" msgstr "Beheer eigenschappen en configuraties welke betrekking hebben op alle rijen" -#: html/Admin/index.html:36 +#: html/Admin/index.html:35 msgid "Manage queues and queue-specific properties" msgstr "Beheer rijen en rij-specifieke eigenschappen" -#: html/Admin/index.html:30 +#: html/Admin/index.html:29 msgid "Manage users and passwords" msgstr "Beheer gebruikers en wachtwoorden" @@ -2300,19 +2966,29 @@ msgstr "mei" msgid "May." msgstr "mei." -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "Lid toegevoegd" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "Lid verwijderd" -#: lib/RT/Group_Overlay.pm:1144 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "Lid niet verwijderd" -#: html/Elements/SelectLinkType:26 +#: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "Lid van" @@ -2320,39 +2996,90 @@ msgstr "Lid van" msgid "MemberOf" msgstr "LidVan" -#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "Leden" -#: lib/RT/Ticket_Overlay.pm:2843 +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships of the user %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "Samenvoeging Succesvol" -#: lib/RT/Ticket_Overlay.pm:2804 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Samenvoeging mislukt. Kon EffectiefId niet instellen" -#: html/Ticket/Elements/EditLinks:115 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "Voeg samen in" -#: html/Ticket/Update.html:102 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "Bericht" -#: lib/RT/Interface/Web.pm:867 +#: NOT FOUND IN SOURCE +msgid "Message body not shown because it is too large or is not plain text." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "Mist primaire sleutel?: %1" -#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "Mobiel" -#: html/Admin/Elements/ModifyUser:72 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "MobieleTelefoon" -#: lib/RT/Queue_Overlay.pm:70 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "Wijzig Toegangs Controle Lijst" @@ -2360,15 +3087,31 @@ msgstr "Wijzig Toegangs Controle Lijst" msgid "Modify Custom Field %1" msgstr "Wijzig Specifiek Veld %1" -#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all %1" +msgstr "" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "Wijzit Scrip sjabloon voor deze rij" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "Wijzig Scrips voor deze rij" @@ -2380,43 +3123,55 @@ msgstr "" msgid "Modify Template %1" msgstr "Wijzig Sjabloon %1" -#: html/Admin/Queues/CustomField.html:45 +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + +#: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:53 +#: html/Admin/Global/CustomField.html:52 msgid "Modify a CustomField which applies to all queues" msgstr "" -#: html/Admin/Queues/Scrip.html:54 +#: html/Admin/Queues/Scrip.html:53 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Wijzig een scrip voor deze rij %1" -#: html/Admin/Global/Scrip.html:48 +#: html/Admin/Global/Scrip.html:47 msgid "Modify a scrip which applies to all queues" msgstr "Wijzig een scrip welke betrekking heeft op alle rijen" +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify associated objects for %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "Wijzig data voor # %1" -#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Wijzig data voor #%1" -#: html/Ticket/ModifyDates.html:35 +#: html/Ticket/ModifyDates.html:34 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Wijzig data voor ticket # %1" -#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 msgid "Modify global group rights" msgstr "Wijzig globale groepsrechten" -#: html/Admin/Global/GroupRights.html:33 +#: html/Admin/Global/GroupRights.html:32 msgid "Modify global group rights." msgstr "Wijzig globale groepsrechten" @@ -2432,11 +3187,11 @@ msgstr "" msgid "Modify global scrips" msgstr "" -#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 msgid "Modify global user rights" msgstr "" -#: html/Admin/Global/UserRights.html:33 +#: html/Admin/Global/UserRights.html:32 msgid "Modify global user rights." msgstr "Wijzig globale gebruikersrechten" @@ -2444,12 +3199,16 @@ msgstr "Wijzig globale gebruikersrechten" msgid "Modify group metadata or delete group" msgstr "Wijzig groepsmetadata of verwijder groep" -#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "" + +#: 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 "Wijzig groepsrechten voor groep %1" -#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Wijzig groepsrechten voor rij %1" @@ -2458,74 +3217,78 @@ msgstr "Wijzig groepsrechten voor rij %1" msgid "Modify membership roster for this group" msgstr "Wijzig lidmaatschap rooster voor dze groep" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "Modify one's own RT account" msgstr "Wijzig uw eigen RT " -#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Wijzig mensen gekoppeld aan rij %1" -#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#: 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 "Wijzig mensen gekoppeld aan ticket #%1" -#: html/Admin/Queues/Scrips.html:44 +#: html/Admin/Queues/Scrips.html:45 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Wijzig scrips voor rij %1" -#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 msgid "Modify scrips which apply to all queues" msgstr "Wijzig scrips welke betrekking hebben op alle rijen" -#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#: 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 "Wijzig sjabloon %1" -#: html/Admin/Global/Templates.html:44 +#: html/Admin/Global/Templates.html:43 msgid "Modify templates which apply to all queues" msgstr "" -#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 #. ($Group->Name) msgid "Modify the group %1" msgstr "Wijzig de groep %1" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "Wijzig de toeschouwers van de rij" -#: html/Admin/Users/Modify.html:236 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Wijzig de gebruiker %1" -#: html/Ticket/ModifyAll.html:37 +#: html/Ticket/ModifyAll.html:36 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Wijzig ticket # %1" -#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Wijzig ticket #%1" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "Wijzig tickets" -#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify user rights for custom field %1" +msgstr "" + +#: 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 "Wijzig gebruikersrechten voor groep %1" -#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Wijzig gebruikersrechten voor rij %1" @@ -2534,7 +3297,7 @@ msgstr "Wijzig gebruikersrechten voor rij %1" msgid "Modify watchers for queue '%1'" msgstr "Wijzig toeschouwers voor rij '%1'" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "WijzigACL" @@ -2542,23 +3305,23 @@ msgstr "WijzigACL" msgid "ModifyOwnMembership" msgstr "WijzigEigenLidmaatschap" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "WijzigRijToeschouwers" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "WijzigScrips" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "ModifySelf" msgstr "WijzigZelf" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "WijzigSjabloon" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "WijzigTicket" @@ -2566,43 +3329,60 @@ msgstr "WijzigTicket" msgid "Mon." msgstr "Ma." -#: html/Ticket/Elements/ShowRequestor:42 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "Meer over %1" -#: html/Admin/Elements/EditCustomFields:61 +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "" -#: html/Admin/Elements/EditCustomFields:53 +#: html/Admin/Elements/EditCustomFields:52 msgid "Move up" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:27 +#: html/Admin/Elements/SelectSingleOrMultiple:26 msgid "Multiple" msgstr "Meerdere" -#: lib/RT/User_Overlay.pm:179 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "Specificeren van 'Naam' attribuut verplicht" +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "Mijn Goedkeuringen" -#: html/Approvals/index.html:25 html/Approvals/index.html:26 +#: html/Approvals/index.html:24 html/Approvals/index.html:25 msgid "My approvals" msgstr "" -#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "Naam" -#: lib/RT/User_Overlay.pm:186 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "Naam in gebruik" +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Goedkeuring benodigd van de systeem beheerder" @@ -2611,55 +3391,71 @@ msgstr "Goedkeuring benodigd van de systeem beheerder" msgid "Never" msgstr "Nooit" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "Nieuw" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "Nieuwe Relaties" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "Nieuw Wachtwoord" -#: etc/initialdata:311 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "Nieuwe Hangende Goedkeuring" -#: html/Ticket/Elements/EditLinks:111 +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "New Relationships" -msgstr "Nieuwe Relaties" +msgstr "" -#: html/Ticket/Elements/Tabs:36 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "" -#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + +#: 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 "" -#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 msgid "New group" msgstr "" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:31 msgid "New password" msgstr "Nieuw wachtwoord" -#: lib/RT/User_Overlay.pm:639 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "Bericht voor nieuw wachtwoord verzonden" -#: html/Admin/Elements/QueueTabs:70 +#: html/Admin/Elements/QueueTabs:69 msgid "New queue" msgstr "" -#: html/SelfService/Elements/Tabs:63 +#: NOT FOUND IN SOURCE msgid "New request" msgstr "Nieuw verzoek" -#: html/Admin/Elements/SelectRights:42 +#: html/Admin/Elements/SelectRights:41 msgid "New rights" msgstr "Nieuwe rechten" -#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +#: 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 "" @@ -2667,67 +3463,91 @@ msgstr "" msgid "New search" msgstr "Nieuwe zoekopdracht" -#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +#: 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 "" -#: lib/RT/Ticket_Overlay.pm:2771 +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "Nieuw ticket bestaat niet" -#: html/Admin/Elements/UserTabs:52 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "" -#: html/Admin/Elements/CreateUserCalled:26 +#: html/Admin/Elements/CreateUserCalled:25 msgid "New user called" msgstr "Nieuwe gebruiker genaamd" -#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 msgid "New watchers" msgstr "Nieuwe toeschouwers" -#: html/Admin/Users/Prefs.html:42 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "Nieuwe venster instelling" -#: html/Ticket/Elements/Tabs:69 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "Volgende" -#: html/Search/Listing.html:48 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "Volgende pagina" -#: html/Admin/Elements/ModifyUser:50 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "Bijnaam" -#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "Bijnaam" -#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "Geen SpecifiekVeld" -#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "Geen Groep gedefinieerd" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "Geen Rij gedefinieerd" -#: bin/rt-crontool:56 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "Geen RT gebruiker gevonden. Raadpleeg uw RT beheerder.\\n" -#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 msgid "No Template" msgstr "Geen Sjabloon" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "Geen ticket gespecificeerd. Ticket afgebroken " @@ -2735,11 +3555,11 @@ msgstr "Geen ticket gespecificeerd. Ticket afgebroken " msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "Geen ticket gespecificeerd. Ticket wijzigingen afgebroken\\n\\n" -#: html/Approvals/Elements/Approve:47 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "Geen actie" -#: lib/RT/Interface/Web.pm:862 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "Geen kolom gespecificeerd" @@ -2747,57 +3567,64 @@ msgstr "Geen kolom gespecificeerd" msgid "No command found\\n" msgstr "Geen commando gevonden\\n" -#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "Geen commentaar ingevuld over deze gebruiker" -#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "Geen correspondentie aangehecht" -#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#: 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 "Geen omschrijving voor %1" -#: lib/RT/Users_Overlay.pm:151 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "Geen groep gespecificeerd" -#: lib/RT/User_Overlay.pm:857 +#: NOT FOUND IN SOURCE +msgid "No groups matching search criteria found." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "Geen wachtwoord ingesteld" -#: lib/RT/Queue_Overlay.pm:259 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "Geen rechten om rijen te creëren" -#: lib/RT/Ticket_Overlay.pm:341 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "Geen rechten om tickets te creëren in de rij '%1'" -#: lib/RT/User_Overlay.pm:151 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "Geen rechten om gebruikers te creëren" -#: html/SelfService/Display.html:174 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "Geen rechten om dat ticket te tonen" -#: html/SelfService/Update.html:55 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "Geen rechten om verversing ticket te bekijken" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "Geen hoofd gespecificeerd" -#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 msgid "No principals selected." msgstr "Geen hoofden geselecteerd" -#: html/Admin/Queues/index.html:35 +#: html/Admin/Queues/index.html:34 msgid "No queues matching search criteria found." msgstr "Geen rijen gevonden die aan de zoekcriteria voldoen" @@ -2805,19 +3632,23 @@ msgstr "Geen rijen gevonden die aan de zoekcriteria voldoen" msgid "No rights found" msgstr "" -#: html/Admin/Elements/SelectRights:33 +#: html/Admin/Elements/SelectRights:32 msgid "No rights granted." msgstr "Geen rechten toegekend" -#: html/Search/Bulk.html:149 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "Geen zoek opdracht om uit te voeren." +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "Geen ticket id gespecificeerd" -#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "Geen transactie type gespecificeerd" @@ -2825,31 +3656,31 @@ msgstr "Geen transactie type gespecificeerd" msgid "No user or email address specified" msgstr "Geen gebruiker of email-adres gespecificeerd" -#: html/Admin/Users/index.html:36 +#: html/Admin/Users/index.html:35 msgid "No users matching search criteria found." msgstr "Geen gebruikers gevonden die aan de zoekcriteria voldoen" -#: bin/rt-commit-handler:644 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Geen geldige RT gebruiker gevonden. RT cvs behandelaar losgemaakt. Neemt u alstublieft contact op met uw RT beheerder.\\n" -#: lib/RT/Interface/Web.pm:859 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "Geen waarde gestuurd naar _Set!\\n" -#: html/Search/Elements/TicketRow:37 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "" -#: lib/RT/Interface/Web.pm:864 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "Nietbestaand veld?" -#: html/Elements/Login:99 +#: NOT FOUND IN SOURCE msgid "Not logged in" msgstr "" -#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "Niet aangemeld." @@ -2857,67 +3688,87 @@ msgstr "Niet aangemeld." msgid "Not set" msgstr "Niet gezet" -#: html/NoAuth/Reminder.html:27 +#: html/NoAuth/Reminder.html:26 msgid "Not yet implemented." msgstr "Nog niet geïmplementeerd." -#: html/Admin/Groups/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Not yet implemented...." msgstr "Nog niet geïmplementeerd...." -#: html/Approvals/Elements/Approve:50 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "Notities" -#: lib/RT/User_Overlay.pm:642 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "Bericht kon niet verstuurd worden" -#: etc/initialdata:94 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "Bericht AdminCcs" -#: etc/initialdata:90 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "Bericht AdminCcs als Commentaar" -#: etc/initialdata:121 +#: 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 "Bericht Andere Ontvangers" -#: etc/initialdata:117 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "Bericht Andere Ontvangers als Commentaar" -#: etc/initialdata:86 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "Bericht Eigenaar" -#: etc/initialdata:82 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "Bericht Eigenaar als Commentaar" -#: etc/initialdata:313 etc/upgrade/2.1.71:17 +#: 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 "Bericht Eigenaars en AdminCcs van nieuwe zaken welke hangende hun goedkeuring zijn" -#: etc/initialdata:78 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "Bericht Aanvragers" -#: etc/initialdata:104 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "Bericht Aanvragers en Ccs" -#: etc/initialdata:99 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "Bericht Aanvragers en Ccs als Commentaar" -#: etc/initialdata:113 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "Bericht Aanvragers, Ccs en AdminCcs" -#: etc/initialdata:109 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Bericht Aanvragers, Ccs en AdminCcs als Commentaar" @@ -2929,14 +3780,22 @@ msgstr "nov." msgid "November" msgstr "" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "Object kon niet gecreëerd worden" -#: lib/RT/Record.pm:176 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "Object gecreëerd" +#: NOT FOUND IN SOURCE +msgid "Object of type %1 cannot take custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Object type mismatch" +msgstr "" + #: lib/RT/Date.pm:420 msgid "Oct." msgstr "oct." @@ -2945,124 +3804,168 @@ msgstr "oct." msgid "October" msgstr "" -#: html/Elements/SelectDateRelation:35 +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + +#: html/Elements/SelectDateRelation:34 msgid "On" msgstr "Bij" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "Bij Commentaar" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "Bij Overeenkomst" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "Bij Creatie" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "Bij Eigenaarwijziging" -#: etc/initialdata:177 +#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 +msgid "On Priority Change" +msgstr "" + +#: etc/initialdata:192 msgid "On Queue Change" msgstr "Bij Rijwijziging" -#: etc/initialdata:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "Bij Oplossing" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "Bij Statuswijziging" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "Bij Transactie" -#: html/Approvals/Elements/PendingMyApproval:50 +#: 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 "Toon alleen goedkeuringen voor verzoeken gecreëerd na %1" -#: html/Approvals/Elements/PendingMyApproval:48 +#: 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 "Toon alleen goedkeuringen voor verzoeken gecreëerd voor %1" -#: html/Elements/Quicksearch:31 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "Open" -#: html/Ticket/Elements/Tabs:136 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Open" -#: html/SelfService/Elements/Tabs:57 +#: NOT FOUND IN SOURCE msgid "Open requests" msgstr "Open verzoeken" -#: html/Admin/Users/Prefs.html:41 +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "Open tickets (van lijst) in een nieuw venster" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "Open tickets (van lijst) in een ander venster" -#: etc/initialdata:133 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "" -#: html/Search/Elements/PickRestriction:101 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Ordening en sortering" -#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "Organisatie" -#: html/Approvals/Elements/Approve:34 +#: html/Approvals/Elements/Approve:32 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Voortgekomen uit ticket: #%1" -#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "Naar mate de tijd vordert, verschuift de prioriteit richting" -#: lib/RT/Queue_Overlay.pm:87 +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "Eigen tickets" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "EigenTicket" -#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "Eigenaar" -#: lib/RT/Ticket_Overlay.pm:3004 -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +#: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" msgstr "Eigenaar veranderd van %1 naar %2" -#: lib/RT/Transaction_Overlay.pm:584 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Eigenaar gedwongen veranderd van %1 naar %2" -#: html/Search/Elements/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "Eigenaar is" -#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "Pieper" -#: html/Admin/Elements/ModifyUser:74 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "Pieper" @@ -3070,56 +3973,68 @@ msgstr "Pieper" msgid "Parent" msgstr "" -#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +#: 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 "Ouders" -#: html/Elements/Login:43 html/User/Prefs.html:61 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "Wachtwoord" -#: html/NoAuth/Reminder.html:25 +#: html/NoAuth/Reminder.html:24 msgid "Password Reminder" msgstr "Wachtwoord Herinerring" -#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "Wachtwoord te kort" -#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Wachtwoord: %1" -#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +#: html/Admin/Users/Modify.html:318 +msgid "Passwords do not match." +msgstr "" + +#: html/User/Prefs.html:211 +msgid "Passwords do not match. Your password has not been changed" +msgstr "" + +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "Mensen" -#: etc/initialdata:126 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "Verricht een gebruiker gedefiniëerde actie" -#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "Toestemming Geweigerd" -#: html/User/Elements/Tabs:35 +#: html/User/Elements/Tabs:34 msgid "Personal Groups" msgstr "" -#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 msgid "Personal groups" msgstr "Persoonlijke groepen" -#: html/User/Elements/DelegateRights:37 +#: html/User/Elements/DelegateRights:36 msgid "Personal groups:" msgstr "Persoonlijke groepen:" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "Telefoonnummers" -#: html/Admin/Users/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Placeholder" msgstr "Plaatshouder" @@ -3127,7 +4042,7 @@ msgstr "Plaatshouder" msgid "Pref" msgstr "" -#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +#: 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 "Voorkeuren" @@ -3135,15 +4050,19 @@ msgstr "Voorkeuren" msgid "Prefs" msgstr "Voorkeuren" -#: lib/RT/Action/Generic.pm:160 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "Bereid Plaatshouder Voor" -#: html/Ticket/Elements/Tabs:61 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "Vorige" -#: html/Search/Listing.html:44 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "Vorige pagina" @@ -3151,41 +4070,57 @@ msgstr "Vorige pagina" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#: 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 "Hoofd %1 niet gevonden." -#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "Prioriteit" -#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "Prioriteit begint bij" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "Gerechtigd" -#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Gerechtigde status: %1" -#: html/Admin/Users/index.html:62 +#: html/Admin/Users/index.html:61 msgid "Privileged users" msgstr "Gerechtigde gebruikers" +#: 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 "Pseudogroep voor intern gebruik" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "Rij" -#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#: 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" @@ -3199,7 +4134,7 @@ msgstr "Rij '%1' niet gevonden\\n" msgid "Queue Keyword Selections" msgstr "" -#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "Rij Naam" @@ -3207,19 +4142,19 @@ msgstr "Rij Naam" msgid "Queue Scrips" msgstr "Rij Scrips" -#: lib/RT/Queue_Overlay.pm:263 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "Rij bestaat al" -#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "Rij kon niet aangemaakt worden" -#: html/Ticket/Create.html:209 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "Rij kon niet geladen worden." -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "Rij aangemaakt" @@ -3227,26 +4162,37 @@ msgstr "Rij aangemaakt" msgid "Queue is not specified." msgstr "Rij is niet gespecificeerd" -#: html/SelfService/Display.html:129 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "Rij niet gevonden" -#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 msgid "Queues" msgstr "Rijen" -#: html/Elements/Login:34 +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "" + +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + +#: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 +#: 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 voor %2" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: NOT FOUND IN SOURCE msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." msgstr "RT %1 van <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." @@ -3258,7 +4204,7 @@ msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "" -#: html/Admin/index.html:25 html/Admin/index.html:26 +#: html/Admin/index.html:24 html/Admin/index.html:25 msgid "RT Administration" msgstr "RT Beheer" @@ -3278,7 +4224,7 @@ msgstr "RT Configuratie fout" msgid "RT Critical error. Message not recorded!" msgstr "RT Kritieke fout: Bericht niet bewaard!" -#: html/Elements/Error:41 html/SelfService/Error.html:41 +#: html/Elements/Error:41 html/SelfService/Error.html:40 msgid "RT Error" msgstr "RT Fout" @@ -3290,11 +4236,19 @@ msgstr "RT Ontving mail (%1) van zichzelf." msgid "RT Recieved mail (%1) from itself." msgstr "" -#: html/SelfService/Closed.html:25 +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT Zelfbediening / Afgesloten Tickets" -#: html/index.html:25 html/index.html:28 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "" @@ -3314,7 +4268,7 @@ msgstr "RT kon de rij %1 niet vinden" msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT kon deze PGP signatuur niet valideren. \\n" -#: html/Elements/PageLayout:26 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "RT voor %1" @@ -3327,11 +4281,14 @@ msgstr "RT voor %1: %2" msgid "RT has proccessed your commands" msgstr "RT heeft uw commando's verwerkt" -#: html/Elements/Login:83 -#. ('2003') +#: 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 © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Het is gedistribueerd onder <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versie 2 van de GNU General Public License.</a>"" +#: 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 "" + #: 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 "" @@ -3348,19 +4305,43 @@ msgstr "RT zal dit bericht verwerken als of het ongesigneerd is.\\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 "RT's email commando modus vereist PGP authenticatie. Of u heeft uw bericht niet gesigneerd, of uw signatuur kon niet geverifieerd worden." -#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "Echte Naam" -#: html/Admin/Elements/ModifyUser:48 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "EchteNaam" -#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "Naar gerefeerd door" -#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +#: 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 "Refereert aan" @@ -3372,20 +4353,20 @@ msgstr "" msgid "Refine" msgstr "Verfijn" -#: html/Search/Elements/PickRestriction:27 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Verfijn Zoekopdracht" -#: html/Elements/Refresh:36 +#: html/Elements/Refresh:35 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Ververs deze pagina elke %1 minuten." -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +#: NOT FOUND IN SOURCE msgid "Relationships" -msgstr "Relaties" +msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "Verwijder AdminCc" @@ -3393,27 +4374,35 @@ msgstr "Verwijder AdminCc" msgid "Remove Cc" msgstr "Verwijder Cc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "Verwijder Verzoeker" -#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "Antwoord" -#: lib/RT/Queue_Overlay.pm:85 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "Antwoord op tickets" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "AntwoordOpTicket" -#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "Verzoeker" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "Verzoeker email adres" @@ -3425,98 +4414,107 @@ msgstr "Verzoeker(s)" msgid "RequestorAddresses" msgstr "" -#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "Verzoekers" -#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "Verzoek is terug verwacht" -#: html/Elements/Submit:62 +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + +#: html/Elements/Submit:61 msgid "Reset" msgstr "Herstel" -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "Woonplaats" -#: html/Ticket/Elements/Tabs:132 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "Los op" -#: html/Ticket/Update.html:133 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Los ticket #%1 (%2) op" -#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "Opgelost" -#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "Antwoord aan verzoekers" -#: html/Elements/ListActions:26 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "Resultaten" -#: html/Search/Elements/PickRestriction:105 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "Resultaten per pagina" -#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "Type wachtwoord opnieuw" +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Recht %1 niet gevonden voor %2 %3 in bereik %4 (%5)\\n" -#: lib/RT/ACE_Overlay.pm:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "Recht Gedelegeerd" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "Recht Toegekend" -#: lib/RT/ACE_Overlay.pm:161 +#: lib/RT/ACE_Overlay.pm:160 msgid "Right Loaded" msgstr "Recht Geladen" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "Recht kon niet afgenomen worden" -#: html/User/Delegation.html:64 +#: html/User/Delegation.html:63 msgid "Right not found" msgstr "Recht niet gevonden" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "Recht niet geladen" -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "" -#: html/Admin/Elements/UserTabs:41 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "Rechten" -#: lib/RT/Interface/Web.pm:758 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "" -#: lib/RT/Interface/Web.pm:791 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "" -#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "Rollen" @@ -3524,32 +4522,53 @@ msgstr "Rollen" msgid "RootApproval" msgstr "RootGoedkeuring" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "Za." -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "Bewaarwijzigingen" -#: html/Ticket/ModifyLinks.html:39 +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "Bewaarwijzigingen" -#: html/Admin/Global/Scrip.html:49 +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "" -#: lib/RT/Scrip_Overlay.pm:176 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "Scrip aangemaakt" -#: html/Admin/Elements/EditScrips:84 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "Script verwijderd" -#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 msgid "Scrips" msgstr "Scrips" @@ -3561,7 +4580,7 @@ msgstr "Scrips voor %1\\n" msgid "Scrips which apply to all queues" msgstr "Scrips welke betrekking hebben op alle rijen" -#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "Zoek" @@ -3569,19 +4588,63 @@ msgstr "Zoek" msgid "Search Criteria" msgstr "Zoek Criteria" -#: html/Approvals/Elements/PendingMyApproval:39 +#: html/Approvals/Elements/PendingMyApproval:38 msgid "Search for approvals" msgstr "" -#: bin/rt-crontool:188 +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "" + +#: bin/rt-crontool:184 msgid "Security:" msgstr "Veiligheid" -#: lib/RT/Queue_Overlay.pm:67 +#: NOT FOUND IN SOURCE +msgid "See custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "SeeCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "ZieRij" -#: html/Admin/Groups/index.html:40 +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Field" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "Selecteer een groep" @@ -3589,87 +4652,111 @@ msgstr "Selecteer een groep" msgid "Select a queue" msgstr "Selecteer een rij" -#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" msgstr "Selecteer een gebruiker" -#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "" -#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" msgstr "" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "" -#: lib/RT/CustomField_Overlay.pm:352 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "" -#: html/Admin/Elements/QueueTabs:67 +#: html/Admin/Elements/QueueTabs:66 msgid "Select queue" msgstr "" -#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +#: 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 "" -#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +#: 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 "" -#: html/Admin/Elements/UserTabs:49 +#: NOT FOUND IN SOURCE +msgid "Select up to %1 values" +msgstr "" + +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "" -#: lib/RT/CustomField_Overlay.pm:36 +#: lib/RT/CustomField_Overlay.pm:35 msgid "SelectMultiple" msgstr "SelecteerMeerdere" -#: lib/RT/CustomField_Overlay.pm:35 +#: lib/RT/CustomField_Overlay.pm:34 msgid "SelectSingle" msgstr "SelecteerEnkele" -#: html/SelfService/index.html:25 +#: NOT FOUND IN SOURCE +msgid "Selected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Selected objects" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Self Service" msgstr "Zelfbediening" -#: etc/initialdata:114 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "Stuurt mail naar alle toeschouwers" -#: etc/initialdata:110 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "Stuurt mail naar alle toeschouwers als een \"commentaar\"" -#: etc/initialdata:105 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "Stuurt mail naar alle verzoekers en Ccs" -#: etc/initialdata:100 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "Stuurt mail naar alle verzoekers en Ccs als een \"commentaar\"" -#: etc/initialdata:79 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "Stuurt een bericht aan de verzoekers" -#: etc/initialdata:118 etc/initialdata:122 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "Stuurt mail aan expliciet genoemde Ccs en Bccs" -#: etc/initialdata:95 +#: 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 "Stuurt mail aan de administratieve Ccs" -#: etc/initialdata:91 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "Stuurt mail aan de administratieve Ccs als een \"commentaar\"" -#: etc/initialdata:83 etc/initialdata:87 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "Stuurt mail aan de eigenaar" @@ -3678,58 +4765,86 @@ msgid "Sep." msgstr "Sep." #: NOT FOUND IN SOURCE -msgid "September" +msgid "Seperate multiple URLs with spaces" msgstr "" #: NOT FOUND IN SOURCE +msgid "September" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "Toon Resultaten" -#: html/Approvals/Elements/PendingMyApproval:44 +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "Toon goedgekeurde verzoeken" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show basics" msgstr "Toon beginselen" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:44 msgid "Show denied requests" msgstr "Toon afgewezen verzoeken" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show details" msgstr "Toon details" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:42 msgid "Show pending requests" msgstr "Toon hangende verzoeken" -#: html/Approvals/Elements/PendingMyApproval:46 +#: html/Approvals/Elements/PendingMyApproval:45 msgid "Show requests awaiting other approvals" msgstr "Toon verzoeken die wachten op andere goedkeuringen" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "Toon ticket privé commentaar" -#: lib/RT/Queue_Overlay.pm:79 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "Toon ticket samenvattingen" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "ToonACL" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "ToonScrips" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "ToonSjabloon" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "ToonTicket" @@ -3737,43 +4852,58 @@ msgstr "ToonTicket" msgid "ShowTicketComments" msgstr "ToonTicketCommentaar" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "Schrijf in als een ticket Verzoeker of ticket of rij Cc" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "Schrijf in als een ticket of rij AdminCc" -#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "Signatuur" -#: html/SelfService/Elements/Header:52 -#. ($session{'CurrentUser'}->Name) +#: NOT FOUND IN SOURCE msgid "Signed in as %1" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:25 msgid "Single" msgstr "Enkel" -#: html/Elements/Header:51 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "" -#: html/Admin/Elements/EditCustomFieldValues:31 +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Sort key" msgstr "Sorteer sleutel" -#: html/Search/Elements/PickRestriction:109 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "Sorteer resultaten op" -#: html/Admin/Elements/AddCustomFieldValue:25 +#: NOT FOUND IN SOURCE msgid "SortOrder" msgstr "SorteerVolgorde" +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "Blijft Steken" @@ -3782,7 +4912,7 @@ msgstr "Blijft Steken" msgid "Start page" msgstr "Start pagina" -#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "Gestart" @@ -3790,7 +4920,7 @@ msgstr "Gestart" msgid "Started date '%1' could not be parsed" msgstr "Startum '%1' kon niet ontleed worden" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "Begint" @@ -3802,19 +4932,19 @@ msgstr "Begint op" msgid "Starts date '%1' could not be parsed" msgstr "Begindatum '%1' kon niet ontleed worden" -#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "Staat" -#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +#: 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 "Status" -#: etc/initialdata:288 +#: etc/initialdata:309 msgid "Status Change" msgstr "" -#: lib/RT/Transaction_Overlay.pm:530 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "Status veranderd van %1 naar %2" @@ -3823,28 +4953,40 @@ msgstr "Status veranderd van %1 naar %2" msgid "StatusChange" msgstr "StatusVerandering" -#: html/Ticket/Elements/Tabs:147 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "Steel" -#: lib/RT/Transaction_Overlay.pm:589 +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "Gestolen van %1" -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +#: 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 "Onderwerp" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#: 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 "Onderwerp veranderd naar %1" -#: html/Elements/Submit:59 +#: html/Elements/Submit:58 msgid "Submit" msgstr "Registreer" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "Registreer Workflow" @@ -3853,19 +4995,31 @@ msgstr "Registreer Workflow" msgid "Succeeded" msgstr "Gelukt" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + #: lib/RT/Date.pm:394 msgid "Sun." msgstr "Zo." -#: lib/RT/System.pm:54 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "SuperGebruiker" -#: html/User/Elements/DelegateRights:77 +#: html/User/Elements/DelegateRights:76 msgid "System" msgstr "Systeem" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "Systeem Fout" @@ -3877,11 +5031,15 @@ msgstr "" msgid "System Error. right not granted" msgstr "" -#: lib/RT/ACE_Overlay.pm:616 +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "Systeem fout. Recht niet gedelegeerd." -#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "Systeem fout. Recht niet toegekend." @@ -3889,7 +5047,7 @@ msgstr "Systeem fout. Recht niet toegekend." msgid "System error. Unable to grant rights." msgstr "Systeem fout. Niet mogelijk om rechten toe te kennen" -#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 msgid "System groups" msgstr "Systeem groepen" @@ -3897,32 +5055,44 @@ msgstr "Systeem groepen" msgid "SystemRolegroup for internal use" msgstr "SysteemRolgroep voor intern gebruik" -#: lib/RT/CurrentUser.pm:320 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Ticket/Elements/Tabs:143 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "Neem" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "Genomen" -#: html/Admin/Elements/EditScrip:81 +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "" + +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "Sjabloon" -#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "" -#: html/Admin/Elements/EditTemplates:89 +#: html/Admin/Elements/EditTemplates:88 msgid "Template deleted" msgstr "" -#: lib/RT/Scrip_Overlay.pm:153 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "Sjabloon niet gevonden" @@ -3930,11 +5100,11 @@ msgstr "Sjabloon niet gevonden" msgid "Template not found\\n" msgstr "Sjabloon niet gevonden\\n" -#: lib/RT/Template_Overlay.pm:347 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "Sjabloon ontleed" -#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 msgid "Templates" msgstr "Sjablonen" @@ -3942,71 +5112,78 @@ msgstr "Sjablonen" msgid "Templates for %1\\n" msgstr "Sjablonen voor %1\\n" -#: lib/RT/Interface/Web.pm:858 +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "" + +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "Dat is al de huidige waarde" -#: lib/RT/CustomField_Overlay.pm:178 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "Dat is geen waarde voor dit specifieke veld" -#: lib/RT/Ticket_Overlay.pm:1886 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "Dat is de zelfde waarde" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Dat hoofd is reeds een %1 voor deze rij" -#: lib/RT/Ticket_Overlay.pm:1434 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Dat hoofd is reeds een %1 voor dit ticket" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Dat hoofd is geen %1 voor deze rij" -#: lib/RT/Ticket_Overlay.pm:1551 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "Dat hoofd is geen %1 voor dit ticket" -#: lib/RT/Ticket_Overlay.pm:1882 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "Die rij bestaat niet" -#: lib/RT/Ticket_Overlay.pm:3143 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "Dat ticket heeft onopgeloste afhankelijkheden" -#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +#: NOT FOUND IN SOURCE msgid "That user already has that right" msgstr "Die gebruiker heeft dat recht reeds" -#: lib/RT/Ticket_Overlay.pm:2952 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "Die gebruiker is al eigenaar van dat ticket" -#: lib/RT/Ticket_Overlay.pm:2918 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "Die gebruiker bestaat niet" -#: lib/RT/User_Overlay.pm:315 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "Die gebruiker is al gerechtigd" -#: lib/RT/User_Overlay.pm:332 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "Die gebruiker is reeds ontrechtigd" -#: lib/RT/User_Overlay.pm:327 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "Die gebruiker is nu gerechtigd" -#: lib/RT/User_Overlay.pm:344 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "Die gebruiker is nu ontrechtigd" @@ -4014,67 +5191,79 @@ msgstr "Die gebruiker is nu ontrechtigd" msgid "That user is now unprivilegedileged" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2944 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "Die gebruiker mag geen eigenaar zijn van tickets in die rij" -#: lib/RT/Link_Overlay.pm:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "Dat is niet een numeriek ID" -#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 msgid "The Basics" msgstr "De Beginselen" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:87 msgid "The CC of a ticket" msgstr "De CC van een ticket" -#: lib/RT/ACE_Overlay.pm:89 +#: lib/RT/ACE_Overlay.pm:88 msgid "The administrative CC of a ticket" msgstr "De administratieve CC van een ticket" -#: lib/RT/Ticket_Overlay.pm:2213 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "Het commentaar is bewaard" -#: bin/rt-crontool:198 +#: 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 "Het volgende commando zal alle actieve tickets in de rij 'general' vinden en hun prioriteit op 99 zetten als ze meer dan 4 uur niet aangeraakt zijn:" -#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "De volgende commando's zijn niet verwerkt:\\n\\n" -#: lib/RT/Interface/Web.pm:861 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "De waarde is gezet." -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:85 msgid "The owner of a ticket" msgstr "De eigenaar van een ticket" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:86 msgid "The requestor of a ticket" msgstr "De verzoeker van een ticket" -#: html/Admin/Elements/EditUserComments:26 +#: html/Admin/Elements/EditUserComments:25 msgid "These comments aren't generally visible to the user" msgstr "Dit commentaar is gewoonlijk niet zichtbaar voor de gebruiker" +#: NOT FOUND IN SOURCE +msgid "This custom field does not apply to that object" +msgstr "" + +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +msgid "This message will be sent to..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "Dit ticket %1 %2 (%3)\\n" -#: bin/rt-crontool:189 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Dit gereedschap stelt de gebruiker in staat arbitraire perl modules te gebruiken vanuit RT" -#: lib/RT/Transaction_Overlay.pm:253 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "Het lijkt erop alsof deze transactie geen inhoud heeft" -#: html/Ticket/Elements/ShowRequestor:47 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "" @@ -4099,61 +5288,75 @@ msgstr "" msgid "Ticket # %1 Jumbo update: %2" msgstr "" -#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Ticket #%1 Jumbo actualisering: %2" -#: html/Approvals/Elements/ShowDependency:46 +#: html/Approvals/Elements/ShowDependency:45 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Ticket #%1: %2" -#: lib/RT/Ticket_Overlay.pm:608 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Ticket %1 aangemaakt in rij '%2'" -#: bin/rt-commit-handler:760 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "Toclet %1 geladen\\n" -#: html/Search/Bulk.html:181 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Ticket %1: %2" -#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#: NOT FOUND IN SOURCE +msgid "Ticket Custom Fields" +msgstr "" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "Ticket Historie # %1 %2" -#: html/SelfService/Display.html:34 +#: NOT FOUND IN SOURCE msgid "Ticket Id" msgstr "Ticket Id" -#: etc/initialdata:303 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "Ticket Opgelost" -#: html/Search/Elements/PickRestriction:63 +#: NOT FOUND IN SOURCE +msgid "Ticket Transactions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Ticket aanhechting" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "Ticket inhoud" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "Ticket inhoud type" -#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +#: 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 "Ticket kong niet aangemaakt worden vanwege een interne fout" -#: lib/RT/Transaction_Overlay.pm:522 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "Ticket aangemaakt" @@ -4161,11 +5364,11 @@ msgstr "Ticket aangemaakt" msgid "Ticket creation failed" msgstr "Ticket aanmaken gefaald" -#: lib/RT/Transaction_Overlay.pm:527 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "Ticket verwijderd" -#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +#: NOT FOUND IN SOURCE msgid "Ticket id not found" msgstr "Ticket id niet gevonden" @@ -4173,58 +5376,65 @@ msgstr "Ticket id niet gevonden" msgid "Ticket killed" msgstr "" -#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "Ticket niet gevonden" -#: etc/initialdata:289 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "Ticket status gewijzigd" -#: html/Ticket/Update.html:39 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "Ticket toeschouwers" -#: html/Elements/Tabs:49 +#: html/Elements/Tabs:46 msgid "Tickets" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "Tickets %1 %2" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "Tickets %1 door %2" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Tickets van %1" -#: html/Approvals/Elements/ShowDependency:27 +#: html/Approvals/Elements/ShowDependency:26 msgid "Tickets which depend on this approval:" msgstr "Tickets welke afhankelijk zijn van deze goedkeuring" -#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "Tijd Over" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "Tijd Gewerkt" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "Tijd over" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "Tijd om te tonen" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "Tijd gewerkt" @@ -4232,40 +5442,57 @@ msgstr "Tijd gewerkt" msgid "TimeLeft" msgstr "TijdOver" -#: lib/RT/Ticket_Overlay.pm:1165 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "TijdGewerkt" -#: bin/rt-commit-handler:402 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "Om een diff van deze uitvoering te genereren:" -#: bin/rt-commit-handler:391 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "Om een diff van deze uitvoering te genereren:\\n" -#: lib/RT/Ticket_Overlay.pm:1168 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "Verteld" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "Transactie" -#: lib/RT/Transaction_Overlay.pm:642 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transactie %1 gezuiverd" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "Transactie Gecreëerd" -#: lib/RT/Transaction_Overlay.pm:89 +#: NOT FOUND IN SOURCE +msgid "Transaction Custom Fields" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "Transactie->Creëer kon niet, aangezien u geen ticket id gespecificeerd heeft" -#: lib/RT/Transaction_Overlay.pm:701 +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "Transacties zijn onwijzigbaar" @@ -4277,102 +5504,169 @@ msgstr "Tracht een recht te verwijderen: %1" msgid "Tue." msgstr "Di." -#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +#: 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:104 +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + +#: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "Niet geïmplementeerd" -#: html/Admin/Users/Modify.html:68 +#: html/Admin/Users/Modify.html:67 msgid "Unix login" msgstr "Unix aanmelden" -#: html/Admin/Elements/ModifyUser:62 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "UnixGebruikersnaam" -#: lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Onbekende InhoudCodering %1" -#: html/Elements/SelectResultsPerPage:37 +#: html/Elements/SelectResultsPerPage:36 msgid "Unlimited" msgstr "Ongelimiteerd" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "Ongerechtigd" -#: lib/RT/Transaction_Overlay.pm:571 +#: NOT FOUND IN SOURCE +msgid "Unselected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Unselected objects" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "Vrij" -#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "" + +#: html/Search/Bulk.html:32 msgid "Update" msgstr "Ververs" -#: html/Admin/Users/Prefs.html:62 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Ververs ID" -#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "Ververs Type" -#: html/Search/Listing.html:61 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "Ververs al deze tickets in eens" -#: html/Admin/Users/Prefs.html:49 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "Ververs email" -#: html/Admin/Users/Prefs.html:55 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "Ververs naam" -#: lib/RT/Interface/Web.pm:375 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "Verversing niet opgeslagen." -#: html/Search/Bulk.html:81 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "Ververs geselecteerde tickets" -#: html/Admin/Users/Prefs.html:36 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Ververs signatuur" -#: html/Ticket/ModifyAll.html:63 +#: html/Ticket/ModifyAll.html:62 msgid "Update ticket" msgstr "Ververs ticket" -#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 -#. ($Ticket->id) +#: NOT FOUND IN SOURCE msgid "Update ticket # %1" msgstr "Ververs ticket # %1" -#: html/SelfService/Update.html:50 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Ververs ticket #%1" -#: html/Ticket/Update.html:135 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Ververs ticket #%1 (%2)" -#: lib/RT/Interface/Web.pm:373 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "Verversingstype was noch correspondentie, noch commentaar" -#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "Ververst" +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple images" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one image" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 images" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "Gebruiker %1 %2: %3\\n" @@ -4381,6 +5675,11 @@ msgstr "Gebruiker %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Gebruiker %1 Wachtwoord: %2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "Gebruiker '%1' niet gevonden" @@ -4389,60 +5688,80 @@ msgstr "Gebruiker '%1' niet gevonden" msgid "User '%1' not found\\n" msgstr "Gebruiker '%1' niet gevonden\\n" -#: etc/initialdata:125 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Gebruiker Gedifiniëerd" -#: html/Admin/Users/Prefs.html:59 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "GebruikersID" -#: html/Elements/SelectUsers:26 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "Gebruiker Id" -#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +#: 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 "Gebruikersrechten" -#: html/Admin/Users/Modify.html:226 +#: NOT FOUND IN SOURCE +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" + +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "Gebruiker kon niet aangemaakt worden: %1" -#: lib/RT/User_Overlay.pm:262 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "Gebruiker aangemaakt" -#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "Door gebruiker gedefiniëerde groepen" +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User notified" msgstr "Gebruiker verwittigd" -#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "Gebruikers aanzicht" -#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +#: NOT FOUND IN SOURCE +msgid "User-defined groups" +msgstr "" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "Gebruikersnaam" -#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +#: 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 "Gebruikers" -#: html/Admin/Users/index.html:65 +#: html/Admin/Users/index.html:64 msgid "Users matching search criteria" msgstr "Gebruikers die voldoen aan de zoek criteria" -#: html/Search/Elements/PickRestriction:51 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "WaardeVanRij" -#: html/Admin/Elements/EditCustomField:40 +#: html/Admin/Elements/EditCustomField:56 msgid "Values" msgstr "Waarden" @@ -4450,11 +5769,11 @@ msgstr "Waarden" msgid "VrijevormEnkele" msgstr "" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "Schouw toe" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "SchouwToeAlsAdminCc" @@ -4462,11 +5781,11 @@ msgstr "SchouwToeAlsAdminCc" msgid "Watcher loaded" msgstr "Toeschouwer geladen" -#: html/Admin/Elements/QueueTabs:42 +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "Toeschouwers" -#: html/Admin/Elements/ModifyUser:56 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "WebCodering" @@ -4474,75 +5793,103 @@ msgstr "WebCodering" msgid "Wed." msgstr "Wo." -#: etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "Wanneer een ticket goedgekeurd is door alle goedkeurders, voeg correspondentie toe aan het orginele ticket" -#: etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "Wanneer een ticket goedgekeurd is door een goedkeurder, voeg correspondentie toe aan het orginele ticket" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "Wanneer een ticket is aangemaakt" -#: etc/upgrade/2.1.71:79 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "Wanneer een goedkeuringsticket is aangemaakts, verwittig de Eigenaar en de AdminCc van het onderwerp dat op hun goedkeuring wacht" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "Wanneer iets gebeurt" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "Wanneer een ticket is opgelost" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "Wanneer de eigenaar van een ticket verandert" -#: etc/initialdata:178 +#: 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 "Wanneer de rij van een ticket verandert" -#: etc/initialdata:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "Wanneer de status van een ticket verandert" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "Wanneer een door de gebruiker gedifiniëerde voorwaarde gebeurt" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "Wanneer commentaar binnenkomt" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "Wanneer correspondentie binnenkomt" -#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "Werk" -#: html/Admin/Elements/ModifyUser:70 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "WerkTelefoon" -#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Gewerkt" -#: lib/RT/Ticket_Overlay.pm:3056 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "U bent al eigenaar van dit ticket" -#: html/autohandler:121 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "U bent geen geauthorizeerde gebruiker" -#: lib/RT/Ticket_Overlay.pm:2930 +#: NOT FOUND IN SOURCE +msgid "You can access it with the Download button on the right." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "U kunt alleen tickets opnieuw toe bedelen die van u zijn, of van niemand" @@ -4550,29 +5897,28 @@ msgstr "U kunt alleen tickets opnieuw toe bedelen die van u zijn, of van niemand msgid "You don't have permission to view that ticket.\\n" msgstr "U heeft geen toestemming om dat ticket te bekijken" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "U vond %1 tickets in rij %2" -#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +#: html/NoAuth/Logout.html:30 msgid "You have been logged out of RT." msgstr "U bent afgemeld bij RT" -#: html/SelfService/Display.html:134 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "U heeft geen toestemming om tickets aan te maken in die rij." -#: lib/RT/Ticket_Overlay.pm:1895 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "U mag geen verzoeken aanmaken in die rij" -#: html/NoAuth/Logout.html:36 +#: html/NoAuth/Logout.html:34 msgid "You're welcome to login again" msgstr "U mag zich weer aanmelden" -#: html/SelfService/Elements/MyRequests:25 -#. ($friendly_status) +#: NOT FOUND IN SOURCE msgid "Your %1 requests" msgstr "Uw %1 verzoeken" @@ -4580,11 +5926,11 @@ msgstr "Uw %1 verzoeken" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "Uw RT beheerder heeft de mail-aliasses welke RT aanroepen verkeerd geconfigureerd" -#: etc/initialdata:429 etc/upgrade/2.1.71:146 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "Uw verzoek is goedgekeurd door %1. Er zijn wellicht nog andere hangende goedkeuringen." -#: etc/initialdata:463 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "Uw verzoek is goedgekeurd." @@ -4592,15 +5938,15 @@ msgstr "Uw verzoek is goedgekeurd." msgid "Your request was rejected" msgstr "" -#: etc/initialdata:384 etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "Uw verzoek was geweigerd." -#: html/autohandler:136 html/autohandler:142 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "Uw gebruikersnaam of wachtwoord zijn onjuist" -#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "Postcode" @@ -4608,32 +5954,44 @@ msgstr "Postcode" msgid "[no subject]" msgstr "" -#: html/User/Elements/DelegateRights:59 +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + +#: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "zoals gegeven aan %1" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 msgid "contains" msgstr "bevat" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content" msgstr "inhoud" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "inhoud-type" -#: lib/RT/Ticket_Overlay.pm:2282 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "correspondentie (waarschijnlijk) niet verstuurd" -#: lib/RT/Ticket_Overlay.pm:2292 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "correspondentie verstuurd" -#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "dagen" @@ -4641,23 +5999,27 @@ msgstr "dagen" msgid "dead" msgstr "dood" -#: html/Search/Listing.html:75 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "verwijder" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "verwijderd" -#: html/Search/Elements/PickRestriction:68 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "voldoet niet aan" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 msgid "doesn't contain" msgstr "bevat niet" -#: html/Elements/SelectEqualityOperator:38 +#: NOT FOUND IN SOURCE +msgid "email address" +msgstr "" + +#: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "gelijk aan" @@ -4665,15 +6027,15 @@ msgstr "gelijk aan" msgid "false" msgstr "" -#: html/Elements/SelectAttachmentField:28 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "bestandsnaam" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "greater than" msgstr "groter dan" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "groep '%1'" @@ -4686,19 +6048,23 @@ msgstr "uren" msgid "id" msgstr "id" -#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + +#: 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:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +#: 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 "is niet" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "less than" msgstr "minder dan" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "voldoet aan" @@ -4706,11 +6072,11 @@ msgstr "voldoet aan" msgid "min" msgstr "min" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "minuten" -#: bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "wijzigingen\\n\\n" @@ -4718,19 +6084,23 @@ msgstr "wijzigingen\\n\\n" msgid "months" msgstr "maanden" -#: lib/RT/Queue_Overlay.pm:58 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "nieuw" -#: html/Admin/Elements/EditScrips:43 +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + +#: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "" -#: html/Ticket/Elements/EditWatchers:28 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "geen" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "not equal to" msgstr "niet gelijk aan" @@ -4738,25 +6108,25 @@ msgstr "niet gelijk aan" msgid "notlike" msgstr "" -#: lib/RT/Queue_Overlay.pm:59 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "open" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "persoonlijke groep '%1' voor gebruiker '%2'" -#: lib/RT/Group_Overlay.pm:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "rij %1 %2" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "geweigerd" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "opgelost" @@ -4764,34 +6134,46 @@ msgstr "opgelost" msgid "sec" msgstr "sec" -#: lib/RT/Queue_Overlay.pm:60 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "bleef steken" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "systeem %1" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "systeem groep '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:42 +#: html/Elements/Error:42 html/SelfService/Error.html:41 msgid "the calling component did not specify why" msgstr "het aanroepende component specificeerde niet waarom" -#: lib/RT/Group_Overlay.pm:210 +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ticket #%1 %2" +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "" + #: NOT FOUND IN SOURCE msgid "true" msgstr "" -#: lib/RT/Group_Overlay.pm:216 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "onbeschreven groep %1" @@ -4800,7 +6182,7 @@ msgstr "onbeschreven groep %1" msgid "undescripbed group %1" msgstr "" -#: lib/RT/Group_Overlay.pm:191 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "gebruiker %1" @@ -4817,3 +6199,7 @@ msgstr "met sjabloon %1" msgid "years" msgstr "jaren" +#: NOT FOUND IN SOURCE +msgid "ニックãƒãƒ¼ãƒ " +msgstr "" + diff --git a/rt/lib/RT/I18N/no.po b/rt/lib/RT/I18N/no.po index 7a76fa183..1c0dc7326 100644 --- a/rt/lib/RT/I18N/no.po +++ b/rt/lib/RT/I18N/no.po @@ -1,39 +1,47 @@ msgid "" msgstr "" -"Project-Id-Version: RT 3.0.1\n" +"Project-Id-Version: RT 3.0.11\n" "POT-Creation-Date: 2003-04-01 06:06+0200\n" "PO-Revision-Date: 2003-05-01 04:47+0200\n" -"Last-Translator: Marcus Ramberg <marcus@thefeed.no>\n" +"Last-Translator: Ronny Pettersen <ronny.pettersen@edb.com>\n" "Language-Team: RT Norwegian <rt@thefeed.no>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" - - -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +#: NOT FOUND IN SOURCE msgid "#" msgstr "#" -#: html/Admin/Queues/Scrip.html:55 -#. ($QueueObj->id) +#: NOT FOUND IN SOURCE msgid "#%1" msgstr "#%1" -#: html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:50 html/SelfService/Display.html:25 html/Ticket/Display.html:26 html/Ticket/Display.html:30 -#. ($Ticket->Id, $Ticket->Subject) +#: 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" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: 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:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -43,7 +51,7 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%1 %3. %2 %7 %4:%5:%6" -#: lib/RT/Ticket_Overlay.pm:3505 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Overlay.pm:599 +#: 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) @@ -55,13 +63,13 @@ msgstr "%1 %2 lagt til" msgid "%1 %2 ago" msgstr "%1 %2 siden" -#: lib/RT/Ticket_Overlay.pm:3511 lib/RT/Transaction_Overlay.pm:564 +#: 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 ble endret til %3" -#: lib/RT/Ticket_Overlay.pm:3508 lib/RT/Transaction_Overlay.pm:560 lib/RT/Transaction_Overlay.pm:605 +#: 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) @@ -72,53 +80,108 @@ msgstr "%1 %2 slettet" msgid "%1 %2 of group %3" msgstr "%1 %2 av gruppen %3" -#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#: 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 med mal %3" +#: NOT FOUND IN SOURCE +msgid "%1 %2 הוסף" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 מקבוצה %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 נמחק" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 שונה ל %3" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" -msgstr "%1 (%2) %3 denne biletten\\n"" +msgstr "%1 (%2) %3 denne saken\\n" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 פנייה זו\\n" +msgstr "" + +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" -#: html/Search/Listing.html:57 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "%1 - %2 vist" -#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#: 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 - Et parameter til %2" -#: bin/rt-crontool:185 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Viser statusoppdateringer til STDOUT" -#: bin/rt-crontool:179 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" -msgstr "%1 - Oppgi kommandomodulen du ønsker  bruke" +msgstr "%1 - Oppgi kommandomodulen du ønsker Ã¥ bruke" -#: bin/rt-crontool:173 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" -msgstr "%1 - Oppgiv betingelsesmodulen du ønsker  bruke" +msgstr "%1 - Oppgi betingelsesmodulen du ønsker Ã¥ bruke" -#: bin/rt-crontool:166 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" -msgstr "%1 - Oppgi søkemodulen du ønsker  bruke" +msgstr "%1 - Oppgi søkemodulen du ønsker Ã¥ bruke" -#: lib/RT/ScripAction_Overlay.pm:122 +#: NOT FOUND IN SOURCE +msgid "%1 - ×רגומנט להעביר ×ל %2" +msgstr "" + + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1 KommandoScript lastet" -#: lib/RT/Ticket_Overlay.pm:3538 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 ble lagt til som verdi for %2" @@ -135,19 +198,19 @@ msgstr "%1 alias trenger en saksnummer Ã¥ jobbe mot " 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:117 lib/RT/Link_Overlay.pm:124 +#: 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 ser ut til Ã¥ være et lokalt objekt, men kan ikke finnes i databasen" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:481 +#: 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 av %2" -#: lib/RT/Transaction_Overlay.pm:535 lib/RT/Transaction_Overlay.pm:624 lib/RT/Transaction_Overlay.pm:633 lib/RT/Transaction_Overlay.pm:636 +#: 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) @@ -155,7 +218,12 @@ msgstr "%1 av %2" msgid "%1 changed from %2 to %3" msgstr "%1 ble endret fra %2 til %3" -#: lib/RT/Interface/Web.pm:891 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "%1 kunne ikke settes til %2." @@ -163,37 +231,48 @@ msgstr "%1 kunne ikke settes til %2." msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 kunne ikke starte en transaksjon (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2817 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($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." -#: html/Elements/MyTickets:25 +#: NOT FOUND IN SOURCE +msgid "%1 created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 deleted" +msgstr "" + +#: html/Elements/MyTickets:24 #. ($rows) +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..." -#: html/Elements/MyRequests:25 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "Mine %1 høyst prioriterte forespørsler..." -#: bin/rt-crontool:161 +#: bin/rt-crontool:157 #. ($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:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($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." -#: lib/RT/Ticket_Overlay.pm:1570 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 er ikke lenger en %2 for denne saken." -#: lib/RT/Ticket_Overlay.pm:3594 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 er ikke lenger en verdi for fleksifeltet %2" @@ -202,16 +281,41 @@ msgstr "%1 er ikke lenger en verdi for fleksifeltet %2" msgid "%1 isn't a valid Queue id." msgstr "%1 er ikke et gyldig saksnummer." -#: html/Ticket/Elements/ShowBasics:36 -#. ($TimeWorked) +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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" +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 vises ikke" -#: html/User/Elements/DelegateRights:76 +#: NOT FOUND IN SOURCE +msgid "%1 objects" +msgstr "" + +#: html/User/Elements/DelegateRights:75 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 rettigheter" @@ -232,7 +336,7 @@ msgstr "%1 er ukjent type for %2" msgid "%1 was created without a CurrentUser\\n" msgstr "%1 ble opprettet uten en aktiv bruker\\n" -#: lib/RT/Action/ResolveMembers.pm:42 +#: lib/RT/Action/ResolveMembers.pm:41 #. (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." @@ -241,22 +345,72 @@ msgstr "%1 vil løse alle medlemmer av en løst gruppesak." 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/Transaction_Overlay.pm:433 +#: NOT FOUND IN SOURCE +msgid "%1 הוסף כערך עבור %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 לפני %2 ימי×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 על ידי %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 פעולת-סקריפ נטענה" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 שונה מ %2 ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2 objects" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1: ingen vedlegg oppgitt" -#: html/Ticket/Elements/ShowTransaction:102 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransaction:99 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1140 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' er en ugyldig statusverdi" @@ -273,7 +427,7 @@ msgstr "(Merk for Ã¥ slette gruppemedlem)" msgid "(Check box to delete scrip)" msgstr "(Merk for Ã¥ slette Scrip)" -#: html/Admin/Elements/EditCustomFieldValues:25 html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +#: 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 "(Merk for Ã¥ slette)" @@ -281,37 +435,53 @@ msgstr "(Merk for Ã¥ slette)" msgid "(Check boxes to delete)" msgstr "(Merk boksene for Ã¥ slette)" +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "(Skriv inn referansenummer eller URler, separert med mellomrom)" -#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#: 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 "(Standard er %1);H +msgstr "(Settes til standard %1 hvis blank)" #: NOT FOUND IN SOURCE msgid "(No Value)" msgstr "(Ingen Verdi)" -#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" msgstr "(Ingen fleksifelt)" -#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" msgstr "(Ingen medlemmer)" -#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 msgid "(No scrips)" msgstr "(Ingen scrips)" -#: html/Admin/Elements/EditTemplates:31 +#: html/Admin/Elements/EditTemplates:30 msgid "(No templates)" msgstr "(Ingen maler)" -#: html/Ticket/Update.html:85 +#: NOT FOUND IN SOURCE +msgid "(None)" +msgstr "" + +#: 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 "(Sender en kopi av denne oppdateringen til en kommaseparert liste med epostaddresser. Endrer <b>ikke</b> hvem som vil motta fremtidige oppdatreinger.)" @@ -319,11 +489,11 @@ msgstr "(Sender en kopi av denne oppdateringen til en kommaseparert liste med ep 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/Create.html:79 +#: 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 "(Sender en kopi av denne oppdateringen til en kommaseparert liste av administrative epostaddresser. Disse vil <b>vil</b> motta fremtidige oppdateringer.)" -#: html/Ticket/Update.html:81 +#: 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 "(Sender en kopi av denne oppdateringen til en komma-separert liste av epostaddresser. Endrer <b>ikke</b> hvem som vil motta fremtidige oppdateringer.)" @@ -331,35 +501,55 @@ msgstr "(Sender en kopi av denne oppdateringen til en komma-separert liste av ep 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/Create.html:69 +#: 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 "(Sender en kopi av dette oppdateringen til en kommaseparert liste med epostaddresser. Disse <b>vill</b> motta fremtidige oppdateringer.)" -#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(tom)" -#: html/Admin/Users/index.html:39 +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + +#: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "(navn ikke oppgitt)" -#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(ingen overskrift)" -#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:534 +#: 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 "(ingen verdi)" -#: html/Ticket/Elements/EditLinks:116 +#: NOT FOUND IN SOURCE +msgid "(no values)" +msgstr "" + +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(bare en sak)" -#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(Venter pÃ¥ godkjenning)" -#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(venter pÃ¥ andre saker)" @@ -367,14 +557,18 @@ msgstr "(venter pÃ¥ andre saker)" msgid "(requestor's group)" msgstr "(kundens gruppe)" -#: html/Admin/Users/Modify.html:50 +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "(nødvendig)" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(ingen tittel)" +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "Mine 25 høyst prioriterte saker..." @@ -383,15 +577,23 @@ msgstr "Mine 25 høyst prioriterte saker..." msgid "25 highest priority tickets I requested..." msgstr "Mine 25 høyst priorterte forespørsler..." -#: html/Ticket/Elements/ShowBasics:32 +#: html/Ticket/Elements/ShowBasics:31 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket-:Status%>" -#: html/Elements/SelectTicketTypes:27 +#: html/Elements/SelectTicketTypes:26 msgid "<% $_ %>" msgstr "<% $_ %>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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=\"Ny sak i\"> %1" @@ -400,7 +602,7 @@ msgstr "<input type=\"submit\" value=\"Ny sak i\"> %1" msgid "??????" msgstr "??????" -#: etc/initialdata:203 +#: etc/initialdata:218 msgid "A blank template" msgstr "En tom mal" @@ -420,52 +622,60 @@ msgstr "ACE kunne ikke slettes" msgid "ACE could not be found" msgstr "fant ikke ACE" -#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "ACE ikke funnet" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "ACEr kan bare opprettes og slettes." -#: bin/rt-commit-handler:755 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "Avbryter for  ung uønsket saksendring" +msgstr "Avbryter for Ã¥ ungÃ¥ uÃ¥nsket saksendring" -#: html/User/Elements/Tabs:32 +#: html/User/Elements/Tabs:31 msgid "About me" msgstr "Om meg" -#: html/Admin/Users/Modify.html:80 +#: html/Admin/Users/Modify.html:79 msgid "Access control" msgstr "Aksesskontroll" -#: html/Admin/Elements/EditScrip:57 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "Handling" -#: lib/RT/Scrip_Overlay.pm:147 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Handling %1 finnes ikke" -#: bin/rt-crontool:123 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "Handling skrevet." -#: bin/rt-crontool:119 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "Handling forberedt" -#: html/Search/Bulk.html:92 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "Legg til AdminCc" -#: html/Search/Bulk.html:90 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "Legg til Cc" -#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "Legg til flere filer" @@ -473,11 +683,11 @@ msgstr "Legg til flere filer" msgid "Add Next State" msgstr "Legg til neste status" -#: html/Search/Bulk.html:88 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "Legg til kunde" -#: html/Admin/Elements/AddCustomFieldValue:26 +#: html/Admin/Elements/AddCustomFieldValue:24 msgid "Add Value" msgstr "Legg til verdi" @@ -491,7 +701,7 @@ 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" +msgstr "Legg til et nøkkelordvalg pÃ¥ denne køen" #: NOT FOUND IN SOURCE msgid "Add a new a global scrip" @@ -501,19 +711,23 @@ msgstr "Legg til et globalt Scrip" msgid "Add a scrip to this queue" msgstr "Legg til et Scrip til denne køen" -#: html/Admin/Global/Scrip.html:55 +#: html/Admin/Global/Scrip.html:54 msgid "Add a scrip which will apply to all queues" msgstr "Legg til et Scrip som vil gjelde for alle køer" -#: html/Search/Bulk.html:118 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "Legg til kommentarer eller svar til denne saken" -#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 msgid "Add members" msgstr "Legg til medlemmer" -#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 msgid "Add new watchers" msgstr "Legg til overvÃ¥kere" @@ -521,37 +735,37 @@ msgstr "Legg til overvÃ¥kere" msgid "AddNextState" msgstr "AddNextState" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($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:1454 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($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/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "Adresse1" -#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "Adresse2" -#: html/Ticket/Create.html:74 +#: html/Ticket/Create.html:73 msgid "Admin Cc" msgstr "Admin Cc" -#: etc/initialdata:280 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "Admin Kommentar" -#: etc/initialdata:259 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "Admin-korrespondanse" -#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 msgid "Admin queues" msgstr "Adminkøer" @@ -559,7 +773,7 @@ msgstr "Adminkøer" msgid "Admin users" msgstr "Adminbrukere" -#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 msgid "Admin/Global configuration" msgstr "Admin/Global konfigurasjon" @@ -567,7 +781,7 @@ msgstr "Admin/Global konfigurasjon" msgid "Admin/Groups" msgstr "Admin/Grupper" -#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "Admin/Køer/Grunnleggende" @@ -575,7 +789,7 @@ msgstr "Admin/Køer/Grunnleggende" msgid "AdminAllPersonalGroups" msgstr "AdminAllePersonalGrupper" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "AdminCc" @@ -587,7 +801,11 @@ msgstr "AdminKommentar" msgid "AdminCorrespondence" msgstr "AdminKorrespondanse" -#: lib/RT/Queue_Overlay.pm:72 +#: NOT FOUND IN SOURCE +msgid "AdminCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "AdminFleksifelt" @@ -599,19 +817,19 @@ msgstr "AdminGruppe" msgid "AdminGroupMembership" msgstr "AdminGruppeMedlemskap" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "AdminOwnPersonalGroups" msgstr "AdminEgnePersonligeGrupper" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "AdminKø" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "AdminUsers" msgstr "AdminBrukere" -#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "Administrativ Cc" @@ -619,11 +837,19 @@ msgstr "Administrativ Cc" msgid "Admins" msgstr "Admin" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Avansert Søk" -#: html/Elements/SelectDateRelation:36 +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + +#: html/Elements/SelectDateRelation:35 msgid "After" msgstr "Etter" @@ -639,11 +865,19 @@ msgstr "Alias" msgid "Alias for" msgstr "Alias for" -#: html/Admin/Elements/EditCustomFields:96 +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Alle Fleksifelt" -#: html/Admin/Queues/index.html:53 +#: html/Admin/Queues/index.html:52 msgid "All Queues" msgstr "Alle køer" @@ -651,23 +885,35 @@ msgstr "Alle køer" msgid "Always sends a message to the requestors independent of message sender" msgstr "Send alltid en melding til kunden uavhengig av meldingssender" -#: html/Elements/Tabs:56 +#: NOT FOUND IN SOURCE +msgid "Applies to" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + +#: html/Elements/Tabs:58 msgid "Approval" msgstr "Godkjennelse" -#: html/Approvals/Display.html:46 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#: 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 "Godkjennelse #%1: %2" -#: html/Approvals/index.html:54 +#: html/Approvals/index.html:53 #. ($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:52 +#: html/Approvals/index.html:51 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Godkjenning #%1: Notater lagret" @@ -676,15 +922,23 @@ msgstr "Godkjenning #%1: Notater lagret" 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:44 +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "Godkjenn" -#: etc/initialdata:437 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "Godkjenners notater: %1" @@ -696,38 +950,71 @@ msgstr "Apr." msgid "April" msgstr "April" -#: html/Elements/SelectSortOrder:35 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "Stigende" -#: html/Search/Bulk.html:127 html/SelfService/Update.html:33 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +#: NOT FOUND IN SOURCE +msgid "Assign and remove custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AssignCustomFields" +msgstr "" + +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "Legg Ved" -#: html/SelfService/Create.html:65 html/Ticket/Create.html:110 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "Legg ved fil" -#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "Vedlagt fil" -#: NOT FOUND IN SOURCE +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Vedlegg '%1' kunne ikke lastes" -#: lib/RT/Transaction_Overlay.pm:441 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "Vedlegg opprettet" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "Vedleggsnavn" -#: html/Ticket/Elements/ShowAttachments:26 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "Vedlegg" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "Aug." @@ -736,11 +1023,11 @@ msgstr "Aug." msgid "August" msgstr "August" -#: html/Admin/Elements/ModifyUser:66 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "AutSystem" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "Autosvar" @@ -752,6 +1039,10 @@ msgstr "Autosvar Til Kunde" msgid "AutoreplyToRequestors" msgstr "AutosvarTilKunde" +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Ugyldig PGP-signatur: %1\\n" @@ -760,8 +1051,7 @@ msgstr "Ugyldig PGP-signatur: %1\\n" msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "Ugyldig vedleggsid. Kunne ikke finne vedlegg '%1'\\n" -#: bin/rt-commit-handler:827 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "Ugyldig data i %1" @@ -769,19 +1059,19 @@ msgstr "Ugyldig data i %1" 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/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +#: 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 "Detaljer" -#: html/Ticket/Update.html:83 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" -msgstr "Sørg for  lagre endringene dine" +msgstr "Sørg for Ã¥ lagre endringene dine" -#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:320 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "Før" @@ -789,80 +1079,120 @@ msgstr "Før" msgid "Begin Approval" msgstr "Begynn Godkjenning" -#: etc/initialdata:202 +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "" + +#: etc/initialdata:217 msgid "Blank" msgstr "Blank" -#: html/Search/Listing.html:79 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "URL som kan brukes som bokmerke for dette søket" -#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "Begrens headere" -#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 msgid "Bulk ticket update" msgstr "Masseoppdatering av saker" -#: lib/RT/User_Overlay.pm:1352 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "Kan ikke endre systembrukere" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "Kan denne primæren se denne køen" -#: lib/RT/CustomField_Overlay.pm:206 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "Kan ikke legge til en verdi for et fleksifelt uten navn" -#: lib/RT/Link_Overlay.pm:132 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "Kan ikke koble en sak til seg selv" -#: lib/RT/Ticket_Overlay.pm:2794 +#: lib/RT/Ticket_Overlay.pm:2716 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" -#: lib/RT/Ticket_Overlay.pm:2612 lib/RT/Ticket_Overlay.pm:2681 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "Kan ikke spesifisere bÃ¥de base og mÃ¥l." -#: html/autohandler:99 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "Kunne ikke oprette bruker: %1" -#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:49 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +#: 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:31 +#: html/SelfService/Prefs.html:30 msgid "Change password" msgstr "Endre passord" -#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +#: NOT FOUND IN SOURCE +msgid "Check All" +msgstr "" + +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "Merk for Ã¥ slette" -#: html/Admin/Elements/SelectRights:31 +#: html/Admin/Elements/SelectRights:30 msgid "Check box to revoke right" msgstr "Merk for Ã¥ trekke tilbake rettighet" -#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:57 +#: 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 "Barn" -#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "By" +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Clear All" +msgstr "" + #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "Lukket" -#: html/SelfService/Closed.html:25 +#: html/SelfService/Closed.html:24 msgid "Closed Tickets" msgstr "Lukkede Saker" @@ -870,7 +1200,7 @@ msgstr "Lukkede Saker" msgid "Closed requests" msgstr "Lukkede forespørsler" -#: html/SelfService/Elements/Tabs:45 +#: html/SelfService/Elements/Tabs:44 msgid "Closed tickets" msgstr "Lukkede saker" @@ -882,11 +1212,11 @@ msgstr "Kode" msgid "Command not understood!\\n" msgstr "Kunne ikke tolke kommando!\\n" -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "Kommenter" -#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "Kommentaraddresse" @@ -894,40 +1224,39 @@ msgstr "Kommentaraddresse" msgid "Comment not recorded" msgstr "Kommentaren ble ikke lagret" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "Kommenter saker" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "KommenterSak" -#: html/Admin/Elements/ModifyUser:35 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "Kommentarer" -#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "Kommentarer (Ikke send til kunder)" -#: html/Search/Bulk.html:122 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "Kommentarer (ikke sendt til kunder)" -#: html/Elements/ViewUser:27 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "Kommentarer til %1" -#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "Kommentarer om denne brukeren" -#: lib/RT/Transaction_Overlay.pm:543 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "La til kommentarer " -#: lib/RT/Action/Generic.pm:140 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "Lagring forkortet" @@ -939,23 +1268,23 @@ msgstr "Kompilatorrestriksjoner" msgid "Condition" msgstr "Forutsetning" -#: bin/rt-crontool:109 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "Forutsetning gjelder..." -#: lib/RT/Scrip_Overlay.pm:160 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "Forutsetning ikke funnet" -#: html/Elements/Tabs:50 +#: html/Elements/Tabs:52 msgid "Configuration" msgstr "Konfigurasjon" -#: html/SelfService/Prefs.html:33 +#: html/SelfService/Prefs.html:32 msgid "Confirm" msgstr "Bekreft" -#: html/Admin/Elements/ModifyUser:60 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "KontaktInfoSystem" @@ -963,23 +1292,31 @@ msgstr "KontaktInfoSystem" msgid "Contacted date '%1' could not be parsed" msgstr "Kontatdato '%1' kunne ikke tolkes" -#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "Innhold" +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "Kunne ikke opprette gruppen" -#: etc/initialdata:271 +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "Korrespondanse" -#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "Korrespondanseaddresse" -#: lib/RT/Transaction_Overlay.pm:539 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "Korrespondanse lagt til" @@ -987,7 +1324,7 @@ msgstr "Korrespondanse lagt til" msgid "Correspondence not recorded" msgstr "Korrespondansen ble ikke lagret" -#: lib/RT/Ticket_Overlay.pm:3525 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "Kunne ikke legge til nye fleksifeltverdier for saken. " @@ -995,29 +1332,29 @@ msgstr "Kunne ikke legge til nye fleksifeltverdier for saken. " msgid "Could not add new custom field value for ticket. %1 " msgstr "Kunne ikke legge til nye fleksifeltverdier for saken. %1 " -#: lib/RT/Ticket_Overlay.pm:3031 lib/RT/Ticket_Overlay.pm:3039 lib/RT/Ticket_Overlay.pm:3055 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "Kunne ikke endre eier. " -#: html/Admin/Elements/EditCustomField:85 html/Admin/Elements/EditCustomFields:166 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "Kunne ikke opprette fleksifelt" -#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "Kunne ikke opprette gruppe" -#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "Kunne ikke opprette mal: %1" -#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:334 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "Kunne ikke opprette sak. Kø ikke satt" -#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:422 +#: 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 "Kunne ikke opprette bruker" @@ -1033,11 +1370,11 @@ msgstr "Kunne ikke finne en sak med id %1" msgid "Could not find group %1." msgstr "Kunne ikke finne gruppen %1." -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "Kunne ikke finne eller lage den brukeren" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "Kunne ikke finne den primæren" @@ -1045,35 +1382,42 @@ msgstr "Kunne ikke finne den primæren" msgid "Could not find user %1." msgstr "Kunne ikke finne brukeren %1." -#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +#: NOT FOUND IN SOURCE +msgid "Could not load CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "Kunne ikke hente gruppen" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($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:1443 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($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:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($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" -#: lib/RT/Ticket_Overlay.pm:1559 -#. ($args{'Type'}) +#: 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/Group_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "Kunne ikke legge til medlemmmer i gruppen" -#: lib/RT/Ticket_Overlay.pm:3535 lib/RT/Ticket_Overlay.pm:3591 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Kunne ikke opprette en transaksjon: %1" @@ -1086,15 +1430,15 @@ msgstr "Kunne ikke tolke gpgs svar\\n" msgid "Couldn't find group\\n" msgstr "Kunne ikke finne gruppen\\n" -#: lib/RT/Interface/Web.pm:900 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "Kunne ikke finne raden" -#: lib/RT/Group_Overlay.pm:959 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "Kunne ikke finne primæren" -#: lib/RT/CustomField_Overlay.pm:240 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "Kunne ikke finne verdien" @@ -1106,11 +1450,19 @@ msgstr "Kunne ikke finne den overvÃ¥kern" msgid "Couldn't find user\\n" msgstr "Kunne ikke finne bruker\\n" -#: lib/RT/CurrentUser.pm:112 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Kunne ikke laste %1 fra brukerdatabasen.\\n" +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "Kunne ikke laste NøkkelordValg." @@ -1123,21 +1475,25 @@ msgstr "Kunne ikke laste RTs konfigurasjonsfil '%1' %2" msgid "Couldn't load Scrips." msgstr "Kunne ikke laste Scripsene." -#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "Kunne ikke laste gruppen %1" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "Kunne ikke laste linken" -#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#: NOT FOUND IN SOURCE +msgid "Couldn't load object %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "Kunne ikke laste køen" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "Kunne ikke laste køen %1" @@ -1150,38 +1506,41 @@ msgstr "Kunne ikke laste scripet" msgid "Couldn't load template" msgstr "Kunne ikke finne mal" -#: html/Admin/Users/Prefs.html:79 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "Kunne ikke laste den brukeren (%1)" -#: html/SelfService/Display.html:109 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Kunne ikke laste saken '%1'" -#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "Land" -#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +#: 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 "Opprett" -#: etc/initialdata:128 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "Opprett Saker" -#: html/Admin/Elements/EditCustomField:75 +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + +#: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "Oprett et fleksifelt" -#: html/Admin/Queues/CustomField.html:48 +#: html/Admin/Queues/CustomField.html:47 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Opprett et fleksifelt for køen %1" -#: html/Admin/Global/CustomField.html:48 +#: html/Admin/Global/CustomField.html:47 msgid "Create a CustomField which applies to all queues" msgstr "Opprett et fleksifelt for alle køer" @@ -1189,6 +1548,10 @@ msgstr "Opprett et fleksifelt for alle køer" msgid "Create a new Custom Field" msgstr "Opprett et nytt fleksifelt" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "Opprett et globalt Scrip" @@ -1197,11 +1560,11 @@ msgstr "Opprett et globalt Scrip" msgid "Create a new global scrip" msgstr "Opprett et nytt globalt scrip" -#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 msgid "Create a new group" msgstr "Opprett en ny gruppe" -#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 msgid "Create a new personal group" msgstr "Opprett en ny personlig gruppe" @@ -1217,11 +1580,11 @@ msgstr "Opprett et nytt scrip" msgid "Create a new template" msgstr "Opprett en ny mal" -#: html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 msgid "Create a new ticket" msgstr "Opprett en ny sak" -#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "Opprett en ny bruker" @@ -1237,19 +1600,27 @@ msgstr "Opprett en kø kalt" msgid "Create a request" msgstr "Opprett en forespørsel" -#: html/Admin/Queues/Scrip.html:59 +#: html/Admin/Queues/Scrip.html:58 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Opprett et scrip for køen %1" -#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 msgid "Create a template" msgstr "Opprett en mal" -#: html/SelfService/Create.html:25 +#: html/SelfService/Create.html:24 msgid "Create a ticket" msgstr "Opprett en sak" +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Opprettelse feilet: %1 / %2 / %3" @@ -1258,23 +1629,23 @@ msgstr "Opprettelse feilet: %1 / %2 / %3" msgid "Create failed: %1/%2/%3" msgstr "Opprettelse feilet: %1/%2/%3" -#: etc/initialdata:130 +#: 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:78 +#: html/SelfService/Create.html:77 msgid "Create ticket" msgstr "Opprett sak" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "Opprett saker i denne køen" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "Opprett, slett og modifiser fleksifelt" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "Opprett, slett og endre køer" @@ -1282,105 +1653,129 @@ msgstr "Opprett, slett og endre køer" 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:59 +#: lib/RT/System.pm:58 msgid "Create, delete and modify the members of personal groups" msgstr "Opprett, slett og modifiser medlemmene av personlige grupper" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "Create, delete and modify users" msgstr "Opprett, slett og modifiser brukere" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "OpprettSak" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "Opprettet" -#: html/Admin/Elements/EditCustomField:88 +#: html/Admin/Elements/EditCustomField:87 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Opprettet Fleksifelt %1" +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Opprettet malen %1" -#: html/Ticket/Elements/EditLinks:28 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "Eksisterende Forhold" -#: html/Admin/Elements/EditScrips:30 +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "" + +#: html/Admin/Elements/EditScrips:29 msgid "Current Scrips" msgstr "Eksisterende Scrips" -#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "Eksisterende medlemmer" -#: html/Admin/Elements/SelectRights:29 +#: html/Admin/Elements/SelectRights:28 msgid "Current rights" msgstr "Eksisterende rettigheter" -#: html/Search/Listing.html:71 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "Eksisterende søkekriterier" -#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "Eksisterende overvÃ¥kere" -#: html/Admin/Global/CustomField.html:55 +#: html/Admin/Global/CustomField.html:54 #. ($CustomField) msgid "Custom Field #%1" msgstr "Fleksifeltet #%1" -#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:36 +#: 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 "Fleksifelt" -#: html/Admin/Elements/EditScrip:73 +#: NOT FOUND IN SOURCE +msgid "Custom Fields for %1" +msgstr "" + +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "Avsluttningskode" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "Forberedelseskode" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "Forutsetning" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "Fleksifeltet %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: NOT FOUND IN SOURCE +msgid "Custom field %1 does not apply to this object" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Fleksifeltet %1 har en verdi." -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Fleksifeltet %1 har ingen verdi." -#: lib/RT/Ticket_Overlay.pm:3427 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Fleksifeltet %1 kunne ikke finnes" -#: html/Admin/Elements/EditCustomFields:197 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "Fleksifeltet slettet" -#: lib/RT/Ticket_Overlay.pm:3577 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "Fleksifeltet kunne ikke finnes" -#: lib/RT/CustomField_Overlay.pm:350 +#: lib/RT/CustomField_Overlay.pm:355 #. ($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" @@ -1389,19 +1784,19 @@ msgstr "Verdien %1 for fleksifeltet %2 kunne ikke finnes" msgid "Custom field value changed from %1 to %2" msgstr "Fleksifeltets verdi endret fra %1 til %2" -#: lib/RT/CustomField_Overlay.pm:250 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "Fleksifeltets verdi kunne ikke slettes" -#: lib/RT/CustomField_Overlay.pm:356 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "Fleksifeltets verdi kunne ikke finnes" -#: lib/RT/CustomField_Overlay.pm:248 lib/RT/CustomField_Overlay.pm:358 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "Fleksifeltverdi slettet" -#: lib/RT/Transaction_Overlay.pm:548 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "FleksiFelt" @@ -1409,7 +1804,7 @@ msgstr "FleksiFelt" msgid "Data error" msgstr "Datafeil" -#: html/SelfService/Display.html:39 html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:55 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +#: 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 "Datoer" @@ -1425,68 +1820,88 @@ msgstr "Desember" msgid "Default Autoresponse Template" msgstr "Standard Autosvarmal" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Standard Autosvarmal" -#: etc/initialdata:281 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "Standard Adminkommentarmal" -#: etc/initialdata:260 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "Standard Adminkorrespondensemal" -#: etc/initialdata:272 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "Standard korrespondensemal" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "Standard transaksjonsmal" -#: lib/RT/Transaction_Overlay.pm:643 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "Standard: %1/%2 endret seg fra %3 til %4" -#: html/User/Delegation.html:25 html/User/Delegation.html:28 +#: html/User/Delegation.html:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "Deleger rettigheter" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "Delegate specific rights which have been granted to you." msgstr "Deleger spesifikke rettigheter som har blitt gitt til deg." -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "DelegateRights" msgstr "DelegerRettigheter" -#: html/User/Elements/Tabs:38 +#: html/User/Elements/Tabs:37 msgid "Delegation" msgstr "Delegering" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "Slett" -#: lib/RT/Queue_Overlay.pm:90 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "Slett saker" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "SlettSak" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "Sletting av dette objektet kan føre til inkonsistens" -#: lib/RT/Queue_Overlay.pm:292 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "Sletting av dette objektet vil føre til inkonsistens" -#: lib/RT/User_Overlay.pm:438 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "Sletting av dette objektet ville føre til inkonsistens" @@ -1498,11 +1913,11 @@ msgstr "Sletting av dette objektet ville føre til inkonsisistens." 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:45 +#: html/Approvals/Elements/Approve:44 msgid "Deny" msgstr "Nekt" -#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:37 +#: 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 "Avhengighet fra" @@ -1510,7 +1925,27 @@ msgstr "Avhengighet fra" msgid "Dependencies: \\n" msgstr "Avhengigheter: \\n" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "Avhengig av" @@ -1518,15 +1953,15 @@ msgstr "Avhengig av" msgid "DependsOn" msgstr "AvhengigAv" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "Synkende" -#: html/SelfService/Create.html:73 html/Ticket/Create.html:119 +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 msgid "Describe the issue below" msgstr "Beskriv problemet under" -#: html/Admin/Elements/AddCustomFieldValue:37 html/Admin/Elements/EditCustomField:39 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +#: 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 "Beskrivelse" @@ -1534,56 +1969,75 @@ msgstr "Beskrivelse" msgid "Details" msgstr "Detaljer" -#: html/Ticket/Elements/Tabs:85 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "Vis" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "Vis Rettigheter" -#: lib/RT/Queue_Overlay.pm:75 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "Vis Scrip-maler for denne køen" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "Vis Scrip-maler for denne køen" -#: html/Ticket/Elements/ShowHistory:35 +#: html/Ticket/Elements/ShowHistory:34 msgid "Display mode" msgstr "Visningsmodus" +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Vis saken #%1" -#: lib/RT/System.pm:54 +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + +#: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "Gjør hva som helst" -#: html/Elements/Refresh:30 +#: html/Elements/Refresh:29 msgid "Don't refresh this page." -msgstr "Ikke last denne siden p nytt" +msgstr "Ikke last denne siden pÃ¥ nytt" -#: html/Search/Elements/PickRestriction:114 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "Ikke vis søkeresultat" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "Last ned" -#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download as a tab-delimited file" +msgstr "" + +#: 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 "Innen" #: NOT FOUND IN SOURCE msgid "Due date '%1' could not be parsed" -msgstr "Innendato '%1' kunne ikke tolkes"" +msgstr "Innendato '%1' kunne ikke tolkes" -#: bin/rt-commit-handler:754 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "FEIL: Kunne ikke laste sak '%1': %2.\\n" @@ -1600,11 +2054,23 @@ msgstr "Rediger Forhold" msgid "Edit Custom Fields for %1" msgstr "Rediger fleksifelt for %1" -#: html/Ticket/ModifyLinks.html:36 -msgid "Edit Relationships" +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "Rediger Forhold" -#: html/Admin/Queues/Templates.html:42 +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit Relationships" +msgstr "" + +#: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Rediger Maler for køen %1" @@ -1613,11 +2079,15 @@ msgstr "Rediger Maler for køen %1" msgid "Edit keywords" msgstr "Rediger nøkkelord" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "Rediger scrips" -#: html/Admin/Global/index.html:46 +#: html/Admin/Global/index.html:45 msgid "Edit system templates" msgstr "Rediger systemmal" @@ -1625,28 +2095,34 @@ msgstr "Rediger systemmal" msgid "Edit templates for %1" msgstr "Rediger maler for %1" -#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:118 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "Rediger Konfigurasjon for køen %1" -#: html/Admin/Elements/ModifyUser:25 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "Redigerer Konfigurasjonen av brukern %1" -#: html/Admin/Elements/EditCustomField:91 +#: html/Admin/Elements/EditCustomField:90 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Redigerer Fleksifeltet %1" -#: html/Admin/Groups/Members.html:32 +#: html/Admin/Groups/Members.html:31 #. ($Group->Name) msgid "Editing membership for group %1" -msgstr "Redigerer medlemsskap for gruppen %1"" +msgstr "Redigerer medlemsskap for gruppen %1" -#: html/User/Groups/Members.html:129 +#: html/User/Groups/Members.html:128 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Redigerer medlemsskap for den personlige gruppen %1" @@ -1655,64 +2131,96 @@ msgstr "Redigerer medlemsskap for den personlige gruppen %1" msgid "Editing template %1" msgstr "Redigerer malen %1" -#: lib/RT/Ticket_Overlay.pm:2622 lib/RT/Ticket_Overlay.pm:2690 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "Enten base eller mÃ¥l mÃ¥ oppgis" -#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "Epost" -#: lib/RT/User_Overlay.pm:188 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "Epostaddresse i bruk" -#: html/Admin/Elements/ModifyUser:42 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "EpostAddresse" -#: html/Admin/Elements/ModifyUser:54 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "EpostFormat" -#: html/Admin/Elements/EditCustomField:51 +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + +#: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "Aktivt (Fjern merkingen for  deaktivere dette fleksifeltet)" +msgstr "Aktivt (Fjern merkingen for Ã¥ deaktivere dette fleksifeltet)" -#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 msgid "Enabled (Unchecking this box disables this group)" -msgstr "Aktiv (Fjern merkingen for  deaktivere denne gruppen)" +msgstr "Aktiv (Fjern merkingen for Ã¥ deaktivere denne gruppen)" -#: html/Admin/Queues/Modify.html:84 +#: html/Admin/Queues/Modify.html:83 msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Aktiv (Fjern merkingen for  deaktivere denne køen)" +msgstr "Aktiv (Fjern merkingen for Ã¥ deaktivere denne køen)" -#: html/Admin/Elements/EditCustomFields:99 +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Aktive Fleksifelt" -#: html/Admin/Queues/index.html:56 +#: html/Admin/Queues/index.html:55 msgid "Enabled Queues" msgstr "Aktive Køer" -#: html/Admin/Elements/EditCustomField:107 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#: 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 "Aktiv status %1" -#: lib/RT/CustomField_Overlay.pm:428 +#: NOT FOUND IN SOURCE +msgid "Enabled status: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "Skriv multiple verdier" -#: lib/RT/CustomField_Overlay.pm:425 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "Skriv en verdi" -#: html/Ticket/Elements/EditLinks:112 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Skriv saker og/eller URIer som det skal linkes til. Separer dem med mellomrom" -#: html/Elements/Login:39 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +#: NOT FOUND IN SOURCE +msgid "Enter up to %1 values" +msgstr "" + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "Feil" @@ -1720,51 +2228,79 @@ msgstr "Feil" msgid "Error adding watcher" msgstr "Feilet ved opprettelse av OvervÃ¥ker" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "Feil i parameterne til Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "Feil i parameterne til Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1356 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Feil i parameterne til Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1532 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "Feil i parameterne til Ticket->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "Alle" -#: bin/rt-crontool:194 +#: bin/rt-crontool:190 msgid "Example:" msgstr "Eksempel:" -#: html/Admin/Elements/ModifyUser:64 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "EksternAutId" -#: html/Admin/Elements/ModifyUser:58 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "EksternKontaktInfoId" -#: html/Admin/Users/Modify.html:73 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "Ekstra info" -#: lib/RT/User_Overlay.pm:302 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Kunne ikke finne pseudogruppen 'Privilgerte' brukere." -#: lib/RT/User_Overlay.pm:309 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Kunne ikke finne 'pseudogruppen 'Upriviligerte' brukere" -#: bin/rt-crontool:138 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Kunne ikke laste modulen %1. (%2)" @@ -1777,31 +2313,51 @@ msgstr "Feb." msgid "February" msgstr "Februar" +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in multiple text areas" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in one text area" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in up to %1 text areas" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "End" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "Endelig Prioritet" -#: lib/RT/Ticket_Overlay.pm:1162 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "EndeligPrioritet" -#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "Finn grupper hvor" +#: NOT FOUND IN SOURCE +msgid "Find groups whose" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Find new/open tickets" -msgstr "Finn nye/Âpne saker" +msgstr "Finn nye/Ã¥pne saker" -#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "Finn folk hvor" -#: html/Search/Listing.html:108 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "Finn saker" @@ -1809,44 +2365,48 @@ msgstr "Finn saker" msgid "Finish Approval" msgstr "Fullfør godkjennelse" -#: html/Ticket/Elements/Tabs:58 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "Først" -#: html/Search/Listing.html:41 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "Første side" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "Foo Bar Baz" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "Tving gjennom endring" -#: html/Search/Listing.html:106 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" -msgstr "Fant %quant(%1,sak)" +msgstr "Fant %quant(%1) sak(er)" -#: lib/RT/Interface/Web.pm:902 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "Fant Objektet" -#: html/Admin/Elements/ModifyUser:44 +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FriforkKontaktInfo" -#: lib/RT/CustomField_Overlay.pm:38 +#: lib/RT/CustomField_Overlay.pm:37 msgid "FreeformMultiple" msgstr "FriformMultipel" -#: lib/RT/CustomField_Overlay.pm:37 +#: lib/RT/CustomField_Overlay.pm:36 msgid "FreeformSingle" msgstr "FriformSingel" @@ -1854,23 +2414,31 @@ msgstr "FriformSingel" msgid "Fri." msgstr "Fre." -#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 msgid "Full headers" msgstr "Fulle headere" +#: html/Tools/Offline.html:65 +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:593 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "Gitt til %1" -#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 msgid "Global" msgstr "Global" +#: NOT FOUND IN SOURCE +msgid "Global Custom Fields" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "Globale Nøkkelordvalg" @@ -1879,12 +2447,16 @@ msgstr "Globale Nøkkelordvalg" msgid "Global Scrips" msgstr "Globale Scrip" -#: html/Admin/Elements/SelectTemplate:38 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Globale maler: %1" -#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "Start!" @@ -1892,11 +2464,11 @@ msgstr "Start!" msgid "Good pgp sig from %1\\n" msgstr "Gyldig pgp sig fra %1\\n" -#: html/Search/Listing.html:50 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "GÃ¥ til siden" -#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "GÃ¥ til saken" @@ -1904,7 +2476,7 @@ msgstr "GÃ¥ til saken" msgid "Grand" msgstr "Stor" -#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "Gruppe" @@ -1912,11 +2484,11 @@ msgstr "Gruppe" msgid "Group %1 %2: %3" msgstr "Gruppen %1 %2: %3" -#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +#: 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 "Grupperettigheter" -#: lib/RT/Group_Overlay.pm:965 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "Alt medlem av gruppen" @@ -1924,7 +2496,7 @@ msgstr "Alt medlem av gruppen" msgid "Group could not be created." msgstr "Gruppen kunne ikke lastes." -#: html/Admin/Groups/Modify.html:77 +#: html/Admin/Groups/Modify.html:76 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Gruppen kunne ikke opprettes: %1" @@ -1933,11 +2505,11 @@ msgstr "Gruppen kunne ikke opprettes: %1" msgid "Group created" msgstr "Gruppen opprettet" -#: lib/RT/Group_Overlay.pm:1133 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "Gruppen har ikke det medlemmet" -#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +#: 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 "Fant ikke gruppen" @@ -1949,36 +2521,56 @@ msgstr "Fant ikke gruppen.\\n" msgid "Group not specified.\\n" msgstr "Ikke spesifisert gruppe.\\n" -#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +#: 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 "Grupper" -#: lib/RT/Group_Overlay.pm:971 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "Grupper kan ikke være medlemmer av sine medlemmer" -#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +#: NOT FOUND IN SOURCE +msgid "Groups matching search criteria" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Groups this user belongs to" +msgstr "" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "Hallo!" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "Hallo, %1" -#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "Historikk" -#: html/Admin/Elements/ModifyUser:68 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the user %1" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "HjemmeTelefon" -#: html/Elements/Tabs:44 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "Hjemmeside" -#: lib/RT/Base.pm:74 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "Jeg har %quant(%1, sementblandere)." @@ -1987,55 +2579,75 @@ msgstr "Jeg har %quant(%1, sementblandere)." msgid "I have [quant,_1,concrete mixer]." msgstr "Jeg har [quant,_1,sementblandere]." -#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +#: 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:44 html/User/Prefs.html:39 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "Identitet" -#: etc/upgrade/2.1.71:86 +#: 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" -#: bin/rt-crontool:190 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "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:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: 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 "Hvis du har oppdatert noe over, sørg for at" -#: lib/RT/Interface/Web.pm:894 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "Ugyldig verdig for %1" -#: lib/RT/Interface/Web.pm:897 +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "" + +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "LÃ¥st felt" -#: html/Admin/Elements/EditCustomFields:74 +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Inkluder deaktiverte fleksifelt i listen." -#: html/Admin/Queues/index.html:43 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "Inkluder deaktiverte køer i listen." -#: html/Admin/Users/index.html:47 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "Inkluder deaktiverte brukere i søket." -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "Startprioritet" -#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "StartPrioritet" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "Feil i inntasting" @@ -2043,11 +2655,11 @@ msgstr "Feil i inntasting" msgid "Interest noted" msgstr "Interesse registrert" -#: lib/RT/Ticket_Overlay.pm:3796 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "Intern Feil" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Intern Feil: %1" @@ -2056,7 +2668,7 @@ msgstr "Intern Feil: %1" msgid "Invalid Group Type" msgstr "Ugyldig gruppetype" -#: lib/RT/Principal_Overlay.pm:128 +#: lib/RT/Principal_Overlay.pm:127 msgid "Invalid Right" msgstr "Ugyldige rettigheter" @@ -2064,50 +2676,50 @@ msgstr "Ugyldige rettigheter" msgid "Invalid Type" msgstr "Ugyldig Type" -#: lib/RT/Interface/Web.pm:899 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "Ugyldig data" -#: lib/RT/Ticket_Overlay.pm:439 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Ugydlig eier. Setter til 'nobody'." -#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "Ugyldig kø" -#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +#: 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 "Ugyldige rettigheter" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "Ugyldig verdi for %1" -#: lib/RT/Ticket_Overlay.pm:3434 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "Ugyldig verdi for fleksifeltet." -#: lib/RT/Ticket_Overlay.pm:346 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "Ugyldig verdi for status" -#: bin/rt-crontool:191 +#: bin/rt-crontool:187 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:192 +#: 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 "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:163 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "Det tar flere parametere:" #: NOT FOUND IN SOURCE msgid "Items pending my approval" -msgstr "Ting som venter p min godkjenning" +msgstr "Ting som venter pÃ¥ min godkjenning" #: lib/RT/Date.pm:411 msgid "Jan." @@ -2129,7 +2741,7 @@ msgstr "Jul." msgid "July" msgstr "Juli" -#: html/Ticket/Elements/Tabs:99 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "Total" @@ -2145,27 +2757,35 @@ msgstr "Juni" msgid "Keyword" msgstr "Nøkkelord" -#: html/Admin/Elements/ModifyUser:52 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "SprÃ¥k" -#: html/Ticket/Elements/Tabs:73 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "Siste" -#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "Siste Kontakt" -#: html/Elements/SelectDateType:29 +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + +#: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "Sist kontaktet" -#: html/Search/Elements/TicketHeader:41 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "Sist Informert" -#: html/Elements/SelectDateType:30 +#: html/Elements/SelectDateType:29 msgid "Last Updated" msgstr "Sist Oppdatert" @@ -2173,15 +2793,19 @@ msgstr "Sist Oppdatert" msgid "LastUpdated" msgstr "SistOppdatert" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "Igjen" -#: html/Admin/Users/Modify.html:83 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" msgstr "La denne brukeren fÃ¥ tilgang til RT" -#: html/Admin/Users/Modify.html:87 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" msgstr "La denne brukeren fÃ¥ rettigheter" @@ -2193,29 +2817,29 @@ msgstr "Begrenser eier til %1 %2" msgid "Limiting queue to %1 %2" msgstr "Begrenser køen til %1 %2" -#: lib/RT/Ticket_Overlay.pm:2704 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "Lenke finnes alt" -#: lib/RT/Ticket_Overlay.pm:2716 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "Lenke kunne ikke opprettes" -#: lib/RT/Ticket_Overlay.pm:2724 lib/RT/Ticket_Overlay.pm:2734 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "Lenke opprettet (%1)" -#: lib/RT/Ticket_Overlay.pm:2645 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "Lenke slettet (%1)" -#: lib/RT/Ticket_Overlay.pm:2651 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "Lenke ble ikke funnet" -#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Knytt sak #%1" @@ -2224,85 +2848,109 @@ msgstr "Knytt sak #%1" msgid "Link ticket %1" msgstr "Knytt sak %1" -#: html/Ticket/Elements/Tabs:97 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "Lenker" -#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "Lokasjon" -#: lib/RT.pm:159 +#: lib/RT.pm:184 #. ($RT::LogDir) 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:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Logget inn som %1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 +#: 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 "Innlogging" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "Logg av" -#: html/Search/Bulk.html:86 +#: NOT FOUND IN SOURCE +msgid "Lookup type mismatch" +msgstr "" + +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "Sett Eier" -#: html/Search/Bulk.html:102 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "Sett Status" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:115 msgid "Make date Due" -msgstr "Sett tidsfrist" +msgstr "msgstr "Sett tidsfrist" " -#: html/Search/Bulk.html:110 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "Sett løsningsdato" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "Sett startdato" -#: html/Search/Bulk.html:106 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "Sett startdato" -#: html/Search/Bulk.html:108 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "Sett informert dato" -#: html/Search/Bulk.html:99 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "Sett prioritet" -#: html/Search/Bulk.html:100 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "Sett Kø" -#: html/Search/Bulk.html:98 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "Sett Emne" -#: html/Admin/index.html:33 +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Manage custom fields and custom field values" +msgstr "" + +#: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "Sett grupper og gruppemedlemsskap" -#: html/Admin/index.html:39 +#: html/Admin/index.html:38 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:36 +#: html/Admin/index.html:35 msgid "Manage queues and queue-specific properties" msgstr "Rediger køer og kø-spesifike egenskaper" -#: html/Admin/index.html:30 +#: html/Admin/index.html:29 msgid "Manage users and passwords" msgstr "Rediger brukere og passord" @@ -2322,19 +2970,29 @@ msgstr "Mai" msgid "May." msgstr "Mai." -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "Medlem lagt til" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "Medlem slettet" -#: lib/RT/Group_Overlay.pm:1144 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "Medlem ikke slettet" -#: html/Elements/SelectLinkType:26 +#: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "Medlem av" @@ -2342,39 +3000,90 @@ msgstr "Medlem av" msgid "MemberOf" msgstr "MedlemAv" -#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "Medlemmer" -#: lib/RT/Ticket_Overlay.pm:2891 +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships of the user %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "Fletting vellykket" -#: lib/RT/Ticket_Overlay.pm:2811 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Fletting feilet. Kunne ikke sette EffektivId" -#: html/Ticket/Elements/EditLinks:115 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "Flett inn i" -#: html/Ticket/Update.html:102 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "Melding" -#: lib/RT/Interface/Web.pm:901 +#: NOT FOUND IN SOURCE +msgid "Message body not shown because it is too large or is not plain text." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "Mangler en primærnøkkel?: %1" -#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "Mobil" -#: html/Admin/Elements/ModifyUser:72 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "MobilTelefon" -#: lib/RT/Queue_Overlay.pm:70 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "Endre Tilgangslister" @@ -2382,15 +3091,31 @@ msgstr "Endre Tilgangslister" msgid "Modify Custom Field %1" msgstr "Endre Fleksifeltet %1" -#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all %1" +msgstr "" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "Endre Fleksifelt som gjelder for alle køer" -#: lib/RT/Queue_Overlay.pm:73 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "Endre Scripmaler for denne køen" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "Endre Scrips for denne køen" @@ -2402,43 +3127,55 @@ msgstr "Endre SystemACLer" msgid "Modify Template %1" msgstr "Endre Malen %1" -#: html/Admin/Queues/CustomField.html:45 +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + +#: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "Endre et fleksifelt for køen %1" -#: html/Admin/Global/CustomField.html:53 +#: html/Admin/Global/CustomField.html:52 msgid "Modify a CustomField which applies to all queues" msgstr "Endre et fleksifelt som gjelder for alle køer" -#: html/Admin/Queues/Scrip.html:54 +#: html/Admin/Queues/Scrip.html:53 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Endre et scrip for køen %1" -#: html/Admin/Global/Scrip.html:48 +#: html/Admin/Global/Scrip.html:47 msgid "Modify a scrip which applies to all queues" msgstr "Endre et scrip som gjelder for alle køer" +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +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:25 html/Ticket/ModifyDates.html:29 +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Endre datoer for #%1" -#: html/Ticket/ModifyDates.html:35 +#: html/Ticket/ModifyDates.html:34 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Endre datoer for sak # %1" -#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 msgid "Modify global group rights" msgstr "Endre globale grupperettigheter" -#: html/Admin/Global/GroupRights.html:33 +#: html/Admin/Global/GroupRights.html:32 msgid "Modify global group rights." msgstr "Endre globale grupperettigheter" @@ -2454,11 +3191,11 @@ msgstr "Endre globale rettigheter for brukere" msgid "Modify global scrips" msgstr "Endre globale scrips" -#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 msgid "Modify global user rights" msgstr "Endre globale brukerrettigheter" -#: html/Admin/Global/UserRights.html:33 +#: html/Admin/Global/UserRights.html:32 msgid "Modify global user rights." msgstr "Endre globale brukerrettigheter" @@ -2466,12 +3203,16 @@ msgstr "Endre globale brukerrettigheter" msgid "Modify group metadata or delete group" msgstr "Endre gruppens metadata eller slette gruppen" -#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "" + +#: 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 "Endre grupperettigheter for %1 gruppen" -#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Endre grupperettigheter %1 køen" @@ -2480,74 +3221,78 @@ msgstr "Endre grupperettigheter %1 køen" msgid "Modify membership roster for this group" msgstr "Endre medlemsliste for denne gruppen" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "Modify one's own RT account" msgstr "Endre sin egen RT konto" -#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Endre hvem som er relatert til %1 køen" -#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#: 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 "Endre hvem som er relater til sak #%1" -#: html/Admin/Queues/Scrips.html:44 +#: html/Admin/Queues/Scrips.html:45 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Endre scrips for %1 køen" -#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 msgid "Modify scrips which apply to all queues" msgstr "Endre scrips som gjelder alle køer" -#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#: 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 "Endre mal %1" -#: html/Admin/Global/Templates.html:44 +#: html/Admin/Global/Templates.html:43 msgid "Modify templates which apply to all queues" msgstr "Endre maler som gjelder for alle køer" -#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 #. ($Group->Name) msgid "Modify the group %1" msgstr "Endre gruppen %1" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "Endre overvÃ¥kere for køen" -#: html/Admin/Users/Modify.html:236 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Endre brukeren %1" -#: html/Ticket/ModifyAll.html:37 +#: html/Ticket/ModifyAll.html:36 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Endre sak # %1" -#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Endre sak #%1" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "Endre saker" -#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify user rights for custom field %1" +msgstr "" + +#: 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 "Endre brukerrettigheter for %1 gruppen" -#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Endre brukerrettigheter for %1 køen" @@ -2556,7 +3301,7 @@ msgstr "Endre brukerrettigheter for %1 køen" msgid "Modify watchers for queue '%1'" msgstr "Endre overvÃ¥kere for '%1' køen" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "EndreACL" @@ -2564,23 +3309,23 @@ msgstr "EndreACL" msgid "ModifyOwnMembership" msgstr "EndreEgetMedlemskap" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "EndreKøOvervÃ¥kere" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "EndreScrips" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "ModifySelf" msgstr "EndreSegSelv" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "EndreMal" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "EndreSak" @@ -2588,28 +3333,32 @@ msgstr "EndreSak" msgid "Mon." msgstr "Man." -#: html/Ticket/Elements/ShowRequestor:42 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "Mer om %1" -#: html/Admin/Elements/EditCustomFields:61 +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "Flytt ned" -#: html/Admin/Elements/EditCustomFields:53 +#: html/Admin/Elements/EditCustomFields:52 msgid "Move up" msgstr "Flytt opp" -#: html/Admin/Elements/SelectSingleOrMultiple:27 +#: html/Admin/Elements/SelectSingleOrMultiple:26 msgid "Multiple" msgstr "Flere" -#: lib/RT/User_Overlay.pm:179 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "MÃ¥ spesifisere attributten 'Navn'" -#: html/SelfService/Elements/MyRequests:49 +#: html/SelfService/Elements/MyRequests:48 #. ($friendly_status) msgid "My %1 tickets" msgstr "Mine %1 saker" @@ -2618,18 +3367,26 @@ msgstr "Mine %1 saker" msgid "My Approvals" msgstr "Mine saker til godkjenning" -#: html/Approvals/index.html:25 html/Approvals/index.html:26 +#: html/Approvals/index.html:24 html/Approvals/index.html:25 msgid "My approvals" msgstr "Mine saker til godkjenning" -#: html/Admin/Elements/AddCustomFieldValue:33 html/Admin/Elements/EditCustomField:34 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "Navn" -#: lib/RT/User_Overlay.pm:186 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "Navnet er i bruk" +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Trenger godkjennelse fra systemadministrator" @@ -2638,43 +3395,59 @@ msgstr "Trenger godkjennelse fra systemadministrator" msgid "Never" msgstr "Aldri" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "Ny" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "Nye forhold" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "Nytt Passord" -#: etc/initialdata:317 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "Ny, Venter pÃ¥ Godkjennelse" -#: html/Ticket/Elements/EditLinks:111 +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "New Relationships" -msgstr "Nye forhold" +msgstr "" -#: html/Ticket/Elements/Tabs:36 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "Nytt Søk" -#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + +#: 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 "Nytt fleksifelt" -#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 msgid "New group" msgstr "Ny gruppe" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:31 msgid "New password" msgstr "Nytt passord" -#: lib/RT/User_Overlay.pm:647 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "Melding om nytt passord sendt" -#: html/Admin/Elements/QueueTabs:70 +#: html/Admin/Elements/QueueTabs:69 msgid "New queue" msgstr "Ny kø" @@ -2682,11 +3455,11 @@ msgstr "Ny kø" msgid "New request" msgstr "Ny forespørsel" -#: html/Admin/Elements/SelectRights:42 +#: html/Admin/Elements/SelectRights:41 msgid "New rights" msgstr "Nye rettigheter" -#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +#: 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 "Nytt scrip" @@ -2694,71 +3467,91 @@ msgstr "Nytt scrip" msgid "New search" msgstr "Nytt søk" -#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:50 +#: 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 "Ny mal" -#: html/SelfService/Elements/Tabs:48 +#: html/SelfService/Elements/Tabs:47 msgid "New ticket" msgstr "Ny sak" -#: lib/RT/Ticket_Overlay.pm:2778 +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "Ny sak eksistere ikke" -#: html/Admin/Elements/UserTabs:52 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "Ny bruker" -#: html/Admin/Elements/CreateUserCalled:26 +#: html/Admin/Elements/CreateUserCalled:25 msgid "New user called" msgstr "Ny bruker kalt" -#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 msgid "New watchers" msgstr "Ny overvÃ¥ker" -#: html/Admin/Users/Prefs.html:42 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "Instillinger for nytt vindu" -#: html/Ticket/Elements/Tabs:69 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "Neste" -#: html/Search/Listing.html:48 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "Neste side" -#: html/Admin/Elements/ModifyUser:50 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "KalleNavn" -#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "Kallenavn" -#: html/Admin/Elements/EditCustomField:90 html/Admin/Elements/EditCustomFields:105 +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "Ingen FleksiFelt" -#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "Ingen grupper definert" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "Ingen kø definert" -#: bin/rt-crontool:56 +#: bin/rt-crontool:52 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:79 html/Admin/Queues/Template.html:76 +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 msgid "No Template" msgstr "Ingen Mal" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "Ingen sak oppgitt. Avbryter sak " @@ -2766,11 +3559,11 @@ msgstr "Ingen sak oppgitt. Avbryter sak " msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "Ingen Sak oppgitt. Avbryter saksendring\\n\\n" -#: html/Approvals/Elements/Approve:46 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "Ingen handling" -#: lib/RT/Interface/Web.pm:896 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "Ingen kolonne spesifisert" @@ -2778,57 +3571,64 @@ msgstr "Ingen kolonne spesifisert" msgid "No command found\\n" msgstr "Ingen kommando funnet\\n" -#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "Ingen kommentar skrevet om denne brukeren" -#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "Ingen korrespondanse vedlagt" -#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#: 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 "Ingen beskrivelse for %1" -#: lib/RT/Users_Overlay.pm:145 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "Ingen gruppe spesifisert" -#: lib/RT/User_Overlay.pm:865 +#: NOT FOUND IN SOURCE +msgid "No groups matching search criteria found." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "Passordet er ikke satt" -#: lib/RT/Queue_Overlay.pm:259 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "Ingen tilgang til Ã¥ opprette køer" -#: lib/RT/Ticket_Overlay.pm:342 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE 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:152 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "Ikke tilgang til Ã¥ opprette brukere" -#: html/SelfService/Display.html:118 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "Ikke tilgang til Ã¥ vise den saken" -#: html/SelfService/Update.html:52 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "Ingen tilgang til Ã¥ se oppdatering av saken" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "Ingen primær spesifisert" -#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 msgid "No principals selected." msgstr "Ingen primære spesifisert" -#: html/Admin/Queues/index.html:35 +#: html/Admin/Queues/index.html:34 msgid "No queues matching search criteria found." msgstr "Det er ingen køer som matcher søkekriteriet" @@ -2836,19 +3636,23 @@ msgstr "Det er ingen køer som matcher søkekriteriet" msgid "No rights found" msgstr "Ingen rettigheter funnet" -#: html/Admin/Elements/SelectRights:33 +#: html/Admin/Elements/SelectRights:32 msgid "No rights granted." msgstr "Ingen rettigheter tildelt" -#: html/Search/Bulk.html:149 +#: html/Search/Bulk.html:162 msgid "No search to operate on." -msgstr "Ingen søk  behandle" +msgstr "Ingen søk Ã¥ behandle" + +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "Ingen saksid oppgitt" -#: lib/RT/Transaction_Overlay.pm:478 lib/RT/Transaction_Overlay.pm:516 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "Transaksjonstype ikke spesifisert" @@ -2856,23 +3660,23 @@ msgstr "Transaksjonstype ikke spesifisert" msgid "No user or email address specified" msgstr "Ingen bruker eller epostaddresse oppgitt" -#: html/Admin/Users/index.html:36 +#: html/Admin/Users/index.html:35 msgid "No users matching search criteria found." msgstr "Fant ingen brukere som treffer søkekriteriene." -#: bin/rt-commit-handler:644 +#: 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/Interface/Web.pm:893 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "Ingen verdi sendt til _Set!\\n" -#: html/Search/Elements/TicketRow:37 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "Ingen" -#: lib/RT/Interface/Web.pm:898 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "Ukjent felt?" @@ -2880,7 +3684,7 @@ msgstr "Ukjent felt?" msgid "Not logged in" msgstr "Ikke logget inn" -#: html/Elements/Header:59 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "Ikke logget inn." @@ -2888,7 +3692,7 @@ msgstr "Ikke logget inn." msgid "Not set" msgstr "Ikke satt" -#: html/NoAuth/Reminder.html:27 +#: html/NoAuth/Reminder.html:26 msgid "Not yet implemented." msgstr "Ikke implementert enda." @@ -2896,59 +3700,79 @@ msgstr "Ikke implementert enda." msgid "Not yet implemented...." msgstr "Ikke implementert enda...." -#: html/Approvals/Elements/Approve:49 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "Notater" -#: lib/RT/User_Overlay.pm:650 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "Melding kunne ikke sendes" -#: etc/initialdata:94 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "Raporter til AdminCc" -#: etc/initialdata:90 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "Rapporter til AdminCc som kommentar" -#: etc/initialdata:121 +#: 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:117 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "Rapporter til andre mottakere som kommentar" -#: etc/initialdata:86 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "Rapporter til eier" -#: etc/initialdata:82 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "Rapportert til eier som kommentar" -#: etc/initialdata:319 etc/upgrade/2.1.71:17 +#: 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:78 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "Rapporter til kunde" -#: etc/initialdata:104 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "Rapporter til Kunder og Cc" -#: etc/initialdata:99 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "Rapporter til Kunder og Cc som kommentar" -#: etc/initialdata:113 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "Rapporter til Kunder Cc og AdminCc" -#: etc/initialdata:109 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Rapporter til Kunder Cc og AdminCc som Kommentar" @@ -2960,14 +3784,22 @@ msgstr "Nov." msgid "November" msgstr "November" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "Objekter kunne ikke opprettes" -#: lib/RT/Record.pm:176 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "Objektet ble opprettet" +#: NOT FOUND IN SOURCE +msgid "Object of type %1 cannot take custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Object type mismatch" +msgstr "" + #: lib/RT/Date.pm:420 msgid "Oct." msgstr "Okt." @@ -2976,57 +3808,73 @@ msgstr "Okt." msgid "October" msgstr "Oktober" -#: html/Elements/SelectDateRelation:35 +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + +#: html/Elements/SelectDateRelation:34 msgid "On" msgstr "Ved" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "Ved Kommentar" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "Ved Korrespondanse" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "Ved Opprettelse" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "Ved Eierskifte" -#: etc/initialdata:177 +#: 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:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "Ved Løsning" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "Ved statusendring" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "Ved Transaksjon" -#: html/Approvals/Elements/PendingMyApproval:50 +#: 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 "Vis kun godkjennelse for saker opprettet etter %1" -#: html/Approvals/Elements/PendingMyApproval:48 +#: 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 "Bare vis godkjennelse for saker opprettet før %1" -#: html/Elements/Quicksearch:31 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "Ã…pne" -#: html/Ticket/Elements/Tabs:136 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Ã…pne den" @@ -3034,70 +3882,94 @@ msgstr "Ã…pne den" msgid "Open requests" msgstr "Ã…pne forespørsler" -#: html/SelfService/Elements/Tabs:42 +#: html/SelfService/Elements/Tabs:41 msgid "Open tickets" msgstr "Ã…pne saker" -#: html/Admin/Users/Prefs.html:41 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "Ã…pne saker (fra utlisting) i et nytt vindu" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "Ã…pne saker (fra utlisting) it et annet vinud" -#: etc/initialdata:133 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "Ã…pne saker ved korrespondanse" -#: html/Search/Elements/PickRestriction:101 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Rekkefølge og sortering" -#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "Organisasjon" -#: html/Approvals/Elements/Approve:33 +#: html/Approvals/Elements/Approve:32 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Opprinnelig sak: #%1" -#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "Over tid beveger prioriteten seg mot" -#: lib/RT/Queue_Overlay.pm:87 +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "Eie saker" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "EieSak" -#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "Eier" -#: lib/RT/Ticket_Overlay.pm:3071 -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +#: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" msgstr "Eier endret fra %1 til %2" -#: lib/RT/Transaction_Overlay.pm:582 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Eier ble tvunget til Ã¥ endres fra %1 til %2" -#: html/Search/Elements/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "Eier er" -#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "Personsøker" -#: html/Admin/Elements/ModifyUser:74 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "PersonSøker" @@ -3105,60 +3977,64 @@ msgstr "PersonSøker" msgid "Parent" msgstr "Forelder" -#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:47 +#: 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 "Foreldre" -#: html/Elements/Login:52 html/User/Prefs.html:61 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "Passord" -#: html/NoAuth/Reminder.html:25 +#: html/NoAuth/Reminder.html:24 msgid "Password Reminder" msgstr "Passordhint" -#: lib/RT/User_Overlay.pm:169 lib/RT/User_Overlay.pm:868 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "For kort passord" -#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Passord: %1" -#: html/Admin/Users/Modify.html:293 +#: html/Admin/Users/Modify.html:318 msgid "Passwords do not match." msgstr "Passordene stemmer ikke overens." -#: html/User/Prefs.html:174 +#: html/User/Prefs.html:211 msgid "Passwords do not match. Your password has not been changed" msgstr "Passordene stemmer ikke overrens. Passordet ble ikke endret" -#: html/Ticket/Elements/ShowSummary:45 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" -msgstr "Folk" +msgstr "Personer" -#: etc/initialdata:126 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "Kjør en brukerdefinert handling" -#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:101 lib/RT/CustomField_Overlay.pm:202 lib/RT/CustomField_Overlay.pm:234 lib/RT/CustomField_Overlay.pm:511 lib/RT/CustomField_Overlay.pm:91 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2603 lib/RT/Ticket_Overlay.pm:2675 lib/RT/Ticket_Overlay.pm:2769 lib/RT/Ticket_Overlay.pm:2784 lib/RT/Ticket_Overlay.pm:2978 lib/RT/Ticket_Overlay.pm:3206 lib/RT/Ticket_Overlay.pm:3404 lib/RT/Ticket_Overlay.pm:3566 lib/RT/Ticket_Overlay.pm:3618 lib/RT/Ticket_Overlay.pm:3783 lib/RT/Transaction_Overlay.pm:466 lib/RT/Transaction_Overlay.pm:473 lib/RT/Transaction_Overlay.pm:502 lib/RT/Transaction_Overlay.pm:509 lib/RT/User_Overlay.pm:1355 lib/RT/User_Overlay.pm:570 lib/RT/User_Overlay.pm:605 lib/RT/User_Overlay.pm:861 lib/RT/User_Overlay.pm:962 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "Ingen Tilgang" -#: html/User/Elements/Tabs:35 +#: html/User/Elements/Tabs:34 msgid "Personal Groups" msgstr "Personlige Grupper" -#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 msgid "Personal groups" msgstr "Personlige grupper" -#: html/User/Elements/DelegateRights:37 +#: html/User/Elements/DelegateRights:36 msgid "Personal groups:" msgstr "Personlige grupper:" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "Telefonnummer" @@ -3170,7 +4046,7 @@ msgstr "Stedholder" msgid "Pref" msgstr "Pref" -#: html/Elements/Header:52 html/Elements/Tabs:53 html/SelfService/Elements/Tabs:51 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +#: 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 "Instillinger" @@ -3178,15 +4054,19 @@ msgstr "Instillinger" msgid "Prefs" msgstr "Pref" -#: lib/RT/Action/Generic.pm:160 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "Klargjør Forkortet" -#: html/Ticket/Elements/Tabs:61 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "Forrige" -#: html/Search/Listing.html:44 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "Forrige side" @@ -3194,41 +4074,57 @@ msgstr "Forrige side" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#: 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 "Primær %1 ikke funnet." -#: html/Search/Elements/PickRestriction:54 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "Prioritet" -#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "Prioritet starter pÃ¥" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "Priviligert" -#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Priviligert status: %1" -#: html/Admin/Users/index.html:62 +#: html/Admin/Users/index.html:61 msgid "Privileged users" msgstr "Priviligerte brukere" +#: 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 "Pseduogruppe for intern bruk" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:33 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "Kø" -#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:44 +#: 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" @@ -3242,7 +4138,7 @@ msgstr "Køen '%1' ikke funnet\\n" msgid "Queue Keyword Selections" msgstr "Nøkkelordvalg for kø" -#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "Kønavn" @@ -3250,19 +4146,19 @@ msgstr "Kønavn" msgid "Queue Scrips" msgstr "Køscrip" -#: lib/RT/Queue_Overlay.pm:263 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "Køen eksisterer allerede" -#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "Køen kunne ikke opprettes" -#: html/Ticket/Create.html:205 +#: html/Ticket/Create.html:208 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:282 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "Køen opprettet" @@ -3270,30 +4166,37 @@ msgstr "Køen opprettet" msgid "Queue is not specified." msgstr "Køen er ikke oppgitt." -#: html/SelfService/Display.html:71 lib/RT/CustomField_Overlay.pm:98 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "Køen ikke funnet" -#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 msgid "Queues" msgstr "Køer" -#: html/Elements/Quicksearch:25 +#: html/Elements/Quicksearch:24 msgid "Quick search" msgstr "Raskt søk" +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + #: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 +#: 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" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: 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>." @@ -3305,7 +4208,7 @@ msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" 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:25 html/Admin/index.html:26 +#: html/Admin/index.html:24 html/Admin/index.html:25 msgid "RT Administration" msgstr "RT-administrasjon" @@ -3325,7 +4228,7 @@ msgstr "RT Konfigurasjonsfeil" msgid "RT Critical error. Message not recorded!" msgstr "Kritisk RT feil. Meldingen ble ikke lagret!" -#: html/Elements/Error:41 html/SelfService/Error.html:41 +#: html/Elements/Error:41 html/SelfService/Error.html:40 msgid "RT Error" msgstr "RT Feil" @@ -3337,11 +4240,19 @@ msgstr "RT Mottok mail (%1) fra seg selv." msgid "RT Recieved mail (%1) from itself." msgstr "RT Mottok mail (%1) fra seg selv." +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT Selvbetjening / Lukkede Saker" -#: html/index.html:25 html/index.html:28 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "RT oversikt" @@ -3359,9 +4270,9 @@ msgstr "RT kunne ikke finne køen: %1" #: NOT FOUND IN SOURCE msgid "RT couldn't validate this PGP signature. \\n" -msgstr "RT kunne ikke validere denne PGP signaturen. \\n" +msgstr "msgstr "RT kunne ikke validere denne PGP signaturen. \\n" " -#: html/Elements/PageLayout:26 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "RT for %1" @@ -3374,14 +4285,17 @@ msgstr "RT for %1: %2" msgid "RT has proccessed your commands" msgstr "RT har behandlet dine kommandoer" -#: html/Elements/Login:92 -#. ('2003') +#: 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>"" +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-%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 "" #: 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>"" +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" @@ -3395,19 +4309,43 @@ msgstr "RT vil behandle denne meldingen som om den var usignert" 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:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "Ekte Navn" -#: html/Admin/Elements/ModifyUser:48 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "EkteNavn" -#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:71 +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "Referert til av" -#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:61 +#: 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 "Refererer til" @@ -3419,20 +4357,20 @@ msgstr "RefererTil" msgid "Refine" msgstr "Redefiner" -#: html/Search/Elements/PickRestriction:27 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Redefiner søket" -#: html/Elements/Refresh:36 +#: html/Elements/Refresh:35 #. ($value/60) msgid "Refresh this page every %1 minutes." -msgstr "Last siden p nytt hvert %1 minutt." +msgstr "Last siden pÃ¥ nytt hvert %1 minutt." -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:62 html/Ticket/ModifyAll.html:57 +#: NOT FOUND IN SOURCE msgid "Relationships" -msgstr "Forhold" +msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "Fjern AdminCc" @@ -3440,27 +4378,35 @@ msgstr "Fjern AdminCc" msgid "Remove Cc" msgstr "Fjern Cc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "Fjern Kunde" -#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "Svar" -#: lib/RT/Queue_Overlay.pm:85 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" -msgstr "Svar p sak" +msgstr "Svar pÃ¥ sak" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" -msgstr "SvarPÂSak" +msgstr "SvarPÃ¥Sak" -#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "Kunde" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "Kundens epostaddresse" @@ -3472,98 +4418,107 @@ msgstr "Kunde(r)" msgid "RequestorAddresses" msgstr "KundeAddresser" -#: html/SelfService/Create.html:41 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "Kunder" -#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "Forespørsler skal være behandlet innen" -#: html/Elements/Submit:62 +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + +#: html/Elements/Submit:61 msgid "Reset" msgstr "Reset" -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "Hjemme" -#: html/Ticket/Elements/Tabs:132 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "Løs" -#: html/Ticket/Update.html:133 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Løs saknr #%1 (%2)" -#: etc/initialdata:308 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "Løst" -#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "Svar til kunder" -#: html/Elements/ListActions:26 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "Resultater" -#: html/Search/Elements/PickRestriction:105 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "Resultater per side" -#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "Skriv Passord igjen" +#: html/Search/Elements/EditSearches:13 +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:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "Rettighet Deligert" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "Rettighet Tildelt" -#: lib/RT/ACE_Overlay.pm:161 +#: lib/RT/ACE_Overlay.pm:160 msgid "Right Loaded" msgstr "Rettighet lastet" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "Rettigheten kunne ikke trekkes tilbake" -#: html/User/Delegation.html:64 +#: html/User/Delegation.html:63 msgid "Right not found" msgstr "Rettighet ikke funnet" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "Rettighet ikke lastet." -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "Rettighet fjernet" -#: html/Admin/Elements/UserTabs:41 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "Rettigheter" -#: lib/RT/Interface/Web.pm:792 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Rettigheter kunne ikke tildeles for %1" -#: lib/RT/Interface/Web.pm:825 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "Rettigheter kunne ikke trekkes tilbake for %1" -#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "Roller" @@ -3571,32 +4526,53 @@ msgstr "Roller" msgid "RootApproval" msgstr "RootGodkjenning" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "Lør." -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyLinks.html:39 html/Ticket/ModifyPeople.html:38 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "Lagre Endringer" -#: NOT FOUND IN SOURCE +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "Lage endringer" -#: html/Admin/Global/Scrip.html:49 +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:176 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "Scrip Opprettet" -#: html/Admin/Elements/EditScrips:84 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "Scrip slettet" -#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 msgid "Scrips" msgstr "Scrip" @@ -3608,7 +4584,7 @@ msgstr "Scrip for %1\\n" msgid "Scrips which apply to all queues" msgstr "Scrip som gjelder for alle køer" -#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "Søk" @@ -3616,19 +4592,63 @@ msgstr "Søk" msgid "Search Criteria" msgstr "Søkekriteria" -#: html/Approvals/Elements/PendingMyApproval:39 +#: html/Approvals/Elements/PendingMyApproval:38 msgid "Search for approvals" msgstr "Søk etter godkjenninger" -#: bin/rt-crontool:188 +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "" + +#: bin/rt-crontool:184 msgid "Security:" msgstr "Sikkerhet:" -#: lib/RT/Queue_Overlay.pm:67 +#: NOT FOUND IN SOURCE +msgid "See custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "SeeCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "SeKø" -#: html/Admin/Groups/index.html:40 +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Field" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "Velg en gruppe" @@ -3636,87 +4656,111 @@ msgstr "Velg en gruppe" msgid "Select a queue" msgstr "Velg en kø" -#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" msgstr "Velg en bruker" -#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "Velg fleksifelt" -#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" msgstr "Velg gruppe" -#: lib/RT/CustomField_Overlay.pm:422 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "Velg flere verdier" -#: lib/RT/CustomField_Overlay.pm:419 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "Velg en verdi" -#: html/Admin/Elements/QueueTabs:67 +#: html/Admin/Elements/QueueTabs:66 msgid "Select queue" msgstr "Velg kø" -#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +#: 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 "Velg scrip" -#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 html/Admin/Queues/Templates.html:47 +#: 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 "Velg mal" -#: html/Admin/Elements/UserTabs:49 +#: NOT FOUND IN SOURCE +msgid "Select up to %1 values" +msgstr "" + +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "Velg bruker" -#: lib/RT/CustomField_Overlay.pm:36 +#: lib/RT/CustomField_Overlay.pm:35 msgid "SelectMultiple" msgstr "VelgFlere" -#: lib/RT/CustomField_Overlay.pm:35 +#: lib/RT/CustomField_Overlay.pm:34 msgid "SelectSingle" msgstr "VelgEnkelt" +#: NOT FOUND IN SOURCE +msgid "Selected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Selected objects" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Self Service" msgstr "Selvbetjening" -#: etc/initialdata:114 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "Send epost til alle overvÃ¥kere" -#: etc/initialdata:110 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "Send epost til alle overvÃ¥kere som \"kommentar\"" -#: etc/initialdata:105 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "Send epost til kunder og Cc" -#: etc/initialdata:100 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "Send epost til kunder og Cc som kommentar" -#: etc/initialdata:79 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "Sender en melding til kundene" -#: etc/initialdata:118 etc/initialdata:122 +#: 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:95 +#: 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:91 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "Sender epost til de administrative Ccene som kommentar" -#: etc/initialdata:83 etc/initialdata:87 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "Sender epost til eieren" @@ -3724,59 +4768,87 @@ msgstr "Sender epost til eieren" msgid "Sep." msgstr "Sep." +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "" + #: NOT FOUND IN SOURCE msgid "September" msgstr "September" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "Vis Resultater" -#: html/Approvals/Elements/PendingMyApproval:44 +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "Vis godkjente forespørsler" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show basics" msgstr "Vis basisinfo" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:44 msgid "Show denied requests" msgstr "Vis avviste forespørsler" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show details" msgstr "Vis detaljer" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:42 msgid "Show pending requests" msgstr "Vis ventende forespørsler" -#: html/Approvals/Elements/PendingMyApproval:46 +#: html/Approvals/Elements/PendingMyApproval:45 msgid "Show requests awaiting other approvals" msgstr "Vis forespørsler som venter pÃ¥ andre godkjenninger" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "Vis sakens private kommentarer" -#: lib/RT/Queue_Overlay.pm:79 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "Vis sakssammendrag" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "VisACL" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "VisScrip" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "VisMal" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "VisSak" @@ -3784,15 +4856,15 @@ msgstr "VisSak" msgid "ShowTicketComments" msgstr "VisSaksKommentarer" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 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:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "Meld deg pÃ¥ som sak/kø AdminCc" -#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/User/Prefs.html:112 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "Signatur" @@ -3800,23 +4872,27 @@ msgstr "Signatur" msgid "Signed in as %1" msgstr "Logget inn som %1" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:25 msgid "Single" msgstr "Enkel" -#: html/Elements/Header:51 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "Dropp Meny" -#: html/Admin/Elements/AddCustomFieldValue:29 +#: html/Admin/Elements/AddCustomFieldValue:27 msgid "Sort" msgstr "Sorter" +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Sort key" msgstr "Sorter nøkkel" -#: html/Search/Elements/PickRestriction:109 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "Sorter resultater etter" @@ -3824,6 +4900,14 @@ msgstr "Sorter resultater etter" msgid "SortOrder" msgstr "SorteringsRekkefølge" +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "Pauset" @@ -3832,7 +4916,7 @@ msgstr "Pauset" msgid "Start page" msgstr "Startside" -#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "Startet" @@ -3840,7 +4924,7 @@ msgstr "Startet" msgid "Started date '%1' could not be parsed" msgstr "Startdato '%1' kunne ikke tolkes" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "Starter" @@ -3852,19 +4936,19 @@ msgstr "Starter Etter" msgid "Starts date '%1' could not be parsed" msgstr "Startdato '%1' kunne ikke tolkes" -#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "Stat" -#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +#: 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 "Status" -#: etc/initialdata:294 +#: etc/initialdata:309 msgid "Status Change" msgstr "Statusendring" -#: lib/RT/Transaction_Overlay.pm:528 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "Status endret fra %1 til %2" @@ -3873,28 +4957,40 @@ msgstr "Status endret fra %1 til %2" msgid "StatusChange" msgstr "EndreStatus" -#: html/Ticket/Elements/Tabs:147 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "Stjel" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "StjÃ¥let fra %1 " -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:57 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:32 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +#: 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 "Emne" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:609 +#: 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 "Endre emne til %1" -#: html/Elements/Submit:59 +#: html/Elements/Submit:58 msgid "Submit" msgstr "Oppdater" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "Send Arbeidsflyt" @@ -3903,19 +4999,31 @@ msgstr "Send Arbeidsflyt" msgid "Succeeded" msgstr "Lykkes" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + #: lib/RT/Date.pm:394 msgid "Sun." msgstr "Søn." -#: lib/RT/System.pm:54 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "SuperBruker" -#: html/User/Elements/DelegateRights:77 +#: html/User/Elements/DelegateRights:76 msgid "System" msgstr "System" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:791 lib/RT/Interface/Web.pm:824 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "Systemfeil" @@ -3927,11 +5035,15 @@ msgstr "Systemfeil. Rettighet ikke tildelt." msgid "System Error. right not granted" msgstr "Systemfeil. rettigheter ikke tildelt" -#: lib/RT/ACE_Overlay.pm:616 +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "Systemfeil. Rettighet ikke tildelt." -#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "Systemfeil. Rettighet ikke tildelt." @@ -3939,7 +5051,7 @@ msgstr "Systemfeil. Rettighet ikke tildelt." msgid "System error. Unable to grant rights." msgstr "Systemfeil. Kunne ikke tildele rettigheter." -#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 msgid "System groups" msgstr "Systemgrupper" @@ -3947,32 +5059,44 @@ msgstr "Systemgrupper" msgid "SystemRolegroup for internal use" msgstr "SystemRollegruppe for intern bruk" -#: lib/RT/CurrentUser.pm:318 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "TEST_STRENG" -#: html/Ticket/Elements/Tabs:143 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "Ta" -#: lib/RT/Transaction_Overlay.pm:573 +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "Tatt" -#: html/Admin/Elements/EditScrip:81 +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "" + +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "Mal" -#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Mal #%1" -#: html/Admin/Elements/EditTemplates:89 +#: html/Admin/Elements/EditTemplates:88 msgid "Template deleted" msgstr "Mal slettet" -#: lib/RT/Scrip_Overlay.pm:153 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "Kunne ikke finne mal" @@ -3980,11 +5104,11 @@ msgstr "Kunne ikke finne mal" msgid "Template not found\\n" msgstr "Kunne ikke finne mal\\n" -#: lib/RT/Template_Overlay.pm:347 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "Mal tolket" -#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 msgid "Templates" msgstr "Maler" @@ -3992,47 +5116,50 @@ msgstr "Maler" msgid "Templates for %1\\n" msgstr "Maler for %1\\n" -#: lib/RT/Interface/Web.pm:892 +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "" + +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "Verdien er allerede satt" -#: lib/RT/CustomField_Overlay.pm:243 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "Det er ikke en verdi for dette fleksifeltet" -#: lib/RT/Ticket_Overlay.pm:1886 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "Det er den samme verdien" -#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 msgid "That principal already has that right" msgstr "Den primæren har allerede den rettigheten" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/Queue_Overlay.pm:674 #. ($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:1434 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($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:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Den primæren er ikke en %1 for denne køen" -#: lib/RT/Ticket_Overlay.pm:1551 -#. ($args{'Type'}) +#: 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:1882 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "Den køen eksisterer ikke" -#: lib/RT/Ticket_Overlay.pm:3210 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "Denne saken har uløste avhengigheter" @@ -4040,27 +5167,27 @@ msgstr "Denne saken har uløste avhengigheter" msgid "That user already has that right" msgstr "Den brukeren har allerede den rettigheten" -#: lib/RT/Ticket_Overlay.pm:3020 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "Den brukeren eier allerede den saken" -#: lib/RT/Ticket_Overlay.pm:2986 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "Den brukeren finnes ikke" -#: lib/RT/User_Overlay.pm:315 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "Den brukeren er allerede priviligert" -#: lib/RT/User_Overlay.pm:336 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "Den brukeren er allerede upriviligert" -#: lib/RT/User_Overlay.pm:328 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "Denne brukeren er nÃ¥ priviligert" -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "Dette brukeren er nÃ¥ upriviligert" @@ -4068,67 +5195,79 @@ msgstr "Dette brukeren er nÃ¥ upriviligert" msgid "That user is now unprivilegedileged" msgstr "Den brukeren er allerede upriviligert" -#: lib/RT/Ticket_Overlay.pm:3012 +#: lib/RT/Ticket_Overlay.pm:2949 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:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "Dette er ikke en numerisk id" -#: html/SelfService/Display.html:32 html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 msgid "The Basics" msgstr "Detaljer" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:87 msgid "The CC of a ticket" msgstr "CCen til en sak" -#: lib/RT/ACE_Overlay.pm:89 +#: lib/RT/ACE_Overlay.pm:88 msgid "The administrative CC of a ticket" msgstr "Administrative CCer for en sak" -#: lib/RT/Ticket_Overlay.pm:2213 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "Kommentarer er lagret" -#: bin/rt-crontool:198 +#: 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 "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:" -#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +#: 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/Interface/Web.pm:895 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "Den nye verdien har blitt satt." -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:85 msgid "The owner of a ticket" msgstr "Eieren av en sak" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:86 msgid "The requestor of a ticket" msgstr "Forespørren av en sak" -#: html/Admin/Elements/EditUserComments:26 +#: html/Admin/Elements/EditUserComments:25 msgid "These comments aren't generally visible to the user" msgstr "Disse kommentarene er generelt ikke synlig for brukeren" +#: NOT FOUND IN SOURCE +msgid "This custom field does not apply to that object" +msgstr "" + +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +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:189 +#: bin/rt-crontool:185 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:251 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "Denne transaksjonen ser ikke ut til Ã¥ ha noe innhold" -#: html/Ticket/Elements/ShowRequestor:47 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Denne brukerens %1 høyst prioriterte saker" @@ -4153,32 +5292,42 @@ msgstr "Sak # %1 %2" msgid "Ticket # %1 Jumbo update: %2" msgstr "Sak $ %1 Jumbo oppdater: %2" -#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Sak #%1 Jumbo oppdatering: %2" -#: html/Approvals/Elements/ShowDependency:46 +#: html/Approvals/Elements/ShowDependency:45 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Sak #%1: %2" -#: lib/RT/Ticket_Overlay.pm:587 lib/RT/Ticket_Overlay.pm:608 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Sak %1 opprettet i '%2' køen" -#: bin/rt-commit-handler:760 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "Sak %1 lastet\\n" -#: html/Search/Bulk.html:181 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Sak %1: %2" -#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#: NOT FOUND IN SOURCE +msgid "Ticket Custom Fields" +msgstr "" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "Sakshistorikk # %1 %2" @@ -4187,27 +5336,31 @@ msgstr "Sakshistorikk # %1 %2" msgid "Ticket Id" msgstr "SaksId" -#: etc/initialdata:309 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "Løst Sak" -#: html/Search/Elements/PickRestriction:63 +#: NOT FOUND IN SOURCE +msgid "Ticket Transactions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Saks-vedlegg" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "Saks-innhold" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "Sakens innholdstype" -#: lib/RT/Ticket_Overlay.pm:496 lib/RT/Ticket_Overlay.pm:597 +#: 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 "Saken kunne ikke opprettes pÃ¥ grunn av en intern feil" -#: lib/RT/Transaction_Overlay.pm:520 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "Sak opprettet" @@ -4215,11 +5368,11 @@ msgstr "Sak opprettet" msgid "Ticket creation failed" msgstr "Saksopprettelse feilet" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "Sak slettet" -#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +#: NOT FOUND IN SOURCE msgid "Ticket id not found" msgstr "Saksid ikke funnet" @@ -4227,58 +5380,65 @@ msgstr "Saksid ikke funnet" msgid "Ticket killed" msgstr "Sak drept" -#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "Sak ikke funnet" -#: etc/initialdata:295 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "Saksstatus endret" -#: html/Ticket/Update.html:39 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "SaksovervÃ¥kere" -#: html/Elements/Tabs:47 +#: html/Elements/Tabs:46 msgid "Tickets" msgstr "Saker" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "Saker %1 %2" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "Saker %1 av %2" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Saker fra %1" -#: html/Approvals/Elements/ShowDependency:27 +#: html/Approvals/Elements/ShowDependency:26 msgid "Tickets which depend on this approval:" msgstr "Saker som er avhengige av denne godkjennelsen:" -#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "Tid Igjen" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "Arbeidstid" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "Tid igjen" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "Tid Ã¥ vise" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "Arbeidstid" @@ -4286,40 +5446,57 @@ msgstr "Arbeidstid" msgid "TimeLeft" msgstr "TidIgjen" -#: lib/RT/Ticket_Overlay.pm:1165 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "ArbeidsTid" -#: bin/rt-commit-handler:402 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "For Ã¥ generere en diff av denne bekreftelsen:" -#: bin/rt-commit-handler:391 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "For Ã¥ genere en diff av denne bekreftelsen" -#: lib/RT/Ticket_Overlay.pm:1168 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "Fortalt" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "Transaksjon" -#: lib/RT/Transaction_Overlay.pm:640 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transaksjon %1 slettet" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "Transaksjon Opprettet" -#: lib/RT/Transaction_Overlay.pm:89 +#: NOT FOUND IN SOURCE +msgid "Transaction Custom Fields" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:92 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:699 +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "Transaksjoner er lÃ¥st" @@ -4331,76 +5508,108 @@ msgstr "Prøver Ã¥ slette en rettighet: %1" msgid "Tue." msgstr "Tir." -#: html/Admin/Elements/EditCustomField:44 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +#: 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:104 +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + +#: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "Uimplementert" -#: html/Admin/Users/Modify.html:68 +#: html/Admin/Users/Modify.html:67 msgid "Unix login" msgstr "Unix login" -#: html/Admin/Elements/ModifyUser:62 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "UnixBrukerNavn" -#: lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Ukjent InnholdsFormatering %1" -#: html/Elements/SelectResultsPerPage:37 +#: html/Elements/SelectResultsPerPage:36 msgid "Unlimited" msgstr "Ubegrenset" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "Upriviligert" -#: lib/RT/Transaction_Overlay.pm:569 +#: NOT FOUND IN SOURCE +msgid "Unselected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Unselected objects" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "Ikke tatt" -#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "" + +#: html/Search/Bulk.html:32 msgid "Update" msgstr "Oppdater" -#: html/Admin/Users/Prefs.html:62 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Oppdater ID" -#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "Oppdater Type" -#: html/Search/Listing.html:61 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "Oppdater alle disse sakene samtidig" -#: html/Admin/Users/Prefs.html:49 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "Oppdater epost" -#: html/Admin/Users/Prefs.html:55 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "Oppdater navn" -#: lib/RT/Interface/Web.pm:409 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "Oppdatering ikke lagret." -#: html/Search/Bulk.html:81 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "Oppdater valgte saker" -#: html/Admin/Users/Prefs.html:36 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Oppdater signatur" -#: html/Ticket/ModifyAll.html:63 +#: html/Ticket/ModifyAll.html:62 msgid "Update ticket" msgstr "Oppdater sak" @@ -4408,24 +5617,60 @@ msgstr "Oppdater sak" msgid "Update ticket # %1" msgstr "Ooppdater sak # %1" -#: html/SelfService/Update.html:25 html/SelfService/Update.html:47 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Oppdater sak #%1" -#: html/Ticket/Update.html:135 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Oppdater sak #%1 (%2)" -#: lib/RT/Interface/Web.pm:407 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "Oppdateringstype var verken korrespondanse eller kommentar." -#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "Oppdatert" +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple images" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one image" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 images" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "Bruker %1 %2: %3\\n" @@ -4434,6 +5679,11 @@ msgstr "Bruker %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Bruker %1 Passord: %2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($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" @@ -4442,60 +5692,80 @@ msgstr "Brukeren '%1' ble ikke funnet" msgid "User '%1' not found\\n" msgstr "Brukeren '%1' ble ikke funnet" -#: etc/initialdata:125 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Bruker Definert" -#: html/Admin/Users/Prefs.html:59 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "BrukerID" -#: html/Elements/SelectUsers:26 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "BrukerId" -#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +#: 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 "Brukerrettigheter" -#: html/Admin/Users/Modify.html:226 +#: NOT FOUND IN SOURCE +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" + +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "Bruker kunne ikke opprettes: %1" -#: lib/RT/User_Overlay.pm:262 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "Bruker opprettet" -#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "Brukerdefinerte grupper" +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User notified" msgstr "Bruker informert" -#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "Brukervisning" -#: html/Admin/Users/Modify.html:48 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:35 +#: NOT FOUND IN SOURCE +msgid "User-defined groups" +msgstr "" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "Brukernavn" -#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +#: 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 "Brukere" -#: html/Admin/Users/index.html:65 +#: html/Admin/Users/index.html:64 msgid "Users matching search criteria" msgstr "Brukere som treffer søkekriteria" -#: html/Search/Elements/PickRestriction:51 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "KøVerdi" -#: html/Admin/Elements/EditCustomField:57 +#: html/Admin/Elements/EditCustomField:56 msgid "Values" msgstr "Verdier" @@ -4503,11 +5773,11 @@ msgstr "Verdier" msgid "VrijevormEnkele" msgstr "VrijevormEnkele" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "OvervÃ¥k" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "OvervÃ¥kSomAdminCc" @@ -4515,11 +5785,11 @@ msgstr "OvervÃ¥kSomAdminCc" msgid "Watcher loaded" msgstr "OvervÃ¥ker lastet" -#: html/Admin/Elements/QueueTabs:42 +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "OvervÃ¥kere" -#: html/Admin/Elements/ModifyUser:56 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "WebFormatering" @@ -4527,75 +5797,103 @@ msgstr "WebFormatering" msgid "Wed." msgstr "Ons." -#: etc/upgrade/2.1.71:161 +#: 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/upgrade/2.1.71:135 +#: 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:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "NÃ¥r er sak er opprettet" -#: etc/upgrade/2.1.71:79 +#: 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:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "NÃ¥r noe skjer" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "NÃ¥r en sak er løst" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "NÃ¥r en sak fÃ¥r ny eier" -#: etc/initialdata:178 +#: 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:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "NÃ¥r en saks status endres" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "NÃ¥r brukerdefinerte forhold intreffer" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "NÃ¥r kommentarer kommer inn" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "NÃ¥r korrespondanse kommer inn" -#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "Arbeid" -#: html/Admin/Elements/ModifyUser:70 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "ArbeidsTelefon" -#: html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Arbeidet" -#: lib/RT/Ticket_Overlay.pm:3123 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "Du eier allerede denne saken" -#: html/autohandler:108 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "Du er ikke en autorisert bruker" -#: lib/RT/Ticket_Overlay.pm:2998 +#: NOT FOUND IN SOURCE +msgid "You can access it with the Download button on the right." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2941 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" @@ -4603,24 +5901,24 @@ msgstr "Du kan bare omfordele saker som du eier eller som ikke har en eier" 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 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "Du fant %1 saker i %2 køen" -#: html/NoAuth/Logout.html:31 +#: html/NoAuth/Logout.html:30 msgid "You have been logged out of RT." msgstr "" -#: html/SelfService/Display.html:78 +#: html/SelfService/Display.html:79 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:1895 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "Du kan ikke opprette forespørsler i den køen." -#: html/NoAuth/Logout.html:36 +#: html/NoAuth/Logout.html:34 msgid "You're welcome to login again" msgstr "Velkommen tilbake" @@ -4632,11 +5930,11 @@ msgstr "Dine %1 forespørsler" 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:435 etc/upgrade/2.1.71:146 +#: 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:469 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "Din forespørsel ble godkjent." @@ -4644,15 +5942,15 @@ msgstr "Din forespørsel ble godkjent." msgid "Your request was rejected" msgstr "Din forespørsel ble avvist" -#: etc/initialdata:390 etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "Din forespørsel ble avvist" -#: html/autohandler:127 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "Ditt brukernavn/passord er ugyldig" -#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "Zip" @@ -4660,36 +5958,44 @@ msgstr "Zip" msgid "[no subject]" msgstr "[ikke noe emne]" -#: html/User/Elements/DelegateRights:59 +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + +#: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "som tildelt til %1" -#: html/SelfService/Closed.html:28 +#: html/SelfService/Closed.html:27 msgid "closed" msgstr "lukket" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 msgid "contains" msgstr "inneholder" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content" msgstr "innhold" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "innholdstype" -#: lib/RT/Ticket_Overlay.pm:2282 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "korrespondanse (sansynligvis) ikke sendt" -#: lib/RT/Ticket_Overlay.pm:2292 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "korrespondanse sendt" -#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "dager" @@ -4697,23 +6003,27 @@ msgstr "dager" msgid "dead" msgstr "død" -#: html/Search/Listing.html:75 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "slett" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "slettet" -#: html/Search/Elements/PickRestriction:68 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "treffer ikke" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 msgid "doesn't contain" msgstr "inneholder ikke" -#: html/Elements/SelectEqualityOperator:38 +#: NOT FOUND IN SOURCE +msgid "email address" +msgstr "" + +#: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "lik som" @@ -4721,15 +6031,15 @@ msgstr "lik som" msgid "false" msgstr "usant" -#: html/Elements/SelectAttachmentField:28 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "filnavn" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "greater than" msgstr "større enn" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "gruppe '%1'" @@ -4742,19 +6052,23 @@ msgstr "timer" msgid "id" msgstr "id" -#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + +#: 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 "er" -#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +#: 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 "er ikke" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "less than" msgstr "mindre enn" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "treffer" @@ -4762,11 +6076,11 @@ msgstr "treffer" msgid "min" msgstr "min" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "minutter" -#: bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "endringer\\n\\n" @@ -4774,19 +6088,23 @@ msgstr "endringer\\n\\n" msgid "months" msgstr "mÃ¥neder" -#: lib/RT/Queue_Overlay.pm:58 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "ny" -#: html/Admin/Elements/EditScrips:43 +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + +#: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "ingen verdi" -#: html/Ticket/Elements/EditWatchers:28 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "ingen" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "not equal to" msgstr "ikke lik som" @@ -4794,25 +6112,25 @@ msgstr "ikke lik som" msgid "notlike" msgstr "ikkelik" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:59 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "Ã¥pen" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "personlig gruppe '%1' for bruker '%2'" -#: lib/RT/Group_Overlay.pm:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "kø %1 %2" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "avvist" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "løst" @@ -4820,34 +6138,46 @@ msgstr "løst" msgid "sec" msgstr "sek" -#: lib/RT/Queue_Overlay.pm:60 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "pauset" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "system %1" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "systemgruppe '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:42 +#: html/Elements/Error:42 html/SelfService/Error.html:41 msgid "the calling component did not specify why" msgstr "den kallende komponenten oppga ikke hvorfor" -#: lib/RT/Group_Overlay.pm:210 +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "sak #%1 %2" +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "" + #: NOT FOUND IN SOURCE msgid "true" msgstr "sant" -#: lib/RT/Group_Overlay.pm:216 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "ubeskrevet gruppe %1" @@ -4856,7 +6186,7 @@ msgstr "ubeskrevet gruppe %1" msgid "undescripbed group %1" msgstr "ubeskrevet gruppe %1" -#: lib/RT/Group_Overlay.pm:191 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "bruker %1" @@ -4874,6 +6204,6 @@ msgid "years" msgstr "Ã¥r" #: NOT FOUND IN SOURCE -msgid "ニックネーム" -msgstr "????" +msgid "ニックãƒãƒ¼ãƒ " +msgstr "" diff --git a/rt/lib/RT/I18N/pt_br.po b/rt/lib/RT/I18N/pt_br.po index 410d2b250..a4892b05e 100644 --- a/rt/lib/RT/I18N/pt_br.po +++ b/rt/lib/RT/I18N/pt_br.po @@ -1,4 +1,4 @@ -# $Id: pt_br.po,v 1.1.1.2 2004-11-11 12:12:05 ivan Exp $ +# $Id: pt_br.po,v 1.1.1.3 2004-12-03 20:39:09 ivan Exp $ msgid "" msgstr "" "Project-Id-Version: RT 2.1.x\n" @@ -10,27 +10,39 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +#: NOT FOUND IN SOURCE msgid "#" msgstr "#" -#: html/Admin/Queues/Scrip.html:55 -#. ($QueueObj->id) +#: NOT FOUND IN SOURCE msgid "#%1" msgstr "" -#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 -#. ($Ticket->Id, $Ticket->Subject) +#: 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" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: 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:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -40,7 +52,7 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%1 %2 %3 %4:%5:%6 %7" -#: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#: 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) @@ -52,13 +64,13 @@ msgstr "%1 %2 adicionado" msgid "%1 %2 ago" msgstr "%1 %2 atrás" -#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#: 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 alterado para %3" -#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#: 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) @@ -69,53 +81,108 @@ msgstr "%1 %2 removido" msgid "%1 %2 of group %3" msgstr "%1 %2 do grupo %3" -#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#: 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 com modelo %3" +#: NOT FOUND IN SOURCE +msgid "%1 %2 הוסף" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 מקבוצה %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 נמחק" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 שונה ל %3" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 este tíquete\\n" -#: html/Search/Listing.html:57 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 פנייה זו\\n" +msgstr "" + +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "%1 - %2 apresentados" -#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#: 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 - Um argumento para passar para %2" -#: bin/rt-crontool:185 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Mostra atualizações de estado no STDOUT" -#: bin/rt-crontool:179 +#: bin/rt-crontool:175 #. ("--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:173 +#: bin/rt-crontool:169 #. ("--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:166 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Especifica o módulo de busca que você quer usar" -#: lib/RT/ScripAction_Overlay.pm:122 +#: NOT FOUND IN SOURCE +msgid "%1 - ×רגומנט להעביר ×ל %2" +msgstr "" + + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "ScripAction %1 carregado" -#: lib/RT/Ticket_Overlay.pm:3471 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 usado como um valor de %2" @@ -132,19 +199,19 @@ msgstr "Aliases %1 requerem um TicketId no qual trabalhar " 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:117 lib/RT/Link_Overlay.pm:124 +#: 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 parece ser um objeto local, mas não pode ser encontrado no banco de dados" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 +#: 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 por %2" -#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#: 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) @@ -152,7 +219,12 @@ msgstr "%1 por %2" msgid "%1 changed from %2 to %3" msgstr "%1 alterado de %2 para %3" -#: lib/RT/Interface/Web.pm:857 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "%1 não pôde ser alterado para %2" @@ -160,37 +232,48 @@ msgstr "%1 não pôde ser alterado para %2" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 não pôde iniciar uma transação (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 não pôde alterar estado para resolvido. O banco de dados do RT pode estar inconsistente." -#: html/Elements/MyTickets:25 +#: NOT FOUND IN SOURCE +msgid "%1 created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 deleted" +msgstr "" + +#: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "%1 tíquetes de mais alta prioridade que eu possuo..." -#: html/Elements/MyRequests:25 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "%1 tíquetes de mais alta prioridade que eu requeri..." -#: bin/rt-crontool:161 +#: bin/rt-crontool:157 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "%1 é uma ferramenta para modificar tíquetes a partir de uma ferramenta de agenda externa, como o cron." -#: lib/RT/Queue_Overlay.pm:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 não é mais um %2 para esta fila." -#: lib/RT/Ticket_Overlay.pm:1570 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 não é mais um %2 para este tíquete." -#: lib/RT/Ticket_Overlay.pm:3527 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 não é mais um valor para o campo personalizado %2" @@ -199,16 +282,41 @@ msgstr "%1 não é mais um valor para o campo personalizado %2" msgid "%1 isn't a valid Queue id." msgstr "%1 não é um identificador de fila válido." -#: html/Ticket/Elements/ShowBasics:36 -#. ($TimeWorked) +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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" +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 não mostrado" -#: html/User/Elements/DelegateRights:76 +#: NOT FOUND IN SOURCE +msgid "%1 objects" +msgstr "" + +#: html/User/Elements/DelegateRights:75 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 direitos" @@ -229,7 +337,7 @@ msgstr "Tipo %1 desconhecido para %2" msgid "%1 was created without a CurrentUser\\n" msgstr "%1 foi criado sem um CurrentUser\\n" -#: lib/RT/Action/ResolveMembers.pm:42 +#: lib/RT/Action/ResolveMembers.pm:41 #. (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." @@ -238,22 +346,72 @@ msgstr "%1 resolverá todos os membros de um grupo de tíquetes resolvidos." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 colocará como pendente uma BASE [local] se for dependente [ou membro] de uma requisição ligada." -#: lib/RT/Transaction_Overlay.pm:435 +#: NOT FOUND IN SOURCE +msgid "%1 הוסף כערך עבור %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 לפני %2 ימי×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 על ידי %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 פעולת-סקריפ נטענה" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 שונה מ %2 ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2 objects" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1: nenhum arquivo anexo especificado" -#: html/Ticket/Elements/ShowTransaction:102 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransaction:99 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1140 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' é um valor inválido para o estado" @@ -270,7 +428,7 @@ msgstr "(Assinale para remover o membro do grupo)" msgid "(Check box to delete scrip)" msgstr "(Assinale para remover o scrip)" -#: html/Admin/Elements/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +#: 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 "(Assinale para remover)" @@ -278,11 +436,23 @@ msgstr "(Assinale para remover)" msgid "(Check boxes to delete)" msgstr "(Assinale para remover)" +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Entre com identificadores de tíquetes ou URLs, separados por espaços)" -#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + +#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) msgid "(If left blank, will default to %1" @@ -292,23 +462,27 @@ msgstr "(Se deixado em branco, será entendido como %1" msgid "(No Value)" msgstr "(Sem Valor)" -#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" msgstr "(Nenhum campo personalizado)" -#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" msgstr "(Sem membros)" -#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 msgid "(No scrips)" msgstr "(Sem scrips)" -#: html/Admin/Elements/EditTemplates:31 +#: html/Admin/Elements/EditTemplates:30 msgid "(No templates)" msgstr "(Nenhum esquema)" -#: html/Ticket/Update.html:85 +#: NOT FOUND IN SOURCE +msgid "(None)" +msgstr "" + +#: 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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços de email separados por vírgula. <b>Não</b> altera quem vai receber atualizações futuras.)" @@ -316,11 +490,11 @@ msgstr "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de ender 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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" -#: html/Ticket/Create.html:79 +#: 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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" -#: html/Ticket/Update.html:81 +#: 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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" @@ -328,35 +502,55 @@ msgstr "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de ender 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 "(Envia uma cópia desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" -#: html/Ticket/Create.html:69 +#: 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 "(Envia uma cópia desta atualização para uma lista de endereços eletrônicos separados por vírgulas. Estas pessoas <b>receberão</b> as atualizações futuras.)" -#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(vazio)" -#: html/Admin/Users/index.html:39 +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + +#: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "(nenhum nome listado)" -#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(Sem assunto)" -#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +#: 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 "(sem valor)" -#: html/Ticket/Elements/EditLinks:116 +#: NOT FOUND IN SOURCE +msgid "(no values)" +msgstr "" + +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(somente um tíquete)" -#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(aguardando aprovação)" -#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(aguardando outros tíquetes)" @@ -364,14 +558,18 @@ msgstr "(aguardando outros tíquetes)" msgid "(requestor's group)" msgstr "(grupo do requisitante)" -#: html/Admin/Users/Modify.html:50 +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "(requerido)" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(sem título)" +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "25 tíquetes mais prioritários que possuo..." @@ -380,15 +578,23 @@ msgstr "25 tíquetes mais prioritários que possuo..." msgid "25 highest priority tickets I requested..." msgstr "25 tíquetes mais prioritários que requisitei..." -#: html/Ticket/Elements/ShowBasics:32 +#: html/Ticket/Elements/ShowBasics:31 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:27 +#: html/Elements/SelectTicketTypes:26 msgid "<% $_ %>" msgstr "<% $_ %>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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=\"Novo tíquete em\"> %1" @@ -397,7 +603,7 @@ msgstr "<input type=\"submit\" value=\"Novo tíquete em\"> %1" msgid "??????" msgstr "" -#: etc/initialdata:203 +#: etc/initialdata:218 msgid "A blank template" msgstr "Um modelo vazio" @@ -417,52 +623,60 @@ msgstr "ACE não pôde ser removida" msgid "ACE could not be found" msgstr "ACE não pode ser encontrada" -#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "ACE não encontrado" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "ACEs só podem ser criados e removidos." -#: bin/rt-commit-handler:755 +#: 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:32 +#: html/User/Elements/Tabs:31 msgid "About me" msgstr "Sobre mim" -#: html/Admin/Users/Modify.html:80 +#: html/Admin/Users/Modify.html:79 msgid "Access control" msgstr "Controle de acesso" -#: html/Admin/Elements/EditScrip:57 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "Ação" -#: lib/RT/Scrip_Overlay.pm:147 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Ação %1 não encontrada" -#: bin/rt-crontool:123 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "Ação confirmada." -#: bin/rt-crontool:119 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "Ação preparada..." -#: html/Search/Bulk.html:92 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "Adicionar AdminCc" -#: html/Search/Bulk.html:90 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "Adicionar Cc" -#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "Adicionar Mais Arquivos" @@ -470,10 +684,14 @@ msgstr "Adicionar Mais Arquivos" msgid "Add Next State" msgstr "Adicionar Próximo Estado" -#: html/Search/Bulk.html:88 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "Adicionar Requisitante" +#: html/Admin/Elements/AddCustomFieldValue:24 +msgid "Add Value" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Add a Scrip to this queue" msgstr "Adicionar um Scrip nesta fila" @@ -494,19 +712,23 @@ msgstr "Adicionar um novo scrip global" msgid "Add a scrip to this queue" msgstr "Adicionar um scrip a esta fila" -#: html/Admin/Global/Scrip.html:55 +#: html/Admin/Global/Scrip.html:54 msgid "Add a scrip which will apply to all queues" msgstr "Adicionar um scrip que se aplicará a todas as filas" -#: html/Search/Bulk.html:118 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "Adicionar comentários ou respostas aos tíquetes selecionados" -#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 msgid "Add members" msgstr "Adicionar membros" -#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 msgid "Add new watchers" msgstr "Adicionar novos observadores" @@ -514,37 +736,37 @@ msgstr "Adicionar novos observadores" msgid "AddNextState" msgstr "AddNextState" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Principal adicionado como um %1 para esta fila" -#: lib/RT/Ticket_Overlay.pm:1454 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Principal adicionado como um %1 para este tíquete" -#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "Endereço 1" -#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "Endereço 2" -#: html/Ticket/Create.html:74 +#: html/Ticket/Create.html:73 msgid "Admin Cc" msgstr "Admin Cc" -#: etc/initialdata:274 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "Comentário do Administrador" -#: etc/initialdata:256 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "Correspondência do Administrador" -#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 msgid "Admin queues" msgstr "Administração de filas" @@ -552,7 +774,7 @@ msgstr "Administração de filas" msgid "Admin users" msgstr "Administração de usuários" -#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 msgid "Admin/Global configuration" msgstr "Administração da configuração global" @@ -560,7 +782,7 @@ msgstr "Administração da configuração global" msgid "Admin/Groups" msgstr "Administração de Grupos" -#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "Administração de uma fila" @@ -568,7 +790,7 @@ msgstr "Administração de uma fila" msgid "AdminAllPersonalGroups" msgstr "AdminAllPersonalGroups" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "AdminCc" @@ -580,7 +802,11 @@ msgstr "AdminComment" msgid "AdminCorrespondence" msgstr "AdminCorrespondence" -#: lib/RT/Queue_Overlay.pm:72 +#: NOT FOUND IN SOURCE +msgid "AdminCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "AdminCustomFields" @@ -592,19 +818,19 @@ msgstr "AdminGroup" msgid "AdminGroupMembership" msgstr "AdminGroupMembership" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "AdminOwnPersonalGroups" msgstr "AdminOwnPersonalGroups" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "AdminQueue" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "AdminUsers" msgstr "AdminUsers" -#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "Cc Administrativo" @@ -612,11 +838,19 @@ msgstr "Cc Administrativo" msgid "Admins" msgstr "Administradores" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Busca avançada" -#: html/Elements/SelectDateRelation:36 +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + +#: html/Elements/SelectDateRelation:35 msgid "After" msgstr "Depois" @@ -632,11 +866,19 @@ msgstr "" msgid "Alias for" msgstr "Alias para" -#: html/Admin/Elements/EditCustomFields:96 +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Todos os Campos Personalizados" -#: html/Admin/Queues/index.html:53 +#: html/Admin/Queues/index.html:52 msgid "All Queues" msgstr "Todas as filas" @@ -644,24 +886,35 @@ msgstr "Todas as filas" msgid "Always sends a message to the requestors independent of message sender" msgstr "Sempre envia uma mensagem para os requisitantes independentemente do remetente" +#: NOT FOUND IN SOURCE +msgid "Applies to" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + #: html/Elements/Tabs:58 msgid "Approval" msgstr "Aprovação" -#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 #. ($Ticket->Id, $Ticket->Subject) #. ($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:54 +#: html/Approvals/index.html:53 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Aprovação #%1: Notas não registradas devido a um erro de sistema" -#: html/Approvals/index.html:52 +#: html/Approvals/index.html:51 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Aprovação #%1: Notas registradas" @@ -670,15 +923,23 @@ msgstr "Aprovação #%1: Notas registradas" msgid "Approval Details" msgstr "Detalhes da Aprovação" +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "Diagrama da aprovação" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "Aprove" -#: etc/initialdata:431 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "Notas do aprovador: %1" @@ -690,38 +951,71 @@ msgstr "Abr." msgid "April" msgstr "Abril" -#: html/Elements/SelectSortOrder:35 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "Ascendente" -#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +#: NOT FOUND IN SOURCE +msgid "Assign and remove custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AssignCustomFields" +msgstr "" + +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "Anexar" -#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "Anexar arquivo" -#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "Arquivo anexado" -#: html/SelfService/Attachment/dhandler:36 +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Arquivo anexo '%1' não pôde ser carregado" -#: lib/RT/Transaction_Overlay.pm:443 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "Arquivo anexo criado" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "Nome do arquivo anexo" -#: html/Ticket/Elements/ShowAttachments:26 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "Arquivos anexos" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "Ago." @@ -730,11 +1024,11 @@ msgstr "Ago." msgid "August" msgstr "Agosto" -#: html/Admin/Elements/ModifyUser:66 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "Sistema de autenticação" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "Autoreply" @@ -746,37 +1040,39 @@ msgstr "Autoreply para Requisitantes" msgid "AutoreplyToRequestors" msgstr "AutoreplyToRequestors" +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Assinatura PGP inválida: %1\\n" -#: html/SelfService/Attachment/dhandler:40 +#: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "Identificador de arquivo anexo inválido. Não pude encontrar o arquivo '%1'\\n" -#: bin/rt-commit-handler:827 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "Dados inválidos em %1" -#: html/SelfService/Attachment/dhandler:43 -#. ($trans, $AttachmentObj->TransactionId()) +#: 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/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +#: 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 "Básicos" -#: html/Ticket/Update.html:83 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "Não se esqueça de salvar suas alterações" -#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "Antes" @@ -784,83 +1080,131 @@ msgstr "Antes" msgid "Begin Approval" msgstr "Incício da Aprovação" -#: etc/initialdata:202 +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "" + +#: etc/initialdata:217 msgid "Blank" msgstr "Vazio" -#: html/Search/Listing.html:79 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "URL para guardar esta busca em seus marcadores" -#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "Cabeçalhos resumidos" -#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 msgid "Bulk ticket update" msgstr "Atualização de tíquetes em lote" -#: lib/RT/User_Overlay.pm:1331 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "Não posso modificar os usuários do sistema" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "Este principal pode ver esta fila" -#: lib/RT/CustomField_Overlay.pm:144 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "Não posso adicionar um valor de campo personalizado sem um nome" -#: lib/RT/Link_Overlay.pm:132 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "Não posso ligar um tíquete a ele mesmo" -#: lib/RT/Ticket_Overlay.pm:2787 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Não posso unir a um tíquete já unido. Você nunca deve obter este erro" -#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "Não especifique origem e destino simultaneamente" -#: html/autohandler:112 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "Não posso criar o usuário: %1" -#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +#: 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:31 +#: html/SelfService/Prefs.html:30 msgid "Change password" msgstr "Mudar a senha" -#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +#: NOT FOUND IN SOURCE +msgid "Check All" +msgstr "" + +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "Assinale para remover" -#: html/Admin/Elements/SelectRights:31 +#: html/Admin/Elements/SelectRights:30 msgid "Check box to revoke right" msgstr "Assinalar para revogar o direito de acesso" -#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +#: 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 "Filhos" -#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "Cidade" +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Clear All" +msgstr "" + #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "Fechado" -#: html/SelfService/Elements/Tabs:60 +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Requisições fechadas" +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Code" msgstr "Código" @@ -869,11 +1213,11 @@ msgstr "Código" msgid "Command not understood!\\n" msgstr "Comando não entendido!\\n" -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "Comentário" -#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "Endereço de Comentário" @@ -881,40 +1225,39 @@ msgstr "Endereço de Comentário" msgid "Comment not recorded" msgstr "Comentário não registrado" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "Comente sobre os tíquetes" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "CommentOnTicket" -#: html/Admin/Elements/ModifyUser:35 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "Comentários" -#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "Comentários (não enviados aos requisitantes)" -#: html/Search/Bulk.html:122 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "Comentários (não enviados aos requisitantes)" -#: html/Elements/ViewUser:27 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "Comentários sobre %1" -#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "Comentários sobre este usuário" -#: lib/RT/Transaction_Overlay.pm:545 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "Comentários adicionados" -#: lib/RT/Action/Generic.pm:140 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "" @@ -926,11 +1269,11 @@ msgstr "Compilar restrições" msgid "Condition" msgstr "Condição" -#: bin/rt-crontool:109 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "Condição satisfeita..." -#: lib/RT/Scrip_Overlay.pm:160 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "Condição não encontrada" @@ -938,11 +1281,11 @@ msgstr "Condição não encontrada" msgid "Configuration" msgstr "Configuração" -#: html/SelfService/Prefs.html:33 +#: html/SelfService/Prefs.html:32 msgid "Confirm" msgstr "Confirmar" -#: html/Admin/Elements/ModifyUser:60 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "Informação de contato" @@ -950,23 +1293,31 @@ msgstr "Informação de contato" msgid "Contacted date '%1' could not be parsed" msgstr "Data de contato '%1' não pôde ser entendida" -#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "Conteúdo" +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "Não pude criar o grupo" -#: etc/initialdata:266 +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "Correspondência" -#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "Endereço de correspondência" -#: lib/RT/Transaction_Overlay.pm:541 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "Correspondência adicionada" @@ -974,7 +1325,7 @@ msgstr "Correspondência adicionada" msgid "Correspondence not recorded" msgstr "Correspondência não registrada" -#: lib/RT/Ticket_Overlay.pm:3458 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "Não pude adicionar novo valor de campo personalizado para o tíquete. " @@ -982,29 +1333,29 @@ msgstr "Não pude adicionar novo valor de campo personalizado para o tíquete. " msgid "Could not add new custom field value for ticket. %1 " msgstr "Não pude adicionar novo valor de campo personalizado para o tíquete. %1" -#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "Não pude alterar o proprietário. " -#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "Não pude criar CampoPersonalizado" -#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "Não pude criar o grupo" -#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "Não pude criar o modelo: %1" -#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "Não pude criar o tíquete. Fila não selecionada" -#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +#: 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 "Não pude criar o usuário" @@ -1020,11 +1371,11 @@ msgstr "Não pude encontrar um tíquete com identificador %1" msgid "Could not find group %1." msgstr "Não pude encontrar o grupo %1." -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "Não pude encontrar ou criar o usuário" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "Não pude encontrar este principal" @@ -1032,35 +1383,42 @@ msgstr "Não pude encontrar este principal" msgid "Could not find user %1." msgstr "Não pude encontrar o usuário %1." -#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +#: NOT FOUND IN SOURCE +msgid "Could not load CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "Não pude carregar o grupo" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Não pude fazer este principal um %1 para esta fila" -#: lib/RT/Ticket_Overlay.pm:1443 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Não pude fazer este principal um %1 para este tíquete" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Não pude remover este principal como um %1 para esta fila" -#: lib/RT/Ticket_Overlay.pm:1559 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "Não pude remover este principal como um %1 para este tíquete" -#: lib/RT/Group_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "Não pude adicionar o membro no grupo" -#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Não pude criar uma transação: %1" @@ -1073,15 +1431,15 @@ msgstr "Não sei o que fazer com a resposta do gpg\\n" msgid "Couldn't find group\\n" msgstr "Não encontrei o grupo\\n" -#: lib/RT/Interface/Web.pm:866 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "Não pude encontrar o registro" -#: lib/RT/Group_Overlay.pm:959 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "Não encontrei este principal" -#: lib/RT/CustomField_Overlay.pm:175 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "Não encontrei este valor" @@ -1093,11 +1451,19 @@ msgstr "Não pude encontrar este observador" msgid "Couldn't find user\\n" msgstr "Não pude encontrar o usuário\\n" -#: lib/RT/CurrentUser.pm:112 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Não pude carregar %1 do banco de dados de usuários.\\n" +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "Não pude carregar os KeywordSelects." @@ -1110,21 +1476,25 @@ msgstr "Não pude carregar o arquivo de configuração do RT '%1' %2" msgid "Couldn't load Scrips." msgstr "Não pude carregar os Scrips." -#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "Não pude carregar o grupo %1" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "Não pude carregar a ligação" -#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#: NOT FOUND IN SOURCE +msgid "Couldn't load object %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "Não pude carregar a fila" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "Não pude carregar a fila %1" @@ -1137,38 +1507,41 @@ msgstr "Não pude carregar o scrip" msgid "Couldn't load template" msgstr "Não pude carregar o modelo" -#: html/Admin/Users/Prefs.html:79 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "Não pude carregar este usuário (%1)" -#: html/SelfService/Display.html:166 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Não pude carregar o tíquete '%1'" -#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "País" -#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +#: 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 "Criar" -#: etc/initialdata:128 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "Criar Tíquetes" -#: html/Admin/Elements/EditCustomField:58 +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + +#: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "Criar um CampoPersonalizado" -#: html/Admin/Queues/CustomField.html:48 +#: html/Admin/Queues/CustomField.html:47 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Criar um Campo Personalizado para a fila %1" -#: html/Admin/Global/CustomField.html:48 +#: html/Admin/Global/CustomField.html:47 msgid "Create a CustomField which applies to all queues" msgstr "Criar um Campo Personalizado para todas as filas" @@ -1176,6 +1549,10 @@ msgstr "Criar um Campo Personalizado para todas as filas" msgid "Create a new Custom Field" msgstr "Criar um novo Campo Personalizado" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "Criar um novo Scrip global" @@ -1184,11 +1561,11 @@ msgstr "Criar um novo Scrip global" msgid "Create a new global scrip" msgstr "Criar um novo scrip global" -#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 msgid "Create a new group" msgstr "Criar um novo grupo" -#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 msgid "Create a new personal group" msgstr "Criar um novo grupo pessoal" @@ -1204,11 +1581,11 @@ msgstr "Criar um novo scrip" msgid "Create a new template" msgstr "Criar um novo modelo" -#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 msgid "Create a new ticket" msgstr "Criar um novo tíquete" -#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "Criar um novo usuário" @@ -1220,19 +1597,31 @@ msgstr "Criar uma fila" msgid "Create a queue called" msgstr "Criar uma fila chamada" -#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +#: NOT FOUND IN SOURCE msgid "Create a request" msgstr "Criar uma requisição" -#: html/Admin/Queues/Scrip.html:59 +#: html/Admin/Queues/Scrip.html:58 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Criar um scrip para a fila %1" -#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 msgid "Create a template" msgstr "Criar um modelo" +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Criação falhou: %1 / %2 / %3 " @@ -1241,23 +1630,23 @@ msgstr "Criação falhou: %1 / %2 / %3 " msgid "Create failed: %1/%2/%3" msgstr "Criação falhou: %1/%2/%3" -#: etc/initialdata:130 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "Criar novos tíquetes baseados no esquema deste scrip" -#: html/SelfService/Create.html:81 +#: html/SelfService/Create.html:77 msgid "Create ticket" msgstr "Criar um tíquete" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "Criar tíquetes nesta fila" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "Criar, remover e modificar campos personalizados" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "Criar, remover e modificar filas" @@ -1265,105 +1654,129 @@ msgstr "Criar, remover e modificar filas" 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:59 +#: lib/RT/System.pm:58 msgid "Create, delete and modify the members of personal groups" msgstr "Criar, remover e modificar os membros de grupos pessoais" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "Create, delete and modify users" msgstr "Criar, remover e modificar usuários" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "CreateTicket" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "Criado" -#: html/Admin/Elements/EditCustomField:71 +#: html/Admin/Elements/EditCustomField:87 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "CampoPersonalizado %1 criado" +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Modelo %1 criado" -#: html/Ticket/Elements/EditLinks:28 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "Relações atuais" -#: html/Admin/Elements/EditScrips:30 +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "" + +#: html/Admin/Elements/EditScrips:29 msgid "Current Scrips" msgstr "Scrips correntes" -#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "Membros atuais" -#: html/Admin/Elements/SelectRights:29 +#: html/Admin/Elements/SelectRights:28 msgid "Current rights" msgstr "Direitos de acesso atuais" -#: html/Search/Listing.html:71 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "Critério de busca atual" -#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "Observadores atuais" -#: html/Admin/Global/CustomField.html:55 +#: html/Admin/Global/CustomField.html:54 #. ($CustomField) msgid "Custom Field #%1" msgstr "Campo Personalizado #%1" -#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +#: 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 "Campos Personalizados" -#: html/Admin/Elements/EditScrip:73 +#: NOT FOUND IN SOURCE +msgid "Custom Fields for %1" +msgstr "" + +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "Código de finalização da ação customizada" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "Código de preparação da ação customizada" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "Condição customizada" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "Campo personalizado %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: NOT FOUND IN SOURCE +msgid "Custom field %1 does not apply to this object" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "O campo personalizado %1 tem um valor." -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "O campo personalizado %1 não tem valor." -#: lib/RT/Ticket_Overlay.pm:3360 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Campo personalizado %1 não encontrado" -#: html/Admin/Elements/EditCustomFields:197 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "Campo personalizado removido" -#: lib/RT/Ticket_Overlay.pm:3510 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "Campo personalizado não encontrado" -#: lib/RT/CustomField_Overlay.pm:283 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "O valor de campo %1 não pôde ser encontrado para o campo personalizado %2" @@ -1372,19 +1785,19 @@ msgstr "O valor de campo %1 não pôde ser encontrado para o campo personalizado msgid "Custom field value changed from %1 to %2" msgstr "O valor do campo personalizado foi alterado de %1 para %2" -#: lib/RT/CustomField_Overlay.pm:185 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "O valor do campo personalizado não pôde ser removido" -#: lib/RT/CustomField_Overlay.pm:289 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "O valor de campo personalizado não pôde ser encontrado" -#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "Valor do campo personalizado removido" -#: lib/RT/Transaction_Overlay.pm:550 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "" @@ -1392,7 +1805,7 @@ msgstr "" msgid "Data error" msgstr "Erro de dado" -#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +#: 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 "Datas" @@ -1408,68 +1821,88 @@ msgstr "Dezembro" msgid "Default Autoresponse Template" msgstr "Esquema Padrão de Autoresposta" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Esquema padrão de Autoresposta" -#: etc/initialdata:275 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "Esquema padrão de comentário administrativo" -#: etc/initialdata:257 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "Esquema padrão de correspondência administrativa" -#: etc/initialdata:267 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "Esquema padrão de correspondência" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "Esquema padrão de transação" -#: lib/RT/Transaction_Overlay.pm:645 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "Padrão: %1/%2 mudou de %3 para %4" -#: html/User/Delegation.html:25 html/User/Delegation.html:28 +#: html/User/Delegation.html:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "Delegar direitos de acesso" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "Delegate specific rights which have been granted to you." msgstr "Delegar direitos específicos que foram outorgados a você." -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "DelegateRights" msgstr "DelegateRights" -#: html/User/Elements/Tabs:38 +#: html/User/Elements/Tabs:37 msgid "Delegation" msgstr "Delegação" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "Remover" -#: lib/RT/Queue_Overlay.pm:90 +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "Remover tíquetes" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "DeleteTicket" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "Ao remover este objeto você pode quebrar a integridade referencial" -#: lib/RT/Queue_Overlay.pm:292 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "Ao remover este objeto você quebra a integridade referencial" -#: lib/RT/User_Overlay.pm:430 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "Ao remover este objeto você viola a integridade referencial" @@ -1481,11 +1914,11 @@ msgstr "Remover este objeto violaria a integridade referencial" 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:46 +#: html/Approvals/Elements/Approve:44 msgid "Deny" msgstr "Negue" -#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +#: 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 "Dependem deste tíquete" @@ -1493,7 +1926,27 @@ msgstr "Dependem deste tíquete" msgid "Dependencies: \\n" msgstr "Dependências: \\n" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "Depende de" @@ -1501,64 +1954,83 @@ msgstr "Depende de" msgid "DependsOn" msgstr "DependsOn" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "Descendente" -#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 msgid "Describe the issue below" msgstr "Descreva o problema abaixo" -#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +#: 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 "Descrição" -#: html/SelfService/Elements/MyRequests:44 +#: NOT FOUND IN SOURCE msgid "Details" msgstr "Detalhes" -#: html/Ticket/Elements/Tabs:85 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "Apresentação" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "Mostrar Lista de Controle de Acesso" -#: lib/RT/Queue_Overlay.pm:75 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "Mostras os esquemas de Scrip para esta fila" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "Mostrar os Scrips para esta fila" -#: html/Ticket/Elements/ShowHistory:35 +#: html/Ticket/Elements/ShowHistory:34 msgid "Display mode" msgstr "Modo de apresentação" -#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 -#. ($Ticket->id) +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Apresentar o tíquete #%1" -#: lib/RT/System.pm:54 +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + +#: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "Fazer qualquer coisa" -#: html/Elements/Refresh:30 +#: html/Elements/Refresh:29 msgid "Don't refresh this page." msgstr "Não recarregar esta página." -#: html/Search/Elements/PickRestriction:114 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "Não mostrar resultados da busca" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "Baixar" -#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download as a tab-delimited file" +msgstr "" + +#: 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 "Vencido" @@ -1566,8 +2038,7 @@ msgstr "Vencido" msgid "Due date '%1' could not be parsed" msgstr "A data de vencimento '%1' não pôde ser entendida" -#: bin/rt-commit-handler:754 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "ERRO: Não pude carregar o tíquete '%1': %2.\\n" @@ -1584,10 +2055,22 @@ msgstr "Editar Condições" msgid "Edit Custom Fields for %1" msgstr "Editar Campos Personalizados para %1" -#: html/Ticket/ModifyLinks.html:36 -msgid "Edit Relationships" +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "Editar Relacionamentos" +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit Relationships" +msgstr "" + #: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" @@ -1597,11 +2080,15 @@ msgstr "Editar Esquemas para a fila %1" msgid "Edit keywords" msgstr "Editar palavras chave" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "Editar scrips" -#: html/Admin/Global/index.html:46 +#: html/Admin/Global/index.html:45 msgid "Edit system templates" msgstr "Editar os modelos do sistema" @@ -1609,28 +2096,34 @@ msgstr "Editar os modelos do sistema" msgid "Edit templates for %1" msgstr "Editar os modelos para %1" -#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "Editando a configuração para a fila %1" -#: html/Admin/Elements/ModifyUser:25 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "Editando a configuração para o usuário %1" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/Elements/EditCustomField:90 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Editando o campo %1" -#: html/Admin/Groups/Members.html:32 +#: html/Admin/Groups/Members.html:31 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Editando os membros do grupo %1" -#: html/User/Groups/Members.html:129 +#: html/User/Groups/Members.html:128 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Editando os membros do grupo pessoal %1" @@ -1639,64 +2132,96 @@ msgstr "Editando os membros do grupo pessoal %1" msgid "Editing template %1" msgstr "Editando o modelo %1" -#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "Você deve especificar a origem ou o destinatário" -#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "Email" -#: lib/RT/User_Overlay.pm:188 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "O endereço de email já está em uso" -#: html/Admin/Elements/ModifyUser:42 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "Correio Eletrônico" -#: html/Admin/Elements/ModifyUser:54 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "Codificação de Email" -#: html/Admin/Elements/EditCustomField:36 +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + +#: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Habilitado (Deselecionando este ítem desabilita este campo personalizado)" -#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 msgid "Enabled (Unchecking this box disables this group)" msgstr "Habilitado (Deselecionando este ítem desabilita este grupo)" -#: html/Admin/Queues/Modify.html:84 +#: html/Admin/Queues/Modify.html:83 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Habilitado (desassinalando desabilita esta fila)" -#: html/Admin/Elements/EditCustomFields:99 +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Campos Personalizados Habilitados" -#: html/Admin/Queues/index.html:56 +#: html/Admin/Queues/index.html:55 msgid "Enabled Queues" msgstr "Filas Habilitadas" -#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#: 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 "Estado %1 habilitado" -#: lib/RT/CustomField_Overlay.pm:361 +#: NOT FOUND IN SOURCE +msgid "Enabled status: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "Entre com múltiplos valores" -#: lib/RT/CustomField_Overlay.pm:358 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "Entre com um valor" -#: html/Ticket/Elements/EditLinks:112 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Entre com identificadores de tíquete ou URIs que levam ao tíquete. Separe entradas múltiplas com espaços." -#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +#: NOT FOUND IN SOURCE +msgid "Enter up to %1 values" +msgstr "" + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "Erro" @@ -1704,51 +2229,79 @@ msgstr "Erro" msgid "Error adding watcher" msgstr "Erro ao adicionar um observador" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "Erro nos parâmetros para Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "Erro nos parâmetros para Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1356 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Erro nos parâmetros para Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1532 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "Erro nos parâmetros para Ticket->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "Todos" -#: bin/rt-crontool:194 +#: bin/rt-crontool:190 msgid "Example:" msgstr "Exemplo:" -#: html/Admin/Elements/ModifyUser:64 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "ExternalAuthId" -#: html/Admin/Elements/ModifyUser:58 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "ExternalContactInfoId" -#: html/Admin/Users/Modify.html:73 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "Informação adicional" -#: lib/RT/User_Overlay.pm:302 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Não pude encontrar o pseudogrupo de usuários 'Privileged'." -#: lib/RT/User_Overlay.pm:309 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Não pude encontrar o pseudogrupo de usuários 'Unprivileged'" -#: bin/rt-crontool:138 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Falhou ao carregar o módulo %1. (%2)" @@ -1761,31 +2314,51 @@ msgstr "Fev." msgid "February" msgstr "Fevereiro" +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in multiple text areas" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in one text area" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in up to %1 text areas" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "Fin" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "Prioridade Final" -#: lib/RT/Ticket_Overlay.pm:1162 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "FinalPriority" -#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "Encontrar o grupo cujo" -#: html/Elements/Quicksearch:25 +#: NOT FOUND IN SOURCE +msgid "Find groups whose" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "Encontrar tíquetes novos/abertos" -#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "Encontrar pessoas que" -#: html/Search/Listing.html:108 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "Encontrar tíquetes" @@ -1793,44 +2366,48 @@ msgstr "Encontrar tíquetes" msgid "Finish Approval" msgstr "Terminar Aprovação" -#: html/Ticket/Elements/Tabs:58 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "Primeiro" -#: html/Search/Listing.html:41 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "Primeira página" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "Foo Bar Baz" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "Force alteração" -#: html/Search/Listing.html:106 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "Encontrado %quant(%1,tíquete)" -#: lib/RT/Interface/Web.pm:868 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "Objeto Encontrado" -#: html/Admin/Elements/ModifyUser:44 +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FreeformContactInfo" -#: lib/RT/CustomField_Overlay.pm:38 +#: lib/RT/CustomField_Overlay.pm:37 msgid "FreeformMultiple" msgstr "FreeformMultiple" -#: lib/RT/CustomField_Overlay.pm:37 +#: lib/RT/CustomField_Overlay.pm:36 msgid "FreeformSingle" msgstr "FreeformSingle" @@ -1838,23 +2415,31 @@ msgstr "FreeformSingle" msgid "Fri." msgstr "Sex." -#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 msgid "Full headers" msgstr "Cabeçalhos completos" +#: html/Tools/Offline.html:65 +msgid "Get template from file" +msgstr "" + #: 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:595 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "Dado a %1" -#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 msgid "Global" msgstr "Global" +#: NOT FOUND IN SOURCE +msgid "Global Custom Fields" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "Seleções de Palavras Chave Globais" @@ -1863,12 +2448,16 @@ msgstr "Seleções de Palavras Chave Globais" msgid "Global Scrips" msgstr "Scrips Globais" -#: html/Admin/Elements/SelectTemplate:38 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Esquema global: %1" -#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "Ir!" @@ -1876,11 +2465,11 @@ msgstr "Ir!" msgid "Good pgp sig from %1\\n" msgstr "Assinatura pgp válida de %1\\n" -#: html/Search/Listing.html:50 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "Ir para a página" -#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "Ir para o tíquete" @@ -1888,7 +2477,7 @@ msgstr "Ir para o tíquete" msgid "Grand" msgstr "" -#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "Grupo" @@ -1896,11 +2485,11 @@ msgstr "Grupo" msgid "Group %1 %2: %3" msgstr "Grupo %1 %2: %3" -#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +#: 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 "Direitos de Acesso do Grupo" -#: lib/RT/Group_Overlay.pm:965 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "O grupo já tem um membro" @@ -1908,7 +2497,7 @@ msgstr "O grupo já tem um membro" msgid "Group could not be created." msgstr "O grupo não pôde ser criado." -#: html/Admin/Groups/Modify.html:77 +#: html/Admin/Groups/Modify.html:76 #. ($create_msg) msgid "Group could not be created: %1" msgstr "O grupo não pôde ser criado: %1" @@ -1917,11 +2506,11 @@ msgstr "O grupo não pôde ser criado: %1" msgid "Group created" msgstr "Grupo criado" -#: lib/RT/Group_Overlay.pm:1133 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "O grupo não contém este membro" -#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +#: 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 "Grupo não encontrado" @@ -1933,36 +2522,56 @@ msgstr "Grupo não encontrado.\\n" msgid "Group not specified.\\n" msgstr "Grupo não especificado.\\n" -#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +#: 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 "Grupos" -#: lib/RT/Group_Overlay.pm:971 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "Grupos não podem ser membros de seus próprios membros" -#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +#: NOT FOUND IN SOURCE +msgid "Groups matching search criteria" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Groups this user belongs to" +msgstr "" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "Olá!" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "Olá, %1" -#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "Histórico" -#: html/Admin/Elements/ModifyUser:68 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the user %1" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "Telefone Residencial" -#: html/Elements/Tabs:46 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "Homepage" -#: lib/RT/Base.pm:74 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "Eu tenho %quant(%1,concrete mixer)." @@ -1971,55 +2580,75 @@ msgstr "Eu tenho %quant(%1,concrete mixer)." msgid "I have [quant,_1,concrete mixer]." msgstr "Tenho [quant,_1,concrete mixer]." -#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 msgid "Id" msgstr "Identificador" -#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "Identidade" -#: etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Se uma aprovação é rejeitada, rejeite a original e remova as aprovações pendentes" -#: bin/rt-crontool:190 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "Se esta ferramenta fosse setgid, um usuário local mal-intencionado poderia usá-la para obter acesso administrativo ao RT." -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: 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 "Se você alterou qualquer coisa acima, não se esqueça de" -#: lib/RT/Interface/Web.pm:860 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "Valor ilegal para %1" -#: lib/RT/Interface/Web.pm:863 +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "" + +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "Campo imutável" -#: html/Admin/Elements/EditCustomFields:74 +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Incluir campoas personalizados desabilitados na listagem." -#: html/Admin/Queues/index.html:43 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "Incluir filas desabilitadas na listagem." -#: html/Admin/Users/index.html:47 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "Incluir usuários desabilitados na busca." -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "Prioridade Inicial" -#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "InitialPriority" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "Erro de entrada" @@ -2027,11 +2656,11 @@ msgstr "Erro de entrada" msgid "Interest noted" msgstr "Interesse notado" -#: lib/RT/Ticket_Overlay.pm:3729 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "Erro Interno" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Erro Interno: %1" @@ -2040,7 +2669,7 @@ msgstr "Erro Interno: %1" msgid "Invalid Group Type" msgstr "Tipo Inválido de Grupo" -#: lib/RT/Principal_Overlay.pm:128 +#: lib/RT/Principal_Overlay.pm:127 msgid "Invalid Right" msgstr "Direito Inválido" @@ -2048,44 +2677,44 @@ msgstr "Direito Inválido" msgid "Invalid Type" msgstr "Tipo Inválido" -#: lib/RT/Interface/Web.pm:865 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "Dado inválido" -#: lib/RT/Ticket_Overlay.pm:438 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Proprietário inválido. Usando 'nobody'." -#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "Fila inválida" -#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +#: 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 "Direito de acesso inválido" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "Valor inválido para %1" -#: lib/RT/Ticket_Overlay.pm:3367 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "Valor inválido para o campo personalizado" -#: lib/RT/Ticket_Overlay.pm:345 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "Valor inválido para o estado" -#: bin/rt-crontool:191 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "É extremamente importante que usuários não privilegiados não possam executar esta ferramenta." -#: bin/rt-crontool:192 +#: 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 "Sugere-se que você crie um usuário UNIX não privilegiado com o grupo e acesso RT corretos para executar esta ferramenta." -#: bin/rt-crontool:163 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "Requer vários argumentos:" @@ -2113,7 +2742,7 @@ msgstr "Jul." msgid "July" msgstr "Julho" -#: html/Ticket/Elements/Tabs:99 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "Jumbo" @@ -2129,27 +2758,35 @@ msgstr "Junho" msgid "Keyword" msgstr "Palavra chave" -#: html/Admin/Elements/ModifyUser:52 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "Líng" -#: html/Ticket/Elements/Tabs:73 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "Último" -#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "Último Contato" -#: html/Elements/SelectDateType:29 +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + +#: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "Contactado em" -#: html/Search/Elements/TicketHeader:41 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "Notificado em" -#: html/Elements/SelectDateType:30 +#: html/Elements/SelectDateType:29 msgid "Last Updated" msgstr "Atualizado em" @@ -2157,15 +2794,19 @@ msgstr "Atualizado em" msgid "LastUpdated" msgstr "LastUpdated" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "Resta" -#: html/Admin/Users/Modify.html:83 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" msgstr "Deixar este usuário acessar RT" -#: html/Admin/Users/Modify.html:87 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" msgstr "Deixar este usuário receber direitos de acesso adicionais" @@ -2177,29 +2818,29 @@ msgstr "Limitando proprietário a %1 %2" msgid "Limiting queue to %1 %2" msgstr "Limitando fila a %1 %2" -#: lib/RT/Ticket_Overlay.pm:2697 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "A ligação já existe" -#: lib/RT/Ticket_Overlay.pm:2709 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "A ligação não pôde ser criada" -#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "Ligação criada (%1)" -#: lib/RT/Ticket_Overlay.pm:2638 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "Ligação removida (%1)" -#: lib/RT/Ticket_Overlay.pm:2644 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "Ligação não encontrada" -#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Ligar o tíquete #%1" @@ -2208,85 +2849,109 @@ msgstr "Ligar o tíquete #%1" msgid "Link ticket %1" msgstr "Ligar o tíquete %1" -#: html/Ticket/Elements/Tabs:97 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "Ligações" -#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "Localização" -#: lib/RT.pm:158 +#: lib/RT.pm:184 #. ($RT::LogDir) 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:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Assinado como %1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +#: 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 "Entrar" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "Sair" -#: html/Search/Bulk.html:86 +#: NOT FOUND IN SOURCE +msgid "Lookup type mismatch" +msgstr "" + +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "Definir como proprietário" -#: html/Search/Bulk.html:102 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "Definir o estado" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "Definir o prazo final" -#: html/Search/Bulk.html:110 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "Definir a data de resolução" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "Definir a data de iniciado" -#: html/Search/Bulk.html:106 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "Definir a data início" -#: html/Search/Bulk.html:108 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "Definir a data de última alteração" -#: html/Search/Bulk.html:99 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "Definir a prioridade" -#: html/Search/Bulk.html:100 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "Definir a fila" -#: html/Search/Bulk.html:98 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "Definir o assunto" -#: html/Admin/index.html:33 +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Manage custom fields and custom field values" +msgstr "" + +#: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "Administrar grupos e seus membros" -#: html/Admin/index.html:39 +#: html/Admin/index.html:38 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:36 +#: html/Admin/index.html:35 msgid "Manage queues and queue-specific properties" msgstr "Administrar filas e suas propriedades específicas" -#: html/Admin/index.html:30 +#: html/Admin/index.html:29 msgid "Manage users and passwords" msgstr "Administrar usuários e senhas" @@ -2306,19 +2971,29 @@ msgstr "Maio" msgid "May." msgstr "Mai." -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "Membro adicionado" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "Membro removido" -#: lib/RT/Group_Overlay.pm:1144 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "Membro não removido" -#: html/Elements/SelectLinkType:26 +#: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "Membro de" @@ -2326,39 +3001,90 @@ msgstr "Membro de" msgid "MemberOf" msgstr "MemberOf" -#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "Membros" -#: lib/RT/Ticket_Overlay.pm:2843 +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships of the user %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "União bem sucedida" -#: lib/RT/Ticket_Overlay.pm:2804 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "União falhou. Não pude definir o EffectiveId" -#: html/Ticket/Elements/EditLinks:115 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "Unir a" -#: html/Ticket/Update.html:102 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "Mensagem" -#: lib/RT/Interface/Web.pm:867 +#: NOT FOUND IN SOURCE +msgid "Message body not shown because it is too large or is not plain text." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "Faltando uma chave primária?: %1" -#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "Móvel" -#: html/Admin/Elements/ModifyUser:72 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "Celular" -#: lib/RT/Queue_Overlay.pm:70 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "Modificar Lista de Controle de Acesso" @@ -2366,15 +3092,31 @@ msgstr "Modificar Lista de Controle de Acesso" msgid "Modify Custom Field %1" msgstr "Modificar o campo personalizado %1" -#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all %1" +msgstr "" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "Modificar Campos Personalizados que se aplicam a todas as filas" -#: lib/RT/Queue_Overlay.pm:73 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "Modificar esquemas de Scrip para esta fila" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "Modificar Scrips para esta fila" @@ -2386,43 +3128,55 @@ msgstr "Modificar ACLs do Sistema" msgid "Modify Template %1" msgstr "Modificar Esquema %1" -#: html/Admin/Queues/CustomField.html:45 +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + +#: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "Modificar um Campo Personalizado para a fila %1" -#: html/Admin/Global/CustomField.html:53 +#: html/Admin/Global/CustomField.html:52 msgid "Modify a CustomField which applies to all queues" msgstr "Modificar um Campo Personalizado que se aplica a todas as filas" -#: html/Admin/Queues/Scrip.html:54 +#: html/Admin/Queues/Scrip.html:53 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Modificar um scrip para a fila %1" -#: html/Admin/Global/Scrip.html:48 +#: html/Admin/Global/Scrip.html:47 msgid "Modify a scrip which applies to all queues" msgstr "Modificar um scrip aplicável a todas as filas" +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify associated objects for %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "Modificar datas para # %1" -#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Modificar as datas para #%1" -#: html/Ticket/ModifyDates.html:35 +#: html/Ticket/ModifyDates.html:34 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Modificar as datas para o tíquete # %1" -#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 msgid "Modify global group rights" msgstr "Modificar direitos de acesso globais de grupo" -#: html/Admin/Global/GroupRights.html:33 +#: html/Admin/Global/GroupRights.html:32 msgid "Modify global group rights." msgstr "Modificar direitos de acesso globais de grupo." @@ -2438,11 +3192,11 @@ msgstr "Modificar direitos globais para usuários" msgid "Modify global scrips" msgstr "Modificar scrips globais" -#: html/Admin/Global/UserRights.html:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 msgid "Modify global user rights" msgstr "Modificar direitos de acesso globais de usuário" -#: html/Admin/Global/UserRights.html:33 +#: html/Admin/Global/UserRights.html:32 msgid "Modify global user rights." msgstr "Modificar direitos de acesso globais de usuário." @@ -2450,12 +3204,16 @@ msgstr "Modificar direitos de acesso globais de usuário." msgid "Modify group metadata or delete group" msgstr "Modificar metadados do grupo ou removê-lo" -#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "" + +#: 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 "Modificar os direitos de acesso do grupo %1" -#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Modificar os direitos de acesso de grupo para a fila %1" @@ -2464,74 +3222,78 @@ msgstr "Modificar os direitos de acesso de grupo para a fila %1" msgid "Modify membership roster for this group" msgstr "Modificar lista de membros deste grupo" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "Modify one's own RT account" msgstr "Modificar sua própria conta RT" -#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Modificar as pessoas relacionadas à fila %1" -#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#: 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 "Modificar as pessoas relacionadas ao tíquete #%1" -#: html/Admin/Queues/Scrips.html:44 +#: html/Admin/Queues/Scrips.html:45 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Modificar os scrips da fila %1" -#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 msgid "Modify scrips which apply to all queues" msgstr "Modificar scrips aplicáveis a todas as filas" -#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#: 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 "Modificar o modelo %1" -#: html/Admin/Global/Templates.html:44 +#: html/Admin/Global/Templates.html:43 msgid "Modify templates which apply to all queues" msgstr "Modificar esquemas que se aplicam a todas as filas" -#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 #. ($Group->Name) msgid "Modify the group %1" msgstr "Modificar o grupo %1" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "Modificar os observadores da fila" -#: html/Admin/Users/Modify.html:236 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Modificar o usuário %1" -#: html/Ticket/ModifyAll.html:37 +#: html/Ticket/ModifyAll.html:36 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Modificar o tíquete # %1" -#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Modificar o tíquete #%1" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "Modificar tíquetes" -#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify user rights for custom field %1" +msgstr "" + +#: 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 "Modificar os direitos de acesso de usuário para o grupo %1" -#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Modificar os direitos de acesso de usuário para a fila %1" @@ -2540,7 +3302,7 @@ msgstr "Modificar os direitos de acesso de usuário para a fila %1" msgid "Modify watchers for queue '%1'" msgstr "Modificar os observadores para a fila '%1'" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "ModifyACL" @@ -2548,23 +3310,23 @@ msgstr "ModifyACL" msgid "ModifyOwnMembership" msgstr "ModifyOwnMembership" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "ModifyQueueWatchers" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "ModifyScrips" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "ModifySelf" msgstr "ModifySelf" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "ModifyTemplate" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "ModifyTicket" @@ -2572,43 +3334,60 @@ msgstr "ModifyTicket" msgid "Mon." msgstr "Seg." -#: html/Ticket/Elements/ShowRequestor:42 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "Mais sobre %1" -#: html/Admin/Elements/EditCustomFields:61 +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "Descer" -#: html/Admin/Elements/EditCustomFields:53 +#: html/Admin/Elements/EditCustomFields:52 msgid "Move up" msgstr "Subir" -#: html/Admin/Elements/SelectSingleOrMultiple:27 +#: html/Admin/Elements/SelectSingleOrMultiple:26 msgid "Multiple" msgstr "Múltiplo" -#: lib/RT/User_Overlay.pm:179 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "O atributo 'Name' deve ser especificado" +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "Minhas Aprovações" -#: html/Approvals/index.html:25 html/Approvals/index.html:26 +#: html/Approvals/index.html:24 html/Approvals/index.html:25 msgid "My approvals" msgstr "Minhas aprovações" -#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "Nome" -#: lib/RT/User_Overlay.pm:186 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "Nome em uso" +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Precisa de aprovação do administrador do sistema" @@ -2617,55 +3396,71 @@ msgstr "Precisa de aprovação do administrador do sistema" msgid "Never" msgstr "Nunca" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "Novo" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "Novos Relacionamentos" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "Nova Senha" -#: etc/initialdata:311 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "Nova Aprovação Pendente" -#: html/Ticket/Elements/EditLinks:111 +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "New Relationships" -msgstr "Novos Relacionamentos" +msgstr "" -#: html/Ticket/Elements/Tabs:36 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "Nova busca" -#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + +#: 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 "Novo campo personalizado" -#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 msgid "New group" msgstr "Novo grupo" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:31 msgid "New password" msgstr "Nova senha" -#: lib/RT/User_Overlay.pm:639 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "Notificação de nova senha enviada" -#: html/Admin/Elements/QueueTabs:70 +#: html/Admin/Elements/QueueTabs:69 msgid "New queue" msgstr "Nova fila" -#: html/SelfService/Elements/Tabs:63 +#: NOT FOUND IN SOURCE msgid "New request" msgstr "Nova requisição" -#: html/Admin/Elements/SelectRights:42 +#: html/Admin/Elements/SelectRights:41 msgid "New rights" msgstr "Novos direitos de acesso" -#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +#: 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 "Novo scrip" @@ -2673,67 +3468,91 @@ msgstr "Novo scrip" msgid "New search" msgstr "Nova busca" -#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +#: 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 "Novo esquema" -#: lib/RT/Ticket_Overlay.pm:2771 +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "O novo tíquete não existe" -#: html/Admin/Elements/UserTabs:52 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "Novo usuário" -#: html/Admin/Elements/CreateUserCalled:26 +#: html/Admin/Elements/CreateUserCalled:25 msgid "New user called" msgstr "Novo usuário chamado" -#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 msgid "New watchers" msgstr "Novos observadores" -#: html/Admin/Users/Prefs.html:42 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "Abrir nova janela" -#: html/Ticket/Elements/Tabs:69 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "Próximo" -#: html/Search/Listing.html:48 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "Próxima página" -#: html/Admin/Elements/ModifyUser:50 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "Apelido" -#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 -msgid "Nickname" -msgstr "Apelido" +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +msgid "Nickname" +msgstr "Apelido" + +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "" -#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "Não há Campo Personalizado" -#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "Não há Grupo definido" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "Não há Fila definida" -#: bin/rt-crontool:56 +#: bin/rt-crontool:52 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:79 html/Admin/Queues/Template.html:76 +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 msgid "No Template" msgstr "Não há Modelo" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "Não há Tíquete especificado. Abortando o tíquete " @@ -2741,11 +3560,11 @@ msgstr "Não há Tíquete especificado. Abortando o tíquete " 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:47 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "Não há ação" -#: lib/RT/Interface/Web.pm:862 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "Não há coluna especificada" @@ -2753,57 +3572,64 @@ msgstr "Não há coluna especificada" msgid "No command found\\n" msgstr "Comando não encontrado\\n" -#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "Não há comentário sobre este usuário" -#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "Não há nenhum arquivo anexado" -#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#: 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 "Não há descrição para %1" -#: lib/RT/Users_Overlay.pm:151 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "Não há grupo especificado" -#: lib/RT/User_Overlay.pm:857 +#: NOT FOUND IN SOURCE +msgid "No groups matching search criteria found." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "Não há senha especificada" -#: lib/RT/Queue_Overlay.pm:259 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "Não há permissão para criar filas" -#: lib/RT/Ticket_Overlay.pm:341 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE 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:151 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "Sem permissão para criar usuários" -#: html/SelfService/Display.html:174 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "Sem permissão para mostrar o tíquete" -#: html/SelfService/Update.html:55 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "sem permissão para ver modificar o tíquete" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "Não há principal especificado" -#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 msgid "No principals selected." msgstr "Não há principal selecionado." -#: html/Admin/Queues/index.html:35 +#: html/Admin/Queues/index.html:34 msgid "No queues matching search criteria found." msgstr "Não há fila satisfazendo o critério de busca." @@ -2811,19 +3637,23 @@ msgstr "Não há fila satisfazendo o critério de busca." msgid "No rights found" msgstr "Nenhum direito encontrado" -#: html/Admin/Elements/SelectRights:33 +#: html/Admin/Elements/SelectRights:32 msgid "No rights granted." msgstr "Nenhum direito outorgado." -#: html/Search/Bulk.html:149 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "Não há busca a realizar" +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "Não há identificador de tíquete especificado" -#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "Não há tipo de transação especificada" @@ -2831,31 +3661,31 @@ msgstr "Não há tipo de transação especificada" msgid "No user or email address specified" msgstr "Não há usuário ou endereço de email especificado" -#: html/Admin/Users/index.html:36 +#: html/Admin/Users/index.html:35 msgid "No users matching search criteria found." msgstr "Nenhum usuário satisfazendo o critério de busca foi encontrado." -#: bin/rt-commit-handler:644 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Nenhum usuário RT válido foi encontrado. O tratador de CVS do RT está desabilitado. Por favor, consulte o administrador do RT.\\n" -#: lib/RT/Interface/Web.pm:859 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "Nenhum valor enviado a _Set!\\n" -#: html/Search/Elements/TicketRow:37 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "Ninguém" -#: lib/RT/Interface/Web.pm:864 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "Campo inexistente?" -#: html/Elements/Login:99 +#: NOT FOUND IN SOURCE msgid "Not logged in" msgstr "Não logado" -#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "Não entrou." @@ -2863,67 +3693,87 @@ msgstr "Não entrou." msgid "Not set" msgstr "Não definido" -#: html/NoAuth/Reminder.html:27 +#: html/NoAuth/Reminder.html:26 msgid "Not yet implemented." msgstr "Ainda não implementado." -#: html/Admin/Groups/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Not yet implemented...." msgstr "Ainda não implementado..." -#: html/Approvals/Elements/Approve:50 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "Notas" -#: lib/RT/User_Overlay.pm:642 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "A notificação não pôde ser enviada" -#: etc/initialdata:94 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "Notificar AdminCcs" -#: etc/initialdata:90 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "Notificar AdminCcs como Comentário" -#: etc/initialdata:121 +#: 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 "Notificar Outros Destinatários" -#: etc/initialdata:117 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "Notificar Outros Destinatários como Comentário" -#: etc/initialdata:86 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "Notificar Proprietário" -#: etc/initialdata:82 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "Notificar Proprietário como Comentário" -#: etc/initialdata:313 etc/upgrade/2.1.71:17 +#: 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 "Notificar Proprietários e AdminCcs sobre novos itens pendendo suas aprovações" -#: etc/initialdata:78 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "Notificar Requisitantes" -#: etc/initialdata:104 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "Notificar Requisitantes e Ccs" -#: etc/initialdata:99 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "Notificar Requisitantes e Ccs como Comentário" -#: etc/initialdata:113 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "Notificar Requisitantes, Ccs e AdminCcs" -#: etc/initialdata:109 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Notificar Requisitantes, Ccs e AdminCcs como Comentário" @@ -2935,14 +3785,22 @@ msgstr "Nov." msgid "November" msgstr "Novembro" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "Objeto não pôde ser criado" -#: lib/RT/Record.pm:176 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "Objeto criado" +#: NOT FOUND IN SOURCE +msgid "Object of type %1 cannot take custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Object type mismatch" +msgstr "" + #: lib/RT/Date.pm:420 msgid "Oct." msgstr "Out." @@ -2951,124 +3809,168 @@ msgstr "Out." msgid "October" msgstr "Outubro" -#: html/Elements/SelectDateRelation:35 +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + +#: html/Elements/SelectDateRelation:34 msgid "On" msgstr "Em" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "Sobre Comentário" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "Sobre Correspondência" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "Sobre Criação" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "Sobre Mudança de Propriedade" -#: etc/initialdata:177 +#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 +msgid "On Priority Change" +msgstr "" + +#: etc/initialdata:192 msgid "On Queue Change" msgstr "Sobre Mudança de Fila" -#: etc/initialdata:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "Sobre Resolução" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "Sobre Mudança de Estado" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "Sobre Transação" -#: html/Approvals/Elements/PendingMyApproval:50 +#: 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 "Só mostrar aprovações para requisições criadas depois de %1" -#: html/Approvals/Elements/PendingMyApproval:48 +#: 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 "Só mostrar aprovações para requisições criadas antes de %1" -#: html/Elements/Quicksearch:31 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "Aberto" -#: html/Ticket/Elements/Tabs:136 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Abrir" -#: html/SelfService/Elements/Tabs:57 +#: NOT FOUND IN SOURCE msgid "Open requests" msgstr "Requisições abertas" -#: html/Admin/Users/Prefs.html:41 +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "Abrir tíquetes (da listagem) em uma nova janela" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "Abrir tíquetes (da listagem) em outra janela" -#: etc/initialdata:133 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "Abrir tíquetes na correspondência" -#: html/Search/Elements/PickRestriction:101 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Requisitando e ordenando" -#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "Organização" -#: html/Approvals/Elements/Approve:34 +#: html/Approvals/Elements/Approve:32 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Tíquete originador: #%1" -#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "Após a data, a prioridade tende a" -#: lib/RT/Queue_Overlay.pm:87 +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "Próprios tíquetes" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "OwnTicket" -#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "Proprietário" -#: lib/RT/Ticket_Overlay.pm:3004 -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +#: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" msgstr "Proprietário mudou de %1 para %2" -#: lib/RT/Transaction_Overlay.pm:584 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Proprietário alterado à força de %1 para %2" -#: html/Search/Elements/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "O proprietário é" -#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "Pager" -#: html/Admin/Elements/ModifyUser:74 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "Telefone do Pager" @@ -3076,56 +3978,68 @@ msgstr "Telefone do Pager" msgid "Parent" msgstr "Pai" -#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +#: 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 "Pais" -#: html/Elements/Login:43 html/User/Prefs.html:61 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "Senha" -#: html/NoAuth/Reminder.html:25 +#: html/NoAuth/Reminder.html:24 msgid "Password Reminder" msgstr "Lembrete de Senha" -#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "Senha muito curta" -#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Senha: %1" -#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +#: html/Admin/Users/Modify.html:318 +msgid "Passwords do not match." +msgstr "" + +#: html/User/Prefs.html:211 +msgid "Passwords do not match. Your password has not been changed" +msgstr "" + +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "Pessoas" -#: etc/initialdata:126 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "Realizar uma ação definida pelo usuário" -#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "Permissão Negada" -#: html/User/Elements/Tabs:35 +#: html/User/Elements/Tabs:34 msgid "Personal Groups" msgstr "Grupoas Pessoais" -#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 msgid "Personal groups" msgstr "Grupos pessoais" -#: html/User/Elements/DelegateRights:37 +#: html/User/Elements/DelegateRights:36 msgid "Personal groups:" msgstr "Grupos pessoais:" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "Telefones" -#: html/Admin/Users/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Placeholder" msgstr "" @@ -3133,7 +4047,7 @@ msgstr "" msgid "Pref" msgstr "" -#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +#: 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 "Preferências" @@ -3141,15 +4055,19 @@ msgstr "Preferências" msgid "Prefs" msgstr "Prefs" -#: lib/RT/Action/Generic.pm:160 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "" -#: html/Ticket/Elements/Tabs:61 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "Anterior" -#: html/Search/Listing.html:44 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "Página anterior" @@ -3157,41 +4075,57 @@ msgstr "Página anterior" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#: 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 "Principal %1 não encontrado." -#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "Prioridade" -#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "A prioridade inicia em" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "Privilegiado" -#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Estado privilegiado: %1" -#: html/Admin/Users/index.html:62 +#: html/Admin/Users/index.html:61 msgid "Privileged users" msgstr "Usuários privilegiados" +#: 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 "Falso-grupo para uso interno" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "Fila" -#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#: 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" @@ -3205,7 +4139,7 @@ msgstr "A fila '%1' não foi encontrada\\n" msgid "Queue Keyword Selections" msgstr "Seleções de Palavras-chave da Fila" -#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "Nome da Fila" @@ -3213,19 +4147,19 @@ msgstr "Nome da Fila" msgid "Queue Scrips" msgstr "Scrips da Fila" -#: lib/RT/Queue_Overlay.pm:263 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "A fila já existe" -#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "A fila não pôde ser criada" -#: html/Ticket/Create.html:209 +#: html/Ticket/Create.html:208 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:282 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "Fila criada" @@ -3233,26 +4167,37 @@ msgstr "Fila criada" msgid "Queue is not specified." msgstr "A fila não foi especificada." -#: html/SelfService/Display.html:129 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "Fila não encontrada" -#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 msgid "Queues" msgstr "Filas" -#: html/Elements/Login:34 +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "" + +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + +#: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 +#: 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 para %2" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: NOT FOUND IN SOURCE msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." msgstr "RT %1 por <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." @@ -3264,7 +4209,7 @@ msgstr "RT %1. Direitos reservados 1996-%1 Jesse Vincent <jesse\\@bestpractical. 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:25 html/Admin/index.html:26 +#: html/Admin/index.html:24 html/Admin/index.html:25 msgid "RT Administration" msgstr "Adiministração do RT" @@ -3284,7 +4229,7 @@ msgstr "Erro de configuração do RT" msgid "RT Critical error. Message not recorded!" msgstr "Erro crítico no RT. A mensagem não foi registrada!" -#: html/Elements/Error:41 html/SelfService/Error.html:41 +#: html/Elements/Error:41 html/SelfService/Error.html:40 msgid "RT Error" msgstr "Erro no RT" @@ -3296,11 +4241,19 @@ msgstr "O RT recebeu email (%1) dele próprio." msgid "RT Recieved mail (%1) from itself." msgstr "O RT recebeu email (%1) de si próprio." -#: html/SelfService/Closed.html:25 +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "Auto-serviço do RT / Tíquetes Fechados" -#: html/index.html:25 html/index.html:28 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "RT por alto" @@ -3320,7 +4273,7 @@ msgstr "O RT não pôde encontrar a fila: %1" msgid "RT couldn't validate this PGP signature. \\n" msgstr "O RT não pôde validar esta assinatura PGP. \\n" -#: html/Elements/PageLayout:26 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "RT para %1" @@ -3333,11 +4286,14 @@ msgstr "RT para %1: %2" msgid "RT has proccessed your commands" msgstr "O RT processou seus comandos" -#: html/Elements/Login:83 -#. ('2003') +#: 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 tem © Direitos Reservados 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Ele é distribuído sob a <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versão 2 da Licença Pública Geral GNU (GPL).</a>" +#: 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 "" + #: 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 tem © Direitos Reservados 1996-%1 por Jesse Vincent <jesse@bestpractical.com>. Ele é distribuído sob a <a href=\\\"http://www.gnu.org/copyleft/gpl.html\\\">Versão 2 da Licença Pública Geral GNU (GPL).</a>" @@ -3354,19 +4310,43 @@ msgstr "O RT vai processar esta mensagem como se não fosse assinada.\\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 email do RT requer autenticação PGP. Ou você não assinou sua mensagem ou sua assinatura não pôde ser verificada." -#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "Nome real" -#: html/Admin/Elements/ModifyUser:48 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "Nome real" -#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "Referenciado por" -#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +#: 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 "Faz referência a" @@ -3378,20 +4358,20 @@ msgstr "RefersTo" msgid "Refine" msgstr "Refinar" -#: html/Search/Elements/PickRestriction:27 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Refinar a Busca" -#: html/Elements/Refresh:36 +#: html/Elements/Refresh:35 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Recarregar esta página a cada %1 minutos." -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +#: NOT FOUND IN SOURCE msgid "Relationships" -msgstr "Relacionamentos" +msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "Remover AdminCc" @@ -3399,27 +4379,35 @@ msgstr "Remover AdminCc" msgid "Remove Cc" msgstr "Remover Cc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "Remover Requisitante" -#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "Responder" -#: lib/RT/Queue_Overlay.pm:85 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "Responder aos tíquetes" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "ReplyToTicket" -#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "Requisitante" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "Endereço eletrônico do requisitante" @@ -3431,98 +4419,107 @@ msgstr "Requisitante(s)" msgid "RequestorAddresses" msgstr "RequestorAddresses" -#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "Requisitantes" -#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "A requisições vencem em" -#: html/Elements/Submit:62 +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + +#: html/Elements/Submit:61 msgid "Reset" msgstr "Restaurar" -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "Residência" -#: html/Ticket/Elements/Tabs:132 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "Resolver" -#: html/Ticket/Update.html:133 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Resolver tíquete #%1 (%2)" -#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "Resolvido" -#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "Resposta aos requisitantes" -#: html/Elements/ListActions:26 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "Resultados" -#: html/Search/Elements/PickRestriction:105 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "Resultados por página" -#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "Confirmar a Senha" +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + #: 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:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "Direito de Acesso Delegado" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "Direito de Acesso Outorgado" -#: lib/RT/ACE_Overlay.pm:161 +#: lib/RT/ACE_Overlay.pm:160 msgid "Right Loaded" msgstr "Direito de Acesso Carregado" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "Direito de acesso não pôde ser revogado" -#: html/User/Delegation.html:64 +#: html/User/Delegation.html:63 msgid "Right not found" msgstr "Direito de acesso não encontrado" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "Direito de acesso não carregado." -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "Direito de acesso revogado" -#: html/Admin/Elements/UserTabs:41 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "Direitos de Acesso" -#: lib/RT/Interface/Web.pm:758 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Direitos de acesso não puderam ser outorgados a %1" -#: lib/RT/Interface/Web.pm:791 +#: lib/RT/Interface/Web.pm:899 #. ($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:51 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "Papéis" @@ -3530,32 +4527,53 @@ msgstr "Papéis" msgid "RootApproval" msgstr "RootApproval" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "Sáb." -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "Salvar as Alterações" -#: html/Ticket/ModifyLinks.html:39 +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "Salvar as alterações" -#: html/Admin/Global/Scrip.html:49 +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:176 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "Scrip Criado" -#: html/Admin/Elements/EditScrips:84 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "Scrip removido" -#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 msgid "Scrips" msgstr "Scrips" @@ -3567,7 +4585,7 @@ msgstr "Scrips para %1\\n" msgid "Scrips which apply to all queues" msgstr "Scrips aplicáveis a todas as filas" -#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "Buscar" @@ -3575,19 +4593,63 @@ msgstr "Buscar" msgid "Search Criteria" msgstr "Critérios de Busca" -#: html/Approvals/Elements/PendingMyApproval:39 +#: html/Approvals/Elements/PendingMyApproval:38 msgid "Search for approvals" msgstr "Buscar por aprovações" -#: bin/rt-crontool:188 +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "" + +#: bin/rt-crontool:184 msgid "Security:" msgstr "Segurança:" -#: lib/RT/Queue_Overlay.pm:67 +#: NOT FOUND IN SOURCE +msgid "See custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "SeeCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "SeeQueue" -#: html/Admin/Groups/index.html:40 +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Field" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "Selecionar um grupo" @@ -3595,87 +4657,111 @@ msgstr "Selecionar um grupo" msgid "Select a queue" msgstr "Selecionar uma fila" -#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" msgstr "Selecionar um usuário" -#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "Selecionar um campo personalizado" -#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" msgstr "Selecionar um grupo" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "Selecionar múltiplos valores" -#: lib/RT/CustomField_Overlay.pm:352 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "Selecionar um valor" -#: html/Admin/Elements/QueueTabs:67 +#: html/Admin/Elements/QueueTabs:66 msgid "Select queue" msgstr "Selecionar uma fila" -#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +#: 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 "Selecionar um scrip" -#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +#: 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 "Selecionar um esquema" -#: html/Admin/Elements/UserTabs:49 +#: NOT FOUND IN SOURCE +msgid "Select up to %1 values" +msgstr "" + +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "Selecionar um usuário" -#: lib/RT/CustomField_Overlay.pm:36 +#: lib/RT/CustomField_Overlay.pm:35 msgid "SelectMultiple" msgstr "SelectMultiple" -#: lib/RT/CustomField_Overlay.pm:35 +#: lib/RT/CustomField_Overlay.pm:34 msgid "SelectSingle" msgstr "SelectSingle" -#: html/SelfService/index.html:25 +#: NOT FOUND IN SOURCE +msgid "Selected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Selected objects" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Self Service" msgstr "Auto-serviço" -#: etc/initialdata:114 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "Enviar mensagem a todos os observadores" -#: etc/initialdata:110 +#: 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:105 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "Enviar mensagem aos requisitantes e Ccs" -#: etc/initialdata:100 +#: 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:79 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "Envia uma mensagem aos requisitantes" -#: etc/initialdata:118 etc/initialdata:122 +#: 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:95 +#: 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 "Envia uma mensagem aos Ccs administrativos" -#: etc/initialdata:91 +#: 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:83 etc/initialdata:87 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "Envia uma mensagem ao proprietário" @@ -3683,59 +4769,87 @@ msgstr "Envia uma mensagem ao proprietário" msgid "Sep." msgstr "Set." +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "" + #: NOT FOUND IN SOURCE msgid "September" msgstr "Setembro" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "Mostrar os Resultados" -#: html/Approvals/Elements/PendingMyApproval:44 +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "Mostrar requisições aprovadas" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show basics" msgstr "Mostrar o sumário" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:44 msgid "Show denied requests" msgstr "Mostrar requisições negadas" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show details" msgstr "Mostrar os detalhes" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:42 msgid "Show pending requests" msgstr "Mostrar requisições pendentes" -#: html/Approvals/Elements/PendingMyApproval:46 +#: html/Approvals/Elements/PendingMyApproval:45 msgid "Show requests awaiting other approvals" msgstr "Mostrar requisições aguardando outras aprovações" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "Mostrar comentário privado do tíquete" -#: lib/RT/Queue_Overlay.pm:79 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "Mostrar sumários do tíquete" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "ShowACL" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "ShowScrips" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "ShowTemplate" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "ShowTicket" @@ -3743,43 +4857,58 @@ msgstr "ShowTicket" msgid "ShowTicketComments" msgstr "ShowTicketComments" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 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:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "Cadastrar como um AdminCC de tíquete ou fila" -#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "Assinatura" -#: html/SelfService/Elements/Header:52 -#. ($session{'CurrentUser'}->Name) +#: NOT FOUND IN SOURCE msgid "Signed in as %1" msgstr "Assinado como %1" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:25 msgid "Single" msgstr "Único" -#: html/Elements/Header:51 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "Saltar Menu" -#: html/Admin/Elements/EditCustomFieldValues:31 +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Sort key" msgstr "Chave de ordenação" -#: html/Search/Elements/PickRestriction:109 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "Ordenar os resultados por" -#: html/Admin/Elements/AddCustomFieldValue:25 +#: NOT FOUND IN SOURCE msgid "SortOrder" msgstr "Ordenação" +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "Pendente" @@ -3788,7 +4917,7 @@ msgstr "Pendente" msgid "Start page" msgstr "Página inicial" -#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "Iniciado" @@ -3796,7 +4925,7 @@ msgstr "Iniciado" msgid "Started date '%1' could not be parsed" msgstr "A data de iníciado '%1' não pôde ser compreendida" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "Inicia" @@ -3808,19 +4937,19 @@ msgstr "Inicia Por" msgid "Starts date '%1' could not be parsed" msgstr "A data de início '%1' não pôde ser compreendida" -#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "Estado" -#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +#: 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 "Estado" -#: etc/initialdata:288 +#: etc/initialdata:309 msgid "Status Change" msgstr "Mudança de Estado" -#: lib/RT/Transaction_Overlay.pm:530 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "Estado alterado de %1 para %2" @@ -3829,28 +4958,40 @@ msgstr "Estado alterado de %1 para %2" msgid "StatusChange" msgstr "StatusChange" -#: html/Ticket/Elements/Tabs:147 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "Roubar" -#: lib/RT/Transaction_Overlay.pm:589 +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "Roubado de %1 " -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +#: 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 "Assunto" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#: 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 "Assunto modou para %1" -#: html/Elements/Submit:59 +#: html/Elements/Submit:58 msgid "Submit" msgstr "Enviar" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "Enviar Workflow" @@ -3859,19 +5000,31 @@ msgstr "Enviar Workflow" msgid "Succeeded" msgstr "Deu certo" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + #: lib/RT/Date.pm:394 msgid "Sun." msgstr "Dom." -#: lib/RT/System.pm:54 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "SuperUser" -#: html/User/Elements/DelegateRights:77 +#: html/User/Elements/DelegateRights:76 msgid "System" msgstr "Sistema" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "Erro do Sistema" @@ -3883,11 +5036,15 @@ msgstr "Erro de sistema. Direito não outorgado." msgid "System Error. right not granted" msgstr "Erro de sistema. direito não outorgado" -#: lib/RT/ACE_Overlay.pm:616 +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "Erro do sistema. Direito de acesso não delegado." -#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "Erro do sistema. Direito de acesso não outorgado." @@ -3895,7 +5052,7 @@ msgstr "Erro do sistema. Direito de acesso não outorgado." msgid "System error. Unable to grant rights." msgstr "Erro de sistema. Não posso outorgar direitos de acesso." -#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 msgid "System groups" msgstr "Grupos do sistema" @@ -3903,32 +5060,44 @@ msgstr "Grupos do sistema" msgid "SystemRolegroup for internal use" msgstr "SystemRolegroup para uso interno" -#: lib/RT/CurrentUser.pm:320 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Ticket/Elements/Tabs:143 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "Tomar" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "Tomado" -#: html/Admin/Elements/EditScrip:81 +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "" + +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "Modelo" -#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Esquema #%1" -#: html/Admin/Elements/EditTemplates:89 +#: html/Admin/Elements/EditTemplates:88 msgid "Template deleted" msgstr "Esquema removido" -#: lib/RT/Scrip_Overlay.pm:153 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "Modelo não encontrado" @@ -3936,11 +5105,11 @@ msgstr "Modelo não encontrado" msgid "Template not found\\n" msgstr "Modelo não encontrado\\n" -#: lib/RT/Template_Overlay.pm:347 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "Modelo processado" -#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 msgid "Templates" msgstr "Modelos" @@ -3948,71 +5117,78 @@ msgstr "Modelos" msgid "Templates for %1\\n" msgstr "Modelos de %1\\n" -#: lib/RT/Interface/Web.pm:858 +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "" + +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "Este já é o valor atual" -#: lib/RT/CustomField_Overlay.pm:178 +#: lib/RT/CustomField_Overlay.pm:248 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:1886 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "Este é o mesmo valor" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Este principal já é um %1 para esta fila" -#: lib/RT/Ticket_Overlay.pm:1434 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Este principal já é um %1 para este tíquete" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Este principal não é um %1 para esta fila" -#: lib/RT/Ticket_Overlay.pm:1551 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "Este principal não é um %1 para este tíquete" -#: lib/RT/Ticket_Overlay.pm:1882 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "Esta fila não existe" -#: lib/RT/Ticket_Overlay.pm:3143 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "Este tíquete tem dependências não resolvidas" -#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +#: NOT FOUND IN SOURCE msgid "That user already has that right" msgstr "Este usuário já tem este direito de acesso" -#: lib/RT/Ticket_Overlay.pm:2952 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "Este usuário já possui este tíquete" -#: lib/RT/Ticket_Overlay.pm:2918 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "Este usuário não existe" -#: lib/RT/User_Overlay.pm:315 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "Este usuário já tem privilégios" -#: lib/RT/User_Overlay.pm:332 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "Este usuário já não tem privilégios" -#: lib/RT/User_Overlay.pm:327 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "Este usuário agora tem privilégios" -#: lib/RT/User_Overlay.pm:344 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "Este usuário agora não tem privilégios" @@ -4020,67 +5196,79 @@ msgstr "Este usuário agora não tem privilégios" msgid "That user is now unprivilegedileged" msgstr "Este usuário agora é não privilegiado" -#: lib/RT/Ticket_Overlay.pm:2944 +#: lib/RT/Ticket_Overlay.pm:2949 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:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "Este não é um identificador numérico" -#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 msgid "The Basics" msgstr "Sumário" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:87 msgid "The CC of a ticket" msgstr "O CC de um tíquete" -#: lib/RT/ACE_Overlay.pm:89 +#: lib/RT/ACE_Overlay.pm:88 msgid "The administrative CC of a ticket" msgstr "O CC administrativo de um tíquete" -#: lib/RT/Ticket_Overlay.pm:2213 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "O comentário foi registrado" -#: bin/rt-crontool:198 +#: 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 "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 em 4 horas:" -#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +#: 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/Interface/Web.pm:861 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "O novo valor foi atribuído." -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:85 msgid "The owner of a ticket" msgstr "O proprietário de um tíquete" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:86 msgid "The requestor of a ticket" msgstr "O requisitante de um tíquete" -#: html/Admin/Elements/EditUserComments:26 +#: html/Admin/Elements/EditUserComments:25 msgid "These comments aren't generally visible to the user" msgstr "Estes comandos geralmente não estão visíveis para o usuário" +#: NOT FOUND IN SOURCE +msgid "This custom field does not apply to that object" +msgstr "" + +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +msgid "This message will be sent to..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "Este tíquete %1 %2 (%3)\\n" -#: bin/rt-crontool:189 +#: bin/rt-crontool:185 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:253 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "Parece que esta transação não tem conteúdo" -#: html/Ticket/Elements/ShowRequestor:47 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Os %1 tíquetes mais prioritários deste usuário" @@ -4105,61 +5293,75 @@ msgstr "Tíquete # %1 %2" msgid "Ticket # %1 Jumbo update: %2" msgstr "Tíquete # %1 atualização jumbo: %2" -#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Tíquete #%1 Atualização jumbo: %2" -#: html/Approvals/Elements/ShowDependency:46 +#: html/Approvals/Elements/ShowDependency:45 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Tíquete #%1: %2" -#: lib/RT/Ticket_Overlay.pm:608 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Tíquete %1 criado na fila '%2'" -#: bin/rt-commit-handler:760 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "Tíquete %1 carregado\\n" -#: html/Search/Bulk.html:181 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Tíquete %1: %2" -#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#: NOT FOUND IN SOURCE +msgid "Ticket Custom Fields" +msgstr "" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "Histórico do Tíquete # %1 %2" -#: html/SelfService/Display.html:34 +#: NOT FOUND IN SOURCE msgid "Ticket Id" msgstr "Identificador do tíquete" -#: etc/initialdata:303 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "Tíquete Resolvido" -#: html/Search/Elements/PickRestriction:63 +#: NOT FOUND IN SOURCE +msgid "Ticket Transactions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Arquivo anexo do tíquete" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "Conteúdo do tíquete" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "Tipo do conteúdo do tíquete" -#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +#: 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 "O tíquete não pôde ser criado devido a um erro interno" -#: lib/RT/Transaction_Overlay.pm:522 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "Tíquete criado" @@ -4167,11 +5369,11 @@ msgstr "Tíquete criado" msgid "Ticket creation failed" msgstr "A criação do tíquete falhou" -#: lib/RT/Transaction_Overlay.pm:527 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "Tíquete removido" -#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +#: NOT FOUND IN SOURCE msgid "Ticket id not found" msgstr "Id de tíquete não encontrado" @@ -4179,58 +5381,65 @@ msgstr "Id de tíquete não encontrado" msgid "Ticket killed" msgstr "Tíquete destruído" -#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "Tíquete não encontrado" -#: etc/initialdata:289 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "O estado do tíquete mudou" -#: html/Ticket/Update.html:39 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "Observadores do tíquete" -#: html/Elements/Tabs:49 +#: html/Elements/Tabs:46 msgid "Tickets" msgstr "Tíquetes" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "Tíquetes %1 %2" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "Tíquetes %1 por %2" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Tíquetes de %1" -#: html/Approvals/Elements/ShowDependency:27 +#: html/Approvals/Elements/ShowDependency:26 msgid "Tickets which depend on this approval:" msgstr "Tíquetes dependentes desta aprovação:" -#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "Tempo Restante" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "Tempo Trabalhado" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "Tempo restante" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "Tempo de apresentação" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "Tempo trabalhado" @@ -4238,40 +5447,57 @@ msgstr "Tempo trabalhado" msgid "TimeLeft" msgstr "TimeLeft" -#: lib/RT/Ticket_Overlay.pm:1165 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "TimeWorked" -#: bin/rt-commit-handler:402 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "Para gerar as diferenças desta transação" -#: bin/rt-commit-handler:391 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "Para gerar as diferenças desta transação:\\n" -#: lib/RT/Ticket_Overlay.pm:1168 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "Última atualização" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "Transação" -#: lib/RT/Transaction_Overlay.pm:642 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transação %1 removida" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "Transação Criada" -#: lib/RT/Transaction_Overlay.pm:89 +#: NOT FOUND IN SOURCE +msgid "Transaction Custom Fields" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "Transaction->Create não pôde, já que você não especificou um id de tíquete" -#: lib/RT/Transaction_Overlay.pm:701 +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "Transações são imutáveis" @@ -4283,102 +5509,169 @@ msgstr "Tentando remover um direito de acesso: %1" msgid "Tue." msgstr "Ter." -#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +#: 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 "Tipo" -#: lib/RT/ScripCondition_Overlay.pm:104 +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + +#: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "Não implementado" -#: html/Admin/Users/Modify.html:68 +#: html/Admin/Users/Modify.html:67 msgid "Unix login" msgstr "Usuário Unix" -#: html/Admin/Elements/ModifyUser:62 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "Usuário Unix" -#: lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Codificação de conteúdo desconhecida %1" -#: html/Elements/SelectResultsPerPage:37 +#: html/Elements/SelectResultsPerPage:36 msgid "Unlimited" msgstr "Ilimitado" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "Não privilegiado" -#: lib/RT/Transaction_Overlay.pm:571 +#: NOT FOUND IN SOURCE +msgid "Unselected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Unselected objects" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "Não tomado" -#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "" + +#: html/Search/Bulk.html:32 msgid "Update" msgstr "Atualizar" -#: html/Admin/Users/Prefs.html:62 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Identificador de atualização" -#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "Tipo de atualização" -#: html/Search/Listing.html:61 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "Atualizar todos estes tíquetes de uma vez" -#: html/Admin/Users/Prefs.html:49 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "Atualizar email" -#: html/Admin/Users/Prefs.html:55 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "Atualizar nome" -#: lib/RT/Interface/Web.pm:375 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "Atualização não registrada." -#: html/Search/Bulk.html:81 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "Atualizar os tíquetes selecionados" -#: html/Admin/Users/Prefs.html:36 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Atualizar assinatura" -#: html/Ticket/ModifyAll.html:63 +#: html/Ticket/ModifyAll.html:62 msgid "Update ticket" msgstr "Atualizar o tíquete" -#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 -#. ($Ticket->id) +#: NOT FOUND IN SOURCE msgid "Update ticket # %1" msgstr "Atualizar o tíquete # %1" -#: html/SelfService/Update.html:50 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Atualizar o tíquete #%1" -#: html/Ticket/Update.html:135 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Atualizar tíquete #%1 (%2)" -#: lib/RT/Interface/Web.pm:373 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 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:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "Atualizado" +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple images" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one image" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 images" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "Usuário %1 %2: %3\\n" @@ -4387,6 +5680,11 @@ msgstr "Usuário %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Usuário %1 Senha: %2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "Usuário '%1' não encontrado" @@ -4395,60 +5693,80 @@ msgstr "Usuário '%1' não encontrado" msgid "User '%1' not found\\n" msgstr "Usuário '%1' não encontrado\\n" -#: etc/initialdata:125 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Definido pelo Usuário" -#: html/Admin/Users/Prefs.html:59 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "Identificador de usuário" -#: html/Elements/SelectUsers:26 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "Identificador do usuário" -#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +#: 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 "Direitos de Acesso de Usuário" -#: html/Admin/Users/Modify.html:226 +#: NOT FOUND IN SOURCE +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" + +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "O usuário não pôde ser criado: %1" -#: lib/RT/User_Overlay.pm:262 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "Usuário criado" -#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "Grupos definidos pelo usuário" +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User notified" msgstr "Usuário notificado" -#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "Visualização de usuário" -#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +#: NOT FOUND IN SOURCE +msgid "User-defined groups" +msgstr "" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "Nome de usuário" -#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +#: 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 "Usuários" -#: html/Admin/Users/index.html:65 +#: html/Admin/Users/index.html:64 msgid "Users matching search criteria" msgstr "Usuários que satisfazem o critério de busca" -#: html/Search/Elements/PickRestriction:51 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "Valor da fila" -#: html/Admin/Elements/EditCustomField:40 +#: html/Admin/Elements/EditCustomField:56 msgid "Values" msgstr "Valores" @@ -4456,11 +5774,11 @@ msgstr "Valores" msgid "VrijevormEnkele" msgstr "" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "Observar" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "WatchAsAdminCc" @@ -4468,11 +5786,11 @@ msgstr "WatchAsAdminCc" msgid "Watcher loaded" msgstr "Observador carregado" -#: html/Admin/Elements/QueueTabs:42 +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "Observadores" -#: html/Admin/Elements/ModifyUser:56 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "Codificação de Web" @@ -4480,75 +5798,103 @@ msgstr "Codificação de Web" msgid "Wed." msgstr "Qua." -#: etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "Quando um tíquete for aprovado por todos os aprovadores, adicione uma correspondência ao tíquete original" -#: etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "Quando um tíquete for aprovado por qualquer aprovador, adicione uma correspondência ao tíquete original" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "Quando um tíquete é criado" -#: etc/upgrade/2.1.71:79 +#: 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 item aguardando sua aprovação" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "Quando acontecer qualquer coisa" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "Sempre que um tíquete for resolvido" -#: etc/initialdata:170 +#: 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/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 "Sempre que um tíquete mudar de fila" -#: etc/initialdata:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "Sempre que o estado de um tíquete mudar" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "Sempre que ocorrer uma condição definida por usuário" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "Sempre que um novo comentário é adicionado" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "Sempre que uma nova correspondência é adicionada" -#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "Trabalho" -#: html/Admin/Elements/ModifyUser:70 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "Telefone de trabalho" -#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Trabalhado" -#: lib/RT/Ticket_Overlay.pm:3056 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "Você já é proprietário deste tíquete" -#: html/autohandler:121 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "Você não é um usuário autorizado" -#: lib/RT/Ticket_Overlay.pm:2930 +#: NOT FOUND IN SOURCE +msgid "You can access it with the Download button on the right." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2941 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" @@ -4556,29 +5902,28 @@ msgstr "Você só pode reatribuir seus próprios tíquetes ou aqueles que não t 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 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "Você encontrou %1 tíquetes na fila %2" -#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +#: html/NoAuth/Logout.html:30 msgid "You have been logged out of RT." msgstr "Você foi desconectado do RT." -#: html/SelfService/Display.html:134 +#: html/SelfService/Display.html:79 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:1895 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "Você não pode criar requisições nesta fila." -#: html/NoAuth/Logout.html:36 +#: html/NoAuth/Logout.html:34 msgid "You're welcome to login again" msgstr "Volte sempre" -#: html/SelfService/Elements/MyRequests:25 -#. ($friendly_status) +#: NOT FOUND IN SOURCE msgid "Your %1 requests" msgstr "Suas %1 requisições" @@ -4586,11 +5931,11 @@ msgstr "Suas %1 requisições" 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:429 etc/upgrade/2.1.71:146 +#: 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:463 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "Sua requisição foi aprovada." @@ -4598,15 +5943,15 @@ msgstr "Sua requisição foi aprovada." msgid "Your request was rejected" msgstr "Sua requisição foi rejeitada" -#: etc/initialdata:384 etc/upgrade/2.1.71:101 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "Sua requisição foi rejeitada." -#: html/autohandler:136 html/autohandler:142 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "Nome de usuário ou senha incorretos" -#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "CEP" @@ -4614,32 +5959,44 @@ msgstr "CEP" msgid "[no subject]" msgstr "[sem assunto]" -#: html/User/Elements/DelegateRights:59 +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + +#: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "como outorgado a %1" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 msgid "contains" msgstr "contém" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content" msgstr "content" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "content-type" -#: lib/RT/Ticket_Overlay.pm:2282 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "correspondência (provavelmente) não enviada" -#: lib/RT/Ticket_Overlay.pm:2292 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "correspondência enviada" -#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "dias" @@ -4647,23 +6004,27 @@ msgstr "dias" msgid "dead" msgstr "morto" -#: html/Search/Listing.html:75 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "remover" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "removido" -#: html/Search/Elements/PickRestriction:68 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "não satisfaz" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 msgid "doesn't contain" msgstr "não contém" -#: html/Elements/SelectEqualityOperator:38 +#: NOT FOUND IN SOURCE +msgid "email address" +msgstr "" + +#: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "igual a" @@ -4671,15 +6032,15 @@ msgstr "igual a" msgid "false" msgstr "falso" -#: html/Elements/SelectAttachmentField:28 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "filename" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "greater than" msgstr "maior que" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "grupo '%1'" @@ -4692,19 +6053,23 @@ msgstr "horas" msgid "id" msgstr "identificador" -#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + +#: 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 "é" -#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +#: 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 "não é" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "less than" msgstr "menor que" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "satisfaz" @@ -4712,11 +6077,11 @@ msgstr "satisfaz" msgid "min" msgstr "min" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "minutos" -#: bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "modificações\\n\\n" @@ -4724,19 +6089,23 @@ msgstr "modificações\\n\\n" msgid "months" msgstr "meses" -#: lib/RT/Queue_Overlay.pm:58 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "novo" -#: html/Admin/Elements/EditScrips:43 +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + +#: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "sem valor" -#: html/Ticket/Elements/EditWatchers:28 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "nenhum" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "not equal to" msgstr "diferente de" @@ -4744,25 +6113,25 @@ msgstr "diferente de" msgid "notlike" msgstr "diferente" -#: lib/RT/Queue_Overlay.pm:59 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "aberto" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($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:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "fila %1 %2" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "rejeitado" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "resolvido" @@ -4770,34 +6139,46 @@ msgstr "resolvido" msgid "sec" msgstr "seg" -#: lib/RT/Queue_Overlay.pm:60 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "pendente" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "sistema %1" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "grupo do sistema '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:42 +#: html/Elements/Error:42 html/SelfService/Error.html:41 msgid "the calling component did not specify why" msgstr "o componente chamador não especificou por que" -#: lib/RT/Group_Overlay.pm:210 +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "tíquete #%1 %2" +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "" + #: NOT FOUND IN SOURCE msgid "true" msgstr "verdadeiro" -#: lib/RT/Group_Overlay.pm:216 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "grupo %1 não descrito" @@ -4806,7 +6187,7 @@ msgstr "grupo %1 não descrito" msgid "undescripbed group %1" msgstr "grupo sem descrição %1" -#: lib/RT/Group_Overlay.pm:191 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "usuário %1" diff --git a/rt/lib/RT/I18N/ru.po b/rt/lib/RT/I18N/ru.po index 1ee5d9be4..981b9cd02 100644 --- a/rt/lib/RT/I18N/ru.po +++ b/rt/lib/RT/I18N/ru.po @@ -7,27 +7,39 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 0.9.6\n" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 +#: NOT FOUND IN SOURCE msgid "#" msgstr "№" -#: html/Admin/Queues/Scrip.html:55 -#. ($QueueObj->id) +#: NOT FOUND IN SOURCE msgid "#%1" msgstr "" -#: html/Approvals/Elements/ShowDependency:50 html/Ticket/Display.html:26 html/Ticket/Display.html:30 -#. ($Ticket->Id, $Ticket->Subject) +#: 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 "" -#: lib/RT/Date.pm:337 +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "" + +#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 #. ($s, $time_unit) +#. ($option, $subtype) msgid "%1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:771 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "" @@ -37,7 +49,7 @@ msgstr "" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%1 %2 %3 %4:%5:%6 %7" -#: lib/RT/Ticket_Overlay.pm:3438 lib/RT/Transaction_Overlay.pm:559 lib/RT/Transaction_Overlay.pm:601 +#: 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) @@ -49,66 +61,125 @@ msgstr "" msgid "%1 %2 ago" msgstr "%1 %2 назад" -#: lib/RT/Ticket_Overlay.pm:3444 lib/RT/Transaction_Overlay.pm:566 +#: 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 изменено на %3" -#: lib/RT/Ticket_Overlay.pm:3441 lib/RT/Transaction_Overlay.pm:562 lib/RT/Transaction_Overlay.pm:607 +#: 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 "" -#: html/Admin/Elements/EditScrips:44 html/Admin/Elements/ListGlobalScrips:28 +#: NOT FOUND IN SOURCE +msgid "%1 %2 of group %3" +msgstr "" + +#: 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 "" +#: NOT FOUND IN SOURCE +msgid "%1 %2 הוסף" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 מקבוצה %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 נמחק" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 שונה ל %3" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 Ñтот тикет\\n" -#: html/Search/Listing.html:57 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 פנייה זו\\n" +msgstr "" + +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "" -#: bin/rt-crontool:169 bin/rt-crontool:176 bin/rt-crontool:182 +#: 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 "" -#: bin/rt-crontool:185 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "" -#: bin/rt-crontool:179 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "" -#: bin/rt-crontool:173 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "" -#: bin/rt-crontool:166 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:122 +#: NOT FOUND IN SOURCE +msgid "%1 - ×רגומנט להעביר ×ל %2" +msgstr "" + + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1 Ñкрипт загружен" -#: lib/RT/Ticket_Overlay.pm:3471 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 добавлено как значение Ð´Ð»Ñ %2" @@ -125,19 +196,19 @@ msgstr "%1 алиаÑÑ‹ требуют идентификатор тикета msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1 алиаÑÑ‹ требуют идентификатор тикета Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ над (от %2) %3" -#: lib/RT/Link_Overlay.pm:117 lib/RT/Link_Overlay.pm:124 +#: 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 "" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:483 +#: 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 пользователем %2" -#: lib/RT/Transaction_Overlay.pm:537 lib/RT/Transaction_Overlay.pm:626 lib/RT/Transaction_Overlay.pm:635 lib/RT/Transaction_Overlay.pm:638 +#: 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) @@ -145,55 +216,104 @@ msgstr "%1 пользователем %2" msgid "%1 changed from %2 to %3" msgstr "%1 изменилоÑÑŒ Ñ %2 на %3" -#: lib/RT/Interface/Web.pm:857 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "ÐÐµÐ»ÑŒÐ·Ñ ÑƒÑтановить %1 в %2." -#: lib/RT/Ticket_Overlay.pm:2813 +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 не могу закрыть тикет. Возможно, база данных RT иÑпорчена." -#: html/Elements/MyTickets:25 +#: NOT FOUND IN SOURCE +msgid "%1 created" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 deleted" +msgstr "" + +#: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "%1 Ñамых приоритетных моих тикетов..." -#: html/Elements/MyRequests:25 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "%1 Ñамых приоритетных тикетов, запрошенных мной..." -#: bin/rt-crontool:161 +#: bin/rt-crontool:157 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "" -#: lib/RT/Queue_Overlay.pm:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 больше не ÑвлÑетÑÑ %2 Ð´Ð»Ñ Ñтой очереди." -#: lib/RT/Ticket_Overlay.pm:1570 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 больше не ÑвлÑетÑÑ %2 Ð´Ð»Ñ Ñтого тикета." -#: lib/RT/Ticket_Overlay.pm:3527 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 больше не ÑвлÑетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸ÐµÐ¼ Ð´Ð»Ñ Ð½ÐµÑтандартного Ð¿Ð¾Ð»Ñ %2" -#: html/Ticket/Elements/ShowBasics:36 -#. ($TimeWorked) +#: NOT FOUND IN SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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 мин" +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 не отображаетÑÑ" -#: html/User/Elements/DelegateRights:76 +#: NOT FOUND IN SOURCE +msgid "%1 objects" +msgstr "" + +#: html/User/Elements/DelegateRights:75 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 права" @@ -210,7 +330,11 @@ msgstr "%1 тип не извеÑтен Ð´Ð»Ñ $MessageId" msgid "%1 type unknown for %2" msgstr "%1 тип не извеÑтен Ð´Ð»Ñ %2" -#: lib/RT/Action/ResolveMembers.pm:42 +#: NOT FOUND IN SOURCE +msgid "%1 was created without a CurrentUser\\n" +msgstr "" + +#: lib/RT/Action/ResolveMembers.pm:41 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 закроет вÑе тикеты, входÑщие в групповой запроÑ" @@ -219,22 +343,72 @@ msgstr "%1 закроет вÑе тикеты, входÑщие в группо msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 отложит тикеты, которые завиÑÑÑ‚ запроÑа или включены в него" -#: lib/RT/Transaction_Overlay.pm:435 +#: NOT FOUND IN SOURCE +msgid "%1 הוסף כערך עבור %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 לפני %2 ימי×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 על ידי %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 פעולת-סקריפ נטענה" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 שונה מ %2 ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2 objects" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1: без вложений" -#: html/Ticket/Elements/ShowTransaction:102 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "" -#: html/Ticket/Elements/ShowTransaction:99 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1140 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' ÑвлÑетÑÑ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¼ значением ÑтатуÑа" @@ -243,38 +417,69 @@ msgstr "'%1' ÑвлÑетÑÑ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¼ значением ÑтатуÑа 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/EditQueueWatchers:29 html/Admin/Elements/EditScrips:35 html/Admin/Elements/EditTemplates:36 html/Admin/Groups/Members.html:52 html/Ticket/Elements/EditLinks:33 html/Ticket/Elements/EditPeople:46 html/User/Groups/Members.html:55 +#: 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 "(Пометьте то, что хотите удалить)" +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "" + #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Введите номера или ÑÑылки на тикеты. ÐеÑколько тикетов разделÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸.)" -#: html/Admin/Queues/Modify.html:54 html/Admin/Queues/Modify.html:60 +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + +#: 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 "(ЕÑли пуÑтое, то по умолчанию равно %1" -#: html/Admin/Elements/EditCustomFields:33 html/Admin/Elements/ListGlobalCustomFields:32 +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 msgid "(No custom fields)" msgstr "(Ðет дополнительных полей)" -#: html/Admin/Groups/Members.html:50 html/User/Groups/Members.html:53 +#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 msgid "(No members)" msgstr "(Ðет пользователей)" -#: html/Admin/Elements/EditScrips:32 html/Admin/Elements/ListGlobalScrips:32 +#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 msgid "(No scrips)" msgstr "(Ðет Ñкриптов)" -#: html/Admin/Elements/EditTemplates:31 +#: html/Admin/Elements/EditTemplates:30 msgid "(No templates)" msgstr "(Ðет шаблонов)" -#: html/Ticket/Update.html:85 +#: NOT FOUND IN SOURCE +msgid "(None)" +msgstr "" + +#: 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 "(Ðа Ñти адреÑа [разделенные запÑтой] отправлÑÑŽÑ‚ÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ ÑообщениÑ. ÐдреÑа <b>не</b> ÑохранÑÑŽÑ‚ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" @@ -282,11 +487,11 @@ msgstr "(Ðа Ñти адреÑа [разделенные запÑтой] отп 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/Create.html:79 +#: 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 "(Ðа Ñти адреÑа [разделенные запÑтой] отправлÑÑŽÑ‚ÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ ÑообщениÑ. ÐдреÑа <b>ÑохранÑÑŽÑ‚ÑÑ</b> Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" -#: html/Ticket/Update.html:81 +#: 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 "(Ðа Ñти адреÑа [разделенные запÑтой] отправлÑÑŽÑ‚ÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ ÑообщениÑ. ÐдреÑа <b>не</b> ÑохранÑÑŽÑ‚ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" @@ -294,46 +499,74 @@ msgstr "(Ðа Ñти адреÑа [разделенные запÑтой] отп 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 "(Ðа Ñти адреÑа [разделенные запÑтой] отправлÑÑŽÑ‚ÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ ÑообщениÑ. ÐдреÑа не ÑохранÑÑŽÑ‚ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" -#: html/Ticket/Create.html:69 +#: 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 "(Ðа Ñти адреÑа [разделенные запÑтой] отправлÑÑŽÑ‚ÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ ÑообщениÑ. ÐдреÑа <b>ÑохранÑÑŽÑ‚ÑÑ</b> Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" -#: html/Admin/Groups/index.html:33 html/User/Groups/index.html:33 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 msgid "(empty)" msgstr "(пуÑто)" -#: html/Admin/Users/index.html:39 +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + +#: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "(не указано имен)" -#: html/Elements/MyRequests:43 html/Elements/MyTickets:45 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(без темы)" -#: html/Admin/Elements/SelectRights:48 html/Elements/SelectCustomFieldValue:30 html/Ticket/Elements/EditCustomField:59 html/Ticket/Elements/ShowCustomFields:36 lib/RT/Transaction_Overlay.pm:536 +#: 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 "(нет значениÑ)" -#: html/Ticket/Elements/EditLinks:116 +#: NOT FOUND IN SOURCE +msgid "(no values)" +msgstr "" + +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(только один тикет)" -#: html/Elements/MyRequests:52 html/Elements/MyTickets:55 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(в ожидании визы)" -#: html/Elements/MyRequests:54 html/Elements/MyTickets:57 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(в ожидании других тикетов)" -#: html/Admin/Users/Modify.html:50 +#: NOT FOUND IN SOURCE +msgid "(requestor's group)" +msgstr "" + +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "(требуетÑÑ)" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(без названиÑ)" +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "25 важнейших моих тикетов..." @@ -342,124 +575,195 @@ msgstr "25 важнейших моих тикетов..." msgid "25 highest priority tickets I requested..." msgstr "25 Ñамых важных моих запроÑов..." -#: html/Ticket/Elements/ShowBasics:32 +#: html/Ticket/Elements/ShowBasics:31 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:27 +#: html/Elements/SelectTicketTypes:26 msgid "<% $_ %>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:26 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +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=\"Создать тикет в очереди\"> %1" -#: etc/initialdata:203 +#: NOT FOUND IN SOURCE +msgid "??????" +msgstr "" + +#: etc/initialdata:218 msgid "A blank template" msgstr "ПуÑтой шаблон" -#: lib/RT/ACE_Overlay.pm:157 lib/RT/Principal_Overlay.pm:181 +#: NOT FOUND IN SOURCE +msgid "ACE Deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Loaded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be found" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 msgid "ACE not found" msgstr "ACE не найден" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "ACEÑ‹ можно только Ñоздавать и удалÑть" -#: bin/rt-commit-handler:755 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Прекращаем работу во избежание нежелательного Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð°.\\n" -#: html/User/Elements/Tabs:32 +#: html/User/Elements/Tabs:31 msgid "About me" msgstr "Обо мне" -#: html/Admin/Users/Modify.html:80 +#: html/Admin/Users/Modify.html:79 msgid "Access control" msgstr "Права доÑтупа" -#: html/Admin/Elements/EditScrip:57 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "ДейÑтвие" -#: lib/RT/Scrip_Overlay.pm:147 +#: lib/RT/Scrip_Overlay.pm:148 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "дейÑтвие %1 не найдено" -#: bin/rt-crontool:123 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "ДейÑтвие принÑто." -#: bin/rt-crontool:119 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "ДейÑтвие подготовлено..." -#: html/Search/Bulk.html:92 +#: html/Search/Build.html:43 +msgid "Add" +msgstr "" + +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "Добавить админиÑтративную копию" -#: html/Search/Bulk.html:90 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "Добавить копию" -#: html/Ticket/Create.html:114 html/Ticket/Update.html:100 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "" + +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "Добавить еще файлы" -#: html/Search/Bulk.html:88 +#: NOT FOUND IN SOURCE +msgid "Add Next State" +msgstr "" + +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "Добавить проÑителÑ" +#: html/Admin/Elements/AddCustomFieldValue:24 +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:55 +#: html/Admin/Global/Scrip.html:54 msgid "Add a scrip which will apply to all queues" msgstr "Добавить Ñкрипт, который будет дейÑтвовать на вÑе очереди" -#: html/Search/Bulk.html:118 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "Добавить комментарии или ответы на выбранные тикеты" -#: html/Admin/Groups/Members.html:42 html/User/Groups/Members.html:39 +#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 msgid "Add members" msgstr "Добавить пользователей" -#: html/Admin/Queues/People.html:66 html/Ticket/Elements/AddWatchers:28 +#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 msgid "Add new watchers" msgstr "Добавить наблюдателей" -#: lib/RT/Queue_Overlay.pm:643 +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 Ð´Ð»Ñ Ñтой очереди" -#: lib/RT/Ticket_Overlay.pm:1454 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 Ð´Ð»Ñ Ñтого тикета" -#: html/Admin/Elements/ModifyUser:76 html/Admin/Users/Modify.html:122 html/User/Prefs.html:88 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "ÐдреÑ1" -#: html/Admin/Elements/ModifyUser:78 html/Admin/Users/Modify.html:127 html/User/Prefs.html:90 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "ÐдреÑ2" -#: html/Ticket/Create.html:74 +#: html/Ticket/Create.html:73 msgid "Admin Cc" msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" -#: etc/initialdata:274 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "Комментарий админа" -#: etc/initialdata:256 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "" -#: html/Admin/Queues/index.html:25 html/Admin/Queues/index.html:28 +#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 msgid "Admin queues" msgstr "Управление очередÑми" @@ -467,7 +771,7 @@ msgstr "Управление очередÑми" msgid "Admin users" msgstr "Управление пользователÑми" -#: html/Admin/Global/index.html:26 html/Admin/Global/index.html:28 +#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 msgid "Admin/Global configuration" msgstr "Общие наÑтройки" @@ -475,15 +779,31 @@ msgstr "Общие наÑтройки" msgid "Admin/Groups" msgstr "Группы" -#: html/Admin/Queues/Modify.html:25 html/Admin/Queues/Modify.html:29 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "Параметры очереди" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:39 html/Ticket/Update.html:50 lib/RT/ACE_Overlay.pm:89 +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" -#: lib/RT/Queue_Overlay.pm:72 +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AdminCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "" @@ -495,61 +815,128 @@ msgstr "" msgid "AdminGroupMembership" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "AdminOwnPersonalGroups" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "AdminUsers" msgstr "" -#: html/Admin/Queues/People.html:48 html/Ticket/Elements/EditPeople:54 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" -#: html/Elements/SelectDateRelation:36 +#: NOT FOUND IN SOURCE +msgid "Admins" +msgstr "" + +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + +#: html/Elements/SelectDateRelation:35 msgid "After" msgstr "ПоÑле" -#: html/Admin/Elements/EditCustomFields:96 +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias for" +msgstr "" + +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Ð’Ñе дополнительные полÑ" -#: html/Admin/Queues/index.html:53 +#: html/Admin/Queues/index.html:52 msgid "All Queues" msgstr "Ð’Ñе очереди" +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Applies to" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "" + +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "" + #: html/Elements/Tabs:58 msgid "Approval" msgstr "Виза" -#: html/Approvals/Display.html:46 html/Approvals/Elements/Approve:27 html/Approvals/Elements/ShowDependency:42 html/Approvals/index.html:65 +#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 #. ($Ticket->Id, $Ticket->Subject) #. ($ticket->id, $msg) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Approval #%1: %2" msgstr "Виза #%1: %2" -#: html/Approvals/index.html:54 +#: html/Approvals/index.html:53 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Виза #%1: ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð½Ðµ Ñохранены из-за ошибки ÑиÑтемы" -#: html/Approvals/index.html:52 +#: html/Approvals/index.html:51 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Виза #%1: ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñаны" -#: html/Approvals/Elements/Approve:45 +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "" + +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "" + +#: html/Approvals/Elements/Approve:43 msgid "Approve" msgstr "Завизировать" -#: etc/initialdata:431 etc/upgrade/2.1.71:148 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "" @@ -561,47 +948,84 @@ msgstr "Ðпр." msgid "April" msgstr "" -#: html/Elements/SelectSortOrder:35 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "Ð’ порÑдке возраÑтаниÑ" -#: html/Search/Bulk.html:127 html/SelfService/Update.html:36 html/Ticket/ModifyAll.html:83 html/Ticket/Update.html:100 +#: NOT FOUND IN SOURCE +msgid "Assign and remove custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AssignCustomFields" +msgstr "" + +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "Вложение" -#: html/SelfService/Create.html:67 html/Ticket/Create.html:110 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "Вложить файл" -#: html/Ticket/Create.html:98 html/Ticket/Update.html:89 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "Вложенный файл" -#: html/SelfService/Attachment/dhandler:36 +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Вложение '%1' не может быть загружено" -#: lib/RT/Transaction_Overlay.pm:443 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "Создано вложение" -#: lib/RT/Tickets_Overlay.pm:1189 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" -#: html/Ticket/Elements/ShowAttachments:26 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "ВложениÑ" +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "" + #: lib/RT/Date.pm:418 msgid "Aug." msgstr "Ðвг." -#: html/Admin/Elements/ModifyUser:66 +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "Тип региÑтрации" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "Ðвтоответ" @@ -609,37 +1033,43 @@ msgstr "Ðвтоответ" msgid "Autoreply To Requestors" msgstr "Ðвтоответ инициатору запроÑа" +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "" + +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ PGP: %1\\n" -#: html/SelfService/Attachment/dhandler:40 +#: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "Ðеверный идентификатор вложениÑ. ОтÑутÑтвует вложение '%1'\\n" -#: bin/rt-commit-handler:827 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð° в %1" -#: html/SelfService/Attachment/dhandler:43 -#. ($trans, $AttachmentObj->TransactionId()) +#: NOT FOUND IN SOURCE msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Ðеправильный номер транзакции Ð´Ð»Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ. %1 должен быть %2\\n" -#: html/Admin/Elements/GroupTabs:39 html/Admin/Elements/QueueTabs:39 html/Admin/Elements/UserTabs:38 html/Ticket/Elements/Tabs:90 html/User/Elements/GroupTabs:38 +#: 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 "Главное" -#: html/Ticket/Update.html:83 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" -#: html/Admin/Elements/EditScrip:88 html/Admin/Global/GroupRights.html:85 html/Admin/Global/Template.html:46 html/Admin/Global/UserRights.html:54 html/Admin/Groups/GroupRights.html:73 html/Admin/Groups/Members.html:81 html/Admin/Groups/Modify.html:56 html/Admin/Groups/UserRights.html:55 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:45 html/Admin/Queues/UserRights.html:54 html/User/Groups/Modify.html:56 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "Ðе забудьте Ñохранить наÑтройки" -#: html/Elements/SelectDateRelation:34 lib/RT/CurrentUser.pm:322 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "До" @@ -647,83 +1077,131 @@ msgstr "До" msgid "Begin Approval" msgstr "" -#: etc/initialdata:202 +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "" + +#: etc/initialdata:217 msgid "Blank" msgstr "" -#: html/Search/Listing.html:79 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "Получить URL Ð´Ð»Ñ Ñтого поиÑка" -#: html/Ticket/Elements/ShowHistory:39 html/Ticket/Elements/ShowHistory:45 +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + +#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "Сокращенный" -#: html/Search/Bulk.html:25 html/Search/Bulk.html:26 +#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 msgid "Bulk ticket update" msgstr "Изменение одним махом" -#: lib/RT/User_Overlay.pm:1331 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "Ðе могу изменÑть ÑиÑтемных пользователей" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "" -#: lib/RT/CustomField_Overlay.pm:144 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "Ðе могу добавить значение Ð¿Ð¾Ð»Ñ Ð±ÐµÐ· имени" -#: lib/RT/Link_Overlay.pm:132 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "Тикет не может быть ÑвÑзан Ñ Ñамим Ñобой" -#: lib/RT/Ticket_Overlay.pm:2787 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Ðе могу Ñоединить Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð½Ñ‹Ð¼ тикетом (Ñта ошибка никогда не должна проиÑходить)." -#: lib/RT/Ticket_Overlay.pm:2605 lib/RT/Ticket_Overlay.pm:2674 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "Ðе могу указать одновременно и иÑточник, и Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ" -#: html/autohandler:112 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "Ðе могу Ñоздать пользователÑ: %1" -#: etc/initialdata:50 html/Admin/Queues/People.html:44 html/SelfService/Create.html:51 html/SelfService/Display.html:50 html/Ticket/Create.html:64 html/Ticket/Elements/EditPeople:51 html/Ticket/Elements/ShowPeople:35 html/Ticket/Update.html:45 html/Ticket/Update.html:78 lib/RT/ACE_Overlay.pm:88 +#: 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 "КопиÑ" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:30 msgid "Change password" msgstr "Сменить пароль" -#: html/Ticket/Create.html:101 html/Ticket/Update.html:92 +#: NOT FOUND IN SOURCE +msgid "Check All" +msgstr "" + +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "" -#: html/Admin/Elements/SelectRights:31 +#: html/Admin/Elements/SelectRights:30 msgid "Check box to revoke right" msgstr "Выберите права, которые хотите отозвать" -#: html/Ticket/Create.html:183 html/Ticket/Elements/EditLinks:131 html/Ticket/Elements/EditLinks:69 html/Ticket/Elements/ShowLinks:51 +#: 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 "Потомки" -#: html/Admin/Elements/ModifyUser:80 html/Admin/Users/Modify.html:132 html/User/Prefs.html:92 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "Город" +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Clear All" +msgstr "" + #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "" -#: html/SelfService/Elements/Tabs:60 +#: html/SelfService/Closed.html:24 +msgid "Closed Tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Закрытые запроÑÑ‹" +#: html/SelfService/Elements/Tabs:44 +msgid "Closed tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Code" msgstr "" @@ -732,11 +1210,11 @@ msgstr "" msgid "Command not understood!\\n" msgstr "Чего-чего?\\n" -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:153 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "Комментировать" -#: html/Admin/Elements/ModifyQueue:45 html/Admin/Queues/Modify.html:58 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ²" @@ -744,40 +1222,39 @@ msgstr "ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ²" msgid "Comment not recorded" msgstr "Комментарий не запиÑан" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "" -#: html/Admin/Elements/ModifyUser:35 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "Комментарии" -#: html/Ticket/ModifyAll.html:70 html/Ticket/Update.html:70 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "Комментарии (Ðе отправлÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾ÑителÑм)" -#: html/Search/Bulk.html:122 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "Комментарии (не отправлÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ñителю)" -#: html/Elements/ViewUser:27 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ %1" -#: html/Admin/Users/Modify.html:185 html/Ticket/Elements/ShowRequestor:44 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± Ñтом пользователе" -#: lib/RT/Transaction_Overlay.pm:545 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "Добавлены комментарии" -#: lib/RT/Action/Generic.pm:140 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "ДейÑтвие не реализовано" @@ -789,11 +1266,11 @@ msgstr "Применить ограничениÑ" msgid "Condition" msgstr "УÑловие" -#: bin/rt-crontool:109 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "ПодходÑщее уÑловие..." -#: lib/RT/Scrip_Overlay.pm:160 +#: lib/RT/Scrip_Overlay.pm:164 msgid "Condition not found" msgstr "УÑловие не найдено" @@ -801,11 +1278,11 @@ msgstr "УÑловие не найдено" msgid "Configuration" msgstr "ÐаÑтройка" -#: html/SelfService/Prefs.html:33 +#: html/SelfService/Prefs.html:32 msgid "Confirm" msgstr "Подтвердить" -#: html/Admin/Elements/ModifyUser:60 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "ÐšÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" @@ -813,23 +1290,31 @@ msgstr "ÐšÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" msgid "Contacted date '%1' could not be parsed" msgstr "Ðе могу разобрать дату поÑледнего контакта '%1'" -#: html/Admin/Elements/ModifyTemplate:44 html/Ticket/ModifyAll.html:87 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "ТекÑÑ‚" +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "" -#: etc/initialdata:266 +#: html/Search/Elements/EditSearches:16 +msgid "Copy" +msgstr "" + +#: etc/initialdata:286 msgid "Correspondence" msgstr "" -#: html/Admin/Elements/ModifyQueue:39 html/Admin/Queues/Modify.html:51 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ Ñообщений" -#: lib/RT/Transaction_Overlay.pm:541 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "Добавлено Ñообщение" @@ -837,7 +1322,7 @@ msgstr "Добавлено Ñообщение" msgid "Correspondence not recorded" msgstr "Сообщение не запиÑано" -#: lib/RT/Ticket_Overlay.pm:3458 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "Ðе могу добавить новое поле Ñ Ñ‚Ð°ÐºÐ¸Ð¼ значением." @@ -845,29 +1330,29 @@ msgstr "Ðе могу добавить новое поле Ñ Ñ‚Ð°ÐºÐ¸Ð¼ зна msgid "Could not add new custom field value for ticket. %1 " msgstr "" -#: lib/RT/Ticket_Overlay.pm:2963 lib/RT/Ticket_Overlay.pm:2971 lib/RT/Ticket_Overlay.pm:2987 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "Ðе могу Ñменить владельца. " -#: html/Admin/Elements/EditCustomField:68 html/Admin/Elements/EditCustomFields:166 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "Ðе могу добавить поле" -#: html/User/Groups/Modify.html:77 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "Ðе могу Ñоздать группу" -#: html/Admin/Global/Template.html:75 html/Admin/Queues/Template.html:72 +#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 #. ($msg) msgid "Could not create template: %1" msgstr "Ðе могу Ñоздать шаблон: %1" -#: lib/RT/Ticket_Overlay.pm:1073 lib/RT/Ticket_Overlay.pm:333 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "Ðе могу Ñоздать тикет. Очередь не определена." -#: lib/RT/User_Overlay.pm:208 lib/RT/User_Overlay.pm:220 lib/RT/User_Overlay.pm:238 lib/RT/User_Overlay.pm:414 +#: 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 "Ðе могу Ñоздать пользователÑ" @@ -875,7 +1360,7 @@ msgstr "Ðе могу Ñоздать пользователÑ" msgid "Could not create watcher for requestor" msgstr "Ðе могу Ñоздать Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ñ‚Ð¾Ñ€Ð° запроÑа" -#: NOT FOUND IN SOURCÐе могу Ñоздать Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ñ‚Ð¾Ñ€Ð° запроÑаE +#: NOT FOUND IN SOURCE msgid "Could not find a ticket with id %1" msgstr "Ðе могу найти тикет по идентификатору %1" @@ -883,11 +1368,11 @@ msgstr "Ðе могу найти тикет по идентификатору %1 msgid "Could not find group %1." msgstr "Ðе найдена группа %1." -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1422 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "Ðе могу найти или Ñоздать Ñтого пользователÑ" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1501 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "Ðе могу найти Ñтого пользователÑ" @@ -895,35 +1380,42 @@ msgstr "Ðе могу найти Ñтого пользователÑ" msgid "Could not find user %1." msgstr "Ðе найден пользователь %1." -#: html/Admin/Groups/Members.html:88 html/User/Groups/Members.html:90 html/User/Groups/Modify.html:82 +#: NOT FOUND IN SOURCE +msgid "Could not load CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "Ðе могу загрузить группу" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Ðе могу назначить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1 Ð´Ð»Ñ Ñтой очереди" -#: lib/RT/Ticket_Overlay.pm:1443 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Ðе могу назначить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1 Ð´Ð»Ñ Ñтого тикета" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Ðе могу отобрать функции у Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 в Ñтой очереди" -#: lib/RT/Ticket_Overlay.pm:1559 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "Ðе могу отобрать функции у Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 Ð´Ð»Ñ Ñтого тикета" -#: lib/RT/Group_Overlay.pm:985 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "Ðе могу добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² группу" -#: lib/RT/Ticket_Overlay.pm:3468 lib/RT/Ticket_Overlay.pm:3524 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Ðе могу Ñоздать транзакцию: %1" @@ -936,15 +1428,15 @@ msgstr "Ðе пойму что делать из ответа gpg\\n" msgid "Couldn't find group\\n" msgstr "Ðе найти группу\\n" -#: lib/RT/Interface/Web.pm:866 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "" -#: lib/RT/Group_Overlay.pm:959 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "Ðе найти Ñтого пользователÑ" -#: lib/RT/CustomField_Overlay.pm:175 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "Ðе найти Ñтого значениÑ" @@ -956,11 +1448,19 @@ msgstr "Ðе могу найти данного наблюдателÑ" msgid "Couldn't find user\\n" msgstr "Пользователь не найден\\n" -#: lib/RT/CurrentUser.pm:112 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Ðе загрузить %1 из базы пользователей.\\n" +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "" @@ -973,21 +1473,25 @@ msgstr "Ðе загрузить файл наÑтроек RT '%1' %2" msgid "Couldn't load Scrips." msgstr "" -#: html/Admin/Groups/GroupRights.html:88 html/Admin/Groups/UserRights.html:75 +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "Ðе загрузить группу %1" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "Ðе загрузить ÑÑылку" -#: html/Admin/Elements/EditCustomFields:147 html/Admin/Queues/People.html:121 +#: NOT FOUND IN SOURCE +msgid "Couldn't load object %1" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "Ðе загрузить очередь" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:72 +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "Ðе загрузить очередь %1" @@ -1000,38 +1504,41 @@ msgstr "Ðе загрузить Ñкрипт" msgid "Couldn't load template" msgstr "Ðе загрузить шаблон" -#: html/Admin/Users/Prefs.html:79 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "Ðе загрузить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (%1)" -#: html/SelfService/Display.html:166 +#: html/SelfService/Display.html:116 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Ðе загрузить тикет '%1'" -#: html/Admin/Elements/ModifyUser:86 html/Admin/Users/Modify.html:149 html/User/Prefs.html:98 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "Страна" -#: html/Admin/Elements/CreateUserCalled:26 html/Ticket/Create.html:135 html/Ticket/Create.html:195 +#: 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 "Создать" -#: etc/initialdata:128 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "" -#: html/Admin/Elements/EditCustomField:58 +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + +#: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "Добавить поле" -#: html/Admin/Queues/CustomField.html:48 +#: html/Admin/Queues/CustomField.html:47 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Создать дополнительное поле Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ 1" -#: html/Admin/Global/CustomField.html:48 +#: html/Admin/Global/CustomField.html:47 msgid "Create a CustomField which applies to all queues" msgstr "Создать дополнительное поле Ð´Ð»Ñ Ð²Ñех очередей" @@ -1039,6 +1546,10 @@ msgstr "Создать дополнительное поле Ð´Ð»Ñ Ð²Ñех о msgid "Create a new Custom Field" msgstr "Добавить новое поле" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "" @@ -1047,11 +1558,11 @@ msgstr "" msgid "Create a new global scrip" msgstr "" -#: html/Admin/Groups/Modify.html:67 html/Admin/Groups/Modify.html:93 +#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 msgid "Create a new group" msgstr "Добавить новую группу" -#: html/User/Groups/Modify.html:67 html/User/Groups/Modify.html:92 +#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 msgid "Create a new personal group" msgstr "Добавить новую личную группу" @@ -1067,11 +1578,11 @@ msgstr "Добавить новый Ñкрипт" msgid "Create a new template" msgstr "Добавить новый шаблон" -#: html/SelfService/Create.html:30 html/Ticket/Create.html:25 html/Ticket/Create.html:28 html/Ticket/Create.html:36 +#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 msgid "Create a new ticket" msgstr "Добавить новый тикет" -#: html/Admin/Users/Modify.html:214 html/Admin/Users/Modify.html:241 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "Добавить нового пользователÑ" @@ -1083,19 +1594,31 @@ msgstr "Создать очередь" msgid "Create a queue called" msgstr "Создать очередь Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼" -#: html/SelfService/Create.html:25 html/SelfService/Create.html:27 +#: NOT FOUND IN SOURCE msgid "Create a request" msgstr "Создать запроÑ" -#: html/Admin/Queues/Scrip.html:59 +#: html/Admin/Queues/Scrip.html:58 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Создать Ñкрипт Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" -#: html/Admin/Global/Template.html:69 html/Admin/Queues/Template.html:65 +#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 msgid "Create a template" msgstr "Создать запроÑ" +#: html/SelfService/Create.html:24 +msgid "Create a ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "" @@ -1104,23 +1627,23 @@ msgstr "" msgid "Create failed: %1/%2/%3" msgstr "" -#: etc/initialdata:130 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "" -#: html/SelfService/Create.html:81 +#: html/SelfService/Create.html:77 msgid "Create ticket" msgstr "Создать тикет" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "" @@ -1128,105 +1651,129 @@ msgstr "" msgid "Create, delete and modify the members of any user's personal groups" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:58 msgid "Create, delete and modify the members of personal groups" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:59 msgid "Create, delete and modify users" msgstr "" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "Создать тикет" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1167 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "Создан" -#: html/Admin/Elements/EditCustomField:71 +#: html/Admin/Elements/EditCustomField:87 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Добавлено поле %1" +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Создан шаблон %1" -#: html/Ticket/Elements/EditLinks:28 -msgid "Current Relationships" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "" + +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "Текущие ÑвÑзи" -#: html/Admin/Elements/EditScrips:30 +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "" + +#: html/Admin/Elements/EditScrips:29 msgid "Current Scrips" msgstr "Текущие Ñкрипты" -#: html/Admin/Groups/Members.html:39 html/User/Groups/Members.html:42 +#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 msgid "Current members" msgstr "Текущие пользователи" -#: html/Admin/Elements/SelectRights:29 +#: html/Admin/Elements/SelectRights:28 msgid "Current rights" msgstr "Текущие права" -#: html/Search/Listing.html:71 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "Текущие критерии поиÑка" -#: html/Admin/Queues/People.html:41 html/Ticket/Elements/EditPeople:45 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "Текущие наблюдатели" -#: html/Admin/Global/CustomField.html:55 +#: html/Admin/Global/CustomField.html:54 #. ($CustomField) msgid "Custom Field #%1" msgstr "Дополнительное поле #%1" -#: html/Admin/Elements/QueueTabs:53 html/Admin/Elements/SystemTabs:40 html/Admin/Global/index.html:50 html/Ticket/Elements/ShowSummary:35 +#: 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 "Дополнительные полÑ" -#: html/Admin/Elements/EditScrip:73 +#: NOT FOUND IN SOURCE +msgid "Custom Fields for %1" +msgstr "" + +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "ПользовательÑкий код очиÑтки" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "ПользовательÑкий подготовительный код" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "ПользовательÑкое уÑловие" -#: lib/RT/Tickets_Overlay.pm:1618 +#: lib/RT/Tickets_Overlay.pm:1693 #. ($CF->Name , $args{OPERATOR} , $args{VALUE}) msgid "Custom field %1 %2 %3" msgstr "Дополнительное поле %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1613 +#: NOT FOUND IN SOURCE +msgid "Custom field %1 does not apply to this object" +msgstr "" + +#: lib/RT/Tickets_Overlay.pm:1688 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Дополнительное поле %1 имеет значение." -#: lib/RT/Tickets_Overlay.pm:1610 +#: lib/RT/Tickets_Overlay.pm:1685 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Дополнительное поле %1 не имеет значениÑ." -#: lib/RT/Ticket_Overlay.pm:3360 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Дополнительное поле %1 не найдено" -#: html/Admin/Elements/EditCustomFields:197 +#: html/Admin/Elements/EditCustomFields:195 msgid "Custom field deleted" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3510 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "Дополнительное поле не найдено" -#: lib/RT/CustomField_Overlay.pm:283 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "Значение %1 не может быть найдено Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ %2" @@ -1235,19 +1782,19 @@ msgstr "Значение %1 не может быть найдено Ð´Ð»Ñ Ð¿Ð¾ msgid "Custom field value changed from %1 to %2" msgstr "Значение Ð¿Ð¾Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾ Ñ %1 на %2" -#: lib/RT/CustomField_Overlay.pm:185 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "Значение дополнительного Ð¿Ð¾Ð»Ñ Ð½Ðµ может быть удалено" -#: lib/RT/CustomField_Overlay.pm:289 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "Значение дополнительного Ð¿Ð¾Ð»Ñ Ð½Ðµ найдено" -#: lib/RT/CustomField_Overlay.pm:183 lib/RT/CustomField_Overlay.pm:291 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "Значение дополнительного Ð¿Ð¾Ð»Ñ Ð±Ñ‹Ð»Ð¾ удалено" -#: lib/RT/Transaction_Overlay.pm:550 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "" @@ -1255,7 +1802,7 @@ msgstr "" msgid "Data error" msgstr "" -#: html/Ticket/Create.html:161 html/Ticket/Elements/ShowSummary:53 html/Ticket/Elements/Tabs:93 html/Ticket/ModifyAll.html:44 +#: 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 "Даты" @@ -1263,72 +1810,112 @@ msgstr "Даты" msgid "Dec." msgstr "Дек." -#: etc/initialdata:207 +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "" + +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Шаблон автоответа по умолчанию" -#: etc/initialdata:275 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "Шаблон ответа админа по умолчанию" -#: etc/initialdata:257 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "" -#: etc/initialdata:267 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "Шаблон транзакции по умолчанию" -#: lib/RT/Transaction_Overlay.pm:645 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "" -#: html/User/Delegation.html:25 html/User/Delegation.html:28 +#: html/User/Delegation.html:24 html/User/Delegation.html:27 msgid "Delegate rights" msgstr "Передача прав" -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "Delegate specific rights which have been granted to you." msgstr "Делегирование отдельных прав, которые вам даны." -#: lib/RT/System.pm:63 +#: lib/RT/System.pm:62 msgid "DelegateRights" msgstr "" -#: html/User/Elements/Tabs:38 +#: html/User/Elements/Tabs:37 msgid "Delegation" msgstr "Делегирование прав" -#: lib/RT/Queue_Overlay.pm:90 +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +msgid "Delete" +msgstr "" + +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + +#: html/Admin/Elements/EditScrips:52 +msgid "Delete selected scrips" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "Удаление тикетов" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:187 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "Удаление Ñтого объекта может нарушить ÑÑылочную целоÑтноÑть" -#: lib/RT/Queue_Overlay.pm:292 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "Удаление Ñтого объекта нарушит ÑÑылочную целоÑтноÑть" -#: lib/RT/User_Overlay.pm:430 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "Удаление Ñтого объекта нарушит ÑÑылочную целоÑтноÑть" -#: html/Approvals/Elements/Approve:46 +#: 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:44 msgid "Deny" msgstr "Отказать" -#: html/Ticket/Create.html:181 html/Ticket/Elements/EditLinks:123 html/Ticket/Elements/EditLinks:47 html/Ticket/Elements/ShowDependencies:32 html/Ticket/Elements/ShowLinks:35 +#: 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 "От него завиÑÑÑ‚" @@ -1336,7 +1923,27 @@ msgstr "От него завиÑÑÑ‚" msgid "Dependencies: \\n" msgstr "ЗавиÑимоÑти: \\n" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:180 html/Ticket/Elements/EditLinks:119 html/Ticket/Elements/EditLinks:36 html/Ticket/Elements/ShowDependencies:25 html/Ticket/Elements/ShowLinks:27 +#: lib/RT/Transaction_Overlay.pm:621 +#. ($value) +msgid "Dependency by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:618 +#. ($value) +msgid "Dependency on %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:658 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "" + +#: 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 "ЗавиÑит от" @@ -1344,64 +1951,83 @@ msgstr "ЗавиÑит от" msgid "DependsOn" msgstr "" -#: html/Elements/SelectSortOrder:35 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "Ð’ порÑдке убываниÑ" -#: html/SelfService/Create.html:75 html/Ticket/Create.html:119 +#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 msgid "Describe the issue below" msgstr "Опишите проблему" -#: html/Admin/Elements/AddCustomFieldValue:27 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyQueue:36 html/Admin/Elements/ModifyTemplate:36 html/Admin/Groups/Modify.html:49 html/Admin/Queues/Modify.html:48 html/Elements/SelectGroups:27 html/User/Groups/Modify.html:49 +#: 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 "ОпиÑание" -#: html/SelfService/Elements/MyRequests:44 +#: NOT FOUND IN SOURCE msgid "Details" msgstr "ПодробноÑти" -#: html/Ticket/Elements/Tabs:85 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "Показать" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "" -#: lib/RT/Queue_Overlay.pm:75 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "" -#: html/Ticket/Elements/ShowHistory:35 +#: html/Ticket/Elements/ShowHistory:34 msgid "Display mode" msgstr "Режим показа" -#: html/SelfService/Display.html:25 html/SelfService/Display.html:29 -#. ($Ticket->id) +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Показать тикет #%1" -#: lib/RT/System.pm:54 +#: html/Elements/Footer:38 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "" + +#: lib/RT/System.pm:53 msgid "Do anything and everything" msgstr "" -#: html/Elements/Refresh:30 +#: html/Elements/Refresh:29 msgid "Don't refresh this page." msgstr "Ðе обновлÑть Ñту Ñтраницу" -#: html/Search/Elements/PickRestriction:114 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "Ðе показывать результаты поиÑка" -#: html/Ticket/Elements/ShowTransaction:105 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "Скачать" -#: html/Elements/SelectDateType:32 html/Ticket/Create.html:167 html/Ticket/Elements/EditDates:45 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1171 +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download as a tab-delimited file" +msgstr "" + +#: 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 "Дан Ñрок" @@ -1409,8 +2035,7 @@ msgstr "Дан Ñрок" msgid "Due date '%1' could not be parsed" msgstr "Ðе могу прочеÑть Ñрок Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ñ‹ '%1'" -#: bin/rt-commit-handler:754 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "ОШИБКÐ: Ðе могу загрузить тикет '%1': %2.\\n" @@ -1427,10 +2052,22 @@ msgstr "" msgid "Edit Custom Fields for %1" msgstr "Изменение дополнительных полей Ð´Ð»Ñ %1" -#: html/Ticket/ModifyLinks.html:36 -msgid "Edit Relationships" +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "Изменение ÑвÑзей" +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit Relationships" +msgstr "" + #: html/Admin/Queues/Templates.html:41 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" @@ -1440,11 +2077,15 @@ msgstr "Редактировать шаблоны Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" msgid "Edit keywords" msgstr "" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "" -#: html/Admin/Global/index.html:46 +#: html/Admin/Global/index.html:45 msgid "Edit system templates" msgstr "Изменение ÑиÑтемных шаблонов" @@ -1452,28 +2093,34 @@ msgstr "Изменение ÑиÑтемных шаблонов" msgid "Edit templates for %1" msgstr "Изменение шаблонов Ð´Ð»Ñ %1" -#: html/Admin/Elements/ModifyQueue:25 html/Admin/Queues/Modify.html:117 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "Изменение наÑтроек очереди %1" -#: html/Admin/Elements/ModifyUser:25 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "Изменение наÑтроек Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/Elements/EditCustomField:90 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Изменение Ð¿Ð¾Ð»Ñ %1" -#: html/Admin/Groups/Members.html:32 +#: html/Admin/Groups/Members.html:31 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Пользователи в группе %1" -#: html/User/Groups/Members.html:129 +#: html/User/Groups/Members.html:128 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Пользователи в личной группе %1" @@ -1482,112 +2129,176 @@ msgstr "Пользователи в личной группе %1" msgid "Editing template %1" msgstr "Изменение шаблона %1" -#: lib/RT/Ticket_Overlay.pm:2615 lib/RT/Ticket_Overlay.pm:2683 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "Ðужно указать либо иÑточник, либо Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ" -#: html/Admin/Users/Modify.html:53 html/Admin/Users/Prefs.html:46 html/Elements/SelectUsers:27 html/Ticket/Elements/AddWatchers:56 html/User/Prefs.html:42 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "Email" -#: lib/RT/User_Overlay.pm:188 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "Email уже занÑÑ‚" -#: html/Admin/Elements/ModifyUser:42 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "EmailAddress" -#: html/Admin/Elements/ModifyUser:54 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "EmailEncoding" -#: html/Admin/Elements/EditCustomField:36 +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + +#: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Разрешено (ÑнÑтие отметки запрещает данное дополнительное поле)" -#: html/Admin/Groups/Modify.html:53 html/User/Groups/Modify.html:53 +#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 msgid "Enabled (Unchecking this box disables this group)" msgstr "Разрешено (ÑнÑтие отметки запрещает данную группу)" -#: html/Admin/Queues/Modify.html:84 +#: html/Admin/Queues/Modify.html:83 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Включена (СнÑÑ‚Ð°Ñ Ð³Ð°Ð»Ð¾Ñ‡ÐºÐ° означает отключенную очередь)" -#: html/Admin/Elements/EditCustomFields:99 +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Разрешенные дополнительные полÑ" -#: html/Admin/Queues/index.html:56 +#: html/Admin/Queues/index.html:55 msgid "Enabled Queues" msgstr "Включенные очереди" -#: html/Admin/Elements/EditCustomField:90 html/Admin/Groups/Modify.html:117 html/Admin/Queues/Modify.html:138 html/Admin/Users/Modify.html:283 html/User/Groups/Modify.html:117 +#: 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 "Включен ÑÑ‚Ð°Ñ‚ÑƒÑ %1" -#: lib/RT/CustomField_Overlay.pm:361 +#: NOT FOUND IN SOURCE +msgid "Enabled status: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "Введите неÑколько значений" -#: lib/RT/CustomField_Overlay.pm:358 +#: html/Elements/EditLinks:99 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "Введите одно значение" -#: html/Ticket/Elements/EditLinks:112 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Введите номера или ÑÑылки на тикеты. ÐеÑколько тикетов разделÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸." -#: html/Elements/Login:29 html/SelfService/Error.html:25 html/SelfService/Error.html:26 +#: NOT FOUND IN SOURCE +msgid "Enter up to %1 values" +msgstr "" + +#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 msgid "Error" msgstr "Ошибка" -#: lib/RT/Queue_Overlay.pm:555 +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "Ошибка в параметрах Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "Ошибка в параметрах Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1356 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Ошибка в параметрах Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1532 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "Ошибка в параметрах Ticket->DelWatcher" +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 +msgid "Escalate tickets" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "" + #: etc/initialdata:20 msgid "Everyone" msgstr "" -#: bin/rt-crontool:194 +#: bin/rt-crontool:190 msgid "Example:" msgstr "Пример:" -#: html/Admin/Elements/ModifyUser:64 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "ExternalAuthId" -#: html/Admin/Elements/ModifyUser:58 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "ExternalContactInfoId" -#: html/Admin/Users/Modify.html:73 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "Доп. информациÑ" -#: lib/RT/User_Overlay.pm:302 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Ðе могу найти пÑевдо-группу 'Полномочных' пользователей" -#: lib/RT/User_Overlay.pm:309 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Ðе могу найти пÑевдо-группу 'Ðеполномочных' пользователей" -#: bin/rt-crontool:138 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "" @@ -1600,72 +2311,100 @@ msgstr "Фев." msgid "February" msgstr "" +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in multiple text areas" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in one text area" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fill in up to %1 text areas" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Fin" msgstr "Конец" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:59 lib/RT/Tickets_Overlay.pm:1091 +#: 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 "Конечный приоритет" -#: lib/RT/Ticket_Overlay.pm:1162 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "" -#: html/Admin/Queues/People.html:61 html/Ticket/Elements/EditPeople:34 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "Ðайти группы, у которых" -#: html/Elements/Quicksearch:25 +#: NOT FOUND IN SOURCE +msgid "Find groups whose" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ тикетах" -#: html/Admin/Queues/People.html:57 html/Admin/Users/index.html:46 html/Ticket/Elements/EditPeople:30 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "Ðайти людей, у которых" -#: html/Search/Listing.html:108 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "ПоиÑк тикетов" -#: html/Ticket/Elements/Tabs:58 +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "" + +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "Ðачало" -#: html/Search/Listing.html:41 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "ÐŸÐµÑ€Ð²Ð°Ñ Ñтраница" -#: docs/design_docs/string-extraction-guide.txt:33 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 msgid "Foo Bar Baz" msgstr "Foo Bar Baz" -#: docs/design_docs/string-extraction-guide.txt:24 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "Изменить Ñилой" -#: html/Search/Listing.html:106 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "" -#: lib/RT/Interface/Web.pm:868 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "" -#: html/Admin/Elements/ModifyUser:44 +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FreeformContactInfo" -#: lib/RT/CustomField_Overlay.pm:38 +#: lib/RT/CustomField_Overlay.pm:37 msgid "FreeformMultiple" msgstr "" -#: lib/RT/CustomField_Overlay.pm:37 +#: lib/RT/CustomField_Overlay.pm:36 msgid "FreeformSingle" msgstr "" @@ -1673,23 +2412,31 @@ msgstr "" msgid "Fri." msgstr "Птн." -#: html/Ticket/Elements/ShowHistory:41 html/Ticket/Elements/ShowHistory:51 +#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 msgid "Full headers" msgstr "Полный" +#: html/Tools/Offline.html:65 +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:595 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "" -#: html/Admin/Elements/Tabs:41 html/Admin/index.html:38 +#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 msgid "Global" msgstr "Общие" +#: NOT FOUND IN SOURCE +msgid "Global Custom Fields" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "" @@ -1698,12 +2445,16 @@ msgstr "" msgid "Global Scrips" msgstr "" -#: html/Admin/Elements/SelectTemplate:38 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "" -#: html/Admin/Elements/EditCustomFields:75 html/Admin/Queues/People.html:59 html/Admin/Queues/People.html:63 html/Admin/Queues/index.html:44 html/Admin/Users/index.html:49 html/Ticket/Elements/EditPeople:32 html/Ticket/Elements/EditPeople:36 html/index.html:41 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "" + +#: 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 "Поехали!" @@ -1711,11 +2462,11 @@ msgstr "Поехали!" msgid "Good pgp sig from %1\\n" msgstr "Ð¥Ð¾Ñ€Ð¾ÑˆÐ°Ñ pgp подпиÑÑŒ от %1\\n" -#: html/Search/Listing.html:50 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "Перейти на Ñтраницу" -#: html/Elements/GotoTicket:25 html/SelfService/Elements/GotoTicket:25 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "Показать тикет" @@ -1723,7 +2474,7 @@ msgstr "Показать тикет" msgid "Grand" msgstr "" -#: html/Ticket/Elements/AddWatchers:46 html/User/Elements/DelegateRights:78 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "Групповые" @@ -1731,15 +2482,19 @@ msgstr "Групповые" msgid "Group %1 %2: %3" msgstr "Группа %1 %2: %3" -#: html/Admin/Elements/GroupTabs:45 html/Admin/Elements/QueueTabs:57 html/Admin/Elements/SystemTabs:44 html/Admin/Global/index.html:55 +#: 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 "Права группы" -#: lib/RT/Group_Overlay.pm:965 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "Пользователь уже входит в группу" -#: html/Admin/Groups/Modify.html:77 +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "" + +#: html/Admin/Groups/Modify.html:76 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Ðе могу Ñоздать группу: %1" @@ -1748,11 +2503,11 @@ msgstr "Ðе могу Ñоздать группу: %1" msgid "Group created" msgstr "Создана группа" -#: lib/RT/Group_Overlay.pm:1133 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "" -#: lib/RT/Group_Overlay.pm:945 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1429 lib/RT/Ticket_Overlay.pm:1507 +#: 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 "Группа не найдена" @@ -1764,36 +2519,56 @@ msgstr "Группа не найдена.\\n" msgid "Group not specified.\\n" msgstr "Ðе задана группа.\\n" -#: html/Admin/Elements/SelectNewGroupMembers:35 html/Admin/Elements/Tabs:35 html/Admin/Groups/Members.html:64 html/Admin/Queues/People.html:83 html/Admin/index.html:32 html/User/Groups/Members.html:67 +#: 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 "Группы" -#: lib/RT/Group_Overlay.pm:971 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "Группы не могут быть членами входÑщих в них пользователей" -#: lib/RT/Interface/CLI.pm:73 lib/RT/Interface/CLI.pm:73 +#: NOT FOUND IN SOURCE +msgid "Groups matching search criteria" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Groups this user belongs to" +msgstr "" + +#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 msgid "Hello!" msgstr "ЗдравÑтвуйте!" -#: docs/design_docs/string-extraction-guide.txt:40 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 #. ($name) msgid "Hello, %1" msgstr "Hello, %1" -#: html/Ticket/Elements/ShowHistory:30 html/Ticket/Elements/Tabs:88 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "ИÑториÑ" -#: html/Admin/Elements/ModifyUser:68 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the group %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the user %1" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "HomePhone" -#: html/Elements/Tabs:46 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "Домой" -#: lib/RT/Base.pm:74 +#: lib/RT/Base.pm:86 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "" @@ -1802,55 +2577,75 @@ msgstr "" msgid "I have [quant,_1,concrete mixer]." msgstr "I have [quant,_1,concrete mixer]." -#: html/Ticket/Elements/ShowBasics:27 lib/RT/Tickets_Overlay.pm:1018 +#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 msgid "Id" msgstr "Тикет" -#: html/Admin/Users/Modify.html:44 html/User/Prefs.html:39 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "ЛичноÑть" -#: etc/upgrade/2.1.71:86 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "" -#: bin/rt-crontool:190 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "" + +#: 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 "ЕÑли бы Ñта программа имела уÑтановленный бит setgid, то зловредный пользователь мог бы воÑпользоватьÑÑ Ñтим Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтративных полномочий в RT." -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: 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 "ЕÑли вы что-либо изменили, то удоÑтоверьтеÑÑŒ, что" -#: lib/RT/Interface/Web.pm:860 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "" -#: lib/RT/Interface/Web.pm:863 +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "" + +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "" -#: html/Admin/Elements/EditCustomFields:74 +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + +#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Включать отключенные дополнительные Ð¿Ð¾Ð»Ñ Ð² ÑпиÑок." -#: html/Admin/Queues/index.html:43 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "Показывать отключенные очереди." -#: html/Admin/Users/index.html:47 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "Показать отключенных пользователей." -#: lib/RT/Tickets_Overlay.pm:1067 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "Ðачальный приоритет" -#: lib/RT/Ticket_Overlay.pm:1161 lib/RT/Ticket_Overlay.pm:1163 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:105 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "Ошибка ввода" @@ -1858,11 +2653,11 @@ msgstr "Ошибка ввода" msgid "Interest noted" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3729 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "" @@ -1871,7 +2666,7 @@ msgstr "" msgid "Invalid Group Type" msgstr "Ðеправильный тип группы" -#: lib/RT/Principal_Overlay.pm:128 +#: lib/RT/Principal_Overlay.pm:127 msgid "Invalid Right" msgstr "" @@ -1879,44 +2674,44 @@ msgstr "" msgid "Invalid Type" msgstr "" -#: lib/RT/Interface/Web.pm:865 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "" -#: lib/RT/Ticket_Overlay.pm:438 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Владелец отÑутÑтвует. ЗаменÑем его на 'nobody'." -#: lib/RT/Scrip_Overlay.pm:134 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 msgid "Invalid queue" msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÑŒ" -#: lib/RT/ACE_Overlay.pm:244 lib/RT/ACE_Overlay.pm:253 lib/RT/ACE_Overlay.pm:259 lib/RT/ACE_Overlay.pm:270 lib/RT/ACE_Overlay.pm:275 +#: 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 "Ðеверные права" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "Ðеправильное значение Ð´Ð»Ñ %1" -#: lib/RT/Ticket_Overlay.pm:3367 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "Ðеправильное значение Ð´Ð»Ñ Ñтого полÑ" -#: lib/RT/Ticket_Overlay.pm:345 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "Такого ÑтатуÑа не бывает" -#: bin/rt-crontool:191 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "Обратите внимание, что обычные пользователи не имеют права запуÑкать Ñту программу." -#: bin/rt-crontool:192 +#: 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 "ПредполагаетÑÑ, что Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Ñтой программы вы должны Ñоздать учетную запиÑÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Unix Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼Ð¸ уÑтановками групп и доÑтупом к RT." -#: bin/rt-crontool:163 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "Она требует неÑколько параметров:" @@ -1944,7 +2739,7 @@ msgstr "Июл." msgid "July" msgstr "" -#: html/Ticket/Elements/Tabs:99 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "Ð’Ñе вмеÑте" @@ -1960,27 +2755,35 @@ msgstr "" msgid "Keyword" msgstr "Ключевое Ñлово" -#: html/Admin/Elements/ModifyUser:52 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "Язык" -#: html/Ticket/Elements/Tabs:73 +#: html/User/Prefs.html:54 +msgid "Language" +msgstr "" + +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "Конец" -#: html/Ticket/Elements/EditDates:38 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "Контакт" -#: html/Elements/SelectDateType:29 +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + +#: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "Контакт" -#: html/Search/Elements/TicketHeader:41 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "" -#: html/Elements/SelectDateType:30 +#: html/Elements/SelectDateType:29 msgid "Last Updated" msgstr "Обновлен" @@ -1988,15 +2791,19 @@ msgstr "Обновлен" msgid "LastUpdated" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "ОÑталоÑÑŒ" -#: html/Admin/Users/Modify.html:83 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" msgstr "Разрешить доÑтуп к RT" -#: html/Admin/Users/Modify.html:87 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" msgstr "Пользователь может иметь права" @@ -2008,29 +2815,29 @@ msgstr "Ограничиваем владельца %1 %2" msgid "Limiting queue to %1 %2" msgstr "Ограничиваем очередь Ð´Ð»Ñ %1 %2" -#: lib/RT/Ticket_Overlay.pm:2697 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "СвÑзь уже ÑущеÑтвует" -#: lib/RT/Ticket_Overlay.pm:2709 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "Ðе могу ÑвÑзать тикеты" -#: lib/RT/Ticket_Overlay.pm:2717 lib/RT/Ticket_Overlay.pm:2727 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2638 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "Удалена ÑвÑзь (%1)" -#: lib/RT/Ticket_Overlay.pm:2644 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "СвÑзь не найдена" -#: html/Ticket/ModifyLinks.html:25 html/Ticket/ModifyLinks.html:29 +#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "СвÑзываем тикет #%1" @@ -2039,85 +2846,109 @@ msgstr "СвÑзываем тикет #%1" msgid "Link ticket %1" msgstr "" -#: html/Ticket/Elements/Tabs:97 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "СвÑзи" -#: html/Admin/Users/Modify.html:114 html/User/Prefs.html:85 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "МеÑтонахождение" -#: lib/RT.pm:158 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Ðе найден каталог Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ %1 или не доÑтупен на запиÑÑŒ.\\n RT не может продолжить работу." -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "ЗарегиÑтрирован как %1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:25 html/Elements/Login:34 html/Elements/Login:45 +#: 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 "Логин" -#: html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "Выйти" -#: html/Search/Bulk.html:86 +#: NOT FOUND IN SOURCE +msgid "Lookup type mismatch" +msgstr "" + +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "Ðазначить владельцем" -#: html/Search/Bulk.html:102 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "Ðазначить ÑтатуÑ" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "Ðазначить Ñрок" -#: html/Search/Bulk.html:110 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "Изменить дату решениÑ" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "Изменить дату 'ÐачалÑÑ'" -#: html/Search/Bulk.html:106 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "Изменить дату 'ÐачинаетÑÑ'" -#: html/Search/Bulk.html:108 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "Изменить дату поÑледнего контакта" -#: html/Search/Bulk.html:99 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "Ðазначить приоритет" -#: html/Search/Bulk.html:100 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "Ðазначить очередь" -#: html/Search/Bulk.html:98 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "Изменить тему" -#: html/Admin/index.html:33 +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Manage custom fields and custom field values" +msgstr "" + +#: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "ÐаÑтройка групп и их пользователей" -#: html/Admin/index.html:39 +#: html/Admin/index.html:38 msgid "Manage properties and configuration which apply to all queues" msgstr "ÐаÑтройки Ð´Ð»Ñ Ð²Ñех очередей" -#: html/Admin/index.html:36 +#: html/Admin/index.html:35 msgid "Manage queues and queue-specific properties" msgstr "ÐаÑтройка очередей и их параметров" -#: html/Admin/index.html:30 +#: html/Admin/index.html:29 msgid "Manage users and passwords" msgstr "ÐаÑтройка пользователей и их паролей" @@ -2137,19 +2968,29 @@ msgstr "" msgid "May." msgstr "Май" -#: lib/RT/Group_Overlay.pm:982 +#: lib/RT/Transaction_Overlay.pm:634 +#. ($value) +msgid "Member %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:674 +#. ($value) +msgid "Member %1 deleted" +msgstr "" + +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "Пользователь добавлен в группу" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "Пользователь удален из группы" -#: lib/RT/Group_Overlay.pm:1144 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "Пользователь не удален из группы" -#: html/Elements/SelectLinkType:26 +#: html/Elements/SelectLinkType:25 msgid "Member of" msgstr "Входит в" @@ -2157,39 +2998,90 @@ msgstr "Входит в" msgid "MemberOf" msgstr "" -#: html/Admin/Elements/GroupTabs:42 html/User/Elements/GroupTabs:42 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "Пользователи" -#: lib/RT/Ticket_Overlay.pm:2843 +#: lib/RT/Transaction_Overlay.pm:631 +#. ($value) +msgid "Membership in %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:671 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Memberships of the user %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "Тикеты уÑпешно Ñклеены" -#: lib/RT/Ticket_Overlay.pm:2804 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Склейка не удалаÑÑŒ. Ðе Ñмогла уÑтановить идентификатор тикета." -#: html/Ticket/Elements/EditLinks:115 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "Приклеить к" -#: html/Ticket/Update.html:102 +#: lib/RT/Transaction_Overlay.pm:637 +#. ($value) +msgid "Merged into %1" +msgstr "" + +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "ТекÑÑ‚" -#: lib/RT/Interface/Web.pm:867 +#: NOT FOUND IN SOURCE +msgid "Message body not shown because it is too large or is not plain text." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "" + +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "" -#: html/Admin/Users/Modify.html:169 html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "Мобильник" -#: html/Admin/Elements/ModifyUser:72 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "MobilePhone" -#: lib/RT/Queue_Overlay.pm:70 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "Изменить ÑпиÑок ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа" @@ -2197,60 +3089,111 @@ msgstr "Изменить ÑпиÑок ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа" msgid "Modify Custom Field %1" msgstr "Изменение дополнительного Ð¿Ð¾Ð»Ñ %1" -#: html/Admin/Global/CustomFields.html:44 html/Admin/Global/index.html:51 +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all %1" +msgstr "" + +#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "Изменить дополнительные полÑ, применÑемые кл вÑем очередÑм" -#: lib/RT/Queue_Overlay.pm:73 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "Изменить шаблоны Ñкриплетов Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ очереди" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "Изменить Ñкриплеты Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ очереди" -#: html/Admin/Queues/CustomField.html:45 +#: NOT FOUND IN SOURCE +msgid "Modify System ACLS" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify Template %1" +msgstr "" + +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + +#: html/Admin/Queues/CustomField.html:44 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:53 +#: html/Admin/Global/CustomField.html:52 msgid "Modify a CustomField which applies to all queues" msgstr "" -#: html/Admin/Queues/Scrip.html:54 +#: html/Admin/Queues/Scrip.html:53 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Изменить Ñкрипт Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" -#: html/Admin/Global/Scrip.html:48 +#: html/Admin/Global/Scrip.html:47 msgid "Modify a scrip which applies to all queues" msgstr "Изменение Ñкрипта, который дейÑтвует Ð´Ð»Ñ Ð²Ñех очередей" -#: html/Ticket/ModifyDates.html:25 html/Ticket/ModifyDates.html:29 +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify associated objects for %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "" + +#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Изменение дат в тикете #%1" -#: html/Ticket/ModifyDates.html:35 +#: html/Ticket/ModifyDates.html:34 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Изменение дат в тикете #%1" -#: html/Admin/Global/GroupRights.html:25 html/Admin/Global/GroupRights.html:28 html/Admin/Global/index.html:56 +#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 msgid "Modify global group rights" msgstr "Изменение глобальных прав группы" -#: html/Admin/Global/GroupRights.html:33 +#: html/Admin/Global/GroupRights.html:32 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:25 html/Admin/Global/UserRights.html:28 html/Admin/Global/index.html:60 +#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 msgid "Modify global user rights" msgstr "Изменение глобальных прав пользователÑ" -#: html/Admin/Global/UserRights.html:33 +#: html/Admin/Global/UserRights.html:32 msgid "Modify global user rights." msgstr "Изменение глобальных прав пользователÑ." @@ -2258,12 +3201,16 @@ msgstr "Изменение глобальных прав пользовател msgid "Modify group metadata or delete group" msgstr "Изменение метаданных группы или ее удаление" -#: html/Admin/Groups/GroupRights.html:25 html/Admin/Groups/GroupRights.html:29 html/Admin/Groups/GroupRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "" + +#: 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 "Изменение прав групп Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ðµ %1" -#: html/Admin/Queues/GroupRights.html:25 html/Admin/Queues/GroupRights.html:29 +#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Изменение прав групп Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" @@ -2272,74 +3219,78 @@ msgstr "Изменение прав групп Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" msgid "Modify membership roster for this group" msgstr "" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "Modify one's own RT account" msgstr "" -#: html/Admin/Queues/People.html:25 html/Admin/Queues/People.html:29 +#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Изменение пользователей отноÑÑщихÑÑ Ðº очереди %1" -#: html/Ticket/ModifyPeople.html:25 html/Ticket/ModifyPeople.html:29 html/Ticket/ModifyPeople.html:35 +#: 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 "Изменение пользователей отноÑÑщихÑÑ Ðº тикету #%1" -#: html/Admin/Queues/Scrips.html:44 +#: html/Admin/Queues/Scrips.html:45 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Изменить Ñкрипты Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" -#: html/Admin/Global/Scrips.html:44 html/Admin/Global/index.html:42 +#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 msgid "Modify scrips which apply to all queues" msgstr "Изменение Ñкриптов, которые дейÑтвуют на вÑе очереди" -#: html/Admin/Global/Template.html:25 html/Admin/Global/Template.html:30 html/Admin/Global/Template.html:81 html/Admin/Queues/Template.html:78 +#: 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 "Изменение шаблона %1" -#: html/Admin/Global/Templates.html:44 +#: html/Admin/Global/Templates.html:43 msgid "Modify templates which apply to all queues" msgstr "Изменить шаблоны, которые применÑÑŽÑ‚ÑÑ ÐºÐ¾ вÑем очередÑм" -#: html/Admin/Groups/Modify.html:87 html/User/Groups/Modify.html:86 +#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 #. ($Group->Name) msgid "Modify the group %1" msgstr "ÐаÑтройки Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ %1" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "Изменить очередь наблюдателей" -#: html/Admin/Users/Modify.html:236 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "ÐаÑтройки Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1" -#: html/Ticket/ModifyAll.html:37 +#: html/Ticket/ModifyAll.html:36 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Изменение тикета # %1" -#: html/Ticket/Modify.html:25 html/Ticket/Modify.html:28 html/Ticket/Modify.html:34 +#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Изменение тикета # %1" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "Изменить тикеты" -#: html/Admin/Groups/UserRights.html:25 html/Admin/Groups/UserRights.html:29 html/Admin/Groups/UserRights.html:35 +#: NOT FOUND IN SOURCE +msgid "Modify user rights for custom field %1" +msgstr "" + +#: 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 "Изменение прав Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ %1" -#: html/Admin/Queues/UserRights.html:25 html/Admin/Queues/UserRights.html:29 +#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Изменение прав Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" @@ -2348,7 +3299,7 @@ msgstr "Изменение прав Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´ msgid "Modify watchers for queue '%1'" msgstr "Изменение наблюдателей Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ '%1'" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "" @@ -2356,23 +3307,23 @@ msgstr "" msgid "ModifyOwnMembership" msgstr "" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "" -#: lib/RT/System.pm:61 +#: lib/RT/System.pm:60 msgid "ModifySelf" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "" @@ -2380,96 +3331,133 @@ msgstr "" msgid "Mon." msgstr "Пнд." -#: html/Ticket/Elements/ShowRequestor:42 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ %1" -#: html/Admin/Elements/EditCustomFields:61 +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "" + +#: html/Admin/Elements/EditCustomFields:60 msgid "Move down" msgstr "" -#: html/Admin/Elements/EditCustomFields:53 +#: html/Admin/Elements/EditCustomFields:52 msgid "Move up" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:27 +#: html/Admin/Elements/SelectSingleOrMultiple:26 msgid "Multiple" msgstr "ÐеÑколько значений" -#: lib/RT/User_Overlay.pm:179 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "Ð’Ñ‹ должны указать ИмÑ" +#: html/SelfService/Elements/MyRequests:48 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "" + #: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "Мои визы" -#: html/Approvals/index.html:25 html/Approvals/index.html:26 +#: html/Approvals/index.html:24 html/Approvals/index.html:25 msgid "My approvals" msgstr "Мои визы" -#: html/Admin/Elements/AddCustomFieldValue:26 html/Admin/Elements/EditCustomField:32 html/Admin/Elements/ModifyTemplate:28 html/Admin/Elements/ModifyUser:30 html/Admin/Groups/Modify.html:44 html/Elements/SelectGroups:26 html/Elements/SelectUsers:28 html/User/Groups/Modify.html:44 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "" + +#: 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 "ИмÑ" -#: lib/RT/User_Overlay.pm:186 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "Ð˜Ð¼Ñ ÑƒÐ¶Ðµ иÑпользуетÑÑ" +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "" + #: html/Ticket/Elements/ShowDates:52 msgid "Never" msgstr "" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "Ðовых" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:93 html/User/Prefs.html:65 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "Ðовые ÑвÑзи" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "Ðовый пароль" -#: etc/initialdata:311 etc/upgrade/2.1.71:16 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "" -#: html/Ticket/Elements/EditLinks:111 +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "New Relationships" -msgstr "Ðовые ÑвÑзи" +msgstr "" -#: html/Ticket/Elements/Tabs:36 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "Ðовый поиÑк" -#: html/Admin/Global/CustomField.html:41 html/Admin/Global/CustomFields.html:39 html/Admin/Queues/CustomField.html:52 html/Admin/Queues/CustomFields.html:40 +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + +#: 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 "Ðовое дополнительное поле" -#: html/Admin/Elements/GroupTabs:54 html/User/Elements/GroupTabs:52 +#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 msgid "New group" msgstr "ÐÐ¾Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:31 msgid "New password" msgstr "Ðовый пароль" -#: lib/RT/User_Overlay.pm:639 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "Отправлено Ñообщение Ñ Ð½Ð¾Ð²Ñ‹Ð¼ паролем" -#: html/Admin/Elements/QueueTabs:70 +#: html/Admin/Elements/QueueTabs:69 msgid "New queue" msgstr "ÐÐ¾Ð²Ð°Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÑŒ" -#: html/SelfService/Elements/Tabs:63 +#: NOT FOUND IN SOURCE msgid "New request" msgstr "Ðовый запроÑ" -#: html/Admin/Elements/SelectRights:42 +#: html/Admin/Elements/SelectRights:41 msgid "New rights" msgstr "Ðовые права" -#: html/Admin/Global/Scrip.html:40 html/Admin/Global/Scrips.html:39 html/Admin/Queues/Scrip.html:43 html/Admin/Queues/Scrips.html:53 +#: 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 "Ðовый Ñкриплет" @@ -2477,67 +3465,91 @@ msgstr "Ðовый Ñкриплет" msgid "New search" msgstr "Ðовый поиÑк" -#: html/Admin/Global/Template.html:60 html/Admin/Global/Templates.html:39 html/Admin/Queues/Template.html:58 html/Admin/Queues/Templates.html:46 +#: 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 "Ðовый шаблон" -#: lib/RT/Ticket_Overlay.pm:2771 +#: html/SelfService/Elements/Tabs:47 +msgid "New ticket" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "Ðовый тикет не ÑущеÑтвует" -#: html/Admin/Elements/UserTabs:52 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "Ðовый пользователь" -#: html/Admin/Elements/CreateUserCalled:26 +#: html/Admin/Elements/CreateUserCalled:25 msgid "New user called" msgstr "Добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼" -#: html/Admin/Queues/People.html:55 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 msgid "New watchers" msgstr "Ðовые наблюдатели" -#: html/Admin/Users/Prefs.html:42 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "Ðовые наÑтройки окна" -#: html/Ticket/Elements/Tabs:69 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "Вперед" -#: html/Search/Listing.html:48 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница" -#: html/Admin/Elements/ModifyUser:50 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "ПÑевдоним" -#: html/Admin/Users/Modify.html:63 html/User/Prefs.html:46 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "ПÑевдоним" -#: html/Admin/Elements/EditCustomField:73 html/Admin/Elements/EditCustomFields:105 +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "" + +#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "Ðет такого полÑ" -#: html/Admin/Groups/GroupRights.html:84 html/Admin/Groups/UserRights.html:71 +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "" + +#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "Ðет такой группы" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:68 +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "" + +#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" msgstr "Ðет такой очереди" -#: bin/rt-crontool:56 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "Пользователь RT не найден. ПожалуйÑта, обратитеÑÑŒ к вашему админиÑтратору RT.\\n" -#: html/Admin/Global/Template.html:79 html/Admin/Queues/Template.html:76 +#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 msgid "No Template" msgstr "Шаблон не определен" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "Тикет не задан. Ðичего не делаем." @@ -2545,11 +3557,11 @@ msgstr "Тикет не задан. Ðичего не делаем." msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "Тикет не задан. ОтменÑем Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð°\\n\\n" -#: html/Approvals/Elements/Approve:47 +#: html/Approvals/Elements/Approve:45 msgid "No action" msgstr "Ðет дейÑтвиÑ" -#: lib/RT/Interface/Web.pm:862 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "" @@ -2557,57 +3569,64 @@ msgstr "" msgid "No command found\\n" msgstr "Команда не найдена\\n" -#: html/Elements/ViewUser:36 html/Ticket/Elements/ShowRequestor:45 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "Без комментариев" -#: lib/RT/Ticket_Overlay.pm:2189 lib/RT/Ticket_Overlay.pm:2257 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "ПуÑтое Ñообщение" -#: lib/RT/Action/Generic.pm:150 lib/RT/Condition/Generic.pm:176 lib/RT/Search/ActiveTicketsInQueue.pm:56 lib/RT/Search/Generic.pm:113 +#: 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 "Ðет опиÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ %1" -#: lib/RT/Users_Overlay.pm:151 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "Ðе указана группа" -#: lib/RT/User_Overlay.pm:857 +#: NOT FOUND IN SOURCE +msgid "No groups matching search criteria found." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "ОтÑутÑтвует пароль" -#: lib/RT/Queue_Overlay.pm:259 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ права на Ñоздание очереди" -#: lib/RT/Ticket_Overlay.pm:341 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "" -#: lib/RT/User_Overlay.pm:151 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "Ð’Ñ‹ не имеете права Ñоздавать пользователей" -#: html/SelfService/Display.html:174 +#: html/SelfService/Display.html:125 msgid "No permission to display that ticket" msgstr "Показ Ñтого тикета запрещен" -#: html/SelfService/Update.html:55 +#: html/SelfService/Update.html:68 msgid "No permission to view update ticket" msgstr "Запрещен показ изменений Ñтого тикета" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1488 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "Пользователь не указан" -#: html/Admin/Queues/People.html:154 html/Admin/Queues/People.html:164 +#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 msgid "No principals selected." msgstr "Пользователи не выбраны." -#: html/Admin/Queues/index.html:35 +#: html/Admin/Queues/index.html:34 msgid "No queues matching search criteria found." msgstr "Ðичего подходÑщего не найдено." @@ -2615,19 +3634,23 @@ msgstr "Ðичего подходÑщего не найдено." msgid "No rights found" msgstr "" -#: html/Admin/Elements/SelectRights:33 +#: html/Admin/Elements/SelectRights:32 msgid "No rights granted." msgstr "Ðет прав." -#: html/Search/Bulk.html:149 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "Ðечего делать." +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "Ðе указан номер тикета" -#: lib/RT/Transaction_Overlay.pm:480 lib/RT/Transaction_Overlay.pm:518 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "Ðе указан тип транзакции" @@ -2635,31 +3658,31 @@ msgstr "Ðе указан тип транзакции" msgid "No user or email address specified" msgstr "" -#: html/Admin/Users/index.html:36 +#: html/Admin/Users/index.html:35 msgid "No users matching search criteria found." msgstr "Ðи одного подходÑщего Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ найдено." -#: bin/rt-commit-handler:644 +#: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Ðе найден пользователь RT. Обработчик CVS отключен. ОбратитеÑÑŒ к админиÑтратору RT.\\n" -#: lib/RT/Interface/Web.pm:859 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "" -#: html/Search/Elements/TicketRow:37 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "" -#: lib/RT/Interface/Web.pm:864 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "" -#: html/Elements/Login:99 +#: NOT FOUND IN SOURCE msgid "Not logged in" msgstr "" -#: html/Elements/Header:59 html/SelfService/Elements/Header:58 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "Ðе зарегиÑтрирован." @@ -2667,67 +3690,87 @@ msgstr "Ðе зарегиÑтрирован." msgid "Not set" msgstr "Ðе уÑтановлено" -#: html/NoAuth/Reminder.html:27 +#: html/NoAuth/Reminder.html:26 msgid "Not yet implemented." msgstr "Еще не реализовано." -#: html/Admin/Groups/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Not yet implemented...." msgstr "Еще не реализовано..." -#: html/Approvals/Elements/Approve:50 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "Примечание" -#: lib/RT/User_Overlay.pm:642 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "Ðе могу отоÑлать уведомление" -#: etc/initialdata:94 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "" -#: etc/initialdata:90 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "" -#: etc/initialdata:121 +#: 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:117 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "" -#: etc/initialdata:86 +#: etc/initialdata:85 msgid "Notify Owner" msgstr "" -#: etc/initialdata:82 +#: etc/initialdata:81 msgid "Notify Owner as Comment" msgstr "" -#: etc/initialdata:313 etc/upgrade/2.1.71:17 +#: 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:78 +#: etc/initialdata:77 msgid "Notify Requestors" msgstr "" -#: etc/initialdata:104 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "" -#: etc/initialdata:99 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "" -#: etc/initialdata:113 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "" -#: etc/initialdata:109 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "" @@ -2739,14 +3782,22 @@ msgstr "ÐоÑ." msgid "November" msgstr "" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "Ðе могу Ñоздать объект" -#: lib/RT/Record.pm:176 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "Создан объект" +#: NOT FOUND IN SOURCE +msgid "Object of type %1 cannot take custom fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Object type mismatch" +msgstr "" + #: lib/RT/Date.pm:420 msgid "Oct." msgstr "Окт." @@ -2755,124 +3806,168 @@ msgstr "Окт." msgid "October" msgstr "" -#: html/Elements/SelectDateRelation:35 +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "" + +#: html/Elements/SelectDateRelation:34 msgid "On" msgstr "Ðа" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "Ðа комментарий" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "" -#: etc/initialdata:137 +#: etc/initialdata:145 msgid "On Create" msgstr "Ðа Ñоздание" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "Ðа изменение владельца" -#: etc/initialdata:177 +#: 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:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "на изменение ÑтатуÑа" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "Ðа транзакцию" -#: html/Approvals/Elements/PendingMyApproval:50 +#: 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 "Показывать визы только Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñов Ñозданных поÑле %1" -#: html/Approvals/Elements/PendingMyApproval:48 +#: 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 "Показывать визы только Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñов Ñозданных до %1" -#: html/Elements/Quicksearch:31 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "Открытых" -#: html/Ticket/Elements/Tabs:136 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "Открыть" -#: html/SelfService/Elements/Tabs:57 +#: NOT FOUND IN SOURCE msgid "Open requests" msgstr "Открыть запроÑÑ‹" -#: html/Admin/Users/Prefs.html:41 +#: html/SelfService/Elements/Tabs:41 +msgid "Open tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "Открыть тикеты (из ÑпиÑка) в новом окне" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "Открыть тикеты (из ÑпиÑка) в другом окне" -#: etc/initialdata:133 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "" -#: html/Search/Elements/PickRestriction:101 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "ПорÑдок и Ñортировка" -#: html/Admin/Elements/ModifyUser:46 html/Admin/Users/Modify.html:117 html/Elements/SelectUsers:29 html/User/Prefs.html:86 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "ОрганизациÑ" -#: html/Approvals/Elements/Approve:34 +#: html/Approvals/Elements/Approve:32 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "" -#: html/Admin/Elements/ModifyQueue:55 html/Admin/Queues/Modify.html:69 +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "Со временем поднÑть приоритет до" -#: lib/RT/Queue_Overlay.pm:87 +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "" -#: etc/initialdata:38 html/Elements/MyRequests:32 html/SelfService/Elements/MyRequests:30 html/Ticket/Create.html:48 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/EditPeople:44 html/Ticket/Elements/ShowPeople:27 html/Ticket/Update.html:63 lib/RT/ACE_Overlay.pm:86 lib/RT/Tickets_Overlay.pm:1244 +#: 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 "Владелец" -#: lib/RT/Ticket_Overlay.pm:3004 -#. ($OldOwnerObj->Name, $NewOwnerObj->Name) +#: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" msgstr "" -#: lib/RT/Transaction_Overlay.pm:584 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Владелец Ñилой изменен Ñ %1 на %2" -#: html/Search/Elements/PickRestriction:31 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "Владелец" -#: html/Admin/Users/Modify.html:174 html/User/Prefs.html:56 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "Пейджер" -#: html/Admin/Elements/ModifyUser:74 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "Телефон пейджера" @@ -2880,56 +3975,68 @@ msgstr "Телефон пейджера" msgid "Parent" msgstr "" -#: html/Ticket/Create.html:182 html/Ticket/Elements/EditLinks:127 html/Ticket/Elements/EditLinks:58 html/Ticket/Elements/ShowLinks:43 +#: 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 "Предки" -#: html/Elements/Login:43 html/User/Prefs.html:61 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "Пароль" -#: html/NoAuth/Reminder.html:25 +#: html/NoAuth/Reminder.html:24 msgid "Password Reminder" msgstr "ПодÑказка к паролю" -#: lib/RT/User_Overlay.pm:168 lib/RT/User_Overlay.pm:860 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "Пароль Ñлишком короткий" -#: html/Admin/Users/Modify.html:291 html/User/Prefs.html:172 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Пароль: %1" -#: html/Ticket/Elements/ShowSummary:43 html/Ticket/Elements/Tabs:96 html/Ticket/ModifyAll.html:51 +#: html/Admin/Users/Modify.html:318 +msgid "Passwords do not match." +msgstr "" + +#: html/User/Prefs.html:211 +msgid "Passwords do not match. Your password has not been changed" +msgstr "" + +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "Люди" -#: etc/initialdata:126 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "" -#: lib/RT/ACE_Overlay.pm:231 lib/RT/ACE_Overlay.pm:237 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:83 lib/RT/CurrentUser.pm:92 lib/RT/CustomField_Overlay.pm:445 lib/RT/CustomField_Overlay.pm:451 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1099 lib/RT/Group_Overlay.pm:1108 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1163 lib/RT/Group_Overlay.pm:1169 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:904 lib/RT/Group_Overlay.pm:908 lib/RT/Group_Overlay.pm:921 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:931 lib/RT/Scrip_Overlay.pm:126 lib/RT/Scrip_Overlay.pm:137 lib/RT/Scrip_Overlay.pm:197 lib/RT/Scrip_Overlay.pm:430 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:88 lib/RT/Template_Overlay.pm:94 lib/RT/Ticket_Overlay.pm:1341 lib/RT/Ticket_Overlay.pm:1351 lib/RT/Ticket_Overlay.pm:1365 lib/RT/Ticket_Overlay.pm:1518 lib/RT/Ticket_Overlay.pm:1527 lib/RT/Ticket_Overlay.pm:1540 lib/RT/Ticket_Overlay.pm:1875 lib/RT/Ticket_Overlay.pm:2013 lib/RT/Ticket_Overlay.pm:2177 lib/RT/Ticket_Overlay.pm:2244 lib/RT/Ticket_Overlay.pm:2596 lib/RT/Ticket_Overlay.pm:2668 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2777 lib/RT/Ticket_Overlay.pm:2910 lib/RT/Ticket_Overlay.pm:3139 lib/RT/Ticket_Overlay.pm:3337 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3551 lib/RT/Ticket_Overlay.pm:3716 lib/RT/Transaction_Overlay.pm:468 lib/RT/Transaction_Overlay.pm:475 lib/RT/Transaction_Overlay.pm:504 lib/RT/Transaction_Overlay.pm:511 lib/RT/User_Overlay.pm:1334 lib/RT/User_Overlay.pm:562 lib/RT/User_Overlay.pm:597 lib/RT/User_Overlay.pm:853 lib/RT/User_Overlay.pm:941 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "" + +#: 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 "Ð’ доÑтупе отказано" -#: html/User/Elements/Tabs:35 +#: html/User/Elements/Tabs:34 msgid "Personal Groups" msgstr "Личные группы" -#: html/User/Groups/index.html:30 html/User/Groups/index.html:40 +#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 msgid "Personal groups" msgstr "Личные группы" -#: html/User/Elements/DelegateRights:37 +#: html/User/Elements/DelegateRights:36 msgid "Personal groups:" msgstr "Личные группы:" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:49 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "Ðомера телефонов" -#: html/Admin/Users/Rights.html:25 +#: NOT FOUND IN SOURCE msgid "Placeholder" msgstr "Заполнитель" @@ -2937,7 +4044,7 @@ msgstr "Заполнитель" msgid "Pref" msgstr "" -#: html/Elements/Header:52 html/Elements/Tabs:55 html/SelfService/Prefs.html:25 html/User/Prefs.html:25 html/User/Prefs.html:28 +#: 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 "ПредпочтениÑ" @@ -2945,15 +4052,19 @@ msgstr "ПредпочтениÑ" msgid "Prefs" msgstr "ПредпочтениÑ" -#: lib/RT/Action/Generic.pm:160 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "Подготовка не реализована" -#: html/Ticket/Elements/Tabs:61 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "Ðазад" -#: html/Search/Listing.html:44 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница" @@ -2961,41 +4072,57 @@ msgstr "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница" msgid "Pri" msgstr "Приоритет" -#: lib/RT/ACE_Overlay.pm:133 lib/RT/ACE_Overlay.pm:208 lib/RT/ACE_Overlay.pm:552 +#: 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 "" -#: html/Search/Elements/PickRestriction:54 html/SelfService/Display.html:76 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:54 html/Ticket/Elements/ShowBasics:39 lib/RT/Tickets_Overlay.pm:1042 +#: 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 "Приоритет" -#: html/Admin/Elements/ModifyQueue:51 html/Admin/Queues/Modify.html:65 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "Приоритет начинаетÑÑ Ñ" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "" + #: etc/initialdata:25 msgid "Privileged" msgstr "Привилегированные" -#: html/Admin/Users/Modify.html:271 html/User/Prefs.html:163 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "СоÑтоÑние полномочий: %1" -#: html/Admin/Users/index.html:62 +#: html/Admin/Users/index.html:61 msgid "Privileged users" 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 "" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Elements/Quicksearch:29 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:35 html/SelfService/Display.html:68 html/Ticket/Create.html:38 html/Ticket/Elements/EditBasics:64 html/Ticket/Elements/ShowBasics:43 html/User/Elements/DelegateRights:80 lib/RT/Tickets_Overlay.pm:883 +#: html/Search/Build.html:47 +msgid "Query" +msgstr "" + +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "" + +#: 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 "Очередь" -#: html/Admin/Queues/CustomField.html:42 html/Admin/Queues/Scrip.html:50 html/Admin/Queues/Scrips.html:46 html/Admin/Queues/Templates.html:43 +#: 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" @@ -3009,7 +4136,7 @@ msgstr "Ðе найдена очередь '%1'\\n" msgid "Queue Keyword Selections" msgstr "" -#: html/Admin/Elements/ModifyQueue:31 html/Admin/Queues/Modify.html:43 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "Ð˜Ð¼Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸" @@ -3017,19 +4144,19 @@ msgstr "Ð˜Ð¼Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸" msgid "Queue Scrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:263 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "Очередь уже ÑущеÑтвует" -#: lib/RT/Queue_Overlay.pm:272 lib/RT/Queue_Overlay.pm:278 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "Ðе могу Ñоздать очередь" -#: html/Ticket/Create.html:209 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "Ðе могу загрузить очередь" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:282 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "Создана очередь" @@ -3037,26 +4164,37 @@ msgstr "Создана очередь" msgid "Queue is not specified." msgstr "" -#: html/SelfService/Display.html:129 +#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 msgid "Queue not found" msgstr "Ðет такой очереди" -#: html/Admin/Elements/Tabs:38 html/Admin/index.html:35 +#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 msgid "Queues" msgstr "Очереди" -#: html/Elements/Login:34 +#: html/Elements/Quicksearch:24 +msgid "Quick search" +msgstr "" + +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "" + +#: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 +#: 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 Ð´Ð»Ñ %2" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: 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, LLC</a>." @@ -3068,7 +4206,7 @@ msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "" -#: html/Admin/index.html:25 html/Admin/index.html:26 +#: html/Admin/index.html:24 html/Admin/index.html:25 msgid "RT Administration" msgstr "ÐаÑтройка RT" @@ -3088,7 +4226,7 @@ msgstr "Ошибка конфигурации RT" msgid "RT Critical error. Message not recorded!" msgstr "КритичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° RT: Сообщение не было Ñохранено!" -#: html/Elements/Error:41 html/SelfService/Error.html:41 +#: html/Elements/Error:41 html/SelfService/Error.html:40 msgid "RT Error" msgstr "Ошибка RT" @@ -3100,11 +4238,19 @@ msgstr "RT получил Ñвое ÑобÑтвенное Ñообщение (%1 msgid "RT Recieved mail (%1) from itself." msgstr "" -#: html/SelfService/Closed.html:25 +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "СамообÑлуживание RT / Закрытые тикеты" -#: html/index.html:25 html/index.html:28 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "Обзор RT" @@ -3124,20 +4270,27 @@ msgstr "RT не Ñмог найти очередь: %1" msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT не Ñмог проверить Ñту подпиÑÑŒ PGP. \\n" -#: html/Elements/PageLayout:26 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "RT Ð´Ð»Ñ %1" +#: NOT FOUND IN SOURCE +msgid "RT for %1: %2" +msgstr "" + #: NOT FOUND IN SOURCE msgid "RT has proccessed your commands" msgstr "RT выполнил ваши команды" -#: html/Elements/Login:83 -#. ('2003') +#: 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>. ПО раÑпроÑтранÑетÑÑ Ð¿Ð¾Ð´ <a href=\"http://www.gnu.org/copyleft/gpl.html\">Стандартной ОбщеÑтвенной Лицензией GNU ВерÑии 2.</a>" +#: 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 "" + #: 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 "" @@ -3154,19 +4307,43 @@ msgstr "RT будет обрабатывать Ñто Ñообщение как 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. Ð’Ñ‹ либо не подпиÑали Ñообщение, либо ваша подпиÑÑŒ не может быть проверена." -#: html/Admin/Users/Modify.html:58 html/Admin/Users/Prefs.html:52 html/User/Prefs.html:44 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "ИмÑ" -#: html/Admin/Elements/ModifyUser:48 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "ИмÑ" -#: html/Ticket/Create.html:185 html/Ticket/Elements/EditLinks:139 html/Ticket/Elements/EditLinks:94 html/Ticket/Elements/ShowLinks:63 +#: lib/RT/Transaction_Overlay.pm:628 +#. ($value) +msgid "Reference by %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:668 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:625 +#. ($value) +msgid "Reference to %1 added" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:665 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "" + +#: 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 "Ðа него ÑÑылаютÑÑ" -#: html/Elements/SelectLinkType:28 html/Ticket/Create.html:184 html/Ticket/Elements/EditLinks:135 html/Ticket/Elements/EditLinks:80 html/Ticket/Elements/ShowLinks:55 +#: 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 "СÑылаетÑÑ Ð½Ð°" @@ -3178,20 +4355,20 @@ msgstr "" msgid "Refine" msgstr "Улучшить" -#: html/Search/Elements/PickRestriction:27 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Улучшить поиÑк" -#: html/Elements/Refresh:36 +#: html/Elements/Refresh:35 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "ОбновлÑть Ñту Ñтраницу каждые %1 минут." -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:60 html/Ticket/ModifyAll.html:57 +#: NOT FOUND IN SOURCE msgid "Relationships" -msgstr "СвÑзи" +msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "Удалить админиÑтративную копию" @@ -3199,27 +4376,35 @@ msgstr "Удалить админиÑтративную копию" msgid "Remove Cc" msgstr "Удалить копию" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "Удалить проÑителÑ" -#: html/Ticket/Elements/ShowTransaction:173 html/Ticket/Elements/Tabs:122 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "Ответить" -#: lib/RT/Queue_Overlay.pm:85 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "" -#: etc/initialdata:44 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:87 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "ПроÑитель" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "Email проÑителÑ" @@ -3231,98 +4416,107 @@ msgstr "" msgid "RequestorAddresses" msgstr "" -#: html/SelfService/Create.html:43 html/SelfService/Display.html:42 html/Ticket/Create.html:56 html/Ticket/Elements/EditPeople:48 html/Ticket/Elements/ShowPeople:31 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "ПроÑители" -#: html/Admin/Elements/ModifyQueue:61 html/Admin/Queues/Modify.html:75 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "ЗапроÑÑ‹ должны быть обработаны за" -#: html/Elements/Submit:62 +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "" + +#: html/Elements/Submit:61 msgid "Reset" msgstr "ОчиÑтить" -#: html/Admin/Users/Modify.html:159 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "Домашний" -#: html/Ticket/Elements/Tabs:132 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "Закрыть" -#: html/Ticket/Update.html:133 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:119 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "" -#: etc/initialdata:302 html/Elements/SelectDateType:28 lib/RT/Ticket_Overlay.pm:1170 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "Закрыт" -#: html/Search/Bulk.html:123 html/Ticket/ModifyAll.html:73 html/Ticket/Update.html:73 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "Ответ проÑителÑм" -#: html/Elements/ListActions:26 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "Отчет" -#: html/Search/Elements/PickRestriction:105 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "Тикетов на Ñтраницу" -#: html/Admin/Elements/ModifyUser:33 html/Admin/Users/Modify.html:100 html/User/Prefs.html:72 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "Повторите пароль" +#: html/Search/Elements/EditSearches:13 +msgid "Revert" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Право %1 не найдено Ð´Ð»Ñ %2 %3 в рамках %4 (%5)\\n" -#: lib/RT/ACE_Overlay.pm:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "Право делегировано" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "Право выдано" -#: lib/RT/ACE_Overlay.pm:161 +#: lib/RT/ACE_Overlay.pm:160 msgid "Right Loaded" msgstr "Право загружено" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "Право не может быть отобрано" -#: html/User/Delegation.html:64 +#: html/User/Delegation.html:63 msgid "Right not found" msgstr "Право не найдено" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "Право не загружено" -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "Право отобрано" -#: html/Admin/Elements/UserTabs:41 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "Права" -#: lib/RT/Interface/Web.pm:758 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "" -#: lib/RT/Interface/Web.pm:791 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "" -#: html/Admin/Global/GroupRights.html:51 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "ПÑевдо-группы" @@ -3330,32 +4524,53 @@ msgstr "ПÑевдо-группы" msgid "RootApproval" msgstr "" +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "" + #: lib/RT/Date.pm:393 msgid "Sat." msgstr "Суб." -#: html/Admin/Queues/People.html:105 html/Ticket/Modify.html:39 html/Ticket/ModifyAll.html:94 html/Ticket/ModifyPeople.html:38 +#: html/Search/Elements/EditSearches:21 +msgid "Save" +msgstr "" + +#: 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 "Сохранить изменениÑ" -#: html/Ticket/ModifyLinks.html:39 +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "Сохранить изменениÑ" -#: html/Admin/Global/Scrip.html:49 +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "" + +#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "" -#: lib/RT/Scrip_Overlay.pm:176 +#: lib/RT/Scrip_Overlay.pm:180 msgid "Scrip Created" msgstr "Создан Ñкрипт" -#: html/Admin/Elements/EditScrips:84 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: html/Admin/Elements/EditScrips:85 msgid "Scrip deleted" msgstr "Удален Ñкрипт" -#: html/Admin/Elements/QueueTabs:46 html/Admin/Elements/SystemTabs:33 html/Admin/Global/index.html:41 +#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 msgid "Scrips" msgstr "Скрипты" @@ -3367,7 +4582,7 @@ msgstr "Скрипты Ð´Ð»Ñ %1\\n" msgid "Scrips which apply to all queues" msgstr "Скрипты, которые дейÑтвуют Ð´Ð»Ñ Ð²Ñех очередей" -#: html/Elements/SimpleSearch:27 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:159 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "ПоиÑк" @@ -3375,19 +4590,63 @@ msgstr "ПоиÑк" msgid "Search Criteria" msgstr "Параметры поиÑка" -#: html/Approvals/Elements/PendingMyApproval:39 +#: html/Approvals/Elements/PendingMyApproval:38 msgid "Search for approvals" msgstr "ИÑкать визы" -#: bin/rt-crontool:188 +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "" + +#: bin/rt-crontool:184 msgid "Security:" msgstr "БезопаÑноÑть:" -#: lib/RT/Queue_Overlay.pm:67 +#: NOT FOUND IN SOURCE +msgid "See custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "SeeCustomField" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "" -#: html/Admin/Groups/index.html:40 +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Field" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "Выбор группы" @@ -3395,87 +4654,111 @@ msgstr "Выбор группы" msgid "Select a queue" msgstr "Выбор очереди" -#: html/Admin/Users/index.html:25 html/Admin/Users/index.html:28 +#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 msgid "Select a user" msgstr "Выбор пользователÑ" -#: html/Admin/Global/CustomField.html:38 html/Admin/Global/CustomFields.html:36 +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + +#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "" -#: html/Admin/Elements/GroupTabs:52 html/User/Elements/GroupTabs:50 +#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 msgid "Select group" msgstr "Выбрать группу" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "Выбрать неÑколько значений" -#: lib/RT/CustomField_Overlay.pm:352 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "Выбрать одно значение" -#: html/Admin/Elements/QueueTabs:67 +#: html/Admin/Elements/QueueTabs:66 msgid "Select queue" msgstr "Выбрать очередь" -#: html/Admin/Global/Scrip.html:37 html/Admin/Global/Scrips.html:36 html/Admin/Queues/Scrip.html:40 html/Admin/Queues/Scrips.html:50 +#: 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 "Выбрать Ñкриплет" -#: html/Admin/Global/Template.html:57 html/Admin/Global/Templates.html:36 html/Admin/Queues/Template.html:55 +#: 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 "Выбрать шаблон" -#: html/Admin/Elements/UserTabs:49 +#: NOT FOUND IN SOURCE +msgid "Select up to %1 values" +msgstr "" + +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "Выбрать пользователÑ" -#: lib/RT/CustomField_Overlay.pm:36 +#: lib/RT/CustomField_Overlay.pm:35 msgid "SelectMultiple" msgstr "Выбрать неÑколько" -#: lib/RT/CustomField_Overlay.pm:35 +#: lib/RT/CustomField_Overlay.pm:34 msgid "SelectSingle" msgstr "Выбрать одно" -#: html/SelfService/index.html:25 +#: NOT FOUND IN SOURCE +msgid "Selected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Selected objects" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Self Service" msgstr "СамообÑлуживание" -#: etc/initialdata:114 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "Отправить Ñообщение вÑем наблюдателÑм" -#: etc/initialdata:110 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "Отправить Ñообщение вÑем наблюдателÑм как \"комментарий\"" -#: etc/initialdata:105 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "Отправить Ñообщение вÑем инициаторам запроÑа и CCs" -#: etc/initialdata:100 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "" -#: etc/initialdata:79 +#: etc/initialdata:78 msgid "Sends a message to the requestors" msgstr "" -#: etc/initialdata:118 etc/initialdata:122 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "" -#: etc/initialdata:95 +#: 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:91 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "" -#: etc/initialdata:83 etc/initialdata:87 +#: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" msgstr "" @@ -3483,51 +4766,87 @@ msgstr "" msgid "Sep." msgstr "Сен." -#: html/Approvals/Elements/PendingMyApproval:44 +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "" + +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "" + +#: html/Ticket/Elements/Tabs:178 +msgid "Show Results" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "Показать завизированные запроÑÑ‹" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show basics" msgstr "Показать главное" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:44 msgid "Show denied requests" msgstr "Показать отвергнутые запроÑÑ‹" -#: html/Ticket/Create.html:144 html/Ticket/Create.html:34 +#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 msgid "Show details" msgstr "Показать вÑе" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:42 msgid "Show pending requests" msgstr "Показать ожидающие запроÑÑ‹" -#: html/Approvals/Elements/PendingMyApproval:46 +#: html/Approvals/Elements/PendingMyApproval:45 msgid "Show requests awaiting other approvals" msgstr "Показать запроÑÑ‹, ждущие других виз" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "Показать приватные комментарии по тикету" -#: lib/RT/Queue_Overlay.pm:79 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "Показать общую информацию по запроÑу" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "" @@ -3535,43 +4854,58 @@ msgstr "" msgid "ShowTicketComments" msgstr "" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "" -#: html/Admin/Elements/ModifyUser:39 html/Admin/Users/Modify.html:191 html/Admin/Users/Prefs.html:32 html/SelfService/Prefs.html:37 html/User/Prefs.html:112 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "ПодпиÑÑŒ" -#: html/SelfService/Elements/Header:52 -#. ($session{'CurrentUser'}->Name) +#: NOT FOUND IN SOURCE msgid "Signed in as %1" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:25 msgid "Single" msgstr "Одно значение" -#: html/Elements/Header:51 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "" -#: html/Admin/Elements/EditCustomFieldValues:31 +#: html/Admin/Elements/AddCustomFieldValue:27 +msgid "Sort" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Sort key" msgstr "Ключ Ð´Ð»Ñ Ñортировки" -#: html/Search/Elements/PickRestriction:109 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "Сортировать по полю" -#: html/Admin/Elements/AddCustomFieldValue:25 +#: NOT FOUND IN SOURCE msgid "SortOrder" msgstr "ПорÑдок Ñортировки" +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 +msgid "Stage" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Stalled" msgstr "Отложенных" @@ -3580,7 +4914,7 @@ msgstr "Отложенных" msgid "Start page" msgstr "ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ñтраница" -#: html/Elements/SelectDateType:27 html/Ticket/Elements/EditDates:32 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "ÐачалÑÑ" @@ -3588,7 +4922,7 @@ msgstr "ÐачалÑÑ" msgid "Started date '%1' could not be parsed" msgstr "Ðе могу разобрать дату 'ÐачалÑÑ': '%1'" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:27 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "ÐачнетÑÑ" @@ -3600,74 +4934,122 @@ msgstr "ЗапуÑки" msgid "Starts date '%1' could not be parsed" msgstr "Ðе могу разобрать дату 'ЗапуÑки': '%1'" -#: html/Admin/Elements/ModifyUser:82 html/Admin/Users/Modify.html:138 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "СоÑтоÑние" -#: html/Elements/MyRequests:31 html/Elements/MyTickets:31 html/Search/Elements/PickRestriction:74 html/SelfService/Display.html:59 html/SelfService/Elements/MyRequests:29 html/SelfService/Update.html:31 html/Ticket/Create.html:42 html/Ticket/Elements/EditBasics:38 html/Ticket/Elements/ShowBasics:31 html/Ticket/Update.html:60 lib/RT/Ticket_Overlay.pm:1164 lib/RT/Tickets_Overlay.pm:908 +#: 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 "СтатуÑ" -#: etc/initialdata:288 +#: etc/initialdata:309 msgid "Status Change" msgstr "" -#: lib/RT/Transaction_Overlay.pm:530 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½ Ñ %1 на %2" -#: html/Ticket/Elements/Tabs:147 +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "" + +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "Отобрать" -#: lib/RT/Transaction_Overlay.pm:589 +#: lib/RT/Queue_Overlay.pm:94 +msgid "Steal tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "StealTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "Отобран у %1" -#: html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Search/Bulk.html:126 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:59 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:35 html/Ticket/Create.html:84 html/Ticket/Elements/EditBasics:28 html/Ticket/ModifyAll.html:79 html/Ticket/Update.html:77 lib/RT/Ticket_Overlay.pm:1160 lib/RT/Tickets_Overlay.pm:987 +#: 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 "Тема" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/Transaction_Overlay.pm:611 +#: 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 "Тема изменена на %1" -#: html/Elements/Submit:59 +#: html/Elements/Submit:58 msgid "Submit" msgstr "Готово" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "" + #: lib/RT/Group_Overlay.pm:749 msgid "Succeeded" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + #: lib/RT/Date.pm:394 msgid "Sun." msgstr "Ð’Ñк." -#: lib/RT/System.pm:54 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "ÐдминиÑтратор" -#: html/User/Elements/DelegateRights:77 +#: html/User/Elements/DelegateRights:76 msgid "System" msgstr "СиÑтемные" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:757 lib/RT/Interface/Web.pm:790 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "" + +#: 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 "Ошибка ÑиÑтемы" -#: lib/RT/ACE_Overlay.pm:616 +#: NOT FOUND IN SOURCE +msgid "System Error. Right not granted." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "System Error. right not granted" +msgstr "" + +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "Ошибка ÑиÑтемы. Право не было делегировано." -#: lib/RT/ACE_Overlay.pm:146 lib/RT/ACE_Overlay.pm:223 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "Ошибка ÑиÑтемы. Право не было выдано." -#: html/Admin/Global/GroupRights.html:35 html/Admin/Groups/GroupRights.html:37 html/Admin/Queues/GroupRights.html:36 +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "" + +#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 msgid "System groups" msgstr "СиÑтемные группы" @@ -3675,32 +5057,44 @@ msgstr "СиÑтемные группы" msgid "SystemRolegroup for internal use" msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ³Ð¾ иÑпользованиÑ" -#: lib/RT/CurrentUser.pm:320 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Ticket/Elements/Tabs:143 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "ВзÑть" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Queue_Overlay.pm:92 +msgid "Take tickets" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "TakeTicket" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "ВзÑÑ‚" -#: html/Admin/Elements/EditScrip:81 +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "" + +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "Шаблон" -#: html/Admin/Global/Template.html:91 html/Admin/Queues/Template.html:90 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Шаблон #%1" -#: html/Admin/Elements/EditTemplates:89 +#: html/Admin/Elements/EditTemplates:88 msgid "Template deleted" msgstr "Шаблон удален" -#: lib/RT/Scrip_Overlay.pm:153 +#: lib/RT/Scrip_Overlay.pm:156 msgid "Template not found" msgstr "Шаблон не найден" @@ -3708,11 +5102,11 @@ msgstr "Шаблон не найден" msgid "Template not found\\n" msgstr "Шаблон не найден\\n" -#: lib/RT/Template_Overlay.pm:347 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "Шаблон обработан" -#: html/Admin/Elements/QueueTabs:49 html/Admin/Elements/SystemTabs:36 html/Admin/Global/index.html:45 +#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 msgid "Templates" msgstr "Шаблоны" @@ -3720,135 +5114,158 @@ msgstr "Шаблоны" msgid "Templates for %1\\n" msgstr "Шаблоны Ð´Ð»Ñ %1\\n" -#: lib/RT/Interface/Web.pm:858 +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "" + +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "Это уже текущее значение" -#: lib/RT/CustomField_Overlay.pm:178 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "Это поле не может иметь такого значениÑ" -#: lib/RT/Ticket_Overlay.pm:1886 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "Значение не изменилоÑÑŒ" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +msgid "That principal already has that right" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Этот пользователь уже %1 Ð´Ð»Ñ Ñтой очереди" -#: lib/RT/Ticket_Overlay.pm:1434 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Этот пользователь уже %1 Ð´Ð»Ñ Ñтого тикета" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Этот пользователь не %1 Ñтой очереди" -#: lib/RT/Ticket_Overlay.pm:1551 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "Этот пользователь не %1 Ñтому тикету" -#: lib/RT/Ticket_Overlay.pm:1882 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "Этой очереди не ÑущеÑтвует" -#: lib/RT/Ticket_Overlay.pm:3143 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "Этот тикет имеет неразрешенные завиÑимоÑти" -#: lib/RT/ACE_Overlay.pm:288 lib/RT/ACE_Overlay.pm:597 +#: NOT FOUND IN SOURCE msgid "That user already has that right" msgstr "Пользователь уже имеет Ñто право" -#: lib/RT/Ticket_Overlay.pm:2952 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "Пользователь уже владеет Ñтим тикетом" -#: lib/RT/Ticket_Overlay.pm:2918 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "Пользователь не ÑущеÑтвует" -#: lib/RT/User_Overlay.pm:315 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "Этот пользователь уже имеет вÑе полномочиÑ" -#: lib/RT/User_Overlay.pm:332 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "Этот пользователь уже не имеет полномочий" -#: lib/RT/User_Overlay.pm:327 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "Этот пользователь теперь имеет вÑе полномочиÑ" -#: lib/RT/User_Overlay.pm:344 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "Этот пользователь теперь не имеет полномочий" -#: lib/RT/Ticket_Overlay.pm:2944 +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "Этот пользователь не может владеть тикетами из Ñтой очереди" -#: lib/RT/Link_Overlay.pm:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "Это не чиÑловой идентификатор" -#: html/Ticket/Create.html:150 html/Ticket/Elements/ShowSummary:28 +#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 msgid "The Basics" msgstr "Главное" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:87 msgid "The CC of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:89 +#: lib/RT/ACE_Overlay.pm:88 msgid "The administrative CC of a ticket" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2213 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "ЗапиÑан комментарий" -#: bin/rt-crontool:198 +#: 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 "" -#: bin/rt-commit-handler:756 bin/rt-commit-handler:766 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "Эти команды не были иÑполнены:\\n\\n" -#: lib/RT/Interface/Web.pm:861 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "Ðовое значение уÑтановлено" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:85 msgid "The owner of a ticket" msgstr "Владелец тикета" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:86 msgid "The requestor of a ticket" msgstr "Кто отправил тикет" -#: html/Admin/Elements/EditUserComments:26 +#: html/Admin/Elements/EditUserComments:25 msgid "These comments aren't generally visible to the user" msgstr "Эти комментарии не показываютÑÑ Ð¾Ð±Ñ‹ÐºÐ½Ð¾Ð²ÐµÐ½Ð½Ð¾Ð¼Ñƒ пользователю" +#: NOT FOUND IN SOURCE +msgid "This custom field does not apply to that object" +msgstr "" + +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:48 +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:189 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Этот инÑтрумент позволÑет пользователю запуÑкать некоторые модули Perl из RT." -#: lib/RT/Transaction_Overlay.pm:253 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "Похоже, что Ñта Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð½Ðµ имеет информации" -#: html/Ticket/Elements/ShowRequestor:47 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "%1 тикетов макÑимального приоритета Ñтого пользователÑ" @@ -3861,61 +5278,87 @@ msgstr "25 важнейших тикетов пользователÑ..." msgid "Thu." msgstr "Чтв." -#: html/Ticket/ModifyAll.html:25 html/Ticket/ModifyAll.html:29 +#: NOT FOUND IN SOURCE +msgid "Ticket" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 Jumbo update: %2" +msgstr "" + +#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Тикет #%1 Обновление вÑего: %2" -#: html/Approvals/Elements/ShowDependency:46 +#: html/Approvals/Elements/ShowDependency:45 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "" -#: lib/RT/Ticket_Overlay.pm:608 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Тикет %1 Ñоздан в очереди '%2'" -#: bin/rt-commit-handler:760 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "Загружен тикет %1\\n" -#: html/Search/Bulk.html:181 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Тикет %1: %2" -#: html/Ticket/History.html:25 html/Ticket/History.html:28 +#: NOT FOUND IN SOURCE +msgid "Ticket Custom Fields" +msgstr "" + +#: html/Ticket/History.html:24 html/Ticket/History.html:27 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð° # %1 %2" -#: html/SelfService/Display.html:34 +#: NOT FOUND IN SOURCE msgid "Ticket Id" msgstr "Тикет #" -#: etc/initialdata:303 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "" -#: html/Search/Elements/PickRestriction:63 +#: NOT FOUND IN SOURCE +msgid "Ticket Transactions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Ð”Ð»Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹" -#: lib/RT/Tickets_Overlay.pm:1166 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "ТекÑÑ‚ тикета" -#: lib/RT/Tickets_Overlay.pm:1212 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "Тип данных тикета" -#: lib/RT/Ticket_Overlay.pm:495 lib/RT/Ticket_Overlay.pm:597 +#: 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 "Тикет не может быть Ñоздан из-за внутренней ошибки" -#: lib/RT/Transaction_Overlay.pm:522 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "Создан тикет" @@ -3923,103 +5366,135 @@ msgstr "Создан тикет" msgid "Ticket creation failed" msgstr "Ðе удалоÑÑŒ Ñоздать тикет" -#: lib/RT/Transaction_Overlay.pm:527 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "Тикет удален" -#: html/REST/1.0/modify:29 html/REST/1.0/update:34 +#: NOT FOUND IN SOURCE msgid "Ticket id not found" msgstr "Идентификатор тикета не найден" -#: html/REST/1.0/modify:36 html/REST/1.0/update:41 +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "" + +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "Тикет не найден" -#: etc/initialdata:289 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚Ð¸ÐºÐµÑ‚Ð° изменен" -#: html/Ticket/Update.html:39 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "Ðаблюдатели Ð´Ð»Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð°" -#: html/Elements/Tabs:49 +#: html/Elements/Tabs:46 msgid "Tickets" msgstr "Тикеты" -#: lib/RT/Tickets_Overlay.pm:1383 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1348 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Тикеты от %1" -#: html/Approvals/Elements/ShowDependency:27 +#: html/Approvals/Elements/ShowDependency:26 msgid "Tickets which depend on this approval:" msgstr "От Ñтой визы завиÑÑÑ‚ Ñледующие тикеты:" -#: html/Ticket/Create.html:157 html/Ticket/Elements/EditBasics:48 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "ОÑталоÑÑŒ" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "Ð’ работе" -#: lib/RT/Tickets_Overlay.pm:1139 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "ОÑталоÑÑŒ" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°" -#: lib/RT/Tickets_Overlay.pm:1115 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "Ð’ работе" -#: lib/RT/Ticket_Overlay.pm:1165 +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "Ð’ работе" -#: bin/rt-commit-handler:402 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "Ð”Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ изменений Ñтого коммита:" -#: bin/rt-commit-handler:391 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "Ð”Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ изменений Ñтого коммита:\\n" -#: lib/RT/Ticket_Overlay.pm:1168 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "Контакт" -#: etc/initialdata:237 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "" + +#: etc/initialdata:252 msgid "Transaction" msgstr "ТранзакциÑ" -#: lib/RT/Transaction_Overlay.pm:642 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ %1 удалена" -#: lib/RT/Transaction_Overlay.pm:177 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "Создана транзакциÑ" -#: lib/RT/Transaction_Overlay.pm:89 +#: NOT FOUND IN SOURCE +msgid "Transaction Custom Fields" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "" -#: lib/RT/Transaction_Overlay.pm:701 +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "Транзакции не изменены" @@ -4031,102 +5506,169 @@ msgstr "ПытаемÑÑ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ право: %1" msgid "Tue." msgstr "Втр." -#: html/Admin/Elements/EditCustomField:34 html/Ticket/Elements/AddWatchers:33 html/Ticket/Elements/AddWatchers:44 html/Ticket/Elements/AddWatchers:54 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:959 +#: 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 "Тип" -#: lib/RT/ScripCondition_Overlay.pm:104 +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + +#: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "Ðе реализовано" -#: html/Admin/Users/Modify.html:68 +#: html/Admin/Users/Modify.html:67 msgid "Unix login" msgstr "Логин UNIX" -#: html/Admin/Elements/ModifyUser:62 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ UNIX" -#: lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ° %1" -#: html/Elements/SelectResultsPerPage:37 +#: html/Elements/SelectResultsPerPage:36 msgid "Unlimited" msgstr "Ðе ограничено" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "Ðепривилегированный" -#: lib/RT/Transaction_Overlay.pm:571 +#: NOT FOUND IN SOURCE +msgid "Unselected Custom Fields" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Unselected objects" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "Ðичей" -#: html/Elements/MyTickets:64 html/Search/Bulk.html:33 +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "" + +#: html/Search/Bulk.html:32 msgid "Update" msgstr "Обновить" -#: html/Admin/Users/Prefs.html:62 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Обновить идентификатор" -#: html/Search/Bulk.html:120 html/Ticket/ModifyAll.html:66 html/Ticket/Update.html:67 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "Обновить тип" -#: html/Search/Listing.html:61 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "Изменить одним махом" -#: html/Admin/Users/Prefs.html:49 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "Обновить e-mail" -#: html/Admin/Users/Prefs.html:55 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "Обновить имÑ" -#: lib/RT/Interface/Web.pm:375 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ Ñохранены." -#: html/Search/Bulk.html:81 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "Изменить выбранные тикеты" -#: html/Admin/Users/Prefs.html:36 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Обновить подпиÑÑŒ" -#: html/Ticket/ModifyAll.html:63 +#: html/Ticket/ModifyAll.html:62 msgid "Update ticket" msgstr "Обновить тикет" -#: html/SelfService/Update.html:25 html/SelfService/Update.html:27 -#. ($Ticket->id) +#: NOT FOUND IN SOURCE msgid "Update ticket # %1" msgstr "Обновить тикет # %1" -#: html/SelfService/Update.html:50 +#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Обновить тикет #%1" -#: html/Ticket/Update.html:135 -#. ($Ticket->id, $Ticket->Subject) +#: html/Ticket/Update.html:121 +#. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Обновить тикет #%1 (%2)" -#: lib/RT/Interface/Web.pm:373 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "Обновление не было ни Ñообщением, ни комментарием." -#: html/Elements/SelectDateType:33 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1169 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "Обновлен" +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple images" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload one image" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 files" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 images" +msgstr "" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" msgstr "Пользователь %1 %2: %3\\n" @@ -4135,6 +5677,11 @@ msgstr "Пользователь %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Пользователь %1 Пароль: %2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "Пользователь '%1' не найден" @@ -4143,60 +5690,80 @@ msgstr "Пользователь '%1' не найден" msgid "User '%1' not found\\n" msgstr "Пользователь '%1' не найден\\n" -#: etc/initialdata:125 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "" -#: html/Admin/Users/Prefs.html:59 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "Логин" -#: html/Elements/SelectUsers:26 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "Логин" -#: html/Admin/Elements/GroupTabs:47 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/SystemTabs:47 html/Admin/Global/index.html:59 +#: 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 "Права пользователÑ" -#: html/Admin/Users/Modify.html:226 +#: NOT FOUND IN SOURCE +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" + +#: html/Admin/Users/Modify.html:252 #. ($msg) msgid "User could not be created: %1" msgstr "Ðе могу Ñоздать пользователÑ: %1" -#: lib/RT/User_Overlay.pm:262 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "Создан пользователь" -#: html/Admin/Global/GroupRights.html:67 html/Admin/Groups/GroupRights.html:54 html/Admin/Queues/GroupRights.html:68 +#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 msgid "User defined groups" msgstr "Группы, определенные пользователем" +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +msgid "User loaded" +msgstr "" + #: NOT FOUND IN SOURCE msgid "User notified" msgstr "Пользователю отоÑлано напоминание" -#: html/Admin/Users/Prefs.html:25 html/Admin/Users/Prefs.html:29 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "ПользовательÑкие наÑтройки" -#: html/Admin/Users/Modify.html:48 html/Elements/Login:42 html/Ticket/Elements/AddWatchers:35 +#: NOT FOUND IN SOURCE +msgid "User-defined groups" +msgstr "" + +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "Логин" -#: html/Admin/Elements/SelectNewGroupMembers:26 html/Admin/Elements/Tabs:32 html/Admin/Groups/Members.html:55 html/Admin/Queues/People.html:68 html/Admin/index.html:29 html/User/Groups/Members.html:58 +#: 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 "Пользователи" -#: html/Admin/Users/index.html:65 +#: html/Admin/Users/index.html:64 msgid "Users matching search criteria" msgstr "Ðайдены пользователи" -#: html/Search/Elements/PickRestriction:51 +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "ValueOfQueue" -#: html/Admin/Elements/EditCustomField:40 +#: html/Admin/Elements/EditCustomField:56 msgid "Values" msgstr "ЗначениÑ" @@ -4204,19 +5771,23 @@ msgstr "ЗначениÑ" msgid "VrijevormEnkele" msgstr "" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "" -#: html/Admin/Elements/QueueTabs:42 +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "" + +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "Ðаблюдатели" -#: html/Admin/Elements/ModifyUser:56 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "WebEncoding" @@ -4224,75 +5795,103 @@ msgstr "WebEncoding" msgid "Wed." msgstr "Срд." -#: etc/upgrade/2.1.71:161 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "" -#: etc/upgrade/2.1.71:135 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "" -#: etc/upgrade/2.1.71:79 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "" -#: etc/initialdata:178 +#: 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:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "" -#: html/Admin/Users/Modify.html:164 html/User/Prefs.html:52 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "Рабочий" -#: html/Admin/Elements/ModifyUser:70 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "Рабочий" -#: html/SelfService/Display.html:86 html/Ticket/Elements/ShowBasics:35 html/Ticket/Update.html:65 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "Ð’ работе" -#: lib/RT/Ticket_Overlay.pm:3056 +#: html/autohandler:150 +msgid "XXX CHANGEME You are not an authorized user" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "Ð’Ñ‹ уже владеете Ñтим тикетом" -#: html/autohandler:121 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "Вам Ñюда запрещено" -#: lib/RT/Ticket_Overlay.pm:2930 +#: NOT FOUND IN SOURCE +msgid "You can access it with the Download button on the right." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Ð’Ñ‹ можете назначать владельца только Ð´Ð»Ñ Ñвоих или ничьих тикетов." @@ -4300,29 +5899,28 @@ msgstr "Ð’Ñ‹ можете назначать владельца только д msgid "You don't have permission to view that ticket.\\n" msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ права на проÑмотр Ñтого тикета.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "You found %1 tickets in queue %2" -#: html/NoAuth/Logout.html:31 html/REST/1.0/logout:25 +#: html/NoAuth/Logout.html:30 msgid "You have been logged out of RT." msgstr "Ð’Ñ‹ вышли из RT." -#: html/SelfService/Display.html:134 +#: html/SelfService/Display.html:79 msgid "You have no permission to create tickets in that queue." msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ права Ñоздавать тикеты в Ñтой очереди." -#: lib/RT/Ticket_Overlay.pm:1895 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "Ð’Ñ‹ не можете Ñоздавать запроÑÑ‹ в Ñтой очереди." -#: html/NoAuth/Logout.html:36 +#: html/NoAuth/Logout.html:34 msgid "You're welcome to login again" msgstr "Заходите еще" -#: html/SelfService/Elements/MyRequests:25 -#. ($friendly_status) +#: NOT FOUND IN SOURCE msgid "Your %1 requests" msgstr "Ваши запроÑÑ‹: %1" @@ -4330,84 +5928,116 @@ msgstr "Ваши запроÑÑ‹: %1" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "ÐдминиÑтратор RT неправильно наÑтроил почтовые алиаÑÑ‹" -#: etc/initialdata:429 etc/upgrade/2.1.71:146 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "Ваш Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¸Ð» %1. Другие Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ продолжать находитьÑÑ Ð² ожидании." -#: etc/initialdata:463 etc/upgrade/2.1.71:180 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "Ваш Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½." -#: etc/initialdata:384 etc/upgrade/2.1.71:101 +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "" + +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "Ваш Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» отвергнут." -#: html/autohandler:136 html/autohandler:142 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "Ð’Ñ‹ ввели неверное Ð¸Ð¼Ñ Ð¸Ð»Ð¸ пароль" -#: html/Admin/Elements/ModifyUser:84 html/Admin/Users/Modify.html:144 html/User/Prefs.html:96 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "ИндекÑ" -#: html/User/Elements/DelegateRights:59 +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + +#: html/User/Elements/DelegateRights:58 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ %1" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:34 +#: html/SelfService/Closed.html:27 +msgid "closed" +msgstr "" + +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 msgid "contains" msgstr "Ñодержит" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content" msgstr "данные" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "тип данных" -#: lib/RT/Ticket_Overlay.pm:2282 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "Ñообщение (возможно) не отправлено" -#: lib/RT/Ticket_Overlay.pm:2292 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "отправлено Ñообщение" -#: html/Admin/Elements/ModifyQueue:63 html/Admin/Queues/Modify.html:77 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "дней" -#: html/Search/Listing.html:75 +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "delete" msgstr "удалить" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "удален" -#: html/Search/Elements/PickRestriction:68 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "не Ñовпадает" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:35 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 msgid "doesn't contain" msgstr "не Ñодержит" -#: html/Elements/SelectEqualityOperator:38 +#: NOT FOUND IN SOURCE +msgid "email address" +msgstr "" + +#: html/Elements/SelectEqualityOperator:37 msgid "equal to" msgstr "равнÑетÑÑ" -#: html/Elements/SelectAttachmentField:28 +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "filename" msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "greater than" msgstr "больше чем" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "группа '%1'" @@ -4420,19 +6050,23 @@ msgstr "чаÑов" msgid "id" msgstr "идентификатор" -#: html/Elements/SelectBoolean:32 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + +#: 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 "ÑвлÑетÑÑ" -#: html/Elements/SelectBoolean:36 html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectMatch:37 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 +#: 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 "не ÑвлÑетÑÑ" -#: html/Elements/SelectCustomFieldOperator:38 html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 msgid "less than" msgstr "меньше чем" -#: html/Search/Elements/PickRestriction:67 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "Ñовпадает" @@ -4440,11 +6074,11 @@ msgstr "Ñовпадает" msgid "min" msgstr "мин" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "минут" -#: bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "изменениÑ\\n\\n" @@ -4452,41 +6086,49 @@ msgstr "изменениÑ\\n\\n" msgid "months" msgstr "меÑÑцев" -#: lib/RT/Queue_Overlay.pm:58 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "новый" -#: html/Admin/Elements/EditScrips:43 +#: html/Admin/Elements/EditCustomFields:42 +msgid "no name" +msgstr "" + +#: html/Admin/Elements/EditScrips:42 msgid "no value" msgstr "" -#: html/Ticket/Elements/EditWatchers:28 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "нет" -#: html/Elements/SelectEqualityOperator:38 +#: html/Elements/SelectEqualityOperator:37 msgid "not equal to" msgstr "не равен" -#: lib/RT/Queue_Overlay.pm:59 +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "" + +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "открыт" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° '%1' Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ '%2'" -#: lib/RT/Group_Overlay.pm:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "очередь %1 %2" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "отклонен" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "решен" @@ -4494,35 +6136,55 @@ msgstr "решен" msgid "sec" msgstr "Ñек" -#: lib/RT/Queue_Overlay.pm:60 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "отложен" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "ÑиÑтема %1" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "ÑиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:42 +#: html/Elements/Error:42 html/SelfService/Error.html:41 msgid "the calling component did not specify why" msgstr "вызывающий компонент не указал причину" -#: lib/RT/Group_Overlay.pm:210 +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "тикет #%1 %2" -#: lib/RT/Group_Overlay.pm:216 +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "" + +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "неопиÑÐ°Ð½Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° %1" -#: lib/RT/Group_Overlay.pm:191 +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "" + +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "пользователь %1" @@ -4538,3 +6200,8 @@ msgstr "Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ %1" #: lib/RT/Date.pm:331 msgid "years" msgstr "лет" + +#: NOT FOUND IN SOURCE +msgid "ニックãƒãƒ¼ãƒ " +msgstr "" + diff --git a/rt/lib/RT/I18N/zh_cn.po b/rt/lib/RT/I18N/zh_cn.po index c7df01647..72e09fea1 100644 --- a/rt/lib/RT/I18N/zh_cn.po +++ b/rt/lib/RT/I18N/zh_cn.po @@ -7,7 +7,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:27 html/Elements/MyTickets:27 html/Work/Elements/MyApprovals:8 html/Work/Elements/MyRequests:15 html/Work/Elements/MyTickets:15 +#: NOT FOUND IN SOURCE msgid "#" msgstr "#" @@ -23,6 +23,11 @@ msgstr "#%1" msgid "#%1: %2" msgstr "#%1: %2" +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%*(%1,group ticket)" msgstr "%*(%1) ä»¶å‚与的申请å•" @@ -35,12 +40,18 @@ msgstr "%*(%1) 件陿œŸå®Œæˆçš„申请å•" msgid "%*(%1,unresolved ticket)" msgstr "%*(%1) 件尚未解决的申请å•" -#: lib/RT/Date.pm:337 +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +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:831 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -50,8 +61,7 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%7-%2-%3 %4:%5:%6 %1" -#: lib/RT/Ticket_Overlay.pm:3600 lib/RT/Transaction_Overlay.pm:514 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Vendor.pm:26 -#. ($field, $new_value) +#: 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) @@ -63,78 +73,129 @@ msgstr "%2 已新增为 %1" msgid "%1 %2 ago" msgstr "%1 %2 之å‰" -#: lib/RT/Ticket_Overlay.pm:3606 lib/RT/Transaction_Overlay.pm:521 lib/RT/Transaction_Vendor.pm:32 -#. ($field, $old_value, $new_value) +#: 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 改为 %3" -#: lib/RT/Ticket_Overlay.pm:3603 lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:563 lib/RT/Transaction_Vendor.pm:29 -#. ($field, $old_value) +#: 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 "%2 已自 %1 删除" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:157 -#. ($depth_str, $role_str, $group_str) +#: NOT FOUND IN SOURCE msgid "%1 %2 of group %3" msgstr "%3 群组的 %1 %2" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 +#: 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 | 模æ¿ï¼š%3" +#: NOT FOUND IN SOURCE +msgid "%1 %2 הוסף" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 מקבוצה %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 נמחק" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 שונה ל %3" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 这份申请å•\\n" -#: html/Search/Listing.html:56 html/Work/Search/index.html:28 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 פנייה זו\\n" +msgstr "" + +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "显示第 %1 - %2 笔" -#: bin/rt-crontool:168 bin/rt-crontool:175 bin/rt-crontool:181 +#: 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 - 传递给 %2 çš„ä¸€ä¸ªå‚æ•°" -#: bin/rt-crontool:184 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - 将更新状æ€è¾“出到 STDOUT" -#: bin/rt-crontool:178 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - 指定欲使用的动作模å—" -#: bin/rt-crontool:172 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - 指定欲使用的æ¡ä»¶æ¨¡å—" -#: bin/rt-crontool:165 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - 指定欲使用的查询模å—" -#: lib/RT/ScripAction_Overlay.pm:122 +#: NOT FOUND IN SOURCE +msgid "%1 - ×רגומנט להעביר ×ל %2" +msgstr "" + + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "加载手续 %1" -#: html/Edit/Elements/Page:47 -#. (scalar $count) +#: NOT FOUND IN SOURCE msgid "%1 Total" msgstr "å…± %1 笔" -#: lib/RT/Ticket_Overlay.pm:3633 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "新增 %1 作为 %2 的值" @@ -151,19 +212,19 @@ msgstr "别å %1 需è¦å¯ç”¨çš„申请å•ç¼–å· " msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "别å %1 需è¦å¯ç”¨çš„申请å•ç¼–å·ä»¥å¤„ç† %3(出自 %2)" -#: lib/RT/Link_Overlay.pm:116 lib/RT/Link_Overlay.pm:123 +#: 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 çœ‹æ¥æ˜¯ä¸ªæœ¬åœ°å¯¹è±¡ï¼Œå´ä¸åœ¨æ•°æ®åº“里" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:430 +#: 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 (%2)" -#: lib/RT/Transaction_Overlay.pm:484 lib/RT/Transaction_Overlay.pm:652 lib/RT/Transaction_Overlay.pm:661 lib/RT/Transaction_Overlay.pm:664 +#: 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) @@ -171,7 +232,12 @@ msgstr "%1 (%2)" msgid "%1 changed from %2 to %3" msgstr "%1 的值从 %2 改为 %3" -#: lib/RT/Interface/Web.pm:955 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "无法将 %1 设定为 %2。" @@ -179,42 +245,52 @@ msgstr "无法将 %1 设定为 %2。" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 无法åˆå§‹æ›´æ–° (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2888 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 无法将现况设æˆå·²è§£å†³ã€‚RT æ•°æ®åº“内容å¯èƒ½ä¸ä¸€è‡´ã€‚" +#: NOT FOUND IN SOURCE +msgid "%1 created" +msgstr "已建立 %1" + +#: NOT FOUND IN SOURCE +msgid "%1 deleted" +msgstr "已删除 %1" + #: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "å‰ %1 份待处ç†ç”³è¯·å•" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "å‰ %1 份待处ç†ç”³è¯·å•..." -#: html/Elements/MyRequests:24 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "å‰ %1 份é€å‡ºçš„申请å•..." -#: html/Work/Elements/MyApprovals:5 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets pending my approval..." msgstr "å‰ %1 份待签核申请å•..." -#: bin/rt-crontool:160 +#: bin/rt-crontool:157 #. ($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:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å•çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:1602 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 å·²ä¸å†æ˜¯æ­¤ç”³è¯·å•çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:3689 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 å·²ä¸å†æ˜¯è‡ªè®¢å­—段 %2 的值。" @@ -223,22 +299,45 @@ msgstr "%1 å·²ä¸å†æ˜¯è‡ªè®¢å­—段 %2 的值。" msgid "%1 isn't a valid Queue id." msgstr "%1 䏿˜¯ä¸€ä¸ªåˆæ³•的表å•ç¼–å·ã€‚" -#: html/Ticket/Elements/ShowBasics:35 -#. ($TimeWorked) +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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 分钟" +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "å‰ %1 份待认领的申请å•" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "没有显示 %1" -#: html/Work/Elements/MyTickets:9 -#. ($rows) +#: NOT FOUND IN SOURCE +msgid "%1 objects" +msgstr "%1 对象" + +#: NOT FOUND IN SOURCE msgid "%1 recent tickets I own..." msgstr "最新 %1 份待处ç†ç”³è¯·å•..." -#: html/Work/Elements/MyRequests:9 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 recent tickets I requested..." msgstr "最新 %1 份é€å‡ºçš„申请å•..." @@ -272,23 +371,72 @@ msgstr "%1 新增时未指定现行使用者" msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 会解决在已解决群组里æˆå‘˜çš„申请å•。" -#: lib/RT/Action/StallDependent.pm:40 -#. (ref $self) +#: 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/Transaction_Overlay.pm:382 +#: NOT FOUND IN SOURCE +msgid "%1 הוסף כערך עבור %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 לפני %2 ימי×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 על ידי %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 פעולת-סקריפ נטענה" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 שונה מ %2 ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2 objects" +msgstr "%1 内的 %2 对象" + +#: NOT FOUND IN SOURCE +msgid "%1's %2's %3 objects" +msgstr "%1 内的 %2 çš„ %3 对象" + +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "%1 已储存的查询" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1:未指定附件" -#: html/Ticket/Elements/ShowTransaction:108 html/Work/Tickets/Elements/ShowTransaction:169 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "%1 字节" -#: html/Ticket/Elements/ShowTransaction:105 html/Work/Tickets/Elements/ShowTransaction:166 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k 字节" @@ -296,7 +444,7 @@ msgstr "%1k 字节" msgid "%quant(%1,result) found" msgstr "找到 %1 项结果" -#: lib/RT/Ticket_Overlay.pm:1190 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' 䏿˜¯ä¸€ä¸ªåˆæ³•的状æ€å€¼" @@ -313,7 +461,7 @@ msgstr "(点选欲删除的æˆå‘˜)" msgid "(Check box to delete scrip)" msgstr "(点选欲删除的手续)" -#: html/Admin/Elements/EditCustomFieldValues:24 html/Admin/Elements/EditQueueWatchers:28 html/Admin/Elements/EditScrips:34 html/Admin/Elements/EditTemplates:35 html/Admin/Elements/EditWorkflows:36 html/Admin/Groups/Members.html:51 html/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 html/Work/Tickets/Elements/EditLinks:20 html/Work/Tickets/Elements/EditPeople:36 +#: 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 "(点选欲删除的项目)" @@ -321,10 +469,22 @@ msgstr "(点选欲删除的项目)" msgid "(Check boxes to delete)" msgstr "(点选欲删除的项目)" +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "(点选欲åœç”¨é€šçŸ¥çš„æ”¶ä»¶äºº)" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "(点选欲å¯ç”¨é€šçŸ¥çš„æ”¶ä»¶äºº)" + #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(键入申请å•ç¼–å·æˆ–网å€ï¼Œä»¥ç©ºç™½åˆ†éš”)" +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + #: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) @@ -351,11 +511,15 @@ msgstr "(没有手续)" msgid "(No templates)" msgstr "没有模æ¿" -#: html/Admin/Elements/EditWorkflows:31 +#: NOT FOUND IN SOURCE msgid "(No workflows)" msgstr "没有æµç¨‹" -#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:57 +#: NOT FOUND IN SOURCE +msgid "(None)" +msgstr "(æ— )" + +#: 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 "(é€å‡ºæœ¬ä»½æ›´æ–°çš„密件副本给åå•上以逗å·éš”开的电å­é‚®ä»¶åœ°å€ã€‚è¿™<b>ä¸ä¼š</b>更改åŽç»­çš„æ”¶ä»¶è€…åå•。)" @@ -367,7 +531,7 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„密件副本给åå•上以逗å·éš”å¼€çš„ç”µå­ 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/Update.html:79 +#: 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 "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本给åå•上以逗å·éš”开的电å­é‚®ä»¶åœ°å€ã€‚è¿™<b>ä¸ä¼š</b>更改åŽç»­çš„æ”¶ä»¶è€…åå•。)" @@ -379,11 +543,15 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本给åå•上以逗å·éš”开的电å­é‚®ä»¶ 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/Work/Delegates/index.html:50 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(default delegate)" msgstr "(预设代ç†äºº)" -#: html/Ticket/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:47 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 +#: NOT FOUND IN SOURCE msgid "(delete)" msgstr "(删除)" @@ -391,50 +559,78 @@ msgstr "(删除)" msgid "(empty)" msgstr "(空白)" -#: html/Edit/Elements/Index:87 html/Edit/Global/CustomField/index.html:116 html/Edit/Global/Scrip/index.html:111 html/Edit/Global/Template/index.html:106 +#: NOT FOUND IN SOURCE msgid "(new)" msgstr "(新增)" +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + #: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "(没有列出姓å)" -#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:47 html/Work/Elements/MyTickets:56 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(没有主题)" -#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:64 html/Ticket/Elements/EditCustomFieldValues:52 html/Ticket/Elements/ShowCustomFields:35 html/Work/Elements/EditCustomFieldValues:50 html/Work/Elements/EditCustomFields:32 html/Work/Tickets/Elements/EditCustomFieldValues:33 lib/RT/Transaction_Overlay.pm:483 +#: 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 "(æ— )" -#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:98 html/Work/Search/BulkLinks:3 html/Work/Tickets/Elements/EditLinks:102 +#: NOT FOUND IN SOURCE +msgid "(no values)" +msgstr "(没有值)" + +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(仅能指定一份申请å•)" -#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:21 html/Work/Elements/MyRequests:61 html/Work/Elements/MyTickets:75 html/Work/Tickets/Elements/ShowBasics:52 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(等待签核)" -#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:63 html/Work/Elements/MyTickets:77 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "(等待其它集åˆ)" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(等待其它申请å•)" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:246 +#: NOT FOUND IN SOURCE msgid "(requestor's group)" msgstr "(申请人所属)" -#: html/Admin/Users/Modify.html:49 html/Edit/Users/Info:34 +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "(å¿…å¡«)" -#: html/Ticket/Elements/ShowTransaction:111 html/Work/Tickets/Elements/ShowTransaction:44 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(未命å)" -#: html/Work/Tickets/Elements/ShowHints:5 +#: NOT FOUND IN SOURCE msgid "*" msgstr "★" +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "" + #: NOT FOUND IN SOURCE msgid ":" msgstr ":" @@ -447,12 +643,24 @@ msgstr "<% $Ticket->Status%>" msgid "<% $_ %>" msgstr "<% $_ %>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 html/Work/Elements/104Header:43 lib/RT/StyleGuide.pod:767 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "<%$_%>" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +msgstr "<%$field%>" + +#: 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=\"æå‡ºç”³è¯·å•\"> %1" -#: etc/initialdata:203 +#: NOT FOUND IN SOURCE +msgid "??????" +msgstr "" + +#: etc/initialdata:218 msgid "A blank template" msgstr "空白模æ¿" @@ -476,7 +684,7 @@ msgstr "找ä¸åˆ° ACE" msgid "ACE not found" msgstr "找ä¸åˆ° ACE 设定" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "祇能新增或删除 ACE 设定。" @@ -484,11 +692,11 @@ msgstr "祇能新增或删除 ACE 设定。" msgid "ACLEquivalence" msgstr "ACLEquivalence" -#: bin/rt-commit-handler:754 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "离开以å…ä¸å°å¿ƒæ›´æ”¹åˆ°ç”³è¯·å•。\\n" -#: html/Edit/Users/Info:66 html/Work/Preferences/Info:108 +#: NOT FOUND IN SOURCE msgid "About Me" msgstr "个人信æ¯" @@ -496,7 +704,7 @@ msgstr "个人信æ¯" msgid "About me" msgstr "个人信æ¯" -#: html/Edit/Users/System:12 +#: NOT FOUND IN SOURCE msgid "Access Right" msgstr "系统使用登录æƒé™" @@ -504,7 +712,7 @@ msgstr "系统使用登录æƒé™" msgid "Access control" msgstr "å­˜å–æƒé™" -#: html/Admin/Elements/EditScrip:56 html/Work/Tickets/Elements/ShowTransaction:21 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "动作" @@ -513,43 +721,47 @@ msgstr "动作" msgid "Action %1 not found" msgstr "动作 %1 找ä¸åˆ°" -#: bin/rt-crontool:122 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "动作执行完毕" -#: bin/rt-crontool:118 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "动作准备完毕..." -#: html/Work/Elements/List:17 html/Work/Elements/SelectSearch:30 html/Work/Tickets/Create.html:27 html/Work/Tickets/Elements/ShowBasics:12 +#: NOT FOUND IN SOURCE msgid "Activated Date" msgstr "申请激活时间" -#: html/Edit/Elements/104Buttons:82 html/Edit/Elements/ListButtons:7 +#: html/Search/Build.html:43 msgid "Add" msgstr "新增" -#: html/Search/Bulk.html:95 html/Work/Search/Bulk.html:74 +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "新增管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Search/Bulk.html:91 html/Work/Search/Bulk.html:68 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "新增副本收件人" -#: html/Ticket/Elements/EditCustomFieldEntries:71 html/Work/Tickets/Elements/ShowCustomFieldEntries:50 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "新增æ¡ä»¶" + +#: NOT FOUND IN SOURCE msgid "Add Entry" msgstr "新增列" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 html/Work/Tickets/Elements/AddAttachments:23 +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "新增更多附件" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:112 html/Admin/Elements/ModifyTemplateAsWorkflow:45 +#: NOT FOUND IN SOURCE msgid "Add Next State" msgstr "新增下一项关å¡" -#: html/Search/Bulk.html:87 html/Work/Search/Bulk.html:62 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "新增申请人" @@ -581,7 +793,11 @@ msgstr "æ–°å¢žä¸€é“æ‰‹ç»­åˆ°æ­¤è¡¨å•" msgid "Add a scrip which will apply to all queues" msgstr "新增一é“用于所有表å•的手续" -#: html/Search/Bulk.html:127 html/Work/Search/Bulk.html:80 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "新增评论或回å¤åˆ°æŒ‡å®šçš„申请å•" @@ -597,25 +813,25 @@ msgstr "新增视察员" msgid "AddNextState" msgstr "新增下一项关å¡" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤è¡¨å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1486 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤ç”³è¯·å•çš„ %1" -#: html/Edit/Global/CustomField/Top:52 +#: NOT FOUND IN SOURCE msgid "Additional Hints" msgstr "é¢å¤–æç¤º" -#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:114 html/Work/Preferences/Info:82 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "ä½å€" -#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:118 html/Work/Preferences/Info:84 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "ä½å€(ç»­)" @@ -623,7 +839,7 @@ msgstr "ä½å€(ç»­)" msgid "Adjust Blinking Rate" msgstr "调整闪çƒé€Ÿåº¦å¿«æ…¢" -#: html/Edit/Queues/List:12 +#: NOT FOUND IN SOURCE msgid "Admin" msgstr "管ç†å‘˜" @@ -631,11 +847,11 @@ msgstr "管ç†å‘˜" msgid "Admin Cc" msgstr "管ç†å‘˜å‰¯æœ¬" -#: etc/initialdata:280 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "管ç†å‘˜è¯„论" -#: etc/initialdata:259 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "管ç†å‘˜å›žå¤" @@ -659,11 +875,11 @@ msgstr "管ç†/全域设定" msgid "Admin/Groups" msgstr "管ç†/群组" -#: html/Admin/Queues/Modify.html:24 html/Admin/Queues/Modify.html:28 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "管ç†/表å•/基本信æ¯" -#: html/Edit/Global/Basic/Top:65 +#: NOT FOUND IN SOURCE msgid "AdminAddress" msgstr "管ç†å‘˜ Email" @@ -671,7 +887,7 @@ msgstr "管ç†å‘˜ Email" msgid "AdminAllPersonalGroups" msgstr "ç®¡ç†æ‰€æœ‰ä»£ç†äººç¾¤ç»„" -#: etc/initialdata:56 html/Admin/Elements/ModifyTemplateAsWorkflow:155 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 html/Work/Tickets/Elements/ShowLinks:11 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "管ç†å‘˜å‰¯æœ¬" @@ -683,7 +899,11 @@ msgstr "管ç†å‘˜è¯„论" msgid "AdminCorrespondence" msgstr "管ç†å‘˜å›žå¤" -#: lib/RT/Queue_Overlay.pm:71 +#: NOT FOUND IN SOURCE +msgid "AdminCustomField" +msgstr "管ç†è‡ªè®¢å­—段" + +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "管ç†è‡ªè®¢å­—段" @@ -715,7 +935,7 @@ msgstr "管ç†ç¾¤ç»„状æ€" msgid "AdminOwnPersonalGroups" msgstr "管ç†ä»£ç†äººç¾¤ç»„" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "管ç†è¡¨å•" @@ -727,18 +947,26 @@ msgstr "管ç†ä½¿ç”¨è€…" msgid "Administrative" msgstr "行政类" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 html/Work/Tickets/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "管ç†å‘˜å‰¯æœ¬" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:233 +#: NOT FOUND IN SOURCE msgid "Admins" msgstr "主管" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "进阶" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "进阶查询" +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + #: html/Elements/SelectDateRelation:35 msgid "After" msgstr "晚于" @@ -747,23 +975,27 @@ msgstr "晚于" msgid "Age" msgstr "ç»åŽ†æ—¶é—´" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:172 html/Edit/Global/Workflow/Action:35 +#: NOT FOUND IN SOURCE msgid "Alias" msgstr "执行其它æµç¨‹" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:175 +#: NOT FOUND IN SOURCE msgid "Alias for" msgstr "相当于" -#: html/Work/Delegates/index.html:14 html/Work/Elements/SelectSearch:16 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:14 +#: NOT FOUND IN SOURCE msgid "All" msgstr "全部" -#: etc/initialdata:348 +#: etc/initialdata:363 msgid "All Approvals Passed" msgstr "完æˆå…¨éƒ¨ç­¾æ ¸" -#: html/Edit/Global/Workflow/Condition:16 +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "All Condition" msgstr "所有æ¡ä»¶" @@ -795,15 +1027,31 @@ msgstr "æ— è®ºå¯„ä»¶æ¥æºä¸ºä½•,一律寄信给申请人" msgid "Amount" msgstr "æ•°é¢" -#: html/Edit/Global/Workflow/Condition:13 +#: NOT FOUND IN SOURCE msgid "Any Condition" msgstr "ä»»æ„æ¡ä»¶" -#: html/Edit/Global/Scrip/List:10 html/Edit/Global/Scrip/Top:86 +#: NOT FOUND IN SOURCE +msgid "Applies To" +msgstr "套用于" + +#: NOT FOUND IN SOURCE +msgid "Applies to" +msgstr "套用于" + +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "套用" + +#: NOT FOUND IN SOURCE msgid "Apply Template" msgstr "引用模æ¿" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:138 html/Elements/Tabs:55 html/Work/Approvals/Elements/Approve:6 +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "套用更动" + +#: html/Elements/Tabs:58 msgid "Approval" msgstr "签核" @@ -824,7 +1072,7 @@ msgstr "ç­¾æ ¸å• #%1:系统错误,记录失败" msgid "Approval #%1: Notes recorded" msgstr "ç­¾æ ¸å• #%1:记录完毕" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:123 +#: NOT FOUND IN SOURCE msgid "Approval Details" msgstr "签核细节" @@ -832,15 +1080,15 @@ msgstr "签核细节" msgid "Approval Due" msgstr "签核时é™" -#: html/Work/Approvals/Elements/Approve:43 +#: NOT FOUND IN SOURCE msgid "Approval Notes" msgstr "签核æ„è§" -#: etc/initialdata:336 +#: etc/initialdata:351 msgid "Approval Passed" msgstr "å®ŒæˆæŸé¡¹ç­¾æ ¸" -#: etc/initialdata:359 +#: etc/initialdata:374 msgid "Approval Rejected" msgstr "驳回æŸé¡¹ç­¾æ ¸" @@ -848,7 +1096,7 @@ msgstr "驳回æŸé¡¹ç­¾æ ¸" msgid "Approval Result" msgstr "签核结果" -#: html/Work/Approvals/Elements/Approve:25 +#: NOT FOUND IN SOURCE msgid "Approval Status" msgstr "核准结果" @@ -856,7 +1104,7 @@ msgstr "核准结果" msgid "Approval Type" msgstr "签核ç§ç±»" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:25 +#: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "签核æµç¨‹" @@ -864,15 +1112,15 @@ msgstr "签核æµç¨‹" msgid "Approve" msgstr "核准" -#: html/Work/Approvals/Elements/Approve:21 html/Work/Elements/List:9 +#: NOT FOUND IN SOURCE msgid "Approver" msgstr "签核人" -#: html/Edit/Global/Workflow/Action:25 html/Edit/Global/Workflow/Owner.html:10 +#: NOT FOUND IN SOURCE msgid "Approver Setting" msgstr "执行签核人设定" -#: etc/initialdata:486 etc/upgrade/2.1.71:148 html/Edit/Elements/CreateApprovalsQueue:122 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "签核备注:%1" @@ -888,43 +1136,76 @@ msgstr "04" msgid "April" msgstr "四月" -#: html/Edit/Elements/104Buttons:24 +#: NOT FOUND IN SOURCE msgid "Are you sure to delete checked items?" msgstr "您确定è¦åˆ é™¤ï¼Ÿ" -#: html/Elements/SelectSortOrder:34 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "递增" -#: html/Search/Bulk.html:136 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 html/Work/Search/Bulk.html:88 +#: NOT FOUND IN SOURCE +msgid "Assign and remove custom fields" +msgstr "指派åŠç§»é™¤è‡ªè®¢å­—段" + +#: NOT FOUND IN SOURCE +msgid "AssignCustomFields" +msgstr "指派自订字段" + +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "附件" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 html/Work/Tickets/Elements/AddAttachments:19 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "附加档案" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:87 html/Work/Tickets/Elements/AddAttachments:7 html/Work/Tickets/Elements/ShowAttachments:9 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "现有附件" -#: NOT FOUND IN SOURCE +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "无法加载附件 '%1'" -#: lib/RT/Transaction_Overlay.pm:390 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "附件新增完毕" -#: lib/RT/Tickets_Overlay.pm:1250 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "附件档å" -#: html/Ticket/Elements/ShowAttachments:25 html/Work/Tickets/Elements/ShowTransaction:37 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "附件" -#: lib/RT/Ticket_Overlay.pm:1222 +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "已删除该属性" + +#: NOT FOUND IN SOURCE msgid "Attributes" msgstr "属性" @@ -940,7 +1221,7 @@ msgstr "08" msgid "August" msgstr "八月" -#: html/Admin/Elements/ModifyUser:65 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "è®¤è¯æ–¹å¼" @@ -952,7 +1233,7 @@ msgstr "自动驳回表å•" msgid "AutoResolve" msgstr "自动完æˆè¡¨å•处ç†" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "自动回å¤" @@ -964,7 +1245,11 @@ msgstr "自动对申请人回å¤" msgid "AutoreplyToRequestors" msgstr "自动对申请人回å¤" -#: html/Edit/Rights/index.html:17 +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "å¯ç”¨çš„字段:" + +#: NOT FOUND IN SOURCE msgid "Available Rights:" msgstr "æƒé™é¡¹ç›®åˆ—表:" @@ -972,7 +1257,7 @@ msgstr "æƒé™é¡¹ç›®åˆ—表:" msgid "Back to Homepage" msgstr "回到首页" -#: html/Work/Approvals/Update.html:7 html/Work/Elements/BackButton:2 html/Work/Search/Bulk.html:101 +#: NOT FOUND IN SOURCE msgid "Back to Previous" msgstr "回上页" @@ -984,8 +1269,7 @@ msgstr "错误的 PGP 签章:%1\\n" msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "错误的附件编å·ã€‚无法找到附件 '%1'\\n" -#: bin/rt-commit-handler:826 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "%1 的数æ®é”™è¯¯" @@ -993,27 +1277,27 @@ msgstr "%1 的数æ®é”™è¯¯" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "附件的处ç†å·ç é”™è¯¯ã€‚%1 应为 %2\\n" -#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:23 html/Edit/Users/index.html:94 html/Ticket/Elements/Tabs:95 html/User/Elements/GroupTabs:37 +#: 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 "基本信æ¯" -#: html/Work/Approvals/index.html:9 +#: NOT FOUND IN SOURCE msgid "Batch Approval" msgstr "批次签核" -#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:54 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "密件副本" -#: html/Admin/Elements/EditScrip:95 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Global/Workflow.html:46 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/Admin/Queues/Workflow.html:44 html/User/Groups/Modify.html:55 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "请别忘了储存修改。" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:363 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "早于" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:44 +#: NOT FOUND IN SOURCE msgid "Begin Approval" msgstr "开始签核" @@ -1021,18 +1305,26 @@ msgstr "开始签核" msgid "Begin From " msgstr "èµ·å§‹æ—¥" +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "档案" + #: NOT FOUND IN SOURCE msgid "Birthday" msgstr "生日" -#: etc/initialdata:202 +#: etc/initialdata:217 msgid "Blank" msgstr "空白模æ¿" -#: html/Search/Listing.html:78 html/Work/Search/index.html:53 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "å°†æŸ¥è¯¢ç»“æžœè½¬ä¸ºå¯æ”¾å…¥ä¹¦ç­¾çš„网å€" +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + #: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "精简标头档" @@ -1049,41 +1341,48 @@ msgstr "事业部" msgid "Business Unit:" msgstr "事业部:" -#: lib/RT/User_Overlay.pm:1539 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "无法更改系统使用者" -#: lib/RT/Queue_Overlay.pm:66 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "该å•使˜¯å¦èƒ½æŸ¥é˜…此表å•" -#: lib/RT/CustomField_Overlay.pm:212 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "ä¸èƒ½æ–°å¢žæ²¡æœ‰å称的自订字段值" -#: lib/RT/Link_Overlay.pm:131 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "找ä¸åˆ°å·²å‚¨å­˜çš„æŸ¥è¯¢" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "申请å•ä¸èƒ½é“¾æŽ¥è‡ªå·±ã€‚" -#: lib/RT/Ticket_Overlay.pm:2865 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "ä¸èƒ½æ•´åˆè¿›å·²æ•´åˆè¿‡çš„申请å•。这个错误ä¸è¯¥å‘生。" -#: lib/RT/Ticket_Overlay.pm:2667 lib/RT/Ticket_Overlay.pm:2746 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "无法储存此项查询" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "ä¸èƒ½åŒæ—¶æŒ‡å®šèµ·å§‹ç”³è¯·å•与目的申请å•" -#: html/Edit/Elements/PopFooter:8 +#: NOT FOUND IN SOURCE msgid "Cancel" msgstr "å–æ¶ˆ" -#: html/autohandler:133 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "无法新增使用者:%1" -#: html/autohandler:187 -#. ($auth_created - time) +#: NOT FOUND IN SOURCE msgid "Cannot login: Your system clock differs from server's by %1 seconds!" msgstr "您的系统时钟和æœåŠ¡å™¨ç›¸å·® %1 秒,无法登入ï¼" @@ -1099,7 +1398,7 @@ msgstr "分类管ç†" msgid "Category" msgstr "分类" -#: 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:44 html/Ticket/Update.html:76 html/Work/Tickets/Elements/EditPeople:41 html/Work/Tickets/Elements/ShowLinks:6 html/Work/Tickets/Update.html:43 lib/RT/ACE_Overlay.pm:87 +#: 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 "副本" @@ -1119,11 +1418,15 @@ msgstr "修改申请å•" msgid "Change password" msgstr "更改å£ä»¤" -#: html/Edit/Global/Basic/Top:79 +#: NOT FOUND IN SOURCE msgid "ChangeOwnerUI" msgstr "å¯å¦é€‰æ‹©è¡¨å•承办人" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Elements/EditCustomFieldEntries:35 html/Ticket/Update.html:90 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 +#: NOT FOUND IN SOURCE +msgid "Check All" +msgstr "全部选å–" + +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "选择欲删除的项目" @@ -1131,11 +1434,11 @@ msgstr "选择欲删除的项目" msgid "Check box to revoke right" msgstr "选择欲撤消的æƒåˆ©" -#: html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:113 html/Ticket/Elements/EditLinks:63 html/Ticket/Elements/ShowLinks:56 html/Work/Search/BulkLinks:18 html/Work/Tickets/Elements/EditLinks:117 html/Work/Tickets/Elements/EditLinks:56 html/Work/Tickets/Elements/ShowMembers:4 +#: 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 "å­ç”³è¯·å•" -#: html/Edit/Elements/PickUsers:22 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 +#: NOT FOUND IN SOURCE msgid "Chinese Name" msgstr "中文姓å" @@ -1143,14 +1446,34 @@ msgstr "中文姓å" msgid "Chinese/English" msgstr "中英文" -#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:122 html/Work/Preferences/Info:86 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "所在城市" -#: html/Edit/Elements/104Top:30 +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ClassicUI" msgstr "传统接å£" +#: NOT FOUND IN SOURCE +msgid "Clear All" +msgstr "全部清除" + #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "已解决" @@ -1159,11 +1482,15 @@ msgstr "已解决" msgid "Closed Tickets" msgstr "已解决的申请å•" +#: NOT FOUND IN SOURCE +msgid "Closed requests" +msgstr "" + #: html/SelfService/Elements/Tabs:44 msgid "Closed tickets" msgstr "已解决的申请å•" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:55 html/Edit/Global/Workflow/Condition:53 html/Edit/Global/Workflow/Owner.html:115 +#: NOT FOUND IN SOURCE msgid "Code" msgstr "执行程åºç " @@ -1171,11 +1498,11 @@ msgstr "执行程åºç " msgid "Command not understood!\\n" msgstr "指令无法辨识ï¼\\n" -#: html/Ticket/Elements/ShowTransaction:189 html/Ticket/Elements/Tabs:158 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:61 html/Work/Tickets/Elements/ShowTransaction:119 html/Work/Tickets/Elements/ShowTransaction:32 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "评论" -#: html/Admin/Elements/ModifyQueue:44 html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "评论电å­é‚®ä»¶åœ°å€" @@ -1183,44 +1510,43 @@ msgstr "评论电å­é‚®ä»¶åœ°å€" msgid "Comment not recorded" msgstr "评论未被纪录" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "å¯¹ç”³è¯·å•æå‡ºè¯„è®º" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "评论申请å•" -#: html/Admin/Elements/ModifyUser:34 html/Work/Tickets/Elements/AddContent:7 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "评论" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:68 html/Work/Tickets/Update.html:35 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "评论(ä¸é€ç»™ç”³è¯·äºº)" -#: html/Search/Bulk.html:131 html/Work/Search/Bulk.html:83 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "评论(ä¸é€ç»™ç”³è¯·äºº)" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "对 %1 的评论" -#: html/Admin/Users/Modify.html:184 html/Edit/Users/Info:90 html/Ticket/Elements/ShowRequestor:43 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "使用者æè¿°" -#: lib/RT/Transaction_Overlay.pm:501 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "新增评论完毕" -#: html/Edit/Elements/PopFooter:4 html/Edit/Elements/PopFooter:6 +#: NOT FOUND IN SOURCE msgid "Commit" msgstr "确认" -#: lib/RT/Action/Generic.pm:139 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "消除更动完毕" @@ -1228,7 +1554,7 @@ msgstr "消除更动完毕" msgid "Company Name" msgstr "å…¬å¸åç§°" -#: html/Edit/Global/Basic/Top:85 +#: NOT FOUND IN SOURCE msgid "CompanySpecific" msgstr "å„å…¬å¸ç‹¬ç«‹æ˜¾ç¤º" @@ -1236,11 +1562,11 @@ msgstr "å„å…¬å¸ç‹¬ç«‹æ˜¾ç¤º" msgid "Compile Restrictions" msgstr "设定查询æ¡ä»¶" -#: html/Admin/Elements/EditScrip:40 html/Admin/Elements/ModifyTemplateAsWorkflow:127 +#: html/Admin/Elements/EditScrip:41 msgid "Condition" msgstr "æ¡ä»¶" -#: bin/rt-crontool:108 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "ç¬¦åˆæ¡ä»¶..." @@ -1248,7 +1574,7 @@ msgstr "ç¬¦åˆæ¡ä»¶..." msgid "Condition not found" msgstr "未找到符åˆçš„现况" -#: html/Edit/Global/GroupRight/Top:26 html/Edit/Global/UserRight/Top:45 html/Edit/Groups/Member:56 html/Elements/Tabs:49 +#: html/Elements/Tabs:52 msgid "Configuration" msgstr "设定" @@ -1260,7 +1586,7 @@ msgstr "确认å£ä»¤" msgid "Confirm Password" msgstr "å£ä»¤ç¡®è®¤" -#: html/Work/Approvals/Elements/Actions:6 html/Work/Tickets/Create.html:153 html/Work/Tickets/Create.html:167 html/Work/Tickets/Update.html:81 +#: NOT FOUND IN SOURCE msgid "Confirm Submit" msgstr "确定é€å‡º" @@ -1268,7 +1594,7 @@ msgstr "确定é€å‡º" msgid "Contact System Administrator" msgstr "连络系统管ç†å‘˜" -#: html/Admin/Elements/ModifyUser:59 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "连络信æ¯ç³»ç»Ÿ" @@ -1276,15 +1602,19 @@ msgstr "连络信æ¯ç³»ç»Ÿ" msgid "Contacted date '%1' could not be parsed" msgstr "无法解读è”络日期 '%1'" -#: html/Admin/Elements/ModifyTemplate:43 html/Admin/Elements/ModifyTemplateAsWorkflow:200 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "内容" +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "内容类型" + #: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "无法新增群组" -#: html/Edit/Elements/104Buttons:85 +#: html/Search/Elements/EditSearches:16 msgid "Copy" msgstr "å¤åˆ¶" @@ -1292,15 +1622,15 @@ msgstr "å¤åˆ¶" msgid "Copy Field From:" msgstr "欲å¤åˆ¶å­—段:" -#: etc/initialdata:271 +#: etc/initialdata:286 msgid "Correspondence" msgstr "回å¤" -#: html/Admin/Elements/ModifyQueue:38 html/Admin/Queues/Modify.html:50 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "申请å•回å¤åœ°å€" -#: lib/RT/Transaction_Overlay.pm:497 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "新增申请å•回å¤" @@ -1308,7 +1638,7 @@ msgstr "新增申请å•回å¤" msgid "Correspondence not recorded" msgstr "未纪录申请å•回å¤" -#: lib/RT/Ticket_Overlay.pm:3620 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值 " @@ -1316,31 +1646,28 @@ msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值 " msgid "Could not add new custom field value for ticket. %1 " msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值。%1 " -#: lib/RT/Ticket_Overlay.pm:3116 lib/RT/Ticket_Overlay.pm:3124 lib/RT/Ticket_Overlay.pm:3141 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "ä¸èƒ½æ›´æ”¹æ‰¿åŠžäººã€‚ " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 html/Edit/Global/CustomField/index.html:120 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "无法新增自订字段" -#: html/Edit/Global/Workflow/index.html:126 -#. ($msg) +#: NOT FOUND IN SOURCE msgid "Could not create Scrip" msgstr "无法建立讯æ¯é€šçŸ¥" -#: html/Edit/Global/Template/index.html:110 -#. ($msg) +#: NOT FOUND IN SOURCE msgid "Could not create Template" msgstr "无法建立通知模æ¿" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "无法新增群组" -#: html/Edit/Elements/Index:89 -#. ($msg) +#: NOT FOUND IN SOURCE msgid "Could not create item" msgstr "无法新增项目" @@ -1349,11 +1676,11 @@ msgstr "无法新增项目" msgid "Could not create template: %1" msgstr "无法新增模æ¿ï¼š%1" -#: lib/RT/Ticket_Overlay.pm:1123 lib/RT/Ticket_Overlay.pm:358 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "无法新增申请å•。尚未指定表å•。" -#: lib/RT/User_Overlay.pm:271 lib/RT/User_Overlay.pm:284 lib/RT/User_Overlay.pm:302 lib/RT/User_Overlay.pm:488 +#: 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 "无法新增使用者" @@ -1361,8 +1688,7 @@ msgstr "无法新增使用者" msgid "Could not create watcher for requestor" msgstr "无法为申请人新增视察员" -#: html/Admin/Elements/ModifyWorkflow:219 html/Admin/Global/Workflow.html:75 html/Admin/Queues/Workflow.html:71 -#. ($msg) +#: NOT FOUND IN SOURCE msgid "Could not create workflow: %1" msgstr "无法新增æµç¨‹ï¼š%1" @@ -1374,11 +1700,11 @@ msgstr "找ä¸åˆ°ç¼–å· %1 的申请å•" msgid "Could not find group %1." msgstr "找ä¸åˆ°ç¾¤ç»„ %1。" -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1454 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "找ä¸åˆ°æˆ–无法新增该å使用者" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1533 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "找ä¸åˆ°è¯¥å•ä½" @@ -1386,35 +1712,42 @@ msgstr "找ä¸åˆ°è¯¥å•ä½" msgid "Could not find user %1." msgstr "找ä¸åˆ°ä½¿ç”¨è€… %1。" +#: NOT FOUND IN SOURCE +msgid "Could not load CustomField %1" +msgstr "无法加载字段 %1" + #: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "无法加载群组" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "无法将该å•ä½è®¾ä¸ºæ­¤è¡¨å•çš„ %1。" -#: lib/RT/Ticket_Overlay.pm:1475 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "无法将该å•ä½è®¾ä¸ºæ­¤ç”³è¯·å•çš„ %1。" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "无法将å•ä½ %1 从表å•移除。" -#: lib/RT/Ticket_Overlay.pm:1591 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "无法将å•ä½ %1 从申请å•移除。" -#: lib/RT/Group_Overlay.pm:976 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "无法设定使用者信æ¯" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "无法新增æˆå‘˜è‡³ç¾¤ç»„" -#: lib/RT/Ticket_Overlay.pm:3630 lib/RT/Ticket_Overlay.pm:3686 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "无法新增更动报告" @@ -1427,15 +1760,15 @@ msgstr "无法从 gpg 回函辨识出该采å–的行动\\n" msgid "Couldn't find group\\n" msgstr "找ä¸åˆ°ç¾¤ç»„\\n" -#: lib/RT/Interface/Web.pm:964 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "找ä¸åˆ°æ­¤åˆ—æ•°æ®" -#: lib/RT/Group_Overlay.pm:950 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "找ä¸åˆ°è¯¥å•ä½" -#: lib/RT/CustomField_Overlay.pm:246 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "找ä¸åˆ°è¯¥å€¼" @@ -1447,11 +1780,19 @@ msgstr "找ä¸åˆ°è¯¥è§†å¯Ÿå‘˜" msgid "Couldn't find user\\n" msgstr "找ä¸åˆ°ä½¿ç”¨è€…\\n" -#: lib/RT/CurrentUser.pm:111 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "无法从使用者数æ®åº“加载 %1。\\n" +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "无法加载类别 %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "无法加载自订字段 %1" + #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "无法加载 KeywordSelects。" @@ -1464,25 +1805,25 @@ msgstr "无法加载 RT 设定档 '%1' %2" msgid "Couldn't load Scrips." msgstr "无法加载手续。" -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:55 html/Edit/Global/GroupRight/Add.html:60 html/Edit/Global/UserRight/Add.html:25 html/Edit/Global/UserRight/Add.html:30 html/Edit/Groups/Member:121 html/Edit/Groups/Members/Add.html:44 html/Edit/Rights/index.html:58 html/Edit/Rights/index.html:63 -#. ($ObjectGroup) -#. ($Report) -#. ($Group) +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "无法加载手续 %1" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "无法加载链接。" +#: NOT FOUND IN SOURCE +msgid "Couldn't load object %1" +msgstr "无法加载对象 %1" + #: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "无法加载表å•" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 html/Edit/Global/GroupRight/Add.html:51 html/Edit/Global/GroupRight/index.html:82 html/Edit/Global/GroupRight/index.html:87 html/Edit/Global/UserRight/Add.html:21 html/Edit/Global/UserRight/index.html:83 html/Edit/Global/UserRight/index.html:88 html/Edit/Rights/index.html:54 -#. ($Queue) +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "æ— æ³•åŠ è½½è¡¨å• %1" @@ -1495,8 +1836,7 @@ msgstr "无法加载手续" msgid "Couldn't load template" msgstr "无法加载模æ¿" -#: html/Admin/Users/Prefs.html:78 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "无法加载该å使用者(%1)" @@ -1505,19 +1845,19 @@ msgstr "无法加载该å使用者(%1)" msgid "Couldn't load ticket '%1'" msgstr "æ— æ³•åŠ è½½ç”³è¯·å• '%1'" -#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:134 html/Work/Preferences/Info:92 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "国家" -#: html/Admin/Elements/CreateUserCalled:25 html/Edit/Elements/PopHeader:33 html/Edit/Global/GroupRight/Add.html:19 html/Ticket/Create.html:134 html/Ticket/Create.html:195 +#: 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 "新增" -#: html/Edit/Groups/MemberGroups/Add.html:17 +#: NOT FOUND IN SOURCE msgid "Create Subgroup:" msgstr "新增å­ç¾¤ç»„:" -#: etc/initialdata:127 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "新增申请å•" @@ -1525,6 +1865,10 @@ msgstr "新增申请å•" msgid "Create User:" msgstr "新增æˆå‘˜ï¼š" +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + #: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "新增自订字段" @@ -1542,6 +1886,10 @@ msgstr "为 %1 è¡¨å•æ–°å¢žè‡ªè®¢å­—段" msgid "Create a new Custom Field" msgstr "新增自订字段" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "新增全域手续" @@ -1574,7 +1922,7 @@ msgstr "新增模æ¿" msgid "Create a new ticket" msgstr "新增申请å•" -#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:242 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "新增使用者" @@ -1607,10 +1955,18 @@ msgstr "新增模æ¿" msgid "Create a ticket" msgstr "æå‡ºç”³è¯·å•" -#: html/Admin/Elements/ModifyWorkflow:206 html/Admin/Global/Workflow.html:69 html/Admin/Queues/Workflow.html:64 +#: NOT FOUND IN SOURCE msgid "Create a workflow" msgstr "新增æµç¨‹" +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "新增失败:%1 / %2 / %3" @@ -1623,7 +1979,7 @@ msgstr "新增失败:%1/%2/%3" msgid "Create new item" msgstr "建立新项目" -#: etc/initialdata:129 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "便®æ­¤é¡¹æ‰‹ç»­å†…的模版,新增申请å•" @@ -1631,15 +1987,15 @@ msgstr "便®æ­¤é¡¹æ‰‹ç»­å†…的模版,新增申请å•" msgid "Create ticket" msgstr "新增申请å•" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "在此表å•中新增申请å•" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹è‡ªè®¢å­—段" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹è¡¨å•" @@ -1655,11 +2011,11 @@ msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹ä»£ç†äººç¾¤ç»„" msgid "Create, delete and modify users" msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹ä½¿ç”¨è€…" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "新增申请å•" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1217 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "新增日" @@ -1668,15 +2024,26 @@ msgstr "新增日" msgid "Created CustomField %1" msgstr "自订字段 %1 新增æˆåŠŸ" +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "æ¨¡æ¿ %1 新增æˆåŠŸ" -#: html/Admin/Elements/ModifyWorkflow:221 -#. (loc( $WorkflowObj->Name() )) +#: NOT FOUND IN SOURCE msgid "Created workflow %1" msgstr "æµç¨‹ %1 新增æˆåŠŸ" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "建立者" + #: NOT FOUND IN SOURCE msgid "Currency" msgstr "å¸åˆ«" @@ -1689,15 +2056,19 @@ msgstr "截至目å‰ç­¾æ ¸ä¿¡æ¯" msgid "Current Custom Fields" msgstr "现有自订字段" -#: html/Edit/Groups/MemberGroups/Add.html:14 +#: NOT FOUND IN SOURCE msgid "Current Groups:" msgstr "现有群组列表:" -#: html/Ticket/Elements/EditLinks:27 html/Work/Tickets/Elements/EditLinks:10 -msgid "Current Relationships" +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "现有关系" -#: html/Edit/Rights/index.html:20 +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Current Rights:" msgstr "现有æƒé™ï¼š" @@ -1705,7 +2076,7 @@ msgstr "现有æƒé™ï¼š" msgid "Current Scrips" msgstr "现有手续" -#: html/Work/Tickets/Create.html:49 html/Work/Tickets/Elements/ShowBasics:47 +#: NOT FOUND IN SOURCE msgid "Current Status" msgstr "ç›®å‰çжæ€" @@ -1713,7 +2084,7 @@ msgstr "ç›®å‰çжæ€" msgid "Current Templates" msgstr "现有模æ¿" -#: html/Work/Tickets/Elements/EditPeople:9 +#: NOT FOUND IN SOURCE msgid "Current Watchers" msgstr "现有视察员" @@ -1725,11 +2096,11 @@ msgstr "现有æˆå‘˜" msgid "Current rights" msgstr "现有æƒé™" -#: html/Search/Listing.html:70 html/Work/Search/index.html:42 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "现有查询æ¡ä»¶" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 html/Work/Tickets/Elements/EditPeople:32 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "现有视察员" @@ -1738,23 +2109,27 @@ msgstr "现有视察员" msgid "Custom Field #%1" msgstr "自订字段 #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:24 html/Ticket/Elements/ShowSummary:35 +#: 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 "自订字段" +#: NOT FOUND IN SOURCE +msgid "Custom Fields for %1" +msgstr "%1 的自订字段" + #: NOT FOUND IN SOURCE msgid "Custom Fields which apply to all queues" msgstr "适用于所有表å•的自订字段" -#: html/Admin/Elements/EditScrip:72 html/Edit/Global/Scrip/Top:69 +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "åŠ¨ä½œåŽæ‰§è¡Œç¨‹åº" -#: html/Admin/Elements/EditScrip:64 html/Edit/Global/Scrip/Top:62 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "åŠ¨ä½œå‰æ‰§è¡Œç¨‹åº" -#: html/Admin/Elements/EditScrip:48 html/Edit/Global/Scrip/Top:35 html/Edit/Global/Scrip/Top:61 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "自订æ¡ä»¶" @@ -1763,6 +2138,10 @@ msgstr "自订æ¡ä»¶" 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:1688 #. ($CF->Name) msgid "Custom field %1 has a value." @@ -1773,7 +2152,7 @@ msgstr "自订字段 %1 已有值" msgid "Custom field %1 has no value." msgstr "自订字段 %1 没有值" -#: lib/RT/Ticket_Overlay.pm:3522 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "找ä¸åˆ°è‡ªè®¢å­—段 %1" @@ -1782,11 +2161,11 @@ msgstr "找ä¸åˆ°è‡ªè®¢å­—段 %1" msgid "Custom field deleted" msgstr "自订字段已删除" -#: lib/RT/Ticket_Overlay.pm:3672 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "找ä¸åˆ°è‡ªè®¢å­—段" -#: lib/RT/CustomField_Overlay.pm:356 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "无法从自订字段 %2 中找到 %1 这个字段值" @@ -1795,19 +2174,19 @@ msgstr "无法从自订字段 %2 中找到 %1 这个字段值" msgid "Custom field value changed from %1 to %2" msgstr "自订字段值从 %1 改为 %2" -#: lib/RT/CustomField_Overlay.pm:256 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "无法删除自订字段值" -#: lib/RT/CustomField_Overlay.pm:362 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "找ä¸åˆ°è‡ªè®¢å­—段值" -#: lib/RT/CustomField_Overlay.pm:254 lib/RT/CustomField_Overlay.pm:364 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "自订字段值删除æˆåŠŸ" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:98 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Vendor.pm:5 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "自订字段" @@ -1815,11 +2194,11 @@ msgstr "自订字段" msgid "Data error" msgstr "æ•°æ®é”™è¯¯" -#: html/Edit/Global/Basic/Top:77 +#: NOT FOUND IN SOURCE msgid "DatabaseBindRemote" msgstr "å®¹è®¸å¤–éƒ¨è”æœº" -#: html/Edit/Global/Basic/Top:75 +#: NOT FOUND IN SOURCE msgid "DatabaseName" msgstr "MySQLæ•°æ®åº“" @@ -1827,7 +2206,7 @@ msgstr "MySQLæ•°æ®åº“" msgid "Date of Departure" msgstr "å‡ºå‘æ—¥æœŸ" -#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:17 +#: 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 "日期" @@ -1851,31 +2230,39 @@ msgstr "预设签核" msgid "Default Autoresponse Template" msgstr "预设自动å“应模æ¿" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "预设自动å“应模æ¿" -#: html/Edit/Global/CustomField/Top:46 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "预设表å•" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Default Value" msgstr "预设值" -#: etc/initialdata:281 +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "预设管ç†å‘˜è¯„论模æ¿" -#: etc/initialdata:260 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "预设管ç†å‘˜å›žå¤æ¨¡æ¿" -#: etc/initialdata:272 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "é¢„è®¾å›žå¤æ¨¡æ¿" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "预设更动模æ¿" -#: lib/RT/Transaction_Overlay.pm:491 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "预设:%1/%2 已自 %3 改为 %4" @@ -1912,7 +2299,7 @@ msgstr "代ç†è¡¨å•:" msgid "Delegated Type" msgstr "代ç†è¡¨å•ç§ç±»" -#: html/Edit/Users/index.html:98 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:42 html/Work/Overview/Info:28 +#: NOT FOUND IN SOURCE msgid "Delegates" msgstr "代ç†äºº" @@ -1920,7 +2307,7 @@ msgstr "代ç†äºº" msgid "Delegates Enabled Status" msgstr "ä»£ç†æ¿€æ´»çжæ€" -#: html/Work/Delegates/Info:18 html/Work/Overview/Info:18 +#: NOT FOUND IN SOURCE msgid "Delegates Info" msgstr "代ç†äººä¿¡æ¯" @@ -1940,7 +2327,7 @@ msgstr "ä»£ç†æƒé™ï¼š" msgid "Delegates Setting" msgstr "代ç†äººè®¾å®š" -#: html/Work/Delegates/Info:46 html/Work/Delegates/List:11 html/Work/Overview/Info:39 +#: NOT FOUND IN SOURCE msgid "Delegates Status" msgstr "代ç†çжæ€" @@ -1956,31 +2343,39 @@ msgstr "代ç†äººç¾¤ç»„" msgid "Delegation Rights" msgstr "代ç†äººæƒé™" -#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ModifyTemplateAsWorkflow:113 html/Edit/Elements/104Buttons:84 html/Work/Search/index.html:48 html/Work/Search/index.html:48 +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "删除" +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + #: html/Admin/Elements/EditScrips:52 msgid "Delete selected scrips" msgstr "删除指定的手续" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "删除申请å•" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "删除申请å•" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "删除此对象å¯èƒ½ç ´åå‚考完整性" -#: lib/RT/Queue_Overlay.pm:293 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "删除此对象å¯èƒ½ç ´åå‚考完整性" -#: lib/RT/User_Overlay.pm:504 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "删除此对象会è¿åå‚考完整性" @@ -2000,11 +2395,11 @@ msgstr "驳回" msgid "Department" msgstr "部门" -#: html/Edit/Global/UserRight/List:12 html/Edit/Global/UserRight/Top:13 +#: NOT FOUND IN SOURCE msgid "Department ID" msgstr "部门代ç " -#: html/Edit/Global/UserRight/List:11 html/Edit/Global/UserRight/Top:49 html/Work/Delegates/Info:78 html/Work/Overview/Info:60 +#: NOT FOUND IN SOURCE msgid "Department Name" msgstr "部门åç§°" @@ -2028,7 +2423,7 @@ msgstr "请å‡å•" msgid "Departure Until" msgstr "差旅截止日" -#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:105 html/Ticket/Elements/EditLinks:44 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 html/Work/Search/BulkLinks:10 html/Work/Tickets/Elements/EditLinks:109 html/Work/Tickets/Elements/EditLinks:34 html/Work/Tickets/Elements/ShowLinks:21 +#: 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 "å¯æŽ¥ç»­å¤„ç†çš„申请å•" @@ -2036,27 +2431,27 @@ msgstr "å¯æŽ¥ç»­å¤„ç†çš„申请å•" msgid "Dependencies: \\n" msgstr "附属性:\\n" -#: lib/RT/Transaction_Overlay.pm:585 +#: lib/RT/Transaction_Overlay.pm:621 #. ($value) msgid "Dependency by %1 added" msgstr "å·²åŠ å…¥å¯æŽ¥ç»­å¤„ç†çš„ç”³è¯·å• %1" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:661 #. ($value) msgid "Dependency by %1 deleted" msgstr "å·²ç§»é™¤å¯æŽ¥ç»­å¤„ç†çš„ç”³è¯·å• %1" -#: lib/RT/Transaction_Overlay.pm:582 +#: lib/RT/Transaction_Overlay.pm:618 #. ($value) msgid "Dependency on %1 added" msgstr "已加入需先处ç†çš„ç”³è¯·å• %1" -#: lib/RT/Transaction_Overlay.pm:622 +#: lib/RT/Transaction_Overlay.pm:658 #. ($value) msgid "Dependency on %1 deleted" msgstr "已移除需先处ç†çš„ç”³è¯·å• %1" -#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:101 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 html/Work/Search/BulkLinks:6 html/Work/Tickets/Elements/EditLinks:105 html/Work/Tickets/Elements/EditLinks:23 html/Work/Tickets/Elements/ShowLinks:16 +#: 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 "需先处ç†" @@ -2064,7 +2459,7 @@ msgstr "需先处ç†" msgid "DependsOn" msgstr "需先处ç†" -#: html/Elements/SelectSortOrder:34 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "递å‡" @@ -2072,7 +2467,7 @@ msgstr "递å‡" msgid "Describe the issue below" msgstr "在以下字段æè¿°ä¸»é¢˜" -#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Elements/ModifyTemplateAsWorkflow:192 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Edit/Elements/SelectQueues:4 html/Edit/Global/Workflow/Action:13 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 +#: 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 "æè¿°" @@ -2084,7 +2479,7 @@ msgstr "ç»åŠžä¸šåŠ¡è¯´æ˜Ž" msgid "Description:" msgstr "æè¿°ï¼š" -#: html/Work/Tickets/Create.html:131 html/Work/Tickets/Create.html:84 html/Work/Tickets/Elements/EditCustomFields:13 html/Work/Tickets/Elements/EditCustomFields:61 html/Work/Tickets/Elements/ShowCustomFields:14 html/Work/Tickets/Elements/ShowCustomFields:53 +#: NOT FOUND IN SOURCE msgid "Details" msgstr "细节" @@ -2100,23 +2495,27 @@ msgstr "残障身分" msgid "Disability Type" msgstr "残障类别" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:17 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 +#: NOT FOUND IN SOURCE msgid "Disabled" msgstr "åœç”¨" -#: html/Ticket/Elements/Tabs:90 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "显示内容" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "显示æƒé™æŽ§åˆ¶æ¸…å•" -#: lib/RT/Queue_Overlay.pm:74 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "显示字段" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "显示此表å•的模æ¿" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "显示此表å•的手续" @@ -2124,10 +2523,18 @@ msgstr "显示此表å•的手续" msgid "Display mode" msgstr "显示模å¼" +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "显示此群组已储存的查询" + #: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "显示第%1å·ç”³è¯·å•" +#: html/Elements/Footer:38 +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:53 msgid "Do anything and everything" msgstr "å…许一切æ“作" @@ -2136,23 +2543,35 @@ msgstr "å…许一切æ“作" msgid "Don't refresh this page." msgstr "䏿›´æ–°æ­¤é¡µé¢ã€‚" -#: html/Search/Elements/PickRestriction:114 html/Work/Search/PickRestriction:101 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "䏿˜¾ç¤ºæŸ¥è¯¢ç»“æžœ" -#: html/Edit/Elements/Page:19 html/Edit/Elements/Page:21 +#: NOT FOUND IN SOURCE +msgid "Done" +msgstr "完æˆ" + +#: NOT FOUND IN SOURCE msgid "Down" msgstr "下一页" -#: html/Ticket/Elements/ShowTransaction:111 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "下载" +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download as a tab-delimited file" +msgstr "下载以 Tab 分隔的档案" + #: NOT FOUND IN SOURCE msgid "Dr." msgstr "åšå£«" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:43 html/Work/Tickets/Elements/EditBasics:54 lib/RT/Ticket_Overlay.pm:1221 +#: 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 "到期日" @@ -2164,16 +2583,15 @@ msgstr "截止日" msgid "Due date '%1' could not be parsed" msgstr "无法解读日期 '%1'" -#: bin/rt-commit-handler:753 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "æ— æ³•åŠ è½½ç”³è¯·å• '%1':%2.\\n" -#: html/Work/Tickets/Update.html:48 +#: NOT FOUND IN SOURCE msgid "Edit" msgstr "编辑" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:132 +#: NOT FOUND IN SOURCE msgid "Edit Conditions" msgstr "编辑å‰ç½®æ¡ä»¶" @@ -2182,15 +2600,27 @@ msgstr "编辑å‰ç½®æ¡ä»¶" msgid "Edit Custom Fields for %1" msgstr "编辑 %1 的自订字段" +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit Custom Fields for queue %1" msgstr "ç¼–è¾‘è¡¨å• %1 的自订字段" -#: html/Search/Bulk.html:143 html/Ticket/ModifyLinks.html:35 html/Work/Search/Bulk.html:93 -msgid "Edit Relationships" +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "编辑申请å•关系" -#: html/Edit/Groups/MemberGroups/Add.html:3 html/Edit/Groups/MemberGroups/index.html:22 +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "编辑查询" + +#: NOT FOUND IN SOURCE +msgid "Edit Relationships" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Edit Subgroups" msgstr "新增/维护å­ç¾¤ç»„" @@ -2199,8 +2629,7 @@ msgstr "新增/维护å­ç¾¤ç»„" msgid "Edit Templates for queue %1" msgstr "ç¼–è¾‘è¡¨å• %1 的模æ¿" -#: html/Admin/Queues/Workflows.html:42 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "Edit Workflows for queue %1" msgstr "ç¼–è¾‘è¡¨å• %1 çš„æµç¨‹" @@ -2208,6 +2637,10 @@ msgstr "ç¼–è¾‘è¡¨å• %1 çš„æµç¨‹" msgid "Edit keywords" msgstr "编辑关键è¯" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "编辑此群组已储存的查询" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "编辑手续" @@ -2228,14 +2661,20 @@ msgstr "编辑 %1 的模æ¿" msgid "Edit workflows for %1" msgstr "编辑 %1 çš„æµç¨‹" -#: html/Admin/Elements/ModifyQueue:24 html/Admin/Queues/Modify.html:118 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "编辑已储存的查询" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "ç¼–è¾‘è¡¨å• %1 的设定" -#: html/Admin/Elements/ModifyUser:24 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "编辑使用者 %1 的设定" @@ -2258,8 +2697,7 @@ msgstr "编辑代ç†äººç¾¤ç»„ %1 çš„æˆå‘˜ä¿¡æ¯" msgid "Editing template %1" msgstr "ç¼–è¾‘æ¨¡æ¿ %1" -#: html/Admin/Elements/ModifyWorkflow:238 -#. (loc( $WorkflowObj->Name() )) +#: NOT FOUND IN SOURCE msgid "Editing workflow %1" msgstr "编辑æµç¨‹ %1" @@ -2271,27 +2709,27 @@ msgstr "最高学历" msgid "EffectiveId" msgstr "有效编å·" -#: lib/RT/Ticket_Overlay.pm:2681 lib/RT/Ticket_Overlay.pm:2759 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "éœ€è¦æŒ‡å®šèµ·å§‹ç”³è¯·å•或目的申请å•" -#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Edit/Elements/SelectUsers:4 html/Edit/Users/List:7 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 html/Work/Delegates/Info:96 html/Work/Overview/Info:78 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "电å­é‚®ä»¶ä¿¡ç®±" -#: html/Work/Preferences/Info:16 +#: NOT FOUND IN SOURCE msgid "Email Address" msgstr "电å­é‚®ä»¶ä¿¡ç®±" -#: lib/RT/User_Overlay.pm:251 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "此电å­é‚®ä»¶ä¿¡ç®±å·²è¢«ä½¿ç”¨" -#: html/Admin/Elements/ModifyUser:41 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "电å­é‚®ä»¶ä¿¡ç®±åœ°å€" -#: html/Admin/Elements/ModifyUser:53 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "电å­é‚®ä»¶æ–‡å­—ç¼–ç æ–¹å¼" @@ -2311,6 +2749,10 @@ msgstr "抵达地点" msgid "Enable Delegates" msgstr "ä»£ç†æ¿€æ´»" +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + #: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "å¯ç”¨(å–æ¶ˆå‹¾é€‰å°†åœç”¨æ­¤è‡ªè®¢å­—段)" @@ -2323,11 +2765,15 @@ msgstr "å¯ç”¨(å–æ¶ˆå‹¾é€‰å°†åœç”¨æ­¤ç¾¤ç»„)" msgid "Enabled (Unchecking this box disables this queue)" msgstr "å¯ç”¨(å–æ¶ˆå‹¾é€‰å°†åœç”¨æ­¤è¡¨å•)" +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + #: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "å·²å¯ç”¨çš„自订字段" -#: html/Edit/Queues/Basic/Top:74 html/Edit/Queues/List:17 html/Edit/Queues/List:29 +#: NOT FOUND IN SOURCE msgid "Enabled Date" msgstr "å¯ç”¨æ—¥æœŸ" @@ -2339,15 +2785,19 @@ msgstr "激活日期:" msgid "Enabled Queues" msgstr "å·²å¯ç”¨çš„表å•" -#: html/Edit/Queues/Basic/Top:65 html/Edit/Queues/List:13 html/Edit/Queues/List:25 +#: NOT FOUND IN SOURCE msgid "Enabled Status" msgstr "å¯ç”¨çжæ€" -#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:284 html/User/Groups/Modify.html:116 +#: 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 "å¯ç”¨çŠ¶æ€ %1" +#: NOT FOUND IN SOURCE +msgid "Enabled status: %1" +msgstr "å¯ç”¨çжæ€: %1" + #: NOT FOUND IN SOURCE msgid "End of Trial" msgstr "试用期满日" @@ -2356,27 +2806,47 @@ msgstr "试用期满日" msgid "English Name" msgstr "英文姓å" -#: lib/RT/CustomField_Overlay.pm:434 +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "键入多é‡é¡¹ç›®" -#: html/Edit/Users/Search.html:15 +#: html/Elements/EditLinks:99 +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 "输入下列å•一或å¤å¼æ¡ä»¶ï¼ŒæŸ¥è¯¢ç”¨æˆ·æ•°æ®" +msgstr "键入下列å•一或å¤å¼æ¡ä»¶ï¼ŒæŸ¥è¯¢ç”¨æˆ·æ•°æ®" -#: lib/RT/CustomField_Overlay.pm:431 +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "键入å•一项目" -#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:94 html/Work/Search/Bulk.html:95 html/Work/Tickets/Elements/EditLinks:98 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "键入欲将表å•连结至的对象或 URI。项目之间请以空白隔开。" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "键入欲将申请å•连结至的对象或 URI。项目之间请以空白隔开。" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." -msgstr "输入申请å•å¯é“¾æŽ¥åˆ°çš„申请å•ç¼–å·æˆ–网å€ã€‚以空白隔开。" +msgstr "键入申请å•å¯é“¾æŽ¥åˆ°çš„申请å•ç¼–å·æˆ–网å€ã€‚项目之间请以空白隔开。" + +#: NOT FOUND IN SOURCE +msgid "Enter up to %1 values" +msgstr "键入最多 %1 个值" -#: lib/RT/CustomField_Vendor.pm:20 +#: NOT FOUND IN SOURCE msgid "EntryBoolean" msgstr "是éžå¡«è¡¨" -#: lib/RT/CustomField_Vendor.pm:17 +#: NOT FOUND IN SOURCE msgid "EntryDate" msgstr "日期填表" @@ -2384,7 +2854,7 @@ msgstr "日期填表" msgid "EntryExternal" msgstr "系统填表" -#: lib/RT/CustomField_Vendor.pm:16 +#: NOT FOUND IN SOURCE msgid "EntryFreeform" msgstr "输入填表" @@ -2392,15 +2862,15 @@ msgstr "输入填表" msgid "EntryMultiple" msgstr "多选填表" -#: lib/RT/CustomField_Vendor.pm:19 +#: NOT FOUND IN SOURCE msgid "EntryNumber" msgstr "数值填表" -#: lib/RT/CustomField_Vendor.pm:15 +#: NOT FOUND IN SOURCE msgid "EntrySelect" msgstr "å•选填表" -#: lib/RT/CustomField_Vendor.pm:18 +#: NOT FOUND IN SOURCE msgid "EntryTime" msgstr "时间填表" @@ -2412,31 +2882,47 @@ msgstr "错误" msgid "Error adding watcher" msgstr "新增视察员失败" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "表å•->æ–°å¢žè§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "表å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: lib/RT/Ticket_Overlay.pm:1407 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "申请å•->æ–°å¢žè§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: lib/RT/Ticket_Overlay.pm:1564 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "申请å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: bin/rt-crontool:209 +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 msgid "Escalate tickets" msgstr "调整申请å•优先等级" +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "预计" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "预计" + #: etc/initialdata:20 msgid "Everyone" msgstr "所有人" -#: bin/rt-crontool:193 +#: bin/rt-crontool:190 msgid "Example:" msgstr "范例:" @@ -2444,47 +2930,55 @@ msgstr "范例:" msgid "Existing user renamed from %1 to %2" msgstr "现有使用者 %1 已改å为 %2" -#: html/Edit/Elements/104Buttons:88 +#: NOT FOUND IN SOURCE msgid "Export" msgstr "汇出" -#: html/Admin/Elements/ModifyUser:63 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "外部认è¯å¸å·" -#: html/Admin/Elements/ModifyUser:57 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "外部è”络方å¼å¸å·" -#: html/Edit/Global/Basic/Top:69 +#: NOT FOUND IN SOURCE msgid "ExternalDatabaseDSN" msgstr "外部数æ®åº“连结字符串" -#: html/Edit/Global/Basic/Top:73 +#: NOT FOUND IN SOURCE msgid "ExternalDatabasePass" msgstr "外部数æ®åº“å£ä»¤" -#: html/Edit/Global/Basic/Top:71 +#: NOT FOUND IN SOURCE msgid "ExternalDatabaseUser" msgstr "外部数æ®åº“用户" -#: html/Edit/Global/Basic/Top:67 +#: NOT FOUND IN SOURCE msgid "ExternalURL" msgstr "外部接å£ç½‘å€" -#: html/Admin/Users/Modify.html:72 html/Edit/Users/Info:85 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "备注" -#: lib/RT/User_Overlay.pm:368 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "找ä¸åˆ°ã€Œå†…部æˆå‘˜ã€è™šæ‹Ÿç¾¤ç»„的使用者。" -#: lib/RT/User_Overlay.pm:375 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "找ä¸åˆ°ã€Œéžå†…部æˆå‘˜ã€è™šæ‹Ÿç¾¤ç»„的使用者。" -#: bin/rt-crontool:137 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "æ— æ³•åŠ è½½æ¨¡å— %1. (%2)" @@ -2505,31 +2999,47 @@ msgstr "二月" msgid "Female" msgstr "女" -#: html/Edit/Global/CustomField/Info:14 +#: NOT FOUND IN SOURCE msgid "Field Content:" msgstr "字段内容:" -#: html/Edit/Global/CustomField/List:7 html/Edit/Global/CustomField/Top:20 +#: NOT FOUND IN SOURCE msgid "Field Description" msgstr "字段æè¿°" -#: html/Edit/Global/CustomField/List:6 html/Edit/Global/CustomField/Top:14 +#: NOT FOUND IN SOURCE msgid "Field Name" msgstr "字段åç§°" -#: html/Edit/Global/CustomField/List:5 html/Edit/Global/CustomField/Top:9 +#: NOT FOUND IN SOURCE msgid "Field Type" msgstr "字段类别" -#: html/Edit/Elements/PickUsers:60 html/Edit/Users/Add.html:47 +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "æ¡£å" + +#: NOT FOUND IN SOURCE +msgid "Fill in multiple text areas" +msgstr "填入多个文字框" + +#: NOT FOUND IN SOURCE +msgid "Fill in one text area" +msgstr "填入一个文字框" + +#: NOT FOUND IN SOURCE +msgid "Fill in up to %1 text areas" +msgstr "填入最多 %1 个文字框" + +#: NOT FOUND IN SOURCE msgid "Filter" msgstr "筛选" -#: html/Edit/Elements/PickUsers:6 html/Edit/Users/Add.html:7 html/Work/Tickets/Cc:4 +#: NOT FOUND IN SOURCE msgid "Filter people" msgstr "对象筛选" -#: html/Edit/Elements/PickUsers:76 html/Edit/Users/Add.html:63 html/Work/Tickets/Cc:42 +#: NOT FOUND IN SOURCE msgid "Filtered list:" msgstr "筛选列表:" @@ -2537,11 +3047,11 @@ msgstr "筛选列表:" msgid "Fin" msgstr "最终" -#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 html/Work/Tickets/Elements/EditBasics:52 lib/RT/Tickets_Overlay.pm:1152 +#: 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 "最终顺ä½" -#: lib/RT/Ticket_Overlay.pm:1212 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "最终顺ä½" @@ -2549,39 +3059,43 @@ msgstr "最终顺ä½" msgid "Financial Department:" msgstr "财务部:" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 html/Work/Tickets/Elements/EditPeople:18 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "寻找群组的" +#: NOT FOUND IN SOURCE +msgid "Find groups whose" +msgstr "寻找群组的" + #: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "寻找/å¼€å¯ç”³è¯·å•" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Edit/Users/Top:6 html/Ticket/Elements/EditPeople:29 html/Work/Tickets/Elements/EditPeople:14 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "寻找人员的" -#: html/Edit/Queues/Top:6 +#: NOT FOUND IN SOURCE msgid "Find queues whose" msgstr "寻找表å•çš„" -#: html/Search/Listing.html:107 html/Work/Search/index.html:88 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "寻找申请å•" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:118 +#: NOT FOUND IN SOURCE msgid "Finish Approval" msgstr "签核完毕" -#: html/Ticket/Elements/Tabs:63 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "第一项" -#: html/Search/Listing.html:40 html/Work/Search/index.html:17 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "第一页" -#: html/Edit/Global/Workflow/Owner.html:30 +#: NOT FOUND IN SOURCE msgid "First-" msgstr "一" @@ -2605,32 +3119,36 @@ msgstr "甲 ä¹™ 丙" msgid "Foo!" msgstr "甲ï¼" -#: html/Search/Bulk.html:86 html/Work/Search/Bulk.html:55 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "强制更æ¢" -#: html/Work/Elements/104Header:89 +#: NOT FOUND IN SOURCE msgid "Form Processing" msgstr "电å­è¡¨å•作业区" -#: html/Search/Listing.html:105 html/Work/Search/index.html:86 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "找到 %1 张申请å•" -#: lib/RT/Interface/Web.pm:966 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "已找到对象" -#: html/Edit/Global/Workflow/Owner.html:33 +#: NOT FOUND IN SOURCE msgid "Fourth-" msgstr "å››" -#: html/Admin/Elements/ModifyUser:43 +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "输入" + +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "è”络方å¼" -#: lib/RT/CustomField_Vendor.pm:11 +#: NOT FOUND IN SOURCE msgid "FreeformDate" msgstr "日期输入" @@ -2642,11 +3160,11 @@ msgstr "系统字段" msgid "FreeformMultiple" msgstr "多é‡è¾“å…¥" -#: lib/RT/CustomField_Vendor.pm:13 +#: NOT FOUND IN SOURCE msgid "FreeformNumber" msgstr "数值输入" -#: lib/RT/CustomField_Vendor.pm:14 +#: NOT FOUND IN SOURCE msgid "FreeformPassword" msgstr "å£ä»¤è¾“å…¥" @@ -2654,7 +3172,7 @@ msgstr "å£ä»¤è¾“å…¥" msgid "FreeformSingle" msgstr "å•一输入" -#: lib/RT/CustomField_Vendor.pm:12 +#: NOT FOUND IN SOURCE msgid "FreeformTime" msgstr "时间输入" @@ -2678,11 +3196,15 @@ msgstr "登入å¸å·" msgid "Gender" msgstr "性别" +#: html/Tools/Offline.html:65 +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:551 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "交予 %1" @@ -2695,11 +3217,15 @@ msgstr "全域设定" msgid "Global Approval" msgstr "全域签核" +#: NOT FOUND IN SOURCE +msgid "Global Custom Fields" +msgstr "全域自订字段" + #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "全域关键è¯é€‰å–" -#: html/Edit/Users/System:24 +#: NOT FOUND IN SOURCE msgid "Global Rights:" msgstr "拥有全域æƒé™åˆ—表:" @@ -2707,11 +3233,11 @@ msgstr "拥有全域æƒé™åˆ—表:" msgid "Global Scrips" msgstr "全域手续" -#: html/Edit/Elements/Tab:40 +#: NOT FOUND IN SOURCE msgid "Global Setup" msgstr "全域设定" -#: html/Admin/Elements/SelectTemplate:37 html/Edit/Elements/SelectTemplate:11 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "全域模æ¿ï¼š%1" @@ -2720,7 +3246,11 @@ msgstr "全域模æ¿ï¼š%1" msgid "GlobalApproval" msgstr "全域签核" -#: html/Admin/Elements/EditCustomFields:73 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/Work/Tickets/Elements/EditPeople:16 html/Work/Tickets/Elements/EditPeople:20 html/index.html:40 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "执行" + +#: 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 "执行" @@ -2728,19 +3258,19 @@ msgstr "执行" msgid "Good pgp sig from %1\\n" msgstr "%1 çš„ pgp 签章是正确的\\n" -#: html/Search/Listing.html:49 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "到页é¢" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 html/Work/Elements/104Header:49 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "跳到申请å•" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:224 +#: NOT FOUND IN SOURCE msgid "Grand" msgstr "上" -#: html/Ticket/Elements/AddWatchers:45 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "群组" @@ -2752,7 +3282,7 @@ msgstr "群组 %1 %2:%3" msgid "Group Admin" msgstr "群组管ç†å‘˜" -#: html/Edit/Global/GroupRight/List:5 html/Edit/Global/GroupRight/Top:20 html/Edit/Groups/List:8 +#: NOT FOUND IN SOURCE msgid "Group Description" msgstr "群组æè¿°" @@ -2764,7 +3294,7 @@ msgstr "群组管ç†" msgid "Group Members" msgstr "群组æˆå‘˜" -#: html/Edit/Elements/PickUsers:30 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Queues/Basic/Add.html:15 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Approvals/Add.html:16 html/Work/Delegates/Add.html:16 html/Work/Tickets/Cc:24 +#: NOT FOUND IN SOURCE msgid "Group Name" msgstr "群组åç§°" @@ -2772,7 +3302,7 @@ msgstr "群组åç§°" msgid "Group Name:" msgstr "群组å称:" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:29 html/Edit/Users/Group:11 html/Edit/Users/index.html:96 +#: 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 "群组æƒé™" @@ -2780,15 +3310,15 @@ msgstr "群组æƒé™" msgid "Group Rights:" msgstr "拥有群组æƒé™åˆ—表:" -#: html/Edit/Elements/Tab:36 +#: NOT FOUND IN SOURCE msgid "Group Setup" msgstr "群组设定" -#: html/Edit/Global/GroupRight/List:8 html/Edit/Global/GroupRight/Top:14 html/Edit/Groups/List:16 html/Edit/Groups/Top:15 +#: NOT FOUND IN SOURCE msgid "Group Status" msgstr "群组状æ€" -#: lib/RT/Group_Overlay.pm:956 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "群组内已有此æˆå‘˜" @@ -2801,7 +3331,7 @@ msgstr "无法新增群组" msgid "Group could not be created: %1" msgstr "无法新增群组:%1" -#: lib/RT/Group_Overlay.pm:496 +#: lib/RT/Group_Overlay.pm:497 msgid "Group created" msgstr "群组新增完毕" @@ -2809,11 +3339,11 @@ msgstr "群组新增完毕" msgid "Group created: %1" msgstr "群组 %1 新增完毕" -#: lib/RT/Group_Overlay.pm:1128 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "群组没有这个æˆå‘˜" -#: lib/RT/Group_Overlay.pm:936 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1461 lib/RT/Ticket_Overlay.pm:1539 +#: 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 "找ä¸åˆ°ç¾¤ç»„" @@ -2837,7 +3367,7 @@ msgstr "群组 %1 已改å为 %2" msgid "Group with Queue Rights" msgstr "æ‹¥æœ‰è¡¨å•æƒé™ç¾¤ç»„" -#: html/Edit/Global/Workflow/Owner.html:78 +#: NOT FOUND IN SOURCE msgid "Group's" msgstr "群组之" @@ -2845,23 +3375,31 @@ msgstr "群组之" msgid "Group:" msgstr "群组:" -#: 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/Edit/Global/GroupRight/Add.html:16 html/Edit/Groups/Admin:12 html/User/Groups/Members.html:66 +#: 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 "群组" -#: lib/RT/Group_Overlay.pm:962 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "ä¸èƒ½å°†ç¾¤ç»„设为群组内æˆå‘˜" +#: NOT FOUND IN SOURCE +msgid "Groups matching search criteria" +msgstr "ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„群组" + +#: NOT FOUND IN SOURCE +msgid "Groups this user belongs to" +msgstr "使用者所属的群组" + #: NOT FOUND IN SOURCE msgid "Groups with Global Rights" msgstr "拥有全域æƒé™ç¾¤ç»„" -#: html/Edit/Global/GroupRight/List:6 html/Edit/Global/GroupRight/Top:22 html/Edit/Groups/List:10 +#: NOT FOUND IN SOURCE msgid "HRMSDefined" msgstr "组织架构" -#: html/Edit/Global/CustomField/Top:57 +#: NOT FOUND IN SOURCE msgid "HTML Attributes" msgstr "HTML 属性" @@ -2878,7 +3416,7 @@ msgstr "å—¨ï¼" msgid "Hello, %1" msgstr "嗨,%1" -#: html/Edit/Elements/104Top:28 +#: NOT FOUND IN SOURCE msgid "Help" msgstr "说明" @@ -2886,19 +3424,31 @@ msgstr "说明" msgid "Help Desks" msgstr "å„项业务窗å£" -#: html/Edit/Global/CustomField/SelectWritable:7 html/Edit/Queues/Basic/Top:80 +#: NOT FOUND IN SOURCE msgid "Hidden" msgstr "éšè—" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:93 html/Work/Tickets/Elements/ShowHistory:8 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "纪录" -#: html/Admin/Elements/ModifyUser:67 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the group %1" +msgstr "群组 %1 的纪录" + +#: NOT FOUND IN SOURCE +msgid "History of the user %1" +msgstr "使用者 %1 的纪录" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "ä½å¤„电è¯" -#: html/Edit/Elements/104Top:15 html/Edit/Elements/104Top:24 html/Edit/Elements/EDOMHeader:9 html/Elements/Tabs:43 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "主页" @@ -2911,6 +3461,10 @@ msgstr "ä½å®¿è´¹" msgid "I have %quant(%1,concrete mixer)." msgstr "我有 %quant(%1,ä»½å›ºä½“æ…æ‹Œå™¨)。" +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "" + #: NOT FOUND IN SOURCE msgid "ID Number" msgstr "身分è¯å·" @@ -2919,19 +3473,27 @@ msgstr "身分è¯å·" msgid "ID Type" msgstr "身分类别" -#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1079 +#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 msgid "Id" msgstr "ç¼–å·" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 html/Work/Preferences/Info:14 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "身份" -#: etc/initialdata:411 etc/upgrade/2.1.71:86 html/Edit/Elements/CreateApprovalsQueue:58 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "若签核å•é­åˆ°é©³å›žï¼Œåˆ™è¿žå¸¦é©³å›žåŽŸç”³è¯·å•,并删除其它相关的待签核事项" -#: bin/rt-crontool:189 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "申请å•若没有指定表å•,则将它新增在此表å•内" + +#: 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 "如果此工具程åºä¸º setgidï¼Œæ¶æ„的本地端用户å³èƒ½ç”±æ­¤å–å¾— RT 的管ç†å‘˜æƒé™ã€‚" @@ -2939,27 +3501,39 @@ msgstr "如果此工具程åºä¸º setgidï¼Œæ¶æ„的本地端用户å³èƒ½ç”±æ­¤ msgid "If you've updated anything above, be sure to" msgstr "若您已更新以上数æ®ï¼Œè¯·è®°å¾—按一下" -#: lib/RT/Interface/Web.pm:958 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "%1 的值错误" -#: lib/RT/Interface/Web.pm:961 +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "图片" + +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "此字段值ä¸å¯æ›´åЍ" -#: html/Edit/Elements/104Buttons:87 html/Edit/Global/Workflow/Import.html:2 +#: NOT FOUND IN SOURCE msgid "Import" msgstr "汇入" +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + #: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "列出åœç”¨çš„自订字段" -#: html/Admin/Queues/index.html:42 html/Edit/Queues/Top:9 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "列出åœç”¨çš„群组" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "列出åœç”¨çš„表å•" -#: html/Admin/Users/index.html:46 html/Edit/Users/Search.html:62 html/Edit/Users/Top:9 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "列出åœç”¨çš„使用者" @@ -2967,15 +3541,15 @@ msgstr "列出åœç”¨çš„使用者" msgid "Indirect Employee" msgstr "直接/间接员工" -#: lib/RT/Tickets_Overlay.pm:1128 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "åˆå§‹ä¼˜å…ˆé¡ºä½" -#: lib/RT/Ticket_Overlay.pm:1211 lib/RT/Ticket_Overlay.pm:1213 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "åˆå§‹ä¼˜å…ˆé¡ºä½" -#: lib/RT/ScripAction_Overlay.pm:105 lib/RT/Workflow.pm:190 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "输入错误" @@ -2983,16 +3557,16 @@ msgstr "输入错误" msgid "Interest noted" msgstr "登记æˆåŠŸ" -#: lib/RT/Ticket_Overlay.pm:3931 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "内部错误" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "内部错误:%1" -#: lib/RT/Group_Overlay.pm:643 +#: lib/RT/Group_Overlay.pm:644 msgid "Invalid Group Type" msgstr "错误的群组类别" @@ -3004,11 +3578,11 @@ msgstr "错误的æƒé™" msgid "Invalid Type" msgstr "错误的类型" -#: lib/RT/Interface/Web.pm:963 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "错误的数æ®" -#: lib/RT/Ticket_Overlay.pm:468 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "错误的承办人。改为预设承办人「nobodyã€ã€‚" @@ -3020,16 +3594,16 @@ msgstr "错误的表å•" msgid "Invalid right" msgstr "错误的æƒé™" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "%1 的值错误" -#: lib/RT/Ticket_Overlay.pm:3529 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "错误的自订字段值" -#: lib/RT/Ticket_Overlay.pm:370 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "错误的状æ€å€¼" @@ -3037,15 +3611,15 @@ msgstr "错误的状æ€å€¼" msgid "IssueStatement" msgstr "é€å‡ºé™ˆè¿°" -#: bin/rt-crontool:190 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "请ç»å¯¹ä¸è¦è®©æœªå…·æƒé™çš„使用者执行此工具程åºã€‚" -#: bin/rt-crontool:191 +#: 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 "建议您新增一个隶属于正确群组的低æƒé™ç³»ç»Ÿä½¿ç”¨è€…,并以该身份执行此工具程åºã€‚" -#: bin/rt-crontool:162 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "它接å—ä¸‹åˆ—å‚æ•°ï¼š" @@ -3093,7 +3667,7 @@ msgstr "07" msgid "July" msgstr "七月" -#: html/Ticket/Elements/Tabs:104 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "全部信æ¯" @@ -3113,43 +3687,47 @@ msgstr "六月" msgid "Keyword" msgstr "关键è¯" -#: lib/RT/CustomField_Vendor.pm:23 +#: NOT FOUND IN SOURCE msgid "LabelAttachments" msgstr "附件巿 ‡" -#: lib/RT/CustomField_Vendor.pm:24 +#: NOT FOUND IN SOURCE msgid "LabelContent" msgstr "内容巿 ‡" -#: lib/RT/CustomField_Vendor.pm:22 +#: NOT FOUND IN SOURCE msgid "LabelSubject" msgstr "ä¸»é¢˜å·æ ‡" -#: lib/RT/CustomField_Vendor.pm:21 +#: NOT FOUND IN SOURCE msgid "LabelURL" msgstr "é“¾æŽ¥å·æ ‡" -#: html/Admin/Elements/ModifyUser:51 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "使用语言" -#: html/User/Prefs.html:54 html/Work/Preferences/Info:32 +#: html/User/Prefs.html:54 msgid "Language" msgstr "语言" -#: html/Ticket/Elements/Tabs:78 +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "上次更新" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 html/Work/Tickets/Elements/EditBasics:44 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "上次è”络" +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + #: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "上次è”络日期" -#: html/Search/Elements/TicketHeader:40 html/Work/Search/TicketHeader:19 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "上次通知" @@ -3161,15 +3739,19 @@ msgstr "上次更新" msgid "LastUpdated" msgstr "上次更新" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "上次更新者" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "剩馀时间" -#: html/Admin/Users/Modify.html:82 html/Edit/Users/Info:107 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" msgstr "å…许这å使用者登入" -#: html/Admin/Users/Modify.html:86 html/Edit/Users/Info:113 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" msgstr "内部æˆå‘˜ï¼ˆå…·æœ‰ä¸ªäººæƒé™ï¼‰" @@ -3181,29 +3763,29 @@ msgstr "é™åˆ¶æ‰¿åŠžäººä¸º %1 到%2" msgid "Limiting queue to %1 %2" msgstr "é™åˆ¶è¡¨å•为 %1 到 %2" -#: html/Work/Queues/Select.html:4 +#: NOT FOUND IN SOURCE msgid "Link a Queue" msgstr "申请表å•连结" -#: lib/RT/Ticket_Overlay.pm:2773 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "此链接已存在" -#: lib/RT/Ticket_Overlay.pm:2785 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "无法新增链接" -#: lib/RT/Ticket_Overlay.pm:2793 lib/RT/Ticket_Overlay.pm:2805 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "链接(%1)新增完毕" -#: lib/RT/Ticket_Overlay.pm:2706 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "链接(%1)删除完毕" -#: lib/RT/Ticket_Overlay.pm:2712 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "找ä¸åˆ°é“¾æŽ¥" @@ -3216,41 +3798,53 @@ msgstr "é“¾æŽ¥ç”³è¯·å• #%1" msgid "Link ticket %1" msgstr "é“¾æŽ¥ç”³è¯·å• %1" -#: html/Ticket/Elements/Tabs:102 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "链接" -#: html/Edit/Users/Search.html:11 +#: NOT FOUND IN SOURCE msgid "List All Users" msgstr "列出所有用户数æ®" -#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:107 html/Work/Preferences/Info:78 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "加载" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "加载已储存的查询:" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "已加载的 Perl 模å—" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "ä½ç½®" -#: lib/RT.pm:174 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "登入目录 %1 找ä¸åˆ°æˆ–无法写入\\n。无法执行 RT。" -#: html/Edit/Global/Basic/Top:57 +#: NOT FOUND IN SOURCE msgid "LogToFile" msgstr "纪录等级" -#: html/Edit/Global/Basic/Top:59 +#: NOT FOUND IN SOURCE msgid "LogToFileNamed" msgstr "纪录档å" -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "使用者:%1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:60 lib/RT/StyleGuide.pod:777 +#: 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 "登入" -#: html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:32 html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "注销" @@ -3258,43 +3852,47 @@ msgstr "注销" msgid "Long-term contractor" msgstr "长期契约员工" -#: html/Search/Bulk.html:85 html/Work/Search/Bulk.html:54 +#: NOT FOUND IN SOURCE +msgid "Lookup type mismatch" +msgstr "对应的类别ä¸ç¬¦" + +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "新增承办人" -#: html/Search/Bulk.html:109 html/Work/Search/Bulk.html:63 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "新增现况" -#: html/Search/Bulk.html:117 html/Work/Search/Bulk.html:75 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "新增到期日" -#: html/Search/Bulk.html:119 html/Work/Search/Bulk.html:78 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "新增解决日期" -#: html/Search/Bulk.html:113 html/Work/Search/Bulk.html:69 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "新增实际起始日期" -#: html/Search/Bulk.html:111 html/Work/Search/Bulk.html:66 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "新增应起始日期" -#: html/Search/Bulk.html:115 html/Work/Search/Bulk.html:72 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "新增报告日期" -#: html/Search/Bulk.html:105 html/Work/Search/Bulk.html:57 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "新增优先顺ä½" -#: html/Search/Bulk.html:107 html/Work/Search/Bulk.html:60 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "新增表å•" -#: html/Search/Bulk.html:103 html/Work/Search/Bulk.html:59 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "新增主题" @@ -3302,6 +3900,14 @@ msgstr "新增主题" msgid "Male" msgstr "ç”·" +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Manage custom fields and custom field values" +msgstr "管ç†è‡ªè®¢å­—段åŠå­—段值" + #: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "管ç†ç¾¤ç»„åŠæ‰€å±žæˆå‘˜" @@ -3338,7 +3944,7 @@ msgstr "三月" msgid "Marketing Department" msgstr "行销部" -#: html/Edit/Global/CustomField/Top:63 +#: NOT FOUND IN SOURCE msgid "Match Pattern" msgstr "ç¬¦åˆæ ·å¼" @@ -3350,25 +3956,25 @@ msgstr "五月" msgid "May." msgstr "05" -#: lib/RT/Transaction_Overlay.pm:598 +#: lib/RT/Transaction_Overlay.pm:634 #. ($value) msgid "Member %1 added" msgstr "æˆå‘˜ %1 新增完毕" -#: lib/RT/Transaction_Overlay.pm:638 +#: lib/RT/Transaction_Overlay.pm:674 #. ($value) msgid "Member %1 deleted" msgstr "æˆå‘˜ %1 删除完毕" -#: lib/RT/Group_Overlay.pm:973 +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "新增æˆå‘˜å®Œæ¯•" -#: lib/RT/Group_Overlay.pm:1135 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "æˆå‘˜å·²åˆ é™¤" -#: lib/RT/Group_Overlay.pm:1139 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "æˆå‘˜æœªåˆ é™¤" @@ -3376,7 +3982,7 @@ msgstr "æˆå‘˜æœªåˆ é™¤" msgid "Member of" msgstr "隶属于" -#: html/Edit/Users/Info:23 html/Work/Preferences/index.html:19 +#: NOT FOUND IN SOURCE msgid "Member since" msgstr "注册日期" @@ -3384,78 +3990,130 @@ msgstr "注册日期" msgid "MemberOf" msgstr "隶属于" -#: html/Admin/Elements/GroupTabs:41 html/Admin/Elements/ModifyTemplateAsWorkflow:232 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "æˆå‘˜" -#: lib/RT/Transaction_Overlay.pm:595 +#: lib/RT/Transaction_Overlay.pm:631 #. ($value) msgid "Membership in %1 added" msgstr "所属群组 %1 加入完毕" -#: lib/RT/Transaction_Overlay.pm:635 +#: lib/RT/Transaction_Overlay.pm:671 #. ($value) msgid "Membership in %1 deleted" msgstr "所属群组 %1 移除完毕" -#: lib/RT/Ticket_Overlay.pm:2962 +#: NOT FOUND IN SOURCE +msgid "Memberships" +msgstr "所属群组" + +#: NOT FOUND IN SOURCE +msgid "Memberships of the user %1" +msgstr "使用者 %1 的所属群组" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "æ•´åˆå®Œæ¯•" -#: lib/RT/Ticket_Overlay.pm:2882 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "æ•´åˆå¤±è´¥ã€‚无法设定 EffectiveId" -#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:97 html/Work/Search/BulkLinks:2 html/Work/Tickets/Elements/EditLinks:101 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "æ•´åˆè¿›" -#: lib/RT/Transaction_Overlay.pm:601 +#: lib/RT/Transaction_Overlay.pm:637 #. ($value) msgid "Merged into %1" msgstr "已整åˆè¿› %1" -#: html/Search/Bulk.html:137 html/Ticket/Update.html:100 +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "讯æ¯" -#: html/Ticket/Elements/ShowTransaction:88 +#: NOT FOUND IN SOURCE msgid "Message body not shown because it is too large or is not plain text." msgstr "ä¿¡ä»¶å†…æ–‡ä¸æ˜¯çº¯æ–‡å­—,因此无法显示。" +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "无法纪录讯æ¯" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "讯æ¯çºªå½•æˆåŠŸ" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "此申请å•的相关讯æ¯ä¸ä¼šå¯„é€ç»™..." + #: NOT FOUND IN SOURCE msgid "Misc. Expense" msgstr "æ‚è´¹" -#: lib/RT/Interface/Web.pm:965 +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "缺少主键值?(%1)" -#: html/Work/Tickets/Create.html:180 +#: NOT FOUND IN SOURCE msgid "Missing mandatory fields" msgstr "缺少必填字段" -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:71 html/Work/Preferences/Info:41 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "行动电è¯" -#: html/Admin/Elements/ModifyUser:71 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "行动电è¯" -#: lib/RT/Queue_Overlay.pm:69 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "更改æƒé™æŽ§åˆ¶æ¸…å•" +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all %1" +msgstr "更改适用于所有%1的自订字段" + #: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "更改适用于所有表å•的自订字段" -#: lib/RT/Queue_Overlay.pm:72 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "更改此表å•的模æ¿" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "更改此表å•的手续" @@ -3467,6 +4125,10 @@ msgstr "更改系统æƒé™æ¸…å•" msgid "Modify Template %1" msgstr "æ›´æ”¹æ¨¡æ¿ %1" +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Modify Workflow" msgstr "更改æµç¨‹" @@ -3489,6 +4151,14 @@ msgstr "更改 %1 表å•内的手续" msgid "Modify a scrip which applies to all queues" msgstr "更改适用于所有表å•的手续" +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify associated objects for %1" +msgstr "更改适用 %1 的对象" + #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "更改 # %1 的日期" @@ -3535,10 +4205,14 @@ msgstr "更改全域设定的使用者æƒé™ã€‚" msgid "Modify group metadata or delete group" msgstr "更改群组数æ®åŠåˆ é™¤ç¾¤ç»„" +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "更改自订字段 %1 的群组æƒé™" + #: 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 "更改 %1 的群组æƒé™" +msgstr "更改群组 %1 的群组æƒé™" #: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) @@ -3588,11 +4262,11 @@ msgstr "更改适用于所有表å•的模æ¿" msgid "Modify the group %1" msgstr "更改群组 %1" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "更改表å•视察员" -#: html/Admin/Users/Modify.html:237 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "更改使用者 %1" @@ -3607,10 +4281,14 @@ msgstr "æ›´æ”¹ç”³è¯·å• # %1" msgid "Modify ticket #%1" msgstr "æ›´æ”¹ç”³è¯·å• # %1" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "更改申请å•" +#: NOT FOUND IN SOURCE +msgid "Modify user rights for custom field %1" +msgstr "更改自订字段 %1 的使用者æƒé™" + #: 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" @@ -3625,17 +4303,15 @@ msgstr "æ›´æ”¹è¡¨å• %1 的使用者æƒé™" msgid "Modify watchers for queue '%1'" msgstr "更改 '%1' 的视察员" -#: html/Admin/Global/Workflow.html:25 html/Admin/Global/Workflow.html:30 html/Admin/Global/Workflow.html:81 html/Admin/Queues/Workflow.html:77 -#. (loc($WorkflowObj->Name())) -#. ($WorkflowObj->id) +#: NOT FOUND IN SOURCE msgid "Modify workflow %1" msgstr "更改æµç¨‹ %1" -#: html/Admin/Global/Workflows.html:44 +#: NOT FOUND IN SOURCE msgid "Modify workflows which apply to all queues" msgstr "更改适用于所有表å•çš„æµç¨‹" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "更改æƒé™æ¸…å•" @@ -3643,11 +4319,11 @@ msgstr "更改æƒé™æ¸…å•" msgid "ModifyOwnMembership" msgstr "更改自己是å¦å±žäºŽæŸç¾¤ç»„" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "更改表å•视察员" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "更改手续" @@ -3655,11 +4331,11 @@ msgstr "更改手续" msgid "ModifySelf" msgstr "更改个人å¸å·" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "更改模æ¿" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "更改申请å•" @@ -3671,11 +4347,11 @@ msgstr "星期一" msgid "Mon." msgstr "星期一" -#: html/Work/Elements/MyRequests:11 html/Work/Elements/MyTickets:11 +#: NOT FOUND IN SOURCE msgid "More" msgstr "更多" -#: html/Ticket/Elements/ShowRequestor:41 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "关于 %1 的进一步信æ¯" @@ -3684,7 +4360,11 @@ msgstr "关于 %1 的进一步信æ¯" msgid "Morning Shift" msgstr "æ—©ç­" -#: html/Edit/Elements/ListButtons:16 +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "移动" + +#: NOT FOUND IN SOURCE msgid "Move All" msgstr "全移" @@ -3700,7 +4380,7 @@ msgstr "上移" msgid "Multiple" msgstr "多é‡" -#: lib/RT/User_Overlay.pm:242 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "必须指定 'Name' 的属性" @@ -3709,15 +4389,15 @@ msgstr "必须指定 'Name' 的属性" msgid "My %1 tickets" msgstr "我的 %1 申请å•" -#: html/Work/Elements/Tab:38 +#: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "表å•签核" -#: html/Work/Elements/Tab:36 +#: NOT FOUND IN SOURCE msgid "My Requests" msgstr "表å•申请追踪" -#: html/Work/Elements/Tab:40 +#: NOT FOUND IN SOURCE msgid "My Tickets" msgstr "表å•处ç†" @@ -3725,14 +4405,22 @@ msgstr "表å•处ç†" msgid "My approvals" msgstr "表å•签核" -#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyTemplateAsWorkflow:185 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Edit/Elements/SelectQueues:3 html/Edit/Queues/List:8 html/Edit/Users/Add.html:22 html/Edit/Users/List:5 html/Edit/Users/Search.html:31 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 html/Work/Tickets/Cc:18 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "我已储存的查询" + +#: 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 "åç§°" -#: lib/RT/User_Overlay.pm:249 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "å¸å·å·²æœ‰äººä½¿ç”¨" +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Nationality" msgstr "国ç±" @@ -3745,34 +4433,50 @@ msgstr "需先由系统管ç†å‘˜è¿›è¡Œæ‰¹å‡†" msgid "Never" msgstr "从未更动" -#: html/Elements/Quicksearch:29 html/Work/Elements/Quicksearch:15 html/Work/Tickets/Create.html:53 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "新建立" -#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/Edit/Users/Info:46 html/User/Prefs.html:87 html/Work/Preferences/Info:52 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "新增关系" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "æ–°çš„å£ä»¤" -#: etc/initialdata:317 etc/upgrade/2.1.71:16 html/Edit/Elements/CreateApprovalsQueue:21 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "新的待签核事项" -#: html/Ticket/Elements/EditLinks:93 html/Work/Tickets/Elements/EditLinks:12 +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "新增查询" + +#: NOT FOUND IN SOURCE msgid "New Relationships" -msgstr "新增关系" +msgstr "" -#: html/Work/Elements/Tab:34 +#: NOT FOUND IN SOURCE msgid "New Request" msgstr "表å•申请" -#: html/Ticket/Elements/Tabs:35 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "新增查询" -#: html/Work/Tickets/Elements/EditPeople:7 +#: NOT FOUND IN SOURCE msgid "New Watchers" msgstr "新增视察员" +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + #: 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 "新增自订字段" @@ -3785,7 +4489,7 @@ msgstr "新增群组" msgid "New password" msgstr "æ–°çš„å£ä»¤" -#: lib/RT/User_Overlay.pm:769 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "é€å‡ºæ–°å£ä»¤é€šçŸ¥" @@ -3805,7 +4509,7 @@ msgstr "新增æƒé™" msgid "New scrip" msgstr "新增手续" -#: html/Work/Search/index.html:62 +#: NOT FOUND IN SOURCE msgid "New search" msgstr "釿–°æŸ¥è¯¢" @@ -3817,11 +4521,11 @@ msgstr "新增模æ¿" msgid "New ticket" msgstr "æå‡ºç”³è¯·å•" -#: lib/RT/Ticket_Overlay.pm:2849 +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "没有新申请å•" -#: html/Admin/Elements/UserTabs:51 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "新增使用者" @@ -3833,27 +4537,31 @@ msgstr "新使用者åå­—" msgid "New watchers" msgstr "新视察员" -#: html/Admin/Users/Prefs.html:41 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "更新窗å£è®¾å®š" -#: html/Admin/Global/Workflow.html:60 html/Admin/Global/Workflows.html:39 html/Admin/Queues/Workflow.html:57 html/Admin/Queues/Workflows.html:50 +#: NOT FOUND IN SOURCE msgid "New workflow" msgstr "新增æµç¨‹" -#: html/Ticket/Elements/Tabs:74 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "下一项" -#: html/Search/Listing.html:47 html/Work/Search/index.html:24 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "下一页" + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "下一页" -#: html/Admin/Elements/ModifyUser:49 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "昵称" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 html/Work/Preferences/Info:29 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "昵称" @@ -3861,23 +4569,35 @@ msgstr "昵称" msgid "Night Shift" msgstr "å°å¤œç­" -#: html/Edit/Global/Basic/Top:27 html/Edit/Queues/Basic/Top:83 +#: NOT FOUND IN SOURCE msgid "No" msgstr "å¦" +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "尚未定义类别" + #: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "无自订字段" +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "尚未定义自订字段" + #: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "尚未定义群组" +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "没有查询" + #: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" -msgstr "没有定义好的表å•" +msgstr "尚未定义表å•" -#: bin/rt-crontool:55 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "找ä¸åˆ° RT ä½¿ç”¨è€…ã€‚è¯·å‘ RT 管ç†å‘˜æŸ¥è¯¢ã€‚\\n" @@ -3885,7 +4605,7 @@ msgstr "找ä¸åˆ° RT ä½¿ç”¨è€…ã€‚è¯·å‘ RT 管ç†å‘˜æŸ¥è¯¢ã€‚\\n" msgid "No Template" msgstr "没有模æ¿" -#: bin/rt-commit-handler:763 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "未指定申请å•ã€‚é€€å‡ºç”³è¯·å• " @@ -3893,7 +4613,7 @@ msgstr "未指定申请å•ã€‚é€€å‡ºç”³è¯·å• " msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "未指定申请å•ã€‚é€€å‡ºç”³è¯·å•æ›´æ”¹\\n\\n" -#: html/Admin/Elements/ModifyWorkflow:237 html/Admin/Global/Workflow.html:79 html/Admin/Queues/Workflow.html:75 +#: NOT FOUND IN SOURCE msgid "No Workflow" msgstr "没有æµç¨‹" @@ -3901,7 +4621,7 @@ msgstr "没有æµç¨‹" msgid "No action" msgstr "æš‚ä¸å¤„ç†" -#: lib/RT/Interface/Web.pm:960 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "未指定字段" @@ -3909,37 +4629,44 @@ msgstr "未指定字段" msgid "No command found\\n" msgstr "找ä¸åˆ°å‘½ä»¤" -#: html/Elements/ViewUser:35 html/Ticket/Elements/ShowRequestor:44 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "没有对这å使用者的评论" -#: lib/RT/Ticket_Overlay.pm:2237 lib/RT/Ticket_Overlay.pm:2307 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "没有附上申请å•回å¤" -#: lib/RT/Action/Generic.pm:149 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: 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 "没有对 %1 çš„æè¿°" -#: lib/RT/Users_Overlay.pm:163 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "未指定群组" -#: lib/RT/User_Overlay.pm:987 +#: NOT FOUND IN SOURCE +msgid "No groups matching search criteria found." +msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„群组。" + +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "没有附上讯æ¯" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "没有设定å£ä»¤" -#: lib/RT/Queue_Overlay.pm:260 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "没有新增表å•çš„æƒé™" -#: lib/RT/Ticket_Overlay.pm:366 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "æ²¡æœ‰åœ¨è¡¨å• '%1' 新增申请å•çš„æƒé™" -#: lib/RT/User_Overlay.pm:208 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "没有新增使用者的æƒé™" @@ -3951,7 +4678,7 @@ msgstr "没有显示该申请å•çš„æƒé™" msgid "No permission to view update ticket" msgstr "æ²¡æœ‰æ£€è§†ç”³è¯·å•æ›´æ–°çš„æƒé™" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1520 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "未指定å•ä½" @@ -3975,15 +4702,19 @@ msgstr "找ä¸åˆ°æƒé™" msgid "No rights granted." msgstr "没有选定æƒé™" -#: html/Search/Bulk.html:160 html/Work/Search/Bulk.html:117 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "没有è¦è¿›è¡Œçš„æŸ¥è¯¢" +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "没有标题" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "未指定申请å•ç¼–å·" -#: lib/RT/Transaction_Overlay.pm:427 lib/RT/Transaction_Overlay.pm:465 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "未指定更动报告类别" @@ -3995,19 +4726,19 @@ msgstr "未指定使用者或电å­é‚®ä»¶åœ°å€" msgid "No users matching search criteria found." msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„使用者。" -#: bin/rt-commit-handler:643 +#: 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/Interface/Web.pm:957 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "_Set 没有收到任何值!\\n" -#: html/Search/Elements/TicketRow:36 html/Work/Search/TicketRow:9 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "没有人" -#: lib/RT/Interface/Web.pm:962 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "字段ä¸å­˜åœ¨ï¼Ÿ" @@ -4023,7 +4754,7 @@ msgstr "未设定æˆä»Ž %2 å†…æ’·å– %1" msgid "Not logged in" msgstr "尚未登入" -#: html/Elements/Header:59 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "尚未登入" @@ -4039,7 +4770,7 @@ msgstr "尚未完工。" msgid "Not yet implemented...." msgstr "尚未完工..." -#: html/Approvals/Elements/Approve:48 html/Work/Tickets/Elements/AddContent:9 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "备注" @@ -4047,23 +4778,31 @@ msgstr "备注" msgid "Notes:" msgstr "备注:" -#: lib/RT/User_Overlay.pm:772 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "无法é€å‡ºé€šçŸ¥" -#: etc/initialdata:93 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "通知管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:89 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "以评论方å¼é€šçŸ¥ç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:120 +#: 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:116 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "以评论方å¼é€šçŸ¥å…¶å®ƒæ”¶ä»¶äºº" @@ -4075,19 +4814,19 @@ msgstr "通知承办人" msgid "Notify Owner as Comment" msgstr "以评论方å¼é€šçŸ¥æ‰¿åŠžäºº" -#: etc/initialdata:361 +#: etc/initialdata:376 msgid "Notify Owner of their rejected ticket" msgstr "通知承办人申请å•已驳回" -#: etc/initialdata:350 +#: etc/initialdata:365 msgid "Notify Owner of their ticket has been approved by all approvers" msgstr "通知承办人申请å•已完æˆå…¨éƒ¨ç­¾æ ¸" -#: etc/initialdata:338 +#: etc/initialdata:353 msgid "Notify Owner of their ticket has been approved by some approver" msgstr "通知承办人申请å•å·²å®ŒæˆæŸé¡¹ç­¾æ ¸" -#: etc/initialdata:319 etc/upgrade/2.1.71:17 html/Edit/Elements/CreateApprovalsQueue:22 +#: etc/initialdata:334 msgid "Notify Owners and AdminCcs of new items pending their approval" msgstr "æ•´ç†å¾…签核事项,通知承办人åŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" @@ -4095,23 +4834,23 @@ msgstr "æ•´ç†å¾…签核事项,通知承办人åŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" msgid "Notify Requestors" msgstr "通知申请人" -#: etc/initialdata:103 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "通知申请人åŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:98 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "以评论方å¼é€šçŸ¥ç”³è¯·äººåŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:112 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "通知申请人ã€å‰¯æœ¬åŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:108 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "以评论方å¼é€šçŸ¥ç”³è¯·äººã€å‰¯æœ¬åŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Work/Tickets/Cc:55 +#: NOT FOUND IN SOURCE msgid "Notify people:" msgstr "通知对象" @@ -4127,22 +4866,30 @@ msgstr "11" msgid "November" msgstr "å一月" -#: html/Edit/Global/Basic/Top:83 +#: NOT FOUND IN SOURCE msgid "OIN104" msgstr "104eHRMS 接å£" -#: html/Edit/Global/Workflow/Export.html:30 html/Work/Copyright.html:23 +#: NOT FOUND IN SOURCE msgid "OK" msgstr "确定" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "无法新增对象" -#: lib/RT/Record.pm:181 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "对象新增完毕" +#: NOT FOUND IN SOURCE +msgid "Object of type %1 cannot take custom fields" +msgstr "自订字段ä¸é€‚用于类别为 %1 的对象" + +#: NOT FOUND IN SOURCE +msgid "Object type mismatch" +msgstr "对象类别ä¸ç¬¦" + #: NOT FOUND IN SOURCE msgid "Occupation Status" msgstr "在èŒçжæ€" @@ -4163,43 +4910,59 @@ msgstr "åæœˆ" msgid "Office Phone" msgstr "办公室电è¯" +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "离线" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "离线编辑" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "离线上载" + #: html/Elements/SelectDateRelation:34 msgid "On" msgstr "等于" -#: html/Edit/Global/CustomField/Top:71 +#: NOT FOUND IN SOURCE msgid "On Change" msgstr "æ›´æ”¹ç”³è¯·å•æ—¶" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "评论时" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "回å¤ç”³è¯·å•æ—¶" -#: etc/initialdata:137 html/Edit/Global/CustomField/Top:69 +#: etc/initialdata:145 msgid "On Create" msgstr "æ–°å¢žç”³è¯·å•æ—¶" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "æ‰¿åŠžäººæ”¹å˜æ—¶" -#: etc/initialdata:177 +#: 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:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "è§£å†³ç”³è¯·å•æ—¶" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "çŽ°å†µæ”¹å˜æ—¶" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "å‘生更动时" @@ -4213,27 +4976,31 @@ msgstr "仅显示 %1 ä¹‹åŽæ–°å¢žçš„申请å•" msgid "Only show approvals for requests created before %1" msgstr "仅显示 %1 之剿–°å¢žçš„申请å•" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:17 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:68 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:51 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "å¼€å¯" -#: html/Ticket/Elements/Tabs:141 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "å¼€å¯" +#: NOT FOUND IN SOURCE +msgid "Open requests" +msgstr "" + #: html/SelfService/Elements/Tabs:41 msgid "Open tickets" msgstr "å¼€å¯çš„申请å•" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "在新窗å£å¼€å¯(列表的)申请å•" -#: html/Admin/Users/Prefs.html:39 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "在å¦ä¸€ä¸ªçª—å£å¼€å¯(列表的)申请å•" -#: etc/initialdata:132 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "æ”¶åˆ°å›žå¤æ—¶å³å¼€å¯ç”³è¯·å•" @@ -4245,19 +5012,23 @@ msgstr "已申请è¿è¡Œä¸­è¡¨å•" msgid "Opinion" msgstr "æ„è§" -#: html/Edit/Global/CustomField/Info:35 +#: NOT FOUND IN SOURCE msgid "Option Description" msgstr "选项æè¿°" -#: html/Edit/Global/CustomField/Info:29 +#: NOT FOUND IN SOURCE msgid "Option Name" msgstr "选项åç§°" -#: html/Search/Elements/PickRestriction:101 html/Work/Search/PickRestriction:87 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "æŽ’åºæ–¹å¼" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "顺åºä¸ŽæŽ’åºæ–¹å¼" -#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Elements/SelectUsers:7 html/Edit/Global/Basic/Top:55 html/Elements/SelectUsers:28 html/User/Prefs.html:110 html/Work/Preferences/Info:80 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "组织åç§°" @@ -4270,11 +5041,23 @@ msgstr "组织:" msgid "Originating ticket: #%1" msgstr "原申请å•:#%1" -#: html/Edit/Elements/PickUsers:119 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 +#: NOT FOUND IN SOURCE msgid "Other comma-delimited email addresses" msgstr "其它e-mailå¸å· (ä»…e-mail通知;多笔å¸å·è¯·ç”¨é€—å·','区隔)" -#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 html/Edit/Queues/Basic/Top:44 +#: NOT FOUND IN SOURCE +msgid "Out of range" +msgstr "期é™å¤–" + +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "已纪录å‘é€çš„评论邮件" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "已纪录å‘é€çš„邮件" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "优先顺ä½éšæ—¶é—´å¢žåŠ è°ƒæ•´ä¸º" @@ -4282,28 +5065,27 @@ msgstr "优先顺ä½éšæ—¶é—´å¢žåŠ è°ƒæ•´ä¸º" msgid "Override current custom fields with fields from %1" msgstr "以 %1 表å•的自订字段å–代现有字段" -#: html/Admin/Elements/CheckOverrideGlobalACL:25 +#: NOT FOUND IN SOURCE msgid "Override global rights" msgstr "å–代全域æƒé™" -#: html/Admin/Elements/CheckOverrideGlobalACL:36 -#. (loc_fuzzy($msg)) +#: NOT FOUND IN SOURCE msgid "OverrideGlobalACL status %1" msgstr "å–代全域æƒé™ %1" -#: html/Work/Elements/Tab:32 +#: NOT FOUND IN SOURCE msgid "Overview" msgstr "总览" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "承办申请å•" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "承办申请å•" -#: etc/initialdata:38 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:51 html/Edit/Queues/Basic/Top:59 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:23 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/EditPeople:28 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1305 +#: 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 "承办人" @@ -4311,40 +5093,49 @@ msgstr "承办人" msgid "Owner changed from %1 to %2" msgstr "承办人已从 %1 改为 %2" -#: lib/RT/Transaction_Overlay.pm:539 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "无法设定承办人。" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "强制将承办人从 %1 改为 %2" -#: html/Search/Elements/PickRestriction:30 html/Work/Search/PickRestriction:10 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "承办人" -#: html/Work/Elements/List:31 html/Work/Queues/List:9 html/Work/Tickets/Create.html:55 html/Work/Tickets/Elements/ShowBasics:60 +#: NOT FOUND IN SOURCE msgid "Owner's Phone" msgstr "承办人电è¯" -#: html/Edit/Elements/Page:38 +#: NOT FOUND IN SOURCE msgid "Page #" msgstr " " -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:75 html/Work/Preferences/Info:43 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "第 %1/%2 页" + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "呼å«å™¨" -#: html/Admin/Elements/ModifyUser:73 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "呼å«å™¨å·ç " -#: html/Edit/Global/Workflow/Action:76 html/Edit/Global/Workflow/Condition:66 +#: NOT FOUND IN SOURCE msgid "Parameter" msgstr "呼å«å‚æ•°" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:225 +#: NOT FOUND IN SOURCE msgid "Parent" msgstr "上级" -#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:109 html/Ticket/Elements/EditLinks:54 html/Ticket/Elements/ShowLinks:46 html/Work/Search/BulkLinks:14 html/Work/Tickets/Elements/EditLinks:113 html/Work/Tickets/Elements/EditLinks:45 html/Work/Tickets/Elements/ShowLinks:26 +#: 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 "æ¯ç”³è¯·å•" @@ -4352,7 +5143,7 @@ msgstr "æ¯ç”³è¯·å•" msgid "Park Space" msgstr "åœè½¦ä½ç”³è¯·" -#: html/Elements/Login:55 html/User/Prefs.html:83 html/Work/Preferences/Info:49 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "å£ä»¤" @@ -4360,20 +5151,20 @@ msgstr "å£ä»¤" msgid "Password Reminder" msgstr "å£ä»¤æç¤º" -#: lib/RT/User_Overlay.pm:230 lib/RT/User_Overlay.pm:990 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "å£ä»¤å¤ªçŸ­" -#: html/Admin/Users/Modify.html:292 html/User/Prefs.html:212 html/Work/Preferences/Info:177 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "å£ä»¤ï¼š%1" -#: html/Admin/Users/Modify.html:294 +#: html/Admin/Users/Modify.html:318 msgid "Passwords do not match." msgstr "å£ä»¤ç¡®è®¤å¤±è´¥ã€‚" -#: html/User/Prefs.html:214 html/Work/Preferences/Info:179 +#: html/User/Prefs.html:211 msgid "Passwords do not match. Your password has not been changed" msgstr "å£ä»¤ç¡®è®¤å¤±è´¥ã€‚您的å£ä»¤å¹¶æœªæ”¹å˜ã€‚" @@ -4385,7 +5176,7 @@ msgstr "请选择表å•åç§°" msgid "Pending Approval" msgstr "等待签核" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:101 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "人员" @@ -4393,15 +5184,19 @@ msgstr "人员" msgid "People with Queue Rights" msgstr "æ‹¥æœ‰è¡¨å•æƒé™äººå‘˜" -#: etc/initialdata:125 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "执行使用者自订的动作" -#: lib/RT/ACE_Overlay.pm:230 lib/RT/ACE_Overlay.pm:236 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:208 lib/RT/CustomField_Overlay.pm:240 lib/RT/CustomField_Overlay.pm:518 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1090 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1103 lib/RT/Group_Overlay.pm:1154 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1164 lib/RT/Group_Overlay.pm:424 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:895 lib/RT/Group_Overlay.pm:899 lib/RT/Group_Overlay.pm:912 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:934 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:201 lib/RT/Scrip_Overlay.pm:441 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1392 lib/RT/Ticket_Overlay.pm:1402 lib/RT/Ticket_Overlay.pm:1416 lib/RT/Ticket_Overlay.pm:1550 lib/RT/Ticket_Overlay.pm:1559 lib/RT/Ticket_Overlay.pm:1572 lib/RT/Ticket_Overlay.pm:1923 lib/RT/Ticket_Overlay.pm:2061 lib/RT/Ticket_Overlay.pm:2225 lib/RT/Ticket_Overlay.pm:2294 lib/RT/Ticket_Overlay.pm:2655 lib/RT/Ticket_Overlay.pm:2736 lib/RT/Ticket_Overlay.pm:2840 lib/RT/Ticket_Overlay.pm:2855 lib/RT/Ticket_Overlay.pm:3054 lib/RT/Ticket_Overlay.pm:3064 lib/RT/Ticket_Overlay.pm:3069 lib/RT/Ticket_Overlay.pm:3292 lib/RT/Ticket_Overlay.pm:3296 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3661 lib/RT/Ticket_Overlay.pm:3713 lib/RT/Ticket_Overlay.pm:3925 lib/RT/Transaction_Overlay.pm:415 lib/RT/Transaction_Overlay.pm:422 lib/RT/Transaction_Overlay.pm:451 lib/RT/Transaction_Overlay.pm:458 lib/RT/User_Overlay.pm:1094 lib/RT/User_Overlay.pm:1542 lib/RT/User_Overlay.pm:692 lib/RT/User_Overlay.pm:727 lib/RT/User_Overlay.pm:983 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "Perl 设定" + +#: 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 "æƒé™ä¸è¶³" -#: html/Edit/Rights/index.html:3 +#: NOT FOUND IN SOURCE msgid "Permission Settings" msgstr "æƒé™è®¾å®š" @@ -4417,7 +5212,7 @@ msgstr "代ç†äººç¾¤ç»„" msgid "Personal Groups" msgstr "代ç†äººç¾¤ç»„" -#: html/Edit/Users/Info:55 html/Work/Preferences/Info:27 +#: NOT FOUND IN SOURCE msgid "Personal Homepage" msgstr "个人首页" @@ -4457,15 +5252,15 @@ msgstr "第四阶段:使用者åœç”¨åŠå¯ç”¨ (%1)" msgid "Phone" msgstr "电è¯" -#: html/Work/Delegates/Info:90 html/Work/Overview/Info:72 +#: NOT FOUND IN SOURCE msgid "Phone number" msgstr "电è¯å·ç " -#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:60 html/Work/Preferences/Info:35 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "电è¯å·ç " -#: html/Edit/Queues/Basic/Add.html:3 html/Edit/Queues/Basic/Top:55 html/Edit/Users/Add.html:3 html/Work/Approvals/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 +#: NOT FOUND IN SOURCE msgid "Pick" msgstr "挑选" @@ -4477,11 +5272,11 @@ msgstr "出å‘地点" msgid "Placeholder" msgstr "尚未完工" -#: html/Edit/Elements/PickUsers:33 html/Edit/Elements/PickUsers:51 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:199 html/Work/Tickets/Elements/EditCustomFieldEntry:42 html/Work/Tickets/Elements/EditCustomFieldEntry:57 +#: NOT FOUND IN SOURCE msgid "Please Select" msgstr "请选择" -#: html/Edit/Elements/104Buttons:30 +#: NOT FOUND IN SOURCE msgid "Please check items to be deleted first." msgstr "请先选中è¦åˆ é™¤çš„对象" @@ -4513,11 +5308,11 @@ msgstr "èŒåŠ¡" msgid "Position Level" msgstr "èŒç­‰" -#: html/Edit/Elements/PickUsers:48 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Queues/Basic/Add.html:26 html/Edit/Users/Add.html:41 html/Work/Approvals/Add.html:27 html/Work/Delegates/Add.html:27 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 +#: NOT FOUND IN SOURCE msgid "Position Name" msgstr "èŒåŠ¡åç§°" -#: html/Edit/Global/UserRight/List:14 html/Edit/Global/UserRight/Top:33 +#: NOT FOUND IN SOURCE msgid "Position Number" msgstr "èŒåС代ç " @@ -4529,7 +5324,7 @@ msgstr "èŒçº§" msgid "Pref" msgstr "å好" -#: html/Edit/Elements/104Top:26 html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 html/Work/Elements/Tab:44 +#: 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 "å好" @@ -4537,15 +5332,19 @@ msgstr "å好" msgid "Prefs" msgstr "个人信æ¯" -#: lib/RT/Action/Generic.pm:159 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "预备动作完毕" -#: html/Ticket/Elements/Tabs:66 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "上一项" -#: html/Search/Listing.html:43 html/Work/Search/index.html:20 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "上一页" + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "å‰ä¸€é¡µ" @@ -4553,24 +5352,28 @@ msgstr "å‰ä¸€é¡µ" msgid "Pri" msgstr "优先顺ä½" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:552 +#: 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 "找ä¸åˆ°å•ä½ %1。" -#: html/Search/Elements/PickRestriction:54 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 html/Work/Tickets/Elements/EditBasics:41 lib/RT/Tickets_Overlay.pm:1103 +#: 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 "优先顺ä½" -#: html/Admin/Elements/ModifyQueue:50 html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "优先顺ä½èµ·å§‹å€¼" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "éšç§è®¾å®šï¼š" + #: etc/initialdata:25 msgid "Privileged" msgstr "内部æˆå‘˜" -#: html/Admin/Users/Modify.html:272 html/User/Prefs.html:203 html/Work/Preferences/Info:168 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "内部æˆå‘˜çжæ€ï¼š%1" @@ -4579,31 +5382,35 @@ msgstr "内部æˆå‘˜çжæ€ï¼š%1" msgid "Privileged users" msgstr "内部æˆå‘˜" -#: html/Work/Elements/SelectSearch:21 +#: NOT FOUND IN SOURCE msgid "Process Status" msgstr "处ç†çжæ€" -#: html/Work/Elements/MyRequests:18 html/Work/Elements/MyTickets:18 +#: NOT FOUND IN SOURCE msgid "Project" msgstr "项目" -#: html/Edit/Queues/List:10 +#: 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 "内部用的虚拟群组" -#: html/Edit/Queues/List:11 +#: NOT FOUND IN SOURCE msgid "Public Description" msgstr "公开说明" -#: html/Edit/Users/Info:76 html/Work/Preferences/Info:73 +#: NOT FOUND IN SOURCE msgid "Public Info" msgstr "公开信æ¯" -#: html/Work/Elements/104Header:88 +#: NOT FOUND IN SOURCE msgid "Public Service" msgstr "公共事务区" @@ -4611,15 +5418,19 @@ msgstr "公共事务区" msgid "Purging stale data: %1" msgstr "移除过期数æ®: %1" -#: html/Edit/Users/Search.html:4 +#: html/Search/Build.html:47 msgid "Query" msgstr "查询" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:20 html/Work/Elements/MyTickets:20 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 html/Work/Tickets/Elements/EditBasics:16 lib/RT/Tickets_Overlay.pm:944 +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "建立查询" + +#: 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 "表å•" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 html/Admin/Queues/Workflows.html:44 +#: 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" @@ -4633,19 +5444,19 @@ msgstr "找ä¸åˆ°è¡¨å• '%1'\\n" msgid "Queue Keyword Selections" msgstr "表å•关键è¯é€‰å–" -#: html/Admin/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 html/Edit/Queues/Basic/Top:13 html/Edit/Queues/Basic/index.html:36 html/Edit/Queues/Global:21 html/Edit/Queues/List:20 html/Edit/Users/Queue:10 html/Work/Delegates/List:6 html/Work/Elements/List:11 html/Work/Queues/List:5 html/Work/Tickets/Create.html:21 html/Work/Tickets/Elements/ShowBasics:6 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "表å•åç§°" -#: html/Edit/Queues/List:22 html/Work/Elements/List:29 html/Work/Queues/List:8 html/Work/Tickets/Create.html:34 html/Work/Tickets/Elements/ShowBasics:19 +#: NOT FOUND IN SOURCE msgid "Queue Owner" msgstr "业务承办人" -#: html/Edit/Queues/Basic/Top:38 +#: NOT FOUND IN SOURCE msgid "Queue Priority" msgstr "优先等级" -#: html/Edit/Global/GroupRight/Top:24 html/Edit/Global/UserRight/Top:43 html/Edit/Users/Queue:11 html/Edit/Users/index.html:97 +#: NOT FOUND IN SOURCE msgid "Queue Rights" msgstr "è¡¨å•æƒé™" @@ -4653,27 +5464,27 @@ msgstr "è¡¨å•æƒé™" msgid "Queue Scrips" msgstr "è¡¨å•æ‰‹ç»­" -#: html/Edit/Elements/Tab:38 +#: NOT FOUND IN SOURCE msgid "Queue Setup" msgstr "表å•设定" -#: lib/RT/Queue_Overlay.pm:264 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "表å•已存在" -#: lib/RT/Queue_Overlay.pm:273 lib/RT/Queue_Overlay.pm:279 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "无法新增表å•" -#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:208 html/Work/Tickets/Create.html:186 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "无法加载表å•" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "è¡¨å•æ–°å¢žå®Œæ¯•" -#: html/Admin/Elements/ModifyWorkflow:32 +#: NOT FOUND IN SOURCE msgid "Queue is not specified." msgstr "未指定表å•。" @@ -4685,7 +5496,7 @@ msgstr "找ä¸åˆ°è¡¨å•" msgid "Queues" msgstr "表å•" -#: html/Work/Elements/Quicksearch:10 +#: NOT FOUND IN SOURCE msgid "Quick Search" msgstr "表å•现况" @@ -4693,6 +5504,14 @@ msgstr "表å•现况" msgid "Quick search" msgstr "表å•一览" +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "快速建立申请å•" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "RSS" + #: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" @@ -4703,8 +5522,7 @@ msgstr "RT %1" msgid "RT %1 for %2" msgstr "%2:RT %1 版" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: 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>出å“。" @@ -4748,17 +5566,25 @@ msgstr "RT 收到从自己寄出的邮件 (%1)。" msgid "RT Recieved mail (%1) from itself." msgstr "RT 收到从自己寄出的邮件 (%1)。" +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT 自助æœåŠ¡/已解决的申请å•" -#: html/index.html:24 html/index.html:27 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "RT çš„å˜æ•°" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "RT 一览" #: NOT FOUND IN SOURCE msgid "RT couldn't authenticate you" -msgstr "RT 无法认è¯ä½ " +msgstr "RT æ— æ³•è®¤è¯æ‚¨çš„身份" #: NOT FOUND IN SOURCE msgid "RT couldn't find requestor via its external database lookup" @@ -4772,7 +5598,7 @@ msgstr "RT 找ä¸åˆ°è¡¨å•:%1" msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT 无法确认这个 PGP 签章。\\n" -#: html/Edit/Elements/104Header:7 html/Edit/Elements/104Top:20 html/Elements/PageLayout:85 html/Work/Elements/104Header:7 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "%1 专用æµç¨‹ç³»ç»Ÿ" @@ -4785,11 +5611,18 @@ msgstr "%1 专用 RT 系统:%2" msgid "RT has proccessed your commands" msgstr "RT 已执行您的命令" -#: html/Elements/Login:100 -#. ('2003') +#: 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 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 "" + +#: 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 "" + #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "RT 认为这å¯èƒ½æ˜¯é€€ä¿¡" @@ -4814,51 +5647,55 @@ msgstr "系统è¿è¡Œè§’色" msgid "RT::Ticket-Role" msgstr "申请å•è¿è¡Œè§’色" -#: html/Work/Tickets/Elements/ShowTransaction:14 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "RT_System" msgstr "系统讯æ¯" -#: html/Edit/Global/CustomField/SelectWritable:6 +#: NOT FOUND IN SOURCE msgid "Read Only" msgstr "åªè¯»" -#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/Edit/Elements/SelectUsers:5 html/Edit/Users/List:6 html/User/Prefs.html:47 html/Work/Preferences/Info:18 +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "真实姓å" -#: html/Admin/Elements/ModifyUser:47 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "真实姓å" -#: html/Work/Approvals/Elements/Actions:11 +#: NOT FOUND IN SOURCE msgid "Really reject this ticket?" msgstr "您确定è¦é©³å›žè¿™å¼ ç”³è¯·å•å—?" -#: lib/RT/Transaction_Overlay.pm:592 +#: lib/RT/Transaction_Overlay.pm:628 #. ($value) msgid "Reference by %1 added" msgstr "已加入 %1 为å‚考本申请å•" -#: lib/RT/Transaction_Overlay.pm:632 +#: lib/RT/Transaction_Overlay.pm:668 #. ($value) msgid "Reference by %1 deleted" msgstr "已移除 %1 为å‚考本申请å•" -#: lib/RT/Transaction_Overlay.pm:589 +#: lib/RT/Transaction_Overlay.pm:625 #. ($value) msgid "Reference to %1 added" msgstr "已加入å‚è€ƒç”³è¯·å• %1" -#: lib/RT/Transaction_Overlay.pm:629 +#: lib/RT/Transaction_Overlay.pm:665 #. ($value) msgid "Reference to %1 deleted" msgstr "已移除å‚è€ƒç”³è¯·å• %1" -#: html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:121 html/Ticket/Elements/EditLinks:81 html/Ticket/Elements/ShowLinks:70 html/Work/Search/BulkLinks:26 html/Work/Tickets/Elements/EditLinks:125 html/Work/Tickets/Elements/EditLinks:81 html/Work/Tickets/Elements/ShowLinks:38 +#: 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 "被å‚考" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:117 html/Ticket/Elements/EditLinks:72 html/Ticket/Elements/ShowLinks:60 html/Work/Search/BulkLinks:22 html/Work/Tickets/Elements/EditLinks:121 html/Work/Tickets/Elements/EditLinks:67 html/Work/Tickets/Elements/ShowLinks:33 +#: 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 "å‚考" @@ -4870,11 +5707,11 @@ msgstr "å‚考" msgid "Refine" msgstr "在结果范围内查询" -#: html/Search/Elements/PickRestriction:26 html/Work/Search/PickRestriction:7 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "调整查询æ¡ä»¶" -#: html/Work/Overview/index.html:12 +#: NOT FOUND IN SOURCE msgid "Refresh" msgstr "æ›´æ–°" @@ -4883,35 +5720,43 @@ msgstr "æ›´æ–°" msgid "Refresh this page every %1 minutes." msgstr "æ¯ %1 分钟更新页é¢" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 +#: NOT FOUND IN SOURCE msgid "Relationships" -msgstr "关系" +msgstr "" -#: html/Edit/Elements/ListButtons:13 +#: NOT FOUND IN SOURCE msgid "Remove" msgstr "移除" -#: html/Search/Bulk.html:97 html/Work/Search/Bulk.html:77 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "移除管ç†å‘˜å‰¯æœ¬" -#: html/Search/Bulk.html:93 html/Work/Search/Bulk.html:71 +#: html/Search/Bulk.html:91 msgid "Remove Cc" msgstr "移除副本" -#: html/Search/Bulk.html:89 html/Work/Search/Bulk.html:65 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "移除申请人" -#: html/Ticket/Elements/ShowTransaction:183 html/Ticket/Elements/Tabs:127 html/Work/Tickets/Display.html:54 html/Work/Tickets/Elements/ShowTransaction:116 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "回å¤" -#: lib/RT/Queue_Overlay.pm:84 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "回å¤åœ°å€" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "回å¤ç”³è¯·äºº" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "对申请å•进行回å¤" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "回å¤ç”³è¯·å•" @@ -4923,23 +5768,23 @@ msgstr "上下ç­åˆ·å¡" msgid "Reported on" msgstr "åˆ°èŒæ—¥æœŸ" -#: etc/initialdata:44 html/Ticket/Update.html:39 html/Work/Elements/List:25 html/Work/Elements/MyApprovals:12 html/Work/Elements/MyTickets:24 html/Work/Elements/SelectSearch:36 html/Work/Tickets/Elements/ShowBasics:62 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "申请人" -#: html/Work/Search/PickRestriction:17 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "申请人电å­é‚®ä»¶ä¿¡ç®±åœ°å€" -#: html/Edit/Global/Workflow/Owner.html:28 +#: NOT FOUND IN SOURCE msgid "Requestor's" msgstr "申请人所属之第上" -#: html/Edit/Global/Workflow/Owner.html:44 +#: NOT FOUND IN SOURCE msgid "Requestor's Dept." msgstr "申请人所属部门之" -#: html/Work/Elements/List:27 +#: NOT FOUND IN SOURCE msgid "Requestor's Phone" msgstr "申请人电è¯" @@ -4951,19 +5796,24 @@ msgstr "申请人" msgid "RequestorAddresses" msgstr "申请人地å€" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 html/Work/Tickets/Elements/EditPeople:38 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "申请人" -#: html/Admin/Elements/ModifyQueue:60 html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "申请å•å¤„ç†æœŸé™" +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "未指定必è¦çš„傿•°ã€Œ%1ã€" + #: html/Elements/Submit:61 msgid "Reset" msgstr "é‡è®¾" -#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:63 html/Work/Preferences/Info:37 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "ä½å¤„" @@ -4971,20 +5821,20 @@ msgstr "ä½å¤„" msgid "Resolution" msgstr "解决状æ€" -#: html/Ticket/Elements/Tabs:137 html/Work/Tickets/Display.html:57 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "解决" -#: html/Ticket/Update.html:137 +#: html/Ticket/Update.html:119 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "è§£å†³ç”³è¯·å• #%1 (%2)" -#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1220 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "已解决" -#: html/Search/Bulk.html:132 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:71 html/Work/Search/Bulk.html:84 html/Work/Tickets/Update.html:38 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "回å¤ç”³è¯·äºº" @@ -4992,27 +5842,31 @@ msgstr "回å¤ç”³è¯·äºº" msgid "Responsibility Type" msgstr "责任区分" -#: html/Elements/ListActions:25 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "结果" -#: html/Search/Elements/PickRestriction:105 html/Work/Search/PickRestriction:90 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "æ¯é¡µåˆ—出几笔结果" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 html/Work/Preferences/Info:59 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "冿¬¡è¾“å…¥å£ä»¤" +#: html/Search/Elements/EditSearches:13 +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:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "æƒé™ä»£ç†å®Œæ¯•" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "æƒé™è®¾å®šå®Œæ¯•" @@ -5020,7 +5874,7 @@ msgstr "æƒé™è®¾å®šå®Œæ¯•" msgid "Right Loaded" msgstr "æƒé™åŠ è½½å®Œæ¯•" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "无法撤消æƒé™" @@ -5028,37 +5882,37 @@ msgstr "无法撤消æƒé™" msgid "Right not found" msgstr "找ä¸åˆ°æƒé™" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "æƒé™å¹¶æœªåŠ è½½ã€‚" -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "æƒé™æ’¤æ¶ˆå®Œæ¯•" -#: html/Admin/Elements/UserTabs:40 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "æƒé™åŠä»£ç†äºº" -#: lib/RT/Interface/Web.pm:859 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "无法将æƒé™èµ‹äºˆ %1" -#: lib/RT/Interface/Web.pm:889 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "无法撤消 %1 çš„æƒé™" -#: html/Edit/Groups/Member:54 html/Edit/Groups/Members/List:10 +#: NOT FOUND IN SOURCE msgid "Role Members" msgstr "角色æˆå‘˜" -#: html/Edit/Groups/Member:37 html/Edit/Groups/Members/Add.html:13 html/Edit/Groups/Members/List:7 html/Edit/Groups/Roles/List:4 html/Edit/Groups/Roles/Top:7 +#: NOT FOUND IN SOURCE msgid "Role Name" msgstr "角色åç§°" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 html/Edit/Global/Workflow/Owner.html:55 html/Edit/Global/Workflow/Owner.html:89 html/Edit/Groups/Member:24 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "角色" @@ -5066,19 +5920,23 @@ msgstr "角色" msgid "RootApproval" msgstr "交由系统管ç†å‘˜ç­¾æ ¸" -#: html/Edit/Global/Workflow/Action:23 +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "æ¯é¡µç¬”æ•°" + +#: NOT FOUND IN SOURCE msgid "Run Approval" msgstr "签核执行" -#: html/Edit/Global/Basic/Top:81 +#: NOT FOUND IN SOURCE msgid "SMTPDebug" msgstr "SMTP 侦错纪录" -#: html/Edit/Global/Basic/Top:63 +#: NOT FOUND IN SOURCE msgid "SMTPFrom" msgstr "SMTP 寄件地å€" -#: html/Edit/Global/Basic/Top:61 +#: NOT FOUND IN SOURCE msgid "SMTPServer" msgstr "SMTP æœåС噍" @@ -5090,29 +5948,37 @@ msgstr "星期六" msgid "Sat." msgstr "星期六" -#: html/Edit/Elements/104Buttons:83 html/Work/Preferences/index.html:33 html/Work/Tickets/Elements/EditBasics:63 html/Work/Tickets/Elements/EditLinks:133 html/Work/Tickets/Elements/EditPeople:51 +#: html/Search/Elements/EditSearches:21 msgid "Save" msgstr "储存" -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyLinks.html:38 html/Ticket/ModifyPeople.html:37 +#: 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 "储存更改" -#: NOT FOUND IN SOURCE +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "储存更改" +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "已储存的查询" + #: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 -#. ($QueueObj->id) +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "手续 #%1" -#: html/Edit/Global/Scrip/List:9 html/Edit/Global/Scrip/Top:41 +#: NOT FOUND IN SOURCE msgid "Scrip Action" msgstr "讯æ¯é€šçŸ¥åŠ¨ä½œ" -#: html/Edit/Global/Scrip/List:8 html/Edit/Global/Scrip/Top:15 +#: NOT FOUND IN SOURCE msgid "Scrip Condition" msgstr "讯æ¯é€šçŸ¥æ¡ä»¶" @@ -5120,7 +5986,11 @@ msgstr "讯æ¯é€šçŸ¥æ¡ä»¶" msgid "Scrip Created" msgstr "手续新增完毕" -#: html/Edit/Global/Scrip/List:7 html/Edit/Global/Scrip/Top:9 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Scrip Name" msgstr "讯æ¯åç§°" @@ -5132,7 +6002,7 @@ msgstr "手续删除完毕" msgid "Scrips" msgstr "手续" -#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:26 +#: NOT FOUND IN SOURCE msgid "Scrips " msgstr "讯æ¯é€šçŸ¥" @@ -5144,7 +6014,7 @@ msgstr "%1 的手续\\n" msgid "Scrips which apply to all queues" msgstr "适用于所有表å•的手续" -#: html/Edit/Elements/104Buttons:86 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:164 html/Work/Elements/Tab:46 html/Work/Search/PickRestriction:108 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "查询" @@ -5156,7 +6026,15 @@ msgstr "查询æ¡ä»¶" msgid "Search for approvals" msgstr "ç­¾æ ¸å•æŸ¥è¯¢" -#: html/Edit/Global/Workflow/Owner.html:31 +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "ä¸èƒ½å¯¹æ­¤ç±»å¯¹è±¡è¿›è¡ŒæŸ¥è¯¢" + +#: NOT FOUND IN SOURCE msgid "Second-" msgstr "二" @@ -5164,19 +6042,55 @@ msgstr "二" msgid "Second-level Users" msgstr "二阶主管员工" -#: bin/rt-crontool:187 +#: bin/rt-crontool:184 msgid "Security:" msgstr "安全性:" -#: lib/RT/Queue_Overlay.pm:66 +#: NOT FOUND IN SOURCE +msgid "See custom fields" +msgstr "查阅自订字段" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "查阅é€å‡ºçš„电å­é‚®ä»¶åŠæ”¶ä»¶äºº" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "查阅申请å•内的ç§äººè¯„论" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "æŸ¥é˜…ç”³è¯·å•æ€»è§ˆ" + +#: NOT FOUND IN SOURCE +msgid "SeeCustomField" +msgstr "查阅自订字段" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "查阅表å•" -#: html/Edit/Elements/ListButtons:10 +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "选择" + +#: NOT FOUND IN SOURCE msgid "Select All" msgstr "全选" -#: html/Admin/Groups/index.html:39 +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Field" +msgstr "选择自订字段" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "选择群组" @@ -5184,7 +6098,7 @@ msgstr "选择群组" msgid "Select a queue" msgstr "选择表å•" -#: html/Work/Queues/Select.html:8 +#: NOT FOUND IN SOURCE msgid "Select a queue to link to" msgstr "请选择欲连结表å•" @@ -5192,6 +6106,10 @@ msgstr "请选择欲连结表å•" msgid "Select a user" msgstr "选择使用者" +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + #: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "选择自订字段" @@ -5200,11 +6118,11 @@ msgstr "选择自订字段" msgid "Select group" msgstr "选择群组" -#: lib/RT/CustomField_Overlay.pm:428 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "选择多é‡é¡¹ç›®" -#: lib/RT/CustomField_Overlay.pm:425 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "选择å•一项目" @@ -5220,11 +6138,15 @@ msgstr "选择手续" msgid "Select template" msgstr "选择模æ¿" -#: html/Admin/Elements/UserTabs:48 +#: NOT FOUND IN SOURCE +msgid "Select up to %1 values" +msgstr "选择最多 %1 个值" + +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "选择使用者" -#: html/Admin/Global/Workflow.html:57 html/Admin/Global/Workflows.html:36 html/Admin/Queues/Workflow.html:54 html/Admin/Queues/Workflows.html:47 +#: NOT FOUND IN SOURCE msgid "Select workflow" msgstr "选择æµç¨‹" @@ -5240,7 +6162,15 @@ msgstr "多é‡é€‰é¡¹" msgid "SelectSingle" msgstr "å•一选项" -#: html/Edit/Elements/PickUsers:95 html/Edit/Users/Add.html:78 +#: NOT FOUND IN SOURCE +msgid "Selected Custom Fields" +msgstr "已选å–的自订字段" + +#: NOT FOUND IN SOURCE +msgid "Selected objects" +msgstr "已选å–的对象" + +#: NOT FOUND IN SOURCE msgid "Selected users:" msgstr "新增对象:" @@ -5248,19 +6178,19 @@ msgstr "新增对象:" msgid "Self Service" msgstr "自助æœåŠ¡" -#: etc/initialdata:113 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "寄信给所有视察员" -#: etc/initialdata:109 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "以评论方å¼å¯„信给所有视察员" -#: etc/initialdata:104 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "寄信给申请人åŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:99 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "以评论方å¼å¯„信给申请人åŠå‰¯æœ¬æ”¶ä»¶äºº" @@ -5268,15 +6198,23 @@ msgstr "以评论方å¼å¯„信给申请人åŠå‰¯æœ¬æ”¶ä»¶äºº" msgid "Sends a message to the requestors" msgstr "寄信给申请人" -#: etc/initialdata:117 etc/initialdata:121 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "寄信给特定的副本åŠå¯†ä»¶å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:94 +#: 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:90 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "以评论寄信给管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" @@ -5292,6 +6230,10 @@ msgstr "乿œˆ" msgid "Sep." msgstr "09" +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "" + #: NOT FOUND IN SOURCE msgid "September" msgstr "乿œˆ" @@ -5304,10 +6246,26 @@ msgstr "%1 的「åœç”¨ã€å±žæ€§å·²è®¾ä¸º %2" msgid "Shift Type" msgstr "ç­åˆ«å±žæ€§" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "显示" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "显示字段" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "显示结果" +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + #: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "显示已批准的签核å•" @@ -5332,43 +6290,51 @@ msgstr "显示待处ç†çš„签核å•" msgid "Show requests awaiting other approvals" msgstr "显示尚待他人批准的签核å•" -#: lib/RT/Queue_Overlay.pm:80 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "显示申请å•内的ç§äººè¯„论" -#: lib/RT/Queue_Overlay.pm:78 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "æ˜¾ç¤ºç”³è¯·å•æ‘˜è¦" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "显示æƒé™æ¸…å•" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "显示寄é€é‚®ä»¶" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "显示已储存的查询" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "显示手续" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "显示模æ¿" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "显示申请å•" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:81 msgid "ShowTicketComments" msgstr "显示申请å•的评论" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "登记æˆä¸ºç”³è¯·äººæˆ–副本收件人" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "登记æˆä¸ºç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/Edit/Users/Info:96 html/User/Prefs.html:148 html/Work/Preferences/Info:116 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "ç­¾åæ¡£" @@ -5380,7 +6346,7 @@ msgstr "使用者:%1" msgid "Single" msgstr "å•一" -#: html/Edit/Elements/104Top:21 html/Elements/Header:50 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "略过选å•" @@ -5388,11 +6354,15 @@ msgstr "略过选å•" msgid "Sort" msgstr "顺åº" +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Sort key" msgstr "æŽ’åºæ–¹å¼" -#: html/Search/Elements/PickRestriction:109 html/Work/Search/PickRestriction:95 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "ç»“æžœæŽ’åºæ–¹å¼" @@ -5400,19 +6370,23 @@ msgstr "ç»“æžœæŽ’åºæ–¹å¼" msgid "SortOrder" msgstr "排åºé¡ºåº" -#: html/Admin/Elements/EditScrip:80 html/Edit/Global/Scrip/Top:75 html/Work/Elements/List:8 html/Work/Elements/MyApprovals:11 +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 msgid "Stage" msgstr "å…³å¡" -#: html/Edit/Global/Workflow/Top:11 +#: NOT FOUND IN SOURCE msgid "Stage Action" msgstr "å…³å¡è¿è¡ŒåŠ¨ä½œ" -#: html/Edit/Global/Workflow/Top:7 +#: NOT FOUND IN SOURCE msgid "Stage Condition" msgstr "å…³å¡è¿è¡Œæ¡ä»¶" -#: html/Work/Elements/Quicksearch:17 +#: NOT FOUND IN SOURCE msgid "Stalled" msgstr "延宕" @@ -5420,7 +6394,7 @@ msgstr "延宕" msgid "Start page" msgstr "首页" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 html/Work/Tickets/Elements/EditBasics:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "实际起始日" @@ -5428,7 +6402,7 @@ msgstr "实际起始日" msgid "Started date '%1' could not be parsed" msgstr "无法解读起始日期 '%1" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 html/Work/Tickets/Elements/EditBasics:26 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "应起始日" @@ -5440,19 +6414,19 @@ msgstr "应起始日" msgid "Starts date '%1' could not be parsed" msgstr "无法解读起始日期 '%1" -#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:126 html/Work/Preferences/Info:88 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "å·ž" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:74 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:19 html/Work/Elements/MyRequests:22 html/Work/Elements/MyTickets:22 html/Work/Search/PickRestriction:54 html/Work/Tickets/Elements/EditBasics:19 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1214 lib/RT/Tickets_Overlay.pm:969 +#: 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 "现况" -#: etc/initialdata:294 +#: etc/initialdata:309 msgid "Status Change" msgstr "çŽ°å†µæ”¹å˜æ—¶" -#: lib/RT/Transaction_Overlay.pm:477 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "现况从 %1 改为 %2" @@ -5461,48 +6435,60 @@ msgstr "现况从 %1 改为 %2" msgid "StatusChange" msgstr "çŽ°å†µæ”¹å˜æ—¶" -#: html/Ticket/Elements/Tabs:152 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "å¼ºåˆ¶æ›´æ¢æ‰¿åŠžäºº" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:94 msgid "Steal tickets" msgstr "强制承办申请å•" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:94 msgid "StealTicket" msgstr "强制承办申请å•" -#: lib/RT/Transaction_Overlay.pm:545 +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "承办人从 %1 强制更æ¢" -#: html/Edit/Groups/Member:68 +#: NOT FOUND IN SOURCE msgid "Subgroup" msgstr "å­ç¾¤ç»„" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/List:15 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:16 html/Work/Elements/MyTickets:16 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Elements/AddSubject:8 html/Work/Tickets/Elements/EditBasics:8 html/Work/Tickets/Elements/ShowBasics:36 html/Work/Tickets/Elements/ShowSubject:8 lib/RT/Ticket_Overlay.pm:1210 lib/RT/Tickets_Overlay.pm:1048 +#: 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 "主题" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:567 +#: 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 "标题已改为 %1" -#: html/Edit/Users/Info:116 html/Elements/Submit:58 html/Work/Search/Bulk.html:103 +#: html/Elements/Submit:58 msgid "Submit" msgstr "é€å‡º" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "é€å‡ºæµç¨‹" -#: lib/RT/Group_Overlay.pm:748 +#: lib/RT/Group_Overlay.pm:749 msgid "Succeeded" msgstr "设定æˆåŠŸ" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Sun" msgstr "星期日" @@ -5511,15 +6497,15 @@ msgstr "星期日" msgid "Sun." msgstr "星期日" -#: html/Edit/Users/System:17 lib/RT/System.pm:53 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "系统管ç†å‘˜" -#: html/Edit/Global/Basic/Top:29 +#: NOT FOUND IN SOURCE msgid "Sync now" msgstr "æ‰§è¡ŒåŒæ­¥" -#: html/Edit/Global/Basic/Top:87 +#: NOT FOUND IN SOURCE msgid "Sync104HRMS" msgstr "è‡ªåŠ¨åŒæ­¥104HRMS" @@ -5531,11 +6517,15 @@ msgstr "æ­£åœ¨åŒæ­¥åŒ– HRMS 人事系统数æ®ã€‚请ç¨å¾…..." msgid "System" msgstr "系统" -#: html/Edit/Global/Scrip/Top:18 html/Edit/Global/Scrip/Top:44 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "系统设定" + +#: NOT FOUND IN SOURCE msgid "System Defined" msgstr "系统定义" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:858 lib/RT/Interface/Web.pm:888 +#: 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 "系统错误" @@ -5547,15 +6537,19 @@ msgstr "系统错误。设定æƒé™å¤±è´¥ã€‚" msgid "System Error. right not granted" msgstr "系统错误。设定æƒé™å¤±è´¥ã€‚" -#: html/Edit/Users/index.html:95 +#: NOT FOUND IN SOURCE msgid "System Rights" msgstr "系统æƒé™" -#: lib/RT/ACE_Overlay.pm:616 +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "系统工具" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "系统错误。æƒé™ä»£ç†å¤±è´¥ã€‚" -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "系统错误。设定æƒé™å¤±è´¥ã€‚" @@ -5575,7 +6569,7 @@ msgstr "系统内部用" msgid "SystemRolegroup for internal use" msgstr "内部使用的系统角色群组" -#: lib/RT/CurrentUser.pm:361 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "TEST_STRING" @@ -5583,23 +6577,27 @@ msgstr "TEST_STRING" msgid "TabbedUI" msgstr "页签接å£" -#: html/Ticket/Elements/Tabs:148 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "å—ç†" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:92 msgid "Take tickets" msgstr "自行承办申请å•" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:92 msgid "TakeTicket" msgstr "自行承办申请å•" -#: lib/RT/Transaction_Overlay.pm:530 +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "å·²å—ç†" -#: html/Admin/Elements/EditScrip:88 +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "工作事项" + +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "模æ¿" @@ -5608,15 +6606,15 @@ msgstr "模æ¿" msgid "Template #%1" msgstr "æ¨¡æ¿ #%1" -#: html/Edit/Global/Template/List:9 html/Edit/Global/Template/Top:17 +#: NOT FOUND IN SOURCE msgid "Template Content" msgstr "通知模æ¿å†…容" -#: html/Edit/Global/Template/List:8 html/Edit/Global/Template/Top:13 +#: NOT FOUND IN SOURCE msgid "Template Description" msgstr "é€šçŸ¥æ¨¡æ¿æè¿°" -#: html/Edit/Global/Template/List:7 html/Edit/Global/Template/Top:9 +#: NOT FOUND IN SOURCE msgid "Template Name" msgstr "通知模æ¿åç§°" @@ -5632,7 +6630,7 @@ msgstr "找ä¸åˆ°æ¨¡æ¿" msgid "Template not found\\n" msgstr "找ä¸åˆ°æ¨¡æ¿\\n" -#: lib/RT/Template_Overlay.pm:360 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "模æ¿å‰–æžå®Œæ¯•" @@ -5640,7 +6638,7 @@ msgstr "模æ¿å‰–æžå®Œæ¯•" msgid "Templates" msgstr "模æ¿" -#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:25 +#: NOT FOUND IN SOURCE msgid "Templates " msgstr "通知模æ¿" @@ -5648,47 +6646,50 @@ msgstr "通知模æ¿" msgid "Templates for %1\\n" msgstr "找ä¸åˆ° %1 的模æ¿\\n" -#: lib/RT/Interface/Web.pm:956 +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "文字" + +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "å·²ç»æ˜¯ç›®å‰å­—段的值" -#: lib/RT/CustomField_Overlay.pm:249 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "è¿™ä¸æ˜¯è¯¥è‡ªè®¢å­—段的值" -#: lib/RT/Ticket_Overlay.pm:1934 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "åŒæ ·çš„值" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:597 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 msgid "That principal already has that right" msgstr "这项å•ä½å·²ç»æ‹¥æœ‰è¯¥æƒé™" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä¸ªè¡¨å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1466 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "这项å•ä½ä¸æ˜¯è¿™ä¸ªè¡¨å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1583 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "这项å•ä½ä¸æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1930 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "此表å•ä¸å­˜åœ¨" -#: lib/RT/Ticket_Overlay.pm:3301 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "è¿™ä»½ç”³è¯·å•æœ‰å°šæœªè§£å†³çš„附属申请å•" @@ -5696,27 +6697,27 @@ msgstr "è¿™ä»½ç”³è¯·å•æœ‰å°šæœªè§£å†³çš„附属申请å•" msgid "That user already has that right" msgstr "使用者已具有该项æƒé™" -#: lib/RT/Ticket_Overlay.pm:3105 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "è¯¥ä½¿ç”¨è€…å·²ç»æ‰¿åŠžè¿™ä»½ç”³è¯·å•" -#: lib/RT/Ticket_Overlay.pm:3077 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "使用者ä¸å­˜åœ¨" -#: lib/RT/User_Overlay.pm:381 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "è¿™åä½¿ç”¨è€…å·²ç»æ˜¯å†…部æˆå‘˜" -#: lib/RT/User_Overlay.pm:402 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "è¿™å使用者属于éžå†…部æˆå‘˜ç¾¤ç»„" -#: lib/RT/User_Overlay.pm:394 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "使用者加入内部æˆå‘˜ç¾¤ç»„完毕" -#: lib/RT/User_Overlay.pm:415 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" @@ -5724,11 +6725,11 @@ msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" msgid "That user is now unprivilegedileged" msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" -#: lib/RT/Ticket_Overlay.pm:3098 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "使用者å¯èƒ½æ²¡æœ‰æ‰¿åŠžè¡¨å•里的申请å•" -#: lib/RT/Link_Overlay.pm:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "è¿™ä¸æ˜¯ä¸€ä¸ªæ•°å­—ç¼–å·" @@ -5744,19 +6745,19 @@ msgstr "申请å•的副本收件人" msgid "The administrative CC of a ticket" msgstr "申请å•的管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: lib/RT/Ticket_Overlay.pm:2263 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "评论已被纪录" -#: bin/rt-crontool:197 +#: 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 "下列命令会找到 'general' 表å•内所有è¿ä½œä¸­çš„申请å•,并将其中 4 å°æ—¶å†…未处ç†çš„申请å•优先程度设为 99:" -#: bin/rt-commit-handler:755 bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "以下命令未被执行:\\n\\n" -#: lib/RT/Interface/Web.pm:959 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "新的字段值设定完æˆã€‚" @@ -5772,23 +6773,35 @@ msgstr "申请å•的申请人" msgid "These comments aren't generally visible to the user" msgstr "该使用者ä¸ä¼šçœ‹è§è¿™äº›è¯„论" -#: html/Edit/Global/Workflow/Owner.html:32 +#: NOT FOUND IN SOURCE msgid "Third-" msgstr "三" +#: NOT FOUND IN SOURCE +msgid "This custom field does not apply to that object" +msgstr "此自订字段ä¸é€‚用于该对象" + +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "此项功能仅é™ç³»ç»Ÿç®¡ç†å‘˜ä½¿ç”¨" + +#: html/Ticket/Elements/PreviewScrips:48 +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:188 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "此工具程åºä¼šè®©ä½¿ç”¨è€…ç»ç”± RT 执行任æ„命令。" -#: lib/RT/Transaction_Overlay.pm:200 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "此项更动报告没有内容" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "使用者é€å‡ºçš„å‰ %1 份优先处ç†ç”³è¯·å•" @@ -5805,7 +6818,7 @@ msgstr "星期四" msgid "Thu." msgstr "星期四" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:163 html/Edit/Global/Workflow/Condition:24 +#: NOT FOUND IN SOURCE msgid "Ticket" msgstr "申请å•" @@ -5827,22 +6840,32 @@ msgstr "æ›´æ–°ç”³è¯·å• #%1 的全部信æ¯ï¼š%2" msgid "Ticket #%1: %2" msgstr "ç”³è¯·å• #%1: %2" -#: lib/RT/Ticket_Overlay.pm:637 lib/RT/Ticket_Overlay.pm:658 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "ç”³è¯·å• %1" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "ç”³è¯·å• #%1 æˆåŠŸæ–°å¢žäºŽ '%2' 表å•" -#: bin/rt-commit-handler:759 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "åŠ è½½ç”³è¯·å• %1\\n" -#: html/Search/Bulk.html:213 html/Work/Search/Bulk.html:169 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "ç”³è¯·å• %1:%2" -#: html/Edit/Queues/Basic/Top:30 html/Edit/Queues/List:30 html/Work/Queues/List:10 +#: NOT FOUND IN SOURCE +msgid "Ticket Custom Fields" +msgstr "申请å•的自订字段" + +#: NOT FOUND IN SOURCE msgid "Ticket Due" msgstr "表å•å¤„ç†æœŸé™" @@ -5851,11 +6874,11 @@ msgstr "表å•å¤„ç†æœŸé™" msgid "Ticket History # %1 %2" msgstr "申请å•处ç†çºªå½• # %1 %2" -#: html/Work/Elements/List:6 +#: NOT FOUND IN SOURCE msgid "Ticket ID" msgstr "å•å·" -#: html/Work/Elements/SelectSearch:6 +#: NOT FOUND IN SOURCE msgid "Ticket Id" msgstr "申请å•ç¼–å·" @@ -5863,31 +6886,35 @@ msgstr "申请å•ç¼–å·" msgid "Ticket Processing Due" msgstr "表å•è¿è¡ŒæœŸé™" -#: etc/initialdata:309 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "申请å•已解决" -#: html/Edit/Queues/Basic/Top:20 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:21 html/Work/Delegates/List:7 html/Work/Delegates/index.html:12 html/Work/Elements/List:13 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:12 html/Work/Tickets/Elements/ShowBasics:34 +#: NOT FOUND IN SOURCE +msgid "Ticket Transactions" +msgstr "申请å•的更动" + +#: NOT FOUND IN SOURCE msgid "Ticket Type" msgstr "表å•ç§ç±»" -#: html/Search/Elements/PickRestriction:63 html/Work/Search/PickRestriction:43 +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "申请å•附件" -#: lib/RT/Tickets_Overlay.pm:1227 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "申请å•内容" -#: lib/RT/Tickets_Overlay.pm:1273 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "申请å•内容类别" -#: lib/RT/Ticket_Overlay.pm:525 lib/RT/Ticket_Overlay.pm:534 lib/RT/Ticket_Overlay.pm:544 lib/RT/Ticket_Overlay.pm:647 +#: 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 "内部错误,无法新增申请å•" -#: lib/RT/Transaction_Overlay.pm:469 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "ç”³è¯·å•æ–°å¢žå®Œæ¯•" @@ -5895,7 +6922,7 @@ msgstr "ç”³è¯·å•æ–°å¢žå®Œæ¯•" msgid "Ticket creation failed" msgstr "ç”³è¯·å•æ–°å¢žå¤±è´¥" -#: lib/RT/Transaction_Overlay.pm:474 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "申请å•删除完毕" @@ -5907,15 +6934,19 @@ msgstr "找ä¸åˆ°ç”³è¯·å•ç¼–å·" msgid "Ticket killed" msgstr "申请å•删除完毕" +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "申请å•çš„æè¿°ä¿¡æ¯" + #: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "找ä¸åˆ°ç”³è¯·å•" -#: etc/initialdata:295 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "申请å•现况已改å˜" -#: html/Ticket/Update.html:38 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "申请å•视察员" @@ -5923,12 +6954,12 @@ msgstr "申请å•视察员" msgid "Tickets" msgstr "申请å•" -#: lib/RT/Tickets_Overlay.pm:1451 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "ç”³è¯·å• %1 %2" -#: lib/RT/Tickets_Overlay.pm:1409 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "ç”³è¯·å• %1 (%2)" @@ -5941,8 +6972,7 @@ msgstr "待处ç†çš„申请å•" msgid "Tickets I requested" msgstr "é€å‡ºçš„申请å•" -#: html/Elements/ViewUser:25 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "%1 的申请å•" @@ -5950,23 +6980,27 @@ msgstr "%1 的申请å•" msgid "Tickets which depend on this approval:" msgstr "批准之åŽï¼Œå¯æŽ¥ç»­å¤„ç†ï¼š" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 html/Work/Tickets/Elements/EditBasics:32 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "预计时间" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "剩馀时间" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 html/Work/Tickets/Elements/EditBasics:24 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "å¤„ç†æ—¶é—´" -#: lib/RT/Tickets_Overlay.pm:1200 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "剩馀时间" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "显示时间" -#: lib/RT/Tickets_Overlay.pm:1176 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "å·²å¤„ç†æ—¶é—´" @@ -5974,43 +7008,64 @@ msgstr "å·²å¤„ç†æ—¶é—´" msgid "TimeLeft" msgstr "剩馀时间" -#: lib/RT/Ticket_Overlay.pm:1215 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "å·²å¤„ç†æ—¶é—´" -#: bin/rt-commit-handler:401 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "产生这次更动的差异档:" -#: bin/rt-commit-handler:390 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "产生这次更动的差异档:\\n" -#: lib/RT/Ticket_Overlay.pm:1218 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "告知日期" -#: html/Edit/Elements/Page:45 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "工具" + +#: NOT FOUND IN SOURCE msgid "Total" msgstr "页" -#: etc/initialdata:237 +#: etc/initialdata:252 msgid "Transaction" msgstr "更动" -#: lib/RT/Transaction_Overlay.pm:669 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "清除更动报告 %1" -#: lib/RT/Transaction_Overlay.pm:126 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "更动报告已新增" -#: lib/RT/Transaction_Overlay.pm:90 +#: NOT FOUND IN SOURCE +msgid "Transaction Custom Fields" +msgstr "更动的自订字段" + +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "未指定申请å•ç¼–å·ï¼Œæ— æ³•新增更动" +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "未指定对象类别åŠç¼–å·ï¼Œæ— æ³•新增更动" + #: NOT FOUND IN SOURCE msgid "TransactionBatch" msgstr "批次更动时" @@ -6019,11 +7074,11 @@ msgstr "批次更动时" msgid "TransactionCreate" msgstr "新增更动时" -#: lib/RT/Transaction_Overlay.pm:724 +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "ä¸å¯æ›´æ”¹æ›´åŠ¨æŠ¥å‘Š" -#: html/Work/Approvals/Elements/Approve:52 +#: NOT FOUND IN SOURCE msgid "Transfer to" msgstr "移交给" @@ -6039,10 +7094,14 @@ msgstr "星期二" msgid "Tue." msgstr "星期二" -#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1216 lib/RT/Tickets_Overlay.pm:1020 +#: 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 "类别" +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + #: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "尚无实作" @@ -6051,11 +7110,11 @@ msgstr "尚无实作" msgid "Unix login" msgstr "外部系统登入å¸å·" -#: html/Admin/Elements/ModifyUser:61 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "外部系统登入å¸å·" -#: lib/RT/Attachment_Overlay.pm:283 lib/RT/Attachment_Overlay.pm:315 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "ä¸å¯è§£çš„å†…å®¹æ–‡å­—ç¼–ç æ–¹å¼ %1" @@ -6064,51 +7123,79 @@ msgstr "ä¸å¯è§£çš„å†…å®¹æ–‡å­—ç¼–ç æ–¹å¼ %1" msgid "Unlimited" msgstr "全数显示" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "未命å的查询" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "éžå†…部æˆå‘˜" -#: lib/RT/Transaction_Overlay.pm:526 +#: NOT FOUND IN SOURCE +msgid "Unselected Custom Fields" +msgstr "未选å–的自订字段" + +#: NOT FOUND IN SOURCE +msgid "Unselected objects" +msgstr "未选å–的对象" + +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "未被å—ç†" -#: html/Edit/Elements/Page:13 html/Edit/Elements/Page:15 +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "未命å的查询" + +#: NOT FOUND IN SOURCE msgid "Up" msgstr "上一页" -#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:91 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:72 +#: html/Search/Bulk.html:32 msgid "Update" msgstr "处ç†" -#: html/Admin/Users/Prefs.html:61 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "æ›´æ–°ç¼–å·" -#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:65 html/Work/Search/Bulk.html:81 html/Work/Tickets/Update.html:32 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "更新类别" -#: html/Search/Listing.html:60 html/Work/Search/index.html:32 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "整批更新申请å•" -#: html/Admin/Users/Prefs.html:48 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "更新电å­é‚®ä»¶ä¿¡ç®±" -#: html/Admin/Users/Prefs.html:54 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "批次更新申请å•" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "æ›´æ–°å¸å·" -#: lib/RT/Interface/Web.pm:469 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "更新未被记录" -#: html/Search/Bulk.html:80 html/Work/Search/Bulk.html:52 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "更新选择的申请å•" -#: html/Admin/Users/Prefs.html:35 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "更新签章" @@ -6125,20 +7212,56 @@ msgstr "æ›´æ–°ç”³è¯·å• # %1" msgid "Update ticket #%1" msgstr "æ›´æ–°ç”³è¯·å• #%1" -#: html/Ticket/Update.html:139 +#: html/Ticket/Update.html:121 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "æ›´æ–°ç”³è¯·å• #%1 (%2)" -#: lib/RT/Interface/Web.pm:467 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "更新的内容并éžç”³è¯·å•回å¤ä¹Ÿä¸æ˜¯è¯„论" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1219 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "剿¬¡æ›´æ–°" -#: html/Work/Preferences/index.html:15 html/Work/Tickets/Elements/ShowTransaction:11 +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "上载" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple files" +msgstr "上载多个档案" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple images" +msgstr "上载多份图片" + +#: NOT FOUND IN SOURCE +msgid "Upload one file" +msgstr "上载一个档案" + +#: NOT FOUND IN SOURCE +msgid "Upload one image" +msgstr "上载一份图片" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 files" +msgstr "上载最多 %1 个档案" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 images" +msgstr "上载最多 %1 份图片" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "上载您的更动" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User" msgstr "使用者" @@ -6150,6 +7273,11 @@ msgstr "使用者 %1 %2:%3\\n" msgid "User %1 Password: %2\\n" msgstr "使用者 %1 å£ä»¤ï¼š%2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'。" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'" @@ -6158,27 +7286,31 @@ msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'" msgid "User '%1' not found\\n" msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'\\n" -#: etc/initialdata:124 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "使用者自订" -#: html/Admin/Users/Prefs.html:58 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "使用者 ID" -#: html/Edit/Elements/SelectUsers:3 html/Elements/SelectUsers:25 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "使用者 ID" -#: html/Edit/Elements/PickUsers:13 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/Search.html:23 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 +#: NOT FOUND IN SOURCE msgid "User Number" msgstr "员工编å·" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:28 +#: 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 "使用者æƒé™" -#: html/Edit/Elements/Tab:34 +#: NOT FOUND IN SOURCE msgid "User Setup" msgstr "使用者设定" @@ -6186,12 +7318,16 @@ msgstr "使用者设定" msgid "User Shift" msgstr "员工ç­åˆ«" -#: html/Admin/Users/Modify.html:225 +#: 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:252 #. ($msg) msgid "User could not be created: %1" msgstr "无法新增使用者:%1" -#: lib/RT/User_Overlay.pm:326 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "使用者新增完毕" @@ -6207,7 +7343,7 @@ msgstr "使用者 %1 (%2) 新增完毕" msgid "User defined groups" msgstr "使用者定义的群组" -#: lib/RT/User_Overlay.pm:580 lib/RT/User_Overlay.pm:597 +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 msgid "User loaded" msgstr "已加载使用者" @@ -6219,19 +7355,23 @@ msgstr "已通知使用者" msgid "User renamed from %1 to %2" msgstr "使用者 %1 已改å为 %2" -#: html/Admin/Users/Prefs.html:24 html/Admin/Users/Prefs.html:28 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "使用者ç§äººæ•°æ®" -#: html/Edit/Elements/PickUsers:38 html/Edit/Global/Workflow/Owner.html:48 html/Edit/Global/Workflow/Owner.html:73 html/Edit/Global/Workflow/Owner.html:82 +#: NOT FOUND IN SOURCE +msgid "User-defined groups" +msgstr "使用者自定群组" + +#: NOT FOUND IN SOURCE msgid "UserDefined" msgstr "使用者自定" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:54 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "å¸å·" -#: 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/Edit/Groups/Admin:9 html/User/Groups/Members.html:57 +#: 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 "使用者" @@ -6239,6 +7379,10 @@ msgstr "使用者" msgid "Users matching search criteria" msgstr "ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„使用者" +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "åˆç†çš„æŸ¥è¯¢" + #: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "选择表å•" @@ -6247,11 +7391,19 @@ msgstr "选择表å•" msgid "Values" msgstr "字段值" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE +msgid "View log" +msgstr "检视纪录档" + +#: NOT FOUND IN SOURCE +msgid "VrijevormEnkele" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "视察" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "以管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è§†å¯Ÿ" @@ -6259,11 +7411,11 @@ msgstr "以管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è§†å¯Ÿ" msgid "Watcher loaded" msgstr "æˆåŠŸåŠ è½½è§†å¯Ÿå‘˜ä¿¡æ¯" -#: html/Admin/Elements/QueueTabs:41 html/Edit/Elements/SelectQueues:5 +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "视察员" -#: html/Admin/Elements/ModifyUser:55 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "ç½‘é¡µæ–‡å­—ç¼–ç æ–¹å¼" @@ -6275,112 +7427,127 @@ msgstr "星期三" msgid "Wed." msgstr "星期三" -#: etc/initialdata:503 etc/upgrade/2.1.71:161 html/Edit/Elements/CreateApprovalsQueue:135 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "当申请å•通过所有签核åŽï¼Œå°†æ­¤è®¯æ¯å›žå¤åˆ°åŽŸç”³è¯·å•" -#: etc/initialdata:467 etc/upgrade/2.1.71:135 html/Edit/Elements/CreateApprovalsQueue:107 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "当申请å•通过æŸé¡¹ç­¾æ ¸åŽï¼Œå°†æ­¤è®¯æ¯å›žå¤åˆ°åŽŸç”³è¯·å•" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "æ–°å¢žç”³è¯·å•æ—¶" -#: etc/initialdata:400 etc/upgrade/2.1.71:79 html/Edit/Elements/CreateApprovalsQueue:51 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "ç­¾æ ¸å•æ–°å¢žä¹‹åŽï¼Œé€šçŸ¥åº”å—ç†çš„æ‰¿åŠžäººåŠç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "当任何事情å‘生时" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "当申请å•解决时" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "å½“ç”³è¯·å•æ›´æ¢æ‰¿åŠžäººæ—¶" -#: etc/initialdata:178 +#: 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:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "å½“ç”³è¯·å•æ›´æ–°çŽ°å†µæ—¶" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "当使用者自订的情况å‘生时" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "当评论é€è¾¾æ—¶" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "当回å¤é€è¾¾æ—¶" -#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:67 html/Work/Preferences/Info:39 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "å…¬å¸" -#: html/Admin/Elements/ModifyUser:69 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "离线工作" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "å…¬å¸ç”µè¯" -#: html/Ticket/Elements/ShowBasics:34 html/Ticket/Update.html:64 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "å¤„ç†æ—¶é—´" -#: html/Admin/Global/Workflow.html:91 html/Admin/Queues/Workflow.html:89 -#. ($WorkflowObj->Id()) +#: NOT FOUND IN SOURCE msgid "Workflow #%1" msgstr "æµç¨‹ #%1" -#: html/Edit/Global/Workflow/List:15 +#: NOT FOUND IN SOURCE msgid "Workflow Begin" msgstr "æµç¨‹å¼€å§‹" -#: html/Edit/Global/Workflow/List:20 +#: NOT FOUND IN SOURCE msgid "Workflow End" msgstr "æµç¨‹ç»“æŸ" -#: html/Admin/Elements/EditWorkflows:90 +#: NOT FOUND IN SOURCE msgid "Workflow deleted" msgstr "æµç¨‹å·²åˆ é™¤" -#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:27 +#: NOT FOUND IN SOURCE msgid "Workflows" msgstr "æµç¨‹" -#: html/Edit/Global/CustomField/SelectWritable:5 +#: NOT FOUND IN SOURCE msgid "Writable" msgstr "å¯è¯»å†™" -#: html/autohandler:151 +#: html/autohandler:150 msgid "XXX CHANGEME You are not an authorized user" msgstr "XXX CHANGEME æ‚¨æ˜¯æœªç»æŽˆæƒçš„使用者" -#: html/Edit/Global/Basic/Top:25 html/Edit/Queues/Basic/Top:82 +#: NOT FOUND IN SOURCE msgid "Yes" msgstr "是" -#: lib/RT/Ticket_Overlay.pm:3208 +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "您已是这份申请å•的承办人" -#: html/autohandler:143 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "æ‚¨ä¸æ˜¯è¢«æŽˆæƒçš„使用者" -#: html/Ticket/Elements/ShowTransaction:89 +#: NOT FOUND IN SOURCE msgid "You can access it with the Download button on the right." msgstr "您å¯ä»¥æŒ‰å³æ–¹çš„「下载ã€é”®æ¥å–得。" -#: lib/RT/Ticket_Overlay.pm:3090 +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿åŠžæˆ–æ˜¯æ²¡æœ‰æ‰¿åŠžäººçš„ç”³è¯·å•" @@ -6401,11 +7568,11 @@ msgstr "您已注销 RT。" msgid "You have no permission to create tickets in that queue." msgstr "æ‚¨æ²¡æœ‰åœ¨è¯¥è¡¨å•æ–°å¢žç”³è¯·å•çš„æƒé™ã€‚" -#: lib/RT/Ticket_Overlay.pm:1943 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "您ä¸èƒ½åœ¨è¯¥è¡¨å•中æå‡ºç”³è¯·ã€‚" -#: html/Edit/Global/Basic/Top:42 +#: NOT FOUND IN SOURCE msgid "You need to restart the Request Tracker service for saved changes to take effect." msgstr "æ‚¨å¿…é¡»é‡æ–°æ¿€æ´» Request Tracker æœåŠ¡ï¼Œå‚¨å­˜çš„æ›´åŠ¨æ‰ä¼šç”Ÿæ•ˆã€‚" @@ -6421,11 +7588,11 @@ msgstr "您æå‡ºçš„ %1 申请å•" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "RT 管ç†å‘˜å¯èƒ½è®¾é”™äº†ç”± RT 寄出的邮件收件人标头档" -#: etc/initialdata:484 etc/upgrade/2.1.71:146 html/Edit/Elements/CreateApprovalsQueue:119 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "申请å•已由 %1 批准。å¯èƒ½è¿˜æœ‰å…¶å®ƒå¾…签核的步骤。" -#: etc/initialdata:522 etc/upgrade/2.1.71:180 html/Edit/Elements/CreateApprovalsQueue:154 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "您的申请å•已完æˆç­¾æ ¸ç¨‹åºã€‚" @@ -6437,15 +7604,15 @@ msgstr "您的申请å•已被驳回" msgid "Your request was rejected by %1." msgstr "您的申请å•已被 %1 驳回。" -#: etc/initialdata:427 etc/upgrade/2.1.71:101 html/Edit/Elements/CreateApprovalsQueue:73 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "您的申请å•已被驳回。" -#: html/autohandler:196 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "您的å¸å·æˆ–å£ä»¤æœ‰è¯¯" -#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:130 html/Work/Preferences/Info:90 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "邮政编ç " @@ -6461,6 +7628,14 @@ msgstr "过期" msgid "alert" msgstr "急讯" +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + #: NOT FOUND IN SOURCE msgid "approving" msgstr "待签核" @@ -6478,19 +7653,19 @@ msgstr "已解决" msgid "contains" msgstr "包å«" -#: html/Elements/SelectAttachmentField:25 +#: NOT FOUND IN SOURCE msgid "content" msgstr "内容" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "类型" -#: lib/RT/Ticket_Overlay.pm:2334 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "申请å•回å¤(å¯èƒ½)未é€å‡º" -#: lib/RT/Ticket_Overlay.pm:2344 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "申请å•回å¤å·²é€å‡º" @@ -6498,7 +7673,7 @@ msgstr "申请å•回å¤å·²é€å‡º" msgid "critical" msgstr "严é‡" -#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:34 html/Edit/Queues/List:32 html/Work/Queues/List:12 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "天" @@ -6510,15 +7685,15 @@ msgstr "æ‹’ç»å¤„ç†" msgid "debug" msgstr "侦错" -#: html/Search/Listing.html:74 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "删除" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "已删除" -#: html/Search/Elements/PickRestriction:68 html/Work/Search/PickRestriction:47 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "ä¸ç¬¦åˆ" @@ -6526,7 +7701,7 @@ msgstr "ä¸ç¬¦åˆ" msgid "doesn't contain" msgstr "ä¸åŒ…å«" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "email address" msgstr "电å­é‚®ä»¶ä¿¡ç®±" @@ -6546,7 +7721,7 @@ msgstr "错误" msgid "false" msgstr "å‡" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "æ¡£å" @@ -6554,7 +7729,7 @@ msgstr "æ¡£å" msgid "greater than" msgstr "大于" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "群组 '%1'" @@ -6567,15 +7742,19 @@ msgstr "å°æ—¶" msgid "id" msgstr "ç¼–å·" +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "info" msgstr "ä¿¡æ¯" -#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:75 +#: 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 "是" -#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:76 +#: 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 "䏿˜¯" @@ -6583,11 +7762,11 @@ msgstr "䏿˜¯" msgid "less than" msgstr "å°äºŽ" -#: html/Edit/Global/Workflow/Owner.html:35 +#: NOT FOUND IN SOURCE msgid "level Admin" msgstr "层主管" -#: html/Search/Elements/PickRestriction:67 html/Work/Search/PickRestriction:46 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "符åˆ" @@ -6595,11 +7774,11 @@ msgstr "符åˆ" msgid "min" msgstr "分" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "分钟" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "更改\\n\\n" @@ -6607,7 +7786,7 @@ msgstr "更改\\n\\n" msgid "months" msgstr "月" -#: lib/RT/Queue_Overlay.pm:57 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "新建立" @@ -6619,7 +7798,7 @@ msgstr "没有åç§°" msgid "no value" msgstr "没有值" -#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/List:32 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:12 html/Work/Tickets/Elements/EditWatchers:5 html/Work/Tickets/Elements/ShowAttachments:30 html/Work/Tickets/Elements/ShowBasics:27 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "æ— " @@ -6635,11 +7814,11 @@ msgstr "æç¤º" msgid "notlike" msgstr "ä¸ç¬¦åˆ" -#: html/Edit/Elements/PickUsers:18 html/Edit/Users/Add.html:18 html/Edit/Users/Search.html:28 html/Work/Tickets/Cc:15 +#: NOT FOUND IN SOURCE msgid "number" msgstr "å·" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:58 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "å¼€å¯" @@ -6647,25 +7826,25 @@ msgstr "å¼€å¯" msgid "opened" msgstr "已开å¯" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "使用者「%2ã€çš„「%1ã€ä»£ç†äººç¾¤ç»„" -#: lib/RT/Group_Overlay.pm:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "è¡¨å• %1 %2" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "已驳回" -#: lib/RT/Queue_Overlay.pm:60 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "已处ç†" -#: html/Edit/Global/Basic/Top:53 +#: NOT FOUND IN SOURCE msgid "rtname" msgstr "æœåС噍åç§°" @@ -6673,16 +7852,20 @@ msgstr "æœåС噍åç§°" msgid "sec" msgstr "ç§’" -#: lib/RT/Queue_Overlay.pm:59 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "电å­è¡¨æ ¼" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "延宕" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "系统 %1" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "系统群组 '%1'" @@ -6691,21 +7874,20 @@ msgstr "系统群组 '%1'" msgid "the calling component did not specify why" msgstr "呼å«ç»„件未指明原因" -#: lib/RT/URI/fsck_com_rt.pm:234 -#. ($self->Object->Id) +#: NOT FOUND IN SOURCE msgid "ticket #%1" msgstr "ç”³è¯·å• #%1" -#: lib/RT/Group_Overlay.pm:210 +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ç”³è¯·å• #%1 %2" -#: html/Work/Elements/SelectSearch:33 +#: NOT FOUND IN SOURCE msgid "till" msgstr "至" -#: html/Edit/Elements/PickUsers:16 html/Edit/Global/Workflow/Condition:31 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 +#: NOT FOUND IN SOURCE msgid "to" msgstr "到" @@ -6713,16 +7895,20 @@ msgstr "到" msgid "true" msgstr "真" -#: lib/RT/Group_Overlay.pm:216 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "没有æè¿°çš„群组 %1" +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "unresolved" msgstr "未处ç†" -#: lib/RT/Group_Overlay.pm:191 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "使用者 %1" @@ -6743,3 +7929,7 @@ msgstr "模æ¿ï¼š%1" msgid "years" msgstr "å¹´" +#: NOT FOUND IN SOURCE +msgid "ニックãƒãƒ¼ãƒ " +msgstr "" + diff --git a/rt/lib/RT/I18N/zh_tw.po b/rt/lib/RT/I18N/zh_tw.po index 40939ee0e..482d0c8cf 100644 --- a/rt/lib/RT/I18N/zh_tw.po +++ b/rt/lib/RT/I18N/zh_tw.po @@ -7,7 +7,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: html/Elements/MyRequests:27 html/Elements/MyTickets:27 html/Work/Elements/MyApprovals:8 html/Work/Elements/MyRequests:15 html/Work/Elements/MyTickets:15 +#: NOT FOUND IN SOURCE msgid "#" msgstr "#" @@ -23,6 +23,11 @@ msgstr "#%1" msgid "#%1: %2" msgstr "#%1: %2" +#: lib/RT/Record.pm:737 +#. ($self->id) +msgid "$prefix %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%*(%1,group ticket)" msgstr "%*(%1) ä»¶åƒèˆ‡çš„申請單" @@ -35,12 +40,18 @@ msgstr "%*(%1) 件陿œŸå®Œæˆçš„申請單" msgid "%*(%1,unresolved ticket)" msgstr "%*(%1) 件尚未解決的申請單" -#: lib/RT/Date.pm:337 +#: lib/RT/URI/fsck_com_rt.pm:235 +#. ($self->ObjectType, $self->Object->Id) +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:831 +#: lib/RT/Tickets_Overlay.pm:828 #. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) msgid "%1 %2 %3" msgstr "%1 %2 %3" @@ -50,8 +61,7 @@ msgstr "%1 %2 %3" msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%7-%2-%3 %4:%5:%6 %1" -#: lib/RT/Ticket_Overlay.pm:3600 lib/RT/Transaction_Overlay.pm:514 lib/RT/Transaction_Overlay.pm:557 lib/RT/Transaction_Vendor.pm:26 -#. ($field, $new_value) +#: 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) @@ -63,78 +73,129 @@ msgstr "%2 已新增為 %1" msgid "%1 %2 ago" msgstr "%1 %2 之å‰" -#: lib/RT/Ticket_Overlay.pm:3606 lib/RT/Transaction_Overlay.pm:521 lib/RT/Transaction_Vendor.pm:32 -#. ($field, $old_value, $new_value) +#: 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 改為 %3" -#: lib/RT/Ticket_Overlay.pm:3603 lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:563 lib/RT/Transaction_Vendor.pm:29 -#. ($field, $old_value) +#: 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 "%2 已自 %1 刪除" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:157 -#. ($depth_str, $role_str, $group_str) +#: NOT FOUND IN SOURCE msgid "%1 %2 of group %3" msgstr "%3 群組的 %1 %2" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 +#: 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 | 範本:%3" +#: NOT FOUND IN SOURCE +msgid "%1 %2 הוסף" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 מקבוצה %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 נמחק" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 שונה ל %3" +msgstr "" + #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 這份申請單\\n" -#: html/Search/Listing.html:56 html/Work/Search/index.html:28 -#. (($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() )) +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 פנייה זו\\n" +msgstr "" + +#: html/Ticket/Elements/ShowAttachments:51 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "" + +#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 +#. ($Ticket->Status()) +#. ($TicketObj->Status) +#. ($TicketObj->OwnerObj->Name()) +#. ($DefaultStatus) +msgid "%1 (Unchanged)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "顯示第 %1 - %2 ç­†" -#: bin/rt-crontool:168 bin/rt-crontool:175 bin/rt-crontool:181 +#: 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 - 傳éžçµ¦ %2 çš„ä¸€å€‹åƒæ•¸" -#: bin/rt-crontool:184 +#: bin/rt-crontool:181 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - 將更新狀態輸出到 STDOUT" -#: bin/rt-crontool:178 +#: bin/rt-crontool:175 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - 指定欲使用的動作模組" -#: bin/rt-crontool:172 +#: bin/rt-crontool:169 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - 指定欲使用的æ¢ä»¶æ¨¡çµ„" -#: bin/rt-crontool:165 +#: bin/rt-crontool:162 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - 指定欲使用的查詢模組" -#: lib/RT/ScripAction_Overlay.pm:122 +#: NOT FOUND IN SOURCE +msgid "%1 - ×רגומנט להעביר ×ל %2" +msgstr "" + + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:36 +#. ('»|«', + $RT::VERSION, + '2004', + '<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:114 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "載入手續 %1" -#: html/Edit/Elements/Page:47 -#. (scalar $count) +#: NOT FOUND IN SOURCE msgid "%1 Total" msgstr "å…± %1 ç­†" -#: lib/RT/Ticket_Overlay.pm:3633 +#: lib/RT/Ticket_Overlay.pm:3484 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "新增 %1 作為 %2 的值" @@ -151,19 +212,19 @@ msgstr "別å %1 需è¦å¯ç”¨çš„申請單編號 " msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "別å %1 需è¦å¯ç”¨çš„ç”³è«‹å–®ç·¨è™Ÿä»¥è™•ç† %3(出自 %2)" -#: lib/RT/Link_Overlay.pm:116 lib/RT/Link_Overlay.pm:123 +#: 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 看來是個本地物件,å»ä¸åœ¨è³‡æ–™åº«è£¡" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:430 +#: 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 (%2)" -#: lib/RT/Transaction_Overlay.pm:484 lib/RT/Transaction_Overlay.pm:652 lib/RT/Transaction_Overlay.pm:661 lib/RT/Transaction_Overlay.pm:664 +#: 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) @@ -171,7 +232,12 @@ msgstr "%1 (%2)" msgid "%1 changed from %2 to %3" msgstr "%1 的值從 %2 改為 %3" -#: lib/RT/Interface/Web.pm:955 +#: html/Search/Build.html:161 +#. ($Description) +msgid "%1 copy" +msgstr "" + +#: lib/RT/Record.pm:739 msgid "%1 could not be set to %2." msgstr "無法將 %1 設定為 %2。" @@ -179,42 +245,52 @@ msgstr "無法將 %1 設定為 %2。" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 無法åˆå§‹æ›´æ–° (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2888 +#: lib/RT/Ticket_Overlay.pm:2739 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 ç„¡æ³•å°‡ç¾æ³è¨­æˆå·²è§£æ±ºã€‚RT 資料庫內容å¯èƒ½ä¸ä¸€è‡´ã€‚" +#: NOT FOUND IN SOURCE +msgid "%1 created" +msgstr "已建立 %1" + +#: NOT FOUND IN SOURCE +msgid "%1 deleted" +msgstr "已刪除 %1" + #: html/Elements/MyTickets:24 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "å‰ %1 份待處ç†ç”³è«‹å–®" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." msgstr "å‰ %1 份待處ç†ç”³è«‹å–®..." -#: html/Elements/MyRequests:24 +#: html/Elements/MyTickets:26 #. ($rows) msgid "%1 highest priority tickets I requested..." msgstr "å‰ %1 份é€å‡ºçš„申請單..." -#: html/Work/Elements/MyApprovals:5 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets pending my approval..." msgstr "å‰ %1 份待簽核申請單..." -#: bin/rt-crontool:160 +#: bin/rt-crontool:157 #. ($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:743 +#: lib/RT/Queue_Overlay.pm:784 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å–®çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:1602 -#. ($principal->Object->Name, $args{'Type'}) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a %2 for this ticket." msgstr "%1 å·²ä¸å†æ˜¯æ­¤ç”³è«‹å–®çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:3689 +#: lib/RT/Ticket_Overlay.pm:3540 #. ($args{'Value'}, $cf->Name) msgid "%1 is no longer a value for custom field %2" msgstr "%1 å·²ä¸å†æ˜¯è‡ªè¨‚æ¬„ä½ %2 的值。" @@ -223,22 +299,45 @@ msgstr "%1 å·²ä¸å†æ˜¯è‡ªè¨‚æ¬„ä½ %2 的值。" msgid "%1 isn't a valid Queue id." msgstr "%1 䏿˜¯ä¸€å€‹åˆæ³•的表單編號。" -#: html/Ticket/Elements/ShowBasics:35 -#. ($TimeWorked) +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "" + +#: 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 分é˜" +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "" + +#: html/Elements/MyRequests:25 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "å‰ %1 份待èªé ˜çš„申請單" + #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "沒有顯示 %1" -#: html/Work/Elements/MyTickets:9 -#. ($rows) +#: NOT FOUND IN SOURCE +msgid "%1 objects" +msgstr "%1 物件" + +#: NOT FOUND IN SOURCE msgid "%1 recent tickets I own..." msgstr "最新 %1 份待處ç†ç”³è«‹å–®..." -#: html/Work/Elements/MyRequests:9 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 recent tickets I requested..." msgstr "最新 %1 份é€å‡ºçš„申請單..." @@ -272,23 +371,72 @@ msgstr "%1 新增時未指定ç¾è¡Œä½¿ç”¨è€…" msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 會解決在已解決群組裡æˆå“¡çš„申請單。" -#: lib/RT/Action/StallDependent.pm:40 -#. (ref $self) +#: 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/Transaction_Overlay.pm:382 +#: NOT FOUND IN SOURCE +msgid "%1 הוסף כערך עבור %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 לפני %2 ימי×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 על ידי %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 פעולת-סקריפ נטענה" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1 שונה מ %2 ל %3" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "%1's %2 objects" +msgstr "%1 å…§çš„ %2 物件" + +#: NOT FOUND IN SOURCE +msgid "%1's %2's %3 objects" +msgstr "%1 å…§çš„ %2 çš„ %3 物件" + +#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 +#. ($Object->Name) +#. ($object->Name) +msgid "%1's saved searches" +msgstr "%1 已儲存的查詢" + +#: lib/RT/Transaction_Overlay.pm:408 #. ($self) msgid "%1: no attachment specified" msgstr "%1:未指定附件" -#: html/Ticket/Elements/ShowTransaction:108 html/Work/Tickets/Elements/ShowTransaction:169 +#: html/Ticket/Elements/ShowTransactionAttachments:56 #. ($size) msgid "%1b" msgstr "%1 ä½å…ƒçµ„" -#: html/Ticket/Elements/ShowTransaction:105 html/Work/Tickets/Elements/ShowTransaction:166 -#. (int($size/102.4)/10) +#: html/Ticket/Elements/ShowTransactionAttachments:53 +#. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k ä½å…ƒçµ„" @@ -296,7 +444,7 @@ msgstr "%1k ä½å…ƒçµ„" msgid "%quant(%1,result) found" msgstr "找到 %1 é …çµæžœ" -#: lib/RT/Ticket_Overlay.pm:1190 +#: lib/RT/Ticket_Overlay.pm:1252 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' 䏿˜¯ä¸€å€‹åˆæ³•的狀態值" @@ -313,7 +461,7 @@ msgstr "(é»žé¸æ¬²åˆªé™¤çš„æˆå“¡)" msgid "(Check box to delete scrip)" msgstr "(é»žé¸æ¬²åˆªé™¤çš„æ‰‹çºŒ)" -#: html/Admin/Elements/EditCustomFieldValues:24 html/Admin/Elements/EditQueueWatchers:28 html/Admin/Elements/EditScrips:34 html/Admin/Elements/EditTemplates:35 html/Admin/Elements/EditWorkflows:36 html/Admin/Groups/Members.html:51 html/Ticket/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 html/Work/Tickets/Elements/EditLinks:20 html/Work/Tickets/Elements/EditPeople:36 +#: 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 "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" @@ -321,10 +469,22 @@ msgstr "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" msgid "(Check boxes to delete)" msgstr "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" +#: html/Ticket/Elements/PreviewScrips:49 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "(é»žé¸æ¬²åœç”¨é€šçŸ¥çš„æ”¶ä»¶äºº)" + +#: html/Ticket/Elements/PreviewScrips:71 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "(é»žé¸æ¬²å•Ÿç”¨é€šçŸ¥çš„æ”¶ä»¶äºº)" + #: html/Ticket/Create.html:178 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(éµå…¥ç”³è«‹å–®ç·¨è™Ÿæˆ–ç¶²å€ï¼Œä»¥ç©ºç™½åˆ†éš”)" +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "" + #: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) @@ -351,11 +511,15 @@ msgstr "(沒有手續)" msgid "(No templates)" msgstr "沒有範本" -#: html/Admin/Elements/EditWorkflows:31 +#: NOT FOUND IN SOURCE msgid "(No workflows)" msgstr "沒有æµç¨‹" -#: html/Ticket/Update.html:83 html/Work/Tickets/Update.html:57 +#: NOT FOUND IN SOURCE +msgid "(None)" +msgstr "(ç„¡)" + +#: 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 "(é€å‡ºæœ¬ä»½æ›´æ–°çš„密件副本給å單上以逗號隔開的電å­éƒµä»¶ä½å€ã€‚這<b>䏿œƒ</b>更改後續的收件者å單。)" @@ -367,7 +531,7 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„密件副本給åå–®ä¸Šä»¥é€—è™Ÿéš”é–‹çš„é›»å­ 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/Update.html:79 +#: 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 "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本給å單上以逗號隔開的電å­éƒµä»¶ä½å€ã€‚這<b>䏿œƒ</b>更改後續的收件者å單。)" @@ -379,11 +543,15 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本給å單上以逗號隔開的電å­éƒµä»¶ 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/Work/Delegates/index.html:50 +#: html/Admin/Elements/EditScrip:80 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(default delegate)" msgstr "(é è¨­ä»£ç†äºº)" -#: html/Ticket/Elements/EditCustomFieldEntries:35 html/Work/Tickets/Elements/EditCustomFieldEntries:47 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 +#: NOT FOUND IN SOURCE msgid "(delete)" msgstr "(刪除)" @@ -391,50 +559,78 @@ msgstr "(刪除)" msgid "(empty)" msgstr "(空白)" -#: html/Edit/Elements/Index:87 html/Edit/Global/CustomField/index.html:116 html/Edit/Global/Scrip/index.html:111 html/Edit/Global/Template/index.html:106 +#: NOT FOUND IN SOURCE msgid "(new)" msgstr "(新增)" +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "" + #: html/Admin/Users/index.html:38 msgid "(no name listed)" msgstr "(沒有列出姓å)" -#: html/Elements/MyRequests:42 html/Elements/MyTickets:44 html/Work/Elements/MyApprovals:37 html/Work/Elements/MyRequests:47 html/Work/Elements/MyTickets:56 +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(沒有主題)" -#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:64 html/Ticket/Elements/EditCustomFieldValues:52 html/Ticket/Elements/ShowCustomFields:35 html/Work/Elements/EditCustomFieldValues:50 html/Work/Elements/EditCustomFields:32 html/Work/Tickets/Elements/EditCustomFieldValues:33 lib/RT/Transaction_Overlay.pm:483 +#: 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 "(ç„¡)" -#: html/Ticket/Elements/BulkLinks:27 html/Ticket/Elements/EditLinks:98 html/Work/Search/BulkLinks:3 html/Work/Tickets/Elements/EditLinks:102 +#: NOT FOUND IN SOURCE +msgid "(no values)" +msgstr "(沒有值)" + +#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 msgid "(only one ticket)" msgstr "(僅能指定一份申請單)" -#: html/Elements/MyRequests:51 html/Elements/MyTickets:54 html/Work/Elements/List:21 html/Work/Elements/MyRequests:61 html/Work/Elements/MyTickets:75 html/Work/Tickets/Elements/ShowBasics:52 +#: html/Elements/TicketList:167 msgid "(pending approval)" msgstr "(等待簽核)" -#: html/Elements/MyRequests:53 html/Elements/MyTickets:56 html/Work/Elements/MyRequests:63 html/Work/Elements/MyTickets:77 +#: html/Elements/TicketList:170 +msgid "(pending other Collection)" +msgstr "(等待其他集åˆ)" + +#: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(等待其他申請單)" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:246 +#: NOT FOUND IN SOURCE msgid "(requestor's group)" msgstr "(申請人所屬)" -#: html/Admin/Users/Modify.html:49 html/Edit/Users/Info:34 +#: html/Admin/Users/Modify.html:49 msgid "(required)" msgstr "(å¿…å¡«)" -#: html/Ticket/Elements/ShowTransaction:111 html/Work/Tickets/Elements/ShowTransaction:44 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "(untitled)" msgstr "(未命å)" -#: html/Work/Tickets/Elements/ShowHints:5 +#: NOT FOUND IN SOURCE msgid "*" msgstr "★" +#: NOT FOUND IN SOURCE +msgid "..." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "" + #: NOT FOUND IN SOURCE msgid ":" msgstr ":" @@ -447,12 +643,24 @@ msgstr "<% $Ticket->Status%>" msgid "<% $_ %>" msgstr "<% $_ %>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 html/Work/Elements/104Header:43 lib/RT/StyleGuide.pod:767 +#: html/Search/Elements/SelectLinks:26 +msgid "<%$_%>" +msgstr "<%$_%>" + +#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +msgid "<%$field%>" +msgstr "<%$field%>" + +#: 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=\"æå‡ºç”³è«‹å–®\"> %1" -#: etc/initialdata:203 +#: NOT FOUND IN SOURCE +msgid "??????" +msgstr "" + +#: etc/initialdata:218 msgid "A blank template" msgstr "空白範本" @@ -476,7 +684,7 @@ msgstr "找ä¸åˆ° ACE" msgid "ACE not found" msgstr "找ä¸åˆ° ACE 設定" -#: lib/RT/ACE_Overlay.pm:831 +#: lib/RT/ACE_Overlay.pm:830 msgid "ACEs can only be created and deleted." msgstr "祇能新增或刪除 ACE 設定。" @@ -484,11 +692,11 @@ msgstr "祇能新增或刪除 ACE 設定。" msgid "ACLEquivalence" msgstr "ACLEquivalence" -#: bin/rt-commit-handler:754 +#: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "離開以å…ä¸å°å¿ƒæ›´æ”¹åˆ°ç”³è«‹å–®ã€‚\\n" -#: html/Edit/Users/Info:66 html/Work/Preferences/Info:108 +#: NOT FOUND IN SOURCE msgid "About Me" msgstr "個人資訊" @@ -496,7 +704,7 @@ msgstr "個人資訊" msgid "About me" msgstr "個人資訊" -#: html/Edit/Users/System:12 +#: NOT FOUND IN SOURCE msgid "Access Right" msgstr "系統使用登錄權é™" @@ -504,7 +712,7 @@ msgstr "系統使用登錄權é™" msgid "Access control" msgstr "å­˜å–æ¬Šé™" -#: html/Admin/Elements/EditScrip:56 html/Work/Tickets/Elements/ShowTransaction:21 +#: html/Admin/Elements/EditScrip:49 msgid "Action" msgstr "動作" @@ -513,43 +721,47 @@ msgstr "動作" msgid "Action %1 not found" msgstr "動作 %1 找ä¸åˆ°" -#: bin/rt-crontool:122 +#: bin/rt-crontool:119 msgid "Action committed." msgstr "動作執行完畢" -#: bin/rt-crontool:118 +#: bin/rt-crontool:115 msgid "Action prepared..." msgstr "動作準備完畢..." -#: html/Work/Elements/List:17 html/Work/Elements/SelectSearch:30 html/Work/Tickets/Create.html:27 html/Work/Tickets/Elements/ShowBasics:12 +#: NOT FOUND IN SOURCE msgid "Activated Date" msgstr "申請啟動時間" -#: html/Edit/Elements/104Buttons:82 html/Edit/Elements/ListButtons:7 +#: html/Search/Build.html:43 msgid "Add" msgstr "新增" -#: html/Search/Bulk.html:95 html/Work/Search/Bulk.html:74 +#: html/Search/Bulk.html:93 msgid "Add AdminCc" msgstr "新增管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Search/Bulk.html:91 html/Work/Search/Bulk.html:68 +#: html/Search/Bulk.html:89 msgid "Add Cc" msgstr "新增副本收件人" -#: html/Ticket/Elements/EditCustomFieldEntries:71 html/Work/Tickets/Elements/ShowCustomFieldEntries:50 +#: html/Search/Elements/PickCriteria:24 +msgid "Add Criteria" +msgstr "新增æ¢ä»¶" + +#: NOT FOUND IN SOURCE msgid "Add Entry" msgstr "新增列" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:98 html/Work/Tickets/Elements/AddAttachments:23 +#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 msgid "Add More Files" msgstr "新增更多附件" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:112 html/Admin/Elements/ModifyTemplateAsWorkflow:45 +#: NOT FOUND IN SOURCE msgid "Add Next State" msgstr "新增下一項關å¡" -#: html/Search/Bulk.html:87 html/Work/Search/Bulk.html:62 +#: html/Search/Bulk.html:85 msgid "Add Requestor" msgstr "新增申請人" @@ -581,7 +793,11 @@ msgstr "æ–°å¢žä¸€é“æ‰‹çºŒåˆ°æ­¤è¡¨å–®" msgid "Add a scrip which will apply to all queues" msgstr "新增一é“用於所有表單的手續" -#: html/Search/Bulk.html:127 html/Work/Search/Bulk.html:80 +#: html/Search/Build.html:43 +msgid "Add additional criteria" +msgstr "" + +#: html/Search/Bulk.html:125 msgid "Add comments or replies to selected tickets" msgstr "新增評論或回覆到指定的申請單" @@ -597,25 +813,25 @@ msgstr "新增視察員" msgid "AddNextState" msgstr "新增下一項關å¡" -#: lib/RT/Queue_Overlay.pm:643 +#: lib/RT/Queue_Overlay.pm:684 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤è¡¨å–®çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1486 +#: lib/RT/Ticket_Overlay.pm:1547 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤ç”³è«‹å–®çš„ %1" -#: html/Edit/Global/CustomField/Top:52 +#: NOT FOUND IN SOURCE msgid "Additional Hints" msgstr "é¡å¤–æç¤º" -#: html/Admin/Elements/ModifyUser:75 html/Admin/Users/Modify.html:121 html/User/Prefs.html:114 html/Work/Preferences/Info:82 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 msgid "Address1" msgstr "ä½å€" -#: html/Admin/Elements/ModifyUser:77 html/Admin/Users/Modify.html:126 html/User/Prefs.html:118 html/Work/Preferences/Info:84 +#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 msgid "Address2" msgstr "ä½å€(續)" @@ -623,7 +839,7 @@ msgstr "ä½å€(續)" msgid "Adjust Blinking Rate" msgstr "調整閃çˆé€Ÿåº¦å¿«æ…¢" -#: html/Edit/Queues/List:12 +#: NOT FOUND IN SOURCE msgid "Admin" msgstr "管ç†å“¡" @@ -631,11 +847,11 @@ msgstr "管ç†å“¡" msgid "Admin Cc" msgstr "管ç†å“¡å‰¯æœ¬" -#: etc/initialdata:280 +#: etc/initialdata:295 msgid "Admin Comment" msgstr "管ç†å“¡è©•è«–" -#: etc/initialdata:259 +#: etc/initialdata:274 msgid "Admin Correspondence" msgstr "管ç†å“¡å›žè¦†" @@ -659,11 +875,11 @@ msgstr "管ç†/全域設定" msgid "Admin/Groups" msgstr "管ç†/群組" -#: html/Admin/Queues/Modify.html:24 html/Admin/Queues/Modify.html:28 +#: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" msgstr "管ç†/表單/基本資訊" -#: html/Edit/Global/Basic/Top:65 +#: NOT FOUND IN SOURCE msgid "AdminAddress" msgstr "管ç†å“¡ Email" @@ -671,7 +887,7 @@ msgstr "管ç†å“¡ Email" msgid "AdminAllPersonalGroups" msgstr "ç®¡ç†æ‰€æœ‰ä»£ç†äººç¾¤çµ„" -#: etc/initialdata:56 html/Admin/Elements/ModifyTemplateAsWorkflow:155 html/Ticket/Elements/ShowPeople:38 html/Ticket/Update.html:49 html/Work/Tickets/Elements/ShowLinks:11 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 msgid "AdminCc" msgstr "管ç†å“¡å‰¯æœ¬" @@ -683,7 +899,11 @@ msgstr "管ç†å“¡è©•è«–" msgid "AdminCorrespondence" msgstr "管ç†å“¡å›žè¦†" -#: lib/RT/Queue_Overlay.pm:71 +#: NOT FOUND IN SOURCE +msgid "AdminCustomField" +msgstr "管ç†è‡ªè¨‚欄ä½" + +#: lib/RT/Queue_Overlay.pm:73 msgid "AdminCustomFields" msgstr "管ç†è‡ªè¨‚欄ä½" @@ -715,7 +935,7 @@ msgstr "管ç†ç¾¤çµ„狀態" msgid "AdminOwnPersonalGroups" msgstr "管ç†ä»£ç†äººç¾¤çµ„" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:69 msgid "AdminQueue" msgstr "管ç†è¡¨å–®" @@ -727,18 +947,26 @@ msgstr "管ç†ä½¿ç”¨è€…" msgid "Administrative" msgstr "行政類" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 html/Work/Tickets/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 msgid "Administrative Cc" msgstr "管ç†å“¡å‰¯æœ¬" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:233 +#: NOT FOUND IN SOURCE msgid "Admins" msgstr "主管" +#: html/Ticket/Elements/Tabs:174 +msgid "Advanced" +msgstr "進階" + #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "進階查詢" +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "" + #: html/Elements/SelectDateRelation:35 msgid "After" msgstr "晚於" @@ -747,23 +975,27 @@ msgstr "晚於" msgid "Age" msgstr "經歷時間" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:172 html/Edit/Global/Workflow/Action:35 +#: NOT FOUND IN SOURCE msgid "Alias" msgstr "執行其他æµç¨‹" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:175 +#: NOT FOUND IN SOURCE msgid "Alias for" msgstr "相當於" -#: html/Work/Delegates/index.html:14 html/Work/Elements/SelectSearch:16 html/Work/Queues/Select.html:14 html/Work/Queues/index.html:14 +#: NOT FOUND IN SOURCE msgid "All" msgstr "全部" -#: etc/initialdata:348 +#: etc/initialdata:363 msgid "All Approvals Passed" msgstr "完æˆå…¨éƒ¨ç°½æ ¸" -#: html/Edit/Global/Workflow/Condition:16 +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "All Condition" msgstr "所有æ¢ä»¶" @@ -795,15 +1027,31 @@ msgstr "無論寄件來æºç‚ºä½•,一律寄信給申請人" msgid "Amount" msgstr "數é¡" -#: html/Edit/Global/Workflow/Condition:13 +#: NOT FOUND IN SOURCE msgid "Any Condition" msgstr "ä»»æ„æ¢ä»¶" -#: html/Edit/Global/Scrip/List:10 html/Edit/Global/Scrip/Top:86 +#: NOT FOUND IN SOURCE +msgid "Applies To" +msgstr "套用於" + +#: NOT FOUND IN SOURCE +msgid "Applies to" +msgstr "套用於" + +#: html/Search/Edit.html:42 +msgid "Apply" +msgstr "套用" + +#: NOT FOUND IN SOURCE msgid "Apply Template" msgstr "引用範本" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:138 html/Elements/Tabs:55 html/Work/Approvals/Elements/Approve:6 +#: html/Search/Edit.html:42 +msgid "Apply your changes" +msgstr "套用更動" + +#: html/Elements/Tabs:58 msgid "Approval" msgstr "簽核" @@ -824,7 +1072,7 @@ msgstr "簽核單 #%1:系統錯誤,記錄失敗" msgid "Approval #%1: Notes recorded" msgstr "簽核單 #%1:記錄完畢" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:123 +#: NOT FOUND IN SOURCE msgid "Approval Details" msgstr "簽核細節" @@ -832,15 +1080,15 @@ msgstr "簽核細節" msgid "Approval Due" msgstr "簽核時é™" -#: html/Work/Approvals/Elements/Approve:43 +#: NOT FOUND IN SOURCE msgid "Approval Notes" msgstr "簽核æ„見" -#: etc/initialdata:336 +#: etc/initialdata:351 msgid "Approval Passed" msgstr "å®ŒæˆæŸé …簽核" -#: etc/initialdata:359 +#: etc/initialdata:374 msgid "Approval Rejected" msgstr "é§å›žæŸé …簽核" @@ -848,7 +1096,7 @@ msgstr "é§å›žæŸé …簽核" msgid "Approval Result" msgstr "ç°½æ ¸çµæžœ" -#: html/Work/Approvals/Elements/Approve:25 +#: NOT FOUND IN SOURCE msgid "Approval Status" msgstr "æ ¸å‡†çµæžœ" @@ -856,7 +1104,7 @@ msgstr "æ ¸å‡†çµæžœ" msgid "Approval Type" msgstr "簽核種類" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:25 +#: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "簽核æµç¨‹" @@ -864,15 +1112,15 @@ msgstr "簽核æµç¨‹" msgid "Approve" msgstr "核准" -#: html/Work/Approvals/Elements/Approve:21 html/Work/Elements/List:9 +#: NOT FOUND IN SOURCE msgid "Approver" msgstr "簽核人" -#: html/Edit/Global/Workflow/Action:25 html/Edit/Global/Workflow/Owner.html:10 +#: NOT FOUND IN SOURCE msgid "Approver Setting" msgstr "執行簽核人設定" -#: etc/initialdata:486 etc/upgrade/2.1.71:148 html/Edit/Elements/CreateApprovalsQueue:122 +#: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "簽核備註:%1" @@ -888,43 +1136,76 @@ msgstr "04" msgid "April" msgstr "四月" -#: html/Edit/Elements/104Buttons:24 +#: NOT FOUND IN SOURCE msgid "Are you sure to delete checked items?" msgstr "您確定è¦åˆªé™¤ï¼Ÿ" -#: html/Elements/SelectSortOrder:34 +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "" + +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 msgid "Ascending" msgstr "éžå¢ž" -#: html/Search/Bulk.html:136 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:98 html/Work/Search/Bulk.html:88 +#: NOT FOUND IN SOURCE +msgid "Assign and remove custom fields" +msgstr "指派åŠç§»é™¤è‡ªè¨‚欄ä½" + +#: NOT FOUND IN SOURCE +msgid "AssignCustomFields" +msgstr "指派自訂欄ä½" + +#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 msgid "Attach" msgstr "附件" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 html/Work/Tickets/Elements/AddAttachments:19 +#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 msgid "Attach file" msgstr "附加檔案" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:87 html/Work/Tickets/Elements/AddAttachments:7 html/Work/Tickets/Elements/ShowAttachments:9 +#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 msgid "Attached file" msgstr "ç¾æœ‰é™„ä»¶" -#: NOT FOUND IN SOURCE +#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "無法載入附件 '%1'" -#: lib/RT/Transaction_Overlay.pm:390 +#: lib/RT/Transaction_Overlay.pm:416 msgid "Attachment created" msgstr "附件新增完畢" -#: lib/RT/Tickets_Overlay.pm:1250 +#: lib/RT/Tickets_Overlay.pm:1251 msgid "Attachment filename" msgstr "附件檔å" -#: html/Ticket/Elements/ShowAttachments:25 html/Work/Tickets/Elements/ShowTransaction:37 +#: html/Ticket/Elements/ShowAttachments:25 msgid "Attachments" msgstr "附件" -#: lib/RT/Ticket_Overlay.pm:1222 +#: lib/RT/Attributes_Overlay.pm:158 +msgid "Attribute Deleted" +msgstr "已刪除該屬性" + +#: NOT FOUND IN SOURCE msgid "Attributes" msgstr "屬性" @@ -940,7 +1221,7 @@ msgstr "08" msgid "August" msgstr "八月" -#: html/Admin/Elements/ModifyUser:65 +#: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "èªè­‰æ–¹å¼" @@ -952,7 +1233,7 @@ msgstr "自動é§å›žè¡¨å–®" msgid "AutoResolve" msgstr "自動完æˆè¡¨å–®è™•ç†" -#: etc/initialdata:206 +#: etc/initialdata:221 msgid "Autoreply" msgstr "自動回覆" @@ -964,7 +1245,11 @@ msgstr "自動å°ç”³è«‹äººå›žè¦†" msgid "AutoreplyToRequestors" msgstr "自動å°ç”³è«‹äººå›žè¦†" -#: html/Edit/Rights/index.html:17 +#: html/Search/Elements/EditFormat:4 +msgid "Available Columns" +msgstr "å¯ç”¨çš„æ¬„ä½ï¼š" + +#: NOT FOUND IN SOURCE msgid "Available Rights:" msgstr "權é™é …目列表:" @@ -972,7 +1257,7 @@ msgstr "權é™é …目列表:" msgid "Back to Homepage" msgstr "回到首é " -#: html/Work/Approvals/Update.html:7 html/Work/Elements/BackButton:2 html/Work/Search/Bulk.html:101 +#: NOT FOUND IN SOURCE msgid "Back to Previous" msgstr "回上é " @@ -984,8 +1269,7 @@ msgstr "錯誤的 PGP 簽章:%1\\n" msgid "Bad attachment id. Couldn't find attachment '%1'\\n" msgstr "錯誤的附件編號。無法找到附件 '%1'\\n" -#: bin/rt-commit-handler:826 -#. ($val) +#: NOT FOUND IN SOURCE msgid "Bad data in %1" msgstr "%1 的資料錯誤" @@ -993,27 +1277,27 @@ msgstr "%1 的資料錯誤" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "附件的處ç†è™Ÿç¢¼éŒ¯èª¤ã€‚%1 應為 %2\\n" -#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Edit/Global/autohandler:6 html/Edit/Queues/autohandler:23 html/Edit/Users/index.html:94 html/Ticket/Elements/Tabs:95 html/User/Elements/GroupTabs:37 +#: 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 "基本資訊" -#: html/Work/Approvals/index.html:9 +#: NOT FOUND IN SOURCE msgid "Batch Approval" msgstr "批次簽核" -#: html/Ticket/Update.html:81 html/Work/Tickets/Update.html:54 +#: html/Ticket/Update.html:64 msgid "Bcc" msgstr "密件副本" -#: html/Admin/Elements/EditScrip:95 html/Admin/Global/GroupRights.html:84 html/Admin/Global/Template.html:45 html/Admin/Global/UserRights.html:53 html/Admin/Global/Workflow.html:46 html/Admin/Groups/GroupRights.html:72 html/Admin/Groups/Members.html:80 html/Admin/Groups/Modify.html:55 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/GroupRights.html:85 html/Admin/Queues/Template.html:44 html/Admin/Queues/UserRights.html:53 html/Admin/Queues/Workflow.html:44 html/User/Groups/Modify.html:55 +#: html/Admin/Elements/EditScrip:73 msgid "Be sure to save your changes" msgstr "請別忘了儲存修改。" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:363 +#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 msgid "Before" msgstr "æ—©æ–¼" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:44 +#: NOT FOUND IN SOURCE msgid "Begin Approval" msgstr "開始簽核" @@ -1021,18 +1305,26 @@ msgstr "開始簽核" msgid "Begin From " msgstr "èµ·å§‹æ—¥" +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "檔案" + #: NOT FOUND IN SOURCE msgid "Birthday" msgstr "生日" -#: etc/initialdata:202 +#: etc/initialdata:217 msgid "Blank" msgstr "空白範本" -#: html/Search/Listing.html:78 html/Work/Search/index.html:53 +#: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "å°‡æŸ¥è©¢çµæžœè½‰ç‚ºå¯æ”¾å…¥æ›¸ç±¤çš„ç¶²å€" +#: html/Search/Results.html:47 +msgid "Bookmarkable link" +msgstr "" + #: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 msgid "Brief headers" msgstr "精簡標頭檔" @@ -1049,41 +1341,48 @@ msgstr "事業部" msgid "Business Unit:" msgstr "事業部:" -#: lib/RT/User_Overlay.pm:1539 +#: lib/RT/User_Overlay.pm:1533 msgid "Can not modify system users" msgstr "無法更改系統使用者" -#: lib/RT/Queue_Overlay.pm:66 +#: lib/RT/Queue_Overlay.pm:68 msgid "Can this principal see this queue" msgstr "è©²å–®ä½æ˜¯å¦èƒ½æŸ¥é–±æ­¤è¡¨å–®" -#: lib/RT/CustomField_Overlay.pm:212 +#: lib/RT/CustomField_Overlay.pm:211 msgid "Can't add a custom field value without a name" msgstr "ä¸èƒ½æ–°å¢žæ²’有å稱的自訂欄ä½å€¼" -#: lib/RT/Link_Overlay.pm:131 +#: html/Search/Build.html:694 +msgid "Can't find a saved search to work with" +msgstr "找ä¸åˆ°å·²å„²å­˜çš„æŸ¥è©¢" + +#: lib/RT/Link_Overlay.pm:126 msgid "Can't link a ticket to itself" msgstr "申請單ä¸èƒ½éˆçµè‡ªå·±ã€‚" -#: lib/RT/Ticket_Overlay.pm:2865 +#: lib/RT/Ticket_Overlay.pm:2716 msgid "Can't merge into a merged ticket. You should never get this error" msgstr "ä¸èƒ½æ•´åˆé€²å·²æ•´åˆéŽçš„申請單。這個錯誤ä¸è©²ç™¼ç”Ÿã€‚" -#: lib/RT/Ticket_Overlay.pm:2667 lib/RT/Ticket_Overlay.pm:2746 +#: html/Search/Build.html:699 +msgid "Can't save this search" +msgstr "無法儲存此項查詢" + +#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 msgid "Can't specifiy both base and target" msgstr "ä¸èƒ½åŒæ™‚指定起始申請單與目的申請單" -#: html/Edit/Elements/PopFooter:8 +#: NOT FOUND IN SOURCE msgid "Cancel" msgstr "å–æ¶ˆ" -#: html/autohandler:133 +#: html/autohandler:132 #. ($msg) msgid "Cannot create user: %1" msgstr "無法新增使用者:%1" -#: html/autohandler:187 -#. ($auth_created - time) +#: NOT FOUND IN SOURCE msgid "Cannot login: Your system clock differs from server's by %1 seconds!" msgstr "您的系統時é˜å’Œä¼ºæœå™¨ç›¸å·® %1 秒,無法登入ï¼" @@ -1099,7 +1398,7 @@ msgstr "分類管ç†" msgid "Category" msgstr "分類" -#: 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:44 html/Ticket/Update.html:76 html/Work/Tickets/Elements/EditPeople:41 html/Work/Tickets/Elements/ShowLinks:6 html/Work/Tickets/Update.html:43 lib/RT/ACE_Overlay.pm:87 +#: 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 "副本" @@ -1119,11 +1418,15 @@ msgstr "修改申請單" msgid "Change password" msgstr "更改密碼" -#: html/Edit/Global/Basic/Top:79 +#: NOT FOUND IN SOURCE msgid "ChangeOwnerUI" msgstr "å¯å¦é¸æ“‡è¡¨å–®æ‰¿è¾¦äºº" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Elements/EditCustomFieldEntries:35 html/Ticket/Update.html:90 html/Work/Tickets/Elements/ShowCustomFieldEntries:14 +#: NOT FOUND IN SOURCE +msgid "Check All" +msgstr "全部é¸å–" + +#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 msgid "Check box to delete" msgstr "鏿“‡æ¬²åˆªé™¤çš„é …ç›®" @@ -1131,11 +1434,11 @@ msgstr "鏿“‡æ¬²åˆªé™¤çš„é …ç›®" msgid "Check box to revoke right" msgstr "鏿“‡æ¬²æ’¤æ¶ˆçš„æ¬Šåˆ©" -#: html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 html/Ticket/Elements/EditLinks:113 html/Ticket/Elements/EditLinks:63 html/Ticket/Elements/ShowLinks:56 html/Work/Search/BulkLinks:18 html/Work/Tickets/Elements/EditLinks:117 html/Work/Tickets/Elements/EditLinks:56 html/Work/Tickets/Elements/ShowMembers:4 +#: 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 "å­ç”³è«‹å–®" -#: html/Edit/Elements/PickUsers:22 html/Edit/Global/UserRight/List:8 html/Edit/Global/UserRight/Top:19 +#: NOT FOUND IN SOURCE msgid "Chinese Name" msgstr "中文姓å" @@ -1143,14 +1446,34 @@ msgstr "中文姓å" msgid "Chinese/English" msgstr "中英文" -#: html/Admin/Elements/ModifyUser:79 html/Admin/Users/Modify.html:131 html/User/Prefs.html:122 html/Work/Preferences/Info:86 +#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 msgid "City" msgstr "所在城市" -#: html/Edit/Elements/104Top:30 +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "ClassicUI" msgstr "傳統介é¢" +#: NOT FOUND IN SOURCE +msgid "Clear All" +msgstr "全部清除" + #: html/Ticket/Elements/ShowDates:47 msgid "Closed" msgstr "已解決" @@ -1159,11 +1482,15 @@ msgstr "已解決" msgid "Closed Tickets" msgstr "已解決的申請單" +#: NOT FOUND IN SOURCE +msgid "Closed requests" +msgstr "" + #: html/SelfService/Elements/Tabs:44 msgid "Closed tickets" msgstr "已解決的申請單" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:181 html/Edit/Global/Workflow/Action:55 html/Edit/Global/Workflow/Condition:53 html/Edit/Global/Workflow/Owner.html:115 +#: NOT FOUND IN SOURCE msgid "Code" msgstr "執行程å¼ç¢¼" @@ -1171,11 +1498,11 @@ msgstr "執行程å¼ç¢¼" msgid "Command not understood!\\n" msgstr "指令無法辨識ï¼\\n" -#: html/Ticket/Elements/ShowTransaction:189 html/Ticket/Elements/Tabs:158 html/Work/Search/Bulk.html:89 html/Work/Tickets/Display.html:61 html/Work/Tickets/Elements/ShowTransaction:119 html/Work/Tickets/Elements/ShowTransaction:32 +#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 msgid "Comment" msgstr "è©•è«–" -#: html/Admin/Elements/ModifyQueue:44 html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:57 msgid "Comment Address" msgstr "è©•è«–é›»å­éƒµä»¶åœ°å€" @@ -1183,44 +1510,43 @@ msgstr "è©•è«–é›»å­éƒµä»¶åœ°å€" msgid "Comment not recorded" msgstr "評論未被紀錄" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:88 msgid "Comment on tickets" msgstr "å°ç”³è«‹å–®æå‡ºè©•è«–" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:88 msgid "CommentOnTicket" msgstr "評論申請單" -#: html/Admin/Elements/ModifyUser:34 html/Work/Tickets/Elements/AddContent:7 +#: NOT FOUND IN SOURCE msgid "Comments" msgstr "è©•è«–" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:68 html/Work/Tickets/Update.html:35 +#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 msgid "Comments (Not sent to requestors)" msgstr "è©•è«–(ä¸é€çµ¦ç”³è«‹äºº)" -#: html/Search/Bulk.html:131 html/Work/Search/Bulk.html:83 +#: html/Search/Bulk.html:129 msgid "Comments (not sent to requestors)" msgstr "è©•è«–(ä¸é€çµ¦ç”³è«‹äºº)" -#: html/Elements/ViewUser:26 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Comments about %1" msgstr "å° %1 的評論" -#: html/Admin/Users/Modify.html:184 html/Edit/Users/Info:90 html/Ticket/Elements/ShowRequestor:43 +#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 msgid "Comments about this user" msgstr "使用者æè¿°" -#: lib/RT/Transaction_Overlay.pm:501 +#: lib/RT/Transaction_Overlay.pm:537 msgid "Comments added" msgstr "新增評論完畢" -#: html/Edit/Elements/PopFooter:4 html/Edit/Elements/PopFooter:6 +#: NOT FOUND IN SOURCE msgid "Commit" msgstr "確èª" -#: lib/RT/Action/Generic.pm:139 +#: lib/RT/Action/Generic.pm:149 msgid "Commit Stubbed" msgstr "消除更動完畢" @@ -1228,7 +1554,7 @@ msgstr "消除更動完畢" msgid "Company Name" msgstr "å…¬å¸å稱" -#: html/Edit/Global/Basic/Top:85 +#: NOT FOUND IN SOURCE msgid "CompanySpecific" msgstr "å„å…¬å¸ç¨ç«‹é¡¯ç¤º" @@ -1236,11 +1562,11 @@ msgstr "å„å…¬å¸ç¨ç«‹é¡¯ç¤º" msgid "Compile Restrictions" msgstr "設定查詢æ¢ä»¶" -#: html/Admin/Elements/EditScrip:40 html/Admin/Elements/ModifyTemplateAsWorkflow:127 +#: html/Admin/Elements/EditScrip:41 msgid "Condition" msgstr "æ¢ä»¶" -#: bin/rt-crontool:108 +#: bin/rt-crontool:105 msgid "Condition matches..." msgstr "ç¬¦åˆæ¢ä»¶..." @@ -1248,7 +1574,7 @@ msgstr "ç¬¦åˆæ¢ä»¶..." msgid "Condition not found" msgstr "未找到符åˆçš„ç¾æ³" -#: html/Edit/Global/GroupRight/Top:26 html/Edit/Global/UserRight/Top:45 html/Edit/Groups/Member:56 html/Elements/Tabs:49 +#: html/Elements/Tabs:52 msgid "Configuration" msgstr "設定" @@ -1260,7 +1586,7 @@ msgstr "確èªå¯†ç¢¼" msgid "Confirm Password" msgstr "密碼確èª" -#: html/Work/Approvals/Elements/Actions:6 html/Work/Tickets/Create.html:153 html/Work/Tickets/Create.html:167 html/Work/Tickets/Update.html:81 +#: NOT FOUND IN SOURCE msgid "Confirm Submit" msgstr "確定é€å‡º" @@ -1268,7 +1594,7 @@ msgstr "確定é€å‡º" msgid "Contact System Administrator" msgstr "連絡系統管ç†å“¡" -#: html/Admin/Elements/ModifyUser:59 +#: NOT FOUND IN SOURCE msgid "ContactInfoSystem" msgstr "連絡資訊系統" @@ -1276,15 +1602,19 @@ msgstr "連絡資訊系統" msgid "Contacted date '%1' could not be parsed" msgstr "無法解讀è¯çµ¡æ—¥æœŸ '%1'" -#: html/Admin/Elements/ModifyTemplate:43 html/Admin/Elements/ModifyTemplateAsWorkflow:200 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 msgid "Content" msgstr "內容" +#: html/Elements/SelectAttachmentField:27 +msgid "Content-Type" +msgstr "內容類型" + #: NOT FOUND IN SOURCE msgid "Coould not create group" msgstr "無法新增群組" -#: html/Edit/Elements/104Buttons:85 +#: html/Search/Elements/EditSearches:16 msgid "Copy" msgstr "複製" @@ -1292,15 +1622,15 @@ msgstr "複製" msgid "Copy Field From:" msgstr "欲複製欄ä½ï¼š" -#: etc/initialdata:271 +#: etc/initialdata:286 msgid "Correspondence" msgstr "回覆" -#: html/Admin/Elements/ModifyQueue:38 html/Admin/Queues/Modify.html:50 +#: NOT FOUND IN SOURCE msgid "Correspondence Address" msgstr "申請單回覆地å€" -#: lib/RT/Transaction_Overlay.pm:497 +#: lib/RT/Transaction_Overlay.pm:533 msgid "Correspondence added" msgstr "新增申請單回覆" @@ -1308,7 +1638,7 @@ msgstr "新增申請單回覆" msgid "Correspondence not recorded" msgstr "未紀錄申請單回覆" -#: lib/RT/Ticket_Overlay.pm:3620 +#: lib/RT/Ticket_Overlay.pm:3471 msgid "Could not add new custom field value for ticket. " msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值 " @@ -1316,31 +1646,28 @@ msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值 " msgid "Could not add new custom field value for ticket. %1 " msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值。%1 " -#: lib/RT/Ticket_Overlay.pm:3116 lib/RT/Ticket_Overlay.pm:3124 lib/RT/Ticket_Overlay.pm:3141 +#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 msgid "Could not change owner. " msgstr "ä¸èƒ½æ›´æ”¹æ‰¿è¾¦äººã€‚ " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 html/Edit/Global/CustomField/index.html:120 +#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 #. ($msg) msgid "Could not create CustomField" msgstr "無法新增自訂欄ä½" -#: html/Edit/Global/Workflow/index.html:126 -#. ($msg) +#: NOT FOUND IN SOURCE msgid "Could not create Scrip" msgstr "無法建立訊æ¯é€šçŸ¥" -#: html/Edit/Global/Template/index.html:110 -#. ($msg) +#: NOT FOUND IN SOURCE msgid "Could not create Template" msgstr "無法建立通知範本" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:473 lib/RT/Group_Overlay.pm:480 +#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 msgid "Could not create group" msgstr "無法新增群組" -#: html/Edit/Elements/Index:89 -#. ($msg) +#: NOT FOUND IN SOURCE msgid "Could not create item" msgstr "無法新增項目" @@ -1349,11 +1676,11 @@ msgstr "無法新增項目" msgid "Could not create template: %1" msgstr "無法新增範本:%1" -#: lib/RT/Ticket_Overlay.pm:1123 lib/RT/Ticket_Overlay.pm:358 +#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 msgid "Could not create ticket. Queue not set" msgstr "無法新增申請單。尚未指定表單。" -#: lib/RT/User_Overlay.pm:271 lib/RT/User_Overlay.pm:284 lib/RT/User_Overlay.pm:302 lib/RT/User_Overlay.pm:488 +#: 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 "無法新增使用者" @@ -1361,8 +1688,7 @@ msgstr "無法新增使用者" msgid "Could not create watcher for requestor" msgstr "無法為申請人新增視察員" -#: html/Admin/Elements/ModifyWorkflow:219 html/Admin/Global/Workflow.html:75 html/Admin/Queues/Workflow.html:71 -#. ($msg) +#: NOT FOUND IN SOURCE msgid "Could not create workflow: %1" msgstr "無法新增æµç¨‹ï¼š%1" @@ -1374,11 +1700,11 @@ msgstr "找ä¸åˆ°ç·¨è™Ÿ %1 的申請單" msgid "Could not find group %1." msgstr "找ä¸åˆ°ç¾¤çµ„ %1。" -#: lib/RT/Queue_Overlay.pm:621 lib/RT/Ticket_Overlay.pm:1454 +#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 msgid "Could not find or create that user" msgstr "找ä¸åˆ°æˆ–無法新增該å使用者" -#: lib/RT/Queue_Overlay.pm:682 lib/RT/Ticket_Overlay.pm:1533 +#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 msgid "Could not find that principal" msgstr "找ä¸åˆ°è©²å–®ä½" @@ -1386,35 +1712,42 @@ msgstr "找ä¸åˆ°è©²å–®ä½" msgid "Could not find user %1." msgstr "找ä¸åˆ°ä½¿ç”¨è€… %1。" +#: NOT FOUND IN SOURCE +msgid "Could not load CustomField %1" +msgstr "ç„¡æ³•è¼‰å…¥æ¬„ä½ %1" + #: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 msgid "Could not load group" msgstr "無法載入群組" -#: lib/RT/Queue_Overlay.pm:641 +#: lib/RT/Queue_Overlay.pm:682 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "無法將該單ä½è¨­ç‚ºæ­¤è¡¨å–®çš„ %1。" -#: lib/RT/Ticket_Overlay.pm:1475 +#: lib/RT/Ticket_Overlay.pm:1536 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "無法將該單ä½è¨­ç‚ºæ­¤ç”³è«‹å–®çš„ %1。" -#: lib/RT/Queue_Overlay.pm:740 +#: lib/RT/Queue_Overlay.pm:781 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "ç„¡æ³•å°‡å–®ä½ %1 從表單移除。" -#: lib/RT/Ticket_Overlay.pm:1591 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" msgstr "ç„¡æ³•å°‡å–®ä½ %1 從申請單移除。" -#: lib/RT/Group_Overlay.pm:976 +#: lib/RT/User_Overlay.pm:162 +msgid "Could not set user info" +msgstr "無法設定使用者資訊" + +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't add member to group" msgstr "無法新增æˆå“¡è‡³ç¾¤çµ„" -#: lib/RT/Ticket_Overlay.pm:3630 lib/RT/Ticket_Overlay.pm:3686 +#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "無法新增更動報告" @@ -1427,15 +1760,15 @@ msgstr "無法從 gpg 回函辨識出該採å–的行動\\n" msgid "Couldn't find group\\n" msgstr "找ä¸åˆ°ç¾¤çµ„\\n" -#: lib/RT/Interface/Web.pm:964 +#: lib/RT/Record.pm:748 msgid "Couldn't find row" msgstr "找ä¸åˆ°æ­¤åˆ—資料" -#: lib/RT/Group_Overlay.pm:950 +#: lib/RT/Group_Overlay.pm:951 msgid "Couldn't find that principal" msgstr "找ä¸åˆ°è©²å–®ä½" -#: lib/RT/CustomField_Overlay.pm:246 +#: lib/RT/CustomField_Overlay.pm:245 msgid "Couldn't find that value" msgstr "找ä¸åˆ°è©²å€¼" @@ -1447,11 +1780,19 @@ msgstr "找ä¸åˆ°è©²è¦–察員" msgid "Couldn't find user\\n" msgstr "找ä¸åˆ°ä½¿ç”¨è€…\\n" -#: lib/RT/CurrentUser.pm:111 +#: lib/RT/CurrentUser.pm:123 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "無法從使用者資料庫載入 %1。\\n" +#: NOT FOUND IN SOURCE +msgid "Couldn't load Class %1" +msgstr "無法載入類別 %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load CustomField %1" +msgstr "ç„¡æ³•è¼‰å…¥è‡ªè¨‚æ¬„ä½ %1" + #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." msgstr "無法載入 KeywordSelects。" @@ -1464,25 +1805,25 @@ msgstr "無法載入 RT 設定檔 '%1' %2" msgid "Couldn't load Scrips." msgstr "無法載入手續。" -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 html/Edit/Global/GroupRight/Add.html:55 html/Edit/Global/GroupRight/Add.html:60 html/Edit/Global/UserRight/Add.html:25 html/Edit/Global/UserRight/Add.html:30 html/Edit/Groups/Member:121 html/Edit/Groups/Members/Add.html:44 html/Edit/Rights/index.html:58 html/Edit/Rights/index.html:63 -#. ($ObjectGroup) -#. ($Report) -#. ($Group) +#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 #. ($id) msgid "Couldn't load group %1" msgstr "無法載入手續 %1" -#: lib/RT/Link_Overlay.pm:175 lib/RT/Link_Overlay.pm:184 lib/RT/Link_Overlay.pm:211 +#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 msgid "Couldn't load link" msgstr "無法載入éˆçµã€‚" +#: NOT FOUND IN SOURCE +msgid "Couldn't load object %1" +msgstr "無法載入物件 %1" + #: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 #. ($id) msgid "Couldn't load queue" msgstr "無法載入表單" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 html/Edit/Global/GroupRight/Add.html:51 html/Edit/Global/GroupRight/index.html:82 html/Edit/Global/GroupRight/index.html:87 html/Edit/Global/UserRight/Add.html:21 html/Edit/Global/UserRight/index.html:83 html/Edit/Global/UserRight/index.html:88 html/Edit/Rights/index.html:54 -#. ($Queue) +#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 #. ($id) msgid "Couldn't load queue %1" msgstr "無法載入表單 %1" @@ -1495,8 +1836,7 @@ msgstr "無法載入手續" msgid "Couldn't load template" msgstr "無法載入範本" -#: html/Admin/Users/Prefs.html:78 -#. ($id) +#: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" msgstr "無法載入該å使用者(%1)" @@ -1505,19 +1845,19 @@ msgstr "無法載入該å使用者(%1)" msgid "Couldn't load ticket '%1'" msgstr "無法載入申請單 '%1'" -#: html/Admin/Elements/ModifyUser:85 html/Admin/Users/Modify.html:148 html/User/Prefs.html:134 html/Work/Preferences/Info:92 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 msgid "Country" msgstr "國家" -#: html/Admin/Elements/CreateUserCalled:25 html/Edit/Elements/PopHeader:33 html/Edit/Global/GroupRight/Add.html:19 html/Ticket/Create.html:134 html/Ticket/Create.html:195 +#: 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 "新增" -#: html/Edit/Groups/MemberGroups/Add.html:17 +#: NOT FOUND IN SOURCE msgid "Create Subgroup:" msgstr "新增å­ç¾¤çµ„:" -#: etc/initialdata:127 +#: etc/initialdata:135 msgid "Create Tickets" msgstr "新增申請單" @@ -1525,6 +1865,10 @@ msgstr "新增申請單" msgid "Create User:" msgstr "新增æˆå“¡ï¼š" +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "" + #: html/Admin/Elements/EditCustomField:74 msgid "Create a CustomField" msgstr "新增自訂欄ä½" @@ -1542,6 +1886,10 @@ msgstr "為 %1 表單新增自訂欄ä½" msgid "Create a new Custom Field" msgstr "新增自訂欄ä½" +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "新增全域手續" @@ -1574,7 +1922,7 @@ msgstr "新增範本" msgid "Create a new ticket" msgstr "新增申請單" -#: html/Admin/Users/Modify.html:213 html/Admin/Users/Modify.html:242 +#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 msgid "Create a new user" msgstr "新增使用者" @@ -1607,10 +1955,18 @@ msgstr "新增範本" msgid "Create a ticket" msgstr "æå‡ºç”³è«‹å–®" -#: html/Admin/Elements/ModifyWorkflow:206 html/Admin/Global/Workflow.html:69 html/Admin/Queues/Workflow.html:64 +#: NOT FOUND IN SOURCE msgid "Create a workflow" msgstr "新增æµç¨‹" +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "" + #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "新增失敗:%1 / %2 / %3" @@ -1623,7 +1979,7 @@ msgstr "新增失敗:%1/%2/%3" msgid "Create new item" msgstr "建立新項目" -#: etc/initialdata:129 +#: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "便“šæ­¤é …æ‰‹çºŒå…§çš„æ¨¡ç‰ˆï¼Œæ–°å¢žç”³è«‹å–®" @@ -1631,15 +1987,15 @@ msgstr "便“šæ­¤é …æ‰‹çºŒå…§çš„æ¨¡ç‰ˆï¼Œæ–°å¢žç”³è«‹å–®" msgid "Create ticket" msgstr "新增申請單" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:86 msgid "Create tickets in this queue" msgstr "在此表單中新增申請單" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:73 msgid "Create, delete and modify custom fields" msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹è‡ªè¨‚欄ä½" -#: lib/RT/Queue_Overlay.pm:67 +#: lib/RT/Queue_Overlay.pm:69 msgid "Create, delete and modify queues" msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹è¡¨å–®" @@ -1655,11 +2011,11 @@ msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹ä»£ç†äººç¾¤çµ„" msgid "Create, delete and modify users" msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹ä½¿ç”¨è€…" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:86 msgid "CreateTicket" msgstr "新增申請單" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1217 +#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 msgid "Created" msgstr "新增日" @@ -1668,15 +2024,26 @@ msgstr "新增日" msgid "Created CustomField %1" msgstr "è‡ªè¨‚æ¬„ä½ %1 新增æˆåŠŸ" +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "範本 %1 新增æˆåŠŸ" -#: html/Admin/Elements/ModifyWorkflow:221 -#. (loc( $WorkflowObj->Name() )) +#: NOT FOUND IN SOURCE msgid "Created workflow %1" msgstr "æµç¨‹ %1 新增æˆåŠŸ" +#: html/Search/Elements/PickBasics:115 +msgid "Creator" +msgstr "建立者" + #: NOT FOUND IN SOURCE msgid "Currency" msgstr "幣別" @@ -1689,15 +2056,19 @@ msgstr "截至目å‰ç°½æ ¸è³‡è¨Š" msgid "Current Custom Fields" msgstr "ç¾æœ‰è‡ªè¨‚欄ä½" -#: html/Edit/Groups/MemberGroups/Add.html:14 +#: NOT FOUND IN SOURCE msgid "Current Groups:" msgstr "ç¾æœ‰ç¾¤çµ„列表:" -#: html/Ticket/Elements/EditLinks:27 html/Work/Tickets/Elements/EditLinks:10 -msgid "Current Relationships" +#: html/Elements/EditLinks:27 +msgid "Current Links" msgstr "ç¾æœ‰é—œä¿‚" -#: html/Edit/Rights/index.html:20 +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Current Rights:" msgstr "ç¾æœ‰æ¬Šé™ï¼š" @@ -1705,7 +2076,7 @@ msgstr "ç¾æœ‰æ¬Šé™ï¼š" msgid "Current Scrips" msgstr "ç¾æœ‰æ‰‹çºŒ" -#: html/Work/Tickets/Create.html:49 html/Work/Tickets/Elements/ShowBasics:47 +#: NOT FOUND IN SOURCE msgid "Current Status" msgstr "ç›®å‰ç‹€æ…‹" @@ -1713,7 +2084,7 @@ msgstr "ç›®å‰ç‹€æ…‹" msgid "Current Templates" msgstr "ç¾æœ‰ç¯„本" -#: html/Work/Tickets/Elements/EditPeople:9 +#: NOT FOUND IN SOURCE msgid "Current Watchers" msgstr "ç¾æœ‰è¦–察員" @@ -1725,11 +2096,11 @@ msgstr "ç¾æœ‰æˆå“¡" msgid "Current rights" msgstr "ç¾æœ‰æ¬Šé™" -#: html/Search/Listing.html:70 html/Work/Search/index.html:42 +#: NOT FOUND IN SOURCE msgid "Current search criteria" msgstr "ç¾æœ‰æŸ¥è©¢æ¢ä»¶" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 html/Work/Tickets/Elements/EditPeople:32 +#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 msgid "Current watchers" msgstr "ç¾æœ‰è¦–察員" @@ -1738,23 +2109,27 @@ msgstr "ç¾æœ‰è¦–察員" msgid "Custom Field #%1" msgstr "è‡ªè¨‚æ¬„ä½ #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Edit/Global/autohandler:7 html/Edit/Queues/autohandler:24 html/Ticket/Elements/ShowSummary:35 +#: 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 "自訂欄ä½" +#: NOT FOUND IN SOURCE +msgid "Custom Fields for %1" +msgstr "%1 的自訂欄ä½" + #: NOT FOUND IN SOURCE msgid "Custom Fields which apply to all queues" msgstr "é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„自訂欄ä½" -#: html/Admin/Elements/EditScrip:72 html/Edit/Global/Scrip/Top:69 +#: html/Admin/Elements/EditScrip:101 msgid "Custom action cleanup code" msgstr "動作後執行程å¼" -#: html/Admin/Elements/EditScrip:64 html/Edit/Global/Scrip/Top:62 +#: html/Admin/Elements/EditScrip:93 msgid "Custom action preparation code" msgstr "動作å‰åŸ·è¡Œç¨‹å¼" -#: html/Admin/Elements/EditScrip:48 html/Edit/Global/Scrip/Top:35 html/Edit/Global/Scrip/Top:61 +#: html/Admin/Elements/EditScrip:85 msgid "Custom condition" msgstr "自訂æ¢ä»¶" @@ -1763,6 +2138,10 @@ msgstr "自訂æ¢ä»¶" 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:1688 #. ($CF->Name) msgid "Custom field %1 has a value." @@ -1773,7 +2152,7 @@ msgstr "è‡ªè¨‚æ¬„ä½ %1 已有值" msgid "Custom field %1 has no value." msgstr "è‡ªè¨‚æ¬„ä½ %1 沒有值" -#: lib/RT/Ticket_Overlay.pm:3522 +#: lib/RT/Ticket_Overlay.pm:3373 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "找ä¸åˆ°è‡ªè¨‚æ¬„ä½ %1" @@ -1782,11 +2161,11 @@ msgstr "找ä¸åˆ°è‡ªè¨‚æ¬„ä½ %1" msgid "Custom field deleted" msgstr "自訂欄ä½å·²åˆªé™¤" -#: lib/RT/Ticket_Overlay.pm:3672 +#: lib/RT/Ticket_Overlay.pm:3523 msgid "Custom field not found" msgstr "找ä¸åˆ°è‡ªè¨‚欄ä½" -#: lib/RT/CustomField_Overlay.pm:356 +#: lib/RT/CustomField_Overlay.pm:355 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "ç„¡æ³•å¾žè‡ªè¨‚æ¬„ä½ %2 中找到 %1 這個欄ä½å€¼" @@ -1795,19 +2174,19 @@ msgstr "ç„¡æ³•å¾žè‡ªè¨‚æ¬„ä½ %2 中找到 %1 這個欄ä½å€¼" msgid "Custom field value changed from %1 to %2" msgstr "自訂欄ä½å€¼å¾ž %1 改為 %2" -#: lib/RT/CustomField_Overlay.pm:256 +#: lib/RT/CustomField_Overlay.pm:255 msgid "Custom field value could not be deleted" msgstr "無法刪除自訂欄ä½å€¼" -#: lib/RT/CustomField_Overlay.pm:362 +#: lib/RT/CustomField_Overlay.pm:361 msgid "Custom field value could not be found" msgstr "找ä¸åˆ°è‡ªè¨‚欄ä½å€¼" -#: lib/RT/CustomField_Overlay.pm:254 lib/RT/CustomField_Overlay.pm:364 +#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 msgid "Custom field value deleted" msgstr "自訂欄ä½å€¼åˆªé™¤æˆåŠŸ" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:145 html/Edit/Global/Workflow/Owner.html:98 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Vendor.pm:5 +#: lib/RT/Transaction_Overlay.pm:541 msgid "CustomField" msgstr "自訂欄ä½" @@ -1815,11 +2194,11 @@ msgstr "自訂欄ä½" msgid "Data error" msgstr "資料錯誤" -#: html/Edit/Global/Basic/Top:77 +#: NOT FOUND IN SOURCE msgid "DatabaseBindRemote" msgstr "容許外部連線" -#: html/Edit/Global/Basic/Top:75 +#: NOT FOUND IN SOURCE msgid "DatabaseName" msgstr "MySQL資料庫" @@ -1827,7 +2206,7 @@ msgstr "MySQL資料庫" msgid "Date of Departure" msgstr "出發日期" -#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:43 html/Work/Tickets/Elements/ShowTransaction:17 +#: 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 "日期" @@ -1851,31 +2230,39 @@ msgstr "é è¨­ç°½æ ¸" msgid "Default Autoresponse Template" msgstr "é è¨­è‡ªå‹•回應範本" -#: etc/initialdata:207 +#: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "é è¨­è‡ªå‹•回應範本" -#: html/Edit/Global/CustomField/Top:46 +#: html/Tools/Offline.html:39 +msgid "Default Queue" +msgstr "é è¨­è¡¨å–®" + +#: html/Tools/Offline.html:48 +msgid "Default Requestor" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Default Value" msgstr "é è¨­å€¼" -#: etc/initialdata:281 +#: etc/initialdata:296 msgid "Default admin comment template" msgstr "é è¨­ç®¡ç†å“¡è©•論範本" -#: etc/initialdata:260 +#: etc/initialdata:275 msgid "Default admin correspondence template" msgstr "é è¨­ç®¡ç†å“¡å›žè¦†ç¯„本" -#: etc/initialdata:272 +#: etc/initialdata:287 msgid "Default correspondence template" msgstr "é è¨­å›žè¦†ç¯„本" -#: etc/initialdata:238 +#: etc/initialdata:253 msgid "Default transaction template" msgstr "é è¨­æ›´å‹•範本" -#: lib/RT/Transaction_Overlay.pm:491 +#: lib/RT/Transaction_Overlay.pm:519 #. ($type, $self->Field, $self->OldValue, $self->NewValue) msgid "Default: %1/%2 changed from %3 to %4" msgstr "é è¨­ï¼š%1/%2 已自 %3 改為 %4" @@ -1912,7 +2299,7 @@ msgstr "代ç†è¡¨å–®ï¼š" msgid "Delegated Type" msgstr "代ç†è¡¨å–®ç¨®é¡ž" -#: html/Edit/Users/index.html:98 html/Work/Delegates/Info:31 html/Work/Delegates/List:8 html/Work/Elements/Tab:42 html/Work/Overview/Info:28 +#: NOT FOUND IN SOURCE msgid "Delegates" msgstr "代ç†äºº" @@ -1920,7 +2307,7 @@ msgstr "代ç†äºº" msgid "Delegates Enabled Status" msgstr "代ç†å•Ÿå‹•狀態" -#: html/Work/Delegates/Info:18 html/Work/Overview/Info:18 +#: NOT FOUND IN SOURCE msgid "Delegates Info" msgstr "代ç†äººè³‡è¨Š" @@ -1940,7 +2327,7 @@ msgstr "ä»£ç†æ¬Šé™ï¼š" msgid "Delegates Setting" msgstr "代ç†äººè¨­å®š" -#: html/Work/Delegates/Info:46 html/Work/Delegates/List:11 html/Work/Overview/Info:39 +#: NOT FOUND IN SOURCE msgid "Delegates Status" msgstr "代ç†ç‹€æ…‹" @@ -1956,31 +2343,39 @@ msgstr "代ç†äººç¾¤çµ„" msgid "Delegation Rights" msgstr "代ç†äººæ¬Šé™" -#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ModifyTemplateAsWorkflow:113 html/Edit/Elements/104Buttons:84 html/Work/Search/index.html:48 html/Work/Search/index.html:48 +#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 msgid "Delete" msgstr "刪除" +#: html/Admin/Elements/EditTemplates:57 +msgid "Delete Template" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "" + #: html/Admin/Elements/EditScrips:52 msgid "Delete selected scrips" msgstr "刪除指定的手續" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:91 msgid "Delete tickets" msgstr "刪除申請單" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:91 msgid "DeleteTicket" msgstr "刪除申請單" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:162 msgid "Deleting this object could break referential integrity" msgstr "刪除此物件å¯èƒ½ç ´å£žåƒè€ƒå®Œæ•´æ€§" -#: lib/RT/Queue_Overlay.pm:293 +#: lib/RT/Queue_Overlay.pm:329 msgid "Deleting this object would break referential integrity" msgstr "刪除此物件å¯èƒ½ç ´å£žåƒè€ƒå®Œæ•´æ€§" -#: lib/RT/User_Overlay.pm:504 +#: lib/RT/User_Overlay.pm:478 msgid "Deleting this object would violate referential integrity" msgstr "刪除此物件會é•ååƒè€ƒå®Œæ•´æ€§" @@ -2000,11 +2395,11 @@ msgstr "é§å›ž" msgid "Department" msgstr "部門" -#: html/Edit/Global/UserRight/List:12 html/Edit/Global/UserRight/Top:13 +#: NOT FOUND IN SOURCE msgid "Department ID" msgstr "部門代碼" -#: html/Edit/Global/UserRight/List:11 html/Edit/Global/UserRight/Top:49 html/Work/Delegates/Info:78 html/Work/Overview/Info:60 +#: NOT FOUND IN SOURCE msgid "Department Name" msgstr "部門å稱" @@ -2028,7 +2423,7 @@ msgstr "è«‹å‡å–®" msgid "Departure Until" msgstr "差旅截止日" -#: html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/EditLinks:105 html/Ticket/Elements/EditLinks:44 html/Ticket/Elements/ShowDependencies:31 html/Ticket/Elements/ShowLinks:36 html/Work/Search/BulkLinks:10 html/Work/Tickets/Elements/EditLinks:109 html/Work/Tickets/Elements/EditLinks:34 html/Work/Tickets/Elements/ShowLinks:21 +#: 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 "å¯æŽ¥çºŒè™•ç†çš„申請單" @@ -2036,27 +2431,27 @@ msgstr "å¯æŽ¥çºŒè™•ç†çš„申請單" msgid "Dependencies: \\n" msgstr "附屬性:\\n" -#: lib/RT/Transaction_Overlay.pm:585 +#: lib/RT/Transaction_Overlay.pm:621 #. ($value) msgid "Dependency by %1 added" msgstr "å·²åŠ å…¥å¯æŽ¥çºŒè™•ç†çš„申請單 %1" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:661 #. ($value) msgid "Dependency by %1 deleted" msgstr "å·²ç§»é™¤å¯æŽ¥çºŒè™•ç†çš„申請單 %1" -#: lib/RT/Transaction_Overlay.pm:582 +#: lib/RT/Transaction_Overlay.pm:618 #. ($value) msgid "Dependency on %1 added" msgstr "已加入需先處ç†çš„申請單 %1" -#: lib/RT/Transaction_Overlay.pm:622 +#: lib/RT/Transaction_Overlay.pm:658 #. ($value) msgid "Dependency on %1 deleted" msgstr "已移除需先處ç†çš„申請單 %1" -#: html/Elements/SelectLinkType:26 html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/EditLinks:101 html/Ticket/Elements/EditLinks:35 html/Ticket/Elements/ShowDependencies:24 html/Ticket/Elements/ShowLinks:26 html/Work/Search/BulkLinks:6 html/Work/Tickets/Elements/EditLinks:105 html/Work/Tickets/Elements/EditLinks:23 html/Work/Tickets/Elements/ShowLinks:16 +#: 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 "需先處ç†" @@ -2064,7 +2459,7 @@ msgstr "需先處ç†" msgid "DependsOn" msgstr "需先處ç†" -#: html/Elements/SelectSortOrder:34 +#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 msgid "Descending" msgstr "éžæ¸›" @@ -2072,7 +2467,7 @@ msgstr "éžæ¸›" msgid "Describe the issue below" msgstr "åœ¨ä»¥ä¸‹æ¬„ä½æè¿°ä¸»é¡Œ" -#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:33 html/Admin/Elements/ModifyQueue:35 html/Admin/Elements/ModifyTemplate:35 html/Admin/Elements/ModifyTemplateAsWorkflow:192 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Edit/Elements/SelectQueues:4 html/Edit/Global/Workflow/Action:13 html/Elements/SelectGroups:26 html/User/Groups/Modify.html:48 +#: 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 "æè¿°" @@ -2084,7 +2479,7 @@ msgstr "經辦業務說明" msgid "Description:" msgstr "æè¿°ï¼š" -#: html/Work/Tickets/Create.html:131 html/Work/Tickets/Create.html:84 html/Work/Tickets/Elements/EditCustomFields:13 html/Work/Tickets/Elements/EditCustomFields:61 html/Work/Tickets/Elements/ShowCustomFields:14 html/Work/Tickets/Elements/ShowCustomFields:53 +#: NOT FOUND IN SOURCE msgid "Details" msgstr "細節" @@ -2100,23 +2495,27 @@ msgstr "殘障身分" msgid "Disability Type" msgstr "殘障類別" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:17 html/Edit/Groups/Top:19 html/Edit/Queues/Basic/Top:69 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Work/Delegates/Info:48 html/Work/Delegates/Info:53 html/Work/Delegates/List:12 html/Work/Overview/Info:42 +#: NOT FOUND IN SOURCE msgid "Disabled" msgstr "åœç”¨" -#: html/Ticket/Elements/Tabs:90 +#: html/Ticket/Elements/Tabs:86 msgid "Display" msgstr "顯示內容" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:70 msgid "Display Access Control List" msgstr "é¡¯ç¤ºæ¬Šé™æŽ§åˆ¶æ¸…å–®" -#: lib/RT/Queue_Overlay.pm:74 +#: html/Search/Elements/DisplayOptions:25 +msgid "Display Columns" +msgstr "顯示欄ä½" + +#: lib/RT/Queue_Overlay.pm:76 msgid "Display Scrip templates for this queue" msgstr "顯示此表單的範本" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:79 msgid "Display Scrips for this queue" msgstr "顯示此表單的手續" @@ -2124,10 +2523,18 @@ msgstr "顯示此表單的手續" msgid "Display mode" msgstr "顯示模å¼" +#: lib/RT/Group_Overlay.pm:151 +msgid "Display saved searches for this group" +msgstr "顯示此群組已儲存的查詢" + #: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "顯示第%1號申請單" +#: html/Elements/Footer:38 +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:53 msgid "Do anything and everything" msgstr "å…許一切æ“作" @@ -2136,23 +2543,35 @@ msgstr "å…許一切æ“作" msgid "Don't refresh this page." msgstr "䏿›´æ–°æ­¤é é¢ã€‚" -#: html/Search/Elements/PickRestriction:114 html/Work/Search/PickRestriction:101 +#: NOT FOUND IN SOURCE msgid "Don't show search results" msgstr "ä¸é¡¯ç¤ºæŸ¥è©¢çµæžœ" -#: html/Edit/Elements/Page:19 html/Edit/Elements/Page:21 +#: NOT FOUND IN SOURCE +msgid "Done" +msgstr "完æˆ" + +#: NOT FOUND IN SOURCE msgid "Down" msgstr "下一é " -#: html/Ticket/Elements/ShowTransaction:111 +#: html/Ticket/Elements/ShowTransactionAttachments:60 msgid "Download" msgstr "下載" +#: NOT FOUND IN SOURCE +msgid "Download all the tickets as a tab delimited file" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Download as a tab-delimited file" +msgstr "下載以 Tab 分隔的檔案" + #: NOT FOUND IN SOURCE msgid "Dr." msgstr "åšå£«" -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:43 html/Work/Tickets/Elements/EditBasics:54 lib/RT/Ticket_Overlay.pm:1221 +#: 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 "到期日" @@ -2164,16 +2583,15 @@ msgstr "截止日" msgid "Due date '%1' could not be parsed" msgstr "無法解讀日期 '%1'" -#: bin/rt-commit-handler:753 -#. ($1, $msg) +#: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" msgstr "無法載入申請單 '%1':%2.\\n" -#: html/Work/Tickets/Update.html:48 +#: NOT FOUND IN SOURCE msgid "Edit" msgstr "編輯" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:132 +#: NOT FOUND IN SOURCE msgid "Edit Conditions" msgstr "編輯å‰ç½®æ¢ä»¶" @@ -2182,15 +2600,27 @@ msgstr "編輯å‰ç½®æ¢ä»¶" msgid "Edit Custom Fields for %1" msgstr "編輯 %1 的自訂欄ä½" +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Edit Custom Fields for queue %1" msgstr "編輯表單 %1 的自訂欄ä½" -#: html/Search/Bulk.html:143 html/Ticket/ModifyLinks.html:35 html/Work/Search/Bulk.html:93 -msgid "Edit Relationships" +#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +msgid "Edit Links" msgstr "編輯申請單關係" -#: html/Edit/Groups/MemberGroups/Add.html:3 html/Edit/Groups/MemberGroups/index.html:22 +#: html/Search/Edit.html:46 +msgid "Edit Query" +msgstr "編輯查詢" + +#: NOT FOUND IN SOURCE +msgid "Edit Relationships" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Edit Subgroups" msgstr "新增/ç¶­è­·å­ç¾¤çµ„" @@ -2199,8 +2629,7 @@ msgstr "新增/ç¶­è­·å­ç¾¤çµ„" msgid "Edit Templates for queue %1" msgstr "編輯表單 %1 的範本" -#: html/Admin/Queues/Workflows.html:42 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "Edit Workflows for queue %1" msgstr "編輯表單 %1 çš„æµç¨‹" @@ -2208,6 +2637,10 @@ msgstr "編輯表單 %1 çš„æµç¨‹" msgid "Edit keywords" msgstr "編輯關éµå­—" +#: lib/RT/Group_Overlay.pm:150 +msgid "Edit saved searches for this group" +msgstr "編輯此群組已儲存的查詢" + #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "編輯手續" @@ -2228,14 +2661,20 @@ msgstr "編輯 %1 的範本" msgid "Edit workflows for %1" msgstr "編輯 %1 çš„æµç¨‹" -#: html/Admin/Elements/ModifyQueue:24 html/Admin/Queues/Modify.html:118 +#: lib/RT/Group_Overlay.pm:150 +msgid "EditSavedSearches" +msgstr "編輯已儲存的查詢" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "" + +#: html/Admin/Queues/Modify.html:118 #. ($QueueObj->Name) -#. ($QueueObj->Id) msgid "Editing Configuration for queue %1" msgstr "編輯表單 %1 的設定" -#: html/Admin/Elements/ModifyUser:24 -#. ($UserObj->Name) +#: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" msgstr "編輯使用者 %1 的設定" @@ -2258,8 +2697,7 @@ msgstr "編輯代ç†äººç¾¤çµ„ %1 çš„æˆå“¡è³‡è¨Š" msgid "Editing template %1" msgstr "編輯範本 %1" -#: html/Admin/Elements/ModifyWorkflow:238 -#. (loc( $WorkflowObj->Name() )) +#: NOT FOUND IN SOURCE msgid "Editing workflow %1" msgstr "編輯æµç¨‹ %1" @@ -2271,27 +2709,27 @@ msgstr "最高學歷" msgid "EffectiveId" msgstr "有效編號" -#: lib/RT/Ticket_Overlay.pm:2681 lib/RT/Ticket_Overlay.pm:2759 +#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 msgid "Either base or target must be specified" msgstr "éœ€è¦æŒ‡å®šèµ·å§‹ç”³è«‹å–®æˆ–目的申請單" -#: html/Admin/Users/Modify.html:52 html/Admin/Users/Prefs.html:45 html/Edit/Elements/SelectUsers:4 html/Edit/Users/List:7 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 html/Work/Delegates/Info:96 html/Work/Overview/Info:78 +#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 msgid "Email" msgstr "é›»å­éƒµä»¶ä¿¡ç®±" -#: html/Work/Preferences/Info:16 +#: NOT FOUND IN SOURCE msgid "Email Address" msgstr "é›»å­éƒµä»¶ä¿¡ç®±" -#: lib/RT/User_Overlay.pm:251 +#: lib/RT/User_Overlay.pm:206 msgid "Email address in use" msgstr "此電å­éƒµä»¶ä¿¡ç®±å·²è¢«ä½¿ç”¨" -#: html/Admin/Elements/ModifyUser:41 +#: NOT FOUND IN SOURCE msgid "EmailAddress" msgstr "é›»å­éƒµä»¶ä¿¡ç®±ä½å€" -#: html/Admin/Elements/ModifyUser:53 +#: NOT FOUND IN SOURCE msgid "EmailEncoding" msgstr "é›»å­éƒµä»¶æ–‡å­—編碼方å¼" @@ -2311,6 +2749,10 @@ msgstr "抵é”地點" msgid "Enable Delegates" msgstr "代ç†å•Ÿå‹•" +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "" + #: html/Admin/Elements/EditCustomField:50 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "啟用(å–æ¶ˆå‹¾é¸å°‡åœç”¨æ­¤è‡ªè¨‚欄ä½)" @@ -2323,11 +2765,15 @@ msgstr "啟用(å–æ¶ˆå‹¾é¸å°‡åœç”¨æ­¤ç¾¤çµ„)" msgid "Enabled (Unchecking this box disables this queue)" msgstr "啟用(å–æ¶ˆå‹¾é¸å°‡åœç”¨æ­¤è¡¨å–®)" +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "" + #: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "已啟用的自訂欄ä½" -#: html/Edit/Queues/Basic/Top:74 html/Edit/Queues/List:17 html/Edit/Queues/List:29 +#: NOT FOUND IN SOURCE msgid "Enabled Date" msgstr "啟用日期" @@ -2339,15 +2785,19 @@ msgstr "啟動日期:" msgid "Enabled Queues" msgstr "已啟用的表單" -#: html/Edit/Queues/Basic/Top:65 html/Edit/Queues/List:13 html/Edit/Queues/List:25 +#: NOT FOUND IN SOURCE msgid "Enabled Status" msgstr "啟用狀態" -#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:284 html/User/Groups/Modify.html:116 +#: 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 "啟用狀態 %1" +#: NOT FOUND IN SOURCE +msgid "Enabled status: %1" +msgstr "啟用狀態: %1" + #: NOT FOUND IN SOURCE msgid "End of Trial" msgstr "試用期滿日" @@ -2356,27 +2806,47 @@ msgstr "試用期滿日" msgid "English Name" msgstr "英文姓å" -#: lib/RT/CustomField_Overlay.pm:434 +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:433 msgid "Enter multiple values" msgstr "éµå…¥å¤šé‡é …ç›®" -#: html/Edit/Users/Search.html:15 +#: html/Elements/EditLinks:99 +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 "è¼¸å…¥ä¸‹åˆ—å–®ä¸€æˆ–è¤‡å¼æ¢ä»¶ï¼ŒæŸ¥è©¢ç”¨æˆ¶è³‡æ–™" +msgstr "éµå…¥ä¸‹åˆ—å–®ä¸€æˆ–è¤‡å¼æ¢ä»¶ï¼ŒæŸ¥è©¢ç”¨æˆ¶è³‡æ–™" -#: lib/RT/CustomField_Overlay.pm:431 +#: lib/RT/CustomField_Overlay.pm:430 msgid "Enter one value" msgstr "éµå…¥å–®ä¸€é …ç›®" -#: html/Search/Bulk.html:144 html/Ticket/Elements/EditLinks:94 html/Work/Search/Bulk.html:95 html/Work/Tickets/Elements/EditLinks:98 +#: html/Elements/EditLinks:97 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "éµå…¥æ¬²å°‡è¡¨å–®é€£çµè‡³çš„物件或 URI。項目之間請以空白隔開。" + +#: html/Elements/EditLinks:95 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "éµå…¥æ¬²å°‡ç”³è«‹å–®é€£çµè‡³çš„物件或 URI。項目之間請以空白隔開。" + +#: html/Search/Bulk.html:142 msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." -msgstr "輸入申請單å¯éˆçµåˆ°çš„申請單編號或網å€ã€‚以空白隔開。" +msgstr "éµå…¥ç”³è«‹å–®å¯éˆçµåˆ°çš„申請單編號或網å€ã€‚項目之間請以空白隔開。" + +#: NOT FOUND IN SOURCE +msgid "Enter up to %1 values" +msgstr "éµå…¥æœ€å¤š %1 個值" -#: lib/RT/CustomField_Vendor.pm:20 +#: NOT FOUND IN SOURCE msgid "EntryBoolean" msgstr "是éžå¡«è¡¨" -#: lib/RT/CustomField_Vendor.pm:17 +#: NOT FOUND IN SOURCE msgid "EntryDate" msgstr "日期填表" @@ -2384,7 +2854,7 @@ msgstr "日期填表" msgid "EntryExternal" msgstr "系統填表" -#: lib/RT/CustomField_Vendor.pm:16 +#: NOT FOUND IN SOURCE msgid "EntryFreeform" msgstr "輸入填表" @@ -2392,15 +2862,15 @@ msgstr "輸入填表" msgid "EntryMultiple" msgstr "多é¸å¡«è¡¨" -#: lib/RT/CustomField_Vendor.pm:19 +#: NOT FOUND IN SOURCE msgid "EntryNumber" msgstr "數值填表" -#: lib/RT/CustomField_Vendor.pm:15 +#: NOT FOUND IN SOURCE msgid "EntrySelect" msgstr "å–®é¸å¡«è¡¨" -#: lib/RT/CustomField_Vendor.pm:18 +#: NOT FOUND IN SOURCE msgid "EntryTime" msgstr "時間填表" @@ -2412,31 +2882,47 @@ msgstr "錯誤" msgid "Error adding watcher" msgstr "新增視察員失敗" -#: lib/RT/Queue_Overlay.pm:555 +#: lib/RT/Queue_Overlay.pm:593 msgid "Error in parameters to Queue->AddWatcher" msgstr "表單->æ–°å¢žè¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: lib/RT/Queue_Overlay.pm:713 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" msgstr "表單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: lib/RT/Ticket_Overlay.pm:1407 +#: lib/RT/Queue_Overlay.pm:754 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:1468 msgid "Error in parameters to Ticket->AddWatcher" msgstr "申請單->æ–°å¢žè¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: lib/RT/Ticket_Overlay.pm:1564 +#: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" msgstr "申請單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: bin/rt-crontool:209 +#: lib/RT/Ticket_Overlay.pm:1630 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "" + +#: bin/rt-crontool:206 msgid "Escalate tickets" msgstr "調整申請單優先等級" +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "é è¨ˆ" + +#: html/Ticket/Elements/ShowBasics:35 +msgid "Estimated" +msgstr "é è¨ˆ" + #: etc/initialdata:20 msgid "Everyone" msgstr "所有人" -#: bin/rt-crontool:193 +#: bin/rt-crontool:190 msgid "Example:" msgstr "範例:" @@ -2444,47 +2930,55 @@ msgstr "範例:" msgid "Existing user renamed from %1 to %2" msgstr "ç¾æœ‰ä½¿ç”¨è€… %1 已改å為 %2" -#: html/Edit/Elements/104Buttons:88 +#: NOT FOUND IN SOURCE msgid "Export" msgstr "匯出" -#: html/Admin/Elements/ModifyUser:63 +#: NOT FOUND IN SOURCE msgid "ExternalAuthId" msgstr "外部èªè­‰å¸³è™Ÿ" -#: html/Admin/Elements/ModifyUser:57 +#: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" msgstr "外部è¯çµ¡æ–¹å¼å¸³è™Ÿ" -#: html/Edit/Global/Basic/Top:69 +#: NOT FOUND IN SOURCE msgid "ExternalDatabaseDSN" msgstr "外部資料庫連çµå­—串" -#: html/Edit/Global/Basic/Top:73 +#: NOT FOUND IN SOURCE msgid "ExternalDatabasePass" msgstr "外部資料庫密碼" -#: html/Edit/Global/Basic/Top:71 +#: NOT FOUND IN SOURCE msgid "ExternalDatabaseUser" msgstr "外部資料庫用戶" -#: html/Edit/Global/Basic/Top:67 +#: NOT FOUND IN SOURCE msgid "ExternalURL" msgstr "外部介é¢ç¶²å€" -#: html/Admin/Users/Modify.html:72 html/Edit/Users/Info:85 +#: html/Admin/Users/Modify.html:72 msgid "Extra info" msgstr "備註" -#: lib/RT/User_Overlay.pm:368 +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "" + +#: lib/RT/User_Overlay.pm:342 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "找ä¸åˆ°ã€Œå…§éƒ¨æˆå“¡ã€è™›æ“¬ç¾¤çµ„的使用者。" -#: lib/RT/User_Overlay.pm:375 +#: lib/RT/User_Overlay.pm:349 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "找ä¸åˆ°ã€Œéžå…§éƒ¨æˆå“¡ã€è™›æ“¬ç¾¤çµ„的使用者。" -#: bin/rt-crontool:137 +#: bin/rt-crontool:134 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "無法載入模組 %1. (%2)" @@ -2505,31 +2999,47 @@ msgstr "二月" msgid "Female" msgstr "女" -#: html/Edit/Global/CustomField/Info:14 +#: NOT FOUND IN SOURCE msgid "Field Content:" msgstr "欄ä½å…§å®¹ï¼š" -#: html/Edit/Global/CustomField/List:7 html/Edit/Global/CustomField/Top:20 +#: NOT FOUND IN SOURCE msgid "Field Description" msgstr "æ¬„ä½æè¿°" -#: html/Edit/Global/CustomField/List:6 html/Edit/Global/CustomField/Top:14 +#: NOT FOUND IN SOURCE msgid "Field Name" msgstr "欄ä½å稱" -#: html/Edit/Global/CustomField/List:5 html/Edit/Global/CustomField/Top:9 +#: NOT FOUND IN SOURCE msgid "Field Type" msgstr "欄ä½é¡žåˆ¥" -#: html/Edit/Elements/PickUsers:60 html/Edit/Users/Add.html:47 +#: html/Elements/SelectAttachmentField:28 +msgid "Filename" +msgstr "檔å" + +#: NOT FOUND IN SOURCE +msgid "Fill in multiple text areas" +msgstr "填入多個文字框" + +#: NOT FOUND IN SOURCE +msgid "Fill in one text area" +msgstr "填入一個文字框" + +#: NOT FOUND IN SOURCE +msgid "Fill in up to %1 text areas" +msgstr "填入最多 %1 個文字框" + +#: NOT FOUND IN SOURCE msgid "Filter" msgstr "篩é¸" -#: html/Edit/Elements/PickUsers:6 html/Edit/Users/Add.html:7 html/Work/Tickets/Cc:4 +#: NOT FOUND IN SOURCE msgid "Filter people" msgstr "å°è±¡ç¯©é¸" -#: html/Edit/Elements/PickUsers:76 html/Edit/Users/Add.html:63 html/Work/Tickets/Cc:42 +#: NOT FOUND IN SOURCE msgid "Filtered list:" msgstr "篩é¸åˆ—表:" @@ -2537,11 +3047,11 @@ msgstr "篩é¸åˆ—表:" msgid "Fin" msgstr "最終" -#: html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:58 html/Work/Tickets/Elements/EditBasics:52 lib/RT/Tickets_Overlay.pm:1152 +#: 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 "最終順ä½" -#: lib/RT/Ticket_Overlay.pm:1212 +#: lib/RT/Ticket_Overlay.pm:1274 msgid "FinalPriority" msgstr "最終順ä½" @@ -2549,39 +3059,43 @@ msgstr "最終順ä½" msgid "Financial Department:" msgstr "財務部:" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 html/Work/Tickets/Elements/EditPeople:18 +#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 msgid "Find group whose" msgstr "尋找群組的" +#: NOT FOUND IN SOURCE +msgid "Find groups whose" +msgstr "尋找群組的" + #: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "尋找/開啟申請單" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Edit/Users/Top:6 html/Ticket/Elements/EditPeople:29 html/Work/Tickets/Elements/EditPeople:14 +#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 msgid "Find people whose" msgstr "尋找人員的" -#: html/Edit/Queues/Top:6 +#: NOT FOUND IN SOURCE msgid "Find queues whose" msgstr "尋找表單的" -#: html/Search/Listing.html:107 html/Work/Search/index.html:88 +#: html/Search/Results.html:72 msgid "Find tickets" msgstr "尋找申請單" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:118 +#: NOT FOUND IN SOURCE msgid "Finish Approval" msgstr "簽核完畢" -#: html/Ticket/Elements/Tabs:63 +#: html/Ticket/Elements/Tabs:59 msgid "First" msgstr "第一項" -#: html/Search/Listing.html:40 html/Work/Search/index.html:17 +#: NOT FOUND IN SOURCE msgid "First page" msgstr "第一é " -#: html/Edit/Global/Workflow/Owner.html:30 +#: NOT FOUND IN SOURCE msgid "First-" msgstr "一" @@ -2605,32 +3119,36 @@ msgstr "甲 ä¹™ 丙" msgid "Foo!" msgstr "甲ï¼" -#: html/Search/Bulk.html:86 html/Work/Search/Bulk.html:55 +#: html/Search/Bulk.html:84 msgid "Force change" msgstr "強制更æ›" -#: html/Work/Elements/104Header:89 +#: NOT FOUND IN SOURCE msgid "Form Processing" msgstr "é›»å­è¡¨å–®ä½œæ¥­å€" -#: html/Search/Listing.html:105 html/Work/Search/index.html:86 +#: html/Search/Results.html:70 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "找到 %1 張申請單" -#: lib/RT/Interface/Web.pm:966 +#: lib/RT/Record.pm:750 msgid "Found Object" msgstr "已找到物件" -#: html/Edit/Global/Workflow/Owner.html:33 +#: NOT FOUND IN SOURCE msgid "Fourth-" msgstr "å››" -#: html/Admin/Elements/ModifyUser:43 +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "輸入" + +#: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "è¯çµ¡æ–¹å¼" -#: lib/RT/CustomField_Vendor.pm:11 +#: NOT FOUND IN SOURCE msgid "FreeformDate" msgstr "日期輸入" @@ -2642,11 +3160,11 @@ msgstr "系統欄ä½" msgid "FreeformMultiple" msgstr "多é‡è¼¸å…¥" -#: lib/RT/CustomField_Vendor.pm:13 +#: NOT FOUND IN SOURCE msgid "FreeformNumber" msgstr "數值輸入" -#: lib/RT/CustomField_Vendor.pm:14 +#: NOT FOUND IN SOURCE msgid "FreeformPassword" msgstr "密碼輸入" @@ -2654,7 +3172,7 @@ msgstr "密碼輸入" msgid "FreeformSingle" msgstr "單一輸入" -#: lib/RT/CustomField_Vendor.pm:12 +#: NOT FOUND IN SOURCE msgid "FreeformTime" msgstr "時間輸入" @@ -2678,11 +3196,15 @@ msgstr "登入帳號" msgid "Gender" msgstr "性別" +#: html/Tools/Offline.html:65 +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:551 +#: lib/RT/Transaction_Overlay.pm:587 #. ($New->Name) msgid "Given to %1" msgstr "交予 %1" @@ -2695,11 +3217,15 @@ msgstr "全域設定" msgid "Global Approval" msgstr "全域簽核" +#: NOT FOUND IN SOURCE +msgid "Global Custom Fields" +msgstr "全域自訂欄ä½" + #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" msgstr "全域關éµå­—é¸å–" -#: html/Edit/Users/System:24 +#: NOT FOUND IN SOURCE msgid "Global Rights:" msgstr "æ“æœ‰å…¨åŸŸæ¬Šé™åˆ—表:" @@ -2707,11 +3233,11 @@ msgstr "æ“æœ‰å…¨åŸŸæ¬Šé™åˆ—表:" msgid "Global Scrips" msgstr "全域手續" -#: html/Edit/Elements/Tab:40 +#: NOT FOUND IN SOURCE msgid "Global Setup" msgstr "全域設定" -#: html/Admin/Elements/SelectTemplate:37 html/Edit/Elements/SelectTemplate:11 +#: html/Admin/Elements/SelectTemplate:37 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "全域範本:%1" @@ -2720,7 +3246,11 @@ msgstr "全域範本:%1" msgid "GlobalApproval" msgstr "全域簽核" -#: html/Admin/Elements/EditCustomFields:73 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/Work/Tickets/Elements/EditPeople:16 html/Work/Tickets/Elements/EditPeople:20 html/index.html:40 +#: html/Tools/Offline.html:69 +msgid "Go" +msgstr "執行" + +#: 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 "執行" @@ -2728,19 +3258,19 @@ msgstr "執行" msgid "Good pgp sig from %1\\n" msgstr "%1 çš„ pgp 簽章是正確的\\n" -#: html/Search/Listing.html:49 +#: NOT FOUND IN SOURCE msgid "Goto page" msgstr "到é é¢" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 html/Work/Elements/104Header:49 +#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 msgid "Goto ticket" msgstr "跳到申請單" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:224 +#: NOT FOUND IN SOURCE msgid "Grand" msgstr "上" -#: html/Ticket/Elements/AddWatchers:45 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 msgid "Group" msgstr "群組" @@ -2752,7 +3282,7 @@ msgstr "群組 %1 %2:%3" msgid "Group Admin" msgstr "群組管ç†å“¡" -#: html/Edit/Global/GroupRight/List:5 html/Edit/Global/GroupRight/Top:20 html/Edit/Groups/List:8 +#: NOT FOUND IN SOURCE msgid "Group Description" msgstr "群組æè¿°" @@ -2764,7 +3294,7 @@ msgstr "群組管ç†" msgid "Group Members" msgstr "群組æˆå“¡" -#: html/Edit/Elements/PickUsers:30 html/Edit/Global/GroupRight/List:4 html/Edit/Global/GroupRight/Top:10 html/Edit/Groups/List:6 html/Edit/Groups/Top:7 html/Edit/Queues/Basic/Add.html:15 html/Edit/Users/Add.html:29 html/Edit/Users/Group:10 html/Edit/Users/Search.html:43 html/Work/Approvals/Add.html:16 html/Work/Delegates/Add.html:16 html/Work/Tickets/Cc:24 +#: NOT FOUND IN SOURCE msgid "Group Name" msgstr "群組å稱" @@ -2772,7 +3302,7 @@ msgstr "群組å稱" msgid "Group Name:" msgstr "群組å稱:" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 html/Edit/Global/autohandler:12 html/Edit/Queues/autohandler:29 html/Edit/Users/Group:11 html/Edit/Users/index.html:96 +#: 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 "群組權é™" @@ -2780,15 +3310,15 @@ msgstr "群組權é™" msgid "Group Rights:" msgstr "æ“æœ‰ç¾¤çµ„權é™åˆ—表:" -#: html/Edit/Elements/Tab:36 +#: NOT FOUND IN SOURCE msgid "Group Setup" msgstr "群組設定" -#: html/Edit/Global/GroupRight/List:8 html/Edit/Global/GroupRight/Top:14 html/Edit/Groups/List:16 html/Edit/Groups/Top:15 +#: NOT FOUND IN SOURCE msgid "Group Status" msgstr "群組狀態" -#: lib/RT/Group_Overlay.pm:956 +#: lib/RT/Group_Overlay.pm:957 msgid "Group already has member" msgstr "群組內已有此æˆå“¡" @@ -2801,7 +3331,7 @@ msgstr "無法新增群組" msgid "Group could not be created: %1" msgstr "無法新增群組:%1" -#: lib/RT/Group_Overlay.pm:496 +#: lib/RT/Group_Overlay.pm:497 msgid "Group created" msgstr "群組新增完畢" @@ -2809,11 +3339,11 @@ msgstr "群組新增完畢" msgid "Group created: %1" msgstr "群組 %1 新增完畢" -#: lib/RT/Group_Overlay.pm:1128 +#: lib/RT/Group_Overlay.pm:1129 msgid "Group has no such member" msgstr "群組沒有這個æˆå“¡" -#: lib/RT/Group_Overlay.pm:936 lib/RT/Queue_Overlay.pm:628 lib/RT/Queue_Overlay.pm:688 lib/RT/Ticket_Overlay.pm:1461 lib/RT/Ticket_Overlay.pm:1539 +#: 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 "找ä¸åˆ°ç¾¤çµ„" @@ -2837,7 +3367,7 @@ msgstr "群組 %1 已改å為 %2" msgid "Group with Queue Rights" msgstr "æ“æœ‰è¡¨å–®æ¬Šé™ç¾¤çµ„" -#: html/Edit/Global/Workflow/Owner.html:78 +#: NOT FOUND IN SOURCE msgid "Group's" msgstr "群組之" @@ -2845,23 +3375,31 @@ msgstr "群組之" msgid "Group:" msgstr "群組:" -#: 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/Edit/Global/GroupRight/Add.html:16 html/Edit/Groups/Admin:12 html/User/Groups/Members.html:66 +#: 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 "群組" -#: lib/RT/Group_Overlay.pm:962 +#: lib/RT/Group_Overlay.pm:963 msgid "Groups can't be members of their members" msgstr "ä¸èƒ½å°‡ç¾¤çµ„設為群組內æˆå“¡" +#: NOT FOUND IN SOURCE +msgid "Groups matching search criteria" +msgstr "ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„群組" + +#: NOT FOUND IN SOURCE +msgid "Groups this user belongs to" +msgstr "使用者所屬的群組" + #: NOT FOUND IN SOURCE msgid "Groups with Global Rights" msgstr "æ“æœ‰å…¨åŸŸæ¬Šé™ç¾¤çµ„" -#: html/Edit/Global/GroupRight/List:6 html/Edit/Global/GroupRight/Top:22 html/Edit/Groups/List:10 +#: NOT FOUND IN SOURCE msgid "HRMSDefined" msgstr "組織架構" -#: html/Edit/Global/CustomField/Top:57 +#: NOT FOUND IN SOURCE msgid "HTML Attributes" msgstr "HTML 屬性" @@ -2878,7 +3416,7 @@ msgstr "å—¨ï¼" msgid "Hello, %1" msgstr "嗨,%1" -#: html/Edit/Elements/104Top:28 +#: NOT FOUND IN SOURCE msgid "Help" msgstr "說明" @@ -2886,19 +3424,31 @@ msgstr "說明" msgid "Help Desks" msgstr "å„項業務窗å£" -#: html/Edit/Global/CustomField/SelectWritable:7 html/Edit/Queues/Basic/Top:80 +#: NOT FOUND IN SOURCE msgid "Hidden" msgstr "éš±è—" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:93 html/Work/Tickets/Elements/ShowHistory:8 +#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 msgid "History" msgstr "紀錄" -#: html/Admin/Elements/ModifyUser:67 +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "History of the group %1" +msgstr "群組 %1 的紀錄" + +#: NOT FOUND IN SOURCE +msgid "History of the user %1" +msgstr "使用者 %1 的紀錄" + +#: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "ä½è™•電話" -#: html/Edit/Elements/104Top:15 html/Edit/Elements/104Top:24 html/Edit/Elements/EDOMHeader:9 html/Elements/Tabs:43 +#: html/Elements/Tabs:43 msgid "Homepage" msgstr "主é " @@ -2911,6 +3461,10 @@ msgstr "ä½å®¿è²»" msgid "I have %quant(%1,concrete mixer)." msgstr "我有 %quant(%1,份固體攪拌器)。" +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "" + #: NOT FOUND IN SOURCE msgid "ID Number" msgstr "身分證號" @@ -2919,19 +3473,27 @@ msgstr "身分證號" msgid "ID Type" msgstr "身分類別" -#: html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1079 +#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 msgid "Id" msgstr "編號" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 html/Work/Preferences/Info:14 +#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 msgid "Identity" msgstr "身份" -#: etc/initialdata:411 etc/upgrade/2.1.71:86 html/Edit/Elements/CreateApprovalsQueue:58 +#: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "若簽核單é­åˆ°é§å›žï¼Œå‰‡é€£å¸¶é§å›žåŽŸç”³è«‹å–®ï¼Œä¸¦åˆªé™¤å…¶ä»–ç›¸é—œçš„å¾…ç°½æ ¸äº‹é …" -#: bin/rt-crontool:189 +#: html/Tools/Offline.html:52 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "" + +#: html/Tools/Offline.html:43 +msgid "If no queue is specified, create tickets in this queue." +msgstr "申請單若沒有指定表單,則將它新增在此表單內" + +#: 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 "如果此工具程å¼ç‚º setgid,惡æ„的本地端用戶å³èƒ½ç”±æ­¤å–å¾— RT 的管ç†å“¡æ¬Šé™ã€‚" @@ -2939,27 +3501,39 @@ msgstr "如果此工具程å¼ç‚º setgid,惡æ„的本地端用戶å³èƒ½ç”±æ­¤ msgid "If you've updated anything above, be sure to" msgstr "若您已更新以上資料,請記得按一下" -#: lib/RT/Interface/Web.pm:958 +#: lib/RT/Record.pm:742 msgid "Illegal value for %1" msgstr "%1 的值錯誤" -#: lib/RT/Interface/Web.pm:961 +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "圖片" + +#: lib/RT/Record.pm:745 msgid "Immutable field" msgstr "此欄ä½å€¼ä¸å¯æ›´å‹•" -#: html/Edit/Elements/104Buttons:87 html/Edit/Global/Workflow/Import.html:2 +#: NOT FOUND IN SOURCE msgid "Import" msgstr "匯入" +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "" + #: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "列出åœç”¨çš„自訂欄ä½" -#: html/Admin/Queues/index.html:42 html/Edit/Queues/Top:9 +#: html/Admin/Groups/index.html:37 +msgid "Include disabled groups in listing." +msgstr "列出åœç”¨çš„群組" + +#: html/Admin/Queues/index.html:42 msgid "Include disabled queues in listing." msgstr "列出åœç”¨çš„表單" -#: html/Admin/Users/index.html:46 html/Edit/Users/Search.html:62 html/Edit/Users/Top:9 +#: html/Admin/Users/index.html:46 msgid "Include disabled users in search." msgstr "列出åœç”¨çš„使用者" @@ -2967,15 +3541,15 @@ msgstr "列出åœç”¨çš„使用者" msgid "Indirect Employee" msgstr "直接/間接員工" -#: lib/RT/Tickets_Overlay.pm:1128 +#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 msgid "Initial Priority" msgstr "åˆå§‹å„ªå…ˆé †ä½" -#: lib/RT/Ticket_Overlay.pm:1211 lib/RT/Ticket_Overlay.pm:1213 +#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 msgid "InitialPriority" msgstr "åˆå§‹å„ªå…ˆé †ä½" -#: lib/RT/ScripAction_Overlay.pm:105 lib/RT/Workflow.pm:190 +#: lib/RT/ScripAction_Overlay.pm:97 msgid "Input error" msgstr "輸入錯誤" @@ -2983,16 +3557,16 @@ msgstr "輸入錯誤" msgid "Interest noted" msgstr "登記æˆåŠŸ" -#: lib/RT/Ticket_Overlay.pm:3931 +#: lib/RT/Ticket_Overlay.pm:3797 msgid "Internal Error" msgstr "內部錯誤" -#: lib/RT/Record.pm:143 +#: lib/RT/Record.pm:186 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "內部錯誤:%1" -#: lib/RT/Group_Overlay.pm:643 +#: lib/RT/Group_Overlay.pm:644 msgid "Invalid Group Type" msgstr "錯誤的群組類別" @@ -3004,11 +3578,11 @@ msgstr "錯誤的權é™" msgid "Invalid Type" msgstr "錯誤的類型" -#: lib/RT/Interface/Web.pm:963 +#: lib/RT/Record.pm:747 msgid "Invalid data" msgstr "錯誤的資料" -#: lib/RT/Ticket_Overlay.pm:468 +#: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." msgstr "錯誤的承辦人。改為é è¨­æ‰¿è¾¦äººã€Œnobodyã€ã€‚" @@ -3020,16 +3594,16 @@ msgstr "錯誤的表單" msgid "Invalid right" msgstr "錯誤的權é™" -#: lib/RT/Record.pm:118 +#: lib/RT/Record.pm:161 #. ($key) msgid "Invalid value for %1" msgstr "%1 的值錯誤" -#: lib/RT/Ticket_Overlay.pm:3529 +#: lib/RT/Ticket_Overlay.pm:3380 msgid "Invalid value for custom field" msgstr "錯誤的自訂欄ä½å€¼" -#: lib/RT/Ticket_Overlay.pm:370 +#: lib/RT/Ticket_Overlay.pm:385 msgid "Invalid value for status" msgstr "錯誤的狀態值" @@ -3037,15 +3611,15 @@ msgstr "錯誤的狀態值" msgid "IssueStatement" msgstr "é€å‡ºé™³è¿°" -#: bin/rt-crontool:190 +#: bin/rt-crontool:187 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "請絕å°ä¸è¦è®“未具權é™çš„使用者執行此工具程å¼ã€‚" -#: bin/rt-crontool:191 +#: 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 "建議您新增一個隸屬於正確群組的低權é™ç³»çµ±ä½¿ç”¨è€…,並以該身份執行此工具程å¼ã€‚" -#: bin/rt-crontool:162 +#: bin/rt-crontool:159 msgid "It takes several arguments:" msgstr "它接å—ä¸‹åˆ—åƒæ•¸ï¼š" @@ -3093,7 +3667,7 @@ msgstr "07" msgid "July" msgstr "七月" -#: html/Ticket/Elements/Tabs:104 +#: html/Ticket/Elements/Tabs:100 msgid "Jumbo" msgstr "全部資訊" @@ -3113,43 +3687,47 @@ msgstr "六月" msgid "Keyword" msgstr "é—œéµå­—" -#: lib/RT/CustomField_Vendor.pm:23 +#: NOT FOUND IN SOURCE msgid "LabelAttachments" msgstr "附件標籤" -#: lib/RT/CustomField_Vendor.pm:24 +#: NOT FOUND IN SOURCE msgid "LabelContent" msgstr "內容標籤" -#: lib/RT/CustomField_Vendor.pm:22 +#: NOT FOUND IN SOURCE msgid "LabelSubject" msgstr "主題標籤" -#: lib/RT/CustomField_Vendor.pm:21 +#: NOT FOUND IN SOURCE msgid "LabelURL" msgstr "éˆçµæ¨™ç±¤" -#: html/Admin/Elements/ModifyUser:51 +#: NOT FOUND IN SOURCE msgid "Lang" msgstr "使用語言" -#: html/User/Prefs.html:54 html/Work/Preferences/Info:32 +#: html/User/Prefs.html:54 msgid "Language" msgstr "語言" -#: html/Ticket/Elements/Tabs:78 +#: html/Ticket/Elements/Tabs:74 msgid "Last" msgstr "上次更新" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 html/Work/Tickets/Elements/EditBasics:44 +#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 msgid "Last Contact" msgstr "上次è¯çµ¡" +#: NOT FOUND IN SOURCE +msgid "Last Contact</a>" +msgstr "" + #: html/Elements/SelectDateType:28 msgid "Last Contacted" msgstr "上次è¯çµ¡æ—¥æœŸ" -#: html/Search/Elements/TicketHeader:40 html/Work/Search/TicketHeader:19 +#: NOT FOUND IN SOURCE msgid "Last Notified" msgstr "上次通知" @@ -3161,15 +3739,19 @@ msgstr "上次更新" msgid "LastUpdated" msgstr "上次更新" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:116 +msgid "LastUpdatedBy" +msgstr "上次更新者" + +#: html/Ticket/Elements/ShowBasics:46 msgid "Left" msgstr "剩餘時間" -#: html/Admin/Users/Modify.html:82 html/Edit/Users/Info:107 +#: html/Admin/Users/Modify.html:82 msgid "Let this user access RT" msgstr "å…許這å使用者登入" -#: html/Admin/Users/Modify.html:86 html/Edit/Users/Info:113 +#: html/Admin/Users/Modify.html:86 msgid "Let this user be granted rights" msgstr "內部æˆå“¡ï¼ˆå…·æœ‰å€‹äººæ¬Šé™ï¼‰" @@ -3181,29 +3763,29 @@ msgstr "é™åˆ¶æ‰¿è¾¦äººç‚º %1 到%2" msgid "Limiting queue to %1 %2" msgstr "é™åˆ¶è¡¨å–®ç‚º %1 到 %2" -#: html/Work/Queues/Select.html:4 +#: NOT FOUND IN SOURCE msgid "Link a Queue" msgstr "申請表單連çµ" -#: lib/RT/Ticket_Overlay.pm:2773 +#: lib/RT/Record.pm:1086 msgid "Link already exists" msgstr "æ­¤éˆçµå·²å­˜åœ¨" -#: lib/RT/Ticket_Overlay.pm:2785 +#: lib/RT/Record.pm:1100 msgid "Link could not be created" msgstr "無法新增éˆçµ" -#: lib/RT/Ticket_Overlay.pm:2793 lib/RT/Ticket_Overlay.pm:2805 +#: lib/RT/Record.pm:1106 #. ($TransString) msgid "Link created (%1)" msgstr "éˆçµ(%1)新增完畢" -#: lib/RT/Ticket_Overlay.pm:2706 +#: lib/RT/Record.pm:1167 #. ($TransString) msgid "Link deleted (%1)" msgstr "éˆçµ(%1)刪除完畢" -#: lib/RT/Ticket_Overlay.pm:2712 +#: lib/RT/Record.pm:1173 msgid "Link not found" msgstr "找ä¸åˆ°éˆçµ" @@ -3216,41 +3798,53 @@ msgstr "éˆçµç”³è«‹å–® #%1" msgid "Link ticket %1" msgstr "éˆçµç”³è«‹å–® %1" -#: html/Ticket/Elements/Tabs:102 +#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 msgid "Links" msgstr "éˆçµ" -#: html/Edit/Users/Search.html:11 +#: NOT FOUND IN SOURCE msgid "List All Users" msgstr "列出所有用戶資料" -#: html/Admin/Users/Modify.html:113 html/User/Prefs.html:107 html/Work/Preferences/Info:78 +#: html/Search/Elements/EditSearches:26 +msgid "Load" +msgstr "載入" + +#: html/Search/Elements/EditSearches:24 +msgid "Load saved search:" +msgstr "載入已儲存的查詢:" + +#: html/Admin/Tools/Configuration.html:19 +msgid "Loaded perl modules" +msgstr "已載入的 Perl 模組" + +#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 msgid "Location" msgstr "ä½ç½®" -#: lib/RT.pm:174 +#: lib/RT.pm:184 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "登入目錄 %1 找ä¸åˆ°æˆ–無法寫入\\n。無法執行 RT。" -#: html/Edit/Global/Basic/Top:57 +#: NOT FOUND IN SOURCE msgid "LogToFile" msgstr "紀錄等級" -#: html/Edit/Global/Basic/Top:59 +#: NOT FOUND IN SOURCE msgid "LogToFileNamed" msgstr "紀錄檔å" -#: html/Elements/Header:57 +#: html/Elements/Header:69 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "使用者:%1" -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:60 lib/RT/StyleGuide.pod:777 +#: 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 "登入" -#: html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:17 html/Edit/Elements/104Top:32 html/Elements/Header:54 +#: html/Elements/Header:66 msgid "Logout" msgstr "登出" @@ -3258,43 +3852,47 @@ msgstr "登出" msgid "Long-term contractor" msgstr "長期契約員工" -#: html/Search/Bulk.html:85 html/Work/Search/Bulk.html:54 +#: NOT FOUND IN SOURCE +msgid "Lookup type mismatch" +msgstr "å°æ‡‰çš„類別ä¸ç¬¦" + +#: html/Search/Bulk.html:83 msgid "Make Owner" msgstr "新增承辦人" -#: html/Search/Bulk.html:109 html/Work/Search/Bulk.html:63 +#: html/Search/Bulk.html:107 msgid "Make Status" msgstr "æ–°å¢žç¾æ³" -#: html/Search/Bulk.html:117 html/Work/Search/Bulk.html:75 +#: html/Search/Bulk.html:115 msgid "Make date Due" msgstr "新增到期日" -#: html/Search/Bulk.html:119 html/Work/Search/Bulk.html:78 +#: html/Search/Bulk.html:117 msgid "Make date Resolved" msgstr "新增解決日期" -#: html/Search/Bulk.html:113 html/Work/Search/Bulk.html:69 +#: html/Search/Bulk.html:111 msgid "Make date Started" msgstr "新增實際起始日期" -#: html/Search/Bulk.html:111 html/Work/Search/Bulk.html:66 +#: html/Search/Bulk.html:109 msgid "Make date Starts" msgstr "新增應起始日期" -#: html/Search/Bulk.html:115 html/Work/Search/Bulk.html:72 +#: html/Search/Bulk.html:113 msgid "Make date Told" msgstr "新增報告日期" -#: html/Search/Bulk.html:105 html/Work/Search/Bulk.html:57 +#: html/Search/Bulk.html:103 msgid "Make priority" msgstr "新增優先順ä½" -#: html/Search/Bulk.html:107 html/Work/Search/Bulk.html:60 +#: html/Search/Bulk.html:105 msgid "Make queue" msgstr "新增表單" -#: html/Search/Bulk.html:103 html/Work/Search/Bulk.html:59 +#: html/Search/Bulk.html:101 msgid "Make subject" msgstr "新增主題" @@ -3302,6 +3900,14 @@ msgstr "新增主題" msgid "Male" msgstr "ç”·" +#: NOT FOUND IN SOURCE +msgid "Malkovich Malkovich Malkovich Malkovich" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Manage custom fields and custom field values" +msgstr "管ç†è‡ªè¨‚欄ä½åŠæ¬„ä½å€¼" + #: html/Admin/index.html:32 msgid "Manage groups and group membership" msgstr "管ç†ç¾¤çµ„åŠæ‰€å±¬æˆå“¡" @@ -3338,7 +3944,7 @@ msgstr "三月" msgid "Marketing Department" msgstr "行銷部" -#: html/Edit/Global/CustomField/Top:63 +#: NOT FOUND IN SOURCE msgid "Match Pattern" msgstr "ç¬¦åˆæ¨£å¼" @@ -3350,25 +3956,25 @@ msgstr "五月" msgid "May." msgstr "05" -#: lib/RT/Transaction_Overlay.pm:598 +#: lib/RT/Transaction_Overlay.pm:634 #. ($value) msgid "Member %1 added" msgstr "æˆå“¡ %1 新增完畢" -#: lib/RT/Transaction_Overlay.pm:638 +#: lib/RT/Transaction_Overlay.pm:674 #. ($value) msgid "Member %1 deleted" msgstr "æˆå“¡ %1 刪除完畢" -#: lib/RT/Group_Overlay.pm:973 +#: lib/RT/Group_Overlay.pm:974 msgid "Member added" msgstr "新增æˆå“¡å®Œç•¢" -#: lib/RT/Group_Overlay.pm:1135 +#: lib/RT/Group_Overlay.pm:1136 msgid "Member deleted" msgstr "æˆå“¡å·²åˆªé™¤" -#: lib/RT/Group_Overlay.pm:1139 +#: lib/RT/Group_Overlay.pm:1140 msgid "Member not deleted" msgstr "æˆå“¡æœªåˆªé™¤" @@ -3376,7 +3982,7 @@ msgstr "æˆå“¡æœªåˆªé™¤" msgid "Member of" msgstr "隸屬於" -#: html/Edit/Users/Info:23 html/Work/Preferences/index.html:19 +#: NOT FOUND IN SOURCE msgid "Member since" msgstr "註冊日期" @@ -3384,78 +3990,130 @@ msgstr "註冊日期" msgid "MemberOf" msgstr "隸屬於" -#: html/Admin/Elements/GroupTabs:41 html/Admin/Elements/ModifyTemplateAsWorkflow:232 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 msgid "Members" msgstr "æˆå“¡" -#: lib/RT/Transaction_Overlay.pm:595 +#: lib/RT/Transaction_Overlay.pm:631 #. ($value) msgid "Membership in %1 added" msgstr "所屬群組 %1 加入完畢" -#: lib/RT/Transaction_Overlay.pm:635 +#: lib/RT/Transaction_Overlay.pm:671 #. ($value) msgid "Membership in %1 deleted" msgstr "所屬群組 %1 移除完畢" -#: lib/RT/Ticket_Overlay.pm:2962 +#: NOT FOUND IN SOURCE +msgid "Memberships" +msgstr "所屬群組" + +#: NOT FOUND IN SOURCE +msgid "Memberships of the user %1" +msgstr "使用者 %1 的所屬群組" + +#: lib/RT/Ticket_Overlay.pm:2813 msgid "Merge Successful" msgstr "æ•´åˆå®Œç•¢" -#: lib/RT/Ticket_Overlay.pm:2882 +#: lib/RT/Ticket_Overlay.pm:2733 msgid "Merge failed. Couldn't set EffectiveId" msgstr "æ•´åˆå¤±æ•—。無法設定 EffectiveId" -#: html/Ticket/Elements/BulkLinks:26 html/Ticket/Elements/EditLinks:97 html/Work/Search/BulkLinks:2 html/Work/Tickets/Elements/EditLinks:101 +#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 msgid "Merge into" msgstr "æ•´åˆé€²" -#: lib/RT/Transaction_Overlay.pm:601 +#: lib/RT/Transaction_Overlay.pm:637 #. ($value) msgid "Merged into %1" msgstr "已整åˆé€² %1" -#: html/Search/Bulk.html:137 html/Ticket/Update.html:100 +#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 msgid "Message" msgstr "訊æ¯" -#: html/Ticket/Elements/ShowTransaction:88 +#: NOT FOUND IN SOURCE msgid "Message body not shown because it is too large or is not plain text." msgstr "ä¿¡ä»¶å…§æ–‡ä¸æ˜¯ç´”文字,因此無法顯示。" +#: lib/RT/Ticket_Overlay.pm:2514 +msgid "Message could not be recorded" +msgstr "無法紀錄訊æ¯" + +#: NOT FOUND IN SOURCE +msgid "Message recipients" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2517 +msgid "Message recorded" +msgstr "訊æ¯ç´€éŒ„æˆåŠŸ" + +#: html/Ticket/Elements/PreviewScrips:70 +msgid "Messages about this ticket will not be sent to..." +msgstr "此申請單的相關訊æ¯ä¸æœƒå¯„é€çµ¦..." + #: NOT FOUND IN SOURCE msgid "Misc. Expense" msgstr "雜費" -#: lib/RT/Interface/Web.pm:965 +#: lib/RT/Record.pm:749 msgid "Missing a primary key?: %1" msgstr "缺少主éµå€¼ï¼Ÿ(%1)" -#: html/Work/Tickets/Create.html:180 +#: NOT FOUND IN SOURCE msgid "Missing mandatory fields" msgstr "缺少必填欄ä½" -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:71 html/Work/Preferences/Info:41 +#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 msgid "Mobile" msgstr "行動電話" -#: html/Admin/Elements/ModifyUser:71 +#: NOT FOUND IN SOURCE msgid "MobilePhone" msgstr "行動電話" -#: lib/RT/Queue_Overlay.pm:69 +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:71 msgid "Modify Access Control List" msgstr "æ›´æ”¹æ¬Šé™æŽ§åˆ¶æ¸…å–®" +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all %1" +msgstr "更改é©ç”¨æ–¼æ‰€æœ‰%1的自訂欄ä½" + #: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 msgid "Modify Custom Fields which apply to all queues" msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„自訂欄ä½" -#: lib/RT/Queue_Overlay.pm:72 +#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +msgid "Modify Group Rights" +msgstr "" + +#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +msgid "Modify Members" +msgstr "" + +#: html/User/Delegation.html:36 +msgid "Modify Rights" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:74 msgid "Modify Scrip templates for this queue" msgstr "更改此表單的範本" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:77 msgid "Modify Scrips for this queue" msgstr "更改此表單的手續" @@ -3467,6 +4125,10 @@ msgstr "æ›´æ”¹ç³»çµ±æ¬Šé™æ¸…å–®" msgid "Modify Template %1" msgstr "更改範本 %1" +#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +msgid "Modify User Rights" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Modify Workflow" msgstr "更改æµç¨‹" @@ -3489,6 +4151,14 @@ msgstr "更改 %1 表單內的手續" msgid "Modify a scrip which applies to all queues" msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æ‰‹çºŒ" +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Modify associated objects for %1" +msgstr "更改é©ç”¨ %1 的物件" + #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "更改 # %1 的日期" @@ -3535,10 +4205,14 @@ msgstr "更改全域設定的使用者權é™ã€‚" msgid "Modify group metadata or delete group" msgstr "更改群組資料åŠåˆªé™¤ç¾¤çµ„" +#: NOT FOUND IN SOURCE +msgid "Modify group rights for custom field %1" +msgstr "æ›´æ”¹è‡ªè¨‚æ¬„ä½ %1 的群組權é™" + #: 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 "更改 %1 的群組權é™" +msgstr "更改群組 %1 的群組權é™" #: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 #. ($QueueObj->Name) @@ -3588,11 +4262,11 @@ msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„範本" msgid "Modify the group %1" msgstr "更改群組 %1" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:72 msgid "Modify the queue watchers" msgstr "更改表單視察員" -#: html/Admin/Users/Modify.html:237 +#: html/Admin/Users/Modify.html:263 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "更改使用者 %1" @@ -3607,10 +4281,14 @@ msgstr "更改申請單 # %1" msgid "Modify ticket #%1" msgstr "更改申請單 # %1" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:90 msgid "Modify tickets" msgstr "更改申請單" +#: NOT FOUND IN SOURCE +msgid "Modify user rights for custom field %1" +msgstr "æ›´æ”¹è‡ªè¨‚æ¬„ä½ %1 的使用者權é™" + #: 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" @@ -3625,17 +4303,15 @@ msgstr "更改表單 %1 的使用者權é™" msgid "Modify watchers for queue '%1'" msgstr "更改 '%1' 的視察員" -#: html/Admin/Global/Workflow.html:25 html/Admin/Global/Workflow.html:30 html/Admin/Global/Workflow.html:81 html/Admin/Queues/Workflow.html:77 -#. (loc($WorkflowObj->Name())) -#. ($WorkflowObj->id) +#: NOT FOUND IN SOURCE msgid "Modify workflow %1" msgstr "更改æµç¨‹ %1" -#: html/Admin/Global/Workflows.html:44 +#: NOT FOUND IN SOURCE msgid "Modify workflows which apply to all queues" msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æµç¨‹" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:71 msgid "ModifyACL" msgstr "æ›´æ”¹æ¬Šé™æ¸…å–®" @@ -3643,11 +4319,11 @@ msgstr "æ›´æ”¹æ¬Šé™æ¸…å–®" msgid "ModifyOwnMembership" msgstr "更改自己是å¦å±¬æ–¼æŸç¾¤çµ„" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:72 msgid "ModifyQueueWatchers" msgstr "更改表單視察員" -#: lib/RT/Queue_Overlay.pm:75 +#: lib/RT/Queue_Overlay.pm:77 msgid "ModifyScrips" msgstr "更改手續" @@ -3655,11 +4331,11 @@ msgstr "更改手續" msgid "ModifySelf" msgstr "更改個人帳號" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:74 msgid "ModifyTemplate" msgstr "更改範本" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:90 msgid "ModifyTicket" msgstr "更改申請單" @@ -3671,11 +4347,11 @@ msgstr "星期一" msgid "Mon." msgstr "星期一" -#: html/Work/Elements/MyRequests:11 html/Work/Elements/MyTickets:11 +#: NOT FOUND IN SOURCE msgid "More" msgstr "更多" -#: html/Ticket/Elements/ShowRequestor:41 +#: html/Ticket/Elements/ShowRequestor:40 #. ($name) msgid "More about %1" msgstr "關於 %1 的進一步資訊" @@ -3684,7 +4360,11 @@ msgstr "關於 %1 的進一步資訊" msgid "Morning Shift" msgstr "æ—©ç­" -#: html/Edit/Elements/ListButtons:16 +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "移動" + +#: NOT FOUND IN SOURCE msgid "Move All" msgstr "全移" @@ -3700,7 +4380,7 @@ msgstr "上移" msgid "Multiple" msgstr "多é‡" -#: lib/RT/User_Overlay.pm:242 +#: lib/RT/User_Overlay.pm:197 msgid "Must specify 'Name' attribute" msgstr "必須指定 'Name' 的屬性" @@ -3709,15 +4389,15 @@ msgstr "必須指定 'Name' 的屬性" msgid "My %1 tickets" msgstr "我的 %1 申請單" -#: html/Work/Elements/Tab:38 +#: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "表單簽核" -#: html/Work/Elements/Tab:36 +#: NOT FOUND IN SOURCE msgid "My Requests" msgstr "表單申請追蹤" -#: html/Work/Elements/Tab:40 +#: NOT FOUND IN SOURCE msgid "My Tickets" msgstr "表單處ç†" @@ -3725,14 +4405,22 @@ msgstr "表單處ç†" msgid "My approvals" msgstr "表單簽核" -#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Elements/ModifyTemplateAsWorkflow:185 html/Admin/Elements/ModifyUser:29 html/Admin/Groups/Modify.html:43 html/Edit/Elements/SelectQueues:3 html/Edit/Queues/List:8 html/Edit/Users/Add.html:22 html/Edit/Users/List:5 html/Edit/Users/Search.html:31 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 html/Work/Tickets/Cc:18 +#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +msgid "My saved searches" +msgstr "我已儲存的查詢" + +#: 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 "å稱" -#: lib/RT/User_Overlay.pm:249 +#: lib/RT/User_Overlay.pm:204 msgid "Name in use" msgstr "帳號已有人使用" +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Nationality" msgstr "國ç±" @@ -3745,34 +4433,50 @@ msgstr "需先由系統管ç†å“¡é€²è¡Œæ‰¹å‡†" msgid "Never" msgstr "從未更動" -#: html/Elements/Quicksearch:29 html/Work/Elements/Quicksearch:15 html/Work/Tickets/Create.html:53 +#: html/Elements/Quicksearch:29 msgid "New" msgstr "新建立" -#: html/Admin/Elements/ModifyUser:31 html/Admin/Users/Modify.html:92 html/Edit/Users/Info:46 html/User/Prefs.html:87 html/Work/Preferences/Info:52 +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "" + +#: html/Elements/EditLinks:93 +msgid "New Links" +msgstr "新增關係" + +#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 msgid "New Password" msgstr "新的密碼" -#: etc/initialdata:317 etc/upgrade/2.1.71:16 html/Edit/Elements/CreateApprovalsQueue:21 +#: etc/initialdata:332 msgid "New Pending Approval" msgstr "新的待簽核事項" -#: html/Ticket/Elements/EditLinks:93 html/Work/Tickets/Elements/EditLinks:12 +#: html/Ticket/Elements/Tabs:170 +msgid "New Query" +msgstr "新增查詢" + +#: NOT FOUND IN SOURCE msgid "New Relationships" -msgstr "新增關係" +msgstr "" -#: html/Work/Elements/Tab:34 +#: NOT FOUND IN SOURCE msgid "New Request" msgstr "表單申請" -#: html/Ticket/Elements/Tabs:35 +#: NOT FOUND IN SOURCE msgid "New Search" msgstr "新增查詢" -#: html/Work/Tickets/Elements/EditPeople:7 +#: NOT FOUND IN SOURCE msgid "New Watchers" msgstr "新增視察員" +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "" + #: 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 "新增自訂欄ä½" @@ -3785,7 +4489,7 @@ msgstr "新增群組" msgid "New password" msgstr "新的密碼" -#: lib/RT/User_Overlay.pm:769 +#: lib/RT/User_Overlay.pm:773 msgid "New password notification sent" msgstr "é€å‡ºæ–°å¯†ç¢¼é€šçŸ¥" @@ -3805,7 +4509,7 @@ msgstr "新增權é™" msgid "New scrip" msgstr "新增手續" -#: html/Work/Search/index.html:62 +#: NOT FOUND IN SOURCE msgid "New search" msgstr "釿–°æŸ¥è©¢" @@ -3817,11 +4521,11 @@ msgstr "新增範本" msgid "New ticket" msgstr "æå‡ºç”³è«‹å–®" -#: lib/RT/Ticket_Overlay.pm:2849 +#: lib/RT/Ticket_Overlay.pm:2700 msgid "New ticket doesn't exist" msgstr "沒有新申請單" -#: html/Admin/Elements/UserTabs:51 +#: html/Admin/Elements/UserTabs:50 msgid "New user" msgstr "新增使用者" @@ -3833,27 +4537,31 @@ msgstr "新使用者åå­—" msgid "New watchers" msgstr "新視察員" -#: html/Admin/Users/Prefs.html:41 +#: NOT FOUND IN SOURCE msgid "New window setting" msgstr "更新視窗設定" -#: html/Admin/Global/Workflow.html:60 html/Admin/Global/Workflows.html:39 html/Admin/Queues/Workflow.html:57 html/Admin/Queues/Workflows.html:50 +#: NOT FOUND IN SOURCE msgid "New workflow" msgstr "新增æµç¨‹" -#: html/Ticket/Elements/Tabs:74 +#: html/Ticket/Elements/Tabs:70 msgid "Next" msgstr "下一項" -#: html/Search/Listing.html:47 html/Work/Search/index.html:24 +#: html/Elements/TicketList:67 +msgid "Next Page" +msgstr "下一é " + +#: NOT FOUND IN SOURCE msgid "Next page" msgstr "下一é " -#: html/Admin/Elements/ModifyUser:49 +#: NOT FOUND IN SOURCE msgid "NickName" msgstr "暱稱" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 html/Work/Preferences/Info:29 +#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 msgid "Nickname" msgstr "暱稱" @@ -3861,23 +4569,35 @@ msgstr "暱稱" msgid "Night Shift" msgstr "å°å¤œç­" -#: html/Edit/Global/Basic/Top:27 html/Edit/Queues/Basic/Top:83 +#: NOT FOUND IN SOURCE msgid "No" msgstr "å¦" +#: NOT FOUND IN SOURCE +msgid "No Class defined" +msgstr "尚未定義類別" + #: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 msgid "No CustomField" msgstr "無自訂欄ä½" +#: NOT FOUND IN SOURCE +msgid "No CustomField defined" +msgstr "尚未定義自訂欄ä½" + #: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 msgid "No Group defined" msgstr "尚未定義群組" +#: lib/RT/Tickets_Overlay_SQL.pm:452 +msgid "No Query" +msgstr "沒有查詢" + #: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 msgid "No Queue defined" -msgstr "沒有定義好的表單" +msgstr "尚未定義表單" -#: bin/rt-crontool:55 +#: bin/rt-crontool:52 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "找ä¸åˆ° RT ä½¿ç”¨è€…ã€‚è«‹å‘ RT 管ç†å“¡æŸ¥è©¢ã€‚\\n" @@ -3885,7 +4605,7 @@ msgstr "找ä¸åˆ° RT ä½¿ç”¨è€…ã€‚è«‹å‘ RT 管ç†å“¡æŸ¥è©¢ã€‚\\n" msgid "No Template" msgstr "沒有範本" -#: bin/rt-commit-handler:763 +#: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " msgstr "未指定申請單。退出申請單 " @@ -3893,7 +4613,7 @@ msgstr "未指定申請單。退出申請單 " msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "未指定申請單。退出申請單更改\\n\\n" -#: html/Admin/Elements/ModifyWorkflow:237 html/Admin/Global/Workflow.html:79 html/Admin/Queues/Workflow.html:75 +#: NOT FOUND IN SOURCE msgid "No Workflow" msgstr "沒有æµç¨‹" @@ -3901,7 +4621,7 @@ msgstr "沒有æµç¨‹" msgid "No action" msgstr "æš«ä¸è™•ç†" -#: lib/RT/Interface/Web.pm:960 +#: lib/RT/Record.pm:744 msgid "No column specified" msgstr "未指定欄ä½" @@ -3909,37 +4629,44 @@ msgstr "未指定欄ä½" msgid "No command found\\n" msgstr "找ä¸åˆ°å‘½ä»¤" -#: html/Elements/ViewUser:35 html/Ticket/Elements/ShowRequestor:44 +#: html/Ticket/Elements/ShowRequestor:46 msgid "No comment entered about this user" msgstr "沒有å°é€™å使用者的評論" -#: lib/RT/Ticket_Overlay.pm:2237 lib/RT/Ticket_Overlay.pm:2307 +#: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "沒有附上申請單回覆" -#: lib/RT/Action/Generic.pm:149 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: 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 "æ²’æœ‰å° %1 çš„æè¿°" -#: lib/RT/Users_Overlay.pm:163 +#: lib/RT/Users_Overlay.pm:159 msgid "No group specified" msgstr "未指定群組" -#: lib/RT/User_Overlay.pm:987 +#: NOT FOUND IN SOURCE +msgid "No groups matching search criteria found." +msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„群組。" + +#: lib/RT/Ticket_Overlay.pm:2475 +msgid "No message attached" +msgstr "沒有附上訊æ¯" + +#: lib/RT/User_Overlay.pm:991 msgid "No password set" msgstr "沒有設定密碼" -#: lib/RT/Queue_Overlay.pm:260 +#: lib/RT/Queue_Overlay.pm:296 msgid "No permission to create queues" msgstr "沒有新增表單的權é™" -#: lib/RT/Ticket_Overlay.pm:366 -#. ($QueueObj->Name) +#: NOT FOUND IN SOURCE msgid "No permission to create tickets in the queue '%1'" msgstr "沒有在表單 '%1' 新增申請單的權é™" -#: lib/RT/User_Overlay.pm:208 +#: lib/RT/User_Overlay.pm:157 msgid "No permission to create users" msgstr "沒有新增使用者的權é™" @@ -3951,7 +4678,7 @@ msgstr "沒有顯示該申請單的權é™" msgid "No permission to view update ticket" msgstr "沒有檢視申請單更新的權é™" -#: lib/RT/Queue_Overlay.pm:675 lib/RT/Ticket_Overlay.pm:1520 +#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 msgid "No principal specified" msgstr "未指定單ä½" @@ -3975,15 +4702,19 @@ msgstr "找ä¸åˆ°æ¬Šé™" msgid "No rights granted." msgstr "沒有é¸å®šæ¬Šé™" -#: html/Search/Bulk.html:160 html/Work/Search/Bulk.html:117 +#: html/Search/Bulk.html:162 msgid "No search to operate on." msgstr "沒有è¦é€²è¡Œçš„æŸ¥è©¢" +#: html/Elements/TicketList:155 +msgid "No subject" +msgstr "沒有標題" + #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "未指定申請單編號" -#: lib/RT/Transaction_Overlay.pm:427 lib/RT/Transaction_Overlay.pm:465 +#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 msgid "No transaction type specified" msgstr "未指定更動報告類別" @@ -3995,19 +4726,19 @@ msgstr "未指定使用者或電å­éƒµä»¶åœ°å€" msgid "No users matching search criteria found." msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„使用者。" -#: bin/rt-commit-handler:643 +#: 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/Interface/Web.pm:957 +#: lib/RT/Record.pm:741 msgid "No value sent to _Set!\\n" msgstr "_Set 沒有收到任何值!\\n" -#: html/Search/Elements/TicketRow:36 html/Work/Search/TicketRow:9 +#: html/Elements/QuickCreate:16 msgid "Nobody" msgstr "沒有人" -#: lib/RT/Interface/Web.pm:962 +#: lib/RT/Record.pm:746 msgid "Nonexistant field?" msgstr "欄ä½ä¸å­˜åœ¨ï¼Ÿ" @@ -4023,7 +4754,7 @@ msgstr "未設定æˆå¾ž %2 å…§æ“·å– %1" msgid "Not logged in" msgstr "尚未登入" -#: html/Elements/Header:59 +#: html/Elements/Header:71 msgid "Not logged in." msgstr "尚未登入" @@ -4039,7 +4770,7 @@ msgstr "尚未完工。" msgid "Not yet implemented...." msgstr "尚未完工..." -#: html/Approvals/Elements/Approve:48 html/Work/Tickets/Elements/AddContent:9 +#: html/Approvals/Elements/Approve:48 msgid "Notes" msgstr "備註" @@ -4047,23 +4778,31 @@ msgstr "備註" msgid "Notes:" msgstr "備註:" -#: lib/RT/User_Overlay.pm:772 +#: lib/RT/User_Overlay.pm:776 msgid "Notification could not be sent" msgstr "無法é€å‡ºé€šçŸ¥" -#: etc/initialdata:93 +#: etc/initialdata:101 msgid "Notify AdminCcs" msgstr "通知管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:89 +#: etc/initialdata:97 msgid "Notify AdminCcs as Comment" msgstr "以評論方å¼é€šçŸ¥ç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:120 +#: 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:116 +#: etc/initialdata:124 msgid "Notify Other Recipients as Comment" msgstr "以評論方å¼é€šçŸ¥å…¶ä»–收件人" @@ -4075,19 +4814,19 @@ msgstr "通知承辦人" msgid "Notify Owner as Comment" msgstr "以評論方å¼é€šçŸ¥æ‰¿è¾¦äºº" -#: etc/initialdata:361 +#: etc/initialdata:376 msgid "Notify Owner of their rejected ticket" msgstr "通知承辦人申請單已é§å›ž" -#: etc/initialdata:350 +#: etc/initialdata:365 msgid "Notify Owner of their ticket has been approved by all approvers" msgstr "通知承辦人申請單已完æˆå…¨éƒ¨ç°½æ ¸" -#: etc/initialdata:338 +#: etc/initialdata:353 msgid "Notify Owner of their ticket has been approved by some approver" msgstr "é€šçŸ¥æ‰¿è¾¦äººç”³è«‹å–®å·²å®ŒæˆæŸé …簽核" -#: etc/initialdata:319 etc/upgrade/2.1.71:17 html/Edit/Elements/CreateApprovalsQueue:22 +#: etc/initialdata:334 msgid "Notify Owners and AdminCcs of new items pending their approval" msgstr "æ•´ç†å¾…簽核事項,通知承辦人åŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" @@ -4095,23 +4834,23 @@ msgstr "æ•´ç†å¾…簽核事項,通知承辦人åŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" msgid "Notify Requestors" msgstr "通知申請人" -#: etc/initialdata:103 +#: etc/initialdata:111 msgid "Notify Requestors and Ccs" msgstr "通知申請人åŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:98 +#: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" msgstr "以評論方å¼é€šçŸ¥ç”³è«‹äººåŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:112 +#: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" msgstr "通知申請人ã€å‰¯æœ¬åŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:108 +#: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "以評論方å¼é€šçŸ¥ç”³è«‹äººã€å‰¯æœ¬åŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Work/Tickets/Cc:55 +#: NOT FOUND IN SOURCE msgid "Notify people:" msgstr "通知å°è±¡" @@ -4127,22 +4866,30 @@ msgstr "11" msgid "November" msgstr "å一月" -#: html/Edit/Global/Basic/Top:83 +#: NOT FOUND IN SOURCE msgid "OIN104" msgstr "104eHRMS 介é¢" -#: html/Edit/Global/Workflow/Export.html:30 html/Work/Copyright.html:23 +#: NOT FOUND IN SOURCE msgid "OK" msgstr "確定" -#: lib/RT/Record.pm:157 +#: lib/RT/Record.pm:200 msgid "Object could not be created" msgstr "無法新增物件" -#: lib/RT/Record.pm:181 +#: lib/RT/Record.pm:219 msgid "Object created" msgstr "物件新增完畢" +#: NOT FOUND IN SOURCE +msgid "Object of type %1 cannot take custom fields" +msgstr "自訂欄ä½ä¸é©ç”¨æ–¼é¡žåˆ¥ç‚º %1 的物件" + +#: NOT FOUND IN SOURCE +msgid "Object type mismatch" +msgstr "物件類別ä¸ç¬¦" + #: NOT FOUND IN SOURCE msgid "Occupation Status" msgstr "在è·ç‹€æ…‹" @@ -4163,43 +4910,59 @@ msgstr "åæœˆ" msgid "Office Phone" msgstr "辦公室電話" +#: html/Tools/Elements/Tabs:31 +msgid "Offline" +msgstr "離線" + +#: html/Tools/Offline.html:27 +msgid "Offline edits" +msgstr "離線編輯" + +#: html/Tools/Offline.html:24 +msgid "Offline upload" +msgstr "離線上載" + #: html/Elements/SelectDateRelation:34 msgid "On" msgstr "等於" -#: html/Edit/Global/CustomField/Top:71 +#: NOT FOUND IN SOURCE msgid "On Change" msgstr "更改申請單時" -#: etc/initialdata:155 +#: etc/initialdata:163 msgid "On Comment" msgstr "評論時" -#: etc/initialdata:148 +#: etc/initialdata:156 msgid "On Correspond" msgstr "回覆申請單時" -#: etc/initialdata:137 html/Edit/Global/CustomField/Top:69 +#: etc/initialdata:145 msgid "On Create" msgstr "新增申請單時" -#: etc/initialdata:169 +#: etc/initialdata:184 msgid "On Owner Change" msgstr "承辦人改變時" -#: etc/initialdata:177 +#: 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:183 +#: etc/initialdata:198 msgid "On Resolve" msgstr "解決申請單時" -#: etc/initialdata:161 +#: etc/initialdata:169 msgid "On Status Change" msgstr "ç¾æ³æ”¹è®Šæ™‚" -#: etc/initialdata:142 +#: etc/initialdata:150 msgid "On Transaction" msgstr "發生更動時" @@ -4213,27 +4976,31 @@ msgstr "僅顯示 %1 之後新增的申請單" msgid "Only show approvals for requests created before %1" msgstr "僅顯示 %1 之剿–°å¢žçš„申請單" -#: html/Edit/Global/GroupRight/List:9 html/Edit/Global/GroupRight/Top:16 html/Edit/Groups/List:17 html/Edit/Groups/Top:18 html/Edit/Queues/Basic/Top:68 html/Edit/Queues/List:15 html/Edit/Queues/List:27 html/Elements/Quicksearch:30 html/Work/Delegates/Info:48 html/Work/Delegates/Info:51 html/Work/Delegates/List:12 html/Work/Elements/Quicksearch:16 html/Work/Overview/Info:41 html/Work/Tickets/Display.html:51 +#: html/Elements/Quicksearch:30 msgid "Open" msgstr "開啟" -#: html/Ticket/Elements/Tabs:141 +#: html/Ticket/Elements/Tabs:137 msgid "Open it" msgstr "開啟" +#: NOT FOUND IN SOURCE +msgid "Open requests" +msgstr "" + #: html/SelfService/Elements/Tabs:41 msgid "Open tickets" msgstr "開啟的申請單" -#: html/Admin/Users/Prefs.html:40 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" msgstr "在新視窗開啟(列表的)申請單" -#: html/Admin/Users/Prefs.html:39 +#: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" msgstr "在å¦ä¸€å€‹è¦–窗開啟(列表的)申請單" -#: etc/initialdata:132 +#: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "收到回覆時å³é–‹å•Ÿç”³è«‹å–®" @@ -4245,19 +5012,23 @@ msgstr "已申請é‹è¡Œä¸­è¡¨å–®" msgid "Opinion" msgstr "æ„見" -#: html/Edit/Global/CustomField/Info:35 +#: NOT FOUND IN SOURCE msgid "Option Description" msgstr "é¸é …æè¿°" -#: html/Edit/Global/CustomField/Info:29 +#: NOT FOUND IN SOURCE msgid "Option Name" msgstr "é¸é …å稱" -#: html/Search/Elements/PickRestriction:101 html/Work/Search/PickRestriction:87 +#: html/Search/Elements/DisplayOptions:35 +msgid "Order by" +msgstr "æŽ’åºæ–¹å¼" + +#: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "é †åºèˆ‡æŽ’åºæ–¹å¼" -#: html/Admin/Elements/ModifyUser:45 html/Admin/Users/Modify.html:116 html/Edit/Elements/SelectUsers:7 html/Edit/Global/Basic/Top:55 html/Elements/SelectUsers:28 html/User/Prefs.html:110 html/Work/Preferences/Info:80 +#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 msgid "Organization" msgstr "組織å稱" @@ -4270,11 +5041,23 @@ msgstr "組織:" msgid "Originating ticket: #%1" msgstr "原申請單:#%1" -#: html/Edit/Elements/PickUsers:119 html/Edit/Users/Add.html:106 html/Work/Tickets/Cc:80 +#: NOT FOUND IN SOURCE msgid "Other comma-delimited email addresses" msgstr "å…¶ä»–e-mail帳號 (僅e-mail通知;多筆帳號請用逗號','å€éš”)" -#: html/Admin/Elements/ModifyQueue:54 html/Admin/Queues/Modify.html:68 html/Edit/Queues/Basic/Top:44 +#: NOT FOUND IN SOURCE +msgid "Out of range" +msgstr "期é™å¤–" + +#: lib/RT/Transaction_Overlay.pm:525 +msgid "Outgoing email about a comment recorded" +msgstr "已紀錄發é€çš„評論郵件" + +#: lib/RT/Transaction_Overlay.pm:529 +msgid "Outgoing email recorded" +msgstr "已紀錄發é€çš„郵件" + +#: html/Admin/Queues/Modify.html:68 msgid "Over time, priority moves toward" msgstr "優先順ä½éš¨æ™‚間增加調整為" @@ -4282,28 +5065,27 @@ msgstr "優先順ä½éš¨æ™‚間增加調整為" msgid "Override current custom fields with fields from %1" msgstr "以 %1 表單的自訂欄ä½å–ä»£ç¾æœ‰æ¬„ä½" -#: html/Admin/Elements/CheckOverrideGlobalACL:25 +#: NOT FOUND IN SOURCE msgid "Override global rights" msgstr "å–代全域權é™" -#: html/Admin/Elements/CheckOverrideGlobalACL:36 -#. (loc_fuzzy($msg)) +#: NOT FOUND IN SOURCE msgid "OverrideGlobalACL status %1" msgstr "å–ä»£å…¨åŸŸæ¬Šé™ %1" -#: html/Work/Elements/Tab:32 +#: NOT FOUND IN SOURCE msgid "Overview" msgstr "總覽" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:89 msgid "Own tickets" msgstr "承辦申請單" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:89 msgid "OwnTicket" msgstr "承辦申請單" -#: etc/initialdata:38 html/Admin/Elements/ModifyTemplateAsWorkflow:141 html/Edit/Global/Workflow/Owner.html:19 html/Edit/Queues/Basic/Top:51 html/Edit/Queues/Basic/Top:59 html/Elements/MyRequests:31 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:62 html/Work/Elements/MyRequests:23 html/Work/Elements/Quicksearch:18 html/Work/Tickets/Elements/EditPeople:28 html/Work/Tickets/Elements/ShowBasics:21 html/Work/Tickets/Update.html:27 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1305 +#: 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 "承辦人" @@ -4311,40 +5093,49 @@ msgstr "承辦人" msgid "Owner changed from %1 to %2" msgstr "承辦人已從 %1 改為 %2" -#: lib/RT/Transaction_Overlay.pm:539 +#: lib/RT/Ticket_Overlay.pm:467 +msgid "Owner could not be set." +msgstr "無法設定承辦人。" + +#: lib/RT/Transaction_Overlay.pm:575 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "強制將承辦人從 %1 改為 %2" -#: html/Search/Elements/PickRestriction:30 html/Work/Search/PickRestriction:10 +#: NOT FOUND IN SOURCE msgid "Owner is" msgstr "承辦人" -#: html/Work/Elements/List:31 html/Work/Queues/List:9 html/Work/Tickets/Create.html:55 html/Work/Tickets/Elements/ShowBasics:60 +#: NOT FOUND IN SOURCE msgid "Owner's Phone" msgstr "承辦人電話" -#: html/Edit/Elements/Page:38 +#: NOT FOUND IN SOURCE msgid "Page #" msgstr " " -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:75 html/Work/Preferences/Info:43 +#: html/Elements/TicketList:45 +#. ($Page, int($TotalFound/$Rows)+1) +msgid "Page %1 of %2" +msgstr "第 %1/%2 é " + +#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 msgid "Pager" msgstr "呼å«å™¨" -#: html/Admin/Elements/ModifyUser:73 +#: NOT FOUND IN SOURCE msgid "PagerPhone" msgstr "呼å«å™¨è™Ÿç¢¼" -#: html/Edit/Global/Workflow/Action:76 html/Edit/Global/Workflow/Condition:66 +#: NOT FOUND IN SOURCE msgid "Parameter" msgstr "呼å«åƒæ•¸" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:225 +#: NOT FOUND IN SOURCE msgid "Parent" msgstr "上級" -#: html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 html/Ticket/Elements/EditLinks:109 html/Ticket/Elements/EditLinks:54 html/Ticket/Elements/ShowLinks:46 html/Work/Search/BulkLinks:14 html/Work/Tickets/Elements/EditLinks:113 html/Work/Tickets/Elements/EditLinks:45 html/Work/Tickets/Elements/ShowLinks:26 +#: 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 "æ¯ç”³è«‹å–®" @@ -4352,7 +5143,7 @@ msgstr "æ¯ç”³è«‹å–®" msgid "Park Space" msgstr "åœè»Šä½ç”³è«‹" -#: html/Elements/Login:55 html/User/Prefs.html:83 html/Work/Preferences/Info:49 +#: html/Elements/Login:52 html/User/Prefs.html:83 msgid "Password" msgstr "密碼" @@ -4360,20 +5151,20 @@ msgstr "密碼" msgid "Password Reminder" msgstr "密碼æç¤º" -#: lib/RT/User_Overlay.pm:230 lib/RT/User_Overlay.pm:990 +#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 msgid "Password too short" msgstr "密碼太短" -#: html/Admin/Users/Modify.html:292 html/User/Prefs.html:212 html/Work/Preferences/Info:177 +#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "密碼:%1" -#: html/Admin/Users/Modify.html:294 +#: html/Admin/Users/Modify.html:318 msgid "Passwords do not match." msgstr "密碼確èªå¤±æ•—。" -#: html/User/Prefs.html:214 html/Work/Preferences/Info:179 +#: html/User/Prefs.html:211 msgid "Passwords do not match. Your password has not been changed" msgstr "密碼確èªå¤±æ•—。您的密碼並未改變。" @@ -4385,7 +5176,7 @@ msgstr "è«‹é¸æ“‡è¡¨å–®å稱" msgid "Pending Approval" msgstr "等待簽核" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:101 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 msgid "People" msgstr "人員" @@ -4393,15 +5184,19 @@ msgstr "人員" msgid "People with Queue Rights" msgstr "æ“æœ‰è¡¨å–®æ¬Šé™äººå“¡" -#: etc/initialdata:125 +#: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "執行使用者自訂的動作" -#: lib/RT/ACE_Overlay.pm:230 lib/RT/ACE_Overlay.pm:236 lib/RT/ACE_Overlay.pm:563 lib/RT/ACE_Overlay.pm:573 lib/RT/ACE_Overlay.pm:583 lib/RT/ACE_Overlay.pm:648 lib/RT/CurrentUser.pm:82 lib/RT/CurrentUser.pm:91 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:208 lib/RT/CustomField_Overlay.pm:240 lib/RT/CustomField_Overlay.pm:518 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1090 lib/RT/Group_Overlay.pm:1094 lib/RT/Group_Overlay.pm:1103 lib/RT/Group_Overlay.pm:1154 lib/RT/Group_Overlay.pm:1158 lib/RT/Group_Overlay.pm:1164 lib/RT/Group_Overlay.pm:424 lib/RT/Group_Overlay.pm:517 lib/RT/Group_Overlay.pm:595 lib/RT/Group_Overlay.pm:603 lib/RT/Group_Overlay.pm:700 lib/RT/Group_Overlay.pm:704 lib/RT/Group_Overlay.pm:710 lib/RT/Group_Overlay.pm:895 lib/RT/Group_Overlay.pm:899 lib/RT/Group_Overlay.pm:912 lib/RT/Queue_Overlay.pm:540 lib/RT/Queue_Overlay.pm:550 lib/RT/Queue_Overlay.pm:564 lib/RT/Queue_Overlay.pm:699 lib/RT/Queue_Overlay.pm:708 lib/RT/Queue_Overlay.pm:721 lib/RT/Queue_Overlay.pm:934 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:201 lib/RT/Scrip_Overlay.pm:441 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1392 lib/RT/Ticket_Overlay.pm:1402 lib/RT/Ticket_Overlay.pm:1416 lib/RT/Ticket_Overlay.pm:1550 lib/RT/Ticket_Overlay.pm:1559 lib/RT/Ticket_Overlay.pm:1572 lib/RT/Ticket_Overlay.pm:1923 lib/RT/Ticket_Overlay.pm:2061 lib/RT/Ticket_Overlay.pm:2225 lib/RT/Ticket_Overlay.pm:2294 lib/RT/Ticket_Overlay.pm:2655 lib/RT/Ticket_Overlay.pm:2736 lib/RT/Ticket_Overlay.pm:2840 lib/RT/Ticket_Overlay.pm:2855 lib/RT/Ticket_Overlay.pm:3054 lib/RT/Ticket_Overlay.pm:3064 lib/RT/Ticket_Overlay.pm:3069 lib/RT/Ticket_Overlay.pm:3292 lib/RT/Ticket_Overlay.pm:3296 lib/RT/Ticket_Overlay.pm:3499 lib/RT/Ticket_Overlay.pm:3661 lib/RT/Ticket_Overlay.pm:3713 lib/RT/Ticket_Overlay.pm:3925 lib/RT/Transaction_Overlay.pm:415 lib/RT/Transaction_Overlay.pm:422 lib/RT/Transaction_Overlay.pm:451 lib/RT/Transaction_Overlay.pm:458 lib/RT/User_Overlay.pm:1094 lib/RT/User_Overlay.pm:1542 lib/RT/User_Overlay.pm:692 lib/RT/User_Overlay.pm:727 lib/RT/User_Overlay.pm:983 +#: html/Admin/Tools/Configuration.html:49 +msgid "Perl configuration" +msgstr "Perl 設定" + +#: 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 "權é™ä¸è¶³" -#: html/Edit/Rights/index.html:3 +#: NOT FOUND IN SOURCE msgid "Permission Settings" msgstr "權é™è¨­å®š" @@ -4417,7 +5212,7 @@ msgstr "代ç†äººç¾¤çµ„" msgid "Personal Groups" msgstr "代ç†äººç¾¤çµ„" -#: html/Edit/Users/Info:55 html/Work/Preferences/Info:27 +#: NOT FOUND IN SOURCE msgid "Personal Homepage" msgstr "個人首é " @@ -4457,15 +5252,15 @@ msgstr "第四階段:使用者åœç”¨åŠå•Ÿç”¨ (%1)" msgid "Phone" msgstr "電話" -#: html/Work/Delegates/Info:90 html/Work/Overview/Info:72 +#: NOT FOUND IN SOURCE msgid "Phone number" msgstr "電話號碼" -#: html/Admin/Users/Modify.html:155 html/User/Prefs.html:60 html/Work/Preferences/Info:35 +#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 msgid "Phone numbers" msgstr "電話號碼" -#: html/Edit/Queues/Basic/Add.html:3 html/Edit/Queues/Basic/Top:55 html/Edit/Users/Add.html:3 html/Work/Approvals/Add.html:3 html/Work/Delegates/Add.html:3 html/Work/Delegates/Info:34 html/Work/Tickets/ModifyPeople.html:2 +#: NOT FOUND IN SOURCE msgid "Pick" msgstr "挑é¸" @@ -4477,11 +5272,11 @@ msgstr "出發地點" msgid "Placeholder" msgstr "尚未完工" -#: html/Edit/Elements/PickUsers:33 html/Edit/Elements/PickUsers:51 html/Edit/Elements/SelectCustomFieldType:3 html/Work/Elements/SelectOwner:3 html/Work/Tickets/Elements/EditCustomField:199 html/Work/Tickets/Elements/EditCustomFieldEntry:42 html/Work/Tickets/Elements/EditCustomFieldEntry:57 +#: NOT FOUND IN SOURCE msgid "Please Select" msgstr "è«‹é¸æ“‡" -#: html/Edit/Elements/104Buttons:30 +#: NOT FOUND IN SOURCE msgid "Please check items to be deleted first." msgstr "è«‹å…ˆé¸ä¸­è¦åˆªé™¤çš„å°è±¡" @@ -4513,11 +5308,11 @@ msgstr "è·å‹™" msgid "Position Level" msgstr "è·ç­‰" -#: html/Edit/Elements/PickUsers:48 html/Edit/Global/UserRight/List:13 html/Edit/Global/UserRight/Top:23 html/Edit/Queues/Basic/Add.html:26 html/Edit/Users/Add.html:41 html/Work/Approvals/Add.html:27 html/Work/Delegates/Add.html:27 html/Work/Delegates/Info:84 html/Work/Overview/Info:66 +#: NOT FOUND IN SOURCE msgid "Position Name" msgstr "è·å‹™å稱" -#: html/Edit/Global/UserRight/List:14 html/Edit/Global/UserRight/Top:33 +#: NOT FOUND IN SOURCE msgid "Position Number" msgstr "è·å‹™ä»£ç¢¼" @@ -4529,7 +5324,7 @@ msgstr "è·ç´š" msgid "Pref" msgstr "å好" -#: html/Edit/Elements/104Top:26 html/Elements/Header:51 html/Elements/Tabs:52 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 html/Work/Elements/Tab:44 +#: 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 "å好" @@ -4537,15 +5332,19 @@ msgstr "å好" msgid "Prefs" msgstr "個人資訊" -#: lib/RT/Action/Generic.pm:159 +#: lib/RT/Action/Generic.pm:169 msgid "Prepare Stubbed" msgstr "é å‚™å‹•作完畢" -#: html/Ticket/Elements/Tabs:66 +#: html/Ticket/Elements/Tabs:62 msgid "Prev" msgstr "上一項" -#: html/Search/Listing.html:43 html/Work/Search/index.html:20 +#: html/Elements/TicketList:64 +msgid "Previous Page" +msgstr "上一é " + +#: NOT FOUND IN SOURCE msgid "Previous page" msgstr "å‰ä¸€é " @@ -4553,24 +5352,28 @@ msgstr "å‰ä¸€é " msgid "Pri" msgstr "優先順ä½" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:552 +#: 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 "找ä¸åˆ°å–®ä½ %1。" -#: html/Search/Elements/PickRestriction:54 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:38 html/Work/Search/PickRestriction:34 html/Work/Tickets/Elements/EditBasics:41 lib/RT/Tickets_Overlay.pm:1103 +#: 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 "優先順ä½" -#: html/Admin/Elements/ModifyQueue:50 html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:64 msgid "Priority starts at" msgstr "優先順ä½èµ·å§‹å€¼" +#: html/Search/Elements/EditSearches:2 +msgid "Privacy:" +msgstr "éš±ç§è¨­å®šï¼š" + #: etc/initialdata:25 msgid "Privileged" msgstr "內部æˆå“¡" -#: html/Admin/Users/Modify.html:272 html/User/Prefs.html:203 html/Work/Preferences/Info:168 +#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "內部æˆå“¡ç‹€æ…‹ï¼š%1" @@ -4579,31 +5382,35 @@ msgstr "內部æˆå“¡ç‹€æ…‹ï¼š%1" msgid "Privileged users" msgstr "內部æˆå“¡" -#: html/Work/Elements/SelectSearch:21 +#: NOT FOUND IN SOURCE msgid "Process Status" msgstr "處ç†ç‹€æ…‹" -#: html/Work/Elements/MyRequests:18 html/Work/Elements/MyTickets:18 +#: NOT FOUND IN SOURCE msgid "Project" msgstr "專案" -#: html/Edit/Queues/List:10 +#: 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 "內部用的虛擬群組" -#: html/Edit/Queues/List:11 +#: NOT FOUND IN SOURCE msgid "Public Description" msgstr "公開說明" -#: html/Edit/Users/Info:76 html/Work/Preferences/Info:73 +#: NOT FOUND IN SOURCE msgid "Public Info" msgstr "公開資訊" -#: html/Work/Elements/104Header:88 +#: NOT FOUND IN SOURCE msgid "Public Service" msgstr "公共事務å€" @@ -4611,15 +5418,19 @@ msgstr "公共事務å€" msgid "Purging stale data: %1" msgstr "ç§»é™¤éŽæœŸè³‡æ–™: %1" -#: html/Edit/Users/Search.html:4 +#: html/Search/Build.html:47 msgid "Query" msgstr "查詢" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:166 html/Elements/MyRequests:29 html/Elements/MyTickets:29 html/Elements/Quicksearch:28 html/Search/Elements/PickRestriction:46 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:63 html/Ticket/Elements/ShowBasics:42 html/User/Elements/DelegateRights:79 html/Work/Elements/MyApprovals:10 html/Work/Elements/MyRequests:20 html/Work/Elements/MyTickets:20 html/Work/Elements/Quicksearch:14 html/Work/Search/PickRestriction:26 html/Work/Tickets/Elements/EditBasics:16 lib/RT/Tickets_Overlay.pm:944 +#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +msgid "Query Builder" +msgstr "建立查詢" + +#: 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 "表單" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 html/Admin/Queues/Workflows.html:44 +#: 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" @@ -4633,19 +5444,19 @@ msgstr "找ä¸åˆ°è¡¨å–® '%1'\\n" msgid "Queue Keyword Selections" msgstr "表單關éµå­—é¸å–" -#: html/Admin/Elements/ModifyQueue:30 html/Admin/Queues/Modify.html:42 html/Edit/Queues/Basic/Top:13 html/Edit/Queues/Basic/index.html:36 html/Edit/Queues/Global:21 html/Edit/Queues/List:20 html/Edit/Users/Queue:10 html/Work/Delegates/List:6 html/Work/Elements/List:11 html/Work/Queues/List:5 html/Work/Tickets/Create.html:21 html/Work/Tickets/Elements/ShowBasics:6 +#: html/Admin/Queues/Modify.html:42 msgid "Queue Name" msgstr "表單å稱" -#: html/Edit/Queues/List:22 html/Work/Elements/List:29 html/Work/Queues/List:8 html/Work/Tickets/Create.html:34 html/Work/Tickets/Elements/ShowBasics:19 +#: NOT FOUND IN SOURCE msgid "Queue Owner" msgstr "業務承辦人" -#: html/Edit/Queues/Basic/Top:38 +#: NOT FOUND IN SOURCE msgid "Queue Priority" msgstr "優先等級" -#: html/Edit/Global/GroupRight/Top:24 html/Edit/Global/UserRight/Top:43 html/Edit/Users/Queue:11 html/Edit/Users/index.html:97 +#: NOT FOUND IN SOURCE msgid "Queue Rights" msgstr "表單權é™" @@ -4653,27 +5464,27 @@ msgstr "表單權é™" msgid "Queue Scrips" msgstr "表單手續" -#: html/Edit/Elements/Tab:38 +#: NOT FOUND IN SOURCE msgid "Queue Setup" msgstr "表單設定" -#: lib/RT/Queue_Overlay.pm:264 +#: lib/RT/Queue_Overlay.pm:300 msgid "Queue already exists" msgstr "表單已存在" -#: lib/RT/Queue_Overlay.pm:273 lib/RT/Queue_Overlay.pm:279 +#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 msgid "Queue could not be created" msgstr "無法新增表單" -#: html/Edit/Queues/autohandler:8 html/Ticket/Create.html:208 html/Work/Tickets/Create.html:186 +#: html/Ticket/Create.html:208 msgid "Queue could not be loaded." msgstr "無法載入表單" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:283 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 msgid "Queue created" msgstr "表單新增完畢" -#: html/Admin/Elements/ModifyWorkflow:32 +#: NOT FOUND IN SOURCE msgid "Queue is not specified." msgstr "未指定表單。" @@ -4685,7 +5496,7 @@ msgstr "找ä¸åˆ°è¡¨å–®" msgid "Queues" msgstr "表單" -#: html/Work/Elements/Quicksearch:10 +#: NOT FOUND IN SOURCE msgid "Quick Search" msgstr "è¡¨å–®ç¾æ³" @@ -4693,6 +5504,14 @@ msgstr "è¡¨å–®ç¾æ³" msgid "Quick search" msgstr "表單一覽" +#: html/Elements/QuickCreate:1 +msgid "Quick ticket creation" +msgstr "快速建立申請單" + +#: html/Search/Results.html:49 +msgid "RSS" +msgstr "RSS" + #: html/Elements/Login:44 #. ($RT::VERSION) msgid "RT %1" @@ -4703,8 +5522,7 @@ msgstr "RT %1" msgid "RT %1 for %2" msgstr "%2:RT %1 版" -#: html/Elements/Footer:32 -#. ($RT::VERSION) +#: 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>出å“。" @@ -4748,17 +5566,25 @@ msgstr "RT 收到從自己寄出的郵件 (%1)。" msgid "RT Recieved mail (%1) from itself." msgstr "RT 收到從自己寄出的郵件 (%1)。" +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "" + #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT 自助æœå‹™/已解決的申請單" -#: html/index.html:24 html/index.html:27 +#: html/Admin/Tools/Configuration.html:28 +msgid "RT Variables" +msgstr "RT 的變數" + +#: html/index.html:50 html/index.html:53 msgid "RT at a glance" msgstr "RT 一覽" #: NOT FOUND IN SOURCE msgid "RT couldn't authenticate you" -msgstr "RT 無法èªè­‰ä½ " +msgstr "RT 無法èªè­‰æ‚¨çš„身份" #: NOT FOUND IN SOURCE msgid "RT couldn't find requestor via its external database lookup" @@ -4772,7 +5598,7 @@ msgstr "RT 找ä¸åˆ°è¡¨å–®ï¼š%1" msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT 無法確èªé€™å€‹ PGP 簽章。\\n" -#: html/Edit/Elements/104Header:7 html/Edit/Elements/104Top:20 html/Elements/PageLayout:85 html/Work/Elements/104Header:7 +#: html/Elements/PageLayout:85 #. ($RT::rtname) msgid "RT for %1" msgstr "%1 專用æµç¨‹ç³»çµ±" @@ -4785,11 +5611,18 @@ msgstr "%1 專用 RT 系統:%2" msgid "RT has proccessed your commands" msgstr "RT 已執行您的命令" -#: html/Elements/Login:100 -#. ('2003') +#: 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 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 "" + +#: 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 "" + #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "RT èªç‚ºé€™å¯èƒ½æ˜¯é€€ä¿¡" @@ -4814,51 +5647,55 @@ msgstr "系統é‹è¡Œè§’色" msgid "RT::Ticket-Role" msgstr "申請單é‹è¡Œè§’色" -#: html/Work/Tickets/Elements/ShowTransaction:14 +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "RT_System" msgstr "系統訊æ¯" -#: html/Edit/Global/CustomField/SelectWritable:6 +#: NOT FOUND IN SOURCE msgid "Read Only" msgstr "唯讀" -#: html/Admin/Users/Modify.html:57 html/Admin/Users/Prefs.html:51 html/Edit/Elements/SelectUsers:5 html/Edit/Users/List:6 html/User/Prefs.html:47 html/Work/Preferences/Info:18 +#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 msgid "Real Name" msgstr "真實姓å" -#: html/Admin/Elements/ModifyUser:47 +#: NOT FOUND IN SOURCE msgid "RealName" msgstr "真實姓å" -#: html/Work/Approvals/Elements/Actions:11 +#: NOT FOUND IN SOURCE msgid "Really reject this ticket?" msgstr "您確定è¦é§å›žé€™å¼µç”³è«‹å–®å—Žï¼Ÿ" -#: lib/RT/Transaction_Overlay.pm:592 +#: lib/RT/Transaction_Overlay.pm:628 #. ($value) msgid "Reference by %1 added" msgstr "已加入 %1 為åƒè€ƒæœ¬ç”³è«‹å–®" -#: lib/RT/Transaction_Overlay.pm:632 +#: lib/RT/Transaction_Overlay.pm:668 #. ($value) msgid "Reference by %1 deleted" msgstr "已移除 %1 為åƒè€ƒæœ¬ç”³è«‹å–®" -#: lib/RT/Transaction_Overlay.pm:589 +#: lib/RT/Transaction_Overlay.pm:625 #. ($value) msgid "Reference to %1 added" msgstr "已加入åƒè€ƒç”³è«‹å–® %1" -#: lib/RT/Transaction_Overlay.pm:629 +#: lib/RT/Transaction_Overlay.pm:665 #. ($value) msgid "Reference to %1 deleted" msgstr "已移除åƒè€ƒç”³è«‹å–® %1" -#: html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 html/Ticket/Elements/EditLinks:121 html/Ticket/Elements/EditLinks:81 html/Ticket/Elements/ShowLinks:70 html/Work/Search/BulkLinks:26 html/Work/Tickets/Elements/EditLinks:125 html/Work/Tickets/Elements/EditLinks:81 html/Work/Tickets/Elements/ShowLinks:38 +#: 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 "被åƒè€ƒ" -#: html/Elements/SelectLinkType:27 html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:46 html/Ticket/Elements/EditLinks:117 html/Ticket/Elements/EditLinks:72 html/Ticket/Elements/ShowLinks:60 html/Work/Search/BulkLinks:22 html/Work/Tickets/Elements/EditLinks:121 html/Work/Tickets/Elements/EditLinks:67 html/Work/Tickets/Elements/ShowLinks:33 +#: 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 "åƒè€ƒ" @@ -4870,11 +5707,11 @@ msgstr "åƒè€ƒ" msgid "Refine" msgstr "åœ¨çµæžœç¯„åœå…§æŸ¥è©¢" -#: html/Search/Elements/PickRestriction:26 html/Work/Search/PickRestriction:7 +#: NOT FOUND IN SOURCE msgid "Refine search" msgstr "調整查詢æ¢ä»¶" -#: html/Work/Overview/index.html:12 +#: NOT FOUND IN SOURCE msgid "Refresh" msgstr "æ›´æ–°" @@ -4883,35 +5720,43 @@ msgstr "æ›´æ–°" msgid "Refresh this page every %1 minutes." msgstr "æ¯ %1 åˆ†é˜æ›´æ–°é é¢" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/ModifyAll.html:56 +#: NOT FOUND IN SOURCE msgid "Relationships" -msgstr "關係" +msgstr "" -#: html/Edit/Elements/ListButtons:13 +#: NOT FOUND IN SOURCE msgid "Remove" msgstr "移除" -#: html/Search/Bulk.html:97 html/Work/Search/Bulk.html:77 +#: html/Search/Bulk.html:95 msgid "Remove AdminCc" msgstr "移除管ç†å“¡å‰¯æœ¬" -#: html/Search/Bulk.html:93 html/Work/Search/Bulk.html:71 +#: html/Search/Bulk.html:91 msgid "Remove Cc" msgstr "移除副本" -#: html/Search/Bulk.html:89 html/Work/Search/Bulk.html:65 +#: html/Search/Bulk.html:87 msgid "Remove Requestor" msgstr "移除申請人" -#: html/Ticket/Elements/ShowTransaction:183 html/Ticket/Elements/Tabs:127 html/Work/Tickets/Display.html:54 html/Work/Tickets/Elements/ShowTransaction:116 +#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 msgid "Reply" msgstr "回覆" -#: lib/RT/Queue_Overlay.pm:84 +#: html/Admin/Queues/Modify.html:50 +msgid "Reply Address" +msgstr "回覆地å€" + +#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +msgid "Reply to requestors" +msgstr "回覆申請人" + +#: lib/RT/Queue_Overlay.pm:87 msgid "Reply to tickets" msgstr "å°ç”³è«‹å–®é€²è¡Œå›žè¦†" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:87 msgid "ReplyToTicket" msgstr "回覆申請單" @@ -4923,23 +5768,23 @@ msgstr "上下ç­åˆ·å¡" msgid "Reported on" msgstr "åˆ°è·æ—¥æœŸ" -#: etc/initialdata:44 html/Ticket/Update.html:39 html/Work/Elements/List:25 html/Work/Elements/MyApprovals:12 html/Work/Elements/MyTickets:24 html/Work/Elements/SelectSearch:36 html/Work/Tickets/Elements/ShowBasics:62 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 msgid "Requestor" msgstr "申請人" -#: html/Work/Search/PickRestriction:17 +#: NOT FOUND IN SOURCE msgid "Requestor email address" msgstr "申請人電å­éƒµä»¶ä¿¡ç®±ä½å€" -#: html/Edit/Global/Workflow/Owner.html:28 +#: NOT FOUND IN SOURCE msgid "Requestor's" msgstr "申請人所屬之第上" -#: html/Edit/Global/Workflow/Owner.html:44 +#: NOT FOUND IN SOURCE msgid "Requestor's Dept." msgstr "申請人所屬部門之" -#: html/Work/Elements/List:27 +#: NOT FOUND IN SOURCE msgid "Requestor's Phone" msgstr "申請人電話" @@ -4951,19 +5796,24 @@ msgstr "申請人" msgid "RequestorAddresses" msgstr "申請人地å€" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 html/Work/Tickets/Elements/EditPeople:38 +#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 msgid "Requestors" msgstr "申請人" -#: html/Admin/Elements/ModifyQueue:60 html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:74 msgid "Requests should be due in" msgstr "ç”³è«‹å–®è™•ç†æœŸé™" +#: lib/RT/Attribute_Overlay.pm:123 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "未指定必è¦çš„åƒæ•¸ã€Œ%1ã€" + #: html/Elements/Submit:61 msgid "Reset" msgstr "é‡è¨­" -#: html/Admin/Users/Modify.html:158 html/User/Prefs.html:63 html/Work/Preferences/Info:37 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 msgid "Residence" msgstr "ä½è™•" @@ -4971,20 +5821,20 @@ msgstr "ä½è™•" msgid "Resolution" msgstr "解決狀態" -#: html/Ticket/Elements/Tabs:137 html/Work/Tickets/Display.html:57 +#: html/Ticket/Elements/Tabs:133 msgid "Resolve" msgstr "解決" -#: html/Ticket/Update.html:137 +#: html/Ticket/Update.html:119 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "解決申請單 #%1 (%2)" -#: etc/initialdata:308 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1220 +#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 msgid "Resolved" msgstr "已解決" -#: html/Search/Bulk.html:132 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:71 html/Work/Search/Bulk.html:84 html/Work/Tickets/Update.html:38 +#: NOT FOUND IN SOURCE msgid "Response to requestors" msgstr "回覆申請人" @@ -4992,27 +5842,31 @@ msgstr "回覆申請人" msgid "Responsibility Type" msgstr "責任å€åˆ†" -#: html/Elements/ListActions:25 +#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 msgid "Results" msgstr "çµæžœ" -#: html/Search/Elements/PickRestriction:105 html/Work/Search/PickRestriction:90 +#: NOT FOUND IN SOURCE msgid "Results per page" msgstr "æ¯é åˆ—å‡ºå¹¾ç­†çµæžœ" -#: html/Admin/Elements/ModifyUser:32 html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 html/Work/Preferences/Info:59 +#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 msgid "Retype Password" msgstr "冿¬¡è¼¸å…¥å¯†ç¢¼" +#: html/Search/Elements/EditSearches:13 +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:613 +#: lib/RT/ACE_Overlay.pm:612 msgid "Right Delegated" msgstr "權é™ä»£ç†å®Œç•¢" -#: lib/RT/ACE_Overlay.pm:303 +#: lib/RT/ACE_Overlay.pm:302 msgid "Right Granted" msgstr "權é™è¨­å®šå®Œç•¢" @@ -5020,7 +5874,7 @@ msgstr "權é™è¨­å®šå®Œç•¢" msgid "Right Loaded" msgstr "權é™è¼‰å…¥å®Œç•¢" -#: lib/RT/ACE_Overlay.pm:678 lib/RT/ACE_Overlay.pm:693 +#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 msgid "Right could not be revoked" msgstr "無法撤消權é™" @@ -5028,37 +5882,37 @@ msgstr "無法撤消權é™" msgid "Right not found" msgstr "找ä¸åˆ°æ¬Šé™" -#: lib/RT/ACE_Overlay.pm:543 lib/RT/ACE_Overlay.pm:638 +#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 msgid "Right not loaded." msgstr "權é™ä¸¦æœªè¼‰å…¥ã€‚" -#: lib/RT/ACE_Overlay.pm:689 +#: lib/RT/ACE_Overlay.pm:688 msgid "Right revoked" msgstr "æ¬Šé™æ’¤æ¶ˆå®Œç•¢" -#: html/Admin/Elements/UserTabs:40 +#: NOT FOUND IN SOURCE msgid "Rights" msgstr "權é™åŠä»£ç†äºº" -#: lib/RT/Interface/Web.pm:859 +#: lib/RT/Interface/Web.pm:869 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "無法將權é™è³¦äºˆ %1" -#: lib/RT/Interface/Web.pm:889 +#: lib/RT/Interface/Web.pm:899 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "無法撤消 %1 的權é™" -#: html/Edit/Groups/Member:54 html/Edit/Groups/Members/List:10 +#: NOT FOUND IN SOURCE msgid "Role Members" msgstr "角色æˆå“¡" -#: html/Edit/Groups/Member:37 html/Edit/Groups/Members/Add.html:13 html/Edit/Groups/Members/List:7 html/Edit/Groups/Roles/List:4 html/Edit/Groups/Roles/Top:7 +#: NOT FOUND IN SOURCE msgid "Role Name" msgstr "角色å稱" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 html/Edit/Global/Workflow/Owner.html:55 html/Edit/Global/Workflow/Owner.html:89 html/Edit/Groups/Member:24 +#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 msgid "Roles" msgstr "角色" @@ -5066,19 +5920,23 @@ msgstr "角色" msgid "RootApproval" msgstr "交由系統管ç†å“¡ç°½æ ¸" -#: html/Edit/Global/Workflow/Action:23 +#: html/Search/Elements/DisplayOptions:62 +msgid "Rows per page" +msgstr "æ¯é ç­†æ•¸" + +#: NOT FOUND IN SOURCE msgid "Run Approval" msgstr "簽核執行" -#: html/Edit/Global/Basic/Top:81 +#: NOT FOUND IN SOURCE msgid "SMTPDebug" msgstr "SMTP åµéŒ¯ç´€éŒ„" -#: html/Edit/Global/Basic/Top:63 +#: NOT FOUND IN SOURCE msgid "SMTPFrom" msgstr "SMTP 寄件ä½å€" -#: html/Edit/Global/Basic/Top:61 +#: NOT FOUND IN SOURCE msgid "SMTPServer" msgstr "SMTP 伺æœå™¨" @@ -5090,29 +5948,37 @@ msgstr "星期六" msgid "Sat." msgstr "星期六" -#: html/Edit/Elements/104Buttons:83 html/Work/Preferences/index.html:33 html/Work/Tickets/Elements/EditBasics:63 html/Work/Tickets/Elements/EditLinks:133 html/Work/Tickets/Elements/EditPeople:51 +#: html/Search/Elements/EditSearches:21 msgid "Save" msgstr "儲存" -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyLinks.html:38 html/Ticket/ModifyPeople.html:37 +#: 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 "儲存更改" -#: NOT FOUND IN SOURCE +#: html/User/Prefs.html:157 +msgid "Save Preferences" +msgstr "" + +#: html/Ticket/Elements/PreviewScrips:79 msgid "Save changes" msgstr "儲存更改" +#: html/Search/Elements/EditSearches:1 +msgid "Saved searches" +msgstr "已儲存的查詢" + #: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 -#. ($QueueObj->id) +#. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "手續 #%1" -#: html/Edit/Global/Scrip/List:9 html/Edit/Global/Scrip/Top:41 +#: NOT FOUND IN SOURCE msgid "Scrip Action" msgstr "訊æ¯é€šçŸ¥å‹•作" -#: html/Edit/Global/Scrip/List:8 html/Edit/Global/Scrip/Top:15 +#: NOT FOUND IN SOURCE msgid "Scrip Condition" msgstr "訊æ¯é€šçŸ¥æ¢ä»¶" @@ -5120,7 +5986,11 @@ msgstr "訊æ¯é€šçŸ¥æ¢ä»¶" msgid "Scrip Created" msgstr "手續新增完畢" -#: html/Edit/Global/Scrip/List:7 html/Edit/Global/Scrip/Top:9 +#: html/Admin/Elements/EditScrip:30 +msgid "Scrip Fields" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Scrip Name" msgstr "訊æ¯å稱" @@ -5132,7 +6002,7 @@ msgstr "手續刪除完畢" msgid "Scrips" msgstr "手續" -#: html/Edit/Global/autohandler:9 html/Edit/Queues/autohandler:26 +#: NOT FOUND IN SOURCE msgid "Scrips " msgstr "訊æ¯é€šçŸ¥" @@ -5144,7 +6014,7 @@ msgstr "%1 的手續\\n" msgid "Scrips which apply to all queues" msgstr "é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æ‰‹çºŒ" -#: html/Edit/Elements/104Buttons:86 html/Elements/SimpleSearch:26 html/Search/Elements/PickRestriction:126 html/Ticket/Elements/Tabs:164 html/Work/Elements/Tab:46 html/Work/Search/PickRestriction:108 +#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 msgid "Search" msgstr "查詢" @@ -5156,7 +6026,15 @@ msgstr "查詢æ¢ä»¶" msgid "Search for approvals" msgstr "簽核單查詢" -#: html/Edit/Global/Workflow/Owner.html:31 +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "ä¸èƒ½å°æ­¤é¡žç‰©ä»¶é€²è¡ŒæŸ¥è©¢" + +#: NOT FOUND IN SOURCE msgid "Second-" msgstr "二" @@ -5164,19 +6042,55 @@ msgstr "二" msgid "Second-level Users" msgstr "二階主管員工" -#: bin/rt-crontool:187 +#: bin/rt-crontool:184 msgid "Security:" msgstr "安全性:" -#: lib/RT/Queue_Overlay.pm:66 +#: NOT FOUND IN SOURCE +msgid "See custom fields" +msgstr "查閱自訂欄ä½" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "See exact outgoing email messages and their recipeients" +msgstr "查閱é€å‡ºçš„é›»å­éƒµä»¶åŠæ”¶ä»¶äºº" + +#: lib/RT/Queue_Overlay.pm:81 +msgid "See ticket private commentary" +msgstr "查閱申請單內的ç§äººè©•è«–" + +#: lib/RT/Queue_Overlay.pm:80 +msgid "See ticket summaries" +msgstr "查閱申請單總覽" + +#: NOT FOUND IN SOURCE +msgid "SeeCustomField" +msgstr "查閱自訂欄ä½" + +#: lib/RT/Queue_Overlay.pm:68 msgid "SeeQueue" msgstr "查閱表單" -#: html/Edit/Elements/ListButtons:10 +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "鏿“‡" + +#: NOT FOUND IN SOURCE msgid "Select All" msgstr "å…¨é¸" -#: html/Admin/Groups/index.html:39 +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Field" +msgstr "鏿“‡è‡ªè¨‚欄ä½" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "" + +#: html/Admin/Groups/index.html:50 msgid "Select a group" msgstr "鏿“‡ç¾¤çµ„" @@ -5184,7 +6098,7 @@ msgstr "鏿“‡ç¾¤çµ„" msgid "Select a queue" msgstr "鏿“‡è¡¨å–®" -#: html/Work/Queues/Select.html:8 +#: NOT FOUND IN SOURCE msgid "Select a queue to link to" msgstr "è«‹é¸æ“‡æ¬²é€£çµè¡¨å–®" @@ -5192,6 +6106,10 @@ msgstr "è«‹é¸æ“‡æ¬²é€£çµè¡¨å–®" msgid "Select a user" msgstr "鏿“‡ä½¿ç”¨è€…" +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "" + #: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 msgid "Select custom field" msgstr "鏿“‡è‡ªè¨‚欄ä½" @@ -5200,11 +6118,11 @@ msgstr "鏿“‡è‡ªè¨‚欄ä½" msgid "Select group" msgstr "鏿“‡ç¾¤çµ„" -#: lib/RT/CustomField_Overlay.pm:428 +#: lib/RT/CustomField_Overlay.pm:427 msgid "Select multiple values" msgstr "鏿“‡å¤šé‡é …ç›®" -#: lib/RT/CustomField_Overlay.pm:425 +#: lib/RT/CustomField_Overlay.pm:424 msgid "Select one value" msgstr "鏿“‡å–®ä¸€é …ç›®" @@ -5220,11 +6138,15 @@ msgstr "鏿“‡æ‰‹çºŒ" msgid "Select template" msgstr "鏿“‡ç¯„本" -#: html/Admin/Elements/UserTabs:48 +#: NOT FOUND IN SOURCE +msgid "Select up to %1 values" +msgstr "鏿“‡æœ€å¤š %1 個值" + +#: html/Admin/Elements/UserTabs:46 msgid "Select user" msgstr "鏿“‡ä½¿ç”¨è€…" -#: html/Admin/Global/Workflow.html:57 html/Admin/Global/Workflows.html:36 html/Admin/Queues/Workflow.html:54 html/Admin/Queues/Workflows.html:47 +#: NOT FOUND IN SOURCE msgid "Select workflow" msgstr "鏿“‡æµç¨‹" @@ -5240,7 +6162,15 @@ msgstr "多é‡é¸é …" msgid "SelectSingle" msgstr "單一é¸é …" -#: html/Edit/Elements/PickUsers:95 html/Edit/Users/Add.html:78 +#: NOT FOUND IN SOURCE +msgid "Selected Custom Fields" +msgstr "å·²é¸å–的自訂欄ä½" + +#: NOT FOUND IN SOURCE +msgid "Selected objects" +msgstr "å·²é¸å–的物件" + +#: NOT FOUND IN SOURCE msgid "Selected users:" msgstr "新增å°è±¡ï¼š" @@ -5248,19 +6178,19 @@ msgstr "新增å°è±¡ï¼š" msgid "Self Service" msgstr "自助æœå‹™" -#: etc/initialdata:113 +#: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "寄信給所有視察員" -#: etc/initialdata:109 +#: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" msgstr "以評論方å¼å¯„信給所有視察員" -#: etc/initialdata:104 +#: etc/initialdata:112 msgid "Send mail to requestors and Ccs" msgstr "寄信給申請人åŠå‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:99 +#: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" msgstr "以評論方å¼å¯„信給申請人åŠå‰¯æœ¬æ”¶ä»¶äºº" @@ -5268,15 +6198,23 @@ msgstr "以評論方å¼å¯„信給申請人åŠå‰¯æœ¬æ”¶ä»¶äºº" msgid "Sends a message to the requestors" msgstr "寄信給申請人" -#: etc/initialdata:117 etc/initialdata:121 +#: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" msgstr "寄信給特定的副本åŠå¯†ä»¶å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:94 +#: 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:90 +#: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" msgstr "以評論寄信給管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" @@ -5292,6 +6230,10 @@ msgstr "乿œˆ" msgid "Sep." msgstr "09" +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "" + #: NOT FOUND IN SOURCE msgid "September" msgstr "乿œˆ" @@ -5304,10 +6246,26 @@ msgstr "%1 的「åœç”¨ã€å±¬æ€§å·²è¨­ç‚º %2" msgid "Shift Type" msgstr "ç­åˆ¥å±¬æ€§" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowTransaction:122 +msgid "Show" +msgstr "顯示" + +#: html/Approvals/index.html:30 +msgid "Show Approvals" +msgstr "" + +#: html/Search/Elements/EditFormat:11 +msgid "Show Columns" +msgstr "顯示欄ä½" + +#: html/Ticket/Elements/Tabs:178 msgid "Show Results" msgstr "é¡¯ç¤ºçµæžœ" +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "" + #: html/Approvals/Elements/PendingMyApproval:43 msgid "Show approved requests" msgstr "顯示已批准的簽核單" @@ -5332,43 +6290,51 @@ msgstr "顯示待處ç†çš„簽核單" msgid "Show requests awaiting other approvals" msgstr "顯示尚待他人批准的簽核單" -#: lib/RT/Queue_Overlay.pm:80 +#: NOT FOUND IN SOURCE msgid "Show ticket private commentary" msgstr "顯示申請單內的ç§äººè©•è«–" -#: lib/RT/Queue_Overlay.pm:78 +#: NOT FOUND IN SOURCE msgid "Show ticket summaries" msgstr "顯示申請單摘è¦" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:70 msgid "ShowACL" msgstr "é¡¯ç¤ºæ¬Šé™æ¸…å–®" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:83 +msgid "ShowOutgoingEmail" +msgstr "顯示寄é€éƒµä»¶" + +#: lib/RT/Group_Overlay.pm:151 +msgid "ShowSavedSearches" +msgstr "顯示已儲存的查詢" + +#: lib/RT/Queue_Overlay.pm:79 msgid "ShowScrips" msgstr "顯示手續" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:76 msgid "ShowTemplate" msgstr "顯示範本" -#: lib/RT/Queue_Overlay.pm:78 +#: lib/RT/Queue_Overlay.pm:80 msgid "ShowTicket" msgstr "顯示申請單" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:81 msgid "ShowTicketComments" msgstr "顯示申請單的評論" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:84 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "登記æˆç‚ºç”³è«‹äººæˆ–副本收件人" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:85 msgid "Sign up as a ticket or queue AdminCc" msgstr "登記æˆç‚ºç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Admin/Elements/ModifyUser:38 html/Admin/Users/Modify.html:190 html/Admin/Users/Prefs.html:31 html/Edit/Users/Info:96 html/User/Prefs.html:148 html/Work/Preferences/Info:116 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 msgid "Signature" msgstr "ç°½åæª”" @@ -5380,7 +6346,7 @@ msgstr "使用者:%1" msgid "Single" msgstr "單一" -#: html/Edit/Elements/104Top:21 html/Elements/Header:50 +#: html/Elements/Header:62 msgid "Skip Menu" msgstr "ç•¥éŽé¸å–®" @@ -5388,11 +6354,15 @@ msgstr "ç•¥éŽé¸å–®" msgid "Sort" msgstr "é †åº" +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Sort key" msgstr "æŽ’åºæ–¹å¼" -#: html/Search/Elements/PickRestriction:109 html/Work/Search/PickRestriction:95 +#: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "çµæžœæŽ’åºæ–¹å¼" @@ -5400,19 +6370,23 @@ msgstr "çµæžœæŽ’åºæ–¹å¼" msgid "SortOrder" msgstr "排åºé †åº" -#: html/Admin/Elements/EditScrip:80 html/Edit/Global/Scrip/Top:75 html/Work/Elements/List:8 html/Work/Elements/MyApprovals:11 +#: NOT FOUND IN SOURCE +msgid "Squelched message recipients" +msgstr "" + +#: html/Admin/Elements/EditScrip:65 msgid "Stage" msgstr "é—œå¡" -#: html/Edit/Global/Workflow/Top:11 +#: NOT FOUND IN SOURCE msgid "Stage Action" msgstr "é—œå¡é‹è¡Œå‹•作" -#: html/Edit/Global/Workflow/Top:7 +#: NOT FOUND IN SOURCE msgid "Stage Condition" msgstr "é—œå¡é‹è¡Œæ¢ä»¶" -#: html/Work/Elements/Quicksearch:17 +#: NOT FOUND IN SOURCE msgid "Stalled" msgstr "延宕" @@ -5420,7 +6394,7 @@ msgstr "延宕" msgid "Start page" msgstr "首é " -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 html/Work/Tickets/Elements/EditBasics:35 +#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 msgid "Started" msgstr "實際起始日" @@ -5428,7 +6402,7 @@ msgstr "實際起始日" msgid "Started date '%1' could not be parsed" msgstr "無法解讀起始日期 '%1" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 html/Work/Tickets/Elements/EditBasics:26 +#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 msgid "Starts" msgstr "應起始日" @@ -5440,19 +6414,19 @@ msgstr "應起始日" msgid "Starts date '%1' could not be parsed" msgstr "無法解讀起始日期 '%1" -#: html/Admin/Elements/ModifyUser:81 html/Admin/Users/Modify.html:137 html/User/Prefs.html:126 html/Work/Preferences/Info:88 +#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 msgid "State" msgstr "å·ž" -#: html/Elements/MyRequests:30 html/Elements/MyTickets:30 html/Search/Elements/PickRestriction:74 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:37 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:59 html/Work/Elements/List:19 html/Work/Elements/MyRequests:22 html/Work/Elements/MyTickets:22 html/Work/Search/PickRestriction:54 html/Work/Tickets/Elements/EditBasics:19 html/Work/Tickets/Update.html:22 lib/RT/Ticket_Overlay.pm:1214 lib/RT/Tickets_Overlay.pm:969 +#: 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 "ç¾æ³" -#: etc/initialdata:294 +#: etc/initialdata:309 msgid "Status Change" msgstr "ç¾æ³æ”¹è®Šæ™‚" -#: lib/RT/Transaction_Overlay.pm:477 +#: lib/RT/Transaction_Overlay.pm:505 #. ($self->loc($self->OldValue), $self->loc($self->NewValue)) msgid "Status changed from %1 to %2" msgstr "ç¾æ³å¾ž %1 改為 %2" @@ -5461,48 +6435,60 @@ msgstr "ç¾æ³å¾ž %1 改為 %2" msgid "StatusChange" msgstr "ç¾æ³æ”¹è®Šæ™‚" -#: html/Ticket/Elements/Tabs:152 +#: html/Ticket/Elements/Tabs:148 msgid "Steal" msgstr "å¼·åˆ¶æ›´æ›æ‰¿è¾¦äºº" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:94 msgid "Steal tickets" msgstr "強制承辦申請單" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:94 msgid "StealTicket" msgstr "強制承辦申請單" -#: lib/RT/Transaction_Overlay.pm:545 +#: lib/RT/Transaction_Overlay.pm:581 #. ($Old->Name) msgid "Stolen from %1 " msgstr "承辦人從 %1 強制更æ›" -#: html/Edit/Groups/Member:68 +#: NOT FOUND IN SOURCE msgid "Subgroup" msgstr "å­ç¾¤çµ„" -#: html/Elements/MyRequests:28 html/Elements/MyTickets:28 html/Search/Bulk.html:135 html/Search/Elements/PickRestriction:43 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:27 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:75 html/Work/Elements/List:15 html/Work/Elements/MyApprovals:9 html/Work/Elements/MyRequests:16 html/Work/Elements/MyTickets:16 html/Work/Search/Bulk.html:87 html/Work/Search/PickRestriction:22 html/Work/Tickets/Elements/AddSubject:8 html/Work/Tickets/Elements/EditBasics:8 html/Work/Tickets/Elements/ShowBasics:36 html/Work/Tickets/Elements/ShowSubject:8 lib/RT/Ticket_Overlay.pm:1210 lib/RT/Tickets_Overlay.pm:1048 +#: 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 "主題" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:567 +#: 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 "標題已改為 %1" -#: html/Edit/Users/Info:116 html/Elements/Submit:58 html/Work/Search/Bulk.html:103 +#: html/Elements/Submit:58 msgid "Submit" msgstr "é€å‡º" +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "é€å‡ºæµç¨‹" -#: lib/RT/Group_Overlay.pm:748 +#: lib/RT/Group_Overlay.pm:749 msgid "Succeeded" msgstr "設定æˆåŠŸ" +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Sun" msgstr "星期日" @@ -5511,15 +6497,15 @@ msgstr "星期日" msgid "Sun." msgstr "星期日" -#: html/Edit/Users/System:17 lib/RT/System.pm:53 +#: lib/RT/System.pm:53 msgid "SuperUser" msgstr "系統管ç†å“¡" -#: html/Edit/Global/Basic/Top:29 +#: NOT FOUND IN SOURCE msgid "Sync now" msgstr "åŸ·è¡ŒåŒæ­¥" -#: html/Edit/Global/Basic/Top:87 +#: NOT FOUND IN SOURCE msgid "Sync104HRMS" msgstr "è‡ªå‹•åŒæ­¥104HRMS" @@ -5531,11 +6517,15 @@ msgstr "æ­£åœ¨åŒæ­¥åŒ– HRMS 人事系統資料。請ç¨å¾…..." msgid "System" msgstr "系統" -#: html/Edit/Global/Scrip/Top:18 html/Edit/Global/Scrip/Top:44 +#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +msgid "System Configuration" +msgstr "系統設定" + +#: NOT FOUND IN SOURCE msgid "System Defined" msgstr "系統定義" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:567 lib/RT/Interface/Web.pm:858 lib/RT/Interface/Web.pm:888 +#: 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 "系統錯誤" @@ -5547,15 +6537,19 @@ msgstr "系統錯誤。設定權é™å¤±æ•—。" msgid "System Error. right not granted" msgstr "系統錯誤。設定權é™å¤±æ•—。" -#: html/Edit/Users/index.html:95 +#: NOT FOUND IN SOURCE msgid "System Rights" msgstr "系統權é™" -#: lib/RT/ACE_Overlay.pm:616 +#: html/Admin/Tools/index.html:2 +msgid "System Tools" +msgstr "系統工具" + +#: lib/RT/ACE_Overlay.pm:615 msgid "System error. Right not delegated." msgstr "系統錯誤。權é™ä»£ç†å¤±æ•—。" -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:898 +#: 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 "系統錯誤。設定權é™å¤±æ•—。" @@ -5575,7 +6569,7 @@ msgstr "系統內部用" msgid "SystemRolegroup for internal use" msgstr "內部使用的系統角色群組" -#: lib/RT/CurrentUser.pm:361 +#: lib/RT/CurrentUser.pm:334 msgid "TEST_STRING" msgstr "TEST_STRING" @@ -5583,23 +6577,27 @@ msgstr "TEST_STRING" msgid "TabbedUI" msgstr "é ç±¤ä»‹é¢" -#: html/Ticket/Elements/Tabs:148 +#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 msgid "Take" msgstr "å—ç†" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:92 msgid "Take tickets" msgstr "自行承辦申請單" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:92 msgid "TakeTicket" msgstr "自行承辦申請單" -#: lib/RT/Transaction_Overlay.pm:530 +#: lib/RT/Transaction_Overlay.pm:566 msgid "Taken" msgstr "å·²å—ç†" -#: html/Admin/Elements/EditScrip:88 +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "工作事項" + +#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 msgid "Template" msgstr "範本" @@ -5608,15 +6606,15 @@ msgstr "範本" msgid "Template #%1" msgstr "範本 #%1" -#: html/Edit/Global/Template/List:9 html/Edit/Global/Template/Top:17 +#: NOT FOUND IN SOURCE msgid "Template Content" msgstr "通知範本內容" -#: html/Edit/Global/Template/List:8 html/Edit/Global/Template/Top:13 +#: NOT FOUND IN SOURCE msgid "Template Description" msgstr "通知範本æè¿°" -#: html/Edit/Global/Template/List:7 html/Edit/Global/Template/Top:9 +#: NOT FOUND IN SOURCE msgid "Template Name" msgstr "通知範本å稱" @@ -5632,7 +6630,7 @@ msgstr "找ä¸åˆ°ç¯„本" msgid "Template not found\\n" msgstr "找ä¸åˆ°ç¯„本\\n" -#: lib/RT/Template_Overlay.pm:360 +#: lib/RT/Template_Overlay.pm:348 msgid "Template parsed" msgstr "範本剖æžå®Œç•¢" @@ -5640,7 +6638,7 @@ msgstr "範本剖æžå®Œç•¢" msgid "Templates" msgstr "範本" -#: html/Edit/Global/autohandler:8 html/Edit/Queues/autohandler:25 +#: NOT FOUND IN SOURCE msgid "Templates " msgstr "通知範本" @@ -5648,47 +6646,50 @@ msgstr "通知範本" msgid "Templates for %1\\n" msgstr "找ä¸åˆ° %1 的範本\\n" -#: lib/RT/Interface/Web.pm:956 +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "文字" + +#: lib/RT/Record.pm:740 msgid "That is already the current value" msgstr "å·²ç¶“æ˜¯ç›®å‰æ¬„ä½çš„值" -#: lib/RT/CustomField_Overlay.pm:249 +#: lib/RT/CustomField_Overlay.pm:248 msgid "That is not a value for this custom field" msgstr "這䏿˜¯è©²è‡ªè¨‚欄ä½çš„值" -#: lib/RT/Ticket_Overlay.pm:1934 +#: lib/RT/Ticket_Overlay.pm:2086 msgid "That is the same value" msgstr "åŒæ¨£çš„值" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:597 +#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 msgid "That principal already has that right" msgstr "這項單ä½å·²ç¶“æ“æœ‰è©²æ¬Šé™" -#: lib/RT/Queue_Overlay.pm:633 +#: lib/RT/Queue_Overlay.pm:674 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "這項單ä½å·²ç¶“是這個表單的 %1" -#: lib/RT/Ticket_Overlay.pm:1466 +#: lib/RT/Ticket_Overlay.pm:1527 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "這項單ä½å·²ç¶“是這份申請單的 %1" -#: lib/RT/Queue_Overlay.pm:732 +#: lib/RT/Queue_Overlay.pm:773 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "這項單ä½ä¸æ˜¯é€™å€‹è¡¨å–®çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1583 -#. ($args{'Type'}) +#: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" msgstr "這項單ä½ä¸æ˜¯é€™ä»½ç”³è«‹å–®çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1930 +#: lib/RT/Ticket_Overlay.pm:2082 msgid "That queue does not exist" msgstr "此表單ä¸å­˜åœ¨" -#: lib/RT/Ticket_Overlay.pm:3301 +#: lib/RT/Ticket_Overlay.pm:3152 msgid "That ticket has unresolved dependencies" msgstr "這份申請單有尚未解決的附屬申請單" @@ -5696,27 +6697,27 @@ msgstr "這份申請單有尚未解決的附屬申請單" msgid "That user already has that right" msgstr "使用者已具有該項權é™" -#: lib/RT/Ticket_Overlay.pm:3105 +#: lib/RT/Ticket_Overlay.pm:2956 msgid "That user already owns that ticket" msgstr "該使用者已經承辦這份申請單" -#: lib/RT/Ticket_Overlay.pm:3077 +#: lib/RT/Ticket_Overlay.pm:2928 msgid "That user does not exist" msgstr "使用者ä¸å­˜åœ¨" -#: lib/RT/User_Overlay.pm:381 +#: lib/RT/User_Overlay.pm:355 msgid "That user is already privileged" msgstr "這å使用者已經是內部æˆå“¡" -#: lib/RT/User_Overlay.pm:402 +#: lib/RT/User_Overlay.pm:376 msgid "That user is already unprivileged" msgstr "這å使用者屬於éžå…§éƒ¨æˆå“¡ç¾¤çµ„" -#: lib/RT/User_Overlay.pm:394 +#: lib/RT/User_Overlay.pm:368 msgid "That user is now privileged" msgstr "使用者加入內部æˆå“¡ç¾¤çµ„完畢" -#: lib/RT/User_Overlay.pm:415 +#: lib/RT/User_Overlay.pm:389 msgid "That user is now unprivileged" msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" @@ -5724,11 +6725,11 @@ msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" msgid "That user is now unprivilegedileged" msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" -#: lib/RT/Ticket_Overlay.pm:3098 +#: lib/RT/Ticket_Overlay.pm:2949 msgid "That user may not own tickets in that queue" msgstr "使用者å¯èƒ½æ²’有承辦表單裡的申請單" -#: lib/RT/Link_Overlay.pm:206 +#: lib/RT/Link_Overlay.pm:200 msgid "That's not a numerical id" msgstr "這䏿˜¯ä¸€å€‹æ•¸å­—編號" @@ -5744,19 +6745,19 @@ msgstr "申請單的副本收件人" msgid "The administrative CC of a ticket" msgstr "申請單的管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: lib/RT/Ticket_Overlay.pm:2263 +#: NOT FOUND IN SOURCE msgid "The comment has been recorded" msgstr "評論已被紀錄" -#: bin/rt-crontool:197 +#: 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 "下列命令會找到 'general' 表單內所有é‹ä½œä¸­çš„申請單,並將其中 4 å°æ™‚內未處ç†çš„申請單優先程度設為 99:" -#: bin/rt-commit-handler:755 bin/rt-commit-handler:765 +#: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" msgstr "以下命令未被執行:\\n\\n" -#: lib/RT/Interface/Web.pm:959 +#: lib/RT/Record.pm:743 msgid "The new value has been set." msgstr "新的欄ä½å€¼è¨­å®šå®Œæˆã€‚" @@ -5772,23 +6773,35 @@ msgstr "申請單的申請人" msgid "These comments aren't generally visible to the user" msgstr "è©²ä½¿ç”¨è€…ä¸æœƒçœ‹è¦‹é€™äº›è©•è«–" -#: html/Edit/Global/Workflow/Owner.html:32 +#: NOT FOUND IN SOURCE msgid "Third-" msgstr "三" +#: NOT FOUND IN SOURCE +msgid "This custom field does not apply to that object" +msgstr "此自訂欄ä½ä¸é©ç”¨æ–¼è©²ç‰©ä»¶" + +#: html/Admin/Tools/Configuration.html:5 +msgid "This feature is only available to system administrators" +msgstr "此項功能僅é™ç³»çµ±ç®¡ç†å“¡ä½¿ç”¨" + +#: html/Ticket/Elements/PreviewScrips:48 +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:188 +#: bin/rt-crontool:185 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "æ­¤å·¥å…·ç¨‹å¼æœƒè®“使用者經由 RT 執行任æ„命令。" -#: lib/RT/Transaction_Overlay.pm:200 +#: lib/RT/Transaction_Overlay.pm:226 msgid "This transaction appears to have no content" msgstr "此項更動報告沒有內容" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:48 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "使用者é€å‡ºçš„å‰ %1 份優先處ç†ç”³è«‹å–®" @@ -5805,7 +6818,7 @@ msgstr "星期四" msgid "Thu." msgstr "星期四" -#: html/Admin/Elements/ModifyTemplateAsWorkflow:163 html/Edit/Global/Workflow/Condition:24 +#: NOT FOUND IN SOURCE msgid "Ticket" msgstr "申請單" @@ -5827,22 +6840,32 @@ msgstr "更新申請單 #%1 的全部資訊:%2" msgid "Ticket #%1: %2" msgstr "申請單 #%1: %2" -#: lib/RT/Ticket_Overlay.pm:637 lib/RT/Ticket_Overlay.pm:658 +#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "申請單 %1" + +#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "申請單 #%1 æˆåŠŸæ–°å¢žæ–¼ '%2' 表單" -#: bin/rt-commit-handler:759 -#. ($Ticket->Id) +#: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" msgstr "載入申請單 %1\\n" -#: html/Search/Bulk.html:213 html/Work/Search/Bulk.html:169 +#: html/Search/Bulk.html:216 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "申請單 %1:%2" -#: html/Edit/Queues/Basic/Top:30 html/Edit/Queues/List:30 html/Work/Queues/List:10 +#: NOT FOUND IN SOURCE +msgid "Ticket Custom Fields" +msgstr "申請單的自訂欄ä½" + +#: NOT FOUND IN SOURCE msgid "Ticket Due" msgstr "è¡¨å–®è™•ç†æœŸé™" @@ -5851,11 +6874,11 @@ msgstr "è¡¨å–®è™•ç†æœŸé™" msgid "Ticket History # %1 %2" msgstr "申請單處ç†ç´€éŒ„ # %1 %2" -#: html/Work/Elements/List:6 +#: NOT FOUND IN SOURCE msgid "Ticket ID" msgstr "單號" -#: html/Work/Elements/SelectSearch:6 +#: NOT FOUND IN SOURCE msgid "Ticket Id" msgstr "申請單編號" @@ -5863,31 +6886,35 @@ msgstr "申請單編號" msgid "Ticket Processing Due" msgstr "表單é‹è¡ŒæœŸé™" -#: etc/initialdata:309 +#: etc/initialdata:324 msgid "Ticket Resolved" msgstr "申請單已解決" -#: html/Edit/Queues/Basic/Top:20 html/Edit/Queues/Category/List:6 html/Edit/Queues/Category/Top:7 html/Edit/Queues/List:21 html/Work/Delegates/List:7 html/Work/Delegates/index.html:12 html/Work/Elements/List:13 html/Work/Queues/Select.html:12 html/Work/Queues/index.html:12 html/Work/Tickets/Elements/ShowBasics:34 +#: NOT FOUND IN SOURCE +msgid "Ticket Transactions" +msgstr "申請單的更動" + +#: NOT FOUND IN SOURCE msgid "Ticket Type" msgstr "表單種類" -#: html/Search/Elements/PickRestriction:63 html/Work/Search/PickRestriction:43 +#: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "申請單附件" -#: lib/RT/Tickets_Overlay.pm:1227 +#: lib/RT/Tickets_Overlay.pm:1228 msgid "Ticket content" msgstr "申請單內容" -#: lib/RT/Tickets_Overlay.pm:1273 +#: lib/RT/Tickets_Overlay.pm:1274 msgid "Ticket content type" msgstr "申請單內容類別" -#: lib/RT/Ticket_Overlay.pm:525 lib/RT/Ticket_Overlay.pm:534 lib/RT/Ticket_Overlay.pm:544 lib/RT/Ticket_Overlay.pm:647 +#: 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 "內部錯誤,無法新增申請單" -#: lib/RT/Transaction_Overlay.pm:469 +#: lib/RT/Transaction_Overlay.pm:497 msgid "Ticket created" msgstr "申請單新增完畢" @@ -5895,7 +6922,7 @@ msgstr "申請單新增完畢" msgid "Ticket creation failed" msgstr "申請單新增失敗" -#: lib/RT/Transaction_Overlay.pm:474 +#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "申請單刪除完畢" @@ -5907,15 +6934,19 @@ msgstr "找ä¸åˆ°ç”³è«‹å–®ç·¨è™Ÿ" msgid "Ticket killed" msgstr "申請單刪除完畢" +#: html/Ticket/Display.html:33 +msgid "Ticket metadata" +msgstr "申請單的æè¿°è³‡è¨Š" + #: NOT FOUND IN SOURCE msgid "Ticket not found" msgstr "找ä¸åˆ°ç”³è«‹å–®" -#: etc/initialdata:295 +#: etc/initialdata:310 msgid "Ticket status changed" msgstr "ç”³è«‹å–®ç¾æ³å·²æ”¹è®Š" -#: html/Ticket/Update.html:38 +#: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "申請單視察員" @@ -5923,12 +6954,12 @@ msgstr "申請單視察員" msgid "Tickets" msgstr "申請單" -#: lib/RT/Tickets_Overlay.pm:1451 +#: lib/RT/Tickets_Overlay.pm:1452 #. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) msgid "Tickets %1 %2" msgstr "申請單 %1 %2" -#: lib/RT/Tickets_Overlay.pm:1409 +#: lib/RT/Tickets_Overlay.pm:1410 #. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) msgid "Tickets %1 by %2" msgstr "申請單 %1 (%2)" @@ -5941,8 +6972,7 @@ msgstr "待處ç†çš„申請單" msgid "Tickets I requested" msgstr "é€å‡ºçš„申請單" -#: html/Elements/ViewUser:25 -#. ($name) +#: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "%1 的申請單" @@ -5950,23 +6980,27 @@ msgstr "%1 的申請單" msgid "Tickets which depend on this approval:" msgstr "æ‰¹å‡†ä¹‹å¾Œï¼Œå¯æŽ¥çºŒè™•ç†ï¼š" -#: html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 html/Work/Tickets/Elements/EditBasics:32 +#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +msgid "Time Estimated" +msgstr "é è¨ˆæ™‚é–“" + +#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 msgid "Time Left" msgstr "剩餘時間" -#: html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:42 html/Work/Tickets/Elements/EditBasics:24 +#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 msgid "Time Worked" msgstr "è™•ç†æ™‚é–“" -#: lib/RT/Tickets_Overlay.pm:1200 +#: lib/RT/Tickets_Overlay.pm:1201 msgid "Time left" msgstr "剩餘時間" -#: html/Elements/Footer:36 +#: html/Elements/Footer:44 msgid "Time to display" msgstr "顯示時間" -#: lib/RT/Tickets_Overlay.pm:1176 +#: lib/RT/Tickets_Overlay.pm:1177 msgid "Time worked" msgstr "å·²è™•ç†æ™‚é–“" @@ -5974,43 +7008,64 @@ msgstr "å·²è™•ç†æ™‚é–“" msgid "TimeLeft" msgstr "剩餘時間" -#: lib/RT/Ticket_Overlay.pm:1215 +#: lib/RT/Ticket_Overlay.pm:1277 msgid "TimeWorked" msgstr "å·²è™•ç†æ™‚é–“" -#: bin/rt-commit-handler:401 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "產生這次更動的差異檔:" -#: bin/rt-commit-handler:390 +#: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" msgstr "產生這次更動的差異檔:\\n" -#: lib/RT/Ticket_Overlay.pm:1218 +#: html/Elements/Footer:39 +#. ('<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:1280 msgid "Told" msgstr "告知日期" -#: html/Edit/Elements/Page:45 +#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +msgid "Tools" +msgstr "工具" + +#: NOT FOUND IN SOURCE msgid "Total" msgstr "é " -#: etc/initialdata:237 +#: etc/initialdata:252 msgid "Transaction" msgstr "æ›´å‹•" -#: lib/RT/Transaction_Overlay.pm:669 +#: lib/RT/Transaction_Overlay.pm:705 #. ($self->Data) msgid "Transaction %1 purged" msgstr "清除更動報告 %1" -#: lib/RT/Transaction_Overlay.pm:126 +#: lib/RT/Transaction_Overlay.pm:136 msgid "Transaction Created" msgstr "更動報告已新增" -#: lib/RT/Transaction_Overlay.pm:90 +#: NOT FOUND IN SOURCE +msgid "Transaction Custom Fields" +msgstr "更動的自訂欄ä½" + +#: lib/RT/Transaction_Overlay.pm:92 msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "未指定申請單編號,無法新增更動" +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "未指定物件類別åŠç·¨è™Ÿï¼Œç„¡æ³•新增更動" + #: NOT FOUND IN SOURCE msgid "TransactionBatch" msgstr "批次更動時" @@ -6019,11 +7074,11 @@ msgstr "批次更動時" msgid "TransactionCreate" msgstr "新增更動時" -#: lib/RT/Transaction_Overlay.pm:724 +#: lib/RT/Transaction_Overlay.pm:760 msgid "Transactions are immutable" msgstr "ä¸å¯æ›´æ”¹æ›´å‹•報告" -#: html/Work/Approvals/Elements/Approve:52 +#: NOT FOUND IN SOURCE msgid "Transfer to" msgstr "移交給" @@ -6039,10 +7094,14 @@ msgstr "星期二" msgid "Tue." msgstr "星期二" -#: html/Admin/Elements/EditCustomField:43 html/Admin/Elements/ModifyTemplateAsWorkflow:135 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1216 lib/RT/Tickets_Overlay.pm:1020 +#: 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 "類別" +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "" + #: lib/RT/ScripCondition_Overlay.pm:103 msgid "Unimplemented" msgstr "尚無實作" @@ -6051,11 +7110,11 @@ msgstr "尚無實作" msgid "Unix login" msgstr "外部系統登入帳號" -#: html/Admin/Elements/ModifyUser:61 +#: NOT FOUND IN SOURCE msgid "UnixUsername" msgstr "外部系統登入帳號" -#: lib/RT/Attachment_Overlay.pm:283 lib/RT/Attachment_Overlay.pm:315 +#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 #. ($self->ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "ä¸å¯è§£çš„å…§å®¹æ–‡å­—ç·¨ç¢¼æ–¹å¼ %1" @@ -6064,51 +7123,79 @@ msgstr "ä¸å¯è§£çš„å…§å®¹æ–‡å­—ç·¨ç¢¼æ–¹å¼ %1" msgid "Unlimited" msgstr "全數顯示" +#: html/Search/Elements/SelectSearchesForObjects:15 +msgid "Unnamed search" +msgstr "未命å的查詢" + #: etc/initialdata:32 msgid "Unprivileged" msgstr "éžå…§éƒ¨æˆå“¡" -#: lib/RT/Transaction_Overlay.pm:526 +#: NOT FOUND IN SOURCE +msgid "Unselected Custom Fields" +msgstr "未é¸å–的自訂欄ä½" + +#: NOT FOUND IN SOURCE +msgid "Unselected objects" +msgstr "未é¸å–的物件" + +#: lib/RT/Transaction_Overlay.pm:562 msgid "Untaken" msgstr "未被å—ç†" -#: html/Edit/Elements/Page:13 html/Edit/Elements/Page:15 +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "未命å的查詢" + +#: NOT FOUND IN SOURCE msgid "Up" msgstr "上一é " -#: html/Elements/MyTickets:63 html/Search/Bulk.html:32 html/Work/Elements/MyTickets:91 html/Work/Search/Bulk.html:10 html/Work/Tickets/Elements/EditCustomFieldEntries:72 +#: html/Search/Bulk.html:32 msgid "Update" msgstr "處ç†" -#: html/Admin/Users/Prefs.html:61 +#: html/Search/Bulk.html:146 +msgid "Update All" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Update ID" msgstr "更新編號" -#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:65 html/Work/Search/Bulk.html:81 html/Work/Tickets/Update.html:32 +#: html/Ticket/Update.html:97 +msgid "Update Ticket" +msgstr "" + +#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 msgid "Update Type" msgstr "更新類別" -#: html/Search/Listing.html:60 html/Work/Search/index.html:32 +#: NOT FOUND IN SOURCE msgid "Update all these tickets at once" msgstr "整批更新申請單" -#: html/Admin/Users/Prefs.html:48 +#: NOT FOUND IN SOURCE msgid "Update email" msgstr "æ›´æ–°é›»å­éƒµä»¶ä¿¡ç®±" -#: html/Admin/Users/Prefs.html:54 +#: html/Search/Results.html:46 +msgid "Update multiple tickets" +msgstr "批次更新申請單" + +#: NOT FOUND IN SOURCE msgid "Update name" msgstr "更新帳號" -#: lib/RT/Interface/Web.pm:469 +#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 msgid "Update not recorded." msgstr "更新未被記錄" -#: html/Search/Bulk.html:80 html/Work/Search/Bulk.html:52 +#: html/Search/Bulk.html:78 msgid "Update selected tickets" msgstr "æ›´æ–°é¸æ“‡çš„申請單" -#: html/Admin/Users/Prefs.html:35 +#: NOT FOUND IN SOURCE msgid "Update signature" msgstr "更新簽章" @@ -6125,20 +7212,56 @@ msgstr "更新申請單 # %1" msgid "Update ticket #%1" msgstr "更新申請單 #%1" -#: html/Ticket/Update.html:139 +#: html/Ticket/Update.html:121 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "更新申請單 #%1 (%2)" -#: lib/RT/Interface/Web.pm:467 +#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 msgid "Update type was neither correspondence nor comment." msgstr "更新的內容並éžç”³è«‹å–®å›žè¦†ä¹Ÿä¸æ˜¯è©•è«–" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1219 +#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 msgid "Updated" msgstr "剿¬¡æ›´æ–°" -#: html/Work/Preferences/index.html:15 html/Work/Tickets/Elements/ShowTransaction:11 +#: html/Tools/Offline.html:73 +msgid "Upload" +msgstr "上載" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple files" +msgstr "上載多個檔案" + +#: NOT FOUND IN SOURCE +msgid "Upload multiple images" +msgstr "上載多份圖片" + +#: NOT FOUND IN SOURCE +msgid "Upload one file" +msgstr "上載一個檔案" + +#: NOT FOUND IN SOURCE +msgid "Upload one image" +msgstr "上載一份圖片" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 files" +msgstr "上載最多 %1 個檔案" + +#: NOT FOUND IN SOURCE +msgid "Upload up to %1 images" +msgstr "上載最多 %1 份圖片" + +#: html/Tools/Offline.html:73 +msgid "Upload your changes" +msgstr "上載您的更動" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User" msgstr "使用者" @@ -6150,6 +7273,11 @@ msgstr "使用者 %1 %2:%3\\n" msgid "User %1 Password: %2\\n" msgstr "使用者 %1 密碼:%2\\n" +#: lib/RT/Ticket_Overlay.pm:468 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'。" + #: NOT FOUND IN SOURCE msgid "User '%1' not found" msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'" @@ -6158,27 +7286,31 @@ msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'" msgid "User '%1' not found\\n" msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'\\n" -#: etc/initialdata:124 etc/initialdata:191 +#: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "使用者自訂" -#: html/Admin/Users/Prefs.html:58 +#: html/Admin/Elements/EditScrip:76 +msgid "User Defined conditions and actions" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "User ID" msgstr "使用者 ID" -#: html/Edit/Elements/SelectUsers:3 html/Elements/SelectUsers:25 +#: html/Elements/SelectUsers:25 msgid "User Id" msgstr "使用者 ID" -#: html/Edit/Elements/PickUsers:13 html/Edit/Global/UserRight/List:7 html/Edit/Global/UserRight/Top:9 html/Edit/Users/Add.html:13 html/Edit/Users/Search.html:23 html/Work/Delegates/Info:60 html/Work/Tickets/Cc:10 +#: NOT FOUND IN SOURCE msgid "User Number" msgstr "員工編號" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 html/Edit/Global/autohandler:11 html/Edit/Queues/autohandler:28 +#: 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 "使用者權é™" -#: html/Edit/Elements/Tab:34 +#: NOT FOUND IN SOURCE msgid "User Setup" msgstr "使用者設定" @@ -6186,12 +7318,16 @@ msgstr "使用者設定" msgid "User Shift" msgstr "å“¡å·¥ç­åˆ¥" -#: html/Admin/Users/Modify.html:225 +#: 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:252 #. ($msg) msgid "User could not be created: %1" msgstr "無法新增使用者:%1" -#: lib/RT/User_Overlay.pm:326 +#: lib/RT/User_Overlay.pm:296 msgid "User created" msgstr "使用者新增完畢" @@ -6207,7 +7343,7 @@ msgstr "使用者 %1 (%2) 新增完畢" msgid "User defined groups" msgstr "使用者定義的群組" -#: lib/RT/User_Overlay.pm:580 lib/RT/User_Overlay.pm:597 +#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 msgid "User loaded" msgstr "已載入使用者" @@ -6219,19 +7355,23 @@ msgstr "已通知使用者" msgid "User renamed from %1 to %2" msgstr "使用者 %1 已改å為 %2" -#: html/Admin/Users/Prefs.html:24 html/Admin/Users/Prefs.html:28 +#: NOT FOUND IN SOURCE msgid "User view" msgstr "使用者ç§äººè³‡æ–™" -#: html/Edit/Elements/PickUsers:38 html/Edit/Global/Workflow/Owner.html:48 html/Edit/Global/Workflow/Owner.html:73 html/Edit/Global/Workflow/Owner.html:82 +#: NOT FOUND IN SOURCE +msgid "User-defined groups" +msgstr "使用者自定群組" + +#: NOT FOUND IN SOURCE msgid "UserDefined" msgstr "使用者自定" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:54 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 msgid "Username" msgstr "帳號" -#: 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/Edit/Groups/Admin:9 html/User/Groups/Members.html:57 +#: 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 "使用者" @@ -6239,6 +7379,10 @@ msgstr "使用者" msgid "Users matching search criteria" msgstr "ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„使用者" +#: lib/RT/Tickets_Overlay_SQL.pm:494 +msgid "Valid Query" +msgstr "åˆç†çš„æŸ¥è©¢" + #: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "鏿“‡è¡¨å–®" @@ -6247,11 +7391,19 @@ msgstr "鏿“‡è¡¨å–®" msgid "Values" msgstr "欄ä½å€¼" -#: lib/RT/Queue_Overlay.pm:81 +#: NOT FOUND IN SOURCE +msgid "View log" +msgstr "檢視紀錄檔" + +#: NOT FOUND IN SOURCE +msgid "VrijevormEnkele" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:84 msgid "Watch" msgstr "視察" -#: lib/RT/Queue_Overlay.pm:82 +#: lib/RT/Queue_Overlay.pm:85 msgid "WatchAsAdminCc" msgstr "以管ç†å“¡å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è¦–察" @@ -6259,11 +7411,11 @@ msgstr "以管ç†å“¡å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è¦–察" msgid "Watcher loaded" msgstr "æˆåŠŸè¼‰å…¥è¦–å¯Ÿå“¡è³‡è¨Š" -#: html/Admin/Elements/QueueTabs:41 html/Edit/Elements/SelectQueues:5 +#: html/Admin/Elements/QueueTabs:41 msgid "Watchers" msgstr "視察員" -#: html/Admin/Elements/ModifyUser:55 +#: NOT FOUND IN SOURCE msgid "WebEncoding" msgstr "ç¶²é æ–‡å­—編碼方å¼" @@ -6275,112 +7427,127 @@ msgstr "星期三" msgid "Wed." msgstr "星期三" -#: etc/initialdata:503 etc/upgrade/2.1.71:161 html/Edit/Elements/CreateApprovalsQueue:135 +#: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" msgstr "ç•¶ç”³è«‹å–®é€šéŽæ‰€æœ‰ç°½æ ¸å¾Œï¼Œå°‡æ­¤è¨Šæ¯å›žè¦†åˆ°åŽŸç”³è«‹å–®" -#: etc/initialdata:467 etc/upgrade/2.1.71:135 html/Edit/Elements/CreateApprovalsQueue:107 +#: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" msgstr "ç•¶ç”³è«‹å–®é€šéŽæŸé …簽核後,將此訊æ¯å›žè¦†åˆ°åŽŸç”³è«‹å–®" -#: etc/initialdata:138 +#: etc/initialdata:146 msgid "When a ticket is created" msgstr "新增申請單時" -#: etc/initialdata:400 etc/upgrade/2.1.71:79 html/Edit/Elements/CreateApprovalsQueue:51 +#: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" msgstr "簽核單新增之後,通知應å—ç†çš„æ‰¿è¾¦äººåŠç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: etc/initialdata:143 +#: etc/initialdata:151 msgid "When anything happens" msgstr "當任何事情發生時" -#: etc/initialdata:184 +#: etc/initialdata:199 msgid "Whenever a ticket is resolved" msgstr "當申請單解決時" -#: etc/initialdata:170 +#: etc/initialdata:185 msgid "Whenever a ticket's owner changes" msgstr "ç•¶ç”³è«‹å–®æ›´æ›æ‰¿è¾¦äººæ™‚" -#: etc/initialdata:178 +#: 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:162 +#: etc/initialdata:170 msgid "Whenever a ticket's status changes" msgstr "ç•¶ç”³è«‹å–®æ›´æ–°ç¾æ³æ™‚" -#: etc/initialdata:192 +#: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" msgstr "當使用者自訂的情æ³ç™¼ç”Ÿæ™‚" -#: etc/initialdata:156 +#: etc/initialdata:164 msgid "Whenever comments come in" msgstr "ç•¶è©•è«–é€é”時" -#: etc/initialdata:149 +#: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "當回覆é€é”時" -#: html/Admin/Users/Modify.html:163 html/User/Prefs.html:67 html/Work/Preferences/Info:39 +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "" + +#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 msgid "Work" msgstr "å…¬å¸" -#: html/Admin/Elements/ModifyUser:69 +#: html/Search/Results.html:50 +msgid "Work offline" +msgstr "離線工作" + +#: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "å…¬å¸é›»è©±" -#: html/Ticket/Elements/ShowBasics:34 html/Ticket/Update.html:64 +#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 msgid "Worked" msgstr "è™•ç†æ™‚é–“" -#: html/Admin/Global/Workflow.html:91 html/Admin/Queues/Workflow.html:89 -#. ($WorkflowObj->Id()) +#: NOT FOUND IN SOURCE msgid "Workflow #%1" msgstr "æµç¨‹ #%1" -#: html/Edit/Global/Workflow/List:15 +#: NOT FOUND IN SOURCE msgid "Workflow Begin" msgstr "æµç¨‹é–‹å§‹" -#: html/Edit/Global/Workflow/List:20 +#: NOT FOUND IN SOURCE msgid "Workflow End" msgstr "æµç¨‹çµæŸ" -#: html/Admin/Elements/EditWorkflows:90 +#: NOT FOUND IN SOURCE msgid "Workflow deleted" msgstr "æµç¨‹å·²åˆªé™¤" -#: html/Edit/Global/autohandler:10 html/Edit/Queues/autohandler:27 +#: NOT FOUND IN SOURCE msgid "Workflows" msgstr "æµç¨‹" -#: html/Edit/Global/CustomField/SelectWritable:5 +#: NOT FOUND IN SOURCE msgid "Writable" msgstr "å¯è®€å¯«" -#: html/autohandler:151 +#: html/autohandler:150 msgid "XXX CHANGEME You are not an authorized user" msgstr "XXX CHANGEME 您是未經授權的使用者" -#: html/Edit/Global/Basic/Top:25 html/Edit/Queues/Basic/Top:82 +#: NOT FOUND IN SOURCE msgid "Yes" msgstr "是" -#: lib/RT/Ticket_Overlay.pm:3208 +#: lib/RT/Ticket_Overlay.pm:3059 msgid "You already own this ticket" msgstr "您已是這份申請單的承辦人" -#: html/autohandler:143 +#: html/autohandler:142 msgid "You are not an authorized user" msgstr "æ‚¨ä¸æ˜¯è¢«æŽˆæ¬Šçš„使用者" -#: html/Ticket/Elements/ShowTransaction:89 +#: NOT FOUND IN SOURCE msgid "You can access it with the Download button on the right." msgstr "您å¯ä»¥æŒ‰å³æ–¹çš„「下載ã€éµä¾†å–得。" -#: lib/RT/Ticket_Overlay.pm:3090 +#: lib/RT/Ticket_Overlay.pm:2941 msgid "You can only reassign tickets that you own or that are unowned" msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿è¾¦æˆ–是沒有承辦人的申請單" @@ -6401,11 +7568,11 @@ msgstr "您已登出 RT。" msgid "You have no permission to create tickets in that queue." msgstr "您沒有在該表單新增申請單的權é™ã€‚" -#: lib/RT/Ticket_Overlay.pm:1943 +#: lib/RT/Ticket_Overlay.pm:2095 msgid "You may not create requests in that queue." msgstr "您ä¸èƒ½åœ¨è©²è¡¨å–®ä¸­æå‡ºç”³è«‹ã€‚" -#: html/Edit/Global/Basic/Top:42 +#: NOT FOUND IN SOURCE msgid "You need to restart the Request Tracker service for saved changes to take effect." msgstr "æ‚¨å¿…é ˆé‡æ–°å•Ÿå‹• Request Tracker æœå‹™ï¼Œå„²å­˜çš„æ›´å‹•纔會生效。" @@ -6421,11 +7588,11 @@ msgstr "您æå‡ºçš„ %1 申請單" msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" msgstr "RT 管ç†å“¡å¯èƒ½è¨­éŒ¯äº†ç”± RT 寄出的郵件收件人標頭檔" -#: etc/initialdata:484 etc/upgrade/2.1.71:146 html/Edit/Elements/CreateApprovalsQueue:119 +#: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." msgstr "申請單已由 %1 批准。å¯èƒ½é‚„有其他待簽核的步驟。" -#: etc/initialdata:522 etc/upgrade/2.1.71:180 html/Edit/Elements/CreateApprovalsQueue:154 +#: etc/initialdata:540 msgid "Your request has been approved." msgstr "您的申請單已完æˆç°½æ ¸ç¨‹åºã€‚" @@ -6437,15 +7604,15 @@ msgstr "您的申請單已被é§å›ž" msgid "Your request was rejected by %1." msgstr "您的申請單已被 %1 é§å›žã€‚" -#: etc/initialdata:427 etc/upgrade/2.1.71:101 html/Edit/Elements/CreateApprovalsQueue:73 +#: etc/initialdata:445 msgid "Your request was rejected." msgstr "您的申請單已被é§å›žã€‚" -#: html/autohandler:196 +#: html/autohandler:177 msgid "Your username or password is incorrect" msgstr "您的帳號或密碼有誤" -#: html/Admin/Elements/ModifyUser:83 html/Admin/Users/Modify.html:143 html/User/Prefs.html:130 html/Work/Preferences/Info:90 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 msgid "Zip" msgstr "郵éžå€è™Ÿ" @@ -6461,6 +7628,14 @@ msgstr "éŽæœŸ" msgid "alert" msgstr "急訊" +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "" + #: NOT FOUND IN SOURCE msgid "approving" msgstr "待簽核" @@ -6478,19 +7653,19 @@ msgstr "已解決" msgid "contains" msgstr "包å«" -#: html/Elements/SelectAttachmentField:25 +#: NOT FOUND IN SOURCE msgid "content" msgstr "內容" -#: html/Elements/SelectAttachmentField:26 +#: NOT FOUND IN SOURCE msgid "content-type" msgstr "類型" -#: lib/RT/Ticket_Overlay.pm:2334 +#: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" msgstr "申請單回覆(å¯èƒ½)未é€å‡º" -#: lib/RT/Ticket_Overlay.pm:2344 +#: NOT FOUND IN SOURCE msgid "correspondence sent" msgstr "申請單回覆已é€å‡º" @@ -6498,7 +7673,7 @@ msgstr "申請單回覆已é€å‡º" msgid "critical" msgstr "åš´é‡" -#: html/Admin/Elements/ModifyQueue:62 html/Admin/Queues/Modify.html:76 html/Edit/Queues/Basic/Top:34 html/Edit/Queues/List:32 html/Work/Queues/List:12 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 msgid "days" msgstr "天" @@ -6510,15 +7685,15 @@ msgstr "拒絕處ç†" msgid "debug" msgstr "åµéŒ¯" -#: html/Search/Listing.html:74 +#: NOT FOUND IN SOURCE msgid "delete" msgstr "刪除" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:64 msgid "deleted" msgstr "已刪除" -#: html/Search/Elements/PickRestriction:68 html/Work/Search/PickRestriction:47 +#: html/Search/Elements/PickBasics:33 msgid "does not match" msgstr "ä¸ç¬¦åˆ" @@ -6526,7 +7701,7 @@ msgstr "ä¸ç¬¦åˆ" msgid "doesn't contain" msgstr "ä¸åŒ…å«" -#: html/Search/Elements/PickRestriction:38 +#: NOT FOUND IN SOURCE msgid "email address" msgstr "é›»å­éƒµä»¶ä¿¡ç®±" @@ -6546,7 +7721,7 @@ msgstr "錯誤" msgid "false" msgstr "å‡" -#: html/Elements/SelectAttachmentField:27 +#: NOT FOUND IN SOURCE msgid "filename" msgstr "檔å" @@ -6554,7 +7729,7 @@ msgstr "檔å" msgid "greater than" msgstr "大於" -#: lib/RT/Group_Overlay.pm:194 +#: lib/RT/Group_Overlay.pm:196 #. ($self->Name) msgid "group '%1'" msgstr "群組 '%1'" @@ -6567,15 +7742,19 @@ msgstr "å°æ™‚" msgid "id" msgstr "編號" +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "info" msgstr "資訊" -#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickRestriction:47 html/Search/Elements/PickRestriction:76 html/Search/Elements/PickRestriction:88 html/Work/Search/PickRestriction:27 html/Work/Search/PickRestriction:56 html/Work/Search/PickRestriction:75 +#: 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 "是" -#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickRestriction:48 html/Search/Elements/PickRestriction:77 html/Search/Elements/PickRestriction:89 html/Work/Search/PickRestriction:28 html/Work/Search/PickRestriction:57 html/Work/Search/PickRestriction:76 +#: 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 "䏿˜¯" @@ -6583,11 +7762,11 @@ msgstr "䏿˜¯" msgid "less than" msgstr "å°æ–¼" -#: html/Edit/Global/Workflow/Owner.html:35 +#: NOT FOUND IN SOURCE msgid "level Admin" msgstr "層主管" -#: html/Search/Elements/PickRestriction:67 html/Work/Search/PickRestriction:46 +#: html/Search/Elements/PickBasics:32 msgid "matches" msgstr "符åˆ" @@ -6595,11 +7774,11 @@ msgstr "符åˆ" msgid "min" msgstr "分" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:42 msgid "minutes" msgstr "分é˜" -#: bin/rt-commit-handler:764 +#: NOT FOUND IN SOURCE msgid "modifications\\n\\n" msgstr "更改\\n\\n" @@ -6607,7 +7786,7 @@ msgstr "更改\\n\\n" msgid "months" msgstr "月" -#: lib/RT/Queue_Overlay.pm:57 +#: lib/RT/Queue_Overlay.pm:59 msgid "new" msgstr "新建立" @@ -6619,7 +7798,7 @@ msgstr "沒有å稱" msgid "no value" msgstr "沒有值" -#: html/Admin/Elements/EditQueueWatchers:26 html/Edit/Groups/Member:40 html/Edit/Groups/Members/Add.html:17 html/Edit/Groups/Members/List:8 html/Edit/Queues/List:32 html/Ticket/Elements/EditWatchers:27 html/Work/Delegates/Info:37 html/Work/Delegates/Info:48 html/Work/Overview/Info:31 html/Work/Queues/List:12 html/Work/Tickets/Elements/EditWatchers:5 html/Work/Tickets/Elements/ShowAttachments:30 html/Work/Tickets/Elements/ShowBasics:27 +#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 msgid "none" msgstr "ç„¡" @@ -6635,11 +7814,11 @@ msgstr "æç¤º" msgid "notlike" msgstr "ä¸ç¬¦åˆ" -#: html/Edit/Elements/PickUsers:18 html/Edit/Users/Add.html:18 html/Edit/Users/Search.html:28 html/Work/Tickets/Cc:15 +#: NOT FOUND IN SOURCE msgid "number" msgstr "號" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:58 +#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 msgid "open" msgstr "開啟" @@ -6647,25 +7826,25 @@ msgstr "開啟" msgid "opened" msgstr "已開啟" -#: lib/RT/Group_Overlay.pm:199 +#: lib/RT/Group_Overlay.pm:201 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "使用者「%2ã€çš„「%1ã€ä»£ç†äººç¾¤çµ„" -#: lib/RT/Group_Overlay.pm:207 +#: lib/RT/Group_Overlay.pm:209 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "表單 %1 %2" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:63 msgid "rejected" msgstr "å·²é§å›ž" -#: lib/RT/Queue_Overlay.pm:60 +#: lib/RT/Queue_Overlay.pm:62 msgid "resolved" msgstr "已處ç†" -#: html/Edit/Global/Basic/Top:53 +#: NOT FOUND IN SOURCE msgid "rtname" msgstr "伺æœå™¨å稱" @@ -6673,16 +7852,20 @@ msgstr "伺æœå™¨å稱" msgid "sec" msgstr "ç§’" -#: lib/RT/Queue_Overlay.pm:59 +#: html/Search/Results.html:48 +msgid "spreadsheet" +msgstr "試算表" + +#: lib/RT/Queue_Overlay.pm:61 msgid "stalled" msgstr "延宕" -#: lib/RT/Group_Overlay.pm:202 +#: lib/RT/Group_Overlay.pm:204 #. ($self->Type) msgid "system %1" msgstr "系統 %1" -#: lib/RT/Group_Overlay.pm:213 +#: lib/RT/Group_Overlay.pm:215 #. ($self->Type) msgid "system group '%1'" msgstr "系統群組 '%1'" @@ -6691,21 +7874,20 @@ msgstr "系統群組 '%1'" msgid "the calling component did not specify why" msgstr "呼å«å…ƒä»¶æœªæŒ‡æ˜ŽåŽŸå› " -#: lib/RT/URI/fsck_com_rt.pm:234 -#. ($self->Object->Id) +#: NOT FOUND IN SOURCE msgid "ticket #%1" msgstr "申請單 #%1" -#: lib/RT/Group_Overlay.pm:210 +#: lib/RT/Group_Overlay.pm:212 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "申請單 #%1 %2" -#: html/Work/Elements/SelectSearch:33 +#: NOT FOUND IN SOURCE msgid "till" msgstr "至" -#: html/Edit/Elements/PickUsers:16 html/Edit/Global/Workflow/Condition:31 html/Edit/Users/Add.html:16 html/Edit/Users/Search.html:26 html/Work/Tickets/Cc:13 +#: NOT FOUND IN SOURCE msgid "to" msgstr "到" @@ -6713,16 +7895,20 @@ msgstr "到" msgid "true" msgstr "真" -#: lib/RT/Group_Overlay.pm:216 +#: lib/RT/Group_Overlay.pm:218 #. ($self->Id) msgid "undescribed group %1" msgstr "沒有æè¿°çš„群組 %1" +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "unresolved" msgstr "未處ç†" -#: lib/RT/Group_Overlay.pm:191 +#: lib/RT/Group_Overlay.pm:193 #. ($user->Object->Name) msgid "user %1" msgstr "使用者 %1" @@ -6743,3 +7929,7 @@ msgstr "範本:%1" msgid "years" msgstr "å¹´" +#: NOT FOUND IN SOURCE +msgid "ニックãƒãƒ¼ãƒ " +msgstr "" + diff --git a/rt/lib/RT/Interface/CLI.pm b/rt/lib/RT/Interface/CLI.pm index a3c840af5..417999473 100644 --- a/rt/lib/RT/Interface/CLI.pm +++ b/rt/lib/RT/Interface/CLI.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK use strict; use RT; @@ -33,7 +55,7 @@ BEGIN { 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.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker + $VERSION = do { my @r = (q$Revision: 1.1.1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw(Exporter); diff --git a/rt/lib/RT/Interface/Email.pm b/rt/lib/RT/Interface/Email.pm index 52542a149..04539a3a6 100755 --- a/rt/lib/RT/Interface/Email.pm +++ b/rt/lib/RT/Interface/Email.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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.) # -# END LICENSE BLOCK +# 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 package RT::Interface::Email; use strict; @@ -34,7 +56,7 @@ BEGIN { 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.3 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker + $VERSION = do { my @r = (q$Revision: 1.1.1.4 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw(Exporter); @@ -166,6 +188,7 @@ sub MailError { Bcc => $args{'Bcc'}, To => $args{'To'}, Subject => $args{'Subject'}, + Precedence => 'bulk', 'X-RT-Loop-Prevention' => $RT::rtname, ); @@ -415,37 +438,8 @@ sub Gateway { } my $parser = RT::EmailParser->new(); - my ( $fh, $temp_file ); - for ( 1 .. 10 ) { - - # on NFS and NTFS, it is possible that tempfile() conflicts - # with other processes, causing a race condition. we try to - # accommodate this by pausing and retrying. - last if ( $fh, $temp_file ) = eval { File::Temp::tempfile(undef, UNLINK => 0) }; - sleep 1; - } - if ($fh) { - binmode $fh; #thank you, windows - $fh->autoflush(1); - print $fh $args{'message'}; - close($fh); - - if ( -f $temp_file ) { - $parser->ParseMIMEEntityFromFile($temp_file); - unlink( $temp_file ); - if ($parser->Entity) { - delete $args{'message'}; - } - } - } - - #If for some reason we weren't able to parse the message using a temp file - # try it with a scalar - if ($args{'message'}) { - $parser->ParseMIMEEntityFromScalar($args{'message'}); - - } + $parser->SmartParseMIMEEntityFromScalar( Message => $args{'message'}); if (!$parser->Entity()) { MailError( @@ -478,9 +472,12 @@ sub Gateway { $args{'ticket'} ||= $parser->ParseTicketId($Subject); my $SystemTicket; + my $Right = 'CreateTicket'; if ( $args{'ticket'} ) { $SystemTicket = RT::Ticket->new($RT::SystemUser); $SystemTicket->Load( $args{'ticket'} ); + # if there's an existing ticket, this must be a reply + $Right = 'ReplyToTicket'; } #Set up a queue object @@ -502,28 +499,29 @@ sub Gateway { # Since this needs loading, no matter what - for (@RT::MailPlugins) { + foreach (@RT::MailPlugins) { my $Code; my $NewAuthStat; if ( ref($_) eq "CODE" ) { $Code = $_; } else { - $_ = "RT::Interface::Email::$_" unless /^RT::Interface::Email::/; + $_ = "RT::Interface::Email::".$_ unless $_ =~ /^RT::Interface::Email::/; eval "require $_;"; if ($@) { - die ("Couldn't load module $_: $@"); + $RT::Logger->crit("Couldn't load module '$_': $@"); next; } no strict 'refs'; if ( !defined( $Code = *{ $_ . "::GetCurrentUser" }{CODE} ) ) { - die ("No GetCurrentUser code found in $_ module"); + $RT::Logger->crit("No GetCurrentUser code found in $_ module"); next; } } ( $CurrentUser, $NewAuthStat ) = $Code->( Message => $Message, + RawMessageRef => \$args{'message'}, CurrentUser => $CurrentUser, AuthLevel => $AuthStat, Action => $args{'action'}, @@ -531,6 +529,7 @@ sub Gateway { Queue => $SystemQueueObj ); + # If a module returns a "-1" then we discard the ticket, so. $AuthStat = -1 if $NewAuthStat == -1; @@ -554,7 +553,7 @@ sub Gateway { RT could not load a valid user, and RT's configuration does not allow for the creation of a new user for this email ($ErrorsTo). -You might need to grant 'Everyone' the right 'CreateTicket' for the +You might need to grant 'Everyone' the right '$Right' for the queue @{[$args{'queue'}]}. EOT @@ -623,10 +622,10 @@ EOT Explanation => "RT thinks this message may be a bounce", MIMEObj => $Message ); - - #Do we actually want to store it? - return ( 0, "Message Bounced", undef ) unless ($RT::StoreLoops); } + + #Do we actually want to store it? + return ( 0, "Message Bounced", undef ) unless ($RT::StoreLoops); } # }}} @@ -754,6 +753,7 @@ EOT return ( 1, "Success", $Ticket ); } + eval "require RT::Interface::Email_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Email_Vendor.pm}); eval "require RT::Interface::Email_Local"; diff --git a/rt/lib/RT/Interface/Email/Auth/GnuPG.pm b/rt/lib/RT/Interface/Email/Auth/GnuPG.pm new file mode 100755 index 000000000..724b1b3fc --- /dev/null +++ b/rt/lib/RT/Interface/Email/Auth/GnuPG.pm @@ -0,0 +1,121 @@ +# {{{ 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 +# +package RT::Interface::Email::Auth::GnuPG; +use Mail::GnuPG; + +=head2 GetCurrentUser + +To use the gnupg-secured mail gateway, you need to do the following: + +Set up a gnupgp key directory with a pubring containing only the keys +you care about and specify the following in your SiteConfig.pm + +Set($RT::GPGKeyDir, "/path/to/keyring-directory"); +@RT::MailPlugins = qw(Auth::MailFrom Auth::GnuPG Filter::TakeAction); + + + +=cut + + + +sub GetCurrentUser { + my %args = ( + Message => undef, + RawMessageRef => undef, + CurrentUser => undef, + AuthLevel => undef, + Ticket => undef, + Queue => undef, + Action => undef, + @_ + ); + + my ( $val, $key, $address,$gpg ); + + eval { + + my $parser = RT::EmailParser->new(); + $parser->SmartParseMIMEEntityFromScalar(Message => ${$args{'RawMessageRef'}}, Decode => 0); + $gpg = Mail::GnuPG->new( keydir => $RT::GPGKeyDir ); + my $entity = $parser->Entity; + ( $val, $key, $address ) = $gpg->verify( $parser->Entity); + $RT::Logger->crit("Got $val - $key - $address"); + }; + + if ($@) { + $RT::Logger->crit($@); + } + + unless ($address) { + $RT::Logger->crit( "Couldn't find a valid signature" . join ( "\n", @{ $gpg->{'last_message'} } ) ); + return ( $args{'CurrentUser'}, $args{'AuthLevel'} ); + } + + my @addrs = Mail::Address->parse($address); + $address = $addrs[0]->address(); + + my $CurrentUser = RT::CurrentUser->new(); + $CurrentUser->LoadByEmail($address); + + if ( $CurrentUser->Id ) { + $RT::Logger->crit($address . " authenticated via PGP signature"); + return ( $CurrentUser, 2 ); + } + +} + +eval "require RT::Interface::Email::Auth::GnuPG_Vendor"; +die $@ + if ( $@ + && $@ !~ qr{^Can't locate RT/Interface/Email/Auth/GnuPG_Vendor.pm} ); +eval "require RT::Interface::Email::Auth::GnuPG_Local"; +die $@ + if ( $@ + && $@ !~ qr{^Can't locate RT/Interface/Email/Auth/GnuPG_Local.pm} ); + +1; diff --git a/rt/lib/RT/Interface/Email/Auth/MailFrom.pm b/rt/lib/RT/Interface/Email/Auth/MailFrom.pm index f71666b72..0efadb1cd 100644 --- a/rt/lib/RT/Interface/Email/Auth/MailFrom.pm +++ b/rt/lib/RT/Interface/Email/Auth/MailFrom.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 package RT::Interface::Email::Auth::MailFrom; use RT::Interface::Email qw(ParseSenderAddressFromHead CreateUser); @@ -35,6 +57,7 @@ sub GetCurrentUser { Action => undef, @_ ); + # We don't need to do any external lookups my ( $Address, $Name ) = ParseSenderAddressFromHead( $args{'Message'}->head ); my $CurrentUser = RT::CurrentUser->new(); @@ -71,7 +94,7 @@ sub GetCurrentUser { # We have a ticket. that means we're commenting or corresponding if ( $args{'Action'} =~ /^comment$/i ) { - # check to see whether "Everybody" or "Unprivileged users" can comment on tickets + # check to see whether "Everyone" or "Unprivileged users" can comment on tickets unless ( $everyone->PrincipalObj->HasRight( Object => $args{'Queue'}, Right => 'CommentOnTicket' @@ -110,8 +133,6 @@ sub GetCurrentUser { # check to see whether "Everybody" or "Unprivileged users" can create tickets in this queue unless ( $everyone->PrincipalObj->HasRight( Object => $args{'Queue'}, Right => 'CreateTicket' ) - || $unpriv->PrincipalObj->HasRight( Object => $args{'Queue'}, - Right => 'CreateTicket' ) ) { return ( $args{'CurrentUser'}, 0 ); } diff --git a/rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm b/rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm index f00e2d82b..8c9eae88c 100644 --- a/rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm +++ b/rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::Interface::Email::Filter::SpamAssassin; use Mail::SpamAssassin; diff --git a/rt/lib/RT/Interface/REST.pm b/rt/lib/RT/Interface/REST.pm index 1ec4f21f9..8c8baa1e7 100644 --- a/rt/lib/RT/Interface/REST.pm +++ b/rt/lib/RT/Interface/REST.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK # lib/RT/Interface/REST.pm # @@ -32,7 +54,7 @@ BEGIN { use Exporter (); use vars qw($VERSION @ISA @EXPORT); - $VERSION = do { my @r = (q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d"x$#r, @r }; + $VERSION = do { my @r = (q$Revision: 1.1.1.2 $ =~ /\d+/g); sprintf "%d."."%02d"x$#r, @r }; @ISA = qw(Exporter); @EXPORT = qw(expand_list form_parse form_compose vpush vsplit); diff --git a/rt/lib/RT/Interface/Web.pm b/rt/lib/RT/Interface/Web.pm index 329a2801b..0151cc1f1 100644 --- a/rt/lib/RT/Interface/Web.pm +++ b/rt/lib/RT/Interface/Web.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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.) # -# END LICENSE BLOCK +# 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 ## Portions Copyright 2000 Tobias Brox <tobix@fsck.com> ## This is a library of static subs to be used by the Mason web @@ -45,75 +67,6 @@ use strict; - - -# {{{ sub NewApacheHandler - -=head2 NewApacheHandler - - Takes extra options to pass to HTML::Mason::ApacheHandler->new - Returns a new Mason::ApacheHandler object - -=cut - -sub NewApacheHandler { - require HTML::Mason::ApacheHandler; - my $ah = new HTML::Mason::ApacheHandler( - - comp_root => [ - [ local => $RT::MasonLocalComponentRoot ], - [ standard => $RT::MasonComponentRoot ] - ], - args_method => "CGI", - default_escape_flags => 'h', - allow_globals => [qw(%session)], - data_dir => "$RT::MasonDataDir", - autoflush => 1, - @_ - ); - - $ah->interp->set_escape( h => \&RT::Interface::Web::EscapeUTF8 ); - - return ($ah); -} - -# }}} - -# {{{ sub NewCGIHandler - -=head2 NewCGIHandler - - Returns a new Mason::CGIHandler object - -=cut - -sub NewCGIHandler { - my %args = ( - @_ - ); - - my $handler = HTML::Mason::CGIHandler->new( - comp_root => [ - [ local => $RT::MasonLocalComponentRoot ], - [ standard => $RT::MasonComponentRoot ] - ], - data_dir => "$RT::MasonDataDir", - default_escape_flags => 'h', - allow_globals => [qw(%session)], - autoflush => 1, - @_ - ); - - - $handler->interp->set_escape( h => \&RT::Interface::Web::EscapeUTF8 ); - - - return ($handler); - -} -# }}} - - # {{{ EscapeUTF8 =head2 EscapeUTF8 SCALARREF @@ -136,6 +89,7 @@ sub EscapeUTF8 { $$ref = $val; Encode::_utf8_on($$ref); + } # }}} @@ -321,6 +275,7 @@ sub CreateTicket { } my %create_args = ( + Type => $ARGS{'Type'} || 'ticket', Queue => $ARGS{'Queue'}, Owner => $ARGS{'Owner'}, InitialPriority => $ARGS{'InitialPriority'}, @@ -337,36 +292,54 @@ sub CreateTicket { Starts => $starts->ISO, MIMEObj => $MIMEObj ); - foreach my $arg (%ARGS) { + foreach my $arg (%ARGS) { if ($arg =~ /^CustomField-(\d+)(.*?)$/) { next if ($arg =~ /-Magic$/); $create_args{"CustomField-".$1} = $ARGS{"$arg"}; } } - my ( $id, $Trans, $ErrMsg ) = $Ticket->Create(%create_args); - unless ( $id && $Trans ) { - Abort($ErrMsg); + + # turn new link lists into arrays, and pass in the proper arguments + my (@dependson, @dependedonby, + @parents, @children, + @refersto, @referredtoby); + + foreach my $luri ( split ( / /, $ARGS{"new-DependsOn"} ) ) { + $luri =~ s/\s*$//; # Strip trailing whitespace + push @dependson, $luri; } - my @linktypes = qw( DependsOn MemberOf RefersTo ); + $create_args{'DependsOn'} = \@dependson; - foreach my $linktype (@linktypes) { - foreach my $luri ( split ( / /, $ARGS{"new-$linktype"} ) ) { - $luri =~ s/\s*$//; # Strip trailing whitespace - my ( $val, $msg ) = $Ticket->AddLink( - Target => $luri, - Type => $linktype - ); - push ( @Actions, $msg ) unless ($val); - } + foreach my $luri ( split ( / /, $ARGS{"DependsOn-new"} ) ) { + push @dependedonby, $luri; + } + $create_args{'DependedOnBy'} = \@dependedonby; - foreach my $luri ( split ( / /, $ARGS{"$linktype-new"} ) ) { - my ( $val, $msg ) = $Ticket->AddLink( - Base => $luri, - Type => $linktype - ); + foreach my $luri ( split ( / /, $ARGS{"new-MemberOf"} ) ) { + $luri =~ s/\s*$//; # Strip trailing whitespace + push @parents, $luri; + } + $create_args{'Parents'} = \@parents; - push ( @Actions, $msg ) unless ($val); - } + foreach my $luri ( split ( / /, $ARGS{"MemberOf-new"} ) ) { + push @children, $luri; + } + $create_args{'Children'} = \@children; + + foreach my $luri ( split ( / /, $ARGS{"new-RefersTo"} ) ) { + $luri =~ s/\s*$//; # Strip trailing whitespace + push @refersto, $luri; + } + $create_args{'RefersTo'} = \@refersto; + + foreach my $luri ( split ( / /, $ARGS{"RefersTo-new"} ) ) { + push @referredtoby, $luri; + } + $create_args{'ReferredToBy'} = \@referredtoby; + + my ( $id, $Trans, $ErrMsg ) = $Ticket->Create(%create_args); + unless ( $id && $Trans ) { + Abort($ErrMsg); } push ( @Actions, split("\n", $ErrMsg) ); @@ -447,7 +420,7 @@ sub ProcessUpdateMessage { ## TODO: Implement public comments if ( $args{ARGSRef}->{'UpdateType'} =~ /^(private|public)$/ ) { - my ( $Transaction, $Description ) = $args{TicketObj}->Comment( + my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Comment( CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, MIMEObj => $Message, @@ -456,7 +429,7 @@ sub ProcessUpdateMessage { push ( @{ $args{Actions} }, $Description ); } elsif ( $args{ARGSRef}->{'UpdateType'} eq 'response' ) { - my ( $Transaction, $Description ) = $args{TicketObj}->Correspond( + my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Correspond( CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, MIMEObj => $Message, @@ -923,52 +896,12 @@ sub UpdateRecordObject { @_ ); - my (@results); - - my $object = $args{'Object'}; - my $attributes = $args{'AttributesRef'}; - my $ARGSRef = $args{'ARGSRef'}; - foreach my $attribute (@$attributes) { - my $value; - if ( defined $ARGSRef->{$attribute} ) { - $value = $ARGSRef->{$attribute}; - } - elsif ( - defined( $args{'AttributePrefix'} ) - && defined( - $ARGSRef->{ $args{'AttributePrefix'} . "-" . $attribute } - ) - ) { - $value = $ARGSRef->{ $args{'AttributePrefix'} . "-" . $attribute }; - - } else { - next; - } + my $Object = $args{'Object'}; + my @results = $Object->Update(AttributesRef => $args{'AttributesRef'}, + ARGSRef => $args{'ARGSRef'}, + AttributePrefix => $args{'AttributePrefix'} + ); - $value =~ s/\r\n/\n/gs; - - if ($value ne $object->$attribute()){ - - my $method = "Set$attribute"; - my ( $code, $msg ) = $object->$method($value); - - push @results, loc($attribute) . ': ' . loc_fuzzy($msg); -=for loc - "[_1] could not be set to [_2].", # loc - "That is already the current value", # loc - "No value sent to _Set!\n", # loc - "Illegal value for [_1]", # loc - "The new value has been set.", # loc - "No column specified", # loc - "Immutable field", # loc - "Nonexistant field?", # loc - "Invalid data", # loc - "Couldn't find row", # loc - "Missing a primary key?: [_1]", # loc - "Found Object", # loc -=cut - }; - } return (@results); } @@ -1060,6 +993,7 @@ sub ProcessTicketBasics { TimeEstimated TimeWorked TimeLeft + Type Status Queue ); @@ -1072,6 +1006,8 @@ sub ProcessTicketBasics { } } + $ARGSRef->{'Status'} ||= $TicketObj->Status; + my @results = UpdateRecordObject( AttributesRef => \@attribs, Object => $TicketObj, @@ -1153,6 +1089,11 @@ sub ProcessTicketCustomFieldUpdates { ( ref( $ARGSRef->{$arg} ) eq 'ARRAY' ) ? @{ $ARGSRef->{$arg} } : split /\n/, $ARGSRef->{$arg} ; + + #for poor windows boxen that pass in "\r\n" + local $/ = "\r"; + chomp @values; + if ( ( $arg =~ /-AddValue$/ ) || ( $arg =~ /-Value$/ ) ) { foreach my $value (@values) { next unless length($value); @@ -1263,7 +1204,7 @@ sub ProcessTicketWatchers { foreach my $key ( keys %$ARGSRef ) { # {{{ Delete deletable watchers - if ( ( $key =~ /^Ticket-DelWatcher-Type-(.*)-Principal-(\d+)$/ ) ) { + if ( ( $key =~ /^Ticket-DeleteWatcher-Type-(.*)-Principal-(\d+)$/ ) ) { my ( $code, $msg ) = $Ticket->DeleteWatcher(PrincipalId => $2, Type => $1); @@ -1271,8 +1212,8 @@ sub ProcessTicketWatchers { } # Delete watchers in the simple style demanded by the bulk manipulator - elsif ( $key =~ /^Delete(Requestor|Cc|AdminCc)$/ ) { - my ( $code, $msg ) = $Ticket->DeleteWatcher( Type => $ARGSRef->{$key}, PrincipalId => $1 ); + elsif ( $key =~ /^Delete(Requestor|Cc|AdminCc)$/ ) { + my ( $code, $msg ) = $Ticket->DeleteWatcher( Email => $ARGSRef->{$key}, Type => $1 ); push @results, $msg; } @@ -1392,6 +1333,29 @@ sub ProcessTicketLinks { my $Ticket = $args{'TicketObj'}; my $ARGSRef = $args{'ARGSRef'}; + my (@results) = ProcessRecordLinks(RecordObj => $Ticket, + ARGSRef => $ARGSRef); + + #Merge if we need to + if ( $ARGSRef->{ $Ticket->Id . "-MergeInto" } ) { + my ( $val, $msg ) = + $Ticket->MergeInto( $ARGSRef->{ $Ticket->Id . "-MergeInto" } ); + push @results, $msg; + } + + return (@results); +} + +# }}} + +sub ProcessRecordLinks { + my %args = ( RecordObj => undef, + ARGSRef => undef, + @_ ); + + my $Record = $args{'RecordObj'}; + my $ARGSRef = $args{'ARGSRef'}; + my (@results); # Delete links that are gone gone gone. @@ -1403,7 +1367,7 @@ sub ProcessTicketLinks { push @results, "Trying to delete: Base: $base Target: $target Type $type"; - my ( $val, $msg ) = $Ticket->DeleteLink( Base => $base, + my ( $val, $msg ) = $Record->DeleteLink( Base => $base, Type => $type, Target => $target ); @@ -1416,18 +1380,18 @@ sub ProcessTicketLinks { my @linktypes = qw( DependsOn MemberOf RefersTo ); foreach my $linktype (@linktypes) { - if ( $ARGSRef->{ $Ticket->Id . "-$linktype" } ) { - for my $luri ( split ( / /, $ARGSRef->{ $Ticket->Id . "-$linktype" } ) ) { + if ( $ARGSRef->{ $Record->Id . "-$linktype" } ) { + for my $luri ( split ( / /, $ARGSRef->{ $Record->Id . "-$linktype" } ) ) { $luri =~ s/\s*$//; # Strip trailing whitespace - my ( $val, $msg ) = $Ticket->AddLink( Target => $luri, + my ( $val, $msg ) = $Record->AddLink( Target => $luri, Type => $linktype ); push @results, $msg; } } - if ( $ARGSRef->{ "$linktype-" . $Ticket->Id } ) { + if ( $ARGSRef->{ "$linktype-" . $Record->Id } ) { - for my $luri ( split ( / /, $ARGSRef->{ "$linktype-" . $Ticket->Id } ) ) { - my ( $val, $msg ) = $Ticket->AddLink( Base => $luri, + for my $luri ( split ( / /, $ARGSRef->{ "$linktype-" . $Record->Id } ) ) { + my ( $val, $msg ) = $Record->AddLink( Base => $luri, Type => $linktype ); push @results, $msg; @@ -1435,18 +1399,9 @@ sub ProcessTicketLinks { } } - #Merge if we need to - if ( $ARGSRef->{ $Ticket->Id . "-MergeInto" } ) { - my ( $val, $msg ) = - $Ticket->MergeInto( $ARGSRef->{ $Ticket->Id . "-MergeInto" } ); - push @results, $msg; - } - return (@results); } -# }}} - eval "require RT::Interface::Web_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Web_Vendor.pm}); eval "require RT::Interface::Web_Local"; diff --git a/rt/lib/RT/Interface/Web/Handler.pm b/rt/lib/RT/Interface/Web/Handler.pm new file mode 100644 index 000000000..7ee654e7c --- /dev/null +++ b/rt/lib/RT/Interface/Web/Handler.pm @@ -0,0 +1,178 @@ +# {{{ 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 +package RT::Interface::Web::Handler; + +sub DefaultHandlerArgs { ( + comp_root => [ + [ local => $RT::MasonLocalComponentRoot ], + [ standard => $RT::MasonComponentRoot ] + ], + default_escape_flags => 'h', + data_dir => "$RT::MasonDataDir", + allow_globals => [qw(%session)], + autoflush => 1 +) }; + +# {{{ sub new + +=head2 new + + Constructs a web handler of the appropriate class. + Takes options to pass to the constructor. + +=cut + +sub new { + my $class = shift; + $class->InitSessionDir; + + if ($MasonX::Apache2Handler::VERSION) { + goto &NewApache2Handler; + } + elsif ($mod_perl::VERSION and $mod_perl::VERSION >= 1.9908) { + require Apache::RequestUtil; + no warnings 'redefine'; + my $sub = *Apache::request{CODE}; + *Apache::request = sub { + my $r; + eval { $r = $sub->('Apache'); }; + # warn $@ if $@; + return $r; + }; + goto &NewApacheHandler; + } + elsif ($CGI::MOD_PERL) { + goto &NewApacheHandler; + } + else { + goto &NewCGIHandler; + } +} + +sub InitSessionDir { + # Activate the following if running httpd as root (the normal case). + # Resets ownership of all files created by Mason at startup. + # Note that mysql uses DB for sessions, so there's no need to do this. + unless ( $RT::DatabaseType =~ /(mysql|Pg)/ ) { + + # Clean up our umask to protect session files + umask(0077); + + if ($CGI::MOD_PERL) { + chown( Apache->server->uid, Apache->server->gid, + [$RT::MasonSessionDir] ) + if Apache->server->can('uid'); + } + + # Die if WebSessionDir doesn't exist or we can't write to it + stat($RT::MasonSessionDir); + die "Can't read and write $RT::MasonSessionDir" + unless ( ( -d _ ) and ( -r _ ) and ( -w _ ) ); + } + +} + +# }}} + +# {{{ sub NewApacheHandler + +=head2 NewApacheHandler + + Takes extra options to pass to HTML::Mason::ApacheHandler->new + Returns a new Mason::ApacheHandler object + +=cut + +sub NewApacheHandler { + require HTML::Mason::ApacheHandler; + return NewHandler('HTML::Mason::ApacheHandler', args_method => "CGI", @_); +} + +# }}} + +# {{{ sub NewApache2Handler + +=head2 NewApache2Handler + + Takes extra options to pass to MasonX::Apache2Handler->new + Returns a new MasonX::Apache2Handler object + +=cut + +sub NewApache2Handler { + require MasonX::Apache2Handler; + return NewHandler('MasonX::Apache2Handler', args_method => "CGI", @_); +} + +# }}} + +# {{{ sub NewCGIHandler + +=head2 NewCGIHandler + + Returns a new Mason::CGIHandler object + +=cut + +sub NewCGIHandler { + require HTML::Mason::CGIHandler; + return NewHandler('HTML::Mason::CGIHandler', @_); +} + +sub NewHandler { + my $class = shift; + my $handler = $class->new( + DefaultHandlerArgs(), + @_ + ); + + $handler->interp->set_escape( h => \&RT::Interface::Web::EscapeUTF8 ); + return($handler); +} + +# }}} + +1; diff --git a/rt/lib/RT/Link.pm b/rt/lib/RT/Link.pm index 962c378a8..d9595fbf7 100644 --- a/rt/lib/RT/Link.pm +++ b/rt/lib/RT/Link.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -61,7 +83,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -98,7 +120,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -107,14 +129,14 @@ Returns the current value of id. =cut -=item Base +=head2 Base Returns the current value of Base. (In the database, Base is stored as varchar(240).) -=item SetBase VALUE +=head2 SetBase VALUE Set Base to VALUE. @@ -125,14 +147,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Target +=head2 Target Returns the current value of Target. (In the database, Target is stored as varchar(240).) -=item SetTarget VALUE +=head2 SetTarget VALUE Set Target to VALUE. @@ -143,14 +165,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Type +=head2 Type Returns the current value of Type. (In the database, Type is stored as varchar(20).) -=item SetType VALUE +=head2 SetType VALUE Set Type to VALUE. @@ -161,14 +183,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item LocalTarget +=head2 LocalTarget Returns the current value of LocalTarget. (In the database, LocalTarget is stored as int(11).) -=item SetLocalTarget VALUE +=head2 SetLocalTarget VALUE Set LocalTarget to VALUE. @@ -179,14 +201,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item LocalBase +=head2 LocalBase Returns the current value of LocalBase. (In the database, LocalBase is stored as int(11).) -=item SetLocalBase VALUE +=head2 SetLocalBase VALUE Set LocalBase to VALUE. @@ -197,7 +219,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item LastUpdatedBy +=head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -206,7 +228,7 @@ Returns the current value of LastUpdatedBy. =cut -=item LastUpdated +=head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -215,7 +237,7 @@ Returns the current value of LastUpdated. =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -224,7 +246,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -234,7 +256,7 @@ Returns the current value of Created. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/Link_Overlay.pm b/rt/lib/RT/Link_Overlay.pm index 1c02619df..ef0347a06 100644 --- a/rt/lib/RT/Link_Overlay.pm +++ b/rt/lib/RT/Link_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Link - an RT Link object @@ -86,8 +108,6 @@ sub Create { . $args{'Base'} . " - " . "' into a URI\n" ); - #use Data::Dumper; - #$RT::Logger->warning(scalar Dumper $base); return (undef); } @@ -99,8 +119,6 @@ sub Create { . $args{'Target'} . " - " . "' into a URI\n" ); - #use Data::Dumper; - #$RT::Logger->warning(scalar Dumper $target); return (undef); } diff --git a/rt/lib/RT/Links.pm b/rt/lib/RT/Links.pm index 7a1773af9..07dcae718 100644 --- a/rt/lib/RT/Links.pm +++ b/rt/lib/RT/Links.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::Link item diff --git a/rt/lib/RT/Links_Overlay.pm b/rt/lib/RT/Links_Overlay.pm index d788a4275..156193fab 100644 --- a/rt/lib/RT/Links_Overlay.pm +++ b/rt/lib/RT/Links_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 =head1 NAME RT::Links - A collection of Link objects @@ -120,6 +142,30 @@ sub LimitReferredToBy { $self->Limit(FIELD => 'Base', VALUE => $URI); } +# }}} + + +# {{{ Next +sub Next { + my $self = shift; + + my $Link = $self->SUPER::Next(); + if ((defined($Link)) and (ref($Link))) { + # Skip links to local objects thast are deleted + if ($Link->TargetURI->IsLocal and UNIVERSAL::isa($Link->TargetObj,"RT::Ticket") + and $Link->TargetObj->__Value('status') eq "deleted") { + return $self->Next; + } elsif ($Link->BaseURI->IsLocal and UNIVERSAL::isa($Link->BaseObj,"RT::Ticket") + and $Link->BaseObj->__Value('status') eq "deleted") { + return $self->Next; + } else { + return $Link; + } + } else { + return undef; + } +} + # }}} 1; diff --git a/rt/lib/RT/Principal.pm b/rt/lib/RT/Principal.pm index cffee4cb2..3d8bf2bf2 100644 --- a/rt/lib/RT/Principal.pm +++ b/rt/lib/RT/Principal.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -61,7 +83,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -92,7 +114,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -101,14 +123,14 @@ Returns the current value of id. =cut -=item PrincipalType +=head2 PrincipalType Returns the current value of PrincipalType. (In the database, PrincipalType is stored as varchar(16).) -=item SetPrincipalType VALUE +=head2 SetPrincipalType VALUE Set PrincipalType to VALUE. @@ -119,14 +141,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ObjectId +=head2 ObjectId Returns the current value of ObjectId. (In the database, ObjectId is stored as int(11).) -=item SetObjectId VALUE +=head2 SetObjectId VALUE Set ObjectId to VALUE. @@ -137,14 +159,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Disabled +=head2 Disabled Returns the current value of Disabled. (In the database, Disabled is stored as smallint(6).) -=item SetDisabled VALUE +=head2 SetDisabled VALUE Set Disabled to VALUE. @@ -156,7 +178,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/Principal_Overlay.pm b/rt/lib/RT/Principal_Overlay.pm index 1a14fa1b0..3e2edaac6 100644 --- a/rt/lib/RT/Principal_Overlay.pm +++ b/rt/lib/RT/Principal_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/Principals.pm b/rt/lib/RT/Principals.pm index c45a4c734..17b588f78 100644 --- a/rt/lib/RT/Principals.pm +++ b/rt/lib/RT/Principals.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::Principal item diff --git a/rt/lib/RT/Principals_Overlay.pm b/rt/lib/RT/Principals_Overlay.pm index 0d8c54c76..c4f89efdb 100644 --- a/rt/lib/RT/Principals_Overlay.pm +++ b/rt/lib/RT/Principals_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Principals - a collection of RT::Principal objects diff --git a/rt/lib/RT/Queue.pm b/rt/lib/RT/Queue.pm index b362c9f0d..03bb2def2 100755 --- a/rt/lib/RT/Queue.pm +++ b/rt/lib/RT/Queue.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -61,7 +83,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -107,7 +129,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -116,14 +138,14 @@ Returns the current value of id. =cut -=item Name +=head2 Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=item SetName VALUE +=head2 SetName VALUE Set Name to VALUE. @@ -134,14 +156,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Description +=head2 Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=item SetDescription VALUE +=head2 SetDescription VALUE Set Description to VALUE. @@ -152,14 +174,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item CorrespondAddress +=head2 CorrespondAddress Returns the current value of CorrespondAddress. (In the database, CorrespondAddress is stored as varchar(120).) -=item SetCorrespondAddress VALUE +=head2 SetCorrespondAddress VALUE Set CorrespondAddress to VALUE. @@ -170,14 +192,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item CommentAddress +=head2 CommentAddress Returns the current value of CommentAddress. (In the database, CommentAddress is stored as varchar(120).) -=item SetCommentAddress VALUE +=head2 SetCommentAddress VALUE Set CommentAddress to VALUE. @@ -188,14 +210,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item InitialPriority +=head2 InitialPriority Returns the current value of InitialPriority. (In the database, InitialPriority is stored as int(11).) -=item SetInitialPriority VALUE +=head2 SetInitialPriority VALUE Set InitialPriority to VALUE. @@ -206,14 +228,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item FinalPriority +=head2 FinalPriority Returns the current value of FinalPriority. (In the database, FinalPriority is stored as int(11).) -=item SetFinalPriority VALUE +=head2 SetFinalPriority VALUE Set FinalPriority to VALUE. @@ -224,14 +246,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item DefaultDueIn +=head2 DefaultDueIn Returns the current value of DefaultDueIn. (In the database, DefaultDueIn is stored as int(11).) -=item SetDefaultDueIn VALUE +=head2 SetDefaultDueIn VALUE Set DefaultDueIn to VALUE. @@ -242,7 +264,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -251,7 +273,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -260,7 +282,7 @@ Returns the current value of Created. =cut -=item LastUpdatedBy +=head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -269,7 +291,7 @@ Returns the current value of LastUpdatedBy. =cut -=item LastUpdated +=head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -278,14 +300,14 @@ Returns the current value of LastUpdated. =cut -=item Disabled +=head2 Disabled Returns the current value of Disabled. (In the database, Disabled is stored as smallint(6).) -=item SetDisabled VALUE +=head2 SetDisabled VALUE Set Disabled to VALUE. @@ -297,7 +319,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/Queue_Overlay.pm b/rt/lib/RT/Queue_Overlay.pm index f40055b3b..0d50a74ab 100644 --- a/rt/lib/RT/Queue_Overlay.pm +++ b/rt/lib/RT/Queue_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 =head1 NAME RT::Queue - an RT Queue object @@ -76,8 +98,9 @@ $RIGHTS = { ModifyScrips => 'Modify Scrips for this queue', # loc_pair ShowScrips => 'Display Scrips for this queue', # loc_pair - ShowTicket => 'Show ticket summaries', # loc_pair - ShowTicketComments => 'Show ticket private commentary', # loc_pair + ShowTicket => 'See ticket summaries', # loc_pair + ShowTicketComments => 'See ticket private commentary', # loc_pair + ShowOutgoingEmail => 'See exact outgoing email messages and their recipeients', # loc_pair Watch => 'Sign up as a ticket Requestor or ticket or queue Cc', # loc_pair WatchAsAdminCc => 'Sign up as a ticket or queue AdminCc', # loc_pair @@ -103,6 +126,39 @@ foreach my $right ( keys %{$RIGHTS} ) { } +sub AddLink { + my $self = shift; + my %args = ( Target => '', + Base => '', + Type => '', + Silent => undef, + @_ ); + + unless ( $self->CurrentUserHasRight('ModifyQueue') ) { + return ( 0, $self->loc("Permission Denied") ); + } + + return $self->SUPER::_AddLink(%args); +} + +sub DeleteLink { + my $self = shift; + my %args = ( + Base => undef, + Target => undef, + Type => undef, + @_ + ); + + #check acls + unless ( $self->CurrentUserHasRight('ModifyQueue') ) { + $RT::Logger->debug("No permission to delete links\n"); + return ( 0, $self->loc('Permission Denied')) + } + + return $self->SUPER::_DeleteLink(%args); +} + =head2 AvailableRights Returns a hash of available rights for this object. The keys are the right names and the values are a description of what the rights do @@ -443,7 +499,7 @@ sub CustomFields { =head2 _CreateQueueGroups -Create the ticket groups and relationships for this ticket. +Create the ticket groups and links for this ticket. This routine expects to be called from Ticket->Create _inside of a transaction_ It will create four groups for this ticket: Requestor, Cc, AdminCc and Owner. @@ -715,8 +771,8 @@ sub DeleteWatcher { } } else { - $RT::Logger->warn( "$self -> DelWatcher got passed a bogus type"); - return ( 0, $self->loc('Error in parameters to Queue->DelWatcher') ); + $RT::Logger->warn( "$self -> DeleteWatcher got passed a bogus type"); + return ( 0, $self->loc('Error in parameters to Queue->DeleteWatcher') ); } } diff --git a/rt/lib/RT/Queues.pm b/rt/lib/RT/Queues.pm index 60aec9086..e1be35374 100755 --- a/rt/lib/RT/Queues.pm +++ b/rt/lib/RT/Queues.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::Queue item diff --git a/rt/lib/RT/Queues_Overlay.pm b/rt/lib/RT/Queues_Overlay.pm index b85144b52..a3bbb78f0 100644 --- a/rt/lib/RT/Queues_Overlay.pm +++ b/rt/lib/RT/Queues_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Queues - a collection of RT::Queue objects diff --git a/rt/lib/RT/Record.pm b/rt/lib/RT/Record.pm index 7a8690618..57a5ea7fc 100755 --- a/rt/lib/RT/Record.pm +++ b/rt/lib/RT/Record.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 =head1 NAME RT::Record - Base class for RT record objects @@ -44,12 +66,12 @@ ok (require RT::Record); package RT::Record; use RT::Date; use RT::User; - +use RT::Attributes; use RT::Base; use DBIx::SearchBuilder::Record::Cachable; use strict; -use vars qw/@ISA/; +use vars qw/@ISA $_TABLE_ATTR/; @ISA = qw(RT::Base); @@ -64,8 +86,8 @@ if ($RT::DontCacheSearchBuilderRecords ) { sub _Init { my $self = shift; + $self->_BuildTableAttributes unless ($_TABLE_ATTR->{ref($self)}); $self->CurrentUser(@_); - } # }}} @@ -85,6 +107,102 @@ sub _PrimaryKeys { # }}} +=head2 Attributes + +Return this object's attributes as an RT::Attributes object + +=cut + +sub Attributes { + my $self = shift; + + unless ($self->{'attributes'}) { + $self->{'attributes'} = RT::Attributes->new($self->CurrentUser); + $self->{'attributes'}->LimitToObject($self); + } + return ($self->{'attributes'}); + +} + + +=head2 AddAttribute { Name, Description, Content } + +Adds a new attribute for this object. + +=cut + +sub AddAttribute { + my $self = shift; + my %args = ( Name => undef, + Description => undef, + Content => undef, + @_ ); + + my $attr = RT::Attribute->new( $self->CurrentUser ); + my ( $id, $msg ) = $attr->Create( + Object => $self, + Name => $args{'Name'}, + Description => $args{'Description'}, + Content => $args{'Content'} ); + + $self->Attributes->RedoSearch; + + return ($id, $msg); +} + + +=head2 SetAttribute { Name, Description, Content } + +Like AddAttribute, but replaces all existing attributes with the same Name. + +=cut + +sub SetAttribute { + my $self = shift; + my %args = ( Name => undef, + Description => undef, + Content => undef, + @_ ); + + my @AttributeObjs = $self->Attributes->Named( $args{'Name'} ) + or return $self->AddAttribute( %args ); + + my $AttributeObj = pop( @AttributeObjs ); + $_->Delete foreach @AttributeObjs; + + $AttributeObj->SetDescription( $args{'Description'} ); + $AttributeObj->SetContent( $args{'Content'} ); + + $self->Attributes->RedoSearch; + return 1; +} + +=head2 DeleteAttribute NAME + +Deletes all attributes with the matching name for this object. + +=cut + +sub DeleteAttribute { + my $self = shift; + my $name = shift; + return $self->Attributes->DeleteEntry( Name => $name ); +} + +=head2 FirstAttribute NAME + +Returns the value of the first attribute with the matching name +for this object, or C<undef> if no such attributes exist. + +=cut + +sub FirstAttribute { + my $self = shift; + my $name = shift; + return ($self->Attributes->Named( $name ))[0]; +} + + # {{{ sub _Handle sub _Handle { my $self = shift; @@ -195,6 +313,9 @@ sub LoadByCols { my $self = shift; my %hash = (@_); + # We don't want to hang onto this + delete $self->{'attributes'}; + # If this database is case sensitive we need to uncase objects for # explicit loading if ( $self->_Handle->CaseSensitive ) { @@ -413,10 +534,47 @@ sub LastUpdatedByObj { # }}} +# {{{ sub URI + +=head2 URI + +Returns this record's URI + +=cut + +sub URI { + my $self = shift; + my $uri = RT::URI::fsck_com_rt->new($self->CurrentUser); + return($uri->URIForObject($self)); +} + +# }}} + + + + + +=head2 SQLType attribute + +return the SQL type for the attribute 'attribute' as stored in _ClassAccessible + +=cut + +sub SQLType { + my $self = shift; + my $field = shift; + + return ($self->_Accessible($field, 'type')); + + +} require Encode::compat if $] < 5.007001; require Encode; + + + sub __Value { my $self = shift; my $field = shift; @@ -439,17 +597,674 @@ sub __Value { sub _CacheConfig { { 'cache_p' => 1, - 'fast_update_p' => 1, 'cache_for_sec' => 30, } } -=head2 _DecodeUTF8 - When passed a string will "decode" it int a proper UTF-8 string + +sub _BuildTableAttributes { + my $self = shift; + + my $attributes; + if ( UNIVERSAL::can( $self, '_CoreAccessible' ) ) { + $attributes = $self->_CoreAccessible(); + } elsif ( UNIVERSAL::can( $self, '_ClassAccessible' ) ) { + $attributes = $self->_ClassAccessible(); + + } + + foreach my $column (%$attributes) { + foreach my $attr ( %{ $attributes->{$column} } ) { + $_TABLE_ATTR->{ref($self)}->{$column}->{$attr} = $attributes->{$column}->{$attr}; + } + } + if ( UNIVERSAL::can( $self, '_OverlayAccessible' ) ) { + $attributes = $self->_OverlayAccessible(); + + foreach my $column (%$attributes) { + foreach my $attr ( %{ $attributes->{$column} } ) { + $_TABLE_ATTR->{ref($self)}->{$column}->{$attr} = $attributes->{$column}->{$attr}; + } + } + } + if ( UNIVERSAL::can( $self, '_VendorAccessible' ) ) { + $attributes = $self->_VendorAccessible(); + + foreach my $column (%$attributes) { + foreach my $attr ( %{ $attributes->{$column} } ) { + $_TABLE_ATTR->{ref($self)}->{$column}->{$attr} = $attributes->{$column}->{$attr}; + } + } + } + if ( UNIVERSAL::can( $self, '_LocalAccessible' ) ) { + $attributes = $self->_LocalAccessible(); + + foreach my $column (%$attributes) { + foreach my $attr ( %{ $attributes->{$column} } ) { + $_TABLE_ATTR->{ref($self)}->{$column}->{$attr} = $attributes->{$column}->{$attr}; + } + } + } + +} + + +=head2 _ClassAccessible + +Overrides the "core" _ClassAccessible using $_TABLE_ATTR. Behaves identical to the version in +DBIx::SearchBuilder::Record + +=cut + +sub _ClassAccessible { + my $self = shift; + return $_TABLE_ATTR->{ref($self)}; +} + +=head2 _Accessible COLUMN ATTRIBUTE + +returns the value of ATTRIBUTE for COLUMN + + +=cut + +sub _Accessible { + my $self = shift; + my $column = shift; + my $attribute = lc(shift); + return 0 unless defined ($_TABLE_ATTR->{ref($self)}->{$column}); + return $_TABLE_ATTR->{ref($self)}->{$column}->{$attribute} || 0; + +} + +=head2 _EncodeLOB BODY MIME_TYPE + +Takes a potentially large attachment. Returns (ContentEncoding, EncodedBody) based on system configuration and selected database + +=cut + +sub _EncodeLOB { + my $self = shift; + my $Body = shift; + my $MIMEType = shift; + + my $ContentEncoding = 'none'; + + #get the max attachment length from RT + my $MaxSize = $RT::MaxAttachmentSize; + + #if the current attachment contains nulls and the + #database doesn't support embedded nulls + + if ( $RT::AlwaysUseBase64 or + ( !$RT::Handle->BinarySafeBLOBs ) && ( $Body =~ /\x00/ ) ) { + + # set a flag telling us to mimencode the attachment + $ContentEncoding = 'base64'; + + #cut the max attchment size by 25% (for mime-encoding overhead. + $RT::Logger->debug("Max size is $MaxSize\n"); + $MaxSize = $MaxSize * 3 / 4; + # Some databases (postgres) can't handle non-utf8 data + } elsif ( !$RT::Handle->BinarySafeBLOBs + && $MIMEType !~ /text\/plain/gi + && !Encode::is_utf8( $Body, 1 ) ) { + $ContentEncoding = 'quoted-printable'; + } + + #if the attachment is larger than the maximum size + if ( ($MaxSize) and ( $MaxSize < length($Body) ) ) { + + # if we're supposed to truncate large attachments + if ($RT::TruncateLongAttachments) { + + # truncate the attachment to that length. + $Body = substr( $Body, 0, $MaxSize ); + + } + + # elsif we're supposed to drop large attachments on the floor, + elsif ($RT::DropLongAttachments) { + + # drop the attachment on the floor + $RT::Logger->info( "$self: Dropped an attachment of size " . length($Body) . "\n" . "It started: " . substr( $Body, 0, 60 ) . "\n" ); + return ("none", "Large attachment dropped" ); + } + } + + # if we need to mimencode the attachment + if ( $ContentEncoding eq 'base64' ) { + + # base64 encode the attachment + Encode::_utf8_off($Body); + $Body = MIME::Base64::encode_base64($Body); + + } elsif ($ContentEncoding eq 'quoted-printable') { + Encode::_utf8_off($Body); + $Body = MIME::QuotedPrint::encode($Body); + } + + + return ($ContentEncoding, $Body); + +} + + +# {{{ LINKDIRMAP +# 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 Update { + my $self = shift; + + my %args = ( + ARGSRef => undef, + AttributesRef => undef, + AttributePrefix => undef, + @_ + ); + + my $attributes = $args{'AttributesRef'}; + my $ARGSRef = $args{'ARGSRef'}; + my @results; + + foreach my $attribute (@$attributes) { + my $value; + if ( defined $ARGSRef->{$attribute} ) { + $value = $ARGSRef->{$attribute}; + } + elsif ( + defined( $args{'AttributePrefix'} ) + && defined( + $ARGSRef->{ $args{'AttributePrefix'} . "-" . $attribute } + ) + ) + { + $value = $ARGSRef->{ $args{'AttributePrefix'} . "-" . $attribute }; + + } + else { + next; + } + + $value =~ s/\r\n/\n/gs; + + + # If Queue is 'General', we want to resolve the queue name for + # the object. + + # This is in an eval block because $object might not exist. + # and might not have a Name method. But "can" won't find autoloaded + # items. If it fails, we don't care + eval { + my $object = $attribute . "Obj"; + next if ($self->$object->Name eq $value); + }; + next if ( $value eq $self->$attribute() ); + my $method = "Set$attribute"; + my ( $code, $msg ) = $self->$method($value); + + my ($prefix) = ref($self) =~ /RT::(\w+)/; + push @results, + $self->loc( "$prefix [_1]", $self->id ) . ': ' + . $self->loc($attribute) . ': ' + . $self->CurrentUser->loc_fuzzy($msg); + +=for loc + "[_1] could not be set to [_2].", # loc + "That is already the current value", # loc + "No value sent to _Set!\n", # loc + "Illegal value for [_1]", # loc + "The new value has been set.", # loc + "No column specified", # loc + "Immutable field", # loc + "Nonexistant field?", # loc + "Invalid data", # loc + "Couldn't find row", # loc + "Missing a primary key?: [_1]", # loc + "Found Object", # loc +=cut + + } + + return @results; +} + +# {{{ Routines dealing with Links between tickets + +# {{{ Link Collections + +# {{{ sub Members + +=head2 Members + + This returns an RT::Links object which references all the tickets +which are 'MembersOf' this ticket =cut +sub Members { + my $self = shift; + return ( $self->_Links( 'Target', 'MemberOf' ) ); +} + +# }}} + +# {{{ sub MemberOf + +=head2 MemberOf + + This returns an RT::Links object which references all the tickets that this +ticket is a 'MemberOf' + +=cut + +sub MemberOf { + my $self = shift; + return ( $self->_Links( 'Base', 'MemberOf' ) ); +} + +# }}} + +# {{{ RefersTo + +=head2 RefersTo + + This returns an RT::Links object which shows all references for which this ticket is a base + +=cut + +sub RefersTo { + my $self = shift; + return ( $self->_Links( 'Base', 'RefersTo' ) ); +} + +# }}} + +# {{{ ReferredToBy + +=head2 ReferredToBy + + This returns an RT::Links object which shows all references for which this ticket is a target + +=cut + +sub ReferredToBy { + my $self = shift; + return ( $self->_Links( 'Target', 'RefersTo' ) ); +} + +# }}} + +# {{{ DependedOnBy + +=head2 DependedOnBy + + This returns an RT::Links object which references all the tickets that depend on this one + +=cut + +sub DependedOnBy { + my $self = shift; + return ( $self->_Links( 'Target', 'DependsOn' ) ); +} + +# }}} + + + +=head2 HasUnresolvedDependencies + + Takes a paramhash of Type (default to '__any'). Returns true if +$self->UnresolvedDependencies returns an object with one or more members +of that type. Returns false otherwise + + +=begin testing + +my $t1 = RT::Ticket->new($RT::SystemUser); +my ($id, $trans, $msg) = $t1->Create(Subject => 'DepTest1', Queue => 'general'); +ok($id, "Created dep test 1 - $msg"); + +my $t2 = RT::Ticket->new($RT::SystemUser); +my ($id2, $trans, $msg2) = $t2->Create(Subject => 'DepTest2', Queue => 'general'); +ok($id2, "Created dep test 2 - $msg2"); +my $t3 = RT::Ticket->new($RT::SystemUser); +my ($id3, $trans, $msg3) = $t3->Create(Subject => 'DepTest3', Queue => 'general', Type => 'approval'); +ok($id3, "Created dep test 3 - $msg3"); +my ($addid, $addmsg); +ok (($addid, $addmsg) =$t1->AddLink( Type => 'DependsOn', Target => $t2->id)); +ok ($addid, $addmsg); +ok (($addid, $addmsg) =$t1->AddLink( Type => 'DependsOn', Target => $t3->id)); + +ok ($addid, $addmsg); +ok ($t1->HasUnresolvedDependencies, "Ticket ".$t1->Id." has unresolved deps"); +ok (!$t1->HasUnresolvedDependencies( Type => 'blah' ), "Ticket ".$t1->Id." has no unresolved blahs"); +ok ($t1->HasUnresolvedDependencies( Type => 'approval' ), "Ticket ".$t1->Id." has unresolved approvals"); +ok (!$t2->HasUnresolvedDependencies, "Ticket ".$t2->Id." has no unresolved deps"); +; + +my ($rid, $rmsg)= $t1->Resolve(); +ok(!$rid, $rmsg); +ok($t2->Resolve); +($rid, $rmsg)= $t1->Resolve(); +ok(!$rid, $rmsg); +ok($t3->Resolve); +($rid, $rmsg)= $t1->Resolve(); +ok($rid, $rmsg); + + +=end testing + +=cut + +sub HasUnresolvedDependencies { + my $self = shift; + my %args = ( + Type => undef, + @_ + ); + + my $deps = $self->UnresolvedDependencies; + + if ($args{Type}) { + $deps->Limit( FIELD => 'Type', + OPERATOR => '=', + VALUE => $args{Type}); + } + else { + $deps->IgnoreType; + } + + if ($deps->Count > 0) { + return 1; + } + else { + return (undef); + } +} + + +# {{{ UnresolvedDependencies + +=head2 UnresolvedDependencies + +Returns an RT::Tickets object of tickets which this ticket depends on +and which have a status of new, open or stalled. (That list comes from +RT::Queue->ActiveStatusArray + +=cut + + +sub UnresolvedDependencies { + my $self = shift; + my $deps = RT::Tickets->new($self->CurrentUser); + + my @live_statuses = RT::Queue->ActiveStatusArray(); + foreach my $status (@live_statuses) { + $deps->LimitStatus(VALUE => $status); + } + $deps->LimitDependedOnBy($self->Id); + + return($deps); + +} + +# }}} + +# {{{ AllDependedOnBy + +=head2 AllDependedOnBy + +Returns an array of RT::Ticket objects which (directly or indirectly) +depends on this ticket; takes an optional 'Type' argument in the param +hash, which will limit returned tickets to that type, as well as cause +tickets with that type to serve as 'leaf' nodes that stops the recursive +dependency search. + +=cut + +sub AllDependedOnBy { + my $self = shift; + my $dep = $self->DependedOnBy; + my %args = ( + Type => undef, + _found => {}, + _top => 1, + @_ + ); + + while (my $link = $dep->Next()) { + next unless ($link->BaseURI->IsLocal()); + next if $args{_found}{$link->BaseObj->Id}; + + if (!$args{Type}) { + $args{_found}{$link->BaseObj->Id} = $link->BaseObj; + $link->BaseObj->AllDependedOnBy( %args, _top => 0 ); + } + elsif ($link->BaseObj->Type eq $args{Type}) { + $args{_found}{$link->BaseObj->Id} = $link->BaseObj; + } + else { + $link->BaseObj->AllDependedOnBy( %args, _top => 0 ); + } + } + + if ($args{_top}) { + return map { $args{_found}{$_} } sort keys %{$args{_found}}; + } + else { + return 1; + } +} + +# }}} + +# {{{ DependsOn + +=head2 DependsOn + + This returns an RT::Links object which references all the tickets that this ticket depends on + +=cut + +sub DependsOn { + my $self = shift; + return ( $self->_Links( 'Base', 'DependsOn' ) ); +} + +# }}} + + + + +# {{{ sub _Links + +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 ); + # at least to myself + $self->{"$field$type"}->Limit( FIELD => $field, + VALUE => $self->URI, + ENTRYAGGREGATOR => 'OR' ); + $self->{"$field$type"}->Limit( FIELD => 'Type', + VALUE => $type ) + if ($type); + } + return ( $self->{"$field$type"} ); +} + +# }}} + +# }}} + +# {{{ sub _AddLink + +=head2 _AddLink + +Takes a paramhash of Type and one of Base or Target. Adds that link to this ticket. + + +=cut + + +sub _AddLink { + my $self = shift; + my %args = ( Target => '', + Base => '', + Type => '', + Silent => undef, + @_ ); + + + # Remote_link is the URI of the object that is not this ticket + my $remote_link; + my $direction; + + if ( $args{'Base'} and $args{'Target'} ) { + $RT::Logger->debug( +"$self tried to delete a link. both base and target were specified\n" ); + return ( 0, $self->loc("Can't specifiy both base and target") ); + } + elsif ( $args{'Base'} ) { + $args{'Target'} = $self->URI(); + my $class = ref($self); + $remote_link = $args{'Base'}; + $direction = 'Target'; + } + elsif ( $args{'Target'} ) { + $args{'Base'} = $self->URI(); + my $class = ref($self); + $remote_link = $args{'Target'}; + $direction = 'Base'; + } + else { + return ( 0, $self->loc('Either base or target must be specified') ); + } + + # {{{ Check if the link already exists - we don't want duplicates + use RT::Link; + my $old_link = RT::Link->new( $self->CurrentUser ); + $old_link->LoadByParams( Base => $args{'Base'}, + Type => $args{'Type'}, + Target => $args{'Target'} ); + if ( $old_link->Id ) { + $RT::Logger->debug("$self Somebody tried to duplicate a link"); + return ( $old_link->id, $self->loc("Link already exists"), 0 ); + } + + # }}} + + + # Storing the link in the DB. + my $link = RT::Link->new( $self->CurrentUser ); + my ($linkid, $linkmsg) = $link->Create( Target => $args{Target}, + Base => $args{Base}, + Type => $args{Type} ); + + unless ($linkid) { + $RT::Logger->error("Link could not be created: ".$linkmsg); + return ( 0, $self->loc("Link could not be created") ); + } + + my $TransString = + "Record $args{'Base'} $args{Type} record $args{'Target'}."; + + return ( 1, $self->loc( "Link created ([_1])", $TransString ) ); +} + +# }}} + +# {{{ sub _DeleteLink + +=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, + @_ + ); + + #we want one of base and target. we don't care which + #but we only want _one_ + + my $direction; + my $remote_link; + + if ( $args{'Base'} and $args{'Target'} ) { + $RT::Logger->debug("$self ->_DeleteLink. got both Base and Target\n"); + return ( 0, $self->loc("Can't specifiy both base and target") ); + } + elsif ( $args{'Base'} ) { + $args{'Target'} = $self->URI(); + $remote_link = $args{'Base'}; + $direction = 'Target'; + } + elsif ( $args{'Target'} ) { + $args{'Base'} = $self->URI(); + $remote_link = $args{'Target'}; + $direction='Base'; + } + else { + $RT::Logger->debug("$self: Base or Target must be specified\n"); + return ( 0, $self->loc('Either base or target must be specified') ); + } + + my $link = new RT::Link( $self->CurrentUser ); + $RT::Logger->debug( "Trying to load link: " . $args{'Base'} . " " . $args{'Type'} . " " . $args{'Target'} . "\n" ); + + + $link->LoadByParams( Base=> $args{'Base'}, Type=> $args{'Type'}, Target=> $args{'Target'} ); + #it's a real link. + if ( $link->id ) { + + my $linkid = $link->id; + $link->Delete(); + + my $TransString = "Record $args{'Base'} no longer $args{Type} record $args{'Target'}."; + return ( 1, $self->loc("Link deleted ([_1])", $TransString)); + } + + #if it's not a link we can find + else { + $RT::Logger->debug("Couldn't find that link\n"); + return ( 0, $self->loc("Link not found") ); + } +} + +# }}} + eval "require RT::Record_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Record_Vendor.pm}); eval "require RT::Record_Local"; diff --git a/rt/lib/RT/Scrip.pm b/rt/lib/RT/Scrip.pm index a69dde04e..1c414d8f2 100755 --- a/rt/lib/RT/Scrip.pm +++ b/rt/lib/RT/Scrip.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -65,7 +87,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -120,7 +142,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -129,14 +151,14 @@ Returns the current value of id. =cut -=item Description +=head2 Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=item SetDescription VALUE +=head2 SetDescription VALUE Set Description to VALUE. @@ -147,14 +169,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ScripCondition +=head2 ScripCondition Returns the current value of ScripCondition. (In the database, ScripCondition is stored as int(11).) -=item SetScripCondition VALUE +=head2 SetScripCondition VALUE Set ScripCondition to VALUE. @@ -165,7 +187,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ScripConditionObj +=head2 ScripConditionObj Returns the ScripCondition Object which has the id returned by ScripCondition @@ -179,14 +201,14 @@ sub ScripConditionObj { return($ScripCondition); } -=item ScripAction +=head2 ScripAction Returns the current value of ScripAction. (In the database, ScripAction is stored as int(11).) -=item SetScripAction VALUE +=head2 SetScripAction VALUE Set ScripAction to VALUE. @@ -197,7 +219,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ScripActionObj +=head2 ScripActionObj Returns the ScripAction Object which has the id returned by ScripAction @@ -211,14 +233,14 @@ sub ScripActionObj { return($ScripAction); } -=item ConditionRules +=head2 ConditionRules Returns the current value of ConditionRules. (In the database, ConditionRules is stored as text.) -=item SetConditionRules VALUE +=head2 SetConditionRules VALUE Set ConditionRules to VALUE. @@ -229,14 +251,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ActionRules +=head2 ActionRules Returns the current value of ActionRules. (In the database, ActionRules is stored as text.) -=item SetActionRules VALUE +=head2 SetActionRules VALUE Set ActionRules to VALUE. @@ -247,14 +269,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item CustomIsApplicableCode +=head2 CustomIsApplicableCode Returns the current value of CustomIsApplicableCode. (In the database, CustomIsApplicableCode is stored as text.) -=item SetCustomIsApplicableCode VALUE +=head2 SetCustomIsApplicableCode VALUE Set CustomIsApplicableCode to VALUE. @@ -265,14 +287,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item CustomPrepareCode +=head2 CustomPrepareCode Returns the current value of CustomPrepareCode. (In the database, CustomPrepareCode is stored as text.) -=item SetCustomPrepareCode VALUE +=head2 SetCustomPrepareCode VALUE Set CustomPrepareCode to VALUE. @@ -283,14 +305,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item CustomCommitCode +=head2 CustomCommitCode Returns the current value of CustomCommitCode. (In the database, CustomCommitCode is stored as text.) -=item SetCustomCommitCode VALUE +=head2 SetCustomCommitCode VALUE Set CustomCommitCode to VALUE. @@ -301,14 +323,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Stage +=head2 Stage Returns the current value of Stage. (In the database, Stage is stored as varchar(32).) -=item SetStage VALUE +=head2 SetStage VALUE Set Stage to VALUE. @@ -319,14 +341,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Queue +=head2 Queue Returns the current value of Queue. (In the database, Queue is stored as int(11).) -=item SetQueue VALUE +=head2 SetQueue VALUE Set Queue to VALUE. @@ -337,7 +359,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item QueueObj +=head2 QueueObj Returns the Queue Object which has the id returned by Queue @@ -351,14 +373,14 @@ sub QueueObj { return($Queue); } -=item Template +=head2 Template Returns the current value of Template. (In the database, Template is stored as int(11).) -=item SetTemplate VALUE +=head2 SetTemplate VALUE Set Template to VALUE. @@ -369,7 +391,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item TemplateObj +=head2 TemplateObj Returns the Template Object which has the id returned by Template @@ -383,7 +405,7 @@ sub TemplateObj { return($Template); } -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -392,7 +414,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -401,7 +423,7 @@ Returns the current value of Created. =cut -=item LastUpdatedBy +=head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -410,7 +432,7 @@ Returns the current value of LastUpdatedBy. =cut -=item LastUpdated +=head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -420,7 +442,7 @@ Returns the current value of LastUpdated. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/ScripAction.pm b/rt/lib/RT/ScripAction.pm index 26824df5d..e3d2a902a 100755 --- a/rt/lib/RT/ScripAction.pm +++ b/rt/lib/RT/ScripAction.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -61,7 +83,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -95,7 +117,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -104,14 +126,14 @@ Returns the current value of id. =cut -=item Name +=head2 Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=item SetName VALUE +=head2 SetName VALUE Set Name to VALUE. @@ -122,14 +144,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Description +=head2 Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=item SetDescription VALUE +=head2 SetDescription VALUE Set Description to VALUE. @@ -140,14 +162,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ExecModule +=head2 ExecModule Returns the current value of ExecModule. (In the database, ExecModule is stored as varchar(60).) -=item SetExecModule VALUE +=head2 SetExecModule VALUE Set ExecModule to VALUE. @@ -158,14 +180,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Argument +=head2 Argument Returns the current value of Argument. (In the database, Argument is stored as varchar(255).) -=item SetArgument VALUE +=head2 SetArgument VALUE Set Argument to VALUE. @@ -176,7 +198,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -185,7 +207,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -194,7 +216,7 @@ Returns the current value of Created. =cut -=item LastUpdatedBy +=head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -203,7 +225,7 @@ Returns the current value of LastUpdatedBy. =cut -=item LastUpdated +=head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -213,7 +235,7 @@ Returns the current value of LastUpdated. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/ScripAction_Overlay.pm b/rt/lib/RT/ScripAction_Overlay.pm index e75987135..c0a10caf7 100644 --- a/rt/lib/RT/ScripAction_Overlay.pm +++ b/rt/lib/RT/ScripAction_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::ScripAction - RT Action object @@ -50,14 +72,6 @@ use strict; no warnings qw(redefine); use RT::Template; -# {{{ sub _Init -sub _Init { - my $self = shift; - $self->{'table'} = "ScripActions"; - return ($self->SUPER::_Init(@_)); -} -# }}} - # {{{ sub _Accessible sub _Accessible { my $self = shift; @@ -146,12 +160,13 @@ sub LoadAction { eval "require $type" || die "Require of $type failed.\n$@\n"; - $self->{'Action'} = $type->new ( 'ScripActionObj' => $self, - 'TicketObj' => $args{'TicketObj'}, - 'ScripObj' => $args{'ScripObj'}, - 'TransactionObj' => $args{'TransactionObj'}, - 'TemplateObj' => $self->TemplateObj, - 'Argument' => $self->Argument, + $self->{'Action'} = $type->new ( ScripActionObj => $self, + TicketObj => $args{'TicketObj'}, + ScripObj => $args{'ScripObj'}, + TransactionObj => $args{'TransactionObj'}, + TemplateObj => $self->TemplateObj, + Argument => $self->Argument, + CurrentUser => $self->CurrentUser ); } # }}} @@ -160,7 +175,10 @@ sub LoadAction { =head2 TemplateObj -Return this action\'s template object +Return this action's template object + +TODO: Why are we not using the Scrip's template object? + =cut @@ -196,7 +214,7 @@ sub TemplateObj { sub Prepare { my $self = shift; - return ($self->{'Action'}->Prepare()); + return ($self->Action->Prepare()); } # }}} @@ -204,7 +222,7 @@ sub Prepare { # {{{ sub Commit sub Commit { my $self = shift; - return($self->{'Action'}->Commit()); + return($self->Action->Commit()); } @@ -213,11 +231,22 @@ sub Commit { # {{{ sub Describe sub Describe { my $self = shift; - return ($self->{'Action'}->Describe()); + return ($self->Action->Describe()); } # }}} +=head2 Action + +Return the actual RT::Action object for this scrip. + +=cut + +sub Action { + my $self = shift; + return ($self->{'Action'}); +} + # {{{ sub DESTROY sub DESTROY { my $self=shift; @@ -227,6 +256,12 @@ sub DESTROY { } # }}} +=head2 TODO + +Between this, RT::Scrip and RT::Action::*, we need to be able to get rid of a +class. This just reeks of too much complexity -- jesse + +=cut 1; diff --git a/rt/lib/RT/ScripActions.pm b/rt/lib/RT/ScripActions.pm index 614ff374f..677fd85b8 100755 --- a/rt/lib/RT/ScripActions.pm +++ b/rt/lib/RT/ScripActions.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::ScripAction item diff --git a/rt/lib/RT/ScripActions_Overlay.pm b/rt/lib/RT/ScripActions_Overlay.pm index 83cd646ef..c7cb3eb6c 100644 --- a/rt/lib/RT/ScripActions_Overlay.pm +++ b/rt/lib/RT/ScripActions_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::ScripActions - Collection of Action objects diff --git a/rt/lib/RT/ScripCondition.pm b/rt/lib/RT/ScripCondition.pm index fe0aa2d5a..4e0398c7c 100755 --- a/rt/lib/RT/ScripCondition.pm +++ b/rt/lib/RT/ScripCondition.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -61,7 +83,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -98,7 +120,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -107,14 +129,14 @@ Returns the current value of id. =cut -=item Name +=head2 Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=item SetName VALUE +=head2 SetName VALUE Set Name to VALUE. @@ -125,14 +147,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Description +=head2 Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=item SetDescription VALUE +=head2 SetDescription VALUE Set Description to VALUE. @@ -143,14 +165,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ExecModule +=head2 ExecModule Returns the current value of ExecModule. (In the database, ExecModule is stored as varchar(60).) -=item SetExecModule VALUE +=head2 SetExecModule VALUE Set ExecModule to VALUE. @@ -161,14 +183,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Argument +=head2 Argument Returns the current value of Argument. (In the database, Argument is stored as varchar(255).) -=item SetArgument VALUE +=head2 SetArgument VALUE Set Argument to VALUE. @@ -179,14 +201,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ApplicableTransTypes +=head2 ApplicableTransTypes Returns the current value of ApplicableTransTypes. (In the database, ApplicableTransTypes is stored as varchar(60).) -=item SetApplicableTransTypes VALUE +=head2 SetApplicableTransTypes VALUE Set ApplicableTransTypes to VALUE. @@ -197,7 +219,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -206,7 +228,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -215,7 +237,7 @@ Returns the current value of Created. =cut -=item LastUpdatedBy +=head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -224,7 +246,7 @@ Returns the current value of LastUpdatedBy. =cut -=item LastUpdated +=head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -234,7 +256,7 @@ Returns the current value of LastUpdated. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/ScripCondition_Overlay.pm b/rt/lib/RT/ScripCondition_Overlay.pm index 158bc5771..158a2c962 100644 --- a/rt/lib/RT/ScripCondition_Overlay.pm +++ b/rt/lib/RT/ScripCondition_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::ScripCondition - RT scrip conditional @@ -157,7 +179,8 @@ sub LoadCondition { 'ScripObj' => $args{'ScripObj'}, 'TransactionObj' => $args{'TransactionObj'}, 'Argument' => $self->Argument, - 'ApplicableTransTypes' => $self->ApplicableTransTypes, + 'ApplicableTransTypes' => $self->ApplicableTransTypes, + CurrentUser => $self->CurrentUser ); } # }}} diff --git a/rt/lib/RT/ScripConditions.pm b/rt/lib/RT/ScripConditions.pm index 34f788d9c..8daaea92c 100755 --- a/rt/lib/RT/ScripConditions.pm +++ b/rt/lib/RT/ScripConditions.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::ScripCondition item diff --git a/rt/lib/RT/ScripConditions_Overlay.pm b/rt/lib/RT/ScripConditions_Overlay.pm index 8bef90801..1b23e2dab 100644 --- a/rt/lib/RT/ScripConditions_Overlay.pm +++ b/rt/lib/RT/ScripConditions_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::ScripConditions - Collection of Action objects diff --git a/rt/lib/RT/Scrip_Overlay.pm b/rt/lib/RT/Scrip_Overlay.pm index 79499fc82..1e1854a00 100644 --- a/rt/lib/RT/Scrip_Overlay.pm +++ b/rt/lib/RT/Scrip_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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.) # -# END LICENSE BLOCK +# 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 =head1 NAME RT::Scrip - an RT Scrip object @@ -79,8 +101,7 @@ ok ($ticket2->Priority != '87', "Ticket priority is set right"); use strict; no warnings qw(redefine); - -# {{{ sub Create +# {{{ sub Create =head2 Create @@ -107,24 +128,24 @@ sub Create { my $self = shift; my %args = ( Queue => 0, - Template => 0, # name or id - ScripAction => 0, # name or id - ScripCondition => 0, # name or id + Template => 0, # name or id + ScripAction => 0, # name or id + ScripCondition => 0, # name or id Stage => 'TransactionCreate', Description => undef, CustomPrepareCode => undef, CustomCommitCode => undef, CustomIsApplicableCode => undef, - @_ - ); + @_ ); - - if (! $args{'Queue'} ) { - unless ( $self->CurrentUser->HasRight( Object => $RT::System, Right => 'ModifyScrips') ) { + if ( !$args{'Queue'} ) { + unless ( $self->CurrentUser->HasRight( Object => $RT::System, + Right => 'ModifyScrips' ) + ) { return ( 0, $self->loc('Permission Denied') ); } - $args{'Queue'} = 0; # avoid undef sneaking in + $args{'Queue'} = 0; # avoid undef sneaking in } else { my $QueueObj = new RT::Queue( $self->CurrentUser ); @@ -138,33 +159,33 @@ sub Create { $args{'Queue'} = $QueueObj->id(); } - #TODO +++ validate input + #TODO +++ validate input require RT::ScripAction; my $action = new RT::ScripAction( $self->CurrentUser ); - if ($args{'ScripAction'}) { - $action->Load( $args{'ScripAction'}); + if ( $args{'ScripAction'} ) { + $action->Load( $args{'ScripAction'} ); } return ( 0, $self->loc( "Action [_1] not found", $args{'ScripAction'} ) ) unless $action->Id; require RT::Template; my $template = new RT::Template( $self->CurrentUser ); - if ($args{'Template'} ) { - $template->Load( $args{'Template'}); + if ( $args{'Template'} ) { + $template->Load( $args{'Template'} ); } return ( 0, $self->loc('Template not found') ) unless $template->Id; require RT::ScripCondition; my $condition = new RT::ScripCondition( $self->CurrentUser ); - if ($args{'ScripCondition'} ) { + if ( $args{'ScripCondition'} ) { $condition->Load( $args{'ScripCondition'} ); } unless ( $condition->Id ) { return ( 0, $self->loc('Condition not found') ); } - my ($id,$msg) = $self->SUPER::Create( + my ( $id, $msg ) = $self->SUPER::Create( Queue => $args{'Queue'}, Template => $template->Id, ScripCondition => $condition->id, @@ -180,7 +201,7 @@ sub Create { return ( $id, $self->loc('Scrip Created') ); } else { - return($id,$msg); + return ( $id, $msg ); } } @@ -196,13 +217,14 @@ Delete this object sub Delete { my $self = shift; - - unless ($self->CurrentUserHasRight('ModifyScrips')) { - return (0, $self->loc('Permission Denied')); + + unless ( $self->CurrentUserHasRight('ModifyScrips') ) { + return ( 0, $self->loc('Permission Denied') ); } - - return ($self->SUPER::Delete(@_)); + + return ( $self->SUPER::Delete(@_) ); } + # }}} # {{{ sub QueueObj @@ -215,20 +237,19 @@ Retuns an RT::Queue object with this Scrip\'s queue sub QueueObj { my $self = shift; - - if (!$self->{'QueueObj'}) { - require RT::Queue; - $self->{'QueueObj'} = RT::Queue->new($self->CurrentUser); - $self->{'QueueObj'}->Load($self->__Value('Queue')); + + if ( !$self->{'QueueObj'} ) { + require RT::Queue; + $self->{'QueueObj'} = RT::Queue->new( $self->CurrentUser ); + $self->{'QueueObj'}->Load( $self->__Value('Queue') ); } - return ($self->{'QueueObj'}); + return ( $self->{'QueueObj'} ); } # }}} # {{{ sub ActionObj - =head2 ActionObj Retuns an RT::Action object with this Scrip\'s Action @@ -237,16 +258,17 @@ Retuns an RT::Action object with this Scrip\'s Action sub ActionObj { my $self = shift; - - unless (defined $self->{'ScripActionObj'}) { - require RT::ScripAction; - - $self->{'ScripActionObj'} = RT::ScripAction->new($self->CurrentUser); - #TODO: why are we loading Actions with templates like this. - # two separate methods might make more sense - $self->{'ScripActionObj'}->Load($self->ScripAction, $self->Template); + + unless ( defined $self->{'ScripActionObj'} ) { + require RT::ScripAction; + + $self->{'ScripActionObj'} = RT::ScripAction->new( $self->CurrentUser ); + + #TODO: why are we loading Actions with templates like this. + # two seperate methods might make more sense + $self->{'ScripActionObj'}->Load( $self->ScripAction, $self->Template ); } - return ($self->{'ScripActionObj'}); + return ( $self->{'ScripActionObj'} ); } # }}} @@ -276,6 +298,7 @@ sub ConditionObj { # }}} # {{{ sub TemplateObj + =head2 TemplateObj Retuns an RT::Template object with this Scrip\'s Template @@ -284,20 +307,21 @@ Retuns an RT::Template object with this Scrip\'s Template sub TemplateObj { my $self = shift; - - unless (defined $self->{'TemplateObj'}) { - require RT::Template; - $self->{'TemplateObj'} = RT::Template->new($self->CurrentUser); - $self->{'TemplateObj'}->Load($self->Template); + + unless ( defined $self->{'TemplateObj'} ) { + require RT::Template; + $self->{'TemplateObj'} = RT::Template->new( $self->CurrentUser ); + $self->{'TemplateObj'}->Load( $self->Template ); } - return ($self->{'TemplateObj'}); + return ( $self->{'TemplateObj'} ); } # }}} - # {{{ Dealing with this instance of a scrip +# {{{ sub Apply + =head2 Apply { TicketObj => undef, TransactionObj => undef} This method instantiates the ScripCondition and ScripAction objects for a @@ -312,66 +336,44 @@ should be loaded by the SuperUser role =cut -# {{{ sub Apply - sub Apply { my $self = shift; my %args = ( TicketObj => undef, TransactionObj => undef, @_ ); - # We want to make sure that if a scrip dies, we don't get - # hurt - eval { - - #Load the scrip's Condition object - $self->ConditionObj->LoadCondition( - ScripObj => $self, - TicketObj => $args{'TicketObj'}, - TransactionObj => $args{'TransactionObj'}, - ); + $RT::Logger->debug("Now applying scrip ".$self->Id . " for transaction ".$args{'TransactionObj'}->id); - unless ( $self->IsApplicable() ) { - $self->ConditionObj->DESTROY; - return (undef); - } - - #If it's applicable, prepare and commit it - $self->ActionObj->LoadAction( ScripObj => $self, - TicketObj => $args{'TicketObj'}, - TransactionObj => $args{'TransactionObj'}, - ); + my $ApplicableTransactionObj = $self->IsApplicable( TicketObj => $args{'TicketObj'}, + TransactionObj => $args{'TransactionObj'} ); + unless ( $ApplicableTransactionObj ) { + return undef; + } - unless ( $self->Prepare() ) { - $RT::Logger->info( - "$self: Couldn't prepare " . $self->ActionObj->Name ); - $self->ActionObj->DESTROY(); - $self->ConditionObj->DESTROY(); - return (undef); - } - unless ( $self->Commit() ) { - $RT::Logger->info( - "$self: Couldn't commit " . $self->ActionObj->Name ); - $self->ActionObj->DESTROY(); - $self->ConditionObj->DESTROY(); - return (undef); - } + if ( $ApplicableTransactionObj->id != $args{'TransactionObj'}->id ) { + $RT::Logger->debug("Found an applicable transaction ".$ApplicableTransactionObj->Id . " in the same batch with transaction ".$args{'TransactionObj'}->id); + } - #Searchbuilder caching isn't perfectly coherent. got to reload the ticket object, since it - # may have changed - $args{'TicketObj'}->Load($args{'TicketObj'}->Id); + #If it's applicable, prepare and commit it + $RT::Logger->debug("Now preparing scrip ".$self->Id . " for transaction ".$ApplicableTransactionObj->id); + unless ( $self->Prepare( TicketObj => $args{'TicketObj'}, + TransactionObj => $ApplicableTransactionObj ) + ) { + return undef; + } - #We're done with it. lets clean up. - #TODO: something else isn't letting these get garbage collected. check em out. - $self->ActionObj->DESTROY(); - $self->ConditionObj->DESTROY(); - return (1); - }; - if ($@) { - $RT::Logger->error( "Scrip " . $self->Id . " died. - " . $@ ); + $RT::Logger->debug("Now commiting scrip ".$self->Id . " for transaction ".$ApplicableTransactionObj->id); + unless ( $self->Commit( TicketObj => $args{'TicketObj'}, + TransactionObj => $ApplicableTransactionObj) + ) { + return undef; } + $RT::Logger->debug("We actually finished scrip ".$self->Id . " for transaction ".$ApplicableTransactionObj->id); + return (1); + } + # }}} # {{{ sub IsApplicable @@ -380,16 +382,69 @@ sub Apply { Calls the Condition object\'s IsApplicable method +Upon success, returns the applicable Transaction object. +Otherwise, undef is returned. + +If the Scrip is in the TransactionCreate Stage (the usual case), only test +the associated Transaction object to see if it is applicable. + +For Scrips in the TransactionBatch Stage, test all Transaction objects +created during the Ticket object's lifetime, and returns the first one +that is applicable. + =cut sub IsApplicable { my $self = shift; - return ($self->ConditionObj->IsApplicable(@_)); + my %args = ( TicketObj => undef, + TransactionObj => undef, + @_ ); + + my $return; + eval { + + my @Transactions; + + if ( $self->Stage eq 'TransactionCreate') { + # Only look at our current Transaction + @Transactions = ( $args{'TransactionObj'} ); + } + elsif ( $self->Stage eq 'TransactionBatch') { + # Look at all Transactions in this Batch + @Transactions = @{ $args{'TicketObj'}->TransactionBatch || [] }; + } + else { + $RT::Logger->error( "Unknown Scrip stage:" . $self->Stage ); + return (undef); + } + + foreach my $TransactionObj ( @Transactions ) { + # Load the scrip's Condition object + $self->ConditionObj->LoadCondition( + ScripObj => $self, + TicketObj => $args{'TicketObj'}, + TransactionObj => $TransactionObj, + ); + + if ( $self->ConditionObj->IsApplicable() ) { + # We found an application Transaction -- return it + $return = $TransactionObj; + last; + } + } + }; + if ($@) { + $RT::Logger->error( "Scrip IsApplicable " . $self->Id . " died. - " . $@ ); + return (undef); + } + + return ($return); + } # }}} -# {{{ sub Prepare +# {{{ SUb Prepare =head2 Prepare @@ -399,7 +454,26 @@ Calls the action object's prepare method sub Prepare { my $self = shift; - $self->ActionObj->Prepare(@_); + my %args = ( TicketObj => undef, + TransactionObj => undef, + @_ ); + + my $return; + eval { + $self->ActionObj->LoadAction( ScripObj => $self, + TicketObj => $args{'TicketObj'}, + TransactionObj => $args{'TransactionObj'}, + ); + + $return = $self->ActionObj->Prepare(); + }; + if ($@) { + $RT::Logger->error( "Scrip Prepare " . $self->Id . " died. - " . $@ ); + return (undef); + } + unless ($return) { + } + return ($return); } # }}} @@ -414,18 +488,32 @@ Calls the action object's commit method sub Commit { my $self = shift; - $self->ActionObj->Commit(@_); -} + my %args = ( TicketObj => undef, + TransactionObj => undef, + @_ ); -# }}} + my $return; + eval { + $return = $self->ActionObj->Commit(); + }; -# }}} +#Searchbuilder caching isn't perfectly coherent. got to reload the ticket object, since it +# may have changed + $args{'TicketObj'}->Load( $args{'TicketObj'}->Id ); -# {{{ sub DESTROY -sub DESTROY { - my $self = shift; - $self->{'ActionObj'} = undef; + if ($@) { + $RT::Logger->error( "Scrip IsApplicable " . $self->Id . " died. - " . $@ ); + return (undef); + } + + # Not destroying or weakening hte Action and Condition here could cause a + # leak + + return ($return); } + +# }}} + # }}} # {{{ ACL related methods @@ -435,10 +523,11 @@ sub DESTROY { # does an acl check and then passes off the call sub _Set { my $self = shift; - - unless ($self->CurrentUserHasRight('ModifyScrips')) { - $RT::Logger->debug("CurrentUser can't modify Scrips for ".$self->Queue."\n"); - return (0, $self->loc('Permission Denied')); + + unless ( $self->CurrentUserHasRight('ModifyScrips') ) { + $RT::Logger->debug( + "CurrentUser can't modify Scrips for " . $self->Queue . "\n" ); + return ( 0, $self->loc('Permission Denied') ); } return $self->__Set(@_); } @@ -449,14 +538,17 @@ sub _Set { # does an acl check and then passes off the call sub _Value { my $self = shift; - - unless ($self->CurrentUserHasRight('ShowScrips')) { - $RT::Logger->debug("CurrentUser can't modify Scrips for ".$self->__Value('Queue')."\n"); - return (undef); + + unless ( $self->CurrentUserHasRight('ShowScrips') ) { + $RT::Logger->debug( "CurrentUser can't modify Scrips for " + . $self->__Value('Queue') + . "\n" ); + return (undef); } - + return $self->__Value(@_); } + # }}} # {{{ sub CurrentUserHasRight @@ -469,11 +561,11 @@ calls HasRight. =cut sub CurrentUserHasRight { - my $self = shift; + my $self = shift; my $right = shift; - return ($self->HasRight( Principal => $self->CurrentUser->UserObj, - Right => $right )); - + return ( $self->HasRight( Principal => $self->CurrentUser->UserObj, + Right => $right ) ); + } # }}} @@ -490,26 +582,25 @@ Right string that applies to Scrips. sub HasRight { my $self = shift; - my %args = ( Right => undef, + my %args = ( Right => undef, Principal => undef, @_ ); - - if ((defined $self->SUPER::_Value('Queue')) and ($self->SUPER::_Value('Queue') != 0)) { - return ( $args{'Principal'}->HasRight( - Right => $args{'Right'}, - Object => $self->QueueObj - ) - ); - + + if ( ( defined $self->SUPER::_Value('Queue') ) + and ( $self->SUPER::_Value('Queue') != 0 ) ) { + return ( $args{'Principal'}->HasRight( Right => $args{'Right'}, + Object => $self->QueueObj ) ); + } else { - return( $args{'Principal'}->HasRight( Object => $RT::System, Right => $args{'Right'}) ); + return ( $args{'Principal'} + ->HasRight( Object => $RT::System, Right => $args{'Right'} ) ); } } + # }}} # }}} 1; - diff --git a/rt/lib/RT/Scrips.pm b/rt/lib/RT/Scrips.pm index a39443136..0ec2ad7ee 100755 --- a/rt/lib/RT/Scrips.pm +++ b/rt/lib/RT/Scrips.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::Scrip item diff --git a/rt/lib/RT/Scrips_Overlay.pm b/rt/lib/RT/Scrips_Overlay.pm index d20148084..2f395ffd0 100644 --- a/rt/lib/RT/Scrips_Overlay.pm +++ b/rt/lib/RT/Scrips_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Scrips - a collection of RT Scrip objects @@ -129,40 +151,172 @@ sub Next { } # }}} +=head2 Apply + +Run through the relevant scrips. + +=cut + sub Apply { - my ($self, %args) = @_; + my $self = shift; + + my %args = ( TicketObj => undef, + Ticket => undef, + Transaction => undef, + TransactionObj => undef, + Stage => undef, + Type => undef, + @_ ); + + $self->Prepare(%args); + $self->Commit(); + +} + +=head2 Commit + +Commit all of this object's prepared scrips + +=cut + +sub Commit { + my $self = shift; + + + foreach my $scrip (@{$self->Prepared}) { + + $scrip->Commit( TicketObj => $self->{'TicketObj'}, + TransactionObj => $self->{'TransactionObj'} ); + } +} + + +=head2 Prepare + +Only prepare the scrips, returning an array of the scrips we're interested in +in order of preparation, not execution + +=cut + +sub Prepare { + my $self = shift; + my %args = ( TicketObj => undef, + Ticket => undef, + Transaction => undef, + TransactionObj => undef, + Stage => undef, + Type => undef, + @_ ); #We're really going to need a non-acled ticket for the scrips to work - my ($TicketObj, $TransactionObj); + $self->_SetupSourceObjects( TicketObj => $args{'TicketObj'}, + Ticket => $args{'Ticket'}, + TransactionObj => $args{'TransactionObj'}, + Transaction => $args{'Transaction'} ); + + + $self->_FindScrips( Stage => $args{'Stage'}, Type => $args{'Type'} ); + + + #Iterate through each script and check it's applicability. + while ( my $scrip = $self->Next() ) { + + next + unless ( $scrip->IsApplicable( + TicketObj => $self->{'TicketObj'}, + TransactionObj => $self->{'TransactionObj'} + ) ); + + #If it's applicable, prepare and commit it + next + unless ( $scrip->Prepare( TicketObj => $self->{'TicketObj'}, + TransactionObj => $self->{'TransactionObj'} + ) ); + push @{$self->{'prepared_scrips'}}, $scrip; - if ( ($TicketObj = $args{'TicketObj'}) ) { - $TicketObj->CurrentUser($self->CurrentUser); + } + + return (@{$self->Prepared}); + +}; + +=head2 Prepared + +Returns an arrayref of the scrips this object has prepared + + +=cut + +sub Prepared { + my $self = shift; + return ($self->{'prepared_scrips'} || []); +} + + +# {{{ sup _SetupSourceObjects +=head2 _SetupSourceObjects { TicketObj , Ticket, Transaction, TransactionObj } + +Setup a ticket and transaction for this Scrip collection to work with as it runs through the +relevant scrips. (Also to figure out which scrips apply) + +Returns: nothing + +=cut + + +sub _SetupSourceObjects { + + my $self = shift; + my %args = ( + TicketObj => undef, + Ticket => undef, + Transaction => undef, + TransactionObj => undef, + @_ ); + + if ( ( $self->{'TicketObj'} = $args{'TicketObj'} ) ) { + $self->{'TicketObj'}->CurrentUser( $self->CurrentUser ); } else { - $TicketObj = RT::Ticket->new($self->CurrentUser); - $TicketObj->Load( $args{'Ticket'} ) - || $RT::Logger->err("$self couldn't load ticket $args{'Ticket'}\n"); + $self->{'TicketObj'} = RT::Ticket->new( $self->CurrentUser ); + $self->{'TicketObj'}->Load( $args{'Ticket'} ) + || $RT::Logger->err("$self couldn't load ticket $args{'Ticket'}\n"); } - if ( ($TransactionObj = $args{'TransactionObj'}) ) { - $TransactionObj->CurrentUser($self->CurrentUser); + if ( ( $self->{'TransactionObj'} = $args{'TransactionObj'} ) ) { + $self->{'TransactionObj'}->CurrentUser( $self->CurrentUser ); } else { - $TransactionObj = RT::Transaction->new($self->CurrentUser); - $TransactionObj->Load( $args{'Transaction'} ) - || $RT::Logger->err("$self couldn't load transaction $args{'Transaction'}\n"); + $self->{'TransactionObj'} = RT::Transaction->new( $self->CurrentUser ); + $self->{'TransactionObj'}->Load( $args{'Transaction'} ) + || $RT::Logger->err( "$self couldn't load transaction $args{'Transaction'}\n"); } +} - # {{{ Deal with Scrips +# }}} - $self->LimitToQueue( $TicketObj->QueueObj->Id ) - ; #Limit it to $Ticket->QueueObj->Id - $self->LimitToGlobal() - unless $TicketObj->QueueObj->Disabled; # or to "global" +# {{{ sub _FindScrips; + +=head2 _FindScrips + +Find only the apropriate scrips for whatever we're doing now + +=cut +sub _FindScrips { + my $self = shift; + my %args = ( + Stage => undef, + Type => undef, + @_ ); - $self->Limit(FIELD => "Stage", VALUE => $args{'Stage'}); + $self->LimitToQueue( $self->{'TicketObj'}->QueueObj->Id ) + ; #Limit it to $Ticket->QueueObj->Id + $self->LimitToGlobal() + unless $self->{'TicketObj'}->QueueObj->Disabled; # or to "global" + + $self->Limit( FIELD => "Stage", VALUE => $args{'Stage'} ); my $ConditionsAlias = $self->NewAlias('ScripConditions'); @@ -180,7 +334,8 @@ sub Apply { OPERATOR => 'LIKE', VALUE => $args{'Type'}, ENTRYAGGREGATOR => 'OR', - ) if $args{'Type'}; + ) + if $args{'Type'}; # Or where the scrip applies to any transaction $self->Limit( @@ -191,18 +346,10 @@ sub Apply { ENTRYAGGREGATOR => 'OR', ); - #Iterate through each script and check it's applicability. - while ( my $Scrip = $self->Next() ) { - $Scrip->Apply (TicketObj => $TicketObj, - TransactionObj => $TransactionObj); - } - - $TicketObj->CurrentUser( $TicketObj->OriginalUser ); - $TransactionObj->CurrentUser( $TransactionObj->OriginalUser ); - - # }}} + $RT::Logger->debug("Found ".$self->Count. " scrips"); } +# }}} 1; diff --git a/rt/lib/RT/Search/ActiveTicketsInQueue.pm b/rt/lib/RT/Search/ActiveTicketsInQueue.pm index 766e42e47..d34b72ad6 100644 --- a/rt/lib/RT/Search/ActiveTicketsInQueue.pm +++ b/rt/lib/RT/Search/ActiveTicketsInQueue.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Search::ActiveTicketsInQueue diff --git a/rt/lib/RT/Search/FromSQL.pm b/rt/lib/RT/Search/FromSQL.pm new file mode 100644 index 000000000..5d9d6706f --- /dev/null +++ b/rt/lib/RT/Search/FromSQL.pm @@ -0,0 +1,131 @@ +# {{{ 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 +# 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. +# +# 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::Search::FromSQL + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +Find all tickets described by the SQL statement passed as an argument + +=head1 METHODS + + +=begin testing + +ok (require RT::Search::Generic); + +=end testing + + +=cut + +package RT::Search::FromSQL; + +use strict; +use base qw(RT::Search::Generic); + +=head2 Describe + +Returns a localized string describing the module's function. + +=cut + +# {{{ sub Describe +sub Describe { + my $self = shift; + return ($self->loc("TicketSQL search module", ref $self)); +} +# }}} + +=head2 Prepare + +The meat of the module. Runs a search on its Tickets object, using +the SQL string described in its Argument object. The Tickets object +is reduced to those tickets matching the SQL query. + +=cut + +# {{{ sub Prepare +sub Prepare { + my $self = shift; + + $self->TicketsObj->FromSQL($self->Argument); + return(1); +} +# }}} + +eval "require RT::Search::FromSQL_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Search/FromSQL_Vendor.pm}); +eval "require RT::Search::FromSQL_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Search/FromSQL_Local.pm}); + +1; diff --git a/rt/lib/RT/Search/Generic.pm b/rt/lib/RT/Search/Generic.pm index f872c2a3f..d95c94b0f 100644 --- a/rt/lib/RT/Search/Generic.pm +++ b/rt/lib/RT/Search/Generic.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Search::Generic - ; diff --git a/rt/lib/RT/SearchBuilder.pm b/rt/lib/RT/SearchBuilder.pm index 22c9aff8c..615f19726 100644 --- a/rt/lib/RT/SearchBuilder.pm +++ b/rt/lib/RT/SearchBuilder.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 =head1 NAME RT::SearchBuilder - a baseclass for RT collection objects @@ -102,6 +124,67 @@ sub LimitToDeleted { } # }}} +# {{{ sub LimitAttribute + +=head2 LimitAttribute PARAMHASH + +Takes NAME, OPERATOR and VALUE to find records that has the +matching Attribute. + +=cut + +sub LimitAttribute { + my ($self, %args) = @_; + + my $alias = $self->Join( + TYPE => 'left', + ALIAS1 => 'main', + FIELD1 => 'id', + TABLE2 => 'Attributes', + FIELD2 => 'ObjectId' + ); + + my $type = ref($self); + $type =~ s/(?:s|Collection)$//; # XXX - Hack! + + $self->Limit( + ALIAS => $alias, + FIELD => 'ObjectType', + OPERATOR => '=', + VALUE => $type, + ); + $self->Limit( + ALIAS => $alias, + FIELD => 'Name', + OPERATOR => '=', + VALUE => $args{NAME}, + ) if exists $args{NAME}; + + return unless exists $args{VALUE}; + + $self->Limit( + ALIAS => $alias, + FIELD => 'Content', + OPERATOR => ($args{OPERATOR} || '='), + VALUE => $args{VALUE}, + ENTRYAGGREGATOR => 'OR', + ); + + if ($args{EMPTY}) { + # Capture rows without the attribute defined by testing IS NULL. + $self->Limit( + ALIAS => $alias, + FIELD => $_, + OPERATOR => 'IS', + VALUE => 'NULL', + ENTRYAGGREGATOR => 'OR', + ) for qw( ObjectType Name Content ); + } +} +# }}} + +1; + # {{{ sub FindAllRows =head2 FindAllRows @@ -111,7 +194,7 @@ Find all matching rows, regardless of whether they are disabled or not =cut sub FindAllRows { - shift->{'find_disabled_rows'} = 1; + shift->{'find_disabled_rows'} = 1; } # {{{ sub Limit @@ -125,24 +208,48 @@ match lower(colname) agaist lc($val); =cut sub Limit { - my $self = shift; - my %args = ( CASESENSITIVE => 1, - @_ ); + my $self = shift; + my %args = ( CASESENSITIVE => 1, + @_ ); - return $self->SUPER::Limit(%args); + return $self->SUPER::Limit(%args); } # }}} -# {{{ sub ItemsArrayRef +# {{{ sub ItemsOrderBy -=item ItemsArrayRef +=item ItemsOrderBy -Return this object's ItemsArray. If it has a SortOrder attribute, sort the array by SortOrder. Otherwise, if it has a "Name" attribute, sort alphabetically by Name -Otherwise, just give up and return it in the order it came from the db. +Otherwise, just give up and return it in the order it came from the +db. +=cut + +sub ItemsOrderBy { + my $self = shift; + my $items = shift; + + if ($self->NewItem()->_Accessible('SortOrder','read')) { + $items = [ sort { $a->SortOrder <=> $b->SortOrder } @{$items} ]; + } + elsif ($self->NewItem()->_Accessible('Name','read')) { + $items = [ sort { lc($a->Name) cmp lc($b->Name) } @{$items} ]; + } + + return $items; +} + +# }}} + +# {{{ sub ItemsArrayRef + +=item ItemsArrayRef + +Return this object's ItemsArray, in the order that ItemsOrderBy sorts +it. =begin testing @@ -174,18 +281,7 @@ sub ItemsArrayRef { my $self = shift; my @items; - if ($self->NewItem()->_Accessible('SortOrder','read')) { - @items = sort { $a->SortOrder <=> $b->SortOrder } @{$self->SUPER::ItemsArrayRef()}; - } - elsif ($self->NewItem()->_Accessible('Name','read')) { - @items = sort { lc($a->Name) cmp lc($b->Name) } @{$self->SUPER::ItemsArrayRef()}; - } - else { - @items = @{$self->SUPER::ItemsArrayRef()}; - } - - return(\@items); - + return $self->ItemsOrderBy($self->SUPER::ItemsArrayRef()); } # }}} diff --git a/rt/lib/RT/System.pm b/rt/lib/RT/System.pm index bfa5a4eb2..b544531ba 100644 --- a/rt/lib/RT/System.pm +++ b/rt/lib/RT/System.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::System diff --git a/rt/lib/RT/Template.pm b/rt/lib/RT/Template.pm index f73ea3ed6..c18a7505f 100755 --- a/rt/lib/RT/Template.pm +++ b/rt/lib/RT/Template.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -62,7 +84,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -105,7 +127,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -114,14 +136,14 @@ Returns the current value of id. =cut -=item Queue +=head2 Queue Returns the current value of Queue. (In the database, Queue is stored as int(11).) -=item SetQueue VALUE +=head2 SetQueue VALUE Set Queue to VALUE. @@ -132,7 +154,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item QueueObj +=head2 QueueObj Returns the Queue Object which has the id returned by Queue @@ -146,14 +168,14 @@ sub QueueObj { return($Queue); } -=item Name +=head2 Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=item SetName VALUE +=head2 SetName VALUE Set Name to VALUE. @@ -164,14 +186,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Description +=head2 Description Returns the current value of Description. (In the database, Description is stored as varchar(255).) -=item SetDescription VALUE +=head2 SetDescription VALUE Set Description to VALUE. @@ -182,14 +204,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Type +=head2 Type Returns the current value of Type. (In the database, Type is stored as varchar(16).) -=item SetType VALUE +=head2 SetType VALUE Set Type to VALUE. @@ -200,14 +222,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Language +=head2 Language Returns the current value of Language. (In the database, Language is stored as varchar(16).) -=item SetLanguage VALUE +=head2 SetLanguage VALUE Set Language to VALUE. @@ -218,14 +240,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item TranslationOf +=head2 TranslationOf Returns the current value of TranslationOf. (In the database, TranslationOf is stored as int(11).) -=item SetTranslationOf VALUE +=head2 SetTranslationOf VALUE Set TranslationOf to VALUE. @@ -236,14 +258,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Content +=head2 Content Returns the current value of Content. (In the database, Content is stored as blob.) -=item SetContent VALUE +=head2 SetContent VALUE Set Content to VALUE. @@ -254,7 +276,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item LastUpdated +=head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -263,7 +285,7 @@ Returns the current value of LastUpdated. =cut -=item LastUpdatedBy +=head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -272,7 +294,7 @@ Returns the current value of LastUpdatedBy. =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -281,7 +303,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -291,7 +313,7 @@ Returns the current value of Created. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/Template_Overlay.pm b/rt/lib/RT/Template_Overlay.pm index 057dfecda..877b5c422 100644 --- a/rt/lib/RT/Template_Overlay.pm +++ b/rt/lib/RT/Template_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK # Portions Copyright 2000 Tobias Brox <tobix@cpan.org> =head1 NAME diff --git a/rt/lib/RT/Templates.pm b/rt/lib/RT/Templates.pm index 37db84086..925107ebf 100755 --- a/rt/lib/RT/Templates.pm +++ b/rt/lib/RT/Templates.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::Template item diff --git a/rt/lib/RT/Templates_Overlay.pm b/rt/lib/RT/Templates_Overlay.pm index 544096233..fb9b4a087 100644 --- a/rt/lib/RT/Templates_Overlay.pm +++ b/rt/lib/RT/Templates_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Templates - a collection of RT Template objects diff --git a/rt/lib/RT/Ticket.pm b/rt/lib/RT/Ticket.pm index 2f075a20c..0d3c787ea 100755 --- a/rt/lib/RT/Ticket.pm +++ b/rt/lib/RT/Ticket.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -62,7 +84,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -144,7 +166,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -153,14 +175,14 @@ Returns the current value of id. =cut -=item EffectiveId +=head2 EffectiveId Returns the current value of EffectiveId. (In the database, EffectiveId is stored as int(11).) -=item SetEffectiveId VALUE +=head2 SetEffectiveId VALUE Set EffectiveId to VALUE. @@ -171,14 +193,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Queue +=head2 Queue Returns the current value of Queue. (In the database, Queue is stored as int(11).) -=item SetQueue VALUE +=head2 SetQueue VALUE Set Queue to VALUE. @@ -189,7 +211,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item QueueObj +=head2 QueueObj Returns the Queue Object which has the id returned by Queue @@ -203,14 +225,14 @@ sub QueueObj { return($Queue); } -=item Type +=head2 Type Returns the current value of Type. (In the database, Type is stored as varchar(16).) -=item SetType VALUE +=head2 SetType VALUE Set Type to VALUE. @@ -221,14 +243,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item IssueStatement +=head2 IssueStatement Returns the current value of IssueStatement. (In the database, IssueStatement is stored as int(11).) -=item SetIssueStatement VALUE +=head2 SetIssueStatement VALUE Set IssueStatement to VALUE. @@ -239,14 +261,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Resolution +=head2 Resolution Returns the current value of Resolution. (In the database, Resolution is stored as int(11).) -=item SetResolution VALUE +=head2 SetResolution VALUE Set Resolution to VALUE. @@ -257,14 +279,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Owner +=head2 Owner Returns the current value of Owner. (In the database, Owner is stored as int(11).) -=item SetOwner VALUE +=head2 SetOwner VALUE Set Owner to VALUE. @@ -275,14 +297,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Subject +=head2 Subject Returns the current value of Subject. (In the database, Subject is stored as varchar(200).) -=item SetSubject VALUE +=head2 SetSubject VALUE Set Subject to VALUE. @@ -293,14 +315,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item InitialPriority +=head2 InitialPriority Returns the current value of InitialPriority. (In the database, InitialPriority is stored as int(11).) -=item SetInitialPriority VALUE +=head2 SetInitialPriority VALUE Set InitialPriority to VALUE. @@ -311,14 +333,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item FinalPriority +=head2 FinalPriority Returns the current value of FinalPriority. (In the database, FinalPriority is stored as int(11).) -=item SetFinalPriority VALUE +=head2 SetFinalPriority VALUE Set FinalPriority to VALUE. @@ -329,14 +351,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Priority +=head2 Priority Returns the current value of Priority. (In the database, Priority is stored as int(11).) -=item SetPriority VALUE +=head2 SetPriority VALUE Set Priority to VALUE. @@ -347,14 +369,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item TimeEstimated +=head2 TimeEstimated Returns the current value of TimeEstimated. (In the database, TimeEstimated is stored as int(11).) -=item SetTimeEstimated VALUE +=head2 SetTimeEstimated VALUE Set TimeEstimated to VALUE. @@ -365,14 +387,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item TimeWorked +=head2 TimeWorked Returns the current value of TimeWorked. (In the database, TimeWorked is stored as int(11).) -=item SetTimeWorked VALUE +=head2 SetTimeWorked VALUE Set TimeWorked to VALUE. @@ -383,14 +405,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Status +=head2 Status Returns the current value of Status. (In the database, Status is stored as varchar(10).) -=item SetStatus VALUE +=head2 SetStatus VALUE Set Status to VALUE. @@ -401,14 +423,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item TimeLeft +=head2 TimeLeft Returns the current value of TimeLeft. (In the database, TimeLeft is stored as int(11).) -=item SetTimeLeft VALUE +=head2 SetTimeLeft VALUE Set TimeLeft to VALUE. @@ -419,14 +441,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Told +=head2 Told Returns the current value of Told. (In the database, Told is stored as datetime.) -=item SetTold VALUE +=head2 SetTold VALUE Set Told to VALUE. @@ -437,14 +459,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Starts +=head2 Starts Returns the current value of Starts. (In the database, Starts is stored as datetime.) -=item SetStarts VALUE +=head2 SetStarts VALUE Set Starts to VALUE. @@ -455,14 +477,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Started +=head2 Started Returns the current value of Started. (In the database, Started is stored as datetime.) -=item SetStarted VALUE +=head2 SetStarted VALUE Set Started to VALUE. @@ -473,14 +495,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Due +=head2 Due Returns the current value of Due. (In the database, Due is stored as datetime.) -=item SetDue VALUE +=head2 SetDue VALUE Set Due to VALUE. @@ -491,14 +513,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Resolved +=head2 Resolved Returns the current value of Resolved. (In the database, Resolved is stored as datetime.) -=item SetResolved VALUE +=head2 SetResolved VALUE Set Resolved to VALUE. @@ -509,7 +531,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item LastUpdatedBy +=head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -518,7 +540,7 @@ Returns the current value of LastUpdatedBy. =cut -=item LastUpdated +=head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -527,7 +549,7 @@ Returns the current value of LastUpdated. =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -536,7 +558,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -545,14 +567,14 @@ Returns the current value of Created. =cut -=item Disabled +=head2 Disabled Returns the current value of Disabled. (In the database, Disabled is stored as smallint(6).) -=item SetDisabled VALUE +=head2 SetDisabled VALUE Set Disabled to VALUE. @@ -564,7 +586,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/TicketCustomFieldValue.pm b/rt/lib/RT/TicketCustomFieldValue.pm index 862a5dc13..717647266 100644 --- a/rt/lib/RT/TicketCustomFieldValue.pm +++ b/rt/lib/RT/TicketCustomFieldValue.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -63,7 +85,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -94,7 +116,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -103,14 +125,14 @@ Returns the current value of id. =cut -=item Ticket +=head2 Ticket Returns the current value of Ticket. (In the database, Ticket is stored as int(11).) -=item SetTicket VALUE +=head2 SetTicket VALUE Set Ticket to VALUE. @@ -121,7 +143,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item TicketObj +=head2 TicketObj Returns the Ticket Object which has the id returned by Ticket @@ -135,14 +157,14 @@ sub TicketObj { return($Ticket); } -=item CustomField +=head2 CustomField Returns the current value of CustomField. (In the database, CustomField is stored as int(11).) -=item SetCustomField VALUE +=head2 SetCustomField VALUE Set CustomField to VALUE. @@ -153,7 +175,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item CustomFieldObj +=head2 CustomFieldObj Returns the CustomField Object which has the id returned by CustomField @@ -167,14 +189,14 @@ sub CustomFieldObj { return($CustomField); } -=item Content +=head2 Content Returns the current value of Content. (In the database, Content is stored as varchar(255).) -=item SetContent VALUE +=head2 SetContent VALUE Set Content to VALUE. @@ -185,7 +207,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -194,7 +216,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -203,7 +225,7 @@ Returns the current value of Created. =cut -=item LastUpdatedBy +=head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -212,7 +234,7 @@ Returns the current value of LastUpdatedBy. =cut -=item LastUpdated +=head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -222,7 +244,7 @@ Returns the current value of LastUpdated. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/TicketCustomFieldValue_Overlay.pm b/rt/lib/RT/TicketCustomFieldValue_Overlay.pm index c395ecac4..270c5939a 100644 --- a/rt/lib/RT/TicketCustomFieldValue_Overlay.pm +++ b/rt/lib/RT/TicketCustomFieldValue_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/TicketCustomFieldValues.pm b/rt/lib/RT/TicketCustomFieldValues.pm index f137f5375..2174afef3 100644 --- a/rt/lib/RT/TicketCustomFieldValues.pm +++ b/rt/lib/RT/TicketCustomFieldValues.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::TicketCustomFieldValue item diff --git a/rt/lib/RT/TicketCustomFieldValues_Overlay.pm b/rt/lib/RT/TicketCustomFieldValues_Overlay.pm index 5777c37e3..8cbaca574 100644 --- a/rt/lib/RT/TicketCustomFieldValues_Overlay.pm +++ b/rt/lib/RT/TicketCustomFieldValues_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/Ticket_Overlay.pm b/rt/lib/RT/Ticket_Overlay.pm index c979ba5b4..a5d6860f6 100644 --- a/rt/lib/RT/Ticket_Overlay.pm +++ b/rt/lib/RT/Ticket_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 # {{{ Front Material =head1 SYNOPSIS @@ -124,6 +146,7 @@ use RT::TicketCustomFieldValues; use RT::Tickets; use RT::URI::fsck_com_rt; use RT::URI; +use MIME::Entity; =begin testing @@ -137,7 +160,7 @@ ok(require RT::Ticket, "Loading the RT::Ticket library"); # }}} # {{{ LINKTYPEMAP -# A helper table for relationships mapping to make it easier +# A helper table for links mapping to make it easier # to build and parse links between tickets use vars '%LINKTYPEMAP'; @@ -145,8 +168,12 @@ use vars '%LINKTYPEMAP'; %LINKTYPEMAP = ( MemberOf => { Type => 'MemberOf', Mode => 'Target', }, + Parents => { Type => 'MemberOf', + Mode => 'Target', }, Members => { Type => 'MemberOf', Mode => 'Base', }, + Children => { Type => 'MemberOf', + Mode => 'Base', }, HasMember => { Type => 'MemberOf', Mode => 'Base', }, RefersTo => { Type => 'RefersTo', @@ -165,7 +192,7 @@ use vars '%LINKTYPEMAP'; # }}} # {{{ LINKDIRMAP -# A helper table for relationships mapping to make it easier +# A helper table for links mapping to make it easier # to build and parse links between tickets use vars '%LINKDIRMAP'; @@ -184,6 +211,9 @@ use vars '%LINKDIRMAP'; # }}} +sub LINKTYPEMAP { return \%LINKTYPEMAP } +sub LINKDIRMAP { return \%LINKDIRMAP } + # {{{ sub Load =head2 Load @@ -215,8 +245,8 @@ sub Load { if ( $id =~ /^\d+$/ ) { my $ticketid = $self->LoadById($id); - unless ($ticketid) { - $RT::Logger->debug("$self tried to load a bogus ticket: $id\n"); + unless ($self->Id) { + $RT::Logger->crit("$self tried to load a bogus ticket: $id\n"); return (undef); } } @@ -269,12 +299,13 @@ Arguments: ARGS is a hash of named parameters. Valid parameters are: id Queue - Either a Queue object or a Queue Name - Requestor - A reference to a list of RT::User objects, email addresses or RT user Names - Cc - A reference to a list of RT::User objects, email addresses or Names - AdminCc - A reference to a list of RT::User objects, email addresses or Names + Requestor - A reference to a list of email addresses or RT user Names + Cc - A reference to a list of email addresses or Names + AdminCc - A reference to a list of email addresses or Names Type -- The ticket\'s type. ignore this for now Owner -- This ticket\'s owner. either an RT::User object or this user\'s id Subject -- A string describing the subject of the ticket + Priority -- an integer from 0 to 99 InitialPriority -- an integer from 0 to 99 FinalPriority -- an integer from 0 to 99 Status -- any valid status (Defined in RT::Queue) @@ -308,39 +339,37 @@ ok ($t->ResolvedObj->Unix == -1, "It hasn't been resolved - ". $t->ResolvedObj-> sub Create { my $self = shift; - my %args = ( id => undef, - EffectiveId => undef, - Queue => undef, - Requestor => undef, - Cc => undef, - AdminCc => undef, - Type => 'ticket', - Owner => undef, - Subject => '', - InitialPriority => undef, - FinalPriority => undef, - Priority => undef, - Status => 'new', - TimeWorked => 0, - TimeLeft => 0, - TimeEstimated => 0, - Due => undef, - Starts => undef, - Started => undef, - Resolved => undef, - MIMEObj => undef, - _RecordTransaction => 1, - - - - @_ ); + my %args = ( + id => undef, + EffectiveId => undef, + Queue => undef, + Requestor => undef, + Cc => undef, + AdminCc => undef, + Type => 'ticket', + Owner => undef, + Subject => '', + InitialPriority => undef, + FinalPriority => undef, + Priority => undef, + Status => 'new', + TimeWorked => "0", + TimeLeft => 0, + TimeEstimated => 0, + Due => undef, + Starts => undef, + Started => undef, + Resolved => undef, + MIMEObj => undef, + _RecordTransaction => 1, + @_ + ); my ( $ErrStr, $Owner, $resolved ); my (@non_fatal_errors); my $QueueObj = RT::Queue->new($RT::SystemUser); - if ( ( defined( $args{'Queue'} ) ) && ( !ref( $args{'Queue'} ) ) ) { $QueueObj->Load( $args{'Queue'} ); } @@ -348,9 +377,9 @@ sub Create { $QueueObj->Load( $args{'Queue'}->Id ); } else { - $RT::Logger->debug( $args{'Queue'} . " not a recognised queue object."); + $RT::Logger->debug( + $args{'Queue'} . " not a recognised queue object." ); } -; #Can't create a ticket without a queue. unless ( defined($QueueObj) && $QueueObj->Id ) { @@ -359,36 +388,43 @@ sub Create { } #Now that we have a queue, Check the ACLS - unless ( $self->CurrentUser->HasRight( Right => 'CreateTicket', - Object => $QueueObj ) - ) { - return ( 0, 0, - $self->loc( "No permission to create tickets in the queue '[_1]'", $QueueObj->Name ) ); + unless ( + $self->CurrentUser->HasRight( + Right => 'CreateTicket', + Object => $QueueObj + ) + ) + { + return ( + 0, 0, + $self->loc( + "No permission to create tickets in the queue '[_1]'", + $QueueObj->Name + ) + ); } unless ( $QueueObj->IsValidStatus( $args{'Status'} ) ) { return ( 0, 0, $self->loc('Invalid value for status') ); } - #Since we have a queue, we can set queue defaults #Initial Priority # If there's no queue default initial priority and it's not set, set it to 0 $args{'InitialPriority'} = ( $QueueObj->InitialPriority || 0 ) - unless ( defined $args{'InitialPriority'} ); + unless ( $args{'InitialPriority'} ); - #Final priority + #Final priority # If there's no queue default final priority and it's not set, set it to 0 $args{'FinalPriority'} = ( $QueueObj->FinalPriority || 0 ) - unless ( defined $args{'FinalPriority'} ); + unless ( $args{'FinalPriority'} ); # Priority may have changed from InitialPriority, for the case # where we're importing tickets (eg, from an older RT version.) my $priority = $args{'Priority'} || $args{'InitialPriority'}; - # {{{ Dates #TODO we should see what sort of due date we're getting, rather + # than assuming it's in ISO format. @@ -397,32 +433,35 @@ sub Create { my $Due = new RT::Date( $self->CurrentUser ); if ( $args{'Due'} ) { - $Due->Set( Format => 'ISO', Value => $args{'Due'} ); + $Due->Set( Format => 'ISO', Value => $args{'Due'} ); } - elsif ( $QueueObj->DefaultDueIn ) { + elsif ( $QueueObj->DefaultDueIn ) { $Due->SetToNow; $Due->AddDays( $QueueObj->DefaultDueIn ); } my $Starts = new RT::Date( $self->CurrentUser ); if ( defined $args{'Starts'} ) { - $Starts->Set( Format => 'ISO', Value => $args{'Starts'} ); + $Starts->Set( Format => 'ISO', Value => $args{'Starts'} ); } my $Started = new RT::Date( $self->CurrentUser ); if ( defined $args{'Started'} ) { - $Started->Set( Format => 'ISO', Value => $args{'Started'} ); + $Started->Set( Format => 'ISO', Value => $args{'Started'} ); } my $Resolved = new RT::Date( $self->CurrentUser ); if ( defined $args{'Resolved'} ) { - $Resolved->Set( Format => 'ISO', Value => $args{'Resolved'} ); + $Resolved->Set( Format => 'ISO', Value => $args{'Resolved'} ); } - #If the status is an inactive status, set the resolved date - if ($QueueObj->IsInactiveStatus($args{'Status'}) && !$args{'Resolved'}) { - $RT::Logger->debug("Got a ".$args{'Status'} . "ticket with a resolved of ".$args{'Resolved'}); + if ( $QueueObj->IsInactiveStatus( $args{'Status'} ) && !$args{'Resolved'} ) + { + $RT::Logger->debug( "Got a " + . $args{'Status'} + . "ticket with a resolved of " + . $args{'Resolved'} ); $Resolved->SetToNow; } @@ -443,29 +482,44 @@ sub Create { } #If we've been handed something else, try to load the user. - elsif ( defined $args{'Owner'} ) { + elsif ( $args{'Owner'} ) { $Owner = RT::User->new( $self->CurrentUser ); $Owner->Load( $args{'Owner'} ); + push( @non_fatal_errors, + $self->loc("Owner could not be set.") . " " + . $self->loc( "User '[_1]' could not be found.", $args{'Owner'} ) + ) + unless ( $Owner->Id ); } - #If we have a proposed owner and they don't have the right + #If we have a proposed owner and they don't have the right #to own a ticket, scream about it and make them not the owner - if ( ( defined($Owner) ) - and ( $Owner->Id ) - and ( $Owner->Id != $RT::Nobody->Id ) - and ( !$Owner->HasRight( Object => $QueueObj, - Right => 'OwnTicket' ) ) - ) { + if ( + ( defined($Owner) ) + and ( $Owner->Id ) + and ( $Owner->Id != $RT::Nobody->Id ) + and ( + !$Owner->HasRight( + Object => $QueueObj, + Right => 'OwnTicket' + ) + ) + ) + { $RT::Logger->warning( "User " - . $Owner->Name . "(" - . $Owner->id - . ") was proposed " - . "as a ticket owner but has no rights to own " - . "tickets in ".$QueueObj->Name ); + . $Owner->Name . "(" + . $Owner->id + . ") was proposed " + . "as a ticket owner but has no rights to own " + . "tickets in " + . $QueueObj->Name ); - push @non_fatal_errors, $self->loc("Invalid owner. Defaulting to 'nobody'."); + push @non_fatal_errors, + $self->loc( "Owner '[_1]' does not have rights to own this ticket.", + $Owner->Name + ); $Owner = undef; } @@ -478,43 +532,49 @@ sub Create { # }}} - # We attempt to load or create each of the people who might have a role for this ticket - # _outside_ the transaction, so we don't get into ticket creation races +# We attempt to load or create each of the people who might have a role for this ticket +# _outside_ the transaction, so we don't get into ticket creation races foreach my $type ( "Cc", "AdminCc", "Requestor" ) { - next unless (defined $args{$type}); - foreach my $watcher ( ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) { - my $user = RT::User->new($RT::SystemUser); - $user->LoadOrCreateByEmail($watcher) if ($watcher && $watcher !~ /^\d+$/); + next unless ( defined $args{$type} ); + foreach my $watcher ( + ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) + { + my $user = RT::User->new($RT::SystemUser); + $user->LoadOrCreateByEmail($watcher) + if ( $watcher && $watcher !~ /^\d+$/ ); } } - $RT::Handle->BeginTransaction(); - my %params =( Queue => $QueueObj->Id, - Owner => $Owner->Id, - Subject => $args{'Subject'}, - InitialPriority => $args{'InitialPriority'}, - FinalPriority => $args{'FinalPriority'}, - Priority => $priority, - Status => $args{'Status'}, - TimeWorked => $args{'TimeWorked'}, - TimeEstimated => $args{'TimeEstimated'}, - TimeLeft => $args{'TimeLeft'}, - Type => $args{'Type'}, - Starts => $Starts->ISO, - Started => $Started->ISO, - Resolved => $Resolved->ISO, - Due => $Due->ISO ); - - # Parameters passed in during an import that we probably don't want to touch, otherwise + my %params = ( + Queue => $QueueObj->Id, + Owner => $Owner->Id, + Subject => $args{'Subject'}, + InitialPriority => $args{'InitialPriority'}, + FinalPriority => $args{'FinalPriority'}, + Priority => $priority, + Status => $args{'Status'}, + TimeWorked => $args{'TimeWorked'}, + TimeEstimated => $args{'TimeEstimated'}, + TimeLeft => $args{'TimeLeft'}, + Type => $args{'Type'}, + Starts => $Starts->ISO, + Started => $Started->ISO, + Resolved => $Resolved->ISO, + Due => $Due->ISO + ); + +# Parameters passed in during an import that we probably don't want to touch, otherwise foreach my $attr qw(id Creator Created LastUpdated LastUpdatedBy) { - $params{$attr} = $args{$attr} if ($args{$attr}); + $params{$attr} = $args{$attr} if ( $args{$attr} ); } # Delete null integer parameters - foreach my $attr qw(TimeWorked TimeLeft TimeEstimated InitialPriority FinalPriority) { - delete $params{$attr} unless (exists $params{$attr} && $params{$attr}); + foreach my $attr + qw(TimeWorked TimeLeft TimeEstimated InitialPriority FinalPriority) { + delete $params{$attr} + unless ( exists $params{$attr} && $params{$attr} ); } # Delete the time worked if we're counting it in the transaction @@ -522,67 +582,83 @@ sub Create { my ($id,$ticket_message) = $self->SUPER::Create( %params); unless ($id) { - $RT::Logger->crit( "Couldn't create a ticket: " . $ticket_message); + $RT::Logger->crit( "Couldn't create a ticket: " . $ticket_message ); $RT::Handle->Rollback(); - return ( 0, 0, $self->loc( "Ticket could not be created due to an internal error") ); + return ( 0, 0, + $self->loc("Ticket could not be created due to an internal error") + ); } #Set the ticket's effective ID now that we've created it. - my ( $val, $msg ) = $self->__Set( Field => 'EffectiveId', Value => ($args{'EffectiveId'} || $id ) ); + my ( $val, $msg ) = $self->__Set( + Field => 'EffectiveId', + Value => ( $args{'EffectiveId'} || $id ) + ); unless ($val) { $RT::Logger->crit("$self ->Create couldn't set EffectiveId: $msg\n"); $RT::Handle->Rollback(); - return ( 0, 0, $self->loc( "Ticket could not be created due to an internal error") ); + return ( 0, 0, + $self->loc("Ticket could not be created due to an internal error") + ); } my $create_groups_ret = $self->_CreateTicketGroups(); unless ($create_groups_ret) { $RT::Logger->crit( "Couldn't create ticket groups for ticket " - . $self->Id - . ". aborting Ticket creation." ); + . $self->Id + . ". aborting Ticket creation." ); $RT::Handle->Rollback(); return ( 0, 0, - $self->loc( "Ticket could not be created due to an internal error") ); + $self->loc("Ticket could not be created due to an internal error") + ); } - # Set the owner in the Groups table - # We denormalize it into the Ticket table too because doing otherwise would - # kill performance, bigtime. It gets kept in lockstep thanks to the magic of transactionalization +# Set the owner in the Groups table +# We denormalize it into the Ticket table too because doing otherwise would +# kill performance, bigtime. It gets kept in lockstep thanks to the magic of transactionalization - $self->OwnerGroup->_AddMember( PrincipalId => $Owner->PrincipalId , InsideTransaction => 1); + $self->OwnerGroup->_AddMember( + PrincipalId => $Owner->PrincipalId, + InsideTransaction => 1 + ); # {{{ Deal with setting up watchers - foreach my $type ( "Cc", "AdminCc", "Requestor" ) { - next unless (defined $args{$type}); - foreach my $watcher ( ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) { + next unless ( defined $args{$type} ); + foreach my $watcher ( + ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) + { - # If there is an empty entry in the list, let's get out of here. - next unless $watcher; + # If there is an empty entry in the list, let's get out of here. + next unless $watcher; - # we reason that all-digits number must be a principal id, not email - # this is the only way to can add - my $field = 'Email'; - $field = 'PrincipalId' if $watcher =~ /^\d+$/; + # we reason that all-digits number must be a principal id, not email + # this is the only way to can add + my $field = 'Email'; + $field = 'PrincipalId' if $watcher =~ /^\d+$/; - my ( $wval, $wmsg ); + my ( $wval, $wmsg ); if ( $type eq 'AdminCc' ) { - # Note that we're using AddWatcher, rather than _AddWatcher, as we - # actually _want_ that ACL check. Otherwise, random ticket creators - # could make themselves adminccs and maybe get ticket rights. that would - # be poor - ( $wval, $wmsg ) = $self->AddWatcher( Type => $type, - $field => $watcher, - Silent => 1 ); + # Note that we're using AddWatcher, rather than _AddWatcher, as we + # actually _want_ that ACL check. Otherwise, random ticket creators + # could make themselves adminccs and maybe get ticket rights. that would + # be poor + ( $wval, $wmsg ) = $self->AddWatcher( + Type => $type, + $field => $watcher, + Silent => 1 + ); } else { - ( $wval, $wmsg ) = $self->_AddWatcher( Type => $type, - $field => $watcher, - Silent => 1 ); + ( $wval, $wmsg ) = $self->_AddWatcher( + Type => $type, + $field => $watcher, + Silent => 1 + ); } push @non_fatal_errors, $wmsg unless ($wval); @@ -592,9 +668,8 @@ sub Create { # }}} # {{{ Deal with setting up links - foreach my $type ( keys %LINKTYPEMAP ) { - next unless (defined $args{$type}); + next unless ( defined $args{$type} ); foreach my $link ( ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) { @@ -610,23 +685,27 @@ sub Create { # }}} - # {{{ Add all the custom fields + # {{{ Add all the custom fields foreach my $arg ( keys %args ) { - next unless ( $arg =~ /^CustomField-(\d+)$/i ); - my $cfid = $1; - foreach - my $value ( ref( $args{$arg} ) ? @{ $args{$arg} } : ( $args{$arg} ) ) { - next unless (length($value)); - $self->_AddCustomFieldValue( Field => $cfid, - Value => $value, - RecordTransaction => 0 - ); - } + next unless ( $arg =~ /^CustomField-(\d+)$/i ); + my $cfid = $1; + foreach + my $value ( ref( $args{$arg} ) ? @{ $args{$arg} } : ( $args{$arg} ) ) + { + next unless ( length($value) ); + $self->_AddCustomFieldValue( + Field => $cfid, + Value => $value, + RecordTransaction => 0 + ); + } } + # }}} if ( $args{'_RecordTransaction'} ) { + # {{{ Add a transaction for the create my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( Type => "Create", @@ -634,23 +713,27 @@ sub Create { MIMEObj => $args{'MIMEObj'} ); - if ( $self->Id && $Trans ) { - $ErrStr = $self->loc( "Ticket [_1] created in queue '[_2]'", $self->Id, $QueueObj->Name ); - $ErrStr = join ( "\n", $ErrStr, @non_fatal_errors ); - $RT::Logger->info("Ticket ".$self->Id. " created in queue '".$QueueObj->Name."' by ".$self->CurrentUser->Name); + $RT::Logger->info( "Ticket " . $self->Id . " created in queue '" . $QueueObj->Name . "' by " . $self->CurrentUser->Name ); + $ErrStr = $self->loc( "Ticket [_1] created in queue '[_2]'", $self->Id, $QueueObj->Name ); + $ErrStr = join( "\n", $ErrStr, @non_fatal_errors ); } else { $RT::Handle->Rollback(); - # TODO where does this get errstr from? + $ErrStr = join( "\n", $ErrStr, @non_fatal_errors ); $RT::Logger->error("Ticket couldn't be created: $ErrStr"); - return ( 0, 0, $self->loc( "Ticket could not be created due to an internal error")); + return ( + 0, 0, + $self->loc( + "Ticket could not be created due to an internal error") + ); } $RT::Handle->Commit(); return ( $self->Id, $TransObj->Id, $ErrStr ); + # }}} } else { @@ -658,7 +741,7 @@ sub Create { # Not going to record a transaction $RT::Handle->Commit(); $ErrStr = $self->loc( "Ticket [_1] created in queue '[_2]'", $self->Id, $QueueObj->Name ); - $ErrStr = join ( "\n", $ErrStr, @non_fatal_errors ); + $ErrStr = join( "\n", $ErrStr, @non_fatal_errors ); return ( $self->Id, $0, $ErrStr ); } @@ -1263,7 +1346,7 @@ sub Import { =head2 _CreateTicketGroups -Create the ticket groups and relationships for this ticket. +Create the ticket groups and links for this ticket. This routine expects to be called from Ticket->Create _inside of a transaction_ It will create four groups for this ticket: Requestor, Cc, AdminCc and Owner. @@ -1512,61 +1595,66 @@ Email (the email address of an existing wathcer) sub DeleteWatcher { my $self = shift; - my %args = ( Type => undef, + my %args = ( Type => undef, PrincipalId => undef, - Email => undef, + Email => undef, @_ ); - unless ($args{'PrincipalId'} || $args{'Email'} ) { - return(0, $self->loc("No principal specified")); + unless ( $args{'PrincipalId'} || $args{'Email'} ) { + return ( 0, $self->loc("No principal specified") ); } - my $principal = RT::Principal->new($self->CurrentUser); - if ($args{'PrincipalId'} ) { + my $principal = RT::Principal->new( $self->CurrentUser ); + if ( $args{'PrincipalId'} ) { - $principal->Load($args{'PrincipalId'}); - } else { - my $user = RT::User->new($self->CurrentUser); - $user->LoadByEmail($args{'Email'}); - $principal->Load($user->Id); + $principal->Load( $args{'PrincipalId'} ); } + else { + my $user = RT::User->new( $self->CurrentUser ); + $user->LoadByEmail( $args{'Email'} ); + $principal->Load( $user->Id ); + } + # If we can't find this watcher, we need to bail. - unless ($principal->Id) { - return(0, $self->loc("Could not find that principal")); + unless ( $principal->Id ) { + return ( 0, $self->loc("Could not find that principal") ); } - my $group = RT::Group->new($self->CurrentUser); - $group->LoadTicketRoleGroup(Type => $args{'Type'}, Ticket => $self->Id); - unless ($group->id) { - return(0,$self->loc("Group not found")); + my $group = RT::Group->new( $self->CurrentUser ); + $group->LoadTicketRoleGroup( Type => $args{'Type'}, Ticket => $self->Id ); + unless ( $group->id ) { + return ( 0, $self->loc("Group not found") ); } # {{{ Check ACLS #If the watcher we're trying to add is for the current user - if ( $self->CurrentUser->PrincipalId eq $args{'PrincipalId'}) { - # If it's an AdminCc and they don't have + if ( $self->CurrentUser->PrincipalId eq $args{'PrincipalId'} ) { + + # If it's an AdminCc and they don't have # 'WatchAsAdminCc' or 'ModifyTicket', bail if ( $args{'Type'} eq 'AdminCc' ) { - unless ( $self->CurrentUserHasRight('ModifyTicket') - or $self->CurrentUserHasRight('WatchAsAdminCc') ) { - return ( 0, $self->loc('Permission Denied')) + unless ( $self->CurrentUserHasRight('ModifyTicket') + or $self->CurrentUserHasRight('WatchAsAdminCc') ) { + return ( 0, $self->loc('Permission Denied') ); } } # If it's a Requestor or Cc and they don't have # 'Watch' or 'ModifyTicket', bail - elsif ( ( $args{'Type'} eq 'Cc' ) or ( $args{'Type'} eq 'Requestor' ) ) { - unless ( $self->CurrentUserHasRight('ModifyTicket') - or $self->CurrentUserHasRight('Watch') ) { - return ( 0, $self->loc('Permission Denied')) + elsif ( ( $args{'Type'} eq 'Cc' ) or ( $args{'Type'} eq 'Requestor' ) ) + { + unless ( $self->CurrentUserHasRight('ModifyTicket') + or $self->CurrentUserHasRight('Watch') ) { + return ( 0, $self->loc('Permission Denied') ); } } else { - $RT::Logger->warn( "$self -> DeleteWatcher got passed a bogus type"); - return ( 0, $self->loc('Error in parameters to Ticket->DelWatcher') ); + $RT::Logger->warn("$self -> DeleteWatcher got passed a bogus type"); + return ( 0, + $self->loc('Error in parameters to Ticket->DeleteWatcher') ); } } - # If the watcher isn't the current user + # If the watcher isn't the current user # and the current user doesn't have 'ModifyTicket' bail else { unless ( $self->CurrentUserHasRight('ModifyTicket') ) { @@ -1576,39 +1664,125 @@ sub DeleteWatcher { # }}} - # see if this user is already a watcher. - unless ( $group->HasMember($principal)) { - return ( 0, - $self->loc('That principal is not a [_1] for this ticket', $args{'Type'}) ); + unless ( $group->HasMember($principal) ) { + return ( 0, + $self->loc( 'That principal is not a [_1] for this ticket', + $args{'Type'} ) ); } - my ($m_id, $m_msg) = $group->_DeleteMember($principal->Id); + my ( $m_id, $m_msg ) = $group->_DeleteMember( $principal->Id ); unless ($m_id) { - $RT::Logger->error("Failed to delete ".$principal->Id. - " as a member of group ".$group->Id."\n".$m_msg); + $RT::Logger->error( "Failed to delete " + . $principal->Id + . " as a member of group " + . $group->Id . "\n" + . $m_msg ); - return ( 0, $self->loc('Could not remove that principal as a [_1] for this ticket', $args{'Type'}) ); + return (0, + $self->loc( + 'Could not remove that principal as a [_1] for this ticket', + $args{'Type'} ) ); } unless ( $args{'Silent'} ) { - $self->_NewTransaction( - Type => 'DelWatcher', - OldValue => $principal->Id, - Field => $args{'Type'} - ); + $self->_NewTransaction( Type => 'DelWatcher', + OldValue => $principal->Id, + Field => $args{'Type'} ); } - return ( 1, $self->loc("[_1] is no longer a [_2] for this ticket.", $principal->Object->Name, $args{'Type'} )); + return ( 1, + $self->loc( "[_1] is no longer a [_2] for this ticket.", + $principal->Object->Name, + $args{'Type'} ) ); } - # }}} +=head2 SquelchMailTo [EMAIL] + +Takes an optional email address to never email about updates to this ticket. + + +Returns an array of the RT::Attribute objects for this ticket's 'SquelchMailTo' attributes. + +=begin testing + +my $t = RT::Ticket->new($RT::SystemUser); +ok($t->Create(Queue => 'general', Subject => 'SquelchTest')); + +is($#{$t->SquelchMailTo}, -1, "The ticket has no squelched recipients"); + +my @returned = $t->SquelchMailTo('nobody@example.com'); + +is($#returned, 0, "The ticket has one squelched recipients"); + +my @names = $t->Attributes->Names; +is(shift @names, 'SquelchMailTo', "The attribute we have is SquelchMailTo"); +@returned = $t->SquelchMailTo('nobody@example.com'); + + +is($#returned, 0, "The ticket has one squelched recipients"); + +@names = $t->Attributes->Names; +is(shift @names, 'SquelchMailTo', "The attribute we have is SquelchMailTo"); + + +my ($ret, $msg) = $t->UnsquelchMailTo('nobody@example.com'); +ok($ret, "Removed nobody as a squelched recipient - ".$msg); +@returned = $t->SquelchMailTo(); +is($#returned, -1, "The ticket has no squelched recipients". join(',',@returned)); + + +=end testing + +=cut + +sub SquelchMailTo { + my $self = shift; + if (@_) { + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return undef; + } + my $attr = shift; + $self->AddAttribute( Name => 'SquelchMailTo', Content => $attr ) + unless grep { $_->Content eq $attr } + $self->Attributes->Named('SquelchMailTo'); + + } + unless ( $self->CurrentUserHasRight('ShowTicket') ) { + return undef; + } + my @attributes = $self->Attributes->Named('SquelchMailTo'); + return (@attributes); +} + + +=head2 UnsquelchMailTo ADDRESS + +Takes an address and removes it from this ticket's "SquelchMailTo" list. If an address appears multiple times, each instance is removed. + +Returns a tuple of (status, message) + +=cut + +sub UnsquelchMailTo { + my $self = shift; + + my $address = shift; + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { + return ( 0, $self->loc("Permission Denied") ); + } + + my ($val, $msg) = $self->Attributes->DeleteEntry ( Name => 'SquelchMailTo', Content => $address); + return ($val, $msg); +} + + # {{{ a set of [foo]AsString subs that will return the various sorts of watchers for a ticket/queue as a comma delineated string =head2 RequestorAddresses @@ -2206,11 +2380,14 @@ Takes a hashref with the following attributes: If MIMEObj is undefined, Content will be used to build a MIME::Entity for this commentl -MIMEObj, TimeTaken, CcMessageTo, BccMessageTo, Content. +MIMEObj, TimeTaken, CcMessageTo, BccMessageTo, Content, DryRun + +If DryRun is defined, this update WILL NOT BE RECORDED. Scrips will not be committed. +They will, however, be prepared and you'll be able to access them through the TransactionObj + =cut -## Please see file perltidy.ERR sub Comment { my $self = shift; @@ -2219,51 +2396,27 @@ sub Comment { MIMEObj => undef, Content => undef, TimeTaken => 0, + DryRun => 0, @_ ); unless ( ( $self->CurrentUserHasRight('CommentOnTicket') ) or ( $self->CurrentUserHasRight('ModifyTicket') ) ) { - return ( 0, $self->loc("Permission Denied") ); + return ( 0, $self->loc("Permission Denied"), undef ); } + $args{'NoteType'} = 'Comment'; - unless ( $args{'MIMEObj'} ) { - if ( $args{'Content'} ) { - use MIME::Entity; - $args{'MIMEObj'} = MIME::Entity->build( - Data => ( ref $args{'Content'} ? $args{'Content'} : [ $args{'Content'} ] ) - ); - } - else { - - return ( 0, $self->loc("No correspondence attached") ); - } + if ($args{'DryRun'}) { + $RT::Handle->BeginTransaction(); + $args{'CommitScrips'} = 0; } - RT::I18N::SetMIMEEntityToUTF8($args{'MIMEObj'}); # convert text parts into utf-8 - - # If we've been passed in CcMessageTo and BccMessageTo fields, - # add them to the mime object for passing on to the transaction handler - # The "NotifyOtherRecipients" scripAction will look for RT--Send-Cc: and - # RT-Send-Bcc: headers - - $args{'MIMEObj'}->head->add( 'RT-Send-Cc', - RT::User::CanonicalizeEmailAddress(undef, $args{'CcMessageTo'}) ) - if defined $args{'CcMessageTo'}; - $args{'MIMEObj'}->head->add( 'RT-Send-Bcc', - RT::User::CanonicalizeEmailAddress(undef, $args{'BccMessageTo'}) ) - if defined $args{'BccMessageTo'}; - - #Record the correspondence (write the transaction) - my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( - Type => 'Comment', - Data => ( $args{'MIMEObj'}->head->get('subject') || 'No Subject' ), - TimeTaken => $args{'TimeTaken'}, - MIMEObj => $args{'MIMEObj'} - ); + my @results = $self->_RecordNote(%args); + if ($args{'DryRun'}) { + $RT::Handle->Rollback(); + } - return ( $Trans, $self->loc("The comment has been recorded") ); + return(@results); } - # }}} # {{{ sub Correspond @@ -2274,10 +2427,13 @@ Correspond on this ticket. Takes a hashref with the following attributes: -MIMEObj, TimeTaken, CcMessageTo, BccMessageTo, Content +MIMEObj, TimeTaken, CcMessageTo, BccMessageTo, Content, DryRun if there's no MIMEObj, Content is used to build a MIME::Entity object +If DryRun is defined, this update WILL NOT BE RECORDED. Scrips will not be committed. +They will, however, be prepared and you'll be able to access them through the TransactionObj + =cut @@ -2292,307 +2448,102 @@ sub Correspond { unless ( ( $self->CurrentUserHasRight('ReplyToTicket') ) or ( $self->CurrentUserHasRight('ModifyTicket') ) ) { - return ( 0, $self->loc("Permission Denied") ); + return ( 0, $self->loc("Permission Denied"), undef ); } - unless ( $args{'MIMEObj'} ) { - if ( $args{'Content'} ) { - use MIME::Entity; - $args{'MIMEObj'} = MIME::Entity->build( - Data => ( ref $args{'Content'} ? $args{'Content'} : [ $args{'Content'} ] ) - ); - - } - else { - - return ( 0, $self->loc("No correspondence attached") ); - } + $args{'NoteType'} = 'Correspond'; + if ($args{'DryRun'}) { + $RT::Handle->BeginTransaction(); + $args{'CommitScrips'} = 0; } - RT::I18N::SetMIMEEntityToUTF8($args{'MIMEObj'}); # convert text parts into utf-8 - - # If we've been passed in CcMessageTo and BccMessageTo fields, - # add them to the mime object for passing on to the transaction handler - # The "NotifyOtherRecipients" scripAction will look for RT-Send-Cc: and RT-Send-Bcc: - # headers - - $args{'MIMEObj'}->head->add( 'RT-Send-Cc', - RT::User::CanonicalizeEmailAddress(undef, $args{'CcMessageTo'}) ) - if defined $args{'CcMessageTo'}; - $args{'MIMEObj'}->head->add( 'RT-Send-Bcc', - RT::User::CanonicalizeEmailAddress(undef, $args{'BccMessageTo'}) ) - if defined $args{'BccMessageTo'}; - - #Record the correspondence (write the transaction) - my ( $Trans, $msg, $TransObj ) = $self->_NewTransaction( - Type => 'Correspond', - Data => ( $args{'MIMEObj'}->head->get('subject') || 'No Subject' ), - TimeTaken => $args{'TimeTaken'}, - MIMEObj => $args{'MIMEObj'} ); - - unless ($Trans) { - $RT::Logger->err( "$self couldn't init a transaction $msg"); - return ( $Trans, $self->loc("correspondence (probably) not sent"), $args{'MIMEObj'} ); - } + my @results = $self->_RecordNote(%args); #Set the last told date to now if this isn't mail from the requestor. #TODO: Note that this will wrongly ack mail from any non-requestor as a "told" + $self->_SetTold unless ( $self->IsRequestor($self->CurrentUser->id)); - unless ( $TransObj->IsInbound ) { - $self->_SetTold; + if ($args{'DryRun'}) { + $RT::Handle->Rollback(); } - return ( $Trans, $self->loc("correspondence sent") ); -} - -# }}} - -# }}} - -# {{{ Routines dealing with Links and Relations between tickets - -# {{{ Link Collections - -# {{{ sub Members - -=head2 Members - - This returns an RT::Links object which references all the tickets -which are 'MembersOf' this ticket - -=cut - -sub Members { - my $self = shift; - return ( $self->_Links( 'Target', 'MemberOf' ) ); -} - -# }}} - -# {{{ sub MemberOf - -=head2 MemberOf - - This returns an RT::Links object which references all the tickets that this -ticket is a 'MemberOf' - -=cut - -sub MemberOf { - my $self = shift; - return ( $self->_Links( 'Base', 'MemberOf' ) ); -} - -# }}} - -# {{{ RefersTo - -=head2 RefersTo - - This returns an RT::Links object which shows all references for which this ticket is a base - -=cut - -sub RefersTo { - my $self = shift; - return ( $self->_Links( 'Base', 'RefersTo' ) ); -} - -# }}} - -# {{{ ReferredToBy - -=head2 ReferredToBy - - This returns an RT::Links object which shows all references for which this ticket is a target - -=cut - -sub ReferredToBy { - my $self = shift; - return ( $self->_Links( 'Target', 'RefersTo' ) ); -} - -# }}} - -# {{{ DependedOnBy - -=head2 DependedOnBy + return (@results); - This returns an RT::Links object which references all the tickets that depend on this one - -=cut - -sub DependedOnBy { - my $self = shift; - return ( $self->_Links( 'Target', 'DependsOn' ) ); } # }}} +# {{{ sub _RecordNote +=head2 _RecordNote -=head2 HasUnresolvedDependencies - - Takes a paramhash of Type (default to '__any'). Returns true if -$self->UnresolvedDependencies returns an object with one or more members -of that type. Returns false otherwise - +the meat of both comment and correspond. -=begin testing - -my $t1 = RT::Ticket->new($RT::SystemUser); -my ($id, $trans, $msg) = $t1->Create(Subject => 'DepTest1', Queue => 'general'); -ok($id, "Created dep test 1 - $msg"); - -my $t2 = RT::Ticket->new($RT::SystemUser); -my ($id2, $trans, $msg2) = $t2->Create(Subject => 'DepTest2', Queue => 'general'); -ok($id2, "Created dep test 2 - $msg2"); -my $t3 = RT::Ticket->new($RT::SystemUser); -my ($id3, $trans, $msg3) = $t3->Create(Subject => 'DepTest3', Queue => 'general', Type => 'approval'); -ok($id3, "Created dep test 3 - $msg3"); - -ok ($t1->AddLink( Type => 'DependsOn', Target => $t2->id)); -ok ($t1->AddLink( Type => 'DependsOn', Target => $t3->id)); - -ok ($t1->HasUnresolvedDependencies, "Ticket ".$t1->Id." has unresolved deps"); -ok (!$t1->HasUnresolvedDependencies( Type => 'blah' ), "Ticket ".$t1->Id." has no unresolved blahs"); -ok ($t1->HasUnresolvedDependencies( Type => 'approval' ), "Ticket ".$t1->Id." has unresolved approvals"); -ok (!$t2->HasUnresolvedDependencies, "Ticket ".$t2->Id." has no unresolved deps"); -my ($rid, $rmsg)= $t1->Resolve(); -ok(!$rid, $rmsg); -ok($t2->Resolve); -($rid, $rmsg)= $t1->Resolve(); -ok(!$rid, $rmsg); -ok($t3->Resolve); -($rid, $rmsg)= $t1->Resolve(); -ok($rid, $rmsg); - - -=end testing +Performs no access control checks. hence, dangerous. =cut -sub HasUnresolvedDependencies { - my $self = shift; - my %args = ( - Type => undef, - @_ - ); +sub _RecordNote { - my $deps = $self->UnresolvedDependencies; - - if ($args{Type}) { - $deps->Limit( FIELD => 'Type', - OPERATOR => '=', - VALUE => $args{Type}); - } - else { - $deps->IgnoreType; - } - - if ($deps->Count > 0) { - return 1; - } - else { - return (undef); - } -} - - -# {{{ UnresolvedDependencies - -=head2 UnresolvedDependencies - -Returns an RT::Tickets object of tickets which this ticket depends on -and which have a status of new, open or stalled. (That list comes from -RT::Queue->ActiveStatusArray - -=cut - - -sub UnresolvedDependencies { my $self = shift; - my $deps = RT::Tickets->new($self->CurrentUser); + my %args = ( CcMessageTo => undef, + BccMessageTo => undef, + MIMEObj => undef, + Content => undef, + TimeTaken => 0, + CommitScrips => 1, + @_ ); - my @live_statuses = RT::Queue->ActiveStatusArray(); - foreach my $status (@live_statuses) { - $deps->LimitStatus(VALUE => $status); + unless ( $args{'MIMEObj'} || $args{'Content'} ) { + return ( 0, $self->loc("No message attached"), undef ); } - $deps->LimitDependedOnBy($self->Id); - - return($deps); - -} - -# }}} - -# {{{ AllDependedOnBy + unless ( $args{'MIMEObj'} ) { + $args{'MIMEObj'} = MIME::Entity->build( Data => ( + ref $args{'Content'} + ? $args{'Content'} + : [ $args{'Content'} ] + ) ); + } -=head2 AllDependedOnBy + # convert text parts into utf-8 + RT::I18N::SetMIMEEntityToUTF8( $args{'MIMEObj'} ); -Returns an array of RT::Ticket objects which (directly or indirectly) -depends on this ticket; takes an optional 'Type' argument in the param -hash, which will limit returned tickets to that type, as well as cause -tickets with that type to serve as 'leaf' nodes that stops the recursive -dependency search. +# If we've been passed in CcMessageTo and BccMessageTo fields, +# add them to the mime object for passing on to the transaction handler +# The "NotifyOtherRecipients" scripAction will look for RT-Send-Cc: and RT-Send-Bcc: +# headers -=cut + $args{'MIMEObj'}->head->add( 'RT-Send-Cc', RT::User::CanonicalizeEmailAddress( + undef, $args{'CcMessageTo'} + ) ) + if defined $args{'CcMessageTo'}; + $args{'MIMEObj'}->head->add( 'RT-Send-Bcc', + RT::User::CanonicalizeEmailAddress( + undef, $args{'BccMessageTo'} + ) ) + if defined $args{'BccMessageTo'}; -sub AllDependedOnBy { - my $self = shift; - my $dep = $self->DependedOnBy; - my %args = ( - Type => undef, - _found => {}, - _top => 1, - @_ + #Record the correspondence (write the transaction) + my ( $Trans, $msg, $TransObj ) = $self->_NewTransaction( + Type => $args{'NoteType'}, + Data => ( $args{'MIMEObj'}->head->get('subject') || 'No Subject' ), + TimeTaken => $args{'TimeTaken'}, + MIMEObj => $args{'MIMEObj'}, + CommitScrips => $args{'CommitScrips'}, ); - while (my $link = $dep->Next()) { - next unless ($link->BaseURI->IsLocal()); - next if $args{_found}{$link->BaseObj->Id}; - - if (!$args{Type}) { - $args{_found}{$link->BaseObj->Id} = $link->BaseObj; - $link->BaseObj->AllDependedOnBy( %args, _top => 0 ); - } - elsif ($link->BaseObj->Type eq $args{Type}) { - $args{_found}{$link->BaseObj->Id} = $link->BaseObj; - } - else { - $link->BaseObj->AllDependedOnBy( %args, _top => 0 ); - } + unless ($Trans) { + $RT::Logger->err("$self couldn't init a transaction $msg"); + return ( $Trans, $self->loc("Message could not be recorded"), undef ); } - if ($args{_top}) { - return map { $args{_found}{$_} } sort keys %{$args{_found}}; - } - else { - return 1; - } + return ( $Trans, $self->loc("Message recorded"), $TransObj ); } # }}} -# {{{ DependsOn - -=head2 DependsOn - - This returns an RT::Links object which references all the tickets that this ticket depends on - -=cut - -sub DependsOn { - my $self = shift; - return ( $self->_Links( 'Base', 'DependsOn' ) ); -} - # }}} - - - # {{{ sub _Links sub _Links { @@ -2629,8 +2580,6 @@ sub _Links { # }}} -# }}} - # {{{ sub DeleteLink =head2 DeleteLink @@ -2657,43 +2606,25 @@ sub DeleteLink { } - #we want one of base and target. we don't care which - #but we only want _one_ - - my $direction; - my $remote_link; + my ($val, $Msg) = $self->SUPER::_DeleteLink(%args); - if ( $args{'Base'} and $args{'Target'} ) { - $RT::Logger->debug("$self ->_DeleteLink. got both Base and Target\n"); - return ( 0, $self->loc("Can't specifiy both base and target") ); + if ( !$val ) { + $RT::Logger->debug("Couldn't find that link\n"); + return ( 0, $Msg ); } - elsif ( $args{'Base'} ) { - $args{'Target'} = $self->URI(); + + my ($direction, $remote_link); + + if ( $args{'Base'} ) { $remote_link = $args{'Base'}; $direction = 'Target'; } elsif ( $args{'Target'} ) { - $args{'Base'} = $self->URI(); $remote_link = $args{'Target'}; $direction='Base'; } - else { - $RT::Logger->debug("$self: Base or Target must be specified\n"); - return ( 0, $self->loc('Either base or target must be specified') ); - } - - my $link = new RT::Link( $self->CurrentUser ); - $RT::Logger->debug( "Trying to load link: " . $args{'Base'} . " " . $args{'Type'} . " " . $args{'Target'} . "\n" ); - - $link->LoadByParams( Base=> $args{'Base'}, Type=> $args{'Type'}, Target=> $args{'Target'} ); - #it's a real link. - if ( $link->id ) { - - my $linkid = $link->id; - $link->Delete(); - - my $TransString = "Ticket $args{'Base'} no longer $args{Type} ticket $args{'Target'}."; + if ( $val ) { my $remote_uri = RT::URI->new( $RT::SystemUser ); $remote_uri->FromURI( $remote_link ); @@ -2704,13 +2635,7 @@ sub DeleteLink { TimeTaken => 0 ); - return ( $Trans, $self->loc("Link deleted ([_1])", $TransString)); - } - - #if it's not a link we can find - else { - $RT::Logger->debug("Couldn't find that link\n"); - return ( 0, $self->loc("Link not found") ); + return ( $Trans, $Msg ); } } @@ -2733,99 +2658,47 @@ sub AddLink { Silent => undef, @_ ); + unless ( $self->CurrentUserHasRight('ModifyTicket') ) { return ( 0, $self->loc("Permission Denied") ); } - # Remote_link is the URI of the object that is not this ticket - my $remote_link; - my $direction; - - if ( $args{'Base'} and $args{'Target'} ) { - $RT::Logger->debug( -"$self tried to delete a link. both base and target were specified\n" ); - return ( 0, $self->loc("Can't specifiy both base and target") ); - } - elsif ( $args{'Base'} ) { - $args{'Target'} = $self->URI(); - $remote_link = $args{'Base'}; - $direction = 'Target'; - } - elsif ( $args{'Target'} ) { - $args{'Base'} = $self->URI(); - $remote_link = $args{'Target'}; - $direction='Base'; - } - else { - return ( 0, $self->loc('Either base or target must be specified') ); - } - - # If the base isn't a URI, make it a URI. - # If the target isn't a URI, make it a URI. + my ($val, $Msg) = $self->SUPER::_AddLink(%args); - # {{{ Check if the link already exists - we don't want duplicates - use RT::Link; - my $old_link = RT::Link->new( $self->CurrentUser ); - $old_link->LoadByParams( Base => $args{'Base'}, - Type => $args{'Type'}, - Target => $args{'Target'} ); - if ( $old_link->Id ) { - $RT::Logger->debug("$self Somebody tried to duplicate a link"); - return ( $old_link->id, $self->loc("Link already exists"), 0 ); + if (!$val) { + return ($val, $Msg); } - # }}} - - # Storing the link in the DB. - my $link = RT::Link->new( $self->CurrentUser ); - my ($linkid) = $link->Create( Target => $args{Target}, - Base => $args{Base}, - Type => $args{Type} ); - - unless ($linkid) { - return ( 0, $self->loc("Link could not be created") ); + my ($direction, $remote_link); + if ( $args{'Target'} ) { + $remote_link = $args{'Target'}; + $direction = 'Base'; + } elsif ( $args{'Base'} ) { + $remote_link = $args{'Base'}; + $direction = 'Target'; } - my $TransString = - "Ticket $args{'Base'} $args{Type} ticket $args{'Target'}."; - # Don't write the transaction if we're doing this on create if ( $args{'Silent'} ) { - return ( 1, $self->loc( "Link created ([_1])", $TransString ) ); + return ( 1, $Msg ); } else { my $remote_uri = RT::URI->new( $RT::SystemUser ); $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 ); - return ( $Trans, $self->loc( "Link created ([_1])", $TransString ) ); + my ( $Trans, $Msg, $TransObj ) = + $self->_NewTransaction(Type => 'AddLink', + Field => $LINKDIRMAP{$args{'Type'}}->{$direction}, + NewValue => $remote_uri->URI || $remote_link, + TimeTaken => 0 ); + return ( $Trans, $Msg ); } } # }}} -# {{{ sub URI - -=head2 URI - -Returns this ticket's URI - -=cut - -sub URI { - my $self = shift; - my $uri = RT::URI::fsck_com_rt->new($self->CurrentUser); - return($uri->URIForObject($self)); -} - -# }}} - # {{{ sub MergeInto =head2 MergeInto @@ -2915,6 +2788,10 @@ sub MergeInto { } + # Update time fields + $NewTicket->SetTimeEstimated(($NewTicket->TimeEstimated || 0) + ($self->TimeEstimated || 0)); + $NewTicket->SetTimeWorked( ($NewTicket->TimeWorked || 0) + ($self->TimeWorked || 0)); + $NewTicket->SetTimeLeft( ($NewTicket->TimeLeft || 0) + ($self->TimeLeft || 0)); #add all of this ticket's watchers to that ticket. my $requestors = $self->Requestors->MembersObj; @@ -3462,14 +3339,14 @@ sub CustomFieldValues { if ($field =~ /^\d+$/) { $cf->LoadById($field); - } else { + } elsif ($field) { $cf->LoadByNameAndQueue(Name => $field, Queue => $self->QueueObj->Id); unless( $cf->id ) { $cf->LoadByNameAndQueue(Name => $field, Queue => '0'); } } my $cf_values = RT::TicketCustomFieldValues->new( $self->CurrentUser ); - $cf_values->LimitToCustomField($cf->id); + $cf_values->LimitToCustomField($cf->id) if $cf->id; $cf_values->LimitToTicket($self->Id()); $cf_values->OrderBy( FIELD => 'id' ); @@ -3484,7 +3361,7 @@ sub CustomFieldValues { =item AddCustomFieldValue { Field => FIELD, Value => VALUE } VALUE should be a string. -FIELD can be a CustomField object OR a CustomField ID. +FIELD can be a CustomField object, a CustomField ID, or a CustomField Name. Adds VALUE as a value of CustomField FIELD. If this is a single-value custom field, @@ -3515,6 +3392,9 @@ sub _AddCustomFieldValue { if ( UNIVERSAL::isa( $args{'Field'}, "RT::CustomField" ) ) { $cf->Load( $args{'Field'}->id ); } + elsif ($args{'Field'} =~ /\D/) { + $cf->LoadByNameAndQueue( Name => $args{'Field'}, Queue => $self->QueueObj->Id ); + } else { $cf->Load( $args{'Field'} ); } @@ -3581,7 +3461,7 @@ sub _AddCustomFieldValue { $new_value->Load($new_value_id); # now that adding the new value was successful, delete the old one - if ($old_value) { + if (defined $old_value) { my ($val, $msg) = $cf->DeleteValueForTicket(Ticket => $self->Id, Content => $old_value); unless ($val) { return (0,$msg); @@ -3782,7 +3662,14 @@ sub Transactions { $transactions->Limit( FIELD => 'Type', OPERATOR => '!=', - VALUE => "Comment" + VALUE => "Comment", + ENTRYAGGREGATOR => 'AND' + ); + $transactions->Limit( + FIELD => 'Type', + OPERATOR => '!=', + VALUE => "CommentEmailRecord", + ENTRYAGGREGATOR => 'AND' ); } } @@ -3794,6 +3681,12 @@ sub Transactions { # {{{ sub _NewTransaction +=head2 _NewTransaction PARAMHASH + +Private function to create a new RT::Transaction object for this ticket update + +=cut + sub _NewTransaction { my $self = shift; my %args = ( @@ -3804,6 +3697,8 @@ sub _NewTransaction { Data => undef, Field => undef, MIMEObj => undef, + ActivateScrips => 1, + CommitScrips => 1, @_ ); @@ -3817,10 +3712,12 @@ sub _NewTransaction { Field => $args{'Field'}, NewValue => $args{'NewValue'}, OldValue => $args{'OldValue'}, - MIMEObj => $args{'MIMEObj'} + MIMEObj => $args{'MIMEObj'}, + ActivateScrips => $args{'ActivateScrips'}, + CommitScrips => $args{'CommitScrips'}, ); - + # Rationalize the object since we may have done things to it during the caching. $self->Load($self->Id); $RT::Logger->warning($msg) unless $transaction; @@ -3831,7 +3728,7 @@ sub _NewTransaction { $self->_UpdateTimeTaken( $args{'TimeTaken'} ); } if ( $RT::UseTransactionBatch and $transaction ) { - push @{$self->{_TransactionBatch}}, $trans; + push @{$self->{_TransactionBatch}}, $trans; } return ( $transaction, $msg, $trans ); } @@ -3889,8 +3786,6 @@ sub _ClassAccessible { TimeEstimated => { 'read' => 1, 'write' => 1 }, TimeWorked => { 'read' => 1, 'write' => 1 }, TimeLeft => { 'read' => 1, 'write' => 1 }, - Created => { 'read' => 1, 'auto' => 1 }, - Creator => { 'read' => 1, 'auto' => 1 }, Told => { 'read' => 1, 'write' => 1 }, Resolved => { 'read' => 1 }, Type => { 'read' => 1 }, diff --git a/rt/lib/RT/Tickets.pm b/rt/lib/RT/Tickets.pm index b6b349144..7bf452d9a 100755 --- a/rt/lib/RT/Tickets.pm +++ b/rt/lib/RT/Tickets.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::Ticket item diff --git a/rt/lib/RT/Tickets_Overlay.pm b/rt/lib/RT/Tickets_Overlay.pm index 969d887cf..582e7862a 100644 --- a/rt/lib/RT/Tickets_Overlay.pm +++ b/rt/lib/RT/Tickets_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK # Major Changes: # - Decimated ProcessRestrictions and broke it into multiple @@ -58,6 +80,7 @@ ok (require RT::Tickets); use strict; no warnings qw(redefine); use vars qw(@SORTFIELDS); +use RT::CustomFields; # Configuration Tables: @@ -84,6 +107,7 @@ my %FIELDS = RefersTo => ['LINK' => To => 'RefersTo',], HasMember => ['LINK' => From => 'MemberOf',], DependentOn => ['LINK' => From => 'DependsOn',], + DependedOnBy => ['LINK' => From => 'DependsOn',], ReferredToBy => ['LINK' => From => 'RefersTo',], # HasDepender => ['LINK',], # RelatedTo => ['LINK',], @@ -95,12 +119,12 @@ my %FIELDS = LastUpdated => ['DATE' => 'LastUpdated',], Created => ['DATE' => 'Created',], Subject => ['STRING',], - Type => ['STRING',], Content => ['TRANSFIELD',], ContentType => ['TRANSFIELD',], Filename => ['TRANSFIELD',], TransactionDate => ['TRANSDATE',], Requestor => ['WATCHERFIELD' => 'Requestor',], + Requestors => ['WATCHERFIELD' => 'Requestor',], Cc => ['WATCHERFIELD' => 'Cc',], AdminCc => ['WATCHERFIELD' => 'AdminCC',], Watcher => ['WATCHERFIELD'], @@ -279,7 +303,7 @@ Handle fields which deal with links between tickets. (MemberOf, DependsOn) Meta Data: 1: Direction (From,To) - 2: Relationship Type (MemberOf, DependsOn,RefersTo) + 2: Link Type (MemberOf, DependsOn,RefersTo) =cut @@ -349,7 +373,7 @@ sub _LinkLimit { Handle date fields. (Created, LastTold..) Meta Data: - 1: type of relationship. (Probably not necessary.) + 1: type of link. (Probably not necessary.) =cut @@ -565,79 +589,162 @@ Handle watcher limits. (Requestor, CC, etc..) Meta Data: 1: Field to query on -=cut -sub _WatcherLimit { - my ($self,$field,$op,$value,@rest) = @_; - my %rest = @rest; +=begin testing - $self->_OpenParen; +# Test to make sure that you can search for tickets by requestor address and +# by requestor name. - my $groups = $self->NewAlias('Groups'); - my $groupmembers = $self->NewAlias('CachedGroupMembers'); - my $users = $self->NewAlias('Users'); +my ($id,$msg); +my $u1 = RT::User->new($RT::SystemUser); +($id, $msg) = $u1->Create( Name => 'RequestorTestOne', EmailAddress => 'rqtest1@example.com'); +ok ($id,$msg); +my $u2 = RT::User->new($RT::SystemUser); +($id, $msg) = $u2->Create( Name => 'RequestorTestTwo', EmailAddress => 'rqtest2@example.com'); +ok ($id,$msg); +my $t1 = RT::Ticket->new($RT::SystemUser); +my ($trans); +($id,$trans,$msg) =$t1->Create (Queue => 'general', Subject => 'Requestor test one', Requestor => [$u1->EmailAddress]); +ok ($id, $msg); - #Find user watchers -# my $subclause = undef; -# my $aggregator = 'OR'; -# if ($restriction->{'OPERATOR'} =~ /!|NOT/i ){ -# $subclause = 'AndEmailIsNot'; -# $aggregator = 'AND'; -# } +my $t2 = RT::Ticket->new($RT::SystemUser); +($id,$trans,$msg) =$t2->Create (Queue => 'general', Subject => 'Requestor test one', Requestor => [$u2->EmailAddress]); +ok ($id, $msg); - if (ref $field) { # gross hack - my @bundle = @$field; - $self->_OpenParen; - for my $chunk (@bundle) { - ($field,$op,$value,@rest) = @$chunk; - $self->_SQLLimit(ALIAS => $users, - FIELD => $rest{SUBKEY} || 'EmailAddress', - VALUE => $value, - OPERATOR => $op, - CASESENSITIVE => 0, - @rest, - ); - } - $self->_CloseParen; - } else { - $self->_SQLLimit(ALIAS => $users, - FIELD => $rest{SUBKEY} || 'EmailAddress', - VALUE => $value, - OPERATOR => $op, - CASESENSITIVE => 0, - @rest, - ); - } - # {{{ Tie to groups for tickets we care about - $self->_SQLLimit(ALIAS => $groups, - FIELD => 'Domain', - VALUE => 'RT::Ticket-Role', - ENTRYAGGREGATOR => 'AND'); +my $t3 = RT::Ticket->new($RT::SystemUser); +($id,$trans,$msg) =$t3->Create (Queue => 'general', Subject => 'Requestor test one', Requestor => [$u2->EmailAddress, $u1->EmailAddress]); +ok ($id, $msg); - $self->_SQLJoin(ALIAS1 => $groups, FIELD1 => 'Instance', - ALIAS2 => 'main', FIELD2 => 'id'); - # }}} - # If we care about which sort of watcher - my $meta = $FIELDS{$field}; - my $type = ( defined $meta->[1] ? $meta->[1] : undef ); +my $tix1 = RT::Tickets->new($RT::SystemUser); +$tix1->FromSQL('Requestor.EmailAddress LIKE "rqtest1" OR Requestor.EmailAddress LIKE "rqtest2"'); + +is ($tix1->Count, 3); + +my $tix2 = RT::Tickets->new($RT::SystemUser); +$tix2->FromSQL('Requestor.Name LIKE "TestOne" OR Requestor.Name LIKE "TestTwo"'); + +is ($tix2->Count, 3); - if ( $type ) { - $self->_SQLLimit(ALIAS => $groups, - FIELD => 'Type', - VALUE => $type, - ENTRYAGGREGATOR => 'AND'); - } - $self->_SQLJoin (ALIAS1 => $groups, FIELD1 => 'id', - ALIAS2 => $groupmembers, FIELD2 => 'GroupId'); +my $tix3 = RT::Tickets->new($RT::SystemUser); +$tix3->FromSQL('Requestor.EmailAddress LIKE "rqtest1"'); - $self->_SQLJoin( ALIAS1 => $groupmembers, FIELD1 => 'MemberId', - ALIAS2 => $users, FIELD2 => 'id'); +is ($tix3->Count, 2); - $self->_CloseParen; +my $tix4 = RT::Tickets->new($RT::SystemUser); +$tix4->FromSQL('Requestor.Name LIKE "TestOne" '); + +is ($tix4->Count, 2); + +# Searching for tickets that have two requestors isn't supported +# There's no way to differentiate "one requestor name that matches foo and bar" +# and "two requestors, one matching foo and one matching bar" + +# my $tix5 = RT::Tickets->new($RT::SystemUser); +# $tix5->FromSQL('Requestor.Name LIKE "TestOne" AND Requestor.Name LIKE "TestTwo"'); +# +# is ($tix5->Count, 1); +# +# my $tix6 = RT::Tickets->new($RT::SystemUser); +# $tix6->FromSQL('Requestor.EmailAddress LIKE "rqtest1" AND Requestor.EmailAddress LIKE "rqtest2"'); +# +# is ($tix6->Count, 1); + + +=end testing + +=cut + +sub _WatcherLimit { + my $self = shift; + my $field = shift; + my $op = shift; + my $value = shift; + my %rest = (@_); + + $self->_OpenParen; + + my $groups = $self->NewAlias('Groups'); + my $groupmembers = $self->NewAlias('CachedGroupMembers'); + my $users = $self->NewAlias('Users'); + + # If we're looking for multiple watchers of a given type, + # TicketSQL will be handing it to us as an array of cluases in + # $field + if ( ref $field ) { # gross hack + $self->_OpenParen; + for my $chunk (@$field) { + ( $field, $op, $value, %rest ) = @$chunk; + $self->_SQLLimit( + ALIAS => $users, + FIELD => $rest{SUBKEY} || 'EmailAddress', + VALUE => $value, + OPERATOR => $op, + CASESENSITIVE => 0, + %rest + ); + } + $self->_CloseParen; + } + else { + $self->_SQLLimit( + ALIAS => $users, + FIELD => $rest{SUBKEY} || 'EmailAddress', + VALUE => $value, + OPERATOR => $op, + CASESENSITIVE => 0, + %rest, + ); + } + + # {{{ Tie to groups for tickets we care about + $self->_SQLLimit( + ALIAS => $groups, + FIELD => 'Domain', + VALUE => 'RT::Ticket-Role', + ENTRYAGGREGATOR => 'AND' + ); + + $self->_SQLJoin( + ALIAS1 => $groups, + FIELD1 => 'Instance', + ALIAS2 => 'main', + FIELD2 => 'id' + ); + + # }}} + + # If we care about which sort of watcher + my $meta = $FIELDS{$field}; + my $type = ( defined $meta->[1] ? $meta->[1] : undef ); + + if ($type) { + $self->_SQLLimit( + ALIAS => $groups, + FIELD => 'Type', + VALUE => $type, + ENTRYAGGREGATOR => 'AND' + ); + } + + $self->_SQLJoin( + ALIAS1 => $groups, + FIELD1 => 'id', + ALIAS2 => $groupmembers, + FIELD2 => 'GroupId' + ); + + $self->_SQLJoin( + ALIAS1 => $groupmembers, + FIELD1 => 'MemberId', + ALIAS2 => $users, + FIELD2 => 'id' + ); + + $self->_CloseParen; } @@ -715,41 +822,35 @@ sub _CustomFieldLimit { my $field = $rest{SUBKEY} || die "No field specified"; # For our sanity, we can only limit on one queue at a time - my $queue = undef; - # Ugh. This will not do well for things with underscores in them + my $queue = 0; - use RT::CustomFields; - my $CF = RT::CustomFields->new( $self->CurrentUser ); - #$CF->Load( $cfid} ); - my $q; if ($field =~ /^(.+?)\.{(.+)}$/) { - my $q = RT::Queue->new($self->CurrentUser); - $q->Load($1); + $queue = $1; $field = $2; - $CF->LimitToQueue( $q->Id ); - $queue = $q->Id; - } else { + } $field = $1 if $field =~ /^{(.+)}$/; # trim { } - $CF->LimitToGlobal; - } - $CF->FindAllRows; - my $cfid = 0; + my $q = RT::Queue->new($self->CurrentUser); + $q->Load($queue) if ($queue); - # this is pretty inefficient for huge numbers of CFs... - while ( my $CustomField = $CF->Next ) { - if (lc $CustomField->Name eq lc $field) { - $cfid = $CustomField->Id; - last; + my $cf; + if ($q->id) { + $cf = $q->CustomField($field); } - } - die "No custom field named $field found\n" - unless $cfid; + else { + $cf = RT::CustomField->new($self->CurrentUser); + $cf->LoadByNameAndQueue(Queue => '0', Name => $field); + } + + + + + + my $cfid = $cf->id; + + die "No custom field named $field found\n" unless $cfid; -# use RT::CustomFields; -# my $CF = RT::CustomField->new( $self->CurrentUser ); -# $CF->Load( $cfid ); my $null_columns_ok; @@ -776,15 +877,16 @@ sub _CustomFieldLimit { QUOTEVALUE => 1, @rest ); - if ( $op =~ /^IS$/i - or ( $op eq '!=' ) ) { + + # If we're trying to find custom fields that don't match something, we want tickets + # where the custom field has no value at all + + if ( ($op =~ /^IS$/i) || ($op =~ /^NOT LIKE$/i) || ( $op eq '!=' ) ) { $null_columns_ok = 1; } + - #If we're trying to find tickets where the keyword isn't somethng, - #also check ones where it _IS_ null - - if ( $op eq '!=' ) { + if ( $null_columns_ok && $op !~ /IS/i && uc $value ne "NULL") { $self->_SQLLimit( ALIAS => $TicketCFs, FIELD => 'Content', OPERATOR => 'IS', @@ -1387,7 +1489,7 @@ sub LimitRequestor { =head2 LimitLinkedTo LimitLinkedTo takes a paramhash with two fields: TYPE and TARGET -TYPE limits the sort of relationship we want to search on +TYPE limits the sort of link we want to search on TYPE = { RefersTo, MemberOf, DependsOn } @@ -1423,7 +1525,7 @@ sub LimitLinkedTo { =head2 LimitLinkedFrom LimitLinkedFrom takes a paramhash with two fields: TYPE and BASE -TYPE limits the sort of relationship we want to search on +TYPE limits the sort of link we want to search on BASE is the id or URI of the BASE of the link @@ -1675,7 +1777,6 @@ sub LimitCustomField { QUOTEVALUE => 1, @_ ); - use RT::CustomFields; my $CF = RT::CustomField->new( $self->CurrentUser ); if ( $args{CUSTOMFIELD} =~ /^\d+$/) { $CF->Load( $args{CUSTOMFIELD} ); @@ -1801,6 +1902,7 @@ sub ItemsArrayRef { push ( @{ $self->{'items_array'} }, $item ); } $self->GotoItem($placeholder); + $self->{'items_array'} = $self->ItemsOrderBy($self->{'items_array'}); } return ( $self->{'items_array'} ); } @@ -2088,15 +2190,15 @@ sub _BuildItemMap { delete $self->{'item_map'}; if ($items->[0]) { - $self->{'item_map'}->{'first'} = $items->[0]->EffectiveId; - while (my $item = shift @$items ) { - my $id = $item->EffectiveId; - $self->{'item_map'}->{$id}->{'defined'} = 1; - $self->{'item_map'}->{$id}->{prev} = $prev; - $self->{'item_map'}->{$id}->{next} = $items->[0]->EffectiveId if ($items->[0]); - $prev = $id; - } - $self->{'item_map'}->{'last'} = $prev; + $self->{'item_map'}->{'first'} = $items->[0]->EffectiveId; + while (my $item = shift @$items ) { + my $id = $item->EffectiveId; + $self->{'item_map'}->{$id}->{'defined'} = 1; + $self->{'item_map'}->{$id}->{prev} = $prev; + $self->{'item_map'}->{$id}->{next} = $items->[0]->EffectiveId if ($items->[0]); + $prev = $id; + } + $self->{'item_map'}->{'last'} = $prev; } } @@ -2107,14 +2209,14 @@ Returns an a map of all items found by this search. The map is of the form $ItemMap->{'first'} = first ticketid found $ItemMap->{'last'} = last ticketid found -$ItemMap->{$id}->{prev} = the tikcet id found before $id -$ItemMap->{$id}->{next} = the tikcet id found after $id +$ItemMap->{$id}->{prev} = the ticket id found before $id +$ItemMap->{$id}->{next} = the ticket id found after $id =cut sub ItemMap { my $self = shift; - $self->_BuildItemMap() unless ($self->{'item_map'}); + $self->_BuildItemMap() unless ($self->{'items_array'} and $self->{'item_map'}); return ($self->{'item_map'}); } diff --git a/rt/lib/RT/Tickets_Overlay_SQL.pm b/rt/lib/RT/Tickets_Overlay_SQL.pm index 4ba19e606..a873af2d0 100644 --- a/rt/lib/RT/Tickets_Overlay_SQL.pm +++ b/rt/lib/RT/Tickets_Overlay_SQL.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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; use warnings; @@ -61,11 +83,19 @@ sub _InitSQL { } sub _SQLLimit { + my $self = shift; + my %args = (@_); + if ($args{'FIELD'} eq 'EffectiveId') { + $self->{'looking_at_effective_id'} = 1; + } + + if ($args{'FIELD'} eq 'Type') { + $self->{'looking_at_type'} = 1; + } + # All SQL stuff goes into one SB subclause so we can deal with all # the aggregation - my $this = shift; - - $this->SUPER::Limit(@_, + $self->SUPER::Limit(%args, SUBCLAUSE => 'ticketsql'); } @@ -90,14 +120,6 @@ sub _CloseParen { =cut -sub _match { - # Case insensitive equality - my ($y,$x) = @_; - return 1 if $x =~ /^$y$/i; - # return 1 if ((lc $x) eq (lc $y)); # Why isnt this equiv? - return 0; -} - =head2 Robert's Simple SQL Parser Documentation In Progress @@ -198,11 +220,11 @@ sub _parser { my $current = 0; # Highest priority is last - $current = OP if _match($re_op,$val) ; - $current = VALUE if _match($re_value,$val); - $current = KEYWORD if _match($re_keyword,$val) && ($want & KEYWORD); - $current = AGGREG if _match($re_aggreg,$val); - $current = PAREN if _match($re_paren,$val); + $current = OP if $val =~ /^$re_op$/io; + $current = VALUE if $val =~ /^$re_value$/io; + $current = KEYWORD if $val =~ /^$re_keyword$/io && ($want & KEYWORD); + $current = AGGREG if $val =~ /^$re_aggreg$/io; + $current = PAREN if $val =~ /^$re_paren$/io; unless ($current && $want & $current) { @@ -442,7 +464,6 @@ ok (eq_array(\@ids, \@expectedids), "returned expected tickets"); sub FromSQL { my ($self,$query) = @_; - $self->CleanSlate; { # preserve first_row and show_rows across the CleanSlate local($self->{'first_row'}, $self->{'show_rows'}); diff --git a/rt/lib/RT/Transaction.pm b/rt/lib/RT/Transaction.pm index ca491a6c7..431d39adb 100755 --- a/rt/lib/RT/Transaction.pm +++ b/rt/lib/RT/Transaction.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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. # @@ -62,7 +84,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -73,7 +95,7 @@ Create takes a hash of values and creates a row in the database: varchar(40) 'Field'. varchar(255) 'OldValue'. varchar(255) 'NewValue'. - varchar(100) 'Data'. + varchar(255) 'Data'. =cut @@ -108,7 +130,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -117,14 +139,14 @@ Returns the current value of id. =cut -=item EffectiveTicket +=head2 EffectiveTicket Returns the current value of EffectiveTicket. (In the database, EffectiveTicket is stored as int(11).) -=item SetEffectiveTicket VALUE +=head2 SetEffectiveTicket VALUE Set EffectiveTicket to VALUE. @@ -135,14 +157,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Ticket +=head2 Ticket Returns the current value of Ticket. (In the database, Ticket is stored as int(11).) -=item SetTicket VALUE +=head2 SetTicket VALUE Set Ticket to VALUE. @@ -153,7 +175,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item TicketObj +=head2 TicketObj Returns the Ticket Object which has the id returned by Ticket @@ -167,14 +189,14 @@ sub TicketObj { return($Ticket); } -=item TimeTaken +=head2 TimeTaken Returns the current value of TimeTaken. (In the database, TimeTaken is stored as int(11).) -=item SetTimeTaken VALUE +=head2 SetTimeTaken VALUE Set TimeTaken to VALUE. @@ -185,14 +207,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Type +=head2 Type Returns the current value of Type. (In the database, Type is stored as varchar(20).) -=item SetType VALUE +=head2 SetType VALUE Set Type to VALUE. @@ -203,14 +225,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Field +=head2 Field Returns the current value of Field. (In the database, Field is stored as varchar(40).) -=item SetField VALUE +=head2 SetField VALUE Set Field to VALUE. @@ -221,14 +243,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item OldValue +=head2 OldValue Returns the current value of OldValue. (In the database, OldValue is stored as varchar(255).) -=item SetOldValue VALUE +=head2 SetOldValue VALUE Set OldValue to VALUE. @@ -239,14 +261,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item NewValue +=head2 NewValue Returns the current value of NewValue. (In the database, NewValue is stored as varchar(255).) -=item SetNewValue VALUE +=head2 SetNewValue VALUE Set NewValue to VALUE. @@ -257,25 +279,25 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Data +=head2 Data Returns the current value of Data. -(In the database, Data is stored as varchar(100).) +(In the database, Data is stored as varchar(255).) -=item SetData VALUE +=head2 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(100).) +(In the database, Data will be stored as a varchar(255).) =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -284,7 +306,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -294,7 +316,7 @@ Returns the current value of Created. -sub _ClassAccessible { +sub _CoreAccessible { { id => @@ -314,7 +336,7 @@ sub _ClassAccessible { NewValue => {read => 1, write => 1, type => 'varchar(255)', default => ''}, Data => - {read => 1, write => 1, type => 'varchar(100)', default => ''}, + {read => 1, write => 1, type => 'varchar(255)', default => ''}, Creator => {read => 1, auto => 1, type => 'int(11)', default => '0'}, Created => diff --git a/rt/lib/RT/Transaction_Overlay.pm b/rt/lib/RT/Transaction_Overlay.pm index 2e9d737b6..17e47cb3a 100644 --- a/rt/lib/RT/Transaction_Overlay.pm +++ b/rt/lib/RT/Transaction_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK =head1 NAME RT::Transaction - RT\'s transaction object @@ -54,6 +76,7 @@ no warnings qw(redefine); use vars qw( %_BriefDescriptions ); use RT::Attachments; +use RT::Scrips; # {{{ sub Create @@ -82,6 +105,7 @@ sub Create { NewValue => undef, MIMEObj => undef, ActivateScrips => 1, + CommitScrips => 1, @_ ); @@ -109,18 +133,26 @@ sub Create { my $id = $self->SUPER::Create(%params); $self->Load($id); - $self->_Attach( $args{'MIMEObj'} ) - if defined $args{'MIMEObj'}; + $self->_Attach( $args{'MIMEObj'} ) if defined $args{'MIMEObj'}; + #Provide a way to turn off scrips if we need to + $RT::Logger->debug('About to think about scrips for transaction' .$self->Id); if ( $args{'ActivateScrips'} ) { - require RT::Scrips; - RT::Scrips->new($RT::SystemUser)->Apply( + $self->{'scrips'} = RT::Scrips->new($RT::SystemUser); + + $RT::Logger->debug('About to prepare scrips for transaction' .$self->Id); + + $self->{'scrips'}->Prepare( Stage => 'TransactionCreate', Type => $args{'Type'}, Ticket => $args{'Ticket'}, Transaction => $self->id, ); + if ($args{'CommitScrips'} ) { + $RT::Logger->debug('About to commit scrips for transaction' .$self->Id); + $self->{'scrips'}->Commit(); + } } return ( $id, $self->loc("Transaction Created") ); @@ -128,6 +160,22 @@ sub Create { # }}} +=head2 Scrips + +Returns the Scrips object for this transaction. +This routine is only useful on a freshly created transaction object. +Scrips do not get persisted to the database with transactions. + + +=cut + + +sub Scrips { + my $self = shift; + return($self->{'scrips'}); +} + + # {{{ sub Delete sub Delete { @@ -221,10 +269,10 @@ sub Content { $content = $wrapper->wrap($content); } - $content =~ s/^/> /gm; $content = '[' . $self->CreatorObj->Name() . ' - ' - . $self->CreatedAsString() . "]:\n" . $content . "\n\n"; + . $self->CreatedAsString() . "]:\n\n" . $content . "\n\n"; + $content =~ s/^/> /gm; } @@ -409,8 +457,10 @@ sub Description { my $self = shift; #Check those ACLs - #If it's a comment, we need to be extra special careful - if ( $self->__Value('Type') eq 'Comment' ) { + #If it's a comment or a comment email record, + # we need to be extra special careful + + if ( $self->__Value('Type') =~ /^Comment/ ) { unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { return ( $self->loc("Permission Denied") ); } @@ -444,9 +494,9 @@ sub BriefDescription { my $self = shift; - #Check those ACLs - #If it's a comment, we need to be extra special careful - if ( $self->__Value('Type') eq 'Comment' ) { + #If it's a comment or a comment email record, + # we need to be extra special careful + if ( $self->__Value('Type') =~ /^Comment/ ) { unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { return ( $self->loc("Permission Denied") ); } @@ -492,6 +542,14 @@ sub BriefDescription { } %_BriefDescriptions = ( + CommentEmailRecord => sub { + my $self = shift; + return $self->loc("Outgoing email about a comment recorded"); + }, + EmailRecord => sub { + my $self = shift; + return $self->loc("Outgoing email recorded"); + }, Correspond => sub { my $self = shift; return $self->loc("Correspondence added"); @@ -752,6 +810,19 @@ sub _Value { return (undef); } } + elsif ( $self->__Value('Type') eq 'CommentEmailRecord' ) { + unless ( $self->CurrentUserHasRight('ShowTicketComments') + && $self->CurrentUserHasRight('ShowOutgoingEmail') ) { + return (undef); + } + + } + elsif ( $self->__Value('Type') eq 'EmailRecord' ) { + unless ( $self->CurrentUserHasRight('ShowOutgoingEmail')) { + return (undef); + } + + } #if they ain't got rights to see, don't let em else { diff --git a/rt/lib/RT/Transactions.pm b/rt/lib/RT/Transactions.pm index 23a475ac6..1e8a97bd0 100755 --- a/rt/lib/RT/Transactions.pm +++ b/rt/lib/RT/Transactions.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::Transaction item diff --git a/rt/lib/RT/Transactions_Overlay.pm b/rt/lib/RT/Transactions_Overlay.pm index 3a7d4c14f..62a072750 100644 --- a/rt/lib/RT/Transactions_Overlay.pm +++ b/rt/lib/RT/Transactions_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 =head1 NAME RT::Transactions - a collection of RT Transaction objects @@ -54,32 +76,40 @@ sub _Init { $self->{'primary_key'} = "id"; # By default, order by the date of the transaction, rather than ID. - $self->OrderBy( ALIAS => 'main', - FIELD => 'Created', - ORDER => 'ASC'); + $self->OrderByCols( { FIELD => 'Created', + ORDER => 'ASC' }, + { FIELD => 'id', + ORDER => 'ASC' } ); return ( $self->SUPER::_Init(@_)); } # }}} -=head2 example methods - - Queue RT::Queue or Queue Id - Ticket RT::Ticket or Ticket Id - - -LimitDate - -Type TRANSTYPE -Field STRING -OldValue OLDVAL -NewValue NEWVAL -Data DATA -TimeTaken -Actor USEROBJ/USERID -ContentMatches STRING +# {{{ sub Next +sub Next { + my $self = shift; + + my $Transaction = $self->SUPER::Next(); + if ((defined($Transaction)) and (ref($Transaction))) { + # If the user can see the transaction's type, then they can + # see the transaction and we should hand it back. + if ($Transaction->Type) { + return($Transaction); + } + + #If the user doesn't have the right to show this ticket + else { + return($self->Next()); + } + } + + #if there never was any ticket + else { + return(undef); + } +} +# }}} -=cut 1; diff --git a/rt/lib/RT/URI.pm b/rt/lib/RT/URI.pm index 337a356aa..b0470449c 100644 --- a/rt/lib/RT/URI.pm +++ b/rt/lib/RT/URI.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::URI;; use strict; @@ -104,12 +126,12 @@ sub FromURI { return undef unless ($uri); - my $scheme; - # Special case: integers passed in as URIs must be ticket ids - if ($uri =~ /^(\d+)$/) { - $scheme = "fsck.com-rt"; - } elsif ($uri =~ /^((?:\w|\.|-)+?):/) { - $scheme = $1; + my $scheme; + # Special case: integers passed in as URIs must be ticket ids + if ($uri =~ /^(\d+)$/) { + $scheme = "fsck.com-rt"; + } elsif ($uri =~ /^((?:\w|\.|-)+?):/) { + $scheme = $1; } else { $RT::Logger->warning("$self Could not determine a URI scheme for $uri"); diff --git a/rt/lib/RT/URI/base.pm b/rt/lib/RT/URI/base.pm index a599f3ad8..e50f640c7 100644 --- a/rt/lib/RT/URI/base.pm +++ b/rt/lib/RT/URI/base.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::URI::base; use strict; diff --git a/rt/lib/RT/URI/fsck_com_rt.pm b/rt/lib/RT/URI/fsck_com_rt.pm index 4035776ef..cfe77cdff 100644 --- a/rt/lib/RT/URI/fsck_com_rt.pm +++ b/rt/lib/RT/URI/fsck_com_rt.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} END BPS TAGGED BLOCK package RT::URI::fsck_com_rt; use RT::Ticket; @@ -34,9 +56,9 @@ use vars qw(@ISA); -=head2 LocalURIPrefix +=head2 LocalURIPrefix -Returns the prefix for a local ticket URI +Returns the prefix for a local URI. =begin testing @@ -53,7 +75,7 @@ ok (UNIVERSAL::isa($uri,RT::URI::fsck_com_rt), "It's an RT::URI::fsck_com_rt"); ok ($uri->isa('RT::URI::base'), "It's an RT::URI::base"); ok ($uri->isa('RT::Base'), "It's an RT::Base"); -is ($uri->LocalURIPrefix , 'fsck.com-rt://example.com/ticket/'); +is ($uri->LocalURIPrefix , 'fsck.com-rt://example.com'); =end testing @@ -63,99 +85,100 @@ is ($uri->LocalURIPrefix , 'fsck.com-rt://example.com/ticket/'); sub LocalURIPrefix { my $self = shift; - my $prefix = $self->Scheme. "://$RT::Organization/ticket/"; + + my $prefix = $self->Scheme. "://$RT::Organization"; + return ($prefix); } +=head2 ObjectType + +=cut + +sub ObjectType { + my $self = shift; + my $object = shift || $self->Object; + my $type = 'ticket'; + if (ref($object) && (ref($object) ne 'RT::Ticket')) { + $type = ref($object); + } + + return ($type); +} -=head2 URIForObject RT::Ticket -Returns the RT URI for a local RT::Ticket object +=head2 URIForObject RT::Record + +Returns the RT URI for a local RT::Record object =begin testing my $ticket = RT::Ticket->new($RT::SystemUser); $ticket->Load(1); my $uri = RT::URI::fsck_com_rt->new($ticket->CurrentUser); -is($uri->LocalURIPrefix . "1" , $uri->URIForObject($ticket)); +is($uri->LocalURIPrefix. "/ticket/1" , $uri->URIForObject($ticket)); =end testing =cut sub URIForObject { - my $self = shift; - my $obj = shift; - return ($self->LocalURIPrefix. $obj->Id); + return ($self->LocalURIPrefix."/".$self->ObjectType($obj)."/". $obj->Id); } -=head2 ParseObject $TicketObj - -When handed an RT::Ticekt object, figure out its URI +=head2 ParseURI URI +When handed an fsck.com-rt: URI, figures out things like whether its a local record and what its ID is =cut +sub ParseURI { + my $self = shift; + my $uri = shift; + + if ( $uri =~ /^(\d+)$/ ) { + my $ticket = RT::Ticket->new( $self->CurrentUser ); + $ticket->Load($uri); + $self->{'uri'} = $ticket->URI; + $self->{'object'} = $ticket; + return($ticket->id); + } + else { + $self->{'uri'} = $uri; + } -=head2 ParseURI URI + #If it's a local URI, load the ticket object and return its URI + if ( $self->IsLocal ) { -When handed an fsck.com-rt: URI, figures out things like whether its a local ticket -and what its ID is + my $local_uri_prefix = $self->LocalURIPrefix; + if ( $self->{'uri'} =~ /^$local_uri_prefix\/(.*?)\/(\d+)$/i ) { + my $type = $1; + my $id = $2; -=cut + if ( $type eq 'ticket' ) { $type = 'RT::Ticket' } + # We can instantiate any RT::Record subtype. but not anything else -sub ParseURI { - my $self = shift; - my $uri = shift; - - my $ticket; - - if ($uri =~ /^(\d+)$/) { - $ticket = RT::Ticket->new($self->CurrentUser); - $ticket->Load($uri); - $self->{'uri'} = $ticket->URI; - } - else { - $self->{'uri'} = $uri; - } - - - - #If it's a local URI, load the ticket object and return its URI - if ( $self->IsLocal) { - - my $local_uri_prefix = $self->LocalURIPrefix; - if ($self->{'uri'} =~ /^$local_uri_prefix(\d+)$/i) { - my $id = $1; - - - $ticket = RT::Ticket->new( $self->CurrentUser ); - $ticket->Load($id); - - #If we couldn't find a ticket, return undef. - unless ( defined $ticket->Id ) { - return undef; - } - } else { - return undef; - } - } - - $self->{'object'} = $ticket; - if ( UNIVERSAL::can( $ticket, 'Id' ) ) { - return ( $ticket->Id ); - } - else { - return undef; + if ( UNIVERSAL::isa( $type, 'RT::Record' ) ) { + my $record = $type->new( $self->CurrentUser ); + $record->Load($id); + + if ( $record->Id ) { + $self->{'object'} = $record; + return ( $record->Id ); + } + } + + } } + return undef; } =head2 IsLocal @@ -194,7 +217,7 @@ sub Object { =head2 Scheme -Return the URI scheme for RT tickets +Return the URI scheme for RT records =cut @@ -214,7 +237,7 @@ Otherwise, return its URI sub HREF { my $self = shift; - if ($self->IsLocal && $self->Object) { + if ($self->IsLocal && $self->Object && ($self->ObjectType eq 'ticket')) { return ( $RT::WebURL . "Ticket/Display.html?id=".$self->Object->Id); } else { @@ -231,7 +254,7 @@ Returns either a localized string 'ticket #23' or the full URI if the object is sub AsString { my $self = shift; if ($self->IsLocal && $self->Object) { - return $self->loc("ticket #[_1]", $self->Object->Id); + return $self->loc("[_1] #[_2]", $self->ObjectType, $self->Object->Id); } else { return $self->URI; diff --git a/rt/lib/RT/User.pm b/rt/lib/RT/User.pm index cbc10f5b4..10e7e84d5 100755 --- a/rt/lib/RT/User.pm +++ b/rt/lib/RT/User.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -61,7 +83,7 @@ sub _Init { -=item Create PARAMHASH +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: @@ -170,7 +192,7 @@ sub Create { -=item id +=head2 id Returns the current value of id. (In the database, id is stored as int(11).) @@ -179,14 +201,14 @@ Returns the current value of id. =cut -=item Name +=head2 Name Returns the current value of Name. (In the database, Name is stored as varchar(200).) -=item SetName VALUE +=head2 SetName VALUE Set Name to VALUE. @@ -197,14 +219,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Password +=head2 Password Returns the current value of Password. (In the database, Password is stored as varchar(40).) -=item SetPassword VALUE +=head2 SetPassword VALUE Set Password to VALUE. @@ -215,14 +237,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Comments +=head2 Comments Returns the current value of Comments. (In the database, Comments is stored as blob.) -=item SetComments VALUE +=head2 SetComments VALUE Set Comments to VALUE. @@ -233,14 +255,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Signature +=head2 Signature Returns the current value of Signature. (In the database, Signature is stored as blob.) -=item SetSignature VALUE +=head2 SetSignature VALUE Set Signature to VALUE. @@ -251,14 +273,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item EmailAddress +=head2 EmailAddress Returns the current value of EmailAddress. (In the database, EmailAddress is stored as varchar(120).) -=item SetEmailAddress VALUE +=head2 SetEmailAddress VALUE Set EmailAddress to VALUE. @@ -269,14 +291,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item FreeformContactInfo +=head2 FreeformContactInfo Returns the current value of FreeformContactInfo. (In the database, FreeformContactInfo is stored as blob.) -=item SetFreeformContactInfo VALUE +=head2 SetFreeformContactInfo VALUE Set FreeformContactInfo to VALUE. @@ -287,14 +309,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Organization +=head2 Organization Returns the current value of Organization. (In the database, Organization is stored as varchar(200).) -=item SetOrganization VALUE +=head2 SetOrganization VALUE Set Organization to VALUE. @@ -305,14 +327,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item RealName +=head2 RealName Returns the current value of RealName. (In the database, RealName is stored as varchar(120).) -=item SetRealName VALUE +=head2 SetRealName VALUE Set RealName to VALUE. @@ -323,14 +345,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item NickName +=head2 NickName Returns the current value of NickName. (In the database, NickName is stored as varchar(16).) -=item SetNickName VALUE +=head2 SetNickName VALUE Set NickName to VALUE. @@ -341,14 +363,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Lang +=head2 Lang Returns the current value of Lang. (In the database, Lang is stored as varchar(16).) -=item SetLang VALUE +=head2 SetLang VALUE Set Lang to VALUE. @@ -359,14 +381,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item EmailEncoding +=head2 EmailEncoding Returns the current value of EmailEncoding. (In the database, EmailEncoding is stored as varchar(16).) -=item SetEmailEncoding VALUE +=head2 SetEmailEncoding VALUE Set EmailEncoding to VALUE. @@ -377,14 +399,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item WebEncoding +=head2 WebEncoding Returns the current value of WebEncoding. (In the database, WebEncoding is stored as varchar(16).) -=item SetWebEncoding VALUE +=head2 SetWebEncoding VALUE Set WebEncoding to VALUE. @@ -395,14 +417,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ExternalContactInfoId +=head2 ExternalContactInfoId Returns the current value of ExternalContactInfoId. (In the database, ExternalContactInfoId is stored as varchar(100).) -=item SetExternalContactInfoId VALUE +=head2 SetExternalContactInfoId VALUE Set ExternalContactInfoId to VALUE. @@ -413,14 +435,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ContactInfoSystem +=head2 ContactInfoSystem Returns the current value of ContactInfoSystem. (In the database, ContactInfoSystem is stored as varchar(30).) -=item SetContactInfoSystem VALUE +=head2 SetContactInfoSystem VALUE Set ContactInfoSystem to VALUE. @@ -431,14 +453,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item ExternalAuthId +=head2 ExternalAuthId Returns the current value of ExternalAuthId. (In the database, ExternalAuthId is stored as varchar(100).) -=item SetExternalAuthId VALUE +=head2 SetExternalAuthId VALUE Set ExternalAuthId to VALUE. @@ -449,14 +471,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item AuthSystem +=head2 AuthSystem Returns the current value of AuthSystem. (In the database, AuthSystem is stored as varchar(30).) -=item SetAuthSystem VALUE +=head2 SetAuthSystem VALUE Set AuthSystem to VALUE. @@ -467,14 +489,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Gecos +=head2 Gecos Returns the current value of Gecos. (In the database, Gecos is stored as varchar(16).) -=item SetGecos VALUE +=head2 SetGecos VALUE Set Gecos to VALUE. @@ -485,14 +507,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item HomePhone +=head2 HomePhone Returns the current value of HomePhone. (In the database, HomePhone is stored as varchar(30).) -=item SetHomePhone VALUE +=head2 SetHomePhone VALUE Set HomePhone to VALUE. @@ -503,14 +525,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item WorkPhone +=head2 WorkPhone Returns the current value of WorkPhone. (In the database, WorkPhone is stored as varchar(30).) -=item SetWorkPhone VALUE +=head2 SetWorkPhone VALUE Set WorkPhone to VALUE. @@ -521,14 +543,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item MobilePhone +=head2 MobilePhone Returns the current value of MobilePhone. (In the database, MobilePhone is stored as varchar(30).) -=item SetMobilePhone VALUE +=head2 SetMobilePhone VALUE Set MobilePhone to VALUE. @@ -539,14 +561,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item PagerPhone +=head2 PagerPhone Returns the current value of PagerPhone. (In the database, PagerPhone is stored as varchar(30).) -=item SetPagerPhone VALUE +=head2 SetPagerPhone VALUE Set PagerPhone to VALUE. @@ -557,14 +579,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Address1 +=head2 Address1 Returns the current value of Address1. (In the database, Address1 is stored as varchar(200).) -=item SetAddress1 VALUE +=head2 SetAddress1 VALUE Set Address1 to VALUE. @@ -575,14 +597,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Address2 +=head2 Address2 Returns the current value of Address2. (In the database, Address2 is stored as varchar(200).) -=item SetAddress2 VALUE +=head2 SetAddress2 VALUE Set Address2 to VALUE. @@ -593,14 +615,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item City +=head2 City Returns the current value of City. (In the database, City is stored as varchar(100).) -=item SetCity VALUE +=head2 SetCity VALUE Set City to VALUE. @@ -611,14 +633,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item State +=head2 State Returns the current value of State. (In the database, State is stored as varchar(100).) -=item SetState VALUE +=head2 SetState VALUE Set State to VALUE. @@ -629,14 +651,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Zip +=head2 Zip Returns the current value of Zip. (In the database, Zip is stored as varchar(16).) -=item SetZip VALUE +=head2 SetZip VALUE Set Zip to VALUE. @@ -647,14 +669,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Country +=head2 Country Returns the current value of Country. (In the database, Country is stored as varchar(50).) -=item SetCountry VALUE +=head2 SetCountry VALUE Set Country to VALUE. @@ -665,14 +687,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Timezone +=head2 Timezone Returns the current value of Timezone. (In the database, Timezone is stored as varchar(50).) -=item SetTimezone VALUE +=head2 SetTimezone VALUE Set Timezone to VALUE. @@ -683,14 +705,14 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item PGPKey +=head2 PGPKey Returns the current value of PGPKey. (In the database, PGPKey is stored as text.) -=item SetPGPKey VALUE +=head2 SetPGPKey VALUE Set PGPKey to VALUE. @@ -701,7 +723,7 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=item Creator +=head2 Creator Returns the current value of Creator. (In the database, Creator is stored as int(11).) @@ -710,7 +732,7 @@ Returns the current value of Creator. =cut -=item Created +=head2 Created Returns the current value of Created. (In the database, Created is stored as datetime.) @@ -719,7 +741,7 @@ Returns the current value of Created. =cut -=item LastUpdatedBy +=head2 LastUpdatedBy Returns the current value of LastUpdatedBy. (In the database, LastUpdatedBy is stored as int(11).) @@ -728,7 +750,7 @@ Returns the current value of LastUpdatedBy. =cut -=item LastUpdated +=head2 LastUpdated Returns the current value of LastUpdated. (In the database, LastUpdated is stored as datetime.) @@ -738,7 +760,7 @@ Returns the current value of LastUpdated. -sub _ClassAccessible { +sub _CoreAccessible { { id => diff --git a/rt/lib/RT/User_Overlay.pm b/rt/lib/RT/User_Overlay.pm index c2fe65192..c4ef340c9 100644 --- a/rt/lib/RT/User_Overlay.pm +++ b/rt/lib/RT/User_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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.) # -# END LICENSE BLOCK +# 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 =head1 NAME RT::User - RT User object @@ -59,80 +81,28 @@ use RT::EmailParser; # {{{ sub _Accessible -sub _ClassAccessible { +sub _OverlayAccessible { { - - id => - {read => 1, type => 'int(11)', default => ''}, - Name => - {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(120)', default => ''}, - Password => - { write => 1, type => 'varchar(40)', default => ''}, - Comments => - {read => 1, write => 1, admin => 1, type => 'blob', default => ''}, - Signature => - {read => 1, write => 1, type => 'blob', default => ''}, - EmailAddress => - {read => 1, write => 1, public => 1, type => 'varchar(120)', default => ''}, - FreeformContactInfo => - {read => 1, write => 1, type => 'blob', default => ''}, - Organization => - {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(200)', default => ''}, - RealName => - {read => 1, write => 1, public => 1, type => 'varchar(120)', default => ''}, - NickName => - {read => 1, write => 1, public => 1, type => 'varchar(16)', default => ''}, - Lang => - {read => 1, write => 1, public => 1, type => 'varchar(16)', default => ''}, - EmailEncoding => - {read => 1, write => 1, public => 1, type => 'varchar(16)', default => ''}, - WebEncoding => - {read => 1, write => 1, public => 1, type => 'varchar(16)', default => ''}, - ExternalContactInfoId => - {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(100)', default => ''}, - ContactInfoSystem => - {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(30)', default => ''}, - ExternalAuthId => - {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(100)', default => ''}, - AuthSystem => - {read => 1, write => 1, public => 1, admin => 1,type => 'varchar(30)', default => ''}, - Gecos => - {read => 1, write => 1, public => 1, admin => 1, type => 'varchar(16)', default => ''}, - - PGPKey => { - {read => 1, write => 1, public => 1, admin => 1, type => 'text', default => ''}, - }, - HomePhone => - {read => 1, write => 1, type => 'varchar(30)', default => ''}, - WorkPhone => - {read => 1, write => 1, type => 'varchar(30)', default => ''}, - MobilePhone => - {read => 1, write => 1, type => 'varchar(30)', default => ''}, - PagerPhone => - {read => 1, write => 1, type => 'varchar(30)', default => ''}, - Address1 => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, - Address2 => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, - City => - {read => 1, write => 1, type => 'varchar(100)', default => ''}, - State => - {read => 1, write => 1, type => 'varchar(100)', default => ''}, - Zip => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, - Country => - {read => 1, write => 1, type => 'varchar(50)', default => ''}, - Creator => - {read => 1, auto => 1, type => 'int(11)', default => ''}, - Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, - LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => ''}, - LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, - - } -}; + + Name => { public => 1, admin => 1 }, + Password => { read => 0 }, + EmailAddress => { public => 1 }, + Organization => { public => 1, admin => 1 }, + RealName => { public => 1 }, + NickName => { public => 1 }, + Lang => { public => 1 }, + EmailEncoding => { public => 1 }, + WebEncoding => { public => 1 }, + ExternalContactInfoId => { public => 1, admin => 1 }, + ContactInfoSystem => { public => 1, admin => 1 }, + ExternalAuthId => { public => 1, admin => 1 }, + AuthSystem => { public => 1, admin => 1 }, + Gecos => { public => 1, admin => 1 }, + PGPKey => { public => 1, admin => 1 }, + + } +} + # }}} @@ -209,7 +179,13 @@ sub Create { return ( 0, $self->loc('No permission to create users') ); } + + unless ($self->CanonicalizeUserInfo(\%args)) { + return ( 0, $self->loc("Could not set user info") ); + } + $args{'EmailAddress'} = $self->CanonicalizeEmailAddress($args{'EmailAddress'}); + # if the user doesn't have a name defined, set it to the email address $args{'Name'} = $args{'EmailAddress'} unless ($args{'Name'}); @@ -694,6 +670,32 @@ sub CanonicalizeEmailAddress { } +# }}} + +# {{{ sub CanonicalizeUserInfo + + + +=item CanonicalizeUserInfo HASH of ARGS + +# CanonicalizeUserInfo can convert all User->Create options. +# it takes a hashref of all the params sent to User->Create and +# returns that same hash, by default nothing is done. + +# This function is intended to allow users to have their info looked up via +# an outside source and modified upon creation. + +=cut + +sub CanonicalizeUserInfo { + my $self = shift; + my $args = shift; + my $success = 1; + + return ($success); +} + + # }}} @@ -781,7 +783,7 @@ sub ResetPassword { Argument => $pass ); - $notification->SetTo( $self->EmailAddress ); + $notification->SetHeader( 'To', $self->EmailAddress ); my ($ret); $ret = $notification->Prepare(); diff --git a/rt/lib/RT/Users.pm b/rt/lib/RT/Users.pm index d58f69653..95aec3b22 100755 --- a/rt/lib/RT/Users.pm +++ b/rt/lib/RT/Users.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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 LICENSE BLOCK +# }}} 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. # @@ -64,7 +86,7 @@ sub _Init { } -=item NewItem +=head2 NewItem Returns an empty new RT::User item diff --git a/rt/lib/RT/Users_Overlay.pm b/rt/lib/RT/Users_Overlay.pm index 430e6d720..49e4a99a6 100644 --- a/rt/lib/RT/Users_Overlay.pm +++ b/rt/lib/RT/Users_Overlay.pm @@ -1,8 +1,14 @@ -# BEGIN LICENSE BLOCK +# {{{ BEGIN BPS TAGGED BLOCK # -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse@bestpractical.com> # -# (Except where explictly superceded by other copyright notices) +# (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 @@ -14,13 +20,29 @@ # 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. +# 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: # -# END LICENSE BLOCK +# (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 =head1 NAME RT::Users - Collection of RT::User objects @@ -67,10 +89,6 @@ sub _Init { ALIAS2 => $self->{'princalias'}, FIELD2 => 'id' ); - $self->Limit( ALIAS => $self->{'princalias'}, - FIELD => 'PrincipalType', - OPERATOR => '=', - VALUE => 'User' ); return (@result); } diff --git a/rt/lib/t/00smoke.t.in b/rt/lib/t/00smoke.t.in index 11f0a9c43..288dd4aae 100644 --- a/rt/lib/t/00smoke.t.in +++ b/rt/lib/t/00smoke.t.in @@ -8,7 +8,7 @@ ok(RT::LoadConfig); ok(RT::Init, "Basic initialization and DB connectivity"); use File::Find; -File::Find::find({wanted => \&wanted}, '.'); +File::Find::find({wanted => \&wanted}, 'lib/'); sub wanted { /^*\.pm\z/s && ok(require $_, "Requiring '$_'"); } diff --git a/rt/lib/t/02regression.t.in b/rt/lib/t/02regression.t.in index 7862ef407..c2e3277a9 100644 --- a/rt/lib/t/02regression.t.in +++ b/rt/lib/t/02regression.t.in @@ -44,3 +44,4 @@ sub wanted_regression { /^*\.t\z/s && require $_; } require "@RT_LIB_PATH@/t/03web.pl"; require "@RT_LIB_PATH@/t/04_send_email.pl"; +require "@RT_LIB_PATH@/t/05cronsupport.pl"; diff --git a/rt/lib/t/03web.pl.in b/rt/lib/t/03web.pl.in index 4fe2d3ef3..25c26e711 100644 --- a/rt/lib/t/03web.pl.in +++ b/rt/lib/t/03web.pl.in @@ -67,7 +67,83 @@ ok( $agent->{'content'} =~ qr{$string} , "Found the content"); # }}} +# {{{ Query Builder tests + +my $response = $agent->get($url."Search/Build.html"); +ok( $response->is_success, "Fetched " . $url."Search/Build.html" ); + +# Parsing TicketSQL +# +# Adding items + +# set the first value +ok($agent->form_name('BuildQuery')); +$agent->field("AttachmentField", "Subject"); +$agent->field("AttachmentOp", "LIKE"); +$agent->field("ValueOfAttachment", "aaa"); +$agent->submit(); + +# set the next value +ok($agent->form_name('BuildQuery')); +$agent->field("AttachmentField", "Subject"); +$agent->field("AttachmentOp", "LIKE"); +$agent->field("ValueOfAttachment", "bbb"); +$agent->submit(); + +ok($agent->form_name('BuildQuery')); + +# get the query +my $query = $agent->current_form->find_input("Query")->value; +# strip whitespace from ends +$query =~ s/^\s*//g; +$query =~ s/\s*$//g; + +# collapse other whitespace +$query =~ s/\s+/ /g; + +is ($query, "Subject LIKE 'aaa' AND Subject LIKE 'bbb'"); + +# - new items go one level down +# - add items at currently selected level +# - if nothing is selected, add at end, one level down +# +# move left +# - error if nothing selected +# - same item should be selected after move +# - can't move left if you're at the top level +# +# move right +# - error if nothing selected +# - same item should be selected after move +# - can always move right (no max depth...should there be?) +# +# move up +# - error if nothing selected +# - same item should be selected after move +# - can't move up if you're first in the list +# +# move down +# - error if nothing selected +# - same item should be selected after move +# - can't move down if you're last in the list +# +# toggle +# - error if nothing selected +# - change all aggregators in the grouping +# - don't change any others +# +# delete +# - error if nothing selected +# - delete currently selected item +# - delete all children of a grouping +# - if delete leaves a node with no children, delete that, too +# - what should be selected? +# +# Clear +# - clears entire query +# - clears it from the session, too +# }}} use File::Find; find ( \&wanted , 'html/'); @@ -83,7 +159,7 @@ sub test_get { $file =~ s#^html/##; ok ($agent->get("$url/$file", "GET $url/$file")); is ($agent->{'status'}, 200, "Loaded $file"); - ok( $agent->{'content'} =~ /Logout/i, "Found a logout link on $file "); +# ok( $agent->{'content'} =~ /Logout/i, "Found a logout link on $file "); ok( $agent->{'content'} !~ /Not logged in/i, "Still logged in for $file"); ok( $agent->{'content'} !~ /System error/i, "Didn't get a Mason compilation error on $file"); diff --git a/rt/lib/t/05cronsupport.pl.in b/rt/lib/t/05cronsupport.pl.in new file mode 100644 index 000000000..a6b3d7451 --- /dev/null +++ b/rt/lib/t/05cronsupport.pl.in @@ -0,0 +1,84 @@ +#!@PERL@ -w + +use strict; + +### Set up some testing data. Test the testing data because why not? + +# Create a user with rights, a queue, and some tickets. +my $user_obj = RT::User->new($RT::SystemUser); +my ($ret, $msg) = $user_obj->LoadOrCreateByEmail('tara@example.com'); +ok($ret, 'record test user creation'); +$user_obj->SetName('tara'); +$user_obj->PrincipalObj->GrantRight(Right => 'SuperUser'); +my $CurrentUser = RT::CurrentUser->new('tara'); + +# Create our template, which will be used for tests of RT::Action::Record*. + +my $template_content = 'RT-Send-Cc: tla@example.com +RT-Send-Bcc: jesse@example.com + +This is a content string with no content.'; + +my $template_obj = RT::Template->new($CurrentUser); +$template_obj->Create(Queue => '0', + Name => 'recordtest', + Description => 'testing Record actions', + Content => $template_content, + ); + +# Create a queue and some tickets. + +my $queue_obj = RT::Queue->new($CurrentUser); +($ret, $msg) = $queue_obj->Create(Name => 'recordtest', Description => 'queue for Action::Record testing'); +ok($ret, 'record test queue creation'); + +my $ticket1 = RT::Ticket->new($CurrentUser); +my ($id, $tobj, $msg2) = $ticket1->Create(Queue => $queue_obj, + Requestor => ['tara@example.com'], + Subject => 'bork bork bork', + Priority => 22, + ); +ok($id, 'record test ticket creation 1'); +my $ticket2 = RT::Ticket->new($CurrentUser); +($id, $tobj, $msg2) = $ticket2->Create(Queue => $queue_obj, + Requestor => ['root@localhost'], + Subject => 'hurdy gurdy' + ); +ok($id, 'record test ticket creation 2'); + + +### OK. Have data, will travel. + +# First test the search. + +ok(require RT::Search::FromSQL, "Search::FromSQL loaded"); +my $ticketsqlstr = "Requestor.EmailAddress = '" . $CurrentUser->EmailAddress . + "' AND Priority > '20'"; +my $search = RT::Search::FromSQL->new(Argument => $ticketsqlstr, TicketsObj => RT::Tickets->new($CurrentUser), + ); +is(ref($search), 'RT::Search::FromSQL', "search created"); +ok($search->Prepare(), "fromsql search run"); +my $counter = 0; +while(my $t = $search->TicketsObj->Next() ) { + is($t->Id(), $ticket1->Id(), "fromsql search results 1"); + $counter++; +} +is ($counter, 1, "fromsql search results 2"); + +# Right. Now test the actions. + +ok(require RT::Action::RecordComment); +ok(require RT::Action::RecordCorrespondence); + +my ($comment_act, $correspond_act); +ok($comment_act = RT::Action::RecordComment->new(TicketObj => $ticket1, TemplateObj => $template_obj, CurrentUser => $CurrentUser), "RecordComment created"); +ok($correspond_act = RT::Action::RecordCorrespondence->new(TicketObj => $ticket2, TemplateObj => $template_obj, CurrentUser => $CurrentUser), "RecordCorrespondence created"); +ok($comment_act->Prepare(), "Comment prepared"); +ok($correspond_act->Prepare(), "Correspond prepared"); +ok($comment_act->Commit(), "Comment committed"); +ok($correspond_act->Commit(), "Correspondence committed"); + +# Now test for loop suppression. +my ($trans, $desc, $transaction) = $ticket2->Comment(MIMEObj => $template_obj->MIMEObj); +my $bogus_action = RT::Action::RecordComment->new(TicketObj => $ticket1, TemplateObj => $template_obj, TransactionObj => $transaction, CurrentUser => $CurrentUser); +ok(!$bogus_action->Prepare(), "Comment aborted to prevent loop"); -- cgit v1.2.1 From 7c04e83390fd815fbf75a22118728b2eb6b4f7ad Mon Sep 17 00:00:00 2001 From: khoff <khoff> Date: Fri, 11 Mar 2005 01:34:31 +0000 Subject: Reorganized RT->Freeside integration to support Internal (single RT/Freeside database) and XMLRPC interfaces. All the UI stuff is handled the same either way. Integration type is changed by setting $RT::URI::freeside::IntegrationType to either 'Internal' or 'XMLRPC' in your RT_SiteConfig.pm. --- rt/lib/RT/URI/freeside.pm | 239 ++++++++++++++++++++----------------- rt/lib/RT/URI/freeside/Internal.pm | 121 +++++++++++++++++++ rt/lib/RT/URI/freeside/XMLRPC.pm | 128 ++++++++++++++++++++ 3 files changed, 381 insertions(+), 107 deletions(-) create mode 100644 rt/lib/RT/URI/freeside/Internal.pm create mode 100644 rt/lib/RT/URI/freeside/XMLRPC.pm (limited to 'rt/lib') diff --git a/rt/lib/RT/URI/freeside.pm b/rt/lib/RT/URI/freeside.pm index ebd24ad60..bd617f907 100644 --- a/rt/lib/RT/URI/freeside.pm +++ b/rt/lib/RT/URI/freeside.pm @@ -28,143 +28,170 @@ package RT::URI::freeside; use RT::URI::base; use strict; -use vars qw(@ISA); - +use vars qw(@ISA $IntegrationType); @ISA = qw/RT::URI::base/; =head1 NAME -RT::URI::base +RT::URI::freeside =head1 DESCRIPTION URI handler for freeside URIs. See http://www.sisd.com/freeside/ 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 undef; } + + +=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; } -sub FreesideURIPrefix { + +=item _FreesideURIPrefix + +Method that returns the URI prefix for freeside URIs. + +=cut + +sub _FreesideURIPrefix { my $self = shift; return($self->Scheme . '://freeside'); } -sub FreesideURILabel { +=item _FreesideURILabel + +Method that returns a short string describing the customer referenced +in the URI. + +=cut + +sub _FreesideURILabel { my $self = shift; - return(undef) unless (exists($self->{'fstable'}) and - exists($self->{'fspkey'})); + $RT::Logger->debug("Called _FreesideURILabel()"); + + return unless (exists($self->{'fstable'}) and + exists($self->{'fspkey'})); my $label; my ($table, $pkey) = ($self->{'fstable'}, $self->{'fspkey'}); - eval { - use FS::UID qw(dbh); - use FS::Record qw(qsearchs qsearch dbdef); - eval "use FS::$table;"; - use FS::cust_svc; - - my $dbdef = dbdef or die "No dbdef"; - my $pkeyfield = $dbdef->table($table)->primary_key - or die "No primary key for table $table"; - - my $rec = qsearchs($table, { $pkeyfield => $pkey }) - or die "Record with $pkeyfield == $pkey does not exist in table $table"; - - if ($table =~ /^svc_/) { - if ($rec->can('cust_svc')) { - my $cust_svc = $rec->cust_svc or die '$rec->cust_svc failed'; - my ($svc, $tag, $svcdb) = $cust_svc->label; - $label = "Freeside service ${svc}: ${tag}"; - } - } elsif ($table eq 'cust_main') { - #my ($last, $first, $company) = map { $rec->getfield($_) } - # qw(last first company); - #$label = "Freeside customer ${last}, ${first}"; - #$label .= ($company ne '') ? " with ${company}" : ''; - $label = "$pkey: ". $rec->name; - } else { - $label = "Freeside ${table}, ${pkeyfield} == ${pkey}"; - } + if ($table ne 'cust_main') { + warn "FS::${table} not currently supported"; + return; + } - #... other cases + my $rec = $self->_FreesideGetRecord(); - }; + if (ref($rec) eq 'HASH' and $table eq 'cust_main') { + my $name = $rec->{'last'} . ', ' . $rec->{'first'}; + $name = $rec->{'company'} . " ($name)" if $rec->{'company'}; + $label = "$pkey: $name"; + } else { + $label = "$pkey: $table"; + } if ($label and !$@) { return($label); } else { - return(undef); + return; } - } -sub FreesideURILabelLong { +=item _FreesideURILabel - my $self = shift; +Method that returns a longer string describing the customer referenced +in the URI. - return(undef) unless (exists($self->{'fstable'}) and - exists($self->{'fspkey'})); +=cut - my $label; - my ($table, $pkey) = ($self->{'fstable'}, $self->{'fspkey'}); +sub _FreesideURILabelLong { - eval { - use FS::UID qw(dbh); - use FS::Record qw(qsearchs qsearch dbdef); - eval "use FS::$table;"; - use FS::cust_svc; - - my $dbdef = dbdef or die "No dbdef"; - my $pkeyfield = $dbdef->table($table)->primary_key - or die "No primary key for table $table"; - - my $rec = qsearchs($table, { $pkeyfield => $pkey }) - or die "Record with $pkeyfield == $pkey does not exist in table $table"; - - if ($table =~ /^svc_/) { - #if ($rec->can('cust_svc')) { - # my $cust_svc = $rec->cust_svc or die '$rec->cust_svc failed'; - # my ($svc, $tag, $svcdb) = $cust_svc->label; - # $label = "Freeside service ${svc}: ${tag}"; - #} - $label = ''; - } elsif ($table eq 'cust_main') { - use FS::CGI qw(small_custview); - $label = small_custview( $rec, - scalar(FS::Conf->new->config('countrydefault')), - 1 #nobalance - ); - } else { - #$label = "Freeside ${table}, ${pkeyfield} == ${pkey}"; - $label = ''; - } + my $self = shift; - #... other cases + return $self->_FreesideURILabel(); - }; +} - if ($label and !$@) { - return($label); - } else { - warn $@; - return(undef); - } - +=back -} +=head1 Public methods + +=over 4 + +=cut sub ParseURI { my $self = shift; my $uri = shift; my ($table, $pkey); - my $uriprefix = $self->FreesideURIPrefix; + my $uriprefix = $self->_FreesideURIPrefix; if ($uri =~ /^$uriprefix\/(\w+)\/(\d+)$/) { $table = $1; $pkey = $2; @@ -177,22 +204,13 @@ sub ParseURI { $self->{'fstable'} = $table; $self->{'fspkey'} = $pkey; - my $p; - - eval { - use FS::UID qw(dbh); - use FS::CGI qw(popurl); - if (dbh) { - $p = popurl(3); - } + my $url = $self->FreesideURL(); - }; - - if ($@ or (!$p)) { - $self->{'href'} = $self->{'uri'}; + if ($url ne '') { + $self->{'href'} = "${url}/view/${table}.cgi?${pkey}"; } else { - $self->{'href'} = "${p}view/${table}.cgi?${pkey}"; + $self->{'href'} = $self->{'uri'}; } $self->{'uri'}; @@ -215,7 +233,7 @@ sub IsLocal { return undef; } -=head2 AsString +=item AsString Return a "pretty" string representing the URI object. @@ -229,14 +247,14 @@ This is meant to be used like this: sub AsString { my $self = shift; my $prettystring; - if ($prettystring = $self->FreesideURILabel) { + if ($prettystring = $self->_FreesideURILabel) { return $prettystring; } else { return $self->URI; } } -=head2 AsStringLong +=item AsStringLong Return a longer (HTML) string representing the URI object. @@ -245,16 +263,23 @@ Return a longer (HTML) string representing the URI object. sub AsStringLong { my $self = shift; my $prettystring; - if ($prettystring = $self->FreesideURILabelLong || $self->FreesideURILabel){ + if ($prettystring = $self->_FreesideURILabelLong || $self->_FreesideURILabel){ return $prettystring; } else { return $self->URI; } } -eval "require RT::URI::base_Vendor"; -die $@ if ($@ && $@ !~ qr{^Can't locate RT/URI/base_Vendor.pm}); -eval "require RT::URI::base_Local"; -die $@ if ($@ && $@ !~ qr{^Can't locate RT/URI/base_Local.pm}); +$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..cdadd1ed1 --- /dev/null +++ b/rt/lib/RT/URI/freeside/Internal.pm @@ -0,0 +1,121 @@ +# 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::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 }; + +} + +sub FreesideURL { + + return popurl(3); + +} + +sub FreesideVersion { + + return $FS::VERSION; + +} + +sub FreesideGetConfig { + + $conf = new FS::Conf unless ref($conf); + + return $conf->config(@_); + +} + +sub smart_search { #Subroutine + + return map { { $_->hash } } &FS::cust_main::smart_search(@_); + +} + +sub small_custview { + + return &FS::CGI::small_custview(@_); + +} + +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..618364c00 --- /dev/null +++ b/rt/lib/RT/URI/freeside/XMLRPC.pm @@ -0,0 +1,128 @@ +# 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($URL $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 FreesideURL { + + return $URL; + +} + +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('CGI.small_custview', @_); + +} + +1; -- cgit v1.2.1 From d069ae1df141abf4a4c2c258e8255b974e730a47 Mon Sep 17 00:00:00 2001 From: ivan <ivan> Date: Sat, 12 Mar 2005 16:07:29 +0000 Subject: popurl(3) won't give us a good freeside base url since RT calls it from multiple directory depths... have to specify explicity, like external integration --- rt/lib/RT/URI/freeside.pm | 4 ++-- rt/lib/RT/URI/freeside/Internal.pm | 6 ------ rt/lib/RT/URI/freeside/XMLRPC.pm | 8 +------- 3 files changed, 3 insertions(+), 15 deletions(-) (limited to 'rt/lib') diff --git a/rt/lib/RT/URI/freeside.pm b/rt/lib/RT/URI/freeside.pm index bd617f907..687f92322 100644 --- a/rt/lib/RT/URI/freeside.pm +++ b/rt/lib/RT/URI/freeside.pm @@ -28,7 +28,7 @@ package RT::URI::freeside; use RT::URI::base; use strict; -use vars qw(@ISA $IntegrationType); +use vars qw(@ISA $IntegrationType $URL); @ISA = qw/RT::URI::base/; @@ -62,7 +62,7 @@ Returns the URL for freeside's web interface. =cut -sub FreesideURL { return undef; } +sub FreesideURL { return $URL; } =item FreesideVersion diff --git a/rt/lib/RT/URI/freeside/Internal.pm b/rt/lib/RT/URI/freeside/Internal.pm index cdadd1ed1..18307792b 100644 --- a/rt/lib/RT/URI/freeside/Internal.pm +++ b/rt/lib/RT/URI/freeside/Internal.pm @@ -86,12 +86,6 @@ sub _FreesideGetRecord { } -sub FreesideURL { - - return popurl(3); - -} - sub FreesideVersion { return $FS::VERSION; diff --git a/rt/lib/RT/URI/freeside/XMLRPC.pm b/rt/lib/RT/URI/freeside/XMLRPC.pm index 618364c00..a8a731fcd 100644 --- a/rt/lib/RT/URI/freeside/XMLRPC.pm +++ b/rt/lib/RT/URI/freeside/XMLRPC.pm @@ -28,7 +28,7 @@ use strict; no warnings qw(redefine); -use vars qw($URL $XMLRPC_URL $_FS_VERSION); +use vars qw($XMLRPC_URL $_FS_VERSION); use Frontier::Client; @@ -95,12 +95,6 @@ sub FreesideGetConfig { } -sub FreesideURL { - - return $URL; - -} - sub FreesideVersion { return $_FS_VERSION if ($_FS_VERSION =~ /^\d+\.\d+\.\d+/); -- cgit v1.2.1 From 2baaa6d0fc821ee0a8f543fbe86e21fc6385a24b Mon Sep 17 00:00:00 2001 From: ivan <ivan> Date: Sat, 14 May 2005 19:57:30 +0000 Subject: fixup RT integration grr! --- rt/lib/RT/URI/freeside.pm | 2 +- rt/lib/RT/URI/freeside/Internal.pm | 28 +++++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 4 deletions(-) (limited to 'rt/lib') diff --git a/rt/lib/RT/URI/freeside.pm b/rt/lib/RT/URI/freeside.pm index 687f92322..ff1d38d21 100644 --- a/rt/lib/RT/URI/freeside.pm +++ b/rt/lib/RT/URI/freeside.pm @@ -163,7 +163,7 @@ sub _FreesideURILabel { } -=item _FreesideURILabel +=item _FreesideURILabelLong Method that returns a longer string describing the customer referenced in the URI. diff --git a/rt/lib/RT/URI/freeside/Internal.pm b/rt/lib/RT/URI/freeside/Internal.pm index 18307792b..4f5a73ee7 100644 --- a/rt/lib/RT/URI/freeside/Internal.pm +++ b/rt/lib/RT/URI/freeside/Internal.pm @@ -32,7 +32,7 @@ use vars qw($conf); use FS; use FS::UID qw(dbh); -use FS::CGI qw(popurl); +use FS::CGI qw(popurl small_custview); use FS::Conf; use FS::Record qw(qsearchs qsearch dbdef); use FS::cust_main; @@ -82,7 +82,7 @@ sub _FreesideGetRecord { return; } - return { $fsrec->hash }; + return { $fsrec->hash, '_object' => $fsrec }; } @@ -96,7 +96,7 @@ sub FreesideGetConfig { $conf = new FS::Conf unless ref($conf); - return $conf->config(@_); + return scalar($conf->config(@_)); } @@ -112,4 +112,26 @@ sub 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; -- cgit v1.2.1 From 2ffb2484b5ccc1400dfd5676d99d19f447c9130a Mon Sep 17 00:00:00 2001 From: ivan <ivan> Date: Thu, 22 Sep 2005 22:25:23 +0000 Subject: should fix problem with empty (dir-less) Conf showing up --- rt/lib/RT/URI/freeside/Internal.pm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'rt/lib') diff --git a/rt/lib/RT/URI/freeside/Internal.pm b/rt/lib/RT/URI/freeside/Internal.pm index 4f5a73ee7..9ca06306d 100644 --- a/rt/lib/RT/URI/freeside/Internal.pm +++ b/rt/lib/RT/URI/freeside/Internal.pm @@ -28,7 +28,7 @@ use strict; no warnings qw(redefine); -use vars qw($conf); +#use vars qw($conf); use FS; use FS::UID qw(dbh); @@ -94,7 +94,8 @@ sub FreesideVersion { sub FreesideGetConfig { - $conf = new FS::Conf unless ref($conf); + #$conf = new FS::Conf unless ref($conf); + my $conf = new FS::Conf; return scalar($conf->config(@_)); -- cgit v1.2.1 From d4d0590bef31071e8809ec046717444b95b3f30a Mon Sep 17 00:00:00 2001 From: ivan <ivan> Date: Sat, 15 Oct 2005 09:11:20 +0000 Subject: import rt 3.4.4 --- rt/lib/RT.pm.in | 84 +- rt/lib/RT/ACE.pm | 24 +- rt/lib/RT/ACE_Overlay.pm | 113 +- rt/lib/RT/ACL.pm | 8 +- rt/lib/RT/ACL_Overlay.pm | 71 +- rt/lib/RT/Action/AutoOpen.pm | 8 +- rt/lib/RT/Action/Autoreply.pm | 6 +- rt/lib/RT/Action/CreateTickets.pm | 29 +- rt/lib/RT/Action/EscalatePriority.pm | 7 +- rt/lib/RT/Action/Generic.pm | 58 +- rt/lib/RT/Action/Notify.pm | 12 +- rt/lib/RT/Action/NotifyAsComment.pm | 6 +- rt/lib/RT/Action/RecordComment.pm | 30 +- rt/lib/RT/Action/RecordCorrespondence.pm | 30 +- rt/lib/RT/Action/ResolveMembers.pm | 6 +- rt/lib/RT/Action/SendEmail.pm | 223 +- rt/lib/RT/Action/SetPriority.pm | 6 +- rt/lib/RT/Action/UserDefined.pm | 6 +- rt/lib/RT/Attachment.pm | 32 +- rt/lib/RT/Attachment_Overlay.pm | 91 +- rt/lib/RT/Attachments.pm | 8 +- rt/lib/RT/Attachments_Overlay.pm | 10 +- rt/lib/RT/Attribute.pm | 30 +- rt/lib/RT/Attribute_Overlay.pm | 8 +- rt/lib/RT/Attributes.pm | 8 +- rt/lib/RT/Attributes_Overlay.pm | 44 +- rt/lib/RT/Base.pm | 35 +- rt/lib/RT/CachedGroupMember.pm | 20 +- rt/lib/RT/CachedGroupMember_Overlay.pm | 57 +- rt/lib/RT/CachedGroupMembers.pm | 8 +- rt/lib/RT/CachedGroupMembers_Overlay.pm | 10 +- rt/lib/RT/Condition/AnyTransaction.pm | 6 +- rt/lib/RT/Condition/BeforeDue.pm | 6 +- rt/lib/RT/Condition/Generic.pm | 7 +- rt/lib/RT/Condition/Overdue.pm | 6 +- rt/lib/RT/Condition/OwnerChange.pm | 6 +- rt/lib/RT/Condition/PriorityChange.pm | 6 +- rt/lib/RT/Condition/PriorityExceeds.pm | 6 +- rt/lib/RT/Condition/QueueChange.pm | 6 +- rt/lib/RT/Condition/StatusChange.pm | 6 +- rt/lib/RT/Condition/UserDefined.pm | 6 +- rt/lib/RT/CurrentUser.pm | 60 +- rt/lib/RT/CustomField.pm | 125 +- rt/lib/RT/CustomFieldValue.pm | 26 +- rt/lib/RT/CustomFieldValue_Overlay.pm | 19 + rt/lib/RT/CustomFieldValues.pm | 21 +- rt/lib/RT/CustomFieldValues_Overlay.pm | 8 +- rt/lib/RT/CustomField_Overlay.pm | 716 ++- rt/lib/RT/CustomFields.pm | 21 +- rt/lib/RT/CustomFields_Overlay.pm | 136 +- rt/lib/RT/Date.pm | 10 +- rt/lib/RT/EmailParser.pm | 163 +- rt/lib/RT/Group.pm | 20 +- rt/lib/RT/GroupMember.pm | 14 +- rt/lib/RT/GroupMember_Overlay.pm | 34 +- rt/lib/RT/GroupMembers.pm | 8 +- rt/lib/RT/GroupMembers_Overlay.pm | 10 +- rt/lib/RT/Group_Overlay.pm | 136 +- rt/lib/RT/Groups.pm | 8 +- rt/lib/RT/Groups_Overlay.pm | 101 +- rt/lib/RT/Handle.pm | 17 +- rt/lib/RT/I18N.pm | 30 +- rt/lib/RT/I18N/cs.pm | 6 +- rt/lib/RT/I18N/cs.po | 2864 +++++---- rt/lib/RT/I18N/da.po | 2841 +++++---- rt/lib/RT/I18N/de.po | 4646 ++++++-------- rt/lib/RT/I18N/en.po | 44 +- rt/lib/RT/I18N/es.po | 2732 +++++---- rt/lib/RT/I18N/fi.po | 2926 ++++----- rt/lib/RT/I18N/fr.po | 4472 +++++--------- rt/lib/RT/I18N/he.po | 3744 ++++-------- rt/lib/RT/I18N/hu.po | 5532 ++++++----------- rt/lib/RT/I18N/i_default.pm | 6 +- rt/lib/RT/I18N/id.po | 5047 +++++++++++++++ rt/lib/RT/I18N/it.po | 4630 +++++++------- rt/lib/RT/I18N/ja.po | 3260 ++++------ rt/lib/RT/I18N/nl.po | 3316 +++++----- rt/lib/RT/I18N/no.po | 2764 ++++----- rt/lib/RT/I18N/pl.po | 6436 ++++++++++++++++++++ rt/lib/RT/I18N/pt_br.po | 2792 ++++----- rt/lib/RT/I18N/ru.po | 4557 +++++++------- rt/lib/RT/I18N/zh_cn.po | 2793 +++++---- rt/lib/RT/I18N/zh_tw.po | 2779 +++++---- rt/lib/RT/Interface/CLI.pm | 8 +- rt/lib/RT/Interface/Email.pm | 319 +- rt/lib/RT/Interface/Email/Auth/GnuPG.pm | 6 +- rt/lib/RT/Interface/Email/Auth/MailFrom.pm | 36 +- rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm | 27 +- rt/lib/RT/Interface/REST.pm | 8 +- rt/lib/RT/Interface/Web.pm | 466 +- rt/lib/RT/Interface/Web/Handler.pm | 81 +- rt/lib/RT/Interface/Web/QueryBuilder.pm | 56 + rt/lib/RT/Interface/Web/QueryBuilder/Tree.pm | 245 + rt/lib/RT/Interface/Web/Standalone.pm | 37 + rt/lib/RT/Link.pm | 28 +- rt/lib/RT/Link_Overlay.pm | 38 +- rt/lib/RT/Links.pm | 8 +- rt/lib/RT/Links_Overlay.pm | 10 +- rt/lib/RT/ObjectCustomField.pm | 293 + rt/lib/RT/ObjectCustomFieldValue.pm | 431 ++ rt/lib/RT/ObjectCustomFieldValue_Overlay.pm | 174 + rt/lib/RT/ObjectCustomFieldValues.pm | 148 + rt/lib/RT/ObjectCustomFieldValues_Overlay.pm | 153 + rt/lib/RT/ObjectCustomField_Overlay.pm | 101 + rt/lib/RT/ObjectCustomFields.pm | 148 + rt/lib/RT/ObjectCustomFields_Overlay.pm | 113 + rt/lib/RT/Principal.pm | 16 +- rt/lib/RT/Principal_Overlay.pm | 367 +- rt/lib/RT/Principals.pm | 8 +- rt/lib/RT/Principals_Overlay.pm | 10 +- rt/lib/RT/Queue.pm | 34 +- rt/lib/RT/Queue_Overlay.pm | 145 +- rt/lib/RT/Queues.pm | 8 +- rt/lib/RT/Queues_Overlay.pm | 10 +- rt/lib/RT/Record.pm | 644 +- rt/lib/RT/SavedSearch.pm | 327 + rt/lib/RT/SavedSearches.pm | 206 + rt/lib/RT/Scrip.pm | 40 +- rt/lib/RT/ScripAction.pm | 26 +- rt/lib/RT/ScripAction_Overlay.pm | 44 +- rt/lib/RT/ScripActions.pm | 8 +- rt/lib/RT/ScripActions_Overlay.pm | 10 +- rt/lib/RT/ScripCondition.pm | 28 +- rt/lib/RT/ScripCondition_Overlay.pm | 10 +- rt/lib/RT/ScripConditions.pm | 8 +- rt/lib/RT/ScripConditions_Overlay.pm | 10 +- rt/lib/RT/Scrip_Overlay.pm | 26 +- rt/lib/RT/Scrips.pm | 8 +- rt/lib/RT/Scrips_Overlay.pm | 33 +- rt/lib/RT/Search/ActiveTicketsInQueue.pm | 7 +- rt/lib/RT/Search/FromSQL.pm | 30 +- rt/lib/RT/Search/Generic.pm | 7 +- rt/lib/RT/SearchBuilder.pm | 136 +- rt/lib/RT/StyleGuide.pod | 41 + rt/lib/RT/System.pm | 16 +- rt/lib/RT/Template.pm | 32 +- rt/lib/RT/Template_Overlay.pm | 24 +- rt/lib/RT/Templates.pm | 8 +- rt/lib/RT/Templates_Overlay.pm | 10 +- rt/lib/RT/Ticket.pm | 58 +- rt/lib/RT/Ticket_Overlay.pm | 1025 ++-- rt/lib/RT/Tickets.pm | 8 +- rt/lib/RT/Tickets_Overlay.pm | 2127 ++++--- rt/lib/RT/Tickets_Overlay_SQL.pm | 97 +- rt/lib/RT/Transaction.pm | 154 +- rt/lib/RT/Transaction_Overlay.pm | 305 +- rt/lib/RT/Transactions.pm | 8 +- rt/lib/RT/Transactions_Overlay.pm | 76 +- rt/lib/RT/URI.pm | 6 +- rt/lib/RT/URI/base.pm | 6 +- rt/lib/RT/URI/fsck_com_rt.pm | 8 +- rt/lib/RT/URI/t.pm | 83 + rt/lib/RT/User.pm | 76 +- rt/lib/RT/User_Overlay.pm | 295 +- rt/lib/RT/Users.pm | 8 +- rt/lib/RT/Users_Overlay.pm | 211 +- rt/lib/t/00smoke.t | 3 +- rt/lib/t/create_data.pl | 136 + rt/lib/t/regression/01ticket_link_searching.t | 155 + rt/lib/t/regression/02basic_web.t | 150 + rt/lib/t/regression/03web_compiliation_errors.t | 66 + rt/lib/t/regression/04send_email.t | 511 ++ rt/lib/t/regression/05cronsupport.t | 91 + rt/lib/t/regression/06mailgateway.t | 504 ++ rt/lib/t/regression/07acl.t | 120 + rt/lib/t/regression/07rights.t | 110 + rt/lib/t/regression/08web_cf_access.t | 118 + rt/lib/t/regression/09record_cf_api.t | 188 + rt/lib/t/regression/10merge.t | 72 + rt/lib/t/regression/11-template-insert.t | 27 + rt/lib/t/regression/12-search.t | 235 + rt/lib/t/regression/13-attribute-tests.t | 67 + rt/lib/t/regression/14merge.t | 31 + .../t/regression/15cf_single_values_are_single.t | 39 + rt/lib/t/regression/16-transaction_cf_tests.t | 61 + rt/lib/t/regression/17multiple_deleg_revocation.t | 135 + rt/lib/t/regression/18stale_delegations_cleanup.t | 458 ++ rt/lib/t/regression/19-rtname.t | 38 + rt/lib/t/regression/20savedsearch.t | 180 + rt/lib/t/regression/21query-builder.t | 204 + rt/lib/t/regression/22search_tix_by_txn.t | 32 + rt/lib/t/setup_regression.t | 34 + 182 files changed, 50531 insertions(+), 34075 deletions(-) create mode 100644 rt/lib/RT/CustomFieldValue_Overlay.pm create mode 100644 rt/lib/RT/I18N/id.po create mode 100644 rt/lib/RT/I18N/pl.po create mode 100755 rt/lib/RT/Interface/Web/QueryBuilder.pm create mode 100755 rt/lib/RT/Interface/Web/QueryBuilder/Tree.pm create mode 100755 rt/lib/RT/Interface/Web/Standalone.pm create mode 100644 rt/lib/RT/ObjectCustomField.pm create mode 100644 rt/lib/RT/ObjectCustomFieldValue.pm create mode 100644 rt/lib/RT/ObjectCustomFieldValue_Overlay.pm create mode 100644 rt/lib/RT/ObjectCustomFieldValues.pm create mode 100644 rt/lib/RT/ObjectCustomFieldValues_Overlay.pm create mode 100644 rt/lib/RT/ObjectCustomField_Overlay.pm create mode 100644 rt/lib/RT/ObjectCustomFields.pm create mode 100644 rt/lib/RT/ObjectCustomFields_Overlay.pm create mode 100644 rt/lib/RT/SavedSearch.pm create mode 100644 rt/lib/RT/SavedSearches.pm create mode 100644 rt/lib/RT/URI/t.pm create mode 100644 rt/lib/t/create_data.pl create mode 100644 rt/lib/t/regression/01ticket_link_searching.t create mode 100644 rt/lib/t/regression/02basic_web.t create mode 100644 rt/lib/t/regression/03web_compiliation_errors.t create mode 100644 rt/lib/t/regression/04send_email.t create mode 100644 rt/lib/t/regression/05cronsupport.t create mode 100644 rt/lib/t/regression/06mailgateway.t create mode 100644 rt/lib/t/regression/07acl.t create mode 100644 rt/lib/t/regression/07rights.t create mode 100644 rt/lib/t/regression/08web_cf_access.t create mode 100644 rt/lib/t/regression/09record_cf_api.t create mode 100644 rt/lib/t/regression/10merge.t create mode 100644 rt/lib/t/regression/11-template-insert.t create mode 100644 rt/lib/t/regression/12-search.t create mode 100644 rt/lib/t/regression/13-attribute-tests.t create mode 100644 rt/lib/t/regression/14merge.t create mode 100644 rt/lib/t/regression/15cf_single_values_are_single.t create mode 100644 rt/lib/t/regression/16-transaction_cf_tests.t create mode 100644 rt/lib/t/regression/17multiple_deleg_revocation.t create mode 100644 rt/lib/t/regression/18stale_delegations_cleanup.t create mode 100644 rt/lib/t/regression/19-rtname.t create mode 100644 rt/lib/t/regression/20savedsearch.t create mode 100644 rt/lib/t/regression/21query-builder.t create mode 100644 rt/lib/t/regression/22search_tix_by_txn.t create mode 100644 rt/lib/t/setup_regression.t (limited to 'rt/lib') diff --git a/rt/lib/RT.pm.in b/rt/lib/RT.pm.in index db3725037..f7c882b61 100644 --- a/rt/lib/RT.pm.in +++ b/rt/lib/RT.pm.in @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT; use strict; use RT::I18N; @@ -59,6 +59,7 @@ use vars qw($VERSION $System $SystemUser $Nobody $Handle $Logger $LocalEtcPath $LocalLexiconPath $LogDir + $BinPath $MasonComponentRoot $MasonLocalComponentRoot $MasonDataDir @@ -74,6 +75,7 @@ $SITE_CONFIG_FILE = "@CONFIG_FILE_PATH@/RT_SiteConfig.pm"; $BasePath = '@RT_PATH@'; $EtcPath = '@RT_ETC_PATH@'; +$BinPath = '@RT_BIN_PATH@'; $VarPath = '@RT_VAR_PATH@'; $LocalPath = '@RT_LOCAL_PATH@'; $LocalEtcPath = '@LOCAL_ETC_PATH@'; @@ -100,21 +102,26 @@ $MasonSessionDir = '@MASON_SESSION_PATH@'; =head1 NAME - RT - Request Tracker +RT - Request Tracker =head1 SYNOPSIS - A fully featured request tracker package +A fully featured request tracker package =head1 DESCRIPTION +=head2 LoadConfig -=cut - -=item LoadConfig +Load RT's config file. First, the site configuration file +(C<RT_SiteConfig.pm>) is loaded, in order to establish overall site +settings like hostname and name of RT instance. Then, the core +configuration file (C<RT_Config.pm>) is loaded to set fallback values +for all settings; it bases some values on settings from the site +configuration file. -Load RT's config file. First, go after the core config file. -After that, go after the site config. +In order for the core configuration to not override the site's +settings, the function C<Set> is used; it only sets values if they +have not been set already. =cut @@ -129,10 +136,10 @@ sub LoadConfig { RT::I18N->Init; } -=item Init +=head2 Init + +Conenct to the database, set up logging. - Conenct to the database, set up logging. - =cut sub Init { @@ -150,7 +157,8 @@ sub Init { $System = RT::System->new(); - InitLogging(); + InitClasses(); + InitLogging(); } @@ -159,7 +167,7 @@ sub Init { Get a database connection =cut - + sub ConnectToDatabase { require RT::Handle; unless ($Handle && $Handle->dbh && $Handle->dbh->ping) { @@ -173,9 +181,10 @@ sub ConnectToDatabase { Create the RT::Logger object. =cut + sub InitLogging { - # We have to set the record seperator ($, man perlvar) + # We have to set the record separator ($, man perlvar) # or Log::Dispatch starts getting # really pissy, as some other module we use unsets it. @@ -204,6 +213,7 @@ sub InitLogging { die ("Log file $filename couldn't be written or created.\n RT can't run."); } + package Log::Dispatch::File; require Log::Dispatch::File; @@ -221,6 +231,7 @@ sub InitLogging { )); } if ($RT::LogToScreen) { + package Log::Dispatch::Screen; require Log::Dispatch::Screen; $RT::Logger->add(Log::Dispatch::Screen->new ( name => 'screen', @@ -234,6 +245,7 @@ sub InitLogging { )); } if ($RT::LogToSyslog) { + package Log::Dispatch::Syslog; require Log::Dispatch::Syslog; $RT::Logger->add(Log::Dispatch::Syslog->new ( name => 'syslog', @@ -266,7 +278,14 @@ sub InitLogging { ## Mason). It will log all problems through the standard logging ## mechanism (see above). -$SIG{__WARN__} = sub {$RT::Logger->warning($_[0])}; +$SIG{__WARN__} = sub { + my $w = shift; + $w =~ s/(?:\r*\n)+$//; + # The 'wide character' warnings has to be silenced for now, at least + # until HTML::Mason offers a sane way to process both raw output and + # unicode strings. + $RT::Logger->warning($w) if index($w, 'Wide character in ') != 0; +}; #When we call die, trap it and log->crit with the value of the die. @@ -286,6 +305,30 @@ $SIG{__DIE__} = sub { } +=head2 InitClasses + +Load all modules that define base classes + +=cut + +sub InitClasses { + require RT::Tickets; + require RT::Transactions; + require RT::Users; + require RT::CurrentUser; + require RT::Templates; + require RT::Queues; + require RT::ScripActions; + require RT::ScripConditions; + require RT::Scrips; + require RT::Groups; + require RT::GroupMembers; + require RT::CustomFields; + require RT::CustomFieldValues; + require RT::ObjectCustomFields; + require RT::ObjectCustomFieldValues; +} + # }}} @@ -297,9 +340,6 @@ sub Nobody { return ($Nobody); } - -=head1 SYNOPSIS - =head1 BUGS Please report them to rt-bugs@fsck.com, if you know what's broken and have at least @@ -312,17 +352,13 @@ If you're not sure what's going on, report them rt-devel@lists.bestpractical.com L<RT::StyleGuide> L<DBIx::SearchBuilder> - - =begin testing - ok ($RT::Nobody->Name() eq 'Nobody', "Nobody is nobody"); ok ($RT::Nobody->Name() ne 'root', "Nobody isn't named root"); ok ($RT::SystemUser->Name() eq 'RT_System', "The system user is RT_System"); ok ($RT::SystemUser->Name() ne 'noname', "The system user isn't noname"); - =end testing =cut diff --git a/rt/lib/RT/ACE.pm b/rt/lib/RT/ACE.pm index cbcd99fd0..9073b02b9 100755 --- a/rt/lib/RT/ACE.pm +++ b/rt/lib/RT/ACE.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -266,21 +266,21 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, PrincipalType => - {read => 1, write => 1, type => 'varchar(25)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 25, is_blob => 0, is_numeric => 0, type => 'varchar(25)', default => ''}, PrincipalId => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, RightName => - {read => 1, write => 1, type => 'varchar(25)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 25, is_blob => 0, is_numeric => 0, type => 'varchar(25)', default => ''}, ObjectType => - {read => 1, write => 1, type => 'varchar(25)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 25, is_blob => 0, is_numeric => 0, type => 'varchar(25)', default => ''}, ObjectId => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, DelegatedBy => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, DelegatedFrom => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, } }; @@ -312,7 +312,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/ACE_Overlay.pm b/rt/lib/RT/ACE_Overlay.pm index 00a7157d3..75e39d03a 100644 --- a/rt/lib/RT/ACE_Overlay.pm +++ b/rt/lib/RT/ACE_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 SYNOPSIS use RT::ACE; @@ -63,6 +64,9 @@ ok(require RT::ACE); =cut + +package RT::ACE; + use strict; no warnings qw(redefine); use RT::Principals; @@ -129,8 +133,8 @@ Load an ACE by specifying a paramhash with the following fields: OR - ObjectType => undef, - ObjectId => undef + ObjectType => undef, + ObjectId => undef =cut @@ -155,16 +159,9 @@ sub LoadByValues { ); } - my ($object_type, $object_id); - - if ($args{'Object'} && UNIVERSAL::can($args{'Object'},'id')) { - $object_type = ref($args{'Object'}); - $object_id = $args{'Object'}->id; - } elsif ($args{'ObjectId'} || $args{'ObjectType'}) { - $object_type = $args{'ObjectType'}; - $object_id = $args{'ObjectId'}; - } else { - return ( 0, $self->loc("System error. Right not granted.") ); + my ($object, $object_type, $object_id) = $self->_ParseObjectArg( %args ); + unless( $object ) { + return ( 0, $self->loc("System error. Right not granted.") ); } $self->LoadByCols( PrincipalId => $princ_obj->Id, @@ -208,6 +205,12 @@ PARAMS is a parameter hash with the following elements: ObjectType => the type of the object in question (ref ($object)) ObjectId => the id of the object in question $object->Id + + + Returns a tuple of (STATUS, MESSAGE); If the call succeeded, STATUS is true. Otherwise it's false. + + + =cut sub Create { @@ -215,8 +218,16 @@ sub Create { my %args = ( PrincipalId => undef, PrincipalType => undef, RightName => undef, - Object => $RT::System, + Object => undef, @_ ); + #if we haven't specified any sort of right, we're talking about a global right + if (!defined $args{'Object'} && !defined $args{'ObjectId'} && !defined $args{'ObjectType'}) { + $args{'Object'} = $RT::System; + } + ($args{'Object'}, $args{'ObjectType'}, $args{'ObjectId'}) = $self->_ParseObjectArg( %args ); + unless( $args{'Object'} ) { + return ( 0, $self->loc("System error. Right not granted.") ); + } # {{{ Validate the principal my $princ_obj; @@ -232,17 +243,6 @@ sub Create { # }}} - - if ($args{'Object'} && ($args{'ObjectId'} || $args{'ObjectType'})) { - use Carp; - $RT::Logger->crit(Carp::cluck("ACE::Create called with an ObjectType or an ObjectId")); - } - - - - unless ($args{'Object'} && UNIVERSAL::can($args{'Object'},'id')) { - return ( 0, $self->loc("System error. Right not granted.") ); - } # {{{ Check the ACL if (ref( $args{'Object'}) eq 'RT::Group' ) { @@ -292,17 +292,14 @@ sub Create { } } - unless ( $args{'RightName'} ) { - return ( 0, $self->loc('Invalid right') ); - } # }}} # Make sure the right doesn't already exist. $self->LoadByCols( PrincipalId => $princ_obj->id, PrincipalType => $args{'PrincipalType'}, RightName => $args{'RightName'}, - ObjectType => ref($args{'Object'}), - ObjectId => $args{'Object'}->id, + ObjectType => $args{'ObjectType'}, + ObjectId => $args{'ObjectId'}, DelegatedBy => 0, DelegatedFrom => 0 ); if ( $self->Id ) { @@ -318,7 +315,7 @@ sub Create { DelegatedFrom => 0 ); #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. - RT::Principal->_InvalidateACLCache(); + RT::Principal->InvalidateACLCache(); if ( $id > 0 ) { return ( $id, $self->loc('Right Granted') ); @@ -628,7 +625,7 @@ sub Delegate { #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. # TODO what about the groups key cache? - RT::Principal->_InvalidateACLCache(); + RT::Principal->InvalidateACLCache(); if ( $id > 0 ) { return ( $id, $self->loc('Right Delegated') ); @@ -691,7 +688,7 @@ sub _Delete { while ( my $delegated_ace = $delegated_from_this->Next ) { ( $delete_succeeded, $submsg ) = $delegated_ace->_Delete( InsideTransaction => 1 ); - last if ($delete_succeeded); + last unless ($delete_succeeded); } unless ($delete_succeeded) { @@ -701,18 +698,23 @@ sub _Delete { my ( $val, $msg ) = $self->SUPER::Delete(@_); - #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. - # TODO what about the groups key cache? - RT::Principal->_InvalidateACLCache(); + # If we're revoking delegation rights (see above), we may need to + # revoke all rights delegated by the recipient. + if ($val and ($self->RightName() eq 'DelegateRights' or + $self->RightName() eq 'SuperUser')) { + $val = $self->PrincipalObj->_CleanupInvalidDelegations( InsideTransaction => 1 ); + } if ($val) { + #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. + # TODO what about the groups key cache? + RT::Principal->InvalidateACLCache(); $RT::Handle->Commit() unless $InsideTransaction; return ( $val, $self->loc('Right revoked') ); } - else { - $RT::Handle->Rollback() unless $InsideTransaction; - return ( 0, $self->loc('Right could not be revoked') ); - } + + $RT::Handle->Rollback() unless $InsideTransaction; + return ( 0, $self->loc('Right could not be revoked') ); } # }}} @@ -925,5 +927,32 @@ sub _CanonicalizePrincipal { return ( $princ_obj, $princ_type ); } +sub _ParseObjectArg { + my $self = shift; + my %args = ( Object => undef, + ObjectId => undef, + ObjectType => undef, + @_ ); + + if( $args{'Object'} && ($args{'ObjectId'} || $args{'ObjectType'}) ) { + $RT::Logger->crit( "Method called with an ObjectType or an ObjectId and Object args" ); + return (); + } elsif( $args{'Object'} && !UNIVERSAL::can($args{'Object'},'id') ) { + $RT::Logger->crit( "Method called called Object that has no id method" ); + return (); + } elsif( $args{'Object'} ) { + my $obj = $args{'Object'}; + return ($obj, ref $obj, $obj->id); + } elsif ( $args{'ObjectType'} ) { + my $obj = $args{'ObjectType'}->new( $self->CurrentUser ); + $obj->Load( $args{'ObjectId'} ); + return ($obj, ref $obj, $obj->id); + } else { + $RT::Logger->crit( "Method called with wrong args" ); + return (); + } +} + + # }}} 1; diff --git a/rt/lib/RT/ACL.pm b/rt/lib/RT/ACL.pm index 8fd548e4f..aafc1d22c 100755 --- a/rt/lib/RT/ACL.pm +++ b/rt/lib/RT/ACL.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/ACL_Overlay.pm b/rt/lib/RT/ACL_Overlay.pm index 827d34cc5..c20bfd3be 100644 --- a/rt/lib/RT/ACL_Overlay.pm +++ b/rt/lib/RT/ACL_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::ACL - collection of RT ACE objects @@ -65,6 +66,9 @@ ok(require RT::ACL); =cut + +package RT::ACL; + use strict; no warnings qw(redefine); @@ -86,17 +90,68 @@ Limit the ACL to rights for the object $object. It needs to be an RT::Record cla sub LimitToObject { my $self = shift; - my $obj = shift; - unless (defined($obj) && ref($obj) && UNIVERSAL::can($obj, 'id')) { - return undef; + my $obj = shift; + unless ( defined($obj) + && ref($obj) + && UNIVERSAL::can( $obj, 'id' ) + && $obj->id ) + { + return undef; } - $self->Limit(FIELD => 'ObjectType', OPERATOR=> '=', VALUE => ref($obj), ENTRYAGGREGATOR => 'OR'); - $self->Limit(FIELD => 'ObjectId', OPERATOR=> '=', VALUE => $obj->id, ENTRYAGGREGATOR => 'OR', QUOTEVALUE => 0); + $self->Limit( + FIELD => 'ObjectType', + OPERATOR => '=', + VALUE => ref($obj), + ENTRYAGGREGATOR => 'OR' + ); + $self->Limit( + FIELD => 'ObjectId', + OPERATOR => '=', + VALUE => $obj->id, + ENTRYAGGREGATOR => 'OR', + QUOTEVALUE => 0 + ); } # }}} +# {{{ LimitNotObject + +=head2 LimitNotObject $object + +Limit the ACL to rights NOT on the object $object. $object needs to be +an RT::Record class. + +=cut + +sub LimitNotObject { + my $self = shift; + my $obj = shift; + unless ( defined($obj) + && ref($obj) + && UNIVERSAL::can( $obj, 'id' ) + && $obj->id ) + { + return undef; + } + $self->Limit( FIELD => 'ObjectType', + OPERATOR => '!=', + VALUE => ref($obj), + ENTRYAGGREGATOR => 'OR', + SUBCLAUSE => $obj->id + ); + $self->Limit( FIELD => 'ObjectId', + OPERATOR => '!=', + VALUE => $obj->id, + ENTRYAGGREGATOR => 'OR', + QUOTEVALUE => 0, + SUBCLAUSE => $obj->id + ); +} + +# }}} + # {{{ LimitToPrincipal =head2 LimitToPrincipal { Type => undef, Id => undef, IncludeGroupMembership => undef } diff --git a/rt/lib/RT/Action/AutoOpen.pm b/rt/lib/RT/Action/AutoOpen.pm index b28c50d3e..3423db93e 100644 --- a/rt/lib/RT/Action/AutoOpen.pm +++ b/rt/lib/RT/Action/AutoOpen.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} # This Action will open the BASE if a dependent is resolved. package RT::Action::AutoOpen; @@ -74,6 +74,8 @@ sub Prepare { if ( ( $self->TicketObj->Status eq 'open' ) || ( ( $self->TicketObj->Status eq 'new' ) && $self->TransactionObj->IsInbound ) + || ( defined $self->TransactionObj->Message->First + && $self->TransactionObj->Message->First->GetHeader('RT-Control') =~ /\bno-autoopen\b/i ) ) { return undef; diff --git a/rt/lib/RT/Action/Autoreply.pm b/rt/lib/RT/Action/Autoreply.pm index 6d2894f54..c1ac5f897 100755 --- a/rt/lib/RT/Action/Autoreply.pm +++ b/rt/lib/RT/Action/Autoreply.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Action::Autoreply; require RT::Action::SendEmail; diff --git a/rt/lib/RT/Action/CreateTickets.pm b/rt/lib/RT/Action/CreateTickets.pm index 68f402e4e..b708f2ea5 100644 --- a/rt/lib/RT/Action/CreateTickets.pm +++ b/rt/lib/RT/Action/CreateTickets.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Action::CreateTickets; require RT::Action::Generic; @@ -148,8 +148,8 @@ A convoluted example push (@admins, $admin->EmailAddress); } } - Queue: Approvals - Type: Approval + Queue: ___Approvals + Type: approval AdminCc: {join ("\nAdminCc: ",@admins) } Depended-On-By: TOP Refers-To: TOP @@ -164,7 +164,7 @@ A convoluted example Subject: Manager approval Depended-On-By: TOP Refers-On: {$Tickets{"approval"}->Id} - Queue: Approvals + Queue: ___Approvals Content-Type: text/plain Content: Your approval is requred for this ticket, too. @@ -213,7 +213,7 @@ A complete list of acceptable fields for this beastie: Fields marked with an * are required. -Fields marked with a + man have multiple values, simply +Fields marked with a + may have multiple values, simply by repeating the fieldname on a new line with an additional value. Fields marked with a ! are postponed to be processed after all @@ -243,8 +243,8 @@ ok ($approvalsq->Id, "Created Approvals test queue"); my $approvals = '===Create-Ticket: approval -Queue: Approvals -Type: Approval +Queue: ___Approvals +Type: approval AdminCc: {join ("\nAdminCc: ",@admins) } Depended-On-By: {$Tickets{"TOP"}->Id} Refers-To: TOP @@ -258,7 +258,7 @@ ENDOFCONTENT ===Create-Ticket: two Subject: Manager approval. Depended-On-By: approval -Queue: Approvals +Queue: ___Approvals Content-Type: text/plain Content: Your minion approved ticket {$Tickets{"TOP"}->Id}. you ok with that? @@ -565,12 +565,14 @@ sub CreateByTemplate { # XXX: cargo cult programming that works. i'll be back. use bytes; - %T::Tickets = (); + local %T::Tickets = %T::Tickets; + local $T::TOP = $T::TOP; + local $T::ID = $T::ID; + $T::Tickets{'TOP'} = $T::TOP = $top if $top; my $ticketargs; my ( @links, @postponed ); foreach my $template_id ( @{ $self->{'create_tickets'} } ) { - $T::Tickets{'TOP'} = $T::TOP = $top if $top; $RT::Logger->debug("Workflow: processing $template_id of $T::TOP") if $T::TOP; @@ -628,7 +630,8 @@ sub UpdateByTemplate { use bytes; my @results; - %T::Tickets = (); + local %T::Tickets = %T::Tickets; + local $T::ID = $T::ID; my $ticketargs; my ( @links, @postponed ); diff --git a/rt/lib/RT/Action/EscalatePriority.pm b/rt/lib/RT/Action/EscalatePriority.pm index ace72dd1b..c54992166 100644 --- a/rt/lib/RT/Action/EscalatePriority.pm +++ b/rt/lib/RT/Action/EscalatePriority.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Action::EscalatePriority diff --git a/rt/lib/RT/Action/Generic.pm b/rt/lib/RT/Action/Generic.pm index 5e80f40d7..cf7600a63 100755 --- a/rt/lib/RT/Action/Generic.pm +++ b/rt/lib/RT/Action/Generic.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Action::Generic - a generic baseclass for RT Actions @@ -84,31 +85,31 @@ sub new { # {{{ sub _Init sub _Init { my $self = shift; - my %args = ( TransactionObj => undef, - TicketObj => undef, - ScripObj => undef, - TemplateObj => undef, - Argument => undef, - Type => undef, - CurrentUser => undef, - @_ ); - - + my %args = ( Argument => undef, + CurrentUser => undef, + ScripActionObj => undef, + ScripObj => undef, + TemplateObj => undef, + TicketObj => undef, + TransactionObj => undef, + Type => undef, + + @_ ); + $self->{'Argument'} = $args{'Argument'}; + $self->CurrentUser( $args{'CurrentUser'}); + $self->{'ScripActionObj'} = $args{'ScripActionObj'}; $self->{'ScripObj'} = $args{'ScripObj'}; + $self->{'TemplateObj'} = $args{'TemplateObj'}; $self->{'TicketObj'} = $args{'TicketObj'}; $self->{'TransactionObj'} = $args{'TransactionObj'}; - $self->{'TemplateObj'} = $args{'TemplateObj'}; $self->{'Type'} = $args{'Type'}; - $self->CurrentUser( $args{'CurrentUser'}); - Scalar::Util::weaken($self->{'ScripObj'}); - Scalar::Util::weaken($self->{'TicketObj'}); - Scalar::Util::weaken($self->{'TemplateObj'}); - Scalar::Util::weaken($self->{'TransactionObj'}); - - - + Scalar::Util::weaken($self->{'ScripActionObj'}); + Scalar::Util::weaken($self->{'ScripObj'}); + Scalar::Util::weaken($self->{'TemplateObj'}); + Scalar::Util::weaken($self->{'TicketObj'}); + Scalar::Util::weaken($self->{'TransactionObj'}); } # }}} @@ -150,6 +151,13 @@ sub ScripObj { } # }}} +# {{{ sub ScripActionObj +sub ScripActionObj { + my $self = shift; + return($self->{'ScripActionObj'}); +} +# }}} + # {{{ sub Type sub Type { my $self = shift; @@ -205,13 +213,11 @@ sub DESTROY { # We need to clean up all the references that might maybe get # oddly circular + $self->{'ScripActionObj'} = undef; + $self->{'ScripObj'} = undef; $self->{'TemplateObj'} =undef $self->{'TicketObj'} = undef; $self->{'TransactionObj'} = undef; - $self->{'ScripObj'} = undef; - - - } # }}} diff --git a/rt/lib/RT/Action/Notify.pm b/rt/lib/RT/Action/Notify.pm index 4131a8c68..0daaa5586 100755 --- a/rt/lib/RT/Action/Notify.pm +++ b/rt/lib/RT/Action/Notify.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} # package RT::Action::Notify; require RT::Action::SendEmail; @@ -158,9 +158,9 @@ sub SetRecipients { @{ $self->{'Bcc'} } = @Bcc; } else { - @{ $self->{'To'} } = grep ( !/^$creator$/, @To ); - @{ $self->{'Cc'} } = grep ( !/^$creator$/, @Cc ); - @{ $self->{'Bcc'} } = grep ( !/^$creator$/, @Bcc ); + @{ $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->{'PseudoTo'} } = @PseudoTo; diff --git a/rt/lib/RT/Action/NotifyAsComment.pm b/rt/lib/RT/Action/NotifyAsComment.pm index 475e3555f..f7cc87543 100755 --- a/rt/lib/RT/Action/NotifyAsComment.pm +++ b/rt/lib/RT/Action/NotifyAsComment.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Action::NotifyAsComment; require RT::Action::Notify; diff --git a/rt/lib/RT/Action/RecordComment.pm b/rt/lib/RT/Action/RecordComment.pm index b548a26eb..d9740dcd1 100644 --- a/rt/lib/RT/Action/RecordComment.pm +++ b/rt/lib/RT/Action/RecordComment.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,31 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK -# 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. -# -# 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 -# +# END BPS TAGGED BLOCK }}} package RT::Action::RecordComment; require RT::Action::Generic; use strict; diff --git a/rt/lib/RT/Action/RecordCorrespondence.pm b/rt/lib/RT/Action/RecordCorrespondence.pm index c6770c574..62255ec53 100644 --- a/rt/lib/RT/Action/RecordCorrespondence.pm +++ b/rt/lib/RT/Action/RecordCorrespondence.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,31 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK -# 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. -# -# 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 -# +# END BPS TAGGED BLOCK }}} package RT::Action::RecordCorrespondence; require RT::Action::Generic; use strict; diff --git a/rt/lib/RT/Action/ResolveMembers.pm b/rt/lib/RT/Action/ResolveMembers.pm index 4d751eb6d..00813181c 100644 --- a/rt/lib/RT/Action/ResolveMembers.pm +++ b/rt/lib/RT/Action/ResolveMembers.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} # This Action will resolve all members of a resolved group ticket package RT::Action::ResolveMembers; diff --git a/rt/lib/RT/Action/SendEmail.pm b/rt/lib/RT/Action/SendEmail.pm index a85c169b8..3c70dc401 100755 --- a/rt/lib/RT/Action/SendEmail.pm +++ b/rt/lib/RT/Action/SendEmail.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} # Portions Copyright 2000 Tobias Brox <tobix@cpan.org> package RT::Action::SendEmail; @@ -150,6 +150,10 @@ sub Prepare { # try to convert message body from utf-8 to $RT::EmailOutputEncoding $self->SetHeader( 'Content-Type', 'text/plain; charset="utf-8"' ); + # fsck.com #5959: Since RT sends 8bit mail, we should say so. + $self->SetHeader( 'Content-Transfer-Encoding','8bit'); + + RT::I18N::SetMIMEEntityToEncoding( $MIMEObj, $RT::EmailOutputEncoding, 'mime_words_ok' ); $self->SetHeader( 'Content-Type', 'text/plain; charset="' . $RT::EmailOutputEncoding . '"' ); @@ -225,9 +229,11 @@ sub SendMessage { my $self = shift; my $MIMEObj = shift; - my $msgid = $MIMEObj->head->get('Message-Id'); + my $msgid = $MIMEObj->head->get('Message-ID'); chomp $msgid; + $self->ScripActionObj->{_Message_ID}++; + $RT::Logger->info( $msgid . " #" . $self->TicketObj->id . "/" . $self->TransactionObj->id @@ -394,12 +400,13 @@ sub RecordOutgoingMailTransaction { $type = 'EmailRecord'; } + my $msgid = $MIMEObj->head->get('Message-ID'); + chomp $msgid; - my ( $id, $msg ) = $transaction->Create( Ticket => $self->TicketObj->Id, Type => $type, - Data => $MIMEObj->head->get('Message-Id'), + Data => $msgid, MIMEObj => $MIMEObj, ActivateScrips => 0 ); @@ -427,28 +434,38 @@ sub SetRTSpecialHeaders { $self->SetHeaderAsEncoding( 'Subject', $RT::EmailOutputEncoding ) if ($RT::EmailOutputEncoding); $self->SetReturnAddress(); - - # 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. - - $self->SetHeader( 'In-Reply-To', - "<rt-" . $self->TicketObj->id() . "\@" . $RT::rtname . ">" ); - - # TODO We should always add References headers for all message-ids - # of previous messages related to this ticket. - - $self->SetHeader( 'Message-ID', - "<rt-" - . $RT::VERSION . "-" - . $self->TicketObj->id() . "-" - . $self->TransactionObj->id() . "-" - . $self->ScripObj->Id . "." - . rand(20) . "\@" - . $RT::Organization . ">" ) - unless $self->TemplateObj->MIMEObj->head->get('Message-ID'); + $self->SetReferencesHeaders(); + + unless ($self->TemplateObj->MIMEObj->head->get('Message-ID')) { + # Get Message-ID for this txn + my $msgid = ""; + $msgid = $self->TransactionObj->Message->First->GetHeader("RT-Message-ID") + || $self->TransactionObj->Message->First->GetHeader("Message-ID") + if $self->TransactionObj->Message && $self->TransactionObj->Message->First; + + # 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+-0-0)\@$RT::Organization>$/ + "<$1." . $self->TicketObj->id + . "-" . $self->ScripObj->id + . "-" . $self->ScripActionObj->{_Message_ID} + . "@" . $RT::Organization . ">"/eg + and $2 == $self->TicketObj->id) { + $self->SetHeader( "Message-ID" => $msgid ); + } else { + $self->SetHeader( 'Message-ID', + "<rt-" + . $RT::VERSION . "-" + . $$ . "-" + . CORE::time() . "-" + . int(rand(2000)) . '.' + . $self->TicketObj->id . "-" + . $self->ScripObj->id . "-" # Scrip + . $self->ScripActionObj->{_Message_ID} . "@" # Email sent + . $RT::Organization + . ">" ); + } + } $self->SetHeader( 'Precedence', "bulk" ) unless ( $self->TemplateObj->MIMEObj->head->get("Precedence") ); @@ -482,28 +499,67 @@ sub RemoveInappropriateRecipients { my @blacklist; + my @types = qw/To Cc Bcc/; + # 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'} } ); + foreach my $type (@types) { + @{ $self->{$type} } = + RT::EmailParser::CullRTAddresses( "", @{ $self->{$type} } ); + } # 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 - if ( defined $self->TransactionObj->Attachments->First() ) { + if ( $self->TransactionObj->Attachments->First() ) { + if ( + $self->TransactionObj->Attachments->First->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::RedistributeAutoGeneratedMessages ) { + + # Don't send to any watchers. + @{ $self->{'To'} } = (); + @{ $self->{'Cc'} } = (); + @{ $self->{'Bcc'} } = (); + + } + elsif ( $RT::RedistributeAutoGeneratedMessages eq 'privileged' ) { + + # Only send to "privileged" watchers. + # + + foreach my $type (@types) { + + foreach my $addr ( @{ $self->{$type} } ) { + my $user = RT::User->new($RT::SystemUser); + $user->LoadByEmail($addr); + @{ $self->{$type} } = + grep ( !/^\Q$addr\E$/, @{ $self->{$type} } ) + if ( !$user->Privileged ); + + } + } + + } + + } + my $squelch = $self->TransactionObj->Attachments->First->GetHeader( 'RT-Squelch-Replies-To'); if ($squelch) { - @blacklist = split ( /,/, $squelch ); + @blacklist = split( /,/, $squelch ); } } -# Let's grab the SquelchMailTo attribue and push those entries into the @blacklist + # Let's grab the SquelchMailTo attribue and push those entries into the @blacklist my @non_recipients = $self->TicketObj->SquelchMailTo; foreach my $attribute (@non_recipients) { push @blacklist, $attribute->Content; @@ -514,10 +570,10 @@ sub RemoveInappropriateRecipients { 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'} } ); + foreach my $type (@types) { + @{ $self->{$type} } = + grep ( !/^\Q$person_to_yank\E$/, @{ $self->{$type} } ); + } } } @@ -671,8 +727,93 @@ sub SetSubjectToken { # }}} +=head2 SetReferencesHeaders + +Set References and In-Reply-To headers for this message. + +=cut + +sub SetReferencesHeaders { + + my $self = shift; + my ( @in_reply_to, @references, @msgid ); + + my $attachments = $self->TransactionObj->Message; + + if ( my $top = $attachments->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); + } + + # 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 + if ( "@msgid" =~ /<(rt-.*?-\d+-\d+)\.(\d+-0-0)\@$RT::Organization>/) { + + # 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)\@$RT::Organization>$/ + "<$1." . $self->TicketObj->id . + "-" . $self->ScripObj->id . + "-" . $self->ScripActionObj->{_Message_ID} . + "@" . $RT::Organization . ">"/eg + } + + # In reply to whatever the internal message was in reply to + $self->SetHeader( 'In-Reply-To', join( " ", ( @in_reply_to ))); + + # Default the references to whatever we're in reply to + @references = @in_reply_to unless @references; + + # References are unchanged from internal + } else { + # In reply to that message + $self->SetHeader( 'In-Reply-To', join( " ", ( @msgid ))); + + # Default the references to whatever we're in reply to + @references = @in_reply_to unless @references; + + # Push that message onto the end of the references + push @references, @msgid; + } + + # Push pseudo-ref to the front + my $pseudo_ref = $self->PseudoReference; + @references = ($pseudo_ref, grep { $_ ne $pseudo_ref } @references); + + # 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); + + # Add on the references + $self->SetHeader( 'References', join( " ", @references) ); + $self->TemplateObj->MIMEObj->head->fold_length( 'References', 80 ); + +} + # }}} +=head2 PseudoReference + +Returns a fake Message-ID: header for the ticket to allow a base level of threading + +=cut + +sub PseudoReference { + + my $self = shift; + my $pseudo_ref = '<RT-Ticket-'.$self->TicketObj->id .'@'.$RT::Organization .'>'; + return $pseudo_ref; +} + + # {{{ SetHeadingAsEncoding =head2 SetHeaderAsEncoding($field_name, $charset_encoding) diff --git a/rt/lib/RT/Action/SetPriority.pm b/rt/lib/RT/Action/SetPriority.pm index d3272a024..c129bf0a2 100644 --- a/rt/lib/RT/Action/SetPriority.pm +++ b/rt/lib/RT/Action/SetPriority.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Action::SetPriority; require RT::Action::Generic; diff --git a/rt/lib/RT/Action/UserDefined.pm b/rt/lib/RT/Action/UserDefined.pm index c298a7c7f..90653f68a 100644 --- a/rt/lib/RT/Action/UserDefined.pm +++ b/rt/lib/RT/Action/UserDefined.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Action::UserDefined; diff --git a/rt/lib/RT/Attachment.pm b/rt/lib/RT/Attachment.pm index 71aa4d5ea..2a09b1240 100755 --- a/rt/lib/RT/Attachment.pm +++ b/rt/lib/RT/Attachment.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -326,29 +326,29 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, TransactionId => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Parent => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, MessageId => - {read => 1, write => 1, type => 'varchar(160)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 160, is_blob => 0, is_numeric => 0, type => 'varchar(160)', default => ''}, Subject => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, Filename => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, ContentType => - {read => 1, write => 1, type => 'varchar(80)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 80, is_blob => 0, is_numeric => 0, type => 'varchar(80)', default => ''}, ContentEncoding => - {read => 1, write => 1, type => 'varchar(80)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 80, is_blob => 0, is_numeric => 0, type => 'varchar(80)', default => ''}, Content => - {read => 1, write => 1, type => 'longtext', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'longtext', default => ''}, Headers => - {read => 1, write => 1, type => 'longtext', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'longtext', default => ''}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; @@ -380,7 +380,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Attachment_Overlay.pm b/rt/lib/RT/Attachment_Overlay.pm index 8dcf56ea6..fe189e378 100644 --- a/rt/lib/RT/Attachment_Overlay.pm +++ b/rt/lib/RT/Attachment_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 SYNOPSIS use RT::Attachment; @@ -66,6 +67,9 @@ ok (require RT::Attachment); =cut + +package RT::Attachment; + use strict; no warnings qw(redefine); @@ -153,6 +157,13 @@ sub Create { defined($Subject) or $Subject = ''; chomp($Subject); + #Get the Message-ID + my $MessageId = $Attachment->head->get( 'Message-ID', 0 ); + defined($MessageId) or $MessageId = ''; + chomp ($MessageId); + $MessageId =~ s/^<(.*)>$/$1/go; + + #Get the filename my $Filename = $Attachment->head->recommended_filename || eval { ${ $Attachment->head->{mail_hdr_hash}{'Content-Disposition'}[0] } @@ -162,12 +173,19 @@ sub Create { # If a message has no bodyhandle, that means that it has subparts (or appears to) # and we should act accordingly. unless ( defined $Attachment->bodyhandle ) { + $id = $self->SUPER::Create( TransactionId => $args{'TransactionId'}, Parent => 0, ContentType => $Attachment->mime_type, Headers => $Attachment->head->as_string, + MessageId => $MessageId, Subject => $Subject); + + unless ($id) { + $RT::Logger->crit("Attachment insert failed - ".$RT::Handle->dbh->errstr); + + } foreach my $part ( $Attachment->parts ) { my $SubAttachment = new RT::Attachment( $self->CurrentUser ); @@ -176,7 +194,6 @@ sub Create { Parent => $id, Attachment => $part, ContentType => $Attachment->mime_type, - Headers => $Attachment->head->as_string(), ); } @@ -186,21 +203,21 @@ sub Create { #If it's not multipart else { - - my $Body = $Attachment->bodyhandle->as_string; - - my ($ContentEncoding, $Body) = $self->_EncodeLOB($Attachment->bodyhandle->as_string, $Attachment->mime_type); - - my $id = $self->SUPER::Create( TransactionId => $args{'TransactionId'}, ContentType => $Attachment->mime_type, ContentEncoding => $ContentEncoding, Parent => $args{'Parent'}, - Headers => $Attachment->head->as_string, + Headers => $Attachment->head->as_string, Subject => $Subject, Content => $Body, - Filename => $Filename, ); + Filename => $Filename, + MessageId => $MessageId + ); + unless ($id) { + $RT::Logger->crit("Attachment insert failed - ".$RT::Handle->dbh->errstr); + } + return ($id); } } @@ -220,7 +237,11 @@ sub Import { my %args = ( ContentEncoding => 'none', @_ ); - return($self->SUPER::Create(@_)); + + + ($args{'ContentEncoding'}, $args{'Content'}) = $self->_EncodeLOB($args{'Content'}, $args{'MimeType'}); + + return($self->SUPER::Create(%args)); } # {{{ sub Content @@ -234,26 +255,7 @@ before returning it. sub Content { my $self = shift; - my $decode_utf8 = (($self->ContentType =~ qr{^text/plain}i) ? 1 : 0); - - if ( $self->ContentEncoding eq 'none' || ! $self->ContentEncoding ) { - return $self->_Value( - 'Content', - decode_utf8 => $decode_utf8, - ); - } elsif ( $self->ContentEncoding eq 'base64' ) { - return ( $decode_utf8 - ? Encode::decode_utf8(MIME::Base64::decode_base64($self->_Value('Content'))) - : MIME::Base64::decode_base64($self->_Value('Content')) - ); - } elsif ( $self->ContentEncoding eq 'quoted-printable' ) { - return ( $decode_utf8 - ? Encode::decode_utf8(MIME::QuotedPrint::decode($self->_Value('Content'))) - : MIME::QuotedPrint::decode($self->_Value('Content')) - ); - } else { - return( $self->loc("Unknown ContentEncoding [_1]", $self->ContentEncoding)); - } + $self->_DecodeLOB($self->ContentType, $self->ContentEncoding, $self->_Value('Content', decode_utf8 => 0)); } @@ -265,7 +267,7 @@ sub Content { =head2 OriginalContent Returns the attachment's content as octets before RT's mangling. -Currently, this just means restoring text/plain content back to its +Currently, this just means restoring text content back to its original encoding. =cut @@ -273,7 +275,8 @@ original encoding. sub OriginalContent { my $self = shift; - return $self->Content unless $self->ContentType eq 'text/plain'; + return $self->Content unless ( + $self->ContentType =~ qr{^(text/plain|message/rfc822)$}i) ; my $enc = $self->OriginalEncoding; my $content; @@ -398,19 +401,16 @@ sub Quote { =head2 NiceHeaders -Returns the To, From, Cc, Date and Subject headers. - -It is a known issue that this breaks if any of these headers are not -properly unfolded. +Returns a multi-line string of the To, From, Cc, Date and Subject headers. =cut sub NiceHeaders { my $self = shift; my $hdrs = ""; - my @hdrs = split(/\n/,$self->Headers); + my @hdrs = $self->_SplitHeaders; while (my $str = shift @hdrs) { - next unless $str =~ /^(To|From|RT-Send-Cc|Cc|Bcc:Date|Subject): /i; + next unless $str =~ /^(To|From|RT-Send-Cc|Cc|Bcc|Date|Subject):/i; $hdrs .= $str . "\n"; $hdrs .= shift( @hdrs ) . "\n" while ($hdrs[0] =~ /^[ \t]+/); } @@ -433,10 +433,9 @@ an abstraction barrier that makes it impossible to pass this data directly sub Headers { my $self = shift; my $hdrs=""; - for ($self->_SplitHeaders) { - $hdrs.="$_\n" unless /^(RT-Send-Bcc):/i - } - return $hdrs; + my @headers = grep { !/^RT-Send-Bcc/i } $self->_SplitHeaders; + return join("\n",@headers); + } @@ -535,7 +534,7 @@ sub _Value { =head2 _SplitHeaders Returns an array of this attachment object's headers, with one header -per array entry. multiple lines are folded +per array entry. multiple lines are folded. =begin testing diff --git a/rt/lib/RT/Attachments.pm b/rt/lib/RT/Attachments.pm index 9ab11f3a6..aedd7ad2b 100755 --- a/rt/lib/RT/Attachments.pm +++ b/rt/lib/RT/Attachments.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Attachments_Overlay.pm b/rt/lib/RT/Attachments_Overlay.pm index 084d02d54..1ea56e47c 100644 --- a/rt/lib/RT/Attachments_Overlay.pm +++ b/rt/lib/RT/Attachments_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Attachments - a collection of RT::Attachment objects @@ -68,6 +69,9 @@ ok (require RT::Attachments); =cut + +package RT::Attachments; + use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/Attribute.pm b/rt/lib/RT/Attribute.pm index 62555d2a7..a46f4d8a2 100644 --- a/rt/lib/RT/Attribute.pm +++ b/rt/lib/RT/Attribute.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -281,27 +281,27 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, Description => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, Content => - {read => 1, write => 1, type => 'text', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, ContentType => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, ObjectType => - {read => 1, write => 1, type => 'varchar(64)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 64, is_blob => 0, is_numeric => 0, type => 'varchar(64)', default => ''}, ObjectId => - {read => 1, write => 1, type => 'int(11)', default => ''}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; @@ -333,7 +333,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Attribute_Overlay.pm b/rt/lib/RT/Attribute_Overlay.pm index b95b8f6e3..ead842ea2 100644 --- a/rt/lib/RT/Attribute_Overlay.pm +++ b/rt/lib/RT/Attribute_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,9 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} +package RT::Attribute; + use strict; no warnings qw(redefine); use Storable qw/nfreeze thaw/; diff --git a/rt/lib/RT/Attributes.pm b/rt/lib/RT/Attributes.pm index bb7133366..bb63b8146 100644 --- a/rt/lib/RT/Attributes.pm +++ b/rt/lib/RT/Attributes.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Attributes_Overlay.pm b/rt/lib/RT/Attributes_Overlay.pm index 63c9ba042..0e79df12d 100644 --- a/rt/lib/RT/Attributes_Overlay.pm +++ b/rt/lib/RT/Attributes_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Attributes - collection of RT::Attribute objects @@ -57,29 +58,10 @@ my $Attributes = new RT::Attributes($CurrentUser); =head1 METHODS -=begin testing - -ok(require RT::Attributes); - -my $root = RT::User->new($RT::SystemUser); -ok (UNIVERSAL::isa($root, 'RT::User')); -$root->Load('root'); -ok($root->id, "Found a user for root"); - -my $attr = $root->Attributes; - -ok (UNIVERSAL::isa($attr,'RT::Attributes'), 'got the attributes object'); - -my ($id, $msg) = $root->AddAttribute(Name => 'TestAttr', Content => 'The attribute has content'); -ok ($id, $msg); -my @names = $attr->Names; - -is ($names[0] , 'TestAttr'); +=cut -=end testing - -=cut +package RT::Attributes; use strict; no warnings qw(redefine); @@ -175,13 +157,17 @@ sub DeleteEntry { Content => undef, id => undef, @_); - + my $found = 0; foreach my $attr ($self->Named($args{'Name'})){ - $attr->Delete - if (!defined $args{'id'} and !defined $args{'Content'}) - or (defined $args{'id'} and $attr->id eq $args{'id'}) - or (defined $args{'Content'} and $attr->Content eq $args{'Content'}); + if ((!defined $args{'id'} and !defined $args{'Content'}) + or (defined $args{'id'} and $attr->id eq $args{'id'}) + or (defined $args{'Content'} and $attr->Content eq $args{'Content'})) { + my ($id, $msg) = $attr->Delete; + return ($id, $msg) unless $id; + $found = 1; + } } + return (0, "No entry found") unless $found; $self->_DoSearch(); return (1, $self->loc('Attribute Deleted')); } diff --git a/rt/lib/RT/Base.pm b/rt/lib/RT/Base.pm index 03b50e600..f32922103 100644 --- a/rt/lib/RT/Base.pm +++ b/rt/lib/RT/Base.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Base; use Carp; use Scalar::Util; @@ -52,9 +52,18 @@ use vars qw(@EXPORT); @EXPORT=qw(loc CurrentUser); -=head1 FUNCTIONS +=head1 NAME + +RT::Base + +=head1 SYNOPSIS +=head1 DESCRIPTION + +=head1 FUNCTIONS + +=cut # {{{ sub CurrentUser @@ -72,6 +81,9 @@ sub CurrentUser { if (@_) { $self->{'original_user'} = $self->{'user'}; $self->{'user'} = shift; + # We need to weaken the CurrentUser ($self->{'user'}) reference + # if the object in question is the currentuser object. + # This avoids memory leaks. Scalar::Util::weaken($self->{'user'}) if (ref($self->{'user'}) && $self->{'user'} == $self ); } @@ -79,7 +91,6 @@ sub CurrentUser { unless ( ref( $self->{'user'}) ) { $RT::Logger->err( "$self was created without a CurrentUser\n" . Carp::cluck() ); return (0); - die; } return ( $self->{'user'} ); } @@ -98,7 +109,7 @@ sub OriginalUser { } -=item loc LOC_STRING +=head2 loc LOC_STRING l is a method which takes a loc string to this object's CurrentUser->LanguageHandle for localization. @@ -125,6 +136,18 @@ sub loc { } } +sub loc_fuzzy { + my $self = shift; + if (my $user = $self->OriginalUser) { + return $user->loc_fuzzy(@_); + } + else { + use Carp; + Carp::confess("No currentuser"); + return ("Critical error:$self has no CurrentUser", $self); + } +} + eval "require RT::Base_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Base_Vendor.pm}); eval "require RT::Base_Local"; diff --git a/rt/lib/RT/CachedGroupMember.pm b/rt/lib/RT/CachedGroupMember.pm index 96b1d00a4..bc7f62e97 100644 --- a/rt/lib/RT/CachedGroupMember.pm +++ b/rt/lib/RT/CachedGroupMember.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -224,17 +224,17 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, GroupId => - {read => 1, write => 1, type => 'int(11)', default => ''}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, MemberId => - {read => 1, write => 1, type => 'int(11)', default => ''}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Via => - {read => 1, write => 1, type => 'int(11)', default => ''}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, ImmediateParentId => - {read => 1, write => 1, type => 'int(11)', default => ''}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Disabled => - {read => 1, write => 1, type => 'smallint(6)', default => '0'}, + {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, } }; @@ -266,7 +266,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/CachedGroupMember_Overlay.pm b/rt/lib/RT/CachedGroupMember_Overlay.pm index 1294af4ee..15f6bd73d 100644 --- a/rt/lib/RT/CachedGroupMember_Overlay.pm +++ b/rt/lib/RT/CachedGroupMember_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,29 +42,45 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} +package RT::CachedGroupMember; + use strict; no warnings qw(redefine); -# {{{ Create +=head1 NAME + + RT::CachedGroupMember + +=head1 SYNOPSIS + + use RT::CachedGroupMember; -=item Create PARAMHASH +=head1 DESCRIPTION + +=head1 METHODS + +=cut + +# {{ Create + +=head2 Create PARAMHASH Create takes a hash of values and creates a row in the database: - 'Group' is the "top level" group we're building the cache for. This is an - RT::Principal object + 'Group' is the "top level" group we're building the cache for. This + is an RT::Principal object - 'Member' is the RT::Principal of the user or group we're adding - to the cache. + 'Member' is the RT::Principal of the user or group we're adding to + the cache. - 'ImmediateParent' is the RT::Principal of the group that this principal - belongs to to get here + 'ImmediateParent' is the RT::Principal of the group that this + principal belongs to to get here int(11) 'Via' is an internal reference to CachedGroupMembers->Id of - the "parent" record of this cached group member. It should be empty if this - member is a "direct" member of this group. (In that case, it will be set to this - cached group member's id after creation) + the "parent" record of this cached group member. It should be empty if + this member is a "direct" member of this group. (In that case, it will + be set to this cached group member's id after creation) This routine should _only_ be called by GroupMember->Create @@ -240,11 +256,14 @@ mysql supported foreign keys with cascading SetDisableds. sub SetDisabled { my $self = shift; my $val = shift; - + + # if it's already disabled, we're good. + return {1} if ($self->__Value('Disabled') == $val); my $err = $self->SUPER::SetDisabled($val); - unless ($err) { - $RT::Logger->error( "Couldn't SetDisabled CachedGroupMember " . $self->Id ); - return (undef); + my ($retval, $msg) = $err->as_array(); + unless ($retval) { + $RT::Logger->error( "Couldn't SetDisabled CachedGroupMember " . $self->Id .": $msg"); + return ($err); } my $member = $self->MemberObj(); @@ -258,7 +277,7 @@ sub SetDisabled { my $kid_err = $kid->SetDisabled($val ); unless ($kid_err) { $RT::Logger->error( "Couldn't SetDisabled CachedGroupMember " . $kid->Id ); - return (undef); + return ($kid_err); } } } diff --git a/rt/lib/RT/CachedGroupMembers.pm b/rt/lib/RT/CachedGroupMembers.pm index 909089d28..5ed35e676 100644 --- a/rt/lib/RT/CachedGroupMembers.pm +++ b/rt/lib/RT/CachedGroupMembers.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/CachedGroupMembers_Overlay.pm b/rt/lib/RT/CachedGroupMembers_Overlay.pm index 0dbcffcd2..e83dab4d1 100644 --- a/rt/lib/RT/CachedGroupMembers_Overlay.pm +++ b/rt/lib/RT/CachedGroupMembers_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::CachedGroupMembers - a collection of RT::GroupMember objects @@ -65,6 +66,9 @@ ok (require RT::CachedGroupMembers); =cut + +package RT::CachedGroupMembers; + use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/Condition/AnyTransaction.pm b/rt/lib/RT/Condition/AnyTransaction.pm index a338523b7..6685e2779 100644 --- a/rt/lib/RT/Condition/AnyTransaction.pm +++ b/rt/lib/RT/Condition/AnyTransaction.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Condition::AnyTransaction; diff --git a/rt/lib/RT/Condition/BeforeDue.pm b/rt/lib/RT/Condition/BeforeDue.pm index 4be0afc24..d5e371e9e 100644 --- a/rt/lib/RT/Condition/BeforeDue.pm +++ b/rt/lib/RT/Condition/BeforeDue.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Condition::BeforeDue; require RT::Condition::Generic; diff --git a/rt/lib/RT/Condition/Generic.pm b/rt/lib/RT/Condition/Generic.pm index 1f291fcca..cdde9ee5b 100755 --- a/rt/lib/RT/Condition/Generic.pm +++ b/rt/lib/RT/Condition/Generic.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Condition::Generic - ; diff --git a/rt/lib/RT/Condition/Overdue.pm b/rt/lib/RT/Condition/Overdue.pm index df4476caf..877db40dc 100644 --- a/rt/lib/RT/Condition/Overdue.pm +++ b/rt/lib/RT/Condition/Overdue.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} diff --git a/rt/lib/RT/Condition/OwnerChange.pm b/rt/lib/RT/Condition/OwnerChange.pm index 5ec3a4308..5fbc6b2fb 100644 --- a/rt/lib/RT/Condition/OwnerChange.pm +++ b/rt/lib/RT/Condition/OwnerChange.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} diff --git a/rt/lib/RT/Condition/PriorityChange.pm b/rt/lib/RT/Condition/PriorityChange.pm index b3dbde895..101c3887a 100644 --- a/rt/lib/RT/Condition/PriorityChange.pm +++ b/rt/lib/RT/Condition/PriorityChange.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} diff --git a/rt/lib/RT/Condition/PriorityExceeds.pm b/rt/lib/RT/Condition/PriorityExceeds.pm index 68db1e501..b811c7243 100644 --- a/rt/lib/RT/Condition/PriorityExceeds.pm +++ b/rt/lib/RT/Condition/PriorityExceeds.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} diff --git a/rt/lib/RT/Condition/QueueChange.pm b/rt/lib/RT/Condition/QueueChange.pm index 4227fe6b0..7a3ede985 100644 --- a/rt/lib/RT/Condition/QueueChange.pm +++ b/rt/lib/RT/Condition/QueueChange.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} diff --git a/rt/lib/RT/Condition/StatusChange.pm b/rt/lib/RT/Condition/StatusChange.pm index 1182fcd70..902bf2aab 100644 --- a/rt/lib/RT/Condition/StatusChange.pm +++ b/rt/lib/RT/Condition/StatusChange.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} diff --git a/rt/lib/RT/Condition/UserDefined.pm b/rt/lib/RT/Condition/UserDefined.pm index 0cb8bdb38..f6d077d07 100644 --- a/rt/lib/RT/Condition/UserDefined.pm +++ b/rt/lib/RT/Condition/UserDefined.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Condition::UserDefined; diff --git a/rt/lib/RT/CurrentUser.pm b/rt/lib/RT/CurrentUser.pm index d147fe62e..8e28801c1 100755 --- a/rt/lib/RT/CurrentUser.pm +++ b/rt/lib/RT/CurrentUser.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::CurrentUser - an RT object representing the current user @@ -244,6 +245,7 @@ sub LoadByGecos { Loads a User into this CurrentUser object. Takes a Name. + =cut sub LoadByName { @@ -350,12 +352,12 @@ specification. but currently doesn't =begin testing ok (my $cu = RT::CurrentUser->new('root')); -ok (my $lh = $cu->LanguageHandle); +ok (my $lh = $cu->LanguageHandle('en-us')); ok ($lh != undef); ok ($lh->isa('Locale::Maketext')); -ok ($cu->loc('TEST_STRING') eq "Concrete Mixer", "Localized TEST_STRING into English"); +is ($cu->loc('TEST_STRING'), "Concrete Mixer", "Localized TEST_STRING into English"); ok ($lh = $cu->LanguageHandle('fr')); -ok ($cu->loc('Before') eq "Avant", "Localized TEST_STRING into Frenc"); +is ($cu->loc('Before'), "Avant", "Localized TEST_STRING into Frenc"); =end testing @@ -366,7 +368,7 @@ sub LanguageHandle { if ( ( !defined $self->{'LangHandle'} ) || ( !UNIVERSAL::can( $self->{'LangHandle'}, 'maketext' ) ) || (@_) ) { - if ( (!$RT::SystemUser || $self->id == $RT::SystemUser->id() )) { + if ( !$RT::SystemUser or ($self->id || 0) == $RT::SystemUser->id() ) { @_ = qw(en-US); } @@ -400,7 +402,7 @@ sub loc { sub loc_fuzzy { my $self = shift; - return '' if $_[0] eq ''; + return '' if (!$_[0] || $_[0] eq ''); # XXX: work around perl's deficiency when matching utf8 data return $_[0] if Encode::is_utf8($_[0]); @@ -423,6 +425,48 @@ sub CurrentUser { } +=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: + + encode_base64(sha1( + $nonce . + $created . + sha1_hex( "$username:$realm:$server_pass" ) + )) + +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. + +=cut + +sub Authenticate { + my ($self, $password, $created, $nonce, $realm) = @_; + + require Digest::MD5; + require Digest::SHA1; + require MIME::Base64; + + 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") + )); + + chomp($password); + chomp($auth_digest); + + return ($password eq $auth_digest); +} + +# }}} + eval "require RT::CurrentUser_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/CurrentUser_Vendor.pm}); diff --git a/rt/lib/RT/CustomField.pm b/rt/lib/RT/CustomField.pm index be05c3092..212e594cc 100644 --- a/rt/lib/RT/CustomField.pm +++ b/rt/lib/RT/CustomField.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -67,7 +67,6 @@ RT::CustomField package RT::CustomField; use RT::Record; -use RT::Queue; use vars qw( @ISA ); @@ -90,11 +89,17 @@ Create takes a hash of values and creates a row in the database: varchar(200) 'Name'. varchar(200) 'Type'. - int(11) 'Queue'. + int(11) 'MaxValues'. + varchar(255) 'Pattern'. + smallint(6) 'Repeated'. varchar(255) 'Description'. int(11) 'SortOrder'. + varchar(255) 'LookupType'. smallint(6) 'Disabled'. + 'LookupType' is generally the result of either + RT::Ticket->CustomFieldLookupType or RT::Transaction->CustomFieldLookupType + =cut @@ -105,18 +110,24 @@ sub Create { my %args = ( Name => '', Type => '', - Queue => '0', + MaxValues => '', + Pattern => '', + Repeated => '0', Description => '', SortOrder => '0', + LookupType => '', Disabled => '0', @_); $self->SUPER::Create( Name => $args{'Name'}, Type => $args{'Type'}, - Queue => $args{'Queue'}, + MaxValues => $args{'MaxValues'}, + Pattern => $args{'Pattern'}, + Repeated => $args{'Repeated'}, Description => $args{'Description'}, SortOrder => $args{'SortOrder'}, + LookupType => $args{'LookupType'}, Disabled => $args{'Disabled'}, ); @@ -169,37 +180,59 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut -=head2 Queue +=head2 MaxValues -Returns the current value of Queue. -(In the database, Queue is stored as int(11).) +Returns the current value of MaxValues. +(In the database, MaxValues is stored as int(11).) -=head2 SetQueue VALUE +=head2 SetMaxValues VALUE -Set Queue to VALUE. +Set MaxValues to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, Queue will be stored as a int(11).) +(In the database, MaxValues will be stored as a int(11).) =cut -=head2 QueueObj +=head2 Pattern + +Returns the current value of Pattern. +(In the database, Pattern is stored as varchar(255).) + + -Returns the Queue Object which has the id returned by Queue +=head2 SetPattern VALUE + + +Set Pattern to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Pattern will be stored as a varchar(255).) + + +=cut + + +=head2 Repeated + +Returns the current value of Repeated. +(In the database, Repeated is stored as smallint(6).) + + + +=head2 SetRepeated VALUE + + +Set Repeated to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Repeated will be stored as a smallint(6).) =cut -sub QueueObj { - my $self = shift; - my $Queue = RT::Queue->new($self->CurrentUser); - $Queue->Load($self->__Value('Queue')); - return($Queue); -} =head2 Description @@ -237,6 +270,24 @@ Returns (1, 'Status message') on success and (0, 'Error Message') on failure. =cut +=head2 LookupType + +Returns the current value of LookupType. +(In the database, LookupType is stored as varchar(255).) + + + +=head2 SetLookupType VALUE + + +Set LookupType to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, LookupType will be stored as a varchar(255).) + + +=cut + + =head2 Creator Returns the current value of Creator. @@ -296,27 +347,33 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Type => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, - Queue => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, + MaxValues => + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + Pattern => + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + Repeated => + {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, Description => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, SortOrder => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + LookupType => + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Disabled => - {read => 1, write => 1, type => 'smallint(6)', default => '0'}, + {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, } }; @@ -348,7 +405,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/CustomFieldValue.pm b/rt/lib/RT/CustomFieldValue.pm index e1d4e030e..105ac40c7 100644 --- a/rt/lib/RT/CustomFieldValue.pm +++ b/rt/lib/RT/CustomFieldValue.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -254,23 +254,23 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, CustomField => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Name => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Description => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, SortOrder => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; @@ -302,7 +302,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/CustomFieldValue_Overlay.pm b/rt/lib/RT/CustomFieldValue_Overlay.pm new file mode 100644 index 000000000..322e58b1f --- /dev/null +++ b/rt/lib/RT/CustomFieldValue_Overlay.pm @@ -0,0 +1,19 @@ +use warnings; +use strict; + +package RT::CustomFieldValue; + +no warnings qw/redefine/; + + +=head2 ValidateName + +Override the default ValidateName method that stops custom field values +from being integers. + +=cut + + +sub ValidateName { 1 }; + +1; diff --git a/rt/lib/RT/CustomFieldValues.pm b/rt/lib/RT/CustomFieldValues.pm index 70deda126..9a55af8bd 100644 --- a/rt/lib/RT/CustomFieldValues.pm +++ b/rt/lib/RT/CustomFieldValues.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -83,10 +83,15 @@ sub _Init { - # By default, order by name - $self->OrderBy( ALIAS => 'main', - FIELD => 'SortOrder', - ORDER => 'ASC'); + # By default, order by SortOrder + $self->OrderByCols( + { ALIAS => 'main', + FIELD => 'SortOrder', + ORDER => 'ASC' }, + { ALIAS => 'main', + FIELD => 'id', + ORDER => 'ASC' }, + ); return ( $self->SUPER::_Init(@_) ); } @@ -129,7 +134,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/CustomFieldValues_Overlay.pm b/rt/lib/RT/CustomFieldValues_Overlay.pm index 074498073..3a9f5d530 100644 --- a/rt/lib/RT/CustomFieldValues_Overlay.pm +++ b/rt/lib/RT/CustomFieldValues_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,9 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} +package RT::CustomFieldValues; + use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/CustomField_Overlay.pm b/rt/lib/RT/CustomField_Overlay.pm index 4c4bd8ba7..9e0ce2460 100644 --- a/rt/lib/RT/CustomField_Overlay.pm +++ b/rt/lib/RT/CustomField_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,28 +42,78 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} +package RT::CustomField; + use strict; no warnings qw(redefine); -use vars qw(@TYPES %TYPES); +use vars qw(%FieldTypes $RIGHTS %FRIENDLY_OBJECT_TYPES); use RT::CustomFieldValues; -use RT::TicketCustomFieldValues; - -# Enumerate all valid types for this custom field -@TYPES = ( - 'SelectSingle', # loc - 'SelectMultiple', # loc - 'FreeformSingle', # loc - 'FreeformMultiple', # loc +use RT::ObjectCustomFieldValues; + + +%FieldTypes = ( + Select => [ + 'Select multiple values', # loc + 'Select one value', # loc + 'Select up to [_1] values', # loc + ], + Freeform => [ + 'Enter multiple values', # loc + 'Enter one value', # loc + 'Enter up to [_1] values', # loc + ], + Text => [ + 'Fill in multiple text areas', # loc + 'Fill in one text area', # loc + 'Fill in up to [_1] text areas',# loc + ], + Wikitext => [ + 'Fill in multiple wikitext areas', # loc + 'Fill in one wikitext area', # loc + 'Fill in up to [_1] wikitext areas',# loc + ], + Image => [ + 'Upload multiple images', # loc + 'Upload one image', # loc + 'Upload up to [_1] images', # loc + ], + Binary => [ + 'Upload multiple files', # loc + 'Upload one file', # loc + 'Upload up to [_1] files', # loc + ], ); -# Populate a hash of types of easier validation -for (@TYPES) { $TYPES{$_} = 1}; +%FRIENDLY_OBJECT_TYPES = (); + +RT::CustomField->_ForObjectType( 'RT::Queue-RT::Ticket' => "Tickets", ); #loc +RT::CustomField->_ForObjectType( + 'RT::Queue-RT::Ticket-RT::Transaction' => "Ticket Transactions", ); #loc +RT::CustomField->_ForObjectType( 'RT::User' => "Users", ); #loc +RT::CustomField->_ForObjectType( 'RT::Group' => "Groups", ); #loc + +$RIGHTS = { + SeeCustomField => 'See custom fields', # loc_pair + AdminCustomField => 'Create, delete and modify custom fields', # loc_pair + ModifyCustomField => 'Add, delete and modify custom field values for objects' #loc_pair +}; +# Tell RT::ACE that this sort of object can get acls granted +$RT::ACE::OBJECT_TYPES{'RT::CustomField'} = 1; + +foreach my $right ( keys %{$RIGHTS} ) { + $RT::ACE::LOWERCASERIGHTNAMES{ lc $right } = $right; +} + +sub AvailableRights { + my $self = shift; + return($RIGHTS); +} =head1 NAME @@ -83,11 +133,17 @@ Create takes a hash of values and creates a row in the database: varchar(200) 'Name'. varchar(200) 'Type'. - int(11) 'Queue'. + int(11) 'MaxValues'. + varchar(255) 'Pattern'. + smallint(6) 'Repeated'. varchar(255) 'Description'. int(11) 'SortOrder'. + varchar(255) 'LookupType'. smallint(6) 'Disabled'. + 'LookupType' is generally the result of either + RT::Ticket->CustomFieldLookupType or RT::Transaction->CustomFieldLookupType + =cut @@ -98,19 +154,36 @@ sub Create { my %args = ( Name => '', Type => '', - Queue => '0', + MaxValues => '0', + Pattern => '', Description => '', - SortOrder => '0', Disabled => '0', + LookupType => '', + Repeated => '0', @_); - + unless ($self->CurrentUser->HasRight(Object => $RT::System, Right => 'AdminCustomField')) { + return (0, $self->loc('Permission Denied')); + } - if ( ! $args{'Queue'} ) { - unless ( $self->CurrentUser->HasRight( Object => $RT::System, Right => 'AdminCustomFields') ) { + + if ($args{TypeComposite}) { + @args{'Type', 'MaxValues'} = split(/-/, $args{TypeComposite}, 2); + } + elsif ($args{Type} =~ s/(?:(Single)|Multiple)$//) { + # old style Type string + $args{'MaxValues'} = $1 ? 1 : 0; + } + + if ( !exists $args{'Queue'}) { + # do nothing -- things below are strictly backward compat + } + elsif ( ! $args{'Queue'} ) { + unless ( $self->CurrentUser->HasRight( Object => $RT::System, Right => 'AssignCustomFields') ) { return ( 0, $self->loc('Permission Denied') ); } + $args{'LookupType'} = 'RT::Queue-RT::Ticket'; } else { my $queue = RT::Queue->new($self->CurrentUser); @@ -118,35 +191,75 @@ sub Create { unless ($queue->Id) { return (0, $self->loc("Queue not found")); } - unless ( $queue->CurrentUserHasRight('AdminCustomFields') ) { + unless ( $queue->CurrentUserHasRight('AssignCustomFields') ) { return ( 0, $self->loc('Permission Denied') ); } + $args{'LookupType'} = 'RT::Queue-RT::Ticket'; } - $self->SUPER::Create( + my $rv = $self->SUPER::Create( Name => $args{'Name'}, Type => $args{'Type'}, - Queue => $args{'Queue'}, + MaxValues => $args{'MaxValues'}, + Pattern => $args{'Pattern'}, Description => $args{'Description'}, - SortOrder => $args{'SortOrder'}, Disabled => $args{'Disabled'}, + LookupType => $args{'LookupType'}, + Repeated => $args{'Repeated'}, ); + return $rv unless exists $args{'Queue'}; + + # Compat code -- create a new ObjectCustomField mapping + my $OCF = RT::ObjectCustomField->new($self->CurrentUser); + $OCF->Create( + CustomField => $self->Id, + ObjectId => $args{'Queue'}, + ); + + return $rv; +} + +=head2 Load ID/NAME + +Load a custom field. If the value handed in is an integer, load by custom field ID. Otherwise, Load by name. + +=cut + + +sub Load { + my $self = shift; + my $id = shift; + + if ($id =~ /^\d+$/) { + return ($self->SUPER::Load($id)); + } else { + return($self->LoadByName(Name => $id)); + } } -# {{{ sub LoadByNameAndQueue +# {{{ sub LoadByName + +=head2 LoadByName (Queue => QUEUEID, Name => NAME) + +Loads the Custom field named NAME. + +If a Queue parameter is specified, only look for ticket custom fields tied to that Queue. + +If the Queue parameter is '0', look for global ticket custom fields. -=head2 LoadByNameAndQueue (Queue => QUEUEID, Name => NAME) +If no queue parameter is specified, look for any and all custom fields with this name. -Loads the Custom field named NAME for Queue QUEUE. If QUEUE is 0, -loads a global custom field +BUG/TODO, this won't let you specify that you only want user or group CFs. =cut # Compatibility for API change after 3.0 beta 1 -*LoadNameAndQueue = \&LoadByNameAndQueue; +*LoadNameAndQueue = \&LoadByName; +# Change after 3.4 beta. +*LoadByNameAndQueue = \&LoadByName; -sub LoadByNameAndQueue { +sub LoadByName { my $self = shift; my %args = ( Queue => undef, @@ -154,13 +267,33 @@ sub LoadByNameAndQueue { @_, ); - if ($args{'Queue'} =~ /\D/) { + # if we're looking for a queue by name, make it a number + if (defined $args{'Queue'} && $args{'Queue'} !~ /^\d+$/) { my $QueueObj = RT::Queue->new($self->CurrentUser); $QueueObj->Load($args{'Queue'}); $args{'Queue'} = $QueueObj->Id; } - return ( $self->LoadByCols( Name => $args{'Name'}, Queue => $args{'Queue'} ) ); + # XXX - really naive implementation. Slow. - not really. still just one query + + my $CFs = RT::CustomFields->new($self->CurrentUser); + + $CFs->Limit( FIELD => 'Name', VALUE => $args{'Name'} ); + # Don't limit to queue if queue is 0. Trying to do so breaks + # RT::Group type CFs. + if (defined $args{'Queue'}) { + $CFs->LimitToQueue( $args{'Queue'} ); + } + + # When loading by name, it's ok if they're disabled. That's not a big deal. + $CFs->{'find_disabled_rows'}=1; + + # We only want one entry. + $CFs->RowsPerPage(1); + unless ($CFs->First) { + return(0); + } + return($self->Load($CFs->First->id)); } @@ -169,6 +302,7 @@ sub LoadByNameAndQueue { # {{{ Dealing with custom field values =begin testing + use_ok(RT::CustomField); ok(my $cf = RT::CustomField->new($RT::SystemUser)); ok(my ($id, $msg)= $cf->Create( Name => 'TestingCF', @@ -178,10 +312,13 @@ ok(my ($id, $msg)= $cf->Create( Name => 'TestingCF', Type=> 'SelectSingle'), 'Created a global CustomField'); ok($id != 0, 'Global custom field correctly created'); ok ($cf->SingleValue); -ok($cf->Type eq 'SelectSingle'); +is($cf->Type, 'Select'); +is($cf->MaxValues, 1); -ok($cf->SetType('SelectMultiple')); -ok($cf->Type eq 'SelectMultiple'); +my ($val, $msg) = $cf->SetMaxValues('0'); +ok($val, $msg); +is($cf->Type, 'Select'); +is($cf->MaxValues, 0); ok(!$cf->SingleValue ); ok(my ($bogus_val, $bogus_msg) = $cf->SetType('BogusType') , "Trying to set a custom field's type to a bogus type"); ok($bogus_val == 0, "Unable to set a custom field's type to a bogus type"); @@ -212,7 +349,7 @@ ok($cf->Id == 1); ok(my ($val,$msg) = $cf->AddValue(Name => 'foo' , Description => 'TestCFValue', SortOrder => '6')); ok($val != 0); ok (my ($delval, $delmsg) = $cf->DeleteValue($val)); -ok ($delval != 0); +ok ($delval,"Deleting a cf value: $delmsg"); =end testing @@ -225,7 +362,7 @@ sub AddValue { SortOrder => undef, @_ ); - unless ($self->CurrentUserHasRight('AdminCustomFields')) { + unless ($self->CurrentUserHasRight('AdminCustomField')) { return (0, $self->loc('Permission Denied')); } @@ -257,7 +394,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('AdminCustomFields')) { + unless ($self->CurrentUserHasRight('AdminCustomField')) { return (0, $self->loc('Permission Denied')); } @@ -289,11 +426,14 @@ Return a CustomFieldeValues object of all acceptable values for this Custom Fiel =cut +*ValuesObj = \&Values; + sub Values { my $self = shift; my $cf_values = RT::CustomFieldValues->new($self->CurrentUser); - if ( $self->__Value('Queue') == 0 || $self->CurrentUserHasRight( 'SeeQueue') ) { + # if the user has no rights, return an empty object + if ($self->id && $self->CurrentUserHasRight( 'SeeCustomField') ) { $cf_values->LimitToCustomField($self->Id); } return ($cf_values); @@ -309,21 +449,23 @@ sub Values { =head2 ValuesForTicket TICKET -Returns a RT::TicketCustomFieldValues object of this Field's values for TICKET. +Returns a RT::ObjectCustomFieldValues object of this Field's values for TICKET. TICKET is a ticket id. +This is deprecated -- use ValuesForObject instead. + =cut sub ValuesForTicket { my $self = shift; my $ticket_id = shift; + + $RT::Logger->debug( ref($self) . " -> ValuesForTicket deprecated in favor of ValuesForObject"); + my $ticket = RT::Ticket->new($self->CurrentUser); + $ticket->Load($ticket_id); - my $values = new RT::TicketCustomFieldValues($self->CurrentUser); - $values->LimitToCustomField($self->Id); - $values->LimitToTicket($ticket_id); - - return ($values); + return $self->ValuesForObject($ticket); } # }}} @@ -334,6 +476,8 @@ sub ValuesForTicket { Adds a custom field value for a ticket. Takes a param hash of Ticket and Content +This is deprecated -- use AddValueForObject instead. + =cut sub AddValueForTicket { @@ -341,13 +485,12 @@ sub AddValueForTicket { my %args = ( Ticket => undef, Content => undef, @_ ); + $RT::Logger->debug( ref($self) . " -> AddValueForTicket deprecated in favor of AddValueForObject"); - my $newval = RT::TicketCustomFieldValue->new($self->CurrentUser); - my $val = $newval->Create(Ticket => $args{'Ticket'}, - Content => $args{'Content'}, - CustomField => $self->Id); - return($val); + my $ticket = RT::Ticket->new($self->CurrentUser); + $ticket->Load($args{'Ticket'}); + return($self->AddValueForObject(Content => $args{'Content'}, Object => $ticket,@_)); } @@ -360,6 +503,8 @@ sub AddValueForTicket { Adds a custom field value for a ticket. Takes a param hash of Ticket and Content +This is deprecated -- use DeleteValueForObject instead. + =cut sub DeleteValueForTicket { @@ -368,23 +513,14 @@ sub DeleteValueForTicket { Content => undef, @_ ); - my $oldval = RT::TicketCustomFieldValue->new($self->CurrentUser); - $oldval->LoadByTicketContentAndCustomField (Ticket => $args{'Ticket'}, - Content => $args{'Content'}, - CustomField => $self->Id ); - # check ot make sure we found it - unless ($oldval->Id) { - return(0, $self->loc("Custom field value [_1] could not be found for custom field [_2]", $args{'Content'}, $self->Name)); - } - # delete it + $RT::Logger->debug( ref($self) . " -> DeleteValueForTicket deprecated in favor of DeleteValueForObject"); - my $ret = $oldval->Delete(); - unless ($ret) { - return(0, $self->loc("Custom field value could not be found")); - } - return(1, $self->loc("Custom field value deleted")); -} + my $ticket = RT::Ticket->new($self->CurrentUser); + $ticket->load($args{'Ticket'}); + return ($self->DeleteValueForObject(Object => $ticket, Content => $args{'Content'}, @_)); + +} # }}} # }}} @@ -424,13 +560,13 @@ Retuns an array of the types of CustomField that are supported =cut sub Types { - return (@TYPES); + return (keys %FieldTypes); } # }}} -=head2 FriendlyType [TYPE] +=head2 FriendlyType [TYPE, MAX_VALUES] Returns a localized human-readable version of the custom field type. If a custom field type is specified as the parameter, the friendly type for that type will be returned @@ -440,25 +576,23 @@ If a custom field type is specified as the parameter, the friendly type for that sub FriendlyType { my $self = shift; - my $type = shift || $self->Type; + my $type = @_ ? shift : $self->Type; + my $max = @_ ? shift : $self->MaxValues; - if ( $type eq 'SelectSingle' ) { - return ( $self->loc('Select one value') ); - } - elsif ( $type eq 'SelectMultiple' ) { - return ( $self->loc('Select multiple values') ); - } - elsif ( $type eq 'FreeformSingle' ) { - return ( $self->loc('Enter one value') ); - } - elsif ( $type eq 'FreeformMultiple' ) { - return ( $self->loc('Enter multiple values') ); + if (my $friendly_type = $FieldTypes{$type}[$max>2 ? 2 : $max]) { + return ( $self->loc( $friendly_type, $max ) ); } else { - return ( $self->loc( $self->Type ) ); + return ( $self->loc( $type ) ); } } +sub FriendlyTypeComposite { + my $self = shift; + my $composite = shift || $self->TypeComposite; + return $self->FriendlyType(split(/-/, $composite, 2)); +} + =head2 ValidateType TYPE @@ -480,7 +614,11 @@ sub ValidateType { my $self = shift; my $type = shift; - if( $TYPES{$type}) { + if ($type =~ s/(?:Single|Multiple)$//) { + $RT::Logger->warning( "Prefix 'Single' and 'Multiple' to Type deprecated, use MaxValues instead"); + } + + if( $FieldTypes{$type}) { return(1); } else { @@ -488,6 +626,17 @@ sub ValidateType { } } + +sub SetType { + my $self = shift; + my $type = shift; + if ($type =~ s/(?:(Single)|Multiple)$//) { + warn "'Single' and 'Multiple' on SetType deprecated, use SetMaxValues instead"; + $self->SetMaxValues($1 ? 1 : 0); + } + $self->SUPER::SetType($type); +} + # {{{ SingleValue =head2 SingleValue @@ -499,7 +648,17 @@ Returns false if it accepts multiple values sub SingleValue { my $self = shift; - if ($self->Type =~ /Single$/) { + if ($self->MaxValues == 1) { + return 1; + } + else { + return undef; + } +} + +sub UnlimitedValues { + my $self = shift; + if ($self->MaxValues == 0) { return 1; } else { @@ -518,14 +677,13 @@ Helper function to call the custom field's queue's CurrentUserHasRight with the =cut sub CurrentUserHasRight { - my $self = shift; + my $self = shift; my $right = shift; - # if there's no queue, we want to know about a global right - if ( ( !defined $self->__Value('Queue') ) || ( $self->__Value('Queue') == 0 ) ) { - return $self->CurrentUser->HasRight( Object => $RT::System, Right => $right); - } else { - return ( $self->QueueObj->CurrentUserHasRight($right) ); - } + + return $self->CurrentUser->HasRight( + Object => $self, + Right => $right, + ); } # }}} @@ -535,7 +693,7 @@ sub CurrentUserHasRight { sub _Set { my $self = shift; - unless ( $self->CurrentUserHasRight('AdminCustomFields') ) { + unless ( $self->CurrentUserHasRight('AdminCustomField') ) { return ( 0, $self->loc('Permission Denied') ); } return ( $self->SUPER::_Set(@_) ); @@ -558,16 +716,10 @@ sub _Value { my $self = shift; my $field = shift; - # We need to expose the queue so that we can do things like ACL checks - if ( $field eq 'Queue') { - return ( $self->SUPER::_Value($field) ); - } - - - #Anybody can see global custom fields, otherwise we need to do the rights check - unless ( $self->__Value('Queue') == 0 || $self->CurrentUserHasRight( 'SeeQueue') ) { - return (undef); - } + # we need to do the rights check + unless ( $self->id && $self->CurrentUserHasRight( 'SeeCustomField') ) { + return (undef); + } return ( $self->__Value($field) ); } @@ -585,4 +737,368 @@ Takes a boolean. # }}} +sub Queue { + $RT::Logger->debug( ref($_[0]) . " -> Queue deprecated"); + + return 0; +} + +sub SetQueue { + $RT::Logger->debug( ref($_[0]) . " -> SetQueue deprecated"); + + return 0; +} + +sub QueueObj { + $RT::Logger->debug( ref($_[0]) . " -> QueueObj deprecated"); + + return undef; +} + +=head2 SetTypeComposite + +Set this custom field's type and maximum values as a composite value + + +=cut + +sub SetTypeComposite { + my $self = shift; + my $composite = shift; + my ($type, $max_values) = split(/-/, $composite, 2); + $self->SetType($type); + $self->SetMaxValues($max_values); +} + +=head2 SetLookupType + +Autrijus: care to doc how LookupTypes work? + +=cut + +sub SetLookupType { + my $self = shift; + my $lookup = shift; + if ($lookup ne $self->LookupType) { + # Okay... We need to invalidate our existing relationships + my $ObjectCustomFields = RT::ObjectCustomFields->new($self->CurrentUser); + $ObjectCustomFields->LimitToCustomField($self->Id); + $_->Delete foreach @{$ObjectCustomFields->ItemsArrayRef}; + } + $self->SUPER::SetLookupType($lookup); +} + +=head2 TypeComposite + +Returns a composite value composed of this object's type and maximum values + +=cut + + +sub TypeComposite { + my $self = shift; + join('-', $self->Type, $self->MaxValues); +} + +=head2 TypeComposites + +Returns an array of all possible composite values for custom fields. + +=cut + +sub TypeComposites { + my $self = shift; + return grep !/Text-0/, map { ("$_-1", "$_-0") } $self->Types; +} + +=head2 LookupTypes + +Returns an array of LookupTypes available + +=cut + + +sub LookupTypes { + my $self = shift; + return keys %FRIENDLY_OBJECT_TYPES; +} + +my @FriendlyObjectTypes = ( + "[_1] objects", # loc + "[_1]'s [_2] objects", # loc + "[_1]'s [_2]'s [_3] objects", # loc +); + +=head2 FriendlyTypeLookup + +=cut + +sub FriendlyLookupType { + my $self = shift; + my $lookup = shift || $self->LookupType; + + return ($self->loc( $FRIENDLY_OBJECT_TYPES{$lookup} )) + if (defined $FRIENDLY_OBJECT_TYPES{$lookup} ); + + my @types = map { s/^RT::// ? $self->loc($_) : $_ } + grep { defined and length } + split( /-/, $lookup ) + or return; + return ( $self->loc( $FriendlyObjectTypes[$#types], @types ) ); +} + + +=head2 AddToObject OBJECT + +Add this custom field as a custom field for a single object, such as a queue or group. + +Takes an object + +=cut + + +sub AddToObject { + my $self = shift; + my $object = shift; + my $id = $object->Id || 0; + + unless (index($self->LookupType, ref($object)) == 0) { + return ( 0, $self->loc('Lookup type mismatch') ); + } + + unless ( $object->CurrentUserHasRight('AssignCustomFields') ) { + return ( 0, $self->loc('Permission Denied') ); + } + + my $ObjectCF = RT::ObjectCustomField->new( $self->CurrentUser ); + + $ObjectCF->LoadByCols( ObjectId => $id, CustomField => $self->Id ); + if ( $ObjectCF->Id ) { + return ( 0, $self->loc("That is already the current value") ); + } + my ( $id, $msg ) = + $ObjectCF->Create( ObjectId => $id, CustomField => $self->Id ); + + return ( $id, $msg ); +} + + +=head2 RemoveFromObject OBJECT + +Remove this custom field for a single object, such as a queue or group. + +Takes an object + +=cut + + +sub RemoveFromObject { + my $self = shift; + my $object = shift; + my $id = $object->Id || 0; + + unless (index($self->LookupType, ref($object)) == 0) { + return ( 0, $self->loc('Object type mismatch') ); + } + + unless ( $object->CurrentUserHasRight('AssignCustomFields') ) { + return ( 0, $self->loc('Permission Denied') ); + } + + my $ObjectCF = RT::ObjectCustomField->new( $self->CurrentUser ); + + $ObjectCF->LoadByCols( ObjectId => $id, CustomField => $self->Id ); + unless ( $ObjectCF->Id ) { + return ( 0, $self->loc("This custom field does not apply to that object") ); + } + my ( $id, $msg ) = $ObjectCF->Delete; + + return ( $id, $msg ); +} + +# {{{ AddValueForObject + +=head2 AddValueForObject HASH + +Adds a custom field value for a record object of some kind. +Takes a param hash of + +Required: + + Object + Content + +Optional: + + LargeContent + ContentType + +=cut + +sub AddValueForObject { + my $self = shift; + my %args = ( + Object => undef, + Content => undef, + LargeContent => undef, + ContentType => undef, + @_ + ); + my $obj = $args{'Object'} or return; + + unless ( $self->CurrentUserHasRight('ModifyCustomField') ) { + return ( 0, $self->loc('Permission Denied') ); + } + + $RT::Handle->BeginTransaction; + + my $current_values = $self->ValuesForObject($obj); + + if ( $self->MaxValues ) { + my $extra_values = ( $current_values->Count + 1 ) - $self->MaxValues; + + # (The +1 is for the new value we're adding) + + # If we have a set of current values and we've gone over the maximum + # allowed number of values, we'll need to delete some to make room. + # which former values are blown away is not guaranteed + + while ($extra_values) { + my $extra_item = $current_values->Next; + + unless ( $extra_item->id ) { + $RT::Logger->crit( +"We were just asked to delete a custom fieldvalue that doesn't exist!" + ); + $RT::Handle->Rollback(); + return (undef); + } + $extra_item->Delete; + $extra_values--; + + } + } + my $newval = RT::ObjectCustomFieldValue->new( $self->CurrentUser ); + my $val = $newval->Create( + ObjectType => ref($obj), + ObjectId => $obj->Id, + Content => $args{'Content'}, + LargeContent => $args{'LargeContent'}, + ContentType => $args{'ContentType'}, + CustomField => $self->Id + ); + + unless ($val) { + $RT::Handle->Rollback(); + return ($val); + } + + $RT::Handle->Commit(); + return ($val); + +} + +# }}} + +# {{{ DeleteValueForObject + +=head2 DeleteValueForObject HASH + +Deletes a custom field value for a ticket. Takes a param hash of Object and Content + +Returns a tuple of (STATUS, MESSAGE). If the call succeeded, the STATUS is true. otherwise it's false + +=cut + +sub DeleteValueForObject { + my $self = shift; + my %args = ( Object => undef, + Content => undef, + Id => undef, + @_ ); + + + unless ($self->CurrentUserHasRight('ModifyCustomField')) { + return (0, $self->loc('Permission Denied')); + } + + my $oldval = RT::ObjectCustomFieldValue->new($self->CurrentUser); + + if (my $id = $args{'Id'}) { + $oldval->Load($id); + } + unless ($oldval->id) { + $oldval->LoadByObjectContentAndCustomField( + Object => $args{'Object'}, + Content => $args{'Content'}, + CustomField => $self->Id, + ); + } + + + # check ot make sure we found it + unless ($oldval->Id) { + return(0, $self->loc("Custom field value [_1] could not be found for custom field [_2]", $args{'Content'}, $self->Name)); + } + # delete it + + my $ret = $oldval->Delete(); + unless ($ret) { + return(0, $self->loc("Custom field value could not be found")); + } + return($oldval->Id, $self->loc("Custom field value deleted")); +} + + +=head2 ValuesForObject OBJECT + +Return an RT::ObjectCustomFieldValues object containing all of this custom field's values for OBJECT + +=cut + +sub ValuesForObject { + my $self = shift; + my $object = shift; + + my $values = new RT::ObjectCustomFieldValues($self->CurrentUser); + unless ($self->CurrentUserHasRight('SeeCustomField')) { + # Return an empty object if they have no rights to see + return ($values); + } + + + $values->LimitToCustomField($self->Id); + $values->LimitToEnabled(); + $values->LimitToObject($object); + + return ($values); +} + + +=head2 _ForObjectType PATH FRIENDLYNAME + +Tell RT that a certain object accepts custom fields + +Examples: + + 'RT::Queue-RT::Ticket' => "Tickets", # loc + 'RT::Queue-RT::Ticket-RT::Transaction' => "Ticket Transactions", # loc + 'RT::User' => "Users", # loc + 'RT::Group' => "Groups", # loc + +This is a class method. + +=cut + +sub _ForObjectType { + my $self = shift; + my $path = shift; + my $friendly_name = shift; + + $FRIENDLY_OBJECT_TYPES{$path} = $friendly_name; + +} + +# }}} + 1; diff --git a/rt/lib/RT/CustomFields.pm b/rt/lib/RT/CustomFields.pm index b1e48df39..aac2d4b59 100644 --- a/rt/lib/RT/CustomFields.pm +++ b/rt/lib/RT/CustomFields.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -83,10 +83,15 @@ sub _Init { - # By default, order by name - $self->OrderBy( ALIAS => 'main', - FIELD => 'SortOrder', - ORDER => 'ASC'); + # By default, order by SortOrder + $self->OrderByCols( + { ALIAS => 'main', + FIELD => 'SortOrder', + ORDER => 'ASC' }, + { ALIAS => 'main', + FIELD => 'id', + ORDER => 'ASC' }, + ); return ( $self->SUPER::_Init(@_) ); } @@ -129,7 +134,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/CustomFields_Overlay.pm b/rt/lib/RT/CustomFields_Overlay.pm index b22e8b461..ca80fa2de 100644 --- a/rt/lib/RT/CustomFields_Overlay.pm +++ b/rt/lib/RT/CustomFields_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::CustomFields - a collection of RT CustomField objects @@ -64,13 +65,31 @@ ok (require RT::CustomFields); =cut + +package RT::CustomFields; + use strict; no warnings qw(redefine); +use DBIx::SearchBuilder::Unique; + + +sub _OCFAlias { + my $self = shift; + unless ($self->{_sql_ocfalias}) { + + $self->{'_sql_ocfalias'} = $self->NewAlias('ObjectCustomFields'); + $self->Join( ALIAS1 => 'main', + FIELD1 => 'id', + ALIAS2 => $self->_OCFAlias, + FIELD2 => 'CustomField' ); + } + return($self->{_sql_ocfalias}); +} # {{{ sub LimitToGlobalOrQueue -=item LimitToGlobalOrQueue QUEUEID +=head2 LimitToGlobalOrQueue QUEUEID Limits the set of custom fields found to global custom fields or those tied to the queue with ID QUEUEID @@ -79,8 +98,8 @@ Limits the set of custom fields found to global custom fields or those tied to t sub LimitToGlobalOrQueue { my $self = shift; my $queue = shift; - $self->LimitToQueue($queue); - $self->LimitToGlobal(); + $self->LimitToGlobalOrObjectId( $queue ); + $self->LimitToLookupType( 'RT::Queue-RT::Ticket' ); } # }}} @@ -99,11 +118,12 @@ sub LimitToQueue { my $self = shift; my $queue = shift; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Queue', + $self->Limit (ALIAS => $self->_OCFAlias, + ENTRYAGGREGATOR => 'OR', + FIELD => 'ObjectId', VALUE => "$queue") if defined $queue; - + $self->LimitToLookupType( 'RT::Queue-RT::Ticket' ); } # }}} @@ -121,10 +141,11 @@ another call to this method or LimitToQueue sub LimitToGlobal { my $self = shift; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Queue', + $self->Limit (ALIAS => $self->_OCFAlias, + ENTRYAGGREGATOR => 'OR', + FIELD => 'ObjectId', VALUE => 0); - + $self->LimitToLookupType( 'RT::Queue-RT::Ticket' ); } # }}} @@ -133,9 +154,9 @@ sub LimitToGlobal { =head2 _DoSearch - A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled ro -ws never get seen unless -we're explicitly trying to see them. +A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that + _Disabled rows never get seen unless we're explicitly trying to see +them. =cut @@ -152,6 +173,91 @@ sub _DoSearch { } # }}} + +# {{{ sub Next + +=head2 Next + +Returns the next custom field that this user can see. + +=cut + +sub Next { + my $self = shift; + + + my $CF = $self->SUPER::Next(); + if ((defined($CF)) and (ref($CF))) { + + if ($CF->CurrentUserHasRight('SeeCustomField')) { + return($CF); + } + + #If the user doesn't have the right to show this queue + else { + return($self->Next()); + } + } + #if there never was any queue + else { + return(undef); + } + +} +# }}} + +sub LimitToLookupType { + my $self = shift; + my $lookup = shift; + + $self->Limit( FIELD => 'LookupType', VALUE => "$lookup" ); +} + +sub LimitToChildType { + my $self = shift; + my $lookup = shift; + + $self->Limit( FIELD => 'LookupType', VALUE => "$lookup" ); + $self->Limit( FIELD => 'LookupType', ENDSWITH => "$lookup" ); +} + +sub LimitToParentType { + my $self = shift; + my $lookup = shift; + + $self->Limit( FIELD => 'LookupType', VALUE => "$lookup" ); + $self->Limit( FIELD => 'LookupType', STARTSWITH => "$lookup" ); +} + +sub LimitToGlobalOrObjectId { + my $self = shift; + my $global_only = 1; + + + foreach my $id (@_) { + $self->Limit( ALIAS => $self->_OCFAlias, + FIELD => 'ObjectId', + OPERATOR => '=', + VALUE => $id || 0, + ENTRYAGGREGATOR => 'OR' ); + $global_only = 0 if $id; + } + + $self->Limit( ALIAS => $self->_OCFAlias, + FIELD => 'ObjectId', + OPERATOR => '=', + VALUE => 0, + ENTRYAGGREGATOR => 'OR' ) unless $global_only; + + $self->OrderByCols( + { ALIAS => $self->_OCFAlias, FIELD => 'ObjectId' }, + { ALIAS => $self->_OCFAlias, FIELD => 'SortOrder' }, + ); + + # This doesn't work on postgres. + #$self->OrderBy( ALIAS => $class_cfs , FIELD => "SortOrder", ORDER => 'ASC'); + +} 1; diff --git a/rt/lib/RT/Date.pm b/rt/lib/RT/Date.pm index a000b8d00..620acc759 100644 --- a/rt/lib/RT/Date.pm +++ b/rt/lib/RT/Date.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Date - a simple Object Oriented date. @@ -398,6 +399,7 @@ sub AsString { # }}} # {{{ GetWeekday + =head2 GetWeekday DAY Takes an integer day of week and returns a localized string for that day of week @@ -420,6 +422,7 @@ sub GetWeekday { # }}} # {{{ GetMonth + =head2 GetMonth DAY Takes an integer month and returns a localized string for that month @@ -572,6 +575,7 @@ sub W3CDTF { # }}} # {{{ sub LocalTimezone + =head2 LocalTimezone Returns the current timezone. For now, draws off a system timezone, RT::Timezone. Eventually, this may diff --git a/rt/lib/RT/EmailParser.pm b/rt/lib/RT/EmailParser.pm index 8ed810c56..3a99e5a5e 100644 --- a/rt/lib/RT/EmailParser.pm +++ b/rt/lib/RT/EmailParser.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::EmailParser; @@ -77,6 +77,7 @@ ok(require RT::EmailParser); =head2 new +Returns a new RT::EmailParser object =cut @@ -89,96 +90,12 @@ sub new { } - -# {{{ sub debug - -sub debug { - my $val = shift; - my ($debug); - if ($val) { - $RT::Logger->debug( $val . "\n" ); - if ($debug) { - print STDERR "$val\n"; - } - } - if ($debug) { - return (1); - } -} - -# }}} - -# {{{ sub CheckForLoops - -sub CheckForLoops { - my $self = shift; - - my $head = $self->Head; - - #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 =~ /^\Q$RT::rtname\E/o ) { - 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); -} - -# }}} - -# {{{ sub CheckForSuspiciousSender - -sub CheckForSuspiciousSender { - my $self = 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 ) = $self->ParseSenderAddressFromHead(); - - if ( ( $From =~ /^mailer-daemon/i ) or ( $From =~ /^postmaster/i ) ) { - return (1); - - } - - return (undef); - -} - -# }}} - -# {{{ sub CheckForAutoGenerated -sub CheckForAutoGenerated { - my $self = shift; - my $head = $self->Head; - - my $Precedence = $head->get("Precedence") || ""; - if ( $Precedence =~ /^(bulk|junk)/i ) { - return (1); - } - else { - return (undef); - } -} - -# }}} - +# {{{ sub SmartParseMIMEEntityFromScalar =head2 SmartParseMIMEEntityFromScalar { Message => SCALAR_REF, Decode => BOOL } Parse a message stored in a scalar from scalar_ref - =cut sub SmartParseMIMEEntityFromScalar { @@ -223,8 +140,16 @@ sub SmartParseMIMEEntityFromScalar { } +# }}} + # {{{ sub ParseMIMEEntityFromSTDIN +=head2 ParseMIMEEntityFromSTDIN + +Parse a message from standard input + +=cut + sub ParseMIMEEntityFromSTDIN { my $self = shift; my $postprocess = (@_ ? shift : 1); @@ -233,6 +158,8 @@ sub ParseMIMEEntityFromSTDIN { # }}} +# {{{ ParseMIMEEntityFromScalar + =head2 ParseMIMEEntityFromScalar $message Takes either a scalar or a reference to a scalr which contains a stringified MIME message. @@ -241,7 +168,6 @@ Parses it. Returns true if it wins. Returns false if it loses. - =cut sub ParseMIMEEntityFromScalar { @@ -251,6 +177,7 @@ sub ParseMIMEEntityFromScalar { $self->_ParseMIMEEntity($message,'parse_data', $postprocess); } +# }}} # {{{ ParseMIMEEntityFromFilehandle *FH @@ -285,8 +212,8 @@ sub ParseMIMEEntityFromFile { } # }}} -# -# {{{ _ParseMIMEEntity { + +# {{{ _ParseMIMEEntity sub _ParseMIMEEntity { my $self = shift; my $message = shift; @@ -314,7 +241,6 @@ sub _ParseMIMEEntity { } - # }}} # {{{ _PostProcessNewEntity @@ -330,12 +256,17 @@ sub _PostProcessNewEntity { #Now we've got a parsed mime object. + # Unfold headers that are have embedded newlines + # Better do this before conversion or it will break + # with multiline encoded Subject (RFC2047) (fsck.com #5594) + + $self->Head->unfold; + + # try to convert text parts into utf-8 charset RT::I18N::SetMIMEEntityToEncoding($self->{'entity'}, 'utf-8'); - # Unfold headers that are have embedded newlines - $self->Head->unfold; } @@ -346,17 +277,10 @@ sub _PostProcessNewEntity { sub ParseTicketId { my $self = shift; + $RT::Logger->warnings("RT::EmailParser->ParseTicketId deprecated. You should be using RT::Interface::Email"); - my $Subject = shift; - - if ( $Subject =~ s/\[\Q$RT::rtname\E\s+\#(\d+)\s*\]//i ) { - my $id = $1; - $RT::Logger->debug("Found a ticket ID. It's $id"); - return ($id); - } - else { - return (undef); - } + require RT::Interface::Email; + RT::Interface::Email::ParseTicketId(@_); } # }}} @@ -393,10 +317,10 @@ sub ParseCcAddressesFromHead { my $Address = $AddrObj->address; my $user = RT::User->new($RT::SystemUser); $Address = $user->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 ( IsRTAddress($Address) ); + next if ( lc $args{'CurrentUser'}->EmailAddress eq lc $Address ); + next if ( lc $args{'QueueObj'}->CorrespondAddress eq lc $Address ); + next if ( lc $args{'QueueObj'}->CommentAddress eq lc $Address ); + next if ( $self->IsRTAddress($Address) ); push ( @Addresses, $Address ); } @@ -489,7 +413,7 @@ sub ParseAddressFromHeader { # {{{ IsRTAddress -=item IsRTaddress ADDRESS +=head2 IsRTaddress ADDRESS Takes a single parameter, an email address. Returns true if that address matches the $RTAddressRegexp. @@ -523,7 +447,7 @@ sub IsRTAddress { # {{{ CullRTAddresses -=item CullRTAddresses ARRAY +=head2 CullRTAddresses ARRAY Takes a single argument, an array of email addresses. Returns the same array with any IsRTAddress()es weeded out. @@ -544,7 +468,10 @@ sub CullRTAddresses { my @addrlist; foreach my $addr( @addresses ) { - push (@addrlist, $addr) unless IsRTAddress("", $addr); + # We use the class instead of the instance + # because sloppy code calls this method + # without a $self + push (@addrlist, $addr) unless RT::EmailParser->IsRTAddress($addr); } return (@addrlist); } @@ -568,7 +495,7 @@ sub CullRTAddresses { # template for the rejection message. -=item LookupExternalUserInfo +=head2 LookupExternalUserInfo LookupExternalUserInfo is a site-definable method for synchronizing incoming users with an external data source. @@ -581,12 +508,12 @@ sub CullRTAddresses { It returns (FoundInExternalDatabase, ParamHash); - FoundInExternalDatabase must be set to 1 before return if the user was - found in the external database. + FoundInExternalDatabase must be set to 1 before return if the user + was found in the external database. - ParamHash is a Perl parameter hash which can contain at least the following - fields. These fields are used to populate RT's users database when the user - is created + ParamHash is a Perl parameter hash which can contain at least the + following fields. These fields are used to populate RT's users + database when the user is created. EmailAddress is the email address that RT should use for this user. Name is the 'Name' attribute RT should use for this user. @@ -641,6 +568,7 @@ sub Entity { } # }}} + # {{{ _SetupMIMEParser =head2 _SetupMIMEParser $parser @@ -686,7 +614,6 @@ sub _SetupMIMEParser { # Temp files should never be recycled, especially when running under perl taint checking $parser->tmp_recycling(0); - } diff --git a/rt/lib/RT/Group.pm b/rt/lib/RT/Group.pm index 60f7fb71e..04c307652 100755 --- a/rt/lib/RT/Group.pm +++ b/rt/lib/RT/Group.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -224,17 +224,17 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Description => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, Domain => - {read => 1, write => 1, type => 'varchar(64)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 64, is_blob => 0, is_numeric => 0, type => 'varchar(64)', default => ''}, Type => - {read => 1, write => 1, type => 'varchar(64)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 64, is_blob => 0, is_numeric => 0, type => 'varchar(64)', default => ''}, Instance => - {read => 1, write => 1, type => 'int(11)', default => ''}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, } }; @@ -266,7 +266,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +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 e11651956..692303a8a 100755 --- a/rt/lib/RT/GroupMember.pm +++ b/rt/lib/RT/GroupMember.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -161,11 +161,11 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, GroupId => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, MemberId => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, } }; @@ -197,7 +197,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/GroupMember_Overlay.pm b/rt/lib/RT/GroupMember_Overlay.pm index 5ff7b3e7f..d824dc4b3 100644 --- a/rt/lib/RT/GroupMember_Overlay.pm +++ b/rt/lib/RT/GroupMember_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::GroupMember - a member of an RT Group @@ -72,6 +73,9 @@ ok (require RT::GroupMember); =cut + +package RT::GroupMember; + use strict; no warnings qw(redefine); use RT::CachedGroupMembers; @@ -120,7 +124,7 @@ sub Create { #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. # TODO what about the groups key cache? - RT::Principal->_InvalidateACLCache(); + RT::Principal->InvalidateACLCache(); $RT::Handle->BeginTransaction() unless ($args{'InsideTransaction'}); @@ -229,7 +233,7 @@ sub _StashUser { #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. # TODO what about the groups key cache? - RT::Principal->_InvalidateACLCache(); + RT::Principal->InvalidateACLCache(); # We really need to make sure we don't add any members to this group @@ -303,9 +307,6 @@ sub Delete { VALUE => $self->GroupObj->Id ); - #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. - # TODO what about the groups key cache? - RT::Principal->_InvalidateACLCache(); @@ -319,12 +320,27 @@ sub Delete { } } - my $err = $self->SUPER::Delete(); + my ($err, $msg) = $self->SUPER::Delete(); unless ($err) { $RT::Logger->warning("Couldn't delete cached group submember ".$self->Id); $RT::Handle->Rollback(); return (undef); } + + # Since this deletion may have changed the former member's + # delegation rights, we need to ensure that no invalid delegations + # remain. + $err = $self->MemberObj->_CleanupInvalidDelegations(InsideTransaction => 1); + unless ($err) { + $RT::Logger->warning("Unable to revoke delegated rights for principal ".$self->Id); + $RT::Handle->Rollback(); + return (undef); + } + + #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. + # TODO what about the groups key cache? + RT::Principal->InvalidateACLCache(); + $RT::Handle->Commit(); return ($err); diff --git a/rt/lib/RT/GroupMembers.pm b/rt/lib/RT/GroupMembers.pm index bd74c5155..2cf2cd3f3 100755 --- a/rt/lib/RT/GroupMembers.pm +++ b/rt/lib/RT/GroupMembers.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/GroupMembers_Overlay.pm b/rt/lib/RT/GroupMembers_Overlay.pm index 6814c5353..1b6f9312d 100644 --- a/rt/lib/RT/GroupMembers_Overlay.pm +++ b/rt/lib/RT/GroupMembers_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::GroupMembers - a collection of RT::GroupMember objects @@ -65,6 +66,9 @@ ok (require RT::GroupMembers); =cut + +package RT::GroupMembers; + use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/Group_Overlay.pm b/rt/lib/RT/Group_Overlay.pm index 69ada31a0..41cf49732 100644 --- a/rt/lib/RT/Group_Overlay.pm +++ b/rt/lib/RT/Group_Overlay.pm @@ -1,9 +1,9 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -43,7 +43,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} # Released under the terms of version 2 of the GNU Public License =head1 NAME @@ -52,21 +52,13 @@ =head1 SYNOPSIS - use RT::Group; +use RT::Group; my $group = new RT::Group($CurrentUser); =head1 DESCRIPTION An RT group object. -=head1 AUTHOR - -Jesse Vincent, jesse@bestpractical.com - -=head1 SEE ALSO - -RT - =head1 METHODS @@ -154,6 +146,9 @@ ok($group_3->HasMemberRecursively($principal_2) == undef, "group 3 has member 2 =cut + +package RT::Group; + use strict; no warnings qw(redefine); @@ -171,6 +166,7 @@ $RIGHTS = { ModifyOwnMembership => 'Join or leave this group', # loc_pair EditSavedSearches => 'Edit saved searches for this group', # loc_pair ShowSavedSearches => 'Display saved searches for this group', # loc_pair + SeeGroup => 'Make this group visible to user', # loc_pair }; # Tell RT::ACE that this sort of object can get acls granted @@ -435,6 +431,7 @@ sub LoadSystemRoleGroup { # }}} # {{{ sub Create + =head2 Create You need to specify what sort of group you're creating by calling one of the other @@ -469,6 +466,7 @@ sub _Create { Type => undef, Instance => '0', InsideTransaction => undef, + _RecordTransaction => 1, @_ ); @@ -514,8 +512,12 @@ sub _Create { $cgm->Create(Group =>$self->PrincipalObj, Member => $self->PrincipalObj, ImmediateParent => $self->PrincipalObj); + if ( $args{'_RecordTransaction'} ) { + $self->_NewTransaction( Type => "Create" ); + } $RT::Handle->Commit() unless ($args{'InsideTransaction'}); + return ( $id, $self->loc("Group created") ); } @@ -710,6 +712,7 @@ If passed a positive value, this group will be disabled. No rights it commutes o It will not appear in most group listings. This routine finds all the cached group members that are members of this group (recursively) and disables them. + =cut # }}} @@ -754,7 +757,7 @@ This routine finds all the cached group members that are members of this group #Clear the key cache. TODO someday we may want to just clear a little bit of the keycache space. # TODO what about the groups key cache? - RT::Principal->_InvalidateACLCache(); + RT::Principal->InvalidateACLCache(); @@ -786,7 +789,8 @@ sub Disabled { =head2 DeepMembersObj -Returns an RT::CachedGroupMembers object of this group's members. +Returns an RT::CachedGroupMembers object of this group's members, +including all members of subgroups. =cut @@ -839,7 +843,7 @@ sub UserMembersObj { =head2 MembersObj -Returns an RT::CachedGroupMembers object of this group's members. +Returns an RT::GroupMembers object of this group's direct members. =cut @@ -1165,11 +1169,70 @@ sub _DeleteMember { # }}} +# {{{ sub _CleanupInvalidDelegations + +=head2 _CleanupInvalidDelegations { InsideTransaction => undef } + +Revokes all ACE entries delegated by members of this group which are +inconsistent with their current delegation rights. Does not perform +permission checks. Should only ever be called from inside the RT +library. + +If called from inside a transaction, specify a true value for the +InsideTransaction parameter. + +Returns a true value if the deletion succeeded; returns a false value +and logs an internal error if the deletion fails (should not happen). + +=cut + +# XXX Currently there is a _CleanupInvalidDelegations method in both +# RT::User and RT::Group. If the recursive cleanup call for groups is +# ever unrolled and merged, this code will probably want to be +# factored out into RT::Principal. + +sub _CleanupInvalidDelegations { + my $self = shift; + my %args = ( InsideTransaction => undef, + @_ ); + + unless ( $self->Id ) { + $RT::Logger->warning("Group not loaded."); + return (undef); + } + + my $in_trans = $args{InsideTransaction}; + + # TODO: Can this be unrolled such that the number of DB queries is constant rather than linear in exploded group size? + my $members = $self->DeepMembersObj(); + $members->LimitToUsers(); + $RT::Handle->BeginTransaction() unless $in_trans; + while ( my $member = $members->Next()) { + my $ret = $member->MemberObj->_CleanupInvalidDelegations(InsideTransaction => 1, + Object => $args{Object}); + unless ($ret) { + $RT::Handle->Rollback() unless $in_trans; + return (undef); + } + } + $RT::Handle->Commit() unless $in_trans; + return(1); +} + +# }}} + # {{{ ACL Related routines # {{{ sub _Set sub _Set { my $self = shift; + my %args = ( + Field => undef, + Value => undef, + TransactionType => 'Set', + RecordTransaction => 1, + @_ + ); if ($self->Domain eq 'Personal') { if ($self->CurrentUser->PrincipalId == $self->Instance) { @@ -1187,7 +1250,30 @@ sub _Set { return ( 0, $self->loc('Permission Denied') ); } } - return ( $self->SUPER::_Set(@_) ); + + my $Old = $self->SUPER::_Value("$args{'Field'}"); + + my ($ret, $msg) = $self->SUPER::_Set( Field => $args{'Field'}, + Value => $args{'Value'} ); + + #If we can't actually set the field to the value, don't record + # a transaction. instead, get out of here. + if ( $ret == 0 ) { return ( 0, $msg ); } + + if ( $args{'RecordTransaction'} == 1 ) { + + my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( + Type => $args{'TransactionType'}, + Field => $args{'Field'}, + NewValue => $args{'Value'}, + OldValue => $Old, + TimeTaken => $args{'TimeTaken'}, + ); + return ( $Trans, scalar $TransObj->Description ); + } + else { + return ( $ret, $msg ); + } } # }}} @@ -1195,7 +1281,7 @@ sub _Set { -=item CurrentUserHasRight RIGHTNAME +=head2 CurrentUserHasRight RIGHTNAME Returns true if the current user has the specified right for this group. @@ -1275,5 +1361,21 @@ sub PrincipalId { } # }}} + +sub BasicColumns { + ( + [ Name => 'Name' ], + [ Description => 'Description' ], + ); +} + 1; +=head1 AUTHOR + +Jesse Vincent, jesse@bestpractical.com + +=head1 SEE ALSO + +RT + diff --git a/rt/lib/RT/Groups.pm b/rt/lib/RT/Groups.pm index 1c4278c74..46337f7be 100755 --- a/rt/lib/RT/Groups.pm +++ b/rt/lib/RT/Groups.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +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 732236c96..cf29114dc 100644 --- a/rt/lib/RT/Groups_Overlay.pm +++ b/rt/lib/RT/Groups_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Groups - a collection of RT::Group objects @@ -51,7 +52,7 @@ use RT::Groups; my $groups = $RT::Groups->new($CurrentUser); - $groups->LimitToReal(); + $groups->UnLimit(); while (my $group = $groups->Next()) { print $group->Id ." is a group id\n"; } @@ -70,6 +71,9 @@ ok (require RT::Groups); =cut + +package RT::Groups; + use strict; no warnings qw(redefine); @@ -145,8 +149,7 @@ sub LimitToPersonalGroupsFor { $self->Limit(FIELD => 'Domain', OPERATOR => '=', VALUE => 'Personal'); $self->Limit( FIELD => 'Instance', OPERATOR => '=', - VALUE => $princ, - ENTRY_AGGREGATOR => 'OR'); + VALUE => $princ); } @@ -154,7 +157,7 @@ sub LimitToPersonalGroupsFor { # {{{ LimitToRolesForQueue -=item LimitToRolesForQueue QUEUE_ID +=head2 LimitToRolesForQueue QUEUE_ID Limits the set of groups found to role groups for queue QUEUE_ID @@ -171,7 +174,7 @@ sub LimitToRolesForQueue { # {{{ LimitToRolesForTicket -=item LimitToRolesForTicket Ticket_ID +=head2 LimitToRolesForTicket Ticket_ID Limits the set of groups found to role groups for Ticket Ticket_ID @@ -188,7 +191,7 @@ sub LimitToRolesForTicket { # {{{ LimitToRolesForSystem -=item LimitToRolesForSystem System_ID +=head2 LimitToRolesForSystem System_ID Limits the set of groups found to role groups for System System_ID @@ -251,7 +254,7 @@ sub WithMember { } -=head2 WithRight { Right => RIGHTNAME, Object => RT::Record, IncludeSystemRights => 1, IncludeSuperusers => 0 } +=head2 WithRight { Right => RIGHTNAME, Object => RT::Record, IncludeSystemRights => 1, IncludeSuperusers => 0, EquivObjects => [ ] } Find all groups which have RIGHTNAME for RT::Record. Optionally include global rights and superusers. By default, include the global rights, but not the superusers. @@ -284,6 +287,57 @@ $groups->WithRight(Right => 'OwnTicket', Object => $q); ok ($id,$msg); is($groups->Count, 2); +my $RTxGroup = RT::Group->new($RT::SystemUser); +($id, $msg) = $RTxGroup->CreateUserDefinedGroup( Name => 'RTxGroup', Description => "RTx extension group"); +ok ($id,$msg); + +my $RTxSysObj = {}; +bless $RTxSysObj, 'RTx::System'; +*RTx::System::Id = sub { 1; }; +*RTx::System::id = *RTx::System::Id; +my $ace = RT::Record->new($RT::SystemUser); +$ace->Table('ACL'); +$ace->_BuildTableAttributes unless ($_TABLE_ATTR->{ref($self)}); +($id, $msg) = $ace->Create( PrincipalId => $RTxGroup->id, PrincipalType => 'Group', RightName => 'RTxGroupRight', ObjectType => 'RTx::System', ObjectId => 1); +ok ($id, "ACL for RTxSysObj created"); + +my $RTxObj = {}; +bless $RTxObj, 'RTx::System::Record'; +*RTx::System::Record::Id = sub { 4; }; +*RTx::System::Record::id = *RTx::System::Record::Id; + +$groups = RT::Groups->new($RT::SystemUser); +$groups->WithRight(Right => 'RTxGroupRight', Object => $RTxSysObj); +is($groups->Count, 1, "RTxGroupRight found for RTxSysObj"); + +$groups = RT::Groups->new($RT::SystemUser); +$groups->WithRight(Right => 'RTxGroupRight', Object => $RTxObj); +is($groups->Count, 0, "RTxGroupRight not found for RTxObj"); + +$groups = RT::Groups->new($RT::SystemUser); +$groups->WithRight(Right => 'RTxGroupRight', Object => $RTxObj, EquivObjects => [ $RTxSysObj ]); +is($groups->Count, 1, "RTxGroupRight found for RTxObj using EquivObjects"); + +$ace = RT::Record->new($RT::SystemUser); +$ace->Table('ACL'); +$ace->_BuildTableAttributes unless ($_TABLE_ATTR->{ref($self)}); +($id, $msg) = $ace->Create( PrincipalId => $RTxGroup->id, PrincipalType => 'Group', RightName => 'RTxGroupRight', ObjectType => 'RTx::System::Record', ObjectId => 5 ); +ok ($id, "ACL for RTxObj created"); + +my $RTxObj2 = {}; +bless $RTxObj2, 'RTx::System::Record'; +*RTx::System::Record::Id = sub { 5; }; + +$groups = RT::Groups->new($RT::SystemUser); +$groups->WithRight(Right => 'RTxGroupRight', Object => $RTxObj2); +is($groups->Count, 1, "RTxGroupRight found for RTxObj2"); + +$groups = RT::Groups->new($RT::SystemUser); +$groups->WithRight(Right => 'RTxGroupRight', Object => $RTxObj2, EquivObjects => [ $RTxSysObj ]); +is($groups->Count, 1, "RTxGroupRight found for RTxObj2"); + + + =end testing @@ -296,6 +350,7 @@ sub WithRight { Object => => undef, IncludeSystemRights => 1, IncludeSuperusers => undef, + EquivObjects => [ ], @_ ); my $acl = $self->NewAlias('ACL'); @@ -343,6 +398,10 @@ sub WithRight { else { $which_object = ''; } + foreach my $obj ( @{ $args{'EquivObjects'} } ) { + next unless ( UNIVERSAL::can( $obj, 'id' ) ); + $which_object .= "($acl.ObjectType = '" . ref( $obj ) . "' AND $acl.ObjectId = " . $obj->id . ") OR "; + } $which_object .= " ($acl.ObjectType = '" . ref($args{'Object'}) . "'" . " AND $acl.ObjectId = " . $args{'Object'}->Id . ") "; @@ -416,6 +475,28 @@ sub LimitToDeleted { } # }}} +# {{{ sub Next + +sub Next { + my $self = shift; + + # Don't show groups which the user isn't allowed to see. + + my $Group = $self->SUPER::Next(); + if ((defined($Group)) and (ref($Group))) { + unless ($Group->CurrentUserHasRight('SeeGroup')) { + return $self->Next(); + } + + return $Group; + } + else { + return undef; + } +} + + + sub _DoSearch { my $self = shift; diff --git a/rt/lib/RT/Handle.pm b/rt/lib/RT/Handle.pm index 8d4563b66..21ca1ace6 100644 --- a/rt/lib/RT/Handle.pm +++ b/rt/lib/RT/Handle.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Handle - RT's database handle @@ -89,7 +90,9 @@ sub Connect { my $self = shift; if ($RT::DatabaseType eq 'Oracle') { - $ENV{'NLS_LANG'} = ".UTF8"; + $ENV{'NLS_LANG'} = "AMERICAN_AMERICA.AL32UTF8"; + $ENV{'NLS_NCHAR'} = "AL32UTF8"; + } $self->SUPER::Connect( @@ -101,19 +104,23 @@ sub Connect { } -=item BuildDSN +=head2 BuildDSN Build the DSN for the RT database. doesn't take any parameters, draws all that from the config file. =cut +use File::Spec; sub BuildDSN { my $self = shift; # Unless the database port is a positive integer, we really don't want to pass it. $RT::DatabasePort = undef unless (defined $RT::DatabasePort && $RT::DatabasePort =~ /^(\d+)$/); $RT::DatabaseHost = undef unless (defined $RT::DatabaseHost && $RT::DatabaseHost ne ''); +$RT::DatabaseName = File::Spec->catfile($RT::VarPath, $RT::DatabaseName) + if ($RT::DatabaseType eq 'SQLite') and + not File::Spec->file_name_is_absolute($RT::DatabaseName); $self->SUPER::BuildDSN(Host => $RT::DatabaseHost, diff --git a/rt/lib/RT/I18N.pm b/rt/lib/RT/I18N.pm index af5ece012..affff981b 100644 --- a/rt/lib/RT/I18N.pm +++ b/rt/lib/RT/I18N.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::I18N - a base class for localization of RT @@ -98,9 +99,11 @@ ok(RT::I18N->Init); =cut sub Init { + require File::Glob; + # Load language-specific functions - foreach my $language ( glob(substr(__FILE__, 0, -3) . "/*.pm")) { - if ($language =~ /^([-\w.\/\\~:]+)$/) { + foreach my $language ( File::Glob::bsd_glob(substr(__FILE__, 0, -3) . "/*.pm")) { + if ($language =~ /^([-\w\s.\/\\~:]+)$/) { require $1; } else { @@ -117,6 +120,7 @@ sub Init { $_ => [ Gettext => (substr(__FILE__, 0, -3) . "/$_.po"), Gettext => "$RT::LocalLexiconPath/*/$_.po", + Gettext => "$RT::LocalLexiconPath/$_.po", ], } @lang }); @@ -318,6 +322,20 @@ sub DecodeMIMEWordsToEncoding { } } + # XXX TODO: RT doesn't currently do the right thing with mime-encoded headers + # We _should_ be preserving them encoded until after parsing is completed and + # THEN undo the mime-encoding. + # + # This routine should be translating the existing mimeencoding to utf8 but leaving + # things encoded. + # + # It's legal for headers to contain mime-encoded commas and semicolons which + # should not be treated as address separators. (Encoding == quoting here) + # + # until this is fixed, we must escape any string containing a comma or semicolon + # this is only a bandaid + + $enc_str = qq{"$enc_str"} if ($enc_str =~ /[,;]/); $str .= $prefix . $enc_str . $trailing; } @@ -357,7 +375,6 @@ sub _FindOrGuessCharset { # }}} - # {{{ _GuessCharset =head2 _GuessCharset STRING @@ -423,6 +440,7 @@ sub SetMIMEHeadToEncoding { return if $charset eq $enc and $preserve_words; foreach my $tag ( $head->tags ) { + next unless $tag; # seen in wild: headers with no name my @values = $head->get_all($tag); $head->delete($tag); foreach my $value (@values) { diff --git a/rt/lib/RT/I18N/cs.pm b/rt/lib/RT/I18N/cs.pm index bb9786786..10ece3277 100644 --- a/rt/lib/RT/I18N/cs.pm +++ b/rt/lib/RT/I18N/cs.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::I18N::cs; # # CZECH TRANSLATORS COMMENTS see Locale::Maketext::TPJ13 diff --git a/rt/lib/RT/I18N/cs.po b/rt/lib/RT/I18N/cs.po index 7b0ef23bb..224a316eb 100644 --- a/rt/lib/RT/I18N/cs.po +++ b/rt/lib/RT/I18N/cs.po @@ -1,9 +1,9 @@ # msgid "" msgstr "" -"Project-Id-Version: RT 3.0.0\n" +"Project-Id-Version: RT 3.2.2\n" "POT-Creation-Date: 2002-05-02 11:36+0800\n" -"PO-Revision-Date: 2003-03-24 03:00+0800\n" +"PO-Revision-Date: 2005-01-21 00:00+0100\n" "Last-Translator: Jan Okrouhly <okrouhly@civ.zcu.cz>\n" "Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" "MIME-Version: 1.0\n" @@ -18,67 +18,64 @@ msgstr "#" msgid "#%1" msgstr "#%1" -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "#%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" msgstr "" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +#: NOT FOUND IN SOURCE msgid "%1 %2 %3" msgstr "%1 %2 %3" -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" msgstr "%1 %2 pÅ™idáno" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "- %1 %2" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%1 %2 zmÄ›nÄ›no na %3" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" msgstr "%1 %2 smazáno" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" msgstr "%1 %2 se vzorem %3" @@ -87,46 +84,46 @@ msgstr "%1 %2 se vzorem %3" msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 tento požadavek\\n" -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" -msgstr "" +msgstr ""%1 (%2) vytvoÅ™il %3" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" -msgstr "" +msgstr "%1 (NezmÄ›nÄ›n)" #: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "%1. až %2. zobrazený" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" msgstr "%1 - argument k pÅ™edání %2" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Výstupní stav jde do STDOUT" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Jaký akÄní modul chcete použít" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Jaký podmínkový modul chcete použít" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Jaký vyhledávací modul chcete použít" @@ -137,20 +134,29 @@ msgstr "%1 - Jaký vyhledávací modul chcete použít" $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 -#. ('»|«', $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 +#. ('»|«', + $RT::VERSION, + '2005', + '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "ScripAction %1 nahrána" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 pÅ™idáno jako hodnota pro %2" @@ -163,32 +169,31 @@ msgstr "%1 aliasy vyžadují k Äinnosti TicketId" msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1 aliasy vyžadují k Äinnosti TicketId (odesílatel %2) %3" -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($args{'Base'}) #. ($args{'Target'}) msgid "%1 appears to be a local object, but can't be found in the database" msgstr "%1 vypadá jako lokální objekt, ale není v databázi" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 uživatelem %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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") msgid "%1 changed from %2 to %3" msgstr "%1 zmÄ›nÄ›no z %2 na %3" -#: html/Search/Build.html:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" -msgstr "" +msgstr "kopie %1" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "%1 nemůže být nastaveno na %2." @@ -196,31 +201,36 @@ msgstr "%1 nemůže být nastaveno na %2." msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 nemůže zaÄít transakci (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 nemůže nastavit stav na vyÅ™eÅ¡en. RT databáze může být nekonzistentní." -#: html/Elements/MyTickets:24 -#. ($rows) -msgid "%1 highest priority tickets I own" +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) +msgid "%1 created" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I own..." -msgstr "%1 nejdůležitÄ›jších požadavků, které vlastním..." +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) +msgid "%1 deleted" +msgstr "" -#: html/Elements/MyTickets:26 +#: html/Elements/MyTickets:47 #. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "%1 nejdůležitÄ›jších požadavků, které vlastním" + +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I requested..." msgstr "%1 nejdůležitÄ›jších požadavků, které žádám..." -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "%1 je nástroj zpracující požadavky z vnÄ›jšího plánovacího nástroje jako je cron" -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 již není %2 této fronty." @@ -229,8 +239,7 @@ msgstr "%1 již není %2 této fronty." msgid "%1 is no longer a %2 for this ticket." msgstr "%1 již není %2 tohoto požadavku." -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a value for custom field %2" msgstr "%1 již není hodnotou uživatelské položky %2" @@ -238,7 +247,7 @@ msgstr "%1 již není hodnotou uživatelské položky %2" msgid "%1 isn't a valid Queue id." msgstr "%1 není platným identifikátorem fronty." -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -247,16 +256,20 @@ msgstr "%1 není platným identifikátorem fronty." msgid "%1 min" msgstr "%1 %quant(%1,minuta,minuty,minut,minut)" -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" -msgstr "" +msgstr "%1 nejnovÄ›jších nevlastnÄ›ných požadavků" #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 nezobrazeno" -#: html/User/Elements/DelegateRights:75 +#: lib/RT/CustomField_Overlay.pm:827 +msgid "%1 objects" +msgstr "" + +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "práva %1" @@ -273,7 +286,7 @@ msgstr "typ %1 neznámý pro $MessageId" msgid "%1 type unknown for %2" msgstr "typ %1 neznámý pro %2" -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 vyÅ™eší vÅ¡echny Äleny skupiny vyÅ™eÅ¡eného požadavku." @@ -282,28 +295,36 @@ msgstr "%1 vyÅ™eší vÅ¡echny Äleny skupiny vyÅ™eÅ¡eného požadavku." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 odloží [místní] BÃZI, je-li závislá [Äi Älenem] na spjatém požadavku." -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: lib/RT/CustomField_Overlay.pm:828 +msgid "%1's %2 objects" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:829 +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" -msgstr "" +msgstr "uložené dotazy %1" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1: neudána příloha" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "%1 B" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1 kB" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "%1 je neplatnou hodnotou pro stav" @@ -316,77 +337,81 @@ msgstr "%1 je neznámá akce." msgid "(Check box to delete scrip)" msgstr "(ZatrhnÄ›te pro smazání scripu)" -#: 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 +#: 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 "(ZatrhnÄ›te pro smazání)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "" +msgstr "(ZatrhnÄ›te pro zakázání upozorňování uvedených příjemců)" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "" +msgstr "(ZatrhnÄ›te pro povolení upozorňování uvedených příjemců)" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(Zadejte identifikátory Äi URL požadavku, oddÄ›lené mezerami)" -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: html/Admin/Queues/Modify.html:75 html/Admin/Queues/Modify.html:81 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) -msgid "(If left blank, will default to %1" +msgid "(If left blank, will default to %1)" msgstr "(Pro prázdné pole se použije %1)" -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "(Žádné uživatelské položky)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(Žádní Älenové)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "Žádné scripy" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "(Žádné vzory)" -#: html/Ticket/Update.html:66 +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 +msgid "(None)" +msgstr "" + +#: html/Ticket/Update.html:88 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 "(ZaÅ¡le skrytou kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" +msgstr "(ZaÅ¡le skrytou kopii této aktualizace Äárkami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" #: 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 "(ZaÅ¡le skrytou kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" +msgstr "(ZaÅ¡le skrytou kopii této aktualizace Äárkami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. Tito lidé <b>budou</b> dostávat budoucí aktualizace.)" +msgstr "(ZaÅ¡le kopii této aktualizace Äárkami oddÄ›lenému seznamu e-mail adres. Tito lidé <b>budou</b> dostávat budoucí aktualizace.)" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>NemÄ›ní</b> příjemce budoucích aktualizací" +msgstr "(ZaÅ¡le kopii této aktualizace Äárkami oddÄ›lenému seznamu e-mail adres. <b>NemÄ›ní</b> příjemce budoucích aktualizací" #: 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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" +msgstr "(ZaÅ¡le kopii této aktualizace Äárkami oddÄ›lenému seznamu e-mail adres. <b>Neovlivňuje</b> příjemce budoucích aktualizací.)" -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 "(ZaÅ¡le kopii této aktualizace mezerami oddÄ›lenému seznamu e-mail adres. Tito lidé <b>budou</b> dostávat budoucí aktualizace.)" +msgstr "(ZaÅ¡le kopii této aktualizace Äárkami oddÄ›lenému seznamu e-mail adres. Tito lidé <b>budou</b> dostávat budoucí aktualizace.)" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "" +msgstr "(Použijte tyto formuláře v případÄ› výbÄ›ru Uživatelen definované podmínky Äi akce)" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(prázdná)" -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "žádné jméno nebylo vypsáno" @@ -394,59 +419,55 @@ msgstr "žádné jméno nebylo vypsáno" msgid "(no subject)" msgstr "(bez pÅ™edmÄ›tu)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(bez hodnoty)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Admin/Elements/EditCustomFieldValues:47 +msgid "(no values)" +msgstr "" + +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(jen jeden požadavek)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(oÄekávájící schválení)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" -msgstr "" +msgstr "(probíhá jiná Sbírka)" #: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(jiné oÄekávající požadavky)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(povinné)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(nepojmenováno)" -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I own..." -msgstr "25 mnou vlastnÄ›ných nejdůležitÄ›jších požadavků..." - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I requested..." -msgstr "25 mnou žádaných nejdůležitÄ›jších požadavků..." - -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" -msgstr "<% $_ %>" +msgstr "" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"Nový požadavek v\"> %1" @@ -455,70 +476,86 @@ msgstr "<input type=\"submit\" value=\"Nový požadavek v\"> %1" msgid "A blank template" msgstr "Prázdný vzor" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "ACE nenalezeno" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "ACE mohou být jen vytvářeny nebo ruÅ¡eny." +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "PÅ™eruÅ¡eno k zamezení nežádoucích zmÄ›n požadavku.\\n" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "O mnÄ›" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "Řízení přístupu" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "Akce" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Akce %1 nenalezena" -#: bin/rt-crontool:119 +#: NOT FOUND IN SOURCE msgid "Action committed." msgstr "Akce provedena." -#: bin/rt-crontool:115 +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "" + +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "Akce pÅ™ipravena..." -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" -msgstr "" +msgstr "PÅ™idat" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "PÅ™idat AdminCc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "PÅ™idat Cc" -#: html/Search/Elements/PickCriteria:24 -msgid "Add Criteria" +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" msgstr "" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Search/Elements/PickCriteria:46 +msgid "Add Criteria" +msgstr "PÅ™idat podmínku" + +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "PÅ™idat další soubory" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "PÅ™idat Žadatele" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" -msgstr "" +msgstr "PÅ™idat hodnotu" #: NOT FOUND IN SOURCE msgid "Add a new a global scrip" @@ -528,49 +565,53 @@ msgstr "PÅ™idat nový globální scrip" msgid "Add a scrip to this queue" msgstr "PÅ™idat scrip k této frontÄ›" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" msgstr "PÅ™idat scrip do vÅ¡ech front" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" -msgstr "" +msgstr "PÅ™idat dodateÄnou podmínku" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "PÅ™idat komentáře Äi odpovÄ›di k vybraným požadavkům" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "PÅ™idat Äleny" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "PÅ™idat nové pozorovatele" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "" + #: NOT FOUND IN SOURCE msgid "AddNextState" msgstr "PÅ™idatDalšíStav" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Uživatel pÅ™idán do této fronty jako %1" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Uživatel pÅ™idán k tomuto požadavku jako %1" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "Adresa1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "Adresa2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "Admin Cc" @@ -582,7 +623,7 @@ msgstr "Administrativní komentář" msgid "Admin Correspondence" msgstr "Administrativní korespondence" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" msgstr "Správa/Front" @@ -590,7 +631,7 @@ msgstr "Správa/Front" msgid "Admin users" msgstr "Správa/Uživatelů" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "Správa/Globální konfigurace" @@ -606,7 +647,7 @@ msgstr "Správa/Front/Základních údajů" msgid "AdminAllPersonalGroups" msgstr "Spravovat vÅ¡echny osobní skupiny" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "AdminCc" @@ -618,43 +659,47 @@ msgstr "AdminComment" msgid "AdminCorrespondence" msgstr "AdminCorrespondence" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 +msgid "AdminCustomField" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "AdminCustomFields" msgstr "Spravovat uživatelem definované položky" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "Spravovat skupinu" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "Spravovat Älenství ve skupinách" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "Spravovat vlastní osobní skupiny" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "Spravovat frontu" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "Spravovat uživatele" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "Administrativní Cc" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" -msgstr "" +msgstr "PokroÄilé" #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "PokroÄilé Vyhledávání" -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "Po" @@ -662,15 +707,19 @@ msgstr "Po" msgid "Age" msgstr "Stáří" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "" + #: etc/initialdata:363 msgid "All Approvals Passed" -msgstr "" +msgstr "VÅ¡echna schvalování proÅ¡la" -#: html/Admin/Elements/EditCustomFields:94 +#: NOT FOUND IN SOURCE msgid "All Custom Fields" msgstr "VÅ¡echny uživatelské položky" -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "VÅ¡echny Fronty" @@ -678,31 +727,39 @@ msgstr "VÅ¡echny Fronty" msgid "Always sends a message to the requestors independent of message sender" msgstr "Vždy posílá zprávu žadatelům nezávisle na odesílateli" -#: html/Search/Edit.html:42 -msgid "Apply" +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" msgstr "" -#: html/Search/Edit.html:42 -msgid "Apply your changes" +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 +msgid "Applies to" msgstr "" -#: html/Elements/Tabs:58 +#: html/Search/Edit.html:64 +msgid "Apply" +msgstr "Provést" + +#: html/Search/Edit.html:64 +msgid "Apply your changes" +msgstr "Provést zmÄ›ny" + +#: html/Elements/Tabs:74 msgid "Approval" msgstr "Schvalování" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "Schválení #%1: $2" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Schválení #$1: Poznámky neuloženy kvůli systémové chybÄ›" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Schválení #%1: Poznámky uloženy" @@ -713,17 +770,17 @@ msgstr "Detaily schválení" #: etc/initialdata:351 msgid "Approval Passed" -msgstr "" +msgstr "Schvalování proÅ¡lo" #: etc/initialdata:374 msgid "Approval Rejected" -msgstr "" +msgstr "Schvalování odmítnuto" #: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "Schvalovací diagram" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "Schválit" @@ -731,48 +788,56 @@ msgstr "Schválit" msgid "Approver's notes: %1" msgstr "Poznámky schvalovatele: %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "dub" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "VzestupnÄ›" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: lib/RT/Queue_Overlay.pm:97 +msgid "Assign and remove custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:97 +msgid "AssignCustomFields" +msgstr "" + +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "PÅ™iložit" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "PÅ™ipojit soubor" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "PÅ™ipojený soubor" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 #. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Příloha '%1' nemůže být nahrána" -#: lib/RT/Transaction_Overlay.pm:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "Příloha vytvoÅ™ena" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "Jméno souboru přílohy" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "Přílohy" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" -msgstr "" +msgstr "Atribut smazán" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "srp" @@ -792,9 +857,9 @@ msgstr "Automaticky odpovÄ›z žadatelům" msgid "AutoreplyToRequestors" msgstr "Automatická odpovÄ›Ä Å¾adatelům" -#: html/Search/Elements/EditFormat:4 +#: NOT FOUND IN SOURCE msgid "Available Columns" -msgstr "" +msgstr "Dostupné položky" #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" @@ -812,19 +877,19 @@ msgstr "Chybná data v %1" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Chybné Äíslo transakce u přílohy. %1 má být %2\\n" -#: 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 +#: 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 "Základní údaje" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "Neopomeňte uložit vaÅ¡e zmÄ›ny" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "PÅ™ed" @@ -832,112 +897,125 @@ msgstr "PÅ™ed" msgid "Begin Approval" msgstr "ZaÄátek schvalování" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" +msgstr "" + #: etc/initialdata:217 msgid "Blank" msgstr "Prázdný" -#: NOT FOUND IN SOURCE -msgid "Bookmarkable URL for this search" -msgstr "Uložitelné URL pro toto hledání" +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" -msgstr "" +msgstr "Uložitelný odkaz" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "Zkrácené hlaviÄky" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "Hromadná úprava požadavků" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "Nelze mÄ›nit systémové uživatele" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" msgstr "Může tento uživatel vidÄ›t tuto frontu" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "Uživatelské položce nelze pÅ™idat hodnotu beze jména" -#: html/Search/Build.html:694 -msgid "Can't find a saved search to work with" +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" msgstr "" -#: lib/RT/Link_Overlay.pm:126 +#: html/Search/Build.html:761 +msgid "Can't find a saved search to work with" +msgstr "Nelze nalézt uložený dotaz ke zpracování" + +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "Požadavek nelze svázat se sebou samým" -#: lib/RT/Ticket_Overlay.pm:2716 +#: NOT FOUND IN SOURCE msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Nelze slouÄit do slouÄeného požadavku. To by se vám nemÄ›lo nikdy stát." -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" -msgstr "" +msgstr "Tento dotaz nelze uložit" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "Nelze zadat zároveň zdroj i cíl" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "Nelze vytvoÅ™it uživatele: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "Cc" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "ZmÄ›na hesla" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/Elements/Submit:100 +msgid "Check All" +msgstr "" + +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "ZaÅ¡rtnutím odstraníte" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "ZatrhnÄ›te k odebrání práva" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "Potomci" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "MÄ›sto" -#: html/Ticket/Elements/ShowDates:47 +#: html/Elements/Submit:102 +msgid "Clear All" +msgstr "" + +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "VyÅ™eÅ¡eno" -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "" - #: NOT FOUND IN SOURCE -msgid "Closed requests" +msgid "Closed Tickets" msgstr "UzavÅ™ené požadavky" -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" -msgstr "" +msgstr "UzavÅ™ené požadavky" #: NOT FOUND IN SOURCE msgid "Command not understood!\\n" msgstr "Neznámý příkaz!\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "Komentovat" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "Adresa pro komentáře" @@ -945,11 +1023,11 @@ msgstr "Adresa pro komentáře" msgid "Comment not recorded" msgstr "Komentář nezaznamenán" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "Komentovat požadavky" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "Komentovat požadavky" @@ -957,11 +1035,11 @@ msgstr "Komentovat požadavky" msgid "Comments" msgstr "Poznámky" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "Komentář (Neposílá se žadatelům)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "Komentář (nepoÅ¡le se žadatelům)" @@ -969,15 +1047,15 @@ msgstr "Komentář (nepoÅ¡le se žadatelům)" msgid "Comments about %1" msgstr "Poznámky o %1" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "Poznámky o tomto uživateli" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "Komentáře pÅ™idány" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "Commit v zárodku" @@ -985,23 +1063,23 @@ msgstr "Commit v zárodku" msgid "Compile Restrictions" msgstr "Omezení pÅ™ekladu" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "Podmínka" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "Podmínky splnÄ›ny..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "Podmínka nenalezena" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "Správa" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "Potvrzení" @@ -1013,17 +1091,17 @@ msgstr "Kontaktní informaÄní systém" msgid "Contacted date '%1' could not be parsed" msgstr "Datum kontaktu '%1' nemůže být rozpoznáno" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "Obsah" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "" -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" -msgstr "" +msgstr "Kopírovat" #: etc/initialdata:286 msgid "Correspondence" @@ -1033,7 +1111,7 @@ msgstr "Korespondence" msgid "Correspondence Address" msgstr "Adresa pro korespondenci" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "Korespondence zaznamenána" @@ -1041,33 +1119,47 @@ msgstr "Korespondence zaznamenána" msgid "Correspondence not recorded" msgstr "Korespondence nebyla zaznamenána" -#: lib/RT/Ticket_Overlay.pm:3471 +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. " msgstr "Nelze pÅ™idat novou hodnotu uživatelské položky požadavku. " -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "" + +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " msgstr "Nelze zmÄ›nit vlastníka. " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "Nelze vytvoÅ™it Uživatelskou položku" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "Nelze vytvoÅ™it skupinu" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" msgstr "Nelze vytvoÅ™it vzor: %1" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "Nelze vytvoÅ™it požadavek. Nenastavena fronta" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" msgstr "Nelze vytvoÅ™it uživatele" @@ -1079,11 +1171,11 @@ msgstr "Nelze nalézt požadavek s identifikátorem %1" msgid "Could not find group %1." msgstr "Nelze nalézt skupinu %1." -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "Tohoto uživatele nelze nalézt nebo vytvoÅ™it" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "Nelze naléze tohoto uživatele" @@ -1091,21 +1183,34 @@ msgstr "Nelze naléze tohoto uživatele" msgid "Could not find user %1." msgstr "Nelze nalézt uživatele %1." -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/CustomFields/Objects.html:69 +msgid "Could not load CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "Nelze naÄíst skupinu" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Tento uživatel nemůže být %1 této fronty" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Tento uživatel nemůže být %1 tohoto požadavku" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Tento uživatel nemůže být odstranÄ›n jako %1 této fronty" @@ -1114,15 +1219,15 @@ msgstr "Tento uživatel nemůže být odstranÄ›n jako %1 této fronty" msgid "Could not remove that principal as a %1 for this ticket" msgstr "Tento uživatel nemůže být odstranÄ›n jako %1 tohoto požadavku" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" -msgstr "" +msgstr "Nelze nastavit uživatelské informace" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" msgstr "Do skupiny nelze pÅ™idat Älena" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Nelze vytvoÅ™it transakci: %1" @@ -1135,15 +1240,15 @@ msgstr "Nelze zjistit co dÄ›lat s gpg odpovÄ›dí\\n" msgid "Couldn't find group\\n" msgstr "Skupinu nelze nalézt\\n" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" msgstr "Nemohu nalézt sloupec" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" msgstr "Tohoto uživatele nelze nalézt" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" msgstr "Tuto hodnotu nelze nalézt" @@ -1151,11 +1256,21 @@ msgstr "Tuto hodnotu nelze nalézt" msgid "Couldn't find user\\n" msgstr "Uživatele nelze nalézt\\n" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Z uživatelské databáze nelze naÄíst %1.\\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 RT config file '%1' %2" msgstr "KonfiguraÄní soubor RT '%1'nelze naÄíst %2" @@ -1164,21 +1279,26 @@ msgstr "KonfiguraÄní soubor RT '%1'nelze naÄíst %2" msgid "Couldn't load Scrips." msgstr "Scripy nelze naÄíst." -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" msgstr "Skupinu %1 nelze naÄíst" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "Vazbu nelze naÄíst" -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: 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 "Frontu nelze naÄíst" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" msgstr "Frontu %1 nelze naÄíst" @@ -1195,16 +1315,26 @@ msgstr "Vzor nelze naÄíst" msgid "Couldn't load that user (%1)" msgstr "Uživatele (%1) nelze naÄíst" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Požadavek '%1' nelze naÄíst" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "ZemÄ›" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "VytvoÅ™it" @@ -1212,16 +1342,16 @@ msgstr "VytvoÅ™it" msgid "Create Tickets" msgstr "VytvoÅ™it požadavky" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "VytvoÅ™it uživatelskou položku" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "VytvoÅ™ení uživatelské položky pro frontu %1" -#: html/Admin/Global/CustomField.html:47 +#: NOT FOUND IN SOURCE msgid "Create a CustomField which applies to all queues" msgstr "VytvoÅ™ení uživatelské položky pro vÅ¡echny front" @@ -1233,11 +1363,11 @@ msgstr "VytvoÅ™it novou uživatelskou položku" msgid "Create a new global scrip" msgstr "VytvoÅ™it nový globální scrip" -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "VytvoÅ™it novou skupinu" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "VytvoÅ™it novou vlastní skupinu" @@ -1253,15 +1383,15 @@ msgstr "VytvoÅ™it nový scrip" msgid "Create a new template" msgstr "VytvoÅ™it nový vzor" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "VytvoÅ™ení nového požadavku" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "VytvoÅ™it nového uživatele" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "VytvoÅ™it frontu" @@ -1273,36 +1403,36 @@ msgstr "VytvoÅ™it frontu nazvanou" msgid "Create a request" msgstr "VytvoÅ™it požadavek" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "VytvoÅ™it scrips pro frontu %1" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "VytvoÅ™it vzor" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" -msgstr "" +msgstr "VytvoÅ™it požadavek" #: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "Vytvářet požadavky podle toho vzoru scripu" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "VytvoÅ™it požadavek" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" msgstr "Vytvářet požadavky v této frontÄ›" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "Vytvářet, mazat a mÄ›nit uživatelen definované položky" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" msgstr "Vytvářet, mazat a mÄ›nit fronty" @@ -1310,23 +1440,27 @@ msgstr "Vytvářet, mazat a mÄ›nit fronty" msgid "Create, delete and modify the members of any user's personal groups" msgstr "Vytvářet, mazat a mÄ›nit Äleny uživatelských osobních skupin" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "Vytvářet, mazat a mÄ›nit Äleny osobních skupin" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "Vytvářen, mazat a mÄ›nit uživatele" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "VytvoÅ™it požadavek" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "VytvoÅ™eno" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Uživatelská položka %1 vytvoÅ™ena" @@ -1335,23 +1469,23 @@ msgstr "Uživatelská položka %1 vytvoÅ™ena" msgid "Created template %1" msgstr "Vzor %1 vytvoÅ™en" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" -msgstr "" +msgstr "Tvůrce" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "Aktuální relace" -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "Aktuální scripy" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "Aktuální Älenové" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "Aktuální práva" @@ -1359,60 +1493,63 @@ msgstr "Aktuální práva" msgid "Current search criteria" msgstr "Aktuální vyhledávací podmínky" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "Aktuální pozorovatelé" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) +#: NOT FOUND IN SOURCE msgid "Custom Field #%1" msgstr "Uživatelská položka #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "Uživatelské položky" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) +msgid "Custom Fields for %1" +msgstr "" + +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "ÄŒistící kód uživatelské akce" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "Přípravný kód uživatelské akce" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "Uživatelská podmínka" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: NOT FOUND IN SOURCE msgid "Custom field %1 %2 %3" msgstr "Užitavelská položka %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Uživatelská položka %1 má hodnotu." -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Uživatelská položka %1 nemá hodnotu." -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Uživatelská položka %1 nenalezena" -#: html/Admin/Elements/EditCustomFields:195 +#: NOT FOUND IN SOURCE msgid "Custom field deleted" msgstr "Uživatelská položka smazána" -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" msgstr "Uživatelská položka nenalezena" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "Hodnota %1 nemůže být nalezena v uživatelské položce %2" @@ -1421,45 +1558,41 @@ msgstr "Hodnota %1 nemůže být nalezena v uživatelské položce %2" msgid "Custom field value changed from %1 to %2" msgstr "Hodnota uživatelské položky zmÄ›nÄ›na z %1 na %2" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "Hodnota uživatelské položky nemůže být smazána" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "Hodnota uživatelské položky nemůže být nalezena" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "Hodnota uživatelské položky smazána" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "Uživatelská položka" -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "Datumy" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "pro" -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "Implicitní vzor automatické odpovÄ›di" - #: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Implicitní vzor automatické odpovÄ›di" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" -msgstr "" +msgstr "Implicitní fronta" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" -msgstr "" +msgstr "Implicitní žadatel" #: etc/initialdata:296 msgid "Default admin comment template" @@ -1477,64 +1610,72 @@ msgstr "Implicitní korespondenÄní vzor" msgid "Default transaction template" msgstr "Implicitní transakÄní vzor" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: NOT FOUND IN SOURCE msgid "Default: %1/%2 changed from %3 to %4" msgstr "Defaulní: %1/%2 zmÄ›nÄ›no z %3 na %4" -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "Delegovat práva" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "Delegovat specifická práva, která vám byla poskytnuta." -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "Delegovat práva" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "Pověření" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "Smazat" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" +msgstr "Smazat vzor" + +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" -msgstr "" +msgstr "Smazat vybrané scripy" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" msgstr "Mazat požadavky" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "Smazat požadavek" -#: lib/RT/Transaction_Overlay.pm:162 +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Deleting this object could break referential integrity" msgstr "Smazání tohoto objektu mohlo poruÅ¡it referenÄní integritu" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "Smazání tohoto objektu by mohlo poruÅ¡it referenÄní integritu" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "Smazání tohoto objektu by mohlo naruÅ¡it referenÄní integritu" -#: html/Approvals/Elements/Approve:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "Zamítnout" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "Je rekvizitou pro" @@ -1542,39 +1683,39 @@ msgstr "Je rekvizitou pro" msgid "Dependencies: \\n" msgstr "Závistlosti: \\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" -msgstr "" +msgstr "PÅ™idána závislost %1" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" -msgstr "" +msgstr "Závislost %1 smazána" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" -msgstr "" +msgstr "PÅ™idána závislost na %1" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" -msgstr "" +msgstr "Závislost na %1 smazána" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "Závisející na" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "SestupnÄ›" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "PopiÅ¡te případ níže" -#: 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 +#: 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:56 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 "Popis" @@ -1582,59 +1723,59 @@ msgstr "Popis" msgid "Details" msgstr "Podrobnosti" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "Zobrazit" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "Zobrazit přístupová práva" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" -msgstr "" +msgstr "Zobrazované položky" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" msgstr "Zobrazovat scrips vzory pro tuto frontu" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" msgstr "Zobrazovat scripy pro tuto frontu" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "Režim zobrazení" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" -msgstr "" +msgstr "Zobraz uložené dotazy pro tuto skupinu" -#: NOT FOUND IN SOURCE -msgid "Display ticket #%1" -msgstr "Zobraz požadavek #%1" - -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "" +msgstr "Šířeno pod verzí 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> GNU GPL.</a>" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "DÄ›lat cokoli a vÅ¡echno" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "NeobÄerstvovat tuto stránku." -#: NOT FOUND IN SOURCE -msgid "Don't show search results" -msgstr "Nezobrazit výsledky hledání" - -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "Stáhnout" -#: 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 +#: 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:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "Termín dokonÄení" @@ -1650,33 +1791,41 @@ msgstr "CHYBA: Nelze naÄíst požadavek '%1': %2.\\n" msgid "Edit" msgstr "Upravit" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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 "Upravit uživatelské položky pro %1" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "" + +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "" + +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "Upravit relace" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" -msgstr "" +msgstr "Upravit dotaz" -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Upravit vzory pro frontu %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit scrips" -msgstr "Upravit scprips" - -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "Úprava systémových vzorů" @@ -1684,11 +1833,11 @@ msgstr "Úprava systémových vzorů" msgid "Edit templates for %1" msgstr "Upravit vzory pro %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" -msgstr "" +msgstr "Upravit Uložené Dotazy" -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "Úprava konfigurace pro frontu %1" @@ -1697,17 +1846,17 @@ msgstr "Úprava konfigurace pro frontu %1" msgid "Editing Configuration for user %1" msgstr "Úprava konfigurace pro uživatele %1" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Úprava uživatelské položky %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Úprava Älenství ve skupinÄ› %1" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Úprava Älenství ve vlastní skupinÄ› %1" @@ -1716,15 +1865,15 @@ msgstr "Úprava Älenství ve vlastní skupinÄ› %1" msgid "Editing template %1" msgstr "Úprava vzoru %1" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "Zdroj Äi cíl musí být zadány" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "Email" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "Email adresa je použita" @@ -1736,96 +1885,97 @@ msgstr "Email adresa" msgid "EmailEncoding" msgstr "Kódování emailu" -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Povolena (zruÅ¡ením zatrhnutí zablokujete tuto uživatelskou položky)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 msgid "Enabled (Unchecking this box disables this group)" msgstr "Povolena (zruÅ¡ením zatrhnutí zablokujete tuto skupinu)" -#: html/Admin/Queues/Modify.html:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Povoleno (zruÅ¡ení zatrhnutí zablokuje tuto frontu)" -#: html/Admin/Elements/EditCustomFields:97 +#: NOT FOUND IN SOURCE msgid "Enabled Custom Fields" msgstr "Povolené uživatelské položky" -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" msgstr "Povolené fronty" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "Povolen stav %1" -#: lib/RT/CustomField_Overlay.pm:433 +#: html/Admin/CustomFields/Modify.html:143 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 "Vyplnit více hodnot" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "" +msgstr "Zadejte objekty Äi URI k provázání. Více položek oddÄ›lujte mezerami." -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "Vyplnit jednu hodnotu" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "" +msgstr "Zadejte fronty Äi URI k provázání. Více položek oddÄ›lujte mezerami." -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" +msgstr "Zadejte požadavky Äi URI k provázání. Více položek oddÄ›lujte mezerami." -#: html/Search/Bulk.html:142 +#: NOT FOUND IN SOURCE msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Zadejte požadavky Äi URI se nimiž požadavky svázat. OddÄ›lte více položek mezerami." -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: lib/RT/CustomField_Overlay.pm:66 +msgid "Enter up to %1 values" +msgstr "" + +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "Chyba" -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "Chyba v parametrech do Queue->AddWatcher" -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Queue->DelWatcher" -msgstr "Chyba v parametrech do Queue->DelWatcher" - -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "" +msgstr "Chyba v parametrech do Queue->DeleteWatcher" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Chyba v parametrech do Ticket->AddWatcher" -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Ticket->DelWatcher" -msgstr "Chyba v parametrech do Ticket->DelWatcher" - -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "" +msgstr "Chyba v parametrech do Ticket->DeleteWatcher" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" -msgstr "" +msgstr "Eskalovat požadavky" -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" -msgstr "" +msgstr "Odhadovaný" #: etc/initialdata:20 msgid "Everyone" msgstr "Kdokoli" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "Příklad:" @@ -1837,56 +1987,93 @@ msgstr "Identifikátor externí autentizace" msgid "ExternalContactInfoId" msgstr "Identifikátor externího kontaktu" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "Doplňkové údaje" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" +msgstr "" + +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Nepovedlo se nalézt uživatele 'Privilegované' pseudoskupiny." -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Nepovedlo se nalézt uživatele 'Neprivilegované' pseudoskupiny" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Nepovedlo se nahrát modul %1. (%2)" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "úno" -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" +msgstr "Název souboru" + +#: 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 "" + +#: 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 "Kon" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "Koncová priorita" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "Koncová priorita" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: NOT FOUND IN SOURCE msgid "Find group whose" msgstr "Najít skupiny které" +#: 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 "Najít nové/otevÅ™ené požadavky" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "Najít ty, jejichž" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "Nalézt požadavky" @@ -1894,7 +2081,7 @@ msgstr "Nalézt požadavky" msgid "Finish Approval" msgstr "ZávereÄné schválení" -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "První" @@ -1902,24 +2089,28 @@ msgstr "První" msgid "First page" msgstr "První stránka" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "Vynutit zmÄ›nu" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "Nalezen%quant(%1,,y,o) %numf(%1) %quant(%1,požadavek,požadavky,požadavků)" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "Nalezen objekt" @@ -1927,53 +2118,53 @@ msgstr "Nalezen objekt" msgid "FreeformContactInfo" msgstr "Kontaktní údaje ve volné podobÄ›" -#: lib/RT/CustomField_Overlay.pm:37 +#: NOT FOUND IN SOURCE msgid "FreeformMultiple" msgstr "Volná forma vícenásobnÄ›" -#: lib/RT/CustomField_Overlay.pm:36 +#: NOT FOUND IN SOURCE msgid "FreeformSingle" msgstr "Volná formu jedinkrát" -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "pá" -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "Celé hlaviÄky" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" -msgstr "" +msgstr "Vzít vzor ze souboru" -#: NOT FOUND IN SOURCE -msgid "Getting the current user from a pgp sig\\n" -msgstr "Aktuální uživatel se získává z PGP podpisu\\n" - -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "Dán %1" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "Globální" -#: NOT FOUND IN SOURCE -msgid "Global Scrips" -msgstr "Globální Scrips" +#: html/Admin/Elements/EditCustomFields:55 +msgid "Global Custom Fields" +msgstr "" + +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Globální vzor: %1" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" -msgstr "" +msgstr "Provést" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "SpusÅ¥!" @@ -1985,11 +2176,11 @@ msgstr "Správný PGP podpis od %1\\n" msgid "Goto page" msgstr "PÅ™ejít na stránku" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "PÅ™ejít na požadavek" -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "Skupina" @@ -1997,28 +2188,28 @@ msgstr "Skupina" msgid "Group %1 %2: %3" msgstr "Skupina %1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "Práva skupiny" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "Skupina již má Älena" -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Skupina nemůže být založena: %1" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "Skupina vytvoÅ™ena" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "Skupina nemá takového Älena" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "Skupina nenalezena" @@ -2030,36 +2221,54 @@ msgstr "Skupina nenalezena.\\n" msgid "Group not specified.\\n" msgstr "Skupina neudána.\\n" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "Skupiny" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "Skupiny nemohou být svými Äleny" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: html/Admin/Groups/index.html:82 +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 "Ahoj!" -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "Ahoj, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "Historie" +#: 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 "Telefon domů" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "Domovská stránka" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "Mám %quant(%1,míchaÄka,míchaÄky,míchaÄek)" @@ -2068,12 +2277,16 @@ msgstr "Mám %quant(%1,míchaÄka,míchaÄky,míchaÄek)" msgid "I have [quant,_1,concrete mixer]." msgstr "I have [quant,_1,concrete mixer]." +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "" + #msgstr "Mám [quant,_1,MíchaÄku na beton,MíchaÄky na beton,MíchaÄek na beton]." -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "Identifikátor" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "Identita" @@ -2081,76 +2294,84 @@ msgstr "Identita" msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Odmítni původce a zruÅ¡ stávající schválení, bylo-li zamítnuto schválení" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "" +msgstr "Nebyl-li zadán Žadatel, vytvářej požadavky jako tento žadatel" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." -msgstr "" +msgstr "Nebyla-li zadána fronta, vytvářej požadavky v této frontÄ›" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." msgstr "Byl-li tento nástroj setgid, místní uživatel jej mohl použit k získaní administrativního přístupu k RT" -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" msgstr "Pokud jste zmÄ›nili cokoli nahoÅ™e, nezapomeňte" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "Neplatná hodnota pro %1" -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "NemÄ›nitelná položka" -#: html/Admin/Elements/EditCustomFields:72 +#: NOT FOUND IN SOURCE msgid "Include disabled custom fields in listing." msgstr "Zahrnout do výpisu blokované uživatelské položky" -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." -msgstr "" +msgstr "Zahrnout blokované skupiny ve výpisu." -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." msgstr "Zahrnout blokované fronty do výpisu." -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "Zahrnout blokované uživatele do vyhledávání." -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "PoÄáteÄní priorita" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "PoÄáteÄní priorita" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "Chyba na vstupu" -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "VnitÅ™ní chyba" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "VnitÅ™ní chyba: %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "Neplatný typ skupiny" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "Neplatné právo" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "Neplatná data" @@ -2158,60 +2379,64 @@ msgstr "Neplatná data" msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Neplatný vlastník. Použije se 'nobody'." -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "Neplatná fronta" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "Neplatné právo" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "Neplatná hodnota pro %1" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "Neplatná hodnota pro uživatelskou položku" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "Neplatná hodnota pro stav" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "Je velmi důležité, aby neprivilegovaní uživatelé nemohli spustit tento nástroj." -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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 "Pro spuÅ¡tÄ›ní tohoto nástroje se doporuÄuje založení neprivilegovaného UNIX uživatele se správným skupinovým Älenstvím a přístupem do RT." -#: bin/rt-crontool:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "Používá nÄ›kolik parametrů:" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Items pending my approval" msgstr "VÄ›ci oÄekávající mé schválení" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "led" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "PÅ™idat se Äi odebrat z této skupiny" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "Äec" -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "Maxi" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "Äen" @@ -2223,19 +2448,23 @@ msgstr "KlíÄové slovo" msgid "Lang" msgstr "Jazyk" -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" +msgstr "Jazyk" + +#: html/Search/Elements/EditFormat:79 +msgid "Large" msgstr "" -#: html/Ticket/Elements/Tabs:74 +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "Poslední" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "Poslední kontakt" -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "Naposled kontaktován" @@ -2243,23 +2472,23 @@ msgstr "Naposled kontaktován" msgid "Last Notified" msgstr "Naposled upozornÄ›n" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "Naposled aktualizován" -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" -msgstr "" +msgstr "NaposledAktualizoval(a)" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "Zbývá" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "Umožnit tomuto uživateli přístup k RT" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" msgstr "Umožnit dávat tomuto uživateli práva" @@ -2271,213 +2500,255 @@ msgstr "Vlastník omezen na %1 %2" msgid "Limiting queue to %1 %2" msgstr "Fronta omezena na %1 %2" -#: lib/RT/Record.pm:1086 +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "" + +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "Vazba již existuje" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "Vazba nemůže být vytvoÅ™ena" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "Vazba vytvoÅ™ena (%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "Vazba zruÅ¡ena (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "Vazba nenalezena" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Svázat požadavek #%1" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "Vazby" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" -msgstr "" +msgstr "NaÄíst" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" +msgstr "NaÄíst uložený dotaz:" + +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" msgstr "" -#: html/Admin/Tools/Configuration.html:19 +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" +msgstr "NaÄtené perlovské moduly" + +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "UmístÄ›ní" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Záznamový adresář %1 nenalezen nebo doň nemůže být zapisováno.\\ RT nemůže běžet." -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "PÅ™ihlášen jako %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "PÅ™ihlásit" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "Odhlásit" -#: html/Search/Bulk.html:83 +#: lib/RT/CustomField_Overlay.pm:866 +msgid "Lookup type mismatch" +msgstr "" + +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "Nastavit vlastníka" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "Nastavit stav" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "Nastavit datum termínu dokonÄení" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "Nastavit datum vyÅ™eÅ¡ení" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" msgstr "Nastavit datum, kdy zaÄal" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" msgstr "Nastavit datum, kdy zaÄne" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "Nastavit datum posledního kontaktu" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "Nastavit prioritu" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "Nastavit frontu" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "Nastavit pÅ™edmÄ›t" -#: html/Admin/index.html:32 +#: lib/RT/Group_Overlay.pm:177 +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 "Správa skupin a Älenství v nich" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" msgstr "Správa vlastností a konfigurací platných ve vÅ¡ech frontách" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" msgstr "Správa front a jim přísluÅ¡ných vlastností" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "Správa uživatelů a hesel" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "bÅ™e" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "kvÄ›" -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" -msgstr "" +msgstr "ÄŒlen %1 pÅ™idán" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" -msgstr "" +msgstr "ÄŒlen %1 odebrán" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "ÄŒlen pÅ™idán" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "ÄŒlen odebrán" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "ÄŒlen neodebrán" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "ÄŒlen" -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "ÄŒlenové" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" -msgstr "" +msgstr "ÄŒlenství v %1 pÅ™idáno" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" +msgstr "ÄŒlenství v %1 zruÅ¡eno" + +#: html/Admin/Elements/UserTabs:61 +msgid "Memberships" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2813 +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) +msgid "Memberships of the user %1" +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" msgstr "SlouÄení úspěšné" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "SlouÄení se nepodaÅ™ilo. Nelze nastavit EffectiveId" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "SlouÄit do" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" -msgstr "" +msgstr "SlouÄen do %1" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "Zpráva" -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" -msgstr "" +msgstr "Zpráva nemůže být zaznamenána" -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" -msgstr "" +msgstr "Zpráva zaznamenána" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." +msgstr "Zprávy o tomto požadavku NEBUDOU zaslány na..." + +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" msgstr "" -#: lib/RT/Record.pm:749 +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "Chybí primární klíÄ?: %1" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "Mobilní telefon" @@ -2485,7 +2756,7 @@ msgstr "Mobilní telefon" msgid "MobilePhone" msgstr "Mobilní telefon" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "Upravovat seznam přístupových práv" @@ -2493,27 +2764,37 @@ msgstr "Upravovat seznam přístupových práv" msgid "Modify Custom Field %1" msgstr "Upravit uživatelskou položku %1" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +#: 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 "Úprava uživatelských položek pro vÅ¡echny fronty" -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 msgid "Modify Group Rights" -msgstr "" +msgstr "Úprava skupinových práv" -#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" -msgstr "" +msgstr "Upravit Äleny" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" -msgstr "" +msgstr "Upravit práva" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "Upravovat vzory scripů této fronty" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" msgstr "Upravovat scripů této fronty" @@ -2521,43 +2802,52 @@ msgstr "Upravovat scripů této fronty" msgid "Modify Template %1" msgstr "Upravovat vzor %1" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 msgid "Modify User Rights" -msgstr "" +msgstr "Upravit práva uživatelů" -#: html/Admin/Queues/CustomField.html:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "Upravovat uživatelskou položku pro frontu %1" -#: html/Admin/Global/CustomField.html:52 +#: NOT FOUND IN SOURCE msgid "Modify a CustomField which applies to all queues" msgstr "Upravovat uživatelskou položku pro vÅ¡echny fronty" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Upravovat scrip pro frontu %1" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "Upravovat scrip platný ve vÅ¡ech frontách" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) +msgid "Modify associated objects for %1" +msgstr "" + +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Upravit datumy pro #%1" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Úprav datumů pro požadavek # %1" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: 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 "Úprava globálních skupinových práv" -#: html/Admin/Global/GroupRights.html:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." msgstr "Úprava globálních skupinových práv." @@ -2565,100 +2855,110 @@ msgstr "Úprava globálních skupinových práv." msgid "Modify global scrips" msgstr "Úprava globálních scrips" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 msgid "Modify global user rights" msgstr "Úprava globálních uživatelských práv" -#: html/Admin/Global/UserRights.html:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "Úprava globálních uživatelských práv." -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "Upravovat metadata skupiny nebo smazat skupinu" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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 "Úprava skupinových práv pro %1" -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Úprava skupinových práv pro frontu %1" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "Upravovat seznam Älenů pro tuto skupinu" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "Upravovat vlastní RT úÄet" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Úprava uživatelů fronty %1" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" msgstr "Úprava uživatelů souvisejících s požadavkem #%1" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Úprava scrips pro frontu %1" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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 "Upravovat scripy platné ve vÅ¡ech frontách" -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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 "Úprava vzoru %1" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "Upravit vzory pro vÅ¡echny fronty" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" msgstr "Úprava skupiny %1" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "Upravovat pozorovatele fronty" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Úprava uživatele %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Úprava požadavku # %1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Úprava požadavku #%1" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "Upravovat požadavky" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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 "Úprava uživatelských práv pro skupinu %1" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Úprava skupinových práv pro frontu %1" @@ -2667,81 +2967,85 @@ msgstr "Úprava skupinových práv pro frontu %1" msgid "Modify watchers for queue '%1'" msgstr "Úprava pozorovatelů fronty '%1'" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" msgstr "Upravovat seznam přístupových práv" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "Upravovat Älenství ve skupinÄ›" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "Upravovat pozorovale fronty" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "Upravovat scripy" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "Upravovat sebe" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "Upravovat vzor" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "Upravovat požadavek" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "po" -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "Více o %1" -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "Dát níže" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "Dát výše" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "Vícenásobná" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "Nutno zadat atribut 'Jméno'" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" -msgstr "" +msgstr "Mé požadavky ve stavu %1" #: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "Mnou schválené" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "Mnou schválené" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" -msgstr "" +msgstr "Mé uložené dotazy" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "Jméno" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "Jméno je použito" @@ -2749,19 +3053,19 @@ msgstr "Jméno je použito" msgid "Need approval from system administrator" msgstr "Je tÅ™eba schválení systémového správce" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "Nikdy" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "Nové" -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "Nové relace" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "Nové heslo" @@ -2769,31 +3073,31 @@ msgstr "Nové heslo" msgid "New Pending Approval" msgstr "Nová probíhající schválení" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" -msgstr "" +msgstr "Nový dotaz" #: NOT FOUND IN SOURCE msgid "New Search" msgstr "Nové vyhledávání" -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "VytvoÅ™it uživatelskou položku" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "Založit skupinu" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "Nové heslo" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "Oznámení nového hesla zasláno" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "VytvoÅ™ení fronty" @@ -2801,11 +3105,11 @@ msgstr "VytvoÅ™ení fronty" msgid "New request" msgstr "Nový požadavek" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "Nová práva" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "VytovÅ™ení scripu" @@ -2813,27 +3117,27 @@ msgstr "VytovÅ™ení scripu" msgid "New search" msgstr "Nové vyhledání" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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 "VytvoÅ™it vzor" -#: html/SelfService/Elements/Tabs:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" -msgstr "" +msgstr "Nový požadavek" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "Nový požadavek neexistuje" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "VytvoÅ™it uživatele" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "Nový uživatel jména" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "Nový pozorovatel" @@ -2841,13 +3145,13 @@ msgstr "Nový pozorovatel" msgid "New window setting" msgstr "Nové nastavení okna" -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "Další" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" -msgstr "" +msgstr "Další stránka" #: NOT FOUND IN SOURCE msgid "Next page" @@ -2857,31 +3161,39 @@ msgstr "Další stránka" msgid "NickName" msgstr "PÅ™ezdívka" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "PÅ™ezdívka" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/UserRights.html:145 +msgid "No Class defined" +msgstr "" + +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "Žádná uživatelská položka" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: 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 "Nedefinována žádná skupina" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" -msgstr "" +msgstr "Prázdný dotaz" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" msgstr "Nedefinována žádná fronta" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "Žádný uživatel RT nenalezen. Prosím poraÄte se se správcem RT.\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "Žádný vzor" @@ -2893,11 +3205,11 @@ msgstr "Neudán požadavek. PÅ™eruÅ¡uje se požadavek " msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "Neudán požadavek. PÅ™eruÅ¡ují se úpravy požadavku\\n\\n" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "bez akce" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "Neudán sloupec" @@ -2905,7 +3217,7 @@ msgstr "Neudán sloupec" msgid "No command found\\n" msgstr "Příkaz nenalezen\\n" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" msgstr "Poznámky k tomuto uživateli neudány" @@ -2913,80 +3225,89 @@ msgstr "Poznámky k tomuto uživateli neudány" msgid "No correspondence attached" msgstr "Žádná pÅ™ipojená korespondence" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "Pro %1 není popis" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "Neudána skupina" -#: lib/RT/Ticket_Overlay.pm:2475 -msgid "No message attached" +#: html/Admin/Groups/index.html:52 +msgid "No groups matching search criteria found." msgstr "" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/Ticket_Overlay.pm:2349 +msgid "No message attached" +msgstr "Zpráva nepÅ™ipojena" + +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "Heslo nenastaveno" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" msgstr "Nedostatek práv k vytváření front" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "Nedostatek práv k vytváření požadavků ve frontÄ› '%1'" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "Nedostatek práv k vytváření uživatelů" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" msgstr "Nedostatek práv k zobrazení tohoto požadavku" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" msgstr "Nedostatek práv k zobrazení aktualizace požadavku" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "Nezadán uživatel" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." msgstr "Nevybráni uživatelé." -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." msgstr "Nenalezeny žádné fronty odpovídající vyhledávací podmínce." -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "Práva nenalezena" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "NepÅ™idÄ›lena žádná práva." -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." msgstr "Bez vyhledání nelze pracovat." -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" -msgstr "" +msgstr "Žádný pÅ™edmÄ›t" #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "Neudán identifikátor požadavku" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "Neudán typ transakce" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "Nenalezeni uživatelé odpovídající vyhledávací podmínce" @@ -2994,15 +3315,15 @@ msgstr "Nenalezeni uživatelé odpovídající vyhledávací podmínce" msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Nenalezen platný uživatel RT. OvladaÄ RT CVS uvolnÄ›n. Prosím poraÄte se se svým správcem RT.\\n" -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "Žádná z hodnot nanastavena na _Set!\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "Nikdo" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "Neexistující položka" @@ -3010,15 +3331,15 @@ msgstr "Neexistující položka" msgid "Not logged in" msgstr "NepÅ™ihlášen" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "NepÅ™ihlášen." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "Nenastaven" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "Zatím neimplementováno." @@ -3026,11 +3347,11 @@ msgstr "Zatím neimplementováno." msgid "Not yet implemented...." msgstr "Zatím neimplementováno..." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "Poznámky" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "UpozornÄ›ní nemůže být zasláno" @@ -3044,11 +3365,11 @@ msgstr "Zaslat vÅ¡em AdminCc jako komentář" #: etc/initialdata:93 etc/upgrade/3.1.17/content:6 msgid "Notify Ccs" -msgstr "" +msgstr "Upozornit Ccs" #: etc/initialdata:89 etc/upgrade/3.1.17/content:2 msgid "Notify Ccs as Comment" -msgstr "" +msgstr "Upozornit Ccs jako komentář" #: etc/initialdata:128 msgid "Notify Other Recipients" @@ -3068,7 +3389,7 @@ msgstr "Zaslat vlastníkovi jako komentář" #: etc/initialdata:376 msgid "Notify Owner of their rejected ticket" -msgstr "" +msgstr "/" #: etc/initialdata:365 msgid "Notify Owner of their ticket has been approved by all approvers" @@ -3102,35 +3423,57 @@ msgstr "Zaslat žadatelům, vÅ¡em Cc a vÅ¡em AdminCc" msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Zaslat žadatelům, vÄem Cc a vÄem AdminCc jako komentář" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "lis" -#: lib/RT/Record.pm:200 +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "" + +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "Objekt nemůže být vytvoÅ™en" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "Objekt vytvoÅ™en" -#: lib/RT/Date.pm:420 +#: lib/RT/Record.pm:121 +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:901 +msgid "Object type mismatch" +msgstr "" + +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "říj" -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" -msgstr "" +msgstr "Off-line" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" -msgstr "" +msgstr "Úpravy off-line" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" -msgstr "" +msgstr "Off-line naÄtení" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "Dne" @@ -3152,7 +3495,7 @@ msgstr "PÅ™i zmÄ›nÄ› vlastníka" #: etc/initialdata:177 etc/upgrade/3.1.17/content:15 msgid "On Priority Change" -msgstr "" +msgstr "PÅ™i zmÄ›nÄ› priority" #: etc/initialdata:192 msgid "On Queue Change" @@ -3170,21 +3513,21 @@ msgstr "PÅ™i zmÄ›nÄ› stavu" msgid "On Transaction" msgstr "PÅ™i transakci" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "Zobrazit jen schvalování pro požadavky založené po %1" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "Zobrazit jen schvalování pro požadavky založení pÅ™ed %quant(%1)" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "OtevÅ™ené" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "Otevřít" @@ -3192,9 +3535,9 @@ msgstr "Otevřít" msgid "Open requests" msgstr "OtevÅ™ené požadavky" -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" -msgstr "" +msgstr "OtevÅ™ené požadavky" #: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" @@ -3208,44 +3551,44 @@ msgstr "Otevřít požadavky (ze seznamu) v jiném oknÄ›" msgid "Open tickets on correspondence" msgstr "Otevřít požadavky pÅ™i korespondenci" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" -msgstr "" +msgstr "Řadit podle" #: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Řazení a třídÄ›ní" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "Organizace" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Původní požadavek: #%1" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" -msgstr "" +msgstr "Odchozí zpráva o komentáři zaznamenána" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" -msgstr "" +msgstr "Odchozí zpráva zaznamenána" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "ÄŒasem se priorita posouvá k" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "Vlastnit požadavky" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "Vlastnit požadavek" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" msgstr "Vlastník" @@ -3253,11 +3596,11 @@ msgstr "Vlastník" msgid "Owner changed from %1 to %2" msgstr "Vlastník zmÄ›nÄ›n z %1 na %2" -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." -msgstr "" +msgstr "Vlastník nemůže být nastaven." -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Vlastník nucenÄ› zmÄ›nÄ›n z %1 na %2" @@ -3266,12 +3609,12 @@ msgstr "Vlastník nucenÄ› zmÄ›nÄ›n z %1 na %2" msgid "Owner is" msgstr "Vlastník" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" -msgstr "" +msgstr "Stránka %1 z %2" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "Pager" @@ -3279,36 +3622,53 @@ msgstr "Pager" msgid "PagerPhone" msgstr "Číslo pageru" -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "RodiÄe" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "Heslo" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "PÅ™ipomínaÄ hesel" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "Heslo příliÅ¡ krátké" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Heslo: %1" -#: html/Admin/Users/Modify.html:318 -msgid "Passwords do not match." +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" msgstr "" -#: html/User/Prefs.html:211 +#: html/Admin/Users/Modify.html:356 +msgid "Passwords do not match." +msgstr "Hesla nesouhlasí." + +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" -msgstr "" +msgstr "Hesla nesouhlasí. VaÅ¡e heslo nebylo zmÄ›nÄ›no" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "Uživatelé" @@ -3316,27 +3676,27 @@ msgstr "Uživatelé" msgid "Perform a user-defined action" msgstr "Provedení uživatelem definované akce" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" -msgstr "" +msgstr "Konfigurace Perlu" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "Přístup nepovolen" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "Osobní skupiny" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "Vlastní skupiny" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "Vlastní skupiny:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "Čísla telefonů" @@ -3344,7 +3704,7 @@ msgstr "Čísla telefonů" msgid "Placeholder" msgstr "Zábor místa" -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "Nastavení" @@ -3352,17 +3712,17 @@ msgstr "Nastavení" msgid "Prefs" msgstr "Nastavení" -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "Prepare v zárodku" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "PÅ™edchozí" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" -msgstr "" +msgstr "PÅ™edchozí stránka" #: NOT FOUND IN SOURCE msgid "Previous page" @@ -3372,33 +3732,33 @@ msgstr "PÅ™edchozí stránka" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "Uživatel %1 nenalezen." -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "Priorita" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "Priorita zaÄíná na" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" -msgstr "" +msgstr "Vlastní:" #: etc/initialdata:25 msgid "Privileged" msgstr "Privilegovaný" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Privilegovaný stav: %1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "Privilegovaní uživatelé" @@ -3406,19 +3766,19 @@ msgstr "Privilegovaní uživatelé" msgid "Pseudogroup for internal use" msgstr "Pseudo skupina pro vnitÅ™ní použití" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" -msgstr "" +msgstr "Dotaz" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" -msgstr "" +msgstr "Tvůrce dotazu" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "Fronta" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" @@ -3428,7 +3788,7 @@ msgstr "Fronta %1 nenalezena" msgid "Queue '%1' not found\\n" msgstr "Fronta '%1' nenalezena\\n" -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "Název fronty" @@ -3436,19 +3796,19 @@ msgstr "Název fronty" msgid "Queue Scrips" msgstr "Scripy fronty" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "Fronta již existuje" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" msgstr "Fronta nemůže být vytvoÅ™ena" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 msgid "Queue could not be loaded." msgstr "Fronta nemůže být naÄtena." -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" msgstr "Fronta vytvoÅ™ena" @@ -3456,32 +3816,32 @@ msgstr "Fronta vytvoÅ™ena" msgid "Queue is not specified." msgstr "Není zadána fronta." -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" msgstr "Fronta nenalezena" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "Fronty" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" -msgstr "" +msgstr "Rychlé hledání" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" -msgstr "" +msgstr "Rychlé založení požadavku" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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 pro %2" @@ -3494,7 +3854,7 @@ msgstr "RT %1 od <a href=\"http://bestpractical.com\">Best Practival Solutions, msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -#: html/Admin/index.html:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "Správa RT" @@ -3514,7 +3874,7 @@ msgstr "KonfiguraÄní chyba RT" msgid "RT Critical error. Message not recorded!" msgstr "Kritická chyba RT. Zpráva nezaznamenána!" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "Chyba RT" @@ -3526,11 +3886,11 @@ msgstr "RT pÅ™ijal poÅ¡tu (%1) od sebe samého." msgid "RT Self Service / Closed Tickets" msgstr "RT Samoobsluha / UzavÅ™ené požadavky" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" -msgstr "" +msgstr "PromÄ›nné RT" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "RT v celé své záři" @@ -3546,11 +3906,15 @@ msgstr "RT nemůže nalézt žadatele pÅ™es hledání v externí databázi" msgid "RT couldn't find the queue: %1" msgstr "RT nemůže nalézt frontu: %1" +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." +msgstr "" + #: NOT FOUND IN SOURCE msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT nemůže ověřit tento PGP podpis. \\n" -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "RT pro %1" @@ -3579,7 +3943,7 @@ msgstr "RT zpracuje tuto zprávu tak, jako by byla nepodepsaná.\\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 "Emailový příkazový režim RT vyžaduje PGP autentizaci. Nepodepsal jste vaÅ¡i zprávu nebo váš podpis nemůže být ověřen." -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "SkuteÄné jméno" @@ -3587,31 +3951,31 @@ msgstr "SkuteÄné jméno" msgid "RealName" msgstr "SkuteÄné jméno" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" -msgstr "" +msgstr "PÅ™idán odkaz z %1" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" -msgstr "" +msgstr "Smazán odkaz z %1" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" -msgstr "" +msgstr "PÅ™idán odkaz na %1" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" -msgstr "" +msgstr "Smazán odkaz na %1" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "Je odkazem z" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "Odkazuje na" @@ -3623,44 +3987,44 @@ msgstr "Zjemnit" msgid "Refine search" msgstr "Zjemnit vyhledání" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Obnovit tuto stránku %quant(%1,každou,každé,každých) %numf(%1) %quant(%1,minutu,minuty,minut)." -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "Odstranit AdminCc" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "Odstranit Cc" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "Odstranit žadatele" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "OdpovÄ›dÄ›t" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" -msgstr "" +msgstr "Adresa pro odpovÄ›Ä" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" -msgstr "" +msgstr "OdpovÄ›Ä Å¾adatelům" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "OdpovÄ›dÄ›t na požadavky" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "Odpovídat na požadavky" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "Žadatel" @@ -3672,37 +4036,37 @@ msgstr "Emailová adresa žadatele" msgid "Requestor(s)" msgstr "Žadatel(é)" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "Žadatelé" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "Požadavky mají být vyÅ™eÅ¡eny do" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" -msgstr "" +msgstr "Povinný parametr '%1' neudán" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "Vynulovat" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "BydliÅ¡tÄ›" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "VyÅ™eÅ¡it" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "VyÅ™eÅ¡ení požadavku #%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "VyÅ™eÅ¡en" @@ -3710,7 +4074,7 @@ msgstr "VyÅ™eÅ¡en" msgid "Response to requestors" msgstr "OdpovÄ›Ä Å¾adatelům" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "Výsledky" @@ -3718,61 +4082,61 @@ msgstr "Výsledky" msgid "Results per page" msgstr "Výsledků na stránku" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "Zopakujte heslo" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" -msgstr "" +msgstr "Vrátit" #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Nenalezeno právo %1 pro %2 %3 v mezích %4 (%5)" -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "Právo delegováno" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "Práva pÅ™idána" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "Právo naÄteno" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "Právo nemůže být odebráno" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "Právo nenalezeno" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "Právo nenaÄteno." -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "Právo odebráno" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "Práva" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Práva pro %1 nemohou být pÅ™idÄ›lena" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "Práva nemohou být %1 odebrána" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "Pravidla" @@ -3780,53 +4144,59 @@ msgstr "Pravidla" msgid "RootApproval" msgstr "KoÅ™enový schvalovatel" -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" -msgstr "" +msgstr "Řádek na stránku" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "so" -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" -msgstr "" +msgstr "Uložit" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "Uložit zmÄ›ny" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" -msgstr "" +msgstr "Uložit nastavení" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "Nezapomeňte uložit zmÄ›ny - " -#: html/Search/Elements/EditSearches:1 -msgid "Saved searches" +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" msgstr "" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Search/Elements/EditSearches:46 +msgid "Saved searches" +msgstr "Uložené dotazy" + +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "Scrip vytvoÅ™en" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" -msgstr "" +msgstr "Položky scripu" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "Scrip smazán" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "Scripy" @@ -3834,94 +4204,151 @@ msgstr "Scripy" msgid "Scrips for %1\\n" msgstr "Scripy fro %1\\n" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" msgstr "Scripy platné ve vÅ¡ech frontách" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" -msgstr "Vyhledávání" +msgstr "Vyhledat" #: NOT FOUND IN SOURCE msgid "Search Criteria" msgstr "Podmínky vyhledávání" -#: html/Approvals/Elements/PendingMyApproval:38 +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "Vyhledávání schvalování" -#: bin/rt-crontool:184 +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" +msgstr "" + +#: bin/rt-crontool:213 msgid "Security:" msgstr "ZabezpeÄní:" -#: lib/RT/Queue_Overlay.pm:83 -msgid "See exact outgoing email messages and their recipeients" +#: lib/RT/CustomField_Overlay.pm:100 +msgid "See custom fields" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:107 +msgid "See exact outgoing email messages and their recipeients" +msgstr "VidÄ›t pÅ™esnou odchozí zprávu a její příjemce" + +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" -msgstr "" +msgstr "VidÄ›t soukromé komentáře požadavku" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" +msgstr "VidÄ›t sumárnÄ› požadavek" + +#: lib/RT/CustomField_Overlay.pm:100 +msgid "SeeCustomField" +msgstr "" + +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "SeeQueue" msgstr "VidÄ›t frontu" -#: html/Admin/Groups/index.html:50 +#: 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 "VýbÄ›r skupiny" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" msgstr "VýbÄ›r fronty" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +#: 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 "VýbÄ›r uživatele" -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +#: html/Admin/Elements/CustomFieldTabs:90 msgid "Select custom field" msgstr "Vybrat uživatelskou položku" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: 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 "Vybrat skupinu" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "Vybrat více hodnot" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "Vybrat jednu hodnotu" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" msgstr "VýbÄ›r fronty" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "VýbÄ›r scripu" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "Vybrat vzor" -#: html/Admin/Elements/UserTabs:46 +#: lib/RT/CustomField_Overlay.pm:61 +msgid "Select up to %1 values" +msgstr "" + +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "VýbÄ›r uživatele" -#: lib/RT/CustomField_Overlay.pm:35 +#: NOT FOUND IN SOURCE msgid "SelectMultiple" msgstr "VýbÄ›r vícenásobný" -#: lib/RT/CustomField_Overlay.pm:34 +#: NOT FOUND IN SOURCE msgid "SelectSingle" msgstr "VýbÄ›t jedineÄný" +#: 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 "Self Service" msgstr "Samoobsluha" @@ -3952,11 +4379,11 @@ msgstr "Posílá e-mail vÅ¡em pÅ™esnÄ› vyjmenovaným Cc a Bcc" #: etc/initialdata:94 etc/upgrade/3.1.17/content:7 msgid "Sends mail to the Ccs" -msgstr "" +msgstr "Posílá e-mail Ccs" #: etc/initialdata:90 etc/upgrade/3.1.17/content:3 msgid "Sends mail to the Ccs as a comment" -msgstr "" +msgstr "Posílá e-mail Ccs jako komentář" #: etc/initialdata:102 msgid "Sends mail to the administrative Ccs" @@ -3970,47 +4397,47 @@ msgstr "Posílá e-mail vÅ¡em administrativním Cc jako komentář" msgid "Sends mail to the owner" msgstr "Posílá e-mail vlastníkovi" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "zář" -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" -msgstr "" +msgstr "Zobrazit" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" msgstr "" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" -msgstr "" +msgstr "Zobrazit sloupce" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "Zobrazit výsledky" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "Zobrazit schválené požadavky" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "Zobrazit základní údaje" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "Zobrazit odepÅ™ené požadavky" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "Zobrazit podrobnosti" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "Zobrazit trvající požadavky" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "Zobrazit požadavky Äekající na jejich schválení" @@ -4022,43 +4449,47 @@ msgstr "Zobrazovat privátní komentáře požadavku" msgid "Show ticket summaries" msgstr "Zobrazovat výsledky požadavku" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" msgstr "Zobrazovat seznam přístupových práv" -#: lib/RT/Queue_Overlay.pm:83 -msgid "ShowOutgoingEmail" +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" msgstr "" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Queue_Overlay.pm:107 +msgid "ShowOutgoingEmail" +msgstr "Zobrazit odchotí e-mail" + +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" -msgstr "" +msgstr "Zobrazit uložené dotazy" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "Zobrazit scripy" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "Zobrazit vzor" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "Zobrazit požadavek" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "Zobrazit komentáře požadavku" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "Být žadatelem Äi Cc požadavku Äi fronty" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "Být AdminCc požadavku nebo fronty" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "Podpis" @@ -4066,15 +4497,23 @@ msgstr "Podpis" msgid "Signed in as %1" msgstr "Příhlášen jako %1" -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "Jednoduchá" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 msgid "Skip Menu" msgstr "PÅ™eskoÄit menu" -#: html/Admin/Elements/AddCustomFieldValue:27 +#: html/Search/Elements/EditFormat:78 +msgid "Small" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 msgid "Sort" msgstr "" @@ -4090,9 +4529,9 @@ msgstr "Třídit výsledky dle" msgid "SortOrder" msgstr "Třídící poÅ™adí" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" -msgstr "" +msgstr "Fáze" #: NOT FOUND IN SOURCE msgid "Stalled" @@ -4102,7 +4541,7 @@ msgstr "Odložené" msgid "Start page" msgstr "Úvodní stránka" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "ZapoÄato" @@ -4110,7 +4549,7 @@ msgstr "ZapoÄato" msgid "Started date '%1' could not be parsed" msgstr "Datum zapoÄetí '%1' nemůže být rozpoznáno" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "ZaÄíná" @@ -4122,11 +4561,11 @@ msgstr "ZaÄíná" msgid "Starts date '%1' could not be parsed" msgstr "Datum zaÄínání '%1' nemůže být rozpoznáno" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "Stát" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "Stav" @@ -4134,8 +4573,7 @@ msgstr "Stav" msgid "Status Change" msgstr "ZmÄ›na Stavu" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" msgstr "Stav zmÄ›nÄ›n z %1 na %2" @@ -4143,33 +4581,37 @@ msgstr "Stav zmÄ›nÄ›n z %1 na %2" msgid "StatusChange" msgstr "ZmÄ›na stavu" -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "Vzít" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" -msgstr "" +msgstr "Vzít požadavky" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" -msgstr "" +msgstr "Vzít požadavek" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) -msgid "Stolen from %1 " -msgstr "Vzato %1 " +msgid "Stolen from %1" +msgstr "Vzato %1" + +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" -#: 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 +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "PÅ™edmÄ›t" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "PÅ™edmÄ›t zmÄ›nÄ›n na %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "Odeslat" @@ -4177,43 +4619,48 @@ msgstr "Odeslat" msgid "Submit Workflow" msgstr "Potvrdit model zpracování" -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" msgstr "Úspěšné" -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "ne" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "Super uživatel" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "Systém" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" -msgstr "" +msgstr "Systémová konfigurace" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" msgstr "Systémová chyba" -#: html/Admin/Tools/index.html:2 -msgid "System Tools" +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" msgstr "" -#: lib/RT/ACE_Overlay.pm:615 +#: html/Admin/Tools/index.html:47 +msgid "System Tools" +msgstr "Systémové nástroje" + +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "Systémová chyba. Právo nedelegováno." -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "Systémová chyba. Právo nepÅ™idÄ›leno." -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "Systémové skupiny" @@ -4221,40 +4668,40 @@ msgstr "Systémové skupiny" msgid "SystemRolegroup for internal use" msgstr "Skupina systémovýh pravidel pro vnitÅ™ní použití" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "MíchaÄka na beton" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "Vzít" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" -msgstr "" +msgstr "Vzít požadavky" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" -msgstr "" +msgstr "Vzít požadavek" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "Vzatý" -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "Vzor" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Vzor #%!" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "Vzor smazán" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "Vzor nenalezen" @@ -4262,11 +4709,11 @@ msgstr "Vzor nenalezen" msgid "Template not found\\n" msgstr "Vzor nenalezen\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "Vzor rozpoznán" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "Vzory" @@ -4274,33 +4721,33 @@ msgstr "Vzory" msgid "Templates for %1\\n" msgstr "Vzory pro %1\\n" -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "Toto je již aktuální hodnota" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "Toto není hodnota pro tuto uživatelskou položku" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "Toto je shodná hodnota" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" -msgstr "" +msgstr "Tento uživatel již toto práva má" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Tento uživatel je již v této frontÄ› %1" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Tento uživatel je již u tohoto požadavku %1" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Tento uživatel není v této frontÄ› %1" @@ -4309,11 +4756,11 @@ msgstr "Tento uživatel není v této frontÄ› %1" msgid "That principal is not a %1 for this ticket" msgstr "Tento uživatel není u tohoto požadavku %1" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" msgstr "Tata fronta neexistuje" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "Tento požadavek má nevyÅ™eÅ¡ené závislosti" @@ -4321,47 +4768,47 @@ msgstr "Tento požadavek má nevyÅ™eÅ¡ené závislosti" msgid "That user already has that right" msgstr "Tento uživatel již má toto právo" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" msgstr "Tento uživatel již tento požadavek vlastní" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "Tento uživatel neexistuje" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "Tento uživatel je již privilegován" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" msgstr "Tento uživatel je již neprivilegován" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "Uživatel je nyní privilegován" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" msgstr "Uživatel je nyní neprivilegován" -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" msgstr "V této frontÄ› nemůže tento uživatel vlastnit požadavky" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "Toto není Äíselný identifikátor" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "Základní údaje" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "Cc požadavku" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "Administrativní Cc požadavku" @@ -4369,7 +4816,7 @@ msgstr "Administrativní Cc požadavku" msgid "The comment has been recorded" msgstr "Komentář byl zaznamenán" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 "Následující příkaz najde vÅ¡echny aktivní požadavky ve frontÄ› 'general' a nastaví jejich priority na 99, pokud nebyly tknuty poslední 4 hodiny:" @@ -4377,43 +4824,47 @@ msgstr "Následující příkaz najde vÅ¡echny aktivní požadavky ve frontÄ› 'g msgid "The following commands were not proccessed:\\n\\n" msgstr "Následující příkazy nebyly zpracovány\\n\\n" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "Nová hodnota nastavena." -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "Vlastník požadavku" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "Žadatel požadavku" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "Tyto komentáře nejsou běžnÄ› viditelné uživateli" -#: html/Admin/Tools/Configuration.html:5 -msgid "This feature is only available to system administrators" +#: lib/RT/CustomField_Overlay.pm:912 +msgid "This custom field does not apply to that object" msgstr "" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Admin/Tools/Configuration.html:50 +msgid "This feature is only available to system administrators" +msgstr "Tato funkce je dostupná jen správcům systému" + +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." -msgstr "" +msgstr "Tato zpráva BUDE poslána na..." #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "Tento požadavek %1 %2 (%3)\\n" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Tento nástroj umožňuje uživateli spustit libovolné perl moduly z RT." -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "Tato transakce vypadá, že nemá obsah" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "nejdůležitÄ›jší%quant(%1, požadavek,požadavky,ch požadavků) tohoto uživatele" @@ -4422,7 +4873,7 @@ msgstr "nejdůležitÄ›jší%quant(%1, požadavek,požadavky,ch požadavků) toho msgid "This user's 25 highest priority tickets" msgstr "25 nejdůležitÄ›jších požadavků tohoto uživatele" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "Ät" @@ -4430,24 +4881,24 @@ msgstr "Ät" msgid "Ticket # %1 %2" msgstr "Požadavek # %1 %2" -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Maxi aktualizace požadavku #%1: %2" -#: html/Approvals/Elements/ShowDependency:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Požadavek #%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" -msgstr "" +msgstr "Požadavek %1" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Požadavek %1 vytvoÅ™en ve frontÄ› '%2'" @@ -4456,12 +4907,16 @@ msgstr "Požadavek %1 vytvoÅ™en ve frontÄ› '%2'" msgid "Ticket %1 loaded\\n" msgstr "Požadavek %1 naÄten\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Požadavek %1: %2" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: 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 "Historie požadavku # %1 %2" @@ -4474,23 +4929,27 @@ msgstr "Identifikátor požadavku" msgid "Ticket Resolved" msgstr "Požadavek vyÅ™eÅ¡en" +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 +msgid "Ticket Transactions" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Příloha požadavku" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "Obsah požadavku" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "Typ obsahu požadavku" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "Požadaven nemůže být vytvoÅ™en pro vnitÅ™ní chybu" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "Požadavek vytvoÅ™en" @@ -4498,7 +4957,7 @@ msgstr "Požadavek vytvoÅ™en" msgid "Ticket creation failed" msgstr "NezdaÅ™ilo se vytvoÅ™ení požadavku" -#: lib/RT/Transaction_Overlay.pm:502 +#: NOT FOUND IN SOURCE msgid "Ticket deleted" msgstr "Požadavek smazán" @@ -4506,9 +4965,9 @@ msgstr "Požadavek smazán" msgid "Ticket id not found" msgstr "Id požadavku nenalezeno" -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" -msgstr "" +msgstr "Metadata požadavku" #: NOT FOUND IN SOURCE msgid "Ticket not found" @@ -4522,17 +4981,20 @@ msgstr "Stav požadavku zmÄ›nÄ›n" msgid "Ticket watchers" msgstr "Pozorovatelé požadavku" -#: html/Elements/Tabs:46 +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "" + +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 msgid "Tickets" msgstr "Požadavky" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 %2" msgstr "Požadavky %1 %2" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 by %2" msgstr "Požadavky %1 dle %2" @@ -4540,38 +5002,42 @@ msgstr "Požadavky %1 dle %2" msgid "Tickets from %1" msgstr "Požadavky z %1" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "Požadavky, které záleží na tomto schválení:" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" -msgstr "" +msgstr "PÅ™edpokládaný Äas" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "Zbývající Äas" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "ÄŒas práce" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" msgstr "Zbývající Äas" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "ÄŒas k zobrazení" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" msgstr "ÄŒas práce" -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" msgstr "ÄŒas práce" +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "" + #: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "VytvoÅ™it diff tohoto commitu:" @@ -4580,37 +5046,45 @@ msgstr "VytvoÅ™it diff tohoto commitu:" msgid "To generate a diff of this commit:\\n" msgstr "VytvoÅ™it diff tohoto commitu:\\n" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "" +msgstr "K získání informací o podpoÅ™e, tréninku, zákaznických úpravách Äi licencování kontaktujte prosím %1." -#: lib/RT/Ticket_Overlay.pm:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "Poslední kontakt" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" -msgstr "" +msgstr "Nástroje" #: etc/initialdata:252 msgid "Transaction" msgstr "Transakce" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transakce %1 vymazána" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "Transakce vytvoÅ™ena" -#: lib/RT/Transaction_Overlay.pm:92 +#: 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 "Bez udání id požadavku nelze volat Transaction->Create" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:125 +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "Transakce jsou nemÄ›nné" @@ -4618,19 +5092,19 @@ msgstr "Transakce jsou nemÄ›nné" msgid "Trying to delete a right: %1" msgstr "Pokus o smazání práva: %1" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "út" -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "typ" -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "Neimplementováno" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "Unixový login" @@ -4638,44 +5112,57 @@ msgstr "Unixový login" msgid "UnixUsername" msgstr "Unixové uživatelské jméno" -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Neznámé kódování obsahu %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "NeomezenÄ›" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" -msgstr "" +msgstr "Nepojmenovaný dotaz" #: etc/initialdata:32 msgid "Unprivileged" msgstr "Neprivilegovaný" -#: lib/RT/Transaction_Overlay.pm:562 +#: 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:648 msgid "Untaken" msgstr "Vrácen" -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "Aktualizace" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" -msgstr "" +msgstr "Aktualizovat vÅ¡echny" #: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Identifikátor aktualizace" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" -msgstr "" +msgstr "Aktualizovat požadavek" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "Typ aktualizace" @@ -4687,19 +5174,19 @@ msgstr "Aktualizovat spoleÄnÄ› vÅ¡echny tyty požadavky" msgid "Update email" msgstr "Aktualizovat email" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" -msgstr "" +msgstr "Aktualizovat hromadnÄ› požadavky" #: NOT FOUND IN SOURCE msgid "Update name" msgstr "Aktualizovat jméno" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "Aktualizace nezaznamenána" -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "Aktualizovat vybrané požadavky" @@ -4707,7 +5194,7 @@ msgstr "Aktualizovat vybrané požadavky" msgid "Update signature" msgstr "Aktualizace podpisu" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "Aktualizace požadavku" @@ -4715,30 +5202,58 @@ msgstr "Aktualizace požadavku" msgid "Update ticket # %1" msgstr "Aktualizace požadavku # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Aktualizace požadavku #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Aktualizace požadavku #%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "Typ aktualizace nebyl ani korespondence ani komentář." -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "Aktualizováno" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" +msgstr "NaÄíst" + +#: 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:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" +msgstr "NaÄíst vaÅ¡e zmÄ›ny" + +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" #: NOT FOUND IN SOURCE @@ -4749,55 +5264,52 @@ msgstr "Uživatel %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Heslo uživatele %1: %2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found" -msgstr "Uživatel '%1' nenalezen" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found\\n" -msgstr "Uživatel '%1' nenalezen\\n" +msgstr "Uživatel '%1' nemůže být nalezen" #: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Uživatelem definované" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" -msgstr "" +msgstr "Uživatelem definované podmínky a akce" #: NOT FOUND IN SOURCE msgid "User ID" msgstr "Identifikátor uživatele" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "Identifikátor uživatele" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "Práva uživatele" -#: html/Admin/Users/Modify.html:252 +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" + +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "Uživatel nemůže být vytvoÅ™en: %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "Uživatel vytvoÅ™en" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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 "Uživatelem definované skupiny" -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" -msgstr "" +msgstr "Uživatel naÄten" #: NOT FOUND IN SOURCE msgid "User notified" @@ -4807,39 +5319,43 @@ msgstr "Uživatel upozornÄ›n" msgid "User view" msgstr "Uživatelský pohled" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Groups/index.html:99 +msgid "User-defined groups" +msgstr "" + +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "Uživatelské jméno" -#: 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 +#: 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:1086 msgid "Users" msgstr "Uživatelé" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "Uživatelé odpovídající podmínce vyhledání" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" -msgstr "" +msgstr "Platný dotaz" #: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "Hodnota fronty" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "Hodnoty" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "Být pozorovatelem" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "Být AdminCc pozorovatelem" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "Pozorovatelé" @@ -4847,7 +5363,7 @@ msgstr "Pozorovatelé" msgid "WebEncoding" msgstr "Kódování WWW" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "st" @@ -4881,7 +5397,7 @@ msgstr "ZmÄ›ní-li se vlastník požadavku" #: etc/initialdata:178 etc/upgrade/3.1.17/content:16 msgid "Whenever a ticket's priority changes" -msgstr "" +msgstr "PÅ™i zmÄ›nÄ› priority požadavku" #: etc/initialdata:193 msgid "Whenever a ticket's queue changes" @@ -4903,35 +5419,35 @@ msgstr "PÅ™ijde-li komentář" msgid "Whenever correspondence comes in" msgstr "PÅ™ijde-li korespondence" -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "ZamÄ›stnání" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" -msgstr "" +msgstr "Pracovat off-line" #: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "Telefon do zamÄ›stnání" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "Odpracováno" -#: html/autohandler:150 +#: NOT FOUND IN SOURCE msgid "XXX CHANGEME You are not an authorized user" -msgstr "" +msgstr "XXX ZMÄšNIT Nejste autorizovaný uživatel" -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" msgstr "Požadavek již vlastníte" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" msgstr "Nejste autorizovaný uživatel" -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Můžete pÅ™idÄ›lit pouze požadavky, které jsou vaÅ¡e nebo nejsou vlastnÄ›ny" @@ -4939,25 +5455,25 @@ msgstr "Můžete pÅ™idÄ›lit pouze požadavky, které jsou vaÅ¡e nebo nejsou vlas msgid "You don't have permission to view that ticket.\\n" msgstr "Nemáte právo k zobrazení tohoto požadavku.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "Nalezl jste %1 požadavků ve frontÄ› %2" #??? quant -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "Byl jste odhlášen od RT." -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." msgstr "V této frontÄ› nemáte práva vytvářet požadavky." -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." msgstr "V této frontÄ› nemůžete vytvářet požadavky." -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "Jste vítáni k dalšímu pÅ™ihlášení" @@ -4985,24 +5501,36 @@ msgstr "Váš požadavek byl odmítnut" msgid "Your request was rejected." msgstr "Váš požadavek byl odmítnut." -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "VaÅ¡e uživatelské jméno Äi heslo je nesprávné" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "PSÄŒ" -#: html/User/Elements/DelegateRights:58 +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" +msgstr "" + +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" +msgstr "" + +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "jak je dovoleno %1" -#: html/SelfService/Closed.html:27 -msgid "closed" +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" msgstr "" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/SelfService/Closed.html:49 +msgid "closed" +msgstr "uzavÅ™en" + +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "obsahuje" @@ -5022,7 +5550,7 @@ msgstr "korespondence (zÅ™ejmÄ›) neposlána" msgid "correspondence sent" msgstr "korespondence poslána" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "dnů" @@ -5030,64 +5558,92 @@ msgstr "dnů" msgid "delete" msgstr "smazat" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "smazán" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "neodpovídá" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "neobsahuje" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "je rovno" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "" + #: NOT FOUND IN SOURCE msgid "filename" msgstr "název souboru" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "vÄ›tší než" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "skupina '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "hodin" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "Identifikátor" -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "je" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "není" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "menší než" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "odpovídá" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "min" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "minut" @@ -5095,84 +5651,88 @@ msgstr "minut" msgid "modifications\\n\\n" msgstr "úpravy\\n\\n" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "mÄ›síců" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "nový" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" -msgstr "" +msgstr "bez jména" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "znehodnotit" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "žádný" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "není rovno" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "otevÅ™ený" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "vlastní skupina '%1' pro uživatele '%2'" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "fronta %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "zamítnutý" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "vyÅ™eÅ¡ený" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "sek" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "" + +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "odložený" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "systém %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "systémová skupina '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "volající komponenta neudala důvod" -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "požadavek #%1 %2" -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "nepopsaná skupina %1" @@ -5181,12 +5741,12 @@ msgstr "nepopsaná skupina %1" msgid "undescripbed group %1" msgstr "nepopsaná skupina %1" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "uživatel %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "týdnů" @@ -5194,7 +5754,7 @@ msgstr "týdnů" msgid "with template %1" msgstr "se vzorem %1" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "roků" diff --git a/rt/lib/RT/I18N/da.po b/rt/lib/RT/I18N/da.po index e2a2e8c2a..76e97f5eb 100644 --- a/rt/lib/RT/I18N/da.po +++ b/rt/lib/RT/I18N/da.po @@ -1,5 +1,8 @@ msgid "" msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" #: NOT FOUND IN SOURCE msgid "#" @@ -9,67 +12,64 @@ msgstr "#" msgid "#%1" msgstr "#%1" -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "#%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" -msgstr "" +msgstr "$prefix %1" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" -msgstr "" +msgstr "%1 #%2" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +#: NOT FOUND IN SOURCE msgid "%1 %2 %3" -msgstr "" +msgstr "%1 %2 %3" -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) msgid "%1 %2 %3 %4:%5:%6 %7" msgstr "%2 %1 %3 %4:%5:%6 %7" -#: lib/RT/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" msgstr "%1 %2 tilføjet" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "%1 %2 siden" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%1 %2 ændret til %3" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" msgstr "%1 %2 slettet" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" msgstr "%1 %2 med skabelon %3" @@ -78,46 +78,46 @@ msgstr "%1 %2 med skabelon %3" msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 denne ticket\\n" -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" -msgstr "" +msgstr "%1 (%2) af %3" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" -msgstr "" +msgstr "%1 (Uændret)" #: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "%1 - %2 vist" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" msgstr "%1 - Et argument til afsendelse til %2" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Send status opdateringer til STDOUT" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Specificér den aktion du ønsker at benytte" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Specificer det betingelses modul du ønsker at benytte" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Specificer det søge modul du ønsker at benytte" @@ -128,20 +128,35 @@ msgstr "%1 - Specificer det søge modul du ønsker at benytte" $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 -#. ('»|«', $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 +#. ('»|«', + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) msgid "%1 RT %2 Copyright 1996-%3 %4." -msgstr "" +msgstr "%1 RT %2 Copyright 1996-%3 %4." -#: lib/RT/ScripAction_Overlay.pm:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1 ScripAktion indlæst" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 tilføjet som en værdi for %2" @@ -154,32 +169,31 @@ msgstr "%1 aliaser kræver en TicketID at arbejde pÃ¥" msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1 aliaser kræver en TicketID at arbejde pÃ¥ (fra %2) %3" -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($args{'Base'}) #. ($args{'Target'}) msgid "%1 appears to be a local object, but can't be found in the database" msgstr "%1 synes at være et lokalt object, men kan ikke findes i databasen" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 af %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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") msgid "%1 changed from %2 to %3" msgstr "%1 ændret fra %2 til %3" -#: html/Search/Build.html:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" -msgstr "" +msgstr "%1 kopier" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "%1 kunne ikke sættes til %2" @@ -187,31 +201,40 @@ msgstr "%1 kunne ikke sættes til %2" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 kun ikke initiere en transaktion (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 kunne ikke sætte status til løst. RT's Database er muligvis inkonsistent" -#: html/Elements/MyTickets:24 +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) +msgid "%1 created" +msgstr "%1 oprettet" + +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) +msgid "%1 deleted" +msgstr "%1 slettet" + +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" -msgstr "" +msgstr "%1 højest prioriterede tickets jeg ejer" #: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." -msgstr "%1 højest prioriteterede tickets jeg ejer..." +msgstr "%1 højest prioriterede tickets jeg ejer..." -#: html/Elements/MyTickets:26 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I requested..." msgstr "%1 højest prioriterede tickets jeg har anmodet om" -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "%1 er et værktøj som reagerer pÃ¥ tickets fra et eksternt skedulerings værktøj sÃ¥som cron." -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 er ikke længere en %2 for denne kø" @@ -220,8 +243,7 @@ msgstr "%1 er ikke længere en %2 for denne kø" msgid "%1 is no longer a %2 for this ticket." msgstr "%1 er ikke længere en %2 for denne ticket." -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a value for custom field %2" msgstr "%1 er ikke længere en værdi for special felt %2" @@ -229,7 +251,7 @@ msgstr "%1 er ikke længere en værdi for special felt %2" msgid "%1 isn't a valid Queue id." msgstr "%1 er ikke en lovlig kø ID" -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -238,16 +260,20 @@ msgstr "%1 er ikke en lovlig kø ID" msgid "%1 min" msgstr "%1 min." -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" -msgstr "" +msgstr "%1 nyeste ikke ejede tickets" #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 ikke vist" -#: html/User/Elements/DelegateRights:75 +#: lib/RT/CustomField_Overlay.pm:827 +msgid "%1 objects" +msgstr "%1 objekter" + +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 rettigheder" @@ -264,7 +290,7 @@ msgstr "%1 type er ukendt for $MessageId" msgid "%1 type unknown for %2" msgstr "%1 type ukendt for %2" -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 vil løse samtlige alle medlemmer af en løst gruppe ticket." @@ -274,28 +300,36 @@ msgstr "%1 vil løse samtlige alle medlemmer af en løst gruppe ticket." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 vil " -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: lib/RT/CustomField_Overlay.pm:828 +msgid "%1's %2 objects" +msgstr "%1's %2 objekter" + +#: lib/RT/CustomField_Overlay.pm:829 +msgid "%1's %2's %3 objects" +msgstr "%1's %2's %3 objekter" + +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" -msgstr "" +msgstr "%1's gemte søgninger" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1: ingen vedhæftet fil angivet" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' er ikke en valid status værdi" @@ -308,50 +342,50 @@ msgstr "'%1' er ikke en genkendt aktion. " msgid "(Check box to delete scrip)" msgstr "(Check box til sletning af scrip)" -#: 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 +#: 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 "(Check box til sletning)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "" +msgstr "(Check bokse for fravalg af notificering af de listede modtagere)" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "" +msgstr "(Check bokse for tilvalg af notificering af de listede modtagere)" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "(Indtast ticket ids eller URLSs, separeret af mellemrum)" #MANGLER -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: 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 "(Hvis ikke angivet vil defaulte til %1" +msgid "(If left blank, will default to %1)" +msgstr "(Hvis ikke angivet vil defaulte til %1)" -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "(Ingen custom felter)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(Ingen medlemmer)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "(Ingen scrips)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "(Ingen templates)" -#: html/Ticket/Update.html:66 +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 +msgid "(None)" +msgstr "(Ingen)" + +#: html/Ticket/Update.html:88 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 blind karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Ændrer <b>IKKE</b> hvem som vil modtage fremtidige opdateringer.)" @@ -359,11 +393,11 @@ msgstr "(Sender en blind karbon-kopi af denne opdatering til en komma separeret 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 blind karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Ændrer <b>IKKE</b> hvem som vil modtage fremtidige opdateringer.)" -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Disse <b>vil</b> modtage fremtidige opdateringer.)" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Ændrer <b>IKKE</b> hvem som vil modtage fremtidige opdateringer.)" @@ -371,19 +405,19 @@ msgstr "(Sender en karbon-kopi af denne opdatering til en komma separeret liste 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 karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Disse <b>vil</b> modtage fremtidige opdateringer.)" -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 karbon-kopi af denne opdatering til en komma separeret liste af e-mail adresser. Disse <b>vil</b> modtage fremtidige opdateringer.)" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "" +msgstr "(Benyt disse felter nÃ¥r du vælger 'Bruger Defineret' for en betingelse eller aktion" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(tom)" -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "(intet navn listet)" @@ -391,31 +425,35 @@ msgstr "(intet navn listet)" msgid "(no subject)" msgstr "(intet emne)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(ingen værdi)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Admin/Elements/EditCustomFieldValues:47 +msgid "(no values)" +msgstr "(ingen værdier)" + +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(kun en ticket)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(afventer godkendelse)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" -msgstr "" +msgstr "(afventer anden Samling)" #: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(afventer andre tickets)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(obligatorisk)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(unavngiven)" @@ -427,24 +465,24 @@ msgstr "25 højest prioriterede tickets jeg ejer..." msgid "25 highest priority tickets I requested..." msgstr "25 højest prioriterede tickets jeg har anmodet..." -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "<% $_ %>" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" -msgstr "" +msgstr "<%$_%>" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" #MANGLER -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"Ny ticket i\"> %1" @@ -453,69 +491,85 @@ msgstr "<input type=\"submit\" value=\"Ny ticket i\"> %1" msgid "A blank template" msgstr "En blank template" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "ACE ikke fundet" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "ACEs kan kun blive oprettet og slettet" +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "OG" + #: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Afbryder for a undgÃ¥ utilsigtede ticket ændringer" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "Om mig" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "Adgangskontrol" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "Aktion" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Aktion %1 ikke fundet" #MANGLER -#: bin/rt-crontool:119 +#: NOT FOUND IN SOURCE msgid "Action committed." msgstr "Aktion " -#: bin/rt-crontool:115 +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "Aktion committet.\\n" + +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "Aktion forberedt" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" -msgstr "" +msgstr "Tilføj" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "Tilføj AdminCc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "Tilføj Cc" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "Tilføj kolonner" + +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" -msgstr "" +msgstr "Tilføj Kriterie" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "Tilføj flere filer" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "Tilføj Anmoder" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" msgstr "Tilføj værdi" @@ -527,50 +581,54 @@ msgstr "Tilføj en ny global scrip" msgid "Add a scrip to this queue" msgstr "Tilføj en scrip til denne kø" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" msgstr "Tilføj en scrip som vil virke for alle køer" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" -msgstr "" +msgstr "Tilføj yderligere kriterier" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "Tilføj kommentarer eller svar til valgte tickets" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "Tilføj medlemmer" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "Tilføj nye watchers" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "Tilføj, slet og editer custom felt værdier for objekter" + HERTIL #: NOT FOUND IN SOURCE msgid "AddNextState" msgstr "TilføjNæsteStatus" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Tilføjede principal som %1 for denne kø" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Tilføjede principal som %1 for denne ticket" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "Adresse1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "Adresse2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "Admin Cc" @@ -582,7 +640,7 @@ msgstr "Admin Kommentar" msgid "Admin Correspondence" msgstr "Admin Korrespondance" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" msgstr "Admin Køer" @@ -590,7 +648,7 @@ msgstr "Admin Køer" msgid "Admin users" msgstr "Admin brugere" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "Amin/Global konfiguration" @@ -607,7 +665,7 @@ msgstr "Admin/Køer/Basics" msgid "AdminAllPersonalGroups" msgstr "AdminAllPersonligeGrupper" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "AdminCc" @@ -619,43 +677,47 @@ msgstr "AdminKommentar" msgid "AdminCorrespondence" msgstr "AdminKorrespondance" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 +msgid "AdminCustomField" +msgstr "AdminCustomerField" + +#: NOT FOUND IN SOURCE msgid "AdminCustomFields" msgstr "AdminCustomFelter" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "AdminGruppe" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "AdminGruppeMedlemskab" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "AdminEgnePersonligeGrupper" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "AdminKø" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "AdminBrugere" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "Administrativ Cc" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" -msgstr "" +msgstr "Avanceret" #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Avanceret Søgning" -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "Efter" @@ -663,15 +725,19 @@ msgstr "Efter" msgid "Age" msgstr "Alder" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "Aggregator" + #: etc/initialdata:363 msgid "All Approvals Passed" msgstr "All godkendelser godtaget" -#: html/Admin/Elements/EditCustomFields:94 +#: NOT FOUND IN SOURCE msgid "All Custom Fields" msgstr "Alle custom felter" -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "Alle Køer" @@ -679,31 +745,39 @@ msgstr "Alle Køer" msgid "Always sends a message to the requestors independent of message sender" msgstr "Sender altid en besked til requestoren uafhængigt af besked afsenderen" -#: html/Search/Edit.html:42 +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" +msgstr "Og/Eller" + +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 +msgid "Applies to" +msgstr "Gælder for" + +#: html/Search/Edit.html:64 msgid "Apply" -msgstr "" +msgstr "Foretag" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" -msgstr "" +msgstr "Foretag dine ændringer" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "Godkendelse" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "Godkendelse #%1: %2" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Godkendelse #%1: Noter ikke gemt grundet en system fejl" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Godkendelse #%1: Noter gemt" @@ -724,7 +798,7 @@ msgstr "Godkendelse afvist" msgid "Approval diagram" msgstr "Godkendelses diagram" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "Godkend" @@ -732,48 +806,56 @@ msgstr "Godkend" msgid "Approver's notes: %1" msgstr "Apprtover's noter: %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "Apr." -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "Stigende" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: lib/RT/Queue_Overlay.pm:97 +msgid "Assign and remove custom fields" +msgstr "Tilføj og slet custom felter" + +#: lib/RT/Queue_Overlay.pm:97 +msgid "AssignCustomFields" +msgstr "TilknytCustomFelter" + +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "Vedhæft" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "Vedhæft fil" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "Vedhæftet fil" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 #. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Vedhæftede fil '%1' kunne ikke indlæses" -#: lib/RT/Transaction_Overlay.pm:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "Vedhæftet fil oprettet" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "Vedhæftetfilnavn" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "Vedhæftede filer" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" -msgstr "" +msgstr "Attribut Slet" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "Aug." @@ -793,10 +875,6 @@ msgstr "Autosvar til Requestere" msgid "AutoreplyToRequestors" msgstr "AutoSvarTilRequestere" -#: html/Search/Elements/EditFormat:4 -msgid "Available Columns" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Ubrugelig PGP Signatur: %1\\n" @@ -813,19 +891,19 @@ msgstr "DÃ¥rlige data i %1" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Ubrugeligt transaktionsnummer for vedhæftet fil. %1 skulle være %2\\n" -#: 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 +#: 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 "Basics" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "Vær sikker pÃ¥ at gemme dine ændringer" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "Før" @@ -833,92 +911,117 @@ msgstr "Før" msgid "Begin Approval" msgstr "PÃ¥begynd godkendelse" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "Binær" + #: etc/initialdata:217 msgid "Blank" msgstr "Tom" +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "Fed" + #: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "URl for denne søgning som kan gemmes som bookmark" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" -msgstr "" +msgstr "Bogmærkbart link" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "Korte headers" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "Masse-ticket opdatering" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "Kan ikke modificere system brugere" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" msgstr "Kan denne principal se denne kø" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "Kan ikke tilføje custom felt værdi uden et navn" -#: html/Search/Build.html:694 -msgid "Can't find a saved search to work with" +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" msgstr "" -#: lib/RT/Link_Overlay.pm:126 +#: html/Search/Build.html:761 +msgid "Can't find a saved search to work with" +msgstr "Kan ikke finde en gemt søgning til at arbejde med" + +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "Kan ikke linke en ticket til den selv" -#: lib/RT/Ticket_Overlay.pm:2716 +#: NOT FOUND IN SOURCE msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Kan ikke sammensætte ind i en sammensat ticket. Du skulle aldrig fÃ¥ denne fejl" -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" -msgstr "" +msgstr "Kan ikke gemme denne søgning" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "Kan ikke specificere bÃ¥de base og mÃ¥l" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "Kan ikke oprette bruger: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "Cc" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "Skift adgangskode" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/Elements/Submit:100 +msgid "Check All" +msgstr "Vælg Alle" + +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "Vælg boks for at slette" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "Vælg boks for a indrage rettighed" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "Børn" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "By" -#: html/Ticket/Elements/ShowDates:47 +#: html/Elements/Submit:102 +msgid "Clear All" +msgstr "Fravælg Alle" + +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "Lukket" -#: html/SelfService/Closed.html:24 +#: NOT FOUND IN SOURCE msgid "Closed Tickets" msgstr "Lukkede Tickets" @@ -926,7 +1029,7 @@ msgstr "Lukkede Tickets" msgid "Closed requests" msgstr "Lukkede requests" -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "Lukkede requests" @@ -934,11 +1037,11 @@ msgstr "Lukkede requests" msgid "Command not understood!\\n" msgstr "Kommando ikke forstÃ¥et!\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "Kommentar" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "Kommentar adresse" @@ -946,11 +1049,11 @@ msgstr "Kommentar adresse" msgid "Comment not recorded" msgstr "Kommentar ikke skrevet" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "Kommentér pÃ¥ tickets" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "KommenterPÃ¥Ticket" @@ -958,11 +1061,11 @@ msgstr "KommenterPÃ¥Ticket" msgid "Comments" msgstr "Kommentarer" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "Kommentarer (ikke sendt til requestere)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "Kommentarer (ikke sendt til requestere)" @@ -970,15 +1073,15 @@ msgstr "Kommentarer (ikke sendt til requestere)" msgid "Comments about %1" msgstr "Kommentarer pÃ¥ %1" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "Kommentarer om denne bruger" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "Kommentarer tilføjet" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "Commit Ryddet" @@ -986,23 +1089,23 @@ msgstr "Commit Ryddet" msgid "Compile Restrictions" msgstr "Oversættelses Restriktioner" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "Betingelse" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "Betingelser matcher..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "Betingelse ikke fundet" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "Konfiguration" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "Bekræft" @@ -1014,17 +1117,17 @@ msgstr "KontaktInfomationsSystem" msgid "Contacted date '%1' could not be parsed" msgstr "Dato kontaktet: '%1' kunne ikke parses" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "Indhold" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" -msgstr "" +msgstr "Content-Type" -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" -msgstr "" +msgstr "Kopier" #: etc/initialdata:286 msgid "Correspondence" @@ -1034,7 +1137,7 @@ msgstr "Korrespondance" msgid "Correspondence Address" msgstr "Korrespondance adresse" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "Korrenspondance tilføjet" @@ -1042,33 +1145,47 @@ msgstr "Korrenspondance tilføjet" msgid "Correspondence not recorded" msgstr "Korrespondance ikke gemt" -#: lib/RT/Ticket_Overlay.pm:3471 +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. " msgstr "Ikke muligt at tilføje ny custom felt værdi for ticket. " -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "Kunne ikke tilføje ny custom felt værdi" + +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "Kunne ikke tilføje ny custom felt værdi. %1" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " msgstr "Ikke muligt at skifte ejer" -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "Ikke muligt at oprette Custom felt" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "Kunne ikke oprette CustomField: %1" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "Ikke muligt at oprette gruppe" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" msgstr "Ikke muligt at oprette template: %1" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "Ikke muligt at oprette ticket. Kø ikke sat" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" msgstr "Ikke muligt at oprette bruger" @@ -1080,11 +1197,11 @@ msgstr "Ikke muligt at finde ticket med id %1" msgid "Could not find group %1." msgstr "Ikke muligt at finde gruppe %1" -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "Ikke muligt at finde eller oprette den bruger" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "Ikke muligt at finde principal" @@ -1092,21 +1209,34 @@ msgstr "Ikke muligt at finde principal" msgid "Could not find user %1." msgstr "Ikke muligt at finde bruger %1" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/CustomFields/Objects.html:69 +msgid "Could not load CustomField %1" +msgstr "Kunne ikke indlæse CustomFelt %1" + +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "Ikke muligt at indlæse gruppe" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Kunne ikke g¯re den principal %1 for denne k¯" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Kunne ikke g¯re den prinicipal %1 for denne ticket" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Kunne ikke fjerne den principal %1 for denne k¯" @@ -1115,15 +1245,15 @@ msgstr "Kunne ikke fjerne den principal %1 for denne k¯" msgid "Could not remove that principal as a %1 for this ticket" msgstr "msgstr "Kunne ikke fjerne den principal %1 for denne ticket" " -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" -msgstr "" +msgstr "Kunne ikke sætte bruger info" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" msgstr "Kunne ikke tilf¯je medlem til gruppe" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Kunne ikke oprette en lave transaktion: %1" @@ -1136,50 +1266,65 @@ msgstr "Kunne ikke afg¯re hvad som skulle foretages ud fra GPG's svar\\n" msgid "Couldn't find group\\n" msgstr "Kunne ikke finde gruppe\\n" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" msgstr "Kunne ikke finde row" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" msgstr "Kunne ikke finde den principal" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" -msgstr "Kunne ikke finde den vÊrdi" +msgstr "Kunne ikke finde den værdi" #: NOT FOUND IN SOURCE msgid "Couldn't find user\\n" msgstr "Kunne ikke finde bruger\\n" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" -msgstr "Kunne ikke indlÊse %1 fra bruger database.\\n" +msgstr "Kunne ikke indlæse %1 fra bruger database.\\n" + +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) +msgid "Couldn't load Class %1" +msgstr "Kunne ikke indlæse klasse %1" + +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) +msgid "Couldn't load CustomField %1" +msgstr "Kunne ikke indlæse CustomField %1" #: NOT FOUND IN SOURCE msgid "Couldn't load RT config file '%1' %2" -msgstr "Kunne ikke indlÊse RT konfigurations fil '%1' %2" +msgstr "Kunne ikke indlæse RT konfigurations fil '%1' %2" #: NOT FOUND IN SOURCE msgid "Couldn't load Scrips." -msgstr "Kunne ikke indlÊse Scrips." +msgstr "Kunne ikke indlæse Scrips." -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" -msgstr "Kunne ikke indlÊse gruppe %1" +msgstr "Kunne ikke indlæse gruppe %1" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" -msgstr "Kunne ikke indlÊse link" +msgstr "Kunne ikke indlæse link" -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: 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 "Kunne ikke indlæse object %1" + +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" -msgstr "Kunne ikke indlÊse k¯" +msgstr "Kunne ikke indlæse k¯" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" msgstr "Kunne ikke indlÊse k¯ %1" @@ -1196,16 +1341,26 @@ msgstr "Kunne ikke indlÊse template" msgid "Couldn't load that user (%1)" msgstr "Kunne ikke indlÊse den bruger (%1)" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Kunne ikke indlÊse ticket '%1'" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "Land" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "opret" @@ -1213,16 +1368,16 @@ msgstr "opret" msgid "Create Tickets" msgstr "opret Tickets" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "opret et Custom felt" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "opret et Custom felt for k¯ %1" -#: html/Admin/Global/CustomField.html:47 +#: NOT FOUND IN SOURCE msgid "Create a CustomField which applies to all queues" msgstr "opret et Custom felt som gÊlder for alle k¯er" @@ -1234,11 +1389,11 @@ msgstr "opret et nyt Custom felt" msgid "Create a new global scrip" msgstr "opret en ny global scrip" -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "opret en ny gruppe" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "opret en ny personlig gruppe" @@ -1254,15 +1409,15 @@ msgstr "opret en ny scrip" msgid "Create a new template" msgstr "opret en ny template" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "opret en ny ticket" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "opret en ny bruger" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "opret en ny k¯" @@ -1274,16 +1429,16 @@ msgstr "opret en k¯ med navnet" msgid "Create a request" msgstr "opret en request" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "opret en scrip for k¯ %1" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "opret en template" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" msgstr "opret en ticket" @@ -1291,19 +1446,19 @@ msgstr "opret en ticket" msgid "Create new tickets based on this scrip's template" msgstr "opret en ny ticket baseret p denne scrip's template" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "opret ticket" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" msgstr "opret tickets i denne k¯" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "opret, slet og rediger custom felter" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" msgstr "opret, slet og rediger k¯er" @@ -1311,23 +1466,27 @@ msgstr "opret, slet og rediger k¯er" msgid "Create, delete and modify the members of any user's personal groups" msgstr "opret, slet og rediger medlemmerne af vilkÂrlig brugers personlige grupper" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "opret, slet og rediger medlemmernes personlie grupper" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "opret, slet og rediger brugere" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "OpretGemtSøgning" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "OpretTicket" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "Oprettet" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Oprettede Customer felt %1" @@ -1336,23 +1495,23 @@ msgstr "Oprettede Customer felt %1" msgid "Created template %1" msgstr "Oprettede template %1" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" -msgstr "" +msgstr "Opretter" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "Nuværende relationer" -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "Nuværende Scrips" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "Nuværende medlemmer" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "Nuværende rettigheder" @@ -1360,60 +1519,63 @@ msgstr "Nuværende rettigheder" msgid "Current search criteria" msgstr "Nuværende søgekriterier" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" -msgstr "NuvÊrende watchere" +msgstr "Nuværende watchere" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) +#: NOT FOUND IN SOURCE msgid "Custom Field #%1" -msgstr "Custom Field #%1" +msgstr "Custom Felt #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "Custom Felter" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) +msgid "Custom Fields for %1" +msgstr "Custom Felter for %1" + +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "Custom aktion oprydnings kode" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "Custom aktion forberedelses kode" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "Custom betingelse" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: NOT FOUND IN SOURCE msgid "Custom field %1 %2 %3" msgstr "Custom felt %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Custom felt %1 har vÊrdi." -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Custom felt %1 har ingen vÊrdi." -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Custom felt %1 ikke fundet" -#: html/Admin/Elements/EditCustomFields:195 +#: NOT FOUND IN SOURCE msgid "Custom field deleted" msgstr "Custom felt slettet" -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" msgstr "Custom felt ikke fundet" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "Custom felt vÊrdi %1 kunne ikke blive fundet for custom felt %2" @@ -1422,27 +1584,27 @@ msgstr "Custom felt vÊrdi %1 kunne ikke blive fundet for custom felt %2" msgid "Custom field value changed from %1 to %2" msgstr "Custom felt vÊrdi Êndret fra %1 to %2" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "Custom felt vÊrdi kunne ikke slettes" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "Custom felt vÊrdi kunne ikke findes" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "Custom felt vÊrdi slettet" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "CustomFelt" -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "Datoer" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "Dec." @@ -1454,13 +1616,13 @@ msgstr "Default Autosvars Template" msgid "Default Autoresponse template" msgstr "Default autosvars template" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" -msgstr "" +msgstr "Default Kø" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" -msgstr "" +msgstr "Default Requestor" #: etc/initialdata:296 msgid "Default admin comment template" @@ -1478,64 +1640,72 @@ msgstr "Default korrespondance template" msgid "Default transaction template" msgstr "Default transaktions template" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: NOT FOUND IN SOURCE msgid "Default: %1/%2 changed from %3 to %4" msgstr "Default: %1/%2 Êndret til %3 to %4" -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "Overdrag rettigheder" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "Overdrag specifikke rettigeder som er blevet tildelt til dig." -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "OverdragRettigheder" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "Overdragelse" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "Slet" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" +msgstr "Slet Template" + +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" -msgstr "" +msgstr "Slet valgte scrips" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" msgstr "Slet tickets" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "SletTicket" -#: lib/RT/Transaction_Overlay.pm:162 +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Deleting this object could break referential integrity" msgstr "Sletning af dette objekt kan ¯delÊgge referentiel integritet" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "Sletning af dette objekt vil ¯delÊgge referentiel integritet" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "Sletning af dette objekt vil stride mod referentiel integritet" -#: html/Approvals/Elements/Approve:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "Afvis" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "Afhængighed til" @@ -1543,39 +1713,39 @@ msgstr "Afhængighed til" msgid "Dependencies: \\n" msgstr "Afhængigheder: \\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "Afhængighed til %1 tilf¯jet" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "Afhængighed til %1 slettet" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "Afhængighed af %1 tilf¯jet" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "Afhængighed af %1 slettet" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "Afhængig af" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "Faldende" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "Beskriv problemet nedenfor" -#: 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 +#: 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:56 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" @@ -1583,47 +1753,51 @@ msgstr "Beskrivelse" msgid "Details" msgstr "Detaljer" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "Vis" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "Vis Adgangs Kontrol Liste" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" -msgstr "" +msgstr "Vis Kolonner" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" msgstr "Vis Scrip templates for denne kø" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" msgstr "Vis scrips for denne kø" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "Visnings modus" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" -msgstr "" +msgstr "Vis gemte søgninger fir denne gruppe" #: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Vis ticket #%1" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "" +msgstr "Distribueret under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> af GNU GPL'en.</a>" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "Gør noget og alting" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "Foretag Søgningen" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "Genindlæs ikke denne side-" @@ -1631,11 +1805,15 @@ msgstr "Genindlæs ikke denne side-" msgid "Don't show search results" msgstr "Vis ikke søge resultater" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "Download" -#: 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 +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 +msgid "Download as a tab-delimited file" +msgstr "Download som en tab-opdelt fil" + +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "Forfaldende" @@ -1651,33 +1829,45 @@ msgstr "FEJL: Kunne ikke indlæse ticket '%1': %2.\\n" msgid "Edit" msgstr "Editér" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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 "Editér customer felter for %1" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "" + +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "" + +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "Editér forhold" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" -msgstr "" +msgstr "Editér Søgning" -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Editér Templates for kø %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" -msgstr "" +msgstr "Editér gemte søgniner for denne gruppe" #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "Editér scrips" -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "Editér system templates" @@ -1685,11 +1875,11 @@ msgstr "Editér system templates" msgid "Edit templates for %1" msgstr "Editér templates for %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" -msgstr "" +msgstr "EditerGemteSøgninger" -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "Editér Konfiguration for kø %1" @@ -1698,17 +1888,17 @@ msgstr "Editér Konfiguration for kø %1" msgid "Editing Configuration for user %1" msgstr "Editerer Konfiguration for bruger %1" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Editerer Custom felt %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Editerer medlemskab for gruppe %1" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Editerer medlemskab for personlig gruppe %1" @@ -1717,15 +1907,15 @@ msgstr "Editerer medlemskab for personlig gruppe %1" msgid "Editing template %1" msgstr "Editerer template %1" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "Enten base eller mÃ¥l skal være specificeret" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "E-mail" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "E-mail adresse i brug" @@ -1737,60 +1927,65 @@ msgstr "E-mailAdresse" msgid "EmailEncoding" msgstr "E-mail encoding" -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Aktiveret (Fravalg af denne boks deaktiverer dette custom felt)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 msgid "Enabled (Unchecking this box disables this group)" msgstr "Aktiveret (Fravalg af denne boks deaktiverer denne gruppe)" -#: html/Admin/Queues/Modify.html:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Aktiveret (Fravalg af denne boks deaktiverer denne kø)" -#: html/Admin/Elements/EditCustomFields:97 +#: NOT FOUND IN SOURCE msgid "Enabled Custom Fields" msgstr "Aktiverede Custom felter" -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" msgstr "Aktiverede Køer" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "Aktiverede status %1" -#: lib/RT/CustomField_Overlay.pm:433 +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) +msgid "Enabled status: %1" +msgstr "Tilvalgt status: %1" + +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "Indtast flere værdier" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "" +msgstr "Angiv objecter eller URIs for linkning af objekter. Separér flere med mellemrum" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "Indtast en værdi" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "" +msgstr "Angiv køer eller URIs til linkning køer til. Separér flere med mellemrum" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Indtast tickets eller URIs for linkning af tickets. Separer flere værdier med mellemrum." -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: lib/RT/CustomField_Overlay.pm:66 +msgid "Enter up to %1 values" +msgstr "Skriv op til %1 værdier" + +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "Fejl" -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "Fejl i parametre til Queue->AddWatcher" @@ -1798,11 +1993,11 @@ msgstr "Fejl i parametre til Queue->AddWatcher" msgid "Error in parameters to Queue->DelWatcher" msgstr "Fejl i parametre til Queue->DelWatcher" -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "" +msgstr "Fejl i parametre til Queue->DeleteWatcher" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Fejl i parametre til Ticket->AddWatcher" @@ -1810,23 +2005,23 @@ msgstr "Fejl i parametre til Ticket->AddWatcher" msgid "Error in parameters to Ticket->DelWatcher" msgstr "Fejl i parametre til Ticket->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "" +msgstr "Fejl i parametre til Ticket->DeleteWatcher" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" -msgstr "" +msgstr "Eskalér tickets" -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" -msgstr "" +msgstr "Estimeret" #: etc/initialdata:20 msgid "Everyone" msgstr "Alle" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "Eksempel:" @@ -1838,56 +2033,93 @@ msgstr "ExternalAuthId" msgid "ExternalContactInfoId" msgstr "ExternalContactInfoId" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "Ekstra information" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" +msgstr "" + +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Fejlede i lokalisering 'Priviledged' brugere pseudogruppe." -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Fejlede i lokalisering af 'Unproviledged' brugere pseudogruppe" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Fejlede i indlæsningen af modul %1. (%2)" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "Feb." -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" +msgstr "Filnavn" + +#: lib/RT/CustomField_Overlay.pm:69 +msgid "Fill in multiple text areas" +msgstr "Udfyld flere tekst omrÃ¥der" + +#: 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 "Udfyld i et tekst omrÃ¥de" + +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:71 +msgid "Fill in up to %1 text areas" +msgstr "Udfyld op til %1 tekst omrÃ¥der" + +#: lib/RT/CustomField_Overlay.pm:76 +msgid "Fill in up to %1 wikitext areas" msgstr "" #: NOT FOUND IN SOURCE msgid "Fin" msgstr "Slut" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "Endelig Prioritet" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "EndeligPrioritet" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: NOT FOUND IN SOURCE msgid "Find group whose" msgstr "Find gruppe hvis" +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 +msgid "Find groups whose" +msgstr "Find grupper hvis" + #: NOT FOUND IN SOURCE msgid "Find new/open tickets" msgstr "Find nye/Ã¥bne tickets" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "Find folk hvis" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "Find tickets" @@ -1895,7 +2127,7 @@ msgstr "Find tickets" msgid "Finish Approval" msgstr "Afslut godkendelse" -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "Første" @@ -1903,78 +2135,94 @@ msgstr "Første" msgid "First page" msgstr "Første side" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "gennemtving ændring" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "Fandt %quant(%1,ticket)" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "Fandt Objekt" +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "Freeform" + #: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FreeformContactInfo" -#: lib/RT/CustomField_Overlay.pm:37 +#: NOT FOUND IN SOURCE msgid "FreeformMultiple" msgstr "FreeformMultiple" -#: lib/RT/CustomField_Overlay.pm:36 +#: NOT FOUND IN SOURCE msgid "FreeformSingle" msgstr "FreeformSingle" -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "Fre." -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "Fulde headers" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" -msgstr "" +msgstr "Hent template fra fil" #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "Henter the nuværende bruger fra en PGP signatur\\n" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "Givet til %1" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "Global" +#: html/Admin/Elements/EditCustomFields:55 +msgid "Global Custom Fields" +msgstr "Globale custom felter" + #: NOT FOUND IN SOURCE msgid "Global Scrips" msgstr "Globale Scrips" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "Global custom felt configuration" + +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Global template: %1" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" -msgstr "" +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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "Start!" @@ -1986,11 +2234,11 @@ msgstr "God PGP signatur fra %1\\n" msgid "Goto page" msgstr "GÃ¥ til side" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "GÃ¥ til ticket" -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "Gruppe" @@ -1998,28 +2246,28 @@ msgstr "Gruppe" msgid "Group %1 %2: %3" msgstr "Gruppe %1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "Gruppe Rettigheder" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "Gruppe har allerede medlem" -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Gruppe kunne ikke blive oprettet: %1" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "Gruppe oprettet" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "Gruppen har sÃ¥dan et medlem" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "Gruppe ikke fundet" @@ -2031,36 +2279,54 @@ msgstr "Gruppe ikke fundet.\\n" msgid "Group not specified.\\n" msgstr "Gruppe ikke angivet.\\n" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "Grupper" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "Grupper kan ikke være medlemmer af deres medlemmer" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: html/Admin/Groups/index.html:82 +msgid "Groups matching search criteria" +msgstr "Grupper som matcher søge kriterier" + +#: html/Ticket/Elements/ShowRequestor:77 +msgid "Groups this user belongs to" +msgstr "Grupper denne bruger hører til" + +#: lib/RT/Interface/CLI.pm:94 lib/RT/Interface/CLI.pm:94 msgid "Hello!" msgstr "Hej!" -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "Hej, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "Historie" +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) +msgid "History of the group %1" +msgstr "Historie for gruppen %1" + +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) +msgid "History of the user %1" +msgstr "Historie for brugeren %1" + #: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "HjemmeTelefon" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "Homepage" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "Jeg har %quant(%1,concrete mixer)." @@ -2069,11 +2335,15 @@ msgstr "Jeg har %quant(%1,concrete mixer)." msgid "I have [quant,_1,concrete mixer]." msgstr "Jeg har [quant,_1,concrete mixer]." -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "jeg er fortabt" + +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "Id" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "Identitet" @@ -2081,76 +2351,88 @@ msgstr "Identitet" msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Hvis en godkendelse bliver afvist, afvis den originale og slet ventede godkendelser" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "" +msgstr "Hvis ingen Requestor er specificeret, opret da tickets med denne requestor" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." -msgstr "" +msgstr "Hvis ingen kø er oprettet, opret tickets i denne kø" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." msgstr "Hvis dette værktøj var setgid, kunne en fjendtlig bruger benytte dette værktøj til at opnÃ¥ administrat adgang til RT." -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" msgstr "Hvis du har opdateret noget ovenfor, vær da sikker pÃ¥ at" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "Ulovlig værdi for %1" -#: lib/RT/Record.pm:745 +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "Billede" + +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "Uforanderligt felt" -#: html/Admin/Elements/EditCustomFields:72 +#: NOT FOUND IN SOURCE msgid "Include disabled custom fields in listing." msgstr "Medtag deaktiverede custom felter i liste." -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." -msgstr "" +msgstr "Inkludér ikke tilvalgte grupper i denne liste." -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." msgstr "Medtag deaktiverede køer i liste." -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "Medtag deaktiverede brugere i liste." -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "Ukomplet Søgning" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "Ukomplet søgning" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "Initiel Prioritet" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "InitielPrioritet" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "Input fejl" -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "Intern Fejl" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Intern Fejl: %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "Ikke valid Gruppe Type" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "Ikke valid Rettighed" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "Ikke valide data" @@ -2158,60 +2440,64 @@ msgstr "Ikke valide data" msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Ikke valid ejer, Default'er til 'nobody'" -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "Ikke valid kø" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "Ikke valid rettighed" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "Ikke valid værdi for %1" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "Ikke valid værdi for custom felt" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "Ikke valid værdi for status" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "Det er af højeste vigtighed at ikke-privilegerede brugere ikke fÃ¥r adgang til at køre dette værktøj." -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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 anbefales at du opretter en ikke-priviligeret unix bruger med det korrekte gruppe medlemsjab og RT adgang for at benytte dette værktøj." -#: bin/rt-crontool:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "Det tager adskellige argumenter:" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "Kursiv" + #: NOT FOUND IN SOURCE msgid "Items pending my approval" msgstr "Elementer som afventer min godkendelse" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "Jan." -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "Tilslut eller forlad denne gruppe" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "Jul." -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "Jumbo" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "Jun." @@ -2223,19 +2509,23 @@ msgstr "Nøgleord" msgid "Lang" msgstr "Sprog" -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" -msgstr "" +msgstr "Sprog" -#: html/Ticket/Elements/Tabs:74 +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "Stor" + +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "Sidste" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "Sidste kontakt" -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "Sidst kontaktet" @@ -2243,23 +2533,23 @@ msgstr "Sidst kontaktet" msgid "Last Notified" msgstr "Sidst Notificeret" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "Sidst Opdateret" -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" -msgstr "" +msgstr "SidstOpdateretAf" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "Tilbage" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "Lad denne bruger fÃ¥ adgang til RT" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" msgstr "Lad denne bruger fÃ¥ rettigheder" @@ -2271,213 +2561,255 @@ msgstr "Begrænser ejer til %1 %2" msgid "Limiting queue to %1 %2" msgstr "Begrænser kø til %1 %2" -#: lib/RT/Record.pm:1086 +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "" + +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "Link eksisterer allerede" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "Link kunne ikke blive oprettet" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "Link oprettet (%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "Link slettet (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "Link ikke fundet" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Link ticket #%1" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "Links" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" -msgstr "" +msgstr "Indlæs" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" -msgstr "" +msgstr "Indlæs gemt søgning:" + +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "IndlæsGemtSøgning" -#: html/Admin/Tools/Configuration.html:19 +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" +msgstr "Indlæste Perl moduler" + +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "Lokation" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Log directory %1 kunne ikke findes eller skrive til.\\n RT kan ikke køre." -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Logget ind som %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "Log ind" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "Log ud" -#: html/Search/Bulk.html:83 +#: lib/RT/CustomField_Overlay.pm:866 +msgid "Lookup type mismatch" +msgstr "Opslagstype misforhold" + +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "Lav Ejer" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "Lav Status" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "Sæt forfaldsdato" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "Sæt løsnings dato" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" -msgstr "Sæt startet dato" +msgstr "Sæt start dato" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" -msgstr "Sæ startes dato" +msgstr "Sæt startes dato" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "Sæt dato fortalt" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "Sæt Prioritet" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "Sæt kø" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "Sæt emne" -#: html/Admin/index.html:32 +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" +msgstr "Gør denne gruppe synlig for bruger" + +#: html/Admin/index.html:78 +msgid "Manage custom fields and custom field values" +msgstr "Administrer custom felter og custom felt værdier" + +#: html/Admin/index.html:69 msgid "Manage groups and group membership" msgstr "Administrer grupper og gruppe medlemskab" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" msgstr "Administrer egenskaber og konfiguration som gælder for alle køer" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" msgstr "Administrer køer og kø-specifikke egenskaber" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "Administrer brugere og adgangskoder" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "Mar." -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "Maj." -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" msgstr "Medlem %1 tilføjet" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" msgstr "Medlem %1 slettet" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "Medlem tilføjet" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "Medlem slettet" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "Medlem ikke slettet" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "Medlem af" -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "Medlemmer" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" msgstr "Medlemskan af %1 tilføjet" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" msgstr "Medlemskab af %1 slettet" -#: lib/RT/Ticket_Overlay.pm:2813 +#: html/Admin/Elements/UserTabs:61 +msgid "Memberships" +msgstr "Medlemskaber" + +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) +msgid "Memberships of the user %1" +msgstr "Medlemskaber for brugeren %1" + +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" msgstr "Sammensmeltning succesfuld" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Sammensmeltning fejlede. Kunne ikke sætte EffectiveId" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "Sammensmeltning mislykkedes. Kunne ikke sætte status" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "Sammensmelt med" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" -msgstr "" +msgstr "Sammensmeltet med %1" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "Besked" -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" -msgstr "" +msgstr "Besked kunne ikke blive gemt" -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" -msgstr "" +msgstr "Besked gemt" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." -msgstr "" +msgstr "Beskeder angÃ¥ende denne ticket vil ikke blive sent til..." -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "Ikke-matchende parenteser" + +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "Mangler en primærnøgle?: %1" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "Mobil" @@ -2485,7 +2817,7 @@ msgstr "Mobil" msgid "MobilePhone" msgstr "MobilTelefon" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "Modificér Adgangs Kontrol Liste" @@ -2493,27 +2825,37 @@ msgstr "Modificér Adgangs Kontrol Liste" msgid "Modify Custom Field %1" msgstr "Modificér Custom Felt %1" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +#: html/Admin/Elements/ObjectCustomFields:96 +#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) +msgid "Modify Custom Fields which apply to %1 for all %2" +msgstr "Modificér Custom Felter som gælder for %1 for alle %2" + +#: html/Admin/Elements/ObjectCustomFields:98 +#. (loc(lc($Types))) +msgid "Modify Custom Fields which apply to all %1" +msgstr "Modificér Customer Felter som gælder for alle %1" + +#: NOT FOUND IN SOURCE msgid "Modify Custom Fields which apply to all queues" msgstr "Modificér Custom felter som gælder for alle køer" -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 msgid "Modify Group Rights" -msgstr "" +msgstr "Modificér Gruppe Rettigheder" -#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" -msgstr "" +msgstr "Modificér Medlemmer" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" -msgstr "" +msgstr "Modificér Rettigheder" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "Modificér Scrip templates for denne kø" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" msgstr "Modificér Scrips for denne kø" @@ -2521,43 +2863,52 @@ msgstr "Modificér Scrips for denne kø" msgid "Modify Template %1" msgstr "Modificér Template %1" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 msgid "Modify User Rights" -msgstr "" +msgstr "Modificér Brugerrettigheder" -#: html/Admin/Queues/CustomField.html:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "Modificér CustomFelt for kø %1" -#: html/Admin/Global/CustomField.html:52 +#: NOT FOUND IN SOURCE msgid "Modify a CustomField which applies to all queues" msgstr "Modificér CustomFelt som gælder for alle køer" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Modificér et scrip for kø %1" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "Modificér et scrip som gælder for alle køer" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) +msgid "Modify associated objects for %1" +msgstr "Modificér objekter associerede med %1" + +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Modific+er datoer for #%1" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Modificér datoer for ticket # %1" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: html/Admin/Elements/GlobalCustomFieldTabs:65 html/Admin/Global/index.html:72 +msgid "Modify global custom fields" +msgstr "Modificér globale custom felter" + +#: 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 "Modificér globale gruppe rettiheder" -#: html/Admin/Global/GroupRights.html:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." msgstr "Modificér globale gruppe rettiheder" @@ -2565,100 +2916,110 @@ msgstr "Modificér globale gruppe rettiheder" msgid "Modify global scrips" msgstr "Modificér globale scrips" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 msgid "Modify global user rights" msgstr "Modificér globale bruger rettiheder" -#: html/Admin/Global/UserRights.html:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "Modificér globake bruger rettigehder" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "Modificér gruppe metadata eller slet gruppe" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) +msgid "Modify group rights for custom field %1" +msgstr "Modificér gruppe rettigheder for custom felter %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 "Modificér gruppe rettigheder for gruppe %1" -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Modificér gruppe rettigheder for kø %1" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "Modificér medlemskabsliste for denne gruppe" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "Modificér ens egen RT konto" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Modificér folk relateret til kø %1" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" msgstr "Modificér folk relateret til ticket #%1" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Modificér scrips for kø %1" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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 "Modificér scrips som gælder for alle køer" -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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 "Modificér template %1" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "Modificér templates som gælder for alle køer" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" msgstr "Modificér gruppen %1" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "Modificér kø watchers" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Modificer brugeren %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Modificer ticket # %1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Modificer ticket #%1" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "Modificer tickets" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) +msgid "Modify user rights for custom field %1" +msgstr "Modificér brugerrettigheder custom felter for %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 "Modificer bruger rettigheder for gruppe %1" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Modificer bruger rettigheder for kø %1" @@ -2667,60 +3028,64 @@ msgstr "Modificer bruger rettigheder for kø %1" msgid "Modify watchers for queue '%1'" msgstr "Modificer watchers for kø '%1'" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" msgstr "ModificerACL" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "ModifyCustomField" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "ModificerEgetMedlemskab" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "ModificerQueueWatchers" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "ModificerScrips" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "ModificerSelv" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "ModificerTemplate" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "ModificerTicket" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "Man." -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "Mere om %1" -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "Flyt ned" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "Flyt op" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "Flere" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "'Name' attribut skal angives" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" msgstr "Mine %1 tickets" @@ -2729,19 +3094,19 @@ msgstr "Mine %1 tickets" msgid "My Approvals" msgstr "Mine Godkendelser" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "Mine godkendelser" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" -msgstr "" +msgstr "Mine gemte søgninger" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "Navn" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "Navn i brug" @@ -2749,19 +3114,19 @@ msgstr "Navn i brug" msgid "Need approval from system administrator" msgstr "Behøver godkendelse af system adminstrator" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "Aldrig" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "Ny" -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "Nye relationer" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "Ny adgangskode" @@ -2769,31 +3134,31 @@ msgstr "Ny adgangskode" msgid "New Pending Approval" msgstr "Ny afventende godkendelse" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" -msgstr "" +msgstr "Ny Søgestreng" #: NOT FOUND IN SOURCE msgid "New Search" msgstr "Ny Søgning" -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "Nyt custom felt" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "Ny gruppe" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "Ny adgangskode" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "Ny adgangskode notifikation afsendt" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "Ny kø" @@ -2801,11 +3166,11 @@ msgstr "Ny kø" msgid "New request" msgstr "Ny request" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "Nye rettigheder" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "Ny scrip" @@ -2813,27 +3178,27 @@ msgstr "Ny scrip" msgid "New search" msgstr "Ny søgning" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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 template" -#: html/SelfService/Elements/Tabs:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "Ny ticket" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "Ny ticket eksisterer ikke" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "Ny bruger" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "Ny bruger kaldet" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "Nye watchers" @@ -2841,13 +3206,13 @@ msgstr "Nye watchers" msgid "New window setting" msgstr "Ny vindues indstilling" -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "Næste" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" -msgstr "" +msgstr "Næste Side" #: NOT FOUND IN SOURCE msgid "Next page" @@ -2857,31 +3222,39 @@ msgstr "Næste side" msgid "NickName" msgstr "NickName" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "Nickname" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/UserRights.html:145 +msgid "No Class defined" +msgstr "Ingen klasse defineret" + +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "Intet Custom felt" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/CustomFields/GroupRights.html:103 +msgid "No CustomField defined" +msgstr "Intet CustomField defineret" + +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" msgstr "Ingen grupper definerede" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" -msgstr "" +msgstr "Ingen Søgestreng" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" msgstr "Ingen kø defineret" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "Ingen RT bruger fundet. Kontakt venligst din RT administrator.\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "Ingen Template" @@ -2893,11 +3266,11 @@ msgstr "Ingen ticket angivet. Afbryder ticket" msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "Ingen ticket angivet. Afbryder ticket ændringer\\n\\n" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "Ingen aktion" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "Ingen kolonne angivet" @@ -2905,7 +3278,7 @@ msgstr "Ingen kolonne angivet" msgid "No command found\\n" msgstr "Ingen kommando fundet\\n" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" msgstr "Ingen kommentar inddateret for denne bruger" @@ -2913,80 +3286,89 @@ msgstr "Ingen kommentar inddateret for denne bruger" msgid "No correspondence attached" msgstr "Ingen korrespondance vedhæftet" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "Ingen beskrivelse af %1" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "Ingen gruppe angivet" -#: lib/RT/Ticket_Overlay.pm:2475 +#: html/Admin/Groups/index.html:52 +msgid "No groups matching search criteria found." +msgstr "Ingen grupper som matcher søge kriterier fundet" + +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" -msgstr "" +msgstr "Ingen medelelse vedhæftet" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "Ingen adgangskode sat" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" msgstr "Ingen rettighed til at oprette køer" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "Ingen adgang til at oprette tickets i denne kø '%1'" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "Ingen rettighed til at oprette brugere" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" -msgstr "Ingen adagang til at vise denne ticket" +msgstr "Ingen adgang til at vise denne ticket" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" msgstr "Ingen adgang til at vise opdater ticket" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "Ingen principal angivet" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." msgstr "Ingen principaler valgt." -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." msgstr "Ingen køer fundet som matcher søge kriterie." -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "Ingen rettigheder fundet" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "Ingen rettigheder tildelt." -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." msgstr "Ingen søgning at arbejde med." -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" -msgstr "" +msgstr "Intet emne" #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "Ingen ticket id angivet" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "Ingen transaktions type angivet" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "Ingen brugere fundet som matcher søge kriterie" @@ -2994,15 +3376,15 @@ msgstr "Ingen brugere fundet som matcher søge kriterie" msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Ingen valid RT bruger fundet. RT CVS handler frakoblet. Kontakt venligst din RT administrator.\\n" -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "Ingen værdi sent til _Set!\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "Ingen" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "Ikke eksisterende felt?" @@ -3010,15 +3392,15 @@ msgstr "Ikke eksisterende felt?" msgid "Not logged in" msgstr "Ikke logget ind" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "Ikke logget ind." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "Ikke sat" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "Endnu ikke implementeret." @@ -3026,11 +3408,11 @@ msgstr "Endnu ikke implementeret." msgid "Not yet implemented...." msgstr "Endnu ikke implementeret..." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "Noter" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "Notification kunne ikke sendes" @@ -3044,11 +3426,11 @@ msgstr "Notificér AdminCc'ere som kommentar" #: etc/initialdata:93 etc/upgrade/3.1.17/content:6 msgid "Notify Ccs" -msgstr "" +msgstr "Notificér Ccs" #: etc/initialdata:89 etc/upgrade/3.1.17/content:2 msgid "Notify Ccs as Comment" -msgstr "" +msgstr "Notificér Ccs som Kommentarer" #: etc/initialdata:128 msgid "Notify Other Recipients" @@ -3102,35 +3484,57 @@ msgstr "Notificér Requestere, Cc'ere og AdminCc'ere" msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Notificér Requestere, Cc'ere og AdminCc'ere som kommentar" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "Nov." -#: lib/RT/Record.pm:200 +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "ELLER" + +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "Objekt kunne ikke oprettes" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "Objekt kunne ikke slettes" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "Objekt oprettet" -#: lib/RT/Date.pm:420 +#: lib/RT/Record.pm:121 +msgid "Object deleted" +msgstr "Objekt slettet" + +#: html/Admin/CustomFields/Objects.html:72 html/Admin/Elements/ObjectCustomFields:63 +#. ($ObjectType) +#. ($LookupType) +msgid "Object of type %1 cannot take custom fields" +msgstr "Objekt af typen %1 kan ikke hÃ¥ndtere custom felter" + +#: lib/RT/CustomField_Overlay.pm:901 +msgid "Object type mismatch" +msgstr "Objekt type misforhold" + +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "Okt." -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" -msgstr "" +msgstr "Offline" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" -msgstr "" +msgstr "Offline editeringer" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" -msgstr "" +msgstr "Offline upload" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "Ved" @@ -3152,7 +3556,7 @@ msgstr "Ved ejerskifte" #: etc/initialdata:177 etc/upgrade/3.1.17/content:15 msgid "On Priority Change" -msgstr "" +msgstr "Ved prioritets ændring" #: etc/initialdata:192 msgid "On Queue Change" @@ -3170,21 +3574,21 @@ msgstr "Ved statusskifte" msgid "On Transaction" msgstr "Ved transaktion" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "Vis kun godkendelser for requests oprettet efter %1" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "Vis kun godkendelser for requests oprettet før %1" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "Ã…ben" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "Ã…ben den" @@ -3192,7 +3596,7 @@ msgstr "Ã…ben den" msgid "Open requests" msgstr "Ã…ben requests" -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" msgstr "Ã…ben tickets" @@ -3208,44 +3612,44 @@ msgstr "Ã…ben tickets (fra liste) i andet vindue" msgid "Open tickets on correspondence" msgstr "Ã…ben tickets ved korrespondance" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" -msgstr "" +msgstr "Sortér efter" #: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Orden og sortering" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "Organisation" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Oprindelig ticket: #%1" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" -msgstr "" +msgstr "UdgÃ¥ende e-mail omkring en kommentar gemt" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" -msgstr "" +msgstr "UdgÃ¥ende e-mail gemt" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "Tid overskredet, prioritet gÃ¥r mod" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "Egne tickets" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "EgenTicket" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" msgstr "Ejer" @@ -3253,11 +3657,11 @@ msgstr "Ejer" msgid "Owner changed from %1 to %2" msgstr "Ejere ændret fra %1 til %2" -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." -msgstr "" +msgstr "Ejer kunne ikke defineres." -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Ejer skiftet forceret fra %1 to %2" @@ -3266,12 +3670,12 @@ msgstr "Ejer skiftet forceret fra %1 to %2" msgid "Owner is" msgstr "Ejer er" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" -msgstr "" +msgstr "Side %1 af %2" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "Bipper" @@ -3279,36 +3683,53 @@ msgstr "Bipper" msgid "PagerPhone" msgstr "BipperTelefon" -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "Forældre" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "Adgangskode" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "Adgangskode husker" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "Adgangskode ændret" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "Adgangskode for kort" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Adgangskode: %1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." msgstr "Adgangskoder matcher ikke." -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "Adgangskoder matcher ikke. Din adgangskode er ikke blevet skiftet" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "Folk" @@ -3316,27 +3737,27 @@ msgstr "Folk" msgid "Perform a user-defined action" msgstr "Udfør en bruger-defineret aktion" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" -msgstr "" +msgstr "Perl konfiguration" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "Adgang afvist" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "Personlige Grupper" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "Personlige grupper" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "Personlige grupper:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "Telefon numre" @@ -3344,7 +3765,7 @@ msgstr "Telefon numre" msgid "Placeholder" msgstr "Placeholder" -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "Præferencer" @@ -3352,17 +3773,17 @@ msgstr "Præferencer" msgid "Prefs" msgstr "Præferencer" -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "Prepare ryddet" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "Forr." -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" -msgstr "" +msgstr "Forrige Side" #: NOT FOUND IN SOURCE msgid "Previous page" @@ -3372,33 +3793,33 @@ msgstr "Forrige side" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "Principal %1 ikke fundet." -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "Prioritet" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "Prioritet starter ved" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" -msgstr "" +msgstr "Privat:" #: etc/initialdata:25 msgid "Privileged" msgstr "Priviligeret" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Priviligeret status: %1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "Priviligerede brugere" @@ -3406,19 +3827,19 @@ msgstr "Priviligerede brugere" msgid "Pseudogroup for internal use" msgstr "Pseudogruppe til intern brug" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" -msgstr "" +msgstr "Søgestreng" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" -msgstr "" +msgstr "Søgestrengs Bygger" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "Kø" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" @@ -3428,7 +3849,7 @@ msgstr "Kø %1 ikke fundet" msgid "Queue '%1' not found\\n" msgstr "Kø '%1' ikke fundet\\n" -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "Kø Navn" @@ -3436,19 +3857,19 @@ msgstr "Kø Navn" msgid "Queue Scrips" msgstr "Kø Scrips" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "Kø eksisterer allerede" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" msgstr "Kø kunne ikke oprettes" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 msgid "Queue could not be loaded." msgstr "Kø kunne ikke indlæses" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" msgstr "Kø oprettet" @@ -3456,32 +3877,32 @@ msgstr "Kø oprettet" msgid "Queue is not specified." msgstr "Kø ikke angivet" -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" msgstr "Kø ikke fundet" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "Køer" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "Kø søgning" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" -msgstr "" +msgstr "Kvik ticket oprettelse" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" -msgstr "" +msgstr "RSS" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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" @@ -3494,7 +3915,7 @@ msgstr "RT %1 fra <a href=\"http://bestpractical.com\">Best Practical Solutions, msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -#: html/Admin/index.html:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "RT Administration" @@ -3514,7 +3935,7 @@ msgstr "RT Konfigurationsfejl" msgid "RT Critical error. Message not recorded!" msgstr "RT Kritisk fejl. Meddelelse ikke gemt!" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "RT Fejl" @@ -3526,11 +3947,11 @@ msgstr "RT modtog e-mail (%1) fra sig selv" msgid "RT Self Service / Closed Tickets" msgstr "RT Selv-betjening / Lukkede Tickets" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" -msgstr "" +msgstr "RT Variable" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "RT set fra oven" @@ -3546,11 +3967,15 @@ msgstr "RT kunne ikke finde requester via sit eksterne database opslag" msgid "RT couldn't find the queue: %1" msgstr "RT kunne ikke finde køen: %1" +#: html/Elements/SetupSessionCookie:90 +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 signatur. \\n" -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "RT for %1" @@ -3579,7 +4004,7 @@ msgstr "RT vil processere denne besked som var den var usigneret.\\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 "RT's e-mail kommando modus kræver PGP authentikering. Enten har du ikke signeret din besked, eller ogsÃ¥ kunne din signatur ikke verificeres." -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "Fulde Navn" @@ -3587,31 +4012,31 @@ msgstr "Fulde Navn" msgid "RealName" msgstr "FuldeNavn" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "Reference fra %1 tilføjet" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "Reference fra %1 slettet" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" msgstr "Reference til %1 tilføjet" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" msgstr "Reference til %1 slettet" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "Referreret til af" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "Refererer til" @@ -3623,44 +4048,44 @@ msgstr "Forfin" msgid "Refine search" msgstr "Forfin søgning" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Genindlæs denne side hver %1 minutter" -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "Fjern AdminCc" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "Fjern Cc" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "Fjern Requestor" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "Svar" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" -msgstr "" +msgstr "Svar Adresse" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" -msgstr "" +msgstr "Svar til requestors" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "Svar pÃ¥ tickets" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "SvarPÃ¥Ticket" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "Requestor" @@ -3672,37 +4097,37 @@ msgstr "Requestor e-mail adresse" msgid "Requestor(s)" msgstr "Requestor(s)" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "Requestors" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "Request skulle være forefaldende om" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" -msgstr "" +msgstr "PÃ¥krævet parameter '%1' ikke specificeret" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "Reset" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "Residens" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "Løs" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Løs ticket #%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "Løst" @@ -3710,7 +4135,7 @@ msgstr "Løst" msgid "Response to requestors" msgstr "Svar til requestors" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "Resultater" @@ -3718,61 +4143,61 @@ msgstr "Resultater" msgid "Results per page" msgstr "Resultater per side" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "Genskriv adgangskode" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" -msgstr "" +msgstr "Faldtilbage" #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Rettighed %1 ikke fundet for %2 %3 i scope %4 (%5)\\n" -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "Rettighed overdraget" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "Rettighed Tildelt" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "Rettighed Indlæst" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "Rettighed kunne ikke inddrages" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "Rettighed ikke fundet" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "Rettighed ikke indlæst." -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "Rettighed inddraget" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "Rettigheder" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Rettigheder kunne ikke tildeles %1" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "Rettigheder kunne ikke inddrages for %1" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "Roller" @@ -3780,53 +4205,59 @@ msgstr "Roller" msgid "RootApproval" msgstr "RootGodkendelse" -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" -msgstr "" +msgstr "Rækker per side" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "Lør." -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" -msgstr "" +msgstr "Gem" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "Gem Ændringer" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" -msgstr "" +msgstr "Gem Præferencer" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "Gem Ændringer" -#: html/Search/Elements/EditSearches:1 -msgid "Saved searches" +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" msgstr "" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Search/Elements/EditSearches:46 +msgid "Saved searches" +msgstr "Gemte søgninger" + +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "Scrip Oprettet" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" -msgstr "" +msgstr "Scrip Felter" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "Scrip slettet" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "Scrips" @@ -3834,11 +4265,11 @@ msgstr "Scrips" msgid "Scrips for %1\\n" msgstr "Scrip for %1\\n" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" msgstr "Scrips som gælder for alle køer" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "Søg" @@ -3846,82 +4277,143 @@ msgstr "Søg" msgid "Search Criteria" msgstr "Søgekriterier" -#: html/Approvals/Elements/PendingMyApproval:38 +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "Søg efter godkendelser" -#: bin/rt-crontool:184 +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" +msgstr "" + +#: bin/rt-crontool:213 msgid "Security:" msgstr "Sikkerhed:" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/CustomField_Overlay.pm:100 +msgid "See custom fields" +msgstr "Se custom felter" + +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" -msgstr "" +msgstr "See nøjagtige udgÃ¥ende e-mail beskeder og deres modtagere" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" -msgstr "" +msgstr "Se ticket private kommentarer" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" -msgstr "" +msgstr "Se ticket sammenfatninger" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/CustomField_Overlay.pm:100 +msgid "SeeCustomField" +msgstr "SeCustomFelt" + +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" +msgstr "SeGruppe" + +#: lib/RT/Queue_Overlay.pm:92 msgid "SeeQueue" msgstr "SeKø" -#: html/Admin/Groups/index.html:50 +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "Vælg" + +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 +msgid "Select a Custom Field" +msgstr "Vælg et Custom felt" + +#: html/Admin/Groups/index.html:78 msgid "Select a group" msgstr "Vælg en gruppe" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" msgstr "Vælg en kø" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +#: html/SelfService/CreateTicketInQueue.html:48 +msgid "Select a queue for your new ticket" +msgstr "Vælg en kø til din næste nye ticket" + +#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 msgid "Select a user" msgstr "Vælg en bruger" -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +#: html/Admin/Elements/CustomFieldTabs:90 msgid "Select custom field" msgstr "Vælg custom felt" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: html/Admin/Global/CustomFields/index.html:70 +msgid "Select custom fields for all user groups" +msgstr "Vælg custom felter for alle brugergrupper" + +#: html/Admin/Global/CustomFields/index.html:65 +msgid "Select custom fields for all users" +msgstr "Vælg custom felter for alle brugere" + +#: html/Admin/Global/CustomFields/index.html:76 +msgid "Select custom fields for tickets in all queues" +msgstr "Vælg custom felter for tickets i alle køer" + +#: html/Admin/Global/CustomFields/index.html:83 +msgid "Select custom fields for transactions on tickets in all queues" +msgstr "Vælg custom felter for transaktioner pÃ¥ tickets i alle køer" + +#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 msgid "Select group" msgstr "Vælg gruppe" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "Vælg flere værdier" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "Vælg en værdi" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" msgstr "Vælg kø" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "Vælg scrip" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "Vælg template" -#: html/Admin/Elements/UserTabs:46 +#: lib/RT/CustomField_Overlay.pm:61 +msgid "Select up to %1 values" +msgstr "Vælg op til %1 værdier" + +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "Vælg bruger" -#: lib/RT/CustomField_Overlay.pm:35 +#: NOT FOUND IN SOURCE msgid "SelectMultiple" msgstr "VælgFlere" -#: lib/RT/CustomField_Overlay.pm:34 +#: NOT FOUND IN SOURCE msgid "SelectSingle" msgstr "VælgEnkelt" +#: html/Admin/Elements/EditCustomFields:58 +msgid "Selected Custom Fields" +msgstr "Valgte Custom Felter" + +#: html/Admin/CustomFields/Objects.html:59 +msgid "Selected objects" +msgstr "Valgte objekter" + #: NOT FOUND IN SOURCE msgid "Self Service" msgstr "Selv-betjening" @@ -3952,11 +4444,11 @@ msgstr "Sender e-mail til explicit listede Ccs og Bccs" #: etc/initialdata:94 etc/upgrade/3.1.17/content:7 msgid "Sends mail to the Ccs" -msgstr "" +msgstr "Sender e-mail til Cc'ere" #: etc/initialdata:90 etc/upgrade/3.1.17/content:3 msgid "Sends mail to the Ccs as a comment" -msgstr "" +msgstr "Sender e-mail to Ccøere som en kommentar" #: etc/initialdata:102 msgid "Sends mail to the administrative Ccs" @@ -3970,47 +4462,47 @@ msgstr "Sender e-mail til de administrative Cc som en kommentar" msgid "Sends mail to the owner" msgstr "Sender e-mail til ejeren" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "Sep." -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" -msgstr "" +msgstr "Vis" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" -msgstr "" +msgstr "Vis Godkendelser" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" -msgstr "" +msgstr "Vis Kolonner" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "Vis Resultater" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "Vis godkendte requests" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "Vis basic" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "Vis afviste requests" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "Vis detaljer" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "Vis afventede requests" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "Vis requests som afventer andre godkendelser" @@ -4022,43 +4514,47 @@ msgstr "Vis ticket private kommentar" msgid "Show ticket summaries" msgstr "Vis ticket opsummeringer" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" msgstr "VisACL" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "VisKonfigurationTab" + +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" -msgstr "" +msgstr "VisUdgÃ¥endeEmail" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" -msgstr "" +msgstr "VisGemteSøgninger" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "VisScrips" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "VisTemplate" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "VisTicket" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "VisTicketKommentarer" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "Tilmeld som en ticket requestor eller ticket eller kø Cc" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "Tilmeld som en ticket eller kø AdminCc" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "Signatur" @@ -4066,15 +4562,23 @@ msgstr "Signatur" msgid "Signed in as %1" msgstr "Tilsluttet som %1" -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "Enkelt" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 msgid "Skip Menu" msgstr "Skip Menu" -#: html/Admin/Elements/AddCustomFieldValue:27 +#: html/Search/Elements/EditFormat:78 +msgid "Small" +msgstr "Lille" + +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 msgid "Sort" msgstr "Sorter" @@ -4090,9 +4594,9 @@ msgstr "Sorter resultat efter" msgid "SortOrder" msgstr "SorteringsOrden" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" -msgstr "" +msgstr "Trin" #: NOT FOUND IN SOURCE msgid "Stalled" @@ -4102,7 +4606,7 @@ msgstr "Stalled" msgid "Start page" msgstr "Start side" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "Startet" @@ -4110,7 +4614,7 @@ msgstr "Startet" msgid "Started date '%1' could not be parsed" msgstr "Startet dato '%1' kunne ikke parses" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "Starter" @@ -4122,11 +4626,11 @@ msgstr "Starter den" msgid "Starts date '%1' could not be parsed" msgstr "Starter dato '%1' kunne ikke parses" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "Tilstand" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "Status" @@ -4134,8 +4638,7 @@ msgstr "Status" msgid "Status Change" msgstr "Status Ændring" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" msgstr "Status ændret fra %1 til %2" @@ -4143,33 +4646,37 @@ msgstr "Status ændret fra %1 til %2" msgid "StatusChange" msgstr "StatusÆndring" -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "Stjæl" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" msgstr "Stjæl tickets" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" msgstr "StjælTicket" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) -msgid "Stolen from %1 " +msgid "Stolen from %1" msgstr "StjÃ¥let fra %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 +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "Emne" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "Emne ændret til %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "Send" @@ -4177,43 +4684,48 @@ msgstr "Send" msgid "Submit Workflow" msgstr "Send Workflow" -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" msgstr "Lykkedes" -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "Søn." -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "SuperBruger" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "System" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" -msgstr "" +msgstr "System Konfiguration" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" msgstr "System Fejl" -#: html/Admin/Tools/index.html:2 -msgid "System Tools" +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" msgstr "" -#: lib/RT/ACE_Overlay.pm:615 +#: html/Admin/Tools/index.html:47 +msgid "System Tools" +msgstr "System Værktøjer" + +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "System fejl. Rettighed ikke overdraget" -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "System fejl. Rettighed ikke tildelt" -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "System grupper" @@ -4221,40 +4733,40 @@ msgstr "System grupper" msgid "SystemRolegroup for internal use" msgstr "SystemRolleGruppe for intern brug" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "Tag" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" msgstr "Tag tickets" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" msgstr "TagTickets" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "Taget" -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "Template" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Template #%1" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "Template slettet" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "Template ikke fundet" @@ -4262,11 +4774,11 @@ msgstr "Template ikke fundet" msgid "Template not found\\n" msgstr "Template ikke fundet\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "Template parset" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "Templates" @@ -4274,33 +4786,37 @@ msgstr "Templates" msgid "Templates for %1\\n" msgstr "Templates for %1\\n" -#: lib/RT/Record.pm:740 +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "Tekst" + +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "Det er allerede den nuværende værdi" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "Det er ikke værdi for dette custom felt" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "Det er den samme værdi" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" msgstr "Den principal har allerede den rettighed" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Den principal er allerede en %1 for denne kø" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Den principal er allerede en %1 for denne ticket" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Den principal er ikke en %1 for denne kø" @@ -4309,11 +4825,11 @@ msgstr "Den principal er ikke en %1 for denne kø" msgid "That principal is not a %1 for this ticket" msgstr "Den principal er ikke en %1 for denne ticket" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" msgstr "Den kø eksisterer ikke" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "Denne har ticket har uløste afhængigheder" @@ -4321,47 +4837,47 @@ msgstr "Denne har ticket har uløste afhængigheder" msgid "That user already has that right" msgstr "Den bruger har den rettighed" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" msgstr "Brugeren ejer allerede den ticket" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "Brugeren eksisterer ikke" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "Brugere er allerede priviligeret" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" msgstr "Brugeren er allerede upriviligeret" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "Brugeren er nu priviligeret" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" msgstr "Brugere er nu upriviligeret" -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" msgstr "Den bruger mÃ¥ ikke eje tickets i den kø" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "Det er ikke en numerisk værdi" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "Det Grundlæggende" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "CC for en ticket" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "Den administrative CC for en ticket" @@ -4369,7 +4885,7 @@ msgstr "Den administrative CC for en ticket" msgid "The comment has been recorded" msgstr "Kommentarer er blevet gemt" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 "Den følgende kommando vil finde alle aktive tickets i køen 'general' og vil sætte deres prioritet til 99 hvis de ikke er blevet rørt i 4 timer:" @@ -4377,43 +4893,47 @@ msgstr "Den følgende kommando vil finde alle aktive tickets i køen 'general' o msgid "The following commands were not proccessed:\\n\\n" msgstr "De følgende kommandoer blev ikke processeret:\\n\\n" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "Den nye værdi er blevet sat" -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "Ejeren af en ticket" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "Anmoderen af en ticket" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "Disse kommentarer er ikke generelt synlige for brugeren" -#: html/Admin/Tools/Configuration.html:5 +#: lib/RT/CustomField_Overlay.pm:912 +msgid "This custom field does not apply to that object" +msgstr "Dette custom felt gælder ikke for dette objekt" + +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" -msgstr "" +msgstr "Denne feature er kun tilgængelig for system administratorer" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." -msgstr "" +msgstr "Denne besked vil blive sendt til..." #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "Denne ticket %1 %2 (%3)\\n" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Dette værktøj tillader brugeren at benyttet vilkÃ¥rlige Perl moduler inde fra RT." -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "Denne transaktion synes ikke at have noget indhold" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Denne brugers højest prioriterede tickets" @@ -4422,7 +4942,7 @@ msgstr "Denne brugers højest prioriterede tickets" msgid "This user's 25 highest priority tickets" msgstr "Denne bruger 25 højest prioriterede tickets" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "Tors." @@ -4430,24 +4950,24 @@ msgstr "Tors." msgid "Ticket # %1 %2" msgstr "ticket # %1 %2" -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "ticket #%1 Jumbo opdatering: %2" -#: html/Approvals/Elements/ShowDependency:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "ticket #%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" -msgstr "" +msgstr "Ticket %1" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "ticket %1 oprettet i kø '%2'" @@ -4456,12 +4976,16 @@ msgstr "ticket %1 oprettet i kø '%2'" msgid "Ticket %1 loaded\\n" msgstr "Ticket %1 indlæst\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Ticket %1 : %2" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Admin/Elements/QueueTabs:74 +msgid "Ticket Custom Fields" +msgstr "Ticket Custom Felter" + +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "Ticket Historie # %1 %2" @@ -4474,23 +4998,27 @@ msgstr "Ticket ID" msgid "Ticket Resolved" msgstr "Ticket Løst" +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 +msgid "Ticket Transactions" +msgstr "Ticket Transaktioner" + #: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Ticket vedhæftet fil" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "Ticket indhold" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "Ticket indholds type" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "Ticket kunne ikke oprettes pga. en intern fejl" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "Ticket oprettet" @@ -4498,7 +5026,7 @@ msgstr "Ticket oprettet" msgid "Ticket creation failed" msgstr "Ticket oprettelse mislykkedes" -#: lib/RT/Transaction_Overlay.pm:502 +#: NOT FOUND IN SOURCE msgid "Ticket deleted" msgstr "Ticket slettet" @@ -4506,9 +5034,9 @@ msgstr "Ticket slettet" msgid "Ticket id not found" msgstr "Ticket ID ikke fundet" -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" -msgstr "" +msgstr "Ticket metadata" #: NOT FOUND IN SOURCE msgid "Ticket not found" @@ -4522,17 +5050,20 @@ msgstr "Ticket status ændret" msgid "Ticket watchers" msgstr "Ticket iagtagere" -#: html/Elements/Tabs:46 +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "TicketSQL søge modul" + +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 msgid "Tickets" msgstr "Tickets" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 %2" msgstr "Tickets %1 %2" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 by %2" msgstr "Tickets %1 af %2" @@ -4540,38 +5071,42 @@ msgstr "Tickets %1 af %2" msgid "Tickets from %1" msgstr "Tickets fra %1" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "Tickets som afhænger af denne godkendelse:" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" -msgstr "" +msgstr "Tid Estimeret" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "Resterende tid" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "Tid Arbejdet" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" msgstr "Resterende tid" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "Tid for visning" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" msgstr "Tid arbejdet" -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" msgstr "TidArbejdet" +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "" + #: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "For at generere en diff af denne commit:" @@ -4580,37 +5115,45 @@ msgstr "For at generere en diff af denne commit:" msgid "To generate a diff of this commit:\\n" msgstr "For at generere en difference af denne commit:\\n" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "" +msgstr "Forespørgsel ang. support, træning, special udvikling eller licensering, kontakt venligst %1" -#: lib/RT/Ticket_Overlay.pm:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "Fortalt" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" -msgstr "" +msgstr "Værktøjer" #: etc/initialdata:252 msgid "Transaction" msgstr "Transaktion" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transaktion %1 tømt" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "Transaktion Oprettet" -#: lib/RT/Transaction_Overlay.pm:92 +#: html/Admin/Elements/QueueTabs:78 +msgid "Transaction Custom Fields" +msgstr "Transaktions Custom Felter" + +#: NOT FOUND IN SOURCE msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "Transaktion->Opret kunne ikke gennemføres, da du ikke specificerede en ticket id" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:125 +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "Transaktion->Opret kunne ikke gennemføres, da du ikke specificerede en object type og id" + +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "Transaktioner er uforanderlige" @@ -4618,19 +5161,19 @@ msgstr "Transaktioner er uforanderlige" msgid "Trying to delete a right: %1" msgstr "Forsøger at slette en rettighed: %1" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "Tirs." -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "Type" -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "Uimplementeret" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "Unix login" @@ -4638,107 +5181,148 @@ msgstr "Unix login" msgid "UnixUsername" msgstr "UnixBrugernavn" -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Ukendt ContentEncoding %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "Ukendt felt: $key" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "Ubegrænset" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" -msgstr "" +msgstr "Unavngiven søgning" #: etc/initialdata:32 msgid "Unprivileged" msgstr "Upriviligeret" -#: lib/RT/Transaction_Overlay.pm:562 +#: html/Admin/Elements/EditCustomFields:60 +msgid "Unselected Custom Fields" +msgstr "Ikke-valgte Custom Felter" + +#: html/Admin/CustomFields/Objects.html:61 +msgid "Unselected objects" +msgstr "Ikke-valgte objekter" + +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" msgstr "Ikke-tagede" -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "Opdater" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" -msgstr "" +msgstr "Opdatér Alle" #: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Opdater ID" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" -msgstr "" +msgstr "Opdatér Ticket" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" -msgstr "Opdater type" +msgstr "Opdatér type" #: NOT FOUND IN SOURCE msgid "Update all these tickets at once" -msgstr "Opdater alle disse tickets pÃ¥ en gang" +msgstr "Opdatér alle disse tickets pÃ¥ en gang" #: NOT FOUND IN SOURCE msgid "Update email" -msgstr "Opdater email" +msgstr "Opdatér email" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" -msgstr "" +msgstr "Opdatér flere tickets" #: NOT FOUND IN SOURCE msgid "Update name" -msgstr "Opdater navn" +msgstr "Opdatér navn" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "Opdatering ikke registreret" -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" -msgstr "Opdater valgte tickets" +msgstr "Opdatér valgte tickets" #: NOT FOUND IN SOURCE msgid "Update signature" -msgstr "Opdater signatur" +msgstr "Opdatér signatur" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" -msgstr "Opdater ticket" +msgstr "Opdatér ticket" #: NOT FOUND IN SOURCE msgid "Update ticket # %1" -msgstr "Opdater ticket # %1" +msgstr "Opdatér ticket # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" -msgstr "Opdater ticket #%1" +msgstr "Opdatér ticket #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" -msgstr "Opdater ticket #%1 (%2)" +msgstr "Opdatér ticket #%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "Opdaterings type var hverken korrespondance eller kommentar" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "Opdateret" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" -msgstr "" +msgstr "Upload" -#: html/Tools/Offline.html:73 +#: lib/RT/CustomField_Overlay.pm:84 +msgid "Upload multiple files" +msgstr "Upload flere filer" + +#: lib/RT/CustomField_Overlay.pm:79 +msgid "Upload multiple images" +msgstr "Upload flere billeder" + +#: lib/RT/CustomField_Overlay.pm:85 +msgid "Upload one file" +msgstr "Upload en fil" + +#: lib/RT/CustomField_Overlay.pm:80 +msgid "Upload one image" +msgstr "Upload et billede" + +#: lib/RT/CustomField_Overlay.pm:86 +msgid "Upload up to %1 files" +msgstr "Upload op til %1 filer" + +#: lib/RT/CustomField_Overlay.pm:81 +msgid "Upload up to %1 images" +msgstr "Upload op til %1 billeder" + +#: html/Tools/Offline.html:95 msgid "Upload your changes" +msgstr "Upload dine ændringer" + +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" #: NOT FOUND IN SOURCE @@ -4749,10 +5333,10 @@ msgstr "Bruger %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Bruger %1 Adgangskode: %2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." -msgstr "" +msgstr "Bruger '%1' kunne ikke findes" #: NOT FOUND IN SOURCE msgid "User '%1' not found" @@ -4766,36 +5350,41 @@ msgstr "Bruger '%1' ikke fundet\\n" msgid "User Defined" msgstr "Bruger defineret" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" -msgstr "" +msgstr "Bruger definerede betingelser og aktioner" #: NOT FOUND IN SOURCE msgid "User ID" msgstr "Bruger ID" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "Bruger ID" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "Bruger Rettigheder" -#: html/Admin/Users/Modify.html:252 +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "Bruger bad om en ukent opdateringstype for custom felt %1 for %1 objekt #%3" + +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "Bruger kunne ikke oprettes: %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "Brugere oprettet" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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 "Bruger definerede grupper" -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" msgstr "Bruger indlæst" @@ -4807,39 +5396,43 @@ msgstr "Bruger notificeret" msgid "User view" msgstr "Bruger visning" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Groups/index.html:99 +msgid "User-defined groups" +msgstr "Bruger-definerede grupper" + +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "Brugernavn" -#: 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 +#: 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:1086 msgid "Users" msgstr "Brugere" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "Brugere som matcher søgekriterier" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" -msgstr "" +msgstr "Valid Søgestreng" #: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "KøVærdi" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "Værdier" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "Watch" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "WatchSomAdminCC" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "Watchers" @@ -4847,7 +5440,7 @@ msgstr "Watchers" msgid "WebEncoding" msgstr "WebEncoding" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "Ons." @@ -4881,7 +5474,7 @@ msgstr "NÃ¥r en tickets ejer ændres" #: etc/initialdata:178 etc/upgrade/3.1.17/content:16 msgid "Whenever a ticket's priority changes" -msgstr "" +msgstr "NÃ¥r en ticketøs prioritet ændres" #: etc/initialdata:193 msgid "Whenever a ticket's queue changes" @@ -4903,35 +5496,31 @@ msgstr "NÃ¥r kommentarer kommer ind" msgid "Whenever correspondence comes in" msgstr "NÃ¥r korrespondance ankommer" -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "Arbejde" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" -msgstr "" +msgstr "Arbejd offline" #: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "Arbejdstelefon" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "Arbejdede" -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" msgstr "Du ejer allerede denne ticket" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" msgstr "Du er ikke en authoriseret bruger" -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Du kan kun tildele tickets du ejer eller som ikker ejet" @@ -4939,24 +5528,24 @@ msgstr "Du kan kun tildele tickets du ejer eller som ikker ejet" msgid "You don't have permission to view that ticket.\\n" msgstr "Du har ikke tilladelse til at se den ticket.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 +#: 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 fandt %1 tickets i kø %2" -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "Du er blevet logget ud af RT." -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." msgstr "Du har ikke tilladelse til at lave requests i den kø" -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." msgstr "Du mÃ¥ ikke oprette requests i den kø" -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "Du er velkommen til at logge ind igen" @@ -4984,24 +5573,36 @@ msgstr "Din anmodning blev afvist" msgid "Your request was rejected." msgstr "Din anmodning blev afvist" -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "Dit brugernavn eller adgangskode er ukorrekt" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "Postnummer" -#: html/User/Elements/DelegateRights:58 +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" +msgstr "tillad oprettelse af gemte søgninger" + +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" +msgstr "tillad indlæsning af gemte søgninger" + +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "som givet til %1" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "tilhører" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "lukket" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "indeholder" @@ -5021,7 +5622,11 @@ msgstr "korrespondance (muligvis) ikke sendt" msgid "correspondence sent" msgstr "korrespondance afsendt" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: NOT FOUND IN SOURCE +msgid "current: $current, want $want, Error near ->$val<- expecting a " +msgstr "nuværnede: $current, vil have $want, Fejl nær ->$val<- forventer " + +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "dage" @@ -5029,64 +5634,92 @@ msgstr "dage" msgid "delete" msgstr "slet" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "slettet" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "tilhører ikke" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "matcher ikke" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "indeholder ikke" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "lig med" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "fejl: kan ikke flytte ned" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "fejl: kan ikke flytte til venstre" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "fejl: kan ikke flytte op" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "fejl: intet at slette" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "fejl: intet at flytte" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "fejl: intet at skifte" + #: NOT FOUND IN SOURCE msgid "filename" msgstr "filnavn" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "større end" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "gruppe '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "timer" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "id" -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "er" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "er ikke" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "mindre end" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "matcher" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "min." -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "minutter" @@ -5094,75 +5727,79 @@ msgstr "minutter" msgid "modifications\\n\\n" msgstr "ændringer\\n\\n" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "mÃ¥neder" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "ny" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" -msgstr "" +msgstr "intet navn" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "ingen værdi" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "ingen" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "ikke lig med" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "Ã¥ben" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "personlig gruppe '%1' for bruger '%2'" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "kø %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "afvist" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "løst" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "sek." -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "vis Konfigurations tab" + +#: html/Search/Results.html:82 msgid "spreadsheet" -msgstr "" +msgstr "regneark" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "stallet" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "system %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "system gruppe '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "den kaldende komponent specificerede ikke hvorfor" @@ -5170,12 +5807,12 @@ msgstr "den kaldende komponent specificerede ikke hvorfor" msgid "ticket #%1" msgstr "ticket #%1" -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ticket #%1 %2" -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "ubeskrevet gruppe %1" @@ -5184,12 +5821,12 @@ msgstr "ubeskrevet gruppe %1" msgid "undescripbed group %1" msgstr "ubeskrevet gruppe %1" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "bruger %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "uger" @@ -5197,7 +5834,7 @@ msgstr "uger" msgid "with template %1" msgstr "med template %1" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "Ã¥r" diff --git a/rt/lib/RT/I18N/de.po b/rt/lib/RT/I18N/de.po index 6c1f3be57..0b7f1eff7 100644 --- a/rt/lib/RT/I18N/de.po +++ b/rt/lib/RT/I18N/de.po @@ -1,5 +1,6 @@ # German localization catalog for Request Tracker (RT) # FIRST AUTHOR: Florian Bischof <flo@fxb.de>, May 2002 +# Update by Torsten Brumm <torsten.brumm@kuehne-nagel.com> # msgid "" msgstr "" @@ -12,240 +13,188 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: NOT FOUND IN SOURCE -msgid "#" -msgstr "#" - -#: NOT FOUND IN SOURCE -msgid "#%1" -msgstr "" - -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "#%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" -msgstr "" +msgstr "$prefix %1" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" -msgstr "" +msgstr "%1 #%2" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($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 +#: lib/RT/Date.pm:397 #. ($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/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" msgstr "%1 %2 hinzugefügt" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "vor %1 %2" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%1 %2 geändert in %3" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" msgstr "%1 %2 gelöscht" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" msgstr "%1 %2 mit der Vorlage %3" -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 this ticket\\n" -msgstr "%1 (%2) %3 dieses Ticket\\n" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" -msgstr "" +msgstr "%1 (%2) von %3" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" -msgstr "" +msgstr "%1 (Unverändert)" -#: NOT FOUND IN SOURCE -msgid "%1 - %2 shown" -msgstr "%1 - %2 angezeigt" - -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" -msgstr "%1 - ein Argument zur Übergabe an %2" +msgstr "%1 - Ein Argument zur Übergabe an %2" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" -msgstr "" +msgstr "%1 - Statusausgabe auf STDOUT" -#msgstr "%1 - Schreibe Statusupdates nach STDOUT" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" -msgstr "%1 - Gebe an, welches Action-Modul benutzt werden soll" +msgstr "%1 - Gibt an, welches Action-Modul benutzt werden soll" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" -msgstr "%1 - Gebe an, welches Condition-Modul benutzt werden soll" +msgstr "%1 - Gibt an, welches Condition-Modul benutzt werden soll" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" -msgstr "%1 - Gebe an, welches Search-Modul benutzt werden soll" +msgstr "%1 - Gibt an, welches Search-Modul benutzt werden soll" $RT::VERSION, - '2004', + '2005', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) - $RT::VERSION, - '2004', - '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 +#: html/Elements/Footer:58 #. ('»|«', $RT::VERSION, - '2004', + '2005', '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "ScripAction %1 geladen" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 als Wert für %2 hinzugefügt" -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on (from %2) %3" -msgstr "" - -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($args{'Base'}) #. ($args{'Target'}) msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "%1 konnte nicht in der Datenbank gefunden werden obwohl es ein lokales Objekt zu sein scheint" +msgstr "" +"%1 konnte nicht in der Datenbank gefunden werden obwohl es ein lokales " +"Objekt zu sein scheint" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" -msgstr "am %1 von %2" +msgstr "%1 von %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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") msgid "%1 changed from %2 to %3" msgstr "%1 von %2 in %3 geändert" -#: html/Search/Build.html:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" -msgstr "" +msgstr "%1 kopieren" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "%1 konnte nicht auf %2 gesetzt werden." -#: NOT FOUND IN SOURCE -msgid "%1 couldn't init a transaction (%2)\\n" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "%1 konnte den Status nicht auf erledigt setzen. Die RT-Datenbank könnte inkonsistent sein." - -#: html/Elements/MyTickets:24 -#. ($rows) -msgid "%1 highest priority tickets I own" msgstr "" +"%1 konnte den Status nicht auf erledigt setzen. Die RT-Datenbank könnte " +"inkonsistent sein." -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I own..." -msgstr "%1 mir zugewiesene Anfragen mit höchster Priorität..." +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) +msgid "%1 created" +msgstr "%1 erstellt" + +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) +msgid "%1 deleted" +msgstr "%1 gelöscht" -#: html/Elements/MyTickets:26 +#: html/Elements/MyTickets:47 #. ($rows) -msgid "%1 highest priority tickets I requested..." -msgstr "Die %1 von mir ausgelösten Anfragen mit höchster Priorität" +msgid "%1 highest priority tickets I own" +msgstr "Ihre %1 Anfragen höchster Priorität" -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "%1 ist ein Werkzeug um Anfragen über externe Terminierungstools wie \"cron\" zu verarbeiten" +msgstr "" -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." -msgstr "%1 ist kein %2 dieses Stapels mehr." - -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a %2 for this ticket." -msgstr "%1 ist nicht mehr %2 dieser Anfrage." +msgstr "%1 ist kein %2 dieses Bereichs mehr." -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) -msgid "%1 is no longer a value for custom field %2" -msgstr "%1 ist kein Wert des benutzerdefinierten Feldes %2 mehr" - -#: NOT FOUND IN SOURCE -msgid "%1 isn't a valid Queue id." -msgstr "%1 ist keine gültige Stapel-Id." - -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "%1 enthält" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -254,226 +203,174 @@ msgstr "%1 enthält" msgid "%1 min" msgstr "%1 Min" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "%1 zuletzt überarbeitete Artikel" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "%1 neueste Artikel" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" -msgstr "" +msgstr "Die %1 neusten Anfragen ohne Besitzer" -#: NOT FOUND IN SOURCE -msgid "%1 not shown" -msgstr "" +#: lib/RT/CustomField_Overlay.pm:827 +msgid "%1 objects" +msgstr "%1 Objekte" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 Rechte" -#: NOT FOUND IN SOURCE -msgid "%1 succeeded\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for $MessageId" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for %2" -msgstr "" - -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1 wird alle Mitglieder eines erledigten Gruppentickets erledigen." +msgstr "%1 wird alle Mitglieder eines erledigten Gruppentickets anführen." -#: NOT FOUND IN SOURCE -msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." -msgstr "" +#: lib/RT/CustomField_Overlay.pm:828 +msgid "%1's %2 objects" +msgstr "%1's %2 Objekte" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: lib/RT/CustomField_Overlay.pm:829 +msgid "%1's %2's %3 objects" +msgstr "%1's %2's %3 Objekte" + +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" -msgstr "" +msgstr "%1's gespeicherte Suchanfragen" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1: kein Anhang angegeben" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" -msgstr "'%1' ist ein ungültiger Wert für Status" +msgstr "'%1' ist ein ung\303\274ltiger Wert f\303\274r Status" -#: NOT FOUND IN SOURCE -msgid "'%1' not a recognized action. " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete scrip)" -msgstr "(Markieren um Scrip zu löschen)" - -#: 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 +#: 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 "(Markieren um zu löschen)" +msgstr "(Auswahl wird gelöscht)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "" +msgstr "(Benachrichtigung der markierten Empfänger wird unterdrückt)" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "" +msgstr "(Benachrichtigungen an markierte Empfänger aktivieren)" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(Gib Anfragenummern oder URLs getrennt durch Leerzeichen ein)" +msgstr "(Geben Sie die Anfrage IDs oder URLs getrennt durch Leerzeichen ein)" -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" -msgstr "" - -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: 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 "(Bei Freilassen %1" +msgid "(If left blank, will default to %1)" +msgstr "(Standardwert: %1)" -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "(Keine benutzerdefinierten Felder)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(Keine Mitglieder)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "(Keine Scrips)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "(Keine Vorlagen)" -#: 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 "(Schickt eine Blindkopie dieser Aktualisierung an eine durch Komma getrennte Liste von E-Mail-Adressen. Ändert <b>nicht</b> wer künftig Aktualisierungen geschickt bekommt.)" +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 +msgid "(None)" +msgstr "(Nichts)" -#: 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.)" +#: html/Ticket/Update.html:88 +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 "" -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 "(Schickt eine Kopie dieser Aktualisierung an eine durch Komma getrennte Liste von administrativen E-Mail-Adressen. Diese <b>werden</b> künftig Aktualisierungen erhalten.)" +msgstr "" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 "(Schickt eine Kopie dieser Aktualisierung an eine durch Komma getrennte Liste von E-Mail-Adressen. Ändert <b>nicht</b> wer künftig Aktualisierungen geschickt bekommt.)" - -#: 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 "" -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 "(Schickt eine Kopie dieser Aktualisierung an eine durch Komma getrennte Liste von E-Mail-Adressen. Diese <b>werden</b> künftig Aktualisierungen erhalten.)" +msgstr "" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "" +msgstr "(Benutze diese Felder, für 'Benutzer definierte' Bedingungen oder Aktionen)" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(leer)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "keine Zusammenfassung" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "(kein Name)" +msgstr "(kein Name gelistet)" -#: NOT FOUND IN SOURCE -msgid "(no subject)" -msgstr "(kein Betreff)" - -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" -msgstr "(keine Angabe)" +msgstr "(kein Wert)" + +#: html/Admin/Elements/EditCustomFieldValues:47 +msgid "(no values)" +msgstr "(keine Werte)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(nur eine Anfrage)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(wartet auf Freigabe)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" -msgstr "" +msgstr "(wartet auf andere Sammlung)" -#: NOT FOUND IN SOURCE -msgid "(pending other tickets)" -msgstr "(wartet auf andere Anfragen)" - -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(notwendig)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(unbenannt)" -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I own..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I requested..." -msgstr "" - -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" -msgstr "" +msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" -msgstr "" +msgstr "<% $_ %>" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" -msgstr "" +msgstr "<%$_%>" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"Neue Anfrage in\"> %1" @@ -482,123 +379,122 @@ msgstr "<input type=\"submit\" value=\"Neue Anfrage in\"> %1" msgid "A blank template" msgstr "Eine leere Vorlage" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "ACE nicht gefunden" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "ACEs können nur erstellt und gelöscht werden." -#: NOT FOUND IN SOURCE -msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "Breche ab um ungewünschte Veränderungen an der Anfrage zu verhindern.\\n" +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "UND" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "Über mich" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "Zugriffskontrolle" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "Aktion" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Aktion %1 nicht gefunden" -#: bin/rt-crontool:119 -msgid "Action committed." -msgstr "Aktion durchgeführt." +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "Aktion durchgeführt.\\n" -#: bin/rt-crontool:115 +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "Aktion vorbereitet..." -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" -msgstr "" +msgstr "Hinzufügen" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "AdminCC hinzufügen" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "CC hinzufügen" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "Spalten hinzufügen" + +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" -msgstr "" +msgstr "Kriterium hinzufügen" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" -msgstr "Mehr Dateien anhängen" msgstr "Weitere Dateien anhängen" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "Klient hinzufügen" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Add a new a global scrip" -msgstr "Erstelle ein neues globales Scrip" - -#: NOT FOUND IN SOURCE -msgid "Add a scrip to this queue" -msgstr "Erstelle ein Scrip für diesen Stapel" +msgstr "Wert hinzufügen" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" -msgstr "Scrip erstellen, das auf alle Stapel angewendet wird" +msgstr "Scrip erstellen, das auf alle Bereiche angewendet wird" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" -msgstr "" +msgstr "zusätzliches Kriterium hinzufügen" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "Füge den ausgewählten Anfragen Kommentare oder Antworten hinzu" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "Mitglieder hinzufügen" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "Neue Beobachter hinzufügen" -#: NOT FOUND IN SOURCE -msgid "AddNextState" -msgstr "" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "Hinzufügen, Löschen und Ändern von Werten benutzerdefinierter Felder von Objekten" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" -msgstr "Habe einen Hauptverantwortlichen als %1 für diesen Stapel hinzugefügt" +msgstr "Rolle wurde als %1 für diesen Bereich hinzugefügt" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" -msgstr "Habe einen Hauptverantwortlichen als %1 für diese Anfrage hinzugefügt" +msgstr "Rolle wurde als %1 für diese Anfrage hinzugefügt" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "Adresse 1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "Adresse 2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "Admin CC" @@ -610,156 +506,112 @@ msgstr "Admin Kommentar" msgid "Admin Correspondence" msgstr "Admin Korrespondenz" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" -msgstr "Admin Stapel" +msgstr "Admin Bereiche" -#: NOT FOUND IN SOURCE -msgid "Admin users" -msgstr "" - -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "Admin/Globale Einstellungen" -#: NOT FOUND IN SOURCE -msgid "Admin/Groups" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Admin/Queue/Basics" -msgstr "Admin/Stapel/Basics" - -#: NOT FOUND IN SOURCE -msgid "AdminAllPersonalGroups" -msgstr "" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" -msgstr "" +msgstr "AdminCc" -#: NOT FOUND IN SOURCE -msgid "AdminComment" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AdminCorrespondence" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:73 -msgid "AdminCustomFields" -msgstr "" +#: lib/RT/CustomField_Overlay.pm:101 +msgid "AdminCustomField" +msgstr "AdminBenutzerdefiniertesFeld" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" -msgstr "" +msgstr "AdminGruppe" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" -msgstr "" +msgstr "AdminGruppenZugehörigkeit" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" -msgstr "" +msgstr "AdminEigenePersönlicheGruppen" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" -msgstr "" +msgstr "AdminBereich" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" -msgstr "" +msgstr "AdminBenutzer" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "Administrative CC" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" -msgstr "" +msgstr "Erweitert" -#: NOT FOUND IN SOURCE -msgid "Advanced Search" -msgstr "Erweiterte Suche" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "Erweiterte Suchkriterien" - -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" -msgstr "Nach dem" +msgstr "nach dem" -#: NOT FOUND IN SOURCE -msgid "Age" -msgstr "Alter" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "Operator" #: etc/initialdata:363 msgid "All Approvals Passed" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "Alle Klassen" - -#: html/Admin/Elements/EditCustomFields:94 -msgid "All Custom Fields" -msgstr "Alle benutzerdefinierten Felder" +msgstr "Alle Freigaben genehmigt" -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" -msgstr "Alle Stapel" +msgstr "Alle Bereiche" -#: NOT FOUND IN SOURCE -msgid "Always sends a message to the requestors independent of message sender" -msgstr "" +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" +msgstr "Und/Oder" -#: html/Search/Edit.html:42 +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 +msgid "Applies to" +msgstr "gilt für" + +#: html/Search/Edit.html:64 msgid "Apply" -msgstr "" +msgstr "anwenden" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" -msgstr "" +msgstr "Änderungen anwenden" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "Freigabe" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "Freigabe #%1: %2" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "Freigabe #%1: Notiz wurde aufgrund eines Systemfehlers nicht vermerkt" +msgstr "Freigabe #%1: Notiz wurde aufgrund eines Systemfehlers nicht gespeichert" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" -msgstr "Freigabe #%1: Notiz vermerkt" - -#: NOT FOUND IN SOURCE -msgid "Approval Details" -msgstr "" +msgstr "Freigabe #%1: Notiz gespeichert" #: etc/initialdata:351 msgid "Approval Passed" -msgstr "" +msgstr "Freigabe genehmigt" #: etc/initialdata:374 msgid "Approval Rejected" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Approval diagram" -msgstr "" +msgstr "Freigabe abgelehnt" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "Freigeben" @@ -767,2171 +619,1933 @@ msgstr "Freigeben" msgid "Approver's notes: %1" msgstr "Notizen des Freigebenden: %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." -msgstr "Apr" - -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "Sind Sie sicher, dass sie diesen Artikel löschen wollen?" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "Artikel #%1 gelöscht" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "Artikel #%1: %2" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "Artikel wurde nicht gefunden" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "Artikel" +msgstr "Apr." -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "aufsteigend" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: lib/RT/Queue_Overlay.pm:97 +msgid "Assign and remove custom fields" +msgstr "Zuweisen und Entfernen von benutzerdefinierten Feldern" + +#: lib/RT/Queue_Overlay.pm:97 +msgid "AssignCustomFields" +msgstr "BenutzerdefiniertesFeldZuweisen" + +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "Anhängen" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "Datei anhängen" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "Dateianhang" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 #. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Anhang '%1' konnte nicht geladen werden" -#: lib/RT/Transaction_Overlay.pm:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "Anhang erstellt" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "Dateiname des Anhangs" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "Anhänge" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" -msgstr "" +msgstr "Attribut gelöscht" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." -msgstr "Aug" - -#: NOT FOUND IN SOURCE -msgid "AuthSystem" -msgstr "AuthSystem" +msgstr "Aug." #: etc/initialdata:221 msgid "Autoreply" -msgstr "Autoreply" +msgstr "Automatische Antwort" #: etc/initialdata:72 msgid "Autoreply To Requestors" -msgstr "Autoreply an Klienten" - -#: NOT FOUND IN SOURCE -msgid "AutoreplyToRequestors" -msgstr "" - -#: html/Search/Elements/EditFormat:4 -msgid "Available Columns" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bad PGP Signature: %1\\n" -msgstr "Fehlerhafte PGP-Signatur: %1\\n" +msgstr "Automatische Antwort an Klienten" -#: NOT FOUND IN SOURCE -msgid "Bad attachment id. Couldn't find attachment '%1'\\n" -msgstr "Fehlerhafte Anhangs-Id. Konnte Anhang '%1' nicht finden\\n" - -#: NOT FOUND IN SOURCE -msgid "Bad data in %1" -msgstr "Fehlerhafte Daten in %1" - -#: NOT FOUND IN SOURCE -msgid "Bad transaction number for attachment. %1 should be %2\\n" -msgstr "Fehlerhafte Transaktionsnummer für den Anhang. %1 solle %2 sein\\n" - -#: 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 +#: 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 "Grundlagen" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "BCC" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" -msgstr "Denke daran, Deine Änderungen zu speichern" +msgstr "Änderungen speichern" -### wieder - Duzen??? -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "vor dem" -#: NOT FOUND IN SOURCE -msgid "Begin Approval" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" msgstr "" +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "Binär" + #: etc/initialdata:217 msgid "Blank" msgstr "Leer" -#: NOT FOUND IN SOURCE -msgid "Bookmarkable URL for this search" -msgstr "Speicherbare URL für diese Suche" +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "Fett" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" -msgstr "" +msgstr "Speicherbarer Link" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "Kurze Kopfzeilen" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" -msgstr "Massen Ticketupdate" +msgstr "Massen Anfrageaktualisierung" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "Kann Systembenutzer nicht ändern" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" -msgstr "Kann dieser Hauptverantwortliche diesen Stapel sehen" +msgstr "Kann diese Rolle diesen Bereich sehen" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "Kann kein benutzerdefiniertes Feld ohne Namen hinzufügen" -#: html/Search/Build.html:694 -msgid "Can't find a saved search to work with" +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" msgstr "" -#: lib/RT/Link_Overlay.pm:126 -msgid "Can't link a ticket to itself" -msgstr "Kann kein Ticket auf sich selbst verweisen lassen!" +#: html/Search/Build.html:761 +msgid "Can't find a saved search to work with" +msgstr "Kann keine gespeicherte Suche finden" -#: lib/RT/Ticket_Overlay.pm:2716 -msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "Konnte das Ticket nicht in ein vereinigtes Ticket vereinigen. Diesen Fehler sollten Sie niemals sehen" +#: lib/RT/Link_Overlay.pm:160 +msgid "Can't link a ticket to itself" +msgstr "Kann kein Anfrage auf sich selbst verweisen lassen!" -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" -msgstr "" +msgstr "Kann diese Suche nicht speichern" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "Sie können Basis und Ziel nicht gleichzeitig angeben" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "Kann Benutzer nicht anlegen: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "CC" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "Passwort ändern" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/Elements/Submit:100 +msgid "Check All" +msgstr "Alle auswählen" + +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" -msgstr "Zum Löschen ankreuzen" +msgstr "Zum Löschen anwählen" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" -msgstr "Zum Entziehen einer Berechtigung ankreuzen" +msgstr "Zum Entziehen einer Berechtigung anwählen" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "Kinder" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "Stadt" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "Klasse" - -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "Klassenname" - -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "Klasse ist" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "Klassen" +#: html/Elements/Submit:102 +msgid "Clear All" +msgstr "Alles löschen" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "Geschlossen" -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "Geschlossene Anfragen" - -#: NOT FOUND IN SOURCE -msgid "Closed requests" -msgstr "" - -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "Geschlossene Anfragen" -#: NOT FOUND IN SOURCE -msgid "Command not understood!\\n" -msgstr "" - -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "Kommentar" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "Kommentaradresse" -#: NOT FOUND IN SOURCE -msgid "Comment not recorded" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" -msgstr "Kommentiere Tickets" +msgstr "Kommentiere Anfragen" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Comments" -msgstr "Kommantare" +msgstr "AnfrageKommentieren" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" -msgstr "Kommentar (wird nicht an Klienten geschickt)" +msgstr "Kommentare (werden nicht an Klienten geschickt)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" -msgstr "Kommentar (wird nicht an Klienten geschickt)" +msgstr "Kommentare (werden nicht an Klienten geschickt)" -#: NOT FOUND IN SOURCE -msgid "Comments about %1" -msgstr "Kommentar über %1" - -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" -msgstr "Kommentar zu diesen Benutzer" +msgstr "Kommentare zu diesem Benutzer" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "Kommentar hinzugefügt" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" -msgstr "Übergabe abgehakt" +msgstr "Commit Stumpf ausgeführt" -#: NOT FOUND IN SOURCE -msgid "Compile Restrictions" -msgstr "" - -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "Bedingung" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." -msgstr "Condition trifft zu..." +msgstr "Bedingung trifft zu..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "Bedingung nicht gefunden" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "Konfiguration" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "Bestätigen" -#: NOT FOUND IN SOURCE -msgid "ContactInfoSystem" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Contacted date '%1' could not be parsed" -msgstr "" - -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "Inhalt" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" -msgstr "" +msgstr "Inhaltstyp" -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" -msgstr "" +msgstr "Kopie" #: etc/initialdata:286 msgid "Correspondence" msgstr "Korrespondenz" -#: NOT FOUND IN SOURCE -msgid "Correspondence Address" -msgstr "Korrespondenzadresse" - -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "Korrespondenz hinzugefügt" -#: NOT FOUND IN SOURCE -msgid "Correspondence not recorded" -msgstr "" +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "Konnte keinen neuen benutzerdefinierten Wert hinzufügen" -#: lib/RT/Ticket_Overlay.pm:3471 -msgid "Could not add new custom field value for ticket. " -msgstr "Konnte dem Ticket kein neues benutzerdefiniertes Feld hinzufügen. " +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "Konnte kein neuen benutzerdefinierten Wert hinzufügen. %1 " -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " -msgstr "Konnte den Inhaber nicht ändern. " +msgstr "Konnte den Besitzer nicht ändern. " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" -msgstr "Konnte benutzerdefiniertes Feld nicht anlegen" +msgstr "Konnte benutzerdefiniertes Feld nicht erzeugen" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "Konnte benutzerdefiniertes Feld nicht erzeugen: %1" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "Konnte Gruppe nicht anlegen" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" msgstr "Konnte Vorlage nicht anlegen: %1" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" -msgstr "Konnte Ticket nicht anlegen. Stapel nicht bestimmt" +msgstr "Konnte Anfrage nicht anlegen. Bereich nicht angegeben" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" msgstr "Konnte Benutzer nicht anlegen" -#: NOT FOUND IN SOURCE -msgid "Could not find a ticket with id %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Could not find group %1." -msgstr "" - -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "Konnte diesen Benutzer nicht finden oder anlegen" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" -msgstr "Konnte diesen Hauptverantwortlichen nicht finden" +msgstr "Konnte diese Rolle nicht finden" -#: NOT FOUND IN SOURCE -msgid "Could not find user %1." -msgstr "" +#: html/Admin/CustomFields/Objects.html:69 +msgid "Could not load CustomField %1" +msgstr "Konnte benutzerdefiniertes Feld %1 nicht laden" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "Konnte die Gruppe nicht laden" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" -msgstr "Konnte den Hauptverantwortlichen nicht zu einen %1 dieses Stapels machen" +msgstr "Konnte diese Rolle nicht zu einen %1 dieses Bereichs machen" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" -msgstr "Konnte diesen Hauptverantwortlichen nicht zu einem %1 dieses Tickets machen" +msgstr "Konnte diese Rolle nicht zu einem %1 dieses Anfragen machen" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" -msgstr "Konnte diesen Hauptverantwortlichen nicht als %1 dieses Stapels entfernen" - -#: NOT FOUND IN SOURCE -msgid "Could not remove that principal as a %1 for this ticket" -msgstr "Konnte diesen Hauptverantwortlichen nicht als %1 dieses Tickets entfernen" +msgstr "Konnte diese Rolle nicht als %1 dieses Bereichs entfernen" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" -msgstr "" +msgstr "Konnte Benutzerinformation nicht speichern" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" -msgstr "Konnte Mitglied nicht der Gruppe hinzufügen" +msgstr "Konnte Benutzer nicht der Gruppe hinzufügen" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Konnte die Transaktion nicht anlegen: %1" -#: NOT FOUND IN SOURCE -msgid "Couldn't figure out what to do from gpg's reply\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find group\\n" -msgstr "" - -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" -msgstr "Konne Zeile nicht finden" +msgstr "Konnte Zeile nicht finden" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" -msgstr "Konnte diesen Hauptverantwortlichen nicht finden" +msgstr "Konnte diese Rolle nicht finden" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" msgstr "Konnte diesen Wert nicht finden" -#: NOT FOUND IN SOURCE -msgid "Couldn't find user\\n" -msgstr "" - -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Konnte %1 nicht aus der Benutzerdatenbank laden.\\n" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "Konnte die Klasse %1 nicht laden" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" msgstr "Konnte das benutzerdefinierte Feld %1 nicht laden" -#: NOT FOUND IN SOURCE -msgid "Couldn't load RT config file '%1' %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load Scrips." -msgstr "" - -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" msgstr "Konnte Gruppe %1 nicht laden" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "Konnte den Verweis nicht laden" -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: 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 "Konnte Objekt %1 nicht laden" + +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" -msgstr "Konnte den Stapel nicht laden" +msgstr "Konnte den Bereich nicht laden" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" -msgstr "Konnte den Stapel %1 nicht laden" +msgstr "Konnte den Bereich %1 nicht laden" -#: NOT FOUND IN SOURCE -msgid "Couldn't load scrip" -msgstr "" +#: html/SelfService/Display.html:156 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Konnte das Anfrage '%1' nicht laden" -#: NOT FOUND IN SOURCE -msgid "Couldn't load template" +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." msgstr "" -#: NOT FOUND IN SOURCE -msgid "Couldn't load that user (%1)" -msgstr "Konnte diesen Benutzer nicht laden (%1)" - -#: html/SelfService/Display.html:116 -#. ($id) -msgid "Couldn't load ticket '%1'" -msgstr "Konnte das Ticket '%1' nicht laden" +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "Land" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "Erstellen" #: etc/initialdata:135 msgid "Create Tickets" -msgstr "Erstelle Tickets" - -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "Erstelle eine Klasse" +msgstr "Erstelle Anfragen" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "Erstelle ein benutzerdefiniertes Feld" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" -msgstr "Erstelle ein benutzerdef. Feld für Stapel %1" - -#: html/Admin/Global/CustomField.html:47 -msgid "Create a CustomField which applies to all queues" -msgstr "Erstelle ein benutzerdef. Feld für alle Stapel" - -#: NOT FOUND IN SOURCE -msgid "Create a new Custom Field" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create a new article" -msgstr "Erstelle einen neuen Artikel" +msgstr "Erstelle ein benutzerdefiniertes Feld für den Bereich %1" -#: NOT FOUND IN SOURCE -msgid "Create a new global scrip" -msgstr "" - -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "Erstelle eine neue Gruppe" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "Erstelle eine neue persönliche Gruppe" -#: 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:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" -msgstr "Erstelle ein neues Ticket" +msgstr "Erstelle eine neue Anfrage" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "Erstelle einen neuen Benutzer" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" -msgstr "Erstelle einen Stapel" - -#: NOT FOUND IN SOURCE -msgid "Create a queue called" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create a request" -msgstr "Erstelle ein Ticket" +msgstr "Erstelle einen Bereich" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" -msgstr "Erstelle ein Scrip für den Stapel %1" +msgstr "Erstelle ein Scrip für den Bereich %1" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "Erstelle eine Vorlage" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" msgstr "Neue Anfrage" -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "Erstelle einen Artikel" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "Erstelle einen Artikel in der Klasse..." - #: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" -msgstr "Erstelle neue Tickets basierend auf der Vorlage dieses Scrips" +msgstr "Erstelle neue Anfragen basierend auf der Vorlage dieses Scrips" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" -msgstr "Übermitteln" +msgstr "Anfrage erzeugen" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" -msgstr "Erstelle Tickets in diesem Stapel" +msgstr "Erstelle Anfragen in diesem Bereich" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" -msgstr "Erstellen, löschen und modifizieren von benutzerdef. Felder" +msgstr "Erstellen, löschen und modifizieren von benutzerdefinierten Felder" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" -msgstr "Erstelle, lösche und modifiziere Stapel" - -#: NOT FOUND IN SOURCE -msgid "Create, delete and modify the members of any user's personal groups" -msgstr "" +msgstr "Erstelle, lösche und modifiziere Bereich" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "Erstellen, löschen und modifizieren von Mitgliedern persönlicher Gruppen" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "Erstellen, löschen und modifizieren von Benutzern" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "GespeicherteSucheErstellen" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" -msgstr "" +msgstr "AnfrageErstellen" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "Angelegt" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Erstelle ein benutzerdefiniertes Feld %1" -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "Angelegt von" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "Erstellt zwischen" - -#: NOT FOUND IN SOURCE -msgid "Created template %1" -msgstr "" - -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" -msgstr "" +msgstr "Ersteller" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "Momentane Beziehungen" -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "Aktuelle Scrips" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "Aktuelle Mitglieder" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "Aktuelle Rechte" -#: NOT FOUND IN SOURCE -msgid "Current search criteria" -msgstr "Aktuelle Suchkriterien" - -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "Aktuelle Beobachter" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) -msgid "Custom Field #%1" -msgstr "Benutzerdef. Feld #%1" - -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" -msgstr "Benutzerdef. Felder" +msgstr "Benutzerdefinierte Felder" + +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) +msgid "Custom Fields for %1" +msgstr "Benutzerdefinierte Felder für %1" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" -msgstr "Benutzerdefinierter Action-Cleanup-Code" +msgstr "Benutzerdefinierter Aktions-Aufräum-Code" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "Benutzerdefinierter Aktions-Vorbereitungs-Code" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "Benutzerdefinierte Bedingung" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) -msgid "Custom field %1 %2 %3" -msgstr "Benutzerdefiniertes Feld %1 %2 %3" - -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Benutzerdefiniertes Feld %1 hat einen Wert." -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Benutzerdefiniertes Feld %1 hat keinen Wert." -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Benutzerdefiniertes Feld %1 nicht gefunden" -#: html/Admin/Elements/EditCustomFields:195 -msgid "Custom field deleted" -msgstr "Benutzerdefiniertes Feld wurde gelöscht" - -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" msgstr "Benutzerdefiniertes Feld nicht gefunden" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "Wert %1 des benutzerdefinierten Feldes %2 konnte nicht gefunden werden" -#: NOT FOUND IN SOURCE -msgid "Custom field value changed from %1 to %2" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "Wert des benutzerdefinierten Felds konnte nicht gelöscht werden" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "Wert des benutzerdefinierten Feldes konnte nicht gefunden werden" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "Wert des benutzerdefinierten Feldes gelöscht" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" -msgstr "" +msgstr "BenutzerdefiniertesFeld" -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "Datumsangaben" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." -msgstr "Dez" - -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "" +msgstr "Dez." #: etc/initialdata:222 msgid "Default Autoresponse template" -msgstr "Standard Autoresponse-Vorlage" +msgstr "Standard Vorlage für automatische Antworten" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" -msgstr "" +msgstr "Standard Bereich" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" -msgstr "" +msgstr "Standard Klient" #: etc/initialdata:296 msgid "Default admin comment template" -msgstr "Standard Admin-Kommentar-Vorlage" +msgstr "Standard Vorlage für Admin-Kommentar" #: etc/initialdata:275 msgid "Default admin correspondence template" -msgstr "Standard Admin-Korrespondenz-Vorlage" +msgstr "Standard Vorlage für Admin-Korrespondenz" #: etc/initialdata:287 msgid "Default correspondence template" -msgstr "Standard Korrespondenz-Vorlage" +msgstr "Standard Vorlage für Korrespondenz" #: etc/initialdata:253 msgid "Default transaction template" -msgstr "Standard Transaktions-Vorlage" +msgstr "Standard Vorlage für Transaktion" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: NOT FOUND IN SOURCE msgid "Default: %1/%2 changed from %3 to %4" -msgstr "Standard: %1/%2 von \"%3\" in \"%4\" geändert." +msgstr "Standard: %1/%2 von \"%3\" auf \"%4\" geändert." -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "Rechte weitergeben" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "Ihnen gewährte Rechte weitergeben" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" -msgstr "" +msgstr "RechteWeitergabe" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "Rechteweitergabe" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "Löschen" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" -msgstr "" +msgstr "Vorlage löschen" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" -msgstr "Lösche Artikel #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" +msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" -msgstr "" +msgstr "Ausgewähltes Script löschen" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" -msgstr "Lösche Tickets" +msgstr "Anfragen löschen" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" +msgstr "AnfrageLöschen" + +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" msgstr "" -#: lib/RT/Transaction_Overlay.pm:162 +# Are these three strings really different? +#: NOT FOUND IN SOURCE msgid "Deleting this object could break referential integrity" -msgstr "Löschen dieses Objektes kann die referenzielle Integrität gefährden" +msgstr "Löschen dieses Objektes würde die referenzielle Integrität verletzen" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" -msgstr "Löschen dieses Objektes würde die referenzielle Integrität gefährden" +msgstr "Löschen dieses Objektes würde die referenzielle Integrität verletzen" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "Löschen dieses Objektes würde die referenzielle Integrität verletzen" -#: html/Approvals/Elements/Approve:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "Ablehnen" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" -msgstr "Abhängig gemacht von" - -#: NOT FOUND IN SOURCE -msgid "Dependencies: \\n" -msgstr "" +msgstr "Ist Voraussetzung von" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" -msgstr "" +msgstr "Als Voraussetzung von %1 hinzugefügt" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" -msgstr "" +msgstr "Als Voraussetzung von %1 gelöscht" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" -msgstr "" +msgstr "Setzt jetzt %1 voraus" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" -msgstr "" +msgstr "Setzt %1 nicht mehr voraus " -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" -msgstr "Abhängig von" +msgstr "Voraussetzungen" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "absteigend" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" -msgstr "Beschreibe hier das Problem" +msgstr "Beschreiben Sie hier das Problem" -#: 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 +#: 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:56 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 "Beschreibung" -#: NOT FOUND IN SOURCE -msgid "Details" -msgstr "Details" - -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" -msgstr "Anzeigen" +msgstr "Anzeige" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" -msgstr "Zeige Zugriffskontrollliste an" +msgstr "Zeige Zugriffskontrollliste (ACL) an" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" -msgstr "" +msgstr "Spalten anzeigen" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" -msgstr "Zeige Scrip-Vorlagen für diesen Stapel" +msgstr "Zeige Scrip-Vorlagen für diesen Bereich" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" -msgstr "Zeige Scrips für diesen Stapel" +msgstr "Zeige Scrips für diesen Bereich" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "Anzeigemodus" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Display ticket #%1" -msgstr "Zeige Ticket #%1 an" +msgstr "Gespeicherte Suchanfragen für diese Gruppe anzeigen" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" msgstr "" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "Mache irgend etwas und alles" -#: html/Elements/Refresh:29 -msgid "Don't refresh this page." -msgstr "Seite nicht aktualisieren." +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "Suche durchführen" -#: NOT FOUND IN SOURCE -msgid "Don't show search results" -msgstr "Suchergebnisse nicht anzeigen" +#: html/Elements/Refresh:51 +msgid "Don't refresh this page." +msgstr "Diese Seite nicht aktualisieren." -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" -msgstr "Download" +msgstr "Herunterladen" -#: 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 +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 +msgid "Download as a tab-delimited file" +msgstr "Als Tabulator separierte Datei speichern" + +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "Fällig" -#: NOT FOUND IN SOURCE -msgid "Due date '%1' could not be parsed" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "FEHLER: Konnte Ticket '%1' nicht laden: %2.\\n" +#: 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 "Bearbeite benutzerdefinierte Felder für %1" -#: NOT FOUND IN SOURCE -msgid "Edit" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" msgstr "" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) -msgid "Edit Custom Fields for %1" -msgstr "Bearbeite benutzerdefinierte Felder für %1" +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" -msgstr "Bearbeite benutzerdefinierte Felder für Klasse %1" +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "Bearbeite Beziehungen" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" -msgstr "" +msgstr "Bearbeite Suche" -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" -msgstr "Bearbeite Vorlagen für Stapel %1" +msgstr "Bearbeite Vorlagen für den Bereich %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" -msgstr "" +msgstr "Bearbeite gespeicherte Suchanfragen für diese Gruppe" -#: NOT FOUND IN SOURCE -msgid "Edit scrips" -msgstr "" - -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "Bearbeite Systemvorlagen" -#: NOT FOUND IN SOURCE -msgid "Edit templates for %1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "Bearbeite Konfiguration für die Klasse %1" +msgstr "GespeicherteSucheEditieren" -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" -msgstr "Bearbeite Konfiguration für den Stapel %1" - -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for user %1" -msgstr "Bearbeite Konfiguration für Benutzer %1" +msgstr "Bearbeite Konfiguration für den Bereich %1" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Bearbeite benutzerdefiniertes Feld %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Bearbeite Mitgliedschaft für die Gruppe %1" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Bearbeite Mitgliedschaft der persönlichen Gruppe %1" -#: NOT FOUND IN SOURCE -msgid "Editing template %1" -msgstr "" - -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" -msgstr "Es muß entweder eine Basis oder ein Ziel angegeben werden" +msgstr "Es muss entweder eine Basis oder ein Ziel angegeben werden" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "E-Mail" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "E-Mail-Adresse bereits in Gebrauch" -#: NOT FOUND IN SOURCE -msgid "EmailAddress" -msgstr "E-Mail-Adresse" - -### muss das überhaupt übersetzt werden??? -#: NOT FOUND IN SOURCE -msgid "EmailEncoding" -msgstr "E-Mail-Kodierung" - -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "Aktiviert (Abwählen deaktiviert diese Klasse)" - -### muss das überhaupt übersetzt werden??? -#: html/Admin/Elements/EditCustomField:50 +# ## muss das überhaupt übersetzt werden??? +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "Aktiviert (Abwählen deaktiviert dieses benutzerdef. Feld)" +msgstr "Aktiviert (Abwählen deaktiviert dieses benutzerdefinierte Feld)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 msgid "Enabled (Unchecking this box disables this group)" msgstr "Aktiviert (Abwählen deaktiviert diese Gruppe)" -#: html/Admin/Queues/Modify.html:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Aktiviert (Abwählen deaktiviert diesen Stapel)" - -#: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "Aktivierte Klassen" +msgstr "Aktiviert (Abwählen deaktiviert diesen Bereich)" -#: html/Admin/Elements/EditCustomFields:97 -msgid "Enabled Custom Fields" -msgstr "Aktivierte benutzerdefinierte Felder" - -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" -msgstr "Aktivierte Stapel" +msgstr "Aktivierte Bereiche" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" -msgstr "Status %1 aktiviert" +msgstr "Status aktiviert: %1" -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." -msgstr "Artikel oder URIs getrennt durch Leerzeichen eingeben." +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) +msgid "Enabled status: %1" +msgstr "Status aktiviert: %1" -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "Mehrere Werte eingeben" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." msgstr "" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "Einen Wert eingeben" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." msgstr "" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." msgstr "" -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." -msgstr "Ticketnummern oder URIs getrennt durch Leerzeichen eingeben." +#: lib/RT/CustomField_Overlay.pm:66 +msgid "Enter up to %1 values" +msgstr "Gib bis zu %1 Werte ein" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "Fehler" -#: lib/RT/Queue_Overlay.pm:593 +# Queue->AddWatcher ist ein Code-Teil, nicht übersetzen +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" -msgstr "Fehler in den Parameter für Queue-AddWatcher" - -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Queue->DelWatcher" -msgstr "Fehler in den Paramter für Queue->DelWatcher" +msgstr "Fehler in den Parametern zu Queue->AddWatcher" -#: lib/RT/Queue_Overlay.pm:754 +# Queue->DeleteWatcher ist ein Code-Teil, nicht übersetzen +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "" +msgstr "Fehler in den Parametern zu Queue->DeleteWatcher" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" -msgstr "Fehler in den Parameter für Ticket->AddWatcher" - -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Ticket->DelWatcher" -msgstr "Fehler in den Parameter für Ticket->DelWatcher" +msgstr "Fehler in den Parametern zu Ticket->AddWatcher" -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "" +msgstr "Fehler in den Parametern zu Ticket->DeleteWatcher" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" -msgstr "" +msgstr "Anfragen eskalieren" -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" -msgstr "" +msgstr "Geschätzt" #: etc/initialdata:20 msgid "Everyone" -msgstr "Everyone" +msgstr "Jeder" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "Beispiel:" -#: NOT FOUND IN SOURCE -msgid "ExternalAuthId" -msgstr "ExternalAuthId" - -#: NOT FOUND IN SOURCE -msgid "ExternalContactInfoId" -msgstr "ExternalContactInfoId" - -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "Zusatzinformationen" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "Extrahiere Artikel aus Anfrage #%1" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" -msgstr "Extrahiere Artikel aus Anfrage #%1 in die Klasse %2" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" +msgstr "" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Konnte die Pseudogruppe 'Privileged' nicht finden." -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Konnte die Pseudogruppe 'Unprivileged' nicht finden." -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Konnte Modul %1 nicht laden. (%2)" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + +#: lib/RT/Date.pm:438 msgid "Feb." -msgstr "Feb" +msgstr "Feb." -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" +msgstr "Dateiname" + +#: lib/RT/CustomField_Overlay.pm:69 +msgid "Fill in multiple text areas" +msgstr "Mehrere Textfelder füllen" + +#: lib/RT/CustomField_Overlay.pm:74 +msgid "Fill in multiple wikitext areas" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Fin" +#: lib/RT/CustomField_Overlay.pm:70 +msgid "Fill in one text area" +msgstr "Ein Textfeld füllen" + +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:71 +msgid "Fill in up to %1 text areas" +msgstr "%1 Textfelder füllen" + +#: lib/RT/CustomField_Overlay.pm:76 +msgid "Fill in up to %1 wikitext areas" msgstr "" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "Endpriorität" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" -msgstr "" +msgstr "EndPriorität" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 -msgid "Find group whose" -msgstr "Finde Gruppe wessen" - -#: NOT FOUND IN SOURCE -msgid "Find new/open tickets" -msgstr "Finde neue/offene Tickets" +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 +msgid "Find groups whose" +msgstr "Finde Gruppen dessen" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +msgid" Find groups whose" +msgstr "Finde Gruppen dessen" +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "Finde Leute deren" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "Anfragen suchen" -#: NOT FOUND IN SOURCE -msgid "Finish Approval" -msgstr "" - -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "Erste" -#: NOT FOUND IN SOURCE -msgid "First page" -msgstr "Erste Seite" - -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" -msgstr "erzwinge Änderung" +msgstr "Änderung erzwingen" + +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" -#: html/Search/Results.html:70 +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" -msgstr "%quant(%1,ticket) gefunden" +msgstr "%1 Anfrage(n) gefunden" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "Objekt gefunden" #: NOT FOUND IN SOURCE -msgid "FreeformContactInfo" -msgstr "FreeformContactInfo" +msgid "Freeform" +msgstr "Freie Eingabe" -#: lib/RT/CustomField_Overlay.pm:37 -msgid "FreeformMultiple" -msgstr "FreieMehrfachauswahl" - -#: lib/RT/CustomField_Overlay.pm:36 -msgid "FreeformSingle" -msgstr "FreieEinzelauswahl" - -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." -msgstr "Fr" +msgstr "Fr." -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "Alle Kopfzeilen" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Getting the current user from a pgp sig\\n" -msgstr "" +msgstr "Vorlage von Datei nehmen" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" -msgstr "An %1 gegeben" +msgstr "An %1 übergeben" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "Global" -#: NOT FOUND IN SOURCE -msgid "Global Scrips" -msgstr "" +#: html/Admin/Elements/EditCustomFields:55 +msgid "Global Custom Fields" +msgstr "Globale benutzerdefinierte Felder" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "Konfiguration globaler benutzerdefinierter Felder" + +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Globale Vorlage: %1" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" -msgstr "" +msgstr "Start" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "Los!" -#: NOT FOUND IN SOURCE -msgid "Good pgp sig from %1\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Goto page" -msgstr "Gehe zu Seite" - -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "Zeige Anfrage" -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: 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 "" - -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "Gruppenrechte" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "Gruppe hat bereits Mitglieder" -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Gruppe konnte nicht erstellt werden: %1" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "Gruppe angelegt" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "Gruppe hat kein solches Mitglied" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "Gruppe nicht gefunden" -#: NOT FOUND IN SOURCE -msgid "Group not found.\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Group not specified.\\n" -msgstr "" - -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "Gruppen" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "Gruppen können nicht Mitglied eines ihrer Mitglieder sein" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: html/Admin/Groups/index.html:82 +msgid "Groups matching search criteria" +msgstr "Gruppen auf die das Suchkriterium passt" + +#: html/Ticket/Elements/ShowRequestor:77 +msgid "Groups this user belongs to" +msgstr "Gruppen zu denen der Benutzer gehört" + +#: 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:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "Hallo %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" -msgstr "Historie" +msgstr "Geschichte" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "Historie für Artikel #%1" +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) +msgid "History of the group %1" +msgstr "Geschichte der Gruppe %1" -#: NOT FOUND IN SOURCE -msgid "HomePhone" -msgstr "TelefonZuhause" +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) +msgid "History of the user %1" +msgstr "Geschichte des Benutzers %1" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "Start" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." -msgstr "" +msgstr "Ich habe %quant(%1, Betonmischer)" -#: NOT FOUND IN SOURCE -msgid "I have [quant,_1,concrete mixer]." -msgstr "" +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "Ich bin verwirrt" -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "Nr." -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "Identität" #: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "Wenn eine Freigabe abgewiesen wird, weise das Original ab und lösche wartende Freigaben" +msgstr "" +"Wenn eine Freigabe abgewiesen wird, weise das Original ab und lösche " +"wartende Freigaben" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "" +msgstr "Wenn kein Klient spezifiziert ist, dann generiere Anfragen mit diesem Klienten" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." -msgstr "" +msgstr "Wenn kein Bereich spezifiziert ist, dann generiere das Anfrage in diesem Bereich" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "Wenn dieses Werkzeug 'setgid' wäre könnte ein feindlicher lokaler Benutzer dadurch administrativen Zugriff auf RT erlangen." +msgstr "" -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" -msgstr "Wenn Sie irgend etwas aktualisiert haben, denken Sie daran hier zu klicken" +msgstr "Wenn Sie etwas aktualisiert haben, denken Sie daran hier zu speichern" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "Unerlaubter Wert für %1" -#: lib/RT/Record.pm:745 -msgid "Immutable field" -msgstr "Unveränderbares Feld" - #: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "Zeige auch deaktivierte Klassen an." +msgid "Image" +msgstr "Bild" -#: html/Admin/Elements/EditCustomFields:72 -msgid "Include disabled custom fields in listing." -msgstr "Zeige auch deaktivierte benutzerdefinierte Felder an." +#: lib/RT/Record.pm:936 +msgid "Immutable field" +msgstr "Unveränderbares Feld" -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." -msgstr "" +msgstr "Zeige auch deaktivierte Gruppen an." -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." -msgstr "Zeige auch deaktivierte Stapel an." +msgstr "Zeige auch deaktivierte Bereiche an." -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "Zeige deaktivierte Benutzer auch in der Suche an." -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "Unvollständige Suche" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "Unvollständige Anfrage" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "Anfängliche Priorität" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" -msgstr "" +msgstr "AnfänglichePriorität" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "Eingabefehler" -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "Interner Fehler" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" -msgstr "Internet Fehler: %1" +msgstr "Interner Fehler: %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "Ungültige Gruppenart" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "Ungültiges Recht" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "Ungültige Daten" -#: NOT FOUND IN SOURCE -msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "Ungültiger Inhaber. Zurücksetzung auf 'nobody'." - -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" -msgstr "Ungültiger Stapel" +msgstr "Ungültiger Bereich" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "Ungültiges Recht" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "Ungültiger Wert für %1" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "Ungültiger Wert für das benutzerdefinierte Feld" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "Ungültiger Statuswert" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "Es ist sehr wichtig dass nichtprivilegierte Benutzer dieses Werkzeug nicht aufrufen können." +msgstr "" -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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 "Es wird empfohlen einen nichtprivilegierten Unix-User mit korrekter Gruppenzugehörigkeit zum Zugriff auf RT anzulegen um dieses Werkzeug aufzurufen." +msgstr "" -#: bin/rt-crontool:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "Es verarbeitet verschiedene Parameter:" -#: NOT FOUND IN SOURCE -msgid "Items pending my approval" -msgstr "" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "kursiv" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." -msgstr "Jan" +msgstr "Jan." -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "Betrete oder verlasse diese Gruppe" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." -msgstr "Jul" +msgstr "Jul." -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "Alles" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." -msgstr "Jun" - -#: NOT FOUND IN SOURCE -msgid "Keyword" -msgstr "" +msgstr "Jun." -#: NOT FOUND IN SOURCE -msgid "Lang" +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 +msgid "Language" msgstr "Sprache" -#: html/User/Prefs.html:54 -msgid "Language" -msgstr "" +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "Groß" -#: html/Ticket/Elements/Tabs:74 +#: html/Ticket/Elements/Tabs:96 msgid "Last" -msgstr "letzter Kontakt" +msgstr "Letzter Kontakt" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "Letzter Kontakt" -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "Zuletzt Kontaktiert" -#: NOT FOUND IN SOURCE -msgid "Last Notified" -msgstr "Letzte Änderung" - -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "Zuletzt Aktualisiert" -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" -msgstr "" +msgstr "ZuletztBearbeitetVon" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" -msgstr "" +msgstr "Links" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "Diesem Benutzer RT-Zugriff gewähren" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" -msgstr "Diesem Benutzer mehr Rechte gewähren" - -#: NOT FOUND IN SOURCE -msgid "Limiting owner to %1 %2" -msgstr "" +msgstr "Diesem Benutzer Rechte zuweisen lassen" -#: NOT FOUND IN SOURCE -msgid "Limiting queue to %1 %2" +#: html/Search/Elements/EditFormat:68 +msgid "Link" msgstr "" -#: lib/RT/Record.pm:1086 +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "Beziehung existiert bereits" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "Beziehung konnte nicht erstellt werden" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "Beziehung erstellt (%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "Beziehung gelöscht (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "Beziehung nicht gefunden" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" -msgstr "Verweise auf Ticket #%1" +msgstr "Verweise auf Anfrage #%1" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "Beziehungen" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" -msgstr "" +msgstr "Laden" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" -msgstr "" +msgstr "Gespeicherte Suchanfragen laden" + +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "GespeicherteSucheLaden" -#: html/Admin/Tools/Configuration.html:19 +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" +msgstr "Geladene Perl Module" + +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "Adresse" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." -msgstr "Log-Verzeichnis %1 nicht gefunden oder kein Schreibzugriff.\\n RT kann nicht starten." +msgstr "" +"Log-Verzeichnis %1 nicht gefunden oder kein Schreibzugriff.\\n RT kann nicht " +"starten." -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Angemeldet als %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "Anmelden" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "Abmelden" -#: html/Search/Bulk.html:83 +#: lib/RT/CustomField_Overlay.pm:866 +msgid "Lookup type mismatch" +msgstr "Suchtyp unpassend" + +#: html/Search/Bulk.html:104 msgid "Make Owner" -msgstr "Mach Inhaber" +msgstr "Besitzer festlegen" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" -msgstr "Mach Status" +msgstr "Status festlegen" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" -msgstr "Mach Fälligkeitsdatum" +msgstr "Fälligkeitsdatum festlegen" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" -msgstr "Mach Erledigungsdatum" +msgstr "Erledigungsdatum festlegen" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" -msgstr "Mach Datum gestartet" +msgstr "Anfangsdatum festlegen" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" -msgstr "Mach Startdatum" +msgstr "Startdatum festlegen" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" -msgstr "Mach Eingangsdatum" +msgstr "Eingangsdatum festlegen" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" -msgstr "Mach Priorität" +msgstr "Priorität festlegen" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" -msgstr "Mach Stapel" +msgstr "Bereich festlegen" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" -msgstr "Betreff setzen" +msgstr "Betreff festlegen" + +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" +msgstr "Diese Gruppe dem Benutzer anzeigen" -#: html/Admin/index.html:32 +#: html/Admin/index.html:78 +msgid "Manage custom fields and custom field values" +msgstr "Verwalte benutzerdefinierte Felder und Werte" + +#: html/Admin/index.html:69 msgid "Manage groups and group membership" msgstr "Gruppen und Gruppenmitglieder verwalten" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" -msgstr "Eigenschaften und Einstellungen für alle Stapel verwalten" +msgstr "Eigenschaften und Einstellungen für alle Bereiche verwalten" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" -msgstr "Stapel und stapelspezifische Einstellungen verwalten" +msgstr "Bereich und bereichspezifische Einstellungen verwalten" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "Benutzer und Passworte verwalten" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." -msgstr "Mär" +msgstr "Mär." -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." -msgstr "Mai." +msgstr "Mai" -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" -msgstr "" +msgstr "Mitglied %1 hinzugefügt" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" -msgstr "" +msgstr "Mitglied %1 gelöscht" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "Mitglied hinzugefügt" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "Mitglied gelöscht" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "Mitglied nicht gelöscht" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "Mitglied von" -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "Mitglieder" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" -msgstr "" +msgstr "Mitgliedschaft in %1 hinzugefügt" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" -msgstr "" +msgstr "Mitgliedschaft in %1 gelöscht" + +#: html/Admin/Elements/UserTabs:61 +msgid "Memberships" +msgstr "Mitgliedschaft" + +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) +msgid "Memberships of the user %1" +msgstr "Mitgliedschaft des Benutzers %1" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" -msgstr "Zusammenführung erfolgreich" +msgstr "Vereinigung erfolgreich" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" -msgstr "Zusammenführung fehlgeschlagen. Konnte EffectiveId nicht setztn" +msgstr "Vereinigung fehlgeschlagen. Konnte EffectiveId nicht setzen" + +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "Vereinigung fehlgeschlagen. Konnte Status nicht setzen" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" -msgstr "Zusammenführen in" +msgstr "Vereinigen mit" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" -msgstr "" +msgstr "Vereinigt mit %1" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "Nachricht" -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" -msgstr "" +msgstr "Nachricht konnte nicht gespeichert werden" -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" -msgstr "" +msgstr "Nachricht gespeichert" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." -msgstr "" +msgstr "Nachrichten über diese Anfrage werden nicht an diese Empfänger gesendet:" -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "Unausgeglichene Klammerung" + +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "%1: Fehlt ein Primärschlüssel?" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" -msgstr "Mobil" - -#: NOT FOUND IN SOURCE -msgid "MobilePhone" -msgstr "Mobiltelefon" - -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "Geändert" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "Ändern" +msgstr "Handy" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" -msgstr "Ändere Zugriffskontrollliste" +msgstr "Ändere Zugriffskontrollliste (ACL)" -#: NOT FOUND IN SOURCE -msgid "Modify Custom Field %1" -msgstr "" +#: html/Admin/Elements/ObjectCustomFields:96 +#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) +msgid "Modify Custom Fields which apply to %1 for all %2" +msgstr "Alle benutzerdefinierten Felder %2, die zu %1 gehören, ändern" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 -msgid "Modify Custom Fields which apply to all queues" -msgstr "Ändere benutzdefinierte Felder für diesen Stapel" +#: html/Admin/Elements/ObjectCustomFields:98 +#. (loc(lc($Types))) +msgid "Modify Custom Fields which apply to all %1" +msgstr "Alle benutzerdefinierten Felder, die zu %1 gehören, ändern" -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 msgid "Modify Group Rights" -msgstr "" +msgstr "Gruppenrechte ändern" -#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" -msgstr "" +msgstr "Mitglieder ändern" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" -msgstr "" +msgstr "Rechte ändern" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" -msgstr "Ändere Scrip-Vorlagen für diesen Stapel" +msgstr "Ändere Scrip-Vorlagen für diesen Bereich" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" -msgstr "Ändere Scrips für diesen Stapel" - -#: NOT FOUND IN SOURCE -msgid "Modify Template %1" -msgstr "" +msgstr "Ändere Scrips für diesen Bereich" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 msgid "Modify User Rights" -msgstr "" +msgstr "Ändern der Benutzerrechte" -#: html/Admin/Queues/CustomField.html:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" -msgstr "Ändere ein benutzerdefiniertes Feld für Stapel %1" - -#: html/Admin/Global/CustomField.html:52 -msgid "Modify a CustomField which applies to all queues" -msgstr "Ändere ein globales benutzerdefiniertes Feld" +msgstr "Ändere ein benutzerdefiniertes Feld für den Bereich %1" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" -msgstr "Ändere ein Scrip für den Stapel %1" +msgstr "Ändere ein Scrip für den Bereich %1" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "Ändere ein globales benutzerdefiniertes Feld" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "Ändere Artikel #%1" +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) +msgid "Modify associated objects for %1" +msgstr "Ändern der assoziierte Objekte von %1" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Ändere Datumsangaben für #%1" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" -msgstr "Ändere Datumsangaben für Ticket #%1" +msgstr "Ändere Datumsangaben für Anfrage #%1" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: html/Admin/Elements/GlobalCustomFieldTabs:65 html/Admin/Global/index.html:72 +msgid "Modify global custom fields" +msgstr "Ändern der globalen benutzerdefinierten Felder" + +#: 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 "Ändere globale Gruppenrechte" -#: html/Admin/Global/GroupRights.html:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." msgstr "Ändere globale Gruppenrechte." -#: NOT FOUND IN SOURCE -msgid "Modify global scrips" -msgstr "" - -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 msgid "Modify global user rights" msgstr "Ändere globale Benutzerrechte" -#: html/Admin/Global/UserRights.html:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "Ändere globale Benutzerrechte." -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "Ändere Gruppen-Metadaten oder lösche die Gruppe" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" msgstr "Ändere Gruppenrechte für das benutzerdefinierte Feld %1" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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 "Ändere die Gruppenrechte der Gruppe %1" -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" -msgstr "Ändere Gruppenrechte für Stapel %1" +msgstr "Ändere Gruppenrechte für den Bereich %1" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "Ändere Mitgliedsverzeichnis dieser Gruppe" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" -msgstr "Ändere jemandens eigenen RT-Zugang" +msgstr "Ändert den eigenen RT-Zugang" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" -msgstr "Ändere Leute bezogen auf Stapel %1" +msgstr "Ändere Personen im Zusammenhang mit diesem Bereich %1" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" -msgstr "Ändere Personen des Tickets #%1" +msgstr "Ändere Personen der Anfragen #%1" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" -msgstr "Ändere Scrips für den Stapel %1" +msgstr "Ändere Scrips für den Bereich %1" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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 "Ändere auf alle Stapel angewandte Scrips" +msgstr "Ändere auf alle Bereiche angewandte Scrips" -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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 "Ändere Vorlage %1" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" -msgstr "Ändere globale Templates" +msgstr "Ändere globale Vorlagen" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" msgstr "Ändere Gruppe %1" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" -msgstr "Ändere die Stapelbeobachter" +msgstr "Ändere die Bereichsbeobachter" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Ändere Benutzer %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" -msgstr "Ändere Ticket #%1" +msgstr "Ändere Anfrage #%1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 #. ($TicketObj->Id) msgid "Modify ticket #%1" -msgstr "Ändere Ticket #%1" +msgstr "Ändere Anfrage #%1" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" -msgstr "Ändere Tickets" +msgstr "Ändere Anfragen" + +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) +msgid "Modify user rights for custom field %1" +msgstr "Ändere Benutzerrechte für benutzerdefinierte Felder von %1" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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 "Ändere Benutzerrechte für die Gruppe %1" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" -msgstr "Ändere Benutzerrechte für Stapel %1" +msgstr "Ändere Benutzerrechte für den Bereich %1" -#: NOT FOUND IN SOURCE -msgid "Modify watchers for queue '%1'" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" -msgstr "" +msgstr "ACLBearbeiten" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "BenutzerdefiniertesFeldBearbeiten" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" -msgstr "" +msgstr "EigeneMitgliedschaftBearbeiten" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" -msgstr "" +msgstr "BereichsBeobachterBearbeiten" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" -msgstr "" +msgstr "ScripsBearbeiten" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" -msgstr "" +msgstr "SelbstBearbeiten" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" -msgstr "" +msgstr "VorlageBearbeiten" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" -msgstr "" +msgstr "AnfrageBearbeiten" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." -msgstr "Mo" +msgstr "Mo." -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "Mehr über %1" -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" -msgstr "Runter verschieben" +msgstr "Hinunter verschieben" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" -msgstr "Hoch verschieben" +msgstr "Hinauf verschieben" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "Mehrere" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "Sie müssen eine Angabe bei 'Name' machen" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" msgstr "Meine %1 Anfragen" -#: NOT FOUND IN SOURCE -msgid "My Approvals" -msgstr "" - -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "Meine Freigaben" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" -msgstr "" +msgstr "Meine gespeicherten Suchanfragen" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "Name" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "Benutzername ist bereits in Gebrauch" -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "Name enthält" - -#: NOT FOUND IN SOURCE -msgid "Need approval from system administrator" -msgstr "" - -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "Niemals" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "Neu" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "Neuer Artikel" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "Neue Beziehungen" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "Neues Passwort" @@ -2939,284 +2553,231 @@ msgstr "Neues Passwort" msgid "New Pending Approval" msgstr "Neue wartende Freigaben" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New Search" msgstr "Neue Suche" -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "Neue Klasse" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" -msgstr "Neues benutzerdef. Feld" +msgstr "Neues benutzerdefiniertes Feld" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "Neue Gruppe" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "Neues Passwort" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "Neue Passworterinnerung wurde verschickt" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" -msgstr "Neuer Stapel" - -#: NOT FOUND IN SOURCE -msgid "New request" -msgstr "" +msgstr "Neuer Bereich" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "Neue Rechte" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "Neues Scrip" -#: NOT FOUND IN SOURCE -msgid "New search" -msgstr "" - -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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 "Neue Vorlage" -#: html/SelfService/Elements/Tabs:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "Neue Anfrage" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" -msgstr "Neues Ticket existiert nicht" +msgstr "Neue Anfrage existiert nicht" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "Neuer Benutzer" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" -msgstr "Neues Benutzer aufgerufen" +msgstr "Neuer Benutzer aufgerufen" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "Neue Beobachter" -#: NOT FOUND IN SOURCE -msgid "New window setting" -msgstr "Speichere Fenstereinstellungen" - -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "Nächste" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Next page" msgstr "Nächste Seite" -#: NOT FOUND IN SOURCE -msgid "NickName" -msgstr "Spitzname" - -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "Spitzname" -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "Nein" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "Keine Klasse definiert" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "Kein benutzerdefiniertes Feld" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" msgstr "Kein benutzerdefiniertes Feld definiert" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" msgstr "Keine Gruppe definiert" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" -msgstr "" +msgstr "Keine Suche" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" -msgstr "Kein Stapel vorhanden" +msgstr "Kein Bereich vorhanden" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "Kein RT-Benutzer gefunden. Bitte kontaktiere Deinen RT-Administrator.\\n" +msgstr "" +"Kein RT-Benutzer gefunden. Bitte kontaktiere Sie Ihren " +"RT-Administrator.\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "Keine Vorlage" -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket " -msgstr "Kein Ticket angegeben. Bereche Ticket ab " - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket modifications\\n\\n" -msgstr "" - -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "Keine Aktion" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "Keine Spalte angegeben" -#: NOT FOUND IN SOURCE -msgid "No command found\\n" -msgstr "" - -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" -msgstr "Kein Kommentar über diesen Benutzer angegeben" - -#: NOT FOUND IN SOURCE -msgid "No correspondence attached" -msgstr "Keine Korrespondenz aufgezeichnet" +msgstr "Kein Kommentar zu diesem Benutzer angegeben" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "Keine Beschreibung für %1 vorhanden" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "Keine Gruppe angegeben" -#: lib/RT/Ticket_Overlay.pm:2475 +#: html/Admin/Groups/index.html:52 +msgid "No groups matching search criteria found." +msgstr "Keine Gruppe mit diesen Kriterien gefunden" + +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" -msgstr "" +msgstr "Keine Nachricht angefügt" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "Kein Passwort gesetzt" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" -msgstr "Kein Recht Stapel anzulegen" +msgstr "Keine Erlaubnis Bereiche anzulegen" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" -msgstr "Kein Recht um Tickets im Stapel '%1' anzulegen" +msgstr "Kein Erlaubnis um Anfragen im Bereich '%1' anzulegen" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "Kein Recht Benutzer anzulegen" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" -msgstr "Kein Recht dieses Ticket anzuzeigen" +msgstr "Kein Recht dieses Anfrage anzuzeigen" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" -msgstr "Kein Recht dieses Ticket zu aktualisieren" +msgstr "Kein Recht dieses Anfrage zu aktualisieren" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" -msgstr "Kein Hauptverantwortlicher angegeben" +msgstr "Keine Rolle angegeben" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." -msgstr "Keine Hauptverantwortliche ausgewählt." +msgstr "Keine Rolle ausgewählt." -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." -msgstr "Keine den Suchkriterien entsprechenden Stapel gefunden" +msgstr "Keine den Suchkriterien entsprechenden Bereiche gefunden" -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "Keine Rechte gefunden" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "Keine Rechte gewährt." -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." -msgstr "Keine Suchliste zum bearbeiten." +msgstr "Keine Suche zu bearbeiten." -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "No ticket id specified" -msgstr "" +msgstr "Kein Betreff" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "Kein Transaktionstyp angegeben" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "Keine auf die Suchkriterien passende Benutzer gefunden" -#: NOT FOUND IN SOURCE -msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" -msgstr "Kein gültiger RT-Benutzer gefunden. RT CVS-Handler weggefallen. Bitte kontaktiere Deinen RT-Administrator.\\n" - -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "Kein Wert an _Set geschickt!\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "Niemand" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "Nichtexistierendes Feld?" -#: NOT FOUND IN SOURCE -msgid "Not logged in" -msgstr "Nicht angemeldet" - -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "Nicht angemeldet." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "Nicht angegeben" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "Noch nicht implementiert." -#: NOT FOUND IN SOURCE -msgid "Not yet implemented...." -msgstr "Noch nicht implementiert..." - -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "Bemerkungen" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "Benachrichtigung konnte nicht verschickt werden" @@ -3230,11 +2791,11 @@ msgstr "Benachrichtige AdminCCs als Kommentar" #: etc/initialdata:93 etc/upgrade/3.1.17/content:6 msgid "Notify Ccs" -msgstr "" +msgstr "Benachrichtige CCs" #: etc/initialdata:89 etc/upgrade/3.1.17/content:2 msgid "Notify Ccs as Comment" -msgstr "" +msgstr "Benachrichtige CCs als Kommentar" #: etc/initialdata:128 msgid "Notify Other Recipients" @@ -3246,27 +2807,31 @@ msgstr "Benachrichtige andere Empfänger als Kommentar" #: etc/initialdata:85 msgid "Notify Owner" -msgstr "Benachrichte Inhaber" +msgstr "Benachrichtige Besitzer" #: etc/initialdata:81 msgid "Notify Owner as Comment" -msgstr "Benachrichtige Inhaber als Kommentar" +msgstr "Benachrichtige Besitzer als Kommentar" #: etc/initialdata:376 msgid "Notify Owner of their rejected ticket" -msgstr "" +msgstr "Besitzer über ihre abgewiesene Anfrage informieren" #: etc/initialdata:365 msgid "Notify Owner of their ticket has been approved by all approvers" msgstr "" +"Benachrichtige Besitzer, dass sein Anfrage von allen Entscheidungsträgern " +"freigegeben wurde" #: etc/initialdata:353 msgid "Notify Owner of their ticket has been approved by some approver" msgstr "" +"Benachrichtige Besitzer, dass sein Anfrage von einigen Entscheidungsträgern " +"freigegeben wurde" #: etc/initialdata:334 msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "Benachrichtige Inhaber und AdminCCs neuer auf Freigabe wartende Anfragen" +msgstr "Benachrichtige Besitzer und AdminCCs neuer auf Freigabe wartende Anfragen" #: etc/initialdata:77 msgid "Notify Requestors" @@ -3288,35 +2853,57 @@ msgstr "Benachrichtige die Klienten, CCs und AdminCCs" msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Benachrichtige die Klienten, CCs und AdminCCs als Kommentar" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." -msgstr "Nov" +msgstr "Nov." -#: lib/RT/Record.pm:200 +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "Oder" + +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "Objekt konnte nicht erstellt werden" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "Objekt konnte nicht gelöscht werden" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "Objekt erstellt" -#: lib/RT/Date.pm:420 +#: lib/RT/Record.pm:121 +msgid "Object deleted" +msgstr "Objekt gelöscht" + +#: html/Admin/CustomFields/Objects.html:72 html/Admin/Elements/ObjectCustomFields:63 +#. ($ObjectType) +#. ($LookupType) +msgid "Object of type %1 cannot take custom fields" +msgstr "Objekt vom Typ %1 kann keine benutzerdefinierten Felder haben" + +#: lib/RT/CustomField_Overlay.pm:901 +msgid "Object type mismatch" +msgstr "Objekt Typ passt nicht" + +#: lib/RT/Date.pm:446 msgid "Oct." -msgstr "Okt" +msgstr "Okt." -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" -msgstr "" +msgstr "Offline" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" -msgstr "" +msgstr "Offline Bearbeitung" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" -msgstr "" +msgstr "Offline Upload" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "am" @@ -3334,15 +2921,15 @@ msgstr "Bei Erstellen" #: etc/initialdata:184 msgid "On Owner Change" -msgstr "Bei Eigentümerwechsel" +msgstr "Bei Besitzerwechsel" #: etc/initialdata:177 etc/upgrade/3.1.17/content:15 msgid "On Priority Change" -msgstr "" +msgstr "Bei Änderung der Priorität" #: etc/initialdata:192 msgid "On Queue Change" -msgstr "Bei Stapelwechsel" +msgstr "Bei Änderung des Bereichs" #: etc/initialdata:198 msgid "On Resolve" @@ -3350,155 +2937,140 @@ msgstr "Beim Erledigen" #: etc/initialdata:169 msgid "On Status Change" -msgstr "Bei Statuswechsel" +msgstr "Beim Ändern des Status" #: etc/initialdata:150 msgid "On Transaction" msgstr "Bei einer Transaktion" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "Zeige nur Freigaben für nach dem %1 erstelle Anfragen" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "Zeige nur Freigaben für vor dem %1 erstellte Anfragen" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "Offen" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "Öffnen" -#: NOT FOUND IN SOURCE -msgid "Open requests" -msgstr "" - -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" msgstr "Offene Anfragen" -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in a new window" -msgstr "Öffne Anfragen (aus der Liste) in neuem Fenster" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in another window" -msgstr "Öffne Anfragen (aus der Liste) in ein anderes Fenster" - #: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "Öffne Anfragen bei Korrespondenz" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ordering and sorting" -msgstr "Sortierung und Reihenfolge" +msgstr "Sortiert nach" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "Organisation" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Ursprüngliche Anfrage: #%1" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" -msgstr "" +msgstr "Ausgehende Mail eines Kommentars gespeichert" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" -msgstr "" +msgstr "Ausgehende Mail gespeichert" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "Mit der Zeit steigt die Priorität auf" -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "Übersicht" - -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" -msgstr "Eigene Anfrage" +msgstr "Eigene Anfragen" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" -msgstr "" +msgstr "EigeneAnfrage" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" -msgstr "Inhaber" +msgstr "Besitzer" -#: NOT FOUND IN SOURCE -msgid "Owner changed from %1 to %2" -msgstr "Inhaberwechsel von %1 zu %2" - -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." -msgstr "" +msgstr "Besitzer konnte nicht gesetzt werden" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" -msgstr "Inhaber mit Gewalt von %1 in %2 geändert" +msgstr "Besitzer mit Gewalt von %1 in %2 geändert" -#: NOT FOUND IN SOURCE -msgid "Owner is" -msgstr "Inhaber ist" - -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" -msgstr "" +msgstr "Seite %1 von %2" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "Pager" -#: NOT FOUND IN SOURCE -msgid "PagerPhone" -msgstr "PagerTelefon" - -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "Eltern" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "Passwort" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "Passworterinnerung" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "Passwort geändert" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "Passwort ist zu kurz" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Passwort: %1" -#: html/Admin/Users/Modify.html:318 -msgid "Passwords do not match." +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" msgstr "" -#: html/User/Prefs.html:211 +#: html/Admin/Users/Modify.html:356 +msgid "Passwords do not match." +msgstr "Passwörter verschieden" + +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" -msgstr "" +msgstr "Passwörter verschieden, keine Änderung" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "Personen" @@ -3506,89 +3078,73 @@ msgstr "Personen" msgid "Perform a user-defined action" msgstr "Führe eine benutzerdefinierte Aktion aus" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" -msgstr "" +msgstr "Perl Konfiguration" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "Zugriff verweigert" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "Persönliche Gruppen" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "Persönliche Gruppen" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "Persönliche Gruppen:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "Telefonnummern" -#: NOT FOUND IN SOURCE -msgid "Placeholder" -msgstr "Platzhalter" - -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "Voreinstellungen" -#: NOT FOUND IN SOURCE -msgid "Prefs" -msgstr "" - -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" -msgstr "Vorbereitung abgehakt" +msgstr "Prepare Stumpf ausgeführt" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "Vorherige" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Previous page" msgstr "Vorherige Seite" -#: NOT FOUND IN SOURCE -msgid "Pri" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." -msgstr "Hauptverantwortlichen %1 nicht gefunden." +msgstr "Rolle %1 nicht gefunden." -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "Priorität" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "Priorität beginnt bei" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" -msgstr "" +msgstr "Privatsphäre:" #: etc/initialdata:25 msgid "Privileged" msgstr "Privilegiert" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Privilegierungsstatus: %1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "Privilegierte Benutzer" @@ -3596,862 +3152,713 @@ msgstr "Privilegierte Benutzer" msgid "Pseudogroup for internal use" msgstr "Pseudogruppe für internen Gebrauch" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" -msgstr "" +msgstr "Suche" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" -msgstr "" +msgstr "Suche erstellen" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" -msgstr "Stapel" +msgstr "Bereich" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" -msgstr "Stapel %2 nicht gefunden" +msgstr "Bereich %2 nicht gefunden" -#: NOT FOUND IN SOURCE -msgid "Queue '%1' not found\\n" -msgstr "" - -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" -msgstr "Name des Stapels" +msgstr "Name des Bereichs" -#: NOT FOUND IN SOURCE -msgid "Queue Scrips" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" -msgstr "Stapel existiert bereits" +msgstr "Bereich existiert bereits" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" -msgstr "Stapel konne nicht angelegt werden" +msgstr "Bereich konnte nicht angelegt werden" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 msgid "Queue could not be loaded." -msgstr "Stapel konnte nicht geladen werden" +msgstr "Bereich konnte nicht geladen werden" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" -msgstr "Stapel angelegt" - -#: NOT FOUND IN SOURCE -msgid "Queue is not specified." -msgstr "" +msgstr "Bereich angelegt" -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" -msgstr "Stapel nicht gefunden" +msgstr "Bereich nicht gefunden" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" -msgstr "Stapel" +msgstr "Bereiche" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "Schnellsuche" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" -msgstr "" +msgstr "Schnelle Anfrageerstellung" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" -msgstr "" +msgstr "RSS" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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 für %2" -#: NOT FOUND IN SOURCE -msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." -msgstr "RT %1 von <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 "" - -#: html/Admin/index.html:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "RT Administration" -#: NOT FOUND IN SOURCE -msgid "RT Authentication error." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Bounce: %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Configuration error" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Critical error. Message not recorded!" -msgstr "" - -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "RT Fehler" -#: NOT FOUND IN SOURCE -msgid "RT Received mail (%1) from itself." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "RT Selbstbedienung" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service / Closed Tickets" -msgstr "" - -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" -msgstr "" +msgstr "RT Variablen" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "RT auf einen Blick" -#: NOT FOUND IN SOURCE -msgid "RT couldn't authenticate you" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find requestor via its external database lookup" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find the queue: %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't validate this PGP signature. \\n" +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." msgstr "" -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "RT für %1" -#: NOT FOUND IN SOURCE -msgid "RT for %1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT has proccessed your commands" -msgstr "RT hat Ihre Befehle verarbeitet" - -#: 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 © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Vertrieben unter der <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 "" - -#: NOT FOUND IN SOURCE -msgid "RT will process this message as if it were unsigned.\\n" -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 "" - -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "RTFM Fehler" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" -msgstr "Realer Name" - -#: NOT FOUND IN SOURCE -msgid "RealName" -msgstr "RealerName" +msgstr "Echter Name" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" -msgstr "" +msgstr "Referenz von %1 hinzugefügt" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" -msgstr "" +msgstr "Referenz von %1 gelöscht" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" -msgstr "" +msgstr "Referenz auf %1 hinzugefügt" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" -msgstr "" +msgstr "Referenz auf %1 gelöscht" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" -msgstr "Bezogen von" +msgstr "Referenziert von" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "Bezieht sich auf" -#: NOT FOUND IN SOURCE -msgid "Refine" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Refine search" -msgstr "Suche Verfeinen" - -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Seite alle %1 Minuten aktualisieren." -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "Entferne AdminCC" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "Entferne CC" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "Entferne Klient" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "Antworten" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" -msgstr "" +msgstr "Antwort Adresse" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" -msgstr "" +msgstr "Antwort an Klienten" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "Antworte auf Anfragen" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" -msgstr "" +msgstr "AnfrageBeantwortung" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "Klient" -#: NOT FOUND IN SOURCE -msgid "Requestor email address" -msgstr "email-Adresse des Klienten" - -#: NOT FOUND IN SOURCE -msgid "Requestor(s)" -msgstr "" - -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "Klienten" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" -msgstr "Anfragen sollten erlegt werden in" +msgstr "Anfragen sollten erlegt werden innerhalb" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" -msgstr "" +msgstr "Benötigter Parameter '%1' nicht angegeben" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "Zurücksetzen" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "Zuhause" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "Erledigen" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" -msgstr "Erledige Anfrage Nr. %1 (%2)" +msgstr "Erledige Anfrage #%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "Erledigt" -#: NOT FOUND IN SOURCE -msgid "Response to requestors" -msgstr "Antwort an alle Klienten" - -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "Ergebnisse" -#: NOT FOUND IN SOURCE -msgid "Results per page" -msgstr "Ergebnisse pro Seite" - -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "Passwort wiederholen" -#: html/Search/Elements/EditSearches:13 +#: 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 "" +msgstr "Zurücksetzen" -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" -msgstr "Recht delegiert" +msgstr "Recht weitergegeben" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "Recht erteilt" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "Recht geladen" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "Recht konnte nicht zurückgezogen werden" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "Recht nicht gefunden" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "Recht nicht gefunden." -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "Recht zurückgezogen" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "Rechte" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" -msgstr "Rechte konnten für %1 nicht gewährt werden" +msgstr "Rechte für %1 konnten nicht gewährt werden" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" -msgstr "Rechte konnten nicht für %1 entzogen werden" +msgstr "Rechte für %1 konnten nicht entzogen werden" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "Rollen" -#: NOT FOUND IN SOURCE -msgid "RootApproval" -msgstr "" - -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" -msgstr "" +msgstr "Zeilen pro Seite" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." -msgstr "Sa" +msgstr "Sa." -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" -msgstr "" +msgstr "Speichern" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "Änderungen Sichern" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" -msgstr "" +msgstr "Einstellungen speichern" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "Änderungen Sichern" -#: html/Search/Elements/EditSearches:1 -msgid "Saved searches" +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" msgstr "" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Search/Elements/EditSearches:46 +msgid "Saved searches" +msgstr "Gespeicherte Suchanfragen" + +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" -msgstr "" +msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "Scrip angelegt" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" -msgstr "" +msgstr "Scrip Felder" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "Scrip gelöscht" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "Scrips" -#: NOT FOUND IN SOURCE -msgid "Scrips for %1\\n" -msgstr "Scrips für %1\\n" - -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" -msgstr "Auf alle Stapel angewande Scrips" +msgstr "Auf alle Bereiche angewandte Scrips" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "Suchen" -#: NOT FOUND IN SOURCE -msgid "Search Criteria" +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:38 +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "Suche nach Freigaben" -#: NOT FOUND IN SOURCE -msgid "Search for articles" -msgstr "Artikel suchen" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" +msgstr "" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" msgstr "Sicherheit:" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/CustomField_Overlay.pm:100 +msgid "See custom fields" +msgstr "Benutzerdefinierte Felder anzeigen" + +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" -msgstr "" +msgstr "Anzeigen der gesendeten Nachricht und deren Empfänger" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" -msgstr "" +msgstr "Anzeigen von anfrage-privaten Kommentaren" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" -msgstr "" +msgstr "Anfrage Zusammenfassungen anzeigen" + +#: lib/RT/CustomField_Overlay.pm:100 +msgid "SeeCustomField" +msgstr "Benutzerdefiniertes Feld anzeigen" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" +msgstr "GruppeAnzeigen" + +#: lib/RT/Queue_Overlay.pm:92 msgid "SeeQueue" -msgstr "" +msgstr "BereichAnzeigen" #: NOT FOUND IN SOURCE -msgid "Select a Class" -msgstr "Wähle eine Klasse aus" +msgid "Select" +msgstr "Auswahl" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" -msgstr "Wähle ein benutzerdefiniertes Feld aus" +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 +msgid "Select a Custom Field" +msgstr "Wählen Sie ein benutzerdefiniertes Feld aus" -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" -msgstr "Wähle eine Gruppe aus" +msgstr "Wählen Sie eine Gruppe aus" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" msgstr "" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 -msgid "Select a user" -msgstr "Wähle einen Benutzer aus" +#: html/SelfService/CreateTicketInQueue.html:48 +msgid "Select a queue for your new ticket" +msgstr "Wählen Sie einen Bereich für Ihre neue Anfrage" -#: NOT FOUND IN SOURCE -msgid "Select class" -msgstr "Wähle eine Klasse" +#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 +msgid "Select a user" +msgstr "Wählen Sie einen Benutzer aus" -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +#: html/Admin/Elements/CustomFieldTabs:90 msgid "Select custom field" -msgstr "Wähle ein benutzerdef. Feld" +msgstr "Wählen Sie ein benutzerdefiniertes Feld" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: html/Admin/Global/CustomFields/index.html:70 +msgid "Select custom fields for all user groups" +msgstr "Wählen Sie benutzerdefinierte Felder für alle Benutzergruppen aus" + +#: html/Admin/Global/CustomFields/index.html:65 +msgid "Select custom fields for all users" +msgstr "Wählen Sie benutzerdefinierte Felder für alle Benutzer aus" + +#: html/Admin/Global/CustomFields/index.html:76 +msgid "Select custom fields for tickets in all queues" +msgstr "Wählen Sie benutzerdefinierte Felder für alle Anfragen in allen Bereichen aus" + +#: html/Admin/Global/CustomFields/index.html:83 +msgid "Select custom fields for transactions on tickets in all queues" +msgstr "Wählen Sie benutzerdefinierte Felder für Transaktionen mit Anfragen in allen Bereichen aus " + +#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 msgid "Select group" -msgstr "Wähle eine Gruppe" +msgstr "Wählen Sie eine Gruppe aus" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" -msgstr "Wähle mehrere Werte" +msgstr "Wählen Sie mehrere Werte aus" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" -msgstr "Wähle einen Wert" +msgstr "Wählen Sie einen Wert aus" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" -msgstr "Wähle einen Stapel" +msgstr "Wählen Sie einen Bereich aus" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" -msgstr "Wähle ein Scrip" +msgstr "Wählen Sie ein Scrip aus" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "Wähle eine Vorlage" +msgstr "Wählen Sie eine Vorlage aus" -#: html/Admin/Elements/UserTabs:46 -msgid "Select user" -msgstr "Wähle einen Benutzer" +#: lib/RT/CustomField_Overlay.pm:61 +msgid "Select up to %1 values" +msgstr "Wählen Sie bis zu %1 Werte aus" -#: lib/RT/CustomField_Overlay.pm:35 -msgid "SelectMultiple" -msgstr "Mehrfachauswahlfeld" +#: html/Admin/Elements/UserTabs:75 +msgid "Select user" +msgstr "Wählen Sie einen Benutzer aus" -#: lib/RT/CustomField_Overlay.pm:34 -msgid "SelectSingle" -msgstr "Einzelauswahlfeld" +#: html/Admin/Elements/EditCustomFields:58 +msgid "Selected Custom Fields" +msgstr "Ausgewählte Benutzerdefinierte Felder" -#: NOT FOUND IN SOURCE -msgid "Self Service" -msgstr "Selbstbedienung" +#: html/Admin/CustomFields/Objects.html:59 +msgid "Selected objects" +msgstr "Ausgewählte Objekte" #: etc/initialdata:121 msgid "Send mail to all watchers" -msgstr "Schicke eine Mail an alle Beobachter" +msgstr "Schickt eine Nachricht an alle Beobachter" #: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" -msgstr "Schicke eine Mail an alle Beobachter als \"Kommentar\"" +msgstr "Schickt einen Kommentar an alle Beobachter" #: etc/initialdata:112 msgid "Send mail to requestors and Ccs" -msgstr "Schicke eine Mail an die Klienten und CCs" +msgstr "Schickt eine Nachricht an die Klienten und CCs" #: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" -msgstr "Schicke eine Mail an die Klienten und CCs als Kommentar" +msgstr "Schickt einen Kommentar an die Klienten und CCs" #: etc/initialdata:78 msgid "Sends a message to the requestors" -msgstr "Schicke eine Mail an die Klienten" +msgstr "Schickt eine Nachricht an die Klienten" #: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "Schicke eine Mail an die direkt angegebenen CCs und BCCs" +msgstr "Schickt eine Nachricht an die direkt angegebenen CCs und BCCs" #: etc/initialdata:94 etc/upgrade/3.1.17/content:7 msgid "Sends mail to the Ccs" -msgstr "" +msgstr "Schickt eine Nachricht an alle CCs" #: etc/initialdata:90 etc/upgrade/3.1.17/content:3 msgid "Sends mail to the Ccs as a comment" -msgstr "" +msgstr "Schickt einen Kommentar an alle CCs " #: etc/initialdata:102 msgid "Sends mail to the administrative Ccs" -msgstr "Schicke eine Mail an die administrativen CCs" +msgstr "Schickt eine Nachricht an die administrativen CCs" #: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" -msgstr "Schicke eine Mail an die administrativen CCs als Kommentar" +msgstr "Schickt einen Kommentar an die administrativen CCs" #: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" -msgstr "Schicke eine Mail an den Inhaber" +msgstr "Schickt eine Nachricht an den Besitzer" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." -msgstr "Sep" - -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "Mehrere URLs getrennt durch Leerzeichen eingeben" +msgstr "Sep." -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" -msgstr "" +msgstr "Zeige" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" -msgstr "" +msgstr "Zeige Freigaben" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" -msgstr "" +msgstr "Zeige Spalten" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" -msgstr "" +msgstr "Zeige Ergebnisse" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "Zeige erweiterte Suchoptionen an..." - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "Zeige freigegebene Anfragen" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "Zeige Grundlagen" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "Zeige abgelehnte Anfragen" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "Zeige Details" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" -msgstr "Zeige schwebende Anfragen" +msgstr "Zeige anhängige Anfragen" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "Zeige auf andere Freigaben wartende Anfragen" -#: NOT FOUND IN SOURCE -msgid "Show ticket private commentary" -msgstr "Zeige private Kommentare des Anfragen" - -#: NOT FOUND IN SOURCE -msgid "Show ticket summaries" -msgstr "Zeige Kurzfassungen der Anfragen" - -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" -msgstr "" +msgstr "ACLAnzeigen" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "KonfigurationsMenüAnzeigen" + +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" -msgstr "" +msgstr "AusgehendeNachrichtenAnzeigen" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" -msgstr "" +msgstr "GespeicherteSuchanfragenAnzeigen" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" -msgstr "" +msgstr "ScripsAnzeigen" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" -msgstr "" +msgstr "VorlagenAnzeigen" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" -msgstr "" +msgstr "AnfragenAnzeigen" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" -msgstr "" +msgstr "AnfrageKommentareAnzeigen" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "Als Klient einer Anfrage oder Anfrage- bzw. Stapel-CC eintragen" +msgstr "Als Klient einer Anfrage oder Anfrage- bzw. Bereichs-CC eintragen" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" -msgstr "Als Anfrage- oder Stapel-AdminCC eintragen" +msgstr "Als Anfrage- oder Bereichs-AdminCC eintragen" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "E-Mail-Signatur" -#: NOT FOUND IN SOURCE -msgid "Signed in as %1" -msgstr "Angemeldet als %1" - -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "Einzel" -#: html/Elements/Header:62 -msgid "Skip Menu" -msgstr "Überspringe Menü" - -#: html/Admin/Elements/AddCustomFieldValue:27 -msgid "Sort" +#: html/Search/Elements/EditFormat:75 +msgid "Size" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Sort Order" -msgstr "Sortierreihenfolge" - -#: NOT FOUND IN SOURCE -msgid "Sort key" -msgstr "Sortierschlüssel" - -#: NOT FOUND IN SOURCE -msgid "Sort results by" -msgstr "Sortiere Ergebnisse nach" - -#: NOT FOUND IN SOURCE -msgid "SortOrder" -msgstr "Sortierreihenfolge" +#: html/Elements/Header:85 +msgid "Skip Menu" +msgstr "Überspringe Menü" -#: html/Admin/Elements/EditScrip:65 -msgid "Stage" -msgstr "" +#: html/Search/Elements/EditFormat:78 +msgid "Small" +msgstr "Klein" -#: NOT FOUND IN SOURCE -msgid "Stalled" -msgstr "" +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 +msgid "Sort" +msgstr "Sortieren" -#: NOT FOUND IN SOURCE -msgid "Start page" -msgstr "" +#: html/Admin/Elements/EditScrip:87 +msgid "Stage" +msgstr "Phase" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "Begonnen" -#: NOT FOUND IN SOURCE -msgid "Started date '%1' could not be parsed" -msgstr "" - -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "Beginnt" -#: NOT FOUND IN SOURCE -msgid "Starts By" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Starts date '%1' could not be parsed" -msgstr "" - -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "Staat" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "Status" #: etc/initialdata:309 msgid "Status Change" -msgstr "Ändere Status" +msgstr "Statusänderung" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" msgstr "Status von %1 auf %2 geändert" -#: NOT FOUND IN SOURCE -msgid "StatusChange" -msgstr "" - -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" -msgstr "Stehlen" +msgstr "Übernehmen" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" -msgstr "" +msgstr "Anfragen übernehmen" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" -msgstr "" +msgstr "AnfrageÜbernehmen" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) -msgid "Stolen from %1 " -msgstr "Gestohlen von %1 " +msgid "Stolen from %1" +msgstr "Gestohlen von %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 +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "Betreff" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "Betreff wurde auf %1 geändert" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "Übermitteln" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "Suchen" - -#: NOT FOUND IN SOURCE -msgid "Submit Workflow" -msgstr "" - -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" -msgstr "Geglückt" - -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "Zusammenfassung" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "Zusammenfassung enthält" +msgstr "Gelungen" -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." -msgstr "So" +msgstr "So." -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" -msgstr "" +msgstr "SuperBenutzer" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "System" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" -msgstr "" +msgstr "System Konfiguration" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" msgstr "Systemfehler" -#: html/Admin/Tools/index.html:2 -msgid "System Tools" +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" msgstr "" -#: lib/RT/ACE_Overlay.pm:615 +#: html/Admin/Tools/index.html:47 +msgid "System Tools" +msgstr "System Werkzeuge" + +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "Systemfehler. Recht nicht delegiert." -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "Systemfehler. Recht nicht gewährt." -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "Systemgruppen" @@ -4459,659 +3866,568 @@ msgstr "Systemgruppen" msgid "SystemRolegroup for internal use" msgstr "SystemRolegroup für internen Gebrauch" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "Übernehmen" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" -msgstr "" +msgstr "Anfragen übernehmen" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" -msgstr "" +msgstr "AnfrageÜbernehmen" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "Übernommen" -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "Vorlage" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Vorlage #%1" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "Vorlage gelöscht" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "Vorlage nicht gefunden" -#: NOT FOUND IN SOURCE -msgid "Template not found\\n" -msgstr "" - -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "Vorlagen eingelesen" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "Vorlagen" #: NOT FOUND IN SOURCE -msgid "Templates for %1\\n" -msgstr "Vorlagen für %1\\n" +msgid "Text" +msgstr "Text" -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "Das ist bereits der aktuelle Wert" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "Dies ist kein gültiger Wert für dieses benutzerdefinierte Feld" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "Das ist der gleiche Wert" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" -msgstr "" +msgstr "Diese Rolle hat dieses Recht bereits" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" -msgstr "Dieser Hauptverantwortliche ist bereits ein %1 dieses Stapels" +msgstr "Diese Rolle ist bereits ein %1 dieses Bereichs" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" -msgstr "Dieser Hauptverantwortliche ist bereits ein %1 dieser Anfrage" +msgstr "Diese Rolle ist bereits ein %1 dieser Anfrage" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" -msgstr "Dieser Hauptverantwortliche ist nicht ein %1 dieses Stapels" - -#: NOT FOUND IN SOURCE -msgid "That principal is not a %1 for this ticket" -msgstr "Dieser Hauptverantwortliche ist nicht ein %1 dieser Anfrage" +msgstr "Diese Rolle ist nicht ein %1 dieses Bereichs" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" -msgstr "Dieser Stapel existiert nicht" +msgstr "Dieser Bereich existiert nicht" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "Diese Anfrage hat ungelöste Abhängigkeiten" -#: NOT FOUND IN SOURCE -msgid "That user already has that right" -msgstr "msgstr "Dieser Benutzer hat dieses Recht bereits" " - -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" -msgstr "Diesem Benutzer gehört diese Anfrage bereits" +msgstr "Diese Anfrage gehört bereits diesem Benutzer" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "Dieser Benutzer existiert nicht" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "Dieser Benutzer ist bereits privilegiert" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" -msgstr "Dieser Benutzer ist bereits ungeprivilegiert" +msgstr "Dieser Benutzer ist bereits unprivilegiert" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "Dieser Benutzer ist jetzt privilegiert" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" -msgstr "Dieser Benutzer ist jetzt unprivelegiert" +msgstr "Dieser Benutzer ist jetzt unprivilegiert" -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" -msgstr "Diesem Benutzer dürfen keine Anfragen aus diesen Stapel gehören" +msgstr "Diesem Benutzer dürfen keine Anfragen aus diesen Bereich gehören" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" -msgstr "Dies ist keine numerische Id" +msgstr "Dies ist keine numerische ID" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "Grundlagen" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "Der CC einer Anfrage" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "Der administrative CC einer Anfrage" -#: NOT FOUND IN SOURCE -msgid "The comment has been recorded" -msgstr "Der Kommentar wurde aufgezeichnet" - -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 "Das folgende Kommando wird alle aktiven Anfragen des Stapels 'general' finden und ihre Priorität auf 99 setzen, wenn sie innerhalb der letzten 4 Stunden nicht angefasst wurden:" - -#: NOT FOUND IN SOURCE -msgid "The following commands were not proccessed:\\n\\n" -msgstr "Die folgenden Kommandos wurden nicht verarbeitet:\\n\\n" +msgstr "" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "Der neue Wert wurde gesetzt." -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" -msgstr "Der Inhaber einer Anfrage" +msgstr "Der Besitzer einer Anfrage" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "Der Klient einer Anfrage" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "Diese Kommentare sind generell nicht für den Benutzer sichtbar" -#: html/Admin/Tools/Configuration.html:5 +#: lib/RT/CustomField_Overlay.pm:912 +msgid "This custom field does not apply to that object" +msgstr "Dieses benutzerdefinierte Feld passt nicht zum Objekt" + +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" -msgstr "" +msgstr "Dieses Feature ist nur für Systemadministratoren verfügbar" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "This ticket %1 %2 (%3)\\n" -msgstr "" +msgstr "Diese Nachricht wird an folgende Empfänger gesendet:" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "Dieses Werkzeug erlaubt es Benutzern beliebige Perl-Module von RT aus aufzurufen." +msgstr "" +"Dieses Werkzeug erlaubt es Benutzern beliebige Perl-Module von RT aus " +"aufzurufen." -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "Diese Transaktion scheint keinen Inhalt zu haben" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" -msgstr "Die %1 höchstpriorisiertesten Anfragen dieses Benutzers" - -#: NOT FOUND IN SOURCE -msgid "This user's 25 highest priority tickets" -msgstr "" +msgstr "Die %1 dringensten Anfragen dieses Benutzers" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." -msgstr "Do" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 %2" -msgstr "" +msgstr "Do." -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" -msgstr "Anfrage Nr. %1 Alles aktualisieren: %2" +msgstr "Anfrage #%1 Alles aktualisieren: %2" -#: html/Approvals/Elements/ShowDependency:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" -msgstr "Anfrage Nr. %1: %2" +msgstr "Anfrage #%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" -msgstr "" +msgstr "Anfrage %1" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" -msgstr "Anfrage %1 wurde in Anfrage '%2' angelegt" - -#: NOT FOUND IN SOURCE -msgid "Ticket %1 loaded\\n" -msgstr "Anfrage %1 geladen\\n" +msgstr "Anfrage %1 wurde im Bereich '%2' angelegt" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Anfrage %1: %2" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Admin/Elements/QueueTabs:74 +msgid "Ticket Custom Fields" +msgstr "Benutzerdefinierte Anfrage Felder" + +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" -msgstr "Verlauf von Anfrage Nr. %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Ticket Id" -msgstr "msgstr "Anfrage Nr." " +msgstr "Geschichte von Anfrage #%1 %2" #: etc/initialdata:324 msgid "Ticket Resolved" msgstr "Anfrage erledigt" -#: NOT FOUND IN SOURCE -msgid "Ticket attachment" -msgstr "Anhang der Anfrage" +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 +msgid "Ticket Transactions" +msgstr "Anfrage Transaktion" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "Inhalt der Anfrage" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "Art des Inhalts der Anfrage" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "Anfrage konnte aufgrund eines internen Fehlers nicht angelegt werden" -#: lib/RT/Transaction_Overlay.pm:497 -msgid "Ticket created" -msgstr "Anfrage angelegt" - -#: NOT FOUND IN SOURCE -msgid "Ticket creation failed" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:502 -msgid "Ticket deleted" -msgstr "Anfrage gelöscht" - -#: NOT FOUND IN SOURCE -msgid "Ticket id not found" -msgstr "Anfragenummer nicht gefunden" - -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ticket not found" -msgstr "Anfrage nicht gefunden" +msgstr "Anfrage Metadaten" #: etc/initialdata:310 msgid "Ticket status changed" msgstr "Status der Anfrage geändert" -#: NOT FOUND IN SOURCE -msgid "Ticket watchers" -msgstr "Beobachter der Anfrage" +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "SQL Anfrage Suchmodul" -#: html/Elements/Tabs:46 +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 msgid "Tickets" msgstr "Anfragen" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) -msgid "Tickets %1 %2" -msgstr "Anfragen %1 %2" - -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) -msgid "Tickets %1 by %2" -msgstr "Anfragen %2 von %2" - -#: NOT FOUND IN SOURCE -msgid "Tickets from %1" -msgstr "Anfragen von %1" - -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "Anfragen, die von dieser Freigabe abhängen:" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" -msgstr "" +msgstr "Geschätzte Zeit" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" -msgstr "Übrige Zeit" +msgstr "Verbleibende Zeit" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "Arbeitszeit" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" -msgstr "Übrige Zeit" +msgstr "Verbleibende Zeit" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" -msgstr "Benötigte Zeit" +msgstr "" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" -msgstr "Arbeitszeit" - -#: lib/RT/Ticket_Overlay.pm:1277 -msgid "TimeWorked" msgstr "Gearbeitete Zeit" -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:" -msgstr "Um ein 'diff' dieser Übergabe zu erstellen:" +#: lib/RT/Ticket_Overlay.pm:1143 +msgid "TimeWorked" +msgstr "Arbeitszeit" -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:\\n" -msgstr "Um ein 'diff' dieser Übergabe zu erstellen:\\n" +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<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:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "Eingegangen" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" -msgstr "" +msgstr "Werkzeuge" #: etc/initialdata:252 msgid "Transaction" msgstr "Transaktion" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" -msgstr "Transaktion %1 durchgeprügelt" +msgstr "Transaktion %1 eliminiert" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "Transaktion erstellt" -#: lib/RT/Transaction_Overlay.pm:92 -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "Transaction->Create konnte nicht ausgeführt werden da keine Ticketnummer angegeben wurde" +#: html/Admin/Elements/QueueTabs:78 +msgid "Transaction Custom Fields" +msgstr "Benutzerdefinierte Felder bei Transaktionen" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:125 +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "Transaction->Create fehlgeschlagen, da Objekttyp und ID nicht angegeben wurden" + +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "Transaktionen sind unveränderbar" -#: NOT FOUND IN SOURCE -msgid "Trying to delete a right: %1" -msgstr "" - -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." -msgstr "Di" +msgstr "Di." -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "Typ" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "Artikel kann nicht geladen werden" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "Nicht implementiert" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "Unix Login" -#: NOT FOUND IN SOURCE -msgid "UnixUsername" -msgstr "UnixBenutzername" - -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" -msgstr "Unbekannte Inhalts-Kodierung %1" +msgstr "Unbekannte Inhaltskodierung (Content-Encoding) %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "Unbekanntes Feld: $key" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "unbegrenzt" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" -msgstr "" +msgstr "Unbenannte Suche" #: etc/initialdata:32 msgid "Unprivileged" msgstr "Unprivilegiert" -#: lib/RT/Transaction_Overlay.pm:562 +#: html/Admin/Elements/EditCustomFields:60 +msgid "Unselected Custom Fields" +msgstr "Nichtausgewähltes benutzerdefiniertes Feld" + +#: html/Admin/CustomFields/Objects.html:61 +msgid "Unselected objects" +msgstr "Nichtausgewähltes Objekte" + +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" msgstr "Zurückgegeben" -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "Aktualisieren" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Update ID" -msgstr "Aktualisierungs-ID" +msgstr "Alles aktualisieren" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" -msgstr "" +msgstr "Anfrage Aktualisieren" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "Aktualisierungtyp" -#: NOT FOUND IN SOURCE -msgid "Update all these tickets at once" -msgstr "Aktualisiere alle diese Anfragen auf einmal" - -#: NOT FOUND IN SOURCE -msgid "Update email" -msgstr "Aktualisiere E-Mail" - -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Update name" -msgstr "Aktualisiere Name" +msgstr "Mehrere Anfragen aktualisieren" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." -msgstr "Aktualisierung nicht aufgezeichnet." +msgstr "Aktualisierung nicht gespeichert." -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "Aktualisiere ausgewählte Anfragen" -#: NOT FOUND IN SOURCE -msgid "Update signature" -msgstr "Aktualisiere Unterschrift" - -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "Aktualisiere Anfrage" -#: NOT FOUND IN SOURCE -msgid "Update ticket # %1" -msgstr "Aktualisiere Anfrage Nr. %1" - -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" -msgstr "Aktualisiere Anfrage Nr. %1" +msgstr "Aktualisiere Anfrage #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" -msgstr "Aktualisiere Anfrage Nr. %1 (%2)" +msgstr "Aktualisiere Anfrage #%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "Aktualisierungstyp war weder Korrespondenz noch Kommentar." -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "Aktualisiert" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" -msgstr "" +msgstr "Hochladen" -#: html/Tools/Offline.html:73 -msgid "Upload your changes" -msgstr "" +#: lib/RT/CustomField_Overlay.pm:84 +msgid "Upload multiple files" +msgstr "Hochladen mehrerer Dateien" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" -msgstr "Über die Auswahllisten kann bestimmt werden welche Transaktionen in den neuen RTFM Artikel extrahiert werden" +#: lib/RT/CustomField_Overlay.pm:79 +msgid "Upload multiple images" +msgstr "Hochladen mehrerer Bilder" -#: NOT FOUND IN SOURCE -msgid "User %1 %2: %3\\n" -msgstr "" +#: lib/RT/CustomField_Overlay.pm:85 +msgid "Upload one file" +msgstr "Hochladen einer Datei" -#: NOT FOUND IN SOURCE -msgid "User %1 Password: %2\\n" -msgstr "" +#: lib/RT/CustomField_Overlay.pm:80 +msgid "Upload one image" +msgstr "Hochladen eines Bildes" -#: lib/RT/Ticket_Overlay.pm:468 -#. ($args{'Owner'}) -msgid "User '%1' could not be found." -msgstr "" +#: lib/RT/CustomField_Overlay.pm:86 +msgid "Upload up to %1 files" +msgstr "Hochladen von bis zu %1 Dateien" -#: NOT FOUND IN SOURCE -msgid "User '%1' not found" -msgstr "" +#: lib/RT/CustomField_Overlay.pm:81 +msgid "Upload up to %1 images" +msgstr "Hochladen von bis zu %1 Bildern" -#: NOT FOUND IN SOURCE -msgid "User '%1' not found\\n" +#: html/Tools/Offline.html:95 +msgid "Upload your changes" +msgstr "Änderungen hochladen" + +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" +#: lib/RT/Ticket_Overlay.pm:496 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "Benutzer '%1' konnte nicht gefunden werden" + #: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Benutzerdefiniert" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User ID" -msgstr "Benutzer-ID" - -#: html/Elements/SelectUsers:25 -msgid "User Id" -msgstr "Benutzername" +msgstr "Benutzerdefinierte Konditionen und Aktionen" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "Benutzerrechte" -#: html/Admin/Users/Modify.html:252 +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" +"Benutzer hat einen unbekannten Aktualisierungstyp für das benutzerdefinierte " +"Feld %1 bei %2-Objekt #%3 verlangt" + +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "Benutzer konnte nicht angelegt werden: %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "Benutzer angelegt" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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 "Benutzerdefinierte Gruppe" -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User notified" -msgstr "" +msgstr "Benutzer geladen" -#: NOT FOUND IN SOURCE -msgid "User view" -msgstr "Benutzeransicht" +#: html/Admin/Groups/index.html:99 +msgid "User-defined groups" +msgstr "Benutzerdefinierte Gruppe" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "Benutzername" -#: 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 +#: 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:1086 msgid "Users" msgstr "Benutzer" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" -msgstr "Auf diese Kriterien zutreffenede Benutzer" +msgstr "Auf diese Kriterien zutreffende Benutzer" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" -msgstr "" +msgstr "Gültige Suche" -#: NOT FOUND IN SOURCE -msgid "ValueOfQueue" -msgstr "ValueOfQueue" - -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "Werte" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" -msgstr "" +msgstr "Beobachte" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" -msgstr "" +msgstr "BeobachteAlsAdminCc" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "Beobachter" -#: NOT FOUND IN SOURCE -msgid "WebEncoding" -msgstr "Webkodierung" - -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." -msgstr "Mi" +msgstr "Mi." #: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "Füge Korrespondenz zum Originalticket, wenn eine Anfrage von allen Freigebenden freigegeben wurde" +msgstr "" #: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "Füge Korrespondenz zum Originalticket wenn eine Anfrage von einem Freigebenden freigegeben wurde" +msgstr "" #: etc/initialdata:146 msgid "When a ticket is created" -msgstr "Wenn eine Afrage erstellt wird" +msgstr "Wenn eine Anfrage erstellt wird" #: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "Benachrichtige Inhaber und AdminCCs der auf Freigabe wartende Anfrage wenn ein Freigabeticket erstellt wurde" +msgstr "" #: etc/initialdata:151 msgid "When anything happens" @@ -5119,19 +4435,19 @@ msgstr "Wenn irgendetwas passiert" #: etc/initialdata:199 msgid "Whenever a ticket is resolved" -msgstr "Immer wenn eine Anfrage erledigt wird" +msgstr "Immer wenn eine Anfrage erledigt wird" #: etc/initialdata:185 msgid "Whenever a ticket's owner changes" -msgstr "Immer wenn der Eigentümer einer Anfrage wechselt" +msgstr "Immer wenn der Besitzer einer Anfrage wechselt" #: etc/initialdata:178 etc/upgrade/3.1.17/content:16 msgid "Whenever a ticket's priority changes" -msgstr "" +msgstr "Immer wenn sich die Priorität eines Anfragen ändert" #: etc/initialdata:193 msgid "Whenever a ticket's queue changes" -msgstr "Immer wenn eine Anfrage den Stapel wechselt" +msgstr "Immer wenn eine Anfrage den Bereich wechselt" #: etc/initialdata:170 msgid "Whenever a ticket's status changes" @@ -5145,333 +4461,289 @@ msgstr "Immer wenn eine benutzerdefinierte Bedingung auftritt" msgid "Whenever comments come in" msgstr "Immer wenn ein neuer Kommentar eingeht" +1c7f +itialdata:157 #: etc/initialdata:157 msgid "Whenever correspondence comes in" msgstr "Immer wenn neue Korrespondenz eingeht" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "Bezogen von" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "Beziehen sich auf" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "Arbeit" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "WorkPhone" -msgstr "Arbeitstelefon" +msgstr "Offline arbeiten" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "Arbeitszeit" -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "Ja" - -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" -msgstr "Sie besitzen diese Anfrage bereits" +msgstr "Sie sind bereits Besitzer dieser Anfrage" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" -msgstr "Sie sind kein authorisierter Benutzer" +msgstr "Sie sind kein autorisierter Benutzer" -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" -msgstr "Sie können nur Anfragen ohne Inhaber zuweisen" - -#: NOT FOUND IN SOURCE -msgid "You don't have permission to view that ticket.\\n" -msgstr "" +msgstr "Sie können nur Anfragen ohne Besitzer zuweisen" -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 #. ($num, $queue) msgid "You found %1 tickets in queue %2" -msgstr "Sie haben %1 Anfragen in Stapel %2 gefunden" +msgstr "Sie haben %1 Anfragen im Bereich %2 gefunden" -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "Sie wurden von RT abgemeldet." -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." -msgstr "Sie haben kein Recht, Anfragen in diesen Stapel anzulegen." +msgstr "Sie haben kein Recht, Anfragen in diesem Bereich anzulegen." -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." -msgstr "Sie dürfen in diesem Stapel keine Anfragen erstellen" +msgstr "Sie dürfen in diesem Bereich keine Anfragen erstellen" -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "Sie können sich gerne wieder anmelden" -#: NOT FOUND IN SOURCE -msgid "Your %1 requests" -msgstr "Meine %1 Anfragen" - -#: NOT FOUND IN SOURCE -msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" -msgstr "" - #: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "Ihre Anfrage wurde von %1 freigegeben. Andere Freigaben können noch ausstehen." +msgstr "" +"Ihre Anfrage wurde von %1 freigegeben. Andere Freigaben können noch " +"ausstehen." #: etc/initialdata:540 msgid "Your request has been approved." msgstr "Ihre Anfrage wurde freigegeben." -#: NOT FOUND IN SOURCE -msgid "Your request was rejected" -msgstr "" - #: etc/initialdata:445 msgid "Your request was rejected." msgstr "Ihre Anfrage wurde abgewiesen" -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "Ihr Benutzername oder Passwort ist falsch" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "PLZ" -#: NOT FOUND IN SOURCE -msgid "and is not" -msgstr "und ist nicht" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" +msgstr "Erlaube Erstellung von gespeicherten Suchabfragen" -#: NOT FOUND IN SOURCE -msgid "and not" -msgstr "und nicht" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" +msgstr "Erlaube das Laden von gespeicherten Suchabfragen" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "wie an %1 gewährt" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "gehört zu" + +#: html/SelfService/Closed.html:49 msgid "closed" -msgstr "geschlossenen" +msgstr "geschlossen" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "enthält" -#: NOT FOUND IN SOURCE -msgid "content" -msgstr "Inhalt" - -#: NOT FOUND IN SOURCE -msgid "content-type" -msgstr "content-type" - -#: NOT FOUND IN SOURCE -msgid "correspondence (probably) not sent" -msgstr "Korrepsondenz (möglicherweise) nicht verschickt" - -#: NOT FOUND IN SOURCE -msgid "correspondence sent" -msgstr "Korrespondenz verschickt" - -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "Tage" -#: NOT FOUND IN SOURCE -msgid "delete" -msgstr "löschen" - -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "gelöscht" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "gehört nicht zu" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" -msgstr "entspricht nicht" +msgstr "enthält nicht" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "enthält nicht" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" -msgstr "entspricht" +msgstr "gleich" -#: NOT FOUND IN SOURCE -msgid "filename" -msgstr "Dateiname" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "Fehler: Kann nicht hinunter bewegen" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "Fehler: Kann nicht nach links bewegen" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "Fehler: Kann nicht hinauf bewegen" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "Fehler: Nichts zu löschen" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "Fehler: Nichts zu bewegen" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "Fehler: Nichts zum Umschalten" + +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "größer als" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "Gruppe '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "Stunden" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "%1" +msgstr "ID" -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "ist" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "ist nicht" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "kleiner als" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" -msgstr "entspricht" +msgstr "enthält" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "Min" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "Minuten" -#: NOT FOUND IN SOURCE -msgid "modifications\\n\\n" -msgstr "Änderungen\\n\\n" - -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "Monate" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "neu" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" -msgstr "" +msgstr "kein Name" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "kein Wert" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "keine" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" -msgstr "entspricht nicht" +msgstr "ungleich" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "offen" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "persönliche Gruppe '%1' für Benutzer '%2'" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" -msgstr "Stapel %1 %2" +msgstr "Bereich %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "abgewiesen" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "erledigt" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "Sek" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "Zeige Konfigurationsmenü" + +#: html/Search/Results.html:82 msgid "spreadsheet" -msgstr "" +msgstr "Tabellenkalkulation" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "zurückgestellt" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "System %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "Systemgruppe '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "die aufrufende Komponente gab nicht an warum" -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" -msgstr "Ticket #%1 %2" +msgstr "Anfrage #%1 %2" -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "und" - -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "unbeschriebene Gruppe %1" -#: NOT FOUND IN SOURCE -msgid "undescripbed group %1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "Benutzer %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "Wochen" -#: NOT FOUND IN SOURCE -msgid "with template %1" -msgstr "" - -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "Jahre" diff --git a/rt/lib/RT/I18N/en.po b/rt/lib/RT/I18N/en.po index 95df3f7c3..28a840680 100644 --- a/rt/lib/RT/I18N/en.po +++ b/rt/lib/RT/I18N/en.po @@ -1,88 +1,88 @@ -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "Apr" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "Aug" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "Dec" -#: lib/RT/Date.pm:412 +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "Feb" -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "Fri" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "Home" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "Jan" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "Jul" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "Jun" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "Mar" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "May" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "Mon" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "Nov" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "Oct" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "Open" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "Home" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "Sat" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "Sep" -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "Sun" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "Thu" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "Tue" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "Wed" diff --git a/rt/lib/RT/I18N/es.po b/rt/lib/RT/I18N/es.po index 2a95e94e0..87759ee1e 100644 --- a/rt/lib/RT/I18N/es.po +++ b/rt/lib/RT/I18N/es.po @@ -18,67 +18,64 @@ msgstr "#" msgid "#%1" msgstr "#%1" -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "#%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" msgstr "" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +#: NOT FOUND IN SOURCE msgid "%1 %2 %3" msgstr "%1 %2 %3" -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" msgstr "Añadido %1 %2" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "Hace %1 %2" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%1 %2 ha cambiado a %3" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" msgstr "%1 %2 borrado" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" msgstr "%1 %2 con la plantilla %3" @@ -87,16 +84,16 @@ msgstr "%1 %2 con la plantilla %3" msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 este caso\\n" -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" msgstr "" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" msgstr "" @@ -104,29 +101,29 @@ msgstr "" msgid "%1 - %2 shown" msgstr "%1 - %2 mostrados" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" msgstr "%1 - Un parametro para pasar a %2" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - El estado de la salida actualiza STDOUT" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Especifica el modulo de accion que quieres usar" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Especifica el modulo de condicion que quieres usar" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Especifica el modulo de busqueda que quieres usar" @@ -137,20 +134,35 @@ msgstr "%1 - Especifica el modulo de busqueda que quieres usar" $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 -#. ('»|«', $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 +#. ('»|«', + $RT::VERSION, + '2005', + '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1 ScripAction cargado" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "$1 añadido como un valor de %2" @@ -167,32 +179,31 @@ msgstr "%1 alias requieren un TicketId en el que trabajar " msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1 alias requieren un TicketId en el que trabajar (de %2) %3" -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($args{'Base'}) #. ($args{'Target'}) msgid "%1 appears to be a local object, but can't be found in the database" msgstr "%1 parece ser un objeto local, pero no se encuentra en la base de datos" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 por %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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") msgid "%1 changed from %2 to %3" msgstr "%1 ha cambiado de %2 a %3" -#: html/Search/Build.html:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" msgstr "" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "%1 no se ha podido fijar a %2" @@ -200,12 +211,22 @@ msgstr "%1 no se ha podido fijar a %2" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 no pudo iniciar una transacción (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 no pudo fijar el estado a resuelto. La base de datos de RT podría ser inconsistente." -#: html/Elements/MyTickets:24 +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) +msgid "%1 created" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) +msgid "%1 deleted" +msgstr "" + +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" msgstr "" @@ -214,17 +235,16 @@ msgstr "" msgid "%1 highest priority tickets I own..." msgstr "Los %1 tickets de mayor prioridad que poseo... " -#: html/Elements/MyTickets:26 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I requested..." msgstr "Los %1 tickets de mayor prioridad que he pedido" -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "$1 es una herramienta para actuar sobre los tickets con una herramienta de planificacion externa, como crom" -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 ha dejado de ser un %2 para esta cola." @@ -233,8 +253,7 @@ msgstr "%1 ha dejado de ser un %2 para esta cola." msgid "%1 is no longer a %2 for this ticket." msgstr "%1 ha dejado de ser un %2 para este ticket." -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a value for custom field %2" msgstr "%1 ha dejado de ser un valor para campo personalizable %2" @@ -242,11 +261,7 @@ msgstr "%1 ha dejado de ser un valor para campo personalizable %2" msgid "%1 isn't a valid Queue id." msgstr "%1 no es un identificador de Cola válido." -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -255,15 +270,7 @@ msgstr "" msgid "%1 min" msgstr "%1 min" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" msgstr "" @@ -272,7 +279,11 @@ msgstr "" msgid "%1 not shown" msgstr "%1 no mostrado" -#: html/User/Elements/DelegateRights:75 +#: lib/RT/CustomField_Overlay.pm:827 +msgid "%1 objects" +msgstr "" + +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 privilegios" @@ -293,7 +304,7 @@ msgstr "%1 tipo desconocido para %2" msgid "%1 was created without a CurrentUser\\n" msgstr "%1 se creó sin CurrentUser\\n" -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 resolverá todos los miembros de un grupo de tickets resueltos." @@ -302,28 +313,36 @@ msgstr "%1 resolverá todos los miembros de un grupo de tickets resueltos." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 pondrá como pendiente una BASE [local] si es dependiente [o miembro] de una solicitud ligada." -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: lib/RT/CustomField_Overlay.pm:828 +msgid "%1's %2 objects" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:829 +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" msgstr "" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1: ningún archivo adjunto especificado" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' es un valor inválido para el estado" @@ -340,7 +359,7 @@ msgstr "(Marque la caja para borrar al miembro del grupo)" msgid "(Check box to delete scrip)" msgstr "(Marque la caja para borrar el scrip)" -#: 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 +#: 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 "(Marque la caja para borrar)" @@ -348,49 +367,49 @@ msgstr "(Marque la caja para borrar)" msgid "(Check boxes to delete)" msgstr "(Marque las cajas para borrar)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(Introduzca los identificadores de ticket o URLs, separados por espacios)" - -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "" -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: 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 "(Si se deja vacio, pasara por defecto a %1" +msgid "(If left blank, will default to %1)" +msgstr "(Si se deja vacio, pasara por defecto a %1)" #: NOT FOUND IN SOURCE msgid "(No Value)" msgstr "(Sin Valor)" -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "(No hay campos custom)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(Sin miembros)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "(Sin scrips)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "(Sin plantillas)" -#: html/Ticket/Update.html:66 +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 +msgid "(None)" +msgstr "" + +#: html/Ticket/Update.html:88 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 "(Envia una copia oculta de esta actualizacion a una lista delimitada por comas de direcciones de email. <b>NO</b> cambia quien recibirá futuras actualizaciones)" @@ -398,11 +417,11 @@ msgstr "(Envia una copia oculta de esta actualizacion a una lista delimitada por 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 "(Envía una copia oculta de esta actualización a una lista de direcciones de correo delimitada por comas. <b>No</b> cambia a quien recibirá futuras actualizaciones.)" -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 "(Envia una copia oculta de esta actualización a una lista delimitada por comas de direcciones de email administrativas. Estas personas <b>recibirán</b> las futuras actualizaciones.)" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 "(Envia una copia oculta de esta actualización a una lista delimitada por comas de direcciones de email.<b>NO</b> cambia quien recibirá futuras actualizaciones." @@ -410,47 +429,43 @@ msgstr "(Envia una copia oculta de esta actualización a una lista delimitada po 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 "(Manda una copia de esta actualización a una lista de direcciones de correo delimitada por comas. <b>No</b> cambia a quien recibirá futuras actualizaciones.)" -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 "(Envia una copia de esta actualización a una lista de direcciones de correo delimitada por comas. Estas personas <b>recibirán</b> actualizaciones futuras." -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" msgstr "" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(vacío)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "(no hay nombres listados)" -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" - #: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(sin asunto)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(sin valor)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Admin/Elements/EditCustomFieldValues:47 +msgid "(no values)" +msgstr "" + +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(solo un ticket)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(pendiente de aprobacion)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" msgstr "" @@ -458,18 +473,14 @@ msgstr "" msgid "(pending other tickets)" msgstr "(pendiente de otros tickets)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(requerido)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(sin titulo)" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "Los 25 tickets de mayor prioridad que poseo..." @@ -478,23 +489,23 @@ msgstr "Los 25 tickets de mayor prioridad que poseo..." msgid "25 highest priority tickets I requested..." msgstr "Los 25 tickets de mayor prioridad que he solicitado..." -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "<% $_ %>" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"Nuevo ticket en\"> %1" @@ -503,6 +514,10 @@ msgstr "<input type=\"submit\" value=\"Nuevo ticket en\"> %1" msgid "A blank template" msgstr "Una plantilla en blanco" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "" + #: NOT FOUND IN SOURCE msgid "ACE Deleted" msgstr "ACE Borrado" @@ -519,68 +534,80 @@ msgstr "ACE no se pudo borrar" msgid "ACE could not be found" msgstr "ACE no se encontró" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "ACE no encontrado" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "ACEs solo pueden ser creadas o borradas." +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Abortando para prevenir modificaciones no intencionadas al ticket\\n" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "Sobre mi" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "Control de acceso" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "Acción" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Acción %1 no encontrada" -#: bin/rt-crontool:119 +#: NOT FOUND IN SOURCE msgid "Action committed." msgstr "Action committed." -#: bin/rt-crontool:115 +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "" + +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "Acción preparada..." -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "Añadir AdminCc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "Añadir Cc" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "" + +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" msgstr "" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "Añadir más archivos" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "Añadir solicitante" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" msgstr "" @@ -596,49 +623,53 @@ msgstr "Añadir un nuevo scrip global" msgid "Add a scrip to this queue" msgstr "Añadir un scrip a esta cola" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" msgstr "Añadir un scrip que se aplicará a todas las colas" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" msgstr "" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "Añadir comentarios o respuestas a los tickets seleccionados" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "Añadir miembro" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "Añadir nuevos observadores" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "" + #: NOT FOUND IN SOURCE msgid "AddNextState" msgstr "AddNextState" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Principal ha sido añadido como %1 para esta cola" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Principal ha sido añadido como %1 para este ticket" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "Dirección 1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "Dirección 2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "Admin Cc" @@ -650,7 +681,7 @@ msgstr "Admin Comment" msgid "Admin Correspondence" msgstr "Admin Correspondence" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" msgstr "Administración de colas" @@ -658,7 +689,7 @@ msgstr "Administración de colas" msgid "Admin users" msgstr "Administración de usuarios" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "Adminsitración de la configuración global" @@ -674,7 +705,7 @@ msgstr "Administración de una cola" msgid "AdminAllPersonalGroups" msgstr "AdminAllPersonalGroups" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "AdminCc" @@ -686,35 +717,39 @@ msgstr "AdminComment" msgid "AdminCorrespondence" msgstr "AdminCorrespondence" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 +msgid "AdminCustomField" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "AdminCustomFields" msgstr "AdminCustomFields" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "AdminGroup" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "AdminGroupMembership" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "AdminOwnPersonalGroups" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "AdminQueue" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "AdminUsers" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "Cc Administrativa" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" msgstr "" @@ -722,11 +757,7 @@ msgstr "" msgid "Advanced Search" msgstr "Búsqueda avanzada" -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "" - -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "Después" @@ -734,19 +765,19 @@ msgstr "Después" msgid "Age" msgstr "Edad" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "" + #: etc/initialdata:363 msgid "All Approvals Passed" msgstr "" #: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Todos los campos custom" -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "Todas las colas" @@ -754,31 +785,39 @@ msgstr "Todas las colas" msgid "Always sends a message to the requestors independent of message sender" msgstr "Siempre envia un mensaje a los solicitantes independientemente del remitente del mensaje" -#: html/Search/Edit.html:42 +#: 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:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" msgstr "" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "Aprobacion" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "Aprobacion #%1: %2" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Aprobación #%1: No se han guardado las notas debido a un error del sistema" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Aprobacion #%1: Notas guardadas" @@ -799,7 +838,7 @@ msgstr "" msgid "Approval diagram" msgstr "Diagrama de la aprobación" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "Aprobar" @@ -807,7 +846,7 @@ msgstr "Aprobar" msgid "Approver's notes: %1" msgstr "Notas del aprobador: %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "Abr." @@ -815,64 +854,52 @@ msgstr "Abr." msgid "April" msgstr "Abril" -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 +msgid "Ascending" +msgstr "Ascendente" -#: NOT FOUND IN SOURCE -msgid "Article not found" +#: lib/RT/Queue_Overlay.pm:97 +msgid "Assign and remove custom fields" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Articles" +#: lib/RT/Queue_Overlay.pm:97 +msgid "AssignCustomFields" msgstr "" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 -msgid "Ascending" -msgstr "Ascendente" - -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "Adjunto" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "Adjuntar archivo" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "Archivo adjunto" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 #. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Archivo adjunto '%1' no pudo ser cargado" -#: lib/RT/Transaction_Overlay.pm:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "Archivo adjunto creado" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "Nombre del archivo adjunto" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "Archivos adjuntos" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" msgstr "" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "Ago." @@ -896,10 +923,6 @@ msgstr "Autorespuesta a los solicitantes" msgid "AutoreplyToRequestors" msgstr "AutoreplyToRequestors" -#: html/Search/Elements/EditFormat:4 -msgid "Available Columns" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Firma PGP incorrecta: %1\\n" @@ -916,19 +939,19 @@ msgstr "Datos incorrectos en %1" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Número de transacción incorrecta para el archivo adjunto. %1 debe ser %2\\n" -#: 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 +#: 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 "Basicos" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "Asegúrese de salvar sus cambios" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "Antes" @@ -936,116 +959,117 @@ msgstr "Antes" msgid "Begin Approval" msgstr "Begin Approval" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" +msgstr "" + #: etc/initialdata:217 msgid "Blank" msgstr "Vacio" +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "URL para guardar esta búsqueda en sus marcadores" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" msgstr "" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "Encabezados breves" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "Actualización de varios tickets a la vez" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "No se pueden modificar los usuarios del sistema" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" msgstr "Can this principal see this queue" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "No se puede agregar un campo personalizable si no tiene un nombre" -#: html/Search/Build.html:694 +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" +msgstr "" + +#: html/Search/Build.html:761 msgid "Can't find a saved search to work with" msgstr "" -#: lib/RT/Link_Overlay.pm:126 +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "No se puede ligar un ticket a sí mismo" -#: lib/RT/Ticket_Overlay.pm:2716 +#: NOT FOUND IN SOURCE msgid "Can't merge into a merged ticket. You should never get this error" msgstr "No se puede fusionar dentro de un caso ya fusionado. Nunca deberia recibir este error" -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" msgstr "" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "No se puede especificar origen y destino al mismo tiempo" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "No se puede crear el usuario: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "Cc" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "Cambiar contraseña" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/Elements/Submit:100 +msgid "Check All" +msgstr "" + +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "Check box to delete" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "Seleccione la caja para quitar el permiso" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "Hijo" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "Ciudad" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" +#: html/Elements/Submit:102 +msgid "Clear All" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "Cerrado" -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Solicitudes cerradas" -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "" @@ -1053,11 +1077,11 @@ msgstr "" msgid "Command not understood!\\n" msgstr "No se entendió el comando!\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "Comentario" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "Dirección de comentario" @@ -1065,11 +1089,11 @@ msgstr "Dirección de comentario" msgid "Comment not recorded" msgstr "Comentario no grabado" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "Comentario sobre los tickets" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "CommentOnTicket" @@ -1077,11 +1101,11 @@ msgstr "CommentOnTicket" msgid "Comments" msgstr "Comentarios" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "Comentarios (no se envían a los solicitantes)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "Comentarios (no se envían a los solicitantes)" @@ -1089,15 +1113,15 @@ msgstr "Comentarios (no se envían a los solicitantes)" msgid "Comments about %1" msgstr "Comentarios acerca de %1" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "Comentarios acerca de este usuario" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "Comentarios añadidos" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "Acción realizada" @@ -1105,23 +1129,23 @@ msgstr "Acción realizada" msgid "Compile Restrictions" msgstr "Compilar restricciones" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "Condición" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "La condicion coincide..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "Condición no encontrada" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "Configuración" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "Confirmar" @@ -1133,11 +1157,11 @@ msgstr "Información de contacto" msgid "Contacted date '%1' could not be parsed" msgstr "Fecha de contacto '%1' no pudo ser leida" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "Contenido" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "" @@ -1145,7 +1169,7 @@ msgstr "" msgid "Coould not create group" msgstr "No se pudo crear grupo" -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" msgstr "" @@ -1157,7 +1181,7 @@ msgstr "Correspondencia" msgid "Correspondence Address" msgstr "Dirección de corresponencia" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "Correspondencia agregada" @@ -1165,7 +1189,7 @@ msgstr "Correspondencia agregada" msgid "Correspondence not recorded" msgstr "Correspondencia no guardada" -#: lib/RT/Ticket_Overlay.pm:3471 +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. " msgstr "No se pudo añadir un nuevo valor de campo personalizable para el ticket. " @@ -1173,29 +1197,43 @@ msgstr "No se pudo añadir un nuevo valor de campo personalizable para el ticket msgid "Could not add new custom field value for ticket. %1 " msgstr "No se pudo añadir un nuevo valor de campo personalizable para el ticket. %1 " -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "" + +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " msgstr "No se pudo cambiar el propietario. " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "No se puede crear un CampoPersonalizable" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "No se pudo crear el grupo" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" msgstr "No se pudo crear la plantilla: %1" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "No se pudo crear el ticket. Cola no seleccionada" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" msgstr "No se pudo crear el usuario" @@ -1211,11 +1249,11 @@ msgstr "No se pudo encontrar un ticket con identificador $1" msgid "Could not find group %1." msgstr "No se pudo encontrar el grupo %1." -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "No se pudo encontrar o crear el usuario" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "No se pudo encontrar ese principal" @@ -1223,21 +1261,34 @@ msgstr "No se pudo encontrar ese principal" msgid "Could not find user %1." msgstr "No se pudo encontrar el usuario %1." -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/CustomFields/Objects.html:69 +msgid "Could not load CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "No se puede cargar el grupo" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "No se pudo hacer ese principal un %1 para esta cola" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "No se pudo hacer ese principal un %1 para este ticket" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "No se pudo quitar ese principal como un %1 para esta cola" @@ -1246,15 +1297,15 @@ msgstr "No se pudo quitar ese principal como un %1 para esta cola" msgid "Could not remove that principal as a %1 for this ticket" msgstr "No se pudo quitar ese principal como un %1 para este ticket" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" msgstr "" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" msgstr "No se pudo agregar el miembro al grupo" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "No se pudo crear la transacción: %1" @@ -1267,15 +1318,15 @@ msgstr "No se pudo averiguar que hacer a partir de la firma gpg de la respuesta" msgid "Couldn't find group\\n" msgstr "No se pudo encontrar el grupo\\n" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" msgstr "No se pudo encontrar la fila" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" msgstr "No pudo enconcontrar ese principal" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" msgstr "No se pudo encontrar ese valor" @@ -1287,16 +1338,18 @@ msgstr "No se pudo encontrar ese observador" msgid "Couldn't find user\\n" msgstr "No se pudo encontrar el usuario\\n" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "No se pudo cargar %1 desde la base de datos de usuarios.\\n" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" msgstr "" @@ -1312,21 +1365,26 @@ msgstr "No se pudo cargar el archivo de configuración de RT '%1' %2" msgid "Couldn't load Scrips." msgstr "No se pudieron cargar los Scrips." -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" msgstr "No se pudo cargar el grupo %1" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "No se puedo cargar el enlace" -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: 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 "No se pudo cargar la cola" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" msgstr "No se pudo cargar la cola %1" @@ -1343,16 +1401,26 @@ msgstr "No se pudo cargar la plantilla" msgid "Couldn't load that user (%1)" msgstr "No se pudo cargar ese usuario (%1)" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "No se pudo cargar el ticket '%1'" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "País" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "Crear" @@ -1360,20 +1428,16 @@ msgstr "Crear" msgid "Create Tickets" msgstr "Crear Tickets" -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" - -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "Crear CampoPersonalizable" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Crear un campo personalizables para la cola %1" -#: html/Admin/Global/CustomField.html:47 +#: NOT FOUND IN SOURCE msgid "Create a CustomField which applies to all queues" msgstr "Crear un campo personalizable que se aplique a todas las colas" @@ -1381,19 +1445,15 @@ msgstr "Crear un campo personalizable que se aplique a todas las colas" msgid "Create a new Custom Field" msgstr "Crear un nuevo campo personalizable" -#: NOT FOUND IN SOURCE -msgid "Create a new article" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create a new global scrip" msgstr "Crear un nuevo scrip global" -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "Creat un nuevo grupo" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "Crear un nuevo grupo personal" @@ -1409,15 +1469,15 @@ msgstr "Crear un nuevo scrip" msgid "Create a new template" msgstr "Crear una nueva plantilla" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "Crear un nuevo ticket" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "Crear un nuevo usuario" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "Crear una cola" @@ -1429,27 +1489,19 @@ msgstr "Crear una cola llamada " msgid "Create a request" msgstr "Crear una solicitud" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Crear un scrip para la cola %1" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "Crear una plantilla" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Creación fallida: %1 / %2 / %3 " @@ -1462,19 +1514,19 @@ msgstr "Creación fallida: %1 / %2 / %3 " msgid "Create new tickets based on this scrip's template" msgstr "Crear nuevos tickets basados en esta plantilla de scrip" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "Crear ticket" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" msgstr "Crear tickets en esta cola" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "Crear, borrar y modifical campos personalizables" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" msgstr "Crear, borrar y modificar colas" @@ -1482,56 +1534,52 @@ msgstr "Crear, borrar y modificar colas" msgid "Create, delete and modify the members of any user's personal groups" msgstr "Crear, borrar y modificar los miembros de cualquier grupo personal de usuario" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "Crear, borrar y modificar los miembros de los grupos personales" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "Crear, borrar y modificar usuarios" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "CreateTicket" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "Creado" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "CampoPersonalizable %1 creado" -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Plantilla %1 creada" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" msgstr "" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "Relaciones actuales" -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "Scrips actuales" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "Miembros actuales" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "Permisos actuales" @@ -1539,60 +1587,63 @@ msgstr "Permisos actuales" msgid "Current search criteria" msgstr "Criterio de busqueda actual" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "Observadores actuales" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) +#: NOT FOUND IN SOURCE msgid "Custom Field #%1" msgstr "Campo personalizable #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "Campos personalizables" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) +msgid "Custom Fields for %1" +msgstr "" + +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "Codigo de limpieza de accion personalizable" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "Codigo de preparacion de accion personalizable" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "Condicion personalizable" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: NOT FOUND IN SOURCE msgid "Custom field %1 %2 %3" msgstr "Campo personalizado %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Campo personalizado %1 tiene un valor." -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Campo personalizado %1 no tiene un valor." -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Campo personalizado %1 no encontrado" -#: html/Admin/Elements/EditCustomFields:195 +#: NOT FOUND IN SOURCE msgid "Custom field deleted" msgstr "Campo personalizable borrado" -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" msgstr "Campo personalizado no encontrado" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "El valor del campo %1 no pudo ser encontrado para el campo %2" @@ -1601,19 +1652,19 @@ msgstr "El valor del campo %1 no pudo ser encontrado para el campo %2" msgid "Custom field value changed from %1 to %2" msgstr "Valor del campo cambiado de %1 a %2" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "El valor del campo no pudo ser borrado" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "El valor del campo no pudo se encontrado" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "Valor del campo borrado" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "CustomField" @@ -1621,11 +1672,11 @@ msgstr "CustomField" msgid "Data error" msgstr "Error de datos" -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "Fechas" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "Dic." @@ -1641,11 +1692,11 @@ msgstr "Plantilla de autorespuesta por defecto" msgid "Default Autoresponse template" msgstr "Plantilla de autorespuesta por defect" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" msgstr "" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" msgstr "" @@ -1665,60 +1716,64 @@ msgstr "Plantilla de correspondencia por defecto" msgid "Default transaction template" msgstr "Plantilla de trasacciones por defecto" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: NOT FOUND IN SOURCE msgid "Default: %1/%2 changed from %3 to %4" msgstr "Por defecto: %1/%2 ha cambiado de %3 a %4" -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "Delegar derechos" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "Delegar derechos especificos que te han sido concedidos" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "DelegateRights" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "Delegar" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "Borrar" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" msgstr "Borrar tickets" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "DeleteTicket" -#: lib/RT/Transaction_Overlay.pm:162 +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Deleting this object could break referential integrity" msgstr "Al borrar este objeto, se puede romper la integridad referencial" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "Al borrar este objeto, se romperá la integridad referencial" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "Al borrar este objeto, se violará la integridad referencial" @@ -1730,11 +1785,11 @@ msgstr "Al borrar este objeto, se violará la integridad referencial." msgid "Deleting this object would violate referential integrity. That's bad." msgstr "Al borrar este objeto, se violará la integridad referencial. Eso es malo." -#: html/Approvals/Elements/Approve:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "Denegar" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "Dependen de este ticket" @@ -1742,27 +1797,27 @@ msgstr "Dependen de este ticket" msgid "Dependencies: \\n" msgstr "Dependencias: \\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "Depende de" @@ -1770,15 +1825,15 @@ msgstr "Depende de" msgid "DependsOn" msgstr "DependsOn" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "Descendiente" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "Describa el problema debajo" -#: 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 +#: 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:56 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 "Descripción" @@ -1786,31 +1841,31 @@ msgstr "Descripción" msgid "Details" msgstr "Detalles" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "Despliegue" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "Mostrar Lista de Control de Acceso" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" msgstr "Mostrar plantillas de scrip para esta cola" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" msgstr "Mostrar scrips para esta cola" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "Modo de despliegue" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" msgstr "" @@ -1818,15 +1873,19 @@ msgstr "" msgid "Display ticket #%1" msgstr "Despliega ticket #%1" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" msgstr "" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "Hacer cualquier cosa y todo" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "No recargar esta página" @@ -1834,15 +1893,15 @@ msgstr "No recargar esta página" msgid "Don't show search results" msgstr "No mostrar los resultados de la busqueda" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "Descargar" -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 +msgid "Download as a tab-delimited file" msgstr "" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "Retraso" @@ -1858,24 +1917,32 @@ msgstr "ERROR: No se pudo cargar el ticket '%1': %2.\\n" msgid "Edit" msgstr "Editar" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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 "Editar campos personalizados para %1" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "" + +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" msgstr "" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "Editar relaciones" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" msgstr "" -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Editar plantillas para la cola %1" @@ -1884,7 +1951,7 @@ msgstr "Editar plantillas para la cola %1" msgid "Edit keywords" msgstr "Editar palabras clave" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" msgstr "" @@ -1892,7 +1959,7 @@ msgstr "" msgid "Edit scrips" msgstr "Editar acciones" -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "Editar plantillas del sistema" @@ -1900,15 +1967,11 @@ msgstr "Editar plantillas del sistema" msgid "Edit templates for %1" msgstr "Editar plantillas para %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "Editando configuración para la cola %1" @@ -1917,17 +1980,17 @@ msgstr "Editando configuración para la cola %1" msgid "Editing Configuration for user %1" msgstr "Editando configuración para el usuario %1" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Editando campo %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Editando los miembros del grupo %1" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Editando los miembros para el grupo personal %1" @@ -1936,15 +1999,15 @@ msgstr "Editando los miembros para el grupo personal %1" msgid "Editing template %1" msgstr "Editando plantilla %1" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "La base o el destinatario deben ser especificados" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "Correo" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "La dirección de correo ya está en uso" @@ -1956,69 +2019,62 @@ msgstr "Correo Electrónico" msgid "EmailEncoding" msgstr "Codificación para el correo" -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Habilitado (Desmarcar esta caja deshabilita este campo personalizable)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 msgid "Enabled (Unchecking this box disables this group)" msgstr "Habilitado (Desmarcar esta caja deshabilita este campo personalizable)" -#: html/Admin/Queues/Modify.html:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Habilitado (Desmarcar esta caja, deshabilita esta cola)" #: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Campos Personalizables Habilitados" -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" msgstr "Colas habilitadas" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "Estado %1 habilitado" -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) +msgid "Enabled status: %1" msgstr "" -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "Introducir multiples valores" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." msgstr "" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "Introducir un valor" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." msgstr "" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Ingrese los números de ticket o las URL que llevan hacia el ticket. Separe multiples entradas con espacios" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: lib/RT/CustomField_Overlay.pm:66 +msgid "Enter up to %1 values" +msgstr "" + +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "Error" @@ -2026,7 +2082,7 @@ msgstr "Error" msgid "Error adding watcher" msgstr "Error añadiendo observador" -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "Error en los parámetros para Queue->AddWatcher" @@ -2034,11 +2090,11 @@ msgstr "Error en los parámetros para Queue->AddWatcher" msgid "Error in parameters to Queue->DelWatcher" msgstr "Error en los parámetros para Queue->DelWatcher" -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Error en los parámetros para Queue->AddWatcher" @@ -2046,15 +2102,15 @@ msgstr "Error en los parámetros para Queue->AddWatcher" msgid "Error in parameters to Ticket->DelWatcher" msgstr "Error en los parámetros para Queue->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" msgstr "" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" msgstr "" -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" msgstr "" @@ -2062,7 +2118,7 @@ msgstr "" msgid "Everyone" msgstr "Todos" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "Ejemplo" @@ -2074,32 +2130,33 @@ msgstr "ExternalAuthId" msgid "ExternalContactInfoId" msgstr "ExternalContactInfoId" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "Información extra" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" -msgstr "" - -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Problema para encontrar el pseudogrupo de usuarios 'Privileged'" -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Problema para encontrar el pseudogrupo de usuarios 'Unprivileged'" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Error al cargar el modulo %1. (%2)" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "Feb." @@ -2107,35 +2164,63 @@ msgstr "Feb." msgid "February" msgstr "Febrero" -#: html/Elements/SelectAttachmentField:28 +#: 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 "" + +#: 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 "Fin" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "Prioridad Final" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "FinalPriority" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: NOT FOUND IN SOURCE msgid "Find group whose" msgstr "Encontrar grupo que" +#: 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 "Encontrar tickets nuevos/abiertos" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "Encontrar gente que" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "Encontrar tickets" @@ -2143,7 +2228,7 @@ msgstr "Encontrar tickets" msgid "Finish Approval" msgstr "Aprobacion final" -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "Primero" @@ -2151,24 +2236,28 @@ msgstr "Primero" msgid "First page" msgstr "Primera página" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "Forzar cambio" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "Encontrado %quant(%1,ticket)" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "Objeto encontrado" @@ -2176,23 +2265,23 @@ msgstr "Objeto encontrado" msgid "FreeformContactInfo" msgstr "FreeformContactInfo" -#: lib/RT/CustomField_Overlay.pm:37 +#: NOT FOUND IN SOURCE msgid "FreeformMultiple" msgstr "FreeformMultiple" -#: lib/RT/CustomField_Overlay.pm:36 +#: NOT FOUND IN SOURCE msgid "FreeformSingle" msgstr "FreeformSingle" -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "Vie." -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "Encabezados completos" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" msgstr "" @@ -2200,15 +2289,19 @@ msgstr "" msgid "Getting the current user from a pgp sig\\n" msgstr "Obteniendo el usuario de la firma pgp" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "Given to %1" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: 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 "Seleccion de palabras clave globales" @@ -2217,16 +2310,20 @@ msgstr "Seleccion de palabras clave globales" msgid "Global Scrips" msgstr "Acciones Globales" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Plantilla global" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" msgstr "" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr " Ir " @@ -2238,11 +2335,11 @@ msgstr "Firma pgp correcta de %1\\n" msgid "Goto page" msgstr "Ir a página" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "Ir a ticket" -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "Grupo" @@ -2250,11 +2347,11 @@ msgstr "Grupo" msgid "Group %1 %2: %3" msgstr "Grupo %1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "Derechos del grupo" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "El grupo ya tiene miembros" @@ -2262,20 +2359,20 @@ msgstr "El grupo ya tiene miembros" msgid "Group could not be created." msgstr "El grupo no se pudo crear" -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "El grupo no se pudo crear: %1" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "Grupo creado" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "El grupo no tiene este miembro" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "Grupo no encontrado" @@ -2287,40 +2384,54 @@ msgstr "Grupo no entontrado\\n" msgid "Group not specified.\\n" msgstr "Grupo no especificado\\n" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "Grupos" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "Los grupos no pueden ser miembros de sus propios miembros" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: html/Admin/Groups/index.html:82 +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 "Hola!" -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "Hola, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "Historial" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" +#: 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 "Tel Casa" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "Inicio" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "Tengo %quant(%1,concrete mixer)." @@ -2329,11 +2440,15 @@ msgstr "Tengo %quant(%1,concrete mixer)." msgid "I have [quant,_1,concrete mixer]." msgstr "Tengo [quant,_1,concrete mixer]." -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "Id" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "Identidad" @@ -2341,59 +2456,63 @@ msgstr "Identidad" msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Si una aprobacion es rechazada, rechazar la original y borrar las aprobaciones pendientes" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." msgstr "" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." msgstr "" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." msgstr "Si esta herramienta estaba setgid, un usuario hostil local podria usar esta herramienta para conseguir acceso administrativo a RT." -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" msgstr "Si ha actualizado algo más arriba, no olvide" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "Valor ilegal para %1" -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "Campo inmutable" #: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Incluir campos personalizables deshabilitados en el listado." -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." msgstr "" -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." msgstr "Incluir colas deshabilitadas en el listado" -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "Incluir usuarios deshabilitados en la búsqueda" -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "Prioridad inicial" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "InitialPriority" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "Error de entrada" @@ -2401,20 +2520,20 @@ msgstr "Error de entrada" msgid "Interest noted" msgstr "Interest noted" -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "Error interno" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Error interno: %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "Tipo de grupo inválido" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "Derechos inválidos" @@ -2422,7 +2541,7 @@ msgstr "Derechos inválidos" msgid "Invalid Type" msgstr "Tipo inválido" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "Datos no válidos" @@ -2430,44 +2549,48 @@ msgstr "Datos no válidos" msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Propietario inválido. Estableciéndolo a 'nobody'." -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "Ãrea inválida" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "Permiso inválido" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "Valor inválido para %1" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "Valor inválido para el campo personalizable" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "Valor inválido para el estado" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "Es increiblemente importante que los usuarios sin privilegios no puedan ejecutar esta herramienta" -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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 "Es recomendable crear un usuario unix sin privilegios que pertenezca al grupo correcto y que tenga aceso a ejecutar esta herramienta" -#: bin/rt-crontool:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "Tiene varios parametros:" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Items pending my approval" msgstr "Items pendientes de mi aprobación" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "Ene." @@ -2475,11 +2598,11 @@ msgstr "Ene." msgid "January" msgstr "Enero" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "Unirse o abandonar este grupo" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "Jul." @@ -2487,11 +2610,11 @@ msgstr "Jul." msgid "July" msgstr "Julio" -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "Todo" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "Jun." @@ -2507,23 +2630,23 @@ msgstr "Palabras clave" msgid "Lang" msgstr "Leng" -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" msgstr "" -#: html/Ticket/Elements/Tabs:74 +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "" + +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "Último" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "Último contacto" -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" - -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "Último contactado" @@ -2531,7 +2654,7 @@ msgstr "Último contactado" msgid "Last Notified" msgstr "Se le notifico por ultima vez" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "Actualizado por ultima vez" @@ -2539,19 +2662,19 @@ msgstr "Actualizado por ultima vez" msgid "LastUpdated" msgstr "LastUpdated" -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" msgstr "" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "Izquierda" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "Permitir a este usuario acceder al RT" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" msgstr "Permitir que este usuario tenga privilegios adicionales" @@ -2563,29 +2686,33 @@ msgstr "Limitando propietario a %1 %2" msgid "Limiting queue to %1 %2" msgstr "Limitando cola a %1 %2" -#: lib/RT/Record.pm:1086 +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "" + +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "El vínculo ya existe" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "El vínculo no pudo ser creado" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "Vínculo creado (%2)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "Vínculo borrado (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "Vínculo no encontrado" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Vincular caso #%1" @@ -2594,105 +2721,122 @@ msgstr "Vincular caso #%1" msgid "Link ticket %1" msgstr "Enlazar ticket %1" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "Enlaces" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" msgstr "" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" msgstr "" -#: html/Admin/Tools/Configuration.html:19 +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "" + +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "Direccion" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "El directorio del log %1 no pudo ser encontrado o no se pudo escribir en él.\\n RT no puede ejecutarse." -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Autenticado como %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "Entrar" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "Salir" -#: html/Search/Bulk.html:83 +#: lib/RT/CustomField_Overlay.pm:866 +msgid "Lookup type mismatch" +msgstr "" + +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "Hacer propietario a" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "Establecer estatus" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "Establecer fecha de plazo" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "Establecer fecha de resolución" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" msgstr "Establecer fecha de inicio" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" msgstr "Establecer fecha de inicio" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "Establecer fecha de último cambio" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "Establecer prioridad" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "Establecer cola" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "Establecer título" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" msgstr "" -#: html/Admin/index.html:32 +#: 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 "Administrar grupos y miembros" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" msgstr "Administrar propiedades y configuracion que se aplique a todas las colas" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" msgstr "Administrar colas y propiedades especificas" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "Administrar usuarios y contraseñas" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "Mar." @@ -2704,33 +2848,33 @@ msgstr "Marzo" msgid "May" msgstr "Mayo" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "May." -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" msgstr "" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "Miembro añadido" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "Miembro borrado" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "Miembro no borrado" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "Miembro de" @@ -2738,66 +2882,75 @@ msgstr "Miembro de" msgid "MemberOf" msgstr "MemberOf" -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "Miembros" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2813 +#: 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:2849 msgid "Merge Successful" msgstr "Fusión exitosa" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Fusión fallida. No se pudo establecer el EffectiveId" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "Fusionar dentro de" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" msgstr "" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "Mensaje" -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" msgstr "" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." msgstr "" -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "" + +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "Falta una clave primaria?: %1" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "Movil" @@ -2805,15 +2958,7 @@ msgstr "Movil" msgid "MobilePhone" msgstr "Telefono Movil" -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "Modificar lista de control de acceso" @@ -2821,27 +2966,37 @@ msgstr "Modificar lista de control de acceso" msgid "Modify Custom Field %1" msgstr "Modificar el campo personalizable %1" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +#: 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 "Modificar los campos personalizables que se apliquen a todas las colas" -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: 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:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" msgstr "" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" msgstr "" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "Modificar plantillas Sript para esta cola" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" msgstr "Modificar Scrips para esta cola" @@ -2853,51 +3008,56 @@ msgstr "Modificar ACLs de sistema" msgid "Modify Template %1" msgstr "Modificar plantilla %1" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: 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:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "Modificar un campo personalizable para la cola %1" -#: html/Admin/Global/CustomField.html:52 +#: NOT FOUND IN SOURCE msgid "Modify a CustomField which applies to all queues" msgstr "Modificar un campo personalizable que se aplique a todas las colas" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Modificar un scrip para la cola %1" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "Modificar un scrip que se aplique a todas las colas" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" +#: 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 "Modificar fechas para # %1" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Modificar fechas para #%1" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Modificar fechas para ticket # %1" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: 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 "Modificar privilegios globales de grupo" -#: html/Admin/Global/GroupRights.html:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." msgstr "Modificar privilegios globales de grupo." @@ -2913,104 +3073,110 @@ msgstr "Modificar privilegios globales para usuarios" msgid "Modify global scrips" msgstr "Modificar acciones globales" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 msgid "Modify global user rights" msgstr "Modificar derechos globales de usuario" -#: html/Admin/Global/UserRights.html:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "Modificar privilegios globales de usuario" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "Modificar metadatos del grupo o borrar grupo" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" msgstr "" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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 "Modificar privilegios de grupo para %1" -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Modificar privilegios de grupo para la cola %1" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "Modificar miembros de este grupo" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "Modificar la propia cuenta RT" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Modificar personas relacionadas al cola %1" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" msgstr "Modificar personas relacionadas al ticket #%1" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Modificar acciones para la cola %1" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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 "Modificar scrips que se aplican a todas las colas" -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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 "Modificar plantilla %1" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "Modificar plantillas que se aplican a todas las colas" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" msgstr "Modificar el grupo %1" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "Modificar los observadores de la cola" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Modificar el usuario %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Modificar el ticket # %1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Modificar el ticket #%1" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "Modificar tickets" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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 "Modificar privilegios de usuario para el grupo %1" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Modificar derechos de usuario para la cola %1" @@ -3019,60 +3185,64 @@ msgstr "Modificar derechos de usuario para la cola %1" msgid "Modify watchers for queue '%1'" msgstr "Modificar observadores para la cola '%1'" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" msgstr "ModifyACL" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "ModifyOwnMembership" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "ModifyQueueWatchers" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "ModifyScrips" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "ModifySelf" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "ModifyTemplate" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "ModifyTicket" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "Lun." -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "Más acerca de %1" -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "Mover hacia abajo" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "Move hacia arriba" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "Múltiple" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "Se debe especificar un nombre" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" msgstr "" @@ -3081,55 +3251,47 @@ msgstr "" msgid "My Approvals" msgstr "Mis aprobaciones" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "Mis aprobaciones" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" msgstr "" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "Nombre" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "Nombre en uso" -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Se necesita aprobacion del administrador del sistema" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "Nunca" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "Nuevo" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "Nuevas relaciones" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" -msgstr "Nueva contraseñaa" +msgstr "Nueva contraseña" #: etc/initialdata:332 msgid "New Pending Approval" msgstr "Nueva pendiente de aprobación" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" msgstr "" @@ -3137,27 +3299,23 @@ msgstr "" msgid "New Search" msgstr "Nueva búsqueda" -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "Nuevo campo personalizable" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "Nuevo grupo" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" -msgstr "Nueva contraseñaa" +msgstr "Nueva contraseña" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "Notificación de nueva contraseña enviada" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "Nueva cola" @@ -3165,11 +3323,11 @@ msgstr "Nueva cola" msgid "New request" msgstr "Nueva solicitud" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "Nuevos privilegios" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "Nuevo scrip" @@ -3177,27 +3335,27 @@ msgstr "Nuevo scrip" msgid "New search" msgstr "Nueva búsqueda" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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 "Nueva plantilla" -#: html/SelfService/Elements/Tabs:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "El ticket nuevo no existe" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "Nuevo usuario" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "Nuevo usuario llamado" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "Nuevo observador" @@ -3205,11 +3363,11 @@ msgstr "Nuevo observador" msgid "New window setting" msgstr "Establecer nueva ventana " -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "Siguiente" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" msgstr "" @@ -3221,43 +3379,39 @@ msgstr "Siguiente página" msgid "NickName" msgstr "Alias" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "Alias" -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "No hay campo personalizable" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" msgstr "" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" msgstr "No hay grupo definido" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" msgstr "" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" msgstr "No hay cola definida" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "No se encontró el usuario. Por favor consulte al administrador.\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "No hay plantilla" @@ -3269,11 +3423,11 @@ msgstr "No se especificó el ticket. Abortada la transacción" msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "No se especificó ticket. Abortando las modificaciones al ticket\\n\\n" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "No action" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "No se ha especificado ninguna columna" @@ -3281,7 +3435,7 @@ msgstr "No se ha especificado ninguna columna" msgid "No command found\\n" msgstr "Comando no encontrado\\n" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" msgstr "No hay comentarios sobre este usuario" @@ -3289,68 +3443,77 @@ msgstr "No hay comentarios sobre este usuario" msgid "No correspondence attached" msgstr "No hay ningún archivo adjunto" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "No hay descripción para %1" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "No hay grupo especificado" -#: lib/RT/Ticket_Overlay.pm:2475 +#: html/Admin/Groups/index.html:52 +msgid "No groups matching search criteria found." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" msgstr "" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "No hay contraseña definida" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" msgstr "No tiene privilegios para crear colas" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "No tiene privilegios para crear tickets en la cola '%1'" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "No tiene privilegios para crear usuarios" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" msgstr "No tiene privilegios para mostrar el ticket" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" msgstr "Sin permiso para ver la actualización del ticket" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "No hay un principal especificado" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." msgstr "No hay principales seleccionados" -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." msgstr "No hay colas que concuerden con los criterios de búsqueda" -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "No se encontraron derechos" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "Sin privilegios concedidos" -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." msgstr "No hay búsqueda sobre la que operar" -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" msgstr "" @@ -3358,7 +3521,7 @@ msgstr "" msgid "No ticket id specified" msgstr "No se especificó el identificador del ticket" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "No se especificó el tipo de transacción" @@ -3366,7 +3529,7 @@ msgstr "No se especificó el tipo de transacción" msgid "No user or email address specified" msgstr "No se especificó email o usuario" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "No se encontraron usuarios que concuerden con los criterios de búsqueda" @@ -3374,15 +3537,15 @@ msgstr "No se encontraron usuarios que concuerden con los criterios de búsqueda msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Usuario no encontrado. El manejador cvs está deshabilitado. Por favor consulte a su administrador.\\n" -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "No se envió ningun valor a _Set!\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "Nadie" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "Campo no existente?" @@ -3390,15 +3553,15 @@ msgstr "Campo no existente?" msgid "Not logged in" msgstr "No autenticado" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "No autenticado." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "No establecido" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "No se ha implementado." @@ -3406,11 +3569,11 @@ msgstr "No se ha implementado." msgid "Not yet implemented...." msgstr "No está implementado..." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "Notas" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "La notificación no se pudo enviar" @@ -3482,7 +3645,7 @@ msgstr "Notificar solicitantes, Ccs y AdminCcs" msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Notificar solicitantes, Ccs y AdminCcs como comentario" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "Nov." @@ -3490,15 +3653,37 @@ msgstr "Nov." msgid "November" msgstr "Noviembre" -#: lib/RT/Record.pm:200 +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "" + +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "No se pudo crear el objeto" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "Objeto creado" -#: lib/RT/Date.pm:420 +#: lib/RT/Record.pm:121 +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:901 +msgid "Object type mismatch" +msgstr "" + +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "Oct." @@ -3506,19 +3691,19 @@ msgstr "Oct." msgid "October" msgstr "Octubre" -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" msgstr "" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" msgstr "" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" msgstr "" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "en " @@ -3558,21 +3743,21 @@ msgstr "Al cambiar de status" msgid "On Transaction" msgstr "Al hacer transaccion" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "Solo muestra aprobaciones para solicitudes creadas despues de %1" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "Solo muestra aprobaciones para solicitudes creadas antes de %1" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "Abierto" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "Abrirlo" @@ -3580,7 +3765,7 @@ msgstr "Abrirlo" msgid "Open requests" msgstr "Solicitudes abiertas" -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" msgstr "" @@ -3596,7 +3781,7 @@ msgstr "Tickets abiertos (del listado) en otra ventana" msgid "Open tickets on correspondence" msgstr "Open tickets on correspondence" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" msgstr "" @@ -3604,40 +3789,36 @@ msgstr "" msgid "Ordering and sorting" msgstr "Ordenación y clasificación" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "Organización" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Ticket originario: #%1" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" msgstr "" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" msgstr "" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "Pasada la fecha de gracia, la prioridad se mueve a" -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "Tickets poseidos" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "OwnTicket" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" msgstr "Propietario" @@ -3645,11 +3826,11 @@ msgstr "Propietario" msgid "Owner changed from %1 to %2" msgstr "Propietario cambiado de %1 a %2" -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." msgstr "" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Propietario cambiado forzosamente de %1 a %2" @@ -3658,12 +3839,12 @@ msgstr "Propietario cambiado forzosamente de %1 a %2" msgid "Owner is" msgstr "El propietario es" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" msgstr "" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "Buscapersonas" @@ -3671,36 +3852,53 @@ msgstr "Buscapersonas" msgid "PagerPhone" msgstr "Buscapersonas Tel." -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "Padres" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" -msgstr "Contraseñaa" +msgstr "Contraseña" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "Recordatorio de contraseña" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "Contraseña cambiado" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "Contraseña demasiado corta" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Contraseña: %1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." msgstr "" -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "Personas" @@ -3708,27 +3906,27 @@ msgstr "Personas" msgid "Perform a user-defined action" msgstr "Realizar una acion definida por el usuario" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" msgstr "" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "Permiso denegado" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "Grupos personales" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "Grupos personales" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "Grupos personales:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "Números de teléfono" @@ -3736,7 +3934,7 @@ msgstr "Números de teléfono" msgid "Placeholder" msgstr "Placeholder" -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "Preferencias" @@ -3744,15 +3942,15 @@ msgstr "Preferencias" msgid "Prefs" msgstr "Prefs" -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "Preparación cortada" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "Prev" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" msgstr "" @@ -3764,20 +3962,20 @@ msgstr "Página anterior" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "No se encontró el principal %1" -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "Prioridad" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "La prioridad empieza en" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" msgstr "" @@ -3785,36 +3983,32 @@ msgstr "" msgid "Privileged" msgstr "Privilegiado" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Estado privilegiado: %1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "Usuarios privilegiados:" -#: 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 "Pseudogrupo para uso interno" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" msgstr "" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" msgstr "" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "Cola" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" @@ -3828,7 +4022,7 @@ msgstr "Cola '%1' no encontrada\\n" msgid "Queue Keyword Selections" msgstr "Selecciones de palabras clave de la cola" -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "Nombre de la cola" @@ -3836,19 +4030,19 @@ msgstr "Nombre de la cola" msgid "Queue Scrips" msgstr "Acciones de la cola" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "La cola ya existe" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" msgstr "La cola no se pudo crear" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 msgid "Queue could not be loaded." msgstr "La cola no se pudo cargar" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" msgstr "Cola creada" @@ -3856,32 +4050,32 @@ msgstr "Cola creada" msgid "Queue is not specified." msgstr "No se especifico ninguna cola" -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" msgstr "Cola no encontrada" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "Colas" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" msgstr "" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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 para %2" @@ -3894,7 +4088,7 @@ msgstr "RT %1 de <a href=\"http://bestpractical.com\">Best Practical Solutions, msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "RT %1. Derechos reservados 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -#: html/Admin/index.html:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "Administración del RT" @@ -3914,7 +4108,7 @@ msgstr "Error de configuración del RT" msgid "RT Critical error. Message not recorded!" msgstr "Error crítico en RT. El mensaje no fue grabado!" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "Error del RT" @@ -3926,19 +4120,15 @@ msgstr "RT recibió correo (%1) de sí mismo." msgid "RT Recieved mail (%1) from itself." msgstr "RT recibió correo (%1) de sí mismo." -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT AutoServicio / Tickets cerrados" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" msgstr "" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "RT en un vistazo" @@ -3954,11 +4144,15 @@ msgstr "RT no pudo encontrar el solicitante a través de una busqueda a la base msgid "RT couldn't find the queue: %1" msgstr "RT no pudo encontrar la cola: %1" +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." +msgstr "" + #: NOT FOUND IN SOURCE msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT no pudo validar esta firma PGP. \\n" -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "RT para %1" @@ -3975,10 +4169,6 @@ msgstr "RT ha procesado tus comandos" 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 es © Copyright 1996-%1 de Jesse Vincent <jesse@bestpractical.com>. Es distrbuido bajo <a href=\"http://www.gnu.org/copyleft/gpl.html\">la version 2 de la licencia GNU GPL (General Public License)</a>." -#: 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 "" - #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "RT cree que este mensaje puede ser un mensaje rebotado" @@ -3991,11 +4181,7 @@ msgstr "RT procesará este mensaje como si fuera uno no firmado\\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 "El modo de comandos por correo de RT requiere autenticación PGP. Ya sea que no haya firmado su mensaje, o que su firma no pueda ser verificada." -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "Nombre real" @@ -4003,31 +4189,31 @@ msgstr "Nombre real" msgid "RealName" msgstr "Nombre real" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" msgstr "" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "Referenciado por" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "Hace referencia a" @@ -4043,44 +4229,44 @@ msgstr "Refinar" msgid "Refine search" msgstr "Refinar la búsqueda" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Refrescar esta página cada %1 minutos" -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "Quitar AdminCc" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "Quitar Cc" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "Quitar solicitante" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "Responder" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" msgstr "" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "Responder a los tickets" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "ReplyToTicket" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "Solicitante" @@ -4096,37 +4282,37 @@ msgstr "Solicitante(s)" msgid "RequestorAddresses" msgstr "RequestorAddresses" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "Solicitantes" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "Las solicitudes entran en vencimiento en" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" msgstr "" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "Borrar" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "Residencia" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "Resolver" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Resolver ticket #%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "Resuelto" @@ -4134,7 +4320,7 @@ msgstr "Resuelto" msgid "Response to requestors" msgstr "Responder a los solicitantes" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "Resultados" @@ -4142,11 +4328,11 @@ msgstr "Resultados" msgid "Results per page" msgstr "Resultados por página" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "Confirmar contraseña" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" msgstr "" @@ -4154,49 +4340,49 @@ msgstr "" msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Privilegio %1 no encontrado para %2 %3 referente a %4 (%5)\\n" -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "Privilegio delegado" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "Privilegio otorgado" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "Privilegio cargado" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "Privilegio no pudo ser revocado" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "Privilegio no encontrado" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "Privilegio no cargado" -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "Privilegio revocado" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "Privilegios" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "No se pudieron conceder los privilegios a %1" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "No se pudieron revocar los privilegios de %1" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "Roles" @@ -4204,53 +4390,59 @@ msgstr "Roles" msgid "RootApproval" msgstr "RootApproval" -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" msgstr "" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "Sab." -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" msgstr "" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "Guardar Cambios" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" msgstr "" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "Guardar cambios" -#: html/Search/Elements/EditSearches:1 +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "" + +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" msgstr "" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "Acción creada" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" msgstr "" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "Acción borrada" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "Acciones" @@ -4258,11 +4450,11 @@ msgstr "Acciones" msgid "Scrips for %1\\n" msgstr "Acciones para %1\\n" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" msgstr "Acciones que se aplican a todas las colas" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "Búsqueda" @@ -4270,98 +4462,139 @@ msgstr "Búsqueda" msgid "Search Criteria" msgstr "Criterios de búsqueda" -#: html/Approvals/Elements/PendingMyApproval:38 +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "Buscar aprobaciones" -#: NOT FOUND IN SOURCE -msgid "Search for articles" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" msgstr "" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" msgstr "Seguridad:" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/CustomField_Overlay.pm:100 +msgid "See custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 -msgid "SeeQueue" -msgstr "Ver cola" +#: lib/RT/CustomField_Overlay.pm:100 +msgid "SeeCustomField" +msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Class" +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" +#: lib/RT/Queue_Overlay.pm:92 +msgid "SeeQueue" +msgstr "Ver cola" + +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 +msgid "Select a Custom Field" msgstr "" -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" msgstr "Seleccione un grupo" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" msgstr "Seleccione una cola" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +#: 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 "Seleccione un usuario" -#: NOT FOUND IN SOURCE -msgid "Select class" -msgstr "" - -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +#: html/Admin/Elements/CustomFieldTabs:90 msgid "Select custom field" msgstr "Seleccionar un campo personalizable" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: 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 "Seleccionar grupo" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "Seleccionar valores múltiples" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "Seleccionar un valor" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" msgstr "Seleccionar cola" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "Seleccionar accion" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "Selecionar plantilla" -#: html/Admin/Elements/UserTabs:46 +#: lib/RT/CustomField_Overlay.pm:61 +msgid "Select up to %1 values" +msgstr "" + +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "Seleccionar usuario" -#: lib/RT/CustomField_Overlay.pm:35 +#: NOT FOUND IN SOURCE msgid "SelectMultiple" msgstr "SelectMultiple" -#: lib/RT/CustomField_Overlay.pm:34 +#: NOT FOUND IN SOURCE msgid "SelectSingle" msgstr "SelectSingle" +#: 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 "Self Service" msgstr "Autoservicio" @@ -4410,59 +4643,51 @@ msgstr "Envia mail a los Ccs administrativos como comentario" msgid "Sends mail to the owner" msgstr "Enviar mail al propietario" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "Sep." -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" - #: NOT FOUND IN SOURCE msgid "September" msgstr "Septiembre" -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" msgstr "" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" msgstr "" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" msgstr "" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "Mostrar resultados" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "Mostrar peticiones aprobadas" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "Mostrar lo básico" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "Mostrar solicitudes denegadas" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "Mostrar detalles" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "Mostrar solicitudes pendientes" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "Mostrar solicitudes esperando otras aprobaciones" @@ -4474,43 +4699,47 @@ msgstr "Mostrar ticket en un comentario privado" msgid "Show ticket summaries" msgstr "Mostrar resumen del ticket" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" msgstr "ShowACL" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" msgstr "" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "ShowScrips" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "ShowTemplate" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "ShowTicket" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "ShowTicketComments" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "Validarse como solicitante de ticket o ticket o cola Cc" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "Validarse como ticket o cola AdminCc" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "Firma" @@ -4518,20 +4747,24 @@ msgstr "Firma" msgid "Signed in as %1" msgstr "Validado como %1" -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "Sencillo" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 msgid "Skip Menu" msgstr "Saltar Menu" -#: html/Admin/Elements/AddCustomFieldValue:27 -msgid "Sort" +#: html/Search/Elements/EditFormat:78 +msgid "Small" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Sort Order" +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 +msgid "Sort" msgstr "" #: NOT FOUND IN SOURCE @@ -4546,11 +4779,7 @@ msgstr "Ordenar resultados por" msgid "SortOrder" msgstr "Ordenamiento" -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" - -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" msgstr "" @@ -4562,7 +4791,7 @@ msgstr "Pendiente" msgid "Start page" msgstr "Página de inicio" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "Empezado" @@ -4570,7 +4799,7 @@ msgstr "Empezado" msgid "Started date '%1' could not be parsed" msgstr "La fecha de inicio '%1' no se pudo leer" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "Empieza" @@ -4582,11 +4811,11 @@ msgstr "Empezado por" msgid "Starts date '%1' could not be parsed" msgstr "La fecha de inicio '%1' no se pudo ser leer" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "Estado" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "Estado" @@ -4594,8 +4823,7 @@ msgstr "Estado" msgid "Status Change" msgstr "Cambio de status" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" msgstr "Estado cambiado de %1 a %2" @@ -4603,73 +4831,65 @@ msgstr "Estado cambiado de %1 a %2" msgid "StatusChange" msgstr "StatusChange" -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "Robar" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) -msgid "Stolen from %1 " +msgid "Stolen from %1" msgstr "Robado de %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 +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "Asunto" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "Asunto cambiado a %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "Enviar" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "Submit Workflow" -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" msgstr "Completado" -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" - -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "Dom." -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "Superusuario" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "Sistema" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" msgstr "" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" msgstr "Error del sistema" @@ -4681,15 +4901,20 @@ msgstr "Error de sistema. Derecho no concedido" msgid "System Error. right not granted" msgstr "Error de sistema. Derecho no concedido" -#: html/Admin/Tools/index.html:2 +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" +msgstr "" + +#: html/Admin/Tools/index.html:47 msgid "System Tools" msgstr "" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "Error del sistema. Privilegio no delegado." -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "Error del sistema. Privilegio no otorgado" @@ -4697,7 +4922,7 @@ msgstr "Error del sistema. Privilegio no otorgado" msgid "System error. Unable to grant rights." msgstr "Error de sistema. Incapaz de conceder permisos" -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "Grupos del sistema" @@ -4705,40 +4930,40 @@ msgstr "Grupos del sistema" msgid "SystemRolegroup for internal use" msgstr "SystemRolegroup for internal use" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "Coger" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "Cogido" -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "Plantilla" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Plantilla #%1" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "Plantilla borrada" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "Plantilla no encontrada" @@ -4746,11 +4971,11 @@ msgstr "Plantilla no encontrada" msgid "Template not found\\n" msgstr "Plantilla no encontrada\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "Plantilla procesada" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "Plantillas" @@ -4758,33 +4983,33 @@ msgstr "Plantillas" msgid "Templates for %1\\n" msgstr "Plantillas de %1\\n" -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "Ese es el valor actual" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "Ese no es un valor para este campo personalizable" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "Este es el mismo valor" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" msgstr "" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Ese principal ya es un %1 para esta cola" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Ese principal ya es un %1 para este ticket" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Ese principal no es un %1 para esta cola" @@ -4793,11 +5018,11 @@ msgstr "Ese principal no es un %1 para esta cola" msgid "That principal is not a %1 for this ticket" msgstr "Ese principal no es un %1 para este ticket" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" msgstr "Esa cola no existe" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "Ese ticket tiene dependencias sin resolver" @@ -4805,27 +5030,27 @@ msgstr "Ese ticket tiene dependencias sin resolver" msgid "That user already has that right" msgstr "Ese usuario ya tiene ese privilegio" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" msgstr "Ese usuario ya posee ese ticket" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "Ese usuario no existe" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "Ese usuario ya tiene privilegios" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" msgstr "Ese usuario ya está sin privilegios" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "Ese usuario ahora tiene privilegios" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" msgstr "Ese usuario ya no tiene privilegios" @@ -4833,23 +5058,23 @@ msgstr "Ese usuario ya no tiene privilegios" msgid "That user is now unprivilegedileged" msgstr "Este usuario ya no tiene privilegios" -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" msgstr "Ese usuario puede no poseer tickets en esa cola" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "Ese no es un identificador numérico" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "Lo básico" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "El CC de un ticket" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "El CC administrativo de un ticket" @@ -4857,7 +5082,7 @@ msgstr "El CC administrativo de un ticket" msgid "The comment has been recorded" msgstr "El comentario ha sido grabado" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 "El siguiente comando encontrará todos los tickets activos en la cola 'general' y pondra su prioridad a 99 si no han sido tocados en 4 horas:" @@ -4865,27 +5090,31 @@ msgstr "El siguiente comando encontrará todos los tickets activos en la cola 'g msgid "The following commands were not proccessed:\\n\\n" msgstr "Los siguientes comandos no han sido procesados:\\n\\n" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "Ha sido establecido el nuevo valor" -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "El propietario de un ticket" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "El solicitante de un ticket" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "Estos comentarios generalmente no están visibles para el usuario" -#: html/Admin/Tools/Configuration.html:5 +#: lib/RT/CustomField_Overlay.pm:912 +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:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." msgstr "" @@ -4893,15 +5122,15 @@ msgstr "" msgid "This ticket %1 %2 (%3)\\n" msgstr "Este ticket %1 %2 (%3)" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Esta herramiento permite al usuario ejectutar modulos perl arbitrarios desde dentro de RT" -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "Parece que esta transacción no tiene contenido" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Los %1 tickets de mayor prioridad de este usuario" @@ -4910,7 +5139,7 @@ msgstr "Los %1 tickets de mayor prioridad de este usuario" msgid "This user's 25 highest priority tickets" msgstr "Los 25 casos de mayor prioridad de este usuario" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "Jue." @@ -4922,24 +5151,24 @@ msgstr "Ticket # %1 %2" msgid "Ticket # %1 Jumbo update: %2" msgstr "Actualizacion Jumbo para el ticket # %1: %2" -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Actualización Jumbo para el ticket #%1: %2" -#: html/Approvals/Elements/ShowDependency:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Ticket #%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Ticket %1 creado en la cola '%2'" @@ -4948,12 +5177,16 @@ msgstr "Ticket %1 creado en la cola '%2'" msgid "Ticket %1 loaded\\n" msgstr "Ticket %1 cargado\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Ticket %1: %2" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: 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 "Historial del ticket # %1 %2" @@ -4966,23 +5199,27 @@ msgstr "Id del ticket:" msgid "Ticket Resolved" msgstr "Ticket resuelto" +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 +msgid "Ticket Transactions" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Archivos adjuntos del ticket" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "Contenido del ticket" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "Tipo de contenido del ticket" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "No se pudo crear el ticket debido a un error interno" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "Ticket creado" @@ -4990,7 +5227,7 @@ msgstr "Ticket creado" msgid "Ticket creation failed" msgstr "Creación del ticket fallida" -#: lib/RT/Transaction_Overlay.pm:502 +#: NOT FOUND IN SOURCE msgid "Ticket deleted" msgstr "Ticket borrado" @@ -5002,7 +5239,7 @@ msgstr "Id de ticket no encontrada" msgid "Ticket killed" msgstr "Ticket matado" -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" msgstr "" @@ -5018,17 +5255,20 @@ msgstr "Estado del ticket cambiado" msgid "Ticket watchers" msgstr "Observadores del ticket" -#: html/Elements/Tabs:46 +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "" + +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 msgid "Tickets" msgstr "Tickets" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 %2" msgstr "Tickets %1 %2" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 by %2" msgstr "Tickets %1 por %2" @@ -5036,31 +5276,31 @@ msgstr "Tickets %1 por %2" msgid "Tickets from %1" msgstr "Tickets de %1" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "Tickets que dependen de esta aprobación:" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" msgstr "" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "Tiempo Restante" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "Tiempo Trabajado" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" msgstr "Tiempo restante" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "Tiempo para mostrar" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" msgstr "Tiempo trabajado" @@ -5068,10 +5308,14 @@ msgstr "Tiempo trabajado" msgid "TimeLeft" msgstr "TimeLeft" -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" msgstr "TimeWorked" +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "" + #: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "Para generar una comparación de este cometido:" @@ -5080,16 +5324,16 @@ msgstr "Para generar una comparación de este cometido:" msgid "To generate a diff of this commit:\\n" msgstr "Para generar una comparación de este cometido:\\n" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<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:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "Última actualización" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" msgstr "" @@ -5097,20 +5341,28 @@ msgstr "" msgid "Transaction" msgstr "Transacción" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transacción %1 limpiada" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "Transacción creada" -#: lib/RT/Transaction_Overlay.pm:92 +#: 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 no pudo, ya no no especificó un ID de ticket" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:125 +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "Las transacciones son inmutables" @@ -5118,23 +5370,19 @@ msgstr "Las transacciones son inmutables" msgid "Trying to delete a right: %1" msgstr "Intentando borrar el privilegio: %1" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "Mar." -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "Tipo" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "No implementado" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "Usuario en Unix" @@ -5142,16 +5390,21 @@ msgstr "Usuario en Unix" msgid "UnixUsername" msgstr "Usuario en Unix" -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Codificación de contenido desconocida: %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "Ilimitado" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" msgstr "" @@ -5159,15 +5412,23 @@ msgstr "" msgid "Unprivileged" msgstr "No privilegiado" -#: lib/RT/Transaction_Overlay.pm:562 +#: 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:648 msgid "Untaken" msgstr "No cogido" -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "Actualizar" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" msgstr "" @@ -5175,11 +5436,11 @@ msgstr "" msgid "Update ID" msgstr "Id de actualización" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" msgstr "" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "Tipo de actualización" @@ -5191,7 +5452,7 @@ msgstr "Actualizar todos estos casos al mismo tiempo" msgid "Update email" msgstr "Actualizar correo" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" msgstr "" @@ -5199,11 +5460,11 @@ msgstr "" msgid "Update name" msgstr "Actualizar nombre" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "Actualización no grabada." -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "Actualizar tickets seleccionados" @@ -5211,7 +5472,7 @@ msgstr "Actualizar tickets seleccionados" msgid "Update signature" msgstr "Actualizar firma" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "Actualizar ticket" @@ -5219,34 +5480,58 @@ msgstr "Actualizar ticket" msgid "Update ticket # %1" msgstr "Actualización de ticket # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Actualizar ticket #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Actualizar ticket #%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "El tipo de actualización no fue ni respuesta ni comentario" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "Actualizado" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" msgstr "" -#: html/Tools/Offline.html:73 +#: 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:95 msgid "Upload your changes" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" #: NOT FOUND IN SOURCE @@ -5257,7 +5542,7 @@ msgstr "Usuario %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Usuario %1 Contraseña: %2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." msgstr "" @@ -5274,7 +5559,7 @@ msgstr "Usuario '%1' no encontrado\\n" msgid "User Defined" msgstr "Definido por el usuario" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" msgstr "" @@ -5282,28 +5567,33 @@ msgstr "" msgid "User ID" msgstr "ID de usuario" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "Id de usuario" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "Privilegios de usuario" -#: html/Admin/Users/Modify.html:252 +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" + +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "El usuario no pudo ser creado: %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "Usuario creado" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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 "Grupos definidos por el usuario" -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" msgstr "" @@ -5315,19 +5605,23 @@ msgstr "Usuario notificado" msgid "User view" msgstr "Vista de usuario" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Groups/index.html:99 +msgid "User-defined groups" +msgstr "" + +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "Nombre de usuario" -#: 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 +#: 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:1086 msgid "Users" msgstr "Usuarios" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "Usuarios que concuerdan con los criterios de búsqueda" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" msgstr "" @@ -5335,15 +5629,15 @@ msgstr "" msgid "ValueOfQueue" msgstr "Valor de la cola" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "Valores" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "Observar" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "WatchAsAdminCc" @@ -5351,7 +5645,7 @@ msgstr "WatchAsAdminCc" msgid "Watcher loaded" msgstr "Observador cargado" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "Observadores" @@ -5359,7 +5653,7 @@ msgstr "Observadores" msgid "WebEncoding" msgstr "Codificación de Web" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "Mie." @@ -5415,19 +5709,11 @@ msgstr "Siempre que venga algun comentario" msgid "Whenever correspondence comes in" msgstr "Siempre que venga correspondencia" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "Trabajo" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" msgstr "" @@ -5435,31 +5721,19 @@ msgstr "" msgid "WorkPhone" msgstr "Tel Trabajo" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "Trabajado" -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" msgstr "Usted ya es propietario de este caso" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" msgstr "Usted no es un usuario autorizado" -#: NOT FOUND IN SOURCE -msgid "You can access it with the Download button on the right." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Usted solo puede reasignar casos que posee o que no posee nadie³" @@ -5467,24 +5741,24 @@ msgstr "Usted solo puede reasignar casos que posee o que no posee nadie³" msgid "You don't have permission to view that ticket.\\n" msgstr "No tiene permiso para ver ese ticket.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "Usted encontró %1 casos en la cola %2" -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "Se ha desconectado del sistema RT" -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." msgstr "No tiene permiso para crear tickets en esa cola." -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." msgstr "No puede crear solicitudes en esa cola." -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "Es bienvenido a regresar en cualquier momento." @@ -5512,11 +5786,11 @@ msgstr "Su petición ha sido rechazada" msgid "Your request was rejected." msgstr "Su petición ha sido rechazada" -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "Nombre o contraseña de usuario incorrectos" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "Zip" @@ -5524,24 +5798,28 @@ msgstr "Zip" msgid "[no subject]" msgstr "[sin asunto]" -#: NOT FOUND IN SOURCE -msgid "and is not" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "and not" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" msgstr "" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "como priviligiado para %1" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "contiene" @@ -5561,7 +5839,7 @@ msgstr "Respuesta (probablemente) no enviada" msgid "correspondence sent" msgstr "Correspondencia enviada" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "días" @@ -5573,22 +5851,50 @@ msgstr "muerto" msgid "delete" msgstr "borrar" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "borrado" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "no coincide" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "no contiene" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "igual a" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "" + #: NOT FOUND IN SOURCE msgid "false" msgstr "falso" @@ -5597,48 +5903,44 @@ msgstr "falso" msgid "filename" msgstr "nombre de archivo" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "mayor que" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "grupo '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "horas" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "id" -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" - -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "es" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "no es" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "menor que" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "contiene" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "min" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "minutos" @@ -5646,27 +5948,27 @@ msgstr "minutos" msgid "modifications\\n\\n" msgstr "modificaciones\\n\\n" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "meses" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "nuevo" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" msgstr "" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "sin valor" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "ninguno" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "no igual a" @@ -5674,72 +5976,68 @@ msgstr "no igual a" msgid "notlike" msgstr "notlike" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "abierto" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "grupo personal '%1' para usuario '%2'" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "Cola %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "rechazado" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "resuelto" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "sec" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "" + +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "pendiente" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "sistema %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "grupo del sistema '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "el componente que llama no especifica por qué" -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ticket #%1 %2" -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "" - #: NOT FOUND IN SOURCE msgid "true" msgstr "verdadero" -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "grupo sin descripción %1" @@ -5748,12 +6046,12 @@ msgstr "grupo sin descripción %1" msgid "undescripbed group %1" msgstr "grupo sin descripción %1" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "usuario %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "semanas" @@ -5761,7 +6059,7 @@ msgstr "semanas" msgid "with template %1" msgstr "con plantilla %1" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "años" diff --git a/rt/lib/RT/I18N/fi.po b/rt/lib/RT/I18N/fi.po index 56c963635..eaac6bfb0 100644 --- a/rt/lib/RT/I18N/fi.po +++ b/rt/lib/RT/I18N/fi.po @@ -11,75 +11,60 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: NOT FOUND IN SOURCE -msgid "#" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "#%1" -msgstr "" - -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" msgstr "" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) -msgid "%1 %2 %3" -msgstr "" - -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" msgstr "%1 %2 lisätty" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "%1 %2 sitten" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%1: %2 muutettu arvoon %3" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" msgstr "%1 %2 poistettu" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" msgstr "%1 %2 pohjalla %3" @@ -88,16 +73,16 @@ msgstr "%1 %2 pohjalla %3" msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 tässä tapauksessa\\n" -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" msgstr "" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" msgstr "" @@ -105,29 +90,29 @@ msgstr "" msgid "%1 - %2 shown" msgstr "näkyvillä %1 - %2" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" msgstr "" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "" @@ -138,20 +123,35 @@ msgstr "" $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 -#. ('»|«', $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 +#. ('»|«', + $RT::VERSION, + '2005', + '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "ScriptAction %1 ladattu" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 lisätty arvoksi %2lle" @@ -168,32 +168,31 @@ msgstr "%1 aliakset vaativat tapauksen id:n " msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1 aliakset vaativat tapauksen id:n (osoite %2) %3" -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($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:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 - %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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") msgid "%1 changed from %2 to %3" msgstr "%1 muutettu arvosta %2 arvoon %3" -#: html/Search/Build.html:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" msgstr "" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "Arvoa %1 ei voitu asettaa arvoksi %2" @@ -201,12 +200,22 @@ msgstr "Arvoa %1 ei voitu asettaa arvoksi %2" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 ei voinut suorittaa tapahtumaa (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 ei voinut asettaa tilaa päätetyksi. RT:n tietokanta saattaa olla vioittunut." -#: html/Elements/MyTickets:24 +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) +msgid "%1 created" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) +msgid "%1 deleted" +msgstr "" + +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" msgstr "" @@ -215,17 +224,16 @@ msgstr "" msgid "%1 highest priority tickets I own..." msgstr "%1 tärkeintä omistamaani tapausta..." -#: html/Elements/MyTickets:26 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I requested..." msgstr "%1 tärkeintä tilaamaani tapausta..." -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "" -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 ei ole enää %2 tälle työjonolle" @@ -234,8 +242,7 @@ msgstr "%1 ei ole enää %2 tälle työjonolle" msgid "%1 is no longer a %2 for this ticket." msgstr "%1 ei ole enää %2 tälle tapaukselle" -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a value for custom field %2" msgstr "%1 ei ole enää kentän %2 arvo" @@ -243,11 +250,7 @@ msgstr "%1 ei ole enää kentän %2 arvo" msgid "%1 isn't a valid Queue id." msgstr "%1 ei ole kelvollinen työjonon id" -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -256,15 +259,7 @@ msgstr "" msgid "%1 min" msgstr "%1 min" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" msgstr "" @@ -273,7 +268,11 @@ msgstr "" msgid "%1 not shown" msgstr "%1 ei näy" -#: html/User/Elements/DelegateRights:75 +#: lib/RT/CustomField_Overlay.pm:827 +msgid "%1 objects" +msgstr "" + +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "" @@ -290,11 +289,7 @@ msgstr "%1 tyyppi tuntematon viestille $MessageId" msgid "%1 type unknown for %2" msgstr "%1 tyyppi tuntematon viestille %2" -#: NOT FOUND IN SOURCE -msgid "%1 was created without a CurrentUser\\n" -msgstr "" - -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 päättää kaikki päätetyn ryhmän jäsentapaukset." @@ -303,28 +298,36 @@ msgstr "%1 päättää kaikki päätetyn ryhmän jäsentapaukset." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 jäädyttää [paikallisen] BASE jos se riippuu linkitetystä tapauksesta [tai on sen jäsen]." -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: lib/RT/CustomField_Overlay.pm:828 +msgid "%1's %2 objects" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:829 +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" msgstr "" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1: liitetiedostoa ei ole määritelty" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' ei kelpaa tilan arvoksi" @@ -341,7 +344,7 @@ msgstr "(Rastita laatikko poistaaksesi ryhmän jäsenen)" msgid "(Check box to delete scrip)" msgstr "(Rastita laatikko poistaaksesi toiminnon)" -#: 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 +#: 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 "(Rastita laatikko poistaaksesi)" @@ -349,49 +352,49 @@ msgstr "(Rastita laatikko poistaaksesi)" msgid "(Check boxes to delete)" msgstr "(Rastita laatikko poistaaksesi)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "(Syötä tapausten numerot tai www-osoitteet, välilyönneillä erotettuina)" -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: html/Admin/Queues/Modify.html:75 html/Admin/Queues/Modify.html:81 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) -msgid "(If left blank, will default to %1" +msgid "(If left blank, will default to %1)" msgstr "(Jos jätetään tyhjäksi, palaa arvoon %1)" #: NOT FOUND IN SOURCE msgid "(No Value)" msgstr "(Ei arvoa)" -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "(Ei kenttiä)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(Ei jäseniä)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "(Ei toimintoja)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "(Ei pohjia)" -#: html/Ticket/Update.html:66 +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 +msgid "(None)" +msgstr "" + +#: html/Ticket/Update.html:88 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 "(Lähettää piilokopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" @@ -399,11 +402,11 @@ msgstr "(Lähettää piilokopion vain tästä päivityksestä pilkulla erotettui 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 "(Lähettää piilokopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 "(Lähettää kopion tästä päivityksestä pilkulla erotettuihin hallinnollisiin sähköpostiosoitteisiin. <b>Lisää</b> pysyviksi vastaanottajiksi.)" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 "(Lähettää kopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" @@ -411,47 +414,43 @@ msgstr "(Lähettää kopion vain tästä päivityksestä pilkulla erotettuihin s 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 "(Lähettää kopion vain tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Ei lisää</b> pysyviksi vastaanottajiksi.)" -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 "(Lähettää kopion tästä päivityksestä pilkulla erotettuihin sähköpostiosoitteisiin. <b>Lisää</b> pysyviksi vastaanottajiksi.)" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" msgstr "" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(tyhjä)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "(ei nimiä listattuna)" -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" - #: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(ei otsikkoa)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(ei arvoa)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Admin/Elements/EditCustomFieldValues:47 +msgid "(no values)" +msgstr "" + +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(vain yksi tapaus)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(odottaa hyväksyntää)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" msgstr "" @@ -459,18 +458,14 @@ msgstr "" msgid "(pending other tickets)" msgstr "(odottaa toisia tapauksia)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(pakollinen)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(nimetön)" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "25 tärkeintä omistamaani tapausta..." @@ -479,23 +474,23 @@ msgstr "25 tärkeintä omistamaani tapausta..." msgid "25 highest priority tickets I requested..." msgstr "25 tärkeintä tilaamaani tapausta..." -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"Uusi tapaus\"> %1" @@ -504,91 +499,83 @@ msgstr "<input type=\"submit\" value=\"Uusi tapaus\"> %1" msgid "A blank template" msgstr "Tyhjä pohja" -#: NOT FOUND IN SOURCE -msgid "ACE Deleted" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." msgstr "" -#: NOT FOUND IN SOURCE -msgid "ACE Loaded" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be found" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "ACE ei löytynyt" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "ACE:ja voi vain luoda ja poistaa." +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Peruutetaan tarkoittamattomien tapausmuutosten välttämiseksi.\\n" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "Omat asetukset" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "Pääsynvalvonta" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "Tapahtuma" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Tapahtumaa %1 ei löydetty" -#: bin/rt-crontool:119 -msgid "Action committed." +#: bin/rt-crontool:148 +msgid "Action committed.\\n" msgstr "" -#: bin/rt-crontool:115 +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "Lisää kopio ylläpidolle" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "Lisää kopio" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "" + +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" msgstr "" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "Lisää useampi tiedosto" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "Lisää tilaaja" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" 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 "Lisää uusi yleinen toiminto" @@ -597,49 +584,49 @@ msgstr "Lisää uusi yleinen toiminto" msgid "Add a scrip to this queue" msgstr "Lisää toiminto tähän työjonoon" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" msgstr "Lisää kaikille työjonoille yhteinen toiminto" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" msgstr "" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "Lisää kommentteja tai vastauksia valituille tapauksille" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "Lisää jäseniä" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "Lisää uusia tarkkailijoita" -#: NOT FOUND IN SOURCE -msgid "AddNextState" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" msgstr "" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Lisätty toimeksiantaja %1:ksi tähän työjonoon" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Lisätty toimeksiantaja %1:ksi tälle tapaukselle" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "Osoite1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "Osoite2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "Kopio ylläpidolle" @@ -651,7 +638,7 @@ msgstr "" msgid "Admin Correspondence" msgstr "" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" msgstr "Työjonojen ylläpito" @@ -659,7 +646,7 @@ msgstr "Työjonojen ylläpito" msgid "Admin users" msgstr "Käyttäjien ylläpito" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "Ylläpito/Yleiset asetukset" @@ -671,51 +658,39 @@ msgstr "Ylläpito/Ryhmät" msgid "Admin/Queue/Basics" msgstr "Ylläpito/Työjono/Perustiedot" -#: NOT FOUND IN SOURCE -msgid "AdminAllPersonalGroups" -msgstr "" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "Kopio ylläpidolle" -#: NOT FOUND IN SOURCE -msgid "AdminComment" +#: lib/RT/CustomField_Overlay.pm:101 +msgid "AdminCustomField" msgstr "" -#: NOT FOUND IN SOURCE -msgid "AdminCorrespondence" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:73 -msgid "AdminCustomFields" -msgstr "" - -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "Kopio ylläpidolle" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" msgstr "" @@ -723,11 +698,7 @@ msgstr "" msgid "Advanced Search" msgstr "Tarkennettu haku" -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "" - -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "Jälkeen" @@ -735,51 +706,55 @@ msgstr "Jälkeen" msgid "Age" msgstr "Ikä" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "" + #: etc/initialdata:363 msgid "All Approvals Passed" msgstr "" #: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Kaikki kentät" -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "Kaikki työjonot" -#: NOT FOUND IN SOURCE -msgid "Always sends a message to the requestors independent of message sender" +#: 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:42 +#: html/Search/Edit.html:64 msgid "Apply" msgstr "" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" msgstr "" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "Hyväksyntä" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "" @@ -796,11 +771,7 @@ msgstr "" msgid "Approval Rejected" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Approval diagram" -msgstr "" - -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "Hyväksy" @@ -808,7 +779,7 @@ msgstr "Hyväksy" msgid "Approver's notes: %1" msgstr "Hyväksyjän merkintöjä: %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "huhti" @@ -816,64 +787,52 @@ msgstr "huhti" msgid "April" msgstr "huhtikuu" -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 +msgid "Ascending" +msgstr "Nouseva" -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" +#: lib/RT/Queue_Overlay.pm:97 +msgid "Assign and remove custom fields" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Article not found" +#: lib/RT/Queue_Overlay.pm:97 +msgid "AssignCustomFields" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 -msgid "Ascending" -msgstr "Nouseva" - -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "Liitä" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "Liitä tiedosto" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "Liitä tiedosto" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 #. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Liitteen '%1' lataaminen ei onnistunut" -#: lib/RT/Transaction_Overlay.pm:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "Liitetiedosto luotu" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "Liitetiedoston nimi" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "Liitetiedostot" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" msgstr "" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "elo" @@ -881,10 +840,6 @@ msgstr "elo" msgid "August" msgstr "elokuu" -#: NOT FOUND IN SOURCE -msgid "AuthSystem" -msgstr "" - #: etc/initialdata:221 msgid "Autoreply" msgstr "" @@ -893,14 +848,6 @@ msgstr "" msgid "Autoreply To Requestors" msgstr "Automaattivastaus tilaajille" -#: NOT FOUND IN SOURCE -msgid "AutoreplyToRequestors" -msgstr "" - -#: html/Search/Elements/EditFormat:4 -msgid "Available Columns" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Virheellinen PGP allekirjoitus: %1\\n" @@ -917,136 +864,133 @@ msgstr "Virheellistä dataa kentässä %1" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Virheellinen tapahtuman numero liitetiedostolle. %1 pitäisi olla %2\\n" -#: 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 +#: 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 "Perustiedot" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "Piilokopio" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "Muista tallentaa muutokset" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "ennen" -#: NOT FOUND IN SOURCE -msgid "Begin Approval" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" msgstr "" #: etc/initialdata:217 msgid "Blank" msgstr "Tyhjä" +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "Osoite tähän kyselyyn (selaimen kirjanmerkkeihin)" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" msgstr "" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "Lyhyet otsikot" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "Tapausten ryhmäpäivitys" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "Järjestelmäkäyttäjien muokkaus ei ole sallittua" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" msgstr "Näkeekö toimeksiantaja tämän työjonon" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "Kentän lisääminen ilman nimeä ei onnistu" -#: html/Search/Build.html:694 +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" +msgstr "" + +#: html/Search/Build.html:761 msgid "Can't find a saved search to work with" msgstr "" -#: lib/RT/Link_Overlay.pm:126 +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "Tapausta ei voi linkittää itseensä" -#: lib/RT/Ticket_Overlay.pm:2716 +#: NOT FOUND IN SOURCE msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Et voi yhdistää jo yhdistettyyn tapaukseen. Sinun ei pitäisi saada tätä virhettä koskaan." -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" msgstr "" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "Sekä juuren ja kohteen määritteleminen samalla ei ole mahdollista" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "Käyttäjää ei voitu luoda: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "Kopio" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "Muuta salasana" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/Elements/Submit:100 +msgid "Check All" +msgstr "" + +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "Valitse laatikko poistaaksesi" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "Valitse laatikko peruaksesi oikeuden" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "Lapset" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "Kaupunki" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" +#: html/Elements/Submit:102 +msgid "Clear All" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "Suljettu" -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Suljetut tapaukset" -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "" @@ -1054,11 +998,11 @@ msgstr "" msgid "Command not understood!\\n" msgstr "Komentoa ei ymmärretty!\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "Kommentoi" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "Kommenttien osoite" @@ -1066,11 +1010,11 @@ msgstr "Kommenttien osoite" msgid "Comment not recorded" msgstr "Kommenttia ei tallennettu" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "Kommentoi tapauksia" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "" @@ -1078,11 +1022,11 @@ msgstr "" msgid "Comments" msgstr "Kommentit" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "Kommentti (ei lähetetä tilaajille)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "Kommentti (ei lähetetä tilaajille)" @@ -1090,15 +1034,15 @@ msgstr "Kommentti (ei lähetetä tilaajille)" msgid "Comments about %1" msgstr "Kommentit kohteesta %1" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "Kommentit tästä käyttäjästä" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "Kommentit lisätty" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "Suorita tumppi" @@ -1106,23 +1050,23 @@ msgstr "Suorita tumppi" msgid "Compile Restrictions" msgstr "Kokoa rajoitukset" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "Ehto" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "" -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "Ehtoa ei löydetty" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "Ylläpito" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "Vahvista" @@ -1134,19 +1078,15 @@ msgstr "Yhteystietojärjestelmä" msgid "Contacted date '%1' could not be parsed" msgstr "Järjestelmä ei ymmärrä päivää '%1'" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "Sisältö" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Coould not create group" -msgstr "" - -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" msgstr "" @@ -1158,7 +1098,7 @@ msgstr "" msgid "Correspondence Address" msgstr "Kirjeenvaihdon osoite" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "Kirjeenvaihto lisätty" @@ -1166,7 +1106,7 @@ msgstr "Kirjeenvaihto lisätty" msgid "Correspondence not recorded" msgstr "Vastausta ei tallennettu" -#: lib/RT/Ticket_Overlay.pm:3471 +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. " msgstr "Uuden tiedon lisääminen kenttään epäonnistui" @@ -1174,36 +1114,46 @@ msgstr "Uuden tiedon lisääminen kenttään epäonnistui" msgid "Could not add new custom field value for ticket. %1 " msgstr "Uuden kentän lisäys tapaukselle epäonnistui. %1 " -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "" + +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " msgstr "Omistajaa ei voitu vaihtaa." -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "Uuden kentän lisääminen epäonnistui" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "Ryhmän luominen epäonnistui" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" msgstr "Pohjan luonti epäonnistui: %1" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "Tapauksen luonti epäonnistui. Työjonoa ei ole asetettu" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" msgstr "Käyttäjän luonti epäonnistui" -#: NOT FOUND IN SOURCE -msgid "Could not create watcher for requestor" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Could not find a ticket with id %1" msgstr "Tapausta numerolla %1 ei löytynyt." @@ -1212,11 +1162,11 @@ msgstr "Tapausta numerolla %1 ei löytynyt." msgid "Could not find group %1." msgstr "Ryhmää %1 ei löytynyt." -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "Käyttäjää ei löydetty eikä pystytty luomaan" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "Tätä toimeksiantajaa ei löytynyt" @@ -1224,21 +1174,34 @@ msgstr "Tätä toimeksiantajaa ei löytynyt" msgid "Could not find user %1." msgstr "Käyttäjää %1 ei löytynyt." -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/CustomFields/Objects.html:69 +msgid "Could not load CustomField %1" +msgstr "" + +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "Ryhmän lataaminen ei onnistunut" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Ei voinut tehdä toimeksiantajaa %1:ksi tälle työjonolle" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Ei voinut tehdä toimeksiantajaa tälle tapaukselle: %1" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Toimeksiantajaa ei voitu poistaa tältä työjonolta: %1" @@ -1247,15 +1210,15 @@ msgstr "Toimeksiantajaa ei voitu poistaa tältä työjonolta: %1" msgid "Could not remove that principal as a %1 for this ticket" msgstr "Toimeksiantajaa ei voitu poistaa tältä tapaukselta: %1" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" msgstr "" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" msgstr "Jäsenen lisääminen ryhmään ei onnistunut" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Tapahtuman luominen ei onnistunut: %1" @@ -1268,15 +1231,15 @@ msgstr "Järjestelmä ei gpg:n vastauksesta ymmärtänyt mitä tehdä\\n" msgid "Couldn't find group\\n" msgstr "Ryhmää ei löytynyt\\n" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" msgstr "Riviä ei löytynyt" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" msgstr "Toimeksiantajaa ei löytynyt" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" msgstr "Arvoa ei löytynyt" @@ -1288,23 +1251,21 @@ msgstr "Tarkkailijaa ei löytynyt" msgid "Couldn't find user\\n" msgstr "Käyttäjää ei löytynyt\\n" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Ei onnistuttu lataamaan käyttäjää %1 tietokannasta.\\n" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Couldn't load KeywordSelects." -msgstr "" - #: NOT FOUND IN SOURCE msgid "Couldn't load RT config file '%1' %2" msgstr "RT-asetustiedoston lataaminen ei onnistunut:'%1' %2" @@ -1313,21 +1274,26 @@ msgstr "RT-asetustiedoston lataaminen ei onnistunut:'%1' %2" msgid "Couldn't load Scrips." msgstr "Toimintojen lataaminen ei onnistunut." -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" msgstr "Ryhmän %1 lataaminen ei onnistunut" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "Linkin lataaminen ei onnistunut" -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: 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 "Työjonon lataaminen ei onnistunut" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" msgstr "Työjonon %1 lataaminen ei onnistunut" @@ -1344,16 +1310,26 @@ msgstr "Pohjan lataaminen ei onnistunut" msgid "Couldn't load that user (%1)" msgstr "Tämän käyttäjän lataaminen ei onnistunut (%1)" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Tapauksen '%1' lataaminen ei onnistunut" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "Maa" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "Luo" @@ -1361,20 +1337,16 @@ msgstr "Luo" msgid "Create Tickets" msgstr "Luo tapauksia" -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" - -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "Luo kenttä" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Luo kenttä työjonolle %1" -#: html/Admin/Global/CustomField.html:47 +#: NOT FOUND IN SOURCE msgid "Create a CustomField which applies to all queues" msgstr "Luo kenttä, jota sovelletaan kaikkiin työjonoihin" @@ -1382,19 +1354,15 @@ msgstr "Luo kenttä, jota sovelletaan kaikkiin työjonoihin" msgid "Create a new Custom Field" msgstr "Luo uusi kenttä" -#: NOT FOUND IN SOURCE -msgid "Create a new article" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create a new global scrip" msgstr "Luo uusi yleinen toiminto" -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "Luo uusi ryhmä" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "Luo uusi henkilökohtainen ryhmä" @@ -1410,15 +1378,15 @@ msgstr "Luo uusi toiminto" msgid "Create a new template" msgstr "Luo uusi pohja" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "Luo uusi tapaus" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "Luo uusi käyttäjä" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "Luo uusi työjono" @@ -1430,27 +1398,19 @@ msgstr "Luo työjono nimeltään" msgid "Create a request" msgstr "Luo tapaus" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Luo toiminto työjonolle %1" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "Luo pohja" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Luonti epäonnistui %1 / %2 / %3 " @@ -1463,19 +1423,19 @@ msgstr "Luonti epäonnistui: %1/%2/%3" msgid "Create new tickets based on this scrip's template" msgstr "Luo uusia tapauksia tämän toiminnon pohjalta" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "Luo tapaus" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" msgstr "Luo tapauksia tähän työjonoon" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "Luo, muokkaa ja poista kenttiä" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" msgstr "Luo, poista ja muokkaa työjonoja" @@ -1483,56 +1443,52 @@ msgstr "Luo, poista ja muokkaa työjonoja" msgid "Create, delete and modify the members of any user's personal groups" msgstr "Luo, poista ja muokkaa kenen tahansa henkilökohtaisten ryhmien jäseniä" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "Luo, poista ja muokkaa henkilökohtaisten ryhmien jäseniä" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "Luo, poista ja muokkaa käyttäjiä" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "Luotu" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Luotu kenttä %1" -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Luotu pohja %1" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" msgstr "" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "Tämänhetkiset suhteet" -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "Tämänhetkinen toiminto" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "Tämänhetkiset jäsenet" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "Tämänhetkiset oikeudet" @@ -1540,60 +1496,59 @@ msgstr "Tämänhetkiset oikeudet" msgid "Current search criteria" msgstr "Tämänhetkiset hakumääritteet" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "Tämänhetkiset tarkkailijat" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) -msgid "Custom Field #%1" -msgstr "" - -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "Kentät" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) +msgid "Custom Fields for %1" +msgstr "" + +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: NOT FOUND IN SOURCE msgid "Custom field %1 %2 %3" msgstr "Kenttä %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Kentällä %1 on arvo" -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Kentällä %1 ei ole arvoa" -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Kenttää %1 ei löytynyt" -#: html/Admin/Elements/EditCustomFields:195 +#: NOT FOUND IN SOURCE msgid "Custom field deleted" msgstr "Kenttä poistettu" -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" msgstr "Kenttää ei löytynyt" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "Kentän arvoa %1 ei löytynyt kentälle %2" @@ -1602,31 +1557,27 @@ msgstr "Kentän arvoa %1 ei löytynyt kentälle %2" msgid "Custom field value changed from %1 to %2" msgstr "Kentän arvo muutettu arvosta %1 arvoon" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "Kentän arvoa ei pystytty poistamaan" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "Kentän arvoa ei löydetty" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "Kentän arvo poistettu" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Data error" -msgstr "" - -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "Päivät" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "joulu" @@ -1634,19 +1585,15 @@ msgstr "joulu" msgid "December" msgstr "joulukuu" -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "" - #: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" msgstr "" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" msgstr "" @@ -1666,76 +1613,72 @@ msgstr "" msgid "Default transaction template" msgstr "Oletustapahtumapohja" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: NOT FOUND IN SOURCE msgid "Default: %1/%2 changed from %3 to %4" msgstr "Oletus: %1/%2 muutettu arvosta %3 arvoon %4" -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "Delegoi oikeuksia" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "Poista" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" msgstr "Poista tapaukset" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:162 +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Deleting this object could break referential integrity" msgstr "Tämän objektin poistaminen saattaa rikkoa tietokannan viitteet" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "Tämän objektin poistaminen rikkoo tietokannan viitteet" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "Tämän objektin poistaminen rikkoo tietokannan viitteet" -#: 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:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "Tästä tapauksesta riippuu" @@ -1743,43 +1686,39 @@ msgstr "Tästä tapauksesta riippuu" msgid "Dependencies: \\n" msgstr "Riippuvuudet: \\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "Riippuu tapauksesta" -#: NOT FOUND IN SOURCE -msgid "DependsOn" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "Laskeva" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "Kuvaa tapausta" -#: 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 +#: 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:56 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 "Kuvaus" @@ -1787,31 +1726,31 @@ msgstr "Kuvaus" msgid "Details" msgstr "Yksityiskohdat" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "Näytä" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "Näytä käyttöoikeuslista" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" msgstr "Näytä työjonon toimintopohjat" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" msgstr "Näytä työjonon toiminnot" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "Näkymä" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" msgstr "" @@ -1819,15 +1758,19 @@ msgstr "" msgid "Display ticket #%1" msgstr "Näytä tapaus #%1" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" msgstr "" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "Tee mitä tahansa ja kaikki" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "Älä päivitä tätä sivua" @@ -1835,15 +1778,15 @@ msgstr "Älä päivitä tätä sivua" msgid "Don't show search results" msgstr "Älä näytä hakutuloksia" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "Lataa" -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 +msgid "Download as a tab-delimited file" msgstr "" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "Erääntyy" @@ -1859,24 +1802,32 @@ msgstr "VIRHE: Tapauksen '%1' lataaminen ei onnistunut: %2.\\n" msgid "Edit" msgstr "Muokkaa" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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 "Muokkaa työjonon %1 kenttiä" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" msgstr "" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "" + +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "Muokkaa suhteita" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" msgstr "" -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Muokkaa työjonon %1 pohjia" @@ -1885,7 +1836,7 @@ msgstr "Muokkaa työjonon %1 pohjia" msgid "Edit keywords" msgstr "Muokkaa avainsanoja" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" msgstr "" @@ -1893,7 +1844,7 @@ msgstr "" msgid "Edit scrips" msgstr "Muokkaa toimintoja" -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "Muokkaa järjestelmäpohjia" @@ -1901,15 +1852,11 @@ msgstr "Muokkaa järjestelmäpohjia" msgid "Edit templates for %1" msgstr "Muokkaa työjonon %1 pohjia" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "Muokataan työjonon %1 asetuksia" @@ -1918,17 +1865,17 @@ msgstr "Muokataan työjonon %1 asetuksia" msgid "Editing Configuration for user %1" msgstr "Muokataan käyttäjän %1 asetuksia" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Muokataan kenttää %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Muokataan ryhmän %1 jäseniä" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Muokataan henkilökohtaisen ryhmän %1 jäseniä" @@ -1937,15 +1884,15 @@ msgstr "Muokataan henkilökohtaisen ryhmän %1 jäseniä" msgid "Editing template %1" msgstr "Muokataan pohjaa %1" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "Joko juuri tai kohde täytyy olla määritelty" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "Sähköposti" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "Sähköpostiosoite on jo käytössä" @@ -1957,76 +1904,61 @@ msgstr "Sähköpostiosoite" msgid "EmailEncoding" msgstr "Sähköpostin koodaus" -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Aktiivinen (rastin poistaminen passivoi kentän)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 msgid "Enabled (Unchecking this box disables this group)" msgstr "Aktiivinen (rastin poistaminen passivoi ryhmän)" -#: html/Admin/Queues/Modify.html:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Aktiivinen (rastin poistaminen passivoi työjonon)" -#: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:97 -msgid "Enabled Custom Fields" -msgstr "" - -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" msgstr "Aktiiviset työjonot" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "Aktivoitu tila %1" -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) +msgid "Enabled status: %1" msgstr "" -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "Anna useampi arvo" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." msgstr "" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "Anna yksi arvo" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." msgstr "" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Lisää tapausten numerot tai www-linkit. Erota useammat välilyönneillä." -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: lib/RT/CustomField_Overlay.pm:66 +msgid "Enter up to %1 values" +msgstr "" + +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "Virhe" -#: NOT FOUND IN SOURCE -msgid "Error adding watcher" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "Virhe parametreissa: Queue->AddWatcher" @@ -2034,11 +1966,11 @@ msgstr "Virhe parametreissa: Queue->AddWatcher" msgid "Error in parameters to Queue->DelWatcher" msgstr "Virhe parametreissa: Queue->DelWatcher" -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Virhe parametreissa: Ticket->AddWatcher" @@ -2046,15 +1978,15 @@ msgstr "Virhe parametreissa: Ticket->AddWatcher" msgid "Error in parameters to Ticket->DelWatcher" msgstr "Virhe parametreissa: Ticket->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" msgstr "" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" msgstr "" -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" msgstr "" @@ -2062,7 +1994,7 @@ msgstr "" msgid "Everyone" msgstr "Kaikki" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "" @@ -2074,32 +2006,33 @@ msgstr "Ulkoinen autentikointitunnus" msgid "ExternalContactInfoId" msgstr "Ulkoinen yhteystietotunnus" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "Lisätieto" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" msgstr "" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "'Erioikeutettu'-valeryhmää ei löytynyt" -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "'Erioikeudeton'-valeryhmää ei löytynyt" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "helmi" @@ -2107,43 +2040,67 @@ msgstr "helmi" msgid "February" msgstr "helmikuu" -#: html/Elements/SelectAttachmentField:28 +#: 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 "" + +#: 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 "Fin" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "Loppuprioriteetti" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: NOT FOUND IN SOURCE msgid "Find group whose" msgstr "Etsi ryhmä, jonka" +#: 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 "Etsi uudet/avoimet tapaukset" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "Etsi käyttäjät, joiden" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "Hae tapauksia" -#: NOT FOUND IN SOURCE -msgid "Finish Approval" -msgstr "" - -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "Ensimmäinen" @@ -2151,24 +2108,28 @@ msgstr "Ensimmäinen" msgid "First page" msgstr "Viimeinen sivu" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "Pakota muutos" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "" @@ -2176,57 +2137,49 @@ msgstr "" msgid "FreeformContactInfo" msgstr "Vapaamuotoiset yhteystiedot" -#: lib/RT/CustomField_Overlay.pm:37 -msgid "FreeformMultiple" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:36 -msgid "FreeformSingle" -msgstr "" - -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "Pe" -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "Kokonaiset otsikot" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Getting the current user from a pgp sig\\n" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "Annettu käyttäjälle %1" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "Yleiset" -#: NOT FOUND IN SOURCE -msgid "Global Keyword Selections" +#: html/Admin/Elements/EditCustomFields:55 +msgid "Global Custom Fields" msgstr "" #: NOT FOUND IN SOURCE msgid "Global Scrips" msgstr "Yleiset toiminnot" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Yleinen pohja: %1" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" msgstr "" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "Ok!" @@ -2238,11 +2191,11 @@ msgstr "Hyvä PGP-allekirjoitus käyttäjältä %1\\n" msgid "Goto page" msgstr "Siirry sivulle" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "Siirry tapaukseen" -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "Ryhmä" @@ -2250,11 +2203,11 @@ msgstr "Ryhmä" msgid "Group %1 %2: %3" msgstr "Ryhmä %1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "Ryhmän oikeudet" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "Ryhmässä on jo jäsen" @@ -2262,20 +2215,20 @@ msgstr "Ryhmässä on jo jäsen" msgid "Group could not be created." msgstr "Ryhmää ei voitu luoda." -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Ryhmää ei voitu luoda: %1" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "Ryhmä luotu" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "Ryhmässä ei ole sellaista jäsentä" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "Ryhmää ei löydetty" @@ -2287,53 +2240,67 @@ msgstr "Ryhmää ei löydetty.\\n" msgid "Group not specified.\\n" msgstr "Ryhmää ei määritelty.\\n" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "Ryhmät" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "Ryhmät eivät voi olla jäsentensä jäseniä" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: html/Admin/Groups/index.html:82 +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 "Hei!" -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "Hei, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "Historia" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" +#: 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 "Kotipuhelin" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "Kotisivu" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "" -#: NOT FOUND IN SOURCE -msgid "I have [quant,_1,concrete mixer]." +#: html/Search/Build.html:637 +msgid "I'm lost" msgstr "" -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "Numero" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "Identiteetti" @@ -2341,80 +2308,80 @@ msgstr "Identiteetti" msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Jos hyväksyntä hylätään, hylkää alkuperäinen ja poista siitä riippuvat hyväksynnät" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." msgstr "" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." msgstr "" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 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:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" msgstr "Jos olet muuttanut tietoja, muista tallentaa" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "Kelpaamaton arvo %1" -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "Muuttumaton kenttä" #: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Sisällytä passiiviset kentät listaukseen" -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." msgstr "" -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." msgstr "Sisällytä listaukseen myös passiiviset työjonot." -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "Sisällytä listaukseen myös passiiviset käyttäjät." -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "Alkuprioriteetti" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "Virhe syötteessä" -#: NOT FOUND IN SOURCE -msgid "Interest noted" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "Sisäinen virhe" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Sisäinen virhe: %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "Ryhmän tyyppi ei kelpaa" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "Kelpaamaton oikeus" @@ -2422,7 +2389,7 @@ msgstr "Kelpaamaton oikeus" msgid "Invalid Type" msgstr "Kelpaamaton tyyppi" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "Kelpaamatonta dataa" @@ -2430,44 +2397,44 @@ msgstr "Kelpaamatonta dataa" msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Omistaja ei kelpaa. Asetetaan oletusasetusten mukaan 'ei kukaan'" -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "Kelpaamaton työjono" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "Kelpaamaton oikeus" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "Kelpaamaton arvo kohteelle %1" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "Kelpaamaton arvo kentälle" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "Kelpaamaton arvo tilalle" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "" -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Items pending my approval" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" msgstr "" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "Tammi" @@ -2475,11 +2442,11 @@ msgstr "Tammi" msgid "January" msgstr "tammikuu" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "Liity tai jätä ryhmä" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "Heinä" @@ -2487,11 +2454,11 @@ msgstr "Heinä" msgid "July" msgstr "Heinäkuu" -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "Jätti" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "kesä" @@ -2507,23 +2474,23 @@ msgstr "Avainsana" msgid "Lang" msgstr "Kieli" -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" msgstr "" -#: html/Ticket/Elements/Tabs:74 +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "" + +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "Viimeinen" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "Viimeinen yhteydenotto" -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" - -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "Viimeksi otettu yhteyttä" @@ -2531,27 +2498,23 @@ msgstr "Viimeksi otettu yhteyttä" msgid "Last Notified" msgstr "Viimeksi huomautettu" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "Viimeksi päivitetty" -#: NOT FOUND IN SOURCE -msgid "LastUpdated" -msgstr "" - -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" msgstr "" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "Jäljellä" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "Päästä tämä käyttäjä sisään RT:iin" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" msgstr "Tälle käyttäjälle voidaan antaa oikeuksia" @@ -2563,29 +2526,33 @@ msgstr "Rajoitetaan omistajaa %1 %2" msgid "Limiting queue to %1 %2" msgstr "Rajoitetaan työjonoa %1 %2" -#: lib/RT/Record.pm:1086 +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "" + +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "Linkki on jo olemassa" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "Linkkiä ei voitu luoda" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "Linkki luotu (%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "Linkki poistettu (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "Linkkiä ei löydetty" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Linkitä tapaus #%1" @@ -2594,105 +2561,122 @@ msgstr "Linkitä tapaus #%1" msgid "Link ticket %1" msgstr "Linkitä tapaus #%1" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "Linkit" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" msgstr "" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" msgstr "" -#: html/Admin/Tools/Configuration.html:19 +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "" + +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "Sijainti" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Lokihakemistoa %1 ei löytynyt tai kirjoittaminen ei onnistunut.\\n RT ei voi toimia." -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Olet kirjautunut sisään tunnuksella %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "Kirjaudu sisään" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "Kirjaudu ulos" -#: html/Search/Bulk.html:83 +#: lib/RT/CustomField_Overlay.pm:866 +msgid "Lookup type mismatch" +msgstr "" + +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "Aseta omistaja" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "Aseta tila" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "Aseta erääntymisaika" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "Aseta päätösaika" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" msgstr "Aseta aloitusaika" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" msgstr "Aseta alkuaika" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "Aseta oltu yhteydessä -aika" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "Aseta prioriteetti" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "Aseta työjono" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "Aseta otsikko" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" +#: lib/RT/Group_Overlay.pm:177 +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:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" msgstr "Hallinnoi ryhmiä ja jäsenyyksiä" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" msgstr "Hallinnoi yleisiä asetuksia, jotka vaikuttavat kaikkiin työjonoihin" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" msgstr "Hallinnoi työjonoja ja työjonokohtaisia asetuksia" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "Hallinnoi käyttäjiä ja salasanoja" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "Maalis" @@ -2704,100 +2688,105 @@ msgstr "Maaliskuu" msgid "May" msgstr "Toukokuu" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "Touko" -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" msgstr "" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "Jäsen lisätty" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "Jäsen poistettu" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "Jäsentä ei poistettu" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "Jäsen:" -#: NOT FOUND IN SOURCE -msgid "MemberOf" -msgstr "" - -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "Jäsenet" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2813 +#: 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:2849 msgid "Merge Successful" msgstr "Yhdistäminen onnistui" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Yhdistäminen epäonnistui. EffectiveId:n arvoa ei pystytty asettamaan" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "Yhdistä" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" msgstr "" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "Viesti" -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" msgstr "" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." msgstr "" -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "" + +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "Kännykkä" @@ -2805,15 +2794,7 @@ msgstr "Kännykkä" msgid "MobilePhone" msgstr "Kännykkä" -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "Muokkaa käyttöoikeusluetteloa" @@ -2821,27 +2802,37 @@ msgstr "Muokkaa käyttöoikeusluetteloa" msgid "Modify Custom Field %1" msgstr "Muokkaa kenttää %1" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +#: 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 "Muokkaa kaikkia työjonoja koskevia kenttiä" -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: 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:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" msgstr "" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" msgstr "" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "Muokkaa tämän työjonon toimintopohjia" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" msgstr "Muokkaa tämän työjonon toimintoja" @@ -2853,164 +2844,159 @@ msgstr "Muokkaa järjestelmän käyttöoikeusluetteloa" msgid "Modify Template %1" msgstr "Muokkaa pohjaa %1" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: 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:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:52 -msgid "Modify a CustomField which applies to all queues" -msgstr "" - -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Muokkaa työjonon %1 toimintoa" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "Muokkaa toimintoa, jota sovelletaan kaikkiin työjonoihin" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify dates for # %1" +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) +msgid "Modify associated objects for %1" msgstr "" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Muokkaa tapauksen #%1 päiviä" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Muokkaa tapauksen #%1 päiviä" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: 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 "Muokkaa ryhmien yleisiä oikeuksia" -#: html/Admin/Global/GroupRights.html:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." msgstr "Muokkaa ryhmien yleisiä oikeuksia." -#: 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 "Muokkaa yleisiä toimintoja" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 msgid "Modify global user rights" msgstr "Muokkaa yleisiä käyttäjien oikeuksia" -#: html/Admin/Global/UserRights.html:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "Muokkaa käyttäjien yleisiä oikeuksia." -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "Muokkaa ryhmän metatietoja tai poista ryhmä" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" msgstr "" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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 "Muokkaa ryhmän %1 oikeuksia." -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Muokkaa ryhmän oikeuksia työjonossa %1" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "Muokkaa tämän ryhmän jäsenlistaa" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "Muokkaa omaa RT-tunnustasi" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Muokkaa työjonoon %1 liittyviä käyttäjiä" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" msgstr "Muokkaa tapaukseen %1 liittyviä käyttäjiä" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Muokkaa työjonoon %1 liittyviä toimintoja" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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 "Muokkaa toimintoja, joita sovelletaan kaikkiin työjonoihin" -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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 "Muokkaa pohjaa %1" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "Muokkaaa pohjia, joita sovelletaan kaikkiin työjonoihin" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" msgstr "Muokkaa ryhmää %1" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "Muokkaa työjonon tarkkailjoita" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Muokkaa käyttäjää %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Muokkaa tapausta #%1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Muokkaa tapausta #%1" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "Muokkaa tapauksia" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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 "Muokkaa ryhmän %1 käyttäjien oikeuksia" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Muokkaa työjonoon %1 liittyviä käyttäjien oikeuksia" @@ -3019,60 +3005,64 @@ msgstr "Muokkaa työjonoon %1 liittyviä käyttäjien oikeuksia" msgid "Modify watchers for queue '%1'" msgstr "Muokkaa tapauksen %1 seuraajia" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" msgstr "" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "Ma" -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "Lisätietoa: %1" -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "Siirrä alas" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "Siirrä ylös" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "Monta" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "'Nimi' täytyy määritellä" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" msgstr "" @@ -3081,47 +3071,39 @@ msgstr "" msgid "My Approvals" msgstr "Hyväksyntäni" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "Hyväksyntäni" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" msgstr "" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "Nimi" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "Nimi on käytössä" -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Tarvitsee järjestelmän ylläpitäjän hyväksynnän" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "Ei ikinä" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "Uusi" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "Uusi linkki" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "Uusi salasana" @@ -3129,7 +3111,7 @@ msgstr "Uusi salasana" msgid "New Pending Approval" msgstr "" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" msgstr "" @@ -3137,27 +3119,23 @@ msgstr "" msgid "New Search" msgstr "Uusi haku" -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "Uusi ryhmä" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "Uusi salasana" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "Uusi salasana" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "Uusi työjono" @@ -3165,11 +3143,11 @@ msgstr "Uusi työjono" msgid "New request" msgstr "Uusi tapaus" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "Uudet oikeudet" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "Uusi toiminto" @@ -3177,27 +3155,27 @@ msgstr "Uusi toiminto" msgid "New search" msgstr "Uusi haku" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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 "Uusi pohja" -#: html/SelfService/Elements/Tabs:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "Uutta tapausta ei löydy" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "Uusi käyttäjä" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "Uusi käyttäjä pyydetty" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "Uusi tarkkailija" @@ -3205,11 +3183,11 @@ msgstr "Uusi tarkkailija" msgid "New window setting" msgstr "Uusi ikkunan asetus" -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "Seuraava" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" msgstr "" @@ -3221,43 +3199,39 @@ msgstr "Seuraava sivu" msgid "NickName" msgstr "Lempinimi" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "Lempinimi" -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "Ei kenttiä" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" msgstr "" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" msgstr "Ryhmää ei ole määritelty" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" msgstr "" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" msgstr "Työjonoa ei ole määritelty" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "Käyttäjää ei löydy. Ole hyvä ja ota yhteyttä RT:n ylläpitäjään.\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "Ei pohjaa" @@ -3269,11 +3243,11 @@ msgstr "Tapausta ei määritelty. Perutaan tapaus " msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "Tapausta ei määritelty. Poistutaan tapauksen muokkauksesta\\n\\n" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "" @@ -3281,7 +3255,7 @@ msgstr "" msgid "No command found\\n" msgstr "Komentoa ei löytynyt\\n" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" msgstr "Käyttäjälle ei ole annettu kommentteja" @@ -3289,68 +3263,77 @@ msgstr "Käyttäjälle ei ole annettu kommentteja" msgid "No correspondence attached" msgstr "Ei kirjeenvaihtoa liitettynä" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "Ei kuvausta kohteelle %1" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "Ryhmää ei ole määritelty" -#: lib/RT/Ticket_Overlay.pm:2475 +#: html/Admin/Groups/index.html:52 +msgid "No groups matching search criteria found." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" msgstr "" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "Salasanaa ei ole asetettu" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" msgstr "Ei oikeutta luoda työjonoja" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "Ei oikeutta luoda tapauksia työjonoon '%1'" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "Ei oikeutta luoda käyttäjiä" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" msgstr "Ei oikeutta tarkastella tätä tapausta" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" msgstr "Ei oikeutta päivittää tätä tapausta" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "Toimeksiantajaa ei ole määritelty" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." msgstr "Toimeksiantajia ei ole valittu." -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." msgstr "Yhtään hakukriteerit täyttävää tapausta ei löytynyt." -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "Oikeuksia ei löytynyt" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "Ei myönnettyjä oikeuksia." -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." msgstr "Ei työstettävää hakua" -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" msgstr "" @@ -3358,7 +3341,7 @@ msgstr "" msgid "No ticket id specified" msgstr "Tapauksen numeroa ei ole määritelty" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "Tapahtuman tyyppiä ei ole määritelty" @@ -3366,7 +3349,7 @@ msgstr "Tapahtuman tyyppiä ei ole määritelty" msgid "No user or email address specified" msgstr "Käyttäjää tai sähköpostiosoitetta ei ole määritelty" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "Yhtään hakukriteerit täyttävää käyttäjää ei löytynyt." @@ -3374,15 +3357,15 @@ msgstr "Yhtään hakukriteerit täyttävää käyttäjää ei löytynyt." msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Ei kelpaa RT-käyttäjäksi. RT:n cvs-käsittelijä irrottautuu. Ole hyvä ja ota yhteyttä RT:n ylläpitäjään.\\n" -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "Ei kukaan" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "Olematon kenttä?" @@ -3390,15 +3373,15 @@ msgstr "Olematon kenttä?" msgid "Not logged in" msgstr "Sisäänkirjautumaton" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "Et ole kirjautunut järjestelmään" -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "Ei asetettu" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "Ei vielä toteutettu." @@ -3406,11 +3389,11 @@ msgstr "Ei vielä toteutettu." msgid "Not yet implemented...." msgstr "Ei vielä toteutettu..." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "Merkintöjä" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "Ilmoitusta ei pystytty lähettämään" @@ -3482,7 +3465,7 @@ msgstr "" msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "Marras" @@ -3490,15 +3473,37 @@ msgstr "Marras" msgid "November" msgstr "marraskuu" -#: lib/RT/Record.pm:200 +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "" + +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "" -#: lib/RT/Date.pm:420 +#: lib/RT/Record.pm:121 +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:901 +msgid "Object type mismatch" +msgstr "" + +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "Loka" @@ -3506,19 +3511,19 @@ msgstr "Loka" msgid "October" msgstr "lokakuu" -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" msgstr "" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" msgstr "" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" msgstr "" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "-" @@ -3558,21 +3563,21 @@ msgstr "" msgid "On Transaction" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "Näytä vain pyynnöt, jotka on luotu jälkeen %1" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "Näytä vain pyynnöt, jotka on luotu ennen %1" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "Avoin" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "Avaa" @@ -3580,7 +3585,7 @@ msgstr "Avaa" msgid "Open requests" msgstr "Avoimet tapaukset" -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" msgstr "" @@ -3596,7 +3601,7 @@ msgstr "Avoimet tapaukset (listasta) toisessa ikkunassa" msgid "Open tickets on correspondence" msgstr "Avaa tapaukset, kun esiintyy kirjeenvaihtoa" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" msgstr "" @@ -3604,40 +3609,36 @@ msgstr "" msgid "Ordering and sorting" msgstr "Järjestäminen" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "Laitos" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Alkuperäinen tapaus: #%1" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" msgstr "" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" msgstr "" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "Ajan kuluessa prioriteetti muuttuu kohti" -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "Omat tapaukset" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" msgstr "Omistaja" @@ -3645,11 +3646,11 @@ msgstr "Omistaja" msgid "Owner changed from %1 to %2" msgstr "Omistaja vaihdettu tunnuksesta %1 tunnukseen %2" -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." msgstr "" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Omistaja pakolla vaihdettu tunnuksesta %1 tunnukseen %2" @@ -3658,12 +3659,12 @@ msgstr "Omistaja pakolla vaihdettu tunnuksesta %1 tunnukseen %2" msgid "Owner is" msgstr "Omistaja" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" msgstr "" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "Hakulaite" @@ -3671,36 +3672,53 @@ msgstr "Hakulaite" msgid "PagerPhone" msgstr "Hakulaite-puhelin" -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "Isät" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "Salasana" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "Salasanan muistutus" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "Salasana liian lyhyt" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Salasana: %1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." msgstr "" -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "Käyttäjät" @@ -3708,27 +3726,27 @@ msgstr "Käyttäjät" msgid "Perform a user-defined action" msgstr "" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" msgstr "" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "Pääsy kielletty" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "Omat ryhmät" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "Omat ryhmät" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "Omat ryhmät:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "Puhelinnumerot" @@ -3736,7 +3754,7 @@ msgstr "Puhelinnumerot" msgid "Placeholder" msgstr "Paikanpitäjä" -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "Asetukset" @@ -3744,15 +3762,15 @@ msgstr "Asetukset" msgid "Prefs" msgstr "Asetukset" -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "Valmistele tumppi" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "Edellinen" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" msgstr "" @@ -3764,20 +3782,20 @@ msgstr "Edellinen sivu" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "Toimeksiantajaa %1 ei löytynyt" -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "Prioriteetti" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "Prioriteetti alkaa arvosta" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" msgstr "" @@ -3785,36 +3803,32 @@ msgstr "" msgid "Privileged" msgstr "Erioikeutettu" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Erioikeutuksen tila: &1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "Erioikeutetut käyttäjät" -#: 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 "Valeryhmä sisäiseen käyttöön" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" msgstr "" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" msgstr "" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "Työjono" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" @@ -3824,11 +3838,7 @@ msgstr "Työjonoa %1 ei löytynyt" msgid "Queue '%1' not found\\n" msgstr "Työjonoa '%1' ei löytynyt" -#: NOT FOUND IN SOURCE -msgid "Queue Keyword Selections" -msgstr "" - -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "Työjonon nimi" @@ -3836,19 +3846,19 @@ msgstr "Työjonon nimi" msgid "Queue Scrips" msgstr "Työjonon toiminnot" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "Työjono on jo olemassa" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" msgstr "Työjonoa ei voitu luoda" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 msgid "Queue could not be loaded." msgstr "Työjonoa ei voitu ladata." -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" msgstr "Työjono luotu" @@ -3856,32 +3866,32 @@ msgstr "Työjono luotu" msgid "Queue is not specified." msgstr "Työjonoa ei määritelty" -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" msgstr "Työjonoa ei löytynyt" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "Työjonot" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" msgstr "" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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 - %2" @@ -3894,7 +3904,7 @@ msgstr "RT %1, tekijä: <a href=\"http://bestpractical.com\">Best Practical Solu msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -#: html/Admin/index.html:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "RT Ylläpito" @@ -3914,7 +3924,7 @@ msgstr "RT Konfiguraatiovirhe" msgid "RT Critical error. Message not recorded!" msgstr "RT Kriittinen virhe. Viestiä ei tallennettu!" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "RT Virhe" @@ -3922,23 +3932,15 @@ msgstr "RT Virhe" msgid "RT Received mail (%1) from itself." msgstr "RT Sai sähköpostin (%1) itseltään." -#: NOT FOUND IN SOURCE -msgid "RT Recieved mail (%1) from itself." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT Itsepalvelu / Suljetut tapaukset" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" msgstr "" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "RT yhdellä silmäyksellä" @@ -3954,19 +3956,19 @@ msgstr "RT ei löytänyt tilaajaa ulkopuolisesta tietokannasta" msgid "RT couldn't find the queue: %1" msgstr "RT ei löytänyt työjonoa: %1" +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." +msgstr "" + #: NOT FOUND IN SOURCE msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT ei pystynyt tarkistamaan tätä PGP allekirjoitusta.\\n" -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "%1: RT" -#: NOT FOUND IN SOURCE -msgid "RT for %1: %2" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT has proccessed your commands" msgstr "RT on prosessoinut antamasi komennot" @@ -3975,10 +3977,6 @@ msgstr "RT on prosessoinut antamasi komennot" 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 on tekijänoikeuslain alainen, © 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Se on jakelussa seuraavalla lisenssillä: <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-%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 "" - #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "RT luulee että tämä viesti on palautus" @@ -3991,11 +3989,7 @@ msgstr "RT prosessoi tämän viestin kuten se olisi allekirjoittamaton." 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:n sähköpostiohjaustila vaatii PGP-tunnistamista. Et allekirjoittanut (PGP) viestiä tai allekirjoitustasi ei pystytty vahvistamaan." -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "Oikea nimi" @@ -4003,38 +3997,34 @@ msgstr "Oikea nimi" msgid "RealName" msgstr "Oikea nimi" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" msgstr "" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "Viitattu jostakin" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "Viittaus johonkin" -#: NOT FOUND IN SOURCE -msgid "RefersTo" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Refine" msgstr "Päivitä" @@ -4043,44 +4033,44 @@ msgstr "Päivitä" msgid "Refine search" msgstr "Päivitä haku" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Päivitä tämä sivu %1 minuutin välein" -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "Poista kopio ylläpidolle" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "Poista kopio" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "Poista tilaaja" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "Vastaa" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" msgstr "" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "Vastaa tapauksiin" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "Tilaaja" @@ -4092,41 +4082,37 @@ msgstr "Tilaajan sähköpostiosoite" msgid "Requestor(s)" msgstr "Tilaajat" -#: NOT FOUND IN SOURCE -msgid "RequestorAddresses" -msgstr "" - -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "Tilaajat" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "Tapaus tulisi suorittaa mennessä" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" msgstr "" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "Palauta" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "Koti" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "Päätä" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Ratkaise tapaus #%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "Päätetty" @@ -4134,7 +4120,7 @@ msgstr "Päätetty" msgid "Response to requestors" msgstr "Vastaus tilaajille" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "Tulokset" @@ -4142,11 +4128,11 @@ msgstr "Tulokset" msgid "Results per page" msgstr "Tuloksia sivulle: " -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "Vahvista salasana" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" msgstr "" @@ -4154,103 +4140,105 @@ msgstr "" msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Oikeutta %1 ei löydetty %2 %3 laajuudessa %4 (%5)\\n" -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "Oikeus delegoitu" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "Oikeus myönnetty" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "Oikeus ladattu" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "Oikeutta ei voitu perua" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "Oikeutta ei löydetty" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "Oikeutta ei ladattu" -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "Oikeus peruttu" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "Oikeudet" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Oikeuksia ei voitu myöntää: %1" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "Oikeuksia ei voitu perua: %1" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "Roolit" -#: NOT FOUND IN SOURCE -msgid "RootApproval" -msgstr "" - -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" msgstr "" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "La" -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" msgstr "" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "Tallenna muutokset" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" msgstr "" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "Tallenna muutokset" -#: html/Search/Elements/EditSearches:1 +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "" + +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" msgstr "" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Toiminto #%1" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "Toiminto luotu" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" msgstr "" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "Toiminto poistettu" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "Toiminnot" @@ -4258,11 +4246,11 @@ msgstr "Toiminnot" msgid "Scrips for %1\\n" msgstr "Toiminnot työjonolle %1\\n" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" msgstr "Toiminnot, joita sovelletaan kaikkiin työjonoihin" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "Hae" @@ -4270,96 +4258,129 @@ msgstr "Hae" msgid "Search Criteria" msgstr "Hakukriteerit" -#: html/Approvals/Elements/PendingMyApproval:38 +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Search for articles" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" msgstr "" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/CustomField_Overlay.pm:100 +msgid "See custom fields" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 -msgid "SeeQueue" +#: lib/RT/CustomField_Overlay.pm:100 +msgid "SeeCustomField" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Class" +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" +#: lib/RT/Queue_Overlay.pm:92 +msgid "SeeQueue" msgstr "" -#: html/Admin/Groups/index.html:50 +#: 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 "Valitse ryhmä" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" msgstr "Valitse työjono" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +#: 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 "Valitse käyttäjä" -#: NOT FOUND IN SOURCE -msgid "Select class" +#: html/Admin/Elements/CustomFieldTabs:90 +msgid "Select custom field" msgstr "" -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 -msgid "Select custom field" +#: html/Admin/Global/CustomFields/index.html:70 +msgid "Select custom fields for all user groups" msgstr "" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: 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 "Valitse ryhmä" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "Valitse useita arvoja" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "Valitse yksi arvo" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" msgstr "Valitse työjono" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "Valitse toiminto" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "Valitse pohja" -#: html/Admin/Elements/UserTabs:46 +#: lib/RT/CustomField_Overlay.pm:61 +msgid "Select up to %1 values" +msgstr "" + +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "Valitse käyttäjä" -#: lib/RT/CustomField_Overlay.pm:35 -msgid "SelectMultiple" +#: html/Admin/Elements/EditCustomFields:58 +msgid "Selected Custom Fields" msgstr "" -#: lib/RT/CustomField_Overlay.pm:34 -msgid "SelectSingle" +#: html/Admin/CustomFields/Objects.html:59 +msgid "Selected objects" msgstr "" #: NOT FOUND IN SOURCE @@ -4410,59 +4431,51 @@ msgstr "" msgid "Sends mail to the owner" msgstr "Lähettää postia omistajalle" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "Syys" -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" - #: NOT FOUND IN SOURCE msgid "September" msgstr "syyskuu" -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" msgstr "" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" msgstr "" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" msgstr "" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "Näytä tulokset" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "Näytä perustiedot" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "Näytä yksityiskohdat" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "" @@ -4474,64 +4487,68 @@ msgstr "Näytä tapauksen kommentointi" msgid "Show ticket summaries" msgstr "Näytä tapausten yhteenvedot" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" msgstr "" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "Allekirjoitus" -#: NOT FOUND IN SOURCE -msgid "Signed in as %1" -msgstr "" - -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "Yksittäinen" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 msgid "Skip Menu" msgstr "" -#: html/Admin/Elements/AddCustomFieldValue:27 -msgid "Sort" +#: html/Search/Elements/EditFormat:78 +msgid "Small" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Sort Order" +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 +msgid "Sort" msgstr "" #: NOT FOUND IN SOURCE @@ -4546,11 +4563,7 @@ msgstr "Järjestä tulokset" msgid "SortOrder" msgstr "Lajittelujärjestys" -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" - -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" msgstr "" @@ -4562,7 +4575,7 @@ msgstr "Jäädytetty" msgid "Start page" msgstr "Etusivu" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "Aloitettu" @@ -4570,7 +4583,7 @@ msgstr "Aloitettu" msgid "Started date '%1' could not be parsed" msgstr "Aloittamisaikaa '%1' ei pystytty tulkitsemaan" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "Alkaa" @@ -4582,11 +4595,11 @@ msgstr "Alkaa mennessä" msgid "Starts date '%1' could not be parsed" msgstr "Alkamisaikaa '%1' ei pystytty tulkitsemaan" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "Tila" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "Tila" @@ -4594,110 +4607,86 @@ msgstr "Tila" msgid "Status Change" msgstr "" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" msgstr "Tila muutettu arvosta %1 arvoon %2" -#: NOT FOUND IN SOURCE -msgid "StatusChange" -msgstr "" - -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "Kaappaa" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) -msgid "Stolen from %1 " +msgid "Stolen from %1" msgstr "Kaapattu käyttäjältä %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 +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "Otsikko" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "Otsikko vaihdettu: %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "Lähetä" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Submit Workflow" -msgstr "" - -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" msgstr "Onnistui" -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" - -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "Su" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "Järjestelmä" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" msgstr "" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" msgstr "Järjestelmävirhe" -#: NOT FOUND IN SOURCE -msgid "System Error. Right not granted." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "System Error. right not granted" +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" msgstr "" -#: html/Admin/Tools/index.html:2 +#: html/Admin/Tools/index.html:47 msgid "System Tools" msgstr "" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "Järjestelmävirhe. Oikeutta ei delegoitu." -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "Järjestelmävirhe. Oikeutta ei luovutettu." -#: NOT FOUND IN SOURCE -msgid "System error. Unable to grant rights." -msgstr "" - -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "Järjestelmäryhmät" @@ -4705,40 +4694,40 @@ msgstr "Järjestelmäryhmät" msgid "SystemRolegroup for internal use" msgstr "" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "TESTIMERKKIJONO" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "Ota itselle" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "Otettu" -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "Pohja" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Pohja #%1" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "Pohja poistettu" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "Pohjaa ei löydetty" @@ -4746,11 +4735,11 @@ msgstr "Pohjaa ei löydetty" msgid "Template not found\\n" msgstr "Pohjaa ei löydetty\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "Pohja tulkittu" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "Pohjat" @@ -4758,33 +4747,33 @@ msgstr "Pohjat" msgid "Templates for %1\\n" msgstr "Pohjat työjonolle %1\\n" -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "Ei ole arvo tälle kentälle" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "Tämä on sama arvo" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" msgstr "" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Toimeksiantaja on jo %1 tälle työjonolle" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Toimeksiantaja on jo %1 tälle tapaukselle" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Toimeksiantaja ei ole %1 tälle työjonolle" @@ -4793,11 +4782,11 @@ msgstr "Toimeksiantaja ei ole %1 tälle työjonolle" msgid "That principal is not a %1 for this ticket" msgstr "Toimeksiantaja ei ole %1 tälle tapaukselle" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" msgstr "Työjonoa ei ole olemassa" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "Tapaus sisältää päättämättömiä riippuvuuksia" @@ -4805,51 +4794,47 @@ msgstr "Tapaus sisältää päättämättömiä riippuvuuksia" msgid "That user already has that right" msgstr "Käyttäjällä on jo tuo oikeus" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" msgstr "Käyttäjä omistaa jo tämän tapauksen" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "Käyttäjää ei ole olemassa" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "Käyttäjä on jo erioikeutettu" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" msgstr "Käyttäjä on jo erioikeudeton" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "Käyttäjä on nyt erioikeutettu" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" msgstr "Käyttäjä on nyt erioikeudeton" -#: NOT FOUND IN SOURCE -msgid "That user is now unprivilegedileged" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" msgstr "Käyttäjä ei voi omistaa tapauksia tuossa työjonossa" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "Ei ole numero" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "Perustiedot" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "" @@ -4857,7 +4842,7 @@ msgstr "" msgid "The comment has been recorded" msgstr "Kommentti on tallennettu" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 "" @@ -4865,27 +4850,31 @@ msgstr "" msgid "The following commands were not proccessed:\\n\\n" msgstr "Seuraavia komentoja ei suoritettu:\\n\\n" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "Uusi arvo asetettu." -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "Tapauksen omistaja" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "Tapauksen tilaaja" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "Nämä kommentit eivät ole yleisesti näkyvillä käyttäjälle" -#: html/Admin/Tools/Configuration.html:5 +#: lib/RT/CustomField_Overlay.pm:912 +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:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." msgstr "" @@ -4893,15 +4882,15 @@ msgstr "" msgid "This ticket %1 %2 (%3)\\n" msgstr "Tämä tapaus %1 %2 (%3)\\n" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "" -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "Tämä tapahtuma ei näytä sisältävän mitään" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Käyttäjän %1 tärkeintä tapausta" @@ -4910,7 +4899,7 @@ msgstr "Käyttäjän %1 tärkeintä tapausta" msgid "This user's 25 highest priority tickets" msgstr "Käyttäjän 25 tärkeintä tapausta" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "To" @@ -4918,28 +4907,24 @@ msgstr "To" msgid "Ticket # %1 %2" msgstr "Tapaus # %1 %2" -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 Jumbo update: %2" -msgstr "" - -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Tapauksen #%1 jättipäivitys: %2" -#: html/Approvals/Elements/ShowDependency:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Tapaus #%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Tapaus %1 luotu työjonoon '%2'" @@ -4948,12 +4933,16 @@ msgstr "Tapaus %1 luotu työjonoon '%2'" msgid "Ticket %1 loaded\\n" msgstr "Tapaus %1 ladattu\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Tapaus %1: %2" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: 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 "Tapauksen historia # %1 %2" @@ -4966,23 +4955,27 @@ msgstr "Tapauksen numero" msgid "Ticket Resolved" msgstr "" +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 +msgid "Ticket Transactions" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Tapauksen liitteen" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "Tapauksen sisältö" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "Tapauksen sisällön tyyppi" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "Tapausta ei voitu luoda sisäisestä virheestä johtuen" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "Tapaus luotu" @@ -4990,7 +4983,7 @@ msgstr "Tapaus luotu" msgid "Ticket creation failed" msgstr "Tapauksen luonti epäonnistui" -#: lib/RT/Transaction_Overlay.pm:502 +#: NOT FOUND IN SOURCE msgid "Ticket deleted" msgstr "Tapaus poistettu" @@ -4998,11 +4991,7 @@ msgstr "Tapaus poistettu" msgid "Ticket id not found" msgstr "Tapauksen numeroa ei löytynyt" -#: NOT FOUND IN SOURCE -msgid "Ticket killed" -msgstr "" - -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" msgstr "" @@ -5018,58 +5007,53 @@ msgstr "Tapauksen tila vaihdettu" msgid "Ticket watchers" msgstr "Tapauksen tarkkailijat" -#: html/Elements/Tabs:46 -msgid "Tickets" -msgstr "Tapaukset" - -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) -msgid "Tickets %1 %2" +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) -msgid "Tickets %1 by %2" -msgstr "" +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 +msgid "Tickets" +msgstr "Tapaukset" #: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "Tapaukset %1" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" msgstr "" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "Aikaa jäljellä" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "Aikaa käytetty" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" msgstr "Aikaa jäljellä" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "Aika" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" msgstr "Aikaa käytetty" -#: NOT FOUND IN SOURCE -msgid "TimeLeft" +#: lib/RT/Ticket_Overlay.pm:1143 +msgid "TimeWorked" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1277 -msgid "TimeWorked" +#: html/Search/Elements/EditFormat:74 +msgid "Title" msgstr "" #: NOT FOUND IN SOURCE @@ -5080,16 +5064,16 @@ msgstr "Luodaksesi diffin tästä käskystä:" msgid "To generate a diff of this commit:\\n" msgstr "To generate a diff of this commit:\\n" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<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:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "Oltu yhteydessä" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" msgstr "" @@ -5097,20 +5081,24 @@ msgstr "" msgid "Transaction" msgstr "" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Tapahtuma %1 puhdistettu" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "Tapahtuma luotu" -#: lib/RT/Transaction_Overlay.pm:92 -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +#: html/Admin/Elements/QueueTabs:78 +msgid "Transaction Custom Fields" msgstr "" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:125 +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "" + +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "Tapahtumat ovat muuttumattomia" @@ -5118,23 +5106,19 @@ msgstr "Tapahtumat ovat muuttumattomia" msgid "Trying to delete a right: %1" msgstr "Yritetään poistaa oikeus: %1" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "Ti" -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "Tyyppi" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "Toteuttamaton" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "Unix login" @@ -5142,16 +5126,21 @@ msgstr "Unix login" msgid "UnixUsername" msgstr "Käyttäjän Unix-tunnus" -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Tuntematon sisällön koodaus %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "Rajoittamaton" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" msgstr "" @@ -5159,15 +5148,23 @@ msgstr "" msgid "Unprivileged" msgstr "Erioikeudeton" -#: lib/RT/Transaction_Overlay.pm:562 +#: 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:648 msgid "Untaken" msgstr "Ottamaton" -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "Päivitä" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" msgstr "" @@ -5175,11 +5172,11 @@ msgstr "" msgid "Update ID" msgstr "Päivitä numero" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" msgstr "" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "Päivitä tyyppi" @@ -5191,7 +5188,7 @@ msgstr "Päivitä kaikki nämä tapaukset kerralla" msgid "Update email" msgstr "Päivitä sähköposti" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" msgstr "" @@ -5199,11 +5196,11 @@ msgstr "" msgid "Update name" msgstr "Päivitä nimi" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "Päivitystä ei tallennettu" -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "Päivitä valitut tapaukset" @@ -5211,7 +5208,7 @@ msgstr "Päivitä valitut tapaukset" msgid "Update signature" msgstr "Päivitä allekirjoitus" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "Päivitä tapaus" @@ -5219,34 +5216,58 @@ msgstr "Päivitä tapaus" msgid "Update ticket # %1" msgstr "Päivitä tapaus # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Päivitä tapaus #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Päivitä tapaus #%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "Päivityksen tyyppi ei ollut kirjeenvaihto eikä kommentti." -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "Päivitetty" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" msgstr "" -#: html/Tools/Offline.html:73 +#: 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:95 msgid "Upload your changes" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" #: NOT FOUND IN SOURCE @@ -5257,7 +5278,7 @@ msgstr "Käyttäjä %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Käyttäjä %1 Salasana: %2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." msgstr "" @@ -5274,7 +5295,7 @@ msgstr "Käyttäjää '%1' ei löydetty\\n" msgid "User Defined" msgstr "" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" msgstr "" @@ -5282,28 +5303,33 @@ msgstr "" msgid "User ID" msgstr "Käyttäjätunnus" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "Käyttäjätunnus" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "Käyttäjän oikeudet" -#: html/Admin/Users/Modify.html:252 +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "" + +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "Käyttäjää ei voitu luoda: %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "Käyttäjä luotu" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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 "Käyttäjän luomat ryhmät" -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" msgstr "" @@ -5315,19 +5341,23 @@ msgstr "Käyttäjää informoitu" msgid "User view" msgstr "Käyttäjän näkymä" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Groups/index.html:99 +msgid "User-defined groups" +msgstr "" + +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "Käyttäjätunnus" -#: 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 +#: 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:1086 msgid "Users" msgstr "Käyttäjät" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "Hakua vastaavat käyttäjät" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" msgstr "" @@ -5335,23 +5365,19 @@ msgstr "" msgid "ValueOfQueue" msgstr "Tapauksen arvo" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "Arvot" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Watcher loaded" -msgstr "" - -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "Tarkkailijat" @@ -5359,7 +5385,7 @@ msgstr "Tarkkailijat" msgid "WebEncoding" msgstr "Web-koodaus" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "Ke" @@ -5415,19 +5441,11 @@ msgstr "" msgid "Whenever correspondence comes in" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "Työ" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" msgstr "" @@ -5435,31 +5453,19 @@ msgstr "" msgid "WorkPhone" msgstr "Työpuhelin" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "Tehty" -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" msgstr "Omistat jo tämän tapauksen" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" msgstr "Et ole valtuutettu käyttäjä" -#: NOT FOUND IN SOURCE -msgid "You can access it with the Download button on the right." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Voit palauttaa vain tapauksia, jotka omistat itse tai jotka ovat ilman omistajaa" @@ -5467,24 +5473,24 @@ msgstr "Voit palauttaa vain tapauksia, jotka omistat itse tai jotka ovat ilman o msgid "You don't have permission to view that ticket.\\n" msgstr "Sinulla ei ole valtuuksia tarkastella tätä tapausta.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "Löysit %1 tapausta työjonosta %2" -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "Olet kirjautunut ulos RT:stä" -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." msgstr "Sinulla ei ole valtuuksia luoda tapauksia tähän työjonoon." -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." msgstr "Et voi luoda tapauksia tuohon työjonoon." -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "Tervetuloa kirjautumaan järjestelmään uudelleen" @@ -5504,44 +5510,40 @@ msgstr "" msgid "Your request has been approved." msgstr "" -#: NOT FOUND IN SOURCE -msgid "Your request was rejected" -msgstr "" - #: etc/initialdata:445 msgid "Your request was rejected." msgstr "" -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "Käyttäjätunnuksesi tai salasanasi on väärä" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "Postinumero" -#: NOT FOUND IN SOURCE -msgid "[no subject]" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "and is not" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "and not" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" msgstr "" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "sallittu käyttäjälle %1" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "sisältää" @@ -5561,84 +5563,100 @@ msgstr "kirjeenvaihtoa (luultavasti) ei ole lähetetty" msgid "correspondence sent" msgstr "kirjeenvaihto lähetetty" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "päivää" -#: NOT FOUND IN SOURCE -msgid "dead" -msgstr "" - #: NOT FOUND IN SOURCE msgid "delete" msgstr "poista" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "poistettu" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "ei sisällä" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "ei sisällä" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "on yhtäsuuri" -#: NOT FOUND IN SOURCE -msgid "false" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" msgstr "" #: NOT FOUND IN SOURCE msgid "filename" msgstr "tiedostonimi" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "on suurempi kuin" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "ryhmä %1" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "tuntia" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "numero" -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" - -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "on" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "ei ole" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "on pienempi kuin" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "sisältää" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "min" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "minuuttia" @@ -5646,100 +5664,92 @@ msgstr "minuuttia" msgid "modifications\\n\\n" msgstr "muokkaukset\\n\\n" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "kuukausia" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "uusi" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" msgstr "" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "ei mitään" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "on erisuuri kuin" -#: NOT FOUND IN SOURCE -msgid "notlike" -msgstr "" - -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "avoin" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "oma ryhmä '%1' käyttäjälle '%2'" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "työjono %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "hylätty" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "päätetty" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "sec" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "" + +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "jäädytetty" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "järjestelmä %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "järjestelmäryhmä '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "kutsuva komponentti ei eritellyt syytä" -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "tapaus #%1 %2" -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "" - #: NOT FOUND IN SOURCE msgid "true" msgstr "tosi" -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "kuvailematon ryhmä %1" @@ -5748,12 +5758,12 @@ msgstr "kuvailematon ryhmä %1" msgid "undescripbed group %1" msgstr "kuvailematon ryhmä %1" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "käyttäjä %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "viikkoa" @@ -5761,7 +5771,7 @@ msgstr "viikkoa" msgid "with template %1" msgstr "pohjalla %1" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "vuosia" diff --git a/rt/lib/RT/I18N/fr.po b/rt/lib/RT/I18N/fr.po index 26ce0cb98..8d1f3c3b2 100644 --- a/rt/lib/RT/I18N/fr.po +++ b/rt/lib/RT/I18N/fr.po @@ -1,262 +1,187 @@ -# Copyright (c) 2002 Jesse Vincent <jesse@bestpractical.com> -# msgid "" msgstr "" -"Project-Id-Version: RT 3.2.0\n" +"Project-Id-Version: fr\n" "POT-Creation-Date: 2002-05-02 11:36+0800\n" -"PO-Revision-Date: 2004-07-05 02:00+0800\n" -"Last-Translator: Sébastien Person <sebastien.person@easter-eggs.com>\n" -"Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" +"PO-Revision-Date: 2005-08-06 22:14+0200\n" +"Last-Translator: jfenal <jfenal@free.fr>\n" +"Language-Team: <fr@li.org>\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" -#: NOT FOUND IN SOURCE -msgid "#" -msgstr "n°" - -#: NOT FOUND IN SOURCE -msgid "#%1" -msgstr "n°%1" - -#: 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) +#: 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) #. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "n°%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:927 +#. ($label) msgid "$prefix %1" -msgstr "" +msgstr "$prefix %1" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "%1 n°%2" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($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 +#: lib/RT/Date.pm:397 #. ($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 +#: lib/RT/Record.pm:1672 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" msgstr "%1 %2 ajouté" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "il y a %1 %2" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1679 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%1 %2 changé en %3" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1676 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" msgstr "%1 %2 supprimé" -#: NOT FOUND IN SOURCE -msgid "%1 %2 of group %3" -msgstr "%1 %2 du groupe %3" - -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" msgstr "%1 %2 avec modèle %3" -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 this ticket\\n" -msgstr "%1 (%2) %3 ce ticket\\n" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" -msgstr "" +msgstr "%1 (%2) par %3" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 - %2 shown" -msgstr "Tickets %1 à %2" +msgstr "%1 (inchangé)" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" msgstr "%1 - Un paramètre à passer à %2" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Ecrit les mises à jour de statuts sur STDOUT" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Précisez l'action que vous voulez utiliser" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Précisez la condition que vous voulez utiliser" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Précisez la recherche que vous voulez utiliser" - $RT::VERSION, - '2004', - '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 -#. ('»|«', - $RT::VERSION, - '2004', - '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:54 +#. ('»|«', $RT::VERSION, '2005', '<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 Tout droits réservé 1996-%3 %4" +msgstr "%1 RT %2 Copyright 1996-%3 %4." -#: lib/RT/ScripAction_Overlay.pm:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" -msgstr "%1 ScripAction chargée" +msgstr "ScripAction %1 chargée" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1709 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 ajouté(e) comme valeur de %2" -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on" -msgstr "les alias %1 nécessitent un TicketId sur lequel travailler" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on " -msgstr "les alias %1 nécessitent un TicketId sur lequel travailler " - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on (from %2) %3" -msgstr "les alias %1 nécessitent un TicketId pour fonctionner avec (depuis %2) %3" - -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($args{'Base'}) #. ($args{'Target'}) msgid "%1 appears to be a local object, but can't be found in the database" msgstr "%1 semble être un objet local, mais est introuvable dans la base de données" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 par %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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") msgid "%1 changed from %2 to %3" msgstr "%1 changé(e) de %2 à %3" -#: html/Search/Build.html:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" -msgstr "" +msgstr "%1 copie" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:931 msgid "%1 could not be set to %2." msgstr "%1 n'a pas pu être positionné à %2" -#: NOT FOUND IN SOURCE -msgid "%1 couldn't init a transaction (%2)\\n" -msgstr "%1 n'a pas pu initialiser une transaction (%2)\\n" - -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2751 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 ne peut pas mettre le statut à résolu. La base de données RT est peut être incohérente." -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) msgid "%1 created" msgstr "%1 créé(e)" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) msgid "%1 deleted" msgstr "%1 supprimé(e)" -#: html/Elements/MyTickets:24 +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" -msgstr "Mes %1 tickets de plus hautes priorité" - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I own..." -msgstr "Mes %1 tickets à traiter en priorité..." - -#: html/Elements/MyTickets:26 -#. ($rows) -msgid "%1 highest priority tickets I requested..." -msgstr "Mes %1 demandes les plus prioritaires..." +msgstr "Mes %1 tickets de plus haute priorité" -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "%1 est un outil agissant sur les tickets depuis un planificateur externe tel que cron" +msgstr "%1 est un outil agissant sur les tickets depuis un planificateur externe tel que cron." -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:864 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." -msgstr "%1 n'est plus un %2 pour cette queue." - -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a %2 for this ticket." -msgstr "%1 n'est plus un %2 pour ce ticket." - -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) -msgid "%1 is no longer a value for custom field %2" -msgstr "%1 n'est plus une valeur pour le champ personnalisé %2" - -#: NOT FOUND IN SOURCE -msgid "%1 isn't a valid Queue id." -msgstr "%1 n'est pas un identifiant de queue valide" - -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" +msgstr "%1 n'est plus un %2 pour cette file." -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -265,270 +190,174 @@ msgstr "" msgid "%1 min" msgstr "%1 min" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" -msgstr "les %1 derniers tickets sans propiétaire" - -#: NOT FOUND IN SOURCE -msgid "%1 not shown" -msgstr "%1 non montré" +msgstr "les %1 derniers tickets sans propriétaire" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:827 msgid "%1 objects" msgstr "%1 objets" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "Droits de %1" -#: NOT FOUND IN SOURCE -msgid "%1 succeeded\\n" -msgstr "%1 réussi\\n" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for $MessageId" -msgstr "Type %1 inconnu pour $MessageId" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for %2" -msgstr "type %1 inconnu pour %2" - -#: NOT FOUND IN SOURCE -msgid "%1 was created without a CurrentUser\\n" -msgstr "%1 a été créé sans utilisateur courant\\n" - -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 résoudra tous les membres d'un ticket groupé résolu." -#: NOT FOUND IN SOURCE -msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." -msgstr "%1 va bloquer une base [locale] s'il dépend ou est membre d'une demande liée." - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:828 msgid "%1's %2 objects" -msgstr "" +msgstr "%1 de %2 objets" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:829 msgid "%1's %2's %3 objects" -msgstr "" +msgstr "%1 de %2 de %3 objets" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" -msgstr "recherches sauvées de %1" +msgstr "Recherches sauvées de %1" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1: pas d'attachement spécifié" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' est un statut invalide" -#: NOT FOUND IN SOURCE -msgid "'%1' not a recognized action. " -msgstr "'%1' n'est pas une action connue. " - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete group member)" -msgstr "(Cocher la case pour supprimer un membre du groupe)" - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete scrip)" -msgstr "(Cocher la case pour supprimer un scrip)" - -#: 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 +#: 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 "(Cocher la case pour supprimer)" -#: NOT FOUND IN SOURCE -msgid "(Check boxes to delete)" -msgstr "(Cocher la case pour supprimer)" - -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" msgstr "(Cocher les cases pour désactiver les notifications aux destinataires listés)" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" msgstr "(Cocher les cases pour activer les notifications aux destinataires listés)" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(Entrer les numéros de tickets ou les URLs, séparés par des espaces)" +msgstr "(Entrer le numéro du ticket ou son URL, séparés par des espaces)" -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" -msgstr "" - -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: 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 "Si laissé à blanc, valeur par défaut : %1" - -#: NOT FOUND IN SOURCE -msgid "(No Value)" -msgstr "(Non renseigné)" +msgid "(If left blank, will default to %1)" +msgstr "(sera par défaut %1 si laissé vide)" -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "(Pas de champ personnalisé)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(Aucun membre)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "(Aucun Scrip)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" -msgstr "Aucun modèle" +msgstr "(Aucun modèle)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 msgid "(None)" msgstr "(Aucun)" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:88 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 "(Envoie une copie cachée de cette mise à jour à une liste d'adresses email séparées par des virgules. Ceci <b>ne changera pas</b> les destinataires des mises à jour suivantes.)" -#: 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 "(Envoie une copie cachée de cette mise à jour à une liste d'adresses email séparées par des virgules. Ceci <b>ne changera pas</b> les destinataires des mises à jour suivantes.)" - -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 "(Envoie une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ces personnes <b>recevront</b> les mises à jour suivantes.)" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 "(Envoie une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ceci <b>ne changera pas</b> les destinataires des mises à jour suivantes.)" -#: 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 "Envoie une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ceci <b>ne changera pas</b> les destinataires des mises à jour suivantes.)" - -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 "(Envoie une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ces personnes <b>recevront</b> les mises à jour suivantes.)" +msgstr "(Transmettre une copie de cette mise à jour à une liste d'adresses email séparées par des virgules. Ces personnes <b>recevront</b> les mises à jour suivantes.)" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "" +msgstr "(Utilisez ces champs lorsque vous sélectionnez 'User Defined' pour une condition ou une action)" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(vide)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "(aucun nom)" -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(no subject)" -msgstr "(pas de sujet)" - -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/I18N/fr.po.orig:146 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" -msgstr "(non renseigné)" +msgstr "(sans information)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFieldValues:47 msgid "(no values)" msgstr "(aucune valeur)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(un seul ticket)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(en attente d'approbation)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" msgstr "(en attente d'autres Collection)" -#: NOT FOUND IN SOURCE -msgid "(pending other tickets)" -msgstr "(en attente d'autres tickets)" - -#: NOT FOUND IN SOURCE -msgid "(requestor's group)" -msgstr "(groupe du demandeur)" - -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(exigé)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(sans titre)" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I own..." -msgstr "Mes 25 tickets à traiter en priorité..." - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I requested..." -msgstr "Mes 25 demandes les plus prioritaires..." - -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Statut%>" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" -msgstr "" +msgstr "<% $_ %>" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" -msgstr "" +msgstr "<%$_%>" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" -msgstr "" +msgstr "<%$field%>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"Créer un ticket dans\"> %1" @@ -537,146 +366,122 @@ msgstr "<input type=\"submit\" value=\"Créer un ticket dans\"> %1" msgid "A blank template" msgstr "Un modèle vide" -#: NOT FOUND IN SOURCE -msgid "ACE Deleted" -msgstr "ACE Supprimé" - -#: NOT FOUND IN SOURCE -msgid "ACE Loaded" -msgstr "ACE Chargé" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be deleted" -msgstr "l'ACE n'a pu être supprimé" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be found" -msgstr "l'ACE n'a pu être trouvé" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "L'utilisateur ne pourra se connecter car aucun mot de passe n'a été défini." -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "ACE non trouvé" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "Les ACE peuvent seulement être créés et effacés." -#: NOT FOUND IN SOURCE -msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "Interruption pour éviter des modifications de ticket involontaires" +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "ET" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "A propos" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "contrôle d'accès" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "Action" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Action %1 non trouvée" -#: bin/rt-crontool:119 -msgid "Action committed." -msgstr "Action validée" +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "Action validée.\\n" -#: bin/rt-crontool:115 +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "Action préparée..." -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" msgstr "Ajouter" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "Ajouter AdminCC" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "Ajouter CC" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "Ajouter des colonnes" + +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" msgstr "Ajouter un critère" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "Ajouter d'autres fichiers" -#: NOT FOUND IN SOURCE -msgid "Add Next State" -msgstr "Ajouter étape suivant" - -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "Ajouter Demandeur" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" msgstr "Ajouter une valeur" -#: NOT FOUND IN SOURCE -msgid "Add a keyword selection to this queue" -msgstr "Ajouter une sélection de mots clé à cette queue" - -#: NOT FOUND IN SOURCE -msgid "Add a new a global scrip" -msgstr "Ajouter un nouveau scrip global" - -#: NOT FOUND IN SOURCE -msgid "Add a scrip to this queue" -msgstr "Ajouter un scrip à cette queue" - -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" -msgstr "Ajouter un scrip qui s'ajoute à toutes les queues" +msgstr "Ajouter un scrip qui s'applique à toutes les files" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" -msgstr "" +msgstr "Ajouter un critère additionnel" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "Ajouter des commentaires ou des réponses aux tickets sélectionnés" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "Ajouter des membres" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "Ajouter de nouveaux observateurs" -#: NOT FOUND IN SOURCE -msgid "AddNextState" -msgstr "AjouterEtatSuivant" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "Ajouter, retirer et modifier des champs personnalisés pour les objets" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:764 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" -msgstr "Ajout groupe/utilisateur comme %1 pour cette queue" +msgstr "Ajout groupe/utilisateur comme %1 pour cette file" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1424 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Ajout groupe/utilisateur comme %1 pour ce ticket" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "Adresse1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "Adresse2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "Admin Cc" @@ -688,159 +493,103 @@ msgstr "Commentaire Admin" msgid "Admin Correspondence" msgstr "Correspondance Admin " -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" -msgstr "Administrateurs de queue" - -#: NOT FOUND IN SOURCE -msgid "Admin users" -msgstr "Gérer les Utilisateurs" +msgstr "Administrateurs de files" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "configuration Gestion/Globale" -#: NOT FOUND IN SOURCE -msgid "Admin/Groups" -msgstr "Gestion/Groupes" - -#: NOT FOUND IN SOURCE -msgid "Admin/Queue/Basics" -msgstr "Gestion/Queues/Essentiel" - -#: NOT FOUND IN SOURCE -msgid "AdminAllPersonalGroups" -msgstr "GérerTousGroupesPersonnels" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "AdminCc" -#: NOT FOUND IN SOURCE -msgid "AdminComment" -msgstr "CommentaireAdministrateur" - -#: NOT FOUND IN SOURCE -msgid "AdminCorrespondence" -msgstr "CorrespondanceAdministrateur" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:101 msgid "AdminCustomField" msgstr "GérerChampPersonnalisé" -#: lib/RT/Queue_Overlay.pm:73 -msgid "AdminCustomFields" -msgstr "GérerChampsPersonnalisés" - -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:163 msgid "AdminGroup" msgstr "GérerGroupes" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:165 msgid "AdminGroupMembership" msgstr "GérerAppartenanceGroupes" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "GérerGroupesPersonnelsPropres" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" -msgstr "GérerQueues" +msgstr "GérerFile" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "GérerUtilisateurs" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "Cc Administratif" -#: NOT FOUND IN SOURCE -msgid "Admins" -msgstr "Administrateurs" - -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" msgstr "Avancé" -#: NOT FOUND IN SOURCE -msgid "Advanced Search" -msgstr "Recherche avancée" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "" - -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "Après" -#: NOT FOUND IN SOURCE -msgid "Age" -msgstr "Age" - -#: NOT FOUND IN SOURCE -msgid "Alias for" -msgstr "Alias pour" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "Aggrégateur" #: etc/initialdata:363 msgid "All Approvals Passed" msgstr "Toutes les approbations obtenues" -#: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:94 -msgid "All Custom Fields" -msgstr "Tous les champs personnalisés" - -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" -msgstr "Toutes les queues" +msgstr "Toutes les files" -#: NOT FOUND IN SOURCE -msgid "Always sends a message to the requestors independent of message sender" -msgstr "Envoie toujours un message au demandeur indépendamment de l'expéditeur" +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" +msgstr "Et/Ou" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 msgid "Applies to" msgstr "S'applique à" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply" msgstr "Appliquer" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" msgstr "Appliquer vos changements" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" -msgstr "Approbation" +msgstr "Approbations" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "Approbation n°%1: %2" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Approbation n°%1: Notes non enregistrées en raison d'une erreur système" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Approbation n°%1: Notes non enregistrées" -#: NOT FOUND IN SOURCE -msgid "Approval Details" -msgstr "Détails de l'approbation" - #: etc/initialdata:351 msgid "Approval Passed" msgstr "Approbations obtenues" @@ -849,103 +598,67 @@ msgstr "Approbations obtenues" msgid "Approval Rejected" msgstr "Approbations refusées" -#: NOT FOUND IN SOURCE -msgid "Approval diagram" -msgstr "Diagramme d'approbation" - -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "Approuver" #: etc/initialdata:504 msgid "Approver's notes: %1" -msgstr "Notes de l'approbateur: %1" +msgstr "Notes de l'approbateur : %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "Avr." -#: NOT FOUND IN SOURCE -msgid "April" -msgstr "Avril" - -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "Croissant" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "Assign and remove custom fields" msgstr "Fixer et supprimer les champs personnalisés" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "AssignCustomFields" msgstr "FixerChampsPersonnalisés" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "Attaché" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "Attacher un fichier" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "Fichier attaché" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 #. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Attachement '%1' ne peut pas être chargé" -#: lib/RT/Transaction_Overlay.pm:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "Attachement créé" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1702 msgid "Attachment filename" msgstr "Nom de fichier de l'attachement" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "Attachements" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" msgstr "Attibut supprimé" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "Aoû." -#: NOT FOUND IN SOURCE -msgid "August" -msgstr "Août" - -#: NOT FOUND IN SOURCE -msgid "AuthSystem" -msgstr "AuthSystem" - #: etc/initialdata:221 msgid "Autoreply" msgstr "RéponseAuto" @@ -954,272 +667,189 @@ msgstr "RéponseAuto" msgid "Autoreply To Requestors" msgstr "Réponse automatique aux demandeurs" -#: NOT FOUND IN SOURCE -msgid "AutoreplyToRequestors" -msgstr "RéponseAutomtiqueAuxDemandeurs" - -#: html/Search/Elements/EditFormat:4 -msgid "Available Columns" -msgstr "Colonnes disponibles" - -#: NOT FOUND IN SOURCE -msgid "Bad PGP Signature: %1\\n" -msgstr "Signature PGP invalide: %1\\n" - -#: NOT FOUND IN SOURCE -msgid "Bad attachment id. Couldn't find attachment '%1'\\n" -msgstr "Id d'attachement erroné. Impossible de trouver l'attachement '%1'\\n" - -#: NOT FOUND IN SOURCE -msgid "Bad data in %1" -msgstr "Données incorrectes dans %1" - -#: NOT FOUND IN SOURCE -msgid "Bad transaction number for attachment. %1 should be %2\\n" -msgstr "Numéro de transaction incorrect pour l'attachement. %1 doit être %2\\n" - -#: 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 +#: 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 "Essentiel" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "Assurez-vous de sauvegarder vos modifications" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "Avant" -#: NOT FOUND IN SOURCE -msgid "Begin Approval" -msgstr "Débuter l'approbation" - -#: NOT FOUND IN SOURCE -msgid "Binary" -msgstr "Binaire" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" +msgstr "Logo d'entreprise de Best Practical Solutions, LLC" #: etc/initialdata:217 msgid "Blank" msgstr "Vide" -#: NOT FOUND IN SOURCE -msgid "Bookmarkable URL for this search" -msgstr "URL prédéfinie pour cette recherche" +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "Gras" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" -msgstr "" +msgstr "Lien prédéfini" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "En-têtes courts" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "modification de tickets en masse" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "Les utilisateurs système ne peuvent être modifiés" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" -msgstr "Le groupe/utilisateur peut-il voir cette queue" +msgstr "Le groupe/utilisateur peut-il voir cette file" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "Impossible d'ajouter une valeur de champ personnalisé sans un nom" -#: html/Search/Build.html:694 +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" +msgstr "Impossible de trouver une collection pour la classe '%1'" + +#: html/Search/Build.html:761 msgid "Can't find a saved search to work with" msgstr "Impossible de trouver une recherche sauvée et de l'utiliser" -#: lib/RT/Link_Overlay.pm:126 +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "Un ticket ne peut être lié à lui même" -#: lib/RT/Ticket_Overlay.pm:2716 -msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "Impossible de fusionner un ticket à un ticket fusionné. Vous ne devriez jamais obtenir cette erreur" - -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" msgstr "Impossible de sauver cette recherche" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1267 lib/RT/Record.pm:1345 msgid "Can't specifiy both base and target" msgstr "Impossible de spécifier à la fois la base et la cible" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "Impossible de créer l'utilisateur: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "Cc" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "Changer le mot de passe" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:100 msgid "Check All" -msgstr "Tout vérifier" +msgstr "Tout cocher" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "Cocher la case pour supprimer" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "Cocher la case pour retirer le droit" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "Fils" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "Ville" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:102 msgid "Clear All" msgstr "Tout effacer" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "Fermé" -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "Tickets fermés" - -#: NOT FOUND IN SOURCE -msgid "Closed requests" -msgstr "Demandes closes" - -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "Tickets fermés" -#: NOT FOUND IN SOURCE -msgid "Command not understood!\\n" -msgstr "Commande incomprise! \\n" - -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "Commenter" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "Adresse de commentaire" -#: NOT FOUND IN SOURCE -msgid "Comment not recorded" -msgstr "Commentaire non enregistré" - -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "Commentaire sur le ticket" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "CommenterTicket" -#: NOT FOUND IN SOURCE -msgid "Comments" -msgstr "Commentaires" - -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "Commentaires (non envoyés aux demandeurs)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "Commentaires (non envoyés aux demandeurs)" -#: NOT FOUND IN SOURCE -msgid "Comments about %1" -msgstr "Commentaires sur %1" - -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "Commentaires sur cet utilisateur" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "Commentaires ajoutés" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "tr(Commit Stubbed)" -#: NOT FOUND IN SOURCE -msgid "Compile Restrictions" -msgstr "Restrictions de compilation" - -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "Condition" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "La condition satisfait..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "Condition non trouvée" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "Configuration" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "Confirmer" -#: NOT FOUND IN SOURCE -msgid "ContactInfoSystem" -msgstr "ContactInfoSystem" - -#: NOT FOUND IN SOURCE -msgid "Contacted date '%1' could not be parsed" -msgstr "Date de contact ne peut pas être analysée" - -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "Contenu" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "Type de contenu" -#: NOT FOUND IN SOURCE -msgid "Coould not create group" -msgstr "Le groupe n'a pas pu être créé" - -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" msgstr "Copier" @@ -1227,214 +857,174 @@ msgstr "Copier" msgid "Correspondence" msgstr "Courrier" -#: NOT FOUND IN SOURCE -msgid "Correspondence Address" -msgstr "Adresse de correspondance" - -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "Courrier ajouté" -#: NOT FOUND IN SOURCE -msgid "Correspondence not recorded" -msgstr "Courrier non enregistré" +#: lib/RT/Record.pm:1694 +msgid "Could not add new custom field value. " +msgstr "Impossible d'ajouter une nouvelle valeur de champ personnalisé. " -#: lib/RT/Ticket_Overlay.pm:3471 -msgid "Could not add new custom field value for ticket. " -msgstr "Impossible d'ajouter une nouvelle valeur de champ personnalisé pour ce ticket. " +#: lib/RT/Record.pm:1647 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "Impossible d'ajouter une nouvelle valeur de champ personnalisé. %1" -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value for ticket. %1 " -msgstr "La valeur de champ personnalisé n'a pas pu être ajoutée. %1" - -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3020 lib/RT/Ticket_Overlay.pm:3037 msgid "Could not change owner. " msgstr "Impossible de changer l'intervenant. " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" -msgstr "Impossible de créer un champ personnalisé CustomField" +msgstr "Impossible de créer le champ personnalisé" + +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "Impossible de créer le champ personnalisé : %1" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:494 lib/RT/Group_Overlay.pm:501 msgid "Could not create group" msgstr "Impossible de créer un groupe" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" -msgstr "Impossible de créer un modèle : %1" +msgstr "Impossible de créer le modèle : %1" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" -msgstr "Impossible de créer un ticket. Queue non indiquée" +msgstr "Impossible de créer un ticket. File non indiquée" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" -msgstr "Impossible de créer un utilisateur" +msgstr "Impossible de créer l'utilisateur" -#: NOT FOUND IN SOURCE -msgid "Could not create watcher for requestor" -msgstr "L'observateur n'a pas pu être crée pour le demandeur" - -#: NOT FOUND IN SOURCE -msgid "Could not find a ticket with id %1" -msgstr "Impossible de trouver le ticket numéro %1" - -#: NOT FOUND IN SOURCE -msgid "Could not find group %1." -msgstr "Impossible de trouver le groupe %1." - -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:742 lib/RT/Ticket_Overlay.pm:1392 msgid "Could not find or create that user" msgstr "Impossible de trouver ou créer cet utilisateur" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:803 lib/RT/Ticket_Overlay.pm:1473 msgid "Could not find that principal" msgstr "Impossible de trouver ce groupe ou utilisateur" -#: NOT FOUND IN SOURCE -msgid "Could not find user %1." -msgstr "Impossible de trouver l'utilisateur %1." - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:69 msgid "Could not load CustomField %1" msgstr "Impossible de charger le champ personnalisé %1" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "Impossible de charger ce groupe" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "Impossible de charger l'objet pour %1" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "Impossible de charger l'attribut de recherche" + +#: lib/RT/Queue_Overlay.pm:762 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" -msgstr "Impossible de faire de ce groupe/utilisateur un %1 pour cette queue" +msgstr "Impossible de faire de ce groupe/utilisateur un %1 pour cette file" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1413 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Impossible de faire de ce groupe/utilisateur un %1 pour ce ticket" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:861 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" -msgstr "Impossible de supprimer ce groupe/utilisateur comme un %1 pour cette queue" - -#: NOT FOUND IN SOURCE -msgid "Could not remove that principal as a %1 for this ticket" -msgstr "Impossible de supprimer ce groupe/utilisateur comme un %1 pour ce ticket" +msgstr "Impossible de supprimer ce groupe/utilisateur comme un %1 pour cette file" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" msgstr "Impossible de sauver les informations utilisateur" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1003 msgid "Couldn't add member to group" msgstr "Impossible d'ajouter un membre à ce groupe" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1706 lib/RT/Record.pm:1758 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Impossible de créer une transaction : %1" -#: NOT FOUND IN SOURCE -msgid "Couldn't figure out what to do from gpg's reply\\n" -msgstr "Impossible de comprendre ce qu'il faut faire avec cette réponse gpg\\n" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find group\\n" -msgstr "Groupe introuvable\\n" - -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:940 msgid "Couldn't find row" msgstr "Colonne introuvable" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:977 msgid "Couldn't find that principal" msgstr "groupe/utilisateur introuvable" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" msgstr "Valeur introuvable" -#: NOT FOUND IN SOURCE -msgid "Couldn't find that watcher" -msgstr "L'observateur n'a pas pu être trouvé" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find user\\n" -msgstr "Utilisateur introuvable\\n" - -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" -msgstr "Impossible de charger %1 depuis la base de données des utilisateurs.\\n" +msgstr "Impossible de charger %1 depuis la base des utilisateurs.\\n" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "Impossible de charger la classe %1" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" msgstr "Impossible de charger le champ personnalisé %1" -#: NOT FOUND IN SOURCE -msgid "Couldn't load KeywordSelects." -msgstr "KeywordSelects n'a pas pu être chargé" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load RT config file '%1' %2" -msgstr "Impossible de charger le fichier de configuration RT '%1' %2" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load Scrips." -msgstr "Les scrips n'ont pas pu être chargés" - -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" msgstr "Impossible de charger le groupe %1" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "Impossible de charger le lien" -#: NOT FOUND IN SOURCE +#: 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 "Impossible de charger l'objet %1" -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" -msgstr "Impossible de charger la queue" +msgstr "Impossible de charger la file" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" -msgstr "Impossible de charger la queue %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load scrip" -msgstr "Impossible de charger le Scrip" +msgstr "Impossible de charger la file %1" -#: NOT FOUND IN SOURCE -msgid "Couldn't load template" -msgstr "Impossible de charger le modèle" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load that user (%1)" -msgstr "Impossible de charger cet utilisateur (%1)" - -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:158 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Impossible de charger le ticket '%1'" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2620 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "Impossible de résoudre la base '%1' dans une URI." + +#: lib/RT/Ticket_Overlay.pm:2619 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "Impossible de résoudre la cible '%1' dans une URI." + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "Pays" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "Ajouter" @@ -1442,306 +1032,193 @@ msgstr "Ajouter" msgid "Create Tickets" msgstr "Ajouter des tickets" -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" - -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "Ajouter un Champ Personnalisé" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" -msgstr "Ajouter un champ personnalisé à la queue %1" - -#: html/Admin/Global/CustomField.html:47 -msgid "Create a CustomField which applies to all queues" -msgstr "Ajouter un champ personnalisé à toutes les queues" +msgstr "Ajouter un champ personnalisé pour la file %1" -#: NOT FOUND IN SOURCE -msgid "Create a new Custom Field" -msgstr "Ajouter un nouveaux champ personnalisé" - -#: NOT FOUND IN SOURCE -msgid "Create a new article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create a new global scrip" -msgstr "Ajouter un nouveau scrip global" - -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "Ajouter un nouveau groupe" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "Ajouter un nouveau groupe personnel" -#: NOT FOUND IN SOURCE -msgid "Create a new queue" -msgstr "Ajouter une nouvelle queue" - -#: NOT FOUND IN SOURCE -msgid "Create a new scrip" -msgstr "Ajouter un nouveau scrip" - -#: NOT FOUND IN SOURCE -msgid "Create a new template" -msgstr "Ajouter un nouveau modèle" - -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "Ajouter un nouveau ticket" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "Ajouter un nouvel utilisateur" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" -msgstr "Ajouter une queue" - -#: NOT FOUND IN SOURCE -msgid "Create a queue called" -msgstr "Ajouter une nouvelle queue appelée" +msgstr "Ajouter une file" -#: NOT FOUND IN SOURCE -msgid "Create a request" -msgstr "Ajouter une demande" - -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" -msgstr "Ajouter un scrip pour la queue %1" +msgstr "Ajouter un scrip pour la file %1" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "Ajouter un modèle" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" msgstr "Ajouter un ticket" -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1 / %2 / %3 " -msgstr "Echec à la création de: %1 / %2 / %3" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1/%2/%3" -msgstr "Echec à la création de: %1/%2/%3" - #: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "Ajouter de nouveaux tickets basés sur le modèle de ce scrip" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "Ajouter un ticket" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" -msgstr "Ajouter des tickets dans cette queue" +msgstr "Ajouter des tickets dans cette file" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "Ajouter, supprimer et modifier des champs personnalisés" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" -msgstr "Ajouter, supprimer et modifier les queues" - -#: NOT FOUND IN SOURCE -msgid "Create, delete and modify the members of any user's personal groups" -msgstr "Ajouter, supprime et modifie les membres des groupe spersonnels de n'importe quel utilisateur" +msgstr "Ajouter, supprimer et modifier les files" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "Ajouter, supprimer et modifier les membres d'un groupe personnel" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "Ajouter, supprimer et modifier les utilisateurs" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "CréerRechercheSauvée" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "CréerTicket" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "Créé" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" -msgstr "Champ Personnalisé %1 ajouté" - -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created template %1" -msgstr "Modèle %1 créé" +msgstr "Champ Personnalisé %1 créé" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" msgstr "Créateur" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Current Relationships" -msgstr "Relations actuelles" +msgstr "Liens courants" -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "Scrips actuels" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "Membres actuels" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "Droits actuels" -#: NOT FOUND IN SOURCE -msgid "Current search criteria" -msgstr "Critères de recherche courants" - -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "Observateurs actuels" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) -msgid "Custom Field #%1" -msgstr "Champ personnalisé n°%1" - -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "Champs Personnalisés" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) msgid "Custom Fields for %1" msgstr "Champs personnalisés pour %1" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "Programme de nettoyage d'action personnalisé" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "Programme de préparation d'action personnalisé " -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "Condition personnalisée" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) -msgid "Custom field %1 %2 %3" -msgstr "Champs personnalisés %1 %2 %3" - -#: NOT FOUND IN SOURCE -msgid "Custom field %1 does not apply to this object" -msgstr "Le champ personnalisé %1 ne s'applique pas à cet objet" - -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2176 #. ($CF->Name) msgid "Custom field %1 has a value." -msgstr "Le champ personnalisé %1 a une valeur" +msgstr "Le champ personnalisé %1 a une valeur." -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2172 #. ($CF->Name) msgid "Custom field %1 has no value." -msgstr "Le champ personnalisé %1 n'a pas de valeur" +msgstr "Le champ personnalisé %1 n'a pas de valeur." -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1580 lib/RT/Record.pm:1741 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Le champ personnalisé %1 est introuvable" -#: html/Admin/Elements/EditCustomFields:195 -msgid "Custom field deleted" -msgstr "Champ personnalisé supprimé" - -#: lib/RT/Ticket_Overlay.pm:3523 -msgid "Custom field not found" -msgstr "Le champ personnalisé est introuvable" - -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "La valeur du champ personnalisé %1 ne peut pas être trouvée pour le champ personnalisé %2" -#: NOT FOUND IN SOURCE -msgid "Custom field value changed from %1 to %2" -msgstr "Valeur de champ personnalisé modifié de %1 à %2" - -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "La valeur du champ personnalisé ne peut pas être effacée" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "La valeur du champ personnalisé ne peut par être trouvée" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "La valeur du champ personnalisé est effacée" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "ChampPersonnalisé" -#: NOT FOUND IN SOURCE -msgid "Data error" -msgstr "Erreur de données" - -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "Dates" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "Déc." -#: NOT FOUND IN SOURCE -msgid "December" -msgstr "Décembre" - -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "Modèle de réponse automatique par défaut" - #: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Modèle de réponse automatique par défaut" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" -msgstr "Queue par défaut" +msgstr "File par défaut" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" -msgstr "" +msgstr "Demandeur par défaut" #: etc/initialdata:296 msgid "Default admin comment template" @@ -1759,419 +1236,308 @@ msgstr "Modèle de courrier par défaut" msgid "Default transaction template" msgstr "Modèle de transaction par défaut" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) -msgid "Default: %1/%2 changed from %3 to %4" -msgstr "Par défaut: %1/%2 modifié de %3 à %4" - -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "Déléguer les droits" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." -msgstr "Déléguer des droits spécifiques qui vous ont été accordés" +msgstr "Déléguer des droits spécifiques qui vous ont été accordés." -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "DéléguerDroits" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "Délégation" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "Supprimer" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" -msgstr "" +msgstr "Détruire le modèle" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" -msgstr "" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" +msgstr "Échec de la destruction : %1" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" msgstr "Supprimer les scrips sélectionnés" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" -msgstr "Supprimer des tickets" +msgstr "Supprimer les tickets" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "SupprimerTicket" -#: lib/RT/Transaction_Overlay.pm:162 -msgid "Deleting this object could break referential integrity" -msgstr "Effacer cet objet pourrait briser l'intégrité référentielle" +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "Recherche détruite" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:395 msgid "Deleting this object would break referential integrity" msgstr "Effacer cet objet briserait l'intégrité référentielle" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "Effacer cet objet violerait l'intégrité référentielle" -#: NOT FOUND IN SOURCE -msgid "Deleting this object would violate referential integrity." -msgstr "Effacer cet objet violerait l'intégrité référentielle" - -#: NOT FOUND IN SOURCE -msgid "Deleting this object would violate referential integrity. That's bad." -msgstr "Effacer cet objet violerait l'intégrité référentielle, c'est serait facheux!" - -#: html/Approvals/Elements/Approve:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "Refuser" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "En dépend" -#: NOT FOUND IN SOURCE -msgid "Dependencies: \\n" -msgstr "Dépendances : \\n" - -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "Ajout de la dépendance par %1" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "Suppression de la dépendance par %1" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "Ajout de la dépendance de %1" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "Suppression de la dépendance de %1" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "Dépend de" -#: NOT FOUND IN SOURCE -msgid "DependsOn" -msgstr "DépendDe" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "Décroissant" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "Décrivez la situation ci-dessous" -#: 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 +#: 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:56 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 "Description" -#: NOT FOUND IN SOURCE -msgid "Details" -msgstr "Détails" - -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "Afficher" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "Afficher la liste des droits" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" msgstr "Afficher les colonnes" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" -msgstr "Afficher les modèles de Scrips pour cette queue" +msgstr "Afficher les modèles de Scrips pour cette file" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" -msgstr "Afficher les Scrips pour cette queue" +msgstr "Afficher les Scrips pour cette file" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "Mode d'affichage" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:168 msgid "Display saved searches for this group" msgstr "Afficher les recherches sauvegardées de ce groupe" -#: NOT FOUND IN SOURCE -msgid "Display ticket #%1" -msgstr "Afficher le ticket n°%1" - -#: html/Elements/Footer:38 +#: html/Elements/Footer:56 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "Distribué sous la version 2 de la license GNU GPL <a href=\"http://www.gnu.org/copyleft/gpl.html\">." +msgstr "Distribué selon les termes de la version 2 de la <a href=\"http://www.gnu.org/copyleft/gpl.html\">licence GNU GPL.</a>" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "Faire tout et n'importe quoi" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "Lancer la recherche" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "Ne pas rafraîchir cette page." -#: NOT FOUND IN SOURCE -msgid "Don't show search results" -msgstr "Ne pas afficher le résultat de la recherche" - -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "Télécharger" -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 msgid "Download as a tab-delimited file" msgstr "Télécharger en tant que fichier délimité par tabulations" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "Echéance" -#: NOT FOUND IN SOURCE -msgid "Due date '%1' could not be parsed" -msgstr "Date d'échéance '%1' n'est pas comprise" - -#: NOT FOUND IN SOURCE -msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "ERREUR: impossible de charger le ticket '%1' : %2.\\n" - -#: NOT FOUND IN SOURCE -msgid "Edit" -msgstr "Modifier" - -#: NOT FOUND IN SOURCE -msgid "Edit Conditions" -msgstr "Modifier les conditions" - -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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 "Modifier les champs personnalisés pour %1" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" -msgstr "" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "Modifier les champs personnalisés pour tous les groupes" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "Modifier les champs personnalisés pour tous les utilisateurs" + +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "Modifier les champs personnalisés pour les tickets de toutes les files" + +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" -msgstr "" +msgstr "Modifier les liens" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" msgstr "Modifier la requête" -#: NOT FOUND IN SOURCE -msgid "Edit Relationships" -msgstr "Modifier les relations" - -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" -msgstr "Modifier les modèles pour la queue %1" - -#: NOT FOUND IN SOURCE -msgid "Edit keywords" -msgstr "Modifier les mots clÃ" +msgstr "Modifier les modèles pour la file %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:167 msgid "Edit saved searches for this group" -msgstr "Modifier les recherches sauvegardées du groupe" +msgstr "Modifier les recherches sauvées du groupe" -#: NOT FOUND IN SOURCE -msgid "Edit scrips" -msgstr "Modifier les scrips" - -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "Modifier les modèles système" -#: NOT FOUND IN SOURCE -msgid "Edit templates for %1" -msgstr "Modifier les modèles pour %1" - -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:167 msgid "EditSavedSearches" msgstr "ModifierRecherchesSaugardées" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" -msgstr "Modifier la configuration de la queue %1" - -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for user %1" -msgstr "Modifier la configuration de l'utilisateur %1" +msgstr "Modifier la configuration de la file %1" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" -msgstr "Modifier le ChampPersonnalisé %1" +msgstr "Modifier le champ personnalisé %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Modifier les membres du groupe %1" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Modifier les membres du groupe personnel %1" -#: NOT FOUND IN SOURCE -msgid "Editing template %1" -msgstr "Modifie le modèle %1" - -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1282 lib/RT/Record.pm:1359 msgid "Either base or target must be specified" msgstr "La base ou la cible doivent être spécifiées" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "Email" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "Adresse email utilisée" -#: NOT FOUND IN SOURCE -msgid "EmailAddress" -msgstr "EmailAddress" - -#: NOT FOUND IN SOURCE -msgid "EmailEncoding" -msgstr "EmailEncoding" - -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Activé (Décocher cette case désactive ce champ personnalisé)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 msgid "Enabled (Unchecking this box disables this group)" msgstr "Activé (Décocher cette case désactive ce groupe)" -#: html/Admin/Queues/Modify.html:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Activé (Décocher cette case désactive cette queue)" - -#: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" +msgstr "Activé (Décocher cette case désactive cette file)" -#: html/Admin/Elements/EditCustomFields:97 -msgid "Enabled Custom Fields" -msgstr "Champs personnalisés actifs" - -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" -msgstr "Queues actives" +msgstr "Files actives" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" -msgstr "Statut actif %1" +msgstr "État %1 activé" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) msgid "Enabled status: %1" -msgstr "Statut actif: %1" - -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." -msgstr "" +msgstr "État actif : %1" -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "Saisir plusieurs valeurs" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "Saisir les objets ou les URIs pour y lier les objets. Séparer les saisies par des espaces." +msgstr "Saisir les objets ou les URI pour y lier les objets. Séparer les saisies par des espaces." -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "Saisir une seule valeur" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "Saisir les queues ou les URIs pour y lier les queues. Séparer les saisies avec des espaces." +msgstr "Saisir les files ou les URI pour y lier les files. Séparer les saisies avec des espaces." -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "Saisir les tickets ou les URIs pour y lier les tickets. Séparer les saisies avec des espaces." +msgstr "Saisir les tickets ou URI pour y lier les tickets. Séparer les saisies par des espaces." -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." -msgstr "Saisir les tickets ou URIs pour y lier les tickets. Séparer les saisies par des espaces." - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:66 msgid "Enter up to %1 values" -msgstr "Saisir %1 valeurs maximum" +msgstr "Saisir au plus %1 valeurs" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "Erreur" -#: NOT FOUND IN SOURCE -msgid "Error adding watcher" -msgstr "Erreur à l'ajout de l'observateur" - -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:673 msgid "Error in parameters to Queue->AddWatcher" msgstr "Erreur de paramètres pour Queue->AddWatcher" -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Queue->DelWatcher" -msgstr "Erreur de paramètres pour Queue->DelWatcher" - -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:834 msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "" +msgstr "Erreur dans les paramètre de Queue->DeleteWatcher" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1341 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Erreur de paramètres pour Ticket->AddWatcher" -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Ticket->DelWatcher" -msgstr "Erreur de paramètres pour Ticket->DelWatcher" - -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1507 msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "" +msgstr "Erreur dans les paramètres de Ticket->DeleteWatcher" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" msgstr "Échelonner les tickets" -#: NOT FOUND IN SOURCE -msgid "Estimate" -msgstr "Estimer" - -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" msgstr "Estimé" @@ -2179,322 +1545,249 @@ msgstr "Estimé" msgid "Everyone" msgstr "Tout le monde" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" -msgstr "Exemple:" - -#: NOT FOUND IN SOURCE -msgid "ExternalAuthId" -msgstr "ExternalAuthId" +msgstr "Exemple :" -#: NOT FOUND IN SOURCE -msgid "ExternalContactInfoId" -msgstr "ExternalContactInfoId" - -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "Info supplémentaire" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" -msgstr "" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" +msgstr "Impossible de créer l'attribut de recherche" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "Recherche du pseudo groupe d'utilisateurs 'Priviligiés' infructueuse" +msgstr "Recherche du pseudo groupe d'utilisateurs 'Priviligiés' infructueuse." -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Recherche du pseudo groupe d'utilisateurs 'non-privilégiés' infructueuse" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Echec de chargement du module %1. (%2)" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "Impossible de charger l'objet pour %1" + +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "Fév." -#: NOT FOUND IN SOURCE -msgid "February" -msgstr "Février" - -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" msgstr "NomFichier" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:69 msgid "Fill in multiple text areas" msgstr "Saisir dans plusieurs champs de type texte" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:74 +msgid "Fill in multiple wikitext areas" +msgstr "Saisir plusieurs champs de type wiki" + +#: lib/RT/CustomField_Overlay.pm:70 msgid "Fill in one text area" msgstr "Saisir dans un champ de type texte" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +msgstr "Saisir un champ de type wiki" + +#: lib/RT/CustomField_Overlay.pm:71 msgid "Fill in up to %1 text areas" -msgstr "Saisir dans %1 champs de type texte maximum" +msgstr "Saisir au plus %1 champs de type texte" -#: NOT FOUND IN SOURCE -msgid "Fin" -msgstr "Fin" +#: lib/RT/CustomField_Overlay.pm:76 +msgid "Fill in up to %1 wikitext areas" +msgstr "Saisir au plus %1 champs de type wiki" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1598 msgid "Final Priority" msgstr "Priorité finale" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "PrioritéFinale" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 -msgid "Find group whose" -msgstr "Trouver un groupe dont" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 msgid "Find groups whose" msgstr "Trouver les groupes dont" -#: NOT FOUND IN SOURCE -msgid "Find new/open tickets" -msgstr "Accéder aux tickets en cours" - -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "Trouver les gens dont" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "Rechercher des tickets" -#: NOT FOUND IN SOURCE -msgid "Finish Approval" -msgstr "Terminer l'approbation" - -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "Premier" -#: NOT FOUND IN SOURCE -msgid "First page" -msgstr "Première page" - -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" -msgstr "Foo!" +msgstr "Foo !" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "Forcer la modification" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "Format" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "%quant(%1,ticket) trouvés" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:943 msgid "Found Object" msgstr "Objet trouvé" -#: NOT FOUND IN SOURCE -msgid "Freeform" -msgstr "FormulaireLibre" - -#: NOT FOUND IN SOURCE -msgid "FreeformContactInfo" -msgstr "SaisieLibreInfoContact" - -#: lib/RT/CustomField_Overlay.pm:37 -msgid "FreeformMultiple" -msgstr "SaisieLibreMultiple" - -#: lib/RT/CustomField_Overlay.pm:36 -msgid "FreeformSingle" -msgstr "SaisieLibreSimple" - -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "Ven." -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "En-têtes complets" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" msgstr "Obtenir le modèle àpartir d'un fichier" -#: NOT FOUND IN SOURCE -msgid "Getting the current user from a pgp sig\\n" -msgstr "Obtention de l'utilisateur courant depuis une signature pgp\\n" - -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "Donné à %1" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "Global" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:55 msgid "Global Custom Fields" msgstr "Champs personnalisés globaux" -#: NOT FOUND IN SOURCE -msgid "Global Keyword Selections" -msgstr "Mots clé globaux" +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "Configuration globale des champs personnalisés" -#: NOT FOUND IN SOURCE -msgid "Global Scrips" -msgstr "Scrips globaux" - -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" -msgstr "Modèle global: %1" +msgstr "Modèle global : %1" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" -msgstr "Go" +msgstr "Lancer" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" -msgstr "Go!" - -#: NOT FOUND IN SOURCE -msgid "Good pgp sig from %1\\n" -msgstr "Signature pgp valide pour %1\\n" - -#: NOT FOUND IN SOURCE -msgid "Goto page" -msgstr "Aller à la page" +msgstr "Lancer !" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "Aller au ticket" -#: NOT FOUND IN SOURCE -msgid "Grand" -msgstr "Accorder" - -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "Groupe" -#: NOT FOUND IN SOURCE -msgid "Group %1 %2: %3" -msgstr "Groupe %1 %2 : %3" - -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "Droits de groupe" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:983 msgid "Group already has member" msgstr "Le groupe a déjà un membre" -#: NOT FOUND IN SOURCE -msgid "Group could not be created." -msgstr "Le groupe n'a pas pu être créé" - -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Le groupe %1 n'a pu être créé" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:521 msgid "Group created" msgstr "Groupe ajouté" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1155 msgid "Group has no such member" msgstr "Un tel membre n'appartient pas au groupe" -#: 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 +#: lib/RT/Group_Overlay.pm:963 lib/RT/Queue_Overlay.pm:749 lib/RT/Queue_Overlay.pm:809 lib/RT/Ticket_Overlay.pm:1399 lib/RT/Ticket_Overlay.pm:1479 msgid "Group not found" msgstr "Groupe introuvable" -#: NOT FOUND IN SOURCE -msgid "Group not found.\\n" -msgstr "Groupe introuvable.\\n" - -#: NOT FOUND IN SOURCE -msgid "Group not specified.\\n" -msgstr "Groupe non spécifié.\\n" - -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "Groupes" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:989 msgid "Groups can't be members of their members" msgstr "Les groupes ne peuvent pas être membres de leurs membres" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:82 msgid "Groups matching search criteria" msgstr "Groupes correspondant au critère de recherche" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowRequestor:77 msgid "Groups this user belongs to" msgstr "Cette utilisateur appartient aux groupes" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: lib/RT/Interface/CLI.pm:94 lib/RT/Interface/CLI.pm:94 msgid "Hello!" -msgstr "Bonjour!" +msgstr "Bonjour !" -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "Bonjour, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "Historique" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) msgid "History of the group %1" msgstr "Historique du groupe %1" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) msgid "History of the user %1" msgstr "Historique de l'utilisateur %1" -#: NOT FOUND IN SOURCE -msgid "HomePhone" -msgstr "Téléphone domicile" - -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "Page d'accueil" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:119 #. (6) msgid "I have %quant(%1,concrete mixer)." -msgstr "J'ai %quant (%1, toupie à béton)" +msgstr "J'ai %quant(%1, toupie à béton)." -#: NOT FOUND IN SOURCE -msgid "I have [quant,_1,concrete mixer]." -msgstr "J'ai %quant (%1, toupie à béton)" +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "Je suis perdu" -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1523 msgid "Id" msgstr "Identifiant" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "Identité" @@ -2502,823 +1795,710 @@ msgstr "Identité" msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Si une approbation est refusée, rejette l'original et supprime les approbations en attente" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "" +msgstr "SI aucun demandeur n'est spécifié, créer les tickets pour ce demandeur." -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." -msgstr "Si aucune queue n'est spécifée, créer les tickets dans cette queue." +msgstr "Si aucune file n'est spécifée, créer les tickets dans cette file." -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "Si cet outil était setgid, un utilisateur local mal intentionné pourrait l'utiliser pour obtenir un access administrateur à RT" +msgstr "Si cet outil était setgid, un utilisateur local mal intentionné pourrait l'utiliser pour obtenir un accès administrateur à RT." -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" msgstr "Si vous avez fait une modification, assurez vous de" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:934 msgid "Illegal value for %1" msgstr "Valeur incorrecte pour %1" -#: NOT FOUND IN SOURCE -msgid "Image" -msgstr "Image" - -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:937 msgid "Immutable field" msgstr "Champ non modifiable" -#: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 -msgid "Include disabled custom fields in listing." -msgstr "Inclure les champs personnalisés désactivés dans la liste" - -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." msgstr "Inclure les groupes inactifs dans le listage." -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." -msgstr "Afficher les queues inactives." +msgstr "Afficher les files inactives." -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." -msgstr "Inclure les utilisateurs désactivés dans le résultat" +msgstr "Inclure les utilisateurs désactivés dans le résultat." + +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "Requête incomplète" -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "Requête incomplète" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1573 msgid "Initial Priority" msgstr "Priorité initiale" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "PrioritéInitiale" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "Erreur à l'entrée" -#: NOT FOUND IN SOURCE -msgid "Interest noted" -msgstr "Votre intéret est noté" - -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3467 msgid "Internal Error" msgstr "Erreur interne" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" -msgstr "Erreur interne: %1" +msgstr "Erreur interne : %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:668 msgid "Invalid Group Type" msgstr "Type de groupe invalide" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "Droit invalide" -#: NOT FOUND IN SOURCE -msgid "Invalid Type" -msgstr "Type invalide" - -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:939 msgid "Invalid data" msgstr "Données invalides" -#: NOT FOUND IN SOURCE -msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "Intervenant invalide, affectation à 'personne'" - -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" -msgstr "Queue invalide" +msgstr "File invalide" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "Droit invalide" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" -msgstr "Queue invalide pour %1" +msgstr "File invalide pour %1" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1598 msgid "Invalid value for custom field" msgstr "Valeur incorrecte pour le champ personnalisé" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "Valeur de statut invalide" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "Il est extrêmement important que les utilisateurs non authorisés n'aient pas accès à cet outil" +msgstr "Il est extrêmement important que les utilisateurs non autorisés n'aient pas accès à cet outil." -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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 "Il est suggéré de créer un utilisateur unix non privilégié appartenant au bon groupe et ayant accès à RT pour utiliser cet outil" +msgstr "Il est suggéré de créer un utilisateur Unix non privilégié appartenant au bon groupe et ayant accès à RT pour utiliser cet outil." -#: bin/rt-crontool:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" -msgstr "Il faut plusieurs paramètres:" +msgstr "Il faut plusieurs paramètres :" -#: NOT FOUND IN SOURCE -msgid "Items pending my approval" -msgstr "Eléments attendant mon approbation" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "Italique" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "Jan." -#: NOT FOUND IN SOURCE -msgid "January" -msgstr "Janvier" - -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:166 msgid "Join or leave this group" msgstr "Rejoignez ou quittez ce groupe" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "Jul." -#: NOT FOUND IN SOURCE -msgid "July" -msgstr "Juillet" - -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "Tout" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "Jun." -#: NOT FOUND IN SOURCE -msgid "June" -msgstr "Juin" - -#: NOT FOUND IN SOURCE -msgid "Keyword" -msgstr "Mot Clé" - -#: NOT FOUND IN SOURCE -msgid "Lang" -msgstr "Lang" - -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" msgstr "Langue" -#: html/Ticket/Elements/Tabs:74 +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "Grande" + +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "Dernier" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "Dernier contact" -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" - -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "Date dernier contact" -#: NOT FOUND IN SOURCE -msgid "Last Notified" -msgstr "Dernière notification" - -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "Date dernière MAJ" -#: NOT FOUND IN SOURCE -msgid "LastUpdated" -msgstr "DernièreMAJ" - -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" msgstr "DernièreMAJPar" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "Restant" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "Donner accès à RT à cet utilisateur" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" msgstr "Autoriser cet utilisateur à recevoir des droits" -#: NOT FOUND IN SOURCE -msgid "Limiting owner to %1 %2" -msgstr "Limitation des intervenants à %1 %2" +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "Relation" -#: NOT FOUND IN SOURCE -msgid "Limiting queue to %1 %2" -msgstr "Limitation de la queue à %1 %2" - -#: lib/RT/Record.pm:1086 +#: lib/RT/Record.pm:1293 msgid "Link already exists" msgstr "Le lien existe déja" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1307 msgid "Link could not be created" msgstr "Le lien ne peut être ajouté" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1313 #. ($TransString) msgid "Link created (%1)" msgstr "Le lien est ajouté (%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1374 #. ($TransString) msgid "Link deleted (%1)" msgstr "Le lien est effacé (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1380 msgid "Link not found" msgstr "Lien introuvable" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Lier le ticket n°%1" -#: NOT FOUND IN SOURCE -msgid "Link ticket %1" -msgstr "Lier au ticket %1" - -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "Relations" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" -msgstr "Charge" +msgstr "Charger" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" -msgstr "Charger les recherches sauvées:" +msgstr "Charger les recherches sauvées :" -#: html/Admin/Tools/Configuration.html:19 +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "ChargerRechercheSauvée" + +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" msgstr "Modules perl chargés" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "Recherche %1 chargée" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "Localisation" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." -msgstr "Le répertoire de log %1 est introuvable ou en lecture seule. \\n RT ne peut pas démarrer" +msgstr "Le répertoire de journalisation %1 est introuvable ou inaccessible en écriture.\\n RT ne peut être lancé." -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Connecté en tant que %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "Connexion" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "Déconnexion" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:866 msgid "Lookup type mismatch" msgstr "Faire attention aux types différents" -#: html/Search/Bulk.html:83 +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "Attribuer" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "Appliquer Statut" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "Appliquer date d'échéance" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "Appliquer date de résolution" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" msgstr "Appliquer date de début" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" msgstr "Appliquer date d'ouverture" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "Appliquer Age" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "Appliquer priorité" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" -msgstr "Appliquer queue" +msgstr "Appliquer file" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "Changer le sujet" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" -msgstr "" +#: lib/RT/Group_Overlay.pm:169 +msgid "Make this group visible to user" +msgstr "Malkovich Malkovich Malkovich Malkovich" -#: NOT FOUND IN SOURCE +#: html/Admin/index.html:78 msgid "Manage custom fields and custom field values" -msgstr "Gérer les champs personnalisés et leur valeurs" +msgstr "Gérer les champs personnalisés et leurs valeurs" -#: html/Admin/index.html:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" msgstr "Gérer les groupes et leurs membres" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" -msgstr "Gérer les propriétés et configurations générales des queues" +msgstr "Gérer les propriétés et configurations générales des files" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" -msgstr "Gérer les queues et leurs propriétés individuelles" +msgstr "Gérer les files et leurs propriétés individuelles" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "Gérer les utilisateurs et mots de passe" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "Mar." -#: NOT FOUND IN SOURCE -msgid "March" -msgstr "Mars" - -#: NOT FOUND IN SOURCE -msgid "May" -msgstr "Mai" - -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "Mai." -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" msgstr "Membre %1 ajouté" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" msgstr "Membre %1 supprimé" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1000 msgid "Member added" msgstr "Membre ajouté" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1162 msgid "Member deleted" msgstr "Membre supprimé" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1166 msgid "Member not deleted" msgstr "Membre non supprimé" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "Membre de" -#: NOT FOUND IN SOURCE -msgid "MemberOf" -msgstr "MembreDe" - -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "Membres" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" msgstr "Appartenance à %1 ajoutée" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" msgstr "Appartenance à %1 supprimée" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:61 msgid "Memberships" msgstr "Affiliations" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) msgid "Memberships of the user %1" msgstr "Affiliations de l'utilisateur %1" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2857 msgid "Merge Successful" msgstr "Fusion réussie" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2744 msgid "Merge failed. Couldn't set EffectiveId" -msgstr "Echec de fusion. Ne peut appliquer EffectiveId" +msgstr "Échec de fusion. Ne peut appliquer EffectiveId" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2752 +msgid "Merge failed. Couldn't set Status" +msgstr "Échec de fusion. Ne peut appliquer Status" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "Fusionner dans" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" msgstr "Fusionné avec %1" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "Message" -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2414 msgid "Message could not be recorded" msgstr "Le message ne peut être sauvegardé" -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2417 msgid "Message recorded" msgstr "Message sauvegardé" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." msgstr "Les messages relatifs à ce ticket ne seront pas envoyés à..." -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "Parenthèses non correspondantes" + +#: lib/RT/Record.pm:941 msgid "Missing a primary key?: %1" -msgstr "Clé primaire manquante? : %1" +msgstr "Clé primaire manquante ? : %1" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "Mobile" -#: NOT FOUND IN SOURCE -msgid "MobilePhone" -msgstr "MobilePhone" - -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "Modifier la liste de droits" -#: NOT FOUND IN SOURCE -msgid "Modify Custom Field %1" -msgstr "Modifier champ personnalisé %1" +#: html/Admin/Elements/ObjectCustomFields:96 +#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) +msgid "Modify Custom Fields which apply to %1 for all %2" +msgstr "Modifier les champs personnalisés s'appliquant à %1 pour tous les %2" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/ObjectCustomFields:98 +#. (loc(lc($Types))) msgid "Modify Custom Fields which apply to all %1" msgstr "Modifier les champs personnalisés qui s'appliquent à tous les %1" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 -msgid "Modify Custom Fields which apply to all queues" -msgstr "Modifier les champs personnalisés globaux" - -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 msgid "Modify Group Rights" -msgstr "" +msgstr "Modifier les droits du groupe" -#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" -msgstr "" +msgstr "Modifier les membres" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" -msgstr "" +msgstr "Modifier les droits" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" -msgstr "Modifier les modèles de Scrips pour cette queue" +msgstr "Modifier les modèles de Scrips pour cette file" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" -msgstr "Modifier les Scrips pour cette queue" +msgstr "Modifier les Scrips pour cette file" -#: NOT FOUND IN SOURCE -msgid "Modify System ACLS" -msgstr "Modifier ACLs système" - -#: NOT FOUND IN SOURCE -msgid "Modify Template %1" -msgstr "Modifier le modèle %1" - -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 msgid "Modify User Rights" -msgstr "" +msgstr "Modifier les droits des usagers" -#: html/Admin/Queues/CustomField.html:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" -msgstr "Modifier un champ personnalisé pour la queue %1" - -#: html/Admin/Global/CustomField.html:52 -msgid "Modify a CustomField which applies to all queues" -msgstr "Modifier un champ personnalisé global" +msgstr "Modifier un champ personnalisé pour la file %1" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" -msgstr "Modifier le scrip pour la queue %1" +msgstr "Modifier le scrip pour la file %1" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" -msgstr "Modiier le scrip qui s'applique à toutes les queues" +msgstr "Modifier le scrip qui s'applique à toutes les files" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) msgid "Modify associated objects for %1" msgstr "Modifier les objets associés à %1" -#: NOT FOUND IN SOURCE -msgid "Modify dates for # %1" -msgstr "Modifier les dates pur n°%1" - -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Modifier les dates pour n°%1" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Modifier les dates du ticket n°%1" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: html/Admin/Elements/GlobalCustomFieldTabs:65 html/Admin/Global/index.html:72 +msgid "Modify global custom fields" +msgstr "Modifier globalement les champs personnalisés" + +#: 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 "Modifier les droits de groupe globaux" -#: html/Admin/Global/GroupRights.html:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." -msgstr "Modifier les droits de groupe globaux" - -#: NOT FOUND IN SOURCE -msgid "Modify global rights for groups" -msgstr "Modifier les droits globaux des groupes" +msgstr "Modifier les droits de groupe globaux." -#: NOT FOUND IN SOURCE -msgid "Modify global rights for users" -msgstr "Modifier les droits globaux des utilisateurs" - -#: NOT FOUND IN SOURCE -msgid "Modify global scrips" -msgstr "Modifier les scrips globaux" - -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 msgid "Modify global user rights" msgstr "Modifier les droits utilisateurs globaux" -#: html/Admin/Global/UserRights.html:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." -msgstr "Modifier les droits utilisateurs globaux" +msgstr "Modifier les droits utilisateurs globaux." -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:163 msgid "Modify group metadata or delete group" msgstr "Modifier les métadonnées ou supprimer le groupe" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" msgstr "Modifier les droits de groupe pour le champ personnalisé %1" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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 "Modifier les droits du groupe %1" -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" -msgstr "Modifier les droits de groupe pour la queue %1" +msgstr "Modifier les droits de groupe pour la file %1" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:165 msgid "Modify membership roster for this group" -msgstr "Modifier le membership roster pour ce groupe" +msgstr "Modifier la liste des membres pour ce groupe" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" -msgstr "Modifier son propre profile RT" +msgstr "Modifier son propre profil RT" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" -msgstr "Modifier les utilisateurs de la queue %1" +msgstr "Modifier les utilisateurs de la file %1" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" msgstr "Modifier les utilisateurs du ticket n°%1" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" -msgstr "Modifier les scrips de la queue %1" +msgstr "Modifier les scrips de la file %1" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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 "Modifier les scrips s'appliquant à toutes les queues" +msgstr "Modifier les scrips s'appliquant à toutes les files" -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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 "Modifier le modèle %1" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "Modifier les modèles globaux" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" msgstr "Modifier le groupe %1" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" -msgstr "Modifier les observateurs de la queue" +msgstr "Modifier les observateurs de la file" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Modifier l'utilisateur %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" -msgstr "Modifier le ticket # %1" +msgstr "Modifier le ticket n°%1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Modifier le ticket n°%1" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "Modifier les tickets" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) msgid "Modify user rights for custom field %1" msgstr "Modifier les droits utilisateurs pour le champ personnalisé %1" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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 "Modifier les droits utilisateurs pour le groupe %1" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" -msgstr "Modifier les droits utilisateurs pour la queue %1" - -#: NOT FOUND IN SOURCE -msgid "Modify watchers for queue '%1'" -msgstr "Modifier les observateurs dela queue '%1'" +msgstr "Modifier les droits utilisateurs pour la file %1" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" msgstr "ModifierACL" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "ModifierChampPersonnalisé" + +#: lib/RT/Group_Overlay.pm:166 msgid "ModifyOwnMembership" msgstr "ModifierPropresAppartenances" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "ModifierObservateurs" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "ModifierScrips" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "ModifierDonnéesPerso" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "ModifierModèle" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "ModifierTicket" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "Lun." -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" -msgstr "Plus d'info sur %1" - -#: NOT FOUND IN SOURCE -msgid "Move" -msgstr "Déplacer" +msgstr "Plus d'informations sur %1" -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "Aller en bas" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "Aller en haut" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "Multiple" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "Attribut 'Nom' obligatoire" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" msgstr "Mes tickets %1s" -#: NOT FOUND IN SOURCE -msgid "My Approvals" -msgstr "Mes approbations" - -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "Mes approbations" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" msgstr "Mes recherches" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "Nom" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "Nom utilisé" -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Need approval from system administrator" -msgstr "Approbation de l'administrateur système nécessaire" - -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "Jamais" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "Nouveau" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" -msgstr "" +msgstr "Nouveaux liens" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "Nouveau mot de passe" @@ -3326,296 +2506,229 @@ msgstr "Nouveau mot de passe" msgid "New Pending Approval" msgstr "Nouvelles approbations en attente" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" msgstr "Nouvelle requête" -#: NOT FOUND IN SOURCE -msgid "New Relationships" -msgstr "Nouvelles relations" - -#: NOT FOUND IN SOURCE -msgid "New Search" -msgstr "Nouvelle recherche" - -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "Nouveau champ personnalisé" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "Nouveau groupe" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "Nouveau mot de passe" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "Notification de nouveau mot de passe envoyée" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" -msgstr "Nouvelle queue" +msgstr "Nouvelle file" -#: NOT FOUND IN SOURCE -msgid "New request" -msgstr "Nouvelle demande" - -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "Nouveaux droits" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "Nouveau scrip" -#: NOT FOUND IN SOURCE -msgid "New search" -msgstr "Nouvelle recherche" - -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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 "Nouveau modèle" -#: html/SelfService/Elements/Tabs:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "Nouveau ticket" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2721 msgid "New ticket doesn't exist" msgstr "Nouveau ticket inconnu" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "Nouvel utilisateur" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "Nouvel utilisateur appelé" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "Nouveaux observateurs" -#: NOT FOUND IN SOURCE -msgid "New window setting" -msgstr "Nouveaux paramètres d'affichage" - -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "Suivant" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" msgstr "Page suivante" -#: NOT FOUND IN SOURCE -msgid "Next page" -msgstr "Page suivante" - -#: NOT FOUND IN SOURCE -msgid "NickName" -msgstr "Surnom" - -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "Surnom" -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "Aucune classe définie" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "Aucun champ personnalisé" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" msgstr "Aucun champ personnalisé défini" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" msgstr "Aucun groupe défini" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" msgstr "Aucune requête" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" -msgstr "Aucune queue définie" +msgstr "Aucune file définie" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "Aucun utilisateur RT trouvé. Merci de consulter votre administrateur RT" +msgstr "Pas d'utilisateur RT trouvé. Merci de consulter votre administrateur RT.\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "Pas de modèle" -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket " -msgstr "Aucun ticket spécifié. Annulation de ticket" - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket modifications\\n\\n" -msgstr "Aucun ticket spécifié. Annulation des modifications de tickets\\n\\n" - -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "Pas d'action" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:936 msgid "No column specified" msgstr "Aucune colonne spécifiée" -#: NOT FOUND IN SOURCE -msgid "No command found\\n" -msgstr "Commande introuvable\\n" - -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" msgstr "Pas de commentaires concernant cet utilisateur" -#: NOT FOUND IN SOURCE -msgid "No correspondence attached" -msgstr "Pas de texte dans le courrier" - -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "Aucune description disponible pour %1" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "Aucun groupe spécifié" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:52 msgid "No groups matching search criteria found." msgstr "Aucun groupe trouvé d'après le critère de recherche." -#: lib/RT/Ticket_Overlay.pm:2475 +#: lib/RT/Ticket_Overlay.pm:2357 msgid "No message attached" msgstr "Aucun messages attachés" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "Pas de mot de passe configuré" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:362 msgid "No permission to create queues" -msgstr "Permission refusée pour la création de queue" +msgstr "Permission refusée pour la création de file" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" -msgstr "Vous n'êtes pas autorisé à créer un ticket dans cette queue '%1'" +msgstr "Vous n'êtes pas autorisé à créer un ticket dans cette file '%1'" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "Permission refusée pour la création d'utilisateurs" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:167 msgid "No permission to display that ticket" msgstr "Pas de permission pour afficher ce ticket" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" msgstr "Pas de permission pour afficher le ticket mis à jour" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:796 lib/RT/Ticket_Overlay.pm:1458 msgid "No principal specified" msgstr "Aucun groupe/utilisateur spécifié" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." -msgstr "Aucun groupe/utilisateur sélectionné" +msgstr "Aucun groupe/utilisateur sélectionné." -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." -msgstr "Pas de queue correspondant aux critères de recherche" +msgstr "Pas de file correspondant aux critères de recherche." -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "Aucun droit trouvé" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." -msgstr "Aucun droit accordé" +msgstr "Aucun droit accordé." + +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "Pas de recherche chargée" -#: html/Search/Bulk.html:162 +#: html/Search/Bulk.html:194 msgid "No search to operate on." msgstr "Pas de critère de recherche." -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" msgstr "Pas de sujet" -#: NOT FOUND IN SOURCE -msgid "No ticket id specified" -msgstr "Aucun numéro de ticket spécifié." - -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" -msgstr "Aucun type de transaction spécifié." - -#: NOT FOUND IN SOURCE -msgid "No user or email address specified" -msgstr "Aucun utilisateur ou adresse email spécifié" +msgstr "Aucun type de transaction spécifié" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "Aucun utilisateur ne correspond aux critères de recherche." -#: NOT FOUND IN SOURCE -msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" -msgstr "Aucun utilisateur RT valide trouvé. Gestionnaire de cvs RT inaccessible. Merci de contacter votre administrateur RT.\\n" - -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:933 msgid "No value sent to _Set!\\n" -msgstr "Aucune valeur envoyée à _Set!\\n" +msgstr "Pas de valeur à positionner !\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "Personne" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:938 msgid "Nonexistant field?" -msgstr "Champ inexistant?" +msgstr "Champ inexistant ?" -#: NOT FOUND IN SOURCE -msgid "Not logged in" -msgstr "Non loggé" - -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." -msgstr "Non connecté" +msgstr "Non connecté." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "Non renseigné" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." -msgstr "Fonction pas encore disponible" - -#: NOT FOUND IN SOURCE -msgid "Not yet implemented...." -msgstr "Fonction pas encore disponible..." +msgstr "Fonction pas encore disponible." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "Notes" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "Impossible d'envoyer la notification" @@ -3629,11 +2742,11 @@ msgstr "Avertir les AdminCCs par un commentaire" #: etc/initialdata:93 etc/upgrade/3.1.17/content:6 msgid "Notify Ccs" -msgstr "" +msgstr "Aviser par cc" #: etc/initialdata:89 etc/upgrade/3.1.17/content:2 msgid "Notify Ccs as Comment" -msgstr "" +msgstr "Aviser par cc pour commentaires" #: etc/initialdata:128 msgid "Notify Other Recipients" @@ -3687,51 +2800,57 @@ msgstr "Avertir les demandeurs, CCs et AdminCCs" msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Avertir les demandeurs, CCs et AdminCCs par un commentaire" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "Nov." -#: NOT FOUND IN SOURCE -msgid "November" -msgstr "Novembre" +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "OU" -#: lib/RT/Record.pm:200 +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "L'objet n'a pas pu être ajouté" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "Impossible d'effacer l'objet" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "Objet ajouté" -#: NOT FOUND IN SOURCE +#: lib/RT/Record.pm:121 +msgid "Object deleted" +msgstr "Objet effacé" + +#: html/Admin/CustomFields/Objects.html:72 html/Admin/Elements/ObjectCustomFields:63 +#. ($ObjectType) +#. ($LookupType) msgid "Object of type %1 cannot take custom fields" msgstr "Les objets de type %1 ne peuvent avoir de champs personnalisés" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:901 msgid "Object type mismatch" msgstr "Le type d'objet ne correspond pas" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "Oct." -#: NOT FOUND IN SOURCE -msgid "October" -msgstr "Octobre" - -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" msgstr "Déconnecté" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" -msgstr "Édition hors ligne©" +msgstr "Édition hors ligne" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" -msgstr "Upload hors ligne" +msgstr "Téléchargement hors ligne" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "Le" @@ -3753,11 +2872,11 @@ msgstr "Lors d'un changement d'intervenant" #: etc/initialdata:177 etc/upgrade/3.1.17/content:15 msgid "On Priority Change" -msgstr "" +msgstr "Lors d'un changement de priorité" #: etc/initialdata:192 msgid "On Queue Change" -msgstr "Lors d'un changement de queue" +msgstr "Lors d'un changement de file" #: etc/initialdata:198 msgid "On Resolve" @@ -3771,149 +2890,130 @@ msgstr "Lors d'un changement de statut" msgid "On Transaction" msgstr "Lors d'une transaction" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "Ne montrer que les approbations pour les demandes créées après %1" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "Ne montrer que les approbations pour les demandes créées avant %1" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "Ouvert" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "Ouvrir" -#: NOT FOUND IN SOURCE -msgid "Open requests" -msgstr "Ouvrir les demandes" - -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" msgstr "Tickets ouverts" -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in a new window" -msgstr "Ouvrir les tickets (depuis une liste) dans une nouvelle fenêtre." - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in another window" -msgstr "Ouvrir les tickets (depuis une liste) dans une autre fenêtre." - #: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "Ouvrir les tickets lors d'une correspondance" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" msgstr "Trier par" -#: NOT FOUND IN SOURCE -msgid "Ordering and sorting" -msgstr "Ranger et classer" - -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "Organisation" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Ticket source: n°%1" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" msgstr "Mail sortant suite à l'enregistrement d'un commentaire" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" msgstr "Mail sortant enregistré" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" -msgstr "Temps dépassé, priorité déplacée" +msgstr "Temps dépassé, priorité augmentée" -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "Tickets propres" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "PrendreTicket" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1763 msgid "Owner" msgstr "Intervenant" -#: NOT FOUND IN SOURCE -msgid "Owner changed from %1 to %2" -msgstr "Intervenant changé de %1 en %2" - -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." -msgstr "Le propriétaire ne peu être sauvé" +msgstr "Le propriétaire ne peut être sauvé." -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Intervenant forcé de %1 à %2" -#: NOT FOUND IN SOURCE -msgid "Owner is" -msgstr "L'intervenant est" - -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" msgstr "Page %1 sur %2" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "Bipeur" -#: NOT FOUND IN SOURCE -msgid "PagerPhone" -msgstr "PagerPhone" - -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "Parents" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "Mot de passe" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "Pense-bête pour votre mot de passe" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 -msgid "Password too short" -msgstr "Mot de passe trop court" +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "Mot de passe changé" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "Le mot de passe doit comporter au moins %1 caractères" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "Mot de passe défini" + +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" -msgstr "Mot de passe: %1" +msgstr "Mot de passe : %1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "Mot de passe : permission refusée" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." -msgstr "Les mots de passes sont différents" +msgstr "Les mots de passe sont différents." -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "Les mots de passe sont différents. Votre mot de passe n'a pas été modifié" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "Personnes" @@ -3921,76 +3021,60 @@ msgstr "Personnes" msgid "Perform a user-defined action" msgstr "Réaliser une action définie par l'utilisateur" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" msgstr "Configuration de Perl" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 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:1055 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:658 lib/RT/Queue_Overlay.pm:668 lib/RT/Queue_Overlay.pm:682 lib/RT/Queue_Overlay.pm:820 lib/RT/Queue_Overlay.pm:829 lib/RT/Queue_Overlay.pm:842 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1326 lib/RT/Ticket_Overlay.pm:1336 lib/RT/Ticket_Overlay.pm:1350 lib/RT/Ticket_Overlay.pm:1491 lib/RT/Ticket_Overlay.pm:1501 lib/RT/Ticket_Overlay.pm:1515 lib/RT/Ticket_Overlay.pm:1632 lib/RT/Ticket_Overlay.pm:1952 lib/RT/Ticket_Overlay.pm:2090 lib/RT/Ticket_Overlay.pm:2260 lib/RT/Ticket_Overlay.pm:2310 lib/RT/Ticket_Overlay.pm:2482 lib/RT/Ticket_Overlay.pm:2585 lib/RT/Ticket_Overlay.pm:2633 lib/RT/Ticket_Overlay.pm:2712 lib/RT/Ticket_Overlay.pm:2726 lib/RT/Ticket_Overlay.pm:2950 lib/RT/Ticket_Overlay.pm:2960 lib/RT/Ticket_Overlay.pm:2965 lib/RT/Ticket_Overlay.pm:3188 lib/RT/Ticket_Overlay.pm:3192 lib/RT/Ticket_Overlay.pm:3335 lib/RT/Ticket_Overlay.pm:3461 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "Accès refusé" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "Groupes personnels" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "Groupes personnels" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "Groupes personnels:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "Numéros de téléphone" -#: NOT FOUND IN SOURCE -msgid "Placeholder" -msgstr "Paramètre fictif" - -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "Préférences" -#: NOT FOUND IN SOURCE -msgid "Prefs" -msgstr "Préférences" - -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "Préparation interrompue" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "Précédent" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" msgstr "Page précédente" -#: NOT FOUND IN SOURCE -msgid "Previous page" -msgstr "Page précédente" - -#: NOT FOUND IN SOURCE -msgid "Pri" -msgstr "Pri." - -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." -msgstr "Principal %1 non trouvé" +msgstr "Personne/groupe %1 non trouvé." -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1547 msgid "Priority" msgstr "Priorité" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "La priorité débute à " -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" msgstr "Privé:" @@ -3998,638 +3082,473 @@ msgstr "Privé:" msgid "Privileged" msgstr "Privilégié" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" -msgstr "Statuts privilégiés : %1" +msgstr "Statut privilégiés : %1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "Utilisateurs privilégiés" -#: NOT FOUND IN SOURCE -msgid "Projects" -msgstr "Projets" - #: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 msgid "Pseudogroup for internal use" msgstr "Pseudo groupe pour usage interne" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" msgstr "Requête" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" msgstr "Constructeur de requête" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1374 msgid "Queue" -msgstr "Queue" +msgstr "File" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" -msgstr "Queue %1 non trouvée" +msgstr "File %1 non trouvée" -#: NOT FOUND IN SOURCE -msgid "Queue '%1' not found\\n" -msgstr "Queue '%1' inconnue\\n" - -#: NOT FOUND IN SOURCE -msgid "Queue Keyword Selections" -msgstr "Sélection des mots clé de queue" - -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" -msgstr "Nom de la queue" - -#: NOT FOUND IN SOURCE -msgid "Queue Scrips" -msgstr "Scrips de queue" +msgstr "Nom de la file" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:366 msgid "Queue already exists" -msgstr "Queue déjà créée" +msgstr "File déjà créée" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:375 lib/RT/Queue_Overlay.pm:381 msgid "Queue could not be created" -msgstr "Impossible de créer la queue" +msgstr "Impossible de créer la file" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 msgid "Queue could not be loaded." -msgstr "Queue ne pouvant être chargée" +msgstr "File ne pouvant être chargée." -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:385 lib/RT/StyleGuide.pod:809 msgid "Queue created" -msgstr "Queue créée" +msgstr "File créée" -#: NOT FOUND IN SOURCE -msgid "Queue is not specified." -msgstr "Queue non spécifié" - -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:126 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" -msgstr "Queue inconnue" +msgstr "File inconnue" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" -msgstr "Queues" +msgstr "Files" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "Recherche rapide" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" -msgstr "Création de ticket rapide" +msgstr "Création rapide de ticket" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "RSS" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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 pour %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://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:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "Administration RT" -#: NOT FOUND IN SOURCE -msgid "RT Authentication error." -msgstr "Erreur d'authentification RT." - -#: NOT FOUND IN SOURCE -msgid "RT Bounce: %1" -msgstr "Avis de rejet RT: %1" - -#: NOT FOUND IN SOURCE -msgid "RT Configuration error" -msgstr "Erreur de configuration RT" - -#: NOT FOUND IN SOURCE -msgid "RT Critical error. Message not recorded!" -msgstr "Erreur critique RT. Courrier non enregistré !" - -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "Erreur RT" -#: NOT FOUND IN SOURCE -msgid "RT Received mail (%1) from itself." -msgstr "RT a reçu un e-mail (%1) de lui-même." - -#: NOT FOUND IN SOURCE -msgid "RT Recieved mail (%1) from itself." -msgstr "RT a reçu du courrier (%1) de lui même" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service / Closed Tickets" -msgstr "RT Self Service / Tickets résolus" - -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" msgstr "Variables de RT" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" -msgstr "RT en un coup d'oeil" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't authenticate you" -msgstr "RT n'a pas réussi à vous identifier" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find requestor via its external database lookup" -msgstr "RT n'a pas pu trouver de demandeur par sa recherche dans une base externe" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find the queue: %1" -msgstr "RT n'a pas trouvé la queue" +msgstr "RT en un coup d'Å“il" -#: NOT FOUND IN SOURCE -msgid "RT couldn't validate this PGP signature. \\n" -msgstr "RT n'a pas réussi à valider cette signature PGP. \\n" +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." +msgstr "RT ne peut enregistrer votre session." -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "RT pour %1" -#: NOT FOUND IN SOURCE -msgid "RT for %1: %2" -msgstr "RT pour %1: %2" - -#: NOT FOUND IN SOURCE -msgid "RT has proccessed your commands" -msgstr "RT a exécuté vos commandes" - -#: 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 est © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. Distribué sous <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 de la licence générale GNU.</a>" - -#: 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 "" - -#: 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 est © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. Distribué sous <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 de la licence générale GNU.</a>" - -#: NOT FOUND IN SOURCE -msgid "RT thinks this message may be a bounce" -msgstr "RT pense que ce courrier peut être un avis de non-distribution" - -#: NOT FOUND IN SOURCE -msgid "RT will process this message as if it were unsigned.\\n" -msgstr "RT va traiter ce courrier comme s'il n'était pas signé.\\n" - -#: 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 "L'interface d'utilisation de RT par email utilise une authentification PGP. Soit vous n'avez pas signé votre courrier, soit la signature est n'a pas pu être vérifiée" - -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "Nom" -#: NOT FOUND IN SOURCE -msgid "RealName" -msgstr "RealName" - -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "Ajout d'une référence par %1" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "Suppression de la référence par %1" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" -msgstr "Ajout d'une reference à %1" +msgstr "Ajout d'une référence à %1" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" -msgstr "Suppression d'une reference à %1" +msgstr "Suppression d'une référence à %1" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "Mentionné par" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "Se rapporte à" -#: NOT FOUND IN SOURCE -msgid "RefersTo" -msgstr "SeRapporteA" - -#: NOT FOUND IN SOURCE -msgid "Refine" -msgstr "Affiner" - -#: NOT FOUND IN SOURCE -msgid "Refine search" -msgstr "Affiner la recherche" - -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Rafraîchir cette page toutes les %1 minutes." -#: NOT FOUND IN SOURCE -msgid "Relationships" -msgstr "Relations" - -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" -msgstr "Enlever AdminCc " +msgstr "Enlever AdminCc" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "Enlever Cc" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "Enlever Demandeur" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "Répondre" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" msgstr "Adresse de réponse" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" msgstr "Répondre aux demandeurs" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "Répondre aux tickets" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "RépondreTicket" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "Demandeur" -#: NOT FOUND IN SOURCE -msgid "Requestor email address" -msgstr "Adresse email du demandeur" - -#: NOT FOUND IN SOURCE -msgid "Requestor(s)" -msgstr "Demandeur(s)" - -#: NOT FOUND IN SOURCE -msgid "RequestorAddresses" -msgstr "AdresseDuDemandeur" - -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "Demandeurs" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "Le demande doit être résolue dans" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" -msgstr "Le paramêtre requis '%1' n'est pas spécifié" +msgstr "Le paramètre requis '%1' n'est pas spécifié" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "Remise à zéro" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "Domicile" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "Résoudre" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" -msgstr "Résoudre ticket n°%1 (%2)" +msgstr "Résoudre le ticket n°%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "Résolu" -#: NOT FOUND IN SOURCE -msgid "Response to requestors" -msgstr "Réponse aux demandeurs" - -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "Résultats" -#: NOT FOUND IN SOURCE -msgid "Results per page" -msgstr "Nb tickets par page" - -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "Saisissez à nouveau votre mot de passe" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" msgstr "Annuler" -#: NOT FOUND IN SOURCE -msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" -msgstr "Le droit %1 introuvable pour %2 %3 dans le périmètre %4 (%5)\\n" - -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "Droit délégué" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "Droit accordé" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "Droit activé" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "Droit irrévocable" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "Droit inconnu" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." -msgstr "Droit non activé" +msgstr "Droit non activé." -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "Droit révoqué" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "Droits" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" -msgstr "Les droits n'on pas pu être attribués à %1" +msgstr "Les droits n'ont pas pu être attribués à %1" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "Les droits n'ont pas pu être révoqués pour %1" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "Rôles" -#: NOT FOUND IN SOURCE -msgid "RootApproval" -msgstr "ApprobationDeRoot" - -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" msgstr "Lignes par pages" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "Sam." -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" msgstr "Sauver" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "Enregistrer les modifications" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" -msgstr "" +msgstr "Sauvegarder les préférences" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "Enregistrer les modifications" -#: html/Search/Elements/EditSearches:1 +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "Recherche %1 sauvée" + +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" msgstr "Recherches sauvées" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip n°%1" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "Scrip ajouté" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" -msgstr "" +msgstr "Champs de scrip" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "Scrip supprimé" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "Scrips" -#: NOT FOUND IN SOURCE -msgid "Scrips for %1\\n" -msgstr "Scrips pour %1\\n" - -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" -msgstr "Scrips s'appliquant à toutes les queues" +msgstr "Scrips s'appliquant à toutes les files" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "Rechercher" -#: NOT FOUND IN SOURCE -msgid "Search Criteria" -msgstr "Critère de recherche" +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "Impossible de charger les attributs de recherche" -#: html/Approvals/Elements/PendingMyApproval:38 +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" -msgstr "Chercher des approbations" - -#: NOT FOUND IN SOURCE -msgid "Search for articles" -msgstr "" +msgstr "Rechercher des approbations" -#: NOT FOUND IN SOURCE -msgid "Searches can't be associated with that kind of object" -msgstr "Les recherches ne peuvent être associées à ce type d'objet" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" +msgstr "Mise à jour de la recherche %1" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" -msgstr "Sécurité:" +msgstr "Sécurité :" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "See custom fields" msgstr "Voir les champs personnalisés" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" -msgstr "Voir les emails sortant et leurs destinataires" +msgstr "Voir les mails sortant et leurs destinataires" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" msgstr "Voir les commentaires privés du ticket" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" -msgstr "Vue récapilutative des tickets" +msgstr "Vue récapitulative des tickets" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "SeeCustomField" msgstr "VoirChampPersonnalisé" -#: lib/RT/Queue_Overlay.pm:68 -msgid "SeeQueue" -msgstr "VoirQueue" - -#: NOT FOUND IN SOURCE -msgid "Select" -msgstr "Selectionner" +#: lib/RT/Group_Overlay.pm:169 +msgid "SeeGroup" +msgstr "VoirGroupe" -#: NOT FOUND IN SOURCE -msgid "Select a Class" -msgstr "" +#: lib/RT/Queue_Overlay.pm:92 +msgid "SeeQueue" +msgstr "VoirFile" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 msgid "Select a Custom Field" -msgstr "Choisir un champ personnalisé" - -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" -msgstr "" +msgstr "Choisissez un champ personnalisé" -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" msgstr "Choisir un groupe" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" -msgstr "Choisir une queue" +msgstr "Choisir une file" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +#: html/SelfService/CreateTicketInQueue.html:48 +msgid "Select a queue for your new ticket" +msgstr "Choisir une file pour votre nouveau ticket" + +#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 msgid "Select a user" msgstr "Choisir un utilisateur" -#: NOT FOUND IN SOURCE -msgid "Select class" -msgstr "" - -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +#: html/Admin/Elements/CustomFieldTabs:90 msgid "Select custom field" msgstr "Choisir le champ personnalisé" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: html/Admin/Global/CustomFields/index.html:70 +msgid "Select custom fields for all user groups" +msgstr "Choisir des champs personnalisés pour tous les groupes d'utilisateurs" + +#: html/Admin/Global/CustomFields/index.html:65 +msgid "Select custom fields for all users" +msgstr "Choisir des champs personnalisés pour tous les utilisateurs" + +#: html/Admin/Global/CustomFields/index.html:76 +msgid "Select custom fields for tickets in all queues" +msgstr "Choisir des champs personnalisés pour toutes les files" + +#: html/Admin/Global/CustomFields/index.html:83 +msgid "Select custom fields for transactions on tickets in all queues" +msgstr "Choisir des champs personnalisés pour les opération sur les tickets de toutes les files" + +#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 msgid "Select group" msgstr "Choisir le groupe" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "Choisir plusieurs valeurs" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "Choisir une valeur" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" -msgstr "Choisir la queue" +msgstr "Choisir la file" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "Choisir le scrip" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "Choisir le modèle" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:61 msgid "Select up to %1 values" -msgstr "Choisir un maximum de %1 valeurs " +msgstr "Choisir au plus %1 valeurs" -#: html/Admin/Elements/UserTabs:46 +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "Choisir l'utilisateur" -#: lib/RT/CustomField_Overlay.pm:35 -msgid "SelectMultiple" -msgstr "ChoixMultiples" - -#: lib/RT/CustomField_Overlay.pm:34 -msgid "SelectSingle" -msgstr "ChoixSimple" - -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:58 msgid "Selected Custom Fields" msgstr "Champs personnalisés sélectionnés" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:59 msgid "Selected objects" msgstr "Objets sélectionnés" -#: NOT FOUND IN SOURCE -msgid "Self Service" -msgstr "Self Service" - #: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "Envoyer un courrier à tous les observateurs" #: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" -msgstr "Envoyer un courrier à tous les observateurs en tant que \"commentaire\"" +msgstr "Envoyer un mail de commentaire à tous les observateurs" #: etc/initialdata:112 msgid "Send mail to requestors and Ccs" @@ -4649,11 +3568,11 @@ msgstr "Envoyer un courrier aux CCs et Bccs explicitement indiqués" #: etc/initialdata:94 etc/upgrade/3.1.17/content:7 msgid "Sends mail to the Ccs" -msgstr "" +msgstr "Envoyer un courriel en cc" #: etc/initialdata:90 etc/upgrade/3.1.17/content:3 msgid "Sends mail to the Ccs as a comment" -msgstr "" +msgstr "Envoyer un courriel en cc pour commentaires" #: etc/initialdata:102 msgid "Sends mail to the administrative Ccs" @@ -4667,183 +3586,131 @@ msgstr "Envoyer un mail aux AdminCCs en tant que commentaire" msgid "Sends mail to the owner" msgstr "Envoyer un courrier à l'intervenant" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "Sep." -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "September" -msgstr "Septembre" - -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" msgstr "Afficher" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" -msgstr "" +msgstr "Afficher les approbations" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" msgstr "Afficher les colonnes" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "Afficher les résultats" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "Afficher les requêtes approuvées" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "Affichage court" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "Afficher les requêtes refusées" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "Affichage long" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "Afficher les requêtes en attente" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "Afficher les requêtes attendant d'autres approbations" -#: NOT FOUND IN SOURCE -msgid "Show ticket private commentary" -msgstr "Afficher les commentaires privés du ticket" - -#: NOT FOUND IN SOURCE -msgid "Show ticket summaries" -msgstr "Afficher les résumés de tickets" - -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" msgstr "AfficherACL" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "VoirOngletConfiguration" + +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" msgstr "AfficherEmailSortant" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:168 msgid "ShowSavedSearches" msgstr "AfficherRecherchesSauvées" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "AfficherScrips" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "AfficherModèle" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "AfficherTicket" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "AfficherCommentairesTickets" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "S'identifier en tant que demandeur ou CC de queue ou de ticket" +msgstr "S'identifier en tant que demandeur ou CC de file ou de ticket" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" -msgstr "S'identifier en tant qu'AdminCC de ticket ou de queue" +msgstr "S'identifier en tant qu'AdminCC de ticket ou de file" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "Signature" -#: NOT FOUND IN SOURCE -msgid "Signed in as %1" -msgstr "Connecté en tant que %1" - -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "Unique" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "Taille" + +#: html/Elements/Header:85 msgid "Skip Menu" msgstr "Passer le menu" -#: html/Admin/Elements/AddCustomFieldValue:27 +#: html/Search/Elements/EditFormat:78 +msgid "Small" +msgstr "Petite" + +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 msgid "Sort" msgstr "Trier" -#: NOT FOUND IN SOURCE -msgid "Sort Order" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Sort key" -msgstr "Ordre de tri" - -#: NOT FOUND IN SOURCE -msgid "Sort results by" -msgstr "Trier les résultats par" - -#: NOT FOUND IN SOURCE -msgid "SortOrder" -msgstr "SortOrder" - -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" - -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" msgstr "Étape" -#: NOT FOUND IN SOURCE -msgid "Stalled" -msgstr "Bloqué" - -#: NOT FOUND IN SOURCE -msgid "Start page" -msgstr "Page de début" - -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "Ouvert le" -#: NOT FOUND IN SOURCE -msgid "Started date '%1' could not be parsed" -msgstr "La date de démarrage '%1' n'a pas pu être analysée" - -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "Débute" -#: NOT FOUND IN SOURCE -msgid "Starts By" -msgstr "Débute le" - -#: NOT FOUND IN SOURCE -msgid "Starts date '%1' could not be parsed" -msgstr "La date de début '%1' n'a pas pu être analysée" - -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "Etat" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1407 msgid "Status" msgstr "Statut" @@ -4851,522 +3718,385 @@ msgstr "Statut" msgid "Status Change" msgstr "Changement de statut" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) -msgid "Status changed from %1 to %2" -msgstr "Statut modifié de %1 à %2 " - -#: NOT FOUND IN SOURCE -msgid "StatusChange" -msgstr "ChangementDeStatut" - -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "Voler" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" msgstr "Voler les tickets " -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" msgstr "VolerTicket" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) -msgid "Stolen from %1 " +msgid "Stolen from %1" msgstr "Volé à %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 +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "Style" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1489 msgid "Subject" msgstr "Sujet" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "Sujet modifié en %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "Valider" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Submit Workflow" -msgstr "Soumettre flux de travail" - -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:774 msgid "Succeeded" msgstr "Réussi" -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" - -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "Dim." -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "SuperUtilisateur" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "Système" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" msgstr "Configuration système" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" msgstr "Erreur système" -#: NOT FOUND IN SOURCE -msgid "System Error. Right not granted." -msgstr "Erreur Système. Droit non délégué." - -#: NOT FOUND IN SOURCE -msgid "System Error. right not granted" -msgstr "Erreur Système. Droit non délégué" +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" +msgstr "Erreur système : %1" -#: html/Admin/Tools/index.html:2 +#: html/Admin/Tools/index.html:47 msgid "System Tools" msgstr "Outils système" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "Erreur système. Droit non délégué." -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." -msgstr "Erreur système. Droit non accordé" - -#: NOT FOUND IN SOURCE -msgid "System error. Unable to grant rights." -msgstr "Erreur Système. Imposible de déléguer les droits" +msgstr "Erreur système. Droit non accordé." -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "Groupes système" +msgstr "Groupes systèmes" #: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 msgid "SystemRolegroup for internal use" msgstr "SystemRolegroup à usage interne" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "Chaîne_de_test" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "Prendre" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" msgstr "Prendre les tickets" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" msgstr "PrendreTicket" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "Pris" -#: NOT FOUND IN SOURCE -msgid "Task" -msgstr "Tâche" - -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "Modèle" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Modèle n°%1" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "Modèle supprimé" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "Modèle inconnu" -#: NOT FOUND IN SOURCE -msgid "Template not found\\n" -msgstr "Modèle inconnu\\n" - -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "Modèle analysé" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "Modèles" -#: NOT FOUND IN SOURCE -msgid "Templates for %1\\n" -msgstr "Modèles pour %1\\n " - -#: NOT FOUND IN SOURCE -msgid "Text" -msgstr "Texte" - -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:932 msgid "That is already the current value" msgstr "Ceci est déjà la valeur actuelle" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" -msgstr "Valeur incorrecte pour ce champ personnalisé." +msgstr "Valeur incorrecte pour ce champ personnalisé" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1963 msgid "That is the same value" msgstr "Valeur identique" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" msgstr "Ce groupe/utilisateur dispose déjà de ce droit" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:754 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" -msgstr "Ce groupe/utilisateur est déjà un %1 pour cette queue" +msgstr "Ce groupe/utilisateur est déjà un %1 pour cette file" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1404 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Ce groupe/utilisateur est déjà un %1 pour ce ticket" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:853 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" -msgstr "Ce groupe/utilisateur n'est pas un %1 pour cette queue" - -#: NOT FOUND IN SOURCE -msgid "That principal is not a %1 for this ticket" -msgstr "Ce groupe/utilisateur n'est pas un %1 pour ce ticket" +msgstr "Ce groupe/utilisateur n'est pas un %1 pour cette file" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1959 msgid "That queue does not exist" -msgstr "Queue inconnue" +msgstr "File inconnue" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3197 msgid "That ticket has unresolved dependencies" msgstr "Ticket ayant des tickets fils ou dépendants non résolus" -#: NOT FOUND IN SOURCE -msgid "That user already has that right" -msgstr "Cet utilisateur possède déjà ce droit." - -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:3001 msgid "That user already owns that ticket" -msgstr "Cet utilisateur possède déjà ce ticket." +msgstr "Cet utilisateur possède déjà ce ticket" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2973 msgid "That user does not exist" msgstr "Utilisateur inconnu" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" -msgstr "Utilisateur possédant déjà un statut privilégié." +msgstr "Utilisateur possédant déjà un statut privilégié" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" -msgstr "Utilisateur déjà sans privilèges." +msgstr "Utilisateur déjà sans privilèges" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "Utilisateur bénéficiant à présent du statut privilégié" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" -msgstr "Utilisateur à présent sans statut privilégié " - -#: NOT FOUND IN SOURCE -msgid "That user is now unprivilegedileged" -msgstr "Cet utilisateur a perdu ses droits" +msgstr "Cet utilisateur est maintenant non privilégié" -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2994 msgid "That user may not own tickets in that queue" -msgstr "Cet utilisateur peut ne pas avoir de ticket dans cette queue." +msgstr "Cet utilisateur peut ne pas avoir de ticket dans cette file" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" -msgstr "ID non numérique" +msgstr "Identifiant non numérique" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" -msgstr "Eléments de base" +msgstr "Éléments de base" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "Le CC d'un ticket" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "L'AdminCC d'un ticket" -#: NOT FOUND IN SOURCE -msgid "The comment has been recorded" -msgstr "Commentaire enregistré" - -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 "Cette commande trouve tous les tickets actifs de la queue 'general' et positionne leur priorité à 99 s'ils n'ont pas été touchés depuis quatre heures:" - -#: NOT FOUND IN SOURCE -msgid "The following commands were not proccessed:\\n\\n" -msgstr "Les commandes suivantes n'ont pas été traitées :\\n\\n" +msgstr "Cette commande trouve tous les tickets actifs de la file 'general' et positionne leur priorité à 99 s'ils n'ont pas été touchés depuis quatre heures:" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:935 msgid "The new value has been set." -msgstr "La nouvelle valeur est enregistrée" +msgstr "La nouvelle valeur est enregistrée." -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "L'intervenant d'un ticket" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "Le demandeur d'un ticket" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "Ces commentaires ne sont généralement pas accessibles par l'utilisateur" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:912 msgid "This custom field does not apply to that object" msgstr "Ce champ personnalisé ne s'applique pas à cet objet" -#: html/Admin/Tools/Configuration.html:5 +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" msgstr "Cet possibilité n'est offerte qu'aux administrateurs systèmes" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." msgstr "Ce message va être envoyé à..." -#: NOT FOUND IN SOURCE -msgid "This ticket %1 %2 (%3)\\n" -msgstr "Ce ticket %1 %2 (%3)\\n " - -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "Cet outil permet à l'utilisateur de lancer un module perl quelconque depuis RT" +msgstr "Cet outil permet à l'utilisateur de lancer un module perl quelconque depuis RT." -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "Cette opération semble ne pas avoir de contenu" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" -msgstr "Les %1 tickets de plus haute priorité de cet utilisateur" - -#: NOT FOUND IN SOURCE -msgid "This user's 25 highest priority tickets" -msgstr "Les 25 tickets prioritaires de cet utilisateur" +msgstr "Les %1 tickets prioritaires de cet utilisateur" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "Jeu." -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 %2" -msgstr "Ticket n°%1 %2" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 Jumbo update: %2" -msgstr "Ticket n°%1 Jumbo update: %2" - -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" -msgstr "Ticket n°%1 mise à jour globale: %2" +msgstr "Ticket n°%1 mise à jour globale : %2" -#: html/Approvals/Elements/ShowDependency:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Ticket n°%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" msgstr "Ticket %1" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" -msgstr "Ticket %1 créé dans la queue '%2'" - -#: NOT FOUND IN SOURCE -msgid "Ticket %1 loaded\\n" -msgstr "Ticket %1 chargé\\n " +msgstr "Ticket %1 créé dans la file '%2'" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" -msgstr "Ticket %1: %2" +msgstr "Ticket %1 : %2" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:74 msgid "Ticket Custom Fields" msgstr "Champs personnalisés du ticket" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" -msgstr "Historique ticket # %1 %2" - -#: NOT FOUND IN SOURCE -msgid "Ticket Id" -msgstr "N° ticket" +msgstr "Historique du ticket n°%1 %2" #: etc/initialdata:324 msgid "Ticket Resolved" -msgstr "Ticket résolu/clos" +msgstr "Ticket résolu" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 msgid "Ticket Transactions" msgstr "Transactions du ticket" -#: NOT FOUND IN SOURCE -msgid "Ticket attachment" -msgstr "Pièce jointe au ticket" - -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1677 msgid "Ticket content" -msgstr "Contenu du ticket." +msgstr "Contenu du ticket" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1726 msgid "Ticket content type" msgstr "Type du contenu du ticket" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "Une erreur interne a empêché l'ajout du ticket" -#: lib/RT/Transaction_Overlay.pm:497 -msgid "Ticket created" -msgstr "Ticket ajouté" - -#: NOT FOUND IN SOURCE -msgid "Ticket creation failed" -msgstr "Création de ticket échouée." - -#: lib/RT/Transaction_Overlay.pm:502 -msgid "Ticket deleted" -msgstr "Ticket supprimé." - -#: NOT FOUND IN SOURCE -msgid "Ticket id not found" -msgstr "Id de ticket non trouvée" - -#: NOT FOUND IN SOURCE -msgid "Ticket killed" -msgstr "Ticket effacé" - -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" msgstr "Méta-données du ticket" -#: NOT FOUND IN SOURCE -msgid "Ticket not found" -msgstr "Ticket non trouvé" - #: etc/initialdata:310 msgid "Ticket status changed" msgstr "Statut de ticket modifié" -#: NOT FOUND IN SOURCE -msgid "Ticket watchers" -msgstr "Observateurs du ticket" +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "Module de recherche TicketSQL" -#: html/Elements/Tabs:46 +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 msgid "Tickets" msgstr "Tickets" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) -msgid "Tickets %1 %2" -msgstr "Tickets %1 %2" - -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) -msgid "Tickets %1 by %2" -msgstr "Tickets %1 par %2" - -#: NOT FOUND IN SOURCE -msgid "Tickets from %1" -msgstr "Tickets depuis %2" - -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "Tickets dépendant de cette approbation:" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" msgstr "Temps estimé" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "Temps restant" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "Temps passé" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Time left" msgstr "Temps restant" -#: html/Elements/Footer:44 +#: html/Elements/Footer:67 msgid "Time to display" msgstr "Temps de calcul" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1623 msgid "Time worked" msgstr "Temps passé" -#: NOT FOUND IN SOURCE -msgid "TimeLeft" -msgstr "TempsRestant" - -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" msgstr "TempsPassé" -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:" -msgstr "Pour conserver les modifications de cette transaction" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:\\n" -msgstr "Pour conserver les modifications de cette transaction :\\n" +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "Titre" -#: html/Elements/Footer:39 +#: html/Elements/Footer:57 #. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "Pour du support, des stages, des développements ou au sujet de la license, veuillez contacter %1." +msgstr "Pour vous renseigner au sujet du support, de la formation, des développements spécifiques ou au sujet de la licence, merci de contacter en anglais %1." -#: lib/RT/Ticket_Overlay.pm:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "Annoncé" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" msgstr "Outils" @@ -5374,69 +4104,58 @@ msgstr "Outils" msgid "Transaction" msgstr "Transaction" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" -msgstr "La transaction%1 est supprimée" +msgstr "La transaction %1 est supprimée" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "Transaction ajoutée" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:78 msgid "Transaction Custom Fields" msgstr "Champs personnalisées de la transaction" -#: lib/RT/Transaction_Overlay.pm:92 -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "Transaction->Create n'a pas fonctionné car vous n'avez pas spécifié d'identifiant de ticket" - -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:125 msgid "Transaction->Create couldn't, as you didn't specify an object type and id" msgstr "Transation->Create a échoué car vous n'avez pas spécifié de type d'objet et d'id" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "Les transactions ne peuvent être transférées" -#: NOT FOUND IN SOURCE -msgid "Trying to delete a right: %1" -msgstr "Tentative de délégation d'un droit : %1" - -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "Mar." -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1461 msgid "Type" msgstr "Type" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "Fonction non disponible" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "Identifiant Unix" -#: NOT FOUND IN SOURCE -msgid "UnixUsername" -msgstr "UnixUsername" - -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:848 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Type d'encodage de courrier inconnu: %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "Champ inconnu : $key" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "Illimité" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" msgstr "Recherche non nommée" @@ -5444,251 +4163,180 @@ msgstr "Recherche non nommée" msgid "Unprivileged" msgstr "Non privilégié" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:60 msgid "Unselected Custom Fields" msgstr "Champs personnalisés non sélectionnés" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:61 msgid "Unselected objects" msgstr "Objets non sélectionnés" -#: lib/RT/Transaction_Overlay.pm:562 +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" msgstr "Non pris" -#: NOT FOUND IN SOURCE -msgid "Untitled search" -msgstr "Recherche sans titre" - -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "Mettre à jour" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" -msgstr "" +msgstr "Tout mettre à jour" -#: NOT FOUND IN SOURCE -msgid "Update ID" -msgstr "Mettre à jour l'ID" - -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" -msgstr "" +msgstr "Mettre à jour le ticket" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "Mettre à jour le type" -#: NOT FOUND IN SOURCE -msgid "Update all these tickets at once" -msgstr "Mise à jour des tickets en masse" - -#: NOT FOUND IN SOURCE -msgid "Update email" -msgstr "Mettre à jour l'email" - -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" msgstr "Mettre à jour plusieurs tickets" -#: NOT FOUND IN SOURCE -msgid "Update name" -msgstr "Mettre à jour le nom" - -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "Mise à jour non enregistrée" -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "Mettre à jour les tickets sélectionnés" -#: NOT FOUND IN SOURCE -msgid "Update signature" -msgstr "Mettre à jour la signature" - -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "Mettre à jour le ticket" -#: NOT FOUND IN SOURCE -msgid "Update ticket # %1" -msgstr "Mettre à jour le ticket n°%1" - -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Mettre à jour le ticket n°%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Mettre à jour le ticket n°%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "Le type de mise à jour n'était ni un commentaire ni un courrier." -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "Mis(e) à jour" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" msgstr "Uploader" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:84 msgid "Upload multiple files" -msgstr "Uploader plusieurs fichiers" +msgstr "Télécharger plusieurs fichiers" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:79 msgid "Upload multiple images" -msgstr "Uploader plusieurs images" +msgstr "Télécharger plusieurs images" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:85 msgid "Upload one file" -msgstr "Uploader un fichier" +msgstr "Télécharger un fichier" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:80 msgid "Upload one image" -msgstr "Uploader une image" +msgstr "Télécharger une image" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:86 msgid "Upload up to %1 files" -msgstr "Uploader un maximum de %1 fichiers" +msgstr "Télécharger un maximum de %1 fichiers" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:81 msgid "Upload up to %1 images" -msgstr "Uploader un maximum de %1 images" +msgstr "Télécharger au plus %1 images" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" -msgstr "Uploader vos changements" - -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User %1 %2: %3\\n" -msgstr "Utilisateur %1 %2: %3\\n" +msgstr "Télécharger vos changements" -#: NOT FOUND IN SOURCE -msgid "User %1 Password: %2\\n" -msgstr "Mot de passe de l'utilisateur %1 : %2\\n" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" +msgstr "Utiliser les autres outils d'administration de RT" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." msgstr "L'utilisateur %1 ne peut être trouvé" -#: NOT FOUND IN SOURCE -msgid "User '%1' not found" -msgstr "Utilisateur '%1' non trouvé" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found\\n" -msgstr "Utilisateur '%1' non trouvé\\n" - #: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "Utilisateur défini" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User ID" -msgstr "Id utilisateur" +msgstr "Conditions et actions définies par l'usager" -#: html/Elements/SelectUsers:25 -msgid "User Id" -msgstr "Id utilisateur" - -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "Droits utilisateurs" -#: NOT FOUND IN SOURCE +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" -msgstr "L'utilisateur a demandé un type de mise à jour non connu pour le champ personnalisé %1 de l'objet %2Â%3" +msgstr "L'utilisateur a demandé un type de mise à jour non connu pour le champ personnalisé %1 de l'objet %2 n°%3" -#: html/Admin/Users/Modify.html:252 +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "Utilisateur ne peut pas être créé : %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "Utilisateur créé" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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 "Groupes utilisateur" -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" msgstr "Utilisateur chargé" -#: NOT FOUND IN SOURCE -msgid "User notified" -msgstr "Utilisateur informé" - -#: NOT FOUND IN SOURCE -msgid "User view" -msgstr "Vue utilisateur" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:99 msgid "User-defined groups" msgstr "Groupe définis par l'utilisateur" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "Nom d'utilisateur" -#: 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 +#: 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:1086 msgid "Users" msgstr "Utilisateurs" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "Utilisateurs correspondants aux critères de recherche" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" msgstr "Valider la requête" -#: NOT FOUND IN SOURCE -msgid "ValueOfQueue" -msgstr "ValueOfQueue" - -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "Valeurs" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "Observer" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "ObserverCommeAdminCC" -#: NOT FOUND IN SOURCE -msgid "Watcher loaded" -msgstr "Observateur chargé" - -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "Observateurs" -#: NOT FOUND IN SOURCE -msgid "WebEncoding" -msgstr "WebEncoding" - -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "Mer." @@ -5722,11 +4370,11 @@ msgstr "Lorsqu'un ticket quelconque change d'intervenant" #: etc/initialdata:178 etc/upgrade/3.1.17/content:16 msgid "Whenever a ticket's priority changes" -msgstr "" +msgstr "Lorsqu'un ticket change de priorité" #: etc/initialdata:193 msgid "Whenever a ticket's queue changes" -msgstr "Lorsqu'un ticket quelconque change de queue" +msgstr "Lorsqu'un ticket quelconque change de file" #: etc/initialdata:170 msgid "Whenever a ticket's status changes" @@ -5744,357 +4392,281 @@ msgstr "Lorsque un commentaire arrive" msgid "Whenever correspondence comes in" msgstr "Lorsque un courrier arrive" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "Travail" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" msgstr "Travail hors ligne" -#: NOT FOUND IN SOURCE -msgid "WorkPhone" -msgstr "Tel. bureau" - -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "Travaillé" -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3104 msgid "You already own this ticket" msgstr "Vous êtes déjà intervenant de ce ticket" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" msgstr "Vous n'êtes pas un utilisateur autorisé" -#: NOT FOUND IN SOURCE -msgid "You can access it with the Download button on the right." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "You can only reassign tickets that you own or that are unowned" msgstr "Vous pouvez seulement réaffecter vos ticket ou ceux qui ne sont pas affectés" -#: NOT FOUND IN SOURCE -msgid "You don't have permission to view that ticket.\\n" -msgstr "Vous n'êtes pas autorisé à voir ce ticket.\\n" - -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 #. ($num, $queue) msgid "You found %1 tickets in queue %2" -msgstr "%1 tickets trouvés dans la queue %2" +msgstr "%1 tickets trouvés dans la file %2" -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "Vous avez été déconnecté de RT." -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:133 msgid "You have no permission to create tickets in that queue." -msgstr "Vous n'avez pas l'autorisation de créer des tickets dans cette queue." +msgstr "Vous n'avez pas l'autorisation de créer des tickets dans cette file." -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1972 msgid "You may not create requests in that queue." -msgstr "Vous ne pouvez pas créer de demandes dans cette queue." +msgstr "Vous ne pouvez pas créer de demandes dans cette file." -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "Vous êtes invité à vous identifier à nouveau" -#: NOT FOUND IN SOURCE -msgid "Your %1 requests" -msgstr "Vos %1 requêtes" - -#: NOT FOUND IN SOURCE -msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" -msgstr "Votre administrateur RT a mal configuré l'alias de mail qui appelle RT" - #: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "Votre demande a été approuvée par %1. D'autres approbations sont peut être toujours en attente" +msgstr "Votre demande a été approuvée par %1. D'autres approbations sont peut-être toujours en attente." #: etc/initialdata:540 msgid "Your request has been approved." -msgstr "Votre demande a été approuvée" - -#: NOT FOUND IN SOURCE -msgid "Your request was rejected" -msgstr "Votre demande a été rejetée" +msgstr "Votre demande a été approuvée." #: etc/initialdata:445 msgid "Your request was rejected." msgstr "Votre demande a été rejetée." -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "Votre nom d'utilisateur ou votre mot de passe est incorrect" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "Code Postal" -#: NOT FOUND IN SOURCE -msgid "[no subject]" -msgstr "[Pas de sujet]" - -#: NOT FOUND IN SOURCE -msgid "and is not" -msgstr "" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" +msgstr "autorise la création de recherches sauvées" -#: NOT FOUND IN SOURCE -msgid "and not" -msgstr "" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" +msgstr "autorise le chargement de recherches sauvées" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "comme accordé à %1" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "appartient à" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "fermé" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "contient" -#: NOT FOUND IN SOURCE -msgid "content" -msgstr "Contenu" - -#: NOT FOUND IN SOURCE -msgid "content-type" -msgstr "Type de contenu" - -#: NOT FOUND IN SOURCE -msgid "correspondence (probably) not sent" -msgstr "courrier (probablement) non envoyé" - -#: NOT FOUND IN SOURCE -msgid "correspondence sent" -msgstr "courrier envoyé" - -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "jours" -#: NOT FOUND IN SOURCE -msgid "dead" -msgstr "effacé" - -#: NOT FOUND IN SOURCE -msgid "delete" -msgstr "effacer" - -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "effacé" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "n'appartient pas à" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "ne correspond pas" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "ne contient pas" -#: NOT FOUND IN SOURCE -msgid "email address" -msgstr "adresse email" - -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "égal à" -#: NOT FOUND IN SOURCE -msgid "false" -msgstr "faux" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "erreur : ne peut aller plus bas" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "erreur : ne peut aller à gauche" -#: NOT FOUND IN SOURCE -msgid "filename" -msgstr "Nom de fichier" +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "erreur : ne peut aller plus haut" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "erreur : rien à effacer" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "erreur : rien à déplacer" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "erreur : rien à commuter" + +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "supérieur à" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:214 #. ($self->Name) msgid "group '%1'" msgstr "groupe '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "heures" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "n°" -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" - -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "est" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "n'est pas" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "inférieur à" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "correspond" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "min" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "minutes" -#: NOT FOUND IN SOURCE -msgid "modifications\\n\\n" -msgstr "modifications\\n\\n" - -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "mois" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "nouveau" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" msgstr "sans nom" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "Non renseigné" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "aucun" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "différent de" -#: NOT FOUND IN SOURCE -msgid "notlike" -msgstr "necontientpas" - -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "ouvert" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:219 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "groupe personnel '%1' pour l'utilisateur '%2'" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:227 #. ($queue->Name, $self->Type) msgid "queue %1 %2" -msgstr "queue %1 %2" +msgstr "file %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "rejeté" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "résolu" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "sec" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "montrer l'onglet de configuration" + +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "feuille de calcul" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "bloqué" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Type) msgid "system %1" msgstr "système %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:233 #. ($self->Type) msgid "system group '%1'" msgstr "groupe système '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "le composant appelant n'a pas spécifié pourquoi" -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "ticket n°%1" - -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ticket n°%1 %2" -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "true" -msgstr "vrai" - -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:236 #. ($self->Id) msgid "undescribed group %1" msgstr "Groupe %1 non décrit" -#: NOT FOUND IN SOURCE -msgid "undescripbed group %1" -msgstr "Groupe non décrit %1" - -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:211 #. ($user->Object->Name) msgid "user %1" msgstr "utilisateur %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "semaines" -#: NOT FOUND IN SOURCE -msgid "with template %1" -msgstr "Avec modèle %1" - -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "années" diff --git a/rt/lib/RT/I18N/he.po b/rt/lib/RT/I18N/he.po index f9c525f45..b3c533868 100644 --- a/rt/lib/RT/I18N/he.po +++ b/rt/lib/RT/I18N/he.po @@ -7,121 +7,74 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: NOT FOUND IN SOURCE -msgid "#" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "#%1" -msgstr "" - -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" msgstr "" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) -msgid "%1 %2 %3" -msgstr "" - -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" msgstr "" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 %2 of group %3" -msgstr "" - -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 %2 הוסף" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 מקבוצה %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 נמחק" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 שונה ל %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 this ticket\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 פנייה זו\\n" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" msgstr "" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" msgstr "" @@ -129,35 +82,31 @@ msgstr "" msgid "%1 - %2 shown" msgstr "%1 - %2 מוצגי×" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" msgstr "" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 - ×רגומנט להעביר ×ל %2" msgstr "" $RT::VERSION, @@ -166,83 +115,83 @@ msgstr "" $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 -#. ('»|«', $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 +#. ('»|«', + $RT::VERSION, + '2005', + '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on (from %2) %3" -msgstr "" - -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($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:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "" -#: 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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") msgid "%1 changed from %2 to %3" msgstr "" -#: html/Search/Build.html:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" msgstr "" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 couldn't init a transaction (%2)\\n" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) msgid "%1 created" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) msgid "%1 deleted" msgstr "" -#: html/Elements/MyTickets:24 +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" msgstr "" @@ -251,39 +200,21 @@ msgstr "" msgid "%1 highest priority tickets I own..." msgstr "%1 הפניות ×¢× ×”×¢×“×™×¤×•×ª הגבוהה ביותר בטיפולי..." -#: html/Elements/MyTickets:26 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I requested..." msgstr "%1 הפניות ×¢× ×”×¢×“×™×¤×•×ª הגבוהה ביותר ש×× ×™ פתחתי..." -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "" -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a %2 for this ticket." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) -msgid "%1 is no longer a value for custom field %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 isn't a valid Queue id." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -292,131 +223,59 @@ msgstr "" msgid "%1 min" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 not shown" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:827 msgid "%1 objects" msgstr "" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "זכויות" -#: NOT FOUND IN SOURCE -msgid "%1 succeeded\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for $MessageId" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 was created without a CurrentUser\\n" -msgstr "" - -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 הוסף כערך עבור %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 לפני %2 ימי×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 על ידי %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 פעולת-סקריפ נטענה" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 שונה מ %2 ל %3" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:828 msgid "%1's %2 objects" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:829 msgid "%1's %2's %3 objects" msgstr "" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" msgstr "" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "" -#: NOT FOUND IN SOURCE -msgid "'%1' not a recognized action. " -msgstr "" - #: NOT FOUND IN SOURCE msgid "(Check box to delete group member)" msgstr "(סמן תיבה כדי למחוק חבר בקבוצה)" @@ -425,7 +284,7 @@ msgstr "(סמן תיבה כדי למחוק חבר בקבוצה)" msgid "(Check box to delete scrip)" msgstr "(סמן תיבה כדי למחוק סקריפ)" -#: 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 +#: 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 "(סמן תיבה כדי למחוק)" @@ -433,325 +292,241 @@ msgstr "(סמן תיבה כדי למחוק)" msgid "(Check boxes to delete)" msgstr "(סמן תיבות כדי למחוק)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" -msgstr "" - -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: html/Admin/Queues/Modify.html:75 html/Admin/Queues/Modify.html:81 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) -msgid "(If left blank, will default to %1" +msgid "(If left blank, will default to %1)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "(No Value)" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 msgid "(None)" msgstr "" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:88 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 "" -#: 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 "" - -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 "" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 "" -#: 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 "" - -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 "" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" msgstr "" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(no subject)" -msgstr "" - -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFieldValues:47 msgid "(no values)" msgstr "" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(רק פנייה ×חת)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 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:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I own..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I requested..." -msgstr "" - -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"פנייה חדשה ב\"> %1" -#: NOT FOUND IN SOURCE -msgid "??????" -msgstr "" - #: etc/initialdata:218 msgid "A blank template" msgstr "" -#: NOT FOUND IN SOURCE -msgid "ACE Deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE Loaded" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be found" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." msgstr "" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "" -#: NOT FOUND IN SOURCE -msgid "Aborting to avoid unintended ticket modifications.\\n" +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" msgstr "" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "מידע ×ודותי" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "" -#: bin/rt-crontool:119 -msgid "Action committed." +#: bin/rt-crontool:148 +msgid "Action committed.\\n" msgstr "" -#: bin/rt-crontool:115 +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "הוסף העתק ניהולי" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "הוסף העתק" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "" + +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" msgstr "" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "הוסף עוד קבצי×" -#: NOT FOUND IN SOURCE -msgid "Add Next State" -msgstr "" - -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "הוסף מבקש" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: 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:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" msgstr "" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" msgstr "" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "הוסף הערות ×ו תגובות לפניות הנבחרות" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "הוסף ×¦×•×¤×™× ×—×“×©×™×" -#: NOT FOUND IN SOURCE -msgid "AddNextState" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" msgstr "" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "כתובת1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "כתובת2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "" @@ -763,163 +538,103 @@ msgstr "" msgid "Admin Correspondence" msgstr "" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: 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:25 html/Admin/Global/index.html:27 +#: 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 "AdminAllPersonalGroups" -msgstr "" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "העתק ניהולי" -#: NOT FOUND IN SOURCE -msgid "AdminComment" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AdminCorrespondence" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:101 msgid "AdminCustomField" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 -msgid "AdminCustomFields" -msgstr "" - -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: 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:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Advanced Search" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "" - -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "×חרי" -#: NOT FOUND IN SOURCE -msgid "Age" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Alias" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Alias for" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" msgstr "" #: etc/initialdata:363 msgid "All Approvals Passed" msgstr "" -#: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:94 -msgid "All Custom Fields" -msgstr "" - -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Always sends a message to the requestors independent of message sender" +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 msgid "Applies to" msgstr "" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply" msgstr "" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" msgstr "" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "×ישור" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Approval Details" -msgstr "" - #: etc/initialdata:351 msgid "Approval Passed" msgstr "" @@ -928,11 +643,7 @@ msgstr "" msgid "Approval Rejected" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Approval diagram" -msgstr "" - -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "" @@ -940,7 +651,7 @@ msgstr "" msgid "Approver's notes: %1" msgstr "" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "×פריל" @@ -948,72 +659,52 @@ msgstr "×פריל" msgid "April" msgstr "×פריל" -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "עולה" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "Assign and remove custom fields" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "AssignCustomFields" msgstr "" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "צרף" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "קובץ מצורף" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 #. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "" -#: lib/RT/Transaction_Overlay.pm:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "קובץ צורף" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "×©× ×§×•×‘×¥ מצורף" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "×§×‘×¦×™× ×ž×¦×•×¨×¤×™×" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" msgstr "" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "×וגוסט" @@ -1021,10 +712,6 @@ msgstr "×וגוסט" msgid "August" msgstr "×וגוסט" -#: NOT FOUND IN SOURCE -msgid "AuthSystem" -msgstr "" - #: etc/initialdata:221 msgid "Autoreply" msgstr "" @@ -1033,212 +720,149 @@ msgstr "" msgid "Autoreply To Requestors" msgstr "" -#: NOT FOUND IN SOURCE -msgid "AutoreplyToRequestors" -msgstr "" - -#: html/Search/Elements/EditFormat:4 -msgid "Available Columns" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bad PGP Signature: %1\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bad attachment id. Couldn't find attachment '%1'\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bad data in %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bad transaction number for attachment. %1 should be %2\\n" -msgstr "" - -#: 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 +#: 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 "בסיסי" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "×ל תשכח לשמור ×ת השינויי×" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "לפני" -#: NOT FOUND IN SOURCE -msgid "Begin Approval" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Binary" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" 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:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" msgstr "" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "תקציר כותרי×" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "עדכון פניות מרוכז" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" msgstr "" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "" -#: html/Search/Build.html:694 -msgid "Can't find a saved search to work with" +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" msgstr "" -#: lib/RT/Link_Overlay.pm:126 -msgid "Can't link a ticket to itself" +#: html/Search/Build.html:761 +msgid "Can't find a saved search to work with" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2716 -msgid "Can't merge into a merged ticket. You should never get this error" +#: lib/RT/Link_Overlay.pm:160 +msgid "Can't link a ticket to itself" msgstr "" -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" msgstr "" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "" -#: 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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "העתק" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:100 msgid "Check All" msgstr "" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "סמן תיבה כדי למחוק" -#: html/Admin/Elements/SelectRights:30 -msgid "Check box to revoke right" -msgstr "סמן תיבה כדי לבטל זכות" - -#: 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 "ילדי×" - -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 -msgid "City" -msgstr "עיר" - -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "" +#: html/Admin/Elements/SelectRights:55 +msgid "Check box to revoke right" +msgstr "סמן תיבה כדי לבטל זכות" -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 +msgid "Children" +msgstr "ילדי×" -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 +msgid "City" +msgstr "עיר" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:102 msgid "Clear All" msgstr "" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "נסגר" -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Closed requests" -msgstr "" - -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Code" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Command not understood!\\n" -msgstr "" - -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "הערה" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Comment not recorded" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Comments" -msgstr "" - -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "הערות (×œ× × ×©×œ×—×•×ª ×ל המבקשי×)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "הערות (×œ× × ×©×œ×—×•×ª ×ל המבקשי×)" @@ -1246,63 +870,47 @@ msgstr "הערות (×œ× × ×©×œ×—×•×ª ×ל המבקשי×)" msgid "Comments about %1" msgstr "הערות לגבי %1" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "הערות לגבי משתמש ×–×”" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "הערות נוספו" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Compile Restrictions" -msgstr "" - -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "" -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "הגדרות" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "" -#: NOT FOUND IN SOURCE -msgid "ContactInfoSystem" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Contacted date '%1' could not be parsed" -msgstr "" - -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "תוכן" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Coould not create group" -msgstr "" - -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" msgstr "" @@ -1310,214 +918,174 @@ msgstr "" msgid "Correspondence" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Correspondence Address" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Correspondence not recorded" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3471 -msgid "Could not add new custom field value for ticket. " +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " msgstr "" -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value for ticket. %1 " +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " msgstr "" -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " msgstr "" -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 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 find a ticket with id %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Could not find group %1." -msgstr "" - -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Could not find user %1." -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:69 msgid "Could not load CustomField %1" msgstr "" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Could not remove that principal as a %1 for this ticket" -msgstr "" - -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" msgstr "" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($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 "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find group\\n" -msgstr "" - -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" msgstr "" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" msgstr "" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 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 "" - -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Couldn't load KeywordSelects." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load RT config file '%1' %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load Scrips." -msgstr "" - -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" msgstr "" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "" -#: NOT FOUND IN SOURCE +#: 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/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" msgstr "" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Couldn't load scrip" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load template" +#: html/SelfService/Display.html:156 +#. ($id) +msgid "Couldn't load ticket '%1'" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Couldn't load that user (%1)" +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." msgstr "" -#: html/SelfService/Display.html:116 -#. ($id) -msgid "Couldn't load ticket '%1'" +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." msgstr "" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "×רץ" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "צור" @@ -1525,44 +1093,20 @@ msgstr "צור" msgid "Create Tickets" msgstr "צור פניות" -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" - -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:47 -msgid "Create a CustomField which applies to all queues" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create a new Custom Field" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create a new article" -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:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "צור קבוצה פרטית חדשה" @@ -1578,15 +1122,15 @@ msgstr "צור סקריפ חדש" msgid "Create a new template" msgstr "צור תבנית חדשה" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "צור פנייה חדשה" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "צור משתמש חדש" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "צור תור חדש" @@ -1598,113 +1142,81 @@ msgstr "צור תור שנקר×" msgid "Create a request" msgstr "צור בקשה" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1 / %2 / %3 " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1/%2/%3" -msgstr "" - #: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 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:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "נוצר" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created template %1" -msgstr "" - -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" msgstr "" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "×™×—×¡×™× × ×•×›×—×™×™×" -#: NOT FOUND IN SOURCE -msgid "Current Relationships" -msgstr "" - -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "" @@ -1712,101 +1224,72 @@ msgstr "" msgid "Current search criteria" msgstr "קריטריוני החיפוש הנוכחיי×" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "×¦×•×¤×™× × ×•×›×—×™×™×" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) -msgid "Custom Field #%1" -msgstr "" - -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) msgid "Custom Fields for %1" msgstr "" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) -msgid "Custom field %1 %2 %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Custom field %1 does not apply to this object" -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "" -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "" -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "" -#: html/Admin/Elements/EditCustomFields:195 -msgid "Custom field deleted" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3523 -msgid "Custom field not found" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Custom field value changed from %1 to %2" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Data error" -msgstr "" - -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "ת×ריכי×" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "דצמבר" @@ -1814,19 +1297,15 @@ msgstr "דצמבר" msgid "December" msgstr "דצמבר" -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "" - #: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" msgstr "" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" msgstr "" @@ -1846,120 +1325,100 @@ msgstr "" msgid "Default transaction template" msgstr "" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) -msgid "Default: %1/%2 changed from %3 to %4" -msgstr "" - -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "דלגציות" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "מחק" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:162 -msgid "Deleting this object could break referential integrity" +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" msgstr "" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 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:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "×ª×œ×•×™×™× ×‘×•" -#: NOT FOUND IN SOURCE -msgid "Dependencies: \\n" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "תלוי ב" -#: NOT FOUND IN SOURCE -msgid "DependsOn" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "יורד" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "" -#: 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 +#: 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:56 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 "תי×ור" @@ -1967,31 +1426,31 @@ msgstr "תי×ור" msgid "Details" msgstr "פרטי×" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "הצג" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" msgstr "" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "מצב תצוגה" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" msgstr "" @@ -1999,15 +1458,19 @@ msgstr "" msgid "Display ticket #%1" msgstr "הצג פנייה #%1" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" msgstr "" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "×ל תרענן דף ×–×”." @@ -2015,250 +1478,167 @@ msgstr "×ל תרענן דף ×–×”." msgid "Don't show search results" msgstr "×ל תר××” ×ת תוצ×ות החיפוש" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "הורד" -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 msgid "Download as a tab-delimited file" msgstr "" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "ת×ריך יעד" -#: NOT FOUND IN SOURCE -msgid "Due date '%1' could not be parsed" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Edit" +#: 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 "" -#: NOT FOUND IN SOURCE -msgid "Edit Conditions" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" msgstr "" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) -msgid "Edit Custom Fields for %1" +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" msgstr "" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit Relationships" -msgstr "" - -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit keywords" -msgstr "" - -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit scrips" -msgstr "" - -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit templates for %1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for user %1" -msgstr "" - -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Editing template %1" -msgstr "" - -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "××™-מייל" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 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 "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: 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:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:97 -msgid "Enabled Custom Fields" -msgstr "" - -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" msgstr "" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Enabled status: %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) +msgid "Enabled status: %1" msgstr "" -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." msgstr "" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." msgstr "" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "הכנס פניות ×ו כתובות כדי לקשר פניות ×ליהן. הפרד ×¢×¨×›×™× ×¨×‘×™× ×‘×מצעות רווחי×." -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:66 msgid "Enter up to %1 values" msgstr "" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 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:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Queue->DelWatcher" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Ticket->DelWatcher" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" msgstr "" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Estimate" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" msgstr "" @@ -2266,44 +1646,37 @@ msgstr "" msgid "Everyone" msgstr "" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "" -#: NOT FOUND IN SOURCE -msgid "ExternalAuthId" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ExternalContactInfoId" -msgstr "" - -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" msgstr "" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "" -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "פברו×ר" @@ -2311,59 +1684,55 @@ msgstr "פברו×ר" msgid "February" msgstr "פברו×ר" -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:69 msgid "Fill in multiple text areas" msgstr "" -#: NOT FOUND IN SOURCE +#: 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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:71 msgid "Fill in up to %1 text areas" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Fin" +#: lib/RT/CustomField_Overlay.pm:76 +msgid "Fill in up to %1 wikitext areas" msgstr "" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "עדיפות סופית" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 -msgid "Find group whose" -msgstr "" - -#: NOT FOUND IN SOURCE +#: 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:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "×ž×¦× ×× ×©×™× ×©" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "×ž×¦× ×¤× ×™×•×ª" -#: NOT FOUND IN SOURCE -msgid "Finish Approval" -msgstr "" - -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "" @@ -2371,110 +1740,78 @@ msgstr "" msgid "First page" msgstr "עמוד ר×שון" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "הכרח שינוי" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "נמצ×ו %1 פניות" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Freeform" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "FreeformContactInfo" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:37 -msgid "FreeformMultiple" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:36 -msgid "FreeformSingle" -msgstr "" - -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "שישי" -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "×›×•×ª×¨×™× ×ž×œ××™×" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Getting the current user from a pgp sig\\n" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "גלוב×לי" -#: NOT FOUND IN SOURCE +#: 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 Scrips" +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" msgstr "" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" msgstr "" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "חפש" -#: NOT FOUND IN SOURCE -msgid "Good pgp sig from %1\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Goto page" -msgstr "" - -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Grand" -msgstr "" - -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "קבוצה" @@ -2482,106 +1819,88 @@ msgstr "קבוצה" msgid "Group %1 %2: %3" msgstr "קבוצה %1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "זכויות קבוצה" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Group could not be created." -msgstr "" - -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Group not found.\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Group not specified.\\n" -msgstr "" - -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "קבוצות" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:82 msgid "Groups matching search criteria" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowRequestor:77 msgid "Groups this user belongs to" msgstr "" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: 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:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "הסטוריה" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) msgid "History of the group %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) msgid "History of the user %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "HomePhone" -msgstr "" - -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "דף הבית" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "" -#: NOT FOUND IN SOURCE -msgid "I have [quant,_1,concrete mixer]." +#: html/Search/Build.html:637 +msgid "I'm lost" msgstr "" -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "זהות" @@ -2589,137 +1908,121 @@ msgstr "זהות" msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." msgstr "" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." msgstr "" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 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:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" msgstr "×× ×¢×“×›× ×ª משהו לעיל, ×ל תשכח ל" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Image" -msgstr "" - -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." +#: html/Admin/Groups/index.html:65 +msgid "Include disabled groups in listing." msgstr "" -#: html/Admin/Elements/EditCustomFields:72 -msgid "Include disabled custom fields in listing." +#: html/Admin/Queues/index.html:65 +msgid "Include disabled queues in listing." msgstr "" -#: html/Admin/Groups/index.html:37 -msgid "Include disabled groups in listing." +#: html/Admin/Users/index.html:71 +msgid "Include disabled users in search." msgstr "" -#: html/Admin/Queues/index.html:42 -msgid "Include disabled queues in listing." +#: html/Search/Build.html:663 +msgid "Incomplete Query" msgstr "" -#: html/Admin/Users/index.html:46 -msgid "Include disabled users in search." +#: html/Search/Build.html:660 +msgid "Incomplete query" msgstr "" -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Interest noted" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Invalid Type" -msgstr "" - -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "" - -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "" -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Items pending my approval" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" msgstr "" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "ינו×ר" @@ -2727,11 +2030,11 @@ msgstr "ינו×ר" msgid "January" msgstr "ינו×ר" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "יולי" @@ -2739,11 +2042,11 @@ msgstr "יולי" msgid "July" msgstr "יולי" -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "×’'מבו" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "יוני" @@ -2751,31 +2054,23 @@ msgstr "יוני" msgid "June" msgstr "יוני" -#: NOT FOUND IN SOURCE -msgid "Keyword" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Lang" +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 +msgid "Language" msgstr "" -#: html/User/Prefs.html:54 -msgid "Language" +#: html/Search/Elements/EditFormat:79 +msgid "Large" msgstr "" -#: html/Ticket/Elements/Tabs:74 +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "מגע ×חרון" -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" - -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "קשר ×חרון" @@ -2783,176 +2078,173 @@ msgstr "קשר ×חרון" msgid "Last Notified" msgstr "נודע ל×חרונה" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "עדכון ×חרון" -#: NOT FOUND IN SOURCE -msgid "LastUpdated" -msgstr "" - -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" msgstr "" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "נותרה" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "תן למשתמש ×–×” לגשת ל R" -#: html/Admin/Users/Modify.html:86 +#: 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 "" - -#: NOT FOUND IN SOURCE -msgid "Limiting queue to %1 %2" +#: html/Search/Elements/EditFormat:68 +msgid "Link" msgstr "" -#: lib/RT/Record.pm:1086 +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Link ticket %1" -msgstr "" - -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "קישורי×" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" msgstr "" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" msgstr "" -#: html/Admin/Tools/Configuration.html:19 +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "" + +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "מיקו×" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "" -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "מחובר ×› %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "כניסה" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "יצי××”" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:866 msgid "Lookup type mismatch" msgstr "" -#: html/Search/Bulk.html:83 +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "שנה בעלות ל" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "שנה סטטוס" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "שנה ת×ריך יעד" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "שנה ת×ריך פתרון" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" msgstr "שנה ת×ריך 'הותחל'" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" msgstr "שנה ת×ריך התחלה" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "שנע ת×ריך מגע ×חרון" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "שנה עדיפות" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "שנה תור" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "שנה נוש×" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/index.html:78 msgid "Manage custom fields and custom field values" msgstr "" -#: html/Admin/index.html:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" msgstr "נהל קבוצות וחברות בקבוצות" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" msgstr "נהל מ××¤×™×™× ×™× ×•×”×’×“×¨×•×ª ×©×ª×§×¤×™× ×œ×›×œ התורות" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" msgstr "נהל תורות ומ××¤×™×™× ×™× ×¡×¤×¦×™×¤×™×™× ×œ×ª×•×¨×•×ª" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "נהל ×ž×©×ª×ž×©×™× ×•×¡×¤×¨×™×•×ª" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "מרץ" @@ -2964,108 +2256,105 @@ msgstr "מרץ" msgid "May" msgstr "מ××™" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "מ××™" -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" msgstr "" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "חבר הוסף" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "חבר נמחק" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "חבר ×œ× × ×ž×—×§" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "חבר ב" -#: NOT FOUND IN SOURCE -msgid "MemberOf" -msgstr "" - -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "חברי×" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:61 msgid "Memberships" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) msgid "Memberships of the user %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" msgstr "מיזוג הצליח" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "מיזוג נכשל. ×œ× ×™×›×•×œ×ª×™ להגדיר מזהה ×פקטיבי" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "מזג לתוך" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" msgstr "" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "הודעה" -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" msgstr "" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." msgstr "" -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "" + +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "חסר מפתח ר×שי?: %1" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "נייד" @@ -3073,290 +2362,251 @@ msgstr "נייד" msgid "MobilePhone" msgstr "טלפון נייד" -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "שנה רשימת בקרת גישה" -#: NOT FOUND IN SOURCE -msgid "Modify Custom Field %1" +#: html/Admin/Elements/ObjectCustomFields:96 +#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) +msgid "Modify Custom Fields which apply to %1 for all %2" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/ObjectCustomFields:98 +#. (loc(lc($Types))) msgid "Modify Custom Fields which apply to all %1" msgstr "" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 -msgid "Modify Custom Fields which apply to all queues" -msgstr "" - -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: 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:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" msgstr "" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" msgstr "" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 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 "" - -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: 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:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:52 -msgid "Modify a CustomField which applies to all queues" -msgstr "" - -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: 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 "" - -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 -msgid "Modify global group rights" -msgstr "" - -#: html/Admin/Global/GroupRights.html:32 -msgid "Modify global group rights." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify global rights for groups" +#: html/Admin/Elements/GlobalCustomFieldTabs:65 html/Admin/Global/index.html:72 +msgid "Modify global custom fields" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Modify global rights for users" +#: 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 "" -#: NOT FOUND IN SOURCE -msgid "Modify global scrips" +#: html/Admin/Global/GroupRights.html:54 +msgid "Modify global group rights." msgstr "" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: 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:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" msgstr "" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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 "" -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" msgstr "" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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 "" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "שנה פנייה מספר %1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: 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:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "שינוי פניות" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) msgid "Modify user rights for custom field %1" msgstr "" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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 "" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Modify watchers for queue '%1'" +#: lib/RT/Queue_Overlay.pm:95 +msgid "ModifyACL" msgstr "" -#: lib/RT/Queue_Overlay.pm:71 -msgid "ModifyACL" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" msgstr "" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "שני" -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "עוד לגבי %1" -#: NOT FOUND IN SOURCE -msgid "Move" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" msgstr "" @@ -3365,47 +2615,35 @@ msgstr "" msgid "My Approvals" msgstr "×”××™×©×•×¨×™× ×©×œ×™" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "×”××™×©×•×¨×™× ×©×œ×™" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" msgstr "" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "ש×" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "×©× ×‘×©×™×ž×•×©" -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Need approval from system administrator" -msgstr "" - -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "חדש" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "×™×—×¡×™× ×—×“×©×™×" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "×¡×™×¡×ž× ×—×“×©×”" @@ -3413,39 +2651,31 @@ msgstr "×¡×™×¡×ž× ×—×“×©×”" msgid "New Pending Approval" msgstr "" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" msgstr "" -#: NOT FOUND IN SOURCE -msgid "New Relationships" -msgstr "" - #: NOT FOUND IN SOURCE msgid "New Search" msgstr "חיפוש חדש" -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "קבוצה חדשה" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "×¡×™×¡×ž× ×—×“×©×”" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "תור חדש" @@ -3453,11 +2683,11 @@ msgstr "תור חדש" msgid "New request" msgstr "בקשה חדשה" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "זכויות חדשות" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "סקריפ חדש" @@ -3465,39 +2695,35 @@ msgstr "סקריפ חדש" msgid "New search" msgstr "חיפוש חדש" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "פנייה חדשה" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "פנייה חדשה ×œ× ×§×™×™×ž×ª" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "משתמש חדש" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "משתמש חדש שנקר×" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "×¦×•×¤×™× ×—×“×©×™×" -#: NOT FOUND IN SOURCE -msgid "New window setting" -msgstr "" - -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "הב×" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" msgstr "" @@ -3509,172 +2735,145 @@ msgstr "דף הב×" msgid "NickName" msgstr "כינוי" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "כינוי" -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" msgstr "" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" msgstr "" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" msgstr "" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" msgstr "" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: 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 "" - -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "" -#: NOT FOUND IN SOURCE -msgid "No command found\\n" -msgstr "" - -#: html/Ticket/Elements/ShowRequestor:46 +#: 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:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:52 msgid "No groups matching search criteria found." msgstr "" -#: lib/RT/Ticket_Overlay.pm:2475 +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" msgstr "" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" msgstr "" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" msgstr "" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." msgstr "" -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." msgstr "" -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "" -#: html/Search/Bulk.html:162 -msgid "No search to operate on." +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" msgstr "" -#: html/Elements/TicketList:155 -msgid "No subject" +#: html/Search/Bulk.html:194 +msgid "No search to operate on." msgstr "" -#: NOT FOUND IN SOURCE -msgid "No ticket id specified" +#: html/Elements/RT__Ticket/ColumnMap:134 +msgid "No subject" msgstr "" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "" -#: NOT FOUND IN SOURCE -msgid "No user or email address specified" -msgstr "" - -#: html/Admin/Users/index.html:35 +#: 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 "" - -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "××£ ×חד" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "" @@ -3682,27 +2881,23 @@ msgstr "" msgid "Not logged in" msgstr "×œ× ×‘×ª×•×š המערכת" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "×œ× ×‘×ª×•×š המערכת." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "×œ× ×”×•×–×Ÿ" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "" -#: NOT FOUND IN SOURCE -msgid "Not yet implemented...." -msgstr "" - -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "" @@ -3774,7 +2969,7 @@ msgstr "" msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "נובמבר" @@ -3782,23 +2977,37 @@ msgstr "נובמבר" msgid "November" msgstr "נובמבר" -#: lib/RT/Record.pm:200 +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "" + +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Record.pm:121 +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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:901 msgid "Object type mismatch" msgstr "" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "×וקטובר" @@ -3806,19 +3015,19 @@ msgstr "×וקטובר" msgid "October" msgstr "×וקטובר" -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" msgstr "" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" msgstr "" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" msgstr "" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "ב" @@ -3858,45 +3067,33 @@ msgstr "" msgid "On Transaction" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "הצג רק ××™×©×•×¨×™× ×¢×‘×•×¨ בקשות שנוצרו ×חרי %1" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "הצג רק ××™×©×•×¨×™× ×¢×‘×•×¨ בקשות שנוצרו לפני %1" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "פתוח" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "פתח" -#: NOT FOUND IN SOURCE -msgid "Open requests" -msgstr "" - -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 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 "" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" msgstr "" @@ -3904,52 +3101,44 @@ msgstr "" msgid "Ordering and sorting" msgstr "סידור ומיון" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "×רגון" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" msgstr "" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" msgstr "" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" msgstr "בעלי×" -#: NOT FOUND IN SOURCE -msgid "Owner changed from %1 to %2" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." msgstr "" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "" @@ -3958,53 +3147,62 @@ msgstr "" msgid "Owner is" msgstr "הבעלי×" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" msgstr "" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "ביפר" -#: NOT FOUND IN SOURCE -msgid "PagerPhone" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Parent" -msgstr "" - -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "הורי×" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "סיסמ×" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "מזכיר סיסמ×" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "×¡×™×¡×ž× ×§×¦×¨×” מדי" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "סיסמ×: %1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." msgstr "הסיסמ×ות ×ינן תו×מות" -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "×נשי×" @@ -4012,55 +3210,43 @@ msgstr "×נשי×" msgid "Perform a user-defined action" msgstr "" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" msgstr "" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "קבוצות ×ישיות" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "קבוצות ×ישיות" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "קבוצות ×ישיות" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "מספרי טלפון" -#: NOT FOUND IN SOURCE -msgid "Placeholder" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Pref" -msgstr "" - -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "מ×פייני×" -#: NOT FOUND IN SOURCE -msgid "Prefs" -msgstr "" - -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "הקוד×" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" msgstr "" @@ -4068,24 +3254,20 @@ msgstr "" msgid "Previous page" msgstr "דף קוד×" -#: NOT FOUND IN SOURCE -msgid "Pri" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "" -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "עדיפות" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" msgstr "" @@ -4093,225 +3275,113 @@ msgstr "" msgid "Privileged" msgstr "" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" 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 "" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" msgstr "" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" msgstr "" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "תור" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Queue '%1' not found\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Queue Keyword Selections" -msgstr "" - -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Queue Scrips" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" msgstr "" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 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:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Queue is not specified." -msgstr "" - -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" msgstr "" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "תורי×" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "חיפוש מהיר" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" msgstr "" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:796 #. ($RT::VERSION, $RT::rtname) msgid "RT %1 for %2" msgstr "" -#: NOT FOUND IN SOURCE -msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "" - -#: html/Admin/index.html:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "ניהול RT" -#: NOT FOUND IN SOURCE -msgid "RT Authentication error." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Bounce: %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Configuration error" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Critical error. Message not recorded!" -msgstr "" - -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "" -#: NOT FOUND IN SOURCE -msgid "RT Received mail (%1) from itself." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Recieved mail (%1) from itself." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service / Closed Tickets" -msgstr "" - -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" msgstr "" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "RT ממבט כולל" -#: NOT FOUND IN SOURCE -msgid "RT couldn't authenticate you" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find requestor via its external database lookup" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find the queue: %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't validate this PGP signature. \\n" +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." msgstr "" -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "RT / %1" -#: NOT FOUND IN SOURCE -msgid "RT for %1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT has proccessed your commands" -msgstr "" - -#: 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 "" - -#: 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 "" - -#: 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 "" - -#: NOT FOUND IN SOURCE -msgid "RT thinks this message may be a bounce" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT will process this message as if it were unsigned.\\n" -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 "" - -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "×©× ×מיתי" @@ -4319,88 +3389,76 @@ msgstr "×©× ×מיתי" msgid "RealName" msgstr "×©× ×מיתי" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" msgstr "" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "×ž×ª×™×™×—×¡×™× ×ליו" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 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 "חדד ×ת החיפוש" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "רענן דף ×–×” כל %1 דקות." -#: NOT FOUND IN SOURCE -msgid "Relationships" -msgstr "" - -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "הסר העתק ניהולי" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "הסר העתק" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "הסר מבקש" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "הגב" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" msgstr "" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "מענה לפנייה" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "מבקש" @@ -4416,37 +3474,37 @@ msgstr "מבקש(×™×)" msgid "RequestorAddresses" msgstr "כתובת הפונה" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "מבקשי×" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" msgstr "" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "×פס נתוני×" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "בית" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "פתור" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "פתור פנייה #%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "נפתר" @@ -4454,7 +3512,7 @@ msgstr "נפתר" msgid "Response to requestors" msgstr "תגובה למבקשי×" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "תוצ×ות" @@ -4462,262 +3520,249 @@ msgstr "תוצ×ות" msgid "Results per page" msgstr "תוצ×ות לעמוד" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "הקלד שנית:" -#: html/Search/Elements/EditSearches:13 +#: 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 "" - -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "" -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "" -#: NOT FOUND IN SOURCE -msgid "RootApproval" -msgstr "" - -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" msgstr "" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "שבת" -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" msgstr "" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "שמור שינויי×" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" msgstr "" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "שמור שינויי×" -#: html/Search/Elements/EditSearches:1 +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "" + +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" msgstr "" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" msgstr "" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: 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 for %1\\n" -msgstr "" - -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" msgstr "" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "חיפוש" -#: NOT FOUND IN SOURCE -msgid "Search Criteria" +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:38 +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Search for articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Searches can't be associated with that kind of object" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" msgstr "" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "See custom fields" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "SeeCustomField" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 msgid "SeeQueue" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select" +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 +msgid "Select a Custom Field" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Class" +#: html/Admin/Groups/index.html:78 +msgid "Select a group" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Field" +#: html/Admin/Queues/index.html:54 +msgid "Select a queue" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" +#: html/SelfService/CreateTicketInQueue.html:48 +msgid "Select a queue for your new ticket" msgstr "" -#: html/Admin/Groups/index.html:50 -msgid "Select a group" +#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 +msgid "Select a user" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a queue" +#: html/Admin/Elements/CustomFieldTabs:90 +msgid "Select custom field" msgstr "" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 -msgid "Select a user" +#: html/Admin/Global/CustomFields/index.html:70 +msgid "Select custom fields for all user groups" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select class" +#: html/Admin/Global/CustomFields/index.html:65 +msgid "Select custom fields for all users" msgstr "" -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 -msgid "Select custom field" +#: 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:51 html/User/Elements/GroupTabs:49 +#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 msgid "Select group" msgstr "בחר קבוצה" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" msgstr "" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:61 msgid "Select up to %1 values" msgstr "" -#: html/Admin/Elements/UserTabs:46 +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "" -#: lib/RT/CustomField_Overlay.pm:35 -msgid "SelectMultiple" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:34 -msgid "SelectSingle" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:58 msgid "Selected Custom Fields" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:59 msgid "Selected objects" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Self Service" -msgstr "" - #: etc/initialdata:121 msgid "Send mail to all watchers" msgstr "" @@ -4762,147 +3807,123 @@ msgstr "" msgid "Sends mail to the owner" msgstr "" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "ספטמבר" -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" - #: NOT FOUND IN SOURCE msgid "September" msgstr "ספטמבר" -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" msgstr "" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" msgstr "" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" msgstr "" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "הצג בקשות ש×ושרו" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "הצג בקשות שנדחו" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "הצג בקשות ממתינות" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 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" +#: lib/RT/Queue_Overlay.pm:94 +msgid "ShowACL" msgstr "" -#: lib/RT/Queue_Overlay.pm:70 -msgid "ShowACL" +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" msgstr "" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "חתימה" -#: NOT FOUND IN SOURCE -msgid "Signed in as %1" -msgstr "" - -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "" -#: html/Elements/Header:62 -msgid "Skip Menu" +#: html/Search/Elements/EditFormat:75 +msgid "Size" msgstr "" -#: html/Admin/Elements/AddCustomFieldValue:27 -msgid "Sort" +#: html/Elements/Header:85 +msgid "Skip Menu" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Sort Order" +#: html/Search/Elements/EditFormat:78 +msgid "Small" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Sort key" +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 +msgid "Sort" msgstr "" #: NOT FOUND IN SOURCE msgid "Sort results by" msgstr "סדר תוצ×ות על פי" -#: NOT FOUND IN SOURCE -msgid "SortOrder" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" - -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" msgstr "" @@ -4910,35 +3931,19 @@ msgstr "" msgid "Stalled" msgstr "מושהה" -#: NOT FOUND IN SOURCE -msgid "Start page" -msgstr "" - -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: 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 "" - -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 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 "" - -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "מדינה" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "מצב" @@ -4946,110 +3951,86 @@ msgstr "מצב" msgid "Status Change" msgstr "" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) -msgid "Status changed from %1 to %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "StatusChange" -msgstr "" - -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "גנוב" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) -msgid "Stolen from %1 " +msgid "Stolen from %1" msgstr "נגנב מ %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 +#: NOT FOUND IN SOURCE +msgid "Stolen from %1 " +msgstr "נגנב מ %1 " + +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "נוש×" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "× ×•×©× ×©×•× ×” ל %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "שלח" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Submit Workflow" -msgstr "" - -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" msgstr "הצליח" -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" - -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "ר×שון" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "סופר-משתמש" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "מערכת" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" msgstr "" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 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" +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" msgstr "" -#: html/Admin/Tools/index.html:2 +#: html/Admin/Tools/index.html:47 msgid "System Tools" msgstr "" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "" -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "" -#: NOT FOUND IN SOURCE -msgid "System error. Unable to grant rights." -msgstr "" - -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "" @@ -5057,224 +4038,180 @@ msgstr "" msgid "SystemRolegroup for internal use" msgstr "" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "×§×—" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "נלקחה" -#: NOT FOUND IN SOURCE -msgid "Task" -msgstr "" - -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Template not found\\n" -msgstr "" - -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: 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 for %1\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Text" -msgstr "" - -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" msgstr "" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "" -#: NOT FOUND IN SOURCE -msgid "That principal is not a %1 for this ticket" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "" -#: NOT FOUND IN SOURCE -msgid "That user already has that right" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" msgstr "" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" msgstr "" -#: NOT FOUND IN SOURCE -msgid "That user is now unprivilegedileged" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" msgstr "" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "מידע בסיסי" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "" -#: NOT FOUND IN SOURCE -msgid "The comment has been recorded" -msgstr "" - -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 "" -#: NOT FOUND IN SOURCE -msgid "The following commands were not proccessed:\\n\\n" -msgstr "" - -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "" -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:912 msgid "This custom field does not apply to that object" msgstr "" -#: html/Admin/Tools/Configuration.html:5 +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" msgstr "" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." msgstr "" -#: NOT FOUND IN SOURCE -msgid "This ticket %1 %2 (%3)\\n" -msgstr "" - -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "" -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "This user's 25 highest priority tickets" -msgstr "" - -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "חמישי" @@ -5282,63 +4219,51 @@ msgstr "חמישי" msgid "Ticket" msgstr "פנייה" -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 %2" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Ticket # %1 Jumbo update: %2" msgstr "פנייה מספר %1 עדכון ×’'מבו: %2" -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: 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:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Ticket %1 loaded\\n" -msgstr "" - -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:74 msgid "Ticket Custom Fields" msgstr "" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Ticket Id" -msgstr "" - #: etc/initialdata:324 msgid "Ticket Resolved" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 msgid "Ticket Transactions" msgstr "" @@ -5346,27 +4271,23 @@ msgstr "" msgid "Ticket attachment" msgstr "מצורף לפנייה" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "פנייה נוצרה" #: NOT FOUND IN SOURCE -msgid "Ticket creation failed" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:502 msgid "Ticket deleted" msgstr "פנייה נמחקה" @@ -5378,7 +4299,7 @@ msgstr "מזהה פנייה ×œ× × ×ž×¦×" msgid "Ticket killed" msgstr "פנייה נמחקה" -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" msgstr "" @@ -5394,78 +4315,61 @@ msgstr "סטטוס פנייה שונה" msgid "Ticket watchers" msgstr "צופי הפנייה" -#: html/Elements/Tabs:46 -msgid "Tickets" -msgstr "פניות" - -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) -msgid "Tickets %1 %2" -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) -msgid "Tickets %1 by %2" +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Tickets from %1" -msgstr "" +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 +msgid "Tickets" +msgstr "פניות" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" msgstr "" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "זמן נותר" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "זמן עבודה" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" msgstr "זמן נותר" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "זמן להציג" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" msgstr "זמן עבודה" -#: NOT FOUND IN SOURCE -msgid "TimeLeft" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" 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" +#: html/Search/Elements/EditFormat:74 +msgid "Title" msgstr "" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<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:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" msgstr "" @@ -5473,69 +4377,58 @@ msgstr "" msgid "Transaction" msgstr "" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:78 msgid "Transaction Custom Fields" msgstr "" -#: lib/RT/Transaction_Overlay.pm:92 -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:125 msgid "Transaction->Create couldn't, as you didn't specify an object type and id" msgstr "" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Trying to delete a right: %1" -msgstr "" - -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "שלישי" -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "סוג" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "×œ× ×ž×™×™×•×©×" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "" -#: NOT FOUND IN SOURCE -msgid "UnixUsername" -msgstr "" - -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "×œ× ×ž×•×’×‘×œ" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" msgstr "" @@ -5543,39 +4436,31 @@ msgstr "" msgid "Unprivileged" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:60 msgid "Unselected Custom Fields" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:61 msgid "Unselected objects" msgstr "" -#: lib/RT/Transaction_Overlay.pm:562 +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Untitled search" -msgstr "" - -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "עדכן" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Update ID" -msgstr "" - -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" msgstr "" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "סוג עדכון" @@ -5587,7 +4472,7 @@ msgstr "עדכן ×ת כל הפניות לעיל בבת ×חת" msgid "Update email" msgstr "עדכן ××™-מייל" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" msgstr "" @@ -5595,11 +4480,11 @@ msgstr "" msgid "Update name" msgstr "עדכן ש×" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "" -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "עדכן פניות נבחרות" @@ -5607,94 +4492,74 @@ msgstr "עדכן פניות נבחרות" msgid "Update signature" msgstr "עדכן חתימה" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "עדכן פנייה" -#: NOT FOUND IN SOURCE -msgid "Update ticket # %1" -msgstr "" - -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "עודכן" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:84 msgid "Upload multiple files" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:79 msgid "Upload multiple images" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:85 msgid "Upload one file" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:80 msgid "Upload one image" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:86 msgid "Upload up to %1 files" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:81 msgid "Upload up to %1 images" msgstr "" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User %1 %2: %3\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User %1 Password: %2\\n" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." msgstr "" -#: NOT FOUND IN SOURCE -msgid "User '%1' not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found\\n" -msgstr "" - #: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" msgstr "" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" msgstr "" @@ -5702,96 +4567,73 @@ msgstr "" msgid "User ID" msgstr "מזהה המשתמש" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "מזהה המשתמש" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" msgstr "" -#: html/Admin/Users/Modify.html:252 +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" msgstr "" -#: NOT FOUND IN SOURCE -msgid "User notified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User view" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:99 msgid "User-defined groups" msgstr "" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "×©× ×ž×©×ª×ž×©" -#: 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 +#: 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:1086 msgid "Users" msgstr "משתמשי×" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" msgstr "" -#: NOT FOUND IN SOURCE -msgid "ValueOfQueue" -msgstr "" - -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "" -#: NOT FOUND IN SOURCE -msgid "VrijevormEnkele" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Watcher loaded" -msgstr "" - -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "" -#: NOT FOUND IN SOURCE -msgid "WebEncoding" -msgstr "" - -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "רביעי" @@ -5847,19 +4689,11 @@ msgstr "בכל ×¤×¢× ×©×”×¢×¨×” מגיעה ב" msgid "Whenever correspondence comes in" msgstr "בכל ×¤×¢× ×©×ª×›×ª×•×‘×ª מגיעה ב" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "עבודה" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" msgstr "" @@ -5867,31 +4701,19 @@ msgstr "" msgid "WorkPhone" msgstr "טלפון בעבודה" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "זמן טיפול" -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" msgstr "×תה כבר ×”×‘×¢×œ×™× ×©×œ פנייה זו" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 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 "" - -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" msgstr "×תה יכול להציב פניה רק ×× ×תה ×”×‘×¢×œ×™× ×©×œ×”, ×ו ש×ין לה בעלי×" @@ -5899,24 +4721,24 @@ msgstr "×תה יכול להציב פניה רק ×× ×תה ×”×‘×¢×œ×™× ×©×œ×” 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:760 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "מצ×ת %1 פניות בתור %2" -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "התנתקת מהמערכת." -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." msgstr "×ין לך הרש×ות ליצור פניות בתור ×–×”." -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." msgstr "×ינך מורשה ליצור פניות בתור ×–×”." -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "הנך מוזמן להיכנס שנית" @@ -5944,11 +4766,11 @@ msgstr "בקשתך נדחתה" msgid "Your request was rejected." msgstr "בקשתך נדחתה." -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "×©× ×”×ž×©×ª×ž×© ו/×ו ×”×¡×™×¡×ž× ××™× × × ×›×•× ×™×" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "מיקוד" @@ -5956,24 +4778,28 @@ msgstr "מיקוד" msgid "[no subject]" msgstr "[×œ×œ× × ×•×©×]" -#: NOT FOUND IN SOURCE -msgid "and is not" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "and not" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" msgstr "" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "שהוענק ל%1" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "סגור" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "מכיל" @@ -5993,211 +4819,199 @@ msgstr "התכתבות (כנר××”) ×œ× × ×©×œ×—×”" msgid "correspondence sent" msgstr "התכתבות נשלחה" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "ימי×" -#: NOT FOUND IN SOURCE -msgid "dead" -msgstr "" - #: NOT FOUND IN SOURCE msgid "delete" msgstr "מחק" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "מחוק" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "×œ× ×ž×›×™×œ" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "×œ× ×ž×›×™×œ" -#: NOT FOUND IN SOURCE -msgid "email address" -msgstr "" - -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "שווה ל" -#: NOT FOUND IN SOURCE -msgid "false" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" msgstr "" #: NOT FOUND IN SOURCE msgid "filename" msgstr "×©× ×§×•×‘×¥" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "גדול מ" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "קבוצה %1" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "שעות" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "מזהה" -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" - -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "הו×" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "×”×•× ×œ×" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "פחות מ" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "מכיל" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "דקות" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "דקות" -#: NOT FOUND IN SOURCE -msgid "modifications\\n\\n" -msgstr "" - -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "חודשי×" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "חדש" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" msgstr "" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "×ין ערך" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "×ין" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "×œ× ×©×•×•×” ל" -#: NOT FOUND IN SOURCE -msgid "notlike" -msgstr "" - -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "פתוח" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "נדחה" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "פתור" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "" + +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "מושהה" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "" -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "" -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "true" -msgstr "" - -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "undescripbed group %1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "" -#: NOT FOUND IN SOURCE -msgid "with template %1" -msgstr "" - -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "" diff --git a/rt/lib/RT/I18N/hu.po b/rt/lib/RT/I18N/hu.po index e0a2e19e9..857350841 100644 --- a/rt/lib/RT/I18N/hu.po +++ b/rt/lib/RT/I18N/hu.po @@ -1,1828 +1,1247 @@ msgid "" msgstr "" - -#: NOT FOUND IN SOURCE -msgid "#" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "#%1" -msgstr "" - -#: 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) +"Project-Id-Version: RT 3.0.7\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2002-06-22 06:06+0200\n" +"PO-Revision-Date: 2003-12-01 11:26+0100\n" +"Last-Translator: Attila K. Mergl <mergl@astron.hu>\n" +"Language-Team: Hungarian <hu@gnome.hu>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit" + +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" -msgstr "" +msgstr "#%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" msgstr "" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" -msgstr "" +msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +#: NOT FOUND IN SOURCE msgid "%1 %2 %3" -msgstr "" +msgstr "%1 %2 %3" -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) msgid "%1 %2 %3 %4:%5:%6 %7" -msgstr "" +msgstr "%1 %7. %2 %3 %4:%5:%6" -#: lib/RT/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" -msgstr "" +msgstr "[%1] mezõbe '%2' érték felvétele" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" -msgstr "" +msgstr "%1 %2" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" -msgstr "" +msgstr "%1 változtatása: '%2' --> '%3'" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 of group %3" -msgstr "" +msgstr "%1 %2 törölve" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 הוסף" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 מקבוצה %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 נמחק" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 שונה ל %3" -msgstr "" +msgstr "%1 %2 a %3 sablonnal" -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 this ticket\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 פנייה זו\\n" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" msgstr "" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 - %2 shown" -msgstr "" +msgstr "%1 (változatlan)" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" -msgstr "" +msgstr "%1 - %2-nek átadandó argumentum" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" -msgstr "" +msgstr "%1 - Státuszfrissítés kiíratása a STDOUT-ra" -#: bin/rt-crontool:175 +# msgstr "%1 - Schreibe Statusupdates nach STDOUT" +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" -msgstr "" +msgstr "%1 - Adja meg a használandó akciómodult!" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" -msgstr "" +msgstr "%1 - Adja meg a használandó kondiciómodult!" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 - ×רגומנט להעביר ×ל %2" -msgstr "" +msgstr "%1 - Adja meg a használandó keres?modult!" $RT::VERSION, - '2004', - '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) - $RT::VERSION, - '2004', + '2005', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 +#: html/Elements/Footer:58 #. ('»|«', $RT::VERSION, - '2004', + '2005', '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" -msgstr "" +msgstr "ScripAction %1 betöltve" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on " -msgstr "" +msgstr "%1 értéke hozzáadva %2 höz" -#: NOT FOUND IN SOURCE -msgid "%1 aliases require a TicketId to work on (from %2) %3" -msgstr "" - -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($args{'Base'}) #. ($args{'Target'}) msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "" +msgstr "%1 nem találhato az adatbázisban, pedig helyi objektumnak látszik" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" -msgstr "" +msgstr "%1 (%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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") msgid "%1 changed from %2 to %3" -msgstr "" +msgstr "%1 változtatása: '%2' --> '%3'" -#: html/Search/Build.html:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" msgstr "" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 couldn't init a transaction (%2)\\n" -msgstr "" +msgstr "%1 nem állítható %2 re." -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "" +"%1 nem tudta a státuszt lezártra állítani. Az RT adatbázisa talán " +"inkonzisztens." -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) msgid "%1 created" -msgstr "" +msgstr "%1 létrehozva" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) msgid "%1 deleted" -msgstr "" +msgstr "%1 törölve" -#: html/Elements/MyTickets:24 +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I own..." -msgstr "" - -#: html/Elements/MyTickets:26 -#. ($rows) -msgid "%1 highest priority tickets I requested..." -msgstr "" +msgstr "A %1 nekem kiosztott, legsürgõsebb probléma..." -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "" -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 is no longer a %2 for this ticket." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) -msgid "%1 is no longer a value for custom field %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 isn't a valid Queue id." -msgstr "" +msgstr "Ennek a sornak %1 már nem %2-je." -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<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 "" +msgstr "%1 perc" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 not shown" -msgstr "" +msgstr "%1 legújabb gazdátlan probléma" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:827 msgid "%1 objects" msgstr "" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 succeeded\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for $MessageId" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 type unknown for %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 was created without a CurrentUser\\n" -msgstr "" +msgstr "%1 jogok" -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 הוסף כערך עבור %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 לפני %2 ימי×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 על ידי %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 פעולת-סקריפ נטענה" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 שונה מ %2 ל %3" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:828 msgid "%1's %2 objects" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:829 msgid "%1's %2's %3 objects" msgstr "" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" msgstr "" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" -msgstr "" +msgstr "%1: Nincs melléklet megadva!" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" -msgstr "" +msgstr "%1b" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" -msgstr "" +msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "'%1' not a recognized action. " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Check box to delete group member)" -msgstr "" +msgstr "'%1' nem lehet státusz érték" -#: NOT FOUND IN SOURCE -msgid "(Check box to delete scrip)" -msgstr "" - -#: 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 +#: 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 "" +msgstr "(Törléshez kiválasztandó!)" -#: NOT FOUND IN SOURCE -msgid "(Check boxes to delete)" -msgstr "" - -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "" +msgstr "(Szóközökkel elválasztva adható meg a problémák sorszáma vagy URL-je.)" -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" -msgstr "" - -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: 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 "" +msgid "(If left blank, will default to %1)" +msgstr "(Ha üresen marad: %1)" -#: NOT FOUND IN SOURCE -msgid "(No Value)" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" -msgstr "" +msgstr "(Nincs egyéni mezõ)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" -msgstr "" +msgstr "(Nincsenek tagok)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" -msgstr "" +msgstr "(Nincs Scrip)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" -msgstr "" +msgstr "(Nincs sablon)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 msgid "(None)" -msgstr "" +msgstr "(nincs név)" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:88 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 "" -#: 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 "" - -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 "" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 "" -#: 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 "" - -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 "" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" msgstr "" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" -msgstr "" +msgstr "(üres)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(no subject)" -msgstr "" +msgstr "(Nincs név a listában)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" -msgstr "" +msgstr "(nincs adat)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFieldValues:47 msgid "(no values)" -msgstr "" +msgstr "(nincs adat)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" -msgstr "" +msgstr "<br>(Csak egy probléma adható meg!)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 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:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" -msgstr "" +msgstr "(szükséges)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I own..." -msgstr "" +msgstr "(névtelen)" -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I requested..." -msgstr "" - -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "??????" -msgstr "" +msgstr "<input type=\"submit\" value=\"Új probléma\"> %1" #: etc/initialdata:218 msgid "A blank template" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE Deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE Loaded" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be deleted" -msgstr "" +msgstr "Üres sablon" -#: NOT FOUND IN SOURCE -msgid "ACE could not be found" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." msgstr "" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" -msgstr "" +msgstr "ACE nem található" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." -msgstr "" +msgstr "ACE-k csak létrehozhatók és törölhetõk." -#: NOT FOUND IN SOURCE -msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "" +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "ÉS" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" -msgstr "" +msgstr "Magamról" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" -msgstr "" +msgstr "Hozzáférés ellenõrzése" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" -msgstr "" +msgstr "Akció" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" -msgstr "" +msgstr "%1 akció nem található" -#: bin/rt-crontool:119 -msgid "Action committed." -msgstr "" +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "Akció végrehajtva.\\n" -#: bin/rt-crontool:115 +#: bin/rt-crontool:144 msgid "Action prepared..." -msgstr "" +msgstr "Akció elõkészítve..." -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" -msgstr "" +msgstr "Hozzáad" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" -msgstr "" +msgstr "Adminisztratív tájékotatást kapó hozzáadása" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" -msgstr "" +msgstr "Tájékotatást kapó hozzáadása" + +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "Mezõk hozzáadása" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" -msgstr "" +msgstr "Bõvített keresési feltételek" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" -msgstr "" +msgstr "További fájlok csatolása" -#: NOT FOUND IN SOURCE -msgid "Add Next State" -msgstr "" - -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" -msgstr "" +msgstr "Beküldõ hozáadása" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: 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 "" +msgstr "Értékek hozzáadása" -#: NOT FOUND IN SOURCE -msgid "Add a scrip to this queue" -msgstr "" - -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" -msgstr "" +msgstr "Minden sorra vonatkozó Scrip hozzáadása" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" -msgstr "" +msgstr "További feltételek hozzáadása" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" -msgstr "" +msgstr "A kiválasztott problémákhoz válasz vagy kiegészítés hozzáadása" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" -msgstr "" +msgstr "Tagfelvétel" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" -msgstr "" +msgstr "Új résztvevõk hozzáadása" -#: NOT FOUND IN SOURCE -msgid "AddNextState" -msgstr "" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "Egyéni mezõk lehetséges értékeinek létrehozása, módosítása, törlése" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" -msgstr "" +msgstr "Hozzendelt egy vezetõt mint %1 ehhez a sorhoz" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" -msgstr "" +msgstr "Hozzárendelt egy vezetõt mint %1 ehhez a problémához" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" -msgstr "" +msgstr "Utca, házszám" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" -msgstr "" +msgstr "Postafiók" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" -msgstr "" +msgstr "Adminisztratív tájékoztatást kap" #: etc/initialdata:295 msgid "Admin Comment" -msgstr "" +msgstr "Adminisztratív megjegyzés" #: etc/initialdata:274 msgid "Admin Correspondence" msgstr "" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" -msgstr "" +msgstr "Válasszon sort!" -#: NOT FOUND IN SOURCE -msgid "Admin users" -msgstr "" - -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" -msgstr "" +msgstr "Konfiguráció / Ãltalános beállítások" -#: NOT FOUND IN SOURCE -msgid "Admin/Groups" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Admin/Queue/Basics" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AdminAllPersonalGroups" -msgstr "" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AdminComment" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AdminCorrespondence" -msgstr "" +msgstr "Adminisztratív tájékoztatást kap" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:101 msgid "AdminCustomField" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 -msgid "AdminCustomFields" -msgstr "" - -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Admins" -msgstr "" +msgstr "Adminisztratív tájékoztatást kap" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "" +msgstr "Kézi lekérdezés" -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Age" -msgstr "" +msgstr "után" -#: NOT FOUND IN SOURCE -msgid "Alias" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Alias for" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" msgstr "" #: etc/initialdata:363 msgid "All Approvals Passed" msgstr "" -#: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:94 -msgid "All Custom Fields" -msgstr "" - -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" -msgstr "" +msgstr "Minden sor" -#: NOT FOUND IN SOURCE -msgid "Always sends a message to the requestors independent of message sender" -msgstr "" +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" +msgstr "ÉS/VAGY" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 msgid "Applies to" msgstr "" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply" -msgstr "" +msgstr "Mentés" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" -msgstr "" +msgstr "A változtatás mentése" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" -msgstr "" +msgstr "Lezárás" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "" +msgstr "Engedélyezés #%1: %2" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "" +msgstr "Engedélyezés #%1: A megjegyzés rendszerhiba miatt nem rögzíthetõ" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Approval Details" -msgstr "" +msgstr "Engedélyezés #%1: Megjegyzés rögzítve" #: etc/initialdata:351 msgid "Approval Passed" -msgstr "" +msgstr "Lezárás rendben" #: etc/initialdata:374 msgid "Approval Rejected" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Approval diagram" -msgstr "" +msgstr "Lezárás visszautasítva" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" -msgstr "" +msgstr "Lezár" #: etc/initialdata:504 msgid "Approver's notes: %1" -msgstr "" +msgstr "Az engedélyezõ megjegyzése: %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "April" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" +msgstr "ápr." -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" -msgstr "" +msgstr "növekvõ" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "Assign and remove custom fields" -msgstr "" +msgstr "Egyéni mezõ hozzárendelése vagy törlése" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "AssignCustomFields" msgstr "" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" -msgstr "" +msgstr "Csatol" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" -msgstr "" +msgstr "Fájl csatolása" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" -msgstr "" +msgstr "Csatolt fájl" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 #. ($Attachment) msgid "Attachment '%1' could not be loaded" -msgstr "" +msgstr "A csatolt '%1' nem betölthetõ" -#: lib/RT/Transaction_Overlay.pm:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" -msgstr "" +msgstr "Csatolt fájl létrehozva" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" -msgstr "" +msgstr "Csatolt fájl neve" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" -msgstr "" +msgstr "Csatolt fájlok" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" msgstr "" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "August" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AuthSystem" -msgstr "" +msgstr "aug." #: etc/initialdata:221 msgid "Autoreply" -msgstr "" +msgstr "Automatikus válasz" #: etc/initialdata:72 msgid "Autoreply To Requestors" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AutoreplyToRequestors" -msgstr "" - -#: html/Search/Elements/EditFormat:4 -msgid "Available Columns" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bad PGP Signature: %1\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bad attachment id. Couldn't find attachment '%1'\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bad data in %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Bad transaction number for attachment. %1 should be %2\\n" -msgstr "" +msgstr "Automatikus válasz a beküldõnek" -#: 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 +#: 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 "" +msgstr "Alapadatok módosítása" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" -msgstr "" +msgstr "BCC" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "" +"Ha valamit módosított ne felejtsen el ide kattintani, hogy megtörténjen a" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +# ## wieder - Duzen??? +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" -msgstr "" +msgstr "elõtt" -#: NOT FOUND IN SOURCE -msgid "Begin Approval" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Binary" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" msgstr "" #: etc/initialdata:217 msgid "Blank" -msgstr "" +msgstr "Üres" -#: NOT FOUND IN SOURCE -msgid "Bookmarkable URL for this search" -msgstr "" +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "Félkövér" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" msgstr "" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" -msgstr "" +msgstr "Tömör fejléc" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" -msgstr "" +msgstr "Tömeges problémafrissítés" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" -msgstr "" +msgstr "Rendszerfelhasználó nem módosítható" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" -msgstr "" +msgstr "Ez a vezetõ nem láthatja ezt a sort" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" +msgstr "Egyéni mehzõ név nélkül nem hozzáadható" + +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" msgstr "" -#: html/Search/Build.html:694 +#: html/Search/Build.html:761 msgid "Can't find a saved search to work with" msgstr "" -#: lib/RT/Link_Overlay.pm:126 +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" -msgstr "" +msgstr "A problémát nem lehet önmagához kapcsolni!" -#: lib/RT/Ticket_Overlay.pm:2716 -msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "" - -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" -msgstr "" +msgstr "Ezt a lekérdezést nem lehet lementeni" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" -msgstr "" +msgstr "Nem adhat meg egyszerre bázist és célt" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" -msgstr "" +msgstr "A felhasználó nem hozható létre: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" -msgstr "" +msgstr "Tájékoztatást kap" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" -msgstr "" +msgstr "Jelszó-változtatás" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:100 msgid "Check All" msgstr "" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" -msgstr "" +msgstr "Törléshez bejelölni" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" -msgstr "" +msgstr "Jog megvonásához megjelölni" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" -msgstr "" +msgstr "Leszármazottak" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" +msgstr "Város" -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:102 msgid "Clear All" msgstr "" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" -msgstr "" +msgstr "Lezárva" -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Closed requests" -msgstr "" - -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" -msgstr "" +msgstr "Lezárt problémák" -#: NOT FOUND IN SOURCE -msgid "Code" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Command not understood!\\n" -msgstr "" - -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" -msgstr "" +msgstr "Kiegészít" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Comment not recorded" -msgstr "" +msgstr "Kiegészitõcím" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Comments" -msgstr "" - -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" -msgstr "" +msgstr "Kiegészítés (a beküldõ nem kapja meg!))" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Comments about %1" -msgstr "" +msgstr "Kiegészítés (a beküldõ nem kapja meg!)" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" -msgstr "" +msgstr "Kiegészítés ehhez a felhasználóhoz" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" -msgstr "" +msgstr "Kiegészítés hozzáfûzése" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Compile Restrictions" -msgstr "" - -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" -msgstr "" +msgstr "Feltétel" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "" -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" -msgstr "" +msgstr "A feltétel nem található" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" -msgstr "" +msgstr "Konfiguráció" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" -msgstr "" +msgstr "Igazolás" -#: NOT FOUND IN SOURCE -msgid "ContactInfoSystem" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Contacted date '%1' could not be parsed" -msgstr "" - -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" -msgstr "" +msgstr "Tartalom" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Coould not create group" -msgstr "" - -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" -msgstr "" +msgstr "Másol" #: etc/initialdata:286 msgid "Correspondence" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Correspondence Address" -msgstr "" +msgstr "Válasz" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" -msgstr "" +msgstr "Válasz hozzáfûzése" -#: NOT FOUND IN SOURCE -msgid "Correspondence not recorded" -msgstr "" +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "Az egyéni mezõt nem sikerült hozzáadni." -#: lib/RT/Ticket_Overlay.pm:3471 -msgid "Could not add new custom field value for ticket. " -msgstr "" +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "Az egyéni mezõértéket nem sikerült hozzáadni a #%1 problémához" -#: NOT FOUND IN SOURCE -msgid "Could not add new custom field value for ticket. %1 " -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " -msgstr "" +msgstr "Nem sikerült a tulajdonost megváltoztatni! " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" -msgstr "" +msgstr "Nem sikerült létrehozni az egyéni mezõt" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "Nem sikerült létrehozni a(z) %1 egyéni mezõt" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" -msgstr "" +msgstr "Nem sikerült létrehozni a csoportot" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" -msgstr "" +msgstr "A sablom nem jött létre: %1" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" -msgstr "" +msgstr "Nem jött létre a probléma. A sor nincs meghatározva" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 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 find a ticket with id %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Could not find group %1." -msgstr "" +msgstr "A felhasználó nem jött létre" -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" -msgstr "" +msgstr "A felhasználót nem sikerült megtalálni vagy létrehozni" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Could not find user %1." -msgstr "" +msgstr "A vezetõ nem található" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:69 msgid "Could not load CustomField %1" -msgstr "" +msgstr "A(z) %1 egyéni mezõ nem betölthetõ" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" +msgstr "A csoport nem betölthetõ" + +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" msgstr "" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" -msgstr "" +msgstr "A vezetõ nem lehet %1-e a sornak" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" -msgstr "" +msgstr "A vezetõ nem lehet %1-e a problémának" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Could not remove that principal as a %1 for this ticket" -msgstr "" +msgstr "A vezetõt nem lehet mint a sor %1-ét eltávolítani" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" -msgstr "" +msgstr "A felhasználó adatait nem sikerült elmenteni" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" -msgstr "" +msgstr "A tagot nem lehet a csoporthoz adni" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" -msgstr "" +msgstr "A tanzakció nem létrehozható: %1" -#: NOT FOUND IN SOURCE -msgid "Couldn't figure out what to do from gpg's reply\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't find group\\n" -msgstr "" - -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" -msgstr "" +msgstr "A sor nem található" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" -msgstr "" +msgstr "A csoport/felhasználó nem található" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 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 "" +msgstr "Az érték nem található" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load KeywordSelects." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load RT config file '%1' %2" -msgstr "" +msgstr "A(z) %1 egyéni mezõ nem betölthetõ" -#: NOT FOUND IN SOURCE -msgid "Couldn't load Scrips." -msgstr "" - -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" -msgstr "" +msgstr "%1 csoport nem betölthetõ" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "" -#: NOT FOUND IN SOURCE +#: 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 "" +msgstr "%1 objektum nem betölthetõ" -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" -msgstr "" +msgstr "A sor nem betölthetõ" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load scrip" -msgstr "" +msgstr "%1 sor nem betölthetõ" -#: NOT FOUND IN SOURCE -msgid "Couldn't load template" -msgstr "" +#: html/SelfService/Display.html:156 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "A(z) '%1' nem betölthetõ" -#: NOT FOUND IN SOURCE -msgid "Couldn't load that user (%1)" +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." msgstr "" -#: html/SelfService/Display.html:116 -#. ($id) -msgid "Couldn't load ticket '%1'" +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." msgstr "" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" -msgstr "" +msgstr "Ország" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" -msgstr "" +msgstr "Felvesz" #: etc/initialdata:135 msgid "Create Tickets" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" +msgstr "Probléma megadása" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" -msgstr "" +msgstr "Hozzon létre egy új egyéni mezõt!" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" -msgstr "" - -#: html/Admin/Global/CustomField.html:47 -msgid "Create a CustomField which applies to all queues" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create a new Custom Field" -msgstr "" +msgstr "Hozzon létre egy egyéni mezõt a(z) %1 sorhoz" -#: NOT FOUND IN SOURCE -msgid "Create a new article" -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:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" -msgstr "" +msgstr "Hozzon létre új csoportot!" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" -msgstr "" +msgstr "Hozzon létre egy új saját csoportot!" -#: 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:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" -msgstr "" +msgstr "Új probléma felvétele" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" -msgstr "" +msgstr "Hozzon létre egy új felhasználót!" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create a queue called" -msgstr "" +msgstr "Hozzon létre egy sort!" -#: NOT FOUND IN SOURCE -msgid "Create a request" -msgstr "" - -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" -msgstr "" +msgstr "Hozzon létre egy scrip-et a(z) %1 sorhoz!" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" -msgstr "" +msgstr "Hozzon létre egy sablont!" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1 / %2 / %3 " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1/%2/%3" -msgstr "" +msgstr "Új probléma" #: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" -msgstr "" +msgstr "Hozzon létre egy új problémát ennek a sablonnak scripjeire alapozva" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" -msgstr "" +msgstr "Létrehozás" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" -msgstr "" +msgstr "Hozzon létre problémákat ebben a sorban!" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" -msgstr "" +msgstr "Egyéni mezõk létrehozása, módosítása, törlése" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 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 "" +msgstr "Sor létrehozása, módosítása, törlése" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" +msgstr "Felhasználók létrehozása, módosítása, törlése" + +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" msgstr "" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" -msgstr "" +msgstr "Felvéve" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created template %1" -msgstr "" - -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" -msgstr "" +msgstr "Létrehozó" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" -msgstr "" +msgstr "Jelenlegi kapcsolatok" -#: NOT FOUND IN SOURCE -msgid "Current Relationships" -msgstr "" - -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" -msgstr "" +msgstr "Jelenlegi Scripek" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" -msgstr "" +msgstr "Jelenlegi tagok" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Current search criteria" -msgstr "" +msgstr "Jelenlegi jogok" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" -msgstr "" - -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) -msgid "Custom Field #%1" -msgstr "" +msgstr "Jelenlegi résztvevõk" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" -msgstr "" +msgstr "Egyéni mezõk" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) msgid "Custom Fields for %1" -msgstr "" +msgstr "%1 egyéni mezõi" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" -msgstr "" +msgstr "Az akcióhoz rendelt egyéni lezáró kód" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" -msgstr "" +msgstr "Az akcióhoz rendelt egyéni elõkészítõ kód" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) -msgid "Custom field %1 %2 %3" -msgstr "" +msgstr "Egyéni feltétel" #: NOT FOUND IN SOURCE -msgid "Custom field %1 does not apply to this object" -msgstr "" +msgid "Custom field %1 %2 %3" +msgstr "Egyéni mezõ %1 %2 %3" -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." -msgstr "" +msgstr "[%1] egyéni mezõnek van értéke." -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." -msgstr "" +msgstr "[%1] egyéni mezõnek nincs értéke." -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" -msgstr "" +msgstr "[%1] egyéni mezõ nem található" -#: html/Admin/Elements/EditCustomFields:195 -msgid "Custom field deleted" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" -msgstr "" +msgstr "Egyéni mezõ nem található" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Custom field value changed from %1 to %2" -msgstr "" +msgstr "A(z) %2 egyéni mezõ %1értéke nem található" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" -msgstr "" +msgstr "Az egyéni mezõ értéke nem található" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" -msgstr "" +msgstr "Az egyéni mezõ értéke nem található" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" -msgstr "" +msgstr "Az egyéni mezõ értéke törölve" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Data error" -msgstr "" - -#: 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 "" - -#: lib/RT/Date.pm:422 -msgid "Dec." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "December" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "" +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 +msgid "Dates" +msgstr "Idõpontok" + +#: lib/RT/Date.pm:448 +msgid "Dec." +msgstr "dec." #: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" -msgstr "" +msgstr "Alapértlemezett sor" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" -msgstr "" +msgstr "Alapértelmezett beküldõ" #: etc/initialdata:296 msgid "Default admin comment template" @@ -1840,1873 +1259,1518 @@ msgstr "" msgid "Default transaction template" msgstr "" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) -msgid "Default: %1/%2 changed from %3 to %4" -msgstr "" - -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" -msgstr "" +msgstr "Jogok továbbadása" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" -msgstr "" +msgstr "Jogok továbbadása" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" -msgstr "" +msgstr "Töröl" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" -msgstr "" +msgstr "Sablon törlése" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" -msgstr "" +msgstr "Kiválasztott Scrip törlése" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" -msgstr "" +msgstr "Problémák törlése" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:162 -msgid "Deleting this object could break referential integrity" +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" msgstr "" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 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:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" -msgstr "" +msgstr "Elutasítva" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Dependencies: \\n" -msgstr "" +msgstr "Ettõl függnek" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "DependsOn" -msgstr "" +msgstr "A következõktõl függ" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" -msgstr "" +msgstr "csökkenõ" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" -msgstr "" +msgstr "A probléma szabatos leírása" -#: 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 +#: 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:56 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 "" +msgstr "Leírás" -#: NOT FOUND IN SOURCE -msgid "Details" -msgstr "" - -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" -msgstr "" +msgstr "Mutat" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" -msgstr "" +msgstr "Mezõk kiválasztása" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" -msgstr "" +msgstr "Láthatóak legyenek az ehhez a sorhoz tartozó scrip sablonok" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" -msgstr "" +msgstr "Láthatóak legyen a sorhoz tartozó scripek" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" -msgstr "" +msgstr "Megjelenítési mód" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Display ticket #%1" -msgstr "" - -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" msgstr "" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "" -#: html/Elements/Refresh:29 -msgid "Don't refresh this page." -msgstr "" +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "Keresés indítása" -#: NOT FOUND IN SOURCE -msgid "Don't show search results" -msgstr "" +#: html/Elements/Refresh:51 +msgid "Don't refresh this page." +msgstr "Ne frissítse ezt az oldalt." -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "" +msgstr "Letölt" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 msgid "Download as a tab-delimited file" msgstr "" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Due date '%1' could not be parsed" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "" +msgstr "Határidõ" -#: NOT FOUND IN SOURCE -msgid "Edit" -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 "Módosítsa %1 egyéni mezõit!" -#: NOT FOUND IN SOURCE -msgid "Edit Conditions" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" msgstr "" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) -msgid "Edit Custom Fields for %1" +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" msgstr "" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" -msgstr "" +msgstr "Kapcsolatok módosítása" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Edit Relationships" -msgstr "" +msgstr "Lekérdezés szerkesztése kézzel" -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Edit keywords" -msgstr "" +msgstr "Módosítsa a(z) %1 sor sablonjait!" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit scrips" -msgstr "" - -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Edit templates for %1" -msgstr "" +msgstr "Módosítsa a rendszersablonokat!" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for user %1" -msgstr "" - -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" -msgstr "" +msgstr "Módosítsa a(z) %1 csoport tagságát!" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Editing template %1" -msgstr "" - -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" -msgstr "" +msgstr "Meg kell adni a bázist vagy a célt" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" -msgstr "" +msgstr "E-mail cím" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "EmailAddress" -msgstr "" +msgstr "E-Mail-cím már foglalt" -#: NOT FOUND IN SOURCE -msgid "EmailEncoding" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +# ## muss das überhaupt übersetzt werden??? +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "" +msgstr "Aktivált (kiválasztása letiltja ezt az egyéni mezõt)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 msgid "Enabled (Unchecking this box disables this group)" -msgstr "" +msgstr "Aktivált (Kiválasztása letiltja ezt a csoportot)" -#: html/Admin/Queues/Modify.html:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" +msgstr "Aktivált (Kiválasztása letiltja ezt a sort)" -#: html/Admin/Elements/EditCustomFields:97 -msgid "Enabled Custom Fields" -msgstr "" - -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" -msgstr "" +msgstr "Aktív sorok" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" -msgstr "" +msgstr "Status %1 aktiviert" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) msgid "Enabled status: %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" -msgstr "" +msgstr "Adjon meg több értéket!" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "" +msgstr "Objektum vagy URI. Szóközzel elválasztva több is megadható" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" -msgstr "" +msgstr "Adjon meg egy értéket!" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "" +msgstr "Sor vagy URI. Szóközzel elválasztva több is megadható" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." -msgstr "" +msgstr "Probléma szám vagy URI. Szóközzel elválasztva több is megadható" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:66 msgid "Enter up to %1 values" -msgstr "" +msgstr "Adjon meg egy értéket!" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Error adding watcher" -msgstr "" +msgstr "Hiba" -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Queue->DelWatcher" -msgstr "" +msgstr "Hiba a sor paraméterezésében ->AddWatcher" -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "" +msgstr "Hiba a sor paraméterezésében->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" -msgstr "" +msgstr "Hiba a probléma paraméterezésében -> AddWatcher" -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Ticket->DelWatcher" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "" +msgstr "Hiba a probléma paraméterezésében->DelWatcher" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Estimate" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" -msgstr "" +msgstr "Becsült" #: etc/initialdata:20 msgid "Everyone" -msgstr "" +msgstr "Mindenki" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ExternalAuthId" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ExternalContactInfoId" -msgstr "" +msgstr "Például:" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "" +msgstr "Kiegészítõ információk" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" msgstr "" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "" -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" -msgstr "" +msgstr "A %1 Modul nem betölthetõ. (%2)" -#: lib/RT/Date.pm:412 -msgid "Feb." +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "February" -msgstr "" +#: lib/RT/Date.pm:438 +msgid "Feb." +msgstr "feb." -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" -msgstr "" +msgstr "fájlnév" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:69 msgid "Fill in multiple text areas" msgstr "" -#: NOT FOUND IN SOURCE +#: 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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:71 msgid "Fill in up to %1 text areas" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Fin" +#: lib/RT/CustomField_Overlay.pm:76 +msgid "Fill in up to %1 wikitext areas" msgstr "" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" -msgstr "" +msgstr "Végsõ prioritás" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 -msgid "Find group whose" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 msgid "Find groups whose" -msgstr "" +msgstr "Találjon olyan csoportot, amelyiknél a" -#: NOT FOUND IN SOURCE -msgid "Find new/open tickets" -msgstr "" - -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" -msgstr "" +msgstr "Találj olyan embereket, akiknél a" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Finish Approval" -msgstr "" +msgstr "Problémák keresése" -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "First page" -msgstr "" +msgstr "Elsõ" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" +msgstr "A változtatás kikényszerítése" + +#: html/Search/Elements/EditFormat:52 +msgid "Format" msgstr "" -#: html/Search/Results.html:70 +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" -msgstr "" +msgstr "%quant(%1) problémát találtam" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Freeform" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "FreeformContactInfo" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:37 -msgid "FreeformMultiple" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:36 -msgid "FreeformSingle" -msgstr "" - -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." -msgstr "" +msgstr "P" -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" -msgstr "" +msgstr "Teljes fejléc" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Getting the current user from a pgp sig\\n" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" -msgstr "" +msgstr "%1 felhasználónak adva" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" -msgstr "" +msgstr "Ãltalános" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:55 msgid "Global Custom Fields" -msgstr "" +msgstr "Globális egyéni mezõ" -#: NOT FOUND IN SOURCE -msgid "Global Keyword Selections" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Global Scrips" -msgstr "" +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "Egyéni mezõk általános beállításai" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" -msgstr "" +msgstr "Ãltalános probléma: %1" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" -msgstr "" +msgstr "Hajrá!" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Good pgp sig from %1\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Goto page" -msgstr "" +msgstr "Hajrá!" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Grand" -msgstr "" +msgstr "Mutassa a problémát" -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: 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 "" +msgstr "Csoport" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "" +msgstr "Csoportjogok" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" -msgstr "" +msgstr "Csoportnak már vannak tagjai" -#: NOT FOUND IN SOURCE -msgid "Group could not be created." -msgstr "" - -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" -msgstr "" +msgstr "A csoportot nem lehetett létrehozni: %1" -#: lib/RT/Group_Overlay.pm:497 -msgid "Group created" -msgstr "" - -#: lib/RT/Group_Overlay.pm:1129 -msgid "Group has no such member" -msgstr "" - -#: 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 "" +#: lib/RT/Group_Overlay.pm:529 +msgid "Group created" +msgstr "Csoport létrehozva" -#: NOT FOUND IN SOURCE -msgid "Group not found.\\n" -msgstr "" +#: lib/RT/Group_Overlay.pm:1163 +msgid "Group has no such member" +msgstr "A csoportnak már van ilyen tagja" -#: NOT FOUND IN SOURCE -msgid "Group not specified.\\n" -msgstr "" +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 +msgid "Group not found" +msgstr "Csoport nem található" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" -msgstr "" +msgstr "Csoportok" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" -msgstr "" +msgstr "Csoportok nem lehetnek a saját tagjaik tagjai!" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:82 msgid "Groups matching search criteria" -msgstr "" +msgstr "A keresési feltételeknek megfeleõ csoportok" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowRequestor:77 msgid "Groups this user belongs to" msgstr "" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: lib/RT/Interface/CLI.pm:94 lib/RT/Interface/CLI.pm:94 msgid "Hello!" -msgstr "" +msgstr "Hallo!" -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" -msgstr "" +msgstr "Hallo %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "" +msgstr "Részletes történet" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) msgid "History of the group %1" -msgstr "" +msgstr "A %1 csoport története" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) msgid "History of the user %1" -msgstr "" +msgstr "%1 felhasználó története" -#: NOT FOUND IN SOURCE -msgid "HomePhone" -msgstr "" - -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" -msgstr "" +msgstr "Kezdõlap" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "" -#: NOT FOUND IN SOURCE -msgid "I have [quant,_1,concrete mixer]." +#: html/Search/Build.html:637 +msgid "I'm lost" msgstr "" -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" -msgstr "" +msgstr "Sorszám" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" -msgstr "" +msgstr "Személy" #: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "" +msgstr "Ha a beküldõ ismeretlen, ezzel legyen az új probléma beküldõje" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." -msgstr "" +msgstr "Ha nincs megadva sor, ebbe a sorba kerüljenek az új problémák" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 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:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" msgstr "" +"Ha valamit módosított, ne felejtsen el ide kattintani, hogy megtörténjen a" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" -msgstr "" +msgstr "Érvénytelen érték %1-nek" #: NOT FOUND IN SOURCE msgid "Image" -msgstr "" +msgstr "Kép" -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 -msgid "Include disabled custom fields in listing." -msgstr "" +msgstr "Nem változtatható mezõ" -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." -msgstr "" +msgstr "Láthatóak legyenek a letiltott sorok is." -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." -msgstr "" +msgstr "Láthatóak legyenek a letiltott sorok is." -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." +msgstr "Keresés a letiltott felhasználók között is." + +#: html/Search/Build.html:663 +msgid "Incomplete Query" msgstr "" -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 -msgid "Initial Priority" +#: html/Search/Build.html:660 +msgid "Incomplete query" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 +msgid "Initial Priority" +msgstr "Kezdõ prioritás" + +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Interest noted" -msgstr "" +msgstr "Input hiba" -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" -msgstr "" +msgstr "Belsõ hiba" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" -msgstr "" +msgstr "Belsõ hiba: %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" -msgstr "" +msgstr "Érvénytelen csoportfajta" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Invalid Type" -msgstr "" +msgstr "Érvénytelen jog" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "" +msgstr "Érvénytelen dátum" -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" -msgstr "" +msgstr "Érvénytelen sor" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" -msgstr "" +msgstr "Érvénytelen jog" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" -msgstr "" +msgstr "Érvénytelen érték %1-nek" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" -msgstr "" +msgstr "Érvénytelen érték az egyéni mezõhöz" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" -msgstr "" +msgstr "Érvénytelen státuszérték" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "" -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Items pending my approval" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" msgstr "" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "January" -msgstr "" +msgstr "jan." -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "July" -msgstr "" +msgstr "júl." -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" -msgstr "" +msgstr "Minden módosítása" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "June" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Keyword" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Lang" -msgstr "" +msgstr "jún." -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" -msgstr "" +msgstr "Nyelv" -#: html/Ticket/Elements/Tabs:74 +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "Nagy" + +#: html/Ticket/Elements/Tabs:96 msgid "Last" -msgstr "" +msgstr "Utolsó" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" +msgstr "Utolsó kapcsolat" -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Last Notified" -msgstr "" +msgstr "Utoljára foglalkoztak vele" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "LastUpdated" -msgstr "" +msgstr "Utoljára aktualizálva" -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" -msgstr "" +msgstr "Utoljára aktualizálta" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" -msgstr "" +msgstr "Felhasználónak RT-hozzáférés engedélyezése" -#: html/Admin/Users/Modify.html:86 +#: 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 "" +msgstr "Felhasználónak több jog engedélyezése" -#: NOT FOUND IN SOURCE -msgid "Limiting queue to %1 %2" +#: html/Search/Elements/EditFormat:68 +msgid "Link" msgstr "" -#: lib/RT/Record.pm:1086 +#: lib/RT/Record.pm:1292 msgid "Link already exists" -msgstr "" +msgstr "Kapcsolat már létezik" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" -msgstr "" +msgstr "Kapcsolat nem hozható létre" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" -msgstr "" +msgstr "Kapcsolat létrehozva (%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" -msgstr "" +msgstr "Kapcsolat törölve (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" -msgstr "" +msgstr "Kapcsolat nem található" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Link ticket %1" -msgstr "" +msgstr "%1. számú probléma kapcsolatainak módosítása" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" -msgstr "" +msgstr "Kapcsolatok módosítása" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" msgstr "" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" +msgstr "Lekérdezés betöltése" + +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" msgstr "" -#: html/Admin/Tools/Configuration.html:19 +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 -msgid "Location" +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" msgstr "" -#: lib/RT.pm:184 +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 +msgid "Location" +msgstr "Cím" + +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "" +"Log-könyvtár %1 nem található, vagy nincs írási joga.\\n Az RT tud elindulni." -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" -msgstr "" +msgstr "%1-ként van bejelentkezve" -#: 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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" -msgstr "" +msgstr "Bejelentkezés" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" -msgstr "" +msgstr "Kijelentkezés" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:866 msgid "Lookup type mismatch" msgstr "" -#: html/Search/Bulk.html:83 +#: html/Search/Bulk.html:104 msgid "Make Owner" -msgstr "" +msgstr "Legyen a tulajdonos" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" -msgstr "" +msgstr "Státusz változtatása" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" -msgstr "" +msgstr "Határidõ változtatása" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" -msgstr "" +msgstr "Megoldási dátum változtatása" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" -msgstr "" +msgstr "Hozzáfogás dátumának változtatása" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" -msgstr "" +msgstr "Kiosztás dátumának változtatása" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" -msgstr "" +msgstr "Bejelentés dátumának változtatása" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" -msgstr "" +msgstr "Prioritás állítása" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" -msgstr "" +msgstr "Sor változtatása" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" -msgstr "" +msgstr "Tárgy változtatása" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/index.html:78 msgid "Manage custom fields and custom field values" msgstr "" -#: html/Admin/index.html:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" -msgstr "" +msgstr "Csoportok és tagjaik kezelése" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" -msgstr "" +msgstr "Minden sorra vonatkozó tulajdonságok és beállítások kezelése" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" -msgstr "" +msgstr "Sorok és a sorokra jellemzõ beállítások kezelése" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" -msgstr "" +msgstr "Felhasználók és jelszavaik kezelése" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "March" -msgstr "" +msgstr "már." -#: NOT FOUND IN SOURCE -msgid "May" -msgstr "" - -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." -msgstr "" +msgstr "máj." -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" -msgstr "" +msgstr "Tag hozzáadva" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" -msgstr "" +msgstr "Tag törölve" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" -msgstr "" +msgstr "Tag hozzáadva" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" -msgstr "" +msgstr "Tag törölve" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" -msgstr "" +msgstr "Tag nincs törölve" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" -msgstr "" +msgstr "Tagja a" -#: NOT FOUND IN SOURCE -msgid "MemberOf" -msgstr "" - -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" -msgstr "" +msgstr "Tagok" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" -msgstr "" +msgstr "%1 tag hozzáadva" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" -msgstr "" +msgstr "%1-beli tagság törölve" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:61 msgid "Memberships" -msgstr "" +msgstr "Tagságok" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) msgid "Memberships of the user %1" -msgstr "" +msgstr "%1 felhasználó tagságai" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" -msgstr "" +msgstr "Beolvasztás sikeres" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" -msgstr "" +msgstr "Beolvasztás sikertelen Konnte EffectiveId nicht setztn" + +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "Beolvasztás sikertelen Konnte EffectiveId nicht setztn" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" -msgstr "" +msgstr "Beolvasztani ebbe" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" -msgstr "" +msgstr "Beolvasztva %1-be" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "" +msgstr "Üzenet szövege" -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" +msgstr "A sor nem hozható létre" -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" -msgstr "" +msgstr "Üzenet rögzítve" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." msgstr "" -#: lib/RT/Record.pm:749 -msgid "Missing a primary key?: %1" -msgstr "" - -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 -msgid "Mobile" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "MobilePhone" +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Modified" +#: lib/RT/Record.pm:940 +msgid "Missing a primary key?: %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 +msgid "Mobile" +msgstr "Mobil" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Modify Custom Field %1" +#: html/Admin/Elements/ObjectCustomFields:96 +#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) +msgid "Modify Custom Fields which apply to %1 for all %2" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/ObjectCustomFields:98 +#. (loc(lc($Types))) msgid "Modify Custom Fields which apply to all %1" -msgstr "" +msgstr "Változtassa meg a %1-re vonatkozó egyéni mezõket!" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 -msgid "Modify Custom Fields which apply to all queues" -msgstr "" - -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 msgid "Modify Group Rights" -msgstr "" +msgstr "Csoportjogok módosítása" -#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" -msgstr "" +msgstr "Tagok módosítása" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" -msgstr "" +msgstr "Jogok módosítása" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 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 "" - -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 msgid "Modify User Rights" -msgstr "" +msgstr "Felhasználói jogok módosítása" -#: html/Admin/Queues/CustomField.html:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" -msgstr "" - -#: html/Admin/Global/CustomField.html:52 -msgid "Modify a CustomField which applies to all queues" -msgstr "" +msgstr "Változtassa meg a(z) %1 sor egyéni mezõjét!" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: 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 "" - -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" -msgstr "" +msgstr "%1. számú probléma idõadatainak módosítása" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" +msgstr "%1. számú probléma idõadatainak módosítása" + +#: html/Admin/Elements/GlobalCustomFieldTabs:65 html/Admin/Global/index.html:72 +msgid "Modify global custom fields" msgstr "" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: 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 "" +msgstr "Változtassa meg az általános csoportjogokat!" -#: html/Admin/Global/GroupRights.html:32 +#: 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 "" +msgstr "Változtassa meg az általános csoportjogokat!" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 msgid "Modify global user rights" -msgstr "" +msgstr "Változtassa meg az általános felhasználói jogokat!" -#: html/Admin/Global/UserRights.html:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." -msgstr "" +msgstr "Változtassa meg az általános felhasználói jogokat!" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" -msgstr "" +msgstr "Változztassa meg a(z) %1 sor csoportjogait!" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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 "" +msgstr "Módosítsa a(z) %1 csoport jogait" -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" -msgstr "" +msgstr "Változtassa meg a %1 sor csoportjogait!" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" -msgstr "" +msgstr "Változtassa meg a %1 sorhoz tarozó részvevõket!" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" -msgstr "" +msgstr "A %1. számú problémában érintett személyek változtatása" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" -msgstr "" +msgstr "Változtassa meg a(z) %1 sor Scripjeit" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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 "" +msgstr "Változtassa meg a minden sorra vonatkozó scripeket!" -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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 "" +msgstr "Hozzon létre egy sablont!" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" -msgstr "" +msgstr "Változtassa meg az általános sablonokat!" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" -msgstr "" +msgstr "A %1 csoport módosítása" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" -msgstr "" +msgstr "%1 felhasználó módosítása" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" -msgstr "" +msgstr "%1. számú probléma adatainak módosítása" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 #. ($TicketObj->Id) msgid "Modify ticket #%1" -msgstr "" +msgstr "%1. számú probléma alapadatainak módosítása" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) msgid "Modify user rights for custom field %1" msgstr "" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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 "" +msgstr "Változtassa meg a(z) %1 csoport jogait!" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" -msgstr "" +msgstr "Változtassa meg a(z) %1 sor felhasználói jogait!" -#: NOT FOUND IN SOURCE -msgid "Modify watchers for queue '%1'" +#: lib/RT/Queue_Overlay.pm:95 +msgid "ModifyACL" msgstr "" -#: lib/RT/Queue_Overlay.pm:71 -msgid "ModifyACL" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" msgstr "" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." -msgstr "" +msgstr "H" -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Move" -msgstr "" +msgstr "További részletek %1 felhasználóról" -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" -msgstr "" +msgstr "Lefelé mozgatni" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" -msgstr "" +msgstr "Felfelé mozgatni" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" -msgstr "" +msgstr "%1 problémáim" -#: NOT FOUND IN SOURCE -msgid "My Approvals" -msgstr "" - -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" -msgstr "" +msgstr "Lezárás" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" -msgstr "" +msgstr "Saját lekérdezések" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" -msgstr "" +msgstr "Név" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Need approval from system administrator" -msgstr "" +msgstr "A felhasználói név már foglalt" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" -msgstr "" +msgstr "Soha" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" +msgstr "Új" -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" -msgstr "" +msgstr "Új kapcsolatok" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" -msgstr "" +msgstr "Új jelszó" #: etc/initialdata:332 msgid "New Pending Approval" msgstr "" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New Relationships" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New Search" -msgstr "" +msgstr "Új lekérdezés" -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" -msgstr "" +msgstr "Új egyéni mezõ" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" -msgstr "" +msgstr "Új csoport" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" -msgstr "" +msgstr "Új jelszó" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New request" -msgstr "" +msgstr "Új sor" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" -msgstr "" +msgstr "Új jogok" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" -msgstr "" +msgstr "Új Scrip" -#: NOT FOUND IN SOURCE -msgid "New search" -msgstr "" - -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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 "" +msgstr "Új sablon" -#: html/SelfService/Elements/Tabs:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" -msgstr "" +msgstr "Új probléma" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" -msgstr "" +msgstr "Az új probléma nem létezik" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" -msgstr "" +msgstr "Új felhasználó" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" -msgstr "" +msgstr "Új résztvevõk" -#: NOT FOUND IN SOURCE -msgid "New window setting" -msgstr "" - -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" -msgstr "" +msgstr "Következõ" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Next page" -msgstr "" +msgstr "Következõ oldal" -#: NOT FOUND IN SOURCE -msgid "NickName" -msgstr "" - -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" -msgstr "" +msgstr "Becenév" -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" -msgstr "" +msgstr "Nincs egyéni mezõ" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" -msgstr "" +msgstr "Nincs egyéni mezõ meghatározva" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" -msgstr "" +msgstr "Nincs csoport meghatározva" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" msgstr "" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" -msgstr "" +msgstr "Nincs sor meghatározva" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "" +"RT-felhasználó nem található. Vegyew fel a kapcsolatot az RT-" +"adminisztrátorral.\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: 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 "" +msgstr "Nincs sablon" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "No command found\\n" -msgstr "" +msgstr "Nincs <b>sor</b> megadva!" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "No correspondence attached" -msgstr "" +msgstr "Nincs kiegészítés tárolva" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" -msgstr "" +msgstr "Nincs leírás a(z) %1-hez" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" -msgstr "" +msgstr "Nincs <b>csoport</b> megadva!" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:52 msgid "No groups matching search criteria found." -msgstr "" +msgstr "Nincs a keresési feltételeknek megfeleõ csoport." -#: lib/RT/Ticket_Overlay.pm:2475 +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" msgstr "" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" -msgstr "" +msgstr "Nincs jelszó megadva" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" -msgstr "" +msgstr "Nincs joga sort létrehozni" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" -msgstr "" +msgstr "Nincs joga a(z) '%1' sorban problémát létrehozni" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" -msgstr "" +msgstr "Nincs joga felhasználót létrehozni" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" msgstr "" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" -msgstr "" +msgstr "Nincs joga ezt a problémát aktualizálni" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" -msgstr "" +msgstr "Nincs <b>felelõs</b> megadva!" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." -msgstr "" +msgstr "Nincs vezetõ kiválasztva." -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." -msgstr "" +msgstr "Nem található a keresési fletételeknek megfelelõ sor" -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" -msgstr "" +msgstr "Nem találhatók jogok" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." +msgstr "Nincsenek jogok engedélyezve." + +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" msgstr "" -#: html/Search/Bulk.html:162 +#: html/Search/Bulk.html:194 msgid "No search to operate on." -msgstr "" +msgstr "Nincs feldolgozható keresési lista." -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "No ticket id specified" -msgstr "" +msgstr "(nincs tárgy)" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "No user or email address specified" -msgstr "" +msgstr "Nincs <b>értesítési típus</b> megadva!" -#: html/Admin/Users/index.html:35 +#: 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 "" +msgstr "Nincs a keresési feltételeknek megfeleõ felhasználó." -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" -msgstr "" +msgstr "Senki" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Not logged in" -msgstr "" +msgstr "Nem létezõ mezõ?" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." -msgstr "" +msgstr "Nincs bejelentkezve." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" -msgstr "" +msgstr "Nincs megadva" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "" -#: NOT FOUND IN SOURCE -msgid "Not yet implemented...." -msgstr "" - -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" -msgstr "" +msgstr "Megjegyzések" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" -msgstr "" +msgstr "Értesítést nem sikerült elküldeni." #: etc/initialdata:101 msgid "Notify AdminCcs" -msgstr "" +msgstr "AdminCCs értesítése" #: etc/initialdata:97 msgid "Notify AdminCcs as Comment" -msgstr "" +msgstr "AdminCCs értesítése kiegészítésként" #: etc/initialdata:93 etc/upgrade/3.1.17/content:6 msgid "Notify Ccs" @@ -3718,19 +2782,19 @@ msgstr "" #: etc/initialdata:128 msgid "Notify Other Recipients" -msgstr "" +msgstr "Más címzettek értesítése" #: etc/initialdata:124 msgid "Notify Other Recipients as Comment" -msgstr "" +msgstr "Más címzettek értesítése kiegészítésként" #: etc/initialdata:85 msgid "Notify Owner" -msgstr "" +msgstr "A tulajdonos értesítése" #: etc/initialdata:81 msgid "Notify Owner as Comment" -msgstr "" +msgstr "A tulajdonos értesítése kiegészítésként" #: etc/initialdata:376 msgid "Notify Owner of their rejected ticket" @@ -3750,967 +2814,770 @@ msgstr "" #: etc/initialdata:77 msgid "Notify Requestors" -msgstr "" +msgstr "Beküldõ értesítése" #: etc/initialdata:111 msgid "Notify Requestors and Ccs" -msgstr "" +msgstr "A beküldõ és a tájékoztatást kapó értesítése" #: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" -msgstr "" +msgstr "A beküldõ és a tájékoztatást kapó értesítése kiegészítésként" #: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "" +msgstr "Minden résztvevõ tájékozatatása" #: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "" +msgstr "Minden résztvevõ értesítése kiegészítésként" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." -msgstr "" +msgstr "nov." -#: NOT FOUND IN SOURCE -msgid "November" -msgstr "" +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "VAGY" -#: lib/RT/Record.pm:200 +#: lib/RT/Record.pm:319 msgid "Object could not be created" -msgstr "" +msgstr "Objekum nem hozható létre" + +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "Az objekumot nem sikerült törölni" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:338 msgid "Object created" -msgstr "" +msgstr "Objektum létehozva" -#: NOT FOUND IN SOURCE +#: lib/RT/Record.pm:121 +msgid "Object deleted" +msgstr "Objektum törölve" + +#: html/Admin/CustomFields/Objects.html:72 html/Admin/Elements/ObjectCustomFields:63 +#. ($ObjectType) +#. ($LookupType) msgid "Object of type %1 cannot take custom fields" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:901 msgid "Object type mismatch" msgstr "" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "October" -msgstr "" +msgstr "okt." -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" msgstr "" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" msgstr "" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" msgstr "" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" -msgstr "" +msgstr "e napon" #: etc/initialdata:163 msgid "On Comment" -msgstr "" +msgstr "Kiegészítéskor" #: etc/initialdata:156 msgid "On Correspond" -msgstr "" +msgstr "Válaszoláskor" #: etc/initialdata:145 msgid "On Create" -msgstr "" +msgstr "Létrehozáskor" #: etc/initialdata:184 msgid "On Owner Change" -msgstr "" +msgstr "Tulajdonos változásakor" #: etc/initialdata:177 etc/upgrade/3.1.17/content:15 msgid "On Priority Change" -msgstr "" +msgstr "Prioritás változásakor" #: etc/initialdata:192 msgid "On Queue Change" -msgstr "" +msgstr "Sor megváltozásakor" #: etc/initialdata:198 msgid "On Resolve" -msgstr "" +msgstr "Megoldáskor" #: etc/initialdata:169 msgid "On Status Change" -msgstr "" +msgstr "Státusz megváltozásakor" #: etc/initialdata:150 msgid "On Transaction" -msgstr "" +msgstr "Tranzakciónál" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" -msgstr "" +msgstr "Csak a(z) %1 után létrejött poblémák engedélyezései legyenek láthatóak" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "" +"Csak a(z) %1 elõtt létrejött problémák engedélyezései legyenek láthatóak" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" -msgstr "" +msgstr "Nyitott" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Open requests" -msgstr "" +msgstr "Megnyit" -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 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 "" +msgstr "Nyitott problémák" #: etc/initialdata:140 msgid "Open tickets on correspondence" msgstr "" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ordering and sorting" -msgstr "" +msgstr "Rendezés" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" -msgstr "" +msgstr "Cég, szervezet" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" msgstr "" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" msgstr "" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "" +msgstr "Prioritás idõvel emelkedik" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" -msgstr "" +msgstr "Saját problémák" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" -msgstr "" +msgstr "Tulajdonos" -#: NOT FOUND IN SOURCE -msgid "Owner changed from %1 to %2" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." msgstr "" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Owner is" -msgstr "" +msgstr "Erõszakos tulajdonosváltás: %1 --> %2" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" -msgstr "" +msgstr "%1/%2 oldal" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "" -#: NOT FOUND IN SOURCE -msgid "PagerPhone" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Parent" -msgstr "" - -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" -msgstr "" +msgstr "Felmenõk" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" -msgstr "" +msgstr "Jelszó" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" +msgstr "Jelszó-emlékeztetõ" + +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "Jelszó megváltoztatva" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" msgstr "" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 -msgid "Password too short" +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" msgstr "" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: NOT FOUND IN SOURCE +msgid "Password too short" +msgstr "A jelszó túl rövid!" + +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" +msgstr "Jelszó: %1" + +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" msgstr "" -#: html/Admin/Users/Modify.html:318 +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." -msgstr "" +msgstr "A jelszavak nem egyeznek." -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" -msgstr "" +msgstr "Résztvevõk" #: etc/initialdata:133 msgid "Perform a user-defined action" msgstr "" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" -msgstr "" +msgstr "Perl konfiguráció" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" -msgstr "" +msgstr "Hozzáférés visszautasítva" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" -msgstr "" +msgstr "Saját Csoportok" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" -msgstr "" +msgstr "Saját csoportok" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" -msgstr "" +msgstr "Saját csoportok:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Placeholder" -msgstr "" +msgstr "Telefonszámok" -#: NOT FOUND IN SOURCE -msgid "Pref" -msgstr "" - -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" -msgstr "" +msgstr "Beállításaim" -#: NOT FOUND IN SOURCE -msgid "Prefs" -msgstr "" - -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" -msgstr "" +msgstr "Elõzõ" -#: html/Elements/TicketList:64 -msgid "Previous Page" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Previous page" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Pri" -msgstr "" +#: html/Elements/TicketList:101 +msgid "Previous Page" +msgstr "Elõzõ oldal" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." -msgstr "" +msgstr "%1 vezetõ nem található." -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" -msgstr "" +msgstr "Prioritás" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" -msgstr "" +msgstr "Prioritás kezdõ értéke" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" msgstr "" #: etc/initialdata:25 msgid "Privileged" -msgstr "" +msgstr "Kiemelt" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Projects" -msgstr "" +msgstr "Kiemelt felhasználók:" #: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 msgid "Pseudogroup for internal use" msgstr "" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" -msgstr "" +msgstr "Lekérdezés" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" -msgstr "" +msgstr "Lekérdezésszerkesztõ" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" -msgstr "" +msgstr "Sor" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Queue '%1' not found\\n" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Queue Keyword Selections" -msgstr "" +msgstr "%2 sor nem található" -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Queue Scrips" -msgstr "" +msgstr "A sor neve" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" -msgstr "" +msgstr "Sor már létezik" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" -msgstr "" +msgstr "A sor nem hozható létre" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 msgid "Queue could not be loaded." -msgstr "" +msgstr "a sor nem tölthetõ be." -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Queue is not specified." -msgstr "" +msgstr "A sor létrehozva" -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" -msgstr "" +msgstr "A sor nem található" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" -msgstr "" +msgstr "Sorok" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" -msgstr "" +msgstr "Gyors lekérdezés" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" -msgstr "" +msgstr "Probléma felvétele (gyors)" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" -msgstr "" +msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:796 #. ($RT::VERSION, $RT::rtname) msgid "RT %1 for %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "" +msgstr "RT %1 %2-nek" -#: NOT FOUND IN SOURCE -msgid "RT %1. Copyright 1996-2002 Jesse Vincent <jesse\\@bestpractical.com>\\n" -msgstr "" - -#: html/Admin/index.html:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" -msgstr "" +msgstr "Konfiguráció" -#: NOT FOUND IN SOURCE -msgid "RT Authentication error." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Bounce: %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Configuration error" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Critical error. Message not recorded!" -msgstr "" - -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Received mail (%1) from itself." -msgstr "" +msgstr "RT Hiba" -#: NOT FOUND IN SOURCE -msgid "RT Recieved mail (%1) from itself." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service / Closed Tickets" -msgstr "" - -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" msgstr "" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't authenticate you" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't find requestor via its external database lookup" -msgstr "" +msgstr "Ãttekintés" -#: NOT FOUND IN SOURCE -msgid "RT couldn't find the queue: %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT couldn't validate this PGP signature. \\n" +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." msgstr "" -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT for %1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT has proccessed your commands" -msgstr "" - -#: 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 "" - -#: 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 "" - -#: 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 "" - -#: NOT FOUND IN SOURCE -msgid "RT thinks this message may be a bounce" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT will process this message as if it were unsigned.\\n" -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 "" - -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" +msgstr " %1 -- Request Tracker " -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RealName" -msgstr "" +msgstr "Valódi név" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" -msgstr "" +msgstr "%1 hivatkozás törölve" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" -msgstr "" +msgstr "A következõk kapcsolódnak hozzá" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 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 "" +msgstr "A következõkhöz kapcsolódik" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Relationships" -msgstr "" +msgstr "%1 percenként frissítse ezt az oldalt." -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" -msgstr "" +msgstr "Adminisztratív tájékoztatást kapó eltávolítása" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" -msgstr "" +msgstr "Tájékoztatást kapó eltávolítása" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" -msgstr "" +msgstr "Beküldõ eltávolítása" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" -msgstr "" +msgstr "Válaszol" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" -msgstr "" +msgstr "Válaszcím" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" -msgstr "" +msgstr "Válasz a beküldõknek" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" -msgstr "" +msgstr "Válasz a problémákra" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Requestor email address" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Requestor(s)" -msgstr "" +msgstr "Beküldõ" -#: NOT FOUND IN SOURCE -msgid "RequestorAddresses" -msgstr "" - -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" -msgstr "" +msgstr "Beküldõ" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" -msgstr "" +msgstr "A problémát meg kell oldani" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" msgstr "" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" -msgstr "" +msgstr "Visszaállít" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" -msgstr "" +msgstr "Otthoni" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" -msgstr "" +msgstr "Megold" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" -msgstr "" +msgstr "%1. (%2) probléma lezárása" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Response to requestors" -msgstr "" +msgstr "Megoldva" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Results per page" -msgstr "" +msgstr "Változtatások eredménye" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" -msgstr "" +msgstr "Jelszó megismételve" -#: html/Search/Elements/EditSearches:13 +#: 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 "" - -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" -msgstr "" +msgstr "A jog megosztva" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" -msgstr "" +msgstr "A jog betöltve" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" -msgstr "" +msgstr "A jog nem vonnható vissza" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" -msgstr "" +msgstr "A jog nem található" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." -msgstr "" +msgstr "A jog nem található." -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" -msgstr "" +msgstr "Jog visszavonva" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" -msgstr "" +msgstr "Jogok" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" -msgstr "" +msgstr " %1 jogai nem vonhatók vissza" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RootApproval" -msgstr "" +msgstr "Szerepek" -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" -msgstr "" +msgstr "Sorok száma oldalanként" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." -msgstr "" +msgstr "Szo" -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" -msgstr "" +msgstr "Mentés" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" -msgstr "" +msgstr "Változtatások mentése" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" -msgstr "" +msgstr "Beállítások mentése" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" +msgstr "Változtatások mentése" + +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" msgstr "" -#: html/Search/Elements/EditSearches:1 +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" -msgstr "" +msgstr "Elmentett lekérdezés" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" -msgstr "" +msgstr "Scrip létrehozva" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" -msgstr "" +msgstr "Scrip mezök" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" -msgstr "" +msgstr "Scrip törölve" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" -msgstr "" +msgstr "Scrips" -#: NOT FOUND IN SOURCE -msgid "Scrips for %1\\n" -msgstr "" - -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" -msgstr "" +msgstr "Minden sorhoz érvényes Scripek" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" -msgstr "" +msgstr "Keresés" -#: NOT FOUND IN SOURCE -msgid "Search Criteria" +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:38 +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Search for articles" -msgstr "" +msgstr "Engedélyezések keresése" -#: NOT FOUND IN SOURCE -msgid "Searches can't be associated with that kind of object" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" msgstr "" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" -msgstr "" +msgstr "Biztonság:" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "See custom fields" -msgstr "" +msgstr "Eyéni mezõk" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "SeeCustomField" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 -msgid "SeeQueue" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Select" +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Class" +#: lib/RT/Queue_Overlay.pm:92 +msgid "SeeQueue" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 msgid "Select a Custom Field" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" -msgstr "" +msgstr "Válasszon egy egyéni mezõt!" -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" -msgstr "" +msgstr "Válasszon csoportot!" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" msgstr "" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +#: 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 "Válasszon felhasználót!" + +#: html/Admin/Elements/CustomFieldTabs:90 +msgid "Select custom field" +msgstr "Válasszon egy egyéni mezõt!" + +#: html/Admin/Global/CustomFields/index.html:70 +msgid "Select custom fields for all user groups" +msgstr "Válasszon egy egyéni mezõt!" + +#: html/Admin/Global/CustomFields/index.html:65 +msgid "Select custom fields for all users" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select class" +#: html/Admin/Global/CustomFields/index.html:76 +msgid "Select custom fields for tickets in all queues" msgstr "" -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 -msgid "Select custom field" +#: html/Admin/Global/CustomFields/index.html:83 +msgid "Select custom fields for transactions on tickets in all queues" msgstr "" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 msgid "Select group" -msgstr "" +msgstr "Válasszon csoportot!" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" -msgstr "" +msgstr "Válasszon több értéket!" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" -msgstr "" +msgstr "Válasszon értéket!" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" -msgstr "" +msgstr "Válasszon sort!" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" -msgstr "" +msgstr "Válasszon Scripet!" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "" +msgstr "Válasszon sablont!" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:61 msgid "Select up to %1 values" -msgstr "" +msgstr "Válasszon (legfeljebb %1) értéket!" -#: html/Admin/Elements/UserTabs:46 +#: html/Admin/Elements/UserTabs:75 msgid "Select user" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:35 -msgid "SelectMultiple" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:34 -msgid "SelectSingle" -msgstr "" +msgstr "Válasszon felhasználót" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:58 msgid "Selected Custom Fields" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Selected objects" -msgstr "" +msgstr "Kiválasztott egy egyéni mezõk" -#: NOT FOUND IN SOURCE -msgid "Self Service" -msgstr "" +#: html/Admin/CustomFields/Objects.html:59 +msgid "Selected objects" +msgstr "Kiválasztott problémák" #: etc/initialdata:121 msgid "Send mail to all watchers" @@ -4756,1038 +3623,771 @@ msgstr "" msgid "Sends mail to the owner" msgstr "" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "September" -msgstr "" +msgstr "szep." -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" msgstr "" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" -msgstr "" +msgstr "Lezárások" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" -msgstr "" +msgstr "Látható mezõk" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" -msgstr "" +msgstr "Lekérdezés eredménye" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" -msgstr "" +msgstr "Láthatóak legyenek a felszabadított problémák" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" -msgstr "" +msgstr "Problémaleírás" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" -msgstr "" +msgstr "láthatóak legyenek az elutasított problémák" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" -msgstr "" +msgstr "Attribútumok" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" -msgstr "" +msgstr "Láthatóak legyenek a folyamatban levõ problémák" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Show ticket private commentary" -msgstr "" +msgstr "Láthatóak legyenek a mások engedélyezésére váró problémák" -#: NOT FOUND IN SOURCE -msgid "Show ticket summaries" +#: lib/RT/Queue_Overlay.pm:94 +msgid "ShowACL" msgstr "" -#: lib/RT/Queue_Overlay.pm:70 -msgid "ShowACL" +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" msgstr "" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Signed in as %1" -msgstr "" +msgstr "Aláírás (e-mail-hez)" -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "" -#: html/Elements/Header:62 -msgid "Skip Menu" -msgstr "" - -#: html/Admin/Elements/AddCustomFieldValue:27 -msgid "Sort" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Sort Order" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Sort key" +#: html/Search/Elements/EditFormat:75 +msgid "Size" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Sort results by" +#: html/Elements/Header:85 +msgid "Skip Menu" msgstr "" -#: NOT FOUND IN SOURCE -msgid "SortOrder" -msgstr "" +#: html/Search/Elements/EditFormat:78 +msgid "Small" +msgstr "Kicsi" -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 +msgid "Sort" +msgstr "Rendezés" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Stalled" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Start page" -msgstr "" - -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: 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 "" +msgstr "Elkezdve" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 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 "" +msgstr "Kiosztva" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" -msgstr "" +msgstr "Ãllam" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" -msgstr "" +msgstr "Státusz" #: etc/initialdata:309 msgid "Status Change" msgstr "" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) -msgid "Status changed from %1 to %2" -msgstr "" - #: NOT FOUND IN SOURCE -msgid "StatusChange" -msgstr "" +msgid "Status changed from %1 to %2" +msgstr "Státusz változtatása: '%1' --> '%2'" -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" -msgstr "" +msgstr "Elcsen" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" -msgstr "" +msgstr "Problémák elcsenése" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) +msgid "Stolen from %1" +msgstr "Probléma elcsenése %1 tulajdonostól" + +#: NOT FOUND IN SOURCE msgid "Stolen from %1 " +msgstr "Probléma elcsenése %1 tulajdonostól " + +#: html/Search/Elements/EditFormat:81 +msgid "Style" msgstr "" -#: 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 +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" -msgstr "" +msgstr "Tárgy" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" +msgstr "Mentés" -#: NOT FOUND IN SOURCE -msgid "Submit Workflow" -msgstr "" - -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" +msgstr "Sikerült" -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." -msgstr "" +msgstr "V" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" -msgstr "" +msgstr "Rendszer" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" -msgstr "" +msgstr "Rendszerkonfiguráció" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "System Error. Right not granted." -msgstr "" +msgstr "Rendszerhiba" -#: NOT FOUND IN SOURCE -msgid "System Error. right not granted" +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" msgstr "" -#: html/Admin/Tools/index.html:2 +#: html/Admin/Tools/index.html:47 msgid "System Tools" -msgstr "" +msgstr "Rendszerkonfiguráció" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." -msgstr "" +msgstr "Rendszerhiba. Jog nem delegálható ." -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "System error. Unable to grant rights." -msgstr "" +msgstr "Rendszerhiba. Jog nem adható." -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "" +msgstr "Rendszercsoportok" #: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 msgid "SystemRolegroup for internal use" msgstr "" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" -msgstr "" +msgstr "Atvesz" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" -msgstr "" +msgstr "Problémák átvétele" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" -msgstr "" +msgstr "Ãtvéve" -#: NOT FOUND IN SOURCE -msgid "Task" -msgstr "" - -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" -msgstr "" +msgstr "Sablon" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" -msgstr "" +msgstr "Sablon #%1" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" -msgstr "" +msgstr "Sablon törölve" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Template not found\\n" -msgstr "" +msgstr "Sablon nem található" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" -msgstr "" +msgstr "Sablon beolvasva" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: 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 for %1\\n" -msgstr "" +msgstr "Sablonok" #: NOT FOUND IN SOURCE msgid "Text" -msgstr "" +msgstr "Szöveg" -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" -msgstr "" +msgstr "Már ez az aktuális érték" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" -msgstr "" +msgstr "Egyéni mezõhöz érvénytelen értek" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" -msgstr "" +msgstr "Ez ugyanaz az érték" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" -msgstr "" +msgstr "A felhasználónak/csoportnak mát van ilyen joga" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" -msgstr "" +msgstr "A vezetõ már %1-a a sornak" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" -msgstr "" +msgstr "A vezetõ már %1-a a problémának" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "That principal is not a %1 for this ticket" -msgstr "" +msgstr "A vezetõ már nem %1-a a sornak" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" -msgstr "" +msgstr "Ez a sor nem létezik" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "" -#: NOT FOUND IN SOURCE -msgid "That user already has that right" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" -msgstr "" +msgstr "Már ez a felhasználó a tulajdonos!" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" -msgstr "" +msgstr "Ilyen felhasználó nem létezik" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" -msgstr "" +msgstr "A felhasználó már kiemelt" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" -msgstr "" +msgstr "A felhasználó már nem kiemelt" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" -msgstr "" +msgstr "A felhasználó mostantól kiemelt" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" -msgstr "" +msgstr "A felhasználó mostantól nem kiemelt" -#: NOT FOUND IN SOURCE -msgid "That user is now unprivilegedileged" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" -msgstr "" +msgstr "a felhasználóhoz nem tartozhatnak problémák ebbõl a sorból" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" -msgstr "" +msgstr "Alapadatok" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "" -#: NOT FOUND IN SOURCE -msgid "The comment has been recorded" -msgstr "" - -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 "" -#: NOT FOUND IN SOURCE -msgid "The following commands were not proccessed:\\n\\n" -msgstr "" - -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "" -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:912 msgid "This custom field does not apply to that object" msgstr "" -#: html/Admin/Tools/Configuration.html:5 +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" msgstr "" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." msgstr "" -#: NOT FOUND IN SOURCE -msgid "This ticket %1 %2 (%3)\\n" -msgstr "" - -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "" -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" -msgstr "" +msgstr "Diese Transaktion scheint keinen Inhalt zu haben" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "This user's 25 highest priority tickets" -msgstr "" +msgstr "A felhasználó által felvetett %1 legsürgõsebb probléma" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ticket" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 %2" -msgstr "" +msgstr "Cs" -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 Jumbo update: %2" -msgstr "" - -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" -msgstr "" +msgstr "%1. számú (%2) probléma jellemzõinek módosítása" -#: html/Approvals/Elements/ShowDependency:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" -msgstr "" +msgstr "Probléma. %1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" -msgstr "" +msgstr "%1. probléma" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Ticket %1 loaded\\n" -msgstr "" - -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" -msgstr "" +msgstr "Probléma %1: %2" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:74 msgid "Ticket Custom Fields" -msgstr "" +msgstr "Probléma egyéni mezõi" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Ticket Id" -msgstr "" - #: etc/initialdata:324 msgid "Ticket Resolved" -msgstr "" +msgstr "Pobléma megoldva" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 msgid "Ticket Transactions" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ticket attachment" -msgstr "" +msgstr "Probléma tranzakciói" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" -msgstr "" +msgstr "A probléma tartalma" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "" -#: lib/RT/Transaction_Overlay.pm:497 -msgid "Ticket created" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ticket creation failed" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:502 -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:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ticket not found" -msgstr "" +msgstr "Probléma metadata" #: etc/initialdata:310 msgid "Ticket status changed" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Ticket watchers" +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" msgstr "" -#: html/Elements/Tabs:46 +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 msgid "Tickets" -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) -msgid "Tickets %1 %2" -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) -msgid "Tickets %1 by %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Tickets from %1" -msgstr "" +msgstr "Problémák" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" msgstr "" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" -msgstr "" +msgstr "Maradék idõ" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" -msgstr "" +msgstr "Ráfordított munkaidõ" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" -msgstr "" +msgstr "Maradék idõ" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "TimeLeft" -msgstr "" +msgstr "Munkaidõ" -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:" -msgstr "" +msgstr "Ráfordított munkaidõ" -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:\\n" +#: html/Search/Elements/EditFormat:74 +msgid "Title" msgstr "" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<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:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" -msgstr "" +msgstr "Beérkezett" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" -msgstr "" +msgstr "Eszközök" #: etc/initialdata:252 msgid "Transaction" msgstr "" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:78 msgid "Transaction Custom Fields" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:92 -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "" +msgstr "Tranzakció egyéni mezõi" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:125 msgid "Transaction->Create couldn't, as you didn't specify an object type and id" msgstr "" -#: lib/RT/Transaction_Overlay.pm:760 -msgid "Transactions are immutable" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Trying to delete a right: %1" +#: lib/RT/Transaction_Overlay.pm:838 +msgid "Transactions are immutable" msgstr "" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." -msgstr "" +msgstr "K" -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" +msgstr "Típus" -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "" -#: NOT FOUND IN SOURCE -msgid "UnixUsername" -msgstr "" - -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "" -#: html/Elements/SelectResultsPerPage:36 -msgid "Unlimited" +#: html/Search/Build.html:632 +msgid "Unknown field: $key" msgstr "" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Elements/SelectResultsPerPage:58 +msgid "Unlimited" +msgstr "korlátlan" + +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" -msgstr "" +msgstr "Névtelen lekérdezés" #: etc/initialdata:32 msgid "Unprivileged" -msgstr "" +msgstr "Nem kiemelt" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:60 msgid "Unselected Custom Fields" -msgstr "" +msgstr "Inaktív egyéni mezõk" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:61 msgid "Unselected objects" -msgstr "" +msgstr "Inaktív objektumok" -#: lib/RT/Transaction_Overlay.pm:562 +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Untitled search" -msgstr "" +msgstr "Probléma visszaadása" -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" -msgstr "" +msgstr "Frissít" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" -msgstr "" +msgstr "Mindet frissíti" -#: NOT FOUND IN SOURCE -msgid "Update ID" -msgstr "" - -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" -msgstr "" +msgstr "Probléma frissítése" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Update all these tickets at once" -msgstr "" +msgstr "Frissítés típusa" -#: NOT FOUND IN SOURCE -msgid "Update email" -msgstr "" - -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" -msgstr "" +msgstr "A kiválasztott problémák frissítése" -#: NOT FOUND IN SOURCE -msgid "Update name" -msgstr "" - -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "" -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" -msgstr "" +msgstr "A kiválasztott problémák frissítése" -#: NOT FOUND IN SOURCE -msgid "Update signature" -msgstr "" - -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Update ticket # %1" -msgstr "" - -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" -msgstr "" +msgstr "%1. számú (%2) probléma aktualizálása" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" -msgstr "" +msgstr "Frissítve" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" -msgstr "" +msgstr "Feltöltés" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:84 msgid "Upload multiple files" -msgstr "" +msgstr "Több fájl feltöltése egyszerre" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:79 msgid "Upload multiple images" -msgstr "" +msgstr "Több kép feltöltése egyszerre" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:85 msgid "Upload one file" -msgstr "" +msgstr "Egy fájl feltöltése" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:80 msgid "Upload one image" -msgstr "" +msgstr "Egy kép feltöltése" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:86 msgid "Upload up to %1 files" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:81 msgid "Upload up to %1 images" msgstr "" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" -msgstr "" +msgstr "Módosítások feltöltése" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User %1 %2: %3\\n" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" -#: NOT FOUND IN SOURCE -msgid "User %1 Password: %2\\n" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User '%1' not found\\n" -msgstr "" +msgstr "'%1' felhasználó nem található" #: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" -msgstr "" +msgstr "Felhasználó által meghatározott" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" msgstr "" -#: NOT FOUND IN SOURCE -msgid "User ID" -msgstr "" - -#: html/Elements/SelectUsers:25 -msgid "User Id" -msgstr "" - -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "" +msgstr "Felhasználói jogok" -#: NOT FOUND IN SOURCE +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" msgstr "" -#: html/Admin/Users/Modify.html:252 +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" -msgstr "" +msgstr "Felhasználó létrehozva" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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 "" +msgstr "Felhasználó által definiált csoport" -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "User notified" -msgstr "" +msgstr "Felhasználó betöltve" -#: NOT FOUND IN SOURCE -msgid "User view" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:99 msgid "User-defined groups" -msgstr "" +msgstr "Felhasználó által definiált csoportok" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" -msgstr "" +msgstr "Felhasználó" -#: 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 +#: 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:1086 msgid "Users" -msgstr "" +msgstr "Felhasználók" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" msgstr "" -#: NOT FOUND IN SOURCE -msgid "ValueOfQueue" -msgstr "" - -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "VrijevormEnkele" -msgstr "" +msgstr "Értékek" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Watcher loaded" -msgstr "" - -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "WebEncoding" -msgstr "" +msgstr "Résztvevõk" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." -msgstr "" +msgstr "Sze" #: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" @@ -5841,86 +4441,50 @@ msgstr "" msgid "Whenever correspondence comes in" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" -msgstr "" +msgstr "Munkahelyi" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" msgstr "" -#: NOT FOUND IN SOURCE -msgid "WorkPhone" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" -msgstr "" - -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "" +msgstr "Munkaidõ" -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" -msgstr "" +msgstr "Már az öné ez a probléma" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 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 "" - -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" msgstr "" -#: NOT FOUND IN SOURCE -msgid "You don't have permission to view that ticket.\\n" -msgstr "" - -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 #. ($num, $queue) msgid "You found %1 tickets in queue %2" -msgstr "" +msgstr "%1 Problémát talált a %2 sorban" -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." -msgstr "" +msgstr "Kilépett a Request Tracker programból." -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." -msgstr "" +msgstr "Nincs joga létrehozni problémákat ebben a sorban" -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." -msgstr "" +msgstr "Nem hozhat létre problémákat ebben a sorban" -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Your %1 requests" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" -msgstr "" +msgstr "Itt ismét bejelentkezhetsz!" #: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." @@ -5928,270 +4492,230 @@ msgstr "" #: etc/initialdata:540 msgid "Your request has been approved." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Your request was rejected" -msgstr "" +msgstr "A problémája engedélyezve." #: etc/initialdata:445 msgid "Your request was rejected." -msgstr "" +msgstr "A problémája elutasítva." -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" -msgstr "" +msgstr "A begépelt felhasználói név vagy jelszó hibás!" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "[no subject]" -msgstr "" +msgstr "Irányítószám" -#: NOT FOUND IN SOURCE -msgid "and is not" -msgstr "" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" +msgstr "létrehozhat saját lekérdezéseket" -#: NOT FOUND IN SOURCE -msgid "and not" -msgstr "" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" +msgstr "betölthet saját lekérdezéseket" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" +msgstr "%1nak engedélyezve" + +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" msgstr "" -#: html/SelfService/Closed.html:27 +#: html/SelfService/Closed.html:49 msgid "closed" -msgstr "" +msgstr "Lezárt" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: 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 "" +msgstr "tartalmazza" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "dead" -msgstr "" +msgstr "napja" -#: NOT FOUND IN SOURCE -msgid "delete" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" +msgstr "törölve" + +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" msgstr "" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:61 msgid "does not match" -msgstr "" +msgstr "nem" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" +msgstr "nem tartalmazza" + +#: html/Elements/SelectEqualityOperator:59 +msgid "equal to" +msgstr "egyenlõ" + +#: html/Search/Build.html:387 +msgid "error: can't move down" msgstr "" -#: NOT FOUND IN SOURCE -msgid "email address" +#: html/Search/Build.html:409 +msgid "error: can't move left" msgstr "" -#: html/Elements/SelectEqualityOperator:37 -msgid "equal to" +#: html/Search/Build.html:368 +msgid "error: can't move up" msgstr "" -#: NOT FOUND IN SOURCE -msgid "false" +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "hiba: nincs mit törölni" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" msgstr "" -#: NOT FOUND IN SOURCE -msgid "filename" +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" msgstr "" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" -msgstr "" +msgstr "nagyobb mint" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" -msgstr "" +msgstr " '%1' csopot" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" -msgstr "" +msgstr "órája" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" +msgstr "Sorszám" -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" -msgstr "" +msgstr " == " -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" -msgstr "" +msgstr " nem " -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" -msgstr "" +msgstr "kisebb mint" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" -msgstr "" +msgstr "==" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" -msgstr "" +msgstr "perce" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "modifications\\n\\n" -msgstr "" +msgstr "perc" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" -msgstr "" +msgstr "hónapja" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" -msgstr "" +msgstr "új" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" -msgstr "" +msgstr "(nincs név)" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" -msgstr "" +msgstr "Nincs érték" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" -msgstr "" +msgstr "senki" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" -msgstr "" +msgstr "nem egyenlõ" -#: NOT FOUND IN SOURCE -msgid "notlike" -msgstr "" - -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" -msgstr "" +msgstr "Nyitott" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" -msgstr "" +msgstr "Stapel %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" -msgstr "" +msgstr "elutasítva" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" -msgstr "" +msgstr "megoldva" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" +msgstr "sec" + +#: lib/RT/System.pm:86 +msgid "show Configuration tab" msgstr "" -#: html/Search/Results.html:48 +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" -msgstr "" +msgstr "várakozik" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" -msgstr "" +msgstr "rendszer %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "" -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "" +msgstr "probléma #%1 %2" -#: NOT FOUND IN SOURCE -msgid "true" -msgstr "" - -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "undescripbed group %1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" -msgstr "" +msgstr "felhasználó %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" -msgstr "" +msgstr "hete" -#: NOT FOUND IN SOURCE -msgid "with template %1" -msgstr "" - -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" -msgstr "" +msgstr "éve" diff --git a/rt/lib/RT/I18N/i_default.pm b/rt/lib/RT/I18N/i_default.pm index 10827c104..28082afad 100644 --- a/rt/lib/RT/I18N/i_default.pm +++ b/rt/lib/RT/I18N/i_default.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::I18N::i_default; use strict; diff --git a/rt/lib/RT/I18N/id.po b/rt/lib/RT/I18N/id.po new file mode 100644 index 000000000..f53284800 --- /dev/null +++ b/rt/lib/RT/I18N/id.po @@ -0,0 +1,5047 @@ +# Copyright (c) 2002 Jesse Vincent <jesse@bestpractical.com> +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2005-06-03\n" +"Last-Translator: James <james@actionmessage.com>\n" +"Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=US-ASCII\n" +"Content-Transfer-Encoding: 7bit\n" + +#: 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" + +#: lib/RT/Record.pm:926 +#. ($label) +msgid "$prefix %1" +msgstr "$Awalan %1" + +#: lib/RT/URI/fsck_com_rt.pm:257 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "%1 #%2" + +#: lib/RT/Date.pm:361 +#. ($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:397 +#. ($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:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "%1 %2 sudah ditambah" + +#: lib/RT/Date.pm:358 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "%1 %2 yang lalu" + +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 %2 diganti menjadi %3" + +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "%1 %2 sudah dihapus" + +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 with template %3" +msgstr "%1 %2 gunakan template %3" + +#: html/Ticket/Elements/ShowAttachments:72 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "%1 (%2) oleh %3" + +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) +#. ($TicketObj->OwnerObj->Name()) +#. (loc($Ticket->Status())) +msgid "%1 (Unchanged)" +msgstr "(Belum diubah)" + +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "%1 - Sebuah penjelasan untuk dilewati ke %2" + +#: bin/rt-crontool:210 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - status Output diperbaharui menjadi STDOUT" + +#: bin/rt-crontool:204 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - menetapkan modul aksi yang ingin digunakan oleh anda" + +#: bin/rt-crontool:198 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - menetapkan moduk kondisi yang ingin digunakan oleh anda" + +#: bin/rt-crontool:191 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - menetapkan modul pencarian yang ingin digunakan oleh anda" + + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 +#. ('»|«', + $RT::VERSION, + '2005', + '<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 Hak Cipta 1996-%3 %4." + +#: lib/RT/ScripAction_Overlay.pm:151 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "%1 Memanggil AksiScrip" + +#: lib/RT/Record.pm:1708 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "%1 ditambahkan sebagai nilai untuk %2" + +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 +#. ($args{'Base'}) +#. ($args{'Target'}) +msgid "%1 appears to be a local object, but can't be found in the database" +msgstr "%1 ditampilkan sebagai objek lokal, tetapi tidak dapat ditemukan di dalam database" + +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 oleh %2" + +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 +#. ($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 sudah diganti dari %2 ke %3" + +#: html/Search/Build.html:212 +#. ($Description) +msgid "%1 copy" +msgstr "%1 ditiru" + +#: lib/RT/Record.pm:930 +msgid "%1 could not be set to %2." +msgstr "%1 tidak bisa diatur ke %2." + +#: lib/RT/Ticket_Overlay.pm:2743 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 tidak dapat mengatur status untuk diselesaikan. Database RT's mungkin tidak konsisten." + +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) +msgid "%1 created" +msgstr "%1 sudah dibuat" + +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) +msgid "%1 deleted" +msgstr "%1 sudah dihapus" + +#: html/Elements/MyTickets:47 +#. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "%1 Tiket dengan prioritas paling tinggi yang saya miliki" + +#: NOT FOUND IN SOURCE +msgid "%1 highest priority tickets I requested..." +msgstr "%1 Tiket dengan prioritas paling tinggi yang saya minta..." + +#: bin/rt-crontool:186 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "%1 adalah sebuah alat yang berfungsi pada tiket dari alat penjadwalan eksternal, seperti Cron." + +#: lib/RT/Queue_Overlay.pm:860 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 tidak lagi menjadi %2 untuk antrian ini." + +#: NOT FOUND IN SOURCE +msgid "%1 is no longer a value for custom field %2" +msgstr "%1 tidak lagi menjadi nilai untuk kolom kustom %2" + +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 +#. ('<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 menit" + +#: html/Elements/MyRequests:47 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "%1 tiket terbaru yang belum dimiliki" + +#: NOT FOUND IN SOURCE +msgid "%1 newest unowned tickets..." +msgstr "%1 tiket terbaru yang belum dimiliki..." + +#: lib/RT/CustomField_Overlay.pm:827 +msgid "%1 objects" +msgstr "%1 objek" + +#: html/User/Elements/DelegateRights:97 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "hak-hak %1" + +#: lib/RT/Action/ResolveMembers.pm:63 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 akan memecahkan semua anggota dari grup tiket yang dipecahkan." + +#: lib/RT/CustomField_Overlay.pm:828 +msgid "%1's %2 objects" +msgstr "%1's %2 objek" + +#: lib/RT/CustomField_Overlay.pm:829 +msgid "%1's %2's %3 objects" +msgstr "%1's %2's %3 objek" + +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 +#. ($object->Name) +#. ($Object->Name) +msgid "%1's saved searches" +msgstr "%1's pencarian disimpan" + +#: lib/RT/Transaction_Overlay.pm:470 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: tidak ada lampiran yang ditentukan" + +#: html/Ticket/Elements/ShowTransactionAttachments:78 +#. ($size) +msgid "%1b" +msgstr "%1b" + +#: html/Ticket/Elements/ShowTransactionAttachments:75 +#. (int( $size / 102.4 ) / 10) +msgid "%1k" +msgstr "%1k" + +#: lib/RT/Ticket_Overlay.pm:1118 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "'%1' adalah nilai yang tidak valid untuk status" + +#: 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 "(Klik kotak ini untuk hapus)" + +#: html/Ticket/Elements/PreviewScrips:94 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "(Klik kotak ini untuk menon-aktifkan pemberitahuan kepada penerima yang sudah terdaftar)" + +#: html/Ticket/Elements/PreviewScrips:116 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "(Klik kotak ini untuk mengaktifkan pemberitahuan kepada penerima yang sudah terdaftar)" + +#: html/Ticket/Create.html:209 +msgid "(Enter ticket ids or URLs, separated with spaces)" +msgstr "(Masukkan ID Tiket atau URL, dipisahkan dengan spasi)" + +#: NOT FOUND IN SOURCE +msgid "(If left blank, will default to %1" +msgstr "(Jika ditinggalkan kosong, default akan diatur menjadi %1" + +#: 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 "(Jika ditinggalkan kosong, default akan menjadi %1)" + +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 +msgid "(No custom fields)" +msgstr "(Tidak ada kolom kustom)" + +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 +msgid "(No members)" +msgstr "(Tidak ada anggota)" + +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 +msgid "(No scrips)" +msgstr "(Tidak ada scrip)" + +#: html/Admin/Elements/EditTemplates:52 +msgid "(No templates)" +msgstr "(Tidak ada template)" + +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 +msgid "(None)" +msgstr "(Tidak satu pun)" + +#: html/Ticket/Update.html:88 +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 "(Kirim salinan tembusan untuk memperbaharui daftar alamat email yang dibatasi dengan koma. <b>Tidak</b> akan mengubah siapakah yang akan menerima pembaharuan di masa datang.)" + +#: html/Ticket/Create.html:100 +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 "(Kirim salinan tembusan untuk memperbaharui daftar alamat administrasi email. Orang-orang ini <b>akan</b> menerima pembaharuan di masa datang.)" + +#: html/Ticket/Update.html:84 +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 "(Kirim salinan tembusan untuk memperbaharui daftar alamat email. <b>Tidak</b> akan mengubah siapakah yang akan menerima pembaharuan di masa datang.)" + +#: html/Ticket/Create.html:90 +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 "(Kirim salinan tembusan untuk memperbaharui daftar alamat email. Orang-orang ini <b>akan</b> menerima pembaharuan di masa datang.)" + +#: html/Admin/Elements/EditScrip:102 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "Gunakan kolom ini ketika anda memilih 'Definisikan Pengguna' untuk sebuah kondisi atau aksi" + +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 +msgid "(empty)" +msgstr "(kosong)" + +#: html/Admin/Users/index.html:60 +msgid "(no name listed)" +msgstr "(tidak ada nama yang terdaftar)" + +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 +msgid "(no value)" +msgstr "(Tidak ada nilai)" + +#: html/Admin/Elements/EditCustomFieldValues:47 +msgid "(no values)" +msgstr "(Tidak ada nilai-nilai)" + +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 +msgid "(only one ticket)" +msgstr "(hanya satu Tiket)" + +#: html/Elements/RT__Ticket/ColumnMap:146 +msgid "(pending approval)" +msgstr "(izin ditunda)" + +#: html/Elements/RT__Ticket/ColumnMap:149 +msgid "(pending other Collection)" +msgstr "(Koleksi yang lain ditunda)" + +#: html/Admin/Users/Modify.html:71 +msgid "(required)" +msgstr "(diperlukan)" + +#: html/Ticket/Elements/ShowTransactionAttachments:82 +msgid "(untitled)" +msgstr "(tidak ada judul)" + +#: html/Ticket/Elements/ShowBasics:53 +msgid "<% $Ticket->Status%>" +msgstr "<% $Tiket->Status%>" + +#: html/Elements/SelectTicketTypes:48 +msgid "<% $_ %>" +msgstr "<% $_ %>" + +#: html/Search/Elements/SelectLinks:48 +msgid "<%$_%>" +msgstr "<%$_%>" + +#: html/Search/Elements/DisplayOptions:65 +msgid "<%$field%>" +msgstr "<%$kolom%>" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<Tipe input=\"submit\" nilai=\"Tiket Baru di dalam \"> %1" + +#: etc/initialdata:218 +msgid "A blank template" +msgstr "Template kosong" + +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "" + +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 +msgid "ACE not found" +msgstr "ACE tidak ditemukan" + +#: lib/RT/ACE_Overlay.pm:854 +msgid "ACEs can only be created and deleted." +msgstr "ACE hanya dapat dibuat dan dihapus." + +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "DAN" + +#: NOT FOUND IN SOURCE +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Dibatalkan untuk menghindari modifikasi tiket yang tidak diharapkan.\\n" + +#: html/User/Elements/Tabs:53 +msgid "About me" +msgstr "Tentang Aku" + +#: html/Admin/Users/Modify.html:106 +msgid "Access control" +msgstr "Kontrol Akses" + +#: html/Admin/Elements/EditScrip:71 +msgid "Action" +msgstr "Aksi" + +#: lib/RT/Scrip_Overlay.pm:173 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "Aksi %1 tidak ditemukan" + +#: NOT FOUND IN SOURCE +msgid "Action committed." +msgstr "Aksi dijalankan." + +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "Aksi dijalankan." + +#: bin/rt-crontool:144 +msgid "Action prepared..." +msgstr "Aksi disiapkan..." + +#: html/Search/Build.html:85 +msgid "Add" +msgstr "Tambah" + +#: html/Search/Bulk.html:114 +msgid "Add AdminCc" +msgstr "Tambah AdminCc" + +#: html/Search/Bulk.html:110 +msgid "Add Cc" +msgstr "Tambah Cc" + +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "Tambah Kolom" + +#: html/Search/Elements/PickCriteria:46 +msgid "Add Criteria" +msgstr "Tambah Kriteria" + +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 +msgid "Add More Files" +msgstr "Tambah File Lagi" + +#: html/Search/Bulk.html:106 +msgid "Add Requestor" +msgstr "Tambah Pemohon" + +#: html/Admin/Elements/AddCustomFieldValue:46 +msgid "Add Value" +msgstr "Tambah Nilai" + +#: html/Admin/Global/Scrip.html:76 +msgid "Add a scrip which will apply to all queues" +msgstr "Tambah scrip yang akan digunakan di semua antrian" + +#: html/Search/Build.html:85 +msgid "Add additional criteria" +msgstr "Tambahkan kriteria tambahan" + +#: html/Search/Bulk.html:146 +msgid "Add comments or replies to selected tickets" +msgstr "Tambah Komentar atau balas ke tiket yang sudah dipilih" + +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 +msgid "Add members" +msgstr "Tambah Anggota" + +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 +msgid "Add new watchers" +msgstr "Tambah Pengamat Baru" + +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "Tambah, hapus dan ubah nilai kolom kustom untuk objek" + +#: lib/RT/Queue_Overlay.pm:760 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "Tambahkan prinsipal sebagai %1 untuk antrian ini" + +#: lib/RT/Ticket_Overlay.pm:1416 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "Tambahkan prinsipal sebagai %1 untuk Tiket ini" + +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 +msgid "Address1" +msgstr "Alamat1" + +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 +msgid "Address2" +msgstr "Alamat2" + +#: html/Ticket/Create.html:95 +msgid "Admin Cc" +msgstr "Admin Cc" + +#: etc/initialdata:295 +msgid "Admin Comment" +msgstr "Komentar Admin" + +#: etc/initialdata:274 +msgid "Admin Correspondence" +msgstr "Korespondensi Admin" + +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 +msgid "Admin queues" +msgstr "Antrian Admin" + +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 +msgid "Admin/Global configuration" +msgstr "Konfigurasi Admin/Global" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 +msgid "AdminCc" +msgstr "AdminCc" + +#: lib/RT/CustomField_Overlay.pm:101 +msgid "AdminCustomField" +msgstr "Kolom Kustom Admin" + +#: lib/RT/Group_Overlay.pm:171 +msgid "AdminGroup" +msgstr "Grup Admin" + +#: lib/RT/Group_Overlay.pm:173 +msgid "AdminGroupMembership" +msgstr "Keanggotaan Grup Admin" + +#: lib/RT/System.pm:81 +msgid "AdminOwnPersonalGroups" +msgstr "Milik Grup Pribadi Admin" + +#: lib/RT/Queue_Overlay.pm:93 +msgid "AdminQueue" +msgstr "Antrian Admin" + +#: lib/RT/System.pm:82 +msgid "AdminUsers" +msgstr "Pengguna Admin" + +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 +msgid "Administrative Cc" +msgstr "Cc Administrasi" + +#: html/Ticket/Elements/Tabs:197 +msgid "Advanced" +msgstr "Lanjutan" + +#: html/Elements/SelectDateRelation:57 +msgid "After" +msgstr "Setelah" + +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "Kumpulan" + +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "Semua Izin terlewati" + +#: html/Admin/Queues/index.html:75 +msgid "All Queues" +msgstr "Semua Antrian" + +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" +msgstr "Dan/Atau" + +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 +msgid "Applies to" +msgstr "Digunakan untuk" + +#: html/Search/Edit.html:64 +msgid "Apply" +msgstr "Digunakan" + +#: html/Search/Edit.html:64 +msgid "Apply your changes" +msgstr "Digunakan untuk perubahan anda" + +#: html/Elements/Tabs:74 +msgid "Approval" +msgstr "Izin" + +#: html/Approvals/Display.html:67 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 "Izin #%1: %2" + +#: html/Approvals/index.html:75 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "Izin #%1: Catatan yang tidak dicatat karena kesalahan sistem" + +#: html/Approvals/index.html:73 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "Izin #%1: Catatan yang dicatat" + +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "Izin dilewati" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "Izin ditolak" + +#: html/Approvals/Elements/Approve:65 +msgid "Approve" +msgstr "Disetujui" + +#: etc/initialdata:504 +msgid "Approver's notes: %1" +msgstr "Catatan Pemberi Persetujuan: %1" + +#: lib/RT/Date.pm:440 +msgid "Apr." +msgstr "Apr." + +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 +msgid "Ascending" +msgstr "Naik" + +#: lib/RT/Queue_Overlay.pm:97 +msgid "Assign and remove custom fields" +msgstr "Menentukan dan memindahkan kolom kustom" + +#: lib/RT/Queue_Overlay.pm:97 +msgid "AssignCustomFields" +msgstr "Menentukan Kolom Kustom" + +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 +msgid "Attach" +msgstr "Melampirkan" + +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 +msgid "Attach file" +msgstr "Melampirkan file" + +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 +msgid "Attached file" +msgstr "File dilampirkan" + +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 +#. ($Attachment) +msgid "Attachment '%1' could not be loaded" +msgstr "Lampiran '%1' tidak dapat dipanggil" + +#: lib/RT/Transaction_Overlay.pm:478 +msgid "Attachment created" +msgstr "Lampiran dibuat" + +#: lib/RT/Tickets_Overlay.pm:1673 +msgid "Attachment filename" +msgstr "Nama File Lampiran" + +#: html/Ticket/Elements/ShowAttachments:47 +msgid "Attachments" +msgstr "Lampiran-lampiran" + +#: lib/RT/Attributes_Overlay.pm:172 +msgid "Attribute Deleted" +msgstr "Attribut sudah dihapus" + +#: lib/RT/Date.pm:444 +msgid "Aug." +msgstr "Agst." + +#: NOT FOUND IN SOURCE +msgid "AuthSystem" +msgstr "Sistem Otorisasi" + +#: etc/initialdata:221 +msgid "Autoreply" +msgstr "Balas Otomatis" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "Balas Otomatis ke Pemohon" + +#: NOT FOUND IN SOURCE +msgid "Available Columns" +msgstr "Kolom Tersedia " + +#: NOT FOUND IN SOURCE +msgid "Bad data in %1" +msgstr "Data buruk di dalam %1" + +#: 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 "Dasar-dasar" + +#: html/Ticket/Update.html:86 +msgid "Bcc" +msgstr "Bcc" + +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 +msgid "Be sure to save your changes" +msgstr "Pastikanlah untuk menyimpan setiap perubahan anda" + +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 +msgid "Before" +msgstr "Sebelum" + +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" +msgstr "Pemecahan Praktis yang terbaik, Logo bisnis LLC" + +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "Binary" + +#: etc/initialdata:217 +msgid "Blank" +msgstr "Kosong" + +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "Diberi huruf tebal" + +#: html/Search/Results.html:81 +msgid "Bookmarkable link" +msgstr "Menyimpan penunjuk link" + +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 +msgid "Brief headers" +msgstr "Catatan Atas Singkat" + +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 +msgid "Bulk ticket update" +msgstr "Memperbaharui tiket dengan jumlah banyak pada waktu yang sama" + +#: lib/RT/User_Overlay.pm:1722 +msgid "Can not modify system users" +msgstr "Tidak dapat mengubah sistem pengguna" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "Can this principal see this queue" +msgstr "Dapatkah prinsipal melihat antrian ini" + +#: lib/RT/CustomField_Overlay.pm:370 +msgid "Can't add a custom field value without a name" +msgstr "Tidak dapat menambah nilai kolom kustom tanpa nama" + +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" +msgstr "Tidak dapat menemukan kelas koleksi untuk '%'" + +#: html/Search/Build.html:761 +msgid "Can't find a saved search to work with" +msgstr "Tidak dapat menemukan pencarian yang disimpan untuk bekerja dengan" + +#: lib/RT/Link_Overlay.pm:160 +msgid "Can't link a ticket to itself" +msgstr "Tidak dapat menghubungkan tiket tersebut dengan dirinya sendiri" + +#: NOT FOUND IN SOURCE +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "Tidak dapat digabungkan ke dalam tiket gabungan. Anda seharusnya tidak pernah mendapatkan kesalahan ini." + +#: html/Search/Build.html:766 +msgid "Can't save this search" +msgstr "Tidak dapat menyimpan pencarian ini" + +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 +msgid "Can't specifiy both base and target" +msgstr "Tidak dapat menentukan baik dasar dan sasaran" + +#: html/autohandler:148 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "Tidak dapat membuat pengguna: %1" + +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 +msgid "Cc" +msgstr "Cc" + +#: html/SelfService/Prefs.html:52 +msgid "Change password" +msgstr "Ubah Sandi" + +#: html/Elements/Submit:100 +msgid "Check All" +msgstr "Periksa Semua" + +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 +msgid "Check box to delete" +msgstr "Klik kotak ini untuk hapus" + +#: html/Admin/Elements/SelectRights:55 +msgid "Check box to revoke right" +msgstr "Klik kotak ini untuk menghilangkan hak-hak" + +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 +msgid "Children" +msgstr "Anak" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 +msgid "City" +msgstr "Kota" + +#: html/Elements/Submit:102 +msgid "Clear All" +msgstr "Hapus Semua" + +#: html/Ticket/Elements/ShowDates:68 +msgid "Closed" +msgstr "Ditutup" + +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 +msgid "Closed tickets" +msgstr "Tiket sudah ditutup" + +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 +msgid "Comment" +msgstr "Komentar" + +#: html/Admin/Queues/Modify.html:79 +msgid "Comment Address" +msgstr "Alamat Komentar" + +#: lib/RT/Queue_Overlay.pm:112 +msgid "Comment on tickets" +msgstr "Komentar pada Tiket" + +#: lib/RT/Queue_Overlay.pm:112 +msgid "CommentOnTicket" +msgstr "Komentar Pada Tiket" + +#: NOT FOUND IN SOURCE +msgid "Comments" +msgstr "Komentar" + +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 +msgid "Comments (Not sent to requestors)" +msgstr "Komentar (Tidak dikirim ke pemohon)" + +#: html/Search/Bulk.html:150 +msgid "Comments (not sent to requestors)" +msgstr "Komentar (tidak dikirim ke pemohon)" + +#: NOT FOUND IN SOURCE +msgid "Comments about %1" +msgstr "Komentar mengenai %1" + +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 +msgid "Comments about this user" +msgstr "Komentar tentang pengguna ini" + +#: lib/RT/Transaction_Overlay.pm:623 +msgid "Comments added" +msgstr "Komentar sudah ditambahkan" + +#: lib/RT/Action/Generic.pm:176 +msgid "Commit Stubbed" +msgstr "Potongan Tiket Dijalankan" + +#: html/Admin/Elements/EditScrip:63 +msgid "Condition" +msgstr "Kondisi" + +#: bin/rt-crontool:131 +msgid "Condition matches..." +msgstr "Kondisi sesuai dengan ..." + +#: lib/RT/Scrip_Overlay.pm:189 +msgid "Condition not found" +msgstr "Kondisi tidak ditemukan" + +#: html/Elements/Tabs:81 +msgid "Configuration" +msgstr "Konfigurasi" + +#: html/SelfService/Prefs.html:54 +msgid "Confirm" +msgstr "Konfirmasi" + +#: NOT FOUND IN SOURCE +msgid "ContactInfoSystem" +msgstr "Hubungi Sistem Info" + +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 +msgid "Content" +msgstr "Isi" + +#: html/Elements/SelectAttachmentField:49 +msgid "Content-Type" +msgstr "Tipe - Isi" + +#: html/Search/Elements/EditSearches:64 +msgid "Copy" +msgstr "Tiru" + +#: etc/initialdata:286 +msgid "Correspondence" +msgstr "Korespondensi" + +#: lib/RT/Transaction_Overlay.pm:619 +msgid "Correspondence added" +msgstr "Korespondensi sudah ditambah" + +#: NOT FOUND IN SOURCE +msgid "Could not add new custom field value for ticket. " +msgstr "Tidak dapat menambah nilai kolom kustom baru untuk tiket." + +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "Tidak dapat menambah nilai kolom kustom baru" + +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "Tidak dapat menambah nilai kolom kustom baru" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 +msgid "Could not change owner. " +msgstr "Tidak dapat mengubah pemilik tiket. " + +#: html/Admin/CustomFields/Modify.html:119 +#. ($msg) +msgid "Could not create CustomField" +msgstr "Tidak dapat membuat Kolom Kustom" + +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "Tidak dapat membuat Kolom Kustom:%1 " + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 +msgid "Could not create group" +msgstr "Tidak dapat membuat grup" + +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 +#. ($msg) +msgid "Could not create template: %1" +msgstr "Tidak dapat membuat template: %1" + +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 +msgid "Could not create ticket. Queue not set" +msgstr "Tidak dapat membuat tiket. Antrian tidak dapat diatur" + +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 +msgid "Could not create user" +msgstr "Tidak dapat membuat pengguna" + +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 +msgid "Could not find or create that user" +msgstr "Tidak dapat menemukan atau membuat pengguna tersebut" + +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 +msgid "Could not find that principal" +msgstr "Tidak dapat menemukan prinsipal tersebut" + +#: html/Admin/CustomFields/Objects.html:69 +msgid "Could not load CustomField %1" +msgstr "Tidak dapat memanggil KolomKustom %1" + +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 +msgid "Could not load group" +msgstr "Tidak dapat memanggil grup" + +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "Tidak dapat memanggil objek untuk %1" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "Tidak dapat memanggil attribut pencarian" + +#: lib/RT/Queue_Overlay.pm:758 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "Tidak dapat membuat prinsipal tersebut %1 untuk antrian ini" + +#: lib/RT/Ticket_Overlay.pm:1405 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "Tidak dapat membuat prinsipal tersebut %1 untuk Tiket ini" + +#: lib/RT/Queue_Overlay.pm:857 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "Tidak dapat menghapus prinsipal tersebut sebagai %1 untuk antrian ini" + +#: lib/RT/User_Overlay.pm:192 +msgid "Could not set user info" +msgstr "Tidak dapat mengatur informasi pengguna" + +#: lib/RT/Group_Overlay.pm:1011 +msgid "Couldn't add member to group" +msgstr "Tidak dapat menambah anggota ke grup" + +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "Tidak dapat membuat transaksi: %1" + +#: lib/RT/Record.pm:939 +msgid "Couldn't find row" +msgstr "Tidak dapat menemukan baris" + +#: lib/RT/Group_Overlay.pm:985 +msgid "Couldn't find that principal" +msgstr "Tidak dapat menemukan prinsipal tersebut" + +#: lib/RT/CustomField_Overlay.pm:404 +msgid "Couldn't find that value" +msgstr "Tidak dapat menemukan nilai tersebut" + +#: lib/RT/CurrentUser.pm:146 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Tidak dapat memanggil %1 dari database pengguna.\\n" + +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) +msgid "Couldn't load Class %1" +msgstr "Tidak dapat memanggil Kelas %1" + +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) +msgid "Couldn't load CustomField %1" +msgstr "Tidak dapat memanggil Kolom Kustom %1" + +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 +#. ($id) +msgid "Couldn't load group %1" +msgstr "Tidak dapat memanggil grup %1" + +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 +msgid "Couldn't load link" +msgstr "Tidak dapat memanggil link" + +#: 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 "Tidak dapat memanggil objek %1" + +#: html/Admin/Queues/People.html:142 +#. ($id) +msgid "Couldn't load queue" +msgstr "Tidak dapat memanggil antrian" + +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 +#. ($id) +msgid "Couldn't load queue %1" +msgstr "Tidak dapat memanggil antrian %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load that user (%1)" +msgstr "Tidak dapat memanggil pengguna tersebut (%1)" + +#: html/SelfService/Display.html:156 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Tidak dapat memanggil Tiket '%1'" + +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 +msgid "Country" +msgstr "Negara" + +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 +msgid "Create" +msgstr "Dibuat" + +#: etc/initialdata:135 +msgid "Create Tickets" +msgstr "Buat Tiket" + +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 +msgid "Create a CustomField" +msgstr "Buat Kolom Kustom" + +#: html/Admin/Queues/CustomField.html:69 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "Buat Kolom Kustom untuk antrian %1" + +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 +msgid "Create a new group" +msgstr "Buat grup baru" + +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 +msgid "Create a new personal group" +msgstr "Buat grup pribadi baru" + +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 +msgid "Create a new ticket" +msgstr "Buat tiket baru" + +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 +msgid "Create a new user" +msgstr "Buat pengguna baru" + +#: html/Admin/Queues/Modify.html:125 +msgid "Create a queue" +msgstr "Buat antrian" + +#: html/Admin/Queues/Scrip.html:80 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "Buat scrip untuk antrian %1" + +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 +msgid "Create a template" +msgstr "Buat template" + +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 +msgid "Create a ticket" +msgstr "Buat Tiket" + +#: etc/initialdata:137 +msgid "Create new tickets based on this scrip's template" +msgstr "Buat Tiket baru berdasarkan pada template scrip ini" + +#: html/SelfService/Create.html:105 +msgid "Create ticket" +msgstr "Buat Tiket" + +#: lib/RT/Queue_Overlay.pm:110 +msgid "Create tickets in this queue" +msgstr "Buat tiket untuk antrian ini" + +#: lib/RT/CustomField_Overlay.pm:101 +msgid "Create, delete and modify custom fields" +msgstr "Buat, hapus dan ubah kolom kustom" + +#: lib/RT/Queue_Overlay.pm:93 +msgid "Create, delete and modify queues" +msgstr "Buat, hapus dan ubah antrian" + +#: lib/RT/System.pm:81 +msgid "Create, delete and modify the members of personal groups" +msgstr "Buat, hapus dan ubah anggota dari grup pribadi" + +#: lib/RT/System.pm:82 +msgid "Create, delete and modify users" +msgstr "Buat, hapus dan ubah pengguna" + +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "Buat Pencarian yang Disimpan" + +#: lib/RT/Queue_Overlay.pm:110 +msgid "CreateTicket" +msgstr "Buat Tiket" + +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 +msgid "Created" +msgstr "sudah Dibuat" + +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "Kolom Kustom sudah dibuat %1" + +#: html/Search/Elements/PickBasics:102 +msgid "Creator" +msgstr "Pencipta" + +#: html/Elements/EditLinks:49 +msgid "Current Links" +msgstr "Link yang sekarang" + +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "Hubungan Sekarang" + +#: html/Admin/Elements/EditScrips:51 +msgid "Current Scrips" +msgstr "Scrips Sekarang " + +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 +msgid "Current members" +msgstr "Anggota Sekarang" + +#: html/Admin/Elements/SelectRights:51 +msgid "Current rights" +msgstr "Hak-hak Sekarang" + +#: NOT FOUND IN SOURCE +msgid "Current search criteria" +msgstr "Kriteria pencarian sekarang" + +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 +msgid "Current watchers" +msgstr "Pengamat sekarang" + +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 +msgid "Custom Fields" +msgstr "Kolom Kustom" + +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) +msgid "Custom Fields for %1" +msgstr "Kolom Kustom untuk %1" + +#: html/Admin/Elements/EditScrip:123 +msgid "Custom action cleanup code" +msgstr "Aksi kustom membersihkan kode" + +#: html/Admin/Elements/EditScrip:115 +msgid "Custom action preparation code" +msgstr "Aksi kustom menyiapkan kode" + +#: html/Admin/Elements/EditScrip:107 +msgid "Custom condition" +msgstr "Kondisi kustom" + +#: NOT FOUND IN SOURCE +msgid "Custom field %1 %2 %3" +msgstr "Kolom kustom %1 %2 %3" + +#: NOT FOUND IN SOURCE +msgid "Custom field %1 does not apply to this object" +msgstr "Kolom kustom %1 tidak dapat digunakan untuk objek ini" + +#: lib/RT/Tickets_Overlay.pm:2147 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "Kolom kustom %1 memiliki nilai." + +#: lib/RT/Tickets_Overlay.pm:2143 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "Kolom kustom %1 tidak memiliki nilai." + +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Kolom kustom %1 tidak ditemukan" + +#: NOT FOUND IN SOURCE +msgid "Custom field not found" +msgstr "Kolom kustom tidak ditemukan" + +#: lib/RT/CustomField_Overlay.pm:1041 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "Nilai kolom kustom %1 tidak dapat ditemukan untuk kolom kustom %2" + +#: lib/RT/CustomField_Overlay.pm:414 +msgid "Custom field value could not be deleted" +msgstr "Nilai kolom kustom tidak dapat dihapus" + +#: lib/RT/CustomField_Overlay.pm:1047 +msgid "Custom field value could not be found" +msgstr "Nilai kolom kustom tidak dapat ditemukan" + +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 +msgid "Custom field value deleted" +msgstr "Nilai kolom kustom sudah dihapus" + +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 +msgid "CustomField" +msgstr "Kolom kustom" + +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 +msgid "Dates" +msgstr "Tanggal" + +#: lib/RT/Date.pm:448 +msgid "Dec." +msgstr "Des." + +#: etc/initialdata:222 +msgid "Default Autoresponse template" +msgstr "Default template Balas Otomatis" + +#: html/Tools/Offline.html:61 +msgid "Default Queue" +msgstr "Default Antrian" + +#: html/Tools/Offline.html:70 +msgid "Default Requestor" +msgstr "Default Pemohon" + +#: etc/initialdata:296 +msgid "Default admin comment template" +msgstr "Default template komentar admin" + +#: etc/initialdata:275 +msgid "Default admin correspondence template" +msgstr "Default template korespondensi admin" + +#: etc/initialdata:287 +msgid "Default correspondence template" +msgstr "Default template korespondensi" + +#: etc/initialdata:253 +msgid "Default transaction template" +msgstr "Default template transaksi" + +#: NOT FOUND IN SOURCE +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "Default: %1/%2 diganti dari %3 ke %4" + +#: html/User/Delegation.html:46 html/User/Delegation.html:49 +msgid "Delegate rights" +msgstr "Hak-hak Utusan" + +#: lib/RT/System.pm:85 +msgid "Delegate specific rights which have been granted to you." +msgstr "Hak-hak spesifik utusan yang sudah diberikan kepada anda." + +#: lib/RT/System.pm:85 +msgid "DelegateRights" +msgstr "Hak-hak Utusan" + +#: html/User/Elements/Tabs:59 +msgid "Delegation" +msgstr "Delegasi" + +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 +msgid "Delete" +msgstr "Hapus" + +#: html/Admin/Elements/EditTemplates:79 +msgid "Delete Template" +msgstr "Hapus Template" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "Hapus artikel #%1" + +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" +msgstr "Gagal dihapus: %1" + +#: html/Admin/Elements/EditScrips:74 +msgid "Delete selected scrips" +msgstr "Hapus scrip yang sudah dipilih" + +#: lib/RT/Queue_Overlay.pm:115 +msgid "Delete tickets" +msgstr "Hapus tiket" + +#: lib/RT/Queue_Overlay.pm:115 +msgid "DeleteTicket" +msgstr "Hapus tiket" + +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "Pencarian dihapus" + +#: NOT FOUND IN SOURCE +msgid "Deleting this object could break referential integrity" +msgstr "Menghapuskan objek ini dapat memutuskan integrasi referensial" + +#: lib/RT/Queue_Overlay.pm:391 +msgid "Deleting this object would break referential integrity" +msgstr "Menghapuskan objek ini dapat memutuskan integrasi referensial" + +#: lib/RT/User_Overlay.pm:513 +msgid "Deleting this object would violate referential integrity" +msgstr "Menghapuskan objek ini dapat melanggar integrasi referensial" + +#: html/Approvals/Elements/Approve:66 +msgid "Deny" +msgstr "Ditolak" + +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 +msgid "Depended on by" +msgstr "Bergantung oleh" + +#: lib/RT/Transaction_Overlay.pm:707 +#. ($value) +msgid "Dependency by %1 added" +msgstr "Ketergantungan oleh %1 sudah ditambah" + +#: lib/RT/Transaction_Overlay.pm:747 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "Ketergantungan oleh %1 sudah dihapus" + +#: lib/RT/Transaction_Overlay.pm:704 +#. ($value) +msgid "Dependency on %1 added" +msgstr "Ketergantungan oleh %1 sudah dihapus" + +#: lib/RT/Transaction_Overlay.pm:744 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "Ketergantungan oleh %1 sudah dihapus" + +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 +msgid "Depends on" +msgstr "Bergantung pada" + +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 +msgid "Descending" +msgstr "Turun" + +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 +msgid "Describe the issue below" +msgstr "Gambarkan persoalan dibawah ini" + +#: 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:56 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 "Deskripsi" + +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 +msgid "Display" +msgstr "Tampilkan" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "Display Access Control List" +msgstr "Tampilkan Daftar Kontrol Akses" + +#: html/Search/Elements/DisplayOptions:46 +msgid "Display Columns" +msgstr "Tampilkan Kolom" + +#: lib/RT/Queue_Overlay.pm:100 +msgid "Display Scrip templates for this queue" +msgstr "Tampilkan template Scrip untuk antrian ini" + +#: lib/RT/Queue_Overlay.pm:103 +msgid "Display Scrips for this queue" +msgstr "Tampilkan Scrip untuk antrian ini" + +#: html/Ticket/Elements/ShowHistory:56 +msgid "Display mode" +msgstr "Tampilkan mode" + +#: lib/RT/Group_Overlay.pm:176 +msgid "Display saved searches for this group" +msgstr "Tampilkan pencarian yang disimpan untuk grup ini" + +#: html/Elements/Footer:60 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "Didistribusikan dibawah versi 2 dari <a href=\"http://www.gnu.org/copyleft/gpl.html\"> GNU GPL.</a>" + +#: lib/RT/System.pm:76 +msgid "Do anything and everything" +msgstr "Lakukan apa saja dan semuanya" + +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "Lakukan Pencarian" + +#: html/Elements/Refresh:51 +msgid "Don't refresh this page." +msgstr "Jangan refresh halaman ini." + +#: NOT FOUND IN SOURCE +msgid "Don't show search results" +msgstr "Jangan tampilkan hasil pencarian" + +#: html/Ticket/Elements/ShowTransactionAttachments:82 +msgid "Download" +msgstr "Download" + +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 +msgid "Download as a tab-delimited file" +msgstr "Download sebagai file yang dibatasi dengan tab" + +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 +msgid "Due" +msgstr "Batas Waktu" + +#: NOT FOUND IN SOURCE +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "KESALAHAN: Tidak dapat memanggil Tiket '%1': %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "Ubah" + +#: 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 "Ubah Kolom Kustom untuk %1" + +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "Ubah Kolom Kustom untuk semua grup" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "Ubah Kolom Kustom untuk semua pengguna" + +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "Ubah Kolom Kustom untuk tiket di dalam semua antrian" + +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 +msgid "Edit Links" +msgstr "Ubah Link" + +#: html/Search/Edit.html:68 +msgid "Edit Query" +msgstr "Ubah Query" + +#: NOT FOUND IN SOURCE +msgid "Edit Relationships" +msgstr "Ubah Hubungan" + +#: html/Admin/Queues/Templates.html:63 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "Ubah Templates untuk antrian %1" + +#: lib/RT/Group_Overlay.pm:175 +msgid "Edit saved searches for this group" +msgstr "Ubah pencarian yang disimpan untuk grup ini" + +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 +msgid "Edit system templates" +msgstr "Ubah template sistem" + +#: lib/RT/Group_Overlay.pm:175 +msgid "EditSavedSearches" +msgstr "Ubah Pencarian yang Disimpan" + +#: html/Admin/Queues/Modify.html:140 +#. ($QueueObj->Name) +msgid "Editing Configuration for queue %1" +msgstr "Mengubah Konfigurasi untuk antrian %1" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for user %1" +msgstr "Mengubah Konfigurasi untuk pengguna %1" + +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Mengubah Kolom Kustom %1" + +#: html/Admin/Groups/Members.html:53 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Mengubah keanggotaan untuk grup ini %1" + +#: html/User/Groups/Members.html:150 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "Mengubah keanggotaan untuk grup pribadi %1" + +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 +msgid "Either base or target must be specified" +msgstr "Baik dasar ataupun sasaran harus ditentukan" + +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 +msgid "Email" +msgstr "Email" + +#: lib/RT/User_Overlay.pm:236 +msgid "Email address in use" +msgstr "Alamat Email yang digunakan" + +#: NOT FOUND IN SOURCE +msgid "EmailAddress" +msgstr "Alamat Email" + +#: NOT FOUND IN SOURCE +msgid "EmailEncoding" +msgstr "Set Karakter Email" + +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "Mengaktifkan (Klik kotak ini untuk menon-aktifkan kolom kustom)" + +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "Mengaktifkan (Klik kotak ini untuk menon-aktifkan grup ini)" + +#: html/Admin/Queues/Modify.html:105 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "Mengaktifkan (Klik kotak ini untuk menon-aktifkan antrian ini)" + +#: html/Admin/Queues/index.html:78 +msgid "Enabled Queues" +msgstr "Mengaktifkan Antrian" + +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "Mengaktifkan status %1" + +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) +msgid "Enabled status: %1" +msgstr "Mengaktifkan status: %1" + +#: lib/RT/CustomField_Overlay.pm:64 +msgid "Enter multiple values" +msgstr "Masukkan beberapa nilai" + +#: html/Elements/EditLinks:124 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "Masukan objek atau URI untuk menghubungkan object tersebut. Pisahkan beberapa input tersebut dengan spasi." + +#: lib/RT/CustomField_Overlay.pm:65 +msgid "Enter one value" +msgstr "Masukkan satu nilai" + +#: html/Elements/EditLinks:121 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "Masukkan antrian atau URIs untuk menghubungkan antrian tersebut. Pisahkan beberapa input dengan spasi." + +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "Masukkan tiket atau URIs untuk menghubungkan Tiket tersebut. Pisahkan beberapa input dengan spasi." + +#: NOT FOUND IN SOURCE +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Masukkan tiket atau URIs untuk menghubungkan Tiket tersebut. Pisahkan beberapa input dengan spasi." + +#: lib/RT/CustomField_Overlay.pm:66 +msgid "Enter up to %1 values" +msgstr "Masukkan sampai %1 nilai" + +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 +msgid "Error" +msgstr "Kesalahan" + +#: lib/RT/Queue_Overlay.pm:669 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Kesalahan di dalam parameter ke Antrian->Tambah Pengamat" + +#: NOT FOUND IN SOURCE +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Kesalahan di dalam parameter Ke Antrian->Hapus Pengamat" + +#: lib/RT/Queue_Overlay.pm:830 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "Kesalahan di dalam parameter ke Antrian->Hapus Pengamat" + +#: lib/RT/Ticket_Overlay.pm:1333 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Kesalahan di dalam parameter ke Tiket->Tambah Pengamat" + +#: NOT FOUND IN SOURCE +msgid "Error in parameters to Ticket->DelWatcher" +msgstr "Kesalahan di dalam parameter ke Tiket->Hapus Pengamat" + +#: lib/RT/Ticket_Overlay.pm:1499 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "Kesalahan di dalam parameter ke Ticket->Hapus Pengamat" + +#: bin/rt-crontool:233 +msgid "Escalate tickets" +msgstr "Meningkatkan Prioritas Tiket" + +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "Perkiraan" + +#: html/Ticket/Elements/ShowBasics:57 +msgid "Estimated" +msgstr "Diperkirakan" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "Setiap Orang" + +#: bin/rt-crontool:219 +msgid "Example:" +msgstr "Contoh:" + +#: NOT FOUND IN SOURCE +msgid "ExternalAuthId" +msgstr "AuthID Eksternal" + +#: NOT FOUND IN SOURCE +msgid "ExternalContactInfoId" +msgstr " Kontak Info ID Eksternal" + +#: html/Admin/Users/Modify.html:99 +msgid "Extra info" +msgstr "Info Tambahan" + +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" +msgstr "Gagal untuk membuat atribut pencarian" + +#: lib/RT/User_Overlay.pm:377 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Gagal untuk menemukan pengguna pseudogroup yang memiliki 'Hak-hak Istimewa'." + +#: lib/RT/User_Overlay.pm:384 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Gagal untuk menemukan pengguna pseudogroup yang tidak memiliki 'Hak-Hak Istimewa.'" + +#: bin/rt-crontool:163 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "Gagal untuk memanggil modul %1. (%2)" + +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "Gagal memanggil objek untuk %1" + +#: lib/RT/Date.pm:438 +msgid "Feb." +msgstr "Feb." + +#: html/Elements/SelectAttachmentField:50 +msgid "Filename" +msgstr "Nama File" + +#: lib/RT/CustomField_Overlay.pm:69 +msgid "Fill in multiple text areas" +msgstr "Isilah di dalam beberapa area teks" + +#: lib/RT/CustomField_Overlay.pm:74 +msgid "Fill in multiple wikitext areas" +msgstr "Isilah di dalam beberapa area wikiteks" + +#: lib/RT/CustomField_Overlay.pm:70 +msgid "Fill in one text area" +msgstr "Isilah di dalam satu area teks" + +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +msgstr "Isilah di dalam satu area wikiteks" + +#: lib/RT/CustomField_Overlay.pm:71 +msgid "Fill in up to %1 text areas" +msgstr "Isilah sampai %1 area teks" + +#: lib/RT/CustomField_Overlay.pm:76 +msgid "Fill in up to %1 wikitext areas" +msgstr "Isilah sampai %1 area wikiteks" + +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 +msgid "Final Priority" +msgstr "Prioritas Akhir" + +#: lib/RT/Ticket_Overlay.pm:1140 +msgid "FinalPriority" +msgstr "Prioritas Akhir" + +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 +msgid "Find groups whose" +msgstr "Cari grup yang" + +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 +msgid "Find people whose" +msgstr "Cari orang yang" + +#: html/Search/Results.html:109 +msgid "Find tickets" +msgstr "Cari tiket" + +#: html/Ticket/Elements/Tabs:81 +msgid "First" +msgstr "Pertama" + +#: 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:105 +msgid "Force change" +msgstr "Diubah dengan paksa" + +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "Format" + +#: html/Search/Results.html:107 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "Ditemukan % quant(%1,tiket)" + +#: lib/RT/Record.pm:942 +msgid "Found Object" +msgstr "Objek ditemukan" + +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "Freeform" + +#: NOT FOUND IN SOURCE +msgid "FreeformContactInfo" +msgstr "FreeformContactInfo" + +#: lib/RT/Date.pm:417 +msgid "Fri." +msgstr "Jum." + +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 +msgid "Full headers" +msgstr "Catatan Atas Lengkap" + +#: html/Tools/Offline.html:87 +msgid "Get template from file" +msgstr "Ambil template dari file" + +#: lib/RT/Transaction_Overlay.pm:673 +#. ($New->Name) +msgid "Given to %1" +msgstr "Berikan ke %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 "Kolom Kustom Global" + +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "Konfigurasi kolom kustom global" + +#: html/Admin/Elements/SelectTemplate:59 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "Template Global: %1" + +#: html/Tools/Offline.html:91 +msgid "Go" +msgstr "Ambil" + +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 +msgid "Go!" +msgstr "Ambil!" + +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 +msgid "Goto ticket" +msgstr "Ambil tiket" + +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 +msgid "Group" +msgstr "Grup" + +#: 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 "Hak Grup" + +#: lib/RT/Group_Overlay.pm:991 +msgid "Group already has member" +msgstr "Grup sudah memiliki anggota" + +#: html/Admin/Groups/Modify.html:109 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "Grup tidak dapat dibuat: %1" + +#: lib/RT/Group_Overlay.pm:529 +msgid "Group created" +msgstr "Grup sudah dibuat" + +#: lib/RT/Group_Overlay.pm:1163 +msgid "Group has no such member" +msgstr "Grup tidak memiliki anggota terseperti ini" + +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 +msgid "Group not found" +msgstr "Grup tidak ditemukan" + +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 +msgid "Groups" +msgstr "Grup" + +#: lib/RT/Group_Overlay.pm:997 +msgid "Groups can't be members of their members" +msgstr "Grup tidak bisa menjadi anggota dari mereka" + +#: html/Admin/Groups/index.html:82 +msgid "Groups matching search criteria" +msgstr "Grup sesuai dengan kriteria pencarian" + +#: html/Ticket/Elements/ShowRequestor:77 +msgid "Groups this user belongs to" +msgstr "Pengguna ini milik grup" + +#: lib/RT/Interface/CLI.pm:94 lib/RT/Interface/CLI.pm:94 +msgid "Hello!" +msgstr "Halo!" + +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 +#. ($name) +msgid "Hello, %1" +msgstr "Halo, %1" + +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 +msgid "History" +msgstr "Historis" + +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) +msgid "History of the group %1" +msgstr "Historis grup %1" + +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) +msgid "History of the user %1" +msgstr "Historis pengguna %1" + +#: NOT FOUND IN SOURCE +msgid "HomePhone" +msgstr "Telepon Rumah" + +#: html/Elements/Tabs:65 +msgid "Homepage" +msgstr "Homepage" + +#: lib/RT/Base.pm:110 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "Saya memiliki %quant (%1,concrete mixer)." + +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "Saya tersesat" + +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 +msgid "Id" +msgstr "Id" + +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 +msgid "Identity" +msgstr "Identitas" + +#: etc/initialdata:429 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "Jika izin ditolak, tolak izin yang asli dan hapus izin yang masih ditunda" + +#: html/Tools/Offline.html:74 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "Jika tidak ada pemohon yang ditentukan, buat tiket dengan pemohon ini." + +#: html/Tools/Offline.html:65 +msgid "If no queue is specified, create tickets in this queue." +msgstr "Jika tidak ada antrian yang ditentukan, buat tiket untuk antrian ini." + +#: bin/rt-crontool:215 +msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." +msgstr "Jika alat ini adalah setgid, hostile local user dapat menggunakan alat ini untuk mendapatkan akses administrasi ke RT." + +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 +msgid "If you've updated anything above, be sure to" +msgstr "Jika anda memperbaharui apapun diatas, pastikanlah untuk" + +#: lib/RT/Record.pm:933 +msgid "Illegal value for %1" +msgstr "Nilai Ilegal untuk %1" + +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "Gambar" + +#: lib/RT/Record.pm:936 +msgid "Immutable field" +msgstr "Kolom yang tetap" + +#: html/Admin/Groups/index.html:65 +msgid "Include disabled groups in listing." +msgstr "Termasuk menon-aktifkan grup di dalam daftar." + +#: html/Admin/Queues/index.html:65 +msgid "Include disabled queues in listing." +msgstr "Termasuk menon-aktifkan antrian di dalam daftar." + +#: html/Admin/Users/index.html:71 +msgid "Include disabled users in search." +msgstr "Termasuk menon-aktifkan pengguna di dalam pencarian." + +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "Query tidak lengkap" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "query tidak lengkap" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 +msgid "Initial Priority" +msgstr "Prioritas Awal" + +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 +msgid "InitialPriority" +msgstr "Prioritas Awal" + +#: lib/RT/ScripAction_Overlay.pm:134 +msgid "Input error" +msgstr "Kesalahan Input" + +#: lib/RT/Ticket_Overlay.pm:3454 +msgid "Internal Error" +msgstr "Kesalahan Internal" + +#: lib/RT/Record.pm:305 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "Kesalahan Internal: %1" + +#: lib/RT/Group_Overlay.pm:676 +msgid "Invalid Group Type" +msgstr "Tipe Grup tidak valid" + +#: lib/RT/Principal_Overlay.pm:161 +msgid "Invalid Right" +msgstr "Hak-hak tidak valid" + +#: lib/RT/Record.pm:938 +msgid "Invalid data" +msgstr "Data tidak valid" + +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 +msgid "Invalid queue" +msgstr "Antrian tidak valid" + +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 +msgid "Invalid right" +msgstr "Hak tidak valid" + +#: lib/RT/Record.pm:280 +#. ($key) +msgid "Invalid value for %1" +msgstr "Nilai tidak valid untuk %1" + +#: lib/RT/Record.pm:1597 +msgid "Invalid value for custom field" +msgstr "Nilai tidak valid untuk kolom kustom" + +#: lib/RT/Ticket_Overlay.pm:413 +msgid "Invalid value for status" +msgstr "Nilai tidak valid untuk status" + +#: bin/rt-crontool:216 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "Hal ini sangat penting bahwa pengguna yang tidak memiliki hak-hak istimewa tidak dapat diizinkan untuk menjalankan program ini." + +#: bin/rt-crontool:217 +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 "Sangat disarankan bahwa anda membuat pengguna unix yang tidak memiliki hak-hak istimewa dengan keanggotaan grup yang benar dan akses RT untuk menjalankan alat ini." + +#: bin/rt-crontool:188 +msgid "It takes several arguments:" +msgstr "Hal ini memerlukan beberapa penjelasan:" + +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "Diberi huruf miring" + +#: lib/RT/Date.pm:437 +msgid "Jan." +msgstr "Jan." + +#: lib/RT/Group_Overlay.pm:174 +msgid "Join or leave this group" +msgstr "Bergabung atau tinggalkan grup ini" + +#: lib/RT/Date.pm:443 +msgid "Jul." +msgstr "Jul." + +#: html/Ticket/Elements/Tabs:122 +msgid "Jumbo" +msgstr "Jumbo" + +#: lib/RT/Date.pm:442 +msgid "Jun." +msgstr "Jun." + +#: NOT FOUND IN SOURCE +msgid "Lang" +msgstr "Bhs" + +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 +msgid "Language" +msgstr "Bahasa" + +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "Besar" + +#: html/Ticket/Elements/Tabs:96 +msgid "Last" +msgstr "Akhir" + +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 +msgid "Last Contact" +msgstr "Kontak Terakhir" + +#: html/Elements/SelectDateType:50 +msgid "Last Contacted" +msgstr "Kontak Terakhir" + +#: NOT FOUND IN SOURCE +msgid "Last Notified" +msgstr "Pemberitahuan Terakhir" + +#: html/Elements/SelectDateType:51 +msgid "Last Updated" +msgstr "Pembaharuan Terakhir" + +#: html/Search/Elements/PickBasics:103 +msgid "LastUpdatedBy" +msgstr "Pembaharuan Terakhir Oleh" + +#: html/Ticket/Elements/ShowBasics:68 +msgid "Left" +msgstr "Kirim" + +#: html/Admin/Users/Modify.html:109 +msgid "Let this user access RT" +msgstr "Biarkan pengguna ini mengakses RT" + +#: html/Admin/Users/Modify.html:113 +msgid "Let this user be granted rights" +msgstr "Biarlah pengguna ini diberi hak-hak" + +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "Link" + +#: lib/RT/Record.pm:1292 +msgid "Link already exists" +msgstr "Link sudah ada" + +#: lib/RT/Record.pm:1306 +msgid "Link could not be created" +msgstr "Link tidak dapat dibuat" + +#: lib/RT/Record.pm:1312 +#. ($TransString) +msgid "Link created (%1)" +msgstr "Link sudah dibuat (%1)" + +#: lib/RT/Record.pm:1373 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Link sudah dihapus (%1)" + +#: lib/RT/Record.pm:1379 +msgid "Link not found" +msgstr "Link tidak ditemukan" + +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "Link tiket #%1" + +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 +msgid "Links" +msgstr "Link-link" + +#: html/Search/Elements/EditSearches:76 +msgid "Load" +msgstr "Memanggil" + +#: html/Search/Elements/EditSearches:74 +msgid "Load saved search:" +msgstr "Memanggil pencarian yang disimpan:" + +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "Memanggil pencarian yang disimpan" + +#: html/Admin/Tools/Configuration.html:64 +msgid "Loaded perl modules" +msgstr "Memanggil modul perl" + +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "Memanggil pencarian %1" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 +msgid "Location" +msgstr "Lokasi" + +#: lib/RT.pm:212 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "Direktori Log %1 tidak ditemukan atau tidak dapat ditulis.\\n RT tidak dapat dijalankan." + +#: html/Elements/Header:94 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "Masuk sebagai %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 +msgid "Login" +msgstr "Login" + +#: html/Elements/Header:91 +msgid "Logout" +msgstr "Logout" + +#: lib/RT/CustomField_Overlay.pm:866 +msgid "Lookup type mismatch" +msgstr "Mencari tipe yang tidak sesuai (mismatch)" + +#: html/Search/Bulk.html:104 +msgid "Make Owner" +msgstr "Buat Pemilik" + +#: html/Search/Bulk.html:128 +msgid "Make Status" +msgstr "Buat Status" + +#: html/Search/Bulk.html:136 +msgid "Make date Due" +msgstr "Buat Tanggal Batas Waktu" + +#: html/Search/Bulk.html:138 +msgid "Make date Resolved" +msgstr "Buat Tanggal Penyelesaian" + +#: html/Search/Bulk.html:132 +msgid "Make date Started" +msgstr "Buat Tanggal Mulai" + +#: html/Search/Bulk.html:130 +msgid "Make date Starts" +msgstr "Buat Tanggal Mulai" + +#: html/Search/Bulk.html:134 +msgid "Make date Told" +msgstr "Buat Tanggal Pemberitahuan" + +#: html/Search/Bulk.html:124 +msgid "Make priority" +msgstr "Buat prioritas" + +#: html/Search/Bulk.html:126 +msgid "Make queue" +msgstr "Buat antrian" + +#: html/Search/Bulk.html:122 +msgid "Make subject" +msgstr "Buat subjek" + +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" +msgstr "Buat agar grup ini terlihat pada sisi pengguna" + +#: html/Admin/index.html:78 +msgid "Manage custom fields and custom field values" +msgstr "Mengatur kolom kustom dan nilai kolom kustom" + +#: html/Admin/index.html:69 +msgid "Manage groups and group membership" +msgstr "Mengatur grup dan keanggotaan grup" + +#: html/Admin/index.html:85 +msgid "Manage properties and configuration which apply to all queues" +msgstr "Mengatur propertis dan konfigurasi yang akan digunakan di setiap antrian" + +#: html/Admin/index.html:74 +msgid "Manage queues and queue-specific properties" +msgstr "Mengatur antrian dan propertis antrian tertentu" + +#: html/Admin/index.html:64 +msgid "Manage users and passwords" +msgstr "Mengatur pengguna dan sandi" + +#: lib/RT/Date.pm:439 +msgid "Mar." +msgstr "Mar." + +#: lib/RT/Date.pm:441 +msgid "May." +msgstr "Mei." + +#: lib/RT/Transaction_Overlay.pm:720 +#. ($value) +msgid "Member %1 added" +msgstr "Anggota %1 sudah ditambah" + +#: lib/RT/Transaction_Overlay.pm:760 +#. ($value) +msgid "Member %1 deleted" +msgstr "Anggota %1 sudah dihapus" + +#: lib/RT/Group_Overlay.pm:1008 +msgid "Member added" +msgstr "Anggota sudah ditambah" + +#: lib/RT/Group_Overlay.pm:1170 +msgid "Member deleted" +msgstr "Anggota sudah dihapus" + +#: lib/RT/Group_Overlay.pm:1174 +msgid "Member not deleted" +msgstr "Anggota tidak dihapus" + +#: html/Elements/SelectLinkType:47 +msgid "Member of" +msgstr "Anggota dari" + +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 +msgid "Members" +msgstr "Anggota-anggota" + +#: lib/RT/Transaction_Overlay.pm:717 +#. ($value) +msgid "Membership in %1 added" +msgstr "Keanggotaan di dalam %1 sudah ditambah" + +#: lib/RT/Transaction_Overlay.pm:757 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "Keanggotaan di dalam %1 sudah dihapus" + +#: html/Admin/Elements/UserTabs:61 +msgid "Memberships" +msgstr "Keanggotaan" + +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) +msgid "Memberships of the user %1" +msgstr "Keanggotaan dari pengguna %1" + +#: lib/RT/Ticket_Overlay.pm:2849 +msgid "Merge Successful" +msgstr "Penggabungan Berhasil" + +#: lib/RT/Ticket_Overlay.pm:2736 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "Penggabungan gagal. Tidak dapat mengatur EffectiveId" + +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "Penggabungan gagal. Tidak dapat mengatur Status" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 +msgid "Merge into" +msgstr "Bergabung ke dalam" + +#: lib/RT/Transaction_Overlay.pm:723 +#. ($value) +msgid "Merged into %1" +msgstr "Bergabung ke dalam %1" + +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 +msgid "Message" +msgstr "Pesan" + +#: lib/RT/Ticket_Overlay.pm:2406 +msgid "Message could not be recorded" +msgstr "Pesan tidak dapat dicatat" + +#: lib/RT/Ticket_Overlay.pm:2409 +msgid "Message recorded" +msgstr "Pesan sudah dicatat" + +#: html/Ticket/Elements/PreviewScrips:115 +msgid "Messages about this ticket will not be sent to..." +msgstr "Pesan mengenai Tiket ini tidak akan dikirim ke..." + +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "tanda kurung tidak sama" + +#: lib/RT/Record.pm:940 +msgid "Missing a primary key?: %1" +msgstr "Kunci utama tidak ditemukan?: %1" + +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 +msgid "Mobile" +msgstr "Hp" + +#: NOT FOUND IN SOURCE +msgid "MobilePhone" +msgstr "Handphone" + +#: lib/RT/Queue_Overlay.pm:95 +msgid "Modify Access Control List" +msgstr "Mengubah Daftar Kontrol Akses" + +#: html/Admin/Elements/ObjectCustomFields:96 +#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) +msgid "Modify Custom Fields which apply to %1 for all %2" +msgstr "Ubah Kolom Kustom yang digunakan untuk %1 untuk semua %2" + +#: html/Admin/Elements/ObjectCustomFields:98 +#. (loc(lc($Types))) +msgid "Modify Custom Fields which apply to all %1" +msgstr "Mengatur Kolom Kustom yang dapat digunakan untuk seluruh %1" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all queues" +msgstr "Mengatur Kolom Kustom yang dapat digunakan di seluruh antrian" + +#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 +msgid "Modify Group Rights" +msgstr "Ubah Hak Grup" + +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 +msgid "Modify Members" +msgstr "Ubah Anggota" + +#: html/User/Delegation.html:58 +msgid "Modify Rights" +msgstr "Ubah Hak-hak" + +#: lib/RT/Queue_Overlay.pm:98 +msgid "Modify Scrip templates for this queue" +msgstr "Mengubah template Scrip untuk antrian ini" + +#: lib/RT/Queue_Overlay.pm:101 +msgid "Modify Scrips for this queue" +msgstr "Mengubah Scrip untuk antrian ini" + +#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 +msgid "Modify User Rights" +msgstr "Ubah Hak Pengguna" + +#: html/Admin/Queues/CustomField.html:66 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "Mengubah Kolom Kustom untuk antrian %1" + +#: html/Admin/Queues/Scrip.html:75 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "Mengubah scrip untuk antrian %1" + +#: html/Admin/Global/Scrip.html:69 +msgid "Modify a scrip which applies to all queues" +msgstr "Mengubah scrip yang dapat digunakan di seluruh antrian" + +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) +msgid "Modify associated objects for %1" +msgstr "Mengubah objek-objek yang berhubungan untuk %1" + +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Mengubah tanggal untuk #%1" + +#: html/Ticket/ModifyDates.html:56 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Mengubah tanggal untuk tiket # %1" + +#: html/Admin/Elements/GlobalCustomFieldTabs:65 html/Admin/Global/index.html:72 +msgid "Modify global custom fields" +msgstr "Mengubah kolom kustom global" + +#: 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 "Mengubah hak grup global" + +#: html/Admin/Global/GroupRights.html:54 +msgid "Modify global group rights." +msgstr "Mengubah hak grup global." + +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 +msgid "Modify global user rights" +msgstr "Mengubah hak pengguna global" + +#: html/Admin/Global/UserRights.html:54 +msgid "Modify global user rights." +msgstr "Mengubah hak pengguna global." + +#: lib/RT/Group_Overlay.pm:171 +msgid "Modify group metadata or delete group" +msgstr "Mengubah grup metadata atau menghapus grup" + +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) +msgid "Modify group rights for custom field %1" +msgstr "Mengubah hak grup untuk kolom kustom %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 "Mengubah hak grup untuk grup %1" + +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "Mengubah hak grup untuk antrian %1" + +#: lib/RT/Group_Overlay.pm:173 +msgid "Modify membership roster for this group" +msgstr "Mengubah daftar nama keanggotaan untuk grup ini" + +#: lib/RT/System.pm:83 +msgid "Modify one's own RT account" +msgstr "Mengubah pemilik account RT" + +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Mengubah orang-orang yang berhubungan dengan antrian %1" + +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 +#. ($Ticket->id) +#. ($Ticket->Id) +msgid "Modify people related to ticket #%1" +msgstr "Mengubah orang-orang yang berhubungan dengan tiket #%1" + +#: html/Admin/Queues/Scrips.html:67 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Mengubah scrip untuk antrian %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 "Mengubah scrip yang dapat digunakan di seluruh antrian" + +#: 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 "Mengubah template %1" + +#: html/Admin/Global/Templates.html:65 +msgid "Modify templates which apply to all queues" +msgstr "Mengubah template yang dapat digunakan di seluruh antrian" + +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "Mengubah grup %1" + +#: lib/RT/Queue_Overlay.pm:96 +msgid "Modify the queue watchers" +msgstr "Mengubah pengamat antrian" + +#: html/Admin/Users/Modify.html:301 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "Mengubah pengguna %1" + +#: html/Ticket/ModifyAll.html:58 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Mengubah tiket # %1" + +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Mengubah tiket #%1" + +#: lib/RT/Queue_Overlay.pm:114 +msgid "Modify tickets" +msgstr "Mengubah tiket-tiket" + +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) +msgid "Modify user rights for custom field %1" +msgstr "Mengubah hak pengguna untuk kolom kustom %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 "Mengubah hak pengguna untuk grup %1" + +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "Mengubah hak pengguna untuk antrian %1" + +#: lib/RT/Queue_Overlay.pm:95 +msgid "ModifyACL" +msgstr "Mengubah ACL" + +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "Mengubah Kolom Kustom" + +#: lib/RT/Group_Overlay.pm:174 +msgid "ModifyOwnMembership" +msgstr "Mengubah Milik Keanggotaan" + +#: lib/RT/Queue_Overlay.pm:96 +msgid "ModifyQueueWatchers" +msgstr "Mengubah Pengamat Antrian" + +#: lib/RT/Queue_Overlay.pm:101 +msgid "ModifyScrips" +msgstr "Mengubah Scrip" + +#: lib/RT/System.pm:83 +msgid "ModifySelf" +msgstr "Mengubah Sendiri" + +#: lib/RT/Queue_Overlay.pm:98 +msgid "ModifyTemplate" +msgstr "Mengubah Template" + +#: lib/RT/Queue_Overlay.pm:114 +msgid "ModifyTicket" +msgstr "Mengubah Tiket" + +#: lib/RT/Date.pm:413 +msgid "Mon." +msgstr "Sen." + +#: html/Ticket/Elements/ShowRequestor:62 +#. ($name) +msgid "More about %1" +msgstr "Lebih mengenai %1" + +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "Pindah" + +#: html/Admin/Elements/PickCustomFields:83 +msgid "Move down" +msgstr "Pindah ke bawah" + +#: html/Admin/Elements/PickCustomFields:75 +msgid "Move up" +msgstr "Pindah ke atas" + +#: html/Admin/Elements/SelectSingleOrMultiple:48 +msgid "Multiple" +msgstr "Beberapa" + +#: lib/RT/User_Overlay.pm:227 +msgid "Must specify 'Name' attribute" +msgstr "Harus menentukan 'Nama' attribut" + +#: html/SelfService/Elements/MyRequests:70 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "%1 tiketku" + +#: html/Approvals/index.html:46 html/Approvals/index.html:47 +msgid "My approvals" +msgstr "Izinku" + +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 +msgid "My saved searches" +msgstr "Pencarian yang kusimpan" + +#: 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/User/Groups/Modify.html:65 +msgid "Name" +msgstr "Nama" + +#: lib/RT/User_Overlay.pm:234 +msgid "Name in use" +msgstr "Nama yang digunakan" + +#: html/Ticket/Elements/ShowDates:73 +msgid "Never" +msgstr "Tidak pernah" + +#: html/Elements/Quicksearch:51 +msgid "New" +msgstr "Baru" + +#: html/Elements/EditLinks:115 +msgid "New Links" +msgstr "Link Baru" + +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 +msgid "New Password" +msgstr "Sandi Baru" + +#: etc/initialdata:332 +msgid "New Pending Approval" +msgstr "Izin Baru yang Ditunda" + +#: html/Ticket/Elements/Tabs:193 +msgid "New Query" +msgstr "Query Baru" + +#: NOT FOUND IN SOURCE +msgid "New Relationships" +msgstr "Hubungan Baru" + +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 +msgid "New custom field" +msgstr "Kolom Kustom Baru" + +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 +msgid "New group" +msgstr "Grup Baru" + +#: html/SelfService/Prefs.html:53 +msgid "New password" +msgstr "Sandi Baru" + +#: lib/RT/User_Overlay.pm:817 +msgid "New password notification sent" +msgstr "Kirim Pemberitahuan Sandi Baru" + +#: html/Admin/Elements/QueueTabs:95 +msgid "New queue" +msgstr "Antrian Baru" + +#: html/Admin/Elements/SelectRights:65 +msgid "New rights" +msgstr "Hak-hak Baru" + +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 +msgid "New scrip" +msgstr "Scrip Baru" + +#: 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 "Template Baru" + +#: html/SelfService/Elements/Tabs:69 +msgid "New ticket" +msgstr "Tiket Baru" + +#: lib/RT/Ticket_Overlay.pm:2713 +msgid "New ticket doesn't exist" +msgstr "Tidak ada Tiket baru" + +#: html/Admin/Elements/UserTabs:78 +msgid "New user" +msgstr "Pengguna Baru" + +#: html/Admin/Elements/CreateUserCalled:47 +msgid "New user called" +msgstr "Pengguna Baru disebut" + +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 +msgid "New watchers" +msgstr "Pengamat Baru" + +#: NOT FOUND IN SOURCE +msgid "New window setting" +msgstr "Setting Window Baru" + +#: html/Ticket/Elements/Tabs:92 +msgid "Next" +msgstr "Berikutnya" + +#: html/Elements/TicketList:104 +msgid "Next Page" +msgstr "Halaman Berikutnya" + +#: NOT FOUND IN SOURCE +msgid "NickName" +msgstr "Nama Panggilan" + +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 +msgid "Nickname" +msgstr "Nama Panggilan" + +#: html/Admin/CustomFields/UserRights.html:145 +msgid "No Class defined" +msgstr "Tidak ada Kelas yang didefinisikan" + +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 +msgid "No CustomField" +msgstr "Tidak ada Kolom Kustom" + +#: html/Admin/CustomFields/GroupRights.html:103 +msgid "No CustomField defined" +msgstr "Tidak ada Kolom Kustom yang didefinisikan" + +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 +msgid "No Group defined" +msgstr "Tidak ada Grup yang didefinisikan" + +#: lib/RT/Tickets_Overlay_SQL.pm:477 +msgid "No Query" +msgstr "Tidak ada Query" + +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 +msgid "No Queue defined" +msgstr "Tidak ada Antrian yang didefinisikan" + +#: bin/rt-crontool:73 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "Tidak ada pengguna RT yang ditemukan. Silakan berkonsultasi dengan administrator RT anda.\\n" + +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 +msgid "No Template" +msgstr "Tidak ada Template" + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket " +msgstr "Tidak ada Tiket yang ditentukan. Batalkan tiket " + +#: html/Approvals/Elements/Approve:67 +msgid "No action" +msgstr "Tidak ada aksi" + +#: lib/RT/Record.pm:935 +msgid "No column specified" +msgstr "Tidak ada kolom yang ditentukan" + +#: html/Ticket/Elements/ShowRequestor:68 +msgid "No comment entered about this user" +msgstr "Tidak ada komentar yang dimasukkan mengenai pengguna ini" + +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 +#. (ref $self) +msgid "No description for %1" +msgstr "Tidak ada deskripsi untuk %1" + +#: lib/RT/Users_Overlay.pm:185 +msgid "No group specified" +msgstr "Tidak ada grup yang ditentukan" + +#: html/Admin/Groups/index.html:52 +msgid "No groups matching search criteria found." +msgstr "Grup yang sesuai dengan kriteria pencarian tidak ditemukan." + +#: lib/RT/Ticket_Overlay.pm:2349 +msgid "No message attached" +msgstr "Tidak ada pesan yang dilampirkan" + +#: lib/RT/User_Overlay.pm:1035 +msgid "No password set" +msgstr "Tidak ada pengaturan Sandi" + +#: lib/RT/Queue_Overlay.pm:358 +msgid "No permission to create queues" +msgstr "Tidak ada izin untuk membuat antrian" + +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "Tidak ada izin untuk membuat tiket ini di dalam antrian '%1'" + +#: lib/RT/User_Overlay.pm:187 +msgid "No permission to create users" +msgstr "Tidak ada izin untuk membuat pengguna" + +#: html/SelfService/Display.html:165 +msgid "No permission to display that ticket" +msgstr "Tidak ada izin untuk menampilkan tiket tersebut" + +#: html/SelfService/Update.html:117 +msgid "No permission to view update ticket" +msgstr "Tidak ada izin untuk menampilkan tiket yang sudah diperbaharui" + +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 +msgid "No principal specified" +msgstr "Tidak ada prinsipal yang ditentukan" + +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 +msgid "No principals selected." +msgstr "Tidak ada prinsipal yang dipilih." + +#: html/Admin/Queues/index.html:57 +msgid "No queues matching search criteria found." +msgstr "Antrian yang sesuai dengan kriteria pencarian tidak ditemukan." + +#: html/Admin/Elements/SelectRights:106 +msgid "No rights found" +msgstr "Tidak ada hak-hak yang ditemukan" + +#: html/Admin/Elements/SelectRights:53 +msgid "No rights granted." +msgstr "Tidak ada hak-hak yang diberikan." + +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "Tidak ada pencarian yang dipanggil" + +#: html/Search/Bulk.html:194 +msgid "No search to operate on." +msgstr "Tidak ada pencarian untuk dijalankan di." + +#: html/Elements/RT__Ticket/ColumnMap:134 +msgid "No subject" +msgstr "Tidak ada subjek" + +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 +msgid "No transaction type specified" +msgstr "Tidak ada tipe transaksi yang ditentukan" + +#: html/Admin/Users/index.html:55 +msgid "No users matching search criteria found." +msgstr "Pengguna yang sesuai dengan kriteria pencarian tidak ditemukan." + +#: NOT FOUND IN SOURCE +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "Tidak ada pengguna RT yang valid ditemukan. RT cvs handler dilepaskan. Silakan berkonsultasi dengan administrator RT anda.\\n" + +#: lib/RT/Record.pm:932 +msgid "No value sent to _Set!\\n" +msgstr "Tidak ada nilai yang dikirim ke _Set!\\n" + +#: html/Elements/QuickCreate:61 +msgid "Nobody" +msgstr "Tidak seorangpun" + +#: lib/RT/Record.pm:937 +msgid "Nonexistant field?" +msgstr "Kolom kosong?" + +#: html/Elements/Header:96 +msgid "Not logged in." +msgstr "Belum log in" + +#: lib/RT/Date.pm:393 +msgid "Not set" +msgstr "Belum diatur" + +#: html/NoAuth/Reminder.html:48 +msgid "Not yet implemented." +msgstr "Belum diimplementasikan." + +#: html/Approvals/Elements/Approve:70 +msgid "Notes" +msgstr "Catatan" + +#: lib/RT/User_Overlay.pm:820 +msgid "Notification could not be sent" +msgstr "Pemberitahuan tidak dapat dikirimkan" + +#: etc/initialdata:101 +msgid "Notify AdminCcs" +msgstr "Beritahu AdminCcs" + +#: etc/initialdata:97 +msgid "Notify AdminCcs as Comment" +msgstr "Beritahu AdminCcs dengan komentar" + +#: etc/initialdata:93 etc/upgrade/3.1.17/content:6 +msgid "Notify Ccs" +msgstr "Beritahu Ccs" + +#: etc/initialdata:89 etc/upgrade/3.1.17/content:2 +msgid "Notify Ccs as Comment" +msgstr "Beritahu Ccs dengan komentar" + +#: etc/initialdata:128 +msgid "Notify Other Recipients" +msgstr "Beritahu Penerima Lain" + +#: etc/initialdata:124 +msgid "Notify Other Recipients as Comment" +msgstr "Beritahu Penerima Lain dengan komentar" + +#: etc/initialdata:85 +msgid "Notify Owner" +msgstr "Beritahu Pemilik" + +#: etc/initialdata:81 +msgid "Notify Owner as Comment" +msgstr "Beritahu Pemilik dengan komentar" + +#: etc/initialdata:376 +msgid "Notify Owner of their rejected ticket" +msgstr "Beritahu pemilik bahwa tiketnya ditolak" + +#: etc/initialdata:365 +msgid "Notify Owner of their ticket has been approved by all approvers" +msgstr "Beritahu Pemilik bahwa tiketnya sudah disetujui oleh seluruh pemberi persetujuan" + +#: etc/initialdata:353 +msgid "Notify Owner of their ticket has been approved by some approver" +msgstr "Beritahu Pemilik bahwa tiketnya sudah disetujui oleh beberapa pemberi persetujuan" + +#: etc/initialdata:334 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "Beritahu Pemilik dan AdminCcs mengenai izin item baru yang ditunda" + +#: etc/initialdata:77 +msgid "Notify Requestors" +msgstr "Beritahu Pemohon" + +#: etc/initialdata:111 +msgid "Notify Requestors and Ccs" +msgstr "Beritahu Pemohon dan Ccs" + +#: etc/initialdata:106 +msgid "Notify Requestors and Ccs as Comment" +msgstr "Beritahu Pemohon dan Ccs dengan komentar" + +#: etc/initialdata:120 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "Beritahu Pemohon, Ccs dan AdminCcs" + +#: etc/initialdata:116 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "Beritahu Pemohon, Ccs dan AdminCcs dengan komentar" + +#: lib/RT/Date.pm:447 +msgid "Nov." +msgstr "Nop." + +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "ATAU" + +#: lib/RT/Record.pm:319 +msgid "Object could not be created" +msgstr "Objek tidak dapat dibuat" + +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "Objek tidak dapat dihapus" + +#: lib/RT/Record.pm:338 +msgid "Object created" +msgstr "Object sudah dibuat" + +#: lib/RT/Record.pm:121 +msgid "Object deleted" +msgstr "Objek sudah dihapus" + +#: html/Admin/CustomFields/Objects.html:72 html/Admin/Elements/ObjectCustomFields:63 +#. ($ObjectType) +#. ($LookupType) +msgid "Object of type %1 cannot take custom fields" +msgstr "Tipe Objek %1 tidak dapat mengambil kolom kustom" + +#: lib/RT/CustomField_Overlay.pm:901 +msgid "Object type mismatch" +msgstr "Tipe Objek tidak sesuai (mismatch)" + +#: lib/RT/Date.pm:446 +msgid "Oct." +msgstr "Okt." + +#: html/Tools/Elements/Tabs:53 +msgid "Offline" +msgstr "Offline" + +#: html/Tools/Offline.html:49 +msgid "Offline edits" +msgstr "Ubah Offline" + +#: html/Tools/Offline.html:46 +msgid "Offline upload" +msgstr "Upload Offline" + +#: html/Elements/SelectDateRelation:56 +msgid "On" +msgstr "Pada" + +#: etc/initialdata:163 +msgid "On Comment" +msgstr "Pada Komentar" + +#: etc/initialdata:156 +msgid "On Correspond" +msgstr "Pada Hubungan" + +#: etc/initialdata:145 +msgid "On Create" +msgstr "Pada Pembuatan" + +#: etc/initialdata:184 +msgid "On Owner Change" +msgstr "Pada Perubahan Pemilik" + +#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 +msgid "On Priority Change" +msgstr "Pada Perubahan Prioritas" + +#: etc/initialdata:192 +msgid "On Queue Change" +msgstr "Pada Perubahan Antrian" + +#: etc/initialdata:198 +msgid "On Resolve" +msgstr "Pada Penyelesaian" + +#: etc/initialdata:169 +msgid "On Status Change" +msgstr "Pada Perubahan Status" + +#: etc/initialdata:150 +msgid "On Transaction" +msgstr "Pada Transaksi" + +#: html/Approvals/Elements/PendingMyApproval:71 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "Hanya menampilkan izin untuk permintaan yang dibuat sesudah %1" + +#: html/Approvals/Elements/PendingMyApproval:69 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "Hanya menampilkan izin untuk permintaan yang dibuat sebelum %1" + +#: html/Elements/Quicksearch:52 +msgid "Open" +msgstr "Buka" + +#: html/Ticket/Elements/Tabs:159 +msgid "Open it" +msgstr "Buka ini" + +#: html/SelfService/Elements/Tabs:63 +msgid "Open tickets" +msgstr "Buka tiket" + +#: NOT FOUND IN SOURCE +msgid "Open tickets (from listing) in a new window" +msgstr "Buka tiket (dari daftar) di window yang baru" + +#: NOT FOUND IN SOURCE +msgid "Open tickets (from listing) in another window" +msgstr "Buka tiket (dari daftar) di window yang lain" + +#: etc/initialdata:140 +msgid "Open tickets on correspondence" +msgstr "Buka tiket pada korespondensi" + +#: html/Search/Elements/DisplayOptions:56 +msgid "Order by" +msgstr "Diurutkan sesuai" + +#: NOT FOUND IN SOURCE +msgid "Ordering and sorting" +msgstr "Diurutkan dan disortir" + +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 +msgid "Organization" +msgstr "Organisasi" + +#: html/Approvals/Elements/Approve:54 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "Tiket Awal: #%1" + +#: lib/RT/Transaction_Overlay.pm:611 +msgid "Outgoing email about a comment recorded" +msgstr "Email yang keluar mengenai komentar yang dicatat" + +#: lib/RT/Transaction_Overlay.pm:615 +msgid "Outgoing email recorded" +msgstr "Email keluar yang dicatat" + +#: html/Admin/Queues/Modify.html:90 +msgid "Over time, priority moves toward" +msgstr "Lewat Batas waktu, prioritas pindah ke arah" + +#: lib/RT/Queue_Overlay.pm:113 +msgid "Own tickets" +msgstr "Memiliki tiket-tiket" + +#: lib/RT/Queue_Overlay.pm:113 +msgid "OwnTicket" +msgstr "Memiliki tiket" + +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 +msgid "Owner" +msgstr "Pemilik" + +#: lib/RT/Ticket_Overlay.pm:495 +msgid "Owner could not be set." +msgstr "Pemilik tidak dapat diatur." + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Pemilik secara paksa digantikan dari %1 ke %2" + +#: NOT FOUND IN SOURCE +msgid "Owner is" +msgstr "Pemilik adalah" + +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) +msgid "Page %1 of %2" +msgstr "Halaman %1 dari %2" + +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 +msgid "Pager" +msgstr "Pager" + +#: NOT FOUND IN SOURCE +msgid "PagerPhone" +msgstr "Pager" + +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 +msgid "Parents" +msgstr "Induk " + +#: html/Elements/Login:74 html/User/Prefs.html:105 +msgid "Password" +msgstr "Sandi" + +#: html/NoAuth/Reminder.html:46 +msgid "Password Reminder" +msgstr "Pengingat Sandi" + +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "Sandi sudah diubah" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "Minimal sandi memerlukan paling sedikit %1 karakter" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Password too short" +msgstr "Sandi terlalu singkat" + +#: html/User/Prefs.html:232 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "Sandi: %1" + +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 +msgid "Passwords do not match." +msgstr "Sandi tidak sesuai." + +#: html/User/Prefs.html:234 +msgid "Passwords do not match. Your password has not been changed" +msgstr "Sandi tidak sesuai. Sandi anda belum diganti" + +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 +msgid "People" +msgstr "Orang-Orang" + +#: etc/initialdata:133 +msgid "Perform a user-defined action" +msgstr "Menampilkan aksi pengguna yang belum didefinisikan" + +#: html/Admin/Tools/Configuration.html:94 +msgid "Perl configuration" +msgstr "Konfigurasi Perl" + +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 +msgid "Permission Denied" +msgstr "Izin ditolak" + +#: html/User/Elements/Tabs:56 +msgid "Personal Groups" +msgstr "Grup Pribadi" + +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 +msgid "Personal groups" +msgstr "Grup pribadi" + +#: html/User/Elements/DelegateRights:58 +msgid "Personal groups:" +msgstr "Grup pribadi:" + +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 +msgid "Phone numbers" +msgstr "Nomor Telepon" + +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 +msgid "Preferences" +msgstr "Pilihan" + +#: lib/RT/Action/Generic.pm:196 +msgid "Prepare Stubbed" +msgstr "Siapkan Potongan Tiket" + +#: html/Ticket/Elements/Tabs:84 +msgid "Prev" +msgstr "Sebelumnya" + +#: html/Elements/TicketList:101 +msgid "Previous Page" +msgstr "Halaman Sebelumnya" + +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "Prinsipal %1 tidak ditemukan." + +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 +msgid "Priority" +msgstr "Prioritas" + +#: html/Admin/Queues/Modify.html:86 +msgid "Priority starts at" +msgstr "Prioritas dimulai pada" + +#: html/Search/Elements/EditSearches:50 +msgid "Privacy:" +msgstr "Pribadi:" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "Hak-hak Istimewa" + +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "Status Hak-hak Istimewa: %1" + +#: html/Admin/Users/index.html:102 +msgid "Privileged users" +msgstr "Pengguna Hak-hak Istimewa" + +#: NOT FOUND IN SOURCE +msgid "Projects" +msgstr "Proyek-Proyek" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "Pseudogroup digunakan untuk internal" + +#: html/Search/Elements/EditQuery:47 +msgid "Query" +msgstr "Query" + +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 +msgid "Query Builder" +msgstr "Pembuat Query" + +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 +msgid "Queue" +msgstr "Antrian" + +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 +#. ($Queue) +#. ($id) +msgid "Queue %1 not found" +msgstr "Antrian %1 tidak ditemukan" + +#: html/Admin/Queues/Modify.html:64 +msgid "Queue Name" +msgstr "Nama Antrian" + +#: lib/RT/Queue_Overlay.pm:362 +msgid "Queue already exists" +msgstr "Antrian sudah ada" + +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 +msgid "Queue could not be created" +msgstr "Antrian tidak dapat dibuat" + +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 +msgid "Queue could not be loaded." +msgstr "Antrian tidak dapat dipanggil." + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 +msgid "Queue created" +msgstr "Antrian sudah dibuat" + +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 +msgid "Queue not found" +msgstr "Antrian tidak dapat ditemukan" + +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 +msgid "Queues" +msgstr "Antrian-antrian" + +#: html/Elements/Quicksearch:46 +msgid "Quick search" +msgstr "Pencarian Cepat" + +#: html/Elements/QuickCreate:46 +msgid "Quick ticket creation" +msgstr "Pembuatan Tiket Cepat" + +#: html/Search/Results.html:83 +msgid "RSS" +msgstr "RSS" + +#: html/Elements/Login:66 +#. ($RT::VERSION) +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 untuk %2" + +#: html/Admin/index.html:46 html/Admin/index.html:47 +msgid "RT Administration" +msgstr "Administrasi RT" + +#: html/Elements/Error:65 html/SelfService/Error.html:62 +msgid "RT Error" +msgstr "Kesalahan RT" + +#: html/Admin/Tools/Configuration.html:73 +msgid "RT Variables" +msgstr "Variable RT " + +#: html/index.html:72 html/index.html:75 +msgid "RT at a glance" +msgstr "Sekilas RT" + +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." +msgstr "RT tidak dapat menyimpan sesi anda" + +#: html/Elements/PageLayout:108 +#. ($RT::rtname) +msgid "RT for %1" +msgstr "RT untuk %1" + +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 +msgid "Real Name" +msgstr "Nama Asli" + +#: NOT FOUND IN SOURCE +msgid "RealName" +msgstr "Nama Asli" + +#: lib/RT/Transaction_Overlay.pm:714 +#. ($value) +msgid "Reference by %1 added" +msgstr "Referensi oleh %1 sudah ditambah" + +#: lib/RT/Transaction_Overlay.pm:754 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "Referensi oleh %1 sudah dihapus" + +#: lib/RT/Transaction_Overlay.pm:711 +#. ($value) +msgid "Reference to %1 added" +msgstr "Referensi ke %1 sudah ditambah" + +#: lib/RT/Transaction_Overlay.pm:751 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "Referensi ke %1 sudah dihapus" + +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 +msgid "Referred to by" +msgstr "Diserahkan oleh" + +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 +msgid "Refers to" +msgstr "Diserahkan ke" + +#: NOT FOUND IN SOURCE +msgid "Refine search" +msgstr "Membersihkan pencarian" + +#: html/Elements/Refresh:57 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "Refresh halaman ini setiap %1 menit." + +#: NOT FOUND IN SOURCE +msgid "Relationships" +msgstr "Hubungan" + +#: html/Search/Bulk.html:116 +msgid "Remove AdminCc" +msgstr "Hapus AdminCc" + +#: html/Search/Bulk.html:112 +msgid "Remove Cc" +msgstr "Hapus Cc" + +#: html/Search/Bulk.html:108 +msgid "Remove Requestor" +msgstr "Hapus Pemohon" + +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 +msgid "Reply" +msgstr "Balas" + +#: html/Admin/Queues/Modify.html:72 +msgid "Reply Address" +msgstr "Balas ke Alamat" + +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 +msgid "Reply to requestors" +msgstr "Balas ke Pemohon" + +#: lib/RT/Queue_Overlay.pm:111 +msgid "Reply to tickets" +msgstr "Balas ke tiket" + +#: lib/RT/Queue_Overlay.pm:111 +msgid "ReplyToTicket" +msgstr "Balas ke Tiket" + +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 +msgid "Requestor" +msgstr "Pemohon" + +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 +msgid "Requestors" +msgstr "Pemohon" + +#: html/Admin/Queues/Modify.html:96 +msgid "Requests should be due in" +msgstr "permintaan akan melewati batas waktu dalam" + +#: lib/RT/Attribute_Overlay.pm:146 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "Parameter yang diperlukan '%1' tidak didefinisikan" + +#: html/Elements/Submit:104 +msgid "Reset" +msgstr "Ulangi" + +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 +msgid "Residence" +msgstr "Tempat Tinggal" + +#: html/Ticket/Elements/Tabs:155 +msgid "Resolve" +msgstr "Penyelesaian" + +#: html/Ticket/Update.html:154 +#. ($TicketObj->id, $TicketObj->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "Penyelesaian tiket #%1 (%2)" + +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 +msgid "Resolved" +msgstr "Sudah Diselesaikan" + +#: NOT FOUND IN SOURCE +msgid "Response to requestors" +msgstr "Balas ke pemohon" + +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 +msgid "Results" +msgstr "Hasil" + +#: NOT FOUND IN SOURCE +msgid "Results per page" +msgstr "Hasil per halaman" + +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 +msgid "Retype Password" +msgstr "Ketik Ulang Sandi" + +#: html/Search/Elements/EditSearches:61 +msgid "Revert" +msgstr "Kembali pada" + +#: lib/RT/ACE_Overlay.pm:631 +msgid "Right Delegated" +msgstr "Hak-hak Utusan" + +#: lib/RT/ACE_Overlay.pm:321 +msgid "Right Granted" +msgstr "Memberikan Hak-hak" + +#: lib/RT/ACE_Overlay.pm:179 +msgid "Right Loaded" +msgstr "Memanggil Hak-hak" + +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 +msgid "Right could not be revoked" +msgstr "Hak-hak tidak dapat dihilangkan" + +#: html/User/Delegation.html:85 +msgid "Right not found" +msgstr "Hak-hak tidak ditemukan" + +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 +msgid "Right not loaded." +msgstr "Hak-hak tidak dapat dipanggil." + +#: lib/RT/ACE_Overlay.pm:713 +msgid "Right revoked" +msgstr "Hak-hak tidak dapat dihilangkan" + +#: html/Admin/Elements/UserTabs:67 +msgid "Rights" +msgstr "Hak-hak" + +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "Hak-hak tidak dapat diberikan untuk %1" + +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "Hak-hak tidak dapat dihilangkan untuk %1" + +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 +msgid "Roles" +msgstr "Aturan" + +#: html/Search/Elements/DisplayOptions:83 +msgid "Rows per page" +msgstr "Baris per halaman" + +#: lib/RT/Date.pm:418 +msgid "Sat." +msgstr "Sab." + +#: html/Search/Elements/EditSearches:70 +msgid "Save" +msgstr "Simpan" + +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 +msgid "Save Changes" +msgstr "Simpan Perubahan" + +#: html/User/Prefs.html:179 +msgid "Save Preferences" +msgstr "Simpan Pilihan" + +#: html/Ticket/Elements/PreviewScrips:124 +msgid "Save changes" +msgstr "Simpan perubahaan" + +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "Simpan pencarian %1" + +#: html/Search/Elements/EditSearches:46 +msgid "Saved searches" +msgstr "Simpan pencarian" + +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) +#. ($id) +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "Scrip #%1" + +#: lib/RT/Scrip_Overlay.pm:205 +msgid "Scrip Created" +msgstr "Scrip sudah dibuat" + +#: html/Admin/Elements/EditScrip:52 +msgid "Scrip Fields" +msgstr "Kolom Scrip" + +#: html/Admin/Elements/EditScrips:107 +msgid "Scrip deleted" +msgstr "Scrip sudah dihapus" + +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 +msgid "Scrips" +msgstr "Scrip" + +#: html/Admin/Queues/Scrips.html:55 +msgid "Scrips which apply to all queues" +msgstr "Scrip yang digunakan di seluruh antrian" + +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 +msgid "Search" +msgstr "Pencarian" + +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "Gagal memanggil atribut pencarian" + +#: html/Approvals/Elements/PendingMyApproval:60 +msgid "Search for approvals" +msgstr "Pencarian untuk izin" + +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" +msgstr "Perbaharui Pencarian: %1" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "Pencarian tidak dapat dihubungkan dengan objek yang seperti ini" + +#: bin/rt-crontool:213 +msgid "Security:" +msgstr "Keamanan:" + +#: lib/RT/CustomField_Overlay.pm:100 +msgid "See custom fields" +msgstr "Lihat kolom kustom" + +#: lib/RT/Queue_Overlay.pm:107 +msgid "See exact outgoing email messages and their recipeients" +msgstr "Lihat pesan email yang keluar dan semua penerimanya dengan tepat" + +#: lib/RT/Queue_Overlay.pm:105 +msgid "See ticket private commentary" +msgstr "Lihat Penjelasan Tiket Pribadi" + +#: lib/RT/Queue_Overlay.pm:104 +msgid "See ticket summaries" +msgstr "Lihat Ringkasan Tiket" + +#: lib/RT/CustomField_Overlay.pm:100 +msgid "SeeCustomField" +msgstr "Lihat Kolom Kustom" + +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" +msgstr "Lihat Grup" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "SeeQueue" +msgstr "Lihat Antrian" + +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "Pilih" + +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 +msgid "Select a Custom Field" +msgstr "Pilih Kolom Kustom" + +#: html/Admin/Groups/index.html:78 +msgid "Select a group" +msgstr "Pilih grup" + +#: html/Admin/Queues/index.html:54 +msgid "Select a queue" +msgstr "Pilih antrian" + +#: html/SelfService/CreateTicketInQueue.html:48 +msgid "Select a queue for your new ticket" +msgstr "Pilih antrian untuk tiket baru anda" + +#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 +msgid "Select a user" +msgstr "Pilih Pengguna" + +#: html/Admin/Elements/CustomFieldTabs:90 +msgid "Select custom field" +msgstr "Pilih kolom kustom" + +#: html/Admin/Global/CustomFields/index.html:70 +msgid "Select custom fields for all user groups" +msgstr "Pilih kolom kustom untuk seluruh grup pengguna" + +#: html/Admin/Global/CustomFields/index.html:65 +msgid "Select custom fields for all users" +msgstr "Pilih kolom kustom untuk seluruh pengguna" + +#: html/Admin/Global/CustomFields/index.html:76 +msgid "Select custom fields for tickets in all queues" +msgstr "Pilih kolom kustom untuk tiket di seluruh antrian" + +#: html/Admin/Global/CustomFields/index.html:83 +msgid "Select custom fields for transactions on tickets in all queues" +msgstr "Pilih kolom kustom untuk transaksi pada tiket di dalam seluruh antrian" + +#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 +msgid "Select group" +msgstr "Pilih grup" + +#: lib/RT/CustomField_Overlay.pm:59 +msgid "Select multiple values" +msgstr "Pilih beberapa nilai" + +#: lib/RT/CustomField_Overlay.pm:60 +msgid "Select one value" +msgstr "Pilih satu nilai" + +#: html/Admin/Elements/QueueTabs:92 +msgid "Select queue" +msgstr "Pilih antrian" + +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 +msgid "Select scrip" +msgstr "Pilih 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 "Pilih template" + +#: lib/RT/CustomField_Overlay.pm:61 +msgid "Select up to %1 values" +msgstr "Pilih sampai %1 nilai" + +#: html/Admin/Elements/UserTabs:75 +msgid "Select user" +msgstr "Pilih pengguna" + +#: html/Admin/Elements/EditCustomFields:58 +msgid "Selected Custom Fields" +msgstr "Kolom Kustom yang dipilih" + +#: html/Admin/CustomFields/Objects.html:59 +msgid "Selected objects" +msgstr "Objek yang dipilih" + +#: etc/initialdata:121 +msgid "Send mail to all watchers" +msgstr "Kirim pesan ke seluruh pengamat" + +#: etc/initialdata:117 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "Kirim pesan ke seluruh pengamat dengan \"komentar\"" + +#: etc/initialdata:112 +msgid "Send mail to requestors and Ccs" +msgstr "Kirim pesan ke pemohon dan Ccs" + +#: etc/initialdata:107 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "Kirim pesan ke pemohon dan Ccs dengan komentar" + +#: etc/initialdata:78 +msgid "Sends a message to the requestors" +msgstr "Kirim pesan ke pemohon" + +#: etc/initialdata:125 etc/initialdata:129 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "Kirim pesan ke Ccs and Bccs yang terdaftar dengan jelas" + +#: etc/initialdata:94 etc/upgrade/3.1.17/content:7 +msgid "Sends mail to the Ccs" +msgstr "Kirim pesan ke Ccs" + +#: etc/initialdata:90 etc/upgrade/3.1.17/content:3 +msgid "Sends mail to the Ccs as a comment" +msgstr "Kirim pesan ke Ccs dengan komentar" + +#: etc/initialdata:102 +msgid "Sends mail to the administrative Ccs" +msgstr "Kirim pesan ke Ccs administrasi" + +#: etc/initialdata:98 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "Kirim pesan ke Ccs administrasi dengan komentar" + +#: etc/initialdata:82 etc/initialdata:86 +msgid "Sends mail to the owner" +msgstr "Kirim pesan ke pemilik" + +#: lib/RT/Date.pm:445 +msgid "Sep." +msgstr "Sep." + +#: html/Ticket/Elements/ShowTransaction:150 +msgid "Show" +msgstr "Tampilkan" + +#: html/Approvals/index.html:52 +msgid "Show Approvals" +msgstr "Tampilkan Izin" + +#: html/Search/Elements/EditFormat:56 +msgid "Show Columns" +msgstr "Tampilkan Kolom" + +#: html/Ticket/Elements/Tabs:201 +msgid "Show Results" +msgstr "Tampilkan Hasil" + +#: html/Approvals/Elements/PendingMyApproval:65 +msgid "Show approved requests" +msgstr "Tamplikan permintaan yang disetujui" + +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 +msgid "Show basics" +msgstr "Tampilkan dasar-dasar" + +#: html/Approvals/Elements/PendingMyApproval:66 +msgid "Show denied requests" +msgstr "Tampilkan permintaan yang ditolak" + +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 +msgid "Show details" +msgstr "Tampilkan detil" + +#: html/Approvals/Elements/PendingMyApproval:64 +msgid "Show pending requests" +msgstr "Tampilkan permintaan yang ditunda" + +#: html/Approvals/Elements/PendingMyApproval:67 +msgid "Show requests awaiting other approvals" +msgstr "Tampilkan permintaan izin lain yang ditunggu" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "ShowACL" +msgstr "Tampilkan ACL" + +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "Tampilkan Tab Config" + +#: lib/RT/Queue_Overlay.pm:107 +msgid "ShowOutgoingEmail" +msgstr "Tampilkan Email yang Keluar" + +#: lib/RT/Group_Overlay.pm:176 +msgid "ShowSavedSearches" +msgstr "Tampilkan Pencarian yang Disimpan" + +#: lib/RT/Queue_Overlay.pm:103 +msgid "ShowScrips" +msgstr "Tampilkan Scrip" + +#: lib/RT/Queue_Overlay.pm:100 +msgid "ShowTemplate" +msgstr "Tampilkan Template" + +#: lib/RT/Queue_Overlay.pm:104 +msgid "ShowTicket" +msgstr "Tampilkan Tiket" + +#: lib/RT/Queue_Overlay.pm:105 +msgid "ShowTicketComments" +msgstr "Tampilkan Komentar Tiket" + +#: lib/RT/Queue_Overlay.pm:108 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "Daftar sebagai pemohon tiket atau tiket atau antrian Cc" + +#: lib/RT/Queue_Overlay.pm:109 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "Daftar sebagai tiket atau antrian AdminCc" + +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 +msgid "Signature" +msgstr "Tanda Tangan" + +#: html/Admin/Elements/SelectSingleOrMultiple:47 +msgid "Single" +msgstr "Tunggal" + +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "Ukuran" + +#: html/Elements/Header:85 +msgid "Skip Menu" +msgstr "Lewati Menu" + +#: html/Search/Elements/EditFormat:78 +msgid "Small" +msgstr "Kecil" + +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 +msgid "Sort" +msgstr "Sortir" + +#: NOT FOUND IN SOURCE +msgid "Sort results by" +msgstr "Sortir hasil dengan" + +#: html/Admin/Elements/EditScrip:87 +msgid "Stage" +msgstr "Tingkat" + +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 +msgid "Started" +msgstr "Sudah dimulai" + +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 +msgid "Starts" +msgstr "Mulai" + +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 +msgid "State" +msgstr "Negara" + +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 +msgid "Status" +msgstr "Status" + +#: etc/initialdata:309 +msgid "Status Change" +msgstr "Status Diubah" + +#: NOT FOUND IN SOURCE +msgid "Status changed from %1 to %2" +msgstr "Status diubah dari %1 ke %2" + +#: html/Ticket/Elements/Tabs:170 +msgid "Steal" +msgstr "Curi" + +#: lib/RT/Queue_Overlay.pm:118 +msgid "Steal tickets" +msgstr "Curi tiket" + +#: lib/RT/Queue_Overlay.pm:118 +msgid "StealTicket" +msgstr "Curi Tiket" + +#: lib/RT/Transaction_Overlay.pm:667 +#. ($Old->Name) +msgid "Stolen from %1" +msgstr "Dicuri dari %1" + +#: NOT FOUND IN SOURCE +msgid "Stolen from %1 " +msgstr "Dicuri dari %1 " + +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "Gaya" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 +msgid "Subject" +msgstr "Subjek" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "Subjek diganti menjadi %1" + +#: html/Elements/Submit:97 +msgid "Submit" +msgstr "Submit" + +#: lib/RT/Group_Overlay.pm:782 +msgid "Succeeded" +msgstr "Berhasil" + +#: lib/RT/Date.pm:419 +msgid "Sun." +msgstr "Min." + +#: lib/RT/System.pm:76 +msgid "SuperUser" +msgstr "PenggunaSuper" + +#: html/User/Elements/DelegateRights:98 +msgid "System" +msgstr "Sistem" + +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 +msgid "System Configuration" +msgstr "Konfigurasi Sistem" + +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 +msgid "System Error" +msgstr "Kesalahan Sistem" + +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" +msgstr "Kesalahan sistem: %1" + +#: html/Admin/Tools/index.html:47 +msgid "System Tools" +msgstr "Peralatan Sistem" + +#: lib/RT/ACE_Overlay.pm:634 +msgid "System error. Right not delegated." +msgstr "Kesalahan sistem. Hak-hak tidak dapat diserahkan." + +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 +msgid "System error. Right not granted." +msgstr "Kesalahan sistem. Hak-hak tidak dapat diberikan." + +#: 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 "Grup Sistem" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr " GrupAturanSistem yang digunakan untuk internal" + +#: lib/RT/CurrentUser.pm:358 +msgid "TEST_STRING" +msgstr "TES_STRING" + +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 +msgid "Take" +msgstr "Ambil" + +#: lib/RT/Queue_Overlay.pm:116 +msgid "Take tickets" +msgstr "Ambil tiket" + +#: lib/RT/Queue_Overlay.pm:116 +msgid "TakeTicket" +msgstr "Ambil Tiket" + +#: lib/RT/Transaction_Overlay.pm:652 +msgid "Taken" +msgstr "Diambil" + +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "Tugas" + +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 +msgid "Template" +msgstr "Template" + +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "Template #%1" + +#: html/Admin/Elements/EditTemplates:110 +msgid "Template deleted" +msgstr "Template sudah dihapus" + +#: lib/RT/Scrip_Overlay.pm:181 +msgid "Template not found" +msgstr "Template tidak ditemukan" + +#: lib/RT/Template_Overlay.pm:376 +msgid "Template parsed" +msgstr "Template parsed" + +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 +msgid "Templates" +msgstr "Template-template" + +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "Teks" + +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 +msgid "That is already the current value" +msgstr "Ini adalah nilai yang sekarang" + +#: lib/RT/CustomField_Overlay.pm:407 +msgid "That is not a value for this custom field" +msgstr "Ini bukan nilai untuk kolom kustom ini" + +#: lib/RT/Ticket_Overlay.pm:1955 +msgid "That is the same value" +msgstr "Ini adalah nilai yang sama" + +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 +msgid "That principal already has that right" +msgstr "Prinsipal ini sudah memiliki hak-hak tersebut" + +#: lib/RT/Queue_Overlay.pm:750 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "Prinsipal ini sudah %1 untuk antrian ini" + +#: lib/RT/Ticket_Overlay.pm:1396 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "Prinsipal ini sudah %1 untuk tiket ini" + +#: lib/RT/Queue_Overlay.pm:849 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Prinsipal ini bukan %1 untuk antrian ini" + +#: lib/RT/Ticket_Overlay.pm:1951 +msgid "That queue does not exist" +msgstr "Antrian ini tidak ada" + +#: lib/RT/Ticket_Overlay.pm:3189 +msgid "That ticket has unresolved dependencies" +msgstr "Tiket ini mempunyai ketergantungan yang belum dapat diselesaikan" + +#: lib/RT/Ticket_Overlay.pm:2993 +msgid "That user already owns that ticket" +msgstr "Pengguna ini sudah memiliki tiket tersebut" + +#: lib/RT/Ticket_Overlay.pm:2965 +msgid "That user does not exist" +msgstr "Pengguna ini tidak ada" + +#: lib/RT/User_Overlay.pm:390 +msgid "That user is already privileged" +msgstr "Pengguna ini sudah memiliki hak-hak istimewa" + +#: lib/RT/User_Overlay.pm:411 +msgid "That user is already unprivileged" +msgstr "Pengguna ini sudah tidak memiliki hak-hak istimewa" + +#: lib/RT/User_Overlay.pm:403 +msgid "That user is now privileged" +msgstr "Pengguna tersebut sekarang memiliki hak-hak istimewa" + +#: lib/RT/User_Overlay.pm:424 +msgid "That user is now unprivileged" +msgstr "Pengguna tersebut sekarang tidak memiliki hak-hak istimewa" + +#: lib/RT/Ticket_Overlay.pm:2986 +msgid "That user may not own tickets in that queue" +msgstr "Pengguna tersebut mungkin tidak memiliki tiket di dalam antrian tersebut" + +#: lib/RT/Link_Overlay.pm:234 +msgid "That's not a numerical id" +msgstr "Ini bukan menurut angka ID" + +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 +msgid "The Basics" +msgstr "Dasar-dasar" + +#: lib/RT/ACE_Overlay.pm:113 +msgid "The CC of a ticket" +msgstr "CC tiket" + +#: lib/RT/ACE_Overlay.pm:114 +msgid "The administrative CC of a ticket" +msgstr "CC tiket administrasi" + +#: bin/rt-crontool:223 +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 "Perintah berikut ini akan menemukan seluruh tiket yang aktif di dalam antrian 'umum' dan mengatur prioritas mereka ke 99 jika mereka tidak digunakan dalam waktu 4 jam:" + +#: NOT FOUND IN SOURCE +msgid "The following commands were not proccessed:\\n\\n" +msgstr "Perintah berikut ini tidak akan dijalankan:\\n\\n" + +#: lib/RT/Record.pm:934 +msgid "The new value has been set." +msgstr "Nilai baru sudah diatur." + +#: lib/RT/ACE_Overlay.pm:111 +msgid "The owner of a ticket" +msgstr "Pemilik tiket" + +#: lib/RT/ACE_Overlay.pm:112 +msgid "The requestor of a ticket" +msgstr "Pemohon tiket" + +#: html/Admin/Elements/EditUserComments:47 +msgid "These comments aren't generally visible to the user" +msgstr "Komentar ini umumnya tidak jelas bagi pengguna" + +#: lib/RT/CustomField_Overlay.pm:912 +msgid "This custom field does not apply to that object" +msgstr "Kolom kustom ini tidak dapat digunakan pada objek tersebut" + +#: html/Admin/Tools/Configuration.html:50 +msgid "This feature is only available to system administrators" +msgstr "Fitur ini hanya tersedia untuk sistem administrator" + +#: html/Ticket/Elements/PreviewScrips:93 +msgid "This message will be sent to..." +msgstr "Pesan ini akan dikirim ke..." + +#: bin/rt-crontool:214 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "Alat ini mengijinkan pengguna untuk menjalankan modul perl yang berubah-ubah dari dalam RT." + +#: lib/RT/Transaction_Overlay.pm:288 +msgid "This transaction appears to have no content" +msgstr "Transaksi ini tampaknya tidak memiliki isi" + +#: html/Ticket/Elements/ShowRequestor:70 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "Pengguna ini memiliki %1 tiket dengan prioritas tertinggi" + +#: lib/RT/Date.pm:416 +msgid "Thu." +msgstr "Kms." + +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "Tiket #%1 Perbaharui Jumbo: %2" + +#: html/Approvals/Elements/ShowDependency:67 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "Tiket #%1: %2" + +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "Tiket %1" + +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "Tiket %1 sudah dibuat di dalam antrian '%2'" + +#: NOT FOUND IN SOURCE +msgid "Ticket %1 loaded\\n" +msgstr "Tiket %1 sudah dipanggil\\n" + +#: html/Search/Bulk.html:269 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "Tiket %1: %2" + +#: html/Admin/Elements/QueueTabs:74 +msgid "Ticket Custom Fields" +msgstr "Tiket Kolom Kustom" + +#: html/Ticket/History.html:46 html/Ticket/History.html:49 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "Historis Tiket # %1 %2" + +#: etc/initialdata:324 +msgid "Ticket Resolved" +msgstr "Tiket sudah diselesaikan" + +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 +msgid "Ticket Transactions" +msgstr "Transaksi Tiket" + +#: NOT FOUND IN SOURCE +msgid "Ticket attachment" +msgstr "Lampiran Tiket" + +#: lib/RT/Tickets_Overlay.pm:1648 +msgid "Ticket content" +msgstr "Isi Tiket" + +#: lib/RT/Tickets_Overlay.pm:1697 +msgid "Ticket content type" +msgstr "Tipe isi Tiket" + +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 +msgid "Ticket could not be created due to an internal error" +msgstr "Tiket tidak dapat dibuat karena ada kesalahan internal" + +#: html/Ticket/Display.html:55 +msgid "Ticket metadata" +msgstr "Metadata Tiket" + +#: etc/initialdata:310 +msgid "Ticket status changed" +msgstr "Status tiket sudah diubah" + +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "Pencarian modul Tiket SQL" + +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 +msgid "Tickets" +msgstr "Tiket-tiket" + +#: NOT FOUND IN SOURCE +msgid "Tickets %1 %2" +msgstr "Tiket %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Tickets %1 by %2" +msgstr "Tiket %1 oleh %2" + +#: NOT FOUND IN SOURCE +msgid "Tickets from %1" +msgstr "Tiket dari %1" + +#: html/Approvals/Elements/ShowDependency:48 +msgid "Tickets which depend on this approval:" +msgstr "Tiket yang bergantung dengan izin ini:" + +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 +msgid "Time Estimated" +msgstr "Perkiraan Waktu" + +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 +msgid "Time Left" +msgstr "Sisa Waktu" + +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 +msgid "Time Worked" +msgstr "Waktu Kerja" + +#: lib/RT/Tickets_Overlay.pm:1619 +msgid "Time left" +msgstr "Sisa waktu" + +#: html/Elements/Footer:71 +msgid "Time to display" +msgstr "Waktu untuk ditampilkan" + +#: lib/RT/Tickets_Overlay.pm:1594 +msgid "Time worked" +msgstr "Waktu kerja" + +#: lib/RT/Ticket_Overlay.pm:1143 +msgid "TimeWorked" +msgstr "Waktu Kerja" + +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "Judul" + +#: NOT FOUND IN SOURCE +msgid "To generate a diff of this commit:" +msgstr "To generate a diff of this commit:" + +#: NOT FOUND IN SOURCE +msgid "To generate a diff of this commit:\\n" +msgstr "To generate a diff of this commit:\\n" + +#: html/Elements/Footer:61 +#. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') +msgid "To inquire about support, training, custom development or licensing, please contact %1." +msgstr "Untuk menanyakan tentang bantuan, latihan, perkembangan kustom atau izin, silakan hubungi %1." + +#: lib/RT/Ticket_Overlay.pm:1146 +msgid "Told" +msgstr "Memberitahukan" + +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 +msgid "Tools" +msgstr "alat-alat" + +#: etc/initialdata:252 +msgid "Transaction" +msgstr "Transaksi" + +#: lib/RT/Transaction_Overlay.pm:794 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "Transaksi %1 sudah dibersihkan" + +#: lib/RT/Transaction_Overlay.pm:174 +msgid "Transaction Created" +msgstr "Transaksi sudah dibuat" + +#: html/Admin/Elements/QueueTabs:78 +msgid "Transaction Custom Fields" +msgstr "Kolom Kustom Transaksi" + +#: lib/RT/Transaction_Overlay.pm:125 +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "Transaksi->Tidak dapat dibuat, karena anda tidak menentukan tipe objek dan id" + +#: lib/RT/Transaction_Overlay.pm:838 +msgid "Transactions are immutable" +msgstr "Transaksi yang tetap" + +#: lib/RT/Date.pm:414 +msgid "Tue." +msgstr "Sel." + +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 +msgid "Type" +msgstr "Tipe" + +#: lib/RT/ScripCondition_Overlay.pm:129 +msgid "Unimplemented" +msgstr "Belum diimplementasikan" + +#: html/Admin/Users/Modify.html:89 +msgid "Unix login" +msgstr "Login Unix" + +#: NOT FOUND IN SOURCE +msgid "UnixUsername" +msgstr "Nama Pengguna Unix" + +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 +#. ($self->ContentEncoding) +#. ($ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "Content Encoding tidak dikenali%1" + +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "Kolom tidak dikenali: $key" + +#: html/Elements/SelectResultsPerPage:58 +msgid "Unlimited" +msgstr "Tidak terbatas" + +#: html/Search/Elements/SelectSearchesForObjects:63 +msgid "Unnamed search" +msgstr "Pencarian tidak dikenal" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "Tidak memiliki hak-hak istimewa" + +#: html/Admin/Elements/EditCustomFields:60 +msgid "Unselected Custom Fields" +msgstr "Kolom Kustom tidak dipilih" + +#: html/Admin/CustomFields/Objects.html:61 +msgid "Unselected objects" +msgstr "Objek tidak dipilih" + +#: lib/RT/Transaction_Overlay.pm:648 +msgid "Untaken" +msgstr "Belum diambil" + +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "Pencarian yang tidak memiliki judul" + +#: html/Search/Bulk.html:54 +msgid "Update" +msgstr "Perbaharui" + +#: html/Search/Bulk.html:178 +msgid "Update All" +msgstr "Perbahurui Semua" + +#: NOT FOUND IN SOURCE +msgid "Update ID" +msgstr "Perbaharui ID" + +#: html/Ticket/Update.html:133 +msgid "Update Ticket" +msgstr "Perbaharui Tiket" + +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 +msgid "Update Type" +msgstr "Perbaharui Tipe" + +#: NOT FOUND IN SOURCE +msgid "Update all these tickets at once" +msgstr "Perbaharui seluruh tiket ini pada saat yang sama" + +#: NOT FOUND IN SOURCE +msgid "Update email" +msgstr "Perbaharui email" + +#: html/Search/Results.html:80 +msgid "Update multiple tickets" +msgstr "Perbaharui beberapa tiket" + +#: NOT FOUND IN SOURCE +msgid "Update name" +msgstr "Perbaharui nama" + +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 +msgid "Update not recorded." +msgstr "Perbaharui tidak dicatat." + +#: html/Search/Bulk.html:99 +msgid "Update selected tickets" +msgstr "Perbaharui tiket yang terpilih" + +#: NOT FOUND IN SOURCE +msgid "Update signature" +msgstr "Perbaharui tanda tangan" + +#: html/Ticket/ModifyAll.html:84 +msgid "Update ticket" +msgstr "Perbaharui tiket" + +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Perbaharui tiket #%1" + +#: html/Ticket/Update.html:156 +#. ($TicketObj->id, $TicketObj->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "Perbaharui tiket #%1 (%2)" + +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 +msgid "Update type was neither correspondence nor comment." +msgstr " Memperbarui tipe baik korespondensi ataupun penjelasan." + +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 +msgid "Updated" +msgstr "Sudah diperbaharui" + +#: html/Tools/Offline.html:95 +msgid "Upload" +msgstr "Upload" + +#: lib/RT/CustomField_Overlay.pm:84 +msgid "Upload multiple files" +msgstr "Upload beberapa file" + +#: lib/RT/CustomField_Overlay.pm:79 +msgid "Upload multiple images" +msgstr "Upload beberapa gambar" + +#: lib/RT/CustomField_Overlay.pm:85 +msgid "Upload one file" +msgstr "Upload satu file" + +#: lib/RT/CustomField_Overlay.pm:80 +msgid "Upload one image" +msgstr "Upload satu gambar" + +#: lib/RT/CustomField_Overlay.pm:86 +msgid "Upload up to %1 files" +msgstr "Upload sampai %1 file" + +#: lib/RT/CustomField_Overlay.pm:81 +msgid "Upload up to %1 images" +msgstr "Upload sampai %1 gambar" + +#: html/Tools/Offline.html:95 +msgid "Upload your changes" +msgstr "Upload perubahan anda" + +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" +msgstr "Gunakan alat administrative RT yang lain" + +#: lib/RT/Ticket_Overlay.pm:496 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "Pengguna '%1' tidak dapat ditemukan." + +#: etc/initialdata:132 etc/initialdata:206 +msgid "User Defined" +msgstr "Pengguna didefinisikan" + +#: html/Admin/Elements/EditScrip:98 +msgid "User Defined conditions and actions" +msgstr "Pengguna mendefinisikan kondisi dan aksi" + +#: NOT FOUND IN SOURCE +msgid "User ID" +msgstr "ID Pengguna" + +#: 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 "Hak Pengguna" + +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "Pengguna akan ditanya mengenai tipe pembaharuan yang tidak dikenal untuk kolom kustom %1 untuk %2 objek #%3" + +#: html/Admin/Users/Modify.html:293 +#. ($msg) +msgid "User could not be created: %1" +msgstr "Pengguna tidak dapat dibuat: %1" + +#: lib/RT/User_Overlay.pm:331 +msgid "User created" +msgstr "Pengguna sudah dibuat" + +#: 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 "Pengguna mendefinisikan grup" + +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 +msgid "User loaded" +msgstr "Pengguna sudah dipanggil" + +#: NOT FOUND IN SOURCE +msgid "User view" +msgstr "Lihat Pengguna" + +#: html/Admin/Groups/index.html:99 +msgid "User-defined groups" +msgstr "Definisi Grup Pengguna" + +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 +msgid "Username" +msgstr "Nama Pengguna" + +#: 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:1086 +msgid "Users" +msgstr "Pengguna" + +#: html/Admin/Users/index.html:85 +msgid "Users matching search criteria" +msgstr "Pengguna sesuai dengan kriteria pencarian" + +#: lib/RT/Tickets_Overlay_SQL.pm:523 +msgid "Valid Query" +msgstr "Query yang valid" + +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 +msgid "Values" +msgstr "Nilai-nilai" + +#: lib/RT/Queue_Overlay.pm:108 +msgid "Watch" +msgstr "Amati" + +#: lib/RT/Queue_Overlay.pm:109 +msgid "WatchAsAdminCc" +msgstr "Amati Sebagai AdminCc" + +#: html/Admin/Elements/QueueTabs:63 +msgid "Watchers" +msgstr "Pengamat" + +#: NOT FOUND IN SOURCE +msgid "WebEncoding" +msgstr "WebEncoding" + +#: lib/RT/Date.pm:415 +msgid "Wed." +msgstr "Rabu." + +#: etc/initialdata:521 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "Kalau tiket sudah disetujui oleh semua pemberi persetujuan, tambahkan korespondesi ke tiket yang asli" + +#: etc/initialdata:485 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "Kalau tiket sudah disetujui oleh beberapa pemberi persetujuan, tambahkan korespondensi ke tiket yang asli" + +#: etc/initialdata:146 +msgid "When a ticket is created" +msgstr "Kalau tiket sudah dibuat" + +#: etc/initialdata:418 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "Kalau tiket persetujuan sudah dibuat, beritahukan pemilik dan AdminCc dari item yang sedang ditunggu persetujuannya" + +#: etc/initialdata:151 +msgid "When anything happens" +msgstr "Kalau sesuatu terjadi" + +#: etc/initialdata:199 +msgid "Whenever a ticket is resolved" +msgstr "Setiap saat tiket dapat diselesaikan" + +#: etc/initialdata:185 +msgid "Whenever a ticket's owner changes" +msgstr "Setiap saat pemilik tiket dapat diubah" + +#: etc/initialdata:178 etc/upgrade/3.1.17/content:16 +msgid "Whenever a ticket's priority changes" +msgstr "Setiap saat prioritas tiket dapat diubah" + +#: etc/initialdata:193 +msgid "Whenever a ticket's queue changes" +msgstr "Setiap saat antrian tiket dapat diubah" + +#: etc/initialdata:170 +msgid "Whenever a ticket's status changes" +msgstr "Setiap saat status tiket dapat diubah" + +#: etc/initialdata:207 +msgid "Whenever a user-defined condition occurs" +msgstr "Setiap saat kondisi yang didefinisikan oleh pengguna terjadi" + +#: etc/initialdata:164 +msgid "Whenever comments come in" +msgstr "Setiap saat komentar dapat masuk" + +#: etc/initialdata:157 +msgid "Whenever correspondence comes in" +msgstr "Setiap saat korespondensi dapat masuk" + +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 +msgid "Work" +msgstr "Bekerja" + +#: html/Search/Results.html:84 +msgid "Work offline" +msgstr "Bekerja offline" + +#: NOT FOUND IN SOURCE +msgid "WorkPhone" +msgstr "Telepon Kantor" + +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 +msgid "Worked" +msgstr "Sedang Bekerja" + +#: lib/RT/Ticket_Overlay.pm:3096 +msgid "You already own this ticket" +msgstr "Anda sudah memiliki tiket ini" + +#: html/autohandler:158 html/autohandler:166 +msgid "You are not an authorized user" +msgstr "Anda bukanlah pengguna yang sah" + +#: lib/RT/Ticket_Overlay.pm:2978 +msgid "You can only reassign tickets that you own or that are unowned" +msgstr "Anda hanya bisa menugaskan kembali tiket yang anda miliki atau yang belum anda miliki" + +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 +#. ($num, $queue) +msgid "You found %1 tickets in queue %2" +msgstr "Anda menemukan %1 tiket di dalam antrian ini %2" + +#: html/NoAuth/Logout.html:52 +msgid "You have been logged out of RT." +msgstr "Anda sudah log out dari RT." + +#: html/SelfService/Display.html:109 +msgid "You have no permission to create tickets in that queue." +msgstr "Anda tidak memiliki izin untuk membuat tiket di dalam antrian tersebut." + +#: lib/RT/Ticket_Overlay.pm:1964 +msgid "You may not create requests in that queue." +msgstr "Anda mungkin tidak akan membuat permintaan di dalam antrian ini." + +#: html/NoAuth/Logout.html:56 +msgid "You're welcome to login again" +msgstr "Anda dapat login kembali" + +#: etc/initialdata:502 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "Permintaan anda sudah disetujui oleh. Persetujuan yang lain mungkin masih ditunda." + +#: etc/initialdata:540 +msgid "Your request has been approved." +msgstr "Permintaan anda sudah disetujui." + +#: etc/initialdata:445 +msgid "Your request was rejected." +msgstr "Permintaan anda sudah ditolak." + +#: html/autohandler:193 +msgid "Your username or password is incorrect" +msgstr "Nama pengguna dan sandi anda tidak sama" + +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 +msgid "Zip" +msgstr "Zip" + +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" +msgstr "mengijinkan pembuatan pencarian yang disimpan" + +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" +msgstr "mengijinkan memanggil pencarian yang disimpan" + +#: html/User/Elements/DelegateRights:80 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "sudah diberikan ke %1" + +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "Milik" + +#: html/SelfService/Closed.html:49 +msgid "closed" +msgstr "sudah ditutup" + +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 +msgid "contains" +msgstr "berisi" + +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 +msgid "days" +msgstr "hari" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "deleted" +msgstr "sudah dihapus" + +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "Bukan milik" + +#: html/Search/Elements/PickBasics:61 +msgid "does not match" +msgstr "tidak sama" + +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 +msgid "doesn't contain" +msgstr "tidak berisi" + +#: NOT FOUND IN SOURCE +msgid "email address" +msgstr "alamat email" + +#: html/Elements/SelectEqualityOperator:59 +msgid "equal to" +msgstr "sama dengan" + +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "kesalahan: tidak dapat dipindahkan ke bawah" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "kesalahan: tidak dapat dipindahkan ke kiri" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "kesalahan: tidak dapat dipindahkan ke atas" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "kesalahan: tidak ada apapun yang dapat dihapus" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "kesalahan: tidak ada apapun yang dapat dipindahkan" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "kesalahan: tidak ada apapun yang dapat dihubungkan" + +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 +msgid "greater than" +msgstr "lebih dari" + +#: lib/RT/Group_Overlay.pm:222 +#. ($self->Name) +msgid "group '%1'" +msgstr "grup '%1'" + +#: lib/RT/Date.pm:338 +msgid "hours" +msgstr "jam" + +#: 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:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 +msgid "is" +msgstr "adalah" + +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 +msgid "isn't" +msgstr "tidak" + +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 +msgid "less than" +msgstr "kurang dari" + +#: html/Search/Elements/PickBasics:60 +msgid "matches" +msgstr "sama" + +#: lib/RT/Date.pm:334 +msgid "min" +msgstr "mnt" + +#: html/Ticket/Update.html:64 +msgid "minutes" +msgstr "menit" + +#: NOT FOUND IN SOURCE +msgid "modifications\\n\\n" +msgstr "perubahan\\n\\n" + +#: lib/RT/Date.pm:350 +msgid "months" +msgstr "bulan" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "new" +msgstr "baru" + +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 +msgid "no name" +msgstr "tidak ada nama" + +#: html/Admin/Elements/EditScrips:64 +msgid "no value" +msgstr "tidak ada nilai" + +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 +msgid "none" +msgstr "tidak satupun" + +#: html/Elements/SelectEqualityOperator:59 +msgid "not equal to" +msgstr "tidak sama dengan" + +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 +msgid "open" +msgstr "buka" + +#: lib/RT/Group_Overlay.pm:227 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "grup pribadi '%1' untuk pengguna '%2'" + +#: lib/RT/Group_Overlay.pm:235 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "antrian %1 %2" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "rejected" +msgstr "sudah ditolak" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "resolved" +msgstr "sudah diselesaikan" + +#: lib/RT/Date.pm:330 +msgid "sec" +msgstr "dtk" + +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "tampilkan tab konfigurasi" + +#: html/Search/Results.html:82 +msgid "spreadsheet" +msgstr "lembar kerja" + +#: lib/RT/Queue_Overlay.pm:85 +msgid "stalled" +msgstr "alasan" + +#: lib/RT/Group_Overlay.pm:230 +#. ($self->Type) +msgid "system %1" +msgstr "sistem %1" + +#: lib/RT/Group_Overlay.pm:241 +#. ($self->Type) +msgid "system group '%1'" +msgstr "grup sistem '%1'" + +#: html/Elements/Error:66 html/SelfService/Error.html:63 +msgid "the calling component did not specify why" +msgstr "Pemanggilan komponent tidak menetapkan mengapa" + +#: lib/RT/Group_Overlay.pm:238 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "tiket #%1 %2" + +#: lib/RT/Group_Overlay.pm:244 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "grup yang belum dijelaskan %1" + +#: lib/RT/Group_Overlay.pm:219 +#. ($user->Object->Name) +msgid "user %1" +msgstr "pengguna %1" + +#: lib/RT/Date.pm:346 +msgid "weeks" +msgstr "minggu" + +#: lib/RT/Date.pm:354 +msgid "years" +msgstr "tahun" + diff --git a/rt/lib/RT/I18N/it.po b/rt/lib/RT/I18N/it.po index b0ac45438..95d8c18c1 100644 --- a/rt/lib/RT/I18N/it.po +++ b/rt/lib/RT/I18N/it.po @@ -1,9 +1,13 @@ msgid "" -msgstr ""modifications\\n" -"\\n" -" -"modifiche\\n" -"\\n" +msgstr "" +"Project-Id-Version: RT 3.4.1\n" +"POT-Creation-Date: 2002-05-02 11:36+0800\n" +"PO-Revision-Date: 2005-02-12 02:00+0800\n" +"Last-Translator: Angelo Turetta <aturetta@bestunion.it>\n" +"Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" #: NOT FOUND IN SOURCE msgid "#" @@ -13,60 +17,58 @@ msgstr "n°" msgid "#%1" msgstr "n°%1" -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "n°%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" msgstr "" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" -msgstr "" +msgstr "%1 n°%2" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +#: NOT FOUND IN SOURCE msgid "%1 %2 %3" msgstr "%1 %2 %3" -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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" +msgstr "%1 %3 %2 %7 %4:%5:%6" -#: lib/RT/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" -msgstr "%1 %2 aggiunto" +msgstr "Aggiunto %1 %2" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "%1 %2 fa" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%1 %2 cambiato in %3" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" @@ -76,111 +78,79 @@ msgstr "%1 %2 eliminato" msgid "%1 %2 of group %3" msgstr "%1 %2 del gruppo %3" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" msgstr "%1 %2 con il modello %3" -#: NOT FOUND IN SOURCE -msgid "%1 %2 הוסף" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 מקבוצה %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 נמחק" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 שונה ל %3" -msgstr "" - #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 questo ticket\\n" -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 פנייה זו\\n" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" -msgstr "" +msgstr "%1 (%2) da %3" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" -msgstr "" +msgstr "%1 (invariato)" #: NOT FOUND IN SOURCE msgid "%1 - %2 shown" -msgstr "Tickets da %1 a %2" +msgstr "Mostrati da %1 a %2" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" msgstr "%1 - Un parametro da passare a %2" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" -msgstr "%1 - Lo stato dell'output è stato aggiornato su STDOUT" +msgstr "%1 - Visualizza aggiornamenti dello stato su STDOUT" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Specificare l'azione che si vuole eseguire" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Specificare la condizione che si vuole utilizzare" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Specificare la ricerca che si vuole utilizzare" -#: NOT FOUND IN SOURCE -msgid "%1 - ×רגומנט להעביר ×ל %2" -msgstr "" - - $RT::VERSION, - '2004', - '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) $RT::VERSION, - '2004', + '2005', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 +#: html/Elements/Footer:58 #. ('»|«', $RT::VERSION, - '2004', + '2005', '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" -msgstr "%1 ScripAction caricato" +msgstr "ScripAction %1 caricato" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" -msgstr "%1 aggiunto(i) come valore di %2" +msgstr "%1 aggiunto come valore di %2" #: NOT FOUND IN SOURCE msgid "%1 aliases require a TicketId to work on" @@ -192,74 +162,74 @@ msgstr "gli alias %1 necessitano di un TicketId su cui lavorare" #: NOT FOUND IN SOURCE msgid "%1 aliases require a TicketId to work on (from %2) %3" -msgstr "gli alias %1 necessitano di un TicketId per funzionare con (dopo %2) %3" +msgstr "gli alias %1 necessitano di un TicketId per lavorare con (da %2) %3" -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($args{'Base'}) #. ($args{'Target'}) msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "%1 sembra essere un oggetto locale, ma è introvabile nel database" +msgstr "%1 sembra essere un oggetto locale, ma non è presente nel database" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" -msgstr "%1 per %2" +msgstr "%1 da %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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") msgid "%1 changed from %2 to %3" -msgstr "%1 cambiato(1) da %2 a %3" +msgstr "%1 cambiato da %2 a %3" -#: html/Search/Build.html:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" -msgstr "" +msgstr "copia di %1" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." -msgstr "%1 non può essere impostato a %2" +msgstr "%1 non può essere impostato a %2" #: NOT FOUND IN SOURCE msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 non ha potuto iniziare una transazione (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "%1 non ho potuto mettere lo stato a risolto. Il database RT può essere inconsistente." +msgstr "%1 non ho potuto mettere lo stato a risolto. Il database RT potrebbe essere corrotto." -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) msgid "%1 created" -msgstr "" +msgstr "creato %1" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) msgid "%1 deleted" -msgstr "" +msgstr "eliminato %1" -#: html/Elements/MyTickets:24 +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" -msgstr "" +msgstr "I %1 ticket a maggior priorità che ho in carico" #: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." -msgstr "I miei %1 tickets a più alta priorità che possiedo..." +msgstr "I %1 ticket a maggior priorità che ho in carico..." -#: html/Elements/MyTickets:26 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I requested..." -msgstr "I miei %1 tickets a più alta priorità che ho richiesto..." +msgstr "I %1 ticket a maggior priorità che ho richiesto..." -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "%1 è uno strumento per lavorare sui tickets da uno schedulatore esterno, come cron" +msgstr "%1 è uno strumento per agire sui ticket da uno schedulatore esterno, per esempio cron." -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 non è più un %2 per questa coda." @@ -268,8 +238,7 @@ msgstr "%1 non è più un %2 per questa coda." msgid "%1 is no longer a %2 for this ticket." msgstr "%1 non è più un %2 per questo ticket." -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a value for custom field %2" msgstr "%1 non è più un valore per il campo personalizzato %2" @@ -277,11 +246,7 @@ msgstr "%1 non è più un valore per il campo personalizzato %2" msgid "%1 isn't a valid Queue id." msgstr "%1 non è un identificativo di coda valido" -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -290,31 +255,23 @@ msgstr "" msgid "%1 min" msgstr "%1 min" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" -msgstr "" +msgstr "I %1 ticket più recenti non ancora assegnati" #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 non mostrato" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:827 msgid "%1 objects" -msgstr "" +msgstr "%1 oggetti" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" -msgstr "Diritti di %1" +msgstr "Diritti su %1" #: NOT FOUND IN SOURCE msgid "%1 succeeded\\n" @@ -332,81 +289,45 @@ msgstr "Tipo %1 sconosciuto per %2" msgid "%1 was created without a CurrentUser\\n" msgstr "%1 è stato creato senza un CurrentUser\\n" -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1 risolverà tutti i membri di un gruppo di ticket risolto." +msgstr "%1 risolverà tutti i membri di un gruppo di ticket risolto." #: NOT FOUND IN SOURCE msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." -msgstr "%1 bloccherà una BASE [locale] se dipende o è membro di una richeista linkata." - -#: NOT FOUND IN SOURCE -msgid "%1 הוסף כערך עבור %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 לפני %2 ימי×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 על ידי %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 פעולת-סקריפ נטענה" -msgstr "" +msgstr "%1 bloccherà una BASE [locale] se dipende da [o è membro di] una richiesta collegata." -#: NOT FOUND IN SOURCE -msgid "%1 שונה מ %2 ל %3" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:828 msgid "%1's %2 objects" -msgstr "" +msgstr "%2 oggetti di %1" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:829 msgid "%1's %2's %3 objects" -msgstr "" +msgstr "%3 oggetti di %2 di %1" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" -msgstr "" +msgstr "ricerche salvate di %1" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1: nessun allegato specificato" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' è uno stato non valido" @@ -417,283 +338,271 @@ msgstr "'%1' non è un'azione conosciuta. " #: NOT FOUND IN SOURCE msgid "(Check box to delete group member)" -msgstr "(Spunta la casella per cancellare il membro di un gruppo)" +msgstr "(spunta la casella per rimuovere un appartenente dal gruppo)" #: NOT FOUND IN SOURCE msgid "(Check box to delete scrip)" -msgstr "(Spunta la casella per cancellare uno scrip)" +msgstr "(spunta la casella per cancellare uno scrip)" -#: 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 +#: 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 "(Spunta la casella per cancellare)" +msgstr "(spunta la casella per cancellare)" #: NOT FOUND IN SOURCE msgid "(Check boxes to delete)" -msgstr "(Spunta la casella per cancellare)" +msgstr "(spunta le caselle per cancellare)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "" +msgstr "(i destinatari con la casella spuntata non ricevono la notifica)" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "" +msgstr "(solo i destinatari con la casella spuntata ricevono la notifica)" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(Inserire il numero di tickets o gli URL, separati da spazi)" +msgstr "(inserire i numeri o gli URL dei ticket, separati da spazi)" -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" -msgstr "" - -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: 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 "Se lasciato vuoto, valore di default : %1" +msgid "(If left blank, will default to %1)" +msgstr "(se non specificato usa: %1)" #: NOT FOUND IN SOURCE msgid "(No Value)" -msgstr "(Nessun Valore)" +msgstr "(nessun valore)" -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" -msgstr "Non ci sono campi personalizzati" +msgstr "(nessun campo personalizzato)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" -msgstr "(Nessun membro)" +msgstr "(nessun appartenente)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" -msgstr "(Nessuno Scrip)" +msgstr "(nessuno Scrip)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" -msgstr "Nessun modello" +msgstr "(nessun modello)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 msgid "(None)" -msgstr "" +msgstr "(nessuno)" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:88 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 "(Invia per copia nascosta questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" +msgstr "(invia copia silente di questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" #: 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 "(Invia per copia nascosta questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" +msgstr "(invia copia silente di questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierò</b> i destinatari dei successivi aggiornamenti.)" -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email amministrativi separati da virgole. Queste persone <b>riceveranno</b> i successivi aggiornamenti.)" +msgstr "(invia copia per conoscenza di questo aggiornamento ad una lista di indirizzi email amministrativi separati da virgole. Queste persone <b>riceveranno</b> i successivi aggiornamenti.)" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" +msgstr "(invia copia per conoscenza di questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" #: 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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" +msgstr "(invia copia per conoscenza di questo aggiornamento ad una lista di indirizzi email separati da virgole. Ciò <b>non cambierà</b> i destinatari dei successivi aggiornamenti.)" -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 "(Invia una copia di questo aggiornamento ad una lista di indirizzi email separati da virgole. Queste persone <b>riceveranno</b> i successivi aggiornamenti.)" +msgstr "(invia copia per conoscenza di questo aggiornamento ad una lista di indirizzi email separati da virgole. Queste persone <b>riceveranno</b> i successivi aggiornamenti.)" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "" +msgstr "(usa questi campi se si sceglie 'Definito dall'utente' come condizione o azione)" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(vuoto)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" -msgstr "(nessun nome)" - -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" +msgstr "(nessun nome in elenco)" #: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(nessun oggetto)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(nessun valore)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFieldValues:47 msgid "(no values)" -msgstr "" +msgstr "(nessun valore)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" -msgstr "(solo un ticket)" +msgstr "(un solo ticket)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(in attesa di approvazione)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" -msgstr "" +msgstr "(in attesa di un'altra Raccolta)" #: NOT FOUND IN SOURCE -msgid "(pending other tickets)" -msgstr "(in attea di altri tickets)" +msgid "(pending other ticket)" +msgstr "(in attesa di altri ticket)" #: NOT FOUND IN SOURCE msgid "(requestor's group)" msgstr "(gruppo del richiedente)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(richiesto)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(senza titolo)" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." -msgstr "I miei 25 tickets che devo trattare con priorità più alta..." +msgstr "I 25 ticket con priorità più alta che ho in carico..." #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I requested..." -msgstr "I miei 25 tickets che hor ichiesto con priorità più alta..." +msgstr "I 25 ticket con priorità più alta da me richiesti..." -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" -msgstr "<% $Ticket->Status%>" +msgstr "" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"Crea un ticket in\"> %1" -#: NOT FOUND IN SOURCE -msgid "??????" -msgstr "" - #: etc/initialdata:218 msgid "A blank template" msgstr "Un modello vuoto" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "" + #: NOT FOUND IN SOURCE msgid "ACE Deleted" -msgstr "ACE Eliminata" +msgstr "ACE eliminata" #: NOT FOUND IN SOURCE msgid "ACE Loaded" -msgstr "ACE Caricata" +msgstr "ACE caricata" #: NOT FOUND IN SOURCE msgid "ACE could not be deleted" -msgstr "l'ACE non è stato possibile elimanarla" +msgstr "impossibile eliminare l'ACE" #: NOT FOUND IN SOURCE msgid "ACE could not be found" -msgstr "l'ACE non è stato possibile trovarla" +msgstr "impossibile trovare l'ACE" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "ACE non trovata" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "Le ACE possono essere solo create e cancellate." +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Interruzione per evitare modifiche di ticket involontarie.\\n" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" -msgstr "A proposito" +msgstr "Informazioni personali" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "Controllo di Accesso" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "Azione" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Azione %1 non trovata" -#: bin/rt-crontool:119 +#: NOT FOUND IN SOURCE msgid "Action committed." msgstr "Azione eseguita." -#: bin/rt-crontool:115 +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "Azione eseguita.\\n" + +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "Azione preparata..." -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" -msgstr "" +msgstr "Aggiungi" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" -msgstr "Aggiungi AdminCC" +msgstr "Aggiungi AdminCc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" -msgstr "Aggiungi CC" +msgstr "Aggiungi Cc" + +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "Aggiungi colonne" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" -msgstr "" +msgstr "Aggiungi criterio" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" -msgstr "Aggiungi Altri Files" +msgstr "Aggiungi altri file" #: NOT FOUND IN SOURCE msgid "Add Next State" -msgstr "Aggiungi lo Stato Sucessivo" +msgstr "Aggiungi prossimo stato" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" -msgstr "Aggiungi il Richiedente" +msgstr "Aggiungi il richiedente" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" -msgstr "Aggiungi un Valore" - -#: 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 "" +msgstr "Aggiungi un valore" #: NOT FOUND IN SOURCE msgid "Add a keyword selection to this queue" @@ -707,51 +616,55 @@ msgstr "Aggiungi un nuovo scrip globale" msgid "Add a scrip to this queue" msgstr "Aggiungi uno scrip a questa coda" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" msgstr "Aggiungi uno scrip da applicare a tutte le code" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" -msgstr "" +msgstr "Aggiungi criteri addizionali" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" -msgstr "Agiungere commenti o repliche ai tickets selezionati" +msgstr "Aggiungere commenti o repliche ai ticket selezionati" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" -msgstr "Aggiungi membri" +msgstr "Aggiungi appartenenti" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "Aggiungi nuovi osservatori" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "Aggiungi, cancella o modifica il valore dei campi personalizzati per gli oggetti" + #: NOT FOUND IN SOURCE msgid "AddNextState" -msgstr "AggiungereStatoSuccessivo" +msgstr "AggiunguProssimoStato" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Aggiunto gruppo/utente come %1 per questa coda" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Aggiunto gruppo/utente come %1 per questo ticket" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" -msgstr "Inidirizzo1" +msgstr "Indirizzo1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "Indirizzo2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" -msgstr "Admin Cc" +msgstr "Cc amministrativo" #: etc/initialdata:295 msgid "Admin Comment" @@ -759,103 +672,99 @@ msgstr "Commento Amministrativo" #: etc/initialdata:274 msgid "Admin Correspondence" -msgstr "Corrispondenza Amministrativa " +msgstr "Corrispondenza Amministrativa" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" -msgstr "Amministra le code" +msgstr "Gestione delle code" #: NOT FOUND IN SOURCE msgid "Admin users" -msgstr "Amministra gli Utenti" +msgstr "Gestione degli utenti" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" -msgstr "configurazione Amministratore/Globale" +msgstr "Amministra/Configurazione globale" #: NOT FOUND IN SOURCE msgid "Admin/Groups" -msgstr "Amministra/Gruppi" +msgstr "Gestione/Gruppi" #: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" -msgstr "Amministra/Code/Base" +msgstr "Gestione/Code/Base" #: NOT FOUND IN SOURCE msgid "AdminAllPersonalGroups" -msgstr "AmministraTuttiIGruppiPersonali" +msgstr "GestisciTuttiGruppiPersonali" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "AdminCc" #: NOT FOUND IN SOURCE msgid "AdminComment" -msgstr "CommentoAmministratore" +msgstr "GestisciCommenti" #: NOT FOUND IN SOURCE msgid "AdminCorrespondence" -msgstr "CorrispondenzaAmministratore" +msgstr "GestisciCorrispondenza" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:101 msgid "AdminCustomField" -msgstr "" +msgstr "GestisciCampoPers." -#: lib/RT/Queue_Overlay.pm:73 +#: NOT FOUND IN SOURCE msgid "AdminCustomFields" -msgstr "AmministraCampiPersonalizzati" +msgstr "GestisciCampiPers." -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" -msgstr "AmministraGruppi" +msgstr "GestisciGruppo" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" -msgstr "AmministraAppartenenzaGruppi" +msgstr "GestisciAppartenenzaGruppo" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" -msgstr "AmministraPropriGruppiPersonali" +msgstr "GestisciGruppiPersonali" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" -msgstr "AmministraCode" +msgstr "GestisciCoda" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" -msgstr "AmministraUtenti" +msgstr "GestisciUtenti" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" -msgstr "Cc Amministrativa" +msgstr "AdminCc" #: NOT FOUND IN SOURCE msgid "Admins" msgstr "Amministratori" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" -msgstr "" +msgstr "Avanzata" #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Ricerca avanzata" -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "" - -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" -msgstr "Dopo" +msgstr "dopo il" #: NOT FOUND IN SOURCE msgid "Age" msgstr "Età" -#: NOT FOUND IN SOURCE -msgid "Alias" -msgstr "" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "Aggregatore" #: NOT FOUND IN SOURCE msgid "Alias for" @@ -863,53 +772,53 @@ msgstr "Alias per" #: etc/initialdata:363 msgid "All Approvals Passed" -msgstr "" +msgstr "Ottenute tutte le approvazioni" #: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Tutti i campi personalizzati" -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "Tutte le code" #: NOT FOUND IN SOURCE msgid "Always sends a message to the requestors independent of message sender" -msgstr "Invia sempre un messaggio al richiedente inipendentemente dal mittente" +msgstr "Invia comunque un messaggio al richiedente, anche se è lui stesso il mittente" -#: NOT FOUND IN SOURCE -msgid "Applies to" +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" msgstr "" -#: html/Search/Edit.html:42 +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 +msgid "Applies to" +msgstr "Si applica a" + +#: html/Search/Edit.html:64 msgid "Apply" -msgstr "" +msgstr "Applica" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" -msgstr "" +msgstr "Applica modifiche" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "Approvazione" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "Approvazione n°%1: %2" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Approvazione n°%1: Note non registrate a causa di un errore di sistema" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Approvazione n°%1: Note registrate" @@ -920,25 +829,25 @@ msgstr "Dettagli dell'approvazione" #: etc/initialdata:351 msgid "Approval Passed" -msgstr "" +msgstr "Approvazione ottenuta" #: etc/initialdata:374 msgid "Approval Rejected" -msgstr "" +msgstr "Approvazione rifiutata" #: NOT FOUND IN SOURCE msgid "Approval diagram" msgstr "Diagramma dell'approvazione" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" -msgstr "Approvare" +msgstr "Approva" #: etc/initialdata:504 msgid "Approver's notes: %1" msgstr "Note dell'approvatore: %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "Apr." @@ -946,72 +855,52 @@ msgstr "Apr." msgid "April" msgstr "Aprile" -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" -msgstr "Ascendente" +msgstr "Crescente" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "Assign and remove custom fields" -msgstr "" +msgstr "Assegna e rimuovi campi personalizzati" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "AssignCustomFields" -msgstr "" +msgstr "AssegnaCampiPers." -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" -msgstr "Allegato" +msgstr "Allega" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" -msgstr "Allegare un file" +msgstr "Allega un file" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "File allegato" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 #. ($Attachment) msgid "Attachment '%1' could not be loaded" -msgstr "L'allegato '%1' non può essere caricato" +msgstr "Impossibile caricare l'allegato '%1'" -#: lib/RT/Transaction_Overlay.pm:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "Allegato creato" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "Nome file dell'allegato" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "Allegati" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" -msgstr "" +msgstr "Attributo cancellato" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "Ago." @@ -1021,7 +910,7 @@ msgstr "Agosto" #: NOT FOUND IN SOURCE msgid "AuthSystem" -msgstr "AuthSystem" +msgstr "SistemaAutorizzazioni" #: etc/initialdata:221 msgid "Autoreply" @@ -1035,17 +924,13 @@ msgstr "Risposta automatica ai richiedenti" msgid "AutoreplyToRequestors" msgstr "RispostaAutomaticaAiRichiedenti" -#: html/Search/Elements/EditFormat:4 -msgid "Available Columns" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" -msgstr "Firma PGP non valida: %1\\n" +msgstr "Firma PGP invalida: %1\\n" #: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" -msgstr "Id di allegato errato. Impossibile trovare l'allegato '%1'\\n" +msgstr "Identificativo allegato errato. Impossibile trovare l'allegato '%1'\\n" #: NOT FOUND IN SOURCE msgid "Bad data in %1" @@ -1055,188 +940,181 @@ msgstr "Dati incorretti in %1" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Numero di transazione incorretto per l'allegato. %1 dovrebbe essere %2\\n" -#: 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 +#: 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 "Essenziale" +msgstr "Dati base" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" -msgstr "Assicurarsi di salvare le modifiche" +msgstr "Se hai aggiornato qualche impostazione, assicurati di premere" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" -msgstr "Prima" +msgstr "prima del" #: NOT FOUND IN SOURCE msgid "Begin Approval" -msgstr "Inizio dell'approvazione" +msgstr "Inizia approvazione" + +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" +msgstr "Logo Best Practical Solutions, LLC" #: NOT FOUND IN SOURCE msgid "Binary" -msgstr "" +msgstr "Binario" #: etc/initialdata:217 msgid "Blank" msgstr "Vuoto" +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "Grassetto" + #: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" -msgstr "URL predefinito per questa ricerca" +msgstr "URL assoluto per questa ricerca" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" -msgstr "" +msgstr "Link assoluto" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" -msgstr "Intestazioni brevi" +msgstr "Intestazione breve" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" -msgstr "Modifica di massa dei tickets" +msgstr "Modifica di ticket in blocco" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "Gli utenti di sistema non possono essere modificati" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" -msgstr "Il gruppo/utente può vedere questa coda" +msgstr "Può il gruppo/utente vedere questa coda" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "Impossibile aggiungere un valore di campo personalizzato senza un nome" -#: html/Search/Build.html:694 +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" +msgstr "Impossibile trovare una classe collection per '%1'" + +#: html/Search/Build.html:761 msgid "Can't find a saved search to work with" -msgstr "" +msgstr "Impossibile trovare una ricerca salvata su cui lavorare" -#: lib/RT/Link_Overlay.pm:126 +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "Non è possibile collegare un ticket a se stesso" -#: lib/RT/Ticket_Overlay.pm:2716 +#: NOT FOUND IN SOURCE msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "Impossibile unire un ticket ad un ticket già unito. Non dovrebbe mai comparire questo errore" +msgstr "Impossibile unire un ticket ad un ticket già unito. Questo errore non dovrebbe mai verificarsi" -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" -msgstr "" +msgstr "Impossibile salvare questa ricerca" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "Impossibile specificare sia la base che il target" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "Impossibile creare l'utente: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "Cc" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" -msgstr "Cambiare la passwrd" +msgstr "Cambia la password" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:100 msgid "Check All" -msgstr "" +msgstr "Spunta tutte le caselle" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" -msgstr "Spunta la casella per eliminare" +msgstr "Spunta la casella per cancellare" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "Spunta la casella per revocare i diritti" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" -msgstr "Figli" +msgstr "Derivati" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "Città" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:102 msgid "Clear All" -msgstr "" +msgstr "Azzera" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "Chiuso" -#: html/SelfService/Closed.html:24 +#: NOT FOUND IN SOURCE msgid "Closed Tickets" -msgstr "Tickets Chiusi" +msgstr "Ticket chiusi" #: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Richieste chiuse" -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" -msgstr "Tickets chiusi" - -#: NOT FOUND IN SOURCE -msgid "Code" -msgstr "" +msgstr "Ticket chiusi" #: NOT FOUND IN SOURCE msgid "Command not understood!\\n" -msgstr "Comando non riconosciuto! \\n" +msgstr "Comando non riconosciuto!\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "Commento" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" -msgstr "Inidirizzo di Commento" +msgstr "Inidirizzo per i commenti" #: NOT FOUND IN SOURCE msgid "Comment not recorded" msgstr "Commento non registrato" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" -msgstr "Commento sui tickets" +msgstr "Aggiunta di commenti ai ticket" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" -msgstr "CommentoSuiTickets" +msgstr "AggiungiCommentiAlTicket" #: NOT FOUND IN SOURCE msgid "Comments" msgstr "Commenti" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" -msgstr "Commenti (Non inviati ai richiedenti)" +msgstr "Commenti (non inviati ai richiedenti)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "Commenti (non inviati ai richiedenti)" @@ -1244,41 +1122,41 @@ msgstr "Commenti (non inviati ai richiedenti)" msgid "Comments about %1" msgstr "Commenti su %1" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "Commenti su questo utente" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" -msgstr "Commenti aggiunti" +msgstr "Aggiunto commento" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" -msgstr "tr(Commit Stubbed)" +msgstr "" #: NOT FOUND IN SOURCE msgid "Compile Restrictions" msgstr "Restrizioni di compilazione" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "Condizione" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." -msgstr "La condizione soddisfa..." +msgstr "La condizione è soddisfatta..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "Condizione non trovata" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "Configurazione" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" -msgstr "Confermare" +msgstr "Conferma" #: NOT FOUND IN SOURCE msgid "ContactInfoSystem" @@ -1286,23 +1164,23 @@ msgstr "ContactInfoSystem" #: NOT FOUND IN SOURCE msgid "Contacted date '%1' could not be parsed" -msgstr "La data di contatto '%1' non può essere analizzata" +msgstr "Impossibile interpretare la data di contatto '%1'" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "Contenuto" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "" #: NOT FOUND IN SOURCE msgid "Coould not create group" -msgstr "Non è stato possibile creare il gruppo" +msgstr "Impossibile creare il gruppo" -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" -msgstr "" +msgstr "Copia" #: etc/initialdata:286 msgid "Correspondence" @@ -1312,45 +1190,59 @@ msgstr "Corrispondenza" msgid "Correspondence Address" msgstr "Inidirizzo di corrispondenza" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" -msgstr "Corrispondenza aggiunta" +msgstr "Aggiunta corrispondenza" #: NOT FOUND IN SOURCE msgid "Correspondence not recorded" msgstr "Corrispondenza non registrata" -#: lib/RT/Ticket_Overlay.pm:3471 +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. " -msgstr "Impossibile aggiungere un nuovo valore di campo personalizzato a questo ticket. " +msgstr "Impossibile aggiungere un nuovo valore di campo personalizzato al ticket. " #: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. %1 " -msgstr "Il valore di campo personalizzato non è stato possibile aggiungerlo. %1" +msgstr "Impossibile aggiungere un nuovo valore di campo personalizzato al ticket. %1 " + +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "Impossibile aggiungere un nuovo valore di campo personalizzato. " -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "Impossibile aggiungere un nuovo valore di campo personalizzato. %1 " + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " -msgstr "Impossibile cambiare il proprietario. " +msgstr "Impossibile cambiare l'incaricato. " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "Impossibile creare il campo personalizzato" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "Impossibile creare il campo personalizzato: %1" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "Impossibile creare il gruppo" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" -msgstr "Impossibile creare il modello : %1" +msgstr "Impossibile creare il modello: %1" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "Impossibile creare il ticket. Queue non impostata" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" msgstr "Impossibile creare l'utente" @@ -1366,11 +1258,11 @@ msgstr "Impossibile trovare il ticket numero %1" msgid "Could not find group %1." msgstr "Impossibile trovare il gruppo %1." -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "Impossibile trovare o creare questo utente" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "Impossibile trovare questo gruppo/utente" @@ -1378,45 +1270,54 @@ msgstr "Impossibile trovare questo gruppo/utente" msgid "Could not find user %1." msgstr "Impossibile trovare l'utente %1." -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:69 msgid "Could not load CustomField %1" -msgstr "" +msgstr "Impossibile caricare il campo personalizzato %1" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "Impossibile caricare questo gruppo" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "Impossibile caricare l'oggetto per %1" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "Impossibile caricare un attributo della ricerca" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Impossibile rendere questo gruppo/utente un %1 per questa coda" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Impossibile rendere questo gruppo/utente un %1 per questo ticket" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" -msgstr "Impossibile eliminare questo gruppo/utente come un %1 per questa coda" +msgstr "Impossibile rimuovere questo gruppo/utente come un %1 per questa coda" #: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" -msgstr "Impossibile eliminare questo gruppo/utente come un %1 per questo ticket" +msgstr "Impossibile rimuovere questo gruppo/utente come un %1 per questo ticket" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" -msgstr "" +msgstr "Impossibile impostare le informazioni dell'utente" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" -msgstr "Impossibile aggiungere un membro a questo gruppo" +msgstr "Impossibile aggiungere un appartenente al gruppo" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" -msgstr "Impossibile creare una transazione : %1" +msgstr "Impossibile creare una transazione: %1" #: NOT FOUND IN SOURCE msgid "Couldn't figure out what to do from gpg's reply\\n" @@ -1424,44 +1325,46 @@ msgstr "Impossibile capire che cosa fare con questa risposta gpg\\n" #: NOT FOUND IN SOURCE msgid "Couldn't find group\\n" -msgstr "Gruppo introvabile\\n" +msgstr "Impossibile trovare il gruppo\\n" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" -msgstr "Riga introvabile" +msgstr "Impossibile trovare la riga" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" -msgstr "Gruppo/utente introvabile" +msgstr "Impossibile trovare questo gruppo/utente" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" -msgstr "Valore introvabile" +msgstr "Impossibile trovare questo valore" #: NOT FOUND IN SOURCE msgid "Couldn't find that watcher" -msgstr "Osservatore introvabile" +msgstr "Impossibile trovare questo osservatore" #: NOT FOUND IN SOURCE msgid "Couldn't find user\\n" -msgstr "Utente introvabile\\n" +msgstr "Impossibile trovare l'utente\\n" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Impossibile caricare %1 dal database degli utenti.\\n" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" -msgstr "" +msgstr "Impossibile caricare la classe %1" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" -msgstr "" +msgstr "Impossibile caricare ilcampo personalizzato %1" #: NOT FOUND IN SOURCE msgid "Couldn't load KeywordSelects." -msgstr "KeywordSelects non è stato possibile caricarlo" +msgstr "Impossibile caricare KeywordSelects" #: NOT FOUND IN SOURCE msgid "Couldn't load RT config file '%1' %2" @@ -1471,25 +1374,26 @@ msgstr "Impossibile caricare il file di configurazione RT '%1' %2" msgid "Couldn't load Scrips." msgstr "Impossibile caricare gli Scrips" -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" msgstr "Impossibile caricare il gruppo %1" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" -msgstr "Impossibile caricare il link" +msgstr "Impossibile caricare il collegamento" -#: NOT FOUND IN SOURCE +#: 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 "" +msgstr "Impossibile caricare l'oggetto %1" -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" msgstr "Impossibile caricare la coda" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" msgstr "Impossibile caricare la coda %1" @@ -1506,61 +1410,59 @@ msgstr "Impossibile caricare il modello" msgid "Couldn't load that user (%1)" msgstr "Impossibile caricare questo utente (%1)" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Impossibile caricare il ticket '%1'" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" -msgstr "Stato" +msgstr "Nazione" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "Crea" #: etc/initialdata:135 msgid "Create Tickets" -msgstr "Crea tickets" - -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" +msgstr "Crea ticket" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "Crea un campo Personalizzato" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" -msgstr "Crea un campo Custom per la coda %1" +msgstr "Crea un campo personalizzato per la coda %1" -#: html/Admin/Global/CustomField.html:47 +#: NOT FOUND IN SOURCE msgid "Create a CustomField which applies to all queues" -msgstr "Crea un campo Personalizzato valido per tutte le code" +msgstr "Crea un campo personalizzato valido per tutte le code" #: NOT FOUND IN SOURCE msgid "Create a new Custom Field" -msgstr "Crea un nuovo campo Personalizzato" - -#: NOT FOUND IN SOURCE -msgid "Create a new article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create a new global Scrip" -msgstr "" +msgstr "Crea un nuovo campo personalizzato" #: NOT FOUND IN SOURCE msgid "Create a new global scrip" msgstr "Crea un nuovo scrip globale" -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "Crea un nuovo gruppo" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "Crea un nuovo gruppo personale" @@ -1576,223 +1478,206 @@ msgstr "Crea un nuovo scrip" msgid "Create a new template" msgstr "Crea un nuovo modello" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "Crea un nuovo ticket" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "Crea un nuovo utente" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "Crea una coda" #: NOT FOUND IN SOURCE msgid "Create a queue called" -msgstr "Crea una nuova coda chiamata" +msgstr "Crea una nuova coda di nome" #: NOT FOUND IN SOURCE msgid "Create a request" msgstr "Crea una richiesta" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Crea uno scrip per la coda %1" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "Crea un modello" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" -msgstr "Crea un ticket" +msgstr "Nuovo ticket" #: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1 / %2 / %3 " -msgstr "Eccezione durante la creazione: %1 / %2 / %3" +msgid "Create failed: %1 / %2 / %3 " +msgstr "Creazione fallita: %1 / %2 / %3" #: NOT FOUND IN SOURCE msgid "Create failed: %1/%2/%3" -msgstr "Eccezione durante la creazione: %1/%2/%3" +msgstr "Creazione fallita: %1/%2/%3" #: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" -msgstr "Creare nuovi tickets basati su questo modello di scrip" +msgstr "Creare nuovi ticket basati su questo modello di scrip" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" -msgstr "Crea un ticket" +msgstr "Crea il ticket" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" -msgstr "Crea dei tickets in questa coda" +msgstr "Crea nuovi ticket in questa coda" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "Crea, elimina e modifica campi personalizzati" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" msgstr "Crea, elimina e modifica le code" #: NOT FOUND IN SOURCE msgid "Create, delete and modify the members of any user's personal groups" -msgstr "Crea, elimina e modifica i membri dei gruppi personali di un qualunque utente" +msgstr "Crea, elimina e modifica gli appartenenti ai gruppi personali di un qualunque utente" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" -msgstr "Crea, elimina e modifica i membri dei gruppi personali " +msgstr "Crea, elimina e modifica gli appartenenti ai gruppi personali " -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "Crea, elimina e modifica gli utenti" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "CreaRichiestaSalvata" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "CreaTicket" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "Creato" -#: html/Admin/Elements/EditCustomField:87 -#. ($CustomFieldObj->Name()) -msgid "Created CustomField %1" -msgstr "Campo Personalizzato %1 creato" - #: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" +msgid "Created By" +msgstr "Creato da" -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "Campo personalizzato %1 creato" #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Modello %1 creato" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" -msgstr "" +msgstr "CreatoDa" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" -msgstr "Relazioni attuali" - -#: NOT FOUND IN SOURCE -msgid "Current Relationships" -msgstr "" +msgstr "Collegamenti attuali" -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "Scrips attuali" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" -msgstr "Membri attuali" +msgstr "Appartenenti attuali" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "Diritti attuali" #: NOT FOUND IN SOURCE msgid "Current search criteria" -msgstr "Criterio di ricerca corrente" +msgstr "Criterio di ricerca attuale" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "Osservatori attuali" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) +#: NOT FOUND IN SOURCE msgid "Custom Field #%1" -msgstr "Campo Personalizzato n°%1" +msgstr "Campo personalizzato n°%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" -msgstr "Campi Personalizzati" +msgstr "Campi personalizzati" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) msgid "Custom Fields for %1" -msgstr "" +msgstr "Campi personalizzati per %1" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "Programma di pulizia dell'azione personalizzata" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "Programma di preparazione dell'azione personalizzata" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "Condizione personalizzata" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: NOT FOUND IN SOURCE msgid "Custom field %1 %2 %3" msgstr "Campi personalizzati %1 %2 %3" -#: NOT FOUND IN SOURCE -msgid "Custom field %1 does not apply to this object" -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." -msgstr "Il campo personalizzato %1 ha un valore" +msgstr "Il campo personalizzato %1 ha un valore." -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." -msgstr "Il campo personalizzato %1 non ha valore" +msgstr "Il campo personalizzato %1 non ha valore." -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" -msgstr "Il campo personalizzato %1 è introvabile" +msgstr "Campo personalizzato %1 non trovato" -#: html/Admin/Elements/EditCustomFields:195 +#: NOT FOUND IN SOURCE msgid "Custom field deleted" -msgstr "Campo Personalizzato cancellato" +msgstr "Campo personalizzato cancellato" -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" -msgstr "Il campo personalizzato è introvabile" +msgstr "Campo personalizzato %1 non trovato" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" -msgstr "Il valore del campo personalizzato %1 non è stato possibile trovarlo per il campo personalizzato %2" +msgstr "Impossibile trovare il valore %1 per il campo personalizzato %2" #: NOT FOUND IN SOURCE msgid "Custom field value changed from %1 to %2" -msgstr "Il valore del campo personalizzato è stato modificato da %1 à %2" +msgstr "Valore del campo personalizzato cambiato da %1 a %2" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" -msgstr "Il valore del campo personalizzato non è stato possibile eliminarlo" +msgstr "Impossibile cancellare il valore del campo personalizzato" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" -msgstr "Il valore del campo personalizzato non è stato possibile trovarlo" +msgstr "Valore del campo personalizzato non trovato" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "Il valore del vampo personalizzato è stato eliminato" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "CampoPersonalizzato" @@ -1800,11 +1685,11 @@ msgstr "CampoPersonalizzato" msgid "Data error" msgstr "Errore nei dati" -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "Date" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "Dic." @@ -1820,13 +1705,13 @@ msgstr "Modello di default per la risposta automatica" msgid "Default Autoresponse template" msgstr "Modello di default per la risposta automatica" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" -msgstr "" +msgstr "Coda di default" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" -msgstr "" +msgstr "Richiedente di default" #: etc/initialdata:296 msgid "Default admin comment template" @@ -1844,104 +1729,112 @@ msgstr "Modello di default per la corrispondenza" msgid "Default transaction template" msgstr "Modello di default per la transazione" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: NOT FOUND IN SOURCE msgid "Default: %1/%2 changed from %3 to %4" -msgstr "Defaut: %1/%2 modificato da %3 à %4" +msgstr "Default: %1/%2 modificato da %3 a %4" -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "Delega i diritti" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." -msgstr "Delega dei diritti specifici che ti sono stati accordati" +msgstr "Delega diritti specifici tra quelli che ti sono stati accordati" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "DelegaDiritti" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "Delega" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" -msgstr "Elimina" +msgstr "Cancella" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" -msgstr "" +msgstr "Cancella modello" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" -msgstr "" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" +msgstr "Cancellazione fallita: %1" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" -msgstr "" +msgstr "Cancella gli scrips selezionati" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" -msgstr "Elimina dei tickets" +msgstr "Cancella ticket" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" -msgstr "EliminaTicket" +msgstr "CancellaTicket" -#: lib/RT/Transaction_Overlay.pm:162 +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "Ricerca cancellata" + +#: NOT FOUND IN SOURCE msgid "Deleting this object could break referential integrity" -msgstr "Eliminare quest'oggetto può interrompere l'integrità referenziale" +msgstr "La cancellazione di quest'oggetto può danneggiare l'integrità referenziale" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" -msgstr "Eliminare quest'oggetto interomperà l'integrità referenziale" +msgstr "La cancellazione di quest'oggetto danneggerebbe l'integrità referenziale" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" -msgstr "Eliminare quest'oggetto violerà l'integrità referenziale" +msgstr "La cancellazione di quest'oggetto violerebbe l'integrità referenziale" #: NOT FOUND IN SOURCE msgid "Deleting this object would violate referential integrity." -msgstr "Eliminare quest'oggetto violerà l'integrità referenziale" +msgstr "La cancellazione di quest'oggetto violerebbe l'integrità referenziale" #: NOT FOUND IN SOURCE msgid "Deleting this object would violate referential integrity. That's bad." -msgstr "Eliminare quest'oggetto violerà l'integrità referenziale. Malissimo!" +msgstr "La cancellazione di quest'oggetto violerebbe l'integrità referenziale. Ciò è male!" -#: html/Approvals/Elements/Approve:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" -msgstr "Negare" +msgstr "Nega" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" -msgstr "Usato come dipendenza da" +msgstr "È una dipendenza per" + +#: NOT FOUND IN SOURCE +msgid "DependedOnBy" +msgstr "DipendenzaPer" #: NOT FOUND IN SOURCE msgid "Dependencies: \\n" -msgstr "Dipendenze : \\n" +msgstr "Dipendenze: \\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" -msgstr "" +msgstr "Aggiunta dipendenza da parte di %1" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" -msgstr "" +msgstr "Cancellata dipendenza da parte di %1" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" -msgstr "" +msgstr "Aggiunta dipendenza da %1" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" -msgstr "" +msgstr "Cancellata dipendenza da %1" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "Dipende da" @@ -1949,15 +1842,15 @@ msgstr "Dipende da" msgid "DependsOn" msgstr "DipendeDa" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" -msgstr "Discendente" +msgstr "Decrescente" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" -msgstr "Descrivere il problema qui sotto" +msgstr "Descrivi il problema qui sotto" -#: 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 +#: 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:56 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 "Descrizione" @@ -1965,47 +1858,51 @@ msgstr "Descrizione" msgid "Details" msgstr "Dettagli" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" -msgstr "Mostra" +msgstr "Visualizza" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" -msgstr "Mostra la Lista Controllo Accessi" +msgstr "Visualizza la Lista Controllo Accessi (ACL)" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" -msgstr "" +msgstr "Visualizza colonne" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" -msgstr "Mostra i modelli di Scrips per questa coda" +msgstr "Visualizza i modelli di Scrips per questa coda" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" -msgstr "Mostra gli Scrips per questa coda" +msgstr "Visualizza gli Scrips per questa coda" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "Modalità visualizzazione" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" -msgstr "" +msgstr "Visualizza le ricerche salvate per questo gruppo" #: NOT FOUND IN SOURCE msgid "Display ticket #%1" -msgstr "Mostra il ticket n°%1" +msgstr "Visualizza il ticket n°%1" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "" +msgstr "Distribuito in accordo con la versione 2 della <a href=\"http://www.gnu.org/copyleft/gpl.html\">GNU GPL</a>." -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" -msgstr "Fare di tutto e non importa cosa" +msgstr "Fai di tutto e di più" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "Esegui la ricerca" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "Non aggiornare questa pagina." @@ -2013,25 +1910,21 @@ msgstr "Non aggiornare questa pagina." msgid "Don't show search results" msgstr "Non mostrare i risultati della ricerca" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "Download" -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 msgid "Download as a tab-delimited file" -msgstr "" +msgstr "Scarica come file separato da TAB" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" -msgstr "Termine" +msgstr "Scadenza" #: NOT FOUND IN SOURCE msgid "Due date '%1' could not be parsed" -msgstr "La data termine '%1' non è stata interpretata" +msgstr "Impossibile interpretare la data di scadenza '%1'" #: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" @@ -2043,30 +1936,38 @@ msgstr "Modifica" #: NOT FOUND IN SOURCE msgid "Edit Conditions" -msgstr "Modifica Condizioni" +msgstr "Modifica condizioni" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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 "Modifica i Campi Personalizzati per %1" +msgstr "Modifica i campi personalizzati per %1" + +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "Modifica i campi personalizzati per tutti i gruppi" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "Modifica i campi personalizzati per tutti gli utenti" + +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "Modifica i campi personalizzati per tutte le code" #: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" -msgstr "" +msgid "Edit Custom Fields for transactions on tickets in all queues" +msgstr "Modifica i campi personalizzati per le transazioni sui ticket in tutte le code" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" -msgstr "Modifica Relazioni" +msgstr "Modifica collegamenti" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Edit Relationships" -msgstr "" +msgstr "Modifica query" -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Modifica i modelli per la coda %1" @@ -2075,15 +1976,15 @@ msgstr "Modifica i modelli per la coda %1" msgid "Edit keywords" msgstr "Modifica parole chiave" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" -msgstr "" +msgstr "Modifica ricerche salvate per questo gruppo" #: NOT FOUND IN SOURCE msgid "Edit scrips" msgstr "Modifica scrips" -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "Modifca i modelli di sistema" @@ -2091,51 +1992,47 @@ msgstr "Modifca i modelli di sistema" msgid "Edit templates for %1" msgstr "Modifica i modelli per %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" -msgstr "" +msgstr "ModificaRicercheSalvate" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" -msgstr "Modifica la Configurazione per la coda %1" +msgstr "Modifica della configurazione per la coda %1" #: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" -msgstr "Modifica la Configurazione per l'utente %1" +msgstr "Modifica della configurazione per l'utente %1" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" -msgstr "Modifica il CampoPersonalizzato %1" +msgstr "Modifica del campo personalizzato %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" -msgstr "Modifica i membri per il gruppo %1" +msgstr "Modifica degli appartenenti al gruppo %1" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" -msgstr "Modifica i membri per il gruppo personale %1" +msgstr "Modifica degli appartenenti al gruppo personale %1" #: NOT FOUND IN SOURCE msgid "Editing template %1" -msgstr "Modifica il modello %1" +msgstr "Modifica del modello %1" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" -msgstr "Uno almeno tra base e target deve essere specificato" +msgstr "È necessario specificare base o target" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "Email" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "Inidirizzo email in uso" @@ -2145,163 +2042,197 @@ msgstr "IndirizzoEmail" #: NOT FOUND IN SOURCE msgid "EmailEncoding" -msgstr "EmailEncoding" +msgstr "CodificaEmail" -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "Abilitato (Togliere il segno di spunta disabilita questo campo personalizzato)" +msgstr "Abilitato (togliere il segno di spunta per disabilitare questo campo personalizzato)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 msgid "Enabled (Unchecking this box disables this group)" -msgstr "Abilitato (Togliere il segno di spunta disabilita questo gruppo)" +msgstr "Abilitato (togliere il segno di spunta per disabilitare questo gruppo)" -#: html/Admin/Queues/Modify.html:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Abilitato (Togliere il segno di spunta disabilita questa coda)" +msgstr "Abilitato (togliere il segno di spunta per disabilitare questa coda)" #: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" -msgstr "Campi Personalizzati Abilitati" +msgstr "Campi personalizzati abilitati" -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" -msgstr "Code Abilitate" +msgstr "Code abilitate" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "Stato %1 abilitato" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) msgid "Enabled status: %1" -msgstr "" +msgstr "Stato abilitato: %1" -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" -msgstr "Inserire valori multipli" +msgstr "Valori multipli" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "" +msgstr "Inserire, separati da spazio, gli oggetti (o URI di oggetti) da collegare." -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" -msgstr "Inserire un valore" +msgstr "Valore singolo" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "" +msgstr "Inserire, separati da spazio, le code (o URI di code) da collegare." -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" +msgstr "Inserire, separati da spazio, i ticket (o URI di ticket) da collegare." -#: html/Search/Bulk.html:142 +#: NOT FOUND IN SOURCE msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." -msgstr "Inserire tickets o URI di tickets da collegare. Separare più valori con spazi." +msgstr "Inserire, separati da spazio, i ticket (o URI di ticket) da collegare." -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:66 msgid "Enter up to %1 values" -msgstr "" +msgstr "Inserimento di un massimo di %1 valori" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "Errore" #: NOT FOUND IN SOURCE msgid "Error adding watcher" -msgstr "Errore cercando di aggiungere un osservatore" +msgstr "Errore durante l'aggiunta di un osservatore" -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" -msgstr "Errore nei parametri di Queue->AddWatcher" +msgstr "Errore nei parametri passati a Queue->AddWatcher" #: NOT FOUND IN SOURCE msgid "Error in parameters to Queue->DelWatcher" -msgstr "Errore nei parametri di Queue->DelWatcher" +msgstr "Errore nei parametri passati a Queue->DelWatcher" -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "" +msgstr "Errore nei parametri passati a Queue->DeleteWatcher" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" -msgstr "Errore nei parametri di Ticket->AddWatcher" +msgstr "Errore nei parametri passati a Ticket->AddWatcher" #: NOT FOUND IN SOURCE msgid "Error in parameters to Ticket->DelWatcher" -msgstr "Errore nei parametri di Ticket->DelWatcher" +msgstr "Errore nei parametri passati a Ticket->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "" +msgstr "Errore nei parametri passati a Ticket->DeleteWatcher" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" -msgstr "" +msgstr "Propaga ticket" -#: NOT FOUND IN SOURCE -msgid "Estimate" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" -msgstr "" +msgstr "Stima" #: etc/initialdata:20 msgid "Everyone" msgstr "Chiunque" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "Esempio:" +#: NOT FOUND IN SOURCE +msgid "ExtendedStatus" +msgstr "StatoAggiuntivo" + +#: NOT FOUND IN SOURCE +msgid "QueueName" +msgstr "NomeCoda" + +#: NOT FOUND IN SOURCE +msgid "OwnerName" +msgstr "NomeIncaricato" + +#: NOT FOUND IN SOURCE +msgid "TimeEstimated" +msgstr "TempoStimato" + +#: NOT FOUND IN SOURCE +msgid "CreatedBy" +msgstr "CreatoDa" + +#: NOT FOUND IN SOURCE +msgid "StartsRelative" +msgstr "TempoDaInizioPrevisto" + +#: NOT FOUND IN SOURCE +msgid "StartedRelative" +msgstr "TempoDaInizio" + +#: NOT FOUND IN SOURCE +msgid "CreatedRelative" +msgstr "TempoDaCreazione" + +#: NOT FOUND IN SOURCE +msgid "LastUpdatedRelative" +msgstr "TempoDaUltimoAggiornamento" + +#: NOT FOUND IN SOURCE +msgid "ToldRelative" +msgstr "TempoDaUltimoContattoRichiedente" + +#: NOT FOUND IN SOURCE +msgid "DueRelative" +msgstr "TempoDaScadenza" + +#: NOT FOUND IN SOURCE +msgid "ResolvedRelative" +msgstr "TempoDaRisoluzione" + #: NOT FOUND IN SOURCE msgid "ExternalAuthId" -msgstr "ExternalAuthId" +msgstr "IdAutorizEsterno" #: NOT FOUND IN SOURCE msgid "ExternalContactInfoId" -msgstr "ExternalContactInfoId" +msgstr "IdContattoEsterno" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "Informazioni aggiuntive" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" -msgstr "" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" +msgstr "Impossibile creare un attributo della ricerca" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "Impossibile trovare il pseudogruppo 'Privilegiato' di utenti." +msgstr "Impossibile trovare il pseudogruppo di utenti 'Privilegiato'." -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "Impossibile trovare il pseudogruppo 'Non Privilegiato' di utenti." +msgstr "Impossibile trovare il pseudogruppo di utenti 'Non Privilegiato'." -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" -msgstr "Errore nel caricare il modulo %1. (%2)" +msgstr "Errore nel caricamento del modulo %1. (%2)" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "Impossibile caricare un oggetto per %1" + +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "Feb." @@ -2309,150 +2240,170 @@ msgstr "Feb." msgid "February" msgstr "Febbraio" -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" -msgstr "" +msgstr "Nome file" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:69 msgid "Fill in multiple text areas" -msgstr "" +msgstr "Testi multipli" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:74 +msgid "Fill in multiple wikitext areas" +msgstr "Testi WIKI multipli" + +#: lib/RT/CustomField_Overlay.pm:70 msgid "Fill in one text area" -msgstr "" +msgstr "Testo singolo" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +msgstr "Testo WIKI singolo" + +#: lib/RT/CustomField_Overlay.pm:71 msgid "Fill in up to %1 text areas" -msgstr "" +msgstr "Testi multipli (max. %1)" + +#: lib/RT/CustomField_Overlay.pm:76 +msgid "Fill in up to %1 wikitext areas" +msgstr "Testi WIKI multipli (max. %1)" #: NOT FOUND IN SOURCE msgid "Fin" msgstr "Fin" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" -msgstr "Priorità Finale" +msgstr "Priorità finale" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" -msgstr "PrioritàFinale" +msgstr "PrioritaFinale" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: NOT FOUND IN SOURCE msgid "Find group whose" -msgstr "Cerca il gruppo che" +msgstr "Cerca il gruppo in cui" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 msgid "Find groups whose" -msgstr "" +msgstr "Cerca i gruppi in cui" #: NOT FOUND IN SOURCE msgid "Find new/open tickets" -msgstr "Cerca tickets nuovi/aperti" +msgstr "Cerca ticket nuovi/aperti" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" -msgstr "Cerca le persone che" +msgstr "Cerca le persone in cui" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" -msgstr "Cerca tickets" +msgstr "Ricerca ticket" #: NOT FOUND IN SOURCE msgid "Finish Approval" -msgstr "Approvazione Finale" +msgstr "Completa approvazione" -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "Primo" #: NOT FOUND IN SOURCE msgid "First page" -msgstr "Prima Pagina" +msgstr "Prima pagina" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:766 msgid "Foo Bar Baz" -msgstr "Foo Bar Baz" +msgstr "Tizio Caio Sempronio" -#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" -msgstr "Foo!" +msgstr "Tizio!" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" -msgstr "Forza il cambiamento" +msgstr "Forza la modifica" + +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "Opzioni colonna" -#: html/Search/Results.html:70 +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "Trovati %quant(%1,ticket)" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "Trovato Oggetto" #: NOT FOUND IN SOURCE msgid "Freeform" -msgstr "" +msgstr "Testo libero" #: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FreeformContactInfo" -#: lib/RT/CustomField_Overlay.pm:37 +#: NOT FOUND IN SOURCE msgid "FreeformMultiple" msgstr "FreeformMultiple" -#: lib/RT/CustomField_Overlay.pm:36 +#: NOT FOUND IN SOURCE msgid "FreeformSingle" msgstr "FreeformSingle" -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." -msgstr "Gio." +msgstr "Ven." -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" -msgstr "Intestazioni Estese" +msgstr "Intestazione completa" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" -msgstr "" +msgstr "Carica da file un modello compilato" #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" -msgstr "Sto prendendo l'utente corrente da una firma pgp\\n" +msgstr "Sto individuando l'utente corrente da una firma pgp\\n" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "Assegnato a %1" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "Globale" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:55 msgid "Global Custom Fields" -msgstr "" +msgstr "Campi personalizzati globali" #: NOT FOUND IN SOURCE msgid "Global Keyword Selections" -msgstr "Selezione Globale delle Parole Chiave" +msgstr "Selezione globale delle parole chiave" #: NOT FOUND IN SOURCE msgid "Global Scrips" -msgstr "Scrips Globali" +msgstr "Scrips globali" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "Configurazione globale campi personalizzati" + +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Modello globale: %1" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" -msgstr "" +msgstr "Vai" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "Vai!" @@ -2464,7 +2415,7 @@ msgstr "Firma pgp valida da %1\\n" msgid "Goto page" msgstr "Vai a pagina" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "Vai al ticket" @@ -2472,7 +2423,7 @@ msgstr "Vai al ticket" msgid "Grand" msgstr "Grand" -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "Gruppo" @@ -2480,32 +2431,32 @@ msgstr "Gruppo" msgid "Group %1 %2: %3" msgstr "Gruppo %1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "Diritti di Gruppo" +msgstr "Diritti di gruppo" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" -msgstr "Il gruppo ha già il membro" +msgstr "Appartiene già al gruppo" #: NOT FOUND IN SOURCE msgid "Group could not be created." -msgstr "Il gruppo non può essere creato." +msgstr "Impossibile creare il gruppo." -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" -msgstr "Il gruppo non può essere creato: %1" +msgstr "Impossibile creare il gruppo: %1" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "Gruppo creato" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" -msgstr "Il gruppo non ho questo membro" +msgstr "Non appartiene al gruppo" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "Gruppo non trovato" @@ -2517,56 +2468,58 @@ msgstr "Gruppo non trovato.\\n" msgid "Group not specified.\\n" msgstr "Gruppo non specificato.\\n" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "Gruppi" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" -msgstr "I gruppi non possono essere membri dei loro membri" +msgstr "I gruppi non possono appartenere a gruppi che sono già loro appartenenti" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:82 msgid "Groups matching search criteria" -msgstr "" +msgstr "Gruppi che corrispondono ai criteri di ricerca" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowRequestor:77 msgid "Groups this user belongs to" -msgstr "" +msgstr "L'utente appartiene ai gruppi" + +#: NOT FOUND IN SOURCE +msgid "HasMember" +msgstr "HaUnAppartenente" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: lib/RT/Interface/CLI.pm:94 lib/RT/Interface/CLI.pm:94 msgid "Hello!" msgstr "Ciao!" -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "Ciao, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" -msgstr "Storia" - -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "" +msgstr "Cronologia" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) msgid "History of the group %1" -msgstr "" +msgstr "Cronologia del gruppo %1" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) msgid "History of the user %1" -msgstr "" +msgstr "Cronologia dell'utente %1" #: NOT FOUND IN SOURCE msgid "HomePhone" msgstr "TelefonoCasa" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "Homepage" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "Ho %quant(%1,concrete mixer)." @@ -2575,96 +2528,104 @@ msgstr "Ho %quant(%1,concrete mixer)." msgid "I have [quant,_1,concrete mixer]." msgstr "Ho [quant,_1,concrete mixer]." -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "Mi sono perso..." + +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "Id" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "Identità" #: etc/initialdata:429 msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "Se una richiesta di approvazione è rifiutata, rifiuta l'originale e elimina le richieste di approvazione pendenti" +msgstr "Se un'approvazione viene negata, respingi l'originale e elimina le approvazioni accodate" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "" +msgstr "(per i nuovi ticket in cui non viene specificato un richiedente)" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." -msgstr "" +msgstr "(per i nuovi ticket in cui non viene specificata una coda)" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "Se questo strumento viene utilizzato con setgid, un utente locale mlintenzionato può usrae questo strumento per ottenere accesso amministrativo su RT." +msgstr "Se questo strumento viene ha il flag setgid, un utente locale malintenzionato potrebbe usarlo per ottenere accesso amministrativo a RT." -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" -msgstr "Se hai aggiornato qualchecosa qui sopra, assicurati di" +msgstr "Se hai aggiornato qualche impostazione, assicurati di premere" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "Valore non valido per %1" #: NOT FOUND IN SOURCE msgid "Image" -msgstr "" +msgstr "Immagine" -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "Campo immutabile" #: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." -msgstr "Includi nella lista i campi personalizzati disabilitati." +msgstr "Elenca anche i campi personalizzati disabilitati." -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." -msgstr "" +msgstr "Elenca anche i gruppi disabilitati." -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." -msgstr "Includi nella lista le code disabilitate." +msgstr "Elenca anche le code disabilitate." -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "Includi nella ricerca gli utenti disabilitati." -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "Query incompleta" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "Query incompleta" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" -msgstr "Priorità Iniziale" +msgstr "Priorità iniziale" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" -msgstr "PrioritàIniziale" +msgstr "PrioritaIniziale" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" -msgstr "Errore in Input" +msgstr "Errore in input" #: NOT FOUND IN SOURCE msgid "Interest noted" msgstr "Interesse annotato" -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" -msgstr "Errore Interno" +msgstr "Errore interno" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" -msgstr "Errore Interno: %1" +msgstr "Errore interno: %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" -msgstr "Tipo di Gruppo non valido" +msgstr "Tipo di gruppo non valido" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "Diritto non valido" @@ -2672,52 +2633,56 @@ msgstr "Diritto non valido" msgid "Invalid Type" msgstr "Tipo non valido" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "Dati non validi" #: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "Proprietraio non valido. Verrà usato il default 'nobody'." +msgstr "Incaricato non valido. Uso il default 'nessuno'." -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "Coda non valida" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "Diritto non valido" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "Valore non valido per %1" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "Valore non valido per il campo personalizzato" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "Valore non valido per lo stato" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "E' estremamente importante che agli utenti non previlegiati non sia consentito eseguire questo strumento." +msgstr "È estremamente importante che agli utenti non previlegiati non sia consentita l'esecuzione di questo strumento." -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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 suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." +msgstr "Per eseguire questo strumento, si suggerisce di creare un utente unix non privilegiato appartenente al gruppo corretto e con i necessari diritti in RT." -#: bin/rt-crontool:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" -msgstr "Richide molteplici argomenti:" +msgstr "Accetta svariati argomenti:" + +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "Corsivo" #: NOT FOUND IN SOURCE msgid "Items pending my approval" msgstr "Oggetti in attesa della mia approvazione" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "Gen." @@ -2725,11 +2690,11 @@ msgstr "Gen." msgid "January" msgstr "Gennaio" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" -msgstr "Unisciti o lascia questo gruppo" +msgstr "Cambia appartenenza a questo gruppo" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "Lug." @@ -2737,11 +2702,11 @@ msgstr "Lug." msgid "July" msgstr "Luglio" -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "Jumbo" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "Giu." @@ -2755,202 +2720,223 @@ msgstr "Parola chiave" #: NOT FOUND IN SOURCE msgid "Lang" -msgstr "Linguaggio" +msgstr "Lingua" -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" -msgstr "" +msgstr "Lingua" + +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "Grande" -#: html/Ticket/Elements/Tabs:74 +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "Ultimo" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" -msgstr "Ultimo Contatto" +msgstr "Ultima comunicazione a richiedenti" -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" - -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" -msgstr "Ultimo Contatto" +msgstr "Ultima comunicazione a richiedenti" #: NOT FOUND IN SOURCE msgid "Last Notified" -msgstr "Ultima Notifica" +msgstr "Ultima notifica" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" -msgstr "Ultimo Aggiornamento" +msgstr "Ultima modifica" + +#: NOT FOUND IN SOURCE +msgid "Last Updated By" +msgstr "Modificato Da" #: NOT FOUND IN SOURCE msgid "LastUpdated" -msgstr "UltimoAggiornamento" +msgstr "UltimaModifica" -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" -msgstr "" +msgstr "ModificatoPerUltimoDa" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "Rimasti" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "Consenti a questo utente di accedere a RT" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" -msgstr "Concedi a questo utente che gli vengano assegnati i diritti" +msgstr "Consenti la concessione di diritti espliciti a questo utente" #: NOT FOUND IN SOURCE msgid "Limiting owner to %1 %2" -msgstr "Limitare il proprietario %1 %2" +msgstr "Limitare l'incaricato a %1 %2" #: NOT FOUND IN SOURCE msgid "Limiting queue to %1 %2" msgstr "Limitare la coda a %1 %2" -#: lib/RT/Record.pm:1086 +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "Collegamento" + +#: lib/RT/Record.pm:1292 msgid "Link already exists" -msgstr "Il collegamento già esiste" +msgstr "Il collegamento esiste già" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "Il collegamento non può essere creato" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "Collegamento creato (%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" -msgstr "Collegamento eliminato (%1)" +msgstr "Collegamento cancellato (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "Collegamento non trovato" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Collega ticket n°%1" #: NOT FOUND IN SOURCE msgid "Link ticket %1" -msgstr "Collega ticket %1" +msgstr "Collega ticket %1" + +#: NOT FOUND IN SOURCE +msgid "LinkedTo" +msgstr "CollegatoA" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "Collegamenti" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" -msgstr "" +msgstr "Carica" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" -msgstr "" +msgstr "Carica ricerca salvata:" -#: html/Admin/Tools/Configuration.html:19 +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "CaricaRicercheSalvate" + +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" -msgstr "" +msgstr "Moduli perl caricati" + +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "Caricata ricerca %1" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" -msgstr "Località" +msgstr "Domicilio" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." -msgstr "" +msgstr "Impossibile trovare la directory di log %1 (oppure mancano i permessi di scrittura).\\n RT non può essere eseguito." -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" -msgstr "Collegato come %1" +msgstr "Accesso effettuato come %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" -msgstr "Collegamento" +msgstr "Accedi" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" -msgstr "Scollegati" +msgstr "Esci" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:866 msgid "Lookup type mismatch" -msgstr "" +msgstr "Tipo di ricerca sbagliato" -#: html/Search/Bulk.html:83 +#: html/Search/Bulk.html:104 msgid "Make Owner" -msgstr "Crea Proprietario" +msgstr "Nuovo incaricato" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" -msgstr "Crea Stato" +msgstr "Nuovo stato" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" -msgstr "Crea data Scadenza" +msgstr "Nuova data scadenza" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" -msgstr "Crea data Risolto" +msgstr "Nuova data risoluzione" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" -msgstr "Crea data Iniziato" +msgstr "Nuova data iniziato" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" -msgstr "Crea data Inizia" +msgstr "Nuova data inizio previsto" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" -msgstr "Crea data Detto" +msgstr "Nuova data ultimo contatto" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" -msgstr "Crea priorità" +msgstr "Nuova priorità" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" -msgstr "Crea coda" +msgstr "Nuova coda" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" -msgstr "Crea oggetto" +msgstr "Nuovo oggetto" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" -msgstr "" +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" +msgstr "Rendi questo gruppo visibile all'utente" -#: NOT FOUND IN SOURCE +#: html/Admin/index.html:78 msgid "Manage custom fields and custom field values" -msgstr "" +msgstr "Gestione campi personalizzati e relativi valori" -#: html/Admin/index.html:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" -msgstr "Gestisci i gruppi e le appartenenze" +msgstr "Gestione di gruppi e appartenenze" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" -msgstr "Gestisci le proprietà e le configurazioni che si applicano a tutte le code" +msgstr "Gestione di proprietà e configurazioni che si applicano a tutte le code" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" -msgstr "Gestisci le code e le propietà specifiche delle code" +msgstr "Gestione delle code e delle propietà specifiche delle code" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" -msgstr "Gestisci gli utenti e le password" +msgstr "Gestione di utenti e password" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "Mar." @@ -2962,108 +2948,109 @@ msgstr "Marzo" msgid "May" msgstr "Maggio" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "Mag." -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" -msgstr "" +msgstr "Aggiunto appartenente %1" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" -msgstr "" +msgstr "Rimosso appartenente %1" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" -msgstr "Aggiunto membro" +msgstr "Aggiunto appartenente" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" -msgstr "Eliminato membro" +msgstr "Rimosso appartenente" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" -msgstr "Membro non eliminato" +msgstr "Appartenente non rimosso" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" -msgstr "Membro di" +msgstr "Appartenente a" #: NOT FOUND IN SOURCE msgid "MemberOf" -msgstr "MembroDi" +msgstr "AppartenteA" -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" -msgstr "Membri" +msgstr "Appartenenti" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" -msgstr "" +msgstr "Aggiunta appartenenza al gruppo %1" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" -msgstr "" +msgstr "Rimossa appartenenza al gruppo %1" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:61 msgid "Memberships" -msgstr "" +msgstr "Appartenenza a gruppi" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) msgid "Memberships of the user %1" -msgstr "" +msgstr "Appartenenza a gruppi per l'utente %1" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" msgstr "Unione avvenuta con Successo" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Unione fallita. Impossibile impostare EffectiveId" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "Unione fallita. Impossibile impostare Stato" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" -msgstr "Unisci in" +msgstr "Unisci a" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" -msgstr "" +msgstr "Unito a %1" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "Messaggio" -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" -msgstr "" +msgstr "Impossibile registrare il messaggio" -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" -msgstr "" +msgstr "Messaggio registrato" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." -msgstr "" +msgstr "I messaggi riguardanti questo ticket non saranno inviati a..." + +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "Parentesi non bilanciate" -#: lib/RT/Record.pm:749 +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "Manca una chiave primaria?: %1" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "Cellulare" @@ -3071,107 +3058,106 @@ msgstr "Cellulare" msgid "MobilePhone" msgstr "TelefonoCellulare" -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" -msgstr "Modifca la Lista Controllo Accessi" +msgstr "Modifica la Lista Controllo Accessi (ACL)" #: NOT FOUND IN SOURCE msgid "Modify Custom Field %1" -msgstr "Modifica il Campo Personalizzato %1" +msgstr "Modifica il campo personalizzato %1" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/ObjectCustomFields:96 +#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) +msgid "Modify Custom Fields which apply to %1 for all %2" +msgstr "Modifica campi personalizzati applicabili a %1 per ogni %2" + +#: html/Admin/Elements/ObjectCustomFields:98 +#. (loc(lc($Types))) msgid "Modify Custom Fields which apply to all %1" -msgstr "" +msgstr "Modifica i campi personalizzati applicabili a tutti %1" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +#: NOT FOUND IN SOURCE msgid "Modify Custom Fields which apply to all queues" msgstr "Modifica i Campi Personalizzati validi per tutte le code" -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 msgid "Modify Group Rights" -msgstr "" +msgstr "Modifica diritti del gruppo" -#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" -msgstr "" +msgstr "Modifica appartenenti al gruppo" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" -msgstr "" +msgstr "Modifica diritti" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" -msgstr "Modifica i modelli di Scips per questa coda" +msgstr "Modifica i modelli di Scrips per questa coda" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" msgstr "Modifica gli Scrips per questa coda" #: NOT FOUND IN SOURCE msgid "Modify System ACLS" -msgstr "Modifica le LCA di Sistema" +msgstr "Modifica le ACL di Sistema" #: NOT FOUND IN SOURCE msgid "Modify Template %1" -msgstr "Modifica il Modello %1" +msgstr "Modifica il modello %1" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 msgid "Modify User Rights" -msgstr "" +msgstr "Modifica diritti utente" -#: html/Admin/Queues/CustomField.html:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" -msgstr "Modifica un CampoPersonalizzato per la coda %1" +msgstr "Modifica un campo personalizzato per la coda %1" -#: html/Admin/Global/CustomField.html:52 +#: NOT FOUND IN SOURCE msgid "Modify a CustomField which applies to all queues" -msgstr "Modifica un CampoPersonalizzato valido per tutte le code" +msgstr "Modifica un campo personalizzato valido per tutte le code" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Modifica uno scrip per la coda %1" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "Modifica uno scrip valido per tutte le code" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) msgid "Modify associated objects for %1" -msgstr "" +msgstr "Modifica oggetti associati a %1" #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "Modifica le date per n° %1" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Modifica le date per n°%1" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Modifica le date per il ticket n° %1" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: html/Admin/Elements/GlobalCustomFieldTabs:65 html/Admin/Global/index.html:72 +msgid "Modify global custom fields" +msgstr "Modifica campi personalizzati globali" + +#: 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 "Modifica i diritti di gruppo globali" -#: html/Admin/Global/GroupRights.html:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." msgstr "Modifica i diritti di gruppo globali." @@ -3187,263 +3173,249 @@ msgstr "Modifica i diritti globali per gli utenti" msgid "Modify global scrips" msgstr "Modifica gli scrips globali" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 msgid "Modify global user rights" msgstr "Modifica i diritti globali per gli utenti" -#: html/Admin/Global/UserRights.html:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "Modifica i diritti globali per gli utenti." -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" -msgstr "Modifica i metadati di gruppo o elimina un gruppo" +msgstr "Modifica i metadati del gruppo o elimina un gruppo" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" -msgstr "" +msgstr "Modifica i diritti di gruppo per il campo personalizzato %1" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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 "Modifica i diritti di gruppo per il gruppo %1" -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Modifica i diritti di gruppo per la coda %1" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" -msgstr "Modofica i membri di questo gruppo" +msgstr "Modifica gli appartenenti a questo gruppo" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "Modifica il proprio account RT" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" -msgstr "Modifica le persone relative alla coda %1" +msgstr "Modifica le persone collegate alla coda %1" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" -msgstr "Modifica le persone relative al ticket n°%1" +msgstr "Modifica le persone collegate al ticket n°%1" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Modifica gli scrips per la coda %1" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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 "Modifica gli scrips validi per tutte le code" -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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 "Modifica modello %1" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "Modifica i modelli validi per tutte le code" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" msgstr "Modifica il gruppo %1" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "Modifica gli osservatori della coda" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Modifica l'utente %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Modifica il ticket n° %1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Modifica il ticket n°%1" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" -msgstr "Modifica i tickets" +msgstr "Modifica i ticket" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) msgid "Modify user rights for custom field %1" -msgstr "" +msgstr "Modifica i diritti utente per il il campo personalizzato %1" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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 "Modifica i diritti utente per il gruppo %1" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" -msgstr "Modifica i diritti dell'utente per la coda %1" +msgstr "Modifica i diritti utente per la coda %1" #: NOT FOUND IN SOURCE msgid "Modify watchers for queue '%1'" msgstr "Modifica gli osservatori per la coda '%1'" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" -msgstr "ModificaLCA" +msgstr "ModificaACL" + +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "ModificaCampoPers." -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" -msgstr "ModificaPropriaAppartenenza" +msgstr "ModificaPropriaAppartenenzaAlGruppo" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" -msgstr "ModificaOsservatoriCoda" +msgstr "ModificaOsservatoriDellaCoda" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "ModificaScrips" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" -msgstr "ModificaSeStesso" +msgstr "ModificaSuoiDati" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "ModificaModello" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "ModificaTicket" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "Lun." -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" -msgstr "Altre info su %1" - -#: NOT FOUND IN SOURCE -msgid "Move" -msgstr "" +msgstr "Maggiori informazioni su %1" -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" -msgstr "Move down" +msgstr "Sposta in basso" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" -msgstr "Move up" +msgstr "Sposta in alto" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" -msgstr "Multiple" +msgstr "Multiplo" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" -msgstr "Must specify 'Name' attribute" +msgstr "L'attributo 'name' deve essere specificato" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" -msgstr "I miei%1 tickets" +msgstr "I miei ticket in stato: %1" #: NOT FOUND IN SOURCE msgid "My Approvals" -msgstr "Le mie richieste di Approvazione" +msgstr "Le mie richieste di approvazione" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "Le mie richieste di approvazione" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" -msgstr "" +msgstr "Le mie ricerche salvate" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "Nome" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" -msgstr "Name in use" - -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" +msgstr "Nome già usato" #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" -msgstr "Need approval from system administrator" +msgstr "È richiesta l'approvazione da parte del system administrator" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" -msgstr "Never" +msgstr "Mai" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "Nuovo" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" -msgstr "New Relationships" +msgstr "Nuovi collegamenti" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "Nuova Password" #: etc/initialdata:332 msgid "New Pending Approval" -msgstr "New Pending Approval" +msgstr "Nuove approvazioni pendenti" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New Relationships" -msgstr "" +msgstr "Nuova query" #: NOT FOUND IN SOURCE msgid "New Search" msgstr "Nuova Ricerca" -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" -msgstr "Nuovo campo Personalizzato" +msgstr "Nuovo campo personalizzato" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "Nuovo gruppo" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "Nuova password" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" -msgstr "New password notification sent" +msgstr "Inviata notifica della nuova password" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "Nuova coda" @@ -3451,11 +3423,11 @@ msgstr "Nuova coda" msgid "New request" msgstr "Nuova richiesta" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "Nuovi diritti" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "Nuovo scrip" @@ -3463,586 +3435,610 @@ msgstr "Nuovo scrip" msgid "New search" msgstr "Nuova ricerca" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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 "Nuovo modello" -#: html/SelfService/Elements/Tabs:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "Nuovo ticket" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "Il nuovo ticket non esiste" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "Nuovo utente" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" -msgstr "New user called" +msgstr "Nuovo utente di nome" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "Nuovo osservatore" #: NOT FOUND IN SOURCE msgid "New window setting" -msgstr "New window setting" +msgstr "Impostazioni nuova finestra" -#: html/Ticket/Elements/Tabs:70 +#: NOT FOUND IN SOURCE +msgid "NEWLINE" +msgstr "NUOVA_RIGA" + +#: html/Ticket/Elements/Tabs:92 msgid "Next" -msgstr "Succesivo" +msgstr "Seguente" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" -msgstr "" +msgstr "Pagina seguente" #: NOT FOUND IN SOURCE msgid "Next page" -msgstr "Pagina succesiva" +msgstr "Pagina seguente" #: NOT FOUND IN SOURCE msgid "NickName" -msgstr "NickName" +msgstr "Nomignolo" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" -msgstr "Soprannome" - -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "" +msgstr "Nomignolo" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" -msgstr "" +msgstr "Nessuna classe definita" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" -msgstr "No CustomField" +msgstr "Nessun campo personalizzato" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" -msgstr "" +msgstr "Nessun campo personalizzato definito" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" -msgstr "No Group defined" +msgstr "Nessun gruppo definito" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" -msgstr "" +msgstr "Nessuna query" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" -msgstr "No Queue defined" +msgstr "Nessuna coda definita" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "No RT user found. Please consult your RT administrator.\\n" +msgstr "Nessun utente RT trovato. Consulta il tuo amministratore di RT.\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "Nessun Modello" #: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " -msgstr "No Ticket specified. Aborting ticket " - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket modifications\\n\\n" -msgstr "" +msgstr "Nessun ticket specificato. Annullo il ticket" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" -msgstr "No action" +msgstr "Nessuna azione" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" -msgstr "No column specified" +msgstr "Nessuna colonna specificata" #: NOT FOUND IN SOURCE msgid "No command found\\n" -msgstr "No command found\\n" +msgstr "Nessun comando trovato\\n" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" -msgstr "No comment entered about this user" +msgstr "Nessun commento su questo utente" #: NOT FOUND IN SOURCE msgid "No correspondence attached" -msgstr "No correspondence attached" +msgstr "Nessuna corrispondenza allegata" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "Nessuna descrizione per %1" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" -msgstr "No group specified" +msgstr "Nessun gruppo specificato" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:52 msgid "No groups matching search criteria found." -msgstr "" +msgstr "Nessun gruppo corrisponde ai criteri di ricerca." -#: lib/RT/Ticket_Overlay.pm:2475 +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" -msgstr "" +msgstr "Nessun messaggio allegato" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" -msgstr "No password set" +msgstr "Nessuna password impostata" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" -msgstr "No permission to create code" +msgstr "Manca il permesso per creare code" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" -msgstr "No permission to create tickets in the coda '%1'" +msgstr "Manca il permesso per creare ticket nella coda '%1'" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" -msgstr "No permission to create users" +msgstr "Manca il permesso per creare utenti" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" -msgstr "No permission to display that ticket" +msgstr "Manca il permesso per visualizzare il ticket" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" -msgstr "No permission to view update ticket" +msgstr "Manca il permesso per aggiornare il ticket" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" -msgstr "No principal specified" +msgstr "Nessun utente/gruppo specificato" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." -msgstr "No principals selected." +msgstr "Nessun utente/gruppo selezionato." -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." -msgstr "No code matching search criteria found." +msgstr "Nessuna coda soddisfa i criteri di ricerca." -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "Nessun diritto trovato" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "Nessun diritto concesso." -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "Nessuna ricerca caricata" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." -msgstr "No search to operate on." +msgstr "Nessuna ricerca su cui operare." -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" -msgstr "" +msgstr "Senza oggetto" #: NOT FOUND IN SOURCE msgid "No ticket id specified" -msgstr "No ticket id specified" +msgstr "Nessun identificativo di ticket specificato" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" -msgstr "No transaction type specified" +msgstr "Nessun tipo transazione specificato" #: NOT FOUND IN SOURCE msgid "No user or email address specified" -msgstr "No user or email address specified" +msgstr "Nessun utente o indirizzo email specificato" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." -msgstr "No users matching search criteria found." +msgstr "Nessuna utente soddisfa i criteri di ricerca." #: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" -msgstr "No value sent to _Set!\\n" +msgstr "Nessun valore inviato a _Set!\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "Nessuno" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" -msgstr "Nonexistant field?" +msgstr "Campo inesistente?" #: NOT FOUND IN SOURCE msgid "Not logged in" -msgstr "Not logged in" +msgstr "Accesso non effettuato" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." -msgstr "Non collegato." +msgstr "Accesso non effettuato." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" -msgstr "Non valorizzato" +msgstr "Non impostato" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." -msgstr "Not yet implemented." +msgstr "Non ancora implementato." #: NOT FOUND IN SOURCE msgid "Not yet implemented...." -msgstr "Not yet implemented...." +msgstr "Non ancora implementato...." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" -msgstr "Notes" +msgstr "Note" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" -msgstr "Notification could not be sent" +msgstr "Impossibile inviare la notifica" #: etc/initialdata:101 msgid "Notify AdminCcs" -msgstr "Notify AdminCcs" +msgstr "invia notifica agli AdminCc" #: etc/initialdata:97 msgid "Notify AdminCcs as Comment" -msgstr "Notify AdminCcs as Comment" +msgstr "invia notifica agli AdminCc come commento" #: etc/initialdata:93 etc/upgrade/3.1.17/content:6 msgid "Notify Ccs" -msgstr "" +msgstr "invia notifica ai Cc" #: etc/initialdata:89 etc/upgrade/3.1.17/content:2 msgid "Notify Ccs as Comment" -msgstr "" +msgstr "invia notifica ai Cc come commento" #: etc/initialdata:128 msgid "Notify Other Recipients" -msgstr "Notify Other Recipients" +msgstr "invia notifica agli altri destinatari" #: etc/initialdata:124 msgid "Notify Other Recipients as Comment" -msgstr "Notify Other Recipients as Comment" +msgstr "invia notifica agli altri destinatari come commento" #: etc/initialdata:85 msgid "Notify Owner" -msgstr "Notify Proprietario" +msgstr "invia notifica all'incaricato" #: etc/initialdata:81 msgid "Notify Owner as Comment" -msgstr "Notify Proprietario as Comment" +msgstr "invia notifica all'incaricato come commento" #: etc/initialdata:376 msgid "Notify Owner of their rejected ticket" -msgstr "" +msgstr "invia notifica all'incaricato del ticket respinto" #: etc/initialdata:365 msgid "Notify Owner of their ticket has been approved by all approvers" -msgstr "" +msgstr "invia notifica all'incaricato del ticket che tutte le approvazioni sono state concesse" #: etc/initialdata:353 msgid "Notify Owner of their ticket has been approved by some approver" -msgstr "" +msgstr "invia notifica all'incaricato del ticket che alcune approvazioni sono state concesse" #: etc/initialdata:334 msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "Notify Proprietari and AdminCcs of new items pending their approval" +msgstr "invia notifica agli incaricati e AdminCc quando è necessario richiedere nuove approvazione" #: etc/initialdata:77 msgid "Notify Requestors" -msgstr "Notifica al Richiedente" +msgstr "invia notifica al richiedente" #: etc/initialdata:111 msgid "Notify Requestors and Ccs" -msgstr "Notifica ai Richiedenti e ai Ccs" +msgstr "invia notifica ai richiedenti e ai Cc" #: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" -msgstr "Notifica ai Richiedenti e ai Ccs come Commento" +msgstr "invia notifica ai richiedenti e ai Cc come commento" #: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "Notifica ai Richiedenti, Ccs e AdminCcs" +msgstr "invia notifica ai richiedenti, Cc e AdminCc" #: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "Notifica ai Richiedenti, Ccs a AdminCcs come Commento" +msgstr "invia notifica ai richiedenti, Cc a AdminCc come commento" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "Nov." #: NOT FOUND IN SOURCE msgid "November" -msgstr "November" +msgstr "Novembre" + +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "OR" -#: lib/RT/Record.pm:200 +#: lib/RT/Record.pm:319 msgid "Object could not be created" -msgstr "Object could not be created" +msgstr "L'oggetto non può essere creato" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "L'oggetto non può essere cancellato" + +#: lib/RT/Record.pm:338 msgid "Object created" -msgstr "Object created" +msgstr "Oggetto creato" -#: NOT FOUND IN SOURCE +#: lib/RT/Record.pm:121 +msgid "Object deleted" +msgstr "Oggetto cancellato" + +#: html/Admin/CustomFields/Objects.html:72 html/Admin/Elements/ObjectCustomFields:63 +#. ($ObjectType) +#. ($LookupType) msgid "Object of type %1 cannot take custom fields" -msgstr "" +msgstr "Oggetto di tipo %1 non accetta campi personalizzati" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:901 msgid "Object type mismatch" -msgstr "" +msgstr "Tipo oggetto non corrisponde" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "Oct." #: NOT FOUND IN SOURCE msgid "October" -msgstr "October" +msgstr "Ottobre" -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" -msgstr "" +msgstr "Offline" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" -msgstr "" +msgstr "Modifiche offline" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" -msgstr "" +msgstr "Upload richiesta offline" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" -msgstr "On" +msgstr "il" #: etc/initialdata:163 msgid "On Comment" -msgstr "On Comment" +msgstr "All'arrivo di un commento" #: etc/initialdata:156 msgid "On Correspond" -msgstr "On Correspond" +msgstr "All'arrivo di una corrispondenza" #: etc/initialdata:145 msgid "On Create" -msgstr "On Create" +msgstr "Alla creazione" #: etc/initialdata:184 msgid "On Owner Change" -msgstr "On Owner Change" +msgstr "Al cambio dell'incaricato" #: etc/initialdata:177 etc/upgrade/3.1.17/content:15 msgid "On Priority Change" -msgstr "" +msgstr "Al cambio della priorità" #: etc/initialdata:192 msgid "On Queue Change" -msgstr "On Queue Change" +msgstr "Al cambio di coda" #: etc/initialdata:198 msgid "On Resolve" -msgstr "On Resolve" +msgstr "Alla risoluzione" #: etc/initialdata:169 msgid "On Status Change" -msgstr "On Status Change" +msgstr "Al cambio di stato" #: etc/initialdata:150 msgid "On Transaction" -msgstr "On Transaction" +msgstr "Ad ogni transazione" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" -msgstr "Mostra le approvazioni solo per le richieste create dopo %1" +msgstr "Mostra le approvazioni solo per le richieste create dopo il %1" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" -msgstr "Mostra le approvazioni solo per le richieste create prima %1" +msgstr "Mostra le approvazioni solo per le richieste create prima del %1" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "Aperto" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" -msgstr "Aprilo" +msgstr "Apri" #: NOT FOUND IN SOURCE msgid "Open requests" msgstr "Richieste aperte" -#: html/SelfService/Elements/Tabs:41 +#: NOT FOUND IN SOURCE +msgid "Open ticket" +msgstr "Apri ticket" + +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" -msgstr "Open tickets" +msgstr "Ticket aperti" #: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" -msgstr "Open tickets (from listing) in a new window" +msgstr "Apre ticket (dalla lista) in una nuova finestra" #: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" -msgstr "Open tickets (from listing) in another window" +msgstr "Apre ticket (dalla lista) in un'altra finestra" #: etc/initialdata:140 msgid "Open tickets on correspondence" -msgstr "Open tickets on correspondence" +msgstr "Apri i ticket all'arrivo di corrispondenza" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" -msgstr "" +msgstr "Ordina per" #: NOT FOUND IN SOURCE msgid "Ordering and sorting" -msgstr "Visualizzazione e Ordinamento" +msgstr "Ordinamento" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "Azienda" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" -msgstr "Originating ticket: n°%1" +msgstr "Ticket originario: n°%1" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" -msgstr "" +msgstr "Registrata email in uscita riguardante un commento" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" -msgstr "" +msgstr "Registrata email in uscita" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" -msgstr "Se scade il tempo, la priorità sale di" +msgstr "Al passare del tempo, la priorità cresce fino a" -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" -msgstr "Own tickets" +msgstr "Prende in carico ticket" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" -msgstr "PossiediTicket" +msgstr "PrendeInCaricoTicket" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" -msgstr "Proprietario" +msgstr "Incaricato" #: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" -msgstr "Proprietario changed from %1 to %2" +msgstr "Cambiato incaricato da %1 a %2" -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." -msgstr "" +msgstr "L'incaricato non può essere impostato." -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" -msgstr "Owner forcibly changed from %1 to %2" +msgstr "Cambiato forzatamente l'incaricato da %1 a %2" #: NOT FOUND IN SOURCE msgid "Owner is" -msgstr "Il Proprietario è" +msgstr "In carico a" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" -msgstr "" +msgstr "Pagina %1 di %2" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" -msgstr "Pager" +msgstr "Cercapersone" #: NOT FOUND IN SOURCE msgid "PagerPhone" -msgstr "PagerPhone" +msgstr "Cercapersone" -#: NOT FOUND IN SOURCE -msgid "Parent" -msgstr "" - -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" -msgstr "Genitori" +msgstr "DerivaDa" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "Password" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" -msgstr "Password Reminder" +msgstr "Promemoria password" + +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "Password cambiata" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "La password deve essere lunga almeno %1 caratteri" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: NOT FOUND IN SOURCE msgid "Password too short" -msgstr "Password too short" +msgstr "Password troppo corta" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Password: %1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." -msgstr "Passwords do not match." +msgstr "Le passwords non corrispondono." -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" -msgstr "Passwords do not match. Your password has not been changed" +msgstr "Le password non corrispondono. La password non è stata cambiata" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "Persone" #: etc/initialdata:133 msgid "Perform a user-defined action" -msgstr "Perform a user-defined action" +msgstr "Esegui un'azione personalizzata" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" -msgstr "" +msgstr "Configurazione perl" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" -msgstr "Permission Denied" +msgstr "Operazione non consentita" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" -msgstr "Gruppi Personali" +msgstr "Gruppi personali" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "Gruppi personali" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "Gruppi personali:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" -msgstr "Numeri Telefonici" +msgstr "Numeri telefonici" #: NOT FOUND IN SOURCE msgid "Placeholder" -msgstr "Placeholder" +msgstr "Segnaposto" -#: NOT FOUND IN SOURCE -msgid "Pref" -msgstr "" - -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "Preferenze" @@ -4050,144 +4046,140 @@ msgstr "Preferenze" msgid "Prefs" msgstr "Prefs" -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" -msgstr "Prepare Stubbed" +msgstr "Preparazione non necessaria" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "Precedente" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" -msgstr "" +msgstr "Pagina precedente" #: NOT FOUND IN SOURCE msgid "Previous page" -msgstr "Previous page" +msgstr "Pagina precedente" #: NOT FOUND IN SOURCE msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." -msgstr "Principal %1 not found." +msgstr "Utente/gruppo %1 not trovato." -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "Priorità" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "La priorità inizia da" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" -msgstr "" +msgstr "Riservatezza:" #: etc/initialdata:25 msgid "Privileged" msgstr "Privilegiato" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Stato previlegiato: %1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "Utenti privilegiati" -#: 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 "Pseudogroup for internal use" +msgstr "Pseudogruppo per uso interno" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" -msgstr "" +msgstr "Query" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" -msgstr "" +msgstr "Costruttore di query" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "Coda" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" -msgstr "Queue %1 not found" +msgstr "Coda %1 non trovata" #: NOT FOUND IN SOURCE msgid "Queue '%1' not found\\n" -msgstr "Queue '%1' not found\\n" +msgstr "Coda '%1' non trovata\\n" #: NOT FOUND IN SOURCE msgid "Queue Keyword Selections" -msgstr "Queue Keyword Selections" +msgstr "Selezione delle parole chiave per la coda" -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "Nome della coda" #: NOT FOUND IN SOURCE msgid "Queue Scrips" -msgstr "Queue Scrips" +msgstr "Scrips della coda" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" -msgstr "Queue already exists" +msgstr "La coda esiste già" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" -msgstr "Queue could not be created" +msgstr "Impossibile creare la coda" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 msgid "Queue could not be loaded." -msgstr "Queue could not be loaded." +msgstr "Impossibile caricare la coda." -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" -msgstr "Queue created" +msgstr "Coda creata" #: NOT FOUND IN SOURCE msgid "Queue is not specified." -msgstr "Queue is not specified." +msgstr "Coda non specificata." -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" -msgstr "Queue not found" +msgstr "Coda non trovata" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "Code" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "Ricerca veloce" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" -msgstr "" +msgstr "Creazione veloce di un ticket" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" -msgstr "" +msgstr "RSS" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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 per %2" @@ -4204,13 +4196,13 @@ msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" 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:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" -msgstr "RT Administration" +msgstr "Amministrazione di RT" #: NOT FOUND IN SOURCE msgid "RT Authentication error." -msgstr "RT Authentication error." +msgstr "Errore di autenticazione RT." #: NOT FOUND IN SOURCE msgid "RT Bounce: %1" @@ -4218,77 +4210,73 @@ msgstr "RT Bounce: %1" #: NOT FOUND IN SOURCE msgid "RT Configuration error" -msgstr "RT Configuration error" +msgstr "Errore nella configurazione di RT" #: NOT FOUND IN SOURCE msgid "RT Critical error. Message not recorded!" -msgstr "RT Critical error. Message not recorded!" +msgstr "Errore critico. Messaggio not registrato!" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" -msgstr "RT Error" +msgstr "Errore RT" #: NOT FOUND IN SOURCE msgid "RT Received mail (%1) from itself." -msgstr "RT Received mail (%1) from itself." +msgstr "RT ha ricevuto email (%1) da se stesso." #: NOT FOUND IN SOURCE msgid "RT Recieved mail (%1) from itself." -msgstr "RT Recieved mail (%1) from itself." - -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" +msgstr "RT ha ricevuto email (%1) da se stesso." #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" -msgstr "RT Self Service / Closed Tickets" +msgstr "RT Self Service / Ticket chiusi" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" -msgstr "" +msgstr "Variabili RT" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" -msgstr "Colpo d'occhio di RT" +msgstr "Quadro d'insieme" #: NOT FOUND IN SOURCE msgid "RT couldn't authenticate you" -msgstr "RT couldn't authenticate you" +msgstr "RT non ha potuto autenticarti" #: NOT FOUND IN SOURCE msgid "RT couldn't find requestor via its external database lookup" -msgstr "RT couldn't find requestor via its external database lookup" +msgstr "RT non è riuscito a trovare il richiedente consultando in database esterno" #: NOT FOUND IN SOURCE msgid "RT couldn't find the queue: %1" -msgstr "RT couldn't find the coda: %1" +msgstr "RT non ha trovato la coda: %1" + +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." +msgstr "RT non può memorizzare la tua sessione" #: NOT FOUND IN SOURCE msgid "RT couldn't validate this PGP signature. \\n" -msgstr "RT couldn't validate this PGP signature. \\n" +msgstr "RT non può verificare questa firma PGP. \\n" -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" -msgstr "RT per %1" +msgstr "RT / %1" #: NOT FOUND IN SOURCE msgid "RT for %1: %2" -msgstr "RT per %1: %2" +msgstr "RT / %1: %2" #: NOT FOUND IN SOURCE msgid "RT has proccessed your commands" -msgstr "RT has proccessed your commands" +msgstr "RT ha eseguito i comandi" #: 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 © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. RT viene distribuito con la <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versione 2 della GNU General Public License.</a>" -#: 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 "" - #: 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 is © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. RT viene distribuito con la <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versione 2 della GNU General Public License.</a>" @@ -4305,106 +4293,102 @@ msgstr "RT will process this message as if it were unsigned.\\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 "RT's email command mode requires PGP authentication. Either you didn't sign your message, or your signature could not be verified." -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" -msgstr "Nome Reale" +msgstr "Nome reale" #: NOT FOUND IN SOURCE msgid "RealName" -msgstr "RealName" +msgstr "NomeReale" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" -msgstr "" +msgstr "Aggiunto riferimento da %1" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" -msgstr "" +msgstr "Cancellato riferimento da %1" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" -msgstr "" +msgstr "Aggiunto riferimento a %1" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" -msgstr "" +msgstr "Cancellato riferimento a %1" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" -msgstr "Riferito da" +msgstr "È un riferimento per" + +#: NOT FOUND IN SOURCE +msgid "ReferredToBy" +msgstr "RiferimentoPer" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "Fa riferimento a" #: NOT FOUND IN SOURCE msgid "RefersTo" -msgstr "RefersTo" +msgstr "FaRiferimentoA" #: NOT FOUND IN SOURCE msgid "Refine" -msgstr "Refine" +msgstr "Rifinisci" #: NOT FOUND IN SOURCE msgid "Refine search" msgstr "Rifinisci la ricerca" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Aggiorna questa pagina ogni %1 minuti." -#: NOT FOUND IN SOURCE -msgid "Relationships" -msgstr "" - -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" -msgstr "Remove AdminCc" +msgstr "Rimuovi AdminCc" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" -msgstr "Remove Cc" +msgstr "Rimuovi Cc" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" -msgstr "Rimuovi il RIchiedente" +msgstr "Rimuovi richiedente" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "Risposta" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" -msgstr "" +msgstr "Indirizzo a cui indirizzare le risposte" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" -msgstr "" +msgstr "Rispondi ai richiedenti" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" -msgstr "Rispondi ai tickets" +msgstr "Rispondi ai ticket" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "RispondiAlTicket" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "Richiedente" #: NOT FOUND IN SOURCE msgid "Requestor email address" -msgstr "Indirizzo emaildel richiedente" +msgstr "Indirizzo email del richiedente" #: NOT FOUND IN SOURCE msgid "Requestor(s)" @@ -4414,37 +4398,37 @@ msgstr "Richiedente(i)" msgid "RequestorAddresses" msgstr "IndirizzoRichiedente" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "Richiedenti" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" -msgstr "Le richieste devono essere soddisfatte in" +msgstr "Le richieste devono essere soddisfatte entro" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" -msgstr "" +msgstr "Il parametro obbligatorio '%1' non è stato specificato" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "Azzera" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "Casa" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "Risolvi" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Risolvi il ticket n°%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "Risolto" @@ -4452,7 +4436,7 @@ msgstr "Risolto" msgid "Response to requestors" msgstr "Risposta ai richiedenti" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "Risultati" @@ -4460,115 +4444,121 @@ msgstr "Risultati" msgid "Results per page" msgstr "Risultati per pagina" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "Ridigita Password" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" -msgstr "" +msgstr "Annulla modifiche" #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" -msgstr "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "Diritto %1 non trovato per %2 %3 limitatamente a %4 (%5)\\n" -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" -msgstr "Right Delegated" +msgstr "Diritto delegato" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" -msgstr "Right Granted" +msgstr "Diritto concesso" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" -msgstr "Right Loaded" +msgstr "Diritto caricato" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" -msgstr "Right could not be revoked" +msgstr "Il diritto non può essere revocato" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" -msgstr "Right not found" +msgstr "Diritto non trovato" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." -msgstr "Right not loaded." +msgstr "Diritto non caricato." -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" -msgstr "Right revoked" +msgstr "Diritto revocato" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "Diritti" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" -msgstr "I diritti non possono essere concessi per %1" +msgstr "I diritti per %1 non possono essere concessi" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" -msgstr "I diritti non possono essere revocaqti per %1" +msgstr "I diritti per %1 non possono essere revocati" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "Ruoli" #: NOT FOUND IN SOURCE msgid "RootApproval" -msgstr "RootApproval" +msgstr "ApprovazioneAmministratore" -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" -msgstr "" +msgstr "Righe per pagina" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "Sab." -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" -msgstr "" +msgstr "Salva" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" -msgstr "Salva i Cambiamenti" +msgstr "Salva modifiche" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" -msgstr "" +msgstr "Salva preferenze" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" -msgstr "Salva i cambiamenti" +msgstr "Salva modifiche" -#: html/Search/Elements/EditSearches:1 +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "Ricerca %1 salvata" + +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" -msgstr "" +msgstr "Ricerche salvate" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip n°%1" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" -msgstr "Scrip Created" +msgstr "Scrip creato" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" -msgstr "" +msgstr "Campi dello scrip" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "Scrip eliminato" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "Scrips" @@ -4576,141 +4566,154 @@ msgstr "Scrips" msgid "Scrips for %1\\n" msgstr "Scrips per %1\\n" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" -msgstr "Scrips which apply to all code" +msgstr "Scrips che si applicano a tutte le code" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" -msgstr "Cerca" +msgstr "Ricerca" #: NOT FOUND IN SOURCE msgid "Search Criteria" -msgstr "Crieri di Ricerca" +msgstr "Criteri di ricerca" + +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "Errore nel caricamento degli attributi della ricerca" -#: html/Approvals/Elements/PendingMyApproval:38 +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "Ricerca le richieste di approvazione" -#: NOT FOUND IN SOURCE -msgid "Search for articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Searches can't be associated with that kind of object" -msgstr "" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" +msgstr "Aggiornamento della ricerca: %1" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" -msgstr "Security:" +msgstr "Protezione:" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "See custom fields" -msgstr "" +msgstr "Vedi campi personalizzati" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" -msgstr "" +msgstr "Vedi letteralmente i messaggi in uscita e i loro destinatari" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" -msgstr "" +msgstr "Vedi commenti privati del ticket" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" -msgstr "" +msgstr "Vedi riassunto dei ticket" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "SeeCustomField" -msgstr "" +msgstr "VediCampoPers." -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" +msgstr "VediGruppo" + +#: lib/RT/Queue_Overlay.pm:92 msgid "SeeQueue" msgstr "VediCoda" #: NOT FOUND IN SOURCE msgid "Select" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Select a Class" -msgstr "" +msgstr "Seleziona" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 msgid "Select a Custom Field" -msgstr "" +msgstr "Scegli un campo personalizzato" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" -msgstr "" - -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" msgstr "Seleziona un gruppo" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" msgstr "Seleziona una coda" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +#: html/SelfService/CreateTicketInQueue.html:48 +msgid "Select a queue for your new ticket" +msgstr "Scegli una coda per il nuovo ticket" + +#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 msgid "Select a user" msgstr "Seleziona un utente" -#: NOT FOUND IN SOURCE -msgid "Select class" -msgstr "" - -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +#: html/Admin/Elements/CustomFieldTabs:90 msgid "Select custom field" msgstr "Seleziona un campo personalizzato" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: html/Admin/Global/CustomFields/index.html:70 +msgid "Select custom fields for all user groups" +msgstr "Seleziona i campi personalizzati per tutti i gruppi degli utenti" + +#: html/Admin/Global/CustomFields/index.html:65 +msgid "Select custom fields for all users" +msgstr "Seleziona i campi personalizzati per tutti gli utenti" + +#: html/Admin/Global/CustomFields/index.html:76 +msgid "Select custom fields for tickets in all queues" +msgstr "Seleziona i campi personalizzati per i ticket in tutte le code" + +#: html/Admin/Global/CustomFields/index.html:83 +msgid "Select custom fields for transactions on tickets in all queues" +msgstr "Seleziona i campi personalizzati per le transazioni relative ai ticket in tutte le code" + +#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 msgid "Select group" -msgstr "Seleziona gruppo" +msgstr "Seleziona il gruppo" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" -msgstr "Seleziona valori multipli" +msgstr "Elenco a selezione multipla" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" -msgstr "Seleziona un volore solo" +msgstr "Elenco a selezione singola" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" -msgstr "Seleziona una coda" +msgstr "Seleziona la coda" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" -msgstr "Seleziona uno scrip" +msgstr "Seleziona lo scrip" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "Seleziona un modello" +msgstr "Seleziona il modello" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:61 msgid "Select up to %1 values" -msgstr "" +msgstr "Seleziona un massimo di %1 valori" -#: html/Admin/Elements/UserTabs:46 +#: html/Admin/Elements/UserTabs:75 msgid "Select user" -msgstr "Seleziona utente" +msgstr "Seleziona l'utente" -#: lib/RT/CustomField_Overlay.pm:35 +#: NOT FOUND IN SOURCE msgid "SelectMultiple" -msgstr "SelectMultiple" +msgstr "SelezioneMultipla" -#: lib/RT/CustomField_Overlay.pm:34 +#: NOT FOUND IN SOURCE msgid "SelectSingle" -msgstr "SelectSingle" +msgstr "SelezioneSingola" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:58 msgid "Selected Custom Fields" -msgstr "" +msgstr "Campi personalizzati selezionati" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:59 msgid "Selected objects" -msgstr "" +msgstr "Oggetti selezionati" #: NOT FOUND IN SOURCE msgid "Self Service" @@ -4722,7 +4725,7 @@ msgstr "Invia una mail a tutti gli osservatori" #: etc/initialdata:117 msgid "Send mail to all watchers as a \"comment\"" -msgstr "Invia una mail atutti gli osservatori come un \"commento\"" +msgstr "Invia una mail atutti gli osservatori come \"commento\"" #: etc/initialdata:112 msgid "Send mail to requestors and Ccs" @@ -4730,7 +4733,7 @@ msgstr "Invia mail ai richiedenti e Ccs" #: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" -msgstr "Invia mail ai richiedenti e Ccs come commento" +msgstr "Invia mail come commento a richiedenti e Cc" #: etc/initialdata:78 msgid "Sends a message to the requestors" @@ -4738,155 +4741,155 @@ msgstr "Invia un messaggio ai richiedenti" #: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "Sends mail to explicitly listed Ccs and Bccs" +msgstr "Invia mail a Cc e Bcc esplicitamente elencati" #: etc/initialdata:94 etc/upgrade/3.1.17/content:7 msgid "Sends mail to the Ccs" -msgstr "" +msgstr "Invia mail ai Cc" #: etc/initialdata:90 etc/upgrade/3.1.17/content:3 msgid "Sends mail to the Ccs as a comment" -msgstr "" +msgstr "Invia mail ai Cc come commento" #: etc/initialdata:102 msgid "Sends mail to the administrative Ccs" -msgstr "Sends mail to the administrative Ccs" +msgstr "Invia mail ai Cc amministrativi" #: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" -msgstr "Sends mail to the administrative Ccs as a comment" +msgstr "Invia mail ai Cc amministrativi come commento" #: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" -msgstr "Sends mail to the owner" +msgstr "Invia mail all'incaricato" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." -msgstr "Sep." - -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" +msgstr "Set." #: NOT FOUND IN SOURCE msgid "September" -msgstr "September" +msgstr "Settembre" -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" -msgstr "" +msgstr "Mostra" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" -msgstr "" +msgstr "Mostra richieste di approvazione" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" -msgstr "" +msgstr "Mostra colonne" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" -msgstr "Mostra i Risultati" - -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" +msgstr "Mostra i risultati" -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "Mostra le richieste approvate" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "Mostra info di base" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "Mostra le richieste negate" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "Mostra i dettagli" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "Mostra le richieste in attesa" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "Mostra le richieste in attesa di altre approvazioni" #: NOT FOUND IN SOURCE msgid "Show ticket private commentary" -msgstr "Show ticket private commentary" +msgstr "Mostra commenti privati del ticket" #: NOT FOUND IN SOURCE msgid "Show ticket summaries" -msgstr "Show ticket summaries" +msgstr "Mostra riassunto dei ticket" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" -msgstr "MostraLCA" +msgstr "MostraACL" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "MostraTabConfigurazione" + +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" -msgstr "" +msgstr "MostraEmailUscente" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" -msgstr "" +msgstr "MostraRicercheSalvate" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "MostraScrips" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "MostraModello" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "MostraTicket" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" -msgstr "MostraICommentiAlTicket" +msgstr "MostraCommentiAlTicket" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "Sign up as a ticket Requestor or ticket or coda Cc" +msgstr "Registra come richiede o come Cc del ticket o della coda" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" -msgstr "Sign up as a ticket or coda AdminCc" +msgstr "Registra come AdminCc del ticket o della coda" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "Firma" #: NOT FOUND IN SOURCE msgid "Signed in as %1" -msgstr "Signed in as %1" +msgstr "Accesso effettuato come %1" -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" -msgstr "Single" +msgstr "Singolo" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "Carattere" + +#: html/Elements/Header:85 msgid "Skip Menu" -msgstr "Skip Menu" +msgstr "Salta menu" -#: html/Admin/Elements/AddCustomFieldValue:27 -msgid "Sort" -msgstr "Ordina" +#: html/Search/Elements/EditFormat:78 +msgid "Small" +msgstr "Piccolo" -#: NOT FOUND IN SOURCE -msgid "Sort Order" -msgstr "" +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 +msgid "Sort" +msgstr "Ordinamento" #: NOT FOUND IN SOURCE msgid "Sort key" -msgstr "Sort key" +msgstr "Chiave di ordinamento" #: NOT FOUND IN SOURCE msgid "Sort results by" @@ -4894,13 +4897,9 @@ msgstr "Ordina i risultati per" #: NOT FOUND IN SOURCE msgid "SortOrder" -msgstr "SortOrder" - -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" +msgstr "Ordinamento" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" msgstr "" @@ -4912,187 +4911,183 @@ msgstr "In stallo" msgid "Start page" msgstr "Pagina iniziale" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "Iniziato" #: NOT FOUND IN SOURCE msgid "Started date '%1' could not be parsed" -msgstr "Started date '%1' could not be parsed" +msgstr "Impossibile interpretare data inizio '%1'" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" -msgstr "Inizia" +msgstr "InizioPrevisto" #: NOT FOUND IN SOURCE msgid "Starts By" -msgstr "Inizia Da" +msgstr "Inizio previsto il" #: NOT FOUND IN SOURCE msgid "Starts date '%1' could not be parsed" -msgstr "Starts date '%1' could not be parsed" +msgstr "Impossibile interpretare data inizio previsto '%1'" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "Provincia" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "Stato" #: etc/initialdata:309 msgid "Status Change" -msgstr "Cambiamento di Stato" +msgstr "Cambiamento di stato" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" -msgstr "Cambiato lo Stato da %1 a %2" +msgstr "Cambiato lo stato da %1 a %2" #: NOT FOUND IN SOURCE msgid "StatusChange" -msgstr "StatusChange" +msgstr "CambiamentoStato" -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" -msgstr "Ruba" +msgstr "Sottrai" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" -msgstr "" +msgstr "Sottrae ticket" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" -msgstr "" +msgstr "SottraeTicket" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) +msgid "Stolen from %1" +msgstr "Sottratto da %1" + +#: NOT FOUND IN SOURCE msgid "Stolen from %1 " -msgstr "Rubato da %1 " +msgstr "Sottratto da %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 +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "Stile" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "Oggetto" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" -msgstr "Subject changed to %1" +msgstr "L'oggetto diventa %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "Invia" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Submit Workflow" -msgstr "Submit Workflow" +msgstr "Imposta workflow" -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" -msgstr "Succeeded" - -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" +msgstr "Completato con successo" -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "Dom." -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "SuperUtente" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "Sistema" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" -msgstr "" +msgstr "Configurazione del sistema" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" -msgstr "Errore di Sistema" +msgstr "Errore di sistema" #: NOT FOUND IN SOURCE msgid "System Error. Right not granted." -msgstr "Errore di Sistema. Diritto non concesso." +msgstr "Errore di sistema. Diritto non concesso." #: NOT FOUND IN SOURCE msgid "System Error. right not granted" -msgstr "Errore di Sistema. Diritto non concesso" +msgstr "Errore di sistema. Diritto non concesso" -#: html/Admin/Tools/index.html:2 +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" +msgstr "Errore di sistema: %1" + +#: html/Admin/Tools/index.html:47 msgid "System Tools" -msgstr "" +msgstr "Strumenti di sistema" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." -msgstr "Errore di Sistema. Diritto non delegato." +msgstr "Errore di sistema. Diritto non delegato." -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." -msgstr "Errore di Sistema. Diritto non concesso." +msgstr "Errore di sistema. Diritto non concesso." #: NOT FOUND IN SOURCE msgid "System error. Unable to grant rights." msgstr "Errore di sistema. Impossibile concedere i diritti." -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "Gruppi di sistema" #: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 msgid "SystemRolegroup for internal use" -msgstr "SystemRolegroup for internal use" +msgstr "SystemRolegroup per uso interno" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" -msgstr "Prendi" +msgstr "Prendi in carico" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" -msgstr "" +msgstr "Prendi in carico ticket" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" -msgstr "" +msgstr "PrendiInCaricoTicket" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" -msgstr "Preso" - -#: NOT FOUND IN SOURCE -msgid "Task" -msgstr "" +msgstr "Preso in carico" -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "Modello" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Modello n°%1" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "Modello eliminato" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "Modello non trovato" @@ -5100,11 +5095,11 @@ msgstr "Modello non trovato" msgid "Template not found\\n" msgstr "Modello non trovato\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "Modello elaborato" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "Modelli" @@ -5114,498 +5109,490 @@ msgstr "Modelli per %1\\n" #: NOT FOUND IN SOURCE msgid "Text" -msgstr "" +msgstr "Testo" -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" -msgstr "That is already the current value" +msgstr "Il valore attuale è già questo" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" -msgstr "That is not a value for this custom field" +msgstr "Questo campo personalizzato non ammette questo valore" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" -msgstr "That is the same value" +msgstr "Il valore è lo stesso" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" -msgstr "That principal already has that right" +msgstr "Questo utente/gruppo ha già questo diritto" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" -msgstr "That principal is already a %1 for this coda" +msgstr "Questo utente/gruppo è già %1 per questa coda" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" -msgstr "That principal is already a %1 for this ticket" +msgstr "Questo utente/gruppo è già %1 per questo ticket" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" -msgstr "That principal is not a %1 for this coda" +msgstr "Questo utente/gruppo non è %1 per questa coda" #: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" -msgstr "That principal is not a %1 for this ticket" +msgstr "Questo utente/gruppo non è %1 per questo ticket" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" -msgstr "That coda does not exist" +msgstr "La coda non esiste" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" -msgstr "That ticket has unresolved dependencies" +msgstr "Il ticket ha dipendenze non risolte" #: NOT FOUND IN SOURCE msgid "That user already has that right" -msgstr "That user already has that right" +msgstr "L'utente ha già questo diritto" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" -msgstr "That user already owns that ticket" +msgstr "L'utente ha già il ticket in carico" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" -msgstr "That user does not exist" +msgstr "L'utente non esiste" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" -msgstr "Questo utente è già previlegiato" +msgstr "L'utente è già previlegiato" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" -msgstr "Questo utente è già non previlegiato" +msgstr "L'utente è già non previlegiato" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" -msgstr "Ora questo utente è previlegiato" +msgstr "Ora l'utente è previlegiato" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" -msgstr "Ora questo utente è non previlegiato" +msgstr "Ora l'utente è non previlegiato" #: NOT FOUND IN SOURCE msgid "That user is now unprivilegedileged" -msgstr "Questo utente ora è non previlegiato" +msgstr "Ora l'utente è non previlegiato" -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" -msgstr "That user may not own tickets in that coda" +msgstr "L'utente non può prendere in carico ticket da questa coda" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" -msgstr "That's not a numerical id" +msgstr "Non è un identificativo numerico" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "Dati di base" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" -msgstr "The CC of a ticket" +msgstr "Il Cc di un ticket" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" -msgstr "The administrative CC of a ticket" +msgstr "Il Cc amministrativo di un ticket" #: NOT FOUND IN SOURCE msgid "The comment has been recorded" -msgstr "The comment has been recorded" +msgstr "Il commento è stato registrato" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 following command will find all active tickets in the coda 'general' and set their priority to 99 if they haven't been touched in 4 hours:" - -#: NOT FOUND IN SOURCE -msgid "The following commands were not proccessed:\\n\\n" -msgstr "" +msgstr "Il comando seguente troverà tutti i ticket attivi nella coda 'general' e ne imposterà la priorità a 99 se nessuno li ha toccati nelle ultime 4 ore:" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." -msgstr "The new value has been set." +msgstr "Il nuovo valore è stato impostato." -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" -msgstr "The owner of a ticket" +msgstr "L'incaricato del ticket" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" -msgstr "Il richiedente di un ticket" +msgstr "Il richiedente del ticket" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" -msgstr "These comments aren't generally visible to the user" +msgstr "Questi commenti non vengono normalmente mostrati all'utente" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:912 msgid "This custom field does not apply to that object" -msgstr "" +msgstr "L'oggetto non ammette questo campo personalizzato" -#: html/Admin/Tools/Configuration.html:5 +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" -msgstr "" +msgstr "Questa funzionalità è riservata agli amministratori di sistema" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." -msgstr "" +msgstr "Il messaggio sarà inviato a..." #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" -msgstr "This ticket %1 %2 (%3)\\n" +msgstr "Il ticket %1 %2 (%3)\\n" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "Questo strumento permette di eseguire qualsiasi modulo perl da dentro RT." -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" -msgstr "This transaction appears to have no content" +msgstr "La transazione sembra non avere alcun contenuto" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" -msgstr "I %1 tickets di questo utente a più alta priorità" +msgstr "I %1 ticket a maggior priorità richiesti da questo utente" #: NOT FOUND IN SOURCE msgid "This user's 25 highest priority tickets" -msgstr "I 25 tickets a più alta priorità di questo utente" +msgstr "I 25 ticket a maggior priorità richiesti da questo utente" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "Gio." -#: NOT FOUND IN SOURCE -msgid "Ticket" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Ticket # %1 %2" -msgstr "Ticket n° %1 %2" +msgstr "Ticket n° %1 %2" #: NOT FOUND IN SOURCE msgid "Ticket # %1 Jumbo update: %2" msgstr "Ticket n° %1 aggiornamento Jumbo: %2" -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" -msgstr "Ticket n° %1 Jumbo update: %2" +msgstr "Ticket n°%1 aggiornamento Jumbo: %2" -#: html/Approvals/Elements/ShowDependency:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Ticket n°%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" -msgstr "Ticket %1 created in coda '%2'" +msgstr "Creato ticket %1 nella coda '%2'" #: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" -msgstr "Ticket %1 loaded\\n" +msgstr "Caricato ticket %1\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Ticket %1: %2" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:74 msgid "Ticket Custom Fields" -msgstr "" +msgstr "Campi personalizzati del ticket" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" -msgstr "Ticket History n° %1 %2" +msgstr "Cronologia del ticket n° %1 %2" #: NOT FOUND IN SOURCE msgid "Ticket Id" -msgstr "Ticket Id" +msgstr "Identificativo ticket" #: etc/initialdata:324 msgid "Ticket Resolved" -msgstr "Ticket Risolto" +msgstr "Ticket risolto" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 msgid "Ticket Transactions" -msgstr "" +msgstr "Transazioni sul ticket" #: NOT FOUND IN SOURCE msgid "Ticket attachment" -msgstr "Allegato al ticket: il " +msgstr "Allegato al ticket" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "Contenuto del ticket" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" -msgstr "Ticket content type" +msgstr "Tipo del contenuto del ticket" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" -msgstr "Ticket could not be created due to an internal error" +msgstr "A causa di un errore interno non è stato possibile creare il ticket" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "Ticket creato" #: NOT FOUND IN SOURCE msgid "Ticket creation failed" -msgstr "Ticket creation failed" +msgstr "Creazione del ticket fallita" -#: lib/RT/Transaction_Overlay.pm:502 +#: NOT FOUND IN SOURCE msgid "Ticket deleted" msgstr "Ticket eliminato" #: NOT FOUND IN SOURCE msgid "Ticket id not found" -msgstr "Ticket id not found" +msgstr "Identificativo del ticket non trovato" #: NOT FOUND IN SOURCE msgid "Ticket killed" -msgstr "Ticket killed" +msgstr "Ticket eliminato" -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" -msgstr "" +msgstr "Metadati del ticket" #: NOT FOUND IN SOURCE msgid "Ticket not found" -msgstr "Ticket not found" +msgstr "Ticket non trovato" #: etc/initialdata:310 msgid "Ticket status changed" -msgstr "Ticket status changed" +msgstr "Stato del ticket cambiato" #: NOT FOUND IN SOURCE msgid "Ticket watchers" msgstr "Osservatori del ticket" -#: html/Elements/Tabs:46 -msgid "Tickets" -msgstr "" +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "Modulo di ricerca TicketSQL" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) -msgid "Tickets %1 %2" -msgstr "" +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 +msgid "Tickets" +msgstr "Ticket" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 by %2" -msgstr "Tickets %1 by %2" +msgstr "Ticket %1 da %2" #: NOT FOUND IN SOURCE msgid "Tickets from %1" -msgstr "Tickets from %1" +msgstr "Ticket da %1" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" -msgstr "Tickets which depend on this approval:" +msgstr "Ticket che dipendono da questa approvazione:" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" -msgstr "" +msgstr "Tempo stimato" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" -msgstr "Tempo RImasto" +msgstr "Tempo rimasto" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" -msgstr "Tempo Lavorato" +msgstr "Tempo lavorato" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" -msgstr "Tempo rimasto" +msgstr "Tempo rimanente" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" -msgstr "Time to display" +msgstr "Tempo impiegato per l'elaborazione" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" -msgstr "Tempo lavorato" +msgstr "Tempo impiegato" #: NOT FOUND IN SOURCE msgid "TimeLeft" -msgstr "TempoRimasto" +msgstr "TempoRimanente" -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" -msgstr "TempoLavorato" +msgstr "TempoImpiegato" + +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "Titolo" #: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" -msgstr "To generate a diff of this commit:" +msgstr "Per generare una diff dopo il commit:" #: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:\\n" -msgstr "To generate a diff of this commit:\\n" +msgstr "Per generare una diff dopo il commit:\\n" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "" +msgstr "Per richieste di supporto, formazione, personalizzazioni o acquisto di licenze, si prega di contattare %1." -#: lib/RT/Ticket_Overlay.pm:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" -msgstr "Told" +msgstr "UltimaComunicazioneARichiedenti" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" -msgstr "" +msgstr "Strumenti" #: etc/initialdata:252 msgid "Transaction" -msgstr "Transaction" +msgstr "Transazioni" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" -msgstr "Transaction %1 purged" +msgstr "Transazione %1 ripulita" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" -msgstr "Transaction Created" +msgstr "Transazione creata" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:78 msgid "Transaction Custom Fields" -msgstr "" +msgstr "Campi personalizzati della transazione" -#: lib/RT/Transaction_Overlay.pm:92 +#: NOT FOUND IN SOURCE msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "Transaction->Create fallita, devi specificare l'identificativo dell'oggetto" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:125 msgid "Transaction->Create couldn't, as you didn't specify an object type and id" -msgstr "" +msgstr "Transaction->Create fallita, devi specificare il tipo e l'identificativo dell'oggetto" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" -msgstr "Transactions are immutable" +msgstr "Le transazioni sono immutabili" #: NOT FOUND IN SOURCE msgid "Trying to delete a right: %1" -msgstr "Sto cercando di eliminare un diritto: %1" +msgstr "Provo a eliminare un diritto: %1" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "Mar." -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" -msgstr "Type" - -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" +msgstr "Tipo" -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" -msgstr "Unimplemented" +msgstr "NonImplementato" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" -msgstr "Unix login" +msgstr "Username unix" #: NOT FOUND IN SOURCE msgid "UnixUsername" -msgstr "UnixUsername" +msgstr "UsernameUnix" -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" -msgstr "Unknown ContentEncoding %1" +msgstr "ContentEncoding sconosciuto %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "Campo sconosciuto: $key" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" -msgstr "Unlimited" +msgstr "Illimitato" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" -msgstr "" +msgstr "Ricerca senza nome" #: etc/initialdata:32 msgid "Unprivileged" -msgstr "Non previlegiato" +msgstr "NonPrevilegiato" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:60 msgid "Unselected Custom Fields" -msgstr "" +msgstr "Campi personalizzati non selezionati" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:61 msgid "Unselected objects" -msgstr "" +msgstr "Oggetti non selezionati" -#: lib/RT/Transaction_Overlay.pm:562 +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" -msgstr "Untaken" - -#: NOT FOUND IN SOURCE -msgid "Untitled search" -msgstr "" +msgstr "NonPreso" -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "Aggiornamento" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" -msgstr "" +msgstr "Aggiorna tutti" #: NOT FOUND IN SOURCE msgid "Update ID" -msgstr "ID Aggiornamento" +msgstr "Identificativo aggiornamento" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" -msgstr "" +msgstr "Aggiorna ticket" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" -msgstr "Tipo Aggiornamento" +msgstr "Tipo aggiornamento" #: NOT FOUND IN SOURCE msgid "Update all these tickets at once" -msgstr "Aggiorna tutti questi tickets in una sola volta" +msgstr "Aggiorna tutti questi ticket contemporaneamente" #: NOT FOUND IN SOURCE msgid "Update email" -msgstr "Email aggiornamento" +msgstr "Aggiorna email" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" -msgstr "" +msgstr "Aggiorna ticket multipli" #: NOT FOUND IN SOURCE msgid "Update name" -msgstr "Nome aggiornamento" +msgstr "Aggiorna nome" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "Aggiornamento non registrato." -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" -msgstr "Aggiorna i tickets selezionati" +msgstr "Aggiorna i ticket selezionati" #: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Aggiorna la firma" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "Aggiorna il ticket" @@ -5613,175 +5600,176 @@ msgstr "Aggiorna il ticket" msgid "Update ticket # %1" msgstr "Aggiorna il ticket n° %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Aggiorna il ticket n°%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Aggiorna il ticket n°%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." -msgstr "Update type was neither correspondence nor comment." +msgstr "Il tipo aggiornamento non era ne' corrispondenza ne' commento." -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "Aggiornato" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" -msgstr "" +msgstr "Upload" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:84 msgid "Upload multiple files" -msgstr "" +msgstr "Upload file multipli" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:79 msgid "Upload multiple images" -msgstr "" +msgstr "Upload immagini multiple" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:85 msgid "Upload one file" -msgstr "" +msgstr "Upload file singolo" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:80 msgid "Upload one image" -msgstr "" +msgstr "Upload immagine singola" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:86 msgid "Upload up to %1 files" -msgstr "" +msgstr "Upload fino a %1 file" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:81 msgid "Upload up to %1 images" -msgstr "" +msgstr "Upload fino a %1 immagini" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" -msgstr "" +msgstr "Upload delle modifiche" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" -msgstr "" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" +msgstr "Usa altri strumenti di amministrazione di RT" #: NOT FOUND IN SOURCE msgid "User %1 %2: %3\\n" -msgstr "User %1 %2: %3\\n" +msgstr "Utente %1 %2: %3\\n" #: NOT FOUND IN SOURCE msgid "User %1 Password: %2\\n" -msgstr "User %1 Password: %2\\n" +msgstr "Utente %1 Password: %2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." -msgstr "" +msgstr "Impossibile trovare l'utente '%1'" #: NOT FOUND IN SOURCE msgid "User '%1' not found" -msgstr "User '%1' not found" +msgstr "Utente '%1' non trovato" #: NOT FOUND IN SOURCE msgid "User '%1' not found\\n" -msgstr "User '%1' not found\\n" +msgstr "Utente '%1' non trovato\\n" #: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" -msgstr "Definito da Utente" +msgstr "Definito dall'utente" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" -msgstr "" +msgstr "Condizioni e azioni definite dall'utente" #: NOT FOUND IN SOURCE msgid "User ID" -msgstr "User ID" +msgstr "Username" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" -msgstr "User Id" +msgstr "Username" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "Diritti Utente" +msgstr "Diritti dell'utente" -#: NOT FOUND IN SOURCE +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" -msgstr "" +msgstr "L'utente ha richiesto un aggiornamento di tipo sconosciuto sul campo personalizzato %1 per %2 l'oggetto n°%3" -#: html/Admin/Users/Modify.html:252 +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" -msgstr "User could not be created: %1" +msgstr "Impossibile creare l'utente: %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" -msgstr "User created" +msgstr "Utente creato" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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 "Gruppi definiti dall'utente" -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" -msgstr "" +msgstr "Utente caricato" #: NOT FOUND IN SOURCE msgid "User notified" -msgstr "User notified" +msgstr "Utente notificato" #: NOT FOUND IN SOURCE msgid "User view" msgstr "User view" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:99 msgid "User-defined groups" -msgstr "" +msgstr "Gruppi definiti dall'utente" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "Username" -#: 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 +#: 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:1086 msgid "Users" msgstr "Utenti" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "Utenti che soddisfano il criterio di ricerca" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" -msgstr "" +msgstr "Query valida" #: NOT FOUND IN SOURCE msgid "ValueOfQueue" -msgstr "ValueOfQueue" +msgstr "ValoreDellaCoda" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "Valori" -#: NOT FOUND IN SOURCE -msgid "VrijevormEnkele" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "Osserva" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "OsservaComeAdminCc" +#: NOT FOUND IN SOURCE +msgid "Watcher" +msgstr "Osservatore" + #: NOT FOUND IN SOURCE msgid "Watcher loaded" msgstr "Osservatore caricato" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "Osservatori" @@ -5789,132 +5777,112 @@ msgstr "Osservatori" msgid "WebEncoding" msgstr "WebEncoding" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "Mer." #: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "Quando un ticket ha ricevuto tutte le approvazioni richieste, aggiungi una corrispondenza al ticket originale" #: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "Quando un ticket riceve una qualsiasi delle approvazioni richieste, aggiungi una corrispondenza al ticket originale" #: etc/initialdata:146 msgid "When a ticket is created" -msgstr "When a ticket is created" +msgstr "Quando viene creato un ticket" #: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "Quando una richiesta di approvazione viene creata, notifica chi ha in carico il ticket e gli AdminCc che devono approvarlo" #: etc/initialdata:151 msgid "When anything happens" -msgstr "When anything happens" +msgstr "Quando succede qualsiasi cosa" #: etc/initialdata:199 msgid "Whenever a ticket is resolved" -msgstr "Whenever a ticket is resolved" +msgstr "Quando un ticket viene risolto" #: etc/initialdata:185 msgid "Whenever a ticket's owner changes" -msgstr "Whenever a ticket's owner changes" +msgstr "Quando cambia colui che ha in carico il ticket" #: etc/initialdata:178 etc/upgrade/3.1.17/content:16 msgid "Whenever a ticket's priority changes" -msgstr "" +msgstr "Quando cambia la priorità di un ticket" #: etc/initialdata:193 msgid "Whenever a ticket's queue changes" -msgstr "Whenever a ticket's coda changes" +msgstr "Quando il ticket si sposta in un'altra coda" #: etc/initialdata:170 msgid "Whenever a ticket's status changes" -msgstr "Whenever a ticket's status changes" +msgstr "Quando cambia lo stato di un ticket" #: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" -msgstr "Whenever a user-defined condition occurs" +msgstr "Quando si verifica una condizione definita dall'utente" #: etc/initialdata:164 msgid "Whenever comments come in" -msgstr "Whenever comments come in" +msgstr "Quando arrivano commenti" #: etc/initialdata:157 msgid "Whenever correspondence comes in" -msgstr "Whenever correspondence comes in" - -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" +msgstr "Quando arrivano corrispondenze" -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "Lavoro" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" -msgstr "" +msgstr "Lavoro offline" #: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "TelefonoLavoro" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" -msgstr "Lavoro" - -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "" +msgstr "Impiegato" -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" -msgstr "You already own this ticket" +msgstr "Hai già in carico questo ticket" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" -msgstr "You are not an authorized user" - -#: NOT FOUND IN SOURCE -msgid "You can access it with the Download button on the right." -msgstr "" +msgstr "Non sei un utente autorizzato" -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" -msgstr "You can only reassign tickets that you own or that are unowned" +msgstr "Puoi solo riassegnare ticket che hai in carico, o che non sono ancora assegnati" #: NOT FOUND IN SOURCE msgid "You don't have permission to view that ticket.\\n" msgstr "Non hai i permessi per visualizzare questo ticket.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 #. ($num, $queue) msgid "You found %1 tickets in queue %2" -msgstr "Hai trovato %1 tickets nella coda %2" +msgstr "Hai trovato %1 ticket nella coda %2" -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "Ti sei scollegato da RT." -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." -msgstr "Non hai permessi per creare tickets in questa coda." +msgstr "Non hai l'autorizzazione per creare ticket in questa coda." -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." -msgstr "Non puoi creare richieste in questa coda." +msgstr "Non puoi creare ticket in questa coda." -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "Collegati di nuovo" @@ -5924,15 +5892,15 @@ msgstr "Le tue %1 richieste" #: NOT FOUND IN SOURCE msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" -msgstr "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "L'amministratore RT non ha configurato correttamente l'alias di email che invoca RT" #: etc/initialdata:502 msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "Your request has been approved by %1. Other approvals may still be pending." +msgstr "La tua richiesta è stata approvata da %1. Potrebbero essere necessarie altre approvazioni." #: etc/initialdata:540 msgid "Your request has been approved." -msgstr "Your request has been approved." +msgstr "La tua richiesta è stata approvata." #: NOT FOUND IN SOURCE msgid "Your request was rejected" @@ -5940,38 +5908,42 @@ msgstr "Your request was rejected" #: etc/initialdata:445 msgid "Your request was rejected." -msgstr "Your request was rejected." +msgstr "La tua richiesta è stata respinta." -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "Il tuo username o la tua password non sono corretti" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "CAP" #: NOT FOUND IN SOURCE msgid "[no subject]" -msgstr "[nessun oggetto]" +msgstr "[senza oggetto]" -#: NOT FOUND IN SOURCE -msgid "and is not" -msgstr "" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" +msgstr "permetti la creazione di ricerche salvate" -#: NOT FOUND IN SOURCE -msgid "and not" -msgstr "" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" +msgstr "permetti il caricamento di ricerche salvate" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "come concesso a %1" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "appartiene a" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "chiuso" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "contiene" @@ -5991,7 +5963,11 @@ msgstr "corrispondenza (probabilmente) non inviata" msgid "correspondence sent" msgstr "corrispondenza inviata" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: NOT FOUND IN SOURCE +msgid "current: $current, want $want, Error near ->$val<- expecting a " +msgstr "attuale: $current, richiesto $want, Errore vicino a ->$val<- mi aspettavo " + +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "giorni" @@ -6001,28 +5977,52 @@ msgstr "morto" #: NOT FOUND IN SOURCE msgid "delete" -msgstr "elimina" +msgstr "cancella" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" -msgstr "eliminato" +msgstr "cancellato" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "non appartiene a" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "non corrisponde a" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "non contiene" -#: NOT FOUND IN SOURCE -msgid "email address" -msgstr "" - -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "uguale a" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "errore: impossibile spostare in basso" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "errore: impossibile spostare a sinistra" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "errore: impossibile spostare in alto" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "errore: niente da cancellare" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "errore: niente da spostare" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "errore: niente da invertire" + #: NOT FOUND IN SOURCE msgid "false" msgstr "falso" @@ -6031,76 +6031,68 @@ msgstr "falso" msgid "filename" msgstr "nome file" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" -msgstr "più grande di" +msgstr "maggiore di" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "gruppo '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "ore" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" -msgstr "id" - -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" +msgstr "Codice" -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" -msgstr "è" +msgstr "uguale a" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" -msgstr "non è" +msgstr "diverso da" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "minore di" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "corrisponde a" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "min" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "minuti" -#: NOT FOUND IN SOURCE -msgid "modifications\\n\\n" -msgstr "" - -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "mesi" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "nuovo" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" -msgstr "" +msgstr "nessun nome" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "nessun valore" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "nessuno" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "diverso da" @@ -6108,86 +6100,82 @@ msgstr "diverso da" msgid "notlike" msgstr "diverso da" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "aperto" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "Gruppo personale '%1' per l'utente '%2'" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "coda %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" -msgstr "rifiutato" +msgstr "respinto" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "risolto" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "sec" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "Mostra configurazione" + +#: html/Search/Results.html:82 msgid "spreadsheet" -msgstr "" +msgstr "foglio di calcolo" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "in stallo" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "sistema %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "gruppo di sistema '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" -msgstr "the calling component did not specify why" - -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "" +msgstr "il componente chiamante non ha specificato il perché" -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ticket n°%1 %2" -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "" - #: NOT FOUND IN SOURCE msgid "true" msgstr "vero" -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" -msgstr "undescribed group %1" +msgstr "gruppo %1 senza descrizione" #: NOT FOUND IN SOURCE msgid "undescripbed group %1" -msgstr "undescripbed group %1" +msgstr "gruppo %1 senza descrizione" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "utente %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "settimane" @@ -6195,7 +6183,7 @@ msgstr "settimane" msgid "with template %1" msgstr "con il modello %1" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "anni" diff --git a/rt/lib/RT/I18N/ja.po b/rt/lib/RT/I18N/ja.po index 8af3075ad..259f857c0 100644 --- a/rt/lib/RT/I18N/ja.po +++ b/rt/lib/RT/I18N/ja.po @@ -15,153 +15,106 @@ msgstr "" msgid "#" msgstr "#" -#: NOT FOUND IN SOURCE -msgid "#%1" -msgstr "" - -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" msgstr "" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) -msgid "%1 %2 %3" -msgstr "" - -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" msgstr "" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%3ã«å¤‰æ›´ã•れãŸ%1 %2 " -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 %2 of group %3" -msgstr "" - -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 %2 הוסף" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 מקבוצה %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 נמחק" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 שונה ל %3" -msgstr "" - #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 ã“ã®ãƒã‚±ãƒƒãƒˆ\\n" -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 פנייה זו\\n" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" msgstr "" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 - %2 shown" -msgstr "" - -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" msgstr "" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 - ×רגומנט להעביר ×ל %2" msgstr "" $RT::VERSION, @@ -170,20 +123,35 @@ msgstr "" $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 -#. ('»|«', $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 +#. ('»|«', + $RT::VERSION, + '2005', + '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1スクリプトアクションロードã—ã¾ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%2ã¨åŒã˜ãƒãƒªãƒ¥ãƒ¼ã®%1ãŒè¿½åŠ ã•れã¾ã—ãŸ" @@ -200,32 +168,31 @@ msgstr "%1aliasesã‚’å‹•ã‹ã™ãŸã‚ã«ãƒã‚±ãƒƒãƒˆIDãŒå¿…è¦ã§ã™ " msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1aliasesã‚’å‹•ã‹ã™ãŸã‚ã«ãƒã‚±ãƒƒãƒˆIDãŒå¿…è¦ã§ã™(%2ã‹ã‚‰) %3" -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($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:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%2ã«ã‚ˆã‚‹%1" -#: 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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($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:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" msgstr "" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "" @@ -233,39 +200,32 @@ msgstr "" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1ã¯ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã‚’ã¯ã˜ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ(%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1ã¯åˆ†è§£ã™ã‚‹ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚’設定ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚RTã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«ä¸€è²«æ€§ãŒãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) msgid "%1 created" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) msgid "%1 deleted" msgstr "" -#: html/Elements/MyTickets:24 +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I own..." -msgstr "" - -#: html/Elements/MyTickets:26 -#. ($rows) -msgid "%1 highest priority tickets I requested..." -msgstr "" - -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "" -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1ã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ã¯%2ã§ã¯ã‚りã¾ã›ã‚“" @@ -274,8 +234,7 @@ msgstr "%1ã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ã¯%2ã§ã¯ã‚りã¾ã›ã‚“" msgid "%1 is no longer a %2 for this ticket." msgstr "%1ã¯ã“ã®ãƒã‚±ãƒƒãƒˆã§ã¯%2ã§ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a value for custom field %2" msgstr "%1ã¯ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールド%2ã®ãƒãƒªãƒ¥ãƒ¼ã¯ã‚りã¾ã›ã‚“" @@ -283,11 +242,7 @@ msgstr "%1ã¯ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールド%2ã®ãƒãƒªãƒ¥ãƒ¼ã¯ã‚りã¾ã›ã‚“" msgid "%1 isn't a valid Queue id." msgstr "%1ã¯æœ‰åйãªã‚­ãƒ¥ãƒ¼IDã§ã¯ã‚りã¾ã›ã‚“。" -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -296,15 +251,7 @@ msgstr "" msgid "%1 min" msgstr "%1分" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" msgstr "" @@ -313,11 +260,11 @@ msgstr "" msgid "%1 not shown" msgstr "%1表示ã•れã¾ã›ã‚“" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:827 msgid "%1 objects" msgstr "" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "" @@ -334,11 +281,7 @@ msgstr "%1タイプã¯$MessageIdIDã§ã¯ä¸æ˜Žã§ã™" msgid "%1 type unknown for %2" msgstr "%1タイプã¯%2ã§ã¯ä¸æ˜Žã§ã™" -#: NOT FOUND IN SOURCE -msgid "%1 was created without a CurrentUser\\n" -msgstr "" - -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1ã¯åˆ†è§£ã•れãŸã‚°ãƒ«ãƒ¼ãƒ—ãƒã‚±ãƒƒãƒˆã®ã™ã¹ã¦ã®ãƒ¡ãƒ³ãƒãƒ¼ã‚’分解ã—ã¾ã™ã€‚" @@ -347,72 +290,36 @@ msgstr "%1ã¯åˆ†è§£ã•れãŸã‚°ãƒ«ãƒ¼ãƒ—ãƒã‚±ãƒƒãƒˆã®ã™ã¹ã¦ã®ãƒ¡ãƒ³ãƒãƒ¼ msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1ãŒã‚‚ã—リンクã•れãŸãƒªã‚¯ã‚¨ã‚¹ãƒˆã®å¾“属者(もã—ãã¯ãƒ¡ãƒ³ãƒãƒ¼ï¼‰ã§ã‚ã‚‹ã¨ã€[ローカル]ベースを行ãè©°ã¾ã‚‰ã›ã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ã€‚" -#: NOT FOUND IN SOURCE -msgid "%1 הוסף כערך עבור %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 לפני %2 ימי×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 על ידי %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 פעולת-סקריפ נטענה" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 שונה מ %2 ל %3" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:828 msgid "%1's %2 objects" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:829 msgid "%1's %2's %3 objects" msgstr "" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" msgstr "" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1:アタッãƒãƒ¡ãƒ³ãƒˆãŒç‰¹å®šã§ãã¾ã›ã‚“" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "%1'ã¯ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã«ç„¡åйåãƒãƒªãƒ¥ãƒ¼ã§ã™" @@ -421,69 +328,53 @@ msgstr "%1'ã¯ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã«ç„¡åйåãƒãƒªãƒ¥ãƒ¼ã§ã™" 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: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 +#: 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:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(ãƒã‚±ãƒƒãƒˆIDã¾ãŸã¯URLsを空欄ã§åŒºåˆ‡ã£ã¦å…¥åŠ›ã—ã¦ãã ã•ã„)" - -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "" -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: html/Admin/Queues/Modify.html:75 html/Admin/Queues/Modify.html:81 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) -msgid "(If left blank, will default to %1" +msgid "(If left blank, will default to %1)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "(No Value)" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(メンãƒãƒ¼ãªã—)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "(スクリプトãªã—)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 msgid "(None)" msgstr "" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:88 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 "" @@ -491,11 +382,11 @@ msgstr "" 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 "(Eメールアドレスã«ãŠã‘るカンマã§åŒºåˆ‡ã‚‰ã‚ŒãŸãƒªã‚¹ãƒˆã¸ã®æ­£ç¢ºãªã‚¢ãƒƒãƒ—デートã®ãƒ–ラインドコピーをé€ã‚‹ã€‚今後ã®ã‚¢ãƒƒãƒ—デートを誰ãŒå—ä¿¡ã™ã‚‹ã‹ã¯<b>変更ã§ãã¾ã›ã‚“</b>)" -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 "" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 "" @@ -503,74 +394,54 @@ msgstr "" 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 "(Eメールアドレスã«ãŠã‘るカンマã§åŒºåˆ‡ã‚‰ã‚ŒãŸãƒªã‚¹ãƒˆã¸ã®æ­£ç¢ºãªã‚¢ãƒƒãƒ—デートã®ã‚³ãƒ”ーをé€ã‚‹ã€‚今後ã®ã‚¢ãƒƒãƒ—デートを誰ãŒå—ä¿¡ã™ã‚‹ã‹ã¯<b>変更ã§ãã¾ã›ã‚“</b>)" -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 "" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" msgstr "" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(空)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" - #: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(サブジェクトãªã—)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(ãƒãƒªãƒ¥ãƒ¼ãªã—)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFieldValues:47 msgid "(no values)" msgstr "" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(ã²ã¨ã¤ã®ãƒã‚±ãƒƒãƒˆã®ã¿ï¼‰" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 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:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(必è¦ã§ã™ï¼‰" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "ç§ãŒæ‰€æœ‰ã—ã¦ã„ã‚‹25ã®æœ€ã‚‚é‡è¦ãªå„ªå…ˆæ¨©" @@ -579,132 +450,108 @@ msgstr "ç§ãŒæ‰€æœ‰ã—ã¦ã„ã‚‹25ã®æœ€ã‚‚é‡è¦ãªå„ªå…ˆæ¨©" msgid "25 highest priority tickets I requested..." msgstr "ç§ãŒãƒªã‚¯ã‚¨ã‚¹ãƒˆã—ãŸ25ã®æœ€ã‚‚é‡è¦ãªå„ªå…ˆæ¨©" -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"æ–°ã—ã„ãƒã‚±ãƒƒãƒˆ\"> %1" -#: NOT FOUND IN SOURCE -msgid "??????" -msgstr "" - #: etc/initialdata:218 msgid "A blank template" msgstr "" -#: NOT FOUND IN SOURCE -msgid "ACE Deleted" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." msgstr "" -#: NOT FOUND IN SOURCE -msgid "ACE Loaded" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be found" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "エースã¯ã¿ã¤ã‹ã‚Šã¾ã›ã‚“" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "エースã¯ä½œæˆã€å‰Šé™¤ã®ã¿ã§ã™ã€‚" +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "æ„図的ã§ãªã„ãƒã‚±ãƒƒãƒˆã®ä¿®æ­£ã‚’防ããŸã‚ã«å¼·åˆ¶çµ‚了ã—ã¾ã™ã€‚\\n" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "アクセスコントロール" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "アクション" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "アクション%1ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: bin/rt-crontool:119 -msgid "Action committed." +#: bin/rt-crontool:148 +msgid "Action committed.\\n" msgstr "" -#: bin/rt-crontool:115 +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "管ç†Ccを追加ã™ã‚‹" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "Ccを追加ã™ã‚‹" -#: html/Search/Elements/PickCriteria:24 -msgid "Add Criteria" +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" msgstr "" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 -msgid "Add More Files" +#: html/Search/Elements/PickCriteria:46 +msgid "Add Criteria" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Add Next State" +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 +msgid "Add More Files" msgstr "" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "リクエストã™ã‚‹äººã‚’を追加ã™ã‚‹" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: 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 "æ–°ã—ã„グローãƒãƒ«ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹" @@ -713,49 +560,49 @@ msgstr "æ–°ã—ã„グローãƒãƒ«ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹" msgid "Add a scrip to this queue" msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã«ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" msgstr "ã™ã¹ã¦ã®ã‚­ãƒ¥ãƒ¼ã«é©å¿œã™ã‚‹ã‚¹ã‚¯ãƒªãƒ—トを追加ã™ã‚‹" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" msgstr "" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "é¸æŠžã•れãŸãƒã‚±ãƒƒãƒˆã¸ã®ã‚³ãƒ¡ãƒ³ãƒˆã¾ãŸã¯è¿”事を追加ã™ã‚‹" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "メンãƒãƒ¼ã‚’追加ã™ã‚‹" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "æ–°ã—ã„ウォッãƒãƒ£ãƒ¼ã‚’追加ã™ã‚‹" -#: NOT FOUND IN SOURCE -msgid "AddNextState" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" msgstr "" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã«%1ã®è²¬ä»»è€…を追加ã—ã¾ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "ã“ã®ãƒã‚±ãƒƒãƒˆã«%1ã®è²¬ä»»è€…を追加ã—ã¾ã—ãŸ" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "使‰€1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "使‰€2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "管ç†Cc" @@ -767,7 +614,7 @@ msgstr "" msgid "Admin Correspondence" msgstr "" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" msgstr "管ç†ã‚­ãƒ¥ãƒ¼" @@ -775,7 +622,7 @@ msgstr "管ç†ã‚­ãƒ¥ãƒ¼" msgid "Admin users" msgstr "管ç†ãƒ¦ãƒ¼ã‚¶ãƒ¼" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "管ç†/グローãƒãƒ«è¨­å®š" @@ -787,59 +634,39 @@ msgstr "管ç†/グループ" msgid "Admin/Queue/Basics" msgstr "管ç†/キュー/基本" -#: NOT FOUND IN SOURCE -msgid "AdminAllPersonalGroups" -msgstr "" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "管ç†Cc" -#: NOT FOUND IN SOURCE -msgid "AdminComment" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "AdminCorrespondence" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:101 msgid "AdminCustomField" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 -msgid "AdminCustomFields" -msgstr "" - -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "管ç†è€…Cc" -#: NOT FOUND IN SOURCE -msgid "Admins" -msgstr "" - -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" msgstr "" @@ -847,83 +674,59 @@ msgstr "" msgid "Advanced Search" msgstr "çµžè¾¼ã¿æ¤œç´¢" -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "" - -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "後" -#: NOT FOUND IN SOURCE -msgid "Age" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Alias" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Alias for" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" msgstr "" #: etc/initialdata:363 msgid "All Approvals Passed" msgstr "" -#: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:94 -msgid "All Custom Fields" -msgstr "" - -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "ã™ã¹ã¦ã®ã‚­ãƒ¥ãƒ¼" -#: NOT FOUND IN SOURCE -msgid "Always sends a message to the requestors independent of message sender" +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 msgid "Applies to" msgstr "" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply" msgstr "" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" msgstr "" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Approval Details" -msgstr "" - #: etc/initialdata:351 msgid "Approval Passed" msgstr "" @@ -932,11 +735,7 @@ msgstr "" msgid "Approval Rejected" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Approval diagram" -msgstr "" - -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "" @@ -944,87 +743,59 @@ msgstr "" msgid "Approver's notes: %1" msgstr "" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "四月" -#: NOT FOUND IN SOURCE -msgid "April" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "昇順" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "Assign and remove custom fields" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "AssignCustomFields" msgstr "" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "添付" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "添付ファイル" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: 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:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "添付ファイルãŒä½œæˆã•れã¾ã—ãŸ" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "添付ファイルå" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "添付ファイル" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" msgstr "" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "八月" -#: NOT FOUND IN SOURCE -msgid "August" -msgstr "" - #: NOT FOUND IN SOURCE msgid "AuthSystem" msgstr "自動システム" @@ -1037,14 +808,6 @@ msgstr "" msgid "Autoreply To Requestors" msgstr "" -#: NOT FOUND IN SOURCE -msgid "AutoreplyToRequestors" -msgstr "" - -#: html/Search/Elements/EditFormat:4 -msgid "Available Columns" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "悪ã„PGPç½²å: %1\\n" @@ -1061,164 +824,145 @@ msgstr "%1ã®æ‚ªã„データã§ã™" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "添付ファイルã«ã¨ã£ã¦æ‚ªã„トランザクションナンãƒãƒ¼ã§ã™ã€‚%1ã¯%2\\nã®ã¯ãšã§ã™" -#: 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 +#: 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 "基本" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "本当ã«å¤‰æ›´ã‚’ä¿å­˜ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "å‰" -#: NOT FOUND IN SOURCE -msgid "Begin Approval" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Binary" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" 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 "ã“ã®æ¤œç´¢ã«ãƒ–ックマークã®ã§ãã‚‹URLã§ã™" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" msgstr "" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "短ã„ヘッダー" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "ãƒã‚±ãƒƒãƒˆã®ä¸€æ‹¬ã‚¢ãƒƒãƒ—デート" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "システムユーザーを修正ã§ãã¾ã›ã‚“" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" msgstr "" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "æ°åãªã—ã«ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドãƒãƒªãƒ¥ãƒ¼ã®è¿½åŠ ã¯ã§ãã¾ã›ã‚“" -#: html/Search/Build.html:694 +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" +msgstr "" + +#: html/Search/Build.html:761 msgid "Can't find a saved search to work with" msgstr "" -#: lib/RT/Link_Overlay.pm:126 +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "ãƒã‚±ãƒƒãƒˆè‡ªä½“ã«ã¯ãƒªãƒ³ã‚¯ã§ãã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:2716 +#: NOT FOUND IN SOURCE msgid "Can't merge into a merged ticket. You should never get this error" msgstr "ã™ã§ã«çµåˆã—ãŸãƒã‚±ãƒƒãƒˆã«ã¯çµåˆã§ãã¾ã›ã‚“。ã“ã®ã‚¨ãƒ©ãƒ¼ã¯æ±ºã—ã¦å‡ºã•ãªã„ã§ãã ã•ã„" -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" msgstr "" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "ベースã¨ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã‚’特定ã§ãã¾ã›ã‚“" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "ユーザー: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "Cc" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "パスワードを変更ã™ã‚‹" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:100 msgid "Check All" msgstr "" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "権利を無効ã«ã™ã‚‹ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "å­ä¾›" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "町" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:102 msgid "Clear All" msgstr "" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "" -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "終了ã—ãŸãƒªã‚¯ã‚¨ã‚¹ãƒˆã§ã™" -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Code" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Command not understood!\\n" msgstr "ç†è§£ã—ã¦ã„ãªã„コマンド!\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "コメント" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "コメントアドレス" @@ -1226,11 +970,11 @@ msgstr "コメントアドレス" msgid "Comment not recorded" msgstr "記録ã•れã¦ã„ãªã„コメント" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "" @@ -1238,11 +982,11 @@ msgstr "" msgid "Comments" msgstr "コメント" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "コメント(リクエスã¨ã—ãŸäººã«ã¯é€ä¿¡ã•れã¾ã›ã‚“)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "コメント(リクエスã¨ã—ãŸäººã«ã¯é€ä¿¡ã•れã¾ã›ã‚“)" @@ -1250,15 +994,15 @@ msgstr "コメント(リクエスã¨ã—ãŸäººã«ã¯é€ä¿¡ã•れã¾ã›ã‚“)" msgid "Comments about %1" msgstr "%1ã«ã¤ã„ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆ" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¤ã„ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆ" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "コメントãŒè¿½åŠ ã•れã¾ã—ãŸ" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "コメントãŒçŸ­ãã•れã¾ã—ãŸ" @@ -1266,23 +1010,23 @@ msgstr "コメントãŒçŸ­ãã•れã¾ã—ãŸ" msgid "Compile Restrictions" msgstr "コンパイルè¦åˆ¶" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "コンディション" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "" -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "コンディションãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "設定" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "確èª" @@ -1294,19 +1038,15 @@ msgstr "コンタクト情報" msgid "Contacted date '%1' could not be parsed" msgstr "コンタクトã•ã‚ŒãŸæ—¥ã«ã¡'%1'ã‚’è§£æžã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "情報" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Coould not create group" -msgstr "" - -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" msgstr "" @@ -1318,7 +1058,7 @@ msgstr "" msgid "Correspondence Address" msgstr "メールアドレス" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "通信ãŒè¿½åŠ ã•れã¾ã—ãŸ" @@ -1326,44 +1066,50 @@ msgstr "通信ãŒè¿½åŠ ã•れã¾ã—ãŸ" msgid "Correspondence not recorded" msgstr "記録ã•れã¦ã„ãªã„通信" -#: lib/RT/Ticket_Overlay.pm:3471 +#: 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 " +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " msgstr "" -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " msgstr "オーナー変更ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "カスタムフィールドã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "グループã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: 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:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "ãƒã‚±ãƒƒãƒˆã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚キューãŒã‚»ãƒƒãƒˆã•れã¦ã„ã¾ã›ã‚“" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 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 find a ticket with id %1" msgstr "ãƒã‚±ãƒƒãƒˆã¨ãã®ID%1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" @@ -1372,11 +1118,11 @@ msgstr "ãƒã‚±ãƒƒãƒˆã¨ãã®ID%1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" msgid "Could not find group %1." msgstr "グループ %1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’作æˆã¾ãŸã¯è¦‹ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "ãã®è²¬ä»»è€…を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -1384,25 +1130,34 @@ msgstr "ãã®è²¬ä»»è€…を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" msgid "Could not find user %1." msgstr "ユーザー%1を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:69 msgid "Could not load CustomField %1" msgstr "" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "グループをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãã®è²¬ä»»è€…ã‚’%1ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "ã“ã®ãƒã‚±ãƒƒãƒˆã§ãã®è²¬ä»»è€…ã‚’%1ã«ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãã®è²¬ä»»è€…ã‚’%1ã¨ã—ã¦å‰Šé™¤ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -1411,15 +1166,15 @@ msgstr "ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãã®è²¬ä»»è€…ã‚’%1ã¨ã—ã¦å‰Šé™¤ã™ã‚‹ã“ã¨ãŒã§ msgid "Could not remove that principal as a %1 for this ticket" msgstr "ã“ã®ãƒã‚±ãƒƒãƒˆã§ãã®è²¬ä»»è€…ã‚’%1ã¨ã—ã¦å‰Šé™¤ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" msgstr "" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" msgstr "グループã«ãƒ¡ãƒ³ãƒãƒ¼ã®è¿½åŠ ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "トランザクション: %1ã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -1432,43 +1187,37 @@ msgstr "GPGã®è¿”事\\nã‹ã‚‰ä½•を行ã£ãŸã‚‰ã‚ˆã„ã®ã‹ã‚ã‹ã‚Šã¾ã›ã‚“ã§ msgid "Couldn't find group\\n" msgstr "グループ\\nãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" msgstr "" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" msgstr "責任者ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 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:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "ユーザーデータベース\\nã‹ã‚‰%1をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Couldn't load KeywordSelects." -msgstr "" - #: NOT FOUND IN SOURCE msgid "Couldn't load RT config file '%1' %2" msgstr "RT設定ファイル'%1' %2をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -1477,25 +1226,26 @@ msgstr "RT設定ファイル'%1' %2をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" msgid "Couldn't load Scrips." msgstr "スクリプトをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: 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:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "リンクをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: NOT FOUND IN SOURCE +#: 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/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" msgstr "キューをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" msgstr "キュー%1をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -1512,16 +1262,26 @@ msgstr "テンプレートをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" msgid "Couldn't load that user (%1)" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ï¼ˆ%1)をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "ãƒã‚±ãƒƒãƒˆ'%1'をロードã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "国" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "作æˆ" @@ -1529,44 +1289,28 @@ msgstr "作æˆ" msgid "Create Tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" - -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "カスタムフィールドã®ä½œæˆ" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:47 -msgid "Create a CustomField which applies to all queues" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create a new Custom Field" msgstr "æ–°ã—ã„カスタムフィールドã®ä½œæˆ" -#: NOT FOUND IN SOURCE -msgid "Create a new article" -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:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "æ–°ã—ã„グループã®ä½œæˆ" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "æ–°ã—ã„個人グループã®ä½œæˆ" @@ -1574,23 +1318,19 @@ msgstr "æ–°ã—ã„個人グループã®ä½œæˆ" 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:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "æ–°ã—ã„ãƒã‚±ãƒƒãƒˆã®ä½œæˆ" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "æ–°ã—ã„ユーザーã®ä½œæˆ" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "キューã®ä½œæˆ" @@ -1602,182 +1342,137 @@ msgstr "呼ã³å‡ºã•れãŸã‚­ãƒ¥ãƒ¼ã®ä½œæˆ" msgid "Create a request" msgstr "リクエストã®ä½œæˆ" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "テンプレートã®ä½œæˆ" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1 / %2 / %3 " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create failed: %1/%2/%3" -msgstr "" - #: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "ãƒã‚±ãƒƒãƒˆã®ä½œæˆ" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 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:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "作æˆã—ã¾ã—ãŸ" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "カスタムフィールド%1を作æˆã—ã¾ã—ãŸ" -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "テンプレート%1を作æˆã—ã¾ã—ãŸ" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" msgstr "" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "ç¾åœ¨ã®é–¢ä¿‚" -#: NOT FOUND IN SOURCE -msgid "Current Relationships" -msgstr "" - -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "ç¾åœ¨ã®ãƒ¡ãƒ³ãƒãƒ¼" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "ç¾åœ¨ã®æ¨©åˆ©" -#: NOT FOUND IN SOURCE -msgid "Current search criteria" -msgstr "" - -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "ç¾åœ¨ã®ã‚¦ã‚©ãƒƒãƒãƒ£ãƒ¼" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) -msgid "Custom Field #%1" -msgstr "" - -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "カスタムフィールド" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) msgid "Custom Fields for %1" msgstr "" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: 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 "" - -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "カスタムフィールド%1ã¯ãƒãƒªãƒ¥ãƒ¼ãŒã‚りã¾ã™" -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "カスタムフィールド%1ã¯ãƒãƒªãƒ¥ãƒ¼ãŒã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "カスタムフィールド%1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: html/Admin/Elements/EditCustomFields:195 -msgid "Custom field deleted" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" msgstr "カスタムフィールドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "カスタムフィールド%2ã®ãŸã‚ã®ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドãƒãƒªãƒ¥ãƒ¼%1ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" @@ -1786,51 +1481,39 @@ msgstr "カスタムフィールド%2ã®ãŸã‚ã®ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドムmsgid "Custom field value changed from %1 to %2" msgstr "カスタムフィールドãŒ%1ã‹ã‚‰%2ã«å¤‰æ›´ã•れã¾ã—ãŸ" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "カスタムフィールドãƒãƒªãƒ¥ãƒ¼ã¯å‰Šé™¤ã•れã¾ã›ã‚“" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "カスタムフィールドãƒãƒªãƒ¥ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "カスタムフィールドãƒãƒªãƒ¥ãƒ¼ãŒå‰Šé™¤ã•れã¾ã—ãŸ" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Data error" -msgstr "" - -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "日付" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "å二月" -#: NOT FOUND IN SOURCE -msgid "December" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Default Autoresponse Template" -msgstr "" - #: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" msgstr "" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" msgstr "" @@ -1850,76 +1533,68 @@ msgstr "" msgid "Default transaction template" msgstr "" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) -msgid "Default: %1/%2 changed from %3 to %4" -msgstr "" - -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "ä»£è¡¨è€…ã®æ¨©åˆ©" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "削除" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:162 +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Deleting this object could break referential integrity" msgstr "ã“ã®ã‚ªãƒ–ジェクトを削除ã™ã‚‹ã¨æŒ‡ç¤ºã®å®Œå…¨æ€§ãŒããšã•れるå¯èƒ½æ€§ãŒã‚りã¾ã™" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "ã“ã®ã‚ªãƒ–ジェクトを削除ã™ã‚‹ã¨æŒ‡ç¤ºã®å®Œå…¨æ€§ãŒããšã•れã¾ã™" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 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:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "次ã®ã‚‚ã®æ¬¡ç¬¬ã§ã‚ã‚‹" @@ -1927,43 +1602,39 @@ msgstr "次ã®ã‚‚ã®æ¬¡ç¬¬ã§ã‚ã‚‹" msgid "Dependencies: \\n" msgstr "従属ãƒã‚±ãƒƒãƒˆ: \\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "ã«ã‚ˆã‚‹" -#: NOT FOUND IN SOURCE -msgid "DependsOn" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "é™é †ã™ã‚‹" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "下ã®å•題点を表ã™" -#: 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 +#: 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:56 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 "記述" @@ -1971,31 +1642,31 @@ msgstr "記述" msgid "Details" msgstr "詳細" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "表ã™" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" msgstr "" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "モードを表ã™" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" msgstr "" @@ -2003,35 +1674,31 @@ msgstr "" msgid "Display ticket #%1" msgstr "ãƒã‚±ãƒƒãƒˆ#%1を表ã™" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" msgstr "" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã‚’æ›´æ–°ã—ãªã„ã§ãã ã•ã„" -#: NOT FOUND IN SOURCE -msgid "Don't show search results" -msgstr "" - -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "ダウンロード" -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 msgid "Download as a tab-delimited file" msgstr "" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "期é™åˆ‡ã‚Œ" @@ -2047,41 +1714,37 @@ msgstr "ERROR: ã¯ãƒã‚±ãƒƒãƒˆ '%1': %2.\\nをロードã§ãã¾ã›ã‚“ã§ã—ãŸ" msgid "Edit" msgstr "編集" -#: NOT FOUND IN SOURCE -msgid "Edit Conditions" -msgstr "" - -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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ã®ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドを編集ã™ã‚‹" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "" + +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" msgstr "" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "関係を編集ã™ã‚‹" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit Relationships" -msgstr "" - -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit keywords" -msgstr "" - -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" msgstr "" @@ -2089,7 +1752,7 @@ msgstr "" msgid "Edit scrips" msgstr "スクリプトを編集ã™ã‚‹" -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "システムテンプレートを編集ã™ã‚‹" @@ -2097,15 +1760,11 @@ msgstr "システムテンプレートを編集ã™ã‚‹" msgid "Edit templates for %1" msgstr "%1ã®ãƒ†ãƒ³ãƒ—レートを編集ã™ã‚‹" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "キュー%1ã®è¨­å®šã‚’編集ã™ã‚‹" @@ -2114,17 +1773,17 @@ msgstr "キュー%1ã®è¨­å®šã‚’編集ã™ã‚‹" msgid "Editing Configuration for user %1" msgstr "ユーザー%1ã®è¨­å®šã‚’編集ã™ã‚‹" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "カスタムフィールド%1を編集ã™ã‚‹" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "グループ%1ã®ä¼šå“¡ã‚’編集ã™ã‚‹" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "個人グループ%1ã®ä¼šå“¡ã‚’編集ã™ã‚‹" @@ -2133,15 +1792,15 @@ msgstr "個人グループ%1ã®ä¼šå“¡ã‚’編集ã™ã‚‹" msgid "Editing template %1" msgstr "テンプレート%1を編集ã™ã‚‹" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "ベースもã—ãã¯ã‚¿ãƒ¼ã‚²ãƒƒãƒˆã‚’特定ã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "Eメール" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "ãŠä½¿ã„ã®Eメールアドレス" @@ -2153,84 +1812,61 @@ msgstr "Eメールアドレス" msgid "EmailEncoding" msgstr "Eメールエンコーディング" -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: 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:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" msgstr "有効ã«ãªã‚Šã¾ã—ãŸï¼ˆã‚‚ã†ä¸€åº¦ã“ã®ãƒœãƒƒã‚¯ã‚¹ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã“ã®ã‚­ãƒ¥ãƒ¼ã¯æœ‰åйã§ãªããªã‚Šã¾ã™ï¼‰" -#: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:97 -msgid "Enabled Custom Fields" -msgstr "" - -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" msgstr "有効ãªã‚­ãƒ¥ãƒ¼" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "有効ãªã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹%1" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) msgid "Enabled status: %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." msgstr "" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." msgstr "" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "ãƒã‚±ãƒƒãƒˆã‚’リンクã™ã‚‹ãƒã‚±ãƒƒãƒˆã¾ãŸã¯URLsを入力ã—ã¦ãã ã•ã„。入力ã™ã‚‹é …ç›®ãŒã„ãã¤ã‹ã‚ã‚‹å ´åˆã«ã¯ã‚¹ãƒšãƒ¼ã‚¹ã§åŒºåˆ‡ã£ã¦ãã ã•ã„。" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:66 msgid "Enter up to %1 values" msgstr "" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 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:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Queue->AddWatcher" @@ -2238,11 +1874,11 @@ msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Queue->AddWatcher" msgid "Error in parameters to Queue->DelWatcher" msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Queue->DelWatcher" -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Ticket->AddWatcher" @@ -2250,19 +1886,15 @@ msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Ticket->AddWatcher" msgid "Error in parameters to Ticket->DelWatcher" msgstr "パラメーターã®ã‚¨ãƒ©ãƒ¼Ticket->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" msgstr "" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Estimate" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" msgstr "" @@ -2270,7 +1902,7 @@ msgstr "" msgid "Everyone" msgstr "" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "" @@ -2282,72 +1914,77 @@ msgstr "外部ã®èªè¨¼ID" msgid "ExternalContactInfoId" msgstr "外部ã®ã‚³ãƒ³ã‚¿ã‚¯ãƒˆæƒ…å ±ID" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "ãã®ä»–ã®æƒ…å ±" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" msgstr "" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "'特権ã®ã‚ã‚‹'ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ“¬ä¼¼ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¤œç´¢ãŒå¤±æ•—ã—ã¾ã—ãŸ" -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "'特権ã®ãªã„'ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ“¬ä¼¼ã‚°ãƒ«ãƒ¼ãƒ—ã®æ¤œç´¢ãŒå¤±æ•—ã—ã¾ã—ãŸ" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "二月" -#: NOT FOUND IN SOURCE -msgid "February" -msgstr "" - -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:69 msgid "Fill in multiple text areas" msgstr "" -#: NOT FOUND IN SOURCE +#: 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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +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 "終了" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "最終優先順ä½" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 -msgid "Find group whose" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 msgid "Find groups whose" msgstr "" @@ -2355,19 +1992,15 @@ msgstr "" msgid "Find new/open tickets" msgstr "æ–°ã—ã„/é–‹ããƒã‚±ãƒƒãƒˆã‚’見ã¤ã‘ã‚‹" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "人々を見ã¤ã‘ã‚‹" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Finish Approval" -msgstr "" - -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "最åˆã®" @@ -2375,52 +2008,44 @@ msgstr "最åˆã®" msgid "First page" msgstr "最åˆã®ãƒšãƒ¼ã‚¸" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "ã°ã‹ï¼" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "変更を強制ã—ã¾ã™" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Freeform" -msgstr "" - #: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "フリーフォームコンタクト情報" -#: lib/RT/CustomField_Overlay.pm:37 -msgid "FreeformMultiple" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:36 -msgid "FreeformSingle" -msgstr "" - -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "金曜日" -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "フルヘッダー" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" msgstr "" @@ -2428,37 +2053,37 @@ msgstr "" msgid "Getting the current user from a pgp sig\\n" msgstr "pgp sig\\nã‹ã‚‰ç¾åœ¨ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’å¾—ã‚‹" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "グローãƒãƒ«" -#: NOT FOUND IN SOURCE +#: 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 Scrips" msgstr "グローãƒãƒ«ã‚¹ã‚¯ãƒªãƒ—ト" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" msgstr "" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "行ãï¼" @@ -2470,15 +2095,11 @@ msgstr "%1\\nã‹ã‚‰ã®è‰¯ã„pgp sig" msgid "Goto page" msgstr "ページã¸è¡Œã" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "ãƒã‚±ãƒƒãƒˆã«è¡Œã" -#: NOT FOUND IN SOURCE -msgid "Grand" -msgstr "" - -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "" @@ -2486,32 +2107,28 @@ msgstr "" msgid "Group %1 %2: %3" msgstr "グループ%1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "グループ権利" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "グループã«ã¯ã™ã§ã«ãƒ¡ãƒ³ãƒãƒ¼ãŒã„ã¾ã™" -#: NOT FOUND IN SOURCE -msgid "Group could not be created." -msgstr "" - -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "グループãŒä½œæˆã•れã¾ã—ãŸ" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "グループãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" @@ -2523,44 +2140,42 @@ msgstr "グループãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。\\n" msgid "Group not specified.\\n" msgstr "グループãŒç‰¹å®šã§ãã¾ã›ã‚“。\\n" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "グループ" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "グループã¯å½¼ã‚‰ã®ãƒ¡ãƒ³ãƒãƒ¼ã«ã¯ãªã‚Œã¾ã›ã‚“" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:82 msgid "Groups matching search criteria" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowRequestor:77 msgid "Groups this user belongs to" msgstr "" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: 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:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "ã“ã‚“ã«ã¡ã¯ã€%1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "ヒストリー" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) msgid "History of the group %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) msgid "History of the user %1" msgstr "" @@ -2568,11 +2183,11 @@ msgstr "" msgid "HomePhone" msgstr "自宅ã®é›»è©±" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "ホームページ" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "" @@ -2581,11 +2196,15 @@ msgstr "" msgid "I have [quant,_1,concrete mixer]." msgstr "ç§ã¯[quant,_1,concrete mixer]ãŒã‚りã¾ã™ã€‚" -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "ID" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "身分証明書" @@ -2593,92 +2212,80 @@ msgstr "身分証明書" msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." msgstr "" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." msgstr "" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 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:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" msgstr "上ã®ä½•ã‹ã‚’アップデートã—ãŸãªã‚‰ã€æ¬¡ã®ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Image" -msgstr "" - -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 -msgid "Include disabled custom fields in listing." -msgstr "" - -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." msgstr "" -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." msgstr "リストã®ç„¡åйãªã‚­ãƒ¥ãƒ¼ã‚’å«ã‚€" -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "検索ã®ç„¡åйãªãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’å«ã‚€" -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "最åˆã®å„ªå…ˆæ¨©" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "入力エラー" -#: NOT FOUND IN SOURCE -msgid "Interest noted" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "無効ãªã‚°ãƒ«ãƒ¼ãƒ—タイプã§ã™" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Invalid Type" -msgstr "" - -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "" @@ -2686,75 +2293,63 @@ msgstr "" msgid "Invalid owner. Defaulting to 'nobody'." msgstr "無効ãªã‚ªãƒ¼ãƒŠãƒ¼ã§ã™ã€‚ '誰ã§ã‚‚ãªã„'ã«åˆæœŸè¨­å®šã—ã¾ã™." -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "無効ãªã‚­ãƒ¥ãƒ¼ã§ã™" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "ç„¡åŠ¹ãªæ¨©åˆ©ã§ã™" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "%1ã«ã¯ç„¡åйãªãƒãƒªãƒ¥ãƒ¼ã§ã™" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "カスタムフィールドã«ã¯ç„¡åйãªãƒãƒªãƒ¥ãƒ¼ã§ã™" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "ステータスã«ã¯ç„¡åйãªãƒãƒªãƒ¥ãƒ¼ã§ã™" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "" -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Items pending my approval" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" msgstr "" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "一月" -#: NOT FOUND IN SOURCE -msgid "January" -msgstr "" - -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "七月" -#: NOT FOUND IN SOURCE -msgid "July" -msgstr "" - -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "大ãã„" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "六月" -#: NOT FOUND IN SOURCE -msgid "June" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Keyword" msgstr "キーワード" @@ -2763,51 +2358,43 @@ msgstr "キーワード" msgid "Lang" msgstr "é•·ã„" -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" msgstr "" -#: html/Ticket/Elements/Tabs:74 +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "" + +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "最後ã®" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "最後ã®ã‚³ãƒ³ã‚¿ã‚¯ãƒˆ" -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" - -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "最後ã«ã‚³ãƒ³ã‚¿ã‚¯ãƒˆã—ãŸ" -#: NOT FOUND IN SOURCE -msgid "Last Notified" -msgstr "" - -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "最後ã«ã‚¢ãƒƒãƒ—デートã—ãŸ" -#: NOT FOUND IN SOURCE -msgid "LastUpdated" -msgstr "" - -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" msgstr "" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "残ã£ãŸ" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã‚’RTã«ã‚¢ã‚¯ã‚»ã‚¹ã—ã¾ã™" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ¨©åˆ©ã‚’èªã‚ã¾ã™" @@ -2819,257 +2406,255 @@ msgstr "オーナーを%1 %2ã«åˆ¶é™ã—ã¾ã™" msgid "Limiting queue to %1 %2" msgstr "キューを%1 %2ã«åˆ¶é™ã—ã¾ã™" -#: lib/RT/Record.pm:1086 +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "" + +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "リンクã¯ã™ã§ã«å­˜åœ¨ã—ã¦ã„ã¾ã™" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "リンクãŒä½œæˆã•れã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "リンクãŒä½œæˆã•れã¾ã—ãŸï¼ˆ%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "リンクãŒå‰Šé™¤ã•れã¾ã—ãŸï¼ˆ%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "リンクãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: 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 "" - -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "リンク" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" msgstr "" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" msgstr "" -#: html/Admin/Tools/Configuration.html:19 +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "" + +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "場所" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "ログディレクトリー%1ãŒè¦‹ã¤ã‹ã‚‰ãªã„ã€ã¾ãŸã¯æ›¸ã出ã›ã¾ã›ã‚“。\\n RTãŒå‹•ãã¾ã›ã‚“" -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "%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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "ログイン" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "ログアウト" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:866 msgid "Lookup type mismatch" msgstr "" -#: html/Search/Bulk.html:83 +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "オーナーを決ã‚ã‚‹" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "ステータスを決ã‚ã‚‹" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "æœŸé™æœŸæ—¥ã‚’決ã‚ã‚‹" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "è§£æžæœŸæ—¥ã‚’決ã‚ã‚‹" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" msgstr "é–‹å§‹ã—ãŸæ—¥ã‚’決ã‚ã‚‹" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" msgstr "開始日を決ã‚ã‚‹" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "ã„ã‚ã‚ŒãŸæ—¥ã‚’決ã‚ã‚‹" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "優先順ä½ã‚’決ã‚ã‚‹" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "キューを決ã‚ã‚‹" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "サブジェクトを決ã‚ã‚‹" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/index.html:78 msgid "Manage custom fields and custom field values" msgstr "" -#: html/Admin/index.html:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" msgstr "" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" msgstr "" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" msgstr "" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "三月" -#: NOT FOUND IN SOURCE -msgid "March" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "May" -msgstr "" - -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "五月" -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" msgstr "" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "メンãƒãƒ¼ãŒè¿½åŠ ã•れã¾ã—ãŸ" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "メンãƒãƒ¼ãŒå‰Šé™¤ã•れã¾ã—ãŸ" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "メンãƒãƒ¼ãŒå‰Šé™¤ã•れã¦ã„ã¾ã›ã‚“" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "ã®ãƒ¡ãƒ³ãƒãƒ¼" -#: NOT FOUND IN SOURCE -msgid "MemberOf" -msgstr "" - -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "メンãƒãƒ¼" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:61 msgid "Memberships" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) msgid "Memberships of the user %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" msgstr "çµåˆãŒæˆåŠŸã—ã¾ã—ãŸ" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "çµåˆãŒå¤±æ•—ã—ã¾ã—ãŸã€‚有効ãªIDãŒè¨­å®šã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "ã«çµåˆ" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" msgstr "" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" msgstr "" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." msgstr "" -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "" + +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "æºå¸¯" @@ -3077,15 +2662,7 @@ msgstr "æºå¸¯" msgid "MobilePhone" msgstr "æºå¸¯é›»è©±" -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "" @@ -3093,208 +2670,189 @@ msgstr "" msgid "Modify Custom Field %1" msgstr "カスタムフィールド%1を修正ã™ã‚‹" -#: NOT FOUND IN SOURCE -msgid "Modify Custom Fields which apply to all %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/Global/CustomFields.html:43 html/Admin/Global/index.html:50 -msgid "Modify Custom Fields which apply to all queues" +#: html/Admin/Elements/ObjectCustomFields:98 +#. (loc(lc($Types))) +msgid "Modify Custom Fields which apply to all %1" msgstr "" -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: 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:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" msgstr "" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" msgstr "" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 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 "" - -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: 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:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:52 -msgid "Modify a CustomField which applies to all queues" -msgstr "" - -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: 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 "" - -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "#%1ã®æœŸæ—¥ã‚’修正ã™ã‚‹" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "ãƒã‚±ãƒƒãƒˆ#%1ã®æœŸæ—¥ã‚’修正ã™ã‚‹" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: 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:32 +#: 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:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: 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:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "グローãƒãƒ«ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®æ¨©åˆ©ã‚’修正ã™ã‚‹" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" msgstr "" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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:24 html/Admin/Queues/GroupRights.html:28 +#: 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:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: 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:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" msgstr "ãƒã‚±ãƒƒãƒˆ#%1ã«é–¢ä¿‚ã®ã‚る人々を修正ã™ã‚‹" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "キュー%1ã®ã‚¹ã‚¯ãƒªãƒ—トを修正ã™ã‚‹" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: 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:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "ユーザー%1を修正ã™ã‚‹" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "ãƒã‚±ãƒƒãƒˆ# %1を修正ã™ã‚‹" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: 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:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) msgid "Modify user rights for custom field %1" msgstr "" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "キュー%1ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼æ¨©åˆ©ã‚’修正ã™ã‚‹" @@ -3303,113 +2861,97 @@ msgstr "キュー%1ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼æ¨©åˆ©ã‚’修正ã™ã‚‹" msgid "Modify watchers for queue '%1'" msgstr "キュー'%1'ã®ã‚¦ã‚©ãƒƒãƒãƒ£ãƒ¼ã‚’修正ã™ã‚‹" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" msgstr "" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "月曜日" -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "ã•らã«%1ã«ã¤ã„ã¦" -#: NOT FOUND IN SOURCE -msgid "Move" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "多ãã®" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "'åå‰'ã®å±žæ€§ã‚’特定ã—ã¦ãã ã•ã„" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "My Approvals" -msgstr "" - -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" msgstr "" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "åå‰" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "ç¾åœ¨ãŠä½¿ã„ã®åå‰" -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Need approval from system administrator" -msgstr "" - -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "æ–°ã—ã„" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "æ–°ã—ã„関係" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "æ–°ã—ã„パスワード" @@ -3417,39 +2959,27 @@ msgstr "æ–°ã—ã„パスワード" msgid "New Pending Approval" msgstr "" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" msgstr "" -#: NOT FOUND IN SOURCE -msgid "New Relationships" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New Search" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "æ–°ã—ã„パスワード" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "æ–°ã—ã„パスワード情報ãŒé€ã‚‰ã‚Œã¾ã—ãŸ" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "" @@ -3457,11 +2987,11 @@ msgstr "" msgid "New request" msgstr "æ–°ã—ã„リクエスト" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "æ–°ã—ã„æ¨©åˆ©" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "" @@ -3469,27 +2999,27 @@ msgstr "" msgid "New search" msgstr "æ–°ã—ã„æ¤œç´¢" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "æ–°ã—ã„ãƒã‚±ãƒƒãƒˆã¯ã‚りã¾ã›ã‚“" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "æ–°ã—ã„ユーザーãŒå‘¼ã°ã‚Œã¾ã—ãŸ" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "æ–°ã—ã„ウォッãƒãƒ£ãƒ¼" @@ -3497,11 +3027,11 @@ msgstr "æ–°ã—ã„ウォッãƒãƒ£ãƒ¼" msgid "New window setting" msgstr "æ–°ã—ã„ウインドウ設定" -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "次ã¸" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" msgstr "" @@ -3509,47 +3039,39 @@ msgstr "" msgid "Next page" msgstr "次ã®ãƒšãƒ¼ã‚¸" -#: NOT FOUND IN SOURCE -msgid "NickName" -msgstr "" - -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "ニックãƒãƒ¼ãƒ " -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "カスタムフィールドãŒã‚りã¾ã›ã‚“" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" msgstr "" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" msgstr "グループãŒå®šç¾©ã•れã¾ã›ã‚“" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" msgstr "" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" msgstr "キューãŒå®šç¾©ã•れã¾ã›ã‚“" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "RTユーザーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。RT管ç†è€…ã«ç›¸è«‡ã—ã¦ãã ã•ã„。\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "テンプレートãŒã‚りã¾ã›ã‚“" @@ -3561,11 +3083,11 @@ msgstr "ãƒã‚±ãƒƒãƒˆãŒç‰¹å®šã§ãã¾ã›ã‚“。ãƒã‚±ãƒƒãƒˆã‚’終了ã—ã¾ã™" msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "ãƒã‚±ãƒƒãƒˆãŒç‰¹å®šã§ãã¾ã›ã‚“。ãƒã‚±ãƒƒãƒˆã®ä¿®æ­£ã‚’終了ã—ã¾ã™\\n\\n" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "" @@ -3573,7 +3095,7 @@ msgstr "" msgid "No command found\\n" msgstr "コマンドãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\\n" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«é–¢ã—ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆã¯å…¥åŠ›ã•れã¦ã„ã¾ã›ã‚“" @@ -3581,72 +3103,77 @@ msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«é–¢ã—ã¦ã®ã‚³ãƒ¡ãƒ³ãƒˆã¯å…¥åŠ›ã•れã¦ã„ã¾ã› msgid "No correspondence attached" msgstr "é€šä¿¡æ–‡æ›¸ã®æ·»ä»˜ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "%1記述ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "グループãŒç‰¹å®šã§ãã¾ã›ã‚“" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:52 msgid "No groups matching search criteria found." msgstr "" -#: lib/RT/Ticket_Overlay.pm:2475 +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" msgstr "" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "パスワードãŒè¨­å®šã•れã¾ã›ã‚“" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" msgstr "キューを作æˆã™ã‚‹è¨±å¯ãŒã•れã¦ã„ã¾ã›ã‚“" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "ユーザーを作æˆã™ã‚‹è¨±å¯ãŒã•れã¦ã„ã¾ã›ã‚“" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" msgstr "ãã®ãƒã‚±ãƒƒãƒˆã‚’表示ã™ã‚‹è¨±å¯ãŒã‚りã¾ã›ã‚“" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" msgstr "アップデートãƒã‚±ãƒƒãƒˆã‚’見る許å¯ãŒã•ã‚りã¾ã›ã‚“" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "責任者ãŒç‰¹å®šã§ãã¾ã›ã‚“" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." msgstr "責任者ãŒé¸æŠžã•れã¦ã„ã¾ã›ã‚“" -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." msgstr "検索基準ã«ã‚ã£ãŸã‚­ãƒ¥ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "権利ãŒè¨±å¯ã•れã¦ã„ã¾ã›ã‚“" -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." msgstr "æ“作ã®ãŸã‚ã®æ¤œç´¢ãŒã§ãã¾ã›ã‚“" -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" msgstr "" @@ -3654,15 +3181,11 @@ msgstr "" msgid "No ticket id specified" msgstr "ãƒã‚±ãƒƒãƒˆIDãŒç‰¹å®šã§ãã¾ã›ã‚“" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "トランザクションタイプãŒç‰¹å®šã§ãã¾ã›ã‚“" -#: NOT FOUND IN SOURCE -msgid "No user or email address specified" -msgstr "" - -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "検索基準ã«ã‚ã£ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" @@ -3670,31 +3193,27 @@ msgstr "検索基準ã«ã‚ã£ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "有効ãªRTユーザーãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。RT cvcãƒãƒ³ãƒ‰ãƒ©ãŒåˆ†é›¢ã—ã¦ã„ã¾ã™ã€‚RT管ç†è€…ã«ç›¸è«‡ã—ã¦ãã ã•ã„。\\n" -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Not logged in" -msgstr "" - -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "ログインã§ãã¾ã›ã‚“" -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "セットã§ãã¾ã›ã‚“" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "ã¾ã å®Ÿè¡Œã§ãã¾ã›ã‚“" @@ -3702,11 +3221,11 @@ msgstr "ã¾ã å®Ÿè¡Œã§ãã¾ã›ã‚“" msgid "Not yet implemented...." msgstr "ã¾ã å®Ÿè¡Œã§ãã¾ã›ã‚“。。。" -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "ãŠçŸ¥ã‚‰ã›ã‚’é€ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" @@ -3778,51 +3297,57 @@ msgstr "" msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "å一月" -#: NOT FOUND IN SOURCE -msgid "November" +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" msgstr "" -#: lib/RT/Record.pm:200 +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Record.pm:121 +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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:901 msgid "Object type mismatch" msgstr "" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "åæœˆ" -#: NOT FOUND IN SOURCE -msgid "October" -msgstr "" - -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" msgstr "" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" msgstr "" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" msgstr "" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "ã«" @@ -3862,21 +3387,21 @@ msgstr "" msgid "On Transaction" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "é–‹ã" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "ãれを開ã" @@ -3884,7 +3409,7 @@ msgstr "ãれを開ã" msgid "Open requests" msgstr "リクエストを開ã" -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" msgstr "" @@ -3900,7 +3425,7 @@ msgstr "ãƒã‚±ãƒƒãƒˆã‚’(リストã‹ã‚‰ï¼‰ã»ã‹ã®ã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦ã‹ã‚‰é–‹ã msgid "Open tickets on correspondence" msgstr "" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" msgstr "" @@ -3908,52 +3433,44 @@ msgstr "" msgid "Ordering and sorting" msgstr "整列ã¨ä¸¦ã³æ›¿ãˆ" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "組織" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" msgstr "" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" msgstr "" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "時間切れã§ã™ã€å„ªå…ˆé †ä½ãŒã†ã¤ã‚Šã¾ã—ãŸ" -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" msgstr "オーナー" -#: NOT FOUND IN SOURCE -msgid "Owner changed from %1 to %2" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." msgstr "" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "オーナーã¯å¼·åˆ¶çš„ã«%1ã‹ã‚‰%2を変更ã—ã¾ã—ãŸ" @@ -3962,12 +3479,12 @@ msgstr "オーナーã¯å¼·åˆ¶çš„ã«%1ã‹ã‚‰%2を変更ã—ã¾ã—ãŸ" msgid "Owner is" msgstr "オーナーã¯" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" msgstr "" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "ãƒã‚±ãƒƒãƒˆãƒ™ãƒ«" @@ -3975,40 +3492,53 @@ msgstr "ãƒã‚±ãƒƒãƒˆãƒ™ãƒ«" msgid "PagerPhone" msgstr "ãƒã‚±ãƒƒãƒˆãƒ™ãƒ«é›»è©±" -#: NOT FOUND IN SOURCE -msgid "Parent" -msgstr "" - -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "両親" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "パスワード" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "パスワードã®ãŠçŸ¥ã‚‰ã›" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "パスワードãŒçŸ­ã™ãŽã¾ã™" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "パスワード: %1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." msgstr "" -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "人々" @@ -4016,27 +3546,27 @@ msgstr "人々" msgid "Perform a user-defined action" msgstr "" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" msgstr "" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "許å¯ãŒä¸‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "個人グループ" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "個人グループ:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "電話番å·" @@ -4048,23 +3578,19 @@ msgstr "代替物" msgid "Pref" msgstr "ãŠæ°—ã«å…¥ã‚Š" -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "ãŠæ°—ã«å…¥ã‚Š" -#: NOT FOUND IN SOURCE -msgid "Prefs" -msgstr "" - -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "Prepare Stubbed" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "å‰ã®" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" msgstr "" @@ -4076,20 +3602,20 @@ msgstr "å‰ã®ãƒšãƒ¼ã‚¸" msgid "Pri" msgstr "優先権" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "" -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "優先権" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "優先順ä½ã¯æ¬¡ã®ã‚ˆã†ã«å§‹ã¾ã‚Šã¾ã™" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" msgstr "" @@ -4097,36 +3623,32 @@ msgstr "" msgid "Privileged" msgstr "" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "特権ステータス: %1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" 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 "" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" msgstr "" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" msgstr "" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "キュー" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" @@ -4136,11 +3658,7 @@ msgstr "" msgid "Queue '%1' not found\\n" msgstr "キュー'%1'ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ\\n" -#: NOT FOUND IN SOURCE -msgid "Queue Keyword Selections" -msgstr "" - -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "キューã®åå‰" @@ -4148,52 +3666,48 @@ msgstr "キューã®åå‰" msgid "Queue Scrips" msgstr "キュースクリプト" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "キューã¯ã™ã§ã«å­˜åœ¨ã—ã¦ã„ã¾ã™" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" msgstr "キューã®ä½œæˆãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 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:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" msgstr "キューãŒä½œæˆã•れã¾ã—ãŸ" -#: NOT FOUND IN SOURCE -msgid "Queue is not specified." -msgstr "" - -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" msgstr "キューãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "キュー" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" msgstr "" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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" @@ -4206,11 +3720,7 @@ msgstr "<a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a> 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 "" - -#: html/Admin/index.html:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "RT管ç†" @@ -4230,7 +3740,7 @@ msgstr "RT設定エラー" msgid "RT Critical error. Message not recorded!" msgstr "RTé‡å¤§ãªã‚¨ãƒ©ãƒ¼ã€‚メッセージãŒè¨˜éŒ²ã•れã¾ã›ã‚“" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "RTエラー" @@ -4238,23 +3748,15 @@ msgstr "RTエラー" msgid "RT Received mail (%1) from itself." msgstr "RTå—信メール(%1)自身ã‹ã‚‰ã®ãƒ¡ãƒ¼ãƒ« " -#: NOT FOUND IN SOURCE -msgid "RT Recieved mail (%1) from itself." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RTセルフサービス/クローズã•れãŸãƒã‚±ãƒƒãƒˆ" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" msgstr "" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "" @@ -4270,19 +3772,19 @@ msgstr "RTã¯å¤–部ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒ«ãƒƒã‚¯ã‚¢ãƒƒãƒ—を使ã£ã¦ãƒªã‚¯ã‚¨ msgid "RT couldn't find the queue: %1" msgstr "RTã¯ã‚­ãƒ¥ãƒ¼: %1を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ" +#: html/Elements/SetupSessionCookie:90 +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/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "RT for %1: %2" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT has proccessed your commands" msgstr "RTã¯ã‚ãªãŸã®ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’処ç†ã—ã¾ã—ãŸ" @@ -4291,14 +3793,6 @@ msgstr "RTã¯ã‚ãªãŸã®ã®ã‚³ãƒžãƒ³ãƒ‰ã‚’処ç†ã—ã¾ã—ãŸ" 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ã¯&コピー; Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>。ã“れã¯<a href=\"http://www.gnu.org/copyleft/gpl.html\">GNUジェãƒãƒ©ãƒ«ãƒ‘ブリックライセンスã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³2ã§é…ä¿¡ã•れã¦ã„ã¾ã™ã€‚</a>" -#: 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 "" - -#: 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 "" - #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "RTã«ã‚ˆã‚‹ã¨ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ãƒã‚¦ãƒ³ã‚¹ã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™" @@ -4311,11 +3805,7 @@ msgstr "RTã¯ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒã¾ã‚‹ã§ã‚µã‚¤ãƒ³ã•れã¦ã„ãªã„よㆠ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ã®Eメールコマンドモードã§ã¯PGPèªè¨¼ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚è²´æ–¹ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«ã‚µã‚¤ãƒ³ã—ãªã‹ã£ãŸã€ã‚‚ã—ãã¯ã¯ã‚µã‚¤ãƒ³ãŒæœ‰åйã§ã‚りã¾ã›ã‚“" -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "本å" @@ -4323,38 +3813,34 @@ msgstr "本å" msgid "RealName" msgstr "本å" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" msgstr "" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "次ã®ã‚‚ã®ã«ã‚ˆã£ã¦å‚ç…§ã—ãŸ" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "å‚ç…§ã™ã‚‹" -#: NOT FOUND IN SOURCE -msgid "RefersTo" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Refine" msgstr "絞り込む" @@ -4363,48 +3849,44 @@ msgstr "絞り込む" msgid "Refine search" msgstr "çµžè¾¼ã¿æ¤œç´¢" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "ã“ã®ãƒšãƒ¼ã‚¸ã‚’%1分ãŠãã«æ›´æ–°ã—ã¦ãã ã•ã„" -#: NOT FOUND IN SOURCE -msgid "Relationships" -msgstr "" - -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "管ç†Ccを削除ã™ã‚‹" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "Ccを削除ã™ã‚‹" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "リクエストã™ã‚‹äººã‚’削除ã™ã‚‹" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "返信" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" msgstr "" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "リクエストã™ã‚‹äºº" @@ -4412,45 +3894,37 @@ msgstr "リクエストã™ã‚‹äºº" msgid "Requestor email address" msgstr "リクエストã™ã‚‹äººã®Eメールアドレス" -#: NOT FOUND IN SOURCE -msgid "Requestor(s)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RequestorAddresses" -msgstr "" - -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "リクエストã™ã‚‹äºº" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "ãƒªã‚¯ã‚¨ã‚¹ãƒˆã¯æ¬¡ã®æ—¥ã¾ã§ã«è¡Œã‚れãªã‘れã°ãªã‚Šã¾ã›ã‚“" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" msgstr "" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "リセット" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "使‰€" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "分解ã™ã‚‹" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "分解ã—ãŸ" @@ -4458,7 +3932,7 @@ msgstr "分解ã—ãŸ" msgid "Response to requestors" msgstr "リクエストã™ã‚‹äººã«è¿”ç­”ã™ã‚‹" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "çµæžœ" @@ -4466,11 +3940,11 @@ msgstr "çµæžœ" msgid "Results per page" msgstr "ページã”ã¨ã®çµæžœ" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "パスワードã®å†å…¥åŠ›" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" msgstr "" @@ -4478,103 +3952,105 @@ msgstr "" msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "%2 %3ã®æ¨©åˆ©%1ãŒé ˜åŸŸ%4 %5\\nã§è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "権利ãŒå§”託ã•れã¾ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "権利ãŒè¨±å¯ã•れã¾ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "権利ãŒãƒ­ãƒ¼ãƒ‰ã•れã¾ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "権利を無効ã«ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "権利ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "権利ãŒãƒ­ãƒ¼ãƒ‰ã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "権利ãŒç„¡åйã«ãªã‚Šã¾ã—ãŸ" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "権利" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "役割" -#: NOT FOUND IN SOURCE -msgid "RootApproval" -msgstr "" - -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" msgstr "" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "土曜日" -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" msgstr "" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "変更をä¿å­˜ã™ã‚‹" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" msgstr "" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "変更をä¿å­˜ã™ã‚‹" -#: html/Search/Elements/EditSearches:1 +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "" + +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" msgstr "" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "スクリプトãŒä½œæˆã•れã¾ã—ãŸ" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" msgstr "" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "スクリプト" @@ -4582,11 +4058,11 @@ msgstr "スクリプト" msgid "Scrips for %1\\n" msgstr "%1\\nã®ã‚¹ã‚¯ãƒªãƒ—ト" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" msgstr "" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "検索" @@ -4594,127 +4070,128 @@ msgstr "検索" msgid "Search Criteria" msgstr "検索基準" -#: html/Approvals/Elements/PendingMyApproval:38 -msgid "Search for approvals" +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Search for articles" +#: html/Approvals/Elements/PendingMyApproval:60 +msgid "Search for approvals" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Searches can't be associated with that kind of object" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" msgstr "" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "See custom fields" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "SeeCustomField" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 -msgid "SeeQueue" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Select" +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Class" +#: lib/RT/Queue_Overlay.pm:92 +msgid "SeeQueue" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 msgid "Select a Custom Field" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" -msgstr "" - -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" msgstr "グループã®é¸æŠž" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" msgstr "キューã®é¸æŠž" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +#: 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 "ユーザーã®é¸æŠž" -#: NOT FOUND IN SOURCE -msgid "Select class" +#: html/Admin/Elements/CustomFieldTabs:90 +msgid "Select custom field" msgstr "" -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 -msgid "Select custom field" +#: 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:51 html/User/Elements/GroupTabs:49 +#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 msgid "Select group" msgstr "" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" msgstr "" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:61 msgid "Select up to %1 values" msgstr "" -#: html/Admin/Elements/UserTabs:46 +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "" -#: lib/RT/CustomField_Overlay.pm:35 -msgid "SelectMultiple" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:34 -msgid "SelectSingle" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:58 msgid "Selected Custom Fields" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:59 msgid "Selected objects" msgstr "" @@ -4766,128 +4243,112 @@ msgstr "" msgid "Sends mail to the owner" msgstr "" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "乿œˆ" -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "September" -msgstr "" - -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" msgstr "" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" msgstr "" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" msgstr "" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "çµæžœã‚’見る" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "基本を見る" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "詳細を見る" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 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" +#: lib/RT/Queue_Overlay.pm:94 +msgid "ShowACL" msgstr "" -#: lib/RT/Queue_Overlay.pm:70 -msgid "ShowACL" +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" msgstr "" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "サイン" -#: NOT FOUND IN SOURCE -msgid "Signed in as %1" -msgstr "" - -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "ã²ã¨ã¤ã®" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 msgid "Skip Menu" msgstr "" -#: html/Admin/Elements/AddCustomFieldValue:27 -msgid "Sort" +#: html/Search/Elements/EditFormat:78 +msgid "Small" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Sort Order" +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 +msgid "Sort" msgstr "" #: NOT FOUND IN SOURCE @@ -4902,11 +4363,7 @@ msgstr "次ã®é …ç›®ã”ã¨ã®ä¸¦ã³æ›¿ãˆ" msgid "SortOrder" msgstr "並ã³é †" -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" - -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" msgstr "" @@ -4918,7 +4375,7 @@ msgstr "åœæ­¢ã—ã¦ã„ã¾ã™" msgid "Start page" msgstr "開始ページ" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "é–‹å§‹ã—ãŸ" @@ -4926,7 +4383,7 @@ msgstr "é–‹å§‹ã—ãŸ" msgid "Started date '%1' could not be parsed" msgstr "é–‹å§‹æ—¥'%1'ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "é–‹å§‹ã™ã‚‹" @@ -4938,11 +4395,11 @@ msgstr "æ¬¡ã®æ—¥æ™‚ã¾ã§ã«é–‹å§‹ã™ã‚‹" msgid "Starts date '%1' could not be parsed" msgstr "é–‹å§‹æ—¥'%1'ã‚’è§£æžã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "状態" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "ステータス" @@ -4950,110 +4407,90 @@ msgstr "ステータス" msgid "Status Change" msgstr "" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: 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:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "盗用ã™ã‚‹" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) -msgid "Stolen from %1 " +msgid "Stolen from %1" msgstr "%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 +#: NOT FOUND IN SOURCE +msgid "Stolen from %1 " +msgstr "%1ã‹ã‚‰ç›—用ã—㟠" + +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "サブジェクト" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "æå‡º" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Submit Workflow" -msgstr "" - -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" - -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "日曜日" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" msgstr "" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 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" +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" msgstr "" -#: html/Admin/Tools/index.html:2 +#: html/Admin/Tools/index.html:47 msgid "System Tools" msgstr "" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "システムエラー。権利ãŒå§”ä»»ã•れã¦ã„ã¾ã›ã‚“" -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "システムエラー。権利ãŒèªå¯ã•れã¦ã„ã¾ã›ã‚“" -#: NOT FOUND IN SOURCE -msgid "System error. Unable to grant rights." -msgstr "" - -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "システムグループ" @@ -5061,44 +4498,40 @@ msgstr "システムグループ" msgid "SystemRolegroup for internal use" msgstr "" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "テスト_ストリング" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "ã¨ã‚‹" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "ã¨ã‚‰ã‚ŒãŸ" -#: NOT FOUND IN SOURCE -msgid "Task" -msgstr "" - -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "テンプレート" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "テンプレートãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" @@ -5106,11 +4539,11 @@ msgstr "テンプレートãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“" msgid "Template not found\\n" msgstr "テンプレートãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "テンプレートãŒè§£æžã•れã¾ã—ãŸ" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "テンプレート" @@ -5118,37 +4551,33 @@ msgstr "テンプレート" msgid "Templates for %1\\n" msgstr "%1\\nã®ãƒ†ãƒ³ãƒ—レート" -#: NOT FOUND IN SOURCE -msgid "Text" -msgstr "" - -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "ãれã¯ã“ã®ã‚«ã‚¹ã‚¿ãƒ ãƒ•ィールドã®ãƒãƒªãƒ¥ãƒ¼ã§ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "ãれã¯åŒã˜ãƒãƒªãƒ¥ãƒ¼ã§ã™" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" msgstr "" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "ãã®è²¬ä»»è€…ã¯ã™ã§ã«ã“ã®ã‚­ãƒ¥ãƒ¼ã®%1ã§ã™" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "ãã®è²¬ä»»è€…ã¯ã™ã§ã«ã“ã®ãƒã‚±ãƒƒãƒˆã®%1ã§ã™" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "ãã®è²¬ä»»è€…ã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã®%1ã§ã¯ã‚りã¾ã›ã‚“" @@ -5157,11 +4586,11 @@ msgstr "ãã®è²¬ä»»è€…ã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã®%1ã§ã¯ã‚りã¾ã›ã‚“" msgid "That principal is not a %1 for this ticket" msgstr "ãã®è²¬ä»»è€…ã¯ã“ã®ãƒã‚±ãƒƒãƒˆã®%1ã§ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" msgstr "ãã®ã‚­ãƒ¥ãƒ¼ã¯ã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "ãã®ãƒã‚±ãƒƒãƒˆã¯å¾“属物をã™ã§ã«åˆ†è§£ã—ã¾ã—ãŸ" @@ -5169,51 +4598,47 @@ msgstr "ãã®ãƒã‚±ãƒƒãƒˆã¯å¾“属物をã™ã§ã«åˆ†è§£ã—ã¾ã—ãŸ" msgid "That user already has that right" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã™ã§ã«æ¨©åˆ©ãŒã‚りã¾ã™" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã™ã§ã«ãƒã‚±ãƒƒãƒˆã‚’所有ã—ã¦ã„ã¾ã™" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯å­˜åœ¨ã—ã¾ã›ã‚“" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã™ã§ã«ç‰¹æ¨©ãŒä¸Žãˆã‚‰ã‚Œã¦ã„ã¾ã™" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¯ã™ã§ã«ç‰¹æ¨©ãŒã‚りã¾ã›ã‚“" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ä»Šç‰¹æ¨©ã‚’与ãˆã‚‰ã‚Œã¾ã—ãŸ" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ä»Šç‰¹æ¨©ã‚’失ã„ã¾ã—ãŸ" -#: NOT FOUND IN SOURCE -msgid "That user is now unprivilegedileged" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" msgstr "ãã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ã¯ãƒã‚±ãƒƒãƒˆã‚’所有ã—ã¦ã„ãªã„å¯èƒ½æ€§ãŒã‚りã¾ã™" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "ãã‚Œã¯æ•°å­—ã®IDã§ã¯ã‚りã¾ã›ã‚“" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "基本" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "" @@ -5221,7 +4646,7 @@ msgstr "" msgid "The comment has been recorded" msgstr "コメントã¯è¨˜éŒ²ã•れã¾ã—ãŸ" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 "" @@ -5229,31 +4654,31 @@ msgstr "" msgid "The following commands were not proccessed:\\n\\n" msgstr "次ã®ã‚³ãƒžãƒ³ãƒ‰ã¯å‡¦ç†ã•れã¾ã›ã‚“ã§ã—ãŸ:\\n\\n" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "" -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "ãれらã®ã‚³ãƒ¡ãƒ³ãƒˆã¯å®Ÿéš›ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã¯è¦‹ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:912 msgid "This custom field does not apply to that object" msgstr "" -#: html/Admin/Tools/Configuration.html:5 +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" msgstr "" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." msgstr "" @@ -5261,15 +4686,15 @@ msgstr "" msgid "This ticket %1 %2 (%3)\\n" msgstr "ã“ã®ãƒã‚±ãƒƒãƒˆ%1 %2 (%3)\\n" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "" -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "ã“ã®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ã«ã¯ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ãŒã‚りã¾ã›ã‚“" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "" @@ -5278,40 +4703,32 @@ msgstr "" msgid "This user's 25 highest priority tickets" msgstr "ã“ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®25ã®ã‚‚ã£ã¨ã‚‚高ã„優先ãƒã‚±ãƒƒãƒˆ" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 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 "" - -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: 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:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "ãƒã‚±ãƒƒãƒˆ %1ãŒã‚­ãƒ¥ãƒ¼ '%2'ã§ä½œæˆã•れã¾ã—ãŸ" @@ -5320,16 +4737,16 @@ msgstr "ãƒã‚±ãƒƒãƒˆ %1ãŒã‚­ãƒ¥ãƒ¼ '%2'ã§ä½œæˆã•れã¾ã—ãŸ" msgid "Ticket %1 loaded\\n" msgstr "ãƒã‚±ãƒƒãƒˆ%1ãŒãƒ­ãƒ¼ãƒ‰ã•れã¾ã—ãŸ\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "ãƒã‚±ãƒƒãƒˆã€€%1: %2" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:74 msgid "Ticket Custom Fields" msgstr "" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "ãƒã‚±ãƒƒãƒˆãƒ’ストリー # %1 %2" @@ -5342,7 +4759,7 @@ msgstr "ãƒã‚±ãƒƒãƒˆID" msgid "Ticket Resolved" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 msgid "Ticket Transactions" msgstr "" @@ -5350,19 +4767,19 @@ msgstr "" msgid "Ticket attachment" msgstr "ãƒã‚±ãƒƒãƒˆæ·»ä»˜" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "ãƒã‚±ãƒƒãƒˆã‚³ãƒ³ãƒ†ãƒ³ãƒ„" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "ãƒã‚±ãƒƒãƒˆã‚³ãƒ³ãƒ†ãƒ³ãƒ„タイプ" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "ãƒã‚±ãƒƒãƒˆãŒä½œæˆã•れã¾ã—ãŸ" @@ -5370,26 +4787,14 @@ msgstr "ãƒã‚±ãƒƒãƒˆãŒä½œæˆã•れã¾ã—ãŸ" msgid "Ticket creation failed" msgstr "ãƒã‚±ãƒƒãƒˆã®ä½œæˆãŒå¤±æ•—ã—ã¾ã—ãŸ" -#: lib/RT/Transaction_Overlay.pm:502 +#: 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:33 +#: 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 "" @@ -5398,58 +4803,53 @@ msgstr "" msgid "Ticket watchers" msgstr "ãƒã‚±ãƒƒãƒˆã‚¦ã‚©ãƒƒãƒãƒ£ãƒ¼" -#: html/Elements/Tabs:46 -msgid "Tickets" -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) -msgid "Tickets %1 %2" +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) -msgid "Tickets %1 by %2" +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 +msgid "Tickets" msgstr "" #: NOT FOUND IN SOURCE msgid "Tickets from %1" msgstr "%1ã‹ã‚‰ã®ãƒã‚±ãƒƒãƒˆ" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" msgstr "" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "æ™‚é–“ãŒæ®‹ã£ã¦ã„ã¾ã™" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "使ã£ãŸæ™‚é–“" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" msgstr "残ã£ã¦ã„る時間" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "表示ã™ã‚‹æ™‚é–“" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" msgstr "使ã£ãŸæ™‚é–“" -#: NOT FOUND IN SOURCE -msgid "TimeLeft" +#: lib/RT/Ticket_Overlay.pm:1143 +msgid "TimeWorked" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1277 -msgid "TimeWorked" +#: html/Search/Elements/EditFormat:74 +msgid "Title" msgstr "" #: NOT FOUND IN SOURCE @@ -5460,16 +4860,16 @@ msgstr "ã“ã®ã‚³ãƒŸãƒƒãƒˆã®ãƒ‡ã‚£ãƒ•ã‚’ã¤ãã‚‹ãŸã‚ã«:" msgid "To generate a diff of this commit:\\n" msgstr "ã“ã®ã‚³ãƒŸãƒƒãƒˆã®ãƒ‡ã‚£ãƒ•ã‚’ã¤ãã‚‹ãŸã‚ã«:\\n" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<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:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "言ã£ãŸ" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" msgstr "" @@ -5477,28 +4877,24 @@ msgstr "" msgid "Transaction" msgstr "" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "トランザクション%1ãŒæ¶ˆåŽ»ã•れã¾ã—ãŸ" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "トランザクションãŒä½œæˆã•れã¾ã—ãŸ" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:78 msgid "Transaction Custom Fields" msgstr "" -#: lib/RT/Transaction_Overlay.pm:92 -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:125 msgid "Transaction->Create couldn't, as you didn't specify an object type and id" msgstr "" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "トランザクションã¯å¤‰æ›´ã•れるã“ã¨ã¯ã‚りã¾ã›ã‚“" @@ -5506,23 +4902,19 @@ msgstr "トランザクションã¯å¤‰æ›´ã•れるã“ã¨ã¯ã‚りã¾ã›ã‚“" msgid "Trying to delete a right: %1" msgstr "権利: %1を削除ã—ã¦ã„ã¾ã™" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "ç«æ›œæ—¥" -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "タイプ" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "å°Žå…¥ã•れã¦ã„ãªã„" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "Unixログイン" @@ -5530,16 +4922,21 @@ msgstr "Unixログイン" msgid "UnixUsername" msgstr "Unixユーザーãƒãƒ¼ãƒ " -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "䏿˜Žãªã‚³ãƒ³ãƒ†ãƒ³ãƒ„エンコーディング%1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "制é™ã•れã¦ã„ãªã„" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" msgstr "" @@ -5547,27 +4944,23 @@ msgstr "" msgid "Unprivileged" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:60 msgid "Unselected Custom Fields" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:61 msgid "Unselected objects" msgstr "" -#: lib/RT/Transaction_Overlay.pm:562 +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" msgstr "ã¨ã‚‰ã‚Œã¦ã„ãªã„" -#: NOT FOUND IN SOURCE -msgid "Untitled search" -msgstr "" - -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "アップデート" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" msgstr "" @@ -5575,11 +4968,11 @@ msgstr "" msgid "Update ID" msgstr "アップデートID" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" msgstr "" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "アップデートタイプ" @@ -5591,7 +4984,7 @@ msgstr "ã™ã¹ã¦ã®ãƒã‚±ãƒƒãƒˆã‚’一度ã«ã‚¢ãƒƒãƒ—デートã™ã‚‹" msgid "Update email" msgstr "アップデートEメール" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" msgstr "" @@ -5599,11 +4992,11 @@ msgstr "" msgid "Update name" msgstr "アップデートãƒãƒ¼ãƒ " -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "アップデートã¯è¨˜éŒ²ã•れã¾ã›ã‚“ã§ã—ãŸ" -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "é¸æŠžã•れãŸãƒã‚±ãƒƒãƒˆã‚’アップデートã™ã‚‹" @@ -5611,7 +5004,7 @@ msgstr "é¸æŠžã•れãŸãƒã‚±ãƒƒãƒˆã‚’アップデートã™ã‚‹" msgid "Update signature" msgstr "サインをアップデートã™ã‚‹" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "ãƒã‚±ãƒƒãƒˆã‚’アップデートã™ã‚‹" @@ -5619,58 +5012,58 @@ msgstr "ãƒã‚±ãƒƒãƒˆã‚’アップデートã™ã‚‹" msgid "Update ticket # %1" msgstr "アップデートãƒã‚±ãƒƒãƒˆ # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "アップデートãƒã‚±ãƒƒãƒˆ #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "アップデートタイプã¯é€šçŸ¥ã§ã‚‚コメントã§ã‚‚ã‚りã¾ã›ã‚“" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "アップデートã—ã¾ã—ãŸ" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:84 msgid "Upload multiple files" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:79 msgid "Upload multiple images" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:85 msgid "Upload one file" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:80 msgid "Upload one image" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:86 msgid "Upload up to %1 files" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:81 msgid "Upload up to %1 images" msgstr "" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" #: NOT FOUND IN SOURCE @@ -5681,7 +5074,7 @@ msgstr "ユーザー%1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "ユーザー%1パスワード: %2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." msgstr "" @@ -5698,7 +5091,7 @@ msgstr "ユーザー'%1'ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\\n" msgid "User Defined" msgstr "" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" msgstr "" @@ -5706,32 +5099,33 @@ msgstr "" msgid "User ID" msgstr "ユーザーID" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "ユーザーID" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" msgstr "" -#: html/Admin/Users/Modify.html:252 +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "ユーザーを作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ: %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "ユーザーãŒä½œæˆã•れã¾ã—ãŸ" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" msgstr "" @@ -5743,23 +5137,23 @@ msgstr "ユーザーã«é€šå‘Šã•れã¾ã—ãŸ" msgid "User view" msgstr "ユーザービュー" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:99 msgid "User-defined groups" msgstr "" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "ユーザーãƒãƒ¼ãƒ " -#: 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 +#: 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:1086 msgid "Users" msgstr "ユーザー" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæ¤œç´¢åŸºæº–ã«ã‚ã£ã¦ã„ã¾ã™" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" msgstr "" @@ -5767,27 +5161,19 @@ msgstr "" msgid "ValueOfQueue" msgstr "キューã®ãƒãƒªãƒ¥ãƒ¼" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "ãƒãƒªãƒ¥ãƒ¼" -#: NOT FOUND IN SOURCE -msgid "VrijevormEnkele" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Watcher loaded" -msgstr "" - -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "ウォッãƒãƒ£ãƒ¼" @@ -5795,7 +5181,7 @@ msgstr "ウォッãƒãƒ£ãƒ¼" msgid "WebEncoding" msgstr "ウェブエンコーディング" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "水曜日" @@ -5851,19 +5237,11 @@ msgstr "" msgid "Whenever correspondence comes in" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "仕事" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" msgstr "" @@ -5871,31 +5249,19 @@ msgstr "" msgid "WorkPhone" msgstr "仕事先ã®é›»è©±" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "Worked" -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" msgstr "ã‚ãªãŸã¯ã™ã§ã«ã“ã®ãƒã‚±ãƒƒãƒˆã‚’所有ã—ã¦ã„ã¾ã™" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 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 "" - -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" msgstr "ã‚ãªãŸã¯æ‰€æœ‰ã€ã¾ãŸã¯æ‰€æœ‰ã•れã¦ã„ãªã„ãƒã‚±ãƒƒãƒˆã®ã¿ã‚’æ­¢ã‚ã‚‹ã“ã¨ãŒã§ãã¾ã™" @@ -5903,24 +5269,24 @@ msgstr "ã‚ãªãŸã¯æ‰€æœ‰ã€ã¾ãŸã¯æ‰€æœ‰ã•れã¦ã„ãªã„ãƒã‚±ãƒƒãƒˆã®ã¿ 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:760 +#: 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:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "ã‚ãªãŸã¯RTã‹ã‚‰ãƒ­ã‚°ã‚¢ã‚¦ãƒˆã—ãŸã¾ã¾ã§ã™" -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." msgstr "ã‚ãªãŸã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãƒã‚±ãƒƒãƒˆä½œæˆã®è¨±å¯ãŒã‚りã¾ã›ã‚“" -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." msgstr "ã‚ãªãŸã¯ã“ã®ã‚­ãƒ¥ãƒ¼ã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã®ä½œæˆãŒã§ãã‚‹ã§ã—ょã†" -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "ãœã²ã¾ãŸãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãã ã•ã„" @@ -5940,55 +5306,43 @@ msgstr "" msgid "Your request has been approved." msgstr "" -#: NOT FOUND IN SOURCE -msgid "Your request was rejected" -msgstr "" - #: etc/initialdata:445 msgid "Your request was rejected." msgstr "" -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "ã‚ãªãŸã®ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒãƒ¼ãƒ ã¨ãƒ‘スワードãŒé–“é•ã£ã¦ã„ã¾ã™" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: 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 "and is not" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "and not" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" msgstr "" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "%1ã¸ã®è¨±å¯" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: 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 "通知ã¯ï¼ˆãŠãらã)é€ä¿¡ã•れã¦ã„ã¾ã›ã‚“" @@ -5997,88 +5351,96 @@ msgstr "通知ã¯ï¼ˆãŠãらã)é€ä¿¡ã•れã¦ã„ã¾ã›ã‚“" msgid "correspondence sent" msgstr "通知ãŒé€ä¿¡ã•れã¾ã—ãŸ" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "æ—¥" -#: NOT FOUND IN SOURCE -msgid "dead" -msgstr "" - #: NOT FOUND IN SOURCE msgid "delete" msgstr "削除" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "削除ã•れãŸ" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "ã‚ã„ã¾ã›ã‚“" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "å«ã¿ã¾ã›ã‚“" -#: NOT FOUND IN SOURCE -msgid "email address" -msgstr "" - -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "ç­‰ã—ã„" -#: NOT FOUND IN SOURCE -msgid "false" +#: html/Search/Build.html:387 +msgid "error: can't move down" msgstr "" -#: NOT FOUND IN SOURCE -msgid "filename" +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" msgstr "" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "より大ãã„" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "グループ'%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "時間" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "ID" -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" - -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "ã§ã™" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "ã§ãªã„" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "より少ãªã„" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "åˆã†" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "最低" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "分" @@ -6086,100 +5448,88 @@ msgstr "分" msgid "modifications\\n\\n" msgstr "修正\\n\\n" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "月" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "æ–°ã—ã„" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" msgstr "" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "ãªã—" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "ç­‰ã—ããªã„" -#: NOT FOUND IN SOURCE -msgid "notlike" -msgstr "" - -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "é–‹ã" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "ユーザー '%2' ã®ãƒ‘ーソナルグループ '%1' " -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "キュー %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "æ‹’å¦ã•れã¾ã—ãŸ" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "分解ã•れã¾ã—ãŸ" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "ç§’" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "" + +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "æ­¢ã¾ã‚Šã¾ã—ãŸ" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "システム %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "システムグループ '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "呼ã³å‡ºã—ã¦ã„るコンãƒãƒ¼ãƒãƒ³ãƒˆãŒãªãœæ¬¡ã®ã‚ˆã†ãªã“ã¨ãŒèµ·ã“ã‚‹ã®ã‹ç‰¹å®šã§ãã¾ã›ã‚“ã§ã—ãŸ" -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ãƒã‚±ãƒƒãƒˆã€€#%1 %2" -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "true" -msgstr "" - -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "" @@ -6188,12 +5538,12 @@ msgstr "" msgid "undescripbed group %1" msgstr "表示ã•れãªã„グループ %1" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "ユーザー %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "週" @@ -6201,11 +5551,7 @@ msgstr "週" msgid "with template %1" msgstr "テンプレート %1ã¨" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "å¹´" -#: NOT FOUND IN SOURCE -msgid "ニックãƒãƒ¼ãƒ " -msgstr "" - diff --git a/rt/lib/RT/I18N/nl.po b/rt/lib/RT/I18N/nl.po index 617f9534b..91547c870 100644 --- a/rt/lib/RT/I18N/nl.po +++ b/rt/lib/RT/I18N/nl.po @@ -13,171 +13,147 @@ msgstr "#" msgid "#%1" msgstr "msgstr "" " -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "#%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" msgstr "" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +#: NOT FOUND IN SOURCE msgid "%1 %2 %3" msgstr "%1 %2 %3" -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" msgstr "%1 %2 toegevoegd" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "%1 %2 geleden" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%1 %2 veranderd naar %3" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" msgstr "%1 %2 verwijderd" -#: NOT FOUND IN SOURCE -msgid "%1 %2 of group %3" -msgstr "" - -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" msgstr "%1 %2 met sjabloon %3" -#: NOT FOUND IN SOURCE -msgid "%1 %2 הוסף" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 מקבוצה %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 נמחק" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 שונה ל %3" -msgstr "" - #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 dit ticket\\n" -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 פנייה זו\\n" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" msgstr "" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "%1 - %2 shown" -msgstr "" - -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" msgstr "%1 - Een argument om door te geven aan %2" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Uitvoer status herzieningen naar STDOUT" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Specificeer de actie module die u wenst te gebruiken" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Specificeer de conditie module die u wenst te gebruiken" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Specificeer de zoek module die u wenst te gebruiken" -#: NOT FOUND IN SOURCE -msgid "%1 - ×רגומנט להעביר ×ל %2" -msgstr "" - $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 -#. ('»|«', $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 +#. ('»|«', + $RT::VERSION, + '2005', + '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1 ScripAction geladen" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 toegevoegd als waarde voor %2" @@ -194,32 +170,31 @@ msgstr "%1 aliassen hebben een TicketId nodig om mee te werken" msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "%1 aliassen hebben een TicketId nodig om mee te werken (van %2) %3" -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($args{'Base'}) #. ($args{'Target'}) msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "" +msgstr "%1 lijkt een lokaal object te zijn maar kan niet gelokaliseerd worden in de database" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 door %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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") msgid "%1 changed from %2 to %3" msgstr "%1 veranderd van %2 naar %3" -#: html/Search/Build.html:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" msgstr "" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "%1 kon niet veranderd worden naar %2" @@ -227,20 +202,22 @@ msgstr "%1 kon niet veranderd worden naar %2" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 kon geen transactie initiëren (%2)" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 kon status niet veranderen naar opgelost. RT's Database zou inconsistent kunnen zijn" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) msgid "%1 created" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) msgid "%1 deleted" msgstr "" -#: html/Elements/MyTickets:24 +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" msgstr "" @@ -249,17 +226,16 @@ msgstr "" msgid "%1 highest priority tickets I own..." msgstr "De %1 hoogste prioriteit tickets die ik bezit..." -#: html/Elements/MyTickets:26 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I requested..." -msgstr "De %1 hoogste prioriteit tickets waarom ik verzocht heb..." +msgstr "De %1 hoogste prioriteit tickets waar ik om verzocht heb..." -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "%1 is een gereedschap om te reageren op tickets van een extern rooster programma, zoals cron" -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 is niet langer een %2 voor deze rij" @@ -268,8 +244,7 @@ msgstr "%1 is niet langer een %2 voor deze rij" msgid "%1 is no longer a %2 for this ticket." msgstr "%1 is niet langer een %2 voor dit ticket" -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a value for custom field %2" msgstr "%1 is niet langer een waarde voor specifiek veld %2" @@ -277,11 +252,7 @@ msgstr "%1 is niet langer een waarde voor specifiek veld %2" msgid "%1 isn't a valid Queue id." msgstr "%1 is niet een geldig Rij id" -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -290,15 +261,7 @@ msgstr "" msgid "%1 min" msgstr "%1 min" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" msgstr "" @@ -307,11 +270,11 @@ msgstr "" msgid "%1 not shown" msgstr "%1 niet afgebeeld" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:827 msgid "%1 objects" -msgstr "" +msgstr "%1 objecten" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 rechten" @@ -328,85 +291,41 @@ msgstr "%1 type onbekend voor $MessageId" msgid "%1 type unknown for %2" msgstr "%1 type onbekend voor %2" -#: NOT FOUND IN SOURCE -msgid "%1 was created without a CurrentUser\\n" -msgstr "" - -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 zal alle leden van een opgelost groep ticket omzetten." -#: NOT FOUND IN SOURCE -msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 הוסף כערך עבור %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 לפני %2 ימי×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 על ידי %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 פעולת-סקריפ נטענה" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 שונה מ %2 ל %3" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:828 msgid "%1's %2 objects" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:829 msgid "%1's %2's %3 objects" msgstr "" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" msgstr "" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1: geen aanhechting gespecificeerd" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1 is een ongeldige waarde voor status" @@ -415,69 +334,53 @@ msgstr "'%1 is een ongeldige waarde voor status" msgid "'%1' not a recognized action. " msgstr "'%1' onherkende actie. " -#: 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: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 +#: 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 "(Vink hokje af om te verwijderen)" -#: NOT FOUND IN SOURCE -msgid "(Check boxes to delete)" -msgstr "" - -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "" +msgstr "(Markeer hokje om notificaties voor de genoemde ontvangers uit te zetten)" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "" +msgstr "(Markeer hokje om notificaties voor de genoemde ontvangers aan te zetten)" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(Vul ticket ids of URLs in, gescheiden door spaties)" - -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "" -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: 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 "" +msgid "(If left blank, will default to %1)" +msgstr "(Indien leeggelaten, wordt voorzien van %1)" #: NOT FOUND IN SOURCE msgid "(No Value)" msgstr "(Geen Waarde)" -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" -msgstr "" +msgstr "(Geen eigen velden)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(Geen Leden)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "(Geen scrips)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" -msgstr "" +msgstr "(Geen slablonen)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 msgid "(None)" msgstr "" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:88 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 "" @@ -485,11 +388,11 @@ msgstr "" 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 "(Stuurt een blinde carbon copy van deze herziening naar een comma gescheiden lijst van email adressen. Wie er toekomstige herzieningen zal ontvangen, zal <b>niet</b> veranderen.)" -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 "" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 "" @@ -497,111 +400,87 @@ msgstr "" 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 "(Stuurt een carbon copy van deze herziening naar een comma gescheiden lijst van email adressen. Wie er toekomstige herzieningen zal ontvangen, zal <b>niet</b> veranderen.)" -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 "" +msgstr "(Stuurt een kopie van deze herziening naar een door komma's gescheiden lijst van email-adressen. Deze personen zullen toekomstige herzieningen <b>blijven</b> ontvangen.)" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" msgstr "" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(leeg)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "" -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" - #: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(geen onderwerp)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(geen waarde)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFieldValues:47 msgid "(no values)" -msgstr "" +msgstr "(geen waarden)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(slechts één ticket)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(wacht op goedkeuring)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" -msgstr "" +msgstr "(wacht op andere Collection)" #: NOT FOUND IN SOURCE msgid "(pending other tickets)" msgstr "(wacht op andere tickets)" -#: NOT FOUND IN SOURCE -msgid "(requestor's group)" -msgstr "" - -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(verplicht)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(zonder titel)" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I own..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I requested..." -msgstr "" - -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "<% $_ %>" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"Nieuw ticket in\"> %1" -#: NOT FOUND IN SOURCE -msgid "??????" -msgstr "" - #: etc/initialdata:218 msgid "A blank template" msgstr "Een leeg sjabloon" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "" + #: NOT FOUND IN SOURCE msgid "ACE Deleted" msgstr "ACE Verwijderd" @@ -610,80 +489,80 @@ msgstr "ACE Verwijderd" msgid "ACE Loaded" msgstr "ACE Geladen" -#: NOT FOUND IN SOURCE -msgid "ACE could not be deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE could not be found" -msgstr "" - -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "ACE niet gevonden" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "ACEs kunnen allen gecreëerd of verwijderd worden." +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "Afbraak om ongewenste ticket aanpassing te voorkomen.\\n" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" -msgstr "" +msgstr "Over mezelf" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "Toegangscontrole" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "Actie" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Actie %1 niet gevonden" -#: bin/rt-crontool:119 +#: NOT FOUND IN SOURCE msgid "Action committed." msgstr "Actie uitgevoerd." -#: bin/rt-crontool:115 +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "" + +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "Actie voorbereid..." -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" -msgstr "" +msgstr "Voeg toe" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "Voeg AdminCc toe" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "Voeg Cc toe" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "" + +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" msgstr "" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "Voeg Meer Bestanden Toe" -#: NOT FOUND IN SOURCE -msgid "Add Next State" -msgstr "" - -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "Voeg Verzoeker Toe" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" msgstr "" @@ -691,65 +570,53 @@ msgstr "" msgid "Add a Scrip to this queue" msgstr "Voeg een Scrip toe aan deze rij" -#: 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:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" -msgstr "Voeg een scrip toe welke voor alle rijen zal gelden" +msgstr "Voeg een Scrip toe dat voor alle rijen zal gelden" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" msgstr "" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "Voeg commentaar of reacties toe aan geselecteerde tickets" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "Voeg leden toe" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "Voeg nieuwe toeschouwers toe" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "" + #: NOT FOUND IN SOURCE msgid "AddNextState" msgstr "VoegVolgendeStaatToe" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Hoofd toegevoegd als %1 voor deze rij" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Hoofd toegevoegd als %1 voor dit ticket" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "Adres1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "Adres2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "Beheerder Cc" @@ -761,15 +628,15 @@ msgstr "" msgid "Admin Correspondence" msgstr "" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" msgstr "Beheerder rijen" #: NOT FOUND IN SOURCE msgid "Admin users" -msgstr "Beheerder gebruikers" +msgstr "Beheerdergebruikers" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "Beheerder/Globale configuratie" @@ -781,11 +648,7 @@ msgstr "Beheerder/Groepen" msgid "Admin/Queue/Basics" msgstr "Beheerder/Rij/Basis" -#: NOT FOUND IN SOURCE -msgid "AdminAllPersonalGroups" -msgstr "" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "BeheerderCc" @@ -797,55 +660,47 @@ msgstr "BeheerderCommentaar" msgid "AdminCorrespondence" msgstr "BeheerderCorrespondentie" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:101 msgid "AdminCustomField" -msgstr "" +msgstr "BeheerderSpecifiekVeld" -#: lib/RT/Queue_Overlay.pm:73 +#: NOT FOUND IN SOURCE msgid "AdminCustomFields" msgstr "BeheerderSpecifiekeVelden" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "BeheerderGroep" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "BeheerderGroepLidmaatschap" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "BeheerderBezitPersoonlijkeGroepen" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "BeheerderRij" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "BeheerderGebruikers" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "Administratieve Cc" -#: NOT FOUND IN SOURCE -msgid "Admins" -msgstr "" - -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" -msgstr "" +msgstr "Geavanceerd" #: NOT FOUND IN SOURCE msgid "Advanced Search" msgstr "Uitgebreid Zoeken" -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "" - -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "Nadat" @@ -853,27 +708,15 @@ msgstr "Nadat" msgid "Age" msgstr "Leeftijd" -#: NOT FOUND IN SOURCE -msgid "Alias" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Alias for" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" msgstr "" #: etc/initialdata:363 msgid "All Approvals Passed" -msgstr "" +msgstr "Alle Gegeven Goedkeuringen" -#: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:94 -msgid "All Custom Fields" -msgstr "" - -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "Alle Rijen" @@ -881,35 +724,39 @@ msgstr "Alle Rijen" msgid "Always sends a message to the requestors independent of message sender" msgstr "Stuurt altijd een bericht naar de verzoekers ongeacht de verzender van het bericht" -#: NOT FOUND IN SOURCE +#: 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:42 +#: html/Search/Edit.html:64 msgid "Apply" msgstr "" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" msgstr "" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "Goedkeuring" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "Goedkeuring #%1: %2" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Goedkeuring #%1: Notities niet bewaard vanwege een systeem fout" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Goedkeuring #%1: Notities bewaard" @@ -930,7 +777,7 @@ msgstr "" msgid "Approval diagram" msgstr "Goedkeuring diagram" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "Goedkeuring" @@ -938,7 +785,7 @@ msgstr "Goedkeuring" msgid "Approver's notes: %1" msgstr "Notities van de goedkeurer: %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "Ggk." @@ -946,72 +793,52 @@ msgstr "Ggk." msgid "April" msgstr "april" -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "Oplopend" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "Assign and remove custom fields" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "AssignCustomFields" -msgstr "" +msgstr "WijsSpecifiekeVeldenToe" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "Aanhechten" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "Hecht bestand aan" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "Aangehecht bestand" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 #. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Aanhechting '%1' kon niet geladen worden" -#: lib/RT/Transaction_Overlay.pm:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "Aanhechting gecreëerd" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "Aanhechting bestandsnaam" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "Aanhechtingen" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" -msgstr "" +msgstr "Attribuut Verwijderd" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "aug." @@ -1029,19 +856,19 @@ msgstr "Automatisch-antwoord" #: etc/initialdata:72 msgid "Autoreply To Requestors" -msgstr "" +msgstr "Automatisch-antwoord aan Verzoekers" #: NOT FOUND IN SOURCE msgid "AutoreplyToRequestors" msgstr "Automatisch-antwoordAanVerzoekers" -#: html/Search/Elements/EditFormat:4 +#: NOT FOUND IN SOURCE msgid "Available Columns" -msgstr "" +msgstr "Beschikbare Kolommen" #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" -msgstr "Ongeldige PGP Signatuur: %1\\n" +msgstr "Ongeldige PGP Signature: %1\\n" #: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" @@ -1055,19 +882,19 @@ msgstr "Ongeldige data in %1" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Ongeldig transactienummer voor aanhechting. %1 zou %2 moeten zijn\\n" -#: 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 +#: 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 "Basis" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "Zorg ervoor dat u uw veranderingen bewaard" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "Voorheen" @@ -1075,144 +902,129 @@ msgstr "Voorheen" msgid "Begin Approval" msgstr "Begin Goedkeuring" -#: NOT FOUND IN SOURCE -msgid "Binary" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" msgstr "" #: etc/initialdata:217 msgid "Blank" msgstr "Blanco" +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" -msgstr "XXX URL voor deze zoekopdracht" +msgstr "URL voor deze zoekopdracht, geschikt als bookmark" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" msgstr "" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "Korte koppen" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "Bulk ticketherziening" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "Kan systeemgebruikers niet wijzigen" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" msgstr "Kan dit hoofd deze rij zien" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "Kan geen specifiek veld toevoegen zonder een naam" -#: html/Search/Build.html:694 -msgid "Can't find a saved search to work with" +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" msgstr "" -#: lib/RT/Link_Overlay.pm:126 +#: html/Search/Build.html:761 +msgid "Can't find a saved search to work with" +msgstr "Kan geen bewaarde zoekopdracht vinden om mee te werken" + +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "Kan een ticket niet koppelen aan zichzelf" -#: lib/RT/Ticket_Overlay.pm:2716 +#: NOT FOUND IN SOURCE msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Kan niet samenvoegen met een reeds samengevoegd ticket. U zou deze boodschap nooit mogen krijgen" -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" -msgstr "" +msgstr "Kan deze zoekopdracht niet opslaan" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "Kan niet zowel basis als doel specificeren" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "Kan gebruiker %1 niet aanmaken" -#: 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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "Cc" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "Wijzig wachtwoord" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:100 msgid "Check All" -msgstr "" +msgstr "Alle Markeren" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "Vink hokje af om te verwijderen" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "Vink hokje af om recht te verwijderen" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "Kinderen" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "Stad" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:102 msgid "Clear All" -msgstr "" +msgstr "Alle Wissen" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" -msgstr "" - -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "" +msgstr "Gesloten" #: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Gesloten verzoeken" -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Code" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Command not understood!\\n" msgstr "Commando niet begrepen!\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "Commentaar" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "Commentaar Adres" @@ -1220,11 +1032,11 @@ msgstr "Commentaar Adres" msgid "Comment not recorded" msgstr "Commentaar niet bewaard" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "Commentaar op tickets" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "CommentaarOpTicket" @@ -1232,11 +1044,11 @@ msgstr "CommentaarOpTicket" msgid "Comments" msgstr "Commentaar" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "Commentaar (Wordt niet verstuurd aan verzoekers)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "Commentaar (Wordt niet verstuurd aan verzoekers)" @@ -1244,15 +1056,15 @@ msgstr "Commentaar (Wordt niet verstuurd aan verzoekers)" msgid "Comments about %1" msgstr "Commentaar over %1" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "Commentaar over deze gebruiker" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "Commentaar toegevoegd" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "" @@ -1260,23 +1072,23 @@ msgstr "" msgid "Compile Restrictions" msgstr "Compilatie Restricties" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "Voorwaarde" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "Voorwaarde komt overeen..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "Voorwaarde niet gevonden" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "Configuratie" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "Bevestig" @@ -1288,19 +1100,15 @@ msgstr "ContactInfoSysteem" msgid "Contacted date '%1' could not be parsed" msgstr "Contact datum '%1' kon niet ontleed worden" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "Inhoud" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Coould not create group" -msgstr "" - -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" msgstr "" @@ -1312,7 +1120,7 @@ msgstr "Correspondentie" msgid "Correspondence Address" msgstr "Correspondentieadres" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "Correspondentie toegevoegd" @@ -1320,7 +1128,7 @@ msgstr "Correspondentie toegevoegd" msgid "Correspondence not recorded" msgstr "Correspondentie niet bewaard" -#: lib/RT/Ticket_Overlay.pm:3471 +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. " msgstr "Kon nieuw specifiek veld niet toevoegen voor dit ticket. " @@ -1328,29 +1136,43 @@ msgstr "Kon nieuw specifiek veld niet toevoegen voor dit ticket. " msgid "Could not add new custom field value for ticket. %1 " msgstr "Kon nieuw specifiek veld niet toevoegen voor dit ticket. %1" -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "" + +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " msgstr "Kon eigenaar niet wijzigen. " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "Kon SpecifiekVeld niet creëren" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "Kon groep niet creëren" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" msgstr "Kon sjabloon niet creëren: %1" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "Kon ticket niet creëren. Rij niet ingesteld" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" msgstr "Kon gebruiker niet creëren" @@ -1366,11 +1188,11 @@ msgstr "Kon geen ticket vinden met id %1" msgid "Could not find group %1." msgstr "Kon groep %1 niet vinden. " -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "Kon deze gebruiker niet vinden of creëren" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "Kon dat hoofd niet vinden" @@ -1378,25 +1200,34 @@ msgstr "Kon dat hoofd niet vinden" msgid "Could not find user %1." msgstr "Kon gebruiker %1 niet vinden." -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:69 msgid "Could not load CustomField %1" -msgstr "" +msgstr "Kon SpecifiekVeld %1 niet laden" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "Kon groep niet laden" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Kon dat hoofd geen %1 maken voor deze rij" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Kon dat hoofd geen %1 maken voor dit ticket" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Kon dat hoofd niet verwijderen als %1 voor deze rij" @@ -1405,15 +1236,15 @@ msgstr "Kon dat hoofd niet verwijderen als %1 voor deze rij" msgid "Could not remove that principal as a %1 for this ticket" msgstr "Kon dat hoofd niet verwijderen als %1 voor dit ticket" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" -msgstr "" +msgstr "Kan gebruikersinformatie niet toewijzen" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" msgstr "Kon lid niet toevoegen aan groep" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Kon geen transactie creëren: %1" @@ -1426,15 +1257,15 @@ msgstr "Kon niet bepalen welke actie te ondernemen aan de hand van gpg's antwoor msgid "Couldn't find group\\n" msgstr "Kon groep niet vinden\\n" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" msgstr "Kon rij niet vinden" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" msgstr "Kon dat hoofd niet vinden" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" msgstr "Kon die waarde niet vinden" @@ -1446,16 +1277,18 @@ msgstr "Kon die toeschouwer niet vinden" msgid "Couldn't find user\\n" msgstr "Kon gebruiker niet vinden\\n" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Kon %1 niet laden uit de gebruikersdatabase.\\n" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" msgstr "" @@ -1471,25 +1304,26 @@ msgstr "Kon RT configuratie bestand niet laden '%1' %2" msgid "Couldn't load Scrips." msgstr "Kon Scrips niet laden" -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" msgstr "Kon groep %1 niet laden" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "Kon link niet laden" -#: NOT FOUND IN SOURCE +#: 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 "" +msgstr "Kon object %1 niet laden" -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" msgstr "Kon rij niet laden" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" msgstr "Kon rij %1 niet laden " @@ -1506,16 +1340,26 @@ msgstr "Kon sjabloon niet laden" msgid "Couldn't load that user (%1)" msgstr "Kon die gebruiker (%1) niet laden" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Kon ticket '%1' niet laden" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "Land" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "Creëer" @@ -1523,44 +1367,28 @@ msgstr "Creëer" msgid "Create Tickets" msgstr "Creëer Tickets" -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" - -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "Creëer een SpecifiekVeld" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "" -#: html/Admin/Global/CustomField.html:47 -msgid "Create a CustomField which applies to all queues" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create a new Custom Field" msgstr "Creëer een niuew Specifiek Veld" -#: NOT FOUND IN SOURCE -msgid "Create a new article" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "Creëer een nieuw globaal Scrip" -#: NOT FOUND IN SOURCE -msgid "Create a new global scrip" -msgstr "" - -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "Creëer een nieuwe groep" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "Creëer een nieuwe persoonlijke groep" @@ -1576,15 +1404,15 @@ msgstr "Creëer een nieuw scrip" msgid "Create a new template" msgstr "Creëer een nieuw template" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "Creëer een nieuw ticket" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "Creëer een nieuwe gebruiker" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "Creëer een rij" @@ -1596,182 +1424,149 @@ msgstr "Creëer een rij genaamd" msgid "Create a request" msgstr "Creëer een verzoek" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Creëer een scrip voor rij %1" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "Creëer een sjabloon" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" +msgstr "Maak een ticket aan" #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Creatie mislukt: %1 / %2 / %3 " -#: NOT FOUND IN SOURCE -msgid "Create failed: %1/%2/%3" -msgstr "" - #: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" msgstr "Creëer nieuwe tickets gebaseerd op het sjabloon van dit scrip" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "Creëer ticket" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" msgstr "Creëer tickets in deze rij" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "Creëer, verwijder en wijzig specifieke velden" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" msgstr "Creëer, verwijder en wijzig rijen" -#: NOT FOUND IN SOURCE -msgid "Create, delete and modify the members of any user's personal groups" -msgstr "" - -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "Creëer, verwijder en wijzig de leden van persoonlijke groepen" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "Creëer, verwijder en wijzig gebruikers" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "CreëerTicket" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "Gecreëerd" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "SpecifiekVeld %1 gecreëerd" -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Sjabloon %1 Gecreëerd" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" -msgstr "" +msgstr "Creator" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "Huidige Relaties" -#: NOT FOUND IN SOURCE -msgid "Current Relationships" -msgstr "" - -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "Huidige Scrips" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "Huidige leden" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "Huidige rechten" #: NOT FOUND IN SOURCE msgid "Current search criteria" -msgstr "" +msgstr "Huidige zoekcriteria" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "Huidige toeschouwers" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) -msgid "Custom Field #%1" -msgstr "" - -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "Specifieke Velden" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) msgid "Custom Fields for %1" -msgstr "" +msgstr "Specifieke Velden voor %1" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "Specifieke actie opruim code" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "Specifieke actie voorbereidings code" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "Specifieke voorwaarde" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: NOT FOUND IN SOURCE msgid "Custom field %1 %2 %3" msgstr "Specifiek veld %1 %2 %3" #: NOT FOUND IN SOURCE msgid "Custom field %1 does not apply to this object" -msgstr "" +msgstr "Specifiek Veld %1 is niet van toepassing op dit object" -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Specifiek veld %1 heeft een waarde." -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Specifiek veld %1 heeft geen waarde." -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Specifiek veld %1 niet gevonden" -#: html/Admin/Elements/EditCustomFields:195 -msgid "Custom field deleted" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" msgstr "Specifiek veld niet gevonden" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "Specifiek veld waarde %1 kon niet gevonden worden voor specifiek veld %2" @@ -1780,31 +1575,31 @@ msgstr "Specifiek veld waarde %1 kon niet gevonden worden voor specifiek veld %2 msgid "Custom field value changed from %1 to %2" msgstr "Specifiek veld waarde veranderd van %1 naar %2" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "Specifiek veld waarde kon niet verwijderd worden" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "Specifiek veld waarde kon niet gevonden worden" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "Specifiek veld waarde verwijderd" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" -msgstr "" +msgstr "SpecifiekVeld" #: NOT FOUND IN SOURCE msgid "Data error" msgstr "Data fout" -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "Data" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "dec." @@ -1820,11 +1615,11 @@ msgstr "Standaard Auto-antwoord Sjabloon" msgid "Default Autoresponse template" msgstr "" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" msgstr "" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" msgstr "" @@ -1844,60 +1639,64 @@ msgstr "Standaard correspondentie sjabloon" msgid "Default transaction template" msgstr "Standaard transactie sjabloon" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: NOT FOUND IN SOURCE msgid "Default: %1/%2 changed from %3 to %4" msgstr "Standaard: %1/%2 verandered van %3 naar %4" -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "Delegeer rechten" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "Delegeer specifieke rechten die aan u verleend zijn." -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "DelegeerRechten" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" msgstr "Verwijder tickets" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "VerwijderTicket" -#: lib/RT/Transaction_Overlay.pm:162 +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Deleting this object could break referential integrity" msgstr "Het verwijderen van dit object zou de referentiële integriteit kunnen ondermijnen" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "Het verwijderen van dit object zou de referentiële integriteit ondermijnen" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "Het verwijderen van dit object zou de referentiële integriteit ondermijnen" @@ -1905,15 +1704,11 @@ msgstr "Het verwijderen van dit object zou de referentiële integriteit ondermij msgid "Deleting this object would violate referential integrity." msgstr "Het verwijderen van dit object zou de referentiële integriteit ondermijnen" -#: NOT FOUND IN SOURCE -msgid "Deleting this object would violate referential integrity. That's bad." -msgstr "" - -#: html/Approvals/Elements/Approve:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "Wijs af" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "Afhankelijkheid van" @@ -1921,43 +1716,39 @@ msgstr "Afhankelijkheid van" msgid "Dependencies: \\n" msgstr "Afhankelijkheden: \\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "Is afhankelijk van" -#: NOT FOUND IN SOURCE -msgid "DependsOn" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "Aflopend" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "Omschrijf onderstaande kwestie" -#: 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 +#: 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:56 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 "Omschrijving" @@ -1965,67 +1756,67 @@ msgstr "Omschrijving" msgid "Details" msgstr "Details" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "Toon" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "Toon Toegangs Controle Lijst" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" -msgstr "" +msgstr "Toon Kolommen" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" msgstr "Toon Scrip sjablonen voor deze rij" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" msgstr "Toon Scrips voor deze rij" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "Toon modus" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" -msgstr "" +msgstr "Toon bewaarde zoekopdrachten voor deze groep" #: NOT FOUND IN SOURCE msgid "Display ticket #%1" msgstr "Toon ticket #%1" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" msgstr "" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "Doe iets en alles" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "Ververs deze pagina niet" #: NOT FOUND IN SOURCE msgid "Don't show search results" -msgstr "" +msgstr "Toon zoekresultaten niet" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "Download" -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 msgid "Download as a tab-delimited file" -msgstr "" +msgstr "Download als een door tabs gescheiden databestand" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "Verwacht" @@ -2041,49 +1832,41 @@ msgstr "FOUT: Kon ticket '%1' niet laden: %2.\\n" msgid "Edit" msgstr "Wijzig" -#: NOT FOUND IN SOURCE -msgid "Edit Conditions" -msgstr "" - -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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 "Wijzig Specifieke Velden voor %1" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" msgstr "" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "" + +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "" + +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "Wijzig Relaties" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Edit Relationships" -msgstr "" +msgstr "Wijzig Zoekopdracht" -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit keywords" -msgstr "" - -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit scrips" -msgstr "" - -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "Wijzig systeem sjablonen" @@ -2091,15 +1874,11 @@ msgstr "Wijzig systeem sjablonen" msgid "Edit templates for %1" msgstr "Wijzig sjablonen voor %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" -msgstr "" +msgstr "WijzigOpgeslagenZoekopdrachten" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "Bezig met wijzigen van de configuratie voor rij %1" @@ -2108,17 +1887,17 @@ msgstr "Bezig met wijzigen van de configuratie voor rij %1" msgid "Editing Configuration for user %1" msgstr "Bezit met het wijzigen van de configuratie voor gebruiker %1" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Bezit met het wijzigen van SpecifiekVeld %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Bezit met het wijzigen van lidmaatschap voor groep %1" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Bezit met het wijzigen van lidmaatschap voor persoonlijke groep %1" @@ -2127,15 +1906,15 @@ msgstr "Bezit met het wijzigen van lidmaatschap voor persoonlijke groep %1" msgid "Editing template %1" msgstr "Bezit met het wijzigen van sjabloon %1" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "Of basis of doel moeten gespecificeerd zijn" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "E-mail" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "E-mailadres in gebruik" @@ -2147,84 +1926,61 @@ msgstr "E-mailAdres" msgid "EmailEncoding" msgstr "E-mailCodering" -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: 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:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Actief (Het uitvinken van dit hokje zal deze rij deactiveren)" -#: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:97 -msgid "Enabled Custom Fields" -msgstr "" - -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" msgstr "Actieve Rijen" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "Actieve status %1" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) msgid "Enabled status: %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." msgstr "" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." msgstr "" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Vul tickets of URIs in om deze tickets aan te koppelen. Scheidt meerdere elementen met spaties." -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:66 msgid "Enter up to %1 values" msgstr "" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "Fout" -#: NOT FOUND IN SOURCE -msgid "Error adding watcher" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "Fout in paramaters naar Queue->AddWatcher" @@ -2232,11 +1988,11 @@ msgstr "Fout in paramaters naar Queue->AddWatcher" msgid "Error in parameters to Queue->DelWatcher" msgstr "Fout in paramaters naar Queue->DelWatcher" -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Fout in paramaters naar Ticket->AddWatcher" @@ -2244,19 +2000,15 @@ msgstr "Fout in paramaters naar Ticket->AddWatcher" msgid "Error in parameters to Ticket->DelWatcher" msgstr "Fout in paramaters naar Ticket->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" msgstr "" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Estimate" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" msgstr "" @@ -2264,7 +2016,7 @@ msgstr "" msgid "Everyone" msgstr "Iedereen" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "Voorbeeld:" @@ -2276,72 +2028,73 @@ msgstr "ExternAuteurId" msgid "ExternalContactInfoId" msgstr "ExternContactInfoId" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "Extra informatie" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" msgstr "" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Kon de gebruikers pseudogroep 'Privileged' niet vinden." -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Kon de gebruikers pseudogroep 'Unprivileged' niet vinden." -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Kon module %1 niet laden. (%2)" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "feb." -#: NOT FOUND IN SOURCE -msgid "February" -msgstr "" - -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" -msgstr "" +msgstr "Bestandsnaam" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:69 msgid "Fill in multiple text areas" msgstr "" -#: NOT FOUND IN SOURCE +#: 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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:71 msgid "Fill in up to %1 text areas" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Fin" +#: lib/RT/CustomField_Overlay.pm:76 +msgid "Fill in up to %1 wikitext areas" msgstr "" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "Uiteindelijke Prioriteit" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "UiteindelijkePrioriteit" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 -msgid "Find group whose" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 msgid "Find groups whose" msgstr "" @@ -2349,11 +2102,11 @@ msgstr "" msgid "Find new/open tickets" msgstr "Zoek nieuwe/open tickets" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "Zoek mensen wier" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "" @@ -2361,7 +2114,7 @@ msgstr "" msgid "Finish Approval" msgstr "Beëindig Goedkeuring" -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "Eerste" @@ -2369,90 +2122,86 @@ msgstr "Eerste" msgid "First page" msgstr "Eerste pagina" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:766 msgid "Foo Bar Baz" msgstr "Aap Noot Mies" -#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "Aap!" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "Gevonden Object" #: NOT FOUND IN SOURCE msgid "Freeform" -msgstr "" +msgstr "Vrije vorm" #: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "VrijevormContactInfo" -#: lib/RT/CustomField_Overlay.pm:37 +#: NOT FOUND IN SOURCE msgid "FreeformMultiple" msgstr "VrijevormMeerdere" -#: lib/RT/CustomField_Overlay.pm:36 -msgid "FreeformSingle" -msgstr "" - -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "Vr." -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "Volledige Kop" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" -msgstr "" +msgstr "Vul sjabloon uit bestand" #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "Bezig met het ophalen van de huidige gebruiker middels een pgp handtekening" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "Aan %1 gegeven" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "Globaal" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:55 msgid "Global Custom Fields" -msgstr "" +msgstr "Globaal Specifieke Velden" -#: NOT FOUND IN SOURCE -msgid "Global Keyword Selections" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Global Scrips" +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" msgstr "" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Globaal sjabloon: %1" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" -msgstr "" +msgstr "Ga" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "Ga!" @@ -2464,15 +2213,11 @@ msgstr "Goede pgp handtekening van %1\\n" msgid "Goto page" msgstr "Ga naar pagina" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "Ga naar ticket" -#: NOT FOUND IN SOURCE -msgid "Grand" -msgstr "" - -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "Groep" @@ -2480,32 +2225,28 @@ msgstr "Groep" msgid "Group %1 %2: %3" msgstr "Groep %1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "Groeps rechten" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "Groep heeft al een lid" -#: NOT FOUND IN SOURCE -msgid "Group could not be created." -msgstr "" - -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "Groep kon niet gecreërd worden: %1" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "Groep gecreërd" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "Groep heeft geen lid onder die naam" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "Groep niet gevonden" @@ -2517,44 +2258,42 @@ msgstr "Groep niet gevonden.\\n" msgid "Group not specified.\\n" msgstr "Groep niet gespecificeerd.\\n" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "Groepen" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "Groepen kunnen geen leden zijn van hun leden" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:82 msgid "Groups matching search criteria" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowRequestor:77 msgid "Groups this user belongs to" -msgstr "" +msgstr "Groepen waar deze gebruiker deel van uitmaakt" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: 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:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "Hallo, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "Geschiedenis" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) msgid "History of the group %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) msgid "History of the user %1" msgstr "" @@ -2562,24 +2301,24 @@ msgstr "" msgid "HomePhone" msgstr "ThuisNummer" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "Homepage" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." -msgstr "" +msgstr "Ik heb %quant(%1,betonmixer)." -#: NOT FOUND IN SOURCE -msgid "I have [quant,_1,concrete mixer]." +#: html/Search/Build.html:637 +msgid "I'm lost" msgstr "" -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "Id" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "Identiteit" @@ -2587,92 +2326,88 @@ msgstr "Identiteit" msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Als een goedkeuring afgewezen is, wijs het origineel af en verwijder hangende goedkeuringen" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." msgstr "" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." -msgstr "" +msgstr "Cre‘er tickets in deze rij indien geen rij is opgegeven." -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." msgstr "Als dit gereedschap setgid zou zijn, zou een kwaadwillende lokale gebruiker dit gereedschap kunnen gebruiken om administratieve toegang te verkrijgen tot RT" -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" msgstr "Als u een van de bovenstaande elemented ververst heeft, zorg dan dat u" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "Illegale waarde voor %1" #: NOT FOUND IN SOURCE msgid "Image" -msgstr "" +msgstr "Afbeelding" -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "Niet-wijzigbaar veld" -#: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 -msgid "Include disabled custom fields in listing." -msgstr "" - -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." -msgstr "" +msgstr "Neem inactieve groepen op in de weergave." -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." -msgstr "Neem inactieve rijen op in de weergave" +msgstr "Neem inactieve rijen op in de weergave." -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "Neem inactieve gebruiker op in de zoek opdracht" -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "Initiële Prioriteit" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "InitiëlePrioriteit" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "Invoer fout" -#: NOT FOUND IN SOURCE -msgid "Interest noted" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "Interne Fout" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Interne Fout: %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "Ongeldig Groep Type" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" -msgstr "" +msgstr "Ongeldig Recht" #: NOT FOUND IN SOURCE msgid "Invalid Type" msgstr "Ongeldig Type" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "Ongeldige data" @@ -2680,44 +2415,48 @@ msgstr "Ongeldige data" msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Ongeldige eigenaar. Val terug op 'nobody'." -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "Ongeldige rij" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "Ongeldige recht" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "Ongeldige waarde voor %1" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "Ongeldige waarde voor specifiek veld" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "Ongeldige waarde voor status" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "Het is ontzettend belangrijk dat onbevoorrechtigde gebruikers geen toestemming hebben om dit gereedschap te gebruiken." -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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 "We stellen voor dat u een onbevoorrechtigde unix gebruiker aanmaakt met het juiste groep lidmaatschap en RT toegang om dit gereedschap te gebruiken." -#: bin/rt-crontool:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "Het accepteerd meerdere argumenten:" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Items pending my approval" msgstr "Zaken die wachten op mijn goedkeuring" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "jan." @@ -2725,30 +2464,22 @@ msgstr "jan." msgid "January" msgstr "januari" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "Sluit u aan of verlaat deze groep" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "jul." -#: NOT FOUND IN SOURCE -msgid "July" -msgstr "" - -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "Jumbo" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "jun." -#: NOT FOUND IN SOURCE -msgid "June" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Keyword" msgstr "Sleutelwoord" @@ -2757,51 +2488,47 @@ msgstr "Sleutelwoord" msgid "Lang" msgstr "Taal" -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" msgstr "" -#: html/Ticket/Elements/Tabs:74 +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "" + +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "Laatste" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "Laatste Contact" -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" - -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "Laatst Gecontacteerd" #: NOT FOUND IN SOURCE msgid "Last Notified" -msgstr "" +msgstr "Laatst Bericht" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "Laatst Ververst" -#: NOT FOUND IN SOURCE -msgid "LastUpdated" -msgstr "" - -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" -msgstr "" +msgstr "LaatstVerverstDoor" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "Over" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "Geef deze gebruiker toegang tot RT" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" msgstr "Geef deze gebruiker rechten" @@ -2813,144 +2540,153 @@ msgstr "Eigenaar wordt gelimieteerd tot %1 %2" msgid "Limiting queue to %1 %2" msgstr "Rij wordt gelimiteerd tot %1 %2" -#: lib/RT/Record.pm:1086 +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "" + +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "Koppeling bestaat al" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "Koppeling kon niet gecreëerd worden" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "Koppeling gecreëerd (%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "Koppelink verwijderd (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "Koppeling niet gevonden" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Koppel ticket #%1" -#: NOT FOUND IN SOURCE -msgid "Link ticket %1" -msgstr "" - -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "Koppelingen" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" msgstr "" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" msgstr "" -#: html/Admin/Tools/Configuration.html:19 +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "" + +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "Locatie" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Log folder %1 niet gevonden of niet toegankelijk.\\n RT kan niet starten." -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Aangemeld als %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "Aanmelden" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "Afmelden" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:866 msgid "Lookup type mismatch" -msgstr "" +msgstr "Lookup type komt niet overeen" -#: html/Search/Bulk.html:83 +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "Maak Eigenaar" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "Maak Status" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "Maak verwachtingsdatum" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "Make oplossingsdatum" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" msgstr "Maak startdatum" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" msgstr "Maak datum gestart" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "Maak datum gemeld" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "Maak prioriteit" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "Maak rij" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "Maak onderwerp" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/index.html:78 msgid "Manage custom fields and custom field values" -msgstr "" +msgstr "Beheer specifieke velden en waarden daarvan" -#: html/Admin/index.html:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" msgstr "Beheer groepen en groeplidmaatschap" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" msgstr "Beheer eigenschappen en configuraties welke betrekking hebben op alle rijen" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" msgstr "Beheer rijen en rij-specifieke eigenschappen" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "Beheer gebruikers en wachtwoorden" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "maa." @@ -2962,33 +2698,33 @@ msgstr "maart" msgid "May" msgstr "mei" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "mei." -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" msgstr "" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "Lid toegevoegd" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "Lid verwijderd" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "Lid niet verwijderd" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "Lid van" @@ -2996,74 +2732,75 @@ msgstr "Lid van" msgid "MemberOf" msgstr "LidVan" -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "Leden" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:61 msgid "Memberships" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) msgid "Memberships of the user %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" msgstr "Samenvoeging Succesvol" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Samenvoeging mislukt. Kon EffectiefId niet instellen" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "Voeg samen in" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" -msgstr "" +msgstr "Samengevoegd tot %1" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "Bericht" -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" msgstr "" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." msgstr "" -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "" + +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "Mist primaire sleutel?: %1" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "Mobiel" @@ -3071,15 +2808,7 @@ msgstr "Mobiel" msgid "MobilePhone" msgstr "MobieleTelefoon" -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "Wijzig Toegangs Controle Lijst" @@ -3087,208 +2816,193 @@ msgstr "Wijzig Toegangs Controle Lijst" msgid "Modify Custom Field %1" msgstr "Wijzig Specifiek Veld %1" -#: NOT FOUND IN SOURCE -msgid "Modify Custom Fields which apply to all %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/Global/CustomFields.html:43 html/Admin/Global/index.html:50 -msgid "Modify Custom Fields which apply to all queues" +#: html/Admin/Elements/ObjectCustomFields:98 +#. (loc(lc($Types))) +msgid "Modify Custom Fields which apply to all %1" msgstr "" -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: 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:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" msgstr "" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" msgstr "" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "Wijzit Scrip sjabloon voor deze rij" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" msgstr "Wijzig Scrips voor deze rij" -#: NOT FOUND IN SOURCE -msgid "Modify System ACLS" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Modify Template %1" msgstr "Wijzig Sjabloon %1" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: 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:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" -msgstr "" +msgstr "Wijzig een Specifiek Veld voor deze rij %1" -#: html/Admin/Global/CustomField.html:52 -msgid "Modify a CustomField which applies to all queues" -msgstr "" - -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Wijzig een scrip voor deze rij %1" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "Wijzig een scrip welke betrekking heeft op alle rijen" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) msgid "Modify associated objects for %1" -msgstr "" +msgstr "Wijzig objecten geassocieerd aan %1" #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" msgstr "Wijzig data voor # %1" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Wijzig data voor #%1" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Wijzig data voor ticket # %1" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: 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 "Wijzig globale groepsrechten" -#: html/Admin/Global/GroupRights.html:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." msgstr "Wijzig globale groepsrechten" -#: 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:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 msgid "Modify global user rights" -msgstr "" +msgstr "Wijzig globale gebruikersrechten" -#: html/Admin/Global/UserRights.html:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "Wijzig globale gebruikersrechten" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "Wijzig groepsmetadata of verwijder groep" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" -msgstr "" +msgstr "Wijzig groepsrechten voor specifiek veld %1" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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 "Wijzig groepsrechten voor groep %1" -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" msgstr "Wijzig groepsrechten voor rij %1" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "Wijzig lidmaatschap rooster voor dze groep" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "Wijzig uw eigen RT " -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Wijzig mensen gekoppeld aan rij %1" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" msgstr "Wijzig mensen gekoppeld aan ticket #%1" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Wijzig scrips voor rij %1" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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 "Wijzig scrips welke betrekking hebben op alle rijen" -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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 "Wijzig sjabloon %1" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" -msgstr "" +msgstr "Wijzig sjablonen die van toepassing zijn op alle rijen" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" msgstr "Wijzig de groep %1" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "Wijzig de toeschouwers van de rij" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Wijzig de gebruiker %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Wijzig ticket # %1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Wijzig ticket #%1" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "Wijzig tickets" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) msgid "Modify user rights for custom field %1" -msgstr "" +msgstr "Wijzig gebruikersrechten voor specifiek veld %1" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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 "Wijzig gebruikersrechten voor groep %1" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Wijzig gebruikersrechten voor rij %1" @@ -3297,113 +3011,105 @@ msgstr "Wijzig gebruikersrechten voor rij %1" msgid "Modify watchers for queue '%1'" msgstr "Wijzig toeschouwers voor rij '%1'" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" msgstr "WijzigACL" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "WijzigEigenLidmaatschap" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "WijzigRijToeschouwers" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "WijzigScrips" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "WijzigZelf" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "WijzigSjabloon" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "WijzigTicket" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "Ma." -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "Meer over %1" -#: NOT FOUND IN SOURCE -msgid "Move" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "Meerdere" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "Specificeren van 'Naam' attribuut verplicht" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" -msgstr "" +msgstr "Mijn %1 tickets" #: NOT FOUND IN SOURCE msgid "My Approvals" msgstr "Mijn Goedkeuringen" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" -msgstr "" +msgstr "Mijn goedkeuringen" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" -msgstr "" +msgstr "Mijn bewaarde zoekopdrachten" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "Naam" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "Naam in gebruik" -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Goedkeuring benodigd van de systeem beheerder" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "Nooit" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "Nieuw" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "Nieuwe Relaties" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "Nieuw Wachtwoord" @@ -3411,79 +3117,67 @@ msgstr "Nieuw Wachtwoord" msgid "New Pending Approval" msgstr "Nieuwe Hangende Goedkeuring" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New Relationships" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New Search" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" +msgstr "Nieuwe Zoekopdracht" -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "Nieuw wachtwoord" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "Bericht voor nieuw wachtwoord verzonden" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" -msgstr "" +msgstr "Nieuwe rij" #: NOT FOUND IN SOURCE msgid "New request" msgstr "Nieuw verzoek" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "Nieuwe rechten" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" -msgstr "" +msgstr "Nieuw scrip" #: NOT FOUND IN SOURCE msgid "New search" msgstr "Nieuwe zoekopdracht" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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 "" +msgstr "Nieuw sjabloon" -#: html/SelfService/Elements/Tabs:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" -msgstr "" +msgstr "Nieuw ticket" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "Nieuw ticket bestaat niet" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" -msgstr "" +msgstr "Nieuwe gebruiker" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "Nieuwe gebruiker genaamd" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "Nieuwe toeschouwers" @@ -3491,13 +3185,13 @@ msgstr "Nieuwe toeschouwers" msgid "New window setting" msgstr "Nieuwe venster instelling" -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "Volgende" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" -msgstr "" +msgstr "Volgende pagina" #: NOT FOUND IN SOURCE msgid "Next page" @@ -3507,43 +3201,39 @@ msgstr "Volgende pagina" msgid "NickName" msgstr "Bijnaam" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "Bijnaam" -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" -msgstr "" +msgstr "Geen Klasse gedefinieerd" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "Geen SpecifiekVeld" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" -msgstr "" +msgstr "Geen SpecifiekVeld gedefinieerd" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" msgstr "Geen Groep gedefinieerd" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" -msgstr "" +msgstr "Geen Zoekopdracht" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" msgstr "Geen Rij gedefinieerd" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "Geen RT gebruiker gevonden. Raadpleeg uw RT beheerder.\\n" +msgstr "Geen RT-gebruiker gevonden. Raadpleeg uw RT-beheerder.\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "Geen Sjabloon" @@ -3555,11 +3245,11 @@ msgstr "Geen ticket gespecificeerd. Ticket afgebroken " msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "Geen ticket gespecificeerd. Ticket wijzigingen afgebroken\\n\\n" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "Geen actie" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "Geen kolom gespecificeerd" @@ -3567,7 +3257,7 @@ msgstr "Geen kolom gespecificeerd" msgid "No command found\\n" msgstr "Geen commando gevonden\\n" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" msgstr "Geen commentaar ingevuld over deze gebruiker" @@ -3575,80 +3265,85 @@ msgstr "Geen commentaar ingevuld over deze gebruiker" msgid "No correspondence attached" msgstr "Geen correspondentie aangehecht" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "Geen omschrijving voor %1" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "Geen groep gespecificeerd" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:52 msgid "No groups matching search criteria found." msgstr "" -#: lib/RT/Ticket_Overlay.pm:2475 +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" msgstr "" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "Geen wachtwoord ingesteld" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" msgstr "Geen rechten om rijen te creëren" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "Geen rechten om tickets te creëren in de rij '%1'" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "Geen rechten om gebruikers te creëren" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" msgstr "Geen rechten om dat ticket te tonen" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" msgstr "Geen rechten om verversing ticket te bekijken" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "Geen hoofd gespecificeerd" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." msgstr "Geen hoofden geselecteerd" -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." msgstr "Geen rijen gevonden die aan de zoekcriteria voldoen" -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" -msgstr "" +msgstr "Geen rechten gevonden" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "Geen rechten toegekend" -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." msgstr "Geen zoek opdracht om uit te voeren." -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" -msgstr "" +msgstr "Geen onderwerp" #: NOT FOUND IN SOURCE msgid "No ticket id specified" msgstr "Geen ticket id gespecificeerd" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "Geen transactie type gespecificeerd" @@ -3656,7 +3351,7 @@ msgstr "Geen transactie type gespecificeerd" msgid "No user or email address specified" msgstr "Geen gebruiker of email-adres gespecificeerd" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "Geen gebruikers gevonden die aan de zoekcriteria voldoen" @@ -3664,31 +3359,27 @@ msgstr "Geen gebruikers gevonden die aan de zoekcriteria voldoen" msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Geen geldige RT gebruiker gevonden. RT cvs behandelaar losgemaakt. Neemt u alstublieft contact op met uw RT beheerder.\\n" -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "Geen waarde gestuurd naar _Set!\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" -msgstr "" +msgstr "Niemand" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "Nietbestaand veld?" -#: NOT FOUND IN SOURCE -msgid "Not logged in" -msgstr "" - -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "Niet aangemeld." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "Niet gezet" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "Nog niet geïmplementeerd." @@ -3696,11 +3387,11 @@ msgstr "Nog niet geïmplementeerd." msgid "Not yet implemented...." msgstr "Nog niet geïmplementeerd...." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "Notities" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "Bericht kon niet verstuurd worden" @@ -3772,51 +3463,57 @@ msgstr "Bericht Aanvragers, Ccs en AdminCcs" msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Bericht Aanvragers, Ccs en AdminCcs als Commentaar" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "nov." -#: NOT FOUND IN SOURCE -msgid "November" +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" msgstr "" -#: lib/RT/Record.pm:200 +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "Object kon niet gecreëerd worden" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "Object gecreëerd" -#: NOT FOUND IN SOURCE +#: lib/RT/Record.pm:121 +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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:901 msgid "Object type mismatch" msgstr "" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "oct." -#: NOT FOUND IN SOURCE -msgid "October" -msgstr "" - -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" msgstr "" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" msgstr "" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" msgstr "" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "Bij" @@ -3856,21 +3553,21 @@ msgstr "Bij Statuswijziging" msgid "On Transaction" msgstr "Bij Transactie" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "Toon alleen goedkeuringen voor verzoeken gecreëerd na %1" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "Toon alleen goedkeuringen voor verzoeken gecreëerd voor %1" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "Open" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "Open" @@ -3878,7 +3575,7 @@ msgstr "Open" msgid "Open requests" msgstr "Open verzoeken" -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" msgstr "" @@ -3892,50 +3589,46 @@ msgstr "Open tickets (van lijst) in een ander venster" #: etc/initialdata:140 msgid "Open tickets on correspondence" -msgstr "" +msgstr "Open ticket bij correspondentie" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" -msgstr "" +msgstr "Sorteer op" #: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "Ordening en sortering" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "Organisatie" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Voortgekomen uit ticket: #%1" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" msgstr "" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" msgstr "" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "Naar mate de tijd vordert, verschuift de prioriteit richting" -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "Eigen tickets" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "EigenTicket" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" msgstr "Eigenaar" @@ -3943,11 +3636,11 @@ msgstr "Eigenaar" msgid "Owner changed from %1 to %2" msgstr "Eigenaar veranderd van %1 naar %2" -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." msgstr "" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Eigenaar gedwongen veranderd van %1 naar %2" @@ -3956,12 +3649,12 @@ msgstr "Eigenaar gedwongen veranderd van %1 naar %2" msgid "Owner is" msgstr "Eigenaar is" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" -msgstr "" +msgstr "Pagina %1 van %2" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "Pieper" @@ -3969,40 +3662,53 @@ msgstr "Pieper" msgid "PagerPhone" msgstr "Pieper" -#: NOT FOUND IN SOURCE -msgid "Parent" -msgstr "" - -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "Ouders" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "Wachtwoord" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" -msgstr "Wachtwoord Herinerring" +msgstr "Wachtwoord Herinnering" + +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "Wachtwoord te kort" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Wachtwoord: %1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." msgstr "" -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "Mensen" @@ -4010,27 +3716,27 @@ msgstr "Mensen" msgid "Perform a user-defined action" msgstr "Verricht een gebruiker gedefiniëerde actie" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" -msgstr "" +msgstr "Perl-configuratie" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "Toestemming Geweigerd" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" -msgstr "" +msgstr "Persoonlijke Groepen" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "Persoonlijke groepen" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "Persoonlijke groepen:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "Telefoonnummers" @@ -4038,11 +3744,7 @@ msgstr "Telefoonnummers" msgid "Placeholder" msgstr "Plaatshouder" -#: NOT FOUND IN SOURCE -msgid "Pref" -msgstr "" - -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "Voorkeuren" @@ -4050,15 +3752,15 @@ msgstr "Voorkeuren" msgid "Prefs" msgstr "Voorkeuren" -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "Bereid Plaatshouder Voor" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "Vorige" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" msgstr "" @@ -4070,57 +3772,57 @@ msgstr "Vorige pagina" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "Hoofd %1 niet gevonden." -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "Prioriteit" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "Prioriteit begint bij" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" -msgstr "" +msgstr "Privacy:" #: etc/initialdata:25 msgid "Privileged" msgstr "Gerechtigd" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Gerechtigde status: %1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "Gerechtigde gebruikers" #: NOT FOUND IN SOURCE msgid "Projects" -msgstr "" +msgstr "Projecten" #: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 msgid "Pseudogroup for internal use" msgstr "Pseudogroep voor intern gebruik" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" msgstr "" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" msgstr "" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "Rij" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" @@ -4130,11 +3832,7 @@ msgstr "Rij %1 niet gevonden" msgid "Queue '%1' not found\\n" msgstr "Rij '%1' niet gevonden\\n" -#: NOT FOUND IN SOURCE -msgid "Queue Keyword Selections" -msgstr "" - -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "Rij Naam" @@ -4142,19 +3840,19 @@ msgstr "Rij Naam" msgid "Queue Scrips" msgstr "Rij Scrips" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "Rij bestaat al" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" msgstr "Rij kon niet aangemaakt worden" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 msgid "Queue could not be loaded." msgstr "Rij kon niet geladen worden." -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" msgstr "Rij aangemaakt" @@ -4162,49 +3860,45 @@ msgstr "Rij aangemaakt" msgid "Queue is not specified." msgstr "Rij is niet gespecificeerd" -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" msgstr "Rij niet gevonden" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "Rijen" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" msgstr "" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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 voor %2" #: NOT FOUND IN SOURCE msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." -msgstr "RT %1 van <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "RT %1 van <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 "" - -#: html/Admin/index.html:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "RT Beheer" @@ -4224,7 +3918,7 @@ msgstr "RT Configuratie fout" msgid "RT Critical error. Message not recorded!" msgstr "RT Kritieke fout: Bericht niet bewaard!" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "RT Fout" @@ -4232,25 +3926,17 @@ msgstr "RT Fout" msgid "RT Received mail (%1) from itself." msgstr "RT Ontving mail (%1) van zichzelf." -#: NOT FOUND IN SOURCE -msgid "RT Recieved mail (%1) from itself." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT Zelfbediening / Afgesloten Tickets" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" -msgstr "" +msgstr "RT Variabelen" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" -msgstr "" +msgstr "RT in een oogopslag" #: NOT FOUND IN SOURCE msgid "RT couldn't authenticate you" @@ -4264,11 +3950,15 @@ msgstr "RT kon de verzoeker niet vinden in zijn interne database" msgid "RT couldn't find the queue: %1" msgstr "RT kon de rij %1 niet vinden" +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." +msgstr "" + #: NOT FOUND IN SOURCE msgid "RT couldn't validate this PGP signature. \\n" msgstr "RT kon deze PGP signatuur niet valideren. \\n" -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "RT voor %1" @@ -4285,14 +3975,6 @@ msgstr "RT heeft uw commando's verwerkt" 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 © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Het is gedistribueerd onder <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versie 2 van de GNU General Public License.</a>"" -#: 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 "" - -#: 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 "" - #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "RT denkt dat dit bericht onbestelbaar zou kunnen zijn" @@ -4305,11 +3987,7 @@ msgstr "RT zal dit bericht verwerken als of het ongesigneerd is.\\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 "RT's email commando modus vereist PGP authenticatie. Of u heeft uw bericht niet gesigneerd, of uw signatuur kon niet geverifieerd worden." -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "Echte Naam" @@ -4317,38 +3995,34 @@ msgstr "Echte Naam" msgid "RealName" msgstr "EchteNaam" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" msgstr "" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "Naar gerefeerd door" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "Refereert aan" -#: NOT FOUND IN SOURCE -msgid "RefersTo" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Refine" msgstr "Verfijn" @@ -4357,48 +4031,44 @@ msgstr "Verfijn" msgid "Refine search" msgstr "Verfijn Zoekopdracht" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Ververs deze pagina elke %1 minuten." -#: NOT FOUND IN SOURCE -msgid "Relationships" -msgstr "" - -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "Verwijder AdminCc" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "Verwijder Cc" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "Verwijder Verzoeker" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "Antwoord" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" -msgstr "" +msgstr "Antwoord naar adres" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" -msgstr "" +msgstr "Antwoord naar verzoekers" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "Antwoord op tickets" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "AntwoordOpTicket" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "Verzoeker" @@ -4410,41 +4080,37 @@ msgstr "Verzoeker email adres" msgid "Requestor(s)" msgstr "Verzoeker(s)" -#: NOT FOUND IN SOURCE -msgid "RequestorAddresses" -msgstr "" - -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "Verzoekers" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "Verzoek is terug verwacht" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" -msgstr "" +msgstr "Verplichte parameter '%1' ontbreekt" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "Herstel" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "Woonplaats" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "Los op" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Los ticket #%1 (%2) op" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "Opgelost" @@ -4452,7 +4118,7 @@ msgstr "Opgelost" msgid "Response to requestors" msgstr "Antwoord aan verzoekers" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "Resultaten" @@ -4460,61 +4126,61 @@ msgstr "Resultaten" msgid "Results per page" msgstr "Resultaten per pagina" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" -msgstr "Type wachtwoord opnieuw" +msgstr "Geef wachtwoord opnieuw" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" -msgstr "" +msgstr "Herstel" #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Recht %1 niet gevonden voor %2 %3 in bereik %4 (%5)\\n" -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "Recht Gedelegeerd" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "Recht Toegekend" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "Recht Geladen" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "Recht kon niet afgenomen worden" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "Recht niet gevonden" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "Recht niet geladen" -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" -msgstr "" +msgstr "Recht ingetrokken" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "Rechten" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "Rollen" @@ -4522,53 +4188,59 @@ msgstr "Rollen" msgid "RootApproval" msgstr "RootGoedkeuring" -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" msgstr "" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "Za." -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" -msgstr "" +msgstr "Bewaar" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "Bewaarwijzigingen" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" msgstr "" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" -msgstr "Bewaarwijzigingen" +msgstr "Bewaar wijzigingen" + +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "" -#: html/Search/Elements/EditSearches:1 +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" -msgstr "" +msgstr "Opgeslagen zoekopdrachten" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" -msgstr "" +msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "Scrip aangemaakt" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" msgstr "" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "Script verwijderd" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "Scrips" @@ -4576,11 +4248,11 @@ msgstr "Scrips" msgid "Scrips for %1\\n" msgstr "Scrips voor %1\\n" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" msgstr "Scrips welke betrekking hebben op alle rijen" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "Zoek" @@ -4588,127 +4260,140 @@ msgstr "Zoek" msgid "Search Criteria" msgstr "Zoek Criteria" -#: html/Approvals/Elements/PendingMyApproval:38 +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Search for articles" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" msgstr "" #: NOT FOUND IN SOURCE msgid "Searches can't be associated with that kind of object" -msgstr "" +msgstr "Zoekopdrachten kunnen niet met dat type object geassocieerd worden" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" msgstr "Veiligheid" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "See custom fields" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "SeeCustomField" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 -msgid "SeeQueue" -msgstr "ZieRij" - -#: NOT FOUND IN SOURCE -msgid "Select" +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Class" -msgstr "" +#: lib/RT/Queue_Overlay.pm:92 +msgid "SeeQueue" +msgstr "ZieRij" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 msgid "Select a Custom Field" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" -msgstr "" - -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" msgstr "Selecteer een groep" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" msgstr "Selecteer een rij" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +#: 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 "Selecteer een gebruiker" -#: NOT FOUND IN SOURCE -msgid "Select class" +#: html/Admin/Elements/CustomFieldTabs:90 +msgid "Select custom field" msgstr "" -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 -msgid "Select custom field" +#: 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/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: 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:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" msgstr "" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:61 msgid "Select up to %1 values" msgstr "" -#: html/Admin/Elements/UserTabs:46 +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "" -#: lib/RT/CustomField_Overlay.pm:35 +#: NOT FOUND IN SOURCE msgid "SelectMultiple" msgstr "SelecteerMeerdere" -#: lib/RT/CustomField_Overlay.pm:34 +#: NOT FOUND IN SOURCE msgid "SelectSingle" msgstr "SelecteerEnkele" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:58 msgid "Selected Custom Fields" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:59 msgid "Selected objects" msgstr "" @@ -4760,59 +4445,47 @@ msgstr "Stuurt mail aan de administratieve Ccs als een \"commentaar\"" msgid "Sends mail to the owner" msgstr "Stuurt mail aan de eigenaar" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "Sep." -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "September" -msgstr "" - -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" msgstr "" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" msgstr "" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" msgstr "" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "Toon Resultaten" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "Toon goedgekeurde verzoeken" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "Toon beginselen" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "Toon afgewezen verzoeken" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "Toon details" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "Toon hangende verzoeken" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "Toon verzoeken die wachten op andere goedkeuringen" @@ -4824,64 +4497,68 @@ msgstr "Toon ticket privé commentaar" msgid "Show ticket summaries" msgstr "Toon ticket samenvattingen" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" msgstr "ToonACL" -#: lib/RT/Queue_Overlay.pm:83 -msgid "ShowOutgoingEmail" +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" msgstr "" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Queue_Overlay.pm:107 +msgid "ShowOutgoingEmail" +msgstr "ToonUitgaandeEmail" + +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" -msgstr "" +msgstr "ToonOpgeslagenZoekopdrachten" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "ToonScrips" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "ToonSjabloon" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "ToonTicket" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "ToonTicketCommentaar" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "Schrijf in als een ticket Verzoeker of ticket of rij Cc" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "Schrijf in als een ticket of rij AdminCc" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "Signatuur" -#: NOT FOUND IN SOURCE -msgid "Signed in as %1" -msgstr "" - -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "Enkel" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 msgid "Skip Menu" msgstr "" -#: html/Admin/Elements/AddCustomFieldValue:27 -msgid "Sort" +#: html/Search/Elements/EditFormat:78 +msgid "Small" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Sort Order" +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 +msgid "Sort" msgstr "" #: NOT FOUND IN SOURCE @@ -4896,23 +4573,19 @@ msgstr "Sorteer resultaten op" msgid "SortOrder" msgstr "SorteerVolgorde" -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" - -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" -msgstr "" +msgstr "Stadium" #: NOT FOUND IN SOURCE msgid "Stalled" -msgstr "Blijft Steken" +msgstr "Is blijven steken" #: NOT FOUND IN SOURCE msgid "Start page" msgstr "Start pagina" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "Gestart" @@ -4920,7 +4593,7 @@ msgstr "Gestart" msgid "Started date '%1' could not be parsed" msgstr "Startum '%1' kon niet ontleed worden" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "Begint" @@ -4932,11 +4605,11 @@ msgstr "Begint op" msgid "Starts date '%1' could not be parsed" msgstr "Begindatum '%1' kon niet ontleed worden" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "Staat" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "Status" @@ -4944,8 +4617,7 @@ msgstr "Status" msgid "Status Change" msgstr "" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" msgstr "Status veranderd van %1 naar %2" @@ -4953,93 +4625,86 @@ msgstr "Status veranderd van %1 naar %2" msgid "StatusChange" msgstr "StatusVerandering" -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "Steel" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" -msgstr "" +msgstr "Steel ticket" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" -msgstr "" +msgstr "SteelTicket" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) -msgid "Stolen from %1 " +msgid "Stolen from %1" msgstr "Gestolen van %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 +#: NOT FOUND IN SOURCE +msgid "Stolen from %1 " +msgstr "Gestolen van %1 " + +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "Onderwerp" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "Onderwerp veranderd naar %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "Registreer" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "Registreer Workflow" -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" msgstr "Gelukt" -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" - -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "Zo." -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "SuperGebruiker" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "Systeem" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" -msgstr "" +msgstr "Systeemconfiguratie" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" msgstr "Systeem Fout" -#: NOT FOUND IN SOURCE -msgid "System Error. Right not granted." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "System Error. right not granted" +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" msgstr "" -#: html/Admin/Tools/index.html:2 +#: html/Admin/Tools/index.html:47 msgid "System Tools" msgstr "" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "Systeem fout. Recht niet gedelegeerd." -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "Systeem fout. Recht niet toegekend." @@ -5047,7 +4712,7 @@ msgstr "Systeem fout. Recht niet toegekend." msgid "System error. Unable to grant rights." msgstr "Systeem fout. Niet mogelijk om rechten toe te kennen" -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "Systeem groepen" @@ -5055,44 +4720,44 @@ msgstr "Systeem groepen" msgid "SystemRolegroup for internal use" msgstr "SysteemRolgroep voor intern gebruik" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "Neem" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" -msgstr "" +msgstr "Neem ticket" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" -msgstr "" +msgstr "NeemTicket" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "Genomen" #: NOT FOUND IN SOURCE msgid "Task" -msgstr "" +msgstr "Taak" -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "Sjabloon" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" -msgstr "" +msgstr "Sjabloon verwijderd" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "Sjabloon niet gevonden" @@ -5100,11 +4765,11 @@ msgstr "Sjabloon niet gevonden" msgid "Template not found\\n" msgstr "Sjabloon niet gevonden\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "Sjabloon ontleed" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "Sjablonen" @@ -5114,35 +4779,35 @@ msgstr "Sjablonen voor %1\\n" #: NOT FOUND IN SOURCE msgid "Text" -msgstr "" +msgstr "Tekst" -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "Dat is al de huidige waarde" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "Dat is geen waarde voor dit specifieke veld" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "Dat is de zelfde waarde" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" -msgstr "" +msgstr "Dat hoofd heeft reeds dat recht" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Dat hoofd is reeds een %1 voor deze rij" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Dat hoofd is reeds een %1 voor dit ticket" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Dat hoofd is geen %1 voor deze rij" @@ -5151,11 +4816,11 @@ msgstr "Dat hoofd is geen %1 voor deze rij" msgid "That principal is not a %1 for this ticket" msgstr "Dat hoofd is geen %1 voor dit ticket" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" msgstr "Die rij bestaat niet" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "Dat ticket heeft onopgeloste afhankelijkheden" @@ -5163,51 +4828,47 @@ msgstr "Dat ticket heeft onopgeloste afhankelijkheden" msgid "That user already has that right" msgstr "Die gebruiker heeft dat recht reeds" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" msgstr "Die gebruiker is al eigenaar van dat ticket" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "Die gebruiker bestaat niet" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "Die gebruiker is al gerechtigd" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" msgstr "Die gebruiker is reeds ontrechtigd" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "Die gebruiker is nu gerechtigd" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" msgstr "Die gebruiker is nu ontrechtigd" -#: NOT FOUND IN SOURCE -msgid "That user is now unprivilegedileged" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" msgstr "Die gebruiker mag geen eigenaar zijn van tickets in die rij" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "Dat is niet een numeriek ID" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "De Beginselen" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "De CC van een ticket" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "De administratieve CC van een ticket" @@ -5215,7 +4876,7 @@ msgstr "De administratieve CC van een ticket" msgid "The comment has been recorded" msgstr "Het commentaar is bewaard" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 "Het volgende commando zal alle actieve tickets in de rij 'general' vinden en hun prioriteit op 99 zetten als ze meer dan 4 uur niet aangeraakt zijn:" @@ -5223,89 +4884,77 @@ msgstr "Het volgende commando zal alle actieve tickets in de rij 'general' vinde msgid "The following commands were not proccessed:\\n\\n" msgstr "De volgende commando's zijn niet verwerkt:\\n\\n" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "De waarde is gezet." -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "De eigenaar van een ticket" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "De verzoeker van een ticket" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "Dit commentaar is gewoonlijk niet zichtbaar voor de gebruiker" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:912 msgid "This custom field does not apply to that object" -msgstr "" +msgstr "Dit specifieke veld is niet van toepassing op dat object" -#: html/Admin/Tools/Configuration.html:5 +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" -msgstr "" +msgstr "Dit onderdeel is alleen beschikbaar voor systeembeheerders" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." -msgstr "" +msgstr "Dit bericht zal verstuurd worden aan..." #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" msgstr "Dit ticket %1 %2 (%3)\\n" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Dit gereedschap stelt de gebruiker in staat arbitraire perl modules te gebruiken vanuit RT" -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "Het lijkt erop alsof deze transactie geen inhoud heeft" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" -msgstr "" +msgstr "De %1 tickets met hoogste prioriteit van deze gebruiker" #: NOT FOUND IN SOURCE msgid "This user's 25 highest priority tickets" msgstr "De 25 hoogste prioriteit tickets van deze gebruiker" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "Do." -#: NOT FOUND IN SOURCE -msgid "Ticket" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Ticket # %1 Jumbo update: %2" -msgstr "" - -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Ticket #%1 Jumbo actualisering: %2" -#: html/Approvals/Elements/ShowDependency:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Ticket #%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" -msgstr "" +msgstr "Ticket %1" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Ticket %1 aangemaakt in rij '%2'" @@ -5314,16 +4963,16 @@ msgstr "Ticket %1 aangemaakt in rij '%2'" msgid "Ticket %1 loaded\\n" msgstr "Toclet %1 geladen\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Ticket %1: %2" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:74 msgid "Ticket Custom Fields" -msgstr "" +msgstr "Ticket-Specifieke Velden" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "Ticket Historie # %1 %2" @@ -5336,27 +4985,27 @@ msgstr "Ticket Id" msgid "Ticket Resolved" msgstr "Ticket Opgelost" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 msgid "Ticket Transactions" -msgstr "" +msgstr "Ticket Transacties" #: NOT FOUND IN SOURCE msgid "Ticket attachment" msgstr "Ticket aanhechting" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "Ticket inhoud" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "Ticket inhoud type" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "Ticket kong niet aangemaakt worden vanwege een interne fout" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "Ticket aangemaakt" @@ -5364,7 +5013,7 @@ msgstr "Ticket aangemaakt" msgid "Ticket creation failed" msgstr "Ticket aanmaken gefaald" -#: lib/RT/Transaction_Overlay.pm:502 +#: NOT FOUND IN SOURCE msgid "Ticket deleted" msgstr "Ticket verwijderd" @@ -5372,13 +5021,9 @@ msgstr "Ticket verwijderd" msgid "Ticket id not found" msgstr "Ticket id niet gevonden" -#: NOT FOUND IN SOURCE -msgid "Ticket killed" -msgstr "" - -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" -msgstr "" +msgstr "Ticket metagegevens" #: NOT FOUND IN SOURCE msgid "Ticket not found" @@ -5392,17 +5037,20 @@ msgstr "Ticket status gewijzigd" msgid "Ticket watchers" msgstr "Ticket toeschouwers" -#: html/Elements/Tabs:46 -msgid "Tickets" +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" msgstr "" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 +msgid "Tickets" +msgstr "Tickets" + +#: NOT FOUND IN SOURCE msgid "Tickets %1 %2" msgstr "Tickets %1 %2" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 by %2" msgstr "Tickets %1 door %2" @@ -5410,31 +5058,31 @@ msgstr "Tickets %1 door %2" msgid "Tickets from %1" msgstr "Tickets van %1" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "Tickets welke afhankelijk zijn van deze goedkeuring" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" -msgstr "" +msgstr "Geschatte Tijd" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "Tijd Over" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "Tijd Gewerkt" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" msgstr "Tijd over" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "Tijd om te tonen" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" msgstr "Tijd gewerkt" @@ -5442,10 +5090,14 @@ msgstr "Tijd gewerkt" msgid "TimeLeft" msgstr "TijdOver" -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" msgstr "TijdGewerkt" +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "" + #: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "Om een diff van deze uitvoering te genereren:" @@ -5454,45 +5106,45 @@ msgstr "Om een diff van deze uitvoering te genereren:" msgid "To generate a diff of this commit:\\n" msgstr "Om een diff van deze uitvoering te genereren:\\n" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "" +msgstr "Voor vragen over support, training, bedrijfsspecifieke software-ontwikkeling of licentieovereenkomsten, gelieve contact op te nemen met %1." -#: lib/RT/Ticket_Overlay.pm:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "Verteld" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" -msgstr "" +msgstr "Hulpstukken" #: etc/initialdata:252 msgid "Transaction" msgstr "Transactie" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transactie %1 gezuiverd" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "Transactie Gecreëerd" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:78 msgid "Transaction Custom Fields" -msgstr "" +msgstr "Transactie Specifieke Velden" -#: lib/RT/Transaction_Overlay.pm:92 +#: NOT FOUND IN SOURCE msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "Transactie->Creëer kon niet, aangezien u geen ticket id gespecificeerd heeft" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:125 msgid "Transaction->Create couldn't, as you didn't specify an object type and id" -msgstr "" +msgstr "Transactie->Cre‘r kon niet aangezien er geen objectttype en -id gespecificeerd is" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "Transacties zijn onwijzigbaar" @@ -5500,23 +5152,19 @@ msgstr "Transacties zijn onwijzigbaar" msgid "Trying to delete a right: %1" msgstr "Tracht een recht te verwijderen: %1" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "Di." -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "Type" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "Niet geïmplementeerd" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "Unix aanmelden" @@ -5524,44 +5172,49 @@ msgstr "Unix aanmelden" msgid "UnixUsername" msgstr "UnixGebruikersnaam" -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Onbekende InhoudCodering %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "Ongelimiteerd" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" -msgstr "" +msgstr "Onbenoemde zoekopdracht" #: etc/initialdata:32 msgid "Unprivileged" msgstr "Ongerechtigd" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:60 msgid "Unselected Custom Fields" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:61 msgid "Unselected objects" msgstr "" -#: lib/RT/Transaction_Overlay.pm:562 +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" msgstr "Vrij" #: NOT FOUND IN SOURCE msgid "Untitled search" -msgstr "" +msgstr "Naamloze zoekopdracht" -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "Ververs" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" msgstr "" @@ -5569,11 +5222,11 @@ msgstr "" msgid "Update ID" msgstr "Ververs ID" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" msgstr "" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "Ververs Type" @@ -5585,19 +5238,19 @@ msgstr "Ververs al deze tickets in eens" msgid "Update email" msgstr "Ververs email" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" -msgstr "" +msgstr "Ververs meer dan ŽŽn ticket" #: NOT FOUND IN SOURCE msgid "Update name" msgstr "Ververs naam" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "Verversing niet opgeslagen." -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "Ververs geselecteerde tickets" @@ -5605,7 +5258,7 @@ msgstr "Ververs geselecteerde tickets" msgid "Update signature" msgstr "Ververs signatuur" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "Ververs ticket" @@ -5613,58 +5266,58 @@ msgstr "Ververs ticket" msgid "Update ticket # %1" msgstr "Ververs ticket # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Ververs ticket #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Ververs ticket #%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "Verversingstype was noch correspondentie, noch commentaar" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "Ververst" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:84 msgid "Upload multiple files" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:79 msgid "Upload multiple images" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:85 msgid "Upload one file" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:80 msgid "Upload one image" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:86 msgid "Upload up to %1 files" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:81 msgid "Upload up to %1 images" msgstr "" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" #: NOT FOUND IN SOURCE @@ -5675,7 +5328,7 @@ msgstr "Gebruiker %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Gebruiker %1 Wachtwoord: %2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." msgstr "" @@ -5692,7 +5345,7 @@ msgstr "Gebruiker '%1' niet gevonden\\n" msgid "User Defined" msgstr "Gebruiker Gedifiniëerd" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" msgstr "" @@ -5700,34 +5353,35 @@ msgstr "" msgid "User ID" msgstr "GebruikersID" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "Gebruiker Id" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "Gebruikersrechten" -#: NOT FOUND IN SOURCE +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" -msgstr "" +msgstr "De gebruiker vroeg om een onbekende aanpassing van specifiek veld %1 voor %2 object #%3" -#: html/Admin/Users/Modify.html:252 +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "Gebruiker kon niet aangemaakt worden: %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "Gebruiker aangemaakt" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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 "Door gebruiker gedefiniëerde groepen" -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" -msgstr "" +msgstr "Gebruiker opgehaald" #: NOT FOUND IN SOURCE msgid "User notified" @@ -5737,43 +5391,39 @@ msgstr "Gebruiker verwittigd" msgid "User view" msgstr "Gebruikers aanzicht" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:99 msgid "User-defined groups" -msgstr "" +msgstr "Door gebruiker gedefinieerde groepen" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "Gebruikersnaam" -#: 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 +#: 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:1086 msgid "Users" msgstr "Gebruikers" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "Gebruikers die voldoen aan de zoek criteria" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" -msgstr "" +msgstr "Geldige Zoekopdracht" #: NOT FOUND IN SOURCE msgid "ValueOfQueue" msgstr "WaardeVanRij" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "Waarden" -#: NOT FOUND IN SOURCE -msgid "VrijevormEnkele" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "Schouw toe" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "SchouwToeAlsAdminCc" @@ -5781,7 +5431,7 @@ msgstr "SchouwToeAlsAdminCc" msgid "Watcher loaded" msgstr "Toeschouwer geladen" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "Toeschouwers" @@ -5789,7 +5439,7 @@ msgstr "Toeschouwers" msgid "WebEncoding" msgstr "WebCodering" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "Wo." @@ -5845,19 +5495,11 @@ msgstr "Wanneer commentaar binnenkomt" msgid "Whenever correspondence comes in" msgstr "Wanneer correspondentie binnenkomt" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "Werk" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" msgstr "" @@ -5865,56 +5507,44 @@ msgstr "" msgid "WorkPhone" msgstr "WerkTelefoon" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "Gewerkt" -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" msgstr "U bent al eigenaar van dit ticket" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" msgstr "U bent geen geauthorizeerde gebruiker" -#: NOT FOUND IN SOURCE -msgid "You can access it with the Download button on the right." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" -msgstr "U kunt alleen tickets opnieuw toe bedelen die van u zijn, of van niemand" +msgstr "U kunt alleen tickets opnieuw toebedelen die van u zijn, of van niemand" #: NOT FOUND IN SOURCE msgid "You don't have permission to view that ticket.\\n" msgstr "U heeft geen toestemming om dat ticket te bekijken" -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "U vond %1 tickets in rij %2" -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "U bent afgemeld bij RT" -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." msgstr "U heeft geen toestemming om tickets aan te maken in die rij." -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." msgstr "U mag geen verzoeken aanmaken in die rij" -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "U mag zich weer aanmelden" @@ -5934,44 +5564,40 @@ msgstr "Uw verzoek is goedgekeurd door %1. Er zijn wellicht nog andere hangende msgid "Your request has been approved." msgstr "Uw verzoek is goedgekeurd." -#: NOT FOUND IN SOURCE -msgid "Your request was rejected" -msgstr "" - #: etc/initialdata:445 msgid "Your request was rejected." msgstr "Uw verzoek was geweigerd." -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "Uw gebruikersnaam of wachtwoord zijn onjuist" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "Postcode" -#: NOT FOUND IN SOURCE -msgid "[no subject]" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "and is not" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "and not" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" msgstr "" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "zoals gegeven aan %1" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "bevat" @@ -5991,7 +5617,7 @@ msgstr "correspondentie (waarschijnlijk) niet verstuurd" msgid "correspondence sent" msgstr "correspondentie verstuurd" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "dagen" @@ -6003,76 +5629,92 @@ msgstr "dood" msgid "delete" msgstr "verwijder" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "verwijderd" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "voldoet niet aan" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "bevat niet" -#: NOT FOUND IN SOURCE -msgid "email address" -msgstr "" - -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "gelijk aan" -#: NOT FOUND IN SOURCE -msgid "false" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" msgstr "" #: NOT FOUND IN SOURCE msgid "filename" msgstr "bestandsnaam" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "groter dan" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "groep '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "uren" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "id" -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" - -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "is niet" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "minder dan" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "voldoet aan" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "min" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "minuten" @@ -6080,114 +5722,98 @@ msgstr "minuten" msgid "modifications\\n\\n" msgstr "wijzigingen\\n\\n" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "maanden" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "nieuw" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" msgstr "" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "geen" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "niet gelijk aan" -#: NOT FOUND IN SOURCE -msgid "notlike" -msgstr "" - -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "open" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "persoonlijke groep '%1' voor gebruiker '%2'" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "rij %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "geweigerd" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "opgelost" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "sec" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "" + +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "bleef steken" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "systeem %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "systeem groep '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "het aanroepende component specificeerde niet waarom" -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ticket #%1 %2" -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "true" -msgstr "" - -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "onbeschreven groep %1" -#: NOT FOUND IN SOURCE -msgid "undescripbed group %1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "gebruiker %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "weken" @@ -6195,11 +5821,7 @@ msgstr "weken" msgid "with template %1" msgstr "met sjabloon %1" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "jaren" -#: NOT FOUND IN SOURCE -msgid "ニックãƒãƒ¼ãƒ " -msgstr "" - diff --git a/rt/lib/RT/I18N/no.po b/rt/lib/RT/I18N/no.po index 1c0dc7326..995ab7852 100644 --- a/rt/lib/RT/I18N/no.po +++ b/rt/lib/RT/I18N/no.po @@ -17,60 +17,58 @@ msgstr "#" msgid "#%1" msgstr "#%1" -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "#%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" msgstr "" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +#: NOT FOUND IN SOURCE msgid "%1 %2 %3" msgstr "%1 %2 %3" -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($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:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "%1 %2 siden" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($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/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" @@ -80,50 +78,25 @@ msgstr "%1 %2 slettet" msgid "%1 %2 of group %3" msgstr "%1 %2 av gruppen %3" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (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 הוסף" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 מקבוצה %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 נמחק" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 שונה ל %3" -msgstr "" - #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 denne saken\\n" -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 פנייה זו\\n" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" msgstr "" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" msgstr "" @@ -131,57 +104,68 @@ msgstr "" msgid "%1 - %2 shown" msgstr "%1 - %2 vist" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--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:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Viser statusoppdateringer til STDOUT" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - Oppgi kommandomodulen du ønsker Ã¥ bruke" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - Oppgi betingelsesmodulen du ønsker Ã¥ bruke" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Oppgi søkemodulen du ønsker Ã¥ bruke" -#: NOT FOUND IN SOURCE -msgid "%1 - ×רגומנט להעביר ×ל %2" -msgstr "" - $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 -#. ('»|«', $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 +#. ('»|«', + $RT::VERSION, + '2005', + '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "%1 KommandoScript lastet" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 ble lagt til som verdi for %2" @@ -198,32 +182,31 @@ msgstr "%1 alias trenger en saksnummer Ã¥ jobbe mot " 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:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($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:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 av %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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($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:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" msgstr "" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "%1 kunne ikke settes til %2." @@ -231,20 +214,22 @@ msgstr "%1 kunne ikke settes til %2." msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 kunne ikke starte en transaksjon (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($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." -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) msgid "%1 created" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) msgid "%1 deleted" msgstr "" -#: html/Elements/MyTickets:24 +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" msgstr "" @@ -253,17 +238,16 @@ msgstr "" msgid "%1 highest priority tickets I own..." msgstr "Mine %1 høyst prioriterte saker..." -#: html/Elements/MyTickets:26 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I requested..." msgstr "Mine %1 høyst prioriterte forespørsler..." -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($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:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($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." @@ -272,8 +256,7 @@ msgstr "%1 er ikke lenger en %2 for denne køen." msgid "%1 is no longer a %2 for this ticket." msgstr "%1 er ikke lenger en %2 for denne saken." -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: 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" @@ -281,11 +264,7 @@ msgstr "%1 er ikke lenger en verdi for fleksifeltet %2" msgid "%1 isn't a valid Queue id." msgstr "%1 er ikke et gyldig saksnummer." -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -294,15 +273,7 @@ msgstr "" msgid "%1 min" msgstr "%1 min" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" msgstr "" @@ -311,11 +282,11 @@ msgstr "" msgid "%1 not shown" msgstr "%1 vises ikke" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:827 msgid "%1 objects" msgstr "" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 rettigheter" @@ -336,7 +307,7 @@ msgstr "%1 er ukjent type for %2" msgid "%1 was created without a CurrentUser\\n" msgstr "%1 ble opprettet uten en aktiv bruker\\n" -#: lib/RT/Action/ResolveMembers.pm:41 +#: 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." @@ -345,72 +316,36 @@ msgstr "%1 vil løse alle medlemmer av en løst gruppesak." 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." -#: NOT FOUND IN SOURCE -msgid "%1 הוסף כערך עבור %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 לפני %2 ימי×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 על ידי %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 פעולת-סקריפ נטענה" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 שונה מ %2 ל %3" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:828 msgid "%1's %2 objects" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:829 msgid "%1's %2's %3 objects" msgstr "" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" msgstr "" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1: ingen vedlegg oppgitt" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' er en ugyldig statusverdi" @@ -427,7 +362,7 @@ msgstr "(Merk for Ã¥ slette gruppemedlem)" msgid "(Check box to delete scrip)" msgstr "(Merk for Ã¥ slette Scrip)" -#: 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 +#: 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)" @@ -435,53 +370,49 @@ msgstr "(Merk for Ã¥ slette)" msgid "(Check boxes to delete)" msgstr "(Merk boksene for Ã¥ slette)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "(Skriv inn referansenummer eller URler, separert med mellomrom)" -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: html/Admin/Queues/Modify.html:75 html/Admin/Queues/Modify.html:81 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) -msgid "(If left blank, will default to %1" +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:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "(Ingen fleksifelt)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(Ingen medlemmer)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "(Ingen scrips)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "(Ingen maler)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 msgid "(None)" msgstr "" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:88 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.)" @@ -489,11 +420,11 @@ msgstr "(Sender en kopi av denne oppdateringen til en kommaseparert liste med ep 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/Create.html:78 +#: html/Ticket/Create.html:100 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/Update.html:62 +#: html/Ticket/Update.html:84 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.)" @@ -501,51 +432,43 @@ msgstr "(Sender en kopi av denne oppdateringen til en komma-separert liste av ep 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/Create.html:68 +#: html/Ticket/Create.html:90 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/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" msgstr "" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(tom)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "(navn ikke oppgitt)" -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" - #: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(ingen overskrift)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(ingen verdi)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFieldValues:47 msgid "(no values)" msgstr "" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(bare en sak)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(Venter pÃ¥ godkjenning)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" msgstr "" @@ -557,18 +480,14 @@ msgstr "(venter pÃ¥ andre saker)" msgid "(requestor's group)" msgstr "(kundens gruppe)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(nødvendig)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(ingen tittel)" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "Mine 25 høyst prioriterte saker..." @@ -577,23 +496,23 @@ msgstr "Mine 25 høyst prioriterte saker..." msgid "25 highest priority tickets I requested..." msgstr "Mine 25 høyst priorterte forespørsler..." -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket-:Status%>" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "<% $_ %>" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 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" @@ -606,6 +525,10 @@ msgstr "??????" msgid "A blank template" msgstr "En tom mal" +#: html/Admin/Users/Modify.html:363 +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" @@ -622,60 +545,72 @@ msgstr "ACE kunne ikke slettes" msgid "ACE could not be found" msgstr "fant ikke ACE" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "ACE ikke funnet" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 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:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "Om meg" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "Aksesskontroll" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "Handling" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Handling %1 finnes ikke" -#: bin/rt-crontool:119 +#: NOT FOUND IN SOURCE msgid "Action committed." msgstr "Handling skrevet." -#: bin/rt-crontool:115 +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "" + +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "Handling forberedt" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "Legg til AdminCc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "Legg til Cc" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "" + +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" msgstr "" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "Legg til flere filer" @@ -683,11 +618,11 @@ msgstr "Legg til flere filer" msgid "Add Next State" msgstr "Legg til neste status" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "Legg til kunde" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" msgstr "Legg til verdi" @@ -711,49 +646,53 @@ msgstr "Legg til et globalt Scrip" msgid "Add a scrip to this queue" msgstr "Legg til et Scrip til denne køen" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 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:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" msgstr "" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "Legg til kommentarer eller svar til denne saken" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "Legg til medlemmer" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "Legg til overvÃ¥kere" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "" + #: NOT FOUND IN SOURCE msgid "AddNextState" msgstr "AddNextState" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($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:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($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:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "Adresse1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "Adresse2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "Admin Cc" @@ -765,7 +704,7 @@ msgstr "Admin Kommentar" msgid "Admin Correspondence" msgstr "Admin-korrespondanse" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" msgstr "Adminkøer" @@ -773,7 +712,7 @@ msgstr "Adminkøer" msgid "Admin users" msgstr "Adminbrukere" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "Admin/Global konfigurasjon" @@ -789,7 +728,7 @@ msgstr "Admin/Køer/Grunnleggende" msgid "AdminAllPersonalGroups" msgstr "AdminAllePersonalGrupper" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "AdminCc" @@ -801,35 +740,35 @@ msgstr "AdminKommentar" msgid "AdminCorrespondence" msgstr "AdminKorrespondanse" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:101 msgid "AdminCustomField" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: NOT FOUND IN SOURCE msgid "AdminCustomFields" msgstr "AdminFleksifelt" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "AdminGruppe" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "AdminGruppeMedlemskap" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "AdminEgnePersonligeGrupper" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "AdminKø" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "AdminBrukere" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "Administrativ Cc" @@ -837,7 +776,7 @@ msgstr "Administrativ Cc" msgid "Admins" msgstr "Admin" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" msgstr "" @@ -845,11 +784,7 @@ msgstr "" msgid "Advanced Search" msgstr "Avansert Søk" -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "" - -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "Etter" @@ -857,6 +792,10 @@ msgstr "Etter" msgid "Age" msgstr "Alder" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Alias" msgstr "Alias" @@ -870,14 +809,10 @@ msgid "All Approvals Passed" msgstr "" #: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Alle Fleksifelt" -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "Alle køer" @@ -885,35 +820,39 @@ msgstr "Alle køer" msgid "Always sends a message to the requestors independent of message sender" msgstr "Send alltid en melding til kunden uavhengig av meldingssender" -#: NOT FOUND IN SOURCE +#: 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:42 +#: html/Search/Edit.html:64 msgid "Apply" msgstr "" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" msgstr "" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "Godkjennelse" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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:53 +#: 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:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Godkjenning #%1: Notater lagret" @@ -934,7 +873,7 @@ msgstr "" msgid "Approval diagram" msgstr "Godkjenningsdiagram" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "Godkjenn" @@ -942,7 +881,7 @@ msgstr "Godkjenn" msgid "Approver's notes: %1" msgstr "Godkjenners notater: %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "Apr." @@ -950,72 +889,52 @@ msgstr "Apr." msgid "April" msgstr "April" -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "Stigende" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "Assign and remove custom fields" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "AssignCustomFields" msgstr "" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "Legg Ved" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "Legg ved fil" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "Vedlagt fil" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: 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:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "Vedlegg opprettet" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "Vedleggsnavn" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "Vedlegg" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" msgstr "" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "Aug." @@ -1039,10 +958,6 @@ msgstr "Autosvar Til Kunde" msgid "AutoreplyToRequestors" msgstr "AutosvarTilKunde" -#: html/Search/Elements/EditFormat:4 -msgid "Available Columns" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Ugyldig PGP-signatur: %1\\n" @@ -1059,19 +974,19 @@ msgstr "Ugyldig data i %1" 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/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Ticket/Elements/Tabs:91 html/User/Elements/GroupTabs:37 +#: 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:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "Sørg for Ã¥ lagre endringene dine" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "Før" @@ -1079,120 +994,113 @@ msgstr "Før" msgid "Begin Approval" msgstr "Begynn Godkjenning" -#: NOT FOUND IN SOURCE -msgid "Binary" +#: html/Elements/Header:80 +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:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" msgstr "" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "Begrens headere" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "Masseoppdatering av saker" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "Kan ikke endre systembrukere" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" msgstr "Kan denne primæren se denne køen" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "Kan ikke legge til en verdi for et fleksifelt uten navn" -#: html/Search/Build.html:694 +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" +msgstr "" + +#: html/Search/Build.html:761 msgid "Can't find a saved search to work with" msgstr "" -#: lib/RT/Link_Overlay.pm:126 +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "Kan ikke koble en sak til seg selv" -#: lib/RT/Ticket_Overlay.pm:2716 +#: 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/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" msgstr "" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "Kan ikke spesifisere bÃ¥de base og mÃ¥l." -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "Kunne ikke oprette bruker: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "Cc" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "Endre passord" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:100 msgid "Check All" msgstr "" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "Merk for Ã¥ slette" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "Merk for Ã¥ trekke tilbake rettighet" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "Barn" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "By" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:102 msgid "Clear All" msgstr "" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "Lukket" -#: html/SelfService/Closed.html:24 +#: NOT FOUND IN SOURCE msgid "Closed Tickets" msgstr "Lukkede Saker" @@ -1200,7 +1108,7 @@ msgstr "Lukkede Saker" msgid "Closed requests" msgstr "Lukkede forespørsler" -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "Lukkede saker" @@ -1212,11 +1120,11 @@ msgstr "Kode" msgid "Command not understood!\\n" msgstr "Kunne ikke tolke kommando!\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "Kommenter" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "Kommentaraddresse" @@ -1224,11 +1132,11 @@ msgstr "Kommentaraddresse" msgid "Comment not recorded" msgstr "Kommentaren ble ikke lagret" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "Kommenter saker" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "KommenterSak" @@ -1236,11 +1144,11 @@ msgstr "KommenterSak" msgid "Comments" msgstr "Kommentarer" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "Kommentarer (Ikke send til kunder)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "Kommentarer (ikke sendt til kunder)" @@ -1248,15 +1156,15 @@ msgstr "Kommentarer (ikke sendt til kunder)" msgid "Comments about %1" msgstr "Kommentarer til %1" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "Kommentarer om denne brukeren" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "La til kommentarer " -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "Lagring forkortet" @@ -1264,23 +1172,23 @@ msgstr "Lagring forkortet" msgid "Compile Restrictions" msgstr "Kompilatorrestriksjoner" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "Forutsetning" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "Forutsetning gjelder..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "Forutsetning ikke funnet" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "Konfigurasjon" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "Bekreft" @@ -1292,11 +1200,11 @@ msgstr "KontaktInfoSystem" msgid "Contacted date '%1' could not be parsed" msgstr "Kontatdato '%1' kunne ikke tolkes" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "Innhold" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "" @@ -1304,7 +1212,7 @@ msgstr "" msgid "Coould not create group" msgstr "Kunne ikke opprette gruppen" -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" msgstr "" @@ -1316,7 +1224,7 @@ msgstr "Korrespondanse" msgid "Correspondence Address" msgstr "Korrespondanseaddresse" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "Korrespondanse lagt til" @@ -1324,7 +1232,7 @@ msgstr "Korrespondanse lagt til" msgid "Correspondence not recorded" msgstr "Korrespondansen ble ikke lagret" -#: lib/RT/Ticket_Overlay.pm:3471 +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. " msgstr "Kunne ikke legge til nye fleksifeltverdier for saken. " @@ -1332,29 +1240,43 @@ msgstr "Kunne ikke legge til nye fleksifeltverdier for saken. " msgid "Could not add new custom field value for ticket. %1 " msgstr "Kunne ikke legge til nye fleksifeltverdier for saken. %1 " -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "" + +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " msgstr "Kunne ikke endre eier. " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "Kunne ikke opprette fleksifelt" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "Kunne ikke opprette gruppe" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: 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:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "Kunne ikke opprette sak. Kø ikke satt" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" msgstr "Kunne ikke opprette bruker" @@ -1370,11 +1292,11 @@ msgstr "Kunne ikke finne en sak med id %1" msgid "Could not find group %1." msgstr "Kunne ikke finne gruppen %1." -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "Kunne ikke finne eller lage den brukeren" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "Kunne ikke finne den primæren" @@ -1382,25 +1304,34 @@ msgstr "Kunne ikke finne den primæren" msgid "Could not find user %1." msgstr "Kunne ikke finne brukeren %1." -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:69 msgid "Could not load CustomField %1" msgstr "" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "Kunne ikke hente gruppen" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($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:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($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:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($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" @@ -1409,15 +1340,15 @@ msgstr "Kunne ikke fjerne den primæren som %1 for denne køen" 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:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" msgstr "" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" msgstr "Kunne ikke legge til medlemmmer i gruppen" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Kunne ikke opprette en transaksjon: %1" @@ -1430,15 +1361,15 @@ msgstr "Kunne ikke tolke gpgs svar\\n" msgid "Couldn't find group\\n" msgstr "Kunne ikke finne gruppen\\n" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" msgstr "Kunne ikke finne raden" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" msgstr "Kunne ikke finne primæren" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" msgstr "Kunne ikke finne verdien" @@ -1450,16 +1381,18 @@ msgstr "Kunne ikke finne den overvÃ¥kern" msgid "Couldn't find user\\n" msgstr "Kunne ikke finne bruker\\n" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Kunne ikke laste %1 fra brukerdatabasen.\\n" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" msgstr "" @@ -1475,25 +1408,26 @@ msgstr "Kunne ikke laste RTs konfigurasjonsfil '%1' %2" msgid "Couldn't load Scrips." msgstr "Kunne ikke laste Scripsene." -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: 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:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "Kunne ikke laste linken" -#: NOT FOUND IN SOURCE +#: 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/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" msgstr "Kunne ikke laste køen" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: 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" @@ -1510,16 +1444,26 @@ msgstr "Kunne ikke finne mal" msgid "Couldn't load that user (%1)" msgstr "Kunne ikke laste den brukeren (%1)" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Kunne ikke laste saken '%1'" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "Land" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "Opprett" @@ -1527,20 +1471,16 @@ msgstr "Opprett" msgid "Create Tickets" msgstr "Opprett Saker" -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" - -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "Oprett et fleksifelt" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Opprett et fleksifelt for køen %1" -#: html/Admin/Global/CustomField.html:47 +#: NOT FOUND IN SOURCE msgid "Create a CustomField which applies to all queues" msgstr "Opprett et fleksifelt for alle køer" @@ -1548,10 +1488,6 @@ msgstr "Opprett et fleksifelt for alle køer" msgid "Create a new Custom Field" msgstr "Opprett et nytt fleksifelt" -#: NOT FOUND IN SOURCE -msgid "Create a new article" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "Opprett et globalt Scrip" @@ -1560,11 +1496,11 @@ msgstr "Opprett et globalt Scrip" msgid "Create a new global scrip" msgstr "Opprett et nytt globalt scrip" -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: 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:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "Opprett en ny personlig gruppe" @@ -1580,15 +1516,15 @@ msgstr "Opprett et nytt scrip" msgid "Create a new template" msgstr "Opprett en ny mal" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "Opprett en ny sak" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "Opprett en ny bruker" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "Opprett en ny kø" @@ -1600,27 +1536,19 @@ msgstr "Opprett en kø kalt" msgid "Create a request" msgstr "Opprett en forespørsel" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Opprett et scrip for køen %1" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "Opprett en mal" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" msgstr "Opprett en sak" -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Opprettelse feilet: %1 / %2 / %3" @@ -1633,19 +1561,19 @@ msgstr "Opprettelse feilet: %1/%2/%3" msgid "Create new tickets based on this scrip's template" msgstr "Opprett nye saker basert pÃ¥ dette scripets mal" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "Opprett sak" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" msgstr "Opprett saker i denne køen" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "Opprett, slett og modifiser fleksifelt" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" msgstr "Opprett, slett og endre køer" @@ -1653,60 +1581,52 @@ msgstr "Opprett, slett og endre køer" 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:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "Opprett, slett og modifiser medlemmene av personlige grupper" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "Opprett, slett og modifiser brukere" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "OpprettSak" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "Opprettet" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "Opprettet Fleksifelt %1" -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Opprettet malen %1" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" msgstr "" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "Eksisterende Forhold" -#: NOT FOUND IN SOURCE -msgid "Current Relationships" -msgstr "" - -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "Eksisterende Scrips" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "Eksisterende medlemmer" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "Eksisterende rettigheter" @@ -1714,68 +1634,63 @@ msgstr "Eksisterende rettigheter" msgid "Current search criteria" msgstr "Eksisterende søkekriterier" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "Eksisterende overvÃ¥kere" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) +#: NOT FOUND IN SOURCE msgid "Custom Field #%1" msgstr "Fleksifeltet #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "Fleksifelt" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) msgid "Custom Fields for %1" msgstr "" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "Avsluttningskode" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "Forberedelseskode" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "Forutsetning" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: NOT FOUND IN SOURCE msgid "Custom field %1 %2 %3" msgstr "Fleksifeltet %1 %2 %3" -#: NOT FOUND IN SOURCE -msgid "Custom field %1 does not apply to this object" -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Fleksifeltet %1 har en verdi." -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Fleksifeltet %1 har ingen verdi." -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Fleksifeltet %1 kunne ikke finnes" -#: html/Admin/Elements/EditCustomFields:195 +#: NOT FOUND IN SOURCE msgid "Custom field deleted" msgstr "Fleksifeltet slettet" -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" msgstr "Fleksifeltet kunne ikke finnes" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($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" @@ -1784,19 +1699,19 @@ msgstr "Verdien %1 for fleksifeltet %2 kunne ikke finnes" msgid "Custom field value changed from %1 to %2" msgstr "Fleksifeltets verdi endret fra %1 til %2" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "Fleksifeltets verdi kunne ikke slettes" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "Fleksifeltets verdi kunne ikke finnes" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "Fleksifeltverdi slettet" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "FleksiFelt" @@ -1804,11 +1719,11 @@ msgstr "FleksiFelt" msgid "Data error" msgstr "Datafeil" -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "Datoer" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "Des." @@ -1824,11 +1739,11 @@ msgstr "Standard Autosvarmal" msgid "Default Autoresponse template" msgstr "Standard Autosvarmal" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" msgstr "" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" msgstr "" @@ -1848,60 +1763,64 @@ msgstr "Standard korrespondensemal" msgid "Default transaction template" msgstr "Standard transaksjonsmal" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: 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:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "Deleger rettigheter" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "Deleger spesifikke rettigheter som har blitt gitt til deg." -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "DelegerRettigheter" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "Delegering" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "Slett" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" msgstr "Slett saker" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "SlettSak" -#: lib/RT/Transaction_Overlay.pm:162 +#: lib/RT/SavedSearch.pm:209 +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:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "Sletting av dette objektet vil føre til inkonsistens" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "Sletting av dette objektet ville føre til inkonsistens" @@ -1913,11 +1832,11 @@ msgstr "Sletting av dette objektet ville føre til inkonsisistens." 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:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "Nekt" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "Avhengighet fra" @@ -1925,27 +1844,27 @@ msgstr "Avhengighet fra" msgid "Dependencies: \\n" msgstr "Avhengigheter: \\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "Avhengig av" @@ -1953,15 +1872,15 @@ msgstr "Avhengig av" msgid "DependsOn" msgstr "AvhengigAv" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "Synkende" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "Beskriv problemet under" -#: 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 +#: 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:56 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" @@ -1969,31 +1888,31 @@ msgstr "Beskrivelse" msgid "Details" msgstr "Detaljer" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "Vis" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "Vis Rettigheter" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" msgstr "Vis Scrip-maler for denne køen" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" msgstr "Vis Scrip-maler for denne køen" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "Visningsmodus" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" msgstr "" @@ -2001,15 +1920,19 @@ msgstr "" msgid "Display ticket #%1" msgstr "Vis saken #%1" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" msgstr "" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "Gjør hva som helst" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "Ikke last denne siden pÃ¥ nytt" @@ -2017,19 +1940,15 @@ msgstr "Ikke last denne siden pÃ¥ nytt" msgid "Don't show search results" msgstr "Ikke vis søkeresultat" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "Last ned" -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 msgid "Download as a tab-delimited file" msgstr "" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "Innen" @@ -2049,28 +1968,32 @@ msgstr "Rediger" msgid "Edit Conditions" msgstr "Rediger Forhold" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "" + +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" msgstr "" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "Rediger Forhold" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit Relationships" -msgstr "" - -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Rediger Maler for køen %1" @@ -2079,7 +2002,7 @@ msgstr "Rediger Maler for køen %1" msgid "Edit keywords" msgstr "Rediger nøkkelord" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" msgstr "" @@ -2087,7 +2010,7 @@ msgstr "" msgid "Edit scrips" msgstr "Rediger scrips" -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "Rediger systemmal" @@ -2095,15 +2018,11 @@ msgstr "Rediger systemmal" msgid "Edit templates for %1" msgstr "Rediger maler for %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "Rediger Konfigurasjon for køen %1" @@ -2112,17 +2031,17 @@ msgstr "Rediger Konfigurasjon for køen %1" msgid "Editing Configuration for user %1" msgstr "Redigerer Konfigurasjonen av brukern %1" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Redigerer Fleksifeltet %1" -#: html/Admin/Groups/Members.html:31 +#: 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:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Redigerer medlemsskap for den personlige gruppen %1" @@ -2131,15 +2050,15 @@ msgstr "Redigerer medlemsskap for den personlige gruppen %1" msgid "Editing template %1" msgstr "Redigerer malen %1" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "Enten base eller mÃ¥l mÃ¥ oppgis" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: 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:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "Epostaddresse i bruk" @@ -2151,76 +2070,61 @@ msgstr "EpostAddresse" msgid "EmailEncoding" msgstr "EpostFormat" -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 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:52 html/User/Groups/Modify.html:52 +#: 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:83 +#: 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 Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Aktive Fleksifelt" -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" msgstr "Aktive Køer" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "Aktiv status %1" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) msgid "Enabled status: %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "Skriv multiple verdier" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." msgstr "" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "Skriv en verdi" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." msgstr "" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Skriv saker og/eller URIer som det skal linkes til. Separer dem med mellomrom" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:66 msgid "Enter up to %1 values" msgstr "" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "Feil" @@ -2228,7 +2132,7 @@ msgstr "Feil" msgid "Error adding watcher" msgstr "Feilet ved opprettelse av OvervÃ¥ker" -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "Feil i parameterne til Queue->AddWatcher" @@ -2236,11 +2140,11 @@ msgstr "Feil i parameterne til Queue->AddWatcher" msgid "Error in parameters to Queue->DelWatcher" msgstr "Feil i parameterne til Queue->DelWatcher" -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Feil i parameterne til Ticket->AddWatcher" @@ -2248,19 +2152,15 @@ msgstr "Feil i parameterne til Ticket->AddWatcher" msgid "Error in parameters to Ticket->DelWatcher" msgstr "Feil i parameterne til Ticket->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" msgstr "" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Estimate" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" msgstr "" @@ -2268,7 +2168,7 @@ msgstr "" msgid "Everyone" msgstr "Alle" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "Eksempel:" @@ -2280,32 +2180,33 @@ msgstr "EksternAutId" msgid "ExternalContactInfoId" msgstr "EksternKontaktInfoId" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "Ekstra info" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" msgstr "" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Kunne ikke finne pseudogruppen 'Privilgerte' brukere." -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Kunne ikke finne 'pseudogruppen 'Upriviligerte' brukere" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Kunne ikke laste modulen %1. (%2)" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "Feb." @@ -2313,39 +2214,51 @@ msgstr "Feb." msgid "February" msgstr "Februar" -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:69 msgid "Fill in multiple text areas" msgstr "" -#: NOT FOUND IN SOURCE +#: 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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +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:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "Endelig Prioritet" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "EndeligPrioritet" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: NOT FOUND IN SOURCE msgid "Find group whose" msgstr "Finn grupper hvor" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 msgid "Find groups whose" msgstr "" @@ -2353,11 +2266,11 @@ msgstr "" msgid "Find new/open tickets" msgstr "Finn nye/Ã¥pne saker" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: 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:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "Finn saker" @@ -2365,7 +2278,7 @@ msgstr "Finn saker" msgid "Finish Approval" msgstr "Fullfør godkjennelse" -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "Først" @@ -2373,52 +2286,52 @@ msgstr "Først" msgid "First page" msgstr "Første side" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "Tving gjennom endring" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "Fant %quant(%1) sak(er)" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "Fant Objektet" -#: NOT FOUND IN SOURCE -msgid "Freeform" -msgstr "" - #: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FriforkKontaktInfo" -#: lib/RT/CustomField_Overlay.pm:37 +#: NOT FOUND IN SOURCE msgid "FreeformMultiple" msgstr "FriformMultipel" -#: lib/RT/CustomField_Overlay.pm:36 +#: NOT FOUND IN SOURCE msgid "FreeformSingle" msgstr "FriformSingel" -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "Fre." -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "Fulle headere" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" msgstr "" @@ -2426,16 +2339,16 @@ msgstr "" msgid "Getting the current user from a pgp sig\\n" msgstr "Henter brukerinfo fra pgp signatur\\n" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "Gitt til %1" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "Global" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:55 msgid "Global Custom Fields" msgstr "" @@ -2447,16 +2360,20 @@ msgstr "Globale Nøkkelordvalg" msgid "Global Scrips" msgstr "Globale Scrip" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Globale maler: %1" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" msgstr "" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "Start!" @@ -2468,7 +2385,7 @@ msgstr "Gyldig pgp sig fra %1\\n" msgid "Goto page" msgstr "GÃ¥ til siden" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "GÃ¥ til saken" @@ -2476,7 +2393,7 @@ msgstr "GÃ¥ til saken" msgid "Grand" msgstr "Stor" -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "Gruppe" @@ -2484,11 +2401,11 @@ msgstr "Gruppe" msgid "Group %1 %2: %3" msgstr "Gruppen %1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "Alt medlem av gruppen" @@ -2496,20 +2413,20 @@ msgstr "Alt medlem av gruppen" msgid "Group could not be created." msgstr "Gruppen kunne ikke lastes." -#: html/Admin/Groups/Modify.html:76 +#: 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:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "Gruppen opprettet" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "Gruppen har ikke det medlemmet" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "Fant ikke gruppen" @@ -2521,44 +2438,42 @@ msgstr "Fant ikke gruppen.\\n" msgid "Group not specified.\\n" msgstr "Ikke spesifisert gruppe.\\n" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "Grupper" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "Grupper kan ikke være medlemmer av sine medlemmer" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:82 msgid "Groups matching search criteria" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowRequestor:77 msgid "Groups this user belongs to" msgstr "" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: 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:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "Hallo, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "Historikk" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) msgid "History of the group %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) msgid "History of the user %1" msgstr "" @@ -2566,11 +2481,11 @@ msgstr "" msgid "HomePhone" msgstr "HjemmeTelefon" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "Hjemmeside" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "Jeg har %quant(%1, sementblandere)." @@ -2579,11 +2494,15 @@ msgstr "Jeg har %quant(%1, sementblandere)." msgid "I have [quant,_1,concrete mixer]." msgstr "Jeg har [quant,_1,sementblandere]." -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "Id" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "Identitet" @@ -2591,63 +2510,63 @@ msgstr "Identitet" 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:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." msgstr "" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." msgstr "" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 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:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 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:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "Ugyldig verdig for %1" -#: NOT FOUND IN SOURCE -msgid "Image" -msgstr "" - -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "LÃ¥st felt" #: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Inkluder deaktiverte fleksifelt i listen." -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." msgstr "" -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." msgstr "Inkluder deaktiverte køer i listen." -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "Inkluder deaktiverte brukere i søket." -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "Startprioritet" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "StartPrioritet" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "Feil i inntasting" @@ -2655,20 +2574,20 @@ msgstr "Feil i inntasting" msgid "Interest noted" msgstr "Interesse registrert" -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "Intern Feil" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Intern Feil: %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "Ugyldig gruppetype" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "Ugyldige rettigheter" @@ -2676,7 +2595,7 @@ msgstr "Ugyldige rettigheter" msgid "Invalid Type" msgstr "Ugyldig Type" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "Ugyldig data" @@ -2684,44 +2603,48 @@ msgstr "Ugyldig data" msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Ugydlig eier. Setter til 'nobody'." -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "Ugyldig kø" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "Ugyldige rettigheter" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "Ugyldig verdi for %1" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "Ugyldig verdi for fleksifeltet." -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "Ugyldig verdi for status" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 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:188 +#: bin/rt-crontool:217 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:159 +#: bin/rt-crontool:188 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:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "Jan." @@ -2729,11 +2652,11 @@ msgstr "Jan." msgid "January" msgstr "Januar" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "Bli med i eller forlat denne gruppen" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "Jul." @@ -2741,11 +2664,11 @@ msgstr "Jul." msgid "July" msgstr "Juli" -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "Total" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "Jun." @@ -2761,23 +2684,23 @@ msgstr "Nøkkelord" msgid "Lang" msgstr "SprÃ¥k" -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" msgstr "" -#: html/Ticket/Elements/Tabs:74 +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "" + +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "Siste" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "Siste Kontakt" -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" - -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "Sist kontaktet" @@ -2785,7 +2708,7 @@ msgstr "Sist kontaktet" msgid "Last Notified" msgstr "Sist Informert" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "Sist Oppdatert" @@ -2793,19 +2716,19 @@ msgstr "Sist Oppdatert" msgid "LastUpdated" msgstr "SistOppdatert" -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" msgstr "" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "Igjen" -#: html/Admin/Users/Modify.html:82 +#: 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:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" msgstr "La denne brukeren fÃ¥ rettigheter" @@ -2817,29 +2740,33 @@ msgstr "Begrenser eier til %1 %2" msgid "Limiting queue to %1 %2" msgstr "Begrenser køen til %1 %2" -#: lib/RT/Record.pm:1086 +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "" + +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "Lenke finnes alt" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "Lenke kunne ikke opprettes" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "Lenke opprettet (%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "Lenke slettet (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "Lenke ble ikke funnet" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Knytt sak #%1" @@ -2848,113 +2775,122 @@ msgstr "Knytt sak #%1" msgid "Link ticket %1" msgstr "Knytt sak %1" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "Lenker" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" msgstr "" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" msgstr "" -#: html/Admin/Tools/Configuration.html:19 +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "" + +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "Lokasjon" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) 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:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Logget inn som %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "Innlogging" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "Logg av" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:866 msgid "Lookup type mismatch" msgstr "" -#: html/Search/Bulk.html:83 +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "Sett Eier" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "Sett Status" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "msgstr "Sett tidsfrist" " -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "Sett løsningsdato" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" msgstr "Sett startdato" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" msgstr "Sett startdato" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "Sett informert dato" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "Sett prioritet" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "Sett Kø" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "Sett Emne" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/index.html:78 msgid "Manage custom fields and custom field values" msgstr "" -#: html/Admin/index.html:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" msgstr "Sett grupper og gruppemedlemsskap" -#: html/Admin/index.html:38 +#: 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:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" msgstr "Rediger køer og kø-spesifike egenskaper" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "Rediger brukere og passord" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "Mar." @@ -2966,33 +2902,33 @@ msgstr "Mars" msgid "May" msgstr "Mai" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "Mai." -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" msgstr "" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "Medlem lagt til" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "Medlem slettet" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "Medlem ikke slettet" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "Medlem av" @@ -3000,74 +2936,75 @@ msgstr "Medlem av" msgid "MemberOf" msgstr "MedlemAv" -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "Medlemmer" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:61 msgid "Memberships" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) msgid "Memberships of the user %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" msgstr "Fletting vellykket" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "Fletting feilet. Kunne ikke sette EffektivId" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "Flett inn i" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" msgstr "" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "Melding" -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" msgstr "" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." msgstr "" -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "" + +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "Mangler en primærnøkkel?: %1" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "Mobil" @@ -3075,15 +3012,7 @@ msgstr "Mobil" msgid "MobilePhone" msgstr "MobilTelefon" -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "Endre Tilgangslister" @@ -3091,31 +3020,37 @@ msgstr "Endre Tilgangslister" msgid "Modify Custom Field %1" msgstr "Endre Fleksifeltet %1" -#: NOT FOUND IN SOURCE +#: 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 "" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +#: 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:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: 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:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" msgstr "" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" msgstr "" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "Endre Scripmaler for denne køen" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" msgstr "Endre Scrips for denne køen" @@ -3127,33 +3062,30 @@ msgstr "Endre SystemACLer" msgid "Modify Template %1" msgstr "Endre Malen %1" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: 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:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "Endre et fleksifelt for køen %1" -#: html/Admin/Global/CustomField.html:52 +#: NOT FOUND IN SOURCE msgid "Modify a CustomField which applies to all queues" msgstr "Endre et fleksifelt som gjelder for alle køer" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Endre et scrip for køen %1" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "Endre et scrip som gjelder for alle køer" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) msgid "Modify associated objects for %1" msgstr "" @@ -3161,21 +3093,25 @@ msgstr "" msgid "Modify dates for # %1" msgstr "Endre datoer for # %1" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: 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:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Endre datoer for sak # %1" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: 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:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." msgstr "Endre globale grupperettigheter" @@ -3191,108 +3127,110 @@ msgstr "Endre globale rettigheter for brukere" msgid "Modify global scrips" msgstr "Endre globale scrips" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: 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:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "Endre globale brukerrettigheter" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "Endre gruppens metadata eller slette gruppen" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" msgstr "" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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:24 html/Admin/Queues/GroupRights.html:28 +#: 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:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "Endre medlemsliste for denne gruppen" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "Endre sin egen RT konto" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: 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:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($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:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Endre scrips for %1 køen" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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:43 +#: 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/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: 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:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "Endre overvÃ¥kere for køen" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Endre brukeren %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Endre sak # %1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: 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:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "Endre saker" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) msgid "Modify user rights for custom field %1" msgstr "" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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:24 html/Admin/Queues/UserRights.html:28 +#: 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" @@ -3301,64 +3239,64 @@ msgstr "Endre brukerrettigheter for %1 køen" msgid "Modify watchers for queue '%1'" msgstr "Endre overvÃ¥kere for '%1' køen" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" msgstr "EndreACL" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "EndreEgetMedlemskap" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "EndreKøOvervÃ¥kere" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "EndreScrips" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "EndreSegSelv" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "EndreMal" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "EndreSak" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "Man." -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "Mer om %1" -#: NOT FOUND IN SOURCE -msgid "Move" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "Flytt ned" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "Flytt opp" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "Flere" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "MÃ¥ spesifisere attributten 'Navn'" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" msgstr "Mine %1 saker" @@ -3367,47 +3305,39 @@ msgstr "Mine %1 saker" msgid "My Approvals" msgstr "Mine saker til godkjenning" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "Mine saker til godkjenning" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" msgstr "" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "Navn" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "Navnet er i bruk" -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Trenger godkjennelse fra systemadministrator" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "Aldri" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "Ny" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "Nye forhold" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "Nytt Passord" @@ -3415,39 +3345,31 @@ msgstr "Nytt Passord" msgid "New Pending Approval" msgstr "Ny, Venter pÃ¥ Godkjennelse" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" msgstr "" -#: NOT FOUND IN SOURCE -msgid "New Relationships" -msgstr "" - #: NOT FOUND IN SOURCE msgid "New Search" msgstr "Nytt Søk" -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "Nytt fleksifelt" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "Ny gruppe" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "Nytt passord" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "Melding om nytt passord sendt" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "Ny kø" @@ -3455,11 +3377,11 @@ msgstr "Ny kø" msgid "New request" msgstr "Ny forespørsel" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "Nye rettigheter" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "Nytt scrip" @@ -3467,27 +3389,27 @@ msgstr "Nytt scrip" msgid "New search" msgstr "Nytt søk" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "Ny sak" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "Ny sak eksistere ikke" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "Ny bruker" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "Ny bruker kalt" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "Ny overvÃ¥ker" @@ -3495,11 +3417,11 @@ msgstr "Ny overvÃ¥ker" msgid "New window setting" msgstr "Instillinger for nytt vindu" -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "Neste" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" msgstr "" @@ -3511,43 +3433,39 @@ msgstr "Neste side" msgid "NickName" msgstr "KalleNavn" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "Kallenavn" -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "Ingen FleksiFelt" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" msgstr "" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: 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:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" msgstr "" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" msgstr "Ingen kø definert" -#: bin/rt-crontool:52 +#: 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:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "Ingen Mal" @@ -3559,11 +3477,11 @@ msgstr "Ingen sak oppgitt. Avbryter sak " msgid "No Ticket specified. Aborting ticket modifications\\n\\n" msgstr "Ingen Sak oppgitt. Avbryter saksendring\\n\\n" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "Ingen handling" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "Ingen kolonne spesifisert" @@ -3571,7 +3489,7 @@ msgstr "Ingen kolonne spesifisert" msgid "No command found\\n" msgstr "Ingen kommando funnet\\n" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" msgstr "Ingen kommentar skrevet om denne brukeren" @@ -3579,72 +3497,77 @@ msgstr "Ingen kommentar skrevet om denne brukeren" msgid "No correspondence attached" msgstr "Ingen korrespondanse vedlagt" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "Ingen beskrivelse for %1" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "Ingen gruppe spesifisert" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:52 msgid "No groups matching search criteria found." msgstr "" -#: lib/RT/Ticket_Overlay.pm:2475 +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" msgstr "" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "Passordet er ikke satt" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" msgstr "Ingen tilgang til Ã¥ opprette køer" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($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:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "Ikke tilgang til Ã¥ opprette brukere" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" msgstr "Ikke tilgang til Ã¥ vise den saken" -#: html/SelfService/Update.html:68 +#: 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:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "Ingen primær spesifisert" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: 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:34 +#: 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:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "Ingen rettigheter funnet" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "Ingen rettigheter tildelt" -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." msgstr "Ingen søk Ã¥ behandle" -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" msgstr "" @@ -3652,7 +3575,7 @@ msgstr "" msgid "No ticket id specified" msgstr "Ingen saksid oppgitt" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "Transaksjonstype ikke spesifisert" @@ -3660,7 +3583,7 @@ msgstr "Transaksjonstype ikke spesifisert" msgid "No user or email address specified" msgstr "Ingen bruker eller epostaddresse oppgitt" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "Fant ingen brukere som treffer søkekriteriene." @@ -3668,15 +3591,15 @@ msgstr "Fant ingen brukere som treffer søkekriteriene." 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:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "Ingen verdi sendt til _Set!\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "Ingen" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "Ukjent felt?" @@ -3684,15 +3607,15 @@ msgstr "Ukjent felt?" msgid "Not logged in" msgstr "Ikke logget inn" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "Ikke logget inn." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "Ikke satt" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "Ikke implementert enda." @@ -3700,11 +3623,11 @@ msgstr "Ikke implementert enda." msgid "Not yet implemented...." msgstr "Ikke implementert enda...." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "Notater" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "Melding kunne ikke sendes" @@ -3776,7 +3699,7 @@ msgstr "Rapporter til Kunder Cc og AdminCc" msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Rapporter til Kunder Cc og AdminCc som Kommentar" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "Nov." @@ -3784,23 +3707,37 @@ msgstr "Nov." msgid "November" msgstr "November" -#: lib/RT/Record.pm:200 +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "" + +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "Objekter kunne ikke opprettes" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "Objektet ble opprettet" -#: NOT FOUND IN SOURCE +#: lib/RT/Record.pm:121 +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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:901 msgid "Object type mismatch" msgstr "" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "Okt." @@ -3808,19 +3745,19 @@ msgstr "Okt." msgid "October" msgstr "Oktober" -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" msgstr "" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" msgstr "" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" msgstr "" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "Ved" @@ -3860,21 +3797,21 @@ msgstr "Ved statusendring" msgid "On Transaction" msgstr "Ved Transaksjon" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "Vis kun godkjennelse for saker opprettet etter %1" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "Bare vis godkjennelse for saker opprettet før %1" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "Ã…pne" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "Ã…pne den" @@ -3882,7 +3819,7 @@ msgstr "Ã…pne den" msgid "Open requests" msgstr "Ã…pne forespørsler" -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" msgstr "Ã…pne saker" @@ -3898,7 +3835,7 @@ msgstr "Ã…pne saker (fra utlisting) it et annet vinud" msgid "Open tickets on correspondence" msgstr "Ã…pne saker ved korrespondanse" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" msgstr "" @@ -3906,40 +3843,36 @@ msgstr "" msgid "Ordering and sorting" msgstr "Rekkefølge og sortering" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "Organisasjon" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Opprinnelig sak: #%1" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" msgstr "" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" msgstr "" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "Over tid beveger prioriteten seg mot" -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "Eie saker" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "EieSak" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" msgstr "Eier" @@ -3947,11 +3880,11 @@ msgstr "Eier" msgid "Owner changed from %1 to %2" msgstr "Eier endret fra %1 til %2" -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." msgstr "" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Eier ble tvunget til Ã¥ endres fra %1 til %2" @@ -3960,12 +3893,12 @@ msgstr "Eier ble tvunget til Ã¥ endres fra %1 til %2" msgid "Owner is" msgstr "Eier er" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" msgstr "" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "Personsøker" @@ -3977,36 +3910,53 @@ msgstr "PersonSøker" msgid "Parent" msgstr "Forelder" -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "Foreldre" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "Passord" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "Passordhint" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "For kort passord" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Passord: %1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." msgstr "Passordene stemmer ikke overens." -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "Passordene stemmer ikke overrens. Passordet ble ikke endret" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "Personer" @@ -4014,27 +3964,27 @@ msgstr "Personer" msgid "Perform a user-defined action" msgstr "Kjør en brukerdefinert handling" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" msgstr "" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "Ingen Tilgang" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "Personlige Grupper" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "Personlige grupper" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "Personlige grupper:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "Telefonnummer" @@ -4046,7 +3996,7 @@ msgstr "Stedholder" msgid "Pref" msgstr "Pref" -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "Instillinger" @@ -4054,15 +4004,15 @@ msgstr "Instillinger" msgid "Prefs" msgstr "Pref" -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "Klargjør Forkortet" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "Forrige" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" msgstr "" @@ -4074,20 +4024,20 @@ msgstr "Forrige side" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "Primær %1 ikke funnet." -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "Prioritet" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "Prioritet starter pÃ¥" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" msgstr "" @@ -4095,36 +4045,32 @@ msgstr "" msgid "Privileged" msgstr "Priviligert" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Priviligert status: %1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "Priviligerte brukere" -#: 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 "Pseduogruppe for intern bruk" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" msgstr "" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" msgstr "" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "Kø" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" @@ -4138,7 +4084,7 @@ msgstr "Køen '%1' ikke funnet\\n" msgid "Queue Keyword Selections" msgstr "Nøkkelordvalg for kø" -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "Kønavn" @@ -4146,19 +4092,19 @@ msgstr "Kønavn" msgid "Queue Scrips" msgstr "Køscrip" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "Køen eksisterer allerede" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" msgstr "Køen kunne ikke opprettes" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 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:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" msgstr "Køen opprettet" @@ -4166,32 +4112,32 @@ msgstr "Køen opprettet" msgid "Queue is not specified." msgstr "Køen er ikke oppgitt." -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" msgstr "Køen ikke funnet" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "Køer" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "Raskt søk" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" msgstr "" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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" @@ -4208,7 +4154,7 @@ msgstr "RT %1. Copyright 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\n" 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:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "RT-administrasjon" @@ -4228,7 +4174,7 @@ msgstr "RT Konfigurasjonsfeil" msgid "RT Critical error. Message not recorded!" msgstr "Kritisk RT feil. Meldingen ble ikke lagret!" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "RT Feil" @@ -4240,19 +4186,15 @@ msgstr "RT Mottok mail (%1) fra seg selv." msgid "RT Recieved mail (%1) from itself." msgstr "RT Mottok mail (%1) fra seg selv." -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT Selvbetjening / Lukkede Saker" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" msgstr "" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "RT oversikt" @@ -4268,11 +4210,15 @@ msgstr "RT kunne ikke finne kunde via sitt eksterne databaseoppslag" msgid "RT couldn't find the queue: %1" msgstr "RT kunne ikke finne køen: %1" +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." +msgstr "" + #: NOT FOUND IN SOURCE msgid "RT couldn't validate this PGP signature. \\n" msgstr "msgstr "RT kunne ikke validere denne PGP signaturen. \\n" " -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "RT for %1" @@ -4289,10 +4235,6 @@ msgstr "RT har behandlet dine kommandoer" 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-%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 "" - #: 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>" @@ -4309,11 +4251,7 @@ msgstr "RT vil behandle denne meldingen som om den var usignert" 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." -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "Ekte Navn" @@ -4321,31 +4259,31 @@ msgstr "Ekte Navn" msgid "RealName" msgstr "EkteNavn" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" msgstr "" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "Referert til av" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "Refererer til" @@ -4361,48 +4299,44 @@ msgstr "Redefiner" msgid "Refine search" msgstr "Redefiner søket" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Last siden pÃ¥ nytt hvert %1 minutt." -#: NOT FOUND IN SOURCE -msgid "Relationships" -msgstr "" - -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "Fjern AdminCc" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "Fjern Cc" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "Fjern Kunde" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "Svar" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" msgstr "" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "Svar pÃ¥ sak" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "SvarPÃ¥Sak" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "Kunde" @@ -4418,37 +4352,37 @@ msgstr "Kunde(r)" msgid "RequestorAddresses" msgstr "KundeAddresser" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "Kunder" -#: html/Admin/Queues/Modify.html:74 +#: 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:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" msgstr "" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "Reset" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "Hjemme" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "Løs" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Løs saknr #%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "Løst" @@ -4456,7 +4390,7 @@ msgstr "Løst" msgid "Response to requestors" msgstr "Svar til kunder" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "Resultater" @@ -4464,11 +4398,11 @@ msgstr "Resultater" msgid "Results per page" msgstr "Resultater per side" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "Skriv Passord igjen" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" msgstr "" @@ -4476,49 +4410,49 @@ msgstr "" 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:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "Rettighet Deligert" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "Rettighet Tildelt" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "Rettighet lastet" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "Rettigheten kunne ikke trekkes tilbake" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "Rettighet ikke funnet" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "Rettighet ikke lastet." -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "Rettighet fjernet" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "Rettigheter" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Rettigheter kunne ikke tildeles for %1" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "Rettigheter kunne ikke trekkes tilbake for %1" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "Roller" @@ -4526,53 +4460,59 @@ msgstr "Roller" msgid "RootApproval" msgstr "RootGodkjenning" -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" msgstr "" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "Lør." -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" msgstr "" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "Lagre Endringer" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" msgstr "" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "Lage endringer" -#: html/Search/Elements/EditSearches:1 +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "" + +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" msgstr "" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "Scrip Opprettet" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" msgstr "" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "Scrip slettet" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "Scrip" @@ -4580,11 +4520,11 @@ msgstr "Scrip" msgid "Scrips for %1\\n" msgstr "Scrip for %1\\n" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" msgstr "Scrip som gjelder for alle køer" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "Søk" @@ -4592,127 +4532,136 @@ msgstr "Søk" msgid "Search Criteria" msgstr "Søkekriteria" -#: html/Approvals/Elements/PendingMyApproval:38 +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "Søk etter godkjenninger" -#: NOT FOUND IN SOURCE -msgid "Search for articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Searches can't be associated with that kind of object" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" msgstr "" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" msgstr "Sikkerhet:" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "See custom fields" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "SeeCustomField" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 -msgid "SeeQueue" -msgstr "SeKø" - -#: NOT FOUND IN SOURCE -msgid "Select" +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Class" -msgstr "" +#: lib/RT/Queue_Overlay.pm:92 +msgid "SeeQueue" +msgstr "SeKø" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 msgid "Select a Custom Field" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" -msgstr "" - -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" msgstr "Velg en gruppe" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" msgstr "Velg en kø" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +#: 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" -#: NOT FOUND IN SOURCE -msgid "Select class" -msgstr "" - -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +#: html/Admin/Elements/CustomFieldTabs:90 msgid "Select custom field" msgstr "Velg fleksifelt" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: 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:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "Velg flere verdier" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "Velg en verdi" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" msgstr "Velg kø" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "Velg scrip" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:61 msgid "Select up to %1 values" msgstr "" -#: html/Admin/Elements/UserTabs:46 +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "Velg bruker" -#: lib/RT/CustomField_Overlay.pm:35 +#: NOT FOUND IN SOURCE msgid "SelectMultiple" msgstr "VelgFlere" -#: lib/RT/CustomField_Overlay.pm:34 +#: NOT FOUND IN SOURCE msgid "SelectSingle" msgstr "VelgEnkelt" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:58 msgid "Selected Custom Fields" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:59 msgid "Selected objects" msgstr "" @@ -4764,59 +4713,51 @@ msgstr "Sender epost til de administrative Ccene som kommentar" msgid "Sends mail to the owner" msgstr "Sender epost til eieren" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "Sep." -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" - #: NOT FOUND IN SOURCE msgid "September" msgstr "September" -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" msgstr "" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" msgstr "" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" msgstr "" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "Vis Resultater" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "Vis godkjente forespørsler" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "Vis basisinfo" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "Vis avviste forespørsler" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "Vis detaljer" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "Vis ventende forespørsler" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "Vis forespørsler som venter pÃ¥ andre godkjenninger" @@ -4828,43 +4769,47 @@ msgstr "Vis sakens private kommentarer" msgid "Show ticket summaries" msgstr "Vis sakssammendrag" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" msgstr "VisACL" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" msgstr "" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "VisScrip" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "VisMal" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "VisSak" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "VisSaksKommentarer" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 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:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "Meld deg pÃ¥ som sak/kø AdminCc" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "Signatur" @@ -4872,22 +4817,26 @@ msgstr "Signatur" msgid "Signed in as %1" msgstr "Logget inn som %1" -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "Enkel" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 msgid "Skip Menu" msgstr "Dropp Meny" -#: html/Admin/Elements/AddCustomFieldValue:27 +#: html/Search/Elements/EditFormat:78 +msgid "Small" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 msgid "Sort" msgstr "Sorter" -#: NOT FOUND IN SOURCE -msgid "Sort Order" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Sort key" msgstr "Sorter nøkkel" @@ -4900,11 +4849,7 @@ msgstr "Sorter resultater etter" msgid "SortOrder" msgstr "SorteringsRekkefølge" -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" - -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" msgstr "" @@ -4916,7 +4861,7 @@ msgstr "Pauset" msgid "Start page" msgstr "Startside" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "Startet" @@ -4924,7 +4869,7 @@ msgstr "Startet" msgid "Started date '%1' could not be parsed" msgstr "Startdato '%1' kunne ikke tolkes" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "Starter" @@ -4936,11 +4881,11 @@ msgstr "Starter Etter" msgid "Starts date '%1' could not be parsed" msgstr "Startdato '%1' kunne ikke tolkes" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "Stat" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "Status" @@ -4948,8 +4893,7 @@ msgstr "Status" msgid "Status Change" msgstr "Statusendring" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" msgstr "Status endret fra %1 til %2" @@ -4957,73 +4901,69 @@ msgstr "Status endret fra %1 til %2" msgid "StatusChange" msgstr "EndreStatus" -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "Stjel" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($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/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 +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "Emne" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "Endre emne til %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "Oppdater" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "Send Arbeidsflyt" -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" msgstr "Lykkes" -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" - -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "Søn." -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "SuperBruker" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "System" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" msgstr "" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" msgstr "Systemfeil" @@ -5035,15 +4975,20 @@ msgstr "Systemfeil. Rettighet ikke tildelt." msgid "System Error. right not granted" msgstr "Systemfeil. rettigheter ikke tildelt" -#: html/Admin/Tools/index.html:2 +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" +msgstr "" + +#: html/Admin/Tools/index.html:47 msgid "System Tools" msgstr "" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "Systemfeil. Rettighet ikke tildelt." -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "Systemfeil. Rettighet ikke tildelt." @@ -5051,7 +4996,7 @@ msgstr "Systemfeil. Rettighet ikke tildelt." msgid "System error. Unable to grant rights." msgstr "Systemfeil. Kunne ikke tildele rettigheter." -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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" @@ -5059,44 +5004,40 @@ msgstr "Systemgrupper" msgid "SystemRolegroup for internal use" msgstr "SystemRollegruppe for intern bruk" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "TEST_STRENG" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "Ta" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "Tatt" -#: NOT FOUND IN SOURCE -msgid "Task" -msgstr "" - -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "Mal" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Mal #%1" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "Mal slettet" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "Kunne ikke finne mal" @@ -5104,11 +5045,11 @@ msgstr "Kunne ikke finne mal" msgid "Template not found\\n" msgstr "Kunne ikke finne mal\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "Mal tolket" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "Maler" @@ -5116,37 +5057,33 @@ msgstr "Maler" msgid "Templates for %1\\n" msgstr "Maler for %1\\n" -#: NOT FOUND IN SOURCE -msgid "Text" -msgstr "" - -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "Verdien er allerede satt" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "Det er ikke en verdi for dette fleksifeltet" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "Det er den samme verdien" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" msgstr "Den primæren har allerede den rettigheten" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($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:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($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:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Den primæren er ikke en %1 for denne køen" @@ -5155,11 +5092,11 @@ msgstr "Den primæren er ikke en %1 for denne køen" 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:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" msgstr "Den køen eksisterer ikke" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "Denne saken har uløste avhengigheter" @@ -5167,27 +5104,27 @@ msgstr "Denne saken har uløste avhengigheter" msgid "That user already has that right" msgstr "Den brukeren har allerede den rettigheten" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" msgstr "Den brukeren eier allerede den saken" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "Den brukeren finnes ikke" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "Den brukeren er allerede priviligert" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" msgstr "Den brukeren er allerede upriviligert" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "Denne brukeren er nÃ¥ priviligert" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" msgstr "Dette brukeren er nÃ¥ upriviligert" @@ -5195,23 +5132,23 @@ msgstr "Dette brukeren er nÃ¥ upriviligert" msgid "That user is now unprivilegedileged" msgstr "Den brukeren er allerede upriviligert" -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 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:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "Dette er ikke en numerisk id" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "Detaljer" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "CCen til en sak" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "Administrative CCer for en sak" @@ -5219,7 +5156,7 @@ msgstr "Administrative CCer for en sak" msgid "The comment has been recorded" msgstr "Kommentarer er lagret" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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:" @@ -5227,31 +5164,31 @@ msgstr "De følgende kommandoene vil finne alle aktive saker i køen 'general' o msgid "The following commands were not proccessed:\\n\\n" msgstr "De følgende kommandoene ble ikke behandlet:\\n\\n" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "Den nye verdien har blitt satt." -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "Eieren av en sak" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "Forespørren av en sak" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "Disse kommentarene er generelt ikke synlig for brukeren" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:912 msgid "This custom field does not apply to that object" msgstr "" -#: html/Admin/Tools/Configuration.html:5 +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" msgstr "" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." msgstr "" @@ -5259,15 +5196,15 @@ msgstr "" msgid "This ticket %1 %2 (%3)\\n" msgstr "Denne saken %1 %2 (%3)\\n" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 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:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "Denne transaksjonen ser ikke ut til Ã¥ ha noe innhold" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Denne brukerens %1 høyst prioriterte saker" @@ -5276,7 +5213,7 @@ msgstr "Denne brukerens %1 høyst prioriterte saker" msgid "This user's 25 highest priority tickets" msgstr "Denne brukerens 23 høys prioriterte saker" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "Tor." @@ -5292,24 +5229,24 @@ msgstr "Sak # %1 %2" msgid "Ticket # %1 Jumbo update: %2" msgstr "Sak $ %1 Jumbo oppdater: %2" -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: 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:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Sak #%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Sak %1 opprettet i '%2' køen" @@ -5318,16 +5255,16 @@ msgstr "Sak %1 opprettet i '%2' køen" msgid "Ticket %1 loaded\\n" msgstr "Sak %1 lastet\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Sak %1: %2" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:74 msgid "Ticket Custom Fields" msgstr "" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "Sakshistorikk # %1 %2" @@ -5340,7 +5277,7 @@ msgstr "SaksId" msgid "Ticket Resolved" msgstr "Løst Sak" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 msgid "Ticket Transactions" msgstr "" @@ -5348,19 +5285,19 @@ msgstr "" msgid "Ticket attachment" msgstr "Saks-vedlegg" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "Saks-innhold" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "Sakens innholdstype" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "Saken kunne ikke opprettes pÃ¥ grunn av en intern feil" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "Sak opprettet" @@ -5368,7 +5305,7 @@ msgstr "Sak opprettet" msgid "Ticket creation failed" msgstr "Saksopprettelse feilet" -#: lib/RT/Transaction_Overlay.pm:502 +#: NOT FOUND IN SOURCE msgid "Ticket deleted" msgstr "Sak slettet" @@ -5380,7 +5317,7 @@ msgstr "Saksid ikke funnet" msgid "Ticket killed" msgstr "Sak drept" -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" msgstr "" @@ -5396,17 +5333,20 @@ msgstr "Saksstatus endret" msgid "Ticket watchers" msgstr "SaksovervÃ¥kere" -#: html/Elements/Tabs:46 +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "" + +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 msgid "Tickets" msgstr "Saker" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 %2" msgstr "Saker %1 %2" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 by %2" msgstr "Saker %1 av %2" @@ -5414,31 +5354,31 @@ msgstr "Saker %1 av %2" msgid "Tickets from %1" msgstr "Saker fra %1" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "Saker som er avhengige av denne godkjennelsen:" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" msgstr "" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "Tid Igjen" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "Arbeidstid" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" msgstr "Tid igjen" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "Tid Ã¥ vise" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" msgstr "Arbeidstid" @@ -5446,10 +5386,14 @@ msgstr "Arbeidstid" msgid "TimeLeft" msgstr "TidIgjen" -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 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:" @@ -5458,16 +5402,16 @@ msgstr "For Ã¥ generere en diff av denne bekreftelsen:" msgid "To generate a diff of this commit:\\n" msgstr "For Ã¥ genere en diff av denne bekreftelsen" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<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:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "Fortalt" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" msgstr "" @@ -5475,28 +5419,28 @@ msgstr "" msgid "Transaction" msgstr "Transaksjon" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transaksjon %1 slettet" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "Transaksjon Opprettet" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:78 msgid "Transaction Custom Fields" msgstr "" -#: lib/RT/Transaction_Overlay.pm:92 +#: 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" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:125 msgid "Transaction->Create couldn't, as you didn't specify an object type and id" msgstr "" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "Transaksjoner er lÃ¥st" @@ -5504,23 +5448,19 @@ msgstr "Transaksjoner er lÃ¥st" msgid "Trying to delete a right: %1" msgstr "Prøver Ã¥ slette en rettighet: %1" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "Tir." -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "Type" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "Uimplementert" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "Unix login" @@ -5528,16 +5468,21 @@ msgstr "Unix login" msgid "UnixUsername" msgstr "UnixBrukerNavn" -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Ukjent InnholdsFormatering %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "Ubegrenset" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" msgstr "" @@ -5545,27 +5490,23 @@ msgstr "" msgid "Unprivileged" msgstr "Upriviligert" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:60 msgid "Unselected Custom Fields" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:61 msgid "Unselected objects" msgstr "" -#: lib/RT/Transaction_Overlay.pm:562 +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" msgstr "Ikke tatt" -#: NOT FOUND IN SOURCE -msgid "Untitled search" -msgstr "" - -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "Oppdater" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" msgstr "" @@ -5573,11 +5514,11 @@ msgstr "" msgid "Update ID" msgstr "Oppdater ID" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" msgstr "" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "Oppdater Type" @@ -5589,7 +5530,7 @@ msgstr "Oppdater alle disse sakene samtidig" msgid "Update email" msgstr "Oppdater epost" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" msgstr "" @@ -5597,11 +5538,11 @@ msgstr "" msgid "Update name" msgstr "Oppdater navn" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "Oppdatering ikke lagret." -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "Oppdater valgte saker" @@ -5609,7 +5550,7 @@ msgstr "Oppdater valgte saker" msgid "Update signature" msgstr "Oppdater signatur" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "Oppdater sak" @@ -5617,58 +5558,58 @@ msgstr "Oppdater sak" msgid "Update ticket # %1" msgstr "Ooppdater sak # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Oppdater sak #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Oppdater sak #%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "Oppdateringstype var verken korrespondanse eller kommentar." -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "Oppdatert" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:84 msgid "Upload multiple files" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:79 msgid "Upload multiple images" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:85 msgid "Upload one file" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:80 msgid "Upload one image" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:86 msgid "Upload up to %1 files" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:81 msgid "Upload up to %1 images" msgstr "" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" #: NOT FOUND IN SOURCE @@ -5679,7 +5620,7 @@ msgstr "Bruker %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Bruker %1 Passord: %2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." msgstr "" @@ -5696,7 +5637,7 @@ msgstr "Brukeren '%1' ble ikke funnet" msgid "User Defined" msgstr "Bruker Definert" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" msgstr "" @@ -5704,32 +5645,33 @@ msgstr "" msgid "User ID" msgstr "BrukerID" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "BrukerId" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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" -#: NOT FOUND IN SOURCE +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" msgstr "" -#: html/Admin/Users/Modify.html:252 +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "Bruker kunne ikke opprettes: %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "Bruker opprettet" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" msgstr "" @@ -5741,23 +5683,23 @@ msgstr "Bruker informert" msgid "User view" msgstr "Brukervisning" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:99 msgid "User-defined groups" msgstr "" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "Brukernavn" -#: 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 +#: 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:1086 msgid "Users" msgstr "Brukere" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "Brukere som treffer søkekriteria" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" msgstr "" @@ -5765,7 +5707,7 @@ msgstr "" msgid "ValueOfQueue" msgstr "KøVerdi" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "Verdier" @@ -5773,11 +5715,11 @@ msgstr "Verdier" msgid "VrijevormEnkele" msgstr "VrijevormEnkele" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "OvervÃ¥k" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "OvervÃ¥kSomAdminCc" @@ -5785,7 +5727,7 @@ msgstr "OvervÃ¥kSomAdminCc" msgid "Watcher loaded" msgstr "OvervÃ¥ker lastet" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "OvervÃ¥kere" @@ -5793,7 +5735,7 @@ msgstr "OvervÃ¥kere" msgid "WebEncoding" msgstr "WebFormatering" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "Ons." @@ -5849,19 +5791,11 @@ msgstr "NÃ¥r kommentarer kommer inn" msgid "Whenever correspondence comes in" msgstr "NÃ¥r korrespondanse kommer inn" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "Arbeid" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" msgstr "" @@ -5869,31 +5803,19 @@ msgstr "" msgid "WorkPhone" msgstr "ArbeidsTelefon" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "Arbeidet" -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" msgstr "Du eier allerede denne saken" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" msgstr "Du er ikke en autorisert bruker" -#: NOT FOUND IN SOURCE -msgid "You can access it with the Download button on the right." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 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" @@ -5901,24 +5823,24 @@ msgstr "Du kan bare omfordele saker som du eier eller som ikke har en eier" 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:760 +#: 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:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "" -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 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:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." msgstr "Du kan ikke opprette forespørsler i den køen." -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "Velkommen tilbake" @@ -5946,11 +5868,11 @@ msgstr "Din forespørsel ble avvist" msgid "Your request was rejected." msgstr "Din forespørsel ble avvist" -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "Ditt brukernavn/passord er ugyldig" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "Zip" @@ -5958,24 +5880,28 @@ msgstr "Zip" msgid "[no subject]" msgstr "[ikke noe emne]" -#: NOT FOUND IN SOURCE -msgid "and is not" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "and not" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" msgstr "" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "som tildelt til %1" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "lukket" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "inneholder" @@ -5995,7 +5921,7 @@ msgstr "korrespondanse (sansynligvis) ikke sendt" msgid "correspondence sent" msgstr "korrespondanse sendt" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "dager" @@ -6007,26 +5933,50 @@ msgstr "død" msgid "delete" msgstr "slett" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "slettet" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "treffer ikke" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "inneholder ikke" -#: NOT FOUND IN SOURCE -msgid "email address" -msgstr "" - -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "lik som" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "" + #: NOT FOUND IN SOURCE msgid "false" msgstr "usant" @@ -6035,48 +5985,44 @@ msgstr "usant" msgid "filename" msgstr "filnavn" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "større enn" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "gruppe '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "timer" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "id" -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" - -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "er" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "er ikke" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "mindre enn" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "treffer" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "min" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "minutter" @@ -6084,27 +6030,27 @@ msgstr "minutter" msgid "modifications\\n\\n" msgstr "endringer\\n\\n" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "mÃ¥neder" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "ny" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" msgstr "" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "ingen verdi" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "ingen" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "ikke lik som" @@ -6112,72 +6058,68 @@ msgstr "ikke lik som" msgid "notlike" msgstr "ikkelik" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "Ã¥pen" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "personlig gruppe '%1' for bruker '%2'" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "kø %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "avvist" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "løst" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "sek" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "" + +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "pauset" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "system %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "systemgruppe '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "den kallende komponenten oppga ikke hvorfor" -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "sak #%1 %2" -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "" - #: NOT FOUND IN SOURCE msgid "true" msgstr "sant" -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "ubeskrevet gruppe %1" @@ -6186,12 +6128,12 @@ msgstr "ubeskrevet gruppe %1" msgid "undescripbed group %1" msgstr "ubeskrevet gruppe %1" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "bruker %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "uker" @@ -6199,11 +6141,7 @@ msgstr "uker" msgid "with template %1" msgstr "med malen %1" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "Ã¥r" -#: NOT FOUND IN SOURCE -msgid "ニックãƒãƒ¼ãƒ " -msgstr "" - diff --git a/rt/lib/RT/I18N/pl.po b/rt/lib/RT/I18N/pl.po new file mode 100644 index 000000000..3faa4eccb --- /dev/null +++ b/rt/lib/RT/I18N/pl.po @@ -0,0 +1,6436 @@ +# Copyright (c) 2002 Jesse Vincent <jesse@bestpractical.com> +# +msgid "" +msgstr "" +"Project-Id-Version: RT 3.2.2\n" +"POT-Creation-Date: 2007-01-18 11:36+0800\n" +"PO-Revision-Date: 2005-01-18 02:00+0800\n" +"Last-Translator: Piotr Åšliwa <piotr.sliwa@comarch.pl>\n" +"Language-Team: rt-devel <rt-devel@lists.fsck.com>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: NOT FOUND IN SOURCE +msgid "#" +msgstr "Nr" + +#: 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" + +#: lib/RT/Record.pm:926 +#. ($label) +msgid "$prefix %1" +msgstr "" + +#: lib/RT/URI/fsck_com_rt.pm:257 +#. ($self->ObjectType, $self->Object->Id) +msgid "%1 #%2" +msgstr "%1 nr%2" + +#: lib/RT/Date.pm:361 +#. ($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:397 +#. ($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:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 +#. ($cf->Name, $new_value->Content) +#. ($field, $self->NewValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 added" +msgstr "%1 %2 zostaÅ‚y dodane" + +#: lib/RT/Date.pm:358 +#. ($s, $time_unit) +msgid "%1 %2 ago" +msgstr "przed %1 %2" + +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) +#. ($field, $self->OldValue, $self->NewValue) +msgid "%1 %2 changed to %3" +msgstr "%1 %2 zostaÅ‚o zamienione na %3" + +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) +#. ($field, $self->OldValue) +#. ($self->Field, $principal->Object->Name) +msgid "%1 %2 deleted" +msgstr "%1 %2 zostaÅ‚o usuniÄ™te" + +#: NOT FOUND IN SOURCE +msgid "%1 %2 of group %3" +msgstr "%1 %2 z groupy %3" + +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 +#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) +msgid "%1 %2 with template %3" +msgstr "%1 %2 wg szablonu %3" + +#: NOT FOUND IN SOURCE +msgid "%1 (%2) %3 this ticket\\n" +msgstr "%1 (%2) %3 tego zgÅ‚oszenia\\n" + +#: html/Ticket/Elements/ShowAttachments:72 +#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) +msgid "%1 (%2) by %3" +msgstr "%1 (%2) przez %3" + +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) +#. ($TicketObj->OwnerObj->Name()) +#. (loc($Ticket->Status())) +msgid "%1 (Unchanged)" +msgstr "%1 (Niezmienione)" + +#: NOT FOUND IN SOURCE +msgid "%1 - %2 shown" +msgstr "wyÅ›wietlone %1 - %2" + +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 +#. ("--search-argument", "--search") +#. ("--condition-argument", "--condition") +#. ("--action-argument", "--action") +msgid "%1 - An argument to pass to %2" +msgstr "%1 - warunek przejÅ›cia na %2" + +#: bin/rt-crontool:210 +#. ("--verbose") +msgid "%1 - Output status updates to STDOUT" +msgstr "%1 - Status wyjÅ›ciowy zaktualizowany na STDOUT" + +#: bin/rt-crontool:204 +#. ("--action") +msgid "%1 - Specify the action module you want to use" +msgstr "%1 - OkreÅ›l moduÅ‚ dziaÅ‚aÅ„, którego chcesz użyć" + +#: bin/rt-crontool:198 +#. ("--condition") +msgid "%1 - Specify the condition module you want to use" +msgstr "%1 - OkreÅ›l moduÅ‚ warunków, którego chcesz użyć" + +#: bin/rt-crontool:191 +#. ("--search") +msgid "%1 - Specify the search module you want to use" +msgstr "%1 - OkreÅ›l moduÅ‚ wyszukiwania, którego chcesz użyć" + + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 +#. ('»|«', + $RT::VERSION, + '2005', + '<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 Wszelkie prawa zastrzeżone 1996-%3 %4" + +#: lib/RT/ScripAction_Overlay.pm:151 +#. ($self->Id) +msgid "%1 ScripAction loaded" +msgstr "Skrypt %1 zostaÅ‚ zaÅ‚adowany" + +#: lib/RT/Record.pm:1708 +#. ($args{'Value'}, $cf->Name) +msgid "%1 added as a value for %2" +msgstr "dodano %1 jako wartość dla %2" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on" +msgstr "do okreÅ›lenia aliasów dla %1 wymagany numer zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on " +msgstr "do okreÅ›lenia aliasów dla %1 wymagany numer zgÅ‚oszenia " + +#: NOT FOUND IN SOURCE +msgid "%1 aliases require a TicketId to work on (from %2) %3" +msgstr "do okreÅ›lenia aliasów dla %1 wymagany numer zgÅ‚oszenia (od %2) %3" + +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 +#. ($args{'Base'}) +#. ($args{'Target'}) +msgid "%1 appears to be a local object, but can't be found in the database" +msgstr "Wydaje siÄ™, że %1 to obiekt lokalny, ale nie udaÅ‚o siÄ™ wyszukać go w bazie danych" + +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 +#. ($self->BriefDescription , $self->CreatorObj->Name) +#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) +msgid "%1 by %2" +msgstr "%1 przez %2" + +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 +#. ($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 zmieniÅ‚o siÄ™ z %2 na %3" + +# Nie jestem pewien! +#: html/Search/Build.html:212 +#. ($Description) +msgid "%1 copy" +msgstr "kopia %1" + +#: lib/RT/Record.pm:930 +msgid "%1 could not be set to %2." +msgstr "nie udaÅ‚o siÄ™ ustawić %1 na %2" + +#: NOT FOUND IN SOURCE +msgid "%1 couldn't init a transaction (%2)\\n" +msgstr "%1 nie udaÅ‚o siÄ™ rozpocząć transakcji (%2)\\n" + +#: lib/RT/Ticket_Overlay.pm:2743 +#. ($self) +msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." +msgstr "%1 nie udaÅ‚o siÄ™ ustawić statusu na zamkniÄ™ty. Baza danych RT może być niespójna" + +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) +msgid "%1 created" +msgstr "%1 crĂŠĂŠ(e)" + +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) +msgid "%1 deleted" +msgstr "%1 supprimĂŠ(e)" + +#: html/Elements/MyTickets:47 +#. ($rows) +msgid "%1 highest priority tickets I own" +msgstr "%1 zgÅ‚oszeÅ„ o najwyższym priorytecie, których jestem wÅ‚aÅ›cicielem" + +#: NOT FOUND IN SOURCE +msgid "%1 highest priority tickets I own..." +msgstr "%1 zgÅ‚oszeÅ„ o najwyższym priorytecie, których wÅ‚aÅ›cicielem jest użytkownik..." + +#: NOT FOUND IN SOURCE +msgid "%1 highest priority tickets I requested..." +msgstr "%1 zgÅ‚oszeÅ„ o najwyższym priorytecie zarejestrowanych przez użytkownika..." + +#: bin/rt-crontool:186 +#. ($0) +msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." +msgstr "%1 jest narzÄ™dziem umożliwiajÄ…cym obsÅ‚ugÄ™ zgÅ‚oszeÅ„ z zewnÄ™trznej aplikacji do sporzÄ…dzania wykazów, takiej jak cron." + +#: lib/RT/Queue_Overlay.pm:860 +#. ($principal->Object->Name, $args{'Type'}) +msgid "%1 is no longer a %2 for this queue." +msgstr "%1 nie jest już %2 dla tej kolejki" + +#: NOT FOUND IN SOURCE +msgid "%1 is no longer a %2 for this ticket." +msgstr "%1 nie jest już %2 dla tego zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "%1 is no longer a value for custom field %2" +msgstr "%1 nie jest już wartoÅ›ciÄ… pola %2" + +#: NOT FOUND IN SOURCE +msgid "%1 isn't a valid Queue id." +msgstr "%1 nie jest aktualnie obowiÄ…zujÄ…cym Id kolejki" + +#: NOT FOUND IN SOURCE +msgid "%1 matches" +msgstr "%1 pasuje" + +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 +#. ('<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." + +#: NOT FOUND IN SOURCE +msgid "%1 most recently updated articles" +msgstr "%1 ostatnio zaktualizowanych artykułów" + +#: NOT FOUND IN SOURCE +msgid "%1 newest articles" +msgstr "%1 najnowszych artykułów" + +#: html/Elements/MyRequests:47 +#. ($rows) +msgid "%1 newest unowned tickets" +msgstr "%1 zgÅ‚oszeÅ„ bez wÅ‚aÅ›ciciela" + +#: NOT FOUND IN SOURCE +msgid "%1 not shown" +msgstr "%1 nie zostaÅ‚o wyÅ›wietlone" + +#: lib/RT/CustomField_Overlay.pm:827 +msgid "%1 objects" +msgstr "%1 objets" + +#: html/User/Elements/DelegateRights:97 +#. (loc($ObjectType =~ /^RT::(.*)$/)) +msgid "%1 rights" +msgstr "%1 - uprawnienia" + +#: NOT FOUND IN SOURCE +msgid "%1 succeeded\\n" +msgstr "%1 udaÅ‚o siÄ™" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for $MessageId" +msgstr "%1 to nieznany typ Id wiadomoÅ›ci ($MessageId)" + +#: NOT FOUND IN SOURCE +msgid "%1 type unknown for %2" +msgstr "%1 to nieznany typ dla %2" + +#: NOT FOUND IN SOURCE +msgid "%1 was created without a CurrentUser\\n" +msgstr "%1 a ĂŠtĂŠ crĂŠĂŠ sans utilisateur courant\\n" + +#: lib/RT/Action/ResolveMembers.pm:63 +#. (ref $self) +msgid "%1 will resolve all members of a resolved group ticket." +msgstr "%1 zamknie wszystkie części zamykanego zgÅ‚oszenia grupowego." + +#: NOT FOUND IN SOURCE +msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." +msgstr "%1 zamknie bazÄ™ lokalnÄ…, jeÅ›li jest powiÄ…zana z podłączonym zgÅ‚oszeniem (lub jest jego częściÄ…)" + +#: lib/RT/CustomField_Overlay.pm:828 +msgid "%1's %2 objects" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:829 +msgid "%1's %2's %3 objects" +msgstr "" + +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 +#. ($object->Name) +#. ($Object->Name) +msgid "%1's saved searches" +msgstr "Zapisane zapytania %1" + +#: lib/RT/Transaction_Overlay.pm:470 +#. ($self) +msgid "%1: no attachment specified" +msgstr "%1: nie okreÅ›lono załącznika" + +#: html/Ticket/Elements/ShowTransactionAttachments:78 +#. ($size) +msgid "%1b" +msgstr "%1b" + +#: html/Ticket/Elements/ShowTransactionAttachments:75 +#. (int( $size / 102.4 ) / 10) +msgid "%1k" +msgstr "%1k" + +#: lib/RT/Ticket_Overlay.pm:1118 +#. ($args{'Status'}) +msgid "'%1' is an invalid value for status" +msgstr "'%1' to nieprawidÅ‚owa wartość statusu" + +#: NOT FOUND IN SOURCE +msgid "'%1' not a recognized action. " +msgstr "'%1' n'est pas une action connue. " + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete group member)" +msgstr "(Zaznacz pole, aby usunąć element z grupy)" + +#: NOT FOUND IN SOURCE +msgid "(Check box to delete scrip)" +msgstr "(Zaznacz pole, aby usunąć skrypt)" + +#: 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 "(Zaznacz pole, aby usunąć)" + +#: NOT FOUND IN SOURCE +msgid "(Check boxes to delete)" +msgstr "(Zaznacz pola, aby usunąć)" + +#: html/Ticket/Elements/PreviewScrips:94 +msgid "(Check boxes to disable notifications to the listed recipients)" +msgstr "(Zaznacz pola przy odbiorcach na liÅ›cie, aby zablokować wysyÅ‚anie powiadomieÅ„)" + +#: html/Ticket/Elements/PreviewScrips:116 +msgid "(Check boxes to enable notifications to the listed recipients)" +msgstr "(Zaznacz pola przy odbiorcach na liÅ›cie, aby uruchomić wysyÅ‚anie powiadomieÅ„)" + +#: html/Ticket/Create.html:209 +msgid "(Enter ticket ids or URLs, separated with spaces)" +msgstr "(Wprowadź numery lub adresy URL zgÅ‚oszeÅ„, oddzielone spacjami)" + +#: NOT FOUND IN SOURCE +msgid "(Enter ticket ids or URLs, seperated with spaces)" +msgstr "(Wprowadź numery lub adresy URL zgÅ‚oszeÅ„, oddzielone spacjami)" + +#: 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 "(JeÅ›li pozostawisz puste, domyÅ›lnie zostanie ustawione na %1)" + +#: NOT FOUND IN SOURCE +msgid "(No Value)" +msgstr "(Non renseignĂŠ)" + +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 +msgid "(No custom fields)" +msgstr "(Brak pól definiowanych przez użytkownika)" + +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 +msgid "(No members)" +msgstr "(Brak czÅ‚onków grupy)" + +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 +msgid "(No scrips)" +msgstr "(Brak skryptów)" + +#: html/Admin/Elements/EditTemplates:52 +msgid "(No templates)" +msgstr "(Brak szablonów)" + +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 +msgid "(None)" +msgstr "(Aucun)" + +#: html/Ticket/Update.html:88 +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 "(WysyÅ‚a kopiÄ™ zgÅ‚oszenia na listÄ™ adresów mailowych oddzielonych przecinkami, umieszczonych w polu BCC.<b> Nie zmienia</b> tego, kto bÄ™dzie otrzymywaÅ‚ informacje o stanie zgÅ‚oszenia)" + +#: 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 "(WysyÅ‚a kopiÄ™ zgÅ‚oszenia na listÄ™ adresów mailowych oddzielonych przecinkami, umieszczonych w polu BCC. <b>Nie zmienia</b> tego, kto bÄ™dzie otrzymywaÅ‚ informacje o stanie zgÅ‚oszenia)" + +#: html/Ticket/Create.html:100 +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 "(WysyÅ‚a kopiÄ™ zgÅ‚oszenia na listÄ™ administracyjnych adresów mailowych oddzielonych przecinkami. Te osoby <b> bÄ™dÄ…</b> otrzymywać informacje o stanie zgÅ‚oszenia)" + +#: html/Ticket/Update.html:84 +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 "(WysyÅ‚a kopiÄ™ zgÅ‚oszenia na listÄ™ adresów mailowych oddzielonych przecinkami. <b>Nie</b> zmienia tego, kto bÄ™dzie otrzymywaÅ‚ informacje o stanie zgÅ‚oszenia)" + +#: 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 "(WysyÅ‚a kopiÄ™ zgÅ‚oszenia na listÄ™ adresów mailowych oddzielonych przecinkami. <b>Nie</b> zmienia tego, kto bÄ™dzie otrzymywaÅ‚ informacje o stanie zgÅ‚oszenia)" + +#: html/Ticket/Create.html:90 +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 "(WysyÅ‚a kopiÄ™ zgÅ‚oszenia na listÄ™ adresów mailowych oddzielonych przecinkami. Te osoby <b>bÄ™dÄ…</b> otrzymywać informacje o stanie zgÅ‚oszenia)" + +#: html/Admin/Elements/EditScrip:102 +msgid "(Use these fields when you choose 'User Defined' for a condition or action)" +msgstr "(Skorzystaj z tych pól jeÅ›li wybrano 'Definiowany przez użytkownika' w atrybutach warunku lub operacji)" + +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 +msgid "(empty)" +msgstr "(pusta)" + +#: NOT FOUND IN SOURCE +msgid "(no Summary)" +msgstr "(brak streszczenia)" + +#: html/Admin/Users/index.html:60 +msgid "(no name listed)" +msgstr "(brak listy użytkowników)" + +#: NOT FOUND IN SOURCE +msgid "(no name)" +msgstr "(brak nazwy)" + +#: NOT FOUND IN SOURCE +msgid "(no subject)" +msgstr "(brak tematu)" + +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 +msgid "(no value)" +msgstr "(brak wartoÅ›ci)" + +#: html/Admin/Elements/EditCustomFieldValues:47 +msgid "(no values)" +msgstr "(aucune valeur)" + +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 +msgid "(only one ticket)" +msgstr "(tylko jedno zgÅ‚oszenie)" + +#: html/Elements/RT__Ticket/ColumnMap:146 +msgid "(pending approval)" +msgstr "(oczekuje na zatwierdzenie)" + +#: html/Elements/RT__Ticket/ColumnMap:149 +msgid "(pending other Collection)" +msgstr "(oczekuje na innÄ… KolekcjÄ™)" + +#: NOT FOUND IN SOURCE +msgid "(pending other tickets)" +msgstr "(oczekuje na inne zgÅ‚oszenia)" + +#: NOT FOUND IN SOURCE +msgid "(requestor's group)" +msgstr "(groupe du demandeur)" + +#: html/Admin/Users/Modify.html:71 +msgid "(required)" +msgstr "(wymagana)" + +#: html/Ticket/Elements/ShowTransactionAttachments:82 +msgid "(untitled)" +msgstr "(nienazwany)" + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I own..." +msgstr "25 zgÅ‚oszeÅ„ o najwyższym priorytecie, których wÅ‚aÅ›cicielem jest użytkownik..." + +#: NOT FOUND IN SOURCE +msgid "25 highest priority tickets I requested..." +msgstr "25 zgÅ‚oszeÅ„ o najwyższym priorytecie zarejestrowanych przez użytkownika..." + +#: 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:65 +msgid "<%$field%>" +msgstr "" + +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 +#. ($m->scomp('/Elements/SelectNewTicketQueue')) +msgid "<input type=\"submit\" value=\"New ticket in\"> %1" +msgstr "<input type=\"submit\" value=\"Nowe zgÅ‚oszenie w\"> %1" + +#: etc/initialdata:218 +msgid "A blank template" +msgstr "Pusty szablon" + +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "ACE Deleted" +msgstr "ACE SupprimĂŠ" + +#: NOT FOUND IN SOURCE +msgid "ACE Loaded" +msgstr "ACE ChargĂŠ" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be deleted" +msgstr "l'ACE n'a pu ĂŞtre supprimĂŠ" + +#: NOT FOUND IN SOURCE +msgid "ACE could not be found" +msgstr "l'ACE n'a pu ĂŞtre trouvĂŠ" + +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 +msgid "ACE not found" +msgstr "Nie udaÅ‚o siÄ™ odnaleźć ACE" + +#: lib/RT/ACE_Overlay.pm:854 +msgid "ACEs can only be created and deleted." +msgstr "ACE mogÄ… być tylko utworzone lub usuniÄ™te." + +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Aborting to avoid unintended ticket modifications.\\n" +msgstr "Przerwanie operacji, aby uniknąć niezamierzonych modyfikacji zgÅ‚oszenia.\\n" + +#: html/User/Elements/Tabs:53 +msgid "About me" +msgstr "Użytkownika" + +#: html/Admin/Users/Modify.html:106 +msgid "Access control" +msgstr "Kontrola dostÄ™pu" + +#: html/Admin/Elements/EditScrip:71 +msgid "Action" +msgstr "Operacja" + +#: lib/RT/Scrip_Overlay.pm:173 +#. ($args{'ScripAction'}) +msgid "Action %1 not found" +msgstr "Operacja %1 nie zostaÅ‚a odnaleziona" + +#: NOT FOUND IN SOURCE +msgid "Action committed." +msgstr "Operacja zostaÅ‚a zatwierdzona" + +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "" + +#: bin/rt-crontool:144 +msgid "Action prepared..." +msgstr "Operacja zostaÅ‚a przygotowana..." + +#: html/Search/Build.html:85 +msgid "Add" +msgstr "Dodaj" + +#: html/Search/Bulk.html:114 +msgid "Add AdminCc" +msgstr "Dodaj AdminCc" + +#: html/Search/Bulk.html:110 +msgid "Add Cc" +msgstr "Dodaj Cc" + +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "" + +#: html/Search/Elements/PickCriteria:46 +msgid "Add Criteria" +msgstr "Dodaj kryterium" + +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 +msgid "Add More Files" +msgstr "Dodaj wiÄ™cej plików" + +#: NOT FOUND IN SOURCE +msgid "Add Next State" +msgstr "Ajouter ĂŠtape suivant" + +#: html/Search/Bulk.html:106 +msgid "Add Requestor" +msgstr "Dodaj zgÅ‚aszajÄ…cego" + +#: html/Admin/Elements/AddCustomFieldValue:46 +msgid "Add Value" +msgstr "Dodaj wartość" + +#: NOT FOUND IN SOURCE +msgid "Add a keyword selection to this queue" +msgstr "Ajouter une sĂŠlection de mots clĂŠ Ă  cette queue" + +#: NOT FOUND IN SOURCE +msgid "Add a new a global scrip" +msgstr "Dodaj nowy skrypt globalny" + +#: NOT FOUND IN SOURCE +msgid "Add a scrip to this queue" +msgstr "Dodaj skrypt dla tej kolejki" + +#: html/Admin/Global/Scrip.html:76 +msgid "Add a scrip which will apply to all queues" +msgstr "Dodaj skrypt, który bÄ™dzie dotyczyÅ‚ wszystkich kolejek" + +#: html/Search/Build.html:85 +msgid "Add additional criteria" +msgstr "Dodaj kolejne kryterium" + +#: html/Search/Bulk.html:146 +msgid "Add comments or replies to selected tickets" +msgstr "Dodaj komentarze lub odpowiedzi do wybranych zgÅ‚oszeÅ„" + +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 +msgid "Add members" +msgstr "Dodaj czÅ‚onków grupy" + +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 +msgid "Add new watchers" +msgstr "Dodaj nowych obserwatorów" + +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "AddNextState" +msgstr "Dodaj nastÄ™pny status" + +#: lib/RT/Queue_Overlay.pm:760 +#. ($args{'Type'}) +msgid "Added principal as a %1 for this queue" +msgstr "ZostaÅ‚ dodany zarzÄ…dzajÄ…cy %1 dla tej kolejki" + +#: lib/RT/Ticket_Overlay.pm:1416 +#. ($self->loc($args{'Type'})) +msgid "Added principal as a %1 for this ticket" +msgstr "ZostaÅ‚ dodany zarzÄ…dzajÄ…cy %1 dla tego zgÅ‚oszenia" + +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 +msgid "Address1" +msgstr "Adres 1" + +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 +msgid "Address2" +msgstr "Adres 2" + +#: html/Ticket/Create.html:95 +msgid "Admin Cc" +msgstr "Admin Cc" + +#: etc/initialdata:295 +msgid "Admin Comment" +msgstr "Administracja komentarzami" + +#: etc/initialdata:274 +msgid "Admin Correspondence" +msgstr "Administracja korespondencjÄ…" + +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 +msgid "Admin queues" +msgstr "Administracja kolejkami" + +#: NOT FOUND IN SOURCE +msgid "Admin users" +msgstr "Administracja użytkownikami" + +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 +msgid "Admin/Global configuration" +msgstr "Globalna konfiguracja - administracja" + +#: NOT FOUND IN SOURCE +msgid "Admin/Groups" +msgstr "Grupy - administracja" + +#: NOT FOUND IN SOURCE +msgid "Admin/Queue/Basics" +msgstr "Administracja kolejkami . podstawowe informacje" + +#: NOT FOUND IN SOURCE +msgid "AdminAllPersonalGroups" +msgstr "AdminAllPersonalGroups" + +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 +msgid "AdminCc" +msgstr "AdminCc" + +#: NOT FOUND IN SOURCE +msgid "AdminComment" +msgstr "AdminComment" + +#: NOT FOUND IN SOURCE +msgid "AdminCorrespondence" +msgstr "AdminCorrespondence" + +#: lib/RT/CustomField_Overlay.pm:101 +msgid "AdminCustomField" +msgstr "AdminPolamiUżytk" + +#: NOT FOUND IN SOURCE +msgid "AdminCustomFields" +msgstr "AdminCustomFields" + +#: lib/RT/Group_Overlay.pm:171 +msgid "AdminGroup" +msgstr "AdminGroup" + +#: lib/RT/Group_Overlay.pm:173 +msgid "AdminGroupMembership" +msgstr "AdminGroupMembership" + +#: lib/RT/System.pm:81 +msgid "AdminOwnPersonalGroups" +msgstr "AdminOwnPersonalGroups" + +#: lib/RT/Queue_Overlay.pm:93 +msgid "AdminQueue" +msgstr "AdminQueue" + +#: lib/RT/System.pm:82 +msgid "AdminUsers" +msgstr "AdminUsers" + +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 +msgid "Administrative Cc" +msgstr "Administracyjne Cc" + +#: NOT FOUND IN SOURCE +msgid "Admins" +msgstr "Administrateurs" + +#: html/Ticket/Elements/Tabs:197 +msgid "Advanced" +msgstr "Zaawansowane" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search" +msgstr "Wyszukiwanie zaawansowane" + +#: NOT FOUND IN SOURCE +msgid "Advanced Search Criteria" +msgstr "Kryteria wyszukiwania zaawansowanego" + +#: html/Elements/SelectDateRelation:57 +msgid "After" +msgstr "po" + +#: NOT FOUND IN SOURCE +msgid "Age" +msgstr "Wiek" + +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Alias for" +msgstr "Alias pour" + +#: etc/initialdata:363 +msgid "All Approvals Passed" +msgstr "Wszystkie warunki poprawnoÅ›ci speÅ‚nione" + +#: NOT FOUND IN SOURCE +msgid "All Classes" +msgstr "Wszystkie klasy" + +#: NOT FOUND IN SOURCE +msgid "All Custom Fields" +msgstr "Wszystkie pola definiowane przez użytkownika" + +#: html/Admin/Queues/index.html:75 +msgid "All Queues" +msgstr "Wszystkie kolejki" + +#: NOT FOUND IN SOURCE +msgid "Always sends a message to the requestors independent of message sender" +msgstr "Zawsze wysyÅ‚a wiadomość do zgÅ‚aszajÄ…cych niezależnie od nadawcy wiadomoÅ›ci" + +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" +msgstr "" + +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 +msgid "Applies to" +msgstr "S'applique Ă " + +#: html/Search/Edit.html:64 +msgid "Apply" +msgstr "Zastosuj" + +#: html/Search/Edit.html:64 +msgid "Apply your changes" +msgstr "Zastosuj zmiany" + +#: html/Elements/Tabs:74 +msgid "Approval" +msgstr "Potwierdzenia" + +#: html/Approvals/Display.html:67 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 "Potwierdzenie #%1: %2" + +#: html/Approvals/index.html:75 +#. ($ticket->Id) +msgid "Approval #%1: Notes not recorded due to a system error" +msgstr "Potwierdzenie #%1: Uwagi nie zostaÅ‚y zapisane z powodu błędu systemu" + +#: html/Approvals/index.html:73 +#. ($ticket->Id) +msgid "Approval #%1: Notes recorded" +msgstr "Potwierdzenie #%1: Uwagi zostaÅ‚y zapisane" + +#: NOT FOUND IN SOURCE +msgid "Approval Details" +msgstr "Szczegóły zatwierdzenia" + +#: etc/initialdata:351 +msgid "Approval Passed" +msgstr "Zatwierdzone" + +#: etc/initialdata:374 +msgid "Approval Rejected" +msgstr "Odrzucone" + +#: NOT FOUND IN SOURCE +msgid "Approval diagram" +msgstr "Diagram potwierdzenia" + +#: html/Approvals/Elements/Approve:65 +msgid "Approve" +msgstr "Zatwierdź" + +#: etc/initialdata:504 +msgid "Approver's notes: %1" +msgstr "Uwagi zatwierdzajÄ…cego: %1" + +#: lib/RT/Date.pm:440 +msgid "Apr." +msgstr "Kwi." + +#: NOT FOUND IN SOURCE +msgid "April" +msgstr "KwiecieÅ„" + +#: NOT FOUND IN SOURCE +msgid "Are you sure you want to delete this article?" +msgstr "Czy jestes pewien, że chcesz usunąć ten artykuÅ‚?" + +#: NOT FOUND IN SOURCE +msgid "Article #%1 deleted" +msgstr "ArtykuÅ‚ #%1 zostaÅ‚ usuniÄ™ty" + +#: NOT FOUND IN SOURCE +msgid "Article #%1: %2" +msgstr "ArtykuÅ‚ #%1: %2" + +#: NOT FOUND IN SOURCE +msgid "Article not found" +msgstr "ArtykuÅ‚ nie zostaÅ‚ odnaleziony" + +#: NOT FOUND IN SOURCE +msgid "Articles" +msgstr "ArtykuÅ‚y" + +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 +msgid "Ascending" +msgstr "RosnÄ…co" + +#: lib/RT/Queue_Overlay.pm:97 +msgid "Assign and remove custom fields" +msgstr "Fixer et supprimer les champs personnalisĂŠs" + +#: lib/RT/Queue_Overlay.pm:97 +msgid "AssignCustomFields" +msgstr "FixerChampsPersonnalisĂŠs" + +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 +msgid "Attach" +msgstr "Załączniki" + +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 +msgid "Attach file" +msgstr "Załącz plik" + +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 +msgid "Attached file" +msgstr "Plik zostaÅ‚ załączony" + +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 +#. ($Attachment) +msgid "Attachment '%1' could not be loaded" +msgstr "Nie udaÅ‚o siÄ™ dodać załącznika '%1'" + +#: lib/RT/Transaction_Overlay.pm:478 +msgid "Attachment created" +msgstr "Załącznik zostaÅ‚ utworzony" + +#: lib/RT/Tickets_Overlay.pm:1673 +msgid "Attachment filename" +msgstr "Nazwa pliku załącznika" + +#: html/Ticket/Elements/ShowAttachments:47 +msgid "Attachments" +msgstr "Załączniki" + +#: lib/RT/Attributes_Overlay.pm:172 +msgid "Attribute Deleted" +msgstr "Atrybut usuniÄ™ty" + +#: lib/RT/Date.pm:444 +msgid "Aug." +msgstr "Sie." + +#: NOT FOUND IN SOURCE +msgid "August" +msgstr "SierpieÅ„" + +#: NOT FOUND IN SOURCE +msgid "AuthSystem" +msgstr "AuthSystem" + +#: etc/initialdata:221 +msgid "Autoreply" +msgstr "Automatyczna odpowiedź" + +#: etc/initialdata:72 +msgid "Autoreply To Requestors" +msgstr "Automatyczna odpowiedź wysyÅ‚ana do zgÅ‚aszajÄ…cych" + +#: NOT FOUND IN SOURCE +msgid "AutoreplyToRequestors" +msgstr "Automatyczna odpowiedź wysyÅ‚ana do zgÅ‚aszajÄ…cych" + +#: NOT FOUND IN SOURCE +msgid "Available Columns" +msgstr "DostÄ™pne kolumny" + +#: NOT FOUND IN SOURCE +msgid "Bad PGP Signature: %1\\n" +msgstr "NiewÅ‚aÅ›ciwy podpis PGP: %1\\n" + +#: NOT FOUND IN SOURCE +msgid "Bad attachment id. Couldn't find attachment '%1'\\n" +msgstr "NiewÅ‚aÅ›ciwy numer id załącznika. Nie udaÅ‚o siÄ™ wyszukać załącznika '%1'\\n" + +#: NOT FOUND IN SOURCE +msgid "Bad data in %1" +msgstr "NiewÅ‚aÅ›ciwe dane w %1" + +#: NOT FOUND IN SOURCE +msgid "Bad transaction number for attachment. %1 should be %2\\n" +msgstr "NiewÅ‚aÅ›ciwy numer transakcji dla załącznika. %1 należy zastÄ…pić przez %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 "Podst. informacje" + +#: html/Ticket/Update.html:86 +msgid "Bcc" +msgstr "Bcc" + +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 +msgid "Be sure to save your changes" +msgstr "PamiÄ™taj, aby zapisać zmiany" + +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 +msgid "Before" +msgstr "przed" + +#: NOT FOUND IN SOURCE +msgid "Begin Approval" +msgstr "Rozpocznij zatwierdzanie" + +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Binary" +msgstr "Binaire" + +#: etc/initialdata:217 +msgid "Blank" +msgstr "Pusty" + +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Bookmarkable URL for this search" +msgstr "Adres URL do zapamiÄ™tania dla tego wyszukiwania" + +#: html/Search/Results.html:81 +msgid "Bookmarkable link" +msgstr "URL do zapamiÄ™tania" + +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 +msgid "Brief headers" +msgstr "Krótkie nagłówki" + +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 +msgid "Bulk ticket update" +msgstr "Hurtowa aktualizacja zgÅ‚oszeÅ„" + +#: lib/RT/User_Overlay.pm:1722 +msgid "Can not modify system users" +msgstr "Nie można zmienić użytkowników systemu" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "Can this principal see this queue" +msgstr "Czy ten zarzÄ…dzajÄ…cy widzi tÄ™ kolejkÄ™" + +#: lib/RT/CustomField_Overlay.pm:370 +msgid "Can't add a custom field value without a name" +msgstr "Nie można wprowadzić wartoÅ›ci pola bez nazwy" + +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" +msgstr "" + +#: html/Search/Build.html:761 +msgid "Can't find a saved search to work with" +msgstr "" + +#: lib/RT/Link_Overlay.pm:160 +msgid "Can't link a ticket to itself" +msgstr "Nie można połączyć zgÅ‚oszenia z tym samym zgÅ‚oszeniem" + +#: NOT FOUND IN SOURCE +msgid "Can't merge into a merged ticket. You should never get this error" +msgstr "Niemożliwe połączenie w jedno zgÅ‚oszenie" + +#: html/Search/Build.html:766 +msgid "Can't save this search" +msgstr "Niemożliwe jest zapisanie tego zapytania" + +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 +msgid "Can't specifiy both base and target" +msgstr "Niemożliwe okreÅ›lenie jednoczeÅ›nie podstaw i celu" + +#: html/autohandler:148 +#. ($msg) +msgid "Cannot create user: %1" +msgstr "Niemożliwe utworzenie użytkownika: %1" + +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 +msgid "Cc" +msgstr "Cc" + +#: html/SelfService/Prefs.html:52 +msgid "Change password" +msgstr "ZmieÅ„ hasÅ‚o" + +#: html/Elements/Submit:100 +msgid "Check All" +msgstr "Tout vĂŠrifier" + +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 +msgid "Check box to delete" +msgstr "Zaznacz pole, aby usunąć" + +#: html/Admin/Elements/SelectRights:55 +msgid "Check box to revoke right" +msgstr "Zaznacz pole, aby odebrać uprawnienie" + +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 +msgid "Children" +msgstr "ZgÅ‚oszenia podrzÄ™dne" + +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 +msgid "City" +msgstr "Miasto" + +#: NOT FOUND IN SOURCE +msgid "Class" +msgstr "Klasa" + +#: NOT FOUND IN SOURCE +msgid "Class Name" +msgstr "Nazwa klasy" + +#: NOT FOUND IN SOURCE +msgid "Class is" +msgstr "KlasÄ… jest" + +#: NOT FOUND IN SOURCE +msgid "Classes" +msgstr "Klasy" + +#: html/Elements/Submit:102 +msgid "Clear All" +msgstr "Tout effacer" + +#: html/Ticket/Elements/ShowDates:68 +msgid "Closed" +msgstr "ZamkniÄ™te" + +#: NOT FOUND IN SOURCE +msgid "Closed Tickets" +msgstr "ZamkniÄ™te zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Closed requests" +msgstr "Demandes closes" + +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 +msgid "Closed tickets" +msgstr "ZamkniÄ™te zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Command not understood!\\n" +msgstr "NiezrozumiaÅ‚e polecenie!\\n" + +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 +msgid "Comment" +msgstr "Komentuj" + +#: html/Admin/Queues/Modify.html:79 +msgid "Comment Address" +msgstr "Adres komentarza" + +#: NOT FOUND IN SOURCE +msgid "Comment not recorded" +msgstr "Komentarz nie zostaÅ‚ zapisany" + +#: lib/RT/Queue_Overlay.pm:112 +msgid "Comment on tickets" +msgstr "Komentarz do zgÅ‚oszeÅ„" + +#: lib/RT/Queue_Overlay.pm:112 +msgid "CommentOnTicket" +msgstr "CommentOnTicket" + +#: NOT FOUND IN SOURCE +msgid "Comments" +msgstr "Komentarze" + +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 +msgid "Comments (Not sent to requestors)" +msgstr "Komentarze (które nie zostanÄ… wysÅ‚ane zgÅ‚aszajÄ…cym)" + +#: html/Search/Bulk.html:150 +msgid "Comments (not sent to requestors)" +msgstr "Komentarze (które nie zostaÅ‚y wysÅ‚ane zgÅ‚aszajÄ…cym)" + +#: NOT FOUND IN SOURCE +msgid "Comments about %1" +msgstr "Komentarze dotyczÄ…ce %1" + +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 +msgid "Comments about this user" +msgstr "Uwagi dotyczÄ…ce użytkownika" + +#: lib/RT/Transaction_Overlay.pm:623 +msgid "Comments added" +msgstr "Komentarze zostaÅ‚y dodane" + +#: lib/RT/Action/Generic.pm:176 +msgid "Commit Stubbed" +msgstr "Potwierdzenie wysÅ‚ane do zgÅ‚aszajÄ…cego" + +#: NOT FOUND IN SOURCE +msgid "Compile Restrictions" +msgstr "Ograniczenia kompilacji" + +#: html/Admin/Elements/EditScrip:63 +msgid "Condition" +msgstr "Warunek" + +#: bin/rt-crontool:131 +msgid "Condition matches..." +msgstr "Warunek zgadza siÄ™ z ..." + +#: lib/RT/Scrip_Overlay.pm:189 +msgid "Condition not found" +msgstr "Warunek nie zostaÅ‚ odnaleziony" + +#: html/Elements/Tabs:81 +msgid "Configuration" +msgstr "Konfiguracja" + +#: html/SelfService/Prefs.html:54 +msgid "Confirm" +msgstr "Potwierdź" + +#: NOT FOUND IN SOURCE +msgid "ContactInfoSystem" +msgstr "ContactInfoSystem" + +#: NOT FOUND IN SOURCE +msgid "Contacted date '%1' could not be parsed" +msgstr "Nie udaÅ‚o siÄ™ rozpoznać daty modyfikacji'%1'" + +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 +msgid "Content" +msgstr "Zawartość" + +#: html/Elements/SelectAttachmentField:49 +msgid "Content-Type" +msgstr "Typ zawartoÅ›ci" + +#: NOT FOUND IN SOURCE +msgid "Coould not create group" +msgstr "Le groupe n'a pas pu ĂŞtre crĂŠĂŠ" + +#: html/Search/Elements/EditSearches:64 +msgid "Copy" +msgstr "Kopiuj" + +#: etc/initialdata:286 +msgid "Correspondence" +msgstr "Korespondencja" + +#: NOT FOUND IN SOURCE +msgid "Correspondence Address" +msgstr "Adres korespondencyjny" + +#: lib/RT/Transaction_Overlay.pm:619 +msgid "Correspondence added" +msgstr "Korespondencja zostaÅ‚a dodana" + +#: NOT FOUND IN SOURCE +msgid "Correspondence not recorded" +msgstr "Korespondencja nie zostaÅ‚a zapisana" + +#: NOT FOUND IN SOURCE +msgid "Could not add new custom field value for ticket. " +msgstr "Nie udaÅ‚o siÄ™ wprowadzić nowej wartoÅ›ci pola dla zgÅ‚oszenia." + +#: NOT FOUND IN SOURCE +msgid "Could not add new custom field value for ticket. %1 " +msgstr "La valeur de champ personnalisĂŠ n'a pas pu ĂŞtre ajoutĂŠe. %1" + +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "" + +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 +msgid "Could not change owner. " +msgstr "Nie udaÅ‚o siÄ™ zmienić wÅ‚aÅ›ciciela." + +#: html/Admin/CustomFields/Modify.html:119 +#. ($msg) +msgid "Could not create CustomField" +msgstr "Nie udaÅ‚o siÄ™ utworzyć pola definiowanego przez użytkownika" + +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 +msgid "Could not create group" +msgstr "Nie udaÅ‚o siÄ™ utworzyć grupy" + +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 +#. ($msg) +msgid "Could not create template: %1" +msgstr "Nie udaÅ‚o siÄ™ utworzyć szablonu: %1" + +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 +msgid "Could not create ticket. Queue not set" +msgstr "Nie udaÅ‚o siÄ™ utworzyć zgÅ‚oszenia. Nie okreÅ›lono kolejki" + +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 +msgid "Could not create user" +msgstr "Nie udaÅ‚o siÄ™ utworzyć użytkownika" + +#: NOT FOUND IN SOURCE +msgid "Could not create watcher for requestor" +msgstr "L'observateur n'a pas pu ĂŞtre crĂŠe pour le demandeur" + +#: NOT FOUND IN SOURCE +msgid "Could not find a ticket with id %1" +msgstr "Nie udaÅ‚o siÄ™ wyszukać zgÅ‚oszenia o numerze %1" + +#: NOT FOUND IN SOURCE +msgid "Could not find group %1." +msgstr "Nie udaÅ‚o siÄ™ wyszukać grupy %1." + +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 +msgid "Could not find or create that user" +msgstr "Nie udaÅ‚o siÄ™ wyszukać ani utworzyć tego użytkownika" + +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 +msgid "Could not find that principal" +msgstr "Nie udaÅ‚o siÄ™ wyszukać tego zarzÄ…dzajÄ…cego" + +#: NOT FOUND IN SOURCE +msgid "Could not find user %1." +msgstr "Nie udaÅ‚o siÄ™ wyszukać użytkownika %1." + +#: html/Admin/CustomFields/Objects.html:69 +msgid "Could not load CustomField %1" +msgstr "Impossible de charger le champ personnalisĂŠ %1" + +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 +msgid "Could not load group" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować grupy" + +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 +#. ($args{'Type'}) +msgid "Could not make that principal a %1 for this queue" +msgstr "Nie udaÅ‚o siÄ™ przypisać tego zarzÄ…dzajÄ…cego jako %1 dla tej kolejki" + +#: lib/RT/Ticket_Overlay.pm:1405 +#. ($self->loc($args{'Type'})) +msgid "Could not make that principal a %1 for this ticket" +msgstr "Nie udaÅ‚o siÄ™ przypisać tego zarzÄ…dzajÄ…cego jako %1 dla tego zgÅ‚oszenia" + +#: lib/RT/Queue_Overlay.pm:857 +#. ($args{'Type'}) +msgid "Could not remove that principal as a %1 for this queue" +msgstr "Nie udaÅ‚o siÄ™ usunąć tego zarzÄ…dzajÄ…cego jako %1 dla tej kolejki" + +#: NOT FOUND IN SOURCE +msgid "Could not remove that principal as a %1 for this ticket" +msgstr "Nie udaÅ‚o siÄ™ usunąć tego zarzÄ…dzajÄ…cego jako %1 dla tego zgÅ‚oszenia" + +#: lib/RT/User_Overlay.pm:192 +msgid "Could not set user info" +msgstr "Niemożliwe byÅ‚o zapisanie danych użytkownika" + +#: lib/RT/Group_Overlay.pm:1011 +msgid "Couldn't add member to group" +msgstr "Nie udaÅ‚o siÄ™ dodać nowego czÅ‚onka grupy" + +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 +#. ($Msg) +msgid "Couldn't create a transaction: %1" +msgstr "Nie udaÅ‚o siÄ™ utworzyć transakcji: %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't figure out what to do from gpg's reply\\n" +msgstr "Nie udaÅ‚o siÄ™ ustalić, co zrobić na podstawie odpowiedzi z gpg\\n" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find group\\n" +msgstr "Nie udaÅ‚o siÄ™ wyszukać grupy\\n" + +#: lib/RT/Record.pm:939 +msgid "Couldn't find row" +msgstr "Nie udaÅ‚o siÄ™ wyszukać wiersza" + +#: lib/RT/Group_Overlay.pm:985 +msgid "Couldn't find that principal" +msgstr "Nie udaÅ‚o siÄ™ wyszukać tego zarzÄ…dzajÄ…cego" + +#: lib/RT/CustomField_Overlay.pm:404 +msgid "Couldn't find that value" +msgstr "Nie udaÅ‚o siÄ™ wyszukać tej wartoÅ›ci" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find that watcher" +msgstr "L'observateur n'a pas pu ĂŞtre trouvĂŠ" + +#: NOT FOUND IN SOURCE +msgid "Couldn't find user\\n" +msgstr "Nie udaÅ‚o siÄ™ wyszukać użytkownika\\n" + +#: lib/RT/CurrentUser.pm:146 +#. ($self->Id) +msgid "Couldn't load %1 from the users database.\\n" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować %1 z bazy użytkowników.\\n" + +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) +msgid "Couldn't load Class %1" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować klasy %1" + +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) +msgid "Couldn't load CustomField %1" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować pola %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load KeywordSelects." +msgstr "KeywordSelects n'a pas pu ĂŞtre chargĂŠ" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load RT config file '%1' %2" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować pliku konfiguracji RT '%1' %2" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load Scrips." +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować skryptów" + +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 +#. ($id) +msgid "Couldn't load group %1" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować grupy %1" + +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 +msgid "Couldn't load link" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować połączenia" + +#: 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 "Impossible de charger l'objet %1" + +#: html/Admin/Queues/People.html:142 +#. ($id) +msgid "Couldn't load queue" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować kolejki" + +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 +#. ($id) +msgid "Couldn't load queue %1" +msgstr " Nie udaÅ‚o siÄ™ zaÅ‚adować kolejki %1" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load scrip" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować skryptu" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load template" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować szablonu" + +#: NOT FOUND IN SOURCE +msgid "Couldn't load that user (%1)" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować użytkownika (%1)" + +#: html/SelfService/Display.html:156 +#. ($id) +msgid "Couldn't load ticket '%1'" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować zgÅ‚oszenia '%1'" + +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 +msgid "Country" +msgstr "Kraj" + +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 +msgid "Create" +msgstr "Utwórz" + +#: etc/initialdata:135 +msgid "Create Tickets" +msgstr "Utwórz zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Create a Class" +msgstr "Utwórz klasÄ™" + +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 +msgid "Create a CustomField" +msgstr "Utwórz pole definiowane przez użytkownika" + +#: html/Admin/Queues/CustomField.html:69 +#. ($QueueObj->Name()) +msgid "Create a CustomField for queue %1" +msgstr "Utwórz pole dla kolejki %1" + +#: NOT FOUND IN SOURCE +msgid "Create a CustomField which applies to all queues" +msgstr "Utwórz pole, które dotyczy wszystkich kolejek" + +#: NOT FOUND IN SOURCE +msgid "Create a new Custom Field" +msgstr "Utwórz nowe pole definiowane przez użytkownika" + +#: NOT FOUND IN SOURCE +msgid "Create a new article" +msgstr "Utwórz nowy artykuÅ‚" + +#: NOT FOUND IN SOURCE +msgid "Create a new global scrip" +msgstr "Utwórz nowy skrypt globalny" + +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 +msgid "Create a new group" +msgstr "Utwórz nowÄ… grupÄ™" + +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 +msgid "Create a new personal group" +msgstr "Utwórz nowÄ… grupÄ™ prywatnÄ…" + +#: NOT FOUND IN SOURCE +msgid "Create a new queue" +msgstr "Utwórz nowÄ… kolejkÄ™" + +#: NOT FOUND IN SOURCE +msgid "Create a new scrip" +msgstr "Utwórz nowy skrypt" + +#: NOT FOUND IN SOURCE +msgid "Create a new template" +msgstr "Utwórz nowy szablon" + +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 +msgid "Create a new ticket" +msgstr "Utwórz nowe zgÅ‚oszenie" + +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 +msgid "Create a new user" +msgstr "Utwórz nowego użytkownika" + +#: html/Admin/Queues/Modify.html:125 +msgid "Create a queue" +msgstr "Utwórz kolejkÄ™" + +#: NOT FOUND IN SOURCE +msgid "Create a queue called" +msgstr "Utwórz kolejkÄ™ nazwanÄ…" + +#: NOT FOUND IN SOURCE +msgid "Create a request" +msgstr "Utwórz zgÅ‚oszenie" + +#: html/Admin/Queues/Scrip.html:80 +#. ($QueueObj->Name) +msgid "Create a scrip for queue %1" +msgstr "Utwórz skrypt dla kolejki %1" + +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 +msgid "Create a template" +msgstr "Utwórz szablon" + +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 +msgid "Create a ticket" +msgstr "Utwórz zgÅ‚oszenie" + +#: NOT FOUND IN SOURCE +msgid "Create an article" +msgstr "Utwórz artykuÅ‚" + +#: NOT FOUND IN SOURCE +msgid "Create an article in class..." +msgstr "Utwórz artykuÅ‚ w ramach klasy..." + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1 / %2 / %3 " +msgstr "Echec Ă  la crĂŠation de: %1 / %2 / %3" + +#: NOT FOUND IN SOURCE +msgid "Create failed: %1/%2/%3" +msgstr "Echec Ă  la crĂŠation de: %1/%2/%3" + +#: etc/initialdata:137 +msgid "Create new tickets based on this scrip's template" +msgstr "Utwórz nowe zgÅ‚oszenia na podstawie szablonu tego skryptu" + +#: html/SelfService/Create.html:105 +msgid "Create ticket" +msgstr "Utwórz zgÅ‚oszenie" + +#: lib/RT/Queue_Overlay.pm:110 +msgid "Create tickets in this queue" +msgstr "Utwórz zgÅ‚oszenia w tej kolejce" + +#: lib/RT/CustomField_Overlay.pm:101 +msgid "Create, delete and modify custom fields" +msgstr "Utwórz, usuÅ„ i zmodyfikuj pola def. przez użytkownika" + +#: lib/RT/Queue_Overlay.pm:93 +msgid "Create, delete and modify queues" +msgstr "Utwórz, usuÅ„ i zmodyfikuj kolejki" + +#: NOT FOUND IN SOURCE +msgid "Create, delete and modify the members of any user's personal groups" +msgstr "Utwórz, usuÅ„ i zmodyfikuj czÅ‚onków którejÅ› z prywatnych grup użytkownika" + +#: lib/RT/System.pm:81 +msgid "Create, delete and modify the members of personal groups" +msgstr " Utwórz, usuÅ„ i zmodyfikuj czÅ‚onków prywatnych grup" + +#: lib/RT/System.pm:82 +msgid "Create, delete and modify users" +msgstr "Utwórz, usuÅ„ i zmodyfikuj użytkowników" + +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:110 +msgid "CreateTicket" +msgstr "CreateTicket" + +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 +msgid "Created" +msgstr "Zarejestrowane" + +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 +#. ($CustomFieldObj->Name()) +msgid "Created CustomField %1" +msgstr "Pole %1 zostaÅ‚o utworzone" + +#: NOT FOUND IN SOURCE +msgid "Created by" +msgstr "Utworzony przez" + +#: NOT FOUND IN SOURCE +msgid "Created during" +msgstr "Utworzony podczas" + +#: NOT FOUND IN SOURCE +msgid "Created template %1" +msgstr "Szablon %1 zostaÅ‚ utworzony" + +#: html/Search/Elements/PickBasics:102 +msgid "Creator" +msgstr "ZgÅ‚aszajÄ…cy" + +#: html/Elements/EditLinks:49 +msgid "Current Links" +msgstr "Aktualne powiÄ…zania" + +#: NOT FOUND IN SOURCE +msgid "Current Relationships" +msgstr "Aktualne powiÄ…zania" + +#: html/Admin/Elements/EditScrips:51 +msgid "Current Scrips" +msgstr "Aktualne skrypty" + +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 +msgid "Current members" +msgstr "Aktualni czÅ‚onkowie" + +#: html/Admin/Elements/SelectRights:51 +msgid "Current rights" +msgstr "Aktualne uprawnienia" + +#: NOT FOUND IN SOURCE +msgid "Current search criteria" +msgstr "Aktualne kryteria wyszukiwania" + +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 +msgid "Current watchers" +msgstr "Aktualni obserwatorzy" + +#: NOT FOUND IN SOURCE +msgid "Custom Field #%1" +msgstr "Pole def. przez użytkownika #%1" + +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 +msgid "Custom Fields" +msgstr "Pola def. przez użytkownika" + +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) +msgid "Custom Fields for %1" +msgstr "Champs personnalisĂŠs pour %1" + +#: html/Admin/Elements/EditScrip:123 +msgid "Custom action cleanup code" +msgstr "Treść procedury czyszczenia definiowana przez użytkownika" + +#: html/Admin/Elements/EditScrip:115 +msgid "Custom action preparation code" +msgstr "Treść procedury definiowana przez użytkownika" + +#: html/Admin/Elements/EditScrip:107 +msgid "Custom condition" +msgstr "Warunek definiowany przez użytkownika" + +#: NOT FOUND IN SOURCE +msgid "Custom field %1 %2 %3" +msgstr "Pole definiowane przez użytkownika %1 %2 %3" + +#: NOT FOUND IN SOURCE +msgid "Custom field %1 does not apply to this object" +msgstr "Le champ personnalisĂŠ %1 ne s'applique pas Ă  cet objet" + +#: lib/RT/Tickets_Overlay.pm:2147 +#. ($CF->Name) +msgid "Custom field %1 has a value." +msgstr "Pole %1 definiowane przez użytkownika ma wartość." + +#: lib/RT/Tickets_Overlay.pm:2143 +#. ($CF->Name) +msgid "Custom field %1 has no value." +msgstr "Brak wartoÅ›ci w polu %1 definiowanym przez użytkownika." + +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 +#. ($args{'Field'}) +msgid "Custom field %1 not found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać pola %1 definiowanego przez użytkownika" + +#: NOT FOUND IN SOURCE +msgid "Custom field deleted" +msgstr "Pole definiowane przez użytkownika zostaÅ‚o usuniÄ™te" + +#: NOT FOUND IN SOURCE +msgid "Custom field not found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać pola definiowanego przez użytkownika" + +#: lib/RT/CustomField_Overlay.pm:1041 +#. ($args{'Content'}, $self->Name) +msgid "Custom field value %1 could not be found for custom field %2" +msgstr "Nie udaÅ‚o siÄ™ wyszukać wartoÅ›ci %1 dla pola %2" + +#: NOT FOUND IN SOURCE +msgid "Custom field value changed from %1 to %2" +msgstr "Wartość pola zmieniÅ‚a siÄ™ z %1 na %2" + +#: lib/RT/CustomField_Overlay.pm:414 +msgid "Custom field value could not be deleted" +msgstr "Nie można usunąć wartoÅ›ci pola" + +#: lib/RT/CustomField_Overlay.pm:1047 +msgid "Custom field value could not be found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać wartoÅ›ci pola" + +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 +msgid "Custom field value deleted" +msgstr "Wartość pola zostaÅ‚a usuniÄ™ta" + +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 +msgid "CustomField" +msgstr "Pole" + +#: NOT FOUND IN SOURCE +msgid "Data error" +msgstr "Erreur de donnĂŠes" + +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 +msgid "Dates" +msgstr "Daty" + +#: lib/RT/Date.pm:448 +msgid "Dec." +msgstr "Gru." + +#: NOT FOUND IN SOURCE +msgid "December" +msgstr "GrudzieÅ„" + +#: NOT FOUND IN SOURCE +msgid "Default Autoresponse Template" +msgstr "DomyÅ›lnie wybierany szablon odpowiedzi wysyÅ‚anej automatycznie" + +#: etc/initialdata:222 +msgid "Default Autoresponse template" +msgstr "DomyÅ›lnie wybierany szablon odpowiedzi wysyÅ‚anej automatycznie" + +#: html/Tools/Offline.html:61 +msgid "Default Queue" +msgstr "DomyÅ›lna kolejka" + +#: html/Tools/Offline.html:70 +msgid "Default Requestor" +msgstr "DomyÅ›lny zgÅ‚aszajÄ…cy" + +#: etc/initialdata:296 +msgid "Default admin comment template" +msgstr "DomyÅ›lnie wybierany szablon komentarza administratora" + +#: etc/initialdata:275 +msgid "Default admin correspondence template" +msgstr "DomyÅ›lnie wybierany szablon korespondencji administratora" + +#: etc/initialdata:287 +msgid "Default correspondence template" +msgstr "DomyÅ›lnie wybierany szablon korespondencji" + +#: etc/initialdata:253 +msgid "Default transaction template" +msgstr "DomyÅ›lnie wybierany szablon transakcji" + +#: NOT FOUND IN SOURCE +msgid "Default: %1/%2 changed from %3 to %4" +msgstr "DomyÅ›lnie: %1/%2 zmieniane z \"%3\" na \"%4\"" + +#: html/User/Delegation.html:46 html/User/Delegation.html:49 +msgid "Delegate rights" +msgstr "Przekaż uprawnienia" + +#: lib/RT/System.pm:85 +msgid "Delegate specific rights which have been granted to you." +msgstr "Przekaż specyficzne uprawnienia, które zostaÅ‚y Ci przyznane" + +#: lib/RT/System.pm:85 +msgid "DelegateRights" +msgstr "DelegateRights" + +#: html/User/Elements/Tabs:59 +msgid "Delegation" +msgstr "Przekazywanie uprawnieÅ„" + +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 +msgid "Delete" +msgstr "UsuÅ„" + +#: html/Admin/Elements/EditTemplates:79 +msgid "Delete Template" +msgstr "UsuÅ„ szablon" + +#: NOT FOUND IN SOURCE +msgid "Delete article #%1" +msgstr "UsuÅ„ artykuÅ‚ #%1" + +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" +msgstr "" + +#: html/Admin/Elements/EditScrips:74 +msgid "Delete selected scrips" +msgstr "UsuÅ„ zaznaczone skrypty" + +#: lib/RT/Queue_Overlay.pm:115 +msgid "Delete tickets" +msgstr "UsuÅ„ zgÅ‚oszenia" + +#: lib/RT/Queue_Overlay.pm:115 +msgid "DeleteTicket" +msgstr "DeleteTicket" + +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Deleting this object could break referential integrity" +msgstr "UsuniÄ™cie tego obiektu mogÅ‚o spowodować brak spójnoÅ›ci" + +#: lib/RT/Queue_Overlay.pm:391 +msgid "Deleting this object would break referential integrity" +msgstr "UsuniÄ™cie tego obiektu spowoduje brak spójnoÅ›ci" + +#: lib/RT/User_Overlay.pm:513 +msgid "Deleting this object would violate referential integrity" +msgstr "UsuniÄ™cie tego obiektu naruszy spójność" + +#: NOT FOUND IN SOURCE +msgid "Deleting this object would violate referential integrity." +msgstr "Effacer cet objet violerait l'intĂŠgritĂŠ rĂŠfĂŠrentielle" + +#: NOT FOUND IN SOURCE +msgid "Deleting this object would violate referential integrity. That's bad." +msgstr "Effacer cet objet violerait l'intĂŠgritĂŠ rĂŠfĂŠrentielle, c'est serait facheux!" + +#: html/Approvals/Elements/Approve:66 +msgid "Deny" +msgstr "Odrzucić" + +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 +msgid "Depended on by" +msgstr "ZgÅ‚oszenia zależne" + +#: NOT FOUND IN SOURCE +msgid "Dependencies: \\n" +msgstr "ZależnoÅ›ci" + +#: lib/RT/Transaction_Overlay.pm:707 +#. ($value) +msgid "Dependency by %1 added" +msgstr "Zależność %1 dodana" + +#: lib/RT/Transaction_Overlay.pm:747 +#. ($value) +msgid "Dependency by %1 deleted" +msgstr "Zależność %1 usuniÄ™ta" + +#: lib/RT/Transaction_Overlay.pm:704 +#. ($value) +msgid "Dependency on %1 added" +msgstr "Zależność od %1 dodana" + +#: lib/RT/Transaction_Overlay.pm:744 +#. ($value) +msgid "Dependency on %1 deleted" +msgstr "Zależność od %1 usuniÄ™ta" + +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 +msgid "Depends on" +msgstr "Zależy od" + +#: NOT FOUND IN SOURCE +msgid "DependsOn" +msgstr "ZależyOd" + +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 +msgid "Descending" +msgstr "MalejÄ…co" + +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 +msgid "Describe the issue below" +msgstr "Opis zgÅ‚oszenia" + +#: 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:56 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 "Opis" + +#: NOT FOUND IN SOURCE +msgid "Details" +msgstr "Szczegóły" + +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 +msgid "Display" +msgstr "WyÅ›wietl" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "Display Access Control List" +msgstr "WyÅ›wietl ListÄ™ Praw DostÄ™pu" + +#: html/Search/Elements/DisplayOptions:46 +msgid "Display Columns" +msgstr "Wybierz kolumny" + +#: lib/RT/Queue_Overlay.pm:100 +msgid "Display Scrip templates for this queue" +msgstr "WyÅ›wietl szablony skryptów dla tej kolejki" + +#: lib/RT/Queue_Overlay.pm:103 +msgid "Display Scrips for this queue" +msgstr "WyÅ›wietl skrypty dla tej kolejki" + +#: html/Ticket/Elements/ShowHistory:56 +msgid "Display mode" +msgstr "Tryb wyÅ›wietlania" + +#: lib/RT/Group_Overlay.pm:176 +msgid "Display saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Display ticket #%1" +msgstr "WyÅ›wietl zgÅ‚oszenie #%1" + +#: html/Elements/Footer:60 +msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" +msgstr "Rozpowszechniane na mocy wersji 2 licencji GNU GPL <a href=\"http://www.gnu.org/copyleft/gpl.html\">." + +#: lib/RT/System.pm:76 +msgid "Do anything and everything" +msgstr "Zrób cokolwiek i wszystko" + +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "" + +#: html/Elements/Refresh:51 +msgid "Don't refresh this page." +msgstr "Nie odÅ›wieżaj tej strony." + +#: NOT FOUND IN SOURCE +msgid "Don't show search results" +msgstr "Nie wyÅ›wietlaj wyników wyszukiwania" + +#: html/Ticket/Elements/ShowTransactionAttachments:82 +msgid "Download" +msgstr "Pobierz " + +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 +msgid "Download as a tab-delimited file" +msgstr "TĂŠlĂŠcharger en tant que fichier dĂŠlimitĂŠ par tabulations" + +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 +msgid "Due" +msgstr "Termin realizacji" + +#: NOT FOUND IN SOURCE +msgid "Due date '%1' could not be parsed" +msgstr "Termin realizacji '%1' nie może być rozpoznany" + +#: NOT FOUND IN SOURCE +msgid "ERROR: Couldn't load ticket '%1': %2.\\n" +msgstr "BÅÄ„D: Nie udaÅ‚o siÄ™ zaÅ‚adować zgÅ‚oszenia: '%1': %2.\\n" + +#: NOT FOUND IN SOURCE +msgid "Edit" +msgstr "Edytuj" + +#: NOT FOUND IN SOURCE +msgid "Edit Conditions" +msgstr "Modifier les conditions" + +#: 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 "Edytuj pola dla kolejki %1" + +#: NOT FOUND IN SOURCE +msgid "Edit Custom Fields for Class %1" +msgstr "Edytuj pola dla klasy %1" + +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "" + +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "" + +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 +msgid "Edit Links" +msgstr "Edytuj powiÄ…zania" + +#: html/Search/Edit.html:68 +msgid "Edit Query" +msgstr "Zmodyfikuj zapytanie" + +#: NOT FOUND IN SOURCE +msgid "Edit Relationships" +msgstr "Edytuj powiÄ…zania" + +#: html/Admin/Queues/Templates.html:63 +#. ($QueueObj->Name) +msgid "Edit Templates for queue %1" +msgstr "Edytuj szablony kolejki %1" + +#: NOT FOUND IN SOURCE +msgid "Edit keywords" +msgstr "Modifier les mots clÄ‚" + +#: lib/RT/Group_Overlay.pm:175 +msgid "Edit saved searches for this group" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Edit scrips" +msgstr "Edytuj skrypty" + +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 +msgid "Edit system templates" +msgstr "Edytuj szablony systemowe" + +#: NOT FOUND IN SOURCE +msgid "Edit templates for %1" +msgstr "Edytuj szablony dla %1" + +#: lib/RT/Group_Overlay.pm:175 +msgid "EditSavedSearches" +msgstr "EdytujZapisaneZapytania" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for Class %1" +msgstr "Edytuj konfiguracjÄ™ klasy %1" + +#: html/Admin/Queues/Modify.html:140 +#. ($QueueObj->Name) +msgid "Editing Configuration for queue %1" +msgstr "Edytuj konfiguracjÄ™ kolejki %1" + +#: NOT FOUND IN SOURCE +msgid "Editing Configuration for user %1" +msgstr "Edytuj konfiguracjÄ™ użytkownika %1" + +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 +#. ($CustomFieldObj->Name()) +msgid "Editing CustomField %1" +msgstr "Edytuj pole %1" + +#: html/Admin/Groups/Members.html:53 +#. ($Group->Name) +msgid "Editing membership for group %1" +msgstr "Edytuj listÄ™ czÅ‚onków grupy %1" + +#: html/User/Groups/Members.html:150 +#. ($Group->Name) +msgid "Editing membership for personal group %1" +msgstr "Edytuj listÄ™ czÅ‚onków prywatnej grupy %1" + +#: NOT FOUND IN SOURCE +msgid "Editing template %1" +msgstr "Edytuj szablon %1" + +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 +msgid "Either base or target must be specified" +msgstr "Podstawy lub cel muszÄ… być okreÅ›lone" + +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 +msgid "Email" +msgstr "e-mail" + +#: lib/RT/User_Overlay.pm:236 +msgid "Email address in use" +msgstr "Używany adres e-mail " + +#: NOT FOUND IN SOURCE +msgid "EmailAddress" +msgstr "adres e-mail" + +#: NOT FOUND IN SOURCE +msgid "EmailEncoding" +msgstr "kodowanie e-maila" + +#: NOT FOUND IN SOURCE +msgid "Enabled (Unchecking this box disables this Class)" +msgstr "UdostÄ™pniona (nieoznaczenie tego pola spowoduje, że klasa bÄ™dzie niedostÄ™pna)" + +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 +msgid "Enabled (Unchecking this box disables this custom field)" +msgstr "UdostÄ™pnione (nieoznaczenie tego pola spowoduje, że pole bÄ™dzie niedostÄ™pne)" + +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 +msgid "Enabled (Unchecking this box disables this group)" +msgstr "UdostÄ™pniona (nieoznaczenie tego pola spowoduje, że grupa bÄ™dzie niedostÄ™pna)" + +#: html/Admin/Queues/Modify.html:105 +msgid "Enabled (Unchecking this box disables this queue)" +msgstr "UdostÄ™pniona (nieoznaczenie tego pola spowoduje, że kolejka bÄ™dzie niedostÄ™pna)" + +#: NOT FOUND IN SOURCE +msgid "Enabled Classes" +msgstr "DostÄ™pne klasy" + +#: NOT FOUND IN SOURCE +msgid "Enabled Custom Fields" +msgstr "DostÄ™pne pola definiowane przez użytkownika" + +#: html/Admin/Queues/index.html:78 +msgid "Enabled Queues" +msgstr "DostÄ™pne kolejki" + +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 +#. (loc_fuzzy($msg)) +msgid "Enabled status %1" +msgstr "DostÄ™pny status %1" + +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) +msgid "Enabled status: %1" +msgstr "Statut actif: %1" + +#: NOT FOUND IN SOURCE +msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." +msgstr "Aby powiÄ…zać artykuÅ‚y, wprowadź artykuÅ‚y lub URI oddzielone spacjami." + +#: lib/RT/CustomField_Overlay.pm:64 +msgid "Enter multiple values" +msgstr "Wprowadzanie wielu wartoÅ›ci" + +#: html/Elements/EditLinks:124 +msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." +msgstr "Aby powiÄ…zać obiekty, wprowadź URI obiektów oddzielone spacjami." + +#: lib/RT/CustomField_Overlay.pm:65 +msgid "Enter one value" +msgstr "Wprowadzanie jednej wartoÅ›ci" + +#: html/Elements/EditLinks:121 +msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." +msgstr "Aby powiÄ…zać kolejki, wprowadź URI kolejek oddzielone spacjamii." + +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 +msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." +msgstr "Aby powiÄ…zać zgÅ‚oszenia, wprowadź numery zgÅ‚oszeÅ„ lub URI oddzielone spacjami." + +#: NOT FOUND IN SOURCE +msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." +msgstr "Aby powiÄ…zać zgÅ‚oszenia, wprowadź numery zgÅ‚oszeÅ„ lub URI oddzielone spacjami." + +#: lib/RT/CustomField_Overlay.pm:66 +msgid "Enter up to %1 values" +msgstr "Saisir %1 valeurs maximum" + +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 +msgid "Error" +msgstr "Błąd" + +#: NOT FOUND IN SOURCE +msgid "Error adding watcher" +msgstr "Erreur Ă  l'ajout de l'observateur" + +#: lib/RT/Queue_Overlay.pm:669 +msgid "Error in parameters to Queue->AddWatcher" +msgstr "Błąd w okreÅ›leniu parametrów kolejki->Dodaj Obserwatora" + +#: NOT FOUND IN SOURCE +msgid "Error in parameters to Queue->DelWatcher" +msgstr "Błąd w okreÅ›leniu parametrów kolejki -> UsuÅ„ Obserwatora" + +#: lib/RT/Queue_Overlay.pm:830 +msgid "Error in parameters to Queue->DeleteWatcher" +msgstr "Błąd w okreÅ›leniu parametrów kolejki -> UsuÅ„ Obserwatora" + +#: lib/RT/Ticket_Overlay.pm:1333 +msgid "Error in parameters to Ticket->AddWatcher" +msgstr "Błąd w okreÅ›leniu parametrów zgÅ‚oszenia -> Dodaj Obserwatora" + +#: NOT FOUND IN SOURCE +msgid "Error in parameters to Ticket->DelWatcher" +msgstr " Błąd w okreÅ›leniu parametrów zgÅ‚oszenia -> UsuÅ„ Obserwatora" + +#: lib/RT/Ticket_Overlay.pm:1499 +msgid "Error in parameters to Ticket->DeleteWatcher" +msgstr "Błąd w okreÅ›leniu parametrów ZgÅ‚oszenia-> UsuÅ„ Obserwatora" + +#: bin/rt-crontool:233 +msgid "Escalate tickets" +msgstr "Eskaluj zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Estimate" +msgstr "Estimer" + +#: html/Ticket/Elements/ShowBasics:57 +msgid "Estimated" +msgstr "Szacowane" + +#: etc/initialdata:20 +msgid "Everyone" +msgstr "Wszyscy" + +#: bin/rt-crontool:219 +msgid "Example:" +msgstr "PrzykÅ‚ad:" + +#: NOT FOUND IN SOURCE +msgid "ExternalAuthId" +msgstr "ZewnÄ™trzne AuthId" + +#: NOT FOUND IN SOURCE +msgid "ExternalContactInfoId" +msgstr "ExternalContactInfoId" + +#: html/Admin/Users/Modify.html:99 +msgid "Extra info" +msgstr "Informacje dodatkowe" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1" +msgstr "Wydziel artykuÅ‚ ze zgÅ‚oszenia #%1" + +#: NOT FOUND IN SOURCE +msgid "Extract article from ticket #%1 into class %2" +msgstr "Wydziel artykuÅ‚ ze zgÅ‚oszenia #%1 w klasie %2" + +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" +msgstr "" + +#: lib/RT/User_Overlay.pm:377 +msgid "Failed to find 'Privileged' users pseudogroup." +msgstr "Nie udaÅ‚o siÄ™ wyszukać czÅ‚onków grupy 'Uprawnieni'" + +#: lib/RT/User_Overlay.pm:384 +msgid "Failed to find 'Unprivileged' users pseudogroup" +msgstr "Nie udaÅ‚o siÄ™ wyszukać czÅ‚onków grupy 'Nieuprawnieni'" + +#: bin/rt-crontool:163 +#. ($modname, $@) +msgid "Failed to load module %1. (%2)" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować moduÅ‚u %1. (%2)" + +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + +#: lib/RT/Date.pm:438 +msgid "Feb." +msgstr "Lut." + +#: NOT FOUND IN SOURCE +msgid "February" +msgstr "Luty" + +# Nie jestem pewien: jedno sÅ‚owo! +#: html/Elements/SelectAttachmentField:50 +msgid "Filename" +msgstr "Nazwa pliku" + +#: lib/RT/CustomField_Overlay.pm:69 +msgid "Fill in multiple text areas" +msgstr "Saisir dans plusieurs champs de type texte" + +#: 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 "Saisir dans un champ de type texte" + +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +msgstr "" + +#: lib/RT/CustomField_Overlay.pm:71 +msgid "Fill in up to %1 text areas" +msgstr "Saisir dans %1 champs de type texte maximum" + +#: lib/RT/CustomField_Overlay.pm:76 +msgid "Fill in up to %1 wikitext areas" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Fin" +msgstr "Koniec" + +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 +msgid "Final Priority" +msgstr "KoÅ„cowy priorytet" + +#: lib/RT/Ticket_Overlay.pm:1140 +msgid "FinalPriority" +msgstr "KoÅ„cowy priorytet" + +#: NOT FOUND IN SOURCE +msgid "Find group whose" +msgstr "Wyszukaj grupÄ™, której" + +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 +msgid "Find groups whose" +msgstr "Trouver les groupes dont" + +#: NOT FOUND IN SOURCE +msgid "Find new/open tickets" +msgstr "Wyszykaj nowe/otwarte zgÅ‚oszenia" + +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 +msgid "Find people whose" +msgstr "Wyszukaj użytkowników, których" + +#: html/Search/Results.html:109 +msgid "Find tickets" +msgstr "Wyszukaj zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Finish Approval" +msgstr "ZakoÅ„cz zatwierdzanie" + +#: html/Ticket/Elements/Tabs:81 +msgid "First" +msgstr "Pierwsze" + +#: NOT FOUND IN SOURCE +msgid "First page" +msgstr "Pierwsza strona" + +#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:766 +msgid "Foo Bar Baz" +msgstr "Ble ble" + +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 +msgid "Foo!" +msgstr "ble ble" + +#: html/Search/Bulk.html:105 +msgid "Force change" +msgstr "WymuÅ› zmianÄ™" + +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 +#. ($ticketcount) +msgid "Found %quant(%1,ticket)" +msgstr "Wyszukano %1 zgÅ‚oszeÅ„" + +#: lib/RT/Record.pm:942 +msgid "Found Object" +msgstr "Wyszukany obiekt" + +#: NOT FOUND IN SOURCE +msgid "Freeform" +msgstr "FormulaireLibre" + +#: NOT FOUND IN SOURCE +msgid "FreeformContactInfo" +msgstr "FreeformContactInfo" + +#: NOT FOUND IN SOURCE +msgid "FreeformMultiple" +msgstr "FreeformMultiple" + +#: NOT FOUND IN SOURCE +msgid "FreeformSingle" +msgstr "FreeformSingle" + +#: lib/RT/Date.pm:417 +msgid "Fri." +msgstr "Pt." + +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 +msgid "Full headers" +msgstr "PeÅ‚ne nagłówki" + +#: html/Tools/Offline.html:87 +msgid "Get template from file" +msgstr "Pobierz szablon z pliku" + +#: NOT FOUND IN SOURCE +msgid "Getting the current user from a pgp sig\\n" +msgstr "Uzyskanie aktualnego użytkownika na podstawie podpisu pgp\\n" + +#: lib/RT/Transaction_Overlay.pm:673 +#. ($New->Name) +msgid "Given to %1" +msgstr "Nadany dla %1" + +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 +msgid "Global" +msgstr "Globalna" + +#: html/Admin/Elements/EditCustomFields:55 +msgid "Global Custom Fields" +msgstr "Champs personnalisĂŠs globaux" + +#: NOT FOUND IN SOURCE +msgid "Global Keyword Selections" +msgstr "Mots clĂŠ globaux" + +#: NOT FOUND IN SOURCE +msgid "Global Scrips" +msgstr "Skrypty globalne" + +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:59 +#. (loc($Template->Name)) +msgid "Global template: %1" +msgstr "Szablon globalny: %1" + +#: html/Tools/Offline.html:91 +msgid "Go" +msgstr "Pobierz" + +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 +msgid "Go!" +msgstr "Start!" + +#: NOT FOUND IN SOURCE +msgid "Good pgp sig from %1\\n" +msgstr "Poprawny podpis pgp dla %1\\n " + +#: NOT FOUND IN SOURCE +msgid "Goto page" +msgstr "Przejdź do strony" + +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 +msgid "Goto ticket" +msgstr "Przejdź do zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Grand" +msgstr "Accorder" + +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 +msgid "Group" +msgstr "Grupa" + +#: NOT FOUND IN SOURCE +msgid "Group %1 %2: %3" +msgstr "Grupa %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 "Uprawnienia grupowe" + +#: lib/RT/Group_Overlay.pm:991 +msgid "Group already has member" +msgstr "Grupa ma już czÅ‚onka" + +#: NOT FOUND IN SOURCE +msgid "Group could not be created." +msgstr "Le groupe n'a pas pu ĂŞtre crĂŠĂŠ" + +#: html/Admin/Groups/Modify.html:109 +#. ($create_msg) +msgid "Group could not be created: %1" +msgstr "Nie udaÅ‚o siÄ™ utworzyć grupy: %1" + +#: lib/RT/Group_Overlay.pm:529 +msgid "Group created" +msgstr "Grupa zostaÅ‚a utworzona" + +#: lib/RT/Group_Overlay.pm:1163 +msgid "Group has no such member" +msgstr "Nie ma takiego czÅ‚onka grupy" + +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 +msgid "Group not found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać grupy" + +#: NOT FOUND IN SOURCE +msgid "Group not found.\\n" +msgstr "Nie udaÅ‚o siÄ™ wyszukać grupy.\\n" + +#: NOT FOUND IN SOURCE +msgid "Group not specified.\\n" +msgstr "Grupa nie zostaÅ‚a okreÅ›lona.\\n" + +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 +msgid "Groups" +msgstr "Grupy" + +#: lib/RT/Group_Overlay.pm:997 +msgid "Groups can't be members of their members" +msgstr "Nie można przypisac grup jako czÅ‚onków tych grup" + +#: html/Admin/Groups/index.html:82 +msgid "Groups matching search criteria" +msgstr "Groupes correspondant au critère de recherche" + +#: html/Ticket/Elements/ShowRequestor:77 +msgid "Groups this user belongs to" +msgstr "Cette utilisateur appartient aux groupes" + +#: lib/RT/Interface/CLI.pm:94 lib/RT/Interface/CLI.pm:94 +msgid "Hello!" +msgstr "Witaj!" + +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 +#. ($name) +msgid "Hello, %1" +msgstr "Witaj, %1" + +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 +msgid "History" +msgstr "Historia" + +#: NOT FOUND IN SOURCE +msgid "History for article #%1" +msgstr "Historia artykuÅ‚u #%1" + +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) +msgid "History of the group %1" +msgstr "Historique du groupe %1" + +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) +msgid "History of the user %1" +msgstr "Historique de l'utilisateur %1" + +#: NOT FOUND IN SOURCE +msgid "HomePhone" +msgstr "Tel. domowy" + +#: html/Elements/Tabs:65 +msgid "Homepage" +msgstr "Start" + +#: lib/RT/Base.pm:110 +#. (6) +msgid "I have %quant(%1,concrete mixer)." +msgstr "Posiadam %quant(%1,concrete mixer)." + +#: NOT FOUND IN SOURCE +msgid "I have [quant,_1,concrete mixer]." +msgstr "I have [quant,_1,concrete mixer]." + +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 +msgid "Id" +msgstr "Nr " + +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 +msgid "Identity" +msgstr "Identyfikacja użytkownika" + +#: etc/initialdata:429 +msgid "If an approval is rejected, reject the original and delete pending approvals" +msgstr "JeÅ›li potwierdzenie zostaÅ‚o odrzucone, odrzuć oryginaÅ‚ i usuÅ„ oczekujÄ…ce potwierdzenia" + +#: html/Tools/Offline.html:74 +msgid "If no Requestor is specified, create tickets with this requestor." +msgstr "JeÅ›li zgÅ‚aszajÄ…cy nie zostaÅ‚ okreÅ›lony, twórz zgÅ‚oszenia dla tego użytkownika." + +#: html/Tools/Offline.html:65 +msgid "If no queue is specified, create tickets in this queue." +msgstr "JeÅ›li kolejka nie zostaÅ‚a okreÅ›lona, twórz zgÅ‚oszenia w tej kolejce." + +#: bin/rt-crontool:215 +msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." +msgstr "JeÅ›li ta aplikacja zostaÅ‚a zachwiana, obcy lokalny użytkownik mógÅ‚ używać tej aplikacji, aby uzyskać do RT dostÄ™p na prawach administratora" + +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 +msgid "If you've updated anything above, be sure to" +msgstr "JeÅ›li zmodyfikowaÅ‚eÅ› coÅ› powyżej" + +#: lib/RT/Record.pm:933 +msgid "Illegal value for %1" +msgstr "Niedopuszczalna wartość dla %1" + +#: NOT FOUND IN SOURCE +msgid "Image" +msgstr "Image" + +#: lib/RT/Record.pm:936 +msgid "Immutable field" +msgstr "Pole, które nie może być powielane" + +#: NOT FOUND IN SOURCE +msgid "Include disabled classes in listing." +msgstr "UwzglÄ™dnij na liÅ›cie nieaktywne klasy" + +#: NOT FOUND IN SOURCE +msgid "Include disabled custom fields in listing." +msgstr "UwzglÄ™dnij na liÅ›cie nieaktywne pola." + +#: html/Admin/Groups/index.html:65 +msgid "Include disabled groups in listing." +msgstr "UwzglÄ™dnij na liÅ›cie nieaktywne grupy." + +#: html/Admin/Queues/index.html:65 +msgid "Include disabled queues in listing." +msgstr "UwzglÄ™dnij na liÅ›cie nieaktywne kolejki." + +#: html/Admin/Users/index.html:71 +msgid "Include disabled users in search." +msgstr "UwzglÄ™dnij w wyszukiwaniu nieaktywnych użytkowników." + +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 +msgid "Initial Priority" +msgstr "PoczÄ…tkowy priorytet" + +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 +msgid "InitialPriority" +msgstr "PoczÄ…tkowy priorytet" + +#: lib/RT/ScripAction_Overlay.pm:134 +msgid "Input error" +msgstr "Błąd na wejÅ›ciu" + +#: NOT FOUND IN SOURCE +msgid "Interest noted" +msgstr "Votre intĂŠret est notĂŠ" + +#: lib/RT/Ticket_Overlay.pm:3454 +msgid "Internal Error" +msgstr "Błąd wewnÄ™trzny" + +#: lib/RT/Record.pm:305 +#. ($id->{error_message}) +msgid "Internal Error: %1" +msgstr "Błąd wewnÄ™trzny: %1" + +#: lib/RT/Group_Overlay.pm:676 +msgid "Invalid Group Type" +msgstr "NieprawidÅ‚owy typ grupy" + +#: lib/RT/Principal_Overlay.pm:161 +msgid "Invalid Right" +msgstr "NieprawidÅ‚owe uprawnienie" + +#: NOT FOUND IN SOURCE +msgid "Invalid Type" +msgstr "Type invalide" + +#: lib/RT/Record.pm:938 +msgid "Invalid data" +msgstr "NieprawidÅ‚owe dane" + +#: NOT FOUND IN SOURCE +msgid "Invalid owner. Defaulting to 'nobody'." +msgstr "NieprawidÅ‚owy wÅ‚aÅ›ciciel. DomyÅ›lnie 'nikt'" + +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 +msgid "Invalid queue" +msgstr "NieprawidÅ‚owa kolejka" + +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 +msgid "Invalid right" +msgstr "NieprawidÅ‚owe uprawnienie" + +#: lib/RT/Record.pm:280 +#. ($key) +msgid "Invalid value for %1" +msgstr "NieprawidÅ‚owa wartość dla %1" + +#: lib/RT/Record.pm:1597 +msgid "Invalid value for custom field" +msgstr "NieprawidÅ‚owa wartość pola" + +#: lib/RT/Ticket_Overlay.pm:413 +msgid "Invalid value for status" +msgstr "NieprawidÅ‚owy status" + +#: bin/rt-crontool:216 +msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." +msgstr "Bardzo ważne, aby nieuprawnieni użytkownicy nie posiadali uprawnieÅ„ do uruchomienia tej aplikacji." + +#: bin/rt-crontool:217 +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 "Sugeruje siÄ™, aby utworzyć nieuprawnionego użytkownika w odpowiedniej grupie o odpowiednim dostÄ™pie do RT, aby uruchomić tÄ™ aplikacjÄ™" + +#: bin/rt-crontool:188 +msgid "It takes several arguments:" +msgstr "Wymaga kilku argumentów:" + +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Items pending my approval" +msgstr "Pozycje oczekujÄ…ce na moje zatwierdzenie" + +#: lib/RT/Date.pm:437 +msgid "Jan." +msgstr "Sty." + +#: NOT FOUND IN SOURCE +msgid "January" +msgstr "StyczeÅ„" + +#: lib/RT/Group_Overlay.pm:174 +msgid "Join or leave this group" +msgstr "Dołącz albo opuść tÄ™ grupÄ™" + +#: lib/RT/Date.pm:443 +msgid "Jul." +msgstr "Lip." + +#: NOT FOUND IN SOURCE +msgid "July" +msgstr "Lipiec" + +#: html/Ticket/Elements/Tabs:122 +msgid "Jumbo" +msgstr "Wszystko" + +#: lib/RT/Date.pm:442 +msgid "Jun." +msgstr "Cze." + +#: NOT FOUND IN SOURCE +msgid "June" +msgstr "Czerwiec" + +#: NOT FOUND IN SOURCE +msgid "Keyword" +msgstr "SÅ‚owo kluczowe" + +#: NOT FOUND IN SOURCE +msgid "Lang" +msgstr "JÄ™zyk" + +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 +msgid "Language" +msgstr "JÄ™zyk" + +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "" + +#: html/Ticket/Elements/Tabs:96 +msgid "Last" +msgstr "Ostatnie" + +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 +msgid "Last Contact" +msgstr "Ostatnia modyfikacja" + +#: html/Elements/SelectDateType:50 +msgid "Last Contacted" +msgstr "Ostatnio modyfikowane" + +#: NOT FOUND IN SOURCE +msgid "Last Notified" +msgstr "Ostatnio powiadomiony" + +#: html/Elements/SelectDateType:51 +msgid "Last Updated" +msgstr "Ostatnio zaktualizowane" + +#: NOT FOUND IN SOURCE +msgid "LastUpdated" +msgstr "OstAktualiz" + +#: html/Search/Elements/PickBasics:103 +msgid "LastUpdatedBy" +msgstr "OstAktPrzez" + +#: html/Ticket/Elements/ShowBasics:68 +msgid "Left" +msgstr "PozostaÅ‚y" + +#: html/Admin/Users/Modify.html:109 +msgid "Let this user access RT" +msgstr "UdostÄ™pnij temu użytkownikowi RT" + +#: html/Admin/Users/Modify.html:113 +msgid "Let this user be granted rights" +msgstr "Przydziel uprawnienia temu użytkownikowi" + +#: NOT FOUND IN SOURCE +msgid "Limiting owner to %1 %2" +msgstr "Ograniczenie wÅ‚aÅ›ciciela do %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Limiting queue to %1 %2" +msgstr "Ograniczenie kolejki do %1 %2" + +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "" + +#: lib/RT/Record.pm:1292 +msgid "Link already exists" +msgstr "Połączenie już istnieje" + +#: lib/RT/Record.pm:1306 +msgid "Link could not be created" +msgstr "Nie udaÅ‚o siÄ™ utworzyć połączenia" + +#: lib/RT/Record.pm:1312 +#. ($TransString) +msgid "Link created (%1)" +msgstr "Połączenie zostaÅ‚o utworzone (%1)" + +#: lib/RT/Record.pm:1373 +#. ($TransString) +msgid "Link deleted (%1)" +msgstr "Połączenie zostaÅ‚o usuniÄ™te (%1)" + +#: lib/RT/Record.pm:1379 +msgid "Link not found" +msgstr "Połączenie nie zostaÅ‚o odnalezione" + +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 +#. ($Ticket->Id) +msgid "Link ticket #%1" +msgstr "Powiąż zgÅ‚oszenie #%1" + +#: NOT FOUND IN SOURCE +msgid "Link ticket %1" +msgstr "Lier au ticket %1" + +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 +msgid "Links" +msgstr "PowiÄ…zania" + +#: html/Search/Elements/EditSearches:76 +msgid "Load" +msgstr "ZaÅ‚aduj" + +#: html/Search/Elements/EditSearches:74 +msgid "Load saved search:" +msgstr "ZaÅ‚aduj zapisane zapytanie:" + +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "" + +#: html/Admin/Tools/Configuration.html:64 +msgid "Loaded perl modules" +msgstr "ZaÅ‚adowane moduÅ‚y PERL" + +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 +msgid "Location" +msgstr "Lokalizacja" + +#: lib/RT.pm:212 +#. ($RT::LogDir) +msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." +msgstr "Åšcieżka logowania %1 nie zostaÅ‚a odnaleziona lub nie mógÅ‚a być zapisana.\\n Nie udaÅ‚o siÄ™ uruchomić RT" + +#: html/Elements/Header:94 +#. ("<b>".$session{'CurrentUser'}->Name."</b>") +msgid "Logged in as %1" +msgstr "Zalogowano jako %1" + +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 +msgid "Login" +msgstr "Zaloguj siÄ™" + +#: html/Elements/Header:91 +msgid "Logout" +msgstr "Wyloguj siÄ™" + +#: lib/RT/CustomField_Overlay.pm:866 +msgid "Lookup type mismatch" +msgstr "Faire attention aux types diffĂŠrents" + +#: html/Search/Bulk.html:104 +msgid "Make Owner" +msgstr "Wprowadź wÅ‚aÅ›ciciela" + +#: html/Search/Bulk.html:128 +msgid "Make Status" +msgstr "Wprowadź status" + +#: html/Search/Bulk.html:136 +msgid "Make date Due" +msgstr "Wprowadź termin realizacji" + +#: html/Search/Bulk.html:138 +msgid "Make date Resolved" +msgstr "Wprowadź datÄ™ zamkniÄ™cia" + +#: html/Search/Bulk.html:132 +msgid "Make date Started" +msgstr "Wprowadź datÄ™ rozpoczÄ™cia realizacji" + +#: html/Search/Bulk.html:130 +msgid "Make date Starts" +msgstr "Wprowadź datÄ™ rozpoczÄ™cia realizacji" + +#: html/Search/Bulk.html:134 +msgid "Make date Told" +msgstr "Wprowadź datÄ™ wpÅ‚ywu" + +#: html/Search/Bulk.html:124 +msgid "Make priority" +msgstr "Wprowadź priorytet" + +#: html/Search/Bulk.html:126 +msgid "Make queue" +msgstr "Wprowadź kolejkÄ™" + +#: html/Search/Bulk.html:122 +msgid "Make subject" +msgstr "Wprowadź temat" + +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" +msgstr "" + +#: html/Admin/index.html:78 +msgid "Manage custom fields and custom field values" +msgstr "GĂŠrer les champs personnalisĂŠs et leur valeurs" + +#: html/Admin/index.html:69 +msgid "Manage groups and group membership" +msgstr "Administracja grupami i czÅ‚onkami grup" + +#: html/Admin/index.html:85 +msgid "Manage properties and configuration which apply to all queues" +msgstr "Administracja wÅ‚aÅ›ciwoÅ›ciami i konfiguracjÄ…, które dotyczÄ… wszystkich kolejek" + +#: html/Admin/index.html:74 +msgid "Manage queues and queue-specific properties" +msgstr "Administracja kolejkami i specyficznymi wÅ‚aÅ›ciwoÅ›ciami kolejek" + +#: html/Admin/index.html:64 +msgid "Manage users and passwords" +msgstr "Administracja użytkownikami i hasÅ‚ami" + +#: lib/RT/Date.pm:439 +msgid "Mar." +msgstr "Mar." + +#: NOT FOUND IN SOURCE +msgid "March" +msgstr "Marzec" + +#: NOT FOUND IN SOURCE +msgid "May" +msgstr "Maj" + +#: lib/RT/Date.pm:441 +msgid "May." +msgstr "Maj" + +#: lib/RT/Transaction_Overlay.pm:720 +#. ($value) +msgid "Member %1 added" +msgstr "CzÅ‚onek %1 dodany" + +#: lib/RT/Transaction_Overlay.pm:760 +#. ($value) +msgid "Member %1 deleted" +msgstr "CzÅ‚onek %1 usuniÄ™ty" + +#: lib/RT/Group_Overlay.pm:1008 +msgid "Member added" +msgstr "CzÅ‚onek grupy zostaÅ‚ dodany" + +#: lib/RT/Group_Overlay.pm:1170 +msgid "Member deleted" +msgstr "CzÅ‚onek grupy zostaÅ‚ usuniÄ™ty" + +#: lib/RT/Group_Overlay.pm:1174 +msgid "Member not deleted" +msgstr "CzÅ‚onek grupy nie zostaÅ‚ usuniÄ™ty" + +#: html/Elements/SelectLinkType:47 +msgid "Member of" +msgstr "CzÅ‚onek grupy" + +#: NOT FOUND IN SOURCE +msgid "MemberOf" +msgstr "CzÅ‚onekGrupy" + +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 +msgid "Members" +msgstr "CzÅ‚onkowie grup" + +#: lib/RT/Transaction_Overlay.pm:717 +#. ($value) +msgid "Membership in %1 added" +msgstr "CzÅ‚onkowstwo w %1 dodane" + +#: lib/RT/Transaction_Overlay.pm:757 +#. ($value) +msgid "Membership in %1 deleted" +msgstr "CzÅ‚onkowstwo w %1 usuniÄ™te" + +#: html/Admin/Elements/UserTabs:61 +msgid "Memberships" +msgstr "Affiliations" + +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) +msgid "Memberships of the user %1" +msgstr "Affiliations de l'utilisateur %1" + +#: lib/RT/Ticket_Overlay.pm:2849 +msgid "Merge Successful" +msgstr "UdaÅ‚o siÄ™ połączyć" + +#: lib/RT/Ticket_Overlay.pm:2736 +msgid "Merge failed. Couldn't set EffectiveId" +msgstr "Nie udaÅ‚o siÄ™ połączyć. Nie udaÅ‚o siÄ™ ustawić efektywnego Id" + +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 +msgid "Merge into" +msgstr "Połączyć w" + +#: lib/RT/Transaction_Overlay.pm:723 +#. ($value) +msgid "Merged into %1" +msgstr "Połączono z %1" + +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 +msgid "Message" +msgstr "Wiadomość" + +#: lib/RT/Ticket_Overlay.pm:2406 +msgid "Message could not be recorded" +msgstr "Wiadomość nie mogÅ‚a zostać zapisana" + +#: lib/RT/Ticket_Overlay.pm:2409 +msgid "Message recorded" +msgstr "Wiadomość zapisana" + +#: html/Ticket/Elements/PreviewScrips:115 +msgid "Messages about this ticket will not be sent to..." +msgstr "Powiadomienie o tym zgÅ‚oszeniu nie zostanie wysÅ‚ane do..." + +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "" + +#: lib/RT/Record.pm:940 +msgid "Missing a primary key?: %1" +msgstr "BrakujÄ…cy klucz główny?: %1:" + +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 +msgid "Mobile" +msgstr "Tel. komórkowy" + +#: NOT FOUND IN SOURCE +msgid "MobilePhone" +msgstr "Tel. komórkowy" + +#: NOT FOUND IN SOURCE +msgid "Modified" +msgstr "Zmieniony" + +#: NOT FOUND IN SOURCE +msgid "Modify" +msgstr "Zmodyfikuj" + +#: lib/RT/Queue_Overlay.pm:95 +msgid "Modify Access Control List" +msgstr "Modyfikuj ListÄ™ Praw DostÄ™pu" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Field %1" +msgstr "Modyfikuj pole %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 "Modifier les champs personnalisĂŠs qui s'appliquent Ă  tous les %1" + +#: NOT FOUND IN SOURCE +msgid "Modify Custom Fields which apply to all queues" +msgstr "Modyfikuj pola, które dotyczÄ… wszystkich kolejek" + +#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 +msgid "Modify Group Rights" +msgstr "Zmodyfikuj uprawnienia grup" + +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 +msgid "Modify Members" +msgstr "Modyfikuj CzÅ‚onków" + +#: html/User/Delegation.html:58 +msgid "Modify Rights" +msgstr "Zapisz uprawnienia" + +#: lib/RT/Queue_Overlay.pm:98 +msgid "Modify Scrip templates for this queue" +msgstr "Modyfikuj szablony skryptów dla tej kolejki" + +#: lib/RT/Queue_Overlay.pm:101 +msgid "Modify Scrips for this queue" +msgstr "Modyfikuj skrypty dla tej kolejki" + +#: NOT FOUND IN SOURCE +msgid "Modify System ACLS" +msgstr "Modifier ACLs système" + +#: NOT FOUND IN SOURCE +msgid "Modify Template %1" +msgstr "Modyfikuj szablon %1" + +#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 +msgid "Modify User Rights" +msgstr "Zmodyfikuj uprawnienia użytkowników" + +#: html/Admin/Queues/CustomField.html:66 +#. ($QueueObj->Name()) +msgid "Modify a CustomField for queue %1" +msgstr "Modyfikuj pole dla kolejki %1" + +#: NOT FOUND IN SOURCE +msgid "Modify a CustomField which applies to all queues" +msgstr "Modyfikuj pole, które dotyczy wszystkich kolejek" + +#: html/Admin/Queues/Scrip.html:75 +#. ($QueueObj->Name) +msgid "Modify a scrip for queue %1" +msgstr "Modyfikuj skrypt dla kolejki %1" + +#: html/Admin/Global/Scrip.html:69 +msgid "Modify a scrip which applies to all queues" +msgstr "Modyfikuj skrypt, który dotyczy wszystkich kolejek" + +#: NOT FOUND IN SOURCE +msgid "Modify article #%1" +msgstr "Modyfikuj artykuÅ‚ #%1" + +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) +msgid "Modify associated objects for %1" +msgstr "Modifier les objets associĂŠs Ă  %1" + +#: NOT FOUND IN SOURCE +msgid "Modify dates for # %1" +msgstr "Modifier les dates pur n°%1" + +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 +#. ($TicketObj->Id) +msgid "Modify dates for #%1" +msgstr "Modyfikuj daty dla #%1" + +#: html/Ticket/ModifyDates.html:56 +#. ($TicketObj->Id) +msgid "Modify dates for ticket # %1" +msgstr "Modyfikuj daty dla zgÅ‚oszenia # %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 "Modyfikuj globalne uprawnienia grupowe" + +#: html/Admin/Global/GroupRights.html:54 +msgid "Modify global group rights." +msgstr "Modyfikuj globalne uprawnienia grupowe" + +#: NOT FOUND IN SOURCE +msgid "Modify global rights for groups" +msgstr "Modifier les droits globaux des groupes" + +#: NOT FOUND IN SOURCE +msgid "Modify global rights for users" +msgstr "Modifier les droits globaux des utilisateurs" + +#: NOT FOUND IN SOURCE +msgid "Modify global scrips" +msgstr "Modyfikuj globalne skrypty" + +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 +msgid "Modify global user rights" +msgstr "Modyfikuj globalne uprawnienia użytkowników" + +#: html/Admin/Global/UserRights.html:54 +msgid "Modify global user rights." +msgstr "Modyfikuj globalne uprawnienia użytkowników." + +#: lib/RT/Group_Overlay.pm:171 +msgid "Modify group metadata or delete group" +msgstr "Modyfikuj grupowe dane poÅ›rednie lub usuÅ„ grupÄ™" + +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) +msgid "Modify group rights for custom field %1" +msgstr "Modyfikuj uprawnienia grupowe dla pola %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 "Modyfikuj uprawnienia grupowe dla grupy %1" + +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 +#. ($QueueObj->Name) +msgid "Modify group rights for queue %1" +msgstr "Modyfikuj uprawnienia grupowe dla kolejki %1" + +#: lib/RT/Group_Overlay.pm:173 +msgid "Modify membership roster for this group" +msgstr "Modyfikuj listÄ™ czÅ‚onków tej grupy" + +#: lib/RT/System.pm:83 +msgid "Modify one's own RT account" +msgstr "Modyfikuj konto w RT" + +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 +#. ($QueueObj->Name) +msgid "Modify people related to queue %1" +msgstr "Modyfikuj użytkowników powiÄ…zanych z kolejkÄ… %1" + +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 +#. ($Ticket->id) +#. ($Ticket->Id) +msgid "Modify people related to ticket #%1" +msgstr "Modyfikuj użytkowników powiÄ…zanych ze zgÅ‚oszeniem %1" + +#: html/Admin/Queues/Scrips.html:67 +#. ($QueueObj->Name) +msgid "Modify scrips for queue %1" +msgstr "Modyfikuj skrypty dla kolejki %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 "Modyfikuj skrypty, które dotyczÄ… wszystkich kolejek" + +#: 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 "Edytuj szablon %1" + +#: html/Admin/Global/Templates.html:65 +msgid "Modify templates which apply to all queues" +msgstr "Modyfikuj szablony, które dotyczÄ… wszystkich kolejek" + +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 +#. ($Group->Name) +msgid "Modify the group %1" +msgstr "Modyfikuj grupÄ™ %1" + +#: lib/RT/Queue_Overlay.pm:96 +msgid "Modify the queue watchers" +msgstr "Modyfikuj obserwatorów kolejki" + +#: html/Admin/Users/Modify.html:301 +#. ($UserObj->Name) +msgid "Modify the user %1" +msgstr "Modyfikuj użytkownika %1" + +#: html/Ticket/ModifyAll.html:58 +#. ($Ticket->Id) +msgid "Modify ticket # %1" +msgstr "Modyfikuj zgÅ‚oszenie %1" + +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 +#. ($TicketObj->Id) +msgid "Modify ticket #%1" +msgstr "Modyfikuj zgÅ‚oszenie %1" + +#: lib/RT/Queue_Overlay.pm:114 +msgid "Modify tickets" +msgstr "Modyfikuj zgÅ‚oszenia" + +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) +msgid "Modify user rights for custom field %1" +msgstr "Modifier les droits utilisateurs pour le champ personnalisĂŠ %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 "Modyfikuj uprawnienia użytkowników dla grupy %1" + +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 +#. ($QueueObj->Name) +msgid "Modify user rights for queue %1" +msgstr "Modyfikuj uprawnienia użytkowników dla kolejki %1" + +#: NOT FOUND IN SOURCE +msgid "Modify watchers for queue '%1'" +msgstr "Modyfikuj obserwatorów kolejki %1" + +#: lib/RT/Queue_Overlay.pm:95 +msgid "ModifyACL" +msgstr "ModifyACL" + +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "" + +#: lib/RT/Group_Overlay.pm:174 +msgid "ModifyOwnMembership" +msgstr "ModifyOwnMembership" + +#: lib/RT/Queue_Overlay.pm:96 +msgid "ModifyQueueWatchers" +msgstr "ModifyQueueWatchers" + +#: lib/RT/Queue_Overlay.pm:101 +msgid "ModifyScrips" +msgstr "ModifyScrips" + +#: lib/RT/System.pm:83 +msgid "ModifySelf" +msgstr "ModifySelf" + +#: lib/RT/Queue_Overlay.pm:98 +msgid "ModifyTemplate" +msgstr "ModifyTemplate" + +#: lib/RT/Queue_Overlay.pm:114 +msgid "ModifyTicket" +msgstr "ModifyTicket" + +#: lib/RT/Date.pm:413 +msgid "Mon." +msgstr "Pon." + +#: html/Ticket/Elements/ShowRequestor:62 +#. ($name) +msgid "More about %1" +msgstr "WiÄ™cej o %1" + +#: NOT FOUND IN SOURCE +msgid "Move" +msgstr "DĂŠplacer" + +#: html/Admin/Elements/PickCustomFields:83 +msgid "Move down" +msgstr "PrzesuÅ„ w dół" + +#: html/Admin/Elements/PickCustomFields:75 +msgid "Move up" +msgstr "PrzesuÅ„ w górÄ™" + +#: html/Admin/Elements/SelectSingleOrMultiple:48 +msgid "Multiple" +msgstr "Wielokrotny" + +#: lib/RT/User_Overlay.pm:227 +msgid "Must specify 'Name' attribute" +msgstr "Należy okreÅ›lić atrybut 'Nazwa'" + +#: html/SelfService/Elements/MyRequests:70 +#. ($friendly_status) +msgid "My %1 tickets" +msgstr "%1 moich zgÅ‚oszeÅ„" + +#: NOT FOUND IN SOURCE +msgid "My Approvals" +msgstr "Moje potwierdzenia" + +#: html/Approvals/index.html:46 html/Approvals/index.html:47 +msgid "My approvals" +msgstr "Moje potwierdzenia" + +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 +msgid "My saved searches" +msgstr "Moje zapytania" + +#: 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/User/Groups/Modify.html:65 +msgid "Name" +msgstr "Nazwa" + +#: lib/RT/User_Overlay.pm:234 +msgid "Name in use" +msgstr "Używana nazwa" + +#: NOT FOUND IN SOURCE +msgid "Name matches" +msgstr "Nazwa zgadza siÄ™ z" + +#: NOT FOUND IN SOURCE +msgid "Need approval from system administrator" +msgstr "Wymagane potwierdzenie od administratora systemu" + +#: html/Ticket/Elements/ShowDates:73 +msgid "Never" +msgstr "Nigdy" + +#: html/Elements/Quicksearch:51 +msgid "New" +msgstr "Nowe" + +#: NOT FOUND IN SOURCE +msgid "New Article" +msgstr "Nowy artykuÅ‚" + +#: html/Elements/EditLinks:115 +msgid "New Links" +msgstr "Nowe powiÄ…zania" + +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 +msgid "New Password" +msgstr "Nowe hasÅ‚o" + +#: etc/initialdata:332 +msgid "New Pending Approval" +msgstr "Nowe zgÅ‚oszenie oczekujÄ…ce na zatwierdzenie" + +#: html/Ticket/Elements/Tabs:193 +msgid "New Query" +msgstr "Nowe zapytanie" + +#: NOT FOUND IN SOURCE +msgid "New Relationships" +msgstr "Nowe powiÄ…zania" + +#: NOT FOUND IN SOURCE +msgid "New Search" +msgstr "Nowe wyszukiwanie" + +#: NOT FOUND IN SOURCE +msgid "New class" +msgstr "Nowa klasa" + +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 +msgid "New custom field" +msgstr "Nowe pole def. przez użytkownika" + +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 +msgid "New group" +msgstr "Nowa grupa" + +#: html/SelfService/Prefs.html:53 +msgid "New password" +msgstr "Nowe hasÅ‚o" + +#: lib/RT/User_Overlay.pm:817 +msgid "New password notification sent" +msgstr "Nowe hasÅ‚o zostaÅ‚o wysÅ‚ane" + +#: html/Admin/Elements/QueueTabs:95 +msgid "New queue" +msgstr "Nowa kolejka" + +#: NOT FOUND IN SOURCE +msgid "New request" +msgstr "Nouvelle demande" + +#: html/Admin/Elements/SelectRights:65 +msgid "New rights" +msgstr "Nowe uprawnienia" + +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 +msgid "New scrip" +msgstr "Nowy skrypt" + +#: NOT FOUND IN SOURCE +msgid "New search" +msgstr "Nowe wyszukiwanie" + +#: 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 "Nowy szablon" + +#: html/SelfService/Elements/Tabs:69 +msgid "New ticket" +msgstr "Nowe zgÅ‚oszenie" + +#: lib/RT/Ticket_Overlay.pm:2713 +msgid "New ticket doesn't exist" +msgstr "Nowe zgÅ‚oszenie nie istnieje" + +#: html/Admin/Elements/UserTabs:78 +msgid "New user" +msgstr "Nowy użytkownik" + +#: html/Admin/Elements/CreateUserCalled:47 +msgid "New user called" +msgstr "Nowy użytkownik zostaÅ‚ nazwany" + +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 +msgid "New watchers" +msgstr "Nowi obserwatorzy" + +#: NOT FOUND IN SOURCE +msgid "New window setting" +msgstr "Nowe ustawienia okna" + +#: html/Ticket/Elements/Tabs:92 +msgid "Next" +msgstr "NastÄ™pne" + +#: html/Elements/TicketList:104 +msgid "Next Page" +msgstr "NastÄ™pna strona" + +#: NOT FOUND IN SOURCE +msgid "Next page" +msgstr "NastÄ™pna strona" + +#: NOT FOUND IN SOURCE +msgid "NickName" +msgstr "Pseudonim" + +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 +msgid "Nickname" +msgstr "Pseudonim" + +#: NOT FOUND IN SOURCE +msgid "No" +msgstr "Nie" + +#: html/Admin/CustomFields/UserRights.html:145 +msgid "No Class defined" +msgstr "Nie zdefiniowano klasy" + +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 +msgid "No CustomField" +msgstr "Brak pola definiowanego przez użytkownika" + +#: html/Admin/CustomFields/GroupRights.html:103 +msgid "No CustomField defined" +msgstr "Nie zdefiniowano pola def. przez użytkownika" + +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 +msgid "No Group defined" +msgstr "Nie zdefiniowano grupy" + +#: lib/RT/Tickets_Overlay_SQL.pm:477 +msgid "No Query" +msgstr "Brak zapytania" + +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 +msgid "No Queue defined" +msgstr "Nie zdefiniowano kolejki" + +#: bin/rt-crontool:73 +msgid "No RT user found. Please consult your RT administrator.\\n" +msgstr "Nie odnaleziono użytkownika RT. ProszÄ™ skontaktować siÄ™ z administratorem RT.\\n" + +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 +msgid "No Template" +msgstr "Brak szablonu" + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket " +msgstr "Nie okreÅ›lono zgÅ‚oszenia. Odrzucenie zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "No Ticket specified. Aborting ticket modifications\\n\\n" +msgstr "Nie okreÅ›lono zgÅ‚oszenia. Odrzucenie modyfikacji zgÅ‚oszenia\\n\\n" + +#: html/Approvals/Elements/Approve:67 +msgid "No action" +msgstr "Zawieszenie operacji" + +#: lib/RT/Record.pm:935 +msgid "No column specified" +msgstr "Nie okreÅ›lono kolumny" + +#: NOT FOUND IN SOURCE +msgid "No command found\\n" +msgstr "Nie udaÅ‚o siÄ™ wyszukać polecenia\\n" + +#: html/Ticket/Elements/ShowRequestor:68 +msgid "No comment entered about this user" +msgstr "Nie wprowadzono komentarza dotyczÄ…cego tego użytkownika" + +#: NOT FOUND IN SOURCE +msgid "No correspondence attached" +msgstr "Nie załączono korespondencji" + +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 +#. (ref $self) +msgid "No description for %1" +msgstr "Brak opisu dla %1" + +#: lib/RT/Users_Overlay.pm:185 +msgid "No group specified" +msgstr "Nie okreÅ›lono grupy" + +#: html/Admin/Groups/index.html:52 +msgid "No groups matching search criteria found." +msgstr "Aucun groupe trouvĂŠ d'après le critère de recherche." + +#: lib/RT/Ticket_Overlay.pm:2349 +msgid "No message attached" +msgstr "Brak załączonej wiadomoÅ›ci" + +#: lib/RT/User_Overlay.pm:1035 +msgid "No password set" +msgstr "Nie ustawiono hasÅ‚a" + +#: lib/RT/Queue_Overlay.pm:358 +msgid "No permission to create queues" +msgstr "Brak uprawnieÅ„ do tworzenia kolejek" + +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) +msgid "No permission to create tickets in the queue '%1'" +msgstr "Brak uprawnieÅ„ do tworzenia zgÅ‚oszeÅ„ w kolejce '%1'" + +#: lib/RT/User_Overlay.pm:187 +msgid "No permission to create users" +msgstr "Brak uprawnieÅ„ do tworzenia użytkowników" + +#: html/SelfService/Display.html:165 +msgid "No permission to display that ticket" +msgstr "Brak uprawnieÅ„ do wyÅ›wietlenia tego zgÅ‚oszenia" + +#: html/SelfService/Update.html:117 +msgid "No permission to view update ticket" +msgstr "Brak uprawnieÅ„ do przeglÄ…dania aktualizacji zgÅ‚oszenia" + +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 +msgid "No principal specified" +msgstr "Nie okreÅ›lono zarzÄ…dzajÄ…cego" + +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 +msgid "No principals selected." +msgstr "Nie wybrano zarzÄ…dzajÄ…cych." + +#: html/Admin/Queues/index.html:57 +msgid "No queues matching search criteria found." +msgstr "Brak kolejek odpowiadajÄ…cych kryteriom wyszukiwania" + +#: html/Admin/Elements/SelectRights:106 +msgid "No rights found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać uprawnieÅ„" + +#: html/Admin/Elements/SelectRights:53 +msgid "No rights granted." +msgstr "Nie przyznano uprawnieÅ„." + +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 +msgid "No search to operate on." +msgstr "Brak kryteriów wyszukiwania" + +#: html/Elements/RT__Ticket/ColumnMap:134 +msgid "No subject" +msgstr "Brak tematu" + +#: NOT FOUND IN SOURCE +msgid "No ticket id specified" +msgstr "Nie okreÅ›lono numeru zgÅ‚oszenia" + +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 +msgid "No transaction type specified" +msgstr "Nie okreÅ›lono typu transakcji" + +#: NOT FOUND IN SOURCE +msgid "No user or email address specified" +msgstr "Aucun utilisateur ou adresse email spĂŠcifiĂŠ" + +#: html/Admin/Users/index.html:55 +msgid "No users matching search criteria found." +msgstr "Brak użytkowników odpowiadajÄ…cych kryteriom wyszukiwania" + +#: NOT FOUND IN SOURCE +msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" +msgstr "Brak aktualnego użytkownika RT. ProszÄ™ skontaktować siÄ™ z administratorem RT.\\n" + +#: lib/RT/Record.pm:932 +msgid "No value sent to _Set!\\n" +msgstr "Nie wysÅ‚ano wartoÅ›ci do zestawu!\\n" + +#: html/Elements/QuickCreate:61 +msgid "Nobody" +msgstr "Nikt" + +#: lib/RT/Record.pm:937 +msgid "Nonexistant field?" +msgstr "NieistniejÄ…ce pole?" + +#: NOT FOUND IN SOURCE +msgid "Not logged in" +msgstr "Nie udaÅ‚o siÄ™ zalogować" + +#: html/Elements/Header:96 +msgid "Not logged in." +msgstr "Nie udaÅ‚o siÄ™ zalogować." + +#: lib/RT/Date.pm:393 +msgid "Not set" +msgstr "Nie ustawiona" + +#: html/NoAuth/Reminder.html:48 +msgid "Not yet implemented." +msgstr "Jeszcze nie zaimplementowane." + +#: NOT FOUND IN SOURCE +msgid "Not yet implemented...." +msgstr "Jeszcze nie zaimplementowane..." + +#: html/Approvals/Elements/Approve:70 +msgid "Notes" +msgstr "Uwagi" + +#: lib/RT/User_Overlay.pm:820 +msgid "Notification could not be sent" +msgstr "Powiadomienie nie może zostać wysÅ‚ane" + +#: etc/initialdata:101 +msgid "Notify AdminCcs" +msgstr "WyÅ›lij powiadomienie do osób o uprawnieniach AdminCc" + +#: etc/initialdata:97 +msgid "Notify AdminCcs as Comment" +msgstr "WyÅ›lij powiadomienie do osób o uprawnieniach AdminCc jako komentarz" + +#: etc/initialdata:93 etc/upgrade/3.1.17/content:6 +msgid "Notify Ccs" +msgstr "WyÅ›lij powiadomienia do osób o uprawnieniach Cc" + +#: etc/initialdata:89 etc/upgrade/3.1.17/content:2 +msgid "Notify Ccs as Comment" +msgstr "WyÅ›lij powiadomienia do osób o uprawnieniach Cc jako komentarz" + +#: etc/initialdata:128 +msgid "Notify Other Recipients" +msgstr "WyÅ›lij powiadomienie do innych odbiorców" + +#: etc/initialdata:124 +msgid "Notify Other Recipients as Comment" +msgstr "WyÅ›lij powiadomienie do innych odbiorców jako komentarz" + +#: etc/initialdata:85 +msgid "Notify Owner" +msgstr "WyÅ›lij powiadomienie do wÅ‚aÅ›ciciela" + +#: etc/initialdata:81 +msgid "Notify Owner as Comment" +msgstr "WyÅ›lij powiadomienie do wÅ‚aÅ›ciciela jako komentarz" + +#: etc/initialdata:376 +msgid "Notify Owner of their rejected ticket" +msgstr "Powiadom WÅ‚aÅ›ciciela o odrzuceniu jego zgÅ‚oszenia" + +#: etc/initialdata:365 +msgid "Notify Owner of their ticket has been approved by all approvers" +msgstr "Powiadom ZgÅ‚aszajÄ…cego o zatwierdzeniu jego zgÅ‚oszenia przez wszystkich zatwierdzajÄ…cych" + +#: etc/initialdata:353 +msgid "Notify Owner of their ticket has been approved by some approver" +msgstr "Powiadom ZgÅ‚aszajÄ…cego o zatwierdzeniu jego zgÅ‚oszenia przez niektórych zatwierdzajÄ…cych" + +#: etc/initialdata:334 +msgid "Notify Owners and AdminCcs of new items pending their approval" +msgstr "WyÅ›lij powiadomienie do wÅ‚aÅ›cicieli i osób o uprawnieniach AdminCc o nowych pozycjach oczekujÄ…cych na zatwierdzenie przez nich" + +#: etc/initialdata:77 +msgid "Notify Requestors" +msgstr "WyÅ›lij powiadomienie do zgÅ‚aszajÄ…cych" + +#: etc/initialdata:111 +msgid "Notify Requestors and Ccs" +msgstr "WyÅ›lij powiadomienie do zgÅ‚aszajÄ…cych i osób o uprawnieniach Cc" + +#: etc/initialdata:106 +msgid "Notify Requestors and Ccs as Comment" +msgstr "WyÅ›lij powiadomienie do zgÅ‚aszajÄ…cych i osób o uprawnieniach Cc jako komentarz" + +#: etc/initialdata:120 +msgid "Notify Requestors, Ccs and AdminCcs" +msgstr "WyÅ›lij powiadomienie do zgÅ‚aszajÄ…cych oraz osób o uprawnieniach Cc i AdminCc" + +#: etc/initialdata:116 +msgid "Notify Requestors, Ccs and AdminCcs as Comment" +msgstr "WyÅ›lij powiadomienie do zgÅ‚aszajÄ…cych oraz osób o uprawnieniach Cc i AdminCC jako komentarz" + +#: lib/RT/Date.pm:447 +msgid "Nov." +msgstr "Lis." + +#: NOT FOUND IN SOURCE +msgid "November" +msgstr "Listopad" + +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "" + +#: lib/RT/Record.pm:319 +msgid "Object could not be created" +msgstr "Nie udaÅ‚o siÄ™ utworzyć obiektu" + +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 +msgid "Object created" +msgstr "Obiekt zostaÅ‚ utworzony" + +#: lib/RT/Record.pm:121 +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 "Les objets de type %1 ne peuvent avoir de champs personnalisĂŠs" + +#: lib/RT/CustomField_Overlay.pm:901 +msgid "Object type mismatch" +msgstr "Le type d'objet ne correspond pas" + +#: lib/RT/Date.pm:446 +msgid "Oct." +msgstr "Paź." + +#: NOT FOUND IN SOURCE +msgid "October" +msgstr "Październik" + +#: html/Tools/Elements/Tabs:53 +msgid "Offline" +msgstr "Praca zdalna" + +#: html/Tools/Offline.html:49 +msgid "Offline edits" +msgstr "Zdalne modyfikacje" + +#: html/Tools/Offline.html:46 +msgid "Offline upload" +msgstr "ZaÅ‚aduj modyfikowane zdalnie" + +#: html/Elements/SelectDateRelation:56 +msgid "On" +msgstr "dnia" + +#: etc/initialdata:163 +msgid "On Comment" +msgstr "w przypadku komentarza" + +#: etc/initialdata:156 +msgid "On Correspond" +msgstr "w przypadku korespondencji" + +#: etc/initialdata:145 +msgid "On Create" +msgstr "w przypadku rejestracji zgÅ‚oszeÅ„" + +#: etc/initialdata:184 +msgid "On Owner Change" +msgstr "w przypadku zmiany wÅ‚aÅ›ciciela" + +#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 +msgid "On Priority Change" +msgstr "w przypadku zmiany priorytetu" + +#: etc/initialdata:192 +msgid "On Queue Change" +msgstr "w przypadku zmiany kolejki" + +#: etc/initialdata:198 +msgid "On Resolve" +msgstr "w przypadku zamykania zgÅ‚oszeÅ„" + +#: etc/initialdata:169 +msgid "On Status Change" +msgstr "w przypadku zmiany statusu" + +#: etc/initialdata:150 +msgid "On Transaction" +msgstr "w przypadku transakcji" + +#: html/Approvals/Elements/PendingMyApproval:71 +#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") +msgid "Only show approvals for requests created after %1" +msgstr "WyÅ›wietl tylko potwierdzenia dotyczÄ…ce zgÅ‚oszeÅ„ zarejestrowanych po %1" + +#: html/Approvals/Elements/PendingMyApproval:69 +#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") +msgid "Only show approvals for requests created before %1" +msgstr "WyÅ›wietl tylko potwierdzenia dotyczÄ…ce zgÅ‚oszeÅ„ zarejestrowanych przed %1" + +#: html/Elements/Quicksearch:52 +msgid "Open" +msgstr "Otwarte" + +#: NOT FOUND IN SOURCE +msgid "Open Tickets" +msgstr "Otwórz zgÅ‚oszenia" + +#: html/Ticket/Elements/Tabs:159 +msgid "Open it" +msgstr "Otwórz" + +#: NOT FOUND IN SOURCE +msgid "Open requests" +msgstr "Ouvrir les demandes" + +#: html/SelfService/Elements/Tabs:63 +msgid "Open tickets" +msgstr "Otwórz zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Open tickets (from listing) in a new window" +msgstr "Otwórz zgÅ‚oszenia (z listy) w nowym oknie" + +#: NOT FOUND IN SOURCE +msgid "Open tickets (from listing) in another window" +msgstr "Otwórz zgÅ‚oszenia (z listy) w innym oknie" + +#: etc/initialdata:140 +msgid "Open tickets on correspondence" +msgstr "Otwórz zgÅ‚oszenia, które sÄ… w trakcie ustalania (wymiany korespondencji)" + +#: html/Search/Elements/DisplayOptions:56 +msgid "Order by" +msgstr "UporzÄ…dkuj wg" + +#: NOT FOUND IN SOURCE +msgid "Ordering and sorting" +msgstr "PorzÄ…dkowanie i sortowanie" + +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 +msgid "Organization" +msgstr "Firma" + +#: html/Approvals/Elements/Approve:54 +#. ($approving->Id, $approving->Subject) +msgid "Originating ticket: #%1" +msgstr "ZgÅ‚oszenie źródÅ‚owe: #%1" + +#: lib/RT/Transaction_Overlay.pm:611 +msgid "Outgoing email about a comment recorded" +msgstr "Mail sortant suite Ă  l'enregistrement d'un commentaire" +msgstr "Zarejestrowano wychodzÄ…cÄ… wiadomość o komentarzu" + +#: lib/RT/Transaction_Overlay.pm:615 +msgid "Outgoing email recorded" +msgstr "Zarejestrowano wiadomość wychodzÄ…cÄ…" + +#: html/Admin/Queues/Modify.html:90 +msgid "Over time, priority moves toward" +msgstr "Z upÅ‚ywem czasu priorytet wzrasta do" + +#: NOT FOUND IN SOURCE +msgid "Overview" +msgstr "PrzeglÄ…d" + +#: lib/RT/Queue_Overlay.pm:113 +msgid "Own tickets" +msgstr "Moje zgÅ‚oszenia" + +#: lib/RT/Queue_Overlay.pm:113 +msgid "OwnTicket" +msgstr "OwnTicket" + +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 +msgid "Owner" +msgstr "WÅ‚aÅ›ciciel" + +#: NOT FOUND IN SOURCE +msgid "Owner changed from %1 to %2" +msgstr "WÅ‚aÅ›ciciel zmieniÅ‚ siÄ™ z %1 na %2" + +#: lib/RT/Ticket_Overlay.pm:495 +msgid "Owner could not be set." +msgstr "WÅ‚aÅ›ciciel nie mógÅ‚ być ustanowiony." + +#: lib/RT/Transaction_Overlay.pm:661 +#. ($Old->Name , $New->Name) +msgid "Owner forcibly changed from %1 to %2" +msgstr "Wymuszono zmianÄ™ wÅ‚aÅ›ciciela z %1 na %2" + +#: NOT FOUND IN SOURCE +msgid "Owner is" +msgstr "WÅ‚aÅ›cicielem" + +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) +msgid "Page %1 of %2" +msgstr "Strona %1 z %2" + +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 +msgid "Pager" +msgstr "Pager" + +#: NOT FOUND IN SOURCE +msgid "PagerPhone" +msgstr "Nr pager'a" + +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 +msgid "Parents" +msgstr "ZgÅ‚oszenia nadrzÄ™dne" + +#: html/Elements/Login:74 html/User/Prefs.html:105 +msgid "Password" +msgstr "HasÅ‚o" + +#: html/NoAuth/Reminder.html:46 +msgid "Password Reminder" +msgstr "Przypomnienie o haÅ›le" + +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Password too short" +msgstr "HasÅ‚o jest zbyt krótkie" + +#: html/User/Prefs.html:232 +#. (loc_fuzzy($msg)) +msgid "Password: %1" +msgstr "HasÅ‚o: %1" + +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 +msgid "Passwords do not match." +msgstr "HasÅ‚a sÄ… różne." + +#: html/User/Prefs.html:234 +msgid "Passwords do not match. Your password has not been changed" +msgstr "HasÅ‚a sÄ… różne. Twoje hasÅ‚o nie zostaÅ‚o zmienione." + +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 +msgid "People" +msgstr "Osoby" + +#: etc/initialdata:133 +msgid "Perform a user-defined action" +msgstr "Wykonaj operacjÄ™ zdefiniowanÄ… przez użytkownika" + +#: html/Admin/Tools/Configuration.html:94 +msgid "Perl configuration" +msgstr "Konfiguracja PERL" + +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 +msgid "Permission Denied" +msgstr "Odmowa dostÄ™pu" + +#: html/User/Elements/Tabs:56 +msgid "Personal Groups" +msgstr "Grupy prywatne" + +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 +msgid "Personal groups" +msgstr "Grupy prywatne" + +#: html/User/Elements/DelegateRights:58 +msgid "Personal groups:" +msgstr "Grupy prywatne:" + +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 +msgid "Phone numbers" +msgstr "Numery tel." + +#: NOT FOUND IN SOURCE +msgid "Placeholder" +msgstr "Placeholder" + +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 +msgid "Preferences" +msgstr "WÅ‚aÅ›ciwoÅ›ci" + +#: NOT FOUND IN SOURCE +msgid "Prefs" +msgstr "WÅ‚aÅ›ciwoÅ›ci" + +#: lib/RT/Action/Generic.pm:196 +msgid "Prepare Stubbed" +msgstr "Informacja o przygotowaniu zostaÅ‚a wysÅ‚ana do zgÅ‚aszajÄ…cego" + +#: html/Ticket/Elements/Tabs:84 +msgid "Prev" +msgstr "Poprzednie" + +#: html/Elements/TicketList:101 +msgid "Previous Page" +msgstr "Poprzednia strona" + +#: NOT FOUND IN SOURCE +msgid "Previous page" +msgstr "Poprzednia strona" + +#: NOT FOUND IN SOURCE +msgid "Pri" +msgstr "Poprzedni" + +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 +#. ($args{'PrincipalId'}) +msgid "Principal %1 not found." +msgstr "Nie udaÅ‚o siÄ™ wyszukać zarzÄ…dzajÄ…cego %1." + +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 +msgid "Priority" +msgstr "Priorytet" + +#: html/Admin/Queues/Modify.html:86 +msgid "Priority starts at" +msgstr "Priorytet rozpoczyna siÄ™ od" + +#: html/Search/Elements/EditSearches:50 +msgid "Privacy:" +msgstr "Prywatne:" + +#: etc/initialdata:25 +msgid "Privileged" +msgstr "Uprawnieni" + +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 +#. (loc_fuzzy($msg)) +msgid "Privileged status: %1" +msgstr "Uprawniony status: %1" + +#: html/Admin/Users/index.html:102 +msgid "Privileged users" +msgstr "Uprawnieni użytkownicy" + +#: NOT FOUND IN SOURCE +msgid "Projects" +msgstr "Projets" + +#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 +msgid "Pseudogroup for internal use" +msgstr "Grupa do użytku wewnÄ™trznego" + +#: html/Search/Elements/EditQuery:47 +msgid "Query" +msgstr "Zapytanie" + +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 +msgid "Query Builder" +msgstr "Kreator zapytaÅ„" + +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 +msgid "Queue" +msgstr "Kolejka " + +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 +#. ($Queue) +#. ($id) +msgid "Queue %1 not found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać kolejki %1" + +#: NOT FOUND IN SOURCE +msgid "Queue '%1' not found\\n" +msgstr "Nie udaÅ‚o siÄ™ wyszukać kolejki '%1 '\\n" + +#: NOT FOUND IN SOURCE +msgid "Queue Keyword Selections" +msgstr "SĂŠlection des mots clĂŠ de queue" + +#: html/Admin/Queues/Modify.html:64 +msgid "Queue Name" +msgstr "Nazwa kolejki" + +#: NOT FOUND IN SOURCE +msgid "Queue Scrips" +msgstr "Skrypty kolejki" + +#: lib/RT/Queue_Overlay.pm:362 +msgid "Queue already exists" +msgstr "Kolejka już istnieje" + +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 +msgid "Queue could not be created" +msgstr "Nie udaÅ‚o siÄ™ utworzyć kolejki" + +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 +msgid "Queue could not be loaded." +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować kolejki" + +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 +msgid "Queue created" +msgstr "Kolejka zostaÅ‚a utworzona" + +#: NOT FOUND IN SOURCE +msgid "Queue is not specified." +msgstr "Kolejka nie zostaÅ‚a okreÅ›lona." + +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 +msgid "Queue not found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać kolejki" + +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 +msgid "Queues" +msgstr "Kolejki" + +#: html/Elements/Quicksearch:46 +msgid "Quick search" +msgstr "Szybkie wyszukiwanie" + +#: html/Elements/QuickCreate:46 +msgid "Quick ticket creation" +msgstr "Szybkie tworzenie zgÅ‚oszeÅ„" + +#: html/Search/Results.html:83 +msgid "RSS" +msgstr "RSS (XML)" + +#: html/Elements/Login:66 +#. ($RT::VERSION) +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 dla %2" + +#: NOT FOUND IN SOURCE +msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." +msgstr "RT %1 wyprodukowany przez <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 "Administracja RT" + +#: NOT FOUND IN SOURCE +msgid "RT Authentication error." +msgstr "Błąd autoryzacji w RT" + +#: NOT FOUND IN SOURCE +msgid "RT Bounce: %1" +msgstr "Odbicie zgÅ‚oszenia przez RT: %1" + +#: NOT FOUND IN SOURCE +msgid "RT Configuration error" +msgstr "Błąd konfiguracji RT" + +#: NOT FOUND IN SOURCE +msgid "RT Critical error. Message not recorded!" +msgstr "Błąd krytyczny RT. Nie udaÅ‚o siÄ™ zapisać wiadomoÅ›ci!" + +#: html/Elements/Error:65 html/SelfService/Error.html:62 +msgid "RT Error" +msgstr "Błąd RT" + +#: NOT FOUND IN SOURCE +msgid "RT Received mail (%1) from itself." +msgstr "RT otrzymaÅ‚ e-mail (%1) z RT" + +#: NOT FOUND IN SOURCE +msgid "RT Recieved mail (%1) from itself." +msgstr "RT a reçu du courrier (%1) de lui mĂŞme" + +#: NOT FOUND IN SOURCE +msgid "RT Self Service" +msgstr "SamoobsÅ‚uga RT" + +#: NOT FOUND IN SOURCE +msgid "RT Self Service / Closed Tickets" +msgstr "RT Self Service / Tickets rĂŠsolus" + +#: html/Admin/Tools/Configuration.html:73 +msgid "RT Variables" +msgstr "Zmienne RT" + +#: html/index.html:72 html/index.html:75 +msgid "RT at a glance" +msgstr "RT - przeglÄ…d podstawowych informacji" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't authenticate you" +msgstr "Nieudana autoryzacja w RT" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find requestor via its external database lookup" +msgstr "Nie udaÅ‚o siÄ™ wyszukać zgÅ‚aszajÄ…cego przez przejrzenie zewnÄ™trznej bazy" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't find the queue: %1" +msgstr "Nie udaÅ‚o siÄ™ wyszukać kolejki: %1" + +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "RT couldn't validate this PGP signature. \\n" +msgstr "Nie udaÅ‚o siÄ™ zatwierdzić tego podpisu PGP.\\n" + +#: html/Elements/PageLayout:108 +#. ($RT::rtname) +msgid "RT for %1" +msgstr "RT dla %1" + +#: NOT FOUND IN SOURCE +msgid "RT for %1: %2" +msgstr "RT dla %1: %2" + +#: NOT FOUND IN SOURCE +msgid "RT has proccessed your commands" +msgstr "RT wykonaÅ‚ twoje polecenia" + +#: 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 © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Jest dystrybuowane jako <a href=\"http://www.gnu.org/copyleft/gpl.html\">Wersja 2 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 est © Copyright 1996-2002 Jesse Vincent <jesse@bestpractical.com>. DistribuĂŠ sous <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 de la licence gĂŠnĂŠrale GNU.</a>" + +#: NOT FOUND IN SOURCE +msgid "RT thinks this message may be a bounce" +msgstr "Wg RT ta wiadomość może być informacjÄ… odbitÄ…" + +#: NOT FOUND IN SOURCE +msgid "RT will process this message as if it were unsigned.\\n" +msgstr "RT bÄ™dzie postÄ™powaÅ‚ z tÄ… wiadomoÅ›ciÄ… tak, jakby byÅ‚a niepodpisana.\\n" + +#: 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 "Email w RT wymaga autoryzacji podpisu PGP. Albo nie podpisaÅ‚eÅ› wiadomoÅ›ci, albo Twój podpis nie może być zweryfikowany." + +#: NOT FOUND IN SOURCE +msgid "RTFM Error" +msgstr "Błąd RTFM" + +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 +msgid "Real Name" +msgstr "ImiÄ™ i nazwisko" + +#: NOT FOUND IN SOURCE +msgid "RealName" +msgstr "RealName" + +#: lib/RT/Transaction_Overlay.pm:714 +#. ($value) +msgid "Reference by %1 added" +msgstr "PowiÄ…zanie %1 dodane" + +#: lib/RT/Transaction_Overlay.pm:754 +#. ($value) +msgid "Reference by %1 deleted" +msgstr "PowiÄ…zanie %1 usuniÄ™te" + +#: lib/RT/Transaction_Overlay.pm:711 +#. ($value) +msgid "Reference to %1 added" +msgstr "PowiÄ…zanie z %1 dodane" + +#: lib/RT/Transaction_Overlay.pm:751 +#. ($value) +msgid "Reference to %1 deleted" +msgstr "PowiÄ…zanie z %1 usuniÄ™te" + +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 +msgid "Referred to by" +msgstr "ZgÅ‚oszenia powiÄ…zane" + +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 +msgid "Refers to" +msgstr "PowiÄ…zane z" + +#: NOT FOUND IN SOURCE +msgid "RefersTo" +msgstr "PowiÄ…zaneZ" + +#: NOT FOUND IN SOURCE +msgid "Refine" +msgstr "Popraw" + +#: NOT FOUND IN SOURCE +msgid "Refine search" +msgstr "Wprowadź szczegółowe kryteria wyszukiwania" + +#: html/Elements/Refresh:57 +#. ($value/60) +msgid "Refresh this page every %1 minutes." +msgstr "OdÅ›wieżaj tÄ™ stronÄ™ co %1 minut." + +#: NOT FOUND IN SOURCE +msgid "Relationships" +msgstr "PowiÄ…zania" + +#: html/Search/Bulk.html:116 +msgid "Remove AdminCc" +msgstr "UsuÅ„ AdminCc" + +#: html/Search/Bulk.html:112 +msgid "Remove Cc" +msgstr "UsuÅ„ Cc" + +#: html/Search/Bulk.html:108 +msgid "Remove Requestor" +msgstr "UsuÅ„ zgÅ‚aszajÄ…cego" + +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 +msgid "Reply" +msgstr "Odpowiedz" + +#: html/Admin/Queues/Modify.html:72 +msgid "Reply Address" +msgstr "Adres odpowiedzi" + +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 +msgid "Reply to requestors" +msgstr "Odpowiedz zgÅ‚aszajÄ…cym" + +#: lib/RT/Queue_Overlay.pm:111 +msgid "Reply to tickets" +msgstr "Odpowiedz na zgÅ‚oszenia" + +#: lib/RT/Queue_Overlay.pm:111 +msgid "ReplyToTicket" +msgstr "ReplyToTicket" + +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 +msgid "Requestor" +msgstr "ZgÅ‚aszajÄ…cy" + +#: NOT FOUND IN SOURCE +msgid "Requestor email address" +msgstr "Adres e-mail zgÅ‚aszajÄ…cego" + +#: NOT FOUND IN SOURCE +msgid "Requestor(s)" +msgstr "ZgÅ‚aszajÄ…cy" + +#: NOT FOUND IN SOURCE +msgid "RequestorAddresses" +msgstr "AdresZgÅ‚aszajÄ…cego" + +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 +msgid "Requestors" +msgstr "ZgÅ‚aszajÄ…cy" + +#: html/Admin/Queues/Modify.html:96 +msgid "Requests should be due in" +msgstr "ZgÅ‚oszenia powinny być zrealizowane w ciÄ…gu" + +#: lib/RT/Attribute_Overlay.pm:146 +#. ('Object') +msgid "Required parameter '%1' not specified" +msgstr "Wymagany atrybut '%1' nie zostaÅ‚ okreÅ›lony" + +#: html/Elements/Submit:104 +msgid "Reset" +msgstr "Zresetuj" + +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 +msgid "Residence" +msgstr "Tel. domowy" + +#: html/Ticket/Elements/Tabs:155 +msgid "Resolve" +msgstr "Zamknij" + +#: html/Ticket/Update.html:154 +#. ($TicketObj->id, $TicketObj->Subject) +msgid "Resolve ticket #%1 (%2)" +msgstr "Zamknij zgÅ‚oszenie nr %1 (%2)" + +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 +msgid "Resolved" +msgstr "ZamkniÄ™te" + +#: NOT FOUND IN SOURCE +msgid "Response to requestors" +msgstr "Odpowiedź dla zgÅ‚aszajÄ…cych" + +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 +msgid "Results" +msgstr "Wyniki" + +#: NOT FOUND IN SOURCE +msgid "Results per page" +msgstr "Wyniki - liczba na stronÄ™" + +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 +msgid "Retype Password" +msgstr "Wpisz ponownie hasÅ‚o" + +#: html/Search/Elements/EditSearches:61 +msgid "Revert" +msgstr "Przywróć" + +#: NOT FOUND IN SOURCE +msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" +msgstr "Uprawnienie %1 nie zostaÅ‚o wyszukane dla %2 %3 w zakresie %4 (%5)\\n" + +#: lib/RT/ACE_Overlay.pm:631 +msgid "Right Delegated" +msgstr "Uprawnienie zostaÅ‚o przekazane" + +#: lib/RT/ACE_Overlay.pm:321 +msgid "Right Granted" +msgstr "Uprawnienie zostaÅ‚o przyznane" + +#: lib/RT/ACE_Overlay.pm:179 +msgid "Right Loaded" +msgstr "Uprawnienie zostaÅ‚o zaÅ‚adowane" + +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 +msgid "Right could not be revoked" +msgstr "Uprawnienie nie może być odebrane" + +#: html/User/Delegation.html:85 +msgid "Right not found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać uprawnienia" + +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 +msgid "Right not loaded." +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować uprawnienia" + +#: lib/RT/ACE_Overlay.pm:713 +msgid "Right revoked" +msgstr "Uprawnienie zostaÅ‚o odebrane" + +#: html/Admin/Elements/UserTabs:67 +msgid "Rights" +msgstr "Uprawnienia" + +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 +#. ($object_type) +msgid "Rights could not be granted for %1" +msgstr "Nie udaÅ‚o siÄ™ przydzielić uprawnieÅ„ dla %1" + +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 +#. ($object_type) +msgid "Rights could not be revoked for %1" +msgstr "Nie udaÅ‚o siÄ™ odebrać uprawnieÅ„ dla %1" + +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 +msgid "Roles" +msgstr "Role" + +#: NOT FOUND IN SOURCE +msgid "RootApproval" +msgstr "RootApproval" + +#: html/Search/Elements/DisplayOptions:83 +msgid "Rows per page" +msgstr "Linii na stronie" + +#: lib/RT/Date.pm:418 +msgid "Sat." +msgstr "Sob." + +#: html/Search/Elements/EditSearches:70 +msgid "Save" +msgstr "Zapisz" + +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 +msgid "Save Changes" +msgstr "Zapisz zmiany" + +#: html/User/Prefs.html:179 +msgid "Save Preferences" +msgstr "Zapisz" + +#: html/Ticket/Elements/PreviewScrips:124 +msgid "Save changes" +msgstr "Zapisz zmiany" + +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "" + +#: html/Search/Elements/EditSearches:46 +msgid "Saved searches" +msgstr "Zapisane zapytania" + +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) +#. ($id) +#. ($ARGS{'id'}) +msgid "Scrip #%1" +msgstr "Skrypt #%1" + +#: lib/RT/Scrip_Overlay.pm:205 +msgid "Scrip Created" +msgstr "Skrypt zostaÅ‚ utworzony" + +#: html/Admin/Elements/EditScrip:52 +msgid "Scrip Fields" +msgstr "Atrybuty skryptu" + +#: html/Admin/Elements/EditScrips:107 +msgid "Scrip deleted" +msgstr "Skrypt zostaÅ‚ usuniÄ™ty" + +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 +msgid "Scrips" +msgstr "Skrypty" + +#: NOT FOUND IN SOURCE +msgid "Scrips for %1\\n" +msgstr "Skrypty dla %1\\n" + +#: html/Admin/Queues/Scrips.html:55 +msgid "Scrips which apply to all queues" +msgstr "Skrypty, które dotyczÄ… wszystkich kolejek" + +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 +msgid "Search" +msgstr "Wyszukaj" + +#: NOT FOUND IN SOURCE +msgid "Search Criteria" +msgstr "Kryteria wyszukiwania" + +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "" + +# nie jestem pewien! +#: html/Approvals/Elements/PendingMyApproval:60 +msgid "Search for approvals" +msgstr "Wyszukaj oczekujÄ…ce potwierdzenia" + +#: NOT FOUND IN SOURCE +msgid "Search for articles" +msgstr "Wyszukaj artykuÅ‚y" + +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Searches can't be associated with that kind of object" +msgstr "Les recherches ne peuvent ĂŞtre associĂŠes Ă  ce type d'objet" + +#: bin/rt-crontool:213 +msgid "Security:" +msgstr "Zabezpieczenie:" + +#: lib/RT/CustomField_Overlay.pm:100 +msgid "See custom fields" +msgstr "Voir les champs personnalisĂŠs" + +#: lib/RT/Queue_Overlay.pm:107 +msgid "See exact outgoing email messages and their recipeients" +msgstr "Zobacz dosÅ‚owne wiadomoÅ›ci wychodzÄ…ce i ich odbiorców" + +#: lib/RT/Queue_Overlay.pm:105 +msgid "See ticket private commentary" +msgstr "Zobacz prywatne komentarze do zgÅ‚oszenia" + +#: lib/RT/Queue_Overlay.pm:104 +msgid "See ticket summaries" +msgstr "Zobacz podsumowania zgÅ‚oszeÅ„" + +#: lib/RT/CustomField_Overlay.pm:100 +msgid "SeeCustomField" +msgstr "DostDoPólUżytk" + +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 +msgid "SeeQueue" +msgstr "SeeQueue" + +#: NOT FOUND IN SOURCE +msgid "Select" +msgstr "Selectionner" + +#: NOT FOUND IN SOURCE +msgid "Select a Class" +msgstr "Wybierz klasÄ™" + +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 +msgid "Select a Custom Field" +msgstr "Wybierz pole definiowane przez użytkownika" + +#: NOT FOUND IN SOURCE +msgid "Select a Custom Fields" +msgstr "Wybierz pole definiowane przez użytkownika" + +#: html/Admin/Groups/index.html:78 +msgid "Select a group" +msgstr "Wybierz grupÄ™" + +#: html/Admin/Queues/index.html:54 +msgid "Select a queue" +msgstr "Wybierz kolejkÄ™" + +#: 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 "Wybierz użytkownika" + +#: NOT FOUND IN SOURCE +msgid "Select class" +msgstr "Wybierz klasÄ™" + +#: html/Admin/Elements/CustomFieldTabs:90 +msgid "Select custom field" +msgstr "Wybierz pole" + +#: 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 "Wybierz grupÄ™" + +#: lib/RT/CustomField_Overlay.pm:59 +msgid "Select multiple values" +msgstr "Wybór wielu wartoÅ›ci" + +#: lib/RT/CustomField_Overlay.pm:60 +msgid "Select one value" +msgstr "Wybór jednej wartoÅ›ci" + +#: html/Admin/Elements/QueueTabs:92 +msgid "Select queue" +msgstr "Wybierz kolejkÄ™" + +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 +msgid "Select scrip" +msgstr "Wybierz skrypt" + +#: 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 "Wybierz szablon" + +#: lib/RT/CustomField_Overlay.pm:61 +msgid "Select up to %1 values" +msgstr "Choisir un maximum de %1 valeurs " + +#: html/Admin/Elements/UserTabs:75 +msgid "Select user" +msgstr "Wybierz użytkownika" + +#: NOT FOUND IN SOURCE +msgid "SelectMultiple" +msgstr "Wybór wielu wartoÅ›ci" + +#: NOT FOUND IN SOURCE +msgid "SelectSingle" +msgstr "Wybór jednej wartoÅ›ci" + +#: html/Admin/Elements/EditCustomFields:58 +msgid "Selected Custom Fields" +msgstr "Champs personnalisĂŠs sĂŠlectionnĂŠs" + +#: html/Admin/CustomFields/Objects.html:59 +msgid "Selected objects" +msgstr "Objets sĂŠlectionnĂŠs" + +#: NOT FOUND IN SOURCE +msgid "Self Service" +msgstr "SamoobsÅ‚uga" + +#: etc/initialdata:121 +msgid "Send mail to all watchers" +msgstr "WyÅ›lij e-mail do wszystkich obserwatorów" + +#: etc/initialdata:117 +msgid "Send mail to all watchers as a \"comment\"" +msgstr "WyÅ›lij e-mail do wszystkich obserwatorów jako \"komentarz\"" + +#: etc/initialdata:112 +msgid "Send mail to requestors and Ccs" +msgstr "WyÅ›lij e-mail do zgÅ‚aszajÄ…cych i osób o uprawnieniach Cc"" + +#: etc/initialdata:107 +msgid "Send mail to requestors and Ccs as a comment" +msgstr "WyÅ›lij e-mail do zgÅ‚aszajÄ…cych i osób o uprawnieniach Cc jako komentarz" + +#: etc/initialdata:78 +msgid "Sends a message to the requestors" +msgstr "WysyÅ‚a wiadomość do zgÅ‚aszajÄ…cych" + +#: etc/initialdata:125 etc/initialdata:129 +msgid "Sends mail to explicitly listed Ccs and Bccs" +msgstr "WysyÅ‚a e-mail do osób wymienionych w Cc i Bcc " + +#: etc/initialdata:94 etc/upgrade/3.1.17/content:7 +msgid "Sends mail to the Ccs" +msgstr "WysyÅ‚a e-mail do użytkowników o uprawnieniach CC" + +#: etc/initialdata:90 etc/upgrade/3.1.17/content:3 +msgid "Sends mail to the Ccs as a comment" +msgstr "WysyÅ‚a e-mail jako komentarz do użytkowników o uprawnieniach CC" + +#: etc/initialdata:102 +msgid "Sends mail to the administrative Ccs" +msgstr "WysyÅ‚a e-mail do osób wymienionych w administracyjnym Cc" + +#: etc/initialdata:98 +msgid "Sends mail to the administrative Ccs as a comment" +msgstr "WysyÅ‚a e-mail do osób wymienionych w administracyjnym Cc jako komentarz" + +#: etc/initialdata:82 etc/initialdata:86 +msgid "Sends mail to the owner" +msgstr "WysyÅ‚a e-mail do wÅ‚aÅ›ciciela" + +#: lib/RT/Date.pm:445 +msgid "Sep." +msgstr "Wrz." + +#: NOT FOUND IN SOURCE +msgid "Seperate multiple URLs with spaces" +msgstr "Oddziel spacjami adresy URL" + +#: NOT FOUND IN SOURCE +msgid "September" +msgstr "WrzesieÅ„" + +#: html/Ticket/Elements/ShowTransaction:150 +msgid "Show" +msgstr "Pokaż" + +#: html/Approvals/index.html:52 +msgid "Show Approvals" +msgstr "Pokazuj potwierdzenia" + +#: html/Search/Elements/EditFormat:56 +msgid "Show Columns" +msgstr "WyÅ›wietlane kolumny" + +#: html/Ticket/Elements/Tabs:201 +msgid "Show Results" +msgstr "WyÅ›wietl wyniki" + +#: NOT FOUND IN SOURCE +msgid "Show advanced search options..." +msgstr "WyÅ›wietl zaawansowane opcje wyszukiwania..." + +#: html/Approvals/Elements/PendingMyApproval:65 +msgid "Show approved requests" +msgstr "WyÅ›wietl zatwierdzone zgÅ‚oszenia" + +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 +msgid "Show basics" +msgstr "WyÅ›wietl podstawowe informacje" + +#: html/Approvals/Elements/PendingMyApproval:66 +msgid "Show denied requests" +msgstr "WyÅ›wietl odrzucone zgÅ‚oszenia" + +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 +msgid "Show details" +msgstr "WyÅ›wietl szczegóły" + +#: html/Approvals/Elements/PendingMyApproval:64 +msgid "Show pending requests" +msgstr "WyÅ›wietl zgÅ‚oszenia oczekujÄ…ce na zatwierdzenie" + +#: html/Approvals/Elements/PendingMyApproval:67 +msgid "Show requests awaiting other approvals" +msgstr "WyÅ›wietl zgÅ‚oszenia oczekujÄ…ce na pozostaÅ‚e zatwierdzenia" + +#: NOT FOUND IN SOURCE +msgid "Show ticket private commentary" +msgstr "WyÅ›wietl prywatny komentarz do zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Show ticket summaries" +msgstr "WyÅ›wietl streszczenia zgÅ‚oszeÅ„" + +#: lib/RT/Queue_Overlay.pm:94 +msgid "ShowACL" +msgstr "ShowACL" + +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:107 +msgid "ShowOutgoingEmail" +msgstr "PodglÄ…dPocztyWychodz" + +#: lib/RT/Group_Overlay.pm:176 +msgid "ShowSavedSearches" +msgstr "PodglÄ…dZapytaÅ„Zapis" + +#: lib/RT/Queue_Overlay.pm:103 +msgid "ShowScrips" +msgstr "ShowScrips" + +#: lib/RT/Queue_Overlay.pm:100 +msgid "ShowTemplate" +msgstr "ShowTemplate" + +#: lib/RT/Queue_Overlay.pm:104 +msgid "ShowTicket" +msgstr "ShowTicket" + +#: lib/RT/Queue_Overlay.pm:105 +msgid "ShowTicketComments" +msgstr "ShowTicketComments" + +#: lib/RT/Queue_Overlay.pm:108 +msgid "Sign up as a ticket Requestor or ticket or queue Cc" +msgstr "Podpisz jako zgÅ‚aszajÄ…cy lub osoba o uprawnieniach Cc dla zgÅ‚oszenia lub kolejki" + +#: lib/RT/Queue_Overlay.pm:109 +msgid "Sign up as a ticket or queue AdminCc" +msgstr "Podpisz jako osoba o uprawnieniach AdminCc dla zgÅ‚oszenia lub kolejki" + +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 +msgid "Signature" +msgstr "Podpis" + +#: NOT FOUND IN SOURCE +msgid "Signed in as %1" +msgstr "Wpisany jako %1" + +#: html/Admin/Elements/SelectSingleOrMultiple:47 +msgid "Single" +msgstr "Pojedynczy" + +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 +msgid "Skip Menu" +msgstr "PomiÅ„ menu" + +#: html/Search/Elements/EditFormat:78 +msgid "Small" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 +msgid "Sort" +msgstr "Sortuj" + +#: NOT FOUND IN SOURCE +msgid "Sort Order" +msgstr "Kryterium sortowania" + +#: NOT FOUND IN SOURCE +msgid "Sort key" +msgstr "Klucz sortowania" + +#: NOT FOUND IN SOURCE +msgid "Sort results by" +msgstr "Sortuj wyniki wg" + +#: NOT FOUND IN SOURCE +msgid "SortOrder" +msgstr "SortOrder" + +#: html/Admin/Elements/EditScrip:87 +msgid "Stage" +msgstr "Etap" + +#: NOT FOUND IN SOURCE +msgid "Stalled" +msgstr "Zamrożone" + +#: NOT FOUND IN SOURCE +msgid "Start page" +msgstr "Strona powitalna" + +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 +msgid "Started" +msgstr "Realizacja rozpoczÄ™ta" + +#: NOT FOUND IN SOURCE +msgid "Started date '%1' could not be parsed" +msgstr "Data rozpoczÄ™cia realizacji '%1' nie może być rozpoznana" + +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 +msgid "Starts" +msgstr "PoczÄ…tek realizacji" + +#: NOT FOUND IN SOURCE +msgid "Starts By" +msgstr "PoczÄ…tek realizacji od" + +#: NOT FOUND IN SOURCE +msgid "Starts date '%1' could not be parsed" +msgstr "Data rozpoczÄ™cia realizacji '%1' nie może być rozpoznana" + +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 +msgid "State" +msgstr "Województwo" + +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 +msgid "Status" +msgstr "Status " + +#: etc/initialdata:309 +msgid "Status Change" +msgstr "Zmiana statusu" + +#: NOT FOUND IN SOURCE +msgid "Status changed from %1 to %2" +msgstr "Status zmieniony z %1 na %2" + +#: NOT FOUND IN SOURCE +msgid "StatusChange" +msgstr "Zmiana statusu" + +#: html/Ticket/Elements/Tabs:170 +msgid "Steal" +msgstr "Przejmij" + +#: lib/RT/Queue_Overlay.pm:118 +msgid "Steal tickets" +msgstr "Przejmij zgÅ‚oszenia" + +#: lib/RT/Queue_Overlay.pm:118 +msgid "StealTicket" +msgstr "PrzejecieZgloszen" + +#: lib/RT/Transaction_Overlay.pm:667 +#. ($Old->Name) +msgid "Stolen from %1" +msgstr "PrzejÄ™te od %1" + +#: NOT FOUND IN SOURCE +msgid "Stolen from %1 " +msgstr "PrzejÄ™te od %1 " + +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 +msgid "Subject" +msgstr "Temat" + +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 +#. ($self->Data) +msgid "Subject changed to %1" +msgstr "Temat zostaÅ‚ zmieniony na %1" + +#: html/Elements/Submit:97 +msgid "Submit" +msgstr "Zastosuj" + +#: NOT FOUND IN SOURCE +msgid "Submit Query" +msgstr "Wykonaj zapytanie" + +#: NOT FOUND IN SOURCE +msgid "Submit Workflow" +msgstr "Wprowadź obieg (Workflow)" + +#: lib/RT/Group_Overlay.pm:782 +msgid "Succeeded" +msgstr "PowiodÅ‚o siÄ™" + +#: NOT FOUND IN SOURCE +msgid "Summary" +msgstr "Streszczenie" + +#: NOT FOUND IN SOURCE +msgid "Summary matches" +msgstr "Streszczenie zgadza siÄ™ z" + +#: lib/RT/Date.pm:419 +msgid "Sun." +msgstr "Nie." + +#: lib/RT/System.pm:76 +msgid "SuperUser" +msgstr "SuperUser" + +#: html/User/Elements/DelegateRights:98 +msgid "System" +msgstr "System" + +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 +msgid "System Configuration" +msgstr "Konfiguracja systemu" + +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 +msgid "System Error" +msgstr "Błąd systemowy" + +#: NOT FOUND IN SOURCE +msgid "System Error. Right not granted." +msgstr "Erreur Système. Droit non dĂŠlĂŠguĂŠ." + +#: NOT FOUND IN SOURCE +msgid "System Error. right not granted" +msgstr "Erreur Système. Droit non dĂŠlĂŠguĂŠ" + +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" +msgstr "" + +#: html/Admin/Tools/index.html:47 +msgid "System Tools" +msgstr "NarzÄ™dzia systemowe" + +#: lib/RT/ACE_Overlay.pm:634 +msgid "System error. Right not delegated." +msgstr "Błąd systemowy. Uprawnienie nie zostaÅ‚o przekazane" + +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 +msgid "System error. Right not granted." +msgstr "Błąd systemowy. Uprawnienie nie zostaÅ‚o przydzielone" + +#: NOT FOUND IN SOURCE +msgid "System error. Unable to grant rights." +msgstr "Erreur Système. Imposible de dĂŠlĂŠguer les droits" + +#: 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 "Grupy systemowe" + +#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 +msgid "SystemRolegroup for internal use" +msgstr "Grupa ról systemowych do użytku wewnÄ™trznego" + +#: lib/RT/CurrentUser.pm:358 +msgid "TEST_STRING" +msgstr "TEST_STRING" + +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 +msgid "Take" +msgstr "Przyjmij" + +#: lib/RT/Queue_Overlay.pm:116 +msgid "Take tickets" +msgstr "Przyjmij zgÅ‚oszenia" + +#: lib/RT/Queue_Overlay.pm:116 +msgid "TakeTicket" +msgstr "PrzyjÄ™cieZgÅ‚oszeÅ„" + +#: lib/RT/Transaction_Overlay.pm:652 +msgid "Taken" +msgstr "PrzyjÄ™ty" + +#: NOT FOUND IN SOURCE +msgid "Task" +msgstr "Tâche" + +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 +msgid "Template" +msgstr "Szablon" + +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 +#. ($TemplateObj->Id()) +msgid "Template #%1" +msgstr "Szablon #%1" + +#: html/Admin/Elements/EditTemplates:110 +msgid "Template deleted" +msgstr "Szablon zostaÅ‚ usuniÄ™ty" + +#: lib/RT/Scrip_Overlay.pm:181 +msgid "Template not found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać szablonu" + +#: NOT FOUND IN SOURCE +msgid "Template not found\\n" +msgstr "Nie udaÅ‚o siÄ™ wyszukać szablonu\\n" + +#: lib/RT/Template_Overlay.pm:376 +msgid "Template parsed" +msgstr "Szablon nie zostaÅ‚ rozpoznany" + +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 +msgid "Templates" +msgstr "Szablony" + +#: NOT FOUND IN SOURCE +msgid "Templates for %1\\n" +msgstr "Szablony dla %1\\n" + +#: NOT FOUND IN SOURCE +msgid "Text" +msgstr "Texte" + +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 +msgid "That is already the current value" +msgstr "To już jest aktualna wartość" + +#: lib/RT/CustomField_Overlay.pm:407 +msgid "That is not a value for this custom field" +msgstr "To nie jest wartość tego pola" + +#: lib/RT/Ticket_Overlay.pm:1955 +msgid "That is the same value" +msgstr "To jest ta sama wartość" + +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 +msgid "That principal already has that right" +msgstr "Ten użytkownik/ grupa już dysponujÄ… tym prawem" + +#: lib/RT/Queue_Overlay.pm:750 +#. ($args{'Type'}) +msgid "That principal is already a %1 for this queue" +msgstr "Ten zarzÄ…dzajÄ…cy jest już %1 dla tej kolejki" + +#: lib/RT/Ticket_Overlay.pm:1396 +#. ($self->loc($args{'Type'})) +msgid "That principal is already a %1 for this ticket" +msgstr "Ten zarzÄ…dzajÄ…cy jest już %1 dla tego zgÅ‚oszenia" + +#: lib/RT/Queue_Overlay.pm:849 +#. ($args{'Type'}) +msgid "That principal is not a %1 for this queue" +msgstr "Ten zarzÄ…dzajÄ…cy nie jest %1 dla tej kolejki" + +#: NOT FOUND IN SOURCE +msgid "That principal is not a %1 for this ticket" +msgstr "Ten zarzÄ…dzajÄ…cy nie jest %1 dla tego zgÅ‚oszenia" + +#: lib/RT/Ticket_Overlay.pm:1951 +msgid "That queue does not exist" +msgstr "Ta kolejka nie istnieje" + +#: lib/RT/Ticket_Overlay.pm:3189 +msgid "That ticket has unresolved dependencies" +msgstr "To zgÅ‚oszenie ma niewykonane zgÅ‚oszenia zależne" + +#: NOT FOUND IN SOURCE +msgid "That user already has that right" +msgstr "Ten użytkownik już posiada to uprawnienie" + +#: lib/RT/Ticket_Overlay.pm:2993 +msgid "That user already owns that ticket" +msgstr "Ten użytkownik już jest wÅ‚aÅ›cicielem tego zgÅ‚oszenia" + +#: lib/RT/Ticket_Overlay.pm:2965 +msgid "That user does not exist" +msgstr "Taki użytkownik nie istnieje" + +#: lib/RT/User_Overlay.pm:390 +msgid "That user is already privileged" +msgstr "Ten użytkownik już posiada to uprawnienie" + +#: lib/RT/User_Overlay.pm:411 +msgid "That user is already unprivileged" +msgstr "Ten użytkownik nie jest uprawniony" + +#: lib/RT/User_Overlay.pm:403 +msgid "That user is now privileged" +msgstr "Ten użytkownik jest już uprawniony" + +#: lib/RT/User_Overlay.pm:424 +msgid "That user is now unprivileged" +msgstr "Ten użytkownik jest teraz nieuprawniony" + +#: NOT FOUND IN SOURCE +msgid "That user is now unprivilegedileged" +msgstr "Cet utilisateur a perdu ses droits" + +#: lib/RT/Ticket_Overlay.pm:2986 +msgid "That user may not own tickets in that queue" +msgstr "Ten użytkownik może nie posiadać zgÅ‚oszeÅ„ w tej kolejce" + +#: lib/RT/Link_Overlay.pm:234 +msgid "That's not a numerical id" +msgstr "To nie jest id typu liczbowego" + +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 +msgid "The Basics" +msgstr "Podstawowe informacje" + +#: lib/RT/ACE_Overlay.pm:113 +msgid "The CC of a ticket" +msgstr "CC zgÅ‚oszenia" + +#: lib/RT/ACE_Overlay.pm:114 +msgid "The administrative CC of a ticket" +msgstr "Administracyjne CC zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "The comment has been recorded" +msgstr "Komentarz zostaÅ‚ zapisany" + +#: bin/rt-crontool:223 +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 "NastÄ™pujÄ…ce polecenie wyszuka wszystkie aktywne zgÅ‚oszenia w kolejce głównej i ustawi ich priorytet na 99, jeÅ›li nie zostaÅ‚y zmodyfikowane w ciÄ…gu ostatnich 4 godzin:" + +#: NOT FOUND IN SOURCE +msgid "The following commands were not proccessed:\\n\\n" +msgstr "NastÄ™pujÄ…ce polecenia nie zostaÅ‚y wykonane:\\n\\n" + +#: lib/RT/Record.pm:934 +msgid "The new value has been set." +msgstr "Ustawiono nowÄ… wartość." + +#: lib/RT/ACE_Overlay.pm:111 +msgid "The owner of a ticket" +msgstr "WÅ‚aÅ›ciciel zgÅ‚oszenia" + +#: lib/RT/ACE_Overlay.pm:112 +msgid "The requestor of a ticket" +msgstr "ZgÅ‚aszajÄ…cy" + +#: html/Admin/Elements/EditUserComments:47 +msgid "These comments aren't generally visible to the user" +msgstr "Te komentarze nie sÄ… generalnie widoczne dla użytkownika" + +#: lib/RT/CustomField_Overlay.pm:912 +msgid "This custom field does not apply to that object" +msgstr "Ce champ personnalisĂŠ ne s'applique pas Ă  cet objet" + +#: html/Admin/Tools/Configuration.html:50 +msgid "This feature is only available to system administrators" +msgstr "Ta funkcja jest dostÄ™pna tylko dla administratora systemu" + +#: html/Ticket/Elements/PreviewScrips:93 +msgid "This message will be sent to..." +msgstr "Ta wiadomość zostanie wysÅ‚ana do..." + +#: NOT FOUND IN SOURCE +msgid "This ticket %1 %2 (%3)\\n" +msgstr "To zgÅ‚oszenie %1 %2 (%3)\\n" + +#: bin/rt-crontool:214 +msgid "This tool allows the user to run arbitrary perl modules from within RT." +msgstr "Ta aplikacja pozwala użytkownikowi na przypadkowe uruchomienie tzw. perl modułów z RT" + +#: lib/RT/Transaction_Overlay.pm:288 +msgid "This transaction appears to have no content" +msgstr "Nie okreÅ›lono zawartoÅ›ci tej transakcji" + +#: html/Ticket/Elements/ShowRequestor:70 +#. ($rows) +msgid "This user's %1 highest priority tickets" +msgstr "%1 zgÅ‚oszeÅ„ tego użytkownika o najwyższym priorytecie" + +#: NOT FOUND IN SOURCE +msgid "This user's 25 highest priority tickets" +msgstr "25 zgÅ‚oszeÅ„ tego użytkownika o najwyższym priorytecie" + +#: lib/RT/Date.pm:416 +msgid "Thu." +msgstr "Czw." + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 %2" +msgstr "ZgÅ‚oszenie nr %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Ticket # %1 Jumbo update: %2" +msgstr "Ticket n°%1 Jumbo update: %2" + +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket #%1 Jumbo update: %2" +msgstr "PeÅ‚na aktualizacja: %2 zgÅ‚oszenia nr %1" + +#: html/Approvals/Elements/ShowDependency:67 +#. ($link->BaseObj->Id, $link->BaseObj->Subject) +msgid "Ticket #%1: %2" +msgstr "ZgÅ‚oszenie nr %1 %2" + +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 +#. ($T::Tickets{$template_id}->Id) +#. ($T::Tickets{$template_id}->id) +#. ($ticket->Id) +msgid "Ticket %1" +msgstr "ZgÅ‚oszenie %1" + +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 +#. ($self->Id, $QueueObj->Name) +msgid "Ticket %1 created in queue '%2'" +msgstr "ZgÅ‚oszenie %1 zostaÅ‚o utworzone w kolejce '%2'" + +#: NOT FOUND IN SOURCE +msgid "Ticket %1 loaded\\n" +msgstr "ZgÅ‚oszenie %1 zostaÅ‚o zaÅ‚adowane\\n" + +#: html/Search/Bulk.html:269 +#. ($Ticket->Id,$_) +msgid "Ticket %1: %2" +msgstr "ZgÅ‚oszenie %1: %2" + +#: html/Admin/Elements/QueueTabs:74 +msgid "Ticket Custom Fields" +msgstr "Champs personnalisĂŠs du ticket" + +#: html/Ticket/History.html:46 html/Ticket/History.html:49 +#. ($Ticket->Id, $Ticket->Subject) +msgid "Ticket History # %1 %2" +msgstr "Historia zgÅ‚oszenia nr %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Ticket Id" +msgstr "Nr zgÅ‚oszenia" + +#: etc/initialdata:324 +msgid "Ticket Resolved" +msgstr "ZgÅ‚oszenie zamkniÄ™te" + +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 +msgid "Ticket Transactions" +msgstr "Transactions du ticket" + +#: NOT FOUND IN SOURCE +msgid "Ticket attachment" +msgstr "Załącznik do zgÅ‚oszenia, którego" + +#: lib/RT/Tickets_Overlay.pm:1648 +msgid "Ticket content" +msgstr "Zawartość zgÅ‚oszenia" + +#: lib/RT/Tickets_Overlay.pm:1697 +msgid "Ticket content type" +msgstr "Typ zawartoÅ›ci zgÅ‚oszenia" + +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 +msgid "Ticket could not be created due to an internal error" +msgstr "Nie udaÅ‚o siÄ™ utworzyć zgÅ‚oszenia z powodu wewnÄ™trznego błędu" + +#: NOT FOUND IN SOURCE +msgid "Ticket created" +msgstr "ZgÅ‚oszenie zostaÅ‚o utworzone" + +#: NOT FOUND IN SOURCE +msgid "Ticket creation failed" +msgstr "Nie udaÅ‚o siÄ™ utworzyć zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Ticket deleted" +msgstr "ZgÅ‚oszenie zostaÅ‚o usuniÄ™te" + +#: NOT FOUND IN SOURCE +msgid "Ticket id not found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać numeru zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Ticket killed" +msgstr "Ticket effacĂŠ" + +#: html/Ticket/Display.html:55 +msgid "Ticket metadata" +msgstr "Meta-dane zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Ticket not found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać zgÅ‚oszenia" + +#: etc/initialdata:310 +msgid "Ticket status changed" +msgstr "ZmieniÅ‚ siÄ™ status zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Ticket watchers" +msgstr "Obserwatorzy zgÅ‚oszenia" + +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "" + +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 +msgid "Tickets" +msgstr "ZgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Tickets %1 %2" +msgstr "ZgÅ‚oszenia %1 %2" + +#: NOT FOUND IN SOURCE +msgid "Tickets %1 by %2" +msgstr "ZgÅ‚oszenia %1 do %2" + +#: NOT FOUND IN SOURCE +msgid "Tickets from %1" +msgstr "ZgÅ‚oszenia od %1" + +#: html/Approvals/Elements/ShowDependency:48 +msgid "Tickets which depend on this approval:" +msgstr "ZgÅ‚oszenia, które zależą od tego zatwierdzenia:" + +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 +msgid "Time Estimated" +msgstr "Szacowany czas" + +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 +msgid "Time Left" +msgstr "PozostaÅ‚y czas" + +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 +msgid "Time Worked" +msgstr "Czas realizacji" + +#: lib/RT/Tickets_Overlay.pm:1619 +msgid "Time left" +msgstr "PozostaÅ‚y czas" + +#: html/Elements/Footer:71 +msgid "Time to display" +msgstr "WyÅ›wietlany czas" + +#: lib/RT/Tickets_Overlay.pm:1594 +msgid "Time worked" +msgstr "Czas realizacji" + +#: NOT FOUND IN SOURCE +msgid "TimeLeft" +msgstr "PozostaÅ‚yCzas" + +#: lib/RT/Ticket_Overlay.pm:1143 +msgid "TimeWorked" +msgstr "Czas realizacji" + +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "To generate a diff of this commit:" +msgstr "Aby wygenerować różnice tego zatwierdzenia:" + +#: NOT FOUND IN SOURCE +msgid "To generate a diff of this commit:\\n" +msgstr "Aby wygenerować różnice tego zatwierdzenia:\\n" + +#: html/Elements/Footer:61 +#. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') +msgid "To inquire about support, training, custom development or licensing, please contact %1." +msgstr "WiÄ™cej o wsparciu, szkoleniach, rozwoju i licencjonowaniu dostÄ™pne jest w %1." + +#: lib/RT/Ticket_Overlay.pm:1146 +msgid "Told" +msgstr "WpÅ‚ynęło" + +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 +msgid "Tools" +msgstr "NarzÄ™dzia" + +#: etc/initialdata:252 +msgid "Transaction" +msgstr "Transakcja" + +#: lib/RT/Transaction_Overlay.pm:794 +#. ($self->Data) +msgid "Transaction %1 purged" +msgstr "Transakcja %1 zostaÅ‚a wyczyszczona" + +#: lib/RT/Transaction_Overlay.pm:174 +msgid "Transaction Created" +msgstr "Transakcja zostaÅ‚a utworzona" + +#: html/Admin/Elements/QueueTabs:78 +msgid "Transaction Custom Fields" +msgstr "Champs personnalisĂŠes de la transaction" + +#: NOT FOUND IN SOURCE +msgid "Transaction->Create couldn't, as you didn't specify a ticket id" +msgstr "Transakcja-> Nie udaÅ‚o siÄ™ utworzyć, ponieważ nie okreÅ›lono numeru zgÅ‚oszenia" + +#: lib/RT/Transaction_Overlay.pm:125 +msgid "Transaction->Create couldn't, as you didn't specify an object type and id" +msgstr "Transation->Create a ĂŠchouĂŠ car vous n'avez pas spĂŠcifiĂŠ de type d'objet et d'id" + +#: lib/RT/Transaction_Overlay.pm:838 +msgid "Transactions are immutable" +msgstr "Transakcje nie sÄ… możliwe do powielenia" + +#: NOT FOUND IN SOURCE +msgid "Trying to delete a right: %1" +msgstr "Próba usuniÄ™cia uprawnienia: %1" + +#: lib/RT/Date.pm:414 +msgid "Tue." +msgstr "Wto." + +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 +msgid "Type" +msgstr "Typ" + +#: NOT FOUND IN SOURCE +msgid "Unable to load article" +msgstr "Nie udaÅ‚o siÄ™ zaÅ‚adować artykuÅ‚u" + +#: lib/RT/ScripCondition_Overlay.pm:129 +msgid "Unimplemented" +msgstr "Niezaimplementowane" + +#: html/Admin/Users/Modify.html:89 +msgid "Unix login" +msgstr " Unix login" + +#: NOT FOUND IN SOURCE +msgid "UnixUsername" +msgstr "Nazwa użytkownika typu 'unix'" + +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 +#. ($self->ContentEncoding) +#. ($ContentEncoding) +msgid "Unknown ContentEncoding %1" +msgstr "Nieznany Typ ZawartoÅ›ci %1" + +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 +msgid "Unlimited" +msgstr "Nieograniczona" + +#: html/Search/Elements/SelectSearchesForObjects:63 +msgid "Unnamed search" +msgstr "Zapytanie bezimienne" + +#: etc/initialdata:32 +msgid "Unprivileged" +msgstr "Nieuprawnieni" + +#: html/Admin/Elements/EditCustomFields:60 +msgid "Unselected Custom Fields" +msgstr "Champs personnalisĂŠs non sĂŠlectionnĂŠs" + +#: html/Admin/CustomFields/Objects.html:61 +msgid "Unselected objects" +msgstr "Objets non sĂŠlectionnĂŠs" + +#: lib/RT/Transaction_Overlay.pm:648 +msgid "Untaken" +msgstr "Niepobrany" + +#: NOT FOUND IN SOURCE +msgid "Untitled search" +msgstr "Recherche sans titre" + +#: html/Search/Bulk.html:54 +msgid "Update" +msgstr "Zaktualizuj" + +#: html/Search/Bulk.html:178 +msgid "Update All" +msgstr "Zaktualizuj wszystko" + +#: NOT FOUND IN SOURCE +msgid "Update ID" +msgstr "Zaktualizuj ID" + +#: html/Ticket/Update.html:133 +msgid "Update Ticket" +msgstr "Zaktualizuj zgÅ‚oszenie" + +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 +msgid "Update Type" +msgstr "Zaktualizuj typ" + +#: NOT FOUND IN SOURCE +msgid "Update all these tickets at once" +msgstr "Zaktualizuj wszystkie te zgÅ‚oszenia jednoczeÅ›nie" + +#: NOT FOUND IN SOURCE +msgid "Update email" +msgstr "Zaktualizuj e-mail" + +#: html/Search/Results.html:80 +msgid "Update multiple tickets" +msgstr "Zaktualizuj wiele zgÅ‚oszeÅ„ jednoczeÅ›nie" + +#: NOT FOUND IN SOURCE +msgid "Update name" +msgstr "Zaktualizuj nazwÄ™" + +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 +msgid "Update not recorded." +msgstr "Aktualizacja nie zostaÅ‚a zapisana." + +#: html/Search/Bulk.html:99 +msgid "Update selected tickets" +msgstr "Zaktualizuj wybrane zgÅ‚oszenia" + +#: NOT FOUND IN SOURCE +msgid "Update signature" +msgstr "Zaktualizuj podpis" + +#: html/Ticket/ModifyAll.html:84 +msgid "Update ticket" +msgstr "Zaktualizuj zgÅ‚oszenie" + +#: NOT FOUND IN SOURCE +msgid "Update ticket # %1" +msgstr "Zaktualizuj zgÅ‚oszenie nr %1" + +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 +#. ($Ticket->id) +msgid "Update ticket #%1" +msgstr "Zaktualizuj zgÅ‚oszenie nr %1" + +#: html/Ticket/Update.html:156 +#. ($TicketObj->id, $TicketObj->Subject) +msgid "Update ticket #%1 (%2)" +msgstr "Zaktualizuj zgÅ‚oszenie nr %1 (%2)" + +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 +msgid "Update type was neither correspondence nor comment." +msgstr "Aktualizacja nie dotyczyÅ‚a korespondencji ani komentarza." + +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 +msgid "Updated" +msgstr "Zaktualizowane" + +#: html/Tools/Offline.html:95 +msgid "Upload" +msgstr "Zapisz" + +#: lib/RT/CustomField_Overlay.pm:84 +msgid "Upload multiple files" +msgstr "Uploader plusieurs fichiers" + +#: lib/RT/CustomField_Overlay.pm:79 +msgid "Upload multiple images" +msgstr "Uploader plusieurs images" + +#: lib/RT/CustomField_Overlay.pm:85 +msgid "Upload one file" +msgstr "Uploader un fichier" + +#: lib/RT/CustomField_Overlay.pm:80 +msgid "Upload one image" +msgstr "Uploader une image" + +#: lib/RT/CustomField_Overlay.pm:86 +msgid "Upload up to %1 files" +msgstr "Uploader un maximum de %1 fichiers" + +#: lib/RT/CustomField_Overlay.pm:81 +msgid "Upload up to %1 images" +msgstr "Uploader un maximum de %1 images" + +#: html/Tools/Offline.html:95 +msgid "Upload your changes" +msgstr "Zapisz swoje zmiany" + +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +msgstr "Użyj rozwijalnych list, aby wybrać transakcje, z których chcesz utworzyć nowy artykuÅ‚ RTFM" + +#: NOT FOUND IN SOURCE +msgid "User %1 %2: %3\\n" +msgstr "Użytkownik %1 %2: %3 \\n" + +#: NOT FOUND IN SOURCE +msgid "User %1 Password: %2\\n" +msgstr "HasÅ‚o użytkownika %1: %2\\n" + +#: lib/RT/Ticket_Overlay.pm:496 +#. ($args{'Owner'}) +msgid "User '%1' could not be found." +msgstr "Nie można znaleźć użytkownika %1." + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found" +msgstr "Nie udaÅ‚o siÄ™ wyszukać użytkownika '%1'" + +#: NOT FOUND IN SOURCE +msgid "User '%1' not found\\n" +msgstr "Nie udaÅ‚o siÄ™ wyszukać użytkownika '%1'\\n" + +#: etc/initialdata:132 etc/initialdata:206 +msgid "User Defined" +msgstr "Definiowany przez użytkownika" + +#: html/Admin/Elements/EditScrip:98 +msgid "User Defined conditions and actions" +msgstr "Warunki i operacje zdefiniowane przez użytkownika" + +#: NOT FOUND IN SOURCE +msgid "User ID" +msgstr "Id" + +#: NOT FOUND IN SOURCE +msgid "User Id" +msgstr "Id" + +#: 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 "Uprawnienia użytkowników" + +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) +msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" +msgstr "L'utilisateur a demandĂŠ un type de mise Ă  jour non connu pour le champ personnalisĂŠ %1 de l'objet %2Â%3" + +#: html/Admin/Users/Modify.html:293 +#. ($msg) +msgid "User could not be created: %1" +msgstr "Nie udaÅ‚o siÄ™ utworzyć użytkownika: %1" + +#: lib/RT/User_Overlay.pm:331 +msgid "User created" +msgstr "Użytkownik zostaÅ‚ utworzony" + +#: 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 "Grupy def. przez użytkownika" + +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 +msgid "User loaded" +msgstr "Użytkownik zaÅ‚adowany" + +#: NOT FOUND IN SOURCE +msgid "User notified" +msgstr "Użytkownik zostaÅ‚ powiadomiony" + +#: NOT FOUND IN SOURCE +msgid "User view" +msgstr "Widok użytkownika" + +#: html/Admin/Groups/index.html:99 +msgid "User-defined groups" +msgstr "Groupe dĂŠfinis par l'utilisateur" + +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 +msgid "Username" +msgstr "Nazwa" + +#: 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:1086 +msgid "Users" +msgstr "Użytkownicy" + +#: html/Admin/Users/index.html:85 +msgid "Users matching search criteria" +msgstr "Użytkownicy odpowiadajÄ…cy kryteriom wyszukiwania" + +#: lib/RT/Tickets_Overlay_SQL.pm:523 +msgid "Valid Query" +msgstr "Sprawdź zapytanie" + +#: NOT FOUND IN SOURCE +msgid "ValueOfQueue" +msgstr "Wartość kolejki" + +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 +msgid "Values" +msgstr "WartoÅ›ci" + +#: lib/RT/Queue_Overlay.pm:108 +msgid "Watch" +msgstr "Obserwuj" + +#: lib/RT/Queue_Overlay.pm:109 +msgid "WatchAsAdminCc" +msgstr "WatchAsAdminCc" + +#: NOT FOUND IN SOURCE +msgid "Watcher loaded" +msgstr "Observateur chargĂŠ" + +#: html/Admin/Elements/QueueTabs:63 +msgid "Watchers" +msgstr "Obserwatorzy" + +#: NOT FOUND IN SOURCE +msgid "WebEncoding" +msgstr "Web-kodowanie" + +#: lib/RT/Date.pm:415 +msgid "Wed." +msgstr "Åšro." + +#: etc/initialdata:521 +msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" +msgstr "Po zatwierdzeniu zgÅ‚oszenia przez wszystkich zatwierdzajÄ…cych, dodaj korespondencjÄ™ do oryginalnego zgÅ‚oszenia" + +#: etc/initialdata:485 +msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" +msgstr "Po zatwierdzeniu zgÅ‚oszenia przez któregokolwiek z zatwierdzajÄ…cych, dodaj korespondencjÄ™ do oryginalnego zgÅ‚oszenia" + +#: etc/initialdata:146 +msgid "When a ticket is created" +msgstr "Po utworzeniu zgÅ‚oszenia" + +#: etc/initialdata:418 +msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" +msgstr "Po utworzeniu zgÅ‚oszenia podlegajÄ…cego zatwierdzeniu, powiadom wÅ‚aÅ›ciciela i osoby o uprawnieniach AdminCc o zadaniu oczekujÄ…cym zatwierdzenie przez nich" + +#: etc/initialdata:151 +msgid "When anything happens" +msgstr "JeÅ›li cokolwiek siÄ™ wydarzy" + +#: etc/initialdata:199 +msgid "Whenever a ticket is resolved" +msgstr "Zawsze gdy zgÅ‚oszenie bÄ™dzie zamykane" + +#: etc/initialdata:185 +msgid "Whenever a ticket's owner changes" +msgstr "Zawsze gdy zmieni siÄ™ wÅ‚aÅ›ciciel zgÅ‚oszenia" + +#: etc/initialdata:178 etc/upgrade/3.1.17/content:16 +msgid "Whenever a ticket's priority changes" +msgstr "Zawsze gdy zmieni siÄ™ priorytet zgÅ‚oszenia" + +#: etc/initialdata:193 +msgid "Whenever a ticket's queue changes" +msgstr "Zawsze gdy zmieni siÄ™ kolejka zgÅ‚oszenia" + +#: etc/initialdata:170 +msgid "Whenever a ticket's status changes" +msgstr "Zawsze gdy zmieni siÄ™ status zgÅ‚oszenia" + +#: etc/initialdata:207 +msgid "Whenever a user-defined condition occurs" +msgstr "Zawsze gdy wystÄ…pi warunek definiowany przez użytkownika" + +#: etc/initialdata:164 +msgid "Whenever comments come in" +msgstr "Zawsze gdy wystÄ…piÄ… komentarze" + +#: etc/initialdata:157 +msgid "Whenever correspondence comes in" +msgstr "Zawsze gdy wpÅ‚ynie korespondencja" + +#: NOT FOUND IN SOURCE +msgid "Which are referred to by " +msgstr "Które sÄ… zgÅ‚oszeniami powiÄ…zanymi" + +#: NOT FOUND IN SOURCE +msgid "Which refer to" +msgstr "Które dotyczÄ…" + +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 +msgid "Work" +msgstr "Praca" + +#: html/Search/Results.html:84 +msgid "Work offline" +msgstr "Praca zdalna" + +#: NOT FOUND IN SOURCE +msgid "WorkPhone" +msgstr "Tel. do pracy" + +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 +msgid "Worked" +msgstr "Czas pracy" + +#: NOT FOUND IN SOURCE +msgid "XXX CHANGEME You are not an authorized user" +msgstr "XXX CHANGEME Nie jesteÅ› użytkownikiem z uprawnieniami" + +#: NOT FOUND IN SOURCE +msgid "Yes" +msgstr "Tak" + +#: lib/RT/Ticket_Overlay.pm:3096 +msgid "You already own this ticket" +msgstr "JesteÅ› już wÅ‚aÅ›cicielem tego zgÅ‚oszenia" + +#: html/autohandler:158 html/autohandler:166 +msgid "You are not an authorized user" +msgstr "Nie jesteÅ› autoryzowanym użytkownikiem" + +#: lib/RT/Ticket_Overlay.pm:2978 +msgid "You can only reassign tickets that you own or that are unowned" +msgstr "Możesz ponownie przydzielić tylko te zgÅ‚oszenia, których jesteÅ› wÅ‚aÅ›cicielem lub te, które nie majÄ… wÅ‚aÅ›ciciela" + +#: NOT FOUND IN SOURCE +msgid "You don't have permission to view that ticket.\\n" +msgstr "Nie masz uprawnieÅ„ do przeglÄ…dania tego zgÅ‚oszenia.\\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 "WyszukaÅ‚eÅ› zgÅ‚oszenia %1 w kolejce %2" + +#: html/NoAuth/Logout.html:52 +msgid "You have been logged out of RT." +msgstr "ZostaÅ‚eÅ› wylogowany z RT" + +#: html/SelfService/Display.html:109 +msgid "You have no permission to create tickets in that queue." +msgstr "Nie masz uprawnieÅ„ do rejestrowania zgÅ‚oszeÅ„ w tej kolejce." + +#: lib/RT/Ticket_Overlay.pm:1964 +msgid "You may not create requests in that queue." +msgstr "Nie możesz rejestrować zgÅ‚oszeÅ„ w tej kolejce." + +#: html/NoAuth/Logout.html:56 +msgid "You're welcome to login again" +msgstr "ProszÄ™ zalogować siÄ™ ponownie" + +#: NOT FOUND IN SOURCE +msgid "Your %1 requests" +msgstr "Twoje zgÅ‚oszenia %1" + +#: NOT FOUND IN SOURCE +msgid "Your RT administrator has misconfigured the mail aliases which invoke RT" +msgstr "Administrator RT niewÅ‚aÅ›ciwie skonfigurowaÅ‚ aliasy maila, które wywoÅ‚ujÄ… RT" + +#: etc/initialdata:502 +msgid "Your request has been approved by %1. Other approvals may still be pending." +msgstr "Twoje zgÅ‚oszenie zostaÅ‚o zatwierdzone przez %1. Może nadal oczekiwać na inne zatwierdzenia." + +#: etc/initialdata:540 +msgid "Your request has been approved." +msgstr "Twoje zgÅ‚oszenie zostaÅ‚o zatwierdzone." + +#: NOT FOUND IN SOURCE +msgid "Your request was rejected" +msgstr "Twoje zgÅ‚oszenie zostaÅ‚o odrzucone" + +#: etc/initialdata:445 +msgid "Your request was rejected." +msgstr "Twoje zgÅ‚oszenie zostaÅ‚o odrzucone" + +#: html/autohandler:193 +msgid "Your username or password is incorrect" +msgstr "Nazwa użytkownika lub hasÅ‚o jest nieprawidÅ‚owe" + +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 +msgid "Zip" +msgstr "Kod pocztowy" + +#: NOT FOUND IN SOURCE +msgid "[no subject]" +msgstr "[Pas de sujet]" + +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" +msgstr "" + +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "and is not" +msgstr "i nie jest" + +#: NOT FOUND IN SOURCE +msgid "and not" +msgstr "i nie" + +#: html/User/Elements/DelegateRights:80 +#. ($right->PrincipalObj->Object->SelfDescription) +msgid "as granted to %1" +msgstr "tak jak przydzielone dla %1" + +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "" + +#: html/SelfService/Closed.html:49 +msgid "closed" +msgstr "zamkniÄ™te" + +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 +msgid "contains" +msgstr "zawiera" + +#: NOT FOUND IN SOURCE +msgid "content" +msgstr "zawartość" + +#: NOT FOUND IN SOURCE +msgid "content-type" +msgstr "typ zawartoÅ›ci" + +#: NOT FOUND IN SOURCE +msgid "correspondence (probably) not sent" +msgstr "korespondencja (prawdopodobnie) nie zostaÅ‚a wysÅ‚ana" + +#: NOT FOUND IN SOURCE +msgid "correspondence sent" +msgstr "korespondencja zostaÅ‚a wysÅ‚ana" + +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 +msgid "days" +msgstr "dniami" + +#: NOT FOUND IN SOURCE +msgid "dead" +msgstr "effacĂŠ" + +#: NOT FOUND IN SOURCE +msgid "delete" +msgstr "usuÅ„" + +#: lib/RT/Queue_Overlay.pm:88 +msgid "deleted" +msgstr "usuniÄ™te" + +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" + +#: html/Search/Elements/PickBasics:61 +msgid "does not match" +msgstr "nie zgadza siÄ™ z" + +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 +msgid "doesn't contain" +msgstr "nie zawiera" + +#: NOT FOUND IN SOURCE +msgid "email address" +msgstr "adresse email" + +#: html/Elements/SelectEqualityOperator:59 +msgid "equal to" +msgstr "równy" + +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "" + +#: NOT FOUND IN SOURCE +msgid "false" +msgstr "faux" + +#: NOT FOUND IN SOURCE +msgid "filename" +msgstr "nazwa pliku" + +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 +msgid "greater than" +msgstr "wiÄ™kszy od" + +#: lib/RT/Group_Overlay.pm:222 +#. ($self->Name) +msgid "group '%1'" +msgstr "grupy '%1'" + +#: lib/RT/Date.pm:338 +msgid "hours" +msgstr "godz." + +#: html/Search/Elements/PickBasics:48 +msgid "id" +msgstr "Numer" + +#: NOT FOUND IN SOURCE +msgid "in class %1" +msgstr "w ramach klasy %1" + +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 +msgid "is" +msgstr "jest" + +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 +msgid "isn't" +msgstr "nie jest" + +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 +msgid "less than" +msgstr "mniejszy od" + +#: html/Search/Elements/PickBasics:60 +msgid "matches" +msgstr "zgadza siÄ™ z" + +#: lib/RT/Date.pm:334 +msgid "min" +msgstr "min." + +#: html/Ticket/Update.html:64 +msgid "minutes" +msgstr "minuty" + +#: NOT FOUND IN SOURCE +msgid "modifications\\n\\n" +msgstr "modyfikacje\\n\\n" + +#: lib/RT/Date.pm:350 +msgid "months" +msgstr "miesiÄ…cami" + +#: lib/RT/Queue_Overlay.pm:83 +msgid "new" +msgstr "nowe" + +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 +msgid "no name" +msgstr "bez nazwy" + +#: html/Admin/Elements/EditScrips:64 +msgid "no value" +msgstr "brak wartoÅ›ci" + +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 +msgid "none" +msgstr "żaden" + +#: html/Elements/SelectEqualityOperator:59 +msgid "not equal to" +msgstr "różny od" + +#: NOT FOUND IN SOURCE +msgid "notlike" +msgstr "necontientpas" + +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 +msgid "open" +msgstr "otwarte" + +#: lib/RT/Group_Overlay.pm:227 +#. ($self->Name, $user->Name) +msgid "personal group '%1' for user '%2'" +msgstr "prywatna grupa '%1' użytkownika '%2'" + +#: lib/RT/Group_Overlay.pm:235 +#. ($queue->Name, $self->Type) +msgid "queue %1 %2" +msgstr "kolejka %1 %2" + +#: lib/RT/Queue_Overlay.pm:87 +msgid "rejected" +msgstr "odrzucone" + +#: lib/RT/Queue_Overlay.pm:86 +msgid "resolved" +msgstr "zamkniÄ™te" + +#: lib/RT/Date.pm:330 +msgid "sec" +msgstr "sek." + +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "" + +#: html/Search/Results.html:82 +msgid "spreadsheet" +msgstr "Arkusz kalk." + +#: lib/RT/Queue_Overlay.pm:85 +msgid "stalled" +msgstr "zamrożone" + +#: lib/RT/Group_Overlay.pm:230 +#. ($self->Type) +msgid "system %1" +msgstr "system %1" + +#: lib/RT/Group_Overlay.pm:241 +#. ($self->Type) +msgid "system group '%1'" +msgstr "grupy systemowej '%1'" + +#: html/Elements/Error:66 html/SelfService/Error.html:63 +msgid "the calling component did not specify why" +msgstr "przywoÅ‚ywany komponent nie okreÅ›liÅ‚ powodu" + +#: NOT FOUND IN SOURCE +msgid "ticket #%1" +msgstr "ticket n°%1" + +#: lib/RT/Group_Overlay.pm:238 +#. ($self->Instance, $self->Type) +msgid "ticket #%1 %2" +msgstr "zgÅ‚oszenie #%1 %2" + +#: NOT FOUND IN SOURCE +msgid "till" +msgstr "do" + +#: NOT FOUND IN SOURCE +msgid "true" +msgstr "vrai" + +#: lib/RT/Group_Overlay.pm:244 +#. ($self->Id) +msgid "undescribed group %1" +msgstr "nieopisana grupa %1" + +#: NOT FOUND IN SOURCE +msgid "undescripbed group %1" +msgstr "nieopisana grupa %1" + +#: lib/RT/Group_Overlay.pm:219 +#. ($user->Object->Name) +msgid "user %1" +msgstr "użytkownika %1" + +#: lib/RT/Date.pm:346 +msgid "weeks" +msgstr "tygodniami" + +#: NOT FOUND IN SOURCE +msgid "with template %1" +msgstr "wg szablonu %1" + +#: lib/RT/Date.pm:354 +msgid "years" +msgstr "rokiem/latami" + diff --git a/rt/lib/RT/I18N/pt_br.po b/rt/lib/RT/I18N/pt_br.po index a4892b05e..cbf92c594 100644 --- a/rt/lib/RT/I18N/pt_br.po +++ b/rt/lib/RT/I18N/pt_br.po @@ -1,4 +1,4 @@ -# $Id: pt_br.po,v 1.1.1.3 2004-12-03 20:39:09 ivan Exp $ +# $Id: pt_br.po,v 1.1.1.4 2005-10-15 09:10:38 ivan Exp $ msgid "" msgstr "" "Project-Id-Version: RT 2.1.x\n" @@ -14,64 +14,58 @@ msgstr "" msgid "#" msgstr "#" -#: NOT FOUND IN SOURCE -msgid "#%1" -msgstr "" - -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "#%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" msgstr "" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +#: NOT FOUND IN SOURCE msgid "%1 %2 %3" msgstr "%1 %2 %3" -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($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:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "%1 %2 atrás" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($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/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" @@ -81,50 +75,25 @@ msgstr "%1 %2 removido" msgid "%1 %2 of group %3" msgstr "%1 %2 do grupo %3" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (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 הוסף" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 מקבוצה %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 נמחק" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 שונה ל %3" -msgstr "" - #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 este tíquete\\n" -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 פנייה זו\\n" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" msgstr "" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" msgstr "" @@ -132,57 +101,68 @@ msgstr "" msgid "%1 - %2 shown" msgstr "%1 - %2 apresentados" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--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:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - Mostra atualizações de estado no STDOUT" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--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:169 +#: bin/rt-crontool:198 #. ("--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:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - Especifica o módulo de busca que você quer usar" -#: NOT FOUND IN SOURCE -msgid "%1 - ×רגומנט להעביר ×ל %2" -msgstr "" - $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 -#. ('»|«', $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2004', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 +#. ('»|«', + $RT::VERSION, + '2005', + '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "ScripAction %1 carregado" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "%1 usado como um valor de %2" @@ -199,32 +179,31 @@ msgstr "Aliases %1 requerem um TicketId no qual trabalhar " 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:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($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:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 por %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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($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:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" msgstr "" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "%1 não pôde ser alterado para %2" @@ -232,20 +211,22 @@ msgstr "%1 não pôde ser alterado para %2" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 não pôde iniciar uma transação (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 não pôde alterar estado para resolvido. O banco de dados do RT pode estar inconsistente." -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) msgid "%1 created" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) msgid "%1 deleted" msgstr "" -#: html/Elements/MyTickets:24 +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" msgstr "" @@ -254,17 +235,16 @@ msgstr "" msgid "%1 highest priority tickets I own..." msgstr "%1 tíquetes de mais alta prioridade que eu possuo..." -#: html/Elements/MyTickets:26 -#. ($rows) +#: 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:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "%1 é uma ferramenta para modificar tíquetes a partir de uma ferramenta de agenda externa, como o cron." -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 não é mais um %2 para esta fila." @@ -273,8 +253,7 @@ msgstr "%1 não é mais um %2 para esta fila." msgid "%1 is no longer a %2 for this ticket." msgstr "%1 não é mais um %2 para este tíquete." -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: 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" @@ -282,11 +261,7 @@ msgstr "%1 não é mais um valor para o campo personalizado %2" msgid "%1 isn't a valid Queue id." msgstr "%1 não é um identificador de fila válido." -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -295,15 +270,7 @@ msgstr "" msgid "%1 min" msgstr "%1 min" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" msgstr "" @@ -312,11 +279,11 @@ msgstr "" msgid "%1 not shown" msgstr "%1 não mostrado" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:827 msgid "%1 objects" msgstr "" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1 direitos" @@ -337,7 +304,7 @@ msgstr "Tipo %1 desconhecido para %2" msgid "%1 was created without a CurrentUser\\n" msgstr "%1 foi criado sem um CurrentUser\\n" -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (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." @@ -346,72 +313,36 @@ msgstr "%1 resolverá todos os membros de um grupo de tíquetes resolvidos." msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "%1 colocará como pendente uma BASE [local] se for dependente [ou membro] de uma requisição ligada." -#: NOT FOUND IN SOURCE -msgid "%1 הוסף כערך עבור %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 לפני %2 ימי×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 על ידי %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 פעולת-סקריפ נטענה" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 שונה מ %2 ל %3" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:828 msgid "%1's %2 objects" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:829 msgid "%1's %2's %3 objects" msgstr "" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" msgstr "" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1: nenhum arquivo anexo especificado" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "%1b" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' é um valor inválido para o estado" @@ -428,7 +359,7 @@ msgstr "(Assinale para remover o membro do grupo)" msgid "(Check box to delete scrip)" msgstr "(Assinale para remover o scrip)" -#: 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 +#: 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 "(Assinale para remover)" @@ -436,53 +367,49 @@ msgstr "(Assinale para remover)" msgid "(Check boxes to delete)" msgstr "(Assinale para remover)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" msgstr "" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(Entre com identificadores de tíquetes ou URLs, separados por espaços)" - -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" msgstr "" -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: 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 "(Se deixado em branco, será entendido como %1" +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:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "(Nenhum campo personalizado)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(Sem membros)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "(Sem scrips)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "(Nenhum esquema)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 msgid "(None)" msgstr "" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:88 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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços de email separados por vírgula. <b>Não</b> altera quem vai receber atualizações futuras.)" @@ -490,11 +417,11 @@ msgstr "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de ender 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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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 "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" @@ -502,51 +429,43 @@ msgstr "(Envia uma cópia-cega (Bcc) desta atualização para uma lista de ender 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 "(Envia uma cópia desta atualização para uma lista de endereços eletrônicos separados por vírgulas. <b>Não</b> altera o destinatário de atualizações futuras.)" -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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 "(Envia uma cópia desta atualização para uma lista de endereços eletrônicos separados por vírgulas. Estas pessoas <b>receberão</b> as atualizações futuras.)" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" msgstr "" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(vazio)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "(nenhum nome listado)" -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" - #: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(Sem assunto)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(sem valor)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFieldValues:47 msgid "(no values)" msgstr "" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(somente um tíquete)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(aguardando aprovação)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" msgstr "" @@ -558,18 +477,14 @@ msgstr "(aguardando outros tíquetes)" msgid "(requestor's group)" msgstr "(grupo do requisitante)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(requerido)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(sem título)" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." msgstr "25 tíquetes mais prioritários que possuo..." @@ -578,35 +493,35 @@ msgstr "25 tíquetes mais prioritários que possuo..." msgid "25 highest priority tickets I requested..." msgstr "25 tíquetes mais prioritários que requisitei..." -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "<% $_ %>" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"Novo tíquete em\"> %1" -#: NOT FOUND IN SOURCE -msgid "??????" -msgstr "" - #: etc/initialdata:218 msgid "A blank template" msgstr "Um modelo vazio" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "" + #: NOT FOUND IN SOURCE msgid "ACE Deleted" msgstr "ACE Removida" @@ -623,60 +538,72 @@ msgstr "ACE não pôde ser removida" msgid "ACE could not be found" msgstr "ACE não pode ser encontrada" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "ACE não encontrado" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "ACEs só podem ser criados e removidos." +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "" + #: 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:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "Sobre mim" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "Controle de acesso" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "Ação" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "Ação %1 não encontrada" -#: bin/rt-crontool:119 +#: NOT FOUND IN SOURCE msgid "Action committed." msgstr "Ação confirmada." -#: bin/rt-crontool:115 +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "" + +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "Ação preparada..." -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" msgstr "" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "Adicionar AdminCc" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "Adicionar Cc" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "" + +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" msgstr "" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "Adicionar Mais Arquivos" @@ -684,11 +611,11 @@ msgstr "Adicionar Mais Arquivos" msgid "Add Next State" msgstr "Adicionar Próximo Estado" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "Adicionar Requisitante" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" msgstr "" @@ -712,49 +639,53 @@ msgstr "Adicionar um novo scrip global" msgid "Add a scrip to this queue" msgstr "Adicionar um scrip a esta fila" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 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:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" msgstr "" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "Adicionar comentários ou respostas aos tíquetes selecionados" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "Adicionar membros" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "Adicionar novos observadores" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "" + #: NOT FOUND IN SOURCE msgid "AddNextState" msgstr "AddNextState" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "Principal adicionado como um %1 para esta fila" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "Principal adicionado como um %1 para este tíquete" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "Endereço 1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "Endereço 2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "Admin Cc" @@ -766,7 +697,7 @@ msgstr "Comentário do Administrador" msgid "Admin Correspondence" msgstr "Correspondência do Administrador" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" msgstr "Administração de filas" @@ -774,7 +705,7 @@ msgstr "Administração de filas" msgid "Admin users" msgstr "Administração de usuários" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "Administração da configuração global" @@ -790,7 +721,7 @@ msgstr "Administração de uma fila" msgid "AdminAllPersonalGroups" msgstr "AdminAllPersonalGroups" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "AdminCc" @@ -802,35 +733,35 @@ msgstr "AdminComment" msgid "AdminCorrespondence" msgstr "AdminCorrespondence" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:101 msgid "AdminCustomField" msgstr "" -#: lib/RT/Queue_Overlay.pm:73 +#: NOT FOUND IN SOURCE msgid "AdminCustomFields" msgstr "AdminCustomFields" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "AdminGroup" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "AdminGroupMembership" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "AdminOwnPersonalGroups" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "AdminQueue" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "AdminUsers" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "Cc Administrativo" @@ -838,7 +769,7 @@ msgstr "Cc Administrativo" msgid "Admins" msgstr "Administradores" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" msgstr "" @@ -846,11 +777,7 @@ msgstr "" msgid "Advanced Search" msgstr "Busca avançada" -#: NOT FOUND IN SOURCE -msgid "Advanced Search Criteria" -msgstr "" - -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "Depois" @@ -858,8 +785,8 @@ msgstr "Depois" msgid "Age" msgstr "Idade" -#: NOT FOUND IN SOURCE -msgid "Alias" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" msgstr "" #: NOT FOUND IN SOURCE @@ -871,14 +798,10 @@ msgid "All Approvals Passed" msgstr "" #: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Todos os Campos Personalizados" -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "Todas as filas" @@ -886,35 +809,39 @@ msgstr "Todas as filas" msgid "Always sends a message to the requestors independent of message sender" msgstr "Sempre envia uma mensagem para os requisitantes independentemente do remetente" -#: NOT FOUND IN SOURCE +#: 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:42 +#: html/Search/Edit.html:64 msgid "Apply" msgstr "" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" msgstr "" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "Aprovação" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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 "Aprovação #%1: %2" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "Aprovação #%1: Notas não registradas devido a um erro de sistema" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "Aprovação #%1: Notas registradas" @@ -935,7 +862,7 @@ msgstr "" msgid "Approval diagram" msgstr "Diagrama da aprovação" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "Aprove" @@ -943,7 +870,7 @@ msgstr "Aprove" msgid "Approver's notes: %1" msgstr "Notas do aprovador: %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "Abr." @@ -951,72 +878,52 @@ msgstr "Abr." msgid "April" msgstr "Abril" -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "Ascendente" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "Assign and remove custom fields" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "AssignCustomFields" msgstr "" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "Anexar" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "Anexar arquivo" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "Arquivo anexado" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 #. ($Attachment) msgid "Attachment '%1' could not be loaded" msgstr "Arquivo anexo '%1' não pôde ser carregado" -#: lib/RT/Transaction_Overlay.pm:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "Arquivo anexo criado" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "Nome do arquivo anexo" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "Arquivos anexos" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" msgstr "" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "Ago." @@ -1040,10 +947,6 @@ msgstr "Autoreply para Requisitantes" msgid "AutoreplyToRequestors" msgstr "AutoreplyToRequestors" -#: html/Search/Elements/EditFormat:4 -msgid "Available Columns" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" msgstr "Assinatura PGP inválida: %1\\n" @@ -1060,19 +963,19 @@ msgstr "Dados inválidos em %1" 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/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Ticket/Elements/Tabs:91 html/User/Elements/GroupTabs:37 +#: 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 "Básicos" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "Bcc" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "Não se esqueça de salvar suas alterações" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "Antes" @@ -1080,128 +983,117 @@ msgstr "Antes" msgid "Begin Approval" msgstr "Incício da Aprovação" -#: NOT FOUND IN SOURCE -msgid "Binary" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" msgstr "" #: etc/initialdata:217 msgid "Blank" msgstr "Vazio" +#: html/Search/Elements/EditFormat:84 +msgid "Bold" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Bookmarkable URL for this search" msgstr "URL para guardar esta busca em seus marcadores" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" msgstr "" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "Cabeçalhos resumidos" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "Atualização de tíquetes em lote" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "Não posso modificar os usuários do sistema" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" msgstr "Este principal pode ver esta fila" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "Não posso adicionar um valor de campo personalizado sem um nome" -#: html/Search/Build.html:694 +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" +msgstr "" + +#: html/Search/Build.html:761 msgid "Can't find a saved search to work with" msgstr "" -#: lib/RT/Link_Overlay.pm:126 +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "Não posso ligar um tíquete a ele mesmo" -#: lib/RT/Ticket_Overlay.pm:2716 +#: NOT FOUND IN SOURCE msgid "Can't merge into a merged ticket. You should never get this error" msgstr "Não posso unir a um tíquete já unido. Você nunca deve obter este erro" -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" msgstr "" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "Não especifique origem e destino simultaneamente" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "Não posso criar o usuário: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "Cc" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "Mudar a senha" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:100 msgid "Check All" msgstr "" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "Assinale para remover" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "Assinalar para revogar o direito de acesso" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "Filhos" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "Cidade" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:102 msgid "Clear All" msgstr "" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "Fechado" -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Requisições fechadas" -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "" @@ -1213,11 +1105,11 @@ msgstr "Código" msgid "Command not understood!\\n" msgstr "Comando não entendido!\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "Comentário" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "Endereço de Comentário" @@ -1225,11 +1117,11 @@ msgstr "Endereço de Comentário" msgid "Comment not recorded" msgstr "Comentário não registrado" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "Comente sobre os tíquetes" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "CommentOnTicket" @@ -1237,11 +1129,11 @@ msgstr "CommentOnTicket" msgid "Comments" msgstr "Comentários" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "Comentários (não enviados aos requisitantes)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "Comentários (não enviados aos requisitantes)" @@ -1249,15 +1141,15 @@ msgstr "Comentários (não enviados aos requisitantes)" msgid "Comments about %1" msgstr "Comentários sobre %1" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "Comentários sobre este usuário" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "Comentários adicionados" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "" @@ -1265,23 +1157,23 @@ msgstr "" msgid "Compile Restrictions" msgstr "Compilar restrições" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "Condição" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "Condição satisfeita..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "Condição não encontrada" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "Configuração" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "Confirmar" @@ -1293,11 +1185,11 @@ msgstr "Informação de contato" msgid "Contacted date '%1' could not be parsed" msgstr "Data de contato '%1' não pôde ser entendida" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "Conteúdo" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "" @@ -1305,7 +1197,7 @@ msgstr "" msgid "Coould not create group" msgstr "Não pude criar o grupo" -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" msgstr "" @@ -1317,7 +1209,7 @@ msgstr "Correspondência" msgid "Correspondence Address" msgstr "Endereço de correspondência" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "Correspondência adicionada" @@ -1325,7 +1217,7 @@ msgstr "Correspondência adicionada" msgid "Correspondence not recorded" msgstr "Correspondência não registrada" -#: lib/RT/Ticket_Overlay.pm:3471 +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. " msgstr "Não pude adicionar novo valor de campo personalizado para o tíquete. " @@ -1333,29 +1225,43 @@ msgstr "Não pude adicionar novo valor de campo personalizado para o tíquete. " msgid "Could not add new custom field value for ticket. %1 " msgstr "Não pude adicionar novo valor de campo personalizado para o tíquete. %1" -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "" + +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " msgstr "Não pude alterar o proprietário. " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "Não pude criar CampoPersonalizado" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "Não pude criar o grupo" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" msgstr "Não pude criar o modelo: %1" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "Não pude criar o tíquete. Fila não selecionada" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" msgstr "Não pude criar o usuário" @@ -1371,11 +1277,11 @@ msgstr "Não pude encontrar um tíquete com identificador %1" msgid "Could not find group %1." msgstr "Não pude encontrar o grupo %1." -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "Não pude encontrar ou criar o usuário" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "Não pude encontrar este principal" @@ -1383,25 +1289,34 @@ msgstr "Não pude encontrar este principal" msgid "Could not find user %1." msgstr "Não pude encontrar o usuário %1." -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:69 msgid "Could not load CustomField %1" msgstr "" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "Não pude carregar o grupo" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "Não pude fazer este principal um %1 para esta fila" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "Não pude fazer este principal um %1 para este tíquete" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "Não pude remover este principal como um %1 para esta fila" @@ -1410,15 +1325,15 @@ msgstr "Não pude remover este principal como um %1 para esta fila" msgid "Could not remove that principal as a %1 for this ticket" msgstr "Não pude remover este principal como um %1 para este tíquete" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" msgstr "" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" msgstr "Não pude adicionar o membro no grupo" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "Não pude criar uma transação: %1" @@ -1431,15 +1346,15 @@ msgstr "Não sei o que fazer com a resposta do gpg\\n" msgid "Couldn't find group\\n" msgstr "Não encontrei o grupo\\n" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" msgstr "Não pude encontrar o registro" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" msgstr "Não encontrei este principal" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" msgstr "Não encontrei este valor" @@ -1451,16 +1366,18 @@ msgstr "Não pude encontrar este observador" msgid "Couldn't find user\\n" msgstr "Não pude encontrar o usuário\\n" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "Não pude carregar %1 do banco de dados de usuários.\\n" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" msgstr "" @@ -1476,25 +1393,26 @@ msgstr "Não pude carregar o arquivo de configuração do RT '%1' %2" msgid "Couldn't load Scrips." msgstr "Não pude carregar os Scrips." -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" msgstr "Não pude carregar o grupo %1" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "Não pude carregar a ligação" -#: NOT FOUND IN SOURCE +#: 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/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" msgstr "Não pude carregar a fila" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" msgstr "Não pude carregar a fila %1" @@ -1511,16 +1429,26 @@ msgstr "Não pude carregar o modelo" msgid "Couldn't load that user (%1)" msgstr "Não pude carregar este usuário (%1)" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "Não pude carregar o tíquete '%1'" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "País" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "Criar" @@ -1528,20 +1456,16 @@ msgstr "Criar" msgid "Create Tickets" msgstr "Criar Tíquetes" -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" - -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "Criar um CampoPersonalizado" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Criar um Campo Personalizado para a fila %1" -#: html/Admin/Global/CustomField.html:47 +#: NOT FOUND IN SOURCE msgid "Create a CustomField which applies to all queues" msgstr "Criar um Campo Personalizado para todas as filas" @@ -1549,10 +1473,6 @@ msgstr "Criar um Campo Personalizado para todas as filas" msgid "Create a new Custom Field" msgstr "Criar um novo Campo Personalizado" -#: NOT FOUND IN SOURCE -msgid "Create a new article" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "Criar um novo Scrip global" @@ -1561,11 +1481,11 @@ msgstr "Criar um novo Scrip global" msgid "Create a new global scrip" msgstr "Criar um novo scrip global" -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "Criar um novo grupo" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "Criar um novo grupo pessoal" @@ -1581,15 +1501,15 @@ msgstr "Criar um novo scrip" msgid "Create a new template" msgstr "Criar um novo modelo" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "Criar um novo tíquete" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "Criar um novo usuário" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "Criar uma fila" @@ -1601,27 +1521,19 @@ msgstr "Criar uma fila chamada" msgid "Create a request" msgstr "Criar uma requisição" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "Criar um scrip para a fila %1" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "Criar um modelo" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "Criação falhou: %1 / %2 / %3 " @@ -1634,19 +1546,19 @@ msgstr "Criação falhou: %1/%2/%3" msgid "Create new tickets based on this scrip's template" msgstr "Criar novos tíquetes baseados no esquema deste scrip" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "Criar um tíquete" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" msgstr "Criar tíquetes nesta fila" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "Criar, remover e modificar campos personalizados" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" msgstr "Criar, remover e modificar filas" @@ -1654,60 +1566,52 @@ msgstr "Criar, remover e modificar filas" 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:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "Criar, remover e modificar os membros de grupos pessoais" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "Criar, remover e modificar usuários" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "CreateTicket" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "Criado" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "CampoPersonalizado %1 criado" -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Modelo %1 criado" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" msgstr "" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "Relações atuais" -#: NOT FOUND IN SOURCE -msgid "Current Relationships" -msgstr "" - -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "Scrips correntes" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "Membros atuais" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "Direitos de acesso atuais" @@ -1715,68 +1619,63 @@ msgstr "Direitos de acesso atuais" msgid "Current search criteria" msgstr "Critério de busca atual" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "Observadores atuais" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) +#: NOT FOUND IN SOURCE msgid "Custom Field #%1" msgstr "Campo Personalizado #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "Campos Personalizados" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) msgid "Custom Fields for %1" msgstr "" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "Código de finalização da ação customizada" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "Código de preparação da ação customizada" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "Condição customizada" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: NOT FOUND IN SOURCE msgid "Custom field %1 %2 %3" msgstr "Campo personalizado %1 %2 %3" -#: NOT FOUND IN SOURCE -msgid "Custom field %1 does not apply to this object" -msgstr "" - -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "O campo personalizado %1 tem um valor." -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "O campo personalizado %1 não tem valor." -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "Campo personalizado %1 não encontrado" -#: html/Admin/Elements/EditCustomFields:195 +#: NOT FOUND IN SOURCE msgid "Custom field deleted" msgstr "Campo personalizado removido" -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" msgstr "Campo personalizado não encontrado" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "O valor de campo %1 não pôde ser encontrado para o campo personalizado %2" @@ -1785,19 +1684,19 @@ msgstr "O valor de campo %1 não pôde ser encontrado para o campo personalizado msgid "Custom field value changed from %1 to %2" msgstr "O valor do campo personalizado foi alterado de %1 para %2" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "O valor do campo personalizado não pôde ser removido" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "O valor de campo personalizado não pôde ser encontrado" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "Valor do campo personalizado removido" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "" @@ -1805,11 +1704,11 @@ msgstr "" msgid "Data error" msgstr "Erro de dado" -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "Datas" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "Dez." @@ -1825,11 +1724,11 @@ msgstr "Esquema Padrão de Autoresposta" msgid "Default Autoresponse template" msgstr "Esquema padrão de Autoresposta" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" msgstr "" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" msgstr "" @@ -1849,60 +1748,64 @@ msgstr "Esquema padrão de correspondência" msgid "Default transaction template" msgstr "Esquema padrão de transação" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: 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:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" msgstr "Delegar direitos de acesso" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "Delegar direitos específicos que foram outorgados a você." -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "DelegateRights" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "Delegação" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "Remover" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" msgstr "" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" msgstr "Remover tíquetes" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "DeleteTicket" -#: lib/RT/Transaction_Overlay.pm:162 +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "" + +#: 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:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "Ao remover este objeto você quebra a integridade referencial" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "Ao remover este objeto você viola a integridade referencial" @@ -1914,11 +1817,11 @@ msgstr "Remover este objeto violaria a integridade referencial" 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:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "Negue" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "Dependem deste tíquete" @@ -1926,27 +1829,27 @@ msgstr "Dependem deste tíquete" msgid "Dependencies: \\n" msgstr "Dependências: \\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "Depende de" @@ -1954,15 +1857,15 @@ msgstr "Depende de" msgid "DependsOn" msgstr "DependsOn" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "Descendente" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "Descreva o problema abaixo" -#: 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 +#: 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:56 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 "Descrição" @@ -1970,31 +1873,31 @@ msgstr "Descrição" msgid "Details" msgstr "Detalhes" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "Apresentação" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "Mostrar Lista de Controle de Acesso" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" msgstr "" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" msgstr "Mostras os esquemas de Scrip para esta fila" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" msgstr "Mostrar os Scrips para esta fila" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "Modo de apresentação" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" msgstr "" @@ -2002,15 +1905,19 @@ msgstr "" msgid "Display ticket #%1" msgstr "Apresentar o tíquete #%1" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" msgstr "" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "Fazer qualquer coisa" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "Não recarregar esta página." @@ -2018,19 +1925,15 @@ msgstr "Não recarregar esta página." msgid "Don't show search results" msgstr "Não mostrar resultados da busca" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "Baixar" -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 msgid "Download as a tab-delimited file" msgstr "" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "Vencido" @@ -2050,28 +1953,32 @@ msgstr "Editar" msgid "Edit Conditions" msgstr "Editar Condições" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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 "Editar Campos Personalizados para %1" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" msgstr "" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" +msgstr "" + +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "" + +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "Editar Relacionamentos" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Edit Relationships" -msgstr "" - -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Editar Esquemas para a fila %1" @@ -2080,7 +1987,7 @@ msgstr "Editar Esquemas para a fila %1" msgid "Edit keywords" msgstr "Editar palavras chave" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" msgstr "" @@ -2088,7 +1995,7 @@ msgstr "" msgid "Edit scrips" msgstr "Editar scrips" -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "Editar os modelos do sistema" @@ -2096,15 +2003,11 @@ msgstr "Editar os modelos do sistema" msgid "Edit templates for %1" msgstr "Editar os modelos para %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "Editando a configuração para a fila %1" @@ -2113,17 +2016,17 @@ msgstr "Editando a configuração para a fila %1" msgid "Editing Configuration for user %1" msgstr "Editando a configuração para o usuário %1" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "Editando o campo %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "Editando os membros do grupo %1" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "Editando os membros do grupo pessoal %1" @@ -2132,15 +2035,15 @@ msgstr "Editando os membros do grupo pessoal %1" msgid "Editing template %1" msgstr "Editando o modelo %1" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "Você deve especificar a origem ou o destinatário" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "Email" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "O endereço de email já está em uso" @@ -2152,76 +2055,61 @@ msgstr "Correio Eletrônico" msgid "EmailEncoding" msgstr "Codificação de Email" -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "Habilitado (Deselecionando este ítem desabilita este campo personalizado)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 msgid "Enabled (Unchecking this box disables this group)" msgstr "Habilitado (Deselecionando este ítem desabilita este grupo)" -#: html/Admin/Queues/Modify.html:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" msgstr "Habilitado (desassinalando desabilita esta fila)" #: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "Campos Personalizados Habilitados" -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" msgstr "Filas Habilitadas" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "Estado %1 habilitado" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) msgid "Enabled status: %1" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "Entre com múltiplos valores" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." msgstr "" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "Entre com um valor" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." msgstr "" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "Entre com identificadores de tíquete ou URIs que levam ao tíquete. Separe entradas múltiplas com espaços." -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:66 msgid "Enter up to %1 values" msgstr "" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "Erro" @@ -2229,7 +2117,7 @@ msgstr "Erro" msgid "Error adding watcher" msgstr "Erro ao adicionar um observador" -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "Erro nos parâmetros para Queue->AddWatcher" @@ -2237,11 +2125,11 @@ msgstr "Erro nos parâmetros para Queue->AddWatcher" msgid "Error in parameters to Queue->DelWatcher" msgstr "Erro nos parâmetros para Queue->DelWatcher" -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" msgstr "" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Erro nos parâmetros para Ticket->AddWatcher" @@ -2249,19 +2137,15 @@ msgstr "Erro nos parâmetros para Ticket->AddWatcher" msgid "Error in parameters to Ticket->DelWatcher" msgstr "Erro nos parâmetros para Ticket->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" msgstr "" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Estimate" -msgstr "" - -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" msgstr "" @@ -2269,7 +2153,7 @@ msgstr "" msgid "Everyone" msgstr "Todos" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "Exemplo:" @@ -2281,32 +2165,33 @@ msgstr "ExternalAuthId" msgid "ExternalContactInfoId" msgstr "ExternalContactInfoId" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "Informação adicional" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" -msgstr "" - -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "Não pude encontrar o pseudogrupo de usuários 'Privileged'." -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "Não pude encontrar o pseudogrupo de usuários 'Unprivileged'" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "Falhou ao carregar o módulo %1. (%2)" -#: lib/RT/Date.pm:412 +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "Fev." @@ -2314,39 +2199,51 @@ msgstr "Fev." msgid "February" msgstr "Fevereiro" -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:69 msgid "Fill in multiple text areas" msgstr "" -#: NOT FOUND IN SOURCE +#: 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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +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 "Fin" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "Prioridade Final" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "FinalPriority" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: NOT FOUND IN SOURCE msgid "Find group whose" msgstr "Encontrar o grupo cujo" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 msgid "Find groups whose" msgstr "" @@ -2354,11 +2251,11 @@ msgstr "" msgid "Find new/open tickets" msgstr "Encontrar tíquetes novos/abertos" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "Encontrar pessoas que" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "Encontrar tíquetes" @@ -2366,7 +2263,7 @@ msgstr "Encontrar tíquetes" msgid "Finish Approval" msgstr "Terminar Aprovação" -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "Primeiro" @@ -2374,52 +2271,52 @@ msgstr "Primeiro" msgid "First page" msgstr "Primeira página" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "Force alteração" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "Encontrado %quant(%1,tíquete)" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "Objeto Encontrado" -#: NOT FOUND IN SOURCE -msgid "Freeform" -msgstr "" - #: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FreeformContactInfo" -#: lib/RT/CustomField_Overlay.pm:37 +#: NOT FOUND IN SOURCE msgid "FreeformMultiple" msgstr "FreeformMultiple" -#: lib/RT/CustomField_Overlay.pm:36 +#: NOT FOUND IN SOURCE msgid "FreeformSingle" msgstr "FreeformSingle" -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "Sex." -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "Cabeçalhos completos" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" msgstr "" @@ -2427,16 +2324,16 @@ msgstr "" 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:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "Dado a %1" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "Global" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:55 msgid "Global Custom Fields" msgstr "" @@ -2448,16 +2345,20 @@ msgstr "Seleções de Palavras Chave Globais" msgid "Global Scrips" msgstr "Scrips Globais" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "Esquema global: %1" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" msgstr "" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "Ir!" @@ -2469,15 +2370,11 @@ msgstr "Assinatura pgp válida de %1\\n" msgid "Goto page" msgstr "Ir para a página" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "Ir para o tíquete" -#: NOT FOUND IN SOURCE -msgid "Grand" -msgstr "" - -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "Grupo" @@ -2485,11 +2382,11 @@ msgstr "Grupo" msgid "Group %1 %2: %3" msgstr "Grupo %1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "Direitos de Acesso do Grupo" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "O grupo já tem um membro" @@ -2497,20 +2394,20 @@ msgstr "O grupo já tem um membro" msgid "Group could not be created." msgstr "O grupo não pôde ser criado." -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "O grupo não pôde ser criado: %1" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "Grupo criado" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "O grupo não contém este membro" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "Grupo não encontrado" @@ -2522,44 +2419,42 @@ msgstr "Grupo não encontrado.\\n" msgid "Group not specified.\\n" msgstr "Grupo não especificado.\\n" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "Grupos" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "Grupos não podem ser membros de seus próprios membros" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:82 msgid "Groups matching search criteria" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowRequestor:77 msgid "Groups this user belongs to" msgstr "" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: lib/RT/Interface/CLI.pm:94 lib/RT/Interface/CLI.pm:94 msgid "Hello!" msgstr "Olá!" -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "Olá, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "Histórico" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) msgid "History of the group %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) msgid "History of the user %1" msgstr "" @@ -2567,11 +2462,11 @@ msgstr "" msgid "HomePhone" msgstr "Telefone Residencial" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "Homepage" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "Eu tenho %quant(%1,concrete mixer)." @@ -2580,11 +2475,15 @@ msgstr "Eu tenho %quant(%1,concrete mixer)." msgid "I have [quant,_1,concrete mixer]." msgstr "Tenho [quant,_1,concrete mixer]." -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "" + +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "Identificador" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "Identidade" @@ -2592,63 +2491,63 @@ msgstr "Identidade" msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "Se uma aprovação é rejeitada, rejeite a original e remova as aprovações pendentes" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." msgstr "" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." msgstr "" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." msgstr "Se esta ferramenta fosse setgid, um usuário local mal-intencionado poderia usá-la para obter acesso administrativo ao RT." -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 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:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "Valor ilegal para %1" -#: NOT FOUND IN SOURCE -msgid "Image" -msgstr "" - -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "Campo imutável" #: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "Incluir campoas personalizados desabilitados na listagem." -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." msgstr "" -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." msgstr "Incluir filas desabilitadas na listagem." -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "Incluir usuários desabilitados na busca." -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "Prioridade Inicial" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "InitialPriority" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "Erro de entrada" @@ -2656,20 +2555,20 @@ msgstr "Erro de entrada" msgid "Interest noted" msgstr "Interesse notado" -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "Erro Interno" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "Erro Interno: %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "Tipo Inválido de Grupo" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "Direito Inválido" @@ -2677,7 +2576,7 @@ msgstr "Direito Inválido" msgid "Invalid Type" msgstr "Tipo Inválido" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "Dado inválido" @@ -2685,44 +2584,48 @@ msgstr "Dado inválido" msgid "Invalid owner. Defaulting to 'nobody'." msgstr "Proprietário inválido. Usando 'nobody'." -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "Fila inválida" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "Direito de acesso inválido" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "Valor inválido para %1" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "Valor inválido para o campo personalizado" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "Valor inválido para o estado" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "É extremamente importante que usuários não privilegiados não possam executar esta ferramenta." -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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 que você crie um usuário UNIX não privilegiado com o grupo e acesso RT corretos para executar esta ferramenta." -#: bin/rt-crontool:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "Requer vários argumentos:" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Items pending my approval" msgstr "Itens requerendo minha aprovação" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "Jan." @@ -2730,11 +2633,11 @@ msgstr "Jan." msgid "January" msgstr "Janeiro" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "Entre ou deixe este grupo" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "Jul." @@ -2742,11 +2645,11 @@ msgstr "Jul." msgid "July" msgstr "Julho" -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "Jumbo" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "Jun." @@ -2762,23 +2665,23 @@ msgstr "Palavra chave" msgid "Lang" msgstr "Líng" -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" msgstr "" -#: html/Ticket/Elements/Tabs:74 +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "" + +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "Último" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "Último Contato" -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" - -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "Contactado em" @@ -2786,7 +2689,7 @@ msgstr "Contactado em" msgid "Last Notified" msgstr "Notificado em" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "Atualizado em" @@ -2794,19 +2697,19 @@ msgstr "Atualizado em" msgid "LastUpdated" msgstr "LastUpdated" -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" msgstr "" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "Resta" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "Deixar este usuário acessar RT" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" msgstr "Deixar este usuário receber direitos de acesso adicionais" @@ -2818,29 +2721,33 @@ msgstr "Limitando proprietário a %1 %2" msgid "Limiting queue to %1 %2" msgstr "Limitando fila a %1 %2" -#: lib/RT/Record.pm:1086 +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "" + +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "A ligação já existe" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "A ligação não pôde ser criada" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "Ligação criada (%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "Ligação removida (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "Ligação não encontrada" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "Ligar o tíquete #%1" @@ -2849,113 +2756,122 @@ msgstr "Ligar o tíquete #%1" msgid "Link ticket %1" msgstr "Ligar o tíquete %1" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "Ligações" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" msgstr "" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" msgstr "" -#: html/Admin/Tools/Configuration.html:19 +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "" + +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "Localização" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) 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:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "Assinado como %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "Entrar" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "Sair" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:866 msgid "Lookup type mismatch" msgstr "" -#: html/Search/Bulk.html:83 +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "Definir como proprietário" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "Definir o estado" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "Definir o prazo final" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "Definir a data de resolução" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" msgstr "Definir a data de iniciado" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" msgstr "Definir a data início" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "Definir a data de última alteração" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "Definir a prioridade" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "Definir a fila" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "Definir o assunto" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/index.html:78 msgid "Manage custom fields and custom field values" msgstr "" -#: html/Admin/index.html:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" msgstr "Administrar grupos e seus membros" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 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:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" msgstr "Administrar filas e suas propriedades específicas" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "Administrar usuários e senhas" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "Mar." @@ -2967,33 +2883,33 @@ msgstr "Março" msgid "May" msgstr "Maio" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "Mai." -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" msgstr "" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "Membro adicionado" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "Membro removido" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "Membro não removido" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "Membro de" @@ -3001,74 +2917,75 @@ msgstr "Membro de" msgid "MemberOf" msgstr "MemberOf" -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "Membros" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:61 msgid "Memberships" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) msgid "Memberships of the user %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" msgstr "União bem sucedida" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "União falhou. Não pude definir o EffectiveId" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "Unir a" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" msgstr "" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "Mensagem" -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" msgstr "" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." msgstr "" -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "" + +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "Faltando uma chave primária?: %1" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "Móvel" @@ -3076,15 +2993,7 @@ msgstr "Móvel" msgid "MobilePhone" msgstr "Celular" -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "Modificar Lista de Controle de Acesso" @@ -3092,31 +3001,37 @@ msgstr "Modificar Lista de Controle de Acesso" msgid "Modify Custom Field %1" msgstr "Modificar o campo personalizado %1" -#: NOT FOUND IN SOURCE +#: 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 "" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +#: 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:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: 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:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" msgstr "" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" msgstr "" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "Modificar esquemas de Scrip para esta fila" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" msgstr "Modificar Scrips para esta fila" @@ -3128,33 +3043,30 @@ msgstr "Modificar ACLs do Sistema" msgid "Modify Template %1" msgstr "Modificar Esquema %1" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: 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:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "Modificar um Campo Personalizado para a fila %1" -#: html/Admin/Global/CustomField.html:52 +#: NOT FOUND IN SOURCE msgid "Modify a CustomField which applies to all queues" msgstr "Modificar um Campo Personalizado que se aplica a todas as filas" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "Modificar um scrip para a fila %1" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "Modificar um scrip aplicável a todas as filas" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) msgid "Modify associated objects for %1" msgstr "" @@ -3162,21 +3074,25 @@ msgstr "" msgid "Modify dates for # %1" msgstr "Modificar datas para # %1" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "Modificar as datas para #%1" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "Modificar as datas para o tíquete # %1" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: 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 "Modificar direitos de acesso globais de grupo" -#: html/Admin/Global/GroupRights.html:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." msgstr "Modificar direitos de acesso globais de grupo." @@ -3192,108 +3108,110 @@ msgstr "Modificar direitos globais para usuários" msgid "Modify global scrips" msgstr "Modificar scrips globais" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 msgid "Modify global user rights" msgstr "Modificar direitos de acesso globais de usuário" -#: html/Admin/Global/UserRights.html:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "Modificar direitos de acesso globais de usuário." -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "Modificar metadados do grupo ou removê-lo" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" msgstr "" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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 "Modificar os direitos de acesso do grupo %1" -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($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:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "Modificar lista de membros deste grupo" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "Modificar sua própria conta RT" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" msgstr "Modificar as pessoas relacionadas à fila %1" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($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:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "Modificar os scrips da fila %1" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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 "Modificar scrips aplicáveis a todas as filas" -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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 "Modificar o modelo %1" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "Modificar esquemas que se aplicam a todas as filas" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" msgstr "Modificar o grupo %1" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "Modificar os observadores da fila" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "Modificar o usuário %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "Modificar o tíquete # %1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 #. ($TicketObj->Id) msgid "Modify ticket #%1" msgstr "Modificar o tíquete #%1" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "Modificar tíquetes" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) msgid "Modify user rights for custom field %1" msgstr "" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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 "Modificar os direitos de acesso de usuário para o grupo %1" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "Modificar os direitos de acesso de usuário para a fila %1" @@ -3302,64 +3220,64 @@ msgstr "Modificar os direitos de acesso de usuário para a fila %1" msgid "Modify watchers for queue '%1'" msgstr "Modificar os observadores para a fila '%1'" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" msgstr "ModifyACL" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "ModifyOwnMembership" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "ModifyQueueWatchers" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "ModifyScrips" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "ModifySelf" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "ModifyTemplate" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "ModifyTicket" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "Seg." -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "Mais sobre %1" -#: NOT FOUND IN SOURCE -msgid "Move" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "Descer" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "Subir" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "Múltiplo" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "O atributo 'Name' deve ser especificado" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" msgstr "" @@ -3368,47 +3286,39 @@ msgstr "" msgid "My Approvals" msgstr "Minhas Aprovações" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "Minhas aprovações" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" msgstr "" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "Nome" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "Nome em uso" -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" msgstr "Precisa de aprovação do administrador do sistema" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "Nunca" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "Novo" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "Novos Relacionamentos" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "Nova Senha" @@ -3416,39 +3326,31 @@ msgstr "Nova Senha" msgid "New Pending Approval" msgstr "Nova Aprovação Pendente" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" msgstr "" -#: NOT FOUND IN SOURCE -msgid "New Relationships" -msgstr "" - #: NOT FOUND IN SOURCE msgid "New Search" msgstr "Nova busca" -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "Novo campo personalizado" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "Novo grupo" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "Nova senha" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "Notificação de nova senha enviada" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "Nova fila" @@ -3456,11 +3358,11 @@ msgstr "Nova fila" msgid "New request" msgstr "Nova requisição" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "Novos direitos de acesso" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "Novo scrip" @@ -3468,27 +3370,27 @@ msgstr "Novo scrip" msgid "New search" msgstr "Nova busca" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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 "Novo esquema" -#: html/SelfService/Elements/Tabs:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "O novo tíquete não existe" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "Novo usuário" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "Novo usuário chamado" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "Novos observadores" @@ -3496,11 +3398,11 @@ msgstr "Novos observadores" msgid "New window setting" msgstr "Abrir nova janela" -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "Próximo" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" msgstr "" @@ -3512,43 +3414,39 @@ msgstr "Próxima página" msgid "NickName" msgstr "Apelido" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "Apelido" -#: NOT FOUND IN SOURCE -msgid "No" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "Não há Campo Personalizado" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" msgstr "" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" msgstr "Não há Grupo definido" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" msgstr "" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" msgstr "Não há Fila definida" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 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:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "Não há Modelo" @@ -3560,11 +3458,11 @@ msgstr "Não há Tíquete especificado. Abortando o tíquete " 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:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "Não há ação" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "Não há coluna especificada" @@ -3572,7 +3470,7 @@ msgstr "Não há coluna especificada" msgid "No command found\\n" msgstr "Comando não encontrado\\n" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" msgstr "Não há comentário sobre este usuário" @@ -3580,72 +3478,77 @@ msgstr "Não há comentário sobre este usuário" msgid "No correspondence attached" msgstr "Não há nenhum arquivo anexado" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "Não há descrição para %1" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "Não há grupo especificado" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:52 msgid "No groups matching search criteria found." msgstr "" -#: lib/RT/Ticket_Overlay.pm:2475 +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" msgstr "" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "Não há senha especificada" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" msgstr "Não há permissão para criar filas" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($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:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "Sem permissão para criar usuários" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" msgstr "Sem permissão para mostrar o tíquete" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" msgstr "sem permissão para ver modificar o tíquete" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "Não há principal especificado" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." msgstr "Não há principal selecionado." -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." msgstr "Não há fila satisfazendo o critério de busca." -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "Nenhum direito encontrado" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "Nenhum direito outorgado." -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." msgstr "Não há busca a realizar" -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" msgstr "" @@ -3653,7 +3556,7 @@ msgstr "" msgid "No ticket id specified" msgstr "Não há identificador de tíquete especificado" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "Não há tipo de transação especificada" @@ -3661,7 +3564,7 @@ msgstr "Não há tipo de transação especificada" msgid "No user or email address specified" msgstr "Não há usuário ou endereço de email especificado" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "Nenhum usuário satisfazendo o critério de busca foi encontrado." @@ -3669,15 +3572,15 @@ msgstr "Nenhum usuário satisfazendo o critério de busca foi encontrado." msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Nenhum usuário RT válido foi encontrado. O tratador de CVS do RT está desabilitado. Por favor, consulte o administrador do RT.\\n" -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "Nenhum valor enviado a _Set!\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "Ninguém" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "Campo inexistente?" @@ -3685,15 +3588,15 @@ msgstr "Campo inexistente?" msgid "Not logged in" msgstr "Não logado" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "Não entrou." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "Não definido" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "Ainda não implementado." @@ -3701,11 +3604,11 @@ msgstr "Ainda não implementado." msgid "Not yet implemented...." msgstr "Ainda não implementado..." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "Notas" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "A notificação não pôde ser enviada" @@ -3777,7 +3680,7 @@ msgstr "Notificar Requisitantes, Ccs e AdminCcs" msgid "Notify Requestors, Ccs and AdminCcs as Comment" msgstr "Notificar Requisitantes, Ccs e AdminCcs como Comentário" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "Nov." @@ -3785,23 +3688,37 @@ msgstr "Nov." msgid "November" msgstr "Novembro" -#: lib/RT/Record.pm:200 +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "" + +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "Objeto não pôde ser criado" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "Objeto criado" -#: NOT FOUND IN SOURCE +#: lib/RT/Record.pm:121 +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 "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:901 msgid "Object type mismatch" msgstr "" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "Out." @@ -3809,19 +3726,19 @@ msgstr "Out." msgid "October" msgstr "Outubro" -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" msgstr "" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" msgstr "" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" msgstr "" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "Em" @@ -3861,21 +3778,21 @@ msgstr "Sobre Mudança de Estado" msgid "On Transaction" msgstr "Sobre Transação" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='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:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "Só mostrar aprovações para requisições criadas antes de %1" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "Aberto" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "Abrir" @@ -3883,7 +3800,7 @@ msgstr "Abrir" msgid "Open requests" msgstr "Requisições abertas" -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" msgstr "" @@ -3899,7 +3816,7 @@ msgstr "Abrir tíquetes (da listagem) em outra janela" msgid "Open tickets on correspondence" msgstr "Abrir tíquetes na correspondência" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" msgstr "" @@ -3907,40 +3824,36 @@ msgstr "" msgid "Ordering and sorting" msgstr "Requisitando e ordenando" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "Organização" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "Tíquete originador: #%1" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" msgstr "" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" msgstr "" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "Após a data, a prioridade tende a" -#: NOT FOUND IN SOURCE -msgid "Overview" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "Próprios tíquetes" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "OwnTicket" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" msgstr "Proprietário" @@ -3948,11 +3861,11 @@ msgstr "Proprietário" msgid "Owner changed from %1 to %2" msgstr "Proprietário mudou de %1 para %2" -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." msgstr "" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "Proprietário alterado à força de %1 para %2" @@ -3961,12 +3874,12 @@ msgstr "Proprietário alterado à força de %1 para %2" msgid "Owner is" msgstr "O proprietário é" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" msgstr "" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "Pager" @@ -3978,36 +3891,53 @@ msgstr "Telefone do Pager" msgid "Parent" msgstr "Pai" -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "Pais" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "Senha" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "Lembrete de Senha" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "Senha muito curta" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Senha: %1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." msgstr "" -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "Pessoas" @@ -4015,39 +3945,31 @@ msgstr "Pessoas" msgid "Perform a user-defined action" msgstr "Realizar uma ação definida pelo usuário" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" msgstr "" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "Permissão Negada" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "Grupoas Pessoais" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "Grupos pessoais" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "Grupos pessoais:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "Telefones" -#: NOT FOUND IN SOURCE -msgid "Placeholder" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Pref" -msgstr "" - -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "Preferências" @@ -4055,15 +3977,15 @@ msgstr "Preferências" msgid "Prefs" msgstr "Prefs" -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "Anterior" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" msgstr "" @@ -4075,20 +3997,20 @@ msgstr "Página anterior" msgid "Pri" msgstr "Pri" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "Principal %1 não encontrado." -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "Prioridade" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "A prioridade inicia em" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" msgstr "" @@ -4096,36 +4018,32 @@ msgstr "" msgid "Privileged" msgstr "Privilegiado" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "Estado privilegiado: %1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "Usuários privilegiados" -#: 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 "Falso-grupo para uso interno" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" msgstr "" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" msgstr "" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "Fila" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" @@ -4139,7 +4057,7 @@ msgstr "A fila '%1' não foi encontrada\\n" msgid "Queue Keyword Selections" msgstr "Seleções de Palavras-chave da Fila" -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "Nome da Fila" @@ -4147,19 +4065,19 @@ msgstr "Nome da Fila" msgid "Queue Scrips" msgstr "Scrips da Fila" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "A fila já existe" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" msgstr "A fila não pôde ser criada" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 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:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" msgstr "Fila criada" @@ -4167,32 +4085,32 @@ msgstr "Fila criada" msgid "Queue is not specified." msgstr "A fila não foi especificada." -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" msgstr "Fila não encontrada" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "Filas" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" msgstr "" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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 para %2" @@ -4209,7 +4127,7 @@ msgstr "RT %1. Direitos reservados 1996-%1 Jesse Vincent <jesse\\@bestpractical. 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:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "Adiministração do RT" @@ -4229,7 +4147,7 @@ msgstr "Erro de configuração do RT" msgid "RT Critical error. Message not recorded!" msgstr "Erro crítico no RT. A mensagem não foi registrada!" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "Erro no RT" @@ -4241,19 +4159,15 @@ msgstr "O RT recebeu email (%1) dele próprio." msgid "RT Recieved mail (%1) from itself." msgstr "O RT recebeu email (%1) de si próprio." -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "Auto-serviço do RT / Tíquetes Fechados" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" msgstr "" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "RT por alto" @@ -4269,11 +4183,15 @@ msgstr "O RT não pôde encontrar o requisitante através de consulta ao banco d msgid "RT couldn't find the queue: %1" msgstr "O RT não pôde encontrar a fila: %1" +#: html/Elements/SetupSessionCookie:90 +msgid "RT couldn't store your session." +msgstr "" + #: 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/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "RT para %1" @@ -4290,10 +4208,6 @@ msgstr "O RT processou seus comandos" 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 tem © Direitos Reservados 1996-%1 Jesse Vincent <jesse@bestpractical.com>. Ele é distribuído sob a <a href=\"http://www.gnu.org/copyleft/gpl.html\">Versão 2 da Licença Pública Geral GNU (GPL).</a>" -#: 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 "" - #: 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 tem © Direitos Reservados 1996-%1 por Jesse Vincent <jesse@bestpractical.com>. Ele é distribuído sob a <a href=\\\"http://www.gnu.org/copyleft/gpl.html\\\">Versão 2 da Licença Pública Geral GNU (GPL).</a>" @@ -4310,11 +4224,7 @@ msgstr "O RT vai processar esta mensagem como se não fosse assinada.\\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 email do RT requer autenticação PGP. Ou você não assinou sua mensagem ou sua assinatura não pôde ser verificada." -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "Nome real" @@ -4322,31 +4232,31 @@ msgstr "Nome real" msgid "RealName" msgstr "Nome real" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" msgstr "" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" msgstr "" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "Referenciado por" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "Faz referência a" @@ -4362,48 +4272,44 @@ msgstr "Refinar" msgid "Refine search" msgstr "Refinar a Busca" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "Recarregar esta página a cada %1 minutos." -#: NOT FOUND IN SOURCE -msgid "Relationships" -msgstr "" - -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "Remover AdminCc" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "Remover Cc" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "Remover Requisitante" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "Responder" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" msgstr "" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" msgstr "" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "Responder aos tíquetes" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "ReplyToTicket" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "Requisitante" @@ -4419,37 +4325,37 @@ msgstr "Requisitante(s)" msgid "RequestorAddresses" msgstr "RequestorAddresses" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "Requisitantes" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "A requisições vencem em" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" msgstr "" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "Restaurar" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "Residência" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "Resolver" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "Resolver tíquete #%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "Resolvido" @@ -4457,7 +4363,7 @@ msgstr "Resolvido" msgid "Response to requestors" msgstr "Resposta aos requisitantes" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "Resultados" @@ -4465,11 +4371,11 @@ msgstr "Resultados" msgid "Results per page" msgstr "Resultados por página" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "Confirmar a Senha" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" msgstr "" @@ -4477,49 +4383,49 @@ msgstr "" 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:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "Direito de Acesso Delegado" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "Direito de Acesso Outorgado" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "Direito de Acesso Carregado" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "Direito de acesso não pôde ser revogado" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "Direito de acesso não encontrado" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "Direito de acesso não carregado." -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "Direito de acesso revogado" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "Direitos de Acesso" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "Direitos de acesso não puderam ser outorgados a %1" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($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:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "Papéis" @@ -4527,53 +4433,59 @@ msgstr "Papéis" msgid "RootApproval" msgstr "RootApproval" -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" msgstr "" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "Sáb." -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" msgstr "" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "Salvar as Alterações" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" msgstr "" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "Salvar as alterações" -#: html/Search/Elements/EditSearches:1 +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "" + +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" msgstr "" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" msgstr "Scrip #%1" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "Scrip Criado" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" msgstr "" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "Scrip removido" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "Scrips" @@ -4581,11 +4493,11 @@ msgstr "Scrips" msgid "Scrips for %1\\n" msgstr "Scrips para %1\\n" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" msgstr "Scrips aplicáveis a todas as filas" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "Buscar" @@ -4593,127 +4505,136 @@ msgstr "Buscar" msgid "Search Criteria" msgstr "Critérios de Busca" -#: html/Approvals/Elements/PendingMyApproval:38 +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "Buscar por aprovações" -#: NOT FOUND IN SOURCE -msgid "Search for articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Searches can't be associated with that kind of object" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" msgstr "" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" msgstr "Segurança:" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "See custom fields" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" msgstr "" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" msgstr "" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "SeeCustomField" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 -msgid "SeeQueue" -msgstr "SeeQueue" - -#: NOT FOUND IN SOURCE -msgid "Select" +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Class" -msgstr "" +#: lib/RT/Queue_Overlay.pm:92 +msgid "SeeQueue" +msgstr "SeeQueue" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 msgid "Select a Custom Field" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" -msgstr "" - -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" msgstr "Selecionar um grupo" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" msgstr "Selecionar uma fila" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 +#: 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 "Selecionar um usuário" -#: NOT FOUND IN SOURCE -msgid "Select class" -msgstr "" - -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +#: html/Admin/Elements/CustomFieldTabs:90 msgid "Select custom field" msgstr "Selecionar um campo personalizado" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: 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 "Selecionar um grupo" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "Selecionar múltiplos valores" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "Selecionar um valor" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" msgstr "Selecionar uma fila" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "Selecionar um scrip" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "Selecionar um esquema" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:61 msgid "Select up to %1 values" msgstr "" -#: html/Admin/Elements/UserTabs:46 +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "Selecionar um usuário" -#: lib/RT/CustomField_Overlay.pm:35 +#: NOT FOUND IN SOURCE msgid "SelectMultiple" msgstr "SelectMultiple" -#: lib/RT/CustomField_Overlay.pm:34 +#: NOT FOUND IN SOURCE msgid "SelectSingle" msgstr "SelectSingle" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:58 msgid "Selected Custom Fields" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:59 msgid "Selected objects" msgstr "" @@ -4765,59 +4686,51 @@ msgstr "Envia uma mensagem aos Ccs administrativos como um comentário" msgid "Sends mail to the owner" msgstr "Envia uma mensagem ao proprietário" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "Set." -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" - #: NOT FOUND IN SOURCE msgid "September" msgstr "Setembro" -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" msgstr "" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" msgstr "" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" msgstr "" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "Mostrar os Resultados" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "Mostrar requisições aprovadas" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "Mostrar o sumário" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "Mostrar requisições negadas" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "Mostrar os detalhes" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "Mostrar requisições pendentes" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "Mostrar requisições aguardando outras aprovações" @@ -4829,43 +4742,47 @@ msgstr "Mostrar comentário privado do tíquete" msgid "Show ticket summaries" msgstr "Mostrar sumários do tíquete" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" msgstr "ShowACL" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" msgstr "" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" msgstr "" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "ShowScrips" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "ShowTemplate" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "ShowTicket" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "ShowTicketComments" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 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:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "Cadastrar como um AdminCC de tíquete ou fila" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "Assinatura" @@ -4873,20 +4790,24 @@ msgstr "Assinatura" msgid "Signed in as %1" msgstr "Assinado como %1" -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "Único" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 msgid "Skip Menu" msgstr "Saltar Menu" -#: html/Admin/Elements/AddCustomFieldValue:27 -msgid "Sort" +#: html/Search/Elements/EditFormat:78 +msgid "Small" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Sort Order" +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 +msgid "Sort" msgstr "" #: NOT FOUND IN SOURCE @@ -4901,11 +4822,7 @@ msgstr "Ordenar os resultados por" msgid "SortOrder" msgstr "Ordenação" -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" - -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" msgstr "" @@ -4917,7 +4834,7 @@ msgstr "Pendente" msgid "Start page" msgstr "Página inicial" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "Iniciado" @@ -4925,7 +4842,7 @@ msgstr "Iniciado" msgid "Started date '%1' could not be parsed" msgstr "A data de iníciado '%1' não pôde ser compreendida" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "Inicia" @@ -4937,11 +4854,11 @@ msgstr "Inicia Por" 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:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "Estado" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "Estado" @@ -4949,8 +4866,7 @@ msgstr "Estado" msgid "Status Change" msgstr "Mudança de Estado" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" msgstr "Estado alterado de %1 para %2" @@ -4958,73 +4874,69 @@ msgstr "Estado alterado de %1 para %2" msgid "StatusChange" msgstr "StatusChange" -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "Roubar" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) +msgid "Stolen from %1" +msgstr "Roubado de %1" + +#: NOT FOUND IN SOURCE msgid "Stolen from %1 " msgstr "Roubado de %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 +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" + +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "Assunto" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "Assunto modou para %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "Enviar" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "Enviar Workflow" -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" msgstr "Deu certo" -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" - -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "Dom." -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "SuperUser" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "Sistema" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" msgstr "" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" msgstr "Erro do Sistema" @@ -5036,15 +4948,20 @@ msgstr "Erro de sistema. Direito não outorgado." msgid "System Error. right not granted" msgstr "Erro de sistema. direito não outorgado" -#: html/Admin/Tools/index.html:2 +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" +msgstr "" + +#: html/Admin/Tools/index.html:47 msgid "System Tools" msgstr "" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "Erro do sistema. Direito de acesso não delegado." -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "Erro do sistema. Direito de acesso não outorgado." @@ -5052,7 +4969,7 @@ msgstr "Erro do sistema. Direito de acesso não outorgado." msgid "System error. Unable to grant rights." msgstr "Erro de sistema. Não posso outorgar direitos de acesso." -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "Grupos do sistema" @@ -5060,44 +4977,40 @@ msgstr "Grupos do sistema" msgid "SystemRolegroup for internal use" msgstr "SystemRolegroup para uso interno" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "Tomar" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" msgstr "" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" msgstr "" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "Tomado" -#: NOT FOUND IN SOURCE -msgid "Task" -msgstr "" - -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "Modelo" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Esquema #%1" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "Esquema removido" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "Modelo não encontrado" @@ -5105,11 +5018,11 @@ msgstr "Modelo não encontrado" msgid "Template not found\\n" msgstr "Modelo não encontrado\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "Modelo processado" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "Modelos" @@ -5117,37 +5030,33 @@ msgstr "Modelos" msgid "Templates for %1\\n" msgstr "Modelos de %1\\n" -#: NOT FOUND IN SOURCE -msgid "Text" -msgstr "" - -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "Este já é o valor atual" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 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:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "Este é o mesmo valor" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" msgstr "" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Este principal já é um %1 para esta fila" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "Este principal já é um %1 para este tíquete" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "Este principal não é um %1 para esta fila" @@ -5156,11 +5065,11 @@ msgstr "Este principal não é um %1 para esta fila" msgid "That principal is not a %1 for this ticket" msgstr "Este principal não é um %1 para este tíquete" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" msgstr "Esta fila não existe" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "Este tíquete tem dependências não resolvidas" @@ -5168,27 +5077,27 @@ msgstr "Este tíquete tem dependências não resolvidas" msgid "That user already has that right" msgstr "Este usuário já tem este direito de acesso" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" msgstr "Este usuário já possui este tíquete" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "Este usuário não existe" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "Este usuário já tem privilégios" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" msgstr "Este usuário já não tem privilégios" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "Este usuário agora tem privilégios" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" msgstr "Este usuário agora não tem privilégios" @@ -5196,23 +5105,23 @@ msgstr "Este usuário agora não tem privilégios" msgid "That user is now unprivilegedileged" msgstr "Este usuário agora é não privilegiado" -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 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:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "Este não é um identificador numérico" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "Sumário" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "O CC de um tíquete" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "O CC administrativo de um tíquete" @@ -5220,7 +5129,7 @@ msgstr "O CC administrativo de um tíquete" msgid "The comment has been recorded" msgstr "O comentário foi registrado" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 em 4 horas:" @@ -5228,31 +5137,31 @@ msgstr "O seguinte comando procurará por todos os tíquetes ativos na fila 'ger msgid "The following commands were not proccessed:\\n\\n" msgstr "Os seguintes comandos não foram processados:\\n\\n" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "O novo valor foi atribuído." -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "O proprietário de um tíquete" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "O requisitante de um tíquete" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "Estes comandos geralmente não estão visíveis para o usuário" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:912 msgid "This custom field does not apply to that object" msgstr "" -#: html/Admin/Tools/Configuration.html:5 +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" msgstr "" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." msgstr "" @@ -5260,15 +5169,15 @@ msgstr "" msgid "This ticket %1 %2 (%3)\\n" msgstr "Este tíquete %1 %2 (%3)\\n" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 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:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "Parece que esta transação não tem conteúdo" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "Os %1 tíquetes mais prioritários deste usuário" @@ -5277,7 +5186,7 @@ msgstr "Os %1 tíquetes mais prioritários deste usuário" msgid "This user's 25 highest priority tickets" msgstr "Os 25 tíquetes de mais alta prioridade deste usuário" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "Qui." @@ -5293,24 +5202,24 @@ msgstr "Tíquete # %1 %2" msgid "Ticket # %1 Jumbo update: %2" msgstr "Tíquete # %1 atualização jumbo: %2" -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" msgstr "Tíquete #%1 Atualização jumbo: %2" -#: html/Approvals/Elements/ShowDependency:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "Tíquete #%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" msgstr "" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "Tíquete %1 criado na fila '%2'" @@ -5319,16 +5228,16 @@ msgstr "Tíquete %1 criado na fila '%2'" msgid "Ticket %1 loaded\\n" msgstr "Tíquete %1 carregado\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "Tíquete %1: %2" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:74 msgid "Ticket Custom Fields" msgstr "" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "Histórico do Tíquete # %1 %2" @@ -5341,7 +5250,7 @@ msgstr "Identificador do tíquete" msgid "Ticket Resolved" msgstr "Tíquete Resolvido" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 msgid "Ticket Transactions" msgstr "" @@ -5349,19 +5258,19 @@ msgstr "" msgid "Ticket attachment" msgstr "Arquivo anexo do tíquete" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "Conteúdo do tíquete" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "Tipo do conteúdo do tíquete" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 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" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "Tíquete criado" @@ -5369,7 +5278,7 @@ msgstr "Tíquete criado" msgid "Ticket creation failed" msgstr "A criação do tíquete falhou" -#: lib/RT/Transaction_Overlay.pm:502 +#: NOT FOUND IN SOURCE msgid "Ticket deleted" msgstr "Tíquete removido" @@ -5381,7 +5290,7 @@ msgstr "Id de tíquete não encontrado" msgid "Ticket killed" msgstr "Tíquete destruído" -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" msgstr "" @@ -5397,17 +5306,20 @@ msgstr "O estado do tíquete mudou" msgid "Ticket watchers" msgstr "Observadores do tíquete" -#: html/Elements/Tabs:46 +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "" + +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 msgid "Tickets" msgstr "Tíquetes" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 %2" msgstr "Tíquetes %1 %2" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 by %2" msgstr "Tíquetes %1 por %2" @@ -5415,31 +5327,31 @@ msgstr "Tíquetes %1 por %2" msgid "Tickets from %1" msgstr "Tíquetes de %1" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "Tíquetes dependentes desta aprovação:" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" msgstr "" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "Tempo Restante" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "Tempo Trabalhado" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" msgstr "Tempo restante" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "Tempo de apresentação" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" msgstr "Tempo trabalhado" @@ -5447,10 +5359,14 @@ msgstr "Tempo trabalhado" msgid "TimeLeft" msgstr "TimeLeft" -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" msgstr "TimeWorked" +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "" + #: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "Para gerar as diferenças desta transação" @@ -5459,16 +5375,16 @@ msgstr "Para gerar as diferenças desta transação" msgid "To generate a diff of this commit:\\n" msgstr "Para gerar as diferenças desta transação:\\n" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<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:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "Última atualização" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" msgstr "" @@ -5476,28 +5392,28 @@ msgstr "" msgid "Transaction" msgstr "Transação" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Transação %1 removida" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "Transação Criada" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:78 msgid "Transaction Custom Fields" msgstr "" -#: lib/RT/Transaction_Overlay.pm:92 +#: NOT FOUND IN SOURCE msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "Transaction->Create não pôde, já que você não especificou um id de tíquete" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:125 msgid "Transaction->Create couldn't, as you didn't specify an object type and id" msgstr "" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "Transações são imutáveis" @@ -5505,23 +5421,19 @@ msgstr "Transações são imutáveis" msgid "Trying to delete a right: %1" msgstr "Tentando remover um direito de acesso: %1" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "Ter." -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "Tipo" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "Não implementado" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "Usuário Unix" @@ -5529,16 +5441,21 @@ msgstr "Usuário Unix" msgid "UnixUsername" msgstr "Usuário Unix" -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "Codificação de conteúdo desconhecida %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "Ilimitado" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" msgstr "" @@ -5546,27 +5463,23 @@ msgstr "" msgid "Unprivileged" msgstr "Não privilegiado" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:60 msgid "Unselected Custom Fields" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:61 msgid "Unselected objects" msgstr "" -#: lib/RT/Transaction_Overlay.pm:562 +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" msgstr "Não tomado" -#: NOT FOUND IN SOURCE -msgid "Untitled search" -msgstr "" - -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "Atualizar" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" msgstr "" @@ -5574,11 +5487,11 @@ msgstr "" msgid "Update ID" msgstr "Identificador de atualização" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" msgstr "" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "Tipo de atualização" @@ -5590,7 +5503,7 @@ msgstr "Atualizar todos estes tíquetes de uma vez" msgid "Update email" msgstr "Atualizar email" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" msgstr "" @@ -5598,11 +5511,11 @@ msgstr "" msgid "Update name" msgstr "Atualizar nome" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "Atualização não registrada." -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "Atualizar os tíquetes selecionados" @@ -5610,7 +5523,7 @@ msgstr "Atualizar os tíquetes selecionados" msgid "Update signature" msgstr "Atualizar assinatura" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "Atualizar o tíquete" @@ -5618,58 +5531,58 @@ msgstr "Atualizar o tíquete" msgid "Update ticket # %1" msgstr "Atualizar o tíquete # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "Atualizar o tíquete #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "Atualizar tíquete #%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 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:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "Atualizado" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:84 msgid "Upload multiple files" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:79 msgid "Upload multiple images" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:85 msgid "Upload one file" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:80 msgid "Upload one image" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:86 msgid "Upload up to %1 files" msgstr "" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:81 msgid "Upload up to %1 images" msgstr "" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" msgstr "" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" #: NOT FOUND IN SOURCE @@ -5680,7 +5593,7 @@ msgstr "Usuário %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Usuário %1 Senha: %2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." msgstr "" @@ -5697,7 +5610,7 @@ msgstr "Usuário '%1' não encontrado\\n" msgid "User Defined" msgstr "Definido pelo Usuário" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" msgstr "" @@ -5705,32 +5618,33 @@ msgstr "" msgid "User ID" msgstr "Identificador de usuário" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "Identificador do usuário" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "Direitos de Acesso de Usuário" -#: NOT FOUND IN SOURCE +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" msgstr "" -#: html/Admin/Users/Modify.html:252 +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "O usuário não pôde ser criado: %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "Usuário criado" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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 "Grupos definidos pelo usuário" -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" msgstr "" @@ -5742,23 +5656,23 @@ msgstr "Usuário notificado" msgid "User view" msgstr "Visualização de usuário" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:99 msgid "User-defined groups" msgstr "" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "Nome de usuário" -#: 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 +#: 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:1086 msgid "Users" msgstr "Usuários" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "Usuários que satisfazem o critério de busca" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" msgstr "" @@ -5766,19 +5680,15 @@ msgstr "" msgid "ValueOfQueue" msgstr "Valor da fila" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "Valores" -#: NOT FOUND IN SOURCE -msgid "VrijevormEnkele" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "Observar" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "WatchAsAdminCc" @@ -5786,7 +5696,7 @@ msgstr "WatchAsAdminCc" msgid "Watcher loaded" msgstr "Observador carregado" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "Observadores" @@ -5794,7 +5704,7 @@ msgstr "Observadores" msgid "WebEncoding" msgstr "Codificação de Web" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "Qua." @@ -5850,19 +5760,11 @@ msgstr "Sempre que um novo comentário é adicionado" msgid "Whenever correspondence comes in" msgstr "Sempre que uma nova correspondência é adicionada" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "Trabalho" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" msgstr "" @@ -5870,31 +5772,19 @@ msgstr "" msgid "WorkPhone" msgstr "Telefone de trabalho" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "Trabalhado" -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Yes" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" msgstr "Você já é proprietário deste tíquete" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" msgstr "Você não é um usuário autorizado" -#: NOT FOUND IN SOURCE -msgid "You can access it with the Download button on the right." -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 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" @@ -5902,24 +5792,24 @@ msgstr "Você só pode reatribuir seus próprios tíquetes ou aqueles que não t 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:760 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 #. ($num, $queue) msgid "You found %1 tickets in queue %2" msgstr "Você encontrou %1 tíquetes na fila %2" -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "Você foi desconectado do RT." -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 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:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." msgstr "Você não pode criar requisições nesta fila." -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "Volte sempre" @@ -5947,11 +5837,11 @@ msgstr "Sua requisição foi rejeitada" msgid "Your request was rejected." msgstr "Sua requisição foi rejeitada." -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "Nome de usuário ou senha incorretos" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "CEP" @@ -5959,24 +5849,28 @@ msgstr "CEP" msgid "[no subject]" msgstr "[sem assunto]" -#: NOT FOUND IN SOURCE -msgid "and is not" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "and not" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" msgstr "" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "como outorgado a %1" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "contém" @@ -5996,7 +5890,7 @@ msgstr "correspondência (provavelmente) não enviada" msgid "correspondence sent" msgstr "correspondência enviada" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "dias" @@ -6008,26 +5902,50 @@ msgstr "morto" msgid "delete" msgstr "remover" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "removido" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "não satisfaz" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "não contém" -#: NOT FOUND IN SOURCE -msgid "email address" -msgstr "" - -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "igual a" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "" + #: NOT FOUND IN SOURCE msgid "false" msgstr "falso" @@ -6036,48 +5954,44 @@ msgstr "falso" msgid "filename" msgstr "filename" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "maior que" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "grupo '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "horas" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "identificador" -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" - -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "é" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "não é" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "menor que" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "satisfaz" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "min" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "minutos" @@ -6085,27 +5999,27 @@ msgstr "minutos" msgid "modifications\\n\\n" msgstr "modificações\\n\\n" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "meses" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "novo" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" msgstr "" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "sem valor" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "nenhum" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "diferente de" @@ -6113,72 +6027,68 @@ msgstr "diferente de" msgid "notlike" msgstr "diferente" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "aberto" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($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:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "fila %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "rejeitado" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "resolvido" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "seg" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "" + +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "pendente" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "sistema %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "grupo do sistema '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "o componente chamador não especificou por que" -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "" - -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "tíquete #%1 %2" -#: NOT FOUND IN SOURCE -msgid "till" -msgstr "" - #: NOT FOUND IN SOURCE msgid "true" msgstr "verdadeiro" -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "grupo %1 não descrito" @@ -6187,12 +6097,12 @@ msgstr "grupo %1 não descrito" msgid "undescripbed group %1" msgstr "grupo sem descrição %1" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "usuário %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "semanas" @@ -6200,11 +6110,7 @@ msgstr "semanas" msgid "with template %1" msgstr "com modelo %1" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "anos" -#: NOT FOUND IN SOURCE -msgid "ニックãƒãƒ¼ãƒ " -msgstr "" - diff --git a/rt/lib/RT/I18N/ru.po b/rt/lib/RT/I18N/ru.po index 981b9cd02..cd93e0412 100644 --- a/rt/lib/RT/I18N/ru.po +++ b/rt/lib/RT/I18N/ru.po @@ -1,289 +1,254 @@ +# translation of ru-nortfm.po to Russian +# translation of ru.po to Russian +# Andrew Kornilov <andy@eva.dp.ua>, 2004, 2005. msgid "" msgstr "" -"Last-Translator: Kirill Pushkin <kirill@mns.ru>\n" -"PO-Revision-Date: 2002-10-04 19:28+0400\n" +"Last-Translator: Andrew Kornilov <andy@eva.dp.ua>\n" +"PO-Revision-Date: 2005-03-11 15:38+0200\n" "Language-Team: Russian <ru@li.org>\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 0.9.6\n" +"X-Generator: KBabel 1.9.1\n" +"Project-Id-Version: ru\n" +"MIME-Version: 1.0\n" #: NOT FOUND IN SOURCE msgid "#" msgstr "№" -#: NOT FOUND IN SOURCE -msgid "#%1" -msgstr "" - -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" msgstr "" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) -msgid "%1 %2 %3" -msgstr "" - -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" -msgstr "" +msgstr "%1 %2 добавлен" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "%1 %2 назад" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%1 %2 изменено на %3" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" -msgstr "" +msgstr "%1 %2 удален" #: NOT FOUND IN SOURCE msgid "%1 %2 of group %3" -msgstr "" +msgstr "%1 %2 of group %3" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) msgid "%1 %2 with template %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 הוסף" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 מקבוצה %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 נמחק" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 שונה ל %3" -msgstr "" +msgstr "%1 %2 Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ %3" #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" -msgstr "%1 (%2) %3 Ñтот тикет\\n" +msgstr "%1 (%2) %3 Ñта заÑвка\\n" -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 פנייה זו\\n" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" msgstr "" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" -msgstr "" +msgstr "%1 (Ðе менÑть)" #: NOT FOUND IN SOURCE msgid "%1 - %2 shown" -msgstr "" +msgstr "%1 - %2 показано" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" -msgstr "" +msgstr "%1 - Ðргумент Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ñ‡Ð¸ в %2" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 - ×רגומנט להעביר ×ל %2" msgstr "" $RT::VERSION, - '2004', + '2005', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) $RT::VERSION, - '2004', + '2005', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 +#: html/Elements/Footer:58 #. ('»|«', $RT::VERSION, - '2004', + '2005', '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" -msgstr "%1 Ñкрипт загружен" +msgstr "%1 СкриплетÐаДейÑтвие загружен" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($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 алиаÑÑ‹ требуют идентификатор тикета Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹" +msgstr "%1 пÑевдонимы требуют идентификатор заÑвки Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹" #: NOT FOUND IN SOURCE msgid "%1 aliases require a TicketId to work on " -msgstr "%1 алиаÑÑ‹ требуют идентификатор тикета Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ " +msgstr "%1 пÑевдонимы требуют идентификатор заÑвки Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ " #: NOT FOUND IN SOURCE msgid "%1 aliases require a TicketId to work on (from %2) %3" -msgstr "%1 алиаÑÑ‹ требуют идентификатор тикета Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ над (от %2) %3" +msgstr "%1 пÑевдонимы требуют идентификатор заÑвки Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð»Ð¶ÐµÐ½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ над (от %2) %3" -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($args{'Base'}) #. ($args{'Target'}) msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "" +msgstr "%1 ÑвлÑетÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼ объектом, но не найден в базе данных" -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 пользователем %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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") msgid "%1 changed from %2 to %3" -msgstr "%1 изменилоÑÑŒ Ñ %2 на %3" +msgstr "%1 изменена Ñ %2 на %3" -#: html/Search/Build.html:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" -msgstr "" +msgstr "%1 копиÑ" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." -msgstr "ÐÐµÐ»ÑŒÐ·Ñ ÑƒÑтановить %1 в %2." +msgstr "%1 невозможно уÑтановить в %2." #: NOT FOUND IN SOURCE msgid "%1 couldn't init a transaction (%2)\\n" -msgstr "" +msgstr "%1 не может инициировать транзакцию (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "%1 не могу закрыть тикет. Возможно, база данных RT иÑпорчена." +msgstr "%1 не может изменить ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° Решено. Возможно, база данных RT иÑпорчена." -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) msgid "%1 created" -msgstr "" +msgstr "%1 Ñоздана" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) msgid "%1 deleted" -msgstr "" +msgstr "%1 удалена" -#: html/Elements/MyTickets:24 +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" -msgstr "" +msgstr "%1 ваших заÑвок Ñ Ð½Ð°Ð¸Ð²Ñ‹Ñшими приоритетами" #: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I own..." -msgstr "%1 Ñамых приоритетных моих тикетов..." +msgstr "%1 ваших заÑвок Ñ Ð½Ð°Ð¸Ð²Ñ‹Ñшими приоритетами..." -#: html/Elements/MyTickets:26 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I requested..." -msgstr "%1 Ñамых приоритетных тикетов, запрошенных мной..." +msgstr "%1 заÑвок Ñ Ð½Ð°Ð¸Ð²Ñ‹Ñшими приоритетами, Ñозданных вами..." -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($0) msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." msgstr "" -#: lib/RT/Queue_Overlay.pm:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($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 Ð´Ð»Ñ Ñтого тикета." +msgstr "%1 больше не ÑвлÑетÑÑ %2 Ð´Ð»Ñ Ñтой заÑвки." -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a value for custom field %2" -msgstr "%1 больше не ÑвлÑетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸ÐµÐ¼ Ð´Ð»Ñ Ð½ÐµÑтандартного Ð¿Ð¾Ð»Ñ %2" +msgstr "%1 больше не ÑвлÑетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸ÐµÐ¼ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ %2" #: NOT FOUND IN SOURCE msgid "%1 isn't a valid Queue id." -msgstr "" +msgstr "%1 неверный идентификатор очереди." #: NOT FOUND IN SOURCE msgid "%1 matches" -msgstr "" +msgstr "%1 Ñовпадений" -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -292,31 +257,23 @@ msgstr "" msgid "%1 min" msgstr "%1 мин" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" -msgstr "" +msgstr "%1 поÑледних неназначенных заÑвок" #: NOT FOUND IN SOURCE msgid "%1 not shown" msgstr "%1 не отображаетÑÑ" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:827 msgid "%1 objects" -msgstr "" +msgstr "%1 объектов" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" -msgstr "%1 права" +msgstr "Права %1" #: NOT FOUND IN SOURCE msgid "%1 succeeded\\n" @@ -332,438 +289,403 @@ msgstr "%1 тип не извеÑтен Ð´Ð»Ñ %2" #: NOT FOUND IN SOURCE msgid "%1 was created without a CurrentUser\\n" -msgstr "" +msgstr "%1 была Ñоздана без ТекущегоПользователÑ\\n" -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1 закроет вÑе тикеты, входÑщие в групповой запроÑ" +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 отложит тикеты, которые завиÑÑÑ‚ запроÑа или включены в него" - -#: NOT FOUND IN SOURCE -msgid "%1 הוסף כערך עבור %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 לפני %2 ימי×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 על ידי %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 פעולת-סקריפ נטענה" -msgstr "" +msgstr "%1 приоÑтановит заÑвки, которые завиÑÑÑ‚ от запроÑа или включены в него" -#: NOT FOUND IN SOURCE -msgid "%1 שונה מ %2 ל %3" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:828 msgid "%1's %2 objects" -msgstr "" +msgstr "%1 %2 объектов" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:829 msgid "%1's %2's %3 objects" msgstr "" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" -msgstr "" +msgstr "%1 Ñохраненных запроÑов" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1: без вложений" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" -msgstr "" +msgstr "%1б" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" -msgstr "" +msgstr "%1к" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' ÑвлÑетÑÑ Ð½ÐµÐ²ÐµÑ€Ð½Ñ‹Ð¼ значением ÑтатуÑа" #: NOT FOUND IN SOURCE msgid "'%1' not a recognized action. " -msgstr "Что делать ? : '%1'" +msgstr "'%1' не ÑвлÑетÑÑ Ð·Ð°Ñ€ÐµÐ³Ð¸Ñтрированным дейÑтвием." #: NOT FOUND IN SOURCE msgid "(Check box to delete group member)" -msgstr "" +msgstr "(Выделите пользователей Ð´Ð»Ñ Ð¸ÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð· группы)" #: NOT FOUND IN SOURCE msgid "(Check box to delete scrip)" -msgstr "" +msgstr "(Выделите Ñкриплеты Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ)" -#: 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 +#: 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 "(Пометьте то, что хотите удалить)" +msgstr "(Выделите пункты Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ)" #: NOT FOUND IN SOURCE msgid "(Check boxes to delete)" -msgstr "" +msgstr "(Выделите пункты Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "" +msgstr "(Выделите получателей Ð´Ð»Ñ Ð¸ÑÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð· ÑпиÑка уведомлÑемых)" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "" +msgstr "(Выделите получателей Ð´Ð»Ñ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ð² ÑпиÑок уведомлÑемых)" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(Введите номера или ÑÑылки на тикеты. ÐеÑколько тикетов разделÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸.)" +msgstr "(Введите идентификаторы или ÑÑылки на заÑвки, разделенные пробелами)" #: NOT FOUND IN SOURCE msgid "(Enter ticket ids or URLs, seperated with spaces)" -msgstr "" +msgstr "(Введите идентификаторы или ÑÑылки на заÑвки, разделенные пробелами)" -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: 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" +msgid "(If left blank, will default to %1)" +msgstr "(ЕÑли пуÑтое, то по-умолчанию равно %1)" #: NOT FOUND IN SOURCE msgid "(No Value)" -msgstr "" +msgstr "(Ðет значениÑ)" -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "(Ðет дополнительных полей)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(Ðет пользователей)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" -msgstr "(Ðет Ñкриптов)" +msgstr "(Ðет Ñкриплетов)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "(Ðет шаблонов)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 msgid "(None)" -msgstr "" +msgstr "(Ðет)" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:88 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> ÑохранÑÑŽÑ‚ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" +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> ÑохранÑÑŽÑ‚ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" +msgstr "(Отправить Ñкрытую копию ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± Ñтом обновлении на Ñти адреÑа [разделÑÑŽÑ‚ÑÑ Ð·Ð°Ð¿Ñтой]. СпиÑок получателей, которые в дальнейшем будут получать Ñкрытые копии ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± обновлениÑÑ…, <b>не</b> будет изменен.)" -#: html/Ticket/Create.html:78 +#: html/Ticket/Create.html:100 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> Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" +msgstr "(Отправить копию ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± Ñтом обновлении на Ñти адреÑа [разделÑÑŽÑ‚ÑÑ Ð·Ð°Ð¿Ñтой]. Эти получатели в дальнейшем <b>будут</b> получать копии ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± обновлениÑÑ….)" -#: html/Ticket/Update.html:62 +#: html/Ticket/Update.html:84 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> ÑохранÑÑŽÑ‚ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" +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 "(Ðа Ñти адреÑа [разделенные запÑтой] отправлÑÑŽÑ‚ÑÑ ÐºÐ¾Ð¿Ð¸Ð¸ ÑообщениÑ. ÐдреÑа не ÑохранÑÑŽÑ‚ÑÑ Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" +msgstr "(Отправить копию ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± Ñтом обновлении на Ñти адреÑа [разделÑÑŽÑ‚ÑÑ Ð·Ð°Ð¿Ñтой]. СпиÑок получателей, которые в дальнейшем будут получать копии ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± обновлениÑÑ…, <b>не</b> будет изменен.)" -#: html/Ticket/Create.html:68 +#: html/Ticket/Create.html:90 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> Ð´Ð»Ñ Ð¿Ð¾Ñледующих уведомлений.)" +msgstr "(Отправить копию ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± Ñтом обновлении на Ñти адреÑа [разделÑÑŽÑ‚ÑÑ Ð·Ð°Ð¿Ñтой]. Эти получатели в дальнейшем <b>будут</b> получать копии ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± обновлениÑÑ….)" -#: html/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "" +msgstr "(ИÑпользуйте Ñти Ð¿Ð¾Ð»Ñ Ð¿Ñ€Ð¸ выборе 'Задано пользователем' Ð´Ð»Ñ ÑƒÐ»Ð¾Ð²Ð¸Ð¹ или дейÑтвий)" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(пуÑто)" #: NOT FOUND IN SOURCE msgid "(no Summary)" -msgstr "" +msgstr "(нет Ñводной информации)" -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" -msgstr "(не указано имен)" +msgstr "(имена не указаны)" #: NOT FOUND IN SOURCE msgid "(no name)" -msgstr "" +msgstr "(нет имени)" #: NOT FOUND IN SOURCE msgid "(no subject)" -msgstr "(без темы)" +msgstr "(нет темы)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(нет значениÑ)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFieldValues:47 msgid "(no values)" -msgstr "" +msgstr "(нет значений)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" -msgstr "(только один тикет)" +msgstr "(только одна заÑвка)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" -msgstr "(в ожидании визы)" +msgstr "(в ожидании подтверждениÑ)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" -msgstr "" +msgstr "(в ожидании Ñ€ÐµÑˆÐµÐ½Ð¸Ñ ÑвÑзанных заÑвок)" #: NOT FOUND IN SOURCE msgid "(pending other tickets)" -msgstr "(в ожидании других тикетов)" +msgstr "(в ожидании других заÑвок)" #: NOT FOUND IN SOURCE msgid "(requestor's group)" -msgstr "" +msgstr "(группа автора заÑвки)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(требуетÑÑ)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(без названиÑ)" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I own..." -msgstr "25 важнейших моих тикетов..." +msgstr "25 ваших заÑвок Ñ Ð½Ð°Ð¸Ð²Ñ‹Ñшими приоритетами..." #: NOT FOUND IN SOURCE msgid "25 highest priority tickets I requested..." -msgstr "25 Ñамых важных моих запроÑов..." +msgstr "25 заÑвок Ñ Ð½Ð°Ð¸Ð²Ñ‹Ñшими приоритетами, Ñозданные ваши..." -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "<input type=\"submit\" value=\"Создать тикет в очереди\"> %1" - -#: NOT FOUND IN SOURCE -msgid "??????" -msgstr "" +msgstr "<input type=\"submit\" value=\"Создать заÑвку в очереди\"> %1" #: etc/initialdata:218 msgid "A blank template" msgstr "ПуÑтой шаблон" -#: NOT FOUND IN SOURCE -msgid "ACE Deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "ACE Loaded" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." msgstr "" #: NOT FOUND IN SOURCE msgid "ACE could not be deleted" -msgstr "" +msgstr "Ðевозможно удалить ACE" #: NOT FOUND IN SOURCE msgid "ACE could not be found" -msgstr "" +msgstr "Ðевозможно найти ACE" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "ACE не найден" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "ACEÑ‹ можно только Ñоздавать и удалÑть" +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "Прекращаем работу во избежание нежелательного Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð°.\\n" +msgstr "Прекращаем работу во избежание нежелательного Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð°Ñвки.\\n" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "Обо мне" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "Права доÑтупа" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "ДейÑтвие" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" -msgstr "дейÑтвие %1 не найдено" +msgstr "ДейÑтвие %1 не найдено" -#: bin/rt-crontool:119 +#: NOT FOUND IN SOURCE msgid "Action committed." msgstr "ДейÑтвие принÑто." -#: bin/rt-crontool:115 +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "" + +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "ДейÑтвие подготовлено..." -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" -msgstr "" +msgstr "Добавить" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" -msgstr "Добавить админиÑтративную копию" +msgstr "Добавить ÐдминиÑтративнуюКопию" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" -msgstr "Добавить копию" +msgstr "Добавить Копию" -#: html/Search/Elements/PickCriteria:24 -msgid "Add Criteria" +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" msgstr "" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Search/Elements/PickCriteria:46 +msgid "Add Criteria" +msgstr "Добавить критерий" + +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "Добавить еще файлы" #: NOT FOUND IN SOURCE msgid "Add Next State" -msgstr "" +msgstr "Добавить Ñледующее ÑоÑтоÑние" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" -msgstr "Добавить проÑителÑ" +msgstr "Добавить автора заÑвки" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" -msgstr "" +msgstr "Добавить значение" #: NOT FOUND IN SOURCE msgid "Add a Scrip to this queue" -msgstr "" +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 "" +msgstr "Добавить Ñкриплет, который будет дейÑтвовать на вÑе очереди" #: NOT FOUND IN SOURCE msgid "Add a new a global scrip" -msgstr "" +msgstr "Добавить новый глобальный Ñкриплет" #: NOT FOUND IN SOURCE msgid "Add a scrip to this queue" -msgstr "" +msgstr "Добавить Ñкриплет Ð´Ð»Ñ Ñтой очереди" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" -msgstr "Добавить Ñкрипт, который будет дейÑтвовать на вÑе очереди" +msgstr "Добавить Ñкриплет, который будет дейÑтвовать на вÑе очереди" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" -msgstr "" +msgstr "Добавить дополнительный критерий" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" -msgstr "Добавить комментарии или ответы на выбранные тикеты" +msgstr "Добавить комментарии или ответы на выбранные заÑвки" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "Добавить пользователей" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "Добавить наблюдателей" +# Manual merge by Andrew Kornilov <andy@eva.dp.ua> +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "Добавить, удалить или изменить Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ñ… полей Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð¾Ð²" + #: NOT FOUND IN SOURCE msgid "AddNextState" -msgstr "" +msgstr "ДобавлÑтьСледующееСоÑтоÑние" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" -msgstr "Добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 Ð´Ð»Ñ Ñтой очереди" +msgstr "Пользователь добавлен как %1 Ð´Ð»Ñ Ñтой очереди" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" -msgstr "Добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 Ð´Ð»Ñ Ñтого тикета" +msgstr "Пользователь добавлен как %1 Ð´Ð»Ñ Ñтой заÑвки" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "ÐдреÑ1" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "ÐдреÑ2" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" -msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" +msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐšÐ¾Ð¿Ð¸Ñ" #: etc/initialdata:295 msgid "Admin Comment" -msgstr "Комментарий админа" +msgstr "ÐдминиÑтративный Комментарий" #: etc/initialdata:274 msgid "Admin Correspondence" -msgstr "" +msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐšÐ¾Ñ€Ñ€ÐµÑпонденциÑ" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" msgstr "Управление очередÑми" @@ -771,255 +693,239 @@ msgstr "Управление очередÑми" msgid "Admin users" msgstr "Управление пользователÑми" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: 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 "Группы" +msgstr "Управление группами" #: NOT FOUND IN SOURCE msgid "Admin/Queue/Basics" -msgstr "Параметры очереди" +msgstr "ОÑновные параметры очереди" #: NOT FOUND IN SOURCE msgid "AdminAllPersonalGroups" -msgstr "" +msgstr "ÐдминиÑтрироватьВÑеПерÑональныеГруппы" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" -msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" +msgstr "ÐдминиÑтративнаÑКопиÑ" #: NOT FOUND IN SOURCE msgid "AdminComment" -msgstr "" +msgstr "ÐдминиÑтрироватьКомментарий" #: NOT FOUND IN SOURCE msgid "AdminCorrespondence" -msgstr "" +msgstr "ÐдминиÑтрироватьКорреÑпонденцию" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:101 msgid "AdminCustomField" -msgstr "" +msgstr "ÐдминиÑтрироватьДополнительноеПоле" -#: lib/RT/Queue_Overlay.pm:73 +#: NOT FOUND IN SOURCE msgid "AdminCustomFields" -msgstr "" +msgstr "ÐдминиÑтрироватьДополнительныеПолÑ" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" -msgstr "" +msgstr "ÐдминиÑтрироватьГруппу" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" -msgstr "" +msgstr "ÐдминиÑтрироватьЧленÑтвоВГруппах" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" -msgstr "" +msgstr "ÐдминиÑтрироватьСобÑтвенныеГруппы" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" -msgstr "" +msgstr "ÐдминиÑтрироватьОчередь" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" -msgstr "" +msgstr "ÐдминиÑтрироватьПользователей" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" -msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" +msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐšÐ¾Ð¿Ð¸Ñ" #: NOT FOUND IN SOURCE msgid "Admins" -msgstr "" +msgstr "ÐдминиÑтраторы" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" -msgstr "" +msgstr "Дополнительно" #: NOT FOUND IN SOURCE msgid "Advanced Search" -msgstr "" +msgstr "РаÑширенный поиÑк" #: NOT FOUND IN SOURCE msgid "Advanced Search Criteria" -msgstr "" +msgstr "Критерии раÑширенного поиÑка" -#: html/Elements/SelectDateRelation:35 +#: 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 "" +msgstr "ПÑевдоним" #: NOT FOUND IN SOURCE msgid "Alias for" -msgstr "" +msgstr "ПÑевдоним длÑ" #: etc/initialdata:363 msgid "All Approvals Passed" -msgstr "" +msgstr "Ð’Ñе Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ñ‹" #: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:94 msgid "All Custom Fields" msgstr "Ð’Ñе дополнительные полÑ" -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "Ð’Ñе очереди" #: NOT FOUND IN SOURCE msgid "Always sends a message to the requestors independent of message sender" +msgstr "Ð’Ñегода отправлÑть ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð°Ð¼ заÑвок незавиÑимо от Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ ÑообщениÑ" + +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 msgid "Applies to" -msgstr "" +msgstr "ПрименÑетÑÑ Ðº" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply" -msgstr "" +msgstr "Применить" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" -msgstr "" +msgstr "Применить ваши изменениÑ" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" -msgstr "Виза" +msgstr "ПодтверждениÑ" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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" +msgstr "Подтверждение #%1: %2" -#: html/Approvals/index.html:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "Виза #%1: ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð½Ðµ Ñохранены из-за ошибки ÑиÑтемы" +msgstr "Подтверждение #%1: ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð½Ðµ Ñохранены из-за ÑиÑтемной ошибки" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" -msgstr "Виза #%1: ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñаны" +msgstr "Подтверждение #%1: ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñаны" #: NOT FOUND IN SOURCE msgid "Approval Details" -msgstr "" +msgstr "Детали подтверждениÑ" #: etc/initialdata:351 msgid "Approval Passed" -msgstr "" +msgstr "Подтверждение получено" #: etc/initialdata:374 msgid "Approval Rejected" -msgstr "" +msgstr "Подтверждение отклонено" #: NOT FOUND IN SOURCE msgid "Approval diagram" -msgstr "" +msgstr "Диаграмма подтверждений" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" -msgstr "Завизировать" +msgstr "Подтвердить" #: etc/initialdata:504 msgid "Approver's notes: %1" -msgstr "" +msgstr "ÐŸÑ€Ð¸Ð¼ÐµÑ‡Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¸Ð²ÑˆÐµÐ³Ð¾: %1" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "Ðпр." #: NOT FOUND IN SOURCE msgid "April" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" +msgstr "Ðпрель" -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "Ð’ порÑдке возраÑтаниÑ" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "Assign and remove custom fields" -msgstr "" +msgstr "Ðазначение и удаление дополнительных полей" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "AssignCustomFields" -msgstr "" +msgstr "ÐазначатьДополнительныеПолÑ" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "Вложение" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "Вложить файл" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "Вложенный файл" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: 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:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" -msgstr "Создано вложение" +msgstr "Вложение Ñоздано" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" -msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" +msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° Ð´Ð»Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "ВложениÑ" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" -msgstr "" +msgstr "Ðтрибут удален" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "Ðвг." #: NOT FOUND IN SOURCE msgid "August" -msgstr "" +msgstr "ÐвгуÑÑ‚" #: NOT FOUND IN SOURCE msgid "AuthSystem" @@ -1031,15 +937,15 @@ msgstr "Ðвтоответ" #: etc/initialdata:72 msgid "Autoreply To Requestors" -msgstr "Ðвтоответ инициатору запроÑа" +msgstr "Ðвтоответ Ðвторам ЗаÑвки" #: NOT FOUND IN SOURCE msgid "AutoreplyToRequestors" -msgstr "" +msgstr "ÐвтоответÐвторатЗаÑвки" -#: html/Search/Elements/EditFormat:4 +#: NOT FOUND IN SOURCE msgid "Available Columns" -msgstr "" +msgstr "ДоÑтупные колонки" #: NOT FOUND IN SOURCE msgid "Bad PGP Signature: %1\\n" @@ -1047,7 +953,7 @@ msgstr "ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ PGP: %1\\n" #: NOT FOUND IN SOURCE msgid "Bad attachment id. Couldn't find attachment '%1'\\n" -msgstr "Ðеверный идентификатор вложениÑ. ОтÑутÑтвует вложение '%1'\\n" +msgstr "Ðеверный идентификатор вложениÑ. Ðевозможно найти вложение '%1'\\n" #: NOT FOUND IN SOURCE msgid "Bad data in %1" @@ -1057,164 +963,161 @@ msgstr "ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð´Ð°Ñ‚Ð° в %1" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "Ðеправильный номер транзакции Ð´Ð»Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ. %1 должен быть %2\\n" -#: 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 +#: 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 "Главное" +msgstr "ОÑновное" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "Ð¡ÐºÑ€Ñ‹Ñ‚Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "Ðе забудьте Ñохранить наÑтройки" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "До" #: NOT FOUND IN SOURCE msgid "Begin Approval" +msgstr "Ðачать подтверждение" + +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" msgstr "" #: NOT FOUND IN SOURCE msgid "Binary" -msgstr "" +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 "Получить URL Ð´Ð»Ñ Ñтого поиÑка" +msgstr "СÑылка на Ñтот Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² избранное" -#: html/Search/Results.html:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" -msgstr "" +msgstr "СÑылка Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² избранное" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" -msgstr "Сокращенный" +msgstr "Сокращенные заголовки" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" -msgstr "Изменение одним махом" +msgstr "МножеÑтвенное обновление заÑвки" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" -msgstr "Ðе могу изменÑть ÑиÑтемных пользователей" +msgstr "Ðевомзожно изменить ÑиÑтемных пользователей" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" -msgstr "" +msgstr "Может ли данный пользователь проÑматривать Ñту очередь" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" -msgstr "Ðе могу добавить значение Ð¿Ð¾Ð»Ñ Ð±ÐµÐ· имени" +msgstr "Ðевозможно добавление Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»ÑŒÐ½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ Ð±ÐµÐ· наименованиÑ" -#: html/Search/Build.html:694 -msgid "Can't find a saved search to work with" +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" msgstr "" -#: lib/RT/Link_Overlay.pm:126 +#: html/Search/Build.html:761 +msgid "Can't find a saved search to work with" +msgstr "Ðевозможно найти Ñохраненный Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð½Ð¸Ð¼" + +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" -msgstr "Тикет не может быть ÑвÑзан Ñ Ñамим Ñобой" +msgstr "Ðевозможно ÑвÑзать заÑвку Ñаму Ñ Ñобой" -#: lib/RT/Ticket_Overlay.pm:2716 +#: NOT FOUND IN SOURCE msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "Ðе могу Ñоединить Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð½Ñ‹Ð¼ тикетом (Ñта ошибка никогда не должна проиÑходить)." +msgstr "Ðевозможно объединить Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð½Ð¾Ð¹ заÑвкой (Ñта ошибка никогда не должна проиÑходить)." -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" -msgstr "" +msgstr "Ðевозможно Ñохранить Ñтот запроÑ" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" -msgstr "Ðе могу указать одновременно и иÑточник, и Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ" +msgstr "Ðевозможно указывать одновременно и иÑточник и Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" -msgstr "Ðе могу Ñоздать пользователÑ: %1" +msgstr "Ðевозможно Ñоздать пользователÑ: %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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "КопиÑ" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" -msgstr "Сменить пароль" +msgstr "Изменить пароль" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:100 msgid "Check All" -msgstr "" +msgstr "Выбрать вÑе" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" -msgstr "" +msgstr "Выделите пункты Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" -msgstr "Выберите права, которые хотите отозвать" +msgstr "Выделите права, которые хотите отозвать" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "Потомки" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "Город" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:102 msgid "Clear All" -msgstr "" +msgstr "ОчиÑтить вÑе" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" -msgstr "" +msgstr "Закрыто" -#: html/SelfService/Closed.html:24 +#: NOT FOUND IN SOURCE msgid "Closed Tickets" -msgstr "" +msgstr "Закрытые заÑвки" #: NOT FOUND IN SOURCE msgid "Closed requests" msgstr "Закрытые запроÑÑ‹" -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" -msgstr "" +msgstr "Закрытые заÑвки" #: NOT FOUND IN SOURCE msgid "Code" -msgstr "" +msgstr "Код" #: NOT FOUND IN SOURCE msgid "Command not understood!\\n" -msgstr "Чего-чего?\\n" +msgstr "Команда не раÑпознана!\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "Комментировать" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ²" @@ -1222,63 +1125,63 @@ msgstr "ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ²" msgid "Comment not recorded" msgstr "Комментарий не запиÑан" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" -msgstr "" +msgstr "Комментарии заÑвки" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" -msgstr "" +msgstr "КомментироватьЗаÑвку" #: NOT FOUND IN SOURCE msgid "Comments" msgstr "Комментарии" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" -msgstr "Комментарии (Ðе отправлÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾ÑителÑм)" +msgstr "Комментарии (Ðе отправлÑÑŽÑ‚ÑÑ Ð°Ð²Ñ‚Ð¾Ñ€Ð°Ð¼ заÑвки)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" -msgstr "Комментарии (не отправлÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ñителю)" +msgstr "Комментарии (Ðе отправлÑÑŽÑ‚ÑÑ Ð°Ð²Ñ‚Ð¾Ñ€Ð°Ð¼ заÑвки)" #: NOT FOUND IN SOURCE msgid "Comments about %1" -msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ %1" +msgstr "Комментарии о %1" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" -msgstr "Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± Ñтом пользователе" +msgstr "Комментарии об Ñтом пользователе" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" -msgstr "Добавлены комментарии" +msgstr "Комментарии добавлены" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" -msgstr "ДейÑтвие не реализовано" +msgstr "" #: NOT FOUND IN SOURCE msgid "Compile Restrictions" msgstr "Применить ограничениÑ" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "УÑловие" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "ПодходÑщее уÑловие..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "УÑловие не найдено" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" -msgstr "ÐаÑтройка" +msgstr "КонфигурациÑ" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "Подтвердить" @@ -1288,305 +1191,329 @@ msgstr "ÐšÐ¾Ð½Ñ‚Ð°ÐºÑ‚Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" #: NOT FOUND IN SOURCE msgid "Contacted date '%1' could not be parsed" -msgstr "Ðе могу разобрать дату поÑледнего контакта '%1'" +msgstr "Ðевезможно идентифицировать дату поÑледнего контакта '%1'" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" -msgstr "ТекÑÑ‚" +msgstr "Содержимое" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" -msgstr "" +msgstr "Тип-СодержаниÑ" #: NOT FOUND IN SOURCE msgid "Coould not create group" -msgstr "" +msgstr "Ðевозможно Ñоздать группу" -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" -msgstr "" +msgstr "КопиÑ" #: etc/initialdata:286 msgid "Correspondence" -msgstr "" +msgstr "КорреÑпонденциÑ" #: NOT FOUND IN SOURCE msgid "Correspondence Address" -msgstr "ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ Ñообщений" +msgstr "ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÑпонденции" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" -msgstr "Добавлено Ñообщение" +msgstr "КорреÑÐ¿Ð¾Ð½Ð´ÐµÐ½Ñ†Ð¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð°" #: NOT FOUND IN SOURCE msgid "Correspondence not recorded" -msgstr "Сообщение не запиÑано" +msgstr "КорреÑÐ¿Ð¾Ð½Ð´ÐµÐ½Ñ†Ð¸Ñ Ð½Ðµ запиÑана" -#: lib/RT/Ticket_Overlay.pm:3471 +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. " -msgstr "Ðе могу добавить новое поле Ñ Ñ‚Ð°ÐºÐ¸Ð¼ значением." +msgstr "Ðевозможно добавить новое значение дополнительного Ð¿Ð¾Ð»Ñ Ð·Ð°Ñвки." #: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. %1 " +msgstr "Ðевозможно добавить новое значение дополнительного Ð¿Ð¾Ð»Ñ Ð·Ð°Ñвки. %1" + +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " msgstr "" -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "Ошибка Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ полÑ. %1" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " -msgstr "Ðе могу Ñменить владельца. " +msgstr "Ðевозможно изменить ответÑтвенного." -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" -msgstr "Ðе могу добавить поле" +msgstr "Ðевозможно Ñоздать дополнительное поле" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" -msgstr "Ðе могу Ñоздать группу" +msgstr "Ðевозможно Ñоздать группу" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 #. ($msg) msgid "Could not create template: %1" -msgstr "Ðе могу Ñоздать шаблон: %1" +msgstr "Ðевозможно Ñоздать шаблон: %1" -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" -msgstr "Ðе могу Ñоздать тикет. Очередь не определена." +msgstr "Ðевозможно Ñоздать заÑвку. Ðе задана очередь." -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" -msgstr "Ðе могу Ñоздать пользователÑ" +msgstr "Ðевозможно Ñоздать пользователÑ" #: NOT FOUND IN SOURCE msgid "Could not create watcher for requestor" -msgstr "Ðе могу Ñоздать Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¸Ð½Ð¸Ñ†Ð¸Ð°Ñ‚Ð¾Ñ€Ð° запроÑа" +msgstr "Ðевозможно Ñоздать Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° заÑвки" #: NOT FOUND IN SOURCE msgid "Could not find a ticket with id %1" -msgstr "Ðе могу найти тикет по идентификатору %1" +msgstr "Ðевозможно найти заÑвку Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ %1" #: NOT FOUND IN SOURCE msgid "Could not find group %1." -msgstr "Ðе найдена группа %1." +msgstr "Ðевозможно найти группу %1." -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" -msgstr "Ðе могу найти или Ñоздать Ñтого пользователÑ" +msgstr "Ðевозможно найти или Ñоздать Ñтого пользователÑ" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" -msgstr "Ðе могу найти Ñтого пользователÑ" +msgstr "Ðевозможно найти Ñтого пользователÑ" #: NOT FOUND IN SOURCE msgid "Could not find user %1." -msgstr "Ðе найден пользователь %1." +msgstr "Ðевозможно найти Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1." -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:69 msgid "Could not load CustomField %1" -msgstr "" +msgstr "Ðевозможно загрузить дополнительное поле %1" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" -msgstr "Ðе могу загрузить группу" +msgstr "Ðевозможно загрузить группу" + +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" -msgstr "Ðе могу назначить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1 Ð´Ð»Ñ Ñтой очереди" +msgstr "Ðевозможно назначить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1 Ð´Ð»Ñ Ñтой очереди" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" -msgstr "Ðе могу назначить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1 Ð´Ð»Ñ Ñтого тикета" +msgstr "Ðевозможно назначить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1 Ð´Ð»Ñ Ñтой заÑвки" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" -msgstr "Ðе могу отобрать функции у Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 в Ñтой очереди" +msgstr "Ðевозможно отозвать функции у Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 Ð´Ð»Ñ Ñтой очереди" #: NOT FOUND IN SOURCE msgid "Could not remove that principal as a %1 for this ticket" -msgstr "Ðе могу отобрать функции у Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 Ð´Ð»Ñ Ñтого тикета" +msgstr "Ðевозможно отозвать функции у Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÐºÐ°Ðº %1 Ð´Ð»Ñ Ñтой заÑвки" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" -msgstr "" +msgstr "Ðевозможно уÑтановить информацию о пользователе" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" -msgstr "Ðе могу добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² группу" +msgstr "Ðевозможно добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² группу" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" -msgstr "Ðе могу Ñоздать транзакцию: %1" +msgstr "Ðевозможно Ñоздать транзакцию: %1" #: NOT FOUND IN SOURCE msgid "Couldn't figure out what to do from gpg's reply\\n" -msgstr "Ðе пойму что делать из ответа gpg\\n" +msgstr "Ðевозможно определить дальнейшие дейÑÑ‚Ð²Ð¸Ñ Ð¸Ð· ответа gpg\\n" #: NOT FOUND IN SOURCE msgid "Couldn't find group\\n" -msgstr "Ðе найти группу\\n" +msgstr "Ðевезможно найти группу\\n" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" -msgstr "" +msgstr "Ðевозможно найти Ñтроку" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" -msgstr "Ðе найти Ñтого пользователÑ" +msgstr "Ðевозможно найти Ñтого пользователÑ" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" -msgstr "Ðе найти Ñтого значениÑ" +msgstr "Ðевозможно найти Ñто значение" #: NOT FOUND IN SOURCE msgid "Couldn't find that watcher" -msgstr "Ðе могу найти данного наблюдателÑ" +msgstr "Ðевозможно найти Ñтого наблюдателÑ" #: NOT FOUND IN SOURCE msgid "Couldn't find user\\n" -msgstr "Пользователь не найден\\n" +msgstr "Ðевозможно найти пользователÑ\\n" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" -msgstr "Ðе загрузить %1 из базы пользователей.\\n" +msgstr "Ðевозможно загрузить %1 из базы пользователей.\\n" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load KeywordSelects." -msgstr "" +msgstr "Ðевозможно загрузить дополнительное поле %1" #: NOT FOUND IN SOURCE msgid "Couldn't load RT config file '%1' %2" -msgstr "Ðе загрузить файл наÑтроек RT '%1' %2" +msgstr "Ðевозможно загрузить файл наÑтроек RT '%1' %2" #: NOT FOUND IN SOURCE msgid "Couldn't load Scrips." -msgstr "" +msgstr "Ðевозможно загрузить Ñкриплеты." -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 #. ($id) msgid "Couldn't load group %1" -msgstr "Ðе загрузить группу %1" +msgstr "Ðевозможно загрузить группу %1" -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" -msgstr "Ðе загрузить ÑÑылку" +msgstr "Ðевозможно загрузить ÑÑылку" -#: NOT FOUND IN SOURCE +#: 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 "" +msgstr "Ðевозможно загрузить объект %1" -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" -msgstr "Ðе загрузить очередь" +msgstr "Ðевозможно загрузить очередь" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" -msgstr "Ðе загрузить очередь %1" +msgstr "Ðевозможно загрузить очередь %1" #: NOT FOUND IN SOURCE msgid "Couldn't load scrip" -msgstr "Ðе загрузить Ñкрипт" +msgstr "Ðевозможно загрузить Ñкриплет" #: NOT FOUND IN SOURCE msgid "Couldn't load template" -msgstr "Ðе загрузить шаблон" +msgstr "Ðевозможно загрузить шаблон" #: NOT FOUND IN SOURCE msgid "Couldn't load that user (%1)" -msgstr "Ðе загрузить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (%1)" +msgstr "Ðевозможно загрузить Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (%1)" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" -msgstr "Ðе загрузить тикет '%1'" +msgstr "Ðевозможно загрузить заÑвку '%1'" + +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "Страна" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "Создать" #: etc/initialdata:135 msgid "Create Tickets" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" +msgstr "Создать заÑвки" -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" -msgstr "Добавить поле" +msgstr "Создать дополнительное поле" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "Создать дополнительное поле Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ 1" -#: html/Admin/Global/CustomField.html:47 +#: NOT FOUND IN SOURCE msgid "Create a CustomField which applies to all queues" msgstr "Создать дополнительное поле Ð´Ð»Ñ Ð²Ñех очередей" #: NOT FOUND IN SOURCE msgid "Create a new Custom Field" -msgstr "Добавить новое поле" - -#: NOT FOUND IN SOURCE -msgid "Create a new article" -msgstr "" +msgstr "Добавить новое дополнительное поле" #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" -msgstr "" +msgstr "Создать новый глобальный Ñкриплет" #: NOT FOUND IN SOURCE msgid "Create a new global scrip" -msgstr "" +msgstr "Создать новый глобальный Ñкриплет" -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" -msgstr "Добавить новую группу" +msgstr "Создать новую группу" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" -msgstr "Добавить новую личную группу" +msgstr "Создать новую личную группу" #: NOT FOUND IN SOURCE msgid "Create a new queue" -msgstr "Добавить новую очередь" +msgstr "Создать новую очередь" #: NOT FOUND IN SOURCE msgid "Create a new scrip" -msgstr "Добавить новый Ñкрипт" +msgstr "Создать новый Ñкриплет" #: NOT FOUND IN SOURCE msgid "Create a new template" -msgstr "Добавить новый шаблон" +msgstr "Создать новый шаблон" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" -msgstr "Добавить новый тикет" +msgstr "Создать новую заÑвку" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" -msgstr "Добавить нового пользователÑ" +msgstr "Создать нового пользователÑ" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "Создать очередь" @@ -1598,113 +1525,109 @@ msgstr "Создать очередь Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼" msgid "Create a request" msgstr "Создать запроÑ" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" -msgstr "Создать Ñкрипт Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" +msgstr "Создать Ñкриплет Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" -msgstr "Создать запроÑ" - -#: html/SelfService/Create.html:24 -msgid "Create a ticket" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" +msgstr "Создать шаблон" -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 +msgid "Create a ticket" +msgstr "Создать заÑвку" #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " -msgstr "" +msgstr "Ошибка ÑозданиÑ: %1 / %2 / %3 " #: NOT FOUND IN SOURCE msgid "Create failed: %1/%2/%3" -msgstr "" +msgstr "Ошибка ÑозданиÑ: %1/%2/%3" #: etc/initialdata:137 msgid "Create new tickets based on this scrip's template" -msgstr "" +msgstr "Создать новые заÑвки на оÑнове Ñтого шаблона Ñкриплета" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" -msgstr "Создать тикет" +msgstr "Создать заÑвку" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" -msgstr "" +msgstr "Создать заÑвки в Ñтой очереди" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" -msgstr "" +msgstr "Создать, удалить или изменить дополнительные полÑ" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" -msgstr "" +msgstr "Создать, удалить или изменить очереди" #: NOT FOUND IN SOURCE msgid "Create, delete and modify the members of any user's personal groups" -msgstr "" +msgstr "Создать, удалить или изменить членов любой пользовательÑкой перÑональной группы" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" -msgstr "" +msgstr "Создать, удалить или изменить членов перÑональных групп" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" +msgstr "Создать, удалить или изменить пользователей" + +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" msgstr "" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" -msgstr "Создать тикет" +msgstr "Создать ЗаÑвку" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" -msgstr "Создан" +msgstr "Создана" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" -msgstr "Добавлено поле %1" +msgstr "Создано дополнительное поле %1" #: NOT FOUND IN SOURCE msgid "Created by" -msgstr "" +msgstr "Создано пользователем" #: NOT FOUND IN SOURCE msgid "Created during" -msgstr "" +msgstr "Создано во времÑ" #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "Создан шаблон %1" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" -msgstr "" +msgstr "Ðвтор заÑвки" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "Текущие ÑвÑзи" #: NOT FOUND IN SOURCE msgid "Current Relationships" -msgstr "" +msgstr "Текущие взаимоÑвÑзи" -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" -msgstr "Текущие Ñкрипты" +msgstr "Текущие Ñкриплеты" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "Текущие пользователи" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "Текущие права" @@ -1712,254 +1635,257 @@ msgstr "Текущие права" msgid "Current search criteria" msgstr "Текущие критерии поиÑка" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "Текущие наблюдатели" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) +#: NOT FOUND IN SOURCE msgid "Custom Field #%1" msgstr "Дополнительное поле #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "Дополнительные полÑ" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) msgid "Custom Fields for %1" -msgstr "" +msgstr "Дополнительные Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ %1" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" -msgstr "ПользовательÑкий код очиÑтки" +msgstr "ПользовательÑкий код очиÑтки дейÑтвиÑ" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" -msgstr "ПользовательÑкий подготовительный код" +msgstr "ПользовательÑкий код подготовки дейÑтвиÑ" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "ПользовательÑкое уÑловие" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: 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 "" +msgstr "Дополнительное поле %1 не отноÑитÑÑ Ðº Ñтому объекту" -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "Дополнительное поле %1 имеет значение." -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "Дополнительное поле %1 не имеет значениÑ." -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" -msgstr "Дополнительное поле %1 не найдено" +msgstr "Ðевозможно найти дополнительное поле %1" -#: html/Admin/Elements/EditCustomFields:195 +#: NOT FOUND IN SOURCE msgid "Custom field deleted" -msgstr "" +msgstr "Дополнительное поле удалено" -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" -msgstr "Дополнительное поле не найдено" +msgstr "Ðевозможно найти дополнительное поле" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" -msgstr "Значение %1 не может быть найдено Ð´Ð»Ñ Ð¿Ð¾Ð»Ñ %2" +msgstr "Ðевозможно найти значение %1 дополнительного Ð¿Ð¾Ð»Ñ %2" #: NOT FOUND IN SOURCE msgid "Custom field value changed from %1 to %2" -msgstr "Значение Ð¿Ð¾Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾ Ñ %1 на %2" +msgstr "Значение дополнительного Ð¿Ð¾Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¾ Ñ %1 на %2" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" -msgstr "Значение дополнительного Ð¿Ð¾Ð»Ñ Ð½Ðµ может быть удалено" +msgstr "Ðевозможно удалить значение дополнительного полÑ" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" -msgstr "Значение дополнительного Ð¿Ð¾Ð»Ñ Ð½Ðµ найдено" +msgstr "Ðевозможно найти значение дополнительного Ð¿Ð¾Ð»Ñ " -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" -msgstr "Значение дополнительного Ð¿Ð¾Ð»Ñ Ð±Ñ‹Ð»Ð¾ удалено" +msgstr "Значение дополнительного Ð¿Ð¾Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¾" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" -msgstr "" +msgstr "ДополнительноеПоле" #: NOT FOUND IN SOURCE msgid "Data error" -msgstr "" +msgstr "Ошибка данных" -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "Даты" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "Дек." #: NOT FOUND IN SOURCE msgid "December" -msgstr "" +msgstr "Декабрь" #: NOT FOUND IN SOURCE msgid "Default Autoresponse Template" -msgstr "" +msgstr "Шаблон автоответа по умолчанию" #: etc/initialdata:222 msgid "Default Autoresponse template" msgstr "Шаблон автоответа по умолчанию" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" -msgstr "" +msgstr "Очередь по умолчанию" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" -msgstr "" +msgstr "Ðвтор заÑвки по умолчанию" #: etc/initialdata:296 msgid "Default admin comment template" -msgstr "Шаблон ответа админа по умолчанию" +msgstr "Шаблон админиÑтративного ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ Ð¿Ð¾ умолчанию" #: etc/initialdata:275 msgid "Default admin correspondence template" -msgstr "" +msgstr "Шаблон админиÑтративной корреÑпонденции по умолчанию" #: etc/initialdata:287 msgid "Default correspondence template" -msgstr "" +msgstr "Шаблон корреÑпонденции по умолчанию" #: etc/initialdata:253 msgid "Default transaction template" msgstr "Шаблон транзакции по умолчанию" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: NOT FOUND IN SOURCE msgid "Default: %1/%2 changed from %3 to %4" -msgstr "" +msgstr "Умолчание: %1/%2 изменено Ñ %3 на %4" -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" -msgstr "Передача прав" +msgstr "Делегирование прав" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." -msgstr "Делегирование отдельных прав, которые вам даны." +msgstr "Делегирование отдельных прав, которые выданы вам." -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" -msgstr "" +msgstr "ДелегироватьПрава" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "Делегирование прав" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" -msgstr "" +msgstr "Удалить" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" -msgstr "" +msgstr "Удалить шаблон" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" -msgstr "" +msgstr "Удалить выбранные Ñкриплеты" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" -msgstr "Удаление тикетов" +msgstr "Удалить заÑвки" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" +msgstr "УдалÑтьЗаÑвку" + +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" msgstr "" -#: lib/RT/Transaction_Overlay.pm:162 +#: NOT FOUND IN SOURCE msgid "Deleting this object could break referential integrity" msgstr "Удаление Ñтого объекта может нарушить ÑÑылочную целоÑтноÑть" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "Удаление Ñтого объекта нарушит ÑÑылочную целоÑтноÑть" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "Удаление Ñтого объекта нарушит ÑÑылочную целоÑтноÑть" #: NOT FOUND IN SOURCE msgid "Deleting this object would violate referential integrity." -msgstr "" +msgstr "Удаление Ñтого объекта нарушит ÑÑылочную целоÑтноÑть." #: NOT FOUND IN SOURCE msgid "Deleting this object would violate referential integrity. That's bad." -msgstr "" +msgstr "Удаление Ñтого объекта нарушит ÑÑылочную целоÑтноÑть." -#: html/Approvals/Elements/Approve:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "Отказать" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" -msgstr "От него завиÑÑÑ‚" +msgstr "От неё завиÑÑÑ‚" #: NOT FOUND IN SOURCE msgid "Dependencies: \\n" msgstr "ЗавиÑимоÑти: \\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" -msgstr "" +msgstr "Добавлено требование заÑвкой %1" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" -msgstr "" +msgstr "Удалено требование заÑвкой %1" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" -msgstr "" +msgstr "Добавлена завиÑимоÑть от %1" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" -msgstr "" +msgstr "Удалена завиÑимоÑть от %1" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "ЗавиÑит от" #: NOT FOUND IN SOURCE msgid "DependsOn" -msgstr "" +msgstr "ЗавиÑит от" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "Ð’ порÑдке убываниÑ" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "Опишите проблему" -#: 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 +#: 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:56 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 "ОпиÑание" @@ -1967,47 +1893,51 @@ msgstr "ОпиÑание" msgid "Details" msgstr "ПодробноÑти" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "Показать" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" -msgstr "" +msgstr "Показать ÑпиÑок прав доÑтупа" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" -msgstr "" +msgstr "Показать колонки" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" -msgstr "" +msgstr "Показать шаблоны Ñкриплетов Ð´Ð»Ñ Ñтой очереди" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" -msgstr "" +msgstr "Показать Ñкриплеты Ð´Ð»Ñ Ñтой очереди" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" -msgstr "Режим показа" +msgstr "Режим отображениÑ" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" -msgstr "" +msgstr "Показать Ñохраненные запроÑÑ‹ Ð´Ð»Ñ Ñтой группы" #: NOT FOUND IN SOURCE msgid "Display ticket #%1" -msgstr "Показать тикет #%1" +msgstr "Показать заÑвку #%1" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "" +msgstr "РаÑпроÑтранÑетÑÑ Ð¿Ð¾ верÑии 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> GNU GPL.</a>" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" +msgstr "Делать вÑе и везде" + +#: html/Search/Build.html:112 +msgid "Do the Search" msgstr "" -#: html/Elements/Refresh:29 +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "Ðе обновлÑть Ñту Ñтраницу" @@ -2015,131 +1945,135 @@ msgstr "Ðе обновлÑть Ñту Ñтраницу" msgid "Don't show search results" msgstr "Ðе показывать результаты поиÑка" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" -msgstr "Скачать" +msgstr "Загрузить" #: NOT FOUND IN SOURCE msgid "Download all the tickets as a tab delimited file" -msgstr "" +msgstr "Загрузить вÑе заÑвки как файл Ñо значениÑми, разделенными табулÑцией" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 msgid "Download as a tab-delimited file" -msgstr "" +msgstr "Загрузить как файл Ñо значениÑми, разделенными табулÑцией" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "Дан Ñрок" #: NOT FOUND IN SOURCE msgid "Due date '%1' could not be parsed" -msgstr "Ðе могу прочеÑть Ñрок Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ñ‹ '%1'" +msgstr "Ðевозможно разобрать Ñрок Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ñ‹ '%1'" #: NOT FOUND IN SOURCE msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "ОШИБКÐ: Ðе могу загрузить тикет '%1': %2.\\n" +msgstr "ОШИБКÐ: Ðевозможно загрузить заÑвку '%1': %2.\\n" #: NOT FOUND IN SOURCE msgid "Edit" -msgstr "Изменить" +msgstr "Редактировать" #: NOT FOUND IN SOURCE msgid "Edit Conditions" -msgstr "" +msgstr "Редактировать уÑловиÑ" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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" +msgstr "Редактирование дополнительных полей Ð´Ð»Ñ %1" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" msgstr "" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "" + +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" -msgstr "Изменение ÑвÑзей" +msgstr "Редактировать ÑвÑзи" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" -msgstr "" +msgstr "Редактировать запроÑ" #: NOT FOUND IN SOURCE msgid "Edit Relationships" -msgstr "" +msgstr "Редактировать взаимоÑвÑзи" -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "Редактировать шаблоны Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" #: NOT FOUND IN SOURCE msgid "Edit keywords" -msgstr "" +msgstr "Редактировать ключевые Ñлова" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" -msgstr "" +msgstr "Редактировать Ñохраненные запроÑÑ‹ Ñтой группы" #: NOT FOUND IN SOURCE msgid "Edit scrips" -msgstr "" +msgstr "Редактировать Ñкриплеты" -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" -msgstr "Изменение ÑиÑтемных шаблонов" +msgstr "Редактировать ÑиÑтемные шаблоны" #: NOT FOUND IN SOURCE msgid "Edit templates for %1" -msgstr "Изменение шаблонов Ð´Ð»Ñ %1" +msgstr "Редактирование шаблонов Ð´Ð»Ñ %1" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" -msgstr "" +msgstr "РедактироватьСохраненныеЗапроÑÑ‹" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" -msgstr "Изменение наÑтроек очереди %1" +msgstr "Редактирование наÑтроек очереди %1" #: NOT FOUND IN SOURCE msgid "Editing Configuration for user %1" -msgstr "Изменение наÑтроек Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1" +msgstr "Редактирование наÑтроек Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" -msgstr "Изменение Ð¿Ð¾Ð»Ñ %1" +msgstr "Редактирование Ð¿Ð¾Ð»Ñ %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" -msgstr "Пользователи в группе %1" +msgstr "Редактирование ÑпиÑка пользователей группы %1" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" -msgstr "Пользователи в личной группе %1" +msgstr "Редактирование ÑпиÑка пользователей перÑональной группы %1" #: NOT FOUND IN SOURCE msgid "Editing template %1" -msgstr "Изменение шаблона %1" +msgstr "Редактирование шаблона %1" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "Ðужно указать либо иÑточник, либо Ð°Ð´Ñ€ÐµÑ Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "Email" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" -msgstr "Email уже занÑÑ‚" +msgstr "Email Ð°Ð´Ñ€ÐµÑ ÑƒÐ¶Ðµ занÑÑ‚" #: NOT FOUND IN SOURCE msgid "EmailAddress" @@ -2149,84 +2083,73 @@ msgstr "EmailAddress" msgid "EmailEncoding" msgstr "EmailEncoding" -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "Разрешено (ÑнÑтие отметки запрещает данное дополнительное поле)" +msgstr "ИÑпользуетÑÑ (ÑнÑтие отметки отключает иÑпользование Ñтого дополнительного полÑ)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 msgid "Enabled (Unchecking this box disables this group)" -msgstr "Разрешено (ÑнÑтие отметки запрещает данную группу)" +msgstr "ИÑпользуетÑÑ (ÑнÑтие отметки отключает иÑпользование Ñтой группы)" -#: html/Admin/Queues/Modify.html:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Включена (СнÑÑ‚Ð°Ñ Ð³Ð°Ð»Ð¾Ñ‡ÐºÐ° означает отключенную очередь)" +msgstr "ИÑпользуетÑÑ (ÑнÑтие отметки отключает иÑпользование Ñтой очереди)" #: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" -msgstr "Разрешенные дополнительные полÑ" +msgstr "ИÑпользуемые дополнительные полÑ" -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" -msgstr "Включенные очереди" +msgstr "ИÑпользуемые очереди" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" -msgstr "Включен ÑÑ‚Ð°Ñ‚ÑƒÑ %1" +msgstr "Ðктивирован ÑÑ‚Ð°Ñ‚ÑƒÑ %1" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) msgid "Enabled status: %1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." -msgstr "" +msgstr "Ðктивирован ÑтатуÑ: %1" -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "Введите неÑколько значений" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "" +msgstr "Введите объекты или ÑÑылки на объекты. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»ÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸." -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "Введите одно значение" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "" +msgstr "Введите оxthtlb или ÑÑылки на оxthtlb. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»ÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸." -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "" +msgstr "Введите заÑвки или ÑÑылки на заÑвки. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»ÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸." -#: html/Search/Bulk.html:142 +#: NOT FOUND IN SOURCE msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." -msgstr "Введите номера или ÑÑылки на тикеты. ÐеÑколько тикетов разделÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸." +msgstr "Введите заÑвки или ÑÑылки на заÑвки. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð´ÐµÐ»ÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð°Ð¼Ð¸." -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:66 msgid "Enter up to %1 values" -msgstr "" +msgstr "Введите до %1 значений" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "Ошибка" #: NOT FOUND IN SOURCE msgid "Error adding watcher" -msgstr "" +msgstr "Ошибка Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð±Ð»ÑŽÐ´Ð°Ñ‚ÐµÐ»Ñ" -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "Ошибка в параметрах Queue->AddWatcher" @@ -2234,11 +2157,11 @@ msgstr "Ошибка в параметрах Queue->AddWatcher" msgid "Error in parameters to Queue->DelWatcher" msgstr "Ошибка в параметрах Queue->DelWatcher" -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "" +msgstr "Ошибка в параметрах Queue->DeleteWatcher" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "Ошибка в параметрах Ticket->AddWatcher" @@ -2246,27 +2169,27 @@ msgstr "Ошибка в параметрах Ticket->AddWatcher" msgid "Error in parameters to Ticket->DelWatcher" msgstr "Ошибка в параметрах Ticket->DelWatcher" -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "" +msgstr "Ошибка в параметрах Ticket->DeleteWatcher" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" -msgstr "" +msgstr "РаÑширить заÑвки" #: NOT FOUND IN SOURCE msgid "Estimate" -msgstr "" +msgstr "РаÑчетно" -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" -msgstr "" +msgstr "РаÑчетное" #: etc/initialdata:20 msgid "Everyone" -msgstr "" +msgstr "Ð’Ñе" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "Пример:" @@ -2278,92 +2201,105 @@ msgstr "ExternalAuthId" msgid "ExternalContactInfoId" msgstr "ExternalContactInfoId" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" -msgstr "Доп. информациÑ" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "" +msgstr "Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" msgstr "" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "Ðе могу найти пÑевдо-группу 'Полномочных' пользователей" +msgstr "Ðевозможно найти пÑевдо-группу 'Привилегированные'" -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "Ðе могу найти пÑевдо-группу 'Ðеполномочных' пользователей" +msgstr "Ðевозможно найти пÑевдо-группу 'Ðепривилегированные'" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" +msgstr "Ошибка загрузки Ð¼Ð¾Ð´ÑƒÐ»Ñ %1. (%2)" + +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" msgstr "" -#: lib/RT/Date.pm:412 +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "Фев." #: NOT FOUND IN SOURCE msgid "February" -msgstr "" +msgstr "Февраль" -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" -msgstr "" +msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" -#: NOT FOUND IN SOURCE +#: 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 "" -#: NOT FOUND IN SOURCE +#: 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 "" -#: NOT FOUND IN SOURCE +#: 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 "Fin" msgstr "Конец" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "Конечный приоритет" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" -msgstr "" +msgstr "Конечный приоритет" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: NOT FOUND IN SOURCE msgid "Find group whose" -msgstr "Ðайти группы, у которых" +msgstr "Ðайти группы, которые" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 msgid "Find groups whose" -msgstr "" +msgstr "Ðайти группы, которые" #: NOT FOUND IN SOURCE msgid "Find new/open tickets" -msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ тикетах" +msgstr "Ðайти новые/открытые заÑвки" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" -msgstr "Ðайти людей, у которых" +msgstr "Ðайти пользователей, у которых" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" -msgstr "ПоиÑк тикетов" +msgstr "ПоиÑк заÑвок" #: NOT FOUND IN SOURCE msgid "Finish Approval" -msgstr "" +msgstr "Подтвердить" -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "Ðачало" @@ -2371,110 +2307,98 @@ msgstr "Ðачало" msgid "First page" msgstr "ÐŸÐµÑ€Ð²Ð°Ñ Ñтраница" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "Foo!" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" -msgstr "Изменить Ñилой" +msgstr "Изменить принудительно" + +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" -#: html/Search/Results.html:70 +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" -msgstr "" +msgstr "Ðайдено %quant(%1,ticket)" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Freeform" -msgstr "" +msgstr "Ðайден объект" #: NOT FOUND IN SOURCE msgid "FreeformContactInfo" msgstr "FreeformContactInfo" -#: lib/RT/CustomField_Overlay.pm:37 -msgid "FreeformMultiple" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:36 -msgid "FreeformSingle" -msgstr "" - -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "Птн." -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" -msgstr "Полный" +msgstr "Ð’Ñе заголовки" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" -msgstr "" +msgstr "ВзÑть шаблон из файла" #: NOT FOUND IN SOURCE msgid "Getting the current user from a pgp sig\\n" msgstr "Берем текущего Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð· pgp подпиÑи\\n" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" -msgstr "" +msgstr "Ðазначено %1" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "Общие" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:55 msgid "Global Custom Fields" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Global Keyword Selections" -msgstr "" +msgstr "Общие дополнительные полÑ" #: NOT FOUND IN SOURCE msgid "Global Scrips" +msgstr "Общие Ñкриплеты" + +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" msgstr "" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" -msgstr "" +msgstr "Общий шаблон: %1" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" -msgstr "" +msgstr "Отправить" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" -msgstr "Поехали!" +msgstr "Отправить!" #: NOT FOUND IN SOURCE msgid "Good pgp sig from %1\\n" -msgstr "Ð¥Ð¾Ñ€Ð¾ÑˆÐ°Ñ pgp подпиÑÑŒ от %1\\n" +msgstr "ÐŸÑ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ pgp подпиÑÑŒ от %1\\n" #: NOT FOUND IN SOURCE msgid "Goto page" msgstr "Перейти на Ñтраницу" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" -msgstr "Показать тикет" +msgstr "Показать заÑвку" -#: NOT FOUND IN SOURCE -msgid "Grand" -msgstr "" - -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "Групповые" @@ -2482,32 +2406,32 @@ msgstr "Групповые" msgid "Group %1 %2: %3" msgstr "Группа %1 %2: %3" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "Права группы" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "Пользователь уже входит в группу" #: NOT FOUND IN SOURCE msgid "Group could not be created." -msgstr "" +msgstr "Ðевозможно Ñоздать группу." -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" -msgstr "Ðе могу Ñоздать группу: %1" +msgstr "Ðевозможно Ñоздать группу: %1" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" -msgstr "Создана группа" +msgstr "Группа Ñоздана" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" -msgstr "" +msgstr "Ð’ группе нет такого пользователÑ" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "Группа не найдена" @@ -2519,237 +2443,243 @@ msgstr "Группа не найдена.\\n" msgid "Group not specified.\\n" msgstr "Ðе задана группа.\\n" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "Группы" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "Группы не могут быть членами входÑщих в них пользователей" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:82 msgid "Groups matching search criteria" -msgstr "" +msgstr "Группы, удовлетворÑющие уÑловию поиÑка" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowRequestor:77 msgid "Groups this user belongs to" -msgstr "" +msgstr "Группы, в которых ÑоÑтоит Ñтот пользователь" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: 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:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" -msgstr "Hello, %1" +msgstr "ЗдравÑтвуйте, %1" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "ИÑториÑ" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) msgid "History of the group %1" -msgstr "" +msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ %1" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) msgid "History of the user %1" -msgstr "" +msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1" #: NOT FOUND IN SOURCE msgid "HomePhone" -msgstr "HomePhone" +msgstr "Домашний телефон" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" -msgstr "Домой" +msgstr "Ð’ начало" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." -msgstr "" +msgstr "ИмеетÑÑ %quant(%1,concrete mixer)." #: NOT FOUND IN SOURCE msgid "I have [quant,_1,concrete mixer]." -msgstr "I have [quant,_1,concrete mixer]." +msgstr "ИмеетÑÑ [quant,_1,concrete mixer]." + +#: html/Search/Build.html:637 +msgid "I'm lost" +msgstr "" -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" -msgstr "Тикет" +msgstr "ЗаÑвка" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: 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 "" +msgstr "ЕÑли подтверждение отклонено, отклонить заÑвку-первоиÑточник и удалить ожидающие подтверждениÑ" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "" +msgstr "ЕÑли не указан Ðвтор, Ñоздать заÑвки от имени Ñтого Ðвтора." -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." -msgstr "" +msgstr "ЕÑли очередь не указана, то Ñоздавать заÑвки в Ñтой очереди." -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 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:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" -msgstr "ЕÑли вы что-либо изменили, то удоÑтоверьтеÑÑŒ, что" +msgstr "ПоÑле любых изменений необходимо" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" -msgstr "" +msgstr "ÐедопуÑтимое значение Ð´Ð»Ñ %1" #: NOT FOUND IN SOURCE msgid "Image" -msgstr "" +msgstr "Изображение" -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" -msgstr "" +msgstr "ÐеизменÑемое поле" #: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." -msgstr "Включать отключенные дополнительные Ð¿Ð¾Ð»Ñ Ð² ÑпиÑок." +msgstr "Показывать неиÑпользуемые дополнительные полÑ." -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." -msgstr "" +msgstr "Показывать неиÑпользуемые группы." -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." -msgstr "Показывать отключенные очереди." +msgstr "Показывать неиÑпользуемые очереди." -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." -msgstr "Показать отключенных пользователей." +msgstr "Показывать отключенных пользователей." -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "" + +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "Ðачальный приоритет" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" -msgstr "" +msgstr "Ðачальный приоритет" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "Ошибка ввода" -#: NOT FOUND IN SOURCE -msgid "Interest noted" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" -msgstr "" +msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°: %1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" -msgstr "Ðеправильный тип группы" +msgstr "ÐедопуÑтимый тип группы" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" -msgstr "" +msgstr "ÐедопуÑтимое право" #: NOT FOUND IN SOURCE msgid "Invalid Type" -msgstr "" +msgstr "ÐедопуÑтимый тип" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" -msgstr "" +msgstr "ÐедопуÑтимые данные" #: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "Владелец отÑутÑтвует. ЗаменÑем его на 'nobody'." +msgstr "ÐеÑущеÑтвующий ответÑтвенный. ИÑпользуем 'nobody'." -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" -msgstr "ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÑŒ" +msgstr "ÐедопуÑÑ‚Ð¸Ð¼Ð°Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÑŒ" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" -msgstr "Ðеверные права" +msgstr "ÐедопуÑтимое право" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" -msgstr "Ðеправильное значение Ð´Ð»Ñ %1" +msgstr "ÐедопуÑтимое значение Ð´Ð»Ñ %1" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" -msgstr "Ðеправильное значение Ð´Ð»Ñ Ñтого полÑ" +msgstr "ÐедопуÑтимое значение дополнительного полÑ" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" -msgstr "Такого ÑтатуÑа не бывает" +msgstr "ÐедопуÑтимое значение ÑтатуÑа" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "Обратите внимание, что обычные пользователи не имеют права запуÑкать Ñту программу." +msgstr "Обратите внимание, что непривилегированные пользователи не имеют права запуÑкать Ñту программу." -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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 "ПредполагаетÑÑ, что Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Ñтой программы вы должны Ñоздать учетную запиÑÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Unix Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼Ð¸ уÑтановками групп и доÑтупом к RT." +msgstr "ПредполагаетÑÑ, что Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка Ñтой программы вы должны Ñоздать непривилегированную учетную запиÑÑŒ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Unix Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ñ‹Ð¼Ð¸ уÑтановками групп и доÑтупом к RT." -#: bin/rt-crontool:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" -msgstr "Она требует неÑколько параметров:" +msgstr "Это требует неÑколько параметров:" + +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "" #: NOT FOUND IN SOURCE msgid "Items pending my approval" -msgstr "Тикеты, ожидающие моей визы" +msgstr "ЗаÑвки, ожидающие вашего подтверждениÑ" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "Янв." #: NOT FOUND IN SOURCE msgid "January" -msgstr "" +msgstr "Январь" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" -msgstr "" +msgstr "ПриÑоединитьÑÑ Ð¸Ð»Ð¸ покинуть Ñту группу" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "Июл." #: NOT FOUND IN SOURCE msgid "July" -msgstr "" +msgstr "Июль" -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" -msgstr "Ð’Ñе вмеÑте" +msgstr "Ð’Ñе данные" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "Июн." #: NOT FOUND IN SOURCE msgid "June" -msgstr "" +msgstr "Июнь" #: NOT FOUND IN SOURCE msgid "Keyword" @@ -2759,693 +2689,724 @@ msgstr "Ключевое Ñлово" msgid "Lang" msgstr "Язык" -#: html/User/Prefs.html:54 +#: 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:74 +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "Конец" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" -msgstr "Контакт" +msgstr "ПоÑледний контакт" #: NOT FOUND IN SOURCE msgid "Last Contact</a>" -msgstr "" +msgstr "ПоÑледний контакт</a>" -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" -msgstr "Контакт" +msgstr "ПоÑледний контакт" #: NOT FOUND IN SOURCE msgid "Last Notified" -msgstr "" +msgstr "ПоÑледнее уведомление" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" -msgstr "Обновлен" +msgstr "ПоÑледнее обновление" #: NOT FOUND IN SOURCE msgid "LastUpdated" -msgstr "" +msgstr "ПоÑледнее обновление" -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" -msgstr "" +msgstr "ПоÑледний раз обновлено" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "ОÑталоÑÑŒ" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "Разрешить доÑтуп к RT" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" -msgstr "Пользователь может иметь права" +msgstr "ПредоÑтавить пользователю права" #: NOT FOUND IN SOURCE msgid "Limiting owner to %1 %2" -msgstr "Ограничиваем владельца %1 %2" +msgstr "Ограничиваем ответÑтвенного Ð´Ð»Ñ %1 %2" #: NOT FOUND IN SOURCE msgid "Limiting queue to %1 %2" msgstr "Ограничиваем очередь Ð´Ð»Ñ %1 %2" -#: lib/RT/Record.pm:1086 +#: html/Search/Elements/EditFormat:68 +msgid "Link" +msgstr "" + +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "СвÑзь уже ÑущеÑтвует" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" -msgstr "Ðе могу ÑвÑзать тикеты" +msgstr "Ðевозможно Ñоздать ÑвÑзь" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" -msgstr "" +msgstr "СвÑзь Ñоздана (%1)" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" -msgstr "Удалена ÑвÑзь (%1)" +msgstr "СвÑзь удалена (%1)" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "СвÑзь не найдена" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" -msgstr "СвÑзываем тикет #%1" +msgstr "СвÑзать заÑвку #%1" #: NOT FOUND IN SOURCE msgid "Link ticket %1" -msgstr "" +msgstr "СвÑзать заÑвку %1" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "СвÑзи" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" -msgstr "" +msgstr "Загрузить" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" +msgstr "Загрузить Ñохраненный запроÑ:" + +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" msgstr "" -#: html/Admin/Tools/Configuration.html:19 +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" +msgstr "Загруженные модули perl" + +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" msgstr "" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "МеÑтонахождение" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "Ðе найден каталог Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ‚Ð¾ÐºÐ¾Ð»Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ %1 или не доÑтупен на запиÑÑŒ.\\n RT не может продолжить работу." -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "ЗарегиÑтрирован как %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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" -msgstr "Логин" +msgstr "Войти" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "Выйти" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:866 msgid "Lookup type mismatch" msgstr "" -#: html/Search/Bulk.html:83 +#: html/Search/Bulk.html:104 msgid "Make Owner" -msgstr "Ðазначить владельцем" +msgstr "Ðазначить ответÑтвенного" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" -msgstr "Ðазначить ÑтатуÑ" +msgstr "УÑтановить ÑтатуÑ" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" -msgstr "Ðазначить Ñрок" +msgstr "УÑтановить конечный Ñрок" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" -msgstr "Изменить дату решениÑ" +msgstr "УÑтановить дату решениÑ" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" -msgstr "Изменить дату 'ÐачалÑÑ'" +msgstr "УÑтановить дату 'Ðачато'" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" -msgstr "Изменить дату 'ÐачинаетÑÑ'" +msgstr "УÑтановить дату 'ÐачинаетÑÑ'" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" -msgstr "Изменить дату поÑледнего контакта" +msgstr "УÑтановить дату поÑледнего контакта" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" -msgstr "Ðазначить приоритет" +msgstr "УÑтановить приоритет" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "Ðазначить очередь" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" -msgstr "Изменить тему" +msgstr "УÑтановить тему" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/index.html:78 msgid "Manage custom fields and custom field values" -msgstr "" +msgstr "Управление дополнительными полÑми и их значениÑми" -#: html/Admin/index.html:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" -msgstr "ÐаÑтройка групп и их пользователей" +msgstr "Управление группами и членами групп" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" -msgstr "ÐаÑтройки Ð´Ð»Ñ Ð²Ñех очередей" +msgstr "Управление ÑвойÑтвами и наÑтройками, которые применÑÑŽÑ‚ÑÑ ÐºÐ¾ вÑем очередÑм" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" -msgstr "ÐаÑтройка очередей и их параметров" +msgstr "Управление очередÑми и их параметрами" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" -msgstr "ÐаÑтройка пользователей и их паролей" +msgstr "Управление пользователÑми и паролÑми" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "Мар." #: NOT FOUND IN SOURCE msgid "March" -msgstr "" +msgstr "Март" #: NOT FOUND IN SOURCE msgid "May" -msgstr "" +msgstr "Май" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "Май" -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" -msgstr "" +msgstr "УчаÑтник %1 добавлен" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" -msgstr "" +msgstr "УчаÑтник %1 удален" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "Пользователь добавлен в группу" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "Пользователь удален из группы" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "Пользователь не удален из группы" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" -msgstr "Входит в" +msgstr "СоÑтоит в" #: NOT FOUND IN SOURCE msgid "MemberOf" -msgstr "" +msgstr "СоÑтоит в" -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" -msgstr "Пользователи" +msgstr "УчаÑтники" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" -msgstr "" +msgstr "УчаÑтие в %1 добавлено" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" -msgstr "" +msgstr "УчаÑтие в %1 удалено" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:61 msgid "Memberships" -msgstr "" +msgstr "УчаÑтие в группах" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) msgid "Memberships of the user %1" -msgstr "" +msgstr "УчаÑтие в группах данного Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" -msgstr "Тикеты уÑпешно Ñклеены" +msgstr "ЗаÑвки уÑпешно объединены" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" -msgstr "Склейка не удалаÑÑŒ. Ðе Ñмогла уÑтановить идентификатор тикета." +msgstr "Ошибка объединениÑ. Ðевозможно уÑтановить идентификатор заÑвки." + +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" -msgstr "Приклеить к" +msgstr "Объединить Ñ Ð·Ð°Ñвкой" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" -msgstr "" +msgstr "Объединено в %1" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" -msgstr "ТекÑÑ‚" +msgstr "Сообщение" #: NOT FOUND IN SOURCE msgid "Message body not shown because it is too large or is not plain text." -msgstr "" +msgstr "Тело ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð½Ðµ показано потому, что оно или Ñлишком большое или не ÑвлÑетÑÑ Ñ‚ÐµÐºÑтом." -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" -msgstr "" +msgstr "Ðевозможно запиÑать Ñообщение" #: NOT FOUND IN SOURCE msgid "Message recipients" -msgstr "" +msgstr "Получатели ÑообщениÑ" -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" -msgstr "" +msgstr "Сообщение запиÑано" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." +msgstr "Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ð± Ñтой заÑвке не будет отправлены..." + +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" msgstr "" -#: lib/RT/Record.pm:749 +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" -msgstr "" +msgstr "Пропущен первичный ключ?: %1" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" -msgstr "Мобильник" +msgstr "Мобильный" #: NOT FOUND IN SOURCE msgid "MobilePhone" -msgstr "MobilePhone" +msgstr "Мобильный телефон" #: NOT FOUND IN SOURCE msgid "Modified" -msgstr "" +msgstr "Изменено" #: NOT FOUND IN SOURCE msgid "Modify" -msgstr "" +msgstr "Изменить" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "Изменить ÑпиÑок ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ Ð´Ð¾Ñтупа" #: NOT FOUND IN SOURCE msgid "Modify Custom Field %1" -msgstr "Изменение дополнительного Ð¿Ð¾Ð»Ñ %1" +msgstr "Изменить дополнительное поле %1" -#: NOT FOUND IN SOURCE -msgid "Modify Custom Fields which apply to all %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/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +#: 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 "Изменить дополнительные полÑ, применÑемые кл вÑем очередÑм" +msgstr "Изменить дополнительные полÑ, применÑемые ко вÑем очередÑм" -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 msgid "Modify Group Rights" -msgstr "" +msgstr "Изменить права группы" -#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" -msgstr "" +msgstr "Изменить учаÑтников" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" -msgstr "" +msgstr "Изменить права" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "Изменить шаблоны Ñкриплетов Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ очереди" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" msgstr "Изменить Ñкриплеты Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ очереди" #: NOT FOUND IN SOURCE msgid "Modify System ACLS" -msgstr "" +msgstr "Изменить ÑиÑтемные права доÑтупа" #: NOT FOUND IN SOURCE msgid "Modify Template %1" -msgstr "" +msgstr "Изменить шаблон %1" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 msgid "Modify User Rights" -msgstr "" +msgstr "Изменить права пользователÑ" -#: html/Admin/Queues/CustomField.html:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" -msgstr "" +msgstr "Изменить дополнительное поле Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" -#: html/Admin/Global/CustomField.html:52 +#: NOT FOUND IN SOURCE msgid "Modify a CustomField which applies to all queues" -msgstr "" +msgstr "Изменить дополнительное поле, которое применÑетÑÑ ÐºÐ¾ вÑем очередÑм" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" -msgstr "Изменить Ñкрипт Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" +msgstr "Изменить Ñкриплет Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" -msgstr "Изменение Ñкрипта, который дейÑтвует Ð´Ð»Ñ Ð²Ñех очередей" - -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" +msgstr "Изменить Ñкриплет, который дейÑтвует Ð´Ð»Ñ Ð²Ñех очередей" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) msgid "Modify associated objects for %1" -msgstr "" +msgstr "Изменить аÑÑоциированные объекты Ð´Ð»Ñ %1" #: NOT FOUND IN SOURCE msgid "Modify dates for # %1" -msgstr "" +msgstr "Изменить даты заÑвки #%1" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" -msgstr "Изменение дат в тикете #%1" +msgstr "Изменить даты заÑвки #%1" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" -msgstr "Изменение дат в тикете #%1" +msgstr "Изменить даты заÑвки #%1" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: 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 "Изменение глобальных прав группы" +msgstr "Изменить общие права группы" -#: html/Admin/Global/GroupRights.html:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." -msgstr "Изменение глобальных прав группы" +msgstr "Изменить общие права группы." #: NOT FOUND IN SOURCE msgid "Modify global rights for groups" -msgstr "" +msgstr "Изменить общие права Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿" #: NOT FOUND IN SOURCE msgid "Modify global rights for users" -msgstr "" +msgstr "Изменить общие права Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹" #: NOT FOUND IN SOURCE msgid "Modify global scrips" -msgstr "" +msgstr "Изменить общие Ñкриплеты" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 msgid "Modify global user rights" -msgstr "Изменение глобальных прав пользователÑ" +msgstr "Изменить общие права пользователÑ" -#: html/Admin/Global/UserRights.html:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." -msgstr "Изменение глобальных прав пользователÑ." +msgstr "Изменить общие права пользователÑ." -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" -msgstr "Изменение метаданных группы или ее удаление" +msgstr "Изменить метаданные группы или удалить ее" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" -msgstr "" +msgstr "Изменить права группы на дополнительное поле %1" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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" +msgstr "Изменить права группы на группу %1" -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 +#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 #. ($QueueObj->Name) msgid "Modify group rights for queue %1" -msgstr "Изменение прав групп Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" +msgstr "Изменить права группы на очередь %1" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" -msgstr "" +msgstr "Изменить ÑпиÑок учаÑтников Ñтой группы" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" -msgstr "" +msgstr "Изменить ÑобÑтвенную учетную запиÑÑŒ RT" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 #. ($QueueObj->Name) msgid "Modify people related to queue %1" -msgstr "Изменение пользователей отноÑÑщихÑÑ Ðº очереди %1" +msgstr "Изменить пользователей, отноÑÑщихÑÑ Ðº очереди %1" -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" -msgstr "Изменение пользователей отноÑÑщихÑÑ Ðº тикету #%1" +msgstr "Изменить пользователей, отноÑÑщихÑÑ Ðº заÑвке #%1" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" -msgstr "Изменить Ñкрипты Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" +msgstr "Изменить Ñкриплеты Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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 "Изменение Ñкриптов, которые дейÑтвуют на вÑе очереди" +msgstr "Изменить Ñкриплеты, которые дейÑтвуют на вÑе очереди" -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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" +msgstr "Изменить шаблон %1" -#: html/Admin/Global/Templates.html:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "Изменить шаблоны, которые применÑÑŽÑ‚ÑÑ ÐºÐ¾ вÑем очередÑм" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 #. ($Group->Name) msgid "Modify the group %1" -msgstr "ÐаÑтройки Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ %1" +msgstr "Изменить группу %1" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "Изменить очередь наблюдателей" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" -msgstr "ÐаÑтройки Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1" +msgstr "Изменить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" -msgstr "Изменение тикета # %1" +msgstr "Изменить заÑвку # %1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 #. ($TicketObj->Id) msgid "Modify ticket #%1" -msgstr "Изменение тикета # %1" +msgstr "Изменить заÑвку # %1" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" -msgstr "Изменить тикеты" +msgstr "Изменить заÑвки" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) msgid "Modify user rights for custom field %1" -msgstr "" +msgstr "Изменить права Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° дополнительное поле %1" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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" +msgstr "Изменить права пользователей группы %1" -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" -msgstr "Изменение прав Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ %1" +msgstr "Изменить права Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° очередь %1" #: NOT FOUND IN SOURCE msgid "Modify watchers for queue '%1'" -msgstr "Изменение наблюдателей Ð´Ð»Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸ '%1'" +msgstr "Изменить наблюдателей очереди '%1'" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" -msgstr "" +msgstr "ИзменÑтьПраваДоÑтупа" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "ИзменÑтьДополнительноеПоле" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" -msgstr "" +msgstr "ИзменÑтьСобÑтвенноеУчаÑтиеВГруппах" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" -msgstr "" +msgstr "ИзменÑтьÐаблюдателейОчереди" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" -msgstr "" +msgstr "ИзменÑтьСкриплеты" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" -msgstr "" +msgstr "ИзменÑтьСебÑ" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" -msgstr "" +msgstr "ИзменÑтьШаблон" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" -msgstr "" +msgstr "ИзменÑтьЗаÑвку" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "Пнд." -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ %1" #: NOT FOUND IN SOURCE msgid "Move" -msgstr "" +msgstr "ПеремеÑтить" -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" -msgstr "" +msgstr "ПеремеÑтить вниз" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" -msgstr "" +msgstr "ПеремеÑтить вверх" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "ÐеÑколько значений" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "Ð’Ñ‹ должны указать ИмÑ" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" -msgstr "" +msgstr "%1 ваших заÑвок" #: NOT FOUND IN SOURCE msgid "My Approvals" -msgstr "Мои визы" +msgstr "Ваши подтверждениÑ" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" -msgstr "Мои визы" +msgstr "Ваши подтверждениÑ" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" -msgstr "" +msgstr "Ваши Ñохраненные запроÑÑ‹" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "ИмÑ" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "Ð˜Ð¼Ñ ÑƒÐ¶Ðµ иÑпользуетÑÑ" #: NOT FOUND IN SOURCE msgid "Name matches" -msgstr "" +msgstr "Совпадение имен" #: NOT FOUND IN SOURCE msgid "Need approval from system administrator" -msgstr "" +msgstr "Ðеобходимо подтверждение ÑиÑтемного админиÑтратора" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" -msgstr "" +msgstr "Ðикогда" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "Ðовых" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "Ðовые ÑвÑзи" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "Ðовый пароль" #: etc/initialdata:332 msgid "New Pending Approval" -msgstr "" +msgstr "Ðовое ожидающее подтверждение" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" -msgstr "" +msgstr "Ðовый запроÑ" #: NOT FOUND IN SOURCE msgid "New Relationships" -msgstr "" +msgstr "Ðовые ÑвÑзи" #: NOT FOUND IN SOURCE msgid "New Search" msgstr "Ðовый поиÑк" -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "Ðовое дополнительное поле" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "ÐÐ¾Ð²Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð°" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "Ðовый пароль" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "Отправлено Ñообщение Ñ Ð½Ð¾Ð²Ñ‹Ð¼ паролем" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "ÐÐ¾Ð²Ð°Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÑŒ" @@ -3453,11 +3414,11 @@ msgstr "ÐÐ¾Ð²Ð°Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÑŒ" msgid "New request" msgstr "Ðовый запроÑ" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "Ðовые права" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "Ðовый Ñкриплет" @@ -3465,27 +3426,27 @@ msgstr "Ðовый Ñкриплет" msgid "New search" msgstr "Ðовый поиÑк" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" -msgstr "" +msgstr "ÐÐ¾Ð²Ð°Ñ Ð·Ð°Ñвка" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" -msgstr "Ðовый тикет не ÑущеÑтвует" +msgstr "ÐÐ¾Ð²Ð°Ñ Ð·Ð°Ñвка не ÑущеÑтвует" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "Ðовый пользователь" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "Добавить Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "Ðовые наблюдатели" @@ -3493,13 +3454,13 @@ msgstr "Ðовые наблюдатели" msgid "New window setting" msgstr "Ðовые наÑтройки окна" -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "Вперед" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" -msgstr "" +msgstr "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница" #: NOT FOUND IN SOURCE msgid "Next page" @@ -3509,188 +3470,193 @@ msgstr "Ð¡Ð»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница" msgid "NickName" msgstr "ПÑевдоним" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "ПÑевдоним" #: NOT FOUND IN SOURCE msgid "No" -msgstr "" +msgstr "Ðет" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" -msgstr "Ðет такого полÑ" +msgstr "Ðет дополнительного полÑ" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" -msgstr "" +msgstr "Дополнительное поле не указано" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" -msgstr "Ðет такой группы" +msgstr "Группа не указана" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" -msgstr "" +msgstr "Ðет запроÑа" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" -msgstr "Ðет такой очереди" +msgstr "Очередь не указана" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "Пользователь RT не найден. ПожалуйÑта, обратитеÑÑŒ к вашему админиÑтратору RT.\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" -msgstr "Шаблон не определен" +msgstr "Ðет шаблона" #: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket " -msgstr "Тикет не задан. Ðичего не делаем." +msgstr "ЗаÑвка не указана. Отмена." #: NOT FOUND IN SOURCE msgid "No Ticket specified. Aborting ticket modifications\\n\\n" -msgstr "Тикет не задан. ОтменÑем Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð°\\n\\n" +msgstr "ЗаÑвка не указана. ОтменÑем Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð°Ñвки\\n\\n" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "Ðет дейÑтвиÑ" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" -msgstr "" +msgstr "Колонка не указана" #: NOT FOUND IN SOURCE msgid "No command found\\n" msgstr "Команда не найдена\\n" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" -msgstr "Без комментариев" +msgstr "Ðет комментариев о пользователе" #: NOT FOUND IN SOURCE msgid "No correspondence attached" msgstr "ПуÑтое Ñообщение" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "Ðет опиÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ %1" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "Ðе указана группа" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:52 msgid "No groups matching search criteria found." -msgstr "" +msgstr "Группы, удовелÑтворÑющие уÑловию поиÑка, не найдены." -#: lib/RT/Ticket_Overlay.pm:2475 +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" -msgstr "" +msgstr "Ðет приÑоединенных Ñообщений" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" -msgstr "ОтÑутÑтвует пароль" +msgstr "Пароль не уÑтановлен" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" -msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ права на Ñоздание очереди" +msgstr "Ðет прав Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÐµÐ¹" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" -msgstr "" +msgstr "Ðет прав Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð·Ð°Ñвок в очереди '%1'" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" -msgstr "Ð’Ñ‹ не имеете права Ñоздавать пользователей" +msgstr "Ðет прав Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" -msgstr "Показ Ñтого тикета запрещен" +msgstr "Ðет прав Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра Ñтой заÑвки" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" -msgstr "Запрещен показ изменений Ñтого тикета" +msgstr "Ðет прав Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñмотра обновлений Ñтой заÑвки" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "Пользователь не указан" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." msgstr "Пользователи не выбраны." -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." -msgstr "Ðичего подходÑщего не найдено." +msgstr "Очереди, удовелÑтворÑющие уÑловию поиÑка, не найдены." -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" -msgstr "" +msgstr "Права не найдены" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." -msgstr "Ðет прав." +msgstr "Права не выданы." + +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" -#: html/Search/Bulk.html:162 +#: html/Search/Bulk.html:194 msgid "No search to operate on." -msgstr "Ðечего делать." +msgstr "Ðет запроÑа Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка." -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" -msgstr "" +msgstr "Ðет темы" #: NOT FOUND IN SOURCE msgid "No ticket id specified" -msgstr "Ðе указан номер тикета" +msgstr "Идентификатор заÑвки не указан" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" -msgstr "Ðе указан тип транзакции" +msgstr "Тип транзакции не указан" #: NOT FOUND IN SOURCE msgid "No user or email address specified" -msgstr "" +msgstr "Пользователь или Ð°Ð´Ñ€ÐµÑ email не указан" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." -msgstr "Ðи одного подходÑщего Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ найдено." +msgstr "Пользователи, удовелÑтворÑющие уÑловию поиÑка, не найдены." #: NOT FOUND IN SOURCE msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" msgstr "Ðе найден пользователь RT. Обработчик CVS отключен. ОбратитеÑÑŒ к админиÑтратору RT.\\n" -#: lib/RT/Record.pm:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" -msgstr "" +msgstr "Ðикакое значение не отправлено _Set!\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" -msgstr "" +msgstr "Ðикто" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" -msgstr "" +msgstr "ÐеÑущеÑтвующее поле?" #: NOT FOUND IN SOURCE msgid "Not logged in" -msgstr "" +msgstr "Ðе зарегиÑтрирован" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "Ðе зарегиÑтрирован." -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "Ðе уÑтановлено" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "Еще не реализовано." @@ -3698,127 +3664,141 @@ msgstr "Еще не реализовано." msgid "Not yet implemented...." msgstr "Еще не реализовано..." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" -msgstr "Примечание" +msgstr "ПримечаниÑ" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" -msgstr "Ðе могу отоÑлать уведомление" +msgstr "Ðевозможно отправить уведомление" #: etc/initialdata:101 msgid "Notify AdminCcs" -msgstr "" +msgstr "УведомлÑть ÐдминиÑтративныеКопии" #: etc/initialdata:97 msgid "Notify AdminCcs as Comment" -msgstr "" +msgstr "УведомлÑть ÐдминиÑтративныеКопии как Комментарий" #: etc/initialdata:93 etc/upgrade/3.1.17/content:6 msgid "Notify Ccs" -msgstr "" +msgstr "УведомлÑть Копии" #: etc/initialdata:89 etc/upgrade/3.1.17/content:2 msgid "Notify Ccs as Comment" -msgstr "" +msgstr "УведомлÑть Копии как Комментарий" #: etc/initialdata:128 msgid "Notify Other Recipients" -msgstr "" +msgstr "УведомлÑть других Получателей" #: etc/initialdata:124 msgid "Notify Other Recipients as Comment" -msgstr "" +msgstr "УведомлÑть других Получателей как Комментарий" #: etc/initialdata:85 msgid "Notify Owner" -msgstr "" +msgstr "УведомлÑть ОтветÑтвенного" #: etc/initialdata:81 msgid "Notify Owner as Comment" -msgstr "" +msgstr "УведомлÑть ОтветÑтвенного как Комментарий" #: etc/initialdata:376 msgid "Notify Owner of their rejected ticket" -msgstr "" +msgstr "УведомлÑть ОтветÑтвенного об отклонении заÑвки" #: etc/initialdata:365 msgid "Notify Owner of their ticket has been approved by all approvers" -msgstr "" +msgstr "УведомлÑть ОтветÑтвенного о подтверждении заÑвки вÑеми подтверждающими" #: etc/initialdata:353 msgid "Notify Owner of their ticket has been approved by some approver" -msgstr "" +msgstr "УведомлÑть ОтветÑтвенного о подтверждении заÑвки одним из подтверждающих" #: etc/initialdata:334 msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "" +msgstr "УведомлÑть ОтветÑтвенных и ÐдминиÑтративныеКопии о новых, ожидающих их подтверждениÑÑ…" #: etc/initialdata:77 msgid "Notify Requestors" -msgstr "" +msgstr "УведомлÑть ÐвторовЗаÑвки" #: etc/initialdata:111 msgid "Notify Requestors and Ccs" -msgstr "" +msgstr "УведомлÑть ÐвторовЗаÑвки и Копии" #: etc/initialdata:106 msgid "Notify Requestors and Ccs as Comment" -msgstr "" +msgstr "УведомлÑть ÐвторовЗаÑвки и Копии как Комментарий" #: etc/initialdata:120 msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "" +msgstr "УведомлÑть Ðвторов заÑвки, Копии и ÐдминиÑтративныеКопии" #: etc/initialdata:116 msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "" +msgstr "УведомлÑть Ðвторов заÑвки, Копии и ÐдминиÑтративныеКопии как Комментарии" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "ÐоÑ." #: NOT FOUND IN SOURCE msgid "November" +msgstr "ÐоÑбрь" + +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" msgstr "" -#: lib/RT/Record.pm:200 +#: lib/RT/Record.pm:319 msgid "Object could not be created" -msgstr "Ðе могу Ñоздать объект" +msgstr "Ðевозможно Ñоздать объект" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 msgid "Object created" -msgstr "Создан объект" +msgstr "Объект Ñоздан" -#: NOT FOUND IN SOURCE -msgid "Object of type %1 cannot take custom fields" +#: lib/RT/Record.pm:121 +msgid "Object deleted" msgstr "" -#: NOT FOUND IN SOURCE +#: 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:901 msgid "Object type mismatch" -msgstr "" +msgstr "ÐеÑовпадение типа объекта" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "Окт." #: NOT FOUND IN SOURCE msgid "October" -msgstr "" +msgstr "ОктÑбрь" -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" -msgstr "" +msgstr "Ðвтономно" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" -msgstr "" +msgstr "Ðвтономное редактирование" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" -msgstr "" +msgstr "ÐÐ²Ñ‚Ð¾Ð½Ð¾Ð¼Ð½Ð°Ñ Ð·Ð°ÐºÐ°Ñ‡ÐºÐ°" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "Ðа" @@ -3828,51 +3808,51 @@ msgstr "Ðа комментарий" #: etc/initialdata:156 msgid "On Correspond" -msgstr "" +msgstr "При КорреÑпонденции" #: etc/initialdata:145 msgid "On Create" -msgstr "Ðа Ñоздание" +msgstr "При Создании" #: etc/initialdata:184 msgid "On Owner Change" -msgstr "Ðа изменение владельца" +msgstr "При Изменении ОтветÑтвенного" #: etc/initialdata:177 etc/upgrade/3.1.17/content:15 msgid "On Priority Change" -msgstr "" +msgstr "При Изменении Приоритета" #: etc/initialdata:192 msgid "On Queue Change" -msgstr "Ðа изменение очереди" +msgstr "При Изменении Очереди" #: etc/initialdata:198 msgid "On Resolve" -msgstr "" +msgstr "При Решении" #: etc/initialdata:169 msgid "On Status Change" -msgstr "на изменение ÑтатуÑа" +msgstr "При Изменении СтатуÑа" #: etc/initialdata:150 msgid "On Transaction" -msgstr "Ðа транзакцию" +msgstr "При Транзакции" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" -msgstr "Показывать визы только Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñов Ñозданных поÑле %1" +msgstr "Показывать Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñов, Ñозданных поÑле %1" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" -msgstr "Показывать визы только Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñов Ñозданных до %1" +msgstr "Показывать Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñов Ñозданных до %1" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "Открытых" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "Открыть" @@ -3880,90 +3860,90 @@ msgstr "Открыть" msgid "Open requests" msgstr "Открыть запроÑÑ‹" -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" -msgstr "" +msgstr "Открыть заÑвки" #: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in a new window" -msgstr "Открыть тикеты (из ÑпиÑка) в новом окне" +msgstr "Открыть заÑвки (из ÑпиÑка) в новом окне" #: NOT FOUND IN SOURCE msgid "Open tickets (from listing) in another window" -msgstr "Открыть тикеты (из ÑпиÑка) в другом окне" +msgstr "Открыть заÑвки (из ÑпиÑка) в другом окне" #: etc/initialdata:140 msgid "Open tickets on correspondence" -msgstr "" +msgstr "Открыть заÑвки при корреÑпонденции" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" -msgstr "" +msgstr "Сортировать по" #: NOT FOUND IN SOURCE msgid "Ordering and sorting" msgstr "ПорÑдок и Ñортировка" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "ОрганизациÑ" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" -msgstr "" +msgstr "ЗаÑвка-первоиÑточник: #%1" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" -msgstr "" +msgstr "ИÑходÑÑ‰Ð°Ñ Ð¿Ð¾Ñ‡Ñ‚Ð° о комментарии запиÑана" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" -msgstr "" +msgstr "ИÑходÑÑ‰Ð°Ñ Ð¿Ð¾Ñ‡Ñ‚Ð° запиÑана" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "Со временем поднÑть приоритет до" #: NOT FOUND IN SOURCE msgid "Overview" -msgstr "" +msgstr "Обзор" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" -msgstr "" +msgstr "Ðазначить ÑебÑ" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" -msgstr "" +msgstr "БытьОтветÑтвеннымЗаЗаÑвку" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" -msgstr "Владелец" +msgstr "ОтветÑтвенный" #: NOT FOUND IN SOURCE msgid "Owner changed from %1 to %2" -msgstr "" +msgstr "ОтветÑтвенный изменен Ñ %1 на %2" -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." -msgstr "" +msgstr "ОтветÑтвенный не может быть назначен" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" -msgstr "Владелец Ñилой изменен Ñ %1 на %2" +msgstr "ОтветÑтвенный принудительно изменен Ñ %1 на %2" #: NOT FOUND IN SOURCE msgid "Owner is" -msgstr "Владелец" +msgstr "ОтветÑтвенный" -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" -msgstr "" +msgstr "Страница %1 из %2" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "Пейджер" @@ -3973,66 +3953,83 @@ msgstr "Телефон пейджера" #: NOT FOUND IN SOURCE msgid "Parent" -msgstr "" +msgstr "Предок" -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "Предки" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "Пароль" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "ПодÑказка к паролю" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "Пароль Ñлишком короткий" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "Пароль: %1" -#: html/Admin/Users/Modify.html:318 -msgid "Passwords do not match." +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" msgstr "" -#: html/User/Prefs.html:211 +#: html/Admin/Users/Modify.html:356 +msgid "Passwords do not match." +msgstr "Пароли не Ñовпадают" + +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" -msgstr "" +msgstr "Пароли не Ñовпадают. Ваш пароль не был изменен" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" -msgstr "Люди" +msgstr "Пользователи" #: etc/initialdata:133 msgid "Perform a user-defined action" -msgstr "" +msgstr "Выволнить дейÑтвие, указанное пользователем" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" -msgstr "" +msgstr "ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Perl" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" -msgstr "Ð’ доÑтупе отказано" +msgstr "Ðет доÑтупа" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "Личные группы" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "Личные группы" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "Личные группы:" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "Ðомера телефонов" @@ -4040,29 +4037,25 @@ msgstr "Ðомера телефонов" msgid "Placeholder" msgstr "Заполнитель" -#: NOT FOUND IN SOURCE -msgid "Pref" -msgstr "" - -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" -msgstr "ПредпочтениÑ" +msgstr "ÐаÑтройки" #: NOT FOUND IN SOURCE msgid "Prefs" -msgstr "ПредпочтениÑ" +msgstr "ÐаÑтройки" -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "Подготовка не реализована" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "Ðазад" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" -msgstr "" +msgstr "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница" #: NOT FOUND IN SOURCE msgid "Previous page" @@ -4072,124 +4065,120 @@ msgstr "ÐŸÑ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰Ð°Ñ Ñтраница" msgid "Pri" msgstr "Приоритет" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." -msgstr "" +msgstr "Пользователь %1 не найден." -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "Приоритет" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "Приоритет начинаетÑÑ Ñ" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" -msgstr "" +msgstr "КонфиденциальноÑть:" #: etc/initialdata:25 msgid "Privileged" msgstr "Привилегированные" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" -msgstr "СоÑтоÑние полномочий: %1" +msgstr "СоÑтоÑние привилегий: %1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" -msgstr "Полномочные пользователи" +msgstr "Привилегированные пользователи" #: NOT FOUND IN SOURCE msgid "Projects" -msgstr "" +msgstr "Проекты" #: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 msgid "Pseudogroup for internal use" -msgstr "" +msgstr "ПÑевдогруппы Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ³Ð¾ иÑпользованиÑ" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" -msgstr "" +msgstr "ЗапроÑ" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" -msgstr "" +msgstr "ПоÑтроитель запроÑа" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "Очередь" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" -msgstr "Ðе найдена очередь %1" +msgstr "Очередь %1 не найдена" #: NOT FOUND IN SOURCE msgid "Queue '%1' not found\\n" -msgstr "Ðе найдена очередь '%1'\\n" +msgstr "Очередь '%1' не найдена\\n" -#: NOT FOUND IN SOURCE -msgid "Queue Keyword Selections" -msgstr "" - -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" -msgstr "Ð˜Ð¼Ñ Ð¾Ñ‡ÐµÑ€ÐµÐ´Ð¸" +msgstr "Ðаименование очереди" #: NOT FOUND IN SOURCE msgid "Queue Scrips" -msgstr "" +msgstr "Скриплеты очереди" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "Очередь уже ÑущеÑтвует" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" -msgstr "Ðе могу Ñоздать очередь" +msgstr "Ðевозможно Ñоздать очередь" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 lib/t/regression/01ticket_link_searching.t:17 msgid "Queue could not be loaded." -msgstr "Ðе могу загрузить очередь" +msgstr "Ðевозможно загрузить очередь" -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" -msgstr "Создана очередь" +msgstr "Очередь Ñоздана" #: NOT FOUND IN SOURCE msgid "Queue is not specified." -msgstr "" +msgstr "Очередь не указана." -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" -msgstr "Ðет такой очереди" +msgstr "Очередь не найдена" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "Очереди" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" -msgstr "" +msgstr "БыÑтрый поиÑк" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" -msgstr "" +msgstr "БыÑтрое Ñоздание заÑвки" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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 Ð´Ð»Ñ %2" @@ -4202,11 +4191,7 @@ msgstr "RT %1 от <a href=\"http://bestpractical.com\">Best Practical Solutions 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 "" - -#: html/Admin/index.html:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "ÐаÑтройка RT" @@ -4226,7 +4211,7 @@ msgstr "Ошибка конфигурации RT" msgid "RT Critical error. Message not recorded!" msgstr "КритичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° RT: Сообщение не было Ñохранено!" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "Ошибка RT" @@ -4236,21 +4221,21 @@ msgstr "RT получил Ñвое ÑобÑтвенное Ñообщение (%1 #: NOT FOUND IN SOURCE msgid "RT Recieved mail (%1) from itself." -msgstr "" +msgstr "RT получил Ñвое ÑобÑтвенное Ñообщение (%1)" #: NOT FOUND IN SOURCE msgid "RT Self Service" -msgstr "" +msgstr "СамообÑлуживание RT" #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" -msgstr "СамообÑлуживание RT / Закрытые тикеты" +msgstr "СамообÑлуживание RT / Закрытые заÑвки" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" -msgstr "" +msgstr "Переменные RT" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "Обзор RT" @@ -4260,24 +4245,28 @@ msgstr "RT не может зарегиÑтрировать ваÑ" #: NOT FOUND IN SOURCE msgid "RT couldn't find requestor via its external database lookup" -msgstr "RT не Ñмог найти проÑÐ¸Ñ‚ÐµÐ»Ñ Ð²Ð¾ внешней базе данных" +msgstr "RT не Ñмог найти автора заÑвки во внешней базе данных" #: NOT FOUND IN SOURCE msgid "RT couldn't find the queue: %1" -msgstr "RT не Ñмог найти очередь: %1" +msgstr "RT не может найти очередь: %1" + +#: html/Elements/SetupSessionCookie:90 +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" +msgstr "RT не может проверить Ñту подпиÑÑŒ PGP. \\n" -#: html/Elements/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "RT Ð´Ð»Ñ %1" #: NOT FOUND IN SOURCE msgid "RT for %1: %2" -msgstr "" +msgstr "RT Ð´Ð»Ñ %1: %2" #: NOT FOUND IN SOURCE msgid "RT has proccessed your commands" @@ -4289,11 +4278,11 @@ 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 "" +msgstr "Ð’Ñе права на RT защищены и охранÑÑŽÑ‚ÑÑ Ð·Ð°ÐºÐ¾Ð½Ð¾Ð¼. © 1996-%1 Jesse Vincent <jesse@bestpractical.com>. ПО раÑпроÑтранÑетÑÑ Ð¿Ð¾Ð´ <a href=\"http://www.gnu.org/copyleft/gpl.html\">Стандартной ОбщеÑтвенной Лицензией GNU ВерÑии 2.</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 "" +msgstr "Ð’Ñе права на RT защищены и охранÑÑŽÑ‚ÑÑ Ð·Ð°ÐºÐ¾Ð½Ð¾Ð¼. © 1996-%1 Jesse Vincent <jesse@bestpractical.com>. ПО раÑпроÑтранÑетÑÑ Ð¿Ð¾Ð´ <a href=\"http://www.gnu.org/copyleft/gpl.html\">Стандартной ОбщеÑтвенной Лицензией GNU ВерÑии 2.</a>" #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" @@ -4305,414 +4294,433 @@ msgstr "RT будет обрабатывать Ñто Ñообщение как #: 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 "RTFM Error" -msgstr "" +msgstr "Командный режим RT email требует иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи .PGP. Ð’Ñ‹ либо не подпиÑали Ñообщение, либо ваша подпиÑÑŒ не может быть проверена." -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" -msgstr "ИмÑ" +msgstr "Полное имÑ" #: NOT FOUND IN SOURCE msgid "RealName" -msgstr "ИмÑ" +msgstr "Полное имÑ" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" -msgstr "" +msgstr "СÑылка на заÑвку заÑвки %1 добавлена" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" -msgstr "" +msgstr "СÑылка на заÑвку заÑвки %1 удалена" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" -msgstr "" +msgstr "СÑылка на %1 добавлена" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" -msgstr "" +msgstr "СÑылка на %1 удалена" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" -msgstr "Ðа него ÑÑылаютÑÑ" +msgstr "Ðа неё ÑÑылаютÑÑ" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "СÑылаетÑÑ Ð½Ð°" #: NOT FOUND IN SOURCE msgid "RefersTo" -msgstr "" +msgstr "СÑылаетÑÑ Ð½Ð°" #: NOT FOUND IN SOURCE msgid "Refine" -msgstr "Улучшить" +msgstr "ОчиÑтить" #: NOT FOUND IN SOURCE msgid "Refine search" -msgstr "Улучшить поиÑк" +msgstr "ОчиÑтить запроÑ" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "ОбновлÑть Ñту Ñтраницу каждые %1 минут." #: NOT FOUND IN SOURCE msgid "Relationships" -msgstr "" +msgstr "СвÑзи" -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "Удалить админиÑтративную копию" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "Удалить копию" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" -msgstr "Удалить проÑителÑ" +msgstr "Удалить Ðвтора ЗаÑвки" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "Ответить" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" -msgstr "" +msgstr "ÐÐ´Ñ€ÐµÑ Ð´Ð»Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð°" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" -msgstr "" +msgstr "Отвечать авторам заÑвки" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" -msgstr "" +msgstr "Отвечать на заÑвки" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" -msgstr "" +msgstr "ОтвечатьÐаЗаÑвку" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" -msgstr "ПроÑитель" +msgstr "Ðвтор заÑвки" #: NOT FOUND IN SOURCE msgid "Requestor email address" -msgstr "Email проÑителÑ" +msgstr "Email автора заÑвки" #: NOT FOUND IN SOURCE msgid "Requestor(s)" -msgstr "" +msgstr "Ðвтор(-Ñ‹)" #: NOT FOUND IN SOURCE msgid "RequestorAddresses" -msgstr "" +msgstr "ÐÐ´Ñ€ÐµÑ Ðвтора заÑвки" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" -msgstr "ПроÑители" +msgstr "Ðвторы заÑвок" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "ЗапроÑÑ‹ должны быть обработаны за" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" -msgstr "" +msgstr "Ðеобходимый параметр '%1' не указан" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "ОчиÑтить" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "Домашний" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" -msgstr "Закрыть" +msgstr "Решить" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" -msgstr "" +msgstr "Решить заÑвка #%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" -msgstr "Закрыт" +msgstr "Решено" #: NOT FOUND IN SOURCE msgid "Response to requestors" -msgstr "Ответ проÑителÑм" +msgstr "Ответ авторам заÑвки" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" -msgstr "Отчет" +msgstr "Результаты" #: NOT FOUND IN SOURCE msgid "Results per page" -msgstr "Тикетов на Ñтраницу" +msgstr "Результатов на Ñтранице" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "Повторите пароль" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" -msgstr "" +msgstr "Обратить" #: NOT FOUND IN SOURCE msgid "Right %1 not found for %2 %3 in scope %4 (%5)\\n" msgstr "Право %1 не найдено Ð´Ð»Ñ %2 %3 в рамках %4 (%5)\\n" -#: lib/RT/ACE_Overlay.pm:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "Право делегировано" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "Право выдано" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "Право загружено" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" -msgstr "Право не может быть отобрано" +msgstr "Право не может быть отозвано" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "Право не найдено" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "Право не загружено" -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" -msgstr "Право отобрано" +msgstr "Право отозвано" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "Права" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" -msgstr "" +msgstr "Ðевозможно выдать права Ð´Ð»Ñ %1" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" -msgstr "" +msgstr "Ðевозможно отозвать права %1" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "ПÑевдо-группы" -#: NOT FOUND IN SOURCE -msgid "RootApproval" -msgstr "" - -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" -msgstr "" +msgstr "Строк на Ñтранице" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "Суб." -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" -msgstr "" +msgstr "Сохранить" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "Сохранить изменениÑ" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" -msgstr "" +msgstr "Сохранить наÑтройки" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "Сохранить изменениÑ" -#: html/Search/Elements/EditSearches:1 -msgid "Saved searches" +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" msgstr "" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Search/Elements/EditSearches:46 +msgid "Saved searches" +msgstr "Сохраненные запроÑÑ‹" + +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" -msgstr "" +msgstr "Скриплет #%1" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" -msgstr "Создан Ñкрипт" +msgstr "Скриплет Ñоздан" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" -msgstr "" +msgstr "ÐŸÐ¾Ð»Ñ Ñкриплетов" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" -msgstr "Удален Ñкрипт" +msgstr "Скриплет удален" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" -msgstr "Скрипты" +msgstr "Скриплеты" #: NOT FOUND IN SOURCE msgid "Scrips for %1\\n" -msgstr "Скрипты Ð´Ð»Ñ %1\\n" +msgstr "Скриплеты Ð´Ð»Ñ %1\\n" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" -msgstr "Скрипты, которые дейÑтвуют Ð´Ð»Ñ Ð²Ñех очередей" +msgstr "Скриплеты, которые дейÑтвуют Ð´Ð»Ñ Ð²Ñех очередей" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "ПоиÑк" #: NOT FOUND IN SOURCE msgid "Search Criteria" -msgstr "Параметры поиÑка" +msgstr "Критерии поиÑка" -#: html/Approvals/Elements/PendingMyApproval:38 +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" -msgstr "ИÑкать визы" +msgstr "ПоиÑк подтверждений" -#: NOT FOUND IN SOURCE -msgid "Search for articles" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" msgstr "" #: NOT FOUND IN SOURCE msgid "Searches can't be associated with that kind of object" -msgstr "" +msgstr "ЗапроÑÑ‹ не могут быть аÑÑоциированы Ñ Ñ‚Ð°ÐºÐ¸Ð¼ типом объекта" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" msgstr "БезопаÑноÑть:" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "See custom fields" -msgstr "" +msgstr "ПроÑмотреть дополнительные полÑ" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" -msgstr "" +msgstr "ПроÑмотреть полноÑтью иÑходÑщую почту и ее получателей" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" -msgstr "" +msgstr "ПроÑмотреть конфиденциальный комментарий заÑвки" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" -msgstr "" +msgstr "ПроÑмотреть Ñводную информацию заÑвки" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "SeeCustomField" +msgstr "ПроÑматриватьДополнительныеПолÑ" + +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" msgstr "" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "SeeQueue" -msgstr "" +msgstr "ПроÑмативатьОчередь" #: NOT FOUND IN SOURCE msgid "Select" -msgstr "" +msgstr "Выбрать" -#: NOT FOUND IN SOURCE -msgid "Select a Class" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 msgid "Select a Custom Field" -msgstr "" +msgstr "Выберите дополнительное поле" #: NOT FOUND IN SOURCE msgid "Select a Custom Fields" -msgstr "" +msgstr "Выберите дополнительные полÑ" -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" -msgstr "Выбор группы" +msgstr "Выберите группу" -#: NOT FOUND IN SOURCE +#: html/Admin/Queues/index.html:54 msgid "Select a queue" -msgstr "Выбор очереди" +msgstr "Выберите очередь" + +#: 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 "Выберите пользователÑ" + +#: html/Admin/Elements/CustomFieldTabs:90 +msgid "Select custom field" +msgstr "Выберите дополнительное поле" -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 -msgid "Select a user" -msgstr "Выбор пользователÑ" +#: html/Admin/Global/CustomFields/index.html:70 +msgid "Select custom fields for all user groups" +msgstr "" -#: NOT FOUND IN SOURCE -msgid "Select class" +#: html/Admin/Global/CustomFields/index.html:65 +msgid "Select custom fields for all users" msgstr "" -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 -msgid "Select custom field" +#: html/Admin/Global/CustomFields/index.html:76 +msgid "Select custom fields for tickets in all queues" msgstr "" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: 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 "Выбрать группу" +msgstr "Выберите группу" -#: lib/RT/CustomField_Overlay.pm:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "Выбрать неÑколько значений" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "Выбрать одно значение" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" -msgstr "Выбрать очередь" +msgstr "Выберите очередь" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" -msgstr "Выбрать Ñкриплет" +msgstr "Выберите Ñкриплет" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "Выбрать шаблон" +msgstr "Выберите шаблон" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:61 msgid "Select up to %1 values" -msgstr "" +msgstr "Выберите до %1 значений" -#: html/Admin/Elements/UserTabs:46 +#: html/Admin/Elements/UserTabs:75 msgid "Select user" -msgstr "Выбрать пользователÑ" +msgstr "Выберите пользователÑ" -#: lib/RT/CustomField_Overlay.pm:35 +#: NOT FOUND IN SOURCE msgid "SelectMultiple" msgstr "Выбрать неÑколько" -#: lib/RT/CustomField_Overlay.pm:34 +#: NOT FOUND IN SOURCE msgid "SelectSingle" msgstr "Выбрать одно" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:58 msgid "Selected Custom Fields" -msgstr "" +msgstr "Выбранные дополнительные полÑ" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:59 msgid "Selected objects" -msgstr "" +msgstr "Выбранные объекты" #: NOT FOUND IN SOURCE msgid "Self Service" @@ -4728,163 +4736,175 @@ msgstr "Отправить Ñообщение вÑем наблюдателÑм #: etc/initialdata:112 msgid "Send mail to requestors and Ccs" -msgstr "Отправить Ñообщение вÑем инициаторам запроÑа и CCs" +msgstr "Отправить Ñообщение вÑем Ðвторам заÑвки и КопиÑм" #: etc/initialdata:107 msgid "Send mail to requestors and Ccs as a comment" -msgstr "" +msgstr "Отправить Ñообщение вÑем Ðвторам заÑвки и КопиÑм" #: etc/initialdata:78 msgid "Sends a message to the requestors" -msgstr "" +msgstr "ОтправлÑет Ñообщение авторам заÑвки" #: etc/initialdata:125 etc/initialdata:129 msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "" +msgstr "ОтправлÑть почту Ñвно указанным КопиÑм и СкрытымКопиÑм" #: etc/initialdata:94 etc/upgrade/3.1.17/content:7 msgid "Sends mail to the Ccs" -msgstr "" +msgstr "ОтправлÑть почту КопиÑм" #: etc/initialdata:90 etc/upgrade/3.1.17/content:3 msgid "Sends mail to the Ccs as a comment" -msgstr "" +msgstr "ОтправлÑть почту КопиÑм как комментарий" #: etc/initialdata:102 msgid "Sends mail to the administrative Ccs" -msgstr "" +msgstr "ОтправлÑть почту ÐдминиÑтративнымКопиÑм" #: etc/initialdata:98 msgid "Sends mail to the administrative Ccs as a comment" -msgstr "" +msgstr "ОтправлÑть почту ÐдминиÑтративнымКопиÑм как комментарий" #: etc/initialdata:82 etc/initialdata:86 msgid "Sends mail to the owner" -msgstr "" +msgstr "ОтправлÑть почту ОтветÑтвенному" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "Сен." #: NOT FOUND IN SOURCE msgid "Seperate multiple URLs with spaces" -msgstr "" +msgstr "РазделÑйте неÑколько ÑÑылок пробелами" #: NOT FOUND IN SOURCE msgid "September" -msgstr "" +msgstr "СентÑбрь" -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" -msgstr "" +msgstr "Показать" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" -msgstr "" +msgstr "Показать подтверждениÑ" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" -msgstr "" +msgstr "Показать колонки" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" -msgstr "" +msgstr "Показать результаты" #: NOT FOUND IN SOURCE msgid "Show advanced search options..." -msgstr "" +msgstr "Показать дополнительные параметры поиÑка..." -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" -msgstr "Показать завизированные запроÑÑ‹" +msgstr "Показать подтвержденные запроÑÑ‹" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" -msgstr "Показать главное" +msgstr "Показать оÑновное" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" -msgstr "Показать отвергнутые запроÑÑ‹" +msgstr "Показать отклоненные запроÑÑ‹" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" -msgstr "Показать вÑе" +msgstr "Показать подробноÑти" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "Показать ожидающие запроÑÑ‹" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" -msgstr "Показать запроÑÑ‹, ждущие других виз" +msgstr "Показать запроÑÑ‹, ждущие других подтверждений" #: NOT FOUND IN SOURCE msgid "Show ticket private commentary" -msgstr "Показать приватные комментарии по тикету" +msgstr "Показать конфиденциальный комментарий заÑвки" #: NOT FOUND IN SOURCE msgid "Show ticket summaries" -msgstr "Показать общую информацию по запроÑу" +msgstr "Показать Ñводную информацию заÑвки" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" +msgstr "ПоказыватьПраваДоÑтупа" + +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" msgstr "" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" -msgstr "" +msgstr "ПоказыватьИÑходÑщуюПочту" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" -msgstr "" +msgstr "ПоказыватьСохраненныеЗапроÑÑ‹" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" -msgstr "" +msgstr "ПоказыватьСкриплеты" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" -msgstr "" +msgstr "ПоказыватьШаблон" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" -msgstr "" +msgstr "ПоказыватьЗаÑвку" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" -msgstr "" +msgstr "ПоказыватьКомментарииЗаÑвки" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "" +msgstr "ПодпиÑатьÑÑ ÐºÐ°Ðº Ðвтор заÑвки или ÐšÐ¾Ð¿Ð¸Ñ Ð·Ð°Ñвки или очереди" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" -msgstr "" +msgstr "ПодпиÑатьÑÑ ÐºÐ°Ðº ÐдминиÑтративнаÑÐšÐ¾Ð¿Ð¸Ñ Ð·Ð°Ñвки или очереди" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "ПодпиÑÑŒ" #: NOT FOUND IN SOURCE msgid "Signed in as %1" -msgstr "" +msgstr "ЗарегиÑтрирован как %1" -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "Одно значение" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 msgid "Skip Menu" +msgstr "ПропуÑтить меню" + +#: html/Search/Elements/EditFormat:78 +msgid "Small" msgstr "" -#: html/Admin/Elements/AddCustomFieldValue:27 +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 msgid "Sort" -msgstr "" +msgstr "Сортировка" #: NOT FOUND IN SOURCE msgid "Sort Order" -msgstr "" +msgstr "Метод Ñортировки" #: NOT FOUND IN SOURCE msgid "Sort key" @@ -4900,21 +4920,21 @@ msgstr "ПорÑдок Ñортировки" #: NOT FOUND IN SOURCE msgid "Squelched message recipients" -msgstr "" +msgstr "Скрытые получатели ÑообщениÑ" -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" -msgstr "" +msgstr "СтадиÑ" #: NOT FOUND IN SOURCE msgid "Stalled" -msgstr "Отложенных" +msgstr "ПриоÑтановленных" #: NOT FOUND IN SOURCE msgid "Start page" msgstr "ÐÐ°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ñтраница" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "ÐачалÑÑ" @@ -4922,179 +4942,191 @@ msgstr "ÐачалÑÑ" msgid "Started date '%1' could not be parsed" msgstr "Ðе могу разобрать дату 'ÐачалÑÑ': '%1'" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "ÐачнетÑÑ" #: NOT FOUND IN SOURCE msgid "Starts By" -msgstr "ЗапуÑки" +msgstr "Ðачато" #: NOT FOUND IN SOURCE msgid "Starts date '%1' could not be parsed" -msgstr "Ðе могу разобрать дату 'ЗапуÑки': '%1'" +msgstr "Ðе могу разобрать дату 'Ðачато': '%1'" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "СоÑтоÑние" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "СтатуÑ" #: etc/initialdata:309 msgid "Status Change" -msgstr "" +msgstr "Изменение ÑтатуÑа" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½ Ñ %1 на %2" #: NOT FOUND IN SOURCE msgid "StatusChange" -msgstr "" +msgstr "ИзменÑтьСтатуÑ" -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" -msgstr "Отобрать" +msgstr "Переназначать Ñебе" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" -msgstr "" +msgstr "Переназначить заÑвки Ñебе" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" -msgstr "" +msgstr "ПереназначатьЗаÑвкуСебе" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) +msgid "Stolen from %1" +msgstr "ОтветÑтвенный переназначен Ñ %1" + +#: NOT FOUND IN SOURCE msgid "Stolen from %1 " -msgstr "Отобран у %1" +msgstr "ОтветÑтвенный переназначен Ñ %1 " + +#: html/Search/Elements/EditFormat:81 +msgid "Style" +msgstr "" -#: 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 +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "Тема" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "Тема изменена на %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" -msgstr "Готово" +msgstr "Отправить" #: NOT FOUND IN SOURCE msgid "Submit Query" -msgstr "" +msgstr "Отправить запроÑ" #: NOT FOUND IN SOURCE msgid "Submit Workflow" -msgstr "" +msgstr "Отправить поÑледовательноÑть дейÑтвий" -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" -msgstr "" +msgstr "УÑпешно" #: NOT FOUND IN SOURCE msgid "Summary" -msgstr "" +msgstr "Ð¡Ð²Ð¾Ð´Ð½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ" #: NOT FOUND IN SOURCE msgid "Summary matches" -msgstr "" +msgstr "Ð’Ñего Ñовпадений" -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "Ð’Ñк." -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "ÐдминиÑтратор" -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "СиÑтемные" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" -msgstr "" +msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" -msgstr "Ошибка ÑиÑтемы" +msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°" #: NOT FOUND IN SOURCE msgid "System Error. Right not granted." -msgstr "" +msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Право не выдано" #: NOT FOUND IN SOURCE msgid "System Error. right not granted" +msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Право не выдано" + +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" msgstr "" -#: html/Admin/Tools/index.html:2 +#: html/Admin/Tools/index.html:47 msgid "System Tools" -msgstr "" +msgstr "СиÑтемные утилиты" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." -msgstr "Ошибка ÑиÑтемы. Право не было делегировано." +msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Право не делегировано." -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." -msgstr "Ошибка ÑиÑтемы. Право не было выдано." +msgstr "CиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Право не выдано." #: NOT FOUND IN SOURCE msgid "System error. Unable to grant rights." -msgstr "" +msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Ðевозможно выдать права" -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "СиÑтемные группы" #: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 msgid "SystemRolegroup for internal use" -msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ³Ð¾ иÑпользованиÑ" +msgstr "СиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð¿Ñевдо-группа Ð´Ð»Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ³Ð¾ иÑпользованиÑ" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "TEST_STRING" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" -msgstr "ВзÑть" +msgstr "ВзÑть Ñебе" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" -msgstr "" +msgstr "ВзÑть заÑвки ÑебÑ" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" -msgstr "" +msgstr "БратьЗаÑвкуСебе" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" -msgstr "ВзÑÑ‚" +msgstr "ВзÑта" #: NOT FOUND IN SOURCE msgid "Task" -msgstr "" +msgstr "Задача" -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "Шаблон" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "Шаблон #%1" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "Шаблон удален" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "Шаблон не найден" @@ -5102,11 +5134,11 @@ msgstr "Шаблон не найден" msgid "Template not found\\n" msgstr "Шаблон не найден\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "Шаблон обработан" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "Шаблоны" @@ -5116,337 +5148,344 @@ msgstr "Шаблоны Ð´Ð»Ñ %1\\n" #: NOT FOUND IN SOURCE msgid "Text" -msgstr "" +msgstr "ТекÑÑ‚" -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "Это уже текущее значение" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "Это поле не может иметь такого значениÑ" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "Значение не изменилоÑÑŒ" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" -msgstr "" +msgstr "Этот пользователь уже имеет Ñто право." -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "Этот пользователь уже %1 Ð´Ð»Ñ Ñтой очереди" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" -msgstr "Этот пользователь уже %1 Ð´Ð»Ñ Ñтого тикета" +msgstr "Этот пользователь уже %1 Ð´Ð»Ñ Ñтой заÑвки " -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" -msgstr "Этот пользователь не %1 Ñтой очереди" +msgstr "Этот пользователь не %1 Ð´Ð»Ñ Ñтой очереди" #: NOT FOUND IN SOURCE msgid "That principal is not a %1 for this ticket" -msgstr "Этот пользователь не %1 Ñтому тикету" +msgstr "Этот пользователь не %1 Ð´Ð»Ñ Ñтой заÑвки" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" -msgstr "Этой очереди не ÑущеÑтвует" +msgstr "Эта очередь не ÑущеÑтвует" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" -msgstr "Этот тикет имеет неразрешенные завиÑимоÑти" +msgstr "Эта заÑвка имеет неразрешенные завиÑимоÑти" #: NOT FOUND IN SOURCE msgid "That user already has that right" msgstr "Пользователь уже имеет Ñто право" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" -msgstr "Пользователь уже владеет Ñтим тикетом" +msgstr "Пользователь уже ответÑтвенен за Ñту заÑвку" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "Пользователь не ÑущеÑтвует" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" -msgstr "Этот пользователь уже имеет вÑе полномочиÑ" +msgstr "Этот пользователь уже привилегированный" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" -msgstr "Этот пользователь уже не имеет полномочий" +msgstr "Этот пользователь уже непривилегированный" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" -msgstr "Этот пользователь теперь имеет вÑе полномочиÑ" +msgstr "Этот пользователь теперь привилегированный" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" -msgstr "Этот пользователь теперь не имеет полномочий" +msgstr "Этот пользователь теперь непривилегированный" #: NOT FOUND IN SOURCE msgid "That user is now unprivilegedileged" -msgstr "" +msgstr "Пользователь теперь непривилегированный" -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" -msgstr "Этот пользователь не может владеть тикетами из Ñтой очереди" +msgstr "Этот пользователь не может быть ответÑтвенным за заÑвки в Ñтой очереди" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "Это не чиÑловой идентификатор" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" -msgstr "Главное" +msgstr "ОÑновное" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" -msgstr "" +msgstr "ÐšÐ¾Ð¿Ð¸Ñ Ð·Ð°Ñвки" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" -msgstr "" +msgstr "ÐдминиÑÑ‚Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ð·Ð°Ñвки" #: NOT FOUND IN SOURCE msgid "The comment has been recorded" -msgstr "ЗапиÑан комментарий" +msgstr "Комментарий запиÑан" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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 "" +msgstr "ÐижеÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° найдет вÑе активные заÑвки в очереди 'ОÑновнаÑ' и уÑтановит им приоритет 99, еÑли в них небыло активноÑти более 4-Ñ… чаÑов:" #: NOT FOUND IN SOURCE msgid "The following commands were not proccessed:\\n\\n" -msgstr "Эти команды не были иÑполнены:\\n\\n" +msgstr "Эти команды не были выполнены:\\n\\n" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "Ðовое значение уÑтановлено" -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" -msgstr "Владелец тикета" +msgstr "ОтветÑтвенный за заÑвку" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" -msgstr "Кто отправил тикет" +msgstr "Ðвтор заÑвки" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "Эти комментарии не показываютÑÑ Ð¾Ð±Ñ‹ÐºÐ½Ð¾Ð²ÐµÐ½Ð½Ð¾Ð¼Ñƒ пользователю" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:912 msgid "This custom field does not apply to that object" -msgstr "" +msgstr "Это дополнительное поле не отноÑитÑÑ Ðº Ñтому объекту" -#: html/Admin/Tools/Configuration.html:5 +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" -msgstr "" +msgstr "Это возможноÑть доÑтупна только Ð´Ð»Ñ ÑиÑтемных админиÑтраторов." -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." -msgstr "" +msgstr "Это Ñообщение будет отправлено..." #: NOT FOUND IN SOURCE msgid "This ticket %1 %2 (%3)\\n" -msgstr "Этот тикет %1 %2 (%3)\\n" +msgstr "Эта заÑвка %1 %2 (%3)\\n" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "Этот инÑтрумент позволÑет пользователю запуÑкать некоторые модули Perl из RT." -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" -msgstr "Похоже, что Ñта Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð½Ðµ имеет информации" +msgstr "Похоже, что Ñта Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð½Ðµ имеет Ñодержимого" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" -msgstr "%1 тикетов макÑимального приоритета Ñтого пользователÑ" +msgstr "%1 заÑвок макÑимального приоритета Ñтого пользователÑ" #: NOT FOUND IN SOURCE msgid "This user's 25 highest priority tickets" -msgstr "25 важнейших тикетов пользователÑ..." +msgstr "25 важнейших заÑвок пользователÑ..." -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "Чтв." #: NOT FOUND IN SOURCE msgid "Ticket" -msgstr "" +msgstr "ЗаÑвка" #: NOT FOUND IN SOURCE msgid "Ticket # %1 %2" -msgstr "" +msgstr "ЗаÑвка # %1 %2" #: NOT FOUND IN SOURCE msgid "Ticket # %1 Jumbo update: %2" -msgstr "" +msgstr "ЗаÑвка # %1 Изменение вÑех данных: %2" -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket #%1 Jumbo update: %2" -msgstr "Тикет #%1 Обновление вÑего: %2" +msgstr "ЗаÑвка #%1 Изменение вÑех данных: %2" -#: html/Approvals/Elements/ShowDependency:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" -msgstr "" +msgstr "ЗаÑвка #%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" -msgstr "" +msgstr "ЗаÑвка %1" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" -msgstr "Тикет %1 Ñоздан в очереди '%2'" +msgstr "ЗаÑвка %1 Ñоздана в очереди '%2'" #: NOT FOUND IN SOURCE msgid "Ticket %1 loaded\\n" -msgstr "Загружен тикет %1\\n" +msgstr "ЗаÑвка %1 загружена\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" -msgstr "Тикет %1: %2" +msgstr "ЗаÑвка %1: %2" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:74 msgid "Ticket Custom Fields" -msgstr "" +msgstr "Дополнительные Ð¿Ð¾Ð»Ñ Ð·Ð°Ñвки" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" -msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð° # %1 %2" +msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð·Ð°Ñвки # %1 %2" #: NOT FOUND IN SOURCE msgid "Ticket Id" -msgstr "Тикет #" +msgstr "ЗаÑвка #" #: etc/initialdata:324 msgid "Ticket Resolved" -msgstr "" +msgstr "ЗаÑвка решена" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 msgid "Ticket Transactions" -msgstr "" +msgstr "Транзакции заÑвки" #: NOT FOUND IN SOURCE msgid "Ticket attachment" -msgstr "Ð”Ð»Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹" +msgstr "Ð’Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð·Ð°Ñвки" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" -msgstr "ТекÑÑ‚ тикета" +msgstr "Содержимое заÑвки" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" -msgstr "Тип данных тикета" +msgstr "Тип данных Ñодержимого заÑвки" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" -msgstr "Тикет не может быть Ñоздан из-за внутренней ошибки" +msgstr "ЗаÑвка не может быть Ñоздана из-за внутренней ошибки" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" -msgstr "Создан тикет" +msgstr "ЗаÑвка Ñоздана" #: NOT FOUND IN SOURCE msgid "Ticket creation failed" -msgstr "Ðе удалоÑÑŒ Ñоздать тикет" +msgstr "Ðевомзожно Ñоздать заÑвку" -#: lib/RT/Transaction_Overlay.pm:502 +#: NOT FOUND IN SOURCE msgid "Ticket deleted" -msgstr "Тикет удален" +msgstr "ЗаÑвка удалена" #: NOT FOUND IN SOURCE msgid "Ticket id not found" -msgstr "Идентификатор тикета не найден" +msgstr "Идентификатор заÑвки не найден" #: NOT FOUND IN SOURCE msgid "Ticket killed" -msgstr "" +msgstr "ЗаÑвка уничтожена" -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" -msgstr "" +msgstr "Метаданные заÑвки" #: NOT FOUND IN SOURCE msgid "Ticket not found" -msgstr "Тикет не найден" +msgstr "ЗаÑвка не найдена" #: etc/initialdata:310 msgid "Ticket status changed" -msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚Ð¸ÐºÐµÑ‚Ð° изменен" +msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð·Ð°Ñвки изменен" #: NOT FOUND IN SOURCE msgid "Ticket watchers" -msgstr "Ðаблюдатели Ð´Ð»Ñ Ñ‚Ð¸ÐºÐµÑ‚Ð°" +msgstr "Ðаблюдатели за заÑвкой" + +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "" -#: html/Elements/Tabs:46 +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 msgid "Tickets" -msgstr "Тикеты" +msgstr "ПоиÑк заÑвки" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 %2" -msgstr "" +msgstr "ЗаÑвки %1 %2" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 by %2" -msgstr "" +msgstr "ЗаÑвки %1 Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %2" #: NOT FOUND IN SOURCE msgid "Tickets from %1" -msgstr "Тикеты от %1" +msgstr "ЗаÑвки от %1" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" -msgstr "От Ñтой визы завиÑÑÑ‚ Ñледующие тикеты:" +msgstr "От Ñтого Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð·Ð°Ð²Ð¸ÑÑÑ‚ Ñледующие заÑвки:" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" -msgstr "" +msgstr "РаÑчётное времÑ" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" -msgstr "ОÑталоÑÑŒ" +msgstr "ОÑталоÑÑŒ времени" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" -msgstr "Ð’ работе" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð² работе" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" -msgstr "ОÑталоÑÑŒ" +msgstr "ОÑталоÑÑŒ времени" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" -msgstr "Ð’ работе" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð² работе" #: NOT FOUND IN SOURCE msgid "TimeLeft" -msgstr "" +msgstr "ОÑталоÑÑŒ времени" -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" -msgstr "Ð’ работе" +msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð² работе" + +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "" #: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" @@ -5456,69 +5495,65 @@ msgstr "Ð”Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ изменений Ñтого коммита:" msgid "To generate a diff of this commit:\\n" msgstr "Ð”Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ изменений Ñтого коммита:\\n" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "" +msgstr "Ð”Ð»Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа поддержки, обучениÑ, разработки на заказ или Ð»Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±Ñ€Ð°Ñ‰Ð°Ð¹Ñ‚ÐµÑÑŒ %1." -#: lib/RT/Ticket_Overlay.pm:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "Контакт" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" -msgstr "" +msgstr "Утилиты" #: etc/initialdata:252 msgid "Transaction" msgstr "ТранзакциÑ" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ %1 удалена" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" -msgstr "Создана транзакциÑ" +msgstr "Ð¢Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ñоздана" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:78 msgid "Transaction Custom Fields" -msgstr "" +msgstr "Дополнительные Ð¿Ð¾Ð»Ñ Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ð¸" -#: lib/RT/Transaction_Overlay.pm:92 +#: NOT FOUND IN SOURCE msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "" +msgstr "ТранзакциÑ->Создать невозможно, так как вы не указали идентификатор заÑвки" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:125 msgid "Transaction->Create couldn't, as you didn't specify an object type and id" -msgstr "" +msgstr "ТранзакциÑ->Создать невозможно, так как вы не указали тип объекта и идентификатор" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" -msgstr "Транзакции не изменены" +msgstr "ÐеизменÑемые транзакции" #: NOT FOUND IN SOURCE msgid "Trying to delete a right: %1" msgstr "ПытаемÑÑ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ право: %1" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "Втр." -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "Тип" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "Ðе реализовано" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "Логин UNIX" @@ -5526,147 +5561,152 @@ msgstr "Логин UNIX" msgid "UnixUsername" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ UNIX" -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "ÐеизвеÑÑ‚Ð½Ð°Ñ ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²ÐºÐ° %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "Ðе ограничено" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" -msgstr "" +msgstr "БезымÑнный запроÑ" #: etc/initialdata:32 msgid "Unprivileged" msgstr "Ðепривилегированный" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:60 msgid "Unselected Custom Fields" -msgstr "" +msgstr "Ðевыбранные дополнительные полÑ" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:61 msgid "Unselected objects" -msgstr "" +msgstr "Ðевыбранные объекты" -#: lib/RT/Transaction_Overlay.pm:562 +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" -msgstr "Ðичей" +msgstr "Ðе взÑта" #: NOT FOUND IN SOURCE msgid "Untitled search" -msgstr "" +msgstr "БезымÑнный запроÑ" -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "Обновить" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" -msgstr "" +msgstr "Обновить вÑе" #: NOT FOUND IN SOURCE msgid "Update ID" msgstr "Обновить идентификатор" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" -msgstr "" +msgstr "Обновить заÑвку" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "Обновить тип" #: NOT FOUND IN SOURCE msgid "Update all these tickets at once" -msgstr "Изменить одним махом" +msgstr "Изменить вÑе Ñти заÑвки одновременно" #: NOT FOUND IN SOURCE msgid "Update email" msgstr "Обновить e-mail" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" -msgstr "" +msgstr "Обновить неÑколько заÑвок" #: NOT FOUND IN SOURCE msgid "Update name" msgstr "Обновить имÑ" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." -msgstr "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð½Ðµ Ñохранены." +msgstr "Обновление не запиÑано." -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" -msgstr "Изменить выбранные тикеты" +msgstr "Обновить выбранные заÑвки" #: NOT FOUND IN SOURCE msgid "Update signature" msgstr "Обновить подпиÑÑŒ" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" -msgstr "Обновить тикет" +msgstr "Обновить заÑвку" #: NOT FOUND IN SOURCE msgid "Update ticket # %1" -msgstr "Обновить тикет # %1" +msgstr "Обновление заÑвки # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" -msgstr "Обновить тикет #%1" +msgstr "Обновление заÑвки #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" -msgstr "Обновить тикет #%1 (%2)" +msgstr "Обновление заÑвки #%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "Обновление не было ни Ñообщением, ни комментарием." -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" -msgstr "Обновлен" +msgstr "Обновлена" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" -msgstr "" +msgstr "Загрузить" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:84 msgid "Upload multiple files" -msgstr "" +msgstr "Загрузить неÑколько файлов" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:79 msgid "Upload multiple images" -msgstr "" +msgstr "Загрузить неÑколько изображений" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:85 msgid "Upload one file" -msgstr "" +msgstr "Загрузить один файл" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:80 msgid "Upload one image" -msgstr "" +msgstr "Загрузить одно изображение" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:86 msgid "Upload up to %1 files" -msgstr "" +msgstr "Закачать до %1 файлов" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:81 msgid "Upload up to %1 images" -msgstr "" +msgstr "Закачать до %1 изображений" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" -msgstr "" +msgstr "Загрузить ваши изменениÑ." -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" #: NOT FOUND IN SOURCE @@ -5677,10 +5717,10 @@ msgstr "Пользователь %1 %2: %3\\n" msgid "User %1 Password: %2\\n" msgstr "Пользователь %1 Пароль: %2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." -msgstr "" +msgstr "Пользователь '%1' не найден." #: NOT FOUND IN SOURCE msgid "User '%1' not found" @@ -5692,98 +5732,95 @@ msgstr "Пользователь '%1' не найден\\n" #: etc/initialdata:132 etc/initialdata:206 msgid "User Defined" -msgstr "" +msgstr "Задано пользователем" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" -msgstr "" +msgstr "Заданные пользователем уÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ дейÑтвиÑ" #: NOT FOUND IN SOURCE msgid "User ID" msgstr "Логин" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "Логин" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) msgid "User asked for an unknown update type for custom field %1 for %2 object #%3" -msgstr "" +msgstr "Пользователь запроÑил обновление неизвеÑтного типа Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ %1 Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð° %2 #%3" -#: html/Admin/Users/Modify.html:252 +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" -msgstr "Ðе могу Ñоздать пользователÑ: %1" +msgstr "Ðевозможно Ñоздать пользователÑ: %1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" -msgstr "Создан пользователь" +msgstr "Пользователь Ñоздан" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" -msgstr "" +msgstr "Пользовать загружен" #: NOT FOUND IN SOURCE msgid "User notified" -msgstr "Пользователю отоÑлано напоминание" +msgstr "Пользователю отправлено напоминание" #: NOT FOUND IN SOURCE msgid "User view" msgstr "ПользовательÑкие наÑтройки" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:99 msgid "User-defined groups" -msgstr "" +msgstr "Группы, заданные пользователем" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" -msgstr "Логин" +msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" -#: 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 +#: 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:1086 msgid "Users" msgstr "Пользователи" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" -msgstr "Ðайдены пользователи" +msgstr "Пользователи, удовлетворÑющие критериÑм поиÑка" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" -msgstr "" +msgstr "Проверить запроÑ" #: NOT FOUND IN SOURCE msgid "ValueOfQueue" -msgstr "ValueOfQueue" +msgstr "Значение запроÑа" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "ЗначениÑ" -#: NOT FOUND IN SOURCE -msgid "VrijevormEnkele" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" -msgstr "" +msgstr "Ðаблюдать" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" -msgstr "" +msgstr "ÐаблюдатьÐдминиÑтративнойКопией" #: NOT FOUND IN SOURCE msgid "Watcher loaded" -msgstr "" +msgstr "Ðаблюдатель загружен" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "Ðаблюдатели" @@ -5791,132 +5828,128 @@ msgstr "Ðаблюдатели" msgid "WebEncoding" msgstr "WebEncoding" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "Срд." #: etc/initialdata:521 msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "" +msgstr "Когда заÑвка подтверждена вÑеми подтверждающими, добавить запиÑÑŒ в оригинальную заÑвку" #: etc/initialdata:485 msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "" +msgstr "Когда заÑвка подтверждена любым из подтверждающих, добавить запиÑÑŒ в оригинальную заÑвку" #: etc/initialdata:146 msgid "When a ticket is created" -msgstr "" +msgstr "Когда заÑвка Ñоздана" #: etc/initialdata:418 msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "" +msgstr "При Ñоздании заÑвки Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»Ñть ОтветÑтвенного и ÐдминиÑтративнуюКопию заÑвкиAdminCc of the item awaiting their approval, ожидающей подтверждениÑ" #: etc/initialdata:151 msgid "When anything happens" -msgstr "" +msgstr "Когда что-либо произойдет" #: etc/initialdata:199 msgid "Whenever a ticket is resolved" -msgstr "" +msgstr "Каждый раз при решении заÑвки" #: etc/initialdata:185 msgid "Whenever a ticket's owner changes" -msgstr "" +msgstr "Каждый раз при изменении ответÑтвенного заÑвки" #: etc/initialdata:178 etc/upgrade/3.1.17/content:16 msgid "Whenever a ticket's priority changes" -msgstr "" +msgstr "Каждый раз при изменении приоритета заÑвки" #: etc/initialdata:193 msgid "Whenever a ticket's queue changes" -msgstr "" +msgstr "Каждый раз при изменении очереди очереди" #: etc/initialdata:170 msgid "Whenever a ticket's status changes" -msgstr "" +msgstr "Каждый раз при изменении ÑтатуÑа заÑвки" #: etc/initialdata:207 msgid "Whenever a user-defined condition occurs" -msgstr "" +msgstr "Каждый раз при Ñрабатывании уÑловиÑ, заданного пользователем" #: etc/initialdata:164 msgid "Whenever comments come in" -msgstr "" +msgstr "Каждый раз при добавлении комментариÑ" #: etc/initialdata:157 msgid "Whenever correspondence comes in" -msgstr "" +msgstr "Каждый раз при приходе корреÑпонденции" #: NOT FOUND IN SOURCE msgid "Which are referred to by " -msgstr "" +msgstr "ÐšÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑвÑзана пользователем" #: NOT FOUND IN SOURCE msgid "Which refer to" -msgstr "" +msgstr "ÐšÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑÑылаетÑÑ Ð½Ð°" -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "Рабочий" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" -msgstr "" +msgstr "Работать автономно" #: NOT FOUND IN SOURCE msgid "WorkPhone" msgstr "Рабочий" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "Ð’ работе" -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Yes" -msgstr "" +msgstr "Да" -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" -msgstr "Ð’Ñ‹ уже владеете Ñтим тикетом" +msgstr "Ð’Ñ‹ уже ответÑтвенный за Ñту заÑвку" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" -msgstr "Вам Ñюда запрещено" +msgstr "Ð’Ñ‹ незарегиÑтрированный пользователь" #: NOT FOUND IN SOURCE msgid "You can access it with the Download button on the right." -msgstr "" +msgstr "Ð’Ñ‹ можете получить Ñто, нажав Ñправа кнопку Загрузить" -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" -msgstr "Ð’Ñ‹ можете назначать владельца только Ð´Ð»Ñ Ñвоих или ничьих тикетов." +msgstr "Ð’Ñ‹ можете назначать ответÑтвенного только Ð´Ð»Ñ Ñвоих или ничьих заÑвок." #: NOT FOUND IN SOURCE msgid "You don't have permission to view that ticket.\\n" -msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ права на проÑмотр Ñтого тикета.\\n" +msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ права на проÑмотр Ñтой заÑвки.\\n" -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 +#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 #. ($num, $queue) msgid "You found %1 tickets in queue %2" -msgstr "You found %1 tickets in queue %2" +msgstr "Ðайдено %1 заÑвок в очереди %2" -#: html/NoAuth/Logout.html:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "Ð’Ñ‹ вышли из RT." -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." -msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ права Ñоздавать тикеты в Ñтой очереди." +msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ права Ñоздавать заÑвки в Ñтой очереди." -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." -msgstr "Ð’Ñ‹ не можете Ñоздавать запроÑÑ‹ в Ñтой очереди." +msgstr "Ð’Ñ‹ не должны Ñоздавать запроÑÑ‹ в Ñтой очереди." -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "Заходите еще" @@ -5938,48 +5971,60 @@ msgstr "Ваш Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½." #: NOT FOUND IN SOURCE msgid "Your request was rejected" -msgstr "" +msgstr "Ваш Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¾Ñ‚ÐºÐ»Ð¾Ð½ÐµÐ½" #: etc/initialdata:445 msgid "Your request was rejected." -msgstr "Ваш Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» отвергнут." +msgstr "Ваш Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð¾Ñ‚ÐºÐ»Ð¾Ð½ÐµÐ½." -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" -msgstr "Ð’Ñ‹ ввели неверное Ð¸Ð¼Ñ Ð¸Ð»Ð¸ пароль" +msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ пароль неверные" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "ИндекÑ" #: NOT FOUND IN SOURCE msgid "[no subject]" +msgstr "[нет темы]" + +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" +msgstr "" + +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" msgstr "" #: NOT FOUND IN SOURCE msgid "and is not" -msgstr "" +msgstr "и не ÑвлÑетÑÑ" #: NOT FOUND IN SOURCE msgid "and not" -msgstr "" +msgstr "и не" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "Ñ Ð¿Ñ€Ð°Ð²Ð°Ð¼Ð¸ %1" -#: html/SelfService/Closed.html:27 -msgid "closed" +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" msgstr "" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: 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 "данные" +msgstr "Ñодержимое" #: NOT FOUND IN SOURCE msgid "content-type" @@ -5987,94 +6032,114 @@ msgstr "тип данных" #: NOT FOUND IN SOURCE msgid "correspondence (probably) not sent" -msgstr "Ñообщение (возможно) не отправлено" +msgstr "корреÑÐ¿Ð¾Ð½Ð´ÐµÐ½Ñ†Ð¸Ñ (возможно) не отправлена" #: NOT FOUND IN SOURCE msgid "correspondence sent" -msgstr "отправлено Ñообщение" +msgstr "корреÑÐ¿Ð¾Ð½Ð´ÐµÐ½Ñ†Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð°" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "дней" -#: NOT FOUND IN SOURCE -msgid "dead" -msgstr "" - #: NOT FOUND IN SOURCE msgid "delete" msgstr "удалить" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" -msgstr "удален" +msgstr "удалена" + +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "не Ñовпадает" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "не Ñодержит" #: NOT FOUND IN SOURCE msgid "email address" -msgstr "" +msgstr "Ð°Ð´Ñ€ÐµÑ email" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "равнÑетÑÑ" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "" + #: NOT FOUND IN SOURCE msgid "false" -msgstr "" +msgstr "ложь" #: NOT FOUND IN SOURCE msgid "filename" msgstr "Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "больше чем" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "группа '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "чаÑов" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "идентификатор" -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" - -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "ÑвлÑетÑÑ" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "не ÑвлÑетÑÑ" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "меньше чем" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "Ñовпадает" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "мин" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "минут" @@ -6082,114 +6147,118 @@ msgstr "минут" msgid "modifications\\n\\n" msgstr "изменениÑ\\n\\n" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "меÑÑцев" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" -msgstr "новый" +msgstr "новаÑ" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" -msgstr "" +msgstr "нет имени" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" -msgstr "" +msgstr "нет значениÑ" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "нет" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" -msgstr "не равен" +msgstr "не равно" #: NOT FOUND IN SOURCE msgid "notlike" -msgstr "" +msgstr "неравно" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" -msgstr "открыт" +msgstr "открыта" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "Ð»Ð¸Ñ‡Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° '%1' Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ '%2'" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "очередь %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" -msgstr "отклонен" +msgstr "отклонена" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" -msgstr "решен" +msgstr "решена" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "Ñек" -#: html/Search/Results.html:48 -msgid "spreadsheet" +#: lib/RT/System.pm:86 +msgid "show Configuration tab" msgstr "" -#: lib/RT/Queue_Overlay.pm:61 +#: html/Search/Results.html:82 +msgid "spreadsheet" +msgstr "ÑÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° (.xls)" + +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" -msgstr "отложен" +msgstr "приоÑтановлена" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "ÑиÑтема %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "ÑиÑÑ‚ÐµÐ¼Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "вызывающий компонент не указал причину" #: NOT FOUND IN SOURCE msgid "ticket #%1" -msgstr "" +msgstr "заÑвка #%1" -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" -msgstr "тикет #%1 %2" +msgstr "заÑвка #%1 %2" #: NOT FOUND IN SOURCE msgid "till" -msgstr "" +msgstr "пока" #: NOT FOUND IN SOURCE msgid "true" -msgstr "" +msgstr "иÑтина" -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" -msgstr "неопиÑÐ°Ð½Ð½Ð°Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð° %1" +msgstr "группа без опиÑаниÑ: %1" #: NOT FOUND IN SOURCE msgid "undescripbed group %1" -msgstr "" +msgstr "группа без опиÑаниÑ: %1" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "пользователь %1" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "недель" @@ -6197,11 +6266,7 @@ msgstr "недель" msgid "with template %1" msgstr "Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ð¾Ð¼ %1" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "лет" -#: NOT FOUND IN SOURCE -msgid "ニックãƒãƒ¼ãƒ " -msgstr "" - diff --git a/rt/lib/RT/I18N/zh_cn.po b/rt/lib/RT/I18N/zh_cn.po index 72e09fea1..1f8799825 100644 --- a/rt/lib/RT/I18N/zh_cn.po +++ b/rt/lib/RT/I18N/zh_cn.po @@ -15,18 +15,18 @@ msgstr "#" msgid "#%1" msgstr "#%1" -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "#%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" -msgstr "" +msgstr "$prefix %1" #: NOT FOUND IN SOURCE msgid "%*(%1,group ticket)" @@ -40,47 +40,45 @@ msgstr "%*(%1) 件陿œŸå®Œæˆçš„申请å•" msgid "%*(%1,unresolved ticket)" msgstr "%*(%1) 件尚未解决的申请å•" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "%1 #%2" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +#: NOT FOUND IN SOURCE msgid "%1 %2 %3" msgstr "%1 %2 %3" -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" msgstr "%2 已新增为 %1" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "%1 %2 之å‰" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%1 已从 %2 改为 %3" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" @@ -90,103 +88,80 @@ msgstr "%2 已自 %1 删除" msgid "%1 %2 of group %3" msgstr "%3 群组的 %1 %2" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (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 הוסף" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 מקבוצה %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 נמחק" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 שונה ל %3" -msgstr "" - #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 这份申请å•\\n" -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 פנייה זו\\n" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" -msgstr "" +msgstr "%1 (%2) - %3" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" -msgstr "" +msgstr "%1 (未更改)" #: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "显示第 %1 - %2 笔" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" msgstr "%1 - 传递给 %2 çš„ä¸€ä¸ªå‚æ•°" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - 将更新状æ€è¾“出到 STDOUT" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - 指定欲使用的动作模å—" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - 指定欲使用的æ¡ä»¶æ¨¡å—" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - 指定欲使用的查询模å—" -#: NOT FOUND IN SOURCE -msgid "%1 - ×רגומנט להעביר ×ל %2" -msgstr "" - $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 #. ('»|«', $RT::VERSION, - '2004', + '2005', '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "加载手续 %1" @@ -195,7 +170,7 @@ msgstr "加载手续 %1" msgid "%1 Total" msgstr "å…± %1 笔" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "新增 %1 作为 %2 的值" @@ -212,32 +187,31 @@ msgstr "别å %1 需è¦å¯ç”¨çš„申请å•ç¼–å· " msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "别å %1 需è¦å¯ç”¨çš„申请å•ç¼–å·ä»¥å¤„ç† %3(出自 %2)" -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($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:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 (%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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($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:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" -msgstr "" +msgstr "%1 å¤åˆ¶" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "无法将 %1 设定为 %2。" @@ -245,20 +219,22 @@ msgstr "无法将 %1 设定为 %2。" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 无法åˆå§‹æ›´æ–° (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 无法将现况设æˆå·²è§£å†³ã€‚RT æ•°æ®åº“内容å¯èƒ½ä¸ä¸€è‡´ã€‚" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) msgid "%1 created" msgstr "已建立 %1" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) msgid "%1 deleted" msgstr "已删除 %1" -#: html/Elements/MyTickets:24 +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" msgstr "å‰ %1 份待处ç†ç”³è¯·å•" @@ -267,8 +243,7 @@ msgstr "å‰ %1 份待处ç†ç”³è¯·å•" msgid "%1 highest priority tickets I own..." msgstr "å‰ %1 份待处ç†ç”³è¯·å•..." -#: html/Elements/MyTickets:26 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I requested..." msgstr "å‰ %1 份é€å‡ºçš„申请å•..." @@ -276,12 +251,12 @@ msgstr "å‰ %1 份é€å‡ºçš„申请å•..." msgid "%1 highest priority tickets pending my approval..." msgstr "å‰ %1 份待签核申请å•..." -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($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:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å•çš„ %2。" @@ -290,8 +265,7 @@ msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å•çš„ %2。" msgid "%1 is no longer a %2 for this ticket." msgstr "%1 å·²ä¸å†æ˜¯æ­¤ç”³è¯·å•çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a value for custom field %2" msgstr "%1 å·²ä¸å†æ˜¯è‡ªè®¢å­—段 %2 的值。" @@ -299,11 +273,7 @@ msgstr "%1 å·²ä¸å†æ˜¯è‡ªè®¢å­—段 %2 的值。" msgid "%1 isn't a valid Queue id." msgstr "%1 䏿˜¯ä¸€ä¸ªåˆæ³•的表å•ç¼–å·ã€‚" -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -312,15 +282,7 @@ msgstr "" msgid "%1 min" msgstr "%1 分钟" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" msgstr "å‰ %1 份待认领的申请å•" @@ -329,7 +291,7 @@ msgstr "å‰ %1 份待认领的申请å•" msgid "%1 not shown" msgstr "没有显示 %1" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:827 msgid "%1 objects" msgstr "%1 对象" @@ -345,7 +307,7 @@ msgstr "最新 %1 份é€å‡ºçš„申请å•..." msgid "%1 result(s) found" msgstr "找到 %1 项结果" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1æƒé™" @@ -366,7 +328,7 @@ msgstr "ä¸çŸ¥é“ %2 çš„ %1 类别" msgid "%1 was created without a CurrentUser\\n" msgstr "%1 新增时未指定现行使用者" -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 会解决在已解决群组里æˆå‘˜çš„申请å•。" @@ -375,67 +337,31 @@ msgstr "%1 会解决在已解决群组里æˆå‘˜çš„申请å•。" msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "如果 %1 起始申请å•ä¾èµ–于æŸä¸ªé“¾æŽ¥ï¼Œæˆ–是æŸä¸ªé“¾æŽ¥çš„æˆå‘˜ï¼Œå®ƒå°†ä¼šè¢«å»¶å®•ã€‚" -#: NOT FOUND IN SOURCE -msgid "%1 הוסף כערך עבור %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 לפני %2 ימי×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 על ידי %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 פעולת-סקריפ נטענה" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 שונה מ %2 ל %3" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:828 msgid "%1's %2 objects" msgstr "%1 内的 %2 对象" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:829 msgid "%1's %2's %3 objects" msgstr "%1 内的 %2 çš„ %3 对象" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" msgstr "%1 已储存的查询" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1:未指定附件" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "%1 字节" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k 字节" @@ -444,7 +370,7 @@ msgstr "%1k 字节" msgid "%quant(%1,result) found" msgstr "找到 %1 项结果" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' 䏿˜¯ä¸€ä¸ªåˆæ³•的状æ€å€¼" @@ -461,7 +387,7 @@ msgstr "(点选欲删除的æˆå‘˜)" msgid "(Check box to delete scrip)" msgstr "(点选欲删除的手续)" -#: 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 +#: 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 "(点选欲删除的项目)" @@ -469,45 +395,41 @@ msgstr "(点选欲删除的项目)" msgid "(Check boxes to delete)" msgstr "(点选欲删除的项目)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" msgstr "(点选欲åœç”¨é€šçŸ¥çš„æ”¶ä»¶äºº)" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" msgstr "(点选欲å¯ç”¨é€šçŸ¥çš„æ”¶ä»¶äºº)" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(键入申请å•ç¼–å·æˆ–网å€ï¼Œä»¥ç©ºç™½åˆ†éš”)" -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" -msgstr "" - -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: html/Admin/Queues/Modify.html:75 html/Admin/Queues/Modify.html:81 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) -msgid "(If left blank, will default to %1" +msgid "(If left blank, will default to %1)" msgstr "(如果留白, 则预设为 %1)" #: NOT FOUND IN SOURCE msgid "(No Value)" msgstr "(没有值)" -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "(没有自订字段)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(没有æˆå‘˜)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "(没有手续)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "没有模æ¿" @@ -515,11 +437,11 @@ msgstr "没有模æ¿" msgid "(No workflows)" msgstr "没有æµç¨‹" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 msgid "(None)" msgstr "(æ— )" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:88 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>更改åŽç»­çš„æ”¶ä»¶è€…åå•。)" @@ -527,11 +449,11 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„密件副本给åå•上以逗å·éš”å¼€çš„ç”µå­ 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/Create.html:78 +#: html/Ticket/Create.html:100 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/Update.html:62 +#: html/Ticket/Update.html:84 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>更改åŽç»­çš„æ”¶ä»¶è€…åå•。)" @@ -539,13 +461,13 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本给åå•上以逗å·éš”开的电å­é‚®ä»¶ 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/Create.html:68 +#: html/Ticket/Create.html:90 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/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "" +msgstr "(当æ¡ä»¶æˆ–动作设为‘使用者自订’时,请填入这些字段)" #: NOT FOUND IN SOURCE msgid "(default delegate)" @@ -555,7 +477,7 @@ msgstr "(预设代ç†äºº)" msgid "(delete)" msgstr "(删除)" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(空白)" @@ -563,39 +485,31 @@ msgstr "(空白)" msgid "(new)" msgstr "(新增)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "(没有列出姓å)" -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" - #: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(没有主题)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(æ— )" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFieldValues:47 msgid "(no values)" msgstr "(没有值)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(仅能指定一份申请å•)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(等待签核)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" msgstr "(等待其它集åˆ)" @@ -607,11 +521,11 @@ msgstr "(等待其它申请å•)" msgid "(requestor's group)" msgstr "(申请人所属)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(å¿…å¡«)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(未命å)" @@ -619,51 +533,39 @@ msgstr "(未命å)" msgid "*" msgstr "★" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I own..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I requested..." -msgstr "" - #: NOT FOUND IN SOURCE msgid ":" msgstr ":" -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "<% $_ %>" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "<%$_%>" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "<%$field%>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"æå‡ºç”³è¯·å•\"> %1" -#: NOT FOUND IN SOURCE -msgid "??????" -msgstr "" - #: etc/initialdata:218 msgid "A blank template" msgstr "空白模æ¿" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "" + #: NOT FOUND IN SOURCE msgid "ACE Deleted" msgstr "ACE 已删除" @@ -680,11 +582,11 @@ msgstr "无法删除 ACE" msgid "ACE could not be found" msgstr "找ä¸åˆ° ACE" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "找ä¸åˆ° ACE 设定" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "祇能新增或删除 ACE 设定。" @@ -692,6 +594,10 @@ msgstr "祇能新增或删除 ACE 设定。" msgid "ACLEquivalence" msgstr "ACLEquivalence" +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "离开以å…ä¸å°å¿ƒæ›´æ”¹åˆ°ç”³è¯·å•。\\n" @@ -700,7 +606,7 @@ msgstr "离开以å…ä¸å°å¿ƒæ›´æ”¹åˆ°ç”³è¯·å•。\\n" msgid "About Me" msgstr "个人信æ¯" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "个人信æ¯" @@ -708,24 +614,28 @@ msgstr "个人信æ¯" msgid "Access Right" msgstr "系统使用登录æƒé™" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "å­˜å–æƒé™" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "动作" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "动作 %1 找ä¸åˆ°" -#: bin/rt-crontool:119 +#: NOT FOUND IN SOURCE msgid "Action committed." msgstr "动作执行完毕" -#: bin/rt-crontool:115 +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "" + +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "动作准备完毕..." @@ -733,19 +643,23 @@ msgstr "动作准备完毕..." msgid "Activated Date" msgstr "申请激活时间" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" msgstr "新增" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "新增管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "新增副本收件人" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "" + +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" msgstr "新增æ¡ä»¶" @@ -753,7 +667,7 @@ msgstr "新增æ¡ä»¶" msgid "Add Entry" msgstr "新增列" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "新增更多附件" @@ -761,11 +675,11 @@ msgstr "新增更多附件" msgid "Add Next State" msgstr "新增下一项关å¡" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "新增申请人" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" msgstr "新增字段值" @@ -789,36 +703,40 @@ msgstr "新增全域手续" msgid "Add a scrip to this queue" msgstr "æ–°å¢žä¸€é“æ‰‹ç»­åˆ°æ­¤è¡¨å•" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" msgstr "新增一é“用于所有表å•的手续" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" -msgstr "" +msgstr "新增查询æ¡ä»¶" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "新增评论或回å¤åˆ°æŒ‡å®šçš„申请å•" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "新增æˆå‘˜" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "新增视察员" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "" + #: NOT FOUND IN SOURCE msgid "AddNextState" msgstr "新增下一项关å¡" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤è¡¨å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤ç”³è¯·å•çš„ %1" @@ -827,11 +745,11 @@ msgstr "å•ä½å·²æ–°å¢žä¸ºæ­¤ç”³è¯·å•çš„ %1" msgid "Additional Hints" msgstr "é¢å¤–æç¤º" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "ä½å€" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "ä½å€(ç»­)" @@ -843,7 +761,7 @@ msgstr "调整闪çƒé€Ÿåº¦å¿«æ…¢" msgid "Admin" msgstr "管ç†å‘˜" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "管ç†å‘˜å‰¯æœ¬" @@ -859,7 +777,7 @@ msgstr "管ç†å‘˜å›žå¤" msgid "Admin Rights" msgstr "管ç†å‘˜æƒé™" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" msgstr "表å•管ç†" @@ -867,7 +785,7 @@ msgstr "表å•管ç†" msgid "Admin users" msgstr "使用者管ç†" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "管ç†/全域设定" @@ -887,7 +805,7 @@ msgstr "管ç†å‘˜ Email" msgid "AdminAllPersonalGroups" msgstr "ç®¡ç†æ‰€æœ‰ä»£ç†äººç¾¤ç»„" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "管ç†å‘˜å‰¯æœ¬" @@ -899,15 +817,15 @@ msgstr "管ç†å‘˜è¯„论" msgid "AdminCorrespondence" msgstr "管ç†å‘˜å›žå¤" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:101 msgid "AdminCustomField" msgstr "管ç†è‡ªè®¢å­—段" -#: lib/RT/Queue_Overlay.pm:73 +#: NOT FOUND IN SOURCE msgid "AdminCustomFields" msgstr "管ç†è‡ªè®¢å­—段" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "管ç†ç¾¤ç»„" @@ -915,7 +833,7 @@ msgstr "管ç†ç¾¤ç»„" msgid "AdminGroupDescription" msgstr "管ç†ç¾¤ç»„æè¿°" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "管ç†ç¾¤ç»„æˆå‘˜" @@ -931,15 +849,15 @@ msgstr "管ç†ç¾¤ç»„æƒé™" msgid "AdminGroupStatus" msgstr "管ç†ç¾¤ç»„状æ€" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "管ç†ä»£ç†äººç¾¤ç»„" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "管ç†è¡¨å•" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "管ç†ä½¿ç”¨è€…" @@ -947,7 +865,7 @@ msgstr "管ç†ä½¿ç”¨è€…" msgid "Administrative" msgstr "行政类" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "管ç†å‘˜å‰¯æœ¬" @@ -955,7 +873,7 @@ msgstr "管ç†å‘˜å‰¯æœ¬" msgid "Admins" msgstr "主管" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" msgstr "进阶" @@ -965,9 +883,9 @@ msgstr "进阶查询" #: NOT FOUND IN SOURCE msgid "Advanced Search Criteria" -msgstr "" +msgstr "进阶查询æ¡ä»¶" -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "晚于" @@ -975,6 +893,10 @@ msgstr "晚于" msgid "Age" msgstr "ç»åŽ†æ—¶é—´" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Alias" msgstr "执行其它æµç¨‹" @@ -991,19 +913,15 @@ msgstr "全部" msgid "All Approvals Passed" msgstr "完æˆå…¨éƒ¨ç­¾æ ¸" -#: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - #: NOT FOUND IN SOURCE msgid "All Condition" msgstr "所有æ¡ä»¶" -#: html/Admin/Elements/EditCustomFields:94 +#: NOT FOUND IN SOURCE msgid "All Custom Fields" msgstr "所有自订字段" -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "所有表å•" @@ -1027,6 +945,10 @@ msgstr "æ— è®ºå¯„ä»¶æ¥æºä¸ºä½•,一律寄信给申请人" msgid "Amount" msgstr "æ•°é¢" +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Any Condition" msgstr "ä»»æ„æ¡ä»¶" @@ -1035,11 +957,11 @@ msgstr "ä»»æ„æ¡ä»¶" msgid "Applies To" msgstr "套用于" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 msgid "Applies to" msgstr "套用于" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply" msgstr "套用" @@ -1047,27 +969,27 @@ msgstr "套用" msgid "Apply Template" msgstr "引用模æ¿" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" msgstr "套用更动" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "签核" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "ç­¾æ ¸å• #%1:系统错误,记录失败" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "ç­¾æ ¸å• #%1:记录完毕" @@ -1108,7 +1030,7 @@ msgstr "签核ç§ç±»" msgid "Approval diagram" msgstr "签核æµç¨‹" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "核准" @@ -1128,7 +1050,7 @@ msgstr "签核备注:%1" msgid "Apr" msgstr "四月" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "04" @@ -1140,68 +1062,48 @@ msgstr "四月" msgid "Are you sure to delete checked items?" msgstr "您确定è¦åˆ é™¤ï¼Ÿ" -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "递增" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "Assign and remove custom fields" msgstr "指派åŠç§»é™¤è‡ªè®¢å­—段" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "AssignCustomFields" msgstr "指派自订字段" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "附件" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "附加档案" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "现有附件" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: 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:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "附件新增完毕" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "附件档å" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "附件" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" msgstr "已删除该属性" @@ -1213,7 +1115,7 @@ msgstr "属性" msgid "Aug" msgstr "八月" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "08" @@ -1245,7 +1147,7 @@ msgstr "自动对申请人回å¤" msgid "AutoreplyToRequestors" msgstr "自动对申请人回å¤" -#: html/Search/Elements/EditFormat:4 +#: NOT FOUND IN SOURCE msgid "Available Columns" msgstr "å¯ç”¨çš„字段:" @@ -1277,7 +1179,7 @@ msgstr "%1 的数æ®é”™è¯¯" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "附件的处ç†å·ç é”™è¯¯ã€‚%1 应为 %2\\n" -#: 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 +#: 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 "基本信æ¯" @@ -1285,15 +1187,15 @@ msgstr "基本信æ¯" msgid "Batch Approval" msgstr "批次签核" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "密件副本" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "请别忘了储存修改。" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "早于" @@ -1305,6 +1207,10 @@ msgstr "开始签核" msgid "Begin From " msgstr "èµ·å§‹æ—¥" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Binary" msgstr "档案" @@ -1317,19 +1223,23 @@ msgstr "生日" 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:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" -msgstr "" +msgstr "坿”¾å…¥ä¹¦ç­¾çš„网å€" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "精简标头档" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "更新整批申请å•" @@ -1341,35 +1251,40 @@ msgstr "事业部" msgid "Business Unit:" msgstr "事业部:" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "无法更改系统使用者" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" msgstr "该å•使˜¯å¦èƒ½æŸ¥é˜…此表å•" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "ä¸èƒ½æ–°å¢žæ²¡æœ‰å称的自订字段值" -#: html/Search/Build.html:694 +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" +msgstr "" + +#: html/Search/Build.html:761 msgid "Can't find a saved search to work with" msgstr "找ä¸åˆ°å·²å‚¨å­˜çš„æŸ¥è¯¢" -#: lib/RT/Link_Overlay.pm:126 +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "申请å•ä¸èƒ½é“¾æŽ¥è‡ªå·±ã€‚" -#: lib/RT/Ticket_Overlay.pm:2716 +#: NOT FOUND IN SOURCE msgid "Can't merge into a merged ticket. You should never get this error" msgstr "ä¸èƒ½æ•´åˆè¿›å·²æ•´åˆè¿‡çš„申请å•。这个错误ä¸è¯¥å‘生。" -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" msgstr "无法储存此项查询" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "ä¸èƒ½åŒæ—¶æŒ‡å®šèµ·å§‹ç”³è¯·å•与目的申请å•" @@ -1377,7 +1292,7 @@ msgstr "ä¸èƒ½åŒæ—¶æŒ‡å®šèµ·å§‹ç”³è¯·å•与目的申请å•" msgid "Cancel" msgstr "å–æ¶ˆ" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "无法新增使用者:%1" @@ -1398,7 +1313,7 @@ msgstr "分类管ç†" msgid "Category" msgstr "分类" -#: 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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "副本" @@ -1414,7 +1329,7 @@ msgstr "董事长室" msgid "Change Ticket" msgstr "修改申请å•" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "更改å£ä»¤" @@ -1422,19 +1337,19 @@ msgstr "更改å£ä»¤" msgid "ChangeOwnerUI" msgstr "å¯å¦é€‰æ‹©è¡¨å•承办人" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:100 msgid "Check All" msgstr "全部选å–" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "选择欲删除的项目" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "选择欲撤消的æƒåˆ©" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "å­ç”³è¯·å•" @@ -1446,47 +1361,27 @@ msgstr "中文姓å" msgid "Chinese/English" msgstr "中英文" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "所在城市" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - #: NOT FOUND IN SOURCE msgid "ClassicUI" msgstr "传统接å£" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:102 msgid "Clear All" msgstr "全部清除" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "已解决" -#: html/SelfService/Closed.html:24 +#: NOT FOUND IN SOURCE msgid "Closed Tickets" msgstr "已解决的申请å•" -#: NOT FOUND IN SOURCE -msgid "Closed requests" -msgstr "" - -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "已解决的申请å•" @@ -1498,11 +1393,11 @@ msgstr "执行程åºç " msgid "Command not understood!\\n" msgstr "指令无法辨识ï¼\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "评论" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "评论电å­é‚®ä»¶åœ°å€" @@ -1510,11 +1405,11 @@ msgstr "评论电å­é‚®ä»¶åœ°å€" msgid "Comment not recorded" msgstr "评论未被纪录" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "å¯¹ç”³è¯·å•æå‡ºè¯„è®º" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "评论申请å•" @@ -1522,11 +1417,11 @@ msgstr "评论申请å•" msgid "Comments" msgstr "评论" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "评论(ä¸é€ç»™ç”³è¯·äºº)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "评论(ä¸é€ç»™ç”³è¯·äºº)" @@ -1534,11 +1429,11 @@ msgstr "评论(ä¸é€ç»™ç”³è¯·äºº)" msgid "Comments about %1" msgstr "对 %1 的评论" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "使用者æè¿°" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "新增评论完毕" @@ -1546,7 +1441,7 @@ msgstr "新增评论完毕" msgid "Commit" msgstr "确认" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "消除更动完毕" @@ -1562,23 +1457,23 @@ msgstr "å„å…¬å¸ç‹¬ç«‹æ˜¾ç¤º" msgid "Compile Restrictions" msgstr "设定查询æ¡ä»¶" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "æ¡ä»¶" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "ç¬¦åˆæ¡ä»¶..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "未找到符åˆçš„现况" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "设定" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "确认å£ä»¤" @@ -1602,11 +1497,11 @@ msgstr "连络信æ¯ç³»ç»Ÿ" msgid "Contacted date '%1' could not be parsed" msgstr "无法解读è”络日期 '%1'" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "内容" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "内容类型" @@ -1614,7 +1509,7 @@ msgstr "内容类型" msgid "Coould not create group" msgstr "无法新增群组" -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" msgstr "å¤åˆ¶" @@ -1630,7 +1525,7 @@ msgstr "回å¤" msgid "Correspondence Address" msgstr "申请å•回å¤åœ°å€" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "新增申请å•回å¤" @@ -1638,7 +1533,7 @@ msgstr "新增申请å•回å¤" msgid "Correspondence not recorded" msgstr "未纪录申请å•回å¤" -#: lib/RT/Ticket_Overlay.pm:3471 +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. " msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值 " @@ -1646,15 +1541,29 @@ msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值 " msgid "Could not add new custom field value for ticket. %1 " msgstr "ä¸èƒ½æ–°å¢žè‡ªè®¢å­—段的值。%1 " -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "" + +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " msgstr "ä¸èƒ½æ›´æ”¹æ‰¿åŠžäººã€‚ " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "无法新增自订字段" +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Could not create Scrip" msgstr "无法建立讯æ¯é€šçŸ¥" @@ -1663,7 +1572,7 @@ msgstr "无法建立讯æ¯é€šçŸ¥" msgid "Could not create Template" msgstr "无法建立通知模æ¿" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "无法新增群组" @@ -1671,16 +1580,16 @@ msgstr "无法新增群组" msgid "Could not create item" msgstr "无法新增项目" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: 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:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "无法新增申请å•。尚未指定表å•。" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" msgstr "无法新增使用者" @@ -1700,11 +1609,11 @@ msgstr "找ä¸åˆ°ç¼–å· %1 的申请å•" msgid "Could not find group %1." msgstr "找ä¸åˆ°ç¾¤ç»„ %1。" -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "找ä¸åˆ°æˆ–无法新增该å使用者" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "找ä¸åˆ°è¯¥å•ä½" @@ -1712,25 +1621,34 @@ msgstr "找ä¸åˆ°è¯¥å•ä½" msgid "Could not find user %1." msgstr "找ä¸åˆ°ä½¿ç”¨è€… %1。" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:69 msgid "Could not load CustomField %1" msgstr "无法加载字段 %1" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "无法加载群组" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "无法将该å•ä½è®¾ä¸ºæ­¤è¡¨å•çš„ %1。" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "无法将该å•ä½è®¾ä¸ºæ­¤ç”³è¯·å•çš„ %1。" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "无法将å•ä½ %1 从表å•移除。" @@ -1739,15 +1657,15 @@ msgstr "无法将å•ä½ %1 从表å•移除。" msgid "Could not remove that principal as a %1 for this ticket" msgstr "无法将å•ä½ %1 从申请å•移除。" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" msgstr "无法设定使用者信æ¯" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" msgstr "无法新增æˆå‘˜è‡³ç¾¤ç»„" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "无法新增更动报告" @@ -1760,15 +1678,15 @@ msgstr "无法从 gpg 回函辨识出该采å–的行动\\n" msgid "Couldn't find group\\n" msgstr "找ä¸åˆ°ç¾¤ç»„\\n" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" msgstr "找ä¸åˆ°æ­¤åˆ—æ•°æ®" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" msgstr "找ä¸åˆ°è¯¥å•ä½" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" msgstr "找ä¸åˆ°è¯¥å€¼" @@ -1780,16 +1698,18 @@ msgstr "找ä¸åˆ°è¯¥è§†å¯Ÿå‘˜" msgid "Couldn't find user\\n" msgstr "找ä¸åˆ°ä½¿ç”¨è€…\\n" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "无法从使用者数æ®åº“加载 %1。\\n" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "无法加载类别 %1" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" msgstr "无法加载自订字段 %1" @@ -1805,25 +1725,26 @@ msgstr "无法加载 RT 设定档 '%1' %2" msgid "Couldn't load Scrips." msgstr "无法加载手续。" -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: 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:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "无法加载链接。" -#: NOT FOUND IN SOURCE +#: 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/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" msgstr "无法加载表å•" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" msgstr "æ— æ³•åŠ è½½è¡¨å• %1" @@ -1840,16 +1761,26 @@ msgstr "无法加载模æ¿" msgid "Couldn't load that user (%1)" msgstr "无法加载该å使用者(%1)" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "æ— æ³•åŠ è½½ç”³è¯·å• '%1'" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "国家" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "新增" @@ -1865,20 +1796,16 @@ msgstr "新增申请å•" msgid "Create User:" msgstr "新增æˆå‘˜ï¼š" -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" - -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "新增自订字段" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "为 %1 è¡¨å•æ–°å¢žè‡ªè®¢å­—段" -#: html/Admin/Global/CustomField.html:47 +#: NOT FOUND IN SOURCE msgid "Create a CustomField which applies to all queues" msgstr "为 %1 è¡¨å•æ–°å¢žè‡ªè®¢å­—段" @@ -1886,10 +1813,6 @@ msgstr "为 %1 è¡¨å•æ–°å¢žè‡ªè®¢å­—段" msgid "Create a new Custom Field" msgstr "新增自订字段" -#: NOT FOUND IN SOURCE -msgid "Create a new article" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "新增全域手续" @@ -1898,11 +1821,11 @@ msgstr "新增全域手续" msgid "Create a new global scrip" msgstr "新增全域手续" -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "新增群组" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "新增代ç†äººç¾¤ç»„" @@ -1918,11 +1841,11 @@ msgstr "新增手续" msgid "Create a new template" msgstr "新增模æ¿" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "新增申请å•" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "新增使用者" @@ -1930,7 +1853,7 @@ msgstr "新增使用者" msgid "Create a new workflow" msgstr "新增æµç¨‹" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "新增表å•" @@ -1942,16 +1865,16 @@ msgstr "新增表å•åç§°" msgid "Create a request" msgstr "æå‡ºç”³è¯·" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "为 %1 è¡¨å•æ–°å¢žæ‰‹ç»­" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "新增模æ¿" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" msgstr "æå‡ºç”³è¯·å•" @@ -1959,14 +1882,6 @@ msgstr "æå‡ºç”³è¯·å•" msgid "Create a workflow" msgstr "新增æµç¨‹" -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "新增失败:%1 / %2 / %3" @@ -1983,19 +1898,19 @@ msgstr "建立新项目" msgid "Create new tickets based on this scrip's template" msgstr "便®æ­¤é¡¹æ‰‹ç»­å†…的模版,新增申请å•" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "新增申请å•" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" msgstr "在此表å•中新增申请å•" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹è‡ªè®¢å­—段" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹è¡¨å•" @@ -2003,35 +1918,31 @@ msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹è¡¨å•" msgid "Create, delete and modify the members of any user's personal groups" msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹ä»»ä½•使用者的代ç†äººç¾¤ç»„" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹ä»£ç†äººç¾¤ç»„" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "新增ã€åˆ é™¤åŠæ›´æ”¹ä½¿ç”¨è€…" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "新增申请å•" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "新增日" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "自订字段 %1 新增æˆåŠŸ" -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "æ¨¡æ¿ %1 新增æˆåŠŸ" @@ -2040,7 +1951,7 @@ msgstr "æ¨¡æ¿ %1 新增æˆåŠŸ" msgid "Created workflow %1" msgstr "æµç¨‹ %1 新增æˆåŠŸ" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" msgstr "建立者" @@ -2060,19 +1971,15 @@ msgstr "现有自订字段" msgid "Current Groups:" msgstr "现有群组列表:" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "现有关系" -#: NOT FOUND IN SOURCE -msgid "Current Relationships" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Current Rights:" msgstr "现有æƒé™ï¼š" -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "现有手续" @@ -2088,11 +1995,11 @@ msgstr "现有模æ¿" msgid "Current Watchers" msgstr "现有视察员" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "现有æˆå‘˜" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "现有æƒé™" @@ -2100,20 +2007,20 @@ msgstr "现有æƒé™" msgid "Current search criteria" msgstr "现有查询æ¡ä»¶" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "现有视察员" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) +#: NOT FOUND IN SOURCE msgid "Custom Field #%1" msgstr "自订字段 #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "自订字段" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) msgid "Custom Fields for %1" msgstr "%1 的自订字段" @@ -2121,20 +2028,19 @@ msgstr "%1 的自订字段" msgid "Custom Fields which apply to all queues" msgstr "适用于所有表å•的自订字段" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "åŠ¨ä½œåŽæ‰§è¡Œç¨‹åº" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "åŠ¨ä½œå‰æ‰§è¡Œç¨‹åº" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "自订æ¡ä»¶" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: NOT FOUND IN SOURCE msgid "Custom field %1 %2 %3" msgstr "自订字段 %1 %2 %3" @@ -2142,30 +2048,30 @@ msgstr "自订字段 %1 %2 %3" msgid "Custom field %1 does not apply to this object" msgstr "自订字段 %1 ä¸é€‚用于此对象" -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "自订字段 %1 已有值" -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "自订字段 %1 没有值" -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "找ä¸åˆ°è‡ªè®¢å­—段 %1" -#: html/Admin/Elements/EditCustomFields:195 +#: NOT FOUND IN SOURCE msgid "Custom field deleted" msgstr "自订字段已删除" -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" msgstr "找ä¸åˆ°è‡ªè®¢å­—段" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "无法从自订字段 %2 中找到 %1 这个字段值" @@ -2174,19 +2080,19 @@ msgstr "无法从自订字段 %2 中找到 %1 这个字段值" msgid "Custom field value changed from %1 to %2" msgstr "自订字段值从 %1 改为 %2" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "无法删除自订字段值" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "找ä¸åˆ°è‡ªè®¢å­—段值" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "自订字段值删除æˆåŠŸ" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "自订字段" @@ -2206,7 +2112,7 @@ msgstr "MySQLæ•°æ®åº“" msgid "Date of Departure" msgstr "å‡ºå‘æ—¥æœŸ" -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "日期" @@ -2214,7 +2120,7 @@ msgstr "日期" msgid "Dec" msgstr "å二月" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "12" @@ -2234,13 +2140,13 @@ msgstr "预设自动å“应模æ¿" msgid "Default Autoresponse template" msgstr "预设自动å“应模æ¿" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" msgstr "预设表å•" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" -msgstr "" +msgstr "预设申请人" #: NOT FOUND IN SOURCE msgid "Default Value" @@ -2262,8 +2168,7 @@ msgstr "é¢„è®¾å›žå¤æ¨¡æ¿" msgid "Default transaction template" msgstr "预设更动模æ¿" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: NOT FOUND IN SOURCE msgid "Default: %1/%2 changed from %3 to %4" msgstr "预设:%1/%2 已自 %3 改为 %4" @@ -2271,15 +2176,15 @@ msgstr "预设:%1/%2 已自 %3 改为 %4" msgid "DefaultApproval" msgstr "预设签核" -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" -msgstr "代表团æƒé™" +msgstr "代ç†äººæƒé™" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "将拥有的æƒé™å§”托他人代ç†" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "设定代ç†äºº" @@ -2331,7 +2236,7 @@ msgstr "代ç†äººè®¾å®š" msgid "Delegates Status" msgstr "代ç†çжæ€" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "代ç†äººæƒé™" @@ -2343,39 +2248,44 @@ msgstr "代ç†äººç¾¤ç»„" msgid "Delegation Rights" msgstr "代ç†äººæƒé™" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "删除" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" -msgstr "" +msgstr "删除模æ¿" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" msgstr "删除指定的手续" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" msgstr "删除申请å•" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "删除申请å•" -#: lib/RT/Transaction_Overlay.pm:162 +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Deleting this object could break referential integrity" msgstr "删除此对象å¯èƒ½ç ´åå‚考完整性" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "删除此对象å¯èƒ½ç ´åå‚考完整性" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "删除此对象会è¿åå‚考完整性" @@ -2387,7 +2297,7 @@ msgstr "删除此对象会è¿åå‚考完整性" msgid "Deleting this object would violate referential integrity. That's bad." msgstr "删除此对象会è¿åå‚考完整性" -#: html/Approvals/Elements/Approve:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "驳回" @@ -2423,7 +2333,7 @@ msgstr "请å‡å•" msgid "Departure Until" msgstr "差旅截止日" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "å¯æŽ¥ç»­å¤„ç†çš„申请å•" @@ -2431,27 +2341,27 @@ msgstr "å¯æŽ¥ç»­å¤„ç†çš„申请å•" msgid "Dependencies: \\n" msgstr "附属性:\\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "å·²åŠ å…¥å¯æŽ¥ç»­å¤„ç†çš„ç”³è¯·å• %1" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "å·²ç§»é™¤å¯æŽ¥ç»­å¤„ç†çš„ç”³è¯·å• %1" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "已加入需先处ç†çš„ç”³è¯·å• %1" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "已移除需先处ç†çš„ç”³è¯·å• %1" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "需先处ç†" @@ -2459,15 +2369,15 @@ msgstr "需先处ç†" msgid "DependsOn" msgstr "需先处ç†" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "递å‡" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "在以下字段æè¿°ä¸»é¢˜" -#: 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 +#: 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:56 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 "æè¿°" @@ -2499,31 +2409,31 @@ msgstr "残障类别" msgid "Disabled" msgstr "åœç”¨" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "显示内容" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "显示æƒé™æŽ§åˆ¶æ¸…å•" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" msgstr "显示字段" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" msgstr "显示此表å•的模æ¿" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" msgstr "显示此表å•的手续" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "显示模å¼" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" msgstr "显示此群组已储存的查询" @@ -2531,15 +2441,19 @@ msgstr "显示此群组已储存的查询" msgid "Display ticket #%1" msgstr "显示第%1å·ç”³è¯·å•" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 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:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "å…许一切æ“作" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "䏿›´æ–°æ­¤é¡µé¢ã€‚" @@ -2555,15 +2469,11 @@ msgstr "完æˆ" msgid "Down" msgstr "下一页" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "下载" -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 msgid "Download as a tab-delimited file" msgstr "下载以 Tab 分隔的档案" @@ -2571,7 +2481,7 @@ msgstr "下载以 Tab 分隔的档案" msgid "Dr." msgstr "åšå£«" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "到期日" @@ -2595,36 +2505,40 @@ msgstr "编辑" msgid "Edit Conditions" msgstr "编辑å‰ç½®æ¡ä»¶" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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 的自订字段" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" msgstr "" #: NOT FOUND IN SOURCE msgid "Edit Custom Fields for queue %1" msgstr "ç¼–è¾‘è¡¨å• %1 的自订字段" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "" + +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "编辑申请å•关系" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" msgstr "编辑查询" -#: NOT FOUND IN SOURCE -msgid "Edit Relationships" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Edit Subgroups" msgstr "新增/维护å­ç¾¤ç»„" -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "ç¼–è¾‘è¡¨å• %1 的模æ¿" @@ -2637,7 +2551,7 @@ msgstr "ç¼–è¾‘è¡¨å• %1 çš„æµç¨‹" msgid "Edit keywords" msgstr "编辑关键è¯" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" msgstr "编辑此群组已储存的查询" @@ -2645,7 +2559,7 @@ msgstr "编辑此群组已储存的查询" msgid "Edit scrips" msgstr "编辑手续" -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "编辑全域模æ¿" @@ -2661,15 +2575,11 @@ msgstr "编辑 %1 的模æ¿" msgid "Edit workflows for %1" msgstr "编辑 %1 çš„æµç¨‹" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" msgstr "编辑已储存的查询" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "ç¼–è¾‘è¡¨å• %1 的设定" @@ -2678,17 +2588,17 @@ msgstr "ç¼–è¾‘è¡¨å• %1 的设定" msgid "Editing Configuration for user %1" msgstr "编辑使用者 %1 的设定" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "编辑自订字段 %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "编辑群组 %1 çš„æˆå‘˜ä¿¡æ¯" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "编辑代ç†äººç¾¤ç»„ %1 çš„æˆå‘˜ä¿¡æ¯" @@ -2709,11 +2619,11 @@ msgstr "最高学历" msgid "EffectiveId" msgstr "有效编å·" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "éœ€è¦æŒ‡å®šèµ·å§‹ç”³è¯·å•或目的申请å•" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "电å­é‚®ä»¶ä¿¡ç®±" @@ -2721,7 +2631,7 @@ msgstr "电å­é‚®ä»¶ä¿¡ç®±" msgid "Email Address" msgstr "电å­é‚®ä»¶ä¿¡ç®±" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "此电å­é‚®ä»¶ä¿¡ç®±å·²è¢«ä½¿ç”¨" @@ -2749,27 +2659,19 @@ msgstr "抵达地点" msgid "Enable Delegates" msgstr "ä»£ç†æ¿€æ´»" -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "å¯ç”¨(å–æ¶ˆå‹¾é€‰å°†åœç”¨æ­¤è‡ªè®¢å­—段)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: 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:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" msgstr "å¯ç”¨(å–æ¶ˆå‹¾é€‰å°†åœç”¨æ­¤è¡¨å•)" #: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "å·²å¯ç”¨çš„自订字段" @@ -2781,7 +2683,7 @@ msgstr "å¯ç”¨æ—¥æœŸ" msgid "Enabled Date:" msgstr "激活日期:" -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" msgstr "å·²å¯ç”¨çš„表å•" @@ -2789,12 +2691,13 @@ msgstr "å·²å¯ç”¨çš„表å•" msgid "Enabled Status" msgstr "å¯ç”¨çжæ€" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "å¯ç”¨çŠ¶æ€ %1" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) msgid "Enabled status: %1" msgstr "å¯ç”¨çжæ€: %1" @@ -2806,15 +2709,11 @@ msgstr "试用期满日" msgid "English Name" msgstr "英文姓å" -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "键入多é‡é¡¹ç›®" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." msgstr "键入欲将对象连结至的对象或 URI。项目之间请以空白隔开。" @@ -2822,23 +2721,19 @@ msgstr "键入欲将对象连结至的对象或 URI。项目之间请以空白 msgid "Enter one or more conditions below to search for users" msgstr "键入下列å•一或å¤å¼æ¡ä»¶ï¼ŒæŸ¥è¯¢ç”¨æˆ·æ•°æ®" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "键入å•一项目" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." msgstr "键入欲将表å•连结至的对象或 URI。项目之间请以空白隔开。" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "键入欲将申请å•连结至的对象或 URI。项目之间请以空白隔开。" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "键入申请å•å¯é“¾æŽ¥åˆ°çš„申请å•ç¼–å·æˆ–网å€ã€‚项目之间请以空白隔开。" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:66 msgid "Enter up to %1 values" msgstr "键入最多 %1 个值" @@ -2874,7 +2769,7 @@ msgstr "å•选填表" msgid "EntryTime" msgstr "时间填表" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "错误" @@ -2882,31 +2777,23 @@ msgstr "错误" msgid "Error adding watcher" msgstr "新增视察员失败" -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "表å•->æ–°å¢žè§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Queue->DelWatcher" -msgstr "表å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" - -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "" +msgstr "表å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "申请å•->æ–°å¢žè§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Ticket->DelWatcher" -msgstr "申请å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" - -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "" +msgstr "申请å•->åˆ é™¤è§†å¯Ÿå‘˜çš„å‚æ•°æœ‰è¯¯" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" msgstr "调整申请å•优先等级" @@ -2914,7 +2801,7 @@ msgstr "调整申请å•优先等级" msgid "Estimate" msgstr "预计" -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" msgstr "预计" @@ -2922,7 +2809,7 @@ msgstr "预计" msgid "Everyone" msgstr "所有人" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "范例:" @@ -2958,36 +2845,37 @@ msgstr "外部数æ®åº“用户" msgid "ExternalURL" msgstr "外部接å£ç½‘å€" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "备注" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" msgstr "" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "找ä¸åˆ°ã€Œå†…部æˆå‘˜ã€è™šæ‹Ÿç¾¤ç»„的使用者。" +msgstr "找ä¸åˆ°â€˜å†…部æˆå‘˜â€™è™šæ‹Ÿç¾¤ç»„的使用者。" -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "找ä¸åˆ°ã€Œéžå†…部æˆå‘˜ã€è™šæ‹Ÿç¾¤ç»„的使用者。" +msgstr "找ä¸åˆ°â€˜éžå†…部æˆå‘˜â€™è™šæ‹Ÿç¾¤ç»„的使用者。" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "æ— æ³•åŠ è½½æ¨¡å— %1. (%2)" +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Feb" msgstr "二月" -#: lib/RT/Date.pm:412 +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "02" @@ -3015,22 +2903,34 @@ msgstr "字段åç§°" msgid "Field Type" msgstr "字段类别" -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" msgstr "æ¡£å" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:69 msgid "Fill in multiple text areas" msgstr "填入多个文字框" -#: NOT FOUND IN SOURCE +#: 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 "填入一个文字框" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +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 "筛选" @@ -3047,11 +2947,11 @@ msgstr "筛选列表:" msgid "Fin" msgstr "最终" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "最终顺ä½" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "最终顺ä½" @@ -3059,11 +2959,11 @@ msgstr "最终顺ä½" msgid "Financial Department:" msgstr "财务部:" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: NOT FOUND IN SOURCE msgid "Find group whose" msgstr "寻找群组的" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 msgid "Find groups whose" msgstr "寻找群组的" @@ -3071,7 +2971,7 @@ msgstr "寻找群组的" msgid "Find new/open tickets" msgstr "寻找/å¼€å¯ç”³è¯·å•" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "寻找人员的" @@ -3079,7 +2979,7 @@ msgstr "寻找人员的" msgid "Find queues whose" msgstr "寻找表å•çš„" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "寻找申请å•" @@ -3087,7 +2987,7 @@ msgstr "寻找申请å•" msgid "Finish Approval" msgstr "签核完毕" -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "第一项" @@ -3111,15 +3011,15 @@ msgstr "一阶主管员工" msgid "Fixed shift" msgstr "固定ç­" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "甲ï¼" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "强制更æ¢" @@ -3127,12 +3027,16 @@ msgstr "强制更æ¢" msgid "Form Processing" msgstr "电å­è¡¨å•作业区" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "找到 %1 张申请å•" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "已找到对象" @@ -3156,7 +3060,7 @@ msgstr "日期输入" msgid "FreeformExternal" msgstr "系统字段" -#: lib/RT/CustomField_Overlay.pm:37 +#: NOT FOUND IN SOURCE msgid "FreeformMultiple" msgstr "多é‡è¾“å…¥" @@ -3168,7 +3072,7 @@ msgstr "数值输入" msgid "FreeformPassword" msgstr "å£ä»¤è¾“å…¥" -#: lib/RT/CustomField_Overlay.pm:36 +#: NOT FOUND IN SOURCE msgid "FreeformSingle" msgstr "å•一输入" @@ -3180,11 +3084,11 @@ msgstr "时间输入" msgid "Fri" msgstr "星期五" -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "星期五" -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "完整标头档" @@ -3196,7 +3100,7 @@ msgstr "登入å¸å·" msgid "Gender" msgstr "性别" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" msgstr "å–出档案里的模æ¿" @@ -3204,12 +3108,12 @@ msgstr "å–出档案里的模æ¿" msgid "Getting the current user from a pgp sig\\n" msgstr "å–å¾—ç›®å‰ä½¿ç”¨è€…çš„ pgp 签章\\n" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "交予 %1" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "全域设定" @@ -3217,7 +3121,7 @@ msgstr "全域设定" msgid "Global Approval" msgstr "全域签核" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:55 msgid "Global Custom Fields" msgstr "全域自订字段" @@ -3237,7 +3141,11 @@ msgstr "全域手续" msgid "Global Setup" msgstr "全域设定" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "全域模æ¿ï¼š%1" @@ -3246,11 +3154,11 @@ msgstr "全域模æ¿ï¼š%1" msgid "GlobalApproval" msgstr "全域签核" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" msgstr "执行" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "执行" @@ -3262,7 +3170,7 @@ msgstr "%1 çš„ pgp 签章是正确的\\n" msgid "Goto page" msgstr "到页é¢" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "跳到申请å•" @@ -3270,7 +3178,7 @@ msgstr "跳到申请å•" msgid "Grand" msgstr "上" -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "群组" @@ -3302,7 +3210,7 @@ msgstr "群组åç§°" msgid "Group Name:" msgstr "群组å称:" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "群组æƒé™" @@ -3318,7 +3226,7 @@ msgstr "群组设定" msgid "Group Status" msgstr "群组状æ€" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "群组内已有此æˆå‘˜" @@ -3326,12 +3234,12 @@ msgstr "群组内已有此æˆå‘˜" msgid "Group could not be created." msgstr "无法新增群组" -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "无法新增群组:%1" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "群组新增完毕" @@ -3339,11 +3247,11 @@ msgstr "群组新增完毕" msgid "Group created: %1" msgstr "群组 %1 新增完毕" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "群组没有这个æˆå‘˜" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "找ä¸åˆ°ç¾¤ç»„" @@ -3375,19 +3283,19 @@ msgstr "群组之" msgid "Group:" msgstr "群组:" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "群组" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "ä¸èƒ½å°†ç¾¤ç»„设为群组内æˆå‘˜" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:82 msgid "Groups matching search criteria" msgstr "ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„群组" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowRequestor:77 msgid "Groups this user belongs to" msgstr "使用者所属的群组" @@ -3407,11 +3315,11 @@ msgstr "HTML 属性" msgid "Health Insurance" msgstr "å¥ä¿è¡¥åŠ©èº«ä»½" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: 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:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "嗨,%1" @@ -3428,19 +3336,17 @@ msgstr "å„项业务窗å£" msgid "Hidden" msgstr "éšè—" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "纪录" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) msgid "History of the group %1" msgstr "群组 %1 的纪录" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) msgid "History of the user %1" msgstr "使用者 %1 的纪录" @@ -3448,7 +3354,7 @@ msgstr "使用者 %1 的纪录" msgid "HomePhone" msgstr "ä½å¤„电è¯" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "主页" @@ -3456,13 +3362,13 @@ msgstr "主页" msgid "Hotel Expense" msgstr "ä½å®¿è´¹" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "我有 %quant(%1,ä»½å›ºä½“æ…æ‹Œå™¨)。" -#: NOT FOUND IN SOURCE -msgid "I have [quant,_1,concrete mixer]." +#: html/Search/Build.html:637 +msgid "I'm lost" msgstr "" #: NOT FOUND IN SOURCE @@ -3473,11 +3379,11 @@ msgstr "身分è¯å·" msgid "ID Type" msgstr "身分类别" -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "ç¼–å·" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "身份" @@ -3485,23 +3391,23 @@ msgstr "身份" msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "若签核å•é­åˆ°é©³å›žï¼Œåˆ™è¿žå¸¦é©³å›žåŽŸç”³è¯·å•,并删除其它相关的待签核事项" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "" +msgstr "若没有指定申请者,则以此使用者作为申请者" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." msgstr "申请å•若没有指定表å•,则将它新增在此表å•内" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 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:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" msgstr "若您已更新以上数æ®ï¼Œè¯·è®°å¾—按一下" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "%1 的值错误" @@ -3509,7 +3415,7 @@ msgstr "%1 的值错误" msgid "Image" msgstr "图片" -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "此字段值ä¸å¯æ›´åЍ" @@ -3518,38 +3424,42 @@ msgid "Import" msgstr "汇入" #: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "列出åœç”¨çš„自订字段" -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." msgstr "列出åœç”¨çš„群组" -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." msgstr "列出åœç”¨çš„表å•" -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "列出åœç”¨çš„使用者" +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Indirect Employee" msgstr "直接/间接员工" -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "åˆå§‹ä¼˜å…ˆé¡ºä½" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "åˆå§‹ä¼˜å…ˆé¡ºä½" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "输入错误" @@ -3557,20 +3467,20 @@ msgstr "输入错误" msgid "Interest noted" msgstr "登记æˆåŠŸ" -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "内部错误" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "内部错误:%1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "错误的群组类别" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "错误的æƒé™" @@ -3578,32 +3488,32 @@ msgstr "错误的æƒé™" msgid "Invalid Type" msgstr "错误的类型" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "错误的数æ®" #: NOT FOUND IN SOURCE msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "错误的承办人。改为预设承办人「nobodyã€ã€‚" +msgstr "错误的承办人。改为预设承办人‘nobody’。" -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "错误的表å•" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "错误的æƒé™" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "%1 的值错误" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "错误的自订字段值" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "错误的状æ€å€¼" @@ -3611,18 +3521,22 @@ msgstr "错误的状æ€å€¼" msgid "IssueStatement" msgstr "é€å‡ºé™ˆè¿°" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "请ç»å¯¹ä¸è¦è®©æœªå…·æƒé™çš„使用者执行此工具程åºã€‚" -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "它接å—ä¸‹åˆ—å‚æ•°ï¼š" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Item Name" msgstr "å“å" @@ -3639,7 +3553,7 @@ msgstr "待签核项目" msgid "Jan" msgstr "一月" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "01" @@ -3651,7 +3565,7 @@ msgstr "一月" msgid "Job" msgstr "èŒç§°" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "加入或离开此群组" @@ -3659,7 +3573,7 @@ msgstr "加入或离开此群组" msgid "Jul" msgstr "七月" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "07" @@ -3667,7 +3581,7 @@ msgstr "07" msgid "July" msgstr "七月" -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "全部信æ¯" @@ -3675,7 +3589,7 @@ msgstr "全部信æ¯" msgid "Jun" msgstr "六月" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "06" @@ -3707,23 +3621,23 @@ msgstr "é“¾æŽ¥å·æ ‡" msgid "Lang" msgstr "使用语言" -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" msgstr "语言" -#: html/Ticket/Elements/Tabs:74 +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "" + +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "上次更新" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "上次è”络" -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" - -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "上次è”络日期" @@ -3731,7 +3645,7 @@ msgstr "上次è”络日期" msgid "Last Notified" msgstr "上次通知" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "上次更新" @@ -3739,19 +3653,19 @@ msgstr "上次更新" msgid "LastUpdated" msgstr "上次更新" -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" msgstr "上次更新者" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "剩馀时间" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "å…许这å使用者登入" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" msgstr "内部æˆå‘˜ï¼ˆå…·æœ‰ä¸ªäººæƒé™ï¼‰" @@ -3763,33 +3677,37 @@ msgstr "é™åˆ¶æ‰¿åŠžäººä¸º %1 到%2" 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:1086 +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "此链接已存在" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "无法新增链接" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "链接(%1)新增完毕" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "链接(%1)删除完毕" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "找ä¸åˆ°é“¾æŽ¥" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "é“¾æŽ¥ç”³è¯·å• #%1" @@ -3798,7 +3716,7 @@ msgstr "é“¾æŽ¥ç”³è¯·å• #%1" msgid "Link ticket %1" msgstr "é“¾æŽ¥ç”³è¯·å• %1" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "链接" @@ -3806,23 +3724,32 @@ msgstr "链接" msgid "List All Users" msgstr "列出所有用户数æ®" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" msgstr "加载" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" msgstr "加载已储存的查询:" -#: html/Admin/Tools/Configuration.html:19 +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "" + +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" msgstr "已加载的 Perl 模å—" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "ä½ç½®" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "登入目录 %1 找ä¸åˆ°æˆ–无法写入\\n。无法执行 RT。" @@ -3835,16 +3762,16 @@ msgstr "纪录等级" msgid "LogToFileNamed" msgstr "纪录档å" -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "使用者:%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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "登入" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "注销" @@ -3852,75 +3779,75 @@ msgstr "注销" msgid "Long-term contractor" msgstr "长期契约员工" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:866 msgid "Lookup type mismatch" msgstr "对应的类别ä¸ç¬¦" -#: html/Search/Bulk.html:83 +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "新增承办人" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "新增现况" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "新增到期日" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "新增解决日期" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" msgstr "新增实际起始日期" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" msgstr "新增应起始日期" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "新增报告日期" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "新增优先顺ä½" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "新增表å•" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "新增主题" +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Male" msgstr "ç”·" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/index.html:78 msgid "Manage custom fields and custom field values" msgstr "管ç†è‡ªè®¢å­—段åŠå­—段值" -#: html/Admin/index.html:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" msgstr "管ç†ç¾¤ç»„åŠæ‰€å±žæˆå‘˜" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" msgstr "管ç†é€‚用于所有表å•的属性与设定" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" msgstr "管ç†å„表å•åŠç›¸å…³å±žæ€§" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "管ç†ä½¿ç”¨è€…与å£ä»¤" @@ -3932,7 +3859,7 @@ msgstr "ç»ç†" msgid "Mar" msgstr "三月" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "03" @@ -3952,33 +3879,33 @@ msgstr "ç¬¦åˆæ ·å¼" msgid "May" msgstr "五月" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "05" -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" msgstr "æˆå‘˜ %1 新增完毕" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" msgstr "æˆå‘˜ %1 删除完毕" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "新增æˆå‘˜å®Œæ¯•" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "æˆå‘˜å·²åˆ é™¤" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "æˆå‘˜æœªåˆ é™¤" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "隶属于" @@ -3990,46 +3917,51 @@ msgstr "注册日期" msgid "MemberOf" msgstr "隶属于" -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "æˆå‘˜" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" msgstr "所属群组 %1 加入完毕" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" msgstr "所属群组 %1 移除完毕" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:61 msgid "Memberships" msgstr "所属群组" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) msgid "Memberships of the user %1" msgstr "使用者 %1 的所属群组" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" msgstr "æ•´åˆå®Œæ¯•" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "æ•´åˆå¤±è´¥ã€‚无法设定 EffectiveId" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "æ•´åˆè¿›" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" msgstr "已整åˆè¿› %1" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "讯æ¯" @@ -4037,19 +3969,15 @@ msgstr "讯æ¯" msgid "Message body not shown because it is too large or is not plain text." msgstr "ä¿¡ä»¶å†…æ–‡ä¸æ˜¯çº¯æ–‡å­—,因此无法显示。" -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" msgstr "无法纪录讯æ¯" -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" msgstr "讯æ¯çºªå½•æˆåŠŸ" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." msgstr "此申请å•的相关讯æ¯ä¸ä¼šå¯„é€ç»™..." @@ -4057,7 +3985,11 @@ msgstr "此申请å•的相关讯æ¯ä¸ä¼šå¯„é€ç»™..." msgid "Misc. Expense" msgstr "æ‚è´¹" -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "" + +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "缺少主键值?(%1)" @@ -4065,7 +3997,7 @@ msgstr "缺少主键值?(%1)" msgid "Missing mandatory fields" msgstr "缺少必填字段" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "行动电è¯" @@ -4073,47 +4005,41 @@ msgstr "行动电è¯" msgid "MobilePhone" msgstr "行动电è¯" -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "更改æƒé™æŽ§åˆ¶æ¸…å•" -#: NOT FOUND IN SOURCE -msgid "Modify Custom Field %1" +#: html/Admin/Elements/ObjectCustomFields:96 +#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) +msgid "Modify Custom Fields which apply to %1 for all %2" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/ObjectCustomFields:98 +#. (loc(lc($Types))) msgid "Modify Custom Fields which apply to all %1" msgstr "更改适用于所有%1的自订字段" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +#: NOT FOUND IN SOURCE msgid "Modify Custom Fields which apply to all queues" msgstr "更改适用于所有表å•的自订字段" -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 msgid "Modify Group Rights" -msgstr "" +msgstr "更改群组æƒé™" -#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" -msgstr "" +msgstr "更改æˆå‘˜" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" -msgstr "" +msgstr "更改æƒé™" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "更改此表å•的模æ¿" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" msgstr "更改此表å•的手续" @@ -4125,37 +4051,34 @@ msgstr "更改系统æƒé™æ¸…å•" msgid "Modify Template %1" msgstr "æ›´æ”¹æ¨¡æ¿ %1" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 msgid "Modify User Rights" -msgstr "" +msgstr "更改使用者æƒé™" #: NOT FOUND IN SOURCE msgid "Modify Workflow" msgstr "更改æµç¨‹" -#: html/Admin/Queues/CustomField.html:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "更改 %1 表å•内的自订字段" -#: html/Admin/Global/CustomField.html:52 +#: NOT FOUND IN SOURCE msgid "Modify a CustomField which applies to all queues" msgstr "更改适用于所有表å•的自订字段" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "更改 %1 表å•内的手续" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "更改适用于所有表å•的手续" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) msgid "Modify associated objects for %1" msgstr "更改适用 %1 的对象" @@ -4163,21 +4086,25 @@ msgstr "更改适用 %1 的对象" msgid "Modify dates for # %1" msgstr "更改 # %1 的日期" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "更改 #%1 的日期" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "æ›´æ”¹ç”³è¯·å• # %1 的日期" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: 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:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." msgstr "更改全域设定的群组æƒé™ã€‚" @@ -4193,108 +4120,110 @@ msgstr "更改全域设定的使用者æƒé™" msgid "Modify global scrips" msgstr "更改全域手续" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: 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:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "更改全域设定的使用者æƒé™ã€‚" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "更改群组数æ®åŠåˆ é™¤ç¾¤ç»„" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" msgstr "更改自订字段 %1 的群组æƒé™" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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:24 html/Admin/Queues/GroupRights.html:28 +#: 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:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "更改此群组的æˆå‘˜åå•" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "更改个人的å¸å·ä¿¡æ¯" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: 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:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" msgstr "æ›´æ”¹ç”³è¯·å• #%1 链接到的人员" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "æ›´æ”¹è¡¨å• %1 的手续" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "更改适用于所有表å•的模æ¿" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: 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:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "更改表å•视察员" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "更改使用者 %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "æ›´æ”¹ç”³è¯·å• # %1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: 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:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "更改申请å•" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) msgid "Modify user rights for custom field %1" msgstr "更改自订字段 %1 的使用者æƒé™" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "æ›´æ”¹è¡¨å• %1 的使用者æƒé™" @@ -4311,31 +4240,35 @@ msgstr "更改æµç¨‹ %1" msgid "Modify workflows which apply to all queues" msgstr "更改适用于所有表å•çš„æµç¨‹" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" msgstr "更改æƒé™æ¸…å•" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "更改自己是å¦å±žäºŽæŸç¾¤ç»„" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "更改表å•视察员" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "更改手续" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "更改个人å¸å·" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "更改模æ¿" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "更改申请å•" @@ -4343,7 +4276,7 @@ msgstr "更改申请å•" msgid "Mon" msgstr "星期一" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "星期一" @@ -4351,7 +4284,7 @@ msgstr "星期一" msgid "More" msgstr "更多" -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "关于 %1 的进一步信æ¯" @@ -4368,23 +4301,23 @@ msgstr "移动" msgid "Move All" msgstr "全移" -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "下移" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "上移" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "多é‡" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "必须指定 'Name' 的属性" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" msgstr "我的 %1 申请å•" @@ -4401,26 +4334,22 @@ msgstr "表å•申请追踪" msgid "My Tickets" msgstr "表å•处ç†" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "表å•签核" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" msgstr "我已储存的查询" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "åç§°" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "å¸å·å·²æœ‰äººä½¿ç”¨" -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Nationality" msgstr "国ç±" @@ -4429,23 +4358,19 @@ msgstr "国ç±" msgid "Need approval from system administrator" msgstr "需先由系统管ç†å‘˜è¿›è¡Œæ‰¹å‡†" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "从未更动" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "新建立" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "新增关系" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "æ–°çš„å£ä»¤" @@ -4453,14 +4378,10 @@ msgstr "æ–°çš„å£ä»¤" msgid "New Pending Approval" msgstr "新的待签核事项" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" msgstr "新增查询" -#: NOT FOUND IN SOURCE -msgid "New Relationships" -msgstr "" - #: NOT FOUND IN SOURCE msgid "New Request" msgstr "表å•申请" @@ -4473,27 +4394,23 @@ msgstr "新增查询" msgid "New Watchers" msgstr "新增视察员" -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "新增自订字段" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "新增群组" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "æ–°çš„å£ä»¤" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "é€å‡ºæ–°å£ä»¤é€šçŸ¥" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "新增表å•" @@ -4501,11 +4418,11 @@ msgstr "新增表å•" msgid "New request" msgstr "æå‡ºç”³è¯·å•" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "新增æƒé™" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "新增手续" @@ -4513,27 +4430,27 @@ msgstr "新增手续" msgid "New search" msgstr "釿–°æŸ¥è¯¢" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "æå‡ºç”³è¯·å•" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "没有新申请å•" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "新增使用者" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "新使用者åå­—" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "新视察员" @@ -4545,11 +4462,11 @@ msgstr "更新窗å£è®¾å®š" msgid "New workflow" msgstr "新增æµç¨‹" -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "下一项" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" msgstr "下一页" @@ -4561,7 +4478,7 @@ msgstr "下一页" msgid "NickName" msgstr "昵称" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "昵称" @@ -4573,35 +4490,35 @@ msgstr "å°å¤œç­" msgid "No" msgstr "å¦" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "尚未定义类别" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "无自订字段" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" msgstr "尚未定义自订字段" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" msgstr "尚未定义群组" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" msgstr "没有查询" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" msgstr "尚未定义表å•" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "找ä¸åˆ° RT ä½¿ç”¨è€…ã€‚è¯·å‘ RT 管ç†å‘˜æŸ¥è¯¢ã€‚\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "没有模æ¿" @@ -4617,11 +4534,11 @@ msgstr "未指定申请å•ã€‚é€€å‡ºç”³è¯·å•æ›´æ”¹\\n\\n" msgid "No Workflow" msgstr "没有æµç¨‹" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "æš‚ä¸å¤„ç†" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "未指定字段" @@ -4629,7 +4546,7 @@ msgstr "未指定字段" msgid "No command found\\n" msgstr "找ä¸åˆ°å‘½ä»¤" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" msgstr "没有对这å使用者的评论" @@ -4637,52 +4554,53 @@ msgstr "没有对这å使用者的评论" msgid "No correspondence attached" msgstr "没有附上申请å•回å¤" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "没有对 %1 çš„æè¿°" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "未指定群组" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:52 msgid "No groups matching search criteria found." msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„群组。" -#: lib/RT/Ticket_Overlay.pm:2475 +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" msgstr "没有附上讯æ¯" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "没有设定å£ä»¤" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" msgstr "没有新增表å•çš„æƒé™" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "æ²¡æœ‰åœ¨è¡¨å• '%1' 新增申请å•çš„æƒé™" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "没有新增使用者的æƒé™" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" msgstr "没有显示该申请å•çš„æƒé™" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" msgstr "æ²¡æœ‰æ£€è§†ç”³è¯·å•æ›´æ–°çš„æƒé™" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "未指定å•ä½" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." msgstr "未指定å•ä½ã€‚" @@ -4690,23 +4608,27 @@ msgstr "未指定å•ä½ã€‚" msgid "No protocol specified in %1" msgstr "%1 内未指定åè®®" -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„表å•。" -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "找ä¸åˆ°æƒé™" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "没有选定æƒé™" -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." msgstr "没有è¦è¿›è¡Œçš„æŸ¥è¯¢" -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" msgstr "没有标题" @@ -4714,7 +4636,7 @@ msgstr "没有标题" msgid "No ticket id specified" msgstr "未指定申请å•ç¼–å·" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "未指定更动报告类别" @@ -4722,7 +4644,7 @@ msgstr "未指定更动报告类别" msgid "No user or email address specified" msgstr "未指定使用者或电å­é‚®ä»¶åœ°å€" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„使用者。" @@ -4730,15 +4652,15 @@ msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„使用者。" 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:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "_Set 没有收到任何值!\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "没有人" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "字段ä¸å­˜åœ¨ï¼Ÿ" @@ -4754,15 +4676,15 @@ msgstr "未设定æˆä»Ž %2 å†…æ’·å– %1" msgid "Not logged in" msgstr "尚未登入" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "尚未登入" -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "尚未设定" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "尚未完工。" @@ -4770,7 +4692,7 @@ msgstr "尚未完工。" msgid "Not yet implemented...." msgstr "尚未完工..." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "备注" @@ -4778,7 +4700,7 @@ msgstr "备注" msgid "Notes:" msgstr "备注:" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "无法é€å‡ºé€šçŸ¥" @@ -4792,11 +4714,11 @@ msgstr "以评论方å¼é€šçŸ¥ç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" #: etc/initialdata:93 etc/upgrade/3.1.17/content:6 msgid "Notify Ccs" -msgstr "" +msgstr "通知副本收件人" #: etc/initialdata:89 etc/upgrade/3.1.17/content:2 msgid "Notify Ccs as Comment" -msgstr "" +msgstr "以评论方å¼é€šçŸ¥å‰¯æœ¬æ”¶ä»¶äºº" #: etc/initialdata:128 msgid "Notify Other Recipients" @@ -4858,7 +4780,7 @@ msgstr "通知对象" msgid "Nov" msgstr "å一月" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "11" @@ -4874,19 +4796,33 @@ msgstr "104eHRMS 接å£" msgid "OK" msgstr "确定" -#: lib/RT/Record.pm:200 +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "" + +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "无法新增对象" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "对象新增完毕" -#: NOT FOUND IN SOURCE +#: lib/RT/Record.pm:121 +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 的对象" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:901 msgid "Object type mismatch" msgstr "对象类别ä¸ç¬¦" @@ -4898,7 +4834,7 @@ msgstr "在èŒçжæ€" msgid "Oct" msgstr "åæœˆ" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "10" @@ -4910,19 +4846,19 @@ msgstr "åæœˆ" msgid "Office Phone" msgstr "办公室电è¯" -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" msgstr "离线" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" msgstr "离线编辑" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" msgstr "离线上载" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "等于" @@ -4948,7 +4884,7 @@ msgstr "æ‰¿åŠžäººæ”¹å˜æ—¶" #: etc/initialdata:177 etc/upgrade/3.1.17/content:15 msgid "On Priority Change" -msgstr "" +msgstr "ä¼˜å…ˆé¡ºä½æ”¹å˜æ—¶" #: etc/initialdata:192 msgid "On Queue Change" @@ -4966,29 +4902,25 @@ msgstr "çŽ°å†µæ”¹å˜æ—¶" msgid "On Transaction" msgstr "å‘生更动时" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "仅显示 %1 ä¹‹åŽæ–°å¢žçš„申请å•" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "仅显示 %1 之剿–°å¢žçš„申请å•" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "å¼€å¯" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "å¼€å¯" -#: NOT FOUND IN SOURCE -msgid "Open requests" -msgstr "" - -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" msgstr "å¼€å¯çš„申请å•" @@ -5020,7 +4952,7 @@ msgstr "选项æè¿°" msgid "Option Name" msgstr "选项åç§°" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" msgstr "æŽ’åºæ–¹å¼" @@ -5028,7 +4960,7 @@ msgstr "æŽ’åºæ–¹å¼" msgid "Ordering and sorting" msgstr "顺åºä¸ŽæŽ’åºæ–¹å¼" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "组织åç§°" @@ -5036,7 +4968,7 @@ msgstr "组织åç§°" msgid "Organization:" msgstr "组织:" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "原申请å•:#%1" @@ -5049,15 +4981,15 @@ msgstr "其它e-mailå¸å· (ä»…e-mail通知;多笔å¸å·è¯·ç”¨é€—å·','区隔)" msgid "Out of range" msgstr "期é™å¤–" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" msgstr "已纪录å‘é€çš„评论邮件" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" msgstr "已纪录å‘é€çš„邮件" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "优先顺ä½éšæ—¶é—´å¢žåŠ è°ƒæ•´ä¸º" @@ -5077,15 +5009,15 @@ msgstr "å–代全域æƒé™ %1" msgid "Overview" msgstr "总览" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "承办申请å•" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "承办申请å•" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" msgstr "承办人" @@ -5093,11 +5025,11 @@ msgstr "承办人" msgid "Owner changed from %1 to %2" msgstr "承办人已从 %1 改为 %2" -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." msgstr "无法设定承办人。" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "强制将承办人从 %1 改为 %2" @@ -5114,12 +5046,12 @@ msgstr "承办人电è¯" msgid "Page #" msgstr " " -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" msgstr "第 %1/%2 页" -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "呼å«å™¨" @@ -5135,7 +5067,7 @@ msgstr "呼å«å‚æ•°" msgid "Parent" msgstr "上级" -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "æ¯ç”³è¯·å•" @@ -5143,28 +5075,45 @@ msgstr "æ¯ç”³è¯·å•" msgid "Park Space" msgstr "åœè½¦ä½ç”³è¯·" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "å£ä»¤" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "å£ä»¤æç¤º" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "å£ä»¤å¤ªçŸ­" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "å£ä»¤ï¼š%1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." msgstr "å£ä»¤ç¡®è®¤å¤±è´¥ã€‚" -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "å£ä»¤ç¡®è®¤å¤±è´¥ã€‚您的å£ä»¤å¹¶æœªæ”¹å˜ã€‚" @@ -5176,7 +5125,7 @@ msgstr "请选择表å•åç§°" msgid "Pending Approval" msgstr "等待签核" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "人员" @@ -5188,11 +5137,11 @@ msgstr "æ‹¥æœ‰è¡¨å•æƒé™äººå‘˜" msgid "Perform a user-defined action" msgstr "执行使用者自订的动作" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" msgstr "Perl 设定" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "æƒé™ä¸è¶³" @@ -5208,7 +5157,7 @@ msgstr "拥有æƒé™è¡¨å•列表:" msgid "Personal" msgstr "代ç†äººç¾¤ç»„" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "代ç†äººç¾¤ç»„" @@ -5220,11 +5169,11 @@ msgstr "个人首页" msgid "Personal Todo" msgstr "ç§äººå¾…办事项" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "代ç†äººç¾¤ç»„" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "代ç†äººç¾¤ç»„:" @@ -5256,7 +5205,7 @@ msgstr "电è¯" msgid "Phone number" msgstr "电è¯å·ç " -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "电è¯å·ç " @@ -5324,7 +5273,7 @@ msgstr "èŒçº§" msgid "Pref" msgstr "å好" -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "å好" @@ -5332,15 +5281,15 @@ msgstr "å好" msgid "Prefs" msgstr "个人信æ¯" -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "预备动作完毕" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "上一项" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" msgstr "上一页" @@ -5352,20 +5301,20 @@ msgstr "å‰ä¸€é¡µ" msgid "Pri" msgstr "优先顺ä½" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "找ä¸åˆ°å•ä½ %1。" -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "优先顺ä½" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "优先顺ä½èµ·å§‹å€¼" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" msgstr "éšç§è®¾å®šï¼š" @@ -5373,12 +5322,12 @@ msgstr "éšç§è®¾å®šï¼š" msgid "Privileged" msgstr "内部æˆå‘˜" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "内部æˆå‘˜çжæ€ï¼š%1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "内部æˆå‘˜" @@ -5418,19 +5367,19 @@ msgstr "公共事务区" msgid "Purging stale data: %1" msgstr "移除过期数æ®: %1" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" msgstr "查询" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" msgstr "建立查询" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "表å•" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" @@ -5444,7 +5393,7 @@ msgstr "找ä¸åˆ°è¡¨å• '%1'\\n" msgid "Queue Keyword Selections" msgstr "表å•关键è¯é€‰å–" -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "表å•åç§°" @@ -5468,19 +5417,19 @@ msgstr "è¡¨å•æ‰‹ç»­" msgid "Queue Setup" msgstr "表å•设定" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "表å•已存在" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" msgstr "无法新增表å•" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 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:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" msgstr "è¡¨å•æ–°å¢žå®Œæ¯•" @@ -5488,11 +5437,11 @@ msgstr "è¡¨å•æ–°å¢žå®Œæ¯•" msgid "Queue is not specified." msgstr "未指定表å•。" -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" msgstr "找ä¸åˆ°è¡¨å•" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "表å•" @@ -5500,24 +5449,24 @@ msgstr "表å•" msgid "Quick Search" msgstr "表å•现况" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "表å•一览" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" msgstr "快速建立申请å•" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "RSS" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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 版" @@ -5534,7 +5483,7 @@ msgstr "RT %1ã€‚ç‰ˆæƒæ‰€æœ‰ 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\ 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:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "RT 管ç†é¡µé¢" @@ -5554,7 +5503,7 @@ msgstr "RT 设定错误" msgid "RT Critical error. Message not recorded!" msgstr "RT è‡´å‘½é”™è¯¯ã€‚è®¯æ¯æœªè¢«çºªå½•。" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "RT 错误" @@ -5566,19 +5515,15 @@ msgstr "RT 收到从自己寄出的邮件 (%1)。" msgid "RT Recieved mail (%1) from itself." msgstr "RT 收到从自己寄出的邮件 (%1)。" -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT 自助æœåŠ¡/已解决的申请å•" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" msgstr "RT çš„å˜æ•°" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "RT 一览" @@ -5594,11 +5539,15 @@ msgstr "RT 无法从外部数æ®åº“查询找到申请人信æ¯" msgid "RT couldn't find the queue: %1" msgstr "RT 找ä¸åˆ°è¡¨å•:%1" +#: html/Elements/SetupSessionCookie:90 +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/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "%1 专用æµç¨‹ç³»ç»Ÿ" @@ -5615,14 +5564,6 @@ msgstr "RT 已执行您的命令" 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 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 "" - -#: 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 "" - #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "RT 认为这å¯èƒ½æ˜¯é€€ä¿¡" @@ -5647,10 +5588,6 @@ msgstr "系统è¿è¡Œè§’色" msgid "RT::Ticket-Role" msgstr "申请å•è¿è¡Œè§’色" -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT_System" msgstr "系统讯æ¯" @@ -5659,7 +5596,7 @@ msgstr "系统讯æ¯" msgid "Read Only" msgstr "åªè¯»" -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "真实姓å" @@ -5671,31 +5608,31 @@ msgstr "真实姓å" msgid "Really reject this ticket?" msgstr "您确定è¦é©³å›žè¿™å¼ ç”³è¯·å•å—?" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "已加入 %1 为å‚考本申请å•" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "已移除 %1 为å‚考本申请å•" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" msgstr "已加入å‚è€ƒç”³è¯·å• %1" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" msgstr "已移除å‚è€ƒç”³è¯·å• %1" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "被å‚考" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "å‚考" @@ -5715,48 +5652,44 @@ msgstr "调整查询æ¡ä»¶" msgid "Refresh" msgstr "æ›´æ–°" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "æ¯ %1 分钟更新页é¢" -#: NOT FOUND IN SOURCE -msgid "Relationships" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Remove" msgstr "移除" -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "移除管ç†å‘˜å‰¯æœ¬" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "移除副本" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "移除申请人" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "回å¤" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" msgstr "回å¤åœ°å€" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" msgstr "回å¤ç”³è¯·äºº" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "对申请å•进行回å¤" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "回å¤ç”³è¯·å•" @@ -5768,7 +5701,7 @@ msgstr "上下ç­åˆ·å¡" msgid "Reported on" msgstr "åˆ°èŒæ—¥æœŸ" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "申请人" @@ -5796,24 +5729,24 @@ msgstr "申请人" msgid "RequestorAddresses" msgstr "申请人地å€" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "申请人" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "申请å•å¤„ç†æœŸé™" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" -msgstr "未指定必è¦çš„傿•°ã€Œ%1ã€" +msgstr "未指定必è¦çš„傿•°â€˜%1’" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "é‡è®¾" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "ä½å¤„" @@ -5821,16 +5754,16 @@ msgstr "ä½å¤„" msgid "Resolution" msgstr "解决状æ€" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "解决" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "è§£å†³ç”³è¯·å• #%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "已解决" @@ -5842,7 +5775,7 @@ msgstr "回å¤ç”³è¯·äºº" msgid "Responsibility Type" msgstr "责任区分" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "结果" @@ -5850,11 +5783,11 @@ msgstr "结果" msgid "Results per page" msgstr "æ¯é¡µåˆ—出几笔结果" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "冿¬¡è¾“å…¥å£ä»¤" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" msgstr "å¤åŽŸ" @@ -5862,44 +5795,44 @@ msgstr "å¤åŽŸ" 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:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "æƒé™ä»£ç†å®Œæ¯•" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "æƒé™è®¾å®šå®Œæ¯•" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "æƒé™åŠ è½½å®Œæ¯•" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "无法撤消æƒé™" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "找ä¸åˆ°æƒé™" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "æƒé™å¹¶æœªåŠ è½½ã€‚" -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "æƒé™æ’¤æ¶ˆå®Œæ¯•" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "æƒé™åŠä»£ç†äºº" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "无法将æƒé™èµ‹äºˆ %1" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "无法撤消 %1 çš„æƒé™" @@ -5912,7 +5845,7 @@ msgstr "角色æˆå‘˜" msgid "Role Name" msgstr "角色åç§°" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "角色" @@ -5920,7 +5853,7 @@ msgstr "角色" msgid "RootApproval" msgstr "交由系统管ç†å‘˜ç­¾æ ¸" -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" msgstr "æ¯é¡µç¬”æ•°" @@ -5944,31 +5877,37 @@ msgstr "SMTP æœåС噍" msgid "Sat" msgstr "星期六" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "星期六" -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" msgstr "储存" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "储存更改" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" -msgstr "" +msgstr "储存å好" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "储存更改" -#: html/Search/Elements/EditSearches:1 +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "" + +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" msgstr "已储存的查询" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" @@ -5982,23 +5921,23 @@ msgstr "讯æ¯é€šçŸ¥åŠ¨ä½œ" msgid "Scrip Condition" msgstr "讯æ¯é€šçŸ¥æ¡ä»¶" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "手续新增完毕" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" -msgstr "" +msgstr "手续字段" #: NOT FOUND IN SOURCE msgid "Scrip Name" msgstr "讯æ¯åç§°" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "手续删除完毕" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "手续" @@ -6010,11 +5949,11 @@ msgstr "讯æ¯é€šçŸ¥" msgid "Scrips for %1\\n" msgstr "%1 的手续\\n" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" msgstr "适用于所有表å•的手续" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "查询" @@ -6022,12 +5961,17 @@ msgstr "查询" msgid "Search Criteria" msgstr "查询æ¡ä»¶" -#: html/Approvals/Elements/PendingMyApproval:38 +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "ç­¾æ ¸å•æŸ¥è¯¢" -#: NOT FOUND IN SOURCE -msgid "Search for articles" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" msgstr "" #: NOT FOUND IN SOURCE @@ -6042,31 +5986,35 @@ msgstr "二" msgid "Second-level Users" msgstr "二阶主管员工" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" msgstr "安全性:" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "See custom fields" msgstr "查阅自订字段" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" msgstr "查阅é€å‡ºçš„电å­é‚®ä»¶åŠæ”¶ä»¶äºº" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" msgstr "查阅申请å•内的ç§äººè¯„论" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" msgstr "æŸ¥é˜…ç”³è¯·å•æ€»è§ˆ" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "SeeCustomField" msgstr "查阅自订字段" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 msgid "SeeQueue" msgstr "查阅表å•" @@ -6078,71 +6026,79 @@ msgstr "选择" msgid "Select All" msgstr "全选" -#: NOT FOUND IN SOURCE -msgid "Select a Class" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 msgid "Select a Custom Field" msgstr "选择自订字段" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" -msgstr "" - -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" msgstr "选择群组" -#: NOT FOUND IN SOURCE +#: 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:24 html/Admin/Users/index.html:27 +#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 msgid "Select a user" msgstr "选择使用者" -#: NOT FOUND IN SOURCE -msgid "Select class" -msgstr "" - -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +#: html/Admin/Elements/CustomFieldTabs:90 msgid "Select custom field" msgstr "选择自订字段" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: 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:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "选择多é‡é¡¹ç›®" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "选择å•一项目" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" msgstr "选择表å•" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "选择手续" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "选择模æ¿" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:61 msgid "Select up to %1 values" msgstr "选择最多 %1 个值" -#: html/Admin/Elements/UserTabs:46 +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "选择使用者" @@ -6154,19 +6110,19 @@ msgstr "选择æµç¨‹" msgid "SelectExternal" msgstr "系统选项" -#: lib/RT/CustomField_Overlay.pm:35 +#: NOT FOUND IN SOURCE msgid "SelectMultiple" msgstr "多é‡é€‰é¡¹" -#: lib/RT/CustomField_Overlay.pm:34 +#: NOT FOUND IN SOURCE msgid "SelectSingle" msgstr "å•一选项" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:58 msgid "Selected Custom Fields" msgstr "已选å–的自订字段" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:59 msgid "Selected objects" msgstr "已选å–的对象" @@ -6204,11 +6160,11 @@ msgstr "寄信给特定的副本åŠå¯†ä»¶å‰¯æœ¬æ”¶ä»¶äºº" #: etc/initialdata:94 etc/upgrade/3.1.17/content:7 msgid "Sends mail to the Ccs" -msgstr "" +msgstr "寄信给副本收件人" #: etc/initialdata:90 etc/upgrade/3.1.17/content:3 msgid "Sends mail to the Ccs as a comment" -msgstr "" +msgstr "以评论方å¼å¯„信给副本收件人" #: etc/initialdata:102 msgid "Sends mail to the administrative Ccs" @@ -6226,67 +6182,59 @@ msgstr "寄信给申请人" msgid "Sep" msgstr "乿œˆ" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "09" -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" - #: NOT FOUND IN SOURCE msgid "September" msgstr "乿œˆ" #: NOT FOUND IN SOURCE msgid "Setting %1's 'Disabled' property to %2" -msgstr "%1 的「åœç”¨ã€å±žæ€§å·²è®¾ä¸º %2" +msgstr "%1 的‘åœç”¨â€™å±žæ€§å·²è®¾ä¸º %2" #: NOT FOUND IN SOURCE msgid "Shift Type" msgstr "ç­åˆ«å±žæ€§" -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" msgstr "显示" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" -msgstr "" +msgstr "显示待签核申请å•" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" msgstr "显示字段" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "显示结果" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "显示已批准的签核å•" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "显示基本信æ¯" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "显示已驳回的签核å•" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "显示细节" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "显示待处ç†çš„签核å•" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "显示尚待他人批准的签核å•" @@ -6298,43 +6246,47 @@ msgstr "显示申请å•内的ç§äººè¯„论" msgid "Show ticket summaries" msgstr "æ˜¾ç¤ºç”³è¯·å•æ‘˜è¦" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" msgstr "显示æƒé™æ¸…å•" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" msgstr "显示寄é€é‚®ä»¶" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" msgstr "显示已储存的查询" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "显示手续" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "显示模æ¿" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "显示申请å•" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "显示申请å•的评论" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "登记æˆä¸ºç”³è¯·äººæˆ–副本收件人" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "登记æˆä¸ºç®¡ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "ç­¾åæ¡£" @@ -6342,22 +6294,26 @@ msgstr "ç­¾åæ¡£" msgid "Signed in as %1" msgstr "使用者:%1" -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "å•一" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 msgid "Skip Menu" msgstr "略过选å•" -#: html/Admin/Elements/AddCustomFieldValue:27 +#: html/Search/Elements/EditFormat:78 +msgid "Small" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 msgid "Sort" msgstr "顺åº" -#: NOT FOUND IN SOURCE -msgid "Sort Order" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Sort key" msgstr "æŽ’åºæ–¹å¼" @@ -6370,11 +6326,7 @@ msgstr "ç»“æžœæŽ’åºæ–¹å¼" msgid "SortOrder" msgstr "排åºé¡ºåº" -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" - -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" msgstr "å…³å¡" @@ -6394,7 +6346,7 @@ msgstr "延宕" msgid "Start page" msgstr "首页" -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "实际起始日" @@ -6402,7 +6354,7 @@ msgstr "实际起始日" msgid "Started date '%1' could not be parsed" msgstr "无法解读起始日期 '%1" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "应起始日" @@ -6414,11 +6366,11 @@ msgstr "应起始日" msgid "Starts date '%1' could not be parsed" msgstr "无法解读起始日期 '%1" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "å·ž" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "现况" @@ -6426,8 +6378,7 @@ msgstr "现况" msgid "Status Change" msgstr "çŽ°å†µæ”¹å˜æ—¶" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" msgstr "现况从 %1 改为 %2" @@ -6435,69 +6386,65 @@ msgstr "现况从 %1 改为 %2" msgid "StatusChange" msgstr "çŽ°å†µæ”¹å˜æ—¶" -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "å¼ºåˆ¶æ›´æ¢æ‰¿åŠžäºº" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" msgstr "强制承办申请å•" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" msgstr "强制承办申请å•" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) -msgid "Stolen from %1 " +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: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 +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "主题" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "标题已改为 %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "é€å‡º" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "é€å‡ºæµç¨‹" -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" msgstr "设定æˆåŠŸ" -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Sun" msgstr "星期日" -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "星期日" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "系统管ç†å‘˜" @@ -6513,11 +6460,11 @@ msgstr "è‡ªåŠ¨åŒæ­¥104HRMS" msgid "Synchronizing HRMS data. This may take a while..." msgstr "æ­£åœ¨åŒæ­¥åŒ– HRMS 人事系统数æ®ã€‚请ç¨å¾…..." -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "系统" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" msgstr "系统设定" @@ -6525,7 +6472,7 @@ msgstr "系统设定" msgid "System Defined" msgstr "系统定义" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" msgstr "系统错误" @@ -6537,19 +6484,24 @@ msgstr "系统错误。设定æƒé™å¤±è´¥ã€‚" msgid "System Error. right not granted" msgstr "系统错误。设定æƒé™å¤±è´¥ã€‚" +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "System Rights" msgstr "系统æƒé™" -#: html/Admin/Tools/index.html:2 +#: html/Admin/Tools/index.html:47 msgid "System Tools" msgstr "系统工具" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "系统错误。æƒé™ä»£ç†å¤±è´¥ã€‚" -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "系统错误。设定æƒé™å¤±è´¥ã€‚" @@ -6557,7 +6509,7 @@ msgstr "系统错误。设定æƒé™å¤±è´¥ã€‚" msgid "System error. Unable to grant rights." msgstr "系统错误。无法设定æƒé™ã€‚" -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "系统群组" @@ -6569,7 +6521,7 @@ msgstr "系统内部用" msgid "SystemRolegroup for internal use" msgstr "内部使用的系统角色群组" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "TEST_STRING" @@ -6577,19 +6529,19 @@ msgstr "TEST_STRING" msgid "TabbedUI" msgstr "页签接å£" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "å—ç†" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" msgstr "自行承办申请å•" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" msgstr "自行承办申请å•" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "å·²å—ç†" @@ -6597,11 +6549,11 @@ msgstr "å·²å—ç†" msgid "Task" msgstr "工作事项" -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "模æ¿" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "æ¨¡æ¿ #%1" @@ -6618,11 +6570,11 @@ msgstr "é€šçŸ¥æ¨¡æ¿æè¿°" msgid "Template Name" msgstr "通知模æ¿åç§°" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "模æ¿å·²åˆ é™¤" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "找ä¸åˆ°æ¨¡æ¿" @@ -6630,11 +6582,11 @@ msgstr "找ä¸åˆ°æ¨¡æ¿" msgid "Template not found\\n" msgstr "找ä¸åˆ°æ¨¡æ¿\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "模æ¿å‰–æžå®Œæ¯•" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "模æ¿" @@ -6650,33 +6602,33 @@ msgstr "找ä¸åˆ° %1 的模æ¿\\n" msgid "Text" msgstr "文字" -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "å·²ç»æ˜¯ç›®å‰å­—段的值" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "è¿™ä¸æ˜¯è¯¥è‡ªè®¢å­—段的值" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "åŒæ ·çš„值" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" msgstr "这项å•ä½å·²ç»æ‹¥æœ‰è¯¥æƒé™" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä¸ªè¡¨å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "这项å•ä½å·²ç»æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "这项å•ä½ä¸æ˜¯è¿™ä¸ªè¡¨å•çš„ %1" @@ -6685,11 +6637,11 @@ msgstr "这项å•ä½ä¸æ˜¯è¿™ä¸ªè¡¨å•çš„ %1" msgid "That principal is not a %1 for this ticket" msgstr "这项å•ä½ä¸æ˜¯è¿™ä»½ç”³è¯·å•çš„ %1" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" msgstr "此表å•ä¸å­˜åœ¨" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "è¿™ä»½ç”³è¯·å•æœ‰å°šæœªè§£å†³çš„附属申请å•" @@ -6697,27 +6649,27 @@ msgstr "è¿™ä»½ç”³è¯·å•æœ‰å°šæœªè§£å†³çš„附属申请å•" msgid "That user already has that right" msgstr "使用者已具有该项æƒé™" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" msgstr "è¯¥ä½¿ç”¨è€…å·²ç»æ‰¿åŠžè¿™ä»½ç”³è¯·å•" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "使用者ä¸å­˜åœ¨" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "è¿™åä½¿ç”¨è€…å·²ç»æ˜¯å†…部æˆå‘˜" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" msgstr "è¿™å使用者属于éžå†…部æˆå‘˜ç¾¤ç»„" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "使用者加入内部æˆå‘˜ç¾¤ç»„完毕" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" @@ -6725,23 +6677,23 @@ msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" msgid "That user is now unprivilegedileged" msgstr "è¿™å使用者已加入éžå†…部æˆå‘˜ç¾¤ç»„" -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" msgstr "使用者å¯èƒ½æ²¡æœ‰æ‰¿åŠžè¡¨å•里的申请å•" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "è¿™ä¸æ˜¯ä¸€ä¸ªæ•°å­—ç¼–å·" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "基本信æ¯" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "申请å•的副本收件人" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "申请å•的管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" @@ -6749,7 +6701,7 @@ msgstr "申请å•的管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äºº" msgid "The comment has been recorded" msgstr "评论已被纪录" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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:" @@ -6757,19 +6709,19 @@ msgstr "下列命令会找到 'general' 表å•内所有è¿ä½œä¸­çš„申请å•, msgid "The following commands were not proccessed:\\n\\n" msgstr "以下命令未被执行:\\n\\n" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "新的字段值设定完æˆã€‚" -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "申请å•的承办人" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "申请å•的申请人" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "该使用者ä¸ä¼šçœ‹è§è¿™äº›è¯„论" @@ -6777,15 +6729,15 @@ msgstr "该使用者ä¸ä¼šçœ‹è§è¿™äº›è¯„论" msgid "Third-" msgstr "三" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:912 msgid "This custom field does not apply to that object" msgstr "此自订字段ä¸é€‚用于该对象" -#: html/Admin/Tools/Configuration.html:5 +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" msgstr "此项功能仅é™ç³»ç»Ÿç®¡ç†å‘˜ä½¿ç”¨" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." msgstr "此讯æ¯ä¼šå¯„ç»™..." @@ -6793,15 +6745,15 @@ msgstr "此讯æ¯ä¼šå¯„ç»™..." msgid "This ticket %1 %2 (%3)\\n" msgstr "ç”³è¯·å• %1 %2 (%3)\\n" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "此工具程åºä¼šè®©ä½¿ç”¨è€…ç»ç”± RT 执行任æ„命令。" -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "此项更动报告没有内容" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "使用者é€å‡ºçš„å‰ %1 份优先处ç†ç”³è¯·å•" @@ -6814,7 +6766,7 @@ msgstr "使用者é€å‡ºçš„å‰ 25 份优先处ç†ç”³è¯·å•" msgid "Thu" msgstr "星期四" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "星期四" @@ -6830,24 +6782,24 @@ msgstr "ç”³è¯·å• # %1 %2" msgid "Ticket # %1 Jumbo update: %2" msgstr "æ›´æ–°ç”³è¯·å• # %1 的全部信æ¯ï¼š%2" -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: 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:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "ç”³è¯·å• #%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" msgstr "ç”³è¯·å• %1" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "ç”³è¯·å• #%1 æˆåŠŸæ–°å¢žäºŽ '%2' 表å•" @@ -6856,12 +6808,12 @@ msgstr "ç”³è¯·å• #%1 æˆåŠŸæ–°å¢žäºŽ '%2' 表å•" msgid "Ticket %1 loaded\\n" msgstr "åŠ è½½ç”³è¯·å• %1\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "ç”³è¯·å• %1:%2" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:74 msgid "Ticket Custom Fields" msgstr "申请å•的自订字段" @@ -6869,7 +6821,7 @@ msgstr "申请å•的自订字段" msgid "Ticket Due" msgstr "表å•å¤„ç†æœŸé™" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "申请å•处ç†çºªå½• # %1 %2" @@ -6890,7 +6842,7 @@ msgstr "表å•è¿è¡ŒæœŸé™" msgid "Ticket Resolved" msgstr "申请å•已解决" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 msgid "Ticket Transactions" msgstr "申请å•的更动" @@ -6902,19 +6854,19 @@ msgstr "表å•ç§ç±»" msgid "Ticket attachment" msgstr "申请å•附件" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "申请å•内容" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "申请å•内容类别" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "内部错误,无法新增申请å•" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "ç”³è¯·å•æ–°å¢žå®Œæ¯•" @@ -6922,7 +6874,7 @@ msgstr "ç”³è¯·å•æ–°å¢žå®Œæ¯•" msgid "Ticket creation failed" msgstr "ç”³è¯·å•æ–°å¢žå¤±è´¥" -#: lib/RT/Transaction_Overlay.pm:502 +#: NOT FOUND IN SOURCE msgid "Ticket deleted" msgstr "申请å•删除完毕" @@ -6934,7 +6886,7 @@ msgstr "找ä¸åˆ°ç”³è¯·å•ç¼–å·" msgid "Ticket killed" msgstr "申请å•删除完毕" -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" msgstr "申请å•çš„æè¿°ä¿¡æ¯" @@ -6950,17 +6902,20 @@ msgstr "申请å•现况已改å˜" msgid "Ticket watchers" msgstr "申请å•视察员" -#: html/Elements/Tabs:46 +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "" + +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 msgid "Tickets" msgstr "申请å•" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 %2" msgstr "ç”³è¯·å• %1 %2" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 by %2" msgstr "ç”³è¯·å• %1 (%2)" @@ -6976,31 +6931,31 @@ msgstr "é€å‡ºçš„申请å•" msgid "Tickets from %1" msgstr "%1 的申请å•" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "批准之åŽï¼Œå¯æŽ¥ç»­å¤„ç†ï¼š" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" msgstr "预计时间" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "剩馀时间" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "å¤„ç†æ—¶é—´" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" msgstr "剩馀时间" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "显示时间" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" msgstr "å·²å¤„ç†æ—¶é—´" @@ -7008,10 +6963,14 @@ msgstr "å·²å¤„ç†æ—¶é—´" msgid "TimeLeft" msgstr "剩馀时间" -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" msgstr "å·²å¤„ç†æ—¶é—´" +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "" + #: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "产生这次更动的差异档:" @@ -7020,7 +6979,7 @@ msgstr "产生这次更动的差异档:" msgid "To generate a diff of this commit:\\n" msgstr "产生这次更动的差异档:\\n" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<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。" @@ -7029,11 +6988,11 @@ msgstr "如果有支æŒã€æ•™è‚²è®­ç»ƒåŠå®šåˆ¶å¼€å‘的需è¦ï¼Œè¯·è¿žç»œ %1。 msgid "Todo" msgstr "待办事项" -#: lib/RT/Ticket_Overlay.pm:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "告知日期" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" msgstr "工具" @@ -7045,24 +7004,24 @@ msgstr "页" msgid "Transaction" msgstr "更动" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "清除更动报告 %1" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "更动报告已新增" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:78 msgid "Transaction Custom Fields" msgstr "更动的自订字段" -#: lib/RT/Transaction_Overlay.pm:92 +#: NOT FOUND IN SOURCE msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "未指定申请å•ç¼–å·ï¼Œæ— æ³•新增更动" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:125 msgid "Transaction->Create couldn't, as you didn't specify an object type and id" msgstr "未指定对象类别åŠç¼–å·ï¼Œæ— æ³•新增更动" @@ -7074,7 +7033,7 @@ msgstr "批次更动时" msgid "TransactionCreate" msgstr "新增更动时" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "ä¸å¯æ›´æ”¹æ›´åŠ¨æŠ¥å‘Š" @@ -7090,23 +7049,19 @@ msgstr "试图删除æŸé¡¹æƒé™ï¼š%1" msgid "Tue" msgstr "星期二" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "星期二" -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "类别" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "尚无实作" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "外部系统登入å¸å·" @@ -7114,16 +7069,21 @@ msgstr "外部系统登入å¸å·" msgid "UnixUsername" msgstr "外部系统登入å¸å·" -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "ä¸å¯è§£çš„å†…å®¹æ–‡å­—ç¼–ç æ–¹å¼ %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "全数显示" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" msgstr "未命å的查询" @@ -7131,15 +7091,15 @@ msgstr "未命å的查询" msgid "Unprivileged" msgstr "éžå†…部æˆå‘˜" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:60 msgid "Unselected Custom Fields" msgstr "未选å–的自订字段" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:61 msgid "Unselected objects" msgstr "未选å–的对象" -#: lib/RT/Transaction_Overlay.pm:562 +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" msgstr "未被å—ç†" @@ -7151,23 +7111,23 @@ msgstr "未命å的查询" msgid "Up" msgstr "上一页" -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "处ç†" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" -msgstr "" +msgstr "全部更新" #: NOT FOUND IN SOURCE msgid "Update ID" msgstr "æ›´æ–°ç¼–å·" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" -msgstr "" +msgstr "更新申请å•" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "更新类别" @@ -7179,7 +7139,7 @@ msgstr "整批更新申请å•" msgid "Update email" msgstr "更新电å­é‚®ä»¶ä¿¡ç®±" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" msgstr "批次更新申请å•" @@ -7187,11 +7147,11 @@ msgstr "批次更新申请å•" msgid "Update name" msgstr "æ›´æ–°å¸å·" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "更新未被记录" -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "更新选择的申请å•" @@ -7199,7 +7159,7 @@ msgstr "更新选择的申请å•" msgid "Update signature" msgstr "更新签章" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "更新申请å•" @@ -7207,58 +7167,58 @@ msgstr "更新申请å•" msgid "Update ticket # %1" msgstr "æ›´æ–°ç”³è¯·å• # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "æ›´æ–°ç”³è¯·å• #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "æ›´æ–°ç”³è¯·å• #%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "更新的内容并éžç”³è¯·å•回å¤ä¹Ÿä¸æ˜¯è¯„论" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "剿¬¡æ›´æ–°" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" msgstr "上载" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:84 msgid "Upload multiple files" msgstr "上载多个档案" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:79 msgid "Upload multiple images" msgstr "上载多份图片" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:85 msgid "Upload one file" msgstr "上载一个档案" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:80 msgid "Upload one image" msgstr "上载一份图片" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:86 msgid "Upload up to %1 files" msgstr "上载最多 %1 个档案" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:81 msgid "Upload up to %1 images" msgstr "上载最多 %1 份图片" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" msgstr "上载您的更动" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" #: NOT FOUND IN SOURCE @@ -7273,7 +7233,7 @@ msgstr "使用者 %1 %2:%3\\n" msgid "User %1 Password: %2\\n" msgstr "使用者 %1 å£ä»¤ï¼š%2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'。" @@ -7290,15 +7250,15 @@ msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'\\n" msgid "User Defined" msgstr "使用者自订" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" -msgstr "" +msgstr "使用者自订的æ¡ä»¶åŠåŠ¨ä½œ" #: NOT FOUND IN SOURCE msgid "User ID" msgstr "使用者 ID" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "使用者 ID" @@ -7306,7 +7266,7 @@ msgstr "使用者 ID" msgid "User Number" msgstr "员工编å·" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "使用者æƒé™" @@ -7318,16 +7278,17 @@ msgstr "使用者设定" msgid "User Shift" msgstr "员工ç­åˆ«" -#: NOT FOUND IN SOURCE +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) 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:252 +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "无法新增使用者:%1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "使用者新增完毕" @@ -7339,11 +7300,11 @@ msgstr "使用者 %1 新增完毕" msgid "User created: %1 (%2)" msgstr "使用者 %1 (%2) 新增完毕" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" msgstr "已加载使用者" @@ -7359,7 +7320,7 @@ msgstr "使用者 %1 已改å为 %2" msgid "User view" msgstr "使用者ç§äººæ•°æ®" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:99 msgid "User-defined groups" msgstr "使用者自定群组" @@ -7367,19 +7328,19 @@ msgstr "使用者自定群组" msgid "UserDefined" msgstr "使用者自定" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "å¸å·" -#: 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 +#: 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:1086 msgid "Users" msgstr "使用者" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "ç¬¦åˆæŸ¥è¯¢æ¡ä»¶çš„使用者" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" msgstr "åˆç†çš„æŸ¥è¯¢" @@ -7387,7 +7348,7 @@ msgstr "åˆç†çš„æŸ¥è¯¢" msgid "ValueOfQueue" msgstr "选择表å•" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "字段值" @@ -7395,15 +7356,11 @@ msgstr "字段值" msgid "View log" msgstr "检视纪录档" -#: NOT FOUND IN SOURCE -msgid "VrijevormEnkele" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "视察" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "以管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è§†å¯Ÿ" @@ -7411,7 +7368,7 @@ msgstr "以管ç†å‘˜å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è§†å¯Ÿ" msgid "Watcher loaded" msgstr "æˆåŠŸåŠ è½½è§†å¯Ÿå‘˜ä¿¡æ¯" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "视察员" @@ -7423,7 +7380,7 @@ msgstr "ç½‘é¡µæ–‡å­—ç¼–ç æ–¹å¼" msgid "Wed" msgstr "星期三" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "星期三" @@ -7457,7 +7414,7 @@ msgstr "å½“ç”³è¯·å•æ›´æ¢æ‰¿åŠžäººæ—¶" #: etc/initialdata:178 etc/upgrade/3.1.17/content:16 msgid "Whenever a ticket's priority changes" -msgstr "" +msgstr "当申请å•çš„ä¼˜å…ˆé¡ºåºæ”¹å˜æ—¶" #: etc/initialdata:193 msgid "Whenever a ticket's queue changes" @@ -7479,19 +7436,11 @@ msgstr "当评论é€è¾¾æ—¶" msgid "Whenever correspondence comes in" msgstr "当回å¤é€è¾¾æ—¶" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "å…¬å¸" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" msgstr "离线工作" @@ -7499,7 +7448,7 @@ msgstr "离线工作" msgid "WorkPhone" msgstr "å…¬å¸ç”µè¯" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "å¤„ç†æ—¶é—´" @@ -7527,7 +7476,7 @@ msgstr "æµç¨‹" msgid "Writable" msgstr "å¯è¯»å†™" -#: html/autohandler:150 +#: NOT FOUND IN SOURCE msgid "XXX CHANGEME You are not an authorized user" msgstr "XXX CHANGEME æ‚¨æ˜¯æœªç»æŽˆæƒçš„使用者" @@ -7535,19 +7484,19 @@ msgstr "XXX CHANGEME æ‚¨æ˜¯æœªç»æŽˆæƒçš„使用者" msgid "Yes" msgstr "是" -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" msgstr "您已是这份申请å•的承办人" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 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 "您å¯ä»¥æŒ‰å³æ–¹çš„「下载ã€é”®æ¥å–得。" +msgstr "您å¯ä»¥æŒ‰å³æ–¹çš„‘下载’键æ¥å–得。" -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿åŠžæˆ–æ˜¯æ²¡æœ‰æ‰¿åŠžäººçš„ç”³è¯·å•" @@ -7555,20 +7504,20 @@ msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿åŠžæˆ–æ˜¯æ²¡æœ‰æ‰¿åŠžäººçš„ç”³è¯·å•" 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:760 +#: 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:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "您已注销 RT。" -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." msgstr "æ‚¨æ²¡æœ‰åœ¨è¯¥è¡¨å•æ–°å¢žç”³è¯·å•çš„æƒé™ã€‚" -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." msgstr "您ä¸èƒ½åœ¨è¯¥è¡¨å•中æå‡ºç”³è¯·ã€‚" @@ -7576,7 +7525,7 @@ msgstr "您ä¸èƒ½åœ¨è¯¥è¡¨å•中æå‡ºç”³è¯·ã€‚" msgid "You need to restart the Request Tracker service for saved changes to take effect." msgstr "æ‚¨å¿…é¡»é‡æ–°æ¿€æ´» Request Tracker æœåŠ¡ï¼Œå‚¨å­˜çš„æ›´åŠ¨æ‰ä¼šç”Ÿæ•ˆã€‚" -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "æ¬¢è¿Žä¸‹æ¬¡å†æ¥" @@ -7608,11 +7557,11 @@ msgstr "您的申请å•已被 %1 驳回。" msgid "Your request was rejected." msgstr "您的申请å•已被驳回。" -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "您的å¸å·æˆ–å£ä»¤æœ‰è¯¯" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "邮政编ç " @@ -7628,28 +7577,32 @@ msgstr "过期" msgid "alert" msgstr "急讯" -#: NOT FOUND IN SOURCE -msgid "and is not" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "and not" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" msgstr "" #: NOT FOUND IN SOURCE msgid "approving" msgstr "待签核" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "æƒé™åŒ %1" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "已解决" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "包å«" @@ -7673,7 +7626,7 @@ msgstr "申请å•回å¤å·²é€å‡º" msgid "critical" msgstr "严é‡" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "天" @@ -7689,15 +7642,19 @@ msgstr "侦错" msgid "delete" msgstr "删除" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "已删除" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "ä¸ç¬¦åˆ" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "ä¸åŒ…å«" @@ -7709,7 +7666,7 @@ msgstr "电å­é‚®ä»¶ä¿¡ç®±" msgid "emergency" msgstr "å±éš¾" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "等于" @@ -7717,6 +7674,30 @@ msgstr "等于" msgid "error" msgstr "错误" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "" + #: NOT FOUND IN SOURCE msgid "false" msgstr "å‡" @@ -7725,40 +7706,36 @@ msgstr "å‡" msgid "filename" msgstr "æ¡£å" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "大于" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "群组 '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "å°æ—¶" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "ç¼–å·" -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" - #: NOT FOUND IN SOURCE msgid "info" msgstr "ä¿¡æ¯" -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "是" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "䏿˜¯" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "å°äºŽ" @@ -7766,15 +7743,15 @@ msgstr "å°äºŽ" msgid "level Admin" msgstr "层主管" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "符åˆ" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "分" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "分钟" @@ -7782,27 +7759,27 @@ msgstr "分钟" msgid "modifications\\n\\n" msgstr "更改\\n\\n" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "月" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "新建立" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" msgstr "没有åç§°" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "没有值" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "æ— " -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "ä¸ç­‰äºŽ" @@ -7818,7 +7795,7 @@ msgstr "ä¸ç¬¦åˆ" msgid "number" msgstr "å·" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "å¼€å¯" @@ -7826,21 +7803,21 @@ msgstr "å¼€å¯" msgid "opened" msgstr "已开å¯" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" -msgstr "使用者「%2ã€çš„「%1ã€ä»£ç†äººç¾¤ç»„" +msgstr "使用者‘%2’的‘%1’代ç†äººç¾¤ç»„" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "è¡¨å• %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "已驳回" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "已处ç†" @@ -7848,29 +7825,33 @@ msgstr "已处ç†" msgid "rtname" msgstr "æœåС噍åç§°" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "ç§’" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "" + +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "电å­è¡¨æ ¼" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "延宕" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "系统 %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "系统群组 '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "呼å«ç»„件未指明原因" @@ -7878,7 +7859,7 @@ msgstr "呼å«ç»„件未指明原因" msgid "ticket #%1" msgstr "ç”³è¯·å• #%1" -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "ç”³è¯·å• #%1 %2" @@ -7895,20 +7876,16 @@ msgstr "到" msgid "true" msgstr "真" -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "没有æè¿°çš„群组 %1" -#: NOT FOUND IN SOURCE -msgid "undescripbed group %1" -msgstr "" - #: NOT FOUND IN SOURCE msgid "unresolved" msgstr "未处ç†" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "使用者 %1" @@ -7917,7 +7894,7 @@ msgstr "使用者 %1" msgid "warning" msgstr "警告" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "周" @@ -7925,11 +7902,7 @@ msgstr "周" msgid "with template %1" msgstr "模æ¿ï¼š%1" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "å¹´" -#: NOT FOUND IN SOURCE -msgid "ニックãƒãƒ¼ãƒ " -msgstr "" - diff --git a/rt/lib/RT/I18N/zh_tw.po b/rt/lib/RT/I18N/zh_tw.po index 482d0c8cf..7fbda2187 100644 --- a/rt/lib/RT/I18N/zh_tw.po +++ b/rt/lib/RT/I18N/zh_tw.po @@ -15,18 +15,18 @@ msgstr "#" msgid "#%1" msgstr "#%1" -#: 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) +#: 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) -#. ($ticket->Id, $ticket->Subject) #. ($link->BaseObj->Id, $link->BaseObj->Subject) +#. ($ticket->Id, $ticket->Subject) +#. ($TicketObj->Id, $TicketObj->Subject) msgid "#%1: %2" msgstr "#%1: %2" -#: lib/RT/Record.pm:737 -#. ($self->id) +#: lib/RT/Record.pm:926 +#. ($label) msgid "$prefix %1" -msgstr "" +msgstr "$prefix %1" #: NOT FOUND IN SOURCE msgid "%*(%1,group ticket)" @@ -40,47 +40,45 @@ msgstr "%*(%1) 件陿œŸå®Œæˆçš„申請單" msgid "%*(%1,unresolved ticket)" msgstr "%*(%1) 件尚未解決的申請單" -#: lib/RT/URI/fsck_com_rt.pm:235 +#: lib/RT/URI/fsck_com_rt.pm:257 #. ($self->ObjectType, $self->Object->Id) msgid "%1 #%2" msgstr "%1 #%2" -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 +#: lib/RT/Date.pm:361 #. ($s, $time_unit) -#. ($option, $subtype) msgid "%1 %2" msgstr "%1 %2" -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) +#: NOT FOUND IN SOURCE msgid "%1 %2 %3" msgstr "%1 %2 %3" -#: lib/RT/Date.pm:373 +#: lib/RT/Date.pm:397 #. ($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/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 +#: lib/RT/Record.pm:1671 lib/RT/Transaction_Overlay.pm:636 lib/RT/Transaction_Overlay.pm:679 #. ($cf->Name, $new_value->Content) #. ($field, $self->NewValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 added" msgstr "%2 已新增為 %1" -#: lib/RT/Date.pm:334 +#: lib/RT/Date.pm:358 #. ($s, $time_unit) msgid "%1 %2 ago" msgstr "%1 %2 之å‰" -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) +#: lib/RT/Record.pm:1678 lib/RT/Transaction_Overlay.pm:643 +#. ($cf->Name, $old_content, $new_value->Content) #. ($field, $self->OldValue, $self->NewValue) msgid "%1 %2 changed to %3" msgstr "%1 已從 %2 改為 %3" -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) +#: lib/RT/Record.pm:1675 lib/RT/Transaction_Overlay.pm:639 lib/RT/Transaction_Overlay.pm:685 +#. ($cf->Name, $old_value->Content) #. ($field, $self->OldValue) #. ($self->Field, $principal->Object->Name) msgid "%1 %2 deleted" @@ -90,103 +88,80 @@ msgstr "%2 已自 %1 刪除" msgid "%1 %2 of group %3" msgstr "%3 群組的 %1 %2" -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) +#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:64 html/Ticket/Elements/PreviewScrips:98 #. (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 הוסף" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 מקבוצה %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 נמחק" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 ×¢× ×ª×‘× ×™×ª %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 %2 שונה ל %3" -msgstr "" - #: NOT FOUND IN SOURCE msgid "%1 (%2) %3 this ticket\\n" msgstr "%1 (%2) %3 這份申請單\\n" -#: NOT FOUND IN SOURCE -msgid "%1 (%2) %3 פנייה זו\\n" -msgstr "" - -#: html/Ticket/Elements/ShowAttachments:51 +#: html/Ticket/Elements/ShowAttachments:72 #. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) msgid "%1 (%2) by %3" -msgstr "" +msgstr "%1 (%2) - %3" -#: html/SelfService/Update.html:30 html/Ticket/Elements/EditBasics:66 html/Ticket/Update.html:39 html/Ticket/Update.html:41 html/Tools/MyDay.html:20 -#. ($Ticket->Status()) -#. ($TicketObj->Status) +#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:87 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:65 +#. (loc($DefaultStatus)) +#. (loc($TicketObj->Status)) #. ($TicketObj->OwnerObj->Name()) -#. ($DefaultStatus) +#. (loc($Ticket->Status())) msgid "%1 (Unchanged)" -msgstr "" +msgstr "%1 (未更改)" #: NOT FOUND IN SOURCE msgid "%1 - %2 shown" msgstr "顯示第 %1 - %2 ç­†" -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 +#: bin/rt-crontool:194 bin/rt-crontool:201 bin/rt-crontool:207 #. ("--search-argument", "--search") #. ("--condition-argument", "--condition") #. ("--action-argument", "--action") msgid "%1 - An argument to pass to %2" msgstr "%1 - 傳éžçµ¦ %2 çš„ä¸€å€‹åƒæ•¸" -#: bin/rt-crontool:181 +#: bin/rt-crontool:210 #. ("--verbose") msgid "%1 - Output status updates to STDOUT" msgstr "%1 - 將更新狀態輸出到 STDOUT" -#: bin/rt-crontool:175 +#: bin/rt-crontool:204 #. ("--action") msgid "%1 - Specify the action module you want to use" msgstr "%1 - 指定欲使用的動作模組" -#: bin/rt-crontool:169 +#: bin/rt-crontool:198 #. ("--condition") msgid "%1 - Specify the condition module you want to use" msgstr "%1 - 指定欲使用的æ¢ä»¶æ¨¡çµ„" -#: bin/rt-crontool:162 +#: bin/rt-crontool:191 #. ("--search") msgid "%1 - Specify the search module you want to use" msgstr "%1 - 指定欲使用的查詢模組" -#: NOT FOUND IN SOURCE -msgid "%1 - ×רגומנט להעביר ×ל %2" -msgstr "" - $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) $RT::VERSION, '2004', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:36 + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) + $RT::VERSION, + '2005', + '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) +#: html/Elements/Footer:58 #. ('»|«', $RT::VERSION, - '2004', + '2005', '<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:114 +#: lib/RT/ScripAction_Overlay.pm:151 #. ($self->Id) msgid "%1 ScripAction loaded" msgstr "載入手續 %1" @@ -195,7 +170,7 @@ msgstr "載入手續 %1" msgid "%1 Total" msgstr "å…± %1 ç­†" -#: lib/RT/Ticket_Overlay.pm:3484 +#: lib/RT/Record.pm:1708 #. ($args{'Value'}, $cf->Name) msgid "%1 added as a value for %2" msgstr "新增 %1 作為 %2 的值" @@ -212,32 +187,31 @@ msgstr "別å %1 需è¦å¯ç”¨çš„申請單編號 " msgid "%1 aliases require a TicketId to work on (from %2) %3" msgstr "別å %1 需è¦å¯ç”¨çš„ç”³è«‹å–®ç·¨è™Ÿä»¥è™•ç† %3(出自 %2)" -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 +#: lib/RT/Link_Overlay.pm:145 lib/RT/Link_Overlay.pm:152 #. ($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:52 lib/RT/Transaction_Overlay.pm:458 +#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:520 #. ($self->BriefDescription , $self->CreatorObj->Name) #. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) msgid "%1 by %2" msgstr "%1 (%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) +#: lib/RT/Transaction_Overlay.pm:777 lib/RT/Transaction_Overlay.pm:786 lib/RT/Transaction_Overlay.pm:789 #. ($self->Field , $q1->Name , $q2->Name) #. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) +#. ($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:161 +#: html/Search/Build.html:212 #. ($Description) msgid "%1 copy" -msgstr "" +msgstr "%1 複製" -#: lib/RT/Record.pm:739 +#: lib/RT/Record.pm:930 msgid "%1 could not be set to %2." msgstr "無法將 %1 設定為 %2。" @@ -245,20 +219,22 @@ msgstr "無法將 %1 設定為 %2。" msgid "%1 couldn't init a transaction (%2)\\n" msgstr "%1 無法åˆå§‹æ›´æ–° (%2)\\n" -#: lib/RT/Ticket_Overlay.pm:2739 +#: lib/RT/Ticket_Overlay.pm:2743 #. ($self) msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." msgstr "%1 ç„¡æ³•å°‡ç¾æ³è¨­æˆå·²è§£æ±ºã€‚RT 資料庫內容å¯èƒ½ä¸ä¸€è‡´ã€‚" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:560 +#. ($obj_type) msgid "%1 created" msgstr "已建立 %1" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:565 +#. ($obj_type) msgid "%1 deleted" msgstr "已刪除 %1" -#: html/Elements/MyTickets:24 +#: html/Elements/MyTickets:47 #. ($rows) msgid "%1 highest priority tickets I own" msgstr "å‰ %1 份待處ç†ç”³è«‹å–®" @@ -267,8 +243,7 @@ msgstr "å‰ %1 份待處ç†ç”³è«‹å–®" msgid "%1 highest priority tickets I own..." msgstr "å‰ %1 份待處ç†ç”³è«‹å–®..." -#: html/Elements/MyTickets:26 -#. ($rows) +#: NOT FOUND IN SOURCE msgid "%1 highest priority tickets I requested..." msgstr "å‰ %1 份é€å‡ºçš„申請單..." @@ -276,12 +251,12 @@ msgstr "å‰ %1 份é€å‡ºçš„申請單..." msgid "%1 highest priority tickets pending my approval..." msgstr "å‰ %1 份待簽核申請單..." -#: bin/rt-crontool:157 +#: bin/rt-crontool:186 #. ($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:784 +#: lib/RT/Queue_Overlay.pm:860 #. ($principal->Object->Name, $args{'Type'}) msgid "%1 is no longer a %2 for this queue." msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å–®çš„ %2。" @@ -290,8 +265,7 @@ msgstr "%1 å·²ä¸å†æ˜¯æ­¤è¡¨å–®çš„ %2。" msgid "%1 is no longer a %2 for this ticket." msgstr "%1 å·²ä¸å†æ˜¯æ­¤ç”³è«‹å–®çš„ %2。" -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) +#: NOT FOUND IN SOURCE msgid "%1 is no longer a value for custom field %2" msgstr "%1 å·²ä¸å†æ˜¯è‡ªè¨‚æ¬„ä½ %2 的值。" @@ -299,11 +273,7 @@ msgstr "%1 å·²ä¸å†æ˜¯è‡ªè¨‚æ¬„ä½ %2 的值。" msgid "%1 isn't a valid Queue id." msgstr "%1 䏿˜¯ä¸€å€‹åˆæ³•的表單編號。" -#: NOT FOUND IN SOURCE -msgid "%1 matches" -msgstr "" - -#: 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 +#: html/Ticket/Create.html:186 html/Ticket/Create.html:187 html/Ticket/Elements/ShowBasics:58 html/Ticket/Elements/ShowBasics:64 html/Ticket/Elements/ShowBasics:69 #. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') #. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') #. ($Ticket->TimeEstimated) @@ -312,15 +282,7 @@ msgstr "" msgid "%1 min" msgstr "%1 分é˜" -#: NOT FOUND IN SOURCE -msgid "%1 most recently updated articles" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 newest articles" -msgstr "" - -#: html/Elements/MyRequests:25 +#: html/Elements/MyRequests:47 #. ($rows) msgid "%1 newest unowned tickets" msgstr "å‰ %1 份待èªé ˜çš„申請單" @@ -329,7 +291,7 @@ msgstr "å‰ %1 份待èªé ˜çš„申請單" msgid "%1 not shown" msgstr "沒有顯示 %1" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:827 msgid "%1 objects" msgstr "%1 物件" @@ -345,7 +307,7 @@ msgstr "最新 %1 份é€å‡ºçš„申請單..." msgid "%1 result(s) found" msgstr "找到 %1 é …çµæžœ" -#: html/User/Elements/DelegateRights:75 +#: html/User/Elements/DelegateRights:97 #. (loc($ObjectType =~ /^RT::(.*)$/)) msgid "%1 rights" msgstr "%1權é™" @@ -366,7 +328,7 @@ msgstr "ä¸çŸ¥é“ %2 çš„ %1 類別" msgid "%1 was created without a CurrentUser\\n" msgstr "%1 新增時未指定ç¾è¡Œä½¿ç”¨è€…" -#: lib/RT/Action/ResolveMembers.pm:41 +#: lib/RT/Action/ResolveMembers.pm:63 #. (ref $self) msgid "%1 will resolve all members of a resolved group ticket." msgstr "%1 會解決在已解決群組裡æˆå“¡çš„申請單。" @@ -375,67 +337,31 @@ msgstr "%1 會解決在已解決群組裡æˆå“¡çš„申請單。" msgid "%1 will stall a [local] BASE if it's dependent [or member] of a linked up request." msgstr "如果 %1 起始申請單ä¾è³´æ–¼æŸå€‹éˆçµï¼Œæˆ–是æŸå€‹éˆçµçš„æˆå“¡ï¼Œå®ƒå°‡æœƒè¢«å»¶å®•ã€‚" -#: NOT FOUND IN SOURCE -msgid "%1 הוסף כערך עבור %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד עליה×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 ×›×™× ×•×™×™× ×“×•×¨×©×™× ×ž×–×”×” פנייה כדי לעבוד ×¢×œ×™×”× (מ %2) %3" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 לפני %2 ימי×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 נר××” כמו ×ובייקט מקומי, ×בל ×”×•× ×ינו × ×ž×¦× ×‘×ž×¡×“ הנתוני×" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 על ידי %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 פעולת-סקריפ נטענה" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "%1 שונה מ %2 ל %3" -msgstr "" - -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:828 msgid "%1's %2 objects" msgstr "%1 å…§çš„ %2 物件" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:829 msgid "%1's %2's %3 objects" msgstr "%1 å…§çš„ %2 çš„ %3 物件" -#: html/Search/Elements/SearchPrivacy:7 html/Search/Elements/SelectSearchObject:10 html/Search/Elements/SelectSearchesForObjects:11 -#. ($Object->Name) +#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:56 #. ($object->Name) +#. ($Object->Name) msgid "%1's saved searches" msgstr "%1 已儲存的查詢" -#: lib/RT/Transaction_Overlay.pm:408 +#: lib/RT/Transaction_Overlay.pm:470 #. ($self) msgid "%1: no attachment specified" msgstr "%1:未指定附件" -#: html/Ticket/Elements/ShowTransactionAttachments:56 +#: html/Ticket/Elements/ShowTransactionAttachments:78 #. ($size) msgid "%1b" msgstr "%1 ä½å…ƒçµ„" -#: html/Ticket/Elements/ShowTransactionAttachments:53 +#: html/Ticket/Elements/ShowTransactionAttachments:75 #. (int( $size / 102.4 ) / 10) msgid "%1k" msgstr "%1k ä½å…ƒçµ„" @@ -444,7 +370,7 @@ msgstr "%1k ä½å…ƒçµ„" msgid "%quant(%1,result) found" msgstr "找到 %1 é …çµæžœ" -#: lib/RT/Ticket_Overlay.pm:1252 +#: lib/RT/Ticket_Overlay.pm:1118 #. ($args{'Status'}) msgid "'%1' is an invalid value for status" msgstr "'%1' 䏿˜¯ä¸€å€‹åˆæ³•的狀態值" @@ -461,7 +387,7 @@ msgstr "(é»žé¸æ¬²åˆªé™¤çš„æˆå“¡)" msgid "(Check box to delete scrip)" msgstr "(é»žé¸æ¬²åˆªé™¤çš„æ‰‹çºŒ)" -#: 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 +#: 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 "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" @@ -469,45 +395,41 @@ msgstr "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" msgid "(Check boxes to delete)" msgstr "(é»žé¸æ¬²åˆªé™¤çš„é …ç›®)" -#: html/Ticket/Elements/PreviewScrips:49 +#: html/Ticket/Elements/PreviewScrips:94 msgid "(Check boxes to disable notifications to the listed recipients)" msgstr "(é»žé¸æ¬²åœç”¨é€šçŸ¥çš„æ”¶ä»¶äºº)" -#: html/Ticket/Elements/PreviewScrips:71 +#: html/Ticket/Elements/PreviewScrips:116 msgid "(Check boxes to enable notifications to the listed recipients)" msgstr "(é»žé¸æ¬²å•Ÿç”¨é€šçŸ¥çš„æ”¶ä»¶äºº)" -#: html/Ticket/Create.html:178 +#: html/Ticket/Create.html:209 msgid "(Enter ticket ids or URLs, separated with spaces)" msgstr "(éµå…¥ç”³è«‹å–®ç·¨è™Ÿæˆ–ç¶²å€ï¼Œä»¥ç©ºç™½åˆ†éš”)" -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" -msgstr "" - -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 +#: html/Admin/Queues/Modify.html:75 html/Admin/Queues/Modify.html:81 #. ($RT::CorrespondAddress) #. ($RT::CommentAddress) -msgid "(If left blank, will default to %1" +msgid "(If left blank, will default to %1)" msgstr "(如果留白, 則é è¨­ç‚º %1)" #: NOT FOUND IN SOURCE msgid "(No Value)" msgstr "(沒有值)" -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 +#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 msgid "(No custom fields)" msgstr "(沒有自訂欄ä½)" -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 +#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 msgid "(No members)" msgstr "(沒有æˆå“¡)" -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 +#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:49 msgid "(No scrips)" msgstr "(沒有手續)" -#: html/Admin/Elements/EditTemplates:30 +#: html/Admin/Elements/EditTemplates:52 msgid "(No templates)" msgstr "沒有範本" @@ -515,11 +437,11 @@ msgstr "沒有範本" msgid "(No workflows)" msgstr "沒有æµç¨‹" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 msgid "(None)" msgstr "(ç„¡)" -#: html/Ticket/Update.html:66 +#: html/Ticket/Update.html:88 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>更改後續的收件者å單。)" @@ -527,11 +449,11 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„密件副本給åå–®ä¸Šä»¥é€—è™Ÿéš”é–‹çš„é›»å­ 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/Create.html:78 +#: html/Ticket/Create.html:100 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/Update.html:62 +#: html/Ticket/Update.html:84 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>更改後續的收件者å單。)" @@ -539,13 +461,13 @@ msgstr "(é€å‡ºæœ¬ä»½æ›´æ–°çš„副本給å單上以逗號隔開的電å­éƒµä»¶ 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/Create.html:68 +#: html/Ticket/Create.html:90 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/Admin/Elements/EditScrip:80 +#: html/Admin/Elements/EditScrip:102 msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "" +msgstr "(ç•¶æ¢ä»¶æˆ–å‹•ä½œè¨­ç‚ºã€Œä½¿ç”¨è€…è‡ªè¨‚ã€æ™‚,請填入這些欄ä½)" #: NOT FOUND IN SOURCE msgid "(default delegate)" @@ -555,7 +477,7 @@ msgstr "(é è¨­ä»£ç†äºº)" msgid "(delete)" msgstr "(刪除)" -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 +#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 msgid "(empty)" msgstr "(空白)" @@ -563,39 +485,31 @@ msgstr "(空白)" msgid "(new)" msgstr "(新增)" -#: NOT FOUND IN SOURCE -msgid "(no Summary)" -msgstr "" - -#: html/Admin/Users/index.html:38 +#: html/Admin/Users/index.html:60 msgid "(no name listed)" msgstr "(沒有列出姓å)" -#: NOT FOUND IN SOURCE -msgid "(no name)" -msgstr "" - #: NOT FOUND IN SOURCE msgid "(no subject)" msgstr "(沒有主題)" -#: 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 +#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:60 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:65 lib/RT/Transaction_Overlay.pm:580 msgid "(no value)" msgstr "(ç„¡)" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFieldValues:47 msgid "(no values)" msgstr "(沒有值)" -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 +#: html/Elements/EditLinks:130 html/Ticket/Elements/BulkLinks:49 msgid "(only one ticket)" msgstr "(僅能指定一份申請單)" -#: html/Elements/TicketList:167 +#: html/Elements/RT__Ticket/ColumnMap:146 msgid "(pending approval)" msgstr "(等待簽核)" -#: html/Elements/TicketList:170 +#: html/Elements/RT__Ticket/ColumnMap:149 msgid "(pending other Collection)" msgstr "(等待其他集åˆ)" @@ -607,11 +521,11 @@ msgstr "(等待其他申請單)" msgid "(requestor's group)" msgstr "(申請人所屬)" -#: html/Admin/Users/Modify.html:49 +#: html/Admin/Users/Modify.html:71 msgid "(required)" msgstr "(å¿…å¡«)" -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "(untitled)" msgstr "(未命å)" @@ -619,51 +533,39 @@ msgstr "(未命å)" msgid "*" msgstr "★" -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I own..." -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "25 highest priority tickets I requested..." -msgstr "" - #: NOT FOUND IN SOURCE msgid ":" msgstr ":" -#: html/Ticket/Elements/ShowBasics:31 +#: html/Ticket/Elements/ShowBasics:53 msgid "<% $Ticket->Status%>" msgstr "<% $Ticket->Status%>" -#: html/Elements/SelectTicketTypes:26 +#: html/Elements/SelectTicketTypes:48 msgid "<% $_ %>" msgstr "<% $_ %>" -#: html/Search/Elements/SelectLinks:26 +#: html/Search/Elements/SelectLinks:48 msgid "<%$_%>" msgstr "<%$_%>" -#: html/Search/Elements/PickBasics:132 html/Search/Elements/PickBasics:139 html/Search/Elements/PickBasics:88 +#: html/Search/Elements/DisplayOptions:65 msgid "<%$field%>" msgstr "<%$field%>" -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 +#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:47 lib/RT/StyleGuide.pod:787 #. ($m->scomp('/Elements/SelectNewTicketQueue')) msgid "<input type=\"submit\" value=\"New ticket in\"> %1" msgstr "<input type=\"submit\" value=\"æå‡ºç”³è«‹å–®\"> %1" -#: NOT FOUND IN SOURCE -msgid "??????" -msgstr "" - #: etc/initialdata:218 msgid "A blank template" msgstr "空白範本" +#: html/Admin/Users/Modify.html:363 +msgid "A password was not set, so user won't be able to login." +msgstr "" + #: NOT FOUND IN SOURCE msgid "ACE Deleted" msgstr "ACE 已刪除" @@ -680,11 +582,11 @@ msgstr "無法刪除 ACE" msgid "ACE could not be found" msgstr "找ä¸åˆ° ACE" -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 +#: lib/RT/ACE_Overlay.pm:175 lib/RT/Principal_Overlay.pm:219 msgid "ACE not found" msgstr "找ä¸åˆ° ACE 設定" -#: lib/RT/ACE_Overlay.pm:830 +#: lib/RT/ACE_Overlay.pm:854 msgid "ACEs can only be created and deleted." msgstr "祇能新增或刪除 ACE 設定。" @@ -692,6 +594,10 @@ msgstr "祇能新增或刪除 ACE 設定。" msgid "ACLEquivalence" msgstr "ACLEquivalence" +#: html/Search/Elements/SelectAndOr:46 +msgid "AND" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Aborting to avoid unintended ticket modifications.\\n" msgstr "離開以å…ä¸å°å¿ƒæ›´æ”¹åˆ°ç”³è«‹å–®ã€‚\\n" @@ -700,7 +606,7 @@ msgstr "離開以å…ä¸å°å¿ƒæ›´æ”¹åˆ°ç”³è«‹å–®ã€‚\\n" msgid "About Me" msgstr "個人資訊" -#: html/User/Elements/Tabs:31 +#: html/User/Elements/Tabs:53 msgid "About me" msgstr "個人資訊" @@ -708,24 +614,28 @@ msgstr "個人資訊" msgid "Access Right" msgstr "系統使用登錄權é™" -#: html/Admin/Users/Modify.html:79 +#: html/Admin/Users/Modify.html:106 msgid "Access control" msgstr "å­˜å–æ¬Šé™" -#: html/Admin/Elements/EditScrip:49 +#: html/Admin/Elements/EditScrip:71 msgid "Action" msgstr "動作" -#: lib/RT/Scrip_Overlay.pm:148 +#: lib/RT/Scrip_Overlay.pm:173 #. ($args{'ScripAction'}) msgid "Action %1 not found" msgstr "動作 %1 找ä¸åˆ°" -#: bin/rt-crontool:119 +#: NOT FOUND IN SOURCE msgid "Action committed." msgstr "動作執行完畢" -#: bin/rt-crontool:115 +#: bin/rt-crontool:148 +msgid "Action committed.\\n" +msgstr "" + +#: bin/rt-crontool:144 msgid "Action prepared..." msgstr "動作準備完畢..." @@ -733,19 +643,23 @@ msgstr "動作準備完畢..." msgid "Activated Date" msgstr "申請啟動時間" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add" msgstr "新增" -#: html/Search/Bulk.html:93 +#: html/Search/Bulk.html:114 msgid "Add AdminCc" msgstr "新增管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Search/Bulk.html:89 +#: html/Search/Bulk.html:110 msgid "Add Cc" msgstr "新增副本收件人" -#: html/Search/Elements/PickCriteria:24 +#: html/Search/Elements/EditFormat:49 +msgid "Add Columns" +msgstr "" + +#: html/Search/Elements/PickCriteria:46 msgid "Add Criteria" msgstr "新增æ¢ä»¶" @@ -753,7 +667,7 @@ msgstr "新增æ¢ä»¶" msgid "Add Entry" msgstr "新增列" -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 +#: html/Ticket/Create.html:144 html/Ticket/Update.html:114 msgid "Add More Files" msgstr "新增更多附件" @@ -761,11 +675,11 @@ msgstr "新增更多附件" msgid "Add Next State" msgstr "新增下一項關å¡" -#: html/Search/Bulk.html:85 +#: html/Search/Bulk.html:106 msgid "Add Requestor" msgstr "新增申請人" -#: html/Admin/Elements/AddCustomFieldValue:24 +#: html/Admin/Elements/AddCustomFieldValue:46 msgid "Add Value" msgstr "新增欄ä½å€¼" @@ -789,36 +703,40 @@ msgstr "新增全域手續" msgid "Add a scrip to this queue" msgstr "æ–°å¢žä¸€é“æ‰‹çºŒåˆ°æ­¤è¡¨å–®" -#: html/Admin/Global/Scrip.html:54 +#: html/Admin/Global/Scrip.html:76 msgid "Add a scrip which will apply to all queues" msgstr "新增一é“用於所有表單的手續" -#: html/Search/Build.html:43 +#: html/Search/Build.html:85 msgid "Add additional criteria" -msgstr "" +msgstr "新增查詢æ¢ä»¶" -#: html/Search/Bulk.html:125 +#: html/Search/Bulk.html:146 msgid "Add comments or replies to selected tickets" msgstr "新增評論或回覆到指定的申請單" -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 +#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 msgid "Add members" msgstr "新增æˆå“¡" -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 +#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 msgid "Add new watchers" msgstr "新增視察員" +#: lib/RT/CustomField_Overlay.pm:103 +msgid "Add, delete and modify custom field values for objects" +msgstr "" + #: NOT FOUND IN SOURCE msgid "AddNextState" msgstr "新增下一項關å¡" -#: lib/RT/Queue_Overlay.pm:684 +#: lib/RT/Queue_Overlay.pm:760 #. ($args{'Type'}) msgid "Added principal as a %1 for this queue" msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤è¡¨å–®çš„ %1" -#: lib/RT/Ticket_Overlay.pm:1547 +#: lib/RT/Ticket_Overlay.pm:1416 #. ($self->loc($args{'Type'})) msgid "Added principal as a %1 for this ticket" msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤ç”³è«‹å–®çš„ %1" @@ -827,11 +745,11 @@ msgstr "å–®ä½å·²æ–°å¢žç‚ºæ­¤ç”³è«‹å–®çš„ %1" msgid "Additional Hints" msgstr "é¡å¤–æç¤º" -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 +#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 msgid "Address1" msgstr "ä½å€" -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 +#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 msgid "Address2" msgstr "ä½å€(續)" @@ -843,7 +761,7 @@ msgstr "調整閃çˆé€Ÿåº¦å¿«æ…¢" msgid "Admin" msgstr "管ç†å“¡" -#: html/Ticket/Create.html:73 +#: html/Ticket/Create.html:95 msgid "Admin Cc" msgstr "管ç†å“¡å‰¯æœ¬" @@ -859,7 +777,7 @@ msgstr "管ç†å“¡å›žè¦†" msgid "Admin Rights" msgstr "管ç†å“¡æ¬Šé™" -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 +#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 msgid "Admin queues" msgstr "表單管ç†" @@ -867,7 +785,7 @@ msgstr "表單管ç†" msgid "Admin users" msgstr "使用者管ç†" -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 +#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 msgid "Admin/Global configuration" msgstr "管ç†/全域設定" @@ -887,7 +805,7 @@ msgstr "管ç†å“¡ Email" msgid "AdminAllPersonalGroups" msgstr "ç®¡ç†æ‰€æœ‰ä»£ç†äººç¾¤çµ„" -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 +#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:114 msgid "AdminCc" msgstr "管ç†å“¡å‰¯æœ¬" @@ -899,15 +817,15 @@ msgstr "管ç†å“¡è©•è«–" msgid "AdminCorrespondence" msgstr "管ç†å“¡å›žè¦†" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:101 msgid "AdminCustomField" msgstr "管ç†è‡ªè¨‚欄ä½" -#: lib/RT/Queue_Overlay.pm:73 +#: NOT FOUND IN SOURCE msgid "AdminCustomFields" msgstr "管ç†è‡ªè¨‚欄ä½" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "AdminGroup" msgstr "管ç†ç¾¤çµ„" @@ -915,7 +833,7 @@ msgstr "管ç†ç¾¤çµ„" msgid "AdminGroupDescription" msgstr "管ç†ç¾¤çµ„æè¿°" -#: lib/RT/Group_Overlay.pm:148 +#: lib/RT/Group_Overlay.pm:173 msgid "AdminGroupMembership" msgstr "管ç†ç¾¤çµ„æˆå“¡" @@ -931,15 +849,15 @@ msgstr "管ç†ç¾¤çµ„權é™" msgid "AdminGroupStatus" msgstr "管ç†ç¾¤çµ„狀態" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "AdminOwnPersonalGroups" msgstr "管ç†ä»£ç†äººç¾¤çµ„" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "AdminQueue" msgstr "管ç†è¡¨å–®" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "AdminUsers" msgstr "管ç†ä½¿ç”¨è€…" @@ -947,7 +865,7 @@ msgstr "管ç†ä½¿ç”¨è€…" msgid "Administrative" msgstr "行政類" -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 +#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 msgid "Administrative Cc" msgstr "管ç†å“¡å‰¯æœ¬" @@ -955,7 +873,7 @@ msgstr "管ç†å“¡å‰¯æœ¬" msgid "Admins" msgstr "主管" -#: html/Ticket/Elements/Tabs:174 +#: html/Ticket/Elements/Tabs:197 msgid "Advanced" msgstr "進階" @@ -965,9 +883,9 @@ msgstr "進階查詢" #: NOT FOUND IN SOURCE msgid "Advanced Search Criteria" -msgstr "" +msgstr "進階查詢æ¢ä»¶" -#: html/Elements/SelectDateRelation:35 +#: html/Elements/SelectDateRelation:57 msgid "After" msgstr "晚於" @@ -975,6 +893,10 @@ msgstr "晚於" msgid "Age" msgstr "經歷時間" +#: html/Search/Elements/PickCriteria:52 +msgid "Aggregator" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Alias" msgstr "執行其他æµç¨‹" @@ -991,19 +913,15 @@ msgstr "全部" msgid "All Approvals Passed" msgstr "完æˆå…¨éƒ¨ç°½æ ¸" -#: NOT FOUND IN SOURCE -msgid "All Classes" -msgstr "" - #: NOT FOUND IN SOURCE msgid "All Condition" msgstr "所有æ¢ä»¶" -#: html/Admin/Elements/EditCustomFields:94 +#: NOT FOUND IN SOURCE msgid "All Custom Fields" msgstr "所有自訂欄ä½" -#: html/Admin/Queues/index.html:52 +#: html/Admin/Queues/index.html:75 msgid "All Queues" msgstr "所有表單" @@ -1027,6 +945,10 @@ msgstr "無論寄件來æºç‚ºä½•,一律寄信給申請人" msgid "Amount" msgstr "數é¡" +#: html/Search/Elements/EditQuery:56 +msgid "And/Or" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Any Condition" msgstr "ä»»æ„æ¢ä»¶" @@ -1035,11 +957,11 @@ msgstr "ä»»æ„æ¢ä»¶" msgid "Applies To" msgstr "套用於" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 msgid "Applies to" msgstr "套用於" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply" msgstr "套用" @@ -1047,27 +969,27 @@ msgstr "套用" msgid "Apply Template" msgstr "引用範本" -#: html/Search/Edit.html:42 +#: html/Search/Edit.html:64 msgid "Apply your changes" msgstr "套用更動" -#: html/Elements/Tabs:58 +#: html/Elements/Tabs:74 msgid "Approval" msgstr "簽核" -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 +#: html/Approvals/Display.html:67 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:53 +#: html/Approvals/index.html:75 #. ($ticket->Id) msgid "Approval #%1: Notes not recorded due to a system error" msgstr "簽核單 #%1:系統錯誤,記錄失敗" -#: html/Approvals/index.html:51 +#: html/Approvals/index.html:73 #. ($ticket->Id) msgid "Approval #%1: Notes recorded" msgstr "簽核單 #%1:記錄完畢" @@ -1108,7 +1030,7 @@ msgstr "簽核種類" msgid "Approval diagram" msgstr "簽核æµç¨‹" -#: html/Approvals/Elements/Approve:43 +#: html/Approvals/Elements/Approve:65 msgid "Approve" msgstr "核准" @@ -1128,7 +1050,7 @@ msgstr "簽核備註:%1" msgid "Apr" msgstr "四月" -#: lib/RT/Date.pm:414 +#: lib/RT/Date.pm:440 msgid "Apr." msgstr "04" @@ -1140,68 +1062,48 @@ msgstr "四月" msgid "Are you sure to delete checked items?" msgstr "您確定è¦åˆªé™¤ï¼Ÿ" -#: NOT FOUND IN SOURCE -msgid "Are you sure you want to delete this article?" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1 deleted" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article #%1: %2" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Article not found" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Articles" -msgstr "" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:73 msgid "Ascending" msgstr "éžå¢ž" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "Assign and remove custom fields" msgstr "指派åŠç§»é™¤è‡ªè¨‚欄ä½" -#: NOT FOUND IN SOURCE +#: lib/RT/Queue_Overlay.pm:97 msgid "AssignCustomFields" msgstr "指派自訂欄ä½" -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 +#: html/Search/Bulk.html:164 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:114 msgid "Attach" msgstr "附件" -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 +#: html/SelfService/Create.html:92 html/Ticket/Create.html:140 msgid "Attach file" msgstr "附加檔案" -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 +#: html/SelfService/Update.html:75 html/Ticket/Create.html:128 html/Ticket/Update.html:92 msgid "Attached file" msgstr "ç¾æœ‰é™„ä»¶" -#: html/Ticket/ShowEmailRecord.html:11 html/Ticket/ShowEmailRecord.html:14 html/Ticket/ShowEmailRecord.html:7 +#: 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:416 +#: lib/RT/Transaction_Overlay.pm:478 msgid "Attachment created" msgstr "附件新增完畢" -#: lib/RT/Tickets_Overlay.pm:1251 +#: lib/RT/Tickets_Overlay.pm:1673 msgid "Attachment filename" msgstr "附件檔å" -#: html/Ticket/Elements/ShowAttachments:25 +#: html/Ticket/Elements/ShowAttachments:47 msgid "Attachments" msgstr "附件" -#: lib/RT/Attributes_Overlay.pm:158 +#: lib/RT/Attributes_Overlay.pm:172 msgid "Attribute Deleted" msgstr "已刪除該屬性" @@ -1213,7 +1115,7 @@ msgstr "屬性" msgid "Aug" msgstr "八月" -#: lib/RT/Date.pm:418 +#: lib/RT/Date.pm:444 msgid "Aug." msgstr "08" @@ -1245,7 +1147,7 @@ msgstr "自動å°ç”³è«‹äººå›žè¦†" msgid "AutoreplyToRequestors" msgstr "自動å°ç”³è«‹äººå›žè¦†" -#: html/Search/Elements/EditFormat:4 +#: NOT FOUND IN SOURCE msgid "Available Columns" msgstr "å¯ç”¨çš„æ¬„ä½ï¼š" @@ -1277,7 +1179,7 @@ msgstr "%1 的資料錯誤" msgid "Bad transaction number for attachment. %1 should be %2\\n" msgstr "附件的處ç†è™Ÿç¢¼éŒ¯èª¤ã€‚%1 應為 %2\\n" -#: 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 +#: 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 "基本資訊" @@ -1285,15 +1187,15 @@ msgstr "基本資訊" msgid "Batch Approval" msgstr "批次簽核" -#: html/Ticket/Update.html:64 +#: html/Ticket/Update.html:86 msgid "Bcc" msgstr "密件副本" -#: html/Admin/Elements/EditScrip:73 +#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:95 msgid "Be sure to save your changes" msgstr "請別忘了儲存修改。" -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 +#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:360 msgid "Before" msgstr "æ—©æ–¼" @@ -1305,6 +1207,10 @@ msgstr "開始簽核" msgid "Begin From " msgstr "èµ·å§‹æ—¥" +#: html/Elements/Header:80 +msgid "Best Practical Solutions, LLC corporate logo" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Binary" msgstr "檔案" @@ -1317,19 +1223,23 @@ msgstr "生日" 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:47 +#: html/Search/Results.html:81 msgid "Bookmarkable link" -msgstr "" +msgstr "坿”¾å…¥æ›¸ç±¤çš„ç¶²å€" -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 +#: html/Ticket/Elements/ShowHistory:60 html/Ticket/Elements/ShowHistory:66 msgid "Brief headers" msgstr "精簡標頭檔" -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 +#: html/Search/Bulk.html:46 html/Search/Bulk.html:47 msgid "Bulk ticket update" msgstr "更新整批申請單" @@ -1341,35 +1251,40 @@ msgstr "事業部" msgid "Business Unit:" msgstr "事業部:" -#: lib/RT/User_Overlay.pm:1533 +#: lib/RT/User_Overlay.pm:1722 msgid "Can not modify system users" msgstr "無法更改系統使用者" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Queue_Overlay.pm:92 msgid "Can this principal see this queue" msgstr "è©²å–®ä½æ˜¯å¦èƒ½æŸ¥é–±æ­¤è¡¨å–®" -#: lib/RT/CustomField_Overlay.pm:211 +#: lib/RT/CustomField_Overlay.pm:370 msgid "Can't add a custom field value without a name" msgstr "ä¸èƒ½æ–°å¢žæ²’有å稱的自訂欄ä½å€¼" -#: html/Search/Build.html:694 +#: html/Admin/CustomFields/Objects.html:86 +#. ($Class) +msgid "Can't find a collection class for '%1'" +msgstr "" + +#: html/Search/Build.html:761 msgid "Can't find a saved search to work with" msgstr "找ä¸åˆ°å·²å„²å­˜çš„æŸ¥è©¢" -#: lib/RT/Link_Overlay.pm:126 +#: lib/RT/Link_Overlay.pm:160 msgid "Can't link a ticket to itself" msgstr "申請單ä¸èƒ½éˆçµè‡ªå·±ã€‚" -#: lib/RT/Ticket_Overlay.pm:2716 +#: NOT FOUND IN SOURCE msgid "Can't merge into a merged ticket. You should never get this error" msgstr "ä¸èƒ½æ•´åˆé€²å·²æ•´åˆéŽçš„申請單。這個錯誤ä¸è©²ç™¼ç”Ÿã€‚" -#: html/Search/Build.html:699 +#: html/Search/Build.html:766 msgid "Can't save this search" msgstr "無法儲存此項查詢" -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 +#: lib/RT/Record.pm:1266 lib/RT/Record.pm:1344 msgid "Can't specifiy both base and target" msgstr "ä¸èƒ½åŒæ™‚指定起始申請單與目的申請單" @@ -1377,7 +1292,7 @@ msgstr "ä¸èƒ½åŒæ™‚指定起始申請單與目的申請單" msgid "Cancel" msgstr "å–æ¶ˆ" -#: html/autohandler:132 +#: html/autohandler:148 #. ($msg) msgid "Cannot create user: %1" msgstr "無法新增使用者:%1" @@ -1398,7 +1313,7 @@ msgstr "分類管ç†" msgid "Category" msgstr "分類" -#: 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 +#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:85 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:81 lib/RT/ACE_Overlay.pm:113 msgid "Cc" msgstr "副本" @@ -1414,7 +1329,7 @@ msgstr "董事長室" msgid "Change Ticket" msgstr "修改申請單" -#: html/SelfService/Prefs.html:30 +#: html/SelfService/Prefs.html:52 msgid "Change password" msgstr "更改密碼" @@ -1422,19 +1337,19 @@ msgstr "更改密碼" msgid "ChangeOwnerUI" msgstr "å¯å¦é¸æ“‡è¡¨å–®æ‰¿è¾¦äºº" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:100 msgid "Check All" msgstr "全部é¸å–" -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 +#: html/SelfService/Update.html:78 html/Ticket/Create.html:131 html/Ticket/Update.html:95 msgid "Check box to delete" msgstr "鏿“‡æ¬²åˆªé™¤çš„é …ç›®" -#: html/Admin/Elements/SelectRights:30 +#: html/Admin/Elements/SelectRights:55 msgid "Check box to revoke right" msgstr "鏿“‡æ¬²æ’¤æ¶ˆçš„æ¬Šåˆ©" -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 +#: html/Elements/EditLinks:146 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:214 html/Ticket/Elements/BulkLinks:64 msgid "Children" msgstr "å­ç”³è«‹å–®" @@ -1446,47 +1361,27 @@ msgstr "中文姓å" msgid "Chinese/English" msgstr "中英文" -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 +#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 msgid "City" msgstr "所在城市" -#: NOT FOUND IN SOURCE -msgid "Class" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class Name" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Class is" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Classes" -msgstr "" - #: NOT FOUND IN SOURCE msgid "ClassicUI" msgstr "傳統介é¢" -#: NOT FOUND IN SOURCE +#: html/Elements/Submit:102 msgid "Clear All" msgstr "全部清除" -#: html/Ticket/Elements/ShowDates:47 +#: html/Ticket/Elements/ShowDates:68 msgid "Closed" msgstr "已解決" -#: html/SelfService/Closed.html:24 +#: NOT FOUND IN SOURCE msgid "Closed Tickets" msgstr "已解決的申請單" -#: NOT FOUND IN SOURCE -msgid "Closed requests" -msgstr "" - -#: html/SelfService/Elements/Tabs:44 +#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:66 msgid "Closed tickets" msgstr "已解決的申請單" @@ -1498,11 +1393,11 @@ msgstr "執行程å¼ç¢¼" msgid "Command not understood!\\n" msgstr "指令無法辨識ï¼\\n" -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 +#: html/Ticket/Elements/ShowTransaction:182 html/Ticket/Elements/Tabs:176 msgid "Comment" msgstr "è©•è«–" -#: html/Admin/Queues/Modify.html:57 +#: html/Admin/Queues/Modify.html:79 msgid "Comment Address" msgstr "è©•è«–é›»å­éƒµä»¶åœ°å€" @@ -1510,11 +1405,11 @@ msgstr "è©•è«–é›»å­éƒµä»¶åœ°å€" msgid "Comment not recorded" msgstr "評論未被紀錄" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "Comment on tickets" msgstr "å°ç”³è«‹å–®æå‡ºè©•è«–" -#: lib/RT/Queue_Overlay.pm:88 +#: lib/RT/Queue_Overlay.pm:112 msgid "CommentOnTicket" msgstr "評論申請單" @@ -1522,11 +1417,11 @@ msgstr "評論申請單" msgid "Comments" msgstr "è©•è«–" -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 +#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:73 msgid "Comments (Not sent to requestors)" msgstr "è©•è«–(ä¸é€çµ¦ç”³è«‹äºº)" -#: html/Search/Bulk.html:129 +#: html/Search/Bulk.html:150 msgid "Comments (not sent to requestors)" msgstr "è©•è«–(ä¸é€çµ¦ç”³è«‹äºº)" @@ -1534,11 +1429,11 @@ msgstr "è©•è«–(ä¸é€çµ¦ç”³è«‹äºº)" msgid "Comments about %1" msgstr "å° %1 的評論" -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 +#: html/Admin/Users/Modify.html:224 html/Ticket/Elements/ShowRequestor:67 msgid "Comments about this user" msgstr "使用者æè¿°" -#: lib/RT/Transaction_Overlay.pm:537 +#: lib/RT/Transaction_Overlay.pm:623 msgid "Comments added" msgstr "新增評論完畢" @@ -1546,7 +1441,7 @@ msgstr "新增評論完畢" msgid "Commit" msgstr "確èª" -#: lib/RT/Action/Generic.pm:149 +#: lib/RT/Action/Generic.pm:176 msgid "Commit Stubbed" msgstr "消除更動完畢" @@ -1562,23 +1457,23 @@ msgstr "å„å…¬å¸ç¨ç«‹é¡¯ç¤º" msgid "Compile Restrictions" msgstr "設定查詢æ¢ä»¶" -#: html/Admin/Elements/EditScrip:41 +#: html/Admin/Elements/EditScrip:63 msgid "Condition" msgstr "æ¢ä»¶" -#: bin/rt-crontool:105 +#: bin/rt-crontool:131 msgid "Condition matches..." msgstr "ç¬¦åˆæ¢ä»¶..." -#: lib/RT/Scrip_Overlay.pm:164 +#: lib/RT/Scrip_Overlay.pm:189 msgid "Condition not found" msgstr "未找到符åˆçš„ç¾æ³" -#: html/Elements/Tabs:52 +#: html/Elements/Tabs:81 msgid "Configuration" msgstr "設定" -#: html/SelfService/Prefs.html:32 +#: html/SelfService/Prefs.html:54 msgid "Confirm" msgstr "確èªå¯†ç¢¼" @@ -1602,11 +1497,11 @@ msgstr "連絡資訊系統" msgid "Contacted date '%1' could not be parsed" msgstr "無法解讀è¯çµ¡æ—¥æœŸ '%1'" -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 +#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 msgid "Content" msgstr "內容" -#: html/Elements/SelectAttachmentField:27 +#: html/Elements/SelectAttachmentField:49 msgid "Content-Type" msgstr "內容類型" @@ -1614,7 +1509,7 @@ msgstr "內容類型" msgid "Coould not create group" msgstr "無法新增群組" -#: html/Search/Elements/EditSearches:16 +#: html/Search/Elements/EditSearches:64 msgid "Copy" msgstr "複製" @@ -1630,7 +1525,7 @@ msgstr "回覆" msgid "Correspondence Address" msgstr "申請單回覆地å€" -#: lib/RT/Transaction_Overlay.pm:533 +#: lib/RT/Transaction_Overlay.pm:619 msgid "Correspondence added" msgstr "新增申請單回覆" @@ -1638,7 +1533,7 @@ msgstr "新增申請單回覆" msgid "Correspondence not recorded" msgstr "未紀錄申請單回覆" -#: lib/RT/Ticket_Overlay.pm:3471 +#: NOT FOUND IN SOURCE msgid "Could not add new custom field value for ticket. " msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值 " @@ -1646,15 +1541,29 @@ msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值 " msgid "Could not add new custom field value for ticket. %1 " msgstr "ä¸èƒ½æ–°å¢žè‡ªè¨‚欄ä½çš„值。%1 " -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 +#: lib/RT/Record.pm:1693 +msgid "Could not add new custom field value. " +msgstr "" + +#: lib/RT/Record.pm:1646 +#. (, $value_msg) +msgid "Could not add new custom field value. %1 " +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:3004 lib/RT/Ticket_Overlay.pm:3012 lib/RT/Ticket_Overlay.pm:3029 msgid "Could not change owner. " msgstr "ä¸èƒ½æ›´æ”¹æ‰¿è¾¦äººã€‚ " -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 +#: html/Admin/CustomFields/Modify.html:119 #. ($msg) msgid "Could not create CustomField" msgstr "無法新增自訂欄ä½" +#: html/Admin/Elements/EditCustomField:113 +#. ($msg) +msgid "Could not create CustomField: %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Could not create Scrip" msgstr "無法建立訊æ¯é€šçŸ¥" @@ -1663,7 +1572,7 @@ msgstr "無法建立訊æ¯é€šçŸ¥" msgid "Could not create Template" msgstr "無法建立通知範本" -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 +#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:502 lib/RT/Group_Overlay.pm:509 msgid "Could not create group" msgstr "無法新增群組" @@ -1671,16 +1580,16 @@ msgstr "無法新增群組" msgid "Could not create item" msgstr "無法新增項目" -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 +#: 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:1185 lib/RT/Ticket_Overlay.pm:364 +#: lib/RT/Ticket_Overlay.pm:1051 lib/RT/Ticket_Overlay.pm:396 msgid "Could not create ticket. Queue not set" msgstr "無法新增申請單。尚未指定表單。" -#: 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 +#: lib/RT/User_Overlay.pm:256 lib/RT/User_Overlay.pm:270 lib/RT/User_Overlay.pm:279 lib/RT/User_Overlay.pm:288 lib/RT/User_Overlay.pm:297 lib/RT/User_Overlay.pm:311 lib/RT/User_Overlay.pm:321 lib/RT/User_Overlay.pm:497 msgid "Could not create user" msgstr "無法新增使用者" @@ -1700,11 +1609,11 @@ msgstr "找ä¸åˆ°ç·¨è™Ÿ %1 的申請單" msgid "Could not find group %1." msgstr "找ä¸åˆ°ç¾¤çµ„ %1。" -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 +#: lib/RT/Queue_Overlay.pm:738 lib/RT/Ticket_Overlay.pm:1384 msgid "Could not find or create that user" msgstr "找ä¸åˆ°æˆ–無法新增該å使用者" -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 +#: lib/RT/Queue_Overlay.pm:799 lib/RT/Ticket_Overlay.pm:1465 msgid "Could not find that principal" msgstr "找ä¸åˆ°è©²å–®ä½" @@ -1712,25 +1621,34 @@ msgstr "找ä¸åˆ°è©²å–®ä½" msgid "Could not find user %1." msgstr "找ä¸åˆ°ä½¿ç”¨è€… %1。" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:69 msgid "Could not load CustomField %1" msgstr "ç„¡æ³•è¼‰å…¥æ¬„ä½ %1" -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 +#: html/Admin/Groups/Members.html:109 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 msgid "Could not load group" msgstr "無法載入群組" -#: lib/RT/Queue_Overlay.pm:682 +#: lib/RT/SavedSearch.pm:120 +#. ($privacy) +msgid "Could not load object for %1" +msgstr "" + +#: lib/RT/SavedSearch.pm:188 +msgid "Could not load search attribute" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:758 #. ($args{'Type'}) msgid "Could not make that principal a %1 for this queue" msgstr "無法將該單ä½è¨­ç‚ºæ­¤è¡¨å–®çš„ %1。" -#: lib/RT/Ticket_Overlay.pm:1536 +#: lib/RT/Ticket_Overlay.pm:1405 #. ($self->loc($args{'Type'})) msgid "Could not make that principal a %1 for this ticket" msgstr "無法將該單ä½è¨­ç‚ºæ­¤ç”³è«‹å–®çš„ %1。" -#: lib/RT/Queue_Overlay.pm:781 +#: lib/RT/Queue_Overlay.pm:857 #. ($args{'Type'}) msgid "Could not remove that principal as a %1 for this queue" msgstr "ç„¡æ³•å°‡å–®ä½ %1 從表單移除。" @@ -1739,15 +1657,15 @@ msgstr "ç„¡æ³•å°‡å–®ä½ %1 從表單移除。" msgid "Could not remove that principal as a %1 for this ticket" msgstr "ç„¡æ³•å°‡å–®ä½ %1 從申請單移除。" -#: lib/RT/User_Overlay.pm:162 +#: lib/RT/User_Overlay.pm:192 msgid "Could not set user info" msgstr "無法設定使用者資訊" -#: lib/RT/Group_Overlay.pm:977 +#: lib/RT/Group_Overlay.pm:1011 msgid "Couldn't add member to group" msgstr "無法新增æˆå“¡è‡³ç¾¤çµ„" -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 +#: lib/RT/Record.pm:1705 lib/RT/Record.pm:1757 #. ($Msg) msgid "Couldn't create a transaction: %1" msgstr "無法新增更動報告" @@ -1760,15 +1678,15 @@ msgstr "無法從 gpg 回函辨識出該採å–的行動\\n" msgid "Couldn't find group\\n" msgstr "找ä¸åˆ°ç¾¤çµ„\\n" -#: lib/RT/Record.pm:748 +#: lib/RT/Record.pm:939 msgid "Couldn't find row" msgstr "找ä¸åˆ°æ­¤åˆ—資料" -#: lib/RT/Group_Overlay.pm:951 +#: lib/RT/Group_Overlay.pm:985 msgid "Couldn't find that principal" msgstr "找ä¸åˆ°è©²å–®ä½" -#: lib/RT/CustomField_Overlay.pm:245 +#: lib/RT/CustomField_Overlay.pm:404 msgid "Couldn't find that value" msgstr "找ä¸åˆ°è©²å€¼" @@ -1780,16 +1698,18 @@ msgstr "找ä¸åˆ°è©²è¦–察員" msgid "Couldn't find user\\n" msgstr "找ä¸åˆ°ä½¿ç”¨è€…\\n" -#: lib/RT/CurrentUser.pm:123 +#: lib/RT/CurrentUser.pm:146 #. ($self->Id) msgid "Couldn't load %1 from the users database.\\n" msgstr "無法從使用者資料庫載入 %1。\\n" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:149 +#. ($id) msgid "Couldn't load Class %1" msgstr "無法載入類別 %1" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:107 +#. ($id) msgid "Couldn't load CustomField %1" msgstr "ç„¡æ³•è¼‰å…¥è‡ªè¨‚æ¬„ä½ %1" @@ -1805,25 +1725,26 @@ msgstr "無法載入 RT 設定檔 '%1' %2" msgid "Couldn't load Scrips." msgstr "無法載入手續。" -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 +#: 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:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 +#: lib/RT/Link_Overlay.pm:203 lib/RT/Link_Overlay.pm:212 lib/RT/Link_Overlay.pm:239 msgid "Couldn't load link" msgstr "無法載入éˆçµã€‚" -#: NOT FOUND IN SOURCE +#: 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/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 +#: html/Admin/Queues/People.html:142 #. ($id) msgid "Couldn't load queue" msgstr "無法載入表單" -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 +#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 #. ($id) msgid "Couldn't load queue %1" msgstr "無法載入表單 %1" @@ -1840,16 +1761,26 @@ msgstr "無法載入範本" msgid "Couldn't load that user (%1)" msgstr "無法載入該å使用者(%1)" -#: html/SelfService/Display.html:116 +#: html/SelfService/Display.html:156 #. ($id) msgid "Couldn't load ticket '%1'" msgstr "無法載入申請單 '%1'" -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 +#: lib/RT/Ticket_Overlay.pm:2612 +#. ($args{'Base'}) +msgid "Couldn't resolve base '%1' into a URI." +msgstr "" + +#: lib/RT/Ticket_Overlay.pm:2611 +#. ($args{'Target'}) +msgid "Couldn't resolve target '%1' into a URI." +msgstr "" + +#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 msgid "Country" msgstr "國家" -#: 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 +#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:132 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:68 html/Ticket/Create.html:165 html/Ticket/Create.html:226 msgid "Create" msgstr "新增" @@ -1865,20 +1796,16 @@ msgstr "新增申請單" msgid "Create User:" msgstr "新增æˆå“¡ï¼š" -#: NOT FOUND IN SOURCE -msgid "Create a Class" -msgstr "" - -#: html/Admin/Elements/EditCustomField:74 +#: html/Admin/CustomFields/Modify.html:109 html/Admin/Elements/EditCustomField:96 msgid "Create a CustomField" msgstr "新增自訂欄ä½" -#: html/Admin/Queues/CustomField.html:47 +#: html/Admin/Queues/CustomField.html:69 #. ($QueueObj->Name()) msgid "Create a CustomField for queue %1" msgstr "為 %1 表單新增自訂欄ä½" -#: html/Admin/Global/CustomField.html:47 +#: NOT FOUND IN SOURCE msgid "Create a CustomField which applies to all queues" msgstr "為 %1 表單新增自訂欄ä½" @@ -1886,10 +1813,6 @@ msgstr "為 %1 表單新增自訂欄ä½" msgid "Create a new Custom Field" msgstr "新增自訂欄ä½" -#: NOT FOUND IN SOURCE -msgid "Create a new article" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create a new global Scrip" msgstr "新增全域手續" @@ -1898,11 +1821,11 @@ msgstr "新增全域手續" msgid "Create a new global scrip" msgstr "新增全域手續" -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 +#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 msgid "Create a new group" msgstr "新增群組" -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 +#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 msgid "Create a new personal group" msgstr "新增代ç†äººç¾¤çµ„" @@ -1918,11 +1841,11 @@ msgstr "新增手續" msgid "Create a new template" msgstr "新增範本" -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 +#: html/Ticket/Create.html:46 html/Ticket/Create.html:49 html/Ticket/Create.html:57 msgid "Create a new ticket" msgstr "新增申請單" -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 +#: html/Admin/Users/Modify.html:251 html/Admin/Users/Modify.html:306 msgid "Create a new user" msgstr "新增使用者" @@ -1930,7 +1853,7 @@ msgstr "新增使用者" msgid "Create a new workflow" msgstr "新增æµç¨‹" -#: html/Admin/Queues/Modify.html:103 +#: html/Admin/Queues/Modify.html:125 msgid "Create a queue" msgstr "新增表單" @@ -1942,16 +1865,16 @@ msgstr "新增表單å稱" msgid "Create a request" msgstr "æå‡ºç”³è«‹" -#: html/Admin/Queues/Scrip.html:58 +#: html/Admin/Queues/Scrip.html:80 #. ($QueueObj->Name) msgid "Create a scrip for queue %1" msgstr "為 %1 表單新增手續" -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 +#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 msgid "Create a template" msgstr "新增範本" -#: html/SelfService/Create.html:24 +#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 msgid "Create a ticket" msgstr "æå‡ºç”³è«‹å–®" @@ -1959,14 +1882,6 @@ msgstr "æå‡ºç”³è«‹å–®" msgid "Create a workflow" msgstr "新增æµç¨‹" -#: NOT FOUND IN SOURCE -msgid "Create an article" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Create an article in class..." -msgstr "" - #: NOT FOUND IN SOURCE msgid "Create failed: %1 / %2 / %3 " msgstr "新增失敗:%1 / %2 / %3" @@ -1983,19 +1898,19 @@ msgstr "建立新項目" msgid "Create new tickets based on this scrip's template" msgstr "便“šæ­¤é …æ‰‹çºŒå…§çš„æ¨¡ç‰ˆï¼Œæ–°å¢žç”³è«‹å–®" -#: html/SelfService/Create.html:77 +#: html/SelfService/Create.html:105 msgid "Create ticket" msgstr "新增申請單" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/Queue_Overlay.pm:110 msgid "Create tickets in this queue" msgstr "在此表單中新增申請單" -#: lib/RT/Queue_Overlay.pm:73 +#: lib/RT/CustomField_Overlay.pm:101 msgid "Create, delete and modify custom fields" msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹è‡ªè¨‚欄ä½" -#: lib/RT/Queue_Overlay.pm:69 +#: lib/RT/Queue_Overlay.pm:93 msgid "Create, delete and modify queues" msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹è¡¨å–®" @@ -2003,35 +1918,31 @@ msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹è¡¨å–®" msgid "Create, delete and modify the members of any user's personal groups" msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹ä»»ä½•使用者的代ç†äººç¾¤çµ„" -#: lib/RT/System.pm:58 +#: lib/RT/System.pm:81 msgid "Create, delete and modify the members of personal groups" msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹ä»£ç†äººç¾¤çµ„" -#: lib/RT/System.pm:59 +#: lib/RT/System.pm:82 msgid "Create, delete and modify users" msgstr "新增ã€åˆªé™¤åŠæ›´æ”¹ä½¿ç”¨è€…" -#: lib/RT/Queue_Overlay.pm:86 +#: lib/RT/System.pm:88 +msgid "CreateSavedSearch" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:110 msgid "CreateTicket" msgstr "新增申請單" -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 +#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1145 msgid "Created" msgstr "新增日" -#: html/Admin/Elements/EditCustomField:87 +#: html/Admin/CustomFields/Modify.html:121 html/Admin/Elements/EditCustomField:117 #. ($CustomFieldObj->Name()) msgid "Created CustomField %1" msgstr "è‡ªè¨‚æ¬„ä½ %1 新增æˆåŠŸ" -#: NOT FOUND IN SOURCE -msgid "Created by" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Created during" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Created template %1" msgstr "範本 %1 新增æˆåŠŸ" @@ -2040,7 +1951,7 @@ msgstr "範本 %1 新增æˆåŠŸ" msgid "Created workflow %1" msgstr "æµç¨‹ %1 新增æˆåŠŸ" -#: html/Search/Elements/PickBasics:115 +#: html/Search/Elements/PickBasics:102 msgid "Creator" msgstr "建立者" @@ -2060,19 +1971,15 @@ msgstr "ç¾æœ‰è‡ªè¨‚欄ä½" msgid "Current Groups:" msgstr "ç¾æœ‰ç¾¤çµ„列表:" -#: html/Elements/EditLinks:27 +#: html/Elements/EditLinks:49 msgid "Current Links" msgstr "ç¾æœ‰é—œä¿‚" -#: NOT FOUND IN SOURCE -msgid "Current Relationships" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Current Rights:" msgstr "ç¾æœ‰æ¬Šé™ï¼š" -#: html/Admin/Elements/EditScrips:29 +#: html/Admin/Elements/EditScrips:51 msgid "Current Scrips" msgstr "ç¾æœ‰æ‰‹çºŒ" @@ -2088,11 +1995,11 @@ msgstr "ç¾æœ‰ç¯„本" msgid "Current Watchers" msgstr "ç¾æœ‰è¦–察員" -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 +#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 msgid "Current members" msgstr "ç¾æœ‰æˆå“¡" -#: html/Admin/Elements/SelectRights:28 +#: html/Admin/Elements/SelectRights:51 msgid "Current rights" msgstr "ç¾æœ‰æ¬Šé™" @@ -2100,20 +2007,20 @@ msgstr "ç¾æœ‰æ¬Šé™" msgid "Current search criteria" msgstr "ç¾æœ‰æŸ¥è©¢æ¢ä»¶" -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 +#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 msgid "Current watchers" msgstr "ç¾æœ‰è¦–察員" -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) +#: NOT FOUND IN SOURCE msgid "Custom Field #%1" msgstr "è‡ªè¨‚æ¬„ä½ #%1" -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 +#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:208 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:57 msgid "Custom Fields" msgstr "自訂欄ä½" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:59 +#. ($lookup) msgid "Custom Fields for %1" msgstr "%1 的自訂欄ä½" @@ -2121,20 +2028,19 @@ msgstr "%1 的自訂欄ä½" msgid "Custom Fields which apply to all queues" msgstr "é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„自訂欄ä½" -#: html/Admin/Elements/EditScrip:101 +#: html/Admin/Elements/EditScrip:123 msgid "Custom action cleanup code" msgstr "動作後執行程å¼" -#: html/Admin/Elements/EditScrip:93 +#: html/Admin/Elements/EditScrip:115 msgid "Custom action preparation code" msgstr "動作å‰åŸ·è¡Œç¨‹å¼" -#: html/Admin/Elements/EditScrip:85 +#: html/Admin/Elements/EditScrip:107 msgid "Custom condition" msgstr "自訂æ¢ä»¶" -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) +#: NOT FOUND IN SOURCE msgid "Custom field %1 %2 %3" msgstr "è‡ªè¨‚æ¬„ä½ %1 %2 %3" @@ -2142,30 +2048,30 @@ msgstr "è‡ªè¨‚æ¬„ä½ %1 %2 %3" msgid "Custom field %1 does not apply to this object" msgstr "è‡ªè¨‚æ¬„ä½ %1 ä¸é©ç”¨æ–¼æ­¤ç‰©ä»¶" -#: lib/RT/Tickets_Overlay.pm:1688 +#: lib/RT/Tickets_Overlay.pm:2147 #. ($CF->Name) msgid "Custom field %1 has a value." msgstr "è‡ªè¨‚æ¬„ä½ %1 已有值" -#: lib/RT/Tickets_Overlay.pm:1685 +#: lib/RT/Tickets_Overlay.pm:2143 #. ($CF->Name) msgid "Custom field %1 has no value." msgstr "è‡ªè¨‚æ¬„ä½ %1 沒有值" -#: lib/RT/Ticket_Overlay.pm:3373 +#: lib/RT/Record.pm:1579 lib/RT/Record.pm:1740 #. ($args{'Field'}) msgid "Custom field %1 not found" msgstr "找ä¸åˆ°è‡ªè¨‚æ¬„ä½ %1" -#: html/Admin/Elements/EditCustomFields:195 +#: NOT FOUND IN SOURCE msgid "Custom field deleted" msgstr "自訂欄ä½å·²åˆªé™¤" -#: lib/RT/Ticket_Overlay.pm:3523 +#: NOT FOUND IN SOURCE msgid "Custom field not found" msgstr "找ä¸åˆ°è‡ªè¨‚欄ä½" -#: lib/RT/CustomField_Overlay.pm:355 +#: lib/RT/CustomField_Overlay.pm:1041 #. ($args{'Content'}, $self->Name) msgid "Custom field value %1 could not be found for custom field %2" msgstr "ç„¡æ³•å¾žè‡ªè¨‚æ¬„ä½ %2 中找到 %1 這個欄ä½å€¼" @@ -2174,19 +2080,19 @@ msgstr "ç„¡æ³•å¾žè‡ªè¨‚æ¬„ä½ %2 中找到 %1 這個欄ä½å€¼" msgid "Custom field value changed from %1 to %2" msgstr "自訂欄ä½å€¼å¾ž %1 改為 %2" -#: lib/RT/CustomField_Overlay.pm:255 +#: lib/RT/CustomField_Overlay.pm:414 msgid "Custom field value could not be deleted" msgstr "無法刪除自訂欄ä½å€¼" -#: lib/RT/CustomField_Overlay.pm:361 +#: lib/RT/CustomField_Overlay.pm:1047 msgid "Custom field value could not be found" msgstr "找ä¸åˆ°è‡ªè¨‚欄ä½å€¼" -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 +#: lib/RT/CustomField_Overlay.pm:1049 lib/RT/CustomField_Overlay.pm:412 msgid "Custom field value deleted" msgstr "自訂欄ä½å€¼åˆªé™¤æˆåŠŸ" -#: lib/RT/Transaction_Overlay.pm:541 +#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:627 msgid "CustomField" msgstr "自訂欄ä½" @@ -2206,7 +2112,7 @@ msgstr "MySQL資料庫" msgid "Date of Departure" msgstr "出發日期" -#: 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 +#: html/SelfService/Display.html:61 html/Ticket/Create.html:191 html/Ticket/Elements/ShowSummary:76 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 msgid "Dates" msgstr "日期" @@ -2214,7 +2120,7 @@ msgstr "日期" msgid "Dec" msgstr "å二月" -#: lib/RT/Date.pm:422 +#: lib/RT/Date.pm:448 msgid "Dec." msgstr "12" @@ -2234,13 +2140,13 @@ msgstr "é è¨­è‡ªå‹•回應範本" msgid "Default Autoresponse template" msgstr "é è¨­è‡ªå‹•回應範本" -#: html/Tools/Offline.html:39 +#: html/Tools/Offline.html:61 msgid "Default Queue" msgstr "é è¨­è¡¨å–®" -#: html/Tools/Offline.html:48 +#: html/Tools/Offline.html:70 msgid "Default Requestor" -msgstr "" +msgstr "é è¨­ç”³è«‹äºº" #: NOT FOUND IN SOURCE msgid "Default Value" @@ -2262,8 +2168,7 @@ msgstr "é è¨­å›žè¦†ç¯„本" msgid "Default transaction template" msgstr "é è¨­æ›´å‹•範本" -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) +#: NOT FOUND IN SOURCE msgid "Default: %1/%2 changed from %3 to %4" msgstr "é è¨­ï¼š%1/%2 已自 %3 改為 %4" @@ -2271,15 +2176,15 @@ msgstr "é è¨­ï¼š%1/%2 已自 %3 改為 %4" msgid "DefaultApproval" msgstr "é è¨­ç°½æ ¸" -#: html/User/Delegation.html:24 html/User/Delegation.html:27 +#: html/User/Delegation.html:46 html/User/Delegation.html:49 msgid "Delegate rights" -msgstr "代表團權é™" +msgstr "代ç†äººæ¬Šé™" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "Delegate specific rights which have been granted to you." msgstr "å°‡æ“æœ‰çš„æ¬Šé™å§”託他人代ç†" -#: lib/RT/System.pm:62 +#: lib/RT/System.pm:85 msgid "DelegateRights" msgstr "設定代ç†äºº" @@ -2331,7 +2236,7 @@ msgstr "代ç†äººè¨­å®š" msgid "Delegates Status" msgstr "代ç†ç‹€æ…‹" -#: html/User/Elements/Tabs:37 +#: html/User/Elements/Tabs:59 msgid "Delegation" msgstr "代ç†äººæ¬Šé™" @@ -2343,39 +2248,44 @@ msgstr "代ç†äººç¾¤çµ„" msgid "Delegation Rights" msgstr "代ç†äººæ¬Šé™" -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 +#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 msgid "Delete" msgstr "刪除" -#: html/Admin/Elements/EditTemplates:57 +#: html/Admin/Elements/EditTemplates:79 msgid "Delete Template" -msgstr "" +msgstr "刪除範本" -#: NOT FOUND IN SOURCE -msgid "Delete article #%1" +#: lib/RT/SavedSearch.pm:211 +#. ($msg) +msgid "Delete failed: %1" msgstr "" -#: html/Admin/Elements/EditScrips:52 +#: html/Admin/Elements/EditScrips:74 msgid "Delete selected scrips" msgstr "刪除指定的手續" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "Delete tickets" msgstr "刪除申請單" -#: lib/RT/Queue_Overlay.pm:91 +#: lib/RT/Queue_Overlay.pm:115 msgid "DeleteTicket" msgstr "刪除申請單" -#: lib/RT/Transaction_Overlay.pm:162 +#: lib/RT/SavedSearch.pm:209 +msgid "Deleted search" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Deleting this object could break referential integrity" msgstr "刪除此物件å¯èƒ½ç ´å£žåƒè€ƒå®Œæ•´æ€§" -#: lib/RT/Queue_Overlay.pm:329 +#: lib/RT/Queue_Overlay.pm:391 msgid "Deleting this object would break referential integrity" msgstr "刪除此物件å¯èƒ½ç ´å£žåƒè€ƒå®Œæ•´æ€§" -#: lib/RT/User_Overlay.pm:478 +#: lib/RT/User_Overlay.pm:513 msgid "Deleting this object would violate referential integrity" msgstr "刪除此物件會é•ååƒè€ƒå®Œæ•´æ€§" @@ -2387,7 +2297,7 @@ msgstr "刪除此物件會é•ååƒè€ƒå®Œæ•´æ€§" msgid "Deleting this object would violate referential integrity. That's bad." msgstr "刪除此物件會é•ååƒè€ƒå®Œæ•´æ€§" -#: html/Approvals/Elements/Approve:44 +#: html/Approvals/Elements/Approve:66 msgid "Deny" msgstr "é§å›ž" @@ -2423,7 +2333,7 @@ msgstr "è«‹å‡å–®" msgid "Departure Until" msgstr "差旅截止日" -#: 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 +#: html/Elements/EditLinks:138 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:212 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 msgid "Depended on by" msgstr "å¯æŽ¥çºŒè™•ç†çš„申請單" @@ -2431,27 +2341,27 @@ msgstr "å¯æŽ¥çºŒè™•ç†çš„申請單" msgid "Dependencies: \\n" msgstr "附屬性:\\n" -#: lib/RT/Transaction_Overlay.pm:621 +#: lib/RT/Transaction_Overlay.pm:707 #. ($value) msgid "Dependency by %1 added" msgstr "å·²åŠ å…¥å¯æŽ¥çºŒè™•ç†çš„申請單 %1" -#: lib/RT/Transaction_Overlay.pm:661 +#: lib/RT/Transaction_Overlay.pm:747 #. ($value) msgid "Dependency by %1 deleted" msgstr "å·²ç§»é™¤å¯æŽ¥çºŒè™•ç†çš„申請單 %1" -#: lib/RT/Transaction_Overlay.pm:618 +#: lib/RT/Transaction_Overlay.pm:704 #. ($value) msgid "Dependency on %1 added" msgstr "已加入需先處ç†çš„申請單 %1" -#: lib/RT/Transaction_Overlay.pm:658 +#: lib/RT/Transaction_Overlay.pm:744 #. ($value) msgid "Dependency on %1 deleted" msgstr "已移除需先處ç†çš„申請單 %1" -#: 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 +#: html/Elements/EditLinks:134 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:211 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 msgid "Depends on" msgstr "需先處ç†" @@ -2459,15 +2369,15 @@ msgstr "需先處ç†" msgid "DependsOn" msgstr "需先處ç†" -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 +#: html/Elements/SelectSortOrder:56 html/Search/Elements/DisplayOptions:78 msgid "Descending" msgstr "éžæ¸›" -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 +#: html/SelfService/Create.html:100 html/Ticket/Create.html:149 msgid "Describe the issue below" msgstr "åœ¨ä»¥ä¸‹æ¬„ä½æè¿°ä¸»é¡Œ" -#: 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 +#: 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:56 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 "æè¿°" @@ -2499,31 +2409,31 @@ msgstr "殘障類別" msgid "Disabled" msgstr "åœç”¨" -#: html/Ticket/Elements/Tabs:86 +#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 msgid "Display" msgstr "顯示內容" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "Display Access Control List" msgstr "é¡¯ç¤ºæ¬Šé™æŽ§åˆ¶æ¸…å–®" -#: html/Search/Elements/DisplayOptions:25 +#: html/Search/Elements/DisplayOptions:46 msgid "Display Columns" msgstr "顯示欄ä½" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "Display Scrip templates for this queue" msgstr "顯示此表單的範本" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "Display Scrips for this queue" msgstr "顯示此表單的手續" -#: html/Ticket/Elements/ShowHistory:34 +#: html/Ticket/Elements/ShowHistory:56 msgid "Display mode" msgstr "顯示模å¼" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "Display saved searches for this group" msgstr "顯示此群組已儲存的查詢" @@ -2531,15 +2441,19 @@ msgstr "顯示此群組已儲存的查詢" msgid "Display ticket #%1" msgstr "顯示第%1號申請單" -#: html/Elements/Footer:38 +#: html/Elements/Footer:60 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:53 +#: lib/RT/System.pm:76 msgid "Do anything and everything" msgstr "å…許一切æ“作" -#: html/Elements/Refresh:29 +#: html/Search/Build.html:112 +msgid "Do the Search" +msgstr "" + +#: html/Elements/Refresh:51 msgid "Don't refresh this page." msgstr "䏿›´æ–°æ­¤é é¢ã€‚" @@ -2555,15 +2469,11 @@ msgstr "完æˆ" msgid "Down" msgstr "下一é " -#: html/Ticket/Elements/ShowTransactionAttachments:60 +#: html/Ticket/Elements/ShowTransactionAttachments:82 msgid "Download" msgstr "下載" -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 msgid "Download as a tab-delimited file" msgstr "下載以 Tab 分隔的檔案" @@ -2571,7 +2481,7 @@ msgstr "下載以 Tab 分隔的檔案" msgid "Dr." msgstr "åšå£«" -#: 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 +#: html/Elements/SelectDateType:53 html/Ticket/Create.html:197 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1149 msgid "Due" msgstr "到期日" @@ -2595,36 +2505,40 @@ msgstr "編輯" msgid "Edit Conditions" msgstr "編輯å‰ç½®æ¢ä»¶" -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) +#: 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 的自訂欄ä½" -#: NOT FOUND IN SOURCE -msgid "Edit Custom Fields for Class %1" +#: html/Admin/Global/CustomFields/Groups.html:9 +msgid "Edit Custom Fields for all groups" +msgstr "" + +#: html/Admin/Global/CustomFields/Users.html:9 +msgid "Edit Custom Fields for all users" msgstr "" #: NOT FOUND IN SOURCE msgid "Edit Custom Fields for queue %1" msgstr "編輯表單 %1 的自訂欄ä½" -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 +#: html/Admin/Global/CustomFields/Queue-Tickets.html:9 html/Admin/Global/CustomFields/Queue-Transactions.html:9 +msgid "Edit Custom Fields for tickets in all queues" +msgstr "" + +#: html/Search/Bulk.html:173 html/Ticket/ModifyLinks.html:57 msgid "Edit Links" msgstr "編輯申請單關係" -#: html/Search/Edit.html:46 +#: html/Search/Edit.html:68 msgid "Edit Query" msgstr "編輯查詢" -#: NOT FOUND IN SOURCE -msgid "Edit Relationships" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Edit Subgroups" msgstr "新增/ç¶­è­·å­ç¾¤çµ„" -#: html/Admin/Queues/Templates.html:41 +#: html/Admin/Queues/Templates.html:63 #. ($QueueObj->Name) msgid "Edit Templates for queue %1" msgstr "編輯表單 %1 的範本" @@ -2637,7 +2551,7 @@ msgstr "編輯表單 %1 çš„æµç¨‹" msgid "Edit keywords" msgstr "編輯關éµå­—" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "Edit saved searches for this group" msgstr "編輯此群組已儲存的查詢" @@ -2645,7 +2559,7 @@ msgstr "編輯此群組已儲存的查詢" msgid "Edit scrips" msgstr "編輯手續" -#: html/Admin/Global/index.html:45 +#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 msgid "Edit system templates" msgstr "編輯全域範本" @@ -2661,15 +2575,11 @@ msgstr "編輯 %1 的範本" msgid "Edit workflows for %1" msgstr "編輯 %1 çš„æµç¨‹" -#: lib/RT/Group_Overlay.pm:150 +#: lib/RT/Group_Overlay.pm:175 msgid "EditSavedSearches" msgstr "編輯已儲存的查詢" -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for Class %1" -msgstr "" - -#: html/Admin/Queues/Modify.html:118 +#: html/Admin/Queues/Modify.html:140 #. ($QueueObj->Name) msgid "Editing Configuration for queue %1" msgstr "編輯表單 %1 的設定" @@ -2678,17 +2588,17 @@ msgstr "編輯表單 %1 的設定" msgid "Editing Configuration for user %1" msgstr "編輯使用者 %1 的設定" -#: html/Admin/Elements/EditCustomField:90 +#: html/Admin/CustomFields/Modify.html:125 html/Admin/Elements/EditCustomField:120 #. ($CustomFieldObj->Name()) msgid "Editing CustomField %1" msgstr "ç·¨è¼¯è‡ªè¨‚æ¬„ä½ %1" -#: html/Admin/Groups/Members.html:31 +#: html/Admin/Groups/Members.html:53 #. ($Group->Name) msgid "Editing membership for group %1" msgstr "編輯群組 %1 çš„æˆå“¡è³‡è¨Š" -#: html/User/Groups/Members.html:128 +#: html/User/Groups/Members.html:150 #. ($Group->Name) msgid "Editing membership for personal group %1" msgstr "編輯代ç†äººç¾¤çµ„ %1 çš„æˆå“¡è³‡è¨Š" @@ -2709,11 +2619,11 @@ msgstr "最高學歷" msgid "EffectiveId" msgstr "有效編號" -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 +#: lib/RT/Record.pm:1281 lib/RT/Record.pm:1358 msgid "Either base or target must be specified" msgstr "éœ€è¦æŒ‡å®šèµ·å§‹ç”³è«‹å–®æˆ–目的申請單" -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 +#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 msgid "Email" msgstr "é›»å­éƒµä»¶ä¿¡ç®±" @@ -2721,7 +2631,7 @@ msgstr "é›»å­éƒµä»¶ä¿¡ç®±" msgid "Email Address" msgstr "é›»å­éƒµä»¶ä¿¡ç®±" -#: lib/RT/User_Overlay.pm:206 +#: lib/RT/User_Overlay.pm:236 msgid "Email address in use" msgstr "此電å­éƒµä»¶ä¿¡ç®±å·²è¢«ä½¿ç”¨" @@ -2749,27 +2659,19 @@ msgstr "抵é”地點" msgid "Enable Delegates" msgstr "代ç†å•Ÿå‹•" -#: NOT FOUND IN SOURCE -msgid "Enabled (Unchecking this box disables this Class)" -msgstr "" - -#: html/Admin/Elements/EditCustomField:50 +#: html/Admin/CustomFields/Modify.html:83 html/Admin/Elements/EditCustomField:72 msgid "Enabled (Unchecking this box disables this custom field)" msgstr "啟用(å–æ¶ˆå‹¾é¸å°‡åœç”¨æ­¤è‡ªè¨‚欄ä½)" -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 +#: 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:83 +#: html/Admin/Queues/Modify.html:105 msgid "Enabled (Unchecking this box disables this queue)" msgstr "啟用(å–æ¶ˆå‹¾é¸å°‡åœç”¨æ­¤è¡¨å–®)" #: NOT FOUND IN SOURCE -msgid "Enabled Classes" -msgstr "" - -#: html/Admin/Elements/EditCustomFields:97 msgid "Enabled Custom Fields" msgstr "已啟用的自訂欄ä½" @@ -2781,7 +2683,7 @@ msgstr "啟用日期" msgid "Enabled Date:" msgstr "啟動日期:" -#: html/Admin/Queues/index.html:55 +#: html/Admin/Queues/index.html:78 msgid "Enabled Queues" msgstr "已啟用的表單" @@ -2789,12 +2691,13 @@ msgstr "已啟用的表單" msgid "Enabled Status" msgstr "啟用狀態" -#: 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 +#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:342 html/User/Groups/Modify.html:138 #. (loc_fuzzy($msg)) msgid "Enabled status %1" msgstr "啟用狀態 %1" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Modify.html:143 html/Admin/Queues/Modify.html:162 +#. (loc_fuzzy($msg)) msgid "Enabled status: %1" msgstr "啟用狀態: %1" @@ -2806,15 +2709,11 @@ msgstr "試用期滿日" msgid "English Name" msgstr "英文姓å" -#: NOT FOUND IN SOURCE -msgid "Enter Articles or URIs to link Articles to. Seperate multiple entries with spaces." -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:433 +#: lib/RT/CustomField_Overlay.pm:64 msgid "Enter multiple values" msgstr "éµå…¥å¤šé‡é …ç›®" -#: html/Elements/EditLinks:99 +#: html/Elements/EditLinks:124 msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." msgstr "éµå…¥æ¬²å°‡ç‰©ä»¶é€£çµè‡³çš„物件或 URI。項目之間請以空白隔開。" @@ -2822,23 +2721,19 @@ msgstr "éµå…¥æ¬²å°‡ç‰©ä»¶é€£çµè‡³çš„物件或 URI。項目之間請以空白 msgid "Enter one or more conditions below to search for users" msgstr "éµå…¥ä¸‹åˆ—å–®ä¸€æˆ–è¤‡å¼æ¢ä»¶ï¼ŒæŸ¥è©¢ç”¨æˆ¶è³‡æ–™" -#: lib/RT/CustomField_Overlay.pm:430 +#: lib/RT/CustomField_Overlay.pm:65 msgid "Enter one value" msgstr "éµå…¥å–®ä¸€é …ç›®" -#: html/Elements/EditLinks:97 +#: html/Elements/EditLinks:121 msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." msgstr "éµå…¥æ¬²å°‡è¡¨å–®é€£çµè‡³çš„物件或 URI。項目之間請以空白隔開。" -#: html/Elements/EditLinks:95 +#: html/Elements/EditLinks:117 html/Search/Bulk.html:174 msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "éµå…¥æ¬²å°‡ç”³è«‹å–®é€£çµè‡³çš„物件或 URI。項目之間請以空白隔開。" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." msgstr "éµå…¥ç”³è«‹å–®å¯éˆçµåˆ°çš„申請單編號或網å€ã€‚項目之間請以空白隔開。" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:66 msgid "Enter up to %1 values" msgstr "éµå…¥æœ€å¤š %1 個值" @@ -2874,7 +2769,7 @@ msgstr "å–®é¸å¡«è¡¨" msgid "EntryTime" msgstr "時間填表" -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 +#: html/Elements/Login:61 html/SelfService/Error.html:46 html/SelfService/Error.html:47 msgid "Error" msgstr "錯誤" @@ -2882,31 +2777,23 @@ msgstr "錯誤" msgid "Error adding watcher" msgstr "新增視察員失敗" -#: lib/RT/Queue_Overlay.pm:593 +#: lib/RT/Queue_Overlay.pm:669 msgid "Error in parameters to Queue->AddWatcher" msgstr "表單->æ–°å¢žè¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Queue->DelWatcher" -msgstr "表單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" - -#: lib/RT/Queue_Overlay.pm:754 +#: lib/RT/Queue_Overlay.pm:830 msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "" +msgstr "表單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: lib/RT/Ticket_Overlay.pm:1468 +#: lib/RT/Ticket_Overlay.pm:1333 msgid "Error in parameters to Ticket->AddWatcher" msgstr "申請單->æ–°å¢žè¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Ticket->DelWatcher" -msgstr "申請單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" - -#: lib/RT/Ticket_Overlay.pm:1630 +#: lib/RT/Ticket_Overlay.pm:1499 msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "" +msgstr "申請單->åˆªé™¤è¦–å¯Ÿå“¡çš„åƒæ•¸æœ‰èª¤" -#: bin/rt-crontool:206 +#: bin/rt-crontool:233 msgid "Escalate tickets" msgstr "調整申請單優先等級" @@ -2914,7 +2801,7 @@ msgstr "調整申請單優先等級" msgid "Estimate" msgstr "é è¨ˆ" -#: html/Ticket/Elements/ShowBasics:35 +#: html/Ticket/Elements/ShowBasics:57 msgid "Estimated" msgstr "é è¨ˆ" @@ -2922,7 +2809,7 @@ msgstr "é è¨ˆ" msgid "Everyone" msgstr "所有人" -#: bin/rt-crontool:190 +#: bin/rt-crontool:219 msgid "Example:" msgstr "範例:" @@ -2958,36 +2845,37 @@ msgstr "外部資料庫用戶" msgid "ExternalURL" msgstr "外部介é¢ç¶²å€" -#: html/Admin/Users/Modify.html:72 +#: html/Admin/Users/Modify.html:99 msgid "Extra info" msgstr "備註" -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Extract article from ticket #%1 into class %2" +#: lib/RT/SavedSearch.pm:165 +msgid "Failed to create search attribute" msgstr "" -#: lib/RT/User_Overlay.pm:342 +#: lib/RT/User_Overlay.pm:377 msgid "Failed to find 'Privileged' users pseudogroup." msgstr "找ä¸åˆ°ã€Œå…§éƒ¨æˆå“¡ã€è™›æ“¬ç¾¤çµ„的使用者。" -#: lib/RT/User_Overlay.pm:349 +#: lib/RT/User_Overlay.pm:384 msgid "Failed to find 'Unprivileged' users pseudogroup" msgstr "找ä¸åˆ°ã€Œéžå…§éƒ¨æˆå“¡ã€è™›æ“¬ç¾¤çµ„的使用者。" -#: bin/rt-crontool:134 +#: bin/rt-crontool:163 #. ($modname, $@) msgid "Failed to load module %1. (%2)" msgstr "無法載入模組 %1. (%2)" +#: lib/RT/SavedSearch.pm:168 +#. ($privacy) +msgid "Failed to load object for %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Feb" msgstr "二月" -#: lib/RT/Date.pm:412 +#: lib/RT/Date.pm:438 msgid "Feb." msgstr "02" @@ -3015,22 +2903,34 @@ msgstr "欄ä½å稱" msgid "Field Type" msgstr "欄ä½é¡žåˆ¥" -#: html/Elements/SelectAttachmentField:28 +#: html/Elements/SelectAttachmentField:50 msgid "Filename" msgstr "檔å" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:69 msgid "Fill in multiple text areas" msgstr "填入多個文字框" -#: NOT FOUND IN SOURCE +#: 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 "填入一個文字框" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:75 +msgid "Fill in one wikitext area" +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 "篩é¸" @@ -3047,11 +2947,11 @@ msgstr "篩é¸åˆ—表:" msgid "Fin" msgstr "最終" -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 +#: html/Search/Elements/PickBasics:162 html/Ticket/Create.html:185 html/Ticket/Elements/EditBasics:79 lib/RT/Tickets_Overlay.pm:1569 msgid "Final Priority" msgstr "最終順ä½" -#: lib/RT/Ticket_Overlay.pm:1274 +#: lib/RT/Ticket_Overlay.pm:1140 msgid "FinalPriority" msgstr "最終順ä½" @@ -3059,11 +2959,11 @@ msgstr "最終順ä½" msgid "Financial Department:" msgstr "財務部:" -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 +#: NOT FOUND IN SOURCE msgid "Find group whose" msgstr "尋找群組的" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 msgid "Find groups whose" msgstr "尋找群組的" @@ -3071,7 +2971,7 @@ msgstr "尋找群組的" msgid "Find new/open tickets" msgstr "尋找/開啟申請單" -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 +#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 msgid "Find people whose" msgstr "尋找人員的" @@ -3079,7 +2979,7 @@ msgstr "尋找人員的" msgid "Find queues whose" msgstr "尋找表單的" -#: html/Search/Results.html:72 +#: html/Search/Results.html:109 msgid "Find tickets" msgstr "尋找申請單" @@ -3087,7 +2987,7 @@ msgstr "尋找申請單" msgid "Finish Approval" msgstr "簽核完畢" -#: html/Ticket/Elements/Tabs:59 +#: html/Ticket/Elements/Tabs:81 msgid "First" msgstr "第一項" @@ -3111,15 +3011,15 @@ msgstr "一階主管員工" msgid "Fixed shift" msgstr "固定ç­" -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 +#: 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:737 +#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 msgid "Foo!" msgstr "甲ï¼" -#: html/Search/Bulk.html:84 +#: html/Search/Bulk.html:105 msgid "Force change" msgstr "強制更æ›" @@ -3127,12 +3027,16 @@ msgstr "強制更æ›" msgid "Form Processing" msgstr "é›»å­è¡¨å–®ä½œæ¥­å€" -#: html/Search/Results.html:70 +#: html/Search/Elements/EditFormat:52 +msgid "Format" +msgstr "" + +#: html/Search/Results.html:107 #. ($ticketcount) msgid "Found %quant(%1,ticket)" msgstr "找到 %1 張申請單" -#: lib/RT/Record.pm:750 +#: lib/RT/Record.pm:942 msgid "Found Object" msgstr "已找到物件" @@ -3156,7 +3060,7 @@ msgstr "日期輸入" msgid "FreeformExternal" msgstr "系統欄ä½" -#: lib/RT/CustomField_Overlay.pm:37 +#: NOT FOUND IN SOURCE msgid "FreeformMultiple" msgstr "多é‡è¼¸å…¥" @@ -3168,7 +3072,7 @@ msgstr "數值輸入" msgid "FreeformPassword" msgstr "密碼輸入" -#: lib/RT/CustomField_Overlay.pm:36 +#: NOT FOUND IN SOURCE msgid "FreeformSingle" msgstr "單一輸入" @@ -3180,11 +3084,11 @@ msgstr "時間輸入" msgid "Fri" msgstr "星期五" -#: lib/RT/Date.pm:392 +#: lib/RT/Date.pm:417 msgid "Fri." msgstr "星期五" -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 +#: html/Ticket/Elements/ShowHistory:62 html/Ticket/Elements/ShowHistory:72 msgid "Full headers" msgstr "完整標頭檔" @@ -3196,7 +3100,7 @@ msgstr "登入帳號" msgid "Gender" msgstr "性別" -#: html/Tools/Offline.html:65 +#: html/Tools/Offline.html:87 msgid "Get template from file" msgstr "å–出檔案裡的範本" @@ -3204,12 +3108,12 @@ msgstr "å–出檔案裡的範本" msgid "Getting the current user from a pgp sig\\n" msgstr "å–å¾—ç›®å‰ä½¿ç”¨è€…çš„ pgp 簽章\\n" -#: lib/RT/Transaction_Overlay.pm:587 +#: lib/RT/Transaction_Overlay.pm:673 #. ($New->Name) msgid "Given to %1" msgstr "交予 %1" -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 +#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 msgid "Global" msgstr "全域設定" @@ -3217,7 +3121,7 @@ msgstr "全域設定" msgid "Global Approval" msgstr "全域簽核" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:55 msgid "Global Custom Fields" msgstr "全域自訂欄ä½" @@ -3237,7 +3141,11 @@ msgstr "全域手續" msgid "Global Setup" msgstr "全域設定" -#: html/Admin/Elements/SelectTemplate:37 +#: html/Admin/Global/CustomFields/index.html:59 +msgid "Global custom field configuration" +msgstr "" + +#: html/Admin/Elements/SelectTemplate:59 #. (loc($Template->Name)) msgid "Global template: %1" msgstr "全域範本:%1" @@ -3246,11 +3154,11 @@ msgstr "全域範本:%1" msgid "GlobalApproval" msgstr "全域簽核" -#: html/Tools/Offline.html:69 +#: html/Tools/Offline.html:91 msgid "Go" msgstr "執行" -#: 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 +#: 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/Search/Results.html:76 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 html/index.html:91 msgid "Go!" msgstr "執行" @@ -3262,7 +3170,7 @@ msgstr "%1 çš„ pgp 簽章是正確的\\n" msgid "Goto page" msgstr "到é é¢" -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 +#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 msgid "Goto ticket" msgstr "跳到申請單" @@ -3270,7 +3178,7 @@ msgstr "跳到申請單" msgid "Grand" msgstr "上" -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 +#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 msgid "Group" msgstr "群組" @@ -3302,7 +3210,7 @@ msgstr "群組å稱" msgid "Group Name:" msgstr "群組å稱:" -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 +#: 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 "群組權é™" @@ -3318,7 +3226,7 @@ msgstr "群組設定" msgid "Group Status" msgstr "群組狀態" -#: lib/RT/Group_Overlay.pm:957 +#: lib/RT/Group_Overlay.pm:991 msgid "Group already has member" msgstr "群組內已有此æˆå“¡" @@ -3326,12 +3234,12 @@ msgstr "群組內已有此æˆå“¡" msgid "Group could not be created." msgstr "無法新增群組" -#: html/Admin/Groups/Modify.html:76 +#: html/Admin/Groups/Modify.html:109 #. ($create_msg) msgid "Group could not be created: %1" msgstr "無法新增群組:%1" -#: lib/RT/Group_Overlay.pm:497 +#: lib/RT/Group_Overlay.pm:529 msgid "Group created" msgstr "群組新增完畢" @@ -3339,11 +3247,11 @@ msgstr "群組新增完畢" msgid "Group created: %1" msgstr "群組 %1 新增完畢" -#: lib/RT/Group_Overlay.pm:1129 +#: lib/RT/Group_Overlay.pm:1163 msgid "Group has no such member" msgstr "群組沒有這個æˆå“¡" -#: 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 +#: lib/RT/Group_Overlay.pm:971 lib/RT/Queue_Overlay.pm:745 lib/RT/Queue_Overlay.pm:805 lib/RT/Ticket_Overlay.pm:1391 lib/RT/Ticket_Overlay.pm:1471 msgid "Group not found" msgstr "找ä¸åˆ°ç¾¤çµ„" @@ -3375,19 +3283,19 @@ msgstr "群組之" msgid "Group:" msgstr "群組:" -#: 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 +#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:56 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:85 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:1088 msgid "Groups" msgstr "群組" -#: lib/RT/Group_Overlay.pm:963 +#: lib/RT/Group_Overlay.pm:997 msgid "Groups can't be members of their members" msgstr "ä¸èƒ½å°‡ç¾¤çµ„設為群組內æˆå“¡" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:82 msgid "Groups matching search criteria" msgstr "ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„群組" -#: NOT FOUND IN SOURCE +#: html/Ticket/Elements/ShowRequestor:77 msgid "Groups this user belongs to" msgstr "使用者所屬的群組" @@ -3407,11 +3315,11 @@ msgstr "HTML 屬性" msgid "Health Insurance" msgstr "å¥ä¿è£œåŠ©èº«ä»½" -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 +#: 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:753 +#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 #. ($name) msgid "Hello, %1" msgstr "嗨,%1" @@ -3428,19 +3336,17 @@ msgstr "å„項業務窗å£" msgid "Hidden" msgstr "éš±è—" -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 +#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:51 html/Ticket/Elements/Tabs:111 msgid "History" msgstr "紀錄" -#: NOT FOUND IN SOURCE -msgid "History for article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/History.html:62 +#. ($GroupObj->Name) msgid "History of the group %1" msgstr "群組 %1 的紀錄" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/History.html:62 +#. ($UserObj->Name) msgid "History of the user %1" msgstr "使用者 %1 的紀錄" @@ -3448,7 +3354,7 @@ msgstr "使用者 %1 的紀錄" msgid "HomePhone" msgstr "ä½è™•電話" -#: html/Elements/Tabs:43 +#: html/Elements/Tabs:65 msgid "Homepage" msgstr "主é " @@ -3456,13 +3362,13 @@ msgstr "主é " msgid "Hotel Expense" msgstr "ä½å®¿è²»" -#: lib/RT/Base.pm:86 +#: lib/RT/Base.pm:110 #. (6) msgid "I have %quant(%1,concrete mixer)." msgstr "我有 %quant(%1,份固體攪拌器)。" -#: NOT FOUND IN SOURCE -msgid "I have [quant,_1,concrete mixer]." +#: html/Search/Build.html:637 +msgid "I'm lost" msgstr "" #: NOT FOUND IN SOURCE @@ -3473,11 +3379,11 @@ msgstr "身分證號" msgid "ID Type" msgstr "身分類別" -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 +#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1494 msgid "Id" msgstr "編號" -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 +#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 msgid "Identity" msgstr "身份" @@ -3485,23 +3391,23 @@ msgstr "身份" msgid "If an approval is rejected, reject the original and delete pending approvals" msgstr "若簽核單é­åˆ°é§å›žï¼Œå‰‡é€£å¸¶é§å›žåŽŸç”³è«‹å–®ï¼Œä¸¦åˆªé™¤å…¶ä»–ç›¸é—œçš„å¾…ç°½æ ¸äº‹é …" -#: html/Tools/Offline.html:52 +#: html/Tools/Offline.html:74 msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "" +msgstr "若沒有指定申請者,則以此使用者作為申請者" -#: html/Tools/Offline.html:43 +#: html/Tools/Offline.html:65 msgid "If no queue is specified, create tickets in this queue." msgstr "申請單若沒有指定表單,則將它新增在此表單內" -#: bin/rt-crontool:186 +#: bin/rt-crontool:215 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:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 +#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:59 msgid "If you've updated anything above, be sure to" msgstr "若您已更新以上資料,請記得按一下" -#: lib/RT/Record.pm:742 +#: lib/RT/Record.pm:933 msgid "Illegal value for %1" msgstr "%1 的值錯誤" @@ -3509,7 +3415,7 @@ msgstr "%1 的值錯誤" msgid "Image" msgstr "圖片" -#: lib/RT/Record.pm:745 +#: lib/RT/Record.pm:936 msgid "Immutable field" msgstr "此欄ä½å€¼ä¸å¯æ›´å‹•" @@ -3518,38 +3424,42 @@ msgid "Import" msgstr "匯入" #: NOT FOUND IN SOURCE -msgid "Include disabled classes in listing." -msgstr "" - -#: html/Admin/Elements/EditCustomFields:72 msgid "Include disabled custom fields in listing." msgstr "列出åœç”¨çš„自訂欄ä½" -#: html/Admin/Groups/index.html:37 +#: html/Admin/Groups/index.html:65 msgid "Include disabled groups in listing." msgstr "列出åœç”¨çš„群組" -#: html/Admin/Queues/index.html:42 +#: html/Admin/Queues/index.html:65 msgid "Include disabled queues in listing." msgstr "列出åœç”¨çš„表單" -#: html/Admin/Users/index.html:46 +#: html/Admin/Users/index.html:71 msgid "Include disabled users in search." msgstr "列出åœç”¨çš„使用者" +#: html/Search/Build.html:663 +msgid "Incomplete Query" +msgstr "" + +#: html/Search/Build.html:660 +msgid "Incomplete query" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Indirect Employee" msgstr "直接/間接員工" -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 +#: html/Search/Elements/PickBasics:161 lib/RT/Tickets_Overlay.pm:1544 msgid "Initial Priority" msgstr "åˆå§‹å„ªå…ˆé †ä½" -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 +#: lib/RT/Ticket_Overlay.pm:1139 lib/RT/Ticket_Overlay.pm:1141 msgid "InitialPriority" msgstr "åˆå§‹å„ªå…ˆé †ä½" -#: lib/RT/ScripAction_Overlay.pm:97 +#: lib/RT/ScripAction_Overlay.pm:134 msgid "Input error" msgstr "輸入錯誤" @@ -3557,20 +3467,20 @@ msgstr "輸入錯誤" msgid "Interest noted" msgstr "登記æˆåŠŸ" -#: lib/RT/Ticket_Overlay.pm:3797 +#: lib/RT/Ticket_Overlay.pm:3454 msgid "Internal Error" msgstr "內部錯誤" -#: lib/RT/Record.pm:186 +#: lib/RT/Record.pm:305 #. ($id->{error_message}) msgid "Internal Error: %1" msgstr "內部錯誤:%1" -#: lib/RT/Group_Overlay.pm:644 +#: lib/RT/Group_Overlay.pm:676 msgid "Invalid Group Type" msgstr "錯誤的群組類別" -#: lib/RT/Principal_Overlay.pm:127 +#: lib/RT/Principal_Overlay.pm:161 msgid "Invalid Right" msgstr "錯誤的權é™" @@ -3578,7 +3488,7 @@ msgstr "錯誤的權é™" msgid "Invalid Type" msgstr "錯誤的類型" -#: lib/RT/Record.pm:747 +#: lib/RT/Record.pm:938 msgid "Invalid data" msgstr "錯誤的資料" @@ -3586,24 +3496,24 @@ msgstr "錯誤的資料" msgid "Invalid owner. Defaulting to 'nobody'." msgstr "錯誤的承辦人。改為é è¨­æ‰¿è¾¦äººã€Œnobodyã€ã€‚" -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 +#: lib/RT/Scrip_Overlay.pm:158 lib/RT/Template_Overlay.pm:276 msgid "Invalid queue" msgstr "錯誤的表單" -#: 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 +#: lib/RT/ACE_Overlay.pm:265 lib/RT/ACE_Overlay.pm:274 lib/RT/ACE_Overlay.pm:280 lib/RT/ACE_Overlay.pm:291 msgid "Invalid right" msgstr "錯誤的權é™" -#: lib/RT/Record.pm:161 +#: lib/RT/Record.pm:280 #. ($key) msgid "Invalid value for %1" msgstr "%1 的值錯誤" -#: lib/RT/Ticket_Overlay.pm:3380 +#: lib/RT/Record.pm:1597 msgid "Invalid value for custom field" msgstr "錯誤的自訂欄ä½å€¼" -#: lib/RT/Ticket_Overlay.pm:385 +#: lib/RT/Ticket_Overlay.pm:413 msgid "Invalid value for status" msgstr "錯誤的狀態值" @@ -3611,18 +3521,22 @@ msgstr "錯誤的狀態值" msgid "IssueStatement" msgstr "é€å‡ºé™³è¿°" -#: bin/rt-crontool:187 +#: bin/rt-crontool:216 msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." msgstr "請絕å°ä¸è¦è®“未具權é™çš„使用者執行此工具程å¼ã€‚" -#: bin/rt-crontool:188 +#: bin/rt-crontool:217 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:159 +#: bin/rt-crontool:188 msgid "It takes several arguments:" msgstr "它接å—ä¸‹åˆ—åƒæ•¸ï¼š" +#: html/Search/Elements/EditFormat:85 +msgid "Italic" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Item Name" msgstr "å“å" @@ -3639,7 +3553,7 @@ msgstr "待簽核項目" msgid "Jan" msgstr "一月" -#: lib/RT/Date.pm:411 +#: lib/RT/Date.pm:437 msgid "Jan." msgstr "01" @@ -3651,7 +3565,7 @@ msgstr "一月" msgid "Job" msgstr "è·ç¨±" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/Group_Overlay.pm:174 msgid "Join or leave this group" msgstr "加入或離開此群組" @@ -3659,7 +3573,7 @@ msgstr "加入或離開此群組" msgid "Jul" msgstr "七月" -#: lib/RT/Date.pm:417 +#: lib/RT/Date.pm:443 msgid "Jul." msgstr "07" @@ -3667,7 +3581,7 @@ msgstr "07" msgid "July" msgstr "七月" -#: html/Ticket/Elements/Tabs:100 +#: html/Ticket/Elements/Tabs:122 msgid "Jumbo" msgstr "全部資訊" @@ -3675,7 +3589,7 @@ msgstr "全部資訊" msgid "Jun" msgstr "六月" -#: lib/RT/Date.pm:416 +#: lib/RT/Date.pm:442 msgid "Jun." msgstr "06" @@ -3707,23 +3621,23 @@ msgstr "éˆçµæ¨™ç±¤" msgid "Lang" msgstr "使用語言" -#: html/User/Prefs.html:54 +#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 msgid "Language" msgstr "語言" -#: html/Ticket/Elements/Tabs:74 +#: html/Search/Elements/EditFormat:79 +msgid "Large" +msgstr "" + +#: html/Ticket/Elements/Tabs:96 msgid "Last" msgstr "上次更新" -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 +#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 msgid "Last Contact" msgstr "上次è¯çµ¡" -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "" - -#: html/Elements/SelectDateType:28 +#: html/Elements/SelectDateType:50 msgid "Last Contacted" msgstr "上次è¯çµ¡æ—¥æœŸ" @@ -3731,7 +3645,7 @@ msgstr "上次è¯çµ¡æ—¥æœŸ" msgid "Last Notified" msgstr "上次通知" -#: html/Elements/SelectDateType:29 +#: html/Elements/SelectDateType:51 msgid "Last Updated" msgstr "上次更新" @@ -3739,19 +3653,19 @@ msgstr "上次更新" msgid "LastUpdated" msgstr "上次更新" -#: html/Search/Elements/PickBasics:116 +#: html/Search/Elements/PickBasics:103 msgid "LastUpdatedBy" msgstr "上次更新者" -#: html/Ticket/Elements/ShowBasics:46 +#: html/Ticket/Elements/ShowBasics:68 msgid "Left" msgstr "剩餘時間" -#: html/Admin/Users/Modify.html:82 +#: html/Admin/Users/Modify.html:109 msgid "Let this user access RT" msgstr "å…許這å使用者登入" -#: html/Admin/Users/Modify.html:86 +#: html/Admin/Users/Modify.html:113 msgid "Let this user be granted rights" msgstr "內部æˆå“¡ï¼ˆå…·æœ‰å€‹äººæ¬Šé™ï¼‰" @@ -3763,33 +3677,37 @@ msgstr "é™åˆ¶æ‰¿è¾¦äººç‚º %1 到%2" 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:1086 +#: lib/RT/Record.pm:1292 msgid "Link already exists" msgstr "æ­¤éˆçµå·²å­˜åœ¨" -#: lib/RT/Record.pm:1100 +#: lib/RT/Record.pm:1306 msgid "Link could not be created" msgstr "無法新增éˆçµ" -#: lib/RT/Record.pm:1106 +#: lib/RT/Record.pm:1312 #. ($TransString) msgid "Link created (%1)" msgstr "éˆçµ(%1)新增完畢" -#: lib/RT/Record.pm:1167 +#: lib/RT/Record.pm:1373 #. ($TransString) msgid "Link deleted (%1)" msgstr "éˆçµ(%1)刪除完畢" -#: lib/RT/Record.pm:1173 +#: lib/RT/Record.pm:1379 msgid "Link not found" msgstr "找ä¸åˆ°éˆçµ" -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 +#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 #. ($Ticket->Id) msgid "Link ticket #%1" msgstr "éˆçµç”³è«‹å–® #%1" @@ -3798,7 +3716,7 @@ msgstr "éˆçµç”³è«‹å–® #%1" msgid "Link ticket %1" msgstr "éˆçµç”³è«‹å–® %1" -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 +#: html/Ticket/Create.html:205 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 msgid "Links" msgstr "éˆçµ" @@ -3806,23 +3724,32 @@ msgstr "éˆçµ" msgid "List All Users" msgstr "列出所有用戶資料" -#: html/Search/Elements/EditSearches:26 +#: html/Search/Elements/EditSearches:76 msgid "Load" msgstr "載入" -#: html/Search/Elements/EditSearches:24 +#: html/Search/Elements/EditSearches:74 msgid "Load saved search:" msgstr "載入已儲存的查詢:" -#: html/Admin/Tools/Configuration.html:19 +#: lib/RT/System.pm:87 +msgid "LoadSavedSearch" +msgstr "" + +#: html/Admin/Tools/Configuration.html:64 msgid "Loaded perl modules" msgstr "已載入的 Perl 模組" -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 +#: lib/RT/SavedSearch.pm:112 +#. ($self->Name) +msgid "Loaded search %1" +msgstr "" + +#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 msgid "Location" msgstr "ä½ç½®" -#: lib/RT.pm:184 +#: lib/RT.pm:212 #. ($RT::LogDir) msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." msgstr "登入目錄 %1 找ä¸åˆ°æˆ–無法寫入\\n。無法執行 RT。" @@ -3835,16 +3762,16 @@ msgstr "紀錄等級" msgid "LogToFileNamed" msgstr "紀錄檔å" -#: html/Elements/Header:69 +#: html/Elements/Header:94 #. ("<b>".$session{'CurrentUser'}->Name."</b>") msgid "Logged in as %1" msgstr "使用者:%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 +#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:57 html/Elements/Login:66 html/Elements/Login:76 lib/RT/StyleGuide.pod:797 msgid "Login" msgstr "登入" -#: html/Elements/Header:66 +#: html/Elements/Header:91 msgid "Logout" msgstr "登出" @@ -3852,75 +3779,75 @@ msgstr "登出" msgid "Long-term contractor" msgstr "長期契約員工" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:866 msgid "Lookup type mismatch" msgstr "å°æ‡‰çš„類別ä¸ç¬¦" -#: html/Search/Bulk.html:83 +#: html/Search/Bulk.html:104 msgid "Make Owner" msgstr "新增承辦人" -#: html/Search/Bulk.html:107 +#: html/Search/Bulk.html:128 msgid "Make Status" msgstr "æ–°å¢žç¾æ³" -#: html/Search/Bulk.html:115 +#: html/Search/Bulk.html:136 msgid "Make date Due" msgstr "新增到期日" -#: html/Search/Bulk.html:117 +#: html/Search/Bulk.html:138 msgid "Make date Resolved" msgstr "新增解決日期" -#: html/Search/Bulk.html:111 +#: html/Search/Bulk.html:132 msgid "Make date Started" msgstr "新增實際起始日期" -#: html/Search/Bulk.html:109 +#: html/Search/Bulk.html:130 msgid "Make date Starts" msgstr "新增應起始日期" -#: html/Search/Bulk.html:113 +#: html/Search/Bulk.html:134 msgid "Make date Told" msgstr "新增報告日期" -#: html/Search/Bulk.html:103 +#: html/Search/Bulk.html:124 msgid "Make priority" msgstr "新增優先順ä½" -#: html/Search/Bulk.html:105 +#: html/Search/Bulk.html:126 msgid "Make queue" msgstr "新增表單" -#: html/Search/Bulk.html:101 +#: html/Search/Bulk.html:122 msgid "Make subject" msgstr "新增主題" +#: lib/RT/Group_Overlay.pm:177 +msgid "Make this group visible to user" +msgstr "" + #: NOT FOUND IN SOURCE msgid "Male" msgstr "ç”·" -#: NOT FOUND IN SOURCE -msgid "Malkovich Malkovich Malkovich Malkovich" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/index.html:78 msgid "Manage custom fields and custom field values" msgstr "管ç†è‡ªè¨‚欄ä½åŠæ¬„ä½å€¼" -#: html/Admin/index.html:32 +#: html/Admin/index.html:69 msgid "Manage groups and group membership" msgstr "管ç†ç¾¤çµ„åŠæ‰€å±¬æˆå“¡" -#: html/Admin/index.html:38 +#: html/Admin/index.html:85 msgid "Manage properties and configuration which apply to all queues" msgstr "管ç†é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„屬性與設定" -#: html/Admin/index.html:35 +#: html/Admin/index.html:74 msgid "Manage queues and queue-specific properties" msgstr "管ç†å„表單åŠç›¸é—œå±¬æ€§" -#: html/Admin/index.html:29 +#: html/Admin/index.html:64 msgid "Manage users and passwords" msgstr "管ç†ä½¿ç”¨è€…與密碼" @@ -3932,7 +3859,7 @@ msgstr "ç¶“ç†" msgid "Mar" msgstr "三月" -#: lib/RT/Date.pm:413 +#: lib/RT/Date.pm:439 msgid "Mar." msgstr "03" @@ -3952,33 +3879,33 @@ msgstr "ç¬¦åˆæ¨£å¼" msgid "May" msgstr "五月" -#: lib/RT/Date.pm:415 +#: lib/RT/Date.pm:441 msgid "May." msgstr "05" -#: lib/RT/Transaction_Overlay.pm:634 +#: lib/RT/Transaction_Overlay.pm:720 #. ($value) msgid "Member %1 added" msgstr "æˆå“¡ %1 新增完畢" -#: lib/RT/Transaction_Overlay.pm:674 +#: lib/RT/Transaction_Overlay.pm:760 #. ($value) msgid "Member %1 deleted" msgstr "æˆå“¡ %1 刪除完畢" -#: lib/RT/Group_Overlay.pm:974 +#: lib/RT/Group_Overlay.pm:1008 msgid "Member added" msgstr "新增æˆå“¡å®Œç•¢" -#: lib/RT/Group_Overlay.pm:1136 +#: lib/RT/Group_Overlay.pm:1170 msgid "Member deleted" msgstr "æˆå“¡å·²åˆªé™¤" -#: lib/RT/Group_Overlay.pm:1140 +#: lib/RT/Group_Overlay.pm:1174 msgid "Member not deleted" msgstr "æˆå“¡æœªåˆªé™¤" -#: html/Elements/SelectLinkType:25 +#: html/Elements/SelectLinkType:47 msgid "Member of" msgstr "隸屬於" @@ -3990,46 +3917,51 @@ msgstr "註冊日期" msgid "MemberOf" msgstr "隸屬於" -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 +#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 msgid "Members" msgstr "æˆå“¡" -#: lib/RT/Transaction_Overlay.pm:631 +#: lib/RT/Transaction_Overlay.pm:717 #. ($value) msgid "Membership in %1 added" msgstr "所屬群組 %1 加入完畢" -#: lib/RT/Transaction_Overlay.pm:671 +#: lib/RT/Transaction_Overlay.pm:757 #. ($value) msgid "Membership in %1 deleted" msgstr "所屬群組 %1 移除完畢" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:61 msgid "Memberships" msgstr "所屬群組" -#: NOT FOUND IN SOURCE +#: html/Admin/Users/Memberships.html:60 +#. ($UserObj->Name) msgid "Memberships of the user %1" msgstr "使用者 %1 的所屬群組" -#: lib/RT/Ticket_Overlay.pm:2813 +#: lib/RT/Ticket_Overlay.pm:2849 msgid "Merge Successful" msgstr "æ•´åˆå®Œç•¢" -#: lib/RT/Ticket_Overlay.pm:2733 +#: lib/RT/Ticket_Overlay.pm:2736 msgid "Merge failed. Couldn't set EffectiveId" msgstr "æ•´åˆå¤±æ•—。無法設定 EffectiveId" -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 +#: lib/RT/Ticket_Overlay.pm:2744 +msgid "Merge failed. Couldn't set Status" +msgstr "" + +#: html/Elements/EditLinks:129 html/Ticket/Elements/BulkLinks:48 msgid "Merge into" msgstr "æ•´åˆé€²" -#: lib/RT/Transaction_Overlay.pm:637 +#: lib/RT/Transaction_Overlay.pm:723 #. ($value) msgid "Merged into %1" msgstr "已整åˆé€² %1" -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 +#: html/Search/Bulk.html:165 html/Ticket/Update.html:116 msgid "Message" msgstr "訊æ¯" @@ -4037,19 +3969,15 @@ msgstr "訊æ¯" msgid "Message body not shown because it is too large or is not plain text." msgstr "ä¿¡ä»¶å…§æ–‡ä¸æ˜¯ç´”文字,因此無法顯示。" -#: lib/RT/Ticket_Overlay.pm:2514 +#: lib/RT/Ticket_Overlay.pm:2406 msgid "Message could not be recorded" msgstr "無法紀錄訊æ¯" -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:2517 +#: lib/RT/Ticket_Overlay.pm:2409 msgid "Message recorded" msgstr "訊æ¯ç´€éŒ„æˆåŠŸ" -#: html/Ticket/Elements/PreviewScrips:70 +#: html/Ticket/Elements/PreviewScrips:115 msgid "Messages about this ticket will not be sent to..." msgstr "此申請單的相關訊æ¯ä¸æœƒå¯„é€çµ¦..." @@ -4057,7 +3985,11 @@ msgstr "此申請單的相關訊æ¯ä¸æœƒå¯„é€çµ¦..." msgid "Misc. Expense" msgstr "雜費" -#: lib/RT/Record.pm:749 +#: html/Search/Build.html:667 +msgid "Mismatched parentheses" +msgstr "" + +#: lib/RT/Record.pm:940 msgid "Missing a primary key?: %1" msgstr "缺少主éµå€¼ï¼Ÿ(%1)" @@ -4065,7 +3997,7 @@ msgstr "缺少主éµå€¼ï¼Ÿ(%1)" msgid "Missing mandatory fields" msgstr "缺少必填欄ä½" -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 +#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:93 msgid "Mobile" msgstr "行動電話" @@ -4073,47 +4005,41 @@ msgstr "行動電話" msgid "MobilePhone" msgstr "行動電話" -#: NOT FOUND IN SOURCE -msgid "Modified" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Modify" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "Modify Access Control List" msgstr "æ›´æ”¹æ¬Šé™æŽ§åˆ¶æ¸…å–®" -#: NOT FOUND IN SOURCE -msgid "Modify Custom Field %1" +#: html/Admin/Elements/ObjectCustomFields:96 +#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) +msgid "Modify Custom Fields which apply to %1 for all %2" msgstr "" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/ObjectCustomFields:98 +#. (loc(lc($Types))) msgid "Modify Custom Fields which apply to all %1" msgstr "更改é©ç”¨æ–¼æ‰€æœ‰%1的自訂欄ä½" -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 +#: NOT FOUND IN SOURCE msgid "Modify Custom Fields which apply to all queues" msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„自訂欄ä½" -#: html/Admin/Global/GroupRights.html:84 html/Admin/Groups/GroupRights.html:72 html/Admin/Queues/GroupRights.html:85 +#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 msgid "Modify Group Rights" -msgstr "" +msgstr "更改群組權é™" -#: html/Admin/Groups/Members.html:80 html/User/Groups/Members.html:79 +#: html/Admin/Groups/Members.html:102 html/User/Groups/Members.html:101 msgid "Modify Members" -msgstr "" +msgstr "更改æˆå“¡" -#: html/User/Delegation.html:36 +#: html/User/Delegation.html:58 msgid "Modify Rights" -msgstr "" +msgstr "更改權é™" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "Modify Scrip templates for this queue" msgstr "更改此表單的範本" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "Modify Scrips for this queue" msgstr "更改此表單的手續" @@ -4125,37 +4051,34 @@ msgstr "æ›´æ”¹ç³»çµ±æ¬Šé™æ¸…å–®" msgid "Modify Template %1" msgstr "更改範本 %1" -#: html/Admin/Global/UserRights.html:53 html/Admin/Groups/UserRights.html:54 html/Admin/Queues/UserRights.html:53 +#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 msgid "Modify User Rights" -msgstr "" +msgstr "更改使用者權é™" #: NOT FOUND IN SOURCE msgid "Modify Workflow" msgstr "更改æµç¨‹" -#: html/Admin/Queues/CustomField.html:44 +#: html/Admin/Queues/CustomField.html:66 #. ($QueueObj->Name()) msgid "Modify a CustomField for queue %1" msgstr "更改 %1 表單內的自訂欄ä½" -#: html/Admin/Global/CustomField.html:52 +#: NOT FOUND IN SOURCE msgid "Modify a CustomField which applies to all queues" msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„自訂欄ä½" -#: html/Admin/Queues/Scrip.html:53 +#: html/Admin/Queues/Scrip.html:75 #. ($QueueObj->Name) msgid "Modify a scrip for queue %1" msgstr "更改 %1 表單內的手續" -#: html/Admin/Global/Scrip.html:47 +#: html/Admin/Global/Scrip.html:69 msgid "Modify a scrip which applies to all queues" msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æ‰‹çºŒ" -#: NOT FOUND IN SOURCE -msgid "Modify article #%1" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:90 +#. ($CF->Name) msgid "Modify associated objects for %1" msgstr "更改é©ç”¨ %1 的物件" @@ -4163,21 +4086,25 @@ msgstr "更改é©ç”¨ %1 的物件" msgid "Modify dates for # %1" msgstr "更改 # %1 的日期" -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 +#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 #. ($TicketObj->Id) msgid "Modify dates for #%1" msgstr "更改 #%1 的日期" -#: html/Ticket/ModifyDates.html:34 +#: html/Ticket/ModifyDates.html:56 #. ($TicketObj->Id) msgid "Modify dates for ticket # %1" msgstr "更改申請單 # %1 的日期" -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 +#: 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:32 +#: html/Admin/Global/GroupRights.html:54 msgid "Modify global group rights." msgstr "更改全域設定的群組權é™ã€‚" @@ -4193,108 +4120,110 @@ msgstr "更改全域設定的使用者權é™" msgid "Modify global scrips" msgstr "更改全域手續" -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 +#: 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:32 +#: html/Admin/Global/UserRights.html:54 msgid "Modify global user rights." msgstr "更改全域設定的使用者權é™ã€‚" -#: lib/RT/Group_Overlay.pm:146 +#: lib/RT/Group_Overlay.pm:171 msgid "Modify group metadata or delete group" msgstr "更改群組資料åŠåˆªé™¤ç¾¤çµ„" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:164 +#. ($CustomFieldObj->Name) msgid "Modify group rights for custom field %1" msgstr "æ›´æ”¹è‡ªè¨‚æ¬„ä½ %1 的群組權é™" -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 +#: 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:24 html/Admin/Queues/GroupRights.html:28 +#: 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:148 +#: lib/RT/Group_Overlay.pm:173 msgid "Modify membership roster for this group" msgstr "更改此群組的æˆå“¡åå–®" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "Modify one's own RT account" msgstr "更改個人的帳號資訊" -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 +#: 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:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 +#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:56 #. ($Ticket->id) #. ($Ticket->Id) msgid "Modify people related to ticket #%1" msgstr "更改申請單 #%1 éˆçµåˆ°çš„人員" -#: html/Admin/Queues/Scrips.html:45 +#: html/Admin/Queues/Scrips.html:67 #. ($QueueObj->Name) msgid "Modify scrips for queue %1" msgstr "更改表單 %1 的手續" -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 +#: 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:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 +#: 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:43 +#: html/Admin/Global/Templates.html:65 msgid "Modify templates which apply to all queues" msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„範本" -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 +#: 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:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "Modify the queue watchers" msgstr "更改表單視察員" -#: html/Admin/Users/Modify.html:263 +#: html/Admin/Users/Modify.html:301 #. ($UserObj->Name) msgid "Modify the user %1" msgstr "更改使用者 %1" -#: html/Ticket/ModifyAll.html:36 +#: html/Ticket/ModifyAll.html:58 #. ($Ticket->Id) msgid "Modify ticket # %1" msgstr "更改申請單 # %1" -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 +#: 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:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "Modify tickets" msgstr "更改申請單" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:157 +#. ($CustomFieldObj->Name) msgid "Modify user rights for custom field %1" msgstr "æ›´æ”¹è‡ªè¨‚æ¬„ä½ %1 的使用者權é™" -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 +#: 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:24 html/Admin/Queues/UserRights.html:28 +#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 #. ($QueueObj->Name) msgid "Modify user rights for queue %1" msgstr "更改表單 %1 的使用者權é™" @@ -4311,31 +4240,35 @@ msgstr "更改æµç¨‹ %1" msgid "Modify workflows which apply to all queues" msgstr "更改é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æµç¨‹" -#: lib/RT/Queue_Overlay.pm:71 +#: lib/RT/Queue_Overlay.pm:95 msgid "ModifyACL" msgstr "æ›´æ”¹æ¬Šé™æ¸…å–®" -#: lib/RT/Group_Overlay.pm:149 +#: lib/RT/CustomField_Overlay.pm:103 +msgid "ModifyCustomField" +msgstr "" + +#: lib/RT/Group_Overlay.pm:174 msgid "ModifyOwnMembership" msgstr "更改自己是å¦å±¬æ–¼æŸç¾¤çµ„" -#: lib/RT/Queue_Overlay.pm:72 +#: lib/RT/Queue_Overlay.pm:96 msgid "ModifyQueueWatchers" msgstr "更改表單視察員" -#: lib/RT/Queue_Overlay.pm:77 +#: lib/RT/Queue_Overlay.pm:101 msgid "ModifyScrips" msgstr "更改手續" -#: lib/RT/System.pm:60 +#: lib/RT/System.pm:83 msgid "ModifySelf" msgstr "更改個人帳號" -#: lib/RT/Queue_Overlay.pm:74 +#: lib/RT/Queue_Overlay.pm:98 msgid "ModifyTemplate" msgstr "更改範本" -#: lib/RT/Queue_Overlay.pm:90 +#: lib/RT/Queue_Overlay.pm:114 msgid "ModifyTicket" msgstr "更改申請單" @@ -4343,7 +4276,7 @@ msgstr "更改申請單" msgid "Mon" msgstr "星期一" -#: lib/RT/Date.pm:388 +#: lib/RT/Date.pm:413 msgid "Mon." msgstr "星期一" @@ -4351,7 +4284,7 @@ msgstr "星期一" msgid "More" msgstr "更多" -#: html/Ticket/Elements/ShowRequestor:40 +#: html/Ticket/Elements/ShowRequestor:62 #. ($name) msgid "More about %1" msgstr "關於 %1 的進一步資訊" @@ -4368,23 +4301,23 @@ msgstr "移動" msgid "Move All" msgstr "全移" -#: html/Admin/Elements/EditCustomFields:60 +#: html/Admin/Elements/PickCustomFields:83 msgid "Move down" msgstr "下移" -#: html/Admin/Elements/EditCustomFields:52 +#: html/Admin/Elements/PickCustomFields:75 msgid "Move up" msgstr "上移" -#: html/Admin/Elements/SelectSingleOrMultiple:26 +#: html/Admin/Elements/SelectSingleOrMultiple:48 msgid "Multiple" msgstr "多é‡" -#: lib/RT/User_Overlay.pm:197 +#: lib/RT/User_Overlay.pm:227 msgid "Must specify 'Name' attribute" msgstr "必須指定 'Name' 的屬性" -#: html/SelfService/Elements/MyRequests:48 +#: html/SelfService/Elements/MyRequests:70 #. ($friendly_status) msgid "My %1 tickets" msgstr "我的 %1 申請單" @@ -4401,26 +4334,22 @@ msgstr "表單申請追蹤" msgid "My Tickets" msgstr "表單處ç†" -#: html/Approvals/index.html:24 html/Approvals/index.html:25 +#: html/Approvals/index.html:46 html/Approvals/index.html:47 msgid "My approvals" msgstr "表單簽核" -#: html/Search/Elements/SearchPrivacy:5 html/Search/Elements/SelectSearchObject:8 html/Search/Elements/SelectSearchesForObjects:8 +#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:53 msgid "My saved searches" msgstr "我已儲存的查詢" -#: 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 +#: 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/User/Groups/Modify.html:65 msgid "Name" msgstr "å稱" -#: lib/RT/User_Overlay.pm:204 +#: lib/RT/User_Overlay.pm:234 msgid "Name in use" msgstr "帳號已有人使用" -#: NOT FOUND IN SOURCE -msgid "Name matches" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Nationality" msgstr "國ç±" @@ -4429,23 +4358,19 @@ msgstr "國ç±" msgid "Need approval from system administrator" msgstr "需先由系統管ç†å“¡é€²è¡Œæ‰¹å‡†" -#: html/Ticket/Elements/ShowDates:52 +#: html/Ticket/Elements/ShowDates:73 msgid "Never" msgstr "從未更動" -#: html/Elements/Quicksearch:29 +#: html/Elements/Quicksearch:51 msgid "New" msgstr "新建立" -#: NOT FOUND IN SOURCE -msgid "New Article" -msgstr "" - -#: html/Elements/EditLinks:93 +#: html/Elements/EditLinks:115 msgid "New Links" msgstr "新增關係" -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 +#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 msgid "New Password" msgstr "新的密碼" @@ -4453,14 +4378,10 @@ msgstr "新的密碼" msgid "New Pending Approval" msgstr "新的待簽核事項" -#: html/Ticket/Elements/Tabs:170 +#: html/Ticket/Elements/Tabs:193 msgid "New Query" msgstr "新增查詢" -#: NOT FOUND IN SOURCE -msgid "New Relationships" -msgstr "" - #: NOT FOUND IN SOURCE msgid "New Request" msgstr "表單申請" @@ -4473,27 +4394,23 @@ msgstr "新增查詢" msgid "New Watchers" msgstr "新增視察員" -#: NOT FOUND IN SOURCE -msgid "New class" -msgstr "" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 +#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 msgid "New custom field" msgstr "新增自訂欄ä½" -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 +#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 msgid "New group" msgstr "新增群組" -#: html/SelfService/Prefs.html:31 +#: html/SelfService/Prefs.html:53 msgid "New password" msgstr "新的密碼" -#: lib/RT/User_Overlay.pm:773 +#: lib/RT/User_Overlay.pm:817 msgid "New password notification sent" msgstr "é€å‡ºæ–°å¯†ç¢¼é€šçŸ¥" -#: html/Admin/Elements/QueueTabs:69 +#: html/Admin/Elements/QueueTabs:95 msgid "New queue" msgstr "新增表單" @@ -4501,11 +4418,11 @@ msgstr "新增表單" msgid "New request" msgstr "æå‡ºç”³è«‹å–®" -#: html/Admin/Elements/SelectRights:41 +#: html/Admin/Elements/SelectRights:65 msgid "New rights" msgstr "新增權é™" -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 +#: html/Admin/Global/Scrip.html:61 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:64 html/Admin/Queues/Scrips.html:76 msgid "New scrip" msgstr "新增手續" @@ -4513,27 +4430,27 @@ msgstr "新增手續" msgid "New search" msgstr "釿–°æŸ¥è©¢" -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 +#: 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:47 +#: html/SelfService/Elements/Tabs:69 msgid "New ticket" msgstr "æå‡ºç”³è«‹å–®" -#: lib/RT/Ticket_Overlay.pm:2700 +#: lib/RT/Ticket_Overlay.pm:2713 msgid "New ticket doesn't exist" msgstr "沒有新申請單" -#: html/Admin/Elements/UserTabs:50 +#: html/Admin/Elements/UserTabs:78 msgid "New user" msgstr "新增使用者" -#: html/Admin/Elements/CreateUserCalled:25 +#: html/Admin/Elements/CreateUserCalled:47 msgid "New user called" msgstr "新使用者åå­—" -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 +#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 msgid "New watchers" msgstr "新視察員" @@ -4545,11 +4462,11 @@ msgstr "更新視窗設定" msgid "New workflow" msgstr "新增æµç¨‹" -#: html/Ticket/Elements/Tabs:70 +#: html/Ticket/Elements/Tabs:92 msgid "Next" msgstr "下一項" -#: html/Elements/TicketList:67 +#: html/Elements/TicketList:104 msgid "Next Page" msgstr "下一é " @@ -4561,7 +4478,7 @@ msgstr "下一é " msgid "NickName" msgstr "暱稱" -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 +#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 msgid "Nickname" msgstr "暱稱" @@ -4573,35 +4490,35 @@ msgstr "å°å¤œç­" msgid "No" msgstr "å¦" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/UserRights.html:145 msgid "No Class defined" msgstr "尚未定義類別" -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 +#: html/Admin/CustomFields/Modify.html:124 html/Admin/Elements/EditCustomField:119 msgid "No CustomField" msgstr "無自訂欄ä½" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/GroupRights.html:103 msgid "No CustomField defined" msgstr "尚未定義自訂欄ä½" -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 +#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 msgid "No Group defined" msgstr "尚未定義群組" -#: lib/RT/Tickets_Overlay_SQL.pm:452 +#: lib/RT/Tickets_Overlay_SQL.pm:477 msgid "No Query" msgstr "沒有查詢" -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 +#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 msgid "No Queue defined" msgstr "尚未定義表單" -#: bin/rt-crontool:52 +#: bin/rt-crontool:73 msgid "No RT user found. Please consult your RT administrator.\\n" msgstr "找ä¸åˆ° RT ä½¿ç”¨è€…ã€‚è«‹å‘ RT 管ç†å“¡æŸ¥è©¢ã€‚\\n" -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 +#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 msgid "No Template" msgstr "沒有範本" @@ -4617,11 +4534,11 @@ msgstr "未指定申請單。退出申請單更改\\n\\n" msgid "No Workflow" msgstr "沒有æµç¨‹" -#: html/Approvals/Elements/Approve:45 +#: html/Approvals/Elements/Approve:67 msgid "No action" msgstr "æš«ä¸è™•ç†" -#: lib/RT/Record.pm:744 +#: lib/RT/Record.pm:935 msgid "No column specified" msgstr "未指定欄ä½" @@ -4629,7 +4546,7 @@ msgstr "未指定欄ä½" msgid "No command found\\n" msgstr "找ä¸åˆ°å‘½ä»¤" -#: html/Ticket/Elements/ShowRequestor:46 +#: html/Ticket/Elements/ShowRequestor:68 msgid "No comment entered about this user" msgstr "沒有å°é€™å使用者的評論" @@ -4637,52 +4554,53 @@ msgstr "沒有å°é€™å使用者的評論" msgid "No correspondence attached" msgstr "沒有附上申請單回覆" -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 +#: lib/RT/Action/Generic.pm:186 lib/RT/Condition/Generic.pm:198 lib/RT/Search/ActiveTicketsInQueue.pm:78 lib/RT/Search/Generic.pm:135 #. (ref $self) msgid "No description for %1" msgstr "æ²’æœ‰å° %1 çš„æè¿°" -#: lib/RT/Users_Overlay.pm:159 +#: lib/RT/Users_Overlay.pm:185 msgid "No group specified" msgstr "未指定群組" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:52 msgid "No groups matching search criteria found." msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„群組。" -#: lib/RT/Ticket_Overlay.pm:2475 +#: lib/RT/Ticket_Overlay.pm:2349 msgid "No message attached" msgstr "沒有附上訊æ¯" -#: lib/RT/User_Overlay.pm:991 +#: lib/RT/User_Overlay.pm:1035 msgid "No password set" msgstr "沒有設定密碼" -#: lib/RT/Queue_Overlay.pm:296 +#: lib/RT/Queue_Overlay.pm:358 msgid "No permission to create queues" msgstr "沒有新增表單的權é™" -#: NOT FOUND IN SOURCE +#: lib/RT/Ticket_Overlay.pm:409 +#. ($QueueObj->Name) msgid "No permission to create tickets in the queue '%1'" msgstr "沒有在表單 '%1' 新增申請單的權é™" -#: lib/RT/User_Overlay.pm:157 +#: lib/RT/User_Overlay.pm:187 msgid "No permission to create users" msgstr "沒有新增使用者的權é™" -#: html/SelfService/Display.html:125 +#: html/SelfService/Display.html:165 msgid "No permission to display that ticket" msgstr "沒有顯示該申請單的權é™" -#: html/SelfService/Update.html:68 +#: html/SelfService/Update.html:117 msgid "No permission to view update ticket" msgstr "沒有檢視申請單更新的權é™" -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 +#: lib/RT/Queue_Overlay.pm:792 lib/RT/Ticket_Overlay.pm:1450 msgid "No principal specified" msgstr "未指定單ä½" -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 +#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 msgid "No principals selected." msgstr "未指定單ä½ã€‚" @@ -4690,23 +4608,27 @@ msgstr "未指定單ä½ã€‚" msgid "No protocol specified in %1" msgstr "%1 內未指定å”定" -#: html/Admin/Queues/index.html:34 +#: html/Admin/Queues/index.html:57 msgid "No queues matching search criteria found." msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„表單。" -#: html/Admin/Elements/SelectRights:81 +#: html/Admin/Elements/SelectRights:106 msgid "No rights found" msgstr "找ä¸åˆ°æ¬Šé™" -#: html/Admin/Elements/SelectRights:32 +#: html/Admin/Elements/SelectRights:53 msgid "No rights granted." msgstr "沒有é¸å®šæ¬Šé™" -#: html/Search/Bulk.html:162 +#: lib/RT/SavedSearch.pm:187 +msgid "No search loaded" +msgstr "" + +#: html/Search/Bulk.html:194 msgid "No search to operate on." msgstr "沒有è¦é€²è¡Œçš„æŸ¥è©¢" -#: html/Elements/TicketList:155 +#: html/Elements/RT__Ticket/ColumnMap:134 msgid "No subject" msgstr "沒有標題" @@ -4714,7 +4636,7 @@ msgstr "沒有標題" msgid "No ticket id specified" msgstr "未指定申請單編號" -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 +#: lib/RT/Transaction_Overlay.pm:517 lib/RT/Transaction_Overlay.pm:554 msgid "No transaction type specified" msgstr "未指定更動報告類別" @@ -4722,7 +4644,7 @@ msgstr "未指定更動報告類別" msgid "No user or email address specified" msgstr "未指定使用者或電å­éƒµä»¶åœ°å€" -#: html/Admin/Users/index.html:35 +#: html/Admin/Users/index.html:55 msgid "No users matching search criteria found." msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„使用者。" @@ -4730,15 +4652,15 @@ msgstr "找ä¸åˆ°ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„使用者。" 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:741 +#: lib/RT/Record.pm:932 msgid "No value sent to _Set!\\n" msgstr "_Set 沒有收到任何值!\\n" -#: html/Elements/QuickCreate:16 +#: html/Elements/QuickCreate:61 msgid "Nobody" msgstr "沒有人" -#: lib/RT/Record.pm:746 +#: lib/RT/Record.pm:937 msgid "Nonexistant field?" msgstr "欄ä½ä¸å­˜åœ¨ï¼Ÿ" @@ -4754,15 +4676,15 @@ msgstr "未設定æˆå¾ž %2 å…§æ“·å– %1" msgid "Not logged in" msgstr "尚未登入" -#: html/Elements/Header:71 +#: html/Elements/Header:96 msgid "Not logged in." msgstr "尚未登入" -#: lib/RT/Date.pm:369 +#: lib/RT/Date.pm:393 msgid "Not set" msgstr "尚未設定" -#: html/NoAuth/Reminder.html:26 +#: html/NoAuth/Reminder.html:48 msgid "Not yet implemented." msgstr "尚未完工。" @@ -4770,7 +4692,7 @@ msgstr "尚未完工。" msgid "Not yet implemented...." msgstr "尚未完工..." -#: html/Approvals/Elements/Approve:48 +#: html/Approvals/Elements/Approve:70 msgid "Notes" msgstr "備註" @@ -4778,7 +4700,7 @@ msgstr "備註" msgid "Notes:" msgstr "備註:" -#: lib/RT/User_Overlay.pm:776 +#: lib/RT/User_Overlay.pm:820 msgid "Notification could not be sent" msgstr "無法é€å‡ºé€šçŸ¥" @@ -4792,11 +4714,11 @@ msgstr "以評論方å¼é€šçŸ¥ç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" #: etc/initialdata:93 etc/upgrade/3.1.17/content:6 msgid "Notify Ccs" -msgstr "" +msgstr "通知副本收件人" #: etc/initialdata:89 etc/upgrade/3.1.17/content:2 msgid "Notify Ccs as Comment" -msgstr "" +msgstr "以評論方å¼é€šçŸ¥å‰¯æœ¬æ”¶ä»¶äºº" #: etc/initialdata:128 msgid "Notify Other Recipients" @@ -4858,7 +4780,7 @@ msgstr "通知å°è±¡" msgid "Nov" msgstr "å一月" -#: lib/RT/Date.pm:421 +#: lib/RT/Date.pm:447 msgid "Nov." msgstr "11" @@ -4874,19 +4796,33 @@ msgstr "104eHRMS 介é¢" msgid "OK" msgstr "確定" -#: lib/RT/Record.pm:200 +#: html/Search/Elements/SelectAndOr:47 +msgid "OR" +msgstr "" + +#: lib/RT/Record.pm:319 msgid "Object could not be created" msgstr "無法新增物件" -#: lib/RT/Record.pm:219 +#: lib/RT/Record.pm:124 +msgid "Object could not be deleted" +msgstr "" + +#: lib/RT/Record.pm:338 msgid "Object created" msgstr "物件新增完畢" -#: NOT FOUND IN SOURCE +#: lib/RT/Record.pm:121 +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 的物件" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:901 msgid "Object type mismatch" msgstr "物件類別ä¸ç¬¦" @@ -4898,7 +4834,7 @@ msgstr "在è·ç‹€æ…‹" msgid "Oct" msgstr "åæœˆ" -#: lib/RT/Date.pm:420 +#: lib/RT/Date.pm:446 msgid "Oct." msgstr "10" @@ -4910,19 +4846,19 @@ msgstr "åæœˆ" msgid "Office Phone" msgstr "辦公室電話" -#: html/Tools/Elements/Tabs:31 +#: html/Tools/Elements/Tabs:53 msgid "Offline" msgstr "離線" -#: html/Tools/Offline.html:27 +#: html/Tools/Offline.html:49 msgid "Offline edits" msgstr "離線編輯" -#: html/Tools/Offline.html:24 +#: html/Tools/Offline.html:46 msgid "Offline upload" msgstr "離線上載" -#: html/Elements/SelectDateRelation:34 +#: html/Elements/SelectDateRelation:56 msgid "On" msgstr "等於" @@ -4948,7 +4884,7 @@ msgstr "承辦人改變時" #: etc/initialdata:177 etc/upgrade/3.1.17/content:15 msgid "On Priority Change" -msgstr "" +msgstr "å„ªå…ˆé †ä½æ”¹è®Šæ™‚" #: etc/initialdata:192 msgid "On Queue Change" @@ -4966,29 +4902,25 @@ msgstr "ç¾æ³æ”¹è®Šæ™‚" msgid "On Transaction" msgstr "發生更動時" -#: html/Approvals/Elements/PendingMyApproval:49 +#: html/Approvals/Elements/PendingMyApproval:71 #. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") msgid "Only show approvals for requests created after %1" msgstr "僅顯示 %1 之後新增的申請單" -#: html/Approvals/Elements/PendingMyApproval:47 +#: html/Approvals/Elements/PendingMyApproval:69 #. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") msgid "Only show approvals for requests created before %1" msgstr "僅顯示 %1 之剿–°å¢žçš„申請單" -#: html/Elements/Quicksearch:30 +#: html/Elements/Quicksearch:52 msgid "Open" msgstr "開啟" -#: html/Ticket/Elements/Tabs:137 +#: html/Ticket/Elements/Tabs:159 msgid "Open it" msgstr "開啟" -#: NOT FOUND IN SOURCE -msgid "Open requests" -msgstr "" - -#: html/SelfService/Elements/Tabs:41 +#: html/SelfService/Elements/Tabs:63 msgid "Open tickets" msgstr "開啟的申請單" @@ -5020,7 +4952,7 @@ msgstr "é¸é …æè¿°" msgid "Option Name" msgstr "é¸é …å稱" -#: html/Search/Elements/DisplayOptions:35 +#: html/Search/Elements/DisplayOptions:56 msgid "Order by" msgstr "æŽ’åºæ–¹å¼" @@ -5028,7 +4960,7 @@ msgstr "æŽ’åºæ–¹å¼" msgid "Ordering and sorting" msgstr "é †åºèˆ‡æŽ’åºæ–¹å¼" -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 +#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 msgid "Organization" msgstr "組織å稱" @@ -5036,7 +4968,7 @@ msgstr "組織å稱" msgid "Organization:" msgstr "組織:" -#: html/Approvals/Elements/Approve:32 +#: html/Approvals/Elements/Approve:54 #. ($approving->Id, $approving->Subject) msgid "Originating ticket: #%1" msgstr "原申請單:#%1" @@ -5049,15 +4981,15 @@ msgstr "å…¶ä»–e-mail帳號 (僅e-mail通知;多筆帳號請用逗號','å€éš”)" msgid "Out of range" msgstr "期é™å¤–" -#: lib/RT/Transaction_Overlay.pm:525 +#: lib/RT/Transaction_Overlay.pm:611 msgid "Outgoing email about a comment recorded" msgstr "已紀錄發é€çš„評論郵件" -#: lib/RT/Transaction_Overlay.pm:529 +#: lib/RT/Transaction_Overlay.pm:615 msgid "Outgoing email recorded" msgstr "已紀錄發é€çš„郵件" -#: html/Admin/Queues/Modify.html:68 +#: html/Admin/Queues/Modify.html:90 msgid "Over time, priority moves toward" msgstr "優先順ä½éš¨æ™‚間增加調整為" @@ -5077,15 +5009,15 @@ msgstr "å–ä»£å…¨åŸŸæ¬Šé™ %1" msgid "Overview" msgstr "總覽" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "Own tickets" msgstr "承辦申請單" -#: lib/RT/Queue_Overlay.pm:89 +#: lib/RT/Queue_Overlay.pm:113 msgid "OwnTicket" msgstr "承辦申請單" -#: 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 +#: etc/initialdata:38 html/Elements/QuickCreate:58 html/Search/Elements/PickBasics:101 html/SelfService/Elements/MyRequests:51 html/Ticket/Create.html:69 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:111 lib/RT/Tickets_Overlay.pm:1734 msgid "Owner" msgstr "承辦人" @@ -5093,11 +5025,11 @@ msgstr "承辦人" msgid "Owner changed from %1 to %2" msgstr "承辦人已從 %1 改為 %2" -#: lib/RT/Ticket_Overlay.pm:467 +#: lib/RT/Ticket_Overlay.pm:495 msgid "Owner could not be set." msgstr "無法設定承辦人。" -#: lib/RT/Transaction_Overlay.pm:575 +#: lib/RT/Transaction_Overlay.pm:661 #. ($Old->Name , $New->Name) msgid "Owner forcibly changed from %1 to %2" msgstr "強制將承辦人從 %1 改為 %2" @@ -5114,12 +5046,12 @@ msgstr "承辦人電話" msgid "Page #" msgstr " " -#: html/Elements/TicketList:45 -#. ($Page, int($TotalFound/$Rows)+1) +#: html/Elements/TicketList:78 +#. ($Page, int($TotalFound/$Rows)+$oddRows) msgid "Page %1 of %2" msgstr "第 %1/%2 é " -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 +#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:97 msgid "Pager" msgstr "呼å«å™¨" @@ -5135,7 +5067,7 @@ msgstr "呼å«åƒæ•¸" msgid "Parent" msgstr "上級" -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 +#: html/Elements/EditLinks:142 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:213 html/Ticket/Elements/BulkLinks:60 msgid "Parents" msgstr "æ¯ç”³è«‹å–®" @@ -5143,28 +5075,45 @@ msgstr "æ¯ç”³è«‹å–®" msgid "Park Space" msgstr "åœè»Šä½ç”³è«‹" -#: html/Elements/Login:52 html/User/Prefs.html:83 +#: html/Elements/Login:74 html/User/Prefs.html:105 msgid "Password" msgstr "密碼" -#: html/NoAuth/Reminder.html:24 +#: html/NoAuth/Reminder.html:46 msgid "Password Reminder" msgstr "密碼æç¤º" -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 +#: lib/RT/Transaction_Overlay.pm:770 lib/RT/User_Overlay.pm:1046 +msgid "Password changed" +msgstr "" + +#: lib/RT/User_Overlay.pm:1038 lib/RT/User_Overlay.pm:215 +#. ($RT::MinimumPasswordLength) +msgid "Password needs to be at least %1 characters long" +msgstr "" + +#: lib/RT/User_Overlay.pm:1045 +msgid "Password set" +msgstr "" + +#: NOT FOUND IN SOURCE msgid "Password too short" msgstr "密碼太短" -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 +#: html/User/Prefs.html:232 #. (loc_fuzzy($msg)) msgid "Password: %1" msgstr "密碼:%1" -#: html/Admin/Users/Modify.html:318 +#: lib/RT/User_Overlay.pm:1031 +msgid "Password: Permission Denied" +msgstr "" + +#: html/Admin/Users/Modify.html:356 msgid "Passwords do not match." msgstr "密碼確èªå¤±æ•—。" -#: html/User/Prefs.html:211 +#: html/User/Prefs.html:234 msgid "Passwords do not match. Your password has not been changed" msgstr "密碼確èªå¤±æ•—。您的密碼並未改變。" @@ -5176,7 +5125,7 @@ msgstr "è«‹é¸æ“‡è¡¨å–®å稱" msgid "Pending Approval" msgstr "等待簽核" -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 +#: html/Ticket/Elements/ShowSummary:66 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 msgid "People" msgstr "人員" @@ -5188,11 +5137,11 @@ msgstr "æ“æœ‰è¡¨å–®æ¬Šé™äººå“¡" msgid "Perform a user-defined action" msgstr "執行使用者自訂的動作" -#: html/Admin/Tools/Configuration.html:49 +#: html/Admin/Tools/Configuration.html:94 msgid "Perl configuration" msgstr "Perl 設定" -#: 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 +#: lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:581 lib/RT/ACE_Overlay.pm:591 lib/RT/ACE_Overlay.pm:601 lib/RT/ACE_Overlay.pm:666 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:402 lib/RT/Attribute_Overlay.pm:411 lib/RT/Attribute_Overlay.pm:424 lib/RT/CurrentUser.pm:117 lib/RT/CurrentUser.pm:126 lib/RT/CustomField_Overlay.pm:1022 lib/RT/CustomField_Overlay.pm:167 lib/RT/CustomField_Overlay.pm:184 lib/RT/CustomField_Overlay.pm:195 lib/RT/CustomField_Overlay.pm:366 lib/RT/CustomField_Overlay.pm:398 lib/RT/CustomField_Overlay.pm:697 lib/RT/CustomField_Overlay.pm:870 lib/RT/CustomField_Overlay.pm:905 lib/RT/CustomField_Overlay.pm:950 lib/RT/Group_Overlay.pm:1125 lib/RT/Group_Overlay.pm:1129 lib/RT/Group_Overlay.pm:1138 lib/RT/Group_Overlay.pm:1248 lib/RT/Group_Overlay.pm:1252 lib/RT/Group_Overlay.pm:1258 lib/RT/Group_Overlay.pm:453 lib/RT/Group_Overlay.pm:550 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:636 lib/RT/Group_Overlay.pm:734 lib/RT/Group_Overlay.pm:738 lib/RT/Group_Overlay.pm:744 lib/RT/Group_Overlay.pm:930 lib/RT/Group_Overlay.pm:934 lib/RT/Group_Overlay.pm:947 lib/RT/Queue_Overlay.pm:1051 lib/RT/Queue_Overlay.pm:141 lib/RT/Queue_Overlay.pm:159 lib/RT/Queue_Overlay.pm:654 lib/RT/Queue_Overlay.pm:664 lib/RT/Queue_Overlay.pm:678 lib/RT/Queue_Overlay.pm:816 lib/RT/Queue_Overlay.pm:825 lib/RT/Queue_Overlay.pm:838 lib/RT/Scrip_Overlay.pm:150 lib/RT/Scrip_Overlay.pm:161 lib/RT/Scrip_Overlay.pm:226 lib/RT/Scrip_Overlay.pm:540 lib/RT/Template_Overlay.pm:112 lib/RT/Template_Overlay.pm:118 lib/RT/Template_Overlay.pm:309 lib/RT/Ticket_Overlay.pm:1318 lib/RT/Ticket_Overlay.pm:1328 lib/RT/Ticket_Overlay.pm:1342 lib/RT/Ticket_Overlay.pm:1483 lib/RT/Ticket_Overlay.pm:1493 lib/RT/Ticket_Overlay.pm:1507 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1944 lib/RT/Ticket_Overlay.pm:2082 lib/RT/Ticket_Overlay.pm:2252 lib/RT/Ticket_Overlay.pm:2302 lib/RT/Ticket_Overlay.pm:2474 lib/RT/Ticket_Overlay.pm:2577 lib/RT/Ticket_Overlay.pm:2625 lib/RT/Ticket_Overlay.pm:2704 lib/RT/Ticket_Overlay.pm:2718 lib/RT/Ticket_Overlay.pm:2942 lib/RT/Ticket_Overlay.pm:2952 lib/RT/Ticket_Overlay.pm:2957 lib/RT/Ticket_Overlay.pm:3180 lib/RT/Ticket_Overlay.pm:3184 lib/RT/Ticket_Overlay.pm:3327 lib/RT/Ticket_Overlay.pm:3448 lib/RT/Transaction_Overlay.pm:505 lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:540 lib/RT/Transaction_Overlay.pm:547 lib/RT/User_Overlay.pm:1184 lib/RT/User_Overlay.pm:1725 lib/RT/User_Overlay.pm:370 lib/RT/User_Overlay.pm:736 lib/RT/User_Overlay.pm:775 msgid "Permission Denied" msgstr "權é™ä¸è¶³" @@ -5208,7 +5157,7 @@ msgstr "æ“æœ‰æ¬Šé™è¡¨å–®åˆ—表:" msgid "Personal" msgstr "代ç†äººç¾¤çµ„" -#: html/User/Elements/Tabs:34 +#: html/User/Elements/Tabs:56 msgid "Personal Groups" msgstr "代ç†äººç¾¤çµ„" @@ -5220,11 +5169,11 @@ msgstr "個人首é " msgid "Personal Todo" msgstr "ç§äººå¾…辦事項" -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 +#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 msgid "Personal groups" msgstr "代ç†äººç¾¤çµ„" -#: html/User/Elements/DelegateRights:36 +#: html/User/Elements/DelegateRights:58 msgid "Personal groups:" msgstr "代ç†äººç¾¤çµ„:" @@ -5256,7 +5205,7 @@ msgstr "電話" msgid "Phone number" msgstr "電話號碼" -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 +#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:82 msgid "Phone numbers" msgstr "電話號碼" @@ -5324,7 +5273,7 @@ msgstr "è·ç´š" msgid "Pref" msgstr "å好" -#: 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 +#: html/Elements/Header:87 html/Elements/Tabs:88 html/SelfService/Elements/Tabs:75 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 msgid "Preferences" msgstr "å好" @@ -5332,15 +5281,15 @@ msgstr "å好" msgid "Prefs" msgstr "個人資訊" -#: lib/RT/Action/Generic.pm:169 +#: lib/RT/Action/Generic.pm:196 msgid "Prepare Stubbed" msgstr "é å‚™å‹•作完畢" -#: html/Ticket/Elements/Tabs:62 +#: html/Ticket/Elements/Tabs:84 msgid "Prev" msgstr "上一項" -#: html/Elements/TicketList:64 +#: html/Elements/TicketList:101 msgid "Previous Page" msgstr "上一é " @@ -5352,20 +5301,20 @@ msgstr "å‰ä¸€é " msgid "Pri" msgstr "優先順ä½" -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 +#: lib/RT/ACE_Overlay.pm:158 lib/RT/ACE_Overlay.pm:240 lib/RT/ACE_Overlay.pm:570 #. ($args{'PrincipalId'}) msgid "Principal %1 not found." msgstr "找ä¸åˆ°å–®ä½ %1。" -#: 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 +#: html/Search/Elements/PickBasics:160 html/Ticket/Create.html:184 html/Ticket/Elements/EditBasics:74 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1518 msgid "Priority" msgstr "優先順ä½" -#: html/Admin/Queues/Modify.html:64 +#: html/Admin/Queues/Modify.html:86 msgid "Priority starts at" msgstr "優先順ä½èµ·å§‹å€¼" -#: html/Search/Elements/EditSearches:2 +#: html/Search/Elements/EditSearches:50 msgid "Privacy:" msgstr "éš±ç§è¨­å®šï¼š" @@ -5373,12 +5322,12 @@ msgstr "éš±ç§è¨­å®šï¼š" msgid "Privileged" msgstr "內部æˆå“¡" -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 +#: html/Admin/Users/Modify.html:334 html/User/Prefs.html:223 #. (loc_fuzzy($msg)) msgid "Privileged status: %1" msgstr "內部æˆå“¡ç‹€æ…‹ï¼š%1" -#: html/Admin/Users/index.html:61 +#: html/Admin/Users/index.html:102 msgid "Privileged users" msgstr "內部æˆå“¡" @@ -5418,19 +5367,19 @@ msgstr "公共事務å€" msgid "Purging stale data: %1" msgstr "ç§»é™¤éŽæœŸè³‡æ–™: %1" -#: html/Search/Build.html:47 +#: html/Search/Elements/EditQuery:47 msgid "Query" msgstr "查詢" -#: html/Search/Build.html:84 html/Ticket/Elements/Tabs:172 +#: html/Search/Build.html:124 html/Ticket/Elements/Tabs:195 msgid "Query Builder" msgstr "建立查詢" -#: 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 +#: html/Elements/QuickCreate:55 html/Elements/Quicksearch:50 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:59 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1345 msgid "Queue" msgstr "表單" -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 +#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 #. ($Queue) #. ($id) msgid "Queue %1 not found" @@ -5444,7 +5393,7 @@ msgstr "找ä¸åˆ°è¡¨å–® '%1'\\n" msgid "Queue Keyword Selections" msgstr "表單關éµå­—é¸å–" -#: html/Admin/Queues/Modify.html:42 +#: html/Admin/Queues/Modify.html:64 msgid "Queue Name" msgstr "表單å稱" @@ -5468,19 +5417,19 @@ msgstr "表單手續" msgid "Queue Setup" msgstr "表單設定" -#: lib/RT/Queue_Overlay.pm:300 +#: lib/RT/Queue_Overlay.pm:362 msgid "Queue already exists" msgstr "表單已存在" -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 +#: lib/RT/Queue_Overlay.pm:371 lib/RT/Queue_Overlay.pm:377 msgid "Queue could not be created" msgstr "無法新增表單" -#: html/Ticket/Create.html:208 +#: html/Ticket/Create.html:239 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:319 lib/RT/StyleGuide.pod:789 +#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:381 lib/RT/StyleGuide.pod:809 msgid "Queue created" msgstr "表單新增完畢" @@ -5488,11 +5437,11 @@ msgstr "表單新增完畢" msgid "Queue is not specified." msgstr "未指定表單。" -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 +#: html/SelfService/Display.html:102 lib/RT/CustomField_Overlay.pm:192 msgid "Queue not found" msgstr "找ä¸åˆ°è¡¨å–®" -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 +#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 msgid "Queues" msgstr "表單" @@ -5500,24 +5449,24 @@ msgstr "表單" msgid "Quick Search" msgstr "è¡¨å–®ç¾æ³" -#: html/Elements/Quicksearch:24 +#: html/Elements/Quicksearch:46 msgid "Quick search" msgstr "表單一覽" -#: html/Elements/QuickCreate:1 +#: html/Elements/QuickCreate:46 msgid "Quick ticket creation" msgstr "快速建立申請單" -#: html/Search/Results.html:49 +#: html/Search/Results.html:83 msgid "RSS" msgstr "RSS" -#: html/Elements/Login:44 +#: html/Elements/Login:66 #. ($RT::VERSION) msgid "RT %1" msgstr "RT %1" -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 +#: 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 版" @@ -5534,7 +5483,7 @@ msgstr "RT %1。版權所有 1996-%1 Jesse Vincent <jesse\\@bestpractical.com>\\ 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:24 html/Admin/index.html:25 +#: html/Admin/index.html:46 html/Admin/index.html:47 msgid "RT Administration" msgstr "RT 管ç†é é¢" @@ -5554,7 +5503,7 @@ msgstr "RT 設定錯誤" msgid "RT Critical error. Message not recorded!" msgstr "RT è‡´å‘½éŒ¯èª¤ã€‚è¨Šæ¯æœªè¢«ç´€éŒ„。" -#: html/Elements/Error:41 html/SelfService/Error.html:40 +#: html/Elements/Error:65 html/SelfService/Error.html:62 msgid "RT Error" msgstr "RT 錯誤" @@ -5566,19 +5515,15 @@ msgstr "RT 收到從自己寄出的郵件 (%1)。" msgid "RT Recieved mail (%1) from itself." msgstr "RT 收到從自己寄出的郵件 (%1)。" -#: NOT FOUND IN SOURCE -msgid "RT Self Service" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT Self Service / Closed Tickets" msgstr "RT 自助æœå‹™/已解決的申請單" -#: html/Admin/Tools/Configuration.html:28 +#: html/Admin/Tools/Configuration.html:73 msgid "RT Variables" msgstr "RT 的變數" -#: html/index.html:50 html/index.html:53 +#: html/index.html:72 html/index.html:75 msgid "RT at a glance" msgstr "RT 一覽" @@ -5594,11 +5539,15 @@ msgstr "RT 無法從外部資料庫查詢找到申請人資訊" msgid "RT couldn't find the queue: %1" msgstr "RT 找ä¸åˆ°è¡¨å–®ï¼š%1" +#: html/Elements/SetupSessionCookie:90 +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/PageLayout:85 +#: html/Elements/PageLayout:108 #. ($RT::rtname) msgid "RT for %1" msgstr "%1 專用æµç¨‹ç³»çµ±" @@ -5615,14 +5564,6 @@ msgstr "RT 已執行您的命令" 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 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 "" - -#: 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 "" - #: NOT FOUND IN SOURCE msgid "RT thinks this message may be a bounce" msgstr "RT èªç‚ºé€™å¯èƒ½æ˜¯é€€ä¿¡" @@ -5647,10 +5588,6 @@ msgstr "系統é‹è¡Œè§’色" msgid "RT::Ticket-Role" msgstr "申請單é‹è¡Œè§’色" -#: NOT FOUND IN SOURCE -msgid "RTFM Error" -msgstr "" - #: NOT FOUND IN SOURCE msgid "RT_System" msgstr "系統訊æ¯" @@ -5659,7 +5596,7 @@ msgstr "系統訊æ¯" msgid "Read Only" msgstr "唯讀" -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 +#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 msgid "Real Name" msgstr "真實姓å" @@ -5671,31 +5608,31 @@ msgstr "真實姓å" msgid "Really reject this ticket?" msgstr "您確定è¦é§å›žé€™å¼µç”³è«‹å–®å—Žï¼Ÿ" -#: lib/RT/Transaction_Overlay.pm:628 +#: lib/RT/Transaction_Overlay.pm:714 #. ($value) msgid "Reference by %1 added" msgstr "已加入 %1 為åƒè€ƒæœ¬ç”³è«‹å–®" -#: lib/RT/Transaction_Overlay.pm:668 +#: lib/RT/Transaction_Overlay.pm:754 #. ($value) msgid "Reference by %1 deleted" msgstr "已移除 %1 為åƒè€ƒæœ¬ç”³è«‹å–®" -#: lib/RT/Transaction_Overlay.pm:625 +#: lib/RT/Transaction_Overlay.pm:711 #. ($value) msgid "Reference to %1 added" msgstr "已加入åƒè€ƒç”³è«‹å–® %1" -#: lib/RT/Transaction_Overlay.pm:665 +#: lib/RT/Transaction_Overlay.pm:751 #. ($value) msgid "Reference to %1 deleted" msgstr "已移除åƒè€ƒç”³è«‹å–® %1" -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 +#: html/Elements/EditLinks:103 html/Elements/EditLinks:154 html/Elements/ShowLinks:92 html/Ticket/Create.html:216 html/Ticket/Elements/BulkLinks:72 msgid "Referred to by" msgstr "被åƒè€ƒ" -#: 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 +#: html/Elements/EditLinks:150 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:215 html/Ticket/Elements/BulkLinks:68 msgid "Refers to" msgstr "åƒè€ƒ" @@ -5715,48 +5652,44 @@ msgstr "調整查詢æ¢ä»¶" msgid "Refresh" msgstr "æ›´æ–°" -#: html/Elements/Refresh:35 +#: html/Elements/Refresh:57 #. ($value/60) msgid "Refresh this page every %1 minutes." msgstr "æ¯ %1 åˆ†é˜æ›´æ–°é é¢" -#: NOT FOUND IN SOURCE -msgid "Relationships" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Remove" msgstr "移除" -#: html/Search/Bulk.html:95 +#: html/Search/Bulk.html:116 msgid "Remove AdminCc" msgstr "移除管ç†å“¡å‰¯æœ¬" -#: html/Search/Bulk.html:91 +#: html/Search/Bulk.html:112 msgid "Remove Cc" msgstr "移除副本" -#: html/Search/Bulk.html:87 +#: html/Search/Bulk.html:108 msgid "Remove Requestor" msgstr "移除申請人" -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 +#: html/Ticket/Elements/ShowTransaction:171 html/Ticket/Elements/Tabs:145 msgid "Reply" msgstr "回覆" -#: html/Admin/Queues/Modify.html:50 +#: html/Admin/Queues/Modify.html:72 msgid "Reply Address" msgstr "回覆地å€" -#: html/Search/Bulk.html:130 html/Ticket/ModifyAll.html:72 html/Ticket/Update.html:54 +#: html/Search/Bulk.html:151 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:76 msgid "Reply to requestors" msgstr "回覆申請人" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "Reply to tickets" msgstr "å°ç”³è«‹å–®é€²è¡Œå›žè¦†" -#: lib/RT/Queue_Overlay.pm:87 +#: lib/RT/Queue_Overlay.pm:111 msgid "ReplyToTicket" msgstr "回覆申請單" @@ -5768,7 +5701,7 @@ msgstr "上下ç­åˆ·å¡" msgid "Reported on" msgstr "åˆ°è·æ—¥æœŸ" -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 +#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:112 msgid "Requestor" msgstr "申請人" @@ -5796,24 +5729,24 @@ msgstr "申請人" msgid "RequestorAddresses" msgstr "申請人地å€" -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 +#: html/SelfService/Create.html:63 html/Ticket/Create.html:77 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 msgid "Requestors" msgstr "申請人" -#: html/Admin/Queues/Modify.html:74 +#: html/Admin/Queues/Modify.html:96 msgid "Requests should be due in" msgstr "ç”³è«‹å–®è™•ç†æœŸé™" -#: lib/RT/Attribute_Overlay.pm:123 +#: lib/RT/Attribute_Overlay.pm:146 #. ('Object') msgid "Required parameter '%1' not specified" msgstr "未指定必è¦çš„åƒæ•¸ã€Œ%1ã€" -#: html/Elements/Submit:61 +#: html/Elements/Submit:104 msgid "Reset" msgstr "é‡è¨­" -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 +#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:85 msgid "Residence" msgstr "ä½è™•" @@ -5821,16 +5754,16 @@ msgstr "ä½è™•" msgid "Resolution" msgstr "解決狀態" -#: html/Ticket/Elements/Tabs:133 +#: html/Ticket/Elements/Tabs:155 msgid "Resolve" msgstr "解決" -#: html/Ticket/Update.html:119 +#: html/Ticket/Update.html:154 #. ($TicketObj->id, $TicketObj->Subject) msgid "Resolve ticket #%1 (%2)" msgstr "解決申請單 #%1 (%2)" -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 +#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1148 msgid "Resolved" msgstr "已解決" @@ -5842,7 +5775,7 @@ msgstr "回覆申請人" msgid "Responsibility Type" msgstr "責任å€åˆ†" -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 +#: html/Elements/ListActions:47 html/Search/Elements/NewListActions:47 msgid "Results" msgstr "çµæžœ" @@ -5850,11 +5783,11 @@ msgstr "çµæžœ" msgid "Results per page" msgstr "æ¯é åˆ—å‡ºå¹¾ç­†çµæžœ" -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 +#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 msgid "Retype Password" msgstr "冿¬¡è¼¸å…¥å¯†ç¢¼" -#: html/Search/Elements/EditSearches:13 +#: html/Search/Elements/EditSearches:61 msgid "Revert" msgstr "復原" @@ -5862,44 +5795,44 @@ msgstr "復原" 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:612 +#: lib/RT/ACE_Overlay.pm:631 msgid "Right Delegated" msgstr "權é™ä»£ç†å®Œç•¢" -#: lib/RT/ACE_Overlay.pm:302 +#: lib/RT/ACE_Overlay.pm:321 msgid "Right Granted" msgstr "權é™è¨­å®šå®Œç•¢" -#: lib/RT/ACE_Overlay.pm:160 +#: lib/RT/ACE_Overlay.pm:179 msgid "Right Loaded" msgstr "權é™è¼‰å…¥å®Œç•¢" -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 +#: lib/RT/ACE_Overlay.pm:696 lib/RT/ACE_Overlay.pm:717 msgid "Right could not be revoked" msgstr "無法撤消權é™" -#: html/User/Delegation.html:63 +#: html/User/Delegation.html:85 msgid "Right not found" msgstr "找ä¸åˆ°æ¬Šé™" -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 +#: lib/RT/ACE_Overlay.pm:561 lib/RT/ACE_Overlay.pm:656 msgid "Right not loaded." msgstr "權é™ä¸¦æœªè¼‰å…¥ã€‚" -#: lib/RT/ACE_Overlay.pm:688 +#: lib/RT/ACE_Overlay.pm:713 msgid "Right revoked" msgstr "æ¬Šé™æ’¤æ¶ˆå®Œç•¢" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/UserTabs:67 msgid "Rights" msgstr "權é™åŠä»£ç†äºº" -#: lib/RT/Interface/Web.pm:869 +#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:901 #. ($object_type) msgid "Rights could not be granted for %1" msgstr "無法將權é™è³¦äºˆ %1" -#: lib/RT/Interface/Web.pm:899 +#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:930 #. ($object_type) msgid "Rights could not be revoked for %1" msgstr "無法撤消 %1 的權é™" @@ -5912,7 +5845,7 @@ msgstr "角色æˆå“¡" msgid "Role Name" msgstr "角色å稱" -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 +#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 msgid "Roles" msgstr "角色" @@ -5920,7 +5853,7 @@ msgstr "角色" msgid "RootApproval" msgstr "交由系統管ç†å“¡ç°½æ ¸" -#: html/Search/Elements/DisplayOptions:62 +#: html/Search/Elements/DisplayOptions:83 msgid "Rows per page" msgstr "æ¯é ç­†æ•¸" @@ -5944,31 +5877,37 @@ msgstr "SMTP 伺æœå™¨" msgid "Sat" msgstr "星期六" -#: lib/RT/Date.pm:393 +#: lib/RT/Date.pm:418 msgid "Sat." msgstr "星期六" -#: html/Search/Elements/EditSearches:21 +#: html/Search/Elements/EditSearches:70 msgid "Save" msgstr "儲存" -#: 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 +#: 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:238 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:60 html/Ticket/ModifyPeople.html:59 html/User/Groups/Modify.html:77 msgid "Save Changes" msgstr "儲存更改" -#: html/User/Prefs.html:157 +#: html/User/Prefs.html:179 msgid "Save Preferences" -msgstr "" +msgstr "儲存å好" -#: html/Ticket/Elements/PreviewScrips:79 +#: html/Ticket/Elements/PreviewScrips:124 msgid "Save changes" msgstr "儲存更改" -#: html/Search/Elements/EditSearches:1 +#: lib/RT/SavedSearch.pm:162 +#. ($name) +msgid "Saved search %1" +msgstr "" + +#: html/Search/Elements/EditSearches:46 msgid "Saved searches" msgstr "已儲存的查詢" -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 +#: html/Admin/Elements/ListGlobalScrips:61 html/Admin/Global/Scrip.html:70 html/Admin/Queues/Scrip.html:76 +#. ($scrip->Id) #. ($id) #. ($ARGS{'id'}) msgid "Scrip #%1" @@ -5982,23 +5921,23 @@ msgstr "訊æ¯é€šçŸ¥å‹•作" msgid "Scrip Condition" msgstr "訊æ¯é€šçŸ¥æ¢ä»¶" -#: lib/RT/Scrip_Overlay.pm:180 +#: lib/RT/Scrip_Overlay.pm:205 msgid "Scrip Created" msgstr "手續新增完畢" -#: html/Admin/Elements/EditScrip:30 +#: html/Admin/Elements/EditScrip:52 msgid "Scrip Fields" -msgstr "" +msgstr "手續欄ä½" #: NOT FOUND IN SOURCE msgid "Scrip Name" msgstr "訊æ¯å稱" -#: html/Admin/Elements/EditScrips:85 +#: html/Admin/Elements/EditScrips:107 msgid "Scrip deleted" msgstr "手續刪除完畢" -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 +#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 msgid "Scrips" msgstr "手續" @@ -6010,11 +5949,11 @@ msgstr "訊æ¯é€šçŸ¥" msgid "Scrips for %1\\n" msgstr "%1 的手續\\n" -#: html/Admin/Queues/Scrips.html:33 +#: html/Admin/Queues/Scrips.html:55 msgid "Scrips which apply to all queues" msgstr "é©ç”¨æ–¼æ‰€æœ‰è¡¨å–®çš„æ‰‹çºŒ" -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 +#: html/Elements/SimpleSearch:48 html/Search/Build.html:112 msgid "Search" msgstr "查詢" @@ -6022,12 +5961,17 @@ msgstr "查詢" msgid "Search Criteria" msgstr "查詢æ¢ä»¶" -#: html/Approvals/Elements/PendingMyApproval:38 +#: lib/RT/SavedSearch.pm:116 +msgid "Search attribute load failure" +msgstr "" + +#: html/Approvals/Elements/PendingMyApproval:60 msgid "Search for approvals" msgstr "簽核單查詢" -#: NOT FOUND IN SOURCE -msgid "Search for articles" +#: lib/RT/SavedSearch.pm:194 +#. ($msg) +msgid "Search update: %1" msgstr "" #: NOT FOUND IN SOURCE @@ -6042,31 +5986,35 @@ msgstr "二" msgid "Second-level Users" msgstr "二階主管員工" -#: bin/rt-crontool:184 +#: bin/rt-crontool:213 msgid "Security:" msgstr "安全性:" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "See custom fields" msgstr "查閱自訂欄ä½" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/Queue_Overlay.pm:107 msgid "See exact outgoing email messages and their recipeients" msgstr "查閱é€å‡ºçš„é›»å­éƒµä»¶åŠæ”¶ä»¶äºº" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "See ticket private commentary" msgstr "查閱申請單內的ç§äººè©•è«–" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "See ticket summaries" msgstr "查閱申請單總覽" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:100 msgid "SeeCustomField" msgstr "查閱自訂欄ä½" -#: lib/RT/Queue_Overlay.pm:68 +#: lib/RT/Group_Overlay.pm:177 +msgid "SeeGroup" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:92 msgid "SeeQueue" msgstr "查閱表單" @@ -6078,71 +6026,79 @@ msgstr "鏿“‡" msgid "Select All" msgstr "å…¨é¸" -#: NOT FOUND IN SOURCE -msgid "Select a Class" -msgstr "" - -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 msgid "Select a Custom Field" msgstr "鏿“‡è‡ªè¨‚欄ä½" -#: NOT FOUND IN SOURCE -msgid "Select a Custom Fields" -msgstr "" - -#: html/Admin/Groups/index.html:50 +#: html/Admin/Groups/index.html:78 msgid "Select a group" msgstr "鏿“‡ç¾¤çµ„" -#: NOT FOUND IN SOURCE +#: 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:24 html/Admin/Users/index.html:27 +#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 msgid "Select a user" msgstr "鏿“‡ä½¿ç”¨è€…" -#: NOT FOUND IN SOURCE -msgid "Select class" -msgstr "" - -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 +#: html/Admin/Elements/CustomFieldTabs:90 msgid "Select custom field" msgstr "鏿“‡è‡ªè¨‚欄ä½" -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 +#: 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:427 +#: lib/RT/CustomField_Overlay.pm:59 msgid "Select multiple values" msgstr "鏿“‡å¤šé‡é …ç›®" -#: lib/RT/CustomField_Overlay.pm:424 +#: lib/RT/CustomField_Overlay.pm:60 msgid "Select one value" msgstr "鏿“‡å–®ä¸€é …ç›®" -#: html/Admin/Elements/QueueTabs:66 +#: html/Admin/Elements/QueueTabs:92 msgid "Select queue" msgstr "鏿“‡è¡¨å–®" -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 +#: html/Admin/Global/Scrip.html:58 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:73 msgid "Select scrip" msgstr "鏿“‡æ‰‹çºŒ" -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 +#: 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 "鏿“‡ç¯„本" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:61 msgid "Select up to %1 values" msgstr "鏿“‡æœ€å¤š %1 個值" -#: html/Admin/Elements/UserTabs:46 +#: html/Admin/Elements/UserTabs:75 msgid "Select user" msgstr "鏿“‡ä½¿ç”¨è€…" @@ -6154,19 +6110,19 @@ msgstr "鏿“‡æµç¨‹" msgid "SelectExternal" msgstr "系統é¸é …" -#: lib/RT/CustomField_Overlay.pm:35 +#: NOT FOUND IN SOURCE msgid "SelectMultiple" msgstr "多é‡é¸é …" -#: lib/RT/CustomField_Overlay.pm:34 +#: NOT FOUND IN SOURCE msgid "SelectSingle" msgstr "單一é¸é …" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:58 msgid "Selected Custom Fields" msgstr "å·²é¸å–的自訂欄ä½" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:59 msgid "Selected objects" msgstr "å·²é¸å–的物件" @@ -6204,11 +6160,11 @@ msgstr "寄信給特定的副本åŠå¯†ä»¶å‰¯æœ¬æ”¶ä»¶äºº" #: etc/initialdata:94 etc/upgrade/3.1.17/content:7 msgid "Sends mail to the Ccs" -msgstr "" +msgstr "寄信給副本收件人" #: etc/initialdata:90 etc/upgrade/3.1.17/content:3 msgid "Sends mail to the Ccs as a comment" -msgstr "" +msgstr "以評論方å¼å¯„信給副本收件人" #: etc/initialdata:102 msgid "Sends mail to the administrative Ccs" @@ -6226,14 +6182,10 @@ msgstr "寄信給申請人" msgid "Sep" msgstr "乿œˆ" -#: lib/RT/Date.pm:419 +#: lib/RT/Date.pm:445 msgid "Sep." msgstr "09" -#: NOT FOUND IN SOURCE -msgid "Seperate multiple URLs with spaces" -msgstr "" - #: NOT FOUND IN SOURCE msgid "September" msgstr "乿œˆ" @@ -6246,47 +6198,43 @@ msgstr "%1 的「åœç”¨ã€å±¬æ€§å·²è¨­ç‚º %2" msgid "Shift Type" msgstr "ç­åˆ¥å±¬æ€§" -#: html/Ticket/Elements/ShowTransaction:122 +#: html/Ticket/Elements/ShowTransaction:150 msgid "Show" msgstr "顯示" -#: html/Approvals/index.html:30 +#: html/Approvals/index.html:52 msgid "Show Approvals" -msgstr "" +msgstr "顯示待簽核申請單" -#: html/Search/Elements/EditFormat:11 +#: html/Search/Elements/EditFormat:56 msgid "Show Columns" msgstr "顯示欄ä½" -#: html/Ticket/Elements/Tabs:178 +#: html/Ticket/Elements/Tabs:201 msgid "Show Results" msgstr "é¡¯ç¤ºçµæžœ" -#: NOT FOUND IN SOURCE -msgid "Show advanced search options..." -msgstr "" - -#: html/Approvals/Elements/PendingMyApproval:43 +#: html/Approvals/Elements/PendingMyApproval:65 msgid "Show approved requests" msgstr "顯示已批准的簽核單" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show basics" msgstr "顯示基本資訊" -#: html/Approvals/Elements/PendingMyApproval:44 +#: html/Approvals/Elements/PendingMyApproval:66 msgid "Show denied requests" msgstr "顯示已é§å›žçš„簽核單" -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 +#: html/Ticket/Create.html:174 html/Ticket/Create.html:55 msgid "Show details" msgstr "顯示細節" -#: html/Approvals/Elements/PendingMyApproval:42 +#: html/Approvals/Elements/PendingMyApproval:64 msgid "Show pending requests" msgstr "顯示待處ç†çš„簽核單" -#: html/Approvals/Elements/PendingMyApproval:45 +#: html/Approvals/Elements/PendingMyApproval:67 msgid "Show requests awaiting other approvals" msgstr "顯示尚待他人批准的簽核單" @@ -6298,43 +6246,47 @@ msgstr "顯示申請單內的ç§äººè©•è«–" msgid "Show ticket summaries" msgstr "顯示申請單摘è¦" -#: lib/RT/Queue_Overlay.pm:70 +#: lib/RT/Queue_Overlay.pm:94 msgid "ShowACL" msgstr "é¡¯ç¤ºæ¬Šé™æ¸…å–®" -#: lib/RT/Queue_Overlay.pm:83 +#: lib/RT/System.pm:86 +msgid "ShowConfigTab" +msgstr "" + +#: lib/RT/Queue_Overlay.pm:107 msgid "ShowOutgoingEmail" msgstr "顯示寄é€éƒµä»¶" -#: lib/RT/Group_Overlay.pm:151 +#: lib/RT/Group_Overlay.pm:176 msgid "ShowSavedSearches" msgstr "顯示已儲存的查詢" -#: lib/RT/Queue_Overlay.pm:79 +#: lib/RT/Queue_Overlay.pm:103 msgid "ShowScrips" msgstr "顯示手續" -#: lib/RT/Queue_Overlay.pm:76 +#: lib/RT/Queue_Overlay.pm:100 msgid "ShowTemplate" msgstr "顯示範本" -#: lib/RT/Queue_Overlay.pm:80 +#: lib/RT/Queue_Overlay.pm:104 msgid "ShowTicket" msgstr "顯示申請單" -#: lib/RT/Queue_Overlay.pm:81 +#: lib/RT/Queue_Overlay.pm:105 msgid "ShowTicketComments" msgstr "顯示申請單的評論" -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Sign up as a ticket Requestor or ticket or queue Cc" msgstr "登記æˆç‚ºç”³è«‹äººæˆ–副本收件人" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "Sign up as a ticket or queue AdminCc" msgstr "登記æˆç‚ºç®¡ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 +#: html/Admin/Users/Modify.html:229 html/User/Prefs.html:167 msgid "Signature" msgstr "ç°½åæª”" @@ -6342,22 +6294,26 @@ msgstr "ç°½åæª”" msgid "Signed in as %1" msgstr "使用者:%1" -#: html/Admin/Elements/SelectSingleOrMultiple:25 +#: html/Admin/Elements/SelectSingleOrMultiple:47 msgid "Single" msgstr "單一" -#: html/Elements/Header:62 +#: html/Search/Elements/EditFormat:75 +msgid "Size" +msgstr "" + +#: html/Elements/Header:85 msgid "Skip Menu" msgstr "ç•¥éŽé¸å–®" -#: html/Admin/Elements/AddCustomFieldValue:27 +#: html/Search/Elements/EditFormat:78 +msgid "Small" +msgstr "" + +#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 msgid "Sort" msgstr "é †åº" -#: NOT FOUND IN SOURCE -msgid "Sort Order" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Sort key" msgstr "æŽ’åºæ–¹å¼" @@ -6370,11 +6326,7 @@ msgstr "çµæžœæŽ’åºæ–¹å¼" msgid "SortOrder" msgstr "排åºé †åº" -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "" - -#: html/Admin/Elements/EditScrip:65 +#: html/Admin/Elements/EditScrip:87 msgid "Stage" msgstr "é—œå¡" @@ -6394,7 +6346,7 @@ msgstr "延宕" msgid "Start page" msgstr "首é " -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 +#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 msgid "Started" msgstr "實際起始日" @@ -6402,7 +6354,7 @@ msgstr "實際起始日" msgid "Started date '%1' could not be parsed" msgstr "無法解讀起始日期 '%1" -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 +#: html/Elements/SelectDateType:52 html/Ticket/Create.html:196 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 msgid "Starts" msgstr "應起始日" @@ -6414,11 +6366,11 @@ msgstr "應起始日" msgid "Starts date '%1' could not be parsed" msgstr "無法解讀起始日期 '%1" -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 +#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 msgid "State" msgstr "å·ž" -#: 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 +#: html/Search/Elements/PickBasics:87 html/SelfService/Elements/MyRequests:50 html/SelfService/Update.html:57 html/Ticket/Create.html:63 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1142 lib/RT/Tickets_Overlay.pm:1378 msgid "Status" msgstr "ç¾æ³" @@ -6426,8 +6378,7 @@ msgstr "ç¾æ³" msgid "Status Change" msgstr "ç¾æ³æ”¹è®Šæ™‚" -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) +#: NOT FOUND IN SOURCE msgid "Status changed from %1 to %2" msgstr "ç¾æ³å¾ž %1 改為 %2" @@ -6435,69 +6386,65 @@ msgstr "ç¾æ³å¾ž %1 改為 %2" msgid "StatusChange" msgstr "ç¾æ³æ”¹è®Šæ™‚" -#: html/Ticket/Elements/Tabs:148 +#: html/Ticket/Elements/Tabs:170 msgid "Steal" msgstr "å¼·åˆ¶æ›´æ›æ‰¿è¾¦äºº" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "Steal tickets" msgstr "強制承辦申請單" -#: lib/RT/Queue_Overlay.pm:94 +#: lib/RT/Queue_Overlay.pm:118 msgid "StealTicket" msgstr "強制承辦申請單" -#: lib/RT/Transaction_Overlay.pm:581 +#: lib/RT/Transaction_Overlay.pm:667 #. ($Old->Name) -msgid "Stolen from %1 " +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: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 +#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:154 html/SelfService/Create.html:79 html/SelfService/Elements/MyRequests:49 html/SelfService/Update.html:65 html/Ticket/Create.html:105 html/Ticket/Elements/EditBasics:48 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:80 lib/RT/Ticket_Overlay.pm:1138 lib/RT/Tickets_Overlay.pm:1460 msgid "Subject" msgstr "主題" -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 +#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:689 #. ($self->Data) msgid "Subject changed to %1" msgstr "標題已改為 %1" -#: html/Elements/Submit:58 +#: html/Elements/Submit:97 msgid "Submit" msgstr "é€å‡º" -#: NOT FOUND IN SOURCE -msgid "Submit Query" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Submit Workflow" msgstr "é€å‡ºæµç¨‹" -#: lib/RT/Group_Overlay.pm:749 +#: lib/RT/Group_Overlay.pm:782 msgid "Succeeded" msgstr "設定æˆåŠŸ" -#: NOT FOUND IN SOURCE -msgid "Summary" -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Summary matches" -msgstr "" - #: NOT FOUND IN SOURCE msgid "Sun" msgstr "星期日" -#: lib/RT/Date.pm:394 +#: lib/RT/Date.pm:419 msgid "Sun." msgstr "星期日" -#: lib/RT/System.pm:53 +#: lib/RT/System.pm:76 msgid "SuperUser" msgstr "系統管ç†å“¡" @@ -6513,11 +6460,11 @@ msgstr "è‡ªå‹•åŒæ­¥104HRMS" msgid "Synchronizing HRMS data. This may take a while..." msgstr "æ­£åœ¨åŒæ­¥åŒ– HRMS 人事系統資料。請ç¨å¾…..." -#: html/User/Elements/DelegateRights:76 +#: html/User/Elements/DelegateRights:98 msgid "System" msgstr "系統" -#: html/Admin/Elements/ToolTabs:32 html/Admin/Tools/Configuration.html:3 +#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 msgid "System Configuration" msgstr "系統設定" @@ -6525,7 +6472,7 @@ msgstr "系統設定" msgid "System Defined" msgstr "系統定義" -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 +#: 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:585 lib/RT/Interface/Web.pm:900 lib/RT/Interface/Web.pm:929 msgid "System Error" msgstr "系統錯誤" @@ -6537,19 +6484,24 @@ msgstr "系統錯誤。設定權é™å¤±æ•—。" msgid "System Error. right not granted" msgstr "系統錯誤。設定權é™å¤±æ•—。" +#: lib/RT/Transaction_Overlay.pm:215 lib/RT/Transaction_Overlay.pm:221 +#. ($msg) +msgid "System Error: %1" +msgstr "" + #: NOT FOUND IN SOURCE msgid "System Rights" msgstr "系統權é™" -#: html/Admin/Tools/index.html:2 +#: html/Admin/Tools/index.html:47 msgid "System Tools" msgstr "系統工具" -#: lib/RT/ACE_Overlay.pm:615 +#: lib/RT/ACE_Overlay.pm:634 msgid "System error. Right not delegated." msgstr "系統錯誤。權é™ä»£ç†å¤±æ•—。" -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 +#: lib/RT/ACE_Overlay.pm:164 lib/RT/ACE_Overlay.pm:229 lib/RT/ACE_Overlay.pm:324 lib/RT/ACE_Overlay.pm:921 msgid "System error. Right not granted." msgstr "系統錯誤。設定權é™å¤±æ•—。" @@ -6557,7 +6509,7 @@ msgstr "系統錯誤。設定權é™å¤±æ•—。" msgid "System error. Unable to grant rights." msgstr "系統錯誤。無法設定權é™ã€‚" -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 +#: 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 "系統群組" @@ -6569,7 +6521,7 @@ msgstr "系統內部用" msgid "SystemRolegroup for internal use" msgstr "內部使用的系統角色群組" -#: lib/RT/CurrentUser.pm:334 +#: lib/RT/CurrentUser.pm:358 msgid "TEST_STRING" msgstr "TEST_STRING" @@ -6577,19 +6529,19 @@ msgstr "TEST_STRING" msgid "TabbedUI" msgstr "é ç±¤ä»‹é¢" -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 +#: html/Elements/MyRequests:50 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:166 msgid "Take" msgstr "å—ç†" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "Take tickets" msgstr "自行承辦申請單" -#: lib/RT/Queue_Overlay.pm:92 +#: lib/RT/Queue_Overlay.pm:116 msgid "TakeTicket" msgstr "自行承辦申請單" -#: lib/RT/Transaction_Overlay.pm:566 +#: lib/RT/Transaction_Overlay.pm:652 msgid "Taken" msgstr "å·²å—ç†" @@ -6597,11 +6549,11 @@ msgstr "å·²å—ç†" msgid "Task" msgstr "工作事項" -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 +#: html/Admin/Elements/EditScrip:79 html/Tools/Offline.html:78 msgid "Template" msgstr "範本" -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 +#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 #. ($TemplateObj->Id()) msgid "Template #%1" msgstr "範本 #%1" @@ -6618,11 +6570,11 @@ msgstr "通知範本æè¿°" msgid "Template Name" msgstr "通知範本å稱" -#: html/Admin/Elements/EditTemplates:88 +#: html/Admin/Elements/EditTemplates:110 msgid "Template deleted" msgstr "範本已刪除" -#: lib/RT/Scrip_Overlay.pm:156 +#: lib/RT/Scrip_Overlay.pm:181 msgid "Template not found" msgstr "找ä¸åˆ°ç¯„本" @@ -6630,11 +6582,11 @@ msgstr "找ä¸åˆ°ç¯„本" msgid "Template not found\\n" msgstr "找ä¸åˆ°ç¯„本\\n" -#: lib/RT/Template_Overlay.pm:348 +#: lib/RT/Template_Overlay.pm:376 msgid "Template parsed" msgstr "範本剖æžå®Œç•¢" -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 +#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 msgid "Templates" msgstr "範本" @@ -6650,33 +6602,33 @@ msgstr "找ä¸åˆ° %1 的範本\\n" msgid "Text" msgstr "文字" -#: lib/RT/Record.pm:740 +#: lib/RT/CustomField_Overlay.pm:877 lib/RT/Record.pm:931 msgid "That is already the current value" msgstr "å·²ç¶“æ˜¯ç›®å‰æ¬„ä½çš„值" -#: lib/RT/CustomField_Overlay.pm:248 +#: lib/RT/CustomField_Overlay.pm:407 msgid "That is not a value for this custom field" msgstr "這䏿˜¯è©²è‡ªè¨‚欄ä½çš„值" -#: lib/RT/Ticket_Overlay.pm:2086 +#: lib/RT/Ticket_Overlay.pm:1955 msgid "That is the same value" msgstr "åŒæ¨£çš„值" -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 +#: lib/RT/ACE_Overlay.pm:306 lib/RT/ACE_Overlay.pm:615 msgid "That principal already has that right" msgstr "這項單ä½å·²ç¶“æ“æœ‰è©²æ¬Šé™" -#: lib/RT/Queue_Overlay.pm:674 +#: lib/RT/Queue_Overlay.pm:750 #. ($args{'Type'}) msgid "That principal is already a %1 for this queue" msgstr "這項單ä½å·²ç¶“是這個表單的 %1" -#: lib/RT/Ticket_Overlay.pm:1527 +#: lib/RT/Ticket_Overlay.pm:1396 #. ($self->loc($args{'Type'})) msgid "That principal is already a %1 for this ticket" msgstr "這項單ä½å·²ç¶“是這份申請單的 %1" -#: lib/RT/Queue_Overlay.pm:773 +#: lib/RT/Queue_Overlay.pm:849 #. ($args{'Type'}) msgid "That principal is not a %1 for this queue" msgstr "這項單ä½ä¸æ˜¯é€™å€‹è¡¨å–®çš„ %1" @@ -6685,11 +6637,11 @@ msgstr "這項單ä½ä¸æ˜¯é€™å€‹è¡¨å–®çš„ %1" msgid "That principal is not a %1 for this ticket" msgstr "這項單ä½ä¸æ˜¯é€™ä»½ç”³è«‹å–®çš„ %1" -#: lib/RT/Ticket_Overlay.pm:2082 +#: lib/RT/Ticket_Overlay.pm:1951 msgid "That queue does not exist" msgstr "此表單ä¸å­˜åœ¨" -#: lib/RT/Ticket_Overlay.pm:3152 +#: lib/RT/Ticket_Overlay.pm:3189 msgid "That ticket has unresolved dependencies" msgstr "這份申請單有尚未解決的附屬申請單" @@ -6697,27 +6649,27 @@ msgstr "這份申請單有尚未解決的附屬申請單" msgid "That user already has that right" msgstr "使用者已具有該項權é™" -#: lib/RT/Ticket_Overlay.pm:2956 +#: lib/RT/Ticket_Overlay.pm:2993 msgid "That user already owns that ticket" msgstr "該使用者已經承辦這份申請單" -#: lib/RT/Ticket_Overlay.pm:2928 +#: lib/RT/Ticket_Overlay.pm:2965 msgid "That user does not exist" msgstr "使用者ä¸å­˜åœ¨" -#: lib/RT/User_Overlay.pm:355 +#: lib/RT/User_Overlay.pm:390 msgid "That user is already privileged" msgstr "這å使用者已經是內部æˆå“¡" -#: lib/RT/User_Overlay.pm:376 +#: lib/RT/User_Overlay.pm:411 msgid "That user is already unprivileged" msgstr "這å使用者屬於éžå…§éƒ¨æˆå“¡ç¾¤çµ„" -#: lib/RT/User_Overlay.pm:368 +#: lib/RT/User_Overlay.pm:403 msgid "That user is now privileged" msgstr "使用者加入內部æˆå“¡ç¾¤çµ„完畢" -#: lib/RT/User_Overlay.pm:389 +#: lib/RT/User_Overlay.pm:424 msgid "That user is now unprivileged" msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" @@ -6725,23 +6677,23 @@ msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" msgid "That user is now unprivilegedileged" msgstr "這å使用者已加入éžå…§éƒ¨æˆå“¡ç¾¤çµ„" -#: lib/RT/Ticket_Overlay.pm:2949 +#: lib/RT/Ticket_Overlay.pm:2986 msgid "That user may not own tickets in that queue" msgstr "使用者å¯èƒ½æ²’有承辦表單裡的申請單" -#: lib/RT/Link_Overlay.pm:200 +#: lib/RT/Link_Overlay.pm:234 msgid "That's not a numerical id" msgstr "這䏿˜¯ä¸€å€‹æ•¸å­—編號" -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 +#: html/SelfService/Display.html:53 html/Ticket/Create.html:180 html/Ticket/Elements/ShowSummary:49 msgid "The Basics" msgstr "基本資訊" -#: lib/RT/ACE_Overlay.pm:87 +#: lib/RT/ACE_Overlay.pm:113 msgid "The CC of a ticket" msgstr "申請單的副本收件人" -#: lib/RT/ACE_Overlay.pm:88 +#: lib/RT/ACE_Overlay.pm:114 msgid "The administrative CC of a ticket" msgstr "申請單的管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" @@ -6749,7 +6701,7 @@ msgstr "申請單的管ç†å“¡å‰¯æœ¬æ”¶ä»¶äºº" msgid "The comment has been recorded" msgstr "評論已被紀錄" -#: bin/rt-crontool:194 +#: bin/rt-crontool:223 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:" @@ -6757,19 +6709,19 @@ msgstr "下列命令會找到 'general' 表單內所有é‹ä½œä¸­çš„申請單, msgid "The following commands were not proccessed:\\n\\n" msgstr "以下命令未被執行:\\n\\n" -#: lib/RT/Record.pm:743 +#: lib/RT/Record.pm:934 msgid "The new value has been set." msgstr "新的欄ä½å€¼è¨­å®šå®Œæˆã€‚" -#: lib/RT/ACE_Overlay.pm:85 +#: lib/RT/ACE_Overlay.pm:111 msgid "The owner of a ticket" msgstr "申請單的承辦人" -#: lib/RT/ACE_Overlay.pm:86 +#: lib/RT/ACE_Overlay.pm:112 msgid "The requestor of a ticket" msgstr "申請單的申請人" -#: html/Admin/Elements/EditUserComments:25 +#: html/Admin/Elements/EditUserComments:47 msgid "These comments aren't generally visible to the user" msgstr "è©²ä½¿ç”¨è€…ä¸æœƒçœ‹è¦‹é€™äº›è©•è«–" @@ -6777,15 +6729,15 @@ msgstr "è©²ä½¿ç”¨è€…ä¸æœƒçœ‹è¦‹é€™äº›è©•è«–" msgid "Third-" msgstr "三" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:912 msgid "This custom field does not apply to that object" msgstr "此自訂欄ä½ä¸é©ç”¨æ–¼è©²ç‰©ä»¶" -#: html/Admin/Tools/Configuration.html:5 +#: html/Admin/Tools/Configuration.html:50 msgid "This feature is only available to system administrators" msgstr "此項功能僅é™ç³»çµ±ç®¡ç†å“¡ä½¿ç”¨" -#: html/Ticket/Elements/PreviewScrips:48 +#: html/Ticket/Elements/PreviewScrips:93 msgid "This message will be sent to..." msgstr "æ­¤è¨Šæ¯æœƒå¯„給..." @@ -6793,15 +6745,15 @@ msgstr "æ­¤è¨Šæ¯æœƒå¯„給..." msgid "This ticket %1 %2 (%3)\\n" msgstr "申請單 %1 %2 (%3)\\n" -#: bin/rt-crontool:185 +#: bin/rt-crontool:214 msgid "This tool allows the user to run arbitrary perl modules from within RT." msgstr "æ­¤å·¥å…·ç¨‹å¼æœƒè®“使用者經由 RT 執行任æ„命令。" -#: lib/RT/Transaction_Overlay.pm:226 +#: lib/RT/Transaction_Overlay.pm:288 msgid "This transaction appears to have no content" msgstr "此項更動報告沒有內容" -#: html/Ticket/Elements/ShowRequestor:48 +#: html/Ticket/Elements/ShowRequestor:70 #. ($rows) msgid "This user's %1 highest priority tickets" msgstr "使用者é€å‡ºçš„å‰ %1 份優先處ç†ç”³è«‹å–®" @@ -6814,7 +6766,7 @@ msgstr "使用者é€å‡ºçš„å‰ 25 份優先處ç†ç”³è«‹å–®" msgid "Thu" msgstr "星期四" -#: lib/RT/Date.pm:391 +#: lib/RT/Date.pm:416 msgid "Thu." msgstr "星期四" @@ -6830,24 +6782,24 @@ msgstr "申請單 # %1 %2" msgid "Ticket # %1 Jumbo update: %2" msgstr "更新申請單 # %1 的全部資訊:%2" -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 +#: 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:45 +#: html/Approvals/Elements/ShowDependency:67 #. ($link->BaseObj->Id, $link->BaseObj->Subject) msgid "Ticket #%1: %2" msgstr "申請單 #%1: %2" -#: lib/RT/Action/CreateTickets.pm:1154 lib/RT/Action/CreateTickets.pm:1163 lib/RT/Action/CreateTickets.pm:516 lib/RT/Action/CreateTickets.pm:634 lib/RT/Action/CreateTickets.pm:647 +#: lib/RT/Action/CreateTickets.pm:1258 lib/RT/Action/CreateTickets.pm:1267 lib/RT/Action/CreateTickets.pm:595 lib/RT/Action/CreateTickets.pm:716 lib/RT/Action/CreateTickets.pm:729 #. ($T::Tickets{$template_id}->Id) #. ($T::Tickets{$template_id}->id) #. ($ticket->Id) msgid "Ticket %1" msgstr "申請單 %1" -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 +#: lib/RT/Ticket_Overlay.pm:731 lib/RT/Ticket_Overlay.pm:751 #. ($self->Id, $QueueObj->Name) msgid "Ticket %1 created in queue '%2'" msgstr "申請單 #%1 æˆåŠŸæ–°å¢žæ–¼ '%2' 表單" @@ -6856,12 +6808,12 @@ msgstr "申請單 #%1 æˆåŠŸæ–°å¢žæ–¼ '%2' 表單" msgid "Ticket %1 loaded\\n" msgstr "載入申請單 %1\\n" -#: html/Search/Bulk.html:216 +#: html/Search/Bulk.html:269 #. ($Ticket->Id,$_) msgid "Ticket %1: %2" msgstr "申請單 %1:%2" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:74 msgid "Ticket Custom Fields" msgstr "申請單的自訂欄ä½" @@ -6869,7 +6821,7 @@ msgstr "申請單的自訂欄ä½" msgid "Ticket Due" msgstr "è¡¨å–®è™•ç†æœŸé™" -#: html/Ticket/History.html:24 html/Ticket/History.html:27 +#: html/Ticket/History.html:46 html/Ticket/History.html:49 #. ($Ticket->Id, $Ticket->Subject) msgid "Ticket History # %1 %2" msgstr "申請單處ç†ç´€éŒ„ # %1 %2" @@ -6890,7 +6842,7 @@ msgstr "表單é‹è¡ŒæœŸé™" msgid "Ticket Resolved" msgstr "申請單已解決" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1085 msgid "Ticket Transactions" msgstr "申請單的更動" @@ -6902,19 +6854,19 @@ msgstr "表單種類" msgid "Ticket attachment" msgstr "申請單附件" -#: lib/RT/Tickets_Overlay.pm:1228 +#: lib/RT/Tickets_Overlay.pm:1648 msgid "Ticket content" msgstr "申請單內容" -#: lib/RT/Tickets_Overlay.pm:1274 +#: lib/RT/Tickets_Overlay.pm:1697 msgid "Ticket content type" msgstr "申請單內容類別" -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 +#: lib/RT/Ticket_Overlay.pm:593 lib/RT/Ticket_Overlay.pm:607 lib/RT/Ticket_Overlay.pm:618 lib/RT/Ticket_Overlay.pm:739 msgid "Ticket could not be created due to an internal error" msgstr "內部錯誤,無法新增申請單" -#: lib/RT/Transaction_Overlay.pm:497 +#: NOT FOUND IN SOURCE msgid "Ticket created" msgstr "申請單新增完畢" @@ -6922,7 +6874,7 @@ msgstr "申請單新增完畢" msgid "Ticket creation failed" msgstr "申請單新增失敗" -#: lib/RT/Transaction_Overlay.pm:502 +#: NOT FOUND IN SOURCE msgid "Ticket deleted" msgstr "申請單刪除完畢" @@ -6934,7 +6886,7 @@ msgstr "找ä¸åˆ°ç”³è«‹å–®ç·¨è™Ÿ" msgid "Ticket killed" msgstr "申請單刪除完畢" -#: html/Ticket/Display.html:33 +#: html/Ticket/Display.html:55 msgid "Ticket metadata" msgstr "申請單的æè¿°è³‡è¨Š" @@ -6950,17 +6902,20 @@ msgstr "ç”³è«‹å–®ç¾æ³å·²æ”¹è®Š" msgid "Ticket watchers" msgstr "申請單視察員" -#: html/Elements/Tabs:46 +#: lib/RT/Search/FromSQL.pm:83 +#. (ref $self) +msgid "TicketSQL search module" +msgstr "" + +#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:68 lib/RT/CustomField_Overlay.pm:1084 msgid "Tickets" msgstr "申請單" -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 %2" msgstr "申請單 %1 %2" -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) +#: NOT FOUND IN SOURCE msgid "Tickets %1 by %2" msgstr "申請單 %1 (%2)" @@ -6976,31 +6931,31 @@ msgstr "é€å‡ºçš„申請單" msgid "Tickets from %1" msgstr "%1 的申請單" -#: html/Approvals/Elements/ShowDependency:26 +#: html/Approvals/Elements/ShowDependency:48 msgid "Tickets which depend on this approval:" msgstr "æ‰¹å‡†ä¹‹å¾Œï¼Œå¯æŽ¥çºŒè™•ç†ï¼š" -#: html/Search/Elements/PickBasics:69 html/Ticket/Elements/EditBasics:39 +#: html/Search/Elements/PickBasics:148 html/Ticket/Elements/EditBasics:61 msgid "Time Estimated" msgstr "é è¨ˆæ™‚é–“" -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 +#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:187 html/Ticket/Elements/EditBasics:69 msgid "Time Left" msgstr "剩餘時間" -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 +#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:186 html/Ticket/Elements/EditBasics:65 msgid "Time Worked" msgstr "è™•ç†æ™‚é–“" -#: lib/RT/Tickets_Overlay.pm:1201 +#: lib/RT/Tickets_Overlay.pm:1619 msgid "Time left" msgstr "剩餘時間" -#: html/Elements/Footer:44 +#: html/Elements/Footer:71 msgid "Time to display" msgstr "顯示時間" -#: lib/RT/Tickets_Overlay.pm:1177 +#: lib/RT/Tickets_Overlay.pm:1594 msgid "Time worked" msgstr "å·²è™•ç†æ™‚é–“" @@ -7008,10 +6963,14 @@ msgstr "å·²è™•ç†æ™‚é–“" msgid "TimeLeft" msgstr "剩餘時間" -#: lib/RT/Ticket_Overlay.pm:1277 +#: lib/RT/Ticket_Overlay.pm:1143 msgid "TimeWorked" msgstr "å·²è™•ç†æ™‚é–“" +#: html/Search/Elements/EditFormat:74 +msgid "Title" +msgstr "" + #: NOT FOUND IN SOURCE msgid "To generate a diff of this commit:" msgstr "產生這次更動的差異檔:" @@ -7020,7 +6979,7 @@ msgstr "產生這次更動的差異檔:" msgid "To generate a diff of this commit:\\n" msgstr "產生這次更動的差異檔:\\n" -#: html/Elements/Footer:39 +#: html/Elements/Footer:61 #. ('<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。" @@ -7029,11 +6988,11 @@ msgstr "如果有支æ´ã€æ•™è‚²è¨“ç·´åŠå®šè£½é–‹ç™¼çš„需è¦ï¼Œè«‹é€£çµ¡ %1。 msgid "Todo" msgstr "待辦事項" -#: lib/RT/Ticket_Overlay.pm:1280 +#: lib/RT/Ticket_Overlay.pm:1146 msgid "Told" msgstr "告知日期" -#: html/Admin/Elements/Tabs:43 html/Elements/Tabs:49 +#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:71 msgid "Tools" msgstr "工具" @@ -7045,24 +7004,24 @@ msgstr "é " msgid "Transaction" msgstr "æ›´å‹•" -#: lib/RT/Transaction_Overlay.pm:705 +#: lib/RT/Transaction_Overlay.pm:794 #. ($self->Data) msgid "Transaction %1 purged" msgstr "清除更動報告 %1" -#: lib/RT/Transaction_Overlay.pm:136 +#: lib/RT/Transaction_Overlay.pm:174 msgid "Transaction Created" msgstr "更動報告已新增" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/QueueTabs:78 msgid "Transaction Custom Fields" msgstr "更動的自訂欄ä½" -#: lib/RT/Transaction_Overlay.pm:92 +#: NOT FOUND IN SOURCE msgid "Transaction->Create couldn't, as you didn't specify a ticket id" msgstr "未指定申請單編號,無法新增更動" -#: NOT FOUND IN SOURCE +#: lib/RT/Transaction_Overlay.pm:125 msgid "Transaction->Create couldn't, as you didn't specify an object type and id" msgstr "未指定物件類別åŠç·¨è™Ÿï¼Œç„¡æ³•新增更動" @@ -7074,7 +7033,7 @@ msgstr "批次更動時" msgid "TransactionCreate" msgstr "新增更動時" -#: lib/RT/Transaction_Overlay.pm:760 +#: lib/RT/Transaction_Overlay.pm:838 msgid "Transactions are immutable" msgstr "ä¸å¯æ›´æ”¹æ›´å‹•報告" @@ -7090,23 +7049,19 @@ msgstr "試圖刪除æŸé …權é™ï¼š%1" msgid "Tue" msgstr "星期二" -#: lib/RT/Date.pm:389 +#: lib/RT/Date.pm:414 msgid "Tue." msgstr "星期二" -#: 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 +#: 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:1144 lib/RT/Tickets_Overlay.pm:1432 msgid "Type" msgstr "類別" -#: NOT FOUND IN SOURCE -msgid "Unable to load article" -msgstr "" - -#: lib/RT/ScripCondition_Overlay.pm:103 +#: lib/RT/ScripCondition_Overlay.pm:129 msgid "Unimplemented" msgstr "尚無實作" -#: html/Admin/Users/Modify.html:67 +#: html/Admin/Users/Modify.html:89 msgid "Unix login" msgstr "外部系統登入帳號" @@ -7114,16 +7069,21 @@ msgstr "外部系統登入帳號" msgid "UnixUsername" msgstr "外部系統登入帳號" -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 +#: lib/RT/Attachment_Overlay.pm:290 lib/RT/Record.pm:847 #. ($self->ContentEncoding) +#. ($ContentEncoding) msgid "Unknown ContentEncoding %1" msgstr "ä¸å¯è§£çš„å…§å®¹æ–‡å­—ç·¨ç¢¼æ–¹å¼ %1" -#: html/Elements/SelectResultsPerPage:36 +#: html/Search/Build.html:632 +msgid "Unknown field: $key" +msgstr "" + +#: html/Elements/SelectResultsPerPage:58 msgid "Unlimited" msgstr "全數顯示" -#: html/Search/Elements/SelectSearchesForObjects:15 +#: html/Search/Elements/SelectSearchesForObjects:63 msgid "Unnamed search" msgstr "未命å的查詢" @@ -7131,15 +7091,15 @@ msgstr "未命å的查詢" msgid "Unprivileged" msgstr "éžå…§éƒ¨æˆå“¡" -#: NOT FOUND IN SOURCE +#: html/Admin/Elements/EditCustomFields:60 msgid "Unselected Custom Fields" msgstr "未é¸å–的自訂欄ä½" -#: NOT FOUND IN SOURCE +#: html/Admin/CustomFields/Objects.html:61 msgid "Unselected objects" msgstr "未é¸å–的物件" -#: lib/RT/Transaction_Overlay.pm:562 +#: lib/RT/Transaction_Overlay.pm:648 msgid "Untaken" msgstr "未被å—ç†" @@ -7151,23 +7111,23 @@ msgstr "未命å的查詢" msgid "Up" msgstr "上一é " -#: html/Search/Bulk.html:32 +#: html/Search/Bulk.html:54 msgid "Update" msgstr "處ç†" -#: html/Search/Bulk.html:146 +#: html/Search/Bulk.html:178 msgid "Update All" -msgstr "" +msgstr "全部更新" #: NOT FOUND IN SOURCE msgid "Update ID" msgstr "更新編號" -#: html/Ticket/Update.html:97 +#: html/Ticket/Update.html:133 msgid "Update Ticket" -msgstr "" +msgstr "更新申請單" -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 +#: html/Search/Bulk.html:148 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:70 msgid "Update Type" msgstr "更新類別" @@ -7179,7 +7139,7 @@ msgstr "整批更新申請單" msgid "Update email" msgstr "æ›´æ–°é›»å­éƒµä»¶ä¿¡ç®±" -#: html/Search/Results.html:46 +#: html/Search/Results.html:80 msgid "Update multiple tickets" msgstr "批次更新申請單" @@ -7187,11 +7147,11 @@ msgstr "批次更新申請單" msgid "Update name" msgstr "更新帳號" -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 +#: lib/RT/Action/CreateTickets.pm:737 lib/RT/Interface/Web.pm:524 msgid "Update not recorded." msgstr "更新未被記錄" -#: html/Search/Bulk.html:78 +#: html/Search/Bulk.html:99 msgid "Update selected tickets" msgstr "æ›´æ–°é¸æ“‡çš„申請單" @@ -7199,7 +7159,7 @@ msgstr "æ›´æ–°é¸æ“‡çš„申請單" msgid "Update signature" msgstr "更新簽章" -#: html/Ticket/ModifyAll.html:62 +#: html/Ticket/ModifyAll.html:84 msgid "Update ticket" msgstr "更新申請單" @@ -7207,58 +7167,58 @@ msgstr "更新申請單" msgid "Update ticket # %1" msgstr "更新申請單 # %1" -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 +#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 #. ($Ticket->id) msgid "Update ticket #%1" msgstr "更新申請單 #%1" -#: html/Ticket/Update.html:121 +#: html/Ticket/Update.html:156 #. ($TicketObj->id, $TicketObj->Subject) msgid "Update ticket #%1 (%2)" msgstr "更新申請單 #%1 (%2)" -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 +#: lib/RT/Action/CreateTickets.pm:735 lib/RT/Interface/Web.pm:523 msgid "Update type was neither correspondence nor comment." msgstr "更新的內容並éžç”³è«‹å–®å›žè¦†ä¹Ÿä¸æ˜¯è©•è«–" -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 +#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/Ticket_Overlay.pm:1147 msgid "Updated" msgstr "剿¬¡æ›´æ–°" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload" msgstr "上載" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:84 msgid "Upload multiple files" msgstr "上載多個檔案" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:79 msgid "Upload multiple images" msgstr "上載多份圖片" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:85 msgid "Upload one file" msgstr "上載一個檔案" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:80 msgid "Upload one image" msgstr "上載一份圖片" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:86 msgid "Upload up to %1 files" msgstr "上載最多 %1 個檔案" -#: NOT FOUND IN SOURCE +#: lib/RT/CustomField_Overlay.pm:81 msgid "Upload up to %1 images" msgstr "上載最多 %1 份圖片" -#: html/Tools/Offline.html:73 +#: html/Tools/Offline.html:95 msgid "Upload your changes" msgstr "上載您的更動" -#: NOT FOUND IN SOURCE -msgid "Use the dropdown menus to select which transactions you want to extract into a new RTFM article" +#: html/Admin/index.html:90 +msgid "Use other RT administrative tools" msgstr "" #: NOT FOUND IN SOURCE @@ -7273,7 +7233,7 @@ msgstr "使用者 %1 %2:%3\\n" msgid "User %1 Password: %2\\n" msgstr "使用者 %1 密碼:%2\\n" -#: lib/RT/Ticket_Overlay.pm:468 +#: lib/RT/Ticket_Overlay.pm:496 #. ($args{'Owner'}) msgid "User '%1' could not be found." msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'。" @@ -7290,15 +7250,15 @@ msgstr "找ä¸åˆ°ä½¿ç”¨è€… '%1'\\n" msgid "User Defined" msgstr "使用者自訂" -#: html/Admin/Elements/EditScrip:76 +#: html/Admin/Elements/EditScrip:98 msgid "User Defined conditions and actions" -msgstr "" +msgstr "使用者自訂的æ¢ä»¶åŠå‹•作" #: NOT FOUND IN SOURCE msgid "User ID" msgstr "使用者 ID" -#: html/Elements/SelectUsers:25 +#: NOT FOUND IN SOURCE msgid "User Id" msgstr "使用者 ID" @@ -7306,7 +7266,7 @@ msgstr "使用者 ID" msgid "User Number" msgstr "員工編號" -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 +#: 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 "使用者權é™" @@ -7318,16 +7278,17 @@ msgstr "使用者設定" msgid "User Shift" msgstr "å“¡å·¥ç­åˆ¥" -#: NOT FOUND IN SOURCE +#: lib/RT/Interface/Web.pm:1283 +#. ($cf->Name, $class, $Object->id) 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:252 +#: html/Admin/Users/Modify.html:293 #. ($msg) msgid "User could not be created: %1" msgstr "無法新增使用者:%1" -#: lib/RT/User_Overlay.pm:296 +#: lib/RT/User_Overlay.pm:331 msgid "User created" msgstr "使用者新增完畢" @@ -7339,11 +7300,11 @@ msgstr "使用者 %1 新增完畢" msgid "User created: %1 (%2)" msgstr "使用者 %1 (%2) 新增完畢" -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 +#: 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:558 lib/RT/User_Overlay.pm:575 +#: lib/RT/User_Overlay.pm:593 lib/RT/User_Overlay.pm:613 msgid "User loaded" msgstr "已載入使用者" @@ -7359,7 +7320,7 @@ msgstr "使用者 %1 已改å為 %2" msgid "User view" msgstr "使用者ç§äººè³‡æ–™" -#: NOT FOUND IN SOURCE +#: html/Admin/Groups/index.html:99 msgid "User-defined groups" msgstr "使用者自定群組" @@ -7367,19 +7328,19 @@ msgstr "使用者自定群組" msgid "UserDefined" msgstr "使用者自定" -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 +#: html/Admin/Users/Modify.html:69 html/Elements/Login:73 html/Ticket/Elements/AddWatchers:56 msgid "Username" msgstr "帳號" -#: 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 +#: 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:1086 msgid "Users" msgstr "使用者" -#: html/Admin/Users/index.html:64 +#: html/Admin/Users/index.html:85 msgid "Users matching search criteria" msgstr "ç¬¦åˆæŸ¥è©¢æ¢ä»¶çš„使用者" -#: lib/RT/Tickets_Overlay_SQL.pm:494 +#: lib/RT/Tickets_Overlay_SQL.pm:523 msgid "Valid Query" msgstr "åˆç†çš„æŸ¥è©¢" @@ -7387,7 +7348,7 @@ msgstr "åˆç†çš„æŸ¥è©¢" msgid "ValueOfQueue" msgstr "鏿“‡è¡¨å–®" -#: html/Admin/Elements/EditCustomField:56 +#: html/Admin/CustomFields/Modify.html:89 html/Admin/Elements/EditCustomField:78 msgid "Values" msgstr "欄ä½å€¼" @@ -7395,15 +7356,11 @@ msgstr "欄ä½å€¼" msgid "View log" msgstr "檢視紀錄檔" -#: NOT FOUND IN SOURCE -msgid "VrijevormEnkele" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:84 +#: lib/RT/Queue_Overlay.pm:108 msgid "Watch" msgstr "視察" -#: lib/RT/Queue_Overlay.pm:85 +#: lib/RT/Queue_Overlay.pm:109 msgid "WatchAsAdminCc" msgstr "以管ç†å“¡å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è¦–察" @@ -7411,7 +7368,7 @@ msgstr "以管ç†å“¡å‰¯æœ¬æ”¶ä»¶äººèº«ä»½è¦–察" msgid "Watcher loaded" msgstr "æˆåŠŸè¼‰å…¥è¦–å¯Ÿå“¡è³‡è¨Š" -#: html/Admin/Elements/QueueTabs:41 +#: html/Admin/Elements/QueueTabs:63 msgid "Watchers" msgstr "視察員" @@ -7423,7 +7380,7 @@ msgstr "ç¶²é æ–‡å­—編碼方å¼" msgid "Wed" msgstr "星期三" -#: lib/RT/Date.pm:390 +#: lib/RT/Date.pm:415 msgid "Wed." msgstr "星期三" @@ -7457,7 +7414,7 @@ msgstr "ç•¶ç”³è«‹å–®æ›´æ›æ‰¿è¾¦äººæ™‚" #: etc/initialdata:178 etc/upgrade/3.1.17/content:16 msgid "Whenever a ticket's priority changes" -msgstr "" +msgstr "ç•¶ç”³è«‹å–®çš„å„ªå…ˆé †åºæ”¹è®Šæ™‚" #: etc/initialdata:193 msgid "Whenever a ticket's queue changes" @@ -7479,19 +7436,11 @@ msgstr "ç•¶è©•è«–é€é”時" msgid "Whenever correspondence comes in" msgstr "當回覆é€é”時" -#: NOT FOUND IN SOURCE -msgid "Which are referred to by " -msgstr "" - -#: NOT FOUND IN SOURCE -msgid "Which refer to" -msgstr "" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 +#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:89 msgid "Work" msgstr "å…¬å¸" -#: html/Search/Results.html:50 +#: html/Search/Results.html:84 msgid "Work offline" msgstr "離線工作" @@ -7499,7 +7448,7 @@ msgstr "離線工作" msgid "WorkPhone" msgstr "å…¬å¸é›»è©±" -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 +#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 msgid "Worked" msgstr "è™•ç†æ™‚é–“" @@ -7527,7 +7476,7 @@ msgstr "æµç¨‹" msgid "Writable" msgstr "å¯è®€å¯«" -#: html/autohandler:150 +#: NOT FOUND IN SOURCE msgid "XXX CHANGEME You are not an authorized user" msgstr "XXX CHANGEME 您是未經授權的使用者" @@ -7535,11 +7484,11 @@ msgstr "XXX CHANGEME 您是未經授權的使用者" msgid "Yes" msgstr "是" -#: lib/RT/Ticket_Overlay.pm:3059 +#: lib/RT/Ticket_Overlay.pm:3096 msgid "You already own this ticket" msgstr "您已是這份申請單的承辦人" -#: html/autohandler:142 +#: html/autohandler:158 html/autohandler:166 msgid "You are not an authorized user" msgstr "æ‚¨ä¸æ˜¯è¢«æŽˆæ¬Šçš„使用者" @@ -7547,7 +7496,7 @@ msgstr "æ‚¨ä¸æ˜¯è¢«æŽˆæ¬Šçš„使用者" msgid "You can access it with the Download button on the right." msgstr "您å¯ä»¥æŒ‰å³æ–¹çš„「下載ã€éµä¾†å–得。" -#: lib/RT/Ticket_Overlay.pm:2941 +#: lib/RT/Ticket_Overlay.pm:2978 msgid "You can only reassign tickets that you own or that are unowned" msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿è¾¦æˆ–是沒有承辦人的申請單" @@ -7555,20 +7504,20 @@ msgstr "ç¥‡èƒ½é‡æ–°æŒ‡æ´¾æ‚¨æ‰€æ‰¿è¾¦æˆ–是沒有承辦人的申請單" 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:760 +#: 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:30 +#: html/NoAuth/Logout.html:52 msgid "You have been logged out of RT." msgstr "您已登出 RT。" -#: html/SelfService/Display.html:79 +#: html/SelfService/Display.html:109 msgid "You have no permission to create tickets in that queue." msgstr "您沒有在該表單新增申請單的權é™ã€‚" -#: lib/RT/Ticket_Overlay.pm:2095 +#: lib/RT/Ticket_Overlay.pm:1964 msgid "You may not create requests in that queue." msgstr "您ä¸èƒ½åœ¨è©²è¡¨å–®ä¸­æå‡ºç”³è«‹ã€‚" @@ -7576,7 +7525,7 @@ msgstr "您ä¸èƒ½åœ¨è©²è¡¨å–®ä¸­æå‡ºç”³è«‹ã€‚" msgid "You need to restart the Request Tracker service for saved changes to take effect." msgstr "æ‚¨å¿…é ˆé‡æ–°å•Ÿå‹• Request Tracker æœå‹™ï¼Œå„²å­˜çš„æ›´å‹•纔會生效。" -#: html/NoAuth/Logout.html:34 +#: html/NoAuth/Logout.html:56 msgid "You're welcome to login again" msgstr "歡迎下次å†ä¾†" @@ -7608,11 +7557,11 @@ msgstr "您的申請單已被 %1 é§å›žã€‚" msgid "Your request was rejected." msgstr "您的申請單已被é§å›žã€‚" -#: html/autohandler:177 +#: html/autohandler:193 msgid "Your username or password is incorrect" msgstr "您的帳號或密碼有誤" -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 +#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 msgid "Zip" msgstr "郵éžå€è™Ÿ" @@ -7628,28 +7577,32 @@ msgstr "éŽæœŸ" msgid "alert" msgstr "急訊" -#: NOT FOUND IN SOURCE -msgid "and is not" +#: lib/RT/System.pm:88 +msgid "allow creation of saved searches" msgstr "" -#: NOT FOUND IN SOURCE -msgid "and not" +#: lib/RT/System.pm:87 +msgid "allow loading of saved searches" msgstr "" #: NOT FOUND IN SOURCE msgid "approving" msgstr "待簽核" -#: html/User/Elements/DelegateRights:58 +#: html/User/Elements/DelegateRights:80 #. ($right->PrincipalObj->Object->SelfDescription) msgid "as granted to %1" msgstr "權é™åŒ %1" -#: html/SelfService/Closed.html:27 +#: html/Search/Elements/PickBasics:127 +msgid "belongs to" +msgstr "" + +#: html/SelfService/Closed.html:49 msgid "closed" msgstr "已解決" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 msgid "contains" msgstr "包å«" @@ -7673,7 +7626,7 @@ msgstr "申請單回覆已é€å‡º" msgid "critical" msgstr "åš´é‡" -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 +#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:342 msgid "days" msgstr "天" @@ -7689,15 +7642,19 @@ msgstr "åµéŒ¯" msgid "delete" msgstr "刪除" -#: lib/RT/Queue_Overlay.pm:64 +#: lib/RT/Queue_Overlay.pm:88 msgid "deleted" msgstr "已刪除" -#: html/Search/Elements/PickBasics:33 +#: html/Search/Elements/PickBasics:128 +msgid "does not belong to" +msgstr "" + +#: html/Search/Elements/PickBasics:61 msgid "does not match" msgstr "ä¸ç¬¦åˆ" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 msgid "doesn't contain" msgstr "ä¸åŒ…å«" @@ -7709,7 +7666,7 @@ msgstr "é›»å­éƒµä»¶ä¿¡ç®±" msgid "emergency" msgstr "å±é›£" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "equal to" msgstr "等於" @@ -7717,6 +7674,30 @@ msgstr "等於" msgid "error" msgstr "錯誤" +#: html/Search/Build.html:387 +msgid "error: can't move down" +msgstr "" + +#: html/Search/Build.html:409 +msgid "error: can't move left" +msgstr "" + +#: html/Search/Build.html:368 +msgid "error: can't move up" +msgstr "" + +#: html/Search/Build.html:451 +msgid "error: nothing to delete" +msgstr "" + +#: html/Search/Build.html:373 html/Search/Build.html:392 html/Search/Build.html:414 html/Search/Build.html:443 +msgid "error: nothing to move" +msgstr "" + +#: html/Search/Build.html:469 +msgid "error: nothing to toggle" +msgstr "" + #: NOT FOUND IN SOURCE msgid "false" msgstr "å‡" @@ -7725,40 +7706,36 @@ msgstr "å‡" msgid "filename" msgstr "檔å" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "greater than" msgstr "大於" -#: lib/RT/Group_Overlay.pm:196 +#: lib/RT/Group_Overlay.pm:222 #. ($self->Name) msgid "group '%1'" msgstr "群組 '%1'" -#: lib/RT/Date.pm:315 +#: lib/RT/Date.pm:338 msgid "hours" msgstr "å°æ™‚" -#: NOT FOUND IN SOURCE +#: html/Search/Elements/PickBasics:48 msgid "id" msgstr "編號" -#: NOT FOUND IN SOURCE -msgid "in class %1" -msgstr "" - #: NOT FOUND IN SOURCE msgid "info" msgstr "資訊" -#: 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 +#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:175 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 msgid "is" msgstr "是" -#: 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 +#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:176 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 msgid "isn't" msgstr "䏿˜¯" -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 msgid "less than" msgstr "å°æ–¼" @@ -7766,15 +7743,15 @@ msgstr "å°æ–¼" msgid "level Admin" msgstr "層主管" -#: html/Search/Elements/PickBasics:32 +#: html/Search/Elements/PickBasics:60 msgid "matches" msgstr "符åˆ" -#: lib/RT/Date.pm:311 +#: lib/RT/Date.pm:334 msgid "min" msgstr "分" -#: html/Ticket/Update.html:42 +#: html/Ticket/Update.html:64 msgid "minutes" msgstr "分é˜" @@ -7782,27 +7759,27 @@ msgstr "分é˜" msgid "modifications\\n\\n" msgstr "更改\\n\\n" -#: lib/RT/Date.pm:327 +#: lib/RT/Date.pm:350 msgid "months" msgstr "月" -#: lib/RT/Queue_Overlay.pm:59 +#: lib/RT/Queue_Overlay.pm:83 msgid "new" msgstr "新建立" -#: html/Admin/Elements/EditCustomFields:42 +#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:63 msgid "no name" msgstr "沒有å稱" -#: html/Admin/Elements/EditScrips:42 +#: html/Admin/Elements/EditScrips:64 msgid "no value" msgstr "沒有值" -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 +#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 msgid "none" msgstr "ç„¡" -#: html/Elements/SelectEqualityOperator:37 +#: html/Elements/SelectEqualityOperator:59 msgid "not equal to" msgstr "ä¸ç­‰æ–¼" @@ -7818,7 +7795,7 @@ msgstr "ä¸ç¬¦åˆ" msgid "number" msgstr "號" -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 +#: html/SelfService/Elements/MyRequests:83 lib/RT/Queue_Overlay.pm:84 msgid "open" msgstr "開啟" @@ -7826,21 +7803,21 @@ msgstr "開啟" msgid "opened" msgstr "已開啟" -#: lib/RT/Group_Overlay.pm:201 +#: lib/RT/Group_Overlay.pm:227 #. ($self->Name, $user->Name) msgid "personal group '%1' for user '%2'" msgstr "使用者「%2ã€çš„「%1ã€ä»£ç†äººç¾¤çµ„" -#: lib/RT/Group_Overlay.pm:209 +#: lib/RT/Group_Overlay.pm:235 #. ($queue->Name, $self->Type) msgid "queue %1 %2" msgstr "表單 %1 %2" -#: lib/RT/Queue_Overlay.pm:63 +#: lib/RT/Queue_Overlay.pm:87 msgid "rejected" msgstr "å·²é§å›ž" -#: lib/RT/Queue_Overlay.pm:62 +#: lib/RT/Queue_Overlay.pm:86 msgid "resolved" msgstr "已處ç†" @@ -7848,29 +7825,33 @@ msgstr "已處ç†" msgid "rtname" msgstr "伺æœå™¨å稱" -#: lib/RT/Date.pm:307 +#: lib/RT/Date.pm:330 msgid "sec" msgstr "ç§’" -#: html/Search/Results.html:48 +#: lib/RT/System.pm:86 +msgid "show Configuration tab" +msgstr "" + +#: html/Search/Results.html:82 msgid "spreadsheet" msgstr "試算表" -#: lib/RT/Queue_Overlay.pm:61 +#: lib/RT/Queue_Overlay.pm:85 msgid "stalled" msgstr "延宕" -#: lib/RT/Group_Overlay.pm:204 +#: lib/RT/Group_Overlay.pm:230 #. ($self->Type) msgid "system %1" msgstr "系統 %1" -#: lib/RT/Group_Overlay.pm:215 +#: lib/RT/Group_Overlay.pm:241 #. ($self->Type) msgid "system group '%1'" msgstr "系統群組 '%1'" -#: html/Elements/Error:42 html/SelfService/Error.html:41 +#: html/Elements/Error:66 html/SelfService/Error.html:63 msgid "the calling component did not specify why" msgstr "呼å«å…ƒä»¶æœªæŒ‡æ˜ŽåŽŸå› " @@ -7878,7 +7859,7 @@ msgstr "呼å«å…ƒä»¶æœªæŒ‡æ˜ŽåŽŸå› " msgid "ticket #%1" msgstr "申請單 #%1" -#: lib/RT/Group_Overlay.pm:212 +#: lib/RT/Group_Overlay.pm:238 #. ($self->Instance, $self->Type) msgid "ticket #%1 %2" msgstr "申請單 #%1 %2" @@ -7895,20 +7876,16 @@ msgstr "到" msgid "true" msgstr "真" -#: lib/RT/Group_Overlay.pm:218 +#: lib/RT/Group_Overlay.pm:244 #. ($self->Id) msgid "undescribed group %1" msgstr "沒有æè¿°çš„群組 %1" -#: NOT FOUND IN SOURCE -msgid "undescripbed group %1" -msgstr "" - #: NOT FOUND IN SOURCE msgid "unresolved" msgstr "未處ç†" -#: lib/RT/Group_Overlay.pm:193 +#: lib/RT/Group_Overlay.pm:219 #. ($user->Object->Name) msgid "user %1" msgstr "使用者 %1" @@ -7917,7 +7894,7 @@ msgstr "使用者 %1" msgid "warning" msgstr "警告" -#: lib/RT/Date.pm:323 +#: lib/RT/Date.pm:346 msgid "weeks" msgstr "週" @@ -7925,11 +7902,7 @@ msgstr "週" msgid "with template %1" msgstr "範本:%1" -#: lib/RT/Date.pm:331 +#: lib/RT/Date.pm:354 msgid "years" msgstr "å¹´" -#: NOT FOUND IN SOURCE -msgid "ニックãƒãƒ¼ãƒ " -msgstr "" - diff --git a/rt/lib/RT/Interface/CLI.pm b/rt/lib/RT/Interface/CLI.pm index 417999473..8c9329508 100644 --- a/rt/lib/RT/Interface/CLI.pm +++ b/rt/lib/RT/Interface/CLI.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} use strict; use RT; @@ -55,7 +55,7 @@ BEGIN { 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.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker + $VERSION = do { my @r = (q$Revision: 1.1.1.3 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw(Exporter); diff --git a/rt/lib/RT/Interface/Email.pm b/rt/lib/RT/Interface/Email.pm index 04539a3a6..5db7c8aa7 100755 --- a/rt/lib/RT/Interface/Email.pm +++ b/rt/lib/RT/Interface/Email.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Interface::Email; use strict; @@ -56,7 +56,7 @@ BEGIN { 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.4 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker + $VERSION = do { my @r = (q$Revision: 1.1.1.5 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw(Exporter); @@ -64,15 +64,15 @@ BEGIN { # as well as any optionally exported functions @EXPORT_OK = qw( &CreateUser - &GetMessageContent - &CheckForLoops - &CheckForSuspiciousSender - &CheckForAutoGenerated - &MailError - &ParseCcAddressesFromHead - &ParseSenderAddressFromHead - &ParseErrorsToAddressFromHead - &ParseAddressFromHeader + &GetMessageContent + &CheckForLoops + &CheckForSuspiciousSender + &CheckForAutoGenerated + &MailError + &ParseCcAddressesFromHead + &ParseSenderAddressFromHead + &ParseErrorsToAddressFromHead + &ParseAddressFromHeader &Gateway); } @@ -139,8 +139,8 @@ sub CheckForSuspiciousSender { my ($From, $junk) = ParseSenderAddressFromHead($head); - if (($From =~ /^mailer-daemon/i) or - ($From =~ /^postmaster/i)){ + if (($From =~ /^mailer-daemon\@/i) or + ($From =~ /^postmaster\@/i)){ return (1); } @@ -159,13 +159,57 @@ sub CheckForAutoGenerated { if ($Precedence =~ /^(bulk|junk)/i) { return (1); } - else { - return (0); + + # First Class mailer uses this as a clue. + my $FCJunk = $head->get("X-FC-Machinegenerated") || ""; + if ($FCJunk =~ /^true/i) { + return (1); } + + return (0); } # }}} +# {{{ IsRTAddress + +=head2 IsRTAddress ADDRESS + +Takes a single parameter, an email address. +Returns true if that address matches the $RTAddressRegexp. +Returns false, otherwise. + +=cut + +sub IsRTAddress { + my $address = shift || ''; + + # Example: the following rule would tell RT not to Cc + # "tickets@noc.example.com" + if ( defined($RT::RTAddressRegexp) && + $address =~ /$RT::RTAddressRegexp/ ) { + return(1); + } else { + return (undef); + } +} + +# }}} + +# {{{ CullRTAddresses + +=head2 CullRTAddresses ARRAY + +Takes a single argument, an array of email addresses. +Returns the same array with any IsRTAddress()es weeded out. + +=cut + +sub CullRTAddresses { + return (grep { IsRTAddress($_) } @_); +} + +# }}} # {{{ sub MailError sub MailError { @@ -270,7 +314,8 @@ sub CreateUser { return $CurrentUser; } -# }}} +# }}} + # {{{ ParseCcAddressesFromHead =head2 ParseCcAddressesFromHead HASHREF @@ -296,10 +341,10 @@ sub ParseCcAddressesFromHead { 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)); + next if ($args{'CurrentUser'}->EmailAddress =~ /^\Q$Address\E$/i); + next if ($args{'QueueObj'}->CorrespondAddress =~ /^\Q$Address\E$/i); + next if ($args{'QueueObj'}->CommentAddress =~ /^\Q$Address\E$/i); + next if (RT::EmailParser->IsRTAddress($Address)); push (@Addresses, $Address); } @@ -365,6 +410,8 @@ Takes an address from $head->get('Line') and returns a tuple: user@host, friendl sub ParseAddressFromHeader{ my $Addr = shift; + # Perl 5.8.0 breaks when doing regex matches on utf8 + Encode::_utf8_off($Addr) if $] == 5.008; my @Addresses = Mail::Address->parse($Addr); my $AddrObj = $Addresses[0]; @@ -382,6 +429,26 @@ sub ParseAddressFromHeader{ } # }}} +# {{{ sub ParseTicketId + + +sub ParseTicketId { + my $Subject = shift; + my $id; + + my $test_name = $RT::EmailSubjectTagRegex || qr/\Q$RT::rtname\E/; + + if ( $Subject =~ s/\[$test_name\s+\#(\d+)\s*\]//i ) { + my $id = $1; + $RT::Logger->debug("Found a ticket ID. It's $id"); + return ($id); + } + else { + return (undef); + } +} + +# }}} =head2 Gateway ARGSREF @@ -409,11 +476,12 @@ Returns: status code is a numeric value. - for temporary failures, status code should be -75 + for temporary failures, the status code should be -75 - for permanent failures which are handled by RT, status code should be 0 + for permanent failures which are handled by RT, the status code + should be 0 - for succces, the status code should be 1 + for succces, the status code should be 1 @@ -425,14 +493,15 @@ sub Gateway { my %args = %$argsref; # Set some reasonable defaults - $args{'action'} = 'correspond' unless ( $args{'action'} ); - $args{'queue'} = '1' unless ( $args{'queue'} ); + $args{'action'} ||= 'correspond'; + $args{'queue'} ||= '1'; # Validate the action - unless ( $args{'action'} =~ /^(comment|correspond|action)$/ ) { + my ($status, @actions) = IsCorrectAction( $args{'action'} ); + unless ( $status ) { # Can't safely loc this. What object do we loc around? - $RT::Logger->crit("Mail gateway called with an invalid action paramenter '".$args{'action'}."' for queue '".$args{'queue'}."'"); + $RT::Logger->crit("Mail gateway called with an invalid action paramenter '".$actions[0]."' for queue '".$args{'queue'}."'"); return ( -75, "Invalid 'action' parameter", undef ); } @@ -455,21 +524,21 @@ sub Gateway { my $Message = $parser->Entity(); my $head = $Message->head; - my ( $CurrentUser, $AuthStat, $status, $error ); + my ( $CurrentUser, $AuthStat, $error ); # Initalize AuthStat so comparisons work correctly $AuthStat = -9999999; my $ErrorsTo = ParseErrorsToAddressFromHead($head); - my $MessageId = $head->get('Message-Id') + 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; - $args{'ticket'} ||= $parser->ParseTicketId($Subject); + $args{'ticket'} ||= ParseTicketId($Subject); my $SystemTicket; my $Right = 'CreateTicket'; @@ -519,22 +588,28 @@ sub Gateway { } } - ( $CurrentUser, $NewAuthStat ) = $Code->( - Message => $Message, - RawMessageRef => \$args{'message'}, - CurrentUser => $CurrentUser, - AuthLevel => $AuthStat, - Action => $args{'action'}, - Ticket => $SystemTicket, - Queue => $SystemQueueObj - ); + foreach my $action ( @actions ) { + + ( $CurrentUser, $NewAuthStat ) = $Code->( + Message => $Message, + RawMessageRef => \$args{'message'}, + CurrentUser => $CurrentUser, + AuthLevel => $AuthStat, + Action => $action, + Ticket => $SystemTicket, + Queue => $SystemQueueObj + ); + + # If a module returns a "-1" then we discard the ticket, so. + $AuthStat = -1 if $NewAuthStat == -1; - # If a module returns a "-1" then we discard the ticket, so. - $AuthStat = -1 if $NewAuthStat == -1; + # You get the highest level of authentication you were assigned. + $AuthStat = $NewAuthStat if $NewAuthStat > $AuthStat; + + last if $AuthStat == -1; + } - # You get the highest level of authentication you were assigned. - $AuthStat = $NewAuthStat if $NewAuthStat > $AuthStat; last if $AuthStat == -1; } @@ -641,11 +716,15 @@ EOT } 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' ); } # }}} @@ -653,7 +732,8 @@ EOT my $Ticket = RT::Ticket->new($CurrentUser); # {{{ If we don't have a ticket Id, we're creating a new ticket - if ( !$args{'ticket'} ) { + if ( (!$SystemTicket || !$SystemTicket->Id) && + grep /^(comment|correspond)$/, @actions ) { # {{{ Create a new ticket @@ -685,74 +765,115 @@ EOT $RT::Logger->error("Create failed: $id / $Transaction / $ErrStr "); return ( 0, "Ticket creation failed", $Ticket ); } + # strip comments&corresponds from the actions we don't need record twice + @actions = grep !/^(comment|correspond)$/, @actions; + $args{'ticket'} = $id; # }}} } - # }}} - - # 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 - ); + $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 ); + } - return ( 0, $message ); + # }}} + foreach my $action( @actions ) { + # If the action is comment, add a comment. + if ( $action =~ /^(comment|correspond)$/i ) { + my ( $status, $msg ); + if ( $action =~ /^correspond$/i ) { + ( $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 ); + } } - - my ( $status, $msg ); - if ( $args{'action'} =~ /^correspond$/ ) { - ( $status, $msg ) = $Ticket->Correspond( MIMEObj => $Message ); + elsif ($RT::UnsafeEmailCommands && $action =~ /^take$/i ) { + my ( $status, $msg ) = $Ticket->SetOwner( $CurrentUser->id ); + unless ($status) { + + #Warn the sender that we couldn't actually submit the comment. + MailError( + To => $ErrorsTo, + Subject => "Ticket not taken", + Explanation => $msg, + MIMEObj => $Message + ); + return ( 0, "Ticket not taken", $Ticket ); + } } - else { - ( $status, $msg ) = $Ticket->Comment( MIMEObj => $Message ); + elsif ( $RT::UnsafeEmailCommands && $action =~ /^resolve$/i ) { + my ( $status, $msg ) = $Ticket->SetStatus( 'resolved' ); + unless ($status) { + #Warn the sender that we couldn't actually submit the comment. + MailError( + To => $ErrorsTo, + Subject => "Ticket not resolved", + Explanation => $msg, + MIMEObj => $Message + ); + return ( 0, "Ticket not resolved", $Ticket ); + } } - unless ($status) { - - #Warn the sender that we couldn't actually submit the comment. + + else { + + #Return mail to the sender with an error MailError( To => $ErrorsTo, - Subject => "Message not recorded", - Explanation => $msg, - MIMEObj => $Message + 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 ( + -75, + "Configuration error: " + . $args{'action'} + . " not a recognized action", + $Ticket ); - return ( 0, "Message not recorded", $Ticket ); + } } - else { - - #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 ( - -75, - "Configuration error: " - . $args{'action'} - . " not a recognized action", - $Ticket - ); - - } - return ( 1, "Success", $Ticket ); } +sub IsCorrectAction +{ + my $action = shift; + my @actions = split /-/, $action; + foreach ( @actions ) { + return (0, $_) unless /^(?:comment|correspond|take|resolve)$/; + } + return (1, @actions); +} + eval "require RT::Interface::Email_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Email_Vendor.pm}); diff --git a/rt/lib/RT/Interface/Email/Auth/GnuPG.pm b/rt/lib/RT/Interface/Email/Auth/GnuPG.pm index 724b1b3fc..2dfada755 100755 --- a/rt/lib/RT/Interface/Email/Auth/GnuPG.pm +++ b/rt/lib/RT/Interface/Email/Auth/GnuPG.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} # package RT::Interface::Email::Auth::GnuPG; use Mail::GnuPG; diff --git a/rt/lib/RT/Interface/Email/Auth/MailFrom.pm b/rt/lib/RT/Interface/Email/Auth/MailFrom.pm index 0efadb1cd..ef315dd53 100644 --- a/rt/lib/RT/Interface/Email/Auth/MailFrom.pm +++ b/rt/lib/RT/Interface/Email/Auth/MailFrom.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Interface::Email::Auth::MailFrom; use RT::Interface::Email qw(ParseSenderAddressFromHead CreateUser); @@ -121,6 +121,36 @@ sub GetCurrentUser { return ( $args{'CurrentUser'}, 0 ); } + } + elsif ( $args{'Action'} =~ /^take$/i ) { + + # check to see whether "Everybody" or "Unprivileged users" can correspond on tickets + unless ( $everyone->PrincipalObj->HasRight(Object => $args{'Queue'}, + Right => 'OwnTicket' + ) + || $unpriv->PrincipalObj->HasRight( + Object => $args{'Queue'}, + Right => 'OwnTicket' + ) + ) { + return ( $args{'CurrentUser'}, 0 ); + } + + } + elsif ( $args{'Action'} =~ /^resolve$/i ) { + + # check to see whether "Everybody" or "Unprivileged users" can correspond on tickets + unless ( $everyone->PrincipalObj->HasRight(Object => $args{'Queue'}, + Right => 'ModifyTicket' + ) + || $unpriv->PrincipalObj->HasRight( + Object => $args{'Queue'}, + Right => 'ModifyTicket' + ) + ) { + return ( $args{'CurrentUser'}, 0 ); + } + } else { return ( $args{'CurrentUser'}, 0 ); diff --git a/rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm b/rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm index 8c9eae88c..c552d76e6 100644 --- a/rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm +++ b/rt/lib/RT/Interface/Email/Filter/SpamAssassin.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,22 +42,31 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::Interface::Email::Filter::SpamAssassin; use Mail::SpamAssassin; my $spamtest = Mail::SpamAssassin->new(); sub GetCurrentUser { - my $item = shift; - my $status = $spamtest->check ($item); - return (undef, 0) unless $status->is_spam(); + my %args = ( + Message => undef, + CurrentUser => undef, + AuthLevel => undef, + @_ + ); + my $status = $spamtest->check( $args{'Message'} ); + return ( $args{'CurrentUser'}, $args{'AuthLevel'} ) + unless $status->is_spam(); + eval { $status->rewrite_mail() }; - if ($status->get_hits > $status->get_required_hits()*1.5) { + if ( $status->get_hits > $status->get_required_hits() * 1.5 ) { + # Spammy indeed - return (undef, -1); + return ( $args{'CurrentUser'}, -1 ); } - return (undef, 0); + return ( $args{'CurrentUser'}, $args{'AuthLevel'} ); + } =head1 NAME diff --git a/rt/lib/RT/Interface/REST.pm b/rt/lib/RT/Interface/REST.pm index 8c8baa1e7..279ddf4b3 100644 --- a/rt/lib/RT/Interface/REST.pm +++ b/rt/lib/RT/Interface/REST.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} # lib/RT/Interface/REST.pm # @@ -54,7 +54,7 @@ BEGIN { use Exporter (); use vars qw($VERSION @ISA @EXPORT); - $VERSION = do { my @r = (q$Revision: 1.1.1.2 $ =~ /\d+/g); sprintf "%d."."%02d"x$#r, @r }; + $VERSION = do { my @r = (q$Revision: 1.1.1.3 $ =~ /\d+/g); sprintf "%d."."%02d"x$#r, @r }; @ISA = qw(Exporter); @EXPORT = qw(expand_list form_parse form_compose vpush vsplit); diff --git a/rt/lib/RT/Interface/Web.pm b/rt/lib/RT/Interface/Web.pm index 0151cc1f1..724d7e592 100644 --- a/rt/lib/RT/Interface/Web.pm +++ b/rt/lib/RT/Interface/Web.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} ## Portions Copyright 2000 Tobias Brox <tobix@fsck.com> ## This is a library of static subs to be used by the Mason web @@ -77,6 +77,7 @@ does a css-busting but minimalist escaping of whatever html you're passing in. sub EscapeUTF8 { my $ref = shift; + return unless defined $$ref; my $val = $$ref; use bytes; $val =~ s/&/&/g; @@ -94,6 +95,24 @@ sub EscapeUTF8 { # }}} +# {{{ EscapeURI + +=head2 EscapeURI SCALARREF + +Escapes URI component according to RFC2396 + +=cut + +use Encode qw(); +sub EscapeURI { + my $ref = shift; + $$ref = Encode::encode_utf8( $$ref ); + $$ref =~ s/([^a-zA-Z0-9_.!~*'()-])/uc sprintf("%%%02X", ord($1))/eg; + Encode::_utf8_on( $$ref ); +} + +# }}} + # {{{ WebCanonicalizeInfo =head2 WebCanonicalizeInfo(); @@ -292,17 +311,42 @@ sub CreateTicket { Starts => $starts->ISO, MIMEObj => $MIMEObj ); - foreach my $arg (%ARGS) { - if ($arg =~ /^CustomField-(\d+)(.*?)$/) { + foreach my $arg (keys %ARGS) { + my $cfid = $1; + next if ($arg =~ /-Magic$/); - $create_args{"CustomField-".$1} = $ARGS{"$arg"}; + #Object-RT::Ticket--CustomField-3-Values + if ($arg =~ /^Object-RT::Transaction--CustomField-/) { + $create_args{$arg} = $ARGS{$arg}; + } + elsif ($arg =~ /^Object-RT::Ticket--CustomField-(\d+)(.*?)$/) { + my $cfid = $1; + my $cf = RT::CustomField->new( $session{'CurrentUser'}); + $cf->Load($cfid); + + if ( $cf->Type eq 'Freeform' && ! $cf->SingleValue) { + $ARGS{$arg} =~ s/\r\n/\n/g; + $ARGS{$arg} = [split('\n', $ARGS{$arg})]; + } + + if ( $cf->Type =~ /text/i) { # Catch both Text and Wikitext + $ARGS{$arg} =~ s/\r//g; + } + + if ( $arg =~ /-Upload$/ ) { + $create_args{"CustomField-".$cfid} = _UploadedFile($arg); + } + else { + $create_args{"CustomField-".$cfid} = $ARGS{"$arg"}; + } } } - # turn new link lists into arrays, and pass in the proper arguments - my (@dependson, @dependedonby, - @parents, @children, - @refersto, @referredtoby); + + # XXX TODO This code should be about six lines. and badly needs refactoring. + + # {{{ turn new link lists into arrays, and pass in the proper arguments + my (@dependson, @dependedonby, @parents, @children, @refersto, @referredtoby); foreach my $luri ( split ( / /, $ARGS{"new-DependsOn"} ) ) { $luri =~ s/\s*$//; # Strip trailing whitespace @@ -336,7 +380,9 @@ sub CreateTicket { push @referredtoby, $luri; } $create_args{'ReferredToBy'} = \@referredtoby; - + # }}} + + my ( $id, $Trans, $ErrMsg ) = $Ticket->Create(%create_args); unless ( $id && $Trans ) { Abort($ErrMsg); @@ -398,9 +444,10 @@ sub ProcessUpdateMessage { ); #Make the update content have no 'weird' newlines in it - if ( $args{ARGSRef}->{'UpdateTimeWorked'} || - $args{ARGSRef}->{'UpdateContent'} || - $args{ARGSRef}->{'UpdateAttachments'}) { + if ( $args{ARGSRef}->{'UpdateTimeWorked'} + || $args{ARGSRef}->{'UpdateContent'} + || $args{ARGSRef}->{'UpdateAttachments'} ) + { if ( $args{ARGSRef}->{'UpdateSubject'} eq $args{'TicketObj'}->Subject() ) @@ -409,43 +456,76 @@ sub ProcessUpdateMessage { } my $Message = MakeMIMEEntity( - Subject => $args{ARGSRef}->{'UpdateSubject'}, - Body => $args{ARGSRef}->{'UpdateContent'}, + Subject => $args{ARGSRef}->{'UpdateSubject'}, + Body => $args{ARGSRef}->{'UpdateContent'}, ); - if ($args{ARGSRef}->{'UpdateAttachments'}) { - $Message->make_multipart; - $Message->add_part($_) foreach values %{$args{ARGSRef}->{'UpdateAttachments'}}; - } - - ## TODO: Implement public comments - if ( $args{ARGSRef}->{'UpdateType'} =~ /^(private|public)$/ ) { - my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Comment( - CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, - BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, - MIMEObj => $Message, - TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} - ); - push ( @{ $args{Actions} }, $Description ); - } - elsif ( $args{ARGSRef}->{'UpdateType'} eq 'response' ) { - my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Correspond( - CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, - BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, - MIMEObj => $Message, - TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} - ); - push ( @{ $args{Actions} }, $Description ); + $Message->head->add( 'Message-ID' => + "<rt-" + . $RT::VERSION . "-" + . $$ . "-" + . CORE::time() . "-" + . int(rand(2000)) . "." + . $args{'TicketObj'}->id . "-" + . "0" . "-" # Scrip + . "0" . "@" # Email sent + . $RT::Organization + . ">" ); + my $old_txn = RT::Transaction->new( $session{'CurrentUser'} ); + if ( $args{ARGSRef}->{'QuoteTransaction'} ) { + $old_txn->Load( $args{ARGSRef}->{'QuoteTransaction'} ); } else { - push ( @{ $args{'Actions'} }, - loc("Update type was neither correspondence nor comment."). - " ". - loc("Update not recorded.") - ); + $old_txn = $args{TicketObj}->Transactions->First(); } + + if ( $old_txn->Message && $old_txn->Message->First ) { + my @in_reply_to = split(/\s+/m, $old_txn->Message->First->GetHeader('In-Reply-To') || ''); + my @references = split(/\s+/m, $old_txn->Message->First->GetHeader('References') || '' ); + my @msgid = split(/\s+/m,$old_txn->Message->First->GetHeader('Message-ID') || ''); + my @rtmsgid = split(/\s+/m,$old_txn->Message->First->GetHeader('RT-Message-ID') || ''); + + $Message->head->replace( 'In-Reply-To', join (' ', @rtmsgid ? @rtmsgid : @msgid)); + $Message->head->replace( 'References', join(' ', @references, @msgid, @rtmsgid)); + } + + if ( $args{ARGSRef}->{'UpdateAttachments'} ) { + $Message->make_multipart; + $Message->add_part($_) + foreach values %{ $args{ARGSRef}->{'UpdateAttachments'} }; + } + + ## TODO: Implement public comments + if ( $args{ARGSRef}->{'UpdateType'} =~ /^(private|public)$/ ) { + my ( $Transaction, $Description, $Object ) = $args{TicketObj}->Comment( + CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, + BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, + MIMEObj => $Message, + TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} + ); + push( @{ $args{Actions} }, $Description ); + $Object->UpdateCustomFields( ARGSRef => $args{ARGSRef} ) if $Object; + } + elsif ( $args{ARGSRef}->{'UpdateType'} eq 'response' ) { + my ( $Transaction, $Description, $Object ) = + $args{TicketObj}->Correspond( + CcMessageTo => $args{ARGSRef}->{'UpdateCc'}, + BccMessageTo => $args{ARGSRef}->{'UpdateBcc'}, + MIMEObj => $Message, + TimeTaken => $args{ARGSRef}->{'UpdateTimeWorked'} + ); + push( @{ $args{Actions} }, $Description ); + $Object->UpdateCustomFields( ARGSRef => $args{ARGSRef} ) if $Object; + } + else { + push( + @{ $args{'Actions'} }, + loc("Update type was neither correspondence nor comment.") . " " + . loc("Update not recorded.") + ); } } +} # }}} @@ -789,19 +869,6 @@ sub ParseDateToISO { # }}} -# {{{ sub Config -# TODO: This might eventually read the cookies, user configuration -# information from the DB, queue configuration information from the -# DB, etc. - -sub Config { - my $args = shift; - my $key = shift; - return $args->{$key} || $RT::WebOptions{$key}; -} - -# }}} - # {{{ sub ProcessACLChanges sub ProcessACLChanges { @@ -859,7 +926,6 @@ sub ProcessACLChanges { $obj = $object_type->new($session{'CurrentUser'}); $obj->Load($object_id); } else { - die; push (@results, loc("System Error"). ': '. loc("Rights could not be revoked for [_1]", $object_type)); next; @@ -1006,7 +1072,10 @@ sub ProcessTicketBasics { } } - $ARGSRef->{'Status'} ||= $TicketObj->Status; + + # Status isn't a field that can be set to a null value. + # RT core complains if you try + delete $ARGSRef->{'Status'} unless ($ARGSRef->{'Status'}); my @results = UpdateRecordObject( AttributesRef => \@attribs, @@ -1036,117 +1105,158 @@ sub ProcessTicketBasics { # }}} -# {{{ Sub ProcessTicketCustomFieldUpdates - sub ProcessTicketCustomFieldUpdates { - my %args = ( - ARGSRef => undef, - @_ - ); + my %args = @_; + $args{'Object'} = delete $args{'TicketObj'}; + my $ARGSRef = { %{ $args{'ARGSRef'} } }; - my @results; + # Build up a list of objects that we want to work with + my %custom_fields_to_mod; + foreach my $arg ( keys %$ARGSRef ) { + if ( $arg =~ /^Ticket-(\d+-.*)/) { + $ARGSRef->{"Object-RT::Ticket-$1"} = delete $ARGSRef->{$arg}; + } + elsif ( $arg =~ /^CustomField-(\d+-.*)/) { + $ARGSRef->{"Object-RT::Ticket--$1"} = delete $ARGSRef->{$arg}; + } + } + + return ProcessObjectCustomFieldUpdates(%args, ARGSRef => $ARGSRef); +} +sub ProcessObjectCustomFieldUpdates { + my %args = @_; my $ARGSRef = $args{'ARGSRef'}; + my @results; - # Build up a list of tickets that we want to work with - my %tickets_to_mod; + # Build up a list of objects that we want to work with my %custom_fields_to_mod; - foreach my $arg ( keys %{$ARGSRef} ) { - if ( $arg =~ /^Ticket-(\d+)-CustomField-(\d+)-/ ) { - - # For each of those tickets, find out what custom fields we want to work with. - $custom_fields_to_mod{$1}{$2} = 1; + foreach my $arg ( keys %$ARGSRef ) { + if ( $arg =~ /^Object-([\w:]+)-(\d*)-CustomField-(\d+)-/ ) { + # For each of those objects, find out what custom fields we want to work with. + $custom_fields_to_mod{$1}{$2 || $args{'Object'}->Id}{$3} = 1; } } - # For each of those tickets - foreach my $tick ( keys %custom_fields_to_mod ) { - my $Ticket = $args{'TicketObj'}; - if (!$Ticket or $Ticket->id != $tick) { - $Ticket = RT::Ticket->new( $session{'CurrentUser'} ); - $Ticket->Load($tick); + # For each of those objects + foreach my $class ( keys %custom_fields_to_mod ) { + foreach my $id ( keys %{$custom_fields_to_mod{$class}} ) { + my $Object = $args{'Object'}; + if (!$Object or ref($Object) ne $class or $Object->id != $id) { + $Object = $class->new( $session{'CurrentUser'} ); + $Object->Load($id); } - # For each custom field - foreach my $cf ( keys %{ $custom_fields_to_mod{$tick} } ) { - + # For each custom field + foreach my $cf ( keys %{ $custom_fields_to_mod{$class}{$id} } ) { my $CustomFieldObj = RT::CustomField->new($session{'CurrentUser'}); $CustomFieldObj->LoadById($cf); - foreach my $arg ( keys %{$ARGSRef} ) { - # since http won't pass in a form element with a null value, we need - # to fake it - if ($arg =~ /^(.*?)-Values-Magic$/ ) { - # We don't care about the magic, if there's really a values element; - next if (exists $ARGSRef->{$1.'-Values'}) ; - - $arg = $1."-Values"; - $ARGSRef->{$1."-Values"} = undef; - - } - next unless ( $arg =~ /^Ticket-$tick-CustomField-$cf-/ ); - my @values = - ( ref( $ARGSRef->{$arg} ) eq 'ARRAY' ) - ? @{ $ARGSRef->{$arg} } - : split /\n/, $ARGSRef->{$arg} ; - - #for poor windows boxen that pass in "\r\n" - local $/ = "\r"; - chomp @values; - - if ( ( $arg =~ /-AddValue$/ ) || ( $arg =~ /-Value$/ ) ) { - foreach my $value (@values) { - next unless length($value); - my ( $val, $msg ) = $Ticket->AddCustomFieldValue( - Field => $cf, - Value => $value - ); - push ( @results, $msg ); - } - } - elsif ( $arg =~ /-DeleteValues$/ ) { - foreach my $value (@values) { - next unless length($value); - my ( $val, $msg ) = $Ticket->DeleteCustomFieldValue( + foreach my $arg ( keys %{$ARGSRef} ) { + # Only interested in args for the current CF: + next unless ( $arg =~ /^Object-$class-(?:$id)?-CustomField-$cf-/ ); + + # since http won't pass in a form element with a null value, we need + # to fake it + if ($arg =~ /^(.*?)-Values-Magic$/ ) { + # We don't care about the magic, if there's really a values element; + next if ($ARGSRef->{$1.'-Value'} || $ARGSRef->{$1.'-Values'}) ; + + # "Empty" values does not mean anything for Image and Binary fields + next if $CustomFieldObj->Type =~ /^(?:Image|Binary)$/; + + $arg = $1."-Values"; + $ARGSRef->{$1."-Values"} = undef; + + } + my @values = (); + if (ref( $ARGSRef->{$arg} ) eq 'ARRAY' ) { + @values = @{ $ARGSRef->{$arg} }; + } elsif ($CustomFieldObj->Type =~ /text/i) { # Both Text and Wikitext + @values = ($ARGSRef->{$arg}); + } else { + @values = split /\n/, $ARGSRef->{$arg}; + } + + if ( ($CustomFieldObj->Type eq 'Freeform' + && ! $CustomFieldObj->SingleValue) || + $CustomFieldObj->Type =~ /text/i) { + foreach my $val (@values) { + $val =~ s/\r//g; + } + } + + if ( ( $arg =~ /-AddValue$/ ) || ( $arg =~ /-Value$/ ) ) { + foreach my $value (@values) { + next unless length($value); + my ( $val, $msg ) = $Object->AddCustomFieldValue( + Field => $cf, + Value => $value + ); + push ( @results, $msg ); + } + } + elsif ( $arg =~ /-Upload$/ ) { + my $value_hash = _UploadedFile($arg) or next; + + my ( $val, $msg ) = $Object->AddCustomFieldValue( + %$value_hash, Field => $cf, - Value => $value - ); - push ( @results, $msg ); - } - } - elsif ( $arg =~ /-Values$/ and $CustomFieldObj->Type !~ /Entry/) { - my $cf_values = $Ticket->CustomFieldValues($cf); - - my %values_hash; - foreach my $value (@values) { - next unless length($value); - - # build up a hash of values that the new set has - $values_hash{$value} = 1; - - unless ( $cf_values->HasEntry($value) ) { - my ( $val, $msg ) = $Ticket->AddCustomFieldValue( - Field => $cf, - Value => $value - ); - push ( @results, $msg ); - } - - } - while ( my $cf_value = $cf_values->Next ) { - unless ( $values_hash{ $cf_value->Content } == 1 ) { - my ( $val, $msg ) = $Ticket->DeleteCustomFieldValue( - Field => $cf, - Value => $cf_value->Content - ); - push ( @results, $msg); - - } - - } - } - elsif ( $arg =~ /-Values$/ ) { - my $cf_values = $Ticket->CustomFieldValues($cf); + ); + push ( @results, $msg ); + } + elsif ( $arg =~ /-DeleteValues$/ ) { + foreach my $value (@values) { + next unless length($value); + my ( $val, $msg ) = $Object->DeleteCustomFieldValue( + Field => $cf, + Value => $value + ); + push ( @results, $msg ); + } + } + elsif ( $arg =~ /-DeleteValueIds$/ ) { + foreach my $value (@values) { + next unless length($value); + my ( $val, $msg ) = $Object->DeleteCustomFieldValue( + Field => $cf, + ValueId => $value, + ); + push ( @results, $msg ); + } + } + elsif ( $arg =~ /-Values$/ and !$CustomFieldObj->Repeated) { + my $cf_values = $Object->CustomFieldValues($cf); + + my %values_hash; + foreach my $value (@values) { + next unless length($value); + + # build up a hash of values that the new set has + $values_hash{$value} = 1; + + unless ( $cf_values->HasEntry($value) ) { + my ( $val, $msg ) = $Object->AddCustomFieldValue( + Field => $cf, + Value => $value + ); + push ( @results, $msg ); + } + + } + while ( my $cf_value = $cf_values->Next ) { + unless ( $values_hash{ $cf_value->Content } == 1 ) { + my ( $val, $msg ) = $Object->DeleteCustomFieldValue( + Field => $cf, + Value => $cf_value->Content + ); + push ( @results, $msg); + + } + } + } + elsif ( $arg =~ /-Values$/ ) { + my $cf_values = $Object->CustomFieldValues($cf); # keep everything up to the point of difference, delete the rest my $delete_flag; @@ -1162,24 +1272,23 @@ sub ProcessTicketCustomFieldUpdates { # now add/replace extra things, if any foreach my $value (@values) { - my ( $val, $msg ) = $Ticket->AddCustomFieldValue( + my ( $val, $msg ) = $Object->AddCustomFieldValue( Field => $cf, Value => $value ); push ( @results, $msg ); } } - else { - push ( @results, "User asked for an unknown update type for custom field " . $cf->Name . " for ticket " . $Ticket->id ); - } - } - } - return (@results); + else { + push ( @results, loc("User asked for an unknown update type for custom field [_1] for [_2] object #[_3]", $cf->Name, $class, $Object->id ) ); + } + } + } + return (@results); + } } } -# }}} - # {{{ sub ProcessTicketWatchers =head2 ProcessTicketWatchers ( TicketObj => $Ticket, ARGSRef => \%ARGS ); @@ -1333,6 +1442,7 @@ sub ProcessTicketLinks { my $Ticket = $args{'TicketObj'}; my $ARGSRef = $args{'ARGSRef'}; + my (@results) = ProcessRecordLinks(RecordObj => $Ticket, ARGSRef => $ARGSRef); @@ -1402,6 +1512,34 @@ sub ProcessRecordLinks { return (@results); } + +=head2 _UploadedFile ( $arg ); + +Takes a CGI parameter name; if a file is uploaded under that name, +return a hash reference suitable for AddCustomFieldValue's use: +C<( Value => $filename, LargeContent => $content, ContentType => $type )>. + +Returns C<undef> if no files were uploaded in the C<$arg> field. + +=cut + +sub _UploadedFile { + my $arg = shift; + my $cgi_object = $m->cgi_object; + my $fh = $cgi_object->upload($arg) or return undef; + my $upload_info = $cgi_object->uploadInfo($fh); + + my $filename = "$fh"; + $filename =~ s#^.*[\\/]##; + binmode($fh); + + return { + Value => $filename, + LargeContent => do { local $/; scalar <$fh> }, + ContentType => $upload_info->{'Content-Type'}, + }; +} + eval "require RT::Interface::Web_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Web_Vendor.pm}); eval "require RT::Interface::Web_Local"; diff --git a/rt/lib/RT/Interface/Web/Handler.pm b/rt/lib/RT/Interface/Web/Handler.pm index 7ee654e7c..ce9222586 100644 --- a/rt/lib/RT/Interface/Web/Handler.pm +++ b/rt/lib/RT/Interface/Web/Handler.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,9 +42,24 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + package RT::Interface::Web::Handler; +use CGI qw/-private_tempfiles/; +use MIME::Entity; +use Text::Wrapper; +use CGI::Cookie; +use Time::ParseDate; +use Time::HiRes; +use HTML::Entities; +use HTML::Scrubber; +use Text::Quoted; +use RT::Interface::Web::Handler; +use File::Path qw( rmtree ); +use File::Glob qw( bsd_glob ); +use File::Spec::Unix; + sub DefaultHandlerArgs { ( comp_root => [ [ local => $RT::MasonLocalComponentRoot ], @@ -53,7 +68,10 @@ sub DefaultHandlerArgs { ( default_escape_flags => 'h', data_dir => "$RT::MasonDataDir", allow_globals => [qw(%session)], - autoflush => 1 + # Turn off static source if we're in developer mode. + static_source => ($RT::DevelMode ? '0' : '1'), + use_object_files => ($RT::DevelMode ? '0' : '1'), + autoflush => 0 ) }; # {{{ sub new @@ -69,19 +87,17 @@ sub new { my $class = shift; $class->InitSessionDir; - if ($MasonX::Apache2Handler::VERSION) { - goto &NewApache2Handler; - } - elsif ($mod_perl::VERSION and $mod_perl::VERSION >= 1.9908) { - require Apache::RequestUtil; - no warnings 'redefine'; - my $sub = *Apache::request{CODE}; - *Apache::request = sub { - my $r; - eval { $r = $sub->('Apache'); }; - # warn $@ if $@; - return $r; - }; + if ( $mod_perl::VERSION && $mod_perl::VERSION >= 1.9908 ) { +# require Apache::RequestUtil; +# no warnings 'redefine'; +# my $sub = *Apache::request{CODE}; +# *Apache::request = sub { +# my $r; +# eval { $r = $sub->('Apache'); }; +# +# # warn $@ if $@; +# return $r; +# }; goto &NewApacheHandler; } elsif ($CGI::MOD_PERL) { @@ -96,14 +112,14 @@ sub InitSessionDir { # Activate the following if running httpd as root (the normal case). # Resets ownership of all files created by Mason at startup. # Note that mysql uses DB for sessions, so there's no need to do this. - unless ( $RT::DatabaseType =~ /(mysql|Pg)/ ) { + unless ( $RT::DatabaseType =~ /(?:mysql|Pg)/ ) { # Clean up our umask to protect session files umask(0077); if ($CGI::MOD_PERL) { chown( Apache->server->uid, Apache->server->gid, - [$RT::MasonSessionDir] ) + $RT::MasonSessionDir ) if Apache->server->can('uid'); } @@ -170,9 +186,36 @@ sub NewHandler { ); $handler->interp->set_escape( h => \&RT::Interface::Web::EscapeUTF8 ); + $handler->interp->set_escape( u => \&RT::Interface::Web::EscapeURI ); return($handler); } +=head2 CleanupRequest + +Rollback any uncommitted transaction. +Flush the ACL cache +Flush the searchbuilder query cache + +=cut + +sub CleanupRequest { + + if ( $RT::Handle->TransactionDepth ) { + $RT::Handle->ForceRollback; + $RT::Logger->crit( + "Transaction not committed. Usually indicates a software fault." + . "Data loss may have occurred" ); + } + + # Clean out the ACL cache. the performance impact should be marginal. + # Consistency is imprived, too. + RT::Principal->InvalidateACLCache(); + DBIx::SearchBuilder::Record::Cachable->FlushCache + if ( $RT::WebFlushDbCacheEveryRequest + and UNIVERSAL::can( + 'DBIx::SearchBuilder::Record::Cachable' => 'FlushCache' ) ); + +} # }}} 1; diff --git a/rt/lib/RT/Interface/Web/QueryBuilder.pm b/rt/lib/RT/Interface/Web/QueryBuilder.pm new file mode 100755 index 000000000..b7526b30a --- /dev/null +++ b/rt/lib/RT/Interface/Web/QueryBuilder.pm @@ -0,0 +1,56 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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 }}} +package RT::Interface::Web::QueryBuilder; + +use strict; +use warnings; + +eval "require RT::Interface::Web::QueryBuilder_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Web/QueryBuilder_Vendor.pm}); +eval "require RT::Interface::Web::QueryBuilder_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Web/QueryBuilder_Local.pm}); + +1; diff --git a/rt/lib/RT/Interface/Web/QueryBuilder/Tree.pm b/rt/lib/RT/Interface/Web/QueryBuilder/Tree.pm new file mode 100755 index 000000000..67b728339 --- /dev/null +++ b/rt/lib/RT/Interface/Web/QueryBuilder/Tree.pm @@ -0,0 +1,245 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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 }}} +package RT::Interface::Web::QueryBuilder::Tree; + +use strict; +use warnings; + +use base qw/Tree::Simple/; + +=head1 NAME + + RT::Interface::Web::QueryBuilder::Tree - subclass of Tree::Simple used in Query Builder + +=head1 DESCRIPTION + +This class provides support functionality for the Query Builder (Search/Build.html). +It is a subclass of L<Tree::Simple>. + +=head1 METHODS + +=head2 TraversePrePost PREFUNC POSTFUNC + +Traverses the tree depth-first. Before processing the node's children, +calls PREFUNC with the node as its argument; after processing all of the +children, calls POSTFUNC with the node as its argument. + +(Note that unlike Tree::Simple's C<traverse>, it actually calls its functions +on the root node passed to it.) + +=cut + +sub TraversePrePost { + my ($self, $prefunc, $postfunc) = @_; + + $prefunc->($self); + + foreach my $child ($self->getAllChildren()) { + $child->TraversePrePost($prefunc, $postfunc); + } + + $postfunc->($self); +} + +=head2 GetReferencedQueues + +Returns a hash reference with keys each queue name referenced in a clause in +the key (even if it's "Queue != 'Foo'"), and values all 1. + +=cut + +sub GetReferencedQueues { + my $self = shift; + + my $queues = {}; + + $self->traverse( + sub { + my $node = shift; + + return if $node->isRoot; + + my $clause = $node->getNodeValue(); + + if ( ref($clause) and $clause->{Key} eq 'Queue' ) { + $queues->{ $clause->{Value} } = 1; + }; + } + ); + + return $queues; +} + +=head2 GetQueryAndOptionList SELECTED_NODES + +Given an array reference of tree nodes that have been selected by the user, +traverses the tree and returns the equivalent SQL query and a list of hashes +representing the "clauses" select option list. Each has contains the keys +TEXT, INDEX, SELECTED, and DEPTH. TEXT is the displayed text of the option +(including parentheses, not including indentation); INDEX is the 0-based +index of the option in the list (also used as its CGI parameter); SELECTED +is either 'SELECTED' or '', depending on whether the node corresponding +to the select option was in the SELECTED_NODES list; and DEPTH is the +level of indentation for the option. + +=cut + +sub GetQueryAndOptionList { + my $self = shift; + my $selected_nodes = shift; + + my $optionlist = []; + + my $i = 0; + + $self->TraversePrePost( + sub { # This is called before recursing to the node's children. + my $node = shift; + + return if $node->isRoot or $node->getParent->isRoot; + + my $clause = $node->getNodeValue(); + my $str = ' '; + my $aggregator_context = $node->getParent()->getNodeValue(); + $str = $aggregator_context . " " if $node->getIndex() > 0; + + if ( ref($clause) ) { # ie, it's a leaf + $str .= + $clause->{Key} . " " . $clause->{Op} . " " . $clause->{Value}; + } + + unless ($node->getParent->getParent->isRoot) { + # used to check !ref( $parent->getNodeValue() ) ) + if ( $node->getIndex() == 0 ) { + $str = '( ' . $str; + } + } + + push @$optionlist, { + TEXT => $str, + INDEX => $i, + SELECTED => (grep { $_ == $node } @$selected_nodes) ? 'SELECTED' : '', + DEPTH => $node->getDepth() - 1, + }; + + $i++; + }, sub { + # This is called after recursing to the node's children. + my $node = shift; + + return if $node->isRoot or $node->getParent->isRoot or $node->getParent->getParent->isRoot; + + # Only do this for the rightmost child. + return unless $node->getIndex == $node->getParent->getChildCount - 1; + + $optionlist->[-1]{TEXT} .= ' )'; + } + ); + + return (join ' ', map { $_->{TEXT} } @$optionlist), $optionlist; +} + +=head2 PruneChildLessAggregators + +If tree manipulation has left it in a state where there are ANDs, ORs, +or parenthesizations with no children, get rid of them. + +=cut + +sub PruneChildlessAggregators { + my $self = shift; + + $self->TraversePrePost( + sub { + }, + sub { + my $node = shift; + + return if $node->isRoot or $node->getParent->isRoot; + + # We're only looking for aggregators (AND/OR) + return if ref $node->getNodeValue; + + return if $node->getChildCount != 0; + + # OK, this is a childless aggregator. Remove self. + + $node->getParent->removeChild($node); + + # Deal with circular refs + $node->DESTROY; + } + ); +} + +=head2 GetDisplayedNodes + +This function returns a list of the nodes of the tree in depth-first +order which correspond to options in the "clauses" multi-select box. +In fact, it's all of them but the root and its child. + +=cut + +sub GetDisplayedNodes { + my $self = shift; + my @lines; + + $self->traverse(sub { + my $node = shift; + + push @lines, $node unless $node->isRoot or $node->getParent->isRoot; + }); + + return @lines; +} + + +eval "require RT::Interface::Web::QueryBuilder::Tree_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Web/QueryBuilder/Tree_Vendor.pm}); +eval "require RT::Interface::Web::QueryBuilder::Tree_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/Interface/Web/QueryBuilder/Tree_Local.pm}); + +1; diff --git a/rt/lib/RT/Interface/Web/Standalone.pm b/rt/lib/RT/Interface/Web/Standalone.pm new file mode 100755 index 000000000..bc2423e6d --- /dev/null +++ b/rt/lib/RT/Interface/Web/Standalone.pm @@ -0,0 +1,37 @@ +package RT::Interface::Web::Standalone; + +use strict; +use base 'HTTP::Server::Simple::Mason'; +use RT::Interface::Web::Handler; +use RT::Interface::Web; + +sub handler_class { "RT::Interface::Web::Handler" } + +sub setup_escapes { + my $self = shift; + my $handler = shift; + + # Override HTTP::Server::Simple::Mason's version of this method to do + # nothing. (RT::Interface::Web::Handler does this already for us in + # NewHandler.) +} + +sub default_mason_config { + return @RT::MasonParameters; +} + +sub handle_request { + + my $self = shift; + my $cgi = shift; + + Module::Refresh->refresh if $RT::DevelMode; + + $self->SUPER::handle_request($cgi); + $RT::Logger->crit($@) if ($@); + + RT::Interface::Web::Handler->CleanupRequest(); + +} + +1; diff --git a/rt/lib/RT/Link.pm b/rt/lib/RT/Link.pm index d9595fbf7..cc68aa61d 100644 --- a/rt/lib/RT/Link.pm +++ b/rt/lib/RT/Link.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -260,25 +260,25 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Base => - {read => 1, write => 1, type => 'varchar(240)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 240, is_blob => 0, is_numeric => 0, type => 'varchar(240)', default => ''}, Target => - {read => 1, write => 1, type => 'varchar(240)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 240, is_blob => 0, is_numeric => 0, type => 'varchar(240)', default => ''}, Type => - {read => 1, write => 1, type => 'varchar(20)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 20, is_blob => 0, is_numeric => 0, type => 'varchar(20)', default => ''}, LocalTarget => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LocalBase => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; @@ -310,7 +310,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Link_Overlay.pm b/rt/lib/RT/Link_Overlay.pm index ef0347a06..28143cfeb 100644 --- a/rt/lib/RT/Link_Overlay.pm +++ b/rt/lib/RT/Link_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Link - an RT Link object @@ -76,6 +77,9 @@ ok (UNIVERSAL::isa($link, 'DBIx::SearchBuilder::Record')); =cut + +package RT::Link; + use strict; no warnings qw(redefine); @@ -103,23 +107,31 @@ sub Create { my $base = RT::URI->new( $self->CurrentUser ); $base->FromURI( $args{'Base'} ); - unless ( $base->Resolver and $base->Scheme ) { - $RT::Logger->warning( "$self couldn't resolve base:'" - . $args{'Base'} . " - " - . "' into a URI\n" ); + unless ( $base->Resolver && $base->Scheme ) { + my $msg = $self->loc("Couldn't resolve base '[_1]' into a URI.", + $args{'Base'}); + $RT::Logger->warning( "$self $msg\n" ); - return (undef); + if (wantarray) { + return(undef, $msg); + } else { + return (undef); + } } my $target = RT::URI->new( $self->CurrentUser ); $target->FromURI( $args{'Target'} ); unless ( $target->Resolver ) { - $RT::Logger->warning( "$self couldn't resolve target:'" - . $args{'Target'} . " - " - . "' into a URI\n" ); - - return (undef); + my $msg = $self->loc("Couldn't resolve target '[_1]' into a URI.", + $args{'Target'}); + $RT::Logger->warning( "$self $msg\n" ); + + if (wantarray) { + return(undef, $msg); + } else { + return (undef); + } } my $base_id = 0; diff --git a/rt/lib/RT/Links.pm b/rt/lib/RT/Links.pm index 07dcae718..3626e2292 100644 --- a/rt/lib/RT/Links.pm +++ b/rt/lib/RT/Links.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Links_Overlay.pm b/rt/lib/RT/Links_Overlay.pm index 156193fab..203b60a9e 100644 --- a/rt/lib/RT/Links_Overlay.pm +++ b/rt/lib/RT/Links_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Links - A collection of Link objects @@ -66,6 +67,9 @@ ok (require RT::Links); =cut + +package RT::Links; + use strict; no warnings qw(redefine); use RT::URI; diff --git a/rt/lib/RT/ObjectCustomField.pm b/rt/lib/RT/ObjectCustomField.pm new file mode 100644 index 000000000..89c59c67d --- /dev/null +++ b/rt/lib/RT/ObjectCustomField.pm @@ -0,0 +1,293 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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::ObjectCustomField + + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=head1 METHODS + +=cut + +package RT::ObjectCustomField; +use RT::Record; +use RT::CustomField; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('ObjectCustomFields'); + $self->SUPER::_Init(@_); +} + + + + + +=head2 Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + int(11) 'CustomField'. + int(11) 'ObjectId'. + int(11) 'SortOrder'. + +=cut + + + + +sub Create { + my $self = shift; + my %args = ( + CustomField => '0', + ObjectId => '0', + SortOrder => '0', + + @_); + $self->SUPER::Create( + CustomField => $args{'CustomField'}, + ObjectId => $args{'ObjectId'}, + SortOrder => $args{'SortOrder'}, +); + +} + + + +=head2 id + +Returns the current value of id. +(In the database, id is stored as int(11).) + + +=cut + + +=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 ObjectId + +Returns the current value of ObjectId. +(In the database, ObjectId is stored as int(11).) + + + +=head2 SetObjectId VALUE + + +Set ObjectId 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).) + + +=cut + + +=head2 SortOrder + +Returns the current value of SortOrder. +(In the database, SortOrder is stored as int(11).) + + + +=head2 SetSortOrder VALUE + + +Set SortOrder to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, SortOrder will be stored as a int(11).) + + +=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, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + CustomField => + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + ObjectId => + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + SortOrder => + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 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'}, + Created => + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, + LastUpdatedBy => + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 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 => ''}, + + } +}; + + + eval "require RT::ObjectCustomField_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomField_Overlay.pm}) { + die $@; + }; + + eval "require RT::ObjectCustomField_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomField_Vendor.pm}) { + die $@; + }; + + eval "require RT::ObjectCustomField_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomField_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. + +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::ObjectCustomField_Overlay, RT::ObjectCustomField_Vendor, RT::ObjectCustomField_Local + +=cut + + +1; diff --git a/rt/lib/RT/ObjectCustomFieldValue.pm b/rt/lib/RT/ObjectCustomFieldValue.pm new file mode 100644 index 000000000..5b80906bb --- /dev/null +++ b/rt/lib/RT/ObjectCustomFieldValue.pm @@ -0,0 +1,431 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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::ObjectCustomFieldValue + + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=head1 METHODS + +=cut + +package RT::ObjectCustomFieldValue; +use RT::Record; +use RT::CustomField; + + +use vars qw( @ISA ); +@ISA= qw( RT::Record ); + +sub _Init { + my $self = shift; + + $self->Table('ObjectCustomFieldValues'); + $self->SUPER::_Init(@_); +} + + + + + +=head2 Create PARAMHASH + +Create takes a hash of values and creates a row in the database: + + int(11) 'CustomField'. + varchar(255) 'ObjectType'. + int(11) 'ObjectId'. + int(11) 'SortOrder'. + varchar(255) 'Content'. + longtext 'LargeContent'. + varchar(80) 'ContentType'. + varchar(80) 'ContentEncoding'. + smallint(6) 'Disabled'. + +=cut + + + + +sub Create { + my $self = shift; + my %args = ( + CustomField => '0', + ObjectType => '', + ObjectId => '0', + SortOrder => '0', + Content => '', + LargeContent => '', + ContentType => '', + ContentEncoding => '', + Disabled => '0', + + @_); + $self->SUPER::Create( + CustomField => $args{'CustomField'}, + ObjectType => $args{'ObjectType'}, + ObjectId => $args{'ObjectId'}, + SortOrder => $args{'SortOrder'}, + Content => $args{'Content'}, + LargeContent => $args{'LargeContent'}, + ContentType => $args{'ContentType'}, + ContentEncoding => $args{'ContentEncoding'}, + Disabled => $args{'Disabled'}, +); + +} + + + +=head2 id + +Returns the current value of id. +(In the database, id is stored as int(11).) + + +=cut + + +=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 ObjectType + +Returns the current value of ObjectType. +(In the database, ObjectType is stored as varchar(255).) + + + +=head2 SetObjectType VALUE + + +Set ObjectType to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ObjectType will be stored as a varchar(255).) + + +=cut + + +=head2 ObjectId + +Returns the current value of ObjectId. +(In the database, ObjectId is stored as int(11).) + + + +=head2 SetObjectId VALUE + + +Set ObjectId 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).) + + +=cut + + +=head2 SortOrder + +Returns the current value of SortOrder. +(In the database, SortOrder is stored as int(11).) + + + +=head2 SetSortOrder VALUE + + +Set SortOrder to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, SortOrder will be stored as a int(11).) + + +=cut + + +=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 LargeContent + +Returns the current value of LargeContent. +(In the database, LargeContent is stored as longtext.) + + + +=head2 SetLargeContent VALUE + + +Set LargeContent to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, LargeContent will be stored as a longtext.) + + +=cut + + +=head2 ContentType + +Returns the current value of ContentType. +(In the database, ContentType is stored as varchar(80).) + + + +=head2 SetContentType VALUE + + +Set ContentType to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ContentType will be stored as a varchar(80).) + + +=cut + + +=head2 ContentEncoding + +Returns the current value of ContentEncoding. +(In the database, ContentEncoding is stored as varchar(80).) + + + +=head2 SetContentEncoding VALUE + + +Set ContentEncoding to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, ContentEncoding will be stored as a varchar(80).) + + +=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 + + +=head2 Disabled + +Returns the current value of Disabled. +(In the database, Disabled is stored as smallint(6).) + + + +=head2 SetDisabled VALUE + + +Set Disabled to VALUE. +Returns (1, 'Status message') on success and (0, 'Error Message') on failure. +(In the database, Disabled will be stored as a smallint(6).) + + +=cut + + + +sub _CoreAccessible { + { + + id => + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, + CustomField => + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + ObjectType => + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + ObjectId => + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + SortOrder => + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, + Content => + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, + LargeContent => + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'longtext', default => ''}, + ContentType => + {read => 1, write => 1, sql_type => 12, length => 80, is_blob => 0, is_numeric => 0, type => 'varchar(80)', default => ''}, + ContentEncoding => + {read => 1, write => 1, sql_type => 12, length => 80, is_blob => 0, is_numeric => 0, type => 'varchar(80)', default => ''}, + Creator => + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 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 => ''}, + LastUpdatedBy => + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 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 => ''}, + Disabled => + {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, + + } +}; + + + eval "require RT::ObjectCustomFieldValue_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomFieldValue_Overlay.pm}) { + die $@; + }; + + eval "require RT::ObjectCustomFieldValue_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomFieldValue_Vendor.pm}) { + die $@; + }; + + eval "require RT::ObjectCustomFieldValue_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomFieldValue_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. + +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::ObjectCustomFieldValue_Overlay, RT::ObjectCustomFieldValue_Vendor, RT::ObjectCustomFieldValue_Local + +=cut + + +1; diff --git a/rt/lib/RT/ObjectCustomFieldValue_Overlay.pm b/rt/lib/RT/ObjectCustomFieldValue_Overlay.pm new file mode 100644 index 000000000..9b753e846 --- /dev/null +++ b/rt/lib/RT/ObjectCustomFieldValue_Overlay.pm @@ -0,0 +1,174 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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 }}} +package RT::ObjectCustomFieldValue; + +use strict; +no warnings qw(redefine); + + +sub Create { + my $self = shift; + my %args = ( + CustomField => '0', + ObjectType => '', + ObjectId => '0', + Disabled => '0', + Content => '', + LargeContent => '', + ContentType => '', + ContentEncoding => '', + + @_); + + + if( $args{'Content'} && length($args{'Content'}) > 255 && !$args{'LargeContent'} ) { + + $args{'LargeContent'} = $args{'Content'}; + $args{'Content'} = ''; + $args{'ContentType'} = 'text/plain'; + } + + ( $args{'ContentEncoding'}, $args{'LargeContent'} ) = + $self->_EncodeLOB( $args{'LargeContent'}, $args{'ContentType'} ) + if ( $args{'LargeContent'} ); + + $self->SUPER::Create( + CustomField => $args{'CustomField'}, + ObjectType => $args{'ObjectType'}, + ObjectId => $args{'ObjectId'}, + Disabled => $args{'Disabled'}, + Content => $args{'Content'}, + LargeContent => $args{'LargeContent'}, + ContentType => $args{'ContentType'}, + ContentEncoding => $args{'ContentEncoding'}, +); + + + +} + + +sub LargeContent { + my $self = shift; + $self->_DecodeLOB( $self->ContentType, $self->ContentEncoding, + $self->_Value( 'LargeContent', decode_utf8 => 0 ) ); + +} + + + + +=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'}, + ObjectType => 'RT::Ticket', + ObjectId => $args{'Ticket'}, + Disabled => 0 + ); + + +} + +sub LoadByObjectContentAndCustomField { + my $self = shift; + my %args = ( Object => undef, + CustomField => undef, + Content => undef, + @_ + ); + + my $obj = $args{'Object'} or return; + + $self->LoadByCols( Content => $args{'Content'}, + CustomField => $args{'CustomField'}, + ObjectType => ref($obj), + ObjectId => $obj->Id, + Disabled => 0 + ); + +} + + +=head2 Content + +Return this custom field's content. If there's no "regular" +content, try "LargeContent" + +=cut + + +sub Content { + my $self = shift; + my $content = $self->SUPER::Content; + if (!$content && $self->ContentType eq 'text/plain') { + return $self->LargeContent(); + } else { + return $content; + } +} + + +sub Delete { + my $self = shift; + $self->SetDisabled(1); +} + +1; diff --git a/rt/lib/RT/ObjectCustomFieldValues.pm b/rt/lib/RT/ObjectCustomFieldValues.pm new file mode 100644 index 000000000..296a92557 --- /dev/null +++ b/rt/lib/RT/ObjectCustomFieldValues.pm @@ -0,0 +1,148 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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::ObjectCustomFieldValues -- Class Description + +=head1 SYNOPSIS + + use RT::ObjectCustomFieldValues + +=head1 DESCRIPTION + + +=head1 METHODS + +=cut + +package RT::ObjectCustomFieldValues; + +use RT::SearchBuilder; +use RT::ObjectCustomFieldValue; + +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + + +sub _Init { + my $self = shift; + $self->{'table'} = 'ObjectCustomFieldValues'; + $self->{'primary_key'} = 'id'; + + + + # By default, order by SortOrder + $self->OrderByCols( + { ALIAS => 'main', + FIELD => 'SortOrder', + ORDER => 'ASC' }, + { ALIAS => 'main', + FIELD => 'id', + ORDER => 'ASC' }, + ); + + return ( $self->SUPER::_Init(@_) ); +} + + +=head2 NewItem + +Returns an empty new RT::ObjectCustomFieldValue item + +=cut + +sub NewItem { + my $self = shift; + return(RT::ObjectCustomFieldValue->new($self->CurrentUser)); +} + + eval "require RT::ObjectCustomFieldValues_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomFieldValues_Overlay.pm}) { + die $@; + }; + + eval "require RT::ObjectCustomFieldValues_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomFieldValues_Vendor.pm}) { + die $@; + }; + + eval "require RT::ObjectCustomFieldValues_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomFieldValues_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. + +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::ObjectCustomFieldValues_Overlay, RT::ObjectCustomFieldValues_Vendor, RT::ObjectCustomFieldValues_Local + +=cut + + +1; diff --git a/rt/lib/RT/ObjectCustomFieldValues_Overlay.pm b/rt/lib/RT/ObjectCustomFieldValues_Overlay.pm new file mode 100644 index 000000000..315c16f30 --- /dev/null +++ b/rt/lib/RT/ObjectCustomFieldValues_Overlay.pm @@ -0,0 +1,153 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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 }}} +package RT::ObjectCustomFieldValues; + +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; + + + $RT::Logger->warning(ref($self) . " -> LimitToTicket deprecated in favor of LimitToObject"); + + $self->Limit( FIELD => 'ObjectType', + VALUE => 'RT::Ticket', + OPERATOR => '='); + return ($self->Limit( FIELD => 'ObjectId', + VALUE => $ticket, + OPERATOR => '=')); + +} + +# }}} + + +sub LimitToObject { + my $self = shift; + my $object = shift; + $self->Limit( FIELD => 'ObjectType', + VALUE => ref($object), + OPERATOR => '='); + return ($self->Limit( FIELD => 'ObjectId', + VALUE => $object->Id, + 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; + +} + +sub _DoSearch { + my $self = shift; + + #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. + unless($self->{'find_expired_rows'}) { + $self->LimitToEnabled(); + } + + return($self->SUPER::_DoSearch(@_)); + +} + +sub _DoCount { + my $self = shift; + + #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. + unless($self->{'find_expired_rows'}) { + $self->LimitToEnabled(); + } + + return($self->SUPER::_DoCount(@_)); + +} + +1; + diff --git a/rt/lib/RT/ObjectCustomField_Overlay.pm b/rt/lib/RT/ObjectCustomField_Overlay.pm new file mode 100644 index 000000000..e1dc7e21b --- /dev/null +++ b/rt/lib/RT/ObjectCustomField_Overlay.pm @@ -0,0 +1,101 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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 }}} +package RT::ObjectCustomField; + +use strict; +no warnings qw(redefine); + +sub Create { + my $self = shift; + my %args = ( + CustomField => '0', + ObjectId => '0', + SortOrder => undef, + @_); + + if (!defined $args{SortOrder}) { + my $CF = $self->CustomFieldObj($args{'CustomField'}); + my $ObjectCFs = RT::ObjectCustomFields->new($self->CurrentUser); + $ObjectCFs->LimitToObjectId($args{'ObjectId'}); + $ObjectCFs->LimitToLookupType($CF->LookupType); + + $args{SortOrder} = $ObjectCFs->Count + 1; + } + + $self->SUPER::Create( + CustomField => $args{'CustomField'}, + ObjectId => $args{'ObjectId'}, + SortOrder => $args{'SortOrder'}, + ); +} + +sub Delete { + my $self = shift; + + my $ObjectCFs = RT::ObjectCustomFields->new($self->CurrentUser); + $ObjectCFs->LimitToObjectId($self->ObjectId); + $ObjectCFs->LimitToLookupType($self->CustomFieldObj->LookupType); + + # Move everything below us up + my $sort_order = $self->SortOrder; + while (my $OCF = $ObjectCFs->Next) { + my $this_order = $OCF->SortOrder; + next if $this_order <= $sort_order; + $OCF->SetSortOrder($this_order - 1); + } + + $self->SUPER::Delete; +} + +sub CustomFieldObj { + my $self = shift; + my $id = shift || $self->CustomField; + my $CF = RT::CustomField->new($self->CurrentUser); + $CF->Load($id) or die "Cannot load CustomField $id"; + return $CF; +} + +1; diff --git a/rt/lib/RT/ObjectCustomFields.pm b/rt/lib/RT/ObjectCustomFields.pm new file mode 100644 index 000000000..fcbf332fd --- /dev/null +++ b/rt/lib/RT/ObjectCustomFields.pm @@ -0,0 +1,148 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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::ObjectCustomFields -- Class Description + +=head1 SYNOPSIS + + use RT::ObjectCustomFields + +=head1 DESCRIPTION + + +=head1 METHODS + +=cut + +package RT::ObjectCustomFields; + +use RT::SearchBuilder; +use RT::ObjectCustomField; + +use vars qw( @ISA ); +@ISA= qw(RT::SearchBuilder); + + +sub _Init { + my $self = shift; + $self->{'table'} = 'ObjectCustomFields'; + $self->{'primary_key'} = 'id'; + + + + # By default, order by SortOrder + $self->OrderByCols( + { ALIAS => 'main', + FIELD => 'SortOrder', + ORDER => 'ASC' }, + { ALIAS => 'main', + FIELD => 'id', + ORDER => 'ASC' }, + ); + + return ( $self->SUPER::_Init(@_) ); +} + + +=head2 NewItem + +Returns an empty new RT::ObjectCustomField item + +=cut + +sub NewItem { + my $self = shift; + return(RT::ObjectCustomField->new($self->CurrentUser)); +} + + eval "require RT::ObjectCustomFields_Overlay"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomFields_Overlay.pm}) { + die $@; + }; + + eval "require RT::ObjectCustomFields_Vendor"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomFields_Vendor.pm}) { + die $@; + }; + + eval "require RT::ObjectCustomFields_Local"; + if ($@ && $@ !~ qr{^Can't locate RT/ObjectCustomFields_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. + +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::ObjectCustomFields_Overlay, RT::ObjectCustomFields_Vendor, RT::ObjectCustomFields_Local + +=cut + + +1; diff --git a/rt/lib/RT/ObjectCustomFields_Overlay.pm b/rt/lib/RT/ObjectCustomFields_Overlay.pm new file mode 100644 index 000000000..a496c4bbd --- /dev/null +++ b/rt/lib/RT/ObjectCustomFields_Overlay.pm @@ -0,0 +1,113 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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 }}} +package RT::ObjectCustomFields; + +use strict; +no warnings qw(redefine); + +sub LimitToCustomField { + my $self = shift; + my $id = shift; + $self->Limit( FIELD => 'CustomField', VALUE => $id ); +} + +sub LimitToObjectId { + my $self = shift; + my $id = shift || 0; + $self->Limit( FIELD => 'ObjectId', VALUE => $id ); +} + +sub LimitToLookupType { + my $self = shift; + my $lookup = shift; + unless ($self->{'_cfs_alias'}) { + $self->{'_cfs_alias'} = $self->NewAlias('CustomFields'); + } + $self->Join( ALIAS1 => 'main', + FIELD1 => 'CustomField', + ALIAS2 => $self->{'_cfs_alias'}, + FIELD2 => 'id' ); + $self->Limit( ALIAS => $self->{'_cfs_alias'}, + FIELD => 'LookupType', + OPERATOR => '=', + VALUE => $lookup ); +} + +sub HasEntryForCustomField { + my $self = shift; + my $id = shift; + + my @items = grep {$_->CustomField == $id } @{$self->ItemsArrayRef}; + + if ($#items > 1) { + die "$self HasEntry had a list with more than one of $id in it. this can never happen"; + } + if ($#items == -1 ) { + return undef; + } + else { + return ($items[0]); + } +} + +sub CustomFields { + my $self = shift; + my %seen; + map { $_->CustomFieldObj } @{$self->ItemsArrayRef}; +} + +sub _DoSearch { + my $self = shift; + if ($self->{'_cfs_alias'}) { + $self->Limit( ALIAS => $self->{'_cfs_alias'}, + FIELD => 'Disabled', + OPERATOR => '!=', + VALUE => 1); + } + $self->SUPER::_DoSearch() +} + +1; diff --git a/rt/lib/RT/Principal.pm b/rt/lib/RT/Principal.pm index 3d8bf2bf2..da0c66992 100644 --- a/rt/lib/RT/Principal.pm +++ b/rt/lib/RT/Principal.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -182,13 +182,13 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, PrincipalType => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, ObjectId => - {read => 1, write => 1, type => 'int(11)', default => ''}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Disabled => - {read => 1, write => 1, type => 'smallint(6)', default => '0'}, + {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, } }; @@ -220,7 +220,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +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 3e2edaac6..4783c5ca6 100644 --- a/rt/lib/RT/Principal_Overlay.pm +++ b/rt/lib/RT/Principal_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,15 +42,27 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} +# + +package RT::Principal; + use strict; +use warnings; no warnings qw(redefine); -use vars qw(%_ACL_KEY_CACHE); + +use Cache::Simple::TimedExpiry; + + use RT::Group; use RT::User; +# Set up the ACL cache on startup +our $_ACL_CACHE; +InvalidateACLCache(); + # {{{ IsGroup =head2 IsGroup @@ -131,6 +143,11 @@ sub Object { A helper function which calls RT::ACE->Create + + + Returns a tuple of (STATUS, MESSAGE); If the call succeeded, STATUS is true. Otherwise it's + false. + =cut sub GrantRight { @@ -140,11 +157,6 @@ sub GrantRight { @_); - #if we haven't specified any sort of right, we're talking about a global right - if (!defined $args{'Object'} && !defined $args{'ObjectId'} && !defined $args{'ObjectType'}) { - $args{'Object'} = $RT::System; - } - unless ($args{'Right'}) { return(0, $self->loc("Invalid Right")); } @@ -172,6 +184,11 @@ sub GrantRight { Delete a right that a user has + + Returns a tuple of (STATUS, MESSAGE); If the call succeeded, STATUS is true. Otherwise it's + false. + + =cut sub RevokeRight { @@ -206,7 +223,40 @@ sub RevokeRight { # }}} +# {{{ sub _CleanupInvalidDelegations + +=head2 sub _CleanupInvalidDelegations { InsideTransaction => undef } + +Revokes all ACE entries delegated by this principal which are +inconsistent with this principal's current delegation rights. Does +not perform permission checks, but takes no action and returns success +if this principal still retains DelegateRights. Should only ever be +called from inside the RT library. + +If this principal is a group, recursively calls this method on each +cached user member of itself. + +If called from inside a transaction, specify a true value for the +InsideTransaction parameter. +Returns a true value if the deletion succeeded; returns a false value +and logs an internal error if the deletion fails (should not happen). + +=cut + +# This is currently just a stub for the methods of the same name in +# RT::User and RT::Group. + +sub _CleanupInvalidDelegations { + my $self = shift; + unless ( $self->Id ) { + $RT::Logger->warning("Principal not loaded."); + return (undef); + } + return ($self->Object->_CleanupInvalidDelegations(@_)); +} + +# }}} # {{{ sub HasRight @@ -241,28 +291,31 @@ Returns undef if no ACE was found. sub HasRight { my $self = shift; - my %args = ( Right => undef, - Object => undef, - EquivObjects => undef, - @_ ); + my %args = ( + Right => undef, + Object => undef, + EquivObjects => undef, + @_ + ); if ( $self->Disabled ) { - $RT::Logger->err( "Disabled User: " . $self->id . " failed access check for " . $args{'Right'} ); + $RT::Logger->err( "Disabled User: " + . $self->id + . " failed access check for " + . $args{'Right'} ); return (undef); } if ( !defined $args{'Right'} ) { - require Carp; - $RT::Logger->debug( Carp::cluck("HasRight called without a right") ); + $RT::Logger->crit("HasRight called without a right"); return (undef); } - if ( defined( $args{'Object'} )) { - return (undef) unless (UNIVERSAL::can( $args{'Object'}, 'id' ) ); - push(@{$args{'EquivObjects'}}, $args{Object}); - } - elsif ( $args{'ObjectId'} && $args{'ObjectType'} ) { - $RT::Logger->crit(Carp::cluck("API not supprted")); + if ( defined( $args{'Object'} ) + && UNIVERSAL::can( $args{'Object'}, 'id' ) + && $args{'Object'}->id ) + { + push( @{ $args{'EquivObjects'} }, $args{Object} ); } else { $RT::Logger->crit("$self HasRight called with no valid object"); @@ -270,88 +323,50 @@ sub HasRight { } # If this object is a ticket, we care about ticket roles and queue roles - if ( (ref($args{'Object'}) eq 'RT::Ticket') && $args{'Object'}->Id) { - # this is a little bit hacky, but basically, now that we've done the ticket roles magic, we load the queue object - # and ask all the rest of our questions about the queue. - push (@{$args{'EquivObjects'}}, $args{'Object'}->QueueObj); + if ( ( ref( $args{'Object'} ) eq 'RT::Ticket' ) && $args{'Object'}->Id ) { - } +# this is a little bit hacky, but basically, now that we've done the ticket roles magic, we load the queue object +# and ask all the rest of our questions about the queue. + push( @{ $args{'EquivObjects'} }, $args{'Object'}->QueueObj ); + } # {{{ If we've cached a win or loss for this lookup say so # {{{ Construct a hashkey to cache decisions in my $hashkey = do { - no warnings 'uninitialized'; - - # We don't worry about the hash ordering, as this is only - # temporarily used; also if the key changes it would be - # invalidated anyway. - join ( - ";:;", $self->Id, map { - $_, # the key of each arguments - ($_ eq 'EquivObjects') # for object arrayref... - ? map(_ReferenceId($_), @{$args{$_}}) # calculate each - : _ReferenceId( $args{$_} ) # otherwise just the value - } keys %args + no warnings 'uninitialized'; + + # We don't worry about the hash ordering, as this is only + # temporarily used; also if the key changes it would be + # invalidated anyway. + join( + ";:;", + $self->Id, + map { + $_, # the key of each arguments + ( $_ eq 'EquivObjects' ) # for object arrayref... + ? map( _ReferenceId($_), @{ $args{$_} } ) # calculate each + : _ReferenceId( $args{$_} ) # otherwise just the value + } keys %args ); }; - # }}} - #Anything older than 60 seconds needs to be rechecked - my $cache_timeout = ( time - 60 ); - - # {{{ if we've cached a positive result for this query, return 1 - if ( ( defined $self->_ACLCache->{"$hashkey"} ) - && ( $self->_ACLCache->{"$hashkey"}{'val'} == 1 ) - && ( defined $self->_ACLCache->{"$hashkey"}{'set'} ) - && ( $self->_ACLCache->{"$hashkey"}{'set'} > $cache_timeout ) ) { - - #$RT::Logger->debug("Cached ACL win for ". $args{'Right'}.$args{'Scope'}. $args{'AppliesTo'}."\n"); - return ( 1); - } # }}} - # {{{ if we've cached a negative result for this query return undef - elsif ( ( defined $self->_ACLCache->{"$hashkey"} ) - && ( $self->_ACLCache->{"$hashkey"}{'val'} == -1 ) - && ( defined $self->_ACLCache->{"$hashkey"}{'set'} ) - && ( $self->_ACLCache->{"$hashkey"}{'set'} > $cache_timeout ) ) { + # {{{ if we've cached a positive result for this query, return 1 - #$RT::Logger->debug("Cached ACL loss decision for ". $args{'Right'}.$args{'Scope'}. $args{'AppliesTo'}."\n"); + my $cached_answer = $_ACL_CACHE->fetch($hashkey); - return (undef); + # Returns undef on cache miss + if ( defined $cached_answer ) { + if ( $cached_answer == 1 ) { + return (1); + } + elsif ( $cached_answer == -1 ) { + return (0); + } } - # }}} - - # }}} - - - - # {{{ Out of date docs - - # We want to grant the right if: - - - # # The user has the right as a member of a system-internal or - # # user-defined group - # - # Find all records from the ACL where they're granted to a group - # of type "UserDefined" or "System" - # for the object "System or the object "Queue N" and the group we're looking - # at has the recursive member $self->Id - # - # # The user has the right based on a role - # - # Find all the records from ACL where they're granted to the role "foo" - # for the object "System" or the object "Queue N" and the group we're looking - # at is of domain ("RT::Queue-Role" and applies to the right queue) - # or ("RT::Ticket-Role" and applies to the right ticket) - # and the type is the same as the type of the ACL and the group has - # the recursive member $self->Id - # - - # }}} my ( $or_look_at_object_rights, $or_check_roles ); my $right = $args{'Right'}; @@ -359,119 +374,108 @@ sub HasRight { # {{{ Construct Right Match # If an object is defined, we want to look at rights for that object - - my @look_at_objects; - push (@look_at_objects, "ACL.ObjectType = 'RT::System'") - unless $self->can('_IsOverrideGlobalACL') and $self->_IsOverrideGlobalACL($args{Object}); - - - - foreach my $obj (@{$args{'EquivObjects'}}) { - next unless (UNIVERSAL::can($obj, 'id')); - my $type = ref($obj); - my $id = $obj->id; - unless ($id) { - use Carp; - Carp::cluck("Trying to check $type rights for an unspecified $type"); - $RT::Logger->crit("Trying to check $type rights for an unspecified $type"); - } - push @look_at_objects, "(ACL.ObjectType = '$type' AND ACL.ObjectId = '$id')"; - } + my @look_at_objects; + push( @look_at_objects, "ACL.ObjectType = 'RT::System'" ) + unless $self->can('_IsOverrideGlobalACL') + and $self->_IsOverrideGlobalACL( $args{Object} ); + + foreach my $obj ( @{ $args{'EquivObjects'} } ) { + next unless ( UNIVERSAL::can( $obj, 'id' ) ); + my $type = ref($obj); + my $id = $obj->id; + + unless ($id) { + use Carp; + Carp::cluck( + "Trying to check $type rights for an unspecified $type"); + $RT::Logger->crit( + "Trying to check $type rights for an unspecified $type"); + } + push @look_at_objects, + "(ACL.ObjectType = '$type' AND ACL.ObjectId = '$id')"; + } - # }}} # {{{ Build that honkin-big SQL query - + my $query_base = + "SELECT ACL.id from ACL, Groups, Principals, CachedGroupMembers WHERE " . - my $query_base = "SELECT ACL.id from ACL, Groups, Principals, CachedGroupMembers WHERE ". - # Only find superuser or rights with the name $right - "(ACL.RightName = 'SuperUser' OR ACL.RightName = '$right') ". - # Never find disabled groups. - "AND Principals.Disabled = 0 " . - "AND CachedGroupMembers.Disabled = 0 ". - "AND Principals.id = Groups.id " . # We always grant rights to Groups + # Only find superuser or rights with the name $right + "(ACL.RightName = 'SuperUser' OR ACL.RightName = '$right') " . - # See if the principal is a member of the group recursively or _is the rightholder_ - # never find recursively disabled group members - # also, check to see if the right is being granted _directly_ to this principal, - # as is the case when we want to look up group rights - "AND Principals.id = CachedGroupMembers.GroupId AND CachedGroupMembers.MemberId = '" . $self->Id . "' ". + # Never find disabled groups. + "AND Principals.Disabled = 0 " + . "AND CachedGroupMembers.Disabled = 0 " + . "AND Principals.id = Groups.id " + . # We always grant rights to Groups - # Make sure the rights apply to the entire system or to the object in question - "AND ( ".join(' OR ', @look_at_objects).") "; +# See if the principal is a member of the group recursively or _is the rightholder_ +# never find recursively disabled group members +# also, check to see if the right is being granted _directly_ to this principal, +# as is the case when we want to look up group rights +"AND Principals.id = CachedGroupMembers.GroupId AND CachedGroupMembers.MemberId = '" + . $self->Id . "' " + . + # Make sure the rights apply to the entire system or to the object in question + "AND ( " . join( ' OR ', @look_at_objects ) . ") "; +# The groups query does the query based on group membership and individual user rights - # The groups query does the query based on group membership and individual user rights + my $groups_query = $query_base . - my $groups_query = $query_base . +# limit the result set to groups of types ACLEquivalence (user) UserDefined, SystemInternal and Personal +"AND ( ( ACL.PrincipalId = Principals.id AND ACL.PrincipalType = 'Group' AND " + . "(Groups.Domain = 'SystemInternal' OR Groups.Domain = 'UserDefined' OR Groups.Domain = 'ACLEquivalence' OR Groups.Domain = 'Personal'))" + . - # limit the result set to groups of types ACLEquivalence (user) UserDefined, SystemInternal and Personal - "AND ( ( ACL.PrincipalId = Principals.id AND ACL.PrincipalType = 'Group' AND ". - "(Groups.Domain = 'SystemInternal' OR Groups.Domain = 'UserDefined' OR Groups.Domain = 'ACLEquivalence' OR Groups.Domain = 'Personal'))". + " ) "; + $self->_Handle->ApplyLimits( \$groups_query, 1 ); #only return one result - " ) "; - $self->_Handle->ApplyLimits(\$groups_query, 1); #only return one result - my @roles; - foreach my $object (@{$args{'EquivObjects'}}) { - push (@roles, $self->_RolesForObject(ref($object), $object->id)); + foreach my $object ( @{ $args{'EquivObjects'} } ) { + push( @roles, $self->_RolesForObject( ref($object), $object->id ) ); } # The roles query does the query based on roles my $roles_query; if (@roles) { - $roles_query = $query_base . "AND ". - " ( (".join (' OR ', @roles)." ) ". - " AND Groups.Type = ACL.PrincipalType AND Groups.Id = Principals.id AND Principals.PrincipalType = 'Group') "; - $self->_Handle->ApplyLimits(\$roles_query, 1); #only return one result - - } - + $roles_query = + $query_base . "AND " . " ( (" + . join( ' OR ', @roles ) . " ) " + . " AND Groups.Type = ACL.PrincipalType AND Groups.Id = Principals.id AND Principals.PrincipalType = 'Group') "; + $self->_Handle->ApplyLimits( \$roles_query, 1 ); #only return one result + } # }}} # {{{ Actually check the ACL by performing an SQL query - # $RT::Logger->debug("Now Trying $groups_query"); + # $RT::Logger->debug("Now Trying $groups_query"); my $hitcount = $self->_Handle->FetchResult($groups_query); # }}} - - # {{{ if there's a match, the right is granted - if ($hitcount) { - # Cache a positive hit. - $self->_ACLCache->{"$hashkey"}{'set'} = time; - $self->_ACLCache->{"$hashkey"}{'val'} = 1; + # {{{ if there's a match, the right is granted + if ($hitcount) { + $_ACL_CACHE->set( $hashkey => 1 ); return (1); } - # }}} - # {{{ If there's no match on groups, try it on roles - else { - - $hitcount = $self->_Handle->FetchResult($roles_query); - if ($hitcount) { + # Now check the roles query + $hitcount = $self->_Handle->FetchResult($roles_query); - # Cache a positive hit. - $self->_ACLCache->{"$hashkey"}{'set'} = time; - $self->_ACLCache->{"$hashkey"}{'val'} = 1; - return (1); - } - - else { - # cache a negative hit - $self->_ACLCache->{"$hashkey"}{'set'} = time; - $self->_ACLCache->{"$hashkey"}{'val'} = -1; - - return (undef); - } + if ($hitcount) { + $_ACL_CACHE->set( $hashkey => 1 ); + return (1); } - # }}} + + # We failed to find an acl hit + $_ACL_CACHE->set( $hashkey => -1 ); + return (undef); } # }}} @@ -513,34 +517,19 @@ sub _RolesForObject { # {{{ ACL caching -# {{{ _ACLCache - -=head2 _ACLCache - -# Function: _ACLCache -# Type : private instance -# Args : none -# Lvalue : hash: ACLCache -# Desc : Returns a reference to the Key cache hash - -=cut - -sub _ACLCache { - return(\%_ACL_KEY_CACHE); -} -# }}} +# {{{ InvalidateACLCache -# {{{ _InvalidateACLCache +=head2 InvalidateACLCache -=head2 _InvalidateACLCache - -Cleans out and reinitializes the user rights key cache +Cleans out and reinitializes the user rights cache =cut -sub _InvalidateACLCache { - %_ACL_KEY_CACHE = (); +sub InvalidateACLCache { + $_ACL_CACHE = Cache::Simple::TimedExpiry->new(); + $_ACL_CACHE->expire_after($RT::ACLCacheLifetime||60); + } # }}} diff --git a/rt/lib/RT/Principals.pm b/rt/lib/RT/Principals.pm index 17b588f78..a61cfb96a 100644 --- a/rt/lib/RT/Principals.pm +++ b/rt/lib/RT/Principals.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Principals_Overlay.pm b/rt/lib/RT/Principals_Overlay.pm index c4f89efdb..c06b9c657 100644 --- a/rt/lib/RT/Principals_Overlay.pm +++ b/rt/lib/RT/Principals_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Principals - a collection of RT::Principal objects @@ -65,6 +66,9 @@ ok (require RT::Principals); =cut + +package RT::Principals; + use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/Queue.pm b/rt/lib/RT/Queue.pm index 03bb2def2..23839d4d9 100755 --- a/rt/lib/RT/Queue.pm +++ b/rt/lib/RT/Queue.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -323,31 +323,31 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Description => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, CorrespondAddress => - {read => 1, write => 1, type => 'varchar(120)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, CommentAddress => - {read => 1, write => 1, type => 'varchar(120)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, InitialPriority => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, FinalPriority => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, DefaultDueIn => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Disabled => - {read => 1, write => 1, type => 'smallint(6)', default => '0'}, + {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, } }; @@ -379,7 +379,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Queue_Overlay.pm b/rt/lib/RT/Queue_Overlay.pm index 0d50a74ab..2f180fc56 100644 --- a/rt/lib/RT/Queue_Overlay.pm +++ b/rt/lib/RT/Queue_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Queue - an RT Queue object @@ -64,18 +65,20 @@ use RT::Queue; =cut + +package RT::Queue; + use strict; no warnings qw(redefine); -use vars qw(@STATUS @ACTIVE_STATUS @INACTIVE_STATUS $RIGHTS); +use vars qw(@DEFAULT_ACTIVE_STATUS @DEFAULT_INACTIVE_STATUS $RIGHTS); + use RT::Groups; use RT::ACL; -use RT::EmailParser; - +use RT::Interface::Email; -@ACTIVE_STATUS = qw(new open stalled); -@INACTIVE_STATUS = qw(resolved rejected deleted); -@STATUS = (@ACTIVE_STATUS, @INACTIVE_STATUS); +@DEFAULT_ACTIVE_STATUS = qw(new open stalled); +@DEFAULT_INACTIVE_STATUS = qw(resolved rejected deleted); # $self->loc('new'); # For the string extractor to get a string to localize # $self->loc('open'); # For the string extractor to get a string to localize @@ -91,7 +94,7 @@ $RIGHTS = { ShowACL => 'Display Access Control List', # loc_pair ModifyACL => 'Modify Access Control List', # loc_pair ModifyQueueWatchers => 'Modify the queue watchers', # loc_pair - AdminCustomFields => 'Create, delete and modify custom fields', # loc_pair + AssignCustomFields => 'Assign and remove custom fields', # loc_pair ModifyTemplate => 'Modify Scrip templates for this queue', # loc_pair ShowTemplate => 'Display Scrip templates for this queue', # loc_pair @@ -180,7 +183,12 @@ Returns an array of all ActiveStatuses for this queue sub ActiveStatusArray { my $self = shift; - return (@ACTIVE_STATUS); + if (@RT::ActiveStatus) { + return (@RT::ActiveStatus) + } else { + $RT::Logger->warning("RT::ActiveStatus undefined, falling back to deprecated defaults"); + return (@DEFAULT_ACTIVE_STATUS); + } } # }}} @@ -195,7 +203,12 @@ Returns an array of all InactiveStatuses for this queue sub InactiveStatusArray { my $self = shift; - return (@INACTIVE_STATUS); + if (@RT::InactiveStatus) { + return (@RT::InactiveStatus) + } else { + $RT::Logger->warning("RT::InactiveStatus undefined, falling back to deprecated defaults"); + return (@DEFAULT_INACTIVE_STATUS); + } } # }}} @@ -210,7 +223,7 @@ Returns an array of all statuses for this queue sub StatusArray { my $self = shift; - return (@STATUS); + return ($self->ActiveStatusArray(), $self->InactiveStatusArray()); } # }}} @@ -219,20 +232,23 @@ sub StatusArray { =head2 IsValidStatus VALUE -Returns true if VALUE is a valid status. Otherwise, returns 0 +Returns true if VALUE is a valid status. Otherwise, returns 0. + +=begin testing -=for testing my $q = RT::Queue->new($RT::SystemUser); ok($q->IsValidStatus('new')== 1, 'New is a valid status'); ok($q->IsValidStatus('f00')== 0, 'f00 is not a valid status'); +=end testing + =cut sub IsValidStatus { my $self = shift; my $value = shift; - my $retval = grep ( /^$value$/, $self->StatusArray ); + my $retval = grep ( $_ eq $value, $self->StatusArray ); return ($retval); } @@ -245,19 +261,22 @@ sub IsValidStatus { Returns true if VALUE is a Active status. Otherwise, returns 0 -=for testing +=begin testing + my $q = RT::Queue->new($RT::SystemUser); ok($q->IsActiveStatus('new')== 1, 'New is a Active status'); ok($q->IsActiveStatus('rejected')== 0, 'Rejected is an inactive status'); ok($q->IsActiveStatus('f00')== 0, 'f00 is not a Active status'); +=end testing + =cut sub IsActiveStatus { my $self = shift; my $value = shift; - my $retval = grep ( /^$value$/, $self->ActiveStatusArray ); + my $retval = grep ( $_ eq $value, $self->ActiveStatusArray ); return ($retval); } @@ -270,19 +289,22 @@ sub IsActiveStatus { Returns true if VALUE is a Inactive status. Otherwise, returns 0 -=for testing +=begin testing + my $q = RT::Queue->new($RT::SystemUser); ok($q->IsInactiveStatus('new')== 0, 'New is a Active status'); ok($q->IsInactiveStatus('rejected')== 1, 'rejeected is an Inactive status'); ok($q->IsInactiveStatus('f00')== 0, 'f00 is not a Active status'); +=end testing + =cut sub IsInactiveStatus { my $self = shift; my $value = shift; - my $retval = grep ( /^$value$/, $self->InactiveStatusArray ); + my $retval = grep ( $_ eq $value, $self->InactiveStatusArray ); return ($retval); } @@ -292,11 +314,34 @@ sub IsInactiveStatus { # {{{ sub Create -=head2 Create -Create takes the name of the new queue + + +=head2 Create(ARGS) + +Arguments: ARGS is a hash of named parameters. Valid parameters are: + + Name (required) + Description + CorrespondAddress + CommentAddress + InitialPriority + FinalPriority + DefaultDueIn + If you pass the ACL check, it creates the queue and returns its queue id. +=begin testing + +my $queue = RT::Queue->new($RT::SystemUser); +my ($id, $val) = $queue->Create( Name => 'Test1'); +ok($id, $val); + +($id, $val) = $queue->Create( Name => '66'); +ok(!$id, $val); + +=end testing + =cut sub Create { @@ -357,8 +402,8 @@ sub Delete { =head2 SetDisabled Takes a boolean. -1 will cause this queue to no longer be avaialble for tickets. -0 will re-enable this queue +1 will cause this queue to no longer be available for tickets. +0 will re-enable this queue. =cut @@ -409,20 +454,14 @@ sub ValidateName { my $tempqueue = new RT::Queue($RT::SystemUser); $tempqueue->Load($name); - #If we couldn't load it :) - unless ( $tempqueue->id() ) { - return (1); - } - #If this queue exists, return undef - #Avoid the ACL check. - if ( $tempqueue->Name() ) { + if ( $tempqueue->Name() && $tempqueue->id != $self->id) { return (undef); } #If the queue doesn't exist, return 1 else { - return (1); + return ($self->SUPER::ValidateName($name)); } } @@ -455,7 +494,7 @@ sub Templates { # {{{ CustomField -=item CustomField NAME +=head2 CustomField NAME Load the queue-specific custom field named NAME @@ -472,18 +511,38 @@ sub CustomField { # {{{ CustomFields -=item CustomFields +=head2 CustomFields Returns an RT::CustomFields object containing all global custom fields, as well as those tied to this queue =cut +# XXX TODO - this should become TicketCustomFields + sub CustomFields { my $self = shift; + warn "Queue->CustomFields is deprecated, use Queue->TicketCustomFields instead"; + return $self->TicketCustomFields(@_); +} + +sub TicketCustomFields { + my $self = shift; + + my $cfs = RT::CustomFields->new( $self->CurrentUser ); + if ( $self->CurrentUserHasRight('SeeQueue') ) { + $cfs->LimitToGlobalOrObjectId( $self->Id ); + $cfs->LimitToLookupType( 'RT::Queue-RT::Ticket' ); + } + return ($cfs); +} + +sub TicketTransactionCustomFields { + my $self = shift; my $cfs = RT::CustomFields->new( $self->CurrentUser ); if ( $self->CurrentUserHasRight('SeeQueue') ) { - $cfs->LimitToGlobalOrQueue( $self->Id ); + $cfs->LimitToGlobalOrObjectId( $self->Id ); + $cfs->LimitToLookupType( 'RT::Queue-RT::Ticket-RT::Transaction' ); } return ($cfs); } @@ -610,7 +669,7 @@ sub AddWatcher { } } else { - $RT::Logger->warn( "$self -> AddWatcher got passed a bogus type"); + $RT::Logger->warning( "$self -> AddWatcher got passed a bogus type"); return ( 0, $self->loc('Error in parameters to Queue->AddWatcher') ); } } @@ -662,7 +721,7 @@ sub _AddWatcher { my $new_user = RT::User->new($RT::SystemUser); my ( $Address, $Name ) = - RT::EmailParser::ParseAddressFromHeader('', $args{'Email'}); + RT::Interface::Email::ParseAddressFromHeader($args{'Email'}); my ( $Val, $Message ) = $new_user->Create( Name => $Address, @@ -771,7 +830,7 @@ sub DeleteWatcher { } } else { - $RT::Logger->warn( "$self -> DeleteWatcher got passed a bogus type"); + $RT::Logger->warning( "$self -> DeleteWatcher got passed a bogus type"); return ( 0, $self->loc('Error in parameters to Queue->DeleteWatcher') ); } } @@ -942,8 +1001,8 @@ sub IsWatcher { =head2 IsCc PRINCIPAL_ID - Takes an RT::Principal id. - Returns true if the principal is a requestor of the current queue. +Takes an RT::Principal id. +Returns true if the principal is a requestor of the current queue. =cut @@ -962,8 +1021,8 @@ sub IsCc { =head2 IsAdminCc PRINCIPAL_ID - Takes an RT::Principal id. - Returns true if the principal is a requestor of the current queue. +Takes an RT::Principal id. +Returns true if the principal is a requestor of the current queue. =cut @@ -1064,7 +1123,7 @@ sub HasRight { } return ( $args{'Principal'}->HasRight( - Object => $self, + Object => $self->Id ? $self : $RT::System, Right => $args{'Right'} ) ); diff --git a/rt/lib/RT/Queues.pm b/rt/lib/RT/Queues.pm index e1be35374..a7020812f 100755 --- a/rt/lib/RT/Queues.pm +++ b/rt/lib/RT/Queues.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Queues_Overlay.pm b/rt/lib/RT/Queues_Overlay.pm index a3bbb78f0..06e3e12a8 100644 --- a/rt/lib/RT/Queues_Overlay.pm +++ b/rt/lib/RT/Queues_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Queues - a collection of RT::Queue objects @@ -65,6 +66,9 @@ ok (require RT::Queues); =cut + +package RT::Queues; + use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/Record.pm b/rt/lib/RT/Record.pm index 57a5ea7fc..d3a826808 100755 --- a/rt/lib/RT/Record.pm +++ b/rt/lib/RT/Record.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Record - Base class for RT record objects @@ -107,6 +108,48 @@ sub _PrimaryKeys { # }}} +=head2 Delete + +Delete this record object from the database. + +=cut + +sub Delete { + my $self = shift; + my ($rv) = $self->SUPER::Delete; + if ($rv) { + return ($rv, $self->loc("Object deleted")); + } else { + + return(0, $self->loc("Object could not be deleted")) + } +} + +=head2 ObjectTypeStr + +Returns a string which is this object's type. The type is the class, +without the "RT::" prefix. + +=begin testing + +my $ticket = RT::Ticket->new($RT::SystemUser); +my $group = RT::Group->new($RT::SystemUser); +is($ticket->ObjectTypeStr, 'Ticket', "Ticket returns correct typestring"); +is($group->ObjectTypeStr, 'Group', "Group returns correct typestring"); + +=end testing + +=cut + +sub ObjectTypeStr { + my $self = shift; + if (ref($self) =~ /^.*::(\w+)$/) { + return $self->loc($1); + } else { + return $self->loc(ref($self)); + } +} + =head2 Attributes Return this object's attributes as an RT::Attributes object @@ -145,7 +188,9 @@ sub AddAttribute { Description => $args{'Description'}, Content => $args{'Content'} ); - $self->Attributes->RedoSearch; + + # XXX TODO: Why won't RedoSearch work here? + $self->Attributes->_DoSearch; return ($id, $msg); } @@ -213,7 +258,7 @@ sub _Handle { # {{{ sub Create -=item Create PARAMHASH +=head2 Create PARAMHASH Takes a PARAMHASH of Column -> Value pairs. If any Column has a Validate$PARAMNAME subroutine defined and the @@ -332,10 +377,11 @@ sub LoadByCols { $newhash{$key} = $hash{$key}; } else { - my ($op, $val); - ($key, $op, $val) = $self->_Handle->_MakeClauseCaseInsensitive($key, '=', $hash{$key}); + my ($op, $val, $func); + ($key, $op, $val, $func) = $self->_Handle->_MakeClauseCaseInsensitive($key, '=', $hash{$key}); $newhash{$key}->{operator} = $op; $newhash{$key}->{value} = $val; + $newhash{$key}->{function} = $func; } } @@ -437,6 +483,7 @@ sub LongSinceUpdateAsString { # }}} Datehandling # {{{ sub _Set +# sub _Set { my $self = shift; @@ -454,12 +501,33 @@ sub _Set { $args{'Value'} = 0; } - $self->_SetLastUpdated(); - my ( $val, $msg ) = $self->SUPER::_Set( + my $old_val = $self->__Value($args{'Field'}); + $self->_SetLastUpdated(); + my $ret = $self->SUPER::_Set( Field => $args{'Field'}, Value => $args{'Value'}, IsSQL => $args{'IsSQL'} ); + my ($status, $msg) = $ret->as_array(); + + # @values has two values, a status code and a message. + + # $ret is a Class::ReturnValue object. as such, in a boolean context, it's a bool + # we want to change the standard "success" message + if ($status) { + $msg = + $self->loc( + "[_1] changed from [_2] to [_3]", + $args{'Field'}, + ( $old_val ? "'$old_val'" : $self->loc("(no value)") ), + '"' . $self->__Value( $args{'Field'}) . '"' + ); + } else { + + $msg = $self->CurrentUser->loc_fuzzy($msg); + } + return wantarray ? ($status, $msg) : $ret; + } # }}} @@ -549,8 +617,22 @@ sub URI { } # }}} - +=head2 ValidateName NAME + +Validate the name of the record we're creating. Mostly, just make sure it's not a numeric ID, which is invalid for Name + +=cut + +sub ValidateName { + my $self = shift; + my $value = shift; + if ($value && $value=~ /^\d+$/) { + return(0); + } else { + return (1); + } +} @@ -750,6 +832,26 @@ sub _EncodeLOB { } +sub _DecodeLOB { + my $self = shift; + my $ContentType = shift; + my $ContentEncoding = shift; + my $Content = shift; + + if ( $ContentEncoding eq 'base64' ) { + $Content = MIME::Base64::decode_base64($Content); + } + elsif ( $ContentEncoding eq 'quoted-printable' ) { + $Content = MIME::QuotedPrint::decode($Content); + } + elsif ( $ContentEncoding && $ContentEncoding ne 'none' ) { + return ( $self->loc( "Unknown ContentEncoding [_1]", $ContentEncoding ) ); + } + if ( $ContentType eq 'text/plain' ) { + $Content = Encode::decode_utf8($Content) unless Encode::is_utf8($Content); + } + return ($Content); +} # {{{ LINKDIRMAP # A helper table for links mapping to make it easier @@ -793,8 +895,7 @@ sub Update { && defined( $ARGSRef->{ $args{'AttributePrefix'} . "-" . $attribute } ) - ) - { + ) { $value = $ARGSRef->{ $args{'AttributePrefix'} . "-" . $attribute }; } @@ -818,14 +919,15 @@ sub Update { next if ( $value eq $self->$attribute() ); my $method = "Set$attribute"; my ( $code, $msg ) = $self->$method($value); - my ($prefix) = ref($self) =~ /RT::(\w+)/; - push @results, - $self->loc( "$prefix [_1]", $self->id ) . ': ' - . $self->loc($attribute) . ': ' - . $self->CurrentUser->loc_fuzzy($msg); + + # Default to $id, but use name if we can get it. + my $label = $self->id; + $label = $self->Name if (UNIVERSAL::can($self,'Name')); + push @results, $self->loc( "$prefix [_1]", $label ) . ': '. $msg; =for loc + "[_1] could not be set to [_2].", # loc "That is already the current value", # loc "No value sent to _Set!\n", # loc @@ -838,6 +940,7 @@ sub Update { "Couldn't find row", # loc "Missing a primary key?: [_1]", # loc "Found Object", # loc + =cut } @@ -845,7 +948,7 @@ sub Update { return @results; } -# {{{ Routines dealing with Links between tickets +# {{{ Routines dealing with Links # {{{ Link Collections @@ -953,6 +1056,12 @@ ok ($addid, $addmsg); ok (($addid, $addmsg) =$t1->AddLink( Type => 'DependsOn', Target => $t3->id)); ok ($addid, $addmsg); +my $link = RT::Link->new($RT::SystemUser); +my ($rv, $msg) = $link->Load($addid); +ok ($rv, $msg); +ok ($link->LocalTarget == $t3->id, "Link LocalTarget is correct"); +ok ($link->LocalBase == $t1->id, "Link LocalBase is correct"); + ok ($t1->HasUnresolvedDependencies, "Ticket ".$t1->Id." has unresolved deps"); ok (!$t1->HasUnresolvedDependencies( Type => 'blah' ), "Ticket ".$t1->Id." has no unresolved blahs"); ok ($t1->HasUnresolvedDependencies( Type => 'approval' ), "Ticket ".$t1->Id." has unresolved approvals"); @@ -961,10 +1070,12 @@ ok (!$t2->HasUnresolvedDependencies, "Ticket ".$t2->Id." has no unresolved deps" my ($rid, $rmsg)= $t1->Resolve(); ok(!$rid, $rmsg); -ok($t2->Resolve); +my ($rid2, $rmsg2) = $t2->Resolve(); +ok ($rid2, $rmsg2); ($rid, $rmsg)= $t1->Resolve(); ok(!$rid, $rmsg); -ok($t3->Resolve); +my ($rid3,$rmsg3) = $t3->Resolve; +ok ($rid3,$rmsg3); ($rid, $rmsg)= $t1->Resolve(); ok($rid, $rmsg); @@ -1095,6 +1206,14 @@ sub DependsOn { # {{{ sub _Links +=head2 Links DIRECTION TYPE + +return links to/from this object. + +=cut + +*Links = \&_Links; + sub _Links { my $self = shift; @@ -1144,8 +1263,7 @@ sub _AddLink { my $direction; if ( $args{'Base'} and $args{'Target'} ) { - $RT::Logger->debug( -"$self tried to delete a link. both base and target were specified\n" ); + $RT::Logger->debug( "$self tried to create a link. both base and target were specified\n" ); return ( 0, $self->loc("Can't specifiy both base and target") ); } elsif ( $args{'Base'} ) { @@ -1192,7 +1310,7 @@ sub _AddLink { my $TransString = "Record $args{'Base'} $args{Type} record $args{'Target'}."; - return ( 1, $self->loc( "Link created ([_1])", $TransString ) ); + return ( $linkid, $self->loc( "Link created ([_1])", $TransString ) ); } # }}} @@ -1265,6 +1383,486 @@ sub _DeleteLink { # }}} +# }}} + +# {{{ Routines dealing with transactions + +# {{{ sub _NewTransaction + +=head2 _NewTransaction PARAMHASH + +Private function to create a new RT::Transaction object for this ticket update + +=cut + +sub _NewTransaction { + my $self = shift; + my %args = ( + TimeTaken => undef, + Type => undef, + OldValue => undef, + NewValue => undef, + OldReference => undef, + NewReference => undef, + ReferenceType => undef, + Data => undef, + Field => undef, + MIMEObj => undef, + ActivateScrips => 1, + CommitScrips => 1, + @_ + ); + + my $old_ref = $args{'OldReference'}; + my $new_ref = $args{'NewReference'}; + my $ref_type = $args{'ReferenceType'}; + if ($old_ref or $new_ref) { + $ref_type ||= ref($old_ref) || ref($new_ref); + if (!$ref_type) { + $RT::Logger->error("Reference type not specified for transaction"); + return; + } + $old_ref = $old_ref->Id if ref($old_ref); + $new_ref = $new_ref->Id if ref($new_ref); + } + + require RT::Transaction; + my $trans = new RT::Transaction( $self->CurrentUser ); + my ( $transaction, $msg ) = $trans->Create( + ObjectId => $self->Id, + ObjectType => ref($self), + TimeTaken => $args{'TimeTaken'}, + Type => $args{'Type'}, + Data => $args{'Data'}, + Field => $args{'Field'}, + NewValue => $args{'NewValue'}, + OldValue => $args{'OldValue'}, + NewReference => $new_ref, + OldReference => $old_ref, + ReferenceType => $ref_type, + MIMEObj => $args{'MIMEObj'}, + ActivateScrips => $args{'ActivateScrips'}, + CommitScrips => $args{'CommitScrips'}, + ); + + # Rationalize the object since we may have done things to it during the caching. + $self->Load($self->Id); + + $RT::Logger->warning($msg) unless $transaction; + + $self->_SetLastUpdated; + + if ( defined $args{'TimeTaken'} ) { + $self->_UpdateTimeTaken( $args{'TimeTaken'} ); + } + if ( $RT::UseTransactionBatch and $transaction ) { + push @{$self->{_TransactionBatch}}, $trans; + } + return ( $transaction, $msg, $trans ); +} + +# }}} + +# {{{ sub Transactions + +=head2 Transactions + + Returns an RT::Transactions object of all transactions on this record object + +=cut + +sub Transactions { + my $self = shift; + + use RT::Transactions; + my $transactions = RT::Transactions->new( $self->CurrentUser ); + + #If the user has no rights, return an empty object + $transactions->Limit( + FIELD => 'ObjectId', + VALUE => $self->id, + ); + $transactions->Limit( + FIELD => 'ObjectType', + VALUE => ref($self), + ); + + return ($transactions); +} + +# }}} +# }}} +# +# {{{ Routines dealing with custom fields + +sub CustomFields { + my $self = shift; + my $cfs = RT::CustomFields->new( $self->CurrentUser ); + + # XXX handle multiple types properly + $cfs->LimitToLookupType( $self->CustomFieldLookupType ); + $cfs->LimitToGlobalOrObjectId( + $self->_LookupId( $self->CustomFieldLookupType ) ); + + return $cfs; +} + +# TODO: This _only_ works for RT::Class classes. it doesn't work, for example, for RT::FM classes. + +sub _LookupId { + my $self = shift; + my $lookup = shift; + my @classes = ($lookup =~ /RT::(\w+)-/g); + + my $object = $self; + foreach my $class (reverse @classes) { + my $method = "${class}Obj"; + $object = $object->$method; + } + + return $object->Id; +} + + +=head2 CustomFieldLookupType + +Returns the path RT uses to figure out which custom fields apply to this object. + +=cut + +sub CustomFieldLookupType { + my $self = shift; + return ref($self); +} + +#TODO Deprecated API. Destroy in 3.6 +sub _LookupTypes { + my $self = shift; + $RT::Logger->warning("_LookupTypes call is deprecated. Replace with CustomFieldLookupType"); + $RT::Logger->warning("Besides, it was a private API. Were you doing using it?"); + + return($self->CustomFieldLookupType); + +} + +# {{{ AddCustomFieldValue + +=head2 AddCustomFieldValue { Field => FIELD, Value => VALUE } + +VALUE should be a string. +FIELD can be a CustomField object OR a CustomField ID. + + +Adds VALUE as a value of CustomField FIELD. If this is a single-value custom field, +deletes the old value. +If VALUE is not a valid value for the custom field, returns +(0, 'Error message' ) otherwise, returns (1, 'Success Message') + +=cut + +sub AddCustomFieldValue { + my $self = shift; + $self->_AddCustomFieldValue(@_); +} + +sub _AddCustomFieldValue { + my $self = shift; + my %args = ( + Field => undef, + Value => undef, + RecordTransaction => 1, + @_ + ); + + my $cf = $self->LoadCustomFieldByIdentifier($args{'Field'}); + + unless ( $cf->Id ) { + return ( 0, $self->loc( "Custom field [_1] not found", $args{'Field'} ) ); + } + + my $OCFs = $self->CustomFields; + $OCFs->Limit( FIELD => 'id', VALUE => $cf->Id ); + unless ( $OCFs->Count ) { + return ( + 0, + $self->loc( + "Custom field [_1] does not apply to this object", + $args{'Field'} + ) + ); + } + # Load up a ObjectCustomFieldValues object for this custom field and this ticket + my $values = $cf->ValuesForObject($self); + + unless ( $cf->ValidateValue( $args{'Value'} ) ) { + return ( 0, $self->loc("Invalid value for custom field") ); + } + + # If the custom field only accepts a certain # of values, delete the existing + # value and record a "changed from foo to bar" transaction + unless ( $cf->UnlimitedValues) { + + # We need to whack any old values here. In most cases, the custom field should + # only have one value to delete. In the pathalogical case, this custom field + # used to be a multiple and we have many values to whack.... + my $cf_values = $values->Count; + + if ( $cf_values > $cf->MaxValues ) { + my $i = 0; #We want to delete all but the max we can currently have , so we can then + # execute the same code to "change" the value from old to new + while ( my $value = $values->Next ) { + $i++; + if ( $i < $cf_values ) { + my ( $val, $msg ) = $cf->DeleteValueForObject( + Object => $self, + Content => $value->Content + ); + unless ($val) { + return ( 0, $msg ); + } + my ( $TransactionId, $Msg, $TransactionObj ) = + $self->_NewTransaction( + Type => 'CustomField', + Field => $cf->Id, + OldReference => $value, + ); + } + } + } + + my ( $old_value, $old_content ); + if ( $old_value = $cf->ValuesForObject($self)->First ) { + $old_content = $old_value->Content(); + return (1) if( $old_content eq $args{'Value'} && $old_value->LargeContent eq $args{'LargeContent'});; + } + + my ( $new_value_id, $value_msg ) = $cf->AddValueForObject( + Object => $self, + Content => $args{'Value'}, + LargeContent => $args{'LargeContent'}, + ContentType => $args{'ContentType'}, + ); + + unless ($new_value_id) { + return ( 0, $self->loc( "Could not add new custom field value. [_1] ",, $value_msg)); + } + + my $new_value = RT::ObjectCustomFieldValue->new( $self->CurrentUser ); + $new_value->Load($new_value_id); + + # now that adding the new value was successful, delete the old one + if ($old_value) { + my ( $val, $msg ) = $old_value->Delete(); + unless ($val) { + return ( 0, $msg ); + } + } + + if ( $args{'RecordTransaction'} ) { + my ( $TransactionId, $Msg, $TransactionObj ) = + $self->_NewTransaction( + Type => 'CustomField', + Field => $cf->Id, + OldReference => $old_value, + NewReference => $new_value, + ); + } + + if ( $old_value eq '' ) { + return ( 1, $self->loc( "[_1] [_2] added", $cf->Name, $new_value->Content )); + } + elsif ( $new_value->Content eq '' ) { + return ( 1, + $self->loc( "[_1] [_2] deleted", $cf->Name, $old_value->Content ) ); + } + else { + return ( 1, $self->loc( "[_1] [_2] changed to [_3]", $cf->Name, $old_content, $new_value->Content)); + } + + } + + # otherwise, just add a new value and record "new value added" + else { + my ($new_value_id) = $cf->AddValueForObject( + Object => $self, + Content => $args{'Value'}, + LargeContent => $args{'LargeContent'}, + ContentType => $args{'ContentType'}, + ); + + unless ($new_value_id) { + return ( 0, $self->loc("Could not add new custom field value. ") ); + } + if ( $args{'RecordTransaction'} ) { + my ( $TransactionId, $Msg, $TransactionObj ) = + $self->_NewTransaction( + Type => 'CustomField', + Field => $cf->Id, + NewReference => $new_value_id, + ReferenceType => 'RT::ObjectCustomFieldValue', + ); + unless ($TransactionId) { + return ( 0, + $self->loc( "Couldn't create a transaction: [_1]", $Msg ) ); + } + } + return ( 1, $self->loc( "[_1] added as a value for [_2]", $args{'Value'}, $cf->Name)); + } + +} + +# }}} + +# {{{ DeleteCustomFieldValue + +=head2 DeleteCustomFieldValue { Field => FIELD, Value => VALUE } + +Deletes VALUE as a value of CustomField FIELD. + +VALUE can be a string, a CustomFieldValue or a ObjectCustomFieldValue. + +If VALUE is not a valid value for the custom field, returns +(0, 'Error message' ) otherwise, returns (1, 'Success Message') + +=cut + +sub DeleteCustomFieldValue { + my $self = shift; + my %args = ( + Field => undef, + Value => undef, + ValueId => undef, + @_ + ); + + my $cf = $self->LoadCustomFieldByIdentifier($args{'Field'}); + + unless ( $cf->Id ) { + return ( 0, $self->loc( "Custom field [_1] not found", $args{'Field'} ) ); + } + my ( $val, $msg ) = $cf->DeleteValueForObject( + Object => $self, + Id => $args{'ValueId'}, + Content => $args{'Value'}, + ); + unless ($val) { + return ( 0, $msg ); + } + my ( $TransactionId, $Msg, $TransactionObj ) = $self->_NewTransaction( + Type => 'CustomField', + Field => $cf->Id, + OldReference => $val, + ReferenceType => 'RT::ObjectCustomFieldValue', + ); + unless ($TransactionId) { + return ( 0, $self->loc( "Couldn't create a transaction: [_1]", $Msg ) ); + } + + return ( + $TransactionId, + $self->loc( + "[_1] is no longer a value for custom field [_2]", + $TransactionObj->OldValue, $cf->Name + ) + ); +} + +# }}} + +# {{{ FirstCustomFieldValue + +=head2 FirstCustomFieldValue FIELD + +Return the content of the first value of CustomField FIELD for this ticket +Takes a field id or name + +=cut + +sub FirstCustomFieldValue { + my $self = shift; + my $field = shift; + my $values = $self->CustomFieldValues($field); + if ($values->First) { + return $values->First->Content; + } else { + return undef; + } + +} + + + +# {{{ CustomFieldValues + +=head2 CustomFieldValues FIELD + +Return a ObjectCustomFieldValues object of all values of the CustomField whose +id or Name is FIELD for this record. + +Returns an RT::ObjectCustomFieldValues object + +=cut + +sub CustomFieldValues { + my $self = shift; + my $field = shift; + + if ($field) { + my $cf = $self->LoadCustomFieldByIdentifier($field); + + # we were asked to search on a custom field we couldn't fine + unless ( $cf->id ) { + return RT::ObjectCustomFieldValues->new( $self->CurrentUser ); + } + return ( $cf->ValuesForObject($self) ); + } + + # we're not limiting to a specific custom field; + my $ocfs = RT::ObjectCustomFieldValues->new( $self->CurrentUser ); + $ocfs->LimitToObject($self); + return $ocfs; + +} + +=head2 CustomField IDENTIFER + +Find the custom field has id or name IDENTIFIER for this object. + +If no valid field is found, returns an empty RT::CustomField object. + +=cut + +sub LoadCustomFieldByIdentifier { + my $self = shift; + my $field = shift; + + my $cf = RT::CustomField->new($self->CurrentUser); + + if ( UNIVERSAL::isa( $field, "RT::CustomField" ) ) { + $cf->LoadById( $field->id ); + } + elsif ($field =~ /^\d+$/) { + $cf = RT::CustomField->new($self->CurrentUser); + $cf->Load($field); + } else { + + my $cfs = $self->CustomFields($self->CurrentUser); + $cfs->Limit(FIELD => 'Name', VALUE => $field); + $cf = $cfs->First || RT::CustomField->new($self->CurrentUser); + } + return $cf; +} + + +# }}} + +# }}} + +# }}} + +sub BasicColumns { +} + eval "require RT::Record_Vendor"; die $@ if ($@ && $@ !~ qr{^Can't locate RT/Record_Vendor.pm}); eval "require RT::Record_Local"; diff --git a/rt/lib/RT/SavedSearch.pm b/rt/lib/RT/SavedSearch.pm new file mode 100644 index 000000000..65411a7b2 --- /dev/null +++ b/rt/lib/RT/SavedSearch.pm @@ -0,0 +1,327 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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 }}} + +=head1 NAME + + RT::SavedSearch - an API for saving and retrieving search form values. + +=head1 SYNOPSIS + + use RT::SavedSearch + +=head1 DESCRIPTION + + SavedSearch is an object that can belong to either an RT::User or an + RT::Group. It consists of an ID, a description, and a number of + search parameters. + +=head1 METHODS + +=begin testing + +use_ok(RT::SavedSearch); + +# Real tests are in lib/t/20savedsearch.t + +=end testing + +=cut + +package RT::SavedSearch; + +use RT::Base; +use RT::Attribute; + +use strict; +use vars qw/@ISA/; +@ISA = qw/RT::Base/; + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $self = {}; + $self->{'Id'} = 0; + bless ($self, $class); + $self->CurrentUser(@_); + return $self; +} + +=head2 Load + +Takes a privacy specification, an object ID, and a search ID. Loads +the given search ID if it belongs to the stated user or group. +Returns a tuple of status and message, where status is true on +success. + +=cut + +sub Load { + my $self = shift; + my ($privacy, $id) = @_; + my $object = $self->_GetObject($privacy); + + if ($object) { + $self->{'Attribute'} = $object->Attributes->WithId($id); + if ($self->{'Attribute'}->Id) { + $self->{'Id'} = $self->{'Attribute'}->Id; + $self->{'Privacy'} = $privacy; + $self->{'Type'} = $self->{'Attribute'}->SubValue('SearchType'); + return (1, $self->loc("Loaded search [_1]", $self->Name)); + } else { + $RT::Logger->error("Could not load attribute " . $id + . " for object " . $privacy); + return (0, $self->loc("Search attribute load failure")); + } + } else { + $RT::Logger->error("Could not load object $privacy when loading search"); + return (0, $self->loc("Could not load object for [_1]", $privacy)); + } + +} + +=head2 Save + +Takes a privacy, an optional type, a name, and a hashref containing the +search parameters. Saves the given parameters to the appropriate user/ +group object, and loads the resulting search. Returns a tuple of status +and message, where status is true on success. Defaults are: + Privacy: undef + Type: Ticket + Name: "new search" + SearchParams: (empty hash) + +=cut + +sub Save { + my $self = shift; + my %args = ('Privacy' => 'RT::User-' . $self->CurrentUser->Id, + 'Type' => 'Ticket', + 'Name' => 'new search', + 'SearchParams' => {}, + @_); + my $privacy = $args{'Privacy'}; + my $type = $args{'Type'}; + my $name = $args{'Name'}; + my %params = %{$args{'SearchParams'}}; + + $params{'SearchType'} = $type; + my $object = $self->_GetObject($privacy); + if ($object) { + my ($att_id, $att_msg) = $object->AddAttribute( + 'Name' => 'SavedSearch', + 'Description' => $name, + 'Content' => \%params); + if ($att_id) { + $self->{'Attribute'} = $object->Attributes->WithId($att_id); + $self->{'Id'} = $att_id; + $self->{'Privacy'} = $privacy; + $self->{'Type'} = $type; + return (1, $self->loc("Saved search [_1]", $name)); + } else { + $RT::Logger->error("SavedSearch save failure: $att_msg"); + return (0, $self->loc("Failed to create search attribute")); + } + } else { + return (0, $self->loc("Failed to load object for [_1]", $privacy)); + } +} + +=head2 Update + +Updates the parameters of an existing search. Takes the arguments +"Name" and "SearchParams"; SearchParams should be a hashref containing +the new parameters of the search. If Name is not specified, the name +will not be changed. + +=cut + +sub Update { + my $self = shift; + my %args = ('Name' => '', + 'SearchParams' => {}, + @_); + + return(0, $self->loc("No search loaded")) unless $self->Id; + return(0, $self->loc("Could not load search attribute")) + unless $self->{'Attribute'}->Id; + my ($status, $msg) = $self->{'Attribute'}->SetSubValues(%{$args{'SearchParams'}}); + if ($status && $args{'Name'}) { + ($status, $msg) = $self->{'Attribute'}->SetDescription($args{'Name'}); + } + return ($status, $self->loc("Search update: [_1]", $msg)); +} + +=head2 Delete + +Deletes the existing search. Returns a tuple of status and message, +where status is true upon success. + +=cut + +sub Delete { + my $self = shift; + + my ($status, $msg) = $self->{'Attribute'}->Delete; + if ($status) { + return (1, $self->loc("Deleted search")); + } else { + return (0, $self->loc("Delete failed: [_1]", $msg)); + } +} + + +### Accessor methods + +=head2 Name + +Returns the name of the search. + +=cut + +sub Name { + my $self = shift; + return unless ref($self->{'Attribute'}) eq 'RT::Attribute'; + return $self->{'Attribute'}->Description(); +} + +=head2 GetParameter + +Returns the given named parameter of the search, e.g. 'Query', 'Format'. + +=cut + +sub GetParameter { + my $self = shift; + my $param = shift; + return unless ref($self->{'Attribute'}) eq 'RT::Attribute'; + return $self->{'Attribute'}->SubValue($param); +} + +=head2 Id + +Returns the numerical id of this search. + +=cut + +sub Id { + my $self = shift; + return $self->{'Id'}; +} + +=head2 Privacy + +Returns the principal object to whom this search belongs, in a string +"<class>-<id>", e.g. "RT::Group-16". + +=cut + +sub Privacy { + my $self = shift; + return $self->{'Privacy'}; +} + +=head2 Type + +Returns the type of this search, e.g. 'Ticket'. Useful for denoting the +saved searches that are relevant to a particular search page. + +=cut + +sub Type { + my $self = shift; + return $self->{'Type'}; +} + +### Internal methods + +# _GetObject: helper routine to load the correct object whose parameters +# have been passed. + +sub _GetObject { + my $self = shift; + my $privacy = shift; + + my ($obj_type, $obj_id) = split(/\-/, $privacy); + unless ($obj_type eq 'RT::User' || $obj_type eq 'RT::Group') { + $RT::Logger->error("Tried to load a search belonging to an $obj_type, which is neither a user nor a group"); + return undef; + } + + my $object; + eval " + require $obj_type; + \$object = $obj_type->new(\$self->CurrentUser); + \$object->Load(\$obj_id); + "; + unless (ref($object) eq $obj_type) { + $RT::Logger->error("Could not load object of type $obj_type with ID $obj_id"); + return undef; + } + + # Do not allow the loading of a user object other than the current + # user, or of a group object of which the current user is not a member. + + if ($obj_type eq 'RT::User' + && $object->Id != $self->CurrentUser->UserObj->Id()) { + $RT::Logger->debug("Permission denied for user other than self"); + return undef; + } + if ($obj_type eq 'RT::Group' && + !$object->HasMemberRecursively($self->CurrentUser->PrincipalObj)) { + $RT::Logger->debug("Permission denied, ".$self->CurrentUser->Name. + " is not a member of group"); + return undef; + } + + return $object; +} + +eval "require RT::SavedSearch_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/SavedSearch_Vendor.pm}); +eval "require RT::SavedSearch_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/SavedSearch_Local.pm}); + +1; diff --git a/rt/lib/RT/SavedSearches.pm b/rt/lib/RT/SavedSearches.pm new file mode 100644 index 000000000..262bfa8d0 --- /dev/null +++ b/rt/lib/RT/SavedSearches.pm @@ -0,0 +1,206 @@ +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 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 }}} + +=head1 NAME + + RT::SavedSearches - a pseudo-collection for SavedSearch objects. + +=head1 SYNOPSIS + + use RT::SavedSearch + +=head1 DESCRIPTION + + SavedSearches is an object consisting of a number of SavedSearch objects. + It works more or less like a DBIx::SearchBuilder collection, although it + is not. + +=head1 METHODS + +=begin testing + +use_ok(RT::SavedSearches); + +# The real tests are in lib/t/20savedsearch.t + +=end testing + +=cut + +package RT::SavedSearches; + +use RT::Base; +use RT::SavedSearch; + +use strict; +use vars qw/@ISA/; +@ISA = qw/RT::Base/; + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $self = {}; + bless ($self, $class); + $self->CurrentUser(@_); + $self->{'idx'} = 0; + $self->{'objects'} = []; + return $self; +} + +=head2 LimitToPrivacy + +Takes two argumets: a privacy string, of the format "<class>-<id>", as +produced by RT::SavedSearch::Privacy(); and a type string, as produced +by RT::SavedSearch::Type(). The SavedSearches object will load the +searches belonging to that user or group that are of the type +specified. If no type is specified, all the searches belonging to the +user/group will be loaded. Repeated calls to the same object should DTRT. + +=cut + +sub LimitToPrivacy { + my $self = shift; + my $privacy = shift; + my $type = shift; + + my $object = $self->_GetObject($privacy); + + if ($object) { + $self->{'objects'} = []; + my @search_atts = $object->Attributes->Named('SavedSearch'); + foreach my $att (@search_atts) { + my $search = RT::SavedSearch->new($self->CurrentUser); + $search->Load($privacy, $att->Id); + next if $type && $search->Type ne $type; + push(@{$self->{'objects'}}, $search); + } + } else { + $RT::Logger->error("Could not load object $privacy"); + } +} + +### Accessor methods + +=head2 Next + +Returns the next object in the collection. + +=cut + +sub Next { + my $self = shift; + my $search = $self->{'objects'}->[$self->{'idx'}]; + if ($search) { + $self->{'idx'}++; + } else { + # We have run out of objects; reset the counter. + $self->{'idx'} = 0; + } + return $search; +} + +=head2 Count + +Returns the number of search objects found. + +=cut + +sub Count { + my $self = shift; + return scalar @{$self->{'objects'}}; +} + +### Internal methods + +# _GetObject: helper routine to load the correct object whose parameters +# have been passed. + +sub _GetObject { + my $self = shift; + my $privacy = shift; + + my ($obj_type, $obj_id) = split(/\-/, $privacy); + unless ($obj_type eq 'RT::User' || $obj_type eq 'RT::Group') { + $RT::Logger->error("Tried to load a search belonging to an $obj_type, which is neither a user nor a group"); + return undef; + } + + my $object; + eval " + require $obj_type; + \$object = $obj_type->new(\$self->CurrentUser); + \$object->Load($obj_id); + "; + unless (ref($object) eq $obj_type) { + $RT::Logger->error("Could not load object of type $obj_type with ID $obj_id"); + return undef; + } + + # Do not allow the loading of a user object other than the current + # user, or of a group object of which the current user is not a member. + + if ($obj_type eq 'RT::User' + && $object->Id != $self->CurrentUser->UserObj->Id()) { + $RT::Logger->error('Requested user ' . $object->Id + . 'is not current user'); + return undef; + } + if ($obj_type eq 'RT::Group' + && !$object->HasMemberRecursively($self->CurrentUser->PrincipalObj)) { + $RT::Logger->error('Current user does not belong to requested group ' + . $object->Id); + return undef; + } + + return $object; +} + +eval "require RT::SavedSearches_Vendor"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/SavedSearches_Vendor.pm}); +eval "require RT::SavedSearches_Local"; +die $@ if ($@ && $@ !~ qr{^Can't locate RT/SavedSearches_Local.pm}); + +1; diff --git a/rt/lib/RT/Scrip.pm b/rt/lib/RT/Scrip.pm index 1c414d8f2..85fe6a820 100755 --- a/rt/lib/RT/Scrip.pm +++ b/rt/lib/RT/Scrip.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -446,37 +446,37 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Description => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, ScripCondition => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, ScripAction => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, ConditionRules => - {read => 1, write => 1, type => 'text', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, ActionRules => - {read => 1, write => 1, type => 'text', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, CustomIsApplicableCode => - {read => 1, write => 1, type => 'text', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, CustomPrepareCode => - {read => 1, write => 1, type => 'text', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, CustomCommitCode => - {read => 1, write => 1, type => 'text', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, Stage => - {read => 1, write => 1, type => 'varchar(32)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 32, is_blob => 0, is_numeric => 0, type => 'varchar(32)', default => ''}, Queue => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Template => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; @@ -508,7 +508,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +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 e3d2a902a..075162f80 100755 --- a/rt/lib/RT/ScripAction.pm +++ b/rt/lib/RT/ScripAction.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -239,23 +239,23 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Description => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, ExecModule => - {read => 1, write => 1, type => 'varchar(60)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 60, is_blob => 0, is_numeric => 0, type => 'varchar(60)', default => ''}, Argument => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; @@ -287,7 +287,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/ScripAction_Overlay.pm b/rt/lib/RT/ScripAction_Overlay.pm index c0a10caf7..76e047f71 100644 --- a/rt/lib/RT/ScripAction_Overlay.pm +++ b/rt/lib/RT/ScripAction_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::ScripAction - RT Action object @@ -68,6 +69,9 @@ ok (require RT::ScripAction); =cut + +package RT::ScripAction; + use strict; no warnings qw(redefine); use RT::Template; @@ -89,10 +93,12 @@ sub _Accessible { # }}} # {{{ sub Create + =head2 Create - - Takes a hash. Creates a new Action entry. - should be better documented. + +Takes a hash. Creates a new Action entry. should be better +documented. + =cut sub Create { @@ -111,6 +117,15 @@ sub Delete { # }}} # {{{ sub Load + +=head2 Load IDENTIFIER + +Loads an action by its Name. + +Returns: Id, Error Message + +=cut + sub Load { my $self = shift; my $identifier = shift; @@ -133,7 +148,7 @@ sub Load { $self->{'Template'} = $template; } - return ($self->loc('[_1] ScripAction loaded', $self->Id)); + return ($self->Id, ($self->loc('[_1] ScripAction loaded', $self->Id))); } # }}} @@ -160,13 +175,13 @@ sub LoadAction { eval "require $type" || die "Require of $type failed.\n$@\n"; - $self->{'Action'} = $type->new ( ScripActionObj => $self, - TicketObj => $args{'TicketObj'}, - ScripObj => $args{'ScripObj'}, - TransactionObj => $args{'TransactionObj'}, - TemplateObj => $self->TemplateObj, - Argument => $self->Argument, - CurrentUser => $self->CurrentUser + $self->{'Action'} = $type->new ( Argument => $self->Argument, + CurrentUser => $self->CurrentUser, + ScripActionObj => $self, + ScripObj => $args{'ScripObj'}, + TemplateObj => $self->TemplateObj, + TicketObj => $args{'TicketObj'}, + TransactionObj => $args{'TransactionObj'}, ); } # }}} @@ -214,6 +229,7 @@ sub TemplateObj { sub Prepare { my $self = shift; + $self->{_Message_ID} = 0; return ($self->Action->Prepare()); } diff --git a/rt/lib/RT/ScripActions.pm b/rt/lib/RT/ScripActions.pm index 677fd85b8..c34e52ff5 100755 --- a/rt/lib/RT/ScripActions.pm +++ b/rt/lib/RT/ScripActions.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/ScripActions_Overlay.pm b/rt/lib/RT/ScripActions_Overlay.pm index c7cb3eb6c..9c29d4cb7 100644 --- a/rt/lib/RT/ScripActions_Overlay.pm +++ b/rt/lib/RT/ScripActions_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::ScripActions - Collection of Action objects @@ -65,6 +66,9 @@ ok (require RT::ScripActions); =cut + +package RT::ScripActions; + use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/ScripCondition.pm b/rt/lib/RT/ScripCondition.pm index 4e0398c7c..bf2c56093 100755 --- a/rt/lib/RT/ScripCondition.pm +++ b/rt/lib/RT/ScripCondition.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -260,25 +260,25 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Description => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, ExecModule => - {read => 1, write => 1, type => 'varchar(60)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 60, is_blob => 0, is_numeric => 0, type => 'varchar(60)', default => ''}, Argument => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, ApplicableTransTypes => - {read => 1, write => 1, type => 'varchar(60)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 60, is_blob => 0, is_numeric => 0, type => 'varchar(60)', default => ''}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; @@ -310,7 +310,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/ScripCondition_Overlay.pm b/rt/lib/RT/ScripCondition_Overlay.pm index 158a2c962..4424657d0 100644 --- a/rt/lib/RT/ScripCondition_Overlay.pm +++ b/rt/lib/RT/ScripCondition_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::ScripCondition - RT scrip conditional @@ -68,6 +69,9 @@ ok (require RT::ScripCondition); =cut + +package RT::ScripCondition; + use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/ScripConditions.pm b/rt/lib/RT/ScripConditions.pm index 8daaea92c..99bde7dfd 100755 --- a/rt/lib/RT/ScripConditions.pm +++ b/rt/lib/RT/ScripConditions.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/ScripConditions_Overlay.pm b/rt/lib/RT/ScripConditions_Overlay.pm index 1b23e2dab..7670d5825 100644 --- a/rt/lib/RT/ScripConditions_Overlay.pm +++ b/rt/lib/RT/ScripConditions_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::ScripConditions - Collection of Action objects @@ -66,6 +67,9 @@ ok (require RT::ScripConditions); =cut + +package RT::ScripConditions; + use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/Scrip_Overlay.pm b/rt/lib/RT/Scrip_Overlay.pm index 1e1854a00..ae2782a23 100644 --- a/rt/lib/RT/Scrip_Overlay.pm +++ b/rt/lib/RT/Scrip_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Scrip - an RT Scrip object @@ -98,6 +99,9 @@ ok ($ticket2->Priority != '87', "Ticket priority is set right"); =cut + +package RT::Scrip; + use strict; no warnings qw(redefine); @@ -265,7 +269,7 @@ sub ActionObj { $self->{'ScripActionObj'} = RT::ScripAction->new( $self->CurrentUser ); #TODO: why are we loading Actions with templates like this. - # two seperate methods might make more sense + # two separate methods might make more sense $self->{'ScripActionObj'}->Load( $self->ScripAction, $self->Template ); } return ( $self->{'ScripActionObj'} ); @@ -336,6 +340,9 @@ should be loaded by the SuperUser role =cut +# XXX TODO : This code appears to be obsoleted in favor of similar code in Scrips->Apply. +# Why is this here? Is it still called? + sub Apply { my $self = shift; my %args = ( TicketObj => undef, @@ -417,16 +424,19 @@ sub IsApplicable { $RT::Logger->error( "Unknown Scrip stage:" . $self->Stage ); return (undef); } - + my $ConditionObj = $self->ConditionObj; foreach my $TransactionObj ( @Transactions ) { + # in TxnBatch stage we can select scrips that are not applicable to all txns + my $txn_type = $TransactionObj->Type; + next unless( $ConditionObj->ApplicableTransTypes =~ /(?:^|,)(?:Any|\Q$txn_type\E)(?:,|$)/i ); # Load the scrip's Condition object - $self->ConditionObj->LoadCondition( + $ConditionObj->LoadCondition( ScripObj => $self, TicketObj => $args{'TicketObj'}, TransactionObj => $TransactionObj, ); - if ( $self->ConditionObj->IsApplicable() ) { + if ( $ConditionObj->IsApplicable() ) { # We found an application Transaction -- return it $return = $TransactionObj; last; @@ -502,7 +512,7 @@ sub Commit { $args{'TicketObj'}->Load( $args{'TicketObj'}->Id ); if ($@) { - $RT::Logger->error( "Scrip IsApplicable " . $self->Id . " died. - " . $@ ); + $RT::Logger->error( "Scrip Commit " . $self->Id . " died. - " . $@ ); return (undef); } diff --git a/rt/lib/RT/Scrips.pm b/rt/lib/RT/Scrips.pm index 0ec2ad7ee..9605a64f7 100755 --- a/rt/lib/RT/Scrips.pm +++ b/rt/lib/RT/Scrips.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Scrips_Overlay.pm b/rt/lib/RT/Scrips_Overlay.pm index 2f395ffd0..0f606c884 100644 --- a/rt/lib/RT/Scrips_Overlay.pm +++ b/rt/lib/RT/Scrips_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Scrips - a collection of RT Scrip objects @@ -65,6 +66,9 @@ ok (require RT::Scrips); =cut + +package RT::Scrips; + use strict; no warnings qw(redefine); @@ -254,6 +258,7 @@ sub Prepared { # {{{ sup _SetupSourceObjects + =head2 _SetupSourceObjects { TicketObj , Ticket, Transaction, TransactionObj } Setup a ticket and transaction for this Scrip collection to work with as it runs through the @@ -313,8 +318,8 @@ sub _FindScrips { $self->LimitToQueue( $self->{'TicketObj'}->QueueObj->Id ) ; #Limit it to $Ticket->QueueObj->Id - $self->LimitToGlobal() - unless $self->{'TicketObj'}->QueueObj->Disabled; # or to "global" + $self->LimitToGlobal(); + # or to "global" $self->Limit( FIELD => "Stage", VALUE => $args{'Stage'} ); @@ -328,14 +333,16 @@ sub _FindScrips { ); #We only want things where the scrip applies to this sort of transaction - $self->Limit( - ALIAS => $ConditionsAlias, - FIELD => 'ApplicableTransTypes', - OPERATOR => 'LIKE', - VALUE => $args{'Type'}, - ENTRYAGGREGATOR => 'OR', - ) - if $args{'Type'}; + # TransactionBatch stage can define list of transaction + foreach( split /\s*,\s*/, ($args{'Type'} || '') ) { + $self->Limit( + ALIAS => $ConditionsAlias, + FIELD => 'ApplicableTransTypes', + OPERATOR => 'LIKE', + VALUE => $_, + ENTRYAGGREGATOR => 'OR', + ) + } # Or where the scrip applies to any transaction $self->Limit( diff --git a/rt/lib/RT/Search/ActiveTicketsInQueue.pm b/rt/lib/RT/Search/ActiveTicketsInQueue.pm index d34b72ad6..9f9dac70f 100644 --- a/rt/lib/RT/Search/ActiveTicketsInQueue.pm +++ b/rt/lib/RT/Search/ActiveTicketsInQueue.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Search::ActiveTicketsInQueue diff --git a/rt/lib/RT/Search/FromSQL.pm b/rt/lib/RT/Search/FromSQL.pm index 5d9d6706f..3842bb6ae 100644 --- a/rt/lib/RT/Search/FromSQL.pm +++ b/rt/lib/RT/Search/FromSQL.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,30 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK -# 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. -# -# 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 +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Search::FromSQL diff --git a/rt/lib/RT/Search/Generic.pm b/rt/lib/RT/Search/Generic.pm index d95c94b0f..3f3aa837b 100644 --- a/rt/lib/RT/Search/Generic.pm +++ b/rt/lib/RT/Search/Generic.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Search::Generic - ; diff --git a/rt/lib/RT/SearchBuilder.pm b/rt/lib/RT/SearchBuilder.pm index 615f19726..3de9fc265 100644 --- a/rt/lib/RT/SearchBuilder.pm +++ b/rt/lib/RT/SearchBuilder.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::SearchBuilder - a baseclass for RT collection objects @@ -131,14 +132,42 @@ sub LimitToDeleted { Takes NAME, OPERATOR and VALUE to find records that has the matching Attribute. +If EMPTY is set, also select rows with an empty string as +Attribute's Content. + +If NULL is set, also select rows without the named Attribute. + =cut +my %Negate = qw( + = != + != = + > <= + < >= + >= < + <= > + LIKE NOT LIKE + NOT LIKE LIKE + IS IS NOT + IS NOT IS +); + sub LimitAttribute { my ($self, %args) = @_; + my $clause = 'ALIAS'; + my $operator = ($args{OPERATOR} || '='); + + if ($args{NULL} and exists $args{VALUE}) { + $clause = 'LEFTJOIN'; + $operator = $Negate{$operator}; + } + elsif ($args{NEGATE}) { + $operator = $Negate{$operator}; + } my $alias = $self->Join( TYPE => 'left', - ALIAS1 => 'main', + ALIAS1 => $args{ALIAS} || 'main', FIELD1 => 'id', TABLE2 => 'Attributes', FIELD2 => 'ObjectId' @@ -148,13 +177,13 @@ sub LimitAttribute { $type =~ s/(?:s|Collection)$//; # XXX - Hack! $self->Limit( - ALIAS => $alias, + $clause => $alias, FIELD => 'ObjectType', OPERATOR => '=', VALUE => $type, ); $self->Limit( - ALIAS => $alias, + $clause => $alias, FIELD => 'Name', OPERATOR => '=', VALUE => $args{NAME}, @@ -163,27 +192,90 @@ sub LimitAttribute { return unless exists $args{VALUE}; $self->Limit( - ALIAS => $alias, + $clause => $alias, FIELD => 'Content', - OPERATOR => ($args{OPERATOR} || '='), + OPERATOR => $operator, VALUE => $args{VALUE}, - ENTRYAGGREGATOR => 'OR', ); - if ($args{EMPTY}) { - # Capture rows without the attribute defined by testing IS NULL. - $self->Limit( - ALIAS => $alias, - FIELD => $_, - OPERATOR => 'IS', - VALUE => 'NULL', - ENTRYAGGREGATOR => 'OR', - ) for qw( ObjectType Name Content ); - } + # Capture rows with the attribute defined as an empty string. + $self->Limit( + $clause => $alias, + FIELD => 'Content', + OPERATOR => '=', + VALUE => '', + ENTRYAGGREGATOR => $args{NULL} ? 'AND' : 'OR', + ) if $args{EMPTY}; + + # Capture rows without the attribute defined + $self->Limit( + %args, + ALIAS => $alias, + FIELD => 'id', + OPERATOR => ($args{NEGATE} ? 'IS NOT' : 'IS'), + VALUE => 'NULL', + ) if $args{NULL}; } # }}} -1; +# {{{ sub LimitCustomField + +=head2 LimitCustomField + +Takes a paramhash of key/value pairs with the following keys: + +=over 4 + +=item CUSTOMFIELD - CustomField id. Optional + +=item OPERATOR - The usual Limit operators + +=item VALUE - The value to compare against + +=back + +=cut + +sub _SingularClass { + my $self = shift; + my $class = ref($self); + $class =~ s/s$// or die "Cannot deduce SingularClass for $class"; + return $class; +} + +sub LimitCustomField { + my $self = shift; + my %args = ( VALUE => undef, + CUSTOMFIELD => undef, + OPERATOR => '=', + @_ ); + + my $alias = $self->Join( + TYPE => 'left', + ALIAS1 => 'main', + FIELD1 => 'id', + TABLE2 => 'ObjectCustomFieldValues', + FIELD2 => 'ObjectId' + ); + $self->Limit( + ALIAS => $alias, + FIELD => 'CustomField', + OPERATOR => '=', + VALUE => $args{'CUSTOMFIELD'}, + ) if ($args{'CUSTOMFIELD'}); + $self->Limit( + ALIAS => $alias, + FIELD => 'ObjectType', + OPERATOR => '=', + VALUE => $self->_SingularClass, + ); + $self->Limit( + ALIAS => $alias, + FIELD => 'Content', + OPERATOR => $args{'OPERATOR'}, + VALUE => $args{'VALUE'}, + ); +} # {{{ sub FindAllRows @@ -219,7 +311,7 @@ sub Limit { # {{{ sub ItemsOrderBy -=item ItemsOrderBy +=head2 ItemsOrderBy If it has a SortOrder attribute, sort the array by SortOrder. Otherwise, if it has a "Name" attribute, sort alphabetically by Name @@ -246,7 +338,7 @@ sub ItemsOrderBy { # {{{ sub ItemsArrayRef -=item ItemsArrayRef +=head2 ItemsArrayRef Return this object's ItemsArray, in the order that ItemsOrderBy sorts it. diff --git a/rt/lib/RT/StyleGuide.pod b/rt/lib/RT/StyleGuide.pod index 4a45e8205..f0d1d15e6 100644 --- a/rt/lib/RT/StyleGuide.pod +++ b/rt/lib/RT/StyleGuide.pod @@ -239,7 +239,27 @@ leads to cleaner code. my $var1 = shift; # right my $var2 = shift; +=head2 Method parameters +If a method takes exactly one mandatory argument, the argument should be +passed in a straightforward manner: + + my $self = shift; + my $id = shift; + +In all other cases, the method needs to take named parameters, usually +using a C<%args> hash to store them: + + my $self = shift; + my %args = ( Name => undef, + Description => undef, + @_ ); + +You may specify defaults to those named parameters instead of using +C<undef> above, as long as it is documented as such. + +It is worth noting that the existing RT codebase had not followed this +style perfectly; we are trying to fix it without breaking exsiting APIs. =head2 Tests @@ -857,7 +877,28 @@ is a good chance it will not be dealt with. Send patches to rt-<major-version>-bugs@fsck.com, too. Use C<diff -u> for patches. +=head1 SCHEMA DESIGN + +RT uses a convention to denote the foreign key status in its tables. +The rule of thumb is: + +=over 4 + +=item When it references to another table, always use the table name + +For example, the C<Template> field in the C<Scrips> table refers to +the C<Id> of the same-named C<Template> table. + +=item Otherwise, always use the C<Id> suffix + +For example, the C<ObjectId> field in the C<ACL> table can refer +to any object, so it has the C<Id> suffix. + +=back +There are some legacy fields that did not follow this rule, namely +C<ACL.PrincipalId>, C<GroupMembers.GroupId> and C<Attachments.TransactionId>, +but new tables are expected to be consistent. =head1 TO DO diff --git a/rt/lib/RT/System.pm b/rt/lib/RT/System.pm index b544531ba..515e3a469 100644 --- a/rt/lib/RT/System.pm +++ b/rt/lib/RT/System.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::System @@ -81,7 +82,10 @@ $RIGHTS = { AdminUsers => 'Create, delete and modify users', # loc_pair ModifySelf => "Modify one's own RT account", # loc_pair DelegateRights => - "Delegate specific rights which have been granted to you." # loc_pair + "Delegate specific rights which have been granted to you.", # loc_pair + ShowConfigTab => "show Configuration tab", # loc_pair + LoadSavedSearch => "allow loading of saved searches", # loc_pair + CreateSavedSearch => "allow creation of saved searches", # loc_pair }; # Tell RT::ACE that this sort of object can get acls granted @@ -118,12 +122,14 @@ sub AvailableRights { my $queue = RT::Queue->new($RT::SystemUser); my $group = RT::Group->new($RT::SystemUser); + my $cf = RT::CustomField->new($RT::SystemUser); my $qr =$queue->AvailableRights(); my $gr = $group->AvailableRights(); + my $cr = $cf->AvailableRights(); # Build a merged list of all system wide rights, queue rights and group rights. - my %rights = (%{$RIGHTS}, %{$gr}, %{$qr}); + my %rights = (%{$RIGHTS}, %{$gr}, %{$qr}, %{$cr}); return(\%rights); } diff --git a/rt/lib/RT/Template.pm b/rt/lib/RT/Template.pm index c18a7505f..4f7aacb2c 100755 --- a/rt/lib/RT/Template.pm +++ b/rt/lib/RT/Template.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -317,29 +317,29 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Queue => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Name => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Description => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, Type => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, Language => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, TranslationOf => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Content => - {read => 1, write => 1, type => 'blob', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'blob', default => ''}, LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; @@ -371,7 +371,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Template_Overlay.pm b/rt/lib/RT/Template_Overlay.pm index 877b5c422..bfff0f03e 100644 --- a/rt/lib/RT/Template_Overlay.pm +++ b/rt/lib/RT/Template_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} # Portions Copyright 2000 Tobias Brox <tobix@cpan.org> =head1 NAME @@ -66,6 +66,9 @@ ok(require RT::Template); =cut + +package RT::Template; + use strict; no warnings qw(redefine); @@ -321,10 +324,13 @@ sub MIMEObj { # {{{ sub Parse -=item Parse +=head2 Parse This routine performs Text::Template parsing on the template and then imports the results into a MIME::Entity so we can really use it + + Takes a hash containing Argument, TicketObj, and TransactionObj. + It returns a tuple of (val, message) If val is 0, the message contains an error message @@ -403,7 +409,15 @@ sub _ParseContent { SOURCE => $content ); - my $retval = $template->fill_in( PACKAGE => 'T' ); + my $is_broken = 0; + my $retval = $template->fill_in( PACKAGE => 'T', BROKEN => sub { + my (%args) = @_; + $RT::Logger->error("Template parsing error: $args{error}") + unless $args{error} =~ /^Died at /; # ignore intentional die() + $is_broken++; + return undef; + } ); + return undef if $is_broken; # MIME::Parser has problems dealing with high-bit utf8 data. Encode::_utf8_off($retval); diff --git a/rt/lib/RT/Templates.pm b/rt/lib/RT/Templates.pm index 925107ebf..6271b973f 100755 --- a/rt/lib/RT/Templates.pm +++ b/rt/lib/RT/Templates.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Templates_Overlay.pm b/rt/lib/RT/Templates_Overlay.pm index fb9b4a087..f5e8ce533 100644 --- a/rt/lib/RT/Templates_Overlay.pm +++ b/rt/lib/RT/Templates_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Templates - a collection of RT Template objects @@ -64,6 +65,9 @@ ok (require RT::Templates); =cut + +package RT::Templates; + use strict; no warnings qw(redefine); diff --git a/rt/lib/RT/Ticket.pm b/rt/lib/RT/Ticket.pm index 0d3c787ea..905ae8fc6 100755 --- a/rt/lib/RT/Ticket.pm +++ b/rt/lib/RT/Ticket.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -590,55 +590,55 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, EffectiveId => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Queue => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Type => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, IssueStatement => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Resolution => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Owner => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Subject => - {read => 1, write => 1, type => 'varchar(200)', default => '[no subject]'}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => '[no subject]'}, InitialPriority => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, FinalPriority => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Priority => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, TimeEstimated => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, TimeWorked => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Status => - {read => 1, write => 1, type => 'varchar(10)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 10, is_blob => 0, is_numeric => 0, type => 'varchar(10)', default => ''}, TimeLeft => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Told => - {read => 1, write => 1, type => 'datetime', default => ''}, + {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Starts => - {read => 1, write => 1, type => 'datetime', default => ''}, + {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Started => - {read => 1, write => 1, type => 'datetime', default => ''}, + {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Due => - {read => 1, write => 1, type => 'datetime', default => ''}, + {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Resolved => - {read => 1, write => 1, type => 'datetime', default => ''}, + {read => 1, write => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, Disabled => - {read => 1, write => 1, type => 'smallint(6)', default => '0'}, + {read => 1, write => 1, sql_type => 5, length => 6, is_blob => 0, is_numeric => 1, type => 'smallint(6)', default => '0'}, } }; @@ -670,7 +670,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Ticket_Overlay.pm b/rt/lib/RT/Ticket_Overlay.pm index a5d6860f6..d04ececd8 100644 --- a/rt/lib/RT/Ticket_Overlay.pm +++ b/rt/lib/RT/Ticket_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} # {{{ Front Material =head1 SYNOPSIS @@ -66,12 +66,16 @@ ok($testqueue->Create( Name => 'ticket tests')); ok($testqueue->Id != 0); use_ok(RT::CustomField); ok(my $testcf = RT::CustomField->new($RT::SystemUser)); -ok($testcf->Create( Name => 'selectmulti', +my ($ret, $cmsg) = $testcf->Create( Name => 'selectmulti', Queue => $testqueue->id, - Type => 'SelectMultiple')); -ok($testcf->AddValue ( Name => 'Value1', + Type => 'SelectMultiple'); +ok($ret,"Created the custom field - ".$cmsg); +($ret,$cmsg) = $testcf->AddValue ( Name => 'Value1', SortOrder => '1', - Description => 'A testing value')); + Description => 'A testing value'); + +ok($ret, "Added a value - ".$cmsg); + ok($testcf->AddValue ( Name => 'Value2', SortOrder => '2', Description => 'Another testing value')); @@ -107,8 +111,8 @@ ok($t->CustomFieldValues($testcf->Id)->Count == 0); ok(my $t2 = RT::Ticket->new($RT::SystemUser)); ok($t2->Load($id)); -ok($t2->Subject eq 'Testing'); -ok($t2->QueueObj->Id eq $testqueue->id); +is($t2->Subject, 'Testing'); +is($t2->QueueObj->Id, $testqueue->id); ok($t2->OwnerObj->Id == $u->Id); my $t3 = RT::Ticket->new($RT::SystemUser); @@ -133,6 +137,9 @@ ok($t3->CustomFieldValues($testcf->Id)->Count == 1, =cut + +package RT::Ticket; + use strict; no warnings qw(redefine); @@ -142,8 +149,8 @@ use RT::Record; use RT::Links; use RT::Date; use RT::CustomFields; -use RT::TicketCustomFieldValues; use RT::Tickets; +use RT::Transactions; use RT::URI::fsck_com_rt; use RT::URI; use MIME::Entity; @@ -231,6 +238,7 @@ sub Load { #TODO modify this routine to look at EffectiveId and do the recursive load # thing. be careful to cache all the interim tickets we try so we don't loop forever. + #If it's a local URI, turn it into a ticket id if ( $id =~ /^$RT::TicketBaseURI(\d+)$/ ) { $id = $1; @@ -243,7 +251,7 @@ sub Load { #If we have an integer URI, load the ticket if ( $id =~ /^\d+$/ ) { - my $ticketid = $self->LoadById($id); + my ($ticketid,$msg) = $self->LoadById($id); unless ($self->Id) { $RT::Logger->crit("$self tried to load a bogus ticket: $id\n"); @@ -253,11 +261,13 @@ sub Load { #It's not a URI. It's not a numerical ticket ID. Punt! else { + $RT::Logger->warning("Tried to load a bogus ticket id: '$id'"); return (undef); } #If we're merged, resolve the merge. if ( ( $self->EffectiveId ) and ( $self->EffectiveId != $self->Id ) ) { + $RT::Logger->debug ("We found a merged ticket.". $self->id ."/".$self->EffectiveId); return ( $self->Load( $self->EffectiveId ) ); } @@ -377,8 +387,7 @@ sub Create { $QueueObj->Load( $args{'Queue'}->Id ); } else { - $RT::Logger->debug( - $args{'Queue'} . " not a recognised queue object." ); + $RT::Logger->debug( $args{'Queue'} . " not a recognised queue object." ); } #Can't create a ticket without a queue. @@ -397,11 +406,7 @@ sub Create { { return ( 0, 0, - $self->loc( - "No permission to create tickets in the queue '[_1]'", - $QueueObj->Name - ) - ); + $self->loc( "No permission to create tickets in the queue '[_1]'", $QueueObj->Name)); } unless ( $QueueObj->IsValidStatus( $args{'Status'} ) ) { @@ -673,7 +678,7 @@ sub Create { foreach my $link ( ref( $args{$type} ) ? @{ $args{$type} } : ( $args{$type} ) ) { - my ( $wval, $wmsg ) = $self->AddLink( + my ( $wval, $wmsg ) = $self->_AddLink( Type => $LINKTYPEMAP{$type}->{'Type'}, $LINKTYPEMAP{$type}->{'Mode'} => $link, Silent => 1 @@ -691,13 +696,18 @@ sub Create { next unless ( $arg =~ /^CustomField-(\d+)$/i ); my $cfid = $1; foreach - my $value ( ref( $args{$arg} ) ? @{ $args{$arg} } : ( $args{$arg} ) ) + my $value ( UNIVERSAL::isa( $args{$arg} => 'ARRAY' ) ? @{ $args{$arg} } : ( $args{$arg} ) ) { next unless ( length($value) ); + + # Allow passing in uploaded LargeContent etc by hash reference $self->_AddCustomFieldValue( + (UNIVERSAL::isa( $value => 'HASH' ) + ? %$value + : (Value => $value) + ), Field => $cfid, - Value => $value, - RecordTransaction => 0 + RecordTransaction => 0, ); } } @@ -715,6 +725,8 @@ sub Create { if ( $self->Id && $Trans ) { + $TransObj->UpdateCustomFields(ARGSRef => \%args); + $RT::Logger->info( "Ticket " . $self->Id . " created in queue '" . $QueueObj->Name . "' by " . $self->CurrentUser->Name ); $ErrStr = $self->loc( "Ticket [_1] created in queue '[_2]'", $self->Id, $QueueObj->Name ); $ErrStr = join( "\n", $ErrStr, @non_fatal_errors ); @@ -724,11 +736,7 @@ sub Create { $ErrStr = join( "\n", $ErrStr, @non_fatal_errors ); $RT::Logger->error("Ticket couldn't be created: $ErrStr"); - return ( - 0, 0, - $self->loc( - "Ticket could not be created due to an internal error") - ); + return ( 0, 0, $self->loc( "Ticket could not be created due to an internal error")); } $RT::Handle->Commit(); @@ -750,170 +758,6 @@ sub Create { # }}} -# {{{ sub CreateFromEmailMessage - - -=head2 CreateFromEmailMessage { Message, Queue, ExtractActorFromHeaders } - -This code replaces what was once a large part of the email gateway. -It takes an email message as a parameter, parses out the sender, subject -and a MIME object. It then creates a ticket based on those attributes - -=cut - -sub CreateFromEmailMessage { - my $self = shift; - my %args = ( Message => undef, - Queue => undef, - ExtractActorFromSender => undef, - @_ ); - - - # Pull out requestor - - # Pull out Cc? - - # - - -} - -# }}} - - -# {{{ CreateFrom822 - -=head2 FORMAT - -CreateTickets uses the template as a template for an ordered set of tickets -to create. The basic format is as follows: - - - ===Create-Ticket: identifier - Param: Value - Param2: Value - Param3: Value - Content: Blah - blah - blah - ENDOFCONTENT -=head2 Acceptable fields - -A complete list of acceptable fields for this beastie: - - - * Queue => Name or id# of a queue - Subject => A text string - Status => A valid status. defaults to 'new' - - Due => Dates can be specified in seconds since the epoch - to be handled literally or in a semi-free textual - format which RT will attempt to parse. - Starts => - Started => - Resolved => - Owner => Username or id of an RT user who can and should own - this ticket - + Requestor => Email address - + Cc => Email address - + AdminCc => Email address - TimeWorked => - TimeEstimated => - TimeLeft => - InitialPriority => - FinalPriority => - Type => - + DependsOn => - + DependedOnBy => - + RefersTo => - + ReferredToBy => - + Members => - + MemberOf => - Content => content. Can extend to multiple lines. Everything - within a template after a Content: header is treated - as content until we hit a line containing only - ENDOFCONTENT - ContentType => the content-type of the Content field - CustomField-<id#> => custom field value - -Fields marked with an * are required. - -Fields marked with a + man have multiple values, simply -by repeating the fieldname on a new line with an additional value. - - -When parsed, field names are converted to lowercase and have -s stripped. -Refers-To, RefersTo, refersto, refers-to and r-e-f-er-s-tO will all -be treated as the same thing. - - -=begin testing - -use_ok(RT::Ticket); - -=end testing - - -=cut - -sub CreateFrom822 { - my $self = shift; - my $content = shift; - - - - my %args = $self->_Parse822HeadersForAttributes($content); - - # Now we have a %args to work with. - # Make sure we have at least the minimum set of - # reasonable data and do our thang - my $ticket = RT::Ticket->new($RT::SystemUser); - - my %ticketargs = ( - Queue => $args{'queue'}, - Subject => $args{'subject'}, - Status => $args{'status'}, - Due => $args{'due'}, - Starts => $args{'starts'}, - Started => $args{'started'}, - Resolved => $args{'resolved'}, - Owner => $args{'owner'}, - Requestor => $args{'requestor'}, - Cc => $args{'cc'}, - AdminCc => $args{'admincc'}, - TimeWorked => $args{'timeworked'}, - TimeEstimated => $args{'timeestimated'}, - TimeLeft => $args{'timeleft'}, - InitialPriority => $args{'initialpriority'}, - FinalPriority => $args{'finalpriority'}, - Type => $args{'type'}, - DependsOn => $args{'dependson'}, - DependedOnBy => $args{'dependedonby'}, - RefersTo => $args{'refersto'}, - ReferredToBy => $args{'referredtoby'}, - Members => $args{'members'}, - MemberOf => $args{'memberof'}, - MIMEObj => $args{'mimeobj'} - ); - - # Add custom field entries to %ticketargs. - # TODO: allow named custom fields - map { - /^customfield-(\d+)$/ - && ( $ticketargs{ "CustomField-" . $1 } = $args{$_} ); - } keys(%args); - - my ( $id, $transid, $msg ) = $ticket->Create(%ticketargs); - unless ($id) { - $RT::Logger->error( "Couldn't create a related ticket for " - . $self->TicketObj->Id . " " - . $msg ); - } - - return (1); -} - -# }}} # {{{ UpdateFrom822 @@ -1029,7 +873,6 @@ sub UpdateFrom822 { $ticketargs{'Queue'} = $tempqueue->Id() if ( $tempqueue->id ); } - # die "updaterecordobject is a webui thingy"; my @results; foreach my $attribute (@attribs) { @@ -1321,16 +1164,24 @@ sub Import { } } + my $create_groups_ret = $self->_CreateTicketGroups(); + unless ($create_groups_ret) { + $RT::Logger->crit( + "Couldn't create ticket groups for ticket " . $self->Id ); + } + + $self->OwnerGroup->_AddMember( PrincipalId => $Owner->PrincipalId ); + my $watcher; foreach $watcher ( @{ $args{'Cc'} } ) { - $self->_AddWatcher( Type => 'Cc', Person => $watcher, Silent => 1 ); + $self->_AddWatcher( Type => 'Cc', Email => $watcher, Silent => 1 ); } foreach $watcher ( @{ $args{'AdminCc'} } ) { - $self->_AddWatcher( Type => 'AdminCc', Person => $watcher, + $self->_AddWatcher( Type => 'AdminCc', Email => $watcher, Silent => 1 ); } foreach $watcher ( @{ $args{'Requestor'} } ) { - $self->_AddWatcher( Type => 'Requestor', Person => $watcher, + $self->_AddWatcher( Type => 'Requestor', Email => $watcher, Silent => 1 ); } @@ -1339,7 +1190,6 @@ sub Import { # }}} - # {{{ Routines dealing with watchers. # {{{ _CreateTicketGroups @@ -1487,7 +1337,7 @@ sub AddWatcher { } } else { - $RT::Logger->warn( "$self -> AddWatcher got passed a bogus type"); + $RT::Logger->warning( "$self -> AddWatcher got passed a bogus type"); return ( 0, $self->loc('Error in parameters to Ticket->AddWatcher') ); } } @@ -1523,6 +1373,10 @@ sub _AddWatcher { if ($args{'Email'}) { my $user = RT::User->new($RT::SystemUser); my ($pid, $msg) = $user->LoadOrCreateByEmail($args{'Email'}); + # If we can't load the user by email address, let's try to load by username + unless ($pid) { + ($pid,$msg) = $user->Load($args{'Email'}) + } if ($pid) { $args{'PrincipalId'} = $pid; } @@ -2385,6 +2239,8 @@ MIMEObj, TimeTaken, CcMessageTo, BccMessageTo, Content, DryRun If DryRun is defined, this update WILL NOT BE RECORDED. Scrips will not be committed. They will, however, be prepared and you'll be able to access them through the TransactionObj +Returns: Transaction id, Error Message, Transaction Object +(note the different order from Create()!) =cut @@ -2434,6 +2290,9 @@ if there's no MIMEObj, Content is used to build a MIME::Entity object If DryRun is defined, this update WILL NOT BE RECORDED. Scrips will not be committed. They will, however, be prepared and you'll be able to access them through the TransactionObj +Returns: Transaction id, Error Message, Transaction Object +(note the different order from Create()!) + =cut @@ -2523,6 +2382,24 @@ sub _RecordNote { ) ) if defined $args{'BccMessageTo'}; + # If this is from an external source, we need to come up with its + # internal Message-ID now, so all emails sent because of this + # message have a common Message-ID + unless ($args{'MIMEObj'}->head->get('Message-ID') + =~ /<(rt-.*?-\d+-\d+)\.(\d+-0-0)\@$RT::Organization>/) { + $args{'MIMEObj'}->head->set( 'RT-Message-ID', + "<rt-" + . $RT::VERSION . "-" + . $$ . "-" + . CORE::time() . "-" + . int(rand(2000)) . '.' + . $self->id . "-" + . "0" . "-" # Scrip + . "0" . "@" # Email sent + . $RT::Organization + . ">" ); + } + #Record the correspondence (write the transaction) my ( $Trans, $msg, $TransObj ) = $self->_NewTransaction( Type => $args{'NoteType'}, @@ -2647,6 +2524,51 @@ sub DeleteLink { Takes a paramhash of Type and one of Base or Target. Adds that link to this ticket. +=begin testing + +my $q1 = RT::Queue->new($RT::SystemUser); +my ($id,$msg) = $q1->Create(Name => 'LinkTest1'); +ok ($id,$msg); +my $q2 = RT::Queue->new($RT::SystemUser); +($id,$msg) = $q2->Create(Name => 'LinkTest2'); +ok ($id,$msg); + +my $u1 = RT::User->new($RT::SystemUser); +($id,$msg) =$u1->Create(Name => 'LinkTestUser'); + +ok ($id,$msg); + +($id,$msg) = $u1->PrincipalObj->GrantRight ( Object => $q1, Right => 'CreateTicket'); +ok ($id,$msg); +($id,$msg) = $u1->PrincipalObj->GrantRight ( Object => $q1, Right => 'ModifyTicket'); +ok ($id,$msg); + +my $tid; + +my $creator = RT::CurrentUser->new($u1->id); + +my $ticket = RT::Ticket->new( $creator); +ok($ticket->isa('RT::Ticket')); +($id,$tid, $msg) = $ticket->Create(Subject => 'Link test 1', Queue => $q1->id); +ok ($id,$msg); + + +my $ticket2 = RT::Ticket->new($RT::SystemUser); +($id, $tid, $msg) = $ticket2->Create(Subject => 'Link test 2', Queue => $q2->id); +ok ($id, $msg); + +($id,$msg) =$ticket->AddLink(Type => 'RefersTo', Target => $ticket2->id); +ok(!$id,$msg); +($id,$msg) = $u1->PrincipalObj->GrantRight ( Object => $q2, Right => 'CreateTicket'); +ok ($id,$msg); +($id,$msg) = $u1->PrincipalObj->GrantRight ( Object => $q2, Right => 'ModifyTicket'); +ok ($id,$msg); +($id,$msg) =$ticket->AddLink(Type => 'RefersTo', Target => $ticket2->id); +ok($id,$msg); +($id,$msg) =$ticket->AddLink(Type => 'RefersTo', Target => -1); +ok(!$id,$msg); + +=end testing =cut @@ -2663,6 +2585,58 @@ sub AddLink { return ( 0, $self->loc("Permission Denied") ); } + + $self->_AddLink(%args); +} + +=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, + @_ ); + + # {{{ If the other URI is an RT::Ticket, we want to make sure the user + # can modify it too... + my $other_ticket_uri = RT::URI->new($self->CurrentUser); + + if ( $args{'Target'} ) { + $other_ticket_uri->FromURI( $args{'Target'} ); + + } + elsif ( $args{'Base'} ) { + $other_ticket_uri->FromURI( $args{'Base'} ); + } + + unless ( $other_ticket_uri->Resolver && $other_ticket_uri->Scheme ) { + my $msg = $args{'Target'} ? $self->loc("Couldn't resolve target '[_1]' into a URI.", $args{'Target'}) + : $self->loc("Couldn't resolve base '[_1]' into a URI.", $args{'Base'}); + $RT::Logger->warning( "$self $msg\n" ); + + return( 0, $msg ); + } + + if ( $other_ticket_uri->Resolver->Scheme eq 'fsck.com-rt') { + my $object = $other_ticket_uri->Resolver->Object; + + if ( UNIVERSAL::isa( $object, 'RT::Ticket' ) + && $object->id + && !$object->CurrentUserHasRight('ModifyTicket') ) + { + return ( 0, $self->loc("Permission Denied") ); + } + + } + + # }}} + my ($val, $Msg) = $self->SUPER::_AddLink(%args); if (!$val) { @@ -2680,7 +2654,7 @@ sub AddLink { # Don't write the transaction if we're doing this on create if ( $args{'Silent'} ) { - return ( 1, $Msg ); + return ( $val, $Msg ); } else { my $remote_uri = RT::URI->new( $RT::SystemUser ); @@ -2692,52 +2666,67 @@ sub AddLink { Field => $LINKDIRMAP{$args{'Type'}}->{$direction}, NewValue => $remote_uri->URI || $remote_link, TimeTaken => 0 ); - return ( $Trans, $Msg ); + return ( $val, $Msg ); } } # }}} + # {{{ sub MergeInto =head2 MergeInto + MergeInto take the id of the ticket to merge this ticket into. + +=begin testing + +my $t1 = RT::Ticket->new($RT::SystemUser); +$t1->Create ( Subject => 'Merge test 1', Queue => 'general', Requestor => 'merge1@example.com'); +my $t1id = $t1->id; +my $t2 = RT::Ticket->new($RT::SystemUser); +$t2->Create ( Subject => 'Merge test 2', Queue => 'general', Requestor => 'merge2@example.com'); +my $t2id = $t2->id; +my ($msg, $val) = $t1->MergeInto($t2->id); +ok ($msg,$val); +$t1 = RT::Ticket->new($RT::SystemUser); +is ($t1->id, undef, "ok. we've got a blank ticket1"); +$t1->Load($t1id); + +is ($t1->id, $t2->id); + +is ($t1->Requestors->MembersObj->Count, 2); + + +=end testing + =cut sub MergeInto { my $self = shift; - my $MergeInto = shift; + my $ticket_id = shift; unless ( $self->CurrentUserHasRight('ModifyTicket') ) { return ( 0, $self->loc("Permission Denied") ); } # Load up the new ticket. - my $NewTicket = RT::Ticket->new($RT::SystemUser); - $NewTicket->Load($MergeInto); + my $MergeInto = RT::Ticket->new($RT::SystemUser); + $MergeInto->Load($ticket_id); # make sure it exists. - unless ( defined $NewTicket->Id ) { + unless ( $MergeInto->Id ) { return ( 0, $self->loc("New ticket doesn't exist") ); } # Make sure the current user can modify the new ticket. - unless ( $NewTicket->CurrentUserHasRight('ModifyTicket') ) { - $RT::Logger->debug("failed..."); + unless ( $MergeInto->CurrentUserHasRight('ModifyTicket') ) { return ( 0, $self->loc("Permission Denied") ); } - $RT::Logger->debug( - "checking if the new ticket has the same id and effective id..."); - unless ( $NewTicket->id == $NewTicket->EffectiveId ) { - $RT::Logger->err( "$self trying to merge into " - . $NewTicket->Id - . " which is itself merged.\n" ); - return ( 0, - $self->loc("Can't merge into a merged ticket. You should never get this error") ); - } + $RT::Handle->BeginTransaction(); # We use EffectiveId here even though it duplicates information from # the links table becasue of the massive performance hit we'd take @@ -2747,19 +2736,20 @@ sub MergeInto { #update this ticket's effective id to the new ticket's id. my ( $id_val, $id_msg ) = $self->__Set( Field => 'EffectiveId', - Value => $NewTicket->Id() + Value => $MergeInto->Id() ); unless ($id_val) { - $RT::Logger->error( - "Couldn't set effective ID for " . $self->Id . ": $id_msg" ); + $RT::Handle->Rollback(); return ( 0, $self->loc("Merge failed. Couldn't set EffectiveId") ); } my ( $status_val, $status_msg ) = $self->__Set( Field => 'Status', Value => 'resolved'); unless ($status_val) { + $RT::Handle->Rollback(); $RT::Logger->error( $self->loc("[_1] couldn't set status to resolved. RT's Database may be inconsistent.", $self) ); + return ( 0, $self->loc("Merge failed. Couldn't set Status") ); } @@ -2767,11 +2757,24 @@ sub MergeInto { my $old_links_to = RT::Links->new($self->CurrentUser); $old_links_to->Limit(FIELD => 'Target', VALUE => $self->URI); + my %old_seen; while (my $link = $old_links_to->Next) { - if ($link->Base eq $NewTicket->URI) { + if (exists $old_seen{$link->Base."-".$link->Type}) { + $link->Delete; + } + elsif ($link->Base eq $MergeInto->URI) { $link->Delete; } else { - $link->SetTarget($NewTicket->URI); + # First, make sure the link doesn't already exist. then move it over. + my $tmp = RT::Link->new($RT::SystemUser); + $tmp->LoadByCols(Base => $link->Base, Type => $link->Type, LocalTarget => $MergeInto->id); + if ($tmp->id) { + $link->Delete; + } else { + $link->SetTarget($MergeInto->URI); + $link->SetLocalTarget($MergeInto->id); + } + $old_seen{$link->Base."-".$link->Type} =1; } } @@ -2780,41 +2783,54 @@ sub MergeInto { $old_links_from->Limit(FIELD => 'Base', VALUE => $self->URI); while (my $link = $old_links_from->Next) { - if ($link->Target eq $NewTicket->URI) { + if (exists $old_seen{$link->Type."-".$link->Target}) { + $link->Delete; + } + if ($link->Target eq $MergeInto->URI) { $link->Delete; } else { - $link->SetBase($NewTicket->URI); + # First, make sure the link doesn't already exist. then move it over. + my $tmp = RT::Link->new($RT::SystemUser); + $tmp->LoadByCols(Target => $link->Target, Type => $link->Type, LocalBase => $MergeInto->id); + if ($tmp->id) { + $link->Delete; + } else { + $link->SetBase($MergeInto->URI); + $link->SetLocalBase($MergeInto->id); + $old_seen{$link->Type."-".$link->Target} =1; + } } } # Update time fields - $NewTicket->SetTimeEstimated(($NewTicket->TimeEstimated || 0) + ($self->TimeEstimated || 0)); - $NewTicket->SetTimeWorked( ($NewTicket->TimeWorked || 0) + ($self->TimeWorked || 0)); - $NewTicket->SetTimeLeft( ($NewTicket->TimeLeft || 0) + ($self->TimeLeft || 0)); + foreach my $type qw(TimeEstimated TimeWorked TimeLeft) { - #add all of this ticket's watchers to that ticket. - my $requestors = $self->Requestors->MembersObj; - while (my $watcher = $requestors->Next) { - $NewTicket->_AddWatcher( Type => 'Requestor', - Silent => 1, - PrincipalId => $watcher->MemberId); - } + my $mutator = "Set$type"; + $MergeInto->$mutator( + ( $MergeInto->$type() || 0 ) + ( $self->$type() || 0 ) ); - my $Ccs = $self->Cc->MembersObj; - while (my $watcher = $Ccs->Next) { - $NewTicket->_AddWatcher( Type => 'Cc', - Silent => 1, - PrincipalId => $watcher->MemberId); } +#add all of this ticket's watchers to that ticket. + foreach my $watcher_type qw(Requestors Cc AdminCc) { + + my $people = $self->$watcher_type->MembersObj; + my $addwatcher_type = $watcher_type; + $addwatcher_type =~ s/s$//; - my $AdminCcs = $self->AdminCc->MembersObj; - while (my $watcher = $AdminCcs->Next) { - $NewTicket->_AddWatcher( Type => 'AdminCc', - Silent => 1, - PrincipalId => $watcher->MemberId); + while ( my $watcher = $people->Next ) { + + my ($val, $msg) = $MergeInto->_AddWatcher( + Type => $addwatcher_type, + Silent => 1, + PrincipalId => $watcher->MemberId + ); + unless ($val) { + $RT::Logger->warning($msg); + } } + } #find all of the tickets that were merged into this ticket. my $old_mergees = new RT::Tickets( $self->CurrentUser ); @@ -2828,15 +2844,16 @@ sub MergeInto { while ( my $ticket = $old_mergees->Next() ) { my ( $val, $msg ) = $ticket->__Set( Field => 'EffectiveId', - Value => $NewTicket->Id() + Value => $MergeInto->Id() ); } #make a new link: this ticket is merged into that other ticket. - $self->AddLink( Type => 'MergedInto', Target => $NewTicket->Id()); + $self->AddLink( Type => 'MergedInto', Target => $MergeInto->Id()); - $NewTicket->_SetLastUpdated; + $MergeInto->_SetLastUpdated; + $RT::Handle->Commit(); return ( 1, $self->loc("Merge Successful") ); } @@ -2904,12 +2921,13 @@ ok ($root->Id, "Loaded the root user"); my $t = RT::Ticket->new($RT::SystemUser); $t->Load(1); $t->SetOwner('root'); -ok ($t->OwnerObj->Name eq 'root' , "Root owns the ticket"); +is ($t->OwnerObj->Name, 'root' , "Root owns the ticket"); $t->Steal(); -ok ($t->OwnerObj->id eq $RT::SystemUser->id , "SystemUser owns the ticket"); +is ($t->OwnerObj->id, $RT::SystemUser->id , "SystemUser owns the ticket"); my $txns = RT::Transactions->new($RT::SystemUser); $txns->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$txns->Limit(FIELD => 'Ticket', VALUE => '1'); +$txns->Limit(FIELD => 'ObjectId', VALUE => '1'); +$txns->Limit(FIELD => 'ObjectType', VALUE => 'RT::Ticket'); my $steal = $txns->First; ok($steal->OldValue == $root->Id , "Stolen from root"); ok($steal->NewValue == $RT::SystemUser->Id , "Stolen by the systemuser"); @@ -3136,14 +3154,14 @@ my $tt = RT::Ticket->new($RT::SystemUser); my ($id, $tid, $msg)= $tt->Create(Queue => 'general', Subject => 'test'); ok($id, $msg); -ok($tt->Status eq 'new', "New ticket is created as new"); +is($tt->Status, 'new', "New ticket is created as new"); ($id, $msg) = $tt->SetStatus('open'); ok($id, $msg); -ok ($msg =~ /open/i, "Status message is correct"); +like($msg, qr/open/i, "Status message is correct"); ($id, $msg) = $tt->SetStatus('resolved'); ok($id, $msg); -ok ($msg =~ /resolved/i, "Status message is correct"); +like($msg, qr/resolved/i, "Status message is correct"); ($id, $msg) = $tt->SetStatus('resolved'); ok(!$id,$msg); @@ -3191,9 +3209,9 @@ sub SetStatus { RecordTransaction => 0 ); } - if ( $args{Status} =~ /^(resolved|rejected|dead)$/ ) { - - #When we resolve a ticket, set the 'Resolved' attribute to now. + #When we close a ticket, set the 'Resolved' attribute to now. + # It's misnamed, but that's just historical. + if ( $self->QueueObj->IsInactiveStatus($args{Status}) ) { $self->_Set( Field => 'Resolved', Value => $now->ISO, RecordTransaction => 0 ); @@ -3203,6 +3221,7 @@ sub SetStatus { my ($val, $msg)= $self->_Set( Field => 'Status', Value => $args{Status}, TimeTaken => 0, + CheckACL => 0, TransactionType => 'Status' ); return($val,$msg); @@ -3295,285 +3314,7 @@ sub Resolve { # }}} -# {{{ Routines dealing with custom fields - - -# {{{ FirstCustomFieldValue - -=item FirstCustomFieldValue FIELD - -Return the content of the first value of CustomField FIELD for this ticket -Takes a field id or name - -=cut - -sub FirstCustomFieldValue { - my $self = shift; - my $field = shift; - my $values = $self->CustomFieldValues($field); - if ($values->First) { - return $values->First->Content; - } else { - return undef; - } - -} - - - -# {{{ CustomFieldValues - -=item CustomFieldValues FIELD - -Return a TicketCustomFieldValues object of all values of CustomField FIELD for this ticket. -Takes a field id or name. - - -=cut - -sub CustomFieldValues { - my $self = shift; - my $field = shift; - - my $cf = RT::CustomField->new($self->CurrentUser); - - if ($field =~ /^\d+$/) { - $cf->LoadById($field); - } elsif ($field) { - $cf->LoadByNameAndQueue(Name => $field, Queue => $self->QueueObj->Id); - unless( $cf->id ) { - $cf->LoadByNameAndQueue(Name => $field, Queue => '0'); - } - } - my $cf_values = RT::TicketCustomFieldValues->new( $self->CurrentUser ); - $cf_values->LimitToCustomField($cf->id) if $cf->id; - $cf_values->LimitToTicket($self->Id()); - $cf_values->OrderBy( FIELD => 'id' ); - - # @values is a CustomFieldValues object; - return ($cf_values); -} - -# }}} - -# {{{ AddCustomFieldValue - -=item AddCustomFieldValue { Field => FIELD, Value => VALUE } - -VALUE should be a string. -FIELD can be a CustomField object, a CustomField ID, or a CustomField Name. - - -Adds VALUE as a value of CustomField FIELD. If this is a single-value custom field, -deletes the old value. -If VALUE isn't a valid value for the custom field, returns -(0, 'Error message' ) otherwise, returns (1, 'Success Message') - -=cut - -sub AddCustomFieldValue { - my $self = shift; - unless ( $self->CurrentUserHasRight('ModifyTicket') ) { - return ( 0, $self->loc("Permission Denied") ); - } - $self->_AddCustomFieldValue(@_); -} - -sub _AddCustomFieldValue { - my $self = shift; - my %args = ( - Field => undef, - Value => undef, - RecordTransaction => 1, - @_ - ); - - my $cf = RT::CustomField->new( $self->CurrentUser ); - if ( UNIVERSAL::isa( $args{'Field'}, "RT::CustomField" ) ) { - $cf->Load( $args{'Field'}->id ); - } - elsif ($args{'Field'} =~ /\D/) { - $cf->LoadByNameAndQueue( Name => $args{'Field'}, Queue => $self->QueueObj->Id ); - } - else { - $cf->Load( $args{'Field'} ); - } - - unless ( $cf->Id ) { - return ( 0, $self->loc("Custom field [_1] not found", $args{'Field'}) ); - } - - # Load up a TicketCustomFieldValues object for this custom field and this ticket - my $values = $cf->ValuesForTicket( $self->id ); - - unless ( $cf->ValidateValue( $args{'Value'} ) ) { - return ( 0, $self->loc("Invalid value for custom field") ); - } - - # If the custom field only accepts a single value, delete the existing - # value and record a "changed from foo to bar" transaction - if ( $cf->SingleValue ) { - - # We need to whack any old values here. In most cases, the custom field should - # only have one value to delete. In the pathalogical case, this custom field - # used to be a multiple and we have many values to whack.... - my $cf_values = $values->Count; - - if ( $cf_values > 1 ) { - my $i = 0; #We want to delete all but the last one, so we can then - # execute the same code to "change" the value from old to new - while ( my $value = $values->Next ) { - $i++; - if ( $i < $cf_values ) { - my $old_value = $value->Content; - my ($val, $msg) = $cf->DeleteValueForTicket(Ticket => $self->Id, Content => $value->Content); - unless ($val) { - return (0,$msg); - } - my ( $TransactionId, $Msg, $TransactionObj ) = - $self->_NewTransaction( - Type => 'CustomField', - Field => $cf->Id, - OldValue => $old_value - ); - } - } - } - - my $old_value; - if (my $value = $cf->ValuesForTicket( $self->Id )->First) { - $old_value = $value->Content(); - return (1) if $old_value eq $args{'Value'}; - } - - my ( $new_value_id, $value_msg ) = $cf->AddValueForTicket( - Ticket => $self->Id, - Content => $args{'Value'} - ); - - unless ($new_value_id) { - return ( 0, - $self->loc("Could not add new custom field value for ticket. [_1] ", - ,$value_msg) ); - } - - my $new_value = RT::TicketCustomFieldValue->new( $self->CurrentUser ); - $new_value->Load($new_value_id); - - # now that adding the new value was successful, delete the old one - if (defined $old_value) { - my ($val, $msg) = $cf->DeleteValueForTicket(Ticket => $self->Id, Content => $old_value); - unless ($val) { - return (0,$msg); - } - } - - if ($args{'RecordTransaction'}) { - my ( $TransactionId, $Msg, $TransactionObj ) = $self->_NewTransaction( - Type => 'CustomField', - Field => $cf->Id, - OldValue => $old_value, - NewValue => $new_value->Content - ); - } - - if ( $old_value eq '' ) { - return ( 1, $self->loc("[_1] [_2] added", $cf->Name, $new_value->Content) ); - } - elsif ( $new_value->Content eq '' ) { - return ( 1, $self->loc("[_1] [_2] deleted", $cf->Name, $old_value) ); - } - else { - return ( 1, $self->loc("[_1] [_2] changed to [_3]", $cf->Name, $old_value, $new_value->Content ) ); - } - - } - - # otherwise, just add a new value and record "new value added" - else { - my ( $new_value_id ) = $cf->AddValueForTicket( - Ticket => $self->Id, - Content => $args{'Value'} - ); - - unless ($new_value_id) { - return ( 0, - $self->loc("Could not add new custom field value for ticket. ")); - } - if ( $args{'RecordTransaction'} ) { - my ( $TransactionId, $Msg, $TransactionObj ) = $self->_NewTransaction( - Type => 'CustomField', - Field => $cf->Id, - NewValue => $args{'Value'} - ); - unless ($TransactionId) { - return ( 0, - $self->loc( "Couldn't create a transaction: [_1]", $Msg ) ); - } - } - return ( 1, $self->loc("[_1] added as a value for [_2]",$args{'Value'}, $cf->Name)); - } - -} - -# }}} - -# {{{ DeleteCustomFieldValue - -=item DeleteCustomFieldValue { Field => FIELD, Value => VALUE } - -Deletes VALUE as a value of CustomField FIELD. - -VALUE can be a string, a CustomFieldValue or a TicketCustomFieldValue. - -If VALUE isn't a valid value for the custom field, returns -(0, 'Error message' ) otherwise, returns (1, 'Success Message') - -=cut - -sub DeleteCustomFieldValue { - my $self = shift; - my %args = ( - Field => undef, - Value => undef, - @_); - - unless ( $self->CurrentUserHasRight('ModifyTicket') ) { - return ( 0, $self->loc("Permission Denied") ); - } - my $cf = RT::CustomField->new( $self->CurrentUser ); - if ( UNIVERSAL::isa( $args{'Field'}, "RT::CustomField" ) ) { - $cf->LoadById( $args{'Field'}->id ); - } - else { - $cf->LoadById( $args{'Field'} ); - } - - unless ( $cf->Id ) { - return ( 0, $self->loc("Custom field not found") ); - } - - - my ($val, $msg) = $cf->DeleteValueForTicket(Ticket => $self->Id, Content => $args{'Value'}); - unless ($val) { - return (0,$msg); - } - my ( $TransactionId, $Msg, $TransactionObj ) = $self->_NewTransaction( - Type => 'CustomField', - Field => $cf->Id, - OldValue => $args{'Value'} - ); - unless($TransactionId) { - return(0, $self->loc("Couldn't create a transaction: [_1]", $Msg)); - } - - return($TransactionId, $self->loc("[_1] is no longer a value for custom field [_2]", $args{'Value'}, $cf->Name)); -} - -# }}} - -# }}} - + # {{{ Actions + Routines dealing with transactions # {{{ sub SetTold and _SetTold @@ -3628,113 +3369,6 @@ sub _SetTold { # }}} -# {{{ sub Transactions - -=head2 Transactions - - Returns an RT::Transactions object of all transactions on this ticket - -=cut - -sub Transactions { - my $self = shift; - - use RT::Transactions; - my $transactions = RT::Transactions->new( $self->CurrentUser ); - - #If the user has no rights, return an empty object - if ( $self->CurrentUserHasRight('ShowTicket') ) { - my $tickets = $transactions->NewAlias('Tickets'); - $transactions->Join( - ALIAS1 => 'main', - FIELD1 => 'Ticket', - ALIAS2 => $tickets, - FIELD2 => 'id' - ); - $transactions->Limit( - ALIAS => $tickets, - FIELD => 'EffectiveId', - VALUE => $self->id() - ); - - # if the user may not see comments do not return them - unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { - $transactions->Limit( - FIELD => 'Type', - OPERATOR => '!=', - VALUE => "Comment", - ENTRYAGGREGATOR => 'AND' - ); - $transactions->Limit( - FIELD => 'Type', - OPERATOR => '!=', - VALUE => "CommentEmailRecord", - ENTRYAGGREGATOR => 'AND' - ); - } - } - - return ($transactions); -} - -# }}} - -# {{{ sub _NewTransaction - -=head2 _NewTransaction PARAMHASH - -Private function to create a new RT::Transaction object for this ticket update - -=cut - -sub _NewTransaction { - my $self = shift; - my %args = ( - TimeTaken => 0, - Type => undef, - OldValue => undef, - NewValue => undef, - Data => undef, - Field => undef, - MIMEObj => undef, - ActivateScrips => 1, - CommitScrips => 1, - @_ - ); - - require RT::Transaction; - my $trans = new RT::Transaction( $self->CurrentUser ); - my ( $transaction, $msg ) = $trans->Create( - Ticket => $self->Id, - TimeTaken => $args{'TimeTaken'}, - Type => $args{'Type'}, - Data => $args{'Data'}, - Field => $args{'Field'}, - NewValue => $args{'NewValue'}, - OldValue => $args{'OldValue'}, - MIMEObj => $args{'MIMEObj'}, - ActivateScrips => $args{'ActivateScrips'}, - CommitScrips => $args{'CommitScrips'}, - ); - - # Rationalize the object since we may have done things to it during the caching. - $self->Load($self->Id); - - $RT::Logger->warning($msg) unless $transaction; - - $self->_SetLastUpdated; - - if ( defined $args{'TimeTaken'} ) { - $self->_UpdateTimeTaken( $args{'TimeTaken'} ); - } - if ( $RT::UseTransactionBatch and $transaction ) { - push @{$self->{_TransactionBatch}}, $trans; - } - return ( $transaction, $msg, $trans ); -} - -# }}} - =head2 TransactionBatch Returns an array reference of all transactions created on this ticket during @@ -3752,6 +3386,11 @@ sub TransactionBatch { sub DESTROY { my $self = shift; + # DESTROY methods need to localize $@, or it may unset it. This + # causes $m->abort to not bubble all of the way up. See perlbug + # http://rt.perl.org/rt3/Ticket/Display.html?id=17650 + local $@; + # The following line eliminates reentrancy. # It protects against the fact that perl doesn't deal gracefully # when an object's refcount is changed in its destructor. @@ -3763,6 +3402,7 @@ sub DESTROY { Stage => 'TransactionBatch', TicketObj => $self, TransactionObj => $batch->[0], + Type => join(',', (map { $_->Type } @{$batch}) ) ); } @@ -3770,9 +3410,9 @@ sub DESTROY { # {{{ PRIVATE UTILITY METHODS. Mostly needed so Ticket can be a DBIx::Record -# {{{ sub _ClassAccessible +# {{{ sub _OverlayAccessible -sub _ClassAccessible { +sub _OverlayAccessible { { EffectiveId => { 'read' => 1, 'write' => 1, 'public' => 1 }, Queue => { 'read' => 1, 'write' => 1 }, @@ -3854,7 +3494,7 @@ sub _Set { OldValue => $Old, TimeTaken => $args{'TimeTaken'}, ); - return ( $Trans, scalar $TransObj->Description ); + return ( $Trans, scalar $TransObj->BriefDescription ); } else { return ( $ret, $msg ); @@ -3972,7 +3612,9 @@ sub HasRight { unless ( ( defined $args{'Principal'} ) and ( ref( $args{'Principal'} ) ) ) { - $RT::Logger->warning("Principal attrib undefined for Ticket::HasRight"); + Carp::cluck; + $RT::Logger->crit("Principal attrib undefined for Ticket::HasRight"); + return(undef); } return ( @@ -3987,6 +3629,103 @@ sub HasRight { # }}} +# {{{ sub Transactions + +=head2 Transactions + + Returns an RT::Transactions object of all transactions on this ticket + +=cut + +sub Transactions { + my $self = shift; + + my $transactions = RT::Transactions->new( $self->CurrentUser ); + + #If the user has no rights, return an empty object + if ( $self->CurrentUserHasRight('ShowTicket') ) { + $transactions->LimitToTicket($self->id); + + # if the user may not see comments do not return them + unless ( $self->CurrentUserHasRight('ShowTicketComments') ) { + $transactions->Limit( + FIELD => 'Type', + OPERATOR => '!=', + VALUE => "Comment" + ); + $transactions->Limit( + FIELD => 'Type', + OPERATOR => '!=', + VALUE => "CommentEmailRecord", + ENTRYAGGREGATOR => 'AND' + ); + + } + } + + return ($transactions); +} + +# }}} + + +# {{{ TransactionCustomFields + +=head2 TransactionCustomFields + + Returns the custom fields that transactions on tickets will ahve. + +=cut + +sub TransactionCustomFields { + my $self = shift; + return $self->QueueObj->TicketTransactionCustomFields; +} + +# }}} + +# {{{ sub CustomFieldValues + +=head2 CustomFieldValues + +# Do name => id mapping (if needed) before falling back to +# RT::Record's CustomFieldValues + +See L<RT::Record> + +=cut + +sub CustomFieldValues { + my $self = shift; + my $field = shift; + unless ( $field =~ /^\d+$/ ) { + my $cf = RT::CustomField->new( $self->CurrentUser ); + $cf->LoadByNameAndQueue( Name => $field, Queue => $self->QueueObj->Id ); + unless ( $cf->id ) { + $cf->LoadByNameAndQueue( Name => $field, Queue => '0' ); + } + $field = $cf->id; + } + return $self->SUPER::CustomFieldValues($field); +} + +# }}} + +# {{{ sub CustomFieldLookupType + +=head2 CustomFieldLookupType + +Returns the RT::Ticket lookup type, which can be passed to +RT::CustomField->Create() via the 'LookupType' hash key. + +=cut + +# }}} + +sub CustomFieldLookupType { + "RT::Queue-RT::Ticket"; +} + 1; =head1 AUTHOR diff --git a/rt/lib/RT/Tickets.pm b/rt/lib/RT/Tickets.pm index 7bf452d9a..0f880e11f 100755 --- a/rt/lib/RT/Tickets.pm +++ b/rt/lib/RT/Tickets.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +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 582e7862a..0e6585c07 100644 --- a/rt/lib/RT/Tickets_Overlay.pm +++ b/rt/lib/RT/Tickets_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} # Major Changes: # - Decimated ProcessRestrictions and broke it into multiple @@ -73,44 +73,51 @@ =begin testing ok (require RT::Tickets); +ok( my $testtickets = RT::Tickets->new( $RT::SystemUser ) ); +ok( $testtickets->LimitStatus( VALUE => 'deleted' ) ); +# Should be zero until 'allow_deleted_search' +ok( $testtickets->Count == 0 ); =end testing =cut + +package RT::Tickets; + use strict; + +package RT::Tickets; + no warnings qw(redefine); use vars qw(@SORTFIELDS); use RT::CustomFields; - # Configuration Tables: # FIELDS is a mapping of searchable Field name, to Type, and other # metadata. -my %FIELDS = - ( Status => ['ENUM'], - Queue => ['ENUM' => 'Queue',], - Type => ['ENUM',], - Creator => ['ENUM' => 'User',], - LastUpdatedBy => ['ENUM' => 'User',], - Owner => ['ENUM' => 'User',], - EffectiveId => ['INT',], - id => ['INT',], - InitialPriority => ['INT',], - FinalPriority => ['INT',], - Priority => ['INT',], - TimeLeft => ['INT',], - TimeWorked => ['INT',], - MemberOf => ['LINK' => To => 'MemberOf', ], - DependsOn => ['LINK' => To => 'DependsOn',], - RefersTo => ['LINK' => To => 'RefersTo',], - HasMember => ['LINK' => From => 'MemberOf',], - DependentOn => ['LINK' => From => 'DependsOn',], - DependedOnBy => ['LINK' => From => 'DependsOn',], - ReferredToBy => ['LINK' => From => 'RefersTo',], -# HasDepender => ['LINK',], -# RelatedTo => ['LINK',], +my %FIELDS = ( + Status => ['ENUM'], + Queue => [ 'ENUM' => 'Queue', ], + Type => [ 'ENUM', ], + Creator => [ 'ENUM' => 'User', ], + LastUpdatedBy => [ 'ENUM' => 'User', ], + Owner => [ 'ENUM' => 'User', ], + EffectiveId => [ 'INT', ], + id => [ 'INT', ], + InitialPriority => [ 'INT', ], + FinalPriority => [ 'INT', ], + Priority => [ 'INT', ], + TimeLeft => [ 'INT', ], + TimeWorked => [ 'INT', ], + MemberOf => [ 'LINK' => To => 'MemberOf', ], + DependsOn => [ 'LINK' => To => 'DependsOn', ], + RefersTo => [ 'LINK' => To => 'RefersTo', ], + HasMember => [ 'LINK' => From => 'MemberOf', ], + DependentOn => [ 'LINK' => From => 'DependsOn', ], + DependedOnBy => [ 'LINK' => From => 'DependsOn', ], + ReferredToBy => [ 'LINK' => From => 'RefersTo', ], Told => ['DATE' => 'Told',], Starts => ['DATE' => 'Starts',], Started => ['DATE' => 'Started',], @@ -126,68 +133,75 @@ my %FIELDS = Requestor => ['WATCHERFIELD' => 'Requestor',], Requestors => ['WATCHERFIELD' => 'Requestor',], Cc => ['WATCHERFIELD' => 'Cc',], - AdminCc => ['WATCHERFIELD' => 'AdminCC',], + AdminCc => ['WATCHERFIELD' => 'AdminCc',], Watcher => ['WATCHERFIELD'], LinkedTo => ['LINKFIELD',], CustomFieldValue =>['CUSTOMFIELD',], CF => ['CUSTOMFIELD',], - ); + Updated => [ 'TRANSDATE', ], + RequestorGroup => [ 'MEMBERSHIPFIELD' => 'Requestor', ], + CCGroup => [ 'MEMBERSHIPFIELD' => 'Cc', ], + AdminCCGroup => [ 'MEMBERSHIPFIELD' => 'AdminCc', ], + WatcherGroup => [ 'MEMBERSHIPFIELD', ], +); # Mapping of Field Type to Function -my %dispatch = - ( ENUM => \&_EnumLimit, - INT => \&_IntLimit, - LINK => \&_LinkLimit, - DATE => \&_DateLimit, - STRING => \&_StringLimit, - TRANSFIELD => \&_TransLimit, - TRANSDATE => \&_TransDateLimit, +my %dispatch = ( + ENUM => \&_EnumLimit, + INT => \&_IntLimit, + LINK => \&_LinkLimit, + DATE => \&_DateLimit, + STRING => \&_StringLimit, + TRANSFIELD => \&_TransLimit, + TRANSDATE => \&_TransDateLimit, WATCHERFIELD => \&_WatcherLimit, - LINKFIELD => \&_LinkFieldLimit, - CUSTOMFIELD => \&_CustomFieldLimit, - ); -my %can_bundle = - ( WATCHERFIELD => "yeps", - ); + MEMBERSHIPFIELD => \&_WatcherMembershipLimit, + LINKFIELD => \&_LinkFieldLimit, + CUSTOMFIELD => \&_CustomFieldLimit, +); +my %can_bundle = ( WATCHERFIELD => "yeps", ); # Default EntryAggregator per type # if you specify OP, you must specify all valid OPs my %DefaultEA = ( - INT => 'AND', - ENUM => { '=' => 'OR', - '!='=> 'AND' - }, - DATE => { '=' => 'OR', - '>='=> 'AND', - '<='=> 'AND', - '>' => 'AND', - '<' => 'AND' - }, - STRING => { '=' => 'OR', - '!='=> 'AND', - 'LIKE'=> 'AND', - 'NOT LIKE' => 'AND' - }, - TRANSFIELD => 'AND', - TRANSDATE => 'AND', - LINK => 'OR', - LINKFIELD => 'AND', - TARGET => 'AND', - BASE => 'AND', - WATCHERFIELD => { '=' => 'OR', - '!='=> 'AND', - 'LIKE'=> 'OR', - 'NOT LIKE' => 'AND' - }, - - CUSTOMFIELD => 'OR', - ); - + INT => 'AND', + ENUM => { + '=' => 'OR', + '!=' => 'AND' + }, + DATE => { + '=' => 'OR', + '>=' => 'AND', + '<=' => 'AND', + '>' => 'AND', + '<' => 'AND' + }, + STRING => { + '=' => 'OR', + '!=' => 'AND', + 'LIKE' => 'AND', + 'NOT LIKE' => 'AND' + }, + TRANSFIELD => 'AND', + TRANSDATE => 'AND', + LINK => 'OR', + LINKFIELD => 'AND', + TARGET => 'AND', + BASE => 'AND', + WATCHERFIELD => { + '=' => 'OR', + '!=' => 'AND', + 'LIKE' => 'OR', + 'NOT LIKE' => 'AND' + }, + + CUSTOMFIELD => 'OR', +); # Helper functions for passing the above lexically scoped tables above # into Tickets_Overlay_SQL. -sub FIELDS { return \%FIELDS } -sub dispatch { return \%dispatch } +sub FIELDS { return \%FIELDS } +sub dispatch { return \%dispatch } sub can_bundle { return \%can_bundle } # Bring in the clowns. @@ -196,10 +210,10 @@ require RT::Tickets_Overlay_SQL; # {{{ sub SortFields @SORTFIELDS = qw(id Status - Queue Subject - Owner Created Due Starts Started - Told - Resolved LastUpdated Priority TimeWorked TimeLeft); + Queue Subject + Owner Created Due Starts Started + Told + Resolved LastUpdated Priority TimeWorked TimeLeft); =head2 SortFields @@ -208,14 +222,12 @@ Returns the list of fields that lists of tickets can easily be sorted by =cut sub SortFields { - my $self = shift; - return(@SORTFIELDS); + my $self = shift; + return (@SORTFIELDS); } - # }}} - # BEGIN SQL STUFF ********************************* =head1 Limit Helper Routines @@ -250,26 +262,27 @@ Meta Data: =cut sub _EnumLimit { - my ($sb,$field,$op,$value,@rest) = @_; + my ( $sb, $field, $op, $value, @rest ) = @_; - # SQL::Statement changes != to <>. (Can we remove this now?) - $op = "!=" if $op eq "<>"; + # SQL::Statement changes != to <>. (Can we remove this now?) + $op = "!=" if $op eq "<>"; - die "Invalid Operation: $op for $field" - unless $op eq "=" or $op eq "!="; + die "Invalid Operation: $op for $field" + unless $op eq "=" or $op eq "!="; - my $meta = $FIELDS{$field}; - if (defined $meta->[1]) { - my $class = "RT::" . $meta->[1]; - my $o = $class->new($sb->CurrentUser); - $o->Load( $value ); - $value = $o->Id; - } - $sb->_SQLLimit( FIELD => $field,, - VALUE => $value, - OPERATOR => $op, - @rest, - ); + my $meta = $FIELDS{$field}; + if ( defined $meta->[1] ) { + my $class = "RT::" . $meta->[1]; + my $o = $class->new( $sb->CurrentUser ); + $o->Load($value); + $value = $o->Id; + } + $sb->_SQLLimit( + FIELD => $field, + VALUE => $value, + OPERATOR => $op, + @rest, + ); } =head2 _IntLimit @@ -283,20 +296,19 @@ Meta Data: =cut sub _IntLimit { - my ($sb,$field,$op,$value,@rest) = @_; + my ( $sb, $field, $op, $value, @rest ) = @_; - die "Invalid Operator $op for $field" - unless $op =~ /^(=|!=|>|<|>=|<=)$/; + die "Invalid Operator $op for $field" + unless $op =~ /^(=|!=|>|<|>=|<=)$/; - $sb->_SQLLimit( - FIELD => $field, - VALUE => $value, - OPERATOR => $op, - @rest, - ); + $sb->_SQLLimit( + FIELD => $field, + VALUE => $value, + OPERATOR => $op, + @rest, + ); } - =head2 _LinkLimit Handle fields which deal with links between tickets. (MemberOf, DependsOn) @@ -308,64 +320,114 @@ Meta Data: =cut sub _LinkLimit { - my ($sb,$field,$op,$value,@rest) = @_; + my ( $sb, $field, $op, $value, @rest ) = @_; - die "Op must be =" - unless $op eq "="; + my $meta = $FIELDS{$field}; + die "Invalid Operator $op for $field" unless $op =~ /^(=|!=|IS)/io; - my $meta = $FIELDS{$field}; - die "Incorrect Meta Data for $field" - unless (defined $meta->[1] and defined $meta->[2]); + die "Incorrect Metadata for $field" + unless ( defined $meta->[1] and defined $meta->[2] ); - $sb->{_sql_linkalias} = $sb->NewAlias ('Links') - unless defined $sb->{_sql_linkalias}; + my $direction = $meta->[1]; - $sb->_OpenParen(); + my $matchfield; + my $linkfield; + my $is_local = 1; + my $is_null = 0; + if ( $direction eq 'To' ) { + $matchfield = "Target"; + $linkfield = "Base"; - $sb->_SQLLimit( - ALIAS => $sb->{_sql_linkalias}, - FIELD => 'Type', - OPERATOR => '=', - VALUE => $meta->[2], - @rest, - ); + } + elsif ( $direction eq 'From' ) { + $linkfield = "Target"; + $matchfield = "Base"; - if ($meta->[1] eq "To") { - my $matchfield = ( $value =~ /^(\d+)$/ ? "LocalTarget" : "Target" ); + } + else { + die "Invalid link direction '$meta->[1]' for $field\n"; + } - $sb->_SQLLimit( - ALIAS => $sb->{_sql_linkalias}, - ENTRYAGGREGATOR => 'AND', - FIELD => $matchfield, - OPERATOR => '=', - VALUE => $value , - ); + if ( $op eq '=' || $op =~ /^is/oi ) { + if ( $value eq '' || $value =~ /^null$/io ) { + $is_null = 1; + } + elsif ( $value =~ /\D/o ) { + $is_local = 0; + } + else { + $is_local = 1; + } + } + +#For doing a left join to find "unlinked tickets" we want to generate a query that looks like this +# SELECT main.* FROM Tickets main +# LEFT JOIN Links Links_1 ON ( (Links_1.Type = 'MemberOf') +# AND(main.id = Links_1.LocalTarget)) +# WHERE ((main.EffectiveId = main.id)) +# AND ((main.Status != 'deleted')) +# AND (Links_1.LocalBase IS NULL); + + if ($is_null) { + my $linkalias = $sb->Join( + TYPE => 'left', + ALIAS1 => 'main', + FIELD1 => 'id', + TABLE2 => 'Links', + FIELD2 => 'Local' . $linkfield + ); - #If we're searching on target, join the base to ticket.id - $sb->_SQLJoin( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, - ALIAS2 => $sb->{_sql_linkalias}, FIELD2 => 'LocalBase'); + $sb->SUPER::Limit( + LEFTJOIN => $linkalias, + FIELD => 'Type', + OPERATOR => '=', + VALUE => $meta->[2], + @rest, + ); - } elsif ( $meta->[1] eq "From" ) { - my $matchfield = ( $value =~ /^(\d+)$/ ? "LocalBase" : "Base" ); + $sb->_SQLLimit( + ALIAS => $linkalias, + ENTRYAGGREGATOR => 'AND', + FIELD => ( $is_local ? "Local$matchfield" : $matchfield ), + OPERATOR => 'IS', + VALUE => 'NULL', + QUOTEVALUE => '0', + ); - $sb->_SQLLimit( - ALIAS => $sb->{_sql_linkalias}, - ENTRYAGGREGATOR => 'AND', - FIELD => $matchfield, - OPERATOR => '=', - VALUE => $value , - ); + } + else { + + $sb->{_sql_linkalias} = $sb->NewAlias('Links') + unless defined $sb->{_sql_linkalias}; - #If we're searching on base, join the target to ticket.id - $sb->_SQLJoin( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, - ALIAS2 => $sb->{_sql_linkalias}, FIELD2 => 'LocalTarget'); + $sb->_OpenParen(); - } else { - die "Invalid link direction '$meta->[1]' for $field\n"; - } + $sb->_SQLLimit( + ALIAS => $sb->{_sql_linkalias}, + FIELD => 'Type', + OPERATOR => '=', + VALUE => $meta->[2], + @rest, + ); + + $sb->_SQLLimit( + ALIAS => $sb->{_sql_linkalias}, + ENTRYAGGREGATOR => 'AND', + FIELD => ( $is_local ? "Local$matchfield" : $matchfield ), + OPERATOR => '=', + VALUE => $value, + ); - $sb->_CloseParen(); + #If we're searching on target, join the base to ticket.id + $sb->_SQLJoin( + ALIAS1 => 'main', + FIELD1 => $sb->{'primary_key'}, + ALIAS2 => $sb->{_sql_linkalias}, + FIELD2 => 'Local' . $linkfield + ); + $sb->_CloseParen(); + } } =head2 _DateLimit @@ -378,64 +440,61 @@ Meta Data: =cut sub _DateLimit { - my ($sb,$field,$op,$value,@rest) = @_; + my ( $sb, $field, $op, $value, @rest ) = @_; - die "Invalid Date Op: $op" - unless $op =~ /^(=|>|<|>=|<=)$/; + die "Invalid Date Op: $op" + unless $op =~ /^(=|>|<|>=|<=)$/; - my $meta = $FIELDS{$field}; - die "Incorrect Meta Data for $field" - unless (defined $meta->[1]); + my $meta = $FIELDS{$field}; + die "Incorrect Meta Data for $field" + unless ( defined $meta->[1] ); - require Time::ParseDate; - use POSIX 'strftime'; + use POSIX 'strftime'; + + my $date = RT::Date->new($sb->CurrentUser); + $date->Set(Format => 'unknown', Value => $value); + my $time = $date->Unix; - # FIXME: Replace me with RT::Date( Type => 'unknown' ...) - my $time = Time::ParseDate::parsedate( $value, - UK => $RT::DateDayBeforeMonth, - PREFER_PAST => $RT::AmbiguousDayInPast, - PREFER_FUTURE => !($RT::AmbiguousDayInPast), - FUZZY => 1 - ); + if ( $op eq "=" ) { - if ($op eq "=") { - # 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. + # 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. - my $daystart = strftime("%Y-%m-%d %H:%M", - gmtime($time - ( $time % 86400 ))); - my $dayend = strftime("%Y-%m-%d %H:%M", - gmtime($time + ( 86399 - $time % 86400 ))); + my $daystart = + strftime( "%Y-%m-%d %H:%M", gmtime( $time - ( $time % 86400 ) ) ); + my $dayend = strftime( "%Y-%m-%d %H:%M", + gmtime( $time + ( 86399 - $time % 86400 ) ) ); - $sb-> _OpenParen; + $sb->_OpenParen; - $sb->_SQLLimit( - FIELD => $meta->[1], - OPERATOR => ">=", - VALUE => $daystart, - @rest, - ); + $sb->_SQLLimit( + FIELD => $meta->[1], + OPERATOR => ">=", + VALUE => $daystart, + @rest, + ); - $sb->_SQLLimit( - FIELD => $meta->[1], - OPERATOR => "<=", - VALUE => $dayend, - @rest, - ENTRYAGGREGATOR => 'AND', - ); + $sb->_SQLLimit( + FIELD => $meta->[1], + OPERATOR => "<=", + VALUE => $dayend, + @rest, + ENTRYAGGREGATOR => 'AND', + ); - $sb-> _CloseParen; + $sb->_CloseParen; - } else { - $value = strftime("%Y-%m-%d %H:%M", gmtime($time)); - $sb->_SQLLimit( - FIELD => $meta->[1], - OPERATOR => $op, - VALUE => $value, - @rest, - ); - } + } + else { + $value = strftime( "%Y-%m-%d %H:%M", gmtime($time) ); + $sb->_SQLLimit( + FIELD => $meta->[1], + OPERATOR => $op, + VALUE => $value, + @rest, + ); + } } =head2 _StringLimit @@ -448,19 +507,19 @@ Meta Data: =cut sub _StringLimit { - my ($sb,$field,$op,$value,@rest) = @_; + my ( $sb, $field, $op, $value, @rest ) = @_; - # FIXME: - # Valid Operators: - # =, !=, LIKE, NOT LIKE + # FIXME: + # Valid Operators: + # =, !=, LIKE, NOT LIKE - $sb->_SQLLimit( - FIELD => $field, - OPERATOR => $op, - VALUE => $value, - CASESENSITIVE => 0, - @rest, - ); + $sb->_SQLLimit( + FIELD => $field, + OPERATOR => $op, + VALUE => $value, + CASESENSITIVE => 0, + @rest, + ); } =head2 _TransDateLimit @@ -474,40 +533,91 @@ Meta Data: =cut +# This routine should really be factored into translimit. sub _TransDateLimit { - my ($sb,$field,$op,$value,@rest) = @_; + my ( $sb, $field, $op, $value, @rest ) = @_; + + # See the comments for TransLimit, they apply here too + + $sb->{_sql_transalias} = $sb->NewAlias('Transactions') + unless defined $sb->{_sql_transalias}; + $sb->{_sql_trattachalias} = $sb->NewAlias('Attachments') + unless defined $sb->{_sql_trattachalias}; + + my $date = RT::Date->new( $sb->CurrentUser ); + $date->Set( Format => 'unknown', Value => $value ); + my $time = $date->Unix; + + $sb->_OpenParen; + if ( $op eq "=" ) { + + # 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. + + my $daystart = strftime( "%Y-%m-%d %H:%M", + gmtime( $time - ( $time % 86400 ) ) ); + my $dayend = strftime( "%Y-%m-%d %H:%M", + gmtime( $time + ( 86399 - $time % 86400 ) ) ); + + $sb->_SQLLimit( + ALIAS => $sb->{_sql_transalias}, + FIELD => 'Created', + OPERATOR => ">=", + VALUE => $daystart, + CASESENSITIVE => 0, + @rest + ); + $sb->_SQLLimit( + ALIAS => $sb->{_sql_transalias}, + FIELD => 'Created', + OPERATOR => "<=", + VALUE => $dayend, + CASESENSITIVE => 0, + @rest, + ENTRYAGGREGATOR => 'AND', + ); - # See the comments for TransLimit, they apply here too + } - $sb->{_sql_transalias} = $sb->NewAlias ('Transactions') - unless defined $sb->{_sql_transalias}; - $sb->{_sql_trattachalias} = $sb->NewAlias ('Attachments') - unless defined $sb->{_sql_trattachalias}; + # not searching for a single day + else { - $sb->_OpenParen; + #Search for the right field + $sb->_SQLLimit( + ALIAS => $sb->{_sql_transalias}, + FIELD => 'Created', + OPERATOR => $op, + VALUE => $value, + CASESENSITIVE => 0, + @rest + ); + } - # Join Transactions To Attachments - $sb->_SQLJoin( ALIAS1 => $sb->{_sql_trattachalias}, FIELD1 => 'TransactionId', - ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'id'); + # Join Transactions To Attachments - # Join Transactions to Tickets - $sb->_SQLJoin( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, # UGH! - ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'Ticket'); + $sb->_SQLJoin( + ALIAS1 => $sb->{_sql_trattachalias}, + FIELD1 => 'TransactionId', + ALIAS2 => $sb->{_sql_transalias}, + FIELD2 => 'id', + ); - my $d = new RT::Date( $sb->CurrentUser ); - $d->Set( Format => 'ISO', Value => $value); - $value = $d->ISO; + # Join Transactions to Tickets + $sb->_SQLJoin( + ALIAS1 => 'main', + FIELD1 => $sb->{'primary_key'}, # UGH! + ALIAS2 => $sb->{_sql_transalias}, + FIELD2 => 'ObjectId' + ); - #Search for the right field - $sb->_SQLLimit(ALIAS => $sb->{_sql_trattachalias}, - FIELD => 'Created', - OPERATOR => $op, - VALUE => $value, - CASESENSITIVE => 0, - @rest - ); + $sb->SUPER::Limit( + ALIAS => $sb->{_sql_transalias}, + FIELD => 'ObjectType', + VALUE => 'RT::Ticket' + ); - $sb->_CloseParen; + $sb->_CloseParen; } =head2 _TransLimit @@ -520,65 +630,81 @@ Meta Data: =cut sub _TransLimit { - # Content, ContentType, Filename - # If only this was this simple. We've got to do something - # complicated here: + # Content, ContentType, Filename + + # If only this was this simple. We've got to do something + # complicated here: - #Basically, we want to make sure that the limits apply to - #the same attachment, rather than just another attachment - #for the same ticket, no matter how many clauses we lump - #on. We put them in TicketAliases so that they get nuked - #when we redo the join. + #Basically, we want to make sure that the limits apply to + #the same attachment, rather than just another attachment + #for the same ticket, no matter how many clauses we lump + #on. We put them in TicketAliases so that they get nuked + #when we redo the join. - # In the SQL, we might have - # (( Content = foo ) or ( Content = bar AND Content = baz )) - # The AND group should share the same Alias. + # In the SQL, we might have + # (( Content = foo ) or ( Content = bar AND Content = baz )) + # The AND group should share the same Alias. - # Actually, maybe it doesn't matter. We use the same alias and it - # works itself out? (er.. different.) + # Actually, maybe it doesn't matter. We use the same alias and it + # works itself out? (er.. different.) - # Steal more from _ProcessRestrictions + # Steal more from _ProcessRestrictions - # FIXME: Maybe look at the previous FooLimit call, and if it was a - # TransLimit and EntryAggregator == AND, reuse the Aliases? + # FIXME: Maybe look at the previous FooLimit call, and if it was a + # TransLimit and EntryAggregator == AND, reuse the Aliases? - # Or better - store the aliases on a per subclause basis - since - # those are going to be the things we want to relate to each other, - # anyway. + # Or better - store the aliases on a per subclause basis - since + # those are going to be the things we want to relate to each other, + # anyway. - # maybe we should not allow certain kinds of aggregation of these - # clauses and do a psuedo regex instead? - the problem is getting - # them all into the same subclause when you have (A op B op C) - the - # way they get parsed in the tree they're in different subclauses. + # maybe we should not allow certain kinds of aggregation of these + # clauses and do a psuedo regex instead? - the problem is getting + # them all into the same subclause when you have (A op B op C) - the + # way they get parsed in the tree they're in different subclauses. - my ($sb,$field,$op,$value,@rest) = @_; + my ( $self, $field, $op, $value, @rest ) = @_; - $sb->{_sql_transalias} = $sb->NewAlias ('Transactions') - unless defined $sb->{_sql_transalias}; - $sb->{_sql_trattachalias} = $sb->NewAlias ('Attachments') - unless defined $sb->{_sql_trattachalias}; + $self->{_sql_transalias} = $self->NewAlias('Transactions') + unless defined $self->{_sql_transalias}; + $self->{_sql_trattachalias} = $self->NewAlias('Attachments') + unless defined $self->{_sql_trattachalias}; - $sb->_OpenParen; + $self->_OpenParen; + + #Search for the right field + $self->_SQLLimit( + ALIAS => $self->{_sql_trattachalias}, + FIELD => $field, + OPERATOR => $op, + VALUE => $value, + CASESENSITIVE => 0, + @rest + ); - #Search for the right field - $sb->_SQLLimit(ALIAS => $sb->{_sql_trattachalias}, - FIELD => $field, - OPERATOR => $op, - VALUE => $value, - CASESENSITIVE => 0, - @rest - ); + $self->_SQLJoin( + ALIAS1 => $self->{_sql_trattachalias}, + FIELD1 => 'TransactionId', + ALIAS2 => $self->{_sql_transalias}, + FIELD2 => 'id' + ); - # Join Transactions To Attachments - $sb->_SQLJoin( ALIAS1 => $sb->{_sql_trattachalias}, FIELD1 => 'TransactionId', - ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'id'); + # Join Transactions to Tickets + $self->_SQLJoin( + ALIAS1 => 'main', + FIELD1 => $self->{'primary_key'}, # Why not use "id" here? + ALIAS2 => $self->{_sql_transalias}, + FIELD2 => 'ObjectId' + ); - # Join Transactions to Tickets - $sb->_SQLJoin( ALIAS1 => 'main', FIELD1 => $sb->{'primary_key'}, # UGH! - ALIAS2 => $sb->{_sql_transalias}, FIELD2 => 'Ticket'); + $self->SUPER::Limit( + ALIAS => $self->{_sql_transalias}, + FIELD => 'ObjectType', + VALUE => 'RT::Ticket', + ENTRYAGGREGATOR => 'AND' + ); - $sb->_CloseParen; + $self->_CloseParen; } @@ -667,12 +793,55 @@ sub _WatcherLimit { $self->_OpenParen; - my $groups = $self->NewAlias('Groups'); - my $groupmembers = $self->NewAlias('CachedGroupMembers'); - my $users = $self->NewAlias('Users'); + # Find out what sort of watcher we're looking for + my $fieldname; + if ( ref $field ) { + $fieldname = $field->[0]->[0]; + } + else { + $fieldname = $field; + } + my $meta = $FIELDS{$fieldname}; + my $type = ( defined $meta->[1] ? $meta->[1] : undef ); + +# We only want _one_ clause for all of requestors, cc, admincc +# It's less flexible than what we used to do, but now it sort of actually works. (no huge cartesian products that hose the db) + my $groups = $self->{ 'watcherlimit_' . ('global') . "_groups" } ||= + $self->NewAlias('Groups'); + my $groupmembers = + $self->{ 'watcherlimit_' . ('global') . "_groupmembers" } ||= + $self->NewAlias('CachedGroupMembers'); + my $users = $self->{ 'watcherlimit_' . ('global') . "_users" } ||= + $self->NewAlias('Users'); + +# Use regular joins instead of SQL joins since we don't want the joins inside ticketsql or we get a huge cartesian product + $self->SUPER::Limit( + ALIAS => $groups, + FIELD => 'Domain', + VALUE => 'RT::Ticket-Role', + ENTRYAGGREGATOR => 'AND' + ); + $self->Join( + ALIAS1 => $groups, + FIELD1 => 'Instance', + ALIAS2 => 'main', + FIELD2 => 'id' + ); + $self->Join( + ALIAS1 => $groups, + FIELD1 => 'id', + ALIAS2 => $groupmembers, + FIELD2 => 'GroupId' + ); + $self->Join( + ALIAS1 => $groupmembers, + FIELD1 => 'MemberId', + ALIAS2 => $users, + FIELD2 => 'id' + ); # If we're looking for multiple watchers of a given type, - # TicketSQL will be handing it to us as an array of cluases in + # TicketSQL will be handing it to us as an array of clauses in # $field if ( ref $field ) { # gross hack $self->_OpenParen; @@ -696,7 +865,93 @@ sub _WatcherLimit { VALUE => $value, OPERATOR => $op, CASESENSITIVE => 0, - %rest, + %rest + ); + } + + $self->_SQLLimit( + ALIAS => $groups, + FIELD => 'Type', + VALUE => $type, + ENTRYAGGREGATOR => 'AND' + ) + if ($type); + + $self->_CloseParen; +} + +=head2 _WatcherMembershipLimit + +Handle watcher membership limits, i.e. whether the watcher belongs to a +specific group or not. + +Meta Data: + 1: Field to query on + +SELECT DISTINCT main.* +FROM + Tickets main, + Groups Groups_1, + CachedGroupMembers CachedGroupMembers_2, + Users Users_3 +WHERE ( + (main.EffectiveId = main.id) +) AND ( + (main.Status != 'deleted') +) AND ( + (main.Type = 'ticket') +) AND ( + ( + (Users_3.EmailAddress = '22') + AND + (Groups_1.Domain = 'RT::Ticket-Role') + AND + (Groups_1.Type = 'RequestorGroup') + ) +) AND + Groups_1.Instance = main.id +AND + Groups_1.id = CachedGroupMembers_2.GroupId +AND + CachedGroupMembers_2.MemberId = Users_3.id +ORDER BY main.id ASC +LIMIT 25 + +=cut + +sub _WatcherMembershipLimit { + my ( $self, $field, $op, $value, @rest ) = @_; + my %rest = @rest; + + $self->_OpenParen; + + my $groups = $self->NewAlias('Groups'); + my $groupmembers = $self->NewAlias('CachedGroupMembers'); + my $users = $self->NewAlias('Users'); + my $memberships = $self->NewAlias('CachedGroupMembers'); + + if ( ref $field ) { # gross hack + my @bundle = @$field; + $self->_OpenParen; + for my $chunk (@bundle) { + ( $field, $op, $value, @rest ) = @$chunk; + $self->_SQLLimit( + ALIAS => $memberships, + FIELD => 'GroupId', + VALUE => $value, + OPERATOR => $op, + @rest, + ); + } + $self->_CloseParen; + } + else { + $self->_SQLLimit( + ALIAS => $memberships, + FIELD => 'GroupId', + VALUE => $value, + OPERATOR => $op, + @rest, ); } @@ -708,7 +963,7 @@ sub _WatcherLimit { ENTRYAGGREGATOR => 'AND' ); - $self->_SQLJoin( + $self->Join( ALIAS1 => $groups, FIELD1 => 'Instance', ALIAS2 => 'main', @@ -730,81 +985,106 @@ sub _WatcherLimit { ); } - $self->_SQLJoin( + $self->Join( ALIAS1 => $groups, FIELD1 => 'id', ALIAS2 => $groupmembers, FIELD2 => 'GroupId' ); - $self->_SQLJoin( + $self->Join( ALIAS1 => $groupmembers, FIELD1 => 'MemberId', ALIAS2 => $users, FIELD2 => 'id' ); + $self->Join( + ALIAS1 => $memberships, + FIELD1 => 'MemberId', + ALIAS2 => $users, + FIELD2 => 'id' + ); + $self->_CloseParen; } sub _LinkFieldLimit { - my $restriction; - my $self; - my $LinkAlias; - my %args; - if ($restriction->{'TYPE'}) { - $self->SUPER::Limit(ALIAS => $LinkAlias, - ENTRYAGGREGATOR => 'AND', - FIELD => 'Type', - OPERATOR => '=', - VALUE => $restriction->{'TYPE'} ); - } - - #If we're trying to limit it to things that are target of - if ($restriction->{'TARGET'}) { - # If the TARGET is an integer that means that we want to look at - # the LocalTarget field. otherwise, we want to look at the - # "Target" field - my ($matchfield); - if ($restriction->{'TARGET'} =~/^(\d+)$/) { - $matchfield = "LocalTarget"; - } else { - $matchfield = "Target"; + my $restriction; + my $self; + my $LinkAlias; + my %args; + if ( $restriction->{'TYPE'} ) { + $self->SUPER::Limit( + ALIAS => $LinkAlias, + ENTRYAGGREGATOR => 'AND', + FIELD => 'Type', + OPERATOR => '=', + VALUE => $restriction->{'TYPE'} + ); } - $self->SUPER::Limit(ALIAS => $LinkAlias, - ENTRYAGGREGATOR => 'AND', - FIELD => $matchfield, - OPERATOR => '=', - VALUE => $restriction->{'TARGET'} ); - #If we're searching on target, join the base to ticket.id - $self->_SQLJoin( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, - ALIAS2 => $LinkAlias, - FIELD2 => 'LocalBase'); - } - #If we're trying to limit it to things that are base of - elsif ($restriction->{'BASE'}) { - # If we're trying to match a numeric link, we want to look at - # LocalBase, otherwise we want to look at "Base" - my ($matchfield); - if ($restriction->{'BASE'} =~/^(\d+)$/) { - $matchfield = "LocalBase"; - } else { - $matchfield = "Base"; + + #If we're trying to limit it to things that are target of + if ( $restriction->{'TARGET'} ) { + + # If the TARGET is an integer that means that we want to look at + # the LocalTarget field. otherwise, we want to look at the + # "Target" field + my ($matchfield); + if ( $restriction->{'TARGET'} =~ /^(\d+)$/ ) { + $matchfield = "LocalTarget"; + } + else { + $matchfield = "Target"; + } + $self->SUPER::Limit( + ALIAS => $LinkAlias, + ENTRYAGGREGATOR => 'AND', + FIELD => $matchfield, + OPERATOR => '=', + VALUE => $restriction->{'TARGET'} + ); + + #If we're searching on target, join the base to ticket.id + $self->_SQLJoin( + ALIAS1 => 'main', + FIELD1 => $self->{'primary_key'}, + ALIAS2 => $LinkAlias, + FIELD2 => 'LocalBase' + ); } - $self->SUPER::Limit(ALIAS => $LinkAlias, - ENTRYAGGREGATOR => 'AND', - FIELD => $matchfield, - OPERATOR => '=', - VALUE => $restriction->{'BASE'} ); - #If we're searching on base, join the target to ticket.id - $self->_SQLJoin( ALIAS1 => 'main', FIELD1 => $self->{'primary_key'}, - ALIAS2 => $LinkAlias, - FIELD2 => 'LocalTarget') - } -} + #If we're trying to limit it to things that are base of + elsif ( $restriction->{'BASE'} ) { + + # If we're trying to match a numeric link, we want to look at + # LocalBase, otherwise we want to look at "Base" + my ($matchfield); + if ( $restriction->{'BASE'} =~ /^(\d+)$/ ) { + $matchfield = "LocalBase"; + } + else { + $matchfield = "Base"; + } + + $self->SUPER::Limit( + ALIAS => $LinkAlias, + ENTRYAGGREGATOR => 'AND', + FIELD => $matchfield, + OPERATOR => '=', + VALUE => $restriction->{'BASE'} + ); + #If we're searching on base, join the target to ticket.id + $self->_SQLJoin( + ALIAS1 => 'main', + FIELD1 => $self->{'primary_key'}, + ALIAS2 => $LinkAlias, + FIELD2 => 'LocalTarget' + ); + } +} =head2 KeywordLimit @@ -816,97 +1096,137 @@ Meta Data: =cut sub _CustomFieldLimit { - my ($self,$_field,$op,$value,@rest) = @_; - - my %rest = @rest; - my $field = $rest{SUBKEY} || die "No field specified"; - - # For our sanity, we can only limit on one queue at a time - my $queue = 0; + my ( $self, $_field, $op, $value, @rest ) = @_; + my %rest = @rest; + my $field = $rest{SUBKEY} || die "No field specified"; - if ($field =~ /^(.+?)\.{(.+)}$/) { - $queue = $1; - $field = $2; - } - $field = $1 if $field =~ /^{(.+)}$/; # trim { } + # For our sanity, we can only limit on one queue at a time + my $queue = 0; - my $q = RT::Queue->new($self->CurrentUser); - $q->Load($queue) if ($queue); - - my $cf; - if ($q->id) { - $cf = $q->CustomField($field); - } - else { - $cf = RT::CustomField->new($self->CurrentUser); - $cf->LoadByNameAndQueue(Queue => '0', Name => $field); + if ( $field =~ /^(.+?)\.{(.+)}$/ ) { + $queue = $1; + $field = $2; } + $field = $1 if $field =~ /^{(.+)}$/; # trim { } +# If we're trying to find custom fields that don't match something, we +# want tickets where the custom field has no value at all. Note that +# we explicitly don't include the "IS NULL" case, since we would +# otherwise end up with a redundant clause. + my $null_columns_ok; + if ( ( $op =~ /^NOT LIKE$/i ) or ( $op eq '!=' ) ) { + $null_columns_ok = 1; + } + my $cfid = 0; + if ($queue) { - my $cfid = $cf->id; - - die "No custom field named $field found\n" unless $cfid; - - - - my $null_columns_ok; + my $q = RT::Queue->new( $self->CurrentUser ); + $q->Load($queue) if ($queue); - my $TicketCFs; - # Perform one Join per CustomField - if ($self->{_sql_keywordalias}{$cfid}) { - $TicketCFs = $self->{_sql_keywordalias}{$cfid}; - } else { - $TicketCFs = $self->{_sql_keywordalias}{$cfid} = - $self->_SQLJoin( TYPE => 'left', - ALIAS1 => 'main', - FIELD1 => 'id', - TABLE2 => 'TicketCustomFieldValues', - FIELD2 => 'Ticket' ); - } + my $cf; + if ( $q->id ) { + $cf = $q->CustomField($field); + } + else { + $cf = RT::CustomField->new( $self->CurrentUser ); + $cf->LoadByNameAndQueue( Queue => '0', Name => $field ); + } - $self->_OpenParen; + $cfid = $cf->id; - $self->_SQLLimit( ALIAS => $TicketCFs, - FIELD => 'Content', - OPERATOR => $op, - VALUE => $value, - QUOTEVALUE => 1, - @rest ); + } + my $TicketCFs; + my $cfkey = $cfid ? $cfid : "$queue.$field"; - # If we're trying to find custom fields that don't match something, we want tickets - # where the custom field has no value at all + # Perform one Join per CustomField + if ( $self->{_sql_object_cf_alias}{$cfkey} ) { + $TicketCFs = $self->{_sql_object_cf_alias}{$cfkey}; + } + else { + if ($cfid) { + $TicketCFs = $self->{_sql_object_cf_alias}{$cfkey} = $self->Join( + TYPE => 'left', + ALIAS1 => 'main', + FIELD1 => 'id', + TABLE2 => 'ObjectCustomFieldValues', + FIELD2 => 'ObjectId', + ); + $self->SUPER::Limit( + LEFTJOIN => $TicketCFs, + FIELD => 'CustomField', + VALUE => $cfid, + ENTRYAGGREGATOR => 'AND' + ); + } else { + my $cfalias = $self->Join( + TYPE => 'left', + EXPRESSION => "'$field'", + TABLE2 => 'CustomFields', + FIELD2 => 'Name', + ); - if ( ($op =~ /^IS$/i) || ($op =~ /^NOT LIKE$/i) || ( $op eq '!=' ) ) { - $null_columns_ok = 1; - } - + $TicketCFs = $self->{_sql_object_cf_alias}{$cfkey} = $self->Join( + TYPE => 'left', + ALIAS1 => $cfalias, + FIELD1 => 'id', + TABLE2 => 'ObjectCustomFieldValues', + FIELD2 => 'CustomField', + ); + $self->SUPER::Limit( + LEFTJOIN => $TicketCFs, + FIELD => 'ObjectId', + VALUE => 'main.id', + QUOTEVALUE => 0, + ENTRYAGGREGATOR => 'AND', + ); + } + $self->SUPER::Limit( + LEFTJOIN => $TicketCFs, + FIELD => 'ObjectType', + VALUE => ref( $self->NewItem ) + , # we want a single item, not a collection + ENTRYAGGREGATOR => 'AND' + ); + $self->SUPER::Limit( + LEFTJOIN => $TicketCFs, + FIELD => 'Disabled', + OPERATOR => '=', + VALUE => '0', + ENTRYAGGREGATOR => 'AND'); + } - if ( $null_columns_ok && $op !~ /IS/i && uc $value ne "NULL") { - $self->_SQLLimit( ALIAS => $TicketCFs, - FIELD => 'Content', - OPERATOR => 'IS', - VALUE => 'NULL', - QUOTEVALUE => 0, - ENTRYAGGREGATOR => 'OR', ); - } + $self->_OpenParen if ($null_columns_ok); - $self->_SQLLimit( LEFTJOIN => $TicketCFs, - FIELD => 'CustomField', - VALUE => $cfid, - ENTRYAGGREGATOR => 'OR' ); + $self->_SQLLimit( + ALIAS => $TicketCFs, + FIELD => 'Content', + OPERATOR => $op, + VALUE => $value, + QUOTEVALUE => 1, + @rest + ); + if ($null_columns_ok) { + $self->_SQLLimit( + ALIAS => $TicketCFs, + FIELD => 'Content', + OPERATOR => 'IS', + VALUE => 'NULL', + QUOTEVALUE => 0, + ENTRYAGGREGATOR => 'OR', + ); + } + $self->_CloseParen if ($null_columns_ok); - $self->_CloseParen; } - # End Helper Functions # End of SQL Stuff ------------------------------------------------- @@ -921,33 +1241,35 @@ Takes a paramhash with the fields FIELD, OPERATOR, VALUE and DESCRIPTION Generally best called from LimitFoo methods =cut + sub Limit { my $self = shift; - my %args = ( FIELD => undef, - OPERATOR => '=', - VALUE => undef, - DESCRIPTION => undef, - @_ - ); - $args{'DESCRIPTION'} = $self->loc( - "[_1] [_2] [_3]", $args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'} - ) if (!defined $args{'DESCRIPTION'}) ; + my %args = ( + FIELD => undef, + OPERATOR => '=', + VALUE => undef, + DESCRIPTION => undef, + @_ + ); + $args{'DESCRIPTION'} = $self->loc( "[_1] [_2] [_3]", + $args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'} ) + if ( !defined $args{'DESCRIPTION'} ); my $index = $self->_NextIndex; - #make the TicketRestrictions hash the equivalent of whatever we just passed in; + #make the TicketRestrictions hash the equivalent of whatever we just passed in; - %{$self->{'TicketRestrictions'}{$index}} = %args; + %{ $self->{'TicketRestrictions'}{$index} } = %args; $self->{'RecalcTicketLimits'} = 1; - # If we're looking at the effective id, we don't want to append the other clause - # which limits us to tickets where id = effective id - if ($args{'FIELD'} eq 'EffectiveId') { +# If we're looking at the effective id, we don't want to append the other clause +# which limits us to tickets where id = effective id + if ( $args{'FIELD'} eq 'EffectiveId' ) { $self->{'looking_at_effective_id'} = 1; } - if ($args{'FIELD'} eq 'Type') { + if ( $args{'FIELD'} eq 'Type' ) { $self->{'looking_at_type'} = 1; } @@ -956,9 +1278,6 @@ sub Limit { # }}} - - - =head2 FreezeLimits Returns a frozen string suitable for handing back to ThawLimits. @@ -966,18 +1285,18 @@ Returns a frozen string suitable for handing back to ThawLimits. =cut sub _FreezeThawKeys { - 'TicketRestrictions', - 'restriction_index', - 'looking_at_effective_id', - 'looking_at_type' + 'TicketRestrictions', 'restriction_index', 'looking_at_effective_id', + 'looking_at_type'; } # {{{ sub FreezeLimits sub FreezeLimits { - my $self = shift; - require FreezeThaw; - return (FreezeThaw::freeze(@{$self}{$self->_FreezeThawKeys})); + my $self = shift; + require Storable; + require MIME::Base64; + MIME::Base64::base64_encode( + Storable::freeze( \@{$self}{ $self->_FreezeThawKeys } ) ); } # }}} @@ -988,25 +1307,26 @@ Take a frozen Limits string generated by FreezeLimits and make this tickets object have that set of limits. =cut + # {{{ sub ThawLimits sub ThawLimits { - my $self = shift; - my $in = shift; - - #if we don't have $in, get outta here. - return undef unless ($in); + my $self = shift; + my $in = shift; + + #if we don't have $in, get outta here. + return undef unless ($in); + + $self->{'RecalcTicketLimits'} = 1; + + require Storable; + require MIME::Base64; - $self->{'RecalcTicketLimits'} = 1; + #We don't need to die if the thaw fails. + @{$self}{ $self->_FreezeThawKeys } = + eval { @{ Storable::thaw( MIME::Base64::base64_decode($in) ) }; }; - require FreezeThaw; - - #We don't need to die if the thaw fails. - - eval { - @{$self}{$self->_FreezeThawKeys} = FreezeThaw::thaw($in); - }; - $RT::Logger->error( $@ ) if $@; + $RT::Logger->error($@) if $@; } @@ -1027,16 +1347,18 @@ VALUE is a queue id or Name. sub LimitQueue { my $self = shift; - my %args = (VALUE => undef, - OPERATOR => '=', - @_); + my %args = ( + VALUE => undef, + OPERATOR => '=', + @_ + ); #TODO VALUE should also take queue names and queue objects #TODO FIXME why are we canonicalizing to name, not id, robrt? - if ($args{VALUE} =~ /^\d+$/) { - my $queue = new RT::Queue($self->CurrentUser); - $queue->Load($args{'VALUE'}); - $args{VALUE} = $queue->Name; + if ( $args{VALUE} =~ /^\d+$/ ) { + my $queue = new RT::Queue( $self->CurrentUser ); + $queue->Load( $args{'VALUE'} ); + $args{VALUE} = $queue->Name; } # What if they pass in an Id? Check for isNum() and convert to @@ -1044,15 +1366,16 @@ sub LimitQueue { #TODO check for a valid queue here - $self->Limit (FIELD => 'Queue', - VALUE => $args{VALUE}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Queue'), $args{'OPERATOR'}, $args{VALUE}, - ), - ); + $self->Limit( + FIELD => 'Queue', + VALUE => $args{VALUE}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => + join( ' ', $self->loc('Queue'), $args{'OPERATOR'}, $args{VALUE}, ), + ); } + # }}} # {{{ sub LimitStatus @@ -1063,19 +1386,27 @@ Takes a paramhash with the fields OPERATOR and VALUE. OPERATOR is one of = or !=. VALUE is a status. +RT adds Status != 'deleted' until object has +allow_deleted_search internal property set. +$tickets->{'allow_deleted_search'} = 1; +$tickets->LimitStatus( VALUE => 'deleted' ); + =cut sub LimitStatus { my $self = shift; - my %args = ( OPERATOR => '=', - @_); - $self->Limit (FIELD => 'Status', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Status'), $args{'OPERATOR'}, $self->loc($args{'VALUE'}) - ), - ); + my %args = ( + OPERATOR => '=', + @_ + ); + $self->Limit( + FIELD => 'Status', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( ' ', + $self->loc('Status'), $args{'OPERATOR'}, + $self->loc( $args{'VALUE'} ) ), + ); } # }}} @@ -1117,16 +1448,18 @@ VALUE is a string to search for in the type of the ticket. sub LimitType { my $self = shift; - my %args = (OPERATOR => '=', - VALUE => undef, - @_); - $self->Limit (FIELD => 'Type', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Type'), $args{'OPERATOR'}, $args{'Limit'}, - ), - ); + my %args = ( + OPERATOR => '=', + VALUE => undef, + @_ + ); + $self->Limit( + FIELD => 'Type', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => + join( ' ', $self->loc('Type'), $args{'OPERATOR'}, $args{'Limit'}, ), + ); } # }}} @@ -1148,13 +1481,14 @@ VALUE is a string to search for in the subject of the ticket. sub LimitSubject { my $self = shift; my %args = (@_); - $self->Limit (FIELD => 'Subject', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Subject'), $args{'OPERATOR'}, $args{'VALUE'}, - ), - ); + $self->Limit( + FIELD => 'Subject', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( + ' ', $self->loc('Subject'), $args{'OPERATOR'}, $args{'VALUE'}, + ), + ); } # }}} @@ -1176,16 +1510,18 @@ VALUE is a ticket Id to search for sub LimitId { my $self = shift; - my %args = (OPERATOR => '=', - @_); + my %args = ( + OPERATOR => '=', + @_ + ); - $self->Limit (FIELD => 'id', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Id'), $args{'OPERATOR'}, $args{'VALUE'}, - ), - ); + $self->Limit( + FIELD => 'id', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => + join( ' ', $self->loc('Id'), $args{'OPERATOR'}, $args{'VALUE'}, ), + ); } # }}} @@ -1203,13 +1539,14 @@ VALUE is a value to match the ticket\'s priority against sub LimitPriority { my $self = shift; my %args = (@_); - $self->Limit (FIELD => 'Priority', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Priority'), $args{'OPERATOR'}, $args{'VALUE'}, - ), - ); + $self->Limit( + FIELD => 'Priority', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( ' ', + $self->loc('Priority'), + $args{'OPERATOR'}, $args{'VALUE'}, ), + ); } # }}} @@ -1228,13 +1565,14 @@ VALUE is a value to match the ticket\'s initial priority against sub LimitInitialPriority { my $self = shift; my %args = (@_); - $self->Limit (FIELD => 'InitialPriority', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Initial Priority'), $args{'OPERATOR'}, $args{'VALUE'}, - ), - ); + $self->Limit( + FIELD => 'InitialPriority', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( ' ', + $self->loc('Initial Priority'), $args{'OPERATOR'}, + $args{'VALUE'}, ), + ); } # }}} @@ -1252,13 +1590,14 @@ VALUE is a value to match the ticket\'s final priority against sub LimitFinalPriority { my $self = shift; my %args = (@_); - $self->Limit (FIELD => 'FinalPriority', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Final Priority'), $args{'OPERATOR'}, $args{'VALUE'}, - ), - ); + $self->Limit( + FIELD => 'FinalPriority', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( ' ', + $self->loc('Final Priority'), + $args{'OPERATOR'}, $args{'VALUE'}, ), + ); } # }}} @@ -1276,13 +1615,14 @@ VALUE is a value to match the ticket's TimeWorked attribute sub LimitTimeWorked { my $self = shift; my %args = (@_); - $self->Limit (FIELD => 'TimeWorked', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Time worked'), $args{'OPERATOR'}, $args{'VALUE'}, - ), - ); + $self->Limit( + FIELD => 'TimeWorked', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( ' ', + $self->loc('Time worked'), + $args{'OPERATOR'}, $args{'VALUE'}, ), + ); } # }}} @@ -1300,13 +1640,14 @@ VALUE is a value to match the ticket's TimeLeft attribute sub LimitTimeLeft { my $self = shift; my %args = (@_); - $self->Limit (FIELD => 'TimeLeft', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Time left'), $args{'OPERATOR'}, $args{'VALUE'}, - ), - ); + $self->Limit( + FIELD => 'TimeLeft', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( ' ', + $self->loc('Time left'), + $args{'OPERATOR'}, $args{'VALUE'}, ), + ); } # }}} @@ -1324,16 +1665,18 @@ OPERATOR is one of =, LIKE, NOT LIKE or !=. VALUE is a string to search for in the body of the ticket =cut + sub LimitContent { my $self = shift; my %args = (@_); - $self->Limit (FIELD => 'Content', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Ticket content'), $args{'OPERATOR'}, $args{'VALUE'}, - ), - ); + $self->Limit( + FIELD => 'Content', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( ' ', + $self->loc('Ticket content'), + $args{'OPERATOR'}, $args{'VALUE'}, ), + ); } # }}} @@ -1347,16 +1690,18 @@ OPERATOR is one of =, LIKE, NOT LIKE or !=. VALUE is a string to search for in the body of the ticket =cut + sub LimitFilename { my $self = shift; my %args = (@_); - $self->Limit (FIELD => 'Filename', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Attachment filename'), $args{'OPERATOR'}, $args{'VALUE'}, - ), - ); + $self->Limit( + FIELD => 'Filename', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( ' ', + $self->loc('Attachment filename'), $args{'OPERATOR'}, + $args{'VALUE'}, ), + ); } # }}} @@ -1373,14 +1718,16 @@ VALUE is a content type to search ticket attachments for sub LimitContentType { my $self = shift; my %args = (@_); - $self->Limit (FIELD => 'ContentType', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Ticket content type'), $args{'OPERATOR'}, $args{'VALUE'}, - ), - ); + $self->Limit( + FIELD => 'ContentType', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => join( ' ', + $self->loc('Ticket content type'), $args{'OPERATOR'}, + $args{'VALUE'}, ), + ); } + # }}} # }}} @@ -1399,19 +1746,22 @@ VALUE is a user id. sub LimitOwner { my $self = shift; - my %args = ( OPERATOR => '=', - @_); + my %args = ( + OPERATOR => '=', + @_ + ); + + my $owner = new RT::User( $self->CurrentUser ); + $owner->Load( $args{'VALUE'} ); - my $owner = new RT::User($self->CurrentUser); - $owner->Load($args{'VALUE'}); # FIXME: check for a valid $owner - $self->Limit (FIELD => 'Owner', - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - DESCRIPTION => join( - ' ', $self->loc('Owner'), $args{'OPERATOR'}, $owner->Name(), - ), - ); + $self->Limit( + FIELD => 'Owner', + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + DESCRIPTION => + join( ' ', $self->loc('Owner'), $args{'OPERATOR'}, $owner->Name(), ), + ); } @@ -1421,7 +1771,6 @@ sub LimitOwner { # {{{ sub LimitWatcher - =head2 LimitWatcher Takes a paramhash with the fields OPERATOR, TYPE and VALUE. @@ -1440,44 +1789,46 @@ $t1->Create(Queue => 'general', Subject => "LimitWatchers test", Requestors => \ sub LimitWatcher { my $self = shift; - my %args = ( OPERATOR => '=', - VALUE => undef, - TYPE => undef, - @_); - + my %args = ( + OPERATOR => '=', + VALUE => undef, + TYPE => undef, + @_ + ); #build us up a description - my ($watcher_type, $desc); - if ($args{'TYPE'}) { - $watcher_type = $args{'TYPE'}; + my ( $watcher_type, $desc ); + if ( $args{'TYPE'} ) { + $watcher_type = $args{'TYPE'}; } else { - $watcher_type = "Watcher"; + $watcher_type = "Watcher"; } - $self->Limit (FIELD => $watcher_type, - VALUE => $args{'VALUE'}, - OPERATOR => $args{'OPERATOR'}, - TYPE => $args{'TYPE'}, - DESCRIPTION => join( - ' ', $self->loc($watcher_type), $args{'OPERATOR'}, $args{'VALUE'}, - ), - ); + $self->Limit( + FIELD => $watcher_type, + VALUE => $args{'VALUE'}, + OPERATOR => $args{'OPERATOR'}, + TYPE => $args{'TYPE'}, + DESCRIPTION => join( ' ', + $self->loc($watcher_type), + $args{'OPERATOR'}, $args{'VALUE'}, ), + ); } - sub LimitRequestor { my $self = shift; my %args = (@_); - my ($package, $filename, $line) = caller; - $RT::Logger->error("Tickets->LimitRequestor is deprecated. please rewrite call at $package - $filename: $line"); - $self->LimitWatcher(TYPE => 'Requestor', @_); + my ( $package, $filename, $line ) = caller; + $RT::Logger->error( +"Tickets->LimitRequestor is deprecated. please rewrite call at $package - $filename: $line" + ); + $self->LimitWatcher( TYPE => 'Requestor', @_ ); } # }}} - # }}} # }}} @@ -1501,23 +1852,25 @@ TARGET is the id or URI of the TARGET of the link sub LimitLinkedTo { my $self = shift; my %args = ( - TICKET => undef, - TARGET => undef, - TYPE => undef, - @_); + TICKET => undef, + TARGET => undef, + TYPE => undef, + @_ + ); $self->Limit( - FIELD => 'LinkedTo', - BASE => undef, - TARGET => ($args{'TARGET'} || $args{'TICKET'}), - TYPE => $args{'TYPE'}, - DESCRIPTION => $self->loc( - "Tickets [_1] by [_2]", $self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'}) - ), - ); + FIELD => 'LinkedTo', + BASE => undef, + TARGET => ( $args{'TARGET'} || $args{'TICKET'} ), + TYPE => $args{'TYPE'}, + DESCRIPTION => $self->loc( + "Tickets [_1] by [_2]", + $self->loc( $args{'TYPE'} ), + ( $args{'TARGET'} || $args{'TICKET'} ) + ), + ); } - # }}} # {{{ LimitLinkedFrom @@ -1536,62 +1889,71 @@ BASE is the id or URI of the BASE of the link sub LimitLinkedFrom { my $self = shift; - my %args = ( BASE => undef, - TICKET => undef, - TYPE => undef, - @_); + my %args = ( + BASE => undef, + TICKET => undef, + TYPE => undef, + @_ + ); # translate RT2 From/To naming to RT3 TicketSQL naming my %fromToMap = qw(DependsOn DependentOn - MemberOf HasMember - RefersTo ReferredToBy); + MemberOf HasMember + RefersTo ReferredToBy); my $type = $args{'TYPE'}; - $type = $fromToMap{$type} if exists($fromToMap{$type}); + $type = $fromToMap{$type} if exists( $fromToMap{$type} ); - $self->Limit( FIELD => 'LinkedTo', - TARGET => undef, - BASE => ($args{'BASE'} || $args{'TICKET'}), - TYPE => $type, - DESCRIPTION => $self->loc( - "Tickets [_1] [_2]", $self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'}) - ), - ); + $self->Limit( + FIELD => 'LinkedTo', + TARGET => undef, + BASE => ( $args{'BASE'} || $args{'TICKET'} ), + TYPE => $type, + DESCRIPTION => $self->loc( + "Tickets [_1] [_2]", + $self->loc( $args{'TYPE'} ), + ( $args{'BASE'} || $args{'TICKET'} ) + ), + ); } - # }}} # {{{ LimitMemberOf sub LimitMemberOf { - my $self = shift; + my $self = shift; my $ticket_id = shift; - $self->LimitLinkedTo ( TARGET=> "$ticket_id", - TYPE => 'MemberOf', - ); + $self->LimitLinkedTo( + TARGET => "$ticket_id", + TYPE => 'MemberOf', + ); } + # }}} # {{{ LimitHasMember sub LimitHasMember { - my $self = shift; - my $ticket_id =shift; - $self->LimitLinkedFrom ( BASE => "$ticket_id", - TYPE => 'HasMember', - ); + my $self = shift; + my $ticket_id = shift; + $self->LimitLinkedFrom( + BASE => "$ticket_id", + TYPE => 'HasMember', + ); } + # }}} # {{{ LimitDependsOn sub LimitDependsOn { - my $self = shift; + my $self = shift; my $ticket_id = shift; - $self->LimitLinkedTo ( TARGET => "$ticket_id", - TYPE => 'DependsOn', - ); + $self->LimitLinkedTo( + TARGET => "$ticket_id", + TYPE => 'DependsOn', + ); } @@ -1600,25 +1962,26 @@ sub LimitDependsOn { # {{{ LimitDependedOnBy sub LimitDependedOnBy { - my $self = shift; + my $self = shift; my $ticket_id = shift; - $self->LimitLinkedFrom ( BASE => "$ticket_id", - TYPE => 'DependentOn', - ); + $self->LimitLinkedFrom( + BASE => "$ticket_id", + TYPE => 'DependentOn', + ); } # }}} - # {{{ LimitRefersTo sub LimitRefersTo { - my $self = shift; + my $self = shift; my $ticket_id = shift; - $self->LimitLinkedTo ( TARGET => "$ticket_id", - TYPE => 'RefersTo', - ); + $self->LimitLinkedTo( + TARGET => "$ticket_id", + TYPE => 'RefersTo', + ); } @@ -1627,11 +1990,12 @@ sub LimitRefersTo { # {{{ LimitReferredToBy sub LimitReferredToBy { - my $self = shift; + my $self = shift; my $ticket_id = shift; - $self->LimitLinkedFrom ( BASE=> "$ticket_id", - TYPE => 'ReferredTo', - ); + $self->LimitLinkedFrom( + BASE => "$ticket_id", + TYPE => 'ReferredToBy', + ); } @@ -1659,56 +2023,64 @@ the need to pass in a FIELD argument. sub LimitDate { my $self = shift; my %args = ( - FIELD => undef, - VALUE => undef, - OPERATOR => undef, + FIELD => undef, + VALUE => undef, + OPERATOR => undef, - @_); + @_ + ); #Set the description if we didn't get handed it above - unless ($args{'DESCRIPTION'} ) { - $args{'DESCRIPTION'} = $args{'FIELD'} . " " .$args{'OPERATOR'}. " ". $args{'VALUE'} . " GMT" + unless ( $args{'DESCRIPTION'} ) { + $args{'DESCRIPTION'} = + $args{'FIELD'} . " " + . $args{'OPERATOR'} . " " + . $args{'VALUE'} . " GMT"; } - $self->Limit (%args); + $self->Limit(%args); } # }}} - - - sub LimitCreated { my $self = shift; - $self->LimitDate( FIELD => 'Created', @_); + $self->LimitDate( FIELD => 'Created', @_ ); } + sub LimitDue { my $self = shift; - $self->LimitDate( FIELD => 'Due', @_); + $self->LimitDate( FIELD => 'Due', @_ ); } + sub LimitStarts { my $self = shift; - $self->LimitDate( FIELD => 'Starts', @_); + $self->LimitDate( FIELD => 'Starts', @_ ); } + sub LimitStarted { my $self = shift; - $self->LimitDate( FIELD => 'Started', @_); + $self->LimitDate( FIELD => 'Started', @_ ); } + sub LimitResolved { my $self = shift; - $self->LimitDate( FIELD => 'Resolved', @_); + $self->LimitDate( FIELD => 'Resolved', @_ ); } + sub LimitTold { my $self = shift; - $self->LimitDate( FIELD => 'Told', @_); + $self->LimitDate( FIELD => 'Told', @_ ); } + sub LimitLastUpdated { my $self = shift; - $self->LimitDate( FIELD => 'LastUpdated', @_); + $self->LimitDate( FIELD => 'LastUpdated', @_ ); } + # # {{{ sub LimitTransactionDate @@ -1725,21 +2097,25 @@ VALUE is a date and time in ISO format in GMT sub LimitTransactionDate { my $self = shift; my %args = ( - FIELD => 'TransactionDate', - VALUE => undef, - OPERATOR => undef, + FIELD => 'TransactionDate', + VALUE => undef, + OPERATOR => undef, - @_); + @_ + ); # <20021217042756.GK28744@pallas.fsck.com> # "Kill It" - Jesse. #Set the description if we didn't get handed it above - unless ($args{'DESCRIPTION'} ) { - $args{'DESCRIPTION'} = $args{'FIELD'} . " " .$args{'OPERATOR'}. " ". $args{'VALUE'} . " GMT" + unless ( $args{'DESCRIPTION'} ) { + $args{'DESCRIPTION'} = + $args{'FIELD'} . " " + . $args{'OPERATOR'} . " " + . $args{'VALUE'} . " GMT"; } - $self->Limit (%args); + $self->Limit(%args); } @@ -1756,8 +2132,7 @@ Takes a paramhash of key/value pairs with the following keys: =over 4 -=item CUSTOMFIELD - CustomField name or id. If a name is passed, an additional -parameter QUEUE may also be passed to distinguish the custom field. +=item CUSTOMFIELD - CustomField name or id. If a name is passed, an additional parameter QUEUE may also be passed to distinguish the custom field. =item OPERATOR - The usual Limit operators @@ -1769,57 +2144,67 @@ parameter QUEUE may also be passed to distinguish the custom field. sub LimitCustomField { my $self = shift; - my %args = ( VALUE => undef, - CUSTOMFIELD => undef, - OPERATOR => '=', - DESCRIPTION => undef, - FIELD => 'CustomFieldValue', - QUOTEVALUE => 1, - @_ ); + my %args = ( + VALUE => undef, + CUSTOMFIELD => undef, + OPERATOR => '=', + DESCRIPTION => undef, + FIELD => 'CustomFieldValue', + QUOTEVALUE => 1, + @_ + ); my $CF = RT::CustomField->new( $self->CurrentUser ); - if ( $args{CUSTOMFIELD} =~ /^\d+$/) { - $CF->Load( $args{CUSTOMFIELD} ); + if ( $args{CUSTOMFIELD} =~ /^\d+$/ ) { + $CF->Load( $args{CUSTOMFIELD} ); } else { - $CF->LoadByNameAndQueue( Name => $args{CUSTOMFIELD}, Queue => $args{QUEUE} ); - $args{CUSTOMFIELD} = $CF->Id; + $CF->LoadByNameAndQueue( + Name => $args{CUSTOMFIELD}, + Queue => $args{QUEUE} + ); + $args{CUSTOMFIELD} = $CF->Id; } #If we are looking to compare with a null value. if ( $args{'OPERATOR'} =~ /^is$/i ) { - $args{'DESCRIPTION'} ||= $self->loc("Custom field [_1] has no value.", $CF->Name); + $args{'DESCRIPTION'} ||= + $self->loc( "Custom field [_1] has no value.", $CF->Name ); } elsif ( $args{'OPERATOR'} =~ /^is not$/i ) { - $args{'DESCRIPTION'} ||= $self->loc("Custom field [_1] has a value.", $CF->Name); + $args{'DESCRIPTION'} ||= + $self->loc( "Custom field [_1] has a value.", $CF->Name ); } # if we're not looking to compare with a null value else { - $args{'DESCRIPTION'} ||= $self->loc("Custom field [_1] [_2] [_3]", $CF->Name , $args{OPERATOR} , $args{VALUE}); + $args{'DESCRIPTION'} ||= $self->loc( "Custom field [_1] [_2] [_3]", + $CF->Name, $args{OPERATOR}, $args{VALUE} ); } my $q = ""; - if ($CF->Queue) { - my $qo = new RT::Queue( $self->CurrentUser ); - $qo->load( $CF->Queue ); - $q = $qo->Name; + if ( $CF->Queue ) { + my $qo = new RT::Queue( $self->CurrentUser ); + $qo->load( $CF->Queue ); + $q = $qo->Name; } my @rest; @rest = ( ENTRYAGGREGATOR => 'AND' ) - if ($CF->Type eq 'SelectMultiple'); - - $self->Limit( VALUE => $args{VALUE}, - FIELD => "CF.".( $q - ? $q . ".{" . $CF->Name . "}" - : $CF->Name - ), - OPERATOR => $args{OPERATOR}, - CUSTOMFIELD => 1, - @rest, - ); + if ( $CF->Type eq 'SelectMultiple' ); + $self->Limit( + VALUE => $args{VALUE}, + FIELD => "CF." + . ( + $q + ? $q . ".{" . $CF->Name . "}" + : $CF->Name + ), + OPERATOR => $args{OPERATOR}, + CUSTOMFIELD => 1, + @rest, + ); $self->{'RecalcTicketLimits'} = 1; } @@ -1827,7 +2212,6 @@ sub LimitCustomField { # }}} # }}} - # {{{ sub _NextIndex =head2 _NextIndex @@ -1838,8 +2222,9 @@ Keep track of the counter for the array of restrictions sub _NextIndex { my $self = shift; - return ($self->{'restriction_index'}++); + return ( $self->{'restriction_index'}++ ); } + # }}} # }}} @@ -1847,14 +2232,14 @@ sub _NextIndex { # {{{ Core bits to make this a DBIx::SearchBuilder object # {{{ sub _Init -sub _Init { +sub _Init { my $self = shift; - $self->{'table'} = "Tickets"; - $self->{'RecalcTicketLimits'} = 1; + $self->{'table'} = "Tickets"; + $self->{'RecalcTicketLimits'} = 1; $self->{'looking_at_effective_id'} = 0; - $self->{'looking_at_type'} = 0; - $self->{'restriction_index'} =1; - $self->{'primary_key'} = "id"; + $self->{'looking_at_type'} = 0; + $self->{'restriction_index'} = 1; + $self->{'primary_key'} = "id"; delete $self->{'items_array'}; delete $self->{'item_map'}; delete $self->{'columns_to_display'}; @@ -1863,24 +2248,26 @@ sub _Init { $self->_InitSQL; } + # }}} # {{{ sub Count sub Count { - my $self = shift; - $self->_ProcessRestrictions() if ($self->{'RecalcTicketLimits'} == 1 ); - return($self->SUPER::Count()); + my $self = shift; + $self->_ProcessRestrictions() if ( $self->{'RecalcTicketLimits'} == 1 ); + return ( $self->SUPER::Count() ); } + # }}} # {{{ sub CountAll sub CountAll { - my $self = shift; - $self->_ProcessRestrictions() if ($self->{'RecalcTicketLimits'} == 1 ); - return($self->SUPER::CountAll()); + my $self = shift; + $self->_ProcessRestrictions() if ( $self->{'RecalcTicketLimits'} == 1 ); + return ( $self->SUPER::CountAll() ); } -# }}} +# }}} # {{{ sub ItemsArrayRef @@ -1899,29 +2286,27 @@ sub ItemsArrayRef { my $placeholder = $self->_ItemsCounter; $self->GotoFirstItem(); while ( my $item = $self->Next ) { - push ( @{ $self->{'items_array'} }, $item ); + push( @{ $self->{'items_array'} }, $item ); } $self->GotoItem($placeholder); - $self->{'items_array'} = $self->ItemsOrderBy($self->{'items_array'}); + $self->{'items_array'} = $self->ItemsOrderBy( $self->{'items_array'} ); } return ( $self->{'items_array'} ); } + # }}} # {{{ sub Next sub Next { - my $self = shift; - - $self->_ProcessRestrictions() if ($self->{'RecalcTicketLimits'} == 1 ); + my $self = shift; - my $Ticket = $self->SUPER::Next(); - if ((defined($Ticket)) and (ref($Ticket))) { + $self->_ProcessRestrictions() if ( $self->{'RecalcTicketLimits'} == 1 ); - #Make sure we _never_ show deleted tickets - #TODO we should be doing this in the where clause. - #but you can't do multiple clauses on the same field just yet :/ + my $Ticket = $self->SUPER::Next(); + if ( ( defined($Ticket) ) and ( ref($Ticket) ) ) { - if ($Ticket->__Value('Status') eq 'deleted') { + if ( $Ticket->__Value('Status') eq 'deleted' && + !$self->{'allow_deleted_search'} ) { return($self->Next()); } # Since Ticket could be granted with more rights instead @@ -1933,17 +2318,33 @@ sub Next { return($Ticket); } - #If the user doesn't have the right to show this ticket - else { - return($self->Next()); - } - } - #if there never was any ticket - else { - return(undef); - } + if ( $Ticket->__Value('Status') eq 'deleted' ) { + return ( $self->Next() ); + } + + # Since Ticket could be granted with more rights instead + # of being revoked, it's ok if queue rights allow + # ShowTicket. It seems need another query, but we have + # rights cache in Principal::HasRight. + elsif ($Ticket->QueueObj->CurrentUserHasRight('ShowTicket') + || $Ticket->CurrentUserHasRight('ShowTicket') ) + { + return ($Ticket); + } + + #If the user doesn't have the right to show this ticket + else { + return ( $self->Next() ); + } + } + + #if there never was any ticket + else { + return (undef); + } } + # }}} # }}} @@ -1972,16 +2373,17 @@ is a description of the purpose of that TicketRestriction =cut -sub DescribeRestrictions { +sub DescribeRestrictions { my $self = shift; - my ($row, %listing); + my ( $row, %listing ); - foreach $row (keys %{$self->{'TicketRestrictions'}}) { - $listing{$row} = $self->{'TicketRestrictions'}{$row}{'DESCRIPTION'}; + foreach $row ( keys %{ $self->{'TicketRestrictions'} } ) { + $listing{$row} = $self->{'TicketRestrictions'}{$row}{'DESCRIPTION'}; } return (%listing); } + # }}} # {{{ sub RestrictionValues @@ -1994,14 +2396,13 @@ to. =cut sub RestrictionValues { - my $self = shift; + my $self = shift; my $field = shift; - map $self->{'TicketRestrictions'}{$_}{'VALUE'}, - grep { - $self->{'TicketRestrictions'}{$_}{'FIELD'} eq $field - && $self->{'TicketRestrictions'}{$_}{'OPERATOR'} eq "=" - } - keys %{$self->{'TicketRestrictions'}}; + map $self->{'TicketRestrictions'}{$_}{'VALUE'}, grep { + $self->{'TicketRestrictions'}{$_}{'FIELD'} eq $field + && $self->{'TicketRestrictions'}{$_}{'OPERATOR'} eq "=" + } + keys %{ $self->{'TicketRestrictions'} }; } # }}} @@ -2018,8 +2419,8 @@ sub ClearRestrictions { my $self = shift; delete $self->{'TicketRestrictions'}; $self->{'looking_at_effective_id'} = 0; - $self->{'looking_at_type'} = 0; - $self->{'RecalcTicketLimits'} =1; + $self->{'looking_at_type'} = 0; + $self->{'RecalcTicketLimits'} = 1; } # }}} @@ -2033,13 +2434,13 @@ Removes that restriction from the session's limits. =cut - sub DeleteRestriction { my $self = shift; - my $row = shift; + my $row = shift; delete $self->{'TicketRestrictions'}{$row}; $self->{'RecalcTicketLimits'} = 1; + #make the underlying easysearch object forget all its preconceptions } @@ -2050,89 +2451,93 @@ sub DeleteRestriction { # Convert a set of oldstyle SB Restrictions to Clauses for RQL sub _RestrictionsToClauses { - my $self = shift; - - my $row; - my %clause; - foreach $row (keys %{$self->{'TicketRestrictions'}}) { - my $restriction = $self->{'TicketRestrictions'}{$row}; - #use Data::Dumper; - #print Dumper($restriction),"\n"; - - # We need to reimplement the subclause aggregation that SearchBuilder does. - # Default Subclause is ALIAS.FIELD, and default ALIAS is 'main', - # Then SB AND's the different Subclauses together. - - # So, we want to group things into Subclauses, convert them to - # SQL, and then join them with the appropriate DefaultEA. - # Then join each subclause group with AND. - - my $field = $restriction->{'FIELD'}; - my $realfield = $field; # CustomFields fake up a fieldname, so - # we need to figure that out - - # One special case - # Rewrite LinkedTo meta field to the real field - if ($field =~ /LinkedTo/) { - $realfield = $field = $restriction->{'TYPE'}; - } + my $self = shift; - # Two special case - # CustomFields have a different real field - if ($field =~ /^CF\./) { - $realfield = "CF" - } + my $row; + my %clause; + foreach $row ( keys %{ $self->{'TicketRestrictions'} } ) { + my $restriction = $self->{'TicketRestrictions'}{$row}; - die "I don't know about $field yet" - unless (exists $FIELDS{$realfield} or $restriction->{CUSTOMFIELD}); - - my $type = $FIELDS{$realfield}->[0]; - my $op = $restriction->{'OPERATOR'}; - - my $value = ( grep { defined } - map { $restriction->{$_} } qw(VALUE TICKET BASE TARGET))[0]; - - # this performs the moral equivalent of defined or/dor/C<//>, - # without the short circuiting.You need to use a 'defined or' - # type thing instead of just checking for truth values, because - # VALUE could be 0.(i.e. "false") - - # You could also use this, but I find it less aesthetic: - # (although it does short circuit) - #( defined $restriction->{'VALUE'}? $restriction->{VALUE} : - # defined $restriction->{'TICKET'} ? - # $restriction->{TICKET} : - # defined $restriction->{'BASE'} ? - # $restriction->{BASE} : - # defined $restriction->{'TARGET'} ? - # $restriction->{TARGET} ) - - my $ea = $restriction->{ENTRYAGGREGATOR} || $DefaultEA{$type} || "AND"; - if ( ref $ea ) { - die "Invalid operator $op for $field ($type)" - unless exists $ea->{$op}; - $ea = $ea->{$op}; - } + #use Data::Dumper; + #print Dumper($restriction),"\n"; - # Each CustomField should be put into a different Clause so they - # are ANDed together. - if ($restriction->{CUSTOMFIELD}) { - $realfield = $field; - } + # We need to reimplement the subclause aggregation that SearchBuilder does. + # Default Subclause is ALIAS.FIELD, and default ALIAS is 'main', + # Then SB AND's the different Subclauses together. + + # So, we want to group things into Subclauses, convert them to + # SQL, and then join them with the appropriate DefaultEA. + # Then join each subclause group with AND. + + my $field = $restriction->{'FIELD'}; + my $realfield = $field; # CustomFields fake up a fieldname, so + # we need to figure that out + + # One special case + # Rewrite LinkedTo meta field to the real field + if ( $field =~ /LinkedTo/ ) { + $realfield = $field = $restriction->{'TYPE'}; + } - exists $clause{$realfield} or $clause{$realfield} = []; - # Escape Quotes - $field =~ s!(['"])!\\$1!g; - $value =~ s!(['"])!\\$1!g; - my $data = [ $ea, $type, $field, $op, $value ]; + # Two special case + # Handle subkey fields with a different real field + if ( $field =~ /^(\w+)\./ ) { + $realfield = $1; + } + + die "I don't know about $field yet" + unless ( exists $FIELDS{$realfield} or $restriction->{CUSTOMFIELD} ); + + my $type = $FIELDS{$realfield}->[0]; + my $op = $restriction->{'OPERATOR'}; + + my $value = ( + grep { defined } + map { $restriction->{$_} } qw(VALUE TICKET BASE TARGET) + )[0]; + + # this performs the moral equivalent of defined or/dor/C<//>, + # without the short circuiting.You need to use a 'defined or' + # type thing instead of just checking for truth values, because + # VALUE could be 0.(i.e. "false") + + # You could also use this, but I find it less aesthetic: + # (although it does short circuit) + #( defined $restriction->{'VALUE'}? $restriction->{VALUE} : + # defined $restriction->{'TICKET'} ? + # $restriction->{TICKET} : + # defined $restriction->{'BASE'} ? + # $restriction->{BASE} : + # defined $restriction->{'TARGET'} ? + # $restriction->{TARGET} ) + + my $ea = $restriction->{ENTRYAGGREGATOR} || $DefaultEA{$type} || "AND"; + if ( ref $ea ) { + die "Invalid operator $op for $field ($type)" + unless exists $ea->{$op}; + $ea = $ea->{$op}; + } + + # Each CustomField should be put into a different Clause so they + # are ANDed together. + if ( $restriction->{CUSTOMFIELD} ) { + $realfield = $field; + } + + exists $clause{$realfield} or $clause{$realfield} = []; - # here is where we store extra data, say if it's a keyword or - # something. (I.e. "TYPE SPECIFIC STUFF") + # Escape Quotes + $field =~ s!(['"])!\\$1!g; + $value =~ s!(['"])!\\$1!g; + my $data = [ $ea, $type, $field, $op, $value ]; - #print Dumper($data); - push @{$clause{$realfield}}, $data; - } - return \%clause; + # here is where we store extra data, say if it's a keyword or + # something. (I.e. "TYPE SPECIFIC STUFF") + + #print Dumper($data); + push @{ $clause{$realfield} }, $data; + } + return \%clause; } # }}} @@ -2148,29 +2553,30 @@ sub _RestrictionsToClauses { sub _ProcessRestrictions { my $self = shift; - + #Blow away ticket aliases since we'll need to regenerate them for #a new search delete $self->{'TicketAliases'}; - delete $self->{'items_array'}; + delete $self->{'items_array'}; delete $self->{'item_map'}; delete $self->{'raw_rows'}; delete $self->{'rows'}; delete $self->{'count_all'}; - - my $sql = $self->{_sql_query}; # Violating the _SQL namespace - if (!$sql||$self->{'RecalcTicketLimits'}) { - # "Restrictions to Clauses Branch\n"; - my $clauseRef = eval { $self->_RestrictionsToClauses; }; - if ($@) { - $RT::Logger->error( "RestrictionsToClauses: " . $@ ); - $self->FromSQL(""); - } else { - $sql = $self->ClausesToSQL($clauseRef); - $self->FromSQL($sql); - } - } + my $sql = $self->Query; # Violating the _SQL namespace + if ( !$sql || $self->{'RecalcTicketLimits'} ) { + + # "Restrictions to Clauses Branch\n"; + my $clauseRef = eval { $self->_RestrictionsToClauses; }; + if ($@) { + $RT::Logger->error( "RestrictionsToClauses: " . $@ ); + $self->FromSQL(""); + } + else { + $sql = $self->ClausesToSQL($clauseRef); + $self->FromSQL($sql); + } + } $self->{'RecalcTicketLimits'} = 0; @@ -2186,22 +2592,22 @@ sub _BuildItemMap { my $self = shift; my $items = $self->ItemsArrayRef; - my $prev = 0 ; + my $prev = 0; delete $self->{'item_map'}; - if ($items->[0]) { + if ( $items->[0] ) { $self->{'item_map'}->{'first'} = $items->[0]->EffectiveId; - while (my $item = shift @$items ) { + while ( my $item = shift @$items ) { my $id = $item->EffectiveId; $self->{'item_map'}->{$id}->{'defined'} = 1; - $self->{'item_map'}->{$id}->{prev} = $prev; - $self->{'item_map'}->{$id}->{next} = $items->[0]->EffectiveId if ($items->[0]); + $self->{'item_map'}->{$id}->{prev} = $prev; + $self->{'item_map'}->{$id}->{next} = $items->[0]->EffectiveId + if ( $items->[0] ); $prev = $id; } $self->{'item_map'}->{'last'} = $prev; } -} - +} =head2 ItemMap @@ -2216,15 +2622,14 @@ $ItemMap->{$id}->{next} = the ticket id found after $id sub ItemMap { my $self = shift; - $self->_BuildItemMap() unless ($self->{'items_array'} and $self->{'item_map'}); - return ($self->{'item_map'}); + $self->_BuildItemMap() + unless ( $self->{'items_array'} and $self->{'item_map'} ); + return ( $self->{'item_map'} ); } - - - =cut + } @@ -2239,12 +2644,30 @@ You don't want to serialize a big tickets object, as the {items} hash will be in =cut - sub PrepForSerialization { my $self = shift; delete $self->{'items'}; $self->RedoSearch(); } + +=head1 FLAGS + +RT::Tickets supports several flags which alter search behavior: + + +allow_deleted_search (Otherwise never show deleted tickets in search results) +looking_at_type (otherwise limit to type=ticket) + +These flags are set by calling + +$tickets->{'flagname'} = 1; + +BUG: There should be an API for this + +=cut + 1; + + diff --git a/rt/lib/RT/Tickets_Overlay_SQL.pm b/rt/lib/RT/Tickets_Overlay_SQL.pm index a873af2d0..677391702 100644 --- a/rt/lib/RT/Tickets_Overlay_SQL.pm +++ b/rt/lib/RT/Tickets_Overlay_SQL.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,12 +42,12 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} +package RT::Tickets; + use strict; use warnings; -use RT::Tickets; - # Import configuration data from the lexcial scope of __PACKAGE__ (or # at least where those two Subroutines are defined.) @@ -73,7 +73,7 @@ sub _InitSQL { $self->{'_sql_linkalias'} = undef; $self->{'_sql_transalias'} = undef; $self->{'_sql_trattachalias'} = undef; - $self->{'_sql_keywordalias'} = undef; + $self->{'_sql_object_cf_alias'} = undef; $self->{'_sql_depth'} = 0; $self->{'_sql_localdepth'} = 0; $self->{'_sql_query'} = ''; @@ -149,15 +149,18 @@ use Regexp::Common qw /delimited/; use constant VALUE => 1; use constant AGGREG => 2; use constant OP => 4; -use constant PAREN => 8; -use constant KEYWORD => 16; -my @tokens = qw[VALUE AGGREG OP PAREN KEYWORD]; +use constant OPEN_PAREN => 8; +use constant CLOSE_PAREN => 16; +use constant KEYWORD => 32; +my @tokens = qw[VALUE AGGREG OP OPEN_PAREN CLOSE_PAREN KEYWORD]; my $re_aggreg = qr[(?i:AND|OR)]; -my $re_value = qr[$RE{delimited}{-delim=>qq{\'\"}}|\d+]; -my $re_keyword = qr[$RE{delimited}{-delim=>qq{\'\"}}|(?:\{|\}|\w|\.)+]; +my $re_delim = qr[$RE{delimited}{-delim=>qq{\'\"}}]; +my $re_value = qr[$re_delim|\d+|NULL]; +my $re_keyword = qr[$re_delim|(?:\{|\}|\w|\.)+]; my $re_op = qr[=|!=|>=|<=|>|<|(?i:IS NOT)|(?i:IS)|(?i:NOT LIKE)|(?i:LIKE)]; # long to short -my $re_paren = qr'\(|\)'; +my $re_open_paren = qr'\('; +my $re_close_paren = qr'\)'; sub _close_bundle { @@ -193,7 +196,7 @@ sub _close_bundle sub _parser { my ($self,$string) = @_; - my $want = KEYWORD | PAREN; + my $want = KEYWORD | OPEN_PAREN; my $last = undef; my $depth = 0; @@ -214,17 +217,19 @@ sub _parser { |$re_op |$re_keyword |$re_value - |$re_paren - )/igx ) { + |$re_open_paren + |$re_close_paren + )/iogx ) { my $val = $1; my $current = 0; # Highest priority is last - $current = OP if $val =~ /^$re_op$/io; - $current = VALUE if $val =~ /^$re_value$/io; - $current = KEYWORD if $val =~ /^$re_keyword$/io && ($want & KEYWORD); - $current = AGGREG if $val =~ /^$re_aggreg$/io; - $current = PAREN if $val =~ /^$re_paren$/io; + $current = OP if ($want & OP) && $val =~ /^$re_op$/io; + $current = VALUE if ($want & VALUE) && $val =~ /^$re_value$/io; + $current = KEYWORD if ($want & KEYWORD) && $val =~ /^$re_keyword$/io; + $current = AGGREG if ($want & AGGREG) && $val =~ /^$re_aggreg$/io; + $current = OPEN_PAREN if ($want & OPEN_PAREN) && $val =~ /^$re_open_paren$/io; + $current = CLOSE_PAREN if ($want & CLOSE_PAREN) && $val =~ /^$re_close_paren$/io; unless ($current && $want & $current) { @@ -238,24 +243,23 @@ sub _parser { #$RT::Logger->debug("We've just found a '$current' called '$val'"); # Parens are highest priority - if ($current & PAREN) { - if ($val eq "(") { - $self->_close_bundle(@bundle); @bundle = (); - $depth++; - $self->_OpenParen; + if ($current & OPEN_PAREN) { + $self->_close_bundle(@bundle); @bundle = (); + $depth++; + $self->_OpenParen; - } else { - $self->_close_bundle(@bundle); @bundle = (); - $depth--; - $self->_CloseParen; - } - - $want = KEYWORD | PAREN | AGGREG; + $want = KEYWORD | OPEN_PAREN; } + elsif ( $current & CLOSE_PAREN ) { + $self->_close_bundle(@bundle); @bundle = (); + $depth--; + $self->_CloseParen; + $want = CLOSE_PAREN | AGGREG; + } elsif ( $current & AGGREG ) { $ea = $val; - $want = KEYWORD | PAREN; + $want = KEYWORD | OPEN_PAREN; } elsif ( $current & KEYWORD ) { $key = $val; @@ -270,17 +274,17 @@ sub _parser { # Remove surrounding quotes from $key, $val # (in future, simplify as for($key,$val) { action on $_ }) - if ($key =~ /$RE{delimited}{-delim=>qq{\'\"}}/) { + if ($key =~ /$re_delim/o) { substr($key,0,1) = ""; substr($key,-1,1) = ""; } - if ($val =~ /$RE{delimited}{-delim=>qq{\'\"}}/) { + if ($val =~ /$re_delim/o) { substr($val,0,1) = ""; substr($val,-1,1) = ""; } # Unescape escaped characters - $key =~ s!\\(.)!$1!g; - $val =~ s!\\(.)!$1!g; + $key =~ s!\\(.)!$1!g; + $val =~ s!\\(.)!$1!g; # print "$ea Key=[$key] op=[$op] val=[$val]\n"; @@ -336,7 +340,7 @@ sub _parser { ($ea,$key,$op,$value) = ("","","",""); - $want = PAREN | AGGREG; + $want = CLOSE_PAREN | AGGREG; } else { die "I'm lost"; } @@ -347,10 +351,10 @@ sub _parser { $self->_close_bundle(@bundle); @bundle = (); die "Incomplete query" - unless (($want | PAREN) || ($want | KEYWORD)); + unless (($want | CLOSE_PAREN) || ($want | KEYWORD)); die "Incomplete Query" - unless ($last && ($last | PAREN) || ($last || VALUE)); + unless ($last && ($last | CLOSE_PAREN) || ($last || VALUE)); # This will never happen, because the parser will complain die "Mismatched parentheses" @@ -431,14 +435,13 @@ $query = ("Subject LIKE '$string' OR Content LIKE '$string'"); my ($id, $msg) = $tix->FromSQL($query); + ok ($id, $msg); is ($tix->Count, scalar @ids, "number of returned tickets same as entered"); - while (my $tick = $tix->Next) { push @expectedids, $tick->Id; } - ok (eq_array(\@ids, \@expectedids), "returned expected tickets"); $query = ("id = $ids[0] OR MemberOf = $ids[0]"); @@ -476,7 +479,7 @@ sub FromSQL { $self->{_sql_query} = $query; eval { $self->_parser( $query ); }; if ($@) { - $RT::Logger->error( $@ ); + $RT::Logger->error( "Query error in <<$query>>:\n$@" ); return(0,$@); } # We only want to look at EffectiveId's (mostly) for these searches. @@ -505,8 +508,12 @@ sub FromSQL { $self->SUPER::Limit( FIELD => 'Type', OPERATOR => '=', VALUE => 'ticket'); } - # We never ever want to show deleted tickets - $self->SUPER::Limit(FIELD => 'Status' , OPERATOR => '!=', VALUE => 'deleted'); + # We don't want deleted tickets unless 'allow_deleted_search' is set + unless( $self->{'allow_deleted_search'} ) { + $self->SUPER::Limit(FIELD => 'Status', + OPERATOR => '!=', + VALUE => 'deleted'); + } # set SB's dirty flag diff --git a/rt/lib/RT/Transaction.pm b/rt/lib/RT/Transaction.pm index 431d39adb..cca2281bc 100755 --- a/rt/lib/RT/Transaction.pm +++ b/rt/lib/RT/Transaction.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -67,7 +67,6 @@ RT::Transaction package RT::Transaction; use RT::Record; -use RT::Ticket; use vars qw( @ISA ); @@ -88,13 +87,16 @@ sub _Init { Create takes a hash of values and creates a row in the database: - int(11) 'EffectiveTicket'. - int(11) 'Ticket'. + varchar(64) 'ObjectType'. + int(11) 'ObjectId'. 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'. =cut @@ -105,24 +107,30 @@ Create takes a hash of values and creates a row in the database: sub Create { my $self = shift; my %args = ( - EffectiveTicket => '0', - Ticket => '0', + ObjectType => '', + ObjectId => '0', TimeTaken => '0', Type => '', Field => '', OldValue => '', NewValue => '', + ReferenceType => '', + OldReference => '', + NewReference => '', Data => '', @_); $self->SUPER::Create( - EffectiveTicket => $args{'EffectiveTicket'}, - Ticket => $args{'Ticket'}, + ObjectType => $args{'ObjectType'}, + ObjectId => $args{'ObjectId'}, 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'}, ); @@ -139,56 +147,42 @@ Returns the current value of id. =cut -=head2 EffectiveTicket +=head2 ObjectType -Returns the current value of EffectiveTicket. -(In the database, EffectiveTicket is stored as int(11).) +Returns the current value of ObjectType. +(In the database, ObjectType is stored as varchar(64).) -=head2 SetEffectiveTicket VALUE +=head2 SetObjectType VALUE -Set EffectiveTicket to VALUE. +Set ObjectType to VALUE. Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, EffectiveTicket will be stored as a int(11).) +(In the database, ObjectType will be stored as a varchar(64).) =cut -=head2 Ticket +=head2 ObjectId -Returns the current value of Ticket. -(In the database, Ticket is stored as int(11).) +Returns the current value of ObjectId. +(In the database, ObjectId is stored as int(11).) -=head2 SetTicket VALUE +=head2 SetObjectId VALUE -Set Ticket to VALUE. +Set ObjectId 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).) +(In the database, ObjectId 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 TimeTaken Returns the current value of TimeTaken. @@ -279,6 +273,60 @@ 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 Returns the current value of Data. @@ -320,27 +368,33 @@ sub _CoreAccessible { { id => - {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'}, + {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'}, TimeTaken => - {read => 1, write => 1, type => 'int(11)', default => '0'}, + {read => 1, write => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Type => - {read => 1, write => 1, type => 'varchar(20)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 20, is_blob => 0, is_numeric => 0, type => 'varchar(20)', default => ''}, Field => - {read => 1, write => 1, type => 'varchar(40)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 40, is_blob => 0, is_numeric => 0, type => 'varchar(40)', default => ''}, OldValue => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, NewValue => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {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 => ''}, Data => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 255, is_blob => 0, is_numeric => 0, type => 'varchar(255)', default => ''}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; @@ -372,7 +426,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +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 17e47cb3a..b179084c8 100644 --- a/rt/lib/RT/Transaction_Overlay.pm +++ b/rt/lib/RT/Transaction_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Transaction - RT\'s transaction object @@ -70,6 +71,9 @@ ok(require RT::Transaction); =cut + +package RT::Transaction; + use strict; no warnings qw(redefine); @@ -84,8 +88,9 @@ use RT::Scrips; Create a new transaction. -This routine should _never_ be called anything other Than RT::Ticket. It should not be called -from client code. Ever. Not ever. If you do this, we will hunt you down. and break your kneecaps. +This routine should _never_ be called by anything other than RT::Ticket. +It should not be called +from client code. Ever. Not ever. If you do this, we will hunt you down and break your kneecaps. Then the unpleasant stuff will start. TODO: Document what gets passed to this @@ -97,7 +102,6 @@ sub Create { my %args = ( id => undef, TimeTaken => 0, - Ticket => 0, Type => 'undefined', Data => '', Field => undef, @@ -106,24 +110,36 @@ sub Create { MIMEObj => undef, ActivateScrips => 1, CommitScrips => 1, + ObjectType => 'RT::Ticket', + ObjectId => 0, + ReferenceType => undef, + OldReference => undef, + NewReference => undef, @_ ); + $args{ObjectId} ||= $args{Ticket}; + #if we didn't specify a ticket, we need to bail - unless ( $args{'Ticket'} ) { - return ( 0, $self->loc( "Transaction->Create couldn't, as you didn't specify a ticket id")); + unless ( $args{'ObjectId'} && $args{'ObjectType'}) { + return ( 0, $self->loc( "Transaction->Create couldn't, as you didn't specify an object type and id")); } #lets create our transaction - my %params = (Ticket => $args{'Ticket'}, + my %params = ( Type => $args{'Type'}, Data => $args{'Data'}, Field => $args{'Field'}, OldValue => $args{'OldValue'}, NewValue => $args{'NewValue'}, - Created => $args{'Created'} + Created => $args{'Created'}, + ObjectType => $args{'ObjectType'}, + ObjectId => $args{'ObjectId'}, + ReferenceType => $args{'ReferenceType'}, + OldReference => $args{'OldReference'}, + NewReference => $args{'NewReference'}, ); # Parameters passed in during an import that we probably don't want to touch, otherwise @@ -137,20 +153,20 @@ sub Create { #Provide a way to turn off scrips if we need to - $RT::Logger->debug('About to think about scrips for transaction' .$self->Id); - if ( $args{'ActivateScrips'} ) { + $RT::Logger->debug('About to think about scrips for transaction #' .$self->Id); + if ( $args{'ActivateScrips'} and $args{'ObjectType'} eq 'RT::Ticket' ) { $self->{'scrips'} = RT::Scrips->new($RT::SystemUser); - $RT::Logger->debug('About to prepare scrips for transaction' .$self->Id); + $RT::Logger->debug('About to prepare scrips for transaction #' .$self->Id); $self->{'scrips'}->Prepare( Stage => 'TransactionCreate', Type => $args{'Type'}, - Ticket => $args{'Ticket'}, + Ticket => $args{'ObjectId'}, Transaction => $self->id, ); if ($args{'CommitScrips'} ) { - $RT::Logger->debug('About to commit scrips for transaction' .$self->Id); + $RT::Logger->debug('About to commit scrips for transaction #' .$self->Id); $self->{'scrips'}->Commit(); } } @@ -178,10 +194,34 @@ sub Scrips { # {{{ sub Delete +=head2 Delete + +Delete this transaction. Currently DOES NOT CHECK ACLS + +=cut + sub Delete { my $self = shift; - return ( 0, - $self->loc('Deleting this object could break referential integrity') ); + + + $RT::Handle->BeginTransaction(); + + my $attachments = $self->Attachments; + + while (my $attachment = $attachments->Next) { + my ($id, $msg) = $attachment->Delete(); + unless ($id) { + $RT::Handle->Rollback(); + return($id, $self->loc("System Error: [_1]", $msg)); + } + } + my ($id,$msg) = $self->SUPER::Delete(); + unless ($id) { + $RT::Handle->Rollback(); + return($id, $self->loc("System Error: [_1]", $msg)); + } + $RT::Handle->Commit(); + return ($id,$msg); } # }}} @@ -386,7 +426,7 @@ sub Attachments { } #if they ain't got rights to see, return an empty object - else { + elsif ($self->__Value('ObjectType') eq "RT::Ticket") { unless ( $self->CurrentUserHasRight('ShowTicket') ) { return ( $self->{'attachments'} ); } @@ -467,7 +507,7 @@ sub Description { } #if they ain't got rights to see, don't let em - else { + elsif ($self->__Value('ObjectType') eq "RT::Ticket") { unless ( $self->CurrentUserHasRight('ShowTicket') ) { return ($self->loc("Permission Denied") ); } @@ -493,7 +533,6 @@ Returns a text string which briefly describes this transaction sub BriefDescription { my $self = shift; - #If it's a comment or a comment email record, # we need to be extra special careful if ( $self->__Value('Type') =~ /^Comment/ ) { @@ -503,42 +542,67 @@ sub BriefDescription { } #if they ain't got rights to see, don't let em - else { + elsif ( $self->__Value('ObjectType') eq "RT::Ticket" ) { unless ( $self->CurrentUserHasRight('ShowTicket') ) { return ( $self->loc("Permission Denied") ); } } - my $type = $self->Type; #cache this, rather than calling it 30 times + my $type = $self->Type; #cache this, rather than calling it 30 times - if ( !defined( $type ) ) { + if ( !defined($type) ) { return $self->loc("No transaction type specified"); } + my $obj_type = $self->FriendlyObjectType; + if ( $type eq 'Create' ) { - return ($self->loc("Ticket created")); + return ( $self->loc( "[_1] created", $obj_type ) ); } elsif ( $type =~ /Status/ ) { if ( $self->Field eq 'Status' ) { if ( $self->NewValue eq 'deleted' ) { - return ($self->loc("Ticket deleted")); + return ( $self->loc( "[_1] deleted", $obj_type ) ); } else { - return ( $self->loc("Status changed from [_1] to [_2]", $self->loc($self->OldValue), $self->loc($self->NewValue) )); + return ( + $self->loc( + "Status changed from [_1] to [_2]", + "'" . $self->loc( $self->OldValue ) . "'", + "'" . $self->loc( $self->NewValue ) . "'" + ) + ); } } # Generic: - my $no_value = $self->loc("(no value)"); - return ( $self->loc( "[_1] changed from [_2] to [_3]", $self->Field , ( $self->OldValue || $no_value ) , $self->NewValue )); + my $no_value = $self->loc("(no value)"); + return ( + $self->loc( + "[_1] changed from [_2] to [_3]", + $self->Field, + ( $self->OldValue ? "'" . $self->OldValue . "'" : $no_value ), + "'" . $self->NewValue . "'" + ) + ); } - if (my $code = $_BriefDescriptions{$type}) { + if ( my $code = $_BriefDescriptions{$type} ) { return $code->($self); } - return $self->loc( "Default: [_1]/[_2] changed from [_3] to [_4]", $type, $self->Field, $self->OldValue, $self->NewValue ); + return $self->loc( + "Default: [_1]/[_2] changed from [_3] to [_4]", + $type, + $self->Field, + ( + $self->OldValue + ? "'" . $self->OldValue . "'" + : $self->loc("(no value)") + ), + "'" . $self->NewValue . "'" + ); } %_BriefDescriptions = ( @@ -600,7 +664,7 @@ sub BriefDescription { my $self = shift; my $Old = RT::User->new( $self->CurrentUser ); $Old->Load( $self->OldValue ); - return $self->loc("Stolen from [_1] ", $Old->Name); + return $self->loc("Stolen from [_1]", $Old->Name); }, Give => sub { my $self = shift; @@ -702,7 +766,10 @@ sub BriefDescription { }, Set => sub { my $self = shift; - if ( $self->Field eq 'Queue' ) { + if ( $self->Field eq 'Password' ) { + return $self->loc('Password changed'); + } + elsif ( $self->Field eq 'Queue' ) { my $q1 = new RT::Queue( $self->CurrentUser ); $q1->Load( $self->OldValue ); my $q2 = new RT::Queue( $self->CurrentUser ); @@ -719,7 +786,7 @@ sub BriefDescription { return $self->loc( "[_1] changed from [_2] to [_3]", $self->Field, $t2->AsString, $t1->AsString ); } else { - return $self->loc( "[_1] changed from [_2] to [_3]", $self->Field, $self->OldValue, $self->NewValue ); + return $self->loc( "[_1] changed from [_2] to [_3]", $self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'" ); } }, PurgeTransaction => sub { @@ -743,6 +810,7 @@ Returns false otherwise sub IsInbound { my $self = shift; + $self->ObjectType eq 'RT::Ticket' or return undef; return ( $self->TicketObj->IsRequestor( $self->CreatorObj->PrincipalId ) ); } @@ -750,23 +818,11 @@ sub IsInbound { # }}} -sub _ClassAccessible { +sub _OverlayAccessible { { - id => { read => 1, type => 'int(11)', default => '' }, - EffectiveTicket => - { read => 1, write => 1, type => 'int(11)', default => '' }, - Ticket => - { read => 1, public => 1, type => 'int(11)', default => '' }, - TimeTaken => { read => 1, type => 'int(11)', default => '' }, - Type => { read => 1, type => 'varchar(20)', default => '' }, - Field => { read => 1, type => 'varchar(40)', default => '' }, - OldValue => { read => 1, type => 'varchar(255)', default => '' }, - NewValue => { read => 1, type => 'varchar(255)', default => '' }, - Data => { read => 1, type => 'varchar(100)', default => '' }, - Creator => { read => 1, auto => 1, type => 'int(11)', default => '' }, - Created => - { read => 1, auto => 1, type => 'datetime', default => '' }, + ObjectType => { public => 1}, + ObjectId => { public => 1}, } }; @@ -823,9 +879,16 @@ sub _Value { } } + # Make sure the user can see the custom field before showing that it changed + elsif ( ( $self->__Value('Type') eq 'CustomField' ) && $self->__Value('Field') ) { + my $cf = RT::CustomField->new( $self->CurrentUser ); + $cf->Load( $self->__Value('Field') ); + return (undef) unless ( $cf->CurrentUserHasRight('SeeCustomField') ); + } + #if they ain't got rights to see, don't let em - else { + elsif ($self->__Value('ObjectType') eq "RT::Ticket") { unless ( $self->CurrentUserHasRight('ShowTicket') ) { return (undef); } @@ -859,6 +922,150 @@ sub CurrentUserHasRight { # }}} +sub Ticket { + my $self = shift; + return $self->ObjectId; +} + +sub TicketObj { + my $self = shift; + return $self->Object; +} + +sub OldValue { + my $self = shift; + if (my $type = $self->__Value('ReferenceType')) { + my $Object = $type->new($self->CurrentUser); + $Object->Load($self->__Value('OldReference')); + return $Object->Content; + } + else { + return $self->__Value('OldValue'); + } +} + +sub NewValue { + my $self = shift; + if (my $type = $self->__Value('ReferenceType')) { + my $Object = $type->new($self->CurrentUser); + $Object->Load($self->__Value('NewReference')); + return $Object->Content; + } + else { + return $self->__Value('NewValue'); + } +} + +sub Object { + my $self = shift; + my $Object = $self->__Value('ObjectType')->new($self->CurrentUser); + $Object->Load($self->__Value('ObjectId')); + return($Object); +} + +sub FriendlyObjectType { + my $self = shift; + my $type = $self->ObjectType or return undef; + $type =~ s/^RT:://; + return $self->loc($type); +} + +=head2 UpdateCustomFields + + Takes a hash of + + CustomField-<<Id>> => Value + or + + Object-RT::Transaction-CustomField-<<Id>> => Value parameters to update + this transaction's custom fields + +=cut + +sub UpdateCustomFields { + my $self = shift; + my %args = (@_); + + # This method used to have an API that took a hash of a single + # value "ARGSRef", which was a reference to a hash of arguments. + # This was insane. The next few lines of code preserve that API + # while giving us something saner. + + + # TODO: 3.6: DEPRECATE OLD API + + my $args; + + if ($args{'ARGSRef'}) { + $args = $args{ARGSRef}; + } else { + $args = \%args; + } + + foreach my $arg ( keys %$args ) { + next + unless ( $arg =~ + /^(?:Object-RT::Transaction--)?CustomField-(\d+)/ ); + next if $arg =~ /-Magic$/; + my $cfid = $1; + my $values = $args->{$arg}; + foreach + my $value ( UNIVERSAL::isa( $values, 'ARRAY' ) ? @$values : $values ) + { + next unless length($value); + $self->_AddCustomFieldValue( + Field => $cfid, + Value => $value, + RecordTransaction => 0, + ); + } + } +} + + + +=head2 CustomFieldValues + + Do name => id mapping (if needed) before falling back to RT::Record's CustomFieldValues + + See L<RT::Record> + +=cut + +sub CustomFieldValues { + my $self = shift; + my $field = shift; + + if ( UNIVERSAL::can( $self->Object, 'QueueObj' ) ) { + + unless ( $field =~ /^\d+$/o ) { + my $CFs = RT::CustomFields->new( $self->CurrentUser ); + $CFs->Limit( FIELD => 'Name', VALUE => $field); + $CFs->LimitToLookupType($self->CustomFieldLookupType); + $CFs->LimitToGlobalOrObjectId($self->Object->QueueObj->id); + $field = $CFs->First->id if $CFs->First; + } + } + return $self->SUPER::CustomFieldValues($field); +} + +# }}} + +# {{{ sub CustomFieldLookupType + +=head2 CustomFieldLookupType + +Returns the RT::Transaction lookup type, which can +be passed to RT::CustomField->Create() via the 'LookupType' hash key. + +=cut + +# }}} + +sub CustomFieldLookupType { + "RT::Queue-RT::Ticket-RT::Transaction"; +} + # Transactions don't change. by adding this cache congif directiove, we don't lose pathalogically on long tickets. sub _CacheConfig { { diff --git a/rt/lib/RT/Transactions.pm b/rt/lib/RT/Transactions.pm index 1e8a97bd0..351b14c4e 100755 --- a/rt/lib/RT/Transactions.pm +++ b/rt/lib/RT/Transactions.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +Each of these files should begin with the line no warnings qw(redefine); diff --git a/rt/lib/RT/Transactions_Overlay.pm b/rt/lib/RT/Transactions_Overlay.pm index 62a072750..fe5157556 100644 --- a/rt/lib/RT/Transactions_Overlay.pm +++ b/rt/lib/RT/Transactions_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Transactions - a collection of RT Transaction objects @@ -65,6 +66,9 @@ ok (require RT::Transactions); =cut + +package RT::Transactions; + use strict; no warnings qw(redefine); @@ -85,6 +89,72 @@ sub _Init { } # }}} +=head2 Limit + +A wrapper around SUPER::Limit to catch migration issues + +=cut + +sub Limit { + my $self = shift; + my %args = (@_); + + if ($args{'FIELD'} eq 'Ticket') { + Carp::cluck("Historical code calling RT::Transactions::Limit with a 'Ticket'. This deprecated API will be deleted in 3.6"); + $self->SUPER::Limit(FIELD => 'ObjectType', OPERATOR => '=', VALUE =>'RT::Ticket'); + $args{'FIELD'} = 'ObjectId'; + $self->SUPER::Limit(%args); + + } else { + + $self->SUPER::Limit(%args); + } + + +} + + + +=head2 LimitToTicket TICKETID + +Find only transactions for the ticket whose id is TICKETID. + +This includes tickets merged into TICKETID. + +Repeated calls to this method will intelligently limit down to that set of tickets, joined with an OR + + +=cut + + +sub LimitToTicket { + my $self = shift; + my $tid = shift; + + unless ( $self->{'tickets_table'} ) { + $self->{'tickets_table'} ||= $self->NewAlias('Tickets'); + $self->Join( + ALIAS1 => 'main', + FIELD1 => 'ObjectId', + ALIAS2 => $self->{'tickets_table'}, + FIELD2 => 'id' + ); + $self->Limit( + FIELD => 'ObjectType', + VALUE => 'RT::Ticket', + ); + } + $self->Limit( + ALIAS => $self->{tickets_table}, + FIELD => 'EffectiveId', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR', + VALUE => $tid, + ); + +} + + # {{{ sub Next sub Next { my $self = shift; diff --git a/rt/lib/RT/URI.pm b/rt/lib/RT/URI.pm index b0470449c..fdbe63bea 100644 --- a/rt/lib/RT/URI.pm +++ b/rt/lib/RT/URI.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::URI;; use strict; diff --git a/rt/lib/RT/URI/base.pm b/rt/lib/RT/URI/base.pm index e50f640c7..56bfef33a 100644 --- a/rt/lib/RT/URI/base.pm +++ b/rt/lib/RT/URI/base.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::URI::base; use strict; diff --git a/rt/lib/RT/URI/fsck_com_rt.pm b/rt/lib/RT/URI/fsck_com_rt.pm index cfe77cdff..ba98b1df4 100644 --- a/rt/lib/RT/URI/fsck_com_rt.pm +++ b/rt/lib/RT/URI/fsck_com_rt.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} package RT::URI::fsck_com_rt; use RT::Ticket; @@ -75,7 +75,7 @@ ok (UNIVERSAL::isa($uri,RT::URI::fsck_com_rt), "It's an RT::URI::fsck_com_rt"); ok ($uri->isa('RT::URI::base'), "It's an RT::URI::base"); ok ($uri->isa('RT::Base'), "It's an RT::Base"); -is ($uri->LocalURIPrefix , 'fsck.com-rt://example.com'); +is ($uri->LocalURIPrefix , 'fsck.com-rt://'.$RT::Organization); =end testing diff --git a/rt/lib/RT/URI/t.pm b/rt/lib/RT/URI/t.pm new file mode 100644 index 000000000..2f95b2d3e --- /dev/null +++ b/rt/lib/RT/URI/t.pm @@ -0,0 +1,83 @@ +# 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. +# +# 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::t; + +use RT::Ticket; +use RT::URI::base; + +use strict; +use vars qw(@ISA); +@ISA = qw/RT::URI::fsck_com_rt/; + +my $scheme = "t"; + +=head2 ParseURI URI + +When handed an t: URI, figures out if it is an RT ticket. This is an +alternate short form of specifying a full ticket URI. + +=begin testing + +use_ok("RT::URI::t"); +my $uri = RT::URI::t->new($RT::SystemUser); +ok(ref($uri), "URI object exists"); + +my $uristr = "t:1"; +$uri->ParseURI($uristr); +is(ref($uri->Object), "RT::Ticket", "Object loaded is a ticket"); +is($uri->Object->Id, 1, "Object loaded has correct ID"); +is($uri->URI, 'fsck.com-rt://'.$RT::Organization.'/ticket/1', + "URI object has correct URI string"); + +=end testing + +=cut + +sub ParseURI { + my $self = shift; + my $uri = shift; + + # "t:<articlenum>" + # Pass this off to fsck_com_rt, which is equipped to deal with + # tickets after stripping off the t: prefix. + + if ($uri =~ /^$scheme:(\d+)/) { + return $self->SUPER::ParseURI($1); + } else { + $self->{'uri'} = $uri; + return undef; + } +} + +=head2 Scheme + +Return the URI scheme + +=cut + +sub Scheme { + return $scheme; +} + +1; diff --git a/rt/lib/RT/User.pm b/rt/lib/RT/User.pm index 10e7e84d5..18edfd476 100755 --- a/rt/lib/RT/User.pm +++ b/rt/lib/RT/User.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -764,73 +764,73 @@ sub _CoreAccessible { { id => - {read => 1, type => 'int(11)', default => ''}, + {read => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => ''}, Name => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Password => - {read => 1, write => 1, type => 'varchar(40)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 40, is_blob => 0, is_numeric => 0, type => 'varchar(40)', default => ''}, Comments => - {read => 1, write => 1, type => 'blob', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'blob', default => ''}, Signature => - {read => 1, write => 1, type => 'blob', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'blob', default => ''}, EmailAddress => - {read => 1, write => 1, type => 'varchar(120)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, FreeformContactInfo => - {read => 1, write => 1, type => 'blob', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'blob', default => ''}, Organization => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, RealName => - {read => 1, write => 1, type => 'varchar(120)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 120, is_blob => 0, is_numeric => 0, type => 'varchar(120)', default => ''}, NickName => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, Lang => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, EmailEncoding => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, WebEncoding => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, ExternalContactInfoId => - {read => 1, write => 1, type => 'varchar(100)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 100, is_blob => 0, is_numeric => 0, type => 'varchar(100)', default => ''}, ContactInfoSystem => - {read => 1, write => 1, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, ExternalAuthId => - {read => 1, write => 1, type => 'varchar(100)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 100, is_blob => 0, is_numeric => 0, type => 'varchar(100)', default => ''}, AuthSystem => - {read => 1, write => 1, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, Gecos => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, HomePhone => - {read => 1, write => 1, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, WorkPhone => - {read => 1, write => 1, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, MobilePhone => - {read => 1, write => 1, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, PagerPhone => - {read => 1, write => 1, type => 'varchar(30)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 30, is_blob => 0, is_numeric => 0, type => 'varchar(30)', default => ''}, Address1 => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, Address2 => - {read => 1, write => 1, type => 'varchar(200)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 200, is_blob => 0, is_numeric => 0, type => 'varchar(200)', default => ''}, City => - {read => 1, write => 1, type => 'varchar(100)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 100, is_blob => 0, is_numeric => 0, type => 'varchar(100)', default => ''}, State => - {read => 1, write => 1, type => 'varchar(100)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 100, is_blob => 0, is_numeric => 0, type => 'varchar(100)', default => ''}, Zip => - {read => 1, write => 1, type => 'varchar(16)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 16, is_blob => 0, is_numeric => 0, type => 'varchar(16)', default => ''}, Country => - {read => 1, write => 1, type => 'varchar(50)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 50, is_blob => 0, is_numeric => 0, type => 'varchar(50)', default => ''}, Timezone => - {read => 1, write => 1, type => 'varchar(50)', default => ''}, + {read => 1, write => 1, sql_type => 12, length => 50, is_blob => 0, is_numeric => 0, type => 'varchar(50)', default => ''}, PGPKey => - {read => 1, write => 1, type => 'text', default => ''}, + {read => 1, write => 1, sql_type => -4, length => 0, is_blob => 1, is_numeric => 0, type => 'text', default => ''}, Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, + {read => 1, auto => 1, sql_type => 4, length => 11, is_blob => 0, is_numeric => 1, type => 'int(11)', default => '0'}, LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, + {read => 1, auto => 1, sql_type => 11, length => 0, is_blob => 0, is_numeric => 0, type => 'datetime', default => ''}, } }; @@ -862,7 +862,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +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 c4ef340c9..27ddd4cd0 100644 --- a/rt/lib/RT/User_Overlay.pm +++ b/rt/lib/RT/User_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::User - RT User object @@ -65,6 +66,9 @@ ok(require RT::User); =cut + +package RT::User; + use strict; no warnings qw(redefine); @@ -75,7 +79,7 @@ use vars qw(%_USERS_KEY_CACHE); use Digest::MD5; use RT::Principals; use RT::ACE; -use RT::EmailParser; +use RT::Interface::Email; # {{{ sub _Accessible @@ -118,41 +122,41 @@ sub _OverlayAccessible { my $u1 = RT::User->new($RT::SystemUser); is(ref($u1), 'RT::User'); -my ($id, $msg) = $u1->Create(Name => 'CreateTest1', EmailAddress => 'create-test-1@example.com'); +my ($id, $msg) = $u1->Create(Name => 'CreateTest1'.$$, EmailAddress => $$.'create-test-1@example.com'); ok ($id, "Creating user CreateTest1 - " . $msg ); # Make sure we can't create a second user with the same name my $u2 = RT::User->new($RT::SystemUser); -($id, $msg) = $u2->Create(Name => 'CreateTest1', EmailAddress => 'create-test-2@example.com'); +($id, $msg) = $u2->Create(Name => 'CreateTest1'.$$, EmailAddress => $$.'create-test-2@example.com'); ok (!$id, $msg); # Make sure we can't create a second user with the same EmailAddress address my $u3 = RT::User->new($RT::SystemUser); -($id, $msg) = $u3->Create(Name => 'CreateTest2', EmailAddress => 'create-test-1@example.com'); +($id, $msg) = $u3->Create(Name => 'CreateTest2'.$$, EmailAddress => $$.'create-test-1@example.com'); ok (!$id, $msg); # Make sure we can create a user with no EmailAddress address my $u4 = RT::User->new($RT::SystemUser); -($id, $msg) = $u4->Create(Name => 'CreateTest3'); +($id, $msg) = $u4->Create(Name => 'CreateTest3'.$$); ok ($id, $msg); # make sure we can create a second user with no EmailAddress address my $u5 = RT::User->new($RT::SystemUser); -($id, $msg) = $u5->Create(Name => 'CreateTest4'); +($id, $msg) = $u5->Create(Name => 'CreateTest4'.$$); ok ($id, $msg); # make sure we can create a user with a blank EmailAddress address my $u6 = RT::User->new($RT::SystemUser); -($id, $msg) = $u6->Create(Name => 'CreateTest6', EmailAddress => ''); +($id, $msg) = $u6->Create(Name => 'CreateTest6'.$$, EmailAddress => ''); ok ($id, $msg); # make sure we can create a second user with a blankEmailAddress address my $u7 = RT::User->new($RT::SystemUser); -($id, $msg) = $u7->Create(Name => 'CreateTest7', EmailAddress => ''); +($id, $msg) = $u7->Create(Name => 'CreateTest7'.$$, EmailAddress => ''); ok ($id, $msg); # Can we change the email address away from from ""; -($id,$msg) = $u7->SetEmailAddress('foo@bar'); +($id,$msg) = $u7->SetEmailAddress('foo@bar'.$$); ok ($id, $msg); # can we change the address back to ""; ($id,$msg) = $u7->SetEmailAddress(''); @@ -171,9 +175,13 @@ sub Create { Privileged => 0, Disabled => 0, EmailAddress => '', + _RecordTransaction => 1, @_ # get the real argumentlist ); + # remove the value so it does not cripple SUPER::Create + my $record_transaction = delete $args{'_RecordTransaction'}; + #Check the ACL unless ( $self->CurrentUser->HasRight(Right => 'AdminUsers', Object => $RT::System) ) { return ( 0, $self->loc('No permission to create users') ); @@ -204,7 +212,7 @@ sub Create { $args{'Password'} = '*NO-PASSWORD*'; } elsif ( length( $args{'Password'} ) < $RT::MinimumPasswordLength ) { - return ( 0, $self->loc("Password too short") ); + return ( 0, $self->loc("Password needs to be at least [_1] characters long",$RT::MinimumPasswordLength) ); } else { @@ -314,7 +322,12 @@ sub Create { } + if ( $record_transaction ) { + $self->_NewTransaction( Type => "Create" ); + } + $RT::Handle->Commit; + return ( $id, $self->loc('User created') ); } @@ -573,12 +586,15 @@ sub LoadOrCreateByEmail { my ($val, $message); my ( $Address, $Name ) = - RT::EmailParser::ParseAddressFromHeader('', $email); + RT::Interface::Email::ParseAddressFromHeader($email); $email = $Address; $self->LoadByEmail($email); $message = $self->loc('User loaded'); unless ($self->Id) { + $self->Load($email); + } + unless($self->Id) { ( $val, $message ) = $self->Create( Name => $email, EmailAddress => $email, @@ -649,11 +665,13 @@ sub ValidateEmailAddress { -=item CanonicalizeEmailAddress ADDRESS +=head2 CanonicalizeEmailAddress ADDRESS -# CanonicalizeEmailAddress converts email addresses into canonical form. -# it takes one email address in and returns the proper canonical -# form. You can dump whatever your proper local config is in here +CanonicalizeEmailAddress converts email addresses into canonical form. +it takes one email address in and returns the proper canonical +form. You can dump whatever your proper local config is in here. Note +that it may be called as a static method; in this case, $self may be +undef. =cut @@ -676,14 +694,14 @@ sub CanonicalizeEmailAddress { -=item CanonicalizeUserInfo HASH of ARGS +=head2 CanonicalizeUserInfo HASH of ARGS -# CanonicalizeUserInfo can convert all User->Create options. -# it takes a hashref of all the params sent to User->Create and -# returns that same hash, by default nothing is done. +CanonicalizeUserInfo can convert all User->Create options. +it takes a hashref of all the params sent to User->Create and +returns that same hash, by default nothing is done. -# This function is intended to allow users to have their info looked up via -# an outside source and modified upon creation. +This function is intended to allow users to have their info looked up via +an outside source and modified upon creation. =cut @@ -718,7 +736,11 @@ sub SetRandomPassword { return ( 0, $self->loc("Permission Denied") ); } - my $pass = $self->GenerateRandomPassword( 6, 8 ); + + my $min = ( $RT::MinimumPasswordLength > 6 ? $RT::MinimumPasswordLength : 6); + my $max = ( $RT::MinimumPasswordLength > 8 ? $RT::MinimumPasswordLength : 8); + + my $pass = $self->GenerateRandomPassword( $min, $max) ; # If we have "notify user on @@ -764,7 +786,7 @@ sub ResetPassword { $template->LoadGlobalTemplate('RT_PasswordChange_Privileged'); } else { - $template->LoadGlobalTemplate('RT_PasswordChange_Privileged'); + $template->LoadGlobalTemplate('RT_PasswordChange_NonPrivileged'); } unless ( $template->Id ) { @@ -1006,25 +1028,33 @@ sub SetPassword { my $password = shift; unless ( $self->CurrentUserCanModify('Password') ) { - return ( 0, $self->loc('Permission Denied') ); + return ( 0, $self->loc('Password: Permission Denied') ); } if ( !$password ) { return ( 0, $self->loc("No password set") ); } elsif ( length($password) < $RT::MinimumPasswordLength ) { - return ( 0, $self->loc("Password too short") ); + return ( 0, $self->loc("Password needs to be at least [_1] characters long", $RT::MinimumPasswordLength) ); } else { + my $new = !$self->HasPassword; $password = $self->_GeneratePassword($password); - return ( $self->SUPER::SetPassword( $password)); + my ( $val, $msg ) = $self->SUPER::SetPassword($password); + if ($val) { + return ( 1, $self->loc("Password set") ) if $new; + return ( 1, $self->loc("Password changed") ); + } + else { + return ( $val, $msg ); + } } } =head2 _GeneratePassword PASSWORD -returns an MD5 hash of the password passed in, in base64 encoding. +returns an MD5 hash of the password passed in, in hexadecimal encoding. =cut @@ -1032,6 +1062,23 @@ sub _GeneratePassword { my $self = shift; my $password = shift; + my $md5 = Digest::MD5->new(); + $md5->add($password); + return ($md5->hexdigest); + +} + +=head2 _GeneratePasswordBase64 PASSWORD + +returns an MD5 hash of the password passed in, in base64 encoding +(obsoleted now). + +=cut + +sub _GeneratePasswordBase64 { + my $self = shift; + my $password = shift; + my $md5 = Digest::MD5->new(); $md5->add($password); return ($md5->b64digest); @@ -1040,6 +1087,31 @@ sub _GeneratePassword { # }}} + +=head2 HasPassword + +Returns true if the user has a valid password, otherwise returns false. + +=cut + + +sub HasPassword { + my $self = shift; + if ( ( $self->__Value('Password') eq '' ) + || ( $self->__Value('Password') eq undef ) ) + { + + return (undef); + } + if ( $self->__Value('Password') eq '*NO-PASSWORD*' ) { + return undef; + } + + return 1; + +} + + # {{{ sub IsPassword =head2 IsPassword @@ -1066,8 +1138,7 @@ sub IsPassword { return (undef); } - if ( ($self->__Value('Password') eq '') || - ($self->__Value('Password') eq undef) ) { + unless ($self->HasPassword) { return(undef); } @@ -1077,9 +1148,12 @@ sub IsPassword { } # if it's a historical password we say ok. - - if ( $self->__Value('Password') eq crypt( $value, $self->__Value('Password') ) ) { - return (1); + if ($self->__Value('Password') eq crypt($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 @@ -1131,7 +1205,7 @@ The response is cached. PrincipalObj should never ever change. ok(my $u = RT::User->new($RT::SystemUser)); ok($u->Load(1), "Loaded the first user"); ok($u->PrincipalObj->ObjectId == 1, "user 1 is the first principal"); -ok($u->PrincipalObj->PrincipalType eq 'User' , "Principal 1 is a user, not a group"); +is($u->PrincipalObj->PrincipalType, 'User' , "Principal 1 is a user, not a group"); =end testing @@ -1220,9 +1294,29 @@ sub HasGroupRight { # }}} +# {{{ sub OwnGroups + +=head2 OwnGroups + +Returns a group collection object containing the groups of which this +user is a member. + +=cut + +sub OwnGroups { + my $self = shift; + my $groups = RT::Groups->new($self->CurrentUser); + $groups->LimitToUserDefinedGroups; + $groups->WithMember(PrincipalId => $self->Id, + Recursively => 1); + return $groups; +} + +# }}} + # {{{ sub Rights testing -=head2 Rights testing +=head1 Rights testing =begin testing @@ -1237,7 +1331,7 @@ ok($rootq->Id, "Loaded the first queue"); ok ($rootq->CurrentUser->HasRight(Right=> 'CreateTicket', Object => $rootq), "Root can create tickets"); my $new_user = RT::User->new($RT::SystemUser); -my ($id, $msg) = $new_user->Create(Name => 'ACLTest'); +my ($id, $msg) = $new_user->Create(Name => 'ACLTest'.$$); ok ($id, "Created a new user for acl test $msg"); @@ -1268,7 +1362,7 @@ ok($tickid, "Created ticket: $tickid"); ok (!$new_user->HasRight( Object => $new_tick, Right => 'ModifyTicket'), "User can't modify the ticket without group membership"); # Create a new group my $group = RT::Group->new($RT::SystemUser); -$group->CreateUserDefinedGroup(Name => 'ACLTest'); +$group->CreateUserDefinedGroup(Name => 'ACLTest'.$$); ok($group->Id, "Created a new group Ok"); # Grant a group the right to modify tickets in a queue ok(my ($gv,$gm) = $group->PrincipalObj->GrantRight( Object => $q, Right => 'ModifyTicket'),"Granted the group the right to modify tickets"); @@ -1295,7 +1389,7 @@ ok($q_as_system->Id, "Loaded the first queue"); my $new_tick2 = RT::Ticket->new($RT::SystemUser); my ($tick2id, $tickmsg) = $new_tick2->Create(Subject=> 'ACL Test 2', Queue =>$q_as_system->Id); ok($tick2id, "Created ticket: $tick2id"); -ok($new_tick2->QueueObj->id eq $q_as_system->Id, "Created a new ticket in queue 1"); +is($new_tick2->QueueObj->id, $q_as_system->Id, "Created a new ticket in queue 1"); # make sure that the user can't do this without subgroup membership @@ -1303,7 +1397,7 @@ ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User # Create a subgroup my $subgroup = RT::Group->new($RT::SystemUser); -$subgroup->CreateUserDefinedGroup(Name => 'Subgrouptest'); +$subgroup->CreateUserDefinedGroup(Name => 'Subgrouptest',$$); ok($subgroup->Id, "Created a new group ".$subgroup->Id."Ok"); #Add the subgroup as a subgroup of the group my ($said, $samsg) = $group->AddMember($subgroup->PrincipalId); @@ -1318,8 +1412,8 @@ ok ($new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User c # {{{ Deal with making sure that members of subgroups of a disabled group don't have rights my ($id, $msg); - ($id, $msg) = $group->SetDisabled(1); - ok ($id,$msg); +($id, $msg) = $group->SetDisabled(1); +ok ($id,$msg); ok (!$new_user->HasRight( Object => $new_tick2, Right => 'ModifyTicket'), "User can't modify the ticket when the group ".$group->Id. " is disabled"); ($id, $msg) = $group->SetDisabled(0); ok($id,$msg); @@ -1464,7 +1558,7 @@ ok($rqv, "Revoked the right successfully - $rqm"); # {{{ sub HasRight -=head2 sub HasRight +=head2 HasRight Shim around PrincipalObj->HasRight. See RT::Principal @@ -1523,8 +1617,8 @@ sub CurrentUserCanModify { =head2 CurrentUserHasRight - Takes a single argument. returns 1 if $Self->CurrentUser - has the requested right. returns undef otherwise +Takes a single argument. returns 1 if $Self->CurrentUser +has the requested right. returns undef otherwise =cut @@ -1537,6 +1631,77 @@ sub CurrentUserHasRight { # }}} +# {{{ sub _CleanupInvalidDelegations + +=head2 _CleanupInvalidDelegations { InsideTransaction => undef } + +Revokes all ACE entries delegated by this user which are inconsistent +with their current delegation rights. Does not perform permission +checks. Should only ever be called from inside the RT library. + +If called from inside a transaction, specify a true value for the +InsideTransaction parameter. + +Returns a true value if the deletion succeeded; returns a false value +and logs an internal error if the deletion fails (should not happen). + +=cut + +# XXX Currently there is a _CleanupInvalidDelegations method in both +# RT::User and RT::Group. If the recursive cleanup call for groups is +# ever unrolled and merged, this code will probably want to be +# factored out into RT::Principal. + +sub _CleanupInvalidDelegations { + my $self = shift; + my %args = ( InsideTransaction => undef, + @_ ); + + unless ( $self->Id ) { + $RT::Logger->warning("User not loaded."); + return (undef); + } + + my $in_trans = $args{InsideTransaction}; + + return(1) if ($self->HasRight(Right => 'DelegateRights', + Object => $RT::System)); + + # Look up all delegation rights currently posessed by this user. + my $deleg_acl = RT::ACL->new($RT::SystemUser); + $deleg_acl->LimitToPrincipal(Type => 'User', + Id => $self->PrincipalId, + IncludeGroupMembership => 1); + $deleg_acl->Limit( FIELD => 'RightName', + OPERATOR => '=', + VALUE => 'DelegateRights' ); + my @allowed_deleg_objects = map {$_->Object()} + @{$deleg_acl->ItemsArrayRef()}; + + # Look up all rights delegated by this principal which are + # inconsistent with the allowed delegation objects. + my $acl_to_del = RT::ACL->new($RT::SystemUser); + $acl_to_del->DelegatedBy(Id => $self->Id); + foreach (@allowed_deleg_objects) { + $acl_to_del->LimitNotObject($_); + } + + # Delete all disallowed delegations + while ( my $ace = $acl_to_del->Next() ) { + my $ret = $ace->_Delete(InsideTransaction => 1); + unless ($ret) { + $RT::Handle->Rollback() unless $in_trans; + $RT::Logger->warning("Couldn't delete delegated ACL entry ".$ace->Id); + return (undef); + } + } + + $RT::Handle->Commit() unless $in_trans; + return (1); +} + +# }}} + # {{{ sub _Set sub _Set { @@ -1545,6 +1710,8 @@ sub _Set { my %args = ( Field => undef, Value => undef, + TransactionType => 'Set', + RecordTransaction => 1, @_ ); @@ -1558,13 +1725,29 @@ sub _Set { return ( 0, $self->loc("Permission Denied") ); } - #Set the new value - my ( $ret, $msg ) = $self->SUPER::_Set( - Field => $args{'Field'}, - Value => $args{'Value'} - ); + my $Old = $self->SUPER::_Value("$args{'Field'}"); + + my ($ret, $msg) = $self->SUPER::_Set( Field => $args{'Field'}, + Value => $args{'Value'} ); + + #If we can't actually set the field to the value, don't record + # a transaction. instead, get out of here. + if ( $ret == 0 ) { return ( 0, $msg ); } - return ( $ret, $msg ); + if ( $args{'RecordTransaction'} == 1 ) { + + my ( $Trans, $Msg, $TransObj ) = $self->_NewTransaction( + Type => $args{'TransactionType'}, + Field => $args{'Field'}, + NewValue => $args{'Value'}, + OldValue => $Old, + TimeTaken => $args{'TimeTaken'}, + ); + return ( $Trans, scalar $TransObj->BriefDescription ); + } + else { + return ( $ret, $msg ); + } } # }}} @@ -1614,6 +1797,14 @@ sub _Value { # }}} +sub BasicColumns { + ( + [ Name => 'User Id' ], + [ EmailAddress => 'Email' ], + [ RealName => 'Name' ], + [ Organization => 'Organization' ], + ); +} 1; diff --git a/rt/lib/RT/Users.pm b/rt/lib/RT/Users.pm index 95aec3b22..abe471f18 100755 --- a/rt/lib/RT/Users.pm +++ b/rt/lib/RT/Users.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,7 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# 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. # @@ -123,7 +123,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. -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line +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 49e4a99a6..4bb9f8f91 100644 --- a/rt/lib/RT/Users_Overlay.pm +++ b/rt/lib/RT/Users_Overlay.pm @@ -1,8 +1,8 @@ -# {{{ BEGIN BPS TAGGED BLOCK +# BEGIN BPS TAGGED BLOCK {{{ # # COPYRIGHT: # -# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC # <jesse@bestpractical.com> # # (Except where explicitly superseded by other copyright notices) @@ -42,7 +42,8 @@ # works based on those contributions, and sublicense and distribute # those contributions and any derivatives thereof. # -# }}} END BPS TAGGED BLOCK +# END BPS TAGGED BLOCK }}} + =head1 NAME RT::Users - Collection of RT::User objects @@ -65,6 +66,9 @@ ok(require RT::Users); =cut + +package RT::Users; + use strict; no warnings qw(redefine); @@ -219,7 +223,7 @@ sub LimitToPrivileged { # {{{ WhoHaveRight -=head2 WhoHaveRight { Right => 'name', Object => $rt_object , IncludeSuperusers => undef, IncludeSubgroupMembers => undef, IncludeSystemRights => undef } +=head2 WhoHaveRight { Right => 'name', Object => $rt_object , IncludeSuperusers => undef, IncludeSubgroupMembers => undef, IncludeSystemRights => undef, EquivObjects => [ ] } =begin testing @@ -228,6 +232,59 @@ $users->WhoHaveRight(Object =>$RT::System, Right =>'SuperUser'); ok($users->Count == 1, "There is one privileged superuser - Found ". $users->Count ); # TODO: this wants more testing +my $RTxUser = RT::User->new($RT::SystemUser); +($id, $msg) = $RTxUser->Create( Name => 'RTxUser', Comments => "RTx extension user", Privileged => 1); +ok ($id,$msg); + +my $group = RT::Group->new($RT::SystemUser); +$group->LoadACLEquivalenceGroup($RTxUser->PrincipalObj); + +my $RTxSysObj = {}; +bless $RTxSysObj, 'RTx::System'; +*RTx::System::Id = sub { 1; }; +*RTx::System::id = *RTx::System::Id; +my $ace = RT::Record->new($RT::SystemUser); +$ace->Table('ACL'); +$ace->_BuildTableAttributes unless ($_TABLE_ATTR->{ref($self)}); +($id, $msg) = $ace->Create( PrincipalId => $group->id, PrincipalType => 'Group', RightName => 'RTxUserRight', ObjectType => 'RTx::System', ObjectId => 1 ); +ok ($id, "ACL for RTxSysObj created"); + +my $RTxObj = {}; +bless $RTxObj, 'RTx::System::Record'; +*RTx::System::Record::Id = sub { 4; }; +*RTx::System::Record::id = *RTx::System::Record::Id; + +$users = RT::Users->new($RT::SystemUser); +$users->WhoHaveRight(Right => 'RTxUserRight', Object => $RTxSysObj); +is($users->Count, 1, "RTxUserRight found for RTxSysObj"); + +$users = RT::Users->new($RT::SystemUser); +$users->WhoHaveRight(Right => 'RTxUserRight', Object => $RTxObj); +is($users->Count, 0, "RTxUserRight not found for RTxObj"); + +$users = RT::Users->new($RT::SystemUser); +$users->WhoHaveRight(Right => 'RTxUserRight', Object => $RTxObj, EquivObjects => [ $RTxSysObj ]); +is($users->Count, 1, "RTxUserRight found for RTxObj using EquivObjects"); + +$ace = RT::Record->new($RT::SystemUser); +$ace->Table('ACL'); +$ace->_BuildTableAttributes unless ($_TABLE_ATTR->{ref($self)}); +($id, $msg) = $ace->Create( PrincipalId => $group->id, PrincipalType => 'Group', RightName => 'RTxUserRight', ObjectType => 'RTx::System::Record', ObjectId => 5 ); +ok ($id, "ACL for RTxObj created"); + +my $RTxObj2 = {}; +bless $RTxObj2, 'RTx::System::Record'; +*RTx::System::Record::Id = sub { 5; }; +*RTx::System::Record::id = sub { 5; }; + +$users = RT::Users->new($RT::SystemUser); +$users->WhoHaveRight(Right => 'RTxUserRight', Object => $RTxObj2); +is($users->Count, 1, "RTxUserRight found for RTxObj2"); + +$users = RT::Users->new($RT::SystemUser); +$users->WhoHaveRight(Right => 'RTxUserRight', Object => $RTxObj2, EquivObjects => [ $RTxSysObj ]); +is($users->Count, 1, "RTxUserRight found for RTxObj2"); + =end testing @@ -236,6 +293,7 @@ find all users who the right Right for this group, either individually or as members of groups +If passed a queue object, with no id, it will find users who have that right for _any_ queue @@ -243,38 +301,125 @@ or as members of groups sub WhoHaveRight { my $self = shift; - my %args = ( Right => undef, - Object => => undef, - IncludeSystemRights => undef, - IncludeSuperusers => undef, - IncludeSubgroupMembers => 1, - @_ ); - - if (defined $args{'ObjectType'} || defined $args{'ObjectId'}) { - $RT::Logger->crit("$self WhoHaveRight called with the Obsolete ObjectId/ObjectType API"); - return(undef); + my %args = ( + Right => undef, + Object => undef, + IncludeSystemRights => undef, + IncludeSuperusers => undef, + IncludeSubgroupMembers => 1, + EquivObjects => [ ], + @_ + ); + + if ( defined $args{'ObjectType'} || defined $args{'ObjectId'} ) { + $RT::Logger->crit( "$self WhoHaveRight called with the Obsolete ObjectId/ObjectType API"); + return (undef); } - my @privgroups; - my $Groups = RT::Groups->new($RT::SystemUser); - $Groups->WithRight(Right=> $args{'Right'}, - Object => $args{'Object'}, - IncludeSystemRights => $args{'IncludeSystemRights'}, - IncludeSuperusers => $args{'IncludeSuperusers'}); - while (my $Group = $Groups->Next()) { - push @privgroups, $Group->Id(); - } + + + # Find only members of groups that have the right. + my $acl = $self->NewAlias('ACL'); + my $groups = $self->NewAlias('Groups'); + my $userprinc = $self->{'princalias'}; + +# The cachedgroupmembers table is used for unrolling group memberships to allow fast lookups +# if we bind to CachedGroupMembers, we'll find all members of groups recursively. +# if we don't we'll find only 'direct' members of the group in question + my $cgm; - if (@privgroups) { - $self->WhoBelongToGroups(Groups => \@privgroups, - IncludeSubgroupMembers => $args{'IncludeSubgroupMembers'}); + if ( $args{'IncludeSubgroupMembers'} ) { + $cgm = $self->NewAlias('CachedGroupMembers'); } else { - # We don't have any group that matches -- make it impossible. - $self->Limit( FIELD => 'Id', VALUE => 'IS', OPERATOR => 'NULL' ); + $cgm = $self->NewAlias('GroupMembers'); } -} +#Tie the users we're returning ($userprinc) to the groups that have rights granted to them ($groupprinc) + $self->Join( + ALIAS1 => $cgm, + FIELD1 => 'MemberId', + ALIAS2 => $userprinc, + FIELD2 => 'id' + ); + + $self->Join( + ALIAS1 => $groups, + FIELD1 => 'id', + ALIAS2 => $cgm, + FIELD2 => 'GroupId' + ); + +# {{{ Find only rows where the right granted is the one we're looking up or _possibly_ superuser + $self->Limit( + ALIAS => $acl, + FIELD => 'RightName', + OPERATOR => ( $args{Right} ? '=' : 'IS NOT' ), + VALUE => $args{Right} || 'NULL', + ENTRYAGGREGATOR => 'OR' + ); + + if ( $args{'IncludeSuperusers'} and $args{'Right'} ) { + $self->Limit( + ALIAS => $acl, + FIELD => 'RightName', + OPERATOR => '=', + VALUE => 'SuperUser', + ENTRYAGGREGATOR => 'OR' + ); + } + + # }}} + + my ( $or_check_ticket_roles, $or_check_roles ); + my $which_object = "$acl.ObjectType = 'RT::System'"; + + if ( defined $args{'Object'} ) { + if ( ref( $args{'Object'} ) eq 'RT::Ticket' ) { + $or_check_ticket_roles = " OR ( $groups.Domain = 'RT::Ticket-Role' AND $groups.Instance = " . $args{'Object'}->Id . ") "; + +# If we're looking at ticket rights, we also want to look at the associated queue rights. +# this is a little bit hacky, but basically, now that we've done the ticket roles magic, +# we load the queue object and ask all the rest of our questions about the queue. + $args{'Object'} = $args{'Object'}->QueueObj; + } + + # TODO XXX This really wants some refactoring + if ( ref( $args{'Object'} ) eq 'RT::Queue' ) { + $or_check_roles = " OR ( ( ($groups.Domain = 'RT::Queue-Role' "; + $or_check_roles .= "AND $groups.Instance = " . $args{'Object'}->id if ( $args{'Object'}->id ); + $or_check_roles .= ") $or_check_ticket_roles ) " . " AND $groups.Type = $acl.PrincipalType) "; + } + if ( $args{'IncludeSystemRights'} ) { + $which_object .= ' OR '; + } + else { + $which_object = ''; + } + foreach my $obj ( @{ $args{'EquivObjects'} } ) { + $which_object .= "($acl.ObjectType = '" . ref( $obj ) . "' AND $acl.ObjectId = " . $obj->id . ") OR "; + } + $which_object .= " ($acl.ObjectType = '" . ref( $args{'Object'} ) . "'"; + if ( $args{'Object'}->id ) { + $which_object .= " AND $acl.ObjectId = " . $args{'Object'}->id; + } + + $which_object .= ") "; + } + $self->_AddSubClause( "WhichObject", "($which_object)" ); + $self->_AddSubClause( + "WhichGroup", + qq{ ( ( $acl.PrincipalId = $groups.id AND $acl.PrincipalType = 'Group' + AND ( $groups.Domain = 'SystemInternal' OR $groups.Domain = 'UserDefined' OR $groups.Domain = 'ACLEquivalence')) + $or_check_roles) } + ); + # only include regular RT users + $self->LimitToEnabled; + + # no system user + $self->Limit( ALIAS => $userprinc, FIELD => 'id', OPERATOR => '!=', VALUE => $RT::SystemUser->id); + +} # }}} # {{{ WhoBelongToGroups @@ -307,20 +452,14 @@ sub WhoBelongToGroups { $cgm = $self->NewAlias('GroupMembers'); } - # {{{ Tie the users we're returning ($userprinc) to the groups that have rights granted to them ($groupprinc) + #Tie the users we're returning ($userprinc) to the groups that have rights granted to them ($groupprinc) $self->Join( ALIAS1 => $cgm, FIELD1 => 'MemberId', ALIAS2 => $userprinc, FIELD2 => 'id' ); - # }}} - # my $and_check_groups = "($cgm.GroupId = NULL"; foreach my $groupid (@{$args{'Groups'}}) { $self->Limit(ALIAS => $cgm, FIELD => 'GroupId', VALUE => $groupid, QUOTEVALUE => 0, ENTRYAGGREGATOR=> 'OR') - #$and_check_groups .= " OR $cgm.GroupId = $groupid"; } - #$and_check_groups .= ")"; - - #$self->_AddSubClause("WhichGroup", $and_check_groups); } # }}} diff --git a/rt/lib/t/00smoke.t b/rt/lib/t/00smoke.t index 4f36bb346..9e9bf4a60 100644 --- a/rt/lib/t/00smoke.t +++ b/rt/lib/t/00smoke.t @@ -2,13 +2,12 @@ use Test::More qw(no_plan); -use lib "/opt/rt3/lib"; use RT; ok(RT::LoadConfig); ok(RT::Init, "Basic initialization and DB connectivity"); use File::Find; -File::Find::find({wanted => \&wanted}, '.'); +File::Find::find({wanted => \&wanted}, 'lib/'); sub wanted { /^*\.pm\z/s && ok(require $_, "Requiring '$_'"); } diff --git a/rt/lib/t/create_data.pl b/rt/lib/t/create_data.pl new file mode 100644 index 000000000..35226ea74 --- /dev/null +++ b/rt/lib/t/create_data.pl @@ -0,0 +1,136 @@ +#!@PERL@ -w +use strict; + +use Test::More qw/no_plan/; +use Text::Lorem; +use RT; +RT::LoadConfig; +RT::Init; + +#### Generate some number of RT accounts. Come up with random +#### usernames if requested, otherwise use provided ones. Take +#### $subdomain argument so that we can generate customer accounts, +#### etc. Group memberships should also be provided. + +=head2 create_users + +=over 4 + +This subroutine creates a number of RT users, if they don't already +exist, and places them in the specified group. It also creates the +group if it needs to. Returns a ref to a list containing the user +objects. + +If a list of names is specified, users with those names are created. +Otherwise, it will make names up, checking to be sure that a user with +the random name does not yet exist. Each user will have an email +address in "example.com". + +Takes a hash of the following arguments: +number => How many users to create. Default is 1. +names => A ref to a list of usernames to use. Optional. +subdomain => The subdomain of example.com which should be used for + email addresses. +group => The name of the group these users should belong to. Creates + the group if it does not yet exist. +privileged => Whether the users should be able to be granted rights. + Default is 1. +attributes => a ref to a list of hashrefs containing the arguments for + any unsupported attribute we should add to the user (for example, a + user saved search.) + +=back + +=cut + +sub create_users { + my %ARGS = (number => 1, + subdomain => undef, + privileged => 1, + @_); + my $lorem = Text::Lorem->new(); + my @users_returned; + + my @usernames; + my $anon; + if ($ARGS{'users'}) { + @usernames = @{$ARGS{'users'}}; + $anon = 0; + } else { + @usernames = split(/\s+/, $lorem->words($ARGS{'number'})); + $anon = 1; + } + + my $domain = 'example.com'; + $domain = $ARGS{'subdomain'} . ".$domain" if $ARGS{'subdomain'}; + + foreach my $user (@usernames) { + my $user_obj = RT::User->new($RT::SystemUser); + $user_obj->Load($user); + if ($user_obj->Id() && !$anon) { + # Use this user; assume we know what we're doing. Don't + # modify it, other than adding it to any group specified. + push(@users_returned, $user_obj); + } elsif ($user_obj->Id()) { + # Oops. Get a different username and stick it on the back + # of the list. + append(@users, $lorem->words(1)); + } else { + $user_obj->Create(Name => $user, + Password => $user."pass", + EmailAddress => $user.'@'.$domain, + RealName => "$user ipsum", + Privileged => $ARGS{'privileged'}, + ); + push(@users_returned, $user_obj); + } + } + + # Now we have our list of users. Did we have groups to add them + # to? + + if ($ARGS{'groups'}) { + my @groups = @{$ARGS{'groups'}}; + foreach my $group (@groups) { + my $group_obj = RT::Group->new(); + $group_obj->LoadUserDefinedGroup($group); + unless ($group_obj->Id()) { + # Create it. + $group_obj->CreateUserDefinedGroup( + Name => $group, + Description => "lorem defined group $group", + ); + } + foreach (@users_returned) { + $group_obj->AddMember($_->Id); + } + } + } + + # Do we have attributes to apply to the users? + if ($ARGS{'attributes'}) { + foreach my $attrib (@{$ARGS{'attributes'}}) { + my %attr_args = %{$attrib}; + foreach (@users_returned) { + $_->AddAttribute(%attr_args); + } + } + } + + # Return our list of users. + return \@users_returned; +} + +#### Generate any RT groups. These ought to be named, by function. +#### The group names should be given either as part of user creation, +#### or as a name with a number of subgroups which should be members. + + +#### Generate some queues. Users/groups who have permissions on +#### queues need to be specified on this point. Permissions can be +#### specified by role, e.g. "client" or "staffmember" or "admin" for +#### each queue. If the queue should have anything special like a +#### custom field, say so here. + + +#### Generate some tickets and transactions. diff --git a/rt/lib/t/regression/01ticket_link_searching.t b/rt/lib/t/regression/01ticket_link_searching.t new file mode 100644 index 000000000..6d10221c1 --- /dev/null +++ b/rt/lib/t/regression/01ticket_link_searching.t @@ -0,0 +1,155 @@ +#!/usr/bin/perl -w + +use Test::More tests => 25; +use strict; +use RT; + +# Load the config file +RT::LoadConfig(); + +#Connect to the database and get RT::SystemUser and RT::Nobody loaded +RT::Init(); + +#Get the current user all loaded +my $CurrentUser = $RT::SystemUser; + +my $queue = new RT::Queue($CurrentUser); +$queue->Load('General') || Abort(loc("Queue could not be loaded.")); + +my $child_ticket = new RT::Ticket( $CurrentUser ); + +my ( $childid ) = $child_ticket->Create + ( Subject => 'test child', + Queue => $queue->Id); + +ok($childid != 0); + +my $parent_ticket = new RT::Ticket( $CurrentUser ); + +my ( $parentid ) = $parent_ticket->Create + ( Subject => 'test parent', + Children => [$childid], + Queue => $queue->Id); + +ok($parentid != 0, "We created a parent ticket"); + +my $Collection = RT::Tickets->new($CurrentUser); +$Collection->LimitMemberOf ($parentid); + +ok ($Collection->First); +is ($Collection->First->id, $childid, "We found the collection of all children of $parentid with Limit"); +is($Collection->Count,1, "We found only one result"); + +$Collection = RT::Tickets->new($CurrentUser); +$Collection->FromSQL( "MemberOf = $parentid"); +is ($Collection->First->id, $childid, "We found the collection of all children of $parentid with TicketSQL"); +is($Collection->Count,1, "We found only one result"); + + + + + +$Collection = RT::Tickets->new($CurrentUser); +$Collection->LimitHasMember ($childid); + +ok ($Collection->First); +is ($Collection->First->id, $parentid, "We found the collection of all parents of $childid with Limit"); +is($Collection->Count,1, "We found only one result"); + + + +$Collection = RT::Tickets->new($CurrentUser); +$Collection->FromSQL("HasMember = $childid"); + +ok ($Collection->First); +is ($Collection->First->id, $parentid, "We found the collection of all parents of $childid with TicketSQL"); +is($Collection->Count,1, "We found only one result"); + + + +# Now we find a collection of all the tickets which have no members. they should have no children. +$Collection = RT::Tickets->new($CurrentUser); +$Collection->LimitHasMember(''); +# must contain child; must not contain parent +my %has; +while (my $t = $Collection->Next) { + ++$has{$t->id}; +} +ok ($has{$childid} , "The collection has our child - $childid"); +ok( !$has{$parentid}, "The collection doesn't have our parent - $parentid"); + + + + +# Now we find a collection of all the tickets which are not members of anything. they should have no parents. +$Collection = RT::Tickets->new($CurrentUser); +$Collection->LimitMemberOf(''); +# must contain parent; must not contain child +%has = (); +while (my $t = $Collection->Next) { + ++$has{$t->id}; +} +ok ($has{$parentid} , "The collection has our parent - $parentid"); +ok( !$has{$childid}, "The collection doesn't have our child - $childid"); + + +# Do it all over with TicketSQL +# + + + +# Now we find a collection of all the tickets which have no members. they should have no children. +$Collection = RT::Tickets->new($CurrentUser); +$Collection->FromSQL ("HasMember IS NULL"); +# must contain parent; must not contain child + %has = (); +while (my $t = $Collection->Next) { + ++$has{$t->id}; +} +ok (!$has{$parentid} , "The collection doesn't have our parent - $parentid"); +ok( $has{$childid}, "The collection has our child - $childid"); + + +# Now we find a collection of all the tickets which have no members. they should have no children. +# Alternate syntax +$Collection = RT::Tickets->new($CurrentUser); +$Collection->FromSQL ("HasMember = ''"); +# must contain parent; must not contain child + %has = (); +while (my $t = $Collection->Next) { + ++$has{$t->id}; +} +ok (!$has{$parentid} , "The collection doesn't have our parent - $parentid"); +ok( $has{$childid}, "The collection has our child - $childid"); + + + +# Now we find a collection of all the tickets which are not members of anything. they should have no parents. +$Collection = RT::Tickets->new($CurrentUser); +$Collection->FromSQL("MemberOf IS NULL"); +# must not contain parent; must contain parent +%has = (); +while (my $t = $Collection->Next) { + ++$has{$t->id}; +} +ok ($has{$parentid} , "The collection has our parent - $parentid"); +ok(!$has{$childid}, "The collection doesn't have our child - $childid"); + + +# Now we find a collection of all the tickets which are not members of anything. they should have no parents. +$Collection = RT::Tickets->new($CurrentUser); +$Collection->FromSQL("MemberOf = ''"); +# must not contain parent; must contain parent +%has = (); +while (my $t = $Collection->Next) { + ++$has{$t->id}; +} +ok ($has{$parentid} , "The collection has our parent - $parentid"); +ok(!$has{$childid}, "The collection doesn't have our child - $childid"); + + + + +1; + + diff --git a/rt/lib/t/regression/02basic_web.t b/rt/lib/t/regression/02basic_web.t new file mode 100644 index 000000000..d3376d011 --- /dev/null +++ b/rt/lib/t/regression/02basic_web.t @@ -0,0 +1,150 @@ +#!/usr/bin/perl + +use strict; +use Test::More tests => 17; +use WWW::Mechanize; +use HTTP::Request::Common; +use HTTP::Cookies; +use LWP; +use Encode; + +my $cookie_jar = HTTP::Cookies->new; +my $agent = WWW::Mechanize->new(); + +# give the agent a place to stash the cookies + +$agent->cookie_jar($cookie_jar); + +use RT; +RT::LoadConfig; + +# get the top page +my $url = $RT::WebURL; +$agent->get($url); + +is ($agent->{'status'}, 200, "Loaded a page"); + + +# {{{ test a login + +# follow the link marked "Login" + +ok($agent->{form}->find_input('user')); + +ok($agent->{form}->find_input('pass')); +ok ($agent->{'content'} =~ /username:/i); +$agent->field( 'user' => 'root' ); +$agent->field( 'pass' => 'password' ); +# the field isn't named, so we have to click link 0 +$agent->click(0); +is($agent->{'status'}, 200, "Fetched the page ok"); +ok( $agent->{'content'} =~ /Logout/i, "Found a logout link"); + + + +$agent->get($url."Ticket/Create.html?Queue=1"); +is ($agent->{'status'}, 200, "Loaded Create.html"); +$agent->form(3); +# Start with a string containing characters in latin1 +my $string = "I18N Web Testing æøå"; +Encode::from_to($string, 'iso-8859-1', 'utf8'); +$agent->field('Subject' => "Ticket with utf8 body"); +$agent->field('Content' => $string); +ok($agent->submit(), "Created new ticket with $string as Content"); +ok( $agent->{'content'} =~ qr{$string} , "Found the content"); +$agent->get($url."Ticket/Create.html?Queue=1"); +is ($agent->{'status'}, 200, "Loaded Create.html"); +$agent->form(3); +# Start with a string containing characters in latin1 +my $string = "I18N Web Testing æøå"; +Encode::from_to($string, 'iso-8859-1', 'utf8'); +$agent->field('Subject' => $string); +$agent->field('Content' => "Ticket with utf8 subject"); +ok($agent->submit(), "Created new ticket with $string as Subject"); + +ok( $agent->{'content'} =~ qr{$string} , "Found the content"); + + + +# }}} + +# {{{ Query Builder tests + +my $response = $agent->get($url."Search/Build.html"); +ok( $response->is_success, "Fetched " . $url."Search/Build.html" ); + +# Parsing TicketSQL +# +# Adding items + +# set the first value +ok($agent->form_name('BuildQuery')); +$agent->field("AttachmentField", "Subject"); +$agent->field("AttachmentOp", "LIKE"); +$agent->field("ValueOfAttachment", "aaa"); +$agent->submit(); + +# set the next value +ok($agent->form_name('BuildQuery')); +$agent->field("AttachmentField", "Subject"); +$agent->field("AttachmentOp", "LIKE"); +$agent->field("ValueOfAttachment", "bbb"); +$agent->submit(); + +ok($agent->form_name('BuildQuery')); + +# get the query +my $query = $agent->current_form->find_input("Query")->value; +# strip whitespace from ends +$query =~ s/^\s*//g; +$query =~ s/\s*$//g; + +# collapse other whitespace +$query =~ s/\s+/ /g; + +is ($query, "Subject LIKE 'aaa' AND Subject LIKE 'bbb'"); + +# - new items go one level down +# - add items at currently selected level +# - if nothing is selected, add at end, one level down +# +# move left +# - error if nothing selected +# - same item should be selected after move +# - can't move left if you're at the top level +# +# move right +# - error if nothing selected +# - same item should be selected after move +# - can always move right (no max depth...should there be?) +# +# move up +# - error if nothing selected +# - same item should be selected after move +# - can't move up if you're first in the list +# +# move down +# - error if nothing selected +# - same item should be selected after move +# - can't move down if you're last in the list +# +# toggle +# - error if nothing selected +# - change all aggregators in the grouping +# - don't change any others +# +# delete +# - error if nothing selected +# - delete currently selected item +# - delete all children of a grouping +# - if delete leaves a node with no children, delete that, too +# - what should be selected? +# +# Clear +# - clears entire query +# - clears it from the session, too + +# }}} + + +1; diff --git a/rt/lib/t/regression/03web_compiliation_errors.t b/rt/lib/t/regression/03web_compiliation_errors.t new file mode 100644 index 000000000..f2e62c98d --- /dev/null +++ b/rt/lib/t/regression/03web_compiliation_errors.t @@ -0,0 +1,66 @@ +#!/usr/bin/perl + +use strict; +use Test::More qw/no_plan/; +use WWW::Mechanize; +use HTTP::Request::Common; +use HTTP::Cookies; +use LWP; +use Encode; + +my $cookie_jar = HTTP::Cookies->new; +my $agent = WWW::Mechanize->new(); + +# give the agent a place to stash the cookies + +$agent->cookie_jar($cookie_jar); + +use RT; +RT::LoadConfig; + +# get the top page +my $url = $RT::WebURL; +$agent->get($url); + +is ($agent->{'status'}, 200, "Loaded a page"); + + +# {{{ test a login + +# follow the link marked "Login" + +ok($agent->{form}->find_input('user')); + +ok($agent->{form}->find_input('pass')); +ok ($agent->{'content'} =~ /username:/i); +$agent->field( 'user' => 'root' ); +$agent->field( 'pass' => 'password' ); +# the field isn't named, so we have to click link 0 +$agent->click(0); +is($agent->{'status'}, 200, "Fetched the page ok"); +ok( $agent->{'content'} =~ /Logout/i, "Found a logout link"); + + +use File::Find; +find ( \&wanted , 'html/'); + +sub wanted { + -f && /\.html$/ && $_ !~ /Logout.html$/ && test_get($File::Find::name); +} + +sub test_get { + my $file = shift; + + + $file =~ s#^html/##; + ok ($agent->get("$url/$file", "GET $url/$file")); + is ($agent->{'status'}, 200, "Loaded $file"); +# ok( $agent->{'content'} =~ /Logout/i, "Found a logout link on $file "); + ok( $agent->{'content'} !~ /Not logged in/i, "Still logged in for $file"); + ok( $agent->{'content'} !~ /System error/i, "Didn't get a Mason compilation error on $file"); + +} + +# }}} + +1; diff --git a/rt/lib/t/regression/04send_email.t b/rt/lib/t/regression/04send_email.t new file mode 100644 index 000000000..09e6e6f84 --- /dev/null +++ b/rt/lib/t/regression/04send_email.t @@ -0,0 +1,511 @@ +#!/usr/bin/perl -w + +use strict; +use Test::More tests => 137; +use RT; +RT::LoadConfig(); +RT::Init; +use RT::EmailParser; +use RT::Tickets; +use RT::Action::SendEmail; + +my @_outgoing_messages; +my @scrips_fired; + +#We're not testing acls here. +my $everyone = RT::Group->new($RT::SystemUser); +$everyone->LoadSystemInternalGroup('Everyone'); +$everyone->PrincipalObj->GrantRight(Right =>'SuperUser'); + + +is (__PACKAGE__, 'main', "We're operating in the main package"); + + +{ +no warnings qw/redefine/; +sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + + main::_fired_scrip($self->ScripObj); + main::ok(ref($MIME) eq 'MIME::Entity', "hey, look. it's a mime entity"); +} + +} + +# instrument SendEmail to pass us what it's about to send. +# create a regular ticket + +my $parser = RT::EmailParser->new(); + + +# Let's test to make sure a multipart/report is processed correctly +my $content = `cat $RT::BasePath/lib/t/data/multipart-report` || die "couldn't find new content"; +# be as much like the mail gateway as possible. +use RT::Interface::Email; + +my %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +my $tick= $tickets->First(); +isa_ok($tick, "RT::Ticket", "got a ticket object"); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /The original message was received/, "It's the bounce"); + + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); + +undef @scrips_fired; + + + + +$parser->ParseMIMEEntityFromScalar('From: root@localhost +To: rt@example.com +Subject: This is a test of new ticket creation as an unknown user + +Blah! +Foob!'); + + +use Data::Dumper; + +my $ticket = RT::Ticket->new($RT::SystemUser); +my ($id, undef, $msg ) = $ticket->Create(Requestor => ['root@localhost'], Queue => 'general', Subject => 'I18NTest', MIMEObj => $parser->Entity); +ok ($id,$msg); +$tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); + $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); +ok ($tick->Subject eq 'I18NTest', "failed to create the new ticket from an unprivileged account"); + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); +# make sure it sends an autoreply +# make sure it sends a notification to adminccs + + +# we need to swap out SendMessage to test the new things we care about; +&utf8_redef_sendmessage; + +# create an iso 8859-1 ticket +@scrips_fired = (); + +$content = `cat $RT::BasePath/lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; + + + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +use RT::Interface::Email; + + %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); + $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); + $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); + + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); +# make sure it sends an autoreply + + +# make sure it sends a notification to adminccs + +# If we correspond, does it do the right thing to the outbound messages? + +$parser->ParseMIMEEntityFromScalar($content); + ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); +ok ($id, $msg); + +$parser->ParseMIMEEntityFromScalar($content); +($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); +ok ($id, $msg); + + + + + +# we need to swap out SendMessage to test the new things we care about; +&iso8859_redef_sendmessage; +$RT::EmailOutputEncoding = 'iso-8859-1'; +# create an iso 8859-1 ticket +@scrips_fired = (); + + $content = `cat $RT::BasePath/lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; +# be as much like the mail gateway as possible. +use RT::Interface::Email; + + %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); +$tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); + $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); + + +# make sure it fires scrips. +is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); +# make sure it sends an autoreply + + +# make sure it sends a notification to adminccs + + +# If we correspond, does it do the right thing to the outbound messages? + +$parser->ParseMIMEEntityFromScalar($content); + ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); +ok ($id, $msg); + +$parser->ParseMIMEEntityFromScalar($content); +($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); +ok ($id, $msg); + + +sub _fired_scrip { + my $scrip = shift; + push @scrips_fired, $scrip; +} + +sub utf8_redef_sendmessage { + no warnings qw/redefine/; + eval ' + sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + + my $scrip = $self->ScripObj->id; + ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); + main::_fired_scrip($self->ScripObj); + $MIME->make_singlepart; + main::ok( ref($MIME) eq \'MIME::Entity\', + "hey, look. it\'s a mime entity" ); + main::ok( ref( $MIME->head ) eq \'MIME::Head\', + "its mime header is a mime header. yay" ); + main::ok( $MIME->head->get(\'Content-Type\') =~ /utf-8/, + "Its content type is utf-8" ); + my $message_as_string = $MIME->bodyhandle->as_string(); + use Encode; + $message_as_string = Encode::decode_utf8($message_as_string); + main::ok( + $message_as_string =~ /H\x{e5}vard/, +"The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); + + }'; +} + +sub iso8859_redef_sendmessage { + no warnings qw/redefine/; + eval ' + sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + + my $scrip = $self->ScripObj->id; + ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); + main::_fired_scrip($self->ScripObj); + $MIME->make_singlepart; + main::ok( ref($MIME) eq \'MIME::Entity\', + "hey, look. it\'s a mime entity" ); + main::ok( ref( $MIME->head ) eq \'MIME::Head\', + "its mime header is a mime header. yay" ); + main::ok( $MIME->head->get(\'Content-Type\') =~ /iso-8859-1/, + "Its content type is iso-8859-1 - " . $MIME->head->get("Content-Type") ); + my $message_as_string = $MIME->bodyhandle->as_string(); + use Encode; + $message_as_string = Encode::decode("iso-8859-1",$message_as_string); + main::ok( + $message_as_string =~ /H\x{e5}vard/, "The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); + + }'; +} + +# {{{ test a multipart alternative containing a text-html part with an umlaut + + $content = `cat $RT::BasePath/lib/t/data/multipart-alternative-with-umlaut` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +¨auts_redef_sendmessage; + + %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); + $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); + $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /causes Error/, "We recorded the content right as text-plain"); +is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments, presumably a text-plain, a text-html and a multipart alternative"); + +sub umlauts_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { }'; +} + +# }}} + +# {{{ test a text-html message with an umlaut + + $content = `cat $RT::BasePath/lib/t/data/text-html-with-umlaut` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_html_umlauts_redef_sendmessage; + + %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); + $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); + $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Attachments->First->Content =~ /causes Error/, "We recorded the content as containing 'causes error'"); +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content as text/html"); +ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); + +sub text_html_umlauts_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + use Data::Dumper; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); + is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); + is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); + is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); + }'; +} + +# }}} + +# {{{ test a text-html message with russian characters + + $content = `cat $RT::BasePath/lib/t/data/text-html-in-russian` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_html_russian_redef_sendmessage; + + %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); + $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); + $tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content right as text-html"); +ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); + +sub text_html_russian_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + use Data::Dumper; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); + is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); + is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); + is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); + my $content_1251; + $content_1251 = $MIME->parts(1)->bodyhandle->as_string(); + ok ($content_1251 =~ qr{Ó÷eáíûé Öeíòp "ÊÀÄÐÛ ÄÅËÎÂÎÃÎ ÌÈÐÀ" ïpèãëaøaeò ía òpeíèíã:}, +"Content matches drugim in codepage 1251" ); + }'; +} + +# }}} + +# {{{ test a message containing a russian subject and NO content type + +unshift (@RT::EmailInputEncodings, 'koi8-r'); +$RT::EmailOutputEncoding = 'koi8-r'; +$content = `cat $RT::BasePath/lib/t/data/russian-subject-no-content-type` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_plain_russian_redef_sendmessage; + %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); + $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +$tick= $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/plain/, "We recorded the content type right"); +ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-plain"); +is ($tick->Subject, "\x{442}\x{435}\x{441}\x{442} \x{442}\x{435}\x{441}\x{442}", "Recorded the subject right"); +sub text_plain_russian_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + is ($MIME->head->mime_type , "text/plain", "The only part is text/plain "); + my $subject = $MIME->head->get("subject"); + chomp($subject); + #is( $subject , /^=\?KOI8-R\?B\?W2V4YW1wbGUuY39tICM3XSDUxdPUINTF09Q=\?=/ , "The $subject is encoded correctly"); + }; + '; +} + +shift @RT::EmailInputEncodings; +$RT::EmailOutputEncoding = 'utf-8'; +# }}} + + +# {{{ test a message containing a nested RFC 822 message + + $content = `cat $RT::BasePath/lib/t/data/nested-rfc-822` || die "couldn't find new content"; +ok ($content, "Loaded nested-rfc-822 to test"); + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&text_plain_nested_redef_sendmessage; + %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); + $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +$tick= $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); +is ($tick->Subject, "[Jonas Liljegren] Re: [Para] Niv\x{e5}er?"); +ok ($tick->Transactions->First->Attachments->First->ContentType =~ /multipart\/mixed/, "We recorded the content type right"); +is ($tick->Transactions->First->Attachments->Count , 5 , "Has one attachment, presumably a text-plain and a message RFC 822 and another plain"); +sub text_plain_nested_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { + my $self = shift; + my $MIME = shift; + return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); + is ($MIME->head->mime_type , "multipart/mixed", "It is a mixed multipart"); + my $subject = $MIME->head->get("subject"); + $subject = MIME::Base64::decode_base64( $subject); + chomp($subject); + # TODO, why does this test fail + #ok($subject =~ qr{Niv\x{e5}er}, "The subject matches the word - $subject"); + 1; + }'; +} + +# }}} + + +# {{{ test a multipart alternative containing a uuencoded mesage generated by lotus notes + + $content = `cat $RT::BasePath/lib/t/data/notes-uuencoded` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +¬es_redef_sendmessage; + + %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); +$tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +$tick= $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /from Lotus Notes/, "We recorded the content right"); +is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments"); + +sub notes_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { }'; +} + +# }}} + +# {{{ test a multipart that crashes the file-based mime-parser works + + $content = `cat $RT::BasePath/lib/t/data/crashes-file-based-parser` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + +# be as much like the mail gateway as possible. +&crashes_redef_sendmessage; + + %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); + $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +$tick= $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +ok ($tick->Transactions->First->Content =~ /FYI/, "We recorded the content right"); +is ($tick->Transactions->First->Attachments->Count , 5 , "Has three attachments"); + +sub crashes_redef_sendmessage { + no warnings qw/redefine/; + eval 'sub RT::Action::SendEmail::SendMessage { }'; +} + + + +# }}} + +# {{{ test a multi-line RT-Send-CC header + + $content = `cat $RT::BasePath/lib/t/data/rt-send-cc` || die "couldn't find new content"; + +$parser->ParseMIMEEntityFromScalar($content); + + + + %args = (message => $content, queue => 1, action => 'correspond'); + RT::Interface::Email::Gateway(\%args); + $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +$tick= $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); + +my $cc = $tick->Transactions->First->Attachments->First->GetHeader('RT-Send-Cc'); +ok ($cc =~ /test1/, "Found test 1"); +ok ($cc =~ /test2/, "Found test 2"); +ok ($cc =~ /test3/, "Found test 3"); +ok ($cc =~ /test4/, "Found test 4"); +ok ($cc =~ /test5/, "Found test 5"); + +# }}} + +# Don't taint the environment +$everyone->PrincipalObj->RevokeRight(Right =>'SuperUser'); +1; diff --git a/rt/lib/t/regression/05cronsupport.t b/rt/lib/t/regression/05cronsupport.t new file mode 100644 index 000000000..8e5bd7516 --- /dev/null +++ b/rt/lib/t/regression/05cronsupport.t @@ -0,0 +1,91 @@ +#!/usr/bin/perl -w + +use strict; +use Test::More qw/no_plan/; + +use RT; +RT::LoadConfig(); +RT::Init(); + +### Set up some testing data. Test the testing data because why not? + +# Create a user with rights, a queue, and some tickets. +my $user_obj = RT::User->new($RT::SystemUser); +my ($ret, $msg) = $user_obj->LoadOrCreateByEmail('tara@example.com'); +ok($ret, 'record test user creation'); +$user_obj->SetName('tara'); +$user_obj->PrincipalObj->GrantRight(Right => 'SuperUser'); +my $CurrentUser = RT::CurrentUser->new('tara'); + +# Create our template, which will be used for tests of RT::Action::Record*. + +my $template_content = 'RT-Send-Cc: tla@example.com +RT-Send-Bcc: jesse@example.com + +This is a content string with no content.'; + +my $template_obj = RT::Template->new($CurrentUser); +$template_obj->Create(Queue => '0', + Name => 'recordtest', + Description => 'testing Record actions', + Content => $template_content, + ); + +# Create a queue and some tickets. + +my $queue_obj = RT::Queue->new($CurrentUser); +($ret, $msg) = $queue_obj->Create(Name => 'recordtest', Description => 'queue for Action::Record testing'); +ok($ret, 'record test queue creation'); + +my $ticket1 = RT::Ticket->new($CurrentUser); +my ($id, $tobj, $msg2) = $ticket1->Create(Queue => $queue_obj, + Requestor => ['tara@example.com'], + Subject => 'bork bork bork', + Priority => 22, + ); +ok($id, 'record test ticket creation 1'); +my $ticket2 = RT::Ticket->new($CurrentUser); +($id, $tobj, $msg2) = $ticket2->Create(Queue => $queue_obj, + Requestor => ['root@localhost'], + Subject => 'hurdy gurdy' + ); +ok($id, 'record test ticket creation 2'); + + +### OK. Have data, will travel. + +# First test the search. + +ok(require RT::Search::FromSQL, "Search::FromSQL loaded"); +my $ticketsqlstr = "Requestor.EmailAddress = '" . $CurrentUser->EmailAddress . + "' AND Priority > '20'"; +my $search = RT::Search::FromSQL->new(Argument => $ticketsqlstr, TicketsObj => RT::Tickets->new($CurrentUser), + ); +is(ref($search), 'RT::Search::FromSQL', "search created"); +ok($search->Prepare(), "fromsql search run"); +my $counter = 0; +while(my $t = $search->TicketsObj->Next() ) { + is($t->Id(), $ticket1->Id(), "fromsql search results 1"); + $counter++; +} +is ($counter, 1, "fromsql search results 2"); + +# Right. Now test the actions. + +ok(require RT::Action::RecordComment); +ok(require RT::Action::RecordCorrespondence); + +my ($comment_act, $correspond_act); +ok($comment_act = RT::Action::RecordComment->new(TicketObj => $ticket1, TemplateObj => $template_obj, CurrentUser => $CurrentUser), "RecordComment created"); +ok($correspond_act = RT::Action::RecordCorrespondence->new(TicketObj => $ticket2, TemplateObj => $template_obj, CurrentUser => $CurrentUser), "RecordCorrespondence created"); +ok($comment_act->Prepare(), "Comment prepared"); +ok($correspond_act->Prepare(), "Correspond prepared"); +ok($comment_act->Commit(), "Comment committed"); +ok($correspond_act->Commit(), "Correspondence committed"); + +# Now test for loop suppression. +my ($trans, $desc, $transaction) = $ticket2->Comment(MIMEObj => $template_obj->MIMEObj); +my $bogus_action = RT::Action::RecordComment->new(TicketObj => $ticket1, TemplateObj => $template_obj, TransactionObj => $transaction, CurrentUser => $CurrentUser); +ok(!$bogus_action->Prepare(), "Comment aborted to prevent loop"); + +1; diff --git a/rt/lib/t/regression/06mailgateway.t b/rt/lib/t/regression/06mailgateway.t new file mode 100644 index 000000000..8486aea9e --- /dev/null +++ b/rt/lib/t/regression/06mailgateway.t @@ -0,0 +1,504 @@ +#!/usr/bin/perl -w +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC +# <jesse.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 }}} + +=head1 NAME + +rt-mailgate - Mail interface to RT3. + +=cut + +use strict; +use Test::More tests => 57; +use RT; +RT::LoadConfig(); +RT::Init(); +use RT::I18N; +# Make sure that when we call the mailgate wrong, it tempfails + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url http://this.test.for.non-connection.is.expected.to.generate.an.error"), "Opened the mailgate - The error below is expected - $@"); +print MAIL <<EOF; +From: root\@localhost +To: rt\@example.com +Subject: This is a test of new ticket creation + +Foob! +EOF +close (MAIL); + +# Check the return value +is ( $? >> 8, 75, "The error message above is expected The mail gateway exited with a failure. yay"); + + +# {{{ Test new ticket creation by root who is privileged and superuser + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action correspond"), "Opened the mailgate - $@"); +print MAIL <<EOF; +From: root\@localhost +To: rt\@example.com +Subject: This is a test of new ticket creation + +Blah! +Foob! +EOF +close (MAIL); + +#Check the return value +is ($? >> 8, 0, "The mail gateway exited normally. yay"); + +use RT::Tickets; +my $tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id', OPERATOR => '>', VALUE => '0'); +my $tick = $tickets->First(); +ok (UNIVERSAL::isa($tick,'RT::Ticket')); +ok ($tick->Id, "found ticket ".$tick->Id); +ok ($tick->Subject eq 'This is a test of new ticket creation', "Created the ticket"); + +# }}} + + +# {{{This is a test of new ticket creation as an unknown user + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action correspond"), "Opened the mailgate - $@"); +print MAIL <<EOF; +From: doesnotexist\@example.com +To: rt\@example.com +Subject: This is a test of new ticket creation as an unknown user + +Blah! +Foob! +EOF +close (MAIL); +#Check the return value +is ($? >> 8, 0, "The mail gateway exited normally. yay"); + +$tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +$tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); +ok ($tick->Subject ne 'This is a test of new ticket creation as an unknown user', "failed to create the new ticket from an unprivileged account"); +my $u = RT::User->new($RT::SystemUser); +$u->Load('doesnotexist@example.com'); +ok( $u->Id == 0, " user does not exist and was not created by failed ticket submission"); + + +# }}} + +# {{{ now everybody can create tickets. can a random unkown user create tickets? + +my $g = RT::Group->new($RT::SystemUser); +$g->LoadSystemInternalGroup('Everyone'); +ok( $g->Id, "Found 'everybody'"); + +my ($val,$msg) = $g->PrincipalObj->GrantRight(Right => 'CreateTicket'); +ok ($val, "Granted everybody the right to create tickets - $msg"); + + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action correspond"), "Opened the mailgate - $@"); +print MAIL <<EOF; +From: doesnotexist\@example.com +To: rt\@example.com +Subject: This is a test of new ticket creation as an unknown user + +Blah! +Foob! +EOF +close (MAIL); +#Check the return value +is ($? >> 8, 0, "The mail gateway exited normally. yay"); + + +$tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); +$tick = $tickets->First(); +ok ($tick->Id, "found ticket ".$tick->Id); +ok ($tick->Subject eq 'This is a test of new ticket creation as an unknown user', "failed to create the new ticket from an unprivileged account"); + $u = RT::User->new($RT::SystemUser); +$u->Load('doesnotexist@example.com'); +ok( $u->Id != 0, " user does not exist and was created by ticket submission"); + +# }}} + + +# {{{ can another random reply to a ticket without being granted privs? answer should be no. + + +#($val,$msg) = $g->PrincipalObj->GrantRight(Right => 'CreateTicket'); +#ok ($val, "Granted everybody the right to create tickets - $msg"); + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action correspond"), "Opened the mailgate - $@"); +print MAIL <<EOF; +From: doesnotexist-2\@example.com +To: rt\@example.com +Subject: [example.com #@{[$tick->Id]}] This is a test of a reply as an unknown user + +Blah! (Should not work.) +Foob! +EOF +close (MAIL); +#Check the return value +is ($? >> 8, 0, "The mail gateway exited normally. yay"); + +$u = RT::User->new($RT::SystemUser); +$u->Load('doesnotexist-2@example.com'); +ok( $u->Id == 0, " user does not exist and was not created by ticket correspondence submission"); +# }}} + + +# {{{ can another random reply to a ticket after being granted privs? answer should be yes + + +($val,$msg) = $g->PrincipalObj->GrantRight(Right => 'ReplyToTicket'); +ok ($val, "Granted everybody the right to reply to tickets - $msg"); + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action correspond"), "Opened the mailgate - $@"); +print MAIL <<EOF; +From: doesnotexist-2\@example.com +To: rt\@example.com +Subject: [example.com #@{[$tick->Id]}] This is a test of a reply as an unknown user + +Blah! +Foob! +EOF +close (MAIL); +#Check the return value +is ($? >> 8, 0, "The mail gateway exited normally. yay"); + + +$u = RT::User->new($RT::SystemUser); +$u->Load('doesnotexist-2@example.com'); +ok( $u->Id != 0, " user exists and was created by ticket correspondence submission"); + +# }}} + +# {{{ can another random comment on a ticket without being granted privs? answer should be no. + + +#($val,$msg) = $g->PrincipalObj->GrantRight(Right => 'CreateTicket'); +#ok ($val, "Granted everybody the right to create tickets - $msg"); + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action comment"), "Opened the mailgate - $@"); +print MAIL <<EOF; +From: doesnotexist-3\@example.com +To: rt\@example.com +Subject: [example.com #@{[$tick->Id]}] This is a test of a comment as an unknown user + +Blah! (Should not work.) +Foob! +EOF +close (MAIL); + +#Check the return value +is ($? >> 8, 0, "The mail gateway exited normally. yay"); + +$u = RT::User->new($RT::SystemUser); +$u->Load('doesnotexist-3@example.com'); +ok( $u->Id == 0, " user does not exist and was not created by ticket comment submission"); + +# }}} +# {{{ can another random reply to a ticket after being granted privs? answer should be yes + + +($val,$msg) = $g->PrincipalObj->GrantRight(Right => 'CommentOnTicket'); +ok ($val, "Granted everybody the right to reply to tickets - $msg"); + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action comment"), "Opened the mailgate - $@"); +print MAIL <<EOF; +From: doesnotexist-3\@example.com +To: rt\@example.com +Subject: [example.com #@{[$tick->Id]}] This is a test of a comment as an unknown user + +Blah! +Foob! +EOF +close (MAIL); + +#Check the return value +is ($? >> 8, 0, "The mail gateway exited normally. yay"); + +$u = RT::User->new($RT::SystemUser); +$u->Load('doesnotexist-3@example.com'); +ok( $u->Id != 0, " user exists and was created by ticket comment submission"); + +# }}} + +# {{{ Testing preservation of binary attachments + +# Get a binary blob (Best Practical logo) + +# Create a mime entity with an attachment + +use MIME::Entity; +my $entity = MIME::Entity->build( From => 'root@localhost', + To => 'rt@localhost', + Subject => 'binary attachment test', + Data => ['This is a test of a binary attachment']); + +# currently in lib/t/autogen + +my $LOGO_FILE = $RT::MasonComponentRoot.'/NoAuth/images/bplogo.gif'; + +$entity->attach(Path => $LOGO_FILE, + Type => 'image/gif', + Encoding => 'base64'); + +# Create a ticket with a binary attachment +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action correspond"), "Opened the mailgate - $@"); + +$entity->print(\*MAIL); + +close (MAIL); + +#Check the return value +is ($? >> 8, 0, "The mail gateway exited normally. yay"); + +$tickets = RT::Tickets->new($RT::SystemUser); +$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets->Limit(FIELD => 'id', OPERATOR => '>', VALUE => '0'); + $tick = $tickets->First(); +ok (UNIVERSAL::isa($tick,'RT::Ticket')); +ok ($tick->Id, "found ticket ".$tick->Id); +ok ($tick->Subject eq 'binary attachment test', "Created the ticket - ".$tick->Id); + +my $file = `cat $LOGO_FILE`; +ok ($file, "Read in the logo image"); + + + use Digest::MD5; +warn "for the raw file the content is ".Digest::MD5::md5_base64($file); + + + +# Verify that the binary attachment is valid in the database +my $attachments = RT::Attachments->new($RT::SystemUser); +$attachments->Limit(FIELD => 'ContentType', VALUE => 'image/gif'); +ok ($attachments->Count == 1, 'Found only one gif in the database'); +my $attachment = $attachments->First; +ok($attachment->Id); +my $acontent = $attachment->Content; + + warn "coming from the database, the content is ".Digest::MD5::md5_base64($acontent); + +is( $acontent, $file, 'The attachment isn\'t screwed up in the database.'); +# Log in as root +use Getopt::Long; +use LWP::UserAgent; + + +# Grab the binary attachment via the web ui +my $ua = LWP::UserAgent->new(); + +my $full_url = "$RT::WebURL/Ticket/Attachment/".$attachment->TransactionId."/".$attachment->id."/bplogo.gif?&user=root&pass=password"; +my $r = $ua->get( $full_url); + + +# Verify that the downloaded attachment is the same as what we uploaded. +is($file, $r->content, 'The attachment isn\'t screwed up in download'); + + + +# }}} + +# {{{ Simple I18N testing + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action correspond"), "Opened the mailgate - $@"); + +print MAIL <<EOF; +From: root\@localhost +To: rtemail\@example.com +Subject: This is a test of I18N ticket creation +Content-Type: text/plain; charset="utf-8" + +2 accented lines +\303\242\303\252\303\256\303\264\303\273 +\303\241\303\251\303\255\303\263\303\272 +bye +EOF +close (MAIL); + +#Check the return value +is ($? >> 8, 0, "The mail gateway exited normally. yay"); + +my $unitickets = RT::Tickets->new($RT::SystemUser); +$unitickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$unitickets->Limit(FIELD => 'id', OPERATOR => '>', VALUE => '0'); +my $unitick = $unitickets->First(); +ok (UNIVERSAL::isa($unitick,'RT::Ticket')); +ok ($unitick->Id, "found ticket ".$unitick->Id); +ok ($unitick->Subject eq 'This is a test of I18N ticket creation', "Created the ticket - ". $unitick->Subject); + + + +my $unistring = "\303\241\303\251\303\255\303\263\303\272"; +Encode::_utf8_on($unistring); +is ($unitick->Transactions->First->Content, $unitick->Transactions->First->Attachments->First->Content, "Content is ". $unitick->Transactions->First->Attachments->First->Content); +ok($unitick->Transactions->First->Attachments->First->Content =~ /$unistring/i, $unitick->Id." appears to be unicode ". $unitick->Transactions->First->Attachments->First->Id); +# supposedly I18N fails on the second message sent in. + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action correspond"), "Opened the mailgate - $@"); + +print MAIL <<EOF; +From: root\@localhost +To: rtemail\@example.com +Subject: This is a test of I18N ticket creation +Content-Type: text/plain; charset="utf-8" + +2 accented lines +\303\242\303\252\303\256\303\264\303\273 +\303\241\303\251\303\255\303\263\303\272 +bye +EOF +close (MAIL); + +#Check the return value +is ($? >> 8, 0, "The mail gateway exited normally. yay"); + +my $tickets2 = RT::Tickets->new($RT::SystemUser); +$tickets2->OrderBy(FIELD => 'id', ORDER => 'DESC'); +$tickets2->Limit(FIELD => 'id', OPERATOR => '>', VALUE => '0'); +my $tick2 = $tickets2->First(); +ok (UNIVERSAL::isa($tick2,'RT::Ticket')); +ok ($tick2->Id, "found ticket ".$tick2->Id); +ok ($tick2->Subject eq 'This is a test of I18N ticket creation', "Created the ticket"); + + + +$unistring = "\303\241\303\251\303\255\303\263\303\272"; +Encode::_utf8_on($unistring); + +ok ($tick2->Transactions->First->Content =~ $unistring, "It appears to be unicode - ".$tick2->Transactions->First->Content); + +# }}} + + +($val,$msg) = $g->PrincipalObj->RevokeRight(Right => 'CreateTicket'); +ok ($val, $msg); + +=for later + +TODO: { + +# {{{ Check take and resolve actions + +# create ticket that is owned by nobody +use RT::Ticket; +$tick = RT::Ticket->new($RT::SystemUser); +my ($id) = $tick->Create( Queue => 'general', Subject => 'test'); +ok( $id, 'new ticket created' ); +is( $tick->Owner, $RT::Nobody->Id, 'owner of the new ticket is nobody' ); + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action take"), "Opened the mailgate - $@"); +print MAIL <<EOF; +From: root\@localhost +Subject: [example.com \#$id] test + +EOF +close (MAIL); +is ($? >> 8, 0, "The mail gateway exited normally"); + +$tick = RT::Ticket->new($RT::SystemUser); +$tick->Load( $id ); +is( $tick->Id, $id, 'load correct ticket'); +is( $tick->OwnerObj->EmailAddress, 'root@localhost', 'successfuly take ticket via email'); + +# check that there is no text transactions writen +is( $tick->Transactions->Count, 2, 'no superfluous transactions'); + +my $status = ''; +($status, $msg) = $tick->SetOwner( $RT::Nobody->Id, 'Force' ); +ok( $status, 'successfuly changed owner: '. ($msg||'') ); +is( $tick->Owner, $RT::Nobody->Id, 'set owner back to nobody'); + + + + local $TODO = "Advanced mailgate actions require an unsafe configuration"; +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action take-correspond"), "Opened the mailgate - $@"); +print MAIL <<EOF; +From: root\@localhost +Subject: [example.com \#$id] correspondence + +test +EOF +close (MAIL); +is ($? >> 8, 0, "The mail gateway exited normally"); + +$tick = RT::Ticket->new($RT::SystemUser); +$tick->Load( $id ); +is( $tick->Id, $id, 'load correct ticket'); +is( $tick->OwnerObj->EmailAddress, 'root@localhost', 'successfuly take ticket via email'); +my $txns = $tick->Transactions; +$txns->Limit( FIELD => 'Type', VALUE => 'Correspond'); +is( $txns->Last->Subject, "[example.com \#$id] correspondence", 'successfuly add correspond within take via email' ); +# +1 because of auto open +is( $tick->Transactions->Count, 6, 'no superfluous transactions'); + +ok(open(MAIL, "|$RT::BinPath/rt-mailgate --url $RT::WebURL --queue general --action resolve"), "Opened the mailgate - $@"); +print MAIL <<EOF; +From: root\@localhost +Subject: [example.com \#$id] test + +EOF +close (MAIL); +is ($? >> 8, 0, "The mail gateway exited normally"); + +DBIx::SearchBuilder::Record::Cachable->FlushCache; + +$tick = RT::Ticket->new($RT::SystemUser); +$tick->Load( $id ); +is( $tick->Id, $id, 'load correct ticket'); +is( $tick->Status, 'resolved', 'successfuly resolved ticket via email'); +is( $tick->Transactions->Count, 7, 'no superfluous transactions'); + +}; + +=cut + +# }}} + +1; diff --git a/rt/lib/t/regression/07acl.t b/rt/lib/t/regression/07acl.t new file mode 100644 index 000000000..bb1ccdc0b --- /dev/null +++ b/rt/lib/t/regression/07acl.t @@ -0,0 +1,120 @@ +#!/usr/bin/perl -w + +use WWW::Mechanize; +use HTTP::Cookies; + +use Test::More qw/no_plan/; +use RT; +RT::LoadConfig(); +RT::Init(); + +# Create a user with basically no rights, to start. +my $user_obj = RT::User->new($RT::SystemUser); +my ($ret, $msg) = $user_obj->LoadOrCreateByEmail('customer-'.$$.'@example.com'); +ok($ret, 'ACL test user creation'); +$user_obj->SetName('customer-'.$$); +$user_obj->SetPrivileged(1); +($ret, $msg) = $user_obj->SetPassword('customer'); +ok($ret, "ACL test password set. $msg"); + +# Now test the web interface, making sure objects come and go as +# required. + +my $cookie_jar = HTTP::Cookies->new; +my $agent = WWW::Mechanize->new(); + +# give the agent a place to stash the cookies + +$agent->cookie_jar($cookie_jar); + + +# get the top page +my $url = $RT::WebURL; +$agent->get($url); + +is ($agent->{'status'}, 200, "Loaded a page - $RT::WebURL"); +# {{{ test a login + +# follow the link marked "Login" + +ok($agent->{form}->find_input('user')); + +ok($agent->{form}->find_input('pass')); +ok ($agent->{'content'} =~ /username:/i); +$agent->field( 'user' => 'customer-'.$$ ); +$agent->field( 'pass' => 'customer' ); +# the field isn't named, so we have to click link 0 +$agent->click(0); +is($agent->{'status'}, 200, "Fetched the page ok"); +ok($agent->{'content'} =~ /Logout/i, "Found a logout link"); + +# Test for absence of Configure and Preferences tabs. +ok(!$agent->find_link( url => '/Admin/', + text => 'Configuration'), "No config tab" ); +ok(!$agent->find_link( url => '/User/Prefs.html', + text => 'Preferences'), "No prefs pane" ); + +# Now test for their presence, one at a time. Sleep for a bit after +# ACL changes, thanks to the 10s ACL cache. +$user_obj->PrincipalObj->GrantRight(Right => 'ShowConfigTab'); +$agent->reload(); +ok($agent->{'content'} =~ /Logout/i, "Reloaded page successfully"); +ok($agent->find_link( url => '/Admin/', + text => 'Configuration'), "Found config tab" ); +$user_obj->PrincipalObj->RevokeRight(Right => 'ShowConfigTab'); +$user_obj->PrincipalObj->GrantRight(Right => 'ModifySelf'); +$agent->reload(); +ok($agent->{'content'} =~ /Logout/i, "Reloaded page successfully"); +ok($agent->find_link( url => '/User/Prefs.html', + text => 'Preferences'), "Found prefs pane" ); +$user_obj->PrincipalObj->RevokeRight(Right => 'ModifySelf'); + +# Good. Now load the search page and test Load/Save Search. +$agent->follow_link( url => '/Search/Build.html', + text => 'Tickets'); +is($agent->{'status'}, 200, "Fetched search builder page"); +ok($agent->{'content'} !~ /Load saved search/i, "No search loading box"); +ok($agent->{'content'} !~ /Saved searches/i, "No saved searches box"); + +$user_obj->PrincipalObj->GrantRight(Right => 'LoadSavedSearch'); +$agent->reload(); +ok($agent->{'content'} =~ /Load saved search/i, "Search loading box exists"); +ok($agent->{'content'} !~ /input\s+type=.submit.\s+name=.Save./i, + "Still no saved searches box"); + +$user_obj->PrincipalObj->GrantRight(Right => 'CreateSavedSearch'); +$agent->reload(); +ok($agent->{'content'} =~ /Load saved search/i, + "Search loading box still exists"); +ok($agent->{'content'} =~ /input\s+type=.submit.\s+name=.Save./i, + "Saved searches box exists"); + +# Create a group, and a queue, so we can test limited user visibility +# via SelectOwner. + +my $queue_obj = RT::Queue->new($RT::SystemUser); +($ret, $msg) = $queue_obj->Create(Name => 'CustomerQueue', + Description => 'queue for SelectOwner testing'); +ok($ret, "SelectOwner test queue creation. $msg"); +my $group_obj = RT::Group->new($RT::SystemUser); +($ret, $msg) = $group_obj->CreateUserDefinedGroup(Name => 'CustomerGroup', + Description => 'group for SelectOwner testing'); +ok($ret, "SelectOwner test group creation. $msg"); + +# Add our customer to the customer group, and give it queue rights. +($ret, $msg) = $group_obj->AddMember($user_obj->PrincipalObj->Id()); +ok($ret, "Added customer to its group. $msg"); +$group_obj->PrincipalObj->GrantRight(Right => 'OwnTicket', + Object => $queue_obj); +$group_obj->PrincipalObj->GrantRight(Right => 'SeeQueue', + Object => $queue_obj); + +# Now. When we look at the search page we should be able to see +# ourself in the list of possible owners. + +$agent->reload(); +ok($agent->form_name('BuildQuery'), "Yep, form is still there"); +my $input = $agent->current_form->find_input('ValueOfActor'); +ok(grep(/customer-$$/, $input->value_names()), "Found self in the actor listing"); + +1; diff --git a/rt/lib/t/regression/07rights.t b/rt/lib/t/regression/07rights.t new file mode 100644 index 000000000..4764b49d4 --- /dev/null +++ b/rt/lib/t/regression/07rights.t @@ -0,0 +1,110 @@ +#!/usr/bin/perl -w +# BEGIN BPS TAGGED BLOCK {{{ +# +# COPYRIGHT: +# +# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +# <jesse.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 Test::More tests => 14; +use RT; +RT::LoadConfig(); +RT::Init(); +use RT::I18N; +use strict; +no warnings 'once'; + +use RT::Queue; +use RT::ACE; +use RT::User; +use RT::Group; +use RT::Ticket; + + +# clear all global right +my $acl = RT::ACL->new($RT::SystemUser); +$acl->Limit( FIELD => 'RightName', OPERATOR => '!=', VALUE => 'SuperUser' ); +$acl->LimitToObject( $RT::System ); +while( my $ace = $acl->Next ) { + $ace->Delete; +} + +# create new queue to be shure we don't mess with rights +my $queue = RT::Queue->new($RT::SystemUser); +my ($queue_id) = $queue->Create( Name => 'rights'); +ok( $queue_id, 'queue created for rights tests' ); + +# new privileged user to check rights +my $user = RT::User->new( $RT::SystemUser ); +my ($user_id) = $user->Create( Name => 'rights', + EmailAddress => 'rights@localhost', + Privileged => 1, + Password => 'qwe123', + ); +ok( !$user->HasRight( Right => 'OwnTicket', Object => $queue ), "user can't own ticket" ); +ok( !$user->HasRight( Right => 'ReplyToTicket', Object => $queue ), "user can't reply to ticket" ); + +my $group = RT::Group->new( $RT::SystemUser ); +ok( $group->LoadQueueRoleGroup( Queue => $queue_id, Type=> 'Owner' ), "load queue owners role group" ); +my $ace = RT::ACE->new( $RT::SystemUser ); +my ($ace_id, $msg) = $group->PrincipalObj->GrantRight( Right => 'ReplyToTicket', Object => $queue ); +ok( $ace_id, "Granted queue owners role group with ReplyToTicket right: $msg" ); +ok( $group->PrincipalObj->HasRight( Right => 'ReplyToTicket', Object => $queue ), "role group can reply to ticket" ); +ok( !$user->HasRight( Right => 'ReplyToTicket', Object => $queue ), "user can't reply to ticket" ); + +# new ticket +my $ticket = RT::Ticket->new($RT::SystemUser); +my ($ticket_id) = $ticket->Create( Queue => $queue_id, Subject => 'test'); +ok( $ticket_id, 'new ticket created' ); +is( $ticket->Owner, $RT::Nobody->Id, 'owner of the new ticket is nobody' ); + +my $status; +($status, $msg) = $user->PrincipalObj->GrantRight( Object => $queue, Right => 'OwnTicket' ); +ok( $status, "successfuly granted right: $msg" ); +ok( $user->HasRight( Right => 'OwnTicket', Object => $queue ), "user can own ticket" ); + +($status, $msg) = $ticket->SetOwner( $user_id ); +ok( $status, "successfuly set owner: $msg" ); +is( $ticket->Owner, $user_id, "set correct owner" ); + +ok( $user->HasRight( Right => 'ReplyToTicket', Object => $ticket ), "user is owner and can reply to ticket" ); + diff --git a/rt/lib/t/regression/08web_cf_access.t b/rt/lib/t/regression/08web_cf_access.t new file mode 100644 index 000000000..012d73381 --- /dev/null +++ b/rt/lib/t/regression/08web_cf_access.t @@ -0,0 +1,118 @@ +#!/usr/bin/perl -w +use strict; + +use Test::More tests => 15; +use RT; +RT::LoadConfig; +RT::Init; +use Test::WWW::Mechanize; + +$RT::WebURL ||= 0; # avoid stupid warning +my $BaseURL = $RT::WebURL; +use constant ImageFile => $RT::MasonComponentRoot .'/NoAuth/images/bplogo.gif'; +use constant ImageFileContent => do { + local $/; + open my $fh, '<', ImageFile or die $!; + binmode($fh); + scalar <$fh>; +}; + +my $m = Test::WWW::Mechanize->new; +isa_ok($m, 'Test::WWW::Mechanize'); + +$m->get( $BaseURL."?user=root;pass=password" ); +$m->content_like(qr/Logout/, 'we did log in'); +$m->follow_link( text => 'Configuration' ); +$m->title_is(q/RT Administration/, 'admin screen'); +$m->follow_link( text => 'Custom Fields' ); +$m->title_is(q/Select a Custom Field/, 'admin-cf screen'); +$m->follow_link( text => 'New custom field' ); +$m->submit_form( + form_name => "ModifyCustomField", + fields => { + TypeComposite => 'Image-0', + LookupType => 'RT::Queue-RT::Ticket', + Name => 'img', + Description => 'img', + }, +); +$m->title_is(q/Created CustomField img/, 'admin-cf created'); +$m->follow_link( text => 'Queues' ); +$m->title_is(q/Admin queues/, 'admin-queues screen'); +$m->follow_link( text => 'General' ); +$m->title_is(q/Editing Configuration for queue General/, 'admin-queue: general'); +$m->follow_link( text => 'Ticket Custom Fields' ); + +$m->title_is(q/Edit Custom Fields for General/, 'admin-queue: general tcf'); +$m->form_name('EditCustomFields'); + +# Sort by numeric IDs in names +my @names = map { $_->[1] } + sort { $a->[0] <=> $b->[0] } + map { /Object-1-CF-(\d+)/ ? [ $1 => $_ ] : () } + map $_->name, $m->current_form->inputs; +my $tcf = pop(@names); +$m->field( $tcf => 1 ); # Associate the new CF with this queue +$m->field( $_ => undef ) for @names; # ...and not any other. ;-) +$m->submit; + +$m->content_like( qr/Object created/, 'TCF added to the queue' ); + +$m->submit_form( + form_name => "CreateTicketInQueue", + fields => { Queue => 'General' }, +); + +$m->content_like(qr/Upload multiple images/, 'has a upload image field'); + +$tcf =~ /(\d+)$/ or die "Hey this is impossible dude"; +my $upload_field = "Object-RT::Ticket--CustomField-$1-Upload"; + +$m->submit_form( + form_name => "TicketCreate", + fields => { + $upload_field => ImageFile, + Subject => 'testing img cf creation', + }, +); + +$m->content_like(qr/Ticket \d+ created/, "a ticket is created succesfully"); + +my $id = $1 if $m->content =~ /Ticket (\d+) created/; + +$m->title_like(qr/testing img cf creation/, "its title is the Subject"); + +$m->follow_link( text => 'bplogo.gif' ); +$m->content_is(ImageFileContent, "it links to the uploaded image"); + +$m->get( $BaseURL ); + +$m->follow_link( text => 'Tickets' ); +$m->follow_link( text => 'New Query' ); + +$m->title_is(q/Query Builder/, 'Query building'); +$m->submit_form( + form_name => "BuildQuery", + fields => { + idOp => '=', + ValueOfid => $id, + ValueOfQueue => 'General', + }, + button => 'AddClause', +); + +$m->form_name('BuildQuery'); + +my $col = ($m->current_form->find_input('SelectDisplayColumns'))[-1]; +$col->value( ($col->possible_values)[-1] ); + +$m->click('AddCol'); + +$m->form_name('BuildQuery'); +$m->click('DoSearch'); + +$m->follow_link( text_regex => qr/bplogo\.gif/ ); +$m->content_is(ImageFileContent, "it links to the uploaded image"); + +__END__ +[FC] Bulk Update does not have custom fields. diff --git a/rt/lib/t/regression/09record_cf_api.t b/rt/lib/t/regression/09record_cf_api.t new file mode 100644 index 000000000..1428a28db --- /dev/null +++ b/rt/lib/t/regression/09record_cf_api.t @@ -0,0 +1,188 @@ +#!/usr/bin/perl + +use strict; +use warnings FATAL => 'all'; +use Test::More tests => 131; + +use RT; +RT::LoadConfig(); +RT::Init(); + +# Before we get going, ditch all object_cfs; this will remove +# all custom fields systemwide; +my $object_cfs = RT::ObjectCustomFields->new($RT::SystemUser); +$object_cfs->UnLimit(); +while (my $ocf = $object_cfs->Next) { + $ocf->Delete(); +} + + +my $queue = RT::Queue->new( $RT::SystemUser ); +$queue->Create( Name => 'RecordCustomFields-'.$$ ); +ok ($queue->id, "Created the queue"); + +my $ticket = RT::Ticket->new( $RT::SystemUser ); +$ticket->Create( + Queue => $queue->Id, + Requestor => 'root@localhost', + Subject => 'RecordCustomFields1', +); + +my $cfs = $ticket->CustomFields; +is( $cfs->Count, 0 ); + +# Check that record has no any CF values yet {{{ +my $cfvs = $ticket->CustomFieldValues; +is( $cfvs->Count, 0 ); +is( $ticket->FirstCustomFieldValue, undef ); + +my $local_cf1 = RT::CustomField->new( $RT::SystemUser ); +$local_cf1->Create( Name => 'RecordCustomFields1-'.$$, Type => 'SelectSingle', Queue => $queue->id ); +$local_cf1->AddValue( Name => 'RecordCustomFieldValues11' ); +$local_cf1->AddValue( Name => 'RecordCustomFieldValues12' ); + +my $local_cf2 = RT::CustomField->new( $RT::SystemUser ); +$local_cf2->Create( Name => 'RecordCustomFields2-'.$$, Type => 'SelectSingle', Queue => $queue->id ); +$local_cf2->AddValue( Name => 'RecordCustomFieldValues21' ); +$local_cf2->AddValue( Name => 'RecordCustomFieldValues22' ); + +my $global_cf3 = RT::CustomField->new( $RT::SystemUser ); +$global_cf3->Create( Name => 'RecordCustomFields3-'.$$, Type => 'SelectSingle', Queue => 0 ); +$global_cf3->AddValue( Name => 'RecordCustomFieldValues31' ); +$global_cf3->AddValue( Name => 'RecordCustomFieldValues32' ); + + +my @custom_fields = ($local_cf1, $local_cf2, $global_cf3); + + +$cfs = $ticket->CustomFields; +is( $cfs->Count, 3 ); + +# Check that record has no any CF values yet {{{ +$cfvs = $ticket->CustomFieldValues; +is( $cfvs->Count, 0 ); +is( $ticket->FirstCustomFieldValue, undef ); + +# CF with ID -1 shouldnt exist at all +$cfvs = $ticket->CustomFieldValues( -1 ); +is( $cfvs->Count, 0 ); +is( $ticket->FirstCustomFieldValue( -1 ), undef ); + +$cfvs = $ticket->CustomFieldValues( 'SomeUnexpedCustomFieldName' ); +is( $cfvs->Count, 0 ); +is( $ticket->FirstCustomFieldValue( 'SomeUnexpedCustomFieldName' ), undef ); + +for (@custom_fields) { + $cfvs = $ticket->CustomFieldValues( $_->id ); + is( $cfvs->Count, 0 ); + + $cfvs = $ticket->CustomFieldValues( $_->Name ); + is( $cfvs->Count, 0 ); + is( $ticket->FirstCustomFieldValue( $_->id ), undef ); + is( $ticket->FirstCustomFieldValue( $_->Name ), undef ); +} +# }}} + +# try to add field value with fields that do not exist {{{ +my ($status, $msg) = $ticket->AddCustomFieldValue( Field => -1 , Value => 'foo' ); +ok(!$status, "shouldn't add value" ); +($status, $msg) = $ticket->AddCustomFieldValue( Field => 'SomeUnexpedCustomFieldName' , Value => 'foo' ); +ok(!$status, "shouldn't add value" ); +# }}} + +# {{{ +SKIP: { + + skip "TODO: We want fields that are not allowed to set unexpected values", 10; + for (@custom_fields) { + ($status, $msg) = $ticket->AddCustomFieldValue( Field => $_ , Value => 'SomeUnexpectedCFValue' ); + ok( !$status, 'value doesn\'t exist'); + + ($status, $msg) = $ticket->AddCustomFieldValue( Field => $_->id , Value => 'SomeUnexpectedCFValue' ); + ok( !$status, 'value doesn\'t exist'); + + ($status, $msg) = $ticket->AddCustomFieldValue( Field => $_->Name , Value => 'SomeUnexpectedCFValue' ); + ok( !$status, 'value doesn\'t exist'); + } + + # Let check that we did not add value to be sure + # using only FirstCustomFieldValue sub because + # we checked other variants allready + for (@custom_fields) { + is( $ticket->FirstCustomFieldValue( $_->id ), undef ); + } + +} +# Add some values to our custom fields +for (@custom_fields) { + # this should be tested elsewhere + $_->AddValue( Name => 'Foo' ); + $_->AddValue( Name => 'Bar' ); +} + +my $test_add_delete_cycle = sub { + my $cb = shift; + for (@custom_fields) { + ($status, $msg) = $ticket->AddCustomFieldValue( Field => $cb->($_) , Value => 'Foo' ); + ok( $status, "message: $msg"); + } + + # does it exist? + $cfvs = $ticket->CustomFieldValues; + is( $cfvs->Count, 3, "We found all three custom fields on our ticket" ); + for (@custom_fields) { + $cfvs = $ticket->CustomFieldValues( $_->id ); + is( $cfvs->Count, 1 , "we found one custom field when searching by id"); + + $cfvs = $ticket->CustomFieldValues( $_->Name ); + is( $cfvs->Count, 1 , " We found one custom field when searching by name for " . $_->Name); + is( $ticket->FirstCustomFieldValue( $_->id ), 'Foo' , "first value by id is foo"); + is( $ticket->FirstCustomFieldValue( $_->Name ), 'Foo' , "first value by name is foo"); + } + # because our CFs are SingleValue then new value addition should override + for (@custom_fields) { + ($status, $msg) = $ticket->AddCustomFieldValue( Field => $_ , Value => 'Bar' ); + ok( $status, "message: $msg"); + } + $cfvs = $ticket->CustomFieldValues; + is( $cfvs->Count, 3 ); + for (@custom_fields) { + $cfvs = $ticket->CustomFieldValues( $_->id ); + is( $cfvs->Count, 1 ); + + $cfvs = $ticket->CustomFieldValues( $_->Name ); + is( $cfvs->Count, 1 ); + is( $ticket->FirstCustomFieldValue( $_->id ), 'Bar' ); + is( $ticket->FirstCustomFieldValue( $_->Name ), 'Bar' ); + } + # delete it + for (@custom_fields ) { + ($status, $msg) = $ticket->DeleteCustomFieldValue( Field => $_ , Value => 'Bar' ); + ok( $status, "Deleted a custom field value 'Bar' for field ".$_->id.": $msg"); + } + $cfvs = $ticket->CustomFieldValues; + is( $cfvs->Count, 0, "The ticket (".$ticket->id.") no longer has any custom field values" ); + for (@custom_fields) { + $cfvs = $ticket->CustomFieldValues( $_->id ); + is( $cfvs->Count, 0, $ticket->id." has no values for cf ".$_->id ); + + $cfvs = $ticket->CustomFieldValues( $_->Name ); + is( $cfvs->Count, 0 , $ticket->id." has no values for cf '".$_->Name. "'" ); + is( $ticket->FirstCustomFieldValue( $_->id ), undef , "There is no first custom field value when loading by id" ); + is( $ticket->FirstCustomFieldValue( $_->Name ), undef, "There is no first custom field value when loading by Name" ); + } +}; + +# lets test cycle via CF id +$test_add_delete_cycle->( sub { return $_[0]->id } ); +# lets test cycle via CF object reference +$test_add_delete_cycle->( sub { return $_[0] } ); + +#SKIP: { +# skip "TODO: should we add CF values to objects via CF Name?", 48; +# names are not unique + # lets test cycle via CF Name +# $test_add_delete_cycle->( sub { return $_[0]->Name } ); +#} + + diff --git a/rt/lib/t/regression/10merge.t b/rt/lib/t/regression/10merge.t new file mode 100644 index 000000000..8bca9526a --- /dev/null +++ b/rt/lib/t/regression/10merge.t @@ -0,0 +1,72 @@ +#!/usr/bin/perl + +use warnings; +use strict; + + +# +# This test script validates that when merging two tickets, the comments from both tickets +# are integrated into the new ticket + +use Test::More tests => 13; +use RT; +RT::LoadConfig; +RT::Init; + +use_ok('RT::Ticket'); +use_ok('RT::Queue'); + +my $queue = RT::Queue->new($RT::SystemUser); +my ($id,$msg) = $queue->Create(Name => 'MergeTest-'.rand(25)); +ok ($id,$msg); + +my $t1 = RT::Ticket->new($RT::SystemUser); +my ($tid,$transid, $t1msg) =$t1->Create ( Queue => $queue->Name, Subject => 'Merge test. orig'); +ok ($tid, $t1msg); +($id, $msg) = $t1->Comment(Content => 'This is a Comment on the original'); +ok($id,$msg); + +my $txns = $t1->Transactions; +my $Comments = 0; +while (my $txn = $txns->Next) { +$Comments++ if ($txn->Type eq 'Comment'); +} +is($Comments,1, "our first ticket has only one Comment"); + +my $t2 = RT::Ticket->new($RT::SystemUser); +my ($t2id,$t2transid, $t2msg) =$t2->Create ( Queue => $queue->Name, Subject => 'Merge test. duplicate'); +ok ($t2id, $t2msg); + + + +($id, $msg) = $t2->Comment(Content => 'This is a commet on the duplicate'); +ok($id,$msg); + + +$txns = $t2->Transactions; + $Comments = 0; +while (my $txn = $txns->Next) { + $Comments++ if ($txn->Type eq 'Comment'); +} +is($Comments,1, "our second ticket has only one Comment"); + +($id, $msg) = $t1->Comment(Content => 'This is a second Comment on the original'); +ok($id,$msg); + +$txns = $t1->Transactions; +$Comments = 0; +while (my $txn = $txns->Next) { + $Comments++ if ($txn->Type eq 'Comment'); +} +is($Comments,2, "our first ticket now has two Comments"); + +($id,$msg) = $t2->MergeInto($t1->id); + +ok($id,$msg); +$txns = $t1->Transactions; +$Comments = 0; +while (my $txn = $txns->Next) { + $Comments++ if ($txn->Type eq 'Comment'); +} +is($Comments,3, "our first ticket now has three Comments - we merged safely"); + diff --git a/rt/lib/t/regression/11-template-insert.t b/rt/lib/t/regression/11-template-insert.t new file mode 100644 index 000000000..8681ce67d --- /dev/null +++ b/rt/lib/t/regression/11-template-insert.t @@ -0,0 +1,27 @@ +#!/usr/bin/perl + +use warnings; +use strict; + +use Test::More tests => 7; + +use RT; +RT::LoadConfig(); +RT::Init; + + +# This tiny little test script triggers an interaction bug between DBD::Oracle 1.16, SB 1.15 and RT 3.4 + +use_ok('RT::Template'); +my $template = RT::Template->new($RT::SystemUser); + +isa_ok($template, 'RT::Template'); +my ($val,$msg) = $template->Create(Queue => 1, + Name => 'InsertTest', + Content => 'This is template content'); +ok($val,$msg); +is($template->Name, 'InsertTest'); +is($template->Content, 'This is template content', "We created the object right"); +($val, $msg) = $template->SetContent( 'This is new template content'); +ok($val,$msg); +is($template->Content, 'This is new template content', "We managed to _Set_ the content"); diff --git a/rt/lib/t/regression/12-search.t b/rt/lib/t/regression/12-search.t new file mode 100644 index 000000000..9cc4aa441 --- /dev/null +++ b/rt/lib/t/regression/12-search.t @@ -0,0 +1,235 @@ +#!/opt/perl/bin/perl -w + +# tests relating to searching. Especially around custom fields, and +# corner cases. + +use strict; +use warnings; + +use Test::More tests => 35; +use_ok('RT'); +RT::LoadConfig(); +RT::Init(); + +# setup the queue + +my $q = RT::Queue->new($RT::SystemUser); +my $queue = 'SearchTests-'.$$; +$q->Create(Name => $queue); +ok ($q->id, "Created the queue"); + + +# and setup the CFs +# we believe the Type shouldn't matter. + +my $cf = RT::CustomField->new($RT::SystemUser); +$cf->Create(Name => 'SearchTest', Type => 'Freeform', MaxValues => 0, Queue => $q->id); +ok($cf->id, "Created the SearchTest CF"); +my $cflabel = "CustomField-".$cf->id; + +my $cf2 = RT::CustomField->new($RT::SystemUser); +$cf2->Create(Name => 'SearchTest2', Type => 'Freeform', MaxValues => 0, Queue => $q->id); +ok($cf2->id, "Created the SearchTest2 CF"); +my $cflabel2 = "CustomField-".$cf2->id; + +my $cf3 = RT::CustomField->new($RT::SystemUser); +$cf3->Create(Name => 'SearchTest3', Type => 'Freeform', MaxValues => 0, Queue => $q->id); +ok($cf3->id, "Created the SearchTest3 CF"); +my $cflabel3 = "CustomField-".$cf3->id; + + +# setup some tickets +# we'll need a small pile of them, to test various combinations and nulls. +# there's probably a way to think harder and do this with fewer + + +my $t1 = RT::Ticket->new($RT::SystemUser); +my ( $id, undef $msg ) = $t1->Create( + Queue => $q->id, + Subject => 'SearchTest1', + Requestor => ['search1@example.com'], + $cflabel => 'foo1', + $cflabel2 => 'bar1', + $cflabel3 => 'qux1', +); +ok( $id, $msg ); + + +my $t2 = RT::Ticket->new($RT::SystemUser); +( $id, undef, $msg ) = $t2->Create( + Queue => $q->id, + Subject => 'SearchTest2', + Requestor => ['search2@example.com'], +# $cflabel => 'foo2', + $cflabel2 => 'bar2', + $cflabel3 => 'qux2', +); +ok( $id, $msg ); + +my $t3 = RT::Ticket->new($RT::SystemUser); +( $id, undef, $msg ) = $t3->Create( + Queue => $q->id, + Subject => 'SearchTest3', + Requestor => ['search3@example.com'], + $cflabel => 'foo3', +# $cflabel2 => 'bar3', + $cflabel3 => 'qux3', +); +ok( $id, $msg ); + +my $t4 = RT::Ticket->new($RT::SystemUser); +( $id, undef, $msg ) = $t4->Create( + Queue => $q->id, + Subject => 'SearchTest4', + Requestor => ['search4@example.com'], + $cflabel => 'foo4', + $cflabel2 => 'bar4', +# $cflabel3 => 'qux4', +); +ok( $id, $msg ); + +my $t5 = RT::Ticket->new($RT::SystemUser); +( $id, undef, $msg ) = $t5->Create( + Queue => $q->id, +# Subject => 'SearchTest5', + Requestor => ['search5@example.com'], + $cflabel => 'foo5', + $cflabel2 => 'bar5', + $cflabel3 => 'qux5', +); +ok( $id, $msg ); + +my $t6 = RT::Ticket->new($RT::SystemUser); +( $id, undef, $msg ) = $t6->Create( + Queue => $q->id, + Subject => 'SearchTest6', +# Requestor => ['search6@example.com'], + $cflabel => 'foo6', + $cflabel2 => 'bar6', + $cflabel3 => 'qux6', +); +ok( $id, $msg ); + +my $t7 = RT::Ticket->new($RT::SystemUser); +( $id, undef, $msg ) = $t7->Create( + Queue => $q->id, + Subject => 'SearchTest7', + Requestor => ['search7@example.com'], +# $cflabel => 'foo7', +# $cflabel2 => 'bar7', + $cflabel3 => 'qux7', +); +ok( $id, $msg ); + +# we have tickets. start searching +my $tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue'"); +is($tix->Count, 7, "found all the tickets"); + + +# very simple searches. both CF and normal + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND CF.SearchTest = 'foo1'"); +is($tix->Count, 1, "matched identical subject"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND CF.SearchTest LIKE 'foo1'"); +is($tix->Count, 1, "matched LIKE subject"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND CF.SearchTest = 'foo'"); +is($tix->Count, 0, "IS a regexp match"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND CF.SearchTest LIKE 'foo'"); +is($tix->Count, 5, "matched LIKE subject"); + + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND CF.SearchTest IS NULL"); + + is($tix->Count, 2, "IS null CF"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND Requestors LIKE 'search1'"); +is($tix->Count, 1, "LIKE requestor"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND Requestors = 'search1\@example.com'"); +is($tix->Count, 1, "IS requestor"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND Requestors LIKE 'search'"); +is($tix->Count, 6, "LIKE requestor"); + +TODO: { + + local $TODO = "Can't search for 'no requestor"; + $tix = RT::Tickets->new($RT::SystemUser); + $tix->FromSQL("Queue = '$queue' AND Requestors IS NULL"); + is($tix->Count, 1, "Search for no requestor"); + +}; + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND Subject = 'SearchTest1'"); +is($tix->Count, 1, "IS subject"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND Subject LIKE 'SearchTest1'"); +is($tix->Count, 1, "LIKE subject"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND Subject = ''"); +is($tix->Count, 1, "found one ticket"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND Subject LIKE 'SearchTest'"); +is($tix->Count, 6, "found two ticket"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND Subject LIKE 'qwerty'"); +is($tix->Count, 0, "found zero ticket"); + + + + +# various combinations + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("CF.SearchTest LIKE 'foo' AND CF.SearchTest2 LIKE 'bar1'"); +is($tix->Count, 1, "LIKE cf and LIKE cf"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("CF.SearchTest = 'foo1' AND CF.SearchTest2 = 'bar1'"); +is($tix->Count, 1, "is cf and is cf"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("CF.SearchTest = 'foo' AND CF.SearchTest2 LIKE 'bar1'"); +is($tix->Count, 0, "is cf and like cf"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("CF.SearchTest LIKE 'foo' AND CF.SearchTest2 LIKE 'bar' AND CF.SearchTest3 LIKE 'qux'"); +is($tix->Count, 3, "like cf and like cf and like cf"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("CF.SearchTest LIKE 'foo' AND CF.SearchTest2 LIKE 'bar' AND CF.SearchTest3 LIKE 'qux6'"); +is($tix->Count, 1, "like cf and like cf and is cf"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("CF.SearchTest LIKE 'foo' AND Subject LIKE 'SearchTest'"); +is($tix->Count, 4, "like cf and like subject"); + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("CF.SearchTest IS NULL AND CF.SearchTest2 = 'bar2'"); + + is($tix->Count, 1, "null cf and is cf"); + + +$tix = RT::Tickets->new($RT::SystemUser); +$tix->FromSQL("Queue = '$queue' AND CF.SearchTest IS NULL AND CF.SearchTest2 IS NULL"); + + is($tix->Count, 1, "null cf and null cf"); + + diff --git a/rt/lib/t/regression/13-attribute-tests.t b/rt/lib/t/regression/13-attribute-tests.t new file mode 100644 index 000000000..945bbcfb0 --- /dev/null +++ b/rt/lib/t/regression/13-attribute-tests.t @@ -0,0 +1,67 @@ + +use Test::More tests => 24; +use RT; +RT::LoadConfig(); +RT::Init(); + + +my $runid = rand(200); + +my $attribute = "squelch-$runid"; + +ok(require RT::Attributes); + +my $user = RT::User->new($RT::SystemUser); +ok (UNIVERSAL::isa($user, 'RT::User')); +my ($id,$msg) = $user->Create(Name => 'attrtest-'.$runid); +ok ($id, $msg); +ok($user->id, "Created a test user"); + +ok(1, $user->Attributes->BuildSelectQuery); +my $attr = $user->Attributes; + +ok(1, $attr->BuildSelectQuery); + + +ok (UNIVERSAL::isa($attr,'RT::Attributes'), 'got the attributes object'); + +($id, $msg) = $user->AddAttribute(Name => 'TestAttr', Content => 'The attribute has content'); +ok ($id, $msg); +is ($attr->Count,1, " One attr after adidng a first one"); +($id, $msg) = $attr->DeleteEntry(Name => $runid); +ok(!$id, "Deleted non-existant entry - $msg"); +is ($attr->Count,1, "1 attr after deleting an empty attr"); + +my @names = $attr->Names; +is ("@names", "TestAttr"); + + +($id, $msg) = $user->AddAttribute(Name => $runid, Content => "First"); + +is ($attr->Count,2, " Two attrs after adding an attribute named $runid"); +($id, $msg) = $user->AddAttribute(Name => $runid, Content => "Second"); +ok($id, $msg); + +is ($attr->Count,3, " Three attrs after adding a secondvalue to $runid"); +($id, $msg) = $attr->DeleteEntry(Name => $runid, Content => "First"); +ok($id, $msg); +is ($attr->Count,2); + +#$attr->_DoSearch(); +($id, $msg) = $attr->DeleteEntry(Name => $runid, Content => "Second"); +ok($id, $msg); +is ($attr->Count,1); + +#$attr->_DoSearch(); +ok(1, $attr->BuildSelectQuery); +($id, $msg) = $attr->DeleteEntry(Name => "moose"); +ok(!$id, "Deleted non-existant entry - $msg"); +is ($attr->Count,1); + +ok(1, $attr->BuildSelectQuery); +@names = $attr->Names; +is("@names", "TestAttr"); + + + +1; diff --git a/rt/lib/t/regression/14merge.t b/rt/lib/t/regression/14merge.t new file mode 100644 index 000000000..c9162510b --- /dev/null +++ b/rt/lib/t/regression/14merge.t @@ -0,0 +1,31 @@ + +use Test::More tests => '6'; +use RT; +RT::LoadConfig(); +RT::Init(); + +# when you try to merge duplicate links on postgres, eveyrything goes to hell due to referential integrity constraints. + + +my $t = RT::Ticket->new($RT::SystemUser); +$t->Create(Subject => 'Main', Queue => 'general'); + +ok ($t->id); +my $t2 = RT::Ticket->new($RT::SystemUser); +$t2->Create(Subject => 'Second', Queue => 'general'); +ok ($t2->id); + +my $t3 = RT::Ticket->new($RT::SystemUser); +$t3->Create(Subject => 'Third', Queue => 'general'); + +ok ($t3->id); + +my ($id,$val); +($id,$val) = $t->AddLink(Type => 'DependsOn', Target => $t3->id); +ok($id,$val); +($id,$val) = $t2->AddLink(Type => 'DependsOn', Target => $t3->id); +ok($id,$val); + + +($id,$val) = $t->MergeInto($t2->id); +ok($id,$val); diff --git a/rt/lib/t/regression/15cf_single_values_are_single.t b/rt/lib/t/regression/15cf_single_values_are_single.t new file mode 100644 index 000000000..dcfa2e5b3 --- /dev/null +++ b/rt/lib/t/regression/15cf_single_values_are_single.t @@ -0,0 +1,39 @@ +#!/usr/bin/perl +use warnings; +use strict; +use Test::More tests => 8; + +use RT; +RT::LoadConfig(); +RT::Init(); + + +my $q = RT::Queue->new($RT::SystemUser); +my ($id,$msg) =$q->Create(Name => "CF-Single-".$$); +ok($id,$msg); + +my $cf = RT::CustomField->new($RT::SystemUser); +($id,$msg) = $cf->Create(Name => 'Single-'.$$, Type => 'Select', MaxValues => '1', Queue => $q->id); +ok($id,$msg); + + +($id,$msg) =$cf->AddValue(Name => 'First'); +ok($id,$msg); + +($id,$msg) =$cf->AddValue(Name => 'Second'); +ok($id,$msg); + + +my $t = RT::Ticket->new($RT::SystemUser); +($id,undef,$msg) = $t->Create(Queue => $q->id, + Subject => 'CF Test'); + +ok($id,$msg); +is($t->CustomFieldValues($cf->id)->Count, 0, "No values yet"); +$t->AddCustomFieldValue(Field => $cf->id, Value => 'First'); +is($t->CustomFieldValues($cf->id)->Count, 1, "One now"); + +$t->AddCustomFieldValue(Field => $cf->id, Value => 'Second'); +is($t->CustomFieldValues($cf->id)->Count, 1, "Still one"); + +1; diff --git a/rt/lib/t/regression/16-transaction_cf_tests.t b/rt/lib/t/regression/16-transaction_cf_tests.t new file mode 100644 index 000000000..9e1e86ca4 --- /dev/null +++ b/rt/lib/t/regression/16-transaction_cf_tests.t @@ -0,0 +1,61 @@ +#!/usr/bin/perl + +use warnings; +use strict; +use Data::Dumper; +use Test::More qw/no_plan/; + +use_ok('RT'); +use_ok('RT::Transactions'); +RT::LoadConfig(); +RT::Init(); + +my $q = RT::Queue->new($RT::SystemUser); +my ($id,$msg) = $q->Create( Name => 'TxnCFTest'.$$); +ok($id,$msg); + +my $cf = RT::CustomField->new($RT::SystemUser); +($id,$msg) = $cf->Create(Name => 'Txnfreeform-'.$$, Type => 'Freeform', MaxValues => '0', LookupType => RT::Transaction->CustomFieldLookupType ); + +ok($id,$msg); + +($id,$msg) = $cf->AddToObject($q); + +ok($id,$msg); + + +my $ticket = RT::Ticket->new($RT::SystemUser); + +my $transid; +($id,$transid, $msg) = $ticket->Create(Queue => $q->id, + Subject => 'TxnCF test', + ); +ok($id,$msg); + +my $trans = RT::Transaction->new($RT::SystemUser); +$trans->Load($transid); + +is($trans->ObjectId,$id); +is ($trans->ObjectType, 'RT::Ticket'); +is ($trans->Type, 'Create'); +my $txncfs = $trans->CustomFields; +is ($txncfs->Count, 1, "We have one custom field"); +my $txn_cf = $txncfs->First; +is ($txn_cf->id, $cf->id, "It's the right custom field"); +my $values = $trans->CustomFieldValues($txn_cf->id); +is ($values->Count, 0, "It has no values"); + +# Old API +my %cf_updates = ( 'CustomField-'.$cf->id => 'Testing'); +$trans->UpdateCustomFields( ARGSRef => \%cf_updates); + + $values = $trans->CustomFieldValues($txn_cf->id); +is ($values->Count, 1, "It has one value"); + +# New API + +$trans->UpdateCustomFields( 'CustomField-'.$cf->id => 'Test two'); + $values = $trans->CustomFieldValues($txn_cf->id); +is ($values->Count, 2, "it has two values"); + +# TODO ok(0, "Should updating custom field values remove old values?"); diff --git a/rt/lib/t/regression/17multiple_deleg_revocation.t b/rt/lib/t/regression/17multiple_deleg_revocation.t new file mode 100644 index 000000000..1ed040406 --- /dev/null +++ b/rt/lib/t/regression/17multiple_deleg_revocation.t @@ -0,0 +1,135 @@ +#!/usr/bin/perl -w + +use Test::More qw(no_plan); + +use RT; + +ok( RT::LoadConfig, "Locating config files" ); +ok( RT::Init, "Basic initialization and DB connectivity" ); + +my ($u1, $g1, $pg1, $pg2, $ace, @groups, @users, @principals); +@groups = (\$g1, \$pg1, \$pg2); +@users = (\$u1); +@principals = (@groups, @users); + +my($ret, $msg); + +$u1 = RT::User->new($RT::SystemUser); +( $ret, $msg ) = $u1->LoadOrCreateByEmail('delegtest1@example.com'); +ok( $ret, "Load / Create test user 1: $msg" ); +$u1->SetPrivileged(1); + +$g1 = RT::Group->new($RT::SystemUser); +( $ret, $msg) = $g1->LoadUserDefinedGroup('dg1'); +unless ($ret) { + ( $ret, $msg ) = $g1->CreateUserDefinedGroup( Name => 'dg1' ); +} +$pg1 = RT::Group->new($RT::SystemUser); +( $ret, $msg ) = $pg1->LoadPersonalGroup( Name => 'dpg1', + User => $u1->PrincipalId ); +unless ($ret) { + ( $ret, $msg ) = $pg1->CreatePersonalGroup( Name => 'dpg1', + PrincipalId => $u1->PrincipalId ); +} +ok( $ret, "Load / Create test personal group 1: $msg" ); +$pg2 = RT::Group->new($RT::SystemUser); +( $ret, $msg ) = $pg2->LoadPersonalGroup( Name => 'dpg2', + User => $u1->PrincipalId ); +unless ($ret) { + ( $ret, $msg ) = $pg2->CreatePersonalGroup( Name => 'dpg2', + PrincipalId => $u1->PrincipalId ); +} +ok( $ret, "Load / Create test personal group 2: $msg" ); + +clear_acls_and_groups(); + +( $ret, $msg ) = $u1->PrincipalObj->GrantRight( Right => 'DelegateRights' ); +ok( $ret, "Grant DelegateRights to u1: $msg" ); +( $ret, $msg ) = $g1->PrincipalObj->GrantRight( Right => 'ShowConfigTab' ); +ok( $ret, "Grant ShowConfigTab to g1: $msg" ); +( $ret, $msg ) = $g1->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g1: $msg" ); + +$ace = RT::ACE->new($u1); +( $ret, $msg ) = $ace->LoadByValues( + RightName => 'ShowConfigTab', + Object => $RT::System, + PrincipalType => 'Group', + PrincipalId => $g1->PrincipalId +); +ok( $ret, "Look up ACE to be delegated: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate ShowConfigTab to pg1: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg2->PrincipalId ); +ok( $ret, "Delegate ShowConfigTab to pg2: $msg" ); + +ok(( $pg1->PrincipalObj->HasRight( Right => 'ShowConfigTab', + Object => $RT::System ) and + $pg2->PrincipalObj->HasRight( Right => 'ShowConfigTab', + Object => $RT::System )), + "Test personal groups have ShowConfigTab right after delegation" ); + +( $ret, $msg ) = $g1->DeleteMember( $u1->PrincipalId ); +ok( $ret, "Delete test user 1 from g1: $msg" ); + +ok( not( $pg1->PrincipalObj->HasRight( Right => 'ShowConfigTab', + Object => $RT::System )), + "Test personal group 1 lacks ShowConfigTab after user removed from g1" ); +ok( not( $pg2->PrincipalObj->HasRight( Right => 'ShowConfigTab', + Object => $RT::System )), + "Test personal group 2 lacks ShowConfigTab after user removed from g1" ); + +( $ret, $msg ) = $g1->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g1: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate ShowConfigTab to pg1: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg2->PrincipalId ); +ok( $ret, "Delegate ShowConfigTab to pg2: $msg" ); + +ok(( $pg1->PrincipalObj->HasRight( Right => 'ShowConfigTab', + Object => $RT::System ) and + $pg2->PrincipalObj->HasRight( Right => 'ShowConfigTab', + Object => $RT::System )), + "Test personal groups have ShowConfigTab right after delegation" ); + +( $ret, $msg ) = $g1->PrincipalObj->RevokeRight( Right => 'ShowConfigTab' ); +ok( $ret, "Revoke ShowConfigTab from g1: $msg" ); + +ok( not( $pg1->PrincipalObj->HasRight( Right => 'ShowConfigTab', + Object => $RT::System )), + "Test personal group 1 lacks ShowConfigTab after user removed from g1" ); +ok( not( $pg2->PrincipalObj->HasRight( Right => 'ShowConfigTab', + Object => $RT::System )), + "Test personal group 2 lacks ShowConfigTab after user removed from g1" ); + + + +####### + +sub clear_acls_and_groups { + # Revoke all rights granted to our cast + my $acl = RT::ACL->new($RT::SystemUser); + foreach (@principals) { + $acl->LimitToPrincipal(Type => $$_->PrincipalObj->PrincipalType, + Id => $$_->PrincipalObj->Id); + } + while (my $ace = $acl->Next()) { + $ace->Delete(); + } + + # Remove all group memberships + my $members = RT::GroupMembers->new($RT::SystemUser); + foreach (@groups) { + $members->LimitToMembersOfGroup( $$_->PrincipalId ); + } + while (my $member = $members->Next()) { + $member->Delete(); + } + + $acl->RedoSearch(); + ok( $acl->Count() == 0, + "All principals have no rights after clearing ACLs" ); + $members->RedoSearch(); + ok( $members->Count() == 0, + "All groups have no members after clearing groups" ); +} diff --git a/rt/lib/t/regression/18stale_delegations_cleanup.t b/rt/lib/t/regression/18stale_delegations_cleanup.t new file mode 100644 index 000000000..84e666eee --- /dev/null +++ b/rt/lib/t/regression/18stale_delegations_cleanup.t @@ -0,0 +1,458 @@ +#!/usr/bin/perl -w + +# Regression test suite for http://rt3.fsck.com/Ticket/Display.html?id=6184 +# and related corner cases related to cleanup of delegated ACEs when +# the delegator loses the right to delegate. This causes complexities +# due to the fact that multiple ACEs can grant different delegation +# rights to a principal, and because DelegateRights and SuperUser can +# themselves be delegated. + +# The case where the "parent" delegated ACE is removed is handled in +# the embedded regression tests in lib/RT/ACE_Overlay.pm . + +use Test::More qw(no_plan); + +use RT; + +ok( RT::LoadConfig, "Locating config files" ); +ok( RT::Init, "Basic initialization and DB connectivity" ); + +my ($u1, $u2, $g1, $g2, $g3, $pg1, $pg2, $ace, @groups, @users, @principals); +@groups = (\$g1, \$g2, \$g3, \$pg1, \$pg2); +@users = (\$u1, \$u2); +@principals = (@groups, @users); + +my($ret, $msg); + +$u1 = RT::User->new($RT::SystemUser); +( $ret, $msg ) = $u1->LoadOrCreateByEmail('delegtest1@example.com'); +ok( $ret, "Load / Create test user 1: $msg" ); +$u1->SetPrivileged(1); +$u2 = RT::User->new($RT::SystemUser); +( $ret, $msg ) = $u2->LoadOrCreateByEmail('delegtest2@example.com'); +ok( $ret, "Load / Create test user 2: $msg" ); +$u2->SetPrivileged(1); +$g1 = RT::Group->new($RT::SystemUser); +( $ret, $msg) = $g1->LoadUserDefinedGroup('dg1'); +unless ($ret) { + ( $ret, $msg ) = $g1->CreateUserDefinedGroup( Name => 'dg1' ); +} +ok( $ret, "Load / Create test group 1: $msg" ); +$g2 = RT::Group->new($RT::SystemUser); +( $ret, $msg) = $g2->LoadUserDefinedGroup('dg2'); +unless ($ret) { + ( $ret, $msg ) = $g2->CreateUserDefinedGroup( Name => 'dg2' ); +} +ok( $ret, "Load / Create test group 2: $msg" ); +$g3 = RT::Group->new($RT::SystemUser); +( $ret, $msg) = $g3->LoadUserDefinedGroup('dg3'); +unless ($ret) { + ( $ret, $msg ) = $g3->CreateUserDefinedGroup( Name => 'dg3' ); +} +ok( $ret, "Load / Create test group 3: $msg" ); +$pg1 = RT::Group->new($RT::SystemUser); +( $ret, $msg ) = $pg1->LoadPersonalGroup( Name => 'dpg1', + User => $u1->PrincipalId ); +unless ($ret) { + ( $ret, $msg ) = $pg1->CreatePersonalGroup( Name => 'dpg1', + PrincipalId => $u1->PrincipalId ); +} +ok( $ret, "Load / Create test personal group 1: $msg" ); +$pg2 = RT::Group->new($RT::SystemUser); +( $ret, $msg ) = $pg2->LoadPersonalGroup( Name => 'dpg2', + User => $u2->PrincipalId ); +unless ($ret) { + ( $ret, $msg ) = $pg2->CreatePersonalGroup( Name => 'dpg2', + PrincipalId => $u2->PrincipalId ); +} +ok( $ret, "Load / Create test personal group 2: $msg" ); + + + +# Basic case: u has global DelegateRights through g1 and ShowConfigTab +# through g2; then u is removed from g1. + +clear_acls_and_groups(); + +( $ret, $msg ) = $g1->PrincipalObj->GrantRight( Right => 'DelegateRights' ); +ok( $ret, "Grant DelegateRights to g1: $msg" ); +( $ret, $msg ) = $g2->PrincipalObj->GrantRight( Right => 'ShowConfigTab' ); +ok( $ret, "Grant ShowConfigTab to g2: $msg" ); +( $ret, $msg ) = $g1->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g1: $msg" ); +ok( + $u1->PrincipalObj->HasRight( + Right => 'DelegateRights', + Object => $RT::System + ), + "test user 1 has DelegateRights after joining g1" +); +( $ret, $msg ) = $g2->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g2: $msg" ); +ok( + $u1->PrincipalObj->HasRight( + Right => 'ShowConfigTab', + Object => $RT::System + ), + "test user 1 has ShowConfigTab after joining g2" +); + +$ace = RT::ACE->new($u1); +( $ret, $msg ) = $ace->LoadByValues( + RightName => 'ShowConfigTab', + Object => $RT::System, + PrincipalType => 'Group', + PrincipalId => $g2->PrincipalId +); +ok( $ret, "Look up ACE to be delegated: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate ShowConfigTab to pg1: $msg" ); +ok( + $pg1->PrincipalObj->HasRight( + Right => 'ShowConfigTab', + Object => $RT::System + ), + "Test personal group 1 has ShowConfigTab right after delegation" +); + +( $ret, $msg ) = $g1->DeleteMember( $u1->PrincipalId ); +ok( $ret, "Delete test user 1 from g1: $msg" ); +ok( + not( + $pg1->PrincipalObj->HasRight( + Right => 'ShowConfigTab', + Object => $RT::System + ) + ), + "Test personal group 1 lacks ShowConfigTab right after user removed from g1" +); + +# Basic case: u has global DelegateRights through g1 and ShowConfigTab +# through g2; then DelegateRights revoked from g1. + +( $ret, $msg ) = $g1->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g1: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate ShowConfigTab to pg1: $msg" ); +( $ret, $msg ) = $g1->PrincipalObj->RevokeRight( Right => 'DelegateRights' ); +ok( $ret, "Revoke DelegateRights from g1: $msg" ); +ok( + not( + $pg1->PrincipalObj->HasRight( + Right => 'ShowConfigTab', + Object => $RT::System + ) + ), + "Test personal group 1 lacks ShowConfigTab right after DelegateRights revoked from g1" +); + + + +# Corner case - restricted delegation: u has DelegateRights on pg1 +# through g1 and AdminGroup on pg1 through g2; then DelegateRights +# revoked from g1. + +clear_acls_and_groups(); + +( $ret, $msg ) = $g1->PrincipalObj->GrantRight( Right => 'DelegateRights', + Object => $pg1); +ok( $ret, "Grant DelegateRights on pg1 to g1: $msg" ); +( $ret, $msg ) = $g2->PrincipalObj->GrantRight( Right => 'AdminGroup', + Object => $pg1); +ok( $ret, "Grant AdminGroup on pg1 to g2: $msg" ); +( $ret, $msg ) = $g1->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g1: $msg" ); +( $ret, $msg ) = $g2->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g2: $msg" ); +ok( $u1->PrincipalObj->HasRight( + Right => 'DelegateRights', + Object => $pg1 ), + "test user 1 has DelegateRights on pg1 after joining g1" ); +ok( not( $u1->PrincipalObj->HasRight( + Right => 'DelegateRights', + Object => $RT::System )), + "Test personal group 1 lacks global DelegateRights after joining g1" ); +$ace = RT::ACE->new($u1); +( $ret, $msg ) = $ace->LoadByValues( + RightName => 'AdminGroup', + Object => $pg1, + PrincipalType => 'Group', + PrincipalId => $g2->PrincipalId +); +ok( $ret, "Look up ACE to be delegated: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate AdminGroup on pg1 to pg1: $msg" ); +ok( $pg1->PrincipalObj->HasRight( + Right => 'AdminGroup', + Object => $pg1 ), + "Test personal group 1 has AdminGroup right on pg1 after delegation" ); +( $ret, $msg ) = $g1->PrincipalObj->RevokeRight ( Right => 'DelegateRights', + Object => $pg1 ); +ok( $ret, "Revoke DelegateRights on pg1 from g1: $msg" ); +ok( not( $pg1->PrincipalObj->HasRight( + Right => 'AdminGroup', + Object => $pg1 )), + "Test personal group 1 lacks AdminGroup right on pg1 after DelegateRights revoked from g1" ); +( $ret, $msg ) = $g1->PrincipalObj->GrantRight( Right => 'DelegateRights', + Object => $pg1); + +# Corner case - restricted delegation: u has DelegateRights on pg1 +# through g1 and AdminGroup on pg1 through g2; then u removed from g1. + +ok( $ret, "Grant DelegateRights on pg1 to g1: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate AdminGroup on pg1 to pg1: $msg" ); +ok( $pg1->PrincipalObj->HasRight( + Right => 'AdminGroup', + Object => $pg1 ), + "Test personal group 1 has AdminGroup right on pg1 after delegation" ); +( $ret, $msg ) = $g1->DeleteMember( $u1->PrincipalId ); +ok( $ret, "Delete test user 1 from g1: $msg" ); +ok( not( $pg1->PrincipalObj->HasRight( + Right => 'AdminGroup', + Object => $pg1 )), + "Test personal group 1 lacks AdminGroup right on pg1 after user removed from g1" ); + +clear_acls_and_groups(); + + + +# Corner case - multiple delegation rights: u has global +# DelegateRights directly and DelegateRights on pg1 through g1, and +# AdminGroup on pg1 through g2; then u removed from g1 (delegation +# should remain); then DelegateRights revoked from u (delegation +# should not remain). + +( $ret, $msg ) = $g1->PrincipalObj->GrantRight( Right => 'DelegateRights', + Object => $pg1); +ok( $ret, "Grant DelegateRights on pg1 to g1: $msg" ); +( $ret, $msg ) = $g2->PrincipalObj->GrantRight( Right => 'AdminGroup', + Object => $pg1); +ok( $ret, "Grant AdminGroup on pg1 to g2: $msg" ); +( $ret, $msg ) = $u1->PrincipalObj->GrantRight( Right => 'DelegateRights', + Object => $RT::System); +ok( $ret, "Grant DelegateRights to user: $msg" ); +( $ret, $msg ) = $g1->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g1: $msg" ); +( $ret, $msg ) = $g2->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g2: $msg" ); +$ace = RT::ACE->new($u1); +( $ret, $msg ) = $ace->LoadByValues( + RightName => 'AdminGroup', + Object => $pg1, + PrincipalType => 'Group', + PrincipalId => $g2->PrincipalId +); +ok( $ret, "Look up ACE to be delegated: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate AdminGroup on pg1 to pg1: $msg" ); +( $ret, $msg ) = $g1->DeleteMember( $u1->PrincipalId ); +ok( $ret, "Delete test user 1 from g1: $msg" ); +ok( $pg1->PrincipalObj->HasRight(Right => 'AdminGroup', + Object => $pg1), + "Test personal group 1 retains AdminGroup right on pg1 after user removed from g1" ); +( $ret, $msg ) = $u1->PrincipalObj->RevokeRight( Right => 'DelegateRights', + Object => $RT::System ); +ok( not ($pg1->PrincipalObj->HasRight(Right => 'AdminGroup', + Object => $pg1)), + "Test personal group 1 lacks AdminGroup right on pg1 after DelegateRights revoked"); + +# Corner case - multiple delegation rights and selectivity: u has +# DelegateRights globally and on g2 directly and DelegateRights on pg1 +# through g1, and AdminGroup on pg1 through g2; then global +# DelegateRights revoked from u (delegation should remain), +# DelegateRights on g2 revoked from u (delegation should remain), and +# u removed from g1 (delegation should not remain). + +( $ret, $msg ) = $g1->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g1: $msg" ); +( $ret, $msg ) = $u1->PrincipalObj->GrantRight( Right => 'DelegateRights', + Object => $RT::System); +ok( $ret, "Grant DelegateRights to user: $msg" ); +( $ret, $msg ) = $u1->PrincipalObj->GrantRight( Right => 'DelegateRights', + Object => $g2); +ok( $ret, "Grant DelegateRights on g2 to user: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate AdminGroup on pg1 to pg1: $msg" ); +( $ret, $msg ) = $u1->PrincipalObj->RevokeRight( Right => 'DelegateRights', + Object => $RT::System ); +ok( $pg1->PrincipalObj->HasRight(Right => 'AdminGroup', + Object => $pg1), + "Test personal group 1 retains AdminGroup right on pg1 after global DelegateRights revoked" ); +( $ret, $msg ) = $u1->PrincipalObj->RevokeRight( Right => 'DelegateRights', + Object => $g2 ); +ok( $pg1->PrincipalObj->HasRight(Right => 'AdminGroup', + Object => $pg1), + "Test personal group 1 retains AdminGroup right on pg1 after DelegateRights on g2 revoked" ); +( $ret, $msg ) = $g1->DeleteMember( $u1->PrincipalId ); +ok( $ret, "Delete test user 1 from g1: $msg" ); +ok( not ($pg1->PrincipalObj->HasRight(Right => 'AdminGroup', + Object => $pg1)), + "Test personal group 1 lacks AdminGroup right on pg1 after user removed from g1"); + + + +# Corner case - indirect delegation rights: u has DelegateRights +# through g1 via g3, and ShowConfigTab via g2; then g3 removed from +# g1. + +clear_acls_and_groups(); + +( $ret, $msg ) = $g1->PrincipalObj->GrantRight( Right => 'DelegateRights' ); +ok( $ret, "Grant DelegateRights to g1: $msg" ); +( $ret, $msg ) = $g2->PrincipalObj->GrantRight( Right => 'ShowConfigTab' ); +ok( $ret, "Grant ShowConfigTab to g2: $msg" ); +( $ret, $msg ) = $g1->AddMember( $g3->PrincipalId ); +ok( $ret, "Add g3 to g1: $msg" ); +( $ret, $msg ) = $g3->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g3: $msg" ); +( $ret, $msg ) = $g2->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g2: $msg" ); + +$ace = RT::ACE->new($u1); +( $ret, $msg ) = $ace->LoadByValues( + RightName => 'ShowConfigTab', + Object => $RT::System, + PrincipalType => 'Group', + PrincipalId => $g2->PrincipalId +); +ok( $ret, "Look up ACE to be delegated: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate ShowConfigTab to pg1: $msg" ); + +( $ret, $msg ) = $g1->DeleteMember( $g3->PrincipalId ); +ok( $ret, "Delete g3 from g1: $msg" ); +ok( not ($pg1->PrincipalObj->HasRight(Right => 'ShowConfigTab', + Object => $RT::System)), + "Test personal group 1 lacks ShowConfigTab right after g3 removed from g1"); + +# Corner case - indirect delegation rights: u has DelegateRights +# through g1 via g3, and ShowConfigTab via g2; then DelegateRights +# revoked from g1. + +( $ret, $msg ) = $g1->AddMember( $g3->PrincipalId ); +ok( $ret, "Add g3 to g1: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate ShowConfigTab to pg1: $msg" ); +( $ret, $msg ) = $g1->PrincipalObj->RevokeRight ( Right => 'DelegateRights' ); +ok( $ret, "Revoke DelegateRights from g1: $msg" ); + +ok( not ($pg1->PrincipalObj->HasRight(Right => 'ShowConfigTab', + Object => $RT::System)), + "Test personal group 1 lacks ShowConfigTab right after DelegateRights revoked from g1"); + + + +# Corner case - delegation of DelegateRights: u1 has DelegateRights +# via g1 and delegates DelegateRights to pg1; u2 has DelegateRights +# via pg1 and ShowConfigTab via g2; then u1 removed from g1. + +clear_acls_and_groups(); + +( $ret, $msg ) = $g1->PrincipalObj->GrantRight( Right => 'DelegateRights' ); +ok( $ret, "Grant DelegateRights to g1: $msg" ); +( $ret, $msg ) = $g2->PrincipalObj->GrantRight( Right => 'ShowConfigTab' ); +ok( $ret, "Grant ShowConfigTab to g2: $msg" ); +( $ret, $msg ) = $g1->AddMember( $u1->PrincipalId ); +ok( $ret, "Add test user 1 to g1: $msg" ); +$ace = RT::ACE->new($u1); +( $ret, $msg ) = $ace->LoadByValues( + RightName => 'DelegateRights', + Object => $RT::System, + PrincipalType => 'Group', + PrincipalId => $g1->PrincipalId +); +ok( $ret, "Look up ACE to be delegated: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate DelegateRights to pg1: $msg" ); + +( $ret, $msg ) = $pg1->AddMember( $u2->PrincipalId ); +ok( $ret, "Add test user 2 to pg1: $msg" ); +( $ret, $msg ) = $g2->AddMember( $u2->PrincipalId ); +ok( $ret, "Add test user 2 to g2: $msg" ); +$ace = RT::ACE->new($u2); +( $ret, $msg ) = $ace->LoadByValues( + RightName => 'ShowConfigTab', + Object => $RT::System, + PrincipalType => 'Group', + PrincipalId => $g2->PrincipalId +); +ok( $ret, "Look up ACE to be delegated: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg2->PrincipalId ); +ok( $ret, "Delegate ShowConfigTab to pg2: $msg" ); + +ok( $pg2->PrincipalObj->HasRight(Right => 'ShowConfigTab', + Object => $RT::System), + "Test personal group 2 has ShowConfigTab right after delegation"); +( $ret, $msg ) = $g1->DeleteMember( $u1->PrincipalId ); +ok( $ret, "Delete u1 from g1: $msg" ); +ok( not ($pg2->PrincipalObj->HasRight(Right => 'ShowConfigTab', + Object => $RT::System)), + "Test personal group 2 lacks ShowConfigTab right after u1 removed from g1"); + +# Corner case - delegation of DelegateRights: u1 has DelegateRights +# via g1 and delegates DelegateRights to pg1; u2 has DelegateRights +# via pg1 and ShowConfigTab via g2; then DelegateRights revoked from +# g1. + +( $ret, $msg ) = $g1->AddMember( $u1->PrincipalId ); +ok( $ret, "Add u1 to g1: $msg" ); +$ace = RT::ACE->new($u1); +( $ret, $msg ) = $ace->LoadByValues( + RightName => 'DelegateRights', + Object => $RT::System, + PrincipalType => 'Group', + PrincipalId => $g1->PrincipalId +); +ok( $ret, "Look up ACE to be delegated: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg1->PrincipalId ); +ok( $ret, "Delegate DelegateRights to pg1: $msg" ); +$ace = RT::ACE->new($u2); +( $ret, $msg ) = $ace->LoadByValues( + RightName => 'ShowConfigTab', + Object => $RT::System, + PrincipalType => 'Group', + PrincipalId => $g2->PrincipalId +); +ok( $ret, "Look up ACE to be delegated: $msg" ); +( $ret, $msg ) = $ace->Delegate( PrincipalId => $pg2->PrincipalId ); +ok( $ret, "Delegate ShowConfigTab to pg2: $msg" ); + +( $ret, $msg ) = $g1->PrincipalObj->RevokeRight ( Right => 'DelegateRights' ); +ok( $ret, "Revoke DelegateRights from g1: $msg" ); +ok( not ($pg2->PrincipalObj->HasRight(Right => 'ShowConfigTab', + Object => $RT::System)), + "Test personal group 2 lacks ShowConfigTab right after DelegateRights revoked from g1"); + + + + +####### + +sub clear_acls_and_groups { + # Revoke all rights granted to our cast + my $acl = RT::ACL->new($RT::SystemUser); + foreach (@principals) { + $acl->LimitToPrincipal(Type => $$_->PrincipalObj->PrincipalType, + Id => $$_->PrincipalObj->Id); + } + while (my $ace = $acl->Next()) { + $ace->Delete(); + } + + # Remove all group memberships + my $members = RT::GroupMembers->new($RT::SystemUser); + foreach (@groups) { + $members->LimitToMembersOfGroup( $$_->PrincipalId ); + } + while (my $member = $members->Next()) { + $member->Delete(); + } + + $acl->RedoSearch(); + ok( $acl->Count() == 0, + "All principals have no rights after clearing ACLs" ); + $members->RedoSearch(); + ok( $members->Count() == 0, + "All groups have no members after clearing groups" ); +} diff --git a/rt/lib/t/regression/19-rtname.t b/rt/lib/t/regression/19-rtname.t new file mode 100644 index 000000000..b654df2bd --- /dev/null +++ b/rt/lib/t/regression/19-rtname.t @@ -0,0 +1,38 @@ +#!/usr/bin/perl +use strict; +use warnings; +use Test::More qw/no_plan/; + +use_ok("RT"); + +RT::LoadConfig(); +RT::Init(); + +use RT::Interface::Email; + +# normal use case, regexp set to rtname +$RT::rtname = "site"; +$RT::EmailSubjectTagRegex = qr/$RT::rtname/ ; +$RT::rtname = undef; +is(RT::Interface::Email::ParseTicketId("[site #123] test"), 123); +is(RT::Interface::Email::ParseTicketId("[othersite #123] test"), undef); + +# oops usecase, where the regexp is scragged +$RT::rtname = "site"; +$RT::EmailSubjectTagRegex = undef; +is(RT::Interface::Email::ParseTicketId("[site #123] test"), 123); +is(RT::Interface::Email::ParseTicketId("[othersite #123] test"), undef); + +# set to a simple regexp. NOTE: we no longer match "site" +$RT::rtname = "site"; +$RT::EmailSubjectTagRegex = qr/newsite/; +is(RT::Interface::Email::ParseTicketId("[site #123] test"), undef); +is(RT::Interface::Email::ParseTicketId("[newsite #123] test"), 123); + +# set to a more complex regexp +$RT::rtname = "site"; +$RT::EmailSubjectTagRegex = qr/newsite||site/; +is(RT::Interface::Email::ParseTicketId("[site #123] test"), 123); +is(RT::Interface::Email::ParseTicketId("[newsite #123] test"), 123); +is(RT::Interface::Email::ParseTicketId("[othersite #123] test"), undef); + diff --git a/rt/lib/t/regression/20savedsearch.t b/rt/lib/t/regression/20savedsearch.t new file mode 100644 index 000000000..f4439f94e --- /dev/null +++ b/rt/lib/t/regression/20savedsearch.t @@ -0,0 +1,180 @@ +use RT; +use Test::More tests => 26; +use RT::User; +use RT::Group; +use RT::Ticket; +use RT::Queue; + +use_ok(RT::SavedSearch); +use_ok(RT::SavedSearches); + +RT::LoadConfig(); +RT::Init(); + +# Set up some infrastructure. These calls are tested elsewhere. + +my $searchuser = RT::User->new($RT::SystemUser); +my ($ret, $msg) = $searchuser->Create(Name => 'searchuser'.$$, + Privileged => 1, + EmailAddress => "searchuser\@p$$.example.com", + RealName => 'Search user'); +ok($ret, "created searchuser: $msg"); +$searchuser->PrincipalObj->GrantRight(Right => 'LoadSavedSearch'); +$searchuser->PrincipalObj->GrantRight(Right => 'CreateSavedSearch'); +$searchuser->PrincipalObj->GrantRight(Right => 'ModifySelf'); + +# This is the group whose searches searchuser should be able to see. +my $ingroup = RT::Group->new($RT::SystemUser); +$ingroup->CreateUserDefinedGroup(Name => 'searchgroup1'.$$); +$ingroup->AddMember($searchuser->Id); +$searchuser->PrincipalObj->GrantRight(Right => 'EditSavedSearches', + Object => $ingroup); +$searchuser->PrincipalObj->GrantRight(Right => 'ShowSavedSearches', + Object => $ingroup); + +# This is the group whose searches searchuser should not be able to see. +my $outgroup = RT::Group->new($RT::SystemUser); +$outgroup->CreateUserDefinedGroup(Name => 'searchgroup2'.$$); +$outgroup->AddMember($RT::SystemUser->Id); + +my $queue = RT::Queue->new($RT::SystemUser); +$queue->Create(Name => 'SearchQueue'.$$); +$searchuser->PrincipalObj->GrantRight(Right => 'SeeQueue', Object => $queue); +$searchuser->PrincipalObj->GrantRight(Right => 'ShowTicket', Object => $queue); +$searchuser->PrincipalObj->GrantRight(Right => 'OwnTicket', Object => $queue); + + +my $ticket = RT::Ticket->new($RT::SystemUser); +$ticket->Create(Queue => $queue->Id, + Requestor => [ $searchuser->Name ], + Owner => $searchuser, + Subject => 'saved search test'); + + +# Now start the search madness. +my $curruser = RT::CurrentUser->new($searchuser); +my $format = '\' <b><a href="/Ticket/Display.html?id=__id__">__id__</a></b>/TITLE:#\', +\'<b><a href="/Ticket/Display.html?id=__id__">__Subject__</a></b>/TITLE:Subject\', +\'__Status__\', +\'__QueueName__\', +\'__OwnerName__\', +\'__Priority__\', +\'__NEWLINE__\', +\'\', +\'<small>__Requestors__</small>\', +\'<small>__CreatedRelative__</small>\', +\'<small>__ToldRelative__</small>\', +\'<small>__LastUpdatedRelative__</small>\', +\'<small>__TimeLeft__</small>\''; + +my ($ret, $msg); +my $mysearch = RT::SavedSearch->new($curruser); +($ret, $msg) = $mysearch->Save(Privacy => 'RT::User-' . $searchuser->Id, + Type => 'Ticket', + Name => 'owned by me', + SearchParams => {'Format' => $format, + 'Query' => "Owner = '" + . $searchuser->Name + . "'"}); +ok($ret, "mysearch was created"); + + +my $groupsearch = RT::SavedSearch->new($curruser); +($ret, $msg) = $groupsearch->Save(Privacy => 'RT::Group-' . $ingroup->Id, + Type => 'Ticket', + Name => 'search queue', + SearchParams => {'Format' => $format, + 'Query' => "Queue = '" + . $queue->Name . "'"}); +ok($ret, "groupsearch was created"); + +my $othersearch = RT::SavedSearch->new($curruser); +($ret, $msg) = $othersearch->Save(Privacy => 'RT::Group-' . $outgroup->Id, + Type => 'Ticket', + Name => 'searchuser requested', + SearchParams => {'Format' => $format, + 'Query' => + "Requestor.Name LIKE 'search'"}); +ok(!$ret, "othersearch NOT created"); +like($msg, qr/Failed to load object for/, "...for the right reason"); + +$othersearch = RT::SavedSearch->new($RT::SystemUser); +($ret, $msg) = $othersearch->Save(Privacy => 'RT::Group-' . $outgroup->Id, + Type => 'Ticket', + Name => 'searchuser requested', + SearchParams => {'Format' => $format, + 'Query' => + "Requestor.Name LIKE 'search'"}); +ok($ret, "othersearch created by systemuser"); + +# Now try to load some searches. + +# This should work. +my $loadedsearch1 = RT::SavedSearch->new($curruser); +$loadedsearch1->Load('RT::User-'.$curruser->Id, $mysearch->Id); +is($loadedsearch1->Id, $mysearch->Id, "Loaded mysearch"); +like($loadedsearch1->GetParameter('Query'), qr/Owner/, + "Retrieved query of mysearch"); +# Check through the other accessor methods. +is($loadedsearch1->Privacy, 'RT::User-' . $curruser->Id, + "Privacy of mysearch correct"); +is($loadedsearch1->Name, 'owned by me', "Name of mysearch correct"); +is($loadedsearch1->Type, 'Ticket', "Type of mysearch correct"); + +# See if it can be used to search for tickets. +my $tickets = RT::Tickets->new($curruser); +$tickets->FromSQL($loadedsearch1->GetParameter('Query')); +is($tickets->Count, 1, "Found a ticket"); + +# This should fail -- wrong object. +# my $loadedsearch2 = RT::SavedSearch->new($curruser); +# $loadedsearch2->Load('RT::User-'.$curruser->Id, $groupsearch->Id); +# isnt($loadedsearch2->Id, $othersearch->Id, "Didn't load groupsearch as mine"); +# ...but this should succeed. +my $loadedsearch3 = RT::SavedSearch->new($curruser); +$loadedsearch3->Load('RT::Group-'.$ingroup->Id, $groupsearch->Id); +is($loadedsearch3->Id, $groupsearch->Id, "Loaded groupsearch"); +like($loadedsearch3->GetParameter('Query'), qr/Queue/, + "Retrieved query of groupsearch"); +# Can it get tickets? +$tickets = RT::Tickets->new($curruser); +$tickets->FromSQL($loadedsearch3->GetParameter('Query')); +is($tickets->Count, 1, "Found a ticket"); + +# This should fail -- no permission. +my $loadedsearch4 = RT::SavedSearch->new($curruser); +$loadedsearch4->Load($othersearch->Privacy, $othersearch->Id); +isnt($loadedsearch4->Id, $othersearch->Id, "Did not load othersearch"); + +# Try to update an existing search. +$loadedsearch1->Update( SearchParams => {'Format' => $format, + 'Query' => "Queue = '" . $queue->Name . "'" } ); +like($loadedsearch1->GetParameter('Query'), qr/Queue/, + "Updated mysearch parameter"); +is($loadedsearch1->Type, 'Ticket', "mysearch is still for tickets"); +is($loadedsearch1->Privacy, 'RT::User-'.$curruser->Id, + "mysearch still belongs to searchuser"); +like($mysearch->GetParameter('Query'), qr/Queue/, "other mysearch object updated"); + + +## Right ho. Test the pseudo-collection object. + +my $genericsearch = RT::SavedSearch->new($curruser); +$genericsearch->Save(Name => 'generic search', + Type => 'all', + SearchParams => {'Query' => "Queue = 'General'"}); + +my $ticketsearches = RT::SavedSearches->new($curruser); +$ticketsearches->LimitToPrivacy('RT::User-'.$curruser->Id, 'Ticket'); +is($ticketsearches->Count, 1, "Found searchuser's ticket searches"); + +my $allsearches = RT::SavedSearches->new($curruser); +$allsearches->LimitToPrivacy('RT::User-'.$curruser->Id); +is($allsearches->Count, 2, "Found all searchuser's searches"); + +# Delete a search. +($ret, $msg) = $genericsearch->Delete; +ok($ret, "Deleted genericsearch"); +$allsearches->LimitToPrivacy('RT::User-'.$curruser->Id); +is($allsearches->Count, 1, "Found all searchuser's searches after deletion"); + diff --git a/rt/lib/t/regression/21query-builder.t b/rt/lib/t/regression/21query-builder.t new file mode 100644 index 000000000..be04599bc --- /dev/null +++ b/rt/lib/t/regression/21query-builder.t @@ -0,0 +1,204 @@ +#!/usr/bin/perl + +use strict; +use Test::More tests => 31; +use Test::WWW::Mechanize; +use HTTP::Request::Common; +use HTTP::Cookies; +use LWP; +use Encode; + +my $cookie_jar = HTTP::Cookies->new; +my $agent = Test::WWW::Mechanize->new(); + +# give the agent a place to stash the cookies + +$agent->cookie_jar($cookie_jar); + +use RT; +RT::LoadConfig; + +# get the top page +my $url = $RT::WebURL; +$agent->get($url); + +is ($agent->{'status'}, 200, "Loaded a page"); + + +# {{{ test a login + +# follow the link marked "Login" + +ok($agent->{form}->find_input('user')); + +ok($agent->{form}->find_input('pass')); +ok ($agent->{'content'} =~ /username:/i); +$agent->field( 'user' => 'root' ); +$agent->field( 'pass' => 'password' ); +# the field isn't named, so we have to click link 0 +$agent->click(0); +is($agent->{'status'}, 200, "Fetched the page ok"); +ok( $agent->{'content'} =~ /Logout/i, "Found a logout link"); + +# }}} + +# {{{ Query Builder tests + +my $response = $agent->get($url."Search/Build.html"); +ok( $response->is_success, "Fetched " . $url."Search/Build.html" ); + +# Adding items + +# set the first value +ok($agent->form_name('BuildQuery'), "found the form once"); +$agent->field("ActorField", "Owner"); +$agent->field("ActorOp", "="); +$agent->field("ValueOfActor", "Nobody"); +$agent->submit(); + +# set the next value +ok($agent->form_name('BuildQuery'), "found the form again"); +$agent->field("QueueOp", "!="); +$agent->field("ValueOfQueue", "Regression"); +$agent->submit(); + +ok($agent->form_name('BuildQuery'), "found the form a third time"); + +sub getQueryFromForm { + # This pulls out the "hidden input" query from the page + my $q = $agent->current_form->find_input("Query")->value; + $q =~ s/^\s+//g; + $q =~ s/\s+$//g; + $q =~ s/\s+/ /g; + return $q; +} + +is (getQueryFromForm, "Owner = 'Nobody' AND Queue != 'Regression'"); + +# We're going to delete the owner + +$agent->select("clauses", ["0"] ); + +$agent->click("DeleteClause"); + +ok($agent->form_name('BuildQuery'), "found the form a fourth time"); + +is (getQueryFromForm, "Queue != 'Regression'"); + +$agent->field("AndOr", "OR"); + +$agent->select("idOp", ">"); + +$agent->field("ValueOfid" => "1234"); + +$agent->click("AddClause"); + +ok($agent->form_name('BuildQuery'), "found the form again"); +TODO: { + local $TODO = "query builder incorrectly quotes numbers"; + is(getQueryFromForm, "Queue != 'Regression' OR id > 1234", "added something as OR, and number not quoted"); +} + +sub selectedClauses { + my @clauses = grep { defined } map { $_->value } $agent->current_form->find_input("clauses"); + return [ @clauses ]; +} + + +is_deeply(selectedClauses, ["1"], 'the id that we just entered is still selected'); + +# Move the second one up a level +$agent->click("Up"); + +ok($agent->form_name('BuildQuery'), "found the form again"); +is(getQueryFromForm, "id > 1234 OR Queue != 'Regression'", "moved up one"); + +is_deeply(selectedClauses, ["0"], 'the one we moved up is selected'); + +$agent->click("Right"); + +ok($agent->form_name('BuildQuery'), "found the form again"); +is(getQueryFromForm, "Queue != 'Regression' OR ( id > 1234 )", "moved over to the right (and down)"); +is_deeply(selectedClauses, ["2"], 'the one we moved right is selected'); + +$agent->select("clauses", ["1"]); + +$agent->click("Up"); + +ok($agent->form_name('BuildQuery'), "found the form again"); +TODO: { + local $TODO = "query builder incorrectly changes OR to AND"; + is(getQueryFromForm, "( id > 1234 ) OR Queue != 'Regression'", "moved up"); +} + +$agent->select("clauses", ["0"]); # this is a null clause + +$agent->click("Up"); + +ok($agent->form_name('BuildQuery'), "found the form again"); + +$agent->content_like(qr/error: can\S+t move up/, "i shouldn't have been able to hit up"); + +$agent->click("Left"); + +ok($agent->form_name('BuildQuery'), "found the form again"); + +$agent->content_like(qr/error: can\S+t move left/, "i shouldn't have been able to hit left"); + +$agent->select("clauses", ["1"]); +$agent->select("ValueOfStatus" => "stalled"); + +$agent->submit; +ok($agent->form_name('BuildQuery'), "found the form again"); +is_deeply(selectedClauses, ["2"], 'the one we added is selected'); +TODO: { + local $TODO = "query builder incorrectly changes OR to AND"; + is(getQueryFromForm, "( id > 1234 AND Status = 'stalled' ) OR Queue != 'Regression'", "added new one"); +} + + + +# - new items go one level down +# - add items at currently selected level +# - if nothing is selected, add at end, one level down +# +# move left +# - error if nothing selected +# - same item should be selected after move +# - can't move left if you're at the top level +# +# move right +# - error if nothing selected +# - same item should be selected after move +# - can always move right (no max depth...should there be?) +# +# move up +# - error if nothing selected +# - same item should be selected after move +# - can't move up if you're first in the list +# +# move down +# - error if nothing selected +# - same item should be selected after move +# - can't move down if you're last in the list +# +# toggle +# - error if nothing selected +# - change all aggregators in the grouping +# - don't change any others +# +# delete +# - error if nothing selected +# - delete currently selected item +# - delete all children of a grouping +# - if delete leaves a node with no children, delete that, too +# - what should be selected? +# +# Clear +# - clears entire query +# - clears it from the session, too + +# }}} + + +1; diff --git a/rt/lib/t/regression/22search_tix_by_txn.t b/rt/lib/t/regression/22search_tix_by_txn.t new file mode 100644 index 000000000..54dad9860 --- /dev/null +++ b/rt/lib/t/regression/22search_tix_by_txn.t @@ -0,0 +1,32 @@ +#use Test::More tests => 26; +use Test::More qw/no_plan/; + +use RT; +RT::LoadConfig(); +RT::Init(); + +my $SUBJECT = "Search test - ".$$; + +use_ok('RT::Tickets'); +my $tix = RT::Tickets->new($RT::SystemUser); +can_ok($tix, 'FromSQL'); +$tix->FromSQL('Updated = "2005-08-05" AND Subject = "$SUBJECT"'); + +ok(! $tix->Count, "Searching for tickets updated on a random date finds nothing" . $tix->Count); + +my $ticket = RT::Ticket->new($RT::SystemUser); +$ticket->Create(Queue => 'General', Subject => $SUBJECT); +ok ($ticket->id, "We created a ticket"); +my ($id, $txnid, $txnobj) = $ticket->Comment( Content => 'A comment that happend on 2004-01-01'); + +isa_ok($txnobj, 'RT::Transaction'); + +ok($txnobj->CreatedObj->ISO); +my ( $sid,$smsg) = $txnobj->__Set(Field => 'Created', Value => '2005-08-05 20:00:56'); +ok($sid,$smsg); +is($txnobj->Created,'2005-08-05 20:00:56'); +is($txnobj->CreatedObj->ISO,'2005-08-05 20:00:56'); + +$tix->FromSQL(qq{Updated = "2005-08-05" AND Subject = "$SUBJECT"}); +is( $tix->Count, 1); +1; diff --git a/rt/lib/t/setup_regression.t b/rt/lib/t/setup_regression.t new file mode 100644 index 000000000..36f809b65 --- /dev/null +++ b/rt/lib/t/setup_regression.t @@ -0,0 +1,34 @@ +#!/usr/bin/perl + +use Test::More qw(no_plan); + +use RT; +ok(RT::LoadConfig); +ok(RT::Init, "Basic initialization and DB connectivity"); + +# Create a new queue +use_ok(RT::Queue); +my $q = RT::Queue->new($RT::SystemUser); + +$q->Load('regression'); +if ($q->id != 0) { + die "Regression tests not starting with a clean DB. Bailing"; +} + +my ($id, $msg) = $q->Create( Name => 'Regression', + Description => 'A regression test queue', + CorrespondAddress => 'correspond@a', + CommentAddress => 'comment@a'); + +isnt($id, 0, "Queue was created sucessfully - $msg"); + +my $q2 = RT::Queue->new($RT::SystemUser); + +ok($q2->Load($id)); +is($q2->id, $id, "Sucessfully loaded the queue again"); +is($q2->Name, 'Regression'); +is($q2->Description, 'A regression test queue'); +is($q2->CorrespondAddress, 'correspond@a'); +is($q2->CommentAddress, 'comment@a'); + + -- cgit v1.2.1 From 6863b061a7740eed16903f01dae6b46521e9ca7b Mon Sep 17 00:00:00 2001 From: ivan <ivan> Date: Sat, 15 Oct 2005 09:33:53 +0000 Subject: landing rt 3.4.4 on HEAD --- rt/lib/RT/I18N/en_malkovich.po | 3973 -------------------------- rt/lib/RT/TicketCustomFieldValue.pm | 308 -- rt/lib/RT/TicketCustomFieldValue_Overlay.pm | 74 - rt/lib/RT/TicketCustomFieldValues.pm | 137 - rt/lib/RT/TicketCustomFieldValues_Overlay.pm | 108 - rt/lib/t/00smoke.t.in | 14 - rt/lib/t/01harness.t.in | 12 - rt/lib/t/02regression.t.in | 47 - rt/lib/t/03web.pl.in | 170 -- rt/lib/t/04_send_email.pl.in | 506 ---- rt/lib/t/05cronsupport.pl.in | 84 - rt/lib/t/regression/00placeholder | 1 - 12 files changed, 5434 deletions(-) delete mode 100644 rt/lib/RT/I18N/en_malkovich.po delete mode 100644 rt/lib/RT/TicketCustomFieldValue.pm delete mode 100644 rt/lib/RT/TicketCustomFieldValue_Overlay.pm delete mode 100644 rt/lib/RT/TicketCustomFieldValues.pm delete mode 100644 rt/lib/RT/TicketCustomFieldValues_Overlay.pm delete mode 100644 rt/lib/t/00smoke.t.in delete mode 100644 rt/lib/t/01harness.t.in delete mode 100644 rt/lib/t/02regression.t.in delete mode 100644 rt/lib/t/03web.pl.in delete mode 100644 rt/lib/t/04_send_email.pl.in delete mode 100644 rt/lib/t/05cronsupport.pl.in delete mode 100644 rt/lib/t/regression/00placeholder (limited to 'rt/lib') 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/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/t/00smoke.t.in b/rt/lib/t/00smoke.t.in deleted file mode 100644 index 288dd4aae..000000000 --- a/rt/lib/t/00smoke.t.in +++ /dev/null @@ -1,14 +0,0 @@ -#!@PERL@ - -use Test::More qw(no_plan); - -use lib "@RT_LIB_PATH@"; -use RT; -ok(RT::LoadConfig); -ok(RT::Init, "Basic initialization and DB connectivity"); - -use File::Find; -File::Find::find({wanted => \&wanted}, 'lib/'); -sub wanted { /^*\.pm\z/s && ok(require $_, "Requiring '$_'"); } - - diff --git a/rt/lib/t/01harness.t.in b/rt/lib/t/01harness.t.in deleted file mode 100644 index d132330c2..000000000 --- a/rt/lib/t/01harness.t.in +++ /dev/null @@ -1,12 +0,0 @@ -#!@PERL@ - -use Test::More qw(no_plan); - -use lib "@RT_LIB_PATH@"; -use RT; -ok(RT::LoadConfig); -ok(RT::Init, "Basic initialization and DB connectivity"); - -my $test = shift @ARGV; -require $test; - diff --git a/rt/lib/t/02regression.t.in b/rt/lib/t/02regression.t.in deleted file mode 100644 index c2e3277a9..000000000 --- a/rt/lib/t/02regression.t.in +++ /dev/null @@ -1,47 +0,0 @@ -#!@PERL@ - -use Test::More qw(no_plan); - -use lib "@RT_LIB_PATH@"; -use RT; -ok(RT::LoadConfig); -ok(RT::Init, "Basic initialization and DB connectivity"); - -# Create a new queue -use_ok(RT::Queue); -my $q = RT::Queue->new($RT::SystemUser); - -$q->Load('regression'); -if ($q->id != 0) { - die "Regression tests not starting with a clean DB. Bailing"; -} - -my ($id, $msg) = $q->Create( Name => 'Regression', - Description => 'A regression test queue', - CorrespondAddress => 'correspond@a', - CommentAddress => 'comment@a'); - -isnt($id, 0, "Queue was created sucessfully - $msg"); - -my $q2 = RT::Queue->new($RT::SystemUser); - -ok($q2->Load($id)); -is($q2->id, $id, "Sucessfully loaded the queue again"); -is($q2->Name, 'Regression'); -is($q2->Description, 'A regression test queue'); -is($q2->CorrespondAddress, 'correspond@a'); -is($q2->CommentAddress, 'comment@a'); - - -use File::Find; -File::Find::find({wanted => \&wanted_autogen, - preprocess => sub {return sort @_}}, 'lib/t/autogen'); -sub wanted_autogen { /^autogen.*\.t\z/s && require $_; } - -File::Find::find({wanted => \&wanted_regression, - preprocess => sub {return sort @_}}, 'lib/t/regression'); -sub wanted_regression { /^*\.t\z/s && require $_; } - -require "@RT_LIB_PATH@/t/03web.pl"; -require "@RT_LIB_PATH@/t/04_send_email.pl"; -require "@RT_LIB_PATH@/t/05cronsupport.pl"; diff --git a/rt/lib/t/03web.pl.in b/rt/lib/t/03web.pl.in deleted file mode 100644 index 25c26e711..000000000 --- a/rt/lib/t/03web.pl.in +++ /dev/null @@ -1,170 +0,0 @@ -#!@PERL@ - -use strict; -use WWW::Mechanize; -use HTTP::Request::Common; -use HTTP::Cookies; -use LWP; -use Encode; - -my $cookie_jar = HTTP::Cookies->new; -my $agent = WWW::Mechanize->new(); - -# give the agent a place to stash the cookies - -$agent->cookie_jar($cookie_jar); - - -# get the top page -my $url = "http://localhost".$RT::WebPath."/"; -$agent->get($url); - -is ($agent->{'status'}, 200, "Loaded a page"); - - -# {{{ test a login - -# follow the link marked "Login" - -ok($agent->{form}->find_input('user')); - -ok($agent->{form}->find_input('pass')); -ok ($agent->{'content'} =~ /username:/i); -$agent->field( 'user' => 'root' ); -$agent->field( 'pass' => 'password' ); -# the field isn't named, so we have to click link 0 -$agent->click(0); -is($agent->{'status'}, 200, "Fetched the page ok"); -ok( $agent->{'content'} =~ /Logout/i, "Found a logout link"); - - - -$agent->get($url."Ticket/Create.html?Queue=1"); -is ($agent->{'status'}, 200, "Loaded Create.html"); -$agent->form(3); -# Start with a string containing characters in latin1 -my $string = "I18N Web Testing æøå"; -Encode::from_to($string, 'iso-8859-1', 'utf8'); -$agent->field('Subject' => "Foo"); -$agent->field('Content' => $string); -ok($agent->submit(), "Created new ticket with $string"); - -ok( $agent->{'content'} =~ qr{$string} , "Found the content"); - -$agent->get($url."Ticket/Create.html?Queue=1"); -is ($agent->{'status'}, 200, "Loaded Create.html"); -$agent->form(3); -# Start with a string containing characters in latin1 -my $string = "I18N Web Testing æøå"; -Encode::from_to($string, 'iso-8859-1', 'utf8'); -$agent->field('Subject' => $string); -$agent->field('Content' => "BAR"); -ok($agent->submit(), "Created new ticket with $string"); - -ok( $agent->{'content'} =~ qr{$string} , "Found the content"); - - - -# }}} - -# {{{ Query Builder tests - -my $response = $agent->get($url."Search/Build.html"); -ok( $response->is_success, "Fetched " . $url."Search/Build.html" ); - -# Parsing TicketSQL -# -# Adding items - -# set the first value -ok($agent->form_name('BuildQuery')); -$agent->field("AttachmentField", "Subject"); -$agent->field("AttachmentOp", "LIKE"); -$agent->field("ValueOfAttachment", "aaa"); -$agent->submit(); - -# set the next value -ok($agent->form_name('BuildQuery')); -$agent->field("AttachmentField", "Subject"); -$agent->field("AttachmentOp", "LIKE"); -$agent->field("ValueOfAttachment", "bbb"); -$agent->submit(); - -ok($agent->form_name('BuildQuery')); - -# get the query -my $query = $agent->current_form->find_input("Query")->value; -# strip whitespace from ends -$query =~ s/^\s*//g; -$query =~ s/\s*$//g; - -# collapse other whitespace -$query =~ s/\s+/ /g; - -is ($query, "Subject LIKE 'aaa' AND Subject LIKE 'bbb'"); - -# - new items go one level down -# - add items at currently selected level -# - if nothing is selected, add at end, one level down -# -# move left -# - error if nothing selected -# - same item should be selected after move -# - can't move left if you're at the top level -# -# move right -# - error if nothing selected -# - same item should be selected after move -# - can always move right (no max depth...should there be?) -# -# move up -# - error if nothing selected -# - same item should be selected after move -# - can't move up if you're first in the list -# -# move down -# - error if nothing selected -# - same item should be selected after move -# - can't move down if you're last in the list -# -# toggle -# - error if nothing selected -# - change all aggregators in the grouping -# - don't change any others -# -# delete -# - error if nothing selected -# - delete currently selected item -# - delete all children of a grouping -# - if delete leaves a node with no children, delete that, too -# - what should be selected? -# -# Clear -# - clears entire query -# - clears it from the session, too - -# }}} - -use File::Find; -find ( \&wanted , 'html/'); - -sub wanted { - -f && /\.html$/ && $_ !~ /Logout.html$/ && test_get($File::Find::name); -} - -sub test_get { - my $file = shift; - - - $file =~ s#^html/##; - ok ($agent->get("$url/$file", "GET $url/$file")); - is ($agent->{'status'}, 200, "Loaded $file"); -# ok( $agent->{'content'} =~ /Logout/i, "Found a logout link on $file "); - ok( $agent->{'content'} !~ /Not logged in/i, "Still logged in for $file"); - ok( $agent->{'content'} !~ /System error/i, "Didn't get a Mason compilation error on $file"); - -} - -# }}} - -1; diff --git a/rt/lib/t/04_send_email.pl.in b/rt/lib/t/04_send_email.pl.in deleted file mode 100644 index 39ab0d271..000000000 --- a/rt/lib/t/04_send_email.pl.in +++ /dev/null @@ -1,506 +0,0 @@ -#!@PERL@ -w - -use strict; -use RT::EmailParser; -use RT::Tickets; -use RT::Action::SendEmail; - -my @_outgoing_messages; -my @scrips_fired; - -#We're not testing acls here. -my $everyone = RT::Group->new($RT::SystemUser); -$everyone->LoadSystemInternalGroup('Everyone'); -$everyone->PrincipalObj->GrantRight(Right =>'SuperUser'); - - -is (__PACKAGE__, 'main', "We're operating in the main package"); - - -{ -no warnings qw/redefine/; -sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - - main::_fired_scrip($self->ScripObj); - main::ok(ref($MIME) eq 'MIME::Entity', "hey, look. it's a mime entity"); -} - -} - -# instrument SendEmail to pass us what it's about to send. -# create a regular ticket - -my $parser = RT::EmailParser->new(); - - -# Let's test to make sure a multipart/report is processed correctly -my $content = `cat @RT_LIB_PATH@/t/data/multipart-report` || die "couldn't find new content"; -# be as much like the mail gateway as possible. -use RT::Interface::Email; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /The original message was received/, "It's the bounce"); - - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); - -undef @scrips_fired; - - - - -$parser->ParseMIMEEntityFromScalar('From: root@localhost -To: rt@example.com -Subject: This is a test of new ticket creation as an unknown user - -Blah! -Foob!'); - - -use Data::Dumper; - -my $ticket = RT::Ticket->new($RT::SystemUser); -my ($id, $tid, $msg ) = $ticket->Create(Requestor => ['root@localhost'], Queue => 'general', Subject => 'I18NTest', MIMEObj => $parser->Entity); -ok ($id,$msg); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); -ok ($tick->Subject eq 'I18NTest', "failed to create the new ticket from an unprivileged account"); - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); -# make sure it sends an autoreply -# make sure it sends a notification to adminccs - - -# we need to swap out SendMessage to test the new things we care about; -&utf8_redef_sendmessage; - -# create an iso 8859-1 ticket -@scrips_fired = (); - -my $content = `cat @RT_LIB_PATH@/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; - - - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -use RT::Interface::Email; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); - - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); -# make sure it sends an autoreply - - -# make sure it sends a notification to adminccs - -# If we correspond, does it do the right thing to the outbound messages? - -$parser->ParseMIMEEntityFromScalar($content); -my ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); -ok ($id, $msg); - -$parser->ParseMIMEEntityFromScalar($content); -($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); -ok ($id, $msg); - - - - - -# we need to swap out SendMessage to test the new things we care about; -&iso8859_redef_sendmessage; -$RT::EmailOutputEncoding = 'iso-8859-1'; -# create an iso 8859-1 ticket -@scrips_fired = (); - -my $content = `cat @RT_LIB_PATH@/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; -# be as much like the mail gateway as possible. -use RT::Interface::Email; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); - - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); -# make sure it sends an autoreply - - -# make sure it sends a notification to adminccs - - -# If we correspond, does it do the right thing to the outbound messages? - -$parser->ParseMIMEEntityFromScalar($content); -my ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); -ok ($id, $msg); - -$parser->ParseMIMEEntityFromScalar($content); -($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); -ok ($id, $msg); - - -sub _fired_scrip { - my $scrip = shift; - push @scrips_fired, $scrip; -} - -sub utf8_redef_sendmessage { - no warnings qw/redefine/; - eval ' - sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - - my $scrip = $self->ScripObj->id; - ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); - main::_fired_scrip($self->ScripObj); - $MIME->make_singlepart; - main::ok( ref($MIME) eq \'MIME::Entity\', - "hey, look. it\'s a mime entity" ); - main::ok( ref( $MIME->head ) eq \'MIME::Head\', - "its mime header is a mime header. yay" ); - main::ok( $MIME->head->get(\'Content-Type\') =~ /utf-8/, - "Its content type is utf-8" ); - my $message_as_string = $MIME->bodyhandle->as_string(); - use Encode; - $message_as_string = Encode::decode_utf8($message_as_string); - main::ok( - $message_as_string =~ /H\x{e5}vard/, -"The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); - - }'; -} - -sub iso8859_redef_sendmessage { - no warnings qw/redefine/; - eval ' - sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - - my $scrip = $self->ScripObj->id; - ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); - main::_fired_scrip($self->ScripObj); - $MIME->make_singlepart; - main::ok( ref($MIME) eq \'MIME::Entity\', - "hey, look. it\'s a mime entity" ); - main::ok( ref( $MIME->head ) eq \'MIME::Head\', - "its mime header is a mime header. yay" ); - main::ok( $MIME->head->get(\'Content-Type\') =~ /iso-8859-1/, - "Its content type is iso-8859-1 - " . $MIME->head->get("Content-Type") ); - my $message_as_string = $MIME->bodyhandle->as_string(); - use Encode; - $message_as_string = Encode::decode("iso-8859-1",$message_as_string); - main::ok( - $message_as_string =~ /H\x{e5}vard/, "The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); - - }'; -} - -# {{{ test a multipart alternative containing a text-html part with an umlaut - -my $content = `cat @RT_LIB_PATH@/t/data/multipart-alternative-with-umlaut` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -¨auts_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /causes Error/, "We recorded the content right as text-plain"); -is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments, presumably a text-plain, a text-html and a multipart alternative"); - -sub umlauts_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { }'; -} - -# }}} - -# {{{ test a text-html message with an umlaut - -my $content = `cat @RT_LIB_PATH@/t/data/text-html-with-umlaut` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_html_umlauts_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Attachments->First->Content =~ /causes Error/, "We recorded the content as containing 'causes error'"); -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content as text/html"); -ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); - -sub text_html_umlauts_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - use Data::Dumper; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); - is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); - is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); - is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); - }'; -} - -# }}} - -# {{{ test a text-html message with russian characters - -my $content = `cat @RT_LIB_PATH@/t/data/text-html-in-russian` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_html_russian_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content right as text-html"); -ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); - -sub text_html_russian_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - use Data::Dumper; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); - is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); - is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); - is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); - my $content_1251; - $content_1251 = $MIME->parts(1)->bodyhandle->as_string(); - ok ($content_1251 =~ qr{Ó÷eáíûé Öeíòp "ÊÀÄÐÛ ÄÅËÎÂÎÃÎ ÌÈÐÀ" ïpèãëaøaeò ía òpeíèíã:}, -"Content matches drugim in codepage 1251" ); - }'; -} - -# }}} - -# {{{ test a message containing a russian subject and NO content type - -unshift (@RT::EmailInputEncodings, 'koi8-r'); -$RT::EmailOutputEncoding = 'koi8-r'; -my $content = `cat @RT_LIB_PATH@/t/data/russian-subject-no-content-type` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_plain_russian_redef_sendmessage; -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/plain/, "We recorded the content type right"); -ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-plain"); -is ($tick->Subject, "\x{442}\x{435}\x{441}\x{442} \x{442}\x{435}\x{441}\x{442}", "Recorded the subject right"); -sub text_plain_russian_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - is ($MIME->head->mime_type , "text/plain", "The only part is text/plain "); - my $subject = $MIME->head->get("subject"); - chomp($subject); - #is( $subject , /^=\?KOI8-R\?B\?W2V4YW1wbGUuY39tICM3XSDUxdPUINTF09Q=\?=/ , "The $subject is encoded correctly"); - }; - '; -} - -shift @RT::EmailInputEncodings; -$RT::EmailOutputEncoding = 'utf-8'; -# }}} - - -# {{{ test a message containing a nested RFC 822 message - -my $content = `cat @RT_LIB_PATH@/t/data/nested-rfc-822` || die "couldn't find new content"; -ok ($content, "Loaded nested-rfc-822 to test"); - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_plain_nested_redef_sendmessage; -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); -is ($tick->Subject, "[Jonas Liljegren] Re: [Para] Niv\x{e5}er?"); -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /multipart\/mixed/, "We recorded the content type right"); -is ($tick->Transactions->First->Attachments->Count , 5 , "Has one attachment, presumably a text-plain and a message RFC 822 and another plain"); -sub text_plain_nested_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - is ($MIME->head->mime_type , "multipart/mixed", "It is a mixed multipart"); - my $subject = $MIME->head->get("subject"); - $subject = MIME::Base64::decode_base64( $subject); - chomp($subject); - # TODO, why does this test fail - #ok($subject =~ qr{Niv\x{e5}er}, "The subject matches the word - $subject"); - 1; - }'; -} - -# }}} - - -# {{{ test a multipart alternative containing a uuencoded mesage generated by lotus notes - -my $content = `cat @RT_LIB_PATH@/t/data/notes-uuencoded` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -¬es_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /from Lotus Notes/, "We recorded the content right"); -is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments"); - -sub notes_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { }'; -} - -# }}} - -# {{{ test a multipart that crashes the file-based mime-parser works - -my $content = `cat @RT_LIB_PATH@/t/data/crashes-file-based-parser` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&crashes_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /FYI/, "We recorded the content right"); -is ($tick->Transactions->First->Attachments->Count , 5 , "Has three attachments"); - -sub crashes_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { }'; -} - - - -# }}} - -# {{{ test a multi-line RT-Send-CC header - -my $content = `cat @RT_LIB_PATH@/t/data/rt-send-cc` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -my $cc = $tick->Transactions->First->Attachments->First->GetHeader('RT-Send-Cc'); -ok ($cc =~ /test1/, "Found test 1"); -ok ($cc =~ /test2/, "Found test 2"); -ok ($cc =~ /test3/, "Found test 3"); -ok ($cc =~ /test4/, "Found test 4"); -ok ($cc =~ /test5/, "Found test 5"); - -# }}} - -# Don't taint the environment -$everyone->PrincipalObj->RevokeRight(Right =>'SuperUser'); -1; diff --git a/rt/lib/t/05cronsupport.pl.in b/rt/lib/t/05cronsupport.pl.in deleted file mode 100644 index a6b3d7451..000000000 --- a/rt/lib/t/05cronsupport.pl.in +++ /dev/null @@ -1,84 +0,0 @@ -#!@PERL@ -w - -use strict; - -### Set up some testing data. Test the testing data because why not? - -# Create a user with rights, a queue, and some tickets. -my $user_obj = RT::User->new($RT::SystemUser); -my ($ret, $msg) = $user_obj->LoadOrCreateByEmail('tara@example.com'); -ok($ret, 'record test user creation'); -$user_obj->SetName('tara'); -$user_obj->PrincipalObj->GrantRight(Right => 'SuperUser'); -my $CurrentUser = RT::CurrentUser->new('tara'); - -# Create our template, which will be used for tests of RT::Action::Record*. - -my $template_content = 'RT-Send-Cc: tla@example.com -RT-Send-Bcc: jesse@example.com - -This is a content string with no content.'; - -my $template_obj = RT::Template->new($CurrentUser); -$template_obj->Create(Queue => '0', - Name => 'recordtest', - Description => 'testing Record actions', - Content => $template_content, - ); - -# Create a queue and some tickets. - -my $queue_obj = RT::Queue->new($CurrentUser); -($ret, $msg) = $queue_obj->Create(Name => 'recordtest', Description => 'queue for Action::Record testing'); -ok($ret, 'record test queue creation'); - -my $ticket1 = RT::Ticket->new($CurrentUser); -my ($id, $tobj, $msg2) = $ticket1->Create(Queue => $queue_obj, - Requestor => ['tara@example.com'], - Subject => 'bork bork bork', - Priority => 22, - ); -ok($id, 'record test ticket creation 1'); -my $ticket2 = RT::Ticket->new($CurrentUser); -($id, $tobj, $msg2) = $ticket2->Create(Queue => $queue_obj, - Requestor => ['root@localhost'], - Subject => 'hurdy gurdy' - ); -ok($id, 'record test ticket creation 2'); - - -### OK. Have data, will travel. - -# First test the search. - -ok(require RT::Search::FromSQL, "Search::FromSQL loaded"); -my $ticketsqlstr = "Requestor.EmailAddress = '" . $CurrentUser->EmailAddress . - "' AND Priority > '20'"; -my $search = RT::Search::FromSQL->new(Argument => $ticketsqlstr, TicketsObj => RT::Tickets->new($CurrentUser), - ); -is(ref($search), 'RT::Search::FromSQL', "search created"); -ok($search->Prepare(), "fromsql search run"); -my $counter = 0; -while(my $t = $search->TicketsObj->Next() ) { - is($t->Id(), $ticket1->Id(), "fromsql search results 1"); - $counter++; -} -is ($counter, 1, "fromsql search results 2"); - -# Right. Now test the actions. - -ok(require RT::Action::RecordComment); -ok(require RT::Action::RecordCorrespondence); - -my ($comment_act, $correspond_act); -ok($comment_act = RT::Action::RecordComment->new(TicketObj => $ticket1, TemplateObj => $template_obj, CurrentUser => $CurrentUser), "RecordComment created"); -ok($correspond_act = RT::Action::RecordCorrespondence->new(TicketObj => $ticket2, TemplateObj => $template_obj, CurrentUser => $CurrentUser), "RecordCorrespondence created"); -ok($comment_act->Prepare(), "Comment prepared"); -ok($correspond_act->Prepare(), "Correspond prepared"); -ok($comment_act->Commit(), "Comment committed"); -ok($correspond_act->Commit(), "Correspondence committed"); - -# Now test for loop suppression. -my ($trans, $desc, $transaction) = $ticket2->Comment(MIMEObj => $template_obj->MIMEObj); -my $bogus_action = RT::Action::RecordComment->new(TicketObj => $ticket1, TemplateObj => $template_obj, TransactionObj => $transaction, CurrentUser => $CurrentUser); -ok(!$bogus_action->Prepare(), "Comment aborted to prevent loop"); diff --git a/rt/lib/t/regression/00placeholder b/rt/lib/t/regression/00placeholder deleted file mode 100644 index 0afc6045c..000000000 --- a/rt/lib/t/regression/00placeholder +++ /dev/null @@ -1 +0,0 @@ -1; -- cgit v1.2.1